diff --git a/.gitignore b/.gitignore index 3d4526f73..1b41c0a1e 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,4 @@ bundle.stats.json # DHIS2 Platform .d2 src/locales +CLAUDE.md diff --git a/i18n/en.pot b/i18n/en.pot index 8616da74e..833198f8b 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: 2025-09-09T09:32:04.677Z\n" -"PO-Revision-Date: 2025-09-09T09:32:04.678Z\n" +"POT-Creation-Date: 2026-01-29T11:57:17.738Z\n" +"PO-Revision-Date: 2026-01-29T11:57:17.738Z\n" msgid "view only" msgstr "view only" @@ -822,6 +822,16 @@ msgstr "Period" msgid "Selected Periods" msgstr "Selected Periods" +msgid "No period types available" +msgstr "No period types available" + +msgid "" +"No period types are enabled in the system. Please contact your system " +"administrator." +msgstr "" +"No period types are enabled in the system. Please contact your system " +"administrator." + msgid "Relative periods" msgstr "Relative periods" @@ -870,18 +880,42 @@ msgstr "Six-monthly April" msgid "Yearly" msgstr "Yearly" -msgid "Financial year (Start November)" -msgstr "Financial year (Start November)" +msgid "Financial year (Start January)" +msgstr "Financial year (Start January)" -msgid "Financial year (Start October)" -msgstr "Financial year (Start October)" +msgid "Financial year (Start February)" +msgstr "Financial year (Start February)" -msgid "Financial year (Start July)" -msgstr "Financial year (Start July)" +msgid "Financial year (Start March)" +msgstr "Financial year (Start March)" msgid "Financial year (Start April)" msgstr "Financial year (Start April)" +msgid "Financial year (Start May)" +msgstr "Financial year (Start May)" + +msgid "Financial year (Start June)" +msgstr "Financial year (Start June)" + +msgid "Financial year (Start July)" +msgstr "Financial year (Start July)" + +msgid "Financial year (Start August)" +msgstr "Financial year (Start August)" + +msgid "Financial year (Start September)" +msgstr "Financial year (Start September)" + +msgid "Financial year (Start October)" +msgstr "Financial year (Start October)" + +msgid "Financial year (Start November)" +msgstr "Financial year (Start November)" + +msgid "Financial year (Start December)" +msgstr "Financial year (Start December)" + msgid "Today" msgstr "Today" diff --git a/package.json b/package.json index 7b3ca8301..f1cf8aee0 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "@dhis2/cli-app-scripts": "^12.6.4", "@dhis2/cli-style": "^10.7.9", "@dhis2/d2-i18n": "^1.1.0", - "@dhis2/ui": "^10.7.7", + "@dhis2/ui": "^10.12.7", "@mihkeleidast/storybook-addon-source": "^1.0.1", "@storybook/preset-create-react-app": "^8.3.6", "@storybook/react": "^8.3.6", diff --git a/src/api/dimensions.js b/src/api/dimensions.js index ab8bc5865..5fdc8f1ff 100644 --- a/src/api/dimensions.js +++ b/src/api/dimensions.js @@ -86,7 +86,7 @@ export const dataItemsQuery = { } if (searchTerm) { - filters.push(`${nameProp}:ilike:${searchTerm}`) + filters.push(`identifiable:token:${searchTerm}`) } return objectClean({ @@ -109,7 +109,7 @@ export const indicatorsQuery = { } if (searchTerm) { - filters.push(`${nameProp}:ilike:${searchTerm}`) + filters.push(`identifiable:token:${searchTerm}`) } return { @@ -145,7 +145,7 @@ export const dataElementsQuery = { } if (searchTerm) { - filters.push(`${nameProp}:ilike:${searchTerm}`) + filters.push(`identifiable:token:${searchTerm}`) } return { @@ -174,7 +174,7 @@ export const itemsByDimensionQuery = { const filters = [] if (searchTerm) { - filters.push(`${nameProp}:ilike:${searchTerm}`) + filters.push(`identifiable:token:${searchTerm}`) } return { @@ -202,7 +202,7 @@ export const dataElementOperandsQuery = { } if (searchTerm) { - filters.push(`${nameProp}:ilike:${searchTerm}`) + filters.push(`identifiable:token:${searchTerm}`) } return { @@ -221,7 +221,7 @@ export const dataSetsQuery = { const filters = [] if (searchTerm) { - filters.push(`${nameProp}:ilike:${searchTerm}`) + filters.push(`identifiable:token:${searchTerm}`) } if (filter?.group && filter.group !== DIMENSION_TYPE_ALL) { diff --git a/src/components/PeriodDimension/FixedPeriodFilter.js b/src/components/PeriodDimension/FixedPeriodFilter.js index 52376291a..362ed801f 100644 --- a/src/components/PeriodDimension/FixedPeriodFilter.js +++ b/src/components/PeriodDimension/FixedPeriodFilter.js @@ -3,14 +3,9 @@ import PropTypes from 'prop-types' import React from 'react' import i18n from '../../locales/index.js' import styles from './styles/PeriodFilter.style.js' -import { getFixedPeriodsOptions } from './utils/fixedPeriods.js' -import { filterPeriodTypesById } from './utils/index.js' - -const EXCLUDED_PERIOD_TYPES_PROP_DEFAULT = [] const FixedPeriodFilter = ({ - allowedPeriodTypes, - excludedPeriodTypes = EXCLUDED_PERIOD_TYPES_PROP_DEFAULT, + availableOptions, currentPeriodType, currentYear, onSelectPeriodType, @@ -18,9 +13,8 @@ const FixedPeriodFilter = ({ dataTest, }) => { const onlyAllowedTypeIsSelected = - Array.isArray(allowedPeriodTypes) && - allowedPeriodTypes.length === 1 && - allowedPeriodTypes[0] === currentPeriodType + availableOptions.length === 1 && + availableOptions[0].id === currentPeriodType return ( <> @@ -34,17 +28,7 @@ const FixedPeriodFilter = ({ className="filterElement" dataTest={`${dataTest}-period-type`} > - {(allowedPeriodTypes - ? getFixedPeriodsOptions().filter((option) => - allowedPeriodTypes.some( - (type) => type === option.id - ) - ) - : filterPeriodTypesById( - getFixedPeriodsOptions(), - excludedPeriodTypes - ) - ).map((option) => ( + {availableOptions.map((option) => ( + this.props.allowedPeriodTypes.includes(option.id) + ) + : allOptions + return (
{ - const { systemInfo } = useConfig() - const result = useDataQuery(userSettingsQuery) + const config = useConfig() + const { systemInfo, serverVersion } = config + const userSettingsResult = useDataQuery(userSettingsQuery) + + const supportsEnabledPeriodTypes = serverVersion.minor >= 43 + + const { + data: v43Data, + error: v43Error, + refetch: v43Refetch, + } = useDataQuery(v43Query, { lazy: true }) + + useEffect(() => { + if (supportsEnabledPeriodTypes) { + v43Refetch() + } + }, [supportsEnabledPeriodTypes, v43Refetch]) const { calendar = 'gregory' } = systemInfo - const { data: { userSettings: { keyUiLocale: locale } = {} } = {} } = result + const { data: { userSettings: { keyUiLocale: locale } = {} } = {} } = + userSettingsResult const periodsSettings = { calendar, locale } + const enabledPeriodTypesData = useMemo(() => { + if (!supportsEnabledPeriodTypes) { + return null + } + + if (v43Error || !v43Data?.enabledPeriodTypes) { + return null + } + + const enabledTypes = v43Data.enabledPeriodTypes + + if (!enabledTypes || enabledTypes.length === 0) { + return { + enabledTypes: [], + financialYearStart: null, + analysisRelativePeriod: null, + noEnabledTypes: true, + } + } + + let financialYearStart = null + if (v43Data.financialYearStart?.analyticsFinancialYearStart) { + const fyStartValue = + v43Data.financialYearStart.analyticsFinancialYearStart + + const mappedFyPt = FY_SETTING_TO_SERVER_PT[fyStartValue] + if ( + mappedFyPt && + enabledTypes.some((pt) => pt.name === mappedFyPt) + ) { + financialYearStart = fyStartValue + } + } + + const analysisRelativePeriod = + v43Data.analysisRelativePeriod?.keyAnalysisRelativePeriod || null + + return { + enabledTypes, + financialYearStart, + analysisRelativePeriod, + noEnabledTypes: false, + } + }, [supportsEnabledPeriodTypes, v43Data, v43Error]) + const selectPeriods = (periods) => { onSelect({ dimensionId: DIMENSION_ID_PERIOD, @@ -47,6 +128,8 @@ const PeriodDimension = ({ excludedPeriodTypes={excludedPeriodTypes} periodsSettings={periodsSettings} height={height} + enabledPeriodTypesData={enabledPeriodTypesData} + supportsEnabledPeriodTypes={supportsEnabledPeriodTypes} /> ) } diff --git a/src/components/PeriodDimension/PeriodTransfer.js b/src/components/PeriodDimension/PeriodTransfer.js index 58d89a310..051b17045 100644 --- a/src/components/PeriodDimension/PeriodTransfer.js +++ b/src/components/PeriodDimension/PeriodTransfer.js @@ -1,7 +1,7 @@ import { getNowInCalendar } from '@dhis2/multi-calendar-dates' -import { IconInfo16, TabBar, Tab, Transfer } from '@dhis2/ui' +import { IconInfo16, NoticeBox, TabBar, Tab, Transfer } from '@dhis2/ui' import PropTypes from 'prop-types' -import React, { useState } from 'react' +import React, { useRef, useState, useMemo } from 'react' import PeriodIcon from '../../assets/DimensionItemIcons/PeriodIcon.js' //TODO: Reimplement the icon.js import i18n from '../../locales/index.js' import { @@ -13,9 +13,14 @@ import styles from '../styles/DimensionSelector.style.js' import { TransferOption } from '../TransferOption.js' import FixedPeriodFilter from './FixedPeriodFilter.js' import RelativePeriodFilter from './RelativePeriodFilter.js' -import { getFixedPeriodsOptionsById } from './utils/fixedPeriods.js' -import { MONTHLY, QUARTERLY } from './utils/index.js' -import { getRelativePeriodsOptionsById } from './utils/relativePeriods.js' +import { + filterEnabledFixedPeriodTypes, + filterEnabledRelativePeriodTypes, + findBestAvailableRelativePeriod, +} from './utils/enabledPeriodTypes.js' +import { getFixedPeriodsOptions } from './utils/fixedPeriods.js' +import { MONTHLY, QUARTERLY, filterPeriodTypesById } from './utils/index.js' +import { getRelativePeriodsOptions } from './utils/relativePeriods.js' const RightHeader = ({ infoBoxMessage }) => ( <> @@ -48,13 +53,78 @@ const PeriodTransfer = ({ periodsSettings = PERIODS_SETTINGS_PROP_DEFAULT, infoBoxMessage, height = TRANSFER_HEIGHT, + enabledPeriodTypesData = null, + supportsEnabledPeriodTypes = false, }) => { - const defaultRelativePeriodType = excludedPeriodTypes.includes(MONTHLY) - ? getRelativePeriodsOptionsById(QUARTERLY) - : getRelativePeriodsOptionsById(MONTHLY) - const defaultFixedPeriodType = excludedPeriodTypes.includes(MONTHLY) - ? getFixedPeriodsOptionsById(QUARTERLY, periodsSettings) - : getFixedPeriodsOptionsById(MONTHLY, periodsSettings) + const { filteredFixedOptions, filteredRelativeOptions } = useMemo(() => { + if (supportsEnabledPeriodTypes && enabledPeriodTypesData) { + const { enabledTypes, financialYearStart } = enabledPeriodTypesData + + const filteredFixed = filterEnabledFixedPeriodTypes( + getFixedPeriodsOptions(periodsSettings), + enabledTypes + ) + + const filteredRelative = filterEnabledRelativePeriodTypes( + getRelativePeriodsOptions(), + enabledTypes, + financialYearStart + ) + + return { + filteredFixedOptions: filteredFixed, + filteredRelativeOptions: filteredRelative, + } + } else { + const allFixed = getFixedPeriodsOptions(periodsSettings) + const allRelative = getRelativePeriodsOptions() + + return { + filteredFixedOptions: filterPeriodTypesById( + allFixed, + excludedPeriodTypes + ), + filteredRelativeOptions: filterPeriodTypesById( + allRelative, + excludedPeriodTypes + ), + } + } + }, [ + supportsEnabledPeriodTypes, + enabledPeriodTypesData, + excludedPeriodTypes, + periodsSettings, + ]) + + const bestRelativePeriod = useMemo(() => { + if (supportsEnabledPeriodTypes && enabledPeriodTypesData) { + const { analysisRelativePeriod } = enabledPeriodTypesData + return findBestAvailableRelativePeriod( + filteredRelativeOptions, + analysisRelativePeriod + ) + } + return null + }, [ + supportsEnabledPeriodTypes, + enabledPeriodTypesData, + filteredRelativeOptions, + ]) + + const defaultRelativePeriodType = + supportsEnabledPeriodTypes && bestRelativePeriod + ? filteredRelativeOptions.find( + (opt) => opt.id === bestRelativePeriod.categoryId + ) + : filteredRelativeOptions.find((opt) => opt.id === MONTHLY) || + filteredRelativeOptions.find((opt) => opt.id === QUARTERLY) || + filteredRelativeOptions[0] + + const defaultFixedPeriodType = + filteredFixedOptions.find((opt) => opt.id === MONTHLY) || + filteredFixedOptions.find((opt) => opt.id === QUARTERLY) || + filteredFixedOptions[0] const now = getNowInCalendar(periodsSettings.calendar) // use ".eraYear" rather than ".year" because in Ethiopian calendar, eraYear is what our users expect to see (for other calendars, it doesn't matter) @@ -67,18 +137,80 @@ const PeriodTransfer = ({ reversePeriods: false, }) - const [allPeriods, setAllPeriods] = useState( - defaultRelativePeriodType.getPeriods() - ) + const [userPeriods, setUserPeriods] = useState(null) const [isRelative, setIsRelative] = useState(true) const [relativeFilter, setRelativeFilter] = useState({ - periodType: defaultRelativePeriodType.id, + periodType: defaultRelativePeriodType?.id || '', }) const [fixedFilter, setFixedFilter] = useState({ - periodType: defaultFixedPeriodType.id, + periodType: defaultFixedPeriodType?.id || '', year: defaultFixedPeriodYear.toString(), }) + const effectiveRelativeFilterType = filteredRelativeOptions.some( + (opt) => opt.id === relativeFilter.periodType + ) + ? relativeFilter.periodType + : defaultRelativePeriodType?.id || '' + + const effectiveFixedFilterType = filteredFixedOptions.some( + (opt) => opt.id === fixedFilter.periodType + ) + ? fixedFilter.periodType + : defaultFixedPeriodType?.id || '' + + const prevEffectiveRelativeRef = useRef(effectiveRelativeFilterType) + const prevEffectiveFixedRef = useRef(effectiveFixedFilterType) + + if (prevEffectiveRelativeRef.current !== effectiveRelativeFilterType) { + prevEffectiveRelativeRef.current = effectiveRelativeFilterType + if (relativeFilter.periodType !== effectiveRelativeFilterType) { + setRelativeFilter({ periodType: effectiveRelativeFilterType }) + } + if (isRelative) { + setUserPeriods(null) + } + } + + if (prevEffectiveFixedRef.current !== effectiveFixedFilterType) { + prevEffectiveFixedRef.current = effectiveFixedFilterType + if (fixedFilter.periodType !== effectiveFixedFilterType) { + setFixedFilter((prev) => ({ + ...prev, + periodType: effectiveFixedFilterType, + })) + } + if (!isRelative) { + setUserPeriods(null) + } + } + + const derivedPeriods = useMemo(() => { + if (isRelative) { + const opt = filteredRelativeOptions.find( + (o) => o.id === effectiveRelativeFilterType + ) + return opt?.getPeriods() || [] + } else { + const opt = filteredFixedOptions.find( + (o) => o.id === effectiveFixedFilterType + ) + return ( + opt?.getPeriods(fixedPeriodConfig(Number(fixedFilter.year))) || + [] + ) + } + }, [ + isRelative, + effectiveRelativeFilterType, + effectiveFixedFilterType, + filteredRelativeOptions, + filteredFixedOptions, + fixedFilter.year, + ]) + + const allPeriods = userPeriods !== null ? userPeriods : derivedPeriods + const isActive = (value) => { const item = selectedItems.find((item) => item.id === value) return !item || item.isActive @@ -87,19 +219,20 @@ const PeriodTransfer = ({ const onIsRelativeClick = (state) => { if (state !== isRelative) { setIsRelative(state) - setAllPeriods( - state - ? getRelativePeriodsOptionsById( - relativeFilter.periodType - ).getPeriods() - : getFixedPeriodsOptionsById( - fixedFilter.periodType, - periodsSettings - ).getPeriods(fixedPeriodConfig(Number(fixedFilter.year))) - ) + setUserPeriods(null) } } + if (enabledPeriodTypesData?.noEnabledTypes) { + return ( + + {i18n.t( + 'No period types are enabled in the system. Please contact your system administrator.' + )} + + ) + } + const renderLeftHeader = () => ( <> @@ -121,21 +254,20 @@ const PeriodTransfer = ({
{isRelative ? ( { setRelativeFilter({ periodType: filter }) - setAllPeriods( - getRelativePeriodsOptionsById( - filter - ).getPeriods() + const selectedOption = filteredRelativeOptions.find( + (opt) => opt.id === filter ) + setUserPeriods(selectedOption?.getPeriods() || []) }} dataTest={`${dataTest}-relative-period-filter`} - excludedPeriodTypes={excludedPeriodTypes} + availableOptions={filteredRelativeOptions} /> ) : ( { onSelectFixedPeriods({ @@ -150,7 +282,7 @@ const PeriodTransfer = ({ }) }} dataTest={`${dataTest}-fixed-period-filter`} - excludedPeriodTypes={excludedPeriodTypes} + availableOptions={filteredFixedOptions} /> )}
@@ -162,14 +294,13 @@ const PeriodTransfer = ({ setFixedFilter(filter) if (filter.year.match(/[0-9]{4}/)) { - setAllPeriods( - getFixedPeriodsOptionsById( - filter.periodType, - periodsSettings - ).getPeriods( - fixedPeriodConfig(Number(filter.year)), - periodsSettings - ) + const selectedOption = filteredFixedOptions.find( + (opt) => opt.id === filter.periodType + ) + setUserPeriods( + selectedOption?.getPeriods( + fixedPeriodConfig(Number(filter.year)) + ) || [] ) } } @@ -227,6 +358,12 @@ const PeriodTransfer = ({ PeriodTransfer.propTypes = { onSelect: PropTypes.func.isRequired, dataTest: PropTypes.string, + enabledPeriodTypesData: PropTypes.shape({ + analysisRelativePeriod: PropTypes.string, + enabledTypes: PropTypes.array, + financialYearStart: PropTypes.string, + noEnabledTypes: PropTypes.bool, + }), excludedPeriodTypes: PropTypes.arrayOf(PropTypes.string), height: PropTypes.string, infoBoxMessage: PropTypes.string, @@ -242,6 +379,7 @@ PeriodTransfer.propTypes = { name: PropTypes.string, }) ), + supportsEnabledPeriodTypes: PropTypes.bool, } export default PeriodTransfer diff --git a/src/components/PeriodDimension/RelativePeriodFilter.js b/src/components/PeriodDimension/RelativePeriodFilter.js index 60fc435a5..1860d4345 100644 --- a/src/components/PeriodDimension/RelativePeriodFilter.js +++ b/src/components/PeriodDimension/RelativePeriodFilter.js @@ -3,14 +3,12 @@ import PropTypes from 'prop-types' import React from 'react' import i18n from '../../locales/index.js' import styles from './styles/PeriodFilter.style.js' -import { filterPeriodTypesById } from './utils/index.js' -import { getRelativePeriodsOptions } from './utils/relativePeriods.js' const RelativePeriodFilter = ({ currentFilter, onSelectFilter, dataTest, - excludedPeriodTypes, + availableOptions, }) => (
- {filterPeriodTypesById( - getRelativePeriodsOptions(), - excludedPeriodTypes - ).map((option) => ( + {availableOptions.map((option) => ( ({ - useConfig: () => ({ systemInfo: {} }), - useDataQuery: () => ({ data: { userSettings: { keyUiLocale: 'en' } } }), + useConfig: () => ({ + systemInfo: {}, + serverVersion: { minor: 42 }, + }), + useDataQuery: jest.fn().mockImplementation((_query, options) => { + if (options?.lazy) { + return { + data: null, + error: undefined, + loading: false, + refetch: jest.fn(), + } + } + return { data: { userSettings: { keyUiLocale: 'en' } } } + }), })) global.ResizeObserver = jest.fn().mockImplementation(() => ({ diff --git a/src/components/PeriodDimension/__tests__/fixedPeriods.spec.js b/src/components/PeriodDimension/__tests__/fixedPeriods.spec.js index b7816ef9c..91b20cf06 100644 --- a/src/components/PeriodDimension/__tests__/fixedPeriods.spec.js +++ b/src/components/PeriodDimension/__tests__/fixedPeriods.spec.js @@ -31,10 +31,18 @@ describe('fixedPeriods utils', () => { 'SIXMONTHLY', 'SIXMONTHLYAPR', 'YEARLY', - 'FYNOV', - 'FYOCT', - 'FYJUL', + 'FYJAN', + 'FYFEB', + 'FYMAR', 'FYAPR', + 'FYMAY', + 'FYJUN', + 'FYJUL', + 'FYAUG', + 'FYSEP', + 'FYOCT', + 'FYNOV', + 'FYDEC', ]) }) }) diff --git a/src/components/PeriodDimension/__tests__/utils.spec.js b/src/components/PeriodDimension/__tests__/utils.spec.js index 6021309ef..38c6a95bb 100644 --- a/src/components/PeriodDimension/__tests__/utils.spec.js +++ b/src/components/PeriodDimension/__tests__/utils.spec.js @@ -27,9 +27,17 @@ describe('utils', () => { 'SIXMONTHLY', 'SIXMONTHLYAPR', 'YEARLY', - 'FYNOV', - 'FYJUL', + 'FYJAN', + 'FYFEB', + 'FYMAR', 'FYAPR', + 'FYMAY', + 'FYJUN', + 'FYJUL', + 'FYAUG', + 'FYSEP', + 'FYNOV', + 'FYDEC', ]) }) diff --git a/src/components/PeriodDimension/utils/enabledPeriodTypes.js b/src/components/PeriodDimension/utils/enabledPeriodTypes.js new file mode 100644 index 000000000..896a20643 --- /dev/null +++ b/src/components/PeriodDimension/utils/enabledPeriodTypes.js @@ -0,0 +1,282 @@ +// Mapping from server period type names to multi-calendar-dates constants +export const SERVER_PT_TO_MULTI_CALENDAR_PT = { + Daily: 'DAILY', + Weekly: 'WEEKLY', + WeeklyMonday: 'WEEKLYMON', + WeeklyTuesday: 'WEEKLYTUE', + WeeklyWednesday: 'WEEKLYWED', + WeeklyThursday: 'WEEKLYTHU', + WeeklyFriday: 'WEEKLYFRI', + WeeklySaturday: 'WEEKLYSAT', + WeeklySunday: 'WEEKLYSUN', + BiWeekly: 'BIWEEKLY', + Monthly: 'MONTHLY', + BiMonthly: 'BIMONTHLY', + Quarterly: 'QUARTERLY', + QuarterlyJan: 'QUARTERLYJAN', + QuarterlyFeb: 'QUARTERLYFEB', + QuarterlyMar: 'QUARTERLYMAR', + QuarterlyApr: 'QUARTERLYAPR', + QuarterlyMay: 'QUARTERLYMAY', + QuarterlyJun: 'QUARTERLYJUN', + QuarterlyJul: 'QUARTERLYJUL', + QuarterlyAug: 'QUARTERLYAUG', + QuarterlySep: 'QUARTERLYSEP', + QuarterlyOct: 'QUARTERLYOCT', + QuarterlyNov: 'QUARTERLYNOV', + QuarterlyDec: 'QUARTERLYDEC', + SixMonthly: 'SIXMONTHLY', + SixMonthlyJan: 'SIXMONTHLYJAN', + SixMonthlyFeb: 'SIXMONTHLYFEB', + SixMonthlyMar: 'SIXMONTHLYMAR', + SixMonthlyApril: 'SIXMONTHLYAPR', + SixMonthlyMay: 'SIXMONTHLYMAY', + SixMonthlyJun: 'SIXMONTHLYJUN', + SixMonthlyJul: 'SIXMONTHLYJUL', + SixMonthlyAug: 'SIXMONTHLYAUG', + SixMonthlySep: 'SIXMONTHLYSEP', + SixMonthlyOct: 'SIXMONTHLYOCT', + SixMonthlyNov: 'SIXMONTHLYNOV', + SixMonthlyDec: 'SIXMONTHLYDEC', + Yearly: 'YEARLY', + FinancialJan: 'FYJAN', + FinancialFeb: 'FYFEB', + FinancialMar: 'FYMAR', + FinancialApril: 'FYAPR', + FinancialMay: 'FYMAY', + FinancialJun: 'FYJUN', + FinancialJuly: 'FYJUL', + FinancialAug: 'FYAUG', + FinancialSep: 'FYSEP', + FinancialOct: 'FYOCT', + FinancialNov: 'FYNOV', + FinancialDec: 'FYDEC', +} + +// Mapping from relative period categories to their corresponding fixed period types +export const RP_CATEGORY_TO_FP_DEPENDENCIES = { + DAILY: ['Daily'], + WEEKLY: [ + 'Weekly', + 'WeeklyMonday', + 'WeeklyTuesday', + 'WeeklyWednesday', + 'WeeklyThursday', + 'WeeklyFriday', + 'WeeklySaturday', + 'WeeklySunday', + ], + BIWEEKLY: ['BiWeekly'], + MONTHLY: ['Monthly'], + BIMONTHLY: ['BiMonthly'], + QUARTERLY: [ + 'Quarterly', + 'QuarterlyJan', + 'QuarterlyFeb', + 'QuarterlyMar', + 'QuarterlyApr', + 'QuarterlyMay', + 'QuarterlyJun', + 'QuarterlyJul', + 'QuarterlyAug', + 'QuarterlySep', + 'QuarterlyOct', + 'QuarterlyNov', + 'QuarterlyDec', + ], + SIXMONTHLY: [ + 'SixMonthly', + 'SixMonthlyJan', + 'SixMonthlyFeb', + 'SixMonthlyMar', + 'SixMonthlyApril', + 'SixMonthlyMay', + 'SixMonthlyJun', + 'SixMonthlyJul', + 'SixMonthlyAug', + 'SixMonthlySep', + 'SixMonthlyOct', + 'SixMonthlyNov', + 'SixMonthlyDec', + ], + YEARLY: ['Yearly'], +} + +/** + * Filter fixed period types based on enabled server period types + * @param {Array} allFixedPeriodOptions - All available fixed period options + * @param {Array} enabledServerPeriodTypes - Enabled period types from server + * @returns {Array} Filtered fixed period options + */ +export const filterEnabledFixedPeriodTypes = ( + allFixedPeriodOptions, + enabledServerPeriodTypes +) => { + if (!enabledServerPeriodTypes || enabledServerPeriodTypes.length === 0) { + return [] + } + + const enabledServerPtNames = new Set( + enabledServerPeriodTypes.map((pt) => pt.name) + ) + const enabledMultiCalendarPts = new Set() + + // Map server PT names to multi-calendar-dates constants + enabledServerPtNames.forEach((serverPtName) => { + const multiCalendarPt = SERVER_PT_TO_MULTI_CALENDAR_PT[serverPtName] + if (multiCalendarPt) { + enabledMultiCalendarPts.add(multiCalendarPt) + } + }) + + // Filter fixed period options to only include enabled ones + return allFixedPeriodOptions.filter((option) => + enabledMultiCalendarPts.has(option.id) + ) +} + +/** + * Filter relative period categories based on enabled server period types + * @param {Array} allRelativePeriodOptions - All available relative period options + * @param {Array} enabledServerPeriodTypes - Enabled period types from server + * @param {string|null} financialYearStart - Financial year start setting (if enabled) + * @returns {Array} Filtered relative period options + */ +export const filterEnabledRelativePeriodTypes = ( + allRelativePeriodOptions, + enabledServerPeriodTypes, + financialYearStart = null +) => { + if (!enabledServerPeriodTypes || enabledServerPeriodTypes.length === 0) { + return [] + } + + const enabledServerPtNames = new Set( + enabledServerPeriodTypes.map((pt) => pt.name) + ) + + return allRelativePeriodOptions.filter((option) => { + // Special handling for financial years + if (option.id === 'FINANCIAL') { + return financialYearStart !== null + } + + // Check if any of the required FP dependencies are enabled + const requiredFpTypes = RP_CATEGORY_TO_FP_DEPENDENCIES[option.id] + if (!requiredFpTypes) { + return true // Show if no dependency mapping (shouldn't happen) + } + + return requiredFpTypes.some((fpType) => + enabledServerPtNames.has(fpType) + ) + }) +} + +// Mapping from keyAnalysisRelativePeriod system setting values (RP IDs) to categories +export const ANALYSIS_RELATIVE_PERIOD_MAPPING = { + THIS_WEEK: { id: 'THIS_WEEK', category: 'WEEKLY' }, + LAST_WEEK: { id: 'LAST_WEEK', category: 'WEEKLY' }, + LAST_4_WEEKS: { id: 'LAST_4_WEEKS', category: 'WEEKLY' }, + LAST_12_WEEKS: { id: 'LAST_12_WEEKS', category: 'WEEKLY' }, + LAST_52_WEEKS: { id: 'LAST_52_WEEKS', category: 'WEEKLY' }, + THIS_MONTH: { id: 'THIS_MONTH', category: 'MONTHLY' }, + LAST_MONTH: { id: 'LAST_MONTH', category: 'MONTHLY' }, + MONTHS_THIS_YEAR: { id: 'MONTHS_THIS_YEAR', category: 'MONTHLY' }, + // Note: MONTHS_LAST_YEAR does not exist in current RP definitions + LAST_3_MONTHS: { id: 'LAST_3_MONTHS', category: 'MONTHLY' }, + LAST_6_MONTHS: { id: 'LAST_6_MONTHS', category: 'MONTHLY' }, + LAST_12_MONTHS: { id: 'LAST_12_MONTHS', category: 'MONTHLY' }, + THIS_BIMONTH: { id: 'THIS_BIMONTH', category: 'BIMONTHLY' }, + LAST_BIMONTH: { id: 'LAST_BIMONTH', category: 'BIMONTHLY' }, + LAST_6_BIMONTHS: { id: 'LAST_6_BIMONTHS', category: 'BIMONTHLY' }, + THIS_QUARTER: { id: 'THIS_QUARTER', category: 'QUARTERLY' }, + LAST_QUARTER: { id: 'LAST_QUARTER', category: 'QUARTERLY' }, + QUARTERS_THIS_YEAR: { id: 'QUARTERS_THIS_YEAR', category: 'QUARTERLY' }, + // Note: QUARTERS_LAST_YEAR does not exist in current RP definitions + LAST_4_QUARTERS: { id: 'LAST_4_QUARTERS', category: 'QUARTERLY' }, + THIS_SIX_MONTH: { id: 'THIS_SIX_MONTH', category: 'SIXMONTHLY' }, + LAST_SIX_MONTH: { id: 'LAST_SIX_MONTH', category: 'SIXMONTHLY' }, + LAST_2_SIXMONTHS: { id: 'LAST_2_SIXMONTHS', category: 'SIXMONTHLY' }, + THIS_YEAR: { id: 'THIS_YEAR', category: 'YEARLY' }, + LAST_YEAR: { id: 'LAST_YEAR', category: 'YEARLY' }, + LAST_5_YEARS: { id: 'LAST_5_YEARS', category: 'YEARLY' }, + LAST_10_YEARS: { id: 'LAST_10_YEARS', category: 'YEARLY' }, + THIS_FINANCIAL_YEAR: { id: 'THIS_FINANCIAL_YEAR', category: 'FINANCIAL' }, + LAST_FINANCIAL_YEAR: { id: 'LAST_FINANCIAL_YEAR', category: 'FINANCIAL' }, + LAST_5_FINANCIAL_YEARS: { + id: 'LAST_5_FINANCIAL_YEARS', + category: 'FINANCIAL', + }, +} + +// Fallback priority order for RP categories (closest to most commonly used) +const RP_CATEGORY_FALLBACK_ORDER = [ + 'MONTHLY', // Most common + 'QUARTERLY', // Close alternative to monthly + 'YEARLY', // Longer term view + 'WEEKLY', // More granular + 'SIXMONTHLY', // Mid-term + 'BIMONTHLY', // Less common + 'FINANCIAL', // Depends on system config + 'BIWEEKLY', // Least common + 'DAILY', // Very granular +] + +/** + * Find the best available relative period based on keyAnalysisRelativePeriod setting + * @param {Array} enabledRelativeOptions - Available RP categories + * @param {string|null} analysisRelativePeriod - System setting value + * @returns {Object} { categoryId, periodId } or null + */ +export const findBestAvailableRelativePeriod = ( + enabledRelativeOptions, + analysisRelativePeriod +) => { + if (!enabledRelativeOptions || enabledRelativeOptions.length === 0) { + return null + } + + const enabledCategoryIds = new Set( + enabledRelativeOptions.map((opt) => opt.id) + ) + + // Try to use the configured analysis relative period first + if ( + analysisRelativePeriod && + ANALYSIS_RELATIVE_PERIOD_MAPPING[analysisRelativePeriod] + ) { + const { id: periodId, category: categoryId } = + ANALYSIS_RELATIVE_PERIOD_MAPPING[analysisRelativePeriod] + + if (enabledCategoryIds.has(categoryId)) { + return { categoryId, periodId } + } + } + + // Fall back to the highest priority enabled category + for (const categoryId of RP_CATEGORY_FALLBACK_ORDER) { + if (enabledCategoryIds.has(categoryId)) { + // Use the first period from that category as default + const categoryOption = enabledRelativeOptions.find( + (opt) => opt.id === categoryId + ) + const periods = categoryOption?.getPeriods() || [] + const defaultPeriod = periods[0] + + return { + categoryId, + periodId: defaultPeriod?.id || null, + } + } + } + + // Last resort: use first available category and its first period + const firstCategory = enabledRelativeOptions[0] + const firstPeriod = firstCategory?.getPeriods()?.[0] + + return { + categoryId: firstCategory?.id || null, + periodId: firstPeriod?.id || null, + } +} diff --git a/src/components/PeriodDimension/utils/fixedPeriods.js b/src/components/PeriodDimension/utils/fixedPeriods.js index a6cff6bba..54a892de0 100644 --- a/src/components/PeriodDimension/utils/fixedPeriods.js +++ b/src/components/PeriodDimension/utils/fixedPeriods.js @@ -17,10 +17,18 @@ import { SIXMONTHLY, SIXMONTHLYAPR, YEARLY, - FYNOV, - FYOCT, - FYJUL, + FYJAN, + FYFEB, + FYMAR, FYAPR, + FYMAY, + FYJUN, + FYJUL, + FYAUG, + FYSEP, + FYOCT, + FYNOV, + FYDEC, } from './index.js' export const PERIOD_TYPE_REGEX = { @@ -173,43 +181,10 @@ const getYearlyPeriodType = (fnFilter, periodSettings) => { } } -const getFinancialOctoberPeriodType = (fnFilter, periodSettings) => { - return (config) => { - return getPeriods({ - periodType: 'FYOCT', - config, - fnFilter, - periodSettings, - }) - } -} - -const getFinancialNovemberPeriodType = (fnFilter, periodSettings) => { +const getFinancialPeriodType = (periodType, fnFilter, periodSettings) => { return (config) => { return getPeriods({ - periodType: 'FYNOV', - config, - fnFilter, - periodSettings, - }) - } -} - -const getFinancialJulyPeriodType = (fnFilter, periodSettings) => { - return (config) => { - return getPeriods({ - periodType: 'FYJUL', - config, - fnFilter, - periodSettings, - }) - } -} - -const getFinancialAprilPeriodType = (fnFilter, periodSettings) => { - return (config) => { - return getPeriods({ - periodType: 'FYAPR', + periodType, config, fnFilter, periodSettings, @@ -339,37 +314,113 @@ const getOptions = (periodSettings) => { name: i18n.t('Yearly'), }, { - id: FYNOV, - getPeriods: getFinancialNovemberPeriodType( + id: FYJAN, + getPeriods: getFinancialPeriodType( + 'FYJAN', filterFuturePeriods, periodSettings ), - name: i18n.t('Financial year (Start November)'), + name: i18n.t('Financial year (Start January)'), }, { - id: FYOCT, - getPeriods: getFinancialOctoberPeriodType( + id: FYFEB, + getPeriods: getFinancialPeriodType( + 'FYFEB', filterFuturePeriods, periodSettings ), - name: i18n.t('Financial year (Start October)'), + name: i18n.t('Financial year (Start February)'), }, { - id: FYJUL, - getPeriods: getFinancialJulyPeriodType( + id: FYMAR, + getPeriods: getFinancialPeriodType( + 'FYMAR', filterFuturePeriods, periodSettings ), - name: i18n.t('Financial year (Start July)'), + name: i18n.t('Financial year (Start March)'), }, { id: FYAPR, - getPeriods: getFinancialAprilPeriodType( + getPeriods: getFinancialPeriodType( + 'FYAPR', filterFuturePeriods, periodSettings ), name: i18n.t('Financial year (Start April)'), }, + { + id: FYMAY, + getPeriods: getFinancialPeriodType( + 'FYMAY', + filterFuturePeriods, + periodSettings + ), + name: i18n.t('Financial year (Start May)'), + }, + { + id: FYJUN, + getPeriods: getFinancialPeriodType( + 'FYJUN', + filterFuturePeriods, + periodSettings + ), + name: i18n.t('Financial year (Start June)'), + }, + { + id: FYJUL, + getPeriods: getFinancialPeriodType( + 'FYJUL', + filterFuturePeriods, + periodSettings + ), + name: i18n.t('Financial year (Start July)'), + }, + { + id: FYAUG, + getPeriods: getFinancialPeriodType( + 'FYAUG', + filterFuturePeriods, + periodSettings + ), + name: i18n.t('Financial year (Start August)'), + }, + { + id: FYSEP, + getPeriods: getFinancialPeriodType( + 'FYSEP', + filterFuturePeriods, + periodSettings + ), + name: i18n.t('Financial year (Start September)'), + }, + { + id: FYOCT, + getPeriods: getFinancialPeriodType( + 'FYOCT', + filterFuturePeriods, + periodSettings + ), + name: i18n.t('Financial year (Start October)'), + }, + { + id: FYNOV, + getPeriods: getFinancialPeriodType( + 'FYNOV', + filterFuturePeriods, + periodSettings + ), + name: i18n.t('Financial year (Start November)'), + }, + { + id: FYDEC, + getPeriods: getFinancialPeriodType( + 'FYDEC', + filterFuturePeriods, + periodSettings + ), + name: i18n.t('Financial year (Start December)'), + }, ] } diff --git a/src/components/PeriodDimension/utils/index.js b/src/components/PeriodDimension/utils/index.js index 72611c067..a94baf52a 100644 --- a/src/components/PeriodDimension/utils/index.js +++ b/src/components/PeriodDimension/utils/index.js @@ -13,10 +13,18 @@ export const SIXMONTHLY = 'SIXMONTHLY' export const SIXMONTHLYAPR = 'SIXMONTHLYAPR' export const YEARLY = 'YEARLY' export const FINANCIAL = 'FINANCIAL' -export const FYNOV = 'FYNOV' -export const FYOCT = 'FYOCT' -export const FYJUL = 'FYJUL' +export const FYJAN = 'FYJAN' +export const FYFEB = 'FYFEB' +export const FYMAR = 'FYMAR' export const FYAPR = 'FYAPR' +export const FYMAY = 'FYMAY' +export const FYJUN = 'FYJUN' +export const FYJUL = 'FYJUL' +export const FYAUG = 'FYAUG' +export const FYSEP = 'FYSEP' +export const FYOCT = 'FYOCT' +export const FYNOV = 'FYNOV' +export const FYDEC = 'FYDEC' export const filterPeriodTypesById = ( allPeriodTypes = [], diff --git a/yarn.lock b/yarn.lock index 91b4591d7..375df37d8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1404,585 +1404,585 @@ resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-4.0.0.tgz#7dfccb9df5499e627e7bfdbb4021a06813a45dba" integrity sha512-189nelqtPd8++phaHNwYovKZI0FOzH1vQEE3QhHHkNIGrg5fSs9CbYP3RvfEH5geztnIA9Jwq91wyOIwAW5JIQ== -"@dhis2-ui/alert@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/alert/-/alert-10.7.7.tgz#d8c8f85d8c297eed3fa78fc71b52a67cc9fba4e3" - integrity sha512-9VGr0P51eqq40k86XsfvSY8dHP3B0QuR70hdaQxuEvjhMvgYQo/Fa1REH6nVae0RZxlgHWV+a7AzqvNE3UIFuA== +"@dhis2-ui/alert@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/alert/-/alert-10.12.7.tgz#e77b9fe7bfb3072f8840d875a703ac288eaac869" + integrity sha512-V1d1RRP3+SH57YQPKZb8PdVutMWTAz7gIS/lwyowjP8dLiNDYfasUoSFae3QZRAzrIscaXHu6vmlpN6kld7DVw== dependencies: - "@dhis2-ui/portal" "10.7.7" + "@dhis2-ui/portal" "10.12.7" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" - "@dhis2/ui-icons" "10.7.7" + "@dhis2/ui-constants" "10.12.7" + "@dhis2/ui-icons" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/box@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/box/-/box-10.7.7.tgz#36235122d19061e92ba2afd89968075939ec68f1" - integrity sha512-OCH+vll0YSO3Yv3RUHu4KclbtdR28at+lSrWp2XXNOZ4kBBhdbzjEqJ++e+Smlou5/0LFMGnmncI3B2JhtMZhg== +"@dhis2-ui/box@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/box/-/box-10.12.7.tgz#bed9066d2c2b204c79629005d5f39411102e7597" + integrity sha512-vGawuVuGCjW/TBtdqRXba/dLUduqNy4Zg35vNNtwaDaXqPWtEOu+BNnG33UszMs9qu9PCjYY7cRx10zdIh+UhA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/button@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/button/-/button-10.7.7.tgz#e8092bb6eb8c20fe6265e0d4ac489ebf3bf3de33" - integrity sha512-87lDFOG7SmGIbkuDen6ofIv0KnqnVc6XXVS/QW0YZIMU+5vOxN4/3gALVAr+xgKjonowxNHV58dxmKlCECAQDQ== +"@dhis2-ui/button@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/button/-/button-10.12.7.tgz#f8dde17415ed9473fcd1d688ac7eb00779d1fefd" + integrity sha512-CWKc7BLoSdAgJo8fqYZa3X0ibVksh3xmV6vICj8IzUnrPalCo1Vu6huXiNYKIaz6U/JDrSG0jJRKuiT/FZasGg== dependencies: - "@dhis2-ui/layer" "10.7.7" - "@dhis2-ui/loader" "10.7.7" - "@dhis2-ui/popper" "10.7.7" + "@dhis2-ui/layer" "10.12.7" + "@dhis2-ui/loader" "10.12.7" + "@dhis2-ui/popper" "10.12.7" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" - "@dhis2/ui-icons" "10.7.7" + "@dhis2/ui-constants" "10.12.7" + "@dhis2/ui-icons" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/calendar@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/calendar/-/calendar-10.7.7.tgz#167a5e5d2e5139ef0eb0ffa13437d045e7d8d03c" - integrity sha512-lNgYijDs31SPT0mKRzFhyYAvu+kYOtFN/m1gKZPPEbL+ygifEw6EmeVF0Ly/Gbb/1pk6Yu637BzvWOpgFiOObg== +"@dhis2-ui/calendar@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/calendar/-/calendar-10.12.7.tgz#0702c498fb2a2c92ff65e0c19910a1b54d142b74" + integrity sha512-5gPqTEHZG8ty3QjBsWcl7Cj8Np5cDZDNlONwJx4x4MaPJhKSaL5eDjt7w7ufxyj0js6H2IeE54UK8eDXsv9Oig== dependencies: - "@dhis2-ui/button" "10.7.7" - "@dhis2-ui/card" "10.7.7" - "@dhis2-ui/input" "10.7.7" - "@dhis2-ui/layer" "10.7.7" - "@dhis2-ui/popper" "10.7.7" + "@dhis2-ui/button" "10.12.7" + "@dhis2-ui/card" "10.12.7" + "@dhis2-ui/input" "10.12.7" + "@dhis2-ui/layer" "10.12.7" + "@dhis2-ui/popper" "10.12.7" "@dhis2/multi-calendar-dates" "2.1.2" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" - "@dhis2/ui-icons" "10.7.7" + "@dhis2/ui-constants" "10.12.7" + "@dhis2/ui-icons" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/card@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/card/-/card-10.7.7.tgz#ded336adacf6248bf298f753e9e17497b182b834" - integrity sha512-sgpzMYEk4oKzWt9Qd/e6lfBsgJMv4e46/ueYpKNgwr1sCbAau2Rt4YFVDQzk+Ms9GSUDVAWW2SUewsqogUl7Bg== +"@dhis2-ui/card@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/card/-/card-10.12.7.tgz#033ea258928842cf2e38ca88c2be7be0aa905ee1" + integrity sha512-l6GMS1q6KKMxA2gIP/AQdzdA+AriDXTo5tQgXwRwHfb5T3L32tyHuumGeQmBYX11nPAs8nEIbywNjh1Ey96SgQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/center@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/center/-/center-10.7.7.tgz#e5dc7b95311bdcf97da67e08a913db322b898da9" - integrity sha512-fwcmOOZh7SUL4fr5BgW/cdAUSVI2lyA1TpJgHs4q0X25F7A6emIw5KCNvyBzTP3GTdkGiZlz7V/yYkwm+tAjYA== +"@dhis2-ui/center@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/center/-/center-10.12.7.tgz#57499610f830526db9fd4ec9a480610ad520056e" + integrity sha512-ctbRDBreDei0TdE1mvRJ57rQymTz/n7X80Aqy5msuOsnZ2rknT3BUCvXwWvvcoO1Ht0vU8nbk7j81tbZ+Xxwng== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/checkbox@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/checkbox/-/checkbox-10.7.7.tgz#496be4a3d6d55555b79d638e81ea6c64f27b61d8" - integrity sha512-6WvpfaMx5mtIdIduoB/mU7y/nX+qJQDJe6henJNU4UrO/gc1egI9g1mg8o/xnXwTYRpMSIHs8sdgoGL7MOhfjg== +"@dhis2-ui/checkbox@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/checkbox/-/checkbox-10.12.7.tgz#5c11915a27471105fa07760490475f7b45c9056d" + integrity sha512-5+hhN60RdLvTek6dwtkw+67LeHFxtqw0sfsB9dw1Cg5ScPAn/bVtBHn574L7aFyLO2lS8McnBa688i3VGBdf+Q== dependencies: - "@dhis2-ui/field" "10.7.7" - "@dhis2-ui/required" "10.7.7" + "@dhis2-ui/field" "10.12.7" + "@dhis2-ui/required" "10.12.7" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/chip@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/chip/-/chip-10.7.7.tgz#e7be9567388296e72a286c9af24387e960ab1874" - integrity sha512-imd5M+UY2r6POP8CdieMzDkk4qt3FV7teD/Ypajx2chNMM5TNhB475itiC2q+jmFt0Hu90tpZlmNKOkUsw+OrA== +"@dhis2-ui/chip@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/chip/-/chip-10.12.7.tgz#6c707a913acc4317aece4812f4a4b37e54a46862" + integrity sha512-o86I2V98R3xR7UCwVwwcPazXRm7K4eQL7I4RCOXZ9jSPuWXec7buGAjYbxBYxzktrL3PkjFgka8HaFJ6gHRk+Q== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/cover@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/cover/-/cover-10.7.7.tgz#cafbfcd3a85424811f32c84ea741dc7edcf13427" - integrity sha512-Zv8yeHQEfpxgdUJT/SotpDRkvE6dPmDD2eZOUIzsHim1CDPnI4O5+nJTm/peW2rgYij4ZN8rNiYB1FzREJaPaw== +"@dhis2-ui/cover@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/cover/-/cover-10.12.7.tgz#211e70d7ed9f09ed7edd26658e861ebb6e91dcb4" + integrity sha512-r3EugAZymwC+SW3qruVWWGnxxOcl5cAXkLtTZ+A0TE4iisvubsqKMHBY5YgpKcwFRRNbuciSRiiGkQCBKR7Taw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/css@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/css/-/css-10.7.7.tgz#d1f858e925b2589d47c36cdbea32cb1a5d932624" - integrity sha512-s+AS+zmtHJ1l6VWEtZ7NLneXuJOYQy4Lgr0C+YAy2B2ldEoCGkcC2MRT0z0ixvHs8iOaVPlVj3Xc5mjbLgHumg== +"@dhis2-ui/css@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/css/-/css-10.12.7.tgz#128281862196efdab7d21295d4a8a8b6dc2bd581" + integrity sha512-lypNbysWUUqXealc42l8hYCEw5W6qBuUwTQguFtjIkiuBZ0edGIMibZ5uFHgt6Lt/VqiFxAEPzPZH2BVlE45Hw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/divider@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/divider/-/divider-10.7.7.tgz#5b328a296556913191d755a743c5112b297f352e" - integrity sha512-Nl2Jww/BbvdhrJUpQWcNGezrEjVDF4+aHqGjiyZAP5sHByfY7EBuxGxKOWUXPL+NmI1Qfz0oeEqAm9AnUTeQVA== +"@dhis2-ui/divider@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/divider/-/divider-10.12.7.tgz#6a6156c0202343347441208575e96975891c659d" + integrity sha512-2nldb94TeAmKBDRzGUYe7YOKet/2zPff/V2n29qnO62BLTaUF4PcgQ9z67PQtlIy0MTT49cFWM8cf0in14e98w== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/field@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/field/-/field-10.7.7.tgz#d2eb4c4eed197917d3ac5f2a91a833d2b6f7943a" - integrity sha512-4QZFIt3VnKbR3bUFE/yRIHPxTNvQggRuN+rghtGQ8b6GdMt2jecevXMC4KF0Vf3L6XPaykmgkad2IZG0Nqqm6Q== +"@dhis2-ui/field@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/field/-/field-10.12.7.tgz#56a56958e42b3964a27fb2feae8a91c738bf6dad" + integrity sha512-iDhEkTd22mTRfmkF0kF4t36JaeyG05UQrw/JegzpzeoZ4ChAiI8b8WNn74M90E9MHfmucYoi1HQkVMqsTVITyg== dependencies: - "@dhis2-ui/box" "10.7.7" - "@dhis2-ui/help" "10.7.7" - "@dhis2-ui/label" "10.7.7" + "@dhis2-ui/box" "10.12.7" + "@dhis2-ui/help" "10.12.7" + "@dhis2-ui/label" "10.12.7" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/file-input@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/file-input/-/file-input-10.7.7.tgz#dc558a3233b733defc2429e9be9b1f43ac9046f2" - integrity sha512-VQXA7dPheeNxTejRmt7oDcciumnnu2ZneqzWGePja8+9rXgnXM6XtBsNWmFFNmUPCwjc9wge0Z4RhVM+oLdj/A== +"@dhis2-ui/file-input@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/file-input/-/file-input-10.12.7.tgz#96a9813bbfb02303f9b1d51f7a434690eafaf041" + integrity sha512-yqCfmfwz/VudirKr+lxoJA50KlXKXV9fXgGIyoDrzIspHs5TtkVgsoHOlxwHkxRPRPOhPBbXoLvMjchP1mHkPw== dependencies: - "@dhis2-ui/button" "10.7.7" - "@dhis2-ui/field" "10.7.7" - "@dhis2-ui/label" "10.7.7" - "@dhis2-ui/loader" "10.7.7" - "@dhis2-ui/status-icon" "10.7.7" + "@dhis2-ui/button" "10.12.7" + "@dhis2-ui/field" "10.12.7" + "@dhis2-ui/label" "10.12.7" + "@dhis2-ui/loader" "10.12.7" + "@dhis2-ui/status-icon" "10.12.7" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" - "@dhis2/ui-icons" "10.7.7" + "@dhis2/ui-constants" "10.12.7" + "@dhis2/ui-icons" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/header-bar@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/header-bar/-/header-bar-10.7.7.tgz#890f49479c6347a39cbc1d4ebc81ea977e483228" - integrity sha512-pQS/SAHAk8CxoDsci1iS9H+kXr4mldvsWwvg7VgfidK6K0aPhd73d4D4Q98XdQwBr0wE9USKKhwC165XianZvg== - dependencies: - "@dhis2-ui/box" "10.7.7" - "@dhis2-ui/button" "10.7.7" - "@dhis2-ui/card" "10.7.7" - "@dhis2-ui/center" "10.7.7" - "@dhis2-ui/divider" "10.7.7" - "@dhis2-ui/input" "10.7.7" - "@dhis2-ui/layer" "10.7.7" - "@dhis2-ui/loader" "10.7.7" - "@dhis2-ui/logo" "10.7.7" - "@dhis2-ui/menu" "10.7.7" - "@dhis2-ui/modal" "10.7.7" - "@dhis2-ui/user-avatar" "10.7.7" +"@dhis2-ui/header-bar@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/header-bar/-/header-bar-10.12.7.tgz#d3eea6cbfe5573674791f69a813e869ddcfbeccc" + integrity sha512-BsHb5ArBjHGO/DyCMOUUrE8WdIOwuz5xoBcqNCoNhK68Uz0hhWLLNC9XteDeRq1B4pDlcjK+6ZcyAynhR86mTQ== + dependencies: + "@dhis2-ui/box" "10.12.7" + "@dhis2-ui/button" "10.12.7" + "@dhis2-ui/card" "10.12.7" + "@dhis2-ui/center" "10.12.7" + "@dhis2-ui/divider" "10.12.7" + "@dhis2-ui/input" "10.12.7" + "@dhis2-ui/layer" "10.12.7" + "@dhis2-ui/loader" "10.12.7" + "@dhis2-ui/logo" "10.12.7" + "@dhis2-ui/menu" "10.12.7" + "@dhis2-ui/modal" "10.12.7" + "@dhis2-ui/user-avatar" "10.12.7" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" - "@dhis2/ui-icons" "10.7.7" + "@dhis2/ui-constants" "10.12.7" + "@dhis2/ui-icons" "10.12.7" classnames "^2.3.1" moment "^2.29.1" prop-types "^15.7.2" -"@dhis2-ui/help@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/help/-/help-10.7.7.tgz#26cd732e37eb08393e4597310f58aed6499f8901" - integrity sha512-AACLBjU0+tnU4Cf39TL3/roH74LMLLfuMaSKKbdXNG/FUDCg4wY3ds63jvTBvSRaKNpOZ/AHrQetngEpH8FDEA== +"@dhis2-ui/help@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/help/-/help-10.12.7.tgz#ed50c218c4089a270fe782f1bdd296cca04f6d2d" + integrity sha512-b7TX7C9hY5VOezELW4Ec9UwgCJ8NUN4rmXPBUCopiQx3F+dtkpk9plWXFDyuMNupbI/TfRJjjAdLRXidYlnQ+g== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/input@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/input/-/input-10.7.7.tgz#39a1908c9712d32020c6b4200e302a26eb11831c" - integrity sha512-vsMwjRM1aBM8dwLW+OMwWHW1i7KI1ppdLatPqx3jkasGgqyOoQ8CZ2XTqprGz850vqzMAApBA2X0Z72lu3suYg== +"@dhis2-ui/input@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/input/-/input-10.12.7.tgz#a57fde0e4e9772cdc2143cf0c2756e85bfdd574a" + integrity sha512-bh29kaYqPBzhVd8kVrEQtMuYgDryeifzLnv9qYYnSWca6JtCDM3yvBKWuJLgO812nDrTGiOiuNrdNtCNsjYmZA== dependencies: - "@dhis2-ui/box" "10.7.7" - "@dhis2-ui/field" "10.7.7" - "@dhis2-ui/input" "10.7.7" - "@dhis2-ui/loader" "10.7.7" - "@dhis2-ui/status-icon" "10.7.7" + "@dhis2-ui/box" "10.12.7" + "@dhis2-ui/field" "10.12.7" + "@dhis2-ui/input" "10.12.7" + "@dhis2-ui/loader" "10.12.7" + "@dhis2-ui/status-icon" "10.12.7" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" - "@dhis2/ui-icons" "10.7.7" + "@dhis2/ui-constants" "10.12.7" + "@dhis2/ui-icons" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/intersection-detector@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/intersection-detector/-/intersection-detector-10.7.7.tgz#e5607cc2192ccc5ede8bbba09e5a37ca671229fc" - integrity sha512-y2kX3h2N553n1hKjFL0DV780JjYAU5Od3KorDM9ehPTM/4/DbW+x0Q9pQDx0+EC+ebbuFcmZUe1lfrzCM0jYLg== +"@dhis2-ui/intersection-detector@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/intersection-detector/-/intersection-detector-10.12.7.tgz#8b85e1389c75b2f5c98035b06464f18e116cbd68" + integrity sha512-zNDKq2D3Jq7r7YxkGqBU05BUCwe/5mza21LQo2QB7TdOuIW5hjKsbOGwVp9mGTIN2CV04+2mPDB2KinNP0EKIA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/label@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/label/-/label-10.7.7.tgz#aa74f0aa358b0c6ed89e17c7ac3a1bd42fdd7e80" - integrity sha512-0jBeSvMYi2L7EciaBrY8r/MablssoaKB8ybRkVpa47q+PBxBlJWWx8pAivaU7smlLeJyPk7HS+FyZxUDTovySg== +"@dhis2-ui/label@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/label/-/label-10.12.7.tgz#0c2da57e63e51a8886110b5f1ce61a33beb605c0" + integrity sha512-geZCvBAWu3JLfaJ/Paw4gcgJl3z2gwH/EzfOW5QhFVb72eSk05KGDhwReXfNILtvZGFVGLTXaATaQZQ0PD2pWw== dependencies: - "@dhis2-ui/required" "10.7.7" + "@dhis2-ui/required" "10.12.7" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/layer@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/layer/-/layer-10.7.7.tgz#d9d83b5a84859c78acac927dbfca90374d87990c" - integrity sha512-Zo0LMxY1TtG1rWQWho7Jz7xBj34FJuXWLEbj3DP2ZCGKQGRHQygoaDQFGTbeDAblYxtwICwN8+iMYQeMRubFcg== +"@dhis2-ui/layer@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/layer/-/layer-10.12.7.tgz#90012407364855a9c8bda754d606762c26d490a4" + integrity sha512-+05/NVL0ebkmvzyCuY/9CWywj1/xI4FPNmifqaTcV1GyVaIiY64kXPZ9ewqKjoZrzwg/yLzd3GkgZWRRm57/Fw== dependencies: - "@dhis2-ui/portal" "10.7.7" + "@dhis2-ui/portal" "10.12.7" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/legend@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/legend/-/legend-10.7.7.tgz#2606a72055e0f6a4790da41c24fd91cc65b5826d" - integrity sha512-mT/7t7Wg8R7/gkx4TO6eXxIjSDVzq1vjM4ofxnF76MqV4T4qHofgfSqsVy3OtSVGlEXPk+i8nREjMLZnlLwi+w== +"@dhis2-ui/legend@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/legend/-/legend-10.12.7.tgz#8bd1ca3ac84080e9b0b97632c53e05cc7969b8f5" + integrity sha512-e7RxynxJY9YIJhZkVXjtbRW19Jgzku5vvr1IoWyfv6YNuh7HzYfRISTOAYM4DJ5XmBcF59wWmHG/+HdREjoLqA== dependencies: - "@dhis2-ui/required" "10.7.7" + "@dhis2-ui/required" "10.12.7" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/loader@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/loader/-/loader-10.7.7.tgz#89af2bd9584156fee86afcafd4faa713d7c11446" - integrity sha512-FYyYqqGIwXBucMkge3vSi2h8Xt8gBOhyqrVoC+QPTcxkObBQZutEdA/vJ3ci5yx9R0UrSp98/4I/Vi3RNZXjgQ== +"@dhis2-ui/loader@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/loader/-/loader-10.12.7.tgz#470718ff3a90a5c3a7ff3a031773175568600c72" + integrity sha512-vbzn3IwFFr11Ma2+1rDof5JGMb/ZWPyrdhbA1RWxzZo0HHzaIz/xgjsXMSxlwqVfJbXy4aHU2JfXInEocrE0SA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/logo@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/logo/-/logo-10.7.7.tgz#b7ecd1a68241b326e19e403397c9cce68cd20260" - integrity sha512-T+EPO2eDpiKtNzaontzvGvmdQaIypIMfdZRUM7bDqEhSP6PhDMiYQN0pwVig8vZtEvxdXGXyqgpEh8Q1Uz2YuA== +"@dhis2-ui/logo@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/logo/-/logo-10.12.7.tgz#a1bbfd4ed20c519e3f7ea179cffe7538109e1627" + integrity sha512-6oONJmpk7yK2Oo/JQoTfP2ouJRvbFVfn1epq9IBSL7kM39Ra7AjVFwR3d2gouZASp4lOC+UQA34IgnhroblErQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/menu@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/menu/-/menu-10.7.7.tgz#6695dc7443e707b7b38bc1ca772f1d2e7a725f20" - integrity sha512-sFvhCnu+5gqmgzfskrNEb1EUhx1XhOx/K9VD03mYXEwMFwauKUHb3ezqs3w87Tnyjuxj1yT1F/Jx3OXQHKxBJw== +"@dhis2-ui/menu@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/menu/-/menu-10.12.7.tgz#b763262973d32df0a61659d56465ffb6ea43f699" + integrity sha512-9WrDpWC/PtMPR1i8VcM2Hc9BP6wLukEMPFhm6eMjU6L0ShYsoDsnT1bkEqdfzw1a3yjGQNu/dlW6K03sSax6nw== dependencies: - "@dhis2-ui/card" "10.7.7" - "@dhis2-ui/divider" "10.7.7" - "@dhis2-ui/layer" "10.7.7" - "@dhis2-ui/popper" "10.7.7" - "@dhis2-ui/portal" "10.7.7" + "@dhis2-ui/card" "10.12.7" + "@dhis2-ui/divider" "10.12.7" + "@dhis2-ui/layer" "10.12.7" + "@dhis2-ui/popper" "10.12.7" + "@dhis2-ui/portal" "10.12.7" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" - "@dhis2/ui-icons" "10.7.7" + "@dhis2/ui-constants" "10.12.7" + "@dhis2/ui-icons" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/modal@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/modal/-/modal-10.7.7.tgz#3ece057d2bde31d052b46db3bf34d1e0d462d4e5" - integrity sha512-9oT/Qxx+/3Lro03C31qZLEWRgd5BDw2pR2ulcRWp3qbFn0CgLuDaI/tdi+CoF1qD44XkmuE32v34PP06mftyRg== +"@dhis2-ui/modal@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/modal/-/modal-10.12.7.tgz#40c2eed0702129974afdf5e7ace32262b16505f9" + integrity sha512-vwD6qY22ZaBN6VmSpJsw3OrbdI9kt3kOuH991tNrbxzHDvVvy0U/85NfMsSvWBF3cG/fDstOu1wofvZUX3BiCg== dependencies: - "@dhis2-ui/card" "10.7.7" - "@dhis2-ui/center" "10.7.7" - "@dhis2-ui/layer" "10.7.7" - "@dhis2-ui/portal" "10.7.7" + "@dhis2-ui/card" "10.12.7" + "@dhis2-ui/center" "10.12.7" + "@dhis2-ui/layer" "10.12.7" + "@dhis2-ui/portal" "10.12.7" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" - "@dhis2/ui-icons" "10.7.7" + "@dhis2/ui-constants" "10.12.7" + "@dhis2/ui-icons" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/node@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/node/-/node-10.7.7.tgz#6f70456cee14bc84836ec00a4332387631ecf827" - integrity sha512-rlFWVeElE2lZRvf0XoPjXsZiX7PkWyq0Dyr3EjpG5qKpycb/ss2mn8yvAUUe3eMGT8EB+qD3oTASgABK8pXIow== +"@dhis2-ui/node@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/node/-/node-10.12.7.tgz#b5650d9e5c9dfef130f103c8b8461d57c5208f82" + integrity sha512-YnDP0ERrJ+Im5x4Qpy0Lopai1JzxIDaoxQX6mXmZw6vWEXWyWn8te4kQF4rRT06zcVUnQ/QFsAtm+WvzMiBIhA== dependencies: - "@dhis2-ui/loader" "10.7.7" + "@dhis2-ui/loader" "10.12.7" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/notice-box@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/notice-box/-/notice-box-10.7.7.tgz#d72523c3962692fb6955ec3f5edd0364fae4554d" - integrity sha512-CLIHv57hZ7eXDs8P0NqQdfZgWXw6ajzViMusWrkyxKNX6mXPDxbJJ1z5AhrKYoNuVruzjGmlTdYqQ/nYsmKt/w== +"@dhis2-ui/notice-box@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/notice-box/-/notice-box-10.12.7.tgz#c33360c4c7cc38321c83968a3575d42d72860cd3" + integrity sha512-mqFqJh31IJvmWxKluEcJSHBwNA64zlQhj7TAScbl5tHkPna+vGt5anrCqNo4w+OSlXbZALfLieF6BHz+zJMhZQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" - "@dhis2/ui-icons" "10.7.7" + "@dhis2/ui-constants" "10.12.7" + "@dhis2/ui-icons" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/organisation-unit-tree@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/organisation-unit-tree/-/organisation-unit-tree-10.7.7.tgz#1010c66fe0c6fa0475819de733f55b51cac6715f" - integrity sha512-J8Mz2nK+2lpMAf8Bs/n7inijCnQu7kLIGhNRKyGlx8QhXj1A6qCEcXyckutyX1yGZVIrCUKD4mKl3RPC2rJNaQ== +"@dhis2-ui/organisation-unit-tree@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/organisation-unit-tree/-/organisation-unit-tree-10.12.7.tgz#71f88ad89401d8ed02cb911fea2c381bdd8c4256" + integrity sha512-ct6iikW80PdXO5WtDDbS/CzHPEJfBp0N/sFO26e77bafoIEXB9Rzqw61vhYmoRPzNHSBPPxEQ5CT1cwvfPkVKA== dependencies: - "@dhis2-ui/button" "10.7.7" - "@dhis2-ui/checkbox" "10.7.7" - "@dhis2-ui/loader" "10.7.7" - "@dhis2-ui/node" "10.7.7" + "@dhis2-ui/button" "10.12.7" + "@dhis2-ui/checkbox" "10.12.7" + "@dhis2-ui/loader" "10.12.7" + "@dhis2-ui/node" "10.12.7" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/pagination@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/pagination/-/pagination-10.7.7.tgz#86338e9d508b3b28e4fe66aded5a7ad4e3bee827" - integrity sha512-kNPYexY4tCyB4rW6nwLILEvvXMEUK4GfmvItOJDNP+tah7l1QJOYkuXIbZOodMG0SwMoQyZWveQVLnn84yg6qw== +"@dhis2-ui/pagination@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/pagination/-/pagination-10.12.7.tgz#e955090b65fccfdbe1de3a63dc4ea488b5362e32" + integrity sha512-dSE2XiRqiQFXlEaT55HAQd17ze/P3o08iaN+XtoF4eDCQPjleFnpkJUhvcovZd/ZpFUKrvuRnE9Izd70baYjhA== dependencies: - "@dhis2-ui/button" "10.7.7" - "@dhis2-ui/select" "10.7.7" + "@dhis2-ui/button" "10.12.7" + "@dhis2-ui/select" "10.12.7" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" - "@dhis2/ui-icons" "10.7.7" + "@dhis2/ui-constants" "10.12.7" + "@dhis2/ui-icons" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/popover@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/popover/-/popover-10.7.7.tgz#9f9c9f26bd0c2294b93b1d04d4be7d5407f4bcfe" - integrity sha512-3eC4e0Ut0YgOXGQzdOUNrjzu1dn0PsLroqoy1s4jPZoKNe3eCTXr8eUnb9p+/qrLH8ZapaxFgJSk5JzbJE0SZg== +"@dhis2-ui/popover@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/popover/-/popover-10.12.7.tgz#85eb91325b867c78c59b4a28caee9942cbb7cc30" + integrity sha512-v/GJJiNELujE2MN9GX0e84qBUz/0X0tEJJbMSMVzjTyGGZkL/AJHMIkxl6OO0dLmbk+rIPAKyZSZ9YhwbCKc7g== dependencies: - "@dhis2-ui/layer" "10.7.7" - "@dhis2-ui/popper" "10.7.7" + "@dhis2-ui/layer" "10.12.7" + "@dhis2-ui/popper" "10.12.7" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/popper@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/popper/-/popper-10.7.7.tgz#b110a45ce0914aeb278c2d3872bc95fd5e14d64e" - integrity sha512-UaldqtylM4QzZDs8XuU3AnkT8V2eU/v+re+mFc4zRaupD5Su19MgZX0HL2HuEWMvyZ8DZkNMu2WeWuwL9/C3wA== +"@dhis2-ui/popper@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/popper/-/popper-10.12.7.tgz#ac33f07808706866b0f53be66406cc9439fa4f79" + integrity sha512-vywCeSfRA/G21uGGvHjD2Nd2kZ+JJKpJqVCzz/qa8hq5tm1D17Rc+mPp3gzaD8lX1nOkLNH4SoO3P3hycdZNXg== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" "@popperjs/core" "^2.11.8" classnames "^2.3.1" prop-types "^15.7.2" react-popper "^2.3.0" resize-observer-polyfill "^1.5.1" -"@dhis2-ui/portal@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/portal/-/portal-10.7.7.tgz#a787d018a1e104ea0ce844706b47ab3267d85772" - integrity sha512-q1nBYsBUDpkFIjN69NfqDTM5P9ApYTmNhqR2z0lhca747OXz1ExwvryfCfVnZ8Qnjgc/BWHgvBzQLPlqXaGFGQ== +"@dhis2-ui/portal@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/portal/-/portal-10.12.7.tgz#a7531be1450f48313353f1e259088523d1648d5a" + integrity sha512-NmAiVlFqRe1Bd3+82kGi/obyqSpRfPzUUmAKJBhFLaVkz1UqB9NDXX0ElKjQiOdgMU+bRRJB9z3lDW4F/ttKXw== dependencies: classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/radio@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/radio/-/radio-10.7.7.tgz#77ca47a52d4ee5292b1ba1492a8a57550f441368" - integrity sha512-zi4cwr+rvQ3FyyOu7yo6Vw64DKpBTq9jW7wmFQPyBdfSME5wuF8A/ac+9Nkxq/n8qqJJDZSgKuQqkYWoKtejjg== +"@dhis2-ui/radio@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/radio/-/radio-10.12.7.tgz#5b1eb517bcbef14e7aceb5dcbe514fe9aee53241" + integrity sha512-1eXAL0YL93bqLeOxYGH0Y2Fw6c17k5ucQ9tQ3QgdKFqfM7qA6ZnVXm7cWP9YnGe5Nj7NpbmOrsJyICPOptN+wA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/required@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/required/-/required-10.7.7.tgz#6b8cd2883d25ade4dba8429d67dfe9308a58e693" - integrity sha512-mkwSHKW0N0frknczumozd5owkxRk3XQsI7b8/OwkQhL3abwOHkYxARnjOcP0VXEPaMPIfn5mTd8d63oTNecD3Q== +"@dhis2-ui/required@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/required/-/required-10.12.7.tgz#739bccfd9fd38e79a67f45348fb42d2129a06bfa" + integrity sha512-u7jyYGhNcUxqZGMbaYCRy73VO52V2YnZYZ++MbSZbvhnMRhVCcBCPmrevqkH//fMbXOqGrEmYW6eyRdXTdbbOA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/segmented-control@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/segmented-control/-/segmented-control-10.7.7.tgz#a075c838211d077a99eafadf47d69445f8d19567" - integrity sha512-Fg9LZVi8bTxx5HaYhecsUcYlWTJ6WlNUbxgDvRvsh7bM5BI567D8safb5NOxrhnQb5CYbtyLXWq71ICtyFng3A== +"@dhis2-ui/segmented-control@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/segmented-control/-/segmented-control-10.12.7.tgz#fc613c17bbd821a08a21d49d7405bbf1e6d59fe1" + integrity sha512-27xjr1crm/g1PrZbnPOZ+aR9DAteWvJSnifPO2o/Cc9O/3RPjR5dlckQq56hSNNRkKLubSfsSmNQTvCzs6oO/A== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/select@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/select/-/select-10.7.7.tgz#2d6cdfded6237836fa664d6c65f82b0216ff0f70" - integrity sha512-1yl+pUp68Lc2NJR8nTTyA2uIofaV0EYM8smmOpM0WlgANhCh7e0w+tV+j/WqJf3nKmvJdIkrrayubIWrs52ZeA== - dependencies: - "@dhis2-ui/box" "10.7.7" - "@dhis2-ui/button" "10.7.7" - "@dhis2-ui/card" "10.7.7" - "@dhis2-ui/checkbox" "10.7.7" - "@dhis2-ui/chip" "10.7.7" - "@dhis2-ui/field" "10.7.7" - "@dhis2-ui/input" "10.7.7" - "@dhis2-ui/layer" "10.7.7" - "@dhis2-ui/loader" "10.7.7" - "@dhis2-ui/popper" "10.7.7" - "@dhis2-ui/status-icon" "10.7.7" - "@dhis2-ui/tooltip" "10.7.7" +"@dhis2-ui/select@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/select/-/select-10.12.7.tgz#ee2e9a7a55ed68ef5e45cc1224703ec34545e99d" + integrity sha512-yiB0E5/vsaMfoS9yIwHCn1M670XYu9XRg+bTCcduh+dnn8j1+uzM1DKeGw0FWpzIry0VNMZfC/9Mtj+FYTT1+w== + dependencies: + "@dhis2-ui/box" "10.12.7" + "@dhis2-ui/button" "10.12.7" + "@dhis2-ui/card" "10.12.7" + "@dhis2-ui/checkbox" "10.12.7" + "@dhis2-ui/chip" "10.12.7" + "@dhis2-ui/field" "10.12.7" + "@dhis2-ui/input" "10.12.7" + "@dhis2-ui/layer" "10.12.7" + "@dhis2-ui/loader" "10.12.7" + "@dhis2-ui/popper" "10.12.7" + "@dhis2-ui/status-icon" "10.12.7" + "@dhis2-ui/tooltip" "10.12.7" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" - "@dhis2/ui-icons" "10.7.7" + "@dhis2/ui-constants" "10.12.7" + "@dhis2/ui-icons" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/selector-bar@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/selector-bar/-/selector-bar-10.7.7.tgz#d7721216d7777d581da4a80bbec734584cf8f298" - integrity sha512-Z2WI3xyjcK1CEptT5qQqeWniw8x5ojr/Bmu9UxaYAXjwkVAV7mvwLzzoAlePEW302LDx0p9hooY/06m/4Fq0Pw== - dependencies: - "@dhis2-ui/button" "10.7.7" - "@dhis2-ui/card" "10.7.7" - "@dhis2-ui/layer" "10.7.7" - "@dhis2-ui/popper" "10.7.7" - "@dhis2/ui-constants" "10.7.7" - "@dhis2/ui-icons" "10.7.7" +"@dhis2-ui/selector-bar@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/selector-bar/-/selector-bar-10.12.7.tgz#4fcbf359b5b27586b6b523d417ce0781f522992a" + integrity sha512-NRTnCxskVOdFapZ1kFFhW1+sKAN/EKHA9i8kWhaxtuJqIQYEa3A9qJq8JZR50PxECFsjDFmZSjfeU/VXfDedrg== + dependencies: + "@dhis2-ui/button" "10.12.7" + "@dhis2-ui/card" "10.12.7" + "@dhis2-ui/layer" "10.12.7" + "@dhis2-ui/popper" "10.12.7" + "@dhis2/ui-constants" "10.12.7" + "@dhis2/ui-icons" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/sharing-dialog@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/sharing-dialog/-/sharing-dialog-10.7.7.tgz#57abc85ddaac8ce0e8d60b4638f5a47e9fccd990" - integrity sha512-vGlr/FLF4ZaIwT3bVwmrXGCP1a9qp418OxlF3PextLBQ7+VPeEZNOAYVOZ/nwCmycqjpmWQs3O6lfRvRc7bu3w== - dependencies: - "@dhis2-ui/box" "10.7.7" - "@dhis2-ui/button" "10.7.7" - "@dhis2-ui/card" "10.7.7" - "@dhis2-ui/divider" "10.7.7" - "@dhis2-ui/input" "10.7.7" - "@dhis2-ui/layer" "10.7.7" - "@dhis2-ui/menu" "10.7.7" - "@dhis2-ui/modal" "10.7.7" - "@dhis2-ui/notice-box" "10.7.7" - "@dhis2-ui/popper" "10.7.7" - "@dhis2-ui/select" "10.7.7" - "@dhis2-ui/tab" "10.7.7" - "@dhis2-ui/tooltip" "10.7.7" - "@dhis2-ui/user-avatar" "10.7.7" +"@dhis2-ui/sharing-dialog@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/sharing-dialog/-/sharing-dialog-10.12.7.tgz#240e4ae69b9c4eabe88f24216bd4cda948f744da" + integrity sha512-h+gQnCDOuwIZ1xQeIQ39sNYpxgaBBo8X6CdqkEFoUB1gpfvkmoiP/IMvoamYk4EimQico2cHjxZ+wC/qmOfGyg== + dependencies: + "@dhis2-ui/box" "10.12.7" + "@dhis2-ui/button" "10.12.7" + "@dhis2-ui/card" "10.12.7" + "@dhis2-ui/divider" "10.12.7" + "@dhis2-ui/input" "10.12.7" + "@dhis2-ui/layer" "10.12.7" + "@dhis2-ui/menu" "10.12.7" + "@dhis2-ui/modal" "10.12.7" + "@dhis2-ui/notice-box" "10.12.7" + "@dhis2-ui/popper" "10.12.7" + "@dhis2-ui/select" "10.12.7" + "@dhis2-ui/tab" "10.12.7" + "@dhis2-ui/tooltip" "10.12.7" + "@dhis2-ui/user-avatar" "10.12.7" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" - "@dhis2/ui-icons" "10.7.7" + "@dhis2/ui-constants" "10.12.7" + "@dhis2/ui-icons" "10.12.7" "@react-hook/size" "^2.1.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/status-icon@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/status-icon/-/status-icon-10.7.7.tgz#ce9c9c071500c174336483fa91a737a31fbd96e9" - integrity sha512-QcRT/HUy/XCiPDBGq84e4hNN3CmvvUXNB53Mrb8WGGOggK6r4NskLrJ1f7R6nBFgpydEL9b0VDEKISb9WNgNsw== +"@dhis2-ui/status-icon@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/status-icon/-/status-icon-10.12.7.tgz#e8d925e2f7947d9d642b794e872af0279b9a9036" + integrity sha512-xirsOiurQOCWE+u0gGLhX9LilrFIyy1FFsU/js4ie9d7JgHdHdRd5+jJ02Y1vSoosFVNetKwjbDwnVTO2zp4JQ== dependencies: - "@dhis2-ui/loader" "10.7.7" + "@dhis2-ui/loader" "10.12.7" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" - "@dhis2/ui-icons" "10.7.7" + "@dhis2/ui-constants" "10.12.7" + "@dhis2/ui-icons" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/switch@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/switch/-/switch-10.7.7.tgz#65a9d9144a0a667c1c074122c4928c7b2c8c7c44" - integrity sha512-BHgWP5BxDA040K+YNDgtWX/sEeByyGbfB/A8HC/Y0YyfS8llIGUkO72s2TJDBVd3Uz6eycmAeoNHt+vh7oPh4g== +"@dhis2-ui/switch@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/switch/-/switch-10.12.7.tgz#df12bc7ef35e310bc27f4651d620d2f5edb34859" + integrity sha512-+QOTIYgrWJGp/93nPhDTXPlU7xW48Yc/mqBhB5M5BsHWYS8ZH7dmAxEryG2b7IcEXAvszwX5s4mzYr0/qzUFjg== dependencies: - "@dhis2-ui/field" "10.7.7" - "@dhis2-ui/required" "10.7.7" + "@dhis2-ui/field" "10.12.7" + "@dhis2-ui/required" "10.12.7" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/tab@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/tab/-/tab-10.7.7.tgz#524cd8f6a6bc7f9e4d1ea454c9e22cde500b28d8" - integrity sha512-a4Jb/2kYuoOlgh/12LWFqUhOYmIkZUnUegtyIrZb6i/bvGlJrgMAjiOgDmMm9Bm8xcHfB7M4URvakb9Aj5aV1g== +"@dhis2-ui/tab@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tab/-/tab-10.12.7.tgz#baa1c9ac11d3caa5c2b4cf271d4c33c9fa616b44" + integrity sha512-rWEkwG6qV94puiJEaNawPS+7Gmt/zwP92CwsWB11OTPtj1iuraDjmz7xSq4Rh7BPya2zBhj9uqUlJuSisXa/GA== dependencies: - "@dhis2-ui/tooltip" "10.7.7" + "@dhis2-ui/tooltip" "10.12.7" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" - "@dhis2/ui-icons" "10.7.7" + "@dhis2/ui-constants" "10.12.7" + "@dhis2/ui-icons" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/table@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/table/-/table-10.7.7.tgz#25c57e1d4ebbb31a6629cca87238a7c860447239" - integrity sha512-Y1yumIkX9di4LBuYzfoWd5pLNfhwxv/QwbmKEOUopJ5+yVUtwCcdk1wq5xSVBF2FimDrUraQK/lDZy2XFAPpHw== +"@dhis2-ui/table@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/table/-/table-10.12.7.tgz#54b5f513845740cc8a877e08f9654e21a721a16f" + integrity sha512-//U4aIG4F8H5/NF7Np1yVbKH4wbUL/7YLI8mc0GoF4dwKb74nMHyY0sbDXdU80RtXrjRuENry+Mi6ZIQkfLjrw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" - "@dhis2/ui-icons" "10.7.7" + "@dhis2/ui-constants" "10.12.7" + "@dhis2/ui-icons" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/tag@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/tag/-/tag-10.7.7.tgz#2478b80cdca6b3e13ef90f7ac4c6da62112cc391" - integrity sha512-8zkG4skg07keonXp4y6whrNn5paLvo4oKmz0E0vpXTtaIwXjYxdgRPmTlpquzWprDfjjJIdoNa5NuplGKxio8g== +"@dhis2-ui/tag@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tag/-/tag-10.12.7.tgz#08478151f953f755d8a28b75061a1450b0dc7791" + integrity sha512-hHSGrUwcHdExnNReyoaEpGo0GPuvFoHrBRdi4rgbozKiYqJYlDKtK9YGNjGUKPBzDzVXD8x64wJ/kd0UGW2sMg== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/text-area@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/text-area/-/text-area-10.7.7.tgz#7549d334b28613ba53108e80d1dec3eded5c7c12" - integrity sha512-w0OeVK3opFIsduliW1fH2VGUofcfgB8k6wA1o71KDi3S9dGa9NLoXmvsudTY2RNxIF4bS3ApeCcvOtm+X+taCA== +"@dhis2-ui/text-area@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/text-area/-/text-area-10.12.7.tgz#edc59749d88c766043e87be3b0fc099e74569c22" + integrity sha512-a9DCEEJQaydzxHdvcafYx1jyTTWm7VM4m7F0gVe2kHuL4QwZXT2LpaLkFuaB+4M1aeKFs4s4J5VBg3K6fkQl0g== dependencies: - "@dhis2-ui/box" "10.7.7" - "@dhis2-ui/field" "10.7.7" - "@dhis2-ui/loader" "10.7.7" - "@dhis2-ui/status-icon" "10.7.7" + "@dhis2-ui/box" "10.12.7" + "@dhis2-ui/field" "10.12.7" + "@dhis2-ui/loader" "10.12.7" + "@dhis2-ui/status-icon" "10.12.7" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" - "@dhis2/ui-icons" "10.7.7" + "@dhis2/ui-constants" "10.12.7" + "@dhis2/ui-icons" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/tooltip@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/tooltip/-/tooltip-10.7.7.tgz#d34466bfaa246d0042b650a409802a35c948d67d" - integrity sha512-ptqNg83UOJictt7sOJT68SIHn2/oEptnyW29Uh/hTXawKiZd0ME8Bvv7H9eVLGVy8GSS6doSbcN3sp4MbmSIoA== +"@dhis2-ui/tooltip@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tooltip/-/tooltip-10.12.7.tgz#41e4dbcec250b59bda6518ca8c0b984a5a03abcb" + integrity sha512-s2PI6n5KqI0tFmJwIwFaXIf4X4um3h4ALNx32Ww8dRle68sj+PgCUWrQ16rUV53nRL3zp+n90R66OeKiqOyqfw== dependencies: - "@dhis2-ui/popper" "10.7.7" - "@dhis2-ui/portal" "10.7.7" + "@dhis2-ui/popper" "10.12.7" + "@dhis2-ui/portal" "10.12.7" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/transfer@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/transfer/-/transfer-10.7.7.tgz#3e38539f495621f14e56707110480f8bb8a35bf1" - integrity sha512-Zrq1GoiSX3zr0BwyY6qMvEnPf92/PCyfLFsy4Acr7pC/h7i0UiyeSdul/I22EXbutpgRGcrKag0Ain+ldD11Kw== +"@dhis2-ui/transfer@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/transfer/-/transfer-10.12.7.tgz#6797a3426c21182fac9ae36e0479282992dce383" + integrity sha512-qkGqN2uwnnIZKADLuM+rwXIJrwxaV/QpfLOOYVFcMM/uYuU5OPSSbSGS6w+VK/sqcnmMxpN5GA+VPJ38h58iHQ== dependencies: - "@dhis2-ui/button" "10.7.7" - "@dhis2-ui/field" "10.7.7" - "@dhis2-ui/input" "10.7.7" - "@dhis2-ui/intersection-detector" "10.7.7" - "@dhis2-ui/loader" "10.7.7" + "@dhis2-ui/button" "10.12.7" + "@dhis2-ui/field" "10.12.7" + "@dhis2-ui/input" "10.12.7" + "@dhis2-ui/intersection-detector" "10.12.7" + "@dhis2-ui/loader" "10.12.7" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/user-avatar@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2-ui/user-avatar/-/user-avatar-10.7.7.tgz#5c7777d316dc717d02764732d6081cc681f46e0e" - integrity sha512-X99KtlZK/gnZ8aM1bL4JsIp+NQTBi0wE7Hh2HnLUYzFTchbgpSfj8qhJoaab+/m76K1ADWHJaFld1cQjcjLqvQ== +"@dhis2-ui/user-avatar@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2-ui/user-avatar/-/user-avatar-10.12.7.tgz#747f5662b3f6620d6a558c5f0439ad2ca7d62ac1" + integrity sha512-Qw2N2UyNsBVIXLkBiizFQUt/Utpk4IdJivNGKDzUESuf7l2J8NJfe9Klm19hWwud/JVqqDKXvzh5VP7q8wfAdw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "10.7.7" + "@dhis2/ui-constants" "10.12.7" classnames "^2.3.1" prop-types "^15.7.2" @@ -2205,91 +2205,91 @@ workbox-routing "^7.1.0" workbox-strategies "^7.1.0" -"@dhis2/ui-constants@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2/ui-constants/-/ui-constants-10.7.7.tgz#b29b25f2663217c04d511361d30fdd8f21083bc5" - integrity sha512-yxvYFY/eKqqcXmx903+o1lJl5xDo2EUCmE//HTgJMQET2PvCVDv+FvdD8XJ0eiDX95L5AOeJFoma3xAbaCfQZg== +"@dhis2/ui-constants@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2/ui-constants/-/ui-constants-10.12.7.tgz#9c63b54b0b3da6ca7ba0d53c0524376818a242e7" + integrity sha512-0xyFDdEMSVymX23zxUV0iPfIzDhxa7ylh92Sqi6G2Skc0RG0wb9civDok+p1Q22BM18jXotx5Yreoad3AnfX2A== dependencies: prop-types "^15.7.2" -"@dhis2/ui-forms@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2/ui-forms/-/ui-forms-10.7.7.tgz#991de6f9af4c8f144af2429d14eeb808b464620a" - integrity sha512-oibvK/H0d8iQQvML7AYicKUlRxW/t/RaLg203stlQ4IxE0RElpwMXUs4uXKLLg7j1ptG+e9KcOrtml/xsr/V9Q== - dependencies: - "@dhis2-ui/button" "10.7.7" - "@dhis2-ui/checkbox" "10.7.7" - "@dhis2-ui/field" "10.7.7" - "@dhis2-ui/file-input" "10.7.7" - "@dhis2-ui/input" "10.7.7" - "@dhis2-ui/radio" "10.7.7" - "@dhis2-ui/select" "10.7.7" - "@dhis2-ui/switch" "10.7.7" - "@dhis2-ui/text-area" "10.7.7" +"@dhis2/ui-forms@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2/ui-forms/-/ui-forms-10.12.7.tgz#c1f7e1726e5e5c9d78d739d9a593484d46f643bc" + integrity sha512-ds4wll1yZdwJx40jyguq3HepZky/yPA4UfgxRKYcZMYRw+b3b03gyurijyt9uCxbU2GmgLjMdsddLujhjjWb2A== + dependencies: + "@dhis2-ui/button" "10.12.7" + "@dhis2-ui/checkbox" "10.12.7" + "@dhis2-ui/field" "10.12.7" + "@dhis2-ui/file-input" "10.12.7" + "@dhis2-ui/input" "10.12.7" + "@dhis2-ui/radio" "10.12.7" + "@dhis2-ui/select" "10.12.7" + "@dhis2-ui/switch" "10.12.7" + "@dhis2-ui/text-area" "10.12.7" "@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@10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2/ui-icons/-/ui-icons-10.7.7.tgz#cb0dd9b1e713bde6615b5ac2f09d12527e546cd9" - integrity sha512-Ld+OnFAKftPxzMzjSGyRK7Gz7TNHg2FQkK9a5mztPydLiZ9eThZ218o+4uX9cUMoG2F2pBwbYJ2qg0mebVc33g== - -"@dhis2/ui@^10.1.7", "@dhis2/ui@^10.7.7": - version "10.7.7" - resolved "https://registry.yarnpkg.com/@dhis2/ui/-/ui-10.7.7.tgz#8b6f23b892b1deb2ff0497a09cc0eba9040563b2" - integrity sha512-sAjfEqu5A/I1ITliTAnv0tQaikaKua+Ihp5Uk4DXoZLxLP1VPppS6PFYmGWLD5OTsV8eSmIxsfr9OmJs7leqSA== - dependencies: - "@dhis2-ui/alert" "10.7.7" - "@dhis2-ui/box" "10.7.7" - "@dhis2-ui/button" "10.7.7" - "@dhis2-ui/calendar" "10.7.7" - "@dhis2-ui/card" "10.7.7" - "@dhis2-ui/center" "10.7.7" - "@dhis2-ui/checkbox" "10.7.7" - "@dhis2-ui/chip" "10.7.7" - "@dhis2-ui/cover" "10.7.7" - "@dhis2-ui/css" "10.7.7" - "@dhis2-ui/divider" "10.7.7" - "@dhis2-ui/field" "10.7.7" - "@dhis2-ui/file-input" "10.7.7" - "@dhis2-ui/header-bar" "10.7.7" - "@dhis2-ui/help" "10.7.7" - "@dhis2-ui/input" "10.7.7" - "@dhis2-ui/intersection-detector" "10.7.7" - "@dhis2-ui/label" "10.7.7" - "@dhis2-ui/layer" "10.7.7" - "@dhis2-ui/legend" "10.7.7" - "@dhis2-ui/loader" "10.7.7" - "@dhis2-ui/logo" "10.7.7" - "@dhis2-ui/menu" "10.7.7" - "@dhis2-ui/modal" "10.7.7" - "@dhis2-ui/node" "10.7.7" - "@dhis2-ui/notice-box" "10.7.7" - "@dhis2-ui/organisation-unit-tree" "10.7.7" - "@dhis2-ui/pagination" "10.7.7" - "@dhis2-ui/popover" "10.7.7" - "@dhis2-ui/popper" "10.7.7" - "@dhis2-ui/portal" "10.7.7" - "@dhis2-ui/radio" "10.7.7" - "@dhis2-ui/required" "10.7.7" - "@dhis2-ui/segmented-control" "10.7.7" - "@dhis2-ui/select" "10.7.7" - "@dhis2-ui/selector-bar" "10.7.7" - "@dhis2-ui/sharing-dialog" "10.7.7" - "@dhis2-ui/switch" "10.7.7" - "@dhis2-ui/tab" "10.7.7" - "@dhis2-ui/table" "10.7.7" - "@dhis2-ui/tag" "10.7.7" - "@dhis2-ui/text-area" "10.7.7" - "@dhis2-ui/tooltip" "10.7.7" - "@dhis2-ui/transfer" "10.7.7" - "@dhis2-ui/user-avatar" "10.7.7" - "@dhis2/ui-constants" "10.7.7" - "@dhis2/ui-forms" "10.7.7" - "@dhis2/ui-icons" "10.7.7" +"@dhis2/ui-icons@10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2/ui-icons/-/ui-icons-10.12.7.tgz#3c5c26f163713a7cca59c89f94ff1a4faa1e1dc8" + integrity sha512-FZQ84h+WWnli4gkJCyWuj56RCkR6NDidEZ9x3PtrOL5cwsPa9UrP4+T/V+KiZnLuGNGbk1O0zL+mHthMQ+V9Hw== + +"@dhis2/ui@^10.1.7", "@dhis2/ui@^10.12.7": + version "10.12.7" + resolved "https://registry.yarnpkg.com/@dhis2/ui/-/ui-10.12.7.tgz#8d818e4447a787e5a6dff9f5665912b2c05941ee" + integrity sha512-qxKqqPAkpyh14iFtviePmJh+2NV+cdz+st3kS3w3fRD5jv22np5Ck2WQwTgXdBKX9wyo2hRM5VMEcBgUYM26mw== + dependencies: + "@dhis2-ui/alert" "10.12.7" + "@dhis2-ui/box" "10.12.7" + "@dhis2-ui/button" "10.12.7" + "@dhis2-ui/calendar" "10.12.7" + "@dhis2-ui/card" "10.12.7" + "@dhis2-ui/center" "10.12.7" + "@dhis2-ui/checkbox" "10.12.7" + "@dhis2-ui/chip" "10.12.7" + "@dhis2-ui/cover" "10.12.7" + "@dhis2-ui/css" "10.12.7" + "@dhis2-ui/divider" "10.12.7" + "@dhis2-ui/field" "10.12.7" + "@dhis2-ui/file-input" "10.12.7" + "@dhis2-ui/header-bar" "10.12.7" + "@dhis2-ui/help" "10.12.7" + "@dhis2-ui/input" "10.12.7" + "@dhis2-ui/intersection-detector" "10.12.7" + "@dhis2-ui/label" "10.12.7" + "@dhis2-ui/layer" "10.12.7" + "@dhis2-ui/legend" "10.12.7" + "@dhis2-ui/loader" "10.12.7" + "@dhis2-ui/logo" "10.12.7" + "@dhis2-ui/menu" "10.12.7" + "@dhis2-ui/modal" "10.12.7" + "@dhis2-ui/node" "10.12.7" + "@dhis2-ui/notice-box" "10.12.7" + "@dhis2-ui/organisation-unit-tree" "10.12.7" + "@dhis2-ui/pagination" "10.12.7" + "@dhis2-ui/popover" "10.12.7" + "@dhis2-ui/popper" "10.12.7" + "@dhis2-ui/portal" "10.12.7" + "@dhis2-ui/radio" "10.12.7" + "@dhis2-ui/required" "10.12.7" + "@dhis2-ui/segmented-control" "10.12.7" + "@dhis2-ui/select" "10.12.7" + "@dhis2-ui/selector-bar" "10.12.7" + "@dhis2-ui/sharing-dialog" "10.12.7" + "@dhis2-ui/switch" "10.12.7" + "@dhis2-ui/tab" "10.12.7" + "@dhis2-ui/table" "10.12.7" + "@dhis2-ui/tag" "10.12.7" + "@dhis2-ui/text-area" "10.12.7" + "@dhis2-ui/tooltip" "10.12.7" + "@dhis2-ui/transfer" "10.12.7" + "@dhis2-ui/user-avatar" "10.12.7" + "@dhis2/ui-constants" "10.12.7" + "@dhis2/ui-forms" "10.12.7" + "@dhis2/ui-icons" "10.12.7" prop-types "^15.7.2" "@dnd-kit/accessibility@^3.0.0":