From 4a79d5be6e415c55828ad6abe99e450c1ff293dd Mon Sep 17 00:00:00 2001 From: Martin Date: Tue, 14 May 2024 09:23:20 +0300 Subject: [PATCH 1/7] fix: system / user setting for display name not respected in Org Unit tree (DHIS2-15000) (#3051) --- package.json | 2 +- src/components/DimensionsPanel/Dialogs/DialogManager.js | 8 ++++++-- yarn.lock | 8 ++++---- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 9e31287a20..09d1e03f72 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "typescript": "^4.8.4" }, "dependencies": { - "@dhis2/analytics": "^26.6.8", + "@dhis2/analytics": "^26.6.9", "@dhis2/app-runtime": "^3.7.0", "@dhis2/app-runtime-adapter-d2": "^1.1.0", "@dhis2/app-service-datastore": "^1.0.0-beta.3", diff --git a/src/components/DimensionsPanel/Dialogs/DialogManager.js b/src/components/DimensionsPanel/Dialogs/DialogManager.js index e3844578d0..a7f59bbea4 100644 --- a/src/components/DimensionsPanel/Dialogs/DialogManager.js +++ b/src/components/DimensionsPanel/Dialogs/DialogManager.js @@ -234,7 +234,7 @@ export class DialogManager extends Component { // The OU content is persisted as mounted in order // to cache the org unit tree data - renderPersistedContent = (dimensionProps) => { + renderPersistedContent = (dimensionProps, displayNameProperty) => { const { ouIds, metadata, parentGraphMap, dialogId } = this.props if (this.state.ouMounted) { @@ -253,6 +253,7 @@ export class DialogManager extends Component { roots={this.props.rootOrgUnits.map( (rootOrgUnit) => rootOrgUnit.id )} + displayNameProp={displayNameProperty} {...dimensionProps} /> @@ -455,7 +456,10 @@ export class DialogManager extends Component { return ( - {this.renderPersistedContent(dimensionProps)} + {this.renderPersistedContent( + dimensionProps, + displayNameProperty + )} {dialogId && dynamicContent()} ) diff --git a/yarn.lock b/yarn.lock index 4b576076b7..6e2a7e522a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2028,10 +2028,10 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2/analytics@^26.6.8": - version "26.6.8" - resolved "https://registry.yarnpkg.com/@dhis2/analytics/-/analytics-26.6.8.tgz#859f8086198664a9ea14cea149ce7bdf449a19a2" - integrity sha512-9l8001MAx+q8K1Qklui8pfF0rrv3MSLA1dEtM93rBODSsQwRE9pbt5wN44i9+n7nAgc7iItBehAQ1hMJ8j7yHg== +"@dhis2/analytics@^26.6.9": + version "26.6.9" + resolved "https://registry.yarnpkg.com/@dhis2/analytics/-/analytics-26.6.9.tgz#932847c4bee3dd720d5d0b872c6b11eeae8b260c" + integrity sha512-AcU5FKH1Rmi8GdgqdJ1aOPqTKhztLafhzKNvGBdb5rSNR8/KS2djyTxxPhL0fdusu+1Rc04RFSkOLajq3ChVrQ== dependencies: "@dhis2/d2-ui-rich-text" "^7.4.1" "@dhis2/multi-calendar-dates" "1.0.0" From 9b23fbd48a69ba52da6fcc219ea161eabd6540dd Mon Sep 17 00:00:00 2001 From: Martin Date: Tue, 14 May 2024 15:09:25 +0300 Subject: [PATCH 2/7] fix: dimension chip design updates (DHIS2-16272) (#2934) --- cypress/elements/layout.js | 21 +- cypress/integration/dimensions/data.cy.js | 16 +- cypress/integration/visTypes/scatter.cy.js | 76 +- i18n/en.pot | 13 +- package.json | 4 +- .../styles/DndDimensionList.module.css | 3 + .../IconButton/styles/IconButton.module.css | 10 +- src/components/Layout/Chip.js | 116 +-- .../styles/DefaultAxis.module.css | 2 +- src/components/Layout/styles/Chip.module.css | 119 +++ src/components/Layout/styles/Chip.style.js | 67 -- src/components/Layout/styles/style.js | 16 +- yarn.lock | 871 +++++++++--------- 13 files changed, 699 insertions(+), 635 deletions(-) create mode 100644 src/components/Layout/styles/Chip.module.css delete mode 100644 src/components/Layout/styles/Chip.style.js diff --git a/cypress/elements/layout.js b/cypress/elements/layout.js index 4fc765f5b5..aabf938e52 100644 --- a/cypress/elements/layout.js +++ b/cypress/elements/layout.js @@ -1,3 +1,5 @@ +import { EXTENDED_TIMEOUT } from '../support/utils.js' + const yoyCategorySelectEl = 'yoy-layout-rows-select' const youCategorySelectOptionEl = 'yoy-layout-rows-select-option' const chipEl = 'layout-chip' @@ -6,7 +8,7 @@ const chipMenuRemoveOptionEl = 'layout-chip-menu-dimension-menu-item-remove' const chipMenuActionOptionEl = 'layout-chip-menu-dimension-menu-item-action' const chipMenuSubMenuOptionEl = 'layout-chip-menu-dimension-menu-item-DIMENSIONID-menu' -const chipSelectedBackgroundColor = 'rgb(178, 223, 219)' +const chipSelectedBackgroundColor = 'rgb(224, 242, 241)' const getAxisEl = (axisId) => `${axisId}-axis` const getDimensionChipEl = (dimensionId) => `${chipEl}-${dimensionId}` @@ -54,13 +56,14 @@ export const expectDimensionToHaveItemAmount = ( itemAmount ? cy .getBySel(getDimensionChipEl(dimensionId)) - .contains(`${itemAmount} selected`) - .should('have.length', 1) - .and('be.visible') + .parent() + .findBySelLike('chip-suffix') + .contains(itemAmount, EXTENDED_TIMEOUT) : cy .getBySel(getDimensionChipEl(dimensionId)) - .contains(`selected`) - .should('have.length', 0) + .parent() + .findBySelLike('chip-suffix') + .should('not.exist') } else { throw new Error('dimensionId not provided') } @@ -69,9 +72,9 @@ export const expectDimensionToHaveItemAmount = ( export const expectDimensionToHaveAllItemsSelected = (dimensionId) => cy .getBySel(getDimensionChipEl(dimensionId)) - .contains(`: All`) - .should('have.length', 1) - .and('be.visible') + .parent() + .findBySelLike('chip-suffix') + .contains('all', EXTENDED_TIMEOUT) export const expectDimensionOnAxisToHaveLockIcon = (dimensionId, axisId) => cy diff --git a/cypress/integration/dimensions/data.cy.js b/cypress/integration/dimensions/data.cy.js index 8b8244eba8..9f70996f7c 100644 --- a/cypress/integration/dimensions/data.cy.js +++ b/cypress/integration/dimensions/data.cy.js @@ -301,10 +301,10 @@ describe('Data dimension', () => { if (testDataType.endpoint.hasMultiplePages) { // more items are fetched when scrolling down cy.intercept('GET', testDataType.endpoint.requestUrl).as( - 'request' + 'requestSecondPage' ) scrollSourceToBottom() - cy.wait('@request').then(({ request, response }) => { + cy.wait('@requestSecondPage').then(({ request, response }) => { expect(request.url).to.contain('page=2') expect(response.statusCode).to.eq(200) expect( @@ -384,13 +384,15 @@ describe('Data dimension', () => { `default sub group: ${testDataType.defaultSubGroup.name}` ) cy.intercept('GET', testDataType.endpoint.requestUrl).as( - 'request' + 'requestDefaultSubGroup' ) switchSubGroupTo(testDataType.defaultSubGroup.name) - cy.wait('@request').then(({ request, response }) => { - expect(request.url).to.contain('page=1') - expect(response.statusCode).to.eq(200) - }) + cy.wait('@requestDefaultSubGroup').then( + ({ request, response }) => { + expect(request.url).to.contain('page=1') + expect(response.statusCode).to.eq(200) + } + ) expectSourceToNotBeLoading() expectSubGroupSelectToBe(testDataType.defaultSubGroup.name) expectSelectableDataItemsAmountToBe( diff --git a/cypress/integration/visTypes/scatter.cy.js b/cypress/integration/visTypes/scatter.cy.js index d35eba4e66..98e00518bc 100644 --- a/cypress/integration/visTypes/scatter.cy.js +++ b/cypress/integration/visTypes/scatter.cy.js @@ -68,23 +68,26 @@ const TEST_INDICATOR_NAMES = TEST_INDICATORS.slice(1, 4).map( ) const TEST_VIS_NAME = `TEST SCATTER ${new Date().toLocaleString()}` -describe('using a Scatter chart', () => { - it('navigates to a new Scatter chart', () => { +describe('Scatter chart', () => { + it('works correctly (create, save, load, swap etc)', () => { + cy.log('navigates to a new Scatter chart') goToStartPage() changeVisType(visTypeDisplayNames[VIS_TYPE_SCATTER]) - }) - it("shows an error message when vertical and horizontal isn't selected", () => { + + cy.log( + "shows an error message when vertical and horizontal isn't selected" + ) clickMenuBarUpdateButton() expectErrorToContainTitle('Vertical is empty') - }) - it('adds a vertical item and shows an error message', () => { + + cy.log('adds a vertical item and shows an error message') openDimension(DIMENSION_ID_DATA) selectIndicators([TEST_INDICATOR_NAMES[0]]) clickDimensionModalUpdateButton() expectErrorToContainTitle('Horizontal is empty') expectVerticalToContainDimensionLabel(TEST_INDICATOR_NAMES[0]) - }) - it('adds a horizontal item and displays a chart', () => { + + cy.log('adds a horizontal item and displays a chart') openDimension(DIMENSION_ID_DATA) switchDataTab('Horizontal') selectIndicators([TEST_INDICATOR_NAMES[1]]) @@ -94,14 +97,14 @@ describe('using a Scatter chart', () => { //expectStoreCurrentColumnsToHaveLength(1) // FIXME: Store is always in default state expectVerticalToContainDimensionLabel(TEST_INDICATOR_NAMES[0]) expectHorizontalToContainDimensionLabel(TEST_INDICATOR_NAMES[1]) - }) - it('selects org unit level Facility', () => { + + cy.log('selects org unit level Facility') const TEST_ORG_UNIT_LEVEL = 'Facility' openDimension(DIMENSION_ID_ORGUNIT) expectOrgUnitDimensionModalToBeVisible() deselectUserOrgUnit('User organisation unit') expectOrgUnitDimensionToNotBeLoading() - // FIXME this selection causes a analytics request that takes too long on test instances + // FIXME: this selection causes a analytics request that takes too long on test instances //selectOrgUnitTreeItem('Sierra Leone') selectOrgUnitTreeItem('Bo') selectOrgUnitTreeItem('Bombali') @@ -109,25 +112,26 @@ describe('using a Scatter chart', () => { expectOrgUnitDimensionModalToBeVisible() clickDimensionModalUpdateButton() expectVisualizationToBeVisible(VIS_TYPE_SCATTER) - }) - it('Data is locked to Vertical', () => { + + cy.log('Data is locked to Vertical') expectDimensionOnAxisToHaveLockIcon(DIMENSION_ID_DATA, 'Vertical') - }) - it('Data is locked to Horizontal', () => { + + cy.log('Data is locked to Horizontal') expectDimensionOnAxisToHaveLockIcon(DIMENSION_ID_DATA, 'Horizontal') - }) - it('Org units is locked to Points', () => { + + cy.log('Org units is locked to Points') expectDimensionOnAxisToHaveLockIcon(DIMENSION_ID_ORGUNIT, AXIS_ID_ROWS) - }) - it('swaps vertical with horizontal', () => { + + cy.log('swaps vertical with horizontal') openContextMenu('VERTICAL') clickContextMenuSwap('VERTICAL', 'HORIZONTAL') clickMenuBarUpdateButton() expectVisualizationToBeVisible(VIS_TYPE_SCATTER) + expectAppToNotBeLoading() expectVerticalToContainDimensionLabel(TEST_INDICATOR_NAMES[1]) expectHorizontalToContainDimensionLabel(TEST_INDICATOR_NAMES[0]) - }) - it('adds a second item to horizontal and displays warning messages', () => { + + cy.log('adds a second item to horizontal and displays warning messages') openDimensionOnAxis(DIMENSION_ID_DATA, 'Horizontal') selectIndicators([TEST_INDICATOR_NAMES[2]]) expectDataDimensionModalWarningToContain( @@ -139,23 +143,27 @@ describe('using a Scatter chart', () => { ).id ) clickDimensionModalUpdateButton() + expectVisualizationToBeVisible(VIS_TYPE_SCATTER) + expectAppToNotBeLoading() expectDimensionOnAxisToHaveWarningIcon(DIMENSION_ID_DATA, 'Horizontal') - }) - it('saves and only displays 1 horizontal item', () => { + + cy.log('saves and only displays 1 horizontal item') saveNewAO(TEST_VIS_NAME) expectVisualizationToBeVisible(VIS_TYPE_SCATTER) + expectAppToNotBeLoading() expectVerticalToContainDimensionLabel(TEST_INDICATOR_NAMES[1]) expectHorizontalToContainDimensionLabel(TEST_INDICATOR_NAMES[0]) - }) - it('swaps vertical with horizontal', () => { + + cy.log('swaps vertical with horizontal') openContextMenu('HORIZONTAL') clickContextMenuSwap('HORIZONTAL', 'VERTICAL') clickMenuBarUpdateButton() expectVisualizationToBeVisible(VIS_TYPE_SCATTER) + expectAppToNotBeLoading() expectVerticalToContainDimensionLabel(TEST_INDICATOR_NAMES[0]) expectHorizontalToContainDimensionLabel(TEST_INDICATOR_NAMES[1]) - }) - it('Options -> Axes -> sets min/max range', () => { + + cy.log('Options -> Axes -> sets min/max range') const TEST_AXES = [ { axis: 'RANGE_0', label: 'Vertical (y) axis', min: 50, max: 150 }, { @@ -177,24 +185,24 @@ describe('using a Scatter chart', () => { expectWindowConfigYAxisToHaveRangeMaxValue(TEST_AXES[0].max) expectWindowConfigXAxisToHaveRangeMinValue(TEST_AXES[1].min) expectWindowConfigXAxisToHaveRangeMaxValue(TEST_AXES[1].max) - }) - it('Options -> Outliers -> enables outliers', () => { + + cy.log('Options -> Outliers -> enables outliers') openOptionsModal(OPTIONS_TAB_OUTLIERS) checkOutliersCheckbox() // TODO: Set more outlier options clickOptionsModalUpdateButton() expectVisualizationToBeVisible(VIS_TYPE_SCATTER) // TODO: Intercept the data returned to simplify / standardise it, then check that the $config has the correct data - }) - it('saves and displays items in the correct places', () => { + + cy.log('saves and displays items in the correct places') saveExistingAO() expectAppToNotBeLoading() expectVisualizationToBeVisible(VIS_TYPE_SCATTER) expectVerticalToContainDimensionLabel(TEST_INDICATOR_NAMES[0]) expectHorizontalToContainDimensionLabel(TEST_INDICATOR_NAMES[1]) - }) - // TODO: Open outlier options again and check that everything was saved correctly - it('deletes saved scatter AO', () => { + + // TODO: Open outlier options again and check that everything was saved correctly + cy.log('deletes saved scatter AO') deleteAO() expectStartScreenToBeVisible() expectRouteToBeEmpty() diff --git a/i18n/en.pot b/i18n/en.pot index 437ec605a4..5057c80c3f 100644 --- a/i18n/en.pot +++ b/i18n/en.pot @@ -160,14 +160,8 @@ msgstr "Download" msgid "Hide" msgstr "Hide" -msgid "All" -msgstr "All" - -msgid "{{total}} of {{axisMaxNumberOfItems}} selected" -msgstr "{{total}} of {{axisMaxNumberOfItems}} selected" - -msgid "{{total}} selected" -msgstr "{{total}} selected" +msgid "all" +msgstr "all" msgid "{{dimensionName}} is locked to {{axisName}} for {{visTypeName}}" msgstr "{{dimensionName}} is locked to {{axisName}} for {{visTypeName}}" @@ -469,6 +463,9 @@ msgstr "After last" msgid "Before first and after last" msgstr "Before first and after last" +msgid "All" +msgstr "All" + msgid "Hide empty rows" msgstr "Hide empty rows" diff --git a/package.json b/package.json index 09d1e03f72..925b97c42e 100644 --- a/package.json +++ b/package.json @@ -40,12 +40,12 @@ "typescript": "^4.8.4" }, "dependencies": { - "@dhis2/analytics": "^26.6.9", + "@dhis2/analytics": "^26.6.10", "@dhis2/app-runtime": "^3.7.0", "@dhis2/app-runtime-adapter-d2": "^1.1.0", "@dhis2/app-service-datastore": "^1.0.0-beta.3", "@dhis2/d2-i18n": "^1.1.0", - "@dhis2/ui": "^9.2.0", + "@dhis2/ui": "^9.4.4", "@krakenjs/post-robot": "^11.0.0", "d2": "^31.9.1", "decode-uri-component": "^0.2.2", diff --git a/src/components/DimensionsPanel/styles/DndDimensionList.module.css b/src/components/DimensionsPanel/styles/DndDimensionList.module.css index 5a107a22bd..37f4d0b203 100644 --- a/src/components/DimensionsPanel/styles/DndDimensionList.module.css +++ b/src/components/DimensionsPanel/styles/DndDimensionList.module.css @@ -19,6 +19,9 @@ .list { margin: 0; padding: 0; + display: flex; + flex-direction: column; + gap: 4px; } .header { diff --git a/src/components/IconButton/styles/IconButton.module.css b/src/components/IconButton/styles/IconButton.module.css index dcb3430030..413b863096 100644 --- a/src/components/IconButton/styles/IconButton.module.css +++ b/src/components/IconButton/styles/IconButton.module.css @@ -9,10 +9,10 @@ cursor: pointer; padding: 0; vertical-align: middle; - border-radius: 2px; - width: 22px; - height: 22px; - margin: '0px 0px 0px 2px'; + border-radius: 0; + width: 20px; + height: 20px; + margin: 0px 0px 0px 2px; color: var(--colors-grey700); } @@ -21,6 +21,6 @@ } .iconButton:hover { - background-color: rgba(0, 0, 0, 0.12); + background-color: rgba(0, 0, 0, 0.09); color: var(--colors-grey900); } diff --git a/src/components/Layout/Chip.js b/src/components/Layout/Chip.js index 411dca6523..2954de4473 100644 --- a/src/components/Layout/Chip.js +++ b/src/components/Layout/Chip.js @@ -18,7 +18,9 @@ import { ALL_DYNAMIC_DIMENSION_ITEMS, } from '@dhis2/analytics' import i18n from '@dhis2/d2-i18n' -import { Tooltip, IconLock16, IconWarningFilled16 } from '@dhis2/ui' +import { Tooltip, IconWarning16 } from '@dhis2/ui' +import { colors } from '@dhis2/ui-constants' +import cx from 'classnames' import PropTypes from 'prop-types' import React from 'react' import { connect } from 'react-redux' @@ -27,7 +29,7 @@ import { setDataTransfer } from '../../modules/dnd.js' import { sGetDimensions } from '../../reducers/dimensions.js' import { sGetMetadata } from '../../reducers/metadata.js' import { sGetUiType } from '../../reducers/ui.js' -import { styles } from './styles/Chip.style.js' +import styles from './styles/Chip.module.css' import { default as TooltipContent } from './TooltipContent.js' const Chip = ({ @@ -48,19 +50,31 @@ const Chip = ({ const LockIconWrapper = (
- + + +
) const WarningIconWrapper = (
- +
) @@ -90,6 +104,18 @@ const Chip = ({ const isSplitAxis = type === VIS_TYPE_SCATTER && dimensionId === DIMENSION_ID_DATA + let chipLabelSuffix + + if (items.length > 0) { + if (items.includes(ALL_DYNAMIC_DIMENSION_ITEMS)) { + chipLabelSuffix = i18n.t('all') + } else if (isSplitAxis) { + chipLabelSuffix = i18n.t(metadata[items[0]]?.name || null) + } else { + chipLabelSuffix = items.length + } + } + const handleClick = () => { if (!getPredefinedDimensionProp(dimensionId, DIMENSION_PROP_NO_ITEMS)) { onClick() @@ -100,48 +126,12 @@ const Chip = ({ setDataTransfer(event, axisId) } - const getWrapperStyles = () => ({ - ...styles.chipWrapper, - ...(!getPredefinedDimensionProp(dimensionId, DIMENSION_PROP_NO_ITEMS) && - !items.length - ? styles.chipEmpty - : {}), - }) - - const renderChipLabelSuffix = () => { - const numberOfItems = items.length - let itemsLabel - if (items.includes(ALL_DYNAMIC_DIMENSION_ITEMS)) { - itemsLabel = i18n.t('All') - } else if ( - !!getMaxNumberOfItems() && - numberOfItems > getMaxNumberOfItems() - ) { - itemsLabel = i18n.t( - `{{total}} of {{axisMaxNumberOfItems}} selected`, - { - total: numberOfItems, - axisMaxNumberOfItems: getMaxNumberOfItems(), - } - ) - } else { - if (isSplitAxis) { - itemsLabel = i18n.t(metadata[items[0]]?.name || '') - } else { - itemsLabel = i18n.t('{{total}} selected', { - total: numberOfItems, - }) - } - } - return items.length > 0 ? `: ${itemsLabel}` : '' - } - const renderChipIcon = () => { const Icon = getPredefinedDimensionProp(dimensionId, 'icon') return Icon ? ( - + ) : ( - + ) } @@ -174,21 +164,32 @@ const Chip = ({ const renderChipContent = () => ( <> -
{renderChipIcon()}
- +
{renderChipIcon()}
+ {dimensionName} - - {renderChipLabelSuffix()} - + {chipLabelSuffix && ( + + {chipLabelSuffix} + + )} {hasWarning && WarningIconWrapper} - {isLocked && LockIconWrapper} ) return (
{renderChipContent()}
)} - {contextMenu &&
{contextMenu}
} + {contextMenu && ( +
{contextMenu}
+ )} + {isLocked && ( + + {LockIconWrapper} + + )} ) } diff --git a/src/components/Layout/DefaultLayout/styles/DefaultAxis.module.css b/src/components/Layout/DefaultLayout/styles/DefaultAxis.module.css index 8b517bd680..2f3ba96073 100644 --- a/src/components/Layout/DefaultLayout/styles/DefaultAxis.module.css +++ b/src/components/Layout/DefaultLayout/styles/DefaultAxis.module.css @@ -4,7 +4,7 @@ align-items: flex-start; align-content: flex-start; flex-wrap: wrap; - min-height: 32px; + min-height: 26px; } .content > div { diff --git a/src/components/Layout/styles/Chip.module.css b/src/components/Layout/styles/Chip.module.css new file mode 100644 index 0000000000..822d94dc10 --- /dev/null +++ b/src/components/Layout/styles/Chip.module.css @@ -0,0 +1,119 @@ +.chip { + max-width: 400px; + display: flex; + align-items: center; + background-color: var(--colors-teal100); + padding: 0; + font-size: 13px; + line-height: 15px; + font-weight: 400; + color: var(--colors-teal900); + cursor: pointer; + user-select: none; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + margin: 2px; + border-radius: 2px; + border: 1px solid var(--colors-teal200); +} + +.chip:hover { + background: #cdeae8; + border: 1px solid #93c4bf; + box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); +} + +.chipEmpty { + background-color: var(--colors-grey100); + border-color: var(--colors-grey400); + color: var(--colors-grey900); +} + +.chipEmpty:hover { + background-color: var(--colors-grey200); + border-color: var(--colors-grey400); +} + +.fixedDimensionIcon { + padding: 0 4px; +} + +.leftIconWrapper { + padding: 0 4px; + display: flex; + align-items: center; +} + +.warningIconWrapper { + padding-left: 2px; + height: 20px; + display: flex; + align-items: center; +} + +.lockIconWrapper { + background: #cbe7e5; + height: 20px; + padding: 0 2px 0 3px; + margin: 0 0 0 2px; + display: flex; + align-items: center; + justify-content: center; +} + +.lockIconWrapper svg path { + fill: var(--colors-teal900); +} + +.chipEmpty .lockIconWrapper { + background: var(--colors-grey300); +} + +.chipEmpty .lockIconWrapper svg path { + fill: var(--colors-grey800); +} + +.label { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.chipLeft { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + display: flex; + border-top-right-radius: 0px; + border-bottom-right-radius: 0px; + align-items: center; + min-height: 20px; + margin: 0 2px 0 0; +} + +.chipRight { + padding-left: 0px; + border-top-left-radius: 0px; + border-bottom-left-radius: 0px; + display: flex; + height: 20px; +} + +.chipRight + .lockIconWrapper { + margin: 0; +} + +.suffix { + font-family: monospace; + font-size: 11px; + background: #c5e4e3; + border-radius: 2px; + margin-left: 4px; + min-width: 12px; + text-align: center; + padding: 2px 2px 1px 2px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} diff --git a/src/components/Layout/styles/Chip.style.js b/src/components/Layout/styles/Chip.style.js deleted file mode 100644 index 39342a44ca..0000000000 --- a/src/components/Layout/styles/Chip.style.js +++ /dev/null @@ -1,67 +0,0 @@ -import { colors } from '@dhis2/ui' -import * as layoutStyle from './style.js' - -const baseChip = { - padding: layoutStyle.CHIP_PADDING, - fontSize: layoutStyle.CHIP_FONT_SIZE, - fontWeight: layoutStyle.CHIP_FONT_WEIGHT, - color: layoutStyle.CHIP_COLOR, - cursor: 'pointer', - minHeight: 24, - userSelect: 'none', -} - -export const styles = { - chipWrapper: { - display: 'flex', - margin: layoutStyle.CHIP_MARGIN, - backgroundColor: layoutStyle.CHIP_BACKGROUND_COLOR, - borderRadius: layoutStyle.CHIP_BORDER_RADIUS, - alignItems: 'center', - maxWidth: '400px', - }, - chip: { - ...baseChip, - whiteSpace: 'nowrap', - overflow: 'hidden', - textOverflow: 'ellipsis', - }, - chipEmpty: { - backgroundColor: colors.grey300, - }, - fixedDimensionIcon: { - paddingRight: '6px', - }, - leftIconWrapper: { - paddingRight: '6px', - display: 'flex', - alignItems: 'center', - }, - rightIconWrapper: { - paddingLeft: '6px', - marginTop: '2px', - }, - label: { - whiteSpace: 'nowrap', - overflow: 'hidden', - textOverflow: 'ellipsis', - }, -} - -styles.chipLeft = { - ...baseChip, - whiteSpace: 'nowrap', - overflow: 'hidden', - textOverflow: 'ellipsis', - display: 'flex', - borderTopRightRadius: '0px', - borderBottomRightRadius: '0px', - alignItems: 'center', -} - -styles.chipRight = { - ...baseChip, - paddingLeft: '0px', - borderTopLeftRadius: '0px', - borderBottomLeftRadius: '0px', -} diff --git a/src/components/Layout/styles/style.js b/src/components/Layout/styles/style.js index d91df2a50b..ff4a2f6257 100644 --- a/src/components/Layout/styles/style.js +++ b/src/components/Layout/styles/style.js @@ -1,22 +1,12 @@ -import { colors, theme } from '@dhis2/ui' +import { colors } from '@dhis2/ui' // Layout -export const LAYOUT_HEIGHT = '78px' +export const LAYOUT_HEIGHT = '70px' // Axis -export const AXIS_PADDING = '4px 4px 2px 6px' +export const AXIS_PADDING = '4px 4px 4px 6px' export const AXIS_LABEL_PADDING = '2px 0px 0px 4px' export const AXIS_BORDER_COLOR = colors.grey300 export const AXIS_BORDER_STYLE = 'solid' export const AXIS_BORDER_WIDTH = '0px 0px 1px 1px' export const AXIS_BACKGROUND_COLOR = colors.white - -// Chip -export const CHIP_COLOR = colors.grey900 -export const CHIP_FONT_WEIGHT = 400 -export const CHIP_FONT_SIZE = '14px' -export const CHIP_BACKGROUND_COLOR = theme.secondary200 -export const CHIP_HEIGHT = '14px' -export const CHIP_MARGIN = '4px' -export const CHIP_PADDING = '1px 2px 1px 6px' -export const CHIP_BORDER_RADIUS = '2px' diff --git a/yarn.lock b/yarn.lock index 6e2a7e522a..1988f07db2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1448,590 +1448,591 @@ 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/alert/-/alert-9.4.4.tgz#4045882cb5bc5e6763897e4eca3d779e54f64d71" + integrity sha512-v3TjIQEDqUtAqcUsH62/TYqQLehzqRPOwqdw6LDa3Yldqf9iMJ6v66DBESO2QsYd33ZWPj0+ZWw8BDtAP/SubQ== dependencies: - "@dhis2-ui/portal" "9.2.0" + "@dhis2-ui/portal" "9.4.4" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.4.4" + "@dhis2/ui-icons" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/box/-/box-9.4.4.tgz#646cdb3b30708ba2332d249eae47fa03a1e6d309" + integrity sha512-xTkjLlcKm7Z6gESys2QLkgYWZSKyvKXcU4GHDJMZ+HXjiSxLfGSmbKDJfBkGuOsCGYlgCMdM1jMBUQjT7zp/Fg== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/button/-/button-9.4.4.tgz#5fa1765e6b7a26fdeca875bf3114a5039deab8f0" + integrity sha512-U0JNzTcQkOlSm0GJsSPGRLDXMA5czS33SkaaL0S7kkNLcsTceZX/4cO6ldTuAJWPJLiuNsR8e/Rklos9xospLg== dependencies: - "@dhis2-ui/layer" "9.2.0" - "@dhis2-ui/loader" "9.2.0" - "@dhis2-ui/popper" "9.2.0" + "@dhis2-ui/layer" "9.4.4" + "@dhis2-ui/loader" "9.4.4" + "@dhis2-ui/popper" "9.4.4" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.4.4" + "@dhis2/ui-icons" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/calendar/-/calendar-9.4.4.tgz#3b5147a42ffbefaab77824f5c95e755508d2291f" + integrity sha512-wBzWhJdnCyGJuNYFhLiLh2cwiSm2iSa/JNud449+atCK6O/XygBel96eaLUh63GWgKmM5RE9PIoHWm1xYfn5XA== + dependencies: + "@dhis2-ui/button" "9.4.4" + "@dhis2-ui/card" "9.4.4" + "@dhis2-ui/input" "9.4.4" + "@dhis2-ui/layer" "9.4.4" + "@dhis2-ui/popper" "9.4.4" + "@dhis2/multi-calendar-dates" "^1.1.1" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.4.4" + "@dhis2/ui-icons" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/card/-/card-9.4.4.tgz#8bb0ca90f5eef4421beef9506b2c244041f1c1ef" + integrity sha512-ZquXjtHeY+/zt5ojXmB8ZeqD5pnEriw7/8LHGi2TYGZovCbw0rN76pTIgL+9X7V2WcVbSQinxUpdlcXex8heGQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/center/-/center-9.4.4.tgz#c62c32bbe83aa20278845ec22cfcb5cc3a394d26" + integrity sha512-I+d1ByUcemZDYCPauiXY/EOjUDjoLPXTzpzAF3AboZNvGjo2+1AgHKNkAMp5WgBBQRaGoAiNLRhhgGEX6f9DhQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/checkbox/-/checkbox-9.4.4.tgz#61b75fa7d1773e1d9a11b95126c44a465ac59eaa" + integrity sha512-i26bv/lBynQ1AeOhMmRJ4rQJr5HOFXe4VNCaQhq/+1q+g2dewyf0gIygJnjYMzcX48eyfQsBDU5JBYhuSz6kWw== dependencies: - "@dhis2-ui/field" "9.2.0" - "@dhis2-ui/required" "9.2.0" + "@dhis2-ui/field" "9.4.4" + "@dhis2-ui/required" "9.4.4" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/chip/-/chip-9.4.4.tgz#f1b151e0bc091aca4e288ed7f4889a38bf1f74c6" + integrity sha512-+2FLdWcDGNOQmrCU0sKve+JRD1hwCd53sQ0D/OCI4zFCrJwJ5C7Pet5Y3Ys0hv8lAu4hCdwklSyKuwlIjYntjg== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/cover/-/cover-9.4.4.tgz#89ed8113be5ba541d7250e32a828c5e2046369e7" + integrity sha512-JAywkI+Hebyn4EkiSf3li2E2+iDUvBwcgHH4AW5QkkRaM8YGqgluNnsn+AOL1Igs6lXh3jzGrsiN3xZSoGO6ww== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/css/-/css-9.4.4.tgz#c46af291af86eec008f60205c7c46e100ef8188a" + integrity sha512-VBmYcTKet0YDEguptZ0+Yc789HmNiaMDTu3iUnJKuvurhYSaFGD/oK7d2Sr6bIo0KTQ+/XpcOL68+wRLktGgwQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/divider/-/divider-9.4.4.tgz#d904282c0bc8552180923e36189b421dfb4d3853" + integrity sha512-YjERDzyV4aznyKpREUDhh5QgykRAhNE6xr7rO5LiCNeFx2MpZY1Xq6AFoPZSuy966iAEU0KmOK+8Ow0NGg/9GA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/field/-/field-9.4.4.tgz#80753ca3bc2c419dc1066e5e6d662b18ddaec032" + integrity sha512-07O3Npth26D0+kOHYdsfoF3fZm8SXfmtonKyOIOpRAmIX1TJZRNO9LuI5S9+z5vh0++x3Y+c9hIFmac0Vvm9aQ== dependencies: - "@dhis2-ui/box" "9.2.0" - "@dhis2-ui/help" "9.2.0" - "@dhis2-ui/label" "9.2.0" + "@dhis2-ui/box" "9.4.4" + "@dhis2-ui/help" "9.4.4" + "@dhis2-ui/label" "9.4.4" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/file-input/-/file-input-9.4.4.tgz#02878069f9f4db33a14dba9e18642d8e85f6d2e9" + integrity sha512-GS89r/FxYfd9GlXUqscUXjzh1f190mo9qwJN6GrrzeK+gSGwtFDtGHDCyES7qQ8MdtvgDlC8Dgdjl5EU7YP6tQ== 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.4.4" + "@dhis2-ui/field" "9.4.4" + "@dhis2-ui/label" "9.4.4" + "@dhis2-ui/loader" "9.4.4" + "@dhis2-ui/status-icon" "9.4.4" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.4.4" + "@dhis2/ui-icons" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/header-bar/-/header-bar-9.4.4.tgz#7c26955ea968bb25cac6766e549402ccde34d8c3" + integrity sha512-IA6yFbFFimWMYyHSD9idCLCamnWtAgRuoD3FG/8kKvOurTEwUcb0qYaecnQAstwWwZ8C+ZIKiTB0796WXj/SDg== + dependencies: + "@dhis2-ui/box" "9.4.4" + "@dhis2-ui/button" "9.4.4" + "@dhis2-ui/card" "9.4.4" + "@dhis2-ui/center" "9.4.4" + "@dhis2-ui/divider" "9.4.4" + "@dhis2-ui/input" "9.4.4" + "@dhis2-ui/layer" "9.4.4" + "@dhis2-ui/loader" "9.4.4" + "@dhis2-ui/logo" "9.4.4" + "@dhis2-ui/menu" "9.4.4" + "@dhis2-ui/modal" "9.4.4" + "@dhis2-ui/user-avatar" "9.4.4" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.4.4" + "@dhis2/ui-icons" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/help/-/help-9.4.4.tgz#6b3df94b6b8c0f7269dde3c90602dbb6dac889fa" + integrity sha512-V/ZNC/QwlN+444rb2wBAzEkqeLToafHQOEWCUUvcYEgC2Vxdh2bXEqBl6w4Bv2Xmh563k+AdxvXZtVL4zLA/og== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/input/-/input-9.4.4.tgz#621eab6b8d535fcb111094f660415ff4136cb156" + integrity sha512-F6GEeRUQXFxjhoY3+CuaZWrkS2D54vTuP429uCL77/Wn2HdqYWnDMz3ILubIR+T1C5otmAH5cqW3IinRGlOq+Q== 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.4.4" + "@dhis2-ui/field" "9.4.4" + "@dhis2-ui/input" "9.4.4" + "@dhis2-ui/loader" "9.4.4" + "@dhis2-ui/status-icon" "9.4.4" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.4.4" + "@dhis2/ui-icons" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/intersection-detector/-/intersection-detector-9.4.4.tgz#1ad2a7b47a84aeb674274272d362302f4b23ba56" + integrity sha512-+DhDX7/Y0uKZnTy4r4qTt6kQtdlYxJVnlx42CwAO4KWAJirOISDyepzKUii9ZFMLCcxQgQ2uddiCwdjPqLqiAQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/label/-/label-9.4.4.tgz#107e21bcc7a8d29e8355d54d5e475c96364fc78d" + integrity sha512-uoYpozTDR1kxM+g8tWvvCV9Z4KT9+t4t4IKULICJLwEW8JfwXQxZnVmCvCc3Zv2fHZlmUN9XXGVt00VG1ldWsg== dependencies: - "@dhis2-ui/required" "9.2.0" + "@dhis2-ui/required" "9.4.4" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/layer/-/layer-9.4.4.tgz#980a9e397468b9418937202a0afaae868bed4b4b" + integrity sha512-PLqcBHfUB1EV24trWbkDv2m1viU3ijVYZQa13htxa5r800ei+ze6K4x15hnvI9qtCbNAvBv/N1Axxui4Xwjkdg== dependencies: - "@dhis2-ui/portal" "9.2.0" + "@dhis2-ui/portal" "9.4.4" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/legend/-/legend-9.4.4.tgz#5476cfa7937ca9bbac3b9e64e991b17d51e9ced1" + integrity sha512-uqxHCFYMfP8yxV0lOyOgKbOUYRP3TNoO+fHyo78y2OGhjrsanHolZMPokf+POgZAFmBvQDtibOoyp2J7jq1Qog== dependencies: - "@dhis2-ui/required" "9.2.0" + "@dhis2-ui/required" "9.4.4" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/loader/-/loader-9.4.4.tgz#2bd268cba9310db47c0a9dda04cff760380fc6b0" + integrity sha512-2B9PZ/iQIuCWbPIQFihrmX+1YHW5vZlOv+rsJT1SipSIj5sLWy4KYtjvm89lSu+Or60jnrNAJ8Iix5bnlb+dWw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/logo/-/logo-9.4.4.tgz#a0050a56aabafe33ef4c232a116980d289fbcc34" + integrity sha512-Nps/U5rCBaO8X8/A0gbd8SuGRdd1ymCRnXv5FuUvciQ8CcoQnjE8aVi0TMY1h/A8XDrLWZXyAnm3WbmA0GnOvw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/menu/-/menu-9.4.4.tgz#a25fe07705d8e14e97390d8b59e7330d7fdc335e" + integrity sha512-TSIPM9vNswIo59yxPEZN30KTWbxQNXC2BLu6Fkd0FpgLO8ZxnAtG7qbgay8Y3c+9FIAt+Be/N41d+5VlSG8WtA== 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.4.4" + "@dhis2-ui/divider" "9.4.4" + "@dhis2-ui/layer" "9.4.4" + "@dhis2-ui/popper" "9.4.4" + "@dhis2-ui/portal" "9.4.4" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.4.4" + "@dhis2/ui-icons" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/modal/-/modal-9.4.4.tgz#3edbc8e3bb942aba2c8377aadd79514fe2fa7930" + integrity sha512-Ny9y9hxinbrnSQxoDCFh902BNozGjHdp1YG5w+sxyg4gfUjP2gh+OyoLILvw8LqvrjoukI7anfmikNoAEwjanw== 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.4.4" + "@dhis2-ui/center" "9.4.4" + "@dhis2-ui/layer" "9.4.4" + "@dhis2-ui/portal" "9.4.4" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.4.4" + "@dhis2/ui-icons" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/node/-/node-9.4.4.tgz#3c13b7424a172564a0d52893b4d1ac8a7d9ceac3" + integrity sha512-8kyvwqFc/cx1U50AhDymUnKR3OvWy6/EBnt8IOGrdFGrIRTk6P+JiRFUMfQ2aRubhtLMsDTpQ3LOMeHeP7/87w== dependencies: - "@dhis2-ui/loader" "9.2.0" + "@dhis2-ui/loader" "9.4.4" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/notice-box/-/notice-box-9.4.4.tgz#c333a0ffa0cddc20431071ec56f0521fa3dbcb5d" + integrity sha512-u7zcrq4EqCwCOszyl1FlfpeQj+Tn/UJ/J6mZ3v44+7gCTNMrEfT7Hf/drmTVLmFNquqDUP/ppr1uxwtQOResyA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.4.4" + "@dhis2/ui-icons" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/organisation-unit-tree/-/organisation-unit-tree-9.4.4.tgz#3e952d2fe0fd045d6bc2a6a92872ef8e83a6e7f2" + integrity sha512-qUDsQIHPE2QQVizfs+bomsrlPKVrPi8L2MtKVkma2P1/GlDnZaOoLYB70zzLLbqH90dUbwMlGF3ZXnbIhi+A6g== dependencies: - "@dhis2-ui/checkbox" "9.2.0" - "@dhis2-ui/loader" "9.2.0" - "@dhis2-ui/node" "9.2.0" + "@dhis2-ui/checkbox" "9.4.4" + "@dhis2-ui/loader" "9.4.4" + "@dhis2-ui/node" "9.4.4" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/pagination/-/pagination-9.4.4.tgz#35d4ab7e35a0a37d998fe51394ac1bda26b7052f" + integrity sha512-WnruI7k/wcXzZF84fWRcFhfA131p23NwkeUUbt45cm/36+SnDoYAl6Nbh1elEQpYu2jqMWVk2w82u37MT/usxg== dependencies: - "@dhis2-ui/button" "9.2.0" - "@dhis2-ui/select" "9.2.0" + "@dhis2-ui/button" "9.4.4" + "@dhis2-ui/select" "9.4.4" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.4.4" + "@dhis2/ui-icons" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/popover/-/popover-9.4.4.tgz#547dbffefbfdd838bf401a5a44e1e524ab028440" + integrity sha512-UosiUkknLNl3h+IuqNiEcLuGSskP8SV55BOUHEHIyE5HacRVjzyeKyK6ak/g0L8FyscYdpPvAAUqFRq7pnByzg== dependencies: - "@dhis2-ui/layer" "9.2.0" - "@dhis2-ui/popper" "9.2.0" + "@dhis2-ui/layer" "9.4.4" + "@dhis2-ui/popper" "9.4.4" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/popper/-/popper-9.4.4.tgz#84d3e2155d93bc54cebdf1430dc7b2f207d681ae" + integrity sha512-avSwb0Ty25mE7BkoV/dWvwxZFLEWOOkEXSa2z5F/YNfec8gvCODiVGcHU6CEBfDXk7y4dqv7QtLEfaeoa8cpnA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" "@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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/portal/-/portal-9.4.4.tgz#8de12cd6c0e975b47cd19caae8acc1500034f206" + integrity sha512-HSXWzWFlSy9layr9zmxQcITiOIsse9y7bK0kPRlqjqEtSSfF57iGcFSAOTwX4HBW0xE/lQ8n4UfHoGOU76LF0Q== 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/radio/-/radio-9.4.4.tgz#5654713ad8646aac31909ff6009b189975b3eaf5" + integrity sha512-JAqnlbX9arPASFNHJw8leeDs0FGKWvIOQDZeye9ApG8Xnl2vdu4Oa/8GfDPSPYHIGdvhx5VVH0D+PzAFLBeIUA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/required/-/required-9.4.4.tgz#fc167134d435a7ee4a86966887f282653e87f9f3" + integrity sha512-jwLwL+6y7Wp0IWiXyj28xmBpOsZOdyJlBUpdfmur7akVK46jMMTlugz36SpygU7f9dzExl2hJgDu01X8q/kdng== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/segmented-control/-/segmented-control-9.4.4.tgz#8f4b756b913f5162f7523c4044be80a068584649" + integrity sha512-A8p8VxRea3VV4G9yWc+zTfQarW/ZDIfkEWzKzsmyQEuqIWlTVPf7Hcva9I7Lx1CiDpScJdJbK5vGlglj4PKj5g== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/select/-/select-9.4.4.tgz#39e566dc565a07c783ca9c3be0ad15de2484eec4" + integrity sha512-qIJunqROPGcP9Ys/yx4D/jUS20DE8ORxT3W1l+r/RnL/z8gPlyBAYeYB914nxualIhoUYXr7UjhgyJZfQbIafQ== + dependencies: + "@dhis2-ui/box" "9.4.4" + "@dhis2-ui/button" "9.4.4" + "@dhis2-ui/card" "9.4.4" + "@dhis2-ui/checkbox" "9.4.4" + "@dhis2-ui/chip" "9.4.4" + "@dhis2-ui/field" "9.4.4" + "@dhis2-ui/input" "9.4.4" + "@dhis2-ui/layer" "9.4.4" + "@dhis2-ui/loader" "9.4.4" + "@dhis2-ui/popper" "9.4.4" + "@dhis2-ui/status-icon" "9.4.4" + "@dhis2-ui/tooltip" "9.4.4" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.4.4" + "@dhis2/ui-icons" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/selector-bar/-/selector-bar-9.4.4.tgz#79513f90bdc1f4a2c6270cb8f2083dd14d4b11d9" + integrity sha512-9Z9dyrFU6XAEu0KLIa4TDQR/E8KJvjqMeaxWWpSrjnyM2Lmlfn9gH+qZ27TJSUMKqY/mdFJpSSr45aIQGgg2Rw== + dependencies: + "@dhis2-ui/button" "9.4.4" + "@dhis2-ui/card" "9.4.4" + "@dhis2-ui/layer" "9.4.4" + "@dhis2-ui/popper" "9.4.4" + "@dhis2/ui-constants" "9.4.4" + "@dhis2/ui-icons" "9.4.4" "@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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/sharing-dialog/-/sharing-dialog-9.4.4.tgz#dcb9aa7436cd037e59f02231eeece7fbf6d82414" + integrity sha512-pYhMR+HXu4gvpFTfwWIe1XtW7+m4DxVzWPHGmHKi7ZbVh42csi466mlpJ29qid8KBo/KmsNASt+R6Vp0I3Dq5w== + dependencies: + "@dhis2-ui/box" "9.4.4" + "@dhis2-ui/button" "9.4.4" + "@dhis2-ui/card" "9.4.4" + "@dhis2-ui/divider" "9.4.4" + "@dhis2-ui/input" "9.4.4" + "@dhis2-ui/layer" "9.4.4" + "@dhis2-ui/menu" "9.4.4" + "@dhis2-ui/modal" "9.4.4" + "@dhis2-ui/notice-box" "9.4.4" + "@dhis2-ui/popper" "9.4.4" + "@dhis2-ui/select" "9.4.4" + "@dhis2-ui/tab" "9.4.4" + "@dhis2-ui/tooltip" "9.4.4" + "@dhis2-ui/user-avatar" "9.4.4" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.4.4" + "@dhis2/ui-icons" "9.4.4" "@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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/status-icon/-/status-icon-9.4.4.tgz#ab44a615aee73a6f4edae6c2eeee017e9970b6c9" + integrity sha512-Hh/UueN9wrbpfrxegT7/712YlhZPlQ+fYDvPOty1GbAALDdPiMUg0F0YqonNXCeZUAuzX+mzxcxOoHk446GVaA== dependencies: - "@dhis2-ui/loader" "9.2.0" + "@dhis2-ui/loader" "9.4.4" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.4.4" + "@dhis2/ui-icons" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/switch/-/switch-9.4.4.tgz#181df81c21f369752bacabd62088b9531248ae13" + integrity sha512-MH3h3+EPtR9ZSq+fsFQSJkCxuKyzLZolcGCBPX2u+8sVmV+7AZ2P6yJ6YiAUGI9udMwZokLjPZSgp3QWwKEQQg== dependencies: - "@dhis2-ui/field" "9.2.0" - "@dhis2-ui/required" "9.2.0" + "@dhis2-ui/field" "9.4.4" + "@dhis2-ui/required" "9.4.4" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tab/-/tab-9.4.4.tgz#66ef74adf7e01c8a2f68327e0616795da1b7b064" + integrity sha512-2DqkH+IhiV4uFdvMg9aVJoao2D+U3s4kP+EsUlPPvRxvf2c7P6vjcitvACVgmDBnc2EWGw0jh02QhvOgQezhLA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.4.4" + "@dhis2/ui-icons" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/table/-/table-9.4.4.tgz#b93c9ea878914df7dd3147f067c00ea946602fc4" + integrity sha512-i3f8go7JE/+7OyjWXN/ePlRduOC4Pc+9w4P+Sq3VOTFgYnMEPyVpZmz9/dgNtAGTto1Lh54ISU/wxwC+TXfRxw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.4.4" + "@dhis2/ui-icons" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tag/-/tag-9.4.4.tgz#493a2369f384cb12f1104b18e34b54d516bce740" + integrity sha512-YMKndGKVXdQo5plKYy5RsN8AD233BbGZ9uzd/zmf7u2xs9C/DcK0JL+5UCZwVX++4swXTXbuSblE3Kl26a4U9Q== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/text-area/-/text-area-9.4.4.tgz#f5d6ee3fab9c2f71b129ea6ce4b3f7d7b36e3bf5" + integrity sha512-vphcZ42dqr2kXpAbJZPyJpr911B/3dAHM/PmUIIF07CzNs3daiEiIELm38KQ1cs0Na5oqXgrdw3HZyhAo02vsw== 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.4.4" + "@dhis2-ui/field" "9.4.4" + "@dhis2-ui/loader" "9.4.4" + "@dhis2-ui/status-icon" "9.4.4" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" - "@dhis2/ui-icons" "9.2.0" + "@dhis2/ui-constants" "9.4.4" + "@dhis2/ui-icons" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tooltip/-/tooltip-9.4.4.tgz#268c4d0a395669522d45dd0a5720c18589887929" + integrity sha512-qCHsGMuzL9YV3OnWw0j+tK0p5e+tzUd5g7CXbHPsrhtsctgKO5u/VWYnFaJlFh2cbctqvFPpS+buLMe1jndpjw== dependencies: - "@dhis2-ui/popper" "9.2.0" - "@dhis2-ui/portal" "9.2.0" + "@dhis2-ui/popper" "9.4.4" + "@dhis2-ui/portal" "9.4.4" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/transfer/-/transfer-9.4.4.tgz#d3f45a4a41eb35363c3f6ac57f8d499dd0ac198b" + integrity sha512-JMw2VWbybqOx5+4Sh1C9cPeiWN8xS6+ZNUivEwxOpKv/TBpeRBowOV7q0QEfzE1fGC9qyJqVxevBQhcp+2aUaA== 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.4.4" + "@dhis2-ui/field" "9.4.4" + "@dhis2-ui/input" "9.4.4" + "@dhis2-ui/intersection-detector" "9.4.4" + "@dhis2-ui/loader" "9.4.4" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2-ui/user-avatar/-/user-avatar-9.4.4.tgz#cb97b581e288c9d6a99d5f98a66fa3c63a6b27be" + integrity sha512-GILxEnNh0KwTKEMf5RCIvwV/BOv9GUKstuyLt9o5lX7YhT8QfMC0Uwn+IMOHtV6RoaewLbn0zyZF30NlZGohwg== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.2.0" + "@dhis2/ui-constants" "9.4.4" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2/analytics@^26.6.9": - version "26.6.9" - resolved "https://registry.yarnpkg.com/@dhis2/analytics/-/analytics-26.6.9.tgz#932847c4bee3dd720d5d0b872c6b11eeae8b260c" - integrity sha512-AcU5FKH1Rmi8GdgqdJ1aOPqTKhztLafhzKNvGBdb5rSNR8/KS2djyTxxPhL0fdusu+1Rc04RFSkOLajq3ChVrQ== +"@dhis2/analytics@^26.6.10": + version "26.6.10" + resolved "https://registry.yarnpkg.com/@dhis2/analytics/-/analytics-26.6.10.tgz#669fab3007b609a3c1a692a8261c759198e7035f" + integrity sha512-RHBvMdAuoDpSwxcoBTSsTWlhTUy8nJbKCANbFnB3NcBjsh+XMhwFJSkCGnCKElkhWbrm9h8kZVobqv62p6W2cA== dependencies: "@dhis2/d2-ui-rich-text" "^7.4.1" "@dhis2/multi-calendar-dates" "1.0.0" @@ -2262,10 +2263,10 @@ "@js-temporal/polyfill" "^0.4.2" classnames "^2.3.2" -"@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== +"@dhis2/multi-calendar-dates@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@dhis2/multi-calendar-dates/-/multi-calendar-dates-1.1.1.tgz#fb76a77114ce0b757db7dd9f588d1a47809732da" + integrity sha512-kaisVuRGfdqY/Up6sWqgc81K67ymPVoRYgYRcT29z61ol2WhiTXTSTuRX/gDO1VKjmskeB5/badRrdLMf4BBUA== dependencies: "@js-temporal/polyfill" "^0.4.2" classnames "^2.3.2" @@ -2286,91 +2287,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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2/ui-constants/-/ui-constants-9.4.4.tgz#4fe728f96fe92752b4a033b03f2fdb1313eafeb3" + integrity sha512-O+jHTT/S3jgcHP7gxcZenpMyOfBktvoB9MVGzoVaAW5rRbYe0cCSe1Zh70h25VMVhwxBTCTIR7G3uvDWcdb5Ww== 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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2/ui-forms/-/ui-forms-9.4.4.tgz#9104665d2a57429df89caac720c59ad509328515" + integrity sha512-4QU4NXlExBqHWfoWnKIpDHB3wahDnJYO1CdZ64UcVurjdGKQdiAbX/WbrFYSpWuk8gO/DqQ8AC7JkTtpXXF9Lg== + dependencies: + "@dhis2-ui/button" "9.4.4" + "@dhis2-ui/checkbox" "9.4.4" + "@dhis2-ui/field" "9.4.4" + "@dhis2-ui/file-input" "9.4.4" + "@dhis2-ui/input" "9.4.4" + "@dhis2-ui/radio" "9.4.4" + "@dhis2-ui/select" "9.4.4" + "@dhis2-ui/switch" "9.4.4" + "@dhis2-ui/text-area" "9.4.4" "@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.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2/ui-icons/-/ui-icons-9.4.4.tgz#c4f488496389687ebd47266e93e0aacf27054ef3" + integrity sha512-AGt+aYqpqb7f/2IH5quZ1bJoSz/WB3p7I1CdZHUPk/XP6rQpO2W7mqoLxiZYOHCiNlTU+sjfXcYauHaWZSTdjw== + +"@dhis2/ui@^8.12.3", "@dhis2/ui@^9.2.0", "@dhis2/ui@^9.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@dhis2/ui/-/ui-9.4.4.tgz#ae7961d42753d72e209f7d11b160b3179e6a6452" + integrity sha512-w1NMZy/S5tNbXGt7F5J5OM1P8qgq1Bo1ifV34YV3Cs+8rJYkHHsFOokUN+wSTdXUWqIKxOGrRoQkmgmjQ19WlA== + dependencies: + "@dhis2-ui/alert" "9.4.4" + "@dhis2-ui/box" "9.4.4" + "@dhis2-ui/button" "9.4.4" + "@dhis2-ui/calendar" "9.4.4" + "@dhis2-ui/card" "9.4.4" + "@dhis2-ui/center" "9.4.4" + "@dhis2-ui/checkbox" "9.4.4" + "@dhis2-ui/chip" "9.4.4" + "@dhis2-ui/cover" "9.4.4" + "@dhis2-ui/css" "9.4.4" + "@dhis2-ui/divider" "9.4.4" + "@dhis2-ui/field" "9.4.4" + "@dhis2-ui/file-input" "9.4.4" + "@dhis2-ui/header-bar" "9.4.4" + "@dhis2-ui/help" "9.4.4" + "@dhis2-ui/input" "9.4.4" + "@dhis2-ui/intersection-detector" "9.4.4" + "@dhis2-ui/label" "9.4.4" + "@dhis2-ui/layer" "9.4.4" + "@dhis2-ui/legend" "9.4.4" + "@dhis2-ui/loader" "9.4.4" + "@dhis2-ui/logo" "9.4.4" + "@dhis2-ui/menu" "9.4.4" + "@dhis2-ui/modal" "9.4.4" + "@dhis2-ui/node" "9.4.4" + "@dhis2-ui/notice-box" "9.4.4" + "@dhis2-ui/organisation-unit-tree" "9.4.4" + "@dhis2-ui/pagination" "9.4.4" + "@dhis2-ui/popover" "9.4.4" + "@dhis2-ui/popper" "9.4.4" + "@dhis2-ui/portal" "9.4.4" + "@dhis2-ui/radio" "9.4.4" + "@dhis2-ui/required" "9.4.4" + "@dhis2-ui/segmented-control" "9.4.4" + "@dhis2-ui/select" "9.4.4" + "@dhis2-ui/selector-bar" "9.4.4" + "@dhis2-ui/sharing-dialog" "9.4.4" + "@dhis2-ui/switch" "9.4.4" + "@dhis2-ui/tab" "9.4.4" + "@dhis2-ui/table" "9.4.4" + "@dhis2-ui/tag" "9.4.4" + "@dhis2-ui/text-area" "9.4.4" + "@dhis2-ui/tooltip" "9.4.4" + "@dhis2-ui/transfer" "9.4.4" + "@dhis2-ui/user-avatar" "9.4.4" + "@dhis2/ui-constants" "9.4.4" + "@dhis2/ui-forms" "9.4.4" + "@dhis2/ui-icons" "9.4.4" prop-types "^15.7.2" "@dnd-kit/accessibility@^3.0.0": From 8dd390b37d67093f1c18992514f933fc80b9ab8c Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Sun, 19 May 2024 03:41:04 +0200 Subject: [PATCH 3/7] fix(translations): sync translations from transifex (dev) Automatically merged. --- i18n/ar.po | 19 ++++++++----------- i18n/cs.po | 19 ++++++++----------- i18n/es.po | 17 +++++++---------- i18n/fr.po | 26 ++++++++++++-------------- i18n/id.po | 13 +++++-------- i18n/lo.po | 23 ++++++++++------------- i18n/nb.po | 17 +++++++---------- i18n/nl.po | 17 +++++++---------- 8 files changed, 64 insertions(+), 87 deletions(-) diff --git a/i18n/ar.po b/i18n/ar.po index 404402427d..7770073d21 100644 --- a/i18n/ar.po +++ b/i18n/ar.po @@ -1,16 +1,16 @@ # # Translators: # KRG HIS , 2020 -# Philip Larsen Donnelly, 2020 # Hamza Assada <7amza.it@gmail.com>, 2022 # Viktor Varland , 2022 +# Philip Larsen Donnelly, 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" "POT-Creation-Date: 2024-03-01T08:28:43.727Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" -"Last-Translator: Viktor Varland , 2022\n" +"Last-Translator: Philip Larsen Donnelly, 2024\n" "Language-Team: Arabic (https://app.transifex.com/hisp-uio/teams/100509/ar/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -163,14 +163,8 @@ msgstr "تحميل" msgid "Hide" msgstr "إخفاء" -msgid "All" -msgstr "الجميع" - -msgid "{{total}} of {{axisMaxNumberOfItems}} selected" -msgstr "{{total}} من {{axisMaxNumberOfItems}} تم تحديدها" - -msgid "{{total}} selected" -msgstr "{{total}} تم تحديدها" +msgid "all" +msgstr "" msgid "{{dimensionName}} is locked to {{axisName}} for {{visTypeName}}" msgstr "{{dimensionName}} مقفل على {{axisName}} لـ {{visTypeName}}" @@ -470,6 +464,9 @@ msgstr "بعد الأخير" msgid "Before first and after last" msgstr "قبل الأول وبعد الأخير" +msgid "All" +msgstr "الجميع" + msgid "Hide empty rows" msgstr "إخفاء الصفوف الفارغة" @@ -729,7 +726,7 @@ msgstr "" "منفصلة." msgid "Category option combination" -msgstr "" +msgstr "مزيج خيارات الفئة" msgid "Absolute deviation" msgstr "" diff --git a/i18n/cs.po b/i18n/cs.po index 15ab75cc84..15fc459492 100644 --- a/i18n/cs.po +++ b/i18n/cs.po @@ -164,14 +164,8 @@ msgstr "Stáhnout" msgid "Hide" msgstr "Skrýt" -msgid "All" -msgstr "Vše" - -msgid "{{total}} of {{axisMaxNumberOfItems}} selected" -msgstr "Je vybráno {{total}} z {{axisMaxNumberOfItems}}" - -msgid "{{total}} selected" -msgstr "Vybráno: {{total}}" +msgid "all" +msgstr "vše" msgid "{{dimensionName}} is locked to {{axisName}} for {{visTypeName}}" msgstr "{{dimensionName}} je pro {{visTypeName}} uzamčen na {{axisName}}" @@ -472,6 +466,9 @@ msgstr "Po poslední" msgid "Before first and after last" msgstr "Před první a po poslední" +msgid "All" +msgstr "Vše" + msgid "Hide empty rows" msgstr "Skrýt prázdné řádky" @@ -761,7 +758,7 @@ msgid "" msgstr "" msgid "Median" -msgstr "" +msgstr "Medián" msgid "" "The middle value in a dataset when the values are arranged in ascending or " @@ -780,7 +777,7 @@ msgid "" msgstr "" msgid "Z-score" -msgstr "" +msgstr "Z-score" msgid "" "A measure of how many standard deviations a data point is from the mean of a" @@ -789,7 +786,7 @@ msgid "" msgstr "" msgid "Mean" -msgstr "" +msgstr "Střední" msgid "Average of the value over time." msgstr "" diff --git a/i18n/es.po b/i18n/es.po index f919e03f37..b991d4974d 100644 --- a/i18n/es.po +++ b/i18n/es.po @@ -6,16 +6,16 @@ # Prabhjot Singh, 2021 # Viktor Varland , 2021 # Carlos Tejo Alonso, 2022 -# Enzo Nicolas Rossi , 2024 # Philip Larsen Donnelly, 2024 # Janeth Cruz, 2024 +# Enzo Nicolas Rossi , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" "POT-Creation-Date: 2024-03-01T08:28:43.727Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" -"Last-Translator: Janeth Cruz, 2024\n" +"Last-Translator: Enzo Nicolas Rossi , 2024\n" "Language-Team: Spanish (https://app.transifex.com/hisp-uio/teams/100509/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -176,14 +176,8 @@ msgstr "Descargar" msgid "Hide" msgstr "Ocultar" -msgid "All" -msgstr "Todos" - -msgid "{{total}} of {{axisMaxNumberOfItems}} selected" -msgstr "{{total}} de {{axisMaxNumberOfItems}} seleccionados" - -msgid "{{total}} selected" -msgstr "{{total}} seleccionado" +msgid "all" +msgstr "todo" msgid "{{dimensionName}} is locked to {{axisName}} for {{visTypeName}}" msgstr "{{dimensionName}} está bloqueado en {{axisName}} para {{visTypeName}}" @@ -487,6 +481,9 @@ msgstr "Después del último" msgid "Before first and after last" msgstr "Antes del primero y después del último" +msgid "All" +msgstr "Todos" + msgid "Hide empty rows" msgstr "Ocultar filas vacías" diff --git a/i18n/fr.po b/i18n/fr.po index fcf5fbe4d0..527e1b7294 100644 --- a/i18n/fr.po +++ b/i18n/fr.po @@ -2,21 +2,22 @@ # Translators: # Bram Piot , 2019 # Matthieu Pinard , 2019 -# Karoline Tufte Lien , 2020 # Djibril Dione , 2020 # Gabriela Rodriguez , 2020 # Viktor Varland , 2021 -# Yao Selom SAKA (HISP WCA) , 2022 # Edem Kossi , 2023 # Philip Larsen Donnelly, 2024 # Yayra Gomado , 2024 +# Karoline Tufte Lien , 2024 +# Yury Rogachev , 2024 +# Yao Selom SAKA (HISP WCA) , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" "POT-Creation-Date: 2024-03-01T08:28:43.727Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" -"Last-Translator: Yayra Gomado , 2024\n" +"Last-Translator: Yao Selom SAKA (HISP WCA) , 2024\n" "Language-Team: French (https://app.transifex.com/hisp-uio/teams/100509/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -173,15 +174,9 @@ msgstr "Télécharger" msgid "Hide" msgstr "Masquer" -msgid "All" +msgid "all" msgstr "Tout" -msgid "{{total}} of {{axisMaxNumberOfItems}} selected" -msgstr "{{total}} de {{axisMaxNumberOfItems}} choisis" - -msgid "{{total}} selected" -msgstr "{{total}} choisis" - msgid "{{dimensionName}} is locked to {{axisName}} for {{visTypeName}}" msgstr "" "{{dimensionName}} est verrouillé sur {{axisName}} pour {{visTypeName}}" @@ -486,6 +481,9 @@ msgstr "Après dernier" msgid "Before first and after last" msgstr "Avant premier et après dernier " +msgid "All" +msgstr "Tout" + msgid "Hide empty rows" msgstr "Masquer lignes vides" @@ -760,7 +758,7 @@ msgstr "" "données utilisent des couches de carte distinctes." msgid "Category option combination" -msgstr "" +msgstr "Combinaison d'option de catégorie" msgid "Absolute deviation" msgstr "" @@ -778,7 +776,7 @@ msgid "" msgstr "" msgid "Median" -msgstr "" +msgstr "Médian" msgid "" "The middle value in a dataset when the values are arranged in ascending or " @@ -797,7 +795,7 @@ msgid "" msgstr "" msgid "Z-score" -msgstr "" +msgstr "Z-score" msgid "" "A measure of how many standard deviations a data point is from the mean of a" @@ -806,7 +804,7 @@ msgid "" msgstr "" msgid "Mean" -msgstr "" +msgstr "Moyenne" msgid "Average of the value over time." msgstr "" diff --git a/i18n/id.po b/i18n/id.po index fa8721527d..12b49292a7 100644 --- a/i18n/id.po +++ b/i18n/id.po @@ -169,14 +169,8 @@ msgstr "Unduh" msgid "Hide" msgstr "Sembunyikan" -msgid "All" -msgstr "Semua" - -msgid "{{total}} of {{axisMaxNumberOfItems}} selected" -msgstr "{{total}} dari {{axisMaxNumberOfItems}} terpilih" - -msgid "{{total}} selected" -msgstr "{{total}} terpilih" +msgid "all" +msgstr "" msgid "{{dimensionName}} is locked to {{axisName}} for {{visTypeName}}" msgstr "{{dimensionName}} dikunci sebagai {{axisName}} untuk {{visTypeName}}" @@ -479,6 +473,9 @@ msgstr "Setelah terakhir" msgid "Before first and after last" msgstr "Sebelum yang pertama dan sesudah yang terakhir" +msgid "All" +msgstr "Semua" + msgid "Hide empty rows" msgstr "Sembunyikan baris kosong" diff --git a/i18n/lo.po b/i18n/lo.po index c62069921a..d17419ce1a 100644 --- a/i18n/lo.po +++ b/i18n/lo.po @@ -21,7 +21,7 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" msgid "All items" -msgstr "" +msgstr "ລາຍການທັງໝົດ" msgid "Rename successful" msgstr "" @@ -79,16 +79,16 @@ msgid "Horizontal" msgstr "" msgid "Main dimensions" -msgstr "" +msgstr "ຕົວຕອງທີ່ສຳຄັນ" msgid "Other dimensions" msgstr "" msgid "Your dimensions" -msgstr "" +msgstr "ຂະໜາດຂອງທ່ານ" msgid "Filter dimensions" -msgstr "" +msgstr "ຂະໜາດຕົວຕອງ" msgid "Data value set" msgstr "ການຕັ້ງຄ່າຂໍ້ມູນ" @@ -162,13 +162,7 @@ msgstr "ດາວໂຫຼດ" msgid "Hide" msgstr "ເຊື່ອງ" -msgid "All" -msgstr "ທັງໝົດ" - -msgid "{{total}} of {{axisMaxNumberOfItems}} selected" -msgstr "" - -msgid "{{total}} selected" +msgid "all" msgstr "" msgid "{{dimensionName}} is locked to {{axisName}} for {{visTypeName}}" @@ -465,6 +459,9 @@ msgstr "ຫຼັງຈາກສຸດທ້າຍ" msgid "Before first and after last" msgstr "ກ່ອນໜ້າທໍາອິດ ແລະ ຫຼັງຈາກສຸດທ້າຍ" +msgid "All" +msgstr "ທັງໝົດ" + msgid "Hide empty rows" msgstr "ເຊື່ອງແຖວທີ່ເປົ່າຫວ່າງ" @@ -628,7 +625,7 @@ msgid "Visualization type" msgstr "" msgid "Axis {{axisId}}" -msgstr "" +msgstr "ແກນ {{axisId}}" msgid "Series is empty" msgstr "" @@ -1024,7 +1021,7 @@ msgid "Last 5 years" msgstr "5 ປີຍ້ອນຫຼັງ" msgid "User organisation unit" -msgstr "" +msgstr "ຫນ່ວຍງານອົງການຈັດຕັ້ງຂອງຜູ້ໃຊ້" msgid "User sub-units" msgstr "ຫົວໜ່ວຍຍ່ອຍຂອງທ່ານ" diff --git a/i18n/nb.po b/i18n/nb.po index 21b97f3ebf..d829252a13 100644 --- a/i18n/nb.po +++ b/i18n/nb.po @@ -2,15 +2,15 @@ # Translators: # Caroline Hesthagen Holen , 2022 # Jan Henrik Øverland, 2024 -# Karoline Tufte Lien , 2024 # Martin , 2024 +# Karoline Tufte Lien , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" "POT-Creation-Date: 2024-03-01T08:28:43.727Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" -"Last-Translator: Martin , 2024\n" +"Last-Translator: Karoline Tufte Lien , 2024\n" "Language-Team: Norwegian Bokmål (https://app.transifex.com/hisp-uio/teams/100509/nb/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -166,14 +166,8 @@ msgstr "Last ned" msgid "Hide" msgstr "Skjul" -msgid "All" -msgstr "Alt" - -msgid "{{total}} of {{axisMaxNumberOfItems}} selected" -msgstr "{{total}} av {{axisMaxNumberOfItems}} valgt" - -msgid "{{total}} selected" -msgstr "{{total}} valgt" +msgid "all" +msgstr "alle" msgid "{{dimensionName}} is locked to {{axisName}} for {{visTypeName}}" msgstr "{{dimensionName}} er låst til {{axisName}} for {{visTypeName}}" @@ -476,6 +470,9 @@ msgstr "Etter siste" msgid "Before first and after last" msgstr "Før første og etter siste" +msgid "All" +msgstr "Alt" + msgid "Hide empty rows" msgstr "Skjul tomme rader" diff --git a/i18n/nl.po b/i18n/nl.po index ea2778502c..972e4491a7 100644 --- a/i18n/nl.po +++ b/i18n/nl.po @@ -2,17 +2,17 @@ # Translators: # Cherise Beek , 2021 # Yury Rogachev , 2021 -# Charel van den Elsen, 2023 # Enzo Nicolas Rossi , 2023 # Philip Larsen Donnelly, 2024 # Rica Zamora Duchateau, 2024 +# Charel van den Elsen, 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" "POT-Creation-Date: 2024-03-01T08:28:43.727Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" -"Last-Translator: Rica Zamora Duchateau, 2024\n" +"Last-Translator: Charel van den Elsen, 2024\n" "Language-Team: Dutch (https://app.transifex.com/hisp-uio/teams/100509/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -169,14 +169,8 @@ msgstr "Download" msgid "Hide" msgstr "Verbergen" -msgid "All" -msgstr "Alle" - -msgid "{{total}} of {{axisMaxNumberOfItems}} selected" -msgstr "{{total}} van {{axisMaxNumberOfItems}} geselecteerd" - -msgid "{{total}} selected" -msgstr "{{total}} geselecteerd" +msgid "all" +msgstr "alle" msgid "{{dimensionName}} is locked to {{axisName}} for {{visTypeName}}" msgstr "" @@ -475,6 +469,9 @@ msgstr "" msgid "Before first and after last" msgstr "Voor eerste en na laatste" +msgid "All" +msgstr "Alle" + msgid "Hide empty rows" msgstr "Verberg lege rijen" From 2bf0d53a855bd89b682abab60cda0f01b314a2f9 Mon Sep 17 00:00:00 2001 From: Martin Date: Thu, 30 May 2024 17:10:16 +0300 Subject: [PATCH 4/7] fix: non-existing AO blocks new AOs from being created (DHIS2-13167) (#3056) --- src/actions/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/actions/index.js b/src/actions/index.js index 6e525c9d0e..46a7576726 100644 --- a/src/actions/index.js +++ b/src/actions/index.js @@ -109,6 +109,7 @@ export const tDoLoadVisualization = if (errorResponse?.details?.httpStatusCode === 404) { error = new VisualizationNotFoundError() + history.push('/') } else if (errorResponse?.message) { error = errorResponse.message } else { From 3ee3a83e9454d5d36ddd39e8eb59e7cf8dea1a41 Mon Sep 17 00:00:00 2001 From: Martin Date: Tue, 4 Jun 2024 12:55:40 +0300 Subject: [PATCH 5/7] fix: numbers are misaligned in pivot table (DHIS2-16900) (#3072) --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 925b97c42e..994cee2aa3 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "typescript": "^4.8.4" }, "dependencies": { - "@dhis2/analytics": "^26.6.10", + "@dhis2/analytics": "^26.6.14", "@dhis2/app-runtime": "^3.7.0", "@dhis2/app-runtime-adapter-d2": "^1.1.0", "@dhis2/app-service-datastore": "^1.0.0-beta.3", diff --git a/yarn.lock b/yarn.lock index 1988f07db2..c20a5f256c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2029,10 +2029,10 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2/analytics@^26.6.10": - version "26.6.10" - resolved "https://registry.yarnpkg.com/@dhis2/analytics/-/analytics-26.6.10.tgz#669fab3007b609a3c1a692a8261c759198e7035f" - integrity sha512-RHBvMdAuoDpSwxcoBTSsTWlhTUy8nJbKCANbFnB3NcBjsh+XMhwFJSkCGnCKElkhWbrm9h8kZVobqv62p6W2cA== +"@dhis2/analytics@^26.6.14": + version "26.6.14" + resolved "https://registry.yarnpkg.com/@dhis2/analytics/-/analytics-26.6.14.tgz#a16aa03830f3a58b9ce3c881a88b0b3077466754" + integrity sha512-+Pxu7z6uIlwN1GuQVnoyd18jyzoqTRwAYnKrAZGj5oG9EHVpl024uU+frMdpkaMfDi9IUujgBDI7zxKm7Ax+zQ== dependencies: "@dhis2/d2-ui-rich-text" "^7.4.1" "@dhis2/multi-calendar-dates" "1.0.0" From 15dc8d978c8d352159211c368214fe35f311eab7 Mon Sep 17 00:00:00 2001 From: Adel Bensaad Date: Tue, 4 Jun 2024 13:32:22 +0100 Subject: [PATCH 6/7] chore: optimize Cypress recordings with conditional triggers (#3043) Implements DHIS2-17374 Conditional Recording Triggers: Implemented conditional recording triggers via commit messages and GitHub labels to ensure that Cypress tests are only recorded when necessary. Parallel Execution Strategies: Refined parallel execution strategies to improve efficiency and resolve test redundancies in GitHub Actions. Debugging Enhancements: Added detailed debugging outputs to help track the dynamic values of the test environment variables and ensure correct parameter passing in the workflow. Manual Grouping of Tests: In GitHub Actions, without specified test groups, all tests would run in every parallel container, leading to unnecessary repetition. By organizing tests into predefined groups, each group runs only once. This prevents redundancy and expedites the testing process. Why Not Rely on Cypress's Automatic Balancing? While Cypress automatically assigns tests to machines to balance workload (more on Cypress load balancing), GitHub Actions requires explicit distribution of tasks. This manual grouping ensures efficient resource usage and prevents multiple executions of the same tests across different runners. Benefits: This approach allows precise control over test distribution, enhancing predictability and efficiency. It reduces total execution time and operational costs by ensuring each test is run precisely once across the available infrastructure. This method optimises our use of GitHub Actions, ensuring a faster, cost-effective, and efficient testing process. Update Documentation: Updated the documentation to reflect the changes and ensure clarity on the new CI/CD processes. Expected Outcomes: Reduced Cypress Cloud Credit Usage: By optimising the conditions under which tests are recorded and uploaded to Cypress Cloud, we anticipate a significant reduction in credit usage. Increased CI Efficiency: With better management of parallel execution and conditional testing, the CI process should be more efficient, leading to quicker test cycles. --- .github/workflows/dhis2-verify-app.yml | 17 +++++++++++-- README.md | 11 +++++++- cypress/support/generateTestMatrix.js | 35 ++++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 cypress/support/generateTestMatrix.js diff --git a/.github/workflows/dhis2-verify-app.yml b/.github/workflows/dhis2-verify-app.yml index 9c3a8a6475..095425bd91 100644 --- a/.github/workflows/dhis2-verify-app.yml +++ b/.github/workflows/dhis2-verify-app.yml @@ -2,7 +2,7 @@ name: 'dhis2: verify (app)' on: pull_request: - types: ['opened', 'edited', 'reopened', 'synchronize'] + types: ['opened', 'labeled', 'reopened', 'synchronize'] push: branches: - 'master' @@ -21,6 +21,16 @@ env: D2_VERBOSE: true jobs: + setup-matrix: + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.set-matrix.outputs.specs }} + steps: + - uses: actions/checkout@v3 + - name: Generate test matrix + id: set-matrix + run: echo "::set-output name=specs::$(node cypress/support/generateTestMatrix.js)" + build: runs-on: ubuntu-latest steps: @@ -83,8 +93,11 @@ jobs: call-workflow-e2e-prod: if: "!contains(github.event.head_commit.message, '[skip ci]')" - needs: [build, lint, test] + needs: [build, lint, test, setup-matrix] uses: dhis2/workflows/.github/workflows/analytics-e2e-tests-prod.yml@master + with: + should_record: ${{ contains(github.event.head_commit.message, '[e2e record]') || contains(join(github.event.pull_request.labels.*.name), 'e2e record')}} + spec-group: ${{ needs.setup-matrix.outputs.matrix }} secrets: username: ${{ secrets.CYPRESS_DHIS2_USERNAME }} password: ${{ secrets.CYPRESS_DHIS2_PASSWORD }} diff --git a/README.md b/README.md index 5f0b7cc1f7..33e7c2f5a5 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,16 @@ $ yarn coverage #### e2e tests -Cypress is used for e2e browser tests. This automatically runs on CI for PRs, the result can be seen on the [Cypress dashboard](https://dashboard.cypress.io/projects/sojh88/). To run the tests locally, define the following in a local `cypress.env.json` file, e.g.: +Cypress is used for e2e browser tests. This automatically runs on CI for PRs, the result can be seen on the [Cypress Cloud](https://dashboard.cypress.io/projects/sojh88/). + +To record tests in Cypress Cloud, you can use one of the following methods based on your needs: + +- **Commit Message**: Include `[e2e record]` in your commit messages to activate recording. +- **GitHub Labels**: Apply the `e2e record` label to your pull request to trigger recording. + +This setup helps in managing Cypress Cloud credits more efficiently, ensuring recordings are only made when explicitly required. + +To run the tests locally, define the following in a local `cypress.env.json` file, e.g.: ```sh { diff --git a/cypress/support/generateTestMatrix.js b/cypress/support/generateTestMatrix.js new file mode 100644 index 0000000000..e2ece39c9f --- /dev/null +++ b/cypress/support/generateTestMatrix.js @@ -0,0 +1,35 @@ +const fs = require('fs') +const path = require('path') + +const getAllFiles = (dirPath, arrayOfFiles = []) => { + const files = fs.readdirSync(dirPath) + + files.forEach((file) => { + if (fs.statSync(path.join(dirPath, file)).isDirectory()) { + arrayOfFiles = getAllFiles(path.join(dirPath, file), arrayOfFiles) + } else if (path.extname(file) === '.js') { + arrayOfFiles.push(path.join(dirPath, file)) + } + }) + + return arrayOfFiles +} + +const createGroups = (files, numberOfGroups = 5) => { + const groups = [] + for (let i = 0; i < numberOfGroups; i++) { + groups.push([]) + } + + files.forEach((file, index) => { + groups[index % numberOfGroups].push(file) + }) + + return groups.map((group, index) => ({ id: index + 1, tests: group })) +} + +const cypressSpecsPath = './cypress/integration' +const specs = getAllFiles(cypressSpecsPath) +const groupedSpecs = createGroups(specs) + +console.log(JSON.stringify(groupedSpecs)) From 26f833ca210c0fde2cb4cf473fafbbae06fe47f8 Mon Sep 17 00:00:00 2001 From: Jen Jones Arnesen Date: Thu, 6 Jun 2024 10:11:22 +0200 Subject: [PATCH 7/7] chore: do not run release step on dev branch (#3083) --- .github/workflows/dhis2-verify-app.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dhis2-verify-app.yml b/.github/workflows/dhis2-verify-app.yml index 095425bd91..0b6076c18a 100644 --- a/.github/workflows/dhis2-verify-app.yml +++ b/.github/workflows/dhis2-verify-app.yml @@ -112,7 +112,7 @@ jobs: if: | !github.event.push.repository.fork && github.actor != 'dependabot[bot]' && - (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/dev' || startsWith(github.ref, 'refs/tags/')) + (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')) steps: - uses: actions/checkout@v3 with: