From adb6b32f1bffc5020ca34ab5c7568b5a323a8002 Mon Sep 17 00:00:00 2001 From: Tony Valle <79843014+superskip@users.noreply.github.com> Date: Tue, 22 Aug 2023 09:44:08 +0200 Subject: [PATCH 01/49] fix: [DHIS2-15492] transition of tooltip enabled state (#3381) --- .../ConditionalTooltip.component.js | 31 ++++++++ .../components/ConditionalTooltip/index.js | 1 + .../DataEntry/withMainButton.js | 39 +++++----- .../FilterButtonMain.component.js | 47 +++++------- .../components/Notes/Notes.component.js | 33 ++++----- .../QuickActionButton/QuickActionButton.js | 39 ++++------ .../ProgramStageSelector.component.js | 70 ++++++++---------- .../EventDetailsSection.component.js | 35 ++++----- .../Relationships/Relationships.component.js | 71 ++++++++----------- .../Actions/AddNew/AddNew.component.js | 40 +++++------ .../DataEntry/withMainButton.js | 32 ++++----- .../WidgetEventEdit.container.js | 45 +++++------- .../StageDetail/StageDetail.component.js | 61 ++++++++-------- 13 files changed, 247 insertions(+), 297 deletions(-) create mode 100644 src/core_modules/capture-core/components/ConditionalTooltip/ConditionalTooltip.component.js create mode 100644 src/core_modules/capture-core/components/ConditionalTooltip/index.js diff --git a/src/core_modules/capture-core/components/ConditionalTooltip/ConditionalTooltip.component.js b/src/core_modules/capture-core/components/ConditionalTooltip/ConditionalTooltip.component.js new file mode 100644 index 0000000000..e2df643a07 --- /dev/null +++ b/src/core_modules/capture-core/components/ConditionalTooltip/ConditionalTooltip.component.js @@ -0,0 +1,31 @@ +// @flow +import React from 'react'; +import { Tooltip } from '@dhis2/ui'; + +type Props = { + enabled: boolean, + wrapperClassName?: string, + children: any, +}; + +export const ConditionalTooltip = (props: Props) => { + const { enabled, wrapperClassName, children, ...passOnProps } = props; + + return enabled ? + ( + { ({ onMouseOver, onMouseOut, ref }) => ( + { + if (btnRef) { + btnRef.onpointerenter = onMouseOver; + btnRef.onpointerleave = onMouseOut; + ref.current = btnRef; + } + }} + > + {children} + + )} + ) : children; +}; diff --git a/src/core_modules/capture-core/components/ConditionalTooltip/index.js b/src/core_modules/capture-core/components/ConditionalTooltip/index.js new file mode 100644 index 0000000000..dacd281a12 --- /dev/null +++ b/src/core_modules/capture-core/components/ConditionalTooltip/index.js @@ -0,0 +1 @@ +export { ConditionalTooltip } from './ConditionalTooltip.component'; diff --git a/src/core_modules/capture-core/components/DataEntries/SingleEventRegistrationEntry/DataEntryWrapper/DataEntry/withMainButton.js b/src/core_modules/capture-core/components/DataEntries/SingleEventRegistrationEntry/DataEntryWrapper/DataEntry/withMainButton.js index 097d88a8dd..8b18d2f201 100644 --- a/src/core_modules/capture-core/components/DataEntries/SingleEventRegistrationEntry/DataEntryWrapper/DataEntry/withMainButton.js +++ b/src/core_modules/capture-core/components/DataEntries/SingleEventRegistrationEntry/DataEntryWrapper/DataEntry/withMainButton.js @@ -2,7 +2,8 @@ import * as React from 'react'; import { connect } from 'react-redux'; import i18n from '@dhis2/d2-i18n'; -import { Tooltip, Button } from '@dhis2/ui'; +import { Button } from '@dhis2/ui'; +import { ConditionalTooltip } from 'capture-core/components/ConditionalTooltip'; import { newEventSaveTypes } from './newEventSaveTypes'; import { getDataEntryKey } from '../../../../DataEntry/common/getDataEntryKey'; import { type RenderFoundation } from '../../../../../metaData'; @@ -86,29 +87,21 @@ const getMainButton = (InnerComponent: React.ComponentType) => const primary = buttons[0]; const secondaries = buttons.slice(1); return ( - - {({ onMouseOver, onMouseOut, ref }) => ( -
{ - if (divRef && !hasWriteAccess) { - divRef.onmouseover = onMouseOver; - divRef.onmouseout = onMouseOut; - ref.current = divRef; - } - }} + +
+ - - {primary.text} - -
- )} - + {primary.text} + +
+ ); } diff --git a/src/core_modules/capture-core/components/ListView/Filters/FilterButton/FilterButtonMain.component.js b/src/core_modules/capture-core/components/ListView/Filters/FilterButton/FilterButtonMain.component.js index ec4f54e83a..6541747f96 100644 --- a/src/core_modules/capture-core/components/ListView/Filters/FilterButton/FilterButtonMain.component.js +++ b/src/core_modules/capture-core/components/ListView/Filters/FilterButton/FilterButtonMain.component.js @@ -2,7 +2,8 @@ import React, { Component } from 'react'; import { withStyles } from '@material-ui/core/styles'; import Popover from '@material-ui/core/Popover'; -import { IconChevronDown16, IconChevronUp16, Tooltip, Button } from '@dhis2/ui'; +import { IconChevronDown16, IconChevronUp16, Button } from '@dhis2/ui'; +import { ConditionalTooltip } from 'capture-core/components/ConditionalTooltip'; import { ActiveFilterButton } from './ActiveFilterButton.component'; import { FilterSelectorContents } from '../Contents'; import type { UpdateFilter, ClearFilter, RemoveFilter } from '../../types'; @@ -165,34 +166,22 @@ class FilterButtonMainPlain extends Component { renderWithoutAppliedFilter() { const { selectorVisible, classes, title, disabled, tooltipContent } = this.props; - return disabled ? ( - - {({ onMouseOver, onMouseOut, ref }) => ( -
{ - if (divRef && disabled) { - divRef.onmouseover = onMouseOver; - divRef.onmouseout = onMouseOut; - ref.current = divRef; - } - }} - > - -
- )} -
- ) : ( - + return ( + + + ); } diff --git a/src/core_modules/capture-core/components/Notes/Notes.component.js b/src/core_modules/capture-core/components/Notes/Notes.component.js index cf0bf7e8f5..bb1fc61c8d 100644 --- a/src/core_modules/capture-core/components/Notes/Notes.component.js +++ b/src/core_modules/capture-core/components/Notes/Notes.component.js @@ -3,9 +3,10 @@ import * as React from 'react'; import { Editor, Parser } from '@dhis2/d2-ui-rich-text'; import { withStyles } from '@material-ui/core'; -import { colors, spacersNum, Tooltip, Menu, MenuItem, Button } from '@dhis2/ui'; +import { colors, spacersNum, Menu, MenuItem, Button } from '@dhis2/ui'; import i18n from '@dhis2/d2-i18n'; import { withFocusSaver } from 'capture-ui'; +import { ConditionalTooltip } from 'capture-core/components/ConditionalTooltip'; import { TextField } from '../FormFields/New'; import type { Note } from './notes.types'; @@ -181,26 +182,18 @@ class NotesPlain extends React.Component { className={classes.newNoteButtonContainer} data-test="new-comment-button" > - + + ); } diff --git a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentQuickActions/QuickActionButton/QuickActionButton.js b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentQuickActions/QuickActionButton/QuickActionButton.js index 6cf8e002c5..7727a05019 100644 --- a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentQuickActions/QuickActionButton/QuickActionButton.js +++ b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentQuickActions/QuickActionButton/QuickActionButton.js @@ -1,8 +1,9 @@ // @flow import React from 'react'; import i18n from '@dhis2/d2-i18n'; -import { Button, spacers, Tooltip } from '@dhis2/ui'; +import { Button, spacers } from '@dhis2/ui'; import { withStyles } from '@material-ui/core'; +import { ConditionalTooltip } from 'capture-core/components/ConditionalTooltip'; import type { QuickActionButtonTypes } from './QuickActionButton.types'; const styles = { @@ -14,30 +15,20 @@ const styles = { }; const QuickActionButtonPlain = ({ icon, label, onClickAction, dataTest, disable, classes }: QuickActionButtonTypes) => ( - - { ({ onMouseOver, onMouseOut, ref }) => ( -
{ - if (btnRef && disable) { - btnRef.onmouseover = onMouseOver; - btnRef.onmouseout = onMouseOut; - ref.current = btnRef; - } - }} - > - -
)} -
); + + ); export const QuickActionButton = withStyles(styles)(QuickActionButtonPlain); diff --git a/src/core_modules/capture-core/components/Pages/EnrollmentAddEvent/ProgramStageSelector/ProgramStageSelector.component.js b/src/core_modules/capture-core/components/Pages/EnrollmentAddEvent/ProgramStageSelector/ProgramStageSelector.component.js index a0219c8cab..20f5b1b8dd 100644 --- a/src/core_modules/capture-core/components/Pages/EnrollmentAddEvent/ProgramStageSelector/ProgramStageSelector.component.js +++ b/src/core_modules/capture-core/components/Pages/EnrollmentAddEvent/ProgramStageSelector/ProgramStageSelector.component.js @@ -1,7 +1,8 @@ // @flow import React from 'react'; import i18n from '@dhis2/d2-i18n'; -import { Button, Tooltip, spacers, spacersNum } from '@dhis2/ui'; +import { Button, spacers, spacersNum } from '@dhis2/ui'; +import { ConditionalTooltip } from 'capture-core/components/ConditionalTooltip'; import { withStyles } from '@material-ui/core'; import { NonBundledDhis2Icon } from '../../../NonBundledDhis2Icon'; @@ -30,47 +31,36 @@ const ProgramStageSelectorComponentPlain = ({ programStages, onSelectProgramStag
- + {programStage.displayName} + +
); })} diff --git a/src/core_modules/capture-core/components/Pages/ViewEvent/EventDetailsSection/EventDetailsSection.component.js b/src/core_modules/capture-core/components/Pages/ViewEvent/EventDetailsSection/EventDetailsSection.component.js index 0af4ee3050..4416248dcf 100644 --- a/src/core_modules/capture-core/components/Pages/ViewEvent/EventDetailsSection/EventDetailsSection.component.js +++ b/src/core_modules/capture-core/components/Pages/ViewEvent/EventDetailsSection/EventDetailsSection.component.js @@ -3,8 +3,9 @@ import React from 'react'; import { useSelector } from 'react-redux'; import { dataEntryIds, dataEntryKeys } from 'capture-core/constants'; import { withStyles } from '@material-ui/core/'; -import { spacers, IconFileDocument24, Tooltip, Button } from '@dhis2/ui'; +import { spacers, IconFileDocument24, Button } from '@dhis2/ui'; import i18n from '@dhis2/d2-i18n'; +import { ConditionalTooltip } from 'capture-core/components/ConditionalTooltip'; import { ViewEventSection } from '../Section/ViewEventSection.component'; import { ViewEventSectionHeader } from '../Section/ViewEventSectionHeader.component'; import { EditEventDataEntry } from '../../../WidgetEventEdit/EditEventDataEntry/EditEventDataEntry.container'; @@ -96,26 +97,20 @@ const EventDetailsSectionPlain = (props: Props) => {
- + +
} ); diff --git a/src/core_modules/capture-core/components/Relationships/Relationships.component.js b/src/core_modules/capture-core/components/Relationships/Relationships.component.js index 008653c5e9..2d218e8d22 100644 --- a/src/core_modules/capture-core/components/Relationships/Relationships.component.js +++ b/src/core_modules/capture-core/components/Relationships/Relationships.component.js @@ -4,7 +4,8 @@ import * as React from 'react'; import classNames from 'classnames'; import i18n from '@dhis2/d2-i18n'; import { IconButton, withStyles } from '@material-ui/core'; -import { IconArrowRight16, IconCross24, Tooltip, Button } from '@dhis2/ui'; +import { IconArrowRight16, IconCross24, Button } from '@dhis2/ui'; +import { ConditionalTooltip } from 'capture-core/components/ConditionalTooltip'; import type { RelationshipType } from '../../metaData'; import type { Relationship, Entity } from './relationships.types'; @@ -61,6 +62,10 @@ const getStyles = (theme: Theme) => ({ relationshipHighlight: { animation: 'background-fade 2.5s forwards', }, + tooltip: { + display: 'inline-flex', + borderRadius: '100%', + }, }); const fromNames = { @@ -78,6 +83,7 @@ type Props = { arrowIcon: string, relationshipActions: string, relationshipHighlight: string, + tooltip: string, addButtonContainer: string, }, relationships: Array, @@ -132,25 +138,18 @@ class RelationshipsPlain extends React.Component {
- - {({ onMouseOver, onMouseOut, ref }) => ( -
{ - if (divRef && !canDelete) { - divRef.onmouseover = onMouseOver; - divRef.onmouseout = onMouseOut; - ref.current = divRef; - } - }} - > - { onRemoveRelationship(relationship.clientId); }} - disabled={!canDelete} - > - - -
- )} -
+ + { onRemoveRelationship(relationship.clientId); }} + disabled={!canDelete} + > + + +
); @@ -193,27 +192,19 @@ class RelationshipsPlain extends React.Component {
- + +
diff --git a/src/core_modules/capture-core/components/WidgetEnrollment/Actions/AddNew/AddNew.component.js b/src/core_modules/capture-core/components/WidgetEnrollment/Actions/AddNew/AddNew.component.js index e576a3ec0e..e4ec61be1b 100644 --- a/src/core_modules/capture-core/components/WidgetEnrollment/Actions/AddNew/AddNew.component.js +++ b/src/core_modules/capture-core/components/WidgetEnrollment/Actions/AddNew/AddNew.component.js @@ -1,7 +1,8 @@ // @flow -import { IconAdd16, MenuItem, Tooltip } from '@dhis2/ui'; +import { IconAdd16, MenuItem } from '@dhis2/ui'; import React from 'react'; import i18n from '@dhis2/d2-i18n'; +import { ConditionalTooltip } from 'capture-core/components/ConditionalTooltip'; import type { Props } from './addNew.types'; export const AddNew = ({ canAddNew, onlyEnrollOnce, tetName, onAddNew }: Props) => { @@ -9,27 +10,18 @@ export const AddNew = ({ canAddNew, onlyEnrollOnce, tetName, onAddNew }: Props) return null; } - return ( - {({ onMouseOver, onMouseOut, ref }) => ( -
{ - if (divRef && onlyEnrollOnce) { - divRef.onmouseover = onMouseOver; - divRef.onmouseout = onMouseOut; - ref.current = divRef; - } - }} - > - } - label={i18n.t('Add new')} - disabled={onlyEnrollOnce} - /> -
- )} -
); + return ( + + } + label={i18n.t('Add new')} + disabled={onlyEnrollOnce} + /> + ); }; diff --git a/src/core_modules/capture-core/components/WidgetEventEdit/DataEntry/withMainButton.js b/src/core_modules/capture-core/components/WidgetEventEdit/DataEntry/withMainButton.js index 34e93f3184..42491ef4ab 100644 --- a/src/core_modules/capture-core/components/WidgetEventEdit/DataEntry/withMainButton.js +++ b/src/core_modules/capture-core/components/WidgetEventEdit/DataEntry/withMainButton.js @@ -2,7 +2,8 @@ import * as React from 'react'; import { connect } from 'react-redux'; import i18n from '@dhis2/d2-i18n'; -import { Tooltip, Button } from '@dhis2/ui'; +import { Button } from '@dhis2/ui'; +import { ConditionalTooltip } from 'capture-core/components/ConditionalTooltip'; import { type RenderFoundation } from '../../../metaData'; type Props = { @@ -19,23 +20,18 @@ const getMainButton = (InnerComponent: React.ComponentType) => return this.innerInstance; } renderMainButton = (hasWriteAccess: boolean) => ( - - {({ onMouseOver, onMouseOut, ref }) => ( - )} - + + + ) render() { diff --git a/src/core_modules/capture-core/components/WidgetEventEdit/WidgetEventEdit.container.js b/src/core_modules/capture-core/components/WidgetEventEdit/WidgetEventEdit.container.js index 6cba9acf96..4c4196fcfe 100644 --- a/src/core_modules/capture-core/components/WidgetEventEdit/WidgetEventEdit.container.js +++ b/src/core_modules/capture-core/components/WidgetEventEdit/WidgetEventEdit.container.js @@ -2,9 +2,10 @@ import React, { type ComponentType } from 'react'; import { dataEntryIds, dataEntryKeys } from 'capture-core/constants'; import { useDispatch } from 'react-redux'; -import { spacersNum, Button, colors, IconEdit24, IconArrowLeft24, Tooltip } from '@dhis2/ui'; +import { spacersNum, Button, colors, IconEdit24, IconArrowLeft24 } from '@dhis2/ui'; import { withStyles } from '@material-ui/core'; import i18n from '@dhis2/d2-i18n'; +import { ConditionalTooltip } from 'capture-core/components/ConditionalTooltip'; import { useEnrollmentEditEventPageMode, useRulesEngineOrgUnit, useAvailableProgramStages } from 'capture-core/hooks'; import type { Props } from './widgetEventEdit.types'; import { startShowEditEventDataEntry } from './WidgetEventEdit.actions'; @@ -39,6 +40,7 @@ const styles = { borderBottomWidth: 0, }, button: { margin: spacersNum.dp8 }, + tooltip: { display: 'inline-flex' }, }; export const WidgetEventEditPlain = ({ @@ -75,32 +77,23 @@ export const WidgetEventEditPlain = ({ {currentPageMode === dataEntryKeys.VIEW && ( - - {({ onMouseOver, onMouseOut, ref }) => ( -
{ - if (btnRef && !eventAccess?.write) { - btnRef.onmouseover = onMouseOver; - btnRef.onmouseout = onMouseOut; - ref.current = btnRef; - } - }} +
+ + -
- )} - + + {i18n.t('Edit event')} + + +
)} { key={id} onClick={() => !row.pendingApiResponse && onEventClick(row.id)} ref={(tableCell) => { - if (tableCell && row.pendingApiResponse) { - tableCell.onmouseover = onMouseOver; - tableCell.onmouseout = onMouseOut; - ref.current = tableCell; + if (tableCell) { + if (row.pendingApiResponse) { + tableCell.onmouseover = onMouseOver; + tableCell.onmouseout = onMouseOut; + ref.current = tableCell; + } else { + tableCell.onmouseover = null; + tableCell.onmouseout = null; + } } }} >
- { // $FlowFixMe - row[id] - } + {row[id]}
)} @@ -212,35 +216,26 @@ const StageDetailPlain = (props: Props) => { const renderCreateNewButton = () => { const shouldDisableCreateNew = !repeatable && events.length > 0; - return (); + + + ); }; return ( From 61e67c0ad4f67983f9e26584b23ecb9a93466aa2 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Tue, 22 Aug 2023 07:54:49 +0000 Subject: [PATCH 02/49] chore(release): cut 100.35.8 [skip release] ## [100.35.8](https://github.com/dhis2/capture-app/compare/v100.35.7...v100.35.8) (2023-08-22) ### Bug Fixes * [DHIS2-15492] transition of tooltip enabled state ([#3381](https://github.com/dhis2/capture-app/issues/3381)) ([adb6b32](https://github.com/dhis2/capture-app/commit/adb6b32f1bffc5020ca34ab5c7568b5a323a8002)) --- CHANGELOG.md | 7 +++++++ package.json | 4 ++-- packages/rules-engine/package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b08e5419b2..de3b8dc83f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [100.35.8](https://github.com/dhis2/capture-app/compare/v100.35.7...v100.35.8) (2023-08-22) + + +### Bug Fixes + +* [DHIS2-15492] transition of tooltip enabled state ([#3381](https://github.com/dhis2/capture-app/issues/3381)) ([adb6b32](https://github.com/dhis2/capture-app/commit/adb6b32f1bffc5020ca34ab5c7568b5a323a8002)) + ## [100.35.7](https://github.com/dhis2/capture-app/compare/v100.35.6...v100.35.7) (2023-08-15) diff --git a/package.json b/package.json index a30eb6b11b..a2c55c2fb5 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "capture-app", "homepage": ".", - "version": "100.35.7", + "version": "100.35.8", "cacheVersion": "5", "serverVersion": "38", "license": "BSD-3-Clause", @@ -10,7 +10,7 @@ "packages/rules-engine" ], "dependencies": { - "@dhis2/rules-engine-javascript": "100.35.7", + "@dhis2/rules-engine-javascript": "100.35.8", "@dhis2/app-runtime": "^3.8.0", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/d2-icons": "^1.0.1", diff --git a/packages/rules-engine/package.json b/packages/rules-engine/package.json index 1bbbde72e4..461a0b57a6 100644 --- a/packages/rules-engine/package.json +++ b/packages/rules-engine/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/rules-engine-javascript", - "version": "100.35.7", + "version": "100.35.8", "license": "BSD-3-Clause", "main": "./build/cjs/index.js", "scripts": { From 2e4747719151b042d3539fe61a612ebd0ac122d4 Mon Sep 17 00:00:00 2001 From: eirikhaugstulen Date: Tue, 22 Aug 2023 10:40:18 +0200 Subject: [PATCH 03/49] fix: [DHIS2-15700] Option sets not working in TEI Registration --- .../useMetadataForRegistrationForm.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/useMetadataForRegistrationForm/useMetadataForRegistrationForm.js b/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/useMetadataForRegistrationForm/useMetadataForRegistrationForm.js index d018aa4c1d..97488cf7fd 100644 --- a/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/useMetadataForRegistrationForm/useMetadataForRegistrationForm.js +++ b/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/useMetadataForRegistrationForm/useMetadataForRegistrationForm.js @@ -33,7 +33,9 @@ export const useMetadataForRegistrationForm = ({ selectedScopeId }: Props) => { .map(({ trackedEntityAttributeId }) => trackedEntityAttributeId); } if (scopeType === scopeTypes.TRACKED_ENTITY_TYPE && trackedEntityType) { - return trackedEntityType.trackedEntityTypeAttributes.map(({ id }) => id); + return trackedEntityType + .trackedEntityTypeAttributes + .map(({ trackedEntityAttributeId }) => trackedEntityAttributeId); } return undefined; }, [program, scopeType, trackedEntityType]); From 8877225e16c235bee2d288bc0d94fbcf99e63158 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Tue, 22 Aug 2023 08:49:11 +0000 Subject: [PATCH 04/49] chore(release): cut 100.35.9 [skip release] ## [100.35.9](https://github.com/dhis2/capture-app/compare/v100.35.8...v100.35.9) (2023-08-22) ### Bug Fixes * [DHIS2-15700] Option sets not working in TEI Registration ([2e47477](https://github.com/dhis2/capture-app/commit/2e4747719151b042d3539fe61a612ebd0ac122d4)) --- CHANGELOG.md | 7 +++++++ package.json | 4 ++-- packages/rules-engine/package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index de3b8dc83f..e54554fbdc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [100.35.9](https://github.com/dhis2/capture-app/compare/v100.35.8...v100.35.9) (2023-08-22) + + +### Bug Fixes + +* [DHIS2-15700] Option sets not working in TEI Registration ([2e47477](https://github.com/dhis2/capture-app/commit/2e4747719151b042d3539fe61a612ebd0ac122d4)) + ## [100.35.8](https://github.com/dhis2/capture-app/compare/v100.35.7...v100.35.8) (2023-08-22) diff --git a/package.json b/package.json index a2c55c2fb5..dd9abcbc98 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "capture-app", "homepage": ".", - "version": "100.35.8", + "version": "100.35.9", "cacheVersion": "5", "serverVersion": "38", "license": "BSD-3-Clause", @@ -10,7 +10,7 @@ "packages/rules-engine" ], "dependencies": { - "@dhis2/rules-engine-javascript": "100.35.8", + "@dhis2/rules-engine-javascript": "100.35.9", "@dhis2/app-runtime": "^3.8.0", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/d2-icons": "^1.0.1", diff --git a/packages/rules-engine/package.json b/packages/rules-engine/package.json index 461a0b57a6..f6e6396be2 100644 --- a/packages/rules-engine/package.json +++ b/packages/rules-engine/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/rules-engine-javascript", - "version": "100.35.8", + "version": "100.35.9", "license": "BSD-3-Clause", "main": "./build/cjs/index.js", "scripts": { From c5d9a7d57547153dd62cf36c8e3323685f43978f Mon Sep 17 00:00:00 2001 From: Simona Domnisoru Date: Tue, 22 Aug 2023 12:55:01 +0200 Subject: [PATCH 05/49] feat: [DHIS2-15229] search for MULTI_TEXT (#3395) --- .../possibleDuplicatesDialog.epics.js | 5 +++-- .../SearchBox/SearchForm/SearchForm.epics.js | 6 ------ .../SearchFormElementConverter.js | 4 ++-- .../components/TeiSearch/serverToFilters.js | 16 +++++++++++----- 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/core_modules/capture-core/components/PossibleDuplicatesDialog/possibleDuplicatesDialog.epics.js b/src/core_modules/capture-core/components/PossibleDuplicatesDialog/possibleDuplicatesDialog.epics.js index f1a26604b0..5375ad7eca 100644 --- a/src/core_modules/capture-core/components/PossibleDuplicatesDialog/possibleDuplicatesDialog.epics.js +++ b/src/core_modules/capture-core/components/PossibleDuplicatesDialog/possibleDuplicatesDialog.epics.js @@ -9,7 +9,7 @@ import { duplicatesForReviewRetrievalFailed, } from './possibleDuplicatesDialog.actions'; import { - scopeTypes, getScopeFromScopeId, EventProgram, TrackerProgram, TrackedEntityType, + scopeTypes, getScopeFromScopeId, EventProgram, TrackerProgram, TrackedEntityType, dataElementTypes, } from '../../metaData'; import { getDataEntryKey } from '../DataEntry/common/getDataEntryKey'; import { convertFormToClient, convertClientToServer } from '../../converters'; @@ -65,7 +65,8 @@ export const loadSearchGroupDuplicatesForReviewEpic = ( return null; } const serverValue = element.convertValue(value, pipeD2(convertFormToClient, convertClientToServer)); - return `${element.id}:${element.optionSet ? 'eq' : 'like'}:${serverValue}`; + const hasOptionSet = element.optionSet && element.type !== dataElementTypes.MULTI_TEXT; + return `${element.id}:${hasOptionSet ? 'eq' : 'like'}:${serverValue}`; }) .filter(f => f); diff --git a/src/core_modules/capture-core/components/SearchBox/SearchForm/SearchForm.epics.js b/src/core_modules/capture-core/components/SearchBox/SearchForm/SearchForm.epics.js index f9aa25f38e..753dea334b 100644 --- a/src/core_modules/capture-core/components/SearchBox/SearchForm/SearchForm.epics.js +++ b/src/core_modules/capture-core/components/SearchBox/SearchForm/SearchForm.epics.js @@ -17,7 +17,6 @@ import { getTrackedEntityInstances, } from '../../../trackedEntityInstances/trackedEntityInstanceRequests'; import { - type DataElement, dataElementTypes, getTrackedEntityTypeThrowIfNotFound, getTrackerProgramThrowIfNotFound, @@ -67,11 +66,6 @@ const searchViaUniqueIdStream = ({ catchError(() => of(showErrorViewOnSearchBox())), ); -export const deriveFilterKeyword = (fieldId: string, attributes: Array): ("eq" | "like") => { - const hasOptionSet = Boolean(attributes.find(({ id, optionSet }) => (id === fieldId) && (optionSet))); - return hasOptionSet ? 'eq' : 'like'; -}; - const getFiltersForAttributesSearchQuery = (formValues, attributes) => Object.keys(formValues) .filter(fieldId => formValues[fieldId]) .filter((fieldId) => { diff --git a/src/core_modules/capture-core/components/SearchBox/SearchForm/SearchFormElementConverter/SearchFormElementConverter.js b/src/core_modules/capture-core/components/SearchBox/SearchForm/SearchFormElementConverter/SearchFormElementConverter.js index a07af2134b..7d5e282ee7 100644 --- a/src/core_modules/capture-core/components/SearchBox/SearchForm/SearchFormElementConverter/SearchFormElementConverter.js +++ b/src/core_modules/capture-core/components/SearchBox/SearchForm/SearchFormElementConverter/SearchFormElementConverter.js @@ -1,12 +1,12 @@ // @flow import { pipe as pipeD2 } from '../../../../../capture-core-utils'; import { convertClientToServer, convertFormToClient } from '../../../../converters'; -import { type DataElement } from '../../../../metaData'; +import { type DataElement, dataElementTypes } from '../../../../metaData'; type FormValues = { [key: string]: any} const derivedFilterKeyword = (dataElement) => { - const hasOptionSet = !!dataElement.optionSet; + const hasOptionSet = dataElement.optionSet && dataElement.type !== dataElementTypes.MULTI_TEXT; return hasOptionSet ? 'eq' : 'like'; }; diff --git a/src/core_modules/capture-core/components/TeiSearch/serverToFilters.js b/src/core_modules/capture-core/components/TeiSearch/serverToFilters.js index e9da576888..06d24bad32 100644 --- a/src/core_modules/capture-core/components/TeiSearch/serverToFilters.js +++ b/src/core_modules/capture-core/components/TeiSearch/serverToFilters.js @@ -10,12 +10,18 @@ const equals = (value: any, elementId: string) => `${elementId}:eq:${value}`; const like = (value: any, elementId: string) => `${elementId}:like:${value}`; -function convertRange(value: RangeValue, elementId: string) { - return `${elementId}:ge:${value.from}:le:${value.to}`; -} +const convertRange = (value: RangeValue, { id: elementId }: DataElement) => ( + `${elementId}:ge:${value.from}:le:${value.to}` +); + +const convertString = (value: any, metaElement: DataElement) => { + const hasOptionSet = metaElement.optionSet && metaElement.type !== dataElementTypes.MULTI_TEXT; + return hasOptionSet ? equals(value, metaElement.id) : like(value, metaElement.id); +}; const valueConvertersForType = { - [dataElementTypes.TEXT]: like, + [dataElementTypes.TEXT]: convertString, + [dataElementTypes.MULTI_TEXT]: convertString, [dataElementTypes.NUMBER_RANGE]: convertRange, [dataElementTypes.DATE_RANGE]: convertRange, [dataElementTypes.DATETIME_RANGE]: convertRange, @@ -27,7 +33,7 @@ export function convertValue(value: any, type: $Keys, m return value; } // $FlowFixMe dataElementTypes flow error - return valueConvertersForType[type] ? valueConvertersForType[type](value, metaElement.id) : equals(value, metaElement.id); + return valueConvertersForType[type] ? valueConvertersForType[type](value, metaElement) : equals(value, metaElement.id); } export function convertValueToEqual(value: any, type: $Keys, metaElement: DataElement) { From b01a793302db6a315cbdb7d0548b515a77e3adb0 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Tue, 22 Aug 2023 11:02:36 +0000 Subject: [PATCH 06/49] chore(release): cut 100.36.0 [skip release] # [100.36.0](https://github.com/dhis2/capture-app/compare/v100.35.9...v100.36.0) (2023-08-22) ### Features * [DHIS2-15229] search for MULTI_TEXT ([#3395](https://github.com/dhis2/capture-app/issues/3395)) ([c5d9a7d](https://github.com/dhis2/capture-app/commit/c5d9a7d57547153dd62cf36c8e3323685f43978f)) --- CHANGELOG.md | 7 +++++++ package.json | 4 ++-- packages/rules-engine/package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e54554fbdc..2b4d14cfea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [100.36.0](https://github.com/dhis2/capture-app/compare/v100.35.9...v100.36.0) (2023-08-22) + + +### Features + +* [DHIS2-15229] search for MULTI_TEXT ([#3395](https://github.com/dhis2/capture-app/issues/3395)) ([c5d9a7d](https://github.com/dhis2/capture-app/commit/c5d9a7d57547153dd62cf36c8e3323685f43978f)) + ## [100.35.9](https://github.com/dhis2/capture-app/compare/v100.35.8...v100.35.9) (2023-08-22) diff --git a/package.json b/package.json index dd9abcbc98..09e12cba11 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "capture-app", "homepage": ".", - "version": "100.35.9", + "version": "100.36.0", "cacheVersion": "5", "serverVersion": "38", "license": "BSD-3-Clause", @@ -10,7 +10,7 @@ "packages/rules-engine" ], "dependencies": { - "@dhis2/rules-engine-javascript": "100.35.9", + "@dhis2/rules-engine-javascript": "100.36.0", "@dhis2/app-runtime": "^3.8.0", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/d2-icons": "^1.0.1", diff --git a/packages/rules-engine/package.json b/packages/rules-engine/package.json index f6e6396be2..f8ae9bbd9b 100644 --- a/packages/rules-engine/package.json +++ b/packages/rules-engine/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/rules-engine-javascript", - "version": "100.35.9", + "version": "100.36.0", "license": "BSD-3-Clause", "main": "./build/cjs/index.js", "scripts": { From 5db743eaf7f67bbb4a9391ac9ade25317e4d3642 Mon Sep 17 00:00:00 2001 From: Simona Domnisoru Date: Tue, 22 Aug 2023 15:30:25 +0200 Subject: [PATCH 07/49] feat: [DHIS2-15299] escape value for attribute filter (#3403) --- cypress/integration/SearchPage.feature | 8 -------- cypress/integration/SearchPage/index.js | 13 ------------- i18n/en.pot | 8 ++++---- .../possibleDuplicatesDialog.epics.js | 3 ++- .../SearchBox/SearchForm/SearchForm.epics.js | 3 ++- .../SearchFormElementConverter.js | 5 +++-- .../components/TeiSearch/serverToFilters.js | 5 +++-- .../DataEntry/FormFoundation/DataElement.js | 6 +++--- .../DataEntry/helpers/escapeString.js | 14 ++++++++++++++ .../WidgetProfile/DataEntry/helpers/index.js | 1 + .../optionSet/optionSetConverter.js | 3 ++- .../filterConverters/textConverter.js | 3 ++- .../capture-core/converters/clientToServer.js | 4 ++-- .../factory/enrollment/DataElementFactory.js | 5 +++-- .../TrackedEntityType/DataElementFactory.js | 5 +++-- .../capture-core/utils/escapeString.js | 15 +++++++++++++++ 16 files changed, 59 insertions(+), 42 deletions(-) create mode 100644 src/core_modules/capture-core/components/WidgetProfile/DataEntry/helpers/escapeString.js create mode 100644 src/core_modules/capture-core/utils/escapeString.js diff --git a/cypress/integration/SearchPage.feature b/cypress/integration/SearchPage.feature index ea30752589..0f98fdfdfc 100644 --- a/cypress/integration/SearchPage.feature +++ b/cypress/integration/SearchPage.feature @@ -37,14 +37,6 @@ Feature: User interacts with Search page # And you click search # Then you should see no results found - Scenario: Searching using attributes in Tracker Program throws error - Given you are on the default search page - When you select the search domain Malaria Case diagnosis - And you expand the attributes search area - And you fill in the first name with values that will return an error - And you click search - Then there should be an generic error message - Scenario: Searching using attributes in Tracker Program is invalid because no terms typed Given you are on the default search page When you select the search domain Malaria Case diagnosis diff --git a/cypress/integration/SearchPage/index.js b/cypress/integration/SearchPage/index.js index 40868ea394..93d0212d34 100644 --- a/cypress/integration/SearchPage/index.js +++ b/cypress/integration/SearchPage/index.js @@ -151,19 +151,6 @@ When('for Person you fill in values that will return less than 5 results', () => .blur(); }); -When('you fill in the first name with values that will return an error', () => { - cy.get('[data-test="form-attributes"]') - .find('[data-test="capture-ui-input"]') - .first() - .type(',,,,') - .blur(); -}); - -Then('there should be an generic error message', () => { - cy.get('[data-test="general-purpose-error-mesage"]') - .should('exist'); -}); - When('you dont fill in any of the values', () => { cy.get('[data-test="form-attributes"]') .find('[data-test="capture-ui-input"]') diff --git a/i18n/en.pot b/i18n/en.pot index 3119626801..ff0db59ce7 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: 2023-06-01T08:11:59.116Z\n" -"PO-Revision-Date: 2023-06-01T08:11:59.116Z\n" +"POT-Creation-Date: 2023-08-22T12:04:52.436Z\n" +"PO-Revision-Date: 2023-08-22T12:04:52.436Z\n" msgid "Choose one or more dates..." msgstr "Choose one or more dates..." @@ -775,8 +775,8 @@ msgstr "Schedule" msgid "Refer" msgstr "Refer" -msgid "You can’t add any more {{ programStageName }} events" -msgstr "You can’t add any more {{ programStageName }} events" +msgid "You can't add any more {{ programStageName }} events" +msgstr "You can't add any more {{ programStageName }} events" msgid "Cancel without saving" msgstr "Cancel without saving" diff --git a/src/core_modules/capture-core/components/PossibleDuplicatesDialog/possibleDuplicatesDialog.epics.js b/src/core_modules/capture-core/components/PossibleDuplicatesDialog/possibleDuplicatesDialog.epics.js index 5375ad7eca..515eee121d 100644 --- a/src/core_modules/capture-core/components/PossibleDuplicatesDialog/possibleDuplicatesDialog.epics.js +++ b/src/core_modules/capture-core/components/PossibleDuplicatesDialog/possibleDuplicatesDialog.epics.js @@ -16,6 +16,7 @@ import { convertFormToClient, convertClientToServer } from '../../converters'; import { getTrackedEntityInstances } from '../../trackedEntityInstances/trackedEntityInstanceRequests'; import { getAttributesFromScopeId } from '../../metaData/helpers'; import { searchGroupDuplicateActionTypes } from '../../components/Pages/NewRelationship/RegisterTei'; +import { escapeString } from '../../utils/escapeString'; function getGroupElementsFromScopeId(scopeId: ?string) { if (!scopeId) { @@ -66,7 +67,7 @@ export const loadSearchGroupDuplicatesForReviewEpic = ( } const serverValue = element.convertValue(value, pipeD2(convertFormToClient, convertClientToServer)); const hasOptionSet = element.optionSet && element.type !== dataElementTypes.MULTI_TEXT; - return `${element.id}:${hasOptionSet ? 'eq' : 'like'}:${serverValue}`; + return `${element.id}:${hasOptionSet ? 'eq' : 'like'}:${escapeString(serverValue)}`; }) .filter(f => f); diff --git a/src/core_modules/capture-core/components/SearchBox/SearchForm/SearchForm.epics.js b/src/core_modules/capture-core/components/SearchBox/SearchForm/SearchForm.epics.js index 753dea334b..9f50c5e821 100644 --- a/src/core_modules/capture-core/components/SearchBox/SearchForm/SearchForm.epics.js +++ b/src/core_modules/capture-core/components/SearchBox/SearchForm/SearchForm.epics.js @@ -28,11 +28,12 @@ import { } from '../../../actions/navigateToEnrollmentOverview/navigateToEnrollmentOverview.actions'; import { dataElementConvertFunctions } from './SearchFormElementConverter/SearchFormElementConverter'; import type { QuerySingleResource } from '../../../utils/api/api.types'; +import { escapeString } from '../../../utils/escapeString'; const getFiltersForUniqueIdSearchQuery = (formValues) => { const fieldId = Object.keys(formValues)[0]; - return [`${fieldId}:eq:${formValues[fieldId]}`]; + return [`${fieldId}:eq:${escapeString(formValues[fieldId])}`]; }; const searchViaUniqueIdStream = ({ diff --git a/src/core_modules/capture-core/components/SearchBox/SearchForm/SearchFormElementConverter/SearchFormElementConverter.js b/src/core_modules/capture-core/components/SearchBox/SearchForm/SearchFormElementConverter/SearchFormElementConverter.js index 7d5e282ee7..5153fc5454 100644 --- a/src/core_modules/capture-core/components/SearchBox/SearchForm/SearchFormElementConverter/SearchFormElementConverter.js +++ b/src/core_modules/capture-core/components/SearchBox/SearchForm/SearchFormElementConverter/SearchFormElementConverter.js @@ -2,6 +2,7 @@ import { pipe as pipeD2 } from '../../../../../capture-core-utils'; import { convertClientToServer, convertFormToClient } from '../../../../converters'; import { type DataElement, dataElementTypes } from '../../../../metaData'; +import { escapeString } from '../../../../utils/escapeString'; type FormValues = { [key: string]: any} @@ -13,7 +14,7 @@ const derivedFilterKeyword = (dataElement) => { const convertString = (formValues: string, dataElement: DataElement) => { const sanitizedString = formValues.trim(); const convertedString = (dataElement.convertValue(sanitizedString, pipeD2(convertFormToClient, convertClientToServer))); - return `${dataElement.id}:${derivedFilterKeyword(dataElement)}:${convertedString}`; + return `${dataElement.id}:${derivedFilterKeyword(dataElement)}:${escapeString(convertedString)}`; }; const convertRange = (formValues: FormValues, dataElement: DataElement) => { @@ -38,7 +39,7 @@ const convertAge = (formValues: FormValues, dataElement: DataElement) => { const convertFile = (formValues: FormValues, dataElement: DataElement) => { const convertedFileName = (dataElement.convertValue(formValues, pipeD2(convertFormToClient, convertClientToServer))); - return `${dataElement.id}:${derivedFilterKeyword(dataElement)}:${convertedFileName}`; + return `${dataElement.id}:${derivedFilterKeyword(dataElement)}:${escapeString(convertedFileName)}`; }; const convertBoolean = (formValues: boolean, dataElement: DataElement) => { diff --git a/src/core_modules/capture-core/components/TeiSearch/serverToFilters.js b/src/core_modules/capture-core/components/TeiSearch/serverToFilters.js index 06d24bad32..afbf8a2b49 100644 --- a/src/core_modules/capture-core/components/TeiSearch/serverToFilters.js +++ b/src/core_modules/capture-core/components/TeiSearch/serverToFilters.js @@ -1,13 +1,14 @@ // @flow import { type DataElement, dataElementTypes } from '../../metaData'; +import { escapeString } from '../../utils/escapeString'; type RangeValue = { from: number, to: number, } -const equals = (value: any, elementId: string) => `${elementId}:eq:${value}`; -const like = (value: any, elementId: string) => `${elementId}:like:${value}`; +const equals = (value: any, elementId: string) => `${elementId}:eq:${escapeString(value)}`; +const like = (value: any, elementId: string) => `${elementId}:like:${escapeString(value)}`; const convertRange = (value: RangeValue, { id: elementId }: DataElement) => ( diff --git a/src/core_modules/capture-core/components/WidgetProfile/DataEntry/FormFoundation/DataElement.js b/src/core_modules/capture-core/components/WidgetProfile/DataEntry/FormFoundation/DataElement.js index 49c24f8a0e..c8e09b913c 100644 --- a/src/core_modules/capture-core/components/WidgetProfile/DataEntry/FormFoundation/DataElement.js +++ b/src/core_modules/capture-core/components/WidgetProfile/DataEntry/FormFoundation/DataElement.js @@ -19,7 +19,7 @@ import { convertFormToClient, convertClientToServer } from '../../../../converte import { convertOptionSetValue } from '../../../../converters/serverToClient'; import { buildIcon } from '../../../../metaDataMemoryStoreBuilders/common/helpers'; import { OptionGroup } from '../../../../metaData/OptionSet/OptionGroup'; -import { getFeatureType, getDataElement, getLabel, isNotValidOptionSet } from '../helpers'; +import { getFeatureType, getDataElement, getLabel, isNotValidOptionSet, escapeString } from '../helpers'; import type { QuerySingleResource } from '../../../../utils/api/api.types'; const OPTION_SET_NOT_FOUND = 'Optionset not found'; @@ -67,7 +67,7 @@ const buildDataElementUnique = ( params: { program: contextProps.programId, orgUnit: orgUnitId, - filter: `${dataElement.id}:EQ:${serverValue}`, + filter: `${dataElement.id}:EQ:${escapeString(serverValue)}`, }, }); } else { @@ -76,7 +76,7 @@ const buildDataElementUnique = ( params: { program: contextProps.programId, ouMode: 'ACCESSIBLE', - filter: `${dataElement.id}:EQ:${serverValue}`, + filter: `${dataElement.id}:EQ:${escapeString(serverValue)}`, }, }); } diff --git a/src/core_modules/capture-core/components/WidgetProfile/DataEntry/helpers/escapeString.js b/src/core_modules/capture-core/components/WidgetProfile/DataEntry/helpers/escapeString.js new file mode 100644 index 0000000000..ef28a44a1d --- /dev/null +++ b/src/core_modules/capture-core/components/WidgetProfile/DataEntry/helpers/escapeString.js @@ -0,0 +1,14 @@ +// @flow + +const valueToEscape = Object.freeze({ + COLON: ':', + COMMA: ',', + SLASH: '/', +}); +const escape = '/'; + +export const escapeString = (value: string): string => + value + .replace(new RegExp(valueToEscape.SLASH, 'g'), `${escape}${valueToEscape.SLASH}`) + .replace(new RegExp(valueToEscape.COLON, 'g'), `${escape}${valueToEscape.COLON}`) + .replace(new RegExp(valueToEscape.COMMA, 'g'), `${escape}${valueToEscape.COMMA}`); diff --git a/src/core_modules/capture-core/components/WidgetProfile/DataEntry/helpers/index.js b/src/core_modules/capture-core/components/WidgetProfile/DataEntry/helpers/index.js index 5782f0f6e7..9a9b94144a 100644 --- a/src/core_modules/capture-core/components/WidgetProfile/DataEntry/helpers/index.js +++ b/src/core_modules/capture-core/components/WidgetProfile/DataEntry/helpers/index.js @@ -15,3 +15,4 @@ export { export { GEOMETRY, getFeatureType, getDataElement, getLabel } from './geometry'; export { convertClientToView } from './convertClientToView'; export { isNotValidOptionSet } from './isNotValidOptionSet'; +export { escapeString } from './escapeString'; diff --git a/src/core_modules/capture-core/components/WorkingLists/WorkingListsCommon/helpers/buildFilterQueryArgs/filterConverters/optionSet/optionSetConverter.js b/src/core_modules/capture-core/components/WorkingLists/WorkingListsCommon/helpers/buildFilterQueryArgs/filterConverters/optionSet/optionSetConverter.js index 7524405217..cd35012202 100644 --- a/src/core_modules/capture-core/components/WorkingLists/WorkingListsCommon/helpers/buildFilterQueryArgs/filterConverters/optionSet/optionSetConverter.js +++ b/src/core_modules/capture-core/components/WorkingLists/WorkingListsCommon/helpers/buildFilterQueryArgs/filterConverters/optionSet/optionSetConverter.js @@ -3,13 +3,14 @@ import { pipe } from 'capture-core-utils'; import { convertDataTypeValueToRequest } from './basicDataTypeConverters'; import { typeof dataElementTypes } from '../../../../../../../metaData'; import type { OptionSetFilterData } from '../../../../../../ListView'; +import { escapeString } from '../../../../../../../utils/escapeString'; export function convertOptionSet( sourceValue: OptionSetFilterData, type: $Keys, ) { return pipe( - values => values.map(filterValue => convertDataTypeValueToRequest(filterValue, type)), + values => values.map(filterValue => escapeString(convertDataTypeValueToRequest(filterValue, type))), values => values.join(';'), valueString => `in:${valueString}`, )(sourceValue.values); diff --git a/src/core_modules/capture-core/components/WorkingLists/WorkingListsCommon/helpers/buildFilterQueryArgs/filterConverters/textConverter.js b/src/core_modules/capture-core/components/WorkingLists/WorkingListsCommon/helpers/buildFilterQueryArgs/filterConverters/textConverter.js index a14959a232..b3b3db672d 100644 --- a/src/core_modules/capture-core/components/WorkingLists/WorkingListsCommon/helpers/buildFilterQueryArgs/filterConverters/textConverter.js +++ b/src/core_modules/capture-core/components/WorkingLists/WorkingListsCommon/helpers/buildFilterQueryArgs/filterConverters/textConverter.js @@ -1,6 +1,7 @@ // @flow import type { TextFilterData } from '../../../../../ListView'; +import { escapeString } from '../../../../../../utils/escapeString'; export function convertText(filter: TextFilterData) { - return `like:${filter.value}`; + return `like:${escapeString(filter.value)}`; } diff --git a/src/core_modules/capture-core/converters/clientToServer.js b/src/core_modules/capture-core/converters/clientToServer.js index 9612390eed..7477352af6 100644 --- a/src/core_modules/capture-core/converters/clientToServer.js +++ b/src/core_modules/capture-core/converters/clientToServer.js @@ -4,8 +4,8 @@ import { dataElementTypes } from '../metaData'; import { stringifyNumber } from './common/stringifyNumber'; type RangeValue = { - from: any, - to: any, + from: number, + to: number, } diff --git a/src/core_modules/capture-core/metaDataMemoryStoreBuilders/programs/factory/enrollment/DataElementFactory.js b/src/core_modules/capture-core/metaDataMemoryStoreBuilders/programs/factory/enrollment/DataElementFactory.js index 1ad7926f75..3fa73e1130 100644 --- a/src/core_modules/capture-core/metaDataMemoryStoreBuilders/programs/factory/enrollment/DataElementFactory.js +++ b/src/core_modules/capture-core/metaDataMemoryStoreBuilders/programs/factory/enrollment/DataElementFactory.js @@ -21,6 +21,7 @@ import { convertFormToClient, convertClientToServer } from '../../../../converte import type { ConstructorInput } from './dataElementFactory.types'; import type { QuerySingleResource } from '../../../../utils/api/api.types'; import { isNotValidOptionSet } from '../../../../utils/isNotValidOptionSet'; +import { escapeString } from '../../../../utils/escapeString'; export class DataElementFactory { static translationPropertyNames = { @@ -88,7 +89,7 @@ export class DataElementFactory { params: { program: contextProps.programId, orgUnit: orgUnitId, - filter: `${dataElement.id}:EQ:${serverValue}`, + filter: `${dataElement.id}:EQ:${escapeString(serverValue)}`, }, }); } else { @@ -97,7 +98,7 @@ export class DataElementFactory { params: { program: contextProps.programId, ouMode: 'ACCESSIBLE', - filter: `${dataElement.id}:EQ:${serverValue}`, + filter: `${dataElement.id}:EQ:${escapeString(serverValue)}`, }, }); } diff --git a/src/core_modules/capture-core/metaDataMemoryStoreBuilders/trackedEntityTypes/factory/TrackedEntityType/DataElementFactory.js b/src/core_modules/capture-core/metaDataMemoryStoreBuilders/trackedEntityTypes/factory/TrackedEntityType/DataElementFactory.js index 3a9f1b929e..bc27da80ed 100644 --- a/src/core_modules/capture-core/metaDataMemoryStoreBuilders/trackedEntityTypes/factory/TrackedEntityType/DataElementFactory.js +++ b/src/core_modules/capture-core/metaDataMemoryStoreBuilders/trackedEntityTypes/factory/TrackedEntityType/DataElementFactory.js @@ -19,6 +19,7 @@ import { convertFormToClient, convertClientToServer } from '../../../../converte import type { ConstructorInput } from './dataElementFactory.types'; import type { QuerySingleResource } from '../../../../utils/api/api.types'; import { isNotValidOptionSet } from '../../../../utils/isNotValidOptionSet'; +import { escapeString } from '../../../../utils/escapeString'; export class DataElementFactory { static translationPropertyNames = { @@ -151,7 +152,7 @@ export class DataElementFactory { params: { trackedEntityType: contextProps.trackedEntityTypeId, orgUnit: orgUnitId, - filter: `${dataElement.id}:EQ:${serverValue}`, + filter: `${dataElement.id}:EQ:${escapeString(serverValue)}`, }, }); } else { @@ -160,7 +161,7 @@ export class DataElementFactory { params: { trackedEntityType: contextProps.trackedEntityTypeId, ouMode: 'ACCESSIBLE', - filter: `${dataElement.id}:EQ:${serverValue}`, + filter: `${dataElement.id}:EQ:${escapeString(serverValue)}`, }, }); } diff --git a/src/core_modules/capture-core/utils/escapeString.js b/src/core_modules/capture-core/utils/escapeString.js new file mode 100644 index 0000000000..c71c659564 --- /dev/null +++ b/src/core_modules/capture-core/utils/escapeString.js @@ -0,0 +1,15 @@ +// @flow + +const valueToEscape = Object.freeze({ + COLON: ':', + COMMA: ',', + SLASH: '/', +}); +const escape = '/'; + +export const escapeString = (value: string): string => + value + .replace(new RegExp(valueToEscape.SLASH, 'g'), `${escape}${valueToEscape.SLASH}`) + .replace(new RegExp(valueToEscape.COLON, 'g'), `${escape}${valueToEscape.COLON}`) + .replace(new RegExp(valueToEscape.COMMA, 'g'), `${escape}${valueToEscape.COMMA}`); + From 8bed7fb9e4aefc28cc4dc2c032ee8d706a522064 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Tue, 22 Aug 2023 13:38:35 +0000 Subject: [PATCH 08/49] chore(release): cut 100.37.0 [skip release] # [100.37.0](https://github.com/dhis2/capture-app/compare/v100.36.0...v100.37.0) (2023-08-22) ### Features * [DHIS2-15299] escape value for attribute filter ([#3403](https://github.com/dhis2/capture-app/issues/3403)) ([5db743e](https://github.com/dhis2/capture-app/commit/5db743eaf7f67bbb4a9391ac9ade25317e4d3642)) --- CHANGELOG.md | 7 +++++++ package.json | 4 ++-- packages/rules-engine/package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b4d14cfea..6487c20723 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [100.37.0](https://github.com/dhis2/capture-app/compare/v100.36.0...v100.37.0) (2023-08-22) + + +### Features + +* [DHIS2-15299] escape value for attribute filter ([#3403](https://github.com/dhis2/capture-app/issues/3403)) ([5db743e](https://github.com/dhis2/capture-app/commit/5db743eaf7f67bbb4a9391ac9ade25317e4d3642)) + # [100.36.0](https://github.com/dhis2/capture-app/compare/v100.35.9...v100.36.0) (2023-08-22) diff --git a/package.json b/package.json index 09e12cba11..297f0a3494 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "capture-app", "homepage": ".", - "version": "100.36.0", + "version": "100.37.0", "cacheVersion": "5", "serverVersion": "38", "license": "BSD-3-Clause", @@ -10,7 +10,7 @@ "packages/rules-engine" ], "dependencies": { - "@dhis2/rules-engine-javascript": "100.36.0", + "@dhis2/rules-engine-javascript": "100.37.0", "@dhis2/app-runtime": "^3.8.0", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/d2-icons": "^1.0.1", diff --git a/packages/rules-engine/package.json b/packages/rules-engine/package.json index f8ae9bbd9b..7e57d9d6a2 100644 --- a/packages/rules-engine/package.json +++ b/packages/rules-engine/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/rules-engine-javascript", - "version": "100.36.0", + "version": "100.37.0", "license": "BSD-3-Clause", "main": "./build/cjs/index.js", "scripts": { From 290bd578500f16868bd94e7d43dcf53f27afee21 Mon Sep 17 00:00:00 2001 From: Simona Domnisoru Date: Thu, 24 Aug 2023 12:18:38 +0200 Subject: [PATCH 09/49] refactor: [DHIS2-15185] use Dhis2 DataTable component in working lists (#3386) --- .../EventWorkingListsDev/index.js | 18 +- .../EventWorkingListsUser/index.js | 10 +- .../TeiWorkingListsDev/index.js | 6 +- .../TeiWorkingListsUser/index.js | 13 +- .../integration/WorkingLists/sharedSteps.js | 10 +- i18n/en.pot | 9 +- package.json | 4 +- .../DataTable/SortLabelWrapper.component.js | 141 -- .../List/OfflineList/OfflineList.component.js | 212 +- .../List/OnlineList/OnlineList.component.js | 292 +-- .../withEndColumnMenu/RowMenu.component.js | 29 +- .../withEndColumnMenu/rowMenu.types.js | 3 +- .../capture-ui/DataTable/Body.component.js | 16 - .../capture-ui/DataTable/Cell.component.js | 38 - .../capture-ui/DataTable/Footer.component.js | 30 - .../capture-ui/DataTable/Head.component.js | 30 - .../DataTable/HeaderCell.component.js | 25 - .../capture-ui/DataTable/Row.component.js | 40 - .../DataTable/SortLabel.component.js | 99 - .../capture-ui/DataTable/Table.component.js | 27 - .../capture-ui/DataTable/sortLabel.const.js | 11 - .../capture-ui/DataTable/table.module.css | 101 - .../Pagination.component.js | 0 .../capture-ui/Pagination/table.module.css | 19 + src/core_modules/capture-ui/index.js | 15 +- yarn.lock | 1776 +++++------------ 26 files changed, 666 insertions(+), 2308 deletions(-) delete mode 100644 src/core_modules/capture-core/components/DataTable/SortLabelWrapper.component.js delete mode 100644 src/core_modules/capture-ui/DataTable/Body.component.js delete mode 100644 src/core_modules/capture-ui/DataTable/Cell.component.js delete mode 100644 src/core_modules/capture-ui/DataTable/Footer.component.js delete mode 100644 src/core_modules/capture-ui/DataTable/Head.component.js delete mode 100644 src/core_modules/capture-ui/DataTable/HeaderCell.component.js delete mode 100644 src/core_modules/capture-ui/DataTable/Row.component.js delete mode 100644 src/core_modules/capture-ui/DataTable/SortLabel.component.js delete mode 100644 src/core_modules/capture-ui/DataTable/Table.component.js delete mode 100644 src/core_modules/capture-ui/DataTable/sortLabel.const.js delete mode 100644 src/core_modules/capture-ui/DataTable/table.module.css rename src/core_modules/capture-ui/{DataTable => Pagination}/Pagination.component.js (100%) create mode 100644 src/core_modules/capture-ui/Pagination/table.module.css diff --git a/cypress/integration/WorkingLists/EventWorkingLists/EventWorkingListsDev/index.js b/cypress/integration/WorkingLists/EventWorkingLists/EventWorkingListsDev/index.js index a200fcf728..b1b8f6c79a 100644 --- a/cypress/integration/WorkingLists/EventWorkingLists/EventWorkingListsDev/index.js +++ b/cypress/integration/WorkingLists/EventWorkingLists/EventWorkingListsDev/index.js @@ -38,7 +38,7 @@ Then('the list should display the events retrieved from the api', () => { cy.get('[data-test="event-working-lists"]') .find('tr') .each(($teiRow, index) => { - const rowId = $teiRow.get(0).getAttribute('id'); + const rowId = $teiRow.get(0).getAttribute('data-test'); if (index > 1) { expect(rowId).to.equal(teis[index - 1].event); } @@ -232,25 +232,27 @@ When('you click the report date column header', () => { cy.route('GET', '**/tracker/events**').as('getEvents'); - cy.get('[data-test="online-list-table"]') - .contains('Report date') + cy.get('[data-test="dhis2-uicore-tableheadercellaction"]') + .eq(0) + .click() .click(); }); Then('events should be retrieved from the api ordered ascendingly by report date', () => { - cy.wait('@getEvents', { timeout: 40000 }).as('result'); + cy.wait('@getEvents', { timeout: 40000 }).as('resultDefault'); + cy.wait('@getEvents', { timeout: 40000 }).as('resultAsc'); - cy.get('@result') + cy.get('@resultAsc') .its('status') .should('equal', 200); - cy.get('@result') + cy.get('@resultAsc') .its('url') .should('match', /order=.*asc/); - cy.get('@result') + cy.get('@resultAsc') .its('url') .should('include', 'page=1'); - cy.get('@result').its('response.body.instances').as('events'); + cy.get('@resultAsc').its('response.body.instances').as('events'); }); diff --git a/cypress/integration/WorkingLists/EventWorkingLists/EventWorkingListsUser/index.js b/cypress/integration/WorkingLists/EventWorkingLists/EventWorkingListsUser/index.js index ed72014a7f..cacda7707f 100644 --- a/cypress/integration/WorkingLists/EventWorkingLists/EventWorkingListsUser/index.js +++ b/cypress/integration/WorkingLists/EventWorkingLists/EventWorkingListsUser/index.js @@ -256,8 +256,9 @@ Then('the list should display 10 rows of data', () => { }); When('you click the report date column header', () => { - cy.get('[data-test="online-list-table"]') - .contains('Report date') + cy.get('[data-test="dhis2-uicore-tableheadercellaction"]') + .eq(0) + .click() .click(); }); @@ -364,8 +365,9 @@ When('you change the sharing settings', () => { When('you update the working list', () => { - cy.get('[data-test="online-list-table"]') - .contains('Report date') + cy.get('[data-test="dhis2-uicore-tableheadercellaction"]') + .eq(0) + .click() .click(); cy.get('[data-test="list-view-menu-button"]') diff --git a/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsDev/index.js b/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsDev/index.js index 1c8cacb865..d7bbe85138 100644 --- a/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsDev/index.js +++ b/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsDev/index.js @@ -146,7 +146,7 @@ Then('the list should display the teis retrieved from the api', () => { cy.get('[data-test="tei-working-lists"]') .find('tr') .each(($teiRow, index) => { - const rowId = $teiRow.get(0).getAttribute('id'); + const rowId = $teiRow.get(0).getAttribute('data-test'); if (index > 1) { expect(rowId).to.equal(teis[index - 1].trackedEntity); } @@ -226,8 +226,8 @@ When('you click the first name column header', () => { cy.route('GET', '**/tracker/trackedEntities**').as('getTeis'); - cy.get('[data-test="online-list-table"]') - .contains('First name') + cy.get('[data-test="dhis2-uicore-tableheadercellaction"]') + .eq(0) .click(); }); diff --git a/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser/index.js b/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser/index.js index 211356e1bc..6426baf38c 100644 --- a/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser/index.js +++ b/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser/index.js @@ -332,20 +332,21 @@ Then('the list should display 10 rows of data', () => { }); When('you click the first name column header', () => { - cy.get('[data-test="online-list-table"]') - .contains('First name') + cy.get('[data-test="dhis2-uicore-tableheadercellaction"]') + .eq(0) .click(); }); When('you click the last name column header', () => { - cy.get('[data-test="online-list-table"]') - .contains('Last name') + cy.get('[data-test="dhis2-uicore-tableheadercellaction"]') + .eq(2) .click(); }); When('you click the WHOMCH Smoking column header', () => { - cy.get('[data-test="online-list-table"]') - .contains('WHOMCH Smoking') + cy.get('[data-test="dhis2-uicore-tableheadercellaction"]') + .eq(6) + .click() .click(); }); diff --git a/cypress/integration/WorkingLists/sharedSteps.js b/cypress/integration/WorkingLists/sharedSteps.js index 4dd206ad9b..5c359d2569 100644 --- a/cypress/integration/WorkingLists/sharedSteps.js +++ b/cypress/integration/WorkingLists/sharedSteps.js @@ -75,8 +75,9 @@ Then('the pagination for the tei working list should show the second page', () = }); Then('the sort arrow should indicate ascending order', () => { - cy.get('[data-test="data-table-asc-sort-icon"]') - .should('exist'); + cy.get('[data-test="table-row"]').within(() => { + cy.get('[data-test="table-row-asc"]').should('exist'); + }); }); Then('the enrollment status filter button should show that the active filter is in effect', () => { @@ -133,8 +134,9 @@ When('you click the first page button', () => { }); Then('the sort arrow should indicate descending order', () => { - cy.get('[data-test="data-table-desc-sort-icon"]') - .should('exist'); + cy.get('[data-test="table-row"]').within(() => { + cy.get('[data-test="table-row-desc"]').should('exist'); + }); }); Then('rows per page should be set to 15', () => { diff --git a/i18n/en.pot b/i18n/en.pot index ff0db59ce7..52dcc1b13e 100644 --- a/i18n/en.pot +++ b/i18n/en.pot @@ -373,9 +373,6 @@ msgstr "Some operations are still runnning. Please wait.." msgid "Operations running" msgstr "Operations running" -msgid "Sort" -msgstr "Sort" - msgid "" "This event has unsaved changes. Leaving this page without saving will lose " "these changes. Are you sure you want to discard unsaved changes?" @@ -1503,9 +1500,6 @@ msgstr "Error editing the event, the changes made were not saved" msgid "Set coordinate" msgstr "Set coordinate" -msgid "Page {{currentPage}}" -msgstr "Page {{currentPage}}" - msgid "Date" msgstr "Date" @@ -1524,6 +1518,9 @@ msgstr "To date" msgid "To time" msgstr "To time" +msgid "Page {{currentPage}}" +msgstr "Page {{currentPage}}" + msgid "Delete polygon" msgstr "Delete polygon" diff --git a/package.json b/package.json index 297f0a3494..6f9a6db16c 100644 --- a/package.json +++ b/package.json @@ -11,14 +11,14 @@ ], "dependencies": { "@dhis2/rules-engine-javascript": "100.37.0", - "@dhis2/app-runtime": "^3.8.0", + "@dhis2/app-runtime": "^3.9.3", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/d2-icons": "^1.0.1", "@dhis2/d2-ui-app": "^2.0.0", "@dhis2/d2-ui-org-unit-tree": "^7.3.3", "@dhis2/d2-ui-rich-text": "^7.4.0", "@dhis2/d2-ui-sharing-dialog": "^7.3.3", - "@dhis2/ui": "^8.7.7", + "@dhis2/ui": "^8.13.8", "@joakim_sm/react-infinite-calendar": "^2.4.2", "@material-ui/core": "3.9.4", "@material-ui/icons": "3", diff --git a/src/core_modules/capture-core/components/DataTable/SortLabelWrapper.component.js b/src/core_modules/capture-core/components/DataTable/SortLabelWrapper.component.js deleted file mode 100644 index 73fded30e6..0000000000 --- a/src/core_modules/capture-core/components/DataTable/SortLabelWrapper.component.js +++ /dev/null @@ -1,141 +0,0 @@ -// @flow -import * as React from 'react'; -import { IconArrowDown16, IconArrowUp16, Tooltip } from '@dhis2/ui'; -import { withStyles } from '@material-ui/core/styles'; -import classNames from 'classnames'; - -import i18n from '@dhis2/d2-i18n'; -import { SortLabel, sortLabelDirections } from 'capture-ui'; - -const styles = () => ({ - iconBase: { - color: '#3a796f', - }, - enabledIcon: { - cursor: 'pointer', - }, -}); - -type Props = { - children?: ?React.Node, - classes: { - iconBase: string, - enabledIcon: string, - }, - disabled?: ?boolean, -}; - -class SortLabelWrapperPlain extends React.Component { - getIconClickHandler = ( - direction: $Values, - onSort: (direction: $Values) => void) => - () => { - if (!this.props.disabled) { - onSort(direction); - } - } - - getActiveIcons = (direction?: ?$Values, - onSort: (direction: $Values) => void, - ) => { - const isDisabled = this.props.disabled; - const classes = this.props.classes; - - const icon = - direction === sortLabelDirections.ASC ? - (
- -
) : - (
- -
); - - if (this.props.disabled) { - return ( - - {icon} - - ); - } - - return ( - - - {icon} - - - ); - } - - getIcons = ( - isActive: boolean, - direction?: ?$Values, - onSort: (direction: $Values, - ) => void) => { - if (isActive) { - return this.getActiveIcons(direction, onSort); - } - return ( -
- ); - } - - render() { - return ( - // $FlowFixMe[cannot-spread-inexact] automated comment - - { - (() => { - if (this.props.disabled) { - return ( - - {this.props.children} - - ); - } - return ( - - - {this.props.children} - - - ); - })() - } - - ); - } -} - -/** - * A wrapper for the d2-ui/dataTable/sortLabel component. Adds sort tooltip and icons - * @alias SortLabelWrapper - * @memberof DataTable - */ -export const SortLabelWrapper = withStyles(styles)(SortLabelWrapperPlain); diff --git a/src/core_modules/capture-core/components/List/OfflineList/OfflineList.component.js b/src/core_modules/capture-core/components/List/OfflineList/OfflineList.component.js index 69d7b9c760..8955ce20e3 100644 --- a/src/core_modules/capture-core/components/List/OfflineList/OfflineList.component.js +++ b/src/core_modules/capture-core/components/List/OfflineList/OfflineList.component.js @@ -3,62 +3,17 @@ import React, { Component } from 'react'; import { withStyles } from '@material-ui/core/styles'; import classNames from 'classnames'; import i18n from '@dhis2/d2-i18n'; - -import { - Table, - Row, - Cell, - HeaderCell, - Head, - Body, - sortLabelDirections, - sorLabelPlacements, -} from 'capture-ui'; -import { SortLabelWrapper } from '../../DataTable/SortLabelWrapper.component'; +import { DataTableHead, DataTable, DataTableBody, DataTableRow, DataTableCell, DataTableColumnHeader } from '@dhis2/ui'; import { dataElementTypes } from '../../../metaData'; -const styles = theme => ({ - loaderContainer: { - display: 'flex', - justifyContent: 'center', - }, - container: { - borderColor: theme.palette.type === 'light' - ? theme.palette.dividerLighter - : theme.palette.dividerDarker, - borderWidth: '1px', - borderStyle: 'solid', - }, - topBarContainer: { - display: 'flex', - justifyContent: 'space-between', - }, +const styles = () => ({ tableContainer: { overflow: 'auto', }, - optionsIcon: { - color: theme.palette.primary.main, - }, - table: {}, - row: {}, - cell: { - padding: `${theme.spacing.unit / 2}px ${theme.spacing.unit * 7}px ${theme.spacing.unit / - 2}px ${theme.spacing.unit * 3}px`, - '&:last-child': { - paddingRight: theme.spacing.unit * 3, + headerAlign: { + '&>span.container': { + alignItems: 'flex-end', }, - borderBottomColor: theme.palette.type === 'light' - ? theme.palette.dividerLighter - : theme.palette.dividerDarker, - }, - bodyCell: { - fontSize: theme.typography.pxToRem(13), - color: theme.palette.text.primary, - }, - headerCell: { - fontSize: theme.typography.pxToRem(12), - color: theme.palette.text.secondary, - fontWeight: theme.typography.fontWeightMedium, }, }); @@ -70,37 +25,17 @@ type Column = { }; type Props = { - dataSource: Array<{id: string, [elementId: string]: any}>, + dataSource: Array<{ id: string, [elementId: string]: any }>, columns: ?Array, classes: { - loaderContainer: string, - container: string, - topBarContainer: string, + headerAlign: string, tableContainer: string, - optionsIcon: string, - table: string, - cell: string, - headerCell: string, - bodyCell: string, - footerCell: string, - row: string, }, rowIdKey: string, - sortById: string, - sortByDirection: string, noItemsText: ?string, }; class Index extends Component { - static defaultProps = { - rowIdKey: 'id', - }; - static typesWithAscendingInitialDirection = [ - // todo (report lgmt) - dataElementTypes.TEXT, - dataElementTypes.LONG_TEXT, - ]; - static typesWithRightPlacement = [ dataElementTypes.NUMBER, dataElementTypes.INTEGER, @@ -110,122 +45,61 @@ class Index extends Component { ]; renderHeaderRow(visibleColumns: Array) { - const sortById = this.props.sortById; - const sortByDirection = this.props.sortByDirection; - - const headerCells = visibleColumns - .map(column => ( - - - {column.header} - - - )); + const { classes } = this.props; - return ( - ( + - {headerCells} - - ); + {column.header} + + )); + + return {headerCells}; } renderRows(visibleColumns: Array) { - const { dataSource, classes, noItemsText, rowIdKey } = this.props; + const { dataSource, noItemsText, rowIdKey } = this.props; if (!dataSource || dataSource.length === 0) { const columnsCount = visibleColumns.length; return ( - - - {noItemsText || i18n.t('No items to display')} - - + + {noItemsText || i18n.t('No items to display')} + ); } - return dataSource - .map((row) => { - const cells = visibleColumns - .map(column => ( - -
- {row[column.id]} -
-
- )); + return dataSource.map((row) => { + const cells = visibleColumns.map(column => ( + + {row[column.id]} + + )); - return ( - - {cells} - - ); - }); + return ( + + {cells} + + ); + }); } render() { const { columns, classes } = this.props; - - const visibleColumns = columns ? - columns - .filter(column => column.visible) : []; + const visibleColumns = columns ? columns.filter(column => column.visible) : []; return ( -
-
-
- - - {this.renderHeaderRow(visibleColumns)} - - - {this.renderRows(visibleColumns)} - -
-
+
+ + {this.renderHeaderRow(visibleColumns)} + {this.renderRows(visibleColumns)} +
); } diff --git a/src/core_modules/capture-core/components/List/OnlineList/OnlineList.component.js b/src/core_modules/capture-core/components/List/OnlineList/OnlineList.component.js index 8d8fc3ad59..21b085e8d0 100644 --- a/src/core_modules/capture-core/components/List/OnlineList/OnlineList.component.js +++ b/src/core_modules/capture-core/components/List/OnlineList/OnlineList.component.js @@ -2,68 +2,23 @@ import * as React from 'react'; import i18n from '@dhis2/d2-i18n'; -import { CircularLoader } from '@dhis2/ui'; +import { DataTableHead, DataTable, DataTableBody, DataTableRow, DataTableCell, DataTableColumnHeader } from '@dhis2/ui'; import classNames from 'classnames'; import { withStyles } from '@material-ui/core/styles'; -import { - Table, - Head, - Body, - Row, - Cell, - HeaderCell, - sortLabelDirections, - sorLabelPlacements, -} from 'capture-ui'; -import { SortLabelWrapper } from '../../DataTable/SortLabelWrapper.component'; import { dataElementTypes } from '../../../metaData'; import type { OptionSet } from '../../../metaData'; - -const getStyles = (theme: Theme) => ({ +const getStyles = () => ({ tableContainer: { overflowX: 'auto', }, - table: {}, - row: {}, loadingRow: { height: 100, }, - dataRow: { - cursor: 'pointer', - '&:hover': { - backgroundColor: '#F1FBFF', - }, - }, - - cell: { - padding: `${theme.spacing.unit / 2}px ${theme.spacing.unit * 7}px ${theme.spacing.unit / - 2}px ${theme.spacing.unit * 3}px`, - '&:last-child': { - paddingRight: theme.spacing.unit * 3, + headerAlign: { + '&>span.container': { + alignItems: 'flex-end', }, - borderBottomColor: theme.palette.type === 'light' - ? theme.palette.dividerLighter - : theme.palette.dividerDarker, - }, - bodyCell: { - fontSize: theme.typography.pxToRem(13), - color: theme.palette.text.primary, - }, - staticHeaderCell: { - width: 1, - }, - headerCell: { - fontSize: theme.typography.pxToRem(12), - color: theme.palette.text.secondary, - // $FlowFixMe - fontWeight: theme.typography.fontWeightMedium, - }, - loadingCell: { - textAlign: 'center', - }, - loader: { - display: 'inline-block', }, }); @@ -90,33 +45,12 @@ type Props = { customEndCellBodyStyle?: ?Object, classes: { tableContainer: string, - table: string, - cell: string, - headerCell: string, - bodyCell: string, - loadingCell: string, - sortLabelChilden: string, loadingRow: string, - row: string, - dataRow: string, - loader: string, - } -} - + headerAlign: string, + }, +}; class Index extends React.Component { - columnHeaderInstances: Array; - constructor(props: Props) { - super(props); - this.columnHeaderInstances = []; - } - static typesWithAscendingInitialDirection = [ - dataElementTypes.TEXT, - dataElementTypes.LONG_TEXT, - dataElementTypes.USERNAME, - 'ASSIGNEE', - ]; - static typesWithRightPlacement = [ dataElementTypes.NUMBER, dataElementTypes.INTEGER, @@ -124,181 +58,107 @@ class Index extends React.Component { dataElementTypes.INTEGER_NEGATIVE, dataElementTypes.INTEGER_ZERO_OR_POSITIVE, ]; - getSortHandler = (id: string) => (direction: string) => { - this.props.onSort(id, direction); - } - setColumnWidth(columnInstance: any, index: number) { - if (columnInstance && !this.props.updating) { - this.columnHeaderInstances[index] = columnInstance; - } - } + getSortHandler = + (id: string) => + ({ direction }: { direction: string }) => { + this.props.onSort(id, direction); + }; getCustomEndCellHeader = () => { - const { getCustomEndCellHeader, getCustomEndCellBody, customEndCellHeaderStyle, classes } = this.props; + const { getCustomEndCellHeader, getCustomEndCellBody, customEndCellHeaderStyle } = this.props; - return getCustomEndCellBody ? - ( - - {getCustomEndCellHeader && getCustomEndCellHeader(this.props)} - - ) : - null; - } + return getCustomEndCellBody ? ( + + {getCustomEndCellHeader && getCustomEndCellHeader(this.props)} + + ) : null; + }; getCustomEndCellBody = (row: Object, customEndCellBodyProps: Object) => { - const { getCustomEndCellBody, customEndCellBodyStyle, classes } = this.props; + const { getCustomEndCellBody, customEndCellBodyStyle } = this.props; - return getCustomEndCellBody ? - ( - - {getCustomEndCellBody(row, customEndCellBodyProps)} - - ) : - null; - } + return getCustomEndCellBody ? ( + + {getCustomEndCellBody(row, customEndCellBodyProps)} + + ) : null; + }; renderHeaderRow(visibleColumns: Array) { - const sortById = this.props.sortById; - const sortByDirection = this.props.sortByDirection; - - const headerCells = visibleColumns - .map((column, index) => ( - { this.setColumnWidth(instance, index); }} - key={column.id} - className={classNames(this.props.classes.cell, this.props.classes.headerCell)} - style={{ width: this.props.updating && this.columnHeaderInstances.length - 1 >= index ? this.columnHeaderInstances[index].clientWidth : 'auto' }} - > - - {column.header} - - - )); + const { classes, sortById, sortByDirection } = this.props; + + const headerCells = visibleColumns.map(column => ( + + {column.header} + + )); return ( - + {headerCells} {this.getCustomEndCellHeader()} - + ); } renderBody(visibleColumns: Array) { - const { classes, getCustomEndCellBody, updating } = this.props; + const { getCustomEndCellBody, updating, classes } = this.props; const columnsCount = visibleColumns.length + (getCustomEndCellBody ? 1 : 0); - return updating ? - ( - - - - - - ) : this.renderRows(visibleColumns, columnsCount); + return updating ? ( + + ) : ( + this.renderRows(visibleColumns, columnsCount) + ); } renderRows(visibleColumns: Array, columnsCount: number) { - const { dataSource, classes, rowIdKey, ...customEndCellBodyProps } = this.props; + const { dataSource, rowIdKey, ...customEndCellBodyProps } = this.props; if (!dataSource || dataSource.length === 0) { return ( - - - {i18n.t('No items to display')} - - + + {i18n.t('No items to display')} + ); } - return ( - - { - dataSource - .map((row) => { - const cells = visibleColumns - .map(column => ( - -
- {row[column.id]} -
-
- )); - return ( - this.props.onRowClick(row)} - > - {cells} - {this.getCustomEndCellBody(row, customEndCellBodyProps)} - - ); - }) - } -
- ); + return dataSource.map((row) => { + const cells = visibleColumns.map(column => ( + this.props.onRowClick(row)} + > + {row[column.id]} + + )); + return ( + + {cells} + {this.getCustomEndCellBody(row, customEndCellBodyProps)} + + ); + }); } render() { - const { classes, columns } = this.props; + const { classes, columns, updating } = this.props; const visibleColumns = columns ? columns.filter(column => column.visible) : []; return ( -
- - - {this.renderHeaderRow(visibleColumns)} - - - {this.renderBody(visibleColumns)} - -
+
+ + {this.renderHeaderRow(visibleColumns)} + {this.renderBody(visibleColumns)} +
); } diff --git a/src/core_modules/capture-core/components/ListView/withEndColumnMenu/RowMenu.component.js b/src/core_modules/capture-core/components/ListView/withEndColumnMenu/RowMenu.component.js index 22d8cf593c..28778a4ef7 100644 --- a/src/core_modules/capture-core/components/ListView/withEndColumnMenu/RowMenu.component.js +++ b/src/core_modules/capture-core/components/ListView/withEndColumnMenu/RowMenu.component.js @@ -2,12 +2,11 @@ import * as React from 'react'; import { Manager, Popper, Reference } from 'react-popper'; import ClickAwayListener from '@material-ui/core/ClickAwayListener'; -import { IconMore24 } from '@dhis2/ui'; +import { spacers, IconMore24, colors } from '@dhis2/ui'; import Grow from '@material-ui/core/Grow'; import Paper from '@material-ui/core/Paper'; import MenuList from '@material-ui/core/MenuList'; import MenuItem from '@material-ui/core/MenuItem'; -import IconButton from '@material-ui/core/IconButton'; import withStyles from '@material-ui/core/styles/withStyles'; import type { Props, State } from './rowMenu.types'; @@ -21,12 +20,19 @@ const styles = theme => ({ popperContainer: { zIndex: 100, }, - iconContainer: { - position: 'relative', - }, - icon: { - position: 'absolute', - marginTop: '-24px', + iconButton: { + display: 'flex', + borderRadius: '50%', + border: 'none', + cursor: 'pointer', + background: 'transparent', + padding: spacers.dp12, + marginTop: `-${spacers.dp12}`, + marginBottom: `-${spacers.dp12}`, + color: colors.grey600, + '&:hover': { + background: colors.grey400, + }, }, }); @@ -105,15 +111,14 @@ class Index extends React.Component { return (
- - +
); } diff --git a/src/core_modules/capture-core/components/ListView/withEndColumnMenu/rowMenu.types.js b/src/core_modules/capture-core/components/ListView/withEndColumnMenu/rowMenu.types.js index 4b11a4ff82..6c05417157 100644 --- a/src/core_modules/capture-core/components/ListView/withEndColumnMenu/rowMenu.types.js +++ b/src/core_modules/capture-core/components/ListView/withEndColumnMenu/rowMenu.types.js @@ -7,8 +7,7 @@ export type Props = { menuList: string, popperContainerHidden: string, popperContainer: string, - iconContainer: string, - icon: string, + iconButton: string, }, row: DataSourceItem, customRowMenuContents?: CustomRowMenuContents, diff --git a/src/core_modules/capture-ui/DataTable/Body.component.js b/src/core_modules/capture-ui/DataTable/Body.component.js deleted file mode 100644 index ff3bf7afe2..0000000000 --- a/src/core_modules/capture-ui/DataTable/Body.component.js +++ /dev/null @@ -1,16 +0,0 @@ -// @flow -import * as React from 'react'; - -type Props = { - children: React.Node, -}; - -export class Body extends React.Component { - render() { - return ( - - {this.props.children} - - ); - } -} diff --git a/src/core_modules/capture-ui/DataTable/Cell.component.js b/src/core_modules/capture-ui/DataTable/Cell.component.js deleted file mode 100644 index 20960f5a68..0000000000 --- a/src/core_modules/capture-ui/DataTable/Cell.component.js +++ /dev/null @@ -1,38 +0,0 @@ -// @flow -import * as React from 'react'; -import classNames from 'classnames'; -import PropTypes from 'prop-types'; -import defaultClasses from './table.module.css'; - -type Props = { - children: React.Node, - className?: ?string, -}; - -export const Cell = (props: Props, context: { table?: ?{ head: boolean, footer: boolean }}) => { - const { children, className, ...passOnProps } = props; - - const { table } = context; - const classes = classNames( - defaultClasses.tableCell, - { - [defaultClasses.tableCellBody]: !table, - [defaultClasses.tableCellHeader]: table && table.head, - [defaultClasses.tableCellFooter]: table && table.footer, - }, - className, - ); - return ( - // $FlowFixMe[cannot-spread-inexact] automated comment - - {props.children} - - ); -}; - -Cell.contextTypes = { - table: PropTypes.object, -}; diff --git a/src/core_modules/capture-ui/DataTable/Footer.component.js b/src/core_modules/capture-ui/DataTable/Footer.component.js deleted file mode 100644 index 40265801e7..0000000000 --- a/src/core_modules/capture-ui/DataTable/Footer.component.js +++ /dev/null @@ -1,30 +0,0 @@ -// @flow -import * as React from 'react'; -import PropTypes from 'prop-types'; - -type Props = { - children: React.Node, -}; - -export class Footer extends React.Component { - static childContextTypes = { - table: PropTypes.object, - }; - - getChildContext() { - // eslint-disable-line class-methods-use-this - return { - table: { - footer: true, - }, - }; - } - - render() { - return ( - - {this.props.children} - - ); - } -} diff --git a/src/core_modules/capture-ui/DataTable/Head.component.js b/src/core_modules/capture-ui/DataTable/Head.component.js deleted file mode 100644 index 7f68219da7..0000000000 --- a/src/core_modules/capture-ui/DataTable/Head.component.js +++ /dev/null @@ -1,30 +0,0 @@ -// @flow -import * as React from 'react'; -import PropTypes from 'prop-types'; - -type Props = { - children: React.Node, -}; - -export class Head extends React.Component { - static childContextTypes = { - table: PropTypes.object, - }; - - getChildContext() { - // eslint-disable-line class-methods-use-this - return { - table: { - head: true, - }, - }; - } - - render() { - return ( - - {this.props.children} - - ); - } -} diff --git a/src/core_modules/capture-ui/DataTable/HeaderCell.component.js b/src/core_modules/capture-ui/DataTable/HeaderCell.component.js deleted file mode 100644 index 87b245ccc9..0000000000 --- a/src/core_modules/capture-ui/DataTable/HeaderCell.component.js +++ /dev/null @@ -1,25 +0,0 @@ -// @flow -import * as React from 'react'; -import classNames from 'classnames'; -import defaultClasses from './table.module.css'; - -type Props = { - children: React.Node, - className?: ?string, - innerRef?: ?(instance?: ?HTMLElement) => void, -}; - -export const HeaderCell = (props: Props) => { - const { children, className, innerRef, ...passOnProps } = props; - const classes = classNames(defaultClasses.tableCell, defaultClasses.tableCellHeader, className); - return ( - // $FlowFixMe[cannot-spread-inexact] automated comment - - { props.children } - - ); -}; diff --git a/src/core_modules/capture-ui/DataTable/Row.component.js b/src/core_modules/capture-ui/DataTable/Row.component.js deleted file mode 100644 index 9f6633cc56..0000000000 --- a/src/core_modules/capture-ui/DataTable/Row.component.js +++ /dev/null @@ -1,40 +0,0 @@ -// @flow -import * as React from 'react'; -import classNames from 'classnames'; -import PropTypes from 'prop-types'; -import defaultClasses from './table.module.css'; - -type Props = { - children: React.Node, - className?: ?string, -}; - -export const Row = (props: Props, context: { table?: ?{ head: boolean, footer: boolean }}) => { - const { children, className, ...passOnProps } = props; - - const { table } = context; - const classes = classNames( - defaultClasses.tableRow, - { - [defaultClasses.tableRowBody]: !table, - [defaultClasses.tableRowHeader]: table && table.head, - [defaultClasses.tableRowFooter]: table && table.footer, - }, - className, - ); - - return ( - // $FlowFixMe[cannot-spread-inexact] automated comment - - {props.children} - - ); -}; - -Row.contextTypes = { - table: PropTypes.object, -}; diff --git a/src/core_modules/capture-ui/DataTable/SortLabel.component.js b/src/core_modules/capture-ui/DataTable/SortLabel.component.js deleted file mode 100644 index e6d67b3188..0000000000 --- a/src/core_modules/capture-ui/DataTable/SortLabel.component.js +++ /dev/null @@ -1,99 +0,0 @@ -// @flow -import * as React from 'react'; -import classNames from 'classnames'; -import { directions, placements } from './sortLabel.const'; -import defaultClasses from './table.module.css'; - -type Props = { - children?: ?React.Node, - initialDirection?: ?$Values, - isActive: boolean, - direction?: ?$Values, - placement?: ?$Values, - onSort: (direction: $Values) => void, - onGetIcons?: ?( - isActive: boolean, - direction?: ?$Values, - onSort: (direction: $Values) => void) - => void, - childrenClass?: ?string, - disabled?: ?boolean, -}; - -export class SortLabel extends React.Component { - handleSort = () => { - const { isActive, direction, disabled } = this.props; - - if (!disabled) { - if (isActive) { - this.props.onSort(direction === directions.ASC ? directions.DESC : directions.ASC); - } else { - this.props.onSort(this.props.initialDirection || directions.DESC); - } - } - } - - renderChildrenContainer(classes: Array) { - const childrenDefaultClasses = this.props.disabled ? defaultClasses.sortLabelChildren : classNames(defaultClasses.sortLabelChildren, defaultClasses.sortLabelChildrenEnabled); - return ( -
- {this.props.children} -
- ); - } - - render() { - const { isActive, direction, onSort, onGetIcons, placement } = this.props; - const icons = onGetIcons && onGetIcons(isActive, direction, onSort); - const containerClasses = classNames( - defaultClasses.sortLabelContainer, - { - [defaultClasses.sortLabelRight]: placement === placements.RIGHT, - }, - ); - - return ( -
- { - (() => { - if (placement === placements.RIGHT) { - return ( - -
- {icons} -
- { - this.renderChildrenContainer([defaultClasses.sortLabelChildrenLast]) - } -
- ); - } - - return ( - - { - this.renderChildrenContainer([defaultClasses.sortLabelChildrenFirst]) - } -
- {icons} -
-
- ); - })() - } -
- ); - } -} diff --git a/src/core_modules/capture-ui/DataTable/Table.component.js b/src/core_modules/capture-ui/DataTable/Table.component.js deleted file mode 100644 index a411a6c617..0000000000 --- a/src/core_modules/capture-ui/DataTable/Table.component.js +++ /dev/null @@ -1,27 +0,0 @@ -// @flow -/** - * @namespace DataTable - */ - -import * as React from 'react'; -import classNames from 'classnames'; -import defaultClasses from './table.module.css'; - -type Props = { - children: React.Node, - className?: ?string, -}; - -export const Table = (props: Props) => { - const { children, className, ...passOnProps } = props; - const classes = classNames(defaultClasses.table, className); - return ( - // $FlowFixMe[cannot-spread-inexact] automated comment - - { props.children } -
- ); -}; diff --git a/src/core_modules/capture-ui/DataTable/sortLabel.const.js b/src/core_modules/capture-ui/DataTable/sortLabel.const.js deleted file mode 100644 index 619b13dab9..0000000000 --- a/src/core_modules/capture-ui/DataTable/sortLabel.const.js +++ /dev/null @@ -1,11 +0,0 @@ -// @flow - -export const directions = { - ASC: 'asc', - DESC: 'desc', -}; - -export const placements = { - LEFT: 'Left', - RIGHT: 'Right', -}; diff --git a/src/core_modules/capture-ui/DataTable/table.module.css b/src/core_modules/capture-ui/DataTable/table.module.css deleted file mode 100644 index 18a0eaa00f..0000000000 --- a/src/core_modules/capture-ui/DataTable/table.module.css +++ /dev/null @@ -1,101 +0,0 @@ -.table { - display: table; - width: 100%; - border-spacing: 0; -} - -.tableRow { - color: inherit; - display: table-row; - vertical-align: middle; -} - -.tableRow:focus { - outline: none; -} - -.tableRowBody { - height: 48px; -} - -.tableRowHeader { - height: 56px; -} - -.tableRowFooter { - height: 56px; -} - -.tableCell { - display: table-cell; - vertical-align: middle; - padding: 2px 30px 2px 20px; -} - -.tableCellBody { - border-bottom-width: 1px; - border-bottom-style: solid; - text-align: left; -} - -.tableCellHeader { - font-weight: bold; - border-bottom-width: 1px; - border-bottom-style: solid; - text-align: left; -} - -.tableCellFooter { - -} - -.pagination { - display: flex; - align-items: center; - flex-wrap: wrap; -} - -.paginationRowsPerPageElementContainer { - display: flex; - align-items: center; - margin-right: 20px; -} - -.paginationRowsPerPageElement { - margin-left: 20px; -} - -.paginationDisplayRowsContainer { - margin-right: 20px; -} - -.sortLabelContainer { - display: flex; - align-items: center; -} - -.sortLabelChildren { - outline: none; - user-select: none; -} - -.sortLabelChildrenEnabled { - cursor: pointer; -} - -.sortLabelChildrenFirst { - padding-right: 10px; -} - -.sortLabelChildrenLast { - padding-left: 10px; -} - -.sortLabelRight { - justify-content: flex-end; -} - -.sortLabelIcon { - display: flex; - align-items: center; -} \ No newline at end of file diff --git a/src/core_modules/capture-ui/DataTable/Pagination.component.js b/src/core_modules/capture-ui/Pagination/Pagination.component.js similarity index 100% rename from src/core_modules/capture-ui/DataTable/Pagination.component.js rename to src/core_modules/capture-ui/Pagination/Pagination.component.js diff --git a/src/core_modules/capture-ui/Pagination/table.module.css b/src/core_modules/capture-ui/Pagination/table.module.css new file mode 100644 index 0000000000..3bc5f9c345 --- /dev/null +++ b/src/core_modules/capture-ui/Pagination/table.module.css @@ -0,0 +1,19 @@ +.pagination { + display: flex; + align-items: center; + flex-wrap: wrap; +} + +.paginationRowsPerPageElementContainer { + display: flex; + align-items: center; + margin-right: 20px; +} + +.paginationRowsPerPageElement { + margin-left: 20px; +} + +.paginationDisplayRowsContainer { + margin-right: 20px; +} \ No newline at end of file diff --git a/src/core_modules/capture-ui/index.js b/src/core_modules/capture-ui/index.js index 982dc2742e..c0a8aa0ac1 100644 --- a/src/core_modules/capture-ui/index.js +++ b/src/core_modules/capture-ui/index.js @@ -24,20 +24,7 @@ export { withLabel } from './HOC/withLabel'; export { withShrinkLabel } from './HOC/withShrinkLabel'; export { withTextFieldFocusHandler } from './internal/TextInput/withFocusHandler'; -// Datatable -export { Body } from './DataTable/Body.component'; -export { Cell } from './DataTable/Cell.component'; -export { Footer } from './DataTable/Footer.component'; -export { Head } from './DataTable/Head.component'; -export { HeaderCell } from './DataTable/HeaderCell.component'; -export { Pagination } from './DataTable/Pagination.component'; -export { Row } from './DataTable/Row.component'; -export { SortLabel } from './DataTable/SortLabel.component'; -export { Table } from './DataTable/Table.component'; -export { - directions as sortLabelDirections, - placements as sorLabelPlacements, -} from './DataTable/sortLabel.const'; +export { Pagination } from './Pagination/Pagination.component'; // UI-Elements export { DividerHorizontal } from './Divider/DividerHorizontal.component'; diff --git a/yarn.lock b/yarn.lock index 3de3f4eff9..0c0d33e902 100644 --- a/yarn.lock +++ b/yarn.lock @@ -48,26 +48,14 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.21.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39" - integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== - dependencies: - "@babel/highlight" "^7.18.6" - -"@babel/code-frame@^7.22.5", "@babel/code-frame@^7.5.5": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.5", "@babel/code-frame@^7.5.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== dependencies: "@babel/highlight" "^7.22.5" -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.21.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.4.tgz#457ffe647c480dff59c2be092fc3acf71195c87f" - integrity sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g== - -"@babel/compat-data@^7.22.5": +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.5.tgz#b1f6c86a02d85d2dd3368a2b67c09add8cd0c255" integrity sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA== @@ -94,28 +82,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.11.1", "@babel/core@^7.12.3", "@babel/core@^7.16.0", "@babel/core@^7.17.8", "@babel/core@^7.6.2", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.0": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.4.tgz#c6dc73242507b8e2a27fd13a9c1814f9fa34a659" - integrity sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.21.4" - "@babel/generator" "^7.21.4" - "@babel/helper-compilation-targets" "^7.21.4" - "@babel/helper-module-transforms" "^7.21.2" - "@babel/helpers" "^7.21.0" - "@babel/parser" "^7.21.4" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.4" - "@babel/types" "^7.21.4" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.2" - semver "^6.3.0" - -"@babel/core@^7.8.4": +"@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.11.1", "@babel/core@^7.12.3", "@babel/core@^7.16.0", "@babel/core@^7.17.8", "@babel/core@^7.6.2", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.0", "@babel/core@^7.8.4": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.5.tgz#d67d9747ecf26ee7ecd3ebae1ee22225fe902a89" integrity sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg== @@ -145,7 +112,7 @@ eslint-visitor-keys "^2.1.0" semver "^6.3.0" -"@babel/generator@^7.12.1", "@babel/generator@^7.22.5": +"@babel/generator@^7.12.1", "@babel/generator@^7.22.5", "@babel/generator@^7.7.2", "@babel/generator@^7.7.4": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.5.tgz#1e7bf768688acfb05cf30b2369ef855e82d984f7" integrity sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA== @@ -155,38 +122,13 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/generator@^7.21.4", "@babel/generator@^7.7.2", "@babel/generator@^7.7.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.4.tgz#64a94b7448989f421f919d5239ef553b37bb26bc" - integrity sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA== - dependencies: - "@babel/types" "^7.21.4" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/helper-annotate-as-pure@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" - integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-annotate-as-pure@^7.22.5": +"@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== dependencies: "@babel/types" "^7.22.5" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb" - integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.18.6" - "@babel/types" "^7.18.9" - "@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz#a3f4758efdd0190d8927fcffd261755937c71878" @@ -194,18 +136,7 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.21.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz#770cd1ce0889097ceacb99418ee6934ef0572656" - integrity sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg== - dependencies: - "@babel/compat-data" "^7.21.4" - "@babel/helper-validator-option" "^7.21.0" - browserslist "^4.21.3" - lru-cache "^5.1.1" - semver "^6.3.0" - -"@babel/helper-compilation-targets@^7.22.5": +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz#fc7319fc54c5e2fa14b2909cf3c5fd3046813e02" integrity sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw== @@ -216,21 +147,7 @@ lru-cache "^5.1.1" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz#3a017163dc3c2ba7deb9a7950849a9586ea24c18" - integrity sha512-46QrX2CQlaFRF4TkwfTt6nJD7IHq8539cCL7SDpqWSDeJKY1xylKKY5F/33mJhLZ3mFvKv2gGrVS6NkyF6qs+Q== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-member-expression-to-functions" "^7.21.0" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.20.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/helper-split-export-declaration" "^7.18.6" - -"@babel/helper-create-class-features-plugin@^7.22.5": +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz#2192a1970ece4685fbff85b48da2c32fcb130b7c" integrity sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q== @@ -245,15 +162,7 @@ "@babel/helper-split-export-declaration" "^7.22.5" semver "^6.3.0" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.4.tgz#40411a8ab134258ad2cf3a3d987ec6aa0723cee5" - integrity sha512-M00OuhU+0GyZ5iBBN9czjugzWrEq2vDpf/zCYHxxf93ul/Q5rv+a5h+/+0WnI1AebHNVtl5bFV0qsJoH23DbfA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - regexpu-core "^5.3.1" - -"@babel/helper-create-regexp-features-plugin@^7.22.5": +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.5.tgz#bb2bf0debfe39b831986a4efbf4066586819c6e4" integrity sha512-1VpEFOIbMRaXyDeUwUfmTIxExLwQ+zkW+Bh5zXpApA3oQedBx9v/updixWxnx/bZpKw7u8VxWjb/qWpIcmPq8A== @@ -286,31 +195,11 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-environment-visitor@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" - integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== - "@babel/helper-environment-visitor@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== -"@babel/helper-explode-assignable-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096" - integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0", "@babel/helper-function-name@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" - integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== - dependencies: - "@babel/template" "^7.20.7" - "@babel/types" "^7.21.0" - "@babel/helper-function-name@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" @@ -319,13 +208,6 @@ "@babel/template" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/helper-hoist-variables@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" - integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== - dependencies: - "@babel/types" "^7.18.6" - "@babel/helper-hoist-variables@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" @@ -333,13 +215,6 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-member-expression-to-functions@^7.20.7", "@babel/helper-member-expression-to-functions@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz#319c6a940431a133897148515877d2f3269c3ba5" - integrity sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q== - dependencies: - "@babel/types" "^7.21.0" - "@babel/helper-member-expression-to-functions@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2" @@ -347,20 +222,13 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.22.5": +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.21.4", "@babel/helper-module-imports@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== dependencies: "@babel/types" "^7.22.5" -"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.21.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af" - integrity sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg== - dependencies: - "@babel/types" "^7.21.4" - "@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz#0f65daa0716961b6e96b164034e737f60a80d2ef" @@ -375,27 +243,6 @@ "@babel/traverse" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.2": - version "7.21.2" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2" - integrity sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.20.2" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.19.1" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.2" - "@babel/types" "^7.21.2" - -"@babel/helper-optimise-call-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" - integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== - dependencies: - "@babel/types" "^7.18.6" - "@babel/helper-optimise-call-expression@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" @@ -403,26 +250,11 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" - integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== - -"@babel/helper-plugin-utils@^7.22.5": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== -"@babel/helper-remap-async-to-generator@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" - integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-wrap-function" "^7.18.9" - "@babel/types" "^7.18.9" - "@babel/helper-remap-async-to-generator@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.5.tgz#14a38141a7bf2165ad38da61d61cf27b43015da2" @@ -433,19 +265,7 @@ "@babel/helper-wrap-function" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz#243ecd2724d2071532b2c8ad2f0f9f083bcae331" - integrity sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-member-expression-to-functions" "^7.20.7" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.7" - "@babel/types" "^7.20.7" - -"@babel/helper-replace-supers@^7.22.5": +"@babel/helper-replace-supers@^7.20.7", "@babel/helper-replace-supers@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz#71bc5fb348856dea9fdc4eafd7e2e49f585145dc" integrity sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg== @@ -457,13 +277,6 @@ "@babel/traverse" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/helper-simple-access@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" - integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== - dependencies: - "@babel/types" "^7.20.2" - "@babel/helper-simple-access@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" @@ -471,74 +284,35 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" - integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== - dependencies: - "@babel/types" "^7.20.0" - -"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": +"@babel/helper-skip-transparent-expression-wrappers@^7.20.0", "@babel/helper-skip-transparent-expression-wrappers@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== dependencies: "@babel/types" "^7.22.5" -"@babel/helper-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-split-export-declaration@^7.22.5": +"@babel/helper-split-export-declaration@^7.18.6", "@babel/helper-split-export-declaration@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz#88cf11050edb95ed08d596f7a044462189127a08" integrity sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ== dependencies: "@babel/types" "^7.22.5" -"@babel/helper-string-parser@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" - integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== - "@babel/helper-string-parser@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== -"@babel/helper-validator-identifier@^7.14.9", "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== - -"@babel/helper-validator-identifier@^7.22.5": +"@babel/helper-validator-identifier@^7.14.9", "@babel/helper-validator-identifier@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== -"@babel/helper-validator-option@^7.16.7", "@babel/helper-validator-option@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" - integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== - -"@babel/helper-validator-option@^7.22.5": +"@babel/helper-validator-option@^7.16.7", "@babel/helper-validator-option@^7.21.0", "@babel/helper-validator-option@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== -"@babel/helper-wrap-function@^7.18.9": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" - integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q== - dependencies: - "@babel/helper-function-name" "^7.19.0" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.5" - "@babel/types" "^7.20.5" - "@babel/helper-wrap-function@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.5.tgz#44d205af19ed8d872b4eefb0d2fa65f45eb34f06" @@ -558,25 +332,7 @@ "@babel/traverse" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/helpers@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.0.tgz#9dd184fb5599862037917cdc9eecb84577dc4e7e" - integrity sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA== - dependencies: - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.0" - "@babel/types" "^7.21.0" - -"@babel/highlight@^7.10.4", "@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/highlight@^7.22.5": +"@babel/highlight@^7.10.4", "@babel/highlight@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== @@ -585,23 +341,11 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.1.6", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.4", "@babel/parser@^7.7.0", "@babel/parser@^7.7.5", "@babel/parser@^7.9.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.4.tgz#94003fdfc520bbe2875d4ae557b43ddb6d880f17" - integrity sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw== - -"@babel/parser@^7.12.3", "@babel/parser@^7.22.5": +"@babel/parser@^7.1.0", "@babel/parser@^7.1.6", "@babel/parser@^7.12.3", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.5", "@babel/parser@^7.7.0", "@babel/parser@^7.7.5", "@babel/parser@^7.9.4": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.5.tgz#721fd042f3ce1896238cf1b341c77eb7dee7dbea" integrity sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q== -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" - integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz#87245a21cd69a73b0b81bcda98d443d6df08f05e" @@ -609,15 +353,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1" - integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-proposal-optional-chaining" "^7.20.7" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz#fef09f9499b1f1c930da8a0c419db42167d792ca" @@ -627,17 +362,7 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-transform-optional-chaining" "^7.22.5" -"@babel/plugin-proposal-async-generator-functions@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" - integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-remap-async-to-generator" "^7.18.9" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-proposal-class-properties@^7.1.0", "@babel/plugin-proposal-class-properties@^7.16.0", "@babel/plugin-proposal-class-properties@^7.18.6", "@babel/plugin-proposal-class-properties@^7.8.3": +"@babel/plugin-proposal-class-properties@^7.1.0", "@babel/plugin-proposal-class-properties@^7.16.0", "@babel/plugin-proposal-class-properties@^7.8.3": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== @@ -645,15 +370,6 @@ "@babel/helper-create-class-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-class-static-block@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz#77bdd66fb7b605f3a61302d224bdfacf5547977d" - integrity sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-proposal-decorators@^7.16.4": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.21.0.tgz#70e0c89fdcd7465c97593edb8f628ba6e4199d63" @@ -665,39 +381,7 @@ "@babel/helper-split-export-declaration" "^7.18.6" "@babel/plugin-syntax-decorators" "^7.21.0" -"@babel/plugin-proposal-dynamic-import@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" - integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-namespace-from@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" - integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" - integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" - integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.1.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6", "@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": +"@babel/plugin-proposal-nullish-coalescing-operator@^7.1.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== @@ -705,7 +389,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.16.0", "@babel/plugin-proposal-numeric-separator@^7.18.6": +"@babel/plugin-proposal-numeric-separator@^7.16.0": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== @@ -713,7 +397,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.16.0", "@babel/plugin-proposal-object-rest-spread@^7.20.7": +"@babel/plugin-proposal-object-rest-spread@^7.16.0": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== @@ -724,15 +408,7 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.20.7" -"@babel/plugin-proposal-optional-catch-binding@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" - integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.1.0", "@babel/plugin-proposal-optional-chaining@^7.16.0", "@babel/plugin-proposal-optional-chaining@^7.20.7", "@babel/plugin-proposal-optional-chaining@^7.21.0", "@babel/plugin-proposal-optional-chaining@^7.8.3": +"@babel/plugin-proposal-optional-chaining@^7.1.0", "@babel/plugin-proposal-optional-chaining@^7.16.0", "@babel/plugin-proposal-optional-chaining@^7.8.3": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== @@ -741,7 +417,7 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.16.0", "@babel/plugin-proposal-private-methods@^7.18.6": +"@babel/plugin-proposal-private-methods@^7.16.0": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== @@ -754,16 +430,6 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== -"@babel/plugin-proposal-private-property-in-object@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz#19496bd9883dd83c23c7d7fc45dcd9ad02dfa1dc" - integrity sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-proposal-throw-expressions@^7.7.4": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-throw-expressions/-/plugin-proposal-throw-expressions-7.18.6.tgz#f05eb10f417d34857e4ebf3a2a152e77bd59ff9f" @@ -772,7 +438,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-throw-expressions" "^7.18.6" -"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": +"@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== @@ -836,13 +502,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-syntax-import-assertions@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" - integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== - dependencies: - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/plugin-syntax-import-assertions@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz#07d252e2aa0bc6125567f742cd58619cb14dce98" @@ -963,13 +622,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-arrow-functions@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz#bea332b0e8b2dab3dafe55a163d8227531ab0551" - integrity sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-transform-arrow-functions@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz#e5ba566d0c58a5b2ba2a8b795450641950b71958" @@ -987,15 +639,6 @@ "@babel/helper-remap-async-to-generator" "^7.22.5" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-transform-async-to-generator@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" - integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q== - dependencies: - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-remap-async-to-generator" "^7.18.9" - "@babel/plugin-transform-async-to-generator@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz#c7a85f44e46f8952f6d27fe57c2ed3cc084c3775" @@ -1005,13 +648,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-remap-async-to-generator" "^7.22.5" -"@babel/plugin-transform-block-scoped-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" - integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-transform-block-scoped-functions@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024" @@ -1019,13 +655,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoping@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz#e737b91037e5186ee16b76e7ae093358a5634f02" - integrity sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-transform-block-scoping@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz#8bfc793b3a4b2742c0983fadc1480d843ecea31b" @@ -1050,21 +679,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-transform-classes@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665" - integrity sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-replace-supers" "^7.20.7" - "@babel/helper-split-export-declaration" "^7.18.6" - globals "^11.1.0" - "@babel/plugin-transform-classes@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.5.tgz#635d4e98da741fad814984639f4c0149eb0135e1" @@ -1080,14 +694,6 @@ "@babel/helper-split-export-declaration" "^7.22.5" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz#704cc2fd155d1c996551db8276d55b9d46e4d0aa" - integrity sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/template" "^7.20.7" - "@babel/plugin-transform-computed-properties@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz#cd1e994bf9f316bd1c2dafcd02063ec261bb3869" @@ -1096,13 +702,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/template" "^7.22.5" -"@babel/plugin-transform-destructuring@^7.21.3": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz#73b46d0fd11cd6ef57dea8a381b1215f4959d401" - integrity sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-transform-destructuring@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz#d3aca7438f6c26c78cdd0b0ba920a336001b27cc" @@ -1110,15 +709,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" - integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-dotall-regex@^7.22.5": +"@babel/plugin-transform-dotall-regex@^7.22.5", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== @@ -1126,13 +717,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-duplicate-keys@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" - integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-transform-duplicate-keys@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz#b6e6428d9416f5f0bba19c70d1e6e7e0b88ab285" @@ -1148,14 +732,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-transform-exponentiation-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" - integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-transform-exponentiation-operator@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz#402432ad544a1f9a480da865fda26be653e48f6a" @@ -1180,13 +756,6 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-flow" "^7.18.6" -"@babel/plugin-transform-for-of@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz#964108c9988de1a60b4be2354a7d7e245f36e86e" - integrity sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-transform-for-of@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz#ab1b8a200a8f990137aff9a084f8de4099ab173f" @@ -1194,15 +763,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-function-name@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" - integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== - dependencies: - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-transform-function-name@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz#935189af68b01898e0d6d99658db6b164205c143" @@ -1220,13 +780,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-transform-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" - integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-transform-literals@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz#e9341f4b5a167952576e23db8d435849b1dd7920" @@ -1242,13 +795,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-transform-member-expression-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" - integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-transform-member-expression-literals@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz#4fcc9050eded981a468347dd374539ed3e058def" @@ -1256,14 +802,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-amd@^7.20.11": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" - integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g== - dependencies: - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-transform-modules-amd@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz#4e045f55dcf98afd00f85691a68fc0780704f526" @@ -1272,16 +810,7 @@ "@babel/helper-module-transforms" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-commonjs@^7.1.0", "@babel/plugin-transform-modules-commonjs@^7.21.2": - version "7.21.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz#6ff5070e71e3192ef2b7e39820a06fb78e3058e7" - integrity sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA== - dependencies: - "@babel/helper-module-transforms" "^7.21.2" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-simple-access" "^7.20.2" - -"@babel/plugin-transform-modules-commonjs@^7.22.5": +"@babel/plugin-transform-modules-commonjs@^7.1.0", "@babel/plugin-transform-modules-commonjs@^7.21.2", "@babel/plugin-transform-modules-commonjs@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz#7d9875908d19b8c0536085af7b053fd5bd651bfa" integrity sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA== @@ -1290,16 +819,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-simple-access" "^7.22.5" -"@babel/plugin-transform-modules-systemjs@^7.20.11": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e" - integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw== - dependencies: - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-validator-identifier" "^7.19.1" - "@babel/plugin-transform-modules-systemjs@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz#18c31410b5e579a0092638f95c896c2a98a5d496" @@ -1310,14 +829,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-validator-identifier" "^7.22.5" -"@babel/plugin-transform-modules-umd@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" - integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== - dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-transform-modules-umd@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz#4694ae40a87b1745e3775b6a7fe96400315d4f98" @@ -1326,14 +837,6 @@ "@babel/helper-module-transforms" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-named-capturing-groups-regex@^7.20.5": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" - integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.20.5" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" @@ -1342,13 +845,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-new-target@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" - integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-transform-new-target@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz#1b248acea54ce44ea06dfd37247ba089fcf9758d" @@ -1383,14 +879,6 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.22.5" -"@babel/plugin-transform-object-super@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" - integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.6" - "@babel/plugin-transform-object-super@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c" @@ -1416,14 +904,7 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.21.3": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz#18fc4e797cf6d6d972cb8c411dbe8a809fa157db" - integrity sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-parameters@^7.22.5": +"@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz#c3542dd3c39b42c8069936e48717a8d179d63a18" integrity sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg== @@ -1448,13 +929,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-transform-property-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" - integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-transform-property-literals@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz#b5ddabd73a4f7f26cd0e20f5db48290b88732766" @@ -1502,14 +976,6 @@ "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-regenerator@^7.20.5": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d" - integrity sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - regenerator-transform "^0.15.1" - "@babel/plugin-transform-regenerator@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz#cd8a68b228a5f75fa01420e8cc2fc400f0fc32aa" @@ -1518,13 +984,6 @@ "@babel/helper-plugin-utils" "^7.22.5" regenerator-transform "^0.15.1" -"@babel/plugin-transform-reserved-words@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" - integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-transform-reserved-words@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz#832cd35b81c287c4bcd09ce03e22199641f964fb" @@ -1544,13 +1003,6 @@ babel-plugin-polyfill-regenerator "^0.4.1" semver "^6.3.0" -"@babel/plugin-transform-shorthand-properties@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" - integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-transform-shorthand-properties@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624" @@ -1558,14 +1010,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-spread@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" - integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-transform-spread@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz#6487fd29f229c95e284ba6c98d65eafb893fea6b" @@ -1574,13 +1018,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" -"@babel/plugin-transform-sticky-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" - integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-transform-sticky-regex@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz#295aba1595bfc8197abd02eae5fc288c0deb26aa" @@ -1588,13 +1025,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-template-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" - integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-transform-template-literals@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz#8f38cf291e5f7a8e60e9f733193f0bcc10909bff" @@ -1602,13 +1032,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-typeof-symbol@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" - integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-transform-typeof-symbol@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz#5e2ba478da4b603af8673ff7c54f75a97b716b34" @@ -1626,13 +1049,6 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-typescript" "^7.20.0" -"@babel/plugin-transform-unicode-escapes@^7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" - integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-transform-unicode-escapes@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz#ce0c248522b1cb22c7c992d88301a5ead70e806c" @@ -1648,14 +1064,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-unicode-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" - integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-transform-unicode-regex@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz#ce7e7bb3ef208c4ff67e02a22816656256d7a183" @@ -1672,88 +1080,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.14.7", "@babel/preset-env@^7.16.0", "@babel/preset-env@^7.16.11", "@babel/preset-env@^7.16.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.21.4.tgz#a952482e634a8dd8271a3fe5459a16eb10739c58" - integrity sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw== - dependencies: - "@babel/compat-data" "^7.21.4" - "@babel/helper-compilation-targets" "^7.21.4" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-validator-option" "^7.21.0" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.20.7" - "@babel/plugin-proposal-async-generator-functions" "^7.20.7" - "@babel/plugin-proposal-class-properties" "^7.18.6" - "@babel/plugin-proposal-class-static-block" "^7.21.0" - "@babel/plugin-proposal-dynamic-import" "^7.18.6" - "@babel/plugin-proposal-export-namespace-from" "^7.18.9" - "@babel/plugin-proposal-json-strings" "^7.18.6" - "@babel/plugin-proposal-logical-assignment-operators" "^7.20.7" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" - "@babel/plugin-proposal-numeric-separator" "^7.18.6" - "@babel/plugin-proposal-object-rest-spread" "^7.20.7" - "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" - "@babel/plugin-proposal-optional-chaining" "^7.21.0" - "@babel/plugin-proposal-private-methods" "^7.18.6" - "@babel/plugin-proposal-private-property-in-object" "^7.21.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.20.0" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.20.7" - "@babel/plugin-transform-async-to-generator" "^7.20.7" - "@babel/plugin-transform-block-scoped-functions" "^7.18.6" - "@babel/plugin-transform-block-scoping" "^7.21.0" - "@babel/plugin-transform-classes" "^7.21.0" - "@babel/plugin-transform-computed-properties" "^7.20.7" - "@babel/plugin-transform-destructuring" "^7.21.3" - "@babel/plugin-transform-dotall-regex" "^7.18.6" - "@babel/plugin-transform-duplicate-keys" "^7.18.9" - "@babel/plugin-transform-exponentiation-operator" "^7.18.6" - "@babel/plugin-transform-for-of" "^7.21.0" - "@babel/plugin-transform-function-name" "^7.18.9" - "@babel/plugin-transform-literals" "^7.18.9" - "@babel/plugin-transform-member-expression-literals" "^7.18.6" - "@babel/plugin-transform-modules-amd" "^7.20.11" - "@babel/plugin-transform-modules-commonjs" "^7.21.2" - "@babel/plugin-transform-modules-systemjs" "^7.20.11" - "@babel/plugin-transform-modules-umd" "^7.18.6" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.20.5" - "@babel/plugin-transform-new-target" "^7.18.6" - "@babel/plugin-transform-object-super" "^7.18.6" - "@babel/plugin-transform-parameters" "^7.21.3" - "@babel/plugin-transform-property-literals" "^7.18.6" - "@babel/plugin-transform-regenerator" "^7.20.5" - "@babel/plugin-transform-reserved-words" "^7.18.6" - "@babel/plugin-transform-shorthand-properties" "^7.18.6" - "@babel/plugin-transform-spread" "^7.20.7" - "@babel/plugin-transform-sticky-regex" "^7.18.6" - "@babel/plugin-transform-template-literals" "^7.18.9" - "@babel/plugin-transform-typeof-symbol" "^7.18.9" - "@babel/plugin-transform-unicode-escapes" "^7.18.10" - "@babel/plugin-transform-unicode-regex" "^7.18.6" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.21.4" - babel-plugin-polyfill-corejs2 "^0.3.3" - babel-plugin-polyfill-corejs3 "^0.6.0" - babel-plugin-polyfill-regenerator "^0.4.1" - core-js-compat "^3.25.1" - semver "^6.3.0" - -"@babel/preset-env@^7.8.4": +"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.14.7", "@babel/preset-env@^7.16.0", "@babel/preset-env@^7.16.11", "@babel/preset-env@^7.16.4", "@babel/preset-env@^7.8.4": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.5.tgz#3da66078b181f3d62512c51cf7014392c511504e" integrity sha512-fj06hw89dpiZzGZtxn+QybifF07nNiZjZ7sazs2aVDcysAZVGjW7+7iFYxg6GLNM47R/thYfLdrXc+2f11Vi9A== @@ -1905,7 +1232,7 @@ dependencies: regenerator-runtime "^0.13.11" -"@babel/template@^7.10.4", "@babel/template@^7.22.5": +"@babel/template@^7.10.4", "@babel/template@^7.22.5", "@babel/template@^7.3.3": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== @@ -1914,16 +1241,7 @@ "@babel/parser" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.3.3": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" - integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.12.1", "@babel/traverse@^7.22.5": +"@babel/traverse@^7.1.0", "@babel/traverse@^7.12.1", "@babel/traverse@^7.22.5", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2", "@babel/traverse@^7.7.4": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.5.tgz#44bd276690db6f4940fdb84e1cb4abd2f729ccd1" integrity sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ== @@ -1939,22 +1257,6 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.4", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2", "@babel/traverse@^7.7.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.4.tgz#a836aca7b116634e97a6ed99976236b3282c9d36" - integrity sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q== - dependencies: - "@babel/code-frame" "^7.21.4" - "@babel/generator" "^7.21.4" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.21.4" - "@babel/types" "^7.21.4" - debug "^4.1.0" - globals "^11.1.0" - "@babel/types@7.15.0": version "7.15.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" @@ -1963,16 +1265,7 @@ "@babel/helper-validator-identifier" "^7.14.9" to-fast-properties "^2.0.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.21.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.7.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.4.tgz#2d5d6bb7908699b3b416409ffd3b5daa25b030d4" - integrity sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA== - dependencies: - "@babel/helper-string-parser" "^7.19.4" - "@babel/helper-validator-identifier" "^7.19.1" - to-fast-properties "^2.0.0" - -"@babel/types@^7.12.1", "@babel/types@^7.22.5": +"@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.6", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.22.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.7.4": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== @@ -2202,583 +1495,583 @@ debug "^3.1.0" lodash.once "^4.1.1" -"@dhis2-ui/alert@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/alert/-/alert-8.13.11.tgz#6f754331c04cdb4b4206fce7b928b57dacb4f2a9" - integrity sha512-/h9m4GcpY/0nYNRDqoV/4VB3mPNB27uKZvcid2rQ2pitnzDCTr+Rd5XSOppNxRw8Ur470YkTVO0+DNh8jrUxTw== +"@dhis2-ui/alert@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/alert/-/alert-8.13.15.tgz#5f9a9665e751bc94d96b1d2993683731ac63c019" + integrity sha512-6KiE4TGaJC3FdChyc5FvghInSlPl4hZNDjukq5lYy0XXgnaKBSz9yUPmod5+NLHFsEr0DCISBKFhVeKAexz/hg== dependencies: - "@dhis2-ui/portal" "8.13.11" + "@dhis2-ui/portal" "8.13.15" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" - "@dhis2/ui-icons" "8.13.11" + "@dhis2/ui-constants" "8.13.15" + "@dhis2/ui-icons" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/box@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/box/-/box-8.13.11.tgz#f6b42e99c4e4638dd16c36594342ece5336593d6" - integrity sha512-+S+lkdUEYnbB6oe/BI87cJXMfJZJs4unGNvEAFJnqPBUMQc+0YvnI6AZUyyNMTXCXw+bA0qt2E2hrfGdGjJLaw== +"@dhis2-ui/box@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/box/-/box-8.13.15.tgz#fb8fce7ee20e27b9e25e7a294c1109a881b123a4" + integrity sha512-SwzPGXbySpU/e0lJyxOfxXipFAc3C9GKKsSQYKVOo2/kxwZDui9zaUcw1hCv4rK4vy2hB1b2GLEvJLnQAE3VIQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/button@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/button/-/button-8.13.11.tgz#eea1dfb741967a26d751e3ebbe2591adef797204" - integrity sha512-2Q/W2IS0Hlkd+aehoeoTdZRgjBnEgPI7UFV698Y3VUlW7fD9SVqx3EmkfAtyLHGhkfnicZew6E00T0zyI7bVJA== +"@dhis2-ui/button@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/button/-/button-8.13.15.tgz#0bcb2365a9dd200c303b4bea003a5b403382c981" + integrity sha512-rzHPLBAbG6Q0k8JZU21eWABa/+GqOvl9WV6ay8ODahJmvauOpKKNOYn2AfUZEjbwrWgVbiuGhPOvnC+bVI+jDw== dependencies: - "@dhis2-ui/layer" "8.13.11" - "@dhis2-ui/loader" "8.13.11" - "@dhis2-ui/popper" "8.13.11" + "@dhis2-ui/layer" "8.13.15" + "@dhis2-ui/loader" "8.13.15" + "@dhis2-ui/popper" "8.13.15" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" - "@dhis2/ui-icons" "8.13.11" + "@dhis2/ui-constants" "8.13.15" + "@dhis2/ui-icons" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/calendar@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/calendar/-/calendar-8.13.11.tgz#63baf8a9a5ca96596a60b9cf8a14b1743af422b2" - integrity sha512-zYG1NYxFbnPPTGT16vveutccT5oeB/BIKoJxWTjMLOxj2kvlWDaiGNbUHSqcItvrVlktGrmlwbSgoK7IvBQF8g== +"@dhis2-ui/calendar@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/calendar/-/calendar-8.13.15.tgz#d37395674df24565258d76aa6f771f76801c8adb" + integrity sha512-/2FVtXI6vGQlFvPul3I/EdWJfpo3QXx5aF/YKZVEEQaM5nhVmdLMVqNoIvNGzh1PJsAyrc6JhqdqqbK5AO2u0w== dependencies: - "@dhis2-ui/button" "8.13.11" - "@dhis2-ui/card" "8.13.11" - "@dhis2-ui/input" "8.13.11" - "@dhis2-ui/layer" "8.13.11" - "@dhis2-ui/popper" "8.13.11" + "@dhis2-ui/button" "8.13.15" + "@dhis2-ui/card" "8.13.15" + "@dhis2-ui/input" "8.13.15" + "@dhis2-ui/layer" "8.13.15" + "@dhis2-ui/popper" "8.13.15" "@dhis2/multi-calendar-dates" "1.0.2" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" - "@dhis2/ui-icons" "8.13.11" + "@dhis2/ui-constants" "8.13.15" + "@dhis2/ui-icons" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/card@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/card/-/card-8.13.11.tgz#302cb163f5992fd7c494d6c00ee8f373976a3786" - integrity sha512-vXBBsARxgSMDqRdfhQwYC3iCPHzNSh4rI+CBMXoqELeJsLdoYQDY+jSnBO9sV8Jmoah7zHSnEutTGbfQBzus9g== +"@dhis2-ui/card@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/card/-/card-8.13.15.tgz#87e67ebc2c92512fb729016571d0be40cbf079ca" + integrity sha512-70VZHAuHGBqw4AKBJd1HgcsMyTfQ++yzip5c8ykLU7AZQi7WS8W/fMDvV9DGFE5Lc3JyIZdr15Uh31d/v+EBUA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/center@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/center/-/center-8.13.11.tgz#19f10c200920f576894b9177ec64d5fb4ca0075b" - integrity sha512-tz4J6PMrieiy4XaerdDnsajCxg9LS6mNnODWKC5PPQcMgk9cnFp6bjpDKZynHh0cCpEyqsKDJkz4hW7fsOly9A== +"@dhis2-ui/center@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/center/-/center-8.13.15.tgz#fd434cd37e6d5eb4a01b4830c2c316fbb814c188" + integrity sha512-+YQFxzNrwYQWsZZYEHM4ywzaGbrjfQWcK4WIPAHifVYau2efPDXAMGQ8cpDrRUivpxCYi3Rpvpp965Dp5+KOYQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/checkbox@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/checkbox/-/checkbox-8.13.11.tgz#5a01e903989c5fc10ed6ca75b4573e2b62487387" - integrity sha512-FPXxP64NCRbzLchfe0/2YHutFuGabtMH1y2q/2Z2XJKvsxt4KnzCgT7AsaoskFcGoprq0+xV+4ikcQbKLnk3Mw== +"@dhis2-ui/checkbox@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/checkbox/-/checkbox-8.13.15.tgz#ed8beaf55fe32c222f35e2ee2497191dee2ddefe" + integrity sha512-fhi50vBK8v5fXzkNOcZlZR8pxO72GwwVKuTmDkrDeAIKIiNQuNZoxkAkU3vwEGv/rdO3TREbAfzTbtjRui3XHQ== dependencies: - "@dhis2-ui/field" "8.13.11" - "@dhis2-ui/required" "8.13.11" + "@dhis2-ui/field" "8.13.15" + "@dhis2-ui/required" "8.13.15" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/chip@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/chip/-/chip-8.13.11.tgz#3a94ae9ae4c20e06a28f93bfb68037d42d41280c" - integrity sha512-I7LfR2FwvPXG/NG2vQM9nMpINf/E8y4dl6IIu1pojPL068wye7dZJY6biIZdu+4qZ1P+8gDFgw3mLH8uWsjGag== +"@dhis2-ui/chip@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/chip/-/chip-8.13.15.tgz#efd576e7556b241c852b7176762e70e22f84b2e0" + integrity sha512-MJSKIX/KIZBKjQPhIUTwMasmvY4M2ftlYQ61d9Px1YAuivuE+VTvGCsFF0q5EAKMx5ETd6SD1X3PrwzdtHru4Q== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/cover@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/cover/-/cover-8.13.11.tgz#680f1745d795f098842922d037e4df0260f3f771" - integrity sha512-9HkQRlVLfYGcEk3CzhllAKhIMInwZnodHj6Gqc/c++4fjx4lJNsY09XnRWVfU4UBUex/jHiUb5Pl+P787g+0fA== +"@dhis2-ui/cover@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/cover/-/cover-8.13.15.tgz#28ac0f54a39f217518a0df501665829188d5945d" + integrity sha512-3e4XwsnhaVNSNTF2wNk6V+3CzsKCZuLsqMq049ScdaCCrv83qro1cRfRTNqNUJiXnmTubrgU8yxV0kXrFIKZJg== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/css@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/css/-/css-8.13.11.tgz#f1a4d669a7d49ef5f1dfc1e648970aeecb0d3396" - integrity sha512-EQ5C5Dc4Wm1EAeVoUZxWI0U63pd8v8pciUyFtTq0x82BF0tXTK/9jjuvnImlS76Wm74MYbHQaYn6h7O1ShBjbA== +"@dhis2-ui/css@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/css/-/css-8.13.15.tgz#8e8073a0c69070f598c27abdef52c36981d77421" + integrity sha512-9aAWUpE36SVS17AQXz3x9KkoRpIkvruat+tk2eabw0vfTB6xVRPzC1oO28mltYhpWNOLLS+k1USwfhDSiiqASw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/divider@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/divider/-/divider-8.13.11.tgz#fab8c8871b89a156622baad236c9e4c39f308b66" - integrity sha512-4KnKw0MB0HGF6SGBiXHdQgIEaSiHJtGVxix3pMZ8UHMe484RmQm22Dhc7ZfaEnTXBWAr2KPC0NG/UZFK8qfbxQ== +"@dhis2-ui/divider@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/divider/-/divider-8.13.15.tgz#c4ef063b31aa80735c2288dd9f5cbaa2c79b123e" + integrity sha512-bIQKnaCddH2Pr9e3j3CFFWMvGR51gvw71G4NTHsNGZTWNbVL54tZo4ifhkmkfNvf3cLuF/V6IlpQzrf/X8Iu9g== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/field@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/field/-/field-8.13.11.tgz#c680010ad018910d9b6abec53cad110dbff6d8f4" - integrity sha512-49vDnMA1aYlN/3trzHPC18EIDzHH0NrrwSFQ5q8XkiOiBqLYq4kNXX4i8YYkhLkM+cABPuziOw6YhR0bWhddJg== +"@dhis2-ui/field@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/field/-/field-8.13.15.tgz#f91ca25936ea926e82ac17c62b28faa2eae2898b" + integrity sha512-2aBumqc77kBC0gl0A+zGOv+en/pu2YUNYwEEpvq5TE2NOvSktWgUOR6Pk/5NDGtB8ugkxgdjAbgcOk/SRuxQJA== dependencies: - "@dhis2-ui/box" "8.13.11" - "@dhis2-ui/help" "8.13.11" - "@dhis2-ui/label" "8.13.11" + "@dhis2-ui/box" "8.13.15" + "@dhis2-ui/help" "8.13.15" + "@dhis2-ui/label" "8.13.15" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/file-input@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/file-input/-/file-input-8.13.11.tgz#f72f5d62bb46d25c2424fb9b68597f1b5671e2ac" - integrity sha512-t2Ls829VYLAvikXzZiPWXQFXg97UUXWP828acgGQYBZKF0wsIz1J9/77znOgV2iWCHTQsOzz3ca8OePT7/m/ug== +"@dhis2-ui/file-input@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/file-input/-/file-input-8.13.15.tgz#df974db2ea5cf072b63b4336c84eaa5f989dbcaa" + integrity sha512-il5j+6s+874XX/uS4teXQCrFjnmJgVg5RTViZ5toDUZRUpjx86zLKUcTDANfrxG3eUR+F4dkdsvccXFTkA1dTg== dependencies: - "@dhis2-ui/button" "8.13.11" - "@dhis2-ui/field" "8.13.11" - "@dhis2-ui/label" "8.13.11" - "@dhis2-ui/loader" "8.13.11" - "@dhis2-ui/status-icon" "8.13.11" + "@dhis2-ui/button" "8.13.15" + "@dhis2-ui/field" "8.13.15" + "@dhis2-ui/label" "8.13.15" + "@dhis2-ui/loader" "8.13.15" + "@dhis2-ui/status-icon" "8.13.15" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" - "@dhis2/ui-icons" "8.13.11" + "@dhis2/ui-constants" "8.13.15" + "@dhis2/ui-icons" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/header-bar@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/header-bar/-/header-bar-8.13.11.tgz#24173fe00870da9c9bf4db9c0120a80be7ef8e55" - integrity sha512-FpEcP2avPmudR2+BNbPCllOjphV0dSFTZwpcsZHZnlC1PChCiUj5ftzWymSuCbEeYpSA7gWBAIWKEPdtHMzeeQ== - dependencies: - "@dhis2-ui/box" "8.13.11" - "@dhis2-ui/button" "8.13.11" - "@dhis2-ui/card" "8.13.11" - "@dhis2-ui/center" "8.13.11" - "@dhis2-ui/divider" "8.13.11" - "@dhis2-ui/input" "8.13.11" - "@dhis2-ui/layer" "8.13.11" - "@dhis2-ui/loader" "8.13.11" - "@dhis2-ui/logo" "8.13.11" - "@dhis2-ui/menu" "8.13.11" - "@dhis2-ui/modal" "8.13.11" - "@dhis2-ui/user-avatar" "8.13.11" +"@dhis2-ui/header-bar@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/header-bar/-/header-bar-8.13.15.tgz#40d5c5fb0ba3ff5dce2870125ededa83cd3f1cc6" + integrity sha512-OjGKPU0ia+q53NM0hZMfnNkb8Sh/Ty4q/WcDw9qr0Yzow29G30Z4TH+B8le9SSvUBXBiZ8Q/Rv170JMON0Zygg== + dependencies: + "@dhis2-ui/box" "8.13.15" + "@dhis2-ui/button" "8.13.15" + "@dhis2-ui/card" "8.13.15" + "@dhis2-ui/center" "8.13.15" + "@dhis2-ui/divider" "8.13.15" + "@dhis2-ui/input" "8.13.15" + "@dhis2-ui/layer" "8.13.15" + "@dhis2-ui/loader" "8.13.15" + "@dhis2-ui/logo" "8.13.15" + "@dhis2-ui/menu" "8.13.15" + "@dhis2-ui/modal" "8.13.15" + "@dhis2-ui/user-avatar" "8.13.15" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" - "@dhis2/ui-icons" "8.13.11" + "@dhis2/ui-constants" "8.13.15" + "@dhis2/ui-icons" "8.13.15" classnames "^2.3.1" moment "^2.29.1" prop-types "^15.7.2" -"@dhis2-ui/help@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/help/-/help-8.13.11.tgz#1783e6ffa81574368e9b280e066eec413cb54e52" - integrity sha512-u3QMhrRXeSGHDekgs/F/I0DvZWy1355Xs/V3dn3nSr8UgOyKGhbQBeTGPtXM5DrlKBkxnq/C78nYjzyAKvDgFA== +"@dhis2-ui/help@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/help/-/help-8.13.15.tgz#a3c1adcc655afcc9f24cf13aa9f0597b24593810" + integrity sha512-7obQDeD0dZOyf+Sm808EZeTeCLIFndd0fdPD1vTmTOnevv+W2grT7dCwsFwZ2AsX+GLbzzd+10ikXE8da6OPPQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/input@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/input/-/input-8.13.11.tgz#7d34ff02aa4bae0260b23c9724b1607364b05873" - integrity sha512-iELgimNfKYO0ERzx+WELjL6uWT1AhI3IGSCiRo6XzDSxTS/ntbDfnfbXnXMcSitGlax0gDWE6DJ5qEflOOchaA== +"@dhis2-ui/input@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/input/-/input-8.13.15.tgz#cdeb7bf5b63814b4a571b843e580527868f57f32" + integrity sha512-8K4yqeZmYQpvNA+TRWtFwWWC4HbzgotxJ6FoXdUJ34LVHQZJNCaRC0L0B1lHLCnP41WHnY0uYcFovY0kl0G/vA== dependencies: - "@dhis2-ui/box" "8.13.11" - "@dhis2-ui/field" "8.13.11" - "@dhis2-ui/input" "8.13.11" - "@dhis2-ui/loader" "8.13.11" - "@dhis2-ui/status-icon" "8.13.11" + "@dhis2-ui/box" "8.13.15" + "@dhis2-ui/field" "8.13.15" + "@dhis2-ui/input" "8.13.15" + "@dhis2-ui/loader" "8.13.15" + "@dhis2-ui/status-icon" "8.13.15" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" - "@dhis2/ui-icons" "8.13.11" + "@dhis2/ui-constants" "8.13.15" + "@dhis2/ui-icons" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/intersection-detector@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/intersection-detector/-/intersection-detector-8.13.11.tgz#eacc3efa14ad21161454d357cce2da0a7cade85b" - integrity sha512-64Eel4Y4WDkTNiVe/ZEZfj51TtsDB7X/ribxNxYWNWN6kIKGObcf2NoPV2FdfRgAF3AWmQl78Oae8R4EgnknRQ== +"@dhis2-ui/intersection-detector@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/intersection-detector/-/intersection-detector-8.13.15.tgz#460389648c7cd95a45b881db7a4f997ca7fce045" + integrity sha512-M7gaWb50eu3LPoU6vd5CAz9uLDsyFmacr7RCUQO5FlBQ/cGU6Xvfd8+oaH5R7PqP/YSyNsPi4yP9cpXSlzU1Gw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/label@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/label/-/label-8.13.11.tgz#c7b7f6e71f63075962bac21190edcce88b9f0a51" - integrity sha512-B6ugpNqtzWhjL0DZ9XwvEa9f8C793sXoMKWE5xivrhsN6Iq/k0TgDrZhwI0iyKIavCnyzlIB3Qg22QxjWKHfDw== +"@dhis2-ui/label@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/label/-/label-8.13.15.tgz#6a5a42fce24f2d11507f58c3a4782d50ac2fe764" + integrity sha512-+lC8gJTxB81n0/83Nfs1KrgkR7SitdHb40nZh3/VgfRzWJzxESL/VMpA/dz1Y+7eZ8To/exRYvrfoHGI6qpvog== dependencies: - "@dhis2-ui/required" "8.13.11" + "@dhis2-ui/required" "8.13.15" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/layer@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/layer/-/layer-8.13.11.tgz#85f74c313cb8acb7b06775962e169ad2f9324fa5" - integrity sha512-j8u3s+ReKwOfSGn9Rq5wVfhuGVMWCMRa6pUrIfn8pSCbI1r1O73o3kL21G9H77qMG5gPS1QnAruJJER1Ew8n9Q== +"@dhis2-ui/layer@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/layer/-/layer-8.13.15.tgz#ab0f15ea5dea3666718faf08f0e812830ec536c4" + integrity sha512-OWlwvW1a4/SKdYCy+Dc7OkGT2Cc+6GHIHRDTQwNQdBGUAtosx/AmsmBv+sCPKl2CMaZQTwL7dRbN/80YOWdklA== dependencies: - "@dhis2-ui/portal" "8.13.11" + "@dhis2-ui/portal" "8.13.15" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/legend@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/legend/-/legend-8.13.11.tgz#d8f2e7c0b7611742299383074f78aa747c49d601" - integrity sha512-++BMaey6YhpYpM+Vb9RqRlmGriibzfpJT6eR1uF7LUQwqbphuhmA3fSRHqUpTgtGhuukRzfD7Rm6kZdgO4jBVw== +"@dhis2-ui/legend@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/legend/-/legend-8.13.15.tgz#0ba933eac4839d31b37083b4291e637c99a9188e" + integrity sha512-KE5+YBs+YUHmUB1EKfWa/yWc5WcICP3+RH1g9zqK+L6FmO+iH+pFHzF+grtaeOM7ZbrqvXGSamK+UbUYlcn5TA== dependencies: - "@dhis2-ui/required" "8.13.11" + "@dhis2-ui/required" "8.13.15" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/loader@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/loader/-/loader-8.13.11.tgz#3d3467a071362401a84c4552ebca1fcbc16d4a6a" - integrity sha512-nK2+FQTgkXzpjhA0pHMrVCxCcHQtxlyXmrdseeLqa1N5hlOhwWUAMlcDHWhEkVZPdSbsuVEJqNEW7uFHhrS+fg== +"@dhis2-ui/loader@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/loader/-/loader-8.13.15.tgz#726a3f7c43ec268d1ba4fa115e2ff45f4d983017" + integrity sha512-P/uMn84ME4NVlVNnHcCjbf6Gi042tuRHxAWoYf/R35rYoKnVCJTul4dKf1JCBNRJUpQtEuaT/EGk0G11iZIBog== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/logo@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/logo/-/logo-8.13.11.tgz#6d938ccf6498cdd635c49ee8d83697ed8e85bfb6" - integrity sha512-MU1llLOLsG4ysrHOj1a5DxfZsHCj+z3fyCox5KWZJ+73A/ke07qRqnLmEtjp/KKZ7kxDPFjZWLpkdg3JMQmnGg== +"@dhis2-ui/logo@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/logo/-/logo-8.13.15.tgz#c1c9fe8a6e0ed3055027202790d19e6234b01eee" + integrity sha512-dRW5doMz57kjn+CeHtRXy5eVjkHj2xFzU0CA4A+pfTb6mXlwDrC8C7ixpbwIcYky51AS02zKaygoGmODRZt9Ow== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/menu@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/menu/-/menu-8.13.11.tgz#1de3be9ef24d60ce1bc3af2dcf454bc35bbd026d" - integrity sha512-kcWuwKzvHp/SUp+T4yEGqiaAHQ/5hBBHIiUJCIMm8zHy1qfJmYh14oAz0i1M/hHB8VAhCPr7Jf7/m3voGnAJ6g== +"@dhis2-ui/menu@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/menu/-/menu-8.13.15.tgz#9193a0fc5cc2610ad5b9a68b97acd0f1f218be70" + integrity sha512-dzkRRRk2eogzHlJuR6JONd7NeVU1Ct1zmhlsHDqTHc8p1vO3/FYIF6SWBJErFTXmWSs9kYA4WnZHk/xiyKWFQA== dependencies: - "@dhis2-ui/card" "8.13.11" - "@dhis2-ui/divider" "8.13.11" - "@dhis2-ui/layer" "8.13.11" - "@dhis2-ui/popper" "8.13.11" - "@dhis2-ui/portal" "8.13.11" + "@dhis2-ui/card" "8.13.15" + "@dhis2-ui/divider" "8.13.15" + "@dhis2-ui/layer" "8.13.15" + "@dhis2-ui/popper" "8.13.15" + "@dhis2-ui/portal" "8.13.15" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" - "@dhis2/ui-icons" "8.13.11" + "@dhis2/ui-constants" "8.13.15" + "@dhis2/ui-icons" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/modal@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/modal/-/modal-8.13.11.tgz#43bf9c030d7334a778919e2a4face6783a494ffa" - integrity sha512-O/VBrnQdXNU1uRmV1Aq1aFLXSXe6zbbtq1N4DgwyHeuQxDqlXcPdA8ERXa88InysI2Al2VQ++QdLKicwVyQ0kA== +"@dhis2-ui/modal@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/modal/-/modal-8.13.15.tgz#d0865e7b60bc4baf2865133007d730f959592713" + integrity sha512-ptCxzIXnHv9AOcwW33XgmMqb072Z8ZishfjLzlZVhNdiFbwBmCvr+yu5zpTj0I0fISotz7fpAF38tWIsp9CPOA== dependencies: - "@dhis2-ui/card" "8.13.11" - "@dhis2-ui/center" "8.13.11" - "@dhis2-ui/layer" "8.13.11" - "@dhis2-ui/portal" "8.13.11" + "@dhis2-ui/card" "8.13.15" + "@dhis2-ui/center" "8.13.15" + "@dhis2-ui/layer" "8.13.15" + "@dhis2-ui/portal" "8.13.15" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" - "@dhis2/ui-icons" "8.13.11" + "@dhis2/ui-constants" "8.13.15" + "@dhis2/ui-icons" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/node@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/node/-/node-8.13.11.tgz#4c0b769fe7b6f87b89dce1b7aac852070679566e" - integrity sha512-KTPnrBTHLk24YArNQb6bvDZBphslwGxG/gFIAZEf+IWDRZI5JEDXlbIXxFNesUQB3KOc+Bl8s6Bq+2GKNerREw== +"@dhis2-ui/node@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/node/-/node-8.13.15.tgz#c0221389511bf571fc08f9b3c55963b37d65aac3" + integrity sha512-yG39zK1UEBnABqfrVL9dnoZWaqUY4WTnkfHOwxBI8k7DhTDmoFA/Otqlfu1ILgdnz/W1SLpxGhqRqa1pg4m4Gg== dependencies: - "@dhis2-ui/loader" "8.13.11" + "@dhis2-ui/loader" "8.13.15" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/notice-box@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/notice-box/-/notice-box-8.13.11.tgz#6e1271b25afbdc9f35571e5359a4e1444cbe676b" - integrity sha512-RIDVAJ9BjTTifpWHUaDLjn1zI7V92dNuDFhOJizXyUFduc7DbZ72/GZ9RmtzJXsLbO2+9J3IoklhP8CJseZbog== +"@dhis2-ui/notice-box@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/notice-box/-/notice-box-8.13.15.tgz#e53a8f4db842bae0966b8a562bafc685cf17af83" + integrity sha512-vY7vAwlRQMYZvNvByVRQqGTjTnMHbKPWWcNlAx23otZDIPJG4z+hxBV0dX+e6hKpZFjtW+5zAOMe4JgS8McrmA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" - "@dhis2/ui-icons" "8.13.11" + "@dhis2/ui-constants" "8.13.15" + "@dhis2/ui-icons" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/organisation-unit-tree@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/organisation-unit-tree/-/organisation-unit-tree-8.13.11.tgz#82721340ed3b52583b402d0460810ca1ce67fbff" - integrity sha512-RTTrQkWnpBR2+snPkSb8OFpE47U1ij/fX6hgRmebleY1ARWbkdeTUdDH3FsDIyEnHLyHkm14ds5Y1rHNRfPAJg== +"@dhis2-ui/organisation-unit-tree@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/organisation-unit-tree/-/organisation-unit-tree-8.13.15.tgz#b9750f10d945baca95b8cfb43684d3e1858f7b8a" + integrity sha512-jGPiSBqo9vtvIzKpRVMUeDpmqxmjz6vwEcMqLwyWTh8YxC5nGw20wwj33z6SW/5BoSIgbgQZxxH3B6NBUbO8fA== dependencies: - "@dhis2-ui/checkbox" "8.13.11" - "@dhis2-ui/loader" "8.13.11" - "@dhis2-ui/node" "8.13.11" + "@dhis2-ui/checkbox" "8.13.15" + "@dhis2-ui/loader" "8.13.15" + "@dhis2-ui/node" "8.13.15" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/pagination@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/pagination/-/pagination-8.13.11.tgz#dafe48a5a9104d453741e4265ddf2367cf94a880" - integrity sha512-mDNDQxJRbCuB5pLI3Dj5qjSU/4ZQEVJhkh8NAPoWpikJmP4eob4TB1zx0iFragdYNfHO0BLaTKZVvt2HBGpMZw== +"@dhis2-ui/pagination@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/pagination/-/pagination-8.13.15.tgz#ec73473380339ab646db0a5e336e5571e024f9ff" + integrity sha512-Kbixe3HFW168EiLkPu8hNe2CqnI+B6n0maVOeZJv90l0bW5FSXLHs669Fr6y2sTl0YVgwK94IoLOCJSWFldvIA== dependencies: - "@dhis2-ui/button" "8.13.11" - "@dhis2-ui/select" "8.13.11" + "@dhis2-ui/button" "8.13.15" + "@dhis2-ui/select" "8.13.15" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" - "@dhis2/ui-icons" "8.13.11" + "@dhis2/ui-constants" "8.13.15" + "@dhis2/ui-icons" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/popover@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/popover/-/popover-8.13.11.tgz#3bd2b2c97574a83582c6930976fd290e40e90361" - integrity sha512-Uw4JgxVckqOsJBoyyMLKuEcLZfbZ4f8jjW0ckPdlj8fN8vZOaSt6jzWUOViXItPf5k9NaTx8zVvuV8DevC54/A== +"@dhis2-ui/popover@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/popover/-/popover-8.13.15.tgz#41bb965b8fddd8b88349c9174ff7c63a392fab25" + integrity sha512-i32u23IAKkCi26Adcom8P8kMEP+EIw/rBcTYNHmPc1wrfVPnMfkVf+fFsVcoY7t1gcNFO88SiyJNffso7S1BPg== dependencies: - "@dhis2-ui/layer" "8.13.11" - "@dhis2-ui/popper" "8.13.11" + "@dhis2-ui/layer" "8.13.15" + "@dhis2-ui/popper" "8.13.15" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/popper@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/popper/-/popper-8.13.11.tgz#35c1b7efa10bd6cffd33e530931abdb1e93c2110" - integrity sha512-BpvFcpDo0W1uMSP4+FjO7TMHH/UhMhLjtStfOYrS0DaCvAg6QyVUSCMnoPru0gxy5nZTNxj5aP3vCMXgIAO4FQ== +"@dhis2-ui/popper@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/popper/-/popper-8.13.15.tgz#c4c29c16c92221716a8806791bc383b6209acee6" + integrity sha512-gOIDZzvfH8oA0Hf7V0HEi3Y99KRcDdmog/BqnsiqEV/EAV/VRHq5qk239bIqKATM1Ei7Xv7G0lEBXJIZqOeNVA== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" "@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@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/portal/-/portal-8.13.11.tgz#e1086e63fdeab2f208114e9a66accb7e2d3fafaf" - integrity sha512-d2cRvIJYuu2H+Tfc5p0Kr48JgsiKmKEud9n3Qaj31e3+cM8bVklgPInFaZOCChh4aKzwjrkzxsHc78yECIvoDw== +"@dhis2-ui/portal@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/portal/-/portal-8.13.15.tgz#701b0294d069239c7afefd1e1e211b9b80f72dc1" + integrity sha512-oqSbsOyznJwpdpAUiur5v24SOlThcWEbhnvniXSZzZy4thSJpcdF6OLMhgvVcjfO8kyAGgMbQjEx+hZ6cVpCFQ== dependencies: classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/radio@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/radio/-/radio-8.13.11.tgz#0ee99d5e8fe993fd20b55f7e87651e4c5cb1be78" - integrity sha512-GRsF3WjGvJG7m30WNew0iz0D0ysXTLyb5bOdgRM8c3KjB7i1W8iHPXm2jiGdyCJJZ9Fp+swqcLbDGtwFVPyWIA== +"@dhis2-ui/radio@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/radio/-/radio-8.13.15.tgz#4475abe33148bef6cd532888ee6077864674ebeb" + integrity sha512-k+ahM17CLIwquuN6XD9LCzkjPR+Zkvpcl8Cb8GzJNpovkhqdDJMvFezmBu7oxyABzVzNYILnuouqGsQwF6G4UQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/required@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/required/-/required-8.13.11.tgz#ac1b5a7e5054e7650dd5713b512d890877f585bf" - integrity sha512-m2I2Ja5r/hkQcH2F4SLdutq3nwIoopIuT0uUbNuIcIacSttwgZYw8Co9cFqtHog4j/lrloNeDG9Q72sM9e7/EQ== +"@dhis2-ui/required@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/required/-/required-8.13.15.tgz#bba0fda4f693ab9d53f0822b3ad0375ee6c217e7" + integrity sha512-Qlt84rdcsP4i0faaOvOcedP2dFbZp08ASh3ylNwSbLcP2R+aNv9mXQCR6U2mW2WjCMsgAfGzApdMFgYZJfI9QQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/segmented-control@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/segmented-control/-/segmented-control-8.13.11.tgz#139430dc94f2864d816b35feeae6c061422e953e" - integrity sha512-vU1p2ptJTkrT9tIpN/ClK+2iDDuPjb+N+vCHiPSF37nUzFhMCN9knpHbEvwrHYpxHvEajaQGqwGYrgzc6CilyA== +"@dhis2-ui/segmented-control@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/segmented-control/-/segmented-control-8.13.15.tgz#2ecbd81075ea81b974912bab05d9d23f15c12382" + integrity sha512-+oulCoUVDHkxV5WPjGwzpgN9qmIwVW1/9TbW6JvC87gbiywAWaN59dhIIRoBRqeBOy0Ll9DW2L3siBYfMY43vg== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/select@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/select/-/select-8.13.11.tgz#b72206e9b1821e9edb2efc6a5d941e6b9f98f4bb" - integrity sha512-gW4eB00TkY8GBWrzigvlUAe0bv8jSZ/ffpdqYgkkL7V/Exdr5Jn2iSsAVhf3gvjnBCDOBJE9lbgrXoh07CsNdA== - dependencies: - "@dhis2-ui/box" "8.13.11" - "@dhis2-ui/button" "8.13.11" - "@dhis2-ui/card" "8.13.11" - "@dhis2-ui/checkbox" "8.13.11" - "@dhis2-ui/chip" "8.13.11" - "@dhis2-ui/field" "8.13.11" - "@dhis2-ui/input" "8.13.11" - "@dhis2-ui/layer" "8.13.11" - "@dhis2-ui/loader" "8.13.11" - "@dhis2-ui/popper" "8.13.11" - "@dhis2-ui/status-icon" "8.13.11" +"@dhis2-ui/select@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/select/-/select-8.13.15.tgz#3125ddb871da60bb1cbdf663ec4109c579fba0fb" + integrity sha512-yVNCws1GUmbXCOBKx2ZdwC5OEVt3wLPOSUOswVrJA3/ZjE0/ji5Or193/u9dhvLgDBzTt/ZIhKVksa4sT/pGCg== + dependencies: + "@dhis2-ui/box" "8.13.15" + "@dhis2-ui/button" "8.13.15" + "@dhis2-ui/card" "8.13.15" + "@dhis2-ui/checkbox" "8.13.15" + "@dhis2-ui/chip" "8.13.15" + "@dhis2-ui/field" "8.13.15" + "@dhis2-ui/input" "8.13.15" + "@dhis2-ui/layer" "8.13.15" + "@dhis2-ui/loader" "8.13.15" + "@dhis2-ui/popper" "8.13.15" + "@dhis2-ui/status-icon" "8.13.15" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" - "@dhis2/ui-icons" "8.13.11" + "@dhis2/ui-constants" "8.13.15" + "@dhis2/ui-icons" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/selector-bar@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/selector-bar/-/selector-bar-8.13.11.tgz#48c707e1f16a000c3aa2c16b93d8f3916b02eca9" - integrity sha512-5+K2dv8gxd+GWKa5U+v/LNjgavX9v6spu/BUlqzce5luGf0ZPorxx0PWhOj9IdRPsk+fgugzddXevUkcVYrLBw== - dependencies: - "@dhis2-ui/button" "8.13.11" - "@dhis2-ui/card" "8.13.11" - "@dhis2-ui/layer" "8.13.11" - "@dhis2-ui/popper" "8.13.11" - "@dhis2/ui-constants" "8.13.11" - "@dhis2/ui-icons" "8.13.11" +"@dhis2-ui/selector-bar@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/selector-bar/-/selector-bar-8.13.15.tgz#96239ca8025b55999c6823c1a16ccfd95913ca46" + integrity sha512-QSNuy3nx3bh8LRvLnx+1ygovyB9kEcS965Gdfm4l3no2wVcD2GMBsQlhKGtoIgxEWSJKKQ15oGrybEsWWuMAAw== + dependencies: + "@dhis2-ui/button" "8.13.15" + "@dhis2-ui/card" "8.13.15" + "@dhis2-ui/layer" "8.13.15" + "@dhis2-ui/popper" "8.13.15" + "@dhis2/ui-constants" "8.13.15" + "@dhis2/ui-icons" "8.13.15" "@testing-library/react" "^12.1.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/sharing-dialog@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/sharing-dialog/-/sharing-dialog-8.13.11.tgz#ad8d65e5ec783cf0215a8efb3b16a6e9149e48fb" - integrity sha512-0yzWa4pSZrrAEZWqvwVqAnilru/d+gz7JgiM8ljNC1jTVqGKC5SnIQoNE8awup7W7K/9eJvHEj7IXDIZO1imEQ== - dependencies: - "@dhis2-ui/box" "8.13.11" - "@dhis2-ui/button" "8.13.11" - "@dhis2-ui/card" "8.13.11" - "@dhis2-ui/divider" "8.13.11" - "@dhis2-ui/input" "8.13.11" - "@dhis2-ui/layer" "8.13.11" - "@dhis2-ui/menu" "8.13.11" - "@dhis2-ui/modal" "8.13.11" - "@dhis2-ui/notice-box" "8.13.11" - "@dhis2-ui/popper" "8.13.11" - "@dhis2-ui/select" "8.13.11" - "@dhis2-ui/tab" "8.13.11" - "@dhis2-ui/tooltip" "8.13.11" - "@dhis2-ui/user-avatar" "8.13.11" +"@dhis2-ui/sharing-dialog@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/sharing-dialog/-/sharing-dialog-8.13.15.tgz#0dd96295d200e22f937e9bfab21b444a7680f3bd" + integrity sha512-IRA5xD3vNwASnEoNV10+j/YXy5s9LqxolDWI/GlCHPGnuYxdlCb4NdbwWSFdyuzBtB3XrrGN4/h3BVMRtCKXBA== + dependencies: + "@dhis2-ui/box" "8.13.15" + "@dhis2-ui/button" "8.13.15" + "@dhis2-ui/card" "8.13.15" + "@dhis2-ui/divider" "8.13.15" + "@dhis2-ui/input" "8.13.15" + "@dhis2-ui/layer" "8.13.15" + "@dhis2-ui/menu" "8.13.15" + "@dhis2-ui/modal" "8.13.15" + "@dhis2-ui/notice-box" "8.13.15" + "@dhis2-ui/popper" "8.13.15" + "@dhis2-ui/select" "8.13.15" + "@dhis2-ui/tab" "8.13.15" + "@dhis2-ui/tooltip" "8.13.15" + "@dhis2-ui/user-avatar" "8.13.15" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" - "@dhis2/ui-icons" "8.13.11" + "@dhis2/ui-constants" "8.13.15" + "@dhis2/ui-icons" "8.13.15" "@react-hook/size" "^2.1.2" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/status-icon@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/status-icon/-/status-icon-8.13.11.tgz#c5b877d51ccc0c4fb4c62081f98101a498ce23d3" - integrity sha512-qiV//TZAyiKQ4B+/Ac+8Ds5EX6Zyu3Q4+Ek7o/Dvw7OakY7BUR4sE6cE2Y7wj6szdZGarG1LvafFo4ljYqzP2Q== +"@dhis2-ui/status-icon@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/status-icon/-/status-icon-8.13.15.tgz#b97326cb30fab4f6c8913eabc06b9a1f19c7e670" + integrity sha512-+MBRhmaLA9b0bkXEr5eCwN8FFdGq5u3RWXanvAGXlZ0WT7xYUfnqFellJ7qkM/tQQEoBzwuK1nrMLt4YWCrEuw== dependencies: - "@dhis2-ui/loader" "8.13.11" + "@dhis2-ui/loader" "8.13.15" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" - "@dhis2/ui-icons" "8.13.11" + "@dhis2/ui-constants" "8.13.15" + "@dhis2/ui-icons" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/switch@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/switch/-/switch-8.13.11.tgz#a804d951549161adc98480d8a58e6ecdaf5bf592" - integrity sha512-kCguGy5u+jAgyiiizCEleYyPjzEegtxSfIpaa64V2dRTjv8fFoUKcsfAstVzUQ4/MpgNtu8PZ3++nkZ+g1mjcA== +"@dhis2-ui/switch@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/switch/-/switch-8.13.15.tgz#b064e8b1af0666756282da7ae59b40218e454ffb" + integrity sha512-E7o3SsNAN6OAt6zmizIfq1Uh4o0GPnwkK4l65JR32/4aMu6oC8omZFBtigmx26bo2P3AS0iIzar0gXwz4LIdyA== dependencies: - "@dhis2-ui/field" "8.13.11" - "@dhis2-ui/required" "8.13.11" + "@dhis2-ui/field" "8.13.15" + "@dhis2-ui/required" "8.13.15" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/tab@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/tab/-/tab-8.13.11.tgz#44d06ed28581f4c0f78c3d7320bd0d71fc775bf7" - integrity sha512-H+omNuMu3E2MU+X6/rPvcFe/xrV3YoJjs/kAlrvOdOD4S21hCqzFzIP8wOJ6BGfCma/zcCWXVVv3cUQVMVZTtA== +"@dhis2-ui/tab@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tab/-/tab-8.13.15.tgz#a076b19761d327d481a25fc33d13be8996889b93" + integrity sha512-ak/OVhhHjnBAGPNuEl8Bekh/i7zroeP6BvkHMljpdDpbUN5Ex6+bgnwMpCEZ4qtwwTlZykbIsYelXDlRIGn7rQ== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" - "@dhis2/ui-icons" "8.13.11" + "@dhis2/ui-constants" "8.13.15" + "@dhis2/ui-icons" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/table@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/table/-/table-8.13.11.tgz#ea83b707e3cea8a71929360e540b8c92243b393c" - integrity sha512-d6CopZZETAC/wsTyS6Er0SgT8aM+WUj8ROtgwmYohw4T6MOgGVhzkRSII/BTupZmeieM53rVKyjW1VY4P8VObA== +"@dhis2-ui/table@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/table/-/table-8.13.15.tgz#b71680bef5209a4d30c47edb07edcb4a1e9def15" + integrity sha512-tJVQAA1pwji9AjyFr6oKWRzU01Vp/Lbk/5CQnrCqU9kh+uLIoyAfeyjF0kWGCB2uE37WrR5gC6/zOlSow3QqXw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" - "@dhis2/ui-icons" "8.13.11" + "@dhis2/ui-constants" "8.13.15" + "@dhis2/ui-icons" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/tag@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/tag/-/tag-8.13.11.tgz#cf6425e27ac316a6d1d542ca0ea9d5886c075699" - integrity sha512-tTiS0A47B152ptj3Pt+7DQAkFxJN8NbTp4dkHA4JDKCGqybX5HEnb8ygFqtfyng06OC8vFJLOj0dsDxq7eBVQA== +"@dhis2-ui/tag@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tag/-/tag-8.13.15.tgz#cd6ccdb55bfba2ff102ae0cca0ae4fb1a9aea0b9" + integrity sha512-KzQYvRWEwOt2jkiv98tdyIH4Ibv2iUtoGo2Dik9Y0LAWRrPW5N8+x+/7Lr6G0ggBL10AhVrKOqA0PVxLYbFjMw== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/text-area@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/text-area/-/text-area-8.13.11.tgz#7cc4241fe8e73ec90897c0cdf5663661bb02eb14" - integrity sha512-7mp3z5gXoNcJsKSJl7Y3yT3POL4gUeWK/FkvoSGEv5OhRE2H9CxncJyALzLe0Sol2/ggKOsgy1avOY5Nmj9BwQ== +"@dhis2-ui/text-area@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/text-area/-/text-area-8.13.15.tgz#48d21eb7093fae2a2a6667f28c996ddd83251d54" + integrity sha512-djZt2OQH1CBaTPOg4iAgllNLYfbcvMuSQ9AR/hr1mf3/85e9ZLc12enXN0AaVkSQopemHvH/KcgNhA8ogEGWhQ== dependencies: - "@dhis2-ui/box" "8.13.11" - "@dhis2-ui/field" "8.13.11" - "@dhis2-ui/loader" "8.13.11" - "@dhis2-ui/status-icon" "8.13.11" + "@dhis2-ui/box" "8.13.15" + "@dhis2-ui/field" "8.13.15" + "@dhis2-ui/loader" "8.13.15" + "@dhis2-ui/status-icon" "8.13.15" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" - "@dhis2/ui-icons" "8.13.11" + "@dhis2/ui-constants" "8.13.15" + "@dhis2/ui-icons" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/tooltip@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/tooltip/-/tooltip-8.13.11.tgz#12ea4ebf67ecdff4990cc8de1963eb3bfe587333" - integrity sha512-0fzMeDPGpsWdgTtnD0jPKV/d4tmzG4pTJUIgQLVD6lms35lPrKeL3rfBtx3+hQqS2yVRMjTmev3PZH6kJ9dEJQ== +"@dhis2-ui/tooltip@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tooltip/-/tooltip-8.13.15.tgz#22acbbf785c51fd9a924621ae9c50f7a58fa88a5" + integrity sha512-6igahGDmonAJJIqmQsm93UCb/mn2Qvivk8NWk6SFDTRVFj6g2I/5ugK5oEn0BQcbIC98bddIj+rBKO2Gzj7oPA== dependencies: - "@dhis2-ui/popper" "8.13.11" - "@dhis2-ui/portal" "8.13.11" + "@dhis2-ui/popper" "8.13.15" + "@dhis2-ui/portal" "8.13.15" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/transfer@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/transfer/-/transfer-8.13.11.tgz#c1f4df94d29bcbd8ac8ef939ecf0c878db4fe986" - integrity sha512-i2PidKhj7TbyGjJBqOxA8IUNRvYYSvgXBMYyInxXfle0Wd7y66j6o19UqZyoGQj47+yxKbZcTLghMbd3IHjdTw== +"@dhis2-ui/transfer@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/transfer/-/transfer-8.13.15.tgz#de7199c68664821c3653a0e123e9bc9cd22ec745" + integrity sha512-blcrk8S3YXwVwlPS7UUkdVq6eg48j4Uqi/nir3t2HbfcnJDl3EjQW22xv/nSHcvDi5rzZ6cflVHWLzp4lJdObg== dependencies: - "@dhis2-ui/button" "8.13.11" - "@dhis2-ui/field" "8.13.11" - "@dhis2-ui/input" "8.13.11" - "@dhis2-ui/intersection-detector" "8.13.11" - "@dhis2-ui/loader" "8.13.11" + "@dhis2-ui/button" "8.13.15" + "@dhis2-ui/field" "8.13.15" + "@dhis2-ui/input" "8.13.15" + "@dhis2-ui/intersection-detector" "8.13.15" + "@dhis2-ui/loader" "8.13.15" "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/user-avatar@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2-ui/user-avatar/-/user-avatar-8.13.11.tgz#8da2e4a9d8206cad612cf6eeeede1d3473621c30" - integrity sha512-NFzoOI+hZPC9mdUVhn4B/8cA7Lx31Y8RiQ8OduCP4yqApn+UAP9cLob7z+AbBEAreDQ5CmMtNup3mHtmAJJFeQ== +"@dhis2-ui/user-avatar@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2-ui/user-avatar/-/user-avatar-8.13.15.tgz#619150face6561ecd679385a9fdd099d53a6b86e" + integrity sha512-wo6hYzTYY3rTtwiR1iSGunk02h5rvMfWok5HfCrvV4Dy+aSiegygS1ZQ806Dttmq4s03sVvMuZUX15v7GIfE4w== dependencies: "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "8.13.11" + "@dhis2/ui-constants" "8.13.15" classnames "^2.3.1" prop-types "^15.7.2" @@ -2790,7 +2083,7 @@ "@dhis2/pwa" "9.0.1" moment "^2.24.0" -"@dhis2/app-runtime@^3.2.3", "@dhis2/app-runtime@^3.8.0": +"@dhis2/app-runtime@^3.2.3", "@dhis2/app-runtime@^3.9.3": version "3.9.4" resolved "https://registry.yarnpkg.com/@dhis2/app-runtime/-/app-runtime-3.9.4.tgz#88243dbb9a4a805be744a61cffd13a4c3d2d031d" integrity sha512-CBwMXer5/Kcxf6MgfwPgpEaUSXbDXzwItCkH3i0nsjmkD0KIaEOZ6Y1pQL+/5RYnziZ5glYCFWsCKn0eCJrdJg== @@ -3061,91 +2354,91 @@ workbox-routing "^6.1.5" workbox-strategies "^6.1.5" -"@dhis2/ui-constants@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2/ui-constants/-/ui-constants-8.13.11.tgz#0a486c5ce7adff75633a9c7d75e5c47db9428ace" - integrity sha512-R6M++JeAnqetTBkFyly/of4KlaNq35DLjbxChOOFiWuY0ErBU83RaoUx+ZyaSM7UtWsUFfMuWDLIWef1OU9BBQ== +"@dhis2/ui-constants@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2/ui-constants/-/ui-constants-8.13.15.tgz#e1124e79f077aed6b3a9703b8a257701ec68717b" + integrity sha512-XrwKXNM0Xiv7O3E9vAukOJv8sD1QD9ruLOUS66+fs4pBLd0L+W6Gjr7LYG1B19rANXAShmfR+dqgD/pLVLAqsw== dependencies: prop-types "^15.7.2" -"@dhis2/ui-forms@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2/ui-forms/-/ui-forms-8.13.11.tgz#5dab105a3e4a0ad0110633c647942ad2b08a3858" - integrity sha512-VFy0gMNWogPfWiwAnY2hBG6vvJkpx6/BVKWxzsbRNLGn+7ZZPcmU4GtGWfue9oxBrwWXtT8PU4iGcJfAj/HsqQ== - dependencies: - "@dhis2-ui/button" "8.13.11" - "@dhis2-ui/checkbox" "8.13.11" - "@dhis2-ui/field" "8.13.11" - "@dhis2-ui/file-input" "8.13.11" - "@dhis2-ui/input" "8.13.11" - "@dhis2-ui/radio" "8.13.11" - "@dhis2-ui/select" "8.13.11" - "@dhis2-ui/switch" "8.13.11" - "@dhis2-ui/text-area" "8.13.11" +"@dhis2/ui-forms@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2/ui-forms/-/ui-forms-8.13.15.tgz#5098893acada5fb06d263ce271f556fc1bae1acf" + integrity sha512-+skh3quuARmzVlVJUYnN8EM5Dz9OLOsnh/GpCMXyiO4yjhajpbQ0QtMh/dFyQhCB3LzywDVaoge+kwJyrIS82Q== + dependencies: + "@dhis2-ui/button" "8.13.15" + "@dhis2-ui/checkbox" "8.13.15" + "@dhis2-ui/field" "8.13.15" + "@dhis2-ui/file-input" "8.13.15" + "@dhis2-ui/input" "8.13.15" + "@dhis2-ui/radio" "8.13.15" + "@dhis2-ui/select" "8.13.15" + "@dhis2-ui/switch" "8.13.15" + "@dhis2-ui/text-area" "8.13.15" "@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@8.13.11": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2/ui-icons/-/ui-icons-8.13.11.tgz#7dc89bf3a84c0b452b9f2f365d039ae1338a4ed5" - integrity sha512-+wZZOB9lq1hpTj4IxoEV+vFij0Pho4T7NijEBdm6pd8+O24D8Tnkpb8fv8ZsDdkOob2X1WXM7ruswkku0kxZRg== - -"@dhis2/ui@^8.0.0", "@dhis2/ui@^8.7.7": - version "8.13.11" - resolved "https://registry.yarnpkg.com/@dhis2/ui/-/ui-8.13.11.tgz#5702c5258676f5aba266783e4a21aaeb0c88333e" - integrity sha512-G4tfKDN/m3/VqyirViCkGgRSCQ3yFtSIrMwY8AjQesoGzBidXNEIITXdhUkpmJH9Lp/sTHFfk/G7vNVdWWLqKg== - dependencies: - "@dhis2-ui/alert" "8.13.11" - "@dhis2-ui/box" "8.13.11" - "@dhis2-ui/button" "8.13.11" - "@dhis2-ui/calendar" "8.13.11" - "@dhis2-ui/card" "8.13.11" - "@dhis2-ui/center" "8.13.11" - "@dhis2-ui/checkbox" "8.13.11" - "@dhis2-ui/chip" "8.13.11" - "@dhis2-ui/cover" "8.13.11" - "@dhis2-ui/css" "8.13.11" - "@dhis2-ui/divider" "8.13.11" - "@dhis2-ui/field" "8.13.11" - "@dhis2-ui/file-input" "8.13.11" - "@dhis2-ui/header-bar" "8.13.11" - "@dhis2-ui/help" "8.13.11" - "@dhis2-ui/input" "8.13.11" - "@dhis2-ui/intersection-detector" "8.13.11" - "@dhis2-ui/label" "8.13.11" - "@dhis2-ui/layer" "8.13.11" - "@dhis2-ui/legend" "8.13.11" - "@dhis2-ui/loader" "8.13.11" - "@dhis2-ui/logo" "8.13.11" - "@dhis2-ui/menu" "8.13.11" - "@dhis2-ui/modal" "8.13.11" - "@dhis2-ui/node" "8.13.11" - "@dhis2-ui/notice-box" "8.13.11" - "@dhis2-ui/organisation-unit-tree" "8.13.11" - "@dhis2-ui/pagination" "8.13.11" - "@dhis2-ui/popover" "8.13.11" - "@dhis2-ui/popper" "8.13.11" - "@dhis2-ui/portal" "8.13.11" - "@dhis2-ui/radio" "8.13.11" - "@dhis2-ui/required" "8.13.11" - "@dhis2-ui/segmented-control" "8.13.11" - "@dhis2-ui/select" "8.13.11" - "@dhis2-ui/selector-bar" "8.13.11" - "@dhis2-ui/sharing-dialog" "8.13.11" - "@dhis2-ui/switch" "8.13.11" - "@dhis2-ui/tab" "8.13.11" - "@dhis2-ui/table" "8.13.11" - "@dhis2-ui/tag" "8.13.11" - "@dhis2-ui/text-area" "8.13.11" - "@dhis2-ui/tooltip" "8.13.11" - "@dhis2-ui/transfer" "8.13.11" - "@dhis2-ui/user-avatar" "8.13.11" - "@dhis2/ui-constants" "8.13.11" - "@dhis2/ui-forms" "8.13.11" - "@dhis2/ui-icons" "8.13.11" +"@dhis2/ui-icons@8.13.15": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2/ui-icons/-/ui-icons-8.13.15.tgz#eb83784975d9686058ce71377928a0d4f726b517" + integrity sha512-d4A7oPgT6HKZgQDGaY8mX04EvQrnDmOv/L9n52JtnmEcPrPTqqhmCqdr/CQ8B/NP91nhFACDFBQ4ez4/YJVYKw== + +"@dhis2/ui@^8.0.0", "@dhis2/ui@^8.13.8": + version "8.13.15" + resolved "https://registry.yarnpkg.com/@dhis2/ui/-/ui-8.13.15.tgz#d270dd9d1fcbc76f015adea97b033d4ca0fe95f4" + integrity sha512-bHg2CtXq8IRE86sDwlty3I5v8SrYmi2z469ugbEgrvNoVfgXxKeQZXzLMKxednt/sGDnSbveAduiq/QUMuKyQA== + dependencies: + "@dhis2-ui/alert" "8.13.15" + "@dhis2-ui/box" "8.13.15" + "@dhis2-ui/button" "8.13.15" + "@dhis2-ui/calendar" "8.13.15" + "@dhis2-ui/card" "8.13.15" + "@dhis2-ui/center" "8.13.15" + "@dhis2-ui/checkbox" "8.13.15" + "@dhis2-ui/chip" "8.13.15" + "@dhis2-ui/cover" "8.13.15" + "@dhis2-ui/css" "8.13.15" + "@dhis2-ui/divider" "8.13.15" + "@dhis2-ui/field" "8.13.15" + "@dhis2-ui/file-input" "8.13.15" + "@dhis2-ui/header-bar" "8.13.15" + "@dhis2-ui/help" "8.13.15" + "@dhis2-ui/input" "8.13.15" + "@dhis2-ui/intersection-detector" "8.13.15" + "@dhis2-ui/label" "8.13.15" + "@dhis2-ui/layer" "8.13.15" + "@dhis2-ui/legend" "8.13.15" + "@dhis2-ui/loader" "8.13.15" + "@dhis2-ui/logo" "8.13.15" + "@dhis2-ui/menu" "8.13.15" + "@dhis2-ui/modal" "8.13.15" + "@dhis2-ui/node" "8.13.15" + "@dhis2-ui/notice-box" "8.13.15" + "@dhis2-ui/organisation-unit-tree" "8.13.15" + "@dhis2-ui/pagination" "8.13.15" + "@dhis2-ui/popover" "8.13.15" + "@dhis2-ui/popper" "8.13.15" + "@dhis2-ui/portal" "8.13.15" + "@dhis2-ui/radio" "8.13.15" + "@dhis2-ui/required" "8.13.15" + "@dhis2-ui/segmented-control" "8.13.15" + "@dhis2-ui/select" "8.13.15" + "@dhis2-ui/selector-bar" "8.13.15" + "@dhis2-ui/sharing-dialog" "8.13.15" + "@dhis2-ui/switch" "8.13.15" + "@dhis2-ui/tab" "8.13.15" + "@dhis2-ui/table" "8.13.15" + "@dhis2-ui/tag" "8.13.15" + "@dhis2-ui/text-area" "8.13.15" + "@dhis2-ui/tooltip" "8.13.15" + "@dhis2-ui/transfer" "8.13.15" + "@dhis2-ui/user-avatar" "8.13.15" + "@dhis2/ui-constants" "8.13.15" + "@dhis2/ui-forms" "8.13.15" + "@dhis2/ui-icons" "8.13.15" prop-types "^15.7.2" "@emotion/is-prop-valid@^0.7.3": @@ -3634,14 +2927,6 @@ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -"@jridgewell/source-map@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" - integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - "@jridgewell/source-map@^0.3.3": version "0.3.3" resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.3.tgz#8108265659d4c33e72ffe14e33d6cc5eb59f2fda" @@ -4119,18 +3404,7 @@ resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.1.tgz#3286741fb8f1e1580ac28784add4c7a1d49bdfbc" integrity sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q== -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.0.tgz#61bc5a4cae505ce98e1e36c5445e4bee060d8891" - integrity sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ== - dependencies: - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__core@^7.1.7": +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14", "@types/babel__core@^7.1.7": version "7.20.1" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.1.tgz#916ecea274b0c776fec721e333e55762d3a9614b" integrity sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw== @@ -4249,12 +3523,7 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== - -"@types/json-schema@^7.0.3": +"@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8": version "7.0.12" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== @@ -4320,16 +3589,11 @@ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== -"@types/prettier@^2.0.0": +"@types/prettier@^2.0.0", "@types/prettier@^2.1.5": version "2.7.3" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== -"@types/prettier@^2.1.5": - version "2.7.2" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.2.tgz#6c2324641cc4ba050a8c710b2b251b377581fbf0" - integrity sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg== - "@types/prop-types@*": version "15.7.5" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" @@ -5017,12 +4281,7 @@ acorn@^7.0.0, acorn@^7.1.0, acorn@^7.1.1, acorn@^7.4.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.2.4, acorn@^8.5.0, acorn@^8.7.1: - version "8.8.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== - -acorn@^8.8.2: +acorn@^8.2.4, acorn@^8.7.1, acorn@^8.8.2: version "8.9.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.9.0.tgz#78a16e3b2bcc198c10822786fa6679e245db5b59" integrity sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ== @@ -6416,17 +5675,7 @@ browserslist@4.14.2: escalade "^3.0.2" node-releases "^1.1.61" -browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.21.3, browserslist@^4.21.5: - version "4.21.5" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" - integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== - dependencies: - caniuse-lite "^1.0.30001449" - electron-to-chromium "^1.4.284" - node-releases "^2.0.8" - update-browserslist-db "^1.0.10" - -browserslist@^4.12.0, browserslist@^4.6.2, browserslist@^4.6.4: +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.21.3, browserslist@^4.21.5, browserslist@^4.6.2, browserslist@^4.6.4: version "4.21.9" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635" integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg== @@ -6675,12 +5924,7 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001449: - version "1.0.30001474" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001474.tgz#13b6fe301a831fe666cce8ca4ef89352334133d5" - integrity sha512-iaIZ8gVrWfemh5DG3T9/YqarVZoYf0r188IjaGwx68j4Pf0SGY6CQkmJUIE+NZHkkecQGohzXmBGEwWDr9aM3Q== - -caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001503: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001503: version "1.0.30001508" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001508.tgz#4461bbc895c692a96da399639cc1e146e7302a33" integrity sha512-sdQZOJdmt3GJs1UMNpCCCyeuS2IEGLXnHyAo9yIO5JJDjbjoVRij4M1qep6P6gFpptD1PqIYgzM+gwJbOi92mw== @@ -7418,14 +6662,7 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== -core-js-compat@^3.25.1: - version "3.30.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.30.0.tgz#99aa2789f6ed2debfa1df3232784126ee97f4d80" - integrity sha512-P5A2h/9mRYZFIAP+5Ab8ns6083IyVpSclU74UNvbGVQ8VM7n3n3/g2yF3AkKQ9NXz2O+ioxLbEWKnDtgsFamhg== - dependencies: - browserslist "^4.21.5" - -core-js-compat@^3.30.1, core-js-compat@^3.30.2: +core-js-compat@^3.25.1, core-js-compat@^3.30.1, core-js-compat@^3.30.2: version "3.31.0" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.31.0.tgz#4030847c0766cc0e803dcdfb30055d7ef2064bf1" integrity sha512-hM7YCu1cU6Opx7MXNu0NuumM0ezNeAeRKadixyiQELWY3vT3De9S4J5ZBMraWV2vZnrE1Cirl0GtFtDtMUXzPw== @@ -8753,11 +7990,6 @@ electron-to-chromium@^1.3.564, electron-to-chromium@^1.4.431: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.441.tgz#94dd9c1cbf081d83f032a4f1cd9f787e21fc24ce" integrity sha512-LlCgQ8zgYZPymf5H4aE9itwiIWH4YlCiv1HFLmmcBeFYi5E+3eaIFnjHzYtcFQbaKfAW+CqZ9pgxo33DZuoqPg== -electron-to-chromium@^1.4.284: - version "1.4.352" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.352.tgz#be96bd7c2f4b980deebc9338a49a67430a33ed73" - integrity sha512-ikFUEyu5/q+wJpMOxWxTaEVk2M1qKqTGKKyfJmod1CPZxKfYnxVS41/GCBQg21ItBpZybyN8sNpRqCUGm+Zc4Q== - elliptic@^6.5.3: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" @@ -11543,20 +10775,13 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" -is-core-module@^2.0.0: +is-core-module@^2.0.0, is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-module@^2.7.0, is-core-module@^2.8.0, is-core-module@^2.9.0: version "2.12.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== dependencies: has "^1.0.3" -is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-module@^2.7.0, is-core-module@^2.8.0, is-core-module@^2.9.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" - integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== - dependencies: - has "^1.0.3" - is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -14666,11 +13891,6 @@ node-releases@^2.0.12: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039" integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ== -node-releases@^2.0.8: - version "2.0.10" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" - integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== - normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -14850,7 +14070,7 @@ object.fromentries@^2.0.5, object.fromentries@^2.0.6: define-properties "^1.1.4" es-abstract "^1.20.4" -object.getownpropertydescriptors@^2.0.3: +object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: version "2.1.6" resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz#5e5c384dd209fa4efffead39e3a0512770ccc312" integrity sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ== @@ -14861,16 +14081,6 @@ object.getownpropertydescriptors@^2.0.3: es-abstract "^1.21.2" safe-array-concat "^1.0.0" -object.getownpropertydescriptors@^2.1.0: - version "2.1.5" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz#db5a9002489b64eef903df81d6623c07e5b4b4d3" - integrity sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw== - dependencies: - array.prototype.reduce "^1.0.5" - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - object.hasown@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" @@ -16070,7 +15280,7 @@ postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: indexes-of "^1.0.1" uniq "^1.0.1" -postcss-selector-parser@^6.0.0: +postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: version "6.0.13" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== @@ -16078,14 +15288,6 @@ postcss-selector-parser@^6.0.0: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-selector-parser@^6.0.2: - version "6.0.11" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc" - integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - postcss-svgo@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" @@ -17150,7 +16352,7 @@ regex-parser@^2.2.11: resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58" integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== -regexp.prototype.flags@^1.2.0: +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.3: version "1.5.0" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== @@ -17159,15 +16361,6 @@ regexp.prototype.flags@^1.2.0: define-properties "^1.2.0" functions-have-names "^1.2.3" -regexp.prototype.flags@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" - integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" - regexpp@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" @@ -17433,16 +16626,7 @@ resolve@1.18.1: is-core-module "^2.0.0" path-parse "^1.0.6" -resolve@^1.1.4, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.3.3, resolve@^1.4.0: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^1.18.1, resolve@^1.3.2: +resolve@^1.1.4, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.3.2, resolve@^1.3.3, resolve@^1.4.0: version "1.22.2" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== @@ -18988,17 +18172,7 @@ terser@^4.1.2, terser@^4.6.2, terser@^4.6.3: source-map "~0.6.1" source-map-support "~0.5.12" -terser@^5.0.0, terser@^5.16.5: - version "5.16.8" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.8.tgz#ccde583dabe71df3f4ed02b65eb6532e0fae15d5" - integrity sha512-QI5g1E/ef7d+PsDifb+a6nnVgC4F22Bg6T0xrBrz6iloVB4PUkkunp6V8nzoOOZJIzjWVdAGqCdlKlhLq/TbIA== - dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" - commander "^2.20.0" - source-map-support "~0.5.20" - -terser@^5.3.4: +terser@^5.0.0, terser@^5.16.5, terser@^5.3.4: version "5.18.1" resolved "https://registry.yarnpkg.com/terser/-/terser-5.18.1.tgz#6d8642508ae9fb7b48768e48f16d675c89a78460" integrity sha512-j1n0Ao919h/Ai5r43VAnfV/7azUYW43GPxK7qSATzrsERfW7+y2QW9Cp9ufnRF5CQUWbnLSo7UJokSWCqg4tsQ== @@ -19665,14 +18839,6 @@ upath@^1.1.1, upath@^1.1.2, upath@^1.2.0: resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-browserslist-db@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" - integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - update-browserslist-db@^1.0.11: version "1.0.11" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" @@ -20031,8 +19197,10 @@ watchpack@^1.7.4: resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== dependencies: + chokidar "^3.4.1" graceful-fs "^4.1.2" neo-async "^2.5.0" + watchpack-chokidar2 "^2.0.1" optionalDependencies: chokidar "^3.4.1" watchpack-chokidar2 "^2.0.1" From 9dd1b6a046e94021ae4e63a67a3d6b16a099212d Mon Sep 17 00:00:00 2001 From: Tony Valle <79843014+superskip@users.noreply.github.com> Date: Wed, 6 Sep 2023 10:59:37 +0200 Subject: [PATCH 10/49] feat: [DHIS2-14334] edit enrollment date (#3350) --- .../WidgetEnrollment/index.js | 12 +- i18n/en.pot | 3 + package.json | 1 + .../Enrollment/EnrollmentPage.actions.js | 4 + .../EnrollmentPageDefault.component.js | 4 + .../EnrollmentPageDefault.container.js | 20 ++- .../EnrollmentPageDefault.types.js | 2 + ...EnrollmentAddEventPageDefault.component.js | 1 + .../EnrollmentEditEventPage.component.js | 1 + .../enrollment.actions.js | 12 ++ .../common/EnrollmentOverviewDomain/index.js | 2 + .../Actions/Actions.container.js | 8 +- .../WidgetEnrollment/Date/Date.component.js | 151 ++++++++++++++++++ .../components/WidgetEnrollment/Date/index.js | 2 + .../WidgetEnrollment.component.js | 52 +++--- .../WidgetEnrollment.container.js | 33 +++- .../WidgetEnrollment/enrollment.types.js | 9 +- .../WidgetEnrollment/hooks/useEnrollment.js | 49 +++++- .../WidgetEnrollment/hooks/useProgram.js | 2 +- .../hooks/useUpdateEnrollment.js | 42 +++++ .../WidgetEnrollment/processErrorReports.js | 8 + .../enrollmentDomain.reducerDescription.js | 16 ++ .../enrollmentPage.reducerDescription.js | 11 ++ yarn.lock | 2 +- 24 files changed, 400 insertions(+), 47 deletions(-) create mode 100644 src/core_modules/capture-core/components/WidgetEnrollment/Date/Date.component.js create mode 100644 src/core_modules/capture-core/components/WidgetEnrollment/Date/index.js create mode 100644 src/core_modules/capture-core/components/WidgetEnrollment/hooks/useUpdateEnrollment.js create mode 100644 src/core_modules/capture-core/components/WidgetEnrollment/processErrorReports.js diff --git a/cypress/integration/WidgetsForEnrollmentPages/WidgetEnrollment/index.js b/cypress/integration/WidgetsForEnrollmentPages/WidgetEnrollment/index.js index 26146624d7..4584e1ba2a 100644 --- a/cypress/integration/WidgetsForEnrollmentPages/WidgetEnrollment/index.js +++ b/cypress/integration/WidgetsForEnrollmentPages/WidgetEnrollment/index.js @@ -19,18 +19,18 @@ Then('the enrollment widget should be opened', () => { }); Then('the user sees the enrollment date', () => { - cy.get('[data-test="widget-enrollment"]').within(() => { + cy.get('[data-test="widget-enrollment-enrollment-date"]').within(() => { cy.get('[data-test="widget-enrollment-icon-calendar"]').should('exist'); - cy.get('[data-test="widget-enrollment-enrollment-date"]') - .contains(`Date of enrollment ${getCurrentYear()}-08-01`) + cy.get('[data-test="widget-enrollment-date"]') + .contains(`Date of enrollment: ${getCurrentYear()}-08-01`) .should('exist'); }); }); Then('the user sees the incident date', () => { - cy.get('[data-test="widget-enrollment"]').within(() => { - cy.get('[data-test="widget-enrollment-incident-date"]') - .contains(`Date of birth ${getCurrentYear()}-08-01`) + cy.get('[data-test="widget-enrollment-incident-date"]').within(() => { + cy.get('[data-test="widget-enrollment-date"]') + .contains(`Date of birth: ${getCurrentYear()}-08-01`) .should('exist'); }); }); diff --git a/i18n/en.pot b/i18n/en.pot index 52dcc1b13e..9674ac525a 100644 --- a/i18n/en.pot +++ b/i18n/en.pot @@ -1158,6 +1158,9 @@ msgstr "Remove mark for follow-up" msgid "Mark for follow-up" msgstr "Mark for follow-up" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "Existing dates for auto-generated events will not be updated." + msgid "Enrollment date" msgstr "Enrollment date" diff --git a/package.json b/package.json index 6f9a6db16c..b2ed536c77 100644 --- a/package.json +++ b/package.json @@ -131,6 +131,7 @@ }, "resolutions": { "@babel/preset-react": "7.16.7", + "@js-temporal/polyfill": "0.4.3", "core-js": "2.5.7" }, "browserslist": { diff --git a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPage.actions.js b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPage.actions.js index a1f8c3250a..5f29c4daac 100644 --- a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPage.actions.js +++ b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPage.actions.js @@ -22,6 +22,7 @@ export const enrollmentPageActionTypes = { DELETE_ENROLLMENT: 'EnrollmentPage.DeleteEnrollment', UPDATE_TEI_DISPLAY_NAME: 'EnrollmentPage.UpdateTeiDisplayName', + UPDATE_ENROLLMENT_DATE: 'EnrollmentPage.UpdateEnrollmentDate', }; export const fetchEnrollmentPageInformation = () => @@ -73,3 +74,6 @@ export const updateTeiDisplayName = (teiDisplayName: string) => actionCreator(enrollmentPageActionTypes.UPDATE_TEI_DISPLAY_NAME)({ teiDisplayName, }); + +export const updateEnrollmentDate = ({ enrollmentId, enrollmentDate }: { enrollmentId: string, enrollmentDate: string }) => + actionCreator(enrollmentPageActionTypes.UPDATE_ENROLLMENT_DATE)({ enrollmentId, enrollmentDate }); diff --git a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.component.js b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.component.js index d2b5b6f091..dac5ca2c8a 100644 --- a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.component.js +++ b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.component.js @@ -60,6 +60,8 @@ export const EnrollmentPageDefaultPlain = ({ classes, onEventClick, onUpdateTeiAttributeValues, + onUpdateEnrollmentDate, + onUpdateIncidentDate, onEnrollmentError, }: PlainProps) => ( <> @@ -108,6 +110,8 @@ export const EnrollmentPageDefaultPlain = ({ programId={program.id} onDelete={onDelete} onAddNew={onAddNew} + onUpdateEnrollmentDate={onUpdateEnrollmentDate} + onUpdateIncidentDate={onUpdateIncidentDate} onError={onEnrollmentError} />}
diff --git a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.container.js b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.container.js index 976e03492a..12eb12de18 100644 --- a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.container.js +++ b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.container.js @@ -8,8 +8,15 @@ import { useHistory } from 'react-router-dom'; import { useCommonEnrollmentDomainData, updateEnrollmentAttributeValues, + updateEnrollmentDate, + updateIncidentDate, showEnrollmentError, } from '../../common/EnrollmentOverviewDomain'; +import { + updateEnrollmentDate as updateTopBarEnrollmentDate, + deleteEnrollment, + updateTeiDisplayName, +} from '../EnrollmentPage.actions'; import { useTrackerProgram } from '../../../../hooks/useTrackerProgram'; import { useRulesEngineOrgUnit } from '../../../../hooks/useRulesEngineOrgUnit'; import { EnrollmentPageDefaultComponent } from './EnrollmentPageDefault.component'; @@ -20,7 +27,6 @@ import { useRuleEffects, } from './hooks'; import { buildUrlQueryString, useLocationQuery } from '../../../../utils/routing'; -import { deleteEnrollment, updateTeiDisplayName } from '../EnrollmentPage.actions'; import { useFilteredWidgetData } from './hooks/useFilteredWidgetData'; export const EnrollmentPageDefault = () => { @@ -74,6 +80,7 @@ export const EnrollmentPageDefault = () => { const onEventClick = (eventId: string) => { history.push(`/enrollmentEventEdit?${buildUrlQueryString({ orgUnitId, eventId })}`); }; + const onUpdateTeiAttributeValues = useCallback((updatedAttributeValues, teiDisplayName) => { dispatch(updateEnrollmentAttributeValues(updatedAttributeValues .map(({ attribute, value }) => ({ id: attribute, value })), @@ -81,6 +88,15 @@ export const EnrollmentPageDefault = () => { dispatch(updateTeiDisplayName(teiDisplayName)); }, [dispatch]); + const onUpdateEnrollmentDate = useCallback((enrollmentDate) => { + dispatch(updateEnrollmentDate(enrollmentDate)); + dispatch(updateTopBarEnrollmentDate({ enrollmentId, enrollmentDate })); + }, [dispatch, enrollmentId]); + + const onUpdateIncidentDate = useCallback((incidentDate) => { + dispatch(updateIncidentDate(incidentDate)); + }, [dispatch]); + const onAddNew = () => { history.push(`/new?${buildUrlQueryString({ orgUnitId, programId, teiId })}`); }; @@ -107,6 +123,8 @@ export const EnrollmentPageDefault = () => { hideWidgets={hideWidgets} onEventClick={onEventClick} onUpdateTeiAttributeValues={onUpdateTeiAttributeValues} + onUpdateEnrollmentDate={onUpdateEnrollmentDate} + onUpdateIncidentDate={onUpdateIncidentDate} onEnrollmentError={onEnrollmentError} /> ); diff --git a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.types.js b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.types.js index 3822b286a0..b8e3dbd4dd 100644 --- a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.types.js +++ b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.types.js @@ -19,6 +19,8 @@ export type Props = {| onCreateNew: (stageId: string) => void, onEventClick: (eventId: string) => void, onUpdateTeiAttributeValues: (attributes: Array<{ [key: string]: string }>, teiDisplayName: string) => void, + onUpdateEnrollmentDate: (enrollmentDate: string) => void, + onUpdateIncidentDate: (incidentDate: string) => void, onEnrollmentError: (message: string) => void, |}; diff --git a/src/core_modules/capture-core/components/Pages/EnrollmentAddEvent/EnrollmentAddEventPageDefault/EnrollmentAddEventPageDefault.component.js b/src/core_modules/capture-core/components/Pages/EnrollmentAddEvent/EnrollmentAddEventPageDefault/EnrollmentAddEventPageDefault.component.js index e741014b20..f7abac3990 100644 --- a/src/core_modules/capture-core/components/Pages/EnrollmentAddEvent/EnrollmentAddEventPageDefault/EnrollmentAddEventPageDefault.component.js +++ b/src/core_modules/capture-core/components/Pages/EnrollmentAddEvent/EnrollmentAddEventPageDefault/EnrollmentAddEventPageDefault.component.js @@ -126,6 +126,7 @@ const EnrollmentAddEventPagePain = ({ teiId={teiId} enrollmentId={enrollmentId} programId={programId} + readOnlyMode onDelete={onDelete} onAddNew={onAddNew} onError={onEnrollmentError} diff --git a/src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/EnrollmentEditEventPage.component.js b/src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/EnrollmentEditEventPage.component.js index b5efd930b9..1add434b21 100644 --- a/src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/EnrollmentEditEventPage.component.js +++ b/src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/EnrollmentEditEventPage.component.js @@ -138,6 +138,7 @@ const EnrollmentEditEventPagePain = ({ teiId={teiId} enrollmentId={enrollmentId} programId={programId} + readOnlyMode onDelete={onDelete} onAddNew={onAddNew} onError={onEnrollmentError} diff --git a/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/enrollment.actions.js b/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/enrollment.actions.js index 6cdbe894ba..beb3832f89 100644 --- a/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/enrollment.actions.js +++ b/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/enrollment.actions.js @@ -4,6 +4,8 @@ import { actionCreator } from '../../../../actions/actions.utils'; export const enrollmentSiteActionTypes = { COMMON_ENROLLMENT_SITE_DATA_SET: 'EnrollmentSite.SetCommonData', + UPDATE_ENROLLMENT_DATE: 'Enrollment.UpdateEnrollmentDate', + UPDATE_INCIDENT_DATE: 'Enrollment.UpdateIncidentDate', UPDATE_ENROLLMENT_EVENTS: 'Enrollment.UpdateEnrollmentEvents', UPDATE_ENROLLMENT_EVENTS_WITHOUT_ID: 'Enrollment.UpdateEnrollmentEventsWithoutId', UPDATE_ENROLLMENT_ATTRIBUTE_VALUES: 'Enrollment.UpdateEnrollmentAttributeValues', @@ -18,6 +20,16 @@ export const enrollmentSiteActionTypes = { export const setCommonEnrollmentSiteData = (enrollment: ApiEnrollment, attributeValues: ApiAttributeValues) => actionCreator(enrollmentSiteActionTypes.COMMON_ENROLLMENT_SITE_DATA_SET)({ enrollment, attributeValues }); +export const updateEnrollmentDate = (enrollmentDate: string) => + actionCreator(enrollmentSiteActionTypes.UPDATE_ENROLLMENT_DATE)({ + enrollmentDate, + }); + +export const updateIncidentDate = (incidentDate: string) => + actionCreator(enrollmentSiteActionTypes.UPDATE_INCIDENT_DATE)({ + incidentDate, + }); + export const updateEnrollmentEvents = (eventId: string, eventData: Object) => actionCreator(enrollmentSiteActionTypes.UPDATE_ENROLLMENT_EVENTS)({ eventId, diff --git a/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/index.js b/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/index.js index e7a9b66f5b..f79612916d 100644 --- a/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/index.js +++ b/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/index.js @@ -2,6 +2,8 @@ export type { HideWidgets, WidgetEffects } from './enrollmentOverviewDomain.types'; export { enrollmentSiteActionTypes, + updateEnrollmentDate, + updateIncidentDate, updateEnrollmentEvents, commitEnrollmentEvent, rollbackEnrollmentEvent, diff --git a/src/core_modules/capture-core/components/WidgetEnrollment/Actions/Actions.container.js b/src/core_modules/capture-core/components/WidgetEnrollment/Actions/Actions.container.js index e83fdfda17..2ce98fcb38 100644 --- a/src/core_modules/capture-core/components/WidgetEnrollment/Actions/Actions.container.js +++ b/src/core_modules/capture-core/components/WidgetEnrollment/Actions/Actions.container.js @@ -3,6 +3,7 @@ import { useDataMutation } from '@dhis2/app-runtime'; import React from 'react'; import { ActionsComponent } from './Actions.component'; import type { Props } from './actions.types'; +import { processErrorReports } from '../processErrorReports'; const enrollmentUpdate = { resource: 'tracker?async=false&importStrategy=UPDATE', @@ -18,13 +19,6 @@ const enrollmentDelete = { enrollments: [enrollment], }), }; -const processErrorReports = (error) => { - // $FlowFixMe[prop-missing] - const errorReports = error?.details?.validationReport?.errorReports; - return errorReports?.length > 0 - ? errorReports.reduce((acc, errorReport) => `${acc} ${errorReport.message}`, '') - : error.message; -}; export const Actions = ({ enrollment = {}, diff --git a/src/core_modules/capture-core/components/WidgetEnrollment/Date/Date.component.js b/src/core_modules/capture-core/components/WidgetEnrollment/Date/Date.component.js new file mode 100644 index 0000000000..f3c7f36617 --- /dev/null +++ b/src/core_modules/capture-core/components/WidgetEnrollment/Date/Date.component.js @@ -0,0 +1,151 @@ +// @flow +import React, { useState, useCallback } from 'react'; +import moment from 'moment'; +import { + Button, + CalendarInput, + IconCalendar16, + IconEdit16, + colors, + spacersNum, +} from '@dhis2/ui'; +import i18n from '@dhis2/d2-i18n'; +import { withStyles } from '@material-ui/core'; +import { convertValue as convertValueClientToView } from '../../../converters/clientToView'; +import { dataElementTypes } from '../../../metaData'; + +type Props = { + date: string, + dateLabel: string, + editEnabled: boolean, + displayAutoGeneratedEventWarning: boolean, + onSave: (string) => void, + ...CssClasses, +} + +const styles = { + editButton: { + display: 'inline-flex', + alignItems: 'center', + justifyContent: 'center', + flexShrink: 0, + cursor: 'pointer', + border: 'none', + borderRadius: '3px', + background: 'transparent', + color: colors.grey600, + padding: 0, + marginLeft: '2px', + '&:focus': { + outline: 'none', + background: colors.grey200, + color: colors.grey800, + }, + '&:hover': { + background: colors.grey200, + color: colors.grey800, + }, + }, + calendar: { + paddingTop: '6px', + }, + inputField: { + maxWidth: '200px', + }, + buttonStrip: { + display: 'flex', + gap: `${spacersNum.dp4}px`, + margin: `${spacersNum.dp4}px 0`, + }, + note: { + fontSize: '12px', + color: colors.grey700, + }, +}; + +const DateComponentPlain = ({ + date, + dateLabel, + editEnabled, + displayAutoGeneratedEventWarning, + onSave, + classes, +}: Props) => { + const [editMode, setEditMode] = useState(false); + const [selectedDate, setSelectedDate] = useState(); + const dateChangeHandler = useCallback(({ calendarDateString }) => { + setSelectedDate(calendarDateString); + }, [setSelectedDate]); + const displayDate = String(convertValueClientToView(date, dataElementTypes.DATE)); + + const onOpenEdit = () => { + // CalendarInput component only supports the YYYY-MM-DD format + setSelectedDate(moment(date).format('YYYY-MM-DD')); + setEditMode(true); + }; + const saveHandler = () => { + // CalendarInput component only supports the YYYY-MM-DD format + if (selectedDate) { + const newDate = moment.utc(selectedDate, 'YYYY-MM-DD').format('YYYY-MM-DDTHH:mm:ss.SSS'); + if (newDate !== date) { + onSave(newDate); + } + } + setEditMode(false); + }; + + return editMode ? ( +
+
+ +
+
+ + +
+ {displayAutoGeneratedEventWarning && ( +
+ {i18n.t('Existing dates for auto-generated events will not be updated.')} +
+ )} +
+ ) : ( +
+ + + + {dateLabel}{': '} + {displayDate} + {editEnabled && + + } +
+ ); +}; + +export const Date = withStyles(styles)(DateComponentPlain); diff --git a/src/core_modules/capture-core/components/WidgetEnrollment/Date/index.js b/src/core_modules/capture-core/components/WidgetEnrollment/Date/index.js new file mode 100644 index 0000000000..5fc124daa8 --- /dev/null +++ b/src/core_modules/capture-core/components/WidgetEnrollment/Date/index.js @@ -0,0 +1,2 @@ +// @flow +export { Date } from './Date.component'; diff --git a/src/core_modules/capture-core/components/WidgetEnrollment/WidgetEnrollment.component.js b/src/core_modules/capture-core/components/WidgetEnrollment/WidgetEnrollment.component.js index 977793676c..15ebdb7c41 100644 --- a/src/core_modules/capture-core/components/WidgetEnrollment/WidgetEnrollment.component.js +++ b/src/core_modules/capture-core/components/WidgetEnrollment/WidgetEnrollment.component.js @@ -4,7 +4,6 @@ import moment from 'moment'; import { IconClock16, IconDimensionOrgUnit16, - IconCalendar16, IconLocation16, colors, Tag, @@ -20,6 +19,7 @@ import { Status } from './Status'; import { convertValue as convertValueServerToClient } from '../../converters/serverToClient'; import { convertValue as convertValueClientToView } from '../../converters/clientToView'; import { dataElementTypes } from '../../metaData'; +import { Date } from './Date'; import { Actions } from './Actions'; const styles = { @@ -52,11 +52,15 @@ export const WidgetEnrollmentPlain = ({ ownerOrgUnit = {}, refetchEnrollment, refetchTEI, - error, + initError, loading, canAddNew, + editDateEnabled, + displayAutoGeneratedEventWarning, onDelete, onAddNew, + updateEnrollmentDate, + updateIncidentDate, onError, onSuccess, }: PlainProps) => { @@ -72,13 +76,13 @@ export const WidgetEnrollmentPlain = ({ onClose={useCallback(() => setOpenStatus(false), [setOpenStatus])} open={open} > - {error && ( + {initError && (
{i18n.t('Enrollment widget could not be loaded. Please try again later')}
)} {loading && } - {!error && !loading && ( + {!initError && !loading && (
{enrollment.followUp && ( @@ -89,28 +93,28 @@ export const WidgetEnrollmentPlain = ({
-
- - - - {getEnrollmentDateLabel(program)}{' '} - {convertValueClientToView( - convertValueServerToClient(enrollment.enrolledAt, dataElementTypes.DATE), - dataElementTypes.DATE, - )} -
+ + + {program.displayIncidentDate && ( -
- - - - {getIncidentDateLabel(program)}{' '} - {convertValueClientToView( - convertValueServerToClient(enrollment.occurredAt, dataElementTypes.DATE), - dataElementTypes.DATE, - )} -
+ + + )}
diff --git a/src/core_modules/capture-core/components/WidgetEnrollment/WidgetEnrollment.container.js b/src/core_modules/capture-core/components/WidgetEnrollment/WidgetEnrollment.container.js index 8660f704f4..38296cfa32 100644 --- a/src/core_modules/capture-core/components/WidgetEnrollment/WidgetEnrollment.container.js +++ b/src/core_modules/capture-core/components/WidgetEnrollment/WidgetEnrollment.container.js @@ -10,8 +10,30 @@ import { useProgram } from './hooks/useProgram'; import type { Props } from './enrollment.types'; import { plainStatus } from './constants/status.const'; -export const WidgetEnrollment = ({ teiId, enrollmentId, programId, onDelete, onAddNew, onError, onSuccess }: Props) => { - const { error: errorEnrollment, enrollment, refetch: refetchEnrollment } = useEnrollment(enrollmentId); +export const WidgetEnrollment = ({ + teiId, + enrollmentId, + programId, + readOnlyMode = false, + onDelete, + onAddNew, + onUpdateEnrollmentDate, + onUpdateIncidentDate, + onError, + onSuccess, +}: Props) => { + const { + enrollment, + updateEnrollmentDate, + updateIncidentDate, + error: errorEnrollment, + refetch: refetchEnrollment, + } = useEnrollment({ + enrollmentId, + onUpdateEnrollmentDate, + onUpdateIncidentDate, + onError, + }); const { error: errorProgram, program } = useProgram(programId); const { error: errorOwnerOrgUnit, @@ -23,6 +45,7 @@ export const WidgetEnrollment = ({ teiId, enrollmentId, programId, onDelete, onA const canAddNew = enrollments .filter(item => item.program === programId) .every(item => item.status !== plainStatus.ACTIVE); + const containsAutoGeneratedEvent = program && program.programStages.some(({ autoGenerateEvent }) => autoGenerateEvent); const error = errorEnrollment || errorProgram || errorOwnerOrgUnit || errorOrgUnit; if (error) { @@ -33,6 +56,8 @@ export const WidgetEnrollment = ({ teiId, enrollmentId, programId, onDelete, onA diff --git a/src/core_modules/capture-core/components/WidgetEnrollment/enrollment.types.js b/src/core_modules/capture-core/components/WidgetEnrollment/enrollment.types.js index a3eacd0fdb..d4e14794b8 100644 --- a/src/core_modules/capture-core/components/WidgetEnrollment/enrollment.types.js +++ b/src/core_modules/capture-core/components/WidgetEnrollment/enrollment.types.js @@ -5,8 +5,11 @@ export type Props = {| teiId: string, enrollmentId: string, programId: string, + readOnlyMode?: boolean, onDelete: () => void, onAddNew: () => void, + onUpdateEnrollmentDate?: (enrollmentDate: string) => void, + onUpdateIncidentDate?: (enrollmentDate: string) => void, onError?: (message: string) => void, onSuccess?: () => void, |}; @@ -17,9 +20,13 @@ export type PlainProps = {| ownerOrgUnit: Object, refetchEnrollment: QueryRefetchFunction, refetchTEI: QueryRefetchFunction, - error?: FetchError, + initError?: FetchError, loading: boolean, canAddNew: boolean, + editDateEnabled: boolean, + displayAutoGeneratedEventWarning: boolean, + updateEnrollmentDate: (enrollmentDate: string) => void, + updateIncidentDate: (incidentDate: string) => void, onDelete: () => void, onAddNew: () => void, onError?: (message: string) => void, diff --git a/src/core_modules/capture-core/components/WidgetEnrollment/hooks/useEnrollment.js b/src/core_modules/capture-core/components/WidgetEnrollment/hooks/useEnrollment.js index 87ae5120c4..e9b2d305fd 100644 --- a/src/core_modules/capture-core/components/WidgetEnrollment/hooks/useEnrollment.js +++ b/src/core_modules/capture-core/components/WidgetEnrollment/hooks/useEnrollment.js @@ -1,8 +1,23 @@ // @flow -import { useMemo, useEffect } from 'react'; +import { useMemo, useEffect, useState } from 'react'; import { useDataQuery } from '@dhis2/app-runtime'; +import { useUpdateEnrollment } from './useUpdateEnrollment'; + +type Props = { + enrollmentId: string, + onUpdateEnrollmentDate?: (date: string) => void, + onUpdateIncidentDate?: (date: string) => void, + onError?: (error: any) => void, +} + +export const useEnrollment = ({ + enrollmentId, + onUpdateEnrollmentDate, + onUpdateIncidentDate, + onError, +}: Props) => { + const [enrollment, setEnrollment] = useState(); -export const useEnrollment = (enrollmentId: string) => { const { error, loading, data, refetch } = useDataQuery( useMemo( () => ({ @@ -20,5 +35,33 @@ export const useEnrollment = (enrollmentId: string) => { enrollmentId && refetch({ variables: { enrollmentId } }); }, [refetch, enrollmentId]); - return { error, refetch, enrollment: !loading && data?.enrollment }; + useEffect(() => { + if (data) { + setEnrollment(data.enrollment); + } + }, [setEnrollment, data]); + + const updateEnrollmentDate = useUpdateEnrollment({ + enrollment, + setEnrollment, + propertyName: 'enrolledAt', + updateHandler: onUpdateEnrollmentDate, + onError, + }); + + const updateIncidentDate = useUpdateEnrollment({ + enrollment, + setEnrollment, + propertyName: 'occurredAt', + updateHandler: onUpdateIncidentDate, + onError, + }); + + return { + error, + refetch, + enrollment: !loading && enrollment, + updateEnrollmentDate, + updateIncidentDate, + }; }; diff --git a/src/core_modules/capture-core/components/WidgetEnrollment/hooks/useProgram.js b/src/core_modules/capture-core/components/WidgetEnrollment/hooks/useProgram.js index 937f5644c6..fec7939f6d 100644 --- a/src/core_modules/capture-core/components/WidgetEnrollment/hooks/useProgram.js +++ b/src/core_modules/capture-core/components/WidgetEnrollment/hooks/useProgram.js @@ -10,7 +10,7 @@ export const useProgram = (programId: string) => { resource: `programs/${programId}`, params: { fields: [ - 'displayIncidentDate,incidentDateLabel,enrollmentDateLabel,onlyEnrollOnce,trackedEntityType[displayName]', + 'displayIncidentDate,incidentDateLabel,enrollmentDateLabel,onlyEnrollOnce,trackedEntityType[displayName],programStages[autoGenerateEvent],access', ], }, }, diff --git a/src/core_modules/capture-core/components/WidgetEnrollment/hooks/useUpdateEnrollment.js b/src/core_modules/capture-core/components/WidgetEnrollment/hooks/useUpdateEnrollment.js new file mode 100644 index 0000000000..fd7c96f827 --- /dev/null +++ b/src/core_modules/capture-core/components/WidgetEnrollment/hooks/useUpdateEnrollment.js @@ -0,0 +1,42 @@ +// @flow +import { useCallback } from 'react'; +import { useDataMutation } from '@dhis2/app-runtime'; +import { processErrorReports } from '../processErrorReports'; + +const enrollmentUpdate = { + resource: 'tracker?async=false&importStrategy=UPDATE', + type: 'create', + data: enrollment => ({ + enrollments: [enrollment], + }), +}; + +export const useUpdateEnrollment = ({ + enrollment, + setEnrollment, + propertyName, + updateHandler, + onError, +}: { + enrollment: any, + setEnrollment: (enrollment: any) => void, + propertyName: string, + updateHandler?: (value: any) => void, + onError?: (error: any) => void, +}) => { + const [updateEnrollmentMutation] = useDataMutation(enrollmentUpdate, { + onError: (e) => { + setEnrollment(enrollment); + updateHandler && updateHandler(enrollment[propertyName]); + onError && onError(processErrorReports(e)); + }, + }); + + return useCallback((value: string) => { + const updatedEnrollment = { ...enrollment }; + updatedEnrollment[propertyName] = value; + setEnrollment(updatedEnrollment); + updateEnrollmentMutation(updatedEnrollment); + updateHandler && updateHandler(value); + }, [enrollment, setEnrollment, propertyName, updateHandler, updateEnrollmentMutation]); +}; diff --git a/src/core_modules/capture-core/components/WidgetEnrollment/processErrorReports.js b/src/core_modules/capture-core/components/WidgetEnrollment/processErrorReports.js new file mode 100644 index 0000000000..d60fa40b31 --- /dev/null +++ b/src/core_modules/capture-core/components/WidgetEnrollment/processErrorReports.js @@ -0,0 +1,8 @@ +// @flow +export const processErrorReports = (error: any) => { + // $FlowFixMe[prop-missing] + const errorReports = error?.details?.validationReport?.errorReports; + return errorReports?.length > 0 + ? errorReports.reduce((acc, errorReport) => `${acc} ${errorReport.message}`, '') + : error.message; +}; diff --git a/src/core_modules/capture-core/reducers/descriptions/enrollmentDomain.reducerDescription.js b/src/core_modules/capture-core/reducers/descriptions/enrollmentDomain.reducerDescription.js index b3470cbe24..9e0745fa5b 100644 --- a/src/core_modules/capture-core/reducers/descriptions/enrollmentDomain.reducerDescription.js +++ b/src/core_modules/capture-core/reducers/descriptions/enrollmentDomain.reducerDescription.js @@ -8,6 +8,8 @@ import { actionTypes as editEventActionTypes } from '../../components/WidgetEven const initialReducerValue = {}; const { COMMON_ENROLLMENT_SITE_DATA_SET, + UPDATE_ENROLLMENT_DATE, + UPDATE_INCIDENT_DATE, UPDATE_ENROLLMENT_EVENTS, UPDATE_ENROLLMENT_EVENTS_WITHOUT_ID, UPDATE_ENROLLMENT_ATTRIBUTE_VALUES, @@ -25,6 +27,20 @@ export const enrollmentDomainDesc = createReducerDescription( attributeValues, enrollmentId: enrollment?.enrollment, }), + [UPDATE_ENROLLMENT_DATE]: (state, { payload: { enrollmentDate } }) => ({ + ...state, + enrollment: { + ...state.enrollment, + enrolledAt: enrollmentDate, + }, + }), + [UPDATE_INCIDENT_DATE]: (state, { payload: { incidentDate } }) => ({ + ...state, + enrollment: { + ...state.enrollment, + occurredAt: incidentDate, + }, + }), [UPDATE_ENROLLMENT_EVENTS]: ( state, { payload: { eventId, eventData } }, diff --git a/src/core_modules/capture-core/reducers/descriptions/enrollmentPage.reducerDescription.js b/src/core_modules/capture-core/reducers/descriptions/enrollmentPage.reducerDescription.js index bfff16fabb..87827640b1 100644 --- a/src/core_modules/capture-core/reducers/descriptions/enrollmentPage.reducerDescription.js +++ b/src/core_modules/capture-core/reducers/descriptions/enrollmentPage.reducerDescription.js @@ -20,6 +20,7 @@ const { MISSING_MESSAGE_VIEW, DELETE_ENROLLMENT, UPDATE_TEI_DISPLAY_NAME, + UPDATE_ENROLLMENT_DATE, } = enrollmentPageActionTypes; export const enrollmentPageDesc = createReducerDescription({ @@ -73,6 +74,16 @@ export const enrollmentPageDesc = createReducerDescription({ ...state, teiDisplayName, }), + [UPDATE_ENROLLMENT_DATE]: + (state, { payload: { enrollmentId, enrollmentDate } }) => ({ + ...state, + enrollments: state.enrollments.map((enrollment) => { + if (enrollment.enrollment === enrollmentId) { + enrollment.enrolledAt = enrollmentDate; + } + return enrollment; + }), + }), [PAGE_CLEAN]: () => initialReducerValue, [DELETE_ENROLLMENT]: (state, { payload: { enrollmentId } }) => ({ ...state, diff --git a/yarn.lock b/yarn.lock index 0c0d33e902..983b457b91 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2948,7 +2948,7 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" -"@js-temporal/polyfill@^0.4.2": +"@js-temporal/polyfill@0.4.3", "@js-temporal/polyfill@^0.4.2": version "0.4.3" resolved "https://registry.yarnpkg.com/@js-temporal/polyfill/-/polyfill-0.4.3.tgz#e8f8cf86745eb5050679c46a5ebedb9a9cc1f09b" integrity sha512-6Fmjo/HlkyVCmJzAPnvtEWlcbQUSRhi8qlN9EtJA/wP7FqXsevLLrlojR44kzNzrRkpf7eDJ+z7b4xQD/Ycypw== From 85a67db8fe81843bdfb8a6b6a1fd19ad05faad72 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Wed, 6 Sep 2023 09:10:30 +0000 Subject: [PATCH 11/49] chore(release): cut 100.38.0 [skip release] # [100.38.0](https://github.com/dhis2/capture-app/compare/v100.37.0...v100.38.0) (2023-09-06) ### Features * [DHIS2-14334] edit enrollment date ([#3350](https://github.com/dhis2/capture-app/issues/3350)) ([9dd1b6a](https://github.com/dhis2/capture-app/commit/9dd1b6a046e94021ae4e63a67a3d6b16a099212d)) --- CHANGELOG.md | 7 +++++++ package.json | 4 ++-- packages/rules-engine/package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6487c20723..4e24ce53c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [100.38.0](https://github.com/dhis2/capture-app/compare/v100.37.0...v100.38.0) (2023-09-06) + + +### Features + +* [DHIS2-14334] edit enrollment date ([#3350](https://github.com/dhis2/capture-app/issues/3350)) ([9dd1b6a](https://github.com/dhis2/capture-app/commit/9dd1b6a046e94021ae4e63a67a3d6b16a099212d)) + # [100.37.0](https://github.com/dhis2/capture-app/compare/v100.36.0...v100.37.0) (2023-08-22) diff --git a/package.json b/package.json index b2ed536c77..523f6082d0 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "capture-app", "homepage": ".", - "version": "100.37.0", + "version": "100.38.0", "cacheVersion": "5", "serverVersion": "38", "license": "BSD-3-Clause", @@ -10,7 +10,7 @@ "packages/rules-engine" ], "dependencies": { - "@dhis2/rules-engine-javascript": "100.37.0", + "@dhis2/rules-engine-javascript": "100.38.0", "@dhis2/app-runtime": "^3.9.3", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/d2-icons": "^1.0.1", diff --git a/packages/rules-engine/package.json b/packages/rules-engine/package.json index 7e57d9d6a2..9764aec92c 100644 --- a/packages/rules-engine/package.json +++ b/packages/rules-engine/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/rules-engine-javascript", - "version": "100.37.0", + "version": "100.38.0", "license": "BSD-3-Clause", "main": "./build/cjs/index.js", "scripts": { From 4ef2973b71d6376f99db07e70bc4d51facb8018e Mon Sep 17 00:00:00 2001 From: Simona Domnisoru Date: Thu, 7 Sep 2023 15:32:12 +0300 Subject: [PATCH 12/49] feat: [DHIS2-13343] hidden program stage rule effect (#3406) --- .../EnrollmentPage/HiddenProgramStage.feature | 7 ++ .../HiddenProgramStage/index.js | 66 +++++++++++++++++++ i18n/en.pot | 4 +- .../rulesEffectsProcessor.js | 13 ++++ .../rules-engine/src/rulesEngine.types.js | 4 ++ .../EnrollmentPageDefault.component.js | 3 + .../EnrollmentPageDefault.container.js | 3 +- .../EnrollmentPageDefault.types.js | 2 + .../EnrollmentQuickActions.component.js | 18 +++-- .../EnrollmentPageDefault/hooks/index.js | 3 +- .../ProgramStageSelector.component.js | 3 +- .../ProgramStageSelector.container.js | 20 +++++- .../common/EnrollmentOverviewDomain/index.js | 1 + .../useRuleEffects/index.js | 3 + .../useRuleEffects}/useRuleEffects.js | 7 +- .../useRuleEffects}/useRuleEffects.types.js | 2 +- .../ErrorText/ErrorText.component.js | 20 ++++++ .../ErrorText/ErrorText.types.js | 5 ++ .../ErrorText/index.js | 2 + .../FinishButtons/FinishButtons.component.js | 42 ++++++++---- .../FinishButtons/finishButtons.types.js | 4 ++ .../Validated/Validated.component.js | 12 ++-- .../Validated/Validated.container.js | 8 ++- .../Validated/validated.types.js | 1 + .../Stages/Stage/Stage.component.js | 44 +++++++++---- .../StageDetail/StageDetail.component.js | 12 +++- .../Stage/StageDetail/stageDetail.types.js | 1 + .../types/common.types.js | 4 +- .../rulesEffects.reducerDescription.js | 17 +++++ .../rulesEffectsForTrackerProgram.test.js | 2 + .../trackerCapture.reducerDescriptions.js | 2 + 31 files changed, 287 insertions(+), 48 deletions(-) create mode 100644 cypress/integration/EnrollmentPage/HiddenProgramStage.feature create mode 100644 cypress/integration/EnrollmentPage/HiddenProgramStage/index.js create mode 100644 src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/useRuleEffects/index.js rename src/core_modules/capture-core/components/Pages/{Enrollment/EnrollmentPageDefault/hooks => common/EnrollmentOverviewDomain/useRuleEffects}/useRuleEffects.js (94%) rename src/core_modules/capture-core/components/Pages/{Enrollment/EnrollmentPageDefault/hooks => common/EnrollmentOverviewDomain/useRuleEffects}/useRuleEffects.types.js (81%) create mode 100644 src/core_modules/capture-core/components/WidgetEnrollmentEventNew/ErrorText/ErrorText.component.js create mode 100644 src/core_modules/capture-core/components/WidgetEnrollmentEventNew/ErrorText/ErrorText.types.js create mode 100644 src/core_modules/capture-core/components/WidgetEnrollmentEventNew/ErrorText/index.js diff --git a/cypress/integration/EnrollmentPage/HiddenProgramStage.feature b/cypress/integration/EnrollmentPage/HiddenProgramStage.feature new file mode 100644 index 0000000000..4e6e427e3e --- /dev/null +++ b/cypress/integration/EnrollmentPage/HiddenProgramStage.feature @@ -0,0 +1,7 @@ +Feature: Hidden program stage + + Scenario: The user cannot add an event in a hidden program stage + Given you add an enrollment event that will result in a rule effect to hide a program stage + Then the New Postpartum care visit event button is disabled in the stages and events widget + And and an error is show in the Postpartum care visit stage + And the Postpartum care visit button is disabled in the enrollmentEventNew page diff --git a/cypress/integration/EnrollmentPage/HiddenProgramStage/index.js b/cypress/integration/EnrollmentPage/HiddenProgramStage/index.js new file mode 100644 index 0000000000..edf6b833bd --- /dev/null +++ b/cypress/integration/EnrollmentPage/HiddenProgramStage/index.js @@ -0,0 +1,66 @@ +import moment from 'moment'; + +const cleanUpIfApplicable = () => { + cy.buildApiUrl( + 'tracker', + 'trackedEntities/uW8Y7AIcRKA?program=WSGAb5XwJ3Y&fields=enrollments', + ) + .then(url => cy.request(url)) + .then(({ body }) => { + const enrollment = body.enrollments?.find(e => e.enrollment === 'fmhIsWXVDmS'); + const event = enrollment?.events?.find(e => e.programStage === 'PFDfvmGpsR3'); + if (!event) { + return null; + } + return cy + .buildApiUrl('events', event.event) + .then(eventUrl => + cy.request('DELETE', eventUrl)); + }); +}; + +Given('you add an enrollment event that will result in a rule effect to hide a program stage', () => { + cleanUpIfApplicable(); + cy.visit( + '/#/enrollmentEventNew?enrollmentId=fmhIsWXVDmS&orgUnitId=s7SLtx8wmRA&programId=WSGAb5XwJ3Y&stageId=PFDfvmGpsR3&teiId=uW8Y7AIcRKA', + ); + + cy.get('[data-test="capture-ui-input"]') + .eq(0) + .type(moment().format('YYYY-MM-DD')) + .blur(); + + cy + .get('[data-test="virtualized-select"]') + .eq(6) + .click() + .contains('Termination of pregnancy') + .click(); + + cy.contains('[data-test="dhis2-uicore-button"]', 'Save without completing').click(); +}); + +Then('the New Postpartum care visit event button is disabled in the stages and events widget', () => { + cy.contains('[data-test="create-new-button"]', 'New Postpartum care visit event') + .should('be.disabled'); +}); + +Then('and an error is show in the Postpartum care visit stage', () => { + cy.visit( + '/#/enrollmentEventNew?enrollmentId=fmhIsWXVDmS&orgUnitId=s7SLtx8wmRA&programId=WSGAb5XwJ3Y&teiId=uW8Y7AIcRKA&stageId=bbKtnxRZKEP', + ); + cy.contains('[data-test="dhis2-uicore-button"]', 'Complete') + .should('be.disabled'); + cy.contains('[data-test="dhis2-uicore-button"]', 'Save without completing') + .should('be.disabled'); + cy.contains('[data-test="dhis2-uicore-noticebox-content"]', 'You can\'t add any more Postpartum care visit events') + .should('exist'); +}); + +Then('the Postpartum care visit button is disabled in the enrollmentEventNew page', () => { + cy.visit( + '/#/enrollmentEventNew?enrollmentId=fmhIsWXVDmS&orgUnitId=s7SLtx8wmRA&programId=WSGAb5XwJ3Y&teiId=uW8Y7AIcRKA', + ); + + cy.contains('[data-test="program-stage-selector-button"]', 'Postpartum care visit').should('be.disabled'); +}); diff --git a/i18n/en.pot b/i18n/en.pot index 9674ac525a..e179d736a4 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: 2023-08-22T12:04:52.436Z\n" -"PO-Revision-Date: 2023-08-22T12:04:52.436Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" +"PO-Revision-Date: 2023-09-04T07:07:59.195Z\n" msgid "Choose one or more dates..." msgstr "Choose one or more dates..." diff --git a/packages/rules-engine/src/processors/rulesEffectsProcessor/rulesEffectsProcessor.js b/packages/rules-engine/src/processors/rulesEffectsProcessor/rulesEffectsProcessor.js index da59fe6d94..15951dbc57 100644 --- a/packages/rules-engine/src/processors/rulesEffectsProcessor/rulesEffectsProcessor.js +++ b/packages/rules-engine/src/processors/rulesEffectsProcessor/rulesEffectsProcessor.js @@ -12,6 +12,7 @@ import type { IConvertOutputRulesEffectsValue, AssignOutputEffect, HideOutputEffect, + HideProgramStageEffect, MessageEffect, GeneralErrorEffect, GeneralWarningEffect, @@ -207,6 +208,17 @@ export function getRulesEffectsProcessor( }; } + function processHideProgramStage(effect: ProgramRuleEffect): ?HideProgramStageEffect { + if (!effect.programStageId) { + return null; + } + + return { + type: effectActions.HIDE_PROGRAM_STAGE, + id: effect.programStageId, + }; + } + function processMakeCompulsory(effect: ProgramRuleEffect): Array { return createEffectsForConfiguredDataTypes(effect, () => ({ type: effectActions.MAKE_COMPULSORY, @@ -267,6 +279,7 @@ export function getRulesEffectsProcessor( [effectActions.SHOW_WARNING]: processShowWarning, [effectActions.SHOW_ERROR_ONCOMPLETE]: processShowErrorOnComplete, [effectActions.SHOW_WARNING_ONCOMPLETE]: processShowWarningOnComplete, + [effectActions.HIDE_PROGRAM_STAGE]: processHideProgramStage, [effectActions.HIDE_SECTION]: processHideSection, [effectActions.MAKE_COMPULSORY]: processMakeCompulsory, [effectActions.DISPLAY_TEXT]: processDisplayText, diff --git a/packages/rules-engine/src/rulesEngine.types.js b/packages/rules-engine/src/rulesEngine.types.js index e2edca905b..decb2154a0 100644 --- a/packages/rules-engine/src/rulesEngine.types.js +++ b/packages/rules-engine/src/rulesEngine.types.js @@ -30,6 +30,10 @@ export type HideOutputEffect = OutputEffect & { }; +export type HideProgramStageEffect = OutputEffect & { + +}; + export type MessageEffect = OutputEffect & { message: string, }; diff --git a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.component.js b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.component.js index dac5ca2c8a..0759fcd558 100644 --- a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.component.js +++ b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.component.js @@ -63,6 +63,7 @@ export const EnrollmentPageDefaultPlain = ({ onUpdateEnrollmentDate, onUpdateIncidentDate, onEnrollmentError, + ruleEffects, }: PlainProps) => ( <>
{i18n.t('Enrollment Dashboard')}
@@ -71,6 +72,7 @@ export const EnrollmentPageDefaultPlain = ({
diff --git a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.container.js b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.container.js index 12eb12de18..2e7b8da1bc 100644 --- a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.container.js +++ b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.container.js @@ -7,6 +7,7 @@ import { useDispatch } from 'react-redux'; import { useHistory } from 'react-router-dom'; import { useCommonEnrollmentDomainData, + useRuleEffects, updateEnrollmentAttributeValues, updateEnrollmentDate, updateIncidentDate, @@ -24,7 +25,6 @@ import { useProgramMetadata, useHideWidgetByRuleLocations, useProgramStages, - useRuleEffects, } from './hooks'; import { buildUrlQueryString, useLocationQuery } from '../../../../utils/routing'; import { useFilteredWidgetData } from './hooks/useFilteredWidgetData'; @@ -126,6 +126,7 @@ export const EnrollmentPageDefault = () => { onUpdateEnrollmentDate={onUpdateEnrollmentDate} onUpdateIncidentDate={onUpdateIncidentDate} onEnrollmentError={onEnrollmentError} + ruleEffects={ruleEffects} /> ); }; diff --git a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.types.js b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.types.js index b8e3dbd4dd..4e88f4a39b 100644 --- a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.types.js +++ b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.types.js @@ -1,4 +1,5 @@ // @flow +import { typeof effectActions } from '@dhis2/rules-engine-javascript'; import type { Program } from 'capture-core/metaData'; import type { Stage } from 'capture-core/components/WidgetStagesAndEvents/types/common.types'; import type { WidgetEffects, HideWidgets } from '../../common/EnrollmentOverviewDomain'; @@ -22,6 +23,7 @@ export type Props = {| onUpdateEnrollmentDate: (enrollmentDate: string) => void, onUpdateIncidentDate: (incidentDate: string) => void, onEnrollmentError: (message: string) => void, + ruleEffects?: Array<{id: string, type: $Values}>; |}; export type PlainProps = {| diff --git a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentQuickActions/EnrollmentQuickActions.component.js b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentQuickActions/EnrollmentQuickActions.component.js index 2853c9986e..e5621d7449 100644 --- a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentQuickActions/EnrollmentQuickActions.component.js +++ b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentQuickActions/EnrollmentQuickActions.component.js @@ -19,7 +19,7 @@ const styles = { }; -const EnrollmentQuickActionsComponent = ({ stages, events, classes }) => { +const EnrollmentQuickActionsComponent = ({ stages, events, ruleEffects, classes }) => { const [open, setOpen] = useState(true); const history = useHistory(); const { enrollmentId, programId, teiId, orgUnitId } = useLocationQuery(); @@ -33,10 +33,20 @@ const EnrollmentQuickActionsComponent = ({ stages, events, classes }) => { return mutatedStage; }), [events, stages]); + const hiddenProgramStageRuleEffects = useMemo( + () => ruleEffects?.filter(ruleEffect => ruleEffect.type === 'HIDEPROGRAMSTAGE'), + [ruleEffects], + ); + const noStageAvailable = useMemo( - () => stagesWithEventCount.every(programStage => - (!programStage.repeatable && programStage.eventCount > 0), - ), [stagesWithEventCount]); + () => + stagesWithEventCount.every( + programStage => + (!programStage.repeatable && programStage.eventCount > 0) || + hiddenProgramStageRuleEffects?.find(ruleEffect => ruleEffect.id === programStage.id), + ), + [stagesWithEventCount, hiddenProgramStageRuleEffects], + ); const onNavigationFromQuickActions = (tab: string) => { history.push(`/enrollmentEventNew?${buildUrlQueryString({ programId, teiId, enrollmentId, orgUnitId, tab })}`); diff --git a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/hooks/index.js b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/hooks/index.js index 3b0cdd75eb..049aa3b303 100644 --- a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/hooks/index.js +++ b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/hooks/index.js @@ -3,5 +3,4 @@ export { useTeiAttributes } from './useTeiAttributes'; export { useProgramMetadata } from './useProgramMetadata'; export { useHideWidgetByRuleLocations } from './useHideWidgetByRuleLocations'; export { useProgramStages } from './useProgramStages'; -export { useRuleEffects } from './useRuleEffects'; -export type { UseRuleEffectsInput } from './useRuleEffects.types'; + diff --git a/src/core_modules/capture-core/components/Pages/EnrollmentAddEvent/ProgramStageSelector/ProgramStageSelector.component.js b/src/core_modules/capture-core/components/Pages/EnrollmentAddEvent/ProgramStageSelector/ProgramStageSelector.component.js index 20f5b1b8dd..092ddf13f6 100644 --- a/src/core_modules/capture-core/components/Pages/EnrollmentAddEvent/ProgramStageSelector/ProgramStageSelector.component.js +++ b/src/core_modules/capture-core/components/Pages/EnrollmentAddEvent/ProgramStageSelector/ProgramStageSelector.component.js @@ -26,7 +26,8 @@ const styles = { const ProgramStageSelectorComponentPlain = ({ programStages, onSelectProgramStage, onCancel, classes }) => (
{programStages.map((programStage) => { - const disableStage = !programStage.repeatable && programStage.eventCount > 0; + const disableStage = + (!programStage.repeatable && programStage.eventCount > 0) || programStage.hiddenProgramStage; return (
{ const history = useHistory(); const { tab } = useLocationQuery(); - const { error: enrollmentsError, enrollment } = useCommonEnrollmentDomainData(teiId, enrollmentId, programId); + const { error: enrollmentsError, enrollment, attributeValues } = useCommonEnrollmentDomainData(teiId, enrollmentId, programId); const { program, isLoading: programLoading, isError: programError, } = useProgramFromIndexedDB(programId); + const { orgUnit } = useRulesEngineOrgUnit(orgUnitId); + const programRules = useTrackerProgram(programId); + + const ruleEffects = useRuleEffects({ + orgUnit, + program: programRules, + apiEnrollment: enrollment, + apiAttributeValues: attributeValues, + }); useEffect(() => { if (enrollmentsError || programError) { @@ -42,9 +53,12 @@ export const ProgramStageSelector = ({ programId, orgUnitId, teiId, enrollmentId displayName: currentStage.displayName, style: currentStage.style, repeatable: currentStage.repeatable, + hiddenProgramStage: ruleEffects?.find( + ruleEffect => ruleEffect.type === 'HIDEPROGRAMSTAGE' && ruleEffect.id === currentStage.id, + ), }); return accStage; - }, []), [enrollment?.events, program?.programStages, programLoading]); + }, []), [enrollment?.events, program?.programStages, programLoading, ruleEffects]); const onSelectProgramStage = (newStageId: string) => history.push(`enrollmentEventNew?${buildUrlQueryString({ diff --git a/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/index.js b/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/index.js index f79612916d..067f6b41cd 100644 --- a/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/index.js +++ b/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/index.js @@ -12,3 +12,4 @@ export { showEnrollmentError, } from './enrollment.actions'; export { useCommonEnrollmentDomainData } from './useCommonEnrollmentDomainData'; +export { useRuleEffects } from './useRuleEffects'; diff --git a/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/useRuleEffects/index.js b/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/useRuleEffects/index.js new file mode 100644 index 0000000000..b8f1e7545a --- /dev/null +++ b/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/useRuleEffects/index.js @@ -0,0 +1,3 @@ +// @flow +export { useRuleEffects } from './useRuleEffects'; +export type * from './useRuleEffects.types'; diff --git a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/hooks/useRuleEffects.js b/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/useRuleEffects/useRuleEffects.js similarity index 94% rename from src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/hooks/useRuleEffects.js rename to src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/useRuleEffects/useRuleEffects.js index bc38ec206c..74f6a96735 100644 --- a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/hooks/useRuleEffects.js +++ b/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/useRuleEffects/useRuleEffects.js @@ -79,13 +79,16 @@ export const useRuleEffects = ({ orgUnit, program, apiEnrollment, apiAttributeVa useEffect(() => { if (orgUnit && attributeValues && enrollmentData && otherEvents) { - setRuleEffects(getApplicableRuleEffectsForTrackerProgram({ + const effects = getApplicableRuleEffectsForTrackerProgram({ program, orgUnit, otherEvents, attributeValues, enrollmentData, - }, true)); + }, true); + if (Array.isArray(effects)) { + setRuleEffects(effects); + } } }, [attributeValues, enrollmentData, orgUnit, otherEvents, program]); diff --git a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/hooks/useRuleEffects.types.js b/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/useRuleEffects/useRuleEffects.types.js similarity index 81% rename from src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/hooks/useRuleEffects.types.js rename to src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/useRuleEffects/useRuleEffects.types.js index e2a28b85f3..3ce69affc9 100644 --- a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/hooks/useRuleEffects.types.js +++ b/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/useRuleEffects/useRuleEffects.types.js @@ -4,7 +4,7 @@ import type { TrackerProgram } from 'capture-core/metaData'; import type { EnrollmentData, AttributeValue, -} from '../../../common/EnrollmentOverviewDomain/useCommonEnrollmentDomainData'; +} from '../useCommonEnrollmentDomainData'; export type UseRuleEffectsInput = {| orgUnit?: ?OrgUnit, diff --git a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/ErrorText/ErrorText.component.js b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/ErrorText/ErrorText.component.js new file mode 100644 index 0000000000..a885a48a6d --- /dev/null +++ b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/ErrorText/ErrorText.component.js @@ -0,0 +1,20 @@ +// @flow +import React from 'react'; +import i18n from '@dhis2/d2-i18n'; +import { NoticeBox } from '@dhis2/ui'; +import type { Props } from './ErrorText.types'; + +export const ErrorText = ({ stageName }: Props) => ( + <> +
+ + + {i18n.t("You can't add any more {{ programStageName }} events", { + programStageName: stageName, + interpolation: { escapeValue: false }, + })} + + +
+ +); diff --git a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/ErrorText/ErrorText.types.js b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/ErrorText/ErrorText.types.js new file mode 100644 index 0000000000..07785c7e1a --- /dev/null +++ b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/ErrorText/ErrorText.types.js @@ -0,0 +1,5 @@ +// @flow + +export type Props = {| + stageName: string, +|}; diff --git a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/ErrorText/index.js b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/ErrorText/index.js new file mode 100644 index 0000000000..2b26086840 --- /dev/null +++ b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/ErrorText/index.js @@ -0,0 +1,2 @@ +// @flow +export { ErrorText } from './ErrorText.component'; diff --git a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/FinishButtons/FinishButtons.component.js b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/FinishButtons/FinishButtons.component.js index ae5f972510..1c0a36c1c8 100644 --- a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/FinishButtons/FinishButtons.component.js +++ b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/FinishButtons/FinishButtons.component.js @@ -3,6 +3,7 @@ import React, { type ComponentType } from 'react'; import i18n from '@dhis2/d2-i18n'; import { withStyles } from '@material-ui/core'; import { Button, spacersNum } from '@dhis2/ui'; +import { ConditionalTooltip } from 'capture-core/components/ConditionalTooltip'; import { withCancelButton } from '../../DataEntry/withCancelButton'; import { addEventSaveTypes } from '../DataEntry/addEventSaveTypes'; import type { InputProps, Props } from './finishButtons.types'; @@ -17,26 +18,43 @@ const styles = { }, }; -const FinishButtonsPlain = ({ onSave, cancelButton, classes }: Props) => ( +const FinishButtonsPlain = ({ onSave, cancelButton, hiddenProgramStage, stageName, classes }: Props) => (
- + +
- + +
{cancelButton}
); -export const FinishButtons: ComponentType = - withCancelButton()(withStyles(styles)(FinishButtonsPlain)); +export const FinishButtons: ComponentType = withCancelButton()(withStyles(styles)(FinishButtonsPlain)); diff --git a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/FinishButtons/finishButtons.types.js b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/FinishButtons/finishButtons.types.js index dd3acb8e32..079708e30a 100644 --- a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/FinishButtons/finishButtons.types.js +++ b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/FinishButtons/finishButtons.types.js @@ -6,10 +6,14 @@ export type InputProps = {| onSave: (saveType: $Keys) => void, onCancel: () => void, id: string, + hiddenProgramStage: boolean, + stageName: string, |}; export type Props = {| onSave: (saveType: $Keys) => void, cancelButton: Element, + hiddenProgramStage: boolean, + stageName: string, ...CssClasses, |}; diff --git a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/Validated/Validated.component.js b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/Validated/Validated.component.js index ed59d6dc4e..4f784d2b9a 100644 --- a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/Validated/Validated.component.js +++ b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/Validated/Validated.component.js @@ -6,6 +6,7 @@ import { Widget } from '../../Widget'; import { DataEntry } from '../DataEntry'; import { FinishButtons } from '../FinishButtons'; import { SavingText } from '../SavingText'; +import { ErrorText } from '../ErrorText'; import type { Props } from './validated.types'; const styles = () => ({ @@ -23,6 +24,7 @@ const ValidatedPlain = ({ onSave, onCancel, orgUnit, + hiddenProgramStage, id, ...passOnProps }: Props) => ( @@ -46,12 +48,14 @@ const ValidatedPlain = ({ onSave={onSave} onCancel={onCancel} id={id} - /> - + {hiddenProgramStage ? ( + + ) : ( + + )}
)} diff --git a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/Validated/Validated.container.js b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/Validated/Validated.container.js index 3d85e67cbf..c0245b477f 100644 --- a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/Validated/Validated.container.js +++ b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/Validated/Validated.container.js @@ -1,6 +1,6 @@ // @flow import React, { useCallback } from 'react'; -import { useDispatch } from 'react-redux'; +import { useDispatch, useSelector } from 'react-redux'; import { withAskToCreateNew, withSaveHandler } from '../../DataEntry'; import { useLifecycle } from './useLifecycle'; import { useClientFormattedRulesExecutionDependencies } from './useClientFormattedRulesExecutionDependencies'; @@ -29,6 +29,11 @@ export const Validated = ({ }: ContainerProps) => { const dataEntryId = 'enrollmentEvent'; const itemId = 'newEvent'; + const rulesEffectsHiddenProgram = useSelector( + ({ rulesEffectsHiddenProgramStageDesc }) => + rulesEffectsHiddenProgramStageDesc && rulesEffectsHiddenProgramStageDesc[`${dataEntryId}-${itemId}`], + ); + const hiddenProgramStage = rulesEffectsHiddenProgram && rulesEffectsHiddenProgram[stage.id]; const rulesExecutionDependenciesClientFormatted = useClientFormattedRulesExecutionDependencies(rulesExecutionDependencies, program); @@ -127,6 +132,7 @@ export const Validated = ({ programName={program.name} orgUnit={orgUnit} rulesExecutionDependenciesClientFormatted={rulesExecutionDependenciesClientFormatted} + hiddenProgramStage={hiddenProgramStage} /> ); }; diff --git a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/Validated/validated.types.js b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/Validated/validated.types.js index a5194d88af..932e61a6d8 100644 --- a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/Validated/validated.types.js +++ b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/Validated/validated.types.js @@ -25,5 +25,6 @@ export type Props = {| formRef: (formInstance: any) => void, dataEntryFieldRef: (instance: any, id: string) => void, rulesExecutionDependenciesClientFormatted: RulesExecutionDependenciesClientFormatted, + hiddenProgramStage: boolean, ...CssClasses, |}; diff --git a/src/core_modules/capture-core/components/WidgetStagesAndEvents/Stages/Stage/Stage.component.js b/src/core_modules/capture-core/components/WidgetStagesAndEvents/Stages/Stage/Stage.component.js index b50d0134a2..f8a8908b20 100644 --- a/src/core_modules/capture-core/components/WidgetStagesAndEvents/Stages/Stage/Stage.component.js +++ b/src/core_modules/capture-core/components/WidgetStagesAndEvents/Stages/Stage/Stage.component.js @@ -4,6 +4,7 @@ import cx from 'classnames'; import i18n from '@dhis2/d2-i18n'; import { withStyles } from '@material-ui/core'; import { spacersNum, colors, IconAdd16, Button } from '@dhis2/ui'; +import { ConditionalTooltip } from 'capture-core/components/ConditionalTooltip'; import { StageOverview } from './StageOverview'; import type { Props } from './stage.types'; import { Widget } from '../../../Widget'; @@ -23,11 +24,15 @@ const styles = { alignItems: 'center', }, }; +const hideProgramStage = (ruleEffects, stageId) => ( + Boolean(ruleEffects?.find(ruleEffect => ruleEffect.type === 'HIDEPROGRAMSTAGE' && ruleEffect.id === stageId)) +); - -export const StagePlain = ({ stage, events, classes, className, onCreateNew, ...passOnProps }: Props) => { +export const StagePlain = ({ stage, events, classes, className, onCreateNew, ruleEffects, ...passOnProps }: Props) => { const [open, setOpenStatus] = useState(true); const { id, name, icon, description, dataElements, hideDueDate, repeatable } = stage; + const hiddenProgramStage = hideProgramStage(ruleEffects, id); + return (
: } + /> : ( + + + + )}
); diff --git a/src/core_modules/capture-core/components/WidgetStagesAndEvents/Stages/Stage/StageDetail/StageDetail.component.js b/src/core_modules/capture-core/components/WidgetStagesAndEvents/Stages/Stage/StageDetail/StageDetail.component.js index 5b45f31d6f..6d5da181fa 100644 --- a/src/core_modules/capture-core/components/WidgetStagesAndEvents/Stages/Stage/StageDetail/StageDetail.component.js +++ b/src/core_modules/capture-core/components/WidgetStagesAndEvents/Stages/Stage/StageDetail/StageDetail.component.js @@ -69,6 +69,7 @@ const StageDetailPlain = (props: Props) => { onEventClick, onViewAll, onCreateNew, + hiddenProgramStage, classes } = props; const defaultSortState = { columnName: 'status', @@ -214,11 +215,18 @@ const StageDetailPlain = (props: Props) => { >{i18n.t('Go to full {{ eventName }}', { eventName, interpolation: { escapeValue: false } })} : null); const renderCreateNewButton = () => { - const shouldDisableCreateNew = !repeatable && events.length > 0; + const shouldDisableCreateNew = (!repeatable && events.length > 0) || hiddenProgramStage; + + const tooltipContent = hiddenProgramStage + ? i18n.t("You can't add any more {{ programStageName }} events", { + programStageName: eventName, + interpolation: { escapeValue: false }, + }) + : i18n.t('This stage can only have one event'); return ( diff --git a/src/core_modules/capture-core/components/WidgetStagesAndEvents/Stages/Stage/StageDetail/stageDetail.types.js b/src/core_modules/capture-core/components/WidgetStagesAndEvents/Stages/Stage/StageDetail/stageDetail.types.js index ac5c02c897..a5edeeab75 100644 --- a/src/core_modules/capture-core/components/WidgetStagesAndEvents/Stages/Stage/StageDetail/stageDetail.types.js +++ b/src/core_modules/capture-core/components/WidgetStagesAndEvents/Stages/Stage/StageDetail/stageDetail.types.js @@ -8,6 +8,7 @@ import type { StageDataElement, StageCommonProps } from '../../../types/common.t hideDueDate?: boolean, repeatable?: boolean, stageId: string, + hiddenProgramStage?: boolean, ...CssClasses, |}; diff --git a/src/core_modules/capture-core/components/WidgetStagesAndEvents/types/common.types.js b/src/core_modules/capture-core/components/WidgetStagesAndEvents/types/common.types.js index 9ec7b002ac..a3b0c008d4 100644 --- a/src/core_modules/capture-core/components/WidgetStagesAndEvents/types/common.types.js +++ b/src/core_modules/capture-core/components/WidgetStagesAndEvents/types/common.types.js @@ -1,4 +1,5 @@ // @flow +import { typeof effectActions } from '@dhis2/rules-engine-javascript'; import type { Icon } from 'capture-core/metaData'; import { dataElementTypes, Option } from '../../../metaData'; @@ -29,7 +30,8 @@ export type StageCommonProps = {| programId: string, onViewAll: (stageId: string) => void, onCreateNew: (stageId: string) => void, - onEventClick: (eventId: string) => void + onEventClick: (eventId: string) => void, + ruleEffects?: Array<{id: string, type: $Values}>, |} export type DataValue = { diff --git a/src/core_modules/capture-core/reducers/descriptions/rulesEffects.reducerDescription.js b/src/core_modules/capture-core/reducers/descriptions/rulesEffects.reducerDescription.js index 1a3493638c..becca6ede0 100644 --- a/src/core_modules/capture-core/reducers/descriptions/rulesEffects.reducerDescription.js +++ b/src/core_modules/capture-core/reducers/descriptions/rulesEffects.reducerDescription.js @@ -64,6 +64,23 @@ export const rulesEffectsHiddenSectionsDesc = createReducerDescription({ }, }, 'rulesEffectsHiddenSections'); +export const rulesEffectsHiddenProgramStageDesc = createReducerDescription({ + [rulesEffectsActionTypes.UPDATE_RULES_EFFECTS]: (state, action) => { + const newState = { ...state }; + + const hideEffects: { [id: string]: Array } = action.payload.rulesEffects && action.payload.rulesEffects[effectActions.HIDE_PROGRAM_STAGE]; + newState[action.payload.formId] = hideEffects ? + Object.keys(hideEffects).reduce((accState, key) => { + accState[key] = true; + return accState; + }, {}) : + null; + + return newState; + }, +}, 'rulesEffectsHiddenProgramStageDesc'); + + const mapMessageEffectTypeToStateKey = { [effectActions.SHOW_ERROR]: messageStateKeys.ERROR, [effectActions.SHOW_WARNING]: messageStateKeys.WARNING, diff --git a/src/core_modules/capture-core/rules/__tests__/rulesEffectsForTrackerProgram.test.js b/src/core_modules/capture-core/rules/__tests__/rulesEffectsForTrackerProgram.test.js index c0990a714d..bbd2514ae8 100644 --- a/src/core_modules/capture-core/rules/__tests__/rulesEffectsForTrackerProgram.test.js +++ b/src/core_modules/capture-core/rules/__tests__/rulesEffectsForTrackerProgram.test.js @@ -31,6 +31,7 @@ test('expressions with d2Functions in tracker program', () => { { id: 'Tx4gHcLselM', displayContent: 'd2:oizp( 10000000 ) = ', data: 'd2:oizp( 10000000 )', location: 'feedback', programRuleActionType: 'DISPLAYTEXT' }, { id: 'f3MrrcCf1z2', displayContent: 'd2:modulus( 12 , 100 ) = ', data: 'd2:modulus( 12 , 100 )', location: 'feedback', programRuleActionType: 'DISPLAYTEXT' }, { id: 'Eeb7Ixr4Pv6', displayContent: 'd2:floor((5+5) / 2) = ', data: 'd2:floor((5+5) / 2)', location: 'feedback', programRuleActionType: 'DISPLAYTEXT' }, + { id: 'nKNmayYigcy', programStageId: 'PUZaKR0Jh2k', programRuleActionType: 'HIDEPROGRAMSTAGE' }, ], }]; const programRulesVariables = []; @@ -72,5 +73,6 @@ test('expressions with d2Functions in tracker program', () => { { type: 'DISPLAYTEXT', id: 'feedback', displayText: { id: 'Tx4gHcLselM', message: 'd2:oizp( 10000000 ) = 1' } }, { type: 'DISPLAYTEXT', id: 'feedback', displayText: { id: 'f3MrrcCf1z2', message: 'd2:modulus( 12 , 100 ) = 12' } }, { type: 'DISPLAYTEXT', id: 'feedback', displayText: { id: 'Eeb7Ixr4Pv6', message: 'd2:floor((5+5) / 2) = 5' } }, // check double parentheses + { type: 'HIDEPROGRAMSTAGE', id: 'PUZaKR0Jh2k' }, ]); }); diff --git a/src/reducers/descriptions/trackerCapture.reducerDescriptions.js b/src/reducers/descriptions/trackerCapture.reducerDescriptions.js index 057daf6d81..720ed088fb 100644 --- a/src/reducers/descriptions/trackerCapture.reducerDescriptions.js +++ b/src/reducers/descriptions/trackerCapture.reducerDescriptions.js @@ -20,6 +20,7 @@ import { rulesEffectsHiddenFieldsDesc, rulesEffectsErrorMessagesDesc, rulesEffectsHiddenSectionsDesc, + rulesEffectsHiddenProgramStageDesc, rulesEffectsCompulsoryFieldsDesc, rulesEffectsFeedbackDesc, rulesEffectsIndicatorsDesc, @@ -116,6 +117,7 @@ export const reducerDescriptions = [ rulesEffectsHiddenFieldsDesc, rulesEffectsErrorMessagesDesc, rulesEffectsHiddenSectionsDesc, + rulesEffectsHiddenProgramStageDesc, rulesEffectsCompulsoryFieldsDesc, rulesEffectsFeedbackDesc, rulesEffectsIndicatorsDesc, From 3cbd281fe49dcfcd1f134f4cbaf3211853127028 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Thu, 7 Sep 2023 12:44:45 +0000 Subject: [PATCH 13/49] chore(release): cut 100.39.0 [skip release] # [100.39.0](https://github.com/dhis2/capture-app/compare/v100.38.0...v100.39.0) (2023-09-07) ### Features * [DHIS2-13343] hidden program stage rule effect ([#3406](https://github.com/dhis2/capture-app/issues/3406)) ([4ef2973](https://github.com/dhis2/capture-app/commit/4ef2973b71d6376f99db07e70bc4d51facb8018e)) --- CHANGELOG.md | 7 +++++++ package.json | 4 ++-- packages/rules-engine/package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e24ce53c1..9bbd699a93 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [100.39.0](https://github.com/dhis2/capture-app/compare/v100.38.0...v100.39.0) (2023-09-07) + + +### Features + +* [DHIS2-13343] hidden program stage rule effect ([#3406](https://github.com/dhis2/capture-app/issues/3406)) ([4ef2973](https://github.com/dhis2/capture-app/commit/4ef2973b71d6376f99db07e70bc4d51facb8018e)) + # [100.38.0](https://github.com/dhis2/capture-app/compare/v100.37.0...v100.38.0) (2023-09-06) diff --git a/package.json b/package.json index 523f6082d0..92d62348e1 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "capture-app", "homepage": ".", - "version": "100.38.0", + "version": "100.39.0", "cacheVersion": "5", "serverVersion": "38", "license": "BSD-3-Clause", @@ -10,7 +10,7 @@ "packages/rules-engine" ], "dependencies": { - "@dhis2/rules-engine-javascript": "100.38.0", + "@dhis2/rules-engine-javascript": "100.39.0", "@dhis2/app-runtime": "^3.9.3", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/d2-icons": "^1.0.1", diff --git a/packages/rules-engine/package.json b/packages/rules-engine/package.json index 9764aec92c..760850a4a9 100644 --- a/packages/rules-engine/package.json +++ b/packages/rules-engine/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/rules-engine-javascript", - "version": "100.38.0", + "version": "100.39.0", "license": "BSD-3-Clause", "main": "./build/cjs/index.js", "scripts": { From 0fab0eba7b63cbfd080990913313fc6b6ff2d38f Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Wed, 13 Sep 2023 03:32:24 +0200 Subject: [PATCH 14/49] fix(translations): sync translations from transifex (master) Automatically merged. --- .tx/config | 2 +- i18n/ar.po | 64 +- i18n/cs.po | 16 +- i18n/es.po | 68 +- i18n/es_419.po | 69 +- i18n/fr.po | 18 +- i18n/id.po | 49 +- i18n/km.po | 47 +- i18n/lo.po | 18 +- i18n/my.po | 273 +++--- i18n/nb.po | 16 +- i18n/nl.po | 18 +- i18n/pt.po | 20 +- i18n/pt_BR.po | 279 +++--- i18n/ro.po | 65 +- i18n/ru.po | 70 +- i18n/si.po | 60 +- i18n/sv.po | 67 +- i18n/tg.po | 277 +++--- i18n/ur.po | 62 +- i18n/{uz.po => uz_UZ_Cyrl.po} | 16 +- i18n/uz_UZ_Latn.po | 1529 +++++++++++++++++++++++++++++++++ i18n/vi.po | 61 +- i18n/zh_CN.po | 18 +- 24 files changed, 2372 insertions(+), 810 deletions(-) rename i18n/{uz.po => uz_UZ_Cyrl.po} (99%) create mode 100644 i18n/uz_UZ_Latn.po diff --git a/.tx/config b/.tx/config index b85af354a6..2b6c02f453 100644 --- a/.tx/config +++ b/.tx/config @@ -1,6 +1,6 @@ [main] host = https://www.transifex.com -lang_map = fa_AF: prs, uz@Cyrl: uz, uz@Latn: uz_Latn +lang_map = fa_AF: prs, uz@Cyrl: uz_UZ_Cyrl, uz@Latn: uz_UZ_Latn [o:hisp-uio:p:app-capture-app:r:en-pot] file_filter = i18n/.po diff --git a/i18n/ar.po b/i18n/ar.po index f8e252c635..5960f8ec4d 100644 --- a/i18n/ar.po +++ b/i18n/ar.po @@ -1,14 +1,14 @@ # # Translators: # KRG HIS , 2020 -# phil_dhis2, 2022 +# Philip Larsen Donnelly, 2022 # Viktor Varland , 2023 # Hamza Assada <7amza.it@gmail.com>, 2023 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-06-27T06:20:33.460Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: Hamza Assada <7amza.it@gmail.com>, 2023\n" "Language-Team: Arabic (https://app.transifex.com/hisp-uio/teams/100509/ar/)\n" @@ -75,6 +75,16 @@ msgstr "تاريخ التسجيل" msgid "Last updated" msgstr "آخر تحديث" +msgid "error encountered during field validation" +msgstr "حدث خطأ أثناء التحقق من صحة الحقل" + +msgid "error" +msgstr "خطأ" + +msgid "" +"Plugins are not yet available - Please contact your system administrator" +msgstr "" + msgid "This value is validating" msgstr "يتم التحقق من القيمة" @@ -368,9 +378,6 @@ msgstr "لا تزال بعض العمليات قيد التشغيل. يرجى ا msgid "Operations running" msgstr "العمليات الجارية" -msgid "Sort" -msgstr "فرز" - msgid "" "This event has unsaved changes. Leaving this page without saving will lose " "these changes. Are you sure you want to discard unsaved changes?" @@ -755,7 +762,7 @@ msgstr "المجدولة زمنياً" msgid "Refer" msgstr "" -msgid "You can’t add any more {{ programStageName }} events" +msgid "You can't add any more {{ programStageName }} events" msgstr "" msgid "Cancel without saving" @@ -819,6 +826,9 @@ msgstr "" msgid "New Enrollment in program{{escape}} {{programName}}" msgstr "" +msgid "Save {{trackedEntityTypeName}}" +msgstr "" + msgid "Save {{trackedEntityName}}" msgstr "" @@ -972,15 +982,6 @@ msgstr "يمكنك أيضًا اختيار برنامج من الشريط الع msgid "Choose a type to start searching" msgstr "اختر نوعًا لبدء البحث" -msgid "Fill in at least {{count}} attribute to search" -msgid_plural "Fill in at least {{count}} attribute to search" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" -msgstr[4] "" -msgstr[5] "" - msgid "Search {{name}}" msgstr "البحث عن {{name}}" @@ -1135,6 +1136,9 @@ msgstr "" msgid "Mark for follow-up" msgstr "اشر من أجل الملحق" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + msgid "Enrollment date" msgstr "تاريخ التسجيل" @@ -1223,32 +1227,12 @@ msgid "" "The scheduled date matches the suggested date, but can be changed if needed." msgstr "" -msgid "The scheduled date is {{count}} days {{position}} the suggested date." -msgid_plural "" -"The scheduled date is {{count}} days {{position}} the suggested date." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" -msgstr[4] "" -msgstr[5] "" - msgid "after" msgstr "بعد" msgid "before" msgstr "قبل" -msgid "There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgid_plural "" -"There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" -msgstr[4] "" -msgstr[5] "" - msgid "" "Scheduling an event in {{stageName}} for {{programName}} in {{orgUnitName}}" msgstr "" @@ -1496,9 +1480,6 @@ msgstr "" msgid "Set coordinate" msgstr "ضبط الإحداثية" -msgid "Page {{currentPage}}" -msgstr "صفحة {{currentPage}}" - msgid "Date" msgstr "التاريخ" @@ -1517,11 +1498,8 @@ msgstr "حتى تاريخ" msgid "To time" msgstr "إلى وقت" -msgid "error encountered during field validation" -msgstr "حدث خطأ أثناء التحقق من صحة الحقل" - -msgid "error" -msgstr "خطأ" +msgid "Page {{currentPage}}" +msgstr "صفحة {{currentPage}}" msgid "Delete polygon" msgstr "حذف المضلع" diff --git a/i18n/cs.po b/i18n/cs.po index dfa8f49095..e85d26ac5f 100644 --- a/i18n/cs.po +++ b/i18n/cs.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-06-01T08:11:59.116Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: Jiří Podhorecký, 2023\n" "Language-Team: Czech (https://app.transifex.com/hisp-uio/teams/100509/cs/)\n" @@ -379,9 +379,6 @@ msgstr "Některé operace stále běží. Prosím, čekejte.." msgid "Operations running" msgstr "Provoz běží" -msgid "Sort" -msgstr "Třídit" - msgid "" "This event has unsaved changes. Leaving this page without saving will lose " "these changes. Are you sure you want to discard unsaved changes?" @@ -773,7 +770,7 @@ msgstr "Plán" msgid "Refer" msgstr "Odkazovat" -msgid "You can’t add any more {{ programStageName }} events" +msgid "You can't add any more {{ programStageName }} events" msgstr "" msgid "Cancel without saving" @@ -1159,6 +1156,9 @@ msgstr "Odstranit značku pro další sledování" msgid "Mark for follow-up" msgstr "Označit pro další sledování" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + msgid "Enrollment date" msgstr "Datum zápisu" @@ -1506,9 +1506,6 @@ msgstr "Chyba při úpravě události, provedené změny nebyly uloženy" msgid "Set coordinate" msgstr "Nastavit souřadnice" -msgid "Page {{currentPage}}" -msgstr "Stránka {{currentPage}}" - msgid "Date" msgstr "datum" @@ -1527,6 +1524,9 @@ msgstr "K datu" msgid "To time" msgstr "Na čas" +msgid "Page {{currentPage}}" +msgstr "Stránka {{currentPage}}" + msgid "Delete polygon" msgstr "Smazat polygon" diff --git a/i18n/es.po b/i18n/es.po index 836149c137..b74921f8ef 100644 --- a/i18n/es.po +++ b/i18n/es.po @@ -3,22 +3,23 @@ # Sergio Valenzuela , 2020 # ericbp , 2021 # Jaime Bosque , 2021 -# phil_dhis2, 2022 +# Philip Larsen Donnelly, 2022 # Gabriela Rodriguez , 2022 # Marta Vila , 2022 # Pablo Pajuelo Cabezas , 2022 -# Enzo Nicolas Rossi , 2023 # Viktor Varland , 2023 # Alison Andrade , 2023 # Janeth Cruz, 2023 # Prabhjot Singh, 2023 +# Christian Atavillos, 2023 +# Enzo Nicolas Rossi , 2023 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-06-01T08:11:59.116Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" -"Last-Translator: Prabhjot Singh, 2023\n" +"Last-Translator: Enzo Nicolas Rossi , 2023\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" @@ -93,6 +94,8 @@ msgstr "error" msgid "" "Plugins are not yet available - Please contact your system administrator" msgstr "" +"Los complementos plugin aún no están disponibles. Comuníquese con el " +"administrador del sistema." msgid "This value is validating" msgstr "Este valor está siendo validado" @@ -396,13 +399,13 @@ msgstr "Algunas operaciones aún se están ejecutando. Espere por favor.." msgid "Operations running" msgstr "Operaciones en ejecución" -msgid "Sort" -msgstr "Organizar" - msgid "" "This event has unsaved changes. Leaving this page without saving will lose " "these changes. Are you sure you want to discard unsaved changes?" msgstr "" +"Este evento tiene cambios no guardados. Si abandona esta página sin guardar," +" se perderán estos cambios. ¿Está seguro de que desea descartar los cambios " +"no guardados?" msgid "No events to display" msgstr "No hay eventos para mostrar" @@ -617,13 +620,13 @@ msgid "Write comment" msgstr "Escribir comentario" msgid "was blanked out and hidden by your last action" -msgstr "" +msgstr "fue borrado y oculto por tu última acción" msgid "Notice" -msgstr "" +msgstr "Aviso" msgid "Close the notice" -msgstr "" +msgstr "cerrar el aviso" msgid "Use new Enrollment dashboard for {{programName}}" msgstr "Usar el nuevo panel de inscripción para {{programName}}" @@ -639,18 +642,30 @@ msgid "" "functionality in Capture is ongoing and will be added in upcoming app " "releases." msgstr "" +"Al hacer clic en registrarse a continuación, comenzará a utilizar el nuevo " +"panel de inscripción en la aplicación Capture para este programa. Por el " +"momento, hay ciertas funciones de la Tracker Capture que aún no se han " +"agregado, incluida la función de relación y referencia. El trabajo para " +"incluir esta funcionalidad Tracker en Capture está en curso y se agregará en" +" próximos lanzamientos de la aplicación." msgid "" "The core team appreciates any feedback on this new functionality which is " "currently being beta tested, please report any issues and feedback in the " "DHIS2 JIRA project." msgstr "" +"El equipo de desarrollo agradece cualquier comentario sobre esta nueva " +"funcionalidad que actualmente se está probando en versión beta. Informe " +"cualquier problema y comentario en el proyecto de JIRA de DHIS2" msgid "" "Click the button below to opt-in to the new enrollment dashboard " "functionality in the Capture app (beta) for this Tracker program for all " "users." msgstr "" +"Haga clic en el botón de abajo para optar por la nueva funcionalidad del " +"panel de inscripción en la aplicación Capture (beta) para este programa " +"Tracker para todos los usuarios." msgid "Yes, opt in" msgstr "Sí, aceptar" @@ -796,8 +811,8 @@ msgstr "Programado" msgid "Refer" msgstr "Referir" -msgid "You can’t add any more {{ programStageName }} events" -msgstr "Nos e pueden agregar más eventos de {{ programStageName }}" +msgid "You can't add any more {{ programStageName }} events" +msgstr "" msgid "Cancel without saving" msgstr "Cancelar sin guardar" @@ -809,7 +824,7 @@ msgid "Program Stages could not be loaded" msgstr "No se pudieron cargar las etapas del programa" msgid "Stage" -msgstr "Fase" +msgstr "Etapa" msgid "Enrollment{{escape}} View Event" msgstr "Inscripción {{escape}} Ver evento" @@ -863,7 +878,7 @@ msgid "New Enrollment in program{{escape}} {{programName}}" msgstr "Nueva inscripción en el programa{{escape}} {{programName}}" msgid "Save {{trackedEntityTypeName}}" -msgstr "" +msgstr "Guardar {{trackedEntityTypeName}}" msgid "Save {{trackedEntityName}}" msgstr "Guardar {{trackedEntityName}}" @@ -1009,7 +1024,7 @@ msgid "Choose a program" msgstr "Elija un programa" msgid "Search for {{titleText}}" -msgstr "Buscar para {{titleText}}" +msgstr "Buscar por {{titleText}}" msgid "Search for" msgstr "Buscar por" @@ -1030,7 +1045,7 @@ msgid "Search by {{name}}" msgstr "Buscar por {{name}}" msgid "Search by attributes" -msgstr "Buscar por atributos" +msgstr "Buscar por atributos de {{trackedEntityName}}" msgid "all programs" msgstr "todos los programas" @@ -1119,7 +1134,7 @@ msgid "New {{trackedEntityName}} in {{programName}}" msgstr "Nuevo {{trackedEntityName}} en {{programName}}" msgid "Search for a {{trackedEntityName}} in {{programName}}" -msgstr "Buscar un {{trackedEntityName}} en {{programName}}" +msgstr "Buscar un(a) {{trackedEntityName}} en {{programName}}" msgid "To work with the selected program," msgstr "Para trabajar con el programa seleccionado," @@ -1193,6 +1208,9 @@ msgstr "Elimina la marca para el seguimiento" msgid "Mark for follow-up" msgstr "Marcar para seguimiento" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + msgid "Enrollment date" msgstr "Fecha de inscripción" @@ -1365,7 +1383,7 @@ msgid "New {{ eventName }} event" msgstr "Nuevo evento {{ eventName }}" msgid "To open this event, please wait until saving is complete" -msgstr "" +msgstr "Para abrir este evento, espere hasta que se complete el guardado." msgid "Show {{ rest }} more" msgstr "Mostrar más {{ resto }} " @@ -1433,13 +1451,13 @@ msgid "Choose a program stage to filter by {{label}}" msgstr "Elija una etapa del programa para filtrar por {{label}}" msgid "Active enrollments" -msgstr "" +msgstr "Inscripciones activas" msgid "Completed enrollments" -msgstr "" +msgstr "Inscripciónes completadas" msgid "Cancelled enrollments" -msgstr "" +msgstr "Inscripciones canceladas " msgid "Working list could not be updated" msgstr "No se pudo actualizar la lista de trabajo" @@ -1554,9 +1572,6 @@ msgstr "Error al editar el evento, no se guardaron los cambios realizados" msgid "Set coordinate" msgstr "Establecer coordenadas" -msgid "Page {{currentPage}}" -msgstr "Página {{currentPage}}" - msgid "Date" msgstr "Fecha" @@ -1575,6 +1590,9 @@ msgstr "A la fecha" msgid "To time" msgstr "Hasta la hora" +msgid "Page {{currentPage}}" +msgstr "Página {{currentPage}}" + msgid "Delete polygon" msgstr "Eliminar polígono" @@ -1582,7 +1600,7 @@ msgid "Set area" msgstr "Establecer área" msgid "Area on map saved" -msgstr "" +msgstr "Área en el mapa guardada" msgid "Compatibility mode" msgstr "Modo de compatibilidad" diff --git a/i18n/es_419.po b/i18n/es_419.po index 737f30c127..42247a9fcb 100644 --- a/i18n/es_419.po +++ b/i18n/es_419.po @@ -1,14 +1,14 @@ # # Translators: -# Enzo Nicolas Rossi , 2023 # Jaime Bosque , 2023 +# Enzo Nicolas Rossi , 2023 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-06-27T06:20:33.460Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" -"Last-Translator: Jaime Bosque , 2023\n" +"Last-Translator: Enzo Nicolas Rossi , 2023\n" "Language-Team: Spanish (Latin America) (https://app.transifex.com/hisp-uio/teams/100509/es_419/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -75,6 +75,16 @@ msgstr "Fecha de inscripción" msgid "Last updated" msgstr "Última actualización" +msgid "error encountered during field validation" +msgstr "" + +msgid "error" +msgstr "" + +msgid "" +"Plugins are not yet available - Please contact your system administrator" +msgstr "" + msgid "This value is validating" msgstr "Este valor está siendo validado" @@ -267,7 +277,7 @@ msgid "Go back to event without saving relationship" msgstr "Volver al evento sin guardar la relación" msgid "Discard unsaved changes?" -msgstr "" +msgstr "¿Descartar los cambios no guardados?" msgid "" "Leaving this page will discard the selections you made for a new " @@ -379,9 +389,6 @@ msgstr "Algunas operaciones aún se están ejecutando. Espere por favor.." msgid "Operations running" msgstr "Operaciones en ejecución" -msgid "Sort" -msgstr "Clasificar" - msgid "" "This event has unsaved changes. Leaving this page without saving will lose " "these changes. Are you sure you want to discard unsaved changes?" @@ -495,6 +502,12 @@ msgstr "Cargando imagen" msgid "Select image" msgstr "Seleccionar imagen" +msgid "Type to filter options" +msgstr "" + +msgid "No match found" +msgstr "" + msgid "Search" msgstr "Buscar" @@ -770,7 +783,7 @@ msgstr "Programado" msgid "Refer" msgstr "Referir" -msgid "You can’t add any more {{ programStageName }} events" +msgid "You can't add any more {{ programStageName }} events" msgstr "" msgid "Cancel without saving" @@ -836,6 +849,9 @@ msgstr "" msgid "New Enrollment in program{{escape}} {{programName}}" msgstr "Nueva inscripción en el programa{{escape}} {{programName}}" +msgid "Save {{trackedEntityTypeName}}" +msgstr "" + msgid "Save {{trackedEntityName}}" msgstr "Guardar {{trackedEntityName}}" @@ -989,12 +1005,6 @@ msgstr "" msgid "Choose a type to start searching" msgstr "" -msgid "Fill in at least {{count}} attribute to search" -msgid_plural "Fill in at least {{count}} attribute to search" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - msgid "Search {{name}}" msgstr "" @@ -1147,6 +1157,9 @@ msgstr "" msgid "Mark for follow-up" msgstr "" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + msgid "Enrollment date" msgstr "Fecha de inscripción" @@ -1235,26 +1248,12 @@ msgid "" "The scheduled date matches the suggested date, but can be changed if needed." msgstr "" -msgid "The scheduled date is {{count}} days {{position}} the suggested date." -msgid_plural "" -"The scheduled date is {{count}} days {{position}} the suggested date." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - msgid "after" msgstr "" msgid "before" msgstr "" -msgid "There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgid_plural "" -"There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - msgid "" "Scheduling an event in {{stageName}} for {{programName}} in {{orgUnitName}}" msgstr "" @@ -1298,9 +1297,6 @@ msgstr "" msgid "Try again or contact your system administrator for support" msgstr "" -msgid "tracked entity instance" -msgstr "" - msgid "Fix errors in the form to continue." msgstr "" @@ -1313,6 +1309,9 @@ msgstr "Perfil de {{TETName}} " msgid "Edit" msgstr "" +msgid "tracked entity instance" +msgstr "" + msgid "New {{ eventName }} event" msgstr "Nuevo evento {{ eventName }}" @@ -1502,9 +1501,6 @@ msgstr "" msgid "Set coordinate" msgstr "" -msgid "Page {{currentPage}}" -msgstr "" - msgid "Date" msgstr "Fecha" @@ -1523,10 +1519,7 @@ msgstr "" msgid "To time" msgstr "" -msgid "error encountered during field validation" -msgstr "" - -msgid "error" +msgid "Page {{currentPage}}" msgstr "" msgid "Delete polygon" diff --git a/i18n/fr.po b/i18n/fr.po index 5ef57aa537..c0ce1365e1 100644 --- a/i18n/fr.po +++ b/i18n/fr.po @@ -1,7 +1,7 @@ # # Translators: # Edem Kossi , 2022 -# phil_dhis2, 2022 +# Philip Larsen Donnelly, 2022 # Karoline Tufte Lien , 2022 # tx_e2f_fr r25 , 2022 # Bram Piot , 2022 @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-06-01T08:11:59.116Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: Yayra Gomado , 2023\n" "Language-Team: French (https://app.transifex.com/hisp-uio/teams/100509/fr/)\n" @@ -402,9 +402,6 @@ msgstr "Certaines opérations sont encore en cours. Veuillez patienter..." msgid "Operations running" msgstr "Opérations en cours" -msgid "Sort" -msgstr "Trier" - msgid "" "This event has unsaved changes. Leaving this page without saving will lose " "these changes. Are you sure you want to discard unsaved changes?" @@ -804,7 +801,7 @@ msgstr "Planning" msgid "Refer" msgstr "Référer" -msgid "You can’t add any more {{ programStageName }} events" +msgid "You can't add any more {{ programStageName }} events" msgstr "" msgid "Cancel without saving" @@ -1198,6 +1195,9 @@ msgstr "Supprimer le marquage pour suivi" msgid "Mark for follow-up" msgstr "Marquer pour suivi" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + msgid "Enrollment date" msgstr "Date d'enrôlement" @@ -1559,9 +1559,6 @@ msgstr "" msgid "Set coordinate" msgstr "Définir les coordonnées" -msgid "Page {{currentPage}}" -msgstr "Page {{page en cours}}" - msgid "Date" msgstr "Date" @@ -1580,6 +1577,9 @@ msgstr "Date de fin" msgid "To time" msgstr "À" +msgid "Page {{currentPage}}" +msgstr "Page {{page en cours}}" + msgid "Delete polygon" msgstr "Supprimer polygone" diff --git a/i18n/id.po b/i18n/id.po index d370e1398a..c8da75e732 100644 --- a/i18n/id.po +++ b/i18n/id.po @@ -5,7 +5,7 @@ # Guardian Sanjaya , 2022 # Viktor Varland , 2022 # Untoro Dwi Raharjo , 2023 -# phil_dhis2, 2023 +# Philip Larsen Donnelly, 2023 # Aprisa Chrysantina , 2023 # Raja Fathurrahim, 2023 # Farida Sibuea , 2023 @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-06-27T06:20:33.460Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: Farida Sibuea , 2023\n" "Language-Team: Indonesian (https://app.transifex.com/hisp-uio/teams/100509/id/)\n" @@ -81,6 +81,16 @@ msgstr "Tanggal pendaftaran" msgid "Last updated" msgstr "Terakhir diperbarui" +msgid "error encountered during field validation" +msgstr "kesalahan yang ditemui selama validasi bidang" + +msgid "error" +msgstr "kesalahan" + +msgid "" +"Plugins are not yet available - Please contact your system administrator" +msgstr "" + msgid "This value is validating" msgstr "Nilai ini memvalidasi" @@ -379,9 +389,6 @@ msgstr "Beberapa operasi masih berjalan. Mohon tunggu.." msgid "Operations running" msgstr "Operasi berjalan" -msgid "Sort" -msgstr "Urutkan" - msgid "" "This event has unsaved changes. Leaving this page without saving will lose " "these changes. Are you sure you want to discard unsaved changes?" @@ -773,7 +780,7 @@ msgstr "Jadwal" msgid "Refer" msgstr "Merujuk" -msgid "You can’t add any more {{ programStageName }} events" +msgid "You can't add any more {{ programStageName }} events" msgstr "" msgid "Cancel without saving" @@ -838,6 +845,9 @@ msgstr "" msgid "New Enrollment in program{{escape}} {{programName}}" msgstr "" +msgid "Save {{trackedEntityTypeName}}" +msgstr "" + msgid "Save {{trackedEntityName}}" msgstr "" @@ -995,10 +1005,6 @@ msgstr "" msgid "Choose a type to start searching" msgstr "Pilih jenis untuk mulai mencari" -msgid "Fill in at least {{count}} attribute to search" -msgid_plural "Fill in at least {{count}} attribute to search" -msgstr[0] "" - msgid "Search {{name}}" msgstr "Telusuri {{nama}}" @@ -1157,6 +1163,9 @@ msgstr "Hapus tanda untuk ditindaklanjuti" msgid "Mark for follow-up" msgstr "Tandai untuk follow up" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + msgid "Enrollment date" msgstr "Tanggal pendaftaran" @@ -1245,22 +1254,12 @@ msgid "" "The scheduled date matches the suggested date, but can be changed if needed." msgstr "" -msgid "The scheduled date is {{count}} days {{position}} the suggested date." -msgid_plural "" -"The scheduled date is {{count}} days {{position}} the suggested date." -msgstr[0] "" - msgid "after" msgstr "Setelah" msgid "before" msgstr "Sebelum" -msgid "There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgid_plural "" -"There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgstr[0] "" - msgid "" "Scheduling an event in {{stageName}} for {{programName}} in {{orgUnitName}}" msgstr "" @@ -1508,9 +1507,6 @@ msgstr "" msgid "Set coordinate" msgstr "Tentukan koordinat" -msgid "Page {{currentPage}}" -msgstr "Halaman {{Halaman saat ini}}" - msgid "Date" msgstr "Tanggal" @@ -1529,11 +1525,8 @@ msgstr "Ke tanggal" msgid "To time" msgstr "Ke waktu" -msgid "error encountered during field validation" -msgstr "kesalahan yang ditemui selama validasi bidang" - -msgid "error" -msgstr "kesalahan" +msgid "Page {{currentPage}}" +msgstr "Halaman {{Halaman saat ini}}" msgid "Delete polygon" msgstr "Hapus poligon" diff --git a/i18n/km.po b/i18n/km.po index 410c983e2d..a36bcf4e1a 100644 --- a/i18n/km.po +++ b/i18n/km.po @@ -1,13 +1,13 @@ # # Translators: -# phil_dhis2, 2022 +# Philip Larsen Donnelly, 2022 # Viktor Varland , 2022 # channara rin, 2023 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-06-27T06:20:33.460Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: channara rin, 2023\n" "Language-Team: Khmer (https://app.transifex.com/hisp-uio/teams/100509/km/)\n" @@ -68,6 +68,16 @@ msgstr "" msgid "Last updated" msgstr "បាន​ធ្វើ​បច្ចុប្បន្នភាព​ចុងក្រោយ" +msgid "error encountered during field validation" +msgstr "" + +msgid "error" +msgstr "" + +msgid "" +"Plugins are not yet available - Please contact your system administrator" +msgstr "" + msgid "This value is validating" msgstr "" @@ -357,9 +367,6 @@ msgstr "" msgid "Operations running" msgstr "" -msgid "Sort" -msgstr "តម្រៀប" - msgid "" "This event has unsaved changes. Leaving this page without saving will lose " "these changes. Are you sure you want to discard unsaved changes?" @@ -744,7 +751,7 @@ msgstr "" msgid "Refer" msgstr "" -msgid "You can’t add any more {{ programStageName }} events" +msgid "You can't add any more {{ programStageName }} events" msgstr "" msgid "Cancel without saving" @@ -808,6 +815,9 @@ msgstr "" msgid "New Enrollment in program{{escape}} {{programName}}" msgstr "" +msgid "Save {{trackedEntityTypeName}}" +msgstr "" + msgid "Save {{trackedEntityName}}" msgstr "" @@ -961,10 +971,6 @@ msgstr "" msgid "Choose a type to start searching" msgstr "" -msgid "Fill in at least {{count}} attribute to search" -msgid_plural "Fill in at least {{count}} attribute to search" -msgstr[0] "" - msgid "Search {{name}}" msgstr "" @@ -1117,6 +1123,9 @@ msgstr "" msgid "Mark for follow-up" msgstr "" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + msgid "Enrollment date" msgstr "ថ្ងៃខែឆ្នាំចុះឈ្មោះ" @@ -1205,22 +1214,12 @@ msgid "" "The scheduled date matches the suggested date, but can be changed if needed." msgstr "" -msgid "The scheduled date is {{count}} days {{position}} the suggested date." -msgid_plural "" -"The scheduled date is {{count}} days {{position}} the suggested date." -msgstr[0] "" - msgid "after" msgstr "" msgid "before" msgstr "" -msgid "There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgid_plural "" -"There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgstr[0] "" - msgid "" "Scheduling an event in {{stageName}} for {{programName}} in {{orgUnitName}}" msgstr "" @@ -1468,9 +1467,6 @@ msgstr "" msgid "Set coordinate" msgstr "" -msgid "Page {{currentPage}}" -msgstr "" - msgid "Date" msgstr "កាលបរិច្ឆេទ" @@ -1489,10 +1485,7 @@ msgstr "" msgid "To time" msgstr "" -msgid "error encountered during field validation" -msgstr "" - -msgid "error" +msgid "Page {{currentPage}}" msgstr "" msgid "Delete polygon" diff --git a/i18n/lo.po b/i18n/lo.po index 768265b14c..96a462426d 100644 --- a/i18n/lo.po +++ b/i18n/lo.po @@ -1,6 +1,6 @@ # # Translators: -# phil_dhis2, 2022 +# Philip Larsen Donnelly, 2022 # Thuy Nguyen , 2022 # Viktor Varland , 2023 # Saysamone Sibounma, 2023 @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-06-01T08:11:59.116Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: Saysamone Sibounma, 2023\n" "Language-Team: Lao (https://app.transifex.com/hisp-uio/teams/100509/lo/)\n" @@ -368,9 +368,6 @@ msgstr "" msgid "Operations running" msgstr "" -msgid "Sort" -msgstr "Sort" - msgid "" "This event has unsaved changes. Leaving this page without saving will lose " "these changes. Are you sure you want to discard unsaved changes?" @@ -755,7 +752,7 @@ msgstr "ກຳນົດເວລາ" msgid "Refer" msgstr "" -msgid "You can’t add any more {{ programStageName }} events" +msgid "You can't add any more {{ programStageName }} events" msgstr "" msgid "Cancel without saving" @@ -1127,6 +1124,9 @@ msgstr "" msgid "Mark for follow-up" msgstr "ໝາຍໄວ້ເພື່ອຕິດຕາມ" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + msgid "Enrollment date" msgstr "ວັນທີ່ລົງທະບຽນ" @@ -1468,9 +1468,6 @@ msgstr "" msgid "Set coordinate" msgstr "ຕັ້ງຄ່າເສັ້ນສະແດງ" -msgid "Page {{currentPage}}" -msgstr "" - msgid "Date" msgstr "ວັນທີ່" @@ -1489,6 +1486,9 @@ msgstr "ເຖີງວັນທີ່" msgid "To time" msgstr "" +msgid "Page {{currentPage}}" +msgstr "" + msgid "Delete polygon" msgstr "" diff --git a/i18n/my.po b/i18n/my.po index e9c710e301..370b8a7761 100644 --- a/i18n/my.po +++ b/i18n/my.po @@ -3,14 +3,14 @@ # Aung Kyi Min , 2019 # Viktor Varland , 2021 # Wanda , 2021 -# phil_dhis2, 2022 +# Philip Larsen Donnelly, 2022 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-05-15T10:06:53.276Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" -"Last-Translator: phil_dhis2, 2022\n" +"Last-Translator: Philip Larsen Donnelly, 2022\n" "Language-Team: Burmese (https://app.transifex.com/hisp-uio/teams/100509/my/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -69,6 +69,16 @@ msgstr "" msgid "Last updated" msgstr "နောက်ဆုံး အသစ်ဆက်ဆက်" +msgid "error encountered during field validation" +msgstr "" + +msgid "error" +msgstr "" + +msgid "" +"Plugins are not yet available - Please contact your system administrator" +msgstr "" + msgid "This value is validating" msgstr "" @@ -253,7 +263,7 @@ msgstr "" msgid "Go back to event without saving relationship" msgstr "" -msgid "Unsaved changes" +msgid "Discard unsaved changes?" msgstr "" msgid "" @@ -261,10 +271,10 @@ msgid "" "relationship" msgstr "" -msgid "Yes, discard" +msgid "Yes, discard changes" msgstr "" -msgid "No, stay here" +msgid "No, cancel" msgstr "" msgid "New event" @@ -334,21 +344,9 @@ msgstr "" msgid "Do you want to create another event?" msgstr "" -msgid "No, cancel" -msgstr "" - msgid "Yes, create new event" msgstr "" -msgid "Leaving this page will discard the changes you made to this event." -msgstr "" - -msgid "Warnings found" -msgstr "" - -msgid "Abort" -msgstr "" - msgid "Back to form" msgstr "" @@ -370,8 +368,10 @@ msgstr "" msgid "Operations running" msgstr "" -msgid "Sort" -msgstr "မျိုးတူခြင်း စုပေါင်းသည်။" +msgid "" +"This event has unsaved changes. Leaving this page without saving will lose " +"these changes. Are you sure you want to discard unsaved changes?" +msgstr "" msgid "No events to display" msgstr "" @@ -481,6 +481,12 @@ msgstr "" msgid "Select image" msgstr "" +msgid "Type to filter options" +msgstr "" + +msgid "No match found" +msgstr "" + msgid "Search" msgstr "" @@ -577,12 +583,42 @@ msgstr "" msgid "Write comment" msgstr "" +msgid "was blanked out and hidden by your last action" +msgstr "" + +msgid "Notice" +msgstr "" + +msgid "Close the notice" +msgstr "" + msgid "Use new Enrollment dashboard for {{programName}}" msgstr "" msgid "Opt in for {{programName}}" msgstr "" +msgid "" +"By clicking opt-in below, you will start using the new enrollment dashboard " +"in the Capture app for this Tracker program. At the moment, there is certain" +" functionality from Tracker Capture that has not yet been added, including " +"relationship and referral functionality. The work on including this Tracker " +"functionality in Capture is ongoing and will be added in upcoming app " +"releases." +msgstr "" + +msgid "" +"The core team appreciates any feedback on this new functionality which is " +"currently being beta tested, please report any issues and feedback in the " +"DHIS2 JIRA project." +msgstr "" + +msgid "" +"Click the button below to opt-in to the new enrollment dashboard " +"functionality in the Capture app (beta) for this Tracker program for all " +"users." +msgstr "" + msgid "Yes, opt in" msgstr "" @@ -716,7 +752,7 @@ msgstr "" msgid "Refer" msgstr "" -msgid "You can’t add any more {{ programStageName }} events" +msgid "You can't add any more {{ programStageName }} events" msgstr "" msgid "Cancel without saving" @@ -780,6 +816,9 @@ msgstr "" msgid "New Enrollment in program{{escape}} {{programName}}" msgstr "" +msgid "Save {{trackedEntityTypeName}}" +msgstr "" + msgid "Save {{trackedEntityName}}" msgstr "" @@ -828,196 +867,189 @@ msgstr "" msgid "Register" msgstr "" -msgid "" -"Fill in at least {{minAttributesRequiredToSearch}} attributes to search" +msgid "Back" +msgstr "‌နောက်သို့ပြန်သွားသည်" + +msgid "events" msgstr "" -msgid "Search {{name}}" +msgid "event" msgstr "" -msgid "Search by {{name}}" +msgid "You don't have access to edit this event" msgstr "" -msgid "Search by attributes" +msgid "Edit event" msgstr "" -msgid "Fill in these fields to search{{escape}} {{ searchableAttributes }}" +msgid "Event details" msgstr "" msgid "" -"Fill in at least {{minAttributesRequiredToSearch}} of these fields to " -"search{{escape}} {{searchableAttributes}}" +"Leaving this page will discard any selections you made for a new " +"relationship" msgstr "" -msgid "Fill in this field to search{{escape}} {{searchableAttributes}}" +msgid "No one is assigned to this event" msgstr "" -msgid "No results found" -msgstr "No results found" - -msgid "" -"You can change your search terms and search again to find what you are " -"looking for." +msgid "Assign" msgstr "" -msgid "Register a user" +msgid "Event assigned to {{name}}" msgstr "" -msgid "Back to search" +msgid "Feedbacks" msgstr "" -msgid "An error has occurred" +msgid "Show all events" msgstr "" -msgid "Too many results" +msgid "Event could not be loaded. Are you sure it exists?" msgstr "" -msgid "Cannot search in all programs" +msgid "Event could not be loaded" msgstr "" -msgid "Back" -msgstr "‌နောက်သို့ပြန်သွားသည်" - -msgid "Search for {{titleText}}" +msgid "Organisation unit could not be loaded" msgstr "" -msgid "Search for" +msgid "Possible duplicates found" msgstr "" -msgid "" -"You can also choose a program from the top bar and search in that program" -msgstr "" +msgid "No results found" +msgstr "No results found" -msgid "Choose a type to start searching" +msgid "An error occurred loading possible duplicates" msgstr "" -msgid "all programs" +msgid "You don't have access to delete this relationship" msgstr "" -msgid "" -"Not finding the results you were looking for? Try to search all programs " -"that use type " +msgid "You don't have access to create any relationships" msgstr "" -msgid "Search in all programs" +msgid "Add relationship" msgstr "" -msgid "If none of search results match, you can create a new " +msgid "No results found for " msgstr "" -msgid "Create new" +msgid "Registering unit" msgstr "" -msgid "Saved lists in this program" +msgid "Choose a registering unit" msgstr "" -msgid "Saved lists offer quick access to your most used views in a program." +msgid "Clear selection" msgstr "" -msgid "" -"There are no saved lists in this program yet, create one using the button " -"below." +msgid "No programs available." msgstr "" -msgid "Create saved list" +msgid "Search for a program" msgstr "" -msgid "events" +msgid "Some programs are being filtered by the chosen registering unit" msgstr "" -msgid "event" +msgid "Show all programs" msgstr "" -msgid "You don't have access to edit this event" +msgid "Choose a program" msgstr "" -msgid "Edit event" +msgid "Search for {{titleText}}" msgstr "" -msgid "Event details" +msgid "Search for" msgstr "" msgid "" -"Leaving this page will discard any selections you made for a new " -"relationship" -msgstr "" - -msgid "No one is assigned to this event" +"You can also choose a program from the top bar and search in that program" msgstr "" -msgid "Assign" +msgid "Choose a type to start searching" msgstr "" -msgid "Event assigned to {{name}}" +msgid "Search {{name}}" msgstr "" -msgid "Feedbacks" +msgid "Search by {{name}}" msgstr "" -msgid "Show all events" +msgid "Search by attributes" msgstr "" -msgid "Event could not be loaded. Are you sure it exists?" +msgid "all programs" msgstr "" -msgid "Event could not be loaded" +msgid "" +"Not finding the results you were looking for? Try to search all programs " +"that use type " msgstr "" -msgid "Organisation unit could not be loaded" +msgid "Search in all programs" msgstr "" -msgid "Possible duplicates found" +msgid "If none of search results match, you can create a new " msgstr "" -msgid "An error occurred loading possible duplicates" +msgid "Create new" msgstr "" -msgid "You don't have access to delete this relationship" +msgid "Fill in these fields to search{{escape}} {{ searchableAttributes }}" msgstr "" -msgid "You don't have access to create any relationships" +msgid "" +"Fill in at least {{minAttributesRequiredToSearch}} of these fields to " +"search{{escape}} {{searchableAttributes}}" msgstr "" -msgid "Add relationship" +msgid "Fill in this field to search{{escape}} {{searchableAttributes}}" msgstr "" -msgid "No results found for " +msgid "" +"You can change your search terms and search again to find what you are " +"looking for." msgstr "" -msgid "Registering unit" +msgid "Back to search" msgstr "" -msgid "Choose a registering unit" +msgid "An error has occurred" msgstr "" -msgid "Clear selection" +msgid "Too many results" msgstr "" -msgid "No programs available." +msgid "Cannot search in all programs" msgstr "" -msgid "Search for a program" +msgid "Missing search criteria" msgstr "" -msgid "Some programs are being filtered by the chosen registering unit" +msgid "Results found" msgstr "" -msgid "Show all programs" +msgid "Selected program" msgstr "" -msgid "Choose a program" +msgid "Search {{uniqueAttrName}}" msgstr "" -msgid "Results found" +msgid "Saved lists in this program" msgstr "" -msgid "Selected program" +msgid "Saved lists offer quick access to your most used views in a program." msgstr "" -msgid "Search {{uniqueAttrName}}" +msgid "" +"There are no saved lists in this program yet, create one using the button " +"below." msgstr "" -msgid "Fill in at least {{minAttributesRequired}} attributes to search" +msgid "Create saved list" msgstr "" msgid "New {{trackedEntityName}} in {{programName}}" @@ -1092,6 +1124,9 @@ msgstr "" msgid "Mark for follow-up" msgstr "" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + msgid "Enrollment date" msgstr "Дата зачисления" @@ -1180,22 +1215,12 @@ msgid "" "The scheduled date matches the suggested date, but can be changed if needed." msgstr "" -msgid "The scheduled date is {{count}} days {{position}} the suggested date." -msgid_plural "" -"The scheduled date is {{count}} days {{position}} the suggested date." -msgstr[0] "" - msgid "after" msgstr "" msgid "before" msgstr "" -msgid "There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgid_plural "" -"There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgstr[0] "" - msgid "" "Scheduling an event in {{stageName}} for {{programName}} in {{orgUnitName}}" msgstr "" @@ -1239,9 +1264,6 @@ msgstr "" msgid "Try again or contact your system administrator for support" msgstr "" -msgid "tracked entity instance" -msgstr "" - msgid "Fix errors in the form to continue." msgstr "" @@ -1254,10 +1276,13 @@ msgstr "" msgid "Edit" msgstr "တည်းဖြတ်သည်" +msgid "tracked entity instance" +msgstr "" + msgid "New {{ eventName }} event" msgstr "" -msgid "This event is not yet preserved and cannot be edited" +msgid "To open this event, please wait until saving is complete" msgstr "" msgid "Show {{ rest }} more" @@ -1308,6 +1333,9 @@ msgstr "" msgid "an error occurred loading working lists" msgstr "" +msgid "Assigned to" +msgstr "" + msgid "Registration Date" msgstr "စာရင်းသွင်းသော နေ့စွဲ" @@ -1317,10 +1345,16 @@ msgstr "" msgid "Enrollment status" msgstr "" -msgid "Assigned to" +msgid "Choose a program stage to filter by {{label}}" msgstr "" -msgid "Choose a program stage to filter by {{label}}" +msgid "Active enrollments" +msgstr "" + +msgid "Completed enrollments" +msgstr "" + +msgid "Cancelled enrollments" msgstr "" msgid "Working list could not be updated" @@ -1434,9 +1468,6 @@ msgstr "" msgid "Set coordinate" msgstr "" -msgid "Page {{currentPage}}" -msgstr "" - msgid "Date" msgstr "ရက်စွဲ" @@ -1455,10 +1486,7 @@ msgstr "နေ့စွဲ သို့" msgid "To time" msgstr "" -msgid "error encountered during field validation" -msgstr "" - -msgid "error" +msgid "Page {{currentPage}}" msgstr "" msgid "Delete polygon" @@ -1467,5 +1495,8 @@ msgstr "" msgid "Set area" msgstr "" +msgid "Area on map saved" +msgstr "" + msgid "Compatibility mode" msgstr "" diff --git a/i18n/nb.po b/i18n/nb.po index 8839054d57..036767eb33 100644 --- a/i18n/nb.po +++ b/i18n/nb.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-06-01T08:11:59.116Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: Karoline Tufte Lien , 2023\n" "Language-Team: Norwegian Bokmål (https://app.transifex.com/hisp-uio/teams/100509/nb/)\n" @@ -381,9 +381,6 @@ msgstr "Noen operasjoner kjører fortsatt. Vennligst vent.." msgid "Operations running" msgstr "Operasjoner kjører" -msgid "Sort" -msgstr "Sorter" - msgid "" "This event has unsaved changes. Leaving this page without saving will lose " "these changes. Are you sure you want to discard unsaved changes?" @@ -776,7 +773,7 @@ msgstr "Planlegg" msgid "Refer" msgstr "Henvis" -msgid "You can’t add any more {{ programStageName }} events" +msgid "You can't add any more {{ programStageName }} events" msgstr "" msgid "Cancel without saving" @@ -1160,6 +1157,9 @@ msgstr "Fjern merk for oppfølging" msgid "Mark for follow-up" msgstr "Merk for oppfølging" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + msgid "Enrollment date" msgstr "Registreringsdato" @@ -1507,9 +1507,6 @@ msgstr "Feil under redigering av hendelsen, endringer ble ikke lagret" msgid "Set coordinate" msgstr "Sett koordinater" -msgid "Page {{currentPage}}" -msgstr "Side {{currentPage}}" - msgid "Date" msgstr "Dato" @@ -1528,6 +1525,9 @@ msgstr "Til dato" msgid "To time" msgstr "Til klokkeslett" +msgid "Page {{currentPage}}" +msgstr "Side {{currentPage}}" + msgid "Delete polygon" msgstr "Slett polygon" diff --git a/i18n/nl.po b/i18n/nl.po index 6d1c23709e..a8a6c3ffe5 100644 --- a/i18n/nl.po +++ b/i18n/nl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-06-01T08:11:59.116Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: Charel van den Elsen, 2023\n" "Language-Team: Dutch (https://app.transifex.com/hisp-uio/teams/100509/nl/)\n" @@ -391,9 +391,6 @@ msgstr "Sommige operaties lopen nog. Even geduld aub.." msgid "Operations running" msgstr "Operaties lopen" -msgid "Sort" -msgstr "Soort" - msgid "" "This event has unsaved changes. Leaving this page without saving will lose " "these changes. Are you sure you want to discard unsaved changes?" @@ -808,8 +805,8 @@ msgstr "Schema" msgid "Refer" msgstr "Refereren" -msgid "You can’t add any more {{ programStageName }} events" -msgstr "Je kunt geen {{ programStageNaam }} evenementen meer toevoegen" +msgid "You can't add any more {{ programStageName }} events" +msgstr "" msgid "Cancel without saving" msgstr "Annuleer zonder op te slaan" @@ -1205,6 +1202,9 @@ msgstr "Markering verwijderen voor vervolg" msgid "Mark for follow-up" msgstr "Markeer voor vervolg" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + msgid "Enrollment date" msgstr "Inschrijvingsdatum" @@ -1563,9 +1563,6 @@ msgstr "" msgid "Set coordinate" msgstr "Coördinaat instellen" -msgid "Page {{currentPage}}" -msgstr "Pagina {{huidigePagina}}" - msgid "Date" msgstr "Datum" @@ -1584,6 +1581,9 @@ msgstr "Daten" msgid "To time" msgstr "Timen" +msgid "Page {{currentPage}}" +msgstr "Pagina {{huidigePagina}}" + msgid "Delete polygon" msgstr "Polygoon verwijderen" diff --git a/i18n/pt.po b/i18n/pt.po index 5fa7e96cad..eb4e766806 100644 --- a/i18n/pt.po +++ b/i18n/pt.po @@ -1,7 +1,7 @@ # # Translators: # David Júnior , 2021 -# phil_dhis2, 2022 +# Philip Larsen Donnelly, 2022 # Ge Joao , 2022 # Gabriela Rodriguez , 2022 # Viktor Varland , 2023 @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-06-01T08:11:59.116Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: Sheila André , 2023\n" "Language-Team: Portuguese (https://app.transifex.com/hisp-uio/teams/100509/pt/)\n" @@ -389,9 +389,6 @@ msgstr "Algumas operações ainda estão em execução. Por favor, espere.." msgid "Operations running" msgstr "Operações em execução" -msgid "Sort" -msgstr "Ordenar" - msgid "" "This event has unsaved changes. Leaving this page without saving will lose " "these changes. Are you sure you want to discard unsaved changes?" @@ -801,8 +798,8 @@ msgstr "Cronograma" msgid "Refer" msgstr "Referir" -msgid "You can’t add any more {{ programStageName }} events" -msgstr "Não pode adicionar mais eventos {{ programStageName }}" +msgid "You can't add any more {{ programStageName }} events" +msgstr "" msgid "Cancel without saving" msgstr "Cancelar sem gravar" @@ -1196,6 +1193,9 @@ msgstr "Remova a marca para acompanhamento" msgid "Mark for follow-up" msgstr "Marcar para acompanhamento" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + msgid "Enrollment date" msgstr "Data de inscrição" @@ -1555,9 +1555,6 @@ msgstr "Erro ao editar o evento, as alterações feitas não foram gravadas" msgid "Set coordinate" msgstr "Definir coordenada" -msgid "Page {{currentPage}}" -msgstr "Página {{currentPage}}" - msgid "Date" msgstr "Encontro" @@ -1576,6 +1573,9 @@ msgstr "Até à data" msgid "To time" msgstr "Para o tempo" +msgid "Page {{currentPage}}" +msgstr "Página {{currentPage}}" + msgid "Delete polygon" msgstr "Excluir polígono" diff --git a/i18n/pt_BR.po b/i18n/pt_BR.po index b87666a42c..0ec8fcac15 100644 --- a/i18n/pt_BR.po +++ b/i18n/pt_BR.po @@ -2,14 +2,14 @@ # Translators: # Oscar Mesones Lapouble , 2021 # Viktor Varland , 2021 -# phil_dhis2, 2022 +# Philip Larsen Donnelly, 2022 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-05-15T10:06:53.276Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" -"Last-Translator: phil_dhis2, 2022\n" +"Last-Translator: Philip Larsen Donnelly, 2022\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/hisp-uio/teams/100509/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -68,6 +68,16 @@ msgstr "Data de Inscrição" msgid "Last updated" msgstr "Última actualização" +msgid "error encountered during field validation" +msgstr "" + +msgid "error" +msgstr "" + +msgid "" +"Plugins are not yet available - Please contact your system administrator" +msgstr "" + msgid "This value is validating" msgstr "" @@ -252,7 +262,7 @@ msgstr "" msgid "Go back to event without saving relationship" msgstr "" -msgid "Unsaved changes" +msgid "Discard unsaved changes?" msgstr "" msgid "" @@ -260,10 +270,10 @@ msgid "" "relationship" msgstr "" -msgid "Yes, discard" +msgid "Yes, discard changes" msgstr "" -msgid "No, stay here" +msgid "No, cancel" msgstr "" msgid "New event" @@ -333,21 +343,9 @@ msgstr "" msgid "Do you want to create another event?" msgstr "" -msgid "No, cancel" -msgstr "" - msgid "Yes, create new event" msgstr "" -msgid "Leaving this page will discard the changes you made to this event." -msgstr "" - -msgid "Warnings found" -msgstr "" - -msgid "Abort" -msgstr "" - msgid "Back to form" msgstr "" @@ -369,8 +367,10 @@ msgstr "" msgid "Operations running" msgstr "" -msgid "Sort" -msgstr "Ordenar" +msgid "" +"This event has unsaved changes. Leaving this page without saving will lose " +"these changes. Are you sure you want to discard unsaved changes?" +msgstr "" msgid "No events to display" msgstr "" @@ -480,6 +480,12 @@ msgstr "" msgid "Select image" msgstr "" +msgid "Type to filter options" +msgstr "" + +msgid "No match found" +msgstr "" + msgid "Search" msgstr "Pesquisar" @@ -576,12 +582,42 @@ msgstr "" msgid "Write comment" msgstr "" +msgid "was blanked out and hidden by your last action" +msgstr "" + +msgid "Notice" +msgstr "" + +msgid "Close the notice" +msgstr "" + msgid "Use new Enrollment dashboard for {{programName}}" msgstr "" msgid "Opt in for {{programName}}" msgstr "" +msgid "" +"By clicking opt-in below, you will start using the new enrollment dashboard " +"in the Capture app for this Tracker program. At the moment, there is certain" +" functionality from Tracker Capture that has not yet been added, including " +"relationship and referral functionality. The work on including this Tracker " +"functionality in Capture is ongoing and will be added in upcoming app " +"releases." +msgstr "" + +msgid "" +"The core team appreciates any feedback on this new functionality which is " +"currently being beta tested, please report any issues and feedback in the " +"DHIS2 JIRA project." +msgstr "" + +msgid "" +"Click the button below to opt-in to the new enrollment dashboard " +"functionality in the Capture app (beta) for this Tracker program for all " +"users." +msgstr "" + msgid "Yes, opt in" msgstr "" @@ -715,7 +751,7 @@ msgstr "Programar" msgid "Refer" msgstr "" -msgid "You can’t add any more {{ programStageName }} events" +msgid "You can't add any more {{ programStageName }} events" msgstr "" msgid "Cancel without saving" @@ -779,6 +815,9 @@ msgstr "" msgid "New Enrollment in program{{escape}} {{programName}}" msgstr "" +msgid "Save {{trackedEntityTypeName}}" +msgstr "" + msgid "Save {{trackedEntityName}}" msgstr "" @@ -827,196 +866,189 @@ msgstr "" msgid "Register" msgstr "" -msgid "" -"Fill in at least {{minAttributesRequiredToSearch}} attributes to search" -msgstr "" +msgid "Back" +msgstr "Voltar" -msgid "Search {{name}}" +msgid "events" msgstr "" -msgid "Search by {{name}}" +msgid "event" msgstr "" -msgid "Search by attributes" +msgid "You don't have access to edit this event" msgstr "" -msgid "Fill in these fields to search{{escape}} {{ searchableAttributes }}" +msgid "Edit event" msgstr "" -msgid "" -"Fill in at least {{minAttributesRequiredToSearch}} of these fields to " -"search{{escape}} {{searchableAttributes}}" +msgid "Event details" msgstr "" -msgid "Fill in this field to search{{escape}} {{searchableAttributes}}" +msgid "" +"Leaving this page will discard any selections you made for a new " +"relationship" msgstr "" -msgid "No results found" +msgid "No one is assigned to this event" msgstr "" -msgid "" -"You can change your search terms and search again to find what you are " -"looking for." -msgstr "" +msgid "Assign" +msgstr "Atribuir" -msgid "Register a user" +msgid "Event assigned to {{name}}" msgstr "" -msgid "Back to search" +msgid "Feedbacks" msgstr "" -msgid "An error has occurred" +msgid "Show all events" msgstr "" -msgid "Too many results" +msgid "Event could not be loaded. Are you sure it exists?" msgstr "" -msgid "Cannot search in all programs" +msgid "Event could not be loaded" msgstr "" -msgid "Back" -msgstr "Voltar" - -msgid "Search for {{titleText}}" +msgid "Organisation unit could not be loaded" msgstr "" -msgid "Search for" +msgid "Possible duplicates found" msgstr "" -msgid "" -"You can also choose a program from the top bar and search in that program" +msgid "No results found" msgstr "" -msgid "Choose a type to start searching" +msgid "An error occurred loading possible duplicates" msgstr "" -msgid "all programs" +msgid "You don't have access to delete this relationship" msgstr "" -msgid "" -"Not finding the results you were looking for? Try to search all programs " -"that use type " +msgid "You don't have access to create any relationships" msgstr "" -msgid "Search in all programs" +msgid "Add relationship" msgstr "" -msgid "If none of search results match, you can create a new " +msgid "No results found for " msgstr "" -msgid "Create new" +msgid "Registering unit" msgstr "" -msgid "Saved lists in this program" +msgid "Choose a registering unit" msgstr "" -msgid "Saved lists offer quick access to your most used views in a program." +msgid "Clear selection" msgstr "" -msgid "" -"There are no saved lists in this program yet, create one using the button " -"below." +msgid "No programs available." msgstr "" -msgid "Create saved list" +msgid "Search for a program" msgstr "" -msgid "events" +msgid "Some programs are being filtered by the chosen registering unit" msgstr "" -msgid "event" +msgid "Show all programs" msgstr "" -msgid "You don't have access to edit this event" +msgid "Choose a program" msgstr "" -msgid "Edit event" +msgid "Search for {{titleText}}" msgstr "" -msgid "Event details" +msgid "Search for" msgstr "" msgid "" -"Leaving this page will discard any selections you made for a new " -"relationship" +"You can also choose a program from the top bar and search in that program" msgstr "" -msgid "No one is assigned to this event" +msgid "Choose a type to start searching" msgstr "" -msgid "Assign" -msgstr "Atribuir" - -msgid "Event assigned to {{name}}" +msgid "Search {{name}}" msgstr "" -msgid "Feedbacks" +msgid "Search by {{name}}" msgstr "" -msgid "Show all events" +msgid "Search by attributes" msgstr "" -msgid "Event could not be loaded. Are you sure it exists?" +msgid "all programs" msgstr "" -msgid "Event could not be loaded" +msgid "" +"Not finding the results you were looking for? Try to search all programs " +"that use type " msgstr "" -msgid "Organisation unit could not be loaded" +msgid "Search in all programs" msgstr "" -msgid "Possible duplicates found" +msgid "If none of search results match, you can create a new " msgstr "" -msgid "An error occurred loading possible duplicates" +msgid "Create new" msgstr "" -msgid "You don't have access to delete this relationship" +msgid "Fill in these fields to search{{escape}} {{ searchableAttributes }}" msgstr "" -msgid "You don't have access to create any relationships" +msgid "" +"Fill in at least {{minAttributesRequiredToSearch}} of these fields to " +"search{{escape}} {{searchableAttributes}}" msgstr "" -msgid "Add relationship" +msgid "Fill in this field to search{{escape}} {{searchableAttributes}}" msgstr "" -msgid "No results found for " +msgid "" +"You can change your search terms and search again to find what you are " +"looking for." msgstr "" -msgid "Registering unit" +msgid "Back to search" msgstr "" -msgid "Choose a registering unit" +msgid "An error has occurred" msgstr "" -msgid "Clear selection" +msgid "Too many results" msgstr "" -msgid "No programs available." +msgid "Cannot search in all programs" msgstr "" -msgid "Search for a program" +msgid "Missing search criteria" msgstr "" -msgid "Some programs are being filtered by the chosen registering unit" +msgid "Results found" msgstr "" -msgid "Show all programs" +msgid "Selected program" msgstr "" -msgid "Choose a program" +msgid "Search {{uniqueAttrName}}" msgstr "" -msgid "Results found" +msgid "Saved lists in this program" msgstr "" -msgid "Selected program" +msgid "Saved lists offer quick access to your most used views in a program." msgstr "" -msgid "Search {{uniqueAttrName}}" +msgid "" +"There are no saved lists in this program yet, create one using the button " +"below." msgstr "" -msgid "Fill in at least {{minAttributesRequired}} attributes to search" +msgid "Create saved list" msgstr "" msgid "New {{trackedEntityName}} in {{programName}}" @@ -1091,6 +1123,9 @@ msgstr "" msgid "Mark for follow-up" msgstr "" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + msgid "Enrollment date" msgstr "" @@ -1179,26 +1214,12 @@ msgid "" "The scheduled date matches the suggested date, but can be changed if needed." msgstr "" -msgid "The scheduled date is {{count}} days {{position}} the suggested date." -msgid_plural "" -"The scheduled date is {{count}} days {{position}} the suggested date." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - msgid "after" msgstr "" msgid "before" msgstr "" -msgid "There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgid_plural "" -"There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - msgid "" "Scheduling an event in {{stageName}} for {{programName}} in {{orgUnitName}}" msgstr "" @@ -1242,9 +1263,6 @@ msgstr "" msgid "Try again or contact your system administrator for support" msgstr "" -msgid "tracked entity instance" -msgstr "" - msgid "Fix errors in the form to continue." msgstr "" @@ -1257,10 +1275,13 @@ msgstr "" msgid "Edit" msgstr "Editar" +msgid "tracked entity instance" +msgstr "" + msgid "New {{ eventName }} event" msgstr "" -msgid "This event is not yet preserved and cannot be edited" +msgid "To open this event, please wait until saving is complete" msgstr "" msgid "Show {{ rest }} more" @@ -1311,6 +1332,9 @@ msgstr "" msgid "an error occurred loading working lists" msgstr "" +msgid "Assigned to" +msgstr "Atribuido a" + msgid "Registration Date" msgstr "Data do Registo" @@ -1320,12 +1344,18 @@ msgstr "" msgid "Enrollment status" msgstr "" -msgid "Assigned to" -msgstr "Atribuido a" - msgid "Choose a program stage to filter by {{label}}" msgstr "" +msgid "Active enrollments" +msgstr "" + +msgid "Completed enrollments" +msgstr "" + +msgid "Cancelled enrollments" +msgstr "" + msgid "Working list could not be updated" msgstr "" @@ -1437,9 +1467,6 @@ msgstr "" msgid "Set coordinate" msgstr "" -msgid "Page {{currentPage}}" -msgstr "" - msgid "Date" msgstr "Data" @@ -1458,10 +1485,7 @@ msgstr "Até à data" msgid "To time" msgstr "" -msgid "error encountered during field validation" -msgstr "" - -msgid "error" +msgid "Page {{currentPage}}" msgstr "" msgid "Delete polygon" @@ -1470,5 +1494,8 @@ msgstr "" msgid "Set area" msgstr "" +msgid "Area on map saved" +msgstr "" + msgid "Compatibility mode" msgstr "" diff --git a/i18n/ro.po b/i18n/ro.po index 369ff6f464..c0eda2217d 100644 --- a/i18n/ro.po +++ b/i18n/ro.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-06-27T06:20:33.460Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: Valeriu Plesca , 2022\n" "Language-Team: Romanian (https://app.transifex.com/hisp-uio/teams/100509/ro/)\n" @@ -73,6 +73,16 @@ msgstr "Data înrolării" msgid "Last updated" msgstr "Ultima actualizare" +msgid "error encountered during field validation" +msgstr "eroare întâlnită în timpul validării câmpului" + +msgid "error" +msgstr "eroare" + +msgid "" +"Plugins are not yet available - Please contact your system administrator" +msgstr "" + msgid "This value is validating" msgstr "Această valoare se validează" @@ -370,9 +380,6 @@ msgstr "Unele operațiuni sunt încă în desfășurare. Așteptați.." msgid "Operations running" msgstr "Operațiuni în derulare" -msgid "Sort" -msgstr "Sortare" - msgid "" "This event has unsaved changes. Leaving this page without saving will lose " "these changes. Are you sure you want to discard unsaved changes?" @@ -486,6 +493,12 @@ msgstr "Încărcare imagine" msgid "Select image" msgstr "Selectați imaginea" +msgid "Type to filter options" +msgstr "" + +msgid "No match found" +msgstr "" + msgid "Search" msgstr "Căutare" @@ -751,7 +764,7 @@ msgstr "" msgid "Refer" msgstr "" -msgid "You can’t add any more {{ programStageName }} events" +msgid "You can't add any more {{ programStageName }} events" msgstr "" msgid "Cancel without saving" @@ -817,6 +830,9 @@ msgstr "" msgid "New Enrollment in program{{escape}} {{programName}}" msgstr "" +msgid "Save {{trackedEntityTypeName}}" +msgstr "" + msgid "Save {{trackedEntityName}}" msgstr "" @@ -972,12 +988,6 @@ msgstr "" msgid "Choose a type to start searching" msgstr "" -msgid "Fill in at least {{count}} attribute to search" -msgid_plural "Fill in at least {{count}} attribute to search" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - msgid "Search {{name}}" msgstr "Căutare {{name}}" @@ -1132,6 +1142,9 @@ msgstr "" msgid "Mark for follow-up" msgstr "" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + msgid "Enrollment date" msgstr "Data înrolării" @@ -1220,26 +1233,12 @@ msgid "" "The scheduled date matches the suggested date, but can be changed if needed." msgstr "" -msgid "The scheduled date is {{count}} days {{position}} the suggested date." -msgid_plural "" -"The scheduled date is {{count}} days {{position}} the suggested date." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - msgid "after" msgstr "după" msgid "before" msgstr "pînă la" -msgid "There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgid_plural "" -"There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - msgid "" "Scheduling an event in {{stageName}} for {{programName}} in {{orgUnitName}}" msgstr "" @@ -1284,9 +1283,6 @@ msgid "Try again or contact your system administrator for support" msgstr "" "Încercați din nou sau contactați administratorul de sistem pentru asistență" -msgid "tracked entity instance" -msgstr "" - msgid "Fix errors in the form to continue." msgstr "Corectați erorile din formular pentru a continua." @@ -1299,6 +1295,9 @@ msgstr "" msgid "Edit" msgstr "Editare" +msgid "tracked entity instance" +msgstr "" + msgid "New {{ eventName }} event" msgstr "Eveniment nou {{ eventName }}" @@ -1488,9 +1487,6 @@ msgstr "" msgid "Set coordinate" msgstr "Setarea coordonatelor" -msgid "Page {{currentPage}}" -msgstr "Pagina {{currentPage}}" - msgid "Date" msgstr "Data" @@ -1509,11 +1505,8 @@ msgstr "Până la data" msgid "To time" msgstr "Pînă la ora" -msgid "error encountered during field validation" -msgstr "eroare întâlnită în timpul validării câmpului" - -msgid "error" -msgstr "eroare" +msgid "Page {{currentPage}}" +msgstr "Pagina {{currentPage}}" msgid "Delete polygon" msgstr "Lichidare poligon" diff --git a/i18n/ru.po b/i18n/ru.po index fed0935162..fd40060b7b 100644 --- a/i18n/ru.po +++ b/i18n/ru.po @@ -2,14 +2,14 @@ # Translators: # Ulanbek Abakirov , 2020 # Wanda , 2021 -# phil_dhis2, 2022 +# Philip Larsen Donnelly, 2022 # Valeriu Plesca , 2022 # Viktor Varland , 2023 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-06-27T06:20:33.460Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: Viktor Varland , 2023\n" "Language-Team: Russian (https://app.transifex.com/hisp-uio/teams/100509/ru/)\n" @@ -77,6 +77,16 @@ msgstr "Дата включения" msgid "Last updated" msgstr "Последнее обновление" +msgid "error encountered during field validation" +msgstr "Произошла ошибка во время валидации поля" + +msgid "error" +msgstr "ошибка" + +msgid "" +"Plugins are not yet available - Please contact your system administrator" +msgstr "" + msgid "This value is validating" msgstr "Идет валидация значения" @@ -378,9 +388,6 @@ msgstr "Некоторые операции еще не заверщены. По msgid "Operations running" msgstr "Операции запущены..." -msgid "Sort" -msgstr "Сортировать" - msgid "" "This event has unsaved changes. Leaving this page without saving will lose " "these changes. Are you sure you want to discard unsaved changes?" @@ -494,6 +501,12 @@ msgstr "Передача изображения" msgid "Select image" msgstr "Выберите изображение" +msgid "Type to filter options" +msgstr "" + +msgid "No match found" +msgstr "" + msgid "Search" msgstr "Поиск" @@ -760,7 +773,7 @@ msgstr "Расписание" msgid "Refer" msgstr "" -msgid "You can’t add any more {{ programStageName }} events" +msgid "You can't add any more {{ programStageName }} events" msgstr "" msgid "Cancel without saving" @@ -824,6 +837,9 @@ msgstr "" msgid "New Enrollment in program{{escape}} {{programName}}" msgstr "" +msgid "Save {{trackedEntityTypeName}}" +msgstr "" + msgid "Save {{trackedEntityName}}" msgstr "" @@ -979,13 +995,6 @@ msgstr "" msgid "Choose a type to start searching" msgstr "" -msgid "Fill in at least {{count}} attribute to search" -msgid_plural "Fill in at least {{count}} attribute to search" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - msgid "Search {{name}}" msgstr "Искать {{name}}" @@ -1138,6 +1147,9 @@ msgstr "" msgid "Mark for follow-up" msgstr "Отметить для последующего наблюдения" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + msgid "Enrollment date" msgstr "Дата зачисления" @@ -1226,28 +1238,12 @@ msgid "" "The scheduled date matches the suggested date, but can be changed if needed." msgstr "" -msgid "The scheduled date is {{count}} days {{position}} the suggested date." -msgid_plural "" -"The scheduled date is {{count}} days {{position}} the suggested date." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - msgid "after" msgstr "после" msgid "before" msgstr "до" -msgid "There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgid_plural "" -"There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - msgid "" "Scheduling an event in {{stageName}} for {{programName}} in {{orgUnitName}}" msgstr "" @@ -1291,9 +1287,6 @@ msgstr "" msgid "Try again or contact your system administrator for support" msgstr "" -msgid "tracked entity instance" -msgstr "Элемент отслеживаемого объекта" - msgid "Fix errors in the form to continue." msgstr "" @@ -1306,6 +1299,9 @@ msgstr "" msgid "Edit" msgstr "Редактировать" +msgid "tracked entity instance" +msgstr "Элемент отслеживаемого объекта" + msgid "New {{ eventName }} event" msgstr "" @@ -1495,9 +1491,6 @@ msgstr "" msgid "Set coordinate" msgstr "Выставить координату" -msgid "Page {{currentPage}}" -msgstr "Страница {{currentPage}}" - msgid "Date" msgstr "Дата" @@ -1516,11 +1509,8 @@ msgstr "До даты" msgid "To time" msgstr "ко времени" -msgid "error encountered during field validation" -msgstr "Произошла ошибка во время валидации поля" - -msgid "error" -msgstr "ошибка" +msgid "Page {{currentPage}}" +msgstr "Страница {{currentPage}}" msgid "Delete polygon" msgstr "Удалить полигон" diff --git a/i18n/si.po b/i18n/si.po index cd630b70ec..13abf7e784 100644 --- a/i18n/si.po +++ b/i18n/si.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-06-27T06:20:33.460Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: Malinda Wijeratne, 2023\n" "Language-Team: Sinhala (https://app.transifex.com/hisp-uio/teams/100509/si/)\n" @@ -66,6 +66,16 @@ msgstr "" msgid "Last updated" msgstr "" +msgid "error encountered during field validation" +msgstr "" + +msgid "error" +msgstr "" + +msgid "" +"Plugins are not yet available - Please contact your system administrator" +msgstr "" + msgid "This value is validating" msgstr "" @@ -355,9 +365,6 @@ msgstr "" msgid "Operations running" msgstr "" -msgid "Sort" -msgstr "පෙළ ගස්වන්න" - msgid "" "This event has unsaved changes. Leaving this page without saving will lose " "these changes. Are you sure you want to discard unsaved changes?" @@ -471,6 +478,12 @@ msgstr "" msgid "Select image" msgstr "" +msgid "Type to filter options" +msgstr "" + +msgid "No match found" +msgstr "" + msgid "Search" msgstr "සොයන්න" @@ -736,7 +749,7 @@ msgstr "" msgid "Refer" msgstr "" -msgid "You can’t add any more {{ programStageName }} events" +msgid "You can't add any more {{ programStageName }} events" msgstr "" msgid "Cancel without saving" @@ -800,6 +813,9 @@ msgstr "" msgid "New Enrollment in program{{escape}} {{programName}}" msgstr "" +msgid "Save {{trackedEntityTypeName}}" +msgstr "" + msgid "Save {{trackedEntityName}}" msgstr "" @@ -953,11 +969,6 @@ msgstr "" msgid "Choose a type to start searching" msgstr "" -msgid "Fill in at least {{count}} attribute to search" -msgid_plural "Fill in at least {{count}} attribute to search" -msgstr[0] "" -msgstr[1] "" - msgid "Search {{name}}" msgstr "" @@ -1110,6 +1121,9 @@ msgstr "" msgid "Mark for follow-up" msgstr "" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + msgid "Enrollment date" msgstr "" @@ -1198,24 +1212,12 @@ msgid "" "The scheduled date matches the suggested date, but can be changed if needed." msgstr "" -msgid "The scheduled date is {{count}} days {{position}} the suggested date." -msgid_plural "" -"The scheduled date is {{count}} days {{position}} the suggested date." -msgstr[0] "" -msgstr[1] "" - msgid "after" msgstr "" msgid "before" msgstr "" -msgid "There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgid_plural "" -"There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgstr[0] "" -msgstr[1] "" - msgid "" "Scheduling an event in {{stageName}} for {{programName}} in {{orgUnitName}}" msgstr "" @@ -1259,9 +1261,6 @@ msgstr "" msgid "Try again or contact your system administrator for support" msgstr "" -msgid "tracked entity instance" -msgstr "" - msgid "Fix errors in the form to continue." msgstr "" @@ -1274,6 +1273,9 @@ msgstr "" msgid "Edit" msgstr "වෙනස් කරන්න" +msgid "tracked entity instance" +msgstr "" + msgid "New {{ eventName }} event" msgstr "" @@ -1463,9 +1465,6 @@ msgstr "" msgid "Set coordinate" msgstr "" -msgid "Page {{currentPage}}" -msgstr "" - msgid "Date" msgstr "දිනය" @@ -1484,10 +1483,7 @@ msgstr "" msgid "To time" msgstr "" -msgid "error encountered during field validation" -msgstr "" - -msgid "error" +msgid "Page {{currentPage}}" msgstr "" msgid "Delete polygon" diff --git a/i18n/sv.po b/i18n/sv.po index a7adbe92ff..095c7c794d 100644 --- a/i18n/sv.po +++ b/i18n/sv.po @@ -1,14 +1,15 @@ # # Translators: -# phil_dhis2, 2022 +# Philip Larsen Donnelly, 2022 # Viktor Varland , 2023 +# Jason Pickering , 2023 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-06-27T06:20:33.460Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" -"Last-Translator: Viktor Varland , 2023\n" +"Last-Translator: Jason Pickering , 2023\n" "Language-Team: Swedish (https://app.transifex.com/hisp-uio/teams/100509/sv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -67,6 +68,16 @@ msgstr "" msgid "Last updated" msgstr "" +msgid "error encountered during field validation" +msgstr "" + +msgid "error" +msgstr "" + +msgid "" +"Plugins are not yet available - Please contact your system administrator" +msgstr "" + msgid "This value is validating" msgstr "" @@ -356,9 +367,6 @@ msgstr "" msgid "Operations running" msgstr "" -msgid "Sort" -msgstr "" - msgid "" "This event has unsaved changes. Leaving this page without saving will lose " "these changes. Are you sure you want to discard unsaved changes?" @@ -472,6 +480,12 @@ msgstr "" msgid "Select image" msgstr "" +msgid "Type to filter options" +msgstr "" + +msgid "No match found" +msgstr "ingen matchning hittad" + msgid "Search" msgstr "Sök" @@ -737,7 +751,7 @@ msgstr "" msgid "Refer" msgstr "" -msgid "You can’t add any more {{ programStageName }} events" +msgid "You can't add any more {{ programStageName }} events" msgstr "" msgid "Cancel without saving" @@ -801,6 +815,9 @@ msgstr "" msgid "New Enrollment in program{{escape}} {{programName}}" msgstr "" +msgid "Save {{trackedEntityTypeName}}" +msgstr "" + msgid "Save {{trackedEntityName}}" msgstr "" @@ -954,11 +971,6 @@ msgstr "" msgid "Choose a type to start searching" msgstr "" -msgid "Fill in at least {{count}} attribute to search" -msgid_plural "Fill in at least {{count}} attribute to search" -msgstr[0] "" -msgstr[1] "" - msgid "Search {{name}}" msgstr "" @@ -1111,6 +1123,9 @@ msgstr "" msgid "Mark for follow-up" msgstr "" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + msgid "Enrollment date" msgstr "inskrivning datum" @@ -1199,24 +1214,12 @@ msgid "" "The scheduled date matches the suggested date, but can be changed if needed." msgstr "" -msgid "The scheduled date is {{count}} days {{position}} the suggested date." -msgid_plural "" -"The scheduled date is {{count}} days {{position}} the suggested date." -msgstr[0] "" -msgstr[1] "" - msgid "after" msgstr "" msgid "before" msgstr "" -msgid "There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgid_plural "" -"There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgstr[0] "" -msgstr[1] "" - msgid "" "Scheduling an event in {{stageName}} for {{programName}} in {{orgUnitName}}" msgstr "" @@ -1260,9 +1263,6 @@ msgstr "" msgid "Try again or contact your system administrator for support" msgstr "" -msgid "tracked entity instance" -msgstr "" - msgid "Fix errors in the form to continue." msgstr "" @@ -1275,6 +1275,9 @@ msgstr "" msgid "Edit" msgstr "Redigera" +msgid "tracked entity instance" +msgstr "" + msgid "New {{ eventName }} event" msgstr "" @@ -1318,7 +1321,7 @@ msgid "Download as XML" msgstr "" msgid "Download as CSV" -msgstr "" +msgstr "Ladda ner som CSV" msgid "Download with current filters" msgstr "" @@ -1464,9 +1467,6 @@ msgstr "" msgid "Set coordinate" msgstr "" -msgid "Page {{currentPage}}" -msgstr "" - msgid "Date" msgstr "Datum" @@ -1485,10 +1485,7 @@ msgstr "" msgid "To time" msgstr "" -msgid "error encountered during field validation" -msgstr "" - -msgid "error" +msgid "Page {{currentPage}}" msgstr "" msgid "Delete polygon" diff --git a/i18n/tg.po b/i18n/tg.po index d92074a42d..6280c6636c 100644 --- a/i18n/tg.po +++ b/i18n/tg.po @@ -1,14 +1,14 @@ # # Translators: # Viktor Varland , 2022 -# phil_dhis2, 2022 +# Philip Larsen Donnelly, 2022 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-05-15T10:06:53.276Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" -"Last-Translator: phil_dhis2, 2022\n" +"Last-Translator: Philip Larsen Donnelly, 2022\n" "Language-Team: Tajik (https://app.transifex.com/hisp-uio/teams/100509/tg/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -67,6 +67,16 @@ msgstr "Санаи номнавис" msgid "Last updated" msgstr "Навсозии охирин" +msgid "error encountered during field validation" +msgstr "" + +msgid "error" +msgstr "" + +msgid "" +"Plugins are not yet available - Please contact your system administrator" +msgstr "" + msgid "This value is validating" msgstr "" @@ -251,7 +261,7 @@ msgstr "" msgid "Go back to event without saving relationship" msgstr "" -msgid "Unsaved changes" +msgid "Discard unsaved changes?" msgstr "" msgid "" @@ -259,10 +269,10 @@ msgid "" "relationship" msgstr "" -msgid "Yes, discard" +msgid "Yes, discard changes" msgstr "" -msgid "No, stay here" +msgid "No, cancel" msgstr "" msgid "New event" @@ -332,21 +342,9 @@ msgstr "" msgid "Do you want to create another event?" msgstr "" -msgid "No, cancel" -msgstr "" - msgid "Yes, create new event" msgstr "" -msgid "Leaving this page will discard the changes you made to this event." -msgstr "" - -msgid "Warnings found" -msgstr "" - -msgid "Abort" -msgstr "" - msgid "Back to form" msgstr "" @@ -368,8 +366,10 @@ msgstr "" msgid "Operations running" msgstr "" -msgid "Sort" -msgstr "Ҷудокунӣ" +msgid "" +"This event has unsaved changes. Leaving this page without saving will lose " +"these changes. Are you sure you want to discard unsaved changes?" +msgstr "" msgid "No events to display" msgstr "" @@ -479,6 +479,12 @@ msgstr "" msgid "Select image" msgstr "" +msgid "Type to filter options" +msgstr "" + +msgid "No match found" +msgstr "" + msgid "Search" msgstr "Ҷустуҷӯ" @@ -575,12 +581,42 @@ msgstr "" msgid "Write comment" msgstr "" +msgid "was blanked out and hidden by your last action" +msgstr "" + +msgid "Notice" +msgstr "" + +msgid "Close the notice" +msgstr "" + msgid "Use new Enrollment dashboard for {{programName}}" msgstr "" msgid "Opt in for {{programName}}" msgstr "" +msgid "" +"By clicking opt-in below, you will start using the new enrollment dashboard " +"in the Capture app for this Tracker program. At the moment, there is certain" +" functionality from Tracker Capture that has not yet been added, including " +"relationship and referral functionality. The work on including this Tracker " +"functionality in Capture is ongoing and will be added in upcoming app " +"releases." +msgstr "" + +msgid "" +"The core team appreciates any feedback on this new functionality which is " +"currently being beta tested, please report any issues and feedback in the " +"DHIS2 JIRA project." +msgstr "" + +msgid "" +"Click the button below to opt-in to the new enrollment dashboard " +"functionality in the Capture app (beta) for this Tracker program for all " +"users." +msgstr "" + msgid "Yes, opt in" msgstr "" @@ -714,7 +750,7 @@ msgstr "Ҷадвал" msgid "Refer" msgstr "" -msgid "You can’t add any more {{ programStageName }} events" +msgid "You can't add any more {{ programStageName }} events" msgstr "" msgid "Cancel without saving" @@ -778,6 +814,9 @@ msgstr "" msgid "New Enrollment in program{{escape}} {{programName}}" msgstr "" +msgid "Save {{trackedEntityTypeName}}" +msgstr "" + msgid "Save {{trackedEntityName}}" msgstr "" @@ -826,196 +865,189 @@ msgstr "" msgid "Register" msgstr "" -msgid "" -"Fill in at least {{minAttributesRequiredToSearch}} attributes to search" -msgstr "" +msgid "Back" +msgstr "Ба қафо" -msgid "Search {{name}}" +msgid "events" msgstr "" -msgid "Search by {{name}}" +msgid "event" msgstr "" -msgid "Search by attributes" +msgid "You don't have access to edit this event" msgstr "" -msgid "Fill in these fields to search{{escape}} {{ searchableAttributes }}" +msgid "Edit event" msgstr "" -msgid "" -"Fill in at least {{minAttributesRequiredToSearch}} of these fields to " -"search{{escape}} {{searchableAttributes}}" +msgid "Event details" msgstr "" -msgid "Fill in this field to search{{escape}} {{searchableAttributes}}" +msgid "" +"Leaving this page will discard any selections you made for a new " +"relationship" msgstr "" -msgid "No results found" +msgid "No one is assigned to this event" msgstr "" -msgid "" -"You can change your search terms and search again to find what you are " -"looking for." -msgstr "" +msgid "Assign" +msgstr "Таъин" -msgid "Register a user" +msgid "Event assigned to {{name}}" msgstr "" -msgid "Back to search" +msgid "Feedbacks" msgstr "" -msgid "An error has occurred" +msgid "Show all events" msgstr "" -msgid "Too many results" +msgid "Event could not be loaded. Are you sure it exists?" msgstr "" -msgid "Cannot search in all programs" +msgid "Event could not be loaded" msgstr "" -msgid "Back" -msgstr "Ба қафо" - -msgid "Search for {{titleText}}" +msgid "Organisation unit could not be loaded" msgstr "" -msgid "Search for" +msgid "Possible duplicates found" msgstr "" -msgid "" -"You can also choose a program from the top bar and search in that program" +msgid "No results found" msgstr "" -msgid "Choose a type to start searching" +msgid "An error occurred loading possible duplicates" msgstr "" -msgid "all programs" +msgid "You don't have access to delete this relationship" msgstr "" -msgid "" -"Not finding the results you were looking for? Try to search all programs " -"that use type " +msgid "You don't have access to create any relationships" msgstr "" -msgid "Search in all programs" +msgid "Add relationship" msgstr "" -msgid "If none of search results match, you can create a new " +msgid "No results found for " msgstr "" -msgid "Create new" +msgid "Registering unit" msgstr "" -msgid "Saved lists in this program" +msgid "Choose a registering unit" msgstr "" -msgid "Saved lists offer quick access to your most used views in a program." +msgid "Clear selection" msgstr "" -msgid "" -"There are no saved lists in this program yet, create one using the button " -"below." +msgid "No programs available." msgstr "" -msgid "Create saved list" +msgid "Search for a program" msgstr "" -msgid "events" +msgid "Some programs are being filtered by the chosen registering unit" msgstr "" -msgid "event" +msgid "Show all programs" msgstr "" -msgid "You don't have access to edit this event" +msgid "Choose a program" msgstr "" -msgid "Edit event" +msgid "Search for {{titleText}}" msgstr "" -msgid "Event details" +msgid "Search for" msgstr "" msgid "" -"Leaving this page will discard any selections you made for a new " -"relationship" +"You can also choose a program from the top bar and search in that program" msgstr "" -msgid "No one is assigned to this event" +msgid "Choose a type to start searching" msgstr "" -msgid "Assign" -msgstr "Таъин" - -msgid "Event assigned to {{name}}" +msgid "Search {{name}}" msgstr "" -msgid "Feedbacks" +msgid "Search by {{name}}" msgstr "" -msgid "Show all events" +msgid "Search by attributes" msgstr "" -msgid "Event could not be loaded. Are you sure it exists?" +msgid "all programs" msgstr "" -msgid "Event could not be loaded" +msgid "" +"Not finding the results you were looking for? Try to search all programs " +"that use type " msgstr "" -msgid "Organisation unit could not be loaded" +msgid "Search in all programs" msgstr "" -msgid "Possible duplicates found" +msgid "If none of search results match, you can create a new " msgstr "" -msgid "An error occurred loading possible duplicates" +msgid "Create new" msgstr "" -msgid "You don't have access to delete this relationship" +msgid "Fill in these fields to search{{escape}} {{ searchableAttributes }}" msgstr "" -msgid "You don't have access to create any relationships" +msgid "" +"Fill in at least {{minAttributesRequiredToSearch}} of these fields to " +"search{{escape}} {{searchableAttributes}}" msgstr "" -msgid "Add relationship" +msgid "Fill in this field to search{{escape}} {{searchableAttributes}}" msgstr "" -msgid "No results found for " +msgid "" +"You can change your search terms and search again to find what you are " +"looking for." msgstr "" -msgid "Registering unit" +msgid "Back to search" msgstr "" -msgid "Choose a registering unit" +msgid "An error has occurred" msgstr "" -msgid "Clear selection" +msgid "Too many results" msgstr "" -msgid "No programs available." +msgid "Cannot search in all programs" msgstr "" -msgid "Search for a program" +msgid "Missing search criteria" msgstr "" -msgid "Some programs are being filtered by the chosen registering unit" +msgid "Results found" msgstr "" -msgid "Show all programs" +msgid "Selected program" msgstr "" -msgid "Choose a program" +msgid "Search {{uniqueAttrName}}" msgstr "" -msgid "Results found" +msgid "Saved lists in this program" msgstr "" -msgid "Selected program" +msgid "Saved lists offer quick access to your most used views in a program." msgstr "" -msgid "Search {{uniqueAttrName}}" +msgid "" +"There are no saved lists in this program yet, create one using the button " +"below." msgstr "" -msgid "Fill in at least {{minAttributesRequired}} attributes to search" +msgid "Create saved list" msgstr "" msgid "New {{trackedEntityName}} in {{programName}}" @@ -1090,6 +1122,9 @@ msgstr "" msgid "Mark for follow-up" msgstr "" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + msgid "Enrollment date" msgstr "Санаи номнавис" @@ -1178,24 +1213,12 @@ msgid "" "The scheduled date matches the suggested date, but can be changed if needed." msgstr "" -msgid "The scheduled date is {{count}} days {{position}} the suggested date." -msgid_plural "" -"The scheduled date is {{count}} days {{position}} the suggested date." -msgstr[0] "" -msgstr[1] "" - msgid "after" msgstr "" msgid "before" msgstr "" -msgid "There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgid_plural "" -"There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgstr[0] "" -msgstr[1] "" - msgid "" "Scheduling an event in {{stageName}} for {{programName}} in {{orgUnitName}}" msgstr "" @@ -1239,9 +1262,6 @@ msgstr "" msgid "Try again or contact your system administrator for support" msgstr "" -msgid "tracked entity instance" -msgstr "" - msgid "Fix errors in the form to continue." msgstr "" @@ -1254,10 +1274,13 @@ msgstr "" msgid "Edit" msgstr "Таҳрир" +msgid "tracked entity instance" +msgstr "" + msgid "New {{ eventName }} event" msgstr "" -msgid "This event is not yet preserved and cannot be edited" +msgid "To open this event, please wait until saving is complete" msgstr "" msgid "Show {{ rest }} more" @@ -1308,6 +1331,9 @@ msgstr "" msgid "an error occurred loading working lists" msgstr "" +msgid "Assigned to" +msgstr "таъиншуда ба" + msgid "Registration Date" msgstr "Санаи бақайдгирӣ" @@ -1317,12 +1343,18 @@ msgstr "" msgid "Enrollment status" msgstr "" -msgid "Assigned to" -msgstr "таъиншуда ба" - msgid "Choose a program stage to filter by {{label}}" msgstr "" +msgid "Active enrollments" +msgstr "" + +msgid "Completed enrollments" +msgstr "" + +msgid "Cancelled enrollments" +msgstr "" + msgid "Working list could not be updated" msgstr "" @@ -1434,9 +1466,6 @@ msgstr "" msgid "Set coordinate" msgstr "" -msgid "Page {{currentPage}}" -msgstr "" - msgid "Date" msgstr "Сана" @@ -1455,10 +1484,7 @@ msgstr "То санаи" msgid "To time" msgstr "" -msgid "error encountered during field validation" -msgstr "" - -msgid "error" +msgid "Page {{currentPage}}" msgstr "" msgid "Delete polygon" @@ -1467,5 +1493,8 @@ msgstr "" msgid "Set area" msgstr "" +msgid "Area on map saved" +msgstr "" + msgid "Compatibility mode" msgstr "" diff --git a/i18n/ur.po b/i18n/ur.po index e9b20d7c34..1165076415 100644 --- a/i18n/ur.po +++ b/i18n/ur.po @@ -1,12 +1,12 @@ # # Translators: -# phil_dhis2, 2022 +# Philip Larsen Donnelly, 2022 # Viktor Varland , 2023 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-06-27T06:20:33.460Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: Viktor Varland , 2023\n" "Language-Team: Urdu (https://app.transifex.com/hisp-uio/teams/100509/ur/)\n" @@ -67,6 +67,16 @@ msgstr "اندراج کی تاریخ" msgid "Last updated" msgstr "آخری اپ ڈیٹ" +msgid "error encountered during field validation" +msgstr "" + +msgid "error" +msgstr "" + +msgid "" +"Plugins are not yet available - Please contact your system administrator" +msgstr "" + msgid "This value is validating" msgstr "" @@ -356,9 +366,6 @@ msgstr "" msgid "Operations running" msgstr "" -msgid "Sort" -msgstr "ترتیب دیں" - msgid "" "This event has unsaved changes. Leaving this page without saving will lose " "these changes. Are you sure you want to discard unsaved changes?" @@ -472,6 +479,12 @@ msgstr "" msgid "Select image" msgstr "" +msgid "Type to filter options" +msgstr "" + +msgid "No match found" +msgstr "" + msgid "Search" msgstr "تلاش کریں" @@ -737,7 +750,7 @@ msgstr "شیڈول" msgid "Refer" msgstr "" -msgid "You can’t add any more {{ programStageName }} events" +msgid "You can't add any more {{ programStageName }} events" msgstr "" msgid "Cancel without saving" @@ -801,6 +814,9 @@ msgstr "" msgid "New Enrollment in program{{escape}} {{programName}}" msgstr "" +msgid "Save {{trackedEntityTypeName}}" +msgstr "" + msgid "Save {{trackedEntityName}}" msgstr "" @@ -954,11 +970,6 @@ msgstr "" msgid "Choose a type to start searching" msgstr "" -msgid "Fill in at least {{count}} attribute to search" -msgid_plural "Fill in at least {{count}} attribute to search" -msgstr[0] "" -msgstr[1] "" - msgid "Search {{name}}" msgstr "" @@ -1111,6 +1122,9 @@ msgstr "" msgid "Mark for follow-up" msgstr "اپ کے لئے نشان زد کریں" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + msgid "Enrollment date" msgstr "اندراج کی تاریخ" @@ -1199,24 +1213,12 @@ msgid "" "The scheduled date matches the suggested date, but can be changed if needed." msgstr "" -msgid "The scheduled date is {{count}} days {{position}} the suggested date." -msgid_plural "" -"The scheduled date is {{count}} days {{position}} the suggested date." -msgstr[0] "" -msgstr[1] "" - msgid "after" msgstr "کے بعد" msgid "before" msgstr "پہلے" -msgid "There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgid_plural "" -"There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgstr[0] "" -msgstr[1] "" - msgid "" "Scheduling an event in {{stageName}} for {{programName}} in {{orgUnitName}}" msgstr "" @@ -1260,9 +1262,6 @@ msgstr "" msgid "Try again or contact your system administrator for support" msgstr "" -msgid "tracked entity instance" -msgstr "" - msgid "Fix errors in the form to continue." msgstr "" @@ -1275,6 +1274,9 @@ msgstr "" msgid "Edit" msgstr "ترمیم" +msgid "tracked entity instance" +msgstr "" + msgid "New {{ eventName }} event" msgstr "" @@ -1464,9 +1466,6 @@ msgstr "" msgid "Set coordinate" msgstr "ہم آہنگی مقرر کریں" -msgid "Page {{currentPage}}" -msgstr "" - msgid "Date" msgstr "تاریخ" @@ -1485,10 +1484,7 @@ msgstr "تاریخ تک" msgid "To time" msgstr "" -msgid "error encountered during field validation" -msgstr "" - -msgid "error" +msgid "Page {{currentPage}}" msgstr "" msgid "Delete polygon" diff --git a/i18n/uz.po b/i18n/uz_UZ_Cyrl.po similarity index 99% rename from i18n/uz.po rename to i18n/uz_UZ_Cyrl.po index 2165735667..3c0495f761 100644 --- a/i18n/uz.po +++ b/i18n/uz_UZ_Cyrl.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-06-01T08:11:59.116Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: Ibatov , 2023\n" "Language-Team: Uzbek (Cyrillic) (https://app.transifex.com/hisp-uio/teams/100509/uz@Cyrl/)\n" @@ -383,9 +383,6 @@ msgstr "Баъзи операциялар ҳали ҳам бажарилмоқд msgid "Operations running" msgstr "Амалиётлар бажарилмоқда" -msgid "Sort" -msgstr "Саралаш" - msgid "" "This event has unsaved changes. Leaving this page without saving will lose " "these changes. Are you sure you want to discard unsaved changes?" @@ -777,7 +774,7 @@ msgstr "Режа" msgid "Refer" msgstr "" -msgid "You can’t add any more {{ programStageName }} events" +msgid "You can't add any more {{ programStageName }} events" msgstr "" msgid "Cancel without saving" @@ -1159,6 +1156,9 @@ msgstr "" msgid "Mark for follow-up" msgstr "Кузатув учун белгиланг" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + msgid "Enrollment date" msgstr "Қайд этилган сана" @@ -1502,9 +1502,6 @@ msgstr "" msgid "Set coordinate" msgstr "Координатани ўрнатинг" -msgid "Page {{currentPage}}" -msgstr "{{currentPage}} саҳифаси" - msgid "Date" msgstr "Сана" @@ -1523,6 +1520,9 @@ msgstr "Шу кунгача" msgid "To time" msgstr "Шу вақтгача" +msgid "Page {{currentPage}}" +msgstr "{{currentPage}} саҳифаси" + msgid "Delete polygon" msgstr "Полигон (кўпбурчак) ни ўчириб ташлаш" diff --git a/i18n/uz_UZ_Latn.po b/i18n/uz_UZ_Latn.po new file mode 100644 index 0000000000..76fee00b45 --- /dev/null +++ b/i18n/uz_UZ_Latn.po @@ -0,0 +1,1529 @@ +# +# Translators: +# Yury Rogachev , 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: i18next-conv\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" +"PO-Revision-Date: 2019-06-27 07:31+0000\n" +"Last-Translator: Yury Rogachev , 2023\n" +"Language-Team: Uzbek (Latin) (https://app.transifex.com/hisp-uio/teams/100509/uz@Latn/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: uz@Latn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "Choose one or more dates..." +msgstr "Bir yoki bir necha sanalarni tanlang..." + +msgid "Choose a date..." +msgstr "Sanani tanlang ..." + +msgid "Today" +msgstr "Bugun" + +msgid "" +"A possible reason for this is that the browser or mode (e.g. privacy mode) " +"is not supported. See log for details." +msgstr "" +"Buning mumkin boʼlgan sabablari quyidagilar; brauzer yoki rejim (masalan, " +"maxfiylik rejimi) qoʼllab quvvatlanmasligi. Tafsilotlar uchun jurnalga " +"qarang." + +msgid "" +"You opened another version of the Capture App in the same domain. Currently," +" the Capture App only supports running one version concurrently (in the same" +" domain). Please refresh this page if you would like to use this version " +"again, but be aware that this will close other versions." +msgstr "" +"Siz ayni shu domenda Nazorat Ilovasining boshqa versiyasini ochdingiz. " +"Hozirda Nazorat Ilovasi faqat bitta versiyani bir vaqtda (bir xil " +"ddomendagi) ishlashini qoʼllab quvvatlaydi. Ushbu versiyani qayta " +"ishlatmoqchi boʼlsangiz, Iltimos, sahifani yangilang, ammo boshqa versiyalar" +" yopilishini unutmang." + +msgid "View {{programName}} dashboard" +msgstr "" + +msgid "View dashboard" +msgstr "Boshqaruv panelini koʼrish" + +msgid "View active enrollment" +msgstr "Faol roʼyxatdan oʼtayotganlarni koʼrish" + +msgid "Re-enroll" +msgstr "Qayta roʼyxatdan oʼtish" + +msgid "in" +msgstr "ichida" + +msgid "Enrolled" +msgstr "Roʼyxatga kiritilgan" + +msgid "Previously enrolled" +msgstr "Ilgari roʼyxatga kiritilgan" + +msgid "Organisation unit" +msgstr "Tashkiliy birlik" + +msgid "Date of enrollment" +msgstr "Roʼyxatga kiritilgan sana" + +msgid "Last updated" +msgstr "Oxirgi yangilangan" + +msgid "error encountered during field validation" +msgstr "maydonni tekshirish vaqtida xatolik yuz berdi" + +msgid "error" +msgstr "xato" + +msgid "" +"Plugins are not yet available - Please contact your system administrator" +msgstr "" + +msgid "This value is validating" +msgstr "Ushbu qiymat tasdiqlanmoqda" + +msgid "Async field update failed" +msgstr "Аsinxron maydon yangilanishi amalga oshmadi" + +msgid "A value is required" +msgstr "Qiymat talab qilinadi" + +msgid "Please provide a valid number" +msgstr "Iltimos, toʼgʼri raqamni koʼrsating" + +msgid "Please provide a valid integer" +msgstr "Iltimos, toʼgʼri butun sonni koʼrsating" + +msgid "Please provide a positive integer" +msgstr "Iltimos, butun musbat sonni koʼrsating" + +msgid "Please provide zero or a positive integer" +msgstr "Iltimos, Nol yoki butun musbat sonni koʼrsating" + +msgid "Please provide a negative integer" +msgstr "Iltimos, butun manfiy sonni koʼrsating" + +msgid "Please provide a valid date" +msgstr "Iltimos, toʼgʼri sanani koʼrsating" + +msgid "A date in the future is not allowed" +msgstr "Kelajakdagi sana qabul qilinmaydi" + +msgid "Please provide a valid date and time" +msgstr "Iltimos, tegishli sana va vaqtni koʼrsating" + +msgid "Please provide a valid time" +msgstr "Iltimos, toʼgʼri vaqtni koʼrsating" + +msgid "Please provide an integer between 0 and 100" +msgstr "" + +msgid "Please provide a valid url" +msgstr "Iltimos, haqiqiy URL manzilni koʼrsating" + +msgid "Please provide a valid email address" +msgstr "Iltimos, amaldagi ye-pochta manzilini koʼrsating" + +msgid "Please provide a valid age" +msgstr "Iltimos, toʼgʼri yoshni koʼrsating" + +msgid "Please provide a valid phone number" +msgstr "Iltimos, toʼgʼri telefon raqamini koʼrsating" + +msgid "Please provide a valid organisation unit" +msgstr "Iltimos, toʼgʼri tashkiliy boʼlimni koʼrsating" + +msgid "Please provide valid coordinates" +msgstr "Iltimos, toʼgʼri koordinatalarni koʼrsating" + +msgid "This value already exists" +msgstr "Bu qiymat allaqachon mavjud" + +msgid "\"From\" cannot be greater than \"To\"" +msgstr "Sana \"gacha\" katta boʼlishi mumkin emas sana \"dan\"" + +msgid "Checking..." +msgstr "Tekshirilmoqda..." + +msgid "Area" +msgstr "Maydon" + +msgid "Coordinate" +msgstr "Muvofiqlashtirish" + +msgid "Enrollment" +msgstr "Roʼyxatga olish" + +msgid "Please select {{categoryName}}" +msgstr "" + +msgid "A future date is not allowed" +msgstr "Kelajakdagi sana tanloviga ruxsat berilmaydi" + +msgid "Saving a new enrollment in {{programName}} in {{orgUnitName}}." +msgstr "" + +msgid "Saving a {{trackedEntityName}} in {{programName}} in {{orgUnitName}}." +msgstr "" + +msgid "Cancel" +msgstr "Bekor qilish" + +msgid "Metadata error. see log for details" +msgstr "MetaMaʼlumotda xatolik. Tafsilotlar uchun jurnalga qarang." + +msgid "Assigned user" +msgstr "Tavsiya etilgan foydalanuvchi" + +msgid "Search for user" +msgstr "Foydalanuvchini izlash" + +msgid "Complete event" +msgstr "" + +msgid "Basic info" +msgstr "Аsosiy maʼlumot" + +msgid "Status" +msgstr "Status" + +msgid "Comments" +msgstr "Izohlar" + +msgid "Relationships" +msgstr "Oʼzaro aloqalar" + +msgid "Assignee" +msgstr "Vakolat berilgan shaxs" + +msgid "Saving to {{programName}} in {{orgUnitName}}" +msgstr "" + +msgid "" +"This is not an event program or the metadata is corrupt. See log for " +"details." +msgstr "" +"Bu hodisa/tadbir dasturi emas yoki metamaʼlumotlar buzilgan. Tafsilotlar " +"uchun jurnalga qarang." + +msgid "This event" +msgstr "Ushbu hodisa/tadbir" + +msgid "" +"Relationship of type {{relationshipTypeName}} to {{entityName}} already " +"exists" +msgstr "" +"{{relationshipTypeName}} turining {{entityName}} bilan aloqasi allaqachon " +"mavjud" + +msgid "Active" +msgstr "Faol" + +msgid "Completed" +msgstr "Toʼldirildi" + +msgid "Please add or cancel comment before saving the event" +msgstr "" +"Iltimos, hodisa/tadbirni saqlashdan oldin sharh yozing yoki bekor qiling" + +msgid "Save and add another" +msgstr "Saqlash va boshqasini qoʼshish" + +msgid "Save and exit" +msgstr "Saqlash va chiqish" + +msgid "Finish" +msgstr "Tugatish" + +msgid "Save without completing" +msgstr "" + +msgid "Complete" +msgstr "Toʼldirish" + +msgid "No write access" +msgstr "Yozuv kiritish uchun ruxsat yoʼq" + +msgid "New {{titleText}}" +msgstr "" + +msgid "Switch to form view" +msgstr "Shakl koʼrinishiga oʼtish" + +msgid "Switch to row view" +msgstr "Jadval koʼrinishiga oʼtish" + +msgid "events added" +msgstr "hodisa/tadbirlar qoʼshildi" + +msgid "No events added" +msgstr "Hech qanday hodisa/tadbir qoʼshilmagan" + +msgid "New event relationship" +msgstr "Yangi hodisa/tadbir munosabatlari" + +msgid "Adding relationship to event." +msgstr "Hodisa/tadbirga aloqa-munosabatlar qoʼshish" + +msgid "Go back to event without saving relationship" +msgstr "Аloqa-munosabatlarni saqlamasdan hodisa/tadbirga qaytish" + +msgid "Discard unsaved changes?" +msgstr "Saqlanmagan oʼzgarishlar bekor qilinsinmi?" + +msgid "" +"Leaving this page will discard the selections you made for a new " +"relationship" +msgstr "" +"Ushbu sahifani tark etsangiz, yangi munosabatlar uchun qilgan tanlovingiz " +"bekor qilinadi." + +msgid "Yes, discard changes" +msgstr "" + +msgid "No, cancel" +msgstr "Yoʼq, bekor qiling" + +msgid "New event" +msgstr "Yangi hodisa" + +msgid "You don't have access to create an event in the current selections" +msgstr "" + +msgid "Save" +msgstr "Saqlash" + +msgid "Saving a {{trackedEntityName}}" +msgstr "" + +msgid "without" +msgstr "" + +msgid "enrollment" +msgstr "" + +msgid "Enroll in a program by selecting a program from the top bar." +msgstr "" + +msgid "An error has occurred. See log for details" +msgstr "Xatolik yuz berdi. Tafsilotlar uchun jurnalga qarang" + +msgid "A duplicate exists (but there were some errors, see log for details" +msgstr "" +"Ikki nusxasi mavjud (lekin xatolar boʼlgan, batafsil maʼlumot uchun jurnalga" +" qarang" + +msgid "" +"An item with this {{attributeName}} is already registered, but you don't " +"have access to it" +msgstr "" +"Ushbu {{attributeName}} element allaqachon roʼyxatdan oʼtgan, ammo siz unga " +"kirish huquqiga ega emassiz" + +msgid "You have already registered this {{attributeName}}" +msgstr "Siz allaqachon {{attributeName}} da roʼyxatdan oʼtgansiz" + +msgid "" +"A {{trackedEntityTypeName}} with this {{attributeName}} is already " +"registered" +msgstr "" +"{{trackedEntityTypeName}} ushbu {{attributeName}} bilan allaqachon " +"roʼyxatdan oʼtgan" + +msgid "Show registered {{trackedEntityTypeName}}" +msgstr "Roʼyxatdan oʼtgan {{trackedEntityTypeName}} ni koʼrsatish" + +msgid "Registered person" +msgstr "Roʼyxatdan oʼtgan shaxs" + +msgid "validation failed" +msgstr "Tasdiqlash amalga oshmadi" + +msgid "Errors" +msgstr "Xatoliklar" + +msgid "Feedback" +msgstr "Qayta aloqa" + +msgid "Indicators" +msgstr "Indikatorlar" + +msgid "Warnings" +msgstr "Ogohlantirishlar" + +msgid "Generate new event" +msgstr "Yangi hodisa/tadbir yaratish" + +msgid "Do you want to create another event?" +msgstr "Haqiqatdan ham boshqa hodisa/tadbir yaratmoqchimisiz?" + +msgid "Yes, create new event" +msgstr "" + +msgid "Back to form" +msgstr "Shaklga qaytish" + +msgid "Save anyway" +msgstr "Nima boʼlganda ham saqlash" + +msgid "Validation errors and warnings" +msgstr "Tasdiqlash xatoliklari va ogohlantirishlari" + +msgid "Validation errors" +msgstr "Tasdiqlashda xatoliklar" + +msgid "Validation warnings" +msgstr "Tasdiqlash toʼgʼrisida ogohlantirishlar" + +msgid "Some operations are still runnning. Please wait.." +msgstr "Baʼzi operatsiyalar hali ham bajarilmoqda. Iltimos, kuting ..." + +msgid "Operations running" +msgstr "Аmaliyotlar bajarilmoqda" + +msgid "" +"This event has unsaved changes. Leaving this page without saving will lose " +"these changes. Are you sure you want to discard unsaved changes?" +msgstr "" + +msgid "No events to display" +msgstr "Koʼrsatiladigan hech qanday hodisa/tadbir yoʼq" + +msgid "Data for offline list not present" +msgstr "Offlayn roʼyxat uchun maʼlumotlar mavjud emas" + +msgid "Close" +msgstr "Yopmoq" + +msgid "Please select the user" +msgstr "Iltimos, foydalanuvchini tanlang" + +msgid "Me" +msgstr "Men" + +msgid "Anyone" +msgstr "Kimdir" + +msgid "None" +msgstr "Yoʼq" + +msgid "Select user" +msgstr "Foydalanuvchini tanlang" + +msgid "to" +msgstr "ga" + +msgid "Days in the future" +msgstr "" + +msgid "From" +msgstr "Dan" + +msgid "Days in the past" +msgstr "" + +msgid "To" +msgstr "Kimga" + +msgid "This week" +msgstr "Ushbu hafta" + +msgid "This month" +msgstr "Ushbu oy" + +msgid "This Year" +msgstr "" + +msgid "Last week" +msgstr "Oxirgi hafta" + +msgid "Last month" +msgstr "Oxirgi oy" + +msgid "Last 3 months" +msgstr "Oxirgi 3 oy" + +msgid "Absolute range" +msgstr "" + +msgid "Relative range" +msgstr "" + +msgid "Max" +msgstr "Maksimum" + +msgid "Min" +msgstr "Minimum" + +msgid "Contains text" +msgstr "Matnni oʼz ichiga oladi" + +msgid "Yes" +msgstr "Ha" + +msgid "mm/dd/yyyy" +msgstr "kun/oy/yil" + +msgid "Years" +msgstr "Yillar" + +msgid "Months" +msgstr "Oylar" + +msgid "Days" +msgstr "Kunlar" + +msgid "Uploading file" +msgstr "Fayl yuklanmoqda" + +msgid "selected" +msgstr "tanlangan" + +msgid "Delete" +msgstr "Oʼchirib tashlash" + +msgid "Select file" +msgstr "Faylni tanlash" + +msgid "No" +msgstr "Yoʼq" + +msgid "Uploading image" +msgstr "Rasm yuklanmoqda" + +msgid "Select image" +msgstr "Rasmni tanlang" + +msgid "Type to filter options" +msgstr "" + +msgid "No match found" +msgstr "" + +msgid "Search" +msgstr "Izlash" + +msgid "Clear" +msgstr "Tozalash" + +msgid "No results" +msgstr "Natija yoʼq" + +msgid "Description" +msgstr "Tavsif" + +msgid "URL" +msgstr "URL" + +msgid "Icon for {{field}}" +msgstr "" + +msgid "start typing to search" +msgstr "qidirish uchun yozishni boshlang" + +msgid "suggestions could not be retrieved" +msgstr "takliflar qabul qilinmadi" + +msgid "No items to display" +msgstr "Koʼrsatiladigan axborot yoʼq" + +msgid "Select columns" +msgstr "Ustunlarni tanlang" + +msgid "Columns to show in table" +msgstr "Jadvalda koʼrsatiladigan ustunlar" + +msgid "Column" +msgstr "Ustun" + +msgid "Update" +msgstr "Янгилаш" + +msgid "Reset filter" +msgstr "" + +msgid "Remove filter" +msgstr "Filtrni olib tashlash" + +msgid "{{fromDate}} to {{toDate}}" +msgstr "{{fromDate}} dan {{toDate}} ga" + +msgid "after or equal to {{date}}" +msgstr "{{date}} dan keyin yoki unga teng" + +msgid "before or equal to {{date}}" +msgstr "{{date}} dan oldin yoki unga teng" + +msgid "greater than or equal to" +msgstr "dan katta yoki teng" + +msgid "less than or equal to" +msgstr "dan kam yoki teng" + +msgid "More filters" +msgstr "Koʼproq Filtr" + +msgid "Stage filters" +msgstr "" + +msgid "Rows per page" +msgstr "Sahifada qatorlar" + +msgid "Could not get organisation unit" +msgstr "Tashkiliy boʼlimni olib boʼlmadi" + +msgid "Program doesn't exist" +msgstr "Dastur mavjud emas" + +msgid "Selected program is invalid for selected registering unit" +msgstr "" +"Tanlangan dastur tanlangan roʼyxatdan olinadigan boʼlim uchun yaroqsiz" + +msgid "Online" +msgstr "Onlayn" + +msgid "Offline" +msgstr "Offlayn" + +msgid "Syncing" +msgstr "Sinxronlashmoqda" + +msgid "Add comment" +msgstr "Izoh qoʼshish" + +msgid "You don't have access to write comments" +msgstr "" + +msgid "Write comment" +msgstr "Fikr yozing" + +msgid "was blanked out and hidden by your last action" +msgstr "" + +msgid "Notice" +msgstr "" + +msgid "Close the notice" +msgstr "" + +msgid "Use new Enrollment dashboard for {{programName}}" +msgstr "" + +msgid "Opt in for {{programName}}" +msgstr "" + +msgid "" +"By clicking opt-in below, you will start using the new enrollment dashboard " +"in the Capture app for this Tracker program. At the moment, there is certain" +" functionality from Tracker Capture that has not yet been added, including " +"relationship and referral functionality. The work on including this Tracker " +"functionality in Capture is ongoing and will be added in upcoming app " +"releases." +msgstr "" + +msgid "" +"The core team appreciates any feedback on this new functionality which is " +"currently being beta tested, please report any issues and feedback in the " +"DHIS2 JIRA project." +msgstr "" + +msgid "" +"Click the button below to opt-in to the new enrollment dashboard " +"functionality in the Capture app (beta) for this Tracker program for all " +"users." +msgstr "" + +msgid "Yes, opt in" +msgstr "" + +msgid "Stop using new Enrollment dashboard for {{programName}}" +msgstr "" + +msgid "Opt out for {{programName}}" +msgstr "" + +msgid "Tracked entity instance with id \"{{teiId}}\" does not exist" +msgstr "" + +msgid "" +"There is an error while opening this enrollment. Please enter a valid url." +msgstr "" + +msgid "" +"An error occurred while fetching enrollments. Please enter a valid url." +msgstr "" + +msgid "Enrollment Dashboard" +msgstr "" + +msgid "No indicator output for this enrollment yet" +msgstr "" + +msgid "No feedback for this enrollment yet" +msgstr "" + +msgid "Quick actions" +msgstr "" + +msgid "New Event" +msgstr "" + +msgid "Schedule an event" +msgstr "" + +msgid "Make referral" +msgstr "Yoʼnalish yarating" + +msgid "No available program stages" +msgstr "" + +msgid "Program stage not found" +msgstr "" + +msgid "" +"Choose a program to add new or see existing enrollments for " +"{{teiDisplayName}}" +msgstr "" + +msgid "" +"{{programName}} has categories. Choose all categories to view dashboard." +msgstr "" + +msgid "Invalid enrollment id {{enrollmentId}}." +msgstr "" + +msgid "Choose an enrollment to view the dashboard." +msgstr "" + +msgid "There are no active enrollments." +msgstr "" + +msgid "Add new enrollment for {{teiDisplayName}} in this program." +msgstr "" + +msgid "No access to program owner." +msgstr "" + +msgid "{{teiDisplayName}} is not enrolled in this program." +msgstr "" + +msgid "Enroll {{teiDisplayName}} in this program." +msgstr "" + +msgid "" +"{{teiDisplayName}} is a {{tetName}} and cannot be enrolled in the " +"{{programName}}. Choose another program that allows {{tetName}} enrollment. " +msgstr "" + +msgid "Enroll a new {{selectedTetName}} in this program." +msgstr "" + +msgid "{{programName}} is an event program and does not have enrollments." +msgstr "" + +msgid "Create a new event in this program." +msgstr "" + +msgid "View working list in this program." +msgstr "" + +msgid "Page is missing required values from URL" +msgstr "" + +msgid "Program is not valid" +msgstr "" + +msgid "Org unit is not valid with current program" +msgstr "" + +msgid "There was an error opening the Page" +msgstr "" + +msgid "Enrollment{{escape}} New Event" +msgstr "" + +msgid "There was an error loading the page" +msgstr "" + +msgid "Choose a registering unit to start reporting" +msgstr "Xisobot boshlash uchun roʼyxatdan oʼtishni tanlang" + +msgid "There are no feedbacks for this event" +msgstr "" + +msgid "There are no indicators for this event" +msgstr "" + +msgid "Program stage is invalid" +msgstr "" + +msgid "Report" +msgstr "Hisobot" + +msgid "Schedule" +msgstr "Reja" + +msgid "Refer" +msgstr "" + +msgid "You can't add any more {{ programStageName }} events" +msgstr "" + +msgid "Cancel without saving" +msgstr "" + +msgid "Choose a stage for a new event" +msgstr "" + +msgid "Program Stages could not be loaded" +msgstr "" + +msgid "Stage" +msgstr "Босқич" + +msgid "Enrollment{{escape}} View Event" +msgstr "" + +msgid "Enrollment{{escape}} Edit Event" +msgstr "" + +msgid "The enrollment event data could not be found" +msgstr "" + +msgid "There are no feedback for this event" +msgstr "" + +msgid "Registered events" +msgstr "Roʼyxatdan oʼtgan hodisa/tadbirlar" + +msgid "Please select {{category}}." +msgstr "" + +msgid "Or see all records accessible to you in {{program}} " +msgstr "" + +msgid "Or see all events accessible to you in {{program}}" +msgstr "" + +msgid "Please select an organisation unit." +msgstr "" + +msgid "New" +msgstr "Yangi" + +msgid "Choose the {{missingCategories}} to start reporting" +msgstr "" + +msgid "Save as new" +msgstr "" + +msgid "View enrollment" +msgstr "" + +msgid "Create for" +msgstr "" + +msgid "" +"You can also choose a program from the top bar and create in that program" +msgstr "" + +msgid "New Enrollment in program{{escape}} {{programName}}" +msgstr "" + +msgid "Save {{trackedEntityTypeName}}" +msgstr "" + +msgid "Save {{trackedEntityName}}" +msgstr "" + +msgid "Save new {{trackedEntityTypeName}} and link" +msgstr "" + +msgid "Link" +msgstr "Havola" + +msgid "Save as new {{trackedEntityName}}" +msgstr "" + +msgid "Some programs are being filtered." +msgstr "Baʼzi dasturlar Filtrlanmoqda." + +msgid "Show all" +msgstr "Barchaga koʼrsatish" + +msgid "Program" +msgstr "Programma" + +msgid "Organisation Unit" +msgstr "Tashkiliy birlik" + +msgid "Registration" +msgstr "Roʼyxatdan oʼtish" + +msgid "Search results" +msgstr "Qidiruv natijalari" + +msgid "No {{trackedEntityTypeName}} found." +msgstr "Hech qanday {{trackedEntityTypeName}} topilmadi" + +msgid "New search" +msgstr "Yangi qidiruv" + +msgid "Edit search" +msgstr "Qidiruvni tahrirlash" + +msgid "Link to an existing {{trackedEntityType}}" +msgstr "Mavjud {{trackedEntityType}} ga havola" + +msgid "Create new {{trackedEntityType}}" +msgstr "Yangi {{trackedEntityType}} yaratish" + +msgid "Register" +msgstr "Roʼyxatga olish" + +msgid "Back" +msgstr "Orqaga" + +msgid "events" +msgstr "" + +msgid "event" +msgstr "" + +msgid "You don't have access to edit this event" +msgstr "" + +msgid "Edit event" +msgstr "Hodisa/tadbirni tahrirlang" + +msgid "Event details" +msgstr "" + +msgid "" +"Leaving this page will discard any selections you made for a new " +"relationship" +msgstr "" +"Ushbu sahifani tark etsangiz, yangi aloqa-munosabatlar uchun qilingan barcha" +" tanlovlar bekor qilinadi" + +msgid "No one is assigned to this event" +msgstr "Ushbu hodisa/tadbirga hech kim biriktirilmagan" + +msgid "Assign" +msgstr "Tayinlangan" + +msgid "Event assigned to {{name}}" +msgstr "Hodisa/tadbir {{name}} ga biriktirildi" + +msgid "Feedbacks" +msgstr "Qayta aloqalar" + +msgid "Show all events" +msgstr "Barcha hodisa/tadbirlarni koʼrsatish" + +msgid "Event could not be loaded. Are you sure it exists?" +msgstr "" +"Hodisa/tadbirni yuklab boʼlmadi. Uning mavjudligiga ishonchingiz komilmi?" + +msgid "Event could not be loaded" +msgstr "Hodisa/tadbirni yuklab boʼlmadi" + +msgid "Organisation unit could not be loaded" +msgstr "Tashkiliy boʼlimni yuklab boʼlmadi" + +msgid "Possible duplicates found" +msgstr "Boʼlishi mumkin boʼlgan nusxalar topildi" + +msgid "No results found" +msgstr "Hech qanday natija topilmadi" + +msgid "An error occurred loading possible duplicates" +msgstr "" + +msgid "You don't have access to delete this relationship" +msgstr "" + +msgid "You don't have access to create any relationships" +msgstr "" + +msgid "Add relationship" +msgstr "Oʼzaro aloqa kiritish" + +msgid "No results found for " +msgstr "" + +msgid "Registering unit" +msgstr "Roʼyxatga olish muassasasi" + +msgid "Choose a registering unit" +msgstr "" + +msgid "Clear selection" +msgstr "" + +msgid "No programs available." +msgstr "Hech qanday dastur mavjud emas." + +msgid "Search for a program" +msgstr "" + +msgid "Some programs are being filtered by the chosen registering unit" +msgstr "" + +msgid "Show all programs" +msgstr "" + +msgid "Choose a program" +msgstr "" + +msgid "Search for {{titleText}}" +msgstr "" + +msgid "Search for" +msgstr "Qidirish" + +msgid "" +"You can also choose a program from the top bar and search in that program" +msgstr "" +"Bundan tashqari, yuqori satrda dasturni tanlashingiz va ushbu dastur ichida " +"qidirishingiz mumkin" + +msgid "Choose a type to start searching" +msgstr "Qidiruv turini tanlang va qidirishni boshlang" + +msgid "Search {{name}}" +msgstr "{{name}} orqali qidirish" + +msgid "Search by {{name}}" +msgstr "" + +msgid "Search by attributes" +msgstr "Аtribut orqali qidirish" + +msgid "all programs" +msgstr "" + +msgid "" +"Not finding the results you were looking for? Try to search all programs " +"that use type " +msgstr "" + +msgid "Search in all programs" +msgstr "Barcha dasturlarda qidirish" + +msgid "If none of search results match, you can create a new " +msgstr "" + +msgid "Create new" +msgstr "Yangisini yaratish" + +msgid "Fill in these fields to search{{escape}} {{ searchableAttributes }}" +msgstr "" + +msgid "" +"Fill in at least {{minAttributesRequiredToSearch}} of these fields to " +"search{{escape}} {{searchableAttributes}}" +msgstr "" + +msgid "Fill in this field to search{{escape}} {{searchableAttributes}}" +msgstr "" + +msgid "" +"You can change your search terms and search again to find what you are " +"looking for." +msgstr "" +"Qidiruv soʼzlarini oʼzgartirib, qidirilayotgan axborotni qayta qidiruvga " +"topshirishingiz mumkin." + +msgid "Back to search" +msgstr "Qidiruvga qaytish" + +msgid "An error has occurred" +msgstr "Xatolik yuz berdi" + +msgid "Too many results" +msgstr "Natija juda koʼp" + +msgid "Cannot search in all programs" +msgstr "" + +msgid "Missing search criteria" +msgstr "" + +msgid "Results found" +msgstr "Natijalar topildi" + +msgid "Selected program" +msgstr "Tanlangan dastur" + +msgid "Search {{uniqueAttrName}}" +msgstr "{{uniqueAttrName}} orqali qidirish" + +msgid "Saved lists in this program" +msgstr "" + +msgid "Saved lists offer quick access to your most used views in a program." +msgstr "" + +msgid "" +"There are no saved lists in this program yet, create one using the button " +"below." +msgstr "" + +msgid "Create saved list" +msgstr "" + +msgid "New {{trackedEntityName}} in {{programName}}" +msgstr "" + +msgid "Search for a {{trackedEntityName}} in {{programName}}" +msgstr "" + +msgid "To work with the selected program," +msgstr "Tanlangan dastur bilan ishlash uchun," + +msgid "open the Tracker Capture app" +msgstr "Kuzatuv-Nazorat dasturini oching" + +msgid "This program is protected" +msgstr "" + +msgid "Reason to check for enrollments" +msgstr "" + +msgid "" +"Describe the reason you are checking for enrollments in this protected " +"program" +msgstr "" + +msgid "Check for enrollments" +msgstr "" + +msgid "" +"You must provide a reason to check for enrollments in this protected " +"program. All activity will be logged." +msgstr "" + +msgid "Save comment" +msgstr "Fikr/izohni saqlang" + +msgid "Enrollment actions" +msgstr "" + +msgid "We are processing your request." +msgstr "" + +msgid "Only one enrollment per {{tetName}} is allowed in this program" +msgstr "" + +msgid "Add new" +msgstr "Янгисини қўшиш" + +msgid "Reactivate" +msgstr "" + +msgid "Mark as cancelled" +msgstr "" + +msgid "Mark incomplete" +msgstr "" + +msgid "Delete enrollment" +msgstr "Roʼyxatdan oʼtkazish oʼchirilsin" + +msgid "" +"Are you sure you want to delete this enrollment? This will permanently " +"remove the current enrollment." +msgstr "" + +msgid "Yes, delete enrollment." +msgstr "" + +msgid "Remove mark for follow-up" +msgstr "" + +msgid "Mark for follow-up" +msgstr "Kuzatuv uchun belgilang" + +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + +msgid "Enrollment date" +msgstr "Qayd qilingan sana" + +msgid "Incident date" +msgstr "Hodisa sanasi" + +msgid "Enrollment widget could not be loaded. Please try again later" +msgstr "" + +msgid "Follow-up" +msgstr "Kuzatish" + +msgid "Started at {{orgUnitName}}" +msgstr "" + +msgid "Owned by {{ownerOrgUnit}}" +msgstr "" + +msgid "Last updated {{date}}" +msgstr "" + +msgid "Cancelled" +msgstr "Bekor qilindi" + +msgid "Comments about this enrollment" +msgstr "" + +msgid "Write a comment about this enrollment" +msgstr "" + +msgid "This enrollment doesn't have any comments" +msgstr "" + +msgid "organisation unit could not be retrieved. Please try again later." +msgstr "" + +msgid "Saving to {{stageName}} for {{programName}} in {{orgUnitName}}" +msgstr "" + +msgid "program or stage is invalid" +msgstr "" + +msgid "Error" +msgstr "Xatolik" + +msgid "Warning" +msgstr "Ogohlantirish" + +msgid "Comments about this event" +msgstr "" + +msgid "Write a comment about this event" +msgstr "" + +msgid "This event doesn't have any comments" +msgstr "" + +msgid "stage not found in rules execution" +msgstr "" + +msgid "Delete event" +msgstr "Hodisa/tadbirni oʼchirib tashlash" + +msgid "Yes, delete event" +msgstr "" + +msgid "Go to “Schedule” tab to reschedule this event" +msgstr "" + +msgid "Scheduled date cannot be changed for {{ eventStatus }} events" +msgstr "" + +msgid "Event completed" +msgstr "" + +msgid "Back to all stages and events" +msgstr "" + +msgid "Schedule date info" +msgstr "" + +msgid "Scheduled automatically for {{suggestedScheduleDate}}" +msgstr "" + +msgid "" +"The scheduled date matches the suggested date, but can be changed if needed." +msgstr "" + +msgid "after" +msgstr "" + +msgid "before" +msgstr "" + +msgid "" +"Scheduling an event in {{stageName}} for {{programName}} in {{orgUnitName}}" +msgstr "" + +msgid "Schedule info" +msgstr "" + +msgid "Schedule date / Due date" +msgstr "" + +msgid "Event comments" +msgstr "" + +msgid "Write a comment about this scheduled event" +msgstr "" + +msgid "" +"Change information about this {{trackedEntityName}} here. To change " +"information about this enrollment, use the Edit button in the in the " +"Enrollment box on this dashboard" +msgstr "" + +msgid " Loading..." +msgstr "" + +msgid "Save changes" +msgstr "Oʼzgartirishni saqlash" + +msgid "Profile" +msgstr "Profil" + +msgid "There is a problem with this form" +msgstr "" + +msgid "There are warnings in this form" +msgstr "" + +msgid "There was a problem saving changes" +msgstr "" + +msgid "Try again or contact your system administrator for support" +msgstr "" + +msgid "Fix errors in the form to continue." +msgstr "" + +msgid "Profile widget could not be loaded. Please try again later" +msgstr "" + +msgid "{{TETName}} profile" +msgstr "" + +msgid "Edit" +msgstr "Tahrirlash" + +msgid "tracked entity instance" +msgstr "kuzatilayotgan obʼekt namunasi" + +msgid "New {{ eventName }} event" +msgstr "" + +msgid "To open this event, please wait until saving is complete" +msgstr "" + +msgid "Show {{ rest }} more" +msgstr "" + +msgid "Reset list" +msgstr "" + +msgid "Go to full {{ eventName }}" +msgstr "" + +msgid "This stage can only have one event" +msgstr "" + +msgid "Events could not be retrieved. Please try again later." +msgstr "" + +msgid "{{ totalEvents }} events" +msgstr "" + +msgid "{{ overdueEvents }} overdue" +msgstr "" + +msgid "{{ scheduledEvents }} scheduled" +msgstr "" + +msgid "Stages and Events" +msgstr "" + +msgid "Working list could not be loaded" +msgstr "Ishchi roʼyxatni yuklab boʼlmadi" + +msgid "Download as JSON" +msgstr "JSON sifatida yuklash" + +msgid "Download as XML" +msgstr "XML sifatida yuklash" + +msgid "Download as CSV" +msgstr "CSV sifatida yuklang" + +msgid "Download with current filters" +msgstr "Joriy Filtrlar asosida yuklash" + +msgid "Download data..." +msgstr "Maʼlumotlarni yuklab olish ..." + +msgid "an error occurred loading working lists" +msgstr "ishchi roʼyxatni yuklashda xatolik yuz berdi" + +msgid "Assigned to" +msgstr "" + +msgid "Registration Date" +msgstr "Roʼyxatga olingan sana" + +msgid "Inactive" +msgstr "Faol emas" + +msgid "Enrollment status" +msgstr "Roʼyxatga olish holati" + +msgid "Choose a program stage to filter by {{label}}" +msgstr "" + +msgid "Active enrollments" +msgstr "" + +msgid "Completed enrollments" +msgstr "" + +msgid "Cancelled enrollments" +msgstr "" + +msgid "Working list could not be updated" +msgstr "" + +msgid "an error occurred loading the working lists" +msgstr "" + +msgid "an error occurred loading Tracked entity instance lists" +msgstr "" + +msgid "Update view" +msgstr "Yangilangan koʼrinish" + +msgid "Save current view..." +msgstr "Joriy koʼrinishni saqlash ..." + +msgid "Save current view as..." +msgstr "Ushbu joriy koʼrinish sifatida saqlash" + +msgid "Delete view" +msgstr "Koʼzdan kechirishni oʼchirib tashlash" + +msgid "Share view..." +msgstr "Koʼrinish bilan boʼlishish ..." + +msgid "Do you really want to delete the '{{templateName}}' view?" +msgstr "" +"Haqiqatdan ham '{{templateName}}' koʼrinishini oʼchirib tashlamoqchimisiz?" + +msgid "Confirm" +msgstr "Tasdiqlang" + +msgid "Save As view" +msgstr "Ushbu koʼrinish sifatida saqlash" + +msgid "View name" +msgstr "Ismini koʼrish" + +msgid "Show Less" +msgstr "" + +msgid "Show All" +msgstr "Barchasini koʼrsatish" + +msgid "An error has occured. See log for details" +msgstr "Xatolik yuz berdi. Tafsilotlarni jurnaldan koʼring." + +msgid "Scheduled{{ escape }} due {{ time }}" +msgstr "" + +msgid "Scheduled" +msgstr "Reja boʼyicha" + +msgid "Overdue{{ escape }} due {{ time }}" +msgstr "" + +msgid "Overdue" +msgstr "Muddat oʼtgan" + +msgid "Skipped" +msgstr "Oʼtkazib yuborildi" + +msgid "Visited" +msgstr "Tashrif buyurdi" + +msgid "{{trackedEntityName}} in program{{escape}} {{programName}}" +msgstr "" + +msgid "Program not found" +msgstr "Dastur topilmadi" + +msgid "Program is not a tracker program" +msgstr "Dastur kuzatuv dasturi emas" + +msgid "Error saving event" +msgstr "Hodisa/tadbirni saqlashda xato" + +msgid "Could not save event" +msgstr "" + +msgid "Could not delete event" +msgstr "Hodisa/tadbirni oʼchirib tashlab boʼlmadi" + +msgid "Could not save working list" +msgstr "Ishchi roʼyxat saqlanmadi" + +msgid "Could not add working list" +msgstr "Ishchi roʼyxatni qoʼshib boʼlmadi" + +msgid "Could not delete working list" +msgstr "Ishchi roʼyxatni oʼchirib tashlab boʼlmadi" + +msgid "Organisation unit search failed." +msgstr "" + +msgid "Error saving tracked entity instance" +msgstr "" + +msgid "Error saving enrollment" +msgstr "" + +msgid "Error saving the enrollment event" +msgstr "" + +msgid "Error deleting the enrollment event" +msgstr "" + +msgid "Error editing the event, the changes made were not saved" +msgstr "" + +msgid "Set coordinate" +msgstr "Koordinatani oʼrnating" + +msgid "Date" +msgstr "Sana" + +msgid "Time" +msgstr "Vaqt" + +msgid "From date" +msgstr "Sanadan boshlab" + +msgid "From time" +msgstr "Vaqtdan boshlab" + +msgid "To date" +msgstr "Shu kungacha" + +msgid "To time" +msgstr "Shu vaqtgacha" + +msgid "Page {{currentPage}}" +msgstr "{{currentPage}} sahifasi" + +msgid "Delete polygon" +msgstr "Poligon (koʼpburchak) ni oʼchirib tashlash" + +msgid "Set area" +msgstr "Hududni belgilang" + +msgid "Area on map saved" +msgstr "" + +msgid "Compatibility mode" +msgstr "Muvofiqlik rejimi" diff --git a/i18n/vi.po b/i18n/vi.po index 754ecf982e..83fb30e45c 100644 --- a/i18n/vi.po +++ b/i18n/vi.po @@ -1,6 +1,6 @@ # # Translators: -# phil_dhis2, 2022 +# Philip Larsen Donnelly, 2022 # Mai Nguyen , 2022 # Thuy Nguyen , 2023 # Viktor Varland , 2023 @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-06-27T06:20:33.460Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: Viktor Varland , 2023\n" "Language-Team: Vietnamese (https://app.transifex.com/hisp-uio/teams/100509/vi/)\n" @@ -75,6 +75,16 @@ msgstr "Ngày đăng ký" msgid "Last updated" msgstr "Lần cập nhật cuối" +msgid "error encountered during field validation" +msgstr "gặp lỗi trong quá trình xác thực trường" + +msgid "error" +msgstr "lỗi" + +msgid "" +"Plugins are not yet available - Please contact your system administrator" +msgstr "" + msgid "This value is validating" msgstr "Giá trị này đang xác thực" @@ -372,9 +382,6 @@ msgstr "Một số hoạt động vẫn đang chạy. Vui lòng đợi .." msgid "Operations running" msgstr "Hoạt động đang chạy" -msgid "Sort" -msgstr "Sắp xếp" - msgid "" "This event has unsaved changes. Leaving this page without saving will lose " "these changes. Are you sure you want to discard unsaved changes?" @@ -488,6 +495,12 @@ msgstr "Đang tải ảnh lên" msgid "Select image" msgstr "Chọn ảnh" +msgid "Type to filter options" +msgstr "" + +msgid "No match found" +msgstr "" + msgid "Search" msgstr "Tìm kiếm" @@ -753,7 +766,7 @@ msgstr "Lịch biểu" msgid "Refer" msgstr "" -msgid "You can’t add any more {{ programStageName }} events" +msgid "You can't add any more {{ programStageName }} events" msgstr "" msgid "Cancel without saving" @@ -817,6 +830,9 @@ msgstr "" msgid "New Enrollment in program{{escape}} {{programName}}" msgstr "" +msgid "Save {{trackedEntityTypeName}}" +msgstr "" + msgid "Save {{trackedEntityName}}" msgstr "" @@ -974,10 +990,6 @@ msgstr "" msgid "Choose a type to start searching" msgstr "Chọn một loại để bắt đầu tìm kiếm" -msgid "Fill in at least {{count}} attribute to search" -msgid_plural "Fill in at least {{count}} attribute to search" -msgstr[0] "" - msgid "Search {{name}}" msgstr "Tim kiêm {{name}}" @@ -1134,6 +1146,9 @@ msgstr "" msgid "Mark for follow-up" msgstr "Đánh dấu để theo-dõi" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + msgid "Enrollment date" msgstr "Ngày ghi vào" @@ -1222,22 +1237,12 @@ msgid "" "The scheduled date matches the suggested date, but can be changed if needed." msgstr "" -msgid "The scheduled date is {{count}} days {{position}} the suggested date." -msgid_plural "" -"The scheduled date is {{count}} days {{position}} the suggested date." -msgstr[0] "" - msgid "after" msgstr "" msgid "before" msgstr "" -msgid "There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgid_plural "" -"There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgstr[0] "" - msgid "" "Scheduling an event in {{stageName}} for {{programName}} in {{orgUnitName}}" msgstr "" @@ -1281,9 +1286,6 @@ msgstr "" msgid "Try again or contact your system administrator for support" msgstr "" -msgid "tracked entity instance" -msgstr "thực thể được theo dõi" - msgid "Fix errors in the form to continue." msgstr "" @@ -1296,6 +1298,9 @@ msgstr "" msgid "Edit" msgstr "Chỉnh sửa" +msgid "tracked entity instance" +msgstr "thực thể được theo dõi" + msgid "New {{ eventName }} event" msgstr "" @@ -1485,9 +1490,6 @@ msgstr "" msgid "Set coordinate" msgstr "Đặt tọa độ" -msgid "Page {{currentPage}}" -msgstr "Trang {{currentPage}}" - msgid "Date" msgstr "Ngày" @@ -1506,11 +1508,8 @@ msgstr "Đến ngày" msgid "To time" msgstr "Đến " -msgid "error encountered during field validation" -msgstr "gặp lỗi trong quá trình xác thực trường" - -msgid "error" -msgstr "lỗi" +msgid "Page {{currentPage}}" +msgstr "Trang {{currentPage}}" msgid "Delete polygon" msgstr "Xóa đa giác" diff --git a/i18n/zh_CN.po b/i18n/zh_CN.po index ada7c7ad4f..a489a00929 100644 --- a/i18n/zh_CN.po +++ b/i18n/zh_CN.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-06-01T08:11:59.116Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: 晓东 林 <13981924470@126.com>, 2023\n" "Language-Team: Chinese (China) (https://app.transifex.com/hisp-uio/teams/100509/zh_CN/)\n" @@ -368,9 +368,6 @@ msgstr "有些操作一直在运行,请等待" msgid "Operations running" msgstr "运作中" -msgid "Sort" -msgstr "排序" - msgid "" "This event has unsaved changes. Leaving this page without saving will lose " "these changes. Are you sure you want to discard unsaved changes?" @@ -758,8 +755,8 @@ msgstr "调度" msgid "Refer" msgstr "转诊" -msgid "You can’t add any more {{ programStageName }} events" -msgstr "您不能再添加 {{ programStageName }} 事件" +msgid "You can't add any more {{ programStageName }} events" +msgstr "" msgid "Cancel without saving" msgstr "取消而不保存" @@ -1132,6 +1129,9 @@ msgstr "删除标记以进行后续操作" msgid "Mark for follow-up" msgstr "后续标记" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + msgid "Enrollment date" msgstr "报名日期" @@ -1473,9 +1473,6 @@ msgstr "编辑事件时出错,所做的更改未保存" msgid "Set coordinate" msgstr "设置坐标" -msgid "Page {{currentPage}}" -msgstr "第{{currentPage}}页" - msgid "Date" msgstr "日期" @@ -1494,6 +1491,9 @@ msgstr "到目前为止" msgid "To time" msgstr "到时间" +msgid "Page {{currentPage}}" +msgstr "第{{currentPage}}页" + msgid "Delete polygon" msgstr "删除多边形" From ff89ce4dc2cca21ef3423074d85b748022981639 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Wed, 13 Sep 2023 02:04:01 +0000 Subject: [PATCH 15/49] chore(release): cut 100.39.1 [skip release] ## [100.39.1](https://github.com/dhis2/capture-app/compare/v100.39.0...v100.39.1) (2023-09-13) ### Bug Fixes * **translations:** sync translations from transifex (master) ([0fab0eb](https://github.com/dhis2/capture-app/commit/0fab0eba7b63cbfd080990913313fc6b6ff2d38f)) --- CHANGELOG.md | 7 +++++++ package.json | 4 ++-- packages/rules-engine/package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9bbd699a93..d334b2bc70 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [100.39.1](https://github.com/dhis2/capture-app/compare/v100.39.0...v100.39.1) (2023-09-13) + + +### Bug Fixes + +* **translations:** sync translations from transifex (master) ([0fab0eb](https://github.com/dhis2/capture-app/commit/0fab0eba7b63cbfd080990913313fc6b6ff2d38f)) + # [100.39.0](https://github.com/dhis2/capture-app/compare/v100.38.0...v100.39.0) (2023-09-07) diff --git a/package.json b/package.json index 92d62348e1..c2b86be22b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "capture-app", "homepage": ".", - "version": "100.39.0", + "version": "100.39.1", "cacheVersion": "5", "serverVersion": "38", "license": "BSD-3-Clause", @@ -10,7 +10,7 @@ "packages/rules-engine" ], "dependencies": { - "@dhis2/rules-engine-javascript": "100.39.0", + "@dhis2/rules-engine-javascript": "100.39.1", "@dhis2/app-runtime": "^3.9.3", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/d2-icons": "^1.0.1", diff --git a/packages/rules-engine/package.json b/packages/rules-engine/package.json index 760850a4a9..477534c5fc 100644 --- a/packages/rules-engine/package.json +++ b/packages/rules-engine/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/rules-engine-javascript", - "version": "100.39.0", + "version": "100.39.1", "license": "BSD-3-Clause", "main": "./build/cjs/index.js", "scripts": { From c17c6637f0e6ce93bdd5f5ef3d534d3ac9206c86 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Thu, 14 Sep 2023 03:31:30 +0200 Subject: [PATCH 16/49] fix(translations): sync translations from transifex (master) Automatically merged. --- i18n/ar_IQ.po | 74 ++++++++++++++++++++------------------------------- i18n/ckb.po | 62 ++++++++++++++++++++---------------------- i18n/prs.po | 64 +++++++++++++++++++++----------------------- i18n/zh.po | 20 +++++++------- 4 files changed, 98 insertions(+), 122 deletions(-) diff --git a/i18n/ar_IQ.po b/i18n/ar_IQ.po index 7e6d0fde57..24c60620d7 100644 --- a/i18n/ar_IQ.po +++ b/i18n/ar_IQ.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-06-27T06:20:33.460Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: KRG HIS , 2022\n" "Language-Team: Arabic (Iraq) (https://app.transifex.com/hisp-uio/teams/100509/ar_IQ/)\n" @@ -72,6 +72,16 @@ msgstr "" msgid "Last updated" msgstr "آخر تحديث" +msgid "error encountered during field validation" +msgstr "حدث خطأ أثناء التحقق من صحة الحقل" + +msgid "error" +msgstr "خطأ" + +msgid "" +"Plugins are not yet available - Please contact your system administrator" +msgstr "" + msgid "This value is validating" msgstr "يتم التحقق من القيمة" @@ -365,9 +375,6 @@ msgstr "لا تزال بعض العمليات قيد التشغيل. أرجو ا msgid "Operations running" msgstr "العمليات الجارية" -msgid "Sort" -msgstr "فرز" - msgid "" "This event has unsaved changes. Leaving this page without saving will lose " "these changes. Are you sure you want to discard unsaved changes?" @@ -481,6 +488,12 @@ msgstr "تحميل الصورة" msgid "Select image" msgstr "حدد الصورة" +msgid "Type to filter options" +msgstr "" + +msgid "No match found" +msgstr "" + msgid "Search" msgstr "البحث" @@ -746,7 +759,7 @@ msgstr "" msgid "Refer" msgstr "" -msgid "You can’t add any more {{ programStageName }} events" +msgid "You can't add any more {{ programStageName }} events" msgstr "" msgid "Cancel without saving" @@ -810,6 +823,9 @@ msgstr "" msgid "New Enrollment in program{{escape}} {{programName}}" msgstr "" +msgid "Save {{trackedEntityTypeName}}" +msgstr "" + msgid "Save {{trackedEntityName}}" msgstr "" @@ -963,15 +979,6 @@ msgstr "" msgid "Choose a type to start searching" msgstr "" -msgid "Fill in at least {{count}} attribute to search" -msgid_plural "Fill in at least {{count}} attribute to search" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" -msgstr[4] "" -msgstr[5] "" - msgid "Search {{name}}" msgstr "" @@ -1124,6 +1131,9 @@ msgstr "" msgid "Mark for follow-up" msgstr "" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + msgid "Enrollment date" msgstr "تاريخ التسجيل" @@ -1212,32 +1222,12 @@ msgid "" "The scheduled date matches the suggested date, but can be changed if needed." msgstr "" -msgid "The scheduled date is {{count}} days {{position}} the suggested date." -msgid_plural "" -"The scheduled date is {{count}} days {{position}} the suggested date." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" -msgstr[4] "" -msgstr[5] "" - msgid "after" msgstr "" msgid "before" msgstr "" -msgid "There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgid_plural "" -"There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" -msgstr[4] "" -msgstr[5] "" - msgid "" "Scheduling an event in {{stageName}} for {{programName}} in {{orgUnitName}}" msgstr "" @@ -1281,9 +1271,6 @@ msgstr "" msgid "Try again or contact your system administrator for support" msgstr "" -msgid "tracked entity instance" -msgstr "نموذج الكيان المتتبع" - msgid "Fix errors in the form to continue." msgstr "" @@ -1296,6 +1283,9 @@ msgstr "" msgid "Edit" msgstr "تعديل" +msgid "tracked entity instance" +msgstr "نموذج الكيان المتتبع" + msgid "New {{ eventName }} event" msgstr "" @@ -1485,9 +1475,6 @@ msgstr "" msgid "Set coordinate" msgstr "ضبط الإحداثية" -msgid "Page {{currentPage}}" -msgstr "" - msgid "Date" msgstr "التاريخ" @@ -1506,11 +1493,8 @@ msgstr "حتى تاريخ" msgid "To time" msgstr "إلى وقت" -msgid "error encountered during field validation" -msgstr "حدث خطأ أثناء التحقق من صحة الحقل" - -msgid "error" -msgstr "خطأ" +msgid "Page {{currentPage}}" +msgstr "" msgid "Delete polygon" msgstr "حذف المضلع" diff --git a/i18n/ckb.po b/i18n/ckb.po index 776a5d6003..8ad5dab62a 100644 --- a/i18n/ckb.po +++ b/i18n/ckb.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-06-27T06:20:33.460Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: Viktor Varland , 2022\n" "Language-Team: Central Kurdish (https://app.transifex.com/hisp-uio/teams/100509/ckb/)\n" @@ -74,6 +74,16 @@ msgstr "" msgid "Last updated" msgstr "" +msgid "error encountered during field validation" +msgstr "هەڵەیەک ڕوویدا لە کاتی سەلماندی خانەکە" + +msgid "error" +msgstr "هەڵە" + +msgid "" +"Plugins are not yet available - Please contact your system administrator" +msgstr "" + msgid "This value is validating" msgstr "ئەم نرخە دەسەلمێندرێت" @@ -373,9 +383,6 @@ msgstr "" msgid "Operations running" msgstr "کردارەکان کاردەکەن" -msgid "Sort" -msgstr "پۆلینکردن" - msgid "" "This event has unsaved changes. Leaving this page without saving will lose " "these changes. Are you sure you want to discard unsaved changes?" @@ -489,6 +496,12 @@ msgstr "سەرخستنی وێنە" msgid "Select image" msgstr "وێنە هەڵبژێرە" +msgid "Type to filter options" +msgstr "" + +msgid "No match found" +msgstr "" + msgid "Search" msgstr "گەڕان" @@ -754,7 +767,7 @@ msgstr "" msgid "Refer" msgstr "" -msgid "You can’t add any more {{ programStageName }} events" +msgid "You can't add any more {{ programStageName }} events" msgstr "" msgid "Cancel without saving" @@ -818,6 +831,9 @@ msgstr "" msgid "New Enrollment in program{{escape}} {{programName}}" msgstr "" +msgid "Save {{trackedEntityTypeName}}" +msgstr "" + msgid "Save {{trackedEntityName}}" msgstr "" @@ -973,11 +989,6 @@ msgstr "" msgid "Choose a type to start searching" msgstr "" -msgid "Fill in at least {{count}} attribute to search" -msgid_plural "Fill in at least {{count}} attribute to search" -msgstr[0] "" -msgstr[1] "" - msgid "Search {{name}}" msgstr "" @@ -1130,6 +1141,9 @@ msgstr "" msgid "Mark for follow-up" msgstr "" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + msgid "Enrollment date" msgstr "" @@ -1218,24 +1232,12 @@ msgid "" "The scheduled date matches the suggested date, but can be changed if needed." msgstr "" -msgid "The scheduled date is {{count}} days {{position}} the suggested date." -msgid_plural "" -"The scheduled date is {{count}} days {{position}} the suggested date." -msgstr[0] "" -msgstr[1] "" - msgid "after" msgstr "" msgid "before" msgstr "" -msgid "There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgid_plural "" -"There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgstr[0] "" -msgstr[1] "" - msgid "" "Scheduling an event in {{stageName}} for {{programName}} in {{orgUnitName}}" msgstr "" @@ -1279,9 +1281,6 @@ msgstr "" msgid "Try again or contact your system administrator for support" msgstr "" -msgid "tracked entity instance" -msgstr "نمونەی یەکەی بەدواداچوون" - msgid "Fix errors in the form to continue." msgstr "" @@ -1294,6 +1293,9 @@ msgstr "" msgid "Edit" msgstr "دةستكاري" +msgid "tracked entity instance" +msgstr "نمونەی یەکەی بەدواداچوون" + msgid "New {{ eventName }} event" msgstr "" @@ -1483,9 +1485,6 @@ msgstr "" msgid "Set coordinate" msgstr "هێڵی درێژی و پانی دیاریبکە" -msgid "Page {{currentPage}}" -msgstr "" - msgid "Date" msgstr "بەروار" @@ -1504,11 +1503,8 @@ msgstr "بۆ بەرواری" msgid "To time" msgstr " کاتی" -msgid "error encountered during field validation" -msgstr "هەڵەیەک ڕوویدا لە کاتی سەلماندی خانەکە" - -msgid "error" -msgstr "هەڵە" +msgid "Page {{currentPage}}" +msgstr "" msgid "Delete polygon" msgstr "فرەلاکە بسڕەوە" diff --git a/i18n/prs.po b/i18n/prs.po index bc61edb4c3..6bf95b4907 100644 --- a/i18n/prs.po +++ b/i18n/prs.po @@ -1,13 +1,13 @@ # # Translators: -# phil_dhis2, 2023 +# Philip Larsen Donnelly, 2023 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-06-27T06:20:33.460Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" -"Last-Translator: phil_dhis2, 2023\n" +"Last-Translator: Philip Larsen Donnelly, 2023\n" "Language-Team: Persian (Afghanistan) (https://app.transifex.com/hisp-uio/teams/100509/fa_AF/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -66,6 +66,16 @@ msgstr "تاریخ ثبت" msgid "Last updated" msgstr "تجدید آخیر" +msgid "error encountered during field validation" +msgstr "" + +msgid "error" +msgstr "" + +msgid "" +"Plugins are not yet available - Please contact your system administrator" +msgstr "" + msgid "This value is validating" msgstr "" @@ -355,9 +365,6 @@ msgstr "" msgid "Operations running" msgstr "" -msgid "Sort" -msgstr "تنظیم" - msgid "" "This event has unsaved changes. Leaving this page without saving will lose " "these changes. Are you sure you want to discard unsaved changes?" @@ -471,6 +478,12 @@ msgstr "" msgid "Select image" msgstr "" +msgid "Type to filter options" +msgstr "" + +msgid "No match found" +msgstr "" + msgid "Search" msgstr "جستجو" @@ -736,7 +749,7 @@ msgstr "تقسیم اوقات" msgid "Refer" msgstr "" -msgid "You can’t add any more {{ programStageName }} events" +msgid "You can't add any more {{ programStageName }} events" msgstr "" msgid "Cancel without saving" @@ -800,6 +813,9 @@ msgstr "" msgid "New Enrollment in program{{escape}} {{programName}}" msgstr "" +msgid "Save {{trackedEntityTypeName}}" +msgstr "" + msgid "Save {{trackedEntityName}}" msgstr "" @@ -953,11 +969,6 @@ msgstr "" msgid "Choose a type to start searching" msgstr "" -msgid "Fill in at least {{count}} attribute to search" -msgid_plural "Fill in at least {{count}} attribute to search" -msgstr[0] "" -msgstr[1] "" - msgid "Search {{name}}" msgstr "" @@ -1110,6 +1121,9 @@ msgstr "" msgid "Mark for follow-up" msgstr "نشانی برای پیگیری" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + msgid "Enrollment date" msgstr "تاریخ شمولیت" @@ -1198,24 +1212,12 @@ msgid "" "The scheduled date matches the suggested date, but can be changed if needed." msgstr "" -msgid "The scheduled date is {{count}} days {{position}} the suggested date." -msgid_plural "" -"The scheduled date is {{count}} days {{position}} the suggested date." -msgstr[0] "" -msgstr[1] "" - msgid "after" msgstr "" msgid "before" msgstr "" -msgid "There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgid_plural "" -"There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgstr[0] "" -msgstr[1] "" - msgid "" "Scheduling an event in {{stageName}} for {{programName}} in {{orgUnitName}}" msgstr "" @@ -1259,9 +1261,6 @@ msgstr "" msgid "Try again or contact your system administrator for support" msgstr "" -msgid "tracked entity instance" -msgstr "" - msgid "Fix errors in the form to continue." msgstr "" @@ -1274,6 +1273,9 @@ msgstr "" msgid "Edit" msgstr "تجدید" +msgid "tracked entity instance" +msgstr "" + msgid "New {{ eventName }} event" msgstr "" @@ -1463,9 +1465,6 @@ msgstr "" msgid "Set coordinate" msgstr "تعین مختصات" -msgid "Page {{currentPage}}" -msgstr "" - msgid "Date" msgstr "تاریخ" @@ -1484,10 +1483,7 @@ msgstr "تا تاریخ" msgid "To time" msgstr "" -msgid "error encountered during field validation" -msgstr "" - -msgid "error" +msgid "Page {{currentPage}}" msgstr "" msgid "Delete polygon" diff --git a/i18n/zh.po b/i18n/zh.po index 0253648916..c3053636d4 100644 --- a/i18n/zh.po +++ b/i18n/zh.po @@ -1,14 +1,14 @@ # # Translators: # Viktor Varland , 2021 -# phil_dhis2, 2022 +# Philip Larsen Donnelly, 2022 # 晓东 林 <13981924470@126.com>, 2023 # easylin , 2023 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-06-01T08:11:59.116Z\n" +"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: easylin , 2023\n" "Language-Team: Chinese (https://app.transifex.com/hisp-uio/teams/100509/zh/)\n" @@ -370,9 +370,6 @@ msgstr "有些操作一直在运行,请等待" msgid "Operations running" msgstr "运作中" -msgid "Sort" -msgstr "排序" - msgid "" "This event has unsaved changes. Leaving this page without saving will lose " "these changes. Are you sure you want to discard unsaved changes?" @@ -760,8 +757,8 @@ msgstr "调度" msgid "Refer" msgstr "转诊" -msgid "You can’t add any more {{ programStageName }} events" -msgstr "您不能再添加 {{ programStageName }} 事件" +msgid "You can't add any more {{ programStageName }} events" +msgstr "" msgid "Cancel without saving" msgstr "取消而不保存" @@ -1134,6 +1131,9 @@ msgstr "删除标记以进行后续操作" msgid "Mark for follow-up" msgstr "后续标记" +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + msgid "Enrollment date" msgstr "报名日期" @@ -1475,9 +1475,6 @@ msgstr "编辑事件时出错,所做的更改未保存" msgid "Set coordinate" msgstr "设置坐标" -msgid "Page {{currentPage}}" -msgstr "第{{currentPage}}页" - msgid "Date" msgstr "日期" @@ -1496,6 +1493,9 @@ msgstr "到目前为止" msgid "To time" msgstr "到时间" +msgid "Page {{currentPage}}" +msgstr "第{{currentPage}}页" + msgid "Delete polygon" msgstr "删除多边形" From 08c86aca2bce53db17a796a2cd406f15b1330ec7 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Thu, 14 Sep 2023 01:40:46 +0000 Subject: [PATCH 17/49] chore(release): cut 100.39.2 [skip release] ## [100.39.2](https://github.com/dhis2/capture-app/compare/v100.39.1...v100.39.2) (2023-09-14) ### Bug Fixes * **translations:** sync translations from transifex (master) ([c17c663](https://github.com/dhis2/capture-app/commit/c17c6637f0e6ce93bdd5f5ef3d534d3ac9206c86)) --- CHANGELOG.md | 7 +++++++ package.json | 4 ++-- packages/rules-engine/package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d334b2bc70..79b9180c75 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [100.39.2](https://github.com/dhis2/capture-app/compare/v100.39.1...v100.39.2) (2023-09-14) + + +### Bug Fixes + +* **translations:** sync translations from transifex (master) ([c17c663](https://github.com/dhis2/capture-app/commit/c17c6637f0e6ce93bdd5f5ef3d534d3ac9206c86)) + ## [100.39.1](https://github.com/dhis2/capture-app/compare/v100.39.0...v100.39.1) (2023-09-13) diff --git a/package.json b/package.json index c2b86be22b..07ed3cdb87 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "capture-app", "homepage": ".", - "version": "100.39.1", + "version": "100.39.2", "cacheVersion": "5", "serverVersion": "38", "license": "BSD-3-Clause", @@ -10,7 +10,7 @@ "packages/rules-engine" ], "dependencies": { - "@dhis2/rules-engine-javascript": "100.39.1", + "@dhis2/rules-engine-javascript": "100.39.2", "@dhis2/app-runtime": "^3.9.3", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/d2-icons": "^1.0.1", diff --git a/packages/rules-engine/package.json b/packages/rules-engine/package.json index 477534c5fc..d76ea147d7 100644 --- a/packages/rules-engine/package.json +++ b/packages/rules-engine/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/rules-engine-javascript", - "version": "100.39.1", + "version": "100.39.2", "license": "BSD-3-Clause", "main": "./build/cjs/index.js", "scripts": { From c7ab82826254be24959ff25d643b68c1e525c893 Mon Sep 17 00:00:00 2001 From: Tony Valle <79843014+superskip@users.noreply.github.com> Date: Thu, 14 Sep 2023 10:24:02 +0200 Subject: [PATCH 18/49] fix: [DHIS2-15356] change tei search parameter from `ou` to `orgUnit` (#3362) --- .../capture-core/components/TeiSearch/epics/teiSearch.epics.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core_modules/capture-core/components/TeiSearch/epics/teiSearch.epics.js b/src/core_modules/capture-core/components/TeiSearch/epics/teiSearch.epics.js index fd38591735..4b0fd58a51 100644 --- a/src/core_modules/capture-core/components/TeiSearch/epics/teiSearch.epics.js +++ b/src/core_modules/capture-core/components/TeiSearch/epics/teiSearch.epics.js @@ -35,7 +35,7 @@ import type { QuerySingleResource } from '../../../utils/api/api.types'; const getOuQueryArgs = (orgUnit: ?Object, orgUnitScope: string) => (orgUnitScope !== 'ACCESSIBLE' ? - { ou: orgUnit && orgUnit.id, ouMode: orgUnitScope } : + { orgUnit: orgUnit && orgUnit.id, ouMode: orgUnitScope } : { ouMode: orgUnitScope }); const getContextQueryArgs = (programId: ?string, trackedEntityTypeId: string) => From 5a3908a6f2591850187e691b5087beaf6ac0bd60 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Thu, 14 Sep 2023 08:33:42 +0000 Subject: [PATCH 19/49] chore(release): cut 100.39.3 [skip release] ## [100.39.3](https://github.com/dhis2/capture-app/compare/v100.39.2...v100.39.3) (2023-09-14) ### Bug Fixes * [DHIS2-15356] change tei search parameter from `ou` to `orgUnit` ([#3362](https://github.com/dhis2/capture-app/issues/3362)) ([c7ab828](https://github.com/dhis2/capture-app/commit/c7ab82826254be24959ff25d643b68c1e525c893)) --- CHANGELOG.md | 7 +++++++ package.json | 4 ++-- packages/rules-engine/package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 79b9180c75..c4054510d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [100.39.3](https://github.com/dhis2/capture-app/compare/v100.39.2...v100.39.3) (2023-09-14) + + +### Bug Fixes + +* [DHIS2-15356] change tei search parameter from `ou` to `orgUnit` ([#3362](https://github.com/dhis2/capture-app/issues/3362)) ([c7ab828](https://github.com/dhis2/capture-app/commit/c7ab82826254be24959ff25d643b68c1e525c893)) + ## [100.39.2](https://github.com/dhis2/capture-app/compare/v100.39.1...v100.39.2) (2023-09-14) diff --git a/package.json b/package.json index 07ed3cdb87..a1598cb52f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "capture-app", "homepage": ".", - "version": "100.39.2", + "version": "100.39.3", "cacheVersion": "5", "serverVersion": "38", "license": "BSD-3-Clause", @@ -10,7 +10,7 @@ "packages/rules-engine" ], "dependencies": { - "@dhis2/rules-engine-javascript": "100.39.2", + "@dhis2/rules-engine-javascript": "100.39.3", "@dhis2/app-runtime": "^3.9.3", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/d2-icons": "^1.0.1", diff --git a/packages/rules-engine/package.json b/packages/rules-engine/package.json index d76ea147d7..dfeccd586a 100644 --- a/packages/rules-engine/package.json +++ b/packages/rules-engine/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/rules-engine-javascript", - "version": "100.39.2", + "version": "100.39.3", "license": "BSD-3-Clause", "main": "./build/cjs/index.js", "scripts": { From a4235d5b1c66bd924f6b6e908d1a8bb352660416 Mon Sep 17 00:00:00 2001 From: Simona Domnisoru Date: Mon, 18 Sep 2023 09:27:26 +0200 Subject: [PATCH 20/49] chore: [TECH-1642] adapt order scenario (#3416) --- .../TeiWorkingLists/TeiWorkingListsUser.feature | 4 ++-- .../TeiWorkingLists/TeiWorkingListsUser/index.js | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser.feature b/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser.feature index 8059bed14d..fe69bbc858 100644 --- a/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser.feature +++ b/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser.feature @@ -159,9 +159,9 @@ And you apply the current filter When you click the last name column header Then the sort arrow should indicate ascending order And the list should display data ordered ascendingly by last name -When you click the WHOMCH Smoking column header +When you click the WHOMCH Hemoglobin value column header Then the sort arrow should indicate descending order -And the list should display data ordered ascendingly by WHOMCH Smoking +And the list should display data ordered descending by WHOMCH Hemoglobin @v>=39 Scenario: The user can remove the program stage filter diff --git a/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser/index.js b/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser/index.js index 6426baf38c..dedb6cd458 100644 --- a/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser/index.js +++ b/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser/index.js @@ -343,9 +343,9 @@ When('you click the last name column header', () => { .click(); }); -When('you click the WHOMCH Smoking column header', () => { +When('you click the WHOMCH Hemoglobin value column header', () => { cy.get('[data-test="dhis2-uicore-tableheadercellaction"]') - .eq(6) + .last() .click() .click(); }); @@ -400,10 +400,10 @@ Then('the list should display data ordered ascendingly by last name', () => { }); }); -Then('the list should display data ordered ascendingly by WHOMCH Smoking', () => { +Then('the list should display data ordered descending by WHOMCH Hemoglobin', () => { const names = [ - 'Siren', 'Hertz', + 'Siren', ]; cy.get('[data-test="tei-working-lists"]') From 712b56e749d08432ac18d854cf06cc45dabeda55 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Tue, 19 Sep 2023 03:32:26 +0200 Subject: [PATCH 21/49] fix(translations): sync translations from transifex (master) Automatically merged. --- i18n/zh.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/zh.po b/i18n/zh.po index c3053636d4..77abc5059a 100644 --- a/i18n/zh.po +++ b/i18n/zh.po @@ -758,7 +758,7 @@ msgid "Refer" msgstr "转诊" msgid "You can't add any more {{ programStageName }} events" -msgstr "" +msgstr "您无法添加更多的 {{ programStageName }} 事件" msgid "Cancel without saving" msgstr "取消而不保存" @@ -1132,7 +1132,7 @@ msgid "Mark for follow-up" msgstr "后续标记" msgid "Existing dates for auto-generated events will not be updated." -msgstr "" +msgstr "自动生成的事件的现有日期将不会更新。" msgid "Enrollment date" msgstr "报名日期" From 212ecb3bea23f9aaf679823bbcbd99fc4bb2f948 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Tue, 19 Sep 2023 01:41:02 +0000 Subject: [PATCH 22/49] chore(release): cut 100.39.4 [skip release] ## [100.39.4](https://github.com/dhis2/capture-app/compare/v100.39.3...v100.39.4) (2023-09-19) ### Bug Fixes * **translations:** sync translations from transifex (master) ([712b56e](https://github.com/dhis2/capture-app/commit/712b56e749d08432ac18d854cf06cc45dabeda55)) --- CHANGELOG.md | 7 +++++++ package.json | 4 ++-- packages/rules-engine/package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c4054510d8..6acd7bea22 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [100.39.4](https://github.com/dhis2/capture-app/compare/v100.39.3...v100.39.4) (2023-09-19) + + +### Bug Fixes + +* **translations:** sync translations from transifex (master) ([712b56e](https://github.com/dhis2/capture-app/commit/712b56e749d08432ac18d854cf06cc45dabeda55)) + ## [100.39.3](https://github.com/dhis2/capture-app/compare/v100.39.2...v100.39.3) (2023-09-14) diff --git a/package.json b/package.json index a1598cb52f..95acbaf3d9 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "capture-app", "homepage": ".", - "version": "100.39.3", + "version": "100.39.4", "cacheVersion": "5", "serverVersion": "38", "license": "BSD-3-Clause", @@ -10,7 +10,7 @@ "packages/rules-engine" ], "dependencies": { - "@dhis2/rules-engine-javascript": "100.39.3", + "@dhis2/rules-engine-javascript": "100.39.4", "@dhis2/app-runtime": "^3.9.3", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/d2-icons": "^1.0.1", diff --git a/packages/rules-engine/package.json b/packages/rules-engine/package.json index dfeccd586a..474e974bf2 100644 --- a/packages/rules-engine/package.json +++ b/packages/rules-engine/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/rules-engine-javascript", - "version": "100.39.3", + "version": "100.39.4", "license": "BSD-3-Clause", "main": "./build/cjs/index.js", "scripts": { From b9ec237af595a1112dc6db01206e8332c9bb6647 Mon Sep 17 00:00:00 2001 From: eirikhaugstulen Date: Wed, 20 Sep 2023 13:57:39 +0200 Subject: [PATCH 23/49] feat: [DHIS2-15830] Add orgUnitId to plugin context --- .../D2Form/FormFieldPlugin/FormFieldPlugin.container.js | 4 ++++ .../D2Form/FormFieldPlugin/FormFieldPlugin.types.js | 1 + 2 files changed, 5 insertions(+) diff --git a/src/core_modules/capture-core/components/D2Form/FormFieldPlugin/FormFieldPlugin.container.js b/src/core_modules/capture-core/components/D2Form/FormFieldPlugin/FormFieldPlugin.container.js index 7f4b193646..65e4cf82e8 100644 --- a/src/core_modules/capture-core/components/D2Form/FormFieldPlugin/FormFieldPlugin.container.js +++ b/src/core_modules/capture-core/components/D2Form/FormFieldPlugin/FormFieldPlugin.container.js @@ -6,11 +6,13 @@ import { usePluginMessages } from './hooks/usePluginMessages'; import { usePluginCallbacks } from './hooks/usePluginCallbacks'; import { usePluginValues } from './hooks/usePluginValues'; import { formatPluginConfig } from './formatPluginConfig'; +import { useLocationQuery } from '../../../utils/routing'; export const FormFieldPlugin = (props: ContainerProps) => { const { pluginSource, fieldsMetadata, formId, onUpdateField, pluginContext } = props; const metadataByPluginId = useMemo(() => Object.fromEntries(fieldsMetadata), [fieldsMetadata]); const configuredPluginIds = useMemo(() => Object.keys(metadataByPluginId), [metadataByPluginId]); + const { orgUnitId } = useLocationQuery(); // Plugin related functionality and feedback const { pluginValues } = usePluginValues(formId, metadataByPluginId, pluginContext); @@ -39,6 +41,7 @@ export const FormFieldPlugin = (props: ContainerProps) => { return ( { /> ); }; + diff --git a/src/core_modules/capture-core/components/D2Form/FormFieldPlugin/FormFieldPlugin.types.js b/src/core_modules/capture-core/components/D2Form/FormFieldPlugin/FormFieldPlugin.types.js index 3aa8638400..9a97d2e42a 100644 --- a/src/core_modules/capture-core/components/D2Form/FormFieldPlugin/FormFieldPlugin.types.js +++ b/src/core_modules/capture-core/components/D2Form/FormFieldPlugin/FormFieldPlugin.types.js @@ -64,6 +64,7 @@ export type ComponentProps = {| fieldsMetadata: MetadataByPluginId, formSubmitted: boolean, values: { [id: string]: any }, + orgUnitId: string, setFieldValue: (SetFieldValueProps) => void, errors: { [id: string]: Array }, warnings: { [id: string]: Array }, From a153053afb4ee9443094492065af2528b67c7536 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Wed, 20 Sep 2023 12:06:14 +0000 Subject: [PATCH 24/49] chore(release): cut 100.40.0 [skip release] # [100.40.0](https://github.com/dhis2/capture-app/compare/v100.39.4...v100.40.0) (2023-09-20) ### Features * [DHIS2-15830] Add orgUnitId to plugin context ([b9ec237](https://github.com/dhis2/capture-app/commit/b9ec237af595a1112dc6db01206e8332c9bb6647)) --- CHANGELOG.md | 7 +++++++ package.json | 4 ++-- packages/rules-engine/package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6acd7bea22..f5540c833b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [100.40.0](https://github.com/dhis2/capture-app/compare/v100.39.4...v100.40.0) (2023-09-20) + + +### Features + +* [DHIS2-15830] Add orgUnitId to plugin context ([b9ec237](https://github.com/dhis2/capture-app/commit/b9ec237af595a1112dc6db01206e8332c9bb6647)) + ## [100.39.4](https://github.com/dhis2/capture-app/compare/v100.39.3...v100.39.4) (2023-09-19) diff --git a/package.json b/package.json index 95acbaf3d9..9acdd9c1cb 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "capture-app", "homepage": ".", - "version": "100.39.4", + "version": "100.40.0", "cacheVersion": "5", "serverVersion": "38", "license": "BSD-3-Clause", @@ -10,7 +10,7 @@ "packages/rules-engine" ], "dependencies": { - "@dhis2/rules-engine-javascript": "100.39.4", + "@dhis2/rules-engine-javascript": "100.40.0", "@dhis2/app-runtime": "^3.9.3", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/d2-icons": "^1.0.1", diff --git a/packages/rules-engine/package.json b/packages/rules-engine/package.json index 474e974bf2..c3b109cd88 100644 --- a/packages/rules-engine/package.json +++ b/packages/rules-engine/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/rules-engine-javascript", - "version": "100.39.4", + "version": "100.40.0", "license": "BSD-3-Clause", "main": "./build/cjs/index.js", "scripts": { From ebe67c26df7ba4a7a4162816b881ac003f140526 Mon Sep 17 00:00:00 2001 From: Simona Domnisoru Date: Wed, 27 Sep 2023 10:49:54 +0200 Subject: [PATCH 25/49] chore: [TECH-1644] flaky custom program stage working list tests (#3420) --- .../TeiWorkingListsUser.feature | 2 +- .../TeiWorkingListsUser/index.js | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser.feature b/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser.feature index fe69bbc858..d3f07adfe2 100644 --- a/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser.feature +++ b/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser.feature @@ -233,7 +233,7 @@ And the Custom Program stage list is deleted @v>=40 Scenario: The user can save a program stage working list, based on a TEI working list configuration -Given you open the main page with Ngelehun and Malaria focus investigation context +Given you open a clean main page with Ngelehun and Malaria focus investigation context Then you see the custom TEI working lists And you can load the view with the name Ongoing foci responses And you open the program stage filters from the more filters dropdown menu diff --git a/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser/index.js b/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser/index.js index dedb6cd458..974685a855 100644 --- a/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser/index.js +++ b/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser/index.js @@ -2,6 +2,19 @@ import { v4 as uuid } from 'uuid'; import '../../sharedSteps'; import '../../../sharedSteps'; +const cleanUpIfApplicable = () => { + cy.buildApiUrl('programStageWorkingLists?filter=program.id:eq:qDkgAbB5Jlk&fields=id,displayName') + .then(url => cy.request(url)) + .then(({ body }) => { + const workingList = body.programStageWorkingLists?.find(e => e.displayName === 'Custom Program stage list'); + if (!workingList) { + return null; + } + return cy + .buildApiUrl('programStageWorkingLists', workingList.id) + .then(workingListUrl => cy.request('DELETE', workingListUrl)); + }); +}; Given('you open the main page with Ngelehun and child programme context', () => { cy.visit('#/?programId=IpHINAT79UW&orgUnitId=DiszpKrYNg8'); }); @@ -42,6 +55,7 @@ Given('you open the main page with Ngelehun and Malaria case diagnosis context', }); Given('you open the main page with Ngelehun and Malaria case diagnosis and Household investigation context', () => { + cleanUpIfApplicable(); cy.visit('#/?programId=qDkgAbB5Jlk&orgUnitId=DiszpKrYNg8'); cy.get('[data-test="tei-working-lists"]') @@ -60,6 +74,11 @@ Given('you open the main page with Ngelehun and Malaria case diagnosis and House .click(); }); +Given('you open a clean main page with Ngelehun and Malaria focus investigation context', () => { + cleanUpIfApplicable(); + cy.visit('#/?programId=M3xtLkYBlKI&orgUnitId=DiszpKrYNg8'); +}); + Then('the default working list should be displayed', () => { const names = [ 'Filona', @@ -740,3 +759,4 @@ Then('the program stage custom working list filters are loaded', () => { .find('[data-test="more-filters"]') .should('have.length', 2); }); + From b58bc66db4136ad558c02f38ac54a2319b3af3f1 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Sat, 30 Sep 2023 03:31:27 +0200 Subject: [PATCH 26/49] fix(translations): sync translations from transifex (master) Automatically merged. --- i18n/zh.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/i18n/zh.po b/i18n/zh.po index 77abc5059a..3776db9b73 100644 --- a/i18n/zh.po +++ b/i18n/zh.po @@ -320,7 +320,7 @@ msgid "" msgstr "一个具有 {{attributeName}} 的 {{trackedEntityTypeName}} 实体已经登记" msgid "Show registered {{trackedEntityTypeName}}" -msgstr "显示登记的 {{attributeName}} " +msgstr "显示已注册的{{trackedEntityTypeName}}" msgid "Registered person" msgstr "登记的人" @@ -1069,7 +1069,7 @@ msgid "To work with the selected program," msgstr "基于选择的项目工作" msgid "open the Tracker Capture app" -msgstr "打开跟踪随访采集APP" +msgstr "打开跟踪记录APP" msgid "This program is protected" msgstr "该项目受保护" @@ -1257,7 +1257,7 @@ msgid "Save changes" msgstr "保存修改" msgid "Profile" -msgstr "简历" +msgstr "基本信息" msgid "There is a problem with this form" msgstr "这个表单有问题" @@ -1278,7 +1278,7 @@ msgid "Profile widget could not be loaded. Please try again later" msgstr "无法加载个人资料窗口小部件。请稍后再试" msgid "{{TETName}} profile" -msgstr "{{TETName}} 基本资料" +msgstr "{{TETName}} 基本信息" msgid "Edit" msgstr "编辑" @@ -1314,7 +1314,7 @@ msgid "{{ overdueEvents }} overdue" msgstr "{{ overdueEvents }} 逾期" msgid "{{ scheduledEvents }} scheduled" -msgstr "{{scheduledEvents}} 已调度" +msgstr "{{ ScheduledEvents }} 已安排" msgid "Stages and Events" msgstr "阶段与活动" @@ -1416,7 +1416,7 @@ msgid "Scheduled" msgstr "已经调度" msgid "Overdue{{ escape }} due {{ time }}" -msgstr "逾期{{逃脱}}到期{{时间}}" +msgstr "逾期{{ escape }}到期{{ time }}" msgid "Overdue" msgstr "逾期" From 12060edc2ec032cf6cf4dbf8ed75226902f5b138 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Sat, 30 Sep 2023 01:39:09 +0000 Subject: [PATCH 27/49] chore(release): cut 100.40.1 [skip release] ## [100.40.1](https://github.com/dhis2/capture-app/compare/v100.40.0...v100.40.1) (2023-09-30) ### Bug Fixes * **translations:** sync translations from transifex (master) ([b58bc66](https://github.com/dhis2/capture-app/commit/b58bc66db4136ad558c02f38ac54a2319b3af3f1)) --- CHANGELOG.md | 7 +++++++ package.json | 4 ++-- packages/rules-engine/package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f5540c833b..110d6a07aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [100.40.1](https://github.com/dhis2/capture-app/compare/v100.40.0...v100.40.1) (2023-09-30) + + +### Bug Fixes + +* **translations:** sync translations from transifex (master) ([b58bc66](https://github.com/dhis2/capture-app/commit/b58bc66db4136ad558c02f38ac54a2319b3af3f1)) + # [100.40.0](https://github.com/dhis2/capture-app/compare/v100.39.4...v100.40.0) (2023-09-20) diff --git a/package.json b/package.json index 9acdd9c1cb..a0589b228f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "capture-app", "homepage": ".", - "version": "100.40.0", + "version": "100.40.1", "cacheVersion": "5", "serverVersion": "38", "license": "BSD-3-Clause", @@ -10,7 +10,7 @@ "packages/rules-engine" ], "dependencies": { - "@dhis2/rules-engine-javascript": "100.40.0", + "@dhis2/rules-engine-javascript": "100.40.1", "@dhis2/app-runtime": "^3.9.3", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/d2-icons": "^1.0.1", diff --git a/packages/rules-engine/package.json b/packages/rules-engine/package.json index c3b109cd88..0b391e85fa 100644 --- a/packages/rules-engine/package.json +++ b/packages/rules-engine/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/rules-engine-javascript", - "version": "100.40.0", + "version": "100.40.1", "license": "BSD-3-Clause", "main": "./build/cjs/index.js", "scripts": { From 6e5f6fea7b6ab043800e806c7459210f10ef608a Mon Sep 17 00:00:00 2001 From: Simona Domnisoru Date: Tue, 3 Oct 2023 08:49:19 +0200 Subject: [PATCH 28/49] feat: [DHIS2-9661][DHIS2-14830] first stage on registration page (#3267) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: jasminenguyennn Co-authored-by: Joakim Storløkken Melseth --- .../EnrollmentPage/BreakingTheGlass/index.js | 4 + cypress/integration/NewPage.feature | 7 +- cypress/integration/NewPage/index.js | 23 +- .../TeiWorkingListsUser/index.js | 8 +- i18n/en.pot | 22 +- package.json | 2 +- .../components/D2Form/D2Form.component.js | 12 +- .../components/D2Form/D2Form.types.js | 3 +- .../EnrollmentDataEntry.component.js | 79 +++--- .../EnrollmentDataEntry.container.js | 19 +- ...llmentWithFirstStageDataEntry.component.js | 231 ++++++++++++++++++ ...llmentWithFirstStageDataEntry.constants.js | 7 + ...llmentWithFirstStageDataEntry.container.js | 28 +++ ...EnrollmentWithFirstStageDataEntry.types.js | 9 + .../fieldLabels.module.css | 45 ++++ .../eventDate.validatorContainersGetter.js | 26 ++ .../fieldValidators/index.js | 3 + .../getDataEntryPropsToInclude.js | 39 +++ .../hooks/index.js | 3 + .../hooks/useDataEntrySections.js | 34 +++ .../index.js | 4 + .../withCleanUp.js | 21 ++ .../actions/enrollment.actionBatchs.js | 41 +++- .../Enrollment/actions/enrollment.actions.js | 5 +- .../Enrollment/actions/open.actionBatchs.js | 38 ++- .../Enrollment/epics/enrollment.epics.js | 64 +++-- .../EnrollmentRegistrationEntry.actions.js | 23 +- .../EnrollmentRegistrationEntry.container.js | 14 +- .../EnrollmentRegistrationEntry.epics.js | 13 +- .../EnrollmentRegistrationEntry.types.js | 3 +- .../hooks/useBuildFirstStageRegistration.js | 32 +++ .../hooks/useLifecycle.js | 40 ++- .../useMergeFormFoundationsIfApplicable.js | 72 ++++++ .../types/duplicateCheckOnSave.types.js | 6 +- .../DataEntries/converters/converters.js | 9 +- .../DataEntry/DataEntry.component.js | 41 +++- ...ection.component.js => Field.component.js} | 4 +- .../DataEntry/actions/dataEntryLoad.utils.js | 9 +- .../convertDataEntryValuesToClientValues.js | 3 +- .../DataEntry/constants/placements.const.js | 1 + .../EnrollmentEditEventPage.container.js | 26 +- .../EnrollmentEditEventPage.types.js | 3 +- .../RegistrationDataEntry.actions.js | 13 +- .../RegistrationDataEntry.component.js | 4 +- .../RegistrationDataEntry.container.js | 4 +- .../RegistrationDataEntry.epics.js | 166 +++++-------- .../helpers/deriveAutoGenerateEvents.js | 79 ++++++ ...deriveFirstStageDuringRegistrationEvent.js | 55 +++++ .../getStageWithOpenAfterEnrollment.js | 45 ++++ .../RegistrationDataEntry/helpers/index.js | 5 + .../helpers/standardGeoJson.js | 19 ++ .../EditEventDataEntry.component.js | 2 +- .../EditEventDataEntry.container.js | 2 +- .../WidgetEventEdit/widgetEventEdit.types.js | 2 +- .../hooks/useEnrollmentEditEventPageMode.js | 17 +- .../metaData/DataElement/DataElement.js | 9 + .../capture-core/metaData/Program/Program.js | 9 + .../metaData/Program/ProgramStage.js | 9 + .../RenderFoundation/RenderFoundation.js | 18 +- .../metaData/RenderFoundation/Section.js | 13 + .../factory/enrollment/DataElementFactory.js | 13 +- .../factory/enrollment/EnrollmentFactory.js | 23 +- .../factory/program/ProgramFactory.js | 1 + .../programStage/DataElementFactory.js | 7 +- .../programStage/ProgramStageFactory.js | 5 +- .../quickStoreOperations/storePrograms.js | 2 +- .../types/apiPrograms.types.js | 1 + .../rules/getApplicableRuleEffects.js | 4 +- .../capture-core/rules/rules.types.js | 1 + .../storageControllers/cache.types.js | 2 + 70 files changed, 1334 insertions(+), 272 deletions(-) create mode 100644 src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/EnrollmentWithFirstStageDataEntry.component.js create mode 100644 src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/EnrollmentWithFirstStageDataEntry.constants.js create mode 100644 src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/EnrollmentWithFirstStageDataEntry.container.js create mode 100644 src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/EnrollmentWithFirstStageDataEntry.types.js create mode 100644 src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/fieldLabels.module.css create mode 100644 src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/fieldValidators/eventDate.validatorContainersGetter.js create mode 100644 src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/fieldValidators/index.js create mode 100644 src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/getDataEntryPropsToInclude.js create mode 100644 src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/hooks/index.js create mode 100644 src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/hooks/useDataEntrySections.js create mode 100644 src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/index.js create mode 100644 src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/withCleanUp.js create mode 100644 src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/hooks/useBuildFirstStageRegistration.js create mode 100644 src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/hooks/useMergeFormFoundationsIfApplicable.js rename src/core_modules/capture-core/components/DataEntry/{FieldSection.component.js => Field.component.js} (91%) create mode 100644 src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/deriveAutoGenerateEvents.js create mode 100644 src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/deriveFirstStageDuringRegistrationEvent.js create mode 100644 src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/getStageWithOpenAfterEnrollment.js create mode 100644 src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/index.js create mode 100644 src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/standardGeoJson.js diff --git a/cypress/integration/EnrollmentPage/BreakingTheGlass/index.js b/cypress/integration/EnrollmentPage/BreakingTheGlass/index.js index 45ad92f517..70a2fdad96 100644 --- a/cypress/integration/EnrollmentPage/BreakingTheGlass/index.js +++ b/cypress/integration/EnrollmentPage/BreakingTheGlass/index.js @@ -31,6 +31,10 @@ And('you create a new tei in Child programme from Ngelehun CHC', () => { .eq(1) .type('TheGlass') .blur(); + cy.get('[data-test="capture-ui-input"]') + .eq(7) + .type('2023-09-01') + .blur(); clickSave(); }); diff --git a/cypress/integration/NewPage.feature b/cypress/integration/NewPage.feature index 21b3d996d8..85aaa709d3 100644 --- a/cypress/integration/NewPage.feature +++ b/cypress/integration/NewPage.feature @@ -178,6 +178,7 @@ Feature: User creates a new entries from the registration page Scenario: New person in Tracker Program > Submitting the form shows a list with duplicates Given you are in Child programme registration page When you fill the Child programme registration form with a first name with value that has duplicates + And you fill in the birth report date And you click the save person submit button And you see the possible duplicates modal When you click the next page button @@ -197,7 +198,7 @@ Feature: User creates a new entries from the registration page When you are in the Malaria case diagnosis, treatment and investigation program registration page And you fill the Malaria case diagnosis registration form with values And you click the save malaria entity submit button - Then you see the enrollment event New page + Then you see the enrollment event Edit page When you open the main page with Ngelehun and Malaria case diagnosis, treatment and investigation context And you opt out to use the new enrollment Dashboard for Malaria case diagnosis, treatment and investigation Then you see the opt in component for Malaria case diagnosis, treatment and investigation @@ -208,3 +209,7 @@ Feature: User creates a new entries from the registration page Given you are in Child programme reenrollment page Then you see the form prefield with existing TEI attributes values And the scope selector has the TEI context + + Scenario: First stage appears on registration page + Given you are in Child programme registration page + Then the first stage appears on registration page diff --git a/cypress/integration/NewPage/index.js b/cypress/integration/NewPage/index.js index 09046c7c65..4cc6af0afb 100644 --- a/cypress/integration/NewPage/index.js +++ b/cypress/integration/NewPage/index.js @@ -502,6 +502,13 @@ And('you fill the Child programme registration form with a first name with value .blur(); }); +And('you fill in the birth report date', () => { + cy.get('[data-test="capture-ui-input"]') + .eq(7) + .type('2023-01-01') + .blur(); +}); + And('you are in the WNCH PNC program registration page', () => { cy.visit('/#/new?programId=uy2gU8kT1jF&orgUnitId=DiszpKrYNg8'); }); @@ -561,12 +568,10 @@ And('you fill the Malaria case diagnosis registration form with values', () => { .blur(); }); -Then('you see the enrollment event New page', () => { - cy.url().should('include', '/#/enrollmentEventNew?'); - cy.url().should('include', 'stageId=hYyB7FUS5eR'); +Then('you see the enrollment event Edit page', () => { + cy.url().should('include', '/#/enrollmentEventEdit?'); }); - And('you fill in multiple Allergies options', () => { cy.get('[data-test="registration-page-content"]').within(() => { cy.contains('Allergies').should('exist'); @@ -585,3 +590,13 @@ Then('you can see the multiple selections in the form', () => { cy.contains('Other').should('exist'); }); }); + +Then('the first stage appears on registration page', () => { + cy.get('[data-test="registration-page-content"]').within(() => { + cy.contains('Birth - Basic info').should('exist'); + cy.contains('Birth - Details').should('exist'); + cy.contains('Birth - Status').should('exist'); + cy.contains('Report date').should('exist'); + cy.contains('Apgar Score').should('exist'); + }); +}); diff --git a/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser/index.js b/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser/index.js index 974685a855..7e5825c8a1 100644 --- a/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser/index.js +++ b/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser/index.js @@ -2,8 +2,8 @@ import { v4 as uuid } from 'uuid'; import '../../sharedSteps'; import '../../../sharedSteps'; -const cleanUpIfApplicable = () => { - cy.buildApiUrl('programStageWorkingLists?filter=program.id:eq:qDkgAbB5Jlk&fields=id,displayName') +const cleanUpIfApplicable = (programId) => { + cy.buildApiUrl(`programStageWorkingLists?filter=program.id:eq:${programId}&fields=id,displayName`) .then(url => cy.request(url)) .then(({ body }) => { const workingList = body.programStageWorkingLists?.find(e => e.displayName === 'Custom Program stage list'); @@ -55,7 +55,7 @@ Given('you open the main page with Ngelehun and Malaria case diagnosis context', }); Given('you open the main page with Ngelehun and Malaria case diagnosis and Household investigation context', () => { - cleanUpIfApplicable(); + cleanUpIfApplicable('qDkgAbB5Jlk'); cy.visit('#/?programId=qDkgAbB5Jlk&orgUnitId=DiszpKrYNg8'); cy.get('[data-test="tei-working-lists"]') @@ -75,7 +75,7 @@ Given('you open the main page with Ngelehun and Malaria case diagnosis and House }); Given('you open a clean main page with Ngelehun and Malaria focus investigation context', () => { - cleanUpIfApplicable(); + cleanUpIfApplicable('M3xtLkYBlKI'); cy.visit('#/?programId=M3xtLkYBlKI&orgUnitId=DiszpKrYNg8'); }); diff --git a/i18n/en.pot b/i18n/en.pot index e179d736a4..06e8de8d33 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: 2023-09-04T07:07:59.195Z\n" -"PO-Revision-Date: 2023-09-04T07:07:59.195Z\n" +"POT-Creation-Date: 2023-09-29T14:14:34.330Z\n" +"PO-Revision-Date: 2023-09-29T14:14:34.330Z\n" msgid "Choose one or more dates..." msgstr "Choose one or more dates..." @@ -149,6 +149,15 @@ msgstr "Coordinate" msgid "Enrollment" msgstr "Enrollment" +msgid "Complete event" +msgstr "Complete event" + +msgid "{{ stageName }} - Basic info" +msgstr "{{ stageName }} - Basic info" + +msgid "{{ stageName }} - Status" +msgstr "{{ stageName }} - Status" + msgid "Please select {{categoryName}}" msgstr "Please select {{categoryName}}" @@ -167,15 +176,18 @@ msgstr "Cancel" msgid "Metadata error. see log for details" msgstr "Metadata error. see log for details" +msgid "{{ stageName }} - Details" +msgstr "{{ stageName }} - Details" + +msgid "{{ stageName }} - {{ sectionName }}" +msgstr "{{ stageName }} - {{ sectionName }}" + msgid "Assigned user" msgstr "Assigned user" msgid "Search for user" msgstr "Search for user" -msgid "Complete event" -msgstr "Complete event" - msgid "Basic info" msgstr "Basic info" diff --git a/package.json b/package.json index a0589b228f..6d42913001 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "capture-app", "homepage": ".", "version": "100.40.1", - "cacheVersion": "5", + "cacheVersion": "6", "serverVersion": "38", "license": "BSD-3-Clause", "private": true, diff --git a/src/core_modules/capture-core/components/D2Form/D2Form.component.js b/src/core_modules/capture-core/components/D2Form/D2Form.component.js index 5d24c11bba..4f17677b07 100644 --- a/src/core_modules/capture-core/components/D2Form/D2Form.component.js +++ b/src/core_modules/capture-core/components/D2Form/D2Form.component.js @@ -116,11 +116,21 @@ class D2Form extends React.PureComponent { id, classes, isFormInReduxStore, + getCustomContent, ...passOnProps } = this.props; const metaDataSectionsAsArray = Array.from(formFoundation.sections.entries()).map(entry => entry[1]); - const sections = metaDataSectionsAsArray.map(section => (passOnProps.formHorizontal ? this.renderHorizontal(section, passOnProps) : this.renderVertical(section, passOnProps))); + const sections = metaDataSectionsAsArray.map(section => ( + passOnProps.formHorizontal + ? this.renderHorizontal(section, passOnProps) + : ( + <> + {getCustomContent && getCustomContent(section.id) } + {this.renderVertical(section, passOnProps)} + + ) + )); return ( <> diff --git a/src/core_modules/capture-core/components/D2Form/D2Form.types.js b/src/core_modules/capture-core/components/D2Form/D2Form.types.js index 59f5065222..9671d8309f 100644 --- a/src/core_modules/capture-core/components/D2Form/D2Form.types.js +++ b/src/core_modules/capture-core/components/D2Form/D2Form.types.js @@ -1,5 +1,5 @@ // @flow - +import * as React from 'react'; import type { RenderFoundation } from '../../metaData'; export type FormRef = $ReadOnly<{| @@ -10,6 +10,7 @@ export type OwnProps = $ReadOnly<{| formFoundation: RenderFoundation, id: string, formHorizontal?: boolean, + getCustomContent?: (beforeSectionId: string) => React.Node, ...FormRef |}> diff --git a/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentDataEntry.component.js b/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentDataEntry.component.js index aa756a6f5a..afb0561e04 100644 --- a/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentDataEntry.component.js +++ b/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentDataEntry.component.js @@ -33,7 +33,8 @@ import { getIncidentDateValidatorContainer, } from './fieldValidators'; import { sectionKeysForEnrollmentDataEntry } from './constants/sectionKeys.const'; -import { type Enrollment, getProgramThrowIfNotFound } from '../../../metaData'; +import { type Enrollment, ProgramStage, RenderFoundation, getProgramThrowIfNotFound } from '../../../metaData'; +import { EnrollmentWithFirstStageDataEntry } from './EnrollmentWithFirstStageDataEntry'; import { getCategoryOptionsValidatorContainers, attributeOptionsKey, @@ -41,7 +42,6 @@ import { withAOCFieldBuilder, withDataEntryFields, } from '../../DataEntryDhis2Helpers'; -import { shouldUseNewDashboard } from '../../../utils/routing'; const overrideMessagePropNames = { errorMessage: 'validationError', @@ -290,40 +290,35 @@ const getCategoryOptionsSettingsFn = () => { getPropName: (props: Object, fieldId?: string) => (fieldId ? `${attributeOptionsKey}-${fieldId}` : attributeOptionsKey), getFieldIds: (props: Object) => props.categories?.map(category => category.id), getValidatorContainers: (props: Object, fieldId?: string) => getCategoryOptionsValidatorContainers(props, fieldId), - getMeta: (props: Object) => ({ - section: AOCsectionKey, - placement: placements.BOTTOM, - sectionName: props.programCategory?.displayName, - }), + getMeta: (props: Object) => { + const { firstStageMetaData, programCategory } = props; + + return { + section: AOCsectionKey, + placement: placements.BOTTOM, + sectionName: firstStageMetaData + ? `${firstStageMetaData.stage.name} - ${programCategory?.displayName}` + : programCategory?.displayName, + }; + }, }; return categoryOptionsSettings; }; const getAOCSettingsFn = () => ({ - hideAOC: ({ programId, newDashboardConfig }) => { - const { stages: stagesMap } = getProgramThrowIfNotFound(programId); + hideAOC: ({ programId }) => { + const { stages: stagesMap, useFirstStageDuringRegistration } = getProgramThrowIfNotFound(programId); /* Show AOC selection if: - - There are any program stages in the program with “Auto-generate" event and NOT “Open data entry form after enrollment”. - - There are multiple program stages with "Auto-generate" event and "Open data entry form after enrollment" - (in this scenario we are currently generating events for the program stages that are not the first one) - - Using the old dashboard and we have a stage with auto generate event. + - There are any program stages in the program with “Auto-generate" + - The "Show first stage on registration page" is selected for the program */ const stages = [...stagesMap.values()]; - const usingNewDashboardForProgram = shouldUseNewDashboard( - newDashboardConfig.userDataStore, - newDashboardConfig.dataStore, - newDashboardConfig.temp, - programId, - ); - - const shouldShowAOC = (!usingNewDashboardForProgram && stages.some(stage => stage.autoGenerateEvent)) || - stages.some(stage => stage.autoGenerateEvent && !stage.openAfterEnrollment) || - stages.filter(stage => stage.autoGenerateEvent && stage.openAfterEnrollment).length > 1; + const shouldShowAOC = stages.some(stage => stage.autoGenerateEvent) || useFirstStageDuringRegistration; return !shouldShowAOC; }, @@ -336,7 +331,9 @@ type FinalTeiDataEntryProps = { orgUnitId: string, onUpdateDataEntryField: Function, onUpdateFormFieldAsync: Function, - onUpdateFormField: Function + onUpdateFormField: Function, + firstStageMetaData?: ?{ stage: ProgramStage }, + formFoundation: RenderFoundation, }; // final step before the generic dataEntry is inserted class FinalEnrollmentDataEntry extends React.Component { @@ -355,14 +352,21 @@ class FinalEnrollmentDataEntry extends React.Component { }; render() { - const { enrollmentMetadata, ...passOnProps } = this.props; + const { enrollmentMetadata, firstStageMetaData, ...passOnProps } = this.props; + return ( // $FlowFixMe[cannot-spread-inexact] automated comment - + firstStageMetaData ? ( + + ) : ( + + ) ); } } @@ -385,6 +389,8 @@ type PreEnrollmentDataEntryProps = { onStartAsyncUpdateField: Function, onGetUnsavedAttributeValues?: ?Function, teiId?: ?string, + firstStageMetaData?: ?{ stage: ProgramStage }, + formFoundation: RenderFoundation, }; class PreEnrollmentDataEntryPure extends React.PureComponent { @@ -409,18 +415,18 @@ export class EnrollmentDataEntryComponent extends React.Component) => { - const { programId, orgUnit } = this.props; - this.props.onUpdateField(...args, programId, orgUnit); + const { programId, orgUnit, firstStageMetaData, formFoundation } = this.props; + this.props.onUpdateField(...args, programId, orgUnit, firstStageMetaData?.stage, formFoundation); } handleUpdateDataEntryField = (...args: Array) => { - const { programId, orgUnit } = this.props; - this.props.onUpdateDataEntryField(...args, programId, orgUnit); + const { programId, orgUnit, firstStageMetaData, formFoundation } = this.props; + this.props.onUpdateDataEntryField(...args, programId, orgUnit, firstStageMetaData?.stage, formFoundation); } handleStartAsyncUpdateField = (...args: Array) => { - const { programId, orgUnit } = this.props; - this.props.onStartAsyncUpdateField(...args, programId, orgUnit); + const { programId, orgUnit, firstStageMetaData, formFoundation } = this.props; + this.props.onStartAsyncUpdateField(...args, programId, orgUnit, firstStageMetaData?.stage, formFoundation); } render() { @@ -432,6 +438,7 @@ export class EnrollmentDataEntryComponent extends React.Component ({ - newDashboardConfig: useNewDashboard, -}); - const mapDispatchToProps = (dispatch: ReduxDispatch) => ({ onUpdateDataEntryField: ( innerAction: ReduxAction, data: any, programId: string, orgUnit: OrgUnit, + stage?: ProgramStage, + formFoundation: RenderFoundation, ) => { - dispatch(updateDataEntryFieldBatch(innerAction, programId, orgUnit)); + dispatch(updateDataEntryFieldBatch(innerAction, programId, orgUnit, stage, formFoundation)); }, onUpdateField: ( innerAction: ReduxAction, programId: string, orgUnit: OrgUnit, + stage?: ProgramStage, + formFoundation: RenderFoundation, ) => { - dispatch(updateFieldBatch(innerAction, programId, orgUnit)); + dispatch(updateFieldBatch(innerAction, programId, orgUnit, stage, formFoundation)); }, onStartAsyncUpdateField: ( innerAction: ReduxAction, @@ -31,9 +32,11 @@ const mapDispatchToProps = (dispatch: ReduxDispatch) => ({ itemId: string, programId: string, orgUnit: OrgUnit, + stage?: ProgramStage, + formFoundation: RenderFoundation, ) => { const onAsyncUpdateSuccess = (successInnerAction: ReduxAction) => - asyncUpdateSuccessBatch(successInnerAction, dataEntryId, itemId, programId, orgUnit); + asyncUpdateSuccessBatch(successInnerAction, dataEntryId, itemId, programId, orgUnit, stage, formFoundation); const onAsyncUpdateError = (errorInnerAction: ReduxAction) => errorInnerAction; dispatch(startAsyncUpdateFieldForNewEnrollment(innerAction, onAsyncUpdateSuccess, onAsyncUpdateError)); @@ -41,5 +44,5 @@ const mapDispatchToProps = (dispatch: ReduxDispatch) => ({ }); // $FlowFixMe -export const EnrollmentDataEntry = connect(mapStateToProps, mapDispatchToProps)(EnrollmentDataEntryComponent); +export const EnrollmentDataEntry = connect(() => ({}), mapDispatchToProps)(EnrollmentDataEntryComponent); diff --git a/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/EnrollmentWithFirstStageDataEntry.component.js b/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/EnrollmentWithFirstStageDataEntry.component.js new file mode 100644 index 0000000000..c1b0b328b0 --- /dev/null +++ b/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/EnrollmentWithFirstStageDataEntry.component.js @@ -0,0 +1,231 @@ +// @flow +import i18n from '@dhis2/d2-i18n'; +import { DataEntry } from '../../../DataEntry'; +import { + withInternalChangeHandler, + withLabel, + withFocusSaver, + DateField, + PolygonField, + CoordinateField, + withCalculateMessages, + withDisplayMessages, + withFilterProps, + withDefaultFieldContainer, + withDefaultShouldUpdateInterface, + TrueOnlyField, + orientations, +} from '../../../FormFields/New'; +import { placements } from '../../../DataEntry/constants/placements.const'; +import { withDataEntryFieldIfApplicable } from '../../../DataEntry/dataEntryField/withDataEntryFieldIfApplicable'; +import { sectionKeysForFirstStageDataEntry } from './EnrollmentWithFirstStageDataEntry.constants'; +import labelTypeClasses from './fieldLabels.module.css'; +import { withCleanUp } from './withCleanUp'; +import { getEventDateValidatorContainers } from './fieldValidators/eventDate.validatorContainersGetter'; +import { stageMainDataIds } from './getDataEntryPropsToInclude'; + +const overrideMessagePropNames = { + errorMessage: 'validationError', +}; + +const getCalendarAnchorPosition = (formHorizontal: ?boolean) => (formHorizontal ? 'center' : 'left'); + +const baseComponentStyles = { + labelContainerStyle: { + flexBasis: 200, + }, + inputContainerStyle: { + flexBasis: 150, + }, +}; +const baseComponentStylesVertical = { + labelContainerStyle: { + width: 150, + }, + inputContainerStyle: { + width: 150, + }, +}; + +function defaultFilterProps(props: Object) { + const { formHorizontal, fieldOptions, validationError, modified, ...passOnProps } = props; + return passOnProps; +} + +const getBaseComponentProps = (props: Object) => ({ + fieldOptions: props.fieldOptions, + formHorizontal: props.formHorizontal, + styles: props.formHorizontal ? baseComponentStylesVertical : baseComponentStyles, +}); + +const createComponentProps = (props: Object, componentProps: Object) => ({ + ...getBaseComponentProps(props), + ...componentProps, +}); + +const getOrientation = (formHorizontal: ?boolean) => (formHorizontal ? orientations.VERTICAL : orientations.HORIZONTAL); + +const pointComponent = withCalculateMessages(overrideMessagePropNames)( + withFocusSaver()( + withDefaultFieldContainer()( + withDefaultShouldUpdateInterface()( + withLabel({ + onGetUseVerticalOrientation: (props: Object) => props.formHorizontal, + onGetCustomFieldLabeClass: (props: Object) => + `${props.fieldOptions && props.fieldOptions.fieldLabelMediaBasedClass} ${labelTypeClasses.coordinateLabel}`, + })( + withDisplayMessages()( + withInternalChangeHandler()( + withFilterProps(defaultFilterProps)(CoordinateField), + ), + ), + ), + ), + ), + ), +); + +const polygonComponent = withCalculateMessages(overrideMessagePropNames)( + withFocusSaver()( + withDefaultFieldContainer()( + withDefaultShouldUpdateInterface()( + withLabel({ + onGetUseVerticalOrientation: (props: Object) => props.formHorizontal, + onGetCustomFieldLabeClass: (props: Object) => + `${props.fieldOptions && props.fieldOptions.fieldLabelMediaBasedClass} ${labelTypeClasses.coordinateLabel}`, + })( + withDisplayMessages()( + withInternalChangeHandler()( + withFilterProps(defaultFilterProps)(PolygonField), + ), + ), + ), + ), + ), + ), +); + +const getStageGeometrySettings = () => ({ + isApplicable: (props: Object) => { + const featureType = props.firstStageMetaData?.stage?.stageForm?.featureType; + return ['Polygon', 'Point'].includes(featureType); + }, + getComponent: (props: Object) => { + const featureType = props.firstStageMetaData?.stage?.stageForm?.featureType; + if (featureType === 'Polygon') { + return polygonComponent; + } + return pointComponent; + }, + getComponentProps: (props: Object) => { + const featureType = props.firstStageMetaData?.stage?.stageForm?.featureType; + if (featureType === 'Polygon') { + return createComponentProps(props, { + width: props && props.formHorizontal ? 150 : 350, + label: i18n.t('Area'), + dialogLabel: i18n.t('Area'), + required: false, + orientation: getOrientation(props.formHorizontal), + }); + } + + return createComponentProps(props, { + width: props && props.formHorizontal ? 150 : 350, + label: i18n.t('Coordinate'), + dialogLabel: i18n.t('Coordinate'), + required: false, + orientation: getOrientation(props.formHorizontal), + shrinkDisabled: props.formHorizontal, + }); + }, + getPropName: () => stageMainDataIds.GEOMETRY, + getValidatorContainers: () => [], + getMeta: () => ({ + section: sectionKeysForFirstStageDataEntry.STAGE_BASIC_INFO, + }), +}); + +const getCompleteFieldSettingsFn = () => { + const completeComponent = + withCalculateMessages(overrideMessagePropNames)( + withFocusSaver()( + withDefaultFieldContainer()( + withDefaultShouldUpdateInterface()( + withLabel({ + onGetUseVerticalOrientation: (props: Object) => props.formHorizontal, + onGetCustomFieldLabeClass: (props: Object) => + `${props.fieldOptions && props.fieldOptions.fieldLabelMediaBasedClass} ${labelTypeClasses.trueOnlyLabel}`, + })( + withDisplayMessages()( + withInternalChangeHandler()( + withFilterProps(defaultFilterProps)(TrueOnlyField), + ), + ), + ), + ), + ), + ), + ); + const completeSettings = { + isApplicable: (props: Object) => props.firstStageMetaData && props.firstStageMetaData.stage?.stageForm, + getComponent: () => completeComponent, + getComponentProps: (props: Object) => createComponentProps(props, { + label: i18n.t('Complete event'), + id: 'complete', + }), + getPropName: () => stageMainDataIds.COMPLETE, + getValidatorContainers: () => [], + getMeta: () => ({ + placement: placements.BOTTOM, + section: sectionKeysForFirstStageDataEntry.STATUS, + }), + getPassOnFieldData: () => true, + }; + + return completeSettings; +}; + +const getReportDateSettingsFn = () => { + const reportDateComponent = + withCalculateMessages(overrideMessagePropNames)( + withFocusSaver()( + withDefaultFieldContainer()( + withDefaultShouldUpdateInterface()( + withLabel({ + onGetUseVerticalOrientation: (props: Object) => props.formHorizontal, + onGetCustomFieldLabeClass: (props: Object) => + `${props.fieldOptions && props.fieldOptions.fieldLabelMediaBasedClass} ${labelTypeClasses.dateLabel}`, + })( + withDisplayMessages()( + withInternalChangeHandler()( + withFilterProps(defaultFilterProps)(DateField), + ), + ), + ), + ), + ), + ), + ); + const reportDateSettings = { + isApplicable: (props: Object) => props.firstStageMetaData?.stage?.stageForm, + getComponent: () => reportDateComponent, + getComponentProps: (props: Object) => createComponentProps(props, { + width: props && props.formHorizontal ? 150 : '100%', + label: props.firstStageMetaData?.stage?.stageForm?.getLabel('occurredAt'), + required: true, + calendarWidth: props.formHorizontal ? 250 : 350, + popupAnchorPosition: getCalendarAnchorPosition(props.formHorizontal), + }), + getPropName: () => stageMainDataIds.OCCURRED_AT, + getValidatorContainers: () => getEventDateValidatorContainers(), + getMeta: () => ({ + section: sectionKeysForFirstStageDataEntry.STAGE_BASIC_INFO, + }), + }; + + return reportDateSettings; +}; + +const StageLocationHOC = withDataEntryFieldIfApplicable(getStageGeometrySettings())(withCleanUp()(DataEntry)); +const CompleteHOC = withDataEntryFieldIfApplicable(getCompleteFieldSettingsFn())(StageLocationHOC); +export const FirstStageDataEntry = withDataEntryFieldIfApplicable(getReportDateSettingsFn())(CompleteHOC); diff --git a/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/EnrollmentWithFirstStageDataEntry.constants.js b/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/EnrollmentWithFirstStageDataEntry.constants.js new file mode 100644 index 0000000000..1abc295aa9 --- /dev/null +++ b/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/EnrollmentWithFirstStageDataEntry.constants.js @@ -0,0 +1,7 @@ +// @flow + +export const sectionKeysForFirstStageDataEntry = { + ENROLLMENT: 'enrollment', + STATUS: 'status', + STAGE_BASIC_INFO: 'stageBasicInfo', +}; diff --git a/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/EnrollmentWithFirstStageDataEntry.container.js b/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/EnrollmentWithFirstStageDataEntry.container.js new file mode 100644 index 0000000000..b831b9f197 --- /dev/null +++ b/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/EnrollmentWithFirstStageDataEntry.container.js @@ -0,0 +1,28 @@ +// @flow +import React from 'react'; +import type { Props } from './EnrollmentWithFirstStageDataEntry.types'; +import { FirstStageDataEntry } from './EnrollmentWithFirstStageDataEntry.component'; +import { useDataEntrySections } from './hooks'; +import { Section } from '../../../../metaData'; + +const getSectionId = sectionId => + (sectionId === Section.MAIN_SECTION_ID ? `${Section.MAIN_SECTION_ID}-stage` : sectionId); + +export const EnrollmentWithFirstStageDataEntry = (props: Props) => { + const { firstStageMetaData, ...passOnProps } = props; + const { + stage: { stageForm: firstStageFormFoundation, name: stageName }, + } = firstStageMetaData; + // $FlowFixMe[incompatible-type] + const [[firstSectionId]] = firstStageFormFoundation.sections; + const beforeSectionId = getSectionId(firstSectionId); + const dataEntrySections = useDataEntrySections(stageName, beforeSectionId); + + return ( + + ); +}; diff --git a/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/EnrollmentWithFirstStageDataEntry.types.js b/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/EnrollmentWithFirstStageDataEntry.types.js new file mode 100644 index 0000000000..6c2a054867 --- /dev/null +++ b/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/EnrollmentWithFirstStageDataEntry.types.js @@ -0,0 +1,9 @@ +// @flow +import type { ProgramStage, RenderFoundation } from '../../../../metaData'; + +export type Props = { + firstStageMetaData: { + stage: ProgramStage, + }, + formFoundation: RenderFoundation, +}; diff --git a/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/fieldLabels.module.css b/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/fieldLabels.module.css new file mode 100644 index 0000000000..faa712abaf --- /dev/null +++ b/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/fieldLabels.module.css @@ -0,0 +1,45 @@ +.booleanLabel { + padding-top: 13px; +} + +.trueOnlyLabel { + padding-top: 13px; +} +.noteLabel { + padding-top: 13px; +} + +.textLabel { + padding-top: 13px; +} + +.ageLabel { + padding-top: 13px; +} + +.coordinateLabel { + padding-top: 13px; +} +.polygonLabel { + padding-top: 4px; +} + +.dateLabel { + padding-top: 13px; +} + +.dateTimeLabel { + padding-top: 13px; +} + +.imageLabel { + padding-top: 9px; +} + +.fileLabel { + padding-top: 9px; +} + +.orgUnitLabel { + padding-top: 3px; +} \ No newline at end of file diff --git a/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/fieldValidators/eventDate.validatorContainersGetter.js b/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/fieldValidators/eventDate.validatorContainersGetter.js new file mode 100644 index 0000000000..3cb0a56c19 --- /dev/null +++ b/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/fieldValidators/eventDate.validatorContainersGetter.js @@ -0,0 +1,26 @@ +// @flow +import { hasValue } from 'capture-core-utils/validators/form'; +import i18n from '@dhis2/d2-i18n'; +import { isValidDate } from '../../../../../utils/validators/form'; + +const preValidateDate = (value?: ?string) => { + if (!value) { + return true; + } + + return isValidDate(value); +}; + +export const getEventDateValidatorContainers = () => { + const validatorContainers = [ + { + validator: hasValue, + message: i18n.t('A value is required'), + }, + { + validator: preValidateDate, + message: i18n.t('Please provide a valid date'), + }, + ]; + return validatorContainers; +}; diff --git a/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/fieldValidators/index.js b/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/fieldValidators/index.js new file mode 100644 index 0000000000..5399d49334 --- /dev/null +++ b/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/fieldValidators/index.js @@ -0,0 +1,3 @@ +// @flow + +export { getEventDateValidatorContainers } from './eventDate.validatorContainersGetter'; diff --git a/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/getDataEntryPropsToInclude.js b/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/getDataEntryPropsToInclude.js new file mode 100644 index 0000000000..aef6ec85cf --- /dev/null +++ b/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/getDataEntryPropsToInclude.js @@ -0,0 +1,39 @@ +// @flow +import type { RenderFoundation } from '../../../../metaData'; +import { getEventDateValidatorContainers } from './fieldValidators'; +import { getConvertGeometryIn, convertGeometryOut, convertStatusIn, convertStatusOut } from '../../converters'; + +export const stageMainDataIds = { + OCCURRED_AT: 'stageOccurredAt', + COMPLETE: 'stageComplete', + GEOMETRY: 'stageGeometry', +}; + +const stageMainDataRulesEngineIds = { + OCCURRED_AT: 'occurredAt', + COMPLETE: 'complete', + GEOMETRY: 'geometry', +}; + +export const convertToRulesEngineIds = (id: string) => stageMainDataRulesEngineIds[id]; + +export const getDataEntryPropsToInclude = (formFoundation: RenderFoundation) => [ + { + id: stageMainDataIds.OCCURRED_AT, + type: 'DATE', + validatorContainers: getEventDateValidatorContainers(), + }, + { + clientId: stageMainDataIds.COMPLETE, + dataEntryId: stageMainDataIds.COMPLETE, + onConvertIn: convertStatusIn, + onConvertOut: convertStatusOut, + }, + { + clientId: stageMainDataIds.GEOMETRY, + dataEntryId: stageMainDataIds.GEOMETRY, + onConvertIn: getConvertGeometryIn(formFoundation), + onConvertOut: convertGeometryOut, + featureType: formFoundation.featureType, + }, +]; diff --git a/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/hooks/index.js b/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/hooks/index.js new file mode 100644 index 0000000000..83d6e81265 --- /dev/null +++ b/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/hooks/index.js @@ -0,0 +1,3 @@ +// @flow + +export { useDataEntrySections } from './useDataEntrySections'; diff --git a/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/hooks/useDataEntrySections.js b/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/hooks/useDataEntrySections.js new file mode 100644 index 0000000000..3aab5bd6d2 --- /dev/null +++ b/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/hooks/useDataEntrySections.js @@ -0,0 +1,34 @@ +// @flow +import { useMemo } from 'react'; +import i18n from '@dhis2/d2-i18n'; +import { placements } from '../../../../DataEntry/constants/placements.const'; +import { sectionKeysForFirstStageDataEntry } from '../EnrollmentWithFirstStageDataEntry.constants'; +import { AOCsectionKey } from '../../../../DataEntryDhis2Helpers'; + +export const useDataEntrySections = (stageName: string, beforeSectionId: string) => + useMemo( + () => ({ + [sectionKeysForFirstStageDataEntry.ENROLLMENT]: { + placement: placements.TOP, + name: i18n.t('Enrollment'), + }, + [sectionKeysForFirstStageDataEntry.STAGE_BASIC_INFO]: { + beforeSectionId, + placement: placements.BEFORE_METADATA_BASED_SECTION, + name: i18n.t('{{ stageName }} - Basic info', { + stageName, + }), + }, + [AOCsectionKey]: { + beforeSectionId, + placement: placements.BEFORE_METADATA_BASED_SECTION, + }, + [sectionKeysForFirstStageDataEntry.STATUS]: { + placement: placements.BOTTOM, + name: i18n.t('{{ stageName }} - Status', { + stageName, + }), + }, + }), + [stageName, beforeSectionId], + ); diff --git a/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/index.js b/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/index.js new file mode 100644 index 0000000000..9570ba1aba --- /dev/null +++ b/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/index.js @@ -0,0 +1,4 @@ +// @flow + +export { EnrollmentWithFirstStageDataEntry } from './EnrollmentWithFirstStageDataEntry.container'; +export { getDataEntryPropsToInclude, stageMainDataIds, convertToRulesEngineIds } from './getDataEntryPropsToInclude'; diff --git a/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/withCleanUp.js b/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/withCleanUp.js new file mode 100644 index 0000000000..5b2cc24c0e --- /dev/null +++ b/src/core_modules/capture-core/components/DataEntries/Enrollment/EnrollmentWithFirstStageDataEntry/withCleanUp.js @@ -0,0 +1,21 @@ +// @flow +import * as React from 'react'; + +const getCleanUpHOC = (InnerComponent: React.ComponentType) => + (props: Object) => { + const { + dataEntryFieldRef, + firstStageMetaData, + ...passOnProps + } = props; + + return ( + + ); + }; + +export const withCleanUp = () => + (InnerComponent: React.ComponentType) => + getCleanUpHOC(InnerComponent); diff --git a/src/core_modules/capture-core/components/DataEntries/Enrollment/actions/enrollment.actionBatchs.js b/src/core_modules/capture-core/components/DataEntries/Enrollment/actions/enrollment.actionBatchs.js index c59fa959ee..f84452c7fe 100644 --- a/src/core_modules/capture-core/components/DataEntries/Enrollment/actions/enrollment.actionBatchs.js +++ b/src/core_modules/capture-core/components/DataEntries/Enrollment/actions/enrollment.actionBatchs.js @@ -8,7 +8,7 @@ import type { } from '@dhis2/rules-engine-javascript'; import { getApplicableRuleEffectsForTrackerProgram, updateRulesEffects } from '../../../../rules'; import { rulesExecutedPostUpdateField } from '../../../DataEntry/actions/dataEntry.actions'; -import type { TrackerProgram, RenderFoundation } from '../../../../metaData'; +import { TrackerProgram, RenderFoundation, ProgramStage } from '../../../../metaData'; import { startRunRulesPostUpdateField } from '../../../DataEntry'; import { startRunRulesOnUpdateForNewEnrollment } from './enrollment.actions'; @@ -18,25 +18,42 @@ export const batchActionTypes = { UPDATE_DATA_ENTRY_FIELD_NEW_ENROLLMENT_ACTION_BATCH: 'UpdateDataEntryFieldNewEnrollmentActionBatch', }; -export const runRulesOnUpdateFieldBatch = ( +export const runRulesOnUpdateFieldBatch = ({ + program, + formId, + dataEntryId, + itemId, + orgUnit, + enrollmentData, + attributeValues, + extraActions = [], + uid, + stage, + formFoundation, + currentEvent, +}: { program: TrackerProgram, - foundation: RenderFoundation, formId: string, dataEntryId: string, itemId: string, orgUnit: OrgUnit, enrollmentData?: Enrollment, attributeValues?: TEIValues, - extraActions: Array> = [], + extraActions: Array>, uid: string, -) => { + stage?: ProgramStage, + formFoundation?: RenderFoundation, + currentEvent?: {[id: string]: any}, +}) => { const effects = getApplicableRuleEffectsForTrackerProgram({ program, + stage, orgUnit, + currentEvent, enrollmentData, attributeValues, + formFoundation, }); - return batchActions([ updateRulesEffects(effects, formId), rulesExecutedPostUpdateField(dataEntryId, itemId, uid), @@ -48,6 +65,8 @@ export const updateDataEntryFieldBatch = ( innerAction: ReduxAction, programId: string, orgUnit: OrgUnit, + stage?: ProgramStage, + formFoundation: RenderFoundation, ) => { const { dataEntryId, itemId } = innerAction.payload; const uid = uuid(); @@ -55,7 +74,7 @@ export const updateDataEntryFieldBatch = ( return batchActions([ innerAction, startRunRulesPostUpdateField(dataEntryId, itemId, uid), - startRunRulesOnUpdateForNewEnrollment(innerAction.payload, uid, programId, orgUnit), + startRunRulesOnUpdateForNewEnrollment(innerAction.payload, uid, programId, orgUnit, stage, formFoundation), ], batchActionTypes.UPDATE_DATA_ENTRY_FIELD_NEW_ENROLLMENT_ACTION_BATCH); }; @@ -63,6 +82,8 @@ export const updateFieldBatch = ( innerAction: ReduxAction, programId: string, orgUnit: OrgUnit, + stage?: ProgramStage, + formFoundation: RenderFoundation, ) => { const { dataEntryId, itemId } = innerAction.payload; const uid = uuid(); @@ -70,7 +91,7 @@ export const updateFieldBatch = ( return batchActions([ innerAction, startRunRulesPostUpdateField(dataEntryId, itemId, uid), - startRunRulesOnUpdateForNewEnrollment(innerAction.payload, uid, programId, orgUnit), + startRunRulesOnUpdateForNewEnrollment(innerAction.payload, uid, programId, orgUnit, stage, formFoundation), ], batchActionTypes.UPDATE_FIELD_NEW_ENROLLMENT_ACTION_BATCH); }; @@ -80,12 +101,14 @@ export const asyncUpdateSuccessBatch = ( itemId: string, programId: string, orgUnit: OrgUnit, + stage?: ProgramStage, + formFoundation: RenderFoundation, ) => { const uid = uuid(); return batchActions([ innerAction, startRunRulesPostUpdateField(dataEntryId, itemId, uid), - startRunRulesOnUpdateForNewEnrollment({ ...innerAction.payload, dataEntryId, itemId }, uid, programId, orgUnit), + startRunRulesOnUpdateForNewEnrollment({ ...innerAction.payload, dataEntryId, itemId }, uid, programId, orgUnit, stage, formFoundation), ], batchActionTypes.UPDATE_FIELD_NEW_ENROLLMENT_ACTION_BATCH); }; diff --git a/src/core_modules/capture-core/components/DataEntries/Enrollment/actions/enrollment.actions.js b/src/core_modules/capture-core/components/DataEntries/Enrollment/actions/enrollment.actions.js index b259a5821c..68d8a8cb7e 100644 --- a/src/core_modules/capture-core/components/DataEntries/Enrollment/actions/enrollment.actions.js +++ b/src/core_modules/capture-core/components/DataEntries/Enrollment/actions/enrollment.actions.js @@ -1,6 +1,7 @@ // @flow import type { OrgUnit } from '@dhis2/rules-engine-javascript'; import { actionCreator, actionPayloadAppender } from '../../../../actions/actions.utils'; +import { ProgramStage, RenderFoundation } from '../../../../metaData'; export const actionTypes = { START_RUN_RULES_ON_UPDATE: 'StartRunRulesOnUpdateForNewEnrollment', @@ -11,9 +12,11 @@ export const startRunRulesOnUpdateForNewEnrollment = ( uid: string, programId: string, orgUnit: OrgUnit, + stage?: ProgramStage, + formFoundation: RenderFoundation, ) => actionCreator(actionTypes.START_RUN_RULES_ON_UPDATE)( - { innerPayload: payload, uid, programId, orgUnit }); + { innerPayload: payload, uid, programId, orgUnit, stage, formFoundation }); export const startAsyncUpdateFieldForNewEnrollment = ( innerAction: ReduxAction, diff --git a/src/core_modules/capture-core/components/DataEntries/Enrollment/actions/open.actionBatchs.js b/src/core_modules/capture-core/components/DataEntries/Enrollment/actions/open.actionBatchs.js index f83897ebfa..2507d1c474 100644 --- a/src/core_modules/capture-core/components/DataEntries/Enrollment/actions/open.actionBatchs.js +++ b/src/core_modules/capture-core/components/DataEntries/Enrollment/actions/open.actionBatchs.js @@ -2,21 +2,26 @@ import { batchActions } from 'redux-batched-actions'; import type { OrgUnit } from '@dhis2/rules-engine-javascript'; import { getApplicableRuleEffectsForTrackerProgram, updateRulesEffects } from '../../../../rules'; -import type { TrackerProgram } from '../../../../metaData'; +import type { ProgramStage, TrackerProgram, RenderFoundation } from '../../../../metaData'; import { getDataEntryKey } from '../../../DataEntry/common/getDataEntryKey'; import { loadNewDataEntry } from '../../../DataEntry/actions/dataEntryLoadNew.actions'; import { openDataEntryForNewEnrollment } from './open.actions'; -import { getEnrollmentDateValidatorContainer, getIncidentDateValidatorContainer, getCategoryOptionsValidatorContainers } from '../fieldValidators'; +import { + getEnrollmentDateValidatorContainer, + getIncidentDateValidatorContainer, + getCategoryOptionsValidatorContainers, +} from '../fieldValidators'; import { convertGeometryOut } from '../../converters'; import { convertDateObjectToDateFormatString } from '../../../../utils/converters/date'; import { addFormData } from '../../../D2Form/actions/form.actions'; import type { ProgramCategory } from '../../../WidgetEventSchedule/CategoryOptions/CategoryOptions.types'; +import { getDataEntryPropsToInclude } from '../EnrollmentWithFirstStageDataEntry'; const itemId = 'newEnrollment'; type DataEntryPropsToInclude = Array; -const dataEntryPropsToInclude: DataEntryPropsToInclude = [ +const enrollmentDataEntryPropsToInclude: DataEntryPropsToInclude = [ { id: 'enrolledAt', type: 'DATE', @@ -48,7 +53,9 @@ export const openDataEntryForNewEnrollmentBatchAsync = async ({ extraDataEntryProps = [], formValues, clientValues, + firstStage, programCategory, + formFoundation, }: { program: TrackerProgram, orgUnit: OrgUnit, @@ -57,30 +64,39 @@ export const openDataEntryForNewEnrollmentBatchAsync = async ({ extraDataEntryProps?: Array, formValues: { [key: string]: any }, clientValues: { [key: string]: any }, + firstStage?: ProgramStage, programCategory?: ProgramCategory, + formFoundation: RenderFoundation, }) => { const formId = getDataEntryKey(dataEntryId, itemId); - - if (programCategory && programCategory.categories) { - dataEntryPropsToInclude.push(...programCategory.categories.map(category => ({ + const addFormDataActions = addFormData(`${dataEntryId}-${itemId}`, formValues); + const firstStageDataEntryPropsToInclude = firstStage && getDataEntryPropsToInclude(firstStage.stageForm); + const dataEntryPropsToInclude = [ + ...enrollmentDataEntryPropsToInclude, + ...extraDataEntryProps, + ...(firstStageDataEntryPropsToInclude || []), + ...(programCategory && programCategory.categories ? programCategory.categories.map(category => ({ id: `attributeCategoryOptions-${category.id}`, type: 'TEXT', - validatorContainers: getCategoryOptionsValidatorContainers({ categories: programCategory.categories }, category.id), - }))); - } + validatorContainers: + getCategoryOptionsValidatorContainers({ categories: programCategory.categories }, category.id), + })) : []), + ]; + const dataEntryActions = loadNewDataEntry( dataEntryId, itemId, - [...dataEntryPropsToInclude, ...extraDataEntryProps], + dataEntryPropsToInclude, { enrolledAt: convertDateObjectToDateFormatString(new Date()) }, ); - const addFormDataActions = addFormData(`${dataEntryId}-${itemId}`, formValues); const effects = getApplicableRuleEffectsForTrackerProgram({ program, orgUnit, + stage: firstStage, attributeValues: clientValues, + formFoundation, }); return batchActions([ diff --git a/src/core_modules/capture-core/components/DataEntries/Enrollment/epics/enrollment.epics.js b/src/core_modules/capture-core/components/DataEntries/Enrollment/epics/enrollment.epics.js index f5b11285e8..9bc4da634a 100644 --- a/src/core_modules/capture-core/components/DataEntries/Enrollment/epics/enrollment.epics.js +++ b/src/core_modules/capture-core/components/DataEntries/Enrollment/epics/enrollment.epics.js @@ -4,9 +4,11 @@ import { ofType } from 'redux-observable'; import { map } from 'rxjs/operators'; import { batchActionTypes, runRulesOnUpdateFieldBatch } from '../actions/enrollment.actionBatchs'; import { actionTypes } from '../actions/enrollment.actions'; -import { getTrackerProgramThrowIfNotFound } from '../../../../metaData'; -import { getCurrentClientValues, getCurrentClientMainData, type FieldData } from '../../../../rules'; +import { getTrackerProgramThrowIfNotFound, ProgramStage, RenderFoundation, Section } from '../../../../metaData'; +import { getCurrentClientMainData, type FieldData } from '../../../../rules'; import { getDataEntryKey } from '../../../DataEntry/common/getDataEntryKey'; +import { convertFormToClient } from '../../../../converters'; +import { stageMainDataIds, convertToRulesEngineIds } from '../EnrollmentWithFirstStageDataEntry'; type Context = { dataEntryId: string, @@ -14,31 +16,59 @@ type Context = { uid: string, programId: string, orgUnit: OrgUnit, + stage?: ProgramStage, + formFoundation: RenderFoundation, } +const splitCurrentClientMainData = (stage, currentClientMainData) => { + if (!stage) { + return { currentEnrollmentValues: currentClientMainData, currentEventMainData: {} }; + } + return Object.keys(currentClientMainData).reduce((acc, id) => { + const stageMainDataId = Object.keys(stageMainDataIds).find(key => stageMainDataIds[key] === id); + if (stageMainDataId) { + acc.currentEventMainData = { + ...acc.currentEventMainData, + [convertToRulesEngineIds(stageMainDataId)]: currentClientMainData[id], + }; + } else { + acc.currentEnrollmentValues = { ...acc.currentEnrollmentValues, [id]: currentClientMainData[id] }; + } + return acc; + }, { currentEnrollmentValues: {}, currentEventMainData: {} }); +}; + const runRulesOnEnrollmentUpdate = (store: ReduxStore, context: Context, fieldData?: ?FieldData, searchActions?: any = []) => { const state = store.value; - const { programId, dataEntryId, itemId, orgUnit, uid } = context; + const { programId, dataEntryId, itemId, orgUnit, uid, stage, formFoundation } = context; const formId = getDataEntryKey(dataEntryId, itemId); const program = getTrackerProgramThrowIfNotFound(programId); - const foundation = program.enrollment.enrollmentForm; - const currentTEIValues = getCurrentClientValues(state, foundation, formId, fieldData); - const currentEnrollmentValues = - getCurrentClientMainData(state, itemId, dataEntryId, foundation); + const currentFormData = state.formsValues[formId] || {}; + const convertedValues = formFoundation.convertAndGroupBySection(currentFormData, convertFormToClient); + const attributeValues = convertedValues[Section.groups.ENROLLMENT]; + const currentEventValues = convertedValues[Section.groups.EVENT] || {}; + const currentClientMainData = + getCurrentClientMainData(state, itemId, dataEntryId, formFoundation) || {}; + const { currentEnrollmentValues, currentEventMainData } + = splitCurrentClientMainData(state, currentClientMainData); + const currentEvent = stage + ? { ...currentEventValues, ...currentEventMainData, programStageId: stage.id } : undefined; - return runRulesOnUpdateFieldBatch( + return runRulesOnUpdateFieldBatch({ program, - foundation, formId, dataEntryId, itemId, orgUnit, - currentEnrollmentValues, - currentTEIValues ?? undefined, - searchActions, + enrollmentData: currentEnrollmentValues, + attributeValues, + currentEvent, + extraActions: searchActions, uid, - ); + stage, + formFoundation: stage ? formFoundation : undefined, + }); }; @@ -53,6 +83,8 @@ export const runRulesOnEnrollmentDataEntryFieldUpdateEpic = (action$: InputObser programId, orgUnit, innerPayload, + stage, + formFoundation, } = action.payload; const { @@ -66,6 +98,8 @@ export const runRulesOnEnrollmentDataEntryFieldUpdateEpic = (action$: InputObser uid, programId, orgUnit, + stage, + formFoundation, }); })); @@ -75,7 +109,7 @@ export const runRulesOnEnrollmentFieldUpdateEpic = (action$: InputObservable, st map(actionBatch => actionBatch.payload.find(action => action.type === actionTypes.START_RUN_RULES_ON_UPDATE)), map((action) => { - const { innerPayload: payload, searchActions, uid, programId, orgUnit } = action.payload; + const { innerPayload: payload, searchActions, uid, programId, orgUnit, stage, formFoundation } = action.payload; const { dataEntryId, itemId, elementId, value, uiState } = payload; const fieldData: FieldData = { @@ -90,6 +124,8 @@ export const runRulesOnEnrollmentFieldUpdateEpic = (action$: InputObservable, st dataEntryId, itemId, uid, + stage, + formFoundation, }, fieldData, searchActions); }), ); diff --git a/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/EnrollmentRegistrationEntry.actions.js b/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/EnrollmentRegistrationEntry.actions.js index 4e74581537..2a54784b45 100644 --- a/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/EnrollmentRegistrationEntry.actions.js +++ b/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/EnrollmentRegistrationEntry.actions.js @@ -5,6 +5,23 @@ export const enrollmentRegistrationEntryActionTypes = { TRACKER_PROGRAM_REGISTRATION_ENTRY_INITIALISATION_START: 'StartInitForEnrollmentRegistrationForm', }; -export const startNewEnrollmentDataEntryInitialisation = ({ selectedOrgUnit, selectedScopeId, dataEntryId, formValues, clientValues, programCategory }: Object) => - actionCreator(enrollmentRegistrationEntryActionTypes.TRACKER_PROGRAM_REGISTRATION_ENTRY_INITIALISATION_START)({ selectedOrgUnit, selectedScopeId, dataEntryId, formValues, clientValues, programCategory }); - +export const startNewEnrollmentDataEntryInitialisation = ({ + selectedOrgUnit, + selectedScopeId, + dataEntryId, + formValues, + clientValues, + programCategory, + firstStage, + formFoundation, +}: Object) => + actionCreator(enrollmentRegistrationEntryActionTypes.TRACKER_PROGRAM_REGISTRATION_ENTRY_INITIALISATION_START)({ + selectedOrgUnit, + selectedScopeId, + dataEntryId, + formValues, + clientValues, + programCategory, + firstStage, + formFoundation, + }); diff --git a/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/EnrollmentRegistrationEntry.container.js b/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/EnrollmentRegistrationEntry.container.js index 6d624541be..623a16abce 100644 --- a/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/EnrollmentRegistrationEntry.container.js +++ b/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/EnrollmentRegistrationEntry.container.js @@ -8,23 +8,26 @@ import { useLifecycle } from './hooks'; import { useCurrentOrgUnitInfo } from '../../../hooks/useCurrentOrgUnitInfo'; import { useRulesEngineOrgUnit } from '../../../hooks'; import { dataEntryHasChanges } from '../../DataEntry/common/dataEntryHasChanges'; -import { useMetadataForRegistrationForm } from '../common/TEIAndEnrollment/useMetadataForRegistrationForm'; export const EnrollmentRegistrationEntry: ComponentType = ({ selectedScopeId, id, saveButtonText, trackedEntityInstanceAttributes, + onSave, ...passOnProps }) => { const orgUnitId = useCurrentOrgUnitInfo().id; const { orgUnit, error } = useRulesEngineOrgUnit(orgUnitId); - const { teiId, ready, skipDuplicateCheck } = useLifecycle(selectedScopeId, id, trackedEntityInstanceAttributes, orgUnit); const { + teiId, + ready, + skipDuplicateCheck, + firstStageMetaData, formId, - registrationMetaData: enrollmentMetadata, + enrollmentMetadata, formFoundation, - } = useMetadataForRegistrationForm({ selectedScopeId }); + } = useLifecycle(selectedScopeId, id, trackedEntityInstanceAttributes, orgUnit); const isUserInteractionInProgress: boolean = useSelector( state => @@ -35,7 +38,6 @@ export const EnrollmentRegistrationEntry: ComponentType = ({ ); const trackedEntityTypeNameLC = enrollmentMetadata?.trackedEntityType?.name.toLocaleLowerCase() ?? ''; - const isSavingInProgress = useSelector(({ possibleDuplicates, newPage }) => possibleDuplicates.isLoading || possibleDuplicates.isUpdating || !!newPage.uid); @@ -46,6 +48,7 @@ export const EnrollmentRegistrationEntry: ComponentType = ({ return ( = ({ orgUnit={orgUnit} isUserInteractionInProgress={isUserInteractionInProgress} isSavingInProgress={isSavingInProgress} + onSave={() => onSave(formFoundation, firstStageMetaData)} /> ); }; diff --git a/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/EnrollmentRegistrationEntry.epics.js b/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/EnrollmentRegistrationEntry.epics.js index 5737a4988b..44e25f9bc4 100644 --- a/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/EnrollmentRegistrationEntry.epics.js +++ b/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/EnrollmentRegistrationEntry.epics.js @@ -15,7 +15,16 @@ export const startNewEnrollmentDataEntrySelfInitialisationEpic = (action$: Input action$.pipe( ofType(enrollmentRegistrationEntryActionTypes.TRACKER_PROGRAM_REGISTRATION_ENTRY_INITIALISATION_START), pluck('payload'), - switchMap(({ selectedOrgUnit, selectedScopeId: programId, dataEntryId, formValues, clientValues, programCategory }) => { + switchMap(({ + selectedOrgUnit, + selectedScopeId: programId, + dataEntryId, + formValues, + clientValues, + programCategory, + firstStage, + formFoundation, + }) => { if (selectedOrgUnit) { let trackerProgram: ?TrackerProgram; try { @@ -33,7 +42,9 @@ export const startNewEnrollmentDataEntrySelfInitialisationEpic = (action$: Input dataEntryId, formValues, clientValues, + firstStage, programCategory, + formFoundation, }); return from(openEnrollmentPromise); diff --git a/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/EnrollmentRegistrationEntry.types.js b/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/EnrollmentRegistrationEntry.types.js index 463fbecc06..f1924c00b3 100644 --- a/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/EnrollmentRegistrationEntry.types.js +++ b/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/EnrollmentRegistrationEntry.types.js @@ -6,7 +6,7 @@ import type { RenderCustomCardActions } from '../../CardList'; import type { SaveForDuplicateCheck } from '../common/TEIAndEnrollment/DuplicateCheckOnSave'; import type { ExistingUniqueValueDialogActionsComponent } from '../withErrorMessagePostProcessor'; import type { InputAttribute } from './hooks/useFormValues'; -import { RenderFoundation } from '../../../metaData'; +import { RenderFoundation, ProgramStage } from '../../../metaData'; export type OwnProps = $ReadOnly<{| id: string, @@ -21,6 +21,7 @@ export type OwnProps = $ReadOnly<{| skipDuplicateCheck?: ?boolean, trackedEntityInstanceAttributes?: Array, saveButtonText: (trackedEntityName: string) => string, + firstStageMetaData?: ?{ stage: ?ProgramStage }, |}>; type ContainerProps = {| diff --git a/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/hooks/useBuildFirstStageRegistration.js b/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/hooks/useBuildFirstStageRegistration.js new file mode 100644 index 0000000000..4bd04e8f62 --- /dev/null +++ b/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/hooks/useBuildFirstStageRegistration.js @@ -0,0 +1,32 @@ +// @flow +import { useMemo } from 'react'; +import { getProgramAndStageForProgram } from '../../../../metaData'; +import { useProgramFromIndexedDB } from '../../../../utils/cachedDataHooks/useProgramFromIndexedDB'; + +export const useBuildFirstStageRegistration = (programId: string, skip: boolean = false) => { + const { program, isLoading } = useProgramFromIndexedDB(programId, { enabled: !skip }); + + const firstStage = useMemo(() => { + if (!isLoading && program?.useFirstStageDuringRegistration) { + const { programStages } = program; + const programStagesWithAccess = programStages + .filter((stage) => { + const access = { + read: stage.access.data.read, + write: stage.access.data.write, + }; + return access.write; + }) + .sort((a, b) => a.sortOrder - b.sortOrder); + return programStagesWithAccess[0]?.id; + } + return null; + }, [program, isLoading]); + + const firstStageMetaData = useMemo( + () => (firstStage && programId ? getProgramAndStageForProgram(programId, firstStage) : null), + [firstStage, programId], + ); + + return { loading: isLoading, firstStageMetaData }; +}; diff --git a/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/hooks/useLifecycle.js b/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/hooks/useLifecycle.js index a7b645c87c..0c4a280bf6 100644 --- a/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/hooks/useLifecycle.js +++ b/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/hooks/useLifecycle.js @@ -8,8 +8,10 @@ import { useLocationQuery } from '../../../../utils/routing'; import { useScopeInfo } from '../../../../hooks/useScopeInfo'; import { useFormValues } from './index'; import type { InputAttribute } from './useFormValues'; +import { useBuildFirstStageRegistration } from './useBuildFirstStageRegistration'; import { useMetadataForRegistrationForm } from '../../common/TEIAndEnrollment/useMetadataForRegistrationForm'; import { useCategoryCombinations } from '../../../DataEntryDhis2Helpers/AOC/useCategoryCombinations'; +import { useMergeFormFoundationsIfApplicable } from './useMergeFormFoundationsIfApplicable'; export const useLifecycle = ( selectedScopeId: string, @@ -24,7 +26,14 @@ export const useLifecycle = ( const ready = useSelector(({ dataEntries }) => !!dataEntries[dataEntryId]) && !!orgUnit; const searchTerms = useSelector(({ searchDomain }) => searchDomain.currentSearchInfo.currentSearchTerms); const { scopeType } = useScopeInfo(selectedScopeId); - const { formFoundation } = useMetadataForRegistrationForm({ selectedScopeId }); + const { firstStageMetaData } = useBuildFirstStageRegistration(programId, scopeType !== scopeTypes.TRACKER_PROGRAM); + const { + formId, + registrationMetaData: enrollmentMetadata, + formFoundation: enrollmentFormFoundation, + } = useMetadataForRegistrationForm({ selectedScopeId }); + + const { formFoundation } = useMergeFormFoundationsIfApplicable(enrollmentFormFoundation, firstStageMetaData); const { programCategory } = useCategoryCombinations(programId, scopeType !== scopeTypes.TRACKER_PROGRAM); const { formValues, clientValues, formValuesReadyRef } = useFormValues({ program, @@ -43,7 +52,8 @@ export const useLifecycle = ( dataEntryReadyRef.current === false && formValuesReadyRef.current === true && orgUnit && - scopeType === scopeTypes.TRACKER_PROGRAM + scopeType === scopeTypes.TRACKER_PROGRAM && + formFoundation ) { dataEntryReadyRef.current = true; dispatch( @@ -54,10 +64,32 @@ export const useLifecycle = ( formValues, clientValues, programCategory, + firstStage: firstStageMetaData?.stage, + formFoundation, }), ); } - }, [scopeType, dataEntryId, selectedScopeId, orgUnit, formValuesReadyRef, formValues, clientValues, programCategory, dispatch]); + }, [ + formFoundation, + scopeType, + dataEntryId, + selectedScopeId, + orgUnit, + formValuesReadyRef, + formValues, + clientValues, + programCategory, + firstStageMetaData, + dispatch, + ]); - return { teiId, ready, skipDuplicateCheck: !!teiId }; + return { + teiId, + ready, + skipDuplicateCheck: !!teiId, + firstStageMetaData, + formId, + enrollmentMetadata, + formFoundation, + }; }; diff --git a/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/hooks/useMergeFormFoundationsIfApplicable.js b/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/hooks/useMergeFormFoundationsIfApplicable.js new file mode 100644 index 0000000000..77235be403 --- /dev/null +++ b/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/hooks/useMergeFormFoundationsIfApplicable.js @@ -0,0 +1,72 @@ +// @flow +import { useMemo } from 'react'; +import i18n from '@dhis2/d2-i18n'; +import { RenderFoundation, Section, ProgramStage } from '../../../../metaData'; + +const addElements = (section, newSection) => + Array.from(section.elements.entries()) + .map(entry => entry[1]) + .forEach((element) => { + // $FlowFixMe[prop-missing] section is missing in FormFieldPluginConfig + element.section = newSection; + newSection.addElement(element); + }); + +const getSectionId = sectionId => + (sectionId === Section.MAIN_SECTION_ID ? `${Section.MAIN_SECTION_ID}-stage` : sectionId); + +export const useMergeFormFoundationsIfApplicable = ( + enrollmentFormFoundation?: ?RenderFoundation, + firstStageMetaData?: ?{ stage: ?ProgramStage }, +) => { + const enrollmentSectionsSize = enrollmentFormFoundation?.sections.size; + + return useMemo(() => { + const firstStageFormFoundation = firstStageMetaData?.stage?.stageForm; + if (!enrollmentFormFoundation) { + return { formFoundation: null }; + } + + if (!firstStageFormFoundation || enrollmentSectionsSize === 0) { + return { formFoundation: enrollmentFormFoundation }; + } + + const stageName = firstStageMetaData?.stage?.name; + const { id, name, access, description, featureType, validationStrategy } = enrollmentFormFoundation; + const renderFoundation = new RenderFoundation((o) => { + o.id = id; + o.name = name; + o.access = access; + o.description = description; + o.featureType = featureType; + o.validationStrategy = validationStrategy; + }); + + enrollmentFormFoundation.sections.forEach(section => renderFoundation.addSection(section)); + + firstStageFormFoundation.sections.forEach((section) => { + const isMainSection = section.id === Section.MAIN_SECTION_ID; + const newSection = new Section((o) => { + o.id = getSectionId(section.id); + o.name = isMainSection + ? i18n.t('{{ stageName }} - Details', { + stageName, + }) + : i18n.t('{{ stageName }} - {{ sectionName }}', { + stageName, + sectionName: section.name, + }); + o.group = Section.groups.EVENT; + o.customForm = section.customForm; + o.showContainer = section.showContainer; + o.open = section.open; + o.visible = section.visible; + o.displayDescription = section.displayDescription; + }); + addElements(section, newSection); + renderFoundation.addSection(newSection); + }); + + return { formFoundation: renderFoundation }; + }, [enrollmentFormFoundation, firstStageMetaData, enrollmentSectionsSize]); +}; diff --git a/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/DuplicateCheckOnSave/types/duplicateCheckOnSave.types.js b/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/DuplicateCheckOnSave/types/duplicateCheckOnSave.types.js index 83ab589551..a727db9ec2 100644 --- a/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/DuplicateCheckOnSave/types/duplicateCheckOnSave.types.js +++ b/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/DuplicateCheckOnSave/types/duplicateCheckOnSave.types.js @@ -1,3 +1,7 @@ // @flow +import { ProgramStage, RenderFoundation } from '../../../../../../metaData'; -export type SaveForDuplicateCheck = () => void; +export type SaveForDuplicateCheck = ( + formFoundation?: RenderFoundation, + firstStageMetaData?: { stage: ProgramStage }, +) => void; diff --git a/src/core_modules/capture-core/components/DataEntries/converters/converters.js b/src/core_modules/capture-core/components/DataEntries/converters/converters.js index 64b17bc514..a0efa43b3a 100644 --- a/src/core_modules/capture-core/components/DataEntries/converters/converters.js +++ b/src/core_modules/capture-core/components/DataEntries/converters/converters.js @@ -1,14 +1,15 @@ // @flow import type { RenderFoundation } from '../../../metaData'; -export function convertGeometryOut(dataEntryValue: any, foundation: RenderFoundation) { - if (!dataEntryValue || !['Polygon', 'Point'].includes(foundation.featureType)) return null; +export function convertGeometryOut(dataEntryValue: any, foundation: RenderFoundation, customFeatureType: string) { + const featureType = customFeatureType || foundation.featureType; + if (!dataEntryValue || !['Polygon', 'Point'].includes(featureType)) return null; let coordinates = dataEntryValue; - if (foundation.featureType === 'Point') { + if (featureType === 'Point') { coordinates = [dataEntryValue.longitude, dataEntryValue.latitude]; } return { - type: foundation.featureType, + type: featureType, coordinates, }; } diff --git a/src/core_modules/capture-core/components/DataEntry/DataEntry.component.js b/src/core_modules/capture-core/components/DataEntry/DataEntry.component.js index b554fb3b2b..c0c818c491 100644 --- a/src/core_modules/capture-core/components/DataEntry/DataEntry.component.js +++ b/src/core_modules/capture-core/components/DataEntry/DataEntry.component.js @@ -10,7 +10,7 @@ import { getDataEntryKey } from './common/getDataEntryKey'; import { StickyOnScroll } from '../Sticky/StickyOnScroll.component'; import { Section } from '../Section/Section.component'; import { SectionHeaderSimple } from '../Section/SectionHeaderSimple.component'; -import { FieldSection } from './FieldSection.component'; +import { Field } from './Field.component'; const styles = theme => ({ loadingContainer: { @@ -69,11 +69,17 @@ const styles = theme => ({ verticalOutputsContainer: { marginBottom: theme.typography.pxToRem(10), }, - dataEntryFieldSectionContainer: { + dataEntrySectionContainer: { marginBottom: spacers.dp16, }, }); +type DataEntrySection = { + placement: $Values, + name: string, + beforeSectionId?: string +}; + type FieldContainer = { field: React.Element, placement: $Values, @@ -120,7 +126,7 @@ type Props = { dataEntryId: string, itemId: string, ) => void, - dataEntrySections?: { [string]: {name: string, placement: $Values}}, + dataEntrySections?: { [string]: DataEntrySection }, dataEntryFieldRef: any, onAddNote?: ?Function, onOpenAddRelationship?: ?Function, @@ -159,22 +165,34 @@ class DataEntryPlain extends React.Component { }; } + hasPlacement = ( + dataEntrySection: DataEntrySection, + placement: $Values, + beforeSectionId?: string, + ) => + dataEntrySection.placement === placement && + (dataEntrySection.placement !== placements.BEFORE_METADATA_BASED_SECTION || + (dataEntrySection.placement === placements.BEFORE_METADATA_BASED_SECTION && + dataEntrySection.beforeSectionId === beforeSectionId + ) + ); + handleUpdateFieldAsync = (...args) => { this.props.onUpdateFormFieldAsync(...args, this.props.id, this.props.itemId); } - getFieldSectionsWithPlacement(placement: $Values) { + getSectionsWithPlacement(placement: $Values, beforeSectionId?: string) { const fields = this.props.fields || []; const sections = this.props.dataEntrySections || {}; return this.props.dataEntrySections ? Object.keys(this.props.dataEntrySections).reduce((accSections, sectionKey) => { const section = sections[sectionKey]; - if (section.placement === placement) { + if (this.hasPlacement(section, placement, beforeSectionId)) { const sectionFields = fields .filter(fieldContainer => fieldContainer.section === sectionKey); const sectionFieldsContainer = sectionFields.map((fieldContainer, index, array) => ( - { accSections.push(
{ : []; } - renderDataEntryFieldsByPlacement = (placement: $Values) => { + renderDataEntryFieldsByPlacement = (placement: $Values, beforeSectionId?: string) => { const fields = this.props.fields || []; const fieldFilter = this.props.formHorizontal ? fieldHorizontalFilter(placement) : fieldVerticalFilter(placement); const fieldsByPlacement = fields ? fields .filter(fieldFilter) - .map((fieldContainer, index, array) => ( ( { : []; if (!this.props.formHorizontal) { - return [...fieldsByPlacement, ...this.getFieldSectionsWithPlacement(placement)]; + return [...fieldsByPlacement, ...this.getSectionsWithPlacement(placement, beforeSectionId)]; } return fieldsByPlacement; } @@ -258,6 +276,9 @@ class DataEntryPlain extends React.Component { validationAttempted={completionAttempted || saveAttempted} onUpdateField={this.handleUpdateField} onUpdateFieldAsync={this.handleUpdateFieldAsync} + getCustomContent={beforeSectionId => ( + this.renderDataEntryFieldsByPlacement(placements.BEFORE_METADATA_BASED_SECTION, beforeSectionId) + )} {...passOnProps} /> ); diff --git a/src/core_modules/capture-core/components/DataEntry/FieldSection.component.js b/src/core_modules/capture-core/components/DataEntry/Field.component.js similarity index 91% rename from src/core_modules/capture-core/components/DataEntry/FieldSection.component.js rename to src/core_modules/capture-core/components/DataEntry/Field.component.js index a67eb08b33..d53831c878 100644 --- a/src/core_modules/capture-core/components/DataEntry/FieldSection.component.js +++ b/src/core_modules/capture-core/components/DataEntry/Field.component.js @@ -24,7 +24,7 @@ type Props = { ...CssClasses } -const FieldSectionPlain = (props: Props) => { +const FieldPlain = (props: Props) => { const { formHorizontal, index, fieldContainer, total, classes } = props; const className = !formHorizontal ? index % 2 !== 0 && classes.evenNumbers : null; @@ -44,4 +44,4 @@ const FieldSectionPlain = (props: Props) => { ); }; -export const FieldSection = withStyles(styles)(FieldSectionPlain); +export const Field = withStyles(styles)(FieldPlain); diff --git a/src/core_modules/capture-core/components/DataEntry/actions/dataEntryLoad.utils.js b/src/core_modules/capture-core/components/DataEntry/actions/dataEntryLoad.utils.js index 5fb8fccaec..88e7bb9208 100644 --- a/src/core_modules/capture-core/components/DataEntry/actions/dataEntryLoad.utils.js +++ b/src/core_modules/capture-core/components/DataEntry/actions/dataEntryLoad.utils.js @@ -17,7 +17,8 @@ type DataEntryPropToIncludeSpecial = {| clientId: string, dataEntryId: string, onConvertIn: (value: any) => any, - onConvertOut: (dataEntryValue: any, prevValue: any, foundation: RenderFoundation) => any, + onConvertOut: (dataEntryValue: any, foundation: RenderFoundation, customFeatureType: string) => any, + featureType?: string, validatorContainers?: ?Array, |}; @@ -30,7 +31,11 @@ export function getDataEntryMeta(dataEntryPropsToInclude: Array { const error = useSelector(({ activePage }) => activePage.viewEventLoadError?.error); const { loading, event } = useEvent(eventId); const { program: programId, programStage: stageId, trackedEntity: teiId, enrollment: enrollmentId } = event; - const { orgUnitId, eventId: urlEventId } = useLocationQuery(); + const { orgUnitId, eventId: urlEventId, initMode } = useLocationQuery(); useEffect(() => { if (!urlEventId) { @@ -73,11 +73,20 @@ export const EnrollmentEditEventPage = () => { orgUnitId={orgUnitId} eventId={eventId} error={error} + initMode={initMode} /> ) : ; }; -const EnrollmentEditEventPageWithContextPlain = ({ programId, stageId, teiId, enrollmentId, orgUnitId, eventId }: Props) => { +const EnrollmentEditEventPageWithContextPlain = ({ + programId, + stageId, + teiId, + enrollmentId, + orgUnitId, + eventId, + initMode, +}: Props) => { const history = useHistory(); const dispatch = useDispatch(); @@ -98,9 +107,14 @@ const EnrollmentEditEventPageWithContextPlain = ({ programId, stageId, teiId, en const onAddNew = () => { history.push(`/new?${buildUrlQueryString({ programId, orgUnitId, teiId })}`); }; - const onCancelEditEvent = () => { - history.push(`/enrollment?${buildUrlQueryString({ enrollmentId })}`); - }; + const onCancelEditEvent = useCallback((isScheduled: boolean) => { + if (isScheduled) { + history.push(`/enrollment?${buildUrlQueryString({ enrollmentId })}`); + } + if (initMode) { + history.push(`/enrollmentEventEdit?${buildUrlQueryString({ eventId, orgUnitId })}`); + } + }, [initMode, enrollmentId, eventId, orgUnitId, history]); const onGoBack = () => history.push(`/enrollment?${buildUrlQueryString({ enrollmentId })}`); diff --git a/src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/EnrollmentEditEventPage.types.js b/src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/EnrollmentEditEventPage.types.js index 59ff58c190..8e16b09325 100644 --- a/src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/EnrollmentEditEventPage.types.js +++ b/src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/EnrollmentEditEventPage.types.js @@ -21,7 +21,7 @@ export type PlainProps = {| onGoBack: () => void, onEnrollmentError: (message: string) => void, onEnrollmentSuccess: () => void, - onCancelEditEvent: () => void, + onCancelEditEvent: (isScheduled: boolean) => void, onHandleScheduleSave: (eventData: Object) => void, pageStatus: string, eventStatus?: string, @@ -35,4 +35,5 @@ export type Props = {| enrollmentId: string, orgUnitId: string, eventId: string, + initMode?: string, |}; diff --git a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.actions.js b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.actions.js index 74753cb8b0..e716f71741 100644 --- a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.actions.js +++ b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.actions.js @@ -1,5 +1,5 @@ // @flow -import type { RenderFoundation } from '../../../../metaData'; +import type { ProgramStage, RenderFoundation } from '../../../../metaData'; import { actionCreator } from '../../../../actions/actions.utils'; import { effectMethods } from '../../../../trackerOffline'; @@ -41,23 +41,26 @@ export const saveNewTrackedEntityInstance = (candidateForRegistration: any) => ); // with enrollment -export const startSavingNewTrackedEntityInstanceWithEnrollment = (formFoundation: RenderFoundation, teiId: string, uid: string) => +export const startSavingNewTrackedEntityInstanceWithEnrollment = (formFoundation: RenderFoundation, teiId: string, uid: string, firstStage?: ProgramStage) => actionCreator(registrationFormActionTypes.NEW_TRACKED_ENTITY_INSTANCE_WITH_ENROLLMENT_SAVE_START)({ formFoundation, teiId, + firstStage, uid, }); export const saveNewTrackedEntityInstanceWithEnrollment = ({ candidateForRegistration, - redirectToEnrollmentEventNew, + redirectTo, uid, stageId, + eventIndex, }: { candidateForRegistration: any, - redirectToEnrollmentEventNew: boolean, + redirectTo: string, uid: string, stageId?: string, + eventIndex: number, }) => actionCreator(registrationFormActionTypes.NEW_TRACKED_ENTITY_INSTANCE_WITH_ENROLLMENT_SAVE)( { ...candidateForRegistration }, @@ -70,7 +73,7 @@ export const saveNewTrackedEntityInstanceWithEnrollment = ({ }, commit: { type: registrationFormActionTypes.NEW_TRACKED_ENTITY_INSTANCE_WITH_ENROLLMENT_SAVE_COMPLETED, - meta: { redirectToEnrollmentEventNew, stageId, uid }, + meta: { redirectTo, stageId, uid, eventIndex }, }, rollback: { type: registrationFormActionTypes.NEW_TRACKED_ENTITY_INSTANCE_WITH_ENROLLMENT_SAVE_FAILED, diff --git a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.component.js b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.component.js index 7a8cf76cc6..cf14636450 100644 --- a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.component.js +++ b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.component.js @@ -179,7 +179,9 @@ const RegistrationDataEntryPlain = ({ onSaveWithEnrollment(formFoundation)} + onSave={(customFormFoundation, firstStageMetaData) => + onSaveWithEnrollment(customFormFoundation, firstStageMetaData?.stage) + } saveButtonText={(trackedEntityTypeNameLC: string) => i18n.t('Save {{trackedEntityTypeName}}', { trackedEntityTypeName: trackedEntityTypeNameLC, interpolation: { escapeValue: false }, diff --git a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.container.js b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.container.js index bdebbcb962..41f5a864d5 100644 --- a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.container.js +++ b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.container.js @@ -30,9 +30,9 @@ export const RegistrationDataEntry: ComponentType = ({ [dispatch]); const dispatchOnSaveWithEnrollment = useCallback( - (formFoundation) => { + (formFoundation, firstStage) => { const uid = uuid(); - dispatch(startSavingNewTrackedEntityInstanceWithEnrollment(formFoundation, teiId, uid)); + dispatch(startSavingNewTrackedEntityInstanceWithEnrollment(formFoundation, teiId, uid, firstStage)); }, [dispatch, teiId]); diff --git a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.epics.js b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.epics.js index 7fab7c500f..004adb75f7 100644 --- a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.epics.js +++ b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.epics.js @@ -3,46 +3,30 @@ import { ofType } from 'redux-observable'; import { pipe } from 'capture-core-utils'; import { flatMap, map } from 'rxjs/operators'; import { of, EMPTY } from 'rxjs'; -import moment from 'moment'; +import { FEATURETYPE, dataEntryKeys } from 'capture-core/constants'; import { registrationFormActionTypes, saveNewTrackedEntityInstance, saveNewTrackedEntityInstanceWithEnrollment, } from './RegistrationDataEntry.actions'; -import { getTrackerProgramThrowIfNotFound, dataElementTypes } from '../../../../metaData'; +import { getTrackerProgramThrowIfNotFound, dataElementTypes, Section } from '../../../../metaData'; import { navigateToEnrollmentOverview, } from '../../../../actions/navigateToEnrollmentOverview/navigateToEnrollmentOverview.actions'; import { convertFormToClient, convertClientToServer } from '../../../../converters'; -import { FEATURETYPE } from '../../../../constants'; import { buildUrlQueryString, shouldUseNewDashboard } from '../../../../utils/routing'; -import { convertCategoryOptionsToServer } from '../../../../converters/clientToServer'; +import { + deriveAutoGenerateEvents, + deriveFirstStageDuringRegistrationEvent, + getStageWithOpenAfterEnrollment, + standardGeoJson, + PAGES, +} from './helpers'; const convertFn = pipe(convertFormToClient, convertClientToServer); const geometryType = formValuesKey => Object.values(FEATURETYPE).find(geometryKey => geometryKey === formValuesKey); -const standardGeoJson = (geometry) => { - if (!geometry) { - return undefined; - } - if (Array.isArray(geometry)) { - return { - type: 'Polygon', - coordinates: geometry, - }; - } else if (geometry.longitude && geometry.latitude) { - return { - type: 'Point', - coordinates: [geometry.longitude, geometry.latitude], - }; - } - return undefined; -}; - -const getStageWithOpenAfterEnrollment = stages => - [...stages.values()].find(({ openAfterEnrollment }) => openAfterEnrollment); - const deriveAttributesFromFormValues = (formValues = {}) => Object.keys(formValues) .filter(key => !geometryType(key)) @@ -53,64 +37,6 @@ const deriveGeometryFromFormValues = (formValues = {}) => .filter(key => geometryType(key)) .reduce((acc, currentKey) => (standardGeoJson(formValues[currentKey])), undefined); - -const deriveEvents = ({ - stages, - enrolledAt, - occurredAt, - programId, - orgUnitId, - redirectToEnrollmentEventNew, - redirectToStageId, - attributeCategoryOptions, -}) => { - // in case we have a program that does not have an incident date (occurredAt), such as Malaria case diagnosis, - // we want the incident to default to enrollmentDate (enrolledAt) - const sanitizedOccurredAt = occurredAt || enrolledAt; - return [...stages.values()] - .filter(({ id }) => (redirectToEnrollmentEventNew && id !== redirectToStageId) || !redirectToEnrollmentEventNew) - .filter(({ autoGenerateEvent }) => autoGenerateEvent) - .map(({ - id: programStage, - reportDateToUse: reportDateToUseInActiveStatus, - generatedByEnrollmentDate: generateScheduleDateByEnrollmentDate, - openAfterEnrollment, - minDaysFromStart, - }) => { - const dateToUseInActiveStatus = - reportDateToUseInActiveStatus === 'enrolledAt' ? enrolledAt : sanitizedOccurredAt; - const dateToUseInScheduleStatus = generateScheduleDateByEnrollmentDate ? enrolledAt : sanitizedOccurredAt; - const eventAttributeCategoryOptions = {}; - if (attributeCategoryOptions) { - eventAttributeCategoryOptions.attributeCategoryOptions = convertCategoryOptionsToServer(attributeCategoryOptions); - } - const eventInfo = - openAfterEnrollment - ? - { - status: 'ACTIVE', - occurredAt: convertFn(dateToUseInActiveStatus, dataElementTypes.DATE), - scheduledAt: convertFn(dateToUseInActiveStatus, dataElementTypes.DATE), - } - : - { - status: 'SCHEDULE', - // for schedule type of events we want to add the standard interval days to the date - scheduledAt: moment(convertFn(dateToUseInScheduleStatus, dataElementTypes.DATE)) - .add(minDaysFromStart, 'days') - .format('YYYY-MM-DD'), - }; - - return { - ...eventInfo, - ...eventAttributeCategoryOptions, - programStage, - program: programId, - orgUnit: orgUnitId, - }; - }); -}; - export const startSavingNewTrackedEntityInstanceEpic: Epic = (action$: InputObservable, store: ReduxStore) => action$.pipe( ofType(registrationFormActionTypes.NEW_TRACKED_ENTITY_INSTANCE_SAVE_START), @@ -154,9 +80,11 @@ export const startSavingNewTrackedEntityInstanceWithEnrollmentEpic: Epic = ( action$.pipe( ofType(registrationFormActionTypes.NEW_TRACKED_ENTITY_INSTANCE_WITH_ENROLLMENT_SAVE_START), map((action) => { + const formId = 'newPageDataEntryId-newEnrollment'; const { currentSelections: { orgUnitId, programId }, formsValues, dataEntriesFieldsValue } = store.value; const { dataStore, userDataStore, temp } = store.value.useNewDashboard; - const fieldsValue = dataEntriesFieldsValue['newPageDataEntryId-newEnrollment'] || {}; + const { formFoundation, teiId: trackedEntity, firstStage: firstStageMetadata, uid } = action.payload; + const fieldsValue = dataEntriesFieldsValue[formId] || {}; const { occurredAt, enrolledAt, geometry } = fieldsValue; const attributeCategoryOptionsId = 'attributeCategoryOptions'; const attributeCategoryOptions = Object.keys(fieldsValue) @@ -167,29 +95,47 @@ export const startSavingNewTrackedEntityInstanceWithEnrollmentEpic: Epic = ( return acc; }, {}); const { trackedEntityType, stages } = getTrackerProgramThrowIfNotFound(programId); - const values = formsValues['newPageDataEntryId-newEnrollment'] || {}; - const stageWithOpenAfterEnrollment = getStageWithOpenAfterEnrollment(stages); - const redirectToEnrollmentEventNew = - shouldUseNewDashboard(userDataStore, dataStore, temp, programId) && stageWithOpenAfterEnrollment !== undefined; - const events = deriveEvents({ + const currentFormData = formsValues[formId] || {}; + const shouldRedirect = shouldUseNewDashboard(userDataStore, dataStore, temp, programId); + const { stageWithOpenAfterEnrollment, redirectTo } = getStageWithOpenAfterEnrollment( + stages, + firstStageMetadata, + shouldRedirect, + ); + const convertedValues = formFoundation.convertAndGroupBySection(currentFormData, convertFn); + const formServerValues = convertedValues[Section.groups.ENROLLMENT]; + const currentEventValues = convertedValues[Section.groups.EVENT]; + + const firstStageDuringRegistrationEvent = deriveFirstStageDuringRegistrationEvent({ + firstStageMetadata, + programId, + orgUnitId, + currentEventValues, + fieldsValue, + attributeCategoryOptions, + }); + const autoGenerateEvents = deriveAutoGenerateEvents({ stages, enrolledAt, occurredAt, programId, orgUnitId, - redirectToEnrollmentEventNew, - redirectToStageId: stageWithOpenAfterEnrollment?.id, + firstStageMetadata, attributeCategoryOptions, }); - const { formFoundation, teiId: trackedEntity, uid } = action.payload; - const formServerValues = formFoundation?.convertValues(values, convertFn); + const allEventsToBeCreated = firstStageDuringRegistrationEvent + ? [firstStageDuringRegistrationEvent, ...autoGenerateEvents] + : autoGenerateEvents; + const eventIndex = allEventsToBeCreated.findIndex( + eventsToBeCreated => eventsToBeCreated.programStage === stageWithOpenAfterEnrollment?.id, + ); return saveNewTrackedEntityInstanceWithEnrollment({ candidateForRegistration: { trackedEntities: [ { - geometry: deriveGeometryFromFormValues(values), + geometry: deriveGeometryFromFormValues(currentFormData), enrollments: [ { geometry: standardGeoJson(geometry), @@ -199,7 +145,7 @@ export const startSavingNewTrackedEntityInstanceWithEnrollmentEpic: Epic = ( orgUnit: orgUnitId, attributes: deriveAttributesFromFormValues(formServerValues), status: 'ACTIVE', - events, + events: allEventsToBeCreated, }, ], orgUnit: orgUnitId, @@ -208,7 +154,8 @@ export const startSavingNewTrackedEntityInstanceWithEnrollmentEpic: Epic = ( }, ], }, - redirectToEnrollmentEventNew, + redirectTo, + eventIndex, stageId: stageWithOpenAfterEnrollment?.id, uid, }); @@ -223,7 +170,12 @@ export const completeSavingNewTrackedEntityInstanceWithEnrollmentEpic = ( action$.pipe( ofType(registrationFormActionTypes.NEW_TRACKED_ENTITY_INSTANCE_WITH_ENROLLMENT_SAVE_COMPLETED), flatMap((action) => { - const { payload: { bundleReport: { typeReportMap } }, meta } = action; + const { + payload: { + bundleReport: { typeReportMap }, + }, + meta: { uid, redirectTo, stageId, eventIndex }, + } = action; const { currentSelections: { orgUnitId, programId }, newPage, @@ -231,19 +183,31 @@ export const completeSavingNewTrackedEntityInstanceWithEnrollmentEpic = ( const { uid: stateUid } = newPage || {}; const teiId = typeReportMap.TRACKED_ENTITY.objectReports[0].uid; const enrollmentId = typeReportMap.ENROLLMENT.objectReports[0].uid; + const eventId = typeReportMap.EVENT.objectReports?.[eventIndex]?.uid; - if (stateUid !== meta.uid) { + if (stateUid !== uid) { return EMPTY; } - if (meta?.redirectToEnrollmentEventNew) { + if (redirectTo === PAGES.enrollmentEventNew) { history.push( - `/enrollmentEventNew?${buildUrlQueryString({ + `/${redirectTo}?${buildUrlQueryString({ programId, orgUnitId, teiId, enrollmentId, - stageId: meta?.stageId, + stageId, + })}`, + ); + return EMPTY; + } + + if (redirectTo === PAGES.enrollmentEventEdit) { + history.push( + `/${redirectTo}?${buildUrlQueryString({ + eventId, + orgUnitId, + initMode: dataEntryKeys.EDIT, })}`, ); return EMPTY; diff --git a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/deriveAutoGenerateEvents.js b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/deriveAutoGenerateEvents.js new file mode 100644 index 0000000000..a38c30e4e5 --- /dev/null +++ b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/deriveAutoGenerateEvents.js @@ -0,0 +1,79 @@ +// @flow +import { pipe } from 'capture-core-utils'; +import moment from 'moment'; +import { dataElementTypes, ProgramStage } from '../../../../../metaData'; +import { convertFormToClient, convertClientToServer } from '../../../../../converters'; +import { convertCategoryOptionsToServer } from '../../../../../converters/clientToServer'; + +const convertFn = pipe(convertFormToClient, convertClientToServer); + +const ignoreAutoGenerateIfApplicable = (stage, firstStageDuringRegistrationEvent) => + !firstStageDuringRegistrationEvent || firstStageDuringRegistrationEvent.id !== stage.id; + +export const deriveAutoGenerateEvents = ({ + stages, + enrolledAt, + occurredAt, + programId, + orgUnitId, + firstStageMetadata, + attributeCategoryOptions, +}: { + stages: Map, + enrolledAt: string, + occurredAt: string, + programId: string, + orgUnitId: string, + firstStageMetadata: ProgramStage, + attributeCategoryOptions: { [categoryId: string]: string } | string, +}) => { + // in case we have a program that does not have an incident date (occurredAt), such as Malaria case diagnosis, + // we want the incident to default to enrollmentDate (enrolledAt) + const sanitizedOccurredAt = occurredAt || enrolledAt; + + // $FlowFixMe[missing-annot] + return [...stages.values()] + .filter(({ autoGenerateEvent }) => autoGenerateEvent) + .filter(stage => ignoreAutoGenerateIfApplicable(stage, firstStageMetadata)) + .map( + ({ + id: programStage, + reportDateToUse: reportDateToUseInActiveStatus, + generatedByEnrollmentDate: generateScheduleDateByEnrollmentDate, + openAfterEnrollment, + minDaysFromStart, + }) => { + const dateToUseInActiveStatus = + reportDateToUseInActiveStatus === 'enrolledAt' ? enrolledAt : sanitizedOccurredAt; + const dateToUseInScheduleStatus = generateScheduleDateByEnrollmentDate + ? enrolledAt + : sanitizedOccurredAt; + const eventAttributeCategoryOptions = {}; + if (attributeCategoryOptions) { + eventAttributeCategoryOptions.attributeCategoryOptions = + convertCategoryOptionsToServer(attributeCategoryOptions); + } + const eventInfo = openAfterEnrollment + ? { + status: 'ACTIVE', + occurredAt: convertFn(dateToUseInActiveStatus, dataElementTypes.DATE), + scheduledAt: convertFn(dateToUseInActiveStatus, dataElementTypes.DATE), + } + : { + status: 'SCHEDULE', + // for schedule type of events we want to add the standard interval days to the date + scheduledAt: moment(convertFn(dateToUseInScheduleStatus, dataElementTypes.DATE)) + .add(minDaysFromStart, 'days') + .format('YYYY-MM-DD'), + }; + + return { + ...eventInfo, + ...eventAttributeCategoryOptions, + programStage, + program: programId, + orgUnit: orgUnitId, + }; + }, + ); +}; diff --git a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/deriveFirstStageDuringRegistrationEvent.js b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/deriveFirstStageDuringRegistrationEvent.js new file mode 100644 index 0000000000..bf40f45135 --- /dev/null +++ b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/deriveFirstStageDuringRegistrationEvent.js @@ -0,0 +1,55 @@ +// @flow +import { pipe } from 'capture-core-utils'; +import { dataElementTypes, ProgramStage } from '../../../../../metaData'; +import { convertFormToClient, convertClientToServer } from '../../../../../converters'; +import { convertCategoryOptionsToServer } from '../../../../../converters/clientToServer'; +import { convertStatusOut } from '../../../../DataEntries'; +import { standardGeoJson } from './standardGeoJson'; + +const convertFn = pipe(convertFormToClient, convertClientToServer); + +export const deriveFirstStageDuringRegistrationEvent = ({ + firstStageMetadata, + programId, + orgUnitId, + currentEventValues, + fieldsValue, + attributeCategoryOptions, +}: { + firstStageMetadata: ProgramStage, + programId: string, + orgUnitId: string, + currentEventValues?: { [id: string]: any }, + fieldsValue: { [id: string]: any }, + attributeCategoryOptions: { [categoryId: string]: string } | string, +}) => { + if (!firstStageMetadata) { + return null; + } + const { enrolledAt, stageComplete, stageOccurredAt, stageGeometry } = fieldsValue; + + const eventAttributeCategoryOptions = attributeCategoryOptions + ? { attributeCategoryOptions: convertCategoryOptionsToServer(attributeCategoryOptions) } + : {}; + + const event = { + status: convertStatusOut(stageComplete), + geometry: standardGeoJson(stageGeometry), + occurredAt: convertFn(stageOccurredAt, dataElementTypes.DATE), + scheduledAt: convertFn(enrolledAt, dataElementTypes.DATE), + programStage: firstStageMetadata.id, + program: programId, + orgUnit: orgUnitId, + ...eventAttributeCategoryOptions, + }; + + const dataValues = currentEventValues ? Object.keys(currentEventValues).reduce((acc, dataElement) => { + acc.push({ dataElement, value: currentEventValues[dataElement] }); + return acc; + }, []) : undefined; + + if (dataValues) { + return { ...event, dataValues }; + } + return event; +}; diff --git a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/getStageWithOpenAfterEnrollment.js b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/getStageWithOpenAfterEnrollment.js new file mode 100644 index 0000000000..26bd03daad --- /dev/null +++ b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/getStageWithOpenAfterEnrollment.js @@ -0,0 +1,45 @@ +// @flow +import { ProgramStage } from '../../../../../metaData'; + +export const PAGES = { + enrollmentEventNew: 'enrollmentEventNew', + enrollmentEventEdit: 'enrollmentEventEdit', + enrollmentDashboard: 'enrollmentDashboard', +}; + +// an event can be created either during first stage registration or autogenerated +// when the event will be created redirect to enrollmentEventEdit +// when the event will not be created redirect to enrollmentEventNew +export const getStageWithOpenAfterEnrollment = ( + stages: Map, + firstStageMetadata: ProgramStage, + shouldRedirect: boolean, +) => { + const stagesArray = [...stages.values()]; + const [firstStageWithOpenAfterEnrollment] = stagesArray.filter(({ openAfterEnrollment }) => openAfterEnrollment); + + const redirectTo = (() => { + if (shouldRedirect && firstStageWithOpenAfterEnrollment) { + // event will be created during first stage registration + if ( + firstStageMetadata && + firstStageMetadata.id === firstStageWithOpenAfterEnrollment.id + ) { + return PAGES.enrollmentEventEdit; + } + // event will be autogenerated + if ( + stagesArray.find(stage => stage.autoGenerateEvent && stage.id === firstStageWithOpenAfterEnrollment.id) + ) { + return PAGES.enrollmentEventEdit; + } + return PAGES.enrollmentEventNew; + } + return PAGES.enrollmentDashboard; + })(); + + return { + stageWithOpenAfterEnrollment: firstStageWithOpenAfterEnrollment, + redirectTo, + }; +}; diff --git a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/index.js b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/index.js new file mode 100644 index 0000000000..fe7c884a9e --- /dev/null +++ b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/index.js @@ -0,0 +1,5 @@ +// @flow +export { deriveFirstStageDuringRegistrationEvent } from './deriveFirstStageDuringRegistrationEvent'; +export { deriveAutoGenerateEvents } from './deriveAutoGenerateEvents'; +export { getStageWithOpenAfterEnrollment, PAGES } from './getStageWithOpenAfterEnrollment'; +export { standardGeoJson } from './standardGeoJson'; diff --git a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/standardGeoJson.js b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/standardGeoJson.js new file mode 100644 index 0000000000..4342ab42c8 --- /dev/null +++ b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/standardGeoJson.js @@ -0,0 +1,19 @@ +// @flow + +export const standardGeoJson = (geometry: Array | { longitude: number, latitude: number }) => { + if (!geometry) { + return undefined; + } + if (Array.isArray(geometry)) { + return { + type: 'Polygon', + coordinates: geometry, + }; + } else if (geometry.longitude && geometry.latitude) { + return { + type: 'Point', + coordinates: [geometry.longitude, geometry.latitude], + }; + } + return undefined; +}; diff --git a/src/core_modules/capture-core/components/WidgetEventEdit/EditEventDataEntry/EditEventDataEntry.component.js b/src/core_modules/capture-core/components/WidgetEventEdit/EditEventDataEntry/EditEventDataEntry.component.js index 6561b81018..5542c3e8d4 100644 --- a/src/core_modules/capture-core/components/WidgetEventEdit/EditEventDataEntry/EditEventDataEntry.component.js +++ b/src/core_modules/capture-core/components/WidgetEventEdit/EditEventDataEntry/EditEventDataEntry.component.js @@ -394,7 +394,7 @@ type Props = { }, theme: Theme, dataEntryId: string, - onCancelEditEvent?: () => void, + onCancelEditEvent?: (isScheduled: boolean) => void, eventStatus?: string, enrollmentId?: string, isCompleted?: boolean, diff --git a/src/core_modules/capture-core/components/WidgetEventEdit/EditEventDataEntry/EditEventDataEntry.container.js b/src/core_modules/capture-core/components/WidgetEventEdit/EditEventDataEntry/EditEventDataEntry.container.js index eb4e6b0829..0a701bf622 100644 --- a/src/core_modules/capture-core/components/WidgetEventEdit/EditEventDataEntry/EditEventDataEntry.container.js +++ b/src/core_modules/capture-core/components/WidgetEventEdit/EditEventDataEntry/EditEventDataEntry.container.js @@ -103,7 +103,7 @@ const mapDispatchToProps = (dispatch: ReduxDispatch, props): any => ({ cancelEditEventDataEntry(), ...(isScheduled ? [] : [setCurrentDataEntry(props.dataEntryId, dataEntryKeys.VIEW)]), ])); - isScheduled && onCancelEditEvent && onCancelEditEvent(); + onCancelEditEvent && onCancelEditEvent(isScheduled); }, onDelete: () => { const { enrollmentId } = props; diff --git a/src/core_modules/capture-core/components/WidgetEventEdit/widgetEventEdit.types.js b/src/core_modules/capture-core/components/WidgetEventEdit/widgetEventEdit.types.js index 16536ce27c..8dbc06e0c6 100644 --- a/src/core_modules/capture-core/components/WidgetEventEdit/widgetEventEdit.types.js +++ b/src/core_modules/capture-core/components/WidgetEventEdit/widgetEventEdit.types.js @@ -6,7 +6,7 @@ export type Props = {| programStage: ProgramStage, eventStatus?: string, onGoBack: () => void, - onCancelEditEvent: () => void, + onCancelEditEvent: (isScheduled: boolean) => void, onHandleScheduleSave: (eventData: Object) =>void, orgUnitId: string, programId: string, diff --git a/src/core_modules/capture-core/hooks/useEnrollmentEditEventPageMode.js b/src/core_modules/capture-core/hooks/useEnrollmentEditEventPageMode.js index 80b36d6210..c3a62fbb53 100644 --- a/src/core_modules/capture-core/hooks/useEnrollmentEditEventPageMode.js +++ b/src/core_modules/capture-core/hooks/useEnrollmentEditEventPageMode.js @@ -1,13 +1,22 @@ // @flow import { useSelector } from 'react-redux'; +import { useMemo } from 'react'; import { dataEntryKeys } from 'capture-core/constants'; import { statusTypes } from '../events/statusTypes'; +import { useLocationQuery } from '../utils/routing'; export const useEnrollmentEditEventPageMode = (eventStatus?: string) => { const showEditEvent = useSelector(({ viewEventPage }) => viewEventPage?.eventDetailsSection?.showEditEvent); + const { initMode } = useLocationQuery(); - if (eventStatus === statusTypes.SCHEDULE || eventStatus === statusTypes.OVERDUE) { - return { currentPageMode: dataEntryKeys.EDIT }; - } - return { currentPageMode: showEditEvent ? dataEntryKeys.EDIT : dataEntryKeys.VIEW }; + return useMemo(() => { + if (initMode) { + return { currentPageMode: initMode }; + } + + if (eventStatus === statusTypes.SCHEDULE || eventStatus === statusTypes.OVERDUE) { + return { currentPageMode: dataEntryKeys.EDIT }; + } + return { currentPageMode: showEditEvent ? dataEntryKeys.EDIT : dataEntryKeys.VIEW }; + }, [initMode, showEditEvent, eventStatus]); }; diff --git a/src/core_modules/capture-core/metaData/DataElement/DataElement.js b/src/core_modules/capture-core/metaData/DataElement/DataElement.js index c336e0f4f5..5555d4842e 100644 --- a/src/core_modules/capture-core/metaData/DataElement/DataElement.js +++ b/src/core_modules/capture-core/metaData/DataElement/DataElement.js @@ -11,6 +11,7 @@ import { OptionSet } from '../OptionSet/OptionSet'; import type { Unique } from './Unique'; import { dataElementTypes } from './dataElementTypes'; import type { CachedAttributeValue } from '../../storageControllers'; +import type { Section } from '../RenderFoundation'; // eslint-disable-next-line no-use-before-define export type ConvertFn = (value: any, type: $Keys, element: DataElement) => any; @@ -37,6 +38,7 @@ export class DataElement { _searchable: ?boolean; _url: ?string; _attributeValues: Array + _section: ?Section; constructor(initFn: ?(_this: DataElement) => void) { this._displayInReports = true; @@ -60,6 +62,13 @@ export class DataElement { return this._name; } + set section(section: ?Section) { + this._section = section; + } + get section(): ?Section { + return this._section; + } + set code(code: string) { this._code = code; } diff --git a/src/core_modules/capture-core/metaData/Program/Program.js b/src/core_modules/capture-core/metaData/Program/Program.js index e3d9645332..88ff443877 100644 --- a/src/core_modules/capture-core/metaData/Program/Program.js +++ b/src/core_modules/capture-core/metaData/Program/Program.js @@ -25,6 +25,7 @@ export class Program { _programRuleVariables: Array; _icon: Icon | void; _displayFrontPageList: boolean; + _useFirstStageDuringRegistration: boolean; _onlyEnrollOnce: boolean; constructor(initFn: ?(_this: Program) => void) { @@ -115,6 +116,14 @@ export class Program { return this._displayFrontPageList; } + set useFirstStageDuringRegistration(useFirstStageDuringRegistration: boolean) { + this._useFirstStageDuringRegistration = useFirstStageDuringRegistration; + } + + get useFirstStageDuringRegistration() { + return this._useFirstStageDuringRegistration; + } + set onlyEnrollOnce(onlyEnrollOnce: boolean) { this._onlyEnrollOnce = onlyEnrollOnce; } diff --git a/src/core_modules/capture-core/metaData/Program/ProgramStage.js b/src/core_modules/capture-core/metaData/Program/ProgramStage.js index 1c501643ca..403a2df333 100644 --- a/src/core_modules/capture-core/metaData/Program/ProgramStage.js +++ b/src/core_modules/capture-core/metaData/Program/ProgramStage.js @@ -20,6 +20,7 @@ export class ProgramStage { _openAfterEnrollment: boolean; _allowGenerateNextVisit: boolean; _generatedByEnrollmentDate: boolean; + _repeatable: boolean; _hideDueDate: boolean; _reportDateToUse: string; _minDaysFromStart: number; @@ -156,4 +157,12 @@ export class ProgramStage { get programRules(): Array { return this._programRules; } + + set repeatable(repeatable: boolean) { + this._repeatable = repeatable; + } + + get repeatable(): boolean { + return this._repeatable; + } } diff --git a/src/core_modules/capture-core/metaData/RenderFoundation/RenderFoundation.js b/src/core_modules/capture-core/metaData/RenderFoundation/RenderFoundation.js index 8c11e94144..9fdf44a12f 100644 --- a/src/core_modules/capture-core/metaData/RenderFoundation/RenderFoundation.js +++ b/src/core_modules/capture-core/metaData/RenderFoundation/RenderFoundation.js @@ -4,7 +4,7 @@ import log from 'loglevel'; import { errorCreator } from 'capture-core-utils'; import isFunction from 'd2-utilizr/lib/isFunction'; import { validationStrategies, validationStrategiesAsArray } from './renderFoundation.const'; -import type { Section } from './Section'; +import { Section } from './Section'; import type { ConvertFn } from '../DataElement/DataElement'; import type { Access } from '../Access'; import { convertDataElementsValues } from '../helpers'; @@ -163,4 +163,20 @@ export class RenderFoundation { const dataElements = this.getElements(); return convertDataElementsValues(values, dataElements, onConvert); } + + convertAndGroupBySection(currentFormData: {[id: string]: any}, onConvert: ConvertFn) { + const metaElements = [...this.getElements().values()]; + + return Object.keys(currentFormData).reduce((acc, id) => { + const metaElement = metaElements.find(o => o.id === id); + const rawValue = currentFormData[id]; + const convertedValue = metaElement ? metaElement.convertValue(rawValue, onConvert) : rawValue; + const group = metaElement?.section?.group; + if (group) { + acc[group] = { ...acc[group], [id]: convertedValue }; + return acc; + } + return { ...acc, [id]: convertedValue }; + }, {}); + } } diff --git a/src/core_modules/capture-core/metaData/RenderFoundation/Section.js b/src/core_modules/capture-core/metaData/RenderFoundation/Section.js index d312f59842..411067757b 100644 --- a/src/core_modules/capture-core/metaData/RenderFoundation/Section.js +++ b/src/core_modules/capture-core/metaData/RenderFoundation/Section.js @@ -15,6 +15,11 @@ export class Section { DATA_ELEMENT_NOT_FOUND: 'Data element was not found', }; + static groups = { + ENROLLMENT: 'ENROLLMENT', + EVENT: 'EVENT', + } + _id: string; _name: string; _displayDescription: string; @@ -24,6 +29,7 @@ export class Section { _elements: Map; _showContainer: boolean; _customForm: ?CustomForm; + _group: string; constructor(initFn: (_this: Section) => void) { this._visible = true; @@ -90,6 +96,13 @@ export class Section { return this._elements; } + set group(group: string) { + this._group = group; + } + get group(): string { + return this._group; + } + addElement(element: DataElement | FormFieldPluginConfig) { if (!this.elements.has(element.id)) { this.elements.set(element.id, element); diff --git a/src/core_modules/capture-core/metaDataMemoryStoreBuilders/programs/factory/enrollment/DataElementFactory.js b/src/core_modules/capture-core/metaDataMemoryStoreBuilders/programs/factory/enrollment/DataElementFactory.js index 3fa73e1130..18e56e1869 100644 --- a/src/core_modules/capture-core/metaDataMemoryStoreBuilders/programs/factory/enrollment/DataElementFactory.js +++ b/src/core_modules/capture-core/metaDataMemoryStoreBuilders/programs/factory/enrollment/DataElementFactory.js @@ -15,6 +15,7 @@ import { DataElementUnique, dataElementUniqueScope, dataElementTypes, + Section, } from '../../../../metaData'; import { OptionSetFactory } from '../../../common/factory'; import { convertFormToClient, convertClientToServer } from '../../../../converters'; @@ -37,8 +38,9 @@ export class DataElementFactory { 'could not create the metadata because a MULIT_TEXT without associated option sets was found', }; - static buildtetFeatureType(featureType: 'POINT' | 'POLYGON') { + static buildtetFeatureType(featureType: 'POINT' | 'POLYGON', section: Section) { const dataElement = new DataElement((o) => { + o.section = section; o.id = `FEATURETYPE_${featureType}`; o.name = featureType === 'POINT' ? i18n.t('Coordinate') : i18n.t('Area'); o.formName = o.name; @@ -206,8 +208,10 @@ export class DataElementFactory { async _buildBaseDataElement( cachedProgramTrackedEntityAttribute: CachedProgramTrackedEntityAttribute, cachedTrackedEntityAttribute: CachedTrackedEntityAttribute, + section?: Section, ) { const dataElement = new DataElement(); + dataElement.section = section; dataElement.type = cachedTrackedEntityAttribute.valueType; await this._setBaseProperties( dataElement, @@ -224,10 +228,12 @@ export class DataElementFactory { async _buildDateDataElement( cachedProgramTrackedEntityAttribute: CachedProgramTrackedEntityAttribute, cachedTrackedEntityAttribute: CachedTrackedEntityAttribute, + section?: Section, ) { const dateDataElement = new DateDataElement(); dateDataElement.type = dataElementTypes.DATE; dateDataElement.allowFutureDate = cachedProgramTrackedEntityAttribute.allowFutureDate; + dateDataElement.section = section; await this._setBaseProperties( dateDataElement, cachedProgramTrackedEntityAttribute, @@ -238,6 +244,7 @@ export class DataElementFactory { build( cachedProgramTrackedEntityAttribute: CachedProgramTrackedEntityAttribute, + section?: Section, ) { const cachedTrackedEntityAttribute = cachedProgramTrackedEntityAttribute.trackedEntityAttributeId && this.cachedTrackedEntityAttributes.get( @@ -253,7 +260,7 @@ export class DataElementFactory { } return cachedTrackedEntityAttribute.valueType === dataElementTypes.DATE ? - this._buildDateDataElement(cachedProgramTrackedEntityAttribute, cachedTrackedEntityAttribute) : - this._buildBaseDataElement(cachedProgramTrackedEntityAttribute, cachedTrackedEntityAttribute); + this._buildDateDataElement(cachedProgramTrackedEntityAttribute, cachedTrackedEntityAttribute, section) : + this._buildBaseDataElement(cachedProgramTrackedEntityAttribute, cachedTrackedEntityAttribute, section); } } diff --git a/src/core_modules/capture-core/metaDataMemoryStoreBuilders/programs/factory/enrollment/EnrollmentFactory.js b/src/core_modules/capture-core/metaDataMemoryStoreBuilders/programs/factory/enrollment/EnrollmentFactory.js index 19230eace9..3358d5f648 100644 --- a/src/core_modules/capture-core/metaDataMemoryStoreBuilders/programs/factory/enrollment/EnrollmentFactory.js +++ b/src/core_modules/capture-core/metaDataMemoryStoreBuilders/programs/factory/enrollment/EnrollmentFactory.js @@ -78,7 +78,7 @@ export class EnrollmentFactory { }); } - _buildTetFeatureTypeField(trackedEntityTypeId: ?string) { + _buildTetFeatureTypeField(trackedEntityTypeId: ?string, section: Section) { const teType = trackedEntityTypeId && this.cachedTrackedEntityTypes.get(trackedEntityTypeId); if (!teType) { return null; @@ -90,23 +90,24 @@ export class EnrollmentFactory { } // $FlowFixMe - return DataElementFactory.buildtetFeatureType(featureType); + return DataElementFactory.buildtetFeatureType(featureType, section); } async _buildTetFeatureTypeSection( cachedProgramTrackedEntityTypeId: string, ) { - const featureTypeField = this._buildTetFeatureTypeField(cachedProgramTrackedEntityTypeId); const trackedEntityType = this.cachedTrackedEntityTypes.get(cachedProgramTrackedEntityTypeId); - if (!featureTypeField) { - return null; - } - const section = new Section((o) => { o.id = cachedProgramTrackedEntityTypeId; o.name = trackedEntityType?.displayName || ''; + o.group = Section.groups.ENROLLMENT; }); + const featureTypeField = this._buildTetFeatureTypeField(cachedProgramTrackedEntityTypeId, section); + + if (!featureTypeField) { + return null; + } featureTypeField && section.addElement(featureTypeField); return section; @@ -119,12 +120,13 @@ export class EnrollmentFactory { const section = new Section((o) => { o.id = Section.MAIN_SECTION_ID; o.name = i18n.t('Profile'); + o.group = Section.groups.ENROLLMENT; }); if (!cachedProgramTrackedEntityAttributes?.length) { return null; } if (cachedProgramTrackedEntityTypeId) { - const featureTypeField = this._buildTetFeatureTypeField(cachedProgramTrackedEntityTypeId); + const featureTypeField = this._buildTetFeatureTypeField(cachedProgramTrackedEntityTypeId, section); featureTypeField && section.addElement(featureTypeField); } @@ -166,7 +168,7 @@ export class EnrollmentFactory { element && section.addElement(element); } else { - const element = await this.dataElementFactory.build(trackedEntityAttribute); + const element = await this.dataElementFactory.build(trackedEntityAttribute, section); element && section.addElement(element); } }); @@ -185,6 +187,7 @@ export class EnrollmentFactory { const section = new Section((o) => { o.id = cachedSectionCustomId; o.name = cachedSectionCustomLabel; + o.group = Section.groups.ENROLLMENT; }); await this._buildElementsForSection(cachedProgramTrackedEntityAttributes, section); @@ -200,6 +203,7 @@ export class EnrollmentFactory { let section = new Section((o) => { o.id = Section.MAIN_SECTION_ID; + o.group = Section.groups.ENROLLMENT; }); section.showContainer = false; @@ -353,6 +357,7 @@ export class EnrollmentFactory { const foundation = new RenderFoundation(); const section = new Section((oSection) => { oSection.id = Section.MAIN_SECTION_ID; + oSection.group = Section.groups.ENROLLMENT; }); Array.from( searchGroupFoundation diff --git a/src/core_modules/capture-core/metaDataMemoryStoreBuilders/programs/factory/program/ProgramFactory.js b/src/core_modules/capture-core/metaDataMemoryStoreBuilders/programs/factory/program/ProgramFactory.js index b76d755531..28ff91fe67 100644 --- a/src/core_modules/capture-core/metaDataMemoryStoreBuilders/programs/factory/program/ProgramFactory.js +++ b/src/core_modules/capture-core/metaDataMemoryStoreBuilders/programs/factory/program/ProgramFactory.js @@ -175,6 +175,7 @@ export class ProgramFactory { program.icon = buildIcon(cachedProgram.style); program.displayFrontPageList = cachedProgram.displayFrontPageList; program.onlyEnrollOnce = cachedProgram.onlyEnrollOnce; + program.useFirstStageDuringRegistration = cachedProgram.useFirstStageDuringRegistration; return program; } diff --git a/src/core_modules/capture-core/metaDataMemoryStoreBuilders/programs/factory/programStage/DataElementFactory.js b/src/core_modules/capture-core/metaDataMemoryStoreBuilders/programs/factory/programStage/DataElementFactory.js index 389b6dcc4c..6bd83c7f08 100644 --- a/src/core_modules/capture-core/metaDataMemoryStoreBuilders/programs/factory/programStage/DataElementFactory.js +++ b/src/core_modules/capture-core/metaDataMemoryStoreBuilders/programs/factory/programStage/DataElementFactory.js @@ -9,7 +9,7 @@ import type { CachedProgramStageDataElement, CachedOptionSet, } from '../../../../storageControllers/cache.types'; -import { DataElement, DateDataElement, dataElementTypes } from '../../../../metaData'; +import { DataElement, DateDataElement, dataElementTypes, Section } from '../../../../metaData'; import { buildIcon } from '../../../common/helpers'; import { OptionSetFactory } from '../../../common/factory'; import { isNotValidOptionSet } from '../../../../utils/isNotValidOptionSet'; @@ -99,8 +99,10 @@ export class DataElementFactory { cachedProgramStageDataElement: CachedProgramStageDataElement, cachedDataElement: CachedDataElement, dataElementType: $Keys, + section: ?Section, ) { const dataElement = new DataElement(); + dataElement.section = section; dataElement.type = dataElementType; await this._setBaseProperties(dataElement, cachedProgramStageDataElement, cachedDataElement); if (isNotValidOptionSet(dataElement.type, dataElement.optionSet)) { @@ -123,6 +125,7 @@ export class DataElementFactory { async build( cachedProgramStageDataElement: CachedProgramStageDataElement, + section: ?Section, ): Promise { const cachedDataElement = await getUserStorageController().get(userStores.DATA_ELEMENTS, cachedProgramStageDataElement.dataElementId); @@ -139,6 +142,6 @@ export class DataElementFactory { return dataElementType === dataElementTypes.DATE ? this._buildDateDataElement(cachedProgramStageDataElement, cachedDataElement) : - this._buildBaseDataElement(cachedProgramStageDataElement, cachedDataElement, dataElementType); + this._buildBaseDataElement(cachedProgramStageDataElement, cachedDataElement, dataElementType, section); } } diff --git a/src/core_modules/capture-core/metaDataMemoryStoreBuilders/programs/factory/programStage/ProgramStageFactory.js b/src/core_modules/capture-core/metaDataMemoryStoreBuilders/programs/factory/programStage/ProgramStageFactory.js index adc65c2f5a..83bc11b8ff 100644 --- a/src/core_modules/capture-core/metaDataMemoryStoreBuilders/programs/factory/programStage/ProgramStageFactory.js +++ b/src/core_modules/capture-core/metaDataMemoryStoreBuilders/programs/factory/programStage/ProgramStageFactory.js @@ -65,7 +65,7 @@ export class ProgramStageFactory { { sectionDataElement })); return; } - const element = await this.dataElementFactory.build(cachedProgramStageDataElement); + const element = await this.dataElementFactory.build(cachedProgramStageDataElement, section); element && section.addElement(element); }); } @@ -81,7 +81,7 @@ export class ProgramStageFactory { if (cachedProgramStageDataElements) { // $FlowFixMe await cachedProgramStageDataElements.asyncForEach((async (cachedProgramStageDataElement) => { - const element = await this.dataElementFactory.build(cachedProgramStageDataElement); + const element = await this.dataElementFactory.build(cachedProgramStageDataElement, section); element && section.addElement(element); })); } @@ -128,6 +128,7 @@ export class ProgramStageFactory { _stage.generatedByEnrollmentDate = !!cachedProgramStage.generatedByEnrollmentDate; _stage.reportDateToUse = cachedProgramStage.reportDateToUse; _stage.minDaysFromStart = cachedProgramStage.minDaysFromStart; + _stage.repeatable = cachedProgramStage.repeatable; _stage.stageForm = new RenderFoundation((_form) => { _form.id = cachedProgramStage.id; _form.name = cachedProgramStage.displayName; diff --git a/src/core_modules/capture-core/metaDataStoreLoaders/programs/quickStoreOperations/storePrograms.js b/src/core_modules/capture-core/metaDataStoreLoaders/programs/quickStoreOperations/storePrograms.js index 1e04d03ec7..adebf39a14 100644 --- a/src/core_modules/capture-core/metaDataStoreLoaders/programs/quickStoreOperations/storePrograms.js +++ b/src/core_modules/capture-core/metaDataStoreLoaders/programs/quickStoreOperations/storePrograms.js @@ -80,7 +80,7 @@ const convert = (() => { }; })(); -const fieldsParam = 'id,displayName,displayShortName,description,programType,style,displayFrontPageList,onlyEnrollOnce,' + +const fieldsParam = 'id,displayName,displayShortName,description,programType,style,displayFrontPageList,useFirstStageDuringRegistration,onlyEnrollOnce,' + 'minAttributesRequiredToSearch,enrollmentDateLabel,incidentDateLabel,' + 'featureType,selectEnrollmentDatesInFuture,selectIncidentDatesInFuture,displayIncidentDate,' + 'dataEntryForm[id,htmlCode],' + diff --git a/src/core_modules/capture-core/metaDataStoreLoaders/programs/quickStoreOperations/types/apiPrograms.types.js b/src/core_modules/capture-core/metaDataStoreLoaders/programs/quickStoreOperations/types/apiPrograms.types.js index 32c02464d8..70ac391972 100644 --- a/src/core_modules/capture-core/metaDataStoreLoaders/programs/quickStoreOperations/types/apiPrograms.types.js +++ b/src/core_modules/capture-core/metaDataStoreLoaders/programs/quickStoreOperations/types/apiPrograms.types.js @@ -140,6 +140,7 @@ type apiProgram = { featureType?: ?string, selectEnrollmentDatesInFuture: boolean, displayFrontPageList: boolean, + useFirstStageDuringRegistration: boolean, selectIncidentDatesInFuture: boolean, displayIncidentDate: boolean, dataEntryForm?: ?apiDataEntryForm, diff --git a/src/core_modules/capture-core/rules/getApplicableRuleEffects.js b/src/core_modules/capture-core/rules/getApplicableRuleEffects.js index 57ffddac38..2d261aef78 100644 --- a/src/core_modules/capture-core/rules/getApplicableRuleEffects.js +++ b/src/core_modules/capture-core/rules/getApplicableRuleEffects.js @@ -74,6 +74,7 @@ export const getApplicableRuleEffectsForTrackerProgram = ({ otherEvents, attributeValues, enrollmentData, + formFoundation, }: GetApplicableRuleEffectsForTrackerProgramInput, flattenedResult: boolean = false, ) => { @@ -82,6 +83,7 @@ flattenedResult: boolean = false, program.programRules, stage?.programRules, ); + const foundationForPostProcessing = formFoundation || (stage ? stage.stageForm : program.enrollment.enrollmentForm); if (!programRules.length) { return []; } @@ -103,7 +105,7 @@ flattenedResult: boolean = false, programRules, programRuleVariables, trackedEntityAttributes: getTrackedEntityAttributesForRulesExecution(program.attributes), - foundationForPostProcessing: stage ? stage.stageForm : program.enrollment.enrollmentForm, + foundationForPostProcessing, }); return flattenedResult ? effects : buildEffectsHierarchy(effects); diff --git a/src/core_modules/capture-core/rules/rules.types.js b/src/core_modules/capture-core/rules/rules.types.js index 606ae8336f..0249ee664c 100644 --- a/src/core_modules/capture-core/rules/rules.types.js +++ b/src/core_modules/capture-core/rules/rules.types.js @@ -19,6 +19,7 @@ export type GetApplicableRuleEffectsForTrackerProgramInput = {| otherEvents?: EventsData, attributeValues?: TEIValues, enrollmentData?: Enrollment, + formFoundation?: RenderFoundation, |}; export type GetApplicableRuleEffectsForEventProgramInput = {| diff --git a/src/core_modules/capture-core/storageControllers/cache.types.js b/src/core_modules/capture-core/storageControllers/cache.types.js index cfcaa75c92..df2cffbb41 100644 --- a/src/core_modules/capture-core/storageControllers/cache.types.js +++ b/src/core_modules/capture-core/storageControllers/cache.types.js @@ -119,6 +119,7 @@ export type CachedProgramStage = { generatedByEnrollmentDate?: ?boolean, hideDueDate?: ?boolean, reportDateToUse: string, + repeatable: boolean, minDaysFromStart: number, style?: ?CachedStyle, }; @@ -204,6 +205,7 @@ export type CachedProgram = { selectIncidentDatesInFuture: boolean, displayIncidentDate: boolean, onlyEnrollOnce: boolean, + useFirstStageDuringRegistration: boolean, }; export type CachedProgramStageDataElementsAsObject = { From 302eb2a6041ae16321c0e306ea9d0546d6c4b33e Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Tue, 3 Oct 2023 06:59:50 +0000 Subject: [PATCH 29/49] chore(release): cut 100.41.0 [skip release] # [100.41.0](https://github.com/dhis2/capture-app/compare/v100.40.1...v100.41.0) (2023-10-03) ### Features * [DHIS2-9661][DHIS2-14830] first stage on registration page ([#3267](https://github.com/dhis2/capture-app/issues/3267)) ([6e5f6fe](https://github.com/dhis2/capture-app/commit/6e5f6fea7b6ab043800e806c7459210f10ef608a)) --- CHANGELOG.md | 7 +++++++ package.json | 4 ++-- packages/rules-engine/package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 110d6a07aa..a9b8e29d4b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [100.41.0](https://github.com/dhis2/capture-app/compare/v100.40.1...v100.41.0) (2023-10-03) + + +### Features + +* [DHIS2-9661][DHIS2-14830] first stage on registration page ([#3267](https://github.com/dhis2/capture-app/issues/3267)) ([6e5f6fe](https://github.com/dhis2/capture-app/commit/6e5f6fea7b6ab043800e806c7459210f10ef608a)) + ## [100.40.1](https://github.com/dhis2/capture-app/compare/v100.40.0...v100.40.1) (2023-09-30) diff --git a/package.json b/package.json index 6d42913001..fbf2ef4982 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "capture-app", "homepage": ".", - "version": "100.40.1", + "version": "100.41.0", "cacheVersion": "6", "serverVersion": "38", "license": "BSD-3-Clause", @@ -10,7 +10,7 @@ "packages/rules-engine" ], "dependencies": { - "@dhis2/rules-engine-javascript": "100.40.1", + "@dhis2/rules-engine-javascript": "100.41.0", "@dhis2/app-runtime": "^3.9.3", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/d2-icons": "^1.0.1", diff --git a/packages/rules-engine/package.json b/packages/rules-engine/package.json index 0b391e85fa..411dcf5450 100644 --- a/packages/rules-engine/package.json +++ b/packages/rules-engine/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/rules-engine-javascript", - "version": "100.40.1", + "version": "100.41.0", "license": "BSD-3-Clause", "main": "./build/cjs/index.js", "scripts": { From 7ae8326fb571f31225495aaaafa25138644387a6 Mon Sep 17 00:00:00 2001 From: Simona Domnisoru Date: Wed, 4 Oct 2023 09:47:11 +0200 Subject: [PATCH 30/49] docs: [DHIS2-9661] first stage appears on registration page (#3424) --- .../images/first-stage-during-registration.png | Bin 0 -> 222975 bytes docs/user/using-the-capture-app.md | 8 ++++++-- 2 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 docs/user/resources/images/first-stage-during-registration.png diff --git a/docs/user/resources/images/first-stage-during-registration.png b/docs/user/resources/images/first-stage-during-registration.png new file mode 100644 index 0000000000000000000000000000000000000000..1baba4bc34120c7a54d3921ddb63c70308f7734b GIT binary patch literal 222975 zcmbrmWmH^2(=Iv?+$Fd}kl+&BB@iTda0w2<-7UBW5AMNT2Mz8FZiBl|aECj2&-u=| z_usp6hrQPHbocI_UDH)v&r{VzC@adKqY$G2004B^Pg1G?0IC=OfIyCf0IgXeEu)9N z!C8oZ76$-o<4~WB;Gv%>O+Kl91^~S10DypC0N?>y6>tCmxUvHPM_&N|fu8^XfkS4i ziV(Cx*-T5;{PSl3BeaYJfQ7*Uyn&WrpnrfcD*)Vo$^Za#BJGBT3B_*Yhlc~9Ys+9Eq zz8(5WnA+0C#X*3L&E4Id)t!sg-pPWEgP)(Djh&N?lamG7gT>j?&c(=s#m<@Le+}|K z<4Bn~n>blHxLDcSQT`p*$k^W1MVOlU??nIS^}oKSiqjXRclq% zW19ZXIG^-8n+~>+~20iyb zUS(g{)Uq>%h^c6#OVROEB-Lp%ApZdT`$ZZBM;+I%SPyz92K)c#YD^S!Ikn-@{rs<^ zC=0_yN|x|Y2U~x;q|IYTY3v##1}pQQw-!VI;3s8fnuk08@j1m7kxPCy_jnn|z(`kn zH$=Dv8SQ+<{^R}ypH0S7h87$^#j(vH6##o+axiMHDH{Oy=^rjicG&FiYsRSvtu0bE z*0yinGv`aSm+RJRMt9Nf&VK8*BP4?FnbOQINU5xz;EaKjLskapk9_z3XPGy(5anCo z-Q(lQYe;mG%8sR;-1!X0uq1uA6vkDdHf9ad3XaSwK&5`i$|i^7WL#*c5&h15FkDIk zt@6l19?cfnbCjW6ItzuSK>5*iwhkQ+sao(Ck}|+o!FTn9`5zb59nDvM;#8CzHDYsF zoo787uN(I-+J{)O`-2;5?_`d4Mgs?o`zFyb`{lPAf^n!^3Q_VJ&vZ5s$o!)Uo%Lqhu zhp1YmpB-{}6lbNKPjJX}Jk zxX(m0y8GQoVdSwcPdWJ~yp_S1mvRgikdTC{1b>T2A7oHRJ%{!d6<&L>i6oBk^1B)Rp^&r$iOHaNo`WZE?^*vtV)<@IT51c z-%?!w5Ll7YCjUp}n00}j#Or+lmVBB{bo#p-*70S^7%mEVPR(rE6ggXMWh~#B9j*yq ztkm7tvF-+}A7|22tM@(a{G2Irl*pHTalLi(bX=0Kz^{*UgX;39plFZyp-;BdQj-Qt zWpq?X(h(dSPI8YEocXST{CQslX?2-1W>n1vQqV8Dmy`Ee+NJ6H2Zs6ey-`Lk`UhG& z4fHZsIKQ@_eOr?g;IVvH%CB8V#r^T6%{ZQUxqftHud!0arbA~ic!Uy5`zJjIFzg*2 zn`HiFY?5I}WNr+l4$2qOtm1pF)vEX5l}z`wvI!KLhVaw1cKc-yl=-(w7UMKJb9fY} z*LY?{vZltpCVAy2H2)+!u}Z4kI`Jops_Ks+b$KSOJA((EaRCnZbLSSL6keEr1Tu8B zC{5PQ*Fo$2XBRa@<>a$ye`@N~PYP3J@I6FRtPJf8?>~2(}qP*jDP*2K@e{o9=i0&Qp(J^kN65!p;iqDl7NIz71@8Iq?^UGKJK!|mm zMPgZvm4x{{2m6Zry#gP=YoF7HolWRR&PX6hhx-O}iEXzWTNcd<GITnONB0#(lxL+q+xYgPwZYURpGZDLi4`Ms!#iiHx$PB!v@sw#kfs()F8+F<#0P zN0mppfY!2zdXaxoc&M2u;en<7wndFcQ2xe6=Z(Flak-T+32(A4B1SXD?tu18(W*ar z>droSincCq+Lfs*wV&CFwi~&jAShEv{HR>si9OH_NLt2nUEhfQD@pkhVdCKXSx1rK z4F0eD_8tk~&S+fW9BLe6@u2Bm3cA}H)}tv+DD z>Gk>%)G>}EJ4z@{OUnMr;!{2OzskZ6w(K;dn)AiHe_!6frc|xgVn({b%7VUV&vaCN zlpt+8^E<4k`Ed0OaFYcrrygw2zg0M~y4!Bo@p)|vr`Y(hhtqA6wE;AzGjqV{6n3wU z6+O^!YN`3M+BAM~mcIV3t3=t2V)%yzS+p^AL7{E|otuHRh3}ELr)jqmr~5t+(=en- z$;tU~r7F7j;^t^Q`tfpJ(&}RVX!nNSLPT(?R;|*8>~zD95b1y``A4n%(XUt5se5fB z2KFmzWzprpo8KKBbu_JYOkeN+*$d(h6pLWM-jZ_l7g43J9+Qr-TwN2v9Nd@a7(hXC zi)zRm3P+NSj)>3xoM5&a=sRy!|2Z-yabGdb^5)i@Jl^clZS;_=t#$YPG2pa35x2lL z25ZWzjPAQh!+YU5{7@xu&2nW#TP$f)9M#KOF}HG1m`YtN*rv51yF#1R9TDpYv={3zDYu z{93PJ0DBN79i7Z0dp&-y+x4hAaWp-nEd_kEq*x|`iLWkQBTe?!*W!d5I>^p3zpu12 zEfa=%A3_1F02OB%jip9M7C2e0#%)!Nm5>!vA`mB?Qaa`@R^V-x6@(%B+oDEPRL zUfo`z(X`7QyFW_%SN$Wx+*2~DTRFv&^m%RTP3NpxJkP5*s8?*yPx&d%bhQ3;7yTi2 zjT7Lv_$jjXeM)`ym&G$%6@m6)BcH~qANSjvV1 z+a|+oPRI*6#9Rg#Yd*~tEf?m8D>b#l+`cmcp2kypAo-5i@{meRrk_|Sfp-w1bHbI&hD%ap9Y5`8w7r`^;z)u2PqDppmH>k(z%DN4hr&3y{7-a!iT)M9CJwuv! z$Wt5_!`cM0K`kE6UTQj#LaiGXhT1`j-tOb}7e|prH?Fc6sb@(i%)pCstAykn`<&Zm zHGP}s#<0Uc>~PQu)49wILJBZ+N5XrX>o%l=d&-C{9zNk8onz!#W!N9Lts?!{X1wP! zG1fZ^t6(#a(I&cWQAHu`vp^&PPC07zm6Pc4!_u409K;+3-^7fJ?Znv7 zV`Ftg2lbgNf|`bdr~ENLvOGh6c5pPM9ki$J8a6dnuv(DaIRxbQ{mE_ky3nb}t zZr>MvSb=q?tsXX!r297aMc`I`e$3*{ewJ=gZpo}TG3#KsB0BN#GkrAANFnvn5+r1 ze_sB-k);TvKKUsu9c`T+tqEsyo5tO&_VdxHPjE zFsk=2M{&W;HyQJr=@YmZhxccH%=Twixhg>QOA*}n+4fu}E%2>kXp0eH!%#D(jIJol zCi4!}n=jAdXJ%$ikpJaxikes{gtw%4usGNGG=pw!IzRt;@9q}5qgCIF4jD|C1alqm|?Xzb>{ZGCyRNVsTVNz@Ocz9LeCquI7J7PDlo|Xn0 z_e`>U?6=_OtNxnhx5uwoON^lynz_DJHNlgcjQl^GzMEW4hSxf62juYGg0V0$(D3%J?SGH)^eO`Jem@O) z%K`MJsBe6swAWVgwHf_}2lB-E#8;=AkK!bhXnoD`kocokw=Pl7M7$)clmqqvCQEn3 z6&GRnTo~+iy<2ZMKN4lg`r&Y)l2Q zKHyr;6=n;0_re`ckI+V6FKCA6V23dJu_~WCcM5R3FRgtt2QBVFa0ELv6Ms1kPGV1Y zsMKBAO)KD-7?1IX+e4ntNo3Wq8}Q_BPw{`X)OI5jW#u45?xNN6#h;r{9BI%{D(~ z1l_pr+e)y!j%T}u5Un-k)_;xvMZa$R$Ep}Z8kk|0kEX+luJzY8m~kD*Qu}6~^xT#t z+#u!OWKbTGDKwQ(j1wj792!w`P4Wv&BLzfyua}&2mmN2LJnfHuyy$;&bwh;sUwUiT zxD`hhA<7Tpqn}=JJPVA}khAh0Xm%mLjv=>EpZzP7h)y|K=O}!Cw}x6|*Y3YyQJyxr zuT5=vvhC~>#WM{wkX&-%8z0$o1~(bJ0k&)UH#>XBnhu$9iKIZ9Y~AEB7sPGsg5Q~! zzHx~dnHtJ1mq4v_l`7F#8R~bXuoct2*wTY_0=>l8fu~qXjeNfAZEOzMm}%8mScJe$ zg4pyax4!^vBXYs-=2E-R_@@}xY@F3s{5G#JSEhw9%VH`mBt7)#0`JCr&9bXc>8HAA z8ovO1Rda3zu7UPpdj{*h4M6MYrUaKPtTg^fQy|>pGA{Ecj{k~X0xdG?r3t(G|uj=Qfw5J8WVi&%2O*rbR1Jb(EX}RYTv@M zkX%3Pz|cl9eWyP)oeFWLH+)Sk`&yWV>Zj`WF);i4Zaxu1&ON?rrsh*6&CN^dwA!y7 z3;c%24t}8|E}*7iyJDkC%-e%hb7q_qO_{g<;W8`@6Ot$34 zpikS9Ts;^y9Q9*@Zt_-3sk77dkAbL{lxV&qMrw2uQ>k!c9_v3F z73NR*ENSNsY*mjCpcGr_lr5UfHcG)ZZGp`+5 z-yM28?{+1Ya>(y0en3*~;|&*VQcEq+;>#6DzTy>a>j$r}JBFhjPw9M|jM^m_@BKHv zkTS3!P;5aXX0`SFAk5ipFCX2`N(3`HuLQ*>DsmQCN0jkTWzJjLG}|ZCT&~N@cbCd@ z{FL;NC~o6@q-_8?WWUVC-%Uj_>xXy&dVhcXcb-$b#A945S6XsanX~m92zuE=`tSK~ ze?BLM4)+k1^PXl^vR3`ceGrnfh|!OquHHE72sd$d~BGu+=r8{b5{n8zCz>!#-yl z<6qTT8aC#bww0SiK!}Mh?t~>#<|dw%oZ2cg?9B&}kdP2nWo63y`}>593?~0fLHV_% zmI226gfomc#qYcgxW9*NcapDmQ5EjE&p37<&^w62go`9cTDS!cWD~6z@KhB|u%qemx6gcsAlHv6f$|qmNm4zUx9s z(fSCN-FA+4xWu|N>(*O8vzjvhdz$1~pz%jh#?2=;c=}VcgB1z#g(ds&eiFA)vT7fb zn|pe8*o90HWmfXl1=9f>amZ^6XALUT&vMV+)@eFmC-c<0;79X$TX@t8+SEa58ChKY zUkLJ?A(zeKEQcZ)vi~h}FOJK;^>zOXE$rs#;7uYJBs%3eU`?^Gg1uOf~&wFCx86{2}{?YP>*GlhW+)0xKww4Eu-McQlh2#QXQZ$6rDI7Yxj06XJ@C; zw5f5LF6{|l9JX`UiLQ1L-gPr6ro{U$XK-fU`*a%q8giH^%ya6Ng|cI}>Tow(si@;3 zFQf~#z`uT!bNlv&5pd^KqzU2rUyt$H6$fdn zj9!!*B**eiBtr)w5W#huRy!m+obWjgiK*slAQjVq?z2niUR6>r=Sy}oo`wjl+BXX6(E;C|!M7ZuyaIhgKOApK3k<@N1H!K}cD zSM!iP639x(vHOv?k6&7sNm=D)#n1mXNcxQ(#`0tY1u16}fPT)^lmZ}rw9gh&VSTmp zY7Eb%nzZd;5q~`;oB&nDwdQ`)yi!YE-pBF44RuNMiZ~y5-}Z~0@z|T?Snsomu7+;h zwKE4W@OV?8$(mMa#b5W+&_u_c;(OI+I#{z@=Ds&dPns#!YhQ1&{K@Y|-yVYNqhwnj zlrZJKJs9m<`I^)0bP$jy@XdiKtL{fdX=%AvS(LO9p>YjbUJkynGdWx_Lt(pIz2Yhm zvIv}HiU-el9DrzRu@pCS2x`%NZkj(9yaT>YPdR;$%rI1?x@yHacCs)JH>iHRC2-m; zeKsqLEXnGjZQ;i_hC1=tz@f(|rxdls+im0gA|uuBnz-=@Du0kWmWi?Ntk;>jV5tpR z6I^kPPdT?tMmx#==<8hbd*;Jnooes<0G%brZU;{Hi8t%(yB#i1=UXH06$qEVocXz? zjOny4r4@}mpM8^ky|A^AmBcinSQaSMwe~!Yoxk|=C_3!T=!N-ilDwQ^;^|XR$V+Zj zW%Q!gL}aDYt#$p5gGLn>$?cnW%JGkRYN!i!h*+&A5fKI2fSAWtKeALyyj!~M1Nup^ zE{HVkwpTrZE4+!zXHpCHG1)Eb6Z%@weVl!Bhjk6HS6NC%+`(| zfJy2%l6AW?8JVyDxi{oKgYHOc?RTZ~fhb*<5%r4I8^KXY$OLwHce$X)y5=qK?}z^~ z-Y$eJR&&Bsb5w(8J^RCHVx)3D4?M3|ZT7pb4hjkTf55AjC=PBH#+cIXjO3qej5Dt? zB5mc0%OyGb@l=80RiqUn{KYimj&RPM=a_PJY3bA4#Gax7Y(7qxk!2w&SbVE>^HNP3 zZ|a>dD)p;v%@wn=e(kt&A4){1@!A>2r|G5>m>0iLmq$N5>8s5hcDIObuh}S9&wk~b zZ8}?QR6@8qv}1)VH5Q}-1ayvxrn{Q^Qo}PIua6klLAoaz`e2RmLTx9LL^n!W7KU>! z*2v*<7+6arjSWV$^HPi7!UR>_X2^OVk}3JKbRh}**}DD~2Jed2-{jTQ>#t=<56RW3 z9vT+0hL3J(Pp$ZNlai*LaE z;`uMUJD-4iSAo+XHLSp@_H_W60#D-Ob~iSe_sv$=!o)s8!ot>b zXi~F%GHsTV8879|?w!hZtZ+)W;n=gE)cUgv;*Kc|k5Q1hRi4m(nmoEE;CeT6>7BlOtccmhj5S%W=z9pE74QN zcmK5_F)`tIf#X@PoXKBp3yn@ZY3%v#S*I)N;FOJj6U@vuC?7PHha2R8k1Q$I1!%#1JH_$9yR)0R-*P~ljZT)w(FGWSB%xL?H$r~33c!0t#ZKK7^&y>_^BcR8hh3Fwm**P(0IbK zbXrz&E1mP~YTxzI9z8tGNv6tX-D&aHY6{X+xlQmmrmWW3wMRY(emdUqO7MFpL#aL( zjT>GrY?36<*`rVV=GJF-w#6X-3NqW%;to*~r5@#l;EgHP<^u(MC>BbA{9SA;YALqM z1!JleGa}7cuaao%Wsbtb%JgX6UtzHKnKOqm9p3^qKP=huB6sX4)w2EIRr=-%ZJaFtCGj+C1DU8 zwpDW5gx%sVVAKAT4!2sY^XAWXl)}q&sCq*jhucupc@dSOA3UIL1lQZWRPhypJE~7{ zc80nDdCS*!16k=|ADaCz_D-+t)X&Cp9gVpibj>%AX}#FCODY_IIeyqA7%DSBN(~yCKB@;c zcUCe!)VzKzBmE?sxHEuWWR(~?T_Y|mD=%uJdHO!UZl*5ngPoS4>NLiZXC~}HG8La# z0p(TKGTbB<5C3*eB%^3X^L+IkP`-TNVv)NT7!g=;OeGY2Twgp1zh6AAYa(Uju1HR` zjhKp(=6E)uhDfNwSe4Z{tNXFj*1vV7NU^)CZ1MmB4^EOV-^3^R%nITY*QZLn&$9{J3~=z-T2n|lI(gn|AtG=5Deb#Rjqq+VaXHxo`%}eu7cKg=tE!*B zKKhlnPUy;8>D?UAJKcVy2l{rEyh)_6o97t0%z|^|(qL=R(?7`yyrt-b&{vaKBv6I6 zA4Mo-Y5SbXeEhg9qit?8T(X4V5BMZS2r9x);WxNxb}{A!XI7s^0*K8 zp;WBrvpEsCD{-S>RG6SkO@}j)=g?t^)4=);Qrfo+$|nu~*F zG}n5$f|zbCDV4(6;h3a8o2T-w37fr*K_F_Pu#|W8b zM2%j^zm|vQE7^pUVH^}2RkVuocck#US0WUPLW4h@jH_?_7sKwI7 z5GWg>nQ})|)rZf;x1KM8^roDe@z_rcyg40BK?H4x?Za}X-e8U0_q!Nc+gn`7LHx2} z1$5tPzs};nln_FsS7oXY`l)b!-a)XuwZHNtL330O*JTOjVtjk^Hcn?Z*qMYeEOL$B zLDcVXo-5{VskN)ZFN>ogL&1fwQ|A!RQ=@`26RiAbmwXPTmO0niIz^A$dV$$TYu@q^ zNNXcer@pDtZn&b7LQ&orxAC-oZhO^3B6`k-?VkB8eiLKET#7UE!m;k_m%Le29-w=a zmOaS|^v%-C$H2S0vnc6@x946diB5cABrht$CfIFcsZN=?4*!7JYFv8EgP(EdBPhqB z-`Ue(K$*0DYn`t@Sny-#DL!hE!Qv)A^-E>>I6dCedtD=LuaKpm4a4-P%vwd{P!X=T zvW>ruL)PPqTW1bLkZQMI^Q#(1H?}X97hOY-GjJ|*1jwX0yg{J%vDf$-Et9?vAv|uc zw*8nh^A&jiP4eT6SD9`T-m#osZ>0(7G^toLRb)ZfLPYW0nQvf4=IXKg5f=1A?auE8 zS@_!5v2Hc#E5!S;2g~iL!$euVWpETLeNg_t49~}YgMEm5+*`k;Qr6JU`xZ|r7aJWp zZNeQ89X%b_$|LjfxGN;pC%=G}m387pYH+|3UwHq1inGGnL3l*mlVKsrUN1-g8rZi8 zIK?8F1)O0C?&G~3jsf|UNaaKnc++u)?wRGbUH7?+JkL1c)Rm$g6zfrfj+u3Wb z*UQW3bBGL(`afKgZoiFrgOpooxuB!@V_~17)@>W|&EtUeq4^@YIR;G?P)Q?u2fLLm z+V#}9;yuj3i@jI+Mv$a?K5B+w1Pb>!@%(N^b%-jrs73>cBCt9o?ntAtEFYe(j}ThK zUm#^_(d>Oo84|8Pf};xY2x5;4?5ZW#ERwS|Pawf_6 zmhX^3f|*3ys~Vry-^P~lyR{|Rfg_wx&Nd_T~EaXS}vB@*0%8Qa4va$EEz zx})D!p7%7~d;KR17Mz5KXK~~`bC{0JLfPdtl!%M}(gjH*XM7j52omsr2{({_YlX*G zW{>E~?H2K{aq~prD^0}{hU7H;$4>fp#LWtyRf#7;^O<}zYh{wH*(xUbHPG)oB_g44 z9bRg9;}#lzmp2G$|WAAYoB>WQ+OOn0imZRAp zfX8$8F@l19Ls;l06*8Fxc3nBgi}oKs=HQi+T9bTRuRN{|LAux@=;SGfdq>-c-1jR5 zEGV_&A=7O{IAyT<6C{!swlpYw8!SN9+eio@8=Li3Sp7|TK$948MRmoVwQgWCNt53 z0v9<|xS#$g%IFo93$%YQsU2T=m+}-56_H?%Z_f#VbUb7S)t_~wM$bZu@;vA1F^>24 z!u`iv0&jNxm2dU=+G#@F>{+lnY1l><7p*_8qU2E9bob4R6(V2dU6c#ITn2)x#Vdwds5BWk0}g zF>e1vQ%RN$JRpL}Ym}`$VjYK!DA&K>zr`mRM^HElE#3R=6xO-F#ld(Hn-KSf;&5Qd z&aZZg=WCJG6SxBp{Kea4)W0)clKzi+M`L9IRzFuE<})+OGARJP_;0xIT9_&|D-P zeK0?eyW!@hMqNc$E3eC9nuA%6w95i(w@r7sYu4vfBRDfH*d-M)EsRX64e$@*|5+XR~2lg*a^n76PMBra(lqY)Ra{{B^?sjrrBC9B{M9HYaM2fOe6vVV{C`3_} zz3QdT{)RBOh;`j=%h3?_%Z4W@sljws|L%)Eb|v+c4~h1eI#mK)jUb#~?#B5V8>C|; zZas>Vs@Fa;8M1KX6uU@-?AAnG#qC$sjvg-YG(^C;!R(#{k5G}`BAA?uIP8TM%LKz21Q#u!xpE?rb1EQ~y*ftmbbgt%DBZW{d%i z*_9xFed~uv2-$bTmWlP(`P+$nrgluDYCLBR8}923K6(A%oSe?z?MfW+L#eo27v1M~ zXPOqrT1iF&7)Sw?`xN_NZr6zNT8fF5*Kx?M$g@vAD3CT_@Mpw1HfSse@?_ZuD#5*- z91A%%ON~uMiY~&kd_-9>yvvKK#am#}>ryj6C?sZD78sCFP_3n7`0CVqG45SyW3CYF zv7{473G~bNomj_MV;gnJM_I;{j1xcnZh%a_nub^_IbTn4h0?LNf|F!t`F_gDku+K4oR;_HRPSaL>-`BHQ|p z{!3@#8yQTv)s*F@M4Gu$ZTPlH{S_2*SL>`qG#1&5qfyv;RfsOOETA=)U$f;ImV)LG zSx`bLXgo<$8=j}$5-(o2Y8fjD%*^s@{)WNGyNEbapdWPil1I?ZI6QdkLX@j>+m|!z zFi|=q>7_qMWgOyIOhlq!T+Q#Bn{h|vnPK%%$(UO;jIDCQX zxod4zftWPk`SRimpksox*=|XJnAhpBJ2Q4lk;=8^Ih+AQ5pc@CO1=2tvlmu_gOLbj z`QkG`q|giq-rCDeesf)m}+Bb0^!;S+-+{M>qcMYW!#Tq%Uon;aVP1 zian+mJPV&odS(=!F@$uxUCwMn zV823}TGqw|yUnnSLVqAcrm11OYQI*zSC}J;6>Y5N6guO}3p8DE$;KS)tlmdqVtabz za^E)@vkU%2)T0(1RXNK|G4;ux<}UJ07-vUj9+g~EeuU%@TCpLLeA^KOyWRP$^Wfe6 z`ht9n2k|`zKkZMzpoM4-#7(vkWydkjgmYNjHUn=neI@9k!n>UsWW~NxA>v`j^g!;= z$t66BakaR>MSk)#YFHsVaQ)X^Wn{pp_m{9PcLk`AUUo)sO!MEJkSvLTW5#Zf_r_O= z-k$!DSoW$xPDW-cC?<(kQI$-dHD@i?)2Qinf}_1%NHad7*V~+eM65X3>)pU1VMz#t zVn?+?v0WmrFU{tqHwZ4@SlL#DhR5$c>yHSkeIHQy;j(@P5qS{DF26FYx@TWXtBzDQ z)v?G|!&24bO(rH4wS8wNUM37K{l_U(JGc|Xm?oQz^`)HV!D-KlC*vH zygB@{;~%Sw1S~~7`iG~xoKZcE9wY)AJz5G3i}9VFiGn)JVRFft`7zJA^eE#(EZ0h| z@;>wHF^*iEJmThzCEogJ9j4h(^b!$|_G-SP^a|=_%nYZJ&SGyUkDg@-9>ppZEoKYW zHT+3b6F$F$kLCo;VAKdbnuZNupQR$2C`iV3z;%s0!X$S>&&G01o%j^-1M`(Myxc8mp|NJk2bV3*T`~>0?Yh|JaI@lGU`Xif4y4%oIMf>*v!gm5T*bC8u)Y)24jaI(aQCvM}qY zN7ya5mWG~H5{aR*SY^K7{DLdD5p(t{&RS?irsp_JO9}x!%3GwTY1Zdnb`D zunT{}NG!0tiNwO{$#NjB*1|sXYxZi0Kn4~rQ>W(s5gOhD0`3GdC!u7y0D_y<`_%G8 zH~%ccxyiUm{+~Sek5$S8^@hysxTfp_`VOl0mw_`c?xVaJ!&DA4m^{m6);C2av5C+e zTa>BJlEUZlI|6F%^YaZ9XZ~5bUml!M;BIq(e7dN z<(n=5J@ur{LkHg2nx@e`(*kIyixm6{gHg6$K5q*>0HOz{xgSlVU3TiS+9t12!EHtc zC6}|>ZjniIH!*}QUN{dItCIPf&A_a~BR4#ST=Z}5O~#3l-c|3t_br2Mr<}CGA`qW_ zn7Hj4hC(luFdaMzCE{;Vff_{nnUgau;$7^%;#&G%)td5`|H(y@EoZe^uo3+l4AR;o z=V-BJ(rz$HT@p=yZIG?9cegi8_lNm_u%n09^MG1BG;f$KHnXWE;Jsvi8Tk7ka8!wh z4JO;@$RME>a z7DjhYS6%#C57ipuXbgVU^w&5Z$%c%?{a2Bpk>Nzly*vC7$w^YV;B7w!yqQ+L{?TtT zL9LtaMg#88XNDjG>pc}WyH1H`Y6R*FoVcn)5PJ zS#@>XK*4*+h^_H8VIa`O6&h4gfo60T`DIOp)M}(noW?O?b=|#+BnYw+=0RRl1lB&H zz>R4I0w_|WZqSyhZIRxEx>&QYtqREI%bOehIxH;HKN`uZl=l^@IC(pSsA}NpS+>o8 zz3?lt6EPEaeZ*Vo!CKNR2AK8`Tc7V|>;VxkU-{ac%wd24M%bhOFO6~E9VPIahx zzh`hcWTOgRt1)YHl}oA6+s6^RJz~sKf3k@vq{^*QPQsvv!Bcw=Yst*wKgE!$=1}c6 z{5LhoEL5kJZM}UkJeNL+nI#rqV)p!iyO@aT>XI>-RlZQ$AZ{a)|BHSOVo745#ox?Q z8ovou6>7L_Og)hSX2+L@=FuHnJS)L|zU+nhn{Dh4@RGh(u43L7BCPHlZ)2sl5v4uo z5kO%|Y@~C8Z&9(y3>Z@wmb5inZe*_B zo3%RlzMttREwbBt|E<&?Lb9H$ZD!UsaOQ%PK(ZizwS*sjOPqrA{kG7Yu)7KrO&hTh zDT|&bWwwUtJ;UiDWM!Ft-MnCt>iMc}nt8rp-?FT`wcp(J`1x<@pBP-s!CX~oyZyZ(aE=OU7TW!Jy?2WD z%(=E(SNPLQw5<}yGi*LRwMq~(Yo;E#TacrXtf}6ZEm~#b40KG8e?qfsZfEaB`cWxu zzpo!l@~e=6O1s=Nc7y{sn-6xdm;{<#geB)| z_isAorH28oC^ACj+ehxBdWnmS)?>D+U03=*HZhKNi;P}hJ)&*17Vyx;f9bo&>cggJ zEnxAD^tIagGVL>Up7vMoq>&7?9g^jmxeU;O@0Yr!$d4M1LV(~Y@}+MphisX2=30T| z(nXFODkAk3dnv@(;xtEWU*GB^7Vt^vcSY&vZy#Cir=#nt`|I1BbwdHPY{fTItWnMC zRO-1Qty*>XNsDYARh?!_MtU@n3AvQyVDQo$8r0kzXkxV@+2WF2FEmH5r~sw! z<>_Lf?iiY`c|4~LJ@dg8)(RAqXh#VgMQxROcBjP{cca=pc~>I*G|Lq_^raa6&j`?E z#ttu%CB<;QWp*EHyN9Y(JE)b8O-hdb7Q*oAV;?)Ft6!#k%UF^^C-xR2RSqs#n+w0H zdOG`e{FTx^sXfT}{&Uvvg)_d5xlo#;7NmWU#^<9nXRLwZvJ7)d$M`kDh2z^ezLNZH zYu8YPT#W3%BuE-!50FXm(4OA^{8+%7;=1>|*}yn6vIW;Hd7|b!lO-R`Pg#r&05+>R zcB5hyz3g%onr#l(hJwxW&HuyRS4Tztt^F#ZAgF)}hzKYsNP|enpol04NDLiHcXte; zAkC@#Ce`CXVj=bXPu zu<*%bgqj*BXu|1w1yZfth%GmNBVr&=@bxn-u^VKlkd{Gc(`OSd7k2l0S0}kC_ee!` z$GM$;`zy1o25Z@?_q<_q_1ZbJ!kkwgo>efo6JD<%@uSA`?c(~?8tkT+`?(gi+?5xF zlO^l}Mp+%a<(|t%)il-451~BoGfqAkOAFC;up8EtjQ-&K?do+&H{u4#Rgh2h2ujZD z{j^&#Q>fU+pHZ^Kz&^%3Ul0LH)Fv+B?RxcTGJ#Ti_4Y?b#rSG1uIsD!=1Ub9x|9dp ztx!JS6-H}hocXo)pEB@M?}RFrgvQ-yrck@pM>Q=6n zdGVO0>EM2v+6dm=GWdbbC}7|&NBE>Pgz>(+)>n{P1H)G8&6oy~>3^(yp6_*}qJ0#) zwedpIY&lfm$8Ok@p;(vuD^kNaP$)d2>uxw$Buja2jM9Cj!?i*|%4>~REp}XYr`mR8 z_ztY)Md<@wku&FsQ`f3CZbwjlGZccX+f~pLDL>|MpHjsvA&}8kn}zd5sIrwPO}PnE zP7SWH1(qgM(rI+JDEGBbIQcCxC~GSu&*{AHZ0TgX0#~B-OXz%p(3g}CXS*|ti`D|p zUSe5`XTCTvA~E@9dd?7gp82ew=+d1Qk^{ys{(>hRcoUtBHu%eQUaH>n#VG9EZLyjOj<^Bpvi0>l}V>y|>pj z)ZF(2GrjL~kKI#rTW_PA$f0?*uZBnWr~q!X)yObvJQLTq22-IwaZ6I4jEj7JmGYxa z*}btEi$poHSaJpyrR+BkI5ekWiVR)fBjvSS;~aNC=!hi0$yzL0f7L$Tl|VeLs1#Wa z`rLewpvgoG z;_WNKe&}NF->^}2{>_{LLolpDy#Bu7dya{c)|_T?vT4Wp4NwamY|q(aJv7K=Dqlcq z@$@0q_fpIpf3rni>Wy%1wN$%OP0sMqq?uBq}MQ+Bl#5(<~df8&)* zPy+YS;v9o!-bh>ZKeIWIEW4H5!>^z16rj_oauED&^#vi2W&Sltd2thxxWqq(cA>l2Ejq>E>A$TsEs}bxvld z5GNWtZ#$aE*f*bN?~!;VJtj;zierl>@@^~7o zFttIATENvq*Vq5Whp>iPdLm1WgakG4a|UPM#3SF4`Doq2oR!9xWmispo}8nk=*O%_ zTl4O|bZExKgx`w@p<2FBc8M*!<}oTw%`I3UZ^zDNKiy=wSy${(=tn1eWMnAE>=SFm zT|?8=J=~sV4Sd?BM#E>t(5mUt#SCI$;U?3Td`VYOxdp9{c^K5QiM>ikv@tdtfGW#m zf+b02O1QkTywSw}aadVTXbg@b+t<0Tym7(cLPN#+)p{1urpde1hW?bG!q-f#`3d9$ zT{qj+fz1Rh>x=t)i1khi;=av%F;GC~j_un1x!g<}R_zX20q%jM)b@=}lMm_S);(uM ztItngceG8o|LpQ^Vj%X+`W`40WC6`JJi9lPV>ZAVm=6UdZmnVY$1Z)pt&1VF4-dyy zo;_Righh6WzS7Q!;X(bwFi`LGsqD?r``;d55UDt&hZ9`ehl<{Rbg}=%ys&4i+;gqt zs8*9p3meLOvSGySDW{TruYb-TQOj0j&FP49%D;R0vEMPj0kmf@YFV&7c2-t5ai8v4 zRHA2%CYNrdLY0%5q2Q0p3S;MQtz4C^R5K#m>HR{I?4wf%ZN9}uz+o?ytIwi`@M(e z`H|GYg;sN)o_zB&zNDLew{$0pte!t`vA*=B;wjA`3Go&^X3CV+PRQl3OvmQG2YKX?fP3BuYbky-U)2A zPstNba^~cCaDS`8*zooPe_e9>>Ddc`m3kP9r%z_k#F-3l0w-8$wx+5fZMD?!dyHn! zcp6%1%(k6RjvqF^s_gnHJ5rE~J#8@SsTa?QoN#*^8`_g4&E&olr%dFO!^cN$!y|V? zqjh?8hQ?EN-M$I5QOCid0xit#1M~z>pPeI)-jz<3)qR@hkT@n^<#dLy`;$XvIQI59 zQa01u)!~8(grz|8IE}BJhvJOkd-T4|d7C$^#kn;F3)rG~5?0=?1dN@gHXo;==(?&D zeGWs^Ju0ruXTIpyQZ{to11Vs%Rk z3Ca#|Eq;L~eOMw)z~t5kZ3%rM;0lKpGD5xGG0TWVu9Lwi$o2jp!F_=>TV#W642wi8 z%g2k$p?0B_XZ`(6lzkoV5cd1J-Z$|wng1!86A4Tn?xSbj*0`^w*opy7`2q|%8pwHaXfoId=H!;aG4yy{YIGjL38GDK$$?*oNPoAFGR>dH&Ci}ja!ELC5J7dxD z#aX{hb{L8Uo-Hb9q5*9&I@Qr%wF==gR&RTmqs7`wbeU`K%DSiaC86z`l@cDc2OSxBSyq~7xqZuzi-Rad}vdiP(xyvCd?DdzqrobCV~CSR@6 zi8C&x?VA6%^7@YCRJzUxuWf0536JA@ieN40v&AbUNk6jKV9g)6-4t?P6|Z~S!q8>o zPhz5{-Std3CyWkWMEN$-M~L&(;fuw#KucU+dStaf(|RA`cxg|f@!)XKwf=`O9A>2t zN3p-J8ug{T7Qg21T{c#oKm4_!4Q;E9r=?}8_vzL@{{YRcp(9E4q&F|OVi!5+`cP`= zNfhC{`vr&blsPg&>JGzcGkfvS@9UK}D3-X_>yVw?@7NI^=SvCB!)EcV0vI)Q{mdtR zo;A5owB3G_4oG$~f3dJM`!)vZwWC?mL$^mNC6CQT`#rqXzBd`ZJ*B44kel;F8!;;) z5c34W{K@*m@)+hFgGuf&L5r7K>~NWdGE#r=dW7D!#OJHlBd#~0m(tV6RyB$Y@@m(| zG1i@r2d1MeD8&8yx@vsah{jIv&E=d>`ms9Dzlj9Iq*sFo&K3R5)zf` zer`ZNx+?T^=;~gSGvt1L%w75Aq4%9j;TL?(pl8P+N`gA;)0cH7DE@^VeuC-m4m6h; zr`{e(L5cdki+JlC(=VQ+ByY8m;T+Pa<#C<-|V6><$G-wbe zm}gt`LOIaUK~{4}7zuFsQZ6I`yFhwliq&v@4zpl4!F}}mnDR(~Y2cb;^)tTMAcq50qb}VoWxVyhckXARu?Cip z+L~v^IAc5AxocF<-NGj}dj|c8GFbS`kfc!9y=zd#Q;aVHrQrUrCTR$&<1UlmeMqho zkpfuURm$#Zl>uLBJ7~qmxzPe3+O~Qt(;#K^v zPYcHEpFcoAcn2Zg)5Q&f!x>#u^LSP2NSj<+J!RXA_QFtR%iBuc z1y`OKQ&oK+xaR0HoYZKUEIOdLbH?abn({y&@O#j7B(ylRDd>J2a@OHdjIirDLL;(T zQ5hm>e1c%fSp1Uxg{F2p+dXQW6IDCthc44SPQXl2g)N`4$2jT%KK=JX+%Lopl?RK< zih^?HFJeP!NCm#X)g?*`stVT^t11BV6IzV?g&bQRDwGvg*vtLis{VcDpJNE85=1>m z=3lWNx(^7rdn~yH!JVIy;KxR|u8HW|fZ{Vi<@<=AC;GqSw<1Qs=ZB+aY&_g+uNSHr zuLw=)`9KGCq0V=jFfm^SgW#p{6t^f${7pr_8fGZym{0m?xEAY}4nERdtx1=GS@rU= zzUqSKQSYeFo~)g(x{IQg>{vlwJnW5t^VxJG74`2rI-lAFFF4qaWG}x?vAvOGeOpnN z5uHED{DlK~*Rb+%**U$r|NNUfmy3L4a+P9ai4pbsb*KO`eu^$!dDTzV$yj%5<#5-g) zI4OB+m$Wj{`GWF9?;6E`8QHvw&l|BJW)xdO)mSaE+KqS#@(wu{&IA8+yc&bxU1oBOqxS`LkRIsEtr(99#}6>6!c6rR-B zl+-E_$5JhBa^{>i+4i5!IhKTy4}am4=JGm_azCEu3%!*9MFWNzjoMGw3~23e8T#7j z&`!$t6Nm=Th~bpB!&-CK?3(>X5=43tbdXq0)tWFk#o#PgH?KR*z~I~Ld?5(e)9&>b zsl9Z`i5I`UIwiR9g9-Z`h%<{~cR*g~9@u;DLdj@r5{25Npr?ZskNSA18)#S;WKHO-Le3g168spNa-uToK-H+gsu{DTFT?|mHn z*16w1Bmp~?93gbrBKi5&G^2eLjkpUsPjp6N;qQyd-_AA?bNddNaz=pBBq1s<5TFI8 zINCbeJ!eAR77@1>GVUvkJ{Abe$McE-{IwIX=5W- zJ;CD7>BadcjTjw_o*NwE#)}D?+x9 zxGVQRC|#zZm>&GF&ETOA2HY$}x170r(|3a+u=8mYnEckL{^BAhYmOf6j}S6>Q`!Ni zse^iT)B5PFC+^dSiM^#z!>2aSTWv_L;xaC-Fltu17kP}qMCn9liCm+I3a+uU?3%Af zCq=~SS!mw>e|m{i=T$#8#H|t;ffkf| zE|M%k;lU;CZx)pU)%(wW8kmsLrN)+;Pa=|{vv@K#DOeW) zdTm{p)t4pCb`Jz2qW&zb{Bs9X-!<&v0*tzXQFDHJtDiw~gkz#YTMtp1`#NpQ0j&QP z@m1;OCsqm`?jshfm|Ty%w7YCvKS8<>d_{u&cXjn|{!G}in17U6ozL6>-i9Ad=)NC7 zd3vs(?U}Tu`Q_Maar~~(vIytj7lHm8ftGY9JS?$gW-ni3=cYx17xfF0eAvPj)UI$| z#hgFm#s1{a|z!-Vpip^ zc2-?IhF24y^@(8Dz!~A-&@V(}X6k9mp}`F)7-wtUw_h|!JO!{`^{DA*7?b&UQ~L?C6-BoN_dChMci0x#G6`}``;m5nu2m5(K@1pdWC{o+daH}G|# z4&2!At6QbMX|sP?ps?}0H?_skhT{#{Q&s2fa{f=R`R`Zkf8F3$r%5@N`@zA~!hH_S zacW{x{!~@1^eX(1o~q#)d7x}JSij+C!;aYXdo47xi8OiWj^QkTWdCy6|NVK$Z+0IO zL>%tO^?7u>pTBXUx5R7w5X+Dp=9w^BtaxaUB;6OO=RH=D(ITjRy2_r`@(*7(LDDaz zmHW%HI3d%Mxa-=XEG_(ejY#`%Y?4F$#)8*=X&k?L%D=r*C;7r4XF-XWd$_v_0{J*S zDFR~K@|Z89JyOpx4eW}niU*R<@zQhK0)p;c$&No;hy@M;3X$Xcp1Vmr%$=KdSxTqD)MKGlKAB2!ylVV63)u>Z^LgoA)g}3Fc;Ey zl0>C9g!jbrWYz`N3pho|U)h8tS)c#QrTvwY_9sjFMY449-}G_LiI4Vpb}Y90aZ7qH z?p>8)eB{~BEEzV=D#b%3kxNU;OM{#P&dW))9!96pdgfaDljaski4n`L`=vuVm?|w{ z`O^zpm6ux{{8c>o<#WAYCVuoqm`$kF(#34TG$6w6(yyNKmmmH6eVi_yKE04{pO|>( z*HP#%KI%L2Q1X;VSw*PA>p$D(A#(CpYuATHH2=)*jwp?!PbDe>UzHmi`}) z`|n0V{2!0|RTTYy4VB5Jo$&5c_?VY0cm7#|5btXBdflAxdfAwbd7|?mD|$@CzVV{q zXVJ9^CR8T@DaShn;kihv)vetjeZ`C<4~xpq_cHXc=g8=Fy5fH~-ulL}-#jJm=)GMF z+3i=Iq)fS2I*#xg!h1w?OOl-F_W>?N1#ZE*B`u&^fCvjg{Mqtd{ik4%O|II{3iF z_cSU`h`Gw|pAvWY`P~6Kyr}27Iq+&-Kjf)$NWZZD4Azjxr&-L2!1Y5J24{}^j%O_m4>n!G?)B%Pj z{!wIdz6QHi%}UVi?CiW)yFV#Mt?Q%|99(+cHEqrCUiLb&THqTd>E6cBqk=$WaV;AXs%-p*iVgF70ZuW z3sIKb_ z)dHhTwZm&JKCbGOUixaQeQ%C04FvA~=r%f^!^Mn63>u-Ru46BK zxKfPVf(lMJsff%)s$?I3kem}p|4nSsJpkad=t8j1PLIsut239L_#E~jM9c^;jYSbM z9^Bv#Yv{P@hE8p$TCo--8M-KeNw--s9(uZP;rWjx+g+j=ZEb@W zZOm@{CO)is1%M%u-cLF1+WWYT07!?FjWtcnLQiVn88WeV;M!p|DLZUAxgXwMq>Y~c zXc(S75l$<}ReLZKGFQYusKKy_h9tOHlrDe%Fui-SmFKIx9`%xUB*A9u*oF1OhgMA*P) znu6SShcj=F)q3tLe( z;ljnV7`?WkX8!X-W=xMmpTHr(tc(0hF7QO zj)0Y^tHp(RbC+~KG~fF9V{yb3(Fvy;Ypwm#C9?c^veq+ZjNddRZ>Y`zTS0Aj1L3vx zwCdy-yZvIJylyw|sH&eqP7cRjju3ISfWaY$3#qJKI63`8Wf*Q|e0CD<$uwHj&J~~X z+O{Xfr)NelX!G$M)HO>&-C4~7)Xby@u-ZPz2?lwj8EVQDu6_dJD9fpd3AjM>flAZp z{n4m2<(ykm%ILnwa$Zcdrb(7sR2gW!0keeS%t&am z!+3qCHMO4G%j24>xYTS%06^_20)GmY)+IQOn zF4OFVJv=#&-3X(K+6%Zur&Zs60X-`mXh><3Q&8ujWu6vgQlabV6u9g;sA-yJ>w_J` ztffDT{V+q%PSBm_E-(Xw9ZUzPh%p$pg#K8c<_Yx{Ko^(uBOl||6D!td;sVUQ%9=Ns z7If>IU6sVBH!)X-xRb&%87GHLpU-Vm?>CJ*A`@q-d6PmasAr0;C!B{mAt*LD|4O20>IYOsr&)w>Zc>F&>%CEv_vK*<=gU?l6TOP-y z`$b1;XiId0qk^tWL{x$A8KUSu&CDDw(ld&#$|y{iYnz1TP0Om?!keV%0o?k@v8^sb z!n>`m*}mw733xPJ_0kC<2CwG>>)`m!(qiBPCx`0@ON(y3E{Fniha8Wz1+7O*4t3Mx z@fOi;UBsiWOGTX5{tY;sL5F7PaFrm+%du*eo!ThMV7chkn$wucgRZLFhZee2mvdK= z6n$1L_1UouUK?MXO_SVBgc(|43!ehotiSCH)gL?SQuXIAsf2FEqmE2;soL1FLx}I+ za-C^yDqg-BjBm9RDHeKDCFF}9AI#Do>15W#6q9_#@JXB;Z7Y_;E7UX__#yLm zVsv_^Odq+K_%3DJH+Mv->uIiWW0f9E00beSi)f)Tnx1kPLu%8@)VgPdvej%WTIirxKA(#T0vE=j0GQ}s zQBjkay?~1r8tQ{-*Pkzlrguk*??2PLS@{*rSU;Gp@mR*6Z)>8YQ|TPnV$~DE!cy8S zRcCXp$|pT6h2#AlRH(?=(T0qqq%qs5gBHO!D1XWL6lBb{q~|efcI=?7(s@C)1{2@P zbL@5|x4xGQ>3I&II1uo*&#iQ>I#ug+*xm_Ol(??(vO#K2eid6SfS}D*$9kHWoeT)h zTx7jwJ9|*QYup{3SouIzDNp~r0Nb$1bW2g3!<-8*-9SS5utCW9ebSgAecdh@=atME zS};7N+%9B0G&oOFvg&wA014u%kAgk&zKeI+q{ng%iGyKOZv1u0anZcmy+Ra+P^EVE*sJ2=jRBGV_f?Y05!2wHXOZg)vu@cb~RxEz~9NhN+Oz^g<-=<|iF} zVG7FhVmnJ1LeK8&*{GcCbVJ>7m5Zfr(M1eOpE-2mig=u*bhnnOf%h5f(Ulin_8K3P z4zU*JD(%g_jl>D1I4B9@ zz)G+hL#{t5EZDOcfy?xs93f942eR1rvE}tR&Xbi~9f9KX*{VlrsF^y;h00JvceV zV6~lQIjA0$?zSWqROqLOczTgFx#~!9N)XNRV+Yy;z!QMmO-K zpzd&~1RUpr{mu7&3wRgTzN-H;c{)ZY$3u(qCvKns78O9QeJ>KA=duf?(voYY5Ugg^ zW(%!~pC29$M_1#~o3h$mX#&crPriLIH_k?w?g~Yj2Y_E~#uUt5Z11ACc{kxcN2v(~ zhHi{1h^|HwQ59Qsu;y53+wfcTXFC0SFB84p+@ybUIJ6UiIQsmtvoTTg zPPfx)=}{(d9H>S8dHX; z5S~fpteAT3{zM|@c>=P00P;Ew#5G0ef$&-nv7ZU$*X=16we!OAfIUJcLyuJm#fsa0 zvgWwNM{8MRc|}w}7;o$Q@fDLauqK`4zP5v{H}i9A-4K195mrhJF&*gcJI1afAp7>6 zMQwA&`^5KTz=hX|^JPBrt)&g9Y3Hq6`ML&xWk~`&=)nH*ilCMsw0^#;k>b#;Trt}tJSbcC>PAV_Ulu1IA>A8Lh zAgAdE6bfo#64E>(Noi*Gwx&L(UsN#!cI28eJzO5q7rYD6pV65m67;t|n!1^9DMriN zm8i{iTx+f#A~*GKPGu_EEURllmK;8+!Tk6S(m3BOh4PyY4*MjDY;v7 zoi=0cx9F0Iwl9ZRpSi4>jQeWWa8b9iuFILI0uEKEpv%f|l{A&+XPvU+!{s64uTxt) zMN4^eRUEg~xZpu}a;ig(#ewfvQz@0mq0-uqD)35MiGY@J4w=5JaB!zO&K5DDy2n05 zIorwhDSFI=Qg69Pw#*m-VpzG(Q2!&UI`;A)oC#DSr^@tnbyY5-%?L~QCa};b@1iLy zT`CujA=}acwYe&T89-Cmhq$X2Qk+3<(EzGT^@VGwd9#=#!+E{_1Xfx1QD~##Ogl{T z1-}nhu=6G!`o%08LNrh1>m)+cxxmBMRk0wvigc*2Xqr`7+^}D54Wm`x`|-_fZm)2i zgIp`->~z~MZy{h4>bpO_%|MrF5Ovl1~{nwAqu)&{M@Tjq9yvQ zf6kyFf8U^`z7N)osz~z0DZnbnhw4(kNb4a|RV-eUxGWn9WD)&vrojODxn&R^tq1tS zyEOfGvnAB^+>I;Y9|JwvNXMhSFNyDTXYWSsI{=oPofNTf@SO=BIYwppgCH4-4fL$v z67FLAp`Hhibz?4OAbnO|lXX^8qk3sr^F?vintXoy>oq7=%VRNZxv0T)KwuX_#16?x znH5>iRau+GqE27~Wz$**Mqfv>ok!sJ+MIh>NRPnPkkKnL%uw&5cQ#N&x=GO~uS#pG zSGFaV|^<*#8iipnX`AC85`Xsm?F`N33@j!U{ZXqIf#My$s5J>_c#iigSmV z_m5H;aG4;QWNO6u|7bJTe4d-o^}2_Z&GvCSL8tk_#`IiOW*|*oW;ShKbJ54};G&T? z6cMbXy=fd~35w-EAxba#NORPzFGC$t+iYrNLJS}AFQ+s+DPaVorJ*y2tJL)e(rpB< zF*A6+S}>|puh?Pw5><2AhDtKY##wceLrYaEtSuvI6>$6S?Ea5SyWJ>f!&Zyz^hWqe zwH4I)1@l!B40}>M765yG-l4EhA0^?rx1w1pmi<$$EIm6yZO`(@&Lz>6ck1!^z#6 zY$Hx;vSsb9z5ra3mRY1*Q#9o>081HlF+RJWLShBYIO*`3rA2+ud7+*kl3l5(QK55{ z^3Af3L{lvT@<9)f!b%N_yx^YIMKd;)DM3LghweRT2MMh6V_UE$3Ykb~RtV0jV*2fz zsV0Zzf>>}Jr#tdtf${#v7{F8Qn2&)Zi@-k}28sr|n$TLRrwY7`zs?_hw5Llw^y=9g zv#noT!x`urA|Igt;tiF>!jn<_Id<5R1Jdn8m5h8x)6SXL7cGGGZ{$K1psJajGY&(*W9ff>lf!Q z4p+k9=n-e5D8~$QH-)Q~^Q)s9!;z1|ekaQ%seTn?NE>pJpak+1OKhXJ0&aXLS_*Hr zN?q67?QqatVageeXZ)g#34Z0!gQpgeP{mGDrkWV&drq~eTjLrh2eWW=dpQb*Eje7u zLHB7=4n;!iIx?6(>z2q1PLzDKirH_b))&hID%Ms?}zF zR=|0cUD0B#5^cldgrYx=+L!bDFe^i7ZN4it+FVDa@xr&HSC&1hKqCoiq<~jY>BYj( zoHl&DWuM|qEm=z7_dI714(4TnEcX(3B~sPRHg7Br|Y5 zBJALk^rlr4+Q=)v9-ummtEw2aJ(uRdynzNMOn|XlA2XZu z7DgBWRm&&QE8iJ0Tjpi7qeJVIOt_3$SFKmsWqGx*7bq4c{$3JN_d&8XYkmIB`w>X| zsV1*PC!|Fvm)d5k!uicyNxZ@=M#tf)-uwHnJEIDWV|2?FKGdtf&1P$CCzCjMQ71uQ zBJGSOCcqzom@OcwWXLdh-$x|Ho?Z}Ycy~)`YqrUU?MyetV=gVfTE-O}_x$Fac-uNn zryP>^QKY6kgm&a?U!BgA7n&a`B-npC(wQ%mTJTbU|elzxOqO6+# zg?4{kr^%)VyN~A>dWz?NZS2G@aqDD-@&QZ23x+f^1nbbMwUGtz?YBrbUTl z!hNpP(`#*12)e{P=_#-NOr^OmOp#;nIbZJ#={U;MALr@wRtnE%dkHXJKn+WryLer- zG@n=!xn#;z_hzQrY&J}=3xb{{;@*6d=*BezJ-U`AjGm;ys_GS7^HGiEszb4%0AASN z+L`ezI9TJNj{B9C@^5-e_gO*@7hlKRMU~JmbDOOUh)ZG{4PFWObN6tX%x8GvBhzhN z&0A$X;k#<8YBG5jBq0DmxFZ2Uy5j@qaq&Yk9#H$D%nEJ7_y_N@Kay!)Bql9)jR#2v z(ES`dF8dk4nTsuMgd3+kQ;CE<^8r+eg}Y@XRHlo46(QdbXV2a0W=7 z#r-I#d5)S9UlipNJo4~yj!Cp#85Jb@oOg_X9h%48GnRGFOwZRJ$+~z&X~GroiTqJ1 zG1oIhm!8>^J?7uLrebQj+xV?{yDzpY71rPa(jK6v0^aTB6|Gw4J|D{>y&;PwpU4f3nXjg!H&AtiG1r(GIzks)pA^wMtV<$3A%yyDjmo3 z^5LXu?e1WE>+_X@+DWDZ&5~>SJt+^@ijflW$oz_#;68tu5Lnc@WnQV;oK;9VP&bez zt@NH?G^Q;$Vw?b<|Je#>i{BK%?esZTSD5rLW@?P2Y*`y8mpkYh@2;g21VxQG`7gHQ zdpma30#lcTFGKw#w68q0>Jmyt;z^adGv{HeqjMW;#%D@3jZYepF2gSaoOTD)W405G z8I$^e4x8~bf_Y8~1_+yp&<pZt3P_Y!ZkHZcjfCZ+l`NzB~=_7N^| zXl6psRdB4Y*;!soriQV)4}CBCumlj3mgimqoo%K}uaQyH=*CN;9IN#w$8#D6I`-ad z>`tvkBU#OSsv|R~bM{?)7MrQJfAb`|0;(*0+3BJBOb4aF0MG-RscpuD5wsQ)RnF~= z9~31pMs*^uzfoMZG!IGM2Fex~Cp!=h0bI^YgdkRW%%PpL4==0kfYnXIZ+P>Js^)_# zo#9JYqR@Cc8tEC@?dbO|Rhp-eAFaKX8+&EC21wLD3se-v`D+1XFb6p-dFkdA_WTOQ zL|~(=Y)yDE9_kr3h3@_&l@s0EQDWY=g}ch0a#+4+>x{iN?)n!NHmB zIgkzfp}t#+1RmlUp6R zZUXt$YgJnx0hQ7f0i3H16U)oXo)i{MZ#ewrB{bvu33H}DI>q9-$!|GJf1u?4bsCu% zhL-D=x$j|n#fYd&@@F#`$#qI-ZEJY>)zX}n`m+{S%TZiaYPITbKZeM*P#j~|T z#z4NSZLzH_A!;m|E>4)j&|+cy7>Gyn50(uC0sD30jb%gbgM1yA)OX{6;2>hQ@^p{| z^fU(x#Gwxodin!4DIb<9(Mj4|A&z&yb>p!6if_(cWE;YP@OL+ZorUp81fRz2F^RWU zQ*iYU8q~qgSCj-Q|xzyYVG>RM1=!`ER8 z1e-aYS;s}-`CRB_#YY1e#-kg{0;6WBhq@w0b;q^j5S>g^OE{gjkCJ>>LCsd%T*V9q zJIipQ(WS1S<2LO-x02x46)P}q*XU4J*9sQ@`r+vxk*q3hOEYs*CdEPcphh-Do#EUg zO-%_vh)mky=4`8C`8dIEX*;^opzh~w{?2)pgm-N0wgLhr_>jE2f?1!LNPQe83pw~o zri_!E1gP^v9d6Y&gB$27tlye<#{}y(!>&TZQz=i^?+$8n7nten;M&ydJ}~NB=VarS zp#^|R%X@cVdvWlH<>7n0XXFTkkq?2>Qk^S=Bn?Pcj>7f8k3Y8scPjUeLXh7$SikzVVG#wlu!LtYy9F!6ijlX}<;iXk9nI9F50q1iRMB*B+!J|Ln{_6W+=9vKFC z?%Ew?-uQZOwk#T-ozo!yG@v;#^HHf;n60rMB*{2MysklE5`LCa5Mnn#mivGxuC^ws zlQQGQS<>cti;YQrQk%Dq*!tur3na_`Qcd@`B+{E?{iSX5WVTO|KOQ;;<2y71-|P;4zkz!Bb; zm5~&O=mbucgip}bcxurS2HUn z2DIb~ydAwqml$525MOyb#iONzsFbtFUCvyM;T9D+5;CMcA*W&E~A$>LK#!EG}XFTyRaAeJe@VIaf4{RR8^X~dS}>QI4x@Nty2 znglHpa^eMBIOw=>&*;f0h)NF2^}sDzvv<_X!rcVe;HZSfK`|eEV(So))r1)tf*u%9 zLeoJ?hqd4x{Xivy`_K1B{4c-x9f@)$^+YI$WC=I+1pE$dYp}Wl%I^$g978zEzDwyV zNmpdKtQ5A+pGK!tSrCo|FSe~R8hHWkbpM*xBoKac2)gZ84y|+Y%Cbo$TLrAm9Xohs zg2~lY(`+*D?WzN*_@1ARdjj#DBp|!8W*a{K;s6rQi$FTbUHPCW1Dz+PEx&!Fv+^^L zDf~OTrOchh%wXKl2*vpV1Mf`q>)1JjAWxs(o$TB2@b>}|l=Dk$8zvqNOA6%!k^T$@R{F6?0B__ogsaq#{tC{6f4 zbR)G70JZ4+s-^5ApM+LrInJm6Kf`HI-V=ZFBza4ZT@?8_s13aZEU=S3Rb9k$mc8vz&`?NABK|4;}{oZRZ#47^@!!n`vW0G>M6aeEoek@Utfz!;pZ zm-l6luBBIGEUEwG7IoPQI%vOO?>*zl2phh_`Fd$H8#Pn#z%TyylB?__PPLay5~tW? zqQ;3m`3DYn79;S&Pt84ZRrWAD^Bx0{>?nHYekFXp(X(wN#HTQOsrFvSji|^}Ml&4M zg9%~|>b$(K6Cj_!Exz5s#~MyYnI2NsKtTFA(~E}E&9LedIMHz&D1nFBg@_bsGbbQl zJp=3MsYl}o%5=EYN)N;d2Jy)$`sd*mnNge_hM^RXLfFQ4$MB^J>Z_rrcJa)sRHWq^ zR6W&WMFP8`QktLBQ8G6w*qRAYsTd4Yd~B0@sv2@@txwi&2Y<(xB^2KEfm^iXnd5T< zhd_Mgn{cE->W`n`y`>#rN0FaPsLhq|;|gBL?gKb$8_k!Ui?_E6)&L!Jsnd^fU{WGO5c8FGYa8jPu6Psh_D7^540^CZJfkVNArT)$S#mx z;KfV-P~40jJR7^&7)I`CF7lDp~4B)eyYA6b}QFRC>sa8@F{)SM(6x~?` z*zoCQ@P?!D&8j=tk4h*I?wS6EoxZ=jWe&hb9*H&5Yz*Mz+u|T>VldJ-JsyABqggHB z%SUJq)d^EsZ^B8Y>}?<4SqIeMmh>=&;p9LDD!BuyJuEh4&UDgf?*th>@}I7#pCKaN zeUsHWf$UhqtLcjmNArZ$u00-@%p9hLbOlP9ift#R$tQ^klaaM<)84{H!xRQ)+*`!= z0b!e)-Z`+!K04hQ+9C=-=nCo%W?xe^C!C?=(HuH|e5QKKpIYxb-Au88O9fH&)~?gq z|6T6))uQ~bYVoCwbXs-fVzfp#>)8}p6T(yxm5{by4?eta^OKoRvR6uGV1IsOsl@km(@S_-?f36zIQF)P(GaJC=T=1P<`ocrq9 z;S&kgv^h6W3D)e`M;earrKx`CN41N#JNco8Gz`PK?v0y-@xeMM3g*i+aaK)aZZiR# zqxENJwjErmiFCDp3+7on8?tJ%KMOYp41Z!JxnR0v{UnKoMgoBsYwjYcx>yi+_V%hb)gm|eJ8v(>e5-zw`t zSYBDe@0`*9`~Ub-k<@G)V$EZ}p3$m+wmPp*+6TB8{g$=-i-(jv1N^{P&*RE3pY?y= z?SGWKb^C%Y1iHZW?ti(|@1!LDbGu)x^M4leS61{NQ~8gn{AM)!kE#6HRK!I$hKq5Z zWWs46V+b&};4cp-zlMjn`P2W@9X_TJ=s!yU-%7q^ez+47WWLmIUc57W=^u=vLxMou z(@D`AoxrpkZ@YFMeWTU{aV5SJ`RJ5~Kz)OP?H=WZ&yytYf;>K^U)@mB^vd(A>BYLd zvv>aX<3#-zD+kEFKr+bFGuX~}swIf+(nzWd8p3M&kB>VAHbiEr^i?Rbd@i3n;o+>A z@-jbmpI>@sFJ#sZio&($(**y=`Si;h6OjPONDSfTHT&8x6V-C5=JF-^zokq}$b1iO zLF+Mx>6M2&3brP<7KATBCSGTi4(r%eS3|Nc1LNd%j= zAqUHsH*GKG?cuu%Pp;GaPW5<$51|Ckz#z_bO+xISh-sCJ#}*~ASiFL|uC+=^EID+{ zfA8UMIEe2F@v}q`&SpgR(0^Tuv%A<7e*X@({H+=m9OR`wVWIE-@~r>WTAl(|C6=tF z{O1*a6~KRi2Nv#wyCu#m)7<@y{rcAjBIsWG!%q;3gn{b&j7rsWvj3JA`{f(`^ZKt& zm3aQyCrctUHy*5#Kx3`(RooG?-9XrlFz;($|5tvcsq{vIX%;%fhWqfE|#yqtm)MU1A&qSN=USl1K^ zTDCuUHZTNYj}o-d>m%bv#sHOznuMVfy~NlrY2VsiM?nCyVPEv0=1%KLeVlPi>Rg8N zpdLF&^3^~MVc101KJbZHZf%!Xq|__0yl|6=dG1F_!w|8Yr0B}!DXA|*n|o`n>l zVb7%O5iXlck`YDO`?6(cT{cDb-s3W}_ulLKygK)}&+ooJ=iH~y{m<{8&p(bFZ`XUg zUeECu&-Xm=%n=GIW=ish-9t7U`+(O;#tQE-FyDUljGPZqn^V40pQusNH`!&k(L32* ztu5T-1M?lY(pUud8?v#Wxby%-+LTn_4UyX~pEgGx3JpSo-@eLP9IWB69Df^7-vs;* z8O!mV$yI7j6KQ#aGO_~Oa>z4YXH>2-3nKJNn@t7^drOnZ$0f_gGB#&vn0NFaD3 zI967nb+^9q`Qk6#+28khBe5RJ-+<#xTzx9(*6hG$oY#SkKC-3a4DT($_2$I(2p^EzO7TuJ*Y`3QA0HSrd49xc%<>VaUe8(0<#&393+c)X&Wpnttxur>aatjf~WqR@?F)&KOivmIi^hk8NNFe|e## zTeeL>)q$HxM0l%3xXtW(csSOAGFZE@o#73Iy`Yp6xaje%K-k&^JC`JsdbB{;Q_{jT2^Si*`b$zu@v(Rhp)VOa{nMTd8RV+ z8*|=1{SZreS7M~YT@}4(=k2|4<(CsKXSQtZAYQhECIAJJwRyzm(1LWBqhY&)qv|2a zogeaw%Dh9;6c){>J%$1E*?HTK{A3Hc)jsXrrG>~+BsK;M*WosE>wKI1yhPzVML=>b zLCEnyopQ(RvT5yZr4tg}tYN#wo1h3`tWS4Qu+7J6h+n6@vs+{68BSqt!nVx*-*XGW z#(4MMU;Gpa+N9e$4Z&-mL`lQ~i|g|k?p>*l{gv)7S`}@8(dve+TGHaF(A~0K8M|4; zaRsZMKJ=P<9L#ob(lKYNe*TlFXPFVT)3)FNpMyQAno*;Yu_!hNM2Nyowopst`e6Ra z^+Ke{E?juhX%X-W22XcYzX2It$#i+MsV-?O$WBn3n!59x^-C7xXVAR{UII9j_2A30 zDLNLlyAhGHa!VihuSO<0BB$wbhi!wD1AYp1gvzUL2jC#vClaa=ZJ~a7D5~9h$LqzR zwzg5}%^l|44&NJ$B8q6zKuwkmE6UDHi4Wuvhp|it&hot~hAIU_?SB(XL|%(bp7)@c z1l}x|1@K0!orv>Ls#iLq7Asb=0&^3v`26v}1}7$^cbyGRg934_{d@+#5O)_XK4k{} z11I20ym}A&jlISA48w0!;OBJB z+I;TCq9UUxbNUi{emHY^?f4t3$f?0t`-1AvYiecdbG@TwUI*C+u(56il^hnf^9w)Nt8!Ywv7vc;mx!zzM%7nEd>;|52D>6K_4J_^MS5O-t6Tc;hY(x%VE@ zBprtO@5iL-X=e*d$Ns&sS6%g|IR}_ACBBs!I@R;YbUCj_Q*g5I+Jl}r?gelrkTVSJ5bfx9<#hMRppOe+ald(rv@!$Iz!OzUx7&qAXCwMR+=&y>2w7u z5hwZi4e(vx2iM!v0;5W;Y!)1KD#URTFCs8-s(o=9oL%o8x}SGA-ZYKIE|s0ekjb$! ziZGLxOk``Io9&-zZx&)ol>TQ`{FmS4-XL~vN<;S>mk5~YZ+n@sV<9Hn`-6Y+*8XJC!OL6{H?2&gOYgjE9iUuSW3s5rM+$1 zO^y7?)De&T9Q(4^-xLcE=r$ud*shNi@lIWkh%4Fb7fdT&@w{=jg01uuoy7Po*Y3nM z{eqW4`t>6^b?6ei^@k@YmsSx|BNCIl!pmctiQx01b6jVdjW-!6iU$rv?6--ZTLhT;mPRVt zVJbne3CP!!&GPpyc56C0f->LfFkn&i4DVITMWNYQ1`T-9`VGNs`aqvFy0ipbcdELi z8wcYP7%9PDsSlh&n%c|4D!iB{c5=Fr^32|()pJ9KL&u19JIyG6CLIGQi2CSs3BOp| z)yBNG?F(uhFHjJJtrCt$jSm0JskMm*0Vc)Mf#*q4&0F)m?H}|ba=RtnsjXhkbfsYs zvpQXGz;W zaI+^uv|^yN-+Q1B9?plGd+TV0#df#94f0eU0Jm`> zsM=rYP$l$lf}k*v7LRg1%H_<=M;ruiupPLc(uyEuXSNeb;~}7axfRSl!Jn! z?~D+)nBdDg|FsRwVjQT$_z5X^qM}*mvy4{8ZcIm54>fM)_Qbe60lHbWWXN@ApZnp! zOhnILVI(;&B728odqZiMBW*0dJm@hdr4`SQX3ZsHbG z7f4zg4kXvynFpk)qP#_>8cZ-IMaIfU`09yX+WKg4?0#&Y7f!8uf64FpP1w7}ojbLD z*Avgu-HXE)?S6s*PO9zL1+|YvN%T%>#eq%HB~|C-gR!n=vPG8kS*)M#=j;rK{2W6E zEA_0Vow?rj3@bw9&=2=LeWr7$8Y@`c7rE=Xs-d&gP%n#~RMOUrU`^^9#NFuDaTao% zs7YbSvz4ICclnG{((y#9Y3-~Sk3$lDQ1EoM8P4AVPf_Ezj~{P!RYWFY{l}HNJ6QG58Q!svIUvQ#v%&Q0yWqd*R@t((S~2#qc!z_qz;poa2VHIG z2^0!SpFIiO#sPE^lI{4Bsf4$wbdSPt7fUuZewtRX;=({pOd-J`g%2wp_s%2rkwU?HK(Dtm37=%dr;vE+59a>KKMj-VJ?>GZmpb)OsrKicZ;MZKCou)Zy!O-t7!!CFiY6|^ya zO~QwJdmL9wsi6c(JU>K8?i_gX_5tg=z=a1+f4g>mR`g24a7o7PQ*^`>BVAxDFO}Xc zfVIPa8;4S>&(v{Nb(>f06)&SDNNa>2j#m3*@MUB;j5AHcP>Nc3<;D~Fdan?7Dmw<_ z>_)C6_S+P*v{PhP7OVQO`X88;5aF} zz7Vb1mjDQl7E>5=?b_#SR$Zp(tk%E_*tc!ii70ZL%mKD+Tc>iL_cTvsDp+y ztxsbA!}FUk4O6~>JM-IB%oTgWvtkm8KFkiJQ8G*qaMHQ2eXlq+Da{imS(zt@y4 zGPq|ymw;uauQ(44u1}n^A_t(2>k|mv==p|~h(a@r0T>6r?H&&|<0T3ErEe!z>mmp# zC*fX5T{g~nd zm@`9Wzv{AS95cFy7UU_m?Z!v|k0#}Vy_PKGlmZgD-s_hN`kV?~F`7pM`Y&bBO~co+l=y`3no&x%Uap-R#_s8O8GppEJc79NMM1 zr9txc@MNqzHIfGkCslnvX|7s#>|m65C=5#sY|bu$RnI9jCe#e3UOd4I5QZ^H=Sibs zcG0K+-sLM33FT$-{Hfg8;NedIERvV#rUd;szL!M6#O`95aK?9vZ)1AkWzm#>IgzPd zJ)t#;k0%i@1)5U>_^0pZC4_e#+jcA>H;c9lr?3j(pn7c~jr9~| zYM7!_@D$MxV{%q;%<(el5Q6YPvI-G$J0RW4uHWxO*BpyQucN}3o7QNSsE-`c%ftNzq*o;9!bJ|9hhe8<>K2b* zHhNSV!)T_8EmFDz8!^ThfLwXS>3`U;_F;#5DRQ$+%%12vfI%ayFhz=1lX7H$(yAwV zD%5UcE~NCQewCP#G)T2?0R(Rd@PAE&Q6gII=pXKHX7q{Ug=r5xHnYJ_bOLz^Q?~?9 z{%1D_uu_bXM$`xNexFInh;&cTR>pIWRneEiU~L^S>=rrrQkpQm0IM?{H`xK>I?Oie zOpc|5UdfiBaPAS?Sx34l%FdV|xC7@$=4fwSyt76tf;AV$fg`TC-yFv0Our?Oxj&mx zhAh3=&{rfK!IukTP-gZ!+muus&v9M7b@|kHU3~{K1vgae&Ox+0mCE|SIlN_;a{*Dh zqhZkzvM{MQ;?BJHzXyds!3#l01M`WJrCl^k3dWz{NqZ^2b-=V4(BoiJT_V0U;C?mC z<@p&U8!DYMv{*XsgW&3rH#pBo1RvTI?GaSuaL>=2fxEp~)|Cacp0zr5^wNU7y$y7^p zQW7Hua)7<(v$^-_^`LP4q-e*&D0)HL$K^a}pep;pXLd@gI&B&|&?q*{1UuT}ZUfdp z1x;2E`5b_Lg-Caphr=ySzX0Qwe$G8e!g?Kh9H78{*^NJ5Ed_Z%L<0XdDUt;#LL!X+ zju^3LbCq#Qg6VDxTL}yrs|>prbq917X-}lnoquunDOs=M| zczEfmkpZ=_@`cjeHUs^exzC?d;PI(M@j{4xFOIK5KXv!Jy~Qzu$*|7_bX~tRh+BmJ z)Xl6K+WF#Y^n7}juPJ8ZwqYI%jDs5 z{!W4oAhOs7VOId8msk-ekU&|I=K8r7u&b<$! z=tm}h6uU;9B3NWT3pCcdz|z0zNS6-h1_;8X$EmBAQQzK2T&iN3jDsui)LDjy*m!8e{W zFyKk*;4Qgs<|yNK`Vy_mC41=D+4Wjzl2me&3r^S>2QVoHUgFTn=Xdl+Z}05fo8Fod z;9+T`=gaWQB=+#ZtWQPWZ2_62-@Yl?D{BhO zxpbT(Q*Z4T3(WC|MR1P%{TJt5+}>>6AaHcu>l1ZRZSD0WV$YqBxddyb^)*va#^Mi+<5g!{Mk@i8YwX0tDJCPc6L z(o0Du%0#?a{!y7_J}%i>S3`bx4n{M|xf59wqfnZ`#zcmqYN7QN?8C+Q-${?8y>Z&z zFy2LEy{w;*-|FT2dh(7TseQ^ofkpL!t-kRn=@C+oL8q1S^S^LOKYzv9hVfB~LfZXi zwWBJnosvN;%)I7f9_b^`9mC6APlZ{qD1G@##bd?&t|pk2QLg56{E<=hBCCSST}HD# znXzDKy4ROyYPy(>+_%dPXHn|8o)l&6kfN$8JB`fw4gXYbmBJQQt&SqH@=k zpdJWaTCDWC@DieQTcRxLR>k_lfGUexKC#ZO3m0~Al*7rDV*;i78bi|Lo$<}G~9jo>8vQw4M zqx5MEW{Xvp_PzQJ=)x*9MgJg}!EKN(#q?0PApy;IfgBhAJEb$De6q)ZSp2ju0GNWh z$QbrB)k1x^a<7p&i>!+7u*Lu8?qH(;&2aozXs=k0966$~VYLv*@R)Xz@UfC1$k@+& zBe&eU($!USJaf?y1Uwa(x?W`}I1GN#a&g#Ou5L?FWX%?iaeC1lsXpj*=xEUc$&A6Y zc-f7D->N~VAx7M53>3zkBf4p8dtfW+*~D5DHpclZXKEmSGJ)>GKTS2S4oXq6O@8lj zmZ&sR>9h@)3=p=e*V1QjaBwgYYU$XSEU(jGj6v4|fji%=8GZLyZ-GT30qY^mK#i#u z%Tc~!OZdj{{;R#MsVu$BE*7ga3k`QkZL)4j|onm^z7)kEi#aArfrcLd0iE4#GDW;+Ffe54^VH0o@G1yX{qg%aY~|fy8@%$EOyHo zITE9;WtAK~t#t7ep~+^{kX%-&?P@}A!acUu+YS`HGxg*zG)o-{_9eRM`qujKqUe(E zIYCq%Zaqtbvp>}@m5%p|5sAhV3;sloHAV23$5IF*`{g*h>Z*2P1H9?_Zoh^{x#&Sf zc76B4jVEHT#0+sO71l>!{^bKOn~uXQJyfc4_Pv$y`U^<~iT6L<1;YAyGSvl!M_=E* zlSK(J2eE2$MH?FK-E}?bddUfFOYEFKUr-bFa#rpM- z8jTPEynRccYLyN=tzjL>@=RUI*xX9~71`D zda@A)EzPdmbQ7|`lEG9<%OhT!rKoTL+b6eE=ap{sg&kQ7hxBxTkl*klzjWwrDx!AD z20mfSmRBWi0opP8l`|01LcV6ZMOvCyfG8Mo>5?1|NWUn{g&AFOW{94q5P3@Bmz1Yz>^YOY&b6W`I{;*xD>k4=XaM`Xz$)`Cw zI%+@HOJrN8V3WUtnHEd^8BD+1LhLX*AY;4p_qE2)i+AoJTUuWJ1VsmSD{8NGxSk~S zbv<=K5~ikVuL+#?7I}E`s!X^NyG{dxN(660sCU|Ai$&{ii-QKIk>h8O{*^DUFCTGo za#AitB;7XY?`a(TY?}Ne-V?izvUHoN*1ugm;_QAi>f2aD2!~X%TvCkVHNFII=`G$q z{Y%7fsvdc`cu}MCY1%)2H7c?(56{jrJxzG{2~5~`Az_d(CrSn03_;BIb-qoBHEhre zx#&VeOo%((o*4A?tH^`U+xq?z?QDpflzwhMpZV)poFjS?gn?&&sdj^td_}heKxjPx z_2Xd8`hd8I^;KQla+vF3n;t4F3(NjO;4C3Z13CEI`SULZnUF~2*-{3W45m4CfyJNSdg1N7gOgN@*gNbp zS^;qEKH$pq^2u^kyIDt_C8R}A*82sPvw?tj!ScO3HqjV%j-1@UX=rO}>pp}n@su>f zC1s{K35oS7iALYqJJ>UPMMi@&KlcrC{IBG1SQ;ZI^+d8^&cnnc$j`FOM(^=D9Tel8 zI8hHJj<`!3r1ptKo8=$A9J)=fs!T=X(5Ke#vBjgUK>^Nq_Oa{mY*h12r20-iGp@V&q?@i06;t z;G54a7=JMe{mTvU2!*EU^S0UT|K_y6$H2i#-zVgLb#eZGe~*~+2yV;c)lt3w>a@k- z;7pIkq`$l?|KWeo7(jH3od7cSf3q(C@yoK5t1!xxcg^ojlTfb+*L zpdmYkFH%j*m3a4$pZ)T8&YuaczUv$L=h|MtYlK_TD|ADIQ%aQ zljikTQPTSplT3FmwM%_+;JsSn6za}*LB{*ve(UEyMZ~aIC+1c9+pV&>@?~3e$`vk)~|HYO8Z~@Ag*2d?_e|nC8b`Ssf+5dg=?~CUbgUtWk?LUb! z|8qtE-wONxdp}p;_m|i!%0vp>P)t`N$o3(G=pdqY_7+M$QKr5#rJGhDzCI|UW_$Gl ztwT7K1q%;Pd9`{m;(-i`_wvYSIsY(J?&dQcAxnk%0~g5cB$~nnC#^JJa1WL`s(Moj zU&%8W@LVFcBZR;HVabf*pLOvcPyWxp6S+%v-}fVHq@l#u$HRNut8E#Y!dU!5tqeIZ z2lMtk{h1V-GBI=od%#E5fjB818gp!`waa;iNNMDI;$z=Zwd{xVofdBXRI+=<YSV zQy2VwiV*(K#ZTG_sQD;=u}Ml*&ijVv%@IfR(fp;PRK`LCy`#wM>QRCDe2Yo%hanr; z4u=(Tyof1}{xgK6)YR0Yt;vwP6S_Eld`w|%~& zuD`0l@gVYMNKwU~mpFgEM>nC`y8c=s8lX9}Bx*7u{q}F2ttEZDp*VdOzA7+Xh+~7#=s)fhedj20HNw$II)~+m~V9I*38DK3$z+Hy2wW# zBTKUF-TSw;1Rp$!58Xm9?lEXGc9Tiq?O^U^4}CcN)^Ja>sM3=x@EK;Z=(vG|PuSJf z1Erf~P2pGd+vCha&0a0p>JJvW7!9B+-kNhd%t8CjZ$1BM$mqy8Vc0>yV%gIcD0$ZZIjN2b#sYg%ansJCCI5Ju8yR6Jod6FilVlYzVo^Aa#ud zPt*9+Ic|rv_|x0PJ_3hEows7&hw+FD?K^n%rr#M2N4IP=4cNa}*b~n(TUEHk@!aD) zW3X_8StOU<`gFHSj^Fxat`L^q>|?zXzRG7Pg=kL@Q3m?hBdI=p zaW$HA#F+4{@PQIRt7pHxk@G@^g!d<5vi%#`i83Ew)b5p2)F1!#yp?}__~`doR$>Z@ zo9V(ZAtE5xu)7Y>z<7l;m9|1lLsgtv^PK15JZ5)~pT77Ec^6P8%eg74hbcm;BacA$nA~G%IM(> zA?#ZImsUqvC>tJ~3cAS=kW5+K$!oRqIfy`5kwH`8K!vAT&1KMsy6VHNE2{(c8@0n3 zrDg)}U;g@IeFXsZJnjlZhShwZywyU#KC&xK^*ZRWK4J-&M?JuTfwsEPe7Y@OkB-N3 z#vg;-N^w)F+6Leo(ZToo4y!G8dfr7Es(gAE-?qaF^B$#q~E5}_~ z7%}#FZm?*m)YQk=c67q2aYxZ*C$z4ntEn8#SZ}P#$(?dtCepW26|G!EwZ*qwt)Czp z8#EjIHQVy_@fi2hQ*_g937^_^n?gOix`Z4%XIma^%u17A#wx+*KMib_qZX{EK%bi}In_xLU;lVoIG^qYu zs&1%#X`MthM6IA?jHsY>U7bLEn!@g3%?maAHT?eEV~f@cgNDcL(S7YECzv%i2(tHA z#+hO|!_v^mifg=1BQaNH10N;}Kke-^a$;79`#4q?B6?SJu||{WaF_kHrBGT=YMHQ_ z>T-;$bmjAbQq#jDy9-Yfn>`hf=}(f1nHeG)O9xbJ_A-5AMzoFXH}|c>bB6{}knePQ z_g|Z*g*LlR$E?~P^d{@6$Gx|7$KZf zzue!;;DEv1THbAvJ-|6}uXaXYsXu_+gOR|ee^e_l4|!>Nu(UxA z9J{vBn>TOblro=B>|N$EBDRzYVu|o)l$VqYym@KDzst;yvQHP(1X)(|Di3r{ahAe_ zY?*z!=fjAoAST1E)K5T~kt;f$flaT2lnLk2N>4&exBXaLG^LhShcSMvKs=F^EU>?< zyFXZLJHI=?Y%^=S(9a8cdZ&if_~?Vn+$I;p8pF7~+^8YQGXRvEsaRiPH6IF8PRZrq*7h1~~=?d!{JTEf(bYF>B=odKy$?Sn&upGWT+t^z(4IX_vu_x#m>t zOv@Fpr|~ZMMhe>30qJ^iLX#?#%h=#eFA}+M)LzD=UvqnN$SEEKB-d)@@`aPqo|p!) zsK<$WkzK>roxdz#^FZ-`N|uVB)F)k+M!&sN!rs2)$Kqhl9dWFIy1nn>{k+LCzELy*>ac^)MO-=n5Xb z+66738Q&ApUZC*V?--{s9sqU03rx1ad|$2~%)jR`&QqZMk<@Gy#$_y)5-Jgp&&t}_Fk<$m3wvBkCfhQ*|n=shDTU_YCp#5lLS(LzfXz z3VPr_NR4|Cp~5I6-}IC_ab87UMfJyb^egMa!}0;|h`s#^4VQ!J8^${?Jz5^AA2e6a zec6xJ(l(axvAyuR>wu{60@LDP9!c^s1-d>Mw@j z9IYk*V9D$Um%!cwJ{8g8B&fP4x!uG!8D1(48Xd*&HG8Jg3ZasVLNRbwv z+8w*Q-j}f@b`7!?yVhv9@ByX2=*y}pl%!EoxDBkh#Uy#&ji(9sD?LdY zIrAg!$Lj*J5Ytac+B%<^0$p7q_2Ts035n--nAZpOKdPoEgFU-XfJDVrndw~+!{c(f zjV{K9T!T*b0R73vFx|UV&{lFb_xs86DSCcLO;m{Mvek<>Bm4*yto%eX%Csq-G{&+Y zyb@t`9pwF83Ezy;4AM7MT=x1L94n4rZS>xCx+)na1i3KoSr;jB+Mba77Ys+N75Oz+JY zIaoJ96{C||YK=8(@=bOh_7xpQ`78h0 zos5Lx>mtR?rnY!h>g^~)S>9(Uh3cjKB(OH*L-@4O4VquR%e^z{{9&0ms`RG-_CJH4 z2jHW^L&dfnItyd!lrKuy#pePtmYZvFZ;Qi zAPOxo@WA9wbIU-IH0q}m&Y?3L=0l2gtzW2yGZjDD1j>$dQvY=-JsMjeyA#USL3nLQ zt-y5Kut$i8r$^4n>a>VN<5|&-9Z*pdWjZEz2O_CN#q|UD&+Sa{Rk2Belxk&&6;PI*hA*Xz7N}? z<@A*c#;A7AWCen!1>0Twj5Y7BeyVPt33`^}YPa2OL%2V|zpXn;R_n{_htS&%tTwZ( ze%jpOpMq}IOWDRS^2m~N-}OAt_{`XDI7Pm;H#D*6XzJ`K!u`bz+V-zzt+cK$_T8k} zN8FQEDkn=K&Xl}b_Fbdq=`fOtn9;!RPZGsbl!@S@Qx__=_TJ<#W_G^R=6>l;ip1=O zj%jX?v*?1OS^? zst0~PYwX2OXQy^+@bQiv3o&f{l07QiZzy631EXW)Ez*{ECbs0?LxQv>=7EW&6qW>0KX+}eTxyt+ifs;lj{%$mY^8Zs)LYTq_0?`MSG^3W4ls$av3J{S<73hBrh^jS zG1tBXaztC;{Mf>H{kgV9lFa>qlaI;6T+VuY7Riu3QJc&;OK*|zenolFhtAIC?d~C; zsk4Ki`TOngP7yPkfOyNL=i;XxEI)Upe_CbVIn%6}&oFxJVW1Rx^L^(=Z!(9Ikd0C> zYFc#e=10PEzHU5U{6Y=bl~wBN?rpu!jpxY* zCrwy1Pg7o6n9k@G(jK&%Jj$z`5~E)5+*bcUg)VP@y|C=^q06?R5{MRW#7mI|IiMvw z$-4$~by0gdtN-9w{t6NV=A3La^PsDxho4FJA2gry)cKa7aRuj+DT<)XA7~uXsL_pm zTfJA3qY4Fmyf&aZ}3;U4H3)D@@U#<&eW+ET%S}GQzPM6MjoMOhWp)Du4 zPNCx5pQ{{MsNNjJrhTuQ<*aI%<~BQEBXJzC4P zkxb9E+b%obKY9AlDs_*?G9m7Zi+7yS##=P)P{HN$?=09n`e{GTfL6Xsg9$PzH zZ~6US2dAbM5h=ljdu8P5UoS%iGsr;yQ3xd19Ezcg@{G&t>z0Kx5Rq%3gMJB)RCr;+ zS%NcXtoo>113+gNhLcOR3CfgwK{ciggZ5Ry&)~jlML?GqR-LXO|GXp+UM>&am9oIb zx{d@w)5TK8Ua6I=&HFw)^2iBY`IC7X>bnIPs`f~}6Q<>U=@x|9ksXS@gxd-W6oNP3 zJsBXf#+2d@W5!7yyf~$C?PSCG31Ti9ViMeToda4?H%G&RZ}VZ%N8|2CIJTx;ewmu%LI7Hk- zx2&>-@Yoh2^fm+2BoSJdc#R$fo8fZwhZS*Vq$p-Q(3_%s%G{f~+G!Y>5v@K;=F6me zX4|6oq;jcwE`d;x?H-#xr1228Sw#-HM-%po>Vy(SVO|P)R^4kB;}r{zFMC(y(Tx4h z?8vo8mO{%d4SvY;JL!^8K-*F23!ul-PN*)^7_=4u_s0%RQu|#0_4JfhnQ_M5J`CFiL9}+T22uGubAtc^oflh;>l8 zcU%S(+9kg}CKQp_<;Or4;YyX>2B+c4{pPl1ow=9Q}MpdEuCS^D)$B&*WN&g^p&G$R-MA6jB8p=GphAYiRtyJw2$?HM1cH*UbE=|qyPJN>v;b?j5?k~&Rr!Mp>6hfPz(YYr= z)ct66dnQIW-5BGouH#3_)fHu7V__zUYzZ0)_Ut;CZmWCCHgvy>rdcyxxfoHvyEiRK z8eZPq73_L)B8Z|ltL}=b_#Edf7x8QKGaK=LmRx^z)Bmw^zKX-JxKsDUj^u5%{Om8dE!93K|5^0Oty(|&Q|*T>BlZCs94}8_etiagEHSL4Qv;}^>#QY@ zD&$zsaJ;T?yOfRe)12JDa%^QXz(k#oZ*JSPwR>|=w=~ab{ytzv($AF2lJcyFj^rJg z5_R_uCCM*xJ8YUO&e0krQ(oRAe?U!4!`f|MYnyn%aP<2A)gkW?nj5~?gEEJZ^xLZw zXEs06p_9A&d@*;2BUQ4-HWy@T8p9$Bzfk@vl;@1cI()EbA-i;wfauvmf5A@{WCS{+ z%%lClhAE`0>34DB&yyq3*6)Y!0?N{OmhS-ICOR8L&jP?lY?rO)3l(cQjEFu_@>>Nr zVj-Y0^cNL5RfMLf+~n%5(=mLy)uW@KiKG3{IHcpxVVoX8N^Zpq;m5&10iH6u8R}&$%tn*^Hd9~Zl9%EfmTgV*0=y`R zR@S9y>lM=jL$Z;alZbv@X45|N#ZBpvH^)+?M@p}O3KQGUu7z+|BZEtKie3!9snoGw zPnIvAv(CH2bkAw6RyRgIUbSSq5c4d*Xf)NhY`^pomhRZbZO+pq@_j<@sazybYT&AC zJZt>T&|11;;=~y$uA-Aei?iv}n19ni{PjQYPl1MkWQXKg(E-p&lJLUK_hQiBRc7KM zUcLJA_U+qX$Ax4jL%kgkNSlySGTFPix$&*H(pVnsZN7O1xCNqbGXJ@27G++6DiYqp z&@ch$w(V&-A8O&jHLQiF=n8Eyb797na*|iP!&(>fA6}76A*y&P8qlYPYGzQ!KS4(< zikm2dVhadnRV%*Qs9|`Ovae*kGbHDSh2On(>7nKmMA;{dEGsIZW0qKKZY)ifXM6xK zrH=Ap%cgjdH+5a0Q(nC`ns~iN>u5=G*I|d>OM3Ob+cB$qpQ{ti=leK!gH^uSj!i9& z52f*cZ*Er9ut`sL9C9I3DPB&V2A)Yxd6;;t3&&!y`FK6BvR7%oYHB#7hgL_M^y7b` zEZP7Efg@|DhJ*6P9EO!#5}Eeks84l1Cexsi58KE+@Mi$&(ib1W@cHzNQS=2=hKWMZ zO?4LGgWDBvGt&0$Sos|LRZaRBg=ZZZ)RXgby%hg9T*LhzSxpAGXY)-`W(uqqHL#-F z)6_z0KrqmUu)p+$sy9?5sPZEeLRgqP95}&yK2*%0MfV3iZs@cAWcidh=(s18<`>C7 zc1hOXcoKJOB=5szZcoyd+$z{CdByN%MXbl_68j5}OZ6w?45kW!tYX)$Iz8Q)5(I|n z%UxO~noM$^X|T;1Ai6)%T!2|WQSh1vmy-XO?afZas=%SDiqtFJPEtq>SmHM6d;X>l8lHOlc~#8rZ28uMr!OF% z>Rj?*bgkl9sNbaU#}^dw_pxYTx{CJI>+XSpkbEwQr9JNa$^6uGr?Er61LvnIMi zq9J-f*gymp@Nef2t^M7`yWoi7Kez2c1BiNu+%LUG#pHpvpX6CXyUKD2qU4Y@nO zlJ%;Vy_FcvryH`9JxN-s{6We>-r5jnliN#D|s%{UY!M3jcP3QGKA{7SWNp@CH()O z_Fre?9MRMDk+8$sKv%Ga7Q>F@Mg{zb-2MRR%(cJ%VmRBEn}S&AR|cGk7R%s+6QK@l z-(z(FOfmBIK$ROOi!5UDnx`KTy2+<1Jtn)UL<43Svb5sV>O9k-!8QAp+UxOPi-{qP z;(VK?HTk2`3zKXU$vxS|7+k24qQIPJCYYvIvkkZvR{w1aUdF~uK4HSVNM4Jox3%!n zE2iG8m#eqM-sVBYAZCNhazfzr(V!b*`kZJ%PXCNWFDweKAl&Rr@Adv7+g-3T5y#IC zKf`-|cNl1t4J{&SUL8%VykRA0%}qlF+X?^Wwi0V6<>#klGcQV&x%*uGm#yW6PeL;fEZ+nuNRMYx60><(}gzr14R!)~GW{{@Yq&8MpOGut)r6orq zV-Vkymkpn7&tBP&TbkNisqnv)Wn9g&>c^AmbN=Q>Sv$+wo8xu<=mg>k`TeZpFS(qx z=QFg%+I#}=+ZXR#zK!EJUMF~YU-0FzLP5$PLDi4#>9RrxB6R|fB}*^zJ=vhoAeX!w+2En{{wLbDs5?hn zhm#U#@>t9Evh-f+q@8hG8GF#1YZydeAP5FjtjYsK@jeYG;UPJHt7Ar;$pJ<^U+y$T z3NnFNHK^EjmCtgzBgs!-z2oT$%&H0A#Z=Hu^Co&aVzs&*!V0?aO7% z!FW?~k!8v2MJ^3=PY7C0Ej@n9#;e#w;d?U#L7;8+7PYGw5%|qS9!sBr!vQQFrubP46rr zuiE|ccKdki*ty>13xgk6gGwiBF5U30F7SP>7P*@=T#!@Zv`P+#Ec~(vwN~2Q| zRhwvYA9fL`8YSM0?o5Ikc5b6lI6hqn2X zDBS=zq|7#w0;gdpt!Kh1eSDZ@(}>fXt-4Z`W5;_fijN19M1FmXx*+MNA}jSoRa{e6 z^X3B^Mm4rS5s8VYk+mEiIMpjqJg>`;idWtz{}ehCyKyK+>-zQ1@9?1^E@qS32fbIb zKHIHrJQ$AukHz_1fd&exR`WMgd%7R=LLS{DjOmULwtsdrf_Ww}8W+()NYa2$K2{G~ zcl%w9xZ!XCz}iFtkY{CcXe|-BH4U7}limx49y1P9Zg=D+=WHB|Y>yv5?s@Qg*ZHe8 zHqFAR{6qW2(SzcUD}Qp8f57yA@!eGsXlMzR5-e)}GZOZv|M$Bh9K5{V#Af>Ix%;0z z!?`G+p73ni3ts#e2meTcgSYG^gSr2Uizavk;(grWX*Kr$;^1X@ng zCD^gdfgY_5;Ye(V6jVKTU53IZgHb0@$ZAfhH{UE49Cc5Q6Sh9T_4_P<(-(=euWKXV zp3=O5DwYoap7k%^-+qGkRDvoj8pV26db>fF!fi z$6pzHw>XV>ImcpUQcTi6qqP1Xd;b|0RrY*=!ir)55mbVLfQq65f+#tgKt+Ng zIp+)_IdlUu7>J@Gl95c4Brdv~3@9eowHzcLA$)4S3^&+TKCs?6)RHK0Tg@^uJAQ5ZZ7^^JBO zj4x+&T{})FPyu^bA^p+_ARKQ1!TlugXAd4ccmi5`=I*28VbdnEYHefz8jcG8k$r!7 z$Dbdp{#g9(&O{I>&xGjIygWAxKm~`MNWU35F%MUjy((Qmc?Z2MCI${YaO;_la|T&u zw`0U-LFdPDvSvS;2%6e+3IZA4j78LW`Xd7j=QkeV7uZVU3-M4K)Pvib($od#hCHCE zb2CGyvi2-cHFe%K+!ki6K5a&Dc&qEy3qN#en?lKLM2&1u1#C?&Mn6>KHEZv09aT^g z094|@#Kc4^r;V5JcCs1$4^Q8&fgT@I)9J;zx#xi53m$~!a29e#_JRsVMv3!NU6@I0 zp(=Ajo`cOyGy2RT<#ST*b=g|H+1;=nZBV5-Vg9Yu=)Qaq+2;nA_SNGe0gpf`UYHA3_S~ks6HGs69QO?v0fLK=2orw4qtbI|(07F0^=w-li6c{vUzUS(h`)t&fht zUwTwI8aDq$rSUG-&?fsK8Qmw4HP!P*AIulW40Q zbkmq@SX~F*xsR`}JUR(*kUOZmXAjx6yva3fj>?n&sDjlWt_@Z%`T!^ONva0mKaMR* zZUaI%C%TY8e-RpN7#kX6G_^P#lOE~eq)`%t)8DP~o)}b}Xsn<5 z`}>cMgcU8;UPNDqeDgJ^+^@|%Du%-3bRnd+(}5A>TzU2MFT4HXL)U>dYV_0*w3y=G z4MDQb;<8tSUj)=B_ud&_r#`3hYEWpQb&B?W3(GquaUTjY89^R0F_{pqk2??3=c(4v z?rSYi-DSz0J=)IY(4HiBdJHrzswoy^MDZt~sPzIeB76)c?>r!i3WC4gy+2$#mW>Xj zB1_5zsRx)o-8A&fVX_ydo|A5F+p6mphhBv|$M0+`j=EHX#N$4aaujPlXpKZH27}s3 zJ(9YFqfj&SAs+~QU0D^W_Dp=m?{_FbpX>nmH}z5|)SpL3Jd_6onq%iwb8Tqv>{wYC zZ#_f?=#I|2(3VUv0biJD(#n!_JLX}Bi1qL--N8;{DB8_}-qPdJGOoKvH3VIj-`q{Q zQ<>x~lI7R6i0#8tR{4#t-n=pn-H|V#OCPpofpCb8h$-O!m}%5_V(t_%8H-@3-$L&g%>l0Ysdk$*0-l9kz3|n&vO$rT6*O;9sitv;Wc)>@PNMUq7iry)4Xf=v zGiF!HZOpJ+}Y^cJyR!=$L&v zBqOAaDxK~v>H1A5Co|r(*`$Pa8^8#Q_llYhwX5Wqd?W~EpwdhZ%k6kX+ir*9nn!In zXI)Fto`7?A=$q_^G~D?pUE>Ds6H=^IJSHvIvz-$CVm{{wX*k`;E=!*#bE^Qkv??q7w6nRuGoBm?n}1hytFPG}lpQ6FAlzWbN|J zxscWxJ;*RlLwyvAuI;_WKs^^2GQe_6W)Lm&vs3wu{^G>(Q~$b+H`{v^&`#wK--&9M(gh z2m5vh$dq&dLd^1s0y9~KIk}L;PV{x$c2d~q*wT zBKN;s&oaZme(PYaa$Eu0eGVUXYU6BupJAMcoM=lmc+UND5Q!OrMBoR2Q`Gt|h}d+; zuV#PBXgx7k%A%J41~0r0nlGwX_)FFoyDS&a=kKbZSGDQB!umdC4zrX}Dl?DxBGr7e zSD{iP6^9&eIZH@zj;<=RUIzT8Cg|k!Tb&`(@CO9-B!^tQl<4o!=9{VE+x&t*h7 zTQl;^yO`m~fqZ3^t&)%QGs+o;c&)8gJ#t6tvyywCFMkZ;h~yV9dyxV9CkcbxLaFkV zGC<9Npqm>VSFeus@Jo`P&KVo=LRRtf;O{?vn3e-(_sM0y$$8C4bNsF5hU{F&x#3_m zW7a!HjlD|Sjad69$Bs>uBrKs9N~XsS=Q8z6L-9wDD)%pX#eXD5b4$Ys)s4o9mSU*`ksJ zzhrGa`eyYa#A+_ydp|^VoSMJgOT{H?{?>p#V@}JgQS6Y>EKB>cEnc&@0ex~p86%c0 zBB3y3h!?^^tQ79o`U!*UHj=j_yGX;P)KIFK9%I>88h@d{qJ@K&4|(LhKzfA4D#Voa z$P|Sf%!pcbtHDB!z1DHH?f5%hJa`=mhdLa@Zqb_Uua5(Hm8c;gaFFl!phRfzSH&oY zXWD{4a4}+PRQ+Yfm92sm#eYP*$0A6S+}X)anIy^)Wb-Q2>LA#<6{p+Nn0TA%1|)Cu zwco&D>d7wh90bTB4Yw}%Lw^4z0SaTl`Za}>b`}ndAuC4&Y!WB54SG1El0ILqj^D1B zY#e87FO>}Zp;hc6>diDR-y(}8!z4$SOsCLP#at;=qe%A{C-ZRZTdNYoG*K0Ny9xMh zvMkNy2Jv`fDvb$&`3RFeYM}}gAZ_K|bv#CA*iMXt$0WbQB!b1ow7dXZN_^<9;YHBoG~@sLsVn__NR0$6e62{Imz%^y42R8I9|D!3-!$u6nDdjbS4 z^i--30yc+L)yj2bv-2?S8u?W0ToX&9Q!kJ@I{bCtI&UWnYNmKh29ufbx|aXj{2cTV zyCAArU?=>3y{>tu^=Gv+Kbq8Hs)mg*=PB{Wqpn@ifBA%~{%%xmZCc4xE`VS!R4cUk zIJUEJ3d(8*q4MVhib)z2hSbPN1r@aHXj^il1EX@l`+q2Q!d=->3FYAcIAH{P6@~Iz z=Gy0=gjMOd_880Gr03N6%>^V@7jIT7Fp?!GKpeNG)b-BUb{`ki&pUJ#OJJEahv5A% zl!vUFTt(U(3)UgcSS=!&sxn@viD7EaewRii*7_6+yL0V%JZ|BT{qf7f{!~Q%KFWH- ziPcKmzkr(44L}77?Vp=(mI>XKWY?gTtPAp+Bef{Mq0ywkhdEFck_0U!-IuB629=AC zU|!iMT+x2qS*D`DZRCxu8}j2Nw0frA4bww_e52S+yq>JexchYV zi{Dq;V@o2?9Hu}cy2@DE7h$G(n|80BB_*bTg>fT&wzj6I}7 zpZ<3|byuQ>!n>0S8ILO{6cdEo4rOOOs4qmLNK&;0SyN~rT{iY7>t+#k`gIkn zx3LsJ3L-vR*JSF+4YICNTWnJZlPk(gcG3lho7pm^Kk5@96UfjT(lKs3=^C?zUGFDggB%Fix{v>Jf6?1xgt zQz5tVppcV@4aahaC< zZo8goV?2;=rHlL+gjrNxV@N1W76ANBDhYWT0^@}_jL&gaFG2UHVuZuMUgd)OaY^fI zfZ~U=sG%MpMusI=sZEvSJz6`_q125NjhyP~XA4KZV6kv`x7m9UpI)}!$>4^ZtK;=m zeI*^x9d%rWOnd*~^W{Dbr3hz#rfZLatKU|1Xv=rok|B!(-=iqgJ{wfWx7sWO3p&om zt^qrRc^e+Yc7xef%z5D?Z=jrvgFLBHHc7UKoXU*K2L4(_h61;CwN*^v(c5wuLs`~i z6T)|6K!x~PXSOjD?%G2*x`ZYHeWKmi>ws`1!=#gR!gi(%$N-x8HI=*Sg~)R%V;4M# zQrhOCBF!QC&DUte`4NZg%M$$m;;Ik;tV%a~5L z74oL1RdboP-MabWjJ8P4aD6x{&~13p!6K#v*(7KVQ{nQ`ajw|edi}R1i4ra|Bn>j8Pb_?I*KmjDa?GNjIkISx#AM|LT3M@H(XB`vM``-bTxGA|1T?nB#nKifUdOh>nxbLU13tExTUx zN(5jwhY=%uk&kT2=|`TPQ{`z~wOO20{TRm zQU)S zsUMO)4?z_@1eFU1@{2UR5Rb|sI_NwJ)pb95!CRhnkU(^>eq7?OVA5M?3v%gv_oDVj zciM~VT&hR`6a}v+oZ`8*zk?=2q32&Kn58PF_wJBr{nSkRxMe(rHpO?8yCCA2!0;CV z12t8Di;I@&9IoqY%#WQQfpd?XAoaDk&Ezy$Mm z$nXpREnI}#_~m=nE7z|kMm zSTb%#^#d-jiBhb0}FAZW+{v854bUU0+E^s+zQ5BU?1Rre#jMZfh=|tPn_O z%P3+B2_TYwZ4KkD%mkUSUU>lX?dZVssgU{DNG0va|c5<>|6@C_)*^I)Q|QV4(5 zz|>GKV;x&7C&b~U1}h@mkyt5KG1KyVD8c&`P1Vre1AwXHn@*6}g(d|e84BSV3m30c z!;xKU0}Mb91iuZ69{MiSQ2I%UUgY*kp?YPzU*$GP3j;3)v(uDYD|x#y*-hszQ28_v zvBq|;E1XOfNPTOIS*#btet@FhEj~5TAV{T9o>OVDDJ5vuewlJWr{0FW%w*$&G-SWWWLoZTLIoxbvarR6`D)Q=~Qu;=#YxKY`ZLhWsSvZMKE!s{!nE@O3KwDXd|7vjcH zRQEw$pqqgQAWCrd@il5ko2VdKO=u(R%xRUHpXRn+zH%k?+T8fyAd~fQZGdIzO4V;# z;dZ^6d-v_*l2lnB2=`4F{s!kwgmcyuK$q=;&WD@PfjqYy;h@x<1}WI)8w33}@7A7h z=7;JWPirAKn(`tbDbS|NpHqy?1NPN#{NcO0Yl1i|b7jK#8jA@c^V&G&YRFRuMQh8G z-4u8jTXB@alMEcBazd+NBS|xefurv_W4x-SiK3ipEAk(;sV&H-cc7|L=338Zm^L@e zKp>#b8){qfh!)qzqw{`GqinKi^J+X+70-4%5|(jCkx}I+aJzb3;%`9;y0pjY?F=a; zoZ=SMRWeqf9nOUbf;<4EZ#tIv*+&h{=Z5R*f>=|g2p})(R&*vI8mO)7G%PU@>qB*# zm#C~dkZFpQ?bOAmHBuCa>_{WD$6#(r(=;(^jP{(cXglzjAVamss`1F5<(2=a&$~Y+ zHL7eSAxs?8^9*;}`T zv}Rwt?w{pcJO(9Mz91AtQb=Sq|9ktV_db(vx=I6b1#wXpMZre-Y zbcW<$h)oAuY4TTg7FO!3Vh)OzXfCO}ardkyCVn9=R!DSQ`9L6Ttk?11DE3_6V;p+0|aQ3d_$kdO@|b_NNPXT(S4JbUMn zw_3v?1`0_l#m#pM(`hI^#-Ce3$S&wbkO zf8-+b9i_aC+;eSjrups!PIWIu61s(~;_>fDIrRD@dmRRSuODxPhjAx2s4tZkb|pQq zhN5QXr>RFr?_XD#;Z?-1LKUEv2%RKgW6}q0wV2eOo1Wbh*~^g>M=tL&Wvb~-Xr|IJ z*Swqe&d?C_oIFSRDc%&oh2f=NRGm2D`D0%`XdPSCs23)lfw=4K|N#!IH5{WL1+-Uok*YkYtuv)$xFr?+P#-^p}ueU zxu?gj>s$mxpu5!jpkaa)bYe5Cc3v2#g8j~$G9|U^&eM5ld{e(aF6zEht9jC$3HU%p z-tK!>*6*QALf+MZOlK`)5patKL;KbYkfP?X&d?Gr%&B^OI@T-g?7c9e$7fSYv==ax zCiw0V5gPtH%AM07)(Xfh(LO0CEDi#{*cbGeMO@j4_Yry!8LmSAKufy2mEpisrq&?{ zVb3kavP45ZxmGbl`fVYhw+o@`#TvJ9Oo1*6bK}4yRR8+?fzruEcY`F>57yfA7?U(* zk_YkJH_yo*ka;_+*40vABSrEUIicF;m7G?{qS?VM&o6yxn9}0bIeDDaYfRPUx(?!; zve^E4C?SPT#osK4^Jr~2YKa>!a=nc4jx%)RJmI+<+I**c9nNCjQo^Q^NX=GyIh8!% za&Zd2Ad0fRQf8Yj*;S`rLHLdU(#L&vUFIuOWUCud`0U=ZU&7v16}&_-j)+7BwAn$Q ziy4p=*Oy1oCC`SHCWJ#H=M^_A5|;$>y)F2Nr==sY+vXpdgW$b#>q;S7=Jm=v{xnUj z^iu3S8+I4XJpXy^$9F&Td!|~SE6J1NUQr`nee1Ei8V(VRf>YUY)6XXHAtJW|P~Iad zxb@&FjU^ApG3S0ruQ3H1Nzq)#CR5&&!EUHYPCOGi|9rLK3hv^C68k0`Wg+)M1ux@# z_vLlThpxY_>@Dddr;a-||M2rj zyiihnJabwpZag1a^yokpUzv}Cc$eHVKQX!7;}t@?D+;7EBH>dQq4|dgD%AKEFuNV8 zDQk)4aw9>xUIsiSLa`AEc4rA<4a)= z;viK`c=~0(;N(+zCF!{vb2sHRZOUp1yiBAQTcNn(-URa-DVX^TxR zLJ->Eq)Ya>f+kMjM#NJjM}n3silALCD%Z&xUcV+P$<6S!@ zk(R!LT#7+|BK&uKj%dAR(n)*O~&W) zT5VNz+PXOtmNZlnC_|*QF_ac;L2ccAimDej%rhR^R<8o3T#r!z`j=kK5(x_sp$I5V z0M;EZX=yx`RSJ)MQ5C>anlRpR)~y7(rHGR>Sx8HwrO*UF7X$cCsZwrY>*l3~y9InD z{>_irv)}DyQ^`I9ps1lqbO@ZhY0?IL=VOWH#kE2l@>^KMNX2-qv_q|f85g-F>V$vR zT0|^~;B@b(at;z&G;Sw~gAT;%ofC%h-)_({-MdH3GT1DMI4X28ApP7$E8d@s?y+xo z|KKSkC*TJu#KXVuK0|oW4=(+_7jeTuBBF+KuP2ZE$94aFEag>bGJ4EM;P)-$mv4?b zwR2~b>gA4$-@n5@fBOfYaON>!_bwf_z5ENG^xe;iNfLUG{g!F?gP;8ANW!bhQf%Ko z`r!OH$YlK20DkwhZSF5A5{;icx;uOECA+G|$7Wvpt=zqxh?q)tdtp?Vz%MnU`|H74 zrX*lJQtF5;bzq0Dlywhzuo$1Ui>O91)%;%VmcA7(4mk~7w1x7Rds-7DMwrz{PHgRK zcZM*__GH(n0bOiMPj)xwIJT{13RAvki$-J=4Mue6wc78^g@5_x@?07Ux86llt)0JY z=D&Xt*KJrMPh{DDWjfDrxR0AO2G6S8&idB2`zF;_L#LtC;<8Hl-jGm$IR59e#Ztu} zrsey?()Ew^qvtOuy{`*sG?SWC3iJKya#?UsY znXqtKO-t%t{>l&ei9z;hVzT3pPNO%a$|Hy3a&5arMjQL*<%1!J5+(t7qaG20%cPpc^K)f?*!nyrdR?v6;JnAvr=Ivm$ z&-bq{{*?#2<6tvf5T5*{c6NU~Pxd|BcCDE2;T9c>7y@<~9K+&P1_Va$j1Js(LgVO_ zt&U15xIYBB^Oh!H=N`%oxa|Ok-|MZ8iY9o!(nrEuoA8}pN^sj_n(Brvj!GhI3hI3o z48JnZ-(7Q!O;+x`F6+wcI`#bQFC$t%e_QwXJ@aFY1!sc_9&Wa(a%wPeOU~E(Z_1aG z>qy!T`Gju1i0~ILDY4tHbW{%vZVH@UX(+sZ*3(%zyQ*IlcxyJ8x=G^65|9~u49hwofhj8Yxh-PmKKBrX*2WA(*WvE6ps#ZV`Q{Un#8G(*BriJVFsZ6EmSw^mg?7n!%Bw|o z`aFWo|7|E<*N({>9(|*}q;tg2>Q6JujsizOsuMI9gS76VpZUt#CIku zqWQF1)~yzmBfWu+JCv}|>ujo1dp5Fm5el`3?0c*v*TcwuzPi3!l7HGm=s}3PUPvDZ zE3%x-&tDuVGqO3Es)~8bIb{*|w9eKqp9$>Y7yqWQDcR%pZ$uS4zH z3aQT8h7iR_q`h5*H7T`THOMb@^@r{F^T&VbA3V$uX>tai;4g(%c}m3&GvX2#Eqm9N zyWZd6wCmn@U%EO;zcI6rE)E$h9w)?W8KLEBQ4FalIbETg4{eU-)T^Kt1&;{oWQBA; zP@JR0W#G2tv=e1vaUWD!26$W5_LxPqzr$1r_sp~!4T}KLh z53bThtma4T2oG}^*Qt8JjpUi>q8gn~FM3R{=v|rF z`E>rdjPN1r;d)>Ha0i$9=^j?m=XX>2$N8p;pz*d!b-Y<{}NUEsS{ zX6+PoJfoYVVXLM0!fdRI*G61C?X);~#P}9rg=j37yrA47Y}a>A^toa}$;-a=O5ZZC zga{;0*T!%qO{G6_t-15wT$7nAR#;+qM+1~@eACy;NC$m+<43S{<}P0v$T12LBBF)% z*q4HoG@7$hAl0c4c~v#14yumz*EtwhtXIvzO6Pb(fo?T&KJhx*(xeDqUo_Ym*+T*6 z0+fA?+jjh5SCGchibvQx*nIk}tVQ=v6p3j*#xFP6`qURKkk0^K@zD~~lfUML9jQQf z%%D({KzhW!cN}r$W<;i?rTIa*bJ!B`rLlT&9vyZBTRexnClC$*N{M+?>b%;5zeulW zo3LP8oOQxlNnOWsg@>zGq#8m>WUV_!Vrk79YKByis{=v0kpAOMFkSj36Z&67_9EYn zq~TPlTft|4x(zXlix0_q&X%d$>%!bwHMqyAr?+@zhOw`hP2<(PPHkk_v9$HEoEb*V4HLT_^}N0?gz)h4b0*?M zxgtDonU{2UF58;WjOUFRP=uKRz60iAN>Md=slB7m;Zjpz@SR3lPtaRoEU{0xP21k1 zk;p4*EBGZ=X+!cQ(jU3LpLr*-Ymm?gYPgWDRC=O!O+uER%(-KBXy%I?`n|5d)Z?=p zGIa*eP`r^g16IEEq=f%+s z!qFfo1a7`bDci^j)|jLXEae9OM#e2YY%l5Eps(#@CEJL0)AO;QlKWigx~=>08G0WD z7n~5bou)G_&1k)90lP^GkKJS`_N5Jit5ZexZ9~8@7)-#ZVWL(6!%*q(I;+WPSl_*C z_*^&ukIb^Idn7?}Zrm&)x*voB$lJGN46T}BzX(z20i?_xTA z)b`6~tLAj%0Y-u4a-+Ud_4V7~0=7Q4SFv=8_Q$vwyY&|M=xuR3K{+9n|;b_nhLdzUqsY5cC?S1~vY~E`IVmiAE4m zdTAh^pZ;^4$Cvf*{!a_w&p-alKmOk`iHS+09eL$nR_8~%iDYK>Y;7_Fk4F*N=%-{U zZ*6$bkizh0Dv3Y;@nZeSq#Tny0_!3$qu$`g*470ZA*G^oMC!qhP3yaZ#P{zbrVo*z zVwFJXsh_>i4`<&!lLDd&Z+))4TOCSR7e^+{UT$q&e7X$lg6(DF$)9}1Pd@qXLs%F8 zH*w$3;QvkB_oMN<&Hvwu+q|s)Z^do$hu|t(?pATtJ^SWuvQx^}u3_K5FmBdu>mt=1 zLbaY-y(ja7v|PhZcRTa0s~b~JRgYhLL>n%#OXXLb`hoxRx&ls)ukGy_!fZtO?9@Q$ z8VCtnnfP?uK5EwuqK~;!#B)GiUZ3lV+~&N|8Atbp3EdShc~0H>;$?gcx@x=g6z!GW zOB^f4!JFOV-`#%pQ!y0ae9(^=iw&WN95*UC*)$9N4t?%DmUHuqh8}N-i)VglZ^l^S zWaBF;%E?)1KNfp%-e9@l#il1|brB#bg3dC`uqu!^myYD^s^7Yoj zvP2sQ%Wk^vekJ;^L-)_uc0UMZ1oqdJ7w&Ft3If?-3dXS8=Kcz@zcY=W4wUR=!f`oU z>EV_R*aXSbjxj+mk^#i2T=lt|* z6t7~~!($ZvEgIvcCU7(zKX8ga9Rf2Zm>u(-*o>WCH~L#K3Dp(;qVzIC_&f*a^>@3j z&=n3w@fmHD=*%CFiI%}ekkt$R^rtpE3ksvN@ar$1vA-RGY&m{T_ z0eS8KJ*!Sk7fz(L1Ew(4rp)`MgjP2r!xK}aqbg57rHRN;Y>e)Q{;3#1+Ppn^=P550(`ECC``+r}U1McB{>VDcD?Qdb^;*z zJ~FPj=Fp@1kh05~+p&AU4>Ux(n7k7KP-=_Wh|A%{pC8ic0FgQaEwT!*5t5t$WP}55 zg$-&0&Y0!iQ#4mMN=xVpOa>o`I4wVlwntCTOtHFB_u)U1%{<4t2=AKjvKZv$`@#0` zQ?Ga?O3ZfqYLk2bX)H@AuoXJKKwgDK)ElwX!wYEPH;HMBJRf6TELWxQTUG~dEc6BR zlJ?;`JLt$nH$K1KYt=!X=KJJ%0*}BTV)5t!L)XO?rHuRXYPgcfs_~^>(|Lj2TUno; z)PMtQh}LiFbIx&Zd&J;$CbaI-ZhA^ceAnlKDgy;tcu6hxCR9`W{doIaE;8SGMFDJ= z8kD5{SkozvH!dr)4$Ge(4Psq4oKw_`cAMq{sd&EE*YsD05D@UOBK>Z>Vhl3FK zuD*3@5R3DNd{Wi+-AA96{Eq zKS%;rdUKS%64n7STL4PK9(eC>nIfIWlazpJJ_%^}Mi87cn>1bnjT}E{LL!{3(F07c zH3XEmo-6HL=GU99dYHF2YvPlz#Oz69-zmCiS$GAVK`lt{9}GXDS%i z&)18rPAY-!j$IFQtYR$KHV**n!OR+VZ%Wy;t|o-$+5pXmO-46u|W`OQ>aXNp{k8iH_;vi@jr`s!|^bkF^m}@;+_opAwS>zut z-N0i~?);cQVdSP%|Pf&|$MzC64Bd8QB~)fc^?nlAvwAJwI=2Iev$ zvnE0d-J}`K`*#e!ViGC-=qw{(XVZOgTE?nn)PvWt$547T;nmmqIjafF>gvWAQA+h9 zu6@3inLAEz#neN=F_Z*rvAb$&K@CcInSW{uh6FPGUDrr>6Bgeel6eo*l1O=k$k*~6 zStPYd(Q`nJ%4+y3uc#g<{{nbx%~?_RNDd_|mS7Paq$gb01{wXs?R)v1mZrn$EkAK2 znSfw(2VMM~kC z6F}Z)MnpIG?|dlaH(&GcH^@WGM*6RocgcuMKfaz$Zqfr;??FGIlhX{VT0*$@Syls_ zj}Q&#>bC;+&4nnz$$Ob)X_(ST`uGrKeVsg_-Z+-z1CT)L9yE>tNy)3}?9s5x#iFYn z=o7?Ia*Shvoq>uP!NgJiLbD(E#uH=i=W&mjqAm*?HALm(7rW*zO=i^#uqLyIvs@uy z=NE_?2&5msxO!Logl09Yi07{Ljw9hTXT!qM3ZTIilRTpLO%4d2hdPt+CD;K~K~H<) zxwOF9JBI~5gXKg=!mOp&+wO+r+;;5$fRoZi(YZzNn5)Fj#5=~4v@_yICFYjG!MP~& zIfKMY2gt}+cY5bgMadD5BgFlT>Zj;RM%)k*2HQtJ$|dX-v%LFp3n{KBS%}&^pRu_k z@4U&iI94$IR8IagFgnVnUz2yQub^FfkFAASgn;ypoh52tiMFJC;OhL?b9#+}`}$eQ zM=aYdJ3%~bV(#-u_X_1nY3;$g88~1s)w9SaSdVoms##sj22>32P{JjTf4&RP ze=9t=3SRjAqzJZAEHOxPXo#Eli2gVbaO zD3I_0*L(uF8Qegb_5lh5yG6m!OEY}PAvcW@T!~V?(T&N%xu-^;LEj_6TPQphr#Rr* ziP2`HrP_fr#{iMqqr!AG1#0wp26c7xvs;Pz-?YL(A&=I4#K|tH(cKp}XKa#Q_00ju4v!rl^q~v{i?kh~e9-$QZU&Bl zw30nMRs-+Nc!^`_OixER=uo>MCsOk=$2-s7D&aSu5yYZnBrxn!h2{fa6bIUhsw>|d z_Ygh5Exaw)G)OupFr6;Xq-lrx)t`m~o1?!!u;ZUTXQsOhv09BM!CoH-@te3m??^vk zZ+OLJd`D>I%X2F*?5iLiJMi?%{wKPA{LF;#!AQEjkbm&{QcJiZ37=&j zt0G8xitPPEEeg*PLfBms^bJl~^lThu*j$D};ts}U;AhOl?Enap32f6v>I^n44)A$M`GPP$80Mm5BsIY_lJ z%dzpSgbY$86r0^AWs^Y9SYK9;O6GGYL!>4d~!NM zDLnzWgawsE4QJ0sT*f5f=FjDIAKXoEBU_R|sgvN0saNLp4q`iZ)qVkYohpUqoa1S` zqe4-=R)Sl3*VN;(CENn7hC?K=6j%_R&s3BqG|92*wyM^DJ7QhWe_GH5xL%bYiew#> zy^Nv!paH0L=$?(bv|JFkTTWe_p0F=1wnH~cv%u)k;&#+Q)z}p`1UGjz@^c zQp`8d@21Jt4BrZNm-Y~ao5iil3vx+3IeZ!J(UIjrf3zQL&(53(+`Q9> zTSd0h1^ca)qfUcM{#^+i-nkQ78dXiw?^)-8zedWjcBfcOJ-$I&;~51lN{ z*h=d|nkLyBg}akcxLBCUwM%MxNCf@HBPyE!x%73o;l+`u8Da(h1#VL{#c#Ka7UDf+@t zGHFslN8$pj#%nZ{pn{M&clKB~QKM=R1QU*p5VpPo=N|@a%nV?MuQACTTYIT$@dQ}T z{P(G{=T7tL4vsc5dI8XC5d00V69!81x=oVldg%po)OwiWnc>C|LU5L4a9XGa310>f#y|+oyg$TwufIHhIK*@oPkmpP5QR)= zZV24jh9ex%ur4ElgcwYJb&MaRPrV3-43N!ZNK&!cSjUsDEbl_ZeYK{oAh3SPh393D z!U=;D8lV{gKX`Z<1QPVNkA3OvZY#6I@(ncX7$hebJ}}7W!sRD8-r%HO!tHFK=Fs6k zPQTh}zGSc}pL6Opwk+qfirUhIpl;S8`!|yb47ig8zCyl*X z4`ynqcK_q402Dt+)}AH5;IjOcZ>igQa5Tohp0UO}%%@6UBhLj@)hXu5;Q>z z2}OH&yOCEU~trOM+b{R0o8DuoYA*XL_% zimAlZ_UR;bEwGbA<<%X5&q$PzOnYkMnER|_B<06F|F^iYM#;^Y%CL^ONx{%b$a>L zTBCZ`ujgg{Vpw|J((*qbSnZ1M7aj0o)L_h8w{uabTj}4i=*J{_Uu*K>{i`LYoMgo^ znnMvzBI{opeslO7rdik`kR#l?T^LM8F~g$ zmK)A%GXbXugYvrR{Y7TX7U6)w?6fq=pk8F-2kqmkA9P~CATl*_v3;lOMdq^Gb(i1x z&X1q}^)D9FnjjDo)ip~FoiTBTAc=4MjmN+n@+n4F#OFANwU1?0eSKj^NNLXbfpff? zm!_^W`t%Z~&d71AuZbnP@7V=gllQB)Jio~I>uxcM4f3Zo_m!o*%7^#HqR_i11ur<8 z_lBnt$``-->e(q`wlyO4&6}d6f7;zYez3s>vXjGI1(l>ujsN=6b3ifcdDqXdHOhyZ*c=RPsO5>P!dkJL{)376tCk(*NvNY8?jHQr8~#{iMg)%8 z+*J40ATVxXq%h}s=ku$#5~mVI<^Pup&qz%RXc_*3KPdD>DG{&TN>);=%HKSGv;gb1 z*jah}+iC)O5Y(98&r&7pl(?QZVSl~4`34oGV|X^xl~3{k$lSOe4A2>3u*5q`r*sK( z?EdV)Xqh_t6{n#FoTH`p6zVC|iET3NK-Q=4&|`+m7Y*vX*AY$%?7szXPA9#1AtrUh zw@vHY-C_Zx`xphzFgVP2jJC#@{!wfuR4_hBm^*AX%D^*ENk!4B`6rpB@y^k3q0^P_?_KbOjJ^6|Kzsw^g&mojt-%Gez@JTXtW`1v1~up1NPo)7cczN z2Z@~`X;DCGltYEGBH7a5Zr_i}SVz$N|gU691>-iAgMD`9*h23F_o+3NH zv(53i;}AY?B3K?tjZE|5=9S#^Dg}gUam~$;-2@Lr z87PL@iTJSYOxgNs-wzmrKXi&i$7I#_KR>_wpFjP>i~kx;76Jg_LR$yhriuRRn$32# z=Y=OMR%N!B8(XP=?V(8A2lnws^1`TvhkoC%9=NSDP+(533J zBVW?nnpNvF19&s|T;kZKQTu@@|8>n7Ljcw1&5kclc3QEDURwI;gt(itzR~)aX)d@; zW^;u<@eKS5t4V>>W>@fU;iQ-`>|;TTxFf<_vpO$;D5ND0@hER?i2g1j^KUQqH|u4& z3GO2LWtZL--9;|A3*+?2#?4#BU&FuobP7WWU}Y7H=f4Zz{B%D4F=Dcv;4b1ykm6f} zvP2Wy#s5v*_lEQ$S4_&7yl?c|bc(AjetjyvlKFDO>^LjBy*Tx9L z43Z){#VsCho_Z>#H%J7VW(JEvZ7>bF$U3Io^-Fz5bJRN3MZ}@a_HxD?OsPpjG={KX z-A^349vCUNyzE}PG5|*pgN=dY4but@#+78-oV78 z{{I2=R=#0~73ohogT}jy&ey*?ajb;(`hmOe8OjezwY-0JSk59kKC$4&w6BH~*M?Er zSq-_C_lFP3O?r6=M`v6;5YR3ga_8F9UO`DbdS6GN`paCl8iqx|m7|NbP&6D8{4%=R zb>u%;L3eGz+)?X-o2mcaI{RuVYjVr-gf`G z>Yt~3iepc&fRXdhzhT=-!BWgkOr9W+GhVi1GV*Vm;ARi;_rHkk2mI?uLq+BmVT1DO zQ3mq6-vHiIgjy-bNs3J)lMCeh4mmpdMk_Zn-!8IC^%r#5N(!dE8a{k=dHbt~@=|Jm z;ffav%`O~Xr~)yF&jaQ!o8xqg_)xBWhaJo|j2eqOcre`mwjKX-h*|DHFmNKL?poBr zy*@`oIj0$MHn(2!ol=#r*tHO&iDhV9b6fjh+I^myU4wRRn8WLAvxrYpbEMBI1Cqs0 z6!(>HV^T(9Lg5@sqcqzusDk`&ViRw|SIPGqN8&!p>3nR8o9V$Kc?rshithAX1NA#2 zkQTtc_dBkf$JOGpICfehVZV6{l=Zs03$-h%4lnh7$sc)rT6g&a?_gcy;DAJs=0V{i z`=0ppU7NPDe?%7ldjlAW@?OZm^>)1r)LMfk@mFywMF!@llF~rN zvCg+alh$0&_$;scYne5sY1&zbSgOe8W7hs20@!<#P?o*g*V~hYvEDd(ByW9TeR+lh zNu!8g;vM{2Ds1nN?)}}O`LC&QpQTRJ=-olCudA<*6lrYAjK7B$JMs z-BTMOC~C1*5q=x`aIwAbM(NMpp;_vdWEwOqD?L}`6R9-5fJ8XGKSdMHXo{hJzp*~s zrj&<7B;mQXlG9pzC{|a(naH`s=9MbdAhUprOMfO;Fi~G>$ zW+wf1j1IIsY>c|(F$#?ak3!=^!kk2}R{7G=K)04Bdt?Uz7Zode` z?C3=GBD?u9$9ps08zOWrYi@^mweJ+4ceyLXKN)FNADr-_Q|24?{J+fR4-=0nCS<`? zZA57;fg3&(j$Jdnb^UVbDgQ$<0%zB;8y1fV16K56m#gbSjb;_SeeZz@Oe(8gs(f;r zRb39Is{gG=)}r9_^8dr$dxkZcZSTW^1r@Oa3IaAjsUp%#a2!BDnj*a@jPxSC1QJmZ zrA0*qr3C4{_ZF2VHS}JD0HKFo()jN1SMq+>M^j z!0_$HHdA%;^EL)Kp@4k%JTrC;vc+y&wkXnHl!t3M^W=d0r4+49)?s2zH|Urj<`uRx zG&IylhDExKKCAAdrJ$y)FcnaoKNylgFMJOIM&|h2cXnzq(jpjVvS>LmL*b_~QBuO< zuGWl+2gF@`T_YCjycajJ7%_3)^0=&FE%cUkfF~*P#8OXI98TaxchSf}Lg}xt6I?h1 zeBzSYz@ggfsoco*O?0gveFNt6qtaRmm<&vR48%sk`JNnNW966J@+3~mYt`Dp38luR zsPWgs)pLbg7cJR4AE`>Mc8E@dnV8^x+f91fD~+2YdUc}l-ZW4CppQdKE(_X!IwNJG za+4R|eEw1->lTUBkP~f3nJ%+zusNRp;vDA9UG(qWwg$QP7xB(B7(jpDJi&Z<%v*G= z$Rs#FLi37-&bp@P`|4r5X`TX41u-PE%A1Du1RAogUl#m0((F8a4u8qQL+x@8Wldg* zK`=7$k#XH9`(n$rLp1;rJW8Wwcm$1F_-$-l=;A3p!e)QCT@Vyk%*iBddEAJE$dpTL zjy!9CHE@%<-9X1JT99dA6`P7t^nY zx{vh`B>>J9wAOA67va|}uzq8plnP1o9$W!;w6vp34O^U0BzdVEN74e_*OwUhb&tDp zgdpLoGs9K;I3u2yw<*^7P)+i~Hyc_(tdILbByd4zYSWK9GvLD6DJBsGvOpF{VjiF?c;sNatffhQhxk8BxkZ9PjU5R zB3v9m>KOpK&~dRC?Ugav2LOSr7Wd24V`~<*ZyqTHIxpJ|o)xjH6~YKG&Nl*BB!p>$ z7!3vjMKHt2qX57W04(fmje!KtW9)8u?v54cvBdo{xCo^~KkwY4Pwgs*(`~qW`r51! z_0Ax1t_&1;Yt$D~mU4lpUsRdr;K-Dqi~t6XQMeYMYmEVqNU!^F1<9|kT?AZs`&(rc z3)6Ce*<|rO`BG9-1I3Q|gka=x<^$6a} zH~vTSim1c;2gZOhWbQMd3Fk6T#3jNPuHs`S-9D2Ex$B`YLVxu~w1o)@Mmjra$mzl9OYKclsO zm#=Y3AF%s{d0&&`Pkal9bb&<&uxO5bWtt5sSNOpVfAZ1tm?WjjCv>q|XhQ)otfy$I zhB^4XUHIe>3FB93ab1*lKjWafwB14TAxX=Qr0k|U<%E^GJ_bHr?O9!&wSv_h&X(Q1 z_$$z1u$AWh3Cf-;t@5%TW?n|(PkETTc#V8Sbm!V*YO1XCyPN@Bn%%ChSrvi_*qCb) zsSP;fPgATkr>}^~8P|(a4=$^T*B>mfXnd?7F!mxb)(X&nmE88Xk+AN3sksLYLb2C; zM#Z;N3xCPM1FqKcb!$i17#LSl6N`{OdJRzIn{s>@V)tjnIf3!Kz39_S-E)m_whM5 zi3?fwoStYVh<23ExK97dwNVd+J#kPZ^{8uHXC!33*fBVzl1(nXFW=<-1F9FAVzvWG z_HiFZ0pWJ(g`!fSPiK5j9R)xzH_469&)vYtcN5Q>gBww$xMstqw=9Rd4O|T(oR;eJ zhHsAG8cGVwvs*0Mr7tkKtVQ(7;tJh^!}#?IJi{jpEX;fEC@r{;*LRk-NfiY8<2DND z>x$@@I{NK7wSFam8mF{)sXQn2Ujn>ket@o9(}rAWQz&a_7;LO}3je9)=FS$2L?V$G zw||Ab*NPGb)h~=JUcaf}vC?l>8$Voe1-9sKR0U}D^{mVMBzuF)L)OK?xZpSVmHdUj zxB%#M&Ly)-na&m^0T=DAdPI4N$;^b$pdx0VRwdPnU-@A#OMl_T^=!Id@{Y>U9u|Rp zDFyGr=$O$?EqT+up$0CS!XwzZDN4ft1CRD|4K72?j(9Ms&whxp;_$U6k|!uO=$to?CJ%RzpW=J5#U%|@Ou3fVEdlB*yvX0O$nM*J_#Hbmlro>dN|*g z>{T3Ob?N7=--GvSpe|L&dCR9ilt<^(Oc(th)XTv#j&&x)jm2z->VnS4NEm)fbS*5_ zWFh)$cFe08B)%gt=Uu{$sGHWG^6>T}*%r4p_c+nk@)C8r%ISxUh9K?reFmk@4NuDF z3Lw_58y%jiLFW$PA|=~b1w0xbM;^RolPD!Uzc4)$n;Y!p`Q;kuX9Kshl(OY-Vzm?I zLuImKB37@{@#w-~RuF>M4<+9AGxBo&U4J1zvj#BFf%V*Z^f)!*{2f12x8r7}$p zY^@JMG(RVte?|0#43rG63YoWDGGvvOEQO8JYt;ZK`Vlax_}SH+kRt$zdB5?k6t`x& z{z-Rt_tq@+*tGpCAc63&v3mVDA+vbxZP7e@O9a4In~S!*2`2Af$k(Kt-z(+P7}k?@ z_gY7)7JtTd>T*3cUEE=I~4OXT*B~&1!m7DWJ`3ai5;kD5i znyO{~at3tSf?|Zn=wh{Pgb)-4Snb07@&~2Hp3Rm4PrBG6Rd~Ggbrf+t>Rq;r%~elQ z16Ho-Et}TjP(tjlq_Q$%0CN+1&h#EzO7tC@xXd{gW)T~%5~r?SGx=2}p;0YV*%>hG zlM&eW8^2`;fz}b}BVUZZ8H8jZNthKBaGrh@18oxl-72AgU5U>g6Nq}Y4v@b`&dFI9 zM?E$N;Pg|&gv>24;K<{6DW}vX=$SYYJIu-grmzGQ4tWTQyH1rUBbO{M%na3Ak=trE z$?N?7u?TT-7+@}FDxWS2XVGprGlI{}^MdKW299W%kbRu?(e&(;c@8FcxsLt69m5G5tddy%X z)-%vYBd440u7#kOC@?=X#$$CFbVr7RRB-;FodK9MaYKnqG0`#4rkf8aV}2zW>S3?C zR*>k3ne@z%XARk*L^=Qm?s6glX;g7Vb$;p8YL-awIKglI-OQ4Jdsg$$AaB zA)ja4c^2k17^03E3PR4Eyi~rhvBcNWTNf&)NT9wNWQShb?r7God9R=w zx;f$g7?NtmaU*==vwM9bG51nq?!jU&56*CGvz^{v{Fm(cPJ!$Yb zC1tQ}!4PENIo6K->XnfP1)%f9qV;!)##Kp$G1p4F7GoRu z7+^!mZx8-_3?t)CxmzntTHLGQ;B6>XQf-%s63;+wuANw#%u0K^+$z5o_@S1Ko`hey zpqcG5Sh6ax6xg~*gc$i}GYjUN7a(BGf6^8F%R{!=|+twn)CH_2M^VmTN zNXbw1*NW?){~Wjvtv-2^yT2f&lo$Qq;e98>``_XHUE#h4e*e(CtVHT?5!}??`R_=o zS~fNL27tshZP&Fdc}jVx3TygBebw}%Z6o`#J(RCnudxOARf=wpJHc5@A@8Ld>K&d! z+K7GUy~Z8_#paV_xB7D38*#+EQxam@Y;YKi>pS`o)L>2DeXA1QDcsMWAlo4gZ^fWj z^DJK&IiH!`ZoN(??y{Wdu;l#{LIRxDqtZNotXvrj%@|g8Il*1M++#HfTn(`s<&SSS zVH&dD9~YJ%RyT|eK4Yu8Sj%Eae{yy^Au#p(GUu6x;2s$o^dOq4dN;REVWA!%qU`U5V&>2-k`ZYQKL_yY{g1Nm` z`K6_Tp95N)&uNSLHT7@+Z3^PPY*F#Q2y3&Xi22;Je*SOQ{jYEBeG1$-H;?$5P5s(i zro078d>cBtw%xk^*N|=h<)cIMv9LjsO+$(0PV?PMkMjn+8Tt@9#)9kkHNlgqSzzlg;G_OyzqVxn0)ABESJR zOI@b@!nan>cgeYC*3GdoPBc!BFxfiZlBAXB0y4q$9R7a%_8=zZ`Fl{@F;V_d5+>w& zS5jm&eR3H4d9tm-nf_?j?JqC$fn+oVS3tQx3EiYDFaH}A@`KL9t;2kEC8yE*DR6a5^3MHlB}4VI2c2yxX7v93aYh5GMolmIm)2*y&Tw$R3!EEAq*9|F z^L}UF-pZ`%>t(Heu`%BDJeSPKG3JhUa+COo`fu2R^S4J5-m%BvG*l!x{J+G6`bREk7fMfeCZ{hsW=LL|*$#aFMCM6_Et%tTeaNhgU6!lz?ntV&WS(1zP z=a5(bj1hm@n|r5FY67>BWxqIA@Y7X_{q{6}{cEl&I)##fc5>Pc|C(iVPyM0j$8!R5|>2&^Me?52i|NGmbx8c@LTr>*mr}O6te65RUxp@LvD?6&$Y?0`i?gJ-QfMhj%jED0jyi zt5?92EFMvaoK0A=Gils-X1~<}`nanu_8Kz_C$W({)}Kz$i~(4~lkEG8ZDAsC^`p

+(d{(kty8CyVR?{OYtUpjpFwo*x9P9S}werC0XMxbxDA zVEOBJxHZnf{o!SHrRdY2}&*PWG2V*F5Ht=P+HUAvOrP8aJAn=c@iL|cGVo@1YWrcw)YnZ) zay4j}mmYwJW_Qeh`ubBPK5<6_*UWun1Iomq#kP{yaZ+eRi}h- zW1=4&3c7N@U`ZR01yRU81YpFX>(@R?LD&4Q9g@1Tk46=7F_^Q~J6%^c)3DsnHhhCj zppd?ZM!PRh_7~czLr1~^7h=_hJtoE_Qr!OIKF;I9jD$BqQpQzJwJ*V8PB*%uf`-%e z3XQ$iCKLc33*)P0z%opjcOAvS;aq%WlQGx(>ph5bL-H}vcMLoUGe!X_EPb}FVKi(| zjtPG4SG#ivE0RSWutx~C!x)YmevD5Lew@A}!Dg}LS6?;@;4DGk1CU?q!<{ep&xdRR z{y3Yo;Vc0r5lgi*4Fh==j%m8(;<>$p`$Bn*PJ+9Zppv?VpG%Ep#(|H@h(O1;rCDNX z0_~^bL;sj@cbjY}T3tsWz*ze19(Y9B^J?b*Ih zFETmKe8$z}+-va5rx5zJmbv>E0eXzlMnQCd5eY9M+wChUdVao`Fi)9+PFz$iWXxx* zI4NYQq3>S3b^h-3&e8lauR07Tq*!>qbiJad%>7oj5*E2tT{JzN8vI@_(s&L!bAHeS z!74Qh7-jr9S>a`kRFf3L(>=_}94S%Ye`^m*Y2|p-&q4cSs%dXTlGV#z5aIBpypu0{ z04arEfz82yc2%)6ee94z>HS^l2%~|bIqZ0smtw`%2poQH`n<_&m&OPok)ab((rsuY z+ZMVy-ua@XUa-b1_*%6VX3+i^;3MhOfim&T54=+b7h0;nH%v77;canEFXJ09O|GEq zwYXUAC`}Jog!>G;(@3j@wd_{mN81z70r_>I*O-LTkX~|8t5Y9Zvp%eC2?Nv}V{I_H z;?ylj*vVuakGQ*YRKDv$D-CDzEjPR44^;F2R9wOJ?7{DXjQ@x8bXh3Z_VLS3kfqRP`+kuv7wIO%g+N z5t0rv3=dRN{|H@moAA-f(L+njVySUUoSH8)`pj{6IuFi=3aoex`{c_o+f6nK5+}7pu75BS1W9@MB)tY&HQ>D4* zNRmU(HOwS+5XCHZp{{*$3@&bqHEm*&IOSk}RG&PEoNs!Fwiqr**E8*$ zX5`U5ic`j)=1|$ZR6!2O#YFS56rAK7><^1$@?y%1!hZ-DQ{wJ-x|n}=!^*DuSfyco zM*PUQ>87%AbJ=d49fZm^j-xUBaADni>x!oG_Lnl7Y&g#g!nOmi-ndu~i+6F1%(*Lc z60wF%^d_7)p5eS^lzwaJ|77uF>-V>)Gz&)wb0WQ(o65k*m=pL(*^zA^3Tf(4`j4)>C-7kZ`J-er!$c$OM$t zlZ*D8U0)u%kAA6Ux^^fr_l|t+#QAJbaKnFZ1PcagR>LD)J+9RCFNr~*^AAs~5xI5t z;y?V6uH}h+m{fi{e`@61u%FqM*kxL!M90~BPYYDu^l~t|EW$kkI#Jh(GRn*od!4CG zUpTya|L9}G6W5N$Zk22_=s-vKEqd_Y@=8W zev%lBxZ$?kB$7K5%Kl;MTKGPg2 zVb<+?!2L8q=Ljm#vXd*^wAyc6A*Kpvso znl0?__?zm8;>WcLJ!|HtFSkEm(8H;GBE#WCb&}tpurt0fDa5mN^l61}Rbj4yP7C~>$`@KxyCq!sRq2j*oVzv*hpAqZfDtM^W#C?&Zp{jwE#>PtBQW)=M&O?wOI@^ zRy5(K1n@6NhQXKhZJkOg`t>&`NUOXhM}UL{D4Adz52x7{4qA>x#tB|+jaj_9{K_*n zgSGUH8hAwT?ZQk0D=b`H7Qat?dHCuya5EQ$4Lx3V7pb4>ONDkBwk6yrujJ<0$3E#F z=uf`ZpJr3nHvR&(SoO0}#^E0KoFs>|b}p`LnY&@GS`W)|rSTW~6)f&fmuFYk1#?#S zYBaNH-gmehUY`v63NhLWwJVv=ZNkwG|I>$OoaSL!YUE5?tN zyLZnRk1^v+XUJ8kogI31F`&y+4>{jP$n$W-_YGyQV%1^6HPt1~%D;7$LV5IyL^mV& zKc$GWJx6Ly&&~CpI$_6oJEOgRQ;&`J;3u?7_xbfumo(m*&}FvAxC{n1y;4Vd&eft!@OgGo^C{oMzm)ZBL^Q(e9N<=ArCr2)MT?fP(a zyP&#{m60z~8s}abBrvp2uZn?+pu8yp$k6wn>&y{5@Er0Z(zhzJ~j@nrxWZCglz@%0- zT{k55Ay&^074nAF{`alRy$PMy+fAmH=VoF_XOqIM!0l$1OlcRd z$>^&o0XuTcBuMgXOo#FQ2d6?$xG+2zDzd+I0B+M@rf$)REPN9kKxg4Rp{(Er?eonY z9b61HCPHt$M326;Z$8N>i|;KLW&yWc`LHkQ5b9Rs%jusTm0C1>Bd$M8}?ATXQ=E6@TBZ3Sl``gFrtKTNX5XZBYc8($1ej zX$sij8v*9gBn~_79A}bnW-=qPFSPr4%^4Zc9?-VG$zq2G(3+ZkwWnACa~waDP}4eS zP0E$US~!nKvc%R_FaiS?0HPr<{v<3A3&$9JuC4n)g{{AQz+dSzkS@r&? zGKFi6HoApR550V_`cyp@Lv&Q(79N-uvclAv88!D!clCCSXI+E-9{Xe!qv}c*h=Qyu zW<&eWzgzZ4dDsF_W}$W|Q1hQrvbFU0wNuGnr3Z6y?A{>bCmdwSX~mVU56v|%Ej94h zMu_F+&Ug{l`fX8C<@W)tyxd%$vvFsA$YPHPB1C*(wAx?EhW~&n;^eX|XgyG34dzhc z={@f5t{iiz#jD>2-ZSBGw{inc^O6?5-i3aKL$P%mZTVYoV1gjh^}1BzET2DBLTgLT zYlu>CzkG##Dp1dXkbFUGcN=eb!3-@dy_OvfsB zFSe!HnHmw3^b%b_AHKM*u-)rjjj7duEZtEhO{ZQw6Iu4S-VIZKQSRt<^`5>J`bbw^o%qK_xJ z3|%YbI?RH?kJGgR(7 zB=ePcP1KbP0Eecq?N$aq-%KwgOQ(7c#>o0_pvH7&6($$PylbmW;BaZcYBV(o?%P$cWL7 zi8T3VM!Cw}Ox_p?yJW9R9DCA#mToqKS3A@Pju4Mg4e)ThvBVy%E0L~EB*$3@xRPVi zjF{4f!fV+XqqMFNN8=lU0io_F$R?}CECexxP#8PY`FHbDQf>RY5)VrAJt@C*HVQhG z?{;@1Def|?X;$fMGQfxq0yN-ytirQ98*k&pSDN5uA`Bc+T( z@GY;_V#iPr;aE{gQjk**hBho8rO>P!4%f4X>N8~qojAhgxp38U${+iMmh{2- z6QEvWSNk#!?+E5{#zxp zbcPTY^y^id!4dxT1A+MpLLHg#&4KfhMeOG*R-JMC4)+vN8;IxoEAff)gXY-dI92lL zxAr7NIk zBuRRvos)rZQ!({5O;splYigq@-IaaDQ)18g+l%eO-?>ZrM=AV25e>l*U@wLtkM`?) zxUFTx0`d_D;u09b0n$qW;eBLN`J<2L+TxWWHs7FY0B?QMg|vV&5yp@`a5fJ&bK(LG z3VK@qk3eZo9ENB2J#&V+ACc>VM1nx#mz3}nV{YgA_>Ag zq)fD--hfG1$I9_JPN$uZQn>lwf~^JQ@)50LAVT6@L! zu)@a@9;-JqL(MQN zCv#2OI;L8)u9A$6jw)cUr>Z5&>J`dJBl45itwP89~~>)KJFRgWWML1Pr><9d+}(N*nH4 z-C8e5;(0bK-TI4jph-YQAKpG^KU}F=y+qILYOyaD+l(+G&u4-f4h07v%)KQDI@U{- z)~A1eATxgWI_mo6l{zdXTxi8aH@9XuH_Y)_kHoMG%$M^TS#DNk``Q%_N9iZM(Rdvt zde0;7>LjR~y%N{Z^%0lSWhol>=Z|;c@~s)?)~vpU*g7X{7j(i+f9w3DJ`rk^uE+Yk z=`vvLy=kUbY^lt1y|FEJ)w@Y)F81dxLcIMLFGTH1+1PBl4*cHUmFZSq7?jj$PiiWx zeJ<~N&wC;kG0Xf20pY^0PO0;puK?AF6Pq=YZe(O;bKJ~zpY)ye?hMq$1C?3$V#F!ZAG;lBxHq|K-d}(1~vMt*t&mx}` zy>gJIx2`%PQsNJzIBkGhlmy|b{k)lqg0x>;5pLEr;mQ>s>r+k47f5Ei+XhXaF2;M2%ATrSn(qmeGz`B!FBVpr9Qo0 z?sPW~8CZK{siQ!-elH$5VZ}@}D+=u_x~v6rOHQVdbkpyS_hz=l$*= z`yrh~IgA{gU!P)yPPT(HrEHM4`Pd}rf_w2mGqX?{n~^A?W6W`K@r2YGDNNEvF3%2n zr{e~B&AZo;vFc;BQf_gxq|Kc?^C%?ITL7_pGECY;lLr)gCiwM_D>I1% z@kRE@1C9;$5ETMDM1nE(V7aU2J;29Of9o_IwkuVSGuhHpCQm%e-O0S43x7T&fR>xl z&MxE1Sn1u$C+0(G7N;EUW9OW?L)WeyoIg5@TH#*o$gK?CvEuteQ(FbGBA8+jz7x}U zi$)HRi`3uCNT<=!Q#-62ex;d9I#Jro`kA6gXn?U<# zNA$b_CO|dnFwJ>W5b*y@*20C5$p;qJCPT8JcTtf8t$*0pX~_P$MeR9_*-m$Vt>1IY z=Cm+rJ)L9C)_|Bh5F}*sB>ZYDsQ(t{-sc8b51F%Hnt{ZSlETTN`i_~NA5N2e*P1^z zhfH0y9w@q)EQz|3svW5rtD4$|OE*!q*}uQ*9(~G8M+QA;rJ}ShL9LQ&wt+@8xV!<= zf|*ei8-6x*F&-VEosiF~Tfn6|A;Q&OZhQ7`8ULT>+_O%7ETJjLcJ3{X;4?eAf6Z{e z1tViLv-eACi%Fe@;y6D_bA|PhPk-K zZ9nke;<=g&RXkmT?JtuLb5Y2LAAV5&6`~#Rt1`V50*(Lu+&{}d|J%%e?#CBx|DULQ z&+Pp}R0yc|6C}95%TM-}dwT)YX*qgQ`3rE2kpABE$Rug4w{Keq)Ex+Y&n!A`t)0_K z?_1OBO}YhgnJv!@7g@@o5w1srSR*^(j={zuIl?4W*mgqCJB7R3APu^a#5bCQ;`y!w zLy_;8rXEHB7bE;O7(w~Htl|Bj>w_(Kg3k~5?tNErg{r+Z+gtzvA;Sb4dR1nM);s>g z))Sc~eeF1*Kf#OoM<$2j4J09>a{ybZzEtl&-I*erKQ{hfYxvbrs`c*5S#VsECCe&> z)^60X)leEldS9DMeY+h7O_NoBaRGqLPmvzfA46pS{{DKG6*mQ`;N)yvxsl#+UBnX$@rI+{Ihc0c5X(LBuh1!KrV57yOpPRRGLm zjC%QHbuudZoGgaL-(ImjL4nL3OALGlAhSPi7XdCSUH6KAFv#ep7zy9&opg`|kJpNN z<@^O*s%(MEC3K?W?SDFMzH^G->}2t2H7Q00i@@)^{I=8l``=s#PJ$%;&BOlw z2jBZ&r_Dev=QyFRbK!d#_`iIcx&?OV|6a>K9sm%c0B^dS#It>_^LH%S--0(Pa}>?L zE`9sTKAi+Lq6l{lhV49)U&Zx%A0F(;8{YYkxBlK={q5a=xfu(ffTVvK`1*CNGCTTk zzqsqW9OQs}nX!iWd{NGy|Muw}bL;;L=k#Lk`G5h;kM|Ly0>a$gT2>De9JejeQd zOPtD`KVj+r_a6S|ZEjx&{oY(FSvEg+bMe>uWikM65sN>T2m7A&|FP)Yz8-B#-)H4x zmk-*}_aoaM|Juo~QCOYVv58i8-+b>+0?je520)m3hRIA)ROa7}|eCLB2ntFfq%;qc;^Iu2#kEj0VX+dDY_O+=%ccO94M?%gMJ>es|;m8T^=il#duJ6-?C;%LBAY*dhW z{qzSj6-3dRpLO@^r>y0DPJ5ZRHv@dtO{b&YdNb5prpb`=i^-{$<^264ZdM*t*cF zDji;rkC2*GkZn1aJBnTRlB05(i;$JtmZ7EHmZ4gy57D7sp*^xboX^BXOZ{}BGdJO1 zPQX(3G;}TZJZ;$=n?Ye6F(f}q((!{t3%~9o{KyV!}O}MMCf1py8ORBq#Xs;U{1*VXf%oR*S~#L zp|2l0GGxa4As^m!K9+Pk9 zI8AE+Ggz`u^9|)WD*UdM+shRHc{0;)(M!FmiVrk*3?5D#I{l4|dDl>6p*c7FPN020 z^ACGg)wZZRk4E33atf|BUWG3OKL6%O%#TyKdbGXC;CZ0ZFtAH$|8`CL>kH8}ySf(E z&>Fkazq2(yU~7cpcNFc@WMnM5`gKFU{Xoa@yb~hth>wkn?=u?_VL#3B&8n!V^Lc^h zM4~kJwHQ9q><`WV@jY)K_j7tkVOrV=*xIc8hO*DIZBqzj=JsEBpt7$eWH%7+Xxg`Z z)g3Z7bA=3z~5uGv)bFPdcp}yiNs1=-jPcZGZ7&8yl&8XF=FYLKTW)QoN0A` z*@nhSy6T<4H0xOFBE~LL=tieo8zcT>X}cr1Uqku9nzprI)Dfd?y+@O3Kx&Vge_R%QUvp$( z)(lf5&h^)Ee^riP;8mNak+GdtEjjlLTAW^5X^8yzrED0l?*opX^v98wC{o^F%j<8& z$yC%3nMCpMU8|qu8-) z)GMY^oE6)2xa9+NisvnAr+fQlew%-o@F-KrH}#gc`!W_lY8+>roStm^;XiF`KIi8- zWWHUKq4>SZeN_#GXsRxMFs8-LvJuyi0~1PI%b;94ZEAg}iRWu(#8 znybw~gDJS4^aBILqqNKZsFSPi(H_qIqpq!JMIQ33yL?31zL6P$5Mf>K62%5y%Z6Jh}gsuXnx5A(gkM`6Q%@raF%U7EOE`(=Tqsk}xHYN&Dq5RTVN3$Au#o}s6 zxOIysSC*Ik+AQ&eKO^r@w294RGqYv>yW!z3l2)4b5uE7A7@#p#Ilv-*9!5wt`eSvC zWvg^A^D?wq8e3NOpwy`m(8BUY3T@NT|9CNBB*mw;Kce5=5{~oS_>=zRZ=tjd4M-;_ znzO{A&8heR4ARyC?6{fJ7Dx$KLvWqWK3_I7Uxe2}Jv)S4^LFdrhr7`4Qs0qWy_wA3 zUhOjz7AD|mO2l`kzKrxeaPpKLynk_~$7DHuNG(;lb9s}Np=v;@c`8kZzovm7bqav1 z<`y!CwTB&RSzPJ;kx(Zbt2~?Y?_dZm)r*Wn+fCu02V?C*@eLrzxV84Zz<}cYK5<2B z35OyZC3ipFgA=@O^W{o=tYk(tW zUaxBeH0l0@C=ze=xJ_i36jVhYkX&QKaRoDcktI7yoNmmR+%DOwiD1oY61J~Ngd8ax zB%{mR+)R!`63KRHIQOyET0co&HkfwAx(}Kj`y=8DZ*uk#kinHJR z)OJFW_fLR$02j`C`{oYIF%Io@Fnm_o4v*ddc#d!*x?{))4VT+D-T?0ZaA95}Vbewz z0f(xmp7=KwXbLy`@)S!A0zoDbst4Bxn2&KvpG-~?il>2yS==nZIc^G1A$9`^NiQ6X zLbGLUky}%>(4!@7&uTd(k5D*Q8zV&^atNlAG;B_Htc%AP;=`?9PdV$*i+8>pJmIxg zj2#7Yw*x?ri5wsVHeQ*0VgH^?kZsr9j|rXvEnP?36IBts1wCg0;r46BSn%$p_a}*h z^eMw+w8YX>LPCc9Xq=+1hE|REt`&>1aRfWRMw{EsoCCKjL%6yzXlF7FK+!~ zzN||rn$p37C;|?C+O%9$V$UI_wKM>QYoMqjgf4n4P{CfDkPM27DMwBbCKU^w_&zNnARzzZb>e4;7 z%>^3FAZOHb)h!HLVNE;)uOLnOaHx!*Y(F#SzUWwSngCdPz3msfD{hB1L2h~DbdVDK zNb;avhTpquzOT}a^4#nrw&H0q2`DluXZ%r)iGkaP&Fub+(pS90rv$BX6-jS^nTl{F zYmHW5{r$Bvtog(N zN39@vaf^IYKa_(qE;^KmzPFfaWE9NE5t?yh_qdtq#m|JS+ly)mZ6dP%S^MzmZ zEy7~_Fv8B00KJEW@D5wlvW(6!8lC93l{np0GpmXyQ6F&9f z$hPxX<^616)GL*hW|>dqN!;~-Ns(#;gUsMx+sfkcDJ-8$gb>`_7p;WX40Z0#7wp_q zrAZ<%9_j{-f}T3MLmm06@xgv~Z!J11D$E0Dh&}3!pjox-7HL(p`a?CH@JLl(S`?h@ zBf43h$l#A`KXLQO{WGg#@fOIrGg}TO(iN}5BKF4>_F3LOgC8hf z9!2q!O^KulJw;a?jFX} zm5#Jm0D+^h^zeM)g;Kq0X7l@{}!;_Y(b$Dzefx#89S& z#o5G;TfrDoVifBk>AaL3&`v}0k2+vj*q=)glRejh4;q}a+nT+wyLMYe3RHo1O1tYnF?3@``%Zhx?n3@n9XZ*PVw(>}b_0sB;37Z%%?%Mji z)M$_d&M#Bn$sRD(pTD_ypUZ6!nkm&?1eedyW=qwmk~C``C}WmqU7Qxh4WI#BP-deDqI@+&Ay_W|uO$tp14S z3CKTmr9A}{R07M63g?U%ect=`81m0RBV6xGUfp%`&5lUkna8_ZRBw1*<||qlP3gYD z)kCTeMRO}Hq?g80y)Z zXMwiOp`KjLX1a7ITy!(eb=*s89y0u#5t8_Zs^9vUo%mXyJC)O0zWq3Z(?=@P72q2EGhJl-3`e}Brv@m zO^fOG82GrUVp6_=;(rPnea1`I<~zBYH&!@}M}vbM8WNE(4)WTTZIFrK7MqP!-rP2; z@#h}OFz?Foh4hlBC`jN?BBrs$`TyJMQ>{1mSbGDRj4P&NJv) zs}oB=>)+T^y~S0^&tHK38ro^*T=E74N{mN&DpW;i1najE1EM zp1o1LLOZlHf$^&zL)^PKu|HbL`NsF5c<=Ynj)C%m-Bx4JTfgYr(cs{BY*=Ay+tYxDyrhCf6{4AHFy+DjW_y%YKGY z*HNhiQ?&N_rneC=K&gRT{@!{vYT0+Z(i!;lPjr(69vWm_GHs(?3w z%fN;Xa@X9eF1bi@Z;g>%tg7Nng^l~>bj&Sc3J^#G*gZ<_X1JF$X@Zc)Z;}sfaSm-f z>8{m5l2*jg3S1R@dD83(!#?-&7j$&XhEQ-+iotv^y9r|-5Uu^e(%Z7&|L9Kb-Z3=H z5;KQn5xgV6O>3@1$=GPtxvaQbhU_q4-rchM325D`N_uf_6hx;JJ|%~wR_@Q1;)Z-W zg;wAAJrgn23-8>`=mpUBL?b)6mFMI&9Ac>4V|>uv^W!o5dK&4nnhapASC$7H+c91J z-=$P2T%%j4&(K1pS^vT0t4O>jGD_$5!&ZLeM8vP3E+^%lrP8HxqUjYsux(|I zd(%ok<~pu8V%B2f>y@*FkE3h{RPyI0n|kTWhK&fd#_HCgvwMct`VkiW%{DzL(85lk zCH``v1M}KsS$JBL<%kl0HE^5D&HM%c3fLU3CH%aU?5x`Bd3Pekh%7z?t@m9*LWomn zpXyDlG!%F8(H^?S#P)1#GcUxnx2E?7SJ9AFrqoh(GDKu(r7%Z%;+_|NK+Gt>A4Q(q zs8h{+D(&SFnvOdl2)d{OH9kf5okK`7tPgI<=oB*W8=mSW&XSIlnM3xx4;fiY9ob|D}{Js?U z)`^HfXAm@H8&~@kedaa_EUXxBY8B#EtYBBNBUiF%F^ZrzMrTLwBSeW=Me~PJy9}Zt z!=t1;sy@)L9Of@yaTs_`e+eBS#yu>|QmS^qV4%3ZN*>~%Yj`8lFCRq?w5ugl74rr&P66@?EYRk+#h&Lr(m|9Y&ppG@@a6NOpTrWZ@1EuQch+ zXNW)cHDIwALigZS(8?|I#>CftaYpq=-xh*CdC@ytq|q@~lpu`kpL&j7&S+!U zh=2AbakeX6FJgHU&4BF|7Jv<`EmG1f7%>=GoipBmp$R1>bxtI|$FH^^N8Z!!ir^*rh&x&W9+Ttn(p5J@qwTMVvq_Fii)({5|W#(AR!=KiU>-H zbZty;R6szbRAN&J>FzQJ6=8IbNq57DG5DTw3-|rm;Qjmkw}+0`&g-1(T=~47*YM|E zy>lpnbxirAopK_M$uRtM{CvAwAuF~i$E@sYJ*9^sl>}?NN5ren41gTwPZsa*lYckE zZr?*Gdfg#RR8=OKcv*T9B1{6N5Q`D7m|W!wV=pvknB@w|S*Nh3=2i&C${-d#h*j0S zzvyRX^AqgmmzlKG!sEGIXVCecvmpt~j{568jj918lUb}@d^HSWWclOt1OXcEDUAn? z`PW`2cFfKzPf6IJ^?k=rDP*kV6OJCWU*Jj_YIS%}8R;`tU@_F0B2#p8 z>FbLl84r7u#X*imo|r$kklE)R(hzBZdCUCqYJi_{iF@wyXCa-`7a@vK^!23NS1fJ4 zjpDT*Pph+7h7;7F%)9cq4jS0x-1_mZ%l-TNTWI$IyFHg)(f*K7A0?R_v$@);`!2q?uh-+Kj`$O&P9Pe!+SdYe|@VOyvks1YZ ziLn<(fwi9c^vx!$FNS)S%jIyHUTJ6e_Vx<4i#}!;7518D_|orowOz)0pKgHf{#?Ny4uUm@{OnOTUoMT4m40$RS9Y_nRM!}uMnf)vl z(qD>qr<8v?vD3p~=r9^VaG_fj2nn&wpVG+Q9)ffNr90anwvSVU1xSS%Cu0dIimlwb zYmWNJ`SJKzH>brDu(aH5UXmHSTZcMNl)tBaPgZ+EBTPynWf$`+aGGbN?L^hLtID~pTQxQNi6@tnP z=tg3isP5<>z4XDI$}<3YpmE6YeQYl%ozgOHv$TWiBb=dhbwJmq>W=n~O6~n0PXdKS z?R^H+j2fm=83=&20YzuOZ0~k|_do-huK|9ef$@L@8LmR ze^_2lvenC50385!BA_s#&-O86cbwgma~!93ln>Lh4E-aR*k+6#f(2$b7~DHX;e>OE z)!B!Za^dn+9LgOJBp38w(S3+4Qg-0X0u!eZ^5d4!u`;gWQ9=11@CEP0a0UPdp6?8dRk zPPD6?|4PYLx>4iRc^}FKD!rBh5K@(wGX4Ii{8VR2JyM|Nu#8q92rQnV=uP;v3t1`Z zUF(k$vV9yIoCqo0FKR=H!PvYT9ICu(-l-t#58y^YlyD;e+6gcs1 zcmnneR4nUgO+S%cRoIig60Tskn3FRBpum-`j`7hl=Z^BGu0t(AC0jz3ojm})xppnN z>6-+(Y@+wma1dyWeHf#M2bnfNI}xpmsGNN3)8{KW$!8jPQk8fLqwc_b ze}sI;2J-E}0jFtyTarBotlNpNt}V2*+4ix3cWQ)x=Z@+hd4(C2`A4YK?=!et!r6LOI&vUJFY zyHk{sbxFvp2c(xu>v@zxewY5E+I?voI-yBEI0>hb@~D<=@^SbLAtHi0GDwihlBuvOVHO1i*rGb#zyCIkn zrmtcl02ae3$`!Gr1klL7hbcQ;j&A^J1%5)C>JCL)i25A$BpzI-c#x(|l|Q&0y{)rR0TgP=>z?Z%_62f5P$&3cm8t9+}6>PeSkfokFkIPPjk5w%1L;o`^1>>DY-;6 zWx$@`CVoslzST|RKhA1t#1R=ADCT;R@-6-d$EY4am1>HtR%W5x6-Ow*y%K0x-tMDw zqsNrJjcsoGk?yCg*6)e}hTfU$YE|=Z9l)e_b1rx5J=^?1-684{cl`6)Pj;7!_Fbv) zP9ZpzACq1ePgEdW?~(3aD_F(^a8n$ptU75!_+lY3a<@;46zySCF;ZrG^H0fYg4y-a zsDu6D6SZ<~IUDw(sdJ}R=0{(Z81WMKT-j~~*J z-Ev(vj|%&}vKgdfN4g^k4xHW(bjXz_Y>3%%ntFKr?`#R3NLB#|EAIxJ70pF0uq?w0 zO_l%tqc5Lcdm)hPw$XA@-xHU~sOWU;SoW;{L@lRya~Ox!E6 zlvb1`Knv5b2(_v>PTCdAC!a}2-TxB#8r5lPPD$#6tPy(&oEC#$SN3xrZnUWFUghfe z%?+eAfxa*%mV}kt7SSkH_nWq^oi2o0ouHF(2#5ljnNC=*PIVZB?FNy5pjmlR>zo;iNYjuKL~Wy)Xyq%ifm z8?BK%AtB>zLJ`?*h9Gk`ED6xw4OVqsGzMdr&2|K9`uZlPz zm*g2rVri@%h7}eRGw#@CEN-4`c zmm%NM|D5FBnBF0f1kl43x#BhXEYzhb%%cs{!@T%rl{0DQtr|nk_;!9)JTnN13pV zIT%G5l0Jlj~PLaGp3f?7UMVv}jw={u+gseL+yg{j$U8e0+zM zw2O`>l=Pd9caQ|0=z~LsOHY^A ziUmwKw#f;gwP6O}MZilfbCyj+zbThXc0^lQ>>R(gqO0BfTF*ee`SeTG4rMGzegI%T zC|Am}3401~!rYl!@hy?W_0U^{*ddo18(cjl9QrBq_sODctuE;G5sXSe6kXH9a3mGE zm+AD6p#_zO;~!*;>7-mHyWT(%@Fah?+DI93^PeI43oQnH?0`1Nn8vHyZ78QBHJZ(H zE&}(0RY<$spnEp#Fcj_?&(&e%f@K9I7Ug{$5~sTtOBZc2;km*F93pdrR~#n_f0Q<| zQ{MQE(?srPw!DskYil1BJqfee4vLN4D}hfdil46d2_mBhW5QI04|Afu@a-h}_+AVa z@XP@=F{h(m^Ys~^mYTmhTiutKlqzU#9F79~WNN)vp({6U05%HEpef`Y?(YOQz}aiv z1&`zWaxz7EaWZL;9(8hz(iZ%qf{?0WFQEj1vc)KNsIvFue7x!&3dxu_L~_UGSC)6X zGwK6k`wv%xxGPXLd046a^3$L5$1|&Yp=*86*|EVflXZ8GRG!Y3{Lh&v6E=YnK9oG!`j-ZA0au?P)+f<3~es0^@t6100M4 zC_GGc(Yh4R+%JQ(EZ&2D=cNa&>beQtiRPn4vq<0Gx>Gv8Gx8z%Tr-afQsm?*sre<=Z;T%nsctX;@d6yx;>_BT6G(4gURkp0A8vK z&|BZcfs`Hw{PRa2ex^z}YFo0<;@NrkO~+RshPk=dalrK@sZhn0Q0-0M}nX?Qvje!a4!) z{XKqzA7@yW>Z=O$Mmvi3AvSidHz?U)79$d!Z`-(8A&{LW0ur z8z}RYpF3z9A`V0}?m{<&DG>Ck6cQU!RLJ!NP?&I%y9QvzdNbB~$^sBZS7vKKHg@?b z;5E$=^j2J7o$Fg)17z;0kJ6acSm*TKTzO=LSMFGxM5bnR60T z3=95Jm7B=+JmuA@Q?}CFTbf`hJK+MPgk1^))m+z5zT5?{Xhw=9snFE?UcaTEI;Bh_ z1bPuJ!W`f+G`?Y^tG(<-n8>Rl@fHFqbk+96?5RD9)5xW93#fr%^opMBq@yUk8DT^X z!2yckckMg1)V)R%;swzN}kLTgwvHnS_iz^)mKDd1~%jiw*G#lW` zyEGRPKRfX*UL_!PPpM!bx1*(_-1NZ;%&i6C6X_!~llg=%uEX`d8Q4#^XWlld*)CKh zz*geRmb~z&G*SC6Ly8;|?Q6;wQQSJ~lTTd*gmS$m4(+M1PlJAFo>_OUF6(WPo2>Cm z%L~YY+A9_1;>=pP^tsX=eaUIX9aV!8Jddtde$4EhI5IOu&>=P`-7W&)>58k+hZn4+ zAGxlMc5r6RD5&d(BI2mWTDcYyUB6lF7cnRW5`{l`>)xQbPbYM3S<>y0%gCtXnsd87 zq2aQ5V}j+%D2{k?vUKWI<^XZU_H9)7x9YIB+eBafu(?sf(z5o*+Y3J&d~(L`vyz!d zV8a4HewoVAIZV**@nzs&Q8A!3WgXtfQg<|j`T3<4&;BIM?1+gO2B4oSN~cSKDxdp6 z5~3wRMu_(Ss@pevlbR#i0pm0|AgkiS@IzIEBx8-k~d!Jw9CiKvEzX9sw=6Y}L) z4dcV`$_YOb&UrlJa(<571!$+(0&lIn^$TiriO&U38T9!+;-O*hz)}59UvM|H@5R~K zX40S?lJ#-Rm|ti$;Q`PH6XVm-4Y@etq{~pJ=V~7hh6!pC7-Aa5l)mQxcO?7u_)q{x zsm{BOh&ev8Shh|CPQi-}YD}jz52KlUmu@$U;<>1)UkpW>kMQ~i&foIx4;g*DiqD#_ zcw0d|95+#UB~8prihxpd@^?t^O5L zWM>u;K-?-7JtiaB&q1fBnQt+m8LDtD7^7K4QD>IdeQ2ws7uIC$P>ILFF9P&0Ww`3~ z#vrJ;48g_g^6Ky`uJY5Ni)LSgHSg$#=|`=+h94PRd&b}IQ;AsaoOsoc(5PnKsaut@ z8ZA-gIFh+EcmNR{ueCVZ&c~yy6c0b8oDFyUs%cL=n|G^I!~|caW5oGGR>8m1V=*f8 z@nVm-#pLQW+R3t|8dPgOij~~Ar=pIf)>~3hLW)`iERV;(_)Lkwsih%>AXtc%fSQEr z0;WDTp;mPca6wzQXD+qmm4@17_XWxgCe-*SXvjWNVxDYGGg<99fB@9R+U#LmPE9vw za`Q?=Z1a1bUQ4JEP$|fcz0k)Xn$N4D+HgqWSW}_yf`zUsctGFe+`e zFSA;-x-m`jkmIPw`;sZIsp{Y;yTXyUYZc8t)WgiG=Z@h{u!1EGQ|;Q_?^EkTY#`w~ zk58cdP{FOh_~{rDQ(a1gOu{`IWr#o2;2MT`xxTE3GI8y$rTF2(MR>i$JwxGjte9E5 zny4>#yw@F@BE75LpHDHh*~Ht|7rCVA7Q0@LIX=L5z=$|yqBMxO`!%MRpD>X#8qVEO zM5OYV3S)<1-YG~&*D$@gx{uTFXnS_@Lzl^7+GS5cS=E%1&LO#+o}kJ0vSpt2-$k?3 zL)mT|7AtFMUhA{EApr`k(6XMKXBFaCc{JoZ>eCd@)D}z=+#WAPEz0ZWK-|r^^4fe~ z`yy87Z~z93QY`81i!T)dCQZvwZmvRRW@;9?gA2r|783^Vf4qvVILp6Q{ zzAC?(zG@@MOxkf&WFKTeB|Mj5 z6+}!}nN%~sWvFIA*?El_%>4*)CpIXHv9hJj%>ik|U~UTrD$e~nTb-+R|5L(gg&d%P zrrb0f+jrl(ryq?F4fEnxZmRXG^6;E>sP7AD{80V!ea7m$B(njmi&pzLkoS|yf#um6 z&0YFEU$O|5ct1XddiR$I2w+|lBibeLT~5zDjXd&r6dqab>vA6R#D#n^?4TdP+>fx? zV;!3IUFkI9+{53j{D?QOpfNSOXMZ8e*PiVxu!g5==G^Ouqw3W>r zm9n-2F0r_z6~ctekpBTWOH^j>Q1-*R+|F{uT2+#eOZCt?d@PZei?h9?H{+n+{?TL6 zb+Hqt>jY(>I87QsQn_m*{isiw7XHLe1$s=G&{>?OBiK2oHaO7TS632RfU{e+H0e^t zdGXnPkyK+a(9HO76dOtBR}925S8;n-1CIvht5t5$UT8sU(A)v&Ld~X176Uz|N~BMz zMH_bYlOm6JP1(5?gET>Bp;S-v<0r4IFJln3%<%@9N?BUd1|3&k9KI>rd90C{U-egz zL;0brmjI&M04R$09lDK~7sMZps0xh8#@fbH4>mQN)1aCUGqBYwZ0CpvyvtuavB#br zWddWyALJOx>LlpOd0_xw>7DN{kEP@a7^OdID7Vzhkav&td?3MSGSE7wi3&Pt;U%oS zHioKS@YV^nwS5Oc)|^OR?=Gt3a)BPyj8|X>(@~zMfMy7f+23YrgQ%kMGg4~4qK;|A z&MCIm^@ZHx&ns=MT*l{a$j|?rVE`aaR)R%By-m9!F|R*Jx?8_3W$CS7wvazkQ^O%g z%J$cHS8?TdZm6?X%<}L=w+Ru z-nq{13C%B#f|k*ttQ=4|FCaxy=KwD;J4OL|cHKPKYq6_fA3CKo?bn(dVcnLf(_VW2 zR4j)M8!WG5IFwc;Z8cMQ08qK-nl#RSU6J(4UCbZjsP=!W^WLVUIgxtd>uQH$quAG9 zQANDC7zIMg#G4k1NS;HRw$@`0H_G7wAI&M%|^nMxy(;8q;QOs3s$}TBnC1MVp+wtnV>56(rKUk*`Gpu zvGPG2l8LT|*c(1*erf#}r1*~iGP{oL?{a`gp5CCZ{w|%E{vi+now$dI#-{SchKy>eDM*UJRegpmP+rb4aP|(68z?ZQt$VWP zKpvD#?D1%rY0dG{)C_NPXyu|WYMLJ^tkk$>r&{rgL>3J2{JHmw!N|Yo-6bC8 zc1F5P3?}+babDJ!wlcAsAJTUtlh^q$r!qbvlR< z$FqUInN^>Y5*)Jt>T6{}(0_GI#k!1$UtaZN6}r<~?rT0KSxJ++fJyQQ)GV-hKV4*c zv!Gj^ih4ol%-uTg!!n-NVsN4KdG~NfdYL=MV+=+>$UU zQ$&yyWVnuM%mv&7o5`+%jK7q>BwLf>l<4`$uqhA^S2U9XW<{@Rk-X%L-z#9?oL*^- zvB$)%t~3Sa`^5>8($aZuc^CJ~oWS9MISoqCjL+>5i`Bz`#`We|QZC9QjQ+dkF-P;F zvD6|#cGe+=>-Ej6`_KLM_AH99E0sBQ?_9ue&YoD)1P%(rBTDOM4_oQG7=} zW&e&MX2YcpCG6eKm*CvUm&9je9+bkaKS*csmM-pL%m9tb1MCZz*^NRFY->vm;iVyJ zalOMNKh2!BhC~H?7BqfISu#xuP%sAd3N{<3ETaS;c_gS2Na zKA~<2YLF?KU&v2Oh87}=mbJOoribK=Wo5Mld1*)MzAMTM9k{CEw-vs_g?2+!gX z6+1z=#YhIoC8>8(6Ykx|sHhmth73x)E^#pk?I@1B2?#hZd~sAls@jy5B*rVVm!_3; zvg4ClF=oaNmWtUPlL!gh<)JeFZ#OFX*H>G2%`A3Kii!$Fom*+%b0ugJYle?>vmdZq z)57Cw1u*jLI;*omu@MpEXedzDjet3e#U)F&bwaBvZJ$z9OX5M^-qFy8v*jHVno}5X z_DgkV)yfK~%8tb3FLrzMJ>|50-deV{P;gr?TY)&=$afO9{u@j}z^&o)GQh0Nt4c0# zFnZ<=0Ie^tW>j%^{`B-0$$gGnUt6?qRFNL=sRh1*?;dVf-UbWM_1+ulPb)+B%-uYZ8c6~0#SOW?;chyeY8RPbF1JbEPD z@X-%h7nO>i33baeRXjo84nXCd+s(s4kY*nP$4_GAa=YEfx?<*GAkE+pnwf11+M9Ju zq7ZSHCVZLsuL$~agY0R>caMgc>tMAWEG}wvtv+Vl&TY3dz~!qzy*2^nV)D?YQ4 zF$M$EW~t}3&8l;8}$pvsS2dP9x9AC6S@oOws}#N6{Q}NN5K>#*HwHF!oRHh zk=ax~H%hLC6;F|#(iE`Qf^yvtv(|Y8Pn1i3(fWIFq{Y7KOVOKYe@<{bF?n1$w z*DaRg;%9wtkC%KVQ`y@-)I}P z#Veo$QVL%>M>WJ~o_8?l0O@WnAH{fyQ7ucu)B2^8g=4eS0}rYSem`dDHRAyjC`Oxw zNbUBdRJgW!8=si5s?Q*8UdX&*$Gc3cX&^U_jsR4mX0PhZz$Sd!_OE-t-jF8hF!4vb z-T{qZVQxrQ*>2GC)AxDTfnN+QBnf8ElRoba^P*$%i_RNum97jpQc(LP$ASPR^i~=d zO}yc8Sd6L~xLjvNc#O9#%Qb7RE?kV9jypFvd@<9cV}x~%y_iK!wYJ;xC2`$fx)`5+ zZlp|q{j2)zu4i1?YM#HbRqXyz{N{v`)!E)Qi=e2!WVJ{pY^I4VC5)J+V}q54kqzFs z`y?f#3qYcj!+smgaHrSGMQ?V7jkVpLC_fhjP8A-F+ zuZN3OyiQJwf>|UQ8MaEC-S;AF5`TIU$4oE`4>jE#1-(^mfP$L=vt+IccB%ZRv#}AV zaRu}S;=t>_lkw1C(Wue6rab@y93L=KZzT4xg1ckUN^syZY5Ww4FC!!7(r9kBmPAw~ zs?=k=EkiHBs}sJ+yC5Dbf8g*LUTKp?xLEP@1>@C7jd;zKtSjE12buGGT@V2-+#Z)4 zF>vIuljC+T@U4h0Rz!XekA44pLY2YV+^`e;vPWK7KLWuT1U8IEemNzBAZn%Nt!mQU zJ<;0UBiqjF!&u{PuZo{~q`9x{UXpXbgD+phdj~H2n@xYFvRSjcQdIi6l02V=WCE=l zS1M=6YkYLpXLx3!^NMrts&w+p)tr6h8+0ksL#h19V)Eqbv37;*sddFW{wwbHvfRBX z0qvZk({24D;_&{@jL^DMvKR7H<`tsmtTaYkK<{ql4R6~qx>1n31?4YM8*FjD5vf1< zM|Fjd&6{fijU(}V27wF>3XqXc z2&B2*yHy((Z1{ofm*d5`H-Tyyibfq_j*jH;a$oc_ayDEnGnl}_ZM;(QoD$Z&>OPN_ z31_Ef;Kz#0V|XZ=SWFdY^xp|N|Fms#yl-&kdPN{58zGHs!UkSW5N&{^sjdx)FpZjj z)GR`ZK9}ZH@@C7O>dALWONgpzq z@^^UadZ=#!Y?jO3vXO`P_fW(b)~XvGi~vMLsG8VF7{$^E{ejO$-1-fK3oS--=b5sokgz%5z$W+yC^n3oJFT&8X}HrzXk$ot`{^2iBNN z!7$_FeM~1@t3IWdjJ={>hV3U%#a(WUZ-1^Eb$(`jdh@cl>xk^wsnYyg>;4 zK2G^FimtN;bNxg0e9z1)et0SAZrF_5vR%q1sWXmDRZiHAt~}m5f@D-SXCoFUX7TQn*;ULS-Tr_b@b?Jl@6I!U=^?Z zQ^$6E0oyQpMwNNXrW4pwM45;gO2PTT+)QVYSHuD9i`)IOAPHum<%TEyw4fD&{420{ zCd=theE-X&hD* zZ@Q&EqHdyNm6lZKOF@Ix5lomOMHZmNVB?$smY@~w6Ja{$CE31nn^k%NtrChD6Aq^@ zZSS%uU!=GyvW6RgI*TNlVe7Y?x4Gc&Wq2tHN}HaX>Bm2$0`uprKNb-vPW1CBHp_82 z#b(g6#Se==2cc96n-L@oJxKFTCv`G&`z9Wz6LoE*wkU0Y1$Z1Am}-BKvJ&>^rg2Z?w2*D!=gLAqxw~9^B(DT2c9p| zPL7WleKucxbK&VqBn*v*F3IyMlN*Vr}8t}S?4K@>hg6z*yUwShKrMV!r0JwMpP`9*G zN<^>~@4u@dTPX4=(=`AH2|EFc|Dx<|`$_q;DVbCPB2NHgA9x?y2s^jQOlvX0Y zD4QFER;2~JOj*yMfD?J%kduvUgX_MN5Jyo_D}%3F(Xm2bRMM}k5lqK-S{-1&?YCP` z1}d}HURMOA;YHE!ti?_oon(24Z#2)$r#CRL@pzHt>2IU zaaRHH>1*nj!bQ&5GdDdpt_d=1o>OWYfGLuL=~K9e{{5q|7Q<8ux|qL;h@H0b%ZLrr9zFy(n6sKuw7C+F~Y{4bCyrt!gRc*LlCee@z}=w0g&S zJ`aWArrhudU0&cTd+0UBVf=1C*<;;nhudos{+RCPSGp50I~wz6lso2(w2dg)6H&Cw zJnek7Y~u-9QwJ0i4v<74_1W6ox<2L4v>>W-JLiLt28%&)adE@1yU(C06xrT`!*{8D zdWZBJ2CJT^-S9OtEZk^Qvm6}0GU)MD}YJ7fA>#N z(xPM9nL?dgmX0~+B~?! zNVnMZ6-|qt*}&npGP@UCi=Oi0lWVS4wOyBGgPxFGa?&jnzK$GNnGbw*aSuSOGu~W{ zG&8Tj0Ni4V8@};Wk2Kjug`wZm_!&Wrgs3{ejUV0JdW7@{A!GPqZZuwRC;Fy<6uh#qVvsvk%j0#GJ)wKF#n2#IadlpaiqKu=u*S z=yv;be$D_55+% zjr|mQaBJU%&msWV zN1k3Ld!RS0Z!b$eM3%GsWF++&Yjs>@f#&>BA2s-yFM7&i$ zo~A{=nl$&?F$C}vehI=2#7})q?bR;B@v7VA9BdS7myu7s>j>%{;2_8c+Tu-w!Hzl} zd7Q54nzt(GK&|jPsvT3`O5T`;)}^k9o&hw}$wfw#G}N1tP|13&N4gmUzd-HSw?99c z-2M6If(Nj8OVEKa0^bn_R#Z1N%+|^O`2dsnEiYYA0;7F5o#t%_KzqkY_>~xQ*sIe-rB^4LWL#-6iqV65irAd{c z3zP9+>|iQtkKDN{IlZ6eZ=A4Sl4sM+f&pCyG|CA6W_pWF-uAuXq zOYc)BgN=;X6--@sW-&K#OSZ{BTxJ@cZdY@M#E{=T(6{xPwAqcPwb^0MSiG+k7A#Oi z`kPni^cz@G9)iuf+$o&QR-XPua?g|aNrW*v&LAd6gC;dzmk_&udTPnv)s|0t(cQnJP zxSO?`@36U$e|JcijhgEz?yf)`g_GwEyGX~92a#2Id@COEcPm=537c|ur{%yhX!HTI z|A5MpO2Jd}|7%MC5c%6)(vui(7lG`OfkVc1j=|cNL*(Du+*P1fzuNgpcDs{b4HkX$ z=jKv9YM9do2RPu|xv+j2aDMLaAoX}^$!H>IVvGYuE~)XAV>|ikk+gIyE|vTxR4G7? zniV5x4C)m6NCQ^?-Jk#N7;KRlWJ>f61k;3ANrVCt+o)g&>AqZ*V$fEg1Gz8uH!)PU zmPY@5$mUya9KD~QIvU)d)jA6u$z5YmJ8Em?M z&>5rJQK)Vp!@_>TrQHY?C!bT$H^9s`1RW4i1%shC>^pncFyN%+wVd{5gZFh)tXd+H zwAoo1$jIDdu$(Z?a0UD$E(h_dJ0(0?RftsLN+{pdZ2c|iWr@q{f}^FA9B22 zEjtFdPwwM<0B4sWSjNu{xAIY3j z--8A|l8FMmYmAnf_SZ+(om+O1AIzpCqSL7*nbAHt7CgMpp6pBL_q3#Nv_nHO|J0X6 zSTcpV*jnT0CEg_OR5-yx3Bd-}+?p)Zq@-#p1=b<`Fe#)oZ~*?;=R5iFkvopA;!WR2@}dA#wtXAMp*nTaP6YyY zz*u>}G>$I)Ua)EC>6WecqWIv%TlY?Za6cRp6-{JWve)I>7okiMI12m0GAukhR34lE ztx|DHFC^l-IGGCC+bHLM|i12}2S~#J5jY>CCI^2QM z+HR`Vuy04>ffC7B2sL^=9)OJqk*Q?h5-G*7m!)H`OjNB`{*A>2v3oK{`Z@f zyhska^&2Htwc9c+KV>3GmQiGE=K^^$ zk@x=m6(}r-EMSVuiPaERc?@FQ7$(Y0&6b0KjwX55PD=q`b|A<3R*H$D!^yCWBrk(R zdi1vwx)ydv36zJjx!A%`(ol@+>mfOywcKNE8~%nrY6tutU>{$94Z*5Q=htrj`PPnZ zez<(-J1D_vgIpQt#3zMXA+K7=I|tCNq);niBNaxE_FvRNSM4OKK$Qc8vSjxf;7=n4 zrBD)^Bm%=hno$=E(ZU|krceM|&vg=19|I$cmQ*zTklS1}ATSnuPWRrgyw-r|hg)wX zLD)xMk5eSxwvHC0o^C%`5$#mAtKnV~?y-PY=RPTo`uC3g(YI(7bUtm}E0xDJNdPTD z2ho6ZOfr_yIi61c#h)Qp{1?ymJNY^D;IP#DGa?|={3{@iy6m8nUe~_TVDiVOvyjpb znrEqGne9YHe`w_6Ja^0i!AyVb1^$yWEf_i$wl6n}La~OWkfg>+^)YM2-S+OlZC++m z0PARxqZZItB)@5d`qM>XDbAz{xZ8vvpyFjhlr&M%$3ZW4CVo{e80l z`5A*k2MEW4fe`_tyG9A$WXWBSO>u&u;WQ5beGvvhIVubkG>6;OOZ48<_6tDfI(X`v zTqS$d6c-%lhwJ%TjIFc?YtHu7DAD2*qNV+_tHP+&{$n$~yYN%JN4Shd)vd<6;e@ER zb?=L_STKQsE8Juye)gg;MaBFd^@Y4cPbyHl~vbD0kY)z#o;!I65-}`CBp`QK%Mi*24DJ8}W~Wv??e?KEMl5kWWA@R$dM_WJ9fY-LxP6g8J09STNJ4 zJl0norp(Ene#Q;Z8q7Bc&6Q{zngO#p^1S)NuvJ`oC(8gJ^Wb9FT-s92)Y`#kT<+>e z9p(?!cNH)BVKHEIm+MfJi{{Bd;%dEHud~j{LRn`cBD`v+b0}o`j$3QjaQlHBFHi%$ z?n)C+X4$rwEb@+Aw1W``Sxhjefyq@@WCRx;`*mpFbbi>FABPD#2Q+)QO{)Y|PUUh_C}H~3q*R?mTgoi~h)VknU1>OLhwNA~7r)nn z5NqBDXr^Mm%1vB$b?-V`|GK1QqGK#I4Gh?I>wmt4&nwlozi~+Wfu0fKn~Hsh8iG5^ z0uxwN*~P_f=z86AboyeU$km%wsh#_uGf?g*X@ST|5z@p=Wnd?PwZg!+yN}GIe1wvB zZG(4bj%_3aJE@<=2zsYpfKI)$aQ79l*&vj=yJ3YbCIF#$N;UG0oqyE zgQC7#alKyWAYD7GlUZ9j;ESHa1qnBt+~fiP%}GCBR8<74L8IJiU)<8>J`!P*d;P^x z@eg;(vK#8#aym0ApN8yR!+5N*GG}I>Waa|KSHGDN7g_?e4yW$mf*~teKB;=w0-i;X zm>tv|BX9f$wJ;#(@vp?xsIHAUX|G0#%H&9Dn-H-+<2dB5Jt1L@7nBqLnZ4MrJg&uM zOl8kAu1GPQbLWITJ`IBjhk7(wkQnrT`J?6-+o2bq?)T+E;j?m^S6u|(DUMj-YQxit z$G;wa#o8Q}r>A#*+C_Ewe3xq@u3EaPZrl)hZb2?%<_f2_wF#RLfZsb=7yhW6`TjAe z0th0PH13g=r)Qa$ps4w1_I>-W>jZuIx2#XX^Wub0_Wpjd|2c-o!O_@t?PrpvGWP(% ztIr_5KMA+G;+s)bgjySC7q_U5Y{<>71Jc@tC@bkxuHuQnKCX$y$O8JG z{anH?3JB5Xh!z%=G2zA!@~Zaa;zZRB@%(i+)*02llaU+MCk5r&Ae9YRk;cTGX0|-R zKOd0$X}Xhg$4#GAVhy9HUoK>;nmlo?F-a3*Y~0V&R+`<_?t@#MJiuCk`Ek1d5Xi@V zd13}zUyE&wxq!_UAxbP-BE}4-`5vDx{5+wa#MOV^36Pby63=z z`btYt)}5Z&Fpa2cF#m6Hl$E%$P~&pHM&p}U;Zo+gfhL~8G0+u#+AXGcI5(^zEBGer zS9(g66W(p+$+}F6)@t!jL7^c+3`SFbE;iigh`_7Dq=^}D16oVhCO{2b(6QU{8)N1% zuf>%~4hI+QY+}kAITu@+~<~_BAN6>I1~-S{^`6YT{IJS?_{lTCQfLfnAMnby~5Y ziCRU^(CR3A#*b5+1GGKTSWjioMUN>qEt7{mCuiQOAq3UJMY)P!G9MFO@U_G_0WV!H2Lcz)kA=waM?ci!9`>^r$%7G{F*wS{(zN`RY& zqDt6S>(>YqTwvawZ$n_hXFO`XSUR-;Z?~N5%WN{tMqBsoDWix{Uy^2gXqcw>Jhpuy zF1OcDsGPlQdRgPx+%v@`lbK%s;9dm6Np)@6T*r_Vw>J1=dG_(zTUnah@&f58_zp^lc6+;ZN7FSVfZ_Z@Q*Y9yzg58%nc^)zO z=3_6gH~pO&quY>h{j)KEj+w#AEzO*@P6aEsI#^k)|#=o9NuMUL9?6 zM(Nls&C>B#BuU~sorbvj%AiiV3zPoY-Ay6KdDa>=ILZ+nW#9FqwPRBY@;C*ZoIkrJt=4ahAUg3axM38WF$lJmnEjg`_*RVY=feUoY0CGN zACeUQ0Gt0t(vRBFN{=1}#x73+!ep#-XJrs#sifg^JPXcalBi?oI5S`mrmIz=L<=S2 zif12qP8H#VC$f^+HGbL~SP2M8*>(aFi{&By@@g@))b67ZcDdJ!Z2Svv{|wPldbXcK z{!{kq60@0dwRG1*%`RX)Vi$6Kv{oZK{DX}jbT*CP!0e!FhK?fxGvB`jRlaC79-Fsk z$m*lw!AVaR&rQAooli5rFCM5mbQPhvdwzq08NzOUE*haXT|fLZ++=%TyGZ# zQpML_fId3VH<*Zdk0ogx;5>+NhP$v!?HPt`s|<<%w;%S2}Yg z1{K)x;s}Gz=hY&d$-$xM#mB5@9Y`B?h^7s}Y&uLcVvJzb~JTfHu2GW>A( zVA`zKv|iS|fr^$^V;8R&6tKeOL7B%_RHWPUg-rT%w|`CEIwDOXGrE!0c`gs(485d7 zA@!dQAXk!K8y(GEKB4OccpaN2ZhmZe(X4HB@)U5JG`@`S1<7+5*vb@s#1<{!%>otg z_?qC}6io?uRkaw{-qh!ob+o*{{PM|x7b!m#g}kOwK5=m@N4g8}ZDwlaZbR#$I5%L! z`m%Yvpi*t7B@JKJr^?f=3L2UirkIqK&P>=vN3wn`<62xBE8U0!xLg8#Lp&9{R$iQ2 z^XD&L9*SZeOD<{YT~QjMFdBcv7<&;tfR&aRWDg#k1#b{!Z%@HUf~*iGIk+@>uOLw= zturUux{}*+QWi!U<8A7v1d$%=PKd7c&rg9uthJ}UYkB(aP4uta$=|sNvZPmA`sc>E>aWB>3Td$0;6V06y^=Bsb;pO@a zaLdLcNt!?Bl!O>XQ|y4HOWwVPh5DAQE)=@1Ez`wfI@mPC=RiCgW0Nyqq?7hnytH6c zoNAPIN19D!hg9*(Xw%`vUs*OuMk`SbWl)Fyq29);N10K?)fs?#>7?_RA3jtxo^96o zpjh5b>3%yk`CI&n6)pFI7B359J!(e)pL=fKOh>*UFh=BJqLh_q+jPX>EmoKdK?Bq+*@~qZOjSj=A@|2CDMvVy z%WUT-I`iiBTnsF;9@Nm6^Mlb!@(Po0T>(9ma(Dr-!WCdZ)m@-@fqZ>B_q&f!N%C|Y zhH3*oLR~zMI`t!}PI20?G@k7v@VK59Eg1KE6ONTusZk+CsHeG5k=?F+1)jul6BLi! z)O^ojnMbb4g+B!|Kqp@az6f8)nfYNX^p1axv_As6tYzpq^8X0??szKu|Np~Hg%)L$ z&=x|&$UfCw8KIE9qOzUr?NE1%PzYt66q1!KTZJOodz`Yj?0Jsg>(ZUi-~PcU+>rJIeJgNPhb&Y{F~pD71GG&+jnQWk(7!jId89&=%`W3oGyoVM(Tv~ z$OLCsls7+bxN}{?3aT{qdnnI%uH-#EIj+XEH$Z+sSew}n4g1+21SOKlNUCyxVH-l~;p|5ntb#d+!g+{$b%N@9Hk7k;N z3#hB7(pquE{B9mSQ9kFOXsxW1(NP0nLCTCoXG90_+x!B5ncY$IzTxfC|V?JG|`3>o;hEIYw% zi^H5Ng=Z#uaHX&Tcny>7&y$rWZnl&QY2o&8bdU};geGoubQfj*TpL-zL3-V}++XQu z*LgA+?K6Aj2oeJVG1W?X2!fFr7=5lFh9|D7>vUrzt14oGY>^e$c{3#ePcqZK%rJtY`j|BtBgpy=kU0~{Yy|LNnsh+}sdU8qqv^l1>wn^bx1+PD%yuckZGKVNqt z7#z42eH%w~W%@PTW*Q9Qd9xlGO5ttuaPND$zfHs`vNKiPq#ojWnwuyXtu}l!Q7t*b zs&r7wOE28bQuT?eVfu}@`nYWaL@8gf*|dpoV&k9u@YWX#Mq7-^`U{z7A_KpX+NP== zMXq!OPZXWsq4rvC$G$WBw@VHbo%!iOLWB&x7a4v3e9#84hw^@jr7vVP(?N~5RCxj8dma4fCM}0>1qTtvJypro z*$(5KDYKfdMBNIK#?I&$c^s#3!Kx{CJFXwce@o5PBx=oyh@~F2;TFX?4godk-$k?E z`MSCQpiY-FRqp8l#3riag71c1+AYWBJOeS|`IV_r(FiDsTRLHVLPrG*mLlqElYqY{)uGD~t<|b6!#elA5m-X&hery@4c>nu+ylJO&mD^i?960yT7Mgez zH=t*znCBhU<;D;y!0e3mz1tYA4RuMb=@?ZCTkbo5>b)osLSU#E5~5XUu_s0LjwLl7 zSoi2_--@7*I7|giW8UNe-n}w{6zHvv!Z`_eL6P1~6EHlf2Lx#vkIiMc{~jOILG8jW z0Bq~DU%GyQ)t$5+(CBsK%2$m@m1U4kRd>kgL?!3H@8-h;reNK^i6}fEmFbq0!==xs$9OLzaP;`fyR&#=f!nru>{(r#8 zW)41qVmeoKZz30uhb7;@t9RC$E7t!Umxo%R68&}(tK zy!f+&4){8h97p=u35$ZpCS*BU?8lDpqNx1#cfi<<-G7g$BDEybVL5iyv*)9>fJ|Bu$c7glvyn>50CPl~RPt9%<_z1R;9q`d+()zrB&cI#n#YeNOh2u<9|;{;00dHIi9Q_w)da%wLPj1F|kC~Ozpu0LNt zVSaB1`>*Ixjsmv;v00cAyq|<}KB<;L-j6eENakI-JS|q~KRAOkN2;$P65um}z8l@A z=>?S>4EVP{l-$=ow&&t5V`g_K+>tlcFrxA=QO+x0DFB}w8YFWxSlM2cDBlz9u)~a@6#VMF2OlmJxGBI(-5Gqd$-Ye zE|a|W?blyip#M1%d+bo+`VfQh)JDR4+;9W56x&{SRXoi}-Z;}5QY9?5DAM8q&}jLf z?jCA6_Q7)WB8pS*m-FPqF%T*QH)=Y=Y#6$PWNkMXt1C-fcdJVM)i1klh$tw%k6vll zh#cDO(PPA5UNd&^(#B5~6o+MUT@3@U!2cu)|8aG^Lot9o*!LCaFNA&182*r#{oc=J zjsOiX9w<6g1AyQjGTX1iyEcRWy&%|7mW0g=8Z#t7m9pQG)n((S%L%}4Mtq7|!Z&@% zSpR9Lm_m^$e+Yrg{Czp2>S!^ye8R@}8afN9M0%s+5`c|nPBa?k!6$Oz}7!3SEjTgYd7bz&oA#9e#}twF8*tYw=a!< zwC*N#H6S8ELcI0RkEP!OzxMy-&JzeohJ3sP8=PfM39Rk%v#Zmo=pe1Q1i2)8?gyt~ z-AvO%`9`hNL3&A9E1z%C^Rl4<#_#^2O6@71DC_RA{|=Y(^yWu z!_N{M1&sJvo}5ane)5Nsw|W;P$$9qiHdRNx1c5jB_EUX7SekJqi}H6AiiI1XoIV-} z2&H+q9y-)ORGdRr=m836jdt@@G}MKi$e@cO&QWs%HRmU6=r`$bpcaoE_Y?9*(sV#y zs*n!O$I+nupXTesKEvt4EjP0=Rdik0-4BHk7)nqD9>5;GV130(*WwM4^B{%ufrgP) zK2P{gT$CZ?r``d0tWUeB&AJyq^~8RNKoX8Wx1r@U*kdhOylGOy~YvsC5p z^m1Vs#7Ngrb8qeLLrSZMHWhE$O$>orVPg~-x2((lXz(DSJquXLYdkx$;*4q z?HjOAndh#mGu}rd$$>Rt(-;dFccu9>nRox4!af96t4Sgla}&uL5Jaf=*rB#zS}1-) z6qk7yh)Klc6ya%eHs*&VV-cdL@E-;8jL#ssC(wTzxG*ivLW}{gevFy^2dweVmN*YwEFe&Ygz8>GEunu$4?HG6a}(l;wfBgQ5Z{tM)Z;qE#jI+F0K7TN_zlFX*FRxR#(D^T2(Zo zSK9Bp0k!-sJXM1fP(HVneK~^KG=TDnBvY@N2s7$iUn^`_jR7qO6>31&n#uL5_2E{I z!|_>`#%$f>!Fb-^g&dy&i4RG8cCOZgwF$cJ0;azTC-#AnRLLG!iS;K&ucOHO1!8n0 zX!-<=FXYb6Y<#TQ4JD_JF|ZB)8H=RZdv9vb-2J_Ktqp=FwraIQ5#)5uO@IbD2x5b& zI$dq-FNaGW>I@SUTbvta<=M7(XFebiYDL)4&9-01A5*#;NV$4c$`tTS>?J7pCc?0Q zBP@V!p_2WJW^rk__!Oh#VoQH_rr5a8$vMg0%DUl=W15Y+HW|&9!w|)M}Y#Hu9TFCO~c2h+_N!%9%wM2*Q5ay@Q@=`2L;O1C$A3k(J9T= z3IX9PVxxza($jJ9oSBNy0i|17!s$mr$LW`CBA2w=U8gFe={Y1_9j8GzF~WH$jz!Gg zTpL9FtooiCl|sc_yES%zE||1%f4;R@$7~i-WQKpqPQ313mi3!^wq`Q19NA)nTs% zwnKkefr9v_k(RWngM%vAqzjMV&lTs*J5?8vtx9(&=;}|{WVBd{x$RdF8O%2RMxJ$_ z_MYl4364=2H$Wr6e@z`*1;8VzNdbALLqrUn9uHkXW=^6YFiyWS?x$G1$E^D>cf3GM zQHb1JCK*Ib4c4*OVC&5B9{1NuTlx{@%~!7IxI9tTf8iT4ZwBd*6+m3>6JC{0cbe)e zL0mr;6W-7T=teL|ks4MmaI;ADzUKe*`Nw%vrFO?*or(O&Ft#01-kn#C?<}w{92ITS!;@HG!Y+fW&Ew4+t|x@r%+m%2 zmIviH0jfC1&xG?auh5J1R!!-HZR&GLH)r?DlQN`)h6wk?K}Rq;n6#4ae(Ebn(zSfw+oc@2 zs8VuZJa0+?-iUVsjF!Y!T<>lZ`rM(We*K;oiRotVvXm}8{HRa2pXBk2i7B!VVzcMV z3rl*`VlGB@<{PH@G{(Ote&cY)i%))1wwjU}^Oe$bklUACW%(bU%=Q>k++-O@4U$;= zqI+IFvlvx(^}xPbtyV`;#e)T}-rdIL0R6b1h*V?Mc!%3uhcLgku0=+J!H0inoPLaf z)0OU2fh1_;PEz(MD~KFH)(^l(&X>6VwR!tvFjx@FY`GQcHEMDbq*AS>Yc5^l*5|{; z9a|N>HT07Z;x|{gP}IxIxC`ISN_+_Nyj8uSQ@twRU14cn;vV3|Su`ym<}`>`MBWt< zw*nC7{g#DshJKaPSvxt^-78;DSJjVP5>@2(EdY_vT7w9xaQ@}~NJR2j;mnVJLPTtC zE%dPn7+>l1Bh9uY8@OmXjRGY2;UVA8-s$mD?f4Z^H)2Y3yl{DvkwXW%gzxRR2Nbv( z5E)?df-Fy>%2f;r0t6J7@~4$bCgM&k!*4!L%xryYu=F88Ty%CYyPtf?AW=}&r^A7q zyuh9_cgf*#d@{*pB&U0Js$=~0gHdLOjwO9<+g`hgr)*L?NlS@mh$J_3PXB9dwbHLmQQ44s%%$%>t^{=<{c6zl%lL<%{r~h*rv#_=LS@EBC7ls zFHu)pT#1cvHjOx(2U5KKaphbhB1aA?h6?d+mslN655I0=nlu()S9%Lr7Nl zb7&C27ZM#uQp&m-wQxTC?i1e8ZWYV`qaR()4zv%WwTH#ql&3CsL^QT*IM6tZHg*Nn z`Y$F5bR)XIwIcVo?(vUR4c1d$m`mr4wRydJ7!QJ>6WtsuXB734o>7H+Jt(gfzTS3#Ze}Sb)Us+$s;8Sn>$}yGyLrE~6rJf`i!(lcqp9b$ ztpH)L6tZNH+#!`mIPbbquHL!p^G6(#UGKo}U2dsz!33eUq!NZ>#uT=*wCTr3vr=yc z=vVpx=F}@pS?~7yYeS7c)TbR{cL3UI!=;HQ)eq1EJ?{ws&^E)I2 z_!G#z{P^dwyRzJ7bBQEAP?aw!1QqJ*fy@V`z)}vN?3+tL&%Vu`pQKPy6E`oyI0HiB z8BZBvl;!R<0Xc#bR^IGGL^E7zXcDxsl|_>*4lqis^l(Z&^20B8TZA&ri;WgG>AIA_ zrWnDzCH9|Qm3R45-^8-yuJcK0aFZp$mvIt6uhk@Yl=ssUoRSld&VZ`>RQ)LE+KY_k z&vlBMh>kwVBsvh?5C}$Z3|H~{#OUtr5Qy8q=S_X{=6C%;XTkBzJywz(>^Giz)dFhe zYAYG$+l9RWD$C2@AtqV?u6Mzba@~QFxv+M-5mEFoJb59yis{ym6lll+a6hFa##{-Ke|3!|5c@`PQg|hN&V3s)>y!^G--a+I6ZZ-{{^T~gi$`B zby0S2f274ck%ZP#4Whu+5b4VIa7Bk3HMTXteJ z04b4C}9`&bCov`gO%c96~gz%-Cl;N5>Gzk zE7BKYY-(DroT_})!4!d~7xM5%+SbZk1-;zNL{LwTwjDuy;uLEY+A7*WS$R)vn6>PM z37bXnBeIBiHX^>9_c>=d#Fp*L(F`ri_t6Fk<#VCL$@cfSvh=~^lGazM75;H9Rk)_* zG{n@8Y`dU`WID%h6Sp<8J!5`Yc*10oaxUYq^%cQ?k0ft)N<&rGb;;#4#VkNUq1)efw?AZr)p+4<^>CVPA|tmCSPw+oY6RTDmwC+nyv^@5_Z(u z{$4tZ$Y9*?S8LHR&{}uX2IX(39BbL62rv>|mF|aas-LDF@x~~LV|VI#>gpC7ZqFTU z8a)24QPZrqKNt3y$-jrETOfFaF^9$eGaM+O6CZu9_r?pa=rSMHCd*)z+Z{n&I^^r3 z4yFKu+#D5zbBdaQ{JCPsX#M2lCZZrmeW70LEPj3>w(CPhawRQ+S-U=Lv8|BkHPLF8 zQI?^sXUw^NtbU#JK${{FlmS*|tL|*iv_zGhqwFu3z4~~=Mt@Wp1LUN)cPzgKc{wZd zDB>-L2iaXl=#jlZe6HQbis&|1qN-)lFncxDeGVcG|5&)VlXW`dmSE;4-+dyf%KcnK zE=J|p-F+%gmg|)jFL1vB4FI`U7NCOt)V%=w)q0w4&orp@4>lr34z69hA|I-J4PyvV zHskSNKWXsygJ4yi+vMu=J9?L5rbm1=fw*Ka|MSO5liJs=+Dca)jWpZd4n{l z6#%^|g`-c((lpW4A%|2V6>zTgGnacB3z?H+IJxI zwdMCL{9Y8c5Bn5p`60SBig#{ioxQ67=&P>Ga~**@U2A1HGjjXYw5>`)AaRRO&3gy+ z#~Xw5DwvL-#pO~~To3VS?BeV=acrqC>t%HG5yV~qyv|soxZ(-&C52oyjzu06V1eP6 zjX2b_7)6E?xtJ=9;X5J|0)mvQ^F zLxiS$G*Uj$j%$US-%tuG^?N9YqcNX~yNh-}$LefZ?YV>|e9lb0xl6yY@>%HK8>3)# z#XEC2n!74l2X+mo$%)Ad2fiO!quQ{OWL*DvzqhbWDN^~Q4R-=NWK{+Er&pF|vkEJ{ zBOh#Md%=lK&gyh#e2@=Tf!^Rewmd&E(HDyAqi%$CYF*-xk!YS?b8!N!OAi&ym++U~ z-66>Wb3pYtc;BX!bI12I`7^u~Yisq7Z1aj06CLXf*83)<35FVCtQn0{vD^DmbKGxL1RhAS%ZXHhP8_FmnbWr>uby`iPJpHl2nx59U zd!HDXV}XLKT)DDZSW7;OuyrXg+s@F;BET;=hJ+J4FYUAX`zwD3#7#wCI7mn+(NBXl zRr8?KBbCo>K|<}S?OM9hVYJp+us0|~CMQZS{rtGYZ>XzZA@arndt_JJi+F6BLplxjK`J)i|UD;dtU| zz!hrBdt=@WXG4E{pqG1_S4b9+l3d%6-8aMaR^M+uW&$&694# z!iJb|$x`1xXA{`{%%3TRqHgLkUUZ&K+qtXZ+9j>^^*s>{=f-VE5Klg7>Q)P0Mr(X8kKQ8@o4!wQ045_RXmU-F=U?64ddmg{uB|4q zB~sv^lzD!Vh!iST4Ipj0H7WjRhiik*!7lANa{Am#qSd)$(B$+pr^H*(?P^344< zgU{bRQ+jWW`{FCvEY^3sf2ZGUH0jbFV-HL1*KeoTS2WY+>D%p+q%^2)XUwW=Ju7{# z?TDcLr_IYunR4PzE7-&BiBB$Y76)tIr(U-e#V0;_omYizVje6inF=9%tyU_)5v0%L zD{sp`U7*3wio}N!G7P67oSxX9(h?AJz<%l~E)m3Pq{${42 zcx{04%Q5cw1O}uakO!8nPFH_^etO6dPRvvCW|j`M3+C!b)c`!Xy%4KPOUQ2Kr(>nU znRz(9RsIPR*L9sJS>DR^bO9_FlFzh(`^bwqQc~`i*ABOV^C=LAN}!5$h|xdm)}viq zj7x}}cge{(^=0tN@Cmid;qnCsF?9&Slj;3|t;-|8>{*JrGpv$b@Q#-)c=3r>Gn^a8 zk!s`=`Sm};DuLmPwv%5t`?>1rT*lH@pq6CNzoS6PGS3cbI(4HHDLPW>Rxg-!U+m+= zk3aUZC@h?>T5wjL<=C@46P3m-DaX@K{*f9&Y79HGsJ!{2Z1YBK=c02oh%+5*##FF{ zdDVPdzX&~@>5o}PU#C#QC|$+LQYw6@ieq_ynwL>Fma;$d&UcmLZH-EvfU-~AjpW=& zZnw|}Rh*s+Imkpk#3-$ng}4RrkK{u}caZT$Y-G9~x3$8(%DB&>j3q%?Dks7iq6#6= z`Gi!W5Ec;GiaV7I&ZjJhe~2sCl2m5J_VlV0wKp_^YW@67GM)|j-cxWW7I&+Xmxm9cV~E}THEV`#A!D;e{pof z0jYxSOPMcQC`T}DGW=Nc8K_83&D^+K@S07)+{#4u4PR^BF1<(F zF8PcsW=Kl$b^UYqAiLZ5d>e}b`A-~V`kL6`l5`8saB+)UTUqO~EHW(d9Nf^5D=6Jk+HGY|Nxhy(r%(gPz0t{s|!L!&a=D{}B z#-w9;Y5j2-da~aX`t@Mnn40d_TsmH!+0Uuq#gFg4RC6l%h{9s+(-e}>E9OOk6^EJz ztCmRI!)KSadPlDO>`^DXd5@3dUh^_mDqsMK3ndTc^o06;pHmY6gNBDXtXT~M|CAvvV}4d9)HkejEkAN{~I+~Ii`K#1+1#CiQmGP?Az_C?pk#xI+Pqz6o01I<11#qtBk`=-5xis z>&!g5fgBp)BsD zv~A=gZi^dN6Qtv+cOAX_xr*FUB?V>5YOrfQ-S~z-_u}mBD!peGu!D^p28{R*wJb7L}^e%6wdv|5z z$6Lk%D1G8;B4saRZbOl;&d>ziNIR$?XR*6j^|uy)nkQ7m_=EU#_8OM?jxKg{XF~Jh zC}Mi%n!GU8Uj~)1JzRU7A?MUCdFpQYw`bsD-V&c!Pvk}OLLt<_eKlXf-lesb@nCYT zBOHoDiyN}j1VY2L#&MgbpXHPEy2asSVz--GX7~I=_aV3A=qT~;pLmiPKiA?~>1e8X z6G<*KMrgnXixB0J@P)Y3NC*03UrhbZKYv^}9AJ~FYTKmR+SK;>>n;wqRMGB0x5ba{ zI%Y&+3mi=gTC60EP}G^eR#cL!j*HL)&L;(Op>RN zCPrfpQ`2p5{s%?F393n|f!^>o5d1RQK}7wc{NXF#Kvjb#Gw&9|@l{3Ts5VVC)Ia+@ zXx21|>0rVpy6FNnaKZe}x^U-2aQvkpe`Lfjf^D+Jpk^1-T7`E5~8mRSWXaZ%9 z;I*?_=-+*Dl@LZ<4f1nmXpU0k>>0wuUu7n;HH;tC<}S|Lblr9Hid>G&rriw}jV`28Z$ z^v20t9+qEd34jR^IG_A#-KWMbP?bXgh5=&=IG^k+m>vt3cnK75z3p;4Wf!yFDi(k#@3AiSpbqWs;B9K?qQ@U z2I@%N`!`%tMb&imF;cOBJY-)yS%bFT!O$YB-ixMM_pXq~T!`|YBL@pzsIW{e}}JC>?%+6m_}AOxqC( z(NHR=;YZFr`wzvzO)~pkegeSNj2UM7UUb$W&$+tVAKw#xd13fr46F9W$fzv>`B-*W zWyhZZz-=iz_ZvvFMgph~L|$|31WjY0Lz)6C0R8MOyX$VJTw94NO*#6Dvn z&{esAXp_oiHElypkjnj63Lq4DHtB{@Ron-l(dqUoMA_T(05eN|=^OQIW0~2~$`3rk z5AtsAU3-rIT@VVeFDf*%9c5m>PrR=UQSXDRwk+O~muUFz{yr%m)S{X`O9(qHRk9ls zpzoG#w{P_oXQ*N>hwV&@bUwO7Y)$96leGE9stMTd1-QE0irz6umsFYXna%F1`V=U$ z>;APi=gtt(AHpETCnv&jcc#5EVr@PC4t1rB#%Ap?b1A(u5I00laADl0ZCQ{7XUouR zSs~v&G>r3`X<}t&easO|DhzHkmf4~8r`_xRb8Phd!gHsp5{Wq}hU5;1rt6I#*o8PH zmbmT{U!OmMo!eP$iT?Fn$Mh&{_r4OKZ!~#IS^elEGqUmq(ux+ln;v!8w;xSc zFGbGv2TC7N-&TVD*mVk9;pDSGhznRMkwk7={g-E=P}{LmKUP+J#Da0V@RYB5-VKu- zzNvrM&OD15kx3A8%IaLia(i=06^!+P<)es^!Rc(_z<5*y-gK4V3aKYKK0lu)Mdn@7 zFQNuEl3IyjS~6E*cxvL0783+!$`Yyp;3w%0w5*r7+YfxM#BEJo4VJf6DRjaRMnr?E z9V#}hVb6-5!1e~lDf99Xm~h5F?rutif2gZl&M44IW*N=)cZ@Y zf7s;LHnF{kgP7%b>kXP}9eHyUYeL`=c7c`vKDo@C#fP!NUq}h8==u5UPq2ejL*h#^ z#lne4T(_#`q%>V$x7835D0{;eO!#+WV}JIm(p29h`C$uDkN)rNJvTAIl-R^BE|1EX zr{$569~3l(b**)ATE2Q?QVRv;`D0+i_nLd4^#Y}B;(c^GCXFUA86)bWA4~-)8RR=H zmX;*cDEy8^viqwoC~YC$Jk$SVhXN$+>Bm1Ljpz$6o(&)fTYVCxTbNc=rj39HTq6D^8E=bXug=tnn}^<+>b zHOf$I0TDMR2b96h??>8yg%WwD!`NW`cGSBaOGBoCGA-8SB!y^Oqo$DH1Y0$O?-(F1#zsvCs9sgh7#z<|2K6iKVE%g z`6$qeBvJTJjAzVlW3zJI!~|tnVh5=8F?x4rr}LOq8}}BXV$}a0Ai)G1B2=wR@_|3puXq$_ND2tPwF9(wS`Y{Xq zG}Ynq|CNB=!O|9T6_8G+K9Kr=+k1UF9knQ`IXx#C5ub-TpRWJNJ%8>V;G@WK^((&L zKX1HVcMeNfK?0*PKZPbOc7>?iF$zqP2>z$ zBJ*x~lR)xWt(gvk9qXsf@A%7pv4Y9>|@oD z*ziEOCGaeP#XX>t3|1st4<-Ap8-J_}GQGk#!O=44Xwl_6&!(j)I#3V)`;GT%5_IR~ z0hDhB5m#_p-4w+pAv~ajm>VZd6ZG!#otd9ODI14L{SY`obdsMxAO?<~Y(BxtSc!@? zTSKrSM((X*qIZF2+DIRswSWeGuSLrf%hXEq@)M(xPl5M8b+Y*<#|d6k>nEWAOJn3- zd$@V>jy7;=$Iqqxez*U{p|w8&iC%=iN0|<&3PE2@)QM@}JyxsA!NOkxe70b>GS`x$ zF)I$eA#H~w{~xb@Z&|1+i!_qltN8Ufvv=@uHedPrqo|MW=}-4q*HGp1^D_rBiPm)? zC)~qJ8^C)4j&*Uf8ek;k8yAE+*r^^sCcv8j%I|{4@!9grt4RHPddJ(1-B!aAb7kAx zESc&uTf`gpNpLT5v`U8#`n+^QZ|s}Y39k+@@o6$3$$nA}dA8Xt*21tNSbooU@9p)2 zxlXf(mTwV?!cmpF6Fro@JRV7*lusC=WhhuCL$Ce?<5#_vk_+Klab)-VrWDUxwXC?9 zRGLOIN(p~#9ztP&2rX2NCT8BFjeBkw^pC$R3K!Z4u|as0nUCX*zEda z!RA*o)$$PdMgJCSPS{c+DRczFH3K-{%Xz1P`yZa6Ut0CR6Y_(lL7;otH{VLj#`PJd zR3#;=mt6fg(GMk1lQdX*-|5`2ebU$$k`x4IX~o_K3Bi4ZPhKt4oU&0vm-FQ`?((;2E~w^H4L}elN!i^#WU9Yd%zE(o0iaAvPyD z6DzocxSFo5yk8eDe&_LecbQtK)DJ0+2=*q%DX$ASYe5d<$xfTj3?{fXkwMmyn}%P8 zbfE6JjrU5y^TY7fcY7ixvylQ*#Ckju#_8iq7lrX5Tf3kw)bWw5r4b-?+L0xFI zjPUUkO=Fr^sqV%P_v7dl*V%vuDLD^z%e${7*8f9K^6FtymSW%(QW_;W$cgMieU9Jn zs=t#u$89#?E#VLBw#sA3N*3^f95o&M@|518#&vB}_Fmo(it5Jv=^{Mt5SR43c-H?S z!HG&%9iwB!kN~;$RC}%S>aw$+bkMa>%n*he(Q1nAMt^vyW`Xd79ghLofI5=Z{Rj75+Ubh;7vCMw-p0@Us+YUlX zpZ+s+)1I@HsQ5jti98s9B=Z$0ZRHk@IlE<@SAGD{U=(xpFYc$^d_)leZh{=So_3l7f|wr_te1H?&d58H@VZD?TZ^qrUYWKl(saR zG?-DbE}Xhm6wmuH3&I*a87DTFllnWLsJ)Qx#8}}9S-rq@!DFklmX?+|pzW*xeo+Fz zeaZbzx0Tkfo!@iW1It(4i%@Xe_pE)fe=j_5Faw6$VL_#5`FfrUdH3(_F0=k^y= zSjl%aGR-yIeRkmIKTb3o`Uy_q&wnhyv1v?}_#cr|jSu%`;?+#--jH&(=`ukVKDa6- z{LjY?q_R^l=b;dw-%H4z@ABR}bJ4P@Hj_VRAnI&>jCbPB5GlO-KDX%_5QA1rXl|~^ zpr&K`bl|~01^}g*@%yEtgXym~W;yK12c#}LxyccuC;#Z6l=`7`S$=g!>o87Fx1FIz zbGuhdnvuik5(f7i;4m1ymn#a9{_)Iw+Rgl&u7J8XfR6oVDWp4D7?vi?DMNDX7bETg zJhg?r%N&WUKvK_hv~o`Z+)|>j{5w=J`rp~Z;^;ZXKu|NZbp6gcO1u6$P*BDns?HSM zEZmav)EU5M_eNkUWtGoQb1J?4$(z;A z5XX{v$SKKSkBIe+4haRowjfY?L%=K`w2j;`N#RaML)Yn796l+AWu-VkEwBKjGnj+` zV$Ur9{5UlV7@#@BrO~YMR7FK003gw=0?(r^cz2~%@OcB}EtB&>qHSc)vmlkf#hWVt z{lWpLFg@21Lk{n(yk1_ng5^!D<~yOAub_)@1GG$OmHTX3v+*mRMcabe&E$RFQd23$ zZQ}%%nIDSNgZs8`l>LTN59N_gLt84%Z=;h{`2Cdp{9*kdFti3h*;wn`3trIe)^MHw z$l(jHIiA+moI;7tnIwmjIz=fqfP!9l9n~GUv%SOLD|na}=t1(@wlxK_v3FVXwx>I@;&P${X(L0Q7N?}|TUv_jgg>%;!efgPUKpV*sZ zpDha-nlUYTI83m?-VD`Fhfcej4yUIxX$JIPS|y zS+D;YOh@p;Cjm_Dock%GNmr}Goix*=)?}upL}9C`yHKvyDE~02!{O#|sClZ)^1vl2 zFFL;L{j(ho#Al=(hkgjB~T0z2m=soK{Wi86T3g8|L;I9Kzd4!py z^w!2~N9|4~K5Z6+M>bRV5HKU3_85iHBQ(wUHdD2n+&%;YhETm6@&TS_w&P0^P!8Dq z#3!W@mgY)?f7CE9vdjzKD_zmSMMhY*-3-<-01V&w)ANc|BF#(DU4x(!x0q6=AU4z1 zTbDo4CtN5J#H+=G@bp~lJ4?I`e$cNl$Q4@MO0UY3ic*>vH}!dVM9u(2Ap)!%gaj`YaS1^5 zH^byN1b}EtgR0iGs;e3@Zc82G?!kC@cIcibE~}72y;7Bn?YO^2fc$iXXnxH_))H7- zT>xkEf?y&f)L~mUM9$!0(_pZ+mZL65ltB^RAHPykzJly~U5KdS^WX0-y!J z#o-zb<~pO&}?gRtpFai`~Hf{SbnM@sFJahZxpltp;Fej z8`-*qHZ!q}-mCd~v{-g>Z@P2I=eXN*cj)*YIutH-I9;`-h^=cvSTRl%IPN=qF&ARH zIs>=sXq(cxdKWeTVgjE#+iEr??=qh6usn*xd#mgW_xCZQa~TKRq4d3yR~LP}*c{qZ z9KFsAz7FUD0^~Q-PBFg)`b+!hBbVCy4SWPs4|m~@BgBS%E+Z)mS&^g>qX{pyyr@ZK zvhW_ag$h02-U_w6i^++Jypll0>%UhQmp|ytC6k-|`dpu(ugFpI_zF3>PBCtN8IZk+ znWTSqDSW1j;}MHK*ee@~uyx8PHt)N#5I08TjC4Jf^uF(f>przioZgbZS1v*s%bsb} z>P7&FuHXOSc+=)vUP>=kaH?^+CfQ&i5&y7Pn7FedRZ+7w(p6kjxb;k{?$RPlN?GSg zgVt})&M%{(wZD?n{9T_TcG*Ji9UgVK%H8?FP2Bpt25YlrwcM=rl0_(sT#gaWUqwX@Ndj4pG<%n0nIQMls?`Mc)CM){b82e#TWh9(7UwQA$Yngzq{Bbv&`w;Bz z);EJc<3oY^sJk=5{|!%2$z9bfezEa98(oZ!OdMZC;e7th_M95~pJuP@LPy_1_bBq| zIO$6IXxikRv99;7=uq-&r0uAO0IU(Q@~051q~Cijw6eJu4srzti?dow{PQ+h0LnYg z{(ZK;*CXO$V^$ya`)3EcAx`iq6^}sFc)}?aOEu`{He%RtejE_n2!+fLEO8nvN}fG~ zCxq@`NA$u}NLbHTSnm!Wp9o$`UVE7QK6b9yHvE zQj0ZyrC&HB_YpzJc!*uArP-gcWd*{bk1V|nx2XbA`T8_zju@GBh|#KW)B;zrLx%c$ z9L5>Aun4tPO(Ctk5W$5OC|cmnb`1FyT#gVIk-FKdnbALP?>1PgZe4D4D2VTopybRw z^~H?jPqoPrdk>{X4Fo-6wRZ{OSUVQ{--{w{#3ekONcFq~&Z)Xb!r1=r-$MrL!&BXw zEwASjAXiyAjr+cQedC^ujsT$A+Xff=Y9e~rYsil|E3c* zy&)=?2(NUt%-078WhZQI7OFhdk?|e7cG9Ys%8sl`Tf=jqyhLa575_7vxtL11Dk+{; zj)*-L$r8sE@3Jp+c1LyJV>b8_tT6K8v#xpiI65_6{S*Cblyop*Hqk5Gg{y- zQX@ zhrX}R7Ycx*srZ;fs-R*Jpn-eM5^8R`jNX^6xjmX0sE`kE?cPvuVQOiOT+Aa6yz=WS zvsZi45$Pslp}^GD^(E>4~p3BKi4DrEHf#iQPa*L zdAUH;Esi&dJgm2}R|}VK*I{-|*mob}t3qep^p%+uV-1%PqOcK(edf!qS2ue;8@K2y z*{Sht^!9UzaO|uBLCz_HG~HQ2zy9BOmNFyzbf61ELhgrV&%9@9c9m@Q%?ALa8O|(K z6>{pJ8`FdI7R_!yBq6Tp&;STlQtr;frdtZ+P4s=YKrliHA_8sL}+R z#r!;Q*Lf_*CP^jCdS9~=f$*c_&T7f3^cIq3P}9hfANDJ#XEKYm8m{s8F&vHwwQJ3= zD=!T%SlXztvv~N)2LSYeH6_Ji!77$TTiwm58s?U*T1Y{rDV(aJH1=?SemwU@_J?A2 z*P1S0sN@<1q8iQ@A&rkg@{qR&Ayvory$%FBl@3A6oWYp9`Gp9Vu`hUjCafBRS6gdq zmm+>qSy!NA@bCO(|5|_L(7tcsZ54+$Hw%#X!wBbQO>OOD_a&)eeg=@*q*J4SaoBsl@2W1IF(<9t{xFXm` znCzltb>w*te?LotA#!HP;qe&rD^P(>>q)!4oajpGzeNHi&#@0UP1$)CbLq_=N>J~1 z7a&K^BMoS=w3uUG4mShnI`!RfG3#uEZn6@_4YHq-<%Oy4XUVQNAF~Q4Rp4os#tZQU zqnuI;GOA^r?8x*^fXNX)D@V*~HH~*|gL%_7nAOUUM3T`a%O=1+N2~-fyd7pdD@B^F zJBjPev-BIU*ukYE!dnr{Ki=>I7;DIjc*XNH4PEMIC~|ygU;@Dac5Q^lk7T z)H>L-lO<2K`Ny4_r$>vuE<{7mzxO5Rx{MHfE-LPdMOM7@g~DfDt$%GlL$G93zCP9S zC7>HJ^>TdjZUtrsNub9~$*bu)-E^Ia*Be!l&b#r&e;(-NdmgaatGli&5&79$dtGFs zIkL7-!h*AMOCw zRE_@;@h~_~q#%MJ2sg@cSc|w9;Q%4z;*%Dw>5j06=t(q{t0ILK>3iLCL_GfW@JdDD zvRvM5MzT-fn`KZc_ykNiHG9Woyd3opICT2mtO)A0z?X@2(!&8^T-7OJG_#FQ$`U9R zR={3s?7-VCS%2In+|w@~gFbWoIxwD?rUZ7=gpU`9DvcZ{t`?R@3+hpA`Wq=jf+8rC z5Bmx=D^Ali)e(I(yQaS9=#W zPLOq1WP`|l7Zl61zP=FT5hA)yNq=czYxy)3CSo&bW10HpXoHR4J`wBaemOB+V7NDs zym=79Sl*9qxX-&{I4_4h$;!`G%pbqR?sNlDI+%d>LdMK%=k}h zH@O6q=jFH!$Wu%Y>6+avO9t(O6exceq`;yJa=-=4I7NQ^Ld6s$eLoPs z*#&Q=-ooe)U1aTAb$JjNQR22&r1J$vJae3*GkJNz3KTgUOceB%CV^yD3cF!g))B^A z8=<6%-XXdHuyPqB=Jqfd641N#Stew+2ApjG<&(S6!g;e~nY|mEtgr%kDLcpV_svrR zeMpV9E)JPEtDHGp8-9gk2vQAW(@R&}L>32L8N#7%0^w6R9k7jNi?0h_rG!l@3|3iK z9NFrZynhi@Kl^nS`lv{F<#r+TFgE$!JJdWhRstx|Nn~I>Exz3PAR9<^BILrCyU&Fr zuB`a@vYb4Kl-aU@Gux%NGNWe*+hw`(^Zv?EW~i(wA~Q@eND}IXo8QvpOCrKs-H%Uy zdk9G<--`C_VroQ*V!%wVV4)I+WZ4WrfH98X>lof7vetN5cd<1Pdy*pO29CV%m})=j z9KF@Z(;A>Ij|y~x7#OjBusg}kZ8rS~o|C7q#In~<6^y%$dm|-Fq-G?3bpfFw!geJX zABytPwzr%@CTWXZ4P1;E!|w?kgWmOV80_Ur_OAM2#Y> zR^?cQN^i%_lLZQJs?w~?d|ltKqSAh>0uHZD7Emq-R{8D*y%;-}?NS?b13h0dzL^?{ zz41f%{P6hD`X_^(?HF;X(2EQ6CC~2D_lg}q7%%zm+XJ#L?)z-3&!&J@#f*zwt;i0M zo+oF3TY6BZVxxR=%TAUPp3VS_E1%n9UgR1c@+;w4YyIs%v6UJCYSV(oh|pM=eXGgG zpF#D9*H>BA{udTU1;B=uj~qbop-4ydH^9xJd_fA2!;Ony0Zm7jdDQY*`(@+Zp1ui~ zoL7Absh6YMC^BA z*x+NFnp~7w7eWKok=vQPGXwsL1IUrmZj^Ja(k6OJsxlg?G^QAVI>BO!rcUgjJaXKF z4}vZ|@H!eFXq6pUzrO$X8LscYvbEsRNQ>Xk(Ca5oyjVj*{Jvm0gPinYcY4g8WALCH z@XY-fwy~wb32;w24QLCUTxpM_hIc4EE5NP7%`OSisA|CkPT<0shi}w)qmtbZs^H!< zNC*3MzZ7~rJYyJFcW8Q57DYf8c>EW-fXZ{ESn-m}%a{MFDz&Q9;3ETrZL+J|6>spW4WK#H~NKbx*G!Y6!H) zG$_({d%Vo=&_)O>mHa21eXge5uJIo*uHSsIQtEGK)Tv?rm7UTy8g$J3j|8$B9D!M+ z9O@b{v!4-5S7?&=vfg0*GKCgF`8AA=F!laAQ??qqQ@N`X)^m*dHxHw=t&Q=lLsicz zVPP!-A{U<54}y69|0C?HNa0tRF?wp%4{O@o`h&glS%4{(S}`P~|w@GiWqYsIB$=;<0q=*Vg^ zqGSn}M~jg?MHi^&6>6jzmaT5-0;|Au$tNl*WLmGyj=F!W#ockZm!J7tzw}0inyvVC z8#+u-<;at~Y6-M`E=Mr42cFaSy~t(IN6fMEVA8^j!_~}PnGYH;V@RuOnQ`GEkA(PwEa@wt!geJ)m3~{0PA4t<F#{09hdXqLq?=gTs)uF6fj7qt&wHpH=OznROT9=_yRt?AC<1_Ea1=8nN zC)D1(;CpLkOhcy>*6ICN#4Nr~*QlcB(R~qNi?eJ&mp?;i<$vLQmOf@*ms3n2= zyps%NmuFk`Y13d5r{lf&m78hFaKLH>AIVYr%}3ilf|Sz51Vy6=8Z@XGAiAZdo;ha` z3^m0uXZOmdU%q`MFH-cXRY>=x@6*{dxcuLLU*Jr)!ydL5|4SdN-Eu2FY^#W8b zOQY=u1))z(2G8l4Kq9&&SGNSUm`hK8h#fSw2j$4uj}Z4K9pW)>M@4S?t%ncln|BJBNXt>t>fTXhb5zJSj)(P}C2V{CScxj>iX%zCRufh;oSf!)cAnVGtSPFo^ zP=LWH$0&#L=hbJFHxwJJ#312Bn85s{xd%EeYIFczJgb0Nr5pX*rEviq6{=4#eVP)D zTX(q@m4m%!L+llByHP4i;=mu)V~)rfU8^Vu-x8F)Hq7vG2% z8{U*)ywY-(UK_iO37YBcA}=4v#IKSR9fTxvL(TBt7pA$=XzwSkbr%e-m^GF>qzIT^ zW_%FJnq7nu-w20^oC8?1ZAM%1uAaS;cb2x_(u)6UWOcv!OQ~s2Q|hm-pov<6w3f=v z@2zB>fyOaJ$AWk|&28yFBUjHjz1&>54zH8^tfV)E4Bmf;>JLWDc&f0CF*wI z2{3FiT=54>)(aoiZ;zTVjWi4eh>@u;99u#{=*Zo^?d;k*dpVYRMe^< zZcrt_xWLDFe4nIxP(sLP z?)#MAi7I6*FGk_fZC~zKUu3l(-babn_=M&t9$`4AF&p*|LH!F*<{0p+Y_erzz@6Fh zXL@y!nZl1|)&0y7;wV3)p}1%c%6HODw_QPJ?*HD1aa%0A$5V$7sZosFij}A!GNFRp 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 Date: Mon, 9 Oct 2023 10:18:20 +0200 Subject: [PATCH 31/49] fix: [DHIS2-15734] assign effect dynamic formId object key (#3422) --- .../reducers/descriptions/form.reducerDescription.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core_modules/capture-core/reducers/descriptions/form.reducerDescription.js b/src/core_modules/capture-core/reducers/descriptions/form.reducerDescription.js index 85ab6638ee..30dd29a15f 100644 --- a/src/core_modules/capture-core/reducers/descriptions/form.reducerDescription.js +++ b/src/core_modules/capture-core/reducers/descriptions/form.reducerDescription.js @@ -230,7 +230,7 @@ export const formsSectionsFieldsUIDesc = createReducerDescription({ return { ...state, - formId: { + [formId]: { ...state[formId], ...updatedFields, }, From ee930cb734bcd90cf592dd1afe6ad758fe79ad9c Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Mon, 9 Oct 2023 08:27:25 +0000 Subject: [PATCH 32/49] chore(release): cut 100.41.1 [skip release] ## [100.41.1](https://github.com/dhis2/capture-app/compare/v100.41.0...v100.41.1) (2023-10-09) ### Bug Fixes * [DHIS2-15734] assign effect dynamic formId object key ([#3422](https://github.com/dhis2/capture-app/issues/3422)) ([85f242b](https://github.com/dhis2/capture-app/commit/85f242b2b0c6092b46e92f087e21e102a2e1e19d)) --- CHANGELOG.md | 7 +++++++ package.json | 4 ++-- packages/rules-engine/package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a9b8e29d4b..e1e2b5e83a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [100.41.1](https://github.com/dhis2/capture-app/compare/v100.41.0...v100.41.1) (2023-10-09) + + +### Bug Fixes + +* [DHIS2-15734] assign effect dynamic formId object key ([#3422](https://github.com/dhis2/capture-app/issues/3422)) ([85f242b](https://github.com/dhis2/capture-app/commit/85f242b2b0c6092b46e92f087e21e102a2e1e19d)) + # [100.41.0](https://github.com/dhis2/capture-app/compare/v100.40.1...v100.41.0) (2023-10-03) diff --git a/package.json b/package.json index fbf2ef4982..348ef10bf7 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "capture-app", "homepage": ".", - "version": "100.41.0", + "version": "100.41.1", "cacheVersion": "6", "serverVersion": "38", "license": "BSD-3-Clause", @@ -10,7 +10,7 @@ "packages/rules-engine" ], "dependencies": { - "@dhis2/rules-engine-javascript": "100.41.0", + "@dhis2/rules-engine-javascript": "100.41.1", "@dhis2/app-runtime": "^3.9.3", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/d2-icons": "^1.0.1", diff --git a/packages/rules-engine/package.json b/packages/rules-engine/package.json index 411dcf5450..5aa6daf77f 100644 --- a/packages/rules-engine/package.json +++ b/packages/rules-engine/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/rules-engine-javascript", - "version": "100.41.0", + "version": "100.41.1", "license": "BSD-3-Clause", "main": "./build/cjs/index.js", "scripts": { From f17d087f368cf4d6b26923fd5cf4fb15d7795ba2 Mon Sep 17 00:00:00 2001 From: Simona Domnisoru Date: Thu, 12 Oct 2023 14:14:07 +0200 Subject: [PATCH 33/49] fix: [DHIS2-15827] remove effects of 'Prevent adding new events to stage' action from the form (#3418) --- .../EnrollmentPage/HiddenProgramStage.feature | 1 - .../HiddenProgramStage/index.js | 12 ------ .../ErrorText/ErrorText.component.js | 20 ---------- .../ErrorText/ErrorText.types.js | 5 --- .../ErrorText/index.js | 2 - .../FinishButtons/FinishButtons.component.js | 38 ++++--------------- .../FinishButtons/finishButtons.types.js | 4 -- .../Validated/Validated.component.js | 10 +---- .../Validated/Validated.container.js | 8 +--- .../Validated/validated.types.js | 1 - 10 files changed, 9 insertions(+), 92 deletions(-) delete mode 100644 src/core_modules/capture-core/components/WidgetEnrollmentEventNew/ErrorText/ErrorText.component.js delete mode 100644 src/core_modules/capture-core/components/WidgetEnrollmentEventNew/ErrorText/ErrorText.types.js delete mode 100644 src/core_modules/capture-core/components/WidgetEnrollmentEventNew/ErrorText/index.js diff --git a/cypress/integration/EnrollmentPage/HiddenProgramStage.feature b/cypress/integration/EnrollmentPage/HiddenProgramStage.feature index 4e6e427e3e..e13095474a 100644 --- a/cypress/integration/EnrollmentPage/HiddenProgramStage.feature +++ b/cypress/integration/EnrollmentPage/HiddenProgramStage.feature @@ -3,5 +3,4 @@ Feature: Hidden program stage Scenario: The user cannot add an event in a hidden program stage Given you add an enrollment event that will result in a rule effect to hide a program stage Then the New Postpartum care visit event button is disabled in the stages and events widget - And and an error is show in the Postpartum care visit stage And the Postpartum care visit button is disabled in the enrollmentEventNew page diff --git a/cypress/integration/EnrollmentPage/HiddenProgramStage/index.js b/cypress/integration/EnrollmentPage/HiddenProgramStage/index.js index edf6b833bd..f9e5cf69c2 100644 --- a/cypress/integration/EnrollmentPage/HiddenProgramStage/index.js +++ b/cypress/integration/EnrollmentPage/HiddenProgramStage/index.js @@ -45,18 +45,6 @@ Then('the New Postpartum care visit event button is disabled in the stages and e .should('be.disabled'); }); -Then('and an error is show in the Postpartum care visit stage', () => { - cy.visit( - '/#/enrollmentEventNew?enrollmentId=fmhIsWXVDmS&orgUnitId=s7SLtx8wmRA&programId=WSGAb5XwJ3Y&teiId=uW8Y7AIcRKA&stageId=bbKtnxRZKEP', - ); - cy.contains('[data-test="dhis2-uicore-button"]', 'Complete') - .should('be.disabled'); - cy.contains('[data-test="dhis2-uicore-button"]', 'Save without completing') - .should('be.disabled'); - cy.contains('[data-test="dhis2-uicore-noticebox-content"]', 'You can\'t add any more Postpartum care visit events') - .should('exist'); -}); - Then('the Postpartum care visit button is disabled in the enrollmentEventNew page', () => { cy.visit( '/#/enrollmentEventNew?enrollmentId=fmhIsWXVDmS&orgUnitId=s7SLtx8wmRA&programId=WSGAb5XwJ3Y&teiId=uW8Y7AIcRKA', diff --git a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/ErrorText/ErrorText.component.js b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/ErrorText/ErrorText.component.js deleted file mode 100644 index a885a48a6d..0000000000 --- a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/ErrorText/ErrorText.component.js +++ /dev/null @@ -1,20 +0,0 @@ -// @flow -import React from 'react'; -import i18n from '@dhis2/d2-i18n'; -import { NoticeBox } from '@dhis2/ui'; -import type { Props } from './ErrorText.types'; - -export const ErrorText = ({ stageName }: Props) => ( - <> -
- - - {i18n.t("You can't add any more {{ programStageName }} events", { - programStageName: stageName, - interpolation: { escapeValue: false }, - })} - - -
- -); diff --git a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/ErrorText/ErrorText.types.js b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/ErrorText/ErrorText.types.js deleted file mode 100644 index 07785c7e1a..0000000000 --- a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/ErrorText/ErrorText.types.js +++ /dev/null @@ -1,5 +0,0 @@ -// @flow - -export type Props = {| - stageName: string, -|}; diff --git a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/ErrorText/index.js b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/ErrorText/index.js deleted file mode 100644 index 2b26086840..0000000000 --- a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/ErrorText/index.js +++ /dev/null @@ -1,2 +0,0 @@ -// @flow -export { ErrorText } from './ErrorText.component'; diff --git a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/FinishButtons/FinishButtons.component.js b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/FinishButtons/FinishButtons.component.js index 1c0a36c1c8..465f807ace 100644 --- a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/FinishButtons/FinishButtons.component.js +++ b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/FinishButtons/FinishButtons.component.js @@ -3,7 +3,6 @@ import React, { type ComponentType } from 'react'; import i18n from '@dhis2/d2-i18n'; import { withStyles } from '@material-ui/core'; import { Button, spacersNum } from '@dhis2/ui'; -import { ConditionalTooltip } from 'capture-core/components/ConditionalTooltip'; import { withCancelButton } from '../../DataEntry/withCancelButton'; import { addEventSaveTypes } from '../DataEntry/addEventSaveTypes'; import type { InputProps, Props } from './finishButtons.types'; @@ -18,40 +17,17 @@ const styles = { }, }; -const FinishButtonsPlain = ({ onSave, cancelButton, hiddenProgramStage, stageName, classes }: Props) => ( +const FinishButtonsPlain = ({ onSave, cancelButton, classes }: Props) => (

- - - +
- - - +
{cancelButton}
diff --git a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/FinishButtons/finishButtons.types.js b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/FinishButtons/finishButtons.types.js index 079708e30a..dd3acb8e32 100644 --- a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/FinishButtons/finishButtons.types.js +++ b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/FinishButtons/finishButtons.types.js @@ -6,14 +6,10 @@ export type InputProps = {| onSave: (saveType: $Keys) => void, onCancel: () => void, id: string, - hiddenProgramStage: boolean, - stageName: string, |}; export type Props = {| onSave: (saveType: $Keys) => void, cancelButton: Element, - hiddenProgramStage: boolean, - stageName: string, ...CssClasses, |}; diff --git a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/Validated/Validated.component.js b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/Validated/Validated.component.js index 4f784d2b9a..4e3f2f96ef 100644 --- a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/Validated/Validated.component.js +++ b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/Validated/Validated.component.js @@ -6,7 +6,6 @@ import { Widget } from '../../Widget'; import { DataEntry } from '../DataEntry'; import { FinishButtons } from '../FinishButtons'; import { SavingText } from '../SavingText'; -import { ErrorText } from '../ErrorText'; import type { Props } from './validated.types'; const styles = () => ({ @@ -24,7 +23,6 @@ const ValidatedPlain = ({ onSave, onCancel, orgUnit, - hiddenProgramStage, id, ...passOnProps }: Props) => ( @@ -48,14 +46,8 @@ const ValidatedPlain = ({ onSave={onSave} onCancel={onCancel} id={id} - hiddenProgramStage={hiddenProgramStage} - stageName={stage.name} /> - {hiddenProgramStage ? ( - - ) : ( - - )} +
)} diff --git a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/Validated/Validated.container.js b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/Validated/Validated.container.js index c0245b477f..3d85e67cbf 100644 --- a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/Validated/Validated.container.js +++ b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/Validated/Validated.container.js @@ -1,6 +1,6 @@ // @flow import React, { useCallback } from 'react'; -import { useDispatch, useSelector } from 'react-redux'; +import { useDispatch } from 'react-redux'; import { withAskToCreateNew, withSaveHandler } from '../../DataEntry'; import { useLifecycle } from './useLifecycle'; import { useClientFormattedRulesExecutionDependencies } from './useClientFormattedRulesExecutionDependencies'; @@ -29,11 +29,6 @@ export const Validated = ({ }: ContainerProps) => { const dataEntryId = 'enrollmentEvent'; const itemId = 'newEvent'; - const rulesEffectsHiddenProgram = useSelector( - ({ rulesEffectsHiddenProgramStageDesc }) => - rulesEffectsHiddenProgramStageDesc && rulesEffectsHiddenProgramStageDesc[`${dataEntryId}-${itemId}`], - ); - const hiddenProgramStage = rulesEffectsHiddenProgram && rulesEffectsHiddenProgram[stage.id]; const rulesExecutionDependenciesClientFormatted = useClientFormattedRulesExecutionDependencies(rulesExecutionDependencies, program); @@ -132,7 +127,6 @@ export const Validated = ({ programName={program.name} orgUnit={orgUnit} rulesExecutionDependenciesClientFormatted={rulesExecutionDependenciesClientFormatted} - hiddenProgramStage={hiddenProgramStage} /> ); }; diff --git a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/Validated/validated.types.js b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/Validated/validated.types.js index 932e61a6d8..a5194d88af 100644 --- a/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/Validated/validated.types.js +++ b/src/core_modules/capture-core/components/WidgetEnrollmentEventNew/Validated/validated.types.js @@ -25,6 +25,5 @@ export type Props = {| formRef: (formInstance: any) => void, dataEntryFieldRef: (instance: any, id: string) => void, rulesExecutionDependenciesClientFormatted: RulesExecutionDependenciesClientFormatted, - hiddenProgramStage: boolean, ...CssClasses, |}; From 5efa7e9dcdecab35674212f196568d63e78b4a90 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Thu, 12 Oct 2023 12:22:10 +0000 Subject: [PATCH 34/49] chore(release): cut 100.41.2 [skip release] ## [100.41.2](https://github.com/dhis2/capture-app/compare/v100.41.1...v100.41.2) (2023-10-12) ### Bug Fixes * [DHIS2-15827] remove effects of 'Prevent adding new events to stage' action from the form ([#3418](https://github.com/dhis2/capture-app/issues/3418)) ([f17d087](https://github.com/dhis2/capture-app/commit/f17d087f368cf4d6b26923fd5cf4fb15d7795ba2)) --- CHANGELOG.md | 7 +++++++ package.json | 4 ++-- packages/rules-engine/package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e1e2b5e83a..ddcfc2c8a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [100.41.2](https://github.com/dhis2/capture-app/compare/v100.41.1...v100.41.2) (2023-10-12) + + +### Bug Fixes + +* [DHIS2-15827] remove effects of 'Prevent adding new events to stage' action from the form ([#3418](https://github.com/dhis2/capture-app/issues/3418)) ([f17d087](https://github.com/dhis2/capture-app/commit/f17d087f368cf4d6b26923fd5cf4fb15d7795ba2)) + ## [100.41.1](https://github.com/dhis2/capture-app/compare/v100.41.0...v100.41.1) (2023-10-09) diff --git a/package.json b/package.json index 348ef10bf7..64230da5bf 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "capture-app", "homepage": ".", - "version": "100.41.1", + "version": "100.41.2", "cacheVersion": "6", "serverVersion": "38", "license": "BSD-3-Clause", @@ -10,7 +10,7 @@ "packages/rules-engine" ], "dependencies": { - "@dhis2/rules-engine-javascript": "100.41.1", + "@dhis2/rules-engine-javascript": "100.41.2", "@dhis2/app-runtime": "^3.9.3", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/d2-icons": "^1.0.1", diff --git a/packages/rules-engine/package.json b/packages/rules-engine/package.json index 5aa6daf77f..88cc2da714 100644 --- a/packages/rules-engine/package.json +++ b/packages/rules-engine/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/rules-engine-javascript", - "version": "100.41.1", + "version": "100.41.2", "license": "BSD-3-Clause", "main": "./build/cjs/index.js", "scripts": { From 8f7a017c5860104620c6b7fc8c20916b00037302 Mon Sep 17 00:00:00 2001 From: Simona Domnisoru Date: Mon, 16 Oct 2023 16:17:56 +0200 Subject: [PATCH 35/49] fix: [DHIS2-15782] navigation with program stage filter (#3431) --- .../TeiWorkingListsUser.feature | 7 ++++ .../TeiWorkingListsUser/index.js | 39 +++++++++++++++++++ .../TeiWorkingListsReduxProvider.container.js | 16 ++++++-- 3 files changed, 59 insertions(+), 3 deletions(-) diff --git a/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser.feature b/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser.feature index d3f07adfe2..b0bdfef1e0 100644 --- a/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser.feature +++ b/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser.feature @@ -186,6 +186,13 @@ And you select the events scheduled today And you apply the current filter Then you see the selected option in the scheduledAt filter +@v>=39 +Scenario: The program stage working list configureation is kept when navigating +Given you open the main page with Ngelehun and WHO RMNCH Tracker context and configure a program stage working list +When you open an enrollment event from the working list +And you go back using the browser button +Then the program stage working list is loaded + @v>=40 Scenario: The user creates, updates and deletes a Program stage custom working list Given you open the main page with Ngelehun and Malaria case diagnosis and Household investigation context diff --git a/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser/index.js b/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser/index.js index 7e5825c8a1..760319bfba 100644 --- a/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser/index.js +++ b/cypress/integration/WorkingLists/TeiWorkingLists/TeiWorkingListsUser/index.js @@ -760,3 +760,42 @@ Then('the program stage custom working list filters are loaded', () => { .should('have.length', 2); }); +Given('you open the main page with Ngelehun and WHO RMNCH Tracker context and configure a program stage working list', () => { + cy.visit('#/?programId=WSGAb5XwJ3Y&orgUnitId=DiszpKrYNg8'); + cy.get('[data-test="template-selector-create-list"]') + .click(); + + cy.get('[data-test="tei-working-lists"]') + .within(() => { + cy.contains('More filters') + .click(); + cy.contains('Program stage') + .click(); + }); + + cy.get('[data-test="list-view-filter-contents"]') + .contains('Postpartum care visit') + .click(); + + cy.get('[data-test="list-view-filter-apply-button"]') + .click(); +}); + +When('you open an enrollment event from the working list', () => { + cy.contains('Linda') + .click(); +}); + +When('you go back using the browser button', () => { + cy.go('back'); +}); + +Then('the program stage working list is loaded', () => { + cy.get('[data-test="tei-working-lists"]') + .find('[data-test="more-filters"]') + .should('have.length', 2); + + cy.get('[data-test="tei-working-lists"]') + .contains('WHOMCH Hemoglobin value') + .should('exist'); +}); diff --git a/src/core_modules/capture-core/components/WorkingLists/TeiWorkingLists/ReduxProvider/TeiWorkingListsReduxProvider.container.js b/src/core_modules/capture-core/components/WorkingLists/TeiWorkingLists/ReduxProvider/TeiWorkingListsReduxProvider.container.js index 1017f47dcd..b0fed150a7 100644 --- a/src/core_modules/capture-core/components/WorkingLists/TeiWorkingLists/ReduxProvider/TeiWorkingListsReduxProvider.container.js +++ b/src/core_modules/capture-core/components/WorkingLists/TeiWorkingLists/ReduxProvider/TeiWorkingListsReduxProvider.container.js @@ -38,6 +38,8 @@ export const TeiWorkingListsReduxProvider = ({ onDeleteTemplate, onUpdateDefaultTemplate, programStage, + currentTemplateId, + viewPreloaded, ...commonStateManagementProps } = useWorkingListsCommonStateManagement(storeId, TEI_WORKING_LISTS_TYPE, program); const dispatch = useDispatch(); @@ -47,9 +49,15 @@ export const TeiWorkingListsReduxProvider = ({ }, [dispatch, programId, storeId, selectedTemplateId]); useEffect(() => { - selectedTemplateId && onSelectTemplate && onSelectTemplate(selectedTemplateId); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); + // This hook should only fire when you navigate from the search page to the main page with a working list selected + if (selectedTemplateId && + selectedTemplateId !== currentTemplateId && + !viewPreloaded && + onSelectTemplate + ) { + onSelectTemplate(selectedTemplateId); + } + }, [selectedTemplateId, viewPreloaded, currentTemplateId, onSelectTemplate]); const onSelectListRow = useCallback(({ id }) => { const record = records[id]; @@ -92,6 +100,8 @@ export const TeiWorkingListsReduxProvider = ({ return ( Date: Mon, 16 Oct 2023 14:30:46 +0000 Subject: [PATCH 36/49] chore(release): cut 100.41.3 [skip release] ## [100.41.3](https://github.com/dhis2/capture-app/compare/v100.41.2...v100.41.3) (2023-10-16) ### Bug Fixes * [DHIS2-15782] navigation with program stage filter ([#3431](https://github.com/dhis2/capture-app/issues/3431)) ([8f7a017](https://github.com/dhis2/capture-app/commit/8f7a017c5860104620c6b7fc8c20916b00037302)) --- CHANGELOG.md | 7 +++++++ package.json | 4 ++-- packages/rules-engine/package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ddcfc2c8a2..7e6fc6a44c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [100.41.3](https://github.com/dhis2/capture-app/compare/v100.41.2...v100.41.3) (2023-10-16) + + +### Bug Fixes + +* [DHIS2-15782] navigation with program stage filter ([#3431](https://github.com/dhis2/capture-app/issues/3431)) ([8f7a017](https://github.com/dhis2/capture-app/commit/8f7a017c5860104620c6b7fc8c20916b00037302)) + ## [100.41.2](https://github.com/dhis2/capture-app/compare/v100.41.1...v100.41.2) (2023-10-12) diff --git a/package.json b/package.json index 64230da5bf..08fc321e76 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "capture-app", "homepage": ".", - "version": "100.41.2", + "version": "100.41.3", "cacheVersion": "6", "serverVersion": "38", "license": "BSD-3-Clause", @@ -10,7 +10,7 @@ "packages/rules-engine" ], "dependencies": { - "@dhis2/rules-engine-javascript": "100.41.2", + "@dhis2/rules-engine-javascript": "100.41.3", "@dhis2/app-runtime": "^3.9.3", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/d2-icons": "^1.0.1", diff --git a/packages/rules-engine/package.json b/packages/rules-engine/package.json index 88cc2da714..2280715107 100644 --- a/packages/rules-engine/package.json +++ b/packages/rules-engine/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/rules-engine-javascript", - "version": "100.41.2", + "version": "100.41.3", "license": "BSD-3-Clause", "main": "./build/cjs/index.js", "scripts": { From c82ce9f69159878f5ca9cc2e6ca9944544099368 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Sun, 22 Oct 2023 03:35:24 +0200 Subject: [PATCH 37/49] fix(translations): sync translations from transifex (master) Automatically merged. --- i18n/es.po | 28 +++++++++++----- i18n/nb.po | 98 +++++++++++++++++++++++++++++++++++++----------------- 2 files changed, 87 insertions(+), 39 deletions(-) diff --git a/i18n/es.po b/i18n/es.po index b74921f8ef..cd154429ff 100644 --- a/i18n/es.po +++ b/i18n/es.po @@ -17,7 +17,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" +"POT-Creation-Date: 2023-09-29T14:14:34.330Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: Enzo Nicolas Rossi , 2023\n" "Language-Team: Spanish (https://app.transifex.com/hisp-uio/teams/100509/es/)\n" @@ -172,6 +172,15 @@ msgstr "Coordenada" msgid "Enrollment" msgstr "Inscripción" +msgid "Complete event" +msgstr "Completar el evento" + +msgid "{{ stageName }} - Basic info" +msgstr "" + +msgid "{{ stageName }} - Status" +msgstr "" + msgid "Please select {{categoryName}}" msgstr "Seleccione {{categoryName}}" @@ -192,15 +201,18 @@ msgstr "Cancelar" msgid "Metadata error. see log for details" msgstr "Error de metadatos. ver registro para más detalles" +msgid "{{ stageName }} - Details" +msgstr "" + +msgid "{{ stageName }} - {{ sectionName }}" +msgstr "" + msgid "Assigned user" msgstr "Usuario asignado" msgid "Search for user" msgstr "Buscar usuario" -msgid "Complete event" -msgstr "Completar el evento" - msgid "Basic info" msgstr "Información básica" @@ -438,13 +450,13 @@ msgid "Days in the future" msgstr "Días en el futuro" msgid "From" -msgstr "De" +msgstr "Desde" msgid "Days in the past" msgstr "Días en el pasado" msgid "To" -msgstr "Para" +msgstr "Hasta" msgid "This week" msgstr "Esta semana" @@ -791,7 +803,7 @@ msgid "There was an error loading the page" msgstr "Hubo un error al cargar la página" msgid "Choose a registering unit to start reporting" -msgstr "Elija una unidad de registro para comenzar a informar" +msgstr "Seleccione una unidad de registro para comenzar a informar" msgid "There are no feedbacks for this event" msgstr "No hay comentarios para este evento." @@ -866,7 +878,7 @@ msgid "View enrollment" msgstr "Ver inscripción" msgid "Create for" -msgstr "Crear para" +msgstr "Crear" msgid "" "You can also choose a program from the top bar and create in that program" diff --git a/i18n/nb.po b/i18n/nb.po index 036767eb33..59b9da637b 100644 --- a/i18n/nb.po +++ b/i18n/nb.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-09-04T07:07:59.195Z\n" +"POT-Creation-Date: 2023-09-29T14:14:34.330Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: Karoline Tufte Lien , 2023\n" "Language-Team: Norwegian Bokmål (https://app.transifex.com/hisp-uio/teams/100509/nb/)\n" @@ -82,6 +82,7 @@ msgstr "Feil" msgid "" "Plugins are not yet available - Please contact your system administrator" msgstr "" +"Plugins er ikke tilgjengelig ennå - Ta kontakt med systemadministratoren din" msgid "This value is validating" msgstr "Denne verdien validerer" @@ -158,8 +159,17 @@ msgstr "Koordinater" msgid "Enrollment" msgstr "Registrering" +msgid "Complete event" +msgstr "Fullfør hendelse" + +msgid "{{ stageName }} - Basic info" +msgstr "{{ stageName }} - Grunnleggende informasjon" + +msgid "{{ stageName }} - Status" +msgstr "{{ stageName }} - Status" + msgid "Please select {{categoryName}}" -msgstr "" +msgstr "Velg {{categoryName}}" msgid "A future date is not allowed" msgstr "En fremtidig dato er ikke tillatt" @@ -176,15 +186,18 @@ msgstr "Avbryt" msgid "Metadata error. see log for details" msgstr "Metadata feil, se logg for detaljer" +msgid "{{ stageName }} - Details" +msgstr "{{ stageName }} - Detaljer" + +msgid "{{ stageName }} - {{ sectionName }}" +msgstr "{{ stageName }} - {{ sectionName }}" + msgid "Assigned user" msgstr "Tildelt programbruker" msgid "Search for user" msgstr "Søk etter bruker" -msgid "Complete event" -msgstr "Fullfør hendelse" - msgid "Basic info" msgstr "Grunnleggende informasjon" @@ -281,7 +294,7 @@ msgstr "" "relasjon" msgid "Yes, discard changes" -msgstr "" +msgstr "Ja, forkast endringer" msgid "No, cancel" msgstr "Nei, avbryt" @@ -385,6 +398,9 @@ msgid "" "This event has unsaved changes. Leaving this page without saving will lose " "these changes. Are you sure you want to discard unsaved changes?" msgstr "" +"Denne hendelsen har ulagrede endringer. Hvis du forlater denne siden uten å " +"lagre, mister du disse endringene. Er du sikker på at du vil forkaste " +"ulagrede endringer?" msgid "No events to display" msgstr "Ingen hendelser å vise" @@ -498,7 +514,7 @@ msgid "Type to filter options" msgstr "Skriv for å filtrere alternativer" msgid "No match found" -msgstr "" +msgstr "Ingen treff funnet" msgid "Search" msgstr "Søk" @@ -597,13 +613,13 @@ msgid "Write comment" msgstr "Skriv kommentar" msgid "was blanked out and hidden by your last action" -msgstr "" +msgstr "ble tømt og skjult av den siste handlingen din" msgid "Notice" -msgstr "" +msgstr "Merknad" msgid "Close the notice" -msgstr "" +msgstr "Lukk merknaden" msgid "Use new Enrollment dashboard for {{programName}}" msgstr "Bruk nytt registreringsdashbord for {{programName}}" @@ -619,18 +635,30 @@ msgid "" "functionality in Capture is ongoing and will be added in upcoming app " "releases." msgstr "" +"Ved å klikke på \"meld på\" nedenfor, vil du begynne å bruke det nye " +"registreringsdashbordet i Capture-appen for dette Tracker-programmet. For " +"øyeblikket er det noe funksjonalitet fra Tracker Capture som ennå ikke er " +"lagt til, inkludert relasjons- og henvisningsfunksjonalitet. Arbeidet med å " +"inkludere denne Tracker-funksjonaliteten i Capture pågår og vil bli lagt til" +" i kommende apputgivelser." msgid "" "The core team appreciates any feedback on this new functionality which is " "currently being beta tested, please report any issues and feedback in the " "DHIS2 JIRA project." msgstr "" +"Kjerneteamet setter pris på all tilbakemelding på denne nye funksjonaliteten" +" som for øyeblikket blir betatestet, vennligst rapporter eventuelle " +"problemer og tilbakemeldinger i DHIS2 JIRA-prosjektet." msgid "" "Click the button below to opt-in to the new enrollment dashboard " "functionality in the Capture app (beta) for this Tracker program for all " "users." msgstr "" +"Klikk på knappen nedenfor for å melde deg på den nye funksjonen for " +"registreringsdashbord i Capture-appen (beta) for dette Tracker-programmet " +"for alle brukere." msgid "Yes, opt in" msgstr "Ja, meld på" @@ -653,6 +681,8 @@ msgstr "" msgid "" "An error occurred while fetching enrollments. Please enter a valid url." msgstr "" +"Det oppsto en feil under henting av registreringer. Vennligst skriv inn en " +"gyldig url." msgid "Enrollment Dashboard" msgstr "Registreringsdashbord" @@ -694,19 +724,19 @@ msgstr "" "{{programName}} har kategorier. Velg alle kategorier for å se dashbordet." msgid "Invalid enrollment id {{enrollmentId}}." -msgstr "" +msgstr "Ugyldig registrerings-ID {{enrollmentId}}" msgid "Choose an enrollment to view the dashboard." msgstr "Velg en registrering for å se dashbordet." msgid "There are no active enrollments." -msgstr "" +msgstr "Det er ingen aktive registreringer." msgid "Add new enrollment for {{teiDisplayName}} in this program." -msgstr "" +msgstr "Legg til ny registrering for {{teiDisplayName}} i dette programmet." msgid "No access to program owner." -msgstr "" +msgstr "Ingen tilgang til programeier." msgid "{{teiDisplayName}} is not enrolled in this program." msgstr "{{teiDisplayName}} er ikke registrert i dette programmet." @@ -774,7 +804,7 @@ msgid "Refer" msgstr "Henvis" msgid "You can't add any more {{ programStageName }} events" -msgstr "" +msgstr "Du kan ikke legge til flere {{ programStageName }}-hendelser" msgid "Cancel without saving" msgstr "Avbryt uten å lagre" @@ -839,7 +869,7 @@ msgid "New Enrollment in program{{escape}} {{programName}}" msgstr "Ny registrering i programmet{{escape}} {{programName}}" msgid "Save {{trackedEntityTypeName}}" -msgstr "" +msgstr "Lagre {{trackedEntityTypeName}}" msgid "Save {{trackedEntityName}}" msgstr "Lagre {{trackedEntityName}}" @@ -957,13 +987,13 @@ msgid "Add relationship" msgstr "Legg til relasjon" msgid "No results found for " -msgstr "" +msgstr "Ingen resultater funnet for" msgid "Registering unit" msgstr "Registreringsenhet" msgid "Choose a registering unit" -msgstr "" +msgstr "Velg en registreringsenhet" msgid "Clear selection" msgstr "Fjern valg" @@ -972,13 +1002,13 @@ msgid "No programs available." msgstr "Ingen programmer tilgjengelig." msgid "Search for a program" -msgstr "" +msgstr "Søk for et program" msgid "Some programs are being filtered by the chosen registering unit" -msgstr "" +msgstr "Noen programmer blir filtrert av den valgte registreringsenheten" msgid "Show all programs" -msgstr "" +msgstr "Vis alle programmer" msgid "Choose a program" msgstr "Velg et program" @@ -1055,7 +1085,7 @@ msgid "Cannot search in all programs" msgstr "Kan ikke søke i alle programmer" msgid "Missing search criteria" -msgstr "" +msgstr "Manglende søkekriterier" msgid "Results found" msgstr "Resultater funnet" @@ -1096,23 +1126,27 @@ msgid "open the Tracker Capture app" msgstr "åpne Tracker Capture app" msgid "This program is protected" -msgstr "" +msgstr "Dette programmet er beskyttet" msgid "Reason to check for enrollments" -msgstr "" +msgstr "Grunn til å sjekke for registreringer" msgid "" "Describe the reason you are checking for enrollments in this protected " "program" msgstr "" +"Beskriv årsaken til at du ser etter registreringer i dette beskyttede " +"programmet" msgid "Check for enrollments" -msgstr "" +msgstr "Se etter registreringer" msgid "" "You must provide a reason to check for enrollments in this protected " "program. All activity will be logged." msgstr "" +"Du må oppgi en grunn for å se etter registreringer i dette beskyttede " +"programmet. All aktivitet vil bli logget." msgid "Save comment" msgstr "Lagre kommentar" @@ -1159,6 +1193,8 @@ msgstr "Merk for oppfølging" msgid "Existing dates for auto-generated events will not be updated." msgstr "" +"Eksisterende datoer for automatisk genererte hendelser vil ikke bli " +"oppdatert." msgid "Enrollment date" msgstr "Registreringsdato" @@ -1322,7 +1358,7 @@ msgid "New {{ eventName }} event" msgstr "Ny {{ eventName }} hendelse" msgid "To open this event, please wait until saving is complete" -msgstr "" +msgstr "For å åpne denne hendelsen, vennligst vent til lagringen er fullført" msgid "Show {{ rest }} more" msgstr "Vis {{ rest }} flere" @@ -1388,19 +1424,19 @@ msgid "Choose a program stage to filter by {{label}}" msgstr "Velg en programfase å filtrere etter {{label}}" msgid "Active enrollments" -msgstr "" +msgstr "Aktive registreringer" msgid "Completed enrollments" -msgstr "" +msgstr "Fullførte registreringer" msgid "Cancelled enrollments" -msgstr "" +msgstr "Avbrutte registreringer" msgid "Working list could not be updated" msgstr "Arbeidslisten kunne ikke oppdateres" msgid "an error occurred loading the working lists" -msgstr "" +msgstr "det oppstod en feil ved lasting av arbeidslistene" msgid "an error occurred loading Tracked entity instance lists" msgstr "det oppstod en feil ved lasting av lister over sporede enheter" @@ -1535,7 +1571,7 @@ msgid "Set area" msgstr "Sett område" msgid "Area on map saved" -msgstr "" +msgstr "Området på kartet er lagret" msgid "Compatibility mode" msgstr "Kompabilitetsmodus" From 3fb9a8555f9bfbcaefeb70064001ef4f4adb5652 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Sun, 22 Oct 2023 01:44:41 +0000 Subject: [PATCH 38/49] chore(release): cut 100.41.4 [skip release] ## [100.41.4](https://github.com/dhis2/capture-app/compare/v100.41.3...v100.41.4) (2023-10-22) ### Bug Fixes * **translations:** sync translations from transifex (master) ([c82ce9f](https://github.com/dhis2/capture-app/commit/c82ce9f69159878f5ca9cc2e6ca9944544099368)) --- CHANGELOG.md | 7 +++++++ package.json | 4 ++-- packages/rules-engine/package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e6fc6a44c..389a160ed4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [100.41.4](https://github.com/dhis2/capture-app/compare/v100.41.3...v100.41.4) (2023-10-22) + + +### Bug Fixes + +* **translations:** sync translations from transifex (master) ([c82ce9f](https://github.com/dhis2/capture-app/commit/c82ce9f69159878f5ca9cc2e6ca9944544099368)) + ## [100.41.3](https://github.com/dhis2/capture-app/compare/v100.41.2...v100.41.3) (2023-10-16) diff --git a/package.json b/package.json index 08fc321e76..3535340f55 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "capture-app", "homepage": ".", - "version": "100.41.3", + "version": "100.41.4", "cacheVersion": "6", "serverVersion": "38", "license": "BSD-3-Clause", @@ -10,7 +10,7 @@ "packages/rules-engine" ], "dependencies": { - "@dhis2/rules-engine-javascript": "100.41.3", + "@dhis2/rules-engine-javascript": "100.41.4", "@dhis2/app-runtime": "^3.9.3", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/d2-icons": "^1.0.1", diff --git a/packages/rules-engine/package.json b/packages/rules-engine/package.json index 2280715107..d2f211fa8a 100644 --- a/packages/rules-engine/package.json +++ b/packages/rules-engine/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/rules-engine-javascript", - "version": "100.41.3", + "version": "100.41.4", "license": "BSD-3-Clause", "main": "./build/cjs/index.js", "scripts": { From b0eb58e64f9cd3e26046bf51edc86ad1f0fd0a6e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Oct 2023 16:08:59 +0100 Subject: [PATCH 39/49] chore(deps): bump @babel/traverse from 7.22.5 to 7.23.2 (#3445) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 99 +++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 86 insertions(+), 13 deletions(-) diff --git a/yarn.lock b/yarn.lock index 983b457b91..6e6a2cb4f8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -55,6 +55,14 @@ dependencies: "@babel/highlight" "^7.22.5" +"@babel/code-frame@^7.22.13": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" + integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== + dependencies: + "@babel/highlight" "^7.22.13" + chalk "^2.4.2" + "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.5.tgz#b1f6c86a02d85d2dd3368a2b67c09add8cd0c255" @@ -122,6 +130,16 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" +"@babel/generator@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" + integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== + dependencies: + "@babel/types" "^7.23.0" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" @@ -195,6 +213,11 @@ resolve "^1.14.2" semver "^6.1.2" +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + "@babel/helper-environment-visitor@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" @@ -208,6 +231,14 @@ "@babel/template" "^7.22.5" "@babel/types" "^7.22.5" +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + "@babel/helper-hoist-variables@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" @@ -298,6 +329,13 @@ dependencies: "@babel/types" "^7.22.5" +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-string-parser@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" @@ -308,6 +346,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + "@babel/helper-validator-option@^7.16.7", "@babel/helper-validator-option@^7.21.0", "@babel/helper-validator-option@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" @@ -341,11 +384,25 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/highlight@^7.22.13": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" + integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + "@babel/parser@^7.1.0", "@babel/parser@^7.1.6", "@babel/parser@^7.12.3", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.5", "@babel/parser@^7.7.0", "@babel/parser@^7.7.5", "@babel/parser@^7.9.4": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.5.tgz#721fd042f3ce1896238cf1b341c77eb7dee7dbea" integrity sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q== +"@babel/parser@^7.22.15", "@babel/parser@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" + integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz#87245a21cd69a73b0b81bcda98d443d6df08f05e" @@ -1241,19 +1298,28 @@ "@babel/parser" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.12.1", "@babel/traverse@^7.22.5", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2", "@babel/traverse@^7.7.4": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.5.tgz#44bd276690db6f4940fdb84e1cb4abd2f729ccd1" - integrity sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ== +"@babel/template@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.12.1", "@babel/traverse@^7.22.5", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2", "@babel/traverse@^7.7.4": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8" + integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.0" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.5" - "@babel/parser" "^7.22.5" - "@babel/types" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.0" + "@babel/types" "^7.23.0" debug "^4.1.0" globals "^11.1.0" @@ -1274,6 +1340,15 @@ "@babel/helper-validator-identifier" "^7.22.5" to-fast-properties "^2.0.0" +"@babel/types@^7.22.15", "@babel/types@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" + integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -19197,10 +19272,8 @@ watchpack@^1.7.4: resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== dependencies: - chokidar "^3.4.1" graceful-fs "^4.1.2" neo-async "^2.5.0" - watchpack-chokidar2 "^2.0.1" optionalDependencies: chokidar "^3.4.1" watchpack-chokidar2 "^2.0.1" From 79ecede5d78c6412b1887b38ab670961daa548e6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Oct 2023 08:16:51 +0100 Subject: [PATCH 40/49] chore(deps): bump get-func-name from 2.0.0 to 2.0.2 (#3442) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 6e6a2cb4f8..eae571c75c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9612,9 +9612,9 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== + version "2.0.2" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" + integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: version "1.2.0" From cafed8d8aac3fe9955739b1a8ee2cdde57722967 Mon Sep 17 00:00:00 2001 From: eirikhaugstulen Date: Tue, 24 Oct 2023 12:01:53 +0200 Subject: [PATCH 41/49] feat: [DHIS2-12361] Tracked Entity Relationships widget MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: jasminenguyennn Co-authored-by: JasmineNg <89806888+jasminenguyennn@users.noreply.github.com> Co-authored-by: Joakim Storløkken Melseth --- .../EventWorkingListsUser/index.js | 2 +- ...nt-dash-relationship-widget-add-choose.png | Bin 0 -> 233627 bytes ...-dash-relationship-widget-add-existing.png | Bin 0 -> 316534 bytes ...lment-dash-relationship-widget-add-new.png | Bin 0 -> 339942 bytes ...nrollment-dash-relationship-widget-add.png | Bin 0 -> 304462 bytes .../enrollment-dash-relationship-widget.png | Bin 0 -> 252617 bytes docs/user/using-the-capture-app.md | 35 ++- i18n/en.pot | 61 +++- package.json | 2 +- src/components/App/AppPages.component.js | 26 +- .../EnrollmentRegistrationEntry.container.js | 25 +- .../EnrollmentRegistrationEntry.types.js | 24 ++ .../hooks/useBuildEnrollmentPayload.js | 188 ++++++++++++ .../hooks/useLifecycle.js | 4 +- .../TeiRegistrationEntry.container.js | 25 +- .../TeiRegistrationEntry.types.js | 14 +- .../hooks/useBuildTeiPayload.js | 81 +++++ .../types/duplicateCheckOnSave.types.js | 6 +- .../useDuplicateCheckerOnSave.types.js | 3 +- .../withDuplicateCheckOnSave.types.js | 5 +- .../hooks/useEnrollmentFormFoundation.js | 1 + .../hooks/useTrackedEntityTypeCollection.js | 2 + .../Pages/Enrollment/EnrollmentPage.epics.js | 1 + .../EnrollmentPageDefault.component.js | 149 +++++---- .../EnrollmentPageDefault.container.js | 4 + .../EnrollmentPageDefault.types.js | 6 +- .../AddRelationshipRefWrapper.component.js | 21 ++ .../AddRelationshipRefWrapper/index.js | 3 + .../EnrollmentEditEventPage.component.js | 183 ++++++----- .../EnrollmentEditEventPage.container.js | 10 +- .../EnrollmentEditEventPage.types.js | 3 + .../RegistrationDataEntry.actions.js | 17 +- .../RegistrationDataEntry.component.js | 15 +- .../RegistrationDataEntry.container.js | 8 +- .../RegistrationDataEntry.epics.js | 104 +------ .../helpers/deriveAutoGenerateEvents.js | 2 +- ...deriveFirstStageDuringRegistrationEvent.js | 2 +- .../getStageWithOpenAfterEnrollment.js | 6 +- .../DataEntryEnrollment.component.js | 5 +- ...ataEntryTrackedEntityInstance.component.js | 63 ++-- .../dataEntryTrackedEntityInstance.types.js | 8 +- .../RegisterTei/RegisterTei.container.js | 3 +- .../TeiRelationshipSearchResults.component.js | 4 +- .../useCommonEnrollmentDomainData.types.js | 2 +- .../DataEntryEnrollment.component.js | 42 +++ .../DataEntryEnrollment.container.js | 23 ++ .../Enrollment/dataEntryEnrollment.types.js | 20 ++ .../Enrollment/enrollment.module.css | 11 + .../Enrollment/enrollment.selectors.js | 23 ++ .../RegisterTei/DataEntry/Enrollment/index.js | 2 + .../DataEntry/RegisterTeiDataEntry.actions.js | 14 + .../RegisterTeiDataEntry.component.js | 37 +++ .../RegisterTeiDataEntry.container.js | 20 ++ .../DataEntryTrackedEntityInstance.js | 52 ++++ .../dataEntryTrackedEntityInstance.types.js | 30 ++ .../DataEntry/TrackedEntityInstance/index.js | 2 + .../TrackedEntityInstance/tei.selectors.js | 18 ++ .../trackedEntityInstance.module.css | 11 + .../RegisterTei/RegisterTei.component.js | 130 ++++++++ .../RegisterTei/RegisterTei.container.js | 34 +++ .../RegisterTei/RegisterTei.types.js | 23 ++ .../ComposedProgramSelector.component.js | 157 ++++++++++ .../ProgramSelector.component.js | 44 +++ .../ProgramSelector.container.js | 22 ++ .../ProgramSelector/index.js | 2 + .../ComposedRegUnitSelector.component.js | 55 ++++ .../RegUnitSelector.component.js | 67 ++++ .../RegUnitSelector.container.js | 22 ++ .../RegUnitSelector/index.js | 3 + .../RegistrationSection.component.js | 43 +++ .../SectionContents.component.js | 17 ++ .../RegisterTei/RegistrationSection/index.js | 3 + .../registrationSection.actions.js | 22 ++ .../exposedHelpers/getRelationshipNewTei.js | 141 +++++++++ .../RegisterTei/index.js | 12 + .../RegisterTei/registerTei.actions.js | 15 + .../RegisterTei/registerTei.const.js | 3 + .../RegisterTei/registerTei.selectors.js | 23 ++ .../SearchOrgUnitSelector.component.js | 152 ++++++++++ .../SearchOrgUnitSelector.container.js | 46 +++ ...archOrgUnitSelectorRefHandler.component.js | 18 ++ .../searchOrgUnitSelector.actions.js | 30 ++ .../searchOrgUnitSelector.epics.js | 77 +++++ .../SearchProgramSelector.component.js | 45 +++ .../SearchProgramSelector.container.js | 20 ++ .../getProgramOptions.js | 12 + .../searchProgramSelector.actions.js | 15 + .../TeiSearch/TeiSearch.component.js | 162 ++++++++++ .../TeiSearch/TeiSearch.container.js | 53 ++++ .../TeiSearch/TeiSearch.types.js | 28 ++ .../TeiSearchForm/TeiSearchForm.component.js | 181 +++++++++++ .../TeiSearchForm/TeiSearchForm.container.js | 23 ++ .../TeiSearchResults.component.js | 11 + .../TeiSearchResults.container.js | 29 ++ .../TeiSearchResults.types.js | 24 ++ .../TeiSearch/actions/teiSearch.actions.js | 70 +++++ .../TeiSearch/epics/teiSearch.epics.js | 223 ++++++++++++++ .../TeiSearch/getSearchFormId.js | 10 + .../TeiSearch/getSearchGroups.js | 19 ++ .../TeiSearch/serverToFilters.js | 39 +++ ...ackedEntityRelationshipsWrapper.actions.js | 13 + ...kedEntityRelationshipsWrapper.component.js | 104 +++++++ ...TrackedEntityRelationshipsWrapper.epics.js | 87 ++++++ ...TrackedEntityRelationshipsWrapper.types.js | 14 + .../index.js | 6 + .../common/TEIRelationshipsWidget/index.js | 4 + .../useLinkedRecordClick.js | 43 +++ .../useTEIRelationshipsWidgetMetadata.js | 47 +++ .../Relationships/Relationships.component.js | 3 +- .../SearchForm/SearchForm.component.js | 2 +- .../Section/SectionHeaderSimple.component.js | 12 +- .../Widget/WidgetCollapsible.component.js | 1 - .../Breadcrumbs/Breadcrumbs.component.js | 86 ++++++ .../Breadcrumbs/breadcrumbs.types.js | 13 + .../Breadcrumbs/index.js | 2 + .../LinkedEntityMetadataSelector.component.js | 28 ++ .../LinkedEntityMetadataSelector/index.js | 3 + .../linkedEntityMetadataSelector.types.js | 37 +++ .../useApplicableTypesAndSides.js | 179 +++++++++++ .../NewTrackedEntityRelationship.component.js | 286 ++++++++++++++++++ .../NewTrackedEntityRelationship.const.js | 5 + .../NewTrackedEntityRelationship.container.js | 73 +++++ .../NewTrackedEntityRelationship.portal.js | 10 + .../NewTrackedEntityRelationship.types.js | 76 +++++ .../RetrieverModeSelector.component.js | 45 +++ .../RetrieverModeSelector/index.js | 2 + .../retrieverModeSelector.types.js | 12 + .../common/index.js | 2 + .../common/targetSides.js | 9 + .../hooks/useAddRelationship.js | 94 ++++++ .../NewTrackedEntityRelationship/index.js | 2 + .../wizardSteps.const.js | 6 + ...dgetTrackedEntityRelationship.component.js | 70 +++++ .../WidgetTrackedEntityRelationship.types.js | 47 +++ .../hooks/useTrackedEntityTypeName.js | 31 ++ .../WidgetTrackedEntityRelationship/index.js | 16 + .../LinkedEntityMetadataSelector.component.js | 73 +++++ .../LinkedEntityMetadataSelector/index.js | 3 + .../linkedEntityMetadataSelector.types.js | 36 +++ .../LinkedEntitiesViewer.component.js | 45 +++ .../LinkedEntityTable.component.js | 71 +++++ .../LinkedEntityTableBody.component.js | 86 ++++++ .../LinkedEntityTableHeader.component.js | 25 ++ .../RelationshipsWidget.component.js | 94 ++++++ .../common/RelationshipsWidget/index.js | 3 + .../linkedEntitiesViewer.types.js | 12 + .../linkedEntityTable.types.js | 14 + .../linkedEntityTableBody.types.js | 14 + .../linkedEntityTableHeader.types.js | 6 + .../relationshipsWidget.types.js | 19 ++ .../types/GroupedLinkedEntities.types.js | 51 ++++ .../common/RelationshipsWidget/types/index.js | 3 + .../types/navigation.types.js | 15 + .../useGroupedLinkedEntities.js | 218 +++++++++++++ .../useRelationshipTypes.js | 92 ++++++ .../common/Types/RelationshipData.types.js | 32 ++ .../common/Types/RelationshipTypes.types.js | 92 ++++++ .../WidgetsRelationship/common/Types/index.js | 4 + .../WidgetsRelationship/common/constants.js | 10 + .../common/useRelationships/index.js | 2 + .../useRelationships/useRelationships.js | 31 ++ .../extractElementIdsFromRelationshipTypes.js | 32 ++ .../common/utils/formatRelationshipTypes.js | 82 +++++ .../WidgetsRelationship/common/utils/index.js | 3 + .../utils/replaceElementIdsWithElement.js | 69 +++++ .../components/WidgetsRelationship/index.js | 3 + .../capture-core/flow/app-runtime_v2.x.x.js | 15 +- .../RelationshipType/RelationshipType.js | 18 ++ .../storeRelationshipTypes.js | 2 +- .../enrollmentPage.reducerDescription.js | 1 + .../organisationUnits.reducerDescription.js | 2 +- .../relationships/relationshipRequests.js | 2 +- .../storageControllers/cache.types.js | 2 + .../capture-core/storageControllers/index.js | 1 + .../useProgramFromIndexedDB.js | 4 +- .../useTrackedEntityTypeFromIndexedDB.js | 4 +- .../utils/reactQueryHelpers/index.js | 9 +- .../utils/reactQueryHelpers/query/index.js | 3 +- .../query/useApiDataQuery.js | 27 ++ .../query/useMetadataQuery.js | 38 ++- .../query/useMetadataQuery.types.js | 9 +- .../reactQueryHelpers.const.js | 4 + .../utils/routing/buildUrlQueryString.js | 5 +- .../capture-core/utils/uid/generateUID.js | 18 ++ src/epics/trackerCapture.epics.js | 6 + 185 files changed, 6064 insertions(+), 369 deletions(-) create mode 100644 docs/user/resources/images/enrollment-dash-relationship-widget-add-choose.png create mode 100644 docs/user/resources/images/enrollment-dash-relationship-widget-add-existing.png create mode 100644 docs/user/resources/images/enrollment-dash-relationship-widget-add-new.png create mode 100644 docs/user/resources/images/enrollment-dash-relationship-widget-add.png create mode 100644 docs/user/resources/images/enrollment-dash-relationship-widget.png create mode 100644 src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/hooks/useBuildEnrollmentPayload.js create mode 100644 src/core_modules/capture-core/components/DataEntries/TeiRegistrationEntry/hooks/useBuildTeiPayload.js create mode 100644 src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/AddRelationshipRefWrapper/AddRelationshipRefWrapper.component.js create mode 100644 src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/AddRelationshipRefWrapper/index.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/Enrollment/DataEntryEnrollment.component.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/Enrollment/DataEntryEnrollment.container.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/Enrollment/dataEntryEnrollment.types.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/Enrollment/enrollment.module.css create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/Enrollment/enrollment.selectors.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/Enrollment/index.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/RegisterTeiDataEntry.actions.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/RegisterTeiDataEntry.component.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/RegisterTeiDataEntry.container.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/TrackedEntityInstance/DataEntryTrackedEntityInstance.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/TrackedEntityInstance/dataEntryTrackedEntityInstance.types.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/TrackedEntityInstance/index.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/TrackedEntityInstance/tei.selectors.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/TrackedEntityInstance/trackedEntityInstance.module.css create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegisterTei.component.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegisterTei.container.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegisterTei.types.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegistrationSection/ProgramSelector/ComposedProgramSelector.component.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegistrationSection/ProgramSelector/ProgramSelector.component.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegistrationSection/ProgramSelector/ProgramSelector.container.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegistrationSection/ProgramSelector/index.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegistrationSection/RegUnitSelector/ComposedRegUnitSelector.component.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegistrationSection/RegUnitSelector/RegUnitSelector.component.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegistrationSection/RegUnitSelector/RegUnitSelector.container.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegistrationSection/RegUnitSelector/index.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegistrationSection/RegistrationSection.component.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegistrationSection/SectionContents.component.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegistrationSection/index.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegistrationSection/registrationSection.actions.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/exposedHelpers/getRelationshipNewTei.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/index.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/registerTei.actions.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/registerTei.const.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/registerTei.selectors.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TeiSearch/SearchOrgUnitSelector/SearchOrgUnitSelector.component.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TeiSearch/SearchOrgUnitSelector/SearchOrgUnitSelector.container.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TeiSearch/SearchOrgUnitSelector/SearchOrgUnitSelectorRefHandler.component.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TeiSearch/SearchOrgUnitSelector/searchOrgUnitSelector.actions.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TeiSearch/SearchOrgUnitSelector/searchOrgUnitSelector.epics.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TeiSearch/SearchProgramSelector/SearchProgramSelector.component.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TeiSearch/SearchProgramSelector/SearchProgramSelector.container.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TeiSearch/SearchProgramSelector/getProgramOptions.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TeiSearch/SearchProgramSelector/searchProgramSelector.actions.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TeiSearch/TeiSearch.component.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TeiSearch/TeiSearch.container.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TeiSearch/TeiSearch.types.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TeiSearch/TeiSearchForm/TeiSearchForm.component.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TeiSearch/TeiSearchForm/TeiSearchForm.container.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TeiSearch/TeiSearchResults/TeiSearchResults.component.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TeiSearch/TeiSearchResults/TeiSearchResults.container.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TeiSearch/TeiSearchResults/TeiSearchResults.types.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TeiSearch/actions/teiSearch.actions.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TeiSearch/epics/teiSearch.epics.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TeiSearch/getSearchFormId.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TeiSearch/getSearchGroups.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TeiSearch/serverToFilters.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TrackedEntityRelationshipsWrapper/TrackedEntityRelationshipsWrapper.actions.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TrackedEntityRelationshipsWrapper/TrackedEntityRelationshipsWrapper.component.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TrackedEntityRelationshipsWrapper/TrackedEntityRelationshipsWrapper.epics.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TrackedEntityRelationshipsWrapper/TrackedEntityRelationshipsWrapper.types.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TrackedEntityRelationshipsWrapper/index.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/index.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/useLinkedRecordClick.js create mode 100644 src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/useTEIRelationshipsWidgetMetadata.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/WidgetTrackedEntityRelationship/NewTrackedEntityRelationship/Breadcrumbs/Breadcrumbs.component.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/WidgetTrackedEntityRelationship/NewTrackedEntityRelationship/Breadcrumbs/breadcrumbs.types.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/WidgetTrackedEntityRelationship/NewTrackedEntityRelationship/Breadcrumbs/index.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/WidgetTrackedEntityRelationship/NewTrackedEntityRelationship/LinkedEntityMetadataSelector/LinkedEntityMetadataSelector.component.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/WidgetTrackedEntityRelationship/NewTrackedEntityRelationship/LinkedEntityMetadataSelector/index.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/WidgetTrackedEntityRelationship/NewTrackedEntityRelationship/LinkedEntityMetadataSelector/linkedEntityMetadataSelector.types.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/WidgetTrackedEntityRelationship/NewTrackedEntityRelationship/LinkedEntityMetadataSelector/useApplicableTypesAndSides.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/WidgetTrackedEntityRelationship/NewTrackedEntityRelationship/NewTrackedEntityRelationship.component.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/WidgetTrackedEntityRelationship/NewTrackedEntityRelationship/NewTrackedEntityRelationship.const.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/WidgetTrackedEntityRelationship/NewTrackedEntityRelationship/NewTrackedEntityRelationship.container.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/WidgetTrackedEntityRelationship/NewTrackedEntityRelationship/NewTrackedEntityRelationship.portal.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/WidgetTrackedEntityRelationship/NewTrackedEntityRelationship/NewTrackedEntityRelationship.types.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/WidgetTrackedEntityRelationship/NewTrackedEntityRelationship/RetrieverModeSelector/RetrieverModeSelector.component.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/WidgetTrackedEntityRelationship/NewTrackedEntityRelationship/RetrieverModeSelector/index.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/WidgetTrackedEntityRelationship/NewTrackedEntityRelationship/RetrieverModeSelector/retrieverModeSelector.types.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/WidgetTrackedEntityRelationship/NewTrackedEntityRelationship/common/index.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/WidgetTrackedEntityRelationship/NewTrackedEntityRelationship/common/targetSides.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/WidgetTrackedEntityRelationship/NewTrackedEntityRelationship/hooks/useAddRelationship.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/WidgetTrackedEntityRelationship/NewTrackedEntityRelationship/index.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/WidgetTrackedEntityRelationship/NewTrackedEntityRelationship/wizardSteps.const.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/WidgetTrackedEntityRelationship/WidgetTrackedEntityRelationship.component.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/WidgetTrackedEntityRelationship/WidgetTrackedEntityRelationship.types.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/WidgetTrackedEntityRelationship/hooks/useTrackedEntityTypeName.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/WidgetTrackedEntityRelationship/index.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/LinkedEntityMetadataSelector/LinkedEntityMetadataSelector.component.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/LinkedEntityMetadataSelector/index.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/LinkedEntityMetadataSelector/linkedEntityMetadataSelector.types.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/RelationshipsWidget/LinkedEntitiesViewer.component.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/RelationshipsWidget/LinkedEntityTable.component.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/RelationshipsWidget/LinkedEntityTableBody.component.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/RelationshipsWidget/LinkedEntityTableHeader.component.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/RelationshipsWidget/RelationshipsWidget.component.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/RelationshipsWidget/index.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/RelationshipsWidget/linkedEntitiesViewer.types.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/RelationshipsWidget/linkedEntityTable.types.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/RelationshipsWidget/linkedEntityTableBody.types.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/RelationshipsWidget/linkedEntityTableHeader.types.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/RelationshipsWidget/relationshipsWidget.types.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/RelationshipsWidget/types/GroupedLinkedEntities.types.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/RelationshipsWidget/types/index.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/RelationshipsWidget/types/navigation.types.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/RelationshipsWidget/useGroupedLinkedEntities.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/RelationshipsWidget/useRelationshipTypes.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/Types/RelationshipData.types.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/Types/RelationshipTypes.types.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/Types/index.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/constants.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/useRelationships/index.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/useRelationships/useRelationships.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/utils/extractElementIdsFromRelationshipTypes.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/utils/formatRelationshipTypes.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/utils/index.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/common/utils/replaceElementIdsWithElement.js create mode 100644 src/core_modules/capture-core/components/WidgetsRelationship/index.js create mode 100644 src/core_modules/capture-core/utils/reactQueryHelpers/query/useApiDataQuery.js create mode 100644 src/core_modules/capture-core/utils/reactQueryHelpers/reactQueryHelpers.const.js create mode 100644 src/core_modules/capture-core/utils/uid/generateUID.js diff --git a/cypress/integration/WorkingLists/EventWorkingLists/EventWorkingListsUser/index.js b/cypress/integration/WorkingLists/EventWorkingLists/EventWorkingListsUser/index.js index cacda7707f..28dfe8701b 100644 --- a/cypress/integration/WorkingLists/EventWorkingLists/EventWorkingListsUser/index.js +++ b/cypress/integration/WorkingLists/EventWorkingLists/EventWorkingListsUser/index.js @@ -274,7 +274,7 @@ Then('the list should display data ordered descendingly by report date', () => { cy.get('input[placeholder="To"]').click(); cy.contains('Update') - .click(); + .click({ force: true }); const rows = combineDataAndYear(lastYear, { '01-01': ['14 Female'], diff --git a/docs/user/resources/images/enrollment-dash-relationship-widget-add-choose.png b/docs/user/resources/images/enrollment-dash-relationship-widget-add-choose.png new file mode 100644 index 0000000000000000000000000000000000000000..59c052056b940e764ace62fa53f294b45bcaae23 GIT binary patch literal 233627 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

vby zXaa|F_Sp@E!~7U?%APmloNEFVJZIhO);MOoBG)hQTZpaKmB?v|zrabs_6J|)tW#D5 zgbvNe+TextBj<>Orw3;%x{X8mG4cGZcT0hn(7UuciPp=9*LpkDzS)hVDx$W@KN$_$ zv}=2pJUJ7KzSO1tHHAhsSf+pd4&T`-%P6Bw6|^cB=eY}KMXa(V8XXk^84nQDq^!Ys z4UY+O06+s@nW_BZ&f&3Fdfv6TyGYPVaVGJLE)8gc07sJ-lI>c6KCf~E#+Atag7igK zpQX>p_p+8Vr8&8OKKrR~5_doTxxqZ9KCL!wm#rk*?H!jS=*XtK*o0>+&Hr(kDvQwb zOIhWboOuMKIA>%wAwETXr|{hfA~2fimPZq&?Yy1KzWrB}`oy!eX%iZ^9_UX4x$)GA z_ujMQs_)|edC_UGqAkQel{|4{v~?I zEWX2Mh|^<{`?KAWaF0oa~@gLLr>wSV0r`)S(2L;z%Dly(lJwQhu(Dz`c z_8B+E^kxZAqw%LL;6CbTM!q%F?H;hGE@k=DSzUhVN^K$*wz0i%wjrUVmg>Y zQRo1akUtodvEi|gnnkS(60@ufhGRwzGr^;%V zYw{-eLChw%i~MKgtiQgJP_L%-fy<#&8#=4PXsZHSU6Vz>m3~}27nyR^*R0JyGE$Uu zPzPZHveN_e0q%O^o;DfreATaTJBx5FMvD-FyKiB8f|&i0`|U{#(p4t6C;=cu0dWA6XU=kuwY3c!6zym9ROR?`np6 zE1?}yScB3D7)3UBByEIp2hd|**TLLyp`y1$6Za!qtGlGc!E$4=?_ynQkYy)ePxHWE zwMmK+?XgSj-(%(52E^)4bt{{p+$emfT-lzOEN?W`&rzaJt<{moTc$P;8Z}SccA{MT zV%k72DEgqG3|n_hgBird?jf~XE}$oC(*q9nr>?Y188Kzu!|-1-sS zF6V_R9WNUiQrxHOl8>j^yU5l+`@@2EE!MG+UZnzSvnY@nab;_c-Ip#zzrKdfa;wf9 zg7o^dFZgepDUphzCDe_GURvU6nA6^h=G)fsxb#^}B;y)h%8YwRacS)h zKByzMc7F#S8=LW2QRTyD#k0*={r#|h=~1WCTmfEnugC`g;TC4kmrd&^Z9h~Nvp{EP ziWbR$_(;9Q?xnP7OE(06yU5JMNw-*SQoTiB@6^`lQ8@9_4UaX<#oz96@I8Ge~q8hLDyF%eHxHeNvZabGsg!o=(! z@Tc6pZMq07%sD4Z2-eg*A-j9_z!%+ZgKq?)VhP-6@9BtTxkqm8Yu}G6ti9KV$%YhG zWzHm%xi<+q^6O(yZu@ch26HRzuHNI7!MJAy1UyKAAM;(CQmdKZ$+hMVukHEV#n!Sh zD7h2siFbSWg5h$uI2o&-we6g>*Grr~J!gz`*we1qoJJt0Vq72dK|l~?_>TXH`6--z zKvv>LgP*sE&xG&tQ?_OsvgewuU=~^htr^#YM(jzm?t3TXMg_4kt`1aA4wb)5&0#(N4uY%PLSQ&CZ;9Mm7ZTg zC06s&c`7R;qRSS*eDB^DG@~av89LyTQ=jp%PLa0>cVWtxfjJj^yqA5(nDmtr*kh)G z^E#3)W9mw#0e9*-NzNl3`hrq@b`Y1ko_v zHoJcAA5?F)HYIe#s5~76Tej3K77GefUkebOisVDCt*dr}{XQQV| z#=S?K?Tx*F2DZEocKKc&NbdBm1OY@`rG8Vq2svmn>sX6x6aBpL| zZI~Bm#<@XYJsOi3?5sZ=D7NQ{I3gQ8P~|r58mI3(ZPzS{#%rv7yae;sImy(~@BJbZ z1R>cCvm$$J8qth0W6X$YVBSHJ`w-A;Pvt#7`$`5+qtz(mIf+ZNW$g1%PvLtZn@avW zPkcX8fbWeS4)VDXe$)`bF2Hw?dhY5Y<1`iYx|xY(qKqM?2=S4pU?#B8E+ly72tunP ztaRTnjvvFM*QBJ!sa*G{Bm#wT6~Ehv-nezK%zzl4x;lxH!MttDjS+Z^AN06`S7}ax z)sNYOvu`xUQYN#oT%FpB)Q_p1Cn?|QuD8lA{D!(9g+vw^JIZdti=%40|~P$dAIQWrPzs%Fj|;;k08`UB~#GO^Zogi=q|vX ztdO7p1LN&Hs**$KnC@1~Nu6BDpc!^7MDCU>G%>O!ky($PP4od;z(o~tRRd;Q?%lYe zsB^H^GK329BGs5ss~LtE;Y4-j26G}E>vM#MJD=ctX^fheCwx$LX`2l!Tse=2h%j>L z`m2U}2YYUpSCT!Zq8wesNT6)1ZB;dwjco+b=DUw2D}tHYa7ME+7LgLX9>bmx8w-rm zSr?zE#_~zeb@ELLS4H*%eV*4IEpgkWS-T>r>aVJy@uAA~wfvs3zc#!JjfYFzbTMnb!A9^EFhR=h)pO-I1h9)oX zWbskee^fP}RXkcyN3i!CS>uw9WugGfiP5y^p&X}aN!b+lna?KR>T^Jz5uS?5JJV*q zO{EBa#7b4Rf*U2?b7Et;mT;FGFrY0%Tt|hVg6raxScH5>zcS|b%h7lp_z|=f&~!F6 zmRFj|18pQkh(cW5R}1NFT#Z%-8SUowVRoK%93Jwh#PsyqIH@rW&gJK$m_AcH=crfv%+3$d3 zSL(sT>&dX~D2J2+#KigU%aU&EU#>82veBsUD&LUwh0^E=-ug@zR(0gF9j?wtMtQd} zB=Y%*h&`om#;n0d6y}tgf;dJ8wtaX;8QhJOsr!1gOLDWC6F4!exZ+^43UCB<)f?3BCT+mreO4lcE z`wAZ^sT(}led(W^dwk0sc{>IK-A3&n&~d}xx!?QRAbG_zjP`|)#}Dtu0508<4q=0_ ziIPMrV-MtkfnedAEiYb*YCDa7*v9@b>Dc+r_|xoTxaT&L4RoWJzZq88AZuC5q+bD0 zi3`?MRcMtDJ+XS{GUZ#Iz$27L|MrLGV$rLZ!96Se*@X!5&G$7AE#1DbIssiCj2+AB4Sxqa3OjSb9WF)O0XtueEHaWA<**Mubedm9R1{Bxw#DAXG_>7xUYbv) zdpbRlu#tlytq2@!FAhXhln-4VMQ*VT*v2_-;MdPjkgXii724PQSLSM;Du4T8Jie&R zFEb=t8DxNMlVNI42jDyF3IhjI9();{epAnq_Ey4;EF@>QraY96x5UOsO~l3u ztv|nu)MGpmT3)~UZpEJuGR8D9$Icn&nC<9=8@z(HLV?n_Jd|CtE?nFe!COLFQ+?O9VnsPN^>a=uYN&p1ay(tLudXf zTc?faEx`7Mj@)TYV~US;6tF6+TMMgx2A+c(lt*yN$Fv!bA3^gBjSUp<*^!zH%ONSy z0Cz>TI6un#39Lm?WcAGl_g}}m04>r=H4XLpHne3d9Jx}!R}9!PcK`H7OW2)Xvwk z=Gb$Ffnhy1%Q=;E$!A=EdX8HFl*^$I4;_pY>5^9iHw>t$tN?nrKidwTZAW=CF+{9> zm7*;g&=FJQtL3UcRdIW5W+Zm(?UeTDJ+i%f4KT`0oBW|4=nV$RN_?}$nIP|js1DTd zV7vrNp7H-8l`M^x466>5_fUn;v7@$OP2B$IGVtB_t8E}L$XqaLSAZ=YOM>{jGID?N zzn5YW3G*JY&srz|>n!D|#$R*$Sgj%+AbP93fqGlCVb>k-0!d^m@lM5K!=Ps9L7!AU z0|{dV6SV}xoP)c_qC_{VuA7Wb1K#+pVc1n0XdG+_Q^hA5sh7J7|J)D&<@8W^l%}40twJr4rQ~U?Mt*MeuUs!R^d_lUkIrSCW znM;e$xh$He5OiXGw%;{|T!|>B#&a#vIoyKNHi-Q>Xh_K>2gC}=q^WQ>C1AlT(-%^| z@C-3lf_;d7nODtUH0s{5*W#DoXGe4$Z{iR^=Rxiki6;4!)GVLpzJy}L`jeBK>!zUI zol_W~Axh!0Dus8Gjm*w{%;rRM1))s+n$q396@b%9Y;Q)c4}jeI;-+>jAVr97=}!38 zs;y(6lQ!P(`^oM{!$nTWI3?=}#@hA!-~;D5T#Icr)IBj>E-ywqXF?EJP%W$+ZvaMB z4CeKh#}X?i707tVOQ*&!=$)xthP=CpLe*9hK3uyk-oy7DM;kg^?#CP>1Uz6m9?%}3 zMB1<}xc%^8uraK{)@|?7fWe zGAhf_&*FQf&xa0qQJpn13Jhc0y9&hE(oluqi3T5}bsT=U%`lAf5M>nQfBSZnYsc0~mF9^?YoX?=ldzE&=+5#{oV&zV7~q*D|8-J7|xeoeZ_( z1Wot3=Hs8D#@?>j~d*1F1|WhL*LBNyoxp}Q|=kgNp!vm{W@fOre--NPtK+Y7VVocu8K^n+v78{ zy=6=gfIt~j6tNs0s&o5F9YdVb@2NfNcof*baLq-+LNlG}~ibL!aSh&HXLNaU2prP8bZcoFa zWdU?L-8w?{D|iA25B^&Hb+0LVg;>;lq7=CN(~C-qSw~y-;YomZtmwCSmBhoW%#C4l zMcO@EALPKq&i7}$tR63UFu`$*zPEh8uwfrZ=$WrkGIVFMzJlhcnc!xUonZ!eKe~r_ z;sK&B;IWtn_69mosgCZnRvKAC&bZ3T6>RIuRJ;19=`j+hLC@QV>iK#x%E5QHTs@_U zM-ZB7Urivn5c>d1Ub8+Yj2%W~Zsm$BCj!k*F)Su^4o&w+h5`WdjPR?h6U0hZ>ZYRTE zkzhXR+;Vp+8}PC_-%GV1klRYiUB$?n(VI&{j9KV}-1>+<1yE|#Ve6oM6G``(TLGPe zE7xw5a4vPLH^DvV^4lS_nuSEEJ>aTI7cmq65(-QY>{1lJ@WBL)|KQxP2gsgKZ7dI| zG3*_2;mL~!@ZREsYHad4sl1HadmQ zvlETnbkgJNI5Vb?-ZsV-&*0TDk|;%oJ=#={el{@dq+{P0RaGZZdNE+)7BS)JL3pR{ z{1~8dY6_I$+2x}|D}56OJ^qbscAOxMzE-^J!0XxeHm!9Oam1@4G1vj^;m z)u;mt$qR4EDDGDZn?4JvwQ=Z&|0o)dmS8r^nCZ3k!qmCg8P=6{9v{ zKCg1EJE{T#s%i)cg$lNg`F+<~-xwFxh-E-)-oQOvne0{wc{@5|{(LU=*E-~JaoD9- zrQIY`rUiJQg~I%pJAds=NnR)M`&>)p<1Lrb{JnmBc`d<?}xlz0C8Z z#%mln*4H-|Eb25bl|e!uRE~CguQRHh z{;I4D&96QpqP&>X!d=EVT96{Hw3X_y@8ahv#nyYjcBv!{Xx6hJK{rj5BjF)VBvHDW zi6u7jYCBsxgJ}I27i{Z_Phn}Y|CY;w(y3PrmXP`-(OTTd{rzc;(_rCszeiDpnU?GR z2NC!;9fY8{oTa7U?8OA%^@6UEg2i$9P}2dajtZH6!Z}4Kr!@ho+{P`L5`eqsh>}<( z9qeN*9!4szz9TC-dii0)uN=#J2gDIxmC}u5XK51D6y?`Wnm0IqmkMPlDM{10h8j~V zu<%PWT-@`yGs;TCunG*!Gih1U#BWe_D`6rQQ5Vlfui{0MNFGZ(b0cs+g1xbYn_JvM z+Io#uqv_Ck@ACa*C(g1Y?{DQB*F2^gJr;XInCLr(5`d^fOOj^|a--dG|NX|=`+Lhi zo&C}>OKh zGR7frPx9l9aS5zFr!i?^r1?>IytAW}#ek(-2fH))42E{0f<&9(?cQ)<-$sMe_dStN zxiOv{qnxmmzaX68zQ*a?wf6dHSzdSLpMbf58k6FikDD^=&S` zcSGF2Wk1(W4WnVqFbt+FD0|ffO3REZ#m2);;7bJ=;b+j!1MPQZH+%czsvDkitz@v? zOC6$ltI5F@D!fTZ2n#N|nv@y&R!AtXgaRDzvqDuiExz=$5uHi%dyTQ}o{A-LerDb#u-rhg za09AqQcv_9hVtVeSBslZ$Zv7)d0p%!9=#7#CzQon3Nd!;rqN4%jL5XArdOQQ3|AUl zQ5iK3g3vn|Fvn6du^z`JBXAr|ba=$q)AUam-mteiLNQKb4_=DEnti2=bo=XZP>y3% zw5X~JM=xu!tz_7vQswOyvjQcgl$i8-1yoZ|-*m{y>^XSY6`-Xxw?U?gwA3WpRw~^f zH{zMsIvWgPZ3%`dtw?sSa??Dc39^qR`kfIYZ^mkJ^0y9_^h|=g ztEKLdcy?`}C~aSsmHH1J_f!(ud0M@eP3CQ2VSgyk*j&UY?@)=a zzWiD*l@pPc==@sPC$rQO`C(YbMVVgDixy^BrWj(AyXaUp{uaxj@KH}oCO!AY zSll&-B7{EzXtS1ib92;caFU!~+FfGTYjSl`(Rm7b}N|O!_vKtcj$u}T>!#3NuALg_3fUQH7d!Xkh0$LqkV`0t5+pxP%vaR zuTz+K0>?SKBr{BVnR=F%!gwb?H5WnNMNioFA)~huCu49j)BIX%UaviLl)FWrk=j>qhfd5u-M%ZnxlH{8+fvn#Vu*)pKgq(}K^22ka( zKca~)cBsq2=K(V{n^RssoPlnN(&gomxiX3=g zz7*yKlsJ4s(CH3Tg9U+rT(gilkXs6p6%&bM))2Mdj#5BmQ^&*zXblI5`UIrEd z_RhV=*SOp}GGnf4k9GQ)Zmj}cnkQ9HvloQgE_^UF^Re*Bb^!*8IVxx11v_iJmvE65 z(8d^CbKf)p2#_uny0I9f^E}`zWj&rCx&SwGch&RV4k0hewG0B$O0M&n6O)3%yX-VT*En2iD zJS+@hXv4#BmdvCkc`hXKRS|EwjKw4g1dwNA|xGgJbX{a;%HO;~-m#Rn4mxg`qIlt*_5V&btvfXO?fz-L9&p33i!8)ei6W=!q5)+39&Sj*Y z*ZZjQ!)E#1uOFbd(mth;WJRbWC-)TLyXC(fYvEd;qW9`V?`hExtH*tJ;Tc-yK4bmM z9!=tXsg%*B2dbgllXQ&0bluYh==*fFR`WIcu}X>#R1%bIV5hQkKcQ!Is_K@g*}{Ods0$y{?e`T3zNbou{e0wEIiMq$IDkp zlKseVdKZjvGskTq59Qk{;B}U$GLu+1^SOaM)3oc(Zkvlfv z#lA&b2X&9^cOV*j=^R~}by+U>uB>q|Plrz+KnG>)PCP4|f%55J{DW6fWTzI$`aDww z5-2;{vEZdJ{PIS}>34+*S9Y3oZ!e2<*apz*Onl)s zS~cvD{D>}BJm-6h++gB$AJKqaA*2yxvJ+%-Tloe7m=m<`UpD0h*bP#yMn&Q9&qjJj zBJ19~t(U(uObg4QNKCdu(3;(urGeQe#;C9B7eZ9^dV7HpsBG}Ua*%^(L2}_6eM4u` z%y#-tVh2~fL4EM(N5yaUDd-A@{%(1K6VUa3og4L@=V%PW*Sw}D?7GxC80Y@<7dd_7 zug*#CG8#)=x<}ykTP)TPe*uX)t6(To9V%wi?{k;pp^zGK-5$&UeW0%cad^kYs5A)A zqfOc- z6JmVsO<&di(}R)A!(Cz!ajilzq}+J2d($ITy}}Z|J&4AHnyI)`KYz+-Gtl;oR>QuU zqe^ayl1(>r*0}%e9Fy|ngQ5=^&%W3@#UYxk6KP|CkoaIWzFy*fPZTJqeUqGBD5t8+W~d`U|8U^#e4hNIX1!d4K(FvOBQt55 zaXKtqq?Btem6nWq!6$2Ih!Fv*0@mCg?ZiRph!F;4t*cfaN)%x^prleyQL<-ynX7aS zX%+jOcRy#HJ$pSa_>Up;EW`Kw-LeL8sDWyBlJHrx+vr-MfDeATs|{I?4@?!m%m*p; zrTdBbRNIFHdP#xwBh%uI!ZqFv;=j3xKDL~_sh=o!T?wd`;`HQJLtEos-@A=A3+Is8 zM2e6pmLs87gKl!NHm6rIpy9zEgYnm+Igu^~Iz1eaI=62xZ{>QptgTU}Ow+;yCsmv1 zYm5wgO;;Wsq@G9OU?1>bC%K+*Wu|fQ>GRT1&BIPE+3TxP$}!PR6Dm32JPH8ZM&@*eQoa5+sF;32fe*c5n^tUNyB4mIzD^)0~FvjeL|ac z3zBn)bDL(hHc{%7CianA=#GB1nzt1O2jo zZs>g)13?qH(Ra5SW9Kp)RcUSu+YgsvJR|NMv5aET_3sd=q~^9p0$C=emYvBECK%kJ zHpeMRIK)w(28w}`mzKwS*6zm*FGtp35&qivUcg)kn2^3ahHUfpGw?=!?9d%1fs9$v zUWNz`AzMK66LcaiTZW&!AdoTTKz1_RK<7r~xSP%v(#Wd0ec7j7)*qy;W{1>rPflnY2neWze~rE?w=aMnwOt^L_QAgFDlIFWmH~r0fa%qy zDFbA3<14H9e*7G2SJ8&kCnSA*lFNVcE_W64aR$qV_nR3^Jc;|W$CYmdF^`Z~-hY^+ zn1hyLqCQH2a%Rfw;Vv88Ws{c4{ zHGmwR>q4(7D&)w>@rq!VWWeT`{1TM)3OX74Gth=EFW;s+;pfO7giXwa<;}ZnE732P zK#!Up9M8@rJbq>Rmges|68KNxT9Dbf6;>x2Dc2#US_jvBj)^-pt5w5amz;VImL{nx zgX`J~9bRp;PWROEs|HNLK|=oV0h~TT^}b|p@5%bwQP~iLyA14(mSW)2giWRET9tBk zp6Y98_tyMCPqRIK&~#kc*=$x>W=_hF*mVp(_H<9@1cw=$2NO7s7Uo=ri}#*-rs;=0 z`r*L;t#%`N6wq{^fbXoNp$?8{zNvEHYvO`(y>Ne&k+Tw|aU^lvCpwS`c^&86AT9C7FT{q=Z2OO6_zNYUtF3cNsK~{^T zeBUbMDW|gt9HrydKGC6<$VAury&cq2*Klgn7g^3JT3 z61S{-I#X-^_N80&8+wybQ08OoU3mM29B8N^L@)PkPO(LA@AdGjhM|MLr9h%XwRp<0 zhO0hUD=ryZ!noBBLrKQttW}#;8TBvjhn$dWCEesrir7ZL&sRh)J|-`-c!USZ~B z1banC7kG6%svsjqx7SUgj0@emKd8bnw!Uj|#q}*csg`MOHL+h2+nOa50;sxyQ z1+PsanfUqrLLR97?gc;{kDpQ=bt;eZ@A0Sa{^J-N~3qPTf->X(%RH_!Ch|jn{*~4pxSi{a)$I#@U^dW+sgOp2{lN`-&h9 z#gcab|F}yQ(79TejSt;YtmBJJ$%)Ng?8TkfqK`?HAoUJd9L%Tz06Krom))-u$Kto| zH_Ouampc^4c;R}-E5@AC0vj9VK86_o+F*W5fFZN}DS%gbN=8*6cxhwvOjs>Yv@rP@vb>vT%bDd|sL^C2Na0i*YU^Sr8WylnoC*9%A3p3=aB4V zfUtchfMHzRWm3NF*m@a0#sU9{%>*YWI?kd(Lb-Z#yC!aFZe^T*XS&(Euzr%j&5zx~ zy5J#s@8bY~yPLVg`~U*F7Zj0Ai=&E(DiBk@=$g?^)Ul&1@( zblpXIWeo1!MU)vuGAVr5K<=-V9#gdjj8Yn#NdIj^HcyYY_#~H1rt#jDM~+hE&K3}b zy&kzPOr!wW%8Ig{64?p%Ku*ln)XlSZ#qUL1C~ZKwuSx~%S565KP0;sWcI8hjWNlfl zd^&j>@|}9s?oB(FpJ8P6LX7;?}*CsVj3kMRuH>p|l z*r$Y!f|^lOm^OZ{X+Pfq>#Hq*kT`e2LeglF?wEI6QaT~yHjx@qN}-00@$C0feQ zBIeusp5Yp7m$&N6V5F;wGqhjh-Wd+~+9oINXjIS4-eIef`lw$xvp9ui;ER;jPPl!? z*b)d@#a&jbpEXpIR*W-Xj7E7pflBI4o9iu84_0Z0d)eeoUgeYt6Uiw~*u1jjh?}~r zbG7HHJvd3uD;M%EjrJ*ODmxiD_)T5$<$`_1c2w@i*Nw~ap00{AHuc(TO&7UiFBmgY zI{=p9p7U#_akFM3F5_#L+W^Exju@3O-Z+>S)4#$GE|Qt>olq3?=B?e>9r%7GI!cG) zE(0hs_a#V&6K8X=S|;L2=W8bAz1=*K-6@Sc0(+#4t4^M_ab^Di#<0*lZ-HGfr1g(4 zb0~8uJL8^GM`?Q&QPL!k_uFPTQxi&8R(g?1gyWWRAN_n=H2pXkqxhn{jh)fI$AMK_ zpL1GrI2l!};D-H>{Lz4|S5{Y1Lomtp)3JSfJT$BtdP+NXaDEM_nO`>@)Q<@!yT5k$ zu8`H}M0}ig^9}Uqb+5!8$zr`Eo1Kk?dShdnYt+bRkMwRD&KA6o<0VGqj>K0BS5^$l zd!{@}#@iTRNwj$d@$#twn)Kb=dDVe##Fb=(Qj~%R>ct>X3kM&@k?H7ou{q%>s3Hqh zZImx(UUISLaU-4$z67W5eos32M_n*A!_QA%gsE)+PRW(cj|)Na^n62JPDw05!K|zX zhQz?Ixda!O^EKtcm}%RZrFTnJPRk!`ZH&ET*mm!-YaxmQU5ix%dq}bF0o}V|k!vv$rg<*AWMoMAUYV zoG0h`hDIC~>&A9{$Jg%N-~Ai)+rYWvNinbeFjyZ3I>RaOtmh`r0|X z56uD6V|lwZ=BnqxS_#Wsw}!JQG{Vg}MSFxv^|y;Ax5Nm0@H~(YFSsp;hbIi&t*X z;-{WVS`ezC77)xHlH>xvx|}7ky~Di6>XWQ$4U@eF`v%GvZ*B8j*FY? z@|JH&0(<$lOp7vYGyg+a2zEvwEU-{ZCXoGXp2iE-j_TqZh93E4j;WW5v)|O5G13JR zN$Lfi;J83B;wM(d?|0ZzrC{Bm(y;FISBw48#`zTBa};lYvfQ=nJh9=_M>pH|___?K zg2u#5QPEqq4AS($wQsN=p@Y$fc@K>KAdrme2a-`mGnZkACn|CtQd->Cwx9=UgIoug zrcKX-+bFRp#E1CcutBx=&@-dH=ed>3=Q$DJ%yi%ysc}z_k6zjg**_N5cObzTA`0-Qt_^ax8ngkJJ zA|<;J+oGthH3OGV%8P`;uSQSKU5vWUgC;v8Iy8%0k6%9$#LhA)ZyB=H$^K^tf&Ok_ zU?EGwVqD+!Vn}4>Hy{;XowarKPV0wp7DV*|*FhN;g)4kO)qPDVjjQ<-eVz?BU`VJ_ zRo2Kr2$c16p{igumv6ufjWhh}R9`-BPv6yPG&Tq){m2S(Ysa~~9Xn`Gm*S8r(jF~P z>#>Y(%Cm|GNikUu@FxcEuW7XgdQPA;B>oT zTwja`t)SYdUaeg zV9t9}+|=0~PdBS{dbBiBQGBK=VWhA@v_wZa;n7>A?arQT!#V_3VWdl8_1hbM|l zS}zO6U!MtieRRe|1v?L1$Qpis#oB46^>zIQFt=vng#0Tm$G15Qs{r;TeTCP4l+35r zP}8s0nOaCoNu_{L40hQdee)t$EXNP(cjYx%8xe@Y?@6O)Q8zt?js;ym1JHh}d8CcT zpF_yFGdz>RPq)AUd(O=oN)Uq9uD}LL3M*<-k@6@@eB&<7#ON*oE{+uH@*qUB zOlAzGui}P2BhkV+4m9p4l~jjViOP%s*>&Msd=UR9o~@aF8HY-Q*F=DhJ|sJR>}WQ& zj6d18k8XrFHhb~{F}=bEo8(+QyZ=@pz6W(_t1vG=M1d6?$<@wHk2pyqfQecM9X`2RJms57# zyZI@BA+^IVq$mQMX7XNOp6#}Jh% zh80e+UFTNzzm?Sj1-2^0W6UejU!j|c5GTMLkoMRFk@rJW^4-!<1@>>hR(OSKJI_Le zGvZ3FX?$Va(rb*NtbBLV6E{0SrwYO(R8}r`$q2KFv#&%a%E(0o7P=oh7jy_)lywjw zGg?<482Y-sJhSHlhRJrI-x}EFmhP?%Jq*8DF)mjyPf;GWfl5P{iP`$C7h?VKRJe!r z!(TbRnQ5c5KUV8G@lj3$93YWv?ZVRV-Ny;y_k)3sl|3Wnj<&UnB`>`e`gz}eY<&qV zm(C(E1l726oc0f3UF7CS$2e?V+Yyx;Os*|I8rQ*?1=NdMmBCL;`^PzeoviT7#!!_10{aixQQav9S3p zhD`15%#wBvwk}OT?uP(!9{?wswH45q?cFI0zjSlzW9n=lmY#}7+9y?bDk;w^d*E-| z|J*)HiOLUZ6P-b(K8jKN;U9J7(|D-!l>f9dVxc+b!j4b^xb~_0JFb8I_#+@apH`vP zJmVyfZMBCQ0{qNfLD_Lw?#)uKf?x;!Qak=G{x%c=u$22$5V-E@kawh|XQal)RP0cd zQcz2I{eITZ^*;mn5w2&I z6=r^q@_8S9dAl|kw0#8{H+x`RfRMeSeCAok5936@?vQ>3?5NLh{ZhWU>VZ&=a&gJi z)XdpW0fabC-L#4Rb!6#3F@l((75LuvqkfrL^kqb%isHu*Td zo3HSb0)E2tP(Y>8_?gv1G4SN*XmYVScb9;&8dtcf{Xn^MxHYLejrYO5AB)f%@&GOZ zz1NB9>JtXY3J zCKdhysJ^Bcbd)6z0O$c`Ennu(02$l_%!~HyE82I0zJUE5CqRmS5d60F2$tG9%B{FE zlZ&%ZapoT=3DTklL?h2z-#2W(P!y&QpvcX|X9zG@O4ug1;*b}3e+nC2b82@(v8{*g zY({!|4>&5#dtyu<#f^Mwh8nyM++u3gZ5 zOlj!WDWE_TbN0_>5c6{}0CO;5_pi*lz39lE2FC`SxFnw-F#U#Ev4y6&b58`d-j)N(-3KeD~sF2e*aS8 zk`PnzonClQ^wJO?ma^esHB_7IUV$pmZy7<1$~kW@n%n!HjSKw>VO$@*lrx(&i9@ zsaj3P|7H-s0od+R(8@_*tIq`i?a9Y7{FBB6C=ZWx4lX%ySXb>hRuoh)obGnAwK#0} zXlFu0)h!ur(f(GbV&Ix;Rnr`J@1#k z%+KZ>^-jEObY;HnhI)Rfx2C!Mmkq^F#SojIu5^@W)WSZe55+du=jcDUDWCG{8n(Rp zq-SOSd*Po{)k%GHtG)B(*v|z3*%^E&6)v%~)BQR+6`rSn0mvc%SjZIA501L-z6!c= z=I3W&H+W)+!Krlda$Yf&F@U`kCY;VRBY5h8k>nq#&z4HDFzc6WVlPm&#^QoxBc3Kl zB?bfUgNWL@FsAQ!UNZ%KV$Q}{-@GqS^zQfSKQN^-2Z(wbm#-|p-&GNa>Y$~(|Doj#jh71Av53wc_pLO2>#v8(Dg+i+i5OpvPnjzeX)JI7uOf2%yDxb-f8av0!C z^s}FQ31~%>TW4zkP0UYm@S8bXwEzLqS=S0Ewx8&_bksndD(K0%6^h?q*)k4<($!J| zpX5XEq2Z$ETzWm;zw$UKaG=hf6wG>Zz;S3%aIOyRzH#t?PK zA~S!0vRF%kttQ&TB42o11}sPUjO34SfjkfS|L0ZnEZi{WGZ)^vB6mOWjKx@u(X= z3F7|)zC#e8kjt$umeBtqZe0(`tIXN5ese#igi7%-U4lS`NcYYkfhq{9Yx=w)53Uhv0S`XN2!T_07zezv;6Ht0E zaGFyPwV{836J~)k6qNO0Hkzf$zmdXwh?G-C^yTKg5o!K2nYq)08JmXn851g zZKkIG{~p$A4DiC5S4R=(Ki_+JA0Hv-|m z1oS_V&EMbqF9H3Rfc~q({wG`J|D6g`DPY*z!4m?UR>24FEf2P{(&wcGgnzj<^~Wv) z-L)&m0%FSLIz;f`b?0ppuD_)0cv7ex3>(oOl@Ch3Xzq9OgJXUd_5DHV6>|_-VBk~T z$~^wJz|X%S{D0EeH)tGyI=sRLu~j5g-8kZB$QJNw0w{4yjJq9r7H%; zExmm5cj5QH`LD`Pa#;2E5#K2F>%1w;^%6Vmr1_d*1?fCXRAY)VB z;MN`}{W_4Si$Os9p07q0Id>!Oq@DdM&jy0AM_FKv=*WhBQ~3&N#~gkye3ZT_<@{#q|r10YJ?$_yIeWG| zJ^gb%*(Im|1hFx9%ZPRdK_7kDTU+n(UOT2iegQo{)FDS0<}Iak5Fk;JFwSBT@NwKw zfnz1cD}Yf%y>57ak2J9fjE6D-rWJnIW^N-c%R@%B(ctM&kmtheP%d%gb#Yx6e-Mzg z#l(PJWX)Z+XV>kE9h^+ZVbfBzOLH81yJEH9+0FAzOC2m?oa%j0HK|u@y_Ze1M#ri> zoYqC;zS-L*vU=oZ4AWym0t+)n-}wBM4F?7u<`A0Tsg1d>bs~z+f$vtzg1ah!c54H% zHSI!qRXoYk6$cb_!%$~*PgA0VaPVQoTB2(Y2soP_l4-_o%47U zJW)7J)D9g98!+RqH&Bai(z2?Vy6I~0-k^WuhMWIo!Lx~7GN zh8lo#(fKc9DSgA&BM^yb=!?X@lBJ}L0ew=wT^hhmWu_q!MbpZ zaQ9&Ud^<$3i9>9&t$eNkC27+m^ZvJ4^a+~SO}X(wLWxK-^%ZR z^Ha=C&0vo%Jrir_0AeJkIChqh`9%lDIN%M3k*b70*@5#6`gV)Jh8&?7h5uKMI71s4 z4V4*&F7(o~y6tF{4iAg=9LidVnlhN}wT%!YqI_t1?<3$gDDUMwUTO1DDCB&WTD{P5 zU|iS}tnS={`U->9q^GxgD}PCAe2T7o_PMj>-m%57574yEyTJEpd0V~tS)pM#Vt2+; z@;T|IQhl@hiiJ{~rWYu&_T?}rmT7-mX>+lPtT?fI!|(JdC3<72n))I*s@(UuSyZ23Eji*mORn~E8wmV>Dk*oF?YDCq zf~T*4tGx~mQ^I;>IH~F;6#>2C_Oe$X*-lXEjknV4Mfqlp6W^Ad?uVyml)z&bykaNX zz%GdpaueA**=_^>?wlc|g`?pdj&=+&49-TTQ^c4L>8~2Z*|GqLCQdE$`T;kB8kg`Jz;ng#Aff?IoTNNWByzEv)i$&aw zf+A&|UREs*UY45Z)|^X4d6Rri)Q1YWONQ%#1x^OlYr%0thpMIWpc7lMs41%$2Wu+t zqdWcU!cWw83hh5FkEmuAeBRn~U;xw=vN2_ywjxT8B&xZi%XeV)&3I-bim<|#vL$xl zo*;n=tLY;sw*{}&lEd63#o&Bo`whs&8rB#khj>vVQq0JkR^viaZSj}K!X=`tiwhy1 zYZ>|u_oa!JQmsUR70i0Sp4ol&5!=C!{yg@rF(r%LNgFy*TQ{f?Otzt`vmOZpFS(o8 zvY);U+#5ILzfic6Q`~G%Z+@`V#1?tCI#w3m_ql<$Ks;5G>V`sF+Dcg8HI{8wTus(Hfed1m%GwF@@`Ez5q&~!rz87xw#v%N+ z{rdz^GpSzIa}OxoF;@FYpl-nLcBP&5u8)G_^&BR`Y6*!BY&|Q3mo?o7qU=rC2D>v{ zxCT68?CkUr-VJurRLfSW0s954c&BwUsMM>!wUOD!Frf{+o;{E!4$lalSPF(ZaAk<~ zcBFIpz*M}KN2nLAkBy?ZRtIh>e<*5He2F>DzHo_upF8;ssKHv?_=WRk%$pPN*7%8C z5#KONDMULZP}cq8ueYL*4%%J|&mKS1kHW018m}&YxhUniszwFYCVT0mdaSMOfIXF4 zeWX@b@KLjsr_cqphGsmRYs&NK=1RNL7O1G7saM?Yy*Ejrmwzv^YAyxuEooWrY&@3& zcWO;32D@;-n0YQ3Pd=g5`QWr%Nx}PO2GK-pea`JQblXHPpfzl5sXo zB+N0x0_;-MwmAM@c>>0AM%b5){rob;ZkooGPx6S<9;Dkjb@0CsHdy2T~;LZ!+V_9C(;@7>&z{io?;7yhx6Ns+^0Gjy3YG-DLdQ z=N1FSQJL|50E+o?Bh zQYrgcLVPFP=hrzmEJnml9(Ykh?WtxrdF(1^Zf?Ba92>H0o78v@ezA@isw{%s+=XE~ zLTb_B^U76!EByqws`a+7e75M&9zS&0kOL-8X=EeLJ3##AfX2WDS;5gv%GYGyEBiBM zJSsZ=-tP-;} z=0vss$fWPhIonyFe?f?7n`^Q^L%X_ntz`J%%EEm3N=N+77bvACK8dDoyNwl&8`RN*fj?vjWkBg!|JZ`N%MCv6O$YagX~F68G~ zn%&|#<=yK>KEeq!VUA@`s6vr_)VBC%xn z)^T3sokv7#L?}<@GYf*kGqUv~4cDf0L?~BiSrrl3A4DR-{nRQZy6^GD`RHyDG|fQp#b8p~)d>{^5b*$IWNb(?PvG*UuJJ zNb}#B?m%KT(-k*Iy%>8L)_DTiBoc=aV@VIHBbJ5VnwQXBii4#4dML4^sM*%3yqi3a zubjYA&Cq+`-bI2tgrmhCHzyDK08~5652b(7(YVYU2JHsW zdG6hnDe8`smr?R=fp~KT)IBB? z6wkhqU$`4%U+gEk=89pBj#`_ShdfOqZg72h>dPr;9GTzeAjGv8*0|w!AbKpw!%KU? zBHy&4RW4cawq4;XuW=8lZp>1DX~dQcv%Tq)#)u8+#FR}>sbnC-|5nUze> z_L91vpH3+`od&(4xc}3EcOHE@X!Gcigh16@JDxjw;AAGWPCogXj6oty-?d~~` zddI|6GGxEkc9!X~61_#VJqA6{)2_5K-lIC=J49>8veE{w!wYkp?@J_Ve3(#rV&dYVL%n^dEjM&hrh!<+Bk_?5U0O2#Hqm ziJ!&IT^yN>TqYAdQvfjkFuW1k_UlaP`+*d1lxx+k))-3A$P}E1nutPqWLK=^3vW>% zAzMN?ikN{|Rfc}%S5~Fzy~Nz{HVmR%GA8G~(_~9=-Us+%bHeZG&s++I;_+~&{UuLR&;iOkBM ziJAYo@c6$)^S(&N#?)VorvuYb6=o)F6rBt=amhsVLv05O&ch0L>2m#CJhRx5WQ*Dx z`|8p;Qv=0h@O!=NFwnjD+GfLje_FVGReERF5GyX0&3ns=*WOW+?T%W4Ulm8$hF^Fdjaa$jl1T*W)>>d zS6H>cE+RLyzC|q?^*4kpeq+FW@2S|S=VQ+lx-pS6&qGM-UCroA%o*pC4-|H+fske9 znbNSN=)&9gc$+&{fmUSqCit2@Svt~fE0G?N< zvvJdtY?4CGELm=nn(M8oS(=d~gvZcORn#3Ji7Eqoki9#EuCTE|FHFUD&z$Uyb$XMT zcwCwJn3ZnJ`O|0jytdUS&5`xanT>Wbs*81EV(->>$itBi9*gol@sc`6R@c`Dq1+4v z7lijAuV9}qQ-Edpl~pYKuoah|%kG7?;}?qIr_h3fx;$yGlwk|CR6Ul|IwX~+Qy%zi zf594CM>Lc=7TDhX)qk}`$#co%#zcyBN>qwWEY=M9wS)AzmUVLAnD$p;jn|Lvp!kH^ zgjaniLnVYrK57!nVX+9mrye|y4d!w>G!)lgDBR)z^%iYTFQ*5_vz8%r{S^D~ z;RVH2LqoT%L)~H(M8lKi{K3oAS1NV`5A{3wm`b#&7Re%;^5hTIgMyV^N#i8ElFn4 zL>;@2VawI}D3SAppR`pY>cym*P(^9ZuopTfHwGnKMs3%ioZosu(RWih#A3%Fwsh*r z7JueD*9IkrW;bZjhcV2DCL>+-Kq<=Lir)IE*QFCF&MQHdO2QK#b6CEe>aj#sY8y|e zI2>)6aaX3Wp`y~haK4X8#Ie~6F-dl7$lINCrumHz-F&UJ`}LTazv*M>#fPhEL7BR) zNG#2IczsfwTUhF@nI{pW!{Z$DwpxF;;@)_-D>ehgrWfxK$nzDns2t4lvce}x^U-yf z5oWV1knmbZv#DJWWvR}u^=cskUjGdhQAXqJ5jK?=_-)aO?%gm|u{!KVXM>eC8QY;^ zq9JaGc-O}sggQ>`3Rj{wQg3|4tgMc5Yr%{>|EOhd zYw;JM%*oE*1Ga z)jQXtwCsd4?88dH)gkhk(Op=iz8{h0<#m^+2Y5J@LTdMU{ki1BNiE%T85vN?c$UoT z15W69>((NCdWNx|*Mu)R&b3c58~e4M{SBu>y!T9_NUTKha>s2$XuRxHbcKxW>}+y` zNhFWQC}t@`P;ujPEurSX%Wo9-#tHpk{fX4$Ys8WpDGT}guU&SXzO$bkx)-y7f}Dp{pT-Dj#^RlQuUqia*F1qj#;gvO<$H(hOk3`y*zA#$l8)>iSe#ZjmR?n@khtOyuSl zhFEulRB?!$bEM#*QMqLb7|ZQnhvIR2y7@n2#W;`_83 zzgt9GH&=F+q_cdPUQEGQ2NltbEJ9f>#yy(TVqXozmd$0%s`#ScPaRUDyU%qh%>5FU zYGZTM>bDsQF8feeZNK|N$*kxNyyPNTgX4}oZ90$LG9$x)f!-(BtK+?wUy&vv;7RCw zI`v{^Asdl0XP|o~Ai-#NZ-Cy5VykHDNoRXKi!?~KjC97a)?WAG$_({b?08#6@*%1I zB*-<`wDAj}rp&lFkL6c{B7L~VUXsGEq9vOFhH3T-mCKr1P|^9S28d@8OUS7~>Te>0 zB_`G_(a$(K(~Cz{ymrC0Z~__B>$cNQ-95f&aOF_af&4pqFAjZx`em_v6)huOvi4)w z%gOK89nPE6)D5R%v+i~wP~Pt_w3$p2NFpRF<&XQ^Yq!iYE^P8eF9*Q1eisw!h6=}* zHC@S-(bFkS7xRtwd0l#L=*gDkMP0M6!a`n9`QnAI?#xwCPGbe`PD&{f4)fvH8xg@Fav+A$)ebKMp+o=7Z=l#p1@gsKnqW2k8u|l3GaeG}~ z*lbak9=T*!F!YA~#;Zpidl#_!79+%xq3C#bkB6nn3X8DK4va0{o)FsIp7Tg!Li#3& z5C&Oa8&`V5<2Ik(30|KFYax6ZujOc=+;|DJ%r724_ixlWV zbWSBNsXZKMxRmLy^m4 zf>Y@)*c3ywu2p-dr{X$wo?d_`)D4q>pM{T6fwnq^ib@0)gd`_Y>btP%bJ zhY5XrBPG;$&(tEkA-ZO%|C#Wi^hI39REq3wOj90YW3iUh6B3MIe;42U+yv^EbM}co zDQF83>!Ga|MhsI(D6!Nd*aPdIek4JVbwxL4k$s%)BQ`NwYj?v2w~sT;11Ic_Yg`m_#E(UD3c|Hwuq6S+cjOBy+=w zVruAz7H-g6lXI#bWutIppP4mWmpi)Z@wIG98<|>38aq(tLLw*(%n{xW`=|C*v}nmC zrvvsWmkh)@O`K`$`o!P)vKs&EGuIP8Yi76@X2v8#M-y`KKwM?4zs8<}r{3+2w>g9i|qVf zZ>D27;CIt?c{&Vyo(FYnRLq-2ycZ(9%I(-mrHMk#7v4f{Ceb~oKaxl~nn{Y3nfP84 z&$!A3Q0V9#<&}^fBJQ#b78?Qg$ZIlJaS3}F5U9~ot$z&_v)>n8MNzlSBIED&C*v0b zajrII_{7-X7b|52X5y_ zdUe)*OPMk_jx~>kD!1;uo7~|_A-nd(qvk87a!Bn1H+5NP6P#-!C;*HO?PCG=^0dsY zdtPc)q$m(R>C}7En$X4%HM6SqU-0tnF6*cXOu{t88<^y1pm9;xSzNJIZkix6(h)+l z=s~7G?MK!XeXub^zLXw$JX?s98i;@w*SNl@8k0YVu@pPyeP6E(4fC!9^6`}^Z1~gQ z+2fvli-F60N3|736RxRLMawO^^nCSCVlnOIfQYD<{w}>6bMi#bqo0M-s|+|@`hs=X z$AQp54a+op;T@>&~@3aUqEty~P6yp=V1u z!aSNXcd&EETw<7vNw5^AMxB?Gk|_BTLJZ`WW_Qg3J_PY73b_Rx$S&;?N`7iVsOh`$ zLXc1Qgk7qstLCgjsUwE_YnHG$FEtjRP!X5u3pyC=X1irD&e;`ki%Gm#--@U*0~wqh&3^6ox>&?~JmFcCWMr^#R?6 z&TP@B3uRXfdXjPX&7dekN{rY6>3IE(LHzyA88yh-=$13-Xw}M@#AORz<*Y#rZ6nip z(U&?=!BtSBfAIJf3=7GHD1|Uf7h*CEGgiR+Q|6=28kAN)J21h%D-hz>2nK@^D}C~i zId{xp$>@dX_*SlJ&gZMx?g{_+wRTJEZ=a>LV=LNc=zzfRwxeD9VE8caY2L5TSy0GWzxeW2S$(

oP8LUj*Z#VDSNOZ`oxlEaEU*uL)}p=QIjhw7(XDdS_DH zt{|}hjXxJ|BuAF5bRewdzJFeDr-yHyn(^$i7WaedsMN{#>5SCDOEYI{!eH84mnR%& zf3tx!i&P-xO2HzEWnDeE>m#0lBh7vncykl`0LP3ud*1osNbO3(jothkWFg8I zRJ1vzFOyGb?Hp3*89LU1yD~OV&pU4iB`2dUU#)rklwrc zMZWHGeoKDy{aL5$6RN4k4wy4TkGl`8(=vqkajrh&hYX58Xs)(EJMM)kq2pHv=n46J zmeS3rAyYTHu@R!`(DE);C6e+OT>JYTFTGrO*QaD)c#+1^Hq*?TqCnR}8w>Y!8GSR62 zRRg&djomnDn_N{vNkh)AQzL6*om%6<4IZa=EzPJk2{%B=MQJs9!((OK$azCTA0ocZ zZJ~0O$GYl}l+ePvy-?eY!5&hXFe??tDI?6MP4OqaXmrI>Ao+UdnU1BB!-@aoqL_md~q!!I88w=iU=rD_%#H19r5C6u7pH-27}i z{q~Ar4ttp88%PeE=V0aqWl4voYnMCkgWxBH=sGAXTKV~|VQw-EGMSt8i?*(GfNRT= zzy!O)vUDE`fHHAYkH#+vU5uQ9)Ub1)!iB}#QmK(nx>Et>`h}%*Rdi)B+r2=q;Co*) z0t+6&3YE~S5rr%Eo+&IgP_Fe!E<&Qk)YO%dv@Quoj_imrF#j^*r_SymgRQocVee}` zhO)qf&2)qG)xjQMeV@&hdCZN_oA3`QiWCjodmkerjdd{|GmQcu6$kk`rwQ{#_s^qc zN;2??<*-u&kH*zknv9M<2~^Qrz^u5^9xBoY3)YbuZC8!8@&t|CZ`n+~;qLAon19PG z8qtobjW9!=`6JmE60Foltw()$BYVbkm{YV$T74Zo!*Tyr)W@E6fQd910=?+c@I+ej;BC?07=i0T!g>Bfqny64S8-%cr$2>gsMrdqk&q2Y)}S_)seG-V&T|eCCR8t zMgqB|TSJT)m*}(Ge4P5L(TkgWJGdx?_0hJeSYiPjgI&`ZaDoj?iN(*RrLDEmA>&J? zobAhqKH8Ykf|CZYguI19%|MfaOZ9fO@E{AdDyaieY z4a84r(qYJ>+?fHeAKiW-n#ceZ(6Bfh-ayy~zOMPg2gG^V4Ki$xh*|^fPNp>c=oLXxbQ6bOzq35on=kj zwg=*`(|v{^XNN*z)vw{Vt_Ap>Tpp~X3|A1wvbv0pJ`G$t`?;h> zML3n=>gB+FQOi?l8P)ovYyxfUi5)Q~>sb#2xt51-O zA2LA2Aj z`lgb_vc*<}cm)(d0q9=sQjs^%9S)e5$6)WMN*>QdHh;)8Wy2OdIdXsD{>Xi(EeIw8 zJima|ovu7DR?P)OyV>rbHaWzj&Sa8Nw-YR)-BdyKXu?)Imbdj6=- zTA$b|C)&l4+VGq4a^83>ScJGZEOS(*Vk1L%x&6K_n}|^s!N|u{03CW9HrO=q=`a%N z@;NQ>$;3o$w~nSly#9&6*_)r8@R3NoFCdoQ`uu5I)o7T%>adf$PMaC}W*(S|-aBXn1Cm34_vcljfAVImB1wnr<1 z!zn=J+R+_gV`SSVZRW9=I|`&`zgZNVK+L_hn*Wlwc_(oAO#qDdzC{TkzoRb8u=?Cp zj$fPjuZQnFPT_3#c!5c2%HhIACZ0616MY8P$~(`bY?`m) zXxCqyO$@d2QmA=raluY6$hvs0g0J^9M$=;+s|i{7D~~8Jqxi|~8j@1j&UE|e9=ivD zLKa{*sv}5GN6jjlSt{sXq_beW-?g5Z7krj-)F4im7=y-w>o#eI-gK?43sH+w4mogrZ89~hM&D&; zN!lCfN7Yg53c(;lS-5yMP;xz1-F*3In$RNd6ha()=-0*mq@j7B0x~EbGYmXJR=DN{ zkmKuPrJD=*h~Yty(Iza>H|4pzsGoZPZd0LJTK1%ArH?Fmb%Whfv59g$)`++mqZ0c# z%95h4Z&Qp4Q{80%W;2VYra;akB{{;dxGU}0LUuL&Q-S2ApIx6w1*lXJpIyw`gm;n| z+IJ+fW_Q4aHb&ND1LchLu>BTey+KIT6wWDBF*5(?r#;|G>;kR>HD5OShD0nGnUwRl z+8LYN#3Y09Ps#O9i7zo$uw;UhUvz_m+CK-8TdxB#j}m!dedP3oiG7>Vei*R|(img) zUC(_5$e6nPT%qko^GREn`=ADs!eli|7>rDpf_3co3f*)FF;u; zw|YO57(o-?2$IihsctHLe5wfHBRZU%wB8k zE)OXh^GWOLzUUjzBo6-M2t;py5!8t!bDjAEMTMZiQqi{(D=W31i;b&4v4hyS6mvu1 zPcUY4w}6ZaKJFWm_+uImctCom)snmA+0U`jcarb)A`aPGqxOf6 zRI>@3UX-j8E#u<f)W3el9}kH0U&=TBTbaF;`X59!dI7{e(BOvjm7k-r zGT(jxT+gPw|5NdOH}-*5!**4NpQN!726W#Hw{*MpNB7a$;NJq%lgEA*M!y2MC7NaU z{=Pr`L+Ead0`pI%?~bIMKfMU+td;+B3g*9n394Ux7;*OJ*kqm$q%B$`yz$pR#-iNJ zc4W;aYIY{)CoN>;BSwz7#OYsJ+@TEq-NPjJlQzVcL*PQ+UJQmyksl<-ct!0k29NwH z%>*VLb#iKt_e(v|EvX^ipVZXdGv^rX-k@*Vo?K~mAeURm{fqP|oDU?4J=QOKyCt@+ zxBQ$?0mW*)WuDK9+}apeAo%n8Sl>uWx%y`tJnPFRj98RP?&C3z{SUt^M<#)aVB z=is02xti_V1)Q#riWV*tC!sTe*6C@jF#Jh{W$DpLsAI;=xYNsz{mkB|Kc@9B(j@e; z0NW9heBtQNcK%l@Db5VjytVHU{l`UMJC7w8OE^{qZ2bQcufJOUVJ)o=6$5rWS!w6| zPr|H!%ZINO!!bMzuetuioo=7Qk;pFQ-Ix@TK=syt%ZrYO48z%~9m(?VVg2MEI_1C* zh0=DH`uw-dj1FQLeZ&37ep1%|ZClJ$IDyISLhYbv{`=X_{h?fN6j*5~Rg1I#tvsm_ z06NgwI5tZA(+>V56+yQT7`q2stpwFxe8=S`_CjieH$T*X#Tp}r}<{5FcO;Ps04$H=)nh>&XWa_sW4@5JUbC!-4o4BgP1FR(@4|J=DBgs8r9 zER`F*{_g1YidG~4;qvck7@`dfh_+1yD69BGw1@_K`SdRv?AH0tMB#vchwZYI{=sI9 zGC(t`riK*gHmfaq1sJ1qS&5$Cwf;{-Q&t4NY{oZPczd^zpMYHrIX*bCol*bD-Hsmc zzIqi?&Uelv12~zC;rbuNEQO5dk)tfjK44oQest(a-FEM!90cYnxh(T%^!4`+{+|-%8xCSu+;VRZ_tC$1 ztK7`+p0c(CjsLTSKUs4}0MJJ6BH{Wre(#QEq&seZF%8{Dv43t;oiQ5c)tv9r12$k~ zJVX7n<93SuKPSW(PT>Uxqly#k{kL^%6bcv>Xrv*1ZTleqX*j<9fWkJ?UEjqL5@Dbj zoyH2W?Lzr?@@?xj`WB$Ut5MVNZBJQx7`kxy*8kAhZ9?&%DJGl);doIJ&RKlh3msiR zLyYBva(c468+;=kFJ4mO5Hy`PW%t{Hpq*u|+U z@E?Epp9wK|@LhK3Uyb>4fUq6M#EBE#CX@f%W&%IpceL}V?|h}YFleTbmh*%AFnn(_ z;D2MI>343ahmk~U)0O*Cy}S=hWzlOFXU=W3>9_8rVu^g0J=OXz6)a0f`Jfw6_S3?&nO=NDG-~TfzzOb?%xDGp$?d` zqA$rVmfJ`9kNTBn1ZZi)>A79Zl${u@AI>yC{DaLzz5sF-a%3QR+i0FDD+1!o>`RgV zLCxfM19H>o#oW3*-ZRPvv{5xPrQG<(dHjtAPj~nV0UgXx&ihX4C60mCt@4kg{HR~J zeGbT9dXnjOtHsg-2Q;HuwQcM3pJ!NoPZTs`D2{5}7C|Z>0M5?l>w&q|?KJyGt-8Yy z`~2T1+gSq83<&g5MHjwDF#kj$#uM_L z2m8->{}PQqpD2$r_LyMOkA7!IEdfT5eD_Uy1lfIy?*v20L$J#Jhq?LbF^~5CQ)7S0 zSOPO>v}m->#dh197y1}|b^Wp*Dfvs11xRWfWvJZU6GOZI4;e2s2dv_#EVU2%tA{^C zhTjuBzF~CrujM4stAGb4ewMxk`_`8N6*rUx#- zw0lNivES!riXUez+FO9I-7NflLTS%Iv)pf;ze}*G|H>f7A`?7lxAk$R-Tzq%O3?Gw zgls9qNtr*`Sk6RuhjGT~*!pm@97#h}M_$Ax*|`#b=P2aJqOy*Ml=Y=2T zLqG&1M`gYT`v!oMzjH7?P9N(2l?kjW!n*>+F_Caja6uVZ0Y})sa}R}+D2&Uy)Fol- zIUHqP4cu-?ac;x1*b=YRK7lyL`V+^HsMf}ZkM|+#SP8~O(Zyzy4pw2W!3nSWxto;B zFd2uQv`*^+B1Md7>`JKXjuN1VR-xPLF^a(|4j8h%cTm>YwJ<>|hN*tZ;T=Z{^~lrL*@E8<f+|YP1I{R@iuNng72;EsJ=V&*;(=DhaRUwZAZ2W394*T^;-87q!iJ4?)K;5jBSnQ-NKSLI5Zv7B_T zaIdJ*x}*xXOW&J z@G^!THPUR8ne(=||KamJL-@<>RiX2xQy)oRZ=#ZdAvB4tw|<3;)qShD`;&z=`Krl9 zcmqk%{EkhW*$4brfs_a{cSX9|e9^$FH7NTdOpXinMbj0Q9?rP+SA$I3#dMv9sP4LJ z8k*oXKEc+y8_mZa*!!Xve2$0t-x>B=s6FKwBPyk$xH_D?TWPatwp&#kYvuvR-KcQ2 z)4|JHshU=_#B&%u8kSfXbkf7MV)&29Y<#-h4bI2u62s^cIMi~7Enci3SvH?;Z1W1b zypU+4`6%HE(*%m{#}O%hNQN8w#e($W!q4>o_xnvNqiDGYKRRt z8$aAo6f8R#SxDQM4Ib$GY}_ii=rZg+m24TTD21&BCn+IAo(ok$$dXpuQou)IZtY>g zt8lRYj(y~udf!RF^ly%-$pR?%GuW`pnuM5eQ=36V9)u#jOmyphdjPH0j$Km;N`)q8 zRk@9vA?CKGjFST|mh(F6TGK`1zk>mPbF2SbXp#hb08XyxM!$O6$#g*E&TNa3&FE|q-mH0- z25zUq=3*@Y)NE^IMVC!RrV zfT57Gt6ZuFI_j-*liNjCZZ5YrV-BzFDy26%n;0mj0%YS}G-#$9j4fuYpffZZY<7fu zZK?NrQ+BO@O_q59k6#lxyvrs6bF1qx}r zYb;Q#=hg?V??C*2P;R6)@Zl*vVQwRTcbTUz$TEOzmyjelLYq?1r6Qcn;;SZ!)0J$? zN#298sU*yqzd&QQRtG8v{CT}2ts*U6_G_dcS)1ufR`mdt>1-8K%MS;gSnId1Aa(&; zolyy73=^ZFu=L5fS+wL^17Di!h!-V@^GN3MH;?&;8oubrjWn$fT|hYE%3X;@?ebBZ z<|OYV`t*~Oen1T2ys_PBY{V+poi^$<(uPp8JqCxJjSk2W2U!A)zAB=iMs&xA!PMa0U-kJEyx|%j)OkeROOZ{ z6ekv3v}P9Ci}9GNQuU*Y1u1WE!oB0X1TbOop6~BYd`kQDq`vW{`WT6jOytSA3 zS1o`M39C_ID@UL-sq;e>c$qW4=uo4_;2x*VIM;r`A@`}c^#OJ1Aqi8*I`+EvH$3ft zFS${X*Jz#qPDD$l4%oe}#$&2BQlxKULPmP)rsCo!qbiK69G2E2%+&pP+_ednvgIw| zZAw$$z&gX)l};8v=(${$SJ1%yLJ_R;@^!K<)*+V`VG--omn|5Stx#NC#C8iJ;v?Lm zvsXm=5cib*RG!rJ0oo$syQHB<(lS;*`tzoaYsv~#tqku?uC>i7)|Q+9Y?e%s;?Gu| zsK!^7n8MC1!XPmWlN|SjK1j0Eiz)y|ZFUBZn+d3$&Oj1N5$)Q^13GV%M6xSuE*+DK zEclys`wu1mK*CWVv}*V+g8L)1x?vPk&w^}~o6RDC8^xOuY%mXSL2aJIRIHPpeC@t{ zNZ@qb2mlN)oRuoEzbMmnZW3v(lD-Jb`UtN3{$0<+v2K&7u+kC|?>-qdcBcqUHk|^$ ztGmq0o;-HKt~*7&$Vu?BH-C9P$@P`Udx>gsN^@?h^EX! z$w`HizpR~9+-M*Xrr`ISY$D{^6mm9H4cFM!j(L|1Dw^Ir&Wn$n|S7~PGB`wYglak;u%mnxwv zkuz>B?~^GoyH8k0UY`y3=p2_!iCK}jj2Z1IucgiQ3$-Ncl*2gv(iW^VWL>1Faig^> z-Lh!bq#J74rp10qzD#3eLNbWG;jH=Q*9KHlTi;g0=4_XS($urcu6ra?i?ZY{YXKgu zh;Gt%q0iq;y{;fI3g-gj{`LqshXlhv%>N~c8>6wxs^aQ^Dn`Q; zun?-Lbw4Ac7Y)ZE=hiw`j%g}r-Cq>&9;~d{FPy~E={(Z|>Y_}4fE|KOc^$1;2Nf+= zXgXK@(2KLcuLST4HIzfm(HZ7#FS49`&G6OwSwo9oYrBE=#rVGnSmAqHNS&`pHLLP~ zMH=r$-JMHh_pM*k@@{y;9XLb?(>D{`x&r|If+o2B*~k0gRGgaz2&qic;S)g>^X0;a zxaB0aX5sXcoWFd2#sPw{C;hGicHQxw^M>o8T~yi@HMJR>%N!>eJ5))wg2VvDJ9w_1L;FDMZ~$NOz9OZjnHY*ameLH!AT_#(zJF2%j5c~snO@G8kgH- zXsn%?`;n$DIN1828FHx(Ib@l8e5!gEtJ>aEkCek;dQA(6j)W`LpkeXWuVB2I&Ei-j z4PtUPe(6Lo)rXAJFW`+0ZrtKDdhot*BHTFT8mnSqlWpjptlAqB3!!qc+V7j85vCzI zRZG0Jhvqg8b>^CjsW_ol*vFL4{Ld z1CtJXEd|CD$DJ?Fal%WlGACv*!3B8n0*AP~T{iGoRLeDM1haASYleDYMQ^J^+h3YLm~$< zUuVZ3pFOoRF|o)2UrgH4#d&$rYtx*maTLU?qtC{#2hePG^{Yf}-Q)r9O!cmSW^vQG z_)$EVHFk?;eA2aXr2BKpNV72Q6ZWW+>+CyPW!JKGuqlYKJfDdh5k8e-O;;f@tO|AS zmpcrTbJ8*3?3>cn_z4(>=G|B=^xO}Py?DvgXN8*p4^}kHaAy0MUN#xam%TI<)^&K` zq0xk!!9;uO;(J7jK)i>TsmqY)`ek;fX*ab6(o|SPU~46`bQZIh9+p!oXw~aDVQ$L z>o-e%74-LcbRrvF%+#mu?dD}pD%_nI#Aea;;G+LTgy~swKi$D_G}q$H*Nr_G3;*PUOWa$&|VqPayBSc!wp%-jJ3v9YW)iODXPC@t3JNBj;CmsS7Yijir+o zwP~M@XB*@Dx}WLsDmF?DlX9Z4J)lDYADwH_ccnmgq=Ay6DE^s?!> z>q-kwl2}Tdv?jy!(=KkZ)9rY|h&MJ@hDjjR6FxZz3Oln|W|1RcUA-|51{24R{`z`h zC9$sH#F;S`hvAS`YTTT6z|@(m50(~MH)dZ`7gEM5m+?>LKb$oyd~z7g1Ihj9TeiGp zw>@q9x9prwIAcRs(eV8CB}jhpKQeJ>5dT3(?@fg1Yk*QGE|7wc&-a4U-F?YThP~$& zfl|UJEJ8rcTG@2*E&`upx^hJGMSj3)zb!f$re}E0r=pI-_}kaFV+QN9+Nz>q!yv9i z;=x@W;Zh^WmF3#?RS?RcdQF^Kk)9wd)8sUH^zn(;Oo8QmStJ{(tPfXH-!pbB<5XIro3x!<>6v>#X&Dde-wn z*V@eP-Cf;P)m6W$u3q+>VA209jZ-L1rH80og`F69Z%DJmsX#8|^lbQDCshenQN2WM zV-0MO=fNlyNN>^M?n**X!{jkr{uf3f>if5Qw*}u`m_{DGKe`7!aGe@l>&{fB9bg|f zK;Crz0eWexu?Dv5SXM%KxAnWXqk^a*qC*(*d_1w{stf z#Z49$5x?PIn@~WjF~dW4lj-)lt3qwbriA+QlmEgRHYV*(X};#-zi!-n_XklQ?syDh37s<%pleyN+B8JUZim#b8dKM@0TD`)c zjYm?pf7}~7BSkTW>ave8xIdB(tqBM_h4RdY~|e(uOSM zE54qhWv&CL%UiNg=GU70N2A-N537|k!Fhy3JsbQEr0F6)bwA0!4t*RlzYdS|GEIqX zVd&YUxAlWKzMyEm7kgx9KFmWzJO4nOyM+MLH= zCkKx8*X80*H3-#gbqG`J(^PicduHcfkfj7suMf7k_fnmdFu2fAeNJerjYsYErOypK zq!cBL^PAnu;xOoH1@rhBup82A_Qr(A-&+H{+{q6P1ge^aZeHjCdLpvp!Bl9P&H`WK z+c^R41b#c!Fj`UI?8Bon!12>a2-fheeY$c7%hl)x@+pM<%IAo|cLHP25+gJ(vKJ&$;-QIzIr}F9n{n0cHCuRH9q0C)}^SN^mvWp*L8143t#lB zv^2FDPZ`J$%Z(AuUK*ZtKFfKSr&-eGl1pNR6s@`E&d&2*H_&9hLws-AOOpyZ|KThh z6l#F4Q!MFLeA9ehODe(28Y^9z>q9J(M()TmE1(ucz2&o!q&k+?(x1(ILm!!|KOEg( zeLTI85wcczkK(2La}lh2nModxJo|C&WS%kST$9$Zi>By$D?_Kc;z4$8e@J+X{pyp) z0a=?ryLtsepMat~dI2^{DL!jucEVEGo4U^(PY-65s1l)a3*#{Z29ZY3_0?N-%o@y` zTR$s{@Q5ZuF0g4ISCutMZq1E%KV8VKmTt&qut-r)tyI53=l#{p)2wn6N%}H)ZhDKW z5t0}@wIOF$a|g`Vsc4veQt9c>>u)Xp(v85>mFmk#1CyjX@-R!94B#jJ6S zpZ*}K@4nKl91996RrO4Tn}F(ZeouvNq(tJo*PMNonF`>&0eQ zMX=$wTaANg-`aC&yw;D!gN!0F*id780q7Ol z#J4K|V|yTdA+I_KT$aF+LrcMdMe9(#@mQnX$d=^OKy5v-a5{k3gbT9Be!&7SJv44( z;aD#P8Y2@QM|v3T#GsLJP-p?IKa@cEIeaJS3#`5hwEi&QT8OvbZ)I%Ft`>IHIjFx#kp%3FR_pq%An?W1UObY-^&3CN!P@{d3!@BMY3>0uSc$9B#3??7z zGV0n7YoIcyejw`iF4#yI6nppDY-ZltGeQ85OLJb0Har*`kJiIbXdyiklxb=aB(3(E zd|MR#U~&u5uMdUHldU;`AghcdWGS`yNzx�PhvZzb|ue(zt;x{C?H=F+RLH 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 literal 0 HcmV?d00001 diff --git a/docs/user/resources/images/enrollment-dash-relationship-widget-add-existing.png b/docs/user/resources/images/enrollment-dash-relationship-widget-add-existing.png new file mode 100644 index 0000000000000000000000000000000000000000..467adef42c3d161ff7d8d71df3a830a5bf4a2db9 GIT binary patch literal 316534 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∋gyBbpW-ysFJr145HG%4uYA$ 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≻E$i&8Ib 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

%L1o4i8xzg(RxqrqE*HE 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�FpMWJ#demSmkVpGtKBB?9MJ`r?} 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

*IP^pVnNrV4S8yix384a)*(S{LqK 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 F{|9;IIM@IH literal 0 HcmV?d00001 diff --git a/docs/user/resources/images/enrollment-dash-relationship-widget.png b/docs/user/resources/images/enrollment-dash-relationship-widget.png new file mode 100644 index 0000000000000000000000000000000000000000..baf3c48666f24c4d1c6566a5c3d65ee716b478ad GIT binary patch literal 252617 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

a0RI4U2=BD@N7i-ni z2L&nrC5W!YcjDx^{l9ylw9ZW-|I5?=2P^pR0pkD5zc8!&<%dcYZsOgAnIPrjn9J|& z+3`P1dj84v*!=!w7N>-FuW_f(KwG+WM?J-R3-R`9wtdv4u@%~%{N0y38US4{<(xWI zX!j7pr49-$jJsm#n<9a3DhE#VRQVk?ENYDQKPoQHp85iMqhfQxrAet-d}i8`@3+Oc zGMpOy9A&4!7I33-nEU6=JQF_oR^+54yrlu3K_^wmqtXX>f1}#Fp236SnNT5K3w;+6DM>%6s;Rtrhs{px(jkAsXaxg zUsr7V*A<&2yr*M#X_GIq1MU*TzQ|D*#&8!c;p4<+OpyQN zb8LhgmtE>vjG?uR2god-@-?L$aBP;9AZ~Ws9F0$eaMyp^KUex?{;|qh>8M+|4r=BICr;P$?arH!ehfJ2GTEqz(f~QD_A5i9G=KN9{PHgnj8JxoX zq0x;tZ0o&cvs=b(;d!z_L20b?zi&?!?lsQ~#O)j*5sHQP!a+`Jht!d*T2!=D?p1F$ zd%O6Nsu_*?$EwIl!(&OP!-~ksC!A>J@U2xFZ*)(SB478Ne9UL`oo@L5e(4Hq0*UB_ z1t<=3Q5)_qT!_Q>@Z+R)QeeqLB%~|v6i)Y zGpA1oJ=l~dHDkG52+-NipTMH@d@TgR0e4{Ir5sow;__T`%jS!6KS*1dkst1ja%FtC zk0j@|JWkp(d9u(B@*MT~+s&Js*@*RvOPBxmJ7oh3%}SM3&O4Kj>7F=DFaqs!-Yt-w z2@fO!CaZ{O6M4-UZ|N;CGw*B;!n9 zWssa%a+5#;p;9aen{@ZK)Ya{r+^4a zh59u|DVSHLZ!uCMI!;YH-+Y#qgx=+4B*<&P0DLm^Zb~l4Xq>Pe%(~7UyA`*bUhg}$ zSd~xKfy8233A7h19ZmzDP8C3IMhbQx$ZQi+kn_ zeBSWDvCzy(QvIJ-Y6^OZhyta*<3!_i!P?Y^gRVhDHit>u&b`VGS`np}=gxdN8_aC| zgIDZy%kz*w|GFA>`}U2NkkH$_i?@_tCKrCK>$Gw~IrwI;#bg_K(HYk#Dw`EVS4`x) z)nr#kIpgCOO?s1R&PgwGy>(lVN)7rlIWf+;;xArssjYh(J6y)oIJgY1YC zm^@$RTHzS&uyyPyxl@a-r1JnxnhMd%l*+3^X_3-&Ful^)8pCJ^$I`_;~+GQse8;Jt8$V z?SFe|o*vygLT+AxU2@o7V2RvT+)LB#J&tMXmXndydYYSxk70_$yi%Z&pc#fY0LV|5klQ{#x8 zGO^^G#br_mQ@+Io6HYl5s&3rKF0FeZr;C80m&4fZ_x%Be74ElDWK0c9@h;c_7E%eI zqZ#3xUDKVEP)EyUXk00R5g(<@P5txs`rIPY`vO27f4?54{s~!lbtq)0l8em1{unMb z#BpM|&NB{X55ByX;Jj&Px4pBf5S?$F08Ogfr7eSdfG=Dte=12yvu$E6bb8q7CAhPP z*W!qKHS}*IFCwafKPCx_(5dFWo+a)5M0H$XtV2Gaa#rpw=#&TI3D3JOThtqEDx}ym zNW0DNKDGR=(Af&nMm(8kUOSzZ?7=ld2B}_aVQR>Zt{?2w{7e}_F4(&Bb%lK@R75gj zw7_9)tpChFcK>;ysi0AZ5$pP>jk17BpaU-}dh{UYYtrhGO~c&B4AN)Xx8YGh^5`de z`}weE!TiZr9WZbABd5&}L#-V-%_<2_<*~L7`8?*f2Z%N@glk`pyODC9>coyGd3c^U z53yfi-PCG(Ab#wVCpj&L2_)`VcN|rIk2~ZEoaO~tBxjYl-=6$~GY>aH%2Z|2v58Hj ziLOZ>X^Xg8vqxjz)k{z?SugokRd**zR1j*0XpgF16@@U$B#_r{WF)#5W%~jpV}@FW zWAJS@wq1*0!q@MWn+`U)*(Ehz2u(lFm~)(Dze~@-KL8=Hl7Jnq1JyzwRe3H)uqAfdVp+8yd}!D_0dkd*K2^BUnV_ z-Po&FOLBNAA)JfLs=pEJ%LG1Ama5un4~r?Yv&wS>gqiJD z$sqOH+J*t8CX+0!qv}g?%|+FD^{g#|Db0ZuVi7kv9-HU=;Y~tLM=lc!X3s#Dzb2h^ z770>Z4`t_vztvh%#&NYapZ@$9G@IY}cQt_LAITL{jJ`7n(Pk9-{qe9#+f`HdC0Vsh zJm`gxI>{U1!~OYZ=MD&mJUtO;vW+#RTBRY9}Av=$D?466NK?7ekZ)LXj-yw!~X0tP7# zsECw+(hLX+0!r7=Fw!~X(4_(*AfVDEB{js*HH5TucY`#;&>i1G_xqmx?z8v#&iC(k zo%ut(keT_dwVw6#bKlXF%*jRxBDfu;Pt(~%x}D8^%c$No%MP6pi4bSY))HTjqjjHX z4%61~BFVN-H>vAT9A#WLp}%iX{mu6KB)n@;<0?4G%t;Q5-&roUouiKtn##zO@GFnNLw4NL!csU z-yeg=9r3U{O*dfNoF_r#PSxH2F8Nox@(}Y9eM`uNZjK?ZTJb=q8Ac}b_MoEZ_A)?S zyU~v8IlYO6Np?FpeC)ajXj^X;Qki^JK2DKW)&;2FteRCi`R;(~;|X6< zx#qK4nK8kgCtF3hK?H5I`(V@>%%E9i+ddc2!~Nj#BI@}?d-h8~y}l#tb9YIfQ>F3; zkkJa4U5lD4hs3v={Zd^+No5%oSvjf_xs&>>hL%r`59=owGAi)d%c=o-NF>L6Cc-%G z+|Zk7A7Y50#uirq0~LutjhST_pid*=-l<0)=!jVj>}K>2bJS72G#}2Z5DSqfYF7~z zfiL7l*I)CmObOenY-0K}h|&t5%i>ReToC|pkk^g0ZESCGnVAu&=Gp}87J>_ay9xOEr!qE{_YAi(y%#4&4nH{w9S#%2fEIE|x^pH&)tv)#%I&wQCE~^F$L;0tP z^+I3+^@kgeXC4geC%b-*yYU-d0N&xryf1mkw@oZc8 zlz5?N|6Y%%wwuw)#!Zql{KR!uhW z+b}+&@ldUhJ-np>_2%im^GFL5IAhcIVIi z@L=LJ?mLmFRGji*8OdBfID@druTi0Z$#PSn6*%;^hY6i)GP;h)Z&vn;v^LmrZbvz6 zj@TW1f9r<2yiA<{O!EFfKHF&|(aNMD;ONeC!MWqz5)MHF&Gl{zK@n70(QbHZ&(JqrHx zrY?oO7{4yZv)x$RkQE|lRPN4#zr1t!Y_?8`TS_Q|VOu*p2Kt)^xrq1&`;OnA1oqMl z9it4_c`U~_WOh<=D>^;`H&1!WlNf7cKsM%Ta6%$mVEtrTBGet8d`(LWW;rqo%z7l} zK2`LDN2e7}nq0h#(wWo8cCvrjj?&s+1`53Q6Ng+LbM*Q5&dsGwae*f_{K1`fKTceO zN`dL-e>oh#{q`1&CgIZ`$yuPz<{ z%Y6IaQ zUB$>H-rrMu_+Am}G`ferAvnFo0OrietCUyea%*PjWmq(Fo5kkZ;Xh*0({Ga+T=x}x z9WtxSE^Z`9mcVdNox?;ZR?XqgSWggh^qgoWja7t?S4L>GUDuEhVq0>aq zlJcaYf$@ht2E$Sl08ZekJ0LUzbJzdnTwMlGnf^@f=}jBCGxYAK$1)-N&1e8_E!l^E z^P)qYHxX7v)Ji5spaLLR>TlY9(iL$|0+_6a5^v8j6!f0#E#%HPH}B(@Jowt!3qGOm zgjeS~+g&cMaiAjD`-uyiFQu#HQ%6HrI;u2%+2QGCPr_jS@@%d3fLx9CZ#3!REWz2+ zeft{&A;tFdh?@T9uu{m+EcR>tzfoO1{%3>YPuc(OySNYyD`IWKMHYZHg#fr=-yQzu z1HjKe3IUjkzX}L=$~zwS{<|FmvszD204UL4w;7~}ULW~(>O}nq6X365{gC~e<$#}mkNdv`{M_FEJAvQ+KZ{WOTXLwr-XAaK7aH29 zgfAB!G5$p_=H>qJnw@7spT4_~j35DbZ?Vv<OZX$2LCizdMXL;%;LaT?>hQsRhr&rDF}~ zH9hRUy0E-FW+A)s>j?y$f5vBW5kLW;?i^n~1#0+Ka zbbK+O?b%a7rf<6o3kg9v*x>K>IY_D~XO6!ZSr1NC)U?pqDE_{gT=f0)XkO@$m^yNI zY~wC%BbVur!5Obq(bHd#dFRPbogV*)78#-R?11(Jq%5k>E8NxS34@s1BpD(Q&z&;M zRa*}TqmA05QW48V5GU)SDxB_TK;M$aV$=0`me}?-U@NIZr4;}4HFcsuK&``u z>n#j-2xot9pDPn9cyl*ryiR9JrF22Z+15uqDE2njPR0g|YET#I&Uq)mzsU?BBWslD zW)%UP)f5*NKCrIL#E9%4I-`fC{pIyLHMET~bsEOmW$rU6T1o!l?h-TXHX+OjwV`I* zOTkQ2;V#S0Px1ZB?T^LgsV`I@FaWSOLcHa|uVr?7{{;Q`B@bVPrnMH<((l#7-LsH2 zSuP#!+-lN#{$w7@i}%prS((|$6szQ0yiBqRzN`4Zob$f|pO?5A(wShp*geZWi#pk@ z`Xaku7DUOj4)3VcJPODI4&P3o&`GPL{bzs$L$VveSS%@HxoS0DW3U}Zpzm9o*DAhKYzjr+doV_^MSX{%1%=XJE*=i9YH1-1xNZbJ)RtGt+&3!N8sX4TLt zQ>D9MD_P1!>AXD9qGZ;WJ1}jK0npw6`qt_9^@htqq;rlM7eT5adD5H6qjY0gV^*m5 z2g)wWay-gI^75~}zQZLR6i3Zx?^jgM+@I{ivMByDviAl|&tLJoY1XYpeB?)~JcNd_ zF$pZl4f>bq8-7V`8?N1&_!D`Xx42gMOjTynau@Y2KBK9{CQr@gJw) zn%Oxu$X3OqlAcl&B-kEESh(0ZcCiXxXb-Lsmno0)N_wKGU+7k)+|2f^BFFW<;?wm( z+aMvW6|930#UsZ$kZc?p_YY?sx!yZHM7BBV556OzR@_#z4`>CA!exbxSp3sdkJIBi zTek2lIca%;(5TJ!E|;Nmg=3X&E~jrq&cKr{XjX(P_ksAhB|P6ozKeWwq|gk+F>J81 zMD_J0&M-zeY`qQ)RVMFLYBS}h(i(A^Wbs9%2dgC;HgwN2SJ;O5_CEGM=6g0G6!*{+ z$8Oesej*Y#oP=)RdKRsmVMcz{wGObSXv9ZyEpzrab#e94n|6NPUaj!uK*;yU2hYfa z+`8?-p|^t}%~*cRZ8_G&j|K6{mYB05OW^{uWq-RdHwXmzvWuh-E$n|xruLjesO(E{ zVc(7BnD_@MrD?YC?5_-M0zh_WY@5yLw&QigL4w_3ws;U^SGp$(dl>-G4xpKpvvc9w z)+_hP+0>M)Kpt2okU9Let(HWPT5|12Pt}@-EcHYc3Pcd5`C{j>IWnwExnk}Pl|jaU z$!PW|eNqLB+JNQoa0yHW!8*CXWiic(T^iMUm8lmMbm>EPMy&QEsS17mgD8gMCDK{4%XC3*|Ui4a#-+HG`b;kf*s!OXmHcY z(4o?b|BUOGGia->ZPYG1%8%{@%*k3IWdS22?5F`V6BX=|<$!R1XY%}=w#bMDeqP5q zRqU;UMRE)MgG@XN{gXse1a#MZ*VEZD>@Y`dWHmUYT_Wr%zukc*?hS25A0nYcl_SZn z>TcZe)@JBOfr)+u2H-*`5hrRCw;tNv;>3NmU2aQTEZphhd?ubImz8jgB6kkDxvueX z_?{a{Z6Ujlq;lq!xX6#=GRu}D$+9``SM~|QS9%tymLNh_3u%?Fl`Ua~q!>2={loT( zE5y|6+&wMW0QZyG=8e$hsKVnH4pHr29NOnt_|+YbN?iLcIx9k?Z8P!hb4Ca77dHbh*_`IC#>mA_$9&dxrXKdWbEAgT^l) zI*S?alx#P)o`$#|v<`XQEWi$y^6Nk0u^0u}6pR{UOBFn}<`CK_8zbSUj{uOS)fc%@TZ?u+!-$zJ&knUi(#l^5WWzUFNbXP9wZj0nI)2;~` zO;Z~&8$kO!bgWCu<=&hfkT|q2)fg7N3KH=;wCY6;bD%g8!YaL&UKR6*?}z>ajiO3t zzAsA*vkUhmRB}boAtF9{l`*>W)fmR3Vv8B&=y-u(?+lXtjSA)D?;!`>*`M?tG(c12 zuS(AN;TSeaV$j#3r4zC5^i9DGzP=Q9%Wq zkCXz0G;9vJwU!Mg(A(02u3KKB>8{b|J@5^OZqs$#_~K#kT{uj>R9UgDi}2cLU%3`B zR^ef5zz2#acQ?z73QioqeV?Ra^i1>McfB;UG1ETTOiF7ukZk#=BXw|k@JbKK2LkGH z_ntt9RsC&mmHUsU=#SmEFXA-BkI3q@^o8LvQ5KA4y?&e0k%9x`#=GO5m0Hcek7SF8 z=h045c?^;XNZz76-M%`}k~Cpx)_?j6qmt$)E^C-&v;iw_GuOTtTVFYN4@Vv8cydGK z{p?WZCwL}UbMUQDt@AA3Q|CX6USL+X{Hp%BEQLuib=d9z=83{HCZ8VlmMmkS;yyKQ ziQt>($Cyqn7Ly43s6ES_(j#^2(O51r83o+kOhgM$-kt==1wb+D1z(aHWtjMQ-1=)I zxTr8QqZQGyDu=q=JluOt-`S8o<7LMfiRIGQN!@zf(#bs7BsB#&Jbvr|ASJ_yh@Squ z2RnqY#bp#@v|anItG=)gd5aYc4v8LJO#b6>^)0E5)u7ebUh zwmJI1R=rJ0YQ1%cfT=ERFRvc$nIM9f zhj5+DdF)J~U1hDB)eCeHH0EsCMf=)Re2Vx21*iPb(Z*QXA~FwqXj`(aCoM-n7EddD5U z=X99MiEg)l;kWeM#hoUk^s(kIX!+iHIa0#J@7&mzH5fX(462w^Dm*&HUqEWvcBV_j z2h@6uI7mxJ3XS3jmn0KxJh`*q>*JfPc@y>JyMW>E#=y9o_*8c*QBIgtSE$R@@4x%U zKx0d0P)@kxTh&%s2L_nl_za%NN63Y2e__9a9PTu-an?xG4}(DZ9yc$5q3Ru{Pfs5F zc0Zxk2Eg7!Fgt4R#GJTrCDXh(ST;^tE!`_R*~k?V7TUG}yZymk$~r-$@YA+TKPD|7 z)hDnSh?)H4$L8D!dn-fe!IkZvGHyM#A2wEXhgNt*oR?ThDEPS@lBh z_9Nzmebha9LQGZ+AM5`SM_s|Y>2vEPZ^UY7%DJCqJQ7f14Q6`bQHSZ&$& zy5nNSlu+_ec_XC|K%cfd+?}x1Jj?Xj(e1j<-X*QEb>gDyR&azD8Ws^3PGXYBn?QLI zxn81CoF{7o*i+BK0P6y+@(``Gmww@`C<$Jx@0WQf9wXD7U$OGdo3cg$9-)#T+c~MZ zV%q*&)W+!1HkwyUpxA)aD1n9lLfZ&2LfFh}-BaC*(u0gV?M*S&~fnXJ4{xRcsSm#234 zS#MuGqNbPV+TU<>K3I$~-aMhXKmnVOq9~IlgMK(+d5`(7pBWz?DyfuP(Wc?RAd^ZF z2Ut5R9Xym7gd)8qmCM)@E#wM+L&zmOp~@YRVl10f>&EH?hl&+`QZ0@ofS9gV&#J8| z&icB|sAsJ{MN|uYELZxio7Ezx$9ja-4XMv{$$=L2(uDaXMSp>LG7oaFQbQ;p1U>wX zYtmlnsN3QO%=@a^A3lKGi<1BDX0pB`5~BQaCpdw-B%5LKowP>z;II#5t?kU`rhT4snr2`)fn zDWD&=S-yvgp4el{GRzkEvCelih!;{2H=esx^j;sF4jLzFVY46z~><9Lb@sRi==>U;>NfexuXk zePHQ@EGG8rY}KwmMRZikC4x}KG(Gd0s@0hW2h*H7IJ>iuA*hup>Q`pkH~?o=k~27r_h3p_mq%Eml9cPIyPPF5VXB0l&J znS@il;7txpC3Vpwn#9JwfS=LF=1t4mk?|;(mlsj!xD`FXU~4{yB<<-{VbA0C#v0z}PcyzcLOd7dDcW=R<_CZKYH{PrirH zJk7YD*1XNg622B;aurgv{5kTX?P8f7Rq+8n&dK}7e(&v45d1NHOE0W|32w%y=HuRj z?vaVNA>@m*?WOIqR_H$E-jw$5cQ0MnLR$J5^kEgpo(DJ*oWL?hglUZG(GCBr&Vb@O z;82~`v@bTtARl18&aHUA$}nc*qA9+DGNm*t{3#;woqiMyf8);F<%6eAdMR9n_?e!B zg60@DM9OoOk-#y_3HQmW#zsPj#c26#lSkDJg_OsjdZp#EMTjOeiC&rli5gQebDa`> zjk?aM*%l!uTbpVYZ}8BG+|pY4wX9M{X9o?FVQ;>o!q~P}@47iK4dgu)KF^|QUIm)W zW@Ew8GDswInh!tNtCUziU{5Mgk$C`^;qTI`Kv?uOs!TH4R8CS9+8*4Jf7jq%STY!c zH`LY)P80+)HfNr9gl3!?!Hx6}k@z{H0`yMR7Wp87FMZd6V!09ofSLu!&|-S@a7(}0 z@U!Sp%wbx`g#?kIas%-eqKb#ihSAV*nP|QV@>U7G1-X~cuzlySDr1pFH|!>eWMm@d z6$^z7$Pk)wN~N5z&R)KB&5TIGr5-2Zv%aKdjgK|=JY`~_dOabv1gm33dL3{`7_rao z=LPq{(H_F)t2OKfb>B}#7tg`BMji?v8T=>$DL8V4w_C$jix}C{)IS{TO~tj`hT4pN zc{Lnz4_1_CF|(uY`{hPthhOvdSnK!&ac9f>H1GvEw~SL1Y!Q9WTr*N?qU~35^P^lQ zgN{!7Uvhm%wBQ`sY4{zml#d*}n#Y_jXn^h~5xn`)0-)wW8;KC?Ye^egIiniIwcPRL z3A)B-ShI{7oU5mgyXi~^nOl}UI|eJ%Dl(+*eD_xJ#9vzHP9kBm8?ROpeHcSMgkHu!n?rddxs1qf@M7# zx`G?ehwnKfQ`6HDh!R&v)HPa)VzChtG|s7X1dv-?5!5^<%y@(q)t&R&u3Bw*V=+gR zz=E$>l0yYtSTml6-w^g|xj#})C?-TB1lxq2lM$lfMJfqpP(&2Fs*mc;Spe>8f#`AF zZ=H|vNlV|_Hq(j;u#_@4s_N`{fmAf=(N|JOMMKH(ZVdC_ZvXN?Miq07i~_L+Hrr+{~izoEvdex{0CzM;h9^8Fug*R!0j_@@3loy zY(jQ<$2xh>ru?4iRYcqiQK{{W%I62AqKDMud^?2-@=YIu=1{L1%GzwMLT(*b=eyvl zyWmnqsXp9eex~Y>ldh0O*DA5OW*Dn=PZ*ZTX~7YV6-&CJdi$la3oz@YF1{mU6$%!j-u(M zJ?ziAX!fB{c zCMK`h=wK-z_EFn;BVyau^2-pY^J@lbqs_h#T+PllDs>l|@Ae3z?q942{82S(R!oCU zPXv$)48~{qMwiBYf8~<(USS_51&UEp9;7kWp-*7I{R#4Z#&mq5Wpz`vKwLCBtg*5Q zSp3{dJZtjE4+iI09xlvCtk0@0%5AA}Dw3WfZBZoGI~K5Nl&d{Ph*$}(w<39YDNh9(8v{f5jR^A z3t6^O9#J4|I%wS-l5y)QLDZ{-wE;MK7?FuRn+t0?Yiy|}8hZu2Fxs$B{x_fne0*fm zt%{(Oq8llcp-Hi=6=hiIkB{ohoRARueWbJjYG~n2q=FvFY&McG#tYIbTn>@)bEKLN zd+%Gj)^y$9ItqwpOE9Aa>8OE9fAqy@kj$2`TvK1JPBgWuWTpVpA(`0(DcdGq^&^Fr zTdn66y7wy}o(~yNt=k{ky>+TAB?uq-&ZctoN!e{@Awk6VmnV)q&n4aFPwE8PYE3(d zHbx4U`LY}7Na#H{#7{Gz-s1`>y5Udj@oc3UBr``I0;b))g)3Uhi0Yt6i)cj>YS_w< zWyBoABE=||{tsUGf)&6|x0iaN`gRjG+XdL5J{ZPwCK~Cj-A!td&$1xE_O;#46Zm;C zf14qMG?<30v;o!p;aBnZr1Fp4K}Sz#!VUFP#}&R24B)rGv2vvmhHaURRb~(>qm=0z z>kAe;pJYr=643RQbzR)1>E*XO9IPKOY*TwR0}e5mMQr=y=(K;8yz-OS3YSn0MZCH( z53Z4b!%EQ7IU+{VV$0F@S=B9V>_`55-h_Ppj=9{x`VMx)!gVgw$)fVSzlA1!T_Kaj z1RuZ7wZ}*Xz$#G`>FnF>XyMvAc!gEhIQN~Z*=1r#wpwu)7V_9MlZQLOy%C=uCB1ok zcmjnz^P?|&ibAv~XKu8;R9##H4&2Bqw4i5suofC2ZROb{lQJE_EvT>hH7fprL>hBr zXF@1n>*I)s0pMRS@f$P4i@Hxw-y}b%mw1ME_(r`thgh&RQzmutQ_7Rp$20GUv}T3j z82yUyfH?lsr+u=Nj|~$WT2v4p*RKBfr0QF%U#y!s-h6`@X}paGYKjoMiW$I{TkMI% z9s5$<=3KE2VBnvPeh6H$0am)Q(f4L^m{->J`(Og|fOy~se&4O}io>Vb79jtx%$8$t z$pct@UhFo+XfSQPI>_>pN2)FY9w?Up^M7k%i^Dh$nNmgOze;z=JGi5Q9_Y4DA53)! zw_7=O{Pto(SJ#a|mxVnt7Q=xfLmUJ;Ho|f`$Z>8e+*d~9)X%Ru)Y z;F)fQn!rqXisyrhuji-b=f_4~Y|HORZTX72mx6OEd^NH?)_v*Z#V>#0#f#Waq?Em3 z!v6ZRM2ha%iR*vSE_N=n#Hazgt;j7 z$Z+$=&_Mq0po5c2z&xakyXtuL()f!Zua}C5vnb(X{cS;;m8#S2au9!%fiB5(tR>D} zq&cJm6_;A(SthICI8g-2{~SVQfBT7j`O?F(oG1k7CAGOEFW3>ljGrz#yf0wAQNa8% z?b_GRZ$bZBqBHg#>jhNSv*7+!UXZzxC>B`PRNgh6CAdUHnIIaLCD#VAAN>B9o1_0$ zjfhV-N{gH)K{s^Rk2;X*G&H*<_|(1rqLC{}Dy=s=B)~y}oFc2d(@2Ll5 zpB1~*zn6J1Q5WF8>5!WAI3A}!+}z~t{MCQF&^VP96Z&x`u*DW52A0S5UoE$;S)ChN z=CKHKMyE8`ed}B19xI6)>eUDx1i2nF-^4G+@5F^zh?}N8r!;EF4=fT?4T$Q!0ou|q zYR#agZ95Fhv7i{8N!H}|iBYZ4XyO^yydAUoSb8yk9`jK@sI?^@KYVJxT9a&jlS9MY zY}0)o==OQB9xfdQ99e8{>qFgpGQ+S{ny zn<>L3=!xRD#`YMd7pb@0nfOy@5fgcH4pm!U=mas^6f_s8ni&cuBIjd`gil4Jj*Nxn^DIA3b9As(oDyXr-{Rag?0S*0K zGrF=)o$uU}=$JIWCC1d*20-ptnkVc4eKYQvfsCt9Enp-vPG&_ccbk1=iyTgGd^(bR zHH3+-0Mg$6fo{j%o7zW>>;vk65q9LUZviKID3^3DQo^*g zg$zCpT-#YP1QcWQ8U#;Du=QT@y@29;=+P2OdE*es!yOP{M7BX)4C8JY`n=C`w8W|9 zEiSBVEzUo*4j(dX1b8C?GT8Sz=>3&JIgTrTC$^Ts?E7P+@fKNGO7`nS8TZ%^bN*ou zgYpcMaA=JFa=#_M%nJ%AC%99+jYc_pG8)zQwVbhSi)YM$wnz z;Z_Py+c1))ajO+RB|L@CyB63UU^d)?r0_pIV{?FuqGjlT8=m;~?OCgWJ>w6aR|^!g zO}$6E=&St~s(B0B5M%2zpz)d1#Y8i6jPY-!mKrmg#OtNN^&W~3^!l~rM zx6FV0D#Vl!9Ll>=)`nEa7+tHT)j?2o?`t*2R**WZ49^d5I1ivbIQ#TVb+^SV)}0gZ zXBex^TY8?XJjs)|fhx|6URiFry&O&I_UZ1{@5+?I#qJRCbK-rM0yfmyS~|8DqK|P} zozt@!g|8g?wjSH@Lj;#Bv5;eK0%C~Y$pcDIfyG5HU1I4T*o0DwhLKhlJWU-lL^-Ef zOroxu(zej7cxOfHboZ*Ua++-Rk&h@0REr0nP#n4*DOpnQRy1$JJQZm zy(c-(Yqgfs4huODkx*tdEkzu%;*ojs$q-sh+EdzZ6G>S1saH=u znV}W~o4X#1J)5-{&SxtON;-Uw?h6gD!=!}qBk{1hbhR5C+qB~zYwy)b=Qs71;(U`D zWf{jqR@72ITe|GhC+skQZ ztIRXST%{dQa>K5rPa-f*0D+CZX#?hkbhntcv2E*neg`H)S0s1w$kAoa>aKOB>GoBO zTH!0V#ZJkd!}WQ`jxG_?NV2S^$R@nVZO^|K#3!SCZ4HzS`*FO_M@JsUv%b z>N+nfcM%lMEudlVm1U`T;CwQ%x9N0)+XiO)kK+@gG^+X;9)6Z(p5Gn84bop# z!#h;}<#?Snh?-1EyDb_aSPzqF9-1vozdLxNPf;@)!QacG?+~@yFjFZ3m^if+tt$a* z>EeB2$oA9IgBrt@Abz{(tdWvF{xtT0ic5y}J?=^7cBB?kJ>9<^`QxAT(%B;;*Bh!n zBkBmR$IcSn9Dh`;!L00w6Mo;RL){gpEwnoL#I8X=@-`|Wu1qx5MgFvL+{sZx{;Sz( z(Ee&HzeB?n?OKWkfk#Xi>prBVy?Xjw^zofLOcB@W-cx+MlXmBG@b66$?R@hwc*rZ6 zIKE0LX=(a{mGQ$ZL8DXmWwjhxJDdy{lr39YEZ+EW{KX9k$u7&b_K_K@q=c$d*8wWf zC%vew(4H?92lH;Pe=Xp*-$IE}M9%)5rvC`iAWTdB+eZC#2j288iRTHP=ilewD9aSB zl(>>odn4Cj;@rd$)MllwJcz;LUEoo>p~4Of_wKINjOK7wR`mrG^O*Ie%n;|#&%5!?*6ctq4Iko0 zu@$oFf_(`y8Dl~?9;>l;(oQra|9V`dH@~3$m?))uay#Gu!BYF{e_ua}_&Ea^|G63f zeg!!G>pegJzU=vbZ#=sj|F=2+f0i6Y6=~2-4Vfr&n@4d`g*}8m6< z(lZ6>mTks`dh@G#jX`lxJCxxLft)hKJo9M=iK?|+>G#9;;P;zJz%6}s)(HDwuh)<4 zT9L+&K@YPU8wN(WLKJ@_uO{bvXZ$YE6Sx2N!9Fjpf$<=+Uc$z^uY)AKNC`tfl?Q=* zUi`{8aM6G1uYZ5RWyNqQAF?^Q&89GC@!txGqKzV7olRuv{OwBUdH~x8)n(hu*L?B# zl_;AIpMqa)Ci>gQZbFvm@0$*xWMZMPCCIs6s1mCZR7q?@5cK}O&b!c~^YEAc`S+vT zkv@Qh%CG13$ZVvFGkn@2BU$S-=1N zZ&q+MMdUU9oAaQF?HVuws^Ce%oBsWJN&!BO^gJFo;5#?|ZqFi!63PIX>gMS&j<1^> zPQI4+N|#5wL@9b8t1E9ehdO`2aK2+d?U+atW6BJvNSW*hdL_NPD6GDCJL)RiAWZW%(4HcP|HH{E49K5j1zF_)|7En1E2K-lb@H>X?B`)HvU zmv(OzZj%G6suTF7{!eY$Q&|oZPO_VdsWNzET!?W6{|C}v$X=W}cV0`Lu$gx=8MSLl z5t%1FL}ZyAV`xY7L~Xty09 zt~V}7V5gue%AJJH-s$l8yKN-D%8{+3x7%deGz6R$)^v)8 zf24EV1CvK_VJCGxhzlBF*3yf4tI2$y^m`J{;}2^?EBXs_X2^j)I6fpE?0UDYi3uMw zwV4ymww)ECI?%wBpAbs8t~AZp(BF%T({!6+8SVNSNyOGp!i(Hvu)TKBP5i{8I&qEl z$G*S73+%ng6XeM0R~2|9SC2VZE>IAb@Wr)_hS~Dn8lyw>ZcA`0_Na* z*UVo;<#MR+2DL~Feu_wKB+<6o-C53#yp!_6b+eqUewlD$-nCM?xjmoKrg4;2 z9|^GGBI)Vl$hgXm$J2WZP1#yhvX@TA#qA5A-rqv%+DVKn#p-i<4`v!rl~h3sz`9sH!q! zeO0Xfb zr_T7%sUect<{vknw;~yCCY&dXB4bnIcAx%Xfpgsp-()RRbN0DP6*{{&Bjuw}j2H;K zuT}BQK8n*#bs6s5XZL37yp#{k&QWV+;KcXX zlGUR4yysiwO{gx+%51eU?`FhAV`w$z_dk zk1A|#vy~63Eyn>3_H%_%3TnQDx5lrRCdunn<`ZU5vcb)y#Lol8tCFkwgwFqXs&cNonO0C`mUuS(v7`n!~m2VsFH`XN&w;WP|52t+XNg@B0gL6d&UTO%^8w}*EpcOe%M2gd`XXr(#mni>t$|Yt|Zg8cx`@MYX4Bka4 zAE1wO`7Ya~FgnnSjKkY8z2(Md{(_+E{`M=4t<8?A!I0*tsogJ!G+jP|aM#e2=RkCI z4_eji*YNWwRF%eNf;b@VM`|<#RwYKb%5N&b{VU&nLncw4^fLduUNGd5z$I(4o`jB3 zCj!LAa@BFg7uOgrbLefZIerZ$y;(|PE})o!kN$@X_m^W3PL>k4yt60Rou;-wAI|LTr~%b}8c#saCFTBoW+cn}y#W?%CLhg$LLPk2^Uh{J7n#mMB9hA4B(J;K5M^!Xp3IkM8}TfQu($vDBXJP;%B1 zv#??29<97L2Y276Thrp(CprJ9ybTPPsA)bub^*+W`~DBVPV#9zk|q~uu7Z0TS8j4FHhH3{6oOlZ1^Q^!O3L+s9dL-hZP$)<-H98D@&tHWH}DRM0*Gsl({?b zZ3-^-4H)`|k#w&AXbL`2`C(ijs#R7&U#0iT+pl&glM6ud5)r+dEtfn;o>ZgL!g(1pU8Wl-yO|VN@d-empWm9#*u+reuu) z(_bt0!FS|Uv4dc*={D8q4Q>5kww7mU87f&fUvfkIh}bIZhcEJ&Na&n-RV3`!nXV=f z^e{{$j0S+B5pq+Jn39`mE!3pPgLgMELna!+R#F2eF@kbd?%S8leX$pNDXo-clEhN?8?OicC}EyZaF^rpv>2RGin>I)qL?8@fqnmb=!Y=p@5w1YN(D9e(Dr z0=)46`K!yvl*Sm!skV89=Z_R)ludmF{Lp0MjRiaca?qMs%rL?he3osHv-p+j_$TFc zS?+7d>aQ>%9tobWj^cN@b-|^A4c&Tq^iR+I9KXWwyXqL~1T=^-^ zHs^lkOa9T!y=I?Uo1!Hyc9n?YHIZN}lKoSX<)7d5AIX+~UebRgUH;MSJID0 zyrTciKK)b3@Rux9bDE%D|I1REi_Hw7ahBq)yGt50Medb~sXP;4)c3`zk5a9Afo^Qb zq0Swp3{gH|JF$tYREO3$bV_?n^x-Fca=e=f!x^F5{I?=Sbj&xg|sWU z?UkOLWLC7p;fw4{1LgtK75d#vE9_mnn+`|YZ*ceBz8}AmxKD_3>vxFnnTNY_Ab&X8 zS*`RuQW46P!wMR4^y7N7sHR$O#o%hpn*>P~g^-#xcqo)*# zEH(oxJsV#hd_3%s$7j*XZRluFK(k#;7gm%RFSj!afQVI7CVg#Y9_Xu()S7RRSDkqv zqi7QK$jK0_HFM*kvqAP8OI#1(dPUH|5BK|&us3)d;)s#bMvFW%9`h?~S|!M2vUEyH z?XOfHS6kGfpnX!3l2^arB!*qjezX!yHyR&y=fC`c&$Quo(KTcD*S9rrI9U*J}0RcR{365K{}9Vr|E)HK)I(3zcsj@Y|9-WNBt~-lfUJPIMI*M1|5I z#-1@(ZLiYvY2S>k)CzubNV`GWtYUYVl5f@IhiXi7_w2oXO&fZ0NU4r$%vehV04M6$ z0w;~W;P8x5>vqr|A4Qu2v~of9M4Mt2&cT06)slc-FTs<{E* z2U?ZR(q+Jby;oZHUE8(rkiMd-+psniA>W?65H0MT{{OJ|)(=s3UE8pVijpE71Jd0+ zl!}ye=g{3TNP{9FEe(To*C5^9-6{XX~o+~4;PeDD4N6y{{_*?S!; zjt!mt;@U5P3Rz(7ez!uUCNEWrF;ND5a6Ssj6OFXyY&a zrd44}wpTS%>2f!;aK&|?c(6AiQN)}lP=bTGmOXN5gS;ce-6<1znI_^SlBFcM8o4a^ z3gYtvX?uQJKF;B4)=BPz*MXGCy@%B-4KgMgz4q41`AH3YZmL{5i+o_)+vPkV==VY` z>fJ)R@^(h4$5QK?Od4(0@4|>-5}%Nly^xvjC-sH$YM`cU;Q%H=(I{@U*)*KY{>WOm z8snZ)d_`5hpCis!_!@dO_qcP@1w7CMrT4~lC8iW1wQiqU5Etw?-D3`Bg2bvatLnE7 zsP}oOFF{Kj<%~!87Hldd84=kzEfh~m%N@bL0>@jqlej!6X6Le9p6)U_PCvoR7gr*# zTtt_B>~LvQ(}j_%Sr|TzU0(w)^nZ^JelY;EssgxeqAQuDrZ%d>ppXJ0msuhoWYonA_V2 zfm)U5tTzU~A5G#eLw3-`2_vq#Ia7>+cvN??uHtPel(LcwyJDnSWqmEC`en%54P$aTF73+dR;8K{x)0GglZoN zAlc~z{xJM(a@%m#23{eJMSG8OjN~P?FBs@OfEeO$u#J@8z)q8HPVMS96|;9@`+U#x zcxj47v!D^{ovP)$W=X3fS%2iDr!IqNaa4y~o9g0N*Y$#V2YPP9bnMXiwZH6Um!GzN z7dltrQB0?;?2Hkb3V zPw_R!NDY>Mkg|8r|A)*#h*T%#m-b@e%VO1BZXK3rn@rHl59c*Y0g!!1ngZW$EL<-I z!eKmm;^y(p>XkHefivNg7-|Nmr#$OP81)Uu4sEj*uhnznfLOy&q1UhYUNXktPKpDVZIYhM;jht-i3!T=Y!u%KgnL$DTW6vWv-DNL@pA6iV59SCi~|zx9FX} z7C4^ryFVZEJ_cLy$^v7`xJ)j|wQ;1r}uMJlB0gkSoa zMgRV(os~X7j`wCj8eFzx(EbOG>YLu*o-<%0%NMI{Stg;-OFYyJC9KC1Tsj<_kI04g z-3Y5f48UBfrmX{zBOi^L{MVOJ>xBy+P5AVjy?2mMzpN;skVTi)olyt>tR+n1hh_u16+^=S(>WFn@au4J+40MIsivkzHMKx`h+HD8fgP0 zTPUZ{#D#xNJZ_+L}n88ZgV>i@z|9A%TK<0ZpEnP%6Zjj2p(*_(9-nzGIrz$`s z%+ zqK9H4`dV9+f2d~6;oV@Z#j!y1RI$Wb^;+ZjSj#&{ zQ?SY_abjLsS5z^@%H8w!9MS2qXP68>dJ18LT9?383EYCa+h~>rgqFf0`d}u1Hc(tT z!)A_=^1za}-S-BKQ}fscU&uuWkDUM{RyM`E&YfvSjMrj2B96~-_iVW&Pp&H7VD0$# zc(G`ExU9|eN9s{2<+~phq-wp$4cx(zc9oiIt691|6-Y_kE?7D36e!~cS(YJyMlRL* zpQrLNr=297Bpb!cFv0+n86!P zpDooPpm@I)_e40aX$34`jcVH>58=E#E^MVl3M4nnD$bXCAp!xhl)Vr-K$IV~_tK@Q z^Gr4?ykouhEIaryWVOiSH-EpR2ZBQj#0hV`RJ4u2*<(CLH`n7%E^7e^}Jp6M1DLN?go%8b68H{@$T9a85nx3)*nDc7$ z1>Miau6)v)7Y*Db}=B{_8WZ;m7J~Rny^63b5BHH>2klIp#93tkV;U*rot=S-8k)N~7=& zO|~1k$qPj`X6jouv-G=#mTWoAA2>O|3=&O6M|Kw~$X-)6kkl)0ZmI^@dbXKB1ALf> z&TFremn*h5D^>pNOG_V_=X^;)cru?XZw!3jtKeIa&gB6%tGPE_JUdeC0a2@BXN+-Jg z*)+C{+5A8poix_gMo07!L)NlKHYk0Y4kEL#HDNotj^goocLfc^uX~#`+x~I48ycE!CE(9u*odSO}=A@s)>n8 zC*FYL*F8O+UKr5dwsIvVkN7Jtod{8|W7>lMjb-{h)C=-)p0Hu4KcQLZZZCl)Y$;^R zbIY#{IMBp$<1!W>bWV!`U?(0?<$meX!t*N`E;@)=zirV&RL4S{UJBFc@}lOo8ds4p zvo4edctk5fx{nI_CWG|_mO8^AFjeQYTh5J@#Uj09j%cO*B_>G@bK%}tq*a?5B&?;+ zAxE^aGiz%TR_UoWEn7d;xRsPZqwK6cl^K}wMkRj^W_g^&1)58ibD;=>nPYSpRL%by zjLC39+ht6THGe-#C1(pXk4)rIIvwY=oXeVxu5*66=&Vy?ESBcHo%JmT>VpEQ7b|Et zIIWYNE1C=Z6qT?Z#1Y1@os)^uT9&G}=qxmNlp*oprf_NEuFoYpM_VW@)R_KBJwm0F zPV84|3zS4|>h+{dPTv5_D46RcFTB3R+>ADlI`O+a|1DA#d2>!# zHM_{xjcRQoMs&T2XEyy-!Ee=hJXXD8chO<@Bl3K)f|%h;j0(Imc*8dDf`H2W#6voy zytkmhGv_Y3w~d8qg9XA4hm$8}KQGk_SyZVruQM0&=M>8YJwdw$%C%yZaUZf6(>y+L z)0Ul#AvUtJ>oAs)#^sGL-+PnPa5byX*kzd^+c50%kJrvD`!CVv8Zu=BE3v=lp1mB* zHe@0jH;`3xQG)5BMxXk9^JcSKxcw}DnUABrGm+XX0C0s?@Kl*}UR*awSn1TTi_+*~ zIqQrLG)HvOVnO6u2f}h0G)bKy@$ulD__CTyA3W&$gxq-FAHR1m5yQVz;N7#tFAn!C z%7Z^qkobG~iQmS1602Wg8W)J;#9z<8y-cz*K1FreSOo0mpB#=PZD{CUo&B0nbf9YvECzPWV#Iy4i)5g z4?hQVFVN`dDs{V`t1C-1HWI2jAN|tZ+UB*}T|w}y z&8f(NP0oTPAG)A(U+hkwWNR1OFzACPMtm7}_cr!0m2nIE`Z9u<6V@q{ekygP`P|WY zU?yNIA}Lx*Y_*RlV$Umu=wuJ<*Q28lOHA}MDshd)*}L*gC;2R~kEf@|8q-wSuxQmW zT#FGej*k=(*E{y_Ru>C{tcp@fLj{scH9fkv z>14Hq_7o_SecUU!>dTwoNJYEQ>Iqrt=Xu9TvFo%xeXB0MrzJYgV@l@wDE629)bEzP zv67;Cn+W+r$7EKo&b?=VWgGE+vtZa}!yguMRh{6cmJw4X<=Mqk9If-lHs9xor?M}n zy`LS7gW$lxwy*nOZ&@JOUVm?_trN@TBGGKQb-6)i zl}}5-8pK6{KLKML+OKl9Jl$8ct$LO2wbhi?sQvsjySUeW)s9M*HobEILlPaWI?__L z!F|zXN8|Imu`q4s57k4>Xo!eem0Fse<=!#r)wwRG4dhLnxXoclQ)i!&?@K+lcy+Hn zL3$L8i4WViq*OvXRTUY;^J%o3YgIx`48cXc+j8$`t;n~eI=t!iwv)fhaW2ghnt@NO z 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 ( - - - - - - - - - - - + <> + + + + + + + + + + + + + ); diff --git a/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/EnrollmentRegistrationEntry.container.js b/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/EnrollmentRegistrationEntry.container.js index 623a16abce..e16304cf87 100644 --- a/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/EnrollmentRegistrationEntry.container.js +++ b/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/EnrollmentRegistrationEntry.container.js @@ -5,29 +5,38 @@ import { useSelector } from 'react-redux'; import { EnrollmentRegistrationEntryComponent } from './EnrollmentRegistrationEntry.component'; import type { OwnProps } from './EnrollmentRegistrationEntry.types'; import { useLifecycle } from './hooks'; -import { useCurrentOrgUnitInfo } from '../../../hooks/useCurrentOrgUnitInfo'; import { useRulesEngineOrgUnit } from '../../../hooks'; import { dataEntryHasChanges } from '../../DataEntry/common/dataEntryHasChanges'; +import { + useBuildEnrollmentPayload, +} from './hooks/useBuildEnrollmentPayload'; export const EnrollmentRegistrationEntry: ComponentType = ({ selectedScopeId, id, saveButtonText, trackedEntityInstanceAttributes, + orgUnitId, + teiId, onSave, ...passOnProps }) => { - const orgUnitId = useCurrentOrgUnitInfo().id; const { orgUnit, error } = useRulesEngineOrgUnit(orgUnitId); const { - teiId, ready, skipDuplicateCheck, firstStageMetaData, formId, enrollmentMetadata, formFoundation, - } = useLifecycle(selectedScopeId, id, trackedEntityInstanceAttributes, orgUnit); + } = useLifecycle(selectedScopeId, id, trackedEntityInstanceAttributes, orgUnit, teiId, selectedScopeId); + const { buildTeiWithEnrollment } = useBuildEnrollmentPayload({ + programId: selectedScopeId, + dataEntryId: id, + orgUnitId, + teiId, + trackedEntityTypeId: enrollmentMetadata?.trackedEntityType?.id, + }); const isUserInteractionInProgress: boolean = useSelector( state => @@ -41,10 +50,16 @@ export const EnrollmentRegistrationEntry: ComponentType = ({ const isSavingInProgress = useSelector(({ possibleDuplicates, newPage }) => possibleDuplicates.isLoading || possibleDuplicates.isUpdating || !!newPage.uid); + if (error) { return error.errorComponent; } + const onSaveWithEnrollment = () => { + const teiWithEnrollment = buildTeiWithEnrollment(); + onSave(teiWithEnrollment); + }; + return ( = ({ orgUnit={orgUnit} isUserInteractionInProgress={isUserInteractionInProgress} isSavingInProgress={isSavingInProgress} - onSave={() => onSave(formFoundation, firstStageMetaData)} + onSave={onSaveWithEnrollment} /> ); }; diff --git a/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/EnrollmentRegistrationEntry.types.js b/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/EnrollmentRegistrationEntry.types.js index f1924c00b3..d58a42aff2 100644 --- a/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/EnrollmentRegistrationEntry.types.js +++ b/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/EnrollmentRegistrationEntry.types.js @@ -8,8 +8,32 @@ import type { ExistingUniqueValueDialogActionsComponent } from '../withErrorMess import type { InputAttribute } from './hooks/useFormValues'; import { RenderFoundation, ProgramStage } from '../../../metaData'; +export type EnrollmentPayload = {| + trackedEntity: string, + trackedEntityType: string, + orgUnit: string, + geometry: any, + enrollments: [ + {| + occurredAt: string, + orgUnit: string, + program: string, + status: string, + enrolledAt: string, + events: Array<{ + orgUnit: string, + }>, + attributes: Array<{ + attribute: string, + value: any, + }>, + |} + ] +|} + export type OwnProps = $ReadOnly<{| id: string, + orgUnitId: string, selectedScopeId: string, fieldOptions?: Object, onSave: SaveForDuplicateCheck, diff --git a/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/hooks/useBuildEnrollmentPayload.js b/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/hooks/useBuildEnrollmentPayload.js new file mode 100644 index 0000000000..95778162b0 --- /dev/null +++ b/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/hooks/useBuildEnrollmentPayload.js @@ -0,0 +1,188 @@ +// @flow +import { useSelector } from 'react-redux'; +import { getDataEntryKey } from '../../../DataEntry/common/getDataEntryKey'; +import { + getTrackerProgramThrowIfNotFound, + Section, +} from '../../../../metaData'; +import type { RenderFoundation } from '../../../../metaData'; +import { convertClientToServer, convertFormToClient } from '../../../../converters'; +import { + convertDataEntryValuesToClientValues, +} from '../../../DataEntry/common/convertDataEntryValuesToClientValues'; +import { capitalizeFirstLetter } from '../../../../../capture-core-utils/string'; +import { generateUID } from '../../../../utils/uid/generateUID'; +import { + useBuildFirstStageRegistration, +} from './useBuildFirstStageRegistration'; +import { + useMetadataForRegistrationForm, +} from '../../common/TEIAndEnrollment/useMetadataForRegistrationForm'; +import { + useMergeFormFoundationsIfApplicable, +} from './useMergeFormFoundationsIfApplicable'; +import { + deriveAutoGenerateEvents, + deriveFirstStageDuringRegistrationEvent, +} from '../../../Pages/New/RegistrationDataEntry/helpers'; +import { FEATURETYPE } from '../../../../constants'; +import type { EnrollmentPayload } from '../EnrollmentRegistrationEntry.types'; + +type DataEntryReduxConverterProps = { + programId: string; + dataEntryId: string; + itemId?: string; + orgUnitId: string; + teiId: ?string; + trackedEntityTypeId: string; +}; + +function getClientValuesForFormData(formValues: Object, formFoundation: RenderFoundation) { + const clientValues = formFoundation.convertValues(formValues, convertFormToClient); + return clientValues; +} + +function getServerValuesForMainValues( + values: Object, + meta: Object, + formFoundation: RenderFoundation, +) { + const clientValues = convertDataEntryValuesToClientValues( + values, + meta, + formFoundation, + ) || {}; + + // potientally run this through a server to client converter for enrollment, the same way as for event + const serverValues = Object + .keys(clientValues) + .reduce((acc, key) => { + const value = clientValues[key]; + const type = meta[key].type; + acc[key] = convertClientToServer(value, type); + return acc; + }, {}); + + return serverValues; +} + +function getPossibleTetFeatureTypeKey(serverValues: Object) { + return Object + .keys(serverValues) + .find(key => key.startsWith('FEATURETYPE_')); +} + +function buildGeometryProp(key: string, serverValues: Object) { + if (!serverValues[key]) { + return undefined; + } + const type = capitalizeFirstLetter(key.replace('FEATURETYPE_', '').toLocaleLowerCase()); + return { + type, + coordinates: serverValues[key], + }; +} + +const geometryType = formValuesKey => Object.values(FEATURETYPE).find(geometryKey => geometryKey === formValuesKey); + +const deriveAttributesFromFormValues = (formValues = {}) => + Object.keys(formValues) + .filter(key => !geometryType(key)) + .map<{ attribute: string, value: ?any }>(key => ({ attribute: key, value: formValues[key] })); + +export const useBuildEnrollmentPayload = ({ + programId, + dataEntryId, + itemId = 'newEnrollment', + orgUnitId, + teiId, + trackedEntityTypeId, +}: DataEntryReduxConverterProps) => { + const dataEntryKey = getDataEntryKey(dataEntryId, itemId); + const formValues = useSelector(({ formsValues }) => formsValues[dataEntryKey]); + const dataEntryFieldValues = useSelector(({ dataEntriesFieldsValue }) => dataEntriesFieldsValue[dataEntryKey]); + const dataEntryFieldsMeta = useSelector(({ dataEntriesFieldsMeta }) => dataEntriesFieldsMeta[dataEntryKey]); + const { formFoundation: scopeFormFoundation } = useMetadataForRegistrationForm({ selectedScopeId: programId }); + const { firstStageMetaData } = useBuildFirstStageRegistration(programId); + const { formFoundation } = useMergeFormFoundationsIfApplicable(scopeFormFoundation, firstStageMetaData); + + const buildTeiWithEnrollment = (): EnrollmentPayload => { + if (!formFoundation) throw Error('form foundation object not found'); + const firstStage = firstStageMetaData && firstStageMetaData.stage; + const clientValues = getClientValuesForFormData(formValues, formFoundation); + const serverValuesForFormValues = formFoundation.convertAndGroupBySection(clientValues, convertClientToServer); + const serverValuesForMainValues = getServerValuesForMainValues( + dataEntryFieldValues, + dataEntryFieldsMeta, + formFoundation, + ); + const { enrolledAt, occurredAt } = serverValuesForMainValues; + + const { stages } = getTrackerProgramThrowIfNotFound(programId); + + const attributeCategoryOptionsId = 'attributeCategoryOptions'; + const attributeCategoryOptions = Object.keys(serverValuesForMainValues) + .filter(key => key.startsWith(attributeCategoryOptionsId)) + .reduce((acc, key) => { + const categoryId = key.split('-')[1]; + acc[categoryId] = serverValuesForMainValues[key]; + return acc; + }, {}); + + const formServerValues = serverValuesForFormValues[Section.groups.ENROLLMENT]; + const currentEventValues = serverValuesForFormValues[Section.groups.EVENT]; + + + const firstStageDuringRegistrationEvent = deriveFirstStageDuringRegistrationEvent({ + firstStageMetadata: firstStage, + programId, + orgUnitId, + currentEventValues, + fieldsValue: dataEntryFieldValues, + attributeCategoryOptions, + }); + + const autoGenerateEvents = deriveAutoGenerateEvents({ + firstStageMetadata: firstStage, + stages, + enrolledAt, + occurredAt, + programId, + orgUnitId, + attributeCategoryOptions, + }); + + const allEventsToBeCreated = firstStageDuringRegistrationEvent + ? [firstStageDuringRegistrationEvent, ...autoGenerateEvents] + : autoGenerateEvents; + + const enrollment = { + program: programId, + status: 'ACTIVE', + orgUnit: orgUnitId, + occurredAt, + enrolledAt, + attributes: deriveAttributesFromFormValues(formServerValues), + events: allEventsToBeCreated, + }; + + const tetFeatureTypeKey = getPossibleTetFeatureTypeKey(serverValuesForFormValues); + let geometry; + if (tetFeatureTypeKey) { + geometry = buildGeometryProp(tetFeatureTypeKey, serverValuesForFormValues); + delete serverValuesForFormValues[tetFeatureTypeKey]; + } + + return { + trackedEntity: teiId || generateUID(), + orgUnit: orgUnitId, + trackedEntityType: trackedEntityTypeId, + geometry, + enrollments: [enrollment], + }; + }; + + return { + buildTeiWithEnrollment, + }; +}; diff --git a/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/hooks/useLifecycle.js b/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/hooks/useLifecycle.js index 0c4a280bf6..4a84d7ccb7 100644 --- a/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/hooks/useLifecycle.js +++ b/src/core_modules/capture-core/components/DataEntries/EnrollmentRegistrationEntry/hooks/useLifecycle.js @@ -4,7 +4,6 @@ import { useEffect, useRef } from 'react'; import type { OrgUnit } from '@dhis2/rules-engine-javascript'; import { startNewEnrollmentDataEntryInitialisation } from '../EnrollmentRegistrationEntry.actions'; import { scopeTypes, getProgramThrowIfNotFound } from '../../../../metaData'; -import { useLocationQuery } from '../../../../utils/routing'; import { useScopeInfo } from '../../../../hooks/useScopeInfo'; import { useFormValues } from './index'; import type { InputAttribute } from './useFormValues'; @@ -18,8 +17,9 @@ export const useLifecycle = ( dataEntryId: string, trackedEntityInstanceAttributes?: Array, orgUnit: ?OrgUnit, + teiId: ?string, + programId: string, ) => { - const { teiId, programId } = useLocationQuery(); const dataEntryReadyRef = useRef(false); const dispatch = useDispatch(); const program = programId && getProgramThrowIfNotFound(programId); diff --git a/src/core_modules/capture-core/components/DataEntries/TeiRegistrationEntry/TeiRegistrationEntry.container.js b/src/core_modules/capture-core/components/DataEntries/TeiRegistrationEntry/TeiRegistrationEntry.container.js index e35cfbb4ce..4c3b8badab 100644 --- a/src/core_modules/capture-core/components/DataEntries/TeiRegistrationEntry/TeiRegistrationEntry.container.js +++ b/src/core_modules/capture-core/components/DataEntries/TeiRegistrationEntry/TeiRegistrationEntry.container.js @@ -3,7 +3,6 @@ import { useDispatch, useSelector } from 'react-redux'; import React, { useEffect, useMemo } from 'react'; import type { ComponentType } from 'react'; import { useScopeInfo } from '../../../hooks/useScopeInfo'; -import { useCurrentOrgUnitInfo } from '../../../hooks/useCurrentOrgUnitInfo'; import { Enrollment, scopeTypes } from '../../../metaData'; import { startNewTeiDataEntryInitialisation } from './TeiRegistrationEntry.actions'; import type { OwnProps } from './TeiRegistrationEntry.types'; @@ -11,11 +10,11 @@ import { TeiRegistrationEntryComponent } from './TeiRegistrationEntry.component' import { useFormValuesFromSearchTerms } from './hooks/useFormValuesFromSearchTerms'; import { dataEntryHasChanges } from '../../DataEntry/common/dataEntryHasChanges'; import { useMetadataForRegistrationForm } from '../common/TEIAndEnrollment/useMetadataForRegistrationForm'; +import { useBuildTeiPayload } from './hooks/useBuildTeiPayload'; -const useInitialiseTeiRegistration = (selectedScopeId, dataEntryId) => { +const useInitialiseTeiRegistration = (selectedScopeId, dataEntryId, orgUnitId) => { const dispatch = useDispatch(); const { scopeType, trackedEntityName } = useScopeInfo(selectedScopeId); - const { id: selectedOrgUnitId } = useCurrentOrgUnitInfo(); const { formId, formFoundation } = useMetadataForRegistrationForm({ selectedScopeId }); const formValues = useFormValuesFromSearchTerms(); const registrationFormReady = !!formId; @@ -24,18 +23,18 @@ const useInitialiseTeiRegistration = (selectedScopeId, dataEntryId) => { if (registrationFormReady && scopeType === scopeTypes.TRACKED_ENTITY_TYPE) { dispatch( startNewTeiDataEntryInitialisation( - { selectedOrgUnitId, selectedScopeId, dataEntryId, formFoundation, formValues }, + { selectedOrgUnitId: orgUnitId, selectedScopeId, dataEntryId, formFoundation, formValues }, )); } }, [ scopeType, dataEntryId, selectedScopeId, - selectedOrgUnitId, registrationFormReady, formFoundation, formValues, dispatch, + orgUnitId, ]); return { @@ -44,13 +43,18 @@ const useInitialiseTeiRegistration = (selectedScopeId, dataEntryId) => { }; -export const TeiRegistrationEntry: ComponentType = ({ selectedScopeId, id, ...rest }) => { - const { trackedEntityName } = useInitialiseTeiRegistration(selectedScopeId, id); +export const TeiRegistrationEntry: ComponentType = ({ selectedScopeId, id, orgUnitId, onSave, ...rest }) => { + const { trackedEntityName } = useInitialiseTeiRegistration(selectedScopeId, id, orgUnitId); const ready = useSelector(({ dataEntries }) => (!!dataEntries[id])); const dataEntry = useSelector(({ dataEntries }) => (dataEntries[id])); const { registrationMetaData: teiRegistrationMetadata, } = useMetadataForRegistrationForm({ selectedScopeId }); + const { buildTeiWithoutEnrollment } = useBuildTeiPayload({ + trackedEntityTypeId: selectedScopeId, + dataEntryId: id, + orgUnitId, + }); const dataEntryKey = useMemo(() => { if (dataEntry) { @@ -68,14 +72,21 @@ export const TeiRegistrationEntry: ComponentType = ({ selectedScopeId, return null; } + const onSaveWithoutEnrollment = () => { + const teiPayload = buildTeiWithoutEnrollment(); + onSave(teiPayload); + }; + return ( ); diff --git a/src/core_modules/capture-core/components/DataEntries/TeiRegistrationEntry/TeiRegistrationEntry.types.js b/src/core_modules/capture-core/components/DataEntries/TeiRegistrationEntry/TeiRegistrationEntry.types.js index d73d49c473..43afd9adc8 100644 --- a/src/core_modules/capture-core/components/DataEntries/TeiRegistrationEntry/TeiRegistrationEntry.types.js +++ b/src/core_modules/capture-core/components/DataEntries/TeiRegistrationEntry/TeiRegistrationEntry.types.js @@ -2,23 +2,27 @@ import type { Node } from 'react'; import type { RegistrationFormMetadata } from '../common/TEIAndEnrollment/useMetadataForRegistrationForm/types'; import type { RenderCustomCardActions } from '../../CardList'; -import type { SaveForDuplicateCheck } from '../common/TEIAndEnrollment/DuplicateCheckOnSave'; import type { ExistingUniqueValueDialogActionsComponent } from '../withErrorMessagePostProcessor'; +import type { + TeiPayload, +} from '../../Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/TrackedEntityInstance/dataEntryTrackedEntityInstance.types'; export type OwnProps = $ReadOnly<{| id: string, + orgUnitId: string, selectedScopeId: string, saveButtonText: string, fieldOptions?: Object, - onSave: SaveForDuplicateCheck, + onSave: (TeiPayload) => void, duplicatesReviewPageSize: number, isSavingInProgress?: boolean, renderDuplicatesCardActions?: RenderCustomCardActions, - renderDuplicatesDialogActions?: (onCancel: () => void, onSave: SaveForDuplicateCheck) => Node, + renderDuplicatesDialogActions?: (onCancel: () => void, onSave: (TeiPayload) => void) => Node, ExistingUniqueValueDialogActions: ExistingUniqueValueDialogActionsComponent, |}>; type ContainerProps = {| + orgUnitId: string, teiRegistrationMetadata: RegistrationFormMetadata, ready: boolean, trackedEntityName: string, @@ -37,9 +41,9 @@ type PropsAddedInHOC = {| |}; type PropsRemovedInHOC = {| renderDuplicatesCardActions?: RenderCustomCardActions, - renderDuplicatesDialogActions?: (onCancel: () => void, onSave: SaveForDuplicateCheck) => Node, + renderDuplicatesDialogActions?: (onCancel: () => void, onSave: (TeiPayload) => void) => Node, duplicatesReviewPageSize: number, - onSave: SaveForDuplicateCheck, + onSave: (TeiPayload) => void, |}; export type PlainProps = {| diff --git a/src/core_modules/capture-core/components/DataEntries/TeiRegistrationEntry/hooks/useBuildTeiPayload.js b/src/core_modules/capture-core/components/DataEntries/TeiRegistrationEntry/hooks/useBuildTeiPayload.js new file mode 100644 index 0000000000..0c4cd6da0d --- /dev/null +++ b/src/core_modules/capture-core/components/DataEntries/TeiRegistrationEntry/hooks/useBuildTeiPayload.js @@ -0,0 +1,81 @@ +// @flow +import { useSelector } from 'react-redux'; +import { useMetadataForRegistrationForm } from '../../common/TEIAndEnrollment/useMetadataForRegistrationForm'; +import type { RenderFoundation } from '../../../../metaData'; +import { convertClientToServer, convertFormToClient } from '../../../../converters'; +import { capitalizeFirstLetter } from '../../../../../capture-core-utils/string'; +import { generateUID } from '../../../../utils/uid/generateUID'; +import { getDataEntryKey } from '../../../DataEntry/common/getDataEntryKey'; +import type { + TeiPayload, +} from '../../../Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/TrackedEntityInstance/dataEntryTrackedEntityInstance.types'; + +type Props = { + trackedEntityTypeId: string, + dataEntryId: string, + orgUnitId: string, + itemId?: string, +}; + +function getClientValuesForFormData(formValues: Object, formFoundation: RenderFoundation) { + return formFoundation.convertValues(formValues, convertFormToClient); +} + +function getPossibleTetFeatureTypeKey(serverValues: Object) { + return Object + .keys(serverValues) + .find(key => key.startsWith('FEATURETYPE_')); +} + +function buildGeometryProp(key: string, serverValues: Object) { + if (!serverValues[key]) { + return undefined; + } + const type = capitalizeFirstLetter(key.replace('FEATURETYPE_', '').toLocaleLowerCase()); + return { + type, + coordinates: serverValues[key], + }; +} + +export const useBuildTeiPayload = ({ + trackedEntityTypeId, + dataEntryId, + itemId = 'newTei', + orgUnitId, +}: Props) => { + const dataEntryKey = getDataEntryKey(dataEntryId, itemId); + const { formFoundation } = useMetadataForRegistrationForm({ selectedScopeId: trackedEntityTypeId }); + const formValues = useSelector(({ formsValues }) => formsValues[dataEntryKey]); + + const buildTeiWithoutEnrollment = (): TeiPayload => { + if (!formFoundation) throw Error('form foundation object not found'); + const clientValues = getClientValuesForFormData(formValues, formFoundation); + const serverValuesForFormValues = formFoundation.convertValues(clientValues, convertClientToServer); + + // $FlowFixMe + const attributes = Object.keys(serverValuesForFormValues) + .map(key => ({ + attribute: key, + value: serverValuesForFormValues[key], + })); + + const tetFeatureTypeKey = getPossibleTetFeatureTypeKey(serverValuesForFormValues); + let geometry; + if (tetFeatureTypeKey) { + geometry = buildGeometryProp(tetFeatureTypeKey, serverValuesForFormValues); + delete serverValuesForFormValues[tetFeatureTypeKey]; + } + + return { + attributes, + trackedEntity: generateUID(), + orgUnit: orgUnitId, + trackedEntityType: trackedEntityTypeId, + geometry, + enrollments: [], + }; + }; + + return { buildTeiWithoutEnrollment }; +}; diff --git a/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/DuplicateCheckOnSave/types/duplicateCheckOnSave.types.js b/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/DuplicateCheckOnSave/types/duplicateCheckOnSave.types.js index a727db9ec2..f55dc39c0e 100644 --- a/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/DuplicateCheckOnSave/types/duplicateCheckOnSave.types.js +++ b/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/DuplicateCheckOnSave/types/duplicateCheckOnSave.types.js @@ -1,7 +1,7 @@ // @flow -import { ProgramStage, RenderFoundation } from '../../../../../../metaData'; +import type { EnrollmentPayload } from '../../../../EnrollmentRegistrationEntry/EnrollmentRegistrationEntry.types'; +import type { TeiPayload } from '../../../../../Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/TrackedEntityInstance/dataEntryTrackedEntityInstance.types'; export type SaveForDuplicateCheck = ( - formFoundation?: RenderFoundation, - firstStageMetaData?: { stage: ProgramStage }, + teiWithEnrollment: EnrollmentPayload | TeiPayload, ) => void; diff --git a/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/DuplicateCheckOnSave/useDuplicateCheckerOnSave.types.js b/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/DuplicateCheckOnSave/useDuplicateCheckerOnSave.types.js index 98525d23d5..d74476bfee 100644 --- a/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/DuplicateCheckOnSave/useDuplicateCheckerOnSave.types.js +++ b/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/DuplicateCheckOnSave/useDuplicateCheckerOnSave.types.js @@ -1,9 +1,8 @@ // @flow import { type InputSearchGroup } from '../../../../../metaData'; -import type { SaveForDuplicateCheck } from './types'; export type Input = {| - onSave: SaveForDuplicateCheck, + onSave: () => void, hasDuplicate: ?boolean, onResetPossibleDuplicates: () => void, onReviewDuplicates: (duplicatesReviewPageSize: number) => void, diff --git a/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/DuplicateCheckOnSave/withDuplicateCheckOnSave.types.js b/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/DuplicateCheckOnSave/withDuplicateCheckOnSave.types.js index 87a3d4cffc..560dd0e9a2 100644 --- a/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/DuplicateCheckOnSave/withDuplicateCheckOnSave.types.js +++ b/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/DuplicateCheckOnSave/withDuplicateCheckOnSave.types.js @@ -2,16 +2,15 @@ import type { Node } from 'react'; import type { Enrollment, TeiRegistration } from '../../../../../metaData'; import type { RenderCustomCardActions } from '../../../../CardList'; -import type { SaveForDuplicateCheck } from './types'; export type Props = { id: string, selectedScopeId: string, - onSave: SaveForDuplicateCheck, + onSave: () => void, enrollmentMetadata?: Enrollment, teiRegistrationMetadata?: TeiRegistration, duplicatesReviewPageSize: number, renderDuplicatesCardActions?: RenderCustomCardActions, - renderDuplicatesDialogActions?: (onCancel: () => void, onSave: SaveForDuplicateCheck) => Node, + renderDuplicatesDialogActions?: (onCancel: () => void, onSave: () => void) => Node, skipDuplicateCheck: ?boolean, }; diff --git a/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/useMetadataForRegistrationForm/hooks/useEnrollmentFormFoundation.js b/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/useMetadataForRegistrationForm/hooks/useEnrollmentFormFoundation.js index 49a7b484be..0238087811 100644 --- a/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/useMetadataForRegistrationForm/hooks/useEnrollmentFormFoundation.js +++ b/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/useMetadataForRegistrationForm/hooks/useEnrollmentFormFoundation.js @@ -30,6 +30,7 @@ export const useEnrollmentFormFoundation = ({ locale, }: Props) => { const { data: enrollment, isLoading, error } = useIndexedDBQuery( + // $FlowFixMe - QueryKey can be undefined ['enrollmentForm', program?.id], () => buildEnrollmentForm({ // $FlowFixMe - Flow does not understand that the values are not null here diff --git a/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/useMetadataForRegistrationForm/hooks/useTrackedEntityTypeCollection.js b/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/useMetadataForRegistrationForm/hooks/useTrackedEntityTypeCollection.js index ae3d4c3e5a..05a173cfc8 100644 --- a/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/useMetadataForRegistrationForm/hooks/useTrackedEntityTypeCollection.js +++ b/src/core_modules/capture-core/components/DataEntries/common/TEIAndEnrollment/useMetadataForRegistrationForm/hooks/useTrackedEntityTypeCollection.js @@ -26,6 +26,7 @@ export const useTrackedEntityTypeCollection = ({ locale, }: Props): ReturnValues => { const { data: trackedEntityAttributes } = useIndexedDBQuery( + // $FlowFixMe - QueryKey can be undefined ['trackedEntityAttributes', trackedEntityType?.id], () => getTrackedEntityAttributes( trackedEntityType @@ -40,6 +41,7 @@ export const useTrackedEntityTypeCollection = ({ ); const { data: trackedEntityTypeCollection } = useIndexedDBQuery( + // $FlowFixMe - QueryKey can be undefined ['trackedEntityTypeCollection', trackedEntityType?.id], () => buildTrackedEntityTypeCollection({ // $FlowFixMe diff --git a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPage.epics.js b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPage.epics.js index 99857025f9..6d905e0188 100644 --- a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPage.epics.js +++ b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPage.epics.js @@ -207,3 +207,4 @@ export const openEnrollmentPageEpic = (action$: InputObservable, store: ReduxSto }, ), ); + diff --git a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.component.js b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.component.js index 0759fcd558..05be58a16e 100644 --- a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.component.js +++ b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.component.js @@ -1,5 +1,5 @@ // @flow -import React, { type ComponentType } from 'react'; +import React, { type ComponentType, useState, useCallback } from 'react'; import withStyles from '@material-ui/core/styles/withStyles'; import { spacersNum, spacers, colors } from '@dhis2/ui'; import i18n from '@dhis2/d2-i18n'; @@ -13,8 +13,15 @@ import { WidgetError } from '../../../WidgetErrorAndWarning/WidgetError'; import { WidgetIndicator } from '../../../WidgetIndicator'; import { WidgetEnrollmentComment } from '../../../WidgetEnrollmentComment'; import { EnrollmentQuickActions } from './EnrollmentQuickActions'; +import { + TrackedEntityRelationshipsWrapper, +} from '../../common/TEIRelationshipsWidget/TrackedEntityRelationshipsWrapper'; +import { AddRelationshipRefWrapper } from '../../EnrollmentEditEvent/AddRelationshipRefWrapper'; const getStyles = () => ({ + container: { + position: 'relative', + }, columns: { display: 'flex', }, @@ -59,68 +66,96 @@ export const EnrollmentPageDefaultPlain = ({ hideWidgets, classes, onEventClick, + onLinkedRecordClick, onUpdateTeiAttributeValues, onUpdateEnrollmentDate, onUpdateIncidentDate, onEnrollmentError, ruleEffects, -}: PlainProps) => ( - <> -

{i18n.t('Enrollment Dashboard')}
-
-
- - -
-
- - - - {!hideWidgets.indicator && ( - - )} - {!hideWidgets.feedback && ( - - )} - - {enrollmentId !== 'AUTO' && } +}: PlainProps) => { + const [mainContentVisible, setMainContentVisibility] = useState(true); + const [addRelationShipContainerElement, setAddRelationshipContainerElement] = + useState(undefined); + + const toggleVisibility = useCallback(() => setMainContentVisibility(current => !current), []); + + return ( + <> + +
+
{i18n.t('Enrollment Dashboard')}
+
+
+ + +
+
+ {addRelationShipContainerElement && + {}} + onOpenAddRelationship={toggleVisibility} + onCloseAddRelationship={toggleVisibility} + teiId={teiId} + onLinkedRecordClick={onLinkedRecordClick} + /> + } + + + + {!hideWidgets.indicator && ( + + )} + {!hideWidgets.feedback && ( + + )} + + {enrollmentId !== 'AUTO' && } +
+
-
- -); + + ); +}; export const EnrollmentPageDefaultComponent: ComponentType = withStyles( diff --git a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.container.js b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.container.js index 2e7b8da1bc..d7f3ccdf85 100644 --- a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.container.js +++ b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.container.js @@ -28,12 +28,14 @@ import { } from './hooks'; import { buildUrlQueryString, useLocationQuery } from '../../../../utils/routing'; import { useFilteredWidgetData } from './hooks/useFilteredWidgetData'; +import { useLinkedRecordClick } from '../../common/TEIRelationshipsWidget'; export const EnrollmentPageDefault = () => { const history = useHistory(); const dispatch = useDispatch(); const { enrollmentId, programId, teiId, orgUnitId } = useLocationQuery(); const { orgUnit, error } = useRulesEngineOrgUnit(orgUnitId); + const { onLinkedRecordClick } = useLinkedRecordClick(); const program = useTrackerProgram(programId); const { @@ -102,6 +104,7 @@ export const EnrollmentPageDefault = () => { }; const onEnrollmentError = message => dispatch(showEnrollmentError({ message })); + if (error) { return error.errorComponent; } @@ -122,6 +125,7 @@ export const EnrollmentPageDefault = () => { widgetEffects={outputEffects} hideWidgets={hideWidgets} onEventClick={onEventClick} + onLinkedRecordClick={onLinkedRecordClick} onUpdateTeiAttributeValues={onUpdateTeiAttributeValues} onUpdateEnrollmentDate={onUpdateEnrollmentDate} onUpdateIncidentDate={onUpdateIncidentDate} diff --git a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.types.js b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.types.js index 4e88f4a39b..143b9b8c28 100644 --- a/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.types.js +++ b/src/core_modules/capture-core/components/Pages/Enrollment/EnrollmentPageDefault/EnrollmentPageDefault.types.js @@ -1,12 +1,13 @@ // @flow import { typeof effectActions } from '@dhis2/rules-engine-javascript'; -import type { Program } from 'capture-core/metaData'; +import type { TrackerProgram } from 'capture-core/metaData'; import type { Stage } from 'capture-core/components/WidgetStagesAndEvents/types/common.types'; import type { WidgetEffects, HideWidgets } from '../../common/EnrollmentOverviewDomain'; import type { Event } from '../../common/EnrollmentOverviewDomain/useCommonEnrollmentDomainData'; +import type { LinkedRecordClick } from '../../../WidgetsRelationship/WidgetTrackedEntityRelationship'; export type Props = {| - program: Program, + program: TrackerProgram, enrollmentId: string, teiId: string, events: ?Array, @@ -20,6 +21,7 @@ export type Props = {| onCreateNew: (stageId: string) => void, onEventClick: (eventId: string) => void, onUpdateTeiAttributeValues: (attributes: Array<{ [key: string]: string }>, teiDisplayName: string) => void, + onLinkedRecordClick: LinkedRecordClick, onUpdateEnrollmentDate: (enrollmentDate: string) => void, onUpdateIncidentDate: (incidentDate: string) => void, onEnrollmentError: (message: string) => void, diff --git a/src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/AddRelationshipRefWrapper/AddRelationshipRefWrapper.component.js b/src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/AddRelationshipRefWrapper/AddRelationshipRefWrapper.component.js new file mode 100644 index 0000000000..7235bb1a14 --- /dev/null +++ b/src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/AddRelationshipRefWrapper/AddRelationshipRefWrapper.component.js @@ -0,0 +1,21 @@ +// @flow +import React, { useEffect, useRef } from 'react'; + +type Props = { + setRelationshipRef: (HTMLDivElement) => void, +} + +export const AddRelationshipRefWrapper = ({ setRelationshipRef }: Props) => { + const renderRelationshipRef = useRef(undefined); + + // Extracting the logic to separate component because of the OrgUnitFetcher + useEffect(() => { + if (renderRelationshipRef.current) { + setRelationshipRef(renderRelationshipRef.current); + } + }, [setRelationshipRef]); + + return ( +
+ ); +}; diff --git a/src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/AddRelationshipRefWrapper/index.js b/src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/AddRelationshipRefWrapper/index.js new file mode 100644 index 0000000000..7400ed7ff3 --- /dev/null +++ b/src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/AddRelationshipRefWrapper/index.js @@ -0,0 +1,3 @@ +// @flow + +export { AddRelationshipRefWrapper } from './AddRelationshipRefWrapper.component'; diff --git a/src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/EnrollmentEditEventPage.component.js b/src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/EnrollmentEditEventPage.component.js index 1add434b21..6137c49b32 100644 --- a/src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/EnrollmentEditEventPage.component.js +++ b/src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/EnrollmentEditEventPage.component.js @@ -1,5 +1,5 @@ // @flow -import React from 'react'; +import React, { useCallback, useState } from 'react'; import type { ComponentType } from 'react'; import i18n from '@dhis2/d2-i18n'; import { spacersNum } from '@dhis2/ui'; @@ -18,12 +18,19 @@ import { IncompleteSelectionsMessage } from '../../IncompleteSelectionsMessage'; import { WidgetEventComment } from '../../WidgetEventComment'; import { OrgUnitFetcher } from '../../OrgUnitFetcher'; import { TopBar } from './TopBar.container'; +import { + TrackedEntityRelationshipsWrapper, +} from '../common/TEIRelationshipsWidget/TrackedEntityRelationshipsWrapper'; +import { AddRelationshipRefWrapper } from './AddRelationshipRefWrapper'; import { NoticeBox } from '../../NoticeBox'; const styles = ({ typography }) => ({ page: { margin: spacersNum.dp16, }, + addRelationshipContainer: { + margin: spacersNum.dp16, + }, columns: { display: 'flex', }, @@ -52,6 +59,7 @@ const EnrollmentEditEventPagePain = ({ programStage, teiId, enrollmentId, + trackedEntityTypeId, programId, enrollmentsAsOptions, trackedEntityName, @@ -62,6 +70,7 @@ const EnrollmentEditEventPagePain = ({ onAddNew, classes, onGoBack, + onLinkedRecordClick, orgUnitId, eventDate, scheduleDate, @@ -71,85 +80,111 @@ const EnrollmentEditEventPagePain = ({ onEnrollmentSuccess, onCancelEditEvent, onHandleScheduleSave, -}: PlainProps) => ( - - -
-
- {mode === dataEntryKeys.VIEW - ? i18n.t('Enrollment{{escape}} View Event', { escape: ':' }) - : i18n.t('Enrollment{{escape}} Edit Event', { escape: ':' })} +}: PlainProps) => { + const [mainContentVisible, setMainContentVisible] = useState(true); + const [addRelationShipContainerElement, setAddRelationShipContainerElement] = useState(undefined); + + const toggleVisibility = useCallback(() => setMainContentVisible(current => !current), []); + + return ( + + +
+
-
-
- {pageStatus === pageStatuses.DEFAULT && programStage && ( - +
+ {mode === dataEntryKeys.VIEW + ? i18n.t('Enrollment{{escape}} View Event', { escape: ':' }) + : i18n.t('Enrollment{{escape}} Edit Event', { escape: ':' })} +
+
+
+ {pageStatus === pageStatuses.DEFAULT && programStage && ( + + )} + {pageStatus === pageStatuses.MISSING_DATA && ( + {i18n.t('The enrollment event data could not be found')} + )} + {pageStatus === pageStatuses.WITHOUT_ORG_UNIT_SELECTED && ( + + {i18n.t('Choose a registering unit to start reporting')} + + )} +
+
+ + + + {!hideWidgets.feedback && ( + + )} + {!hideWidgets.indicator && ( + + )} + {addRelationShipContainerElement && + {}} + onLinkedRecordClick={onLinkedRecordClick} + /> + } + + - )} - {pageStatus === pageStatuses.MISSING_DATA && ( - {i18n.t('The enrollment event data could not be found')} - )} - {pageStatus === pageStatuses.WITHOUT_ORG_UNIT_SELECTED && ( - - {i18n.t('Choose a registering unit to start reporting')} - - )} -
-
- - - - {!hideWidgets.feedback && ( - - )} - {!hideWidgets.indicator && ( - - )} - - +
+
- -
-
-); + + ); +}; export const EnrollmentEditEventPageComponent: ComponentType<$Diff> = withStyles(styles)(EnrollmentEditEventPagePain); diff --git a/src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/EnrollmentEditEventPage.container.js b/src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/EnrollmentEditEventPage.container.js index b6a27e92bf..82ee3b9360 100644 --- a/src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/EnrollmentEditEventPage.container.js +++ b/src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/EnrollmentEditEventPage.container.js @@ -21,6 +21,7 @@ import { useEvent } from './hooks'; import type { Props } from './EnrollmentEditEventPage.types'; import { LoadingMaskForPage } from '../../LoadingMasks'; import { cleanUpDataEntry } from '../../DataEntry'; +import { useLinkedRecordClick } from '../common/TEIRelationshipsWidget'; import { pageKeys } from '../../App/withAppUrlSync'; import { withErrorMessageHandler } from '../../../HOC'; @@ -90,6 +91,8 @@ const EnrollmentEditEventPageWithContextPlain = ({ const history = useHistory(); const dispatch = useDispatch(); + const { onLinkedRecordClick } = useLinkedRecordClick(); + useEffect(() => () => { dispatch(cleanUpDataEntry(dataEntryIds.ENROLLMENT_EVENT)); }, [dispatch]); @@ -116,6 +119,7 @@ const EnrollmentEditEventPageWithContextPlain = ({ } }, [initMode, enrollmentId, eventId, orgUnitId, history]); + const { enrollment: enrollmentSite } = useCommonEnrollmentDomainData(teiId, enrollmentId, programId); const onGoBack = () => history.push(`/enrollment?${buildUrlQueryString({ enrollmentId })}`); @@ -123,10 +127,9 @@ const EnrollmentEditEventPageWithContextPlain = ({ dispatch(updateEnrollmentEvents(eventId, eventData)); history.push(`enrollment?${buildUrlQueryString({ enrollmentId })}`); }; - const enrollmentSite = useCommonEnrollmentDomainData(teiId, enrollmentId, programId).enrollment; const { teiDisplayName } = useTeiDisplayName(teiId, programId); // $FlowFixMe - const trackedEntityName = program?.trackedEntityType?.name; + const { name: trackedEntityName, id: trackedEntityTypeId } = program?.trackedEntityType; const enrollmentsAsOptions = buildEnrollmentsAsOptions([enrollmentSite || {}], programId); const event = enrollmentSite?.events?.find(item => item.event === eventId); const eventDate = getEventDate(event); @@ -135,6 +138,7 @@ const EnrollmentEditEventPageWithContextPlain = ({ const dataEntryKey = `${dataEntryIds.ENROLLMENT_EVENT}-${currentPageMode}`; const outputEffects = useWidgetDataFromStore(dataEntryKey); + const pageStatus = getPageStatus({ orgUnitId, enrollmentSite, @@ -154,6 +158,7 @@ const EnrollmentEditEventPageWithContextPlain = ({ hideWidgets={hideWidgets} teiId={teiId} enrollmentId={enrollmentId} + trackedEntityTypeId={trackedEntityTypeId} enrollmentsAsOptions={enrollmentsAsOptions} teiDisplayName={teiDisplayName} trackedEntityName={trackedEntityName} @@ -162,6 +167,7 @@ const EnrollmentEditEventPageWithContextPlain = ({ onAddNew={onAddNew} orgUnitId={orgUnitId} eventDate={eventDate} + onLinkedRecordClick={onLinkedRecordClick} onEnrollmentError={onEnrollmentError} onEnrollmentSuccess={onEnrollmentSuccess} eventStatus={event?.status} diff --git a/src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/EnrollmentEditEventPage.types.js b/src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/EnrollmentEditEventPage.types.js index 8e16b09325..8f269fed00 100644 --- a/src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/EnrollmentEditEventPage.types.js +++ b/src/core_modules/capture-core/components/Pages/EnrollmentEditEvent/EnrollmentEditEventPage.types.js @@ -1,6 +1,7 @@ // @flow import type { ProgramStage } from '../../../metaData'; import type { WidgetEffects, HideWidgets } from '../common/EnrollmentOverviewDomain'; +import type { LinkedRecordClick } from '../../WidgetsRelationship/WidgetTrackedEntityRelationship'; export type PlainProps = {| programStage: ?ProgramStage, @@ -9,6 +10,7 @@ export type PlainProps = {| teiId: string, enrollmentId: string, programId: string, + trackedEntityTypeId: string, mode: string, orgUnitId: string, trackedEntityName: string, @@ -19,6 +21,7 @@ export type PlainProps = {| onDelete: () => void, onAddNew: () => void, onGoBack: () => void, + onLinkedRecordClick: LinkedRecordClick, onEnrollmentError: (message: string) => void, onEnrollmentSuccess: () => void, onCancelEditEvent: (isScheduled: boolean) => void, diff --git a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.actions.js b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.actions.js index e716f71741..6beb555bc6 100644 --- a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.actions.js +++ b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.actions.js @@ -1,7 +1,12 @@ // @flow -import type { ProgramStage, RenderFoundation } from '../../../../metaData'; import { actionCreator } from '../../../../actions/actions.utils'; import { effectMethods } from '../../../../trackerOffline'; +import type { + EnrollmentPayload, +} from '../../../DataEntries/EnrollmentRegistrationEntry/EnrollmentRegistrationEntry.types'; +import type { + TeiPayload, +} from '../../common/TEIRelationshipsWidget/RegisterTei/DataEntry/TrackedEntityInstance/dataEntryTrackedEntityInstance.types'; export const registrationFormActionTypes = { NEW_TRACKED_ENTITY_INSTANCE_SAVE_START: 'StartSavingNewTrackedEntityInstance', @@ -16,8 +21,8 @@ export const registrationFormActionTypes = { }; // without enrollment -export const startSavingNewTrackedEntityInstance = (formFoundation: RenderFoundation) => - actionCreator(registrationFormActionTypes.NEW_TRACKED_ENTITY_INSTANCE_SAVE_START)({ formFoundation }); +export const startSavingNewTrackedEntityInstance = (teiPayload: TeiPayload) => + actionCreator(registrationFormActionTypes.NEW_TRACKED_ENTITY_INSTANCE_SAVE_START)({ teiPayload }); export const saveNewTrackedEntityInstance = (candidateForRegistration: any) => actionCreator(registrationFormActionTypes.NEW_TRACKED_ENTITY_INSTANCE_SAVE)( @@ -41,11 +46,9 @@ export const saveNewTrackedEntityInstance = (candidateForRegistration: any) => ); // with enrollment -export const startSavingNewTrackedEntityInstanceWithEnrollment = (formFoundation: RenderFoundation, teiId: string, uid: string, firstStage?: ProgramStage) => +export const startSavingNewTrackedEntityInstanceWithEnrollment = (enrollmentPayload: EnrollmentPayload, uid: string) => actionCreator(registrationFormActionTypes.NEW_TRACKED_ENTITY_INSTANCE_WITH_ENROLLMENT_SAVE_START)({ - formFoundation, - teiId, - firstStage, + enrollmentPayload, uid, }); diff --git a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.component.js b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.component.js index cf14636450..d5d956f29d 100644 --- a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.component.js +++ b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.component.js @@ -15,9 +15,7 @@ import { ResultsPageSizeContext } from '../../shared-contexts'; import { navigateToEnrollmentOverview } from '../../../../actions/navigateToEnrollmentOverview/navigateToEnrollmentOverview.actions'; import { useLocationQuery } from '../../../../utils/routing'; import { EnrollmentRegistrationEntryWrapper } from '../EnrollmentRegistrationEntryWrapper.component'; -import { - useMetadataForRegistrationForm, -} from '../../../DataEntries/common/TEIAndEnrollment/useMetadataForRegistrationForm'; +import { useCurrentOrgUnitInfo } from '../../../../hooks/useCurrentOrgUnitInfo'; const getStyles = ({ typography }) => ({ container: { @@ -99,7 +97,7 @@ const RegistrationDataEntryPlain = ({ const { resultsPageSize } = useContext(ResultsPageSizeContext); const { scopeType, programName, trackedEntityName } = useScopeInfo(selectedScopeId); const titleText = useScopeTitleText(selectedScopeId); - const { formFoundation } = useMetadataForRegistrationForm({ selectedScopeId }); + const { id: reduxOrgUnitId } = useCurrentOrgUnitInfo(); const handleRegistrationScopeSelection = (id) => { setScopeId(id); @@ -178,10 +176,10 @@ const RegistrationDataEntryPlain = ({ - onSaveWithEnrollment(customFormFoundation, firstStageMetaData?.stage) - } + onSave={onSaveWithEnrollment} saveButtonText={(trackedEntityTypeNameLC: string) => i18n.t('Save {{trackedEntityTypeName}}', { trackedEntityTypeName: trackedEntityTypeNameLC, interpolation: { escapeValue: false }, @@ -233,11 +231,12 @@ const RegistrationDataEntryPlain = ({ onSaveWithoutEnrollment(formFoundation)} + onSave={onSaveWithoutEnrollment} duplicatesReviewPageSize={resultsPageSize} renderDuplicatesDialogActions={renderDuplicatesDialogActions} renderDuplicatesCardActions={renderDuplicatesCardActions} diff --git a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.container.js b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.container.js index 41f5a864d5..8aeda04f1f 100644 --- a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.container.js +++ b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.container.js @@ -26,15 +26,15 @@ export const RegistrationDataEntry: ComponentType = ({ const { teiId } = useLocationQuery(); const dispatchOnSaveWithoutEnrollment = useCallback( - (formFoundation) => { dispatch(startSavingNewTrackedEntityInstance(formFoundation)); }, + (teiPayload) => { dispatch(startSavingNewTrackedEntityInstance(teiPayload)); }, [dispatch]); const dispatchOnSaveWithEnrollment = useCallback( - (formFoundation, firstStage) => { + (enrollmentPayload) => { const uid = uuid(); - dispatch(startSavingNewTrackedEntityInstanceWithEnrollment(formFoundation, teiId, uid, firstStage)); + dispatch(startSavingNewTrackedEntityInstanceWithEnrollment(enrollmentPayload, uid)); }, - [dispatch, teiId]); + [dispatch]); const dataEntryIsReady = useSelector(({ dataEntries }) => (!!dataEntries[dataEntryId])); diff --git a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.epics.js b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.epics.js index 004adb75f7..be02acbcb5 100644 --- a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.epics.js +++ b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.epics.js @@ -1,59 +1,31 @@ // @flow import { ofType } from 'redux-observable'; -import { pipe } from 'capture-core-utils'; import { flatMap, map } from 'rxjs/operators'; import { of, EMPTY } from 'rxjs'; -import { FEATURETYPE, dataEntryKeys } from 'capture-core/constants'; +import { dataEntryKeys } from 'capture-core/constants'; import { registrationFormActionTypes, saveNewTrackedEntityInstance, saveNewTrackedEntityInstanceWithEnrollment, } from './RegistrationDataEntry.actions'; -import { getTrackerProgramThrowIfNotFound, dataElementTypes, Section } from '../../../../metaData'; +import { getTrackerProgramThrowIfNotFound } from '../../../../metaData'; import { navigateToEnrollmentOverview, } from '../../../../actions/navigateToEnrollmentOverview/navigateToEnrollmentOverview.actions'; -import { convertFormToClient, convertClientToServer } from '../../../../converters'; import { buildUrlQueryString, shouldUseNewDashboard } from '../../../../utils/routing'; import { - deriveAutoGenerateEvents, - deriveFirstStageDuringRegistrationEvent, getStageWithOpenAfterEnrollment, - standardGeoJson, PAGES, } from './helpers'; -const convertFn = pipe(convertFormToClient, convertClientToServer); - -const geometryType = formValuesKey => Object.values(FEATURETYPE).find(geometryKey => geometryKey === formValuesKey); - -const deriveAttributesFromFormValues = (formValues = {}) => - Object.keys(formValues) - .filter(key => !geometryType(key)) - .map(key => ({ attribute: key, value: formValues[key] })); - -const deriveGeometryFromFormValues = (formValues = {}) => - Object.keys(formValues) - .filter(key => geometryType(key)) - .reduce((acc, currentKey) => (standardGeoJson(formValues[currentKey])), undefined); - -export const startSavingNewTrackedEntityInstanceEpic: Epic = (action$: InputObservable, store: ReduxStore) => +export const startSavingNewTrackedEntityInstanceEpic: Epic = (action$: InputObservable) => action$.pipe( ofType(registrationFormActionTypes.NEW_TRACKED_ENTITY_INSTANCE_SAVE_START), map((action) => { - const { currentSelections: { orgUnitId, trackedEntityTypeId }, formsValues } = store.value; - const values = formsValues['newPageDataEntryId-newTei']; - const formFoundation = action.payload?.formFoundation; - const formServerValues = formFoundation?.convertValues(values, convertFn); + const { teiPayload } = action.payload; return saveNewTrackedEntityInstance( { - trackedEntities: [{ - attributes: deriveAttributesFromFormValues(formServerValues), - geometry: deriveGeometryFromFormValues(values), - enrollments: [], - orgUnit: orgUnitId, - trackedEntityType: trackedEntityTypeId, - }], + trackedEntities: [teiPayload], }); }), ); @@ -80,78 +52,26 @@ export const startSavingNewTrackedEntityInstanceWithEnrollmentEpic: Epic = ( action$.pipe( ofType(registrationFormActionTypes.NEW_TRACKED_ENTITY_INSTANCE_WITH_ENROLLMENT_SAVE_START), map((action) => { - const formId = 'newPageDataEntryId-newEnrollment'; - const { currentSelections: { orgUnitId, programId }, formsValues, dataEntriesFieldsValue } = store.value; + const { currentSelections: { programId } } = store.value; const { dataStore, userDataStore, temp } = store.value.useNewDashboard; - const { formFoundation, teiId: trackedEntity, firstStage: firstStageMetadata, uid } = action.payload; - const fieldsValue = dataEntriesFieldsValue[formId] || {}; - const { occurredAt, enrolledAt, geometry } = fieldsValue; - const attributeCategoryOptionsId = 'attributeCategoryOptions'; - const attributeCategoryOptions = Object.keys(fieldsValue) - .filter(key => key.startsWith(attributeCategoryOptionsId)) - .reduce((acc, key) => { - const categoryId = key.split('-')[1]; - acc[categoryId] = fieldsValue[key]; - return acc; - }, {}); - const { trackedEntityType, stages } = getTrackerProgramThrowIfNotFound(programId); - const currentFormData = formsValues[formId] || {}; + const { enrollmentPayload, uid } = action.payload; + const { stages, useFirstStageDuringRegistration } = getTrackerProgramThrowIfNotFound(programId); + const shouldRedirect = shouldUseNewDashboard(userDataStore, dataStore, temp, programId); const { stageWithOpenAfterEnrollment, redirectTo } = getStageWithOpenAfterEnrollment( stages, - firstStageMetadata, + useFirstStageDuringRegistration, shouldRedirect, ); - const convertedValues = formFoundation.convertAndGroupBySection(currentFormData, convertFn); - const formServerValues = convertedValues[Section.groups.ENROLLMENT]; - const currentEventValues = convertedValues[Section.groups.EVENT]; - - const firstStageDuringRegistrationEvent = deriveFirstStageDuringRegistrationEvent({ - firstStageMetadata, - programId, - orgUnitId, - currentEventValues, - fieldsValue, - attributeCategoryOptions, - }); - const autoGenerateEvents = deriveAutoGenerateEvents({ - stages, - enrolledAt, - occurredAt, - programId, - orgUnitId, - firstStageMetadata, - attributeCategoryOptions, - }); - const allEventsToBeCreated = firstStageDuringRegistrationEvent - ? [firstStageDuringRegistrationEvent, ...autoGenerateEvents] - : autoGenerateEvents; - const eventIndex = allEventsToBeCreated.findIndex( + const eventIndex = enrollmentPayload.enrollments[0]?.events.findIndex( eventsToBeCreated => eventsToBeCreated.programStage === stageWithOpenAfterEnrollment?.id, ); return saveNewTrackedEntityInstanceWithEnrollment({ candidateForRegistration: { trackedEntities: [ - { - geometry: deriveGeometryFromFormValues(currentFormData), - enrollments: [ - { - geometry: standardGeoJson(geometry), - occurredAt: convertFn(occurredAt, dataElementTypes.DATE), - enrolledAt: convertFn(enrolledAt, dataElementTypes.DATE), - program: programId, - orgUnit: orgUnitId, - attributes: deriveAttributesFromFormValues(formServerValues), - status: 'ACTIVE', - events: allEventsToBeCreated, - }, - ], - orgUnit: orgUnitId, - trackedEntityType: trackedEntityType.id, - ...(trackedEntity && { trackedEntity }), - }, + enrollmentPayload, ], }, redirectTo, diff --git a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/deriveAutoGenerateEvents.js b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/deriveAutoGenerateEvents.js index a38c30e4e5..e36a6e10e6 100644 --- a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/deriveAutoGenerateEvents.js +++ b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/deriveAutoGenerateEvents.js @@ -24,7 +24,7 @@ export const deriveAutoGenerateEvents = ({ occurredAt: string, programId: string, orgUnitId: string, - firstStageMetadata: ProgramStage, + firstStageMetadata: ?ProgramStage, attributeCategoryOptions: { [categoryId: string]: string } | string, }) => { // in case we have a program that does not have an incident date (occurredAt), such as Malaria case diagnosis, diff --git a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/deriveFirstStageDuringRegistrationEvent.js b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/deriveFirstStageDuringRegistrationEvent.js index bf40f45135..2e4f952f92 100644 --- a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/deriveFirstStageDuringRegistrationEvent.js +++ b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/deriveFirstStageDuringRegistrationEvent.js @@ -16,7 +16,7 @@ export const deriveFirstStageDuringRegistrationEvent = ({ fieldsValue, attributeCategoryOptions, }: { - firstStageMetadata: ProgramStage, + firstStageMetadata: ?ProgramStage, programId: string, orgUnitId: string, currentEventValues?: { [id: string]: any }, diff --git a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/getStageWithOpenAfterEnrollment.js b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/getStageWithOpenAfterEnrollment.js index 26bd03daad..23d9d1a610 100644 --- a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/getStageWithOpenAfterEnrollment.js +++ b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/getStageWithOpenAfterEnrollment.js @@ -12,7 +12,7 @@ export const PAGES = { // when the event will not be created redirect to enrollmentEventNew export const getStageWithOpenAfterEnrollment = ( stages: Map, - firstStageMetadata: ProgramStage, + useFirstStageDuringRegistration: boolean, shouldRedirect: boolean, ) => { const stagesArray = [...stages.values()]; @@ -22,8 +22,8 @@ export const getStageWithOpenAfterEnrollment = ( if (shouldRedirect && firstStageWithOpenAfterEnrollment) { // event will be created during first stage registration if ( - firstStageMetadata && - firstStageMetadata.id === firstStageWithOpenAfterEnrollment.id + useFirstStageDuringRegistration + && stagesArray[0].id === firstStageWithOpenAfterEnrollment.id ) { return PAGES.enrollmentEventEdit; } diff --git a/src/core_modules/capture-core/components/Pages/NewRelationship/RegisterTei/DataEntry/Enrollment/DataEntryEnrollment.component.js b/src/core_modules/capture-core/components/Pages/NewRelationship/RegisterTei/DataEntry/Enrollment/DataEntryEnrollment.component.js index 0de7c46415..19d78a8c31 100644 --- a/src/core_modules/capture-core/components/Pages/NewRelationship/RegisterTei/DataEntry/Enrollment/DataEntryEnrollment.component.js +++ b/src/core_modules/capture-core/components/Pages/NewRelationship/RegisterTei/DataEntry/Enrollment/DataEntryEnrollment.component.js @@ -6,6 +6,7 @@ import { DATA_ENTRY_ID } from '../../registerTei.const'; import enrollmentClasses from './enrollment.module.css'; import { EnrollmentRegistrationEntry } from '../../../../../DataEntries'; import type { Props } from './dataEntryEnrollment.types'; +import { useLocationQuery } from '../../../../../../utils/routing'; const NewEnrollmentRelationshipPlain = ({ @@ -17,13 +18,15 @@ const NewEnrollmentRelationshipPlain = renderDuplicatesCardActions, ExistingUniqueValueDialogActions, }: Props) => { + const { orgUnitId, teiId } = useLocationQuery(); const fieldOptions = { theme, fieldLabelMediaBasedClass: enrollmentClasses.fieldLabelMediaBased }; - return ( i18n.t('Save new {{trackedEntityTypeName}} and link', { trackedEntityTypeName, diff --git a/src/core_modules/capture-core/components/Pages/NewRelationship/RegisterTei/DataEntry/TrackedEntityInstance/DataEntryTrackedEntityInstance.component.js b/src/core_modules/capture-core/components/Pages/NewRelationship/RegisterTei/DataEntry/TrackedEntityInstance/DataEntryTrackedEntityInstance.component.js index a7f1b1bea7..70f6bc76a2 100644 --- a/src/core_modules/capture-core/components/Pages/NewRelationship/RegisterTei/DataEntry/TrackedEntityInstance/DataEntryTrackedEntityInstance.component.js +++ b/src/core_modules/capture-core/components/Pages/NewRelationship/RegisterTei/DataEntry/TrackedEntityInstance/DataEntryTrackedEntityInstance.component.js @@ -6,38 +6,41 @@ import { DATA_ENTRY_ID } from '../../registerTei.const'; import teiClasses from './trackedEntityInstance.module.css'; import { TeiRegistrationEntry } from '../../../../../DataEntries'; import type { Props } from './dataEntryTrackedEntityInstance.types'; +import { useCurrentOrgUnitInfo } from '../../../../../../hooks/useCurrentOrgUnitInfo'; const RelationshipTrackedEntityInstancePlain = - ({ - theme, - onSave, - teiRegistrationMetadata = {}, - duplicatesReviewPageSize, - renderDuplicatesDialogActions, - renderDuplicatesCardActions, - ExistingUniqueValueDialogActions, - }: Props) => { - const fieldOptions = { theme, fieldLabelMediaBasedClass: teiClasses.fieldLabelMediaBased }; - const { trackedEntityType } = teiRegistrationMetadata || {}; - const trackedEntityTypeNameLC = trackedEntityType.name.toLocaleLowerCase(); + ({ + theme, + onSave, + teiRegistrationMetadata = {}, + duplicatesReviewPageSize, + renderDuplicatesDialogActions, + renderDuplicatesCardActions, + ExistingUniqueValueDialogActions, + }: Props) => { + const { id: orgUnitId } = useCurrentOrgUnitInfo(); + const fieldOptions = { theme, fieldLabelMediaBasedClass: teiClasses.fieldLabelMediaBased }; + const { trackedEntityType } = teiRegistrationMetadata || {}; + const trackedEntityTypeNameLC = trackedEntityType.name.toLocaleLowerCase(); - return ( - // $FlowFixMe - flow error will be resolved when rewriting relationship metadata fetching - - ); - }; + return ( + // $FlowFixMe - flow error will be resolved when rewriting relationship metadata fetching + + ); + }; export const RelationshipTrackedEntityInstance = withTheme()(RelationshipTrackedEntityInstancePlain); diff --git a/src/core_modules/capture-core/components/Pages/NewRelationship/RegisterTei/DataEntry/TrackedEntityInstance/dataEntryTrackedEntityInstance.types.js b/src/core_modules/capture-core/components/Pages/NewRelationship/RegisterTei/DataEntry/TrackedEntityInstance/dataEntryTrackedEntityInstance.types.js index a3ac0f0ae5..20f5463e75 100644 --- a/src/core_modules/capture-core/components/Pages/NewRelationship/RegisterTei/DataEntry/TrackedEntityInstance/dataEntryTrackedEntityInstance.types.js +++ b/src/core_modules/capture-core/components/Pages/NewRelationship/RegisterTei/DataEntry/TrackedEntityInstance/dataEntryTrackedEntityInstance.types.js @@ -3,16 +3,18 @@ import type { Node } from 'react'; import type { TeiRegistration } from '../../../../../../metaData'; import type { RenderCustomCardActions } from '../../../../../CardList'; import type { - SaveForEnrollmentAndTeiRegistration, ExistingUniqueValueDialogActionsComponent, } from '../../../../../DataEntries'; +import type { + TeiPayload, +} from '../../../../common/TEIRelationshipsWidget/RegisterTei/DataEntry/TrackedEntityInstance/dataEntryTrackedEntityInstance.types'; export type Props = {| theme: Theme, - onSave: SaveForEnrollmentAndTeiRegistration, + onSave: (TeiPayload) => void, teiRegistrationMetadata?: TeiRegistration, duplicatesReviewPageSize: number, renderDuplicatesCardActions?: RenderCustomCardActions, - renderDuplicatesDialogActions?: (onCancel: () => void, onSave: SaveForEnrollmentAndTeiRegistration) => Node, + renderDuplicatesDialogActions?: (onCancel: () => void, onSave: (TeiPayload) => void) => Node, ExistingUniqueValueDialogActions: ExistingUniqueValueDialogActionsComponent, |}; diff --git a/src/core_modules/capture-core/components/Pages/NewRelationship/RegisterTei/RegisterTei.container.js b/src/core_modules/capture-core/components/Pages/NewRelationship/RegisterTei/RegisterTei.container.js index 991425a334..cf9de6695b 100644 --- a/src/core_modules/capture-core/components/Pages/NewRelationship/RegisterTei/RegisterTei.container.js +++ b/src/core_modules/capture-core/components/Pages/NewRelationship/RegisterTei/RegisterTei.container.js @@ -34,6 +34,7 @@ export const RegisterTei = ({ onLink, onSave, onGetUnsavedAttributeValues }: Own trackedEntityName={trackedEntityName} newRelationshipProgramId={newRelationshipProgramId} error={error} - />); + /> + ); }; diff --git a/src/core_modules/capture-core/components/Pages/NewRelationship/TeiRelationship/SearchResults/TeiRelationshipSearchResults.component.js b/src/core_modules/capture-core/components/Pages/NewRelationship/TeiRelationship/SearchResults/TeiRelationshipSearchResults.component.js index b748347358..3cced06ccf 100644 --- a/src/core_modules/capture-core/components/Pages/NewRelationship/TeiRelationship/SearchResults/TeiRelationshipSearchResults.component.js +++ b/src/core_modules/capture-core/components/Pages/NewRelationship/TeiRelationship/SearchResults/TeiRelationshipSearchResults.component.js @@ -13,6 +13,7 @@ import { SearchResultsHeader } from '../../../../SearchResultsHeader'; import { type SearchGroup } from '../../../../../metaData'; import { ResultsPageSizeContext } from '../../../shared-contexts'; import type { ListItem } from '../../../../CardList/CardList.types'; +import { convertClientValuesToServer } from '../../../../../converters/helpers/clientToServer'; const SearchResultsPager = withNavigation()(Pagination); @@ -77,7 +78,8 @@ class TeiRelationshipSearchResultsPlain extends React.Component { } onAddRelationship = (item) => { - this.props.onAddRelationship(item.id, item.values); + const serverValues = convertClientValuesToServer(item.values, this.props.searchGroup.searchForm); + this.props.onAddRelationship(item.id, serverValues); } renderResults = () => { diff --git a/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/useCommonEnrollmentDomainData/useCommonEnrollmentDomainData.types.js b/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/useCommonEnrollmentDomainData/useCommonEnrollmentDomainData.types.js index fb48b2a555..6ee03b475f 100644 --- a/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/useCommonEnrollmentDomainData/useCommonEnrollmentDomainData.types.js +++ b/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/useCommonEnrollmentDomainData/useCommonEnrollmentDomainData.types.js @@ -1,5 +1,4 @@ // @flow - export type DataValue = { dataElement: string, value: string, @@ -49,6 +48,7 @@ export type AttributeValue = {| value: string, |}; + export type Output = {| error?: any, enrollment?: EnrollmentData, diff --git a/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/Enrollment/DataEntryEnrollment.component.js b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/Enrollment/DataEntryEnrollment.component.js new file mode 100644 index 0000000000..2dbf0c7a20 --- /dev/null +++ b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/Enrollment/DataEntryEnrollment.component.js @@ -0,0 +1,42 @@ +// @flow +import React from 'react'; +import i18n from '@dhis2/d2-i18n'; +import { withTheme } from '@material-ui/core/styles'; +import { DATA_ENTRY_ID } from '../../registerTei.const'; +import enrollmentClasses from './enrollment.module.css'; +import { EnrollmentRegistrationEntry } from '../../../../../../DataEntries'; +import type { Props } from './dataEntryEnrollment.types'; + +const NewEnrollmentRelationshipPlain = + ({ + theme, + onSave, + programId, + orgUnitId, + duplicatesReviewPageSize, + renderDuplicatesDialogActions, + renderDuplicatesCardActions, + ExistingUniqueValueDialogActions, + }: Props) => { + const fieldOptions = { theme, fieldLabelMediaBasedClass: enrollmentClasses.fieldLabelMediaBased }; + + return ( + i18n.t('Save new {{trackedEntityTypeName}} and link', { + trackedEntityTypeName, + interpolation: { escapeValue: false }, + })} + onSave={onSave} + duplicatesReviewPageSize={duplicatesReviewPageSize} + renderDuplicatesDialogActions={renderDuplicatesDialogActions} + renderDuplicatesCardActions={renderDuplicatesCardActions} + ExistingUniqueValueDialogActions={ExistingUniqueValueDialogActions} + /> + ); + }; + +export const NewEnrollmentRelationship = withTheme()(NewEnrollmentRelationshipPlain); diff --git a/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/Enrollment/DataEntryEnrollment.container.js b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/Enrollment/DataEntryEnrollment.container.js new file mode 100644 index 0000000000..507e09e61b --- /dev/null +++ b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/Enrollment/DataEntryEnrollment.container.js @@ -0,0 +1,23 @@ +// @flow +import { connect } from 'react-redux'; +import { makeEnrollmentMetadataSelector } from './enrollment.selectors'; +import { NewEnrollmentRelationship } from './DataEntryEnrollment.component'; + +const makeMapStateToProps = () => { + const enrollmentMetadataSelector = makeEnrollmentMetadataSelector(); + + const mapStateToProps = (state: ReduxState) => { + const enrollmentMetadata = enrollmentMetadataSelector(state); + + return { + enrollmentMetadata, + programId: state.newRelationshipRegisterTei.programId, + orgUnitId: state.newRelationshipRegisterTei.orgUnit.id, + }; + }; + // $FlowFixMe[not-an-object] automated comment + return mapStateToProps; +}; + +// $FlowFixMe +export const DataEntryEnrollment = connect(makeMapStateToProps, () => ({}))(NewEnrollmentRelationship); diff --git a/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/Enrollment/dataEntryEnrollment.types.js b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/Enrollment/dataEntryEnrollment.types.js new file mode 100644 index 0000000000..de3f6cee6f --- /dev/null +++ b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/Enrollment/dataEntryEnrollment.types.js @@ -0,0 +1,20 @@ +// @flow +import type { Node } from 'react'; +import type { Enrollment } from '../../../../../../../metaData'; +import type { RenderCustomCardActions } from '../../../../../../CardList'; +import type { + SaveForEnrollmentAndTeiRegistration, + ExistingUniqueValueDialogActionsComponent, +} from '../../../../../../DataEntries'; + +export type Props = {| + theme: Theme, + programId: string, + orgUnitId: string, + enrollmentMetadata?: Enrollment, + onSave: SaveForEnrollmentAndTeiRegistration, + duplicatesReviewPageSize: number, + renderDuplicatesCardActions?: RenderCustomCardActions, + renderDuplicatesDialogActions?: (onCancel: () => void, onSave: SaveForEnrollmentAndTeiRegistration) => Node, + ExistingUniqueValueDialogActions: ExistingUniqueValueDialogActionsComponent, +|}; diff --git a/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/Enrollment/enrollment.module.css b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/Enrollment/enrollment.module.css new file mode 100644 index 0000000000..953ddeae59 --- /dev/null +++ b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/Enrollment/enrollment.module.css @@ -0,0 +1,11 @@ +@media screen and (max-width: 811px) and (min-width: 564px) { + .fieldLabelMediaBased { + padding-top: 0px !important; + } +} + +@media screen and (max-width: 451px) { + .fieldLabelMediaBased { + padding-top: 0px !important; + } +} diff --git a/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/Enrollment/enrollment.selectors.js b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/Enrollment/enrollment.selectors.js new file mode 100644 index 0000000000..fd9331f6a6 --- /dev/null +++ b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/Enrollment/enrollment.selectors.js @@ -0,0 +1,23 @@ +// @flow +import { createSelector } from 'reselect'; +import type { TrackerProgram } from '../../../../../../../metaData'; +import { getProgramFromProgramIdThrowIfNotFound } from '../../../../../../../metaData'; + +const programIdSelector = state => state.newRelationshipRegisterTei.programId; + +// $FlowFixMe +export const makeEnrollmentMetadataSelector = () => createSelector( + programIdSelector, + (programId: string) => { + let program: TrackerProgram; + try { + // $FlowFixMe[incompatible-type] automated comment + program = getProgramFromProgramIdThrowIfNotFound(programId); + } catch (error) { + return null; + } + + // $FlowFixMe + return program.enrollment; + }, +); diff --git a/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/Enrollment/index.js b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/Enrollment/index.js new file mode 100644 index 0000000000..0ecadd4fab --- /dev/null +++ b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/Enrollment/index.js @@ -0,0 +1,2 @@ +// @flow +export { DataEntryEnrollment } from './DataEntryEnrollment.container'; diff --git a/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/RegisterTeiDataEntry.actions.js b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/RegisterTeiDataEntry.actions.js new file mode 100644 index 0000000000..8cb9a9b5fa --- /dev/null +++ b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/RegisterTeiDataEntry.actions.js @@ -0,0 +1,14 @@ +// @flow +import { actionCreator } from '../../../../../../actions/actions.utils'; + +export const actionTypes = { + DATA_ENTRY_OPEN: 'NewRelationshipRegisterTeiDataEntryOpen', + DATA_ENTRY_OPEN_CANCELLED: 'NewRelationshopRegisterTeiDataEntryOpenCancelled', + DATA_ENTRY_OPEN_FAILED: 'NewRelationshopRegisterTeiDataEntryOpenFailed', +}; + +export const openDataEntry = () => + actionCreator(actionTypes.DATA_ENTRY_OPEN)(); + +export const openDataEntryFailed = (errorMessage: string) => + actionCreator(actionTypes.DATA_ENTRY_OPEN_FAILED)({ errorMessage }); diff --git a/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/RegisterTeiDataEntry.component.js b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/RegisterTeiDataEntry.component.js new file mode 100644 index 0000000000..292a1d1530 --- /dev/null +++ b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/RegisterTeiDataEntry.component.js @@ -0,0 +1,37 @@ +// @flow +import * as React from 'react'; +import { DataEntryEnrollment } from './Enrollment'; +import { DataEntryTrackedEntityInstance } from './TrackedEntityInstance'; + +type Props = { + showDataEntry: boolean, + programId: string, + onSaveWithoutEnrollment: () => void, + onSaveWithEnrollment: () => void, +}; + +export class RegisterTeiDataEntryComponent extends React.Component { + render() { + const { showDataEntry, programId, onSaveWithoutEnrollment, onSaveWithEnrollment, ...passOnProps } = this.props; + + if (!showDataEntry) { + return null; + } + + if (programId) { + return ( + + ); + } + + return ( + + ); + } +} diff --git a/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/RegisterTeiDataEntry.container.js b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/RegisterTeiDataEntry.container.js new file mode 100644 index 0000000000..e5e7d50e76 --- /dev/null +++ b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/RegisterTeiDataEntry.container.js @@ -0,0 +1,20 @@ +// @flow +import { compose } from 'redux'; +import { connect } from 'react-redux'; +import { RegisterTeiDataEntryComponent } from './RegisterTeiDataEntry.component'; +import { withErrorMessageHandler } from '../../../../../../HOC/withErrorMessageHandler'; + +const mapStateToProps = (state: ReduxState) => ({ + showDataEntry: state.newRelationshipRegisterTei.orgUnit, + error: state.newRelationshipRegisterTei.dataEntryError, + programId: state.newRelationshipRegisterTei.programId, +}); + +const mapDispatchToProps = () => ({}); + +export const RegisterTeiDataEntry = + compose( + // $FlowFixMe[missing-annot] automated comment + connect(mapStateToProps, mapDispatchToProps), + withErrorMessageHandler(), + )(RegisterTeiDataEntryComponent); diff --git a/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/TrackedEntityInstance/DataEntryTrackedEntityInstance.js b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/TrackedEntityInstance/DataEntryTrackedEntityInstance.js new file mode 100644 index 0000000000..c455e3616d --- /dev/null +++ b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/TrackedEntityInstance/DataEntryTrackedEntityInstance.js @@ -0,0 +1,52 @@ +// @flow +import React from 'react'; +import i18n from '@dhis2/d2-i18n'; +import { withTheme } from '@material-ui/core'; +import { DATA_ENTRY_ID } from '../../registerTei.const'; +import teiClasses from './trackedEntityInstance.module.css'; +import { TeiRegistrationEntry } from '../../../../../../DataEntries'; +import type { Props } from './dataEntryTrackedEntityInstance.types'; +import { getTeiRegistrationMetadata } from './tei.selectors'; +import { useLocationQuery } from '../../../../../../../utils/routing'; + +const RelationshipTrackedEntityInstancePlain = + ({ + theme, + onSave, + trackedEntityTypeId, + duplicatesReviewPageSize, + renderDuplicatesDialogActions, + renderDuplicatesCardActions, + ExistingUniqueValueDialogActions, + }: Props) => { + const { orgUnitId } = useLocationQuery(); + const fieldOptions = { theme, fieldLabelMediaBasedClass: teiClasses.fieldLabelMediaBased }; + const teiRegistrationMetadata = getTeiRegistrationMetadata(trackedEntityTypeId); + const { trackedEntityType } = teiRegistrationMetadata || {}; + const trackedEntityTypeNameLC = trackedEntityType.name.toLocaleLowerCase(); + + if (!teiRegistrationMetadata && !teiRegistrationMetadata?.form) { + return null; + } + + return ( + // $FlowFixMe - flow error will be resolved when rewriting relationship metadata fetching + + ); + }; + +export const DataEntryTrackedEntityInstance = withTheme()(RelationshipTrackedEntityInstancePlain); diff --git a/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/TrackedEntityInstance/dataEntryTrackedEntityInstance.types.js b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/TrackedEntityInstance/dataEntryTrackedEntityInstance.types.js new file mode 100644 index 0000000000..b4f9617052 --- /dev/null +++ b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/TrackedEntityInstance/dataEntryTrackedEntityInstance.types.js @@ -0,0 +1,30 @@ +// @flow +import type { Node } from 'react'; +import type { TeiRegistration } from '../../../../../../../metaData'; +import type { RenderCustomCardActions } from '../../../../../../CardList'; +import type { + ExistingUniqueValueDialogActionsComponent, +} from '../../../../../../DataEntries'; + +export type TeiPayload = {| + trackedEntity: string, + trackedEntityType: string, + enrollments: [], + orgUnit: string, + geometry: ?{ coordinates: any, type: any }, + attributes: Array<{| + attribute: string, + value: any, + |}>, +|} + +export type Props = {| + theme: Theme, + trackedEntityTypeId: string, + onSave: TeiPayload => void, + teiRegistrationMetadata?: TeiRegistration, + duplicatesReviewPageSize: number, + renderDuplicatesCardActions?: RenderCustomCardActions, + renderDuplicatesDialogActions?: (onCancel: () => void, onSave: (TeiPayload) => void) => Node, + ExistingUniqueValueDialogActions: ExistingUniqueValueDialogActionsComponent, +|}; diff --git a/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/TrackedEntityInstance/index.js b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/TrackedEntityInstance/index.js new file mode 100644 index 0000000000..5bb8975389 --- /dev/null +++ b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/TrackedEntityInstance/index.js @@ -0,0 +1,2 @@ +// @flow +export { DataEntryTrackedEntityInstance } from './DataEntryTrackedEntityInstance'; diff --git a/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/TrackedEntityInstance/tei.selectors.js b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/TrackedEntityInstance/tei.selectors.js new file mode 100644 index 0000000000..2363e24584 --- /dev/null +++ b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/TrackedEntityInstance/tei.selectors.js @@ -0,0 +1,18 @@ +// @flow +import log from 'loglevel'; +import { errorCreator } from 'capture-core-utils'; +import type { TrackedEntityType } from '../../../../../../../metaData'; +import { getTrackedEntityTypeThrowIfNotFound } from '../../../../../../../metaData'; + +// $FlowFixMe +export const getTeiRegistrationMetadata = (TETypeId: string) => { + let TEType: TrackedEntityType; + try { + TEType = getTrackedEntityTypeThrowIfNotFound(TETypeId); + } catch (error) { + log.error(errorCreator('Could not get TrackedEntityType for id')({ TETypeId })); + return null; + } + + return TEType.teiRegistration; +}; diff --git a/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/TrackedEntityInstance/trackedEntityInstance.module.css b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/TrackedEntityInstance/trackedEntityInstance.module.css new file mode 100644 index 0000000000..8d899a1886 --- /dev/null +++ b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/DataEntry/TrackedEntityInstance/trackedEntityInstance.module.css @@ -0,0 +1,11 @@ +@media screen and (max-width: 811px) and (min-width: 564px) { + .fieldLabelMediaBased { + padding-top: 0px !important; + } +} + +@media screen and (max-width: 451px) { + .fieldLabelMediaBased { + padding-top: 0px !important; + } +} \ No newline at end of file diff --git a/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegisterTei.component.js b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegisterTei.component.js new file mode 100644 index 0000000000..9a9a7070af --- /dev/null +++ b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegisterTei.component.js @@ -0,0 +1,130 @@ +// @flow +import React, { type ComponentType, useContext, useCallback } from 'react'; +import { compose } from 'redux'; +import { withStyles } from '@material-ui/core/styles'; +import i18n from '@dhis2/d2-i18n'; +import { Button } from '@dhis2/ui'; +import { RegisterTeiDataEntry } from './DataEntry/RegisterTeiDataEntry.container'; +import { RegistrationSection } from './RegistrationSection'; +import { DataEntryWidgetOutput } from '../../../../DataEntryWidgetOutput/DataEntryWidgetOutput.container'; +import { ResultsPageSizeContext } from '../../../shared-contexts'; +import type { ComponentProps } from './RegisterTei.types'; +import { withErrorMessageHandler } from '../../../../../HOC'; + +const getStyles = () => ({ + container: { + display: 'flex', + flexWrap: 'wrap', + }, + leftContainer: { + flexGrow: 10, + flexBasis: 0, + margin: 8, + }, +}); + +const CardListButton = (({ teiId, values, handleOnClick }) => ( + +)); + +const DialogButtons = ({ onCancel, onSave, trackedEntityName }) => ( + <> + +
+ +
+ +); + +const RegisterTeiPlain = ({ + dataEntryId, + onLink, + onSaveWithoutEnrollment, + onSaveWithEnrollment, + onGetUnsavedAttributeValues, + trackedEntityName, + trackedEntityTypeId, + selectedScopeId, + classes, +}: ComponentProps) => { + const { resultsPageSize } = useContext(ResultsPageSizeContext); + + const renderDuplicatesCardActions = useCallback(({ item }) => ( + + ), [onLink]); + + const renderDuplicatesDialogActions = useCallback((onCancel, onSaveArgument) => ( + + ), [trackedEntityName]); + + const ExistingUniqueValueDialogActions = useCallback(({ teiId, attributeValues }) => ( + + ), [onLink]); + + return ( +
+
+ + +
+ + + } + /> +
+ ); +}; + +export const RegisterTeiComponent: ComponentType<$Diff> = + compose( + withErrorMessageHandler(), + withStyles(getStyles), + )(RegisterTeiPlain); diff --git a/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegisterTei.container.js b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegisterTei.container.js new file mode 100644 index 0000000000..773d0c2778 --- /dev/null +++ b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegisterTei.container.js @@ -0,0 +1,34 @@ +// @flow +import React from 'react'; +import { useSelector } from 'react-redux'; +import { RegisterTeiComponent } from './RegisterTei.component'; +import type { ContainerProps } from './RegisterTei.types'; +import { useScopeInfo } from '../../../../../hooks'; + +export const RegisterTei = ({ + onLink, + onSave, + onGetUnsavedAttributeValues, + trackedEntityTypeId, + suggestedProgramId, +}: ContainerProps) => { + const dataEntryId = 'relationship'; + const error = useSelector(({ newRelationshipRegisterTei }) => (newRelationshipRegisterTei.error)); + const selectedScopeId = suggestedProgramId || trackedEntityTypeId; + const { trackedEntityName } = useScopeInfo(selectedScopeId); + + return ( + + ); +}; + diff --git a/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegisterTei.types.js b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegisterTei.types.js new file mode 100644 index 0000000000..0de2b570ba --- /dev/null +++ b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegisterTei.types.js @@ -0,0 +1,23 @@ +// @flow +export type SharedProps = {| + onLink: (teiId: string, values: Object) => void, + onGetUnsavedAttributeValues?: ?Function, + trackedEntityTypeId: string, +|}; + +export type ContainerProps = {| + suggestedProgramId: string, + onSave: (teiPayload: Object) => void, + ...SharedProps, +|}; + +export type ComponentProps = {| + selectedScopeId: string, + error: string, + dataEntryId: string, + trackedEntityName: ?string, + onSaveWithEnrollment: () => void, + onSaveWithoutEnrollment: () => void, + ...SharedProps, + ...CssClasses, +|}; diff --git a/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegistrationSection/ProgramSelector/ComposedProgramSelector.component.js b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegistrationSection/ProgramSelector/ComposedProgramSelector.component.js new file mode 100644 index 0000000000..f815b36498 --- /dev/null +++ b/src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/RegisterTei/RegistrationSection/ProgramSelector/ComposedProgramSelector.component.js @@ -0,0 +1,157 @@ +// @flow +import * as React from 'react'; +import { withStyles } from '@material-ui/core/styles'; +import i18n from '@dhis2/d2-i18n'; +import { LinkButton } from '../../../../../../Buttons/LinkButton.component'; +import { ProgramFilterer } from '../../../../../../ProgramFilterer'; +import type { Program } from '../../../../../../../metaData'; +import { TrackerProgram } from '../../../../../../../metaData'; +import { + VirtualizedSelectField, + withSelectTranslations, + withFocusSaver, + withDefaultFieldContainer, + withLabel, + withFilterProps, +} from '../../../../../../FormFields/New'; +import { NonBundledDhis2Icon } from '../../../../../../NonBundledDhis2Icon'; + +const getStyles = (theme: Theme) => ({ + iconContainer: { + display: 'flex', + alignItems: 'center', + paddingRight: 5, + }, + icon: { + width: 22, + height: 22, + borderRadius: 2, + }, + isFilteredContainer: { + fontSize: 12, + color: theme.palette.grey.dark, + paddingTop: 5, + }, + isFilteredLink: { + paddingLeft: 2, + backgroundColor: 'inherit', + }, +}); + +type Option = { + label: string, + value: string, + iconLeft?: ?React.Node, +}; + +type Props = { + orgUnitIds: ?Array, + value: string, + trackedEntityTypeId: string, + classes: Object, + onUpdateSelectedProgram: (programId: string) => void, + onClearFilter: () => void, +}; + +class ProgramSelector extends React.Component { + baseLineFilter = (program: Program) => { + const { trackedEntityTypeId } = this.props; + + const isValid = program instanceof TrackerProgram && + program.trackedEntityType.id === trackedEntityTypeId && + program.access.data.write; + + return isValid; + } + + getOptionsFromPrograms = (programs: Array): Array
{i18n.t('organisation unit could not be retrieved. Please try again later.')} @@ -26,9 +19,7 @@ export const OrgUnitFetcher = ({ ); } - if (orgUnit && orgUnitGroups) { - orgUnit.groups = orgUnitGroups; - + if (orgUnit) { return ( { const dispatch = useDispatch(); const { currentPageMode } = useEnrollmentEditEventPageMode(eventStatus); - const { orgUnit, error } = useRulesEngineOrgUnit(orgUnitId); + const { orgUnit, error } = useCoreOrgUnit(orgUnitId); + // "Edit event"-button depends on loadedValues. Delay rendering component until loadedValues has been initialized. + const loadedValues = useSelector(({ viewEventPage }) => viewEventPage.loadedValues); const eventAccess = getProgramEventAccess(programId, programStage.id); const availableProgramStages = useAvailableProgramStages(programStage, teiId, enrollmentId, programId); @@ -68,7 +72,7 @@ export const WidgetEventEditPlain = ({ return error.errorComponent; } - return orgUnit ? ( + return orgUnit && loadedValues ? (
- ) : null; + ) : ; }; export const WidgetEventEdit: ComponentType<$Diff> = withStyles(styles)(WidgetEventEditPlain); diff --git a/src/core_modules/capture-core/dataQueries/useOrganisationUnit.js b/src/core_modules/capture-core/dataQueries/useOrganisationUnit.js index 2760a59fd1..5472a1ccfa 100644 --- a/src/core_modules/capture-core/dataQueries/useOrganisationUnit.js +++ b/src/core_modules/capture-core/dataQueries/useOrganisationUnit.js @@ -4,6 +4,7 @@ import { useDataQuery } from '@dhis2/app-runtime'; import log from 'loglevel'; import { errorCreator } from '../../capture-core-utils'; +// Skips fetching if orgUnitId is falsy export const useOrganisationUnit = (orgUnitId: string, fields?: string) => { const [orgUnit, setOrgUnit] = useState(); const { error, loading, data, refetch, called } = useDataQuery( @@ -24,7 +25,7 @@ export const useOrganisationUnit = (orgUnitId: string, fields?: string) => { ); useEffect(() => { - refetch({ variables: { orgUnitId } }); + orgUnitId && refetch({ variables: { orgUnitId } }); }, [refetch, orgUnitId]); useEffect(() => { @@ -35,7 +36,7 @@ export const useOrganisationUnit = (orgUnitId: string, fields?: string) => { useEffect(() => { const organisationUnit = data?.organisationUnits; - setOrgUnit( + orgUnitId && setOrgUnit( (loading || !called || error) ? undefined : { id: orgUnitId, diff --git a/src/core_modules/capture-core/hooks/index.js b/src/core_modules/capture-core/hooks/index.js index 1330576491..bc172ac729 100644 --- a/src/core_modules/capture-core/hooks/index.js +++ b/src/core_modules/capture-core/hooks/index.js @@ -3,7 +3,6 @@ export { useSearchOptions } from './useSearchOptions'; export { useTrackedEntityTypesWithCorrelatedPrograms } from './useTrackedEntityTypesWithCorrelatedPrograms'; export { useCurrentTrackedEntityTypeId } from './useCurrentTrackedEntityTypeId'; export { useEnrollmentEditEventPageMode } from './useEnrollmentEditEventPageMode'; -export { useRulesEngineOrgUnit } from './useRulesEngineOrgUnit'; export { useAvailableProgramStages } from './useAvailableProgramStages'; export { useScopeInfo } from './useScopeInfo'; export { useScopeTitleText } from './useScopeTitleText'; diff --git a/src/core_modules/capture-core/hooks/useCurrentOrgUnitId.js b/src/core_modules/capture-core/hooks/useCurrentOrgUnitId.js new file mode 100644 index 0000000000..ada2e99463 --- /dev/null +++ b/src/core_modules/capture-core/hooks/useCurrentOrgUnitId.js @@ -0,0 +1,5 @@ +// @flow +import { useSelector } from 'react-redux'; + +export const useCurrentOrgUnitId = () => + useSelector(({ currentSelections: { orgUnitId } }) => orgUnitId); diff --git a/src/core_modules/capture-core/hooks/useCurrentOrgUnitInfo.js b/src/core_modules/capture-core/hooks/useCurrentOrgUnitInfo.js deleted file mode 100644 index 35eff69d72..0000000000 --- a/src/core_modules/capture-core/hooks/useCurrentOrgUnitInfo.js +++ /dev/null @@ -1,19 +0,0 @@ -// @flow -import { useSelector } from 'react-redux'; - -export const useCurrentOrgUnitInfo = (): {| id: string, name: string, code: string |} => - ({ - id: useSelector(({ currentSelections: { orgUnitId } }) => orgUnitId), - name: useSelector(( - { - organisationUnits, - currentSelections: { orgUnitId }, - }) => - organisationUnits[orgUnitId] && organisationUnits[orgUnitId].name), - code: useSelector(( - { - organisationUnits, - currentSelections: { orgUnitId }, - }) => - organisationUnits[orgUnitId] && organisationUnits[orgUnitId].code), - }); diff --git a/src/core_modules/capture-core/hooks/useRulesEngineOrgUnit.js b/src/core_modules/capture-core/hooks/useRulesEngineOrgUnit.js deleted file mode 100644 index 94f9fece17..0000000000 --- a/src/core_modules/capture-core/hooks/useRulesEngineOrgUnit.js +++ /dev/null @@ -1,33 +0,0 @@ -// @flow -import React from 'react'; -import i18n from '@dhis2/d2-i18n'; -import type { OrgUnit } from '@dhis2/rules-engine-javascript'; -import { useOrgUnitGroups } from 'capture-core/hooks/useOrgUnitGroups'; -import { useOrganisationUnit } from '../dataQueries'; - -export function useRulesEngineOrgUnit(orgUnitId: string): { - orgUnit?: OrgUnit, - error?: any, -} { - const { orgUnit, error } = useOrganisationUnit(orgUnitId, 'displayName,code'); - const { orgUnitGroups, error: groupError } = useOrgUnitGroups(orgUnitId); - - if (error) { - return { error: { error, errorComponent } }; - } else if (groupError) { - return { error: { groupError, errorComponent } }; - } - - if (orgUnit && orgUnitGroups) { - orgUnit.groups = orgUnitGroups; - return { orgUnit }; - } - - return {}; -} - -const errorComponent = ( -
- {i18n.t('organisation unit could not be retrieved. Please try again later.')} -
-); diff --git a/src/core_modules/capture-core/metadataRetrieval/coreOrgUnit/coreOrgUnit.actions.js b/src/core_modules/capture-core/metadataRetrieval/coreOrgUnit/coreOrgUnit.actions.js new file mode 100644 index 0000000000..b8c9b760d2 --- /dev/null +++ b/src/core_modules/capture-core/metadataRetrieval/coreOrgUnit/coreOrgUnit.actions.js @@ -0,0 +1,14 @@ +// @flow +import { actionCreator } from '../../actions/actions.utils'; +import type { CoreOrgUnit, FetchOrgUnitPayload } from './coreOrgUnit.types'; + +export const actionTypes = { + GET_ORGUNIT: 'organisationUnits.GetOrgUnit', + ORG_UNIT_FETCHED: 'organisationUnits.OrgUnitFetched', +}; + +// Public +export const getCoreOrgUnit = (payload: FetchOrgUnitPayload) => actionCreator(actionTypes.GET_ORGUNIT)(payload); + +// Private +export const orgUnitFetched = (orgUnit: CoreOrgUnit) => actionCreator(actionTypes.ORG_UNIT_FETCHED)(orgUnit); diff --git a/src/core_modules/capture-core/metadataRetrieval/coreOrgUnit/coreOrgUnit.types.js b/src/core_modules/capture-core/metadataRetrieval/coreOrgUnit/coreOrgUnit.types.js new file mode 100644 index 0000000000..49b9e4f57f --- /dev/null +++ b/src/core_modules/capture-core/metadataRetrieval/coreOrgUnit/coreOrgUnit.types.js @@ -0,0 +1,20 @@ +// @flow +import type { OrgUnitGroup } from '@dhis2/rules-engine-javascript'; + +// Make sure rules engine OrgUnit is a subset of this! +export type CoreOrgUnit = {| + id: string, + name: string, // this is the translated name (displayName) + code: string, + path: string, + groups: Array, +|}; + + +type ActionCreator = (payload: T) => ReduxAction; + +export type FetchOrgUnitPayload = { + orgUnitId: string, + onSuccess: ActionCreator, + onError?: ActionCreator, +}; diff --git a/src/core_modules/capture-core/rules/getRulesEngineOrgUnit.js b/src/core_modules/capture-core/metadataRetrieval/coreOrgUnit/fetchCoreOrgUnit.js similarity index 53% rename from src/core_modules/capture-core/rules/getRulesEngineOrgUnit.js rename to src/core_modules/capture-core/metadataRetrieval/coreOrgUnit/fetchCoreOrgUnit.js index d195283079..580855fee8 100644 --- a/src/core_modules/capture-core/rules/getRulesEngineOrgUnit.js +++ b/src/core_modules/capture-core/metadataRetrieval/coreOrgUnit/fetchCoreOrgUnit.js @@ -1,13 +1,18 @@ // @flow import { getAssociatedOrgUnitGroups } from 'capture-core/MetaDataStoreUtils/getAssociatedOrgUnitGroups'; -import type { QuerySingleResource } from '../utils/api/api.types'; +import type { CoreOrgUnit } from './coreOrgUnit.types'; +import type { QuerySingleResource } from '../../utils/api/api.types'; -export async function getRulesEngineOrgUnit(orgUnitId: string, querySingleResource: QuerySingleResource) { +// Builds new CoreOrgUnit by fetching data from the api and index db +export async function fetchCoreOrgUnit( + orgUnitId: string, + querySingleResource: QuerySingleResource, +): Promise { return Promise.all([ querySingleResource({ resource: `organisationUnits/${orgUnitId}`, params: { - fields: 'displayName,code', + fields: 'displayName,code,path', }, }), getAssociatedOrgUnitGroups(orgUnitId), @@ -15,6 +20,7 @@ export async function getRulesEngineOrgUnit(orgUnitId: string, querySingleResour id: orgUnitId, name: orgUnit.displayName, code: orgUnit.code, + path: orgUnit.path, groups, })); } diff --git a/src/core_modules/capture-core/metadataRetrieval/coreOrgUnit/getCoreOrgUnit.epics.js b/src/core_modules/capture-core/metadataRetrieval/coreOrgUnit/getCoreOrgUnit.epics.js new file mode 100644 index 0000000000..0eee20e5e3 --- /dev/null +++ b/src/core_modules/capture-core/metadataRetrieval/coreOrgUnit/getCoreOrgUnit.epics.js @@ -0,0 +1,29 @@ +// @flow +import { ofType } from 'redux-observable'; +import { catchError, mergeMap, concatMap } from 'rxjs/operators'; +import { from, of } from 'rxjs'; +import { actionTypes, orgUnitFetched } from './coreOrgUnit.actions'; +import { fetchCoreOrgUnit } from './fetchCoreOrgUnit'; +import type { FetchOrgUnitPayload } from './coreOrgUnit.types'; + +export const getCoreOrgUnitEpic = ( + action$: InputObservable, + store: ReduxStore, + { querySingleResource }: ApiUtils, +) => action$.pipe( + ofType(actionTypes.GET_ORGUNIT), + concatMap((action: ReduxAction) => { + const { organisationUnits } = store.value; + const payload = action.payload; + if (organisationUnits[payload.orgUnitId]) { + return of(payload.onSuccess(organisationUnits[payload.orgUnitId])); + } + return from(fetchCoreOrgUnit(payload.orgUnitId, querySingleResource)) + .pipe( + mergeMap(orgUnit => + of(orgUnitFetched(orgUnit), payload.onSuccess(orgUnit))), + catchError(error => + (payload.onError ? of(payload.onError(error)) : of({}))), + ); + }), +); diff --git a/src/core_modules/capture-core/metadataRetrieval/coreOrgUnit/index.js b/src/core_modules/capture-core/metadataRetrieval/coreOrgUnit/index.js new file mode 100644 index 0000000000..ee09984e67 --- /dev/null +++ b/src/core_modules/capture-core/metadataRetrieval/coreOrgUnit/index.js @@ -0,0 +1,5 @@ +// @flow +export { useCoreOrgUnit } from './useCoreOrgUnit'; +export { getCoreOrgUnit } from './coreOrgUnit.actions'; +export { getCoreOrgUnitEpic } from './getCoreOrgUnit.epics'; +export type { CoreOrgUnit } from './coreOrgUnit.types'; diff --git a/src/core_modules/capture-core/metadataRetrieval/coreOrgUnit/useCoreOrgUnit.js b/src/core_modules/capture-core/metadataRetrieval/coreOrgUnit/useCoreOrgUnit.js new file mode 100644 index 0000000000..ef63a442b2 --- /dev/null +++ b/src/core_modules/capture-core/metadataRetrieval/coreOrgUnit/useCoreOrgUnit.js @@ -0,0 +1,49 @@ +// @flow +import React from 'react'; +import i18n from '@dhis2/d2-i18n'; +import { useSelector, useDispatch } from 'react-redux'; +import { useOrgUnitGroups } from 'capture-core/hooks/useOrgUnitGroups'; +import { useOrganisationUnit } from '../../dataQueries'; +import { orgUnitFetched } from './coreOrgUnit.actions'; +import { type CoreOrgUnit } from './coreOrgUnit.types'; + +export function useCoreOrgUnit(orgUnitId: string): { + orgUnit?: CoreOrgUnit, + error?: any, +} { + const dispatch = useDispatch(); + const reduxOrgUnit = useSelector(({ organisationUnits }) => organisationUnits && organisationUnits[orgUnitId]); + const fetchId = reduxOrgUnit ? undefined : orgUnitId; + // These hooks do no work when id is undefined + const { orgUnit, error } = useOrganisationUnit(fetchId, 'displayName,code,path'); + const { orgUnitGroups, error: groupError } = useOrgUnitGroups(fetchId); + + if (reduxOrgUnit) { + return { orgUnit: reduxOrgUnit }; + } + + if (error) { + return { error: { error, errorComponent } }; + } else if (groupError) { + return { error: { groupError, errorComponent } }; + } + + if (orgUnitId && orgUnit && orgUnitGroups) { + const { displayName, ...restOrgUnit } = orgUnit; + const coreOrgUnit = { + ...restOrgUnit, + name: displayName, + groups: orgUnitGroups, + }; + dispatch(orgUnitFetched(coreOrgUnit)); + return { orgUnit: coreOrgUnit }; + } + + return {}; +} + +const errorComponent = ( +
+ {i18n.t('organisation unit could not be retrieved. Please try again later.')} +
+); diff --git a/src/core_modules/capture-core/reducers/descriptions/organisationUnits.reducerDescription.js b/src/core_modules/capture-core/reducers/descriptions/organisationUnits.reducerDescription.js index e39feb2874..c17a229240 100644 --- a/src/core_modules/capture-core/reducers/descriptions/organisationUnits.reducerDescription.js +++ b/src/core_modules/capture-core/reducers/descriptions/organisationUnits.reducerDescription.js @@ -1,32 +1,14 @@ // @flow import { createReducerDescription } from '../../trackerRedux/trackerReducer'; -import { actionTypes as viewEventActionTypes } from '../../components/Pages/ViewEvent/ViewEventComponent/viewEvent.actions'; -import { actionTypes as setOrgUnitActionTypes } from '../../components/ScopeSelector/QuickSelector/actions/QuickSelector.actions'; -import { lockedSelectorActionTypes } from '../../components/LockedSelector/LockedSelector.actions'; import { actionTypes as initActionTypes } from '../../init/init.actions'; -import { actionTypes as orgUnitFetcherActionTypes } from '../../components/OrgUnitFetcher/OrgUnitFetcher.actions'; +import { actionTypes as coreOrgunitActionTypes } from '../../metadataRetrieval/coreOrgUnit/coreOrgUnit.actions'; +import type { CoreOrgUnit } from '../../metadataRetrieval/coreOrgUnit'; export const organisationUnitDesc = createReducerDescription({ - [viewEventActionTypes.ORG_UNIT_RETRIEVED_ON_URL_UPDATE]: (state, action) => { - const newState = { ...state }; - const orgUnit = action.payload.orgUnit; - newState[orgUnit.id] = orgUnit; - return newState; - }, - [setOrgUnitActionTypes.STORE_ORG_UNIT_OBJECT]: (state, action) => { - const newState = { ...state }; - const orgUnit = action.payload; - newState[orgUnit.id] = orgUnit; - return newState; - }, - - [lockedSelectorActionTypes.FETCH_ORG_UNIT_SUCCESS]: (state, action) => ({ + [coreOrgunitActionTypes.ORG_UNIT_FETCHED]: (state: ReduxState, action: { payload: CoreOrgUnit }) => ({ ...state, [action.payload.id]: action.payload, }), - [orgUnitFetcherActionTypes.FETCH_ORG_UNIT_SUCCESS]: (state, action) => ({ - ...state, [action.payload.id]: action.payload, - }), }, 'organisationUnits'); export const organisationUnitRootsDesc = createReducerDescription({ diff --git a/src/epics/trackerCapture.epics.js b/src/epics/trackerCapture.epics.js index a8969c616e..bcb9aea9b3 100644 --- a/src/epics/trackerCapture.epics.js +++ b/src/epics/trackerCapture.epics.js @@ -214,6 +214,9 @@ import { import { orgUnitFetcherEpic, } from '../core_modules/capture-core/components/OrgUnitFetcher'; +import { + getCoreOrgUnitEpic, +} from '../core_modules/capture-core/metadataRetrieval/coreOrgUnit'; import { openRelationshipTeiSearchWidgetEpic, openRelationshipTeiRegisterWidgetEpic, @@ -345,6 +348,7 @@ export const epics = combineEpics( navigateToEnrollmentOverviewEpic, scheduleEnrollmentEventEpic, orgUnitFetcherEpic, + getCoreOrgUnitEpic, updateTeiEpic, updateTeiSucceededEpic, updateTeiFailedEpic, From e293ecdefff0b37ed60f1f920a44721ceede1156 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 08:22:56 +0100 Subject: [PATCH 46/49] chore(deps): bump word-wrap from 1.2.3 to 1.2.5 (#3443) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/yarn.lock b/yarn.lock index 525147471f..bfda6921b7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17153,14 +17153,7 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - -semver@^7.5.3: +semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.5.3: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -19538,9 +19531,9 @@ widest-line@^2.0.0: string-width "^2.1.1" word-wrap@^1.2.3, word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== wordwrap@^1.0.0: version "1.0.0" From e017ac8e3df69c4803d2e6f73aa9a585984a008f Mon Sep 17 00:00:00 2001 From: eirikhaugstulen Date: Fri, 27 Oct 2023 11:57:04 +0200 Subject: [PATCH 47/49] fix: [DHIS2-15879] Unable to schedule event with note (#3421) --- .../EnrollmentAddEventPageForm.feature | 8 +++++- .../EnrollmentAddEventPageForm/index.js | 28 ++++++++++++++++++- .../hooks/useCommentDetails.js | 4 +-- 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/cypress/e2e/EnrollmentAddEventPage/EnrollmentAddEventPageForm.feature b/cypress/e2e/EnrollmentAddEventPage/EnrollmentAddEventPageForm.feature index f1c0da9caf..966cd9083f 100644 --- a/cypress/e2e/EnrollmentAddEventPage/EnrollmentAddEventPageForm.feature +++ b/cypress/e2e/EnrollmentAddEventPage/EnrollmentAddEventPageForm.feature @@ -48,7 +48,7 @@ Feature: User interacts with the Enrollment New Event Workspace Scenario: User should be asked to create new event after completing a stage and choose to cancel Given you open the main page with Ngelehun and Malaria focus investigation context - And you opt in to use the new enrollment Dashboard for Malaria focus investigation + And you opt in to use the new enrollment Dashboard for Malaria focus investigation Then you land on the enrollment new event page by having typed #/enrollmentEventNew?enrollmentId=zRfAPUpjoG3&orgUnitId=DiszpKrYNg8&programId=M3xtLkYBlKI&stageId=CWaAcQYKVpq&teiId=S3JjTA4QMNe Then you see the following Enrollment: New Event And you see the widget header Foci investigation & classification @@ -72,3 +72,9 @@ Feature: User interacts with the Enrollment New Event Workspace When you choose option Yes, create new event in the modal Then you will be navigate to page #/enrollmentEventNew?enrollmentId=zRfAPUpjoG3&orgUnitId=DiszpKrYNg8&programId=M3xtLkYBlKI&teiId=S3JjTA4QMNe + Scenario: User is able to schedule an event with a note + Given you land on the enrollment new event page by having typed /#/enrollmentEventNew?enrollmentId=qcFFRp7DpcX&orgUnitId=DiszpKrYNg8&programId=WSGAb5XwJ3Y&stageId=edqlbukwRfQ&teiId=erqa3phUfpI + And you see the following Enrollment: New Event + And you select the schedule tab + When you add a comment to the event + And the events saves successfully diff --git a/cypress/e2e/EnrollmentAddEventPage/EnrollmentAddEventPageForm/index.js b/cypress/e2e/EnrollmentAddEventPage/EnrollmentAddEventPageForm/index.js index 9791f3f190..d4b2f403a9 100644 --- a/cypress/e2e/EnrollmentAddEventPage/EnrollmentAddEventPageForm/index.js +++ b/cypress/e2e/EnrollmentAddEventPage/EnrollmentAddEventPageForm/index.js @@ -1,4 +1,4 @@ -import { Given, When, Then } from '@badeball/cypress-cucumber-preprocessor'; +import { Given, When, Then, defineStep as And } from '@badeball/cypress-cucumber-preprocessor'; import '../sharedSteps'; const showAllEventsInProgramStage = () => { @@ -30,6 +30,32 @@ Given(/^you land on the enrollment new event page by having typed (.*)$/, (url) cy.visit(url); }); +Given('you select the schedule tab', () => { + cy.get('[data-test="new-event-schedule-tab"]') + .click(); +}); + +When('you add a comment to the event', () => { + cy.get('[data-test="comment-textfield"]') + .type('This is a comment') + .blur(); + + cy.get('[data-test="add-comment-btn"]') + .click(); +}); + +And('the events saves successfully', () => { + cy.intercept('POST', '**/tracker?async=false').as('postEvent'); + + cy.get('[data-test="dhis2-uicore-button"]') + .contains('Schedule') + .click(); + + cy.wait('@postEvent') + .its('response.statusCode') + .should('eq', 200); +}); + When(/^you click the create new button number (.*)$/, (eq) => { cy.get('[data-test="create-new-button"]') .eq(eq) diff --git a/src/core_modules/capture-core/components/WidgetEventSchedule/hooks/useCommentDetails.js b/src/core_modules/capture-core/components/WidgetEventSchedule/hooks/useCommentDetails.js index 21394c5a8d..4544faf9af 100644 --- a/src/core_modules/capture-core/components/WidgetEventSchedule/hooks/useCommentDetails.js +++ b/src/core_modules/capture-core/components/WidgetEventSchedule/hooks/useCommentDetails.js @@ -1,7 +1,7 @@ // @flow import { useMemo } from 'react'; import { useDataQuery } from '@dhis2/app-runtime'; -import uuid from 'd2-utilizr/lib/uuid'; +import { generateUID } from '../../../utils/uid/generateUID'; export const useCommentDetails = () => { const { data, error, loading } = useDataQuery(useMemo(() => ({ @@ -18,6 +18,6 @@ export const useCommentDetails = () => { return { error, currentUser: !loading && data.currentUser, - noteId: uuid(), + noteId: generateUID(), }; }; From 7b0e3871c76478aabfd6696a8e7ac27339254299 Mon Sep 17 00:00:00 2001 From: henrikmv <110386561+henrikmv@users.noreply.github.com> Date: Fri, 27 Oct 2023 12:02:43 +0200 Subject: [PATCH 48/49] feat: [DHIS-14012] removed download as XML button (#3434) --- i18n/en.pot | 3 --- .../DownloadDialog/DownloadDialog.component.js | 14 -------------- 2 files changed, 17 deletions(-) diff --git a/i18n/en.pot b/i18n/en.pot index 2396905e88..3597cba560 100644 --- a/i18n/en.pot +++ b/i18n/en.pot @@ -1404,9 +1404,6 @@ msgstr "Working list could not be loaded" msgid "Download as JSON" msgstr "Download as JSON" -msgid "Download as XML" -msgstr "Download as XML" - msgid "Download as CSV" msgstr "Download as CSV" diff --git a/src/core_modules/capture-core/components/WorkingLists/EventWorkingLists/ViewMenuSetup/DownloadDialog/DownloadDialog.component.js b/src/core_modules/capture-core/components/WorkingLists/EventWorkingLists/ViewMenuSetup/DownloadDialog/DownloadDialog.component.js index 4bd6010bcd..fc79445ce2 100644 --- a/src/core_modules/capture-core/components/WorkingLists/EventWorkingLists/ViewMenuSetup/DownloadDialog/DownloadDialog.component.js +++ b/src/core_modules/capture-core/components/WorkingLists/EventWorkingLists/ViewMenuSetup/DownloadDialog/DownloadDialog.component.js @@ -40,7 +40,6 @@ class DownloadDialogPlain extends PureComponent { renderButtons() { const { request = {}, absoluteApiPath, classes } = this.props; const url = `${absoluteApiPath}/${request.url}`; - const deprecatedUrl = `${absoluteApiPath}/events/query`; const { pageSize, page, ...paramsFromRequest } = request.queryParams || {}; const paramsObject = { ...paramsFromRequest, @@ -65,19 +64,6 @@ class DownloadDialogPlain extends PureComponent {
-
Date: Fri, 27 Oct 2023 13:28:06 +0200 Subject: [PATCH 49/49] chore: [TECH-1539] Use Capture-UI IconButton (#3415) --- .../FeedbackBar/FeedbackBar.component.js | 13 ++- .../ColumnSelector.component.js | 2 +- .../ListView/Main/ListViewMain.component.js | 1 + .../ListView/Menu/ListViewMenu.component.js | 5 +- .../Pagination/withDefaultNavigation.js | 10 +-- .../Section/SectionHeaderSimple.component.js | 17 ++-- .../capture-ui/AgeField/AgeField.component.js | 4 +- .../capture-ui/AgeField/ageField.module.css | 1 + .../CoordinateField.component.js | 10 +-- .../coordinateField.module.css | 5 +- .../IconButton/IconButton.component.js | 70 +++++++++------ .../IconButton/iconButton.module.css | 1 + .../capture-ui/IconButton/iconButton.types.js | 4 +- .../capture-ui/Icons/ChevronIcon.component.js | 88 +++++++++++++++++++ src/core_modules/capture-ui/Icons/index.js | 1 + src/core_modules/capture-ui/index.js | 1 + 16 files changed, 170 insertions(+), 63 deletions(-) create mode 100644 src/core_modules/capture-ui/Icons/ChevronIcon.component.js diff --git a/src/core_modules/capture-core/components/FeedbackBar/FeedbackBar.component.js b/src/core_modules/capture-core/components/FeedbackBar/FeedbackBar.component.js index 2f8f50b16a..c6b1fe0a49 100644 --- a/src/core_modules/capture-core/components/FeedbackBar/FeedbackBar.component.js +++ b/src/core_modules/capture-core/components/FeedbackBar/FeedbackBar.component.js @@ -6,14 +6,14 @@ import DialogActions from '@material-ui/core/DialogActions'; import DialogContent from '@material-ui/core/DialogContent'; import DialogTitle from '@material-ui/core/DialogTitle'; import { withStyles } from '@material-ui/core/styles'; -import IconButton from '@material-ui/core/IconButton'; +import { IconButton } from 'capture-ui'; import { IconCross24, Button } from '@dhis2/ui'; import i18n from '@dhis2/d2-i18n'; import isDefined from 'd2-utilizr/lib/isDefined'; -const styles = theme => ({ +const styles = () => ({ closeButton: { - height: theme.spacing.unit * 4, + marginTop: '5px', }, actionContainer: { paddingRight: 2, @@ -58,7 +58,7 @@ class Index extends React.Component { const { feedback, classes } = this.props; return ( - + <> { (() => { if (!feedback.action) { @@ -75,15 +75,12 @@ class Index extends React.Component { })() } - + ); } diff --git a/src/core_modules/capture-core/components/ListView/ColumnSelector/ColumnSelector.component.js b/src/core_modules/capture-core/components/ListView/ColumnSelector/ColumnSelector.component.js index 44ae08d186..6974ef1048 100644 --- a/src/core_modules/capture-core/components/ListView/ColumnSelector/ColumnSelector.component.js +++ b/src/core_modules/capture-core/components/ListView/ColumnSelector/ColumnSelector.component.js @@ -1,6 +1,6 @@ // @flow import * as React from 'react'; -import { IconButton } from '@material-ui/core'; +import { IconButton } from 'capture-ui'; import { IconSettings24, Tooltip } from '@dhis2/ui'; import i18n from '@dhis2/d2-i18n'; import { ColumnSelectorDialog } from './ColumnSelectorDialog.component'; diff --git a/src/core_modules/capture-core/components/ListView/Main/ListViewMain.component.js b/src/core_modules/capture-core/components/ListView/Main/ListViewMain.component.js index 313059ade4..87c71afbee 100644 --- a/src/core_modules/capture-core/components/ListView/Main/ListViewMain.component.js +++ b/src/core_modules/capture-core/components/ListView/Main/ListViewMain.component.js @@ -25,6 +25,7 @@ const getStyles = (theme: Theme) => ({ }, topBarButtonContainer: { display: 'flex', + gap: '6px', alignItems: 'center', }, paginationContainer: { diff --git a/src/core_modules/capture-core/components/ListView/Menu/ListViewMenu.component.js b/src/core_modules/capture-core/components/ListView/Menu/ListViewMenu.component.js index 78a455f997..dd8d628a4d 100644 --- a/src/core_modules/capture-core/components/ListView/Menu/ListViewMenu.component.js +++ b/src/core_modules/capture-core/components/ListView/Menu/ListViewMenu.component.js @@ -1,8 +1,9 @@ // @flow import React, { useCallback, memo, type ComponentType } from 'react'; +import { IconButton } from 'capture-ui'; import { withStyles } from '@material-ui/core/styles'; import { Divider, IconMore24 } from '@dhis2/ui'; -import { IconButton, Paper, MenuList, MenuItem } from '@material-ui/core'; +import { Paper, MenuList, MenuItem } from '@material-ui/core'; import { MenuPopper } from '../../Popper/Popper.component'; import type { Props } from './listViewMenu.types'; @@ -32,7 +33,7 @@ const getStyles = () => ({ const ListViewMenuPlain = ({ customMenuContents = [], classes }: Props) => { const renderPopperAction = useCallback((togglePopper: Function) => ( diff --git a/src/core_modules/capture-core/components/Pagination/withDefaultNavigation.js b/src/core_modules/capture-core/components/Pagination/withDefaultNavigation.js index 335cc9f43e..77fe10dafa 100644 --- a/src/core_modules/capture-core/components/Pagination/withDefaultNavigation.js +++ b/src/core_modules/capture-core/components/Pagination/withDefaultNavigation.js @@ -4,13 +4,13 @@ */ import * as React from 'react'; import { withStyles } from '@material-ui/core/styles'; - -import IconButton from '@material-ui/core/IconButton'; +import { IconButton } from 'capture-ui'; import { IconChevronLeft24, IconChevronRight24 } from '@dhis2/ui'; const styles = (theme: Theme) => ({ root: { flexShrink: 0, + display: 'flex', color: theme.palette.text.secondary, }, }); @@ -81,7 +81,7 @@ const getNavigation = (InnerComponent: React.ComponentType) => className={classes.root} > ) => {theme.direction === 'rtl' ? : } ) => {theme.direction === 'rtl' ? : } ({ container: { @@ -87,14 +87,13 @@ class SectionHeaderSimplePlain extends Component { (() => { if (onChangeCollapseState) { return ( - - {this.props.isCollapsed ? : } - + dataTest={'collapsible-button'} + /> ); } return null; diff --git a/src/core_modules/capture-ui/AgeField/AgeField.component.js b/src/core_modules/capture-ui/AgeField/AgeField.component.js index b48763e956..ccf1bbaad9 100644 --- a/src/core_modules/capture-ui/AgeField/AgeField.component.js +++ b/src/core_modules/capture-ui/AgeField/AgeField.component.js @@ -3,7 +3,7 @@ import React, { Component } from 'react'; import { isValidPositiveInteger } from 'capture-core-utils/validators/form'; import i18n from '@dhis2/d2-i18n'; import classNames from 'classnames'; -import IconButton from '@material-ui/core/IconButton'; +import { IconButton } from 'capture-ui'; import { IconCross24 } from '@dhis2/ui'; import { AgeNumberInput } from '../internal/AgeInput/AgeNumberInput.component'; import { AgeDateInput } from '../internal/AgeInput/AgeDateInput.component'; @@ -249,7 +249,7 @@ class D2AgeFieldPlain extends Component { {this.renderNumberInput(currentValues, 'months', 'Months')} {this.renderNumberInput(currentValues, 'days', 'Days')}
- + diff --git a/src/core_modules/capture-ui/AgeField/ageField.module.css b/src/core_modules/capture-ui/AgeField/ageField.module.css index 753c527700..ffd6907cf9 100644 --- a/src/core_modules/capture-ui/AgeField/ageField.module.css +++ b/src/core_modules/capture-ui/AgeField/ageField.module.css @@ -10,6 +10,7 @@ .containerHorizontal { display: flex; flex-wrap: wrap; + align-items: center; } .ageNumberInputContainer { diff --git a/src/core_modules/capture-ui/CoordinateField/CoordinateField.component.js b/src/core_modules/capture-ui/CoordinateField/CoordinateField.component.js index 31ef11095f..48eecdaca7 100644 --- a/src/core_modules/capture-ui/CoordinateField/CoordinateField.component.js +++ b/src/core_modules/capture-ui/CoordinateField/CoordinateField.component.js @@ -5,7 +5,7 @@ import i18n from '@dhis2/d2-i18n'; import { Map, TileLayer, Marker, withLeaflet } from 'react-leaflet'; import { ReactLeafletSearch } from 'react-leaflet-search-unpolyfilled'; import { IconCross24, Button } from '@dhis2/ui'; -import IconButton from '@material-ui/core/IconButton'; +import { IconButton } from 'capture-ui'; import { AddLocationIcon } from '../Icons'; import { CoordinateInput } from '../internal/CoordinateInput/CoordinateInput.component'; import defaultClasses from './coordinateField.module.css'; @@ -125,12 +125,10 @@ export class CoordinateField extends React.Component { - +
diff --git a/src/core_modules/capture-ui/CoordinateField/coordinateField.module.css b/src/core_modules/capture-ui/CoordinateField/coordinateField.module.css index e5aa4a8f4e..d73c64bcf2 100644 --- a/src/core_modules/capture-ui/CoordinateField/coordinateField.module.css +++ b/src/core_modules/capture-ui/CoordinateField/coordinateField.module.css @@ -27,10 +27,11 @@ .mapIconContainerWithMargin { position: relative; display: flex; + overflow: hidden; align-items: center; justify-content: center; - height: 41px; - width: 41px; + height: 40.5px; + width: 40.5px; border: 1px solid #a0adba; border-radius: 4px 0px 0px 4px; color: #212934; diff --git a/src/core_modules/capture-ui/IconButton/IconButton.component.js b/src/core_modules/capture-ui/IconButton/IconButton.component.js index cdaa3014ab..758cdc1e85 100644 --- a/src/core_modules/capture-ui/IconButton/IconButton.component.js +++ b/src/core_modules/capture-ui/IconButton/IconButton.component.js @@ -1,33 +1,49 @@ // @flow -import React, { useCallback } from 'react'; +import React from 'react'; import cx from 'classnames'; -import classes from './iconButton.module.css'; +import { withStyles } from '@material-ui/core/styles'; +import { colors } from '@dhis2/ui'; import type { Props } from './iconButton.types'; -export const IconButton = ({ children, className, dataTest, onClick, ...passOnProps }: Props) => { - const handleKeyDown = useCallback((event: SyntheticKeyboardEvent) => { - if ([' ', 'Enter', 'Spacebar'].includes(event.key)) { - onClick(event); - } - }, [onClick]); +const styles = { + button: { + cursor: 'pointer', + borderRadius: '3px', + border: 'none', + background: 'transparent', + display: 'flex', + alignItems: 'center', + padding: '2px', + justifyContent: 'center', + color: colors.grey700, + '&:hover': { + background: colors.grey200, + color: colors.grey800, + }, + '&:focus': { + outline: 'solid', + background: colors.grey200, + color: colors.grey800, + }, + '&.disabled': { + color: colors.grey500, + cursor: 'not-allowed', + }, + }, +}; - const handleMouseDown = useCallback((event: SyntheticMouseEvent) => { - event.preventDefault(); - }, []); +const IconButtonPlain = ({ children, className, dataTest, onClick, disabled, classes, ...passOnProps }: Props) => ( + +); - return ( - - {children} - - ); -}; +export const IconButton = withStyles(styles)(IconButtonPlain); diff --git a/src/core_modules/capture-ui/IconButton/iconButton.module.css b/src/core_modules/capture-ui/IconButton/iconButton.module.css index 7e68f83f0e..b6cb38532f 100644 --- a/src/core_modules/capture-ui/IconButton/iconButton.module.css +++ b/src/core_modules/capture-ui/IconButton/iconButton.module.css @@ -8,3 +8,4 @@ outline-width: 1px; outline-offset: 0px; } + diff --git a/src/core_modules/capture-ui/IconButton/iconButton.types.js b/src/core_modules/capture-ui/IconButton/iconButton.types.js index 29eb9cc901..910ed37bc3 100644 --- a/src/core_modules/capture-ui/IconButton/iconButton.types.js +++ b/src/core_modules/capture-ui/IconButton/iconButton.types.js @@ -4,5 +4,7 @@ export type Props = { children: React$Node, className?: string, dataTest?: string, - onClick: (event: SyntheticKeyboardEvent | SyntheticMouseEvent | SyntheticTouchEvent) => void, + disabled?: boolean, + onClick: (event: SyntheticKeyboardEvent | SyntheticMouseEvent | SyntheticTouchEvent) => void, + ...CssClasses, }; diff --git a/src/core_modules/capture-ui/Icons/ChevronIcon.component.js b/src/core_modules/capture-ui/Icons/ChevronIcon.component.js new file mode 100644 index 0000000000..491b1cb452 --- /dev/null +++ b/src/core_modules/capture-ui/Icons/ChevronIcon.component.js @@ -0,0 +1,88 @@ +// @flow +import React, { useState, useEffect } from 'react'; +import { IconButton } from 'capture-ui'; +import cx from 'classnames'; +import { withStyles } from '@material-ui/core/styles'; +import { colors, spacersNum, IconChevronUp24 } from '@dhis2/ui'; + +type ChevronIconProps = { + open: boolean, + dataTest?: string, + onOpen: () => void, + onClose: () => void, + disabled?: boolean, + ...CssClasses, +}; + +const styles = { + toggleButton: { + margin: `0 0 0 ${spacersNum.dp4}px`, + height: '24px', + borderRadius: '3px', + color: colors.grey600, + '&:hover': { + background: colors.grey200, + color: colors.grey800, + }, + '&.open': { + animation: 'flipOpen 200ms normal forwards linear', + }, + '&.close': { + animation: 'flipClose 200ms normal forwards linear', + }, + '&.closeinit': { + transform: 'rotateX(180deg)', + }, + '&.disabled': { + color: colors.grey400, + cursor: 'not-allowed', + }, + }, + '@keyframes flipOpen': { + from: { transform: 'rotateX(180deg)' }, + to: { transform: 'rotateX(0)' }, + }, + '@keyframes flipClose': { + from: { transform: 'rotateX(0)' }, + to: { transform: 'rotateX(180deg)' }, + }, +}; + +const ChevronIconPlain = ({ open, onOpen, onClose, dataTest, disabled, classes }: ChevronIconProps) => { + const [postEffectOpen, setPostEffectOpenStatus] = useState(open); + const [animationsReady, setAnimationsReadyStatus] = useState(false); + + const handleClick = () => { + if (disabled) { + return null; + } + return open ? onClose() : onOpen(); + }; + + useEffect(() => { + if (!animationsReady) { + setAnimationsReadyStatus(true); + } + + setPostEffectOpenStatus(open); + }, [open, animationsReady]); + + return ( + + + + ); +}; + +export const ChevronIcon = withStyles(styles)(ChevronIconPlain); + diff --git a/src/core_modules/capture-ui/Icons/index.js b/src/core_modules/capture-ui/Icons/index.js index 70e0b1b0a9..1f4dfc1f82 100644 --- a/src/core_modules/capture-ui/Icons/index.js +++ b/src/core_modules/capture-ui/Icons/index.js @@ -6,4 +6,5 @@ export { MultiSelectionUncheckedIcon } from './MultiSelectionUncheckedIcon.compo export { SingleSelectionCheckedIcon } from './SingleSelectionCheckedIcon.component'; export { SingleSelectionUncheckedIcon } from './SingleSelectionUncheckedIcon.component'; export { BookmarkAddIcon } from './BookmarkAddIcon.component'; +export { ChevronIcon } from './ChevronIcon.component'; diff --git a/src/core_modules/capture-ui/index.js b/src/core_modules/capture-ui/index.js index c0a8aa0ac1..4ef8f7033a 100644 --- a/src/core_modules/capture-ui/index.js +++ b/src/core_modules/capture-ui/index.js @@ -29,5 +29,6 @@ export { Pagination } from './Pagination/Pagination.component'; // UI-Elements export { DividerHorizontal } from './Divider/DividerHorizontal.component'; export { IconButton } from './IconButton'; +export { ChevronIcon } from './Icons'; export { NonBundledIcon } from './NonBundledIcon'; export { FlatList } from './FlatList';

^UvZY% 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