From 69776ad8b71ba1bac586283a9c39b77bc4ec1970 Mon Sep 17 00:00:00 2001 From: Jen Jones Arnesen Date: Tue, 30 Jul 2024 17:27:09 +0200 Subject: [PATCH] fix: loader alert messages were being duplicated (#2796) Fixes: https://dhis2.atlassian.net/browse/DHIS2-15438 The alerts were duplicated because there was both an internal alert stack/bar system as well as the built in one from app-runtime. Solution was to remove the internal alert stack/bar. This meant that the alerts coming from the layer loaders had to be refactored so that loader alerts are no longer are added to redux. Instead the component LayerLoaders use the app-runtime hook (useAlert). Other changes: skipPluginLogic: true has been added to d2.config.js because of the cli-app-scripts upgrade. Previously we had set a resolution for the dependency to workaround this bug: https://dhis2.atlassian.net/browse/DHIS2-16916. Now, we can remove the resolution as long as we include this config. --- d2.config.js | 2 + i18n/en.pot | 40 +- package.json | 12 +- src/components/alerts/AlertStack.js | 57 - .../alerts/__tests__/AlertStack.spec.js | 154 --- .../__snapshots__/AlertStack.spec.js.snap | 58 - src/components/app/ModalContainer.js | 2 - .../__tests__/LayerToolbarMoreMenu.spec.js | 12 +- src/components/loaders/EarthEngineLoader.js | 15 +- src/components/loaders/EventLoader.js | 15 +- src/components/loaders/FacilityLoader.js | 18 +- src/components/loaders/LayerLoader.js | 10 +- src/components/loaders/LayersLoader.js | 8 +- src/components/loaders/OrgUnitLoader.js | 15 +- src/components/loaders/ThematicLoader.js | 15 +- src/components/loaders/TrackedEntityLoader.js | 14 +- src/components/loaders/useLoaderAlerts.js | 87 ++ src/constants/alerts.js | 9 + src/loaders/earthEngineLoader.js | 28 +- src/loaders/eventLoader.js | 10 +- src/loaders/facilityLoader.js | 26 +- src/loaders/orgUnitLoader.js | 27 +- src/loaders/thematicLoader.js | 29 +- src/loaders/trackedEntityLoader.js | 7 +- src/util/alerts.js | 11 - yarn.lock | 1013 +++++++++-------- 26 files changed, 802 insertions(+), 892 deletions(-) delete mode 100644 src/components/alerts/AlertStack.js delete mode 100644 src/components/alerts/__tests__/AlertStack.spec.js delete mode 100644 src/components/alerts/__tests__/__snapshots__/AlertStack.spec.js.snap create mode 100644 src/components/loaders/useLoaderAlerts.js delete mode 100644 src/util/alerts.js diff --git a/d2.config.js b/d2.config.js index c182c651d..e68b66bb9 100644 --- a/d2.config.js +++ b/d2.config.js @@ -20,6 +20,8 @@ const config = { }, coreApp: true, + + skipPluginLogic: true, } module.exports = config diff --git a/i18n/en.pot b/i18n/en.pot index 063958be0..a9bed7e27 100644 --- a/i18n/en.pot +++ b/i18n/en.pot @@ -5,8 +5,8 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -"POT-Creation-Date: 2024-06-04T09:11:11.417Z\n" -"PO-Revision-Date: 2024-06-04T09:11:11.417Z\n" +"POT-Creation-Date: 2024-07-29T08:57:17.532Z\n" +"PO-Revision-Date: 2024-07-29T08:57:17.534Z\n" msgid "Untitled map, {{date}}" msgstr "Untitled map, {{date}}" @@ -642,6 +642,18 @@ msgstr "Filters" msgid "{{layername}}: {{message}}" msgstr "{{layername}}: {{message}}" +msgid "No data found" +msgstr "No data found" + +msgid "Selected org units: No coordinates found" +msgstr "Selected org units: No coordinates found" + +msgid "No coordinates found" +msgstr "No coordinates found" + +msgid "Error" +msgstr "Error" + msgid "Drill up one level" msgstr "Drill up one level" @@ -1308,14 +1320,8 @@ msgstr "Financial year (Start April)" msgid "Cancelled" msgstr "Cancelled" -msgid "{{name}}: No coordinates found" -msgstr "{{name}}: No coordinates found" - -msgid "Selected org units: No coordinates found" -msgstr "Selected org units: No coordinates found" - -msgid "Error: {{message}}" -msgstr "Error: {{message}}" +msgid "Earth Engine layer" +msgstr "Earth Engine layer" msgid "You don't have access to this layer data" msgstr "You don't have access to this layer data" @@ -1329,17 +1335,14 @@ msgstr "An unknown error occurred while reading layer data" msgid "Displaying first {{pageSize}} events out of {{total}}" msgstr "Displaying first {{pageSize}} events out of {{total}}" -msgid "No data found" -msgstr "No data found" - msgid "Event" msgstr "Event" msgid "Facilities" msgstr "Facilities" -msgid "Facilities: No coordinates found" -msgstr "Facilities: No coordinates found" +msgid "No coordinates found for selected facilities" +msgstr "No coordinates found for selected facilities" msgid "There was a problem with this layer. Contact a system administrator." msgstr "There was a problem with this layer. Contact a system administrator." @@ -1359,8 +1362,8 @@ msgstr "Point" msgid "Organisation units" msgstr "Organisation units" -msgid "Error" -msgstr "Error" +msgid "Org unit layer" +msgstr "Org unit layer" msgid "Thematic layer" msgstr "Thematic layer" @@ -1368,9 +1371,6 @@ msgstr "Thematic layer" msgid "Tracked entity" msgstr "Tracked entity" -msgid "No tracked entities found" -msgstr "No tracked entities found" - msgid "related" msgstr "related" diff --git a/package.json b/package.json index e65f5a4ee..aff52f3bd 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "postinstall": "patch-package" }, "devDependencies": { - "@dhis2/cli-app-scripts": "10.3.11", + "@dhis2/cli-app-scripts": "11.6.1", "@dhis2/cli-style": "^10.5.1", "@dhis2/cypress-commands": "^10.0.3", "@dhis2/cypress-plugins": "^10.0.3", @@ -38,13 +38,10 @@ }, "dependencies": { "@dhis2/analytics": "^26.7.5", - "@dhis2/app-runtime": "3.9.4", + "@dhis2/app-runtime": "^3.10.5", "@dhis2/app-runtime-adapter-d2": "^1.1.0", - "@dhis2/app-service-alerts": "3.9.4", "@dhis2/app-service-datastore": "^1.0.0-beta.3", - "@dhis2/d2-i18n": "^1.1.3", "@dhis2/maps-gl": "^3.9.2", - "@dhis2/ui": "^9.2.0", "@krakenjs/post-robot": "^11.0.0", "@reportportal/agent-js-cypress": "git+https://github.com/dhis2/agent-js-cypress.git#develop", "@reportportal/agent-js-jest": "^5.0.7", @@ -80,10 +77,5 @@ "redux-thunk": "^2.4.2", "styled-jsx": "^4.0.1", "url-polyfill": "^1.1.12" - }, - "resolutions": { - "@dhis2/ui": "^9.2.0", - "@dhis2/app-runtime": "3.9.4", - "@dhis2/app-service-alerts": "3.9.4" } } diff --git a/src/components/alerts/AlertStack.js b/src/components/alerts/AlertStack.js deleted file mode 100644 index 5e14ea2c3..000000000 --- a/src/components/alerts/AlertStack.js +++ /dev/null @@ -1,57 +0,0 @@ -import { useAlerts } from '@dhis2/app-service-alerts' -import { AlertStack as UiAlertStack, AlertBar } from '@dhis2/ui' -import React, { useCallback } from 'react' -import { useSelector, useDispatch } from 'react-redux' -import { clearAlerts } from '../../actions/map.js' -import { getMapAlerts } from '../../util/alerts.js' - -const DEFAULT_DURATION = 6000 - -const AlertStack = () => { - const alerts = useAlerts() - const mapAlerts = useSelector((state) => getMapAlerts(state.map)) - const dispatch = useDispatch() - - const clearMapAlerts = useCallback(() => { - dispatch(clearAlerts()) - }, [dispatch]) - - return alerts.length || mapAlerts.length ? ( - - {alerts - .map(({ message, options, remove }, index) => ( - - {message} - - )) - .concat( - mapAlerts.map( - ( - { message, success, warning, critical, duration }, - index - ) => ( - - {message} - - ) - ) - )} - - ) : null -} - -export default AlertStack diff --git a/src/components/alerts/__tests__/AlertStack.spec.js b/src/components/alerts/__tests__/AlertStack.spec.js deleted file mode 100644 index 653f543a0..000000000 --- a/src/components/alerts/__tests__/AlertStack.spec.js +++ /dev/null @@ -1,154 +0,0 @@ -import { useAlerts } from '@dhis2/app-service-alerts' -import { render } from '@testing-library/react' -import React from 'react' -import { Provider } from 'react-redux' -import configureMockStore from 'redux-mock-store' -import MapsAlertStack from '../AlertStack.js' - -const mockStore = configureMockStore() - -jest.mock('@dhis2/app-service-alerts', () => ({ - useAlerts: jest.fn(() => []), -})) - -/* eslint-disable react/prop-types */ -jest.mock('@dhis2/ui', () => { - const originalModule = jest.requireActual('@dhis2/ui') - - return { - __esModule: true, - ...originalModule, - // eslint-disable-next-line no-unused-vars - AlertBar: function Mock({ children, onHidden, ...rest }) { - return ( -
- {children} -
- ) - }, - AlertStack: function Mock({ children }) { - return
{children}
- }, - } -}) -/* eslint-enable react/prop-types */ - -const NO_ALERTS = [] - -describe('AlertSnackbar', () => { - test('does not render when no alerts', () => { - useAlerts.mockImplementationOnce(jest.fn(() => NO_ALERTS)) - - const store = { - map: { - mapViews: [ - { - layer: 'facility', - }, - ], - }, - } - - const { container } = render( - - - - ) - expect(container).toMatchSnapshot() - }) - - test('renders map alerts', () => { - useAlerts.mockImplementationOnce(jest.fn(() => NO_ALERTS)) - - const store = { - map: { - mapViews: [ - { - layer: 'facility', - alerts: [ - { - warning: 'warning', - message: 'A warning from the mapviews', - }, - ], - }, - ], - }, - } - - const { container } = render( - - - - ) - expect(container).toMatchSnapshot() - }) - - test('renders alerts from app-service-alerts', () => { - useAlerts.mockImplementationOnce( - jest.fn(() => [ - { - message: 'A successful result app-service-alerts', - options: { - success: 'success', - }, - remove: jest.fn(), - }, - ]) - ) - - const store = { - map: { - mapViews: [ - { - layer: 'facility', - }, - ], - }, - } - - const { container } = render( - - - - ) - expect(container).toMatchSnapshot() - }) - - test('renders alerts both map alerts and app-service-alerts', () => { - useAlerts.mockImplementationOnce( - jest.fn(() => [ - { - message: 'A critical error from app-service-alerts', - options: { - critical: 'critical', - }, - remove: jest.fn(), - }, - ]) - ) - - const store = { - map: { - mapViews: [ - { - layer: 'facility', - alerts: [ - { - warning: 'warning', - message: 'Another problem with facility layer', - }, - ], - }, - ], - }, - } - - const { container } = render( - - - - ) - expect(container).toMatchSnapshot() - }) -}) diff --git a/src/components/alerts/__tests__/__snapshots__/AlertStack.spec.js.snap b/src/components/alerts/__tests__/__snapshots__/AlertStack.spec.js.snap deleted file mode 100644 index 6b293852e..000000000 --- a/src/components/alerts/__tests__/__snapshots__/AlertStack.spec.js.snap +++ /dev/null @@ -1,58 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`AlertSnackbar does not render when no alerts 1`] = `
`; - -exports[`AlertSnackbar renders alerts both map alerts and app-service-alerts 1`] = ` -
-
-
- A critical error from app-service-alerts -
-
- Another problem with facility layer -
-
-
-`; - -exports[`AlertSnackbar renders alerts from app-service-alerts 1`] = ` -
-
-
- A successful result app-service-alerts -
-
-
-`; - -exports[`AlertSnackbar renders map alerts 1`] = ` -
-
-
- A warning from the mapviews -
-
-
-`; diff --git a/src/components/app/ModalContainer.js b/src/components/app/ModalContainer.js index 3b6766997..9e3e98150 100644 --- a/src/components/app/ModalContainer.js +++ b/src/components/app/ModalContainer.js @@ -1,6 +1,5 @@ import React from 'react' import { useSelector } from 'react-redux' -import AlertStack from '../alerts/AlertStack.js' import LayerEdit from '../edit/LayerEdit.js' import ContextMenu from '../map/ContextMenu.js' import OpenAsMapDialog from '../openAs/OpenAsMapDialog.js' @@ -12,7 +11,6 @@ const ModalContainer = () => { <> - {analyticalObject && } ) diff --git a/src/components/layers/toolbar/__tests__/LayerToolbarMoreMenu.spec.js b/src/components/layers/toolbar/__tests__/LayerToolbarMoreMenu.spec.js index ec6f97d24..15a1950f0 100644 --- a/src/components/layers/toolbar/__tests__/LayerToolbarMoreMenu.spec.js +++ b/src/components/layers/toolbar/__tests__/LayerToolbarMoreMenu.spec.js @@ -40,7 +40,7 @@ describe('LayerToolbarMoreMenu', () => { await waitFor(() => { expect(screen.queryByText('Remove layer')).toBeTruthy() // confirm the divider is not present - expect(screen.queryAllByRole('listitem').length).toEqual(1) + expect(screen.getByRole('menu').children.length).toEqual(1) expect(screen.queryByText('Show data table')).toBeNull() expect(screen.queryByText('Open as chart')).toBeNull() @@ -76,7 +76,7 @@ describe('LayerToolbarMoreMenu', () => { expect(screen.queryByText('Edit layer')).toBeTruthy() expect(screen.queryByText('Remove layer')).toBeTruthy() // confirm the divider is not present - expect(screen.queryAllByRole('listitem').length).toEqual(2) + expect(screen.getByRole('menu').children.length).toEqual(2) expect(screen.queryByText('Show data table')).toBeNull() expect(screen.queryByText('Open as chart')).toBeNull() @@ -110,7 +110,7 @@ describe('LayerToolbarMoreMenu', () => { expect(screen.queryByText('Show data table')).toBeTruthy() expect(screen.queryByText('Download data')).toBeTruthy() // confirm the divider is not present - expect(screen.queryAllByRole('listitem').length).toEqual(2) + expect(screen.getByRole('menu').children.length).toEqual(2) expect(screen.queryByText('Open as chart')).toBeNull() expect(screen.queryByText('Edit layer')).toBeNull() @@ -141,7 +141,7 @@ describe('LayerToolbarMoreMenu', () => { await waitFor(() => { expect(screen.queryByText('Show data table')).toBeTruthy() - expect(screen.queryAllByRole('listitem').length).toEqual(1) + expect(screen.getByRole('menu').children.length).toEqual(1) expect(screen.queryByText('Open as chart')).toBeNull() expect(screen.queryByText('Download data')).toBeNull() @@ -179,7 +179,7 @@ describe('LayerToolbarMoreMenu', () => { expect(screen.queryByText('Remove layer')).toBeTruthy() // confirm the divider is present (1 more list item) - expect(screen.queryAllByRole('listitem').length).toEqual(4) + expect(screen.getByRole('menu').children.length).toEqual(4) expect(screen.queryByText('Open as chart')).toBeNull() expect(screen.queryByText('Download data')).toBeNull() @@ -216,7 +216,7 @@ describe('LayerToolbarMoreMenu', () => { expect(screen.queryByText('Edit layer')).toBeTruthy() expect(screen.queryByText('Remove layer')).toBeTruthy() // confirm the divider is present (1 more list item) - expect(screen.queryAllByRole('listitem').length).toEqual(5) + expect(screen.getByRole('menu').children.length).toEqual(5) expect(screen.queryByText('Open as chart')).toBeNull() }) diff --git a/src/components/loaders/EarthEngineLoader.js b/src/components/loaders/EarthEngineLoader.js index 2145f5045..ee23746ca 100644 --- a/src/components/loaders/EarthEngineLoader.js +++ b/src/components/loaders/EarthEngineLoader.js @@ -1,11 +1,19 @@ import PropTypes from 'prop-types' import { useEffect } from 'react' import earthEngineLoader from '../../loaders/earthEngineLoader.js' +import useLoaderAlerts from './useLoaderAlerts.js' + +const EarthEngineLoader = ({ config, onLoad, loaderAlertAction }) => { + const { showAlerts } = useLoaderAlerts(loaderAlertAction) -const EarthEngineLoader = ({ config, onLoad }) => { useEffect(() => { - earthEngineLoader(config).then(onLoad) - }, [config, onLoad]) + earthEngineLoader(config).then((result) => { + if (result.alerts?.length && loaderAlertAction) { + showAlerts(result.alerts) + } + onLoad(result) + }) + }, [config, onLoad, showAlerts, loaderAlertAction]) return null } @@ -13,6 +21,7 @@ const EarthEngineLoader = ({ config, onLoad }) => { EarthEngineLoader.propTypes = { config: PropTypes.object.isRequired, onLoad: PropTypes.func.isRequired, + loaderAlertAction: PropTypes.func, } export default EarthEngineLoader diff --git a/src/components/loaders/EventLoader.js b/src/components/loaders/EventLoader.js index b146720fa..d0de3d284 100644 --- a/src/components/loaders/EventLoader.js +++ b/src/components/loaders/EventLoader.js @@ -1,11 +1,19 @@ import PropTypes from 'prop-types' import { useEffect } from 'react' import eventLoader from '../../loaders/eventLoader.js' +import useLoaderAlerts from './useLoaderAlerts.js' + +const EventLoader = ({ config, dataTableOpen, onLoad, loaderAlertAction }) => { + const { showAlerts } = useLoaderAlerts(loaderAlertAction) -const EventLoader = ({ config, dataTableOpen, onLoad }) => { useEffect(() => { - eventLoader(config, dataTableOpen).then(onLoad) - }, [config, onLoad, dataTableOpen]) + eventLoader(config, dataTableOpen).then((result) => { + if (result.alerts?.length && loaderAlertAction) { + showAlerts(result.alerts) + } + onLoad(result) + }) + }, [config, dataTableOpen, onLoad, showAlerts, loaderAlertAction]) return null } @@ -14,6 +22,7 @@ EventLoader.propTypes = { config: PropTypes.object.isRequired, dataTableOpen: PropTypes.bool.isRequired, onLoad: PropTypes.func.isRequired, + loaderAlertAction: PropTypes.func, } export default EventLoader diff --git a/src/components/loaders/FacilityLoader.js b/src/components/loaders/FacilityLoader.js index bd2e466b1..b475976a0 100644 --- a/src/components/loaders/FacilityLoader.js +++ b/src/components/loaders/FacilityLoader.js @@ -1,18 +1,26 @@ import PropTypes from 'prop-types' import { useEffect } from 'react' import facilityLoader from '../../loaders/facilityLoader.js' +import useLoaderAlerts from './useLoaderAlerts.js' -const EventLoader = ({ config, onLoad }) => { +const FacilityLoader = ({ config, onLoad, loaderAlertAction }) => { + const { showAlerts } = useLoaderAlerts(loaderAlertAction) useEffect(() => { - facilityLoader(config).then(onLoad) - }, [config, onLoad]) + facilityLoader(config).then((result) => { + if (result.alerts?.length && loaderAlertAction) { + showAlerts(result.alerts) + } + onLoad(result) + }) + }, [config, onLoad, showAlerts, loaderAlertAction]) return null } -EventLoader.propTypes = { +FacilityLoader.propTypes = { config: PropTypes.object.isRequired, onLoad: PropTypes.func.isRequired, + loaderAlertAction: PropTypes.func, } -export default EventLoader +export default FacilityLoader diff --git a/src/components/loaders/LayerLoader.js b/src/components/loaders/LayerLoader.js index e8988a7c9..0a01dfaff 100644 --- a/src/components/loaders/LayerLoader.js +++ b/src/components/loaders/LayerLoader.js @@ -20,7 +20,7 @@ const layerType = { geoJsonUrl: GeoJsonUrlLoader, } -const LayerLoader = ({ config, dataTableOpen, onLoad }) => { +const LayerLoader = ({ config, dataTableOpen, onLoad, loaderAlertAction }) => { const Loader = layerType[config.layer] if (!Loader) { @@ -29,7 +29,12 @@ const LayerLoader = ({ config, dataTableOpen, onLoad }) => { } return ( - + ) } @@ -42,6 +47,7 @@ LayerLoader.propTypes = { config: PropTypes.object.isRequired, onLoad: PropTypes.func.isRequired, dataTableOpen: PropTypes.bool, + loaderAlertAction: PropTypes.func, } export default LayerLoader diff --git a/src/components/loaders/LayersLoader.js b/src/components/loaders/LayersLoader.js index c2b1606ff..6d4c3ff88 100644 --- a/src/components/loaders/LayersLoader.js +++ b/src/components/loaders/LayersLoader.js @@ -1,6 +1,7 @@ -import React, { useEffect } from 'react' +import React, { useEffect, useCallback } from 'react' import { useSelector, useDispatch } from 'react-redux' import { setLayerLoading, updateLayer } from '../../actions/layers.js' +import { clearAlerts } from '../../actions/map.js' import { EVENT_LAYER } from '../../constants/layers.js' import LayerLoader from './LayerLoader.js' @@ -49,6 +50,10 @@ const LayersLoader = () => { layersToLoad.forEach((layer) => dispatch(setLayerLoading(layer.id))) }, [layersToLoad, dispatch]) + const clearMapAlerts = useCallback(() => { + dispatch(clearAlerts()) + }, [dispatch]) + if (!layersToLoad.length) { return null } @@ -59,6 +64,7 @@ const LayersLoader = () => { config={config} onLoad={onLoad} dataTableOpen={!!dataTable} + loaderAlertAction={clearMapAlerts} /> )) } diff --git a/src/components/loaders/OrgUnitLoader.js b/src/components/loaders/OrgUnitLoader.js index 9dafb5490..8c8ba75d2 100644 --- a/src/components/loaders/OrgUnitLoader.js +++ b/src/components/loaders/OrgUnitLoader.js @@ -1,11 +1,19 @@ import PropTypes from 'prop-types' import { useEffect } from 'react' import orgUnitLoader from '../../loaders/orgUnitLoader.js' +import useLoaderAlerts from './useLoaderAlerts.js' + +const OrgUnitLoader = ({ config, onLoad, loaderAlertAction }) => { + const { showAlerts } = useLoaderAlerts(loaderAlertAction) -const OrgUnitLoader = ({ config, onLoad }) => { useEffect(() => { - orgUnitLoader(config).then(onLoad) - }, [config, onLoad]) + orgUnitLoader(config).then((result) => { + if (result.alerts?.length && loaderAlertAction) { + showAlerts(result.alerts) + } + onLoad(result) + }) + }, [config, onLoad, showAlerts, loaderAlertAction]) return null } @@ -13,6 +21,7 @@ const OrgUnitLoader = ({ config, onLoad }) => { OrgUnitLoader.propTypes = { config: PropTypes.object.isRequired, onLoad: PropTypes.func.isRequired, + loaderAlertAction: PropTypes.func, } export default OrgUnitLoader diff --git a/src/components/loaders/ThematicLoader.js b/src/components/loaders/ThematicLoader.js index b0e5bbb6c..9558faaa6 100644 --- a/src/components/loaders/ThematicLoader.js +++ b/src/components/loaders/ThematicLoader.js @@ -1,11 +1,19 @@ import PropTypes from 'prop-types' import { useEffect } from 'react' import thematicLoader from '../../loaders/thematicLoader.js' +import useLoaderAlerts from './useLoaderAlerts.js' + +const ThematicLoader = ({ config, onLoad, loaderAlertAction }) => { + const { showAlerts } = useLoaderAlerts(loaderAlertAction) -const ThematicLoader = ({ config, onLoad }) => { useEffect(() => { - thematicLoader(config).then(onLoad) - }, [config, onLoad]) + thematicLoader(config).then((result) => { + if (result.alerts?.length && loaderAlertAction) { + showAlerts(result.alerts) + } + onLoad(result) + }) + }, [config, onLoad, showAlerts, loaderAlertAction]) return null } @@ -13,6 +21,7 @@ const ThematicLoader = ({ config, onLoad }) => { ThematicLoader.propTypes = { config: PropTypes.object.isRequired, onLoad: PropTypes.func.isRequired, + loaderAlertAction: PropTypes.func, } export default ThematicLoader diff --git a/src/components/loaders/TrackedEntityLoader.js b/src/components/loaders/TrackedEntityLoader.js index 766e32fea..f0baece58 100644 --- a/src/components/loaders/TrackedEntityLoader.js +++ b/src/components/loaders/TrackedEntityLoader.js @@ -1,11 +1,18 @@ import PropTypes from 'prop-types' import { useEffect } from 'react' import trackedEntityLoader from '../../loaders/trackedEntityLoader.js' +import useLoaderAlerts from './useLoaderAlerts.js' -const TrackedEntityLoader = ({ config, onLoad }) => { +const TrackedEntityLoader = ({ config, onLoad, loaderAlertAction }) => { + const { showAlerts } = useLoaderAlerts(loaderAlertAction) useEffect(() => { - trackedEntityLoader(config).then(onLoad) - }, [config, onLoad]) + trackedEntityLoader(config).then((result) => { + if (result.alerts?.length && loaderAlertAction) { + showAlerts(result.alerts) + } + onLoad(result) + }) + }, [config, onLoad, showAlerts, loaderAlertAction]) return null } @@ -13,6 +20,7 @@ const TrackedEntityLoader = ({ config, onLoad }) => { TrackedEntityLoader.propTypes = { config: PropTypes.object.isRequired, onLoad: PropTypes.func.isRequired, + loaderAlertAction: PropTypes.func, } export default TrackedEntityLoader diff --git a/src/components/loaders/useLoaderAlerts.js b/src/components/loaders/useLoaderAlerts.js new file mode 100644 index 000000000..53de6e8ef --- /dev/null +++ b/src/components/loaders/useLoaderAlerts.js @@ -0,0 +1,87 @@ +import { useAlert } from '@dhis2/app-service-alerts' +import i18n from '@dhis2/d2-i18n' +import { + ALERT_MESSAGE_DYNAMIC, + WARNING_NO_DATA, + WARNING_NO_OU_COORD, + WARNING_NO_GEOMETRY_COORD, + ERROR_CRITICAL, + CUSTOM_ALERT, +} from '../../constants/alerts.js' + +function useLoaderAlerts(loaderAlertAction = Function.prototype) { + const errorAlert = useAlert(ALERT_MESSAGE_DYNAMIC, { + critical: true, + onHidden: loaderAlertAction, + }) + const warningAlert = useAlert(ALERT_MESSAGE_DYNAMIC, { + warning: true, + onHidden: loaderAlertAction, + }) + const infoAlert = useAlert(ALERT_MESSAGE_DYNAMIC, { + info: true, + duration: 5000, + onHidden: loaderAlertAction, + }) + const noDataAlert = useAlert(ALERT_MESSAGE_DYNAMIC, { + warning: true, + onHidden: loaderAlertAction, + }) + const noOUCoordinatesAlert = useAlert(({ msg }) => msg, { + warning: true, + onHidden: loaderAlertAction, + }) + + const noGeometryCoordinatesAlert = useAlert(ALERT_MESSAGE_DYNAMIC, { + warning: true, + onHidden: loaderAlertAction, + }) + + const showAlerts = (alerts) => { + alerts.forEach(({ message: msg, code, warning, critical }) => { + switch (code) { + case WARNING_NO_DATA: { + noDataAlert.show({ + msg: `${msg}: ${i18n.t('No data found')}`, + }) + break + } + case WARNING_NO_OU_COORD: { + noOUCoordinatesAlert.show({ + msg: i18n.t( + 'Selected org units: No coordinates found', + { nsSeparator: '^^' } + ), + }) + break + } + case WARNING_NO_GEOMETRY_COORD: { + noGeometryCoordinatesAlert.show({ + msg: `${msg}: ${i18n.t('No coordinates found')}`, + }) + break + } + case ERROR_CRITICAL: { + errorAlert.show({ msg: `${i18n.t('Error')}: ${msg}` }) + break + } + case CUSTOM_ALERT: { + if (critical) { + errorAlert.show({ msg }) + } else if (warning) { + warningAlert.show({ msg }) + } else { + infoAlert.show({ msg }) + } + break + } + default: + break + } + }) + } + + return { showAlerts } +} + +export default useLoaderAlerts diff --git a/src/constants/alerts.js b/src/constants/alerts.js index 5b7e6e45a..b384e735f 100644 --- a/src/constants/alerts.js +++ b/src/constants/alerts.js @@ -1,6 +1,15 @@ export const ALERT_SUCCESS = { success: true } export const ALERT_SUCCESS_DELAY = { success: true, duration: 3000 } export const ALERT_CRITICAL = { critical: true } +export const ALERT_WARNING = { warning: true } +export const ALERT_INFO = { info: true } export const ALERT_MESSAGE_DYNAMIC = ({ msg }) => msg export const ALERT_OPTIONS_DYNAMIC = ({ isError }) => isError ? ALERT_CRITICAL : ALERT_SUCCESS + +// Loader alerts +export const WARNING_NO_DATA = 'WARNING_NO_DATA' +export const WARNING_NO_OU_COORD = 'WARNING_NO_OU_COORD' +export const WARNING_NO_GEOMETRY_COORD = 'WARNING_NO_GEOMETRY_COORD' +export const ERROR_CRITICAL = 'ERROR_CRITICAL' +export const CUSTOM_ALERT = 'CUSTOM_ALERT' diff --git a/src/loaders/earthEngineLoader.js b/src/loaders/earthEngineLoader.js index 72336d817..ec44ea9af 100644 --- a/src/loaders/earthEngineLoader.js +++ b/src/loaders/earthEngineLoader.js @@ -1,6 +1,11 @@ import i18n from '@dhis2/d2-i18n' import { getInstance as getD2 } from 'd2' import { precisionRound } from 'd3-format' +import { + WARNING_NO_OU_COORD, + WARNING_NO_GEOMETRY_COORD, + ERROR_CRITICAL, +} from '../constants/alerts.js' import { getEarthEngineLayer } from '../constants/earthEngine.js' import { getOrgUnitsFromRows } from '../util/analytics.js' import { hasClasses, getPeriodNameFromFilter } from '../util/earthEngine.js' @@ -46,11 +51,8 @@ const earthEngineLoader = async (config) => { if (!associatedGeometries.length) { alerts.push({ - warning: true, - message: i18n.t('{{name}}: No coordinates found', { - name: coordinateField.name, - nsSeparator: ';', - }), + code: WARNING_NO_GEOMETRY_COORD, + message: coordinateField.name, }) } } @@ -62,22 +64,14 @@ const earthEngineLoader = async (config) => { if (!features.length) { alerts.push({ - warning: true, - message: i18n.t( - 'Selected org units: No coordinates found', - { - nsSeparator: ';', - } - ), + code: WARNING_NO_OU_COORD, + message: i18n.t('Earth Engine layer'), }) } } catch (error) { alerts.push({ - critical: true, - message: i18n.t('Error: {{message}}', { - message: error.message, - nsSeparator: ';', - }), + code: ERROR_CRITICAL, + message: error.message || error, }) } } diff --git a/src/loaders/eventLoader.js b/src/loaders/eventLoader.js index b02002359..0b8f20e3d 100644 --- a/src/loaders/eventLoader.js +++ b/src/loaders/eventLoader.js @@ -1,5 +1,6 @@ import i18n from '@dhis2/d2-i18n' import { getInstance as getD2 } from 'd2' +import { CUSTOM_ALERT, WARNING_NO_DATA } from '../constants/alerts.js' import { getEventStatuses } from '../constants/eventStatuses.js' import { EVENT_CLIENT_PAGE_SIZE, @@ -26,18 +27,20 @@ const useServerCluster = (count) => count > EVENT_SERVER_CLUSTER_COUNT const accessDeniedAlert = { warning: true, + code: CUSTOM_ALERT, message: i18n.t("You don't have access to this layer data"), } const filterErrorAlert = { warning: true, + code: CUSTOM_ALERT, message: i18n.t('The event filter is not supported'), } const unknownErrorAlert = { critical: true, + code: CUSTOM_ALERT, message: i18n.t('An unknown error occurred while reading layer data'), } -// TODO: Refactor to share code with other loaders // Returns a promise const eventLoader = async (layerConfig, loadExtended) => { const config = { ...layerConfig } @@ -135,6 +138,7 @@ const loadEventLayer = async (config, loadExtended) => { if (total > EVENT_CLIENT_PAGE_SIZE) { alert = { warning: true, + code: CUSTOM_ALERT, message: `${config.name}: ${i18n.t( 'Displaying first {{pageSize}} events out of {{total}}', { @@ -146,8 +150,8 @@ const loadEventLayer = async (config, loadExtended) => { } } else { alert = { - warning: true, - message: `${config.name}: ${i18n.t('No data found')}`, + code: WARNING_NO_DATA, + message: config.name, } } diff --git a/src/loaders/facilityLoader.js b/src/loaders/facilityLoader.js index e6d0dc16d..fc56d445f 100644 --- a/src/loaders/facilityLoader.js +++ b/src/loaders/facilityLoader.js @@ -1,5 +1,10 @@ import i18n from '@dhis2/d2-i18n' import { getInstance as getD2 } from 'd2' +import { + WARNING_NO_GEOMETRY_COORD, + ERROR_CRITICAL, + CUSTOM_ALERT, +} from '../constants/alerts.js' import { getOrgUnitsFromRows } from '../util/analytics.js' import { getDisplayProperty } from '../util/helpers.js' import { toGeoJson } from '../util/map.js' @@ -37,13 +42,10 @@ const facilityLoader = async (config) => { .then(getPointItems) .then(toGeoJson) .catch((error) => { - if (error && error.message) { + if (error?.message || error) { alerts.push({ - critical: true, - message: i18n.t('Error: {{message}}', { - message: error.message, - nsSeparator: ';', - }), + code: ERROR_CRITICAL, + message: error.message, }) } }), @@ -80,11 +82,8 @@ const facilityLoader = async (config) => { if (!associatedGeometries.length) { alerts.push({ - warning: true, - message: i18n.t('{{name}}: No coordinates found', { - name: coordinateField.name, - nsSeparator: ';', - }), + code: WARNING_NO_GEOMETRY_COORD, + message: coordinateField.name, }) } @@ -104,9 +103,8 @@ const facilityLoader = async (config) => { if (!styledFeatures.length) { alerts.push({ warning: true, - message: i18n.t('Facilities: No coordinates found', { - nsSeparator: ';', - }), + code: CUSTOM_ALERT, + message: i18n.t('No coordinates found for selected facilities'), }) } diff --git a/src/loaders/orgUnitLoader.js b/src/loaders/orgUnitLoader.js index f9d87cdc5..e389a8c87 100644 --- a/src/loaders/orgUnitLoader.js +++ b/src/loaders/orgUnitLoader.js @@ -1,5 +1,10 @@ import i18n from '@dhis2/d2-i18n' import { getInstance as getD2 } from 'd2' +import { + WARNING_NO_OU_COORD, + WARNING_NO_GEOMETRY_COORD, + ERROR_CRITICAL, +} from '../constants/alerts.js' import { getOrgUnitsFromRows } from '../util/analytics.js' import { getDisplayProperty } from '../util/helpers.js' import { toGeoJson } from '../util/map.js' @@ -35,13 +40,10 @@ const orgUnitLoader = async (config) => { .getAll({ includeGroupSets }) .then(toGeoJson) .catch((error) => { - if (error && error.message) { + if (error?.message || error) { alerts.push({ - critical: true, - message: i18n.t('Error: {{message}}', { - message: error.message, - nsSeparator: ';', - }), + code: ERROR_CRITICAL, + message: error?.message || error, }) } }), @@ -58,10 +60,8 @@ const orgUnitLoader = async (config) => { if (!mainFeatures.length && !alerts.length) { alerts.push({ - warning: true, - message: i18n.t('Selected org units: No coordinates found', { - nsSeparator: ';', - }), + code: WARNING_NO_OU_COORD, + message: i18n.t('Org unit layer'), }) } @@ -79,11 +79,8 @@ const orgUnitLoader = async (config) => { if (!associatedGeometries.length) { alerts.push({ - warning: true, - message: i18n.t('{{name}}: No coordinates found', { - name: coordinateField.name, - nsSeparator: ';', - }), + code: WARNING_NO_GEOMETRY_COORD, + message: coordinateField.name, }) } } diff --git a/src/loaders/thematicLoader.js b/src/loaders/thematicLoader.js index 5bc4b5f43..d131abaff 100644 --- a/src/loaders/thematicLoader.js +++ b/src/loaders/thematicLoader.js @@ -2,6 +2,12 @@ import i18n from '@dhis2/d2-i18n' import { getInstance as getD2 } from 'd2' import { scaleSqrt } from 'd3-scale' import { findIndex, curry } from 'lodash/fp' +import { + WARNING_NO_DATA, + WARNING_NO_OU_COORD, + WARNING_NO_GEOMETRY_COORD, + ERROR_CRITICAL, +} from '../constants/alerts.js' import { dimConf } from '../constants/dimension.js' import { EVENT_STATUS_COMPLETED } from '../constants/eventStatuses.js' import { @@ -64,10 +70,8 @@ const thematicLoader = async (config) => { ? { alerts: [ { - critical: true, - message: `${i18n.t('Error')}: ${ - error.message || error - }`, + code: ERROR_CRITICAL, + message: error.message || error, }, ], } @@ -180,26 +184,21 @@ const thematicLoader = async (config) => { if (!valueFeatures.length) { if (!features.length) { alerts.push({ - warning: true, - message: i18n.t('Selected org units: No coordinates found', { - nsSeparator: ';', - }), + code: WARNING_NO_OU_COORD, + message: i18n.t('Thematic layer'), }) } else { alerts.push({ - warning: true, - message: `${name}: ${i18n.t('No data found')}`, + code: WARNING_NO_DATA, + message: name, }) } } if (coordinateField && !associatedGeometries.length) { alerts.push({ - warning: true, - message: i18n.t('{{name}}: No coordinates found', { - name: coordinateField.name, - nsSeparator: ';', - }), + code: WARNING_NO_GEOMETRY_COORD, + message: coordinateField.name, }) } diff --git a/src/loaders/trackedEntityLoader.js b/src/loaders/trackedEntityLoader.js index 09adaecb1..b303e647b 100644 --- a/src/loaders/trackedEntityLoader.js +++ b/src/loaders/trackedEntityLoader.js @@ -1,4 +1,5 @@ import i18n from '@dhis2/d2-i18n' +import { WARNING_NO_DATA } from '../constants/alerts.js' import { TEI_COLOR, TEI_RADIUS, @@ -131,10 +132,8 @@ const trackedEntityLoader = async (config) => { if (!instances.length) { alert = { - warning: true, - message: `${trackedEntityType.name}: ${i18n.t( - 'No tracked entities found' - )}`, + code: WARNING_NO_DATA, + message: trackedEntityType.name, } } diff --git a/src/util/alerts.js b/src/util/alerts.js deleted file mode 100644 index ed69509c7..000000000 --- a/src/util/alerts.js +++ /dev/null @@ -1,11 +0,0 @@ -// Returns array of all alerts from map config and layers (mapViews) -export const getMapAlerts = (mapConfig) => - [] - .concat(...(mapConfig && mapConfig.alerts ? mapConfig.alerts : [])) - .concat( - ...(mapConfig && - mapConfig.mapViews && - mapConfig.mapViews - .filter((layer) => layer.alerts) - .map((layer) => layer.alerts)) - ) diff --git a/yarn.lock b/yarn.lock index dd5914763..465505119 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1436,583 +1436,585 @@ debug "^3.1.0" lodash.once "^4.1.1" -"@dhis2-ui/alert@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/alert/-/alert-9.2.0.tgz#3b30e90a88a96c617219c60ad8bc16a5969e85d1" - integrity sha512-9uh6vIKlj9vm9wOr/7UvSvxrEgl0p99+FdfFtvCeiOywR2+CCPvd9fRsL/vWKcCraopOriCmTm5PzBUWPuatvg== +"@dhis2-ui/alert@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/alert/-/alert-9.10.1.tgz#c15d851cdf6e15b1a6240c5af9f4308817e7c126" + integrity sha512-jSS+RDM8HLtlHx/SOMDAn50Te+mafevUuM2Emt4z/Lwb3wslps7LYjdwfI9yE+OLML9yjmJQWEhgChMIvwNNfg== dependencies: - "@dhis2-ui/portal" "9.2.0" + "@dhis2-ui/portal" "9.10.1" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.10.1" + "@dhis2/ui-icons" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/box@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/box/-/box-9.2.0.tgz#0f8fd79059d724c075180ea442c860ebff88c802" - integrity sha512-ERNEd8lDAQIGDmTYknWClPGbmWuOpFAnE8XurB6wrkydn0M2+wsIa00q2on6RgY2YaAjVtYZEXr9CfjBtwh04w== +"@dhis2-ui/box@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/box/-/box-9.10.1.tgz#67c311156b762c4ecd39532ec36713e229f2ba27" + integrity sha512-MwjhsiXGVLV2D7BmRlc5npK7MLJZsEcR62Fw/YWln0lIXd2GP5EA6vtXaabWV0XC/ZZFjdE9KetNZsgr1amkrQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/button@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/button/-/button-9.2.0.tgz#8d465f471ca629e1cb0ded01fc68143eb4960c1c" - integrity sha512-YBdIpaOqEgpI0JhHm8XBlpFGDF7O6eiFQ4Noxu131KEyDOf7a+AkIyECVZw6Jsj3n2zrbyzBDw6IndSFSlBqRQ== +"@dhis2-ui/button@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/button/-/button-9.10.1.tgz#ccdedc218a966db70d1bf723cdd224d8e6b3e93f" + integrity sha512-Xa52rE9aiXt/6w2ElbqermFq2P+0V+isyNz7wELtFmGI9G+ASvqr0aIO4ePG2/qu/qknhLO1U3SA4RmlrkFLpw== dependencies: - "@dhis2-ui/layer" "9.2.0" - "@dhis2-ui/loader" "9.2.0" - "@dhis2-ui/popper" "9.2.0" + "@dhis2-ui/layer" "9.10.1" + "@dhis2-ui/loader" "9.10.1" + "@dhis2-ui/popper" "9.10.1" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.10.1" + "@dhis2/ui-icons" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/calendar@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/calendar/-/calendar-9.2.0.tgz#c3fbcdc622a13dd112de163719cfdcd0f960cfe2" - integrity sha512-6xxkCx66tjfGffGoPnDB6pe9Pvx+UybAGCqof7/0xfHP2vnfdss716imM02HfJRZwp5dNUrXqBO9uuQ1qkp/HA== - dependencies: - "@dhis2-ui/button" "9.2.0" - "@dhis2-ui/card" "9.2.0" - "@dhis2-ui/input" "9.2.0" - "@dhis2-ui/layer" "9.2.0" - "@dhis2-ui/popper" "9.2.0" - "@dhis2/multi-calendar-dates" "1.0.2" +"@dhis2-ui/calendar@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/calendar/-/calendar-9.10.1.tgz#7683f05fef63b6841403f746f32a52891e323d64" + integrity sha512-tzFJWHMqdvvOsGTLttyqfAWMWH6aabt/4nIfRYJyCGvEIOdZLx62S2tZZjjtFwUpVtIN06+cunaGv8XHwmvlxQ== + dependencies: + "@dhis2-ui/button" "9.10.1" + "@dhis2-ui/card" "9.10.1" + "@dhis2-ui/input" "9.10.1" + "@dhis2-ui/layer" "9.10.1" + "@dhis2-ui/popper" "9.10.1" + "@dhis2/multi-calendar-dates" "^1.2.3" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.10.1" + "@dhis2/ui-icons" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/card@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/card/-/card-9.2.0.tgz#1a2d8f2f9becfd9fd43e7e315fda511418698fd1" - integrity sha512-++eLieBc4WsNXD1iQEQaqijnQ7hpKu0HH9cjkwTa46jjI9SoJGdYInvCzZPafB1XuCZ42f08kTcdND2qZWbssQ== +"@dhis2-ui/card@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/card/-/card-9.10.1.tgz#d4814458245444f95bc0a6c1fd88679e1ffba01c" + integrity sha512-Aj9ZvKJbRoDy3DqhYO9/phOiX/bC+gCyk4E0leMxtJx7he7pfdGCfpRHNyxEuy7tEi8WaVaMzfnb8lNzsv/nUw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/center@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/center/-/center-9.2.0.tgz#f7fbcbd00696d718286f269a64a5bad327160449" - integrity sha512-IBwLld/SQEtT5acjBr3nJnpkXNzypxm9f+QfdGYRq2ZSQmkIv9IUjIvlC25CU72Ksq+N0nWvA8AYp2Qx/l04fg== +"@dhis2-ui/center@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/center/-/center-9.10.1.tgz#5628692b2aeff42870c0e0619aafac5dcab0777d" + integrity sha512-pmASts6pNktt0NKetShhTMje3ZKBD1k7xr4dx6fhhNfw96PgM2fYxXCn8vNQK9HkKyY0K65tX/u8Q1oegXMFKw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/checkbox@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/checkbox/-/checkbox-9.2.0.tgz#7f27c645bb9d31df4898c9c96cfdabf9ddd01ab3" - integrity sha512-EIGbkdnCLOyW3s7Mh31LdPgghHPaTAt0MJe5ieF/1NycUCfx99NGoR7wXlAlI6wNvjkuTYnYBknERGHUEzY9rA== +"@dhis2-ui/checkbox@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/checkbox/-/checkbox-9.10.1.tgz#4ee2112c3972beca38a9897ecb82dfd3b307710e" + integrity sha512-sNERu2S3rrmxl8wnWoNDSq5jv5D43ncYu2prbG8mP27yaZ5Jx+9cy5seLVOh719zZvC0cQiADjXoFt8Lslj/eA== dependencies: - "@dhis2-ui/field" "9.2.0" - "@dhis2-ui/required" "9.2.0" + "@dhis2-ui/field" "9.10.1" + "@dhis2-ui/required" "9.10.1" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/chip@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/chip/-/chip-9.2.0.tgz#45b5e55e6d11318bb6917f1bcdee9bf9b67bd620" - integrity sha512-PesbKz0MrXegDAFcGHq34Ast0kM/mJrmExiLua262egYYaRiQXDYeaNuS2TT+qPsPsDva2Pp7kqjdrFRDL2Few== +"@dhis2-ui/chip@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/chip/-/chip-9.10.1.tgz#b530093e9ef2c6bfa85f556512a1b43a9b0c9e77" + integrity sha512-VZ4+WM63wZPVWF8J2gpw2IQXI04VlEsijwd7aBeux4JUhTv0rJkyUfGWYR2PSSDh2xAZWsJHmkOiwS+Bguv31w== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/cover@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/cover/-/cover-9.2.0.tgz#0288dad0ba9caf8c0b77c86868fc4bae3388f6c7" - integrity sha512-ZxcOOuyy/dB4pgjdVzBlgwtVue0HEct2XOiuIKM66F5G0DPBqz6UtLDD+8VRofQwTKcTYQh9kPZPmx/9q65Zcg== +"@dhis2-ui/cover@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/cover/-/cover-9.10.1.tgz#c668649399b4b9e9aaffb0209cfa98c868c3b986" + integrity sha512-sU9s3dOQd1kfClZcwPVjG6zBW0l4i91xZvJSODqbFtSX0Tz7OmNwWAC23xYoXl6TaizCk+1iKG5iB2aiay9yuQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/css@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/css/-/css-9.2.0.tgz#ad881b90371c7506690ee2a2b2151c09f793e368" - integrity sha512-dBe9S75+Nj1c9SNRkxU0VWTVwFZJ+vLFKxD1UYaPdbJ2DHD6AD4UJ1YtXgvBvgiJ0wbT1vesh3tKfEUXbnTmkw== +"@dhis2-ui/css@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/css/-/css-9.10.1.tgz#d94b659e3f00c7d353b9f53ab786ebd0dc6fc4cb" + integrity sha512-ZJWv9zRVzl5/08s5WMHPV1WZLhVYDekMvmQNSoBRkLDoitZOtxfTx5ytsgStBpjWPK6lxwCKhh4D7ArI0gQCqA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/divider@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/divider/-/divider-9.2.0.tgz#2f9ea2f3a1f89853963bcffdeef27e5ebc390021" - integrity sha512-z87v4XKIO1IXhWmHYhCQgR7MTiuU+zLMg9Py2OIDxMchVXrdyGSeKCpL9UgOzl/jtHxwoMdnVDzy8sLLzITgsw== +"@dhis2-ui/divider@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/divider/-/divider-9.10.1.tgz#a6fa0af3b02cc28d35180b784cc53ccd5d710173" + integrity sha512-o1OAah4EQMX72cXV/A0dfcORqKDbbbzcSW5jWuFIreAuqC0XRutoDUOaF2NWi2mc4AJsI37o7M1+0w8MCjtOOA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/field@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/field/-/field-9.2.0.tgz#d16b443ff168e352b6f5168d2179975377902dd1" - integrity sha512-pZr1LkzOm4TOPdPAen9e3RHQE8Y1uCbdFhP1oc5vg44etmudX7stJuEXP6/DrPm6sHCJRojf90laqPai1vfrHg== +"@dhis2-ui/field@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/field/-/field-9.10.1.tgz#732d289d274c11f853c8fc399de9703ccb0da327" + integrity sha512-7VOU28pkqkPlcTfD1FWSOLRcmIi4DMSo0ElPA8HwPE8eiBj52XPUQ1LMCuBiosS5sCAeUC74108dNQidTgY+OQ== dependencies: - "@dhis2-ui/box" "9.2.0" - "@dhis2-ui/help" "9.2.0" - "@dhis2-ui/label" "9.2.0" + "@dhis2-ui/box" "9.10.1" + "@dhis2-ui/help" "9.10.1" + "@dhis2-ui/label" "9.10.1" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/file-input@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/file-input/-/file-input-9.2.0.tgz#d48e9d290aea798640b251d915b9a8f51abcf363" - integrity sha512-x+lKilo6aQN320fIAPZMAq13PxKuTb/jhZb7m7pMS0HKsPqfT5rWm1VfmBlN/02BkKsmhsvo/tTe9vxpAic71A== +"@dhis2-ui/file-input@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/file-input/-/file-input-9.10.1.tgz#f1c38080c4f65a35b8383508a22b34bfd0596b05" + integrity sha512-VyXsOs+JSK7P+QFf1byGFWDjs2bIbD2XF1FhbVlEsAwPJ9gLYnwYqkyRNI3VcSg8vbTw1VgYmEd4ODjbQjGMOw== dependencies: - "@dhis2-ui/button" "9.2.0" - "@dhis2-ui/field" "9.2.0" - "@dhis2-ui/label" "9.2.0" - "@dhis2-ui/loader" "9.2.0" - "@dhis2-ui/status-icon" "9.2.0" + "@dhis2-ui/button" "9.10.1" + "@dhis2-ui/field" "9.10.1" + "@dhis2-ui/label" "9.10.1" + "@dhis2-ui/loader" "9.10.1" + "@dhis2-ui/status-icon" "9.10.1" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.10.1" + "@dhis2/ui-icons" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/header-bar@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/header-bar/-/header-bar-9.2.0.tgz#83efe93821318decca3bd1a28d30fd3089435b6d" - integrity sha512-7iNKOllQNeYfa9nJjXVqiohcuKEk+RMhuu/7BY8g2oPmwbvS0uc49KiL53cFfAWBST/v5fU1XOpWS/N7PmJr2g== - dependencies: - "@dhis2-ui/box" "9.2.0" - "@dhis2-ui/button" "9.2.0" - "@dhis2-ui/card" "9.2.0" - "@dhis2-ui/center" "9.2.0" - "@dhis2-ui/divider" "9.2.0" - "@dhis2-ui/input" "9.2.0" - "@dhis2-ui/layer" "9.2.0" - "@dhis2-ui/loader" "9.2.0" - "@dhis2-ui/logo" "9.2.0" - "@dhis2-ui/menu" "9.2.0" - "@dhis2-ui/modal" "9.2.0" - "@dhis2-ui/user-avatar" "9.2.0" +"@dhis2-ui/header-bar@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/header-bar/-/header-bar-9.10.1.tgz#a3b75bb45630f0576bfa411719749eff928fdc24" + integrity sha512-9rDwuL2fO1Zo25Zc2aTjG/h6+k55kPsduh7jvJEqQ1440silP3PrKygPBLvJMxJFHGfhwIsDPa6JC4sONOne3g== + dependencies: + "@dhis2-ui/box" "9.10.1" + "@dhis2-ui/button" "9.10.1" + "@dhis2-ui/card" "9.10.1" + "@dhis2-ui/center" "9.10.1" + "@dhis2-ui/divider" "9.10.1" + "@dhis2-ui/input" "9.10.1" + "@dhis2-ui/layer" "9.10.1" + "@dhis2-ui/loader" "9.10.1" + "@dhis2-ui/logo" "9.10.1" + "@dhis2-ui/menu" "9.10.1" + "@dhis2-ui/modal" "9.10.1" + "@dhis2-ui/user-avatar" "9.10.1" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.10.1" + "@dhis2/ui-icons" "9.10.1" classnames "^2.3.1" moment "^2.29.1" prop-types "^15.7.2" -"@dhis2-ui/help@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/help/-/help-9.2.0.tgz#76556c0d581fb0f7611fe5c5bb0d9adf35ad0c8e" - integrity sha512-qD3oNEwEb+pT7jsD4ciHtu16KrxMySPWoqco5nJwoGbcZFLw/caEfkBo2IroImD0MxtI0mKt5emD7V2yXRWm7A== +"@dhis2-ui/help@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/help/-/help-9.10.1.tgz#e4d9999a15c95e070f78a5bc9cb8f1534859d8d2" + integrity sha512-Ky7ry3KlQBYGY/3Yi2kb3vLq55FYO0ZI9NDBfALtHBsYa/E6ql5Adc2SsL6+1kVSxjXZ5H5Rvg9eg62rz/Rhrg== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/input@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/input/-/input-9.2.0.tgz#bdf7c72e11b818ed86e1e6335cd373ae037f4ef3" - integrity sha512-0bzF/8pZSMqe5ZN2v0t0/rMTvKWd9kl5MDOy9fRXpX6yoFgfH+j+iIU06eVyqJl3DMqCdInfapJvpJR7MHvd+g== +"@dhis2-ui/input@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/input/-/input-9.10.1.tgz#b683732e6b1b0672516c7927f23c87090cc72f11" + integrity sha512-yfZfIlvDfuWpM9YNtB2J6toRjbrzdcKefIExyOIBdgmTamFzp8fCCVUnSUfO3VEdBCM4fqWcHBLDA6/hU5iQpA== dependencies: - "@dhis2-ui/box" "9.2.0" - "@dhis2-ui/field" "9.2.0" - "@dhis2-ui/input" "9.2.0" - "@dhis2-ui/loader" "9.2.0" - "@dhis2-ui/status-icon" "9.2.0" + "@dhis2-ui/box" "9.10.1" + "@dhis2-ui/field" "9.10.1" + "@dhis2-ui/input" "9.10.1" + "@dhis2-ui/loader" "9.10.1" + "@dhis2-ui/status-icon" "9.10.1" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.10.1" + "@dhis2/ui-icons" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/intersection-detector@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/intersection-detector/-/intersection-detector-9.2.0.tgz#31f19bfb8645ebda7d7af6f6e641b40fa1e57888" - integrity sha512-erBoDMhOPmua8eP8bKJNl4WIUUm+Fw3Jj9M0OxC+xia3/Fi8scLUyk0Yek1Y0lGdb4YHJEXqx475dLNjpmiLRQ== +"@dhis2-ui/intersection-detector@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/intersection-detector/-/intersection-detector-9.10.1.tgz#767227650e4436262c91d9d670aa279aca998d3f" + integrity sha512-42RMPz5evHh9Uyu6XleYPGu5PiwkXCN9ZnQhlL1kyAksOtxVxwWyHNk5n7XRjyo9X50CAwcZGtRlXgKavcQ9Nw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/label@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/label/-/label-9.2.0.tgz#81ec2de2ea1b9bc7cf25eb8bb036d451d5b61748" - integrity sha512-k9Q4XyIbaNRvCn1+rLcEb/iDi479S3fOEJ2MCT6wsGxr1+Hys7yVw7Ggq0OQ9SLCEwElNQcvj+vWB4dZltXl5Q== +"@dhis2-ui/label@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/label/-/label-9.10.1.tgz#b4d9de56e9e209d94937c09e83f356bab717a6b3" + integrity sha512-v/bJCTK+zw0tzQ0S1gHFXhxgfbREKcFaEWQKJpn94Woh/ws/uMo+UNd3BIf7iCylCXz/V5/MVCgJhjDjJnB/Ww== dependencies: - "@dhis2-ui/required" "9.2.0" + "@dhis2-ui/required" "9.10.1" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/layer@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/layer/-/layer-9.2.0.tgz#7afcb2ef8571eb9c839fc522eb76ead70e395dbc" - integrity sha512-95aFgQYxgJ7GmWY6AOSoAH4BH7wkIyUAioAIRUDwp0mmSJhJxG6P9b1PFqw4koX1zV4/RLoz+NiQ7Twv+03CLQ== +"@dhis2-ui/layer@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/layer/-/layer-9.10.1.tgz#8f7867ccb62af0b0af5b8a25767e693ee585d38f" + integrity sha512-fV98uG359y1LqKjulStTrc8MJClQ7Ub3RUJ8DgXe/mrps12Ads9SyqN68bPX1Mr++2Ks4IbtC88vRM+XmW0wyA== dependencies: - "@dhis2-ui/portal" "9.2.0" + "@dhis2-ui/portal" "9.10.1" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/legend@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/legend/-/legend-9.2.0.tgz#a051822fd67c1442b6986a86097aca94f3960dd2" - integrity sha512-IfJhu48eu//O9AlHt7IUdsv5E92XG7v/95laFfyQOaGhf1C4BQf11s6yXc3nTFoil/p55oAsZnWp5e7UXcgrhg== +"@dhis2-ui/legend@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/legend/-/legend-9.10.1.tgz#8521c229fa46e1926cb9587a6b0c6c5482f6bcf0" + integrity sha512-w/RrHS6yvi+W872lTw9NZqJMbuYz1FmyP7d3E4uAOxGM7n7dEnfKWgRQhG+GYG935mYLl+aYv0szS36uDgCusg== dependencies: - "@dhis2-ui/required" "9.2.0" + "@dhis2-ui/required" "9.10.1" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/loader@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/loader/-/loader-9.2.0.tgz#f45fdb19a37182351932cd3e11980d43b4895d40" - integrity sha512-M8tuLE5kgm7oHmIN6par8GfRDpmt+DXFU3cCSZdiYIUM6SQSD8G5LmA8AaIHR5h7l430d93vcw7RQL3eeE/svw== +"@dhis2-ui/loader@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/loader/-/loader-9.10.1.tgz#1a48b05a9e8c31d7819f66d22b27288a076cfc02" + integrity sha512-lMlmtyGQGxu48oBVhZGT9USOB5yEqzgSAkTZg/vd+byHm5oMM2m8KNJTH7RT2HHg2Du24E4L2n9+W6ZSAwhMyA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/logo@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/logo/-/logo-9.2.0.tgz#0452aadd8e92afc1c558869a08c8e5d1f14ff55f" - integrity sha512-OEFrSpDijeCIhLjJ8vipDGRdihTgj8+iLcPLDrOeRAurlgJZJZiicxBKSuY6uc6p1/9QPccqX2huJjM1uNqo2g== +"@dhis2-ui/logo@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/logo/-/logo-9.10.1.tgz#b4bd80780786c35a85c1fe2d7888862df3e97213" + integrity sha512-hW1PJGG+l6fHI9XHjOH9565LwUpWaYhELgi+Gjutbcyil0xY4DHO/Nd6YxTui2V5RwnZsFNHEbOJlJRG1oXNbQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/menu@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/menu/-/menu-9.2.0.tgz#996729545b29def9366a099005a17c781bdca8f6" - integrity sha512-8k15qmoqBWKo1Afj+QXFnDAIoDyAqosvq3j8M/+xM+cSn0H+6e3Q7UOp0ByVQlumoY5DyrT9Z7NojULIjFUifQ== +"@dhis2-ui/menu@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/menu/-/menu-9.10.1.tgz#e9d7ef056680ceb3b385940d433d88be02ed6c77" + integrity sha512-Wy2z3FIIX1vhReQucG3aLUtEmjFgCtNDf09U8a+JUjXLmrKH41fcMVvz4mkzmGy4jQf60Przp4tXOpmLwehkHA== dependencies: - "@dhis2-ui/card" "9.2.0" - "@dhis2-ui/divider" "9.2.0" - "@dhis2-ui/layer" "9.2.0" - "@dhis2-ui/popper" "9.2.0" - "@dhis2-ui/portal" "9.2.0" + "@dhis2-ui/card" "9.10.1" + "@dhis2-ui/divider" "9.10.1" + "@dhis2-ui/layer" "9.10.1" + "@dhis2-ui/popper" "9.10.1" + "@dhis2-ui/portal" "9.10.1" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.10.1" + "@dhis2/ui-icons" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/modal@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/modal/-/modal-9.2.0.tgz#7815efe62be4f482b2e2224ffe92981068b1bae9" - integrity sha512-gp+gCTmtoiLVAhigo1i6msE598qIGnkW6To+dTkUecvxyvni+DZTAulTmL62UtTzzjPjYO0yOqNTWQztbpj1KQ== +"@dhis2-ui/modal@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/modal/-/modal-9.10.1.tgz#63453611171a61541d3bb07df9b78697e40ec1aa" + integrity sha512-tvpyQPKqjP42mRJE+Nm33YxgCQkVwDHkLsxkxdaKUj9cMAkQs2hcvD3+QlzuHLf3uVtwPrfKxUM6L79AJIo4RA== dependencies: - "@dhis2-ui/card" "9.2.0" - "@dhis2-ui/center" "9.2.0" - "@dhis2-ui/layer" "9.2.0" - "@dhis2-ui/portal" "9.2.0" + "@dhis2-ui/card" "9.10.1" + "@dhis2-ui/center" "9.10.1" + "@dhis2-ui/layer" "9.10.1" + "@dhis2-ui/portal" "9.10.1" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.10.1" + "@dhis2/ui-icons" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/node@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/node/-/node-9.2.0.tgz#3560b3e7394d275c1bce3e800b2654cddcd2adb2" - integrity sha512-xx7P/6V7vq3JLXUUATKGGUCORHqQL74fsGYUd9a0izyUyq4h3pEHL9ZT6Cel+A0d5ODYn/j/Q6fHICZzg55FBQ== +"@dhis2-ui/node@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/node/-/node-9.10.1.tgz#d70d639edec02dffd1a7fbd3871c10b9463b30e2" + integrity sha512-AvsVsoclCVTq6MFwTejDLDhk+mehOkL8XdpJAWxZ7G0vcS+/xqukHxuVQXgEGOyCpZNPDaIgvz+BPRS+Qf38cA== dependencies: - "@dhis2-ui/loader" "9.2.0" + "@dhis2-ui/loader" "9.10.1" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/notice-box@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/notice-box/-/notice-box-9.2.0.tgz#8c1fb4a2a780fea0fde4b8f9eaf8f73957187c99" - integrity sha512-DY3WYXj1hsOsiBHGaNrOeZ8h7SPaXox6iMCTzL/jLvnfmTrH7wy6SHRLQYWg0BMrDflhMJu9qhn0jtzhEXZNMQ== +"@dhis2-ui/notice-box@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/notice-box/-/notice-box-9.10.1.tgz#0bc013d64da1f1e523c7bcd167987cbe94770947" + integrity sha512-I8n/4qfDlRaoOVpaFEtPwYRx/h6Ee9k+C9Kr3fxflD+lPMfm2O7b6UkoOoY0lKpAQyO1zHkMbIzgJ1o09s9akA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.10.1" + "@dhis2/ui-icons" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/organisation-unit-tree@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/organisation-unit-tree/-/organisation-unit-tree-9.2.0.tgz#ce33d91361145d6574ddbef3866b56be06cee6cb" - integrity sha512-PHm908gNGPhq5D655BI4lrB+hMqfISKASjoFCWxG2f9FU64/pvQ+snZQQwQFMAJYMd6FKw4GOP1isKz0jTGNuA== +"@dhis2-ui/organisation-unit-tree@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/organisation-unit-tree/-/organisation-unit-tree-9.10.1.tgz#8798f023cd9c14e8b586b1249fca92d27d31b3c5" + integrity sha512-Yk6jzVQ36LP+sRXDYA2c+IUGAKS1lO5A8tx79EUQZfMfBnh1TSUAMN7BPtg4BrZmL2Hp+LrKQs32RZLmR6sa8A== dependencies: - "@dhis2-ui/checkbox" "9.2.0" - "@dhis2-ui/loader" "9.2.0" - "@dhis2-ui/node" "9.2.0" + "@dhis2-ui/checkbox" "9.10.1" + "@dhis2-ui/loader" "9.10.1" + "@dhis2-ui/node" "9.10.1" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/pagination@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/pagination/-/pagination-9.2.0.tgz#f38d1ada2bc9f9795dae8f86c52d54f29889dd17" - integrity sha512-jXJNQ8JOPweeMFCsPXgAb8dAx8J/rNTnExL8WA6rfRDWujOojLp8Gu2MrH5jlHRpCBWIl+aJO1I/ZKHekQOeDg== +"@dhis2-ui/pagination@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/pagination/-/pagination-9.10.1.tgz#8ae88b47642d8a0a87cdeb99d6a0607f9185ad8b" + integrity sha512-wmMYYrquaZp5EgUugGIJCyUQ1h6BMHMfFXM4g7KTpvh5n6o9vnElQeWy58EPaL8QDAqk//zsyQMEAXm/YwSbyg== dependencies: - "@dhis2-ui/button" "9.2.0" - "@dhis2-ui/select" "9.2.0" + "@dhis2-ui/button" "9.10.1" + "@dhis2-ui/select" "9.10.1" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.10.1" + "@dhis2/ui-icons" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/popover@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/popover/-/popover-9.2.0.tgz#3eccd6abde1da72089aa5feda5669ce4d1aa6f7e" - integrity sha512-7g8AHPrzUuMuv2MXpX5HdwiyO+peSGoq7hg6rHN/VDasIUvGS7vbaV4Xbxfd32fNmpHceBV7gMga31hRNaKtgw== +"@dhis2-ui/popover@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/popover/-/popover-9.10.1.tgz#edc06a2208a14a9cf69b1217fd9d4bb9f8f3be4a" + integrity sha512-LHxCXotEkqAoBQcax3DICyo/AotLG/gaNzc9iPwan4/hHOiwy5ciwMNh9RycyT90WqtPmTtDBDJFS90BRv5sxw== dependencies: - "@dhis2-ui/layer" "9.2.0" - "@dhis2-ui/popper" "9.2.0" + "@dhis2-ui/layer" "9.10.1" + "@dhis2-ui/popper" "9.10.1" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/popper@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/popper/-/popper-9.2.0.tgz#6d17ca49d7f0496289e11315d414095d93d179b5" - integrity sha512-6xWNvUQaDu8VE4rCa+uYOheb/4BD/52Cs23w2yt4lLAVrym4kV+0cnpHtlEG1ZuuVrK/yHelMjrmYxn6yJE41Q== +"@dhis2-ui/popper@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/popper/-/popper-9.10.1.tgz#841ac08c79f81b6cbf3761c1a6aea261e1612f6e" + integrity sha512-kTfXQsiYcqw2/gRmxbFuFSiYL2giGMxebgHsP/ikONcsM+QNBBtVwEu70uEdfoNMTKrevjssAnhUjB8mPgjwuA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" "@popperjs/core" "^2.10.1" classnames "^2.3.1" prop-types "^15.7.2" react-popper "^2.2.5" resize-observer-polyfill "^1.5.1" -"@dhis2-ui/portal@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/portal/-/portal-9.2.0.tgz#12435f3a8886de685fc9ee4540639810eabf0191" - integrity sha512-a5DqmTG+pn4y1aXZWr8wEGlK4xRqdvnOWJVqO/6aebEn4ZtcPJT6yyXouviAM2yoW7+fDj6TZhKrZo3vgMLHlA== +"@dhis2-ui/portal@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/portal/-/portal-9.10.1.tgz#fd3d45eecbf73281cfc682b4d9c0c7ed47b2fe39" + integrity sha512-0qkHHrOAkyH1mV3C1kAV6SA9c632yfE2DsMb48kTii4wuKqWvXAXoGsqQ12SqyLgvRHgrxaEd0nt1Ap/C8gRQA== dependencies: classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/radio@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/radio/-/radio-9.2.0.tgz#9223ada90fe2d0eae375e85e0d99e6eb81d5269a" - integrity sha512-rjcz05spFlvRL8fnkO/7/ckznY4agQLl5P7UKSFL3Kz0KxvnocmounTX1BDsm6iQhKKt2HqJCYShpzPhTXavSA== +"@dhis2-ui/radio@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/radio/-/radio-9.10.1.tgz#c44f0df810b246758b166988e91cc3e5ac4eabb8" + integrity sha512-VWpR+i4wIVK4SCYrBkA1V6bJaePBVqSvPimPQ22bIhxxWpmK9eOrn3+nSnZi3Fx5HT+UF/axg1Ez49HFPgPulw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/required@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/required/-/required-9.2.0.tgz#8d76c914c3eb483958284c8ddf52ef7095cc2f42" - integrity sha512-cNoQct7gVbrAdzGDDFLnfBktmwmxAhD48oEZ6z4TE7IrPi2N+idqOiQCTEVKEWmuY7VGv9TV0I/1OLX6oiuSvA== +"@dhis2-ui/required@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/required/-/required-9.10.1.tgz#0755f646334eb6425c67bbb20c47b89e79025691" + integrity sha512-vhMUNxaVYfpniR5iofy579sR29m+H/qHkaCscKE2p7B7FmhEGWwN2H+N/CVOAMsAVSgHaMHoGgfM9r44Va0ClA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/segmented-control@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/segmented-control/-/segmented-control-9.2.0.tgz#2b230eea17e35194072544ebbfc68e2c896fb951" - integrity sha512-x4eDqGu4JFfFPQk06mg8YdUCjYeYyXCLmZ0gbGj1Zx03gxpMwb4/nVyGoAxZg31/IVkhBOeAwXlvt+ckNXovgw== +"@dhis2-ui/segmented-control@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/segmented-control/-/segmented-control-9.10.1.tgz#ca4daf18d46d43d1cb46a40204430d85c5bd5dc4" + integrity sha512-LPf2Zrf2aGRxvsmI0lE3+hbE+pZC+ujoT+E+4M8OO+Xue9ssbJf5yLv6t6jqAjpRT8IoGSGTZA2rckl29at6sg== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/select@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/select/-/select-9.2.0.tgz#e854ecf6fd2580f9fb904301d1985923c1ade9cf" - integrity sha512-Hv0mRbpJNHJUa2lVivrWBt67iJ+4xTb7KxZkThISkmpQpzbWmhmJWlDbe0L+PdqOsaB2A70/N9HH4dhQyVP8vA== - dependencies: - "@dhis2-ui/box" "9.2.0" - "@dhis2-ui/button" "9.2.0" - "@dhis2-ui/card" "9.2.0" - "@dhis2-ui/checkbox" "9.2.0" - "@dhis2-ui/chip" "9.2.0" - "@dhis2-ui/field" "9.2.0" - "@dhis2-ui/input" "9.2.0" - "@dhis2-ui/layer" "9.2.0" - "@dhis2-ui/loader" "9.2.0" - "@dhis2-ui/popper" "9.2.0" - "@dhis2-ui/status-icon" "9.2.0" +"@dhis2-ui/select@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/select/-/select-9.10.1.tgz#c8e7083632e44c26874ff9e4d2ca05db80028989" + integrity sha512-eHr1zkVBjjC1mLPnYUKjMdxqQteXGIA4L0viKq7ab34GttZVu3fuuVhg+cV0XjZm03YWex0nmwbSlk00oDjnJQ== + dependencies: + "@dhis2-ui/box" "9.10.1" + "@dhis2-ui/button" "9.10.1" + "@dhis2-ui/card" "9.10.1" + "@dhis2-ui/checkbox" "9.10.1" + "@dhis2-ui/chip" "9.10.1" + "@dhis2-ui/field" "9.10.1" + "@dhis2-ui/input" "9.10.1" + "@dhis2-ui/layer" "9.10.1" + "@dhis2-ui/loader" "9.10.1" + "@dhis2-ui/popper" "9.10.1" + "@dhis2-ui/status-icon" "9.10.1" + "@dhis2-ui/tooltip" "9.10.1" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.10.1" + "@dhis2/ui-icons" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/selector-bar@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/selector-bar/-/selector-bar-9.2.0.tgz#23790f850bee1142e7bdffd711a2dea27dc78112" - integrity sha512-HDb/XKuUdD82vDh5mgz+OWIwpKjyiZEqek74y8g2r/AsMIl5Fe2rOyncOUPpGctxYeVp9u3gAlkFbIHd/qpv/w== - dependencies: - "@dhis2-ui/button" "9.2.0" - "@dhis2-ui/card" "9.2.0" - "@dhis2-ui/layer" "9.2.0" - "@dhis2-ui/popper" "9.2.0" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" +"@dhis2-ui/selector-bar@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/selector-bar/-/selector-bar-9.10.1.tgz#6dbc1759ed17fb487b704e2f0d177601844b4cc8" + integrity sha512-K9z/rJML4owFYkrZ6uzpOAvtuJXQ5Thyo4Pb3vQGCM8ORbGKme4QewU8UA9AP4aiU5zDDJjZF1+K0ft+7ugITQ== + dependencies: + "@dhis2-ui/button" "9.10.1" + "@dhis2-ui/card" "9.10.1" + "@dhis2-ui/layer" "9.10.1" + "@dhis2-ui/popper" "9.10.1" + "@dhis2/ui-constants" "9.10.1" + "@dhis2/ui-icons" "9.10.1" "@testing-library/react" "^12.1.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/sharing-dialog@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/sharing-dialog/-/sharing-dialog-9.2.0.tgz#8818e5119c2113b3a54add3bd56dfe55ad2fc52a" - integrity sha512-h7chsY8XM2kw06r52pGRjS8ZknuwiEkRxuBTXD77G1Loni5TMm6xr0OFr9nSQHSsbcbxydbo2WPRPAu6WjVyfg== - dependencies: - "@dhis2-ui/box" "9.2.0" - "@dhis2-ui/button" "9.2.0" - "@dhis2-ui/card" "9.2.0" - "@dhis2-ui/divider" "9.2.0" - "@dhis2-ui/input" "9.2.0" - "@dhis2-ui/layer" "9.2.0" - "@dhis2-ui/menu" "9.2.0" - "@dhis2-ui/modal" "9.2.0" - "@dhis2-ui/notice-box" "9.2.0" - "@dhis2-ui/popper" "9.2.0" - "@dhis2-ui/select" "9.2.0" - "@dhis2-ui/tab" "9.2.0" - "@dhis2-ui/tooltip" "9.2.0" - "@dhis2-ui/user-avatar" "9.2.0" +"@dhis2-ui/sharing-dialog@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/sharing-dialog/-/sharing-dialog-9.10.1.tgz#d73a7b2f013719b7abfc958078369d6c596c4d41" + integrity sha512-yvvF3zav5b8a5ZCTtWX0Clped4dvlR9OXnnurgZPLGcELFIQRnW1ttusVhBNGHIJfItCeX3vRYhB0a/j1sXAmw== + dependencies: + "@dhis2-ui/box" "9.10.1" + "@dhis2-ui/button" "9.10.1" + "@dhis2-ui/card" "9.10.1" + "@dhis2-ui/divider" "9.10.1" + "@dhis2-ui/input" "9.10.1" + "@dhis2-ui/layer" "9.10.1" + "@dhis2-ui/menu" "9.10.1" + "@dhis2-ui/modal" "9.10.1" + "@dhis2-ui/notice-box" "9.10.1" + "@dhis2-ui/popper" "9.10.1" + "@dhis2-ui/select" "9.10.1" + "@dhis2-ui/tab" "9.10.1" + "@dhis2-ui/tooltip" "9.10.1" + "@dhis2-ui/user-avatar" "9.10.1" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.10.1" + "@dhis2/ui-icons" "9.10.1" "@react-hook/size" "^2.1.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/status-icon@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/status-icon/-/status-icon-9.2.0.tgz#5686721ef7dc1b1cd1cca315b11136e0809e568f" - integrity sha512-oILHs38xICDU27C7CXgFAEttU4QJzg0wImKlX4XVJ5z1aGeq6qOW0RUVibF6JtyAppEi9XsYZ+AB1KLEGnDFJw== +"@dhis2-ui/status-icon@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/status-icon/-/status-icon-9.10.1.tgz#e23274968cd304d23770dca9970d5036c758ce53" + integrity sha512-l9H5eplY9Q/02ItoEDKG70z06lODG9Rc5jgOBQN8WS9K0U67Ux/BYcJuyXUGz77ai8C+LQru1A9Bq7Kug7zr6w== dependencies: - "@dhis2-ui/loader" "9.2.0" + "@dhis2-ui/loader" "9.10.1" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.10.1" + "@dhis2/ui-icons" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/switch@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/switch/-/switch-9.2.0.tgz#1fc9ed88546906da11aa19348b8ba8ff2e7c8414" - integrity sha512-IwVUiqxMKZmx7VtEJkyHqGzy4tvRNh4qbhmrFodaH6d9YrbycaFNECbphrT1OywrUBuci0Q2LovZhYKInkeIFg== +"@dhis2-ui/switch@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/switch/-/switch-9.10.1.tgz#886cb5955274526331e6fa07127c4d8f236403f7" + integrity sha512-ZcbCJJlv9VG8BuQQ0Hhw2JueJjbFuIm5tXozmC9GaTd2F2v1FDHsMJpIenY+RcgK/SWRbCF6iYdyONBw2nn29g== dependencies: - "@dhis2-ui/field" "9.2.0" - "@dhis2-ui/required" "9.2.0" + "@dhis2-ui/field" "9.10.1" + "@dhis2-ui/required" "9.10.1" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/tab@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/tab/-/tab-9.2.0.tgz#910223a907f8c007921924138306b53c2014f0fd" - integrity sha512-zVxwQ7WgjcrCGd+qWzLx+OtTWlGOIuC+AuSknHz0wpGgW3vawr1rMDA6j129l4O+ezzPs5bw8vN3xUQORbj0Bg== +"@dhis2-ui/tab@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tab/-/tab-9.10.1.tgz#8e9b6d1b7610617981bbc24a02ff87b150a00c8d" + integrity sha512-SghJvw5EImrFB7yOlOtBqQX0N8w8y8OAivSIsqScF/ejTR8m7dSRrWXLBBawfo0ht6dOs9l0Fje3Ej0MU+40yA== dependencies: + "@dhis2-ui/tooltip" "9.10.1" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.10.1" + "@dhis2/ui-icons" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/table@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/table/-/table-9.2.0.tgz#83d535e6c60ff9c9c3f436e592489a131caef772" - integrity sha512-wep8wPQKRg5vYPGg3HLAvsAEo+lUk3L7wO7axHyzx/XuHR40QXRirpv4tsFVn8VPpSFVq0w/BFGp8ijp3Y6RtA== +"@dhis2-ui/table@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/table/-/table-9.10.1.tgz#51c8e4973c1174edcf94627b3a5513340be85b12" + integrity sha512-nWSWN16EHnF1Q6UGP36P5xmYxxhcKPl706XLcBbNGbSULY4a90hXQJnCcuWAoulSgZtC7D7XhiwcD8diNY2Q1w== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.10.1" + "@dhis2/ui-icons" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/tag@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/tag/-/tag-9.2.0.tgz#c6a11fbdfc20151cc75c323e6a6b1470ef064e58" - integrity sha512-qt/FUIFPZkghfF/fhhLHr4oOl54d1Zwy4CKf4cZmO2DSd09h7E7cfIUxXaX/shRHsSmeUhrFP2Nv5LAvu8XVUg== +"@dhis2-ui/tag@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tag/-/tag-9.10.1.tgz#8bad6d9e6f9ef3aa761bc98c3cbed9455261e633" + integrity sha512-iiZu51CQSBOWkkYk56iiVuzieFbHjUC55YDkJpHHb2QhgU+6LzacTltP3vOBWIw/BKaMWLkQjvf/XyjWHJd3/Q== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/text-area@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/text-area/-/text-area-9.2.0.tgz#75f279281f1513801148f11c2693537a5e9beed7" - integrity sha512-KLBlerlO3OvBvzTVKKolfghaAMjDPUZkxFsyRvWEIPh1RRxS9ZprunXpBWRkNO2I6U6uwqN0DiBLTNbh/zrafg== +"@dhis2-ui/text-area@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/text-area/-/text-area-9.10.1.tgz#b4e54872f85fa3825d8bfea0d2c7772e6a3b5c65" + integrity sha512-kTOXmANxFYR2+FO4ZrUnxOSxuQXcNcVSUTa/Em/X7cOzoqeDK5VeQ0HB3PnppFEMk3cBnbHTOlixlm8EwQQJ9Q== dependencies: - "@dhis2-ui/box" "9.2.0" - "@dhis2-ui/field" "9.2.0" - "@dhis2-ui/loader" "9.2.0" - "@dhis2-ui/status-icon" "9.2.0" + "@dhis2-ui/box" "9.10.1" + "@dhis2-ui/field" "9.10.1" + "@dhis2-ui/loader" "9.10.1" + "@dhis2-ui/status-icon" "9.10.1" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.10.1" + "@dhis2/ui-icons" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/tooltip@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/tooltip/-/tooltip-9.2.0.tgz#e7a0827d9ca6b30b69073916f7801d01fb7c9793" - integrity sha512-7Gb/Occ5/Bju95dnxUGzt/Q4129zqGWrxu1+S2uhc0YPRSx83JcG0MivPsVsr0BeU+p+8xwTVdGBOhMmqLpL9Q== +"@dhis2-ui/tooltip@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tooltip/-/tooltip-9.10.1.tgz#598008b4c8eedf397ad76c313f1c6ab121af6a84" + integrity sha512-2kbvbo319mR5NHbfwcL4cVndwE97VQXgsllOFXe++0ywGwwCqvo/uQDbA6Fpzdc5CfiFnGshMPbz4HAGiHB+9g== dependencies: - "@dhis2-ui/popper" "9.2.0" - "@dhis2-ui/portal" "9.2.0" + "@dhis2-ui/popper" "9.10.1" + "@dhis2-ui/portal" "9.10.1" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/transfer@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/transfer/-/transfer-9.2.0.tgz#3624d08100b72143da5639ce231b53d57706ffdc" - integrity sha512-1+SdfeCBr+iOLaXf4gkpNLlysaBsWLOmlVzBdGVqFt4I4SMJrhFrCMUTz4A1Nsw7GpKGds35vGClQUe5LcuVSw== +"@dhis2-ui/transfer@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/transfer/-/transfer-9.10.1.tgz#1c70b0a9be82d3b60202e3ff872ecb1456106df9" + integrity sha512-v09uS4XwOUBz/taPxA3R5lCIGQAVRDb1DFmZqTlSAA2/UES3SsyjFoEdITO0LGpJilSc8Zw7wVlsVbMRDC7JbA== dependencies: - "@dhis2-ui/button" "9.2.0" - "@dhis2-ui/field" "9.2.0" - "@dhis2-ui/input" "9.2.0" - "@dhis2-ui/intersection-detector" "9.2.0" - "@dhis2-ui/loader" "9.2.0" + "@dhis2-ui/button" "9.10.1" + "@dhis2-ui/field" "9.10.1" + "@dhis2-ui/input" "9.10.1" + "@dhis2-ui/intersection-detector" "9.10.1" + "@dhis2-ui/loader" "9.10.1" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/user-avatar@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/user-avatar/-/user-avatar-9.2.0.tgz#722b4bad239aff8eb2b639ca51bd6528a08da1e4" - integrity sha512-XRop5Mmc5q1GnrM3YgIEdjw0OX7/KA9ZdxRNS4AU7ifYMEjUNutYmq8a2bJ1M6eZfq2DrhRQui9/1E7MvK+Evw== +"@dhis2-ui/user-avatar@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2-ui/user-avatar/-/user-avatar-9.10.1.tgz#c0998148e52dedbe8f0da00e886c09726a4946c5" + integrity sha512-uGLzEl7C3/fjJ9A1/t5+Rw4fKaj7sh7tAMXGSKytBYOMHkTPEXCRK1jGrGGKP4+dJVJPqRBvyBGGd7bd7ZwGvQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.10.1" classnames "^2.3.1" prop-types "^15.7.2" @@ -2037,12 +2039,12 @@ react-beautiful-dnd "^10.1.1" resize-observer-polyfill "^1.5.1" -"@dhis2/app-adapter@10.3.11": - version "10.3.11" - resolved "https://registry.yarnpkg.com/@dhis2/app-adapter/-/app-adapter-10.3.11.tgz#a5322deba404fb405f80925684d7a5d9cdc48c81" - integrity sha512-H36P1tqSuzMyu4/uxSVFsEIXrWXzqVG1NPtANY+xEJcmrOoXH7YuiKvJu/Dl4rINDkERuUM+GwWMMgfBuMmrUw== +"@dhis2/app-adapter@11.6.1": + version "11.6.1" + resolved "https://registry.yarnpkg.com/@dhis2/app-adapter/-/app-adapter-11.6.1.tgz#51395fcb3d031cf1edc21ee613ff243712673cdc" + integrity sha512-/4zj7+nu04i0EILo7ivqKyXIe9VTCN7DJmU3I8mCQTJKUgpwNTFrl1l/AkvkcQBLjaTq0UXIRMd0lfTV370C2A== dependencies: - "@dhis2/pwa" "10.3.11" + "@dhis2/pwa" "11.6.1" moment "^2.24.0" "@dhis2/app-runtime-adapter-d2@^1.1.0": @@ -2052,30 +2054,31 @@ dependencies: prop-types "^15.7.2" -"@dhis2/app-runtime@3.9.4", "@dhis2/app-runtime@^3.9.0": - version "3.9.4" - resolved "https://registry.yarnpkg.com/@dhis2/app-runtime/-/app-runtime-3.9.4.tgz#88243dbb9a4a805be744a61cffd13a4c3d2d031d" - integrity sha512-CBwMXer5/Kcxf6MgfwPgpEaUSXbDXzwItCkH3i0nsjmkD0KIaEOZ6Y1pQL+/5RYnziZ5glYCFWsCKn0eCJrdJg== +"@dhis2/app-runtime@^3.10.4", "@dhis2/app-runtime@^3.10.5": + version "3.10.5" + resolved "https://registry.yarnpkg.com/@dhis2/app-runtime/-/app-runtime-3.10.5.tgz#de6f37a872deef322017d37ab4f1597bc9ad42d6" + integrity sha512-Y07FY3ZGGI8oaCxVcJXu8P/x0WZWt9luLWd8pGPDK2+59NjyVTuevJkH7BM//oZI9+M91ExIRiELNe2ZdXLInQ== dependencies: - "@dhis2/app-service-alerts" "3.9.4" - "@dhis2/app-service-config" "3.9.4" - "@dhis2/app-service-data" "3.9.4" - "@dhis2/app-service-offline" "3.9.4" + "@dhis2/app-service-alerts" "3.10.5" + "@dhis2/app-service-config" "3.10.5" + "@dhis2/app-service-data" "3.10.5" + "@dhis2/app-service-offline" "3.10.5" + "@dhis2/app-service-plugin" "3.10.5" -"@dhis2/app-service-alerts@3.9.4": - version "3.9.4" - resolved "https://registry.yarnpkg.com/@dhis2/app-service-alerts/-/app-service-alerts-3.9.4.tgz#5aed2b191bb98bbf5eb14babb495b70f28b69aff" - integrity sha512-Oq2PZMcYyB+uXNwmifclv8oVobuKLTfN9ia7Gwa5G63c7Zjl4HldOxrM3TGDnsGYWfuGxtm8LNuzKfFX91HWmg== +"@dhis2/app-service-alerts@3.10.5": + version "3.10.5" + resolved "https://registry.yarnpkg.com/@dhis2/app-service-alerts/-/app-service-alerts-3.10.5.tgz#93c883d91cdcc03176110a20382ba1e299f2ffd6" + integrity sha512-YecE1tznyoVu22wN2KrSSZH1vahFz5zJ77fgGruOwd71KoMEqkFIoT2mUuYznH+pLhKvlP/ZB6SZjELiO7pEfg== -"@dhis2/app-service-config@3.9.4": - version "3.9.4" - resolved "https://registry.yarnpkg.com/@dhis2/app-service-config/-/app-service-config-3.9.4.tgz#4cab3a4ba090e53235f01c6a6913467171052d89" - integrity sha512-hiJr33zNWjUWJDx8l7tFMDfzX11euE+t6+ph2x9LnQ9KHDXFhh3GZhyQnX+8IATtlS4Fx9fjz2scQhGsg2dt0g== +"@dhis2/app-service-config@3.10.5": + version "3.10.5" + resolved "https://registry.yarnpkg.com/@dhis2/app-service-config/-/app-service-config-3.10.5.tgz#a97b7bc8fdb311ecf149efb452245708d4f8744d" + integrity sha512-qW2zopHjyVyzgAYs2+BlIMpIZcKTIzHQjCBI8fxkPNpSQhKxC2i4O/RYaIBtW6kuTbU9BCKxO+qrrRnhnOb7Vw== -"@dhis2/app-service-data@3.9.4": - version "3.9.4" - resolved "https://registry.yarnpkg.com/@dhis2/app-service-data/-/app-service-data-3.9.4.tgz#03cd4cc40a316670d5ae328488cc8ef2a8a9b377" - integrity sha512-3AFwBkR1H8M6b+T5N3vcRsx9iiJm5LjltXYkbA9fmxcjJ02VoHa2B3a529pp8w9qSp7mpAF4Kmr3gZPvFpBRDA== +"@dhis2/app-service-data@3.10.5": + version "3.10.5" + resolved "https://registry.yarnpkg.com/@dhis2/app-service-data/-/app-service-data-3.10.5.tgz#a1b533e32c6506fe2967f840ed4bd11987170c2f" + integrity sha512-edAG57lAPNs3NnboDI+SZ5+xKzU3vk7AiZ+P6onnFfqwDVqWgxnl1qJUO5ZvPdslsli3ZJYqEjMh03ChtF5zeA== dependencies: react-query "^3.13.11" @@ -2092,25 +2095,33 @@ "@dhis2/app-service-data" "^2.1.1" uuid "^8.1.0" -"@dhis2/app-service-offline@3.9.4": - version "3.9.4" - resolved "https://registry.yarnpkg.com/@dhis2/app-service-offline/-/app-service-offline-3.9.4.tgz#ba4f3a916ca9a4c714fdedac51c66daa4f2c6bd7" - integrity sha512-vtv9V3Za/ukujPpqBRGkKZTloM2Cu29J+zHziyrTKC+hVsw8p3d4dHgXvpOGLcjq3ePAvEX4aEZK9+VCHnNFRQ== +"@dhis2/app-service-offline@3.10.5": + version "3.10.5" + resolved "https://registry.yarnpkg.com/@dhis2/app-service-offline/-/app-service-offline-3.10.5.tgz#f38f8ac1fb04c9ea40dd6ea4af4fe2e43f6f2be2" + integrity sha512-i5i6abootrCyy2VTC6hB8NKEART6HzAAtSP05gxtoqTLGlVMQGOdm56hojeZGdWRoU/CmGBmgy283r6zUbMW0A== dependencies: lodash "^4.17.21" -"@dhis2/app-shell@10.3.11": - version "10.3.11" - resolved "https://registry.yarnpkg.com/@dhis2/app-shell/-/app-shell-10.3.11.tgz#461a19159ae6938e705ab793005403327b1ad95b" - integrity sha512-DCEOFK5i2/oNOOz33SqQ/7J3LJN0zUYMukdS/arEQCR9zP4bs+1yHGNRXtv8XoQRiYzdlIXsimlZzOm1ZDsxTw== +"@dhis2/app-service-plugin@3.10.5": + version "3.10.5" + resolved "https://registry.yarnpkg.com/@dhis2/app-service-plugin/-/app-service-plugin-3.10.5.tgz#cf6261f44c802a5f82dafeeffdf64761296258fc" + integrity sha512-8FBe1udhLGVoyMq/4jaLjY32D8u2tvWtY75T7AfaIthB6U5KPzgQeGRqeU1om3LlCkxuyILYgHrR4g5i1LlOIA== dependencies: - "@dhis2/app-adapter" "10.3.11" - "@dhis2/app-runtime" "^3.9.0" + post-robot "^10.0.46" + +"@dhis2/app-shell@11.6.1": + version "11.6.1" + resolved "https://registry.yarnpkg.com/@dhis2/app-shell/-/app-shell-11.6.1.tgz#a9b9442111ca557bf31e0bf3883dd243a55ef8d0" + integrity sha512-1lCHDOq7AM26RHJfuIMQgULuFJ6vfNSsedj7fmpZrKuIhGjGNpuLdNk+ytoq+2ZrB7whVv50btIGEwjkJWjHmw== + dependencies: + "@dhis2/app-adapter" "11.6.1" + "@dhis2/app-runtime" "^3.10.4" "@dhis2/d2-i18n" "^1.1.1" - "@dhis2/pwa" "10.3.11" - "@dhis2/ui" "^8.12.3" + "@dhis2/pwa" "11.6.1" + "@dhis2/ui" "^9.8.9" classnames "^2.2.6" moment "^2.29.1" + post-robot "^10.0.46" prop-types "^15.7.2" react "^16.8.6" react-dom "^16.8.6" @@ -2120,10 +2131,10 @@ typeface-roboto "^0.0.75" typescript "^3.6.3" -"@dhis2/cli-app-scripts@10.3.11": - version "10.3.11" - resolved "https://registry.yarnpkg.com/@dhis2/cli-app-scripts/-/cli-app-scripts-10.3.11.tgz#024920726eb9a9057fa1f73d745b9a75b5d55b7e" - integrity sha512-j7fetbmlSSHdGz9YlGJMaKyLzfEGWnOoaKvi53UfI0e3k7EIBbc9YTLH6qoYJX4KvvXNjB9ICNjvTFEjWHeIZw== +"@dhis2/cli-app-scripts@11.6.1": + version "11.6.1" + resolved "https://registry.yarnpkg.com/@dhis2/cli-app-scripts/-/cli-app-scripts-11.6.1.tgz#e140b2347c31e3ba36fbed35af4298dd07855bcf" + integrity sha512-xJTYXAJjUpz5iGhKIae0UN8IeXFVE1GhBf0JmNI5lkKl9Xk+9v2HVUMkVF0eUKyKdAaoeofWHKLHlQf7eqT0pQ== dependencies: "@babel/core" "^7.6.2" "@babel/plugin-proposal-class-properties" "^7.8.3" @@ -2132,7 +2143,7 @@ "@babel/preset-env" "^7.14.7" "@babel/preset-react" "^7.0.0" "@babel/preset-typescript" "^7.6.0" - "@dhis2/app-shell" "10.3.11" + "@dhis2/app-shell" "11.6.1" "@dhis2/cli-helpers-engine" "^3.2.0" "@jest/core" "^27.0.6" "@pmmmwh/react-refresh-webpack-plugin" "^0.5.4" @@ -2254,15 +2265,7 @@ suggestions "^1.7.1" uuid "^9.0.0" -"@dhis2/multi-calendar-dates@1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@dhis2/multi-calendar-dates/-/multi-calendar-dates-1.0.2.tgz#e54dc85e512aba93fceef3004e67e199077f3ba8" - integrity sha512-oQZ7PFMwHFpt4ygDN9DmAeYO3g07L7AHJW6diZ37mzpkEF/DyMafhsZHnJWNlTH5HDp8nYuO3EjBiM7fZN6C0g== - dependencies: - "@js-temporal/polyfill" "^0.4.2" - classnames "^2.3.2" - -"@dhis2/multi-calendar-dates@^1.2.2": +"@dhis2/multi-calendar-dates@^1.2.2", "@dhis2/multi-calendar-dates@^1.2.3": version "1.2.3" resolved "https://registry.yarnpkg.com/@dhis2/multi-calendar-dates/-/multi-calendar-dates-1.2.3.tgz#ef36bc80b34eaaa7f7cefa51b443528c019ff2d2" integrity sha512-K3E9yAH/SPXi1O7RWuK7bznYTa1v3x4Ys0ihpMWnKH++OLMx76yK/1H1m9v7NgQvMry29ATQMJh0n/vJSg+EpA== @@ -2276,10 +2279,10 @@ resolved "https://registry.yarnpkg.com/@dhis2/prop-types/-/prop-types-3.1.2.tgz#65b8ad2da8cd2f72bc8b951049a6c9d1b97af3e9" integrity sha512-eM0jjLOWvtXWqSFp5YC4DHFpkP8Y1D2eUwGV7MBWjni+o27oesVan+oT7WHeOeLdlAd4acRJrnaaAyB4Ck1wGQ== -"@dhis2/pwa@10.3.11": - version "10.3.11" - resolved "https://registry.yarnpkg.com/@dhis2/pwa/-/pwa-10.3.11.tgz#6eb5a692fe92a56bd6ffa56f06322617c15968dc" - integrity sha512-nHQhNDe0MTEG3/YcdBDcGD6NwcDoDKUyJWbtC8xErEKbHIns0HWjhIC+NPMrVu3NxEv1HZiHupK9lnfzPVJC4Q== +"@dhis2/pwa@11.6.1": + version "11.6.1" + resolved "https://registry.yarnpkg.com/@dhis2/pwa/-/pwa-11.6.1.tgz#4f2c3d4f03b6f285d88995e234d1ca4b9383414c" + integrity sha512-8qrj715bzl/3wEKyIqvIa7Wvn3vlPhTKV9T3E8gqnQBi0aD0xRwPlFnxxMBTlI3qx8sj45HDO81Dt9KbvlE+6w== dependencies: idb "^6.0.0" workbox-core "^6.1.5" @@ -2287,91 +2290,91 @@ workbox-routing "^6.1.5" workbox-strategies "^6.1.5" -"@dhis2/ui-constants@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2/ui-constants/-/ui-constants-9.2.0.tgz#47506acaec5e4ce28630519a630a05657d2d29f6" - integrity sha512-gMbnVJQJmCPoGJHnY09BoDe6Z1vukzFdUcm0HPYyijs8ZWnclLs+69iVamxhskOnNWgj8hEt/FVs4mfhMcW3Cg== +"@dhis2/ui-constants@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2/ui-constants/-/ui-constants-9.10.1.tgz#f9491b1a5af1483b85aa43b120e4f782e15eb33d" + integrity sha512-FB1AgraRWC35lpEPAZvuJJmFqi69xwJBe3gIwHaFs8LHA9bah4yt67E8VRHvQWDrGQgyUU8uirXmG9jLQ/Fm3Q== dependencies: prop-types "^15.7.2" -"@dhis2/ui-forms@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2/ui-forms/-/ui-forms-9.2.0.tgz#a5651dc5010a495c8a52ef5484e7d44b2583b715" - integrity sha512-eodiPW+ahR5wVsgrl/bFvj2zyeJD+DR9woqys4ZyoaHlKjOdeLqDNbJDnrS+AmHfte5uorF/aWzmEZr825LBVg== - dependencies: - "@dhis2-ui/button" "9.2.0" - "@dhis2-ui/checkbox" "9.2.0" - "@dhis2-ui/field" "9.2.0" - "@dhis2-ui/file-input" "9.2.0" - "@dhis2-ui/input" "9.2.0" - "@dhis2-ui/radio" "9.2.0" - "@dhis2-ui/select" "9.2.0" - "@dhis2-ui/switch" "9.2.0" - "@dhis2-ui/text-area" "9.2.0" +"@dhis2/ui-forms@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2/ui-forms/-/ui-forms-9.10.1.tgz#52cfc6c8d0feab615749217a37b882eea70eeeff" + integrity sha512-9LEECuQaVG6IEj4TJRgV1DvCTFZYMd20uoAn0aA8Zz1kBU+agk4OwSXlBR04A/tovD8tK32AyFEUZalkRN2oEA== + dependencies: + "@dhis2-ui/button" "9.10.1" + "@dhis2-ui/checkbox" "9.10.1" + "@dhis2-ui/field" "9.10.1" + "@dhis2-ui/file-input" "9.10.1" + "@dhis2-ui/input" "9.10.1" + "@dhis2-ui/radio" "9.10.1" + "@dhis2-ui/select" "9.10.1" + "@dhis2-ui/switch" "9.10.1" + "@dhis2-ui/text-area" "9.10.1" "@dhis2/prop-types" "^3.1.2" classnames "^2.3.1" final-form "^4.20.2" prop-types "^15.7.2" react-final-form "^6.5.3" -"@dhis2/ui-icons@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2/ui-icons/-/ui-icons-9.2.0.tgz#bddf5223cabec93c9499281b2181eb165346b639" - integrity sha512-g9993UGWVLwDcbV+wp3HqrK8AXFu49aped0GpZsQUlGbHIzEl1EgmjiII44N40VbXwVUnqIDmu99wBxpH5Gd+g== - -"@dhis2/ui@^8.12.3", "@dhis2/ui@^9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@dhis2/ui/-/ui-9.2.0.tgz#33d474cbc7cd95f8a714e019d6c69e144f77f86b" - integrity sha512-nhKwW5bmIfQvt3L16PffFO2NsDk9BgYb91vHx06fPgM56UdwGYSejpax8eU29vE9urmHSkijSpnBqY4buZy6Ow== - dependencies: - "@dhis2-ui/alert" "9.2.0" - "@dhis2-ui/box" "9.2.0" - "@dhis2-ui/button" "9.2.0" - "@dhis2-ui/calendar" "9.2.0" - "@dhis2-ui/card" "9.2.0" - "@dhis2-ui/center" "9.2.0" - "@dhis2-ui/checkbox" "9.2.0" - "@dhis2-ui/chip" "9.2.0" - "@dhis2-ui/cover" "9.2.0" - "@dhis2-ui/css" "9.2.0" - "@dhis2-ui/divider" "9.2.0" - "@dhis2-ui/field" "9.2.0" - "@dhis2-ui/file-input" "9.2.0" - "@dhis2-ui/header-bar" "9.2.0" - "@dhis2-ui/help" "9.2.0" - "@dhis2-ui/input" "9.2.0" - "@dhis2-ui/intersection-detector" "9.2.0" - "@dhis2-ui/label" "9.2.0" - "@dhis2-ui/layer" "9.2.0" - "@dhis2-ui/legend" "9.2.0" - "@dhis2-ui/loader" "9.2.0" - "@dhis2-ui/logo" "9.2.0" - "@dhis2-ui/menu" "9.2.0" - "@dhis2-ui/modal" "9.2.0" - "@dhis2-ui/node" "9.2.0" - "@dhis2-ui/notice-box" "9.2.0" - "@dhis2-ui/organisation-unit-tree" "9.2.0" - "@dhis2-ui/pagination" "9.2.0" - "@dhis2-ui/popover" "9.2.0" - "@dhis2-ui/popper" "9.2.0" - "@dhis2-ui/portal" "9.2.0" - "@dhis2-ui/radio" "9.2.0" - "@dhis2-ui/required" "9.2.0" - "@dhis2-ui/segmented-control" "9.2.0" - "@dhis2-ui/select" "9.2.0" - "@dhis2-ui/selector-bar" "9.2.0" - "@dhis2-ui/sharing-dialog" "9.2.0" - "@dhis2-ui/switch" "9.2.0" - "@dhis2-ui/tab" "9.2.0" - "@dhis2-ui/table" "9.2.0" - "@dhis2-ui/tag" "9.2.0" - "@dhis2-ui/text-area" "9.2.0" - "@dhis2-ui/tooltip" "9.2.0" - "@dhis2-ui/transfer" "9.2.0" - "@dhis2-ui/user-avatar" "9.2.0" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-forms" "9.2.0" - "@dhis2/ui-icons" "9.2.0" +"@dhis2/ui-icons@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2/ui-icons/-/ui-icons-9.10.1.tgz#d930ecf48e17969ba51617ff2880133266a77a46" + integrity sha512-OUnShRkXRewIfEq0EPEXR1Phc1PTZOMDATkNUiYr+6Zy1IOxENa1dmeN58mAXlZIxxFH6Fd5wQIqax/iqz40PQ== + +"@dhis2/ui@^9.8.9": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@dhis2/ui/-/ui-9.10.1.tgz#66b8384f22eb44313fd1f34c76c8615ec5b91e76" + integrity sha512-Zb5cwoNEfi5VGySow8WA+3LE1VD9mdDMK35Fj4Wg+Q3nL9JknxUUl2cLafZaTqjytyHE2AIel/n5RyqlYtun+Q== + dependencies: + "@dhis2-ui/alert" "9.10.1" + "@dhis2-ui/box" "9.10.1" + "@dhis2-ui/button" "9.10.1" + "@dhis2-ui/calendar" "9.10.1" + "@dhis2-ui/card" "9.10.1" + "@dhis2-ui/center" "9.10.1" + "@dhis2-ui/checkbox" "9.10.1" + "@dhis2-ui/chip" "9.10.1" + "@dhis2-ui/cover" "9.10.1" + "@dhis2-ui/css" "9.10.1" + "@dhis2-ui/divider" "9.10.1" + "@dhis2-ui/field" "9.10.1" + "@dhis2-ui/file-input" "9.10.1" + "@dhis2-ui/header-bar" "9.10.1" + "@dhis2-ui/help" "9.10.1" + "@dhis2-ui/input" "9.10.1" + "@dhis2-ui/intersection-detector" "9.10.1" + "@dhis2-ui/label" "9.10.1" + "@dhis2-ui/layer" "9.10.1" + "@dhis2-ui/legend" "9.10.1" + "@dhis2-ui/loader" "9.10.1" + "@dhis2-ui/logo" "9.10.1" + "@dhis2-ui/menu" "9.10.1" + "@dhis2-ui/modal" "9.10.1" + "@dhis2-ui/node" "9.10.1" + "@dhis2-ui/notice-box" "9.10.1" + "@dhis2-ui/organisation-unit-tree" "9.10.1" + "@dhis2-ui/pagination" "9.10.1" + "@dhis2-ui/popover" "9.10.1" + "@dhis2-ui/popper" "9.10.1" + "@dhis2-ui/portal" "9.10.1" + "@dhis2-ui/radio" "9.10.1" + "@dhis2-ui/required" "9.10.1" + "@dhis2-ui/segmented-control" "9.10.1" + "@dhis2-ui/select" "9.10.1" + "@dhis2-ui/selector-bar" "9.10.1" + "@dhis2-ui/sharing-dialog" "9.10.1" + "@dhis2-ui/switch" "9.10.1" + "@dhis2-ui/tab" "9.10.1" + "@dhis2-ui/table" "9.10.1" + "@dhis2-ui/tag" "9.10.1" + "@dhis2-ui/text-area" "9.10.1" + "@dhis2-ui/tooltip" "9.10.1" + "@dhis2-ui/transfer" "9.10.1" + "@dhis2-ui/user-avatar" "9.10.1" + "@dhis2/ui-constants" "9.10.1" + "@dhis2/ui-forms" "9.10.1" + "@dhis2/ui-icons" "9.10.1" prop-types "^15.7.2" "@dnd-kit/accessibility@^3.0.0": @@ -2754,7 +2757,7 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" -"@js-temporal/polyfill@0.4.3", "@js-temporal/polyfill@^0.4.2": +"@js-temporal/polyfill@0.4.3": version "0.4.3" resolved "https://registry.yarnpkg.com/@js-temporal/polyfill/-/polyfill-0.4.3.tgz#e8f8cf86745eb5050679c46a5ebedb9a9cc1f09b" integrity sha512-6Fmjo/HlkyVCmJzAPnvtEWlcbQUSRhi8qlN9EtJA/wP7FqXsevLLrlojR44kzNzrRkpf7eDJ+z7b4xQD/Ycypw== @@ -4836,6 +4839,15 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" +belter@^1.0.41: + version "1.0.190" + resolved "https://registry.yarnpkg.com/belter/-/belter-1.0.190.tgz#491857550ef240d9c66b56fc637991f5c3089966" + integrity sha512-jz05FHrO+bwitdI6JxV5ESyRdVhTcwMWQ7L4o+q/R4LNJFQrG58sp9EiwsSjhbihhiyYFcmmCMRRagxte6igtw== + dependencies: + cross-domain-safe-weakmap "^1" + cross-domain-utils "^2" + zalgo-promise "^1" + bfj@^7.0.2: version "7.0.2" resolved "https://registry.yarnpkg.com/bfj/-/bfj-7.0.2.tgz#1988ce76f3add9ac2913fd8ba47aad9e651bfbb2" @@ -6054,6 +6066,20 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: safe-buffer "^5.0.1" sha.js "^2.4.8" +cross-domain-safe-weakmap@^1, cross-domain-safe-weakmap@^1.0.1: + version "1.0.29" + resolved "https://registry.yarnpkg.com/cross-domain-safe-weakmap/-/cross-domain-safe-weakmap-1.0.29.tgz#0847975c27d9e1cc840f24c1745311958df98022" + integrity sha512-VLoUgf2SXnf3+na8NfeUFV59TRZkIJqCIATaMdbhccgtnTlSnHXkyTRwokngEGYdQXx8JbHT9GDYitgR2sdjuA== + dependencies: + cross-domain-utils "^2.0.0" + +cross-domain-utils@^2, cross-domain-utils@^2.0.0: + version "2.0.38" + resolved "https://registry.yarnpkg.com/cross-domain-utils/-/cross-domain-utils-2.0.38.tgz#2eaf321c4dfdb61596805ca4233fde4400cb6377" + integrity sha512-zZfi3+2EIR9l4chrEiXI2xFleyacsJf8YMLR1eJ0Veb5FTMXeJ3DpxDjZkto2FhL/g717WSELqbptNSo85UJDw== + dependencies: + zalgo-promise "^1.0.11" + cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" @@ -12268,6 +12294,17 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== +post-robot@^10.0.46: + version "10.0.46" + resolved "https://registry.yarnpkg.com/post-robot/-/post-robot-10.0.46.tgz#39cea5b51033729390fc7c90be3285cd285f0377" + integrity sha512-EgVJiuvI4iRWDZvzObWes0X/n8olWBEJWxlSw79zmhpgkigX8UsVL4VOBhVtoJKwf0Y9qP9g2zOONw1rv80QbA== + dependencies: + belter "^1.0.41" + cross-domain-safe-weakmap "^1.0.1" + cross-domain-utils "^2.0.0" + universal-serialize "^1.0.4" + zalgo-promise "^1.0.3" + postcss-attribute-case-insensitive@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz#03d761b24afc04c09e757e92ff53716ae8ea2741" @@ -15594,6 +15631,11 @@ unique-string@^2.0.0: dependencies: crypto-random-string "^2.0.0" +universal-serialize@^1.0.4: + version "1.0.10" + resolved "https://registry.yarnpkg.com/universal-serialize/-/universal-serialize-1.0.10.tgz#3279bb30f47290ea479f45135620f98fa9d3f3a6" + integrity sha512-FdouA4xSFa0fudk1+z5vLWtxZCoC0Q9lKYV3uUdFl7DttNfolmiw2ASr5ddY+/Yz6Isr68u3IqC9XMSwMP+Pow== + universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -16549,6 +16591,11 @@ yocto-queue@^0.1.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== +zalgo-promise@^1, zalgo-promise@^1.0.11, zalgo-promise@^1.0.3: + version "1.0.48" + resolved "https://registry.yarnpkg.com/zalgo-promise/-/zalgo-promise-1.0.48.tgz#9e33eef502d5ed9f5a09fc5728c833c3e87afa2e" + integrity sha512-LLHANmdm53+MucY9aOFIggzYtUdkSBFxUsy4glTTQYNyK6B3uCPWTbfiGvSrEvLojw0mSzyFJ1/RRLv+QMNdzQ== + zip-stream@^2.1.2: version "2.1.3" resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-2.1.3.tgz#26cc4bdb93641a8590dd07112e1f77af1758865b"