@iapps/ng-dhis2-ui 1.0.7 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/iapps-ng-dhis2-ui.mjs +59 -52
- package/fesm2022/iapps-ng-dhis2-ui.mjs.map +1 -1
- package/lib/modules/organisation-unit-selector/components/OrgUnitDimension.d.ts +3 -1
- package/lib/modules/organisation-unit-selector/index.d.ts +1 -0
- package/lib/shared/utils/predefinedDimensions.d.ts +6 -6
- package/package.json +6 -8
- package/esm2022/iapps-ng-dhis2-ui.mjs +0 -5
- package/esm2022/index.mjs +0 -6
- package/esm2022/lib/modules/button/button.component.mjs +0 -60
- package/esm2022/lib/modules/button/button.module.mjs +0 -19
- package/esm2022/lib/modules/button/index.mjs +0 -6
- package/esm2022/lib/modules/header-bar/header-bar.component.mjs +0 -38
- package/esm2022/lib/modules/header-bar/header-bar.module.mjs +0 -19
- package/esm2022/lib/modules/header-bar/index.mjs +0 -6
- package/esm2022/lib/modules/header-bar/models/header-bar-app.model.mjs +0 -20
- package/esm2022/lib/modules/header-bar/models/header-bar-data.model.mjs +0 -46
- package/esm2022/lib/modules/header-bar/models/header-bar-notification.model.mjs +0 -11
- package/esm2022/lib/modules/header-bar/models/index.mjs +0 -6
- package/esm2022/lib/modules/header-bar/utils/apps.mjs +0 -221
- package/esm2022/lib/modules/header-bar/utils/debug-info/debug-info-menu-item.mjs +0 -51
- package/esm2022/lib/modules/header-bar/utils/debug-info/debug-info-modal.mjs +0 -30
- package/esm2022/lib/modules/header-bar/utils/debug-info/debug-info-table.mjs +0 -39
- package/esm2022/lib/modules/header-bar/utils/debug-info/use-debug-info.mjs +0 -12
- package/esm2022/lib/modules/header-bar/utils/header-bar-context.mjs +0 -17
- package/esm2022/lib/modules/header-bar/utils/header-bar.mjs +0 -56
- package/esm2022/lib/modules/header-bar/utils/join-path.mjs +0 -5
- package/esm2022/lib/modules/header-bar/utils/logo-image.mjs +0 -52
- package/esm2022/lib/modules/header-bar/utils/logo.mjs +0 -35
- package/esm2022/lib/modules/header-bar/utils/notification-icon.mjs +0 -76
- package/esm2022/lib/modules/header-bar/utils/notifications.mjs +0 -35
- package/esm2022/lib/modules/header-bar/utils/profile/use-on-doc-click.mjs +0 -21
- package/esm2022/lib/modules/header-bar/utils/profile-menu/index.mjs +0 -2
- package/esm2022/lib/modules/header-bar/utils/profile-menu/profile-header.mjs +0 -95
- package/esm2022/lib/modules/header-bar/utils/profile-menu/profile-menu.mjs +0 -101
- package/esm2022/lib/modules/header-bar/utils/profile-menu/update-notification.mjs +0 -54
- package/esm2022/lib/modules/header-bar/utils/profile.mjs +0 -58
- package/esm2022/lib/modules/header-bar/utils/title.mjs +0 -22
- package/esm2022/lib/modules/organisation-unit-selector/components/OrgUnitDimension.mjs +0 -216
- package/esm2022/lib/modules/organisation-unit-selector/components/index.mjs +0 -6
- package/esm2022/lib/modules/organisation-unit-selector/components/styles/OrgUnitDimension.style.mjs +0 -83
- package/esm2022/lib/modules/organisation-unit-selector/components/utils/index.mjs +0 -6
- package/esm2022/lib/modules/organisation-unit-selector/components/utils/ouIdHelper/index.mjs +0 -18
- package/esm2022/lib/modules/organisation-unit-selector/components/utils/ouLevelUtils/index.mjs +0 -27
- package/esm2022/lib/modules/organisation-unit-selector/containers/organisation-unit-selector/organisation-unit-selector.component.mjs +0 -91
- package/esm2022/lib/modules/organisation-unit-selector/containers/organisation-unit-selector-modal/organisation-unit-selector-modal.component-modal.mjs +0 -114
- package/esm2022/lib/modules/organisation-unit-selector/index.mjs +0 -7
- package/esm2022/lib/modules/organisation-unit-selector/models/index.mjs +0 -5
- package/esm2022/lib/modules/organisation-unit-selector/models/organisation-unit-config.model.mjs +0 -16
- package/esm2022/lib/modules/organisation-unit-selector/organisation-unit-selector.module.mjs +0 -28
- package/esm2022/lib/modules/period-selector/components/FixedPeriodFilter.mjs +0 -44
- package/esm2022/lib/modules/period-selector/components/PeriodDimension.mjs +0 -41
- package/esm2022/lib/modules/period-selector/components/PeriodTransfer.mjs +0 -110
- package/esm2022/lib/modules/period-selector/components/RelativePeriodFilter.mjs +0 -28
- package/esm2022/lib/modules/period-selector/components/utils/fixedPeriods.mjs +0 -308
- package/esm2022/lib/modules/period-selector/components/utils/index.mjs +0 -5
- package/esm2022/lib/modules/period-selector/components/utils/periodTypes.mjs +0 -23
- package/esm2022/lib/modules/period-selector/components/utils/relativePeriods.mjs +0 -139
- package/esm2022/lib/modules/period-selector/containers/period-selector/period-selector.component.mjs +0 -69
- package/esm2022/lib/modules/period-selector/containers/period-selector-modal/period-selector-modal.component.mjs +0 -82
- package/esm2022/lib/modules/period-selector/index.mjs +0 -7
- package/esm2022/lib/modules/period-selector/period-selector.module.mjs +0 -20
- package/esm2022/lib/modules/react-wrapper/index.mjs +0 -6
- package/esm2022/lib/modules/react-wrapper/react-wrapper.component.mjs +0 -55
- package/esm2022/lib/modules/react-wrapper/react-wrapper.module.mjs +0 -18
- package/esm2022/lib/shared/assets/AssignedCategoriesIcon.mjs +0 -12
- package/esm2022/lib/shared/assets/DimensionItemIcons/PeriodIcon.mjs +0 -4
- package/esm2022/lib/shared/components/TransferOption.mjs +0 -130
- package/esm2022/lib/shared/components/index.mjs +0 -6
- package/esm2022/lib/shared/index.mjs +0 -7
- package/esm2022/lib/shared/shared.module.mjs +0 -18
- package/esm2022/lib/shared/styles/DimensionSelector.style.mjs +0 -39
- package/esm2022/lib/shared/styles/index.mjs +0 -5
- package/esm2022/lib/shared/utils/axis.mjs +0 -25
- package/esm2022/lib/shared/utils/axisGetDimension.mjs +0 -5
- package/esm2022/lib/shared/utils/axisHasDimension.mjs +0 -3
- package/esm2022/lib/shared/utils/dimension.mjs +0 -52
- package/esm2022/lib/shared/utils/dimensionGetItems.mjs +0 -6
- package/esm2022/lib/shared/utils/dimensionIs.mjs +0 -3
- package/esm2022/lib/shared/utils/dimensionIsEmpty.mjs +0 -5
- package/esm2022/lib/shared/utils/dimensionIsValid.mjs +0 -17
- package/esm2022/lib/shared/utils/dimensionSelectorHelper.mjs +0 -4
- package/esm2022/lib/shared/utils/index.mjs +0 -15
- package/esm2022/lib/shared/utils/layoutGetAllAxes.mjs +0 -7
- package/esm2022/lib/shared/utils/layoutGetAllDimensions.mjs +0 -6
- package/esm2022/lib/shared/utils/layoutGetDimension.mjs +0 -4
- package/esm2022/lib/shared/utils/layoutReplaceDimension.mjs +0 -17
- package/esm2022/lib/shared/utils/list.mjs +0 -15
- package/esm2022/lib/shared/utils/predefinedDimensions.mjs +0 -47
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
import { useDataEngine } from '@dhis2/app-runtime';
|
|
2
|
-
import i18n from '@dhis2/d2-i18n';
|
|
3
|
-
import { Button, Checkbox, colors, IconWarningFilled16, MultiSelect, MultiSelectOption, OrganisationUnitTree, } from '@dhis2/ui';
|
|
4
|
-
import cx from 'classnames';
|
|
5
|
-
import PropTypes from 'prop-types';
|
|
6
|
-
import React, { useEffect, useState } from 'react';
|
|
7
|
-
import { DIMENSION_ID_ORGUNIT, formatList, } from '../../../shared';
|
|
8
|
-
import { ouIdHelper, USER_ORG_UNIT, USER_ORG_UNIT_CHILDREN, USER_ORG_UNIT_GRANDCHILDREN, } from '../components';
|
|
9
|
-
import { styles } from './styles/OrgUnitDimension.style';
|
|
10
|
-
const DYNAMIC_ORG_UNITS = [
|
|
11
|
-
USER_ORG_UNIT,
|
|
12
|
-
USER_ORG_UNIT_CHILDREN,
|
|
13
|
-
USER_ORG_UNIT_GRANDCHILDREN,
|
|
14
|
-
];
|
|
15
|
-
const OrgUnitDimension = ({ roots, selected, onSelect, hideGroupSelect, hideLevelSelect, hideUserOrgUnits, warning, orgUnitGroupPromise, orgUnitLevelPromise, }) => {
|
|
16
|
-
const [ouLevels, setOuLevels] = useState([]);
|
|
17
|
-
const [ouGroups, setOuGroups] = useState([]);
|
|
18
|
-
const [selectedItems, setSelectedItems] = useState(selected);
|
|
19
|
-
const dataEngine = useDataEngine();
|
|
20
|
-
const onSelectItems = (selectedItem) => {
|
|
21
|
-
const { id, checked, displayName, path } = selectedItem;
|
|
22
|
-
let result = [...selectedItems];
|
|
23
|
-
if (checked && DYNAMIC_ORG_UNITS.includes(id)) {
|
|
24
|
-
result = [
|
|
25
|
-
...result.filter((item) => DYNAMIC_ORG_UNITS.includes(item.id)),
|
|
26
|
-
{ id, displayName, type: 'USER_ORGUNIT' },
|
|
27
|
-
];
|
|
28
|
-
}
|
|
29
|
-
else if (checked) {
|
|
30
|
-
result.push({ id, path, name: displayName, type: 'ORGUNIT' });
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
result = [...result.filter((item) => item.id !== id)];
|
|
34
|
-
}
|
|
35
|
-
setSelectedItems(result);
|
|
36
|
-
onSelect({
|
|
37
|
-
dimensionId: DIMENSION_ID_ORGUNIT,
|
|
38
|
-
items: result,
|
|
39
|
-
});
|
|
40
|
-
};
|
|
41
|
-
const clearSelection = () => {
|
|
42
|
-
setSelectedItems([]);
|
|
43
|
-
onSelect({
|
|
44
|
-
dimensionId: DIMENSION_ID_ORGUNIT,
|
|
45
|
-
items: [],
|
|
46
|
-
});
|
|
47
|
-
};
|
|
48
|
-
useEffect(() => {
|
|
49
|
-
const doFetchOuLevels = async () => {
|
|
50
|
-
const result = await orgUnitLevelPromise;
|
|
51
|
-
result.sort((a, b) => (a.level > b.level ? 1 : -1));
|
|
52
|
-
setOuLevels(result);
|
|
53
|
-
};
|
|
54
|
-
const doFetchOuGroups = async () => {
|
|
55
|
-
const result = await orgUnitGroupPromise;
|
|
56
|
-
setOuGroups(result);
|
|
57
|
-
};
|
|
58
|
-
!hideLevelSelect && doFetchOuLevels();
|
|
59
|
-
!hideGroupSelect && doFetchOuGroups();
|
|
60
|
-
}, [dataEngine, hideLevelSelect, hideGroupSelect]);
|
|
61
|
-
const onLevelChange = (ids) => {
|
|
62
|
-
const items = ids.map((id) => ({
|
|
63
|
-
id: ouIdHelper.addLevelPrefix(id),
|
|
64
|
-
name: ouLevels?.find((level) => level.id === id)
|
|
65
|
-
?.displayName,
|
|
66
|
-
type: 'ORGUNIT_LEVEL',
|
|
67
|
-
}));
|
|
68
|
-
const updatedSelectedItems = [
|
|
69
|
-
...selectedItems.filter((ou) => !ouIdHelper.hasLevelPrefix(ou.id)),
|
|
70
|
-
...items,
|
|
71
|
-
];
|
|
72
|
-
setSelectedItems(updatedSelectedItems);
|
|
73
|
-
onSelect({
|
|
74
|
-
dimensionId: DIMENSION_ID_ORGUNIT,
|
|
75
|
-
items: updatedSelectedItems,
|
|
76
|
-
});
|
|
77
|
-
};
|
|
78
|
-
const onGroupChange = (ids) => {
|
|
79
|
-
const items = ids.map((id) => ({
|
|
80
|
-
id: ouIdHelper.addGroupPrefix(id),
|
|
81
|
-
name: (ouGroups?.find((group) => group.id === id) || {})
|
|
82
|
-
.displayName,
|
|
83
|
-
type: 'ORGUNIT_GROUP',
|
|
84
|
-
}));
|
|
85
|
-
const updatedSelectedItems = [
|
|
86
|
-
...selectedItems.filter((ou) => !ouIdHelper.hasGroupPrefix(ou.id)),
|
|
87
|
-
...items,
|
|
88
|
-
];
|
|
89
|
-
setSelectedItems(updatedSelectedItems);
|
|
90
|
-
onSelect({
|
|
91
|
-
dimensionId: DIMENSION_ID_ORGUNIT,
|
|
92
|
-
items: updatedSelectedItems,
|
|
93
|
-
});
|
|
94
|
-
};
|
|
95
|
-
const getSummary = () => {
|
|
96
|
-
let summary;
|
|
97
|
-
if (selectedItems.length) {
|
|
98
|
-
const numberOfOrgUnits = selectedItems.filter((item) => !DYNAMIC_ORG_UNITS.includes(item.id) &&
|
|
99
|
-
!ouIdHelper.hasLevelPrefix(item.id) &&
|
|
100
|
-
!ouIdHelper.hasGroupPrefix(item.id)).length;
|
|
101
|
-
const numberOfLevels = selectedItems.filter((item) => ouIdHelper.hasLevelPrefix(item.id)).length;
|
|
102
|
-
const numberOfGroups = selectedItems.filter((item) => ouIdHelper.hasGroupPrefix(item.id)).length;
|
|
103
|
-
const userOrgUnits = selectedItems.filter((item) => DYNAMIC_ORG_UNITS.includes(item.id));
|
|
104
|
-
const parts = [];
|
|
105
|
-
if (numberOfOrgUnits) {
|
|
106
|
-
parts.push(i18n.t('{{count}} org units', {
|
|
107
|
-
count: numberOfOrgUnits,
|
|
108
|
-
defaultValue: '{{count}} org unit',
|
|
109
|
-
defaultValue_plural: '{{count}} org units',
|
|
110
|
-
}));
|
|
111
|
-
}
|
|
112
|
-
if (numberOfLevels) {
|
|
113
|
-
parts.push(i18n.t('{{count}} levels', {
|
|
114
|
-
count: numberOfLevels,
|
|
115
|
-
defaultValue: '{{count}} level',
|
|
116
|
-
defaultValue_plural: '{{count}} levels',
|
|
117
|
-
}));
|
|
118
|
-
}
|
|
119
|
-
if (numberOfGroups) {
|
|
120
|
-
parts.push(i18n.t('{{count}} groups', {
|
|
121
|
-
count: numberOfGroups,
|
|
122
|
-
defaultValue: '{{count}} group',
|
|
123
|
-
defaultValue_plural: '{{count}} groups',
|
|
124
|
-
}));
|
|
125
|
-
}
|
|
126
|
-
userOrgUnits.forEach((orgUnit) => {
|
|
127
|
-
parts.push(orgUnit.name || orgUnit.displayName);
|
|
128
|
-
});
|
|
129
|
-
summary = i18n.t('Selected: {{commaSeparatedListOfOrganisationUnits}}', {
|
|
130
|
-
keySeparator: '>',
|
|
131
|
-
nsSeparator: '|',
|
|
132
|
-
commaSeparatedListOfOrganisationUnits: formatList(parts),
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
summary = i18n.t('Nothing selected');
|
|
137
|
-
}
|
|
138
|
-
return summary;
|
|
139
|
-
};
|
|
140
|
-
return (React.createElement("div", { className: "container" },
|
|
141
|
-
!hideUserOrgUnits && (React.createElement("div", { className: "userOrgUnitsWrapper" },
|
|
142
|
-
React.createElement(Checkbox, { label: i18n.t('User organisation unit'), checked: selectedItems.some((item) => item.id === USER_ORG_UNIT), onChange: ({ checked }) => onSelectItems({
|
|
143
|
-
id: USER_ORG_UNIT,
|
|
144
|
-
checked,
|
|
145
|
-
displayName: i18n.t('User organisation unit'),
|
|
146
|
-
}), dense: true }),
|
|
147
|
-
React.createElement(Checkbox, { label: i18n.t('User sub-units'), checked: selectedItems.some((item) => item.id === USER_ORG_UNIT_CHILDREN), onChange: ({ checked }) => onSelectItems({
|
|
148
|
-
id: USER_ORG_UNIT_CHILDREN,
|
|
149
|
-
checked,
|
|
150
|
-
displayName: i18n.t('User sub-units'),
|
|
151
|
-
}), dense: true }),
|
|
152
|
-
React.createElement(Checkbox, { label: i18n.t('User sub-x2-units'), checked: selectedItems.some((item) => item.id === USER_ORG_UNIT_GRANDCHILDREN), onChange: ({ checked }) => onSelectItems({
|
|
153
|
-
id: USER_ORG_UNIT_GRANDCHILDREN,
|
|
154
|
-
checked,
|
|
155
|
-
displayName: i18n.t('User sub-x2-units'),
|
|
156
|
-
}), dense: true }))),
|
|
157
|
-
React.createElement("div", { className: cx('orgUnitTreeWrapper', {
|
|
158
|
-
disabled: selectedItems.some((item) => DYNAMIC_ORG_UNITS.includes(item.id)),
|
|
159
|
-
}) },
|
|
160
|
-
React.createElement(OrganisationUnitTree, { roots: roots, initiallyExpanded: [
|
|
161
|
-
...(roots.length === 1 ? [`/${roots[0]}`] : []),
|
|
162
|
-
...selectedItems
|
|
163
|
-
.filter((item) => !DYNAMIC_ORG_UNITS.includes(item.id) &&
|
|
164
|
-
!ouIdHelper.hasLevelPrefix(item.id) &&
|
|
165
|
-
!ouIdHelper.hasGroupPrefix(item.id))
|
|
166
|
-
.map((item) => item.path.substring(0, item.path.lastIndexOf('/')))
|
|
167
|
-
.filter((path) => path),
|
|
168
|
-
], selected: selectedItems
|
|
169
|
-
.filter((item) => !DYNAMIC_ORG_UNITS.includes(item.id) &&
|
|
170
|
-
!ouIdHelper.hasLevelPrefix(item.id) &&
|
|
171
|
-
!ouIdHelper.hasGroupPrefix(item.id))
|
|
172
|
-
.map((item) => item.path), onChange: onSelectItems, dataTest: 'org-unit-tree' })),
|
|
173
|
-
React.createElement("div", { className: cx('selectsWrapper', {
|
|
174
|
-
disabled: selectedItems.some((item) => DYNAMIC_ORG_UNITS.includes(item.id)),
|
|
175
|
-
hidden: hideLevelSelect && hideGroupSelect,
|
|
176
|
-
}) },
|
|
177
|
-
!hideLevelSelect && (React.createElement(MultiSelect, { selected: ouLevels.length
|
|
178
|
-
? selectedItems
|
|
179
|
-
.filter((item) => ouIdHelper.hasLevelPrefix(item.id))
|
|
180
|
-
.map((item) => ouIdHelper.removePrefix(item.id))
|
|
181
|
-
: [], onChange: ({ selected }) => onLevelChange(selected), placeholder: i18n.t('Select a level'), loading: !ouLevels.length, dense: true, dataTest: 'org-unit-level-select' }, ouLevels.map((level) => (React.createElement(MultiSelectOption, { key: level.id, value: level.id, label: level.displayName, dataTest: `org-unit-level-select-option-${level.id}` }))))),
|
|
182
|
-
!hideGroupSelect && (React.createElement(MultiSelect, { selected: ouGroups.length
|
|
183
|
-
? selectedItems
|
|
184
|
-
.filter((item) => ouIdHelper.hasGroupPrefix(item.id))
|
|
185
|
-
.map((item) => ouIdHelper.removePrefix(item.id))
|
|
186
|
-
: [], onChange: ({ selected }) => onGroupChange(selected), placeholder: i18n.t('Select a group'), loading: !ouGroups.length, dense: true, dataTest: 'org-unit-group-select' }, ouGroups.map((group) => (React.createElement(MultiSelectOption, { key: group.id, value: group.id, label: group.displayName, dataTest: `org-unit-group-select-option-${group.id}` })))))),
|
|
187
|
-
React.createElement("div", { className: "summaryWrapper" },
|
|
188
|
-
warning ? (React.createElement("div", { className: "warningWrapper" },
|
|
189
|
-
React.createElement(IconWarningFilled16, { color: colors.red500 }),
|
|
190
|
-
React.createElement("span", { className: "warningText" }, warning))) : (React.createElement("span", { className: "summaryText" }, getSummary())),
|
|
191
|
-
React.createElement("div", { className: "deselectButton" },
|
|
192
|
-
React.createElement(Button, { secondary: true, small: true, onClick: clearSelection, disabled: !selectedItems.length }, i18n.t('Deselect all')))),
|
|
193
|
-
React.createElement("style", { jsx: true }, styles)));
|
|
194
|
-
};
|
|
195
|
-
OrgUnitDimension.defaultProps = {
|
|
196
|
-
hideGroupSelect: false,
|
|
197
|
-
hideLevelSelect: false,
|
|
198
|
-
hideUserOrgUnits: false,
|
|
199
|
-
};
|
|
200
|
-
OrgUnitDimension.propTypes = {
|
|
201
|
-
hideGroupSelect: PropTypes.bool,
|
|
202
|
-
hideLevelSelect: PropTypes.bool,
|
|
203
|
-
hideUserOrgUnits: PropTypes.bool,
|
|
204
|
-
roots: PropTypes.arrayOf(PropTypes.string),
|
|
205
|
-
selected: PropTypes.arrayOf(PropTypes.shape({
|
|
206
|
-
id: PropTypes.string.isRequired,
|
|
207
|
-
name: PropTypes.string.isRequired,
|
|
208
|
-
path: PropTypes.string,
|
|
209
|
-
})),
|
|
210
|
-
warning: PropTypes.string,
|
|
211
|
-
onSelect: PropTypes.func,
|
|
212
|
-
orgUnitGroupPromise: PropTypes.any,
|
|
213
|
-
orgUnitLevelPromise: PropTypes.any,
|
|
214
|
-
};
|
|
215
|
-
export default OrgUnitDimension;
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JnVW5pdERpbWVuc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWRoaXMyLXVpL3NyYy9saWIvbW9kdWxlcy9vcmdhbmlzYXRpb24tdW5pdC1zZWxlY3Rvci9jb21wb25lbnRzL09yZ1VuaXREaW1lbnNpb24udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLElBQUksTUFBTSxnQkFBZ0IsQ0FBQztBQUNsQyxPQUFPLEVBQ0wsTUFBTSxFQUNOLFFBQVEsRUFDUixNQUFNLEVBQ04sbUJBQW1CLEVBQ25CLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsb0JBQW9CLEdBQ3JCLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QixPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDbkMsT0FBTyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRW5ELE9BQU8sRUFDTCxvQkFBb0IsRUFFcEIsVUFBVSxHQUNYLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNMLFVBQVUsRUFDVixhQUFhLEVBQ2Isc0JBQXNCLEVBQ3RCLDJCQUEyQixHQUM1QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFekQsTUFBTSxpQkFBaUIsR0FBRztJQUN4QixhQUFhO0lBQ2Isc0JBQXNCO0lBQ3RCLDJCQUEyQjtDQUM1QixDQUFDO0FBRUYsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEVBQ3hCLEtBQUssRUFDTCxRQUFRLEVBQ1IsUUFBUSxFQUNSLGVBQWUsRUFDZixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLE9BQU8sRUFDUCxtQkFBbUIsRUFDbkIsbUJBQW1CLEdBQ2Ys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Q3hCLENBQUM7QUFFRixnQkFBZ0IsQ0FBQyxTQUFTLEdBQUc7SUFDM0IsZUFBZSxFQUFFLFNBQVMsQ0FBQyxJQUFJO0lBQy9CLGVBQWUsRUFBRSxTQUFTLENBQUMsSUFBSTtJQUMvQixnQkFBZ0IsRUFBRSxTQUFTLENBQUMsSUFBSTtJQUNoQyxLQUFLLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO0lBQzFDLFFBQVEsRUFBRSxTQUFTLENBQUMsT0FBTyxDQUN6QixTQUFTLENBQUMsS0FBSyxDQUFDO1FBQ2QsRUFBRSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVTtRQUMvQixJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO1FBQ2pDLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTTtLQUN2QixDQUFDLENBQ0g7SUFDRCxPQUFPLEVBQUUsU0FBUyxDQUFDLE1BQU07SUFDekIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxJQUFJO0lBQ3hCLG1CQUFtQixFQUFFLFNBQVMsQ0FBQyxHQUFHO0lBQ2xDLG1CQUFtQixFQUFFLFNBQVMsQ0FBQyxHQUFHO0NBQ25DLENBQUM7QUFFRixlQUFlLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlRGF0YUVuZ2luZSB9IGZyb20gJ0BkaGlzMi9hcHAtcnVudGltZSc7XG5pbXBvcnQgaTE4biBmcm9tICdAZGhpczIvZDItaTE4bic7XG5pbXBvcnQge1xuICBCdXR0b24sXG4gIENoZWNrYm94LFxuICBjb2xvcnMsXG4gIEljb25XYXJuaW5nRmlsbGVkMTYsXG4gIE11bHRpU2VsZWN0LFxuICBNdWx0aVNlbGVjdE9wdGlvbixcbiAgT3JnYW5pc2F0aW9uVW5pdFRyZWUsXG59IGZyb20gJ0BkaGlzMi91aSc7XG5pbXBvcnQgY3ggZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7XG4gIERJTUVOU0lPTl9JRF9PUkdVTklULFxuICBESU1FTlNJT05fSURfT1JHVU5JVF9MRVZFTCxcbiAgZm9ybWF0TGlzdCxcbn0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkJztcbmltcG9ydCB7XG4gIG91SWRIZWxwZXIsXG4gIFVTRVJfT1JHX1VOSVQsXG4gIFVTRVJfT1JHX1VOSVRfQ0hJTERSRU4sXG4gIFVTRVJfT1JHX1VOSVRfR1JBTkRDSElMRFJFTixcbn0gZnJvbSAnLi4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBzdHlsZXMgfSBmcm9tICcuL3N0eWxlcy9PcmdVbml0RGltZW5zaW9uLnN0eWxlJztcblxuY29uc3QgRFlOQU1JQ19PUkdfVU5JVFMgPSBbXG4gIFVTRVJfT1JHX1VOSVQsXG4gIFVTRVJfT1JHX1VOSVRfQ0hJTERSRU4sXG4gIFVTRVJfT1JHX1VOSVRfR1JBTkRDSElMRFJFTixcbl07XG5cbmNvbnN0IE9yZ1VuaXREaW1lbnNpb24gPSAoe1xuICByb290cyxcbiAgc2VsZWN0ZWQsXG4gIG9uU2VsZWN0LFxuICBoaWRlR3JvdXBTZWxlY3QsXG4gIGhpZGVMZXZlbFNlbGVjdCxcbiAgaGlkZVVzZXJPcmdVbml0cyxcbiAgd2FybmluZyxcbiAgb3JnVW5pdEdyb3VwUHJvbWlzZSxcbiAgb3JnVW5pdExldmVsUHJvbWlzZSxcbn06IGFueSkgPT4ge1xuICBjb25zdCBbb3VMZXZlbHMsIHNldE91TGV2ZWxzXSA9IHVzZVN0YXRlKFtdKTtcbiAgY29uc3QgW291R3JvdXBzLCBzZXRPdUdyb3Vwc10gPSB1c2VTdGF0ZShbXSk7XG4gIGNvbnN0IFtzZWxlY3RlZEl0ZW1zLCBzZXRTZWxlY3RlZEl0ZW1zXSA9IHVzZVN0YXRlKHNlbGVjdGVkKTtcbiAgY29uc3QgZGF0YUVuZ2luZSA9IHVzZURhdGFFbmdpbmUoKTtcblxuICBjb25zdCBvblNlbGVjdEl0ZW1zID0gKHNlbGVjdGVkSXRlbTogYW55KSA9PiB7XG4gICAgY29uc3QgeyBpZCwgY2hlY2tlZCwgZGlzcGxheU5hbWUsIHBhdGggfSA9IHNlbGVjdGVkSXRlbTtcbiAgICBsZXQgcmVzdWx0ID0gWy4uLnNlbGVjdGVkSXRlbXNdO1xuXG4gICAgaWYgKGNoZWNrZWQgJiYgRFlOQU1JQ19PUkdfVU5JVFMuaW5jbHVkZXMoaWQpKSB7XG4gICAgICByZXN1bHQgPSBbXG4gICAgICAgIC4uLnJlc3VsdC5maWx0ZXIoKGl0ZW0pID0+IERZTkFNSUNfT1JHX1VOSVRTLmluY2x1ZGVzKGl0ZW0uaWQpKSxcbiAgICAgICAgeyBpZCwgZGlzcGxheU5hbWUsIHR5cGU6ICdVU0VSX09SR1VOSVQnIH0sXG4gICAgICBdO1xuICAgIH0gZWxzZSBpZiAoY2hlY2tlZCkge1xuICAgICAgcmVzdWx0LnB1c2goeyBpZCwgcGF0aCwgbmFtZTogZGlzcGxheU5hbWUsIHR5cGU6ICdPUkdVTklUJyB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gWy4uLnJlc3VsdC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uaWQgIT09IGlkKV07XG4gICAgfVxuXG4gICAgc2V0U2VsZWN0ZWRJdGVtcyhyZXN1bHQgYXMgYW55KTtcblxuICAgIG9uU2VsZWN0KHtcbiAgICAgIGRpbWVuc2lvbklkOiBESU1FTlNJT05fSURfT1JHVU5JVCxcbiAgICAgIGl0ZW1zOiByZXN1bHQsXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgY2xlYXJTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgc2V0U2VsZWN0ZWRJdGVtcyhbXSk7XG4gICAgb25TZWxlY3Qoe1xuICAgICAgZGltZW5zaW9uSWQ6IERJTUVOU0lPTl9JRF9PUkdVTklULFxuICAgICAgaXRlbXM6IFtdLFxuICAgIH0pO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZG9GZXRjaE91TGV2ZWxzID0gYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgb3JnVW5pdExldmVsUHJvbWlzZTtcbiAgICAgIHJlc3VsdC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4gKGEubGV2ZWwgPiBiLmxldmVsID8gMSA6IC0xKSk7XG4gICAgICBzZXRPdUxldmVscyhyZXN1bHQpO1xuICAgIH07XG4gICAgY29uc3QgZG9GZXRjaE91R3JvdXBzID0gYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgb3JnVW5pdEdyb3VwUHJvbWlzZTtcbiAgICAgIHNldE91R3JvdXBzKHJlc3VsdCk7XG4gICAgfTtcblxuICAgICFoaWRlTGV2ZWxTZWxlY3QgJiYgZG9GZXRjaE91TGV2ZWxzKCk7XG4gICAgIWhpZGVHcm91cFNlbGVjdCAmJiBkb0ZldGNoT3VHcm91cHMoKTtcbiAgfSwgW2RhdGFFbmdpbmUsIGhpZGVMZXZlbFNlbGVjdCwgaGlkZUdyb3VwU2VsZWN0XSk7XG5cbiAgY29uc3Qgb25MZXZlbENoYW5nZSA9IChpZHM6IHN0cmluZ1tdKSA9PiB7XG4gICAgY29uc3QgaXRlbXMgPSBpZHMubWFwKChpZDogc3RyaW5nKSA9PiAoe1xuICAgICAgaWQ6IG91SWRIZWxwZXIuYWRkTGV2ZWxQcmVmaXgoaWQpLFxuICAgICAgbmFtZTogKG91TGV2ZWxzPy5maW5kKChsZXZlbDogYW55KSA9PiBsZXZlbC5pZCA9PT0gaWQpIGFzIGFueSlcbiAgICAgICAgPy5kaXNwbGF5TmFtZSxcbiAgICAgIHR5cGU6ICdPUkdVTklUX0xFVkVMJyxcbiAgICB9KSk7XG5cbiAgICBjb25zdCB1cGRhdGVkU2VsZWN0ZWRJdGVtcyA9IFtcbiAgICAgIC4uLnNlbGVjdGVkSXRlbXMuZmlsdGVyKChvdTogYW55KSA9PiAhb3VJZEhlbHBlci5oYXNMZXZlbFByZWZpeChvdS5pZCkpLFxuICAgICAgLi4uaXRlbXMsXG4gICAgXTtcblxuICAgIHNldFNlbGVjdGVkSXRlbXModXBkYXRlZFNlbGVjdGVkSXRlbXMpO1xuXG4gICAgb25TZWxlY3Qoe1xuICAgICAgZGltZW5zaW9uSWQ6IERJTUVOU0lPTl9JRF9PUkdVTklULFxuICAgICAgaXRlbXM6IHVwZGF0ZWRTZWxlY3RlZEl0ZW1zLFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IG9uR3JvdXBDaGFuZ2UgPSAoaWRzOiBzdHJpbmdbXSkgPT4ge1xuICAgIGNvbnN0IGl0ZW1zID0gaWRzLm1hcCgoaWQ6IHN0cmluZykgPT4gKHtcbiAgICAgIGlkOiBvdUlkSGVscGVyLmFkZEdyb3VwUHJlZml4KGlkKSxcbiAgICAgIG5hbWU6ICgob3VHcm91cHM/LmZpbmQoKGdyb3VwOiBhbnkpID0+IGdyb3VwLmlkID09PSBpZCkgfHwge30pIGFzIGFueSlcbiAgICAgICAgLmRpc3BsYXlOYW1lLFxuICAgICAgdHlwZTogJ09SR1VOSVRfR1JPVVAnLFxuICAgIH0pKTtcblxuICAgIGNvbnN0IHVwZGF0ZWRTZWxlY3RlZEl0ZW1zID0gW1xuICAgICAgLi4uc2VsZWN0ZWRJdGVtcy5maWx0ZXIoKG91OiBhbnkpID0+ICFvdUlkSGVscGVyLmhhc0dyb3VwUHJlZml4KG91LmlkKSksXG4gICAgICAuLi5pdGVtcyxcbiAgICBdO1xuXG4gICAgc2V0U2VsZWN0ZWRJdGVtcyh1cGRhdGVkU2VsZWN0ZWRJdGVtcyk7XG5cbiAgICBvblNlbGVjdCh7XG4gICAgICBkaW1lbnNpb25JZDogRElNRU5TSU9OX0lEX09SR1VOSVQsXG4gICAgICBpdGVtczogdXBkYXRlZFNlbGVjdGVkSXRlbXMsXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgZ2V0U3VtbWFyeSA9ICgpID0+IHtcbiAgICBsZXQgc3VtbWFyeTtcbiAgICBpZiAoc2VsZWN0ZWRJdGVtcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IG51bWJlck9mT3JnVW5pdHMgPSBzZWxlY3RlZEl0ZW1zLmZpbHRlcihcbiAgICAgICAgKGl0ZW06IGFueSkgPT5cbiAgICAgICAgICAhRFlOQU1JQ19PUkdfVU5JVFMuaW5jbHVkZXMoaXRlbS5pZCkgJiZcbiAgICAgICAgICAhb3VJZEhlbHBlci5oYXNMZXZlbFByZWZpeChpdGVtLmlkKSAmJlxuICAgICAgICAgICFvdUlkSGVscGVyLmhhc0dyb3VwUHJlZml4KGl0ZW0uaWQpXG4gICAgICApLmxlbmd0aDtcblxuICAgICAgY29uc3QgbnVtYmVyT2ZMZXZlbHMgPSBzZWxlY3RlZEl0ZW1zLmZpbHRlcigoaXRlbTogYW55KSA9PlxuICAgICAgICBvdUlkSGVscGVyLmhhc0xldmVsUHJlZml4KGl0ZW0uaWQpXG4gICAgICApLmxlbmd0aDtcbiAgICAgIGNvbnN0IG51bWJlck9mR3JvdXBzID0gc2VsZWN0ZWRJdGVtcy5maWx0ZXIoKGl0ZW06IGFueSkgPT5cbiAgICAgICAgb3VJZEhlbHBlci5oYXNHcm91cFByZWZpeChpdGVtLmlkKVxuICAgICAgKS5sZW5ndGg7XG4gICAgICBjb25zdCB1c2VyT3JnVW5pdHMgPSBzZWxlY3RlZEl0ZW1zLmZpbHRlcigoaXRlbTogYW55KSA9PlxuICAgICAgICBEWU5BTUlDX09SR19VTklUUy5pbmNsdWRlcyhpdGVtLmlkKVxuICAgICAgKTtcblxuICAgICAgY29uc3QgcGFydHMgPSBbXTtcblxuICAgICAgaWYgKG51bWJlck9mT3JnVW5pdHMpIHtcbiAgICAgICAgcGFydHMucHVzaChcbiAgICAgICAgICBpMThuLnQoJ3t7Y291bnR9fSBvcmcgdW5pdHMnLCB7XG4gICAgICAgICAgICBjb3VudDogbnVtYmVyT2ZPcmdVbml0cyxcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogJ3t7Y291bnR9fSBvcmcgdW5pdCcsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWVfcGx1cmFsOiAne3tjb3VudH19IG9yZyB1bml0cycsXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChudW1iZXJPZkxldmVscykge1xuICAgICAgICBwYXJ0cy5wdXNoKFxuICAgICAgICAgIGkxOG4udCgne3tjb3VudH19IGxldmVscycsIHtcbiAgICAgICAgICAgIGNvdW50OiBudW1iZXJPZkxldmVscyxcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogJ3t7Y291bnR9fSBsZXZlbCcsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWVfcGx1cmFsOiAne3tjb3VudH19IGxldmVscycsXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChudW1iZXJPZkdyb3Vwcykge1xuICAgICAgICBwYXJ0cy5wdXNoKFxuICAgICAgICAgIGkxOG4udCgne3tjb3VudH19IGdyb3VwcycsIHtcbiAgICAgICAgICAgIGNvdW50OiBudW1iZXJPZkdyb3VwcyxcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogJ3t7Y291bnR9fSBncm91cCcsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWVfcGx1cmFsOiAne3tjb3VudH19IGdyb3VwcycsXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHVzZXJPcmdVbml0cy5mb3JFYWNoKChvcmdVbml0OiBhbnkpID0+IHtcbiAgICAgICAgcGFydHMucHVzaChvcmdVbml0Lm5hbWUgfHwgb3JnVW5pdC5kaXNwbGF5TmFtZSk7XG4gICAgICB9KTtcbiAgICAgIHN1bW1hcnkgPSBpMThuLnQoJ1NlbGVjdGVkOiB7e2NvbW1hU2VwYXJhdGVkTGlzdE9mT3JnYW5pc2F0aW9uVW5pdHN9fScsIHtcbiAgICAgICAga2V5U2VwYXJhdG9yOiAnPicsXG4gICAgICAgIG5zU2VwYXJhdG9yOiAnfCcsXG4gICAgICAgIGNvbW1hU2VwYXJhdGVkTGlzdE9mT3JnYW5pc2F0aW9uVW5pdHM6IGZvcm1hdExpc3QocGFydHMpLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN1bW1hcnkgPSBpMThuLnQoJ05vdGhpbmcgc2VsZWN0ZWQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VtbWFyeTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XG4gICAgICB7IWhpZGVVc2VyT3JnVW5pdHMgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInVzZXJPcmdVbml0c1dyYXBwZXJcIj5cbiAgICAgICAgICA8Q2hlY2tib3hcbiAgICAgICAgICAgIGxhYmVsPXtpMThuLnQoJ1VzZXIgb3JnYW5pc2F0aW9uIHVuaXQnKX1cbiAgICAgICAgICAgIGNoZWNrZWQ9e3NlbGVjdGVkSXRlbXMuc29tZShcbiAgICAgICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5pZCA9PT0gVVNFUl9PUkdfVU5JVFxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoeyBjaGVja2VkIH06IGFueSkgPT5cbiAgICAgICAgICAgICAgb25TZWxlY3RJdGVtcyh7XG4gICAgICAgICAgICAgICAgaWQ6IFVTRVJfT1JHX1VOSVQsXG4gICAgICAgICAgICAgICAgY2hlY2tlZCxcbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogaTE4bi50KCdVc2VyIG9yZ2FuaXNhdGlvbiB1bml0JyksXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZW5zZVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPENoZWNrYm94XG4gICAgICAgICAgICBsYWJlbD17aTE4bi50KCdVc2VyIHN1Yi11bml0cycpfVxuICAgICAgICAgICAgY2hlY2tlZD17c2VsZWN0ZWRJdGVtcy5zb21lKFxuICAgICAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLmlkID09PSBVU0VSX09SR19VTklUX0NISUxEUkVOXG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgb25DaGFuZ2U9eyh7IGNoZWNrZWQgfTogYW55KSA9PlxuICAgICAgICAgICAgICBvblNlbGVjdEl0ZW1zKHtcbiAgICAgICAgICAgICAgICBpZDogVVNFUl9PUkdfVU5JVF9DSElMRFJFTixcbiAgICAgICAgICAgICAgICBjaGVja2VkLFxuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBpMThuLnQoJ1VzZXIgc3ViLXVuaXRzJyksXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZW5zZVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPENoZWNrYm94XG4gICAgICAgICAgICBsYWJlbD17aTE4bi50KCdVc2VyIHN1Yi14Mi11bml0cycpfVxuICAgICAgICAgICAgY2hlY2tlZD17c2VsZWN0ZWRJdGVtcy5zb21lKFxuICAgICAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLmlkID09PSBVU0VSX09SR19VTklUX0dSQU5EQ0hJTERSRU5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICBvbkNoYW5nZT17KHsgY2hlY2tlZCB9OiBhbnkpID0+XG4gICAgICAgICAgICAgIG9uU2VsZWN0SXRlbXMoe1xuICAgICAgICAgICAgICAgIGlkOiBVU0VSX09SR19VTklUX0dSQU5EQ0hJTERSRU4sXG4gICAgICAgICAgICAgICAgY2hlY2tlZCxcbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogaTE4bi50KCdVc2VyIHN1Yi14Mi11bml0cycpLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVuc2VcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17Y3goJ29yZ1VuaXRUcmVlV3JhcHBlcicsIHtcbiAgICAgICAgICBkaXNhYmxlZDogc2VsZWN0ZWRJdGVtcy5zb21lKChpdGVtOiBhbnkpID0+XG4gICAgICAgICAgICBEWU5BTUlDX09SR19VTklUUy5pbmNsdWRlcyhpdGVtLmlkKVxuICAgICAgICAgICksXG4gICAgICAgIH0pfVxuICAgICAgPlxuICAgICAgICA8T3JnYW5pc2F0aW9uVW5pdFRyZWVcbiAgICAgICAgICByb290cz17cm9vdHN9XG4gICAgICAgICAgaW5pdGlhbGx5RXhwYW5kZWQ9e1tcbiAgICAgICAgICAgIC4uLihyb290cy5sZW5ndGggPT09IDEgPyBbYC8ke3Jvb3RzWzBdfWBdIDogW10pLFxuICAgICAgICAgICAgLi4uc2VsZWN0ZWRJdGVtc1xuICAgICAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChpdGVtOiBhbnkpID0+XG4gICAgICAgICAgICAgICAgICAhRFlOQU1JQ19PUkdfVU5JVFMuaW5jbHVkZXMoaXRlbS5pZCkgJiZcbiAgICAgICAgICAgICAgICAgICFvdUlkSGVscGVyLmhhc0xldmVsUHJlZml4KGl0ZW0uaWQpICYmXG4gICAgICAgICAgICAgICAgICAhb3VJZEhlbHBlci5oYXNHcm91cFByZWZpeChpdGVtLmlkKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5tYXAoKGl0ZW06IGFueSkgPT5cbiAgICAgICAgICAgICAgICBpdGVtLnBhdGguc3Vic3RyaW5nKDAsIGl0ZW0ucGF0aC5sYXN0SW5kZXhPZignLycpKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5maWx0ZXIoKHBhdGg6IGFueSkgPT4gcGF0aCksXG4gICAgICAgICAgXX1cbiAgICAgICAgICBzZWxlY3RlZD17c2VsZWN0ZWRJdGVtc1xuICAgICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAgKGl0ZW06IGFueSkgPT5cbiAgICAgICAgICAgICAgICAhRFlOQU1JQ19PUkdfVU5JVFMuaW5jbHVkZXMoaXRlbS5pZCkgJiZcbiAgICAgICAgICAgICAgICAhb3VJZEhlbHBlci5oYXNMZXZlbFByZWZpeChpdGVtLmlkKSAmJlxuICAgICAgICAgICAgICAgICFvdUlkSGVscGVyLmhhc0dyb3VwUHJlZml4KGl0ZW0uaWQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0ucGF0aCl9XG4gICAgICAgICAgb25DaGFuZ2U9e29uU2VsZWN0SXRlbXN9XG4gICAgICAgICAgZGF0YVRlc3Q9eydvcmctdW5pdC10cmVlJ31cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e2N4KCdzZWxlY3RzV3JhcHBlcicsIHtcbiAgICAgICAgICBkaXNhYmxlZDogc2VsZWN0ZWRJdGVtcy5zb21lKChpdGVtOiBhbnkpID0+XG4gICAgICAgICAgICBEWU5BTUlDX09SR19VTklUUy5pbmNsdWRlcyhpdGVtLmlkKVxuICAgICAgICAgICksXG4gICAgICAgICAgaGlkZGVuOiBoaWRlTGV2ZWxTZWxlY3QgJiYgaGlkZUdyb3VwU2VsZWN0LFxuICAgICAgICB9KX1cbiAgICAgID5cbiAgICAgICAgeyFoaWRlTGV2ZWxTZWxlY3QgJiYgKFxuICAgICAgICAgIDxNdWx0aVNlbGVjdFxuICAgICAgICAgICAgc2VsZWN0ZWQ9e1xuICAgICAgICAgICAgICBvdUxldmVscy5sZW5ndGhcbiAgICAgICAgICAgICAgICA/IHNlbGVjdGVkSXRlbXNcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcigoaXRlbTogYW55KSA9PiBvdUlkSGVscGVyLmhhc0xldmVsUHJlZml4KGl0ZW0uaWQpKVxuICAgICAgICAgICAgICAgICAgICAubWFwKChpdGVtOiBhbnkpID0+IG91SWRIZWxwZXIucmVtb3ZlUHJlZml4KGl0ZW0uaWQpKVxuICAgICAgICAgICAgICAgIDogW11cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoeyBzZWxlY3RlZCB9OiBhbnkpID0+IG9uTGV2ZWxDaGFuZ2Uoc2VsZWN0ZWQpfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e2kxOG4udCgnU2VsZWN0IGEgbGV2ZWwnKX1cbiAgICAgICAgICAgIGxvYWRpbmc9eyFvdUxldmVscy5sZW5ndGh9XG4gICAgICAgICAgICBkZW5zZVxuICAgICAgICAgICAgZGF0YVRlc3Q9eydvcmctdW5pdC1sZXZlbC1zZWxlY3QnfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtvdUxldmVscy5tYXAoKGxldmVsOiBhbnkpID0+IChcbiAgICAgICAgICAgICAgPE11bHRpU2VsZWN0T3B0aW9uXG4gICAgICAgICAgICAgICAga2V5PXtsZXZlbC5pZH1cbiAgICAgICAgICAgICAgICB2YWx1ZT17bGV2ZWwuaWR9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2xldmVsLmRpc3BsYXlOYW1lfVxuICAgICAgICAgICAgICAgIGRhdGFUZXN0PXtgb3JnLXVuaXQtbGV2ZWwtc2VsZWN0LW9wdGlvbi0ke2xldmVsLmlkfWB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L011bHRpU2VsZWN0PlxuICAgICAgICApfVxuICAgICAgICB7IWhpZGVHcm91cFNlbGVjdCAmJiAoXG4gICAgICAgICAgPE11bHRpU2VsZWN0XG4gICAgICAgICAgICBzZWxlY3RlZD17XG4gICAgICAgICAgICAgIG91R3JvdXBzLmxlbmd0aFxuICAgICAgICAgICAgICAgID8gc2VsZWN0ZWRJdGVtc1xuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKChpdGVtOiBhbnkpID0+IG91SWRIZWxwZXIuaGFzR3JvdXBQcmVmaXgoaXRlbS5pZCkpXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKGl0ZW06IGFueSkgPT4gb3VJZEhlbHBlci5yZW1vdmVQcmVmaXgoaXRlbS5pZCkpXG4gICAgICAgICAgICAgICAgOiBbXVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25DaGFuZ2U9eyh7IHNlbGVjdGVkIH06IGFueSkgPT4gb25Hcm91cENoYW5nZShzZWxlY3RlZCl9XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj17aTE4bi50KCdTZWxlY3QgYSBncm91cCcpfVxuICAgICAgICAgICAgbG9hZGluZz17IW91R3JvdXBzLmxlbmd0aH1cbiAgICAgICAgICAgIGRlbnNlXG4gICAgICAgICAgICBkYXRhVGVzdD17J29yZy11bml0LWdyb3VwLXNlbGVjdCd9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge291R3JvdXBzLm1hcCgoZ3JvdXA6IGFueSkgPT4gKFxuICAgICAgICAgICAgICA8TXVsdGlTZWxlY3RPcHRpb25cbiAgICAgICAgICAgICAgICBrZXk9e2dyb3VwLmlkfVxuICAgICAgICAgICAgICAgIHZhbHVlPXtncm91cC5pZH1cbiAgICAgICAgICAgICAgICBsYWJlbD17Z3JvdXAuZGlzcGxheU5hbWV9XG4gICAgICAgICAgICAgICAgZGF0YVRlc3Q9e2BvcmctdW5pdC1ncm91cC1zZWxlY3Qtb3B0aW9uLSR7Z3JvdXAuaWR9YH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvTXVsdGlTZWxlY3Q+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3VtbWFyeVdyYXBwZXJcIj5cbiAgICAgICAge3dhcm5pbmcgPyAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3YXJuaW5nV3JhcHBlclwiPlxuICAgICAgICAgICAgPEljb25XYXJuaW5nRmlsbGVkMTYgY29sb3I9e2NvbG9ycy5yZWQ1MDB9IC8+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ3YXJuaW5nVGV4dFwiPnt3YXJuaW5nfTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzdW1tYXJ5VGV4dFwiPntnZXRTdW1tYXJ5KCl9PC9zcGFuPlxuICAgICAgICApfVxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRlc2VsZWN0QnV0dG9uXCI+XG4gICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgc2Vjb25kYXJ5XG4gICAgICAgICAgICBzbWFsbFxuICAgICAgICAgICAgb25DbGljaz17Y2xlYXJTZWxlY3Rpb259XG4gICAgICAgICAgICBkaXNhYmxlZD17IXNlbGVjdGVkSXRlbXMubGVuZ3RofVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtpMThuLnQoJ0Rlc2VsZWN0IGFsbCcpfVxuICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHN0eWxlIGpzeD57c3R5bGVzfTwvc3R5bGU+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5PcmdVbml0RGltZW5zaW9uLmRlZmF1bHRQcm9wcyA9IHtcbiAgaGlkZUdyb3VwU2VsZWN0OiBmYWxzZSxcbiAgaGlkZUxldmVsU2VsZWN0OiBmYWxzZSxcbiAgaGlkZVVzZXJPcmdVbml0czogZmFsc2UsXG59O1xuXG5PcmdVbml0RGltZW5zaW9uLnByb3BUeXBlcyA9IHtcbiAgaGlkZUdyb3VwU2VsZWN0OiBQcm9wVHlwZXMuYm9vbCxcbiAgaGlkZUxldmVsU2VsZWN0OiBQcm9wVHlwZXMuYm9vbCxcbiAgaGlkZVVzZXJPcmdVbml0czogUHJvcFR5cGVzLmJvb2wsXG4gIHJvb3RzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgc2VsZWN0ZWQ6IFByb3BUeXBlcy5hcnJheU9mKFxuICAgIFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICBpZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgcGF0aDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB9KVxuICApLFxuICB3YXJuaW5nOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvblNlbGVjdDogUHJvcFR5cGVzLmZ1bmMsXG4gIG9yZ1VuaXRHcm91cFByb21pc2U6IFByb3BUeXBlcy5hbnksXG4gIG9yZ1VuaXRMZXZlbFByb21pc2U6IFByb3BUeXBlcy5hbnksXG59O1xuXG5leHBvcnQgZGVmYXVsdCBPcmdVbml0RGltZW5zaW9uO1xuIl19
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.
|
|
2
|
-
// Use of this source code is governed by a BSD-style
|
|
3
|
-
// license that can be found in the LICENSE file.
|
|
4
|
-
export * from './OrgUnitDimension';
|
|
5
|
-
export * from './utils';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1kaGlzMi11aS9zcmMvbGliL21vZHVsZXMvb3JnYW5pc2F0aW9uLXVuaXQtc2VsZWN0b3IvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzREFBc0Q7QUFDdEQscURBQXFEO0FBQ3JELGlEQUFpRDtBQUVqRCxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjMgVURTTSBESElTMiBMYWIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4vLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZVxuLy8gbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLlxuXG5leHBvcnQgKiBmcm9tICcuL09yZ1VuaXREaW1lbnNpb24nO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XG4iXX0=
|
package/esm2022/lib/modules/organisation-unit-selector/components/styles/OrgUnitDimension.style.mjs
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { colors, spacers } from '@dhis2/ui';
|
|
2
|
-
export const styles = `
|
|
3
|
-
.container {
|
|
4
|
-
height: 100%;
|
|
5
|
-
display: flex;
|
|
6
|
-
flex-direction: column;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
.orgUnitTreeWrapper {
|
|
10
|
-
height: 382px;
|
|
11
|
-
flex-grow: 1;
|
|
12
|
-
overflow: auto;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
.orgUnitTreeWrapper > :global(*) {
|
|
16
|
-
flex-grow: 1;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
.disabled {
|
|
20
|
-
cursor: not-allowed;
|
|
21
|
-
opacity: 0.5;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
.disabled > :global(*) {
|
|
25
|
-
pointer-events: none;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
.userOrgUnitsWrapper {
|
|
29
|
-
display: flex;
|
|
30
|
-
background: ${colors.grey200};
|
|
31
|
-
padding: ${spacers.dp8} ${spacers.dp8} ${spacers.dp8} ${spacers.dp24};
|
|
32
|
-
margin-bottom: ${spacers.dp12};
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
.userOrgUnitsWrapper > :global(*) {
|
|
36
|
-
margin-right: ${spacers.dp48};
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.selectsWrapper {
|
|
40
|
-
display: flex;
|
|
41
|
-
align-items: flex-start;
|
|
42
|
-
gap: ${spacers.dp8};
|
|
43
|
-
margin-top: ${spacers.dp12};
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.selectsWrapper.hidden {
|
|
47
|
-
display: none;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
.selectsWrapper > :global(*) {
|
|
51
|
-
width: 50%;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
.summaryWrapper {
|
|
55
|
-
display: inline-flex;
|
|
56
|
-
align-items: center;
|
|
57
|
-
margin-top: ${spacers.dp8};
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
.warningWrapper {
|
|
61
|
-
display: inline-flex;
|
|
62
|
-
align-items: center;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
.warningText {
|
|
66
|
-
margin-left: ${spacers.dp8};
|
|
67
|
-
font-size: 14px;
|
|
68
|
-
line-height: 18px;
|
|
69
|
-
color: ${colors.red600};
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
.summaryText {
|
|
73
|
-
font-size: 14px;
|
|
74
|
-
line-height: 18px;
|
|
75
|
-
color: ${colors.grey700};
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
.deselectButton {
|
|
79
|
-
display: inline-block;
|
|
80
|
-
margin-left: ${spacers.dp8};
|
|
81
|
-
}
|
|
82
|
-
`;
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JnVW5pdERpbWVuc2lvbi5zdHlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWRoaXMyLXVpL3NyYy9saWIvbW9kdWxlcy9vcmdhbmlzYXRpb24tdW5pdC1zZWxlY3Rvci9jb21wb25lbnRzL3N0eWxlcy9PcmdVbml0RGltZW5zaW9uLnN0eWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTVDLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztzQkE0QkEsTUFBTSxDQUFDLE9BQU87bUJBQ2pCLE9BQU8sQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxJQUFJO3lCQUNuRCxPQUFPLENBQUMsSUFBSTs7Ozt3QkFJYixPQUFPLENBQUMsSUFBSTs7Ozs7O2VBTXJCLE9BQU8sQ0FBQyxHQUFHO3NCQUNKLE9BQU8sQ0FBQyxJQUFJOzs7Ozs7Ozs7Ozs7OztzQkFjWixPQUFPLENBQUMsR0FBRzs7Ozs7Ozs7O3VCQVNWLE9BQU8sQ0FBQyxHQUFHOzs7aUJBR2pCLE1BQU0sQ0FBQyxNQUFNOzs7Ozs7aUJBTWIsTUFBTSxDQUFDLE9BQU87Ozs7O3VCQUtSLE9BQU8sQ0FBQyxHQUFHOztDQUVqQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29sb3JzLCBzcGFjZXJzIH0gZnJvbSAnQGRoaXMyL3VpJztcblxuZXhwb3J0IGNvbnN0IHN0eWxlcyA9IGBcbiAgICAuY29udGFpbmVyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgIC5vcmdVbml0VHJlZVdyYXBwZXIge1xuICAgICAgICBoZWlnaHQ6IDM4MnB4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIH1cblxuICAgIC5vcmdVbml0VHJlZVdyYXBwZXIgPiA6Z2xvYmFsKCopIHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgIH1cblxuICAgIC5kaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG5cbiAgICAuZGlzYWJsZWQgPiA6Z2xvYmFsKCopIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgLnVzZXJPcmdVbml0c1dyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2NvbG9ycy5ncmV5MjAwfTtcbiAgICAgICAgcGFkZGluZzogJHtzcGFjZXJzLmRwOH0gJHtzcGFjZXJzLmRwOH0gJHtzcGFjZXJzLmRwOH0gJHtzcGFjZXJzLmRwMjR9O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAke3NwYWNlcnMuZHAxMn07XG4gICAgfVxuXG4gICAgLnVzZXJPcmdVbml0c1dyYXBwZXIgPiA6Z2xvYmFsKCopIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAke3NwYWNlcnMuZHA0OH07XG4gICAgfVxuXG4gICAgLnNlbGVjdHNXcmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGdhcDogJHtzcGFjZXJzLmRwOH07XG4gICAgICAgIG1hcmdpbi10b3A6ICR7c3BhY2Vycy5kcDEyfTtcbiAgICB9XG5cbiAgICAuc2VsZWN0c1dyYXBwZXIuaGlkZGVuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuc2VsZWN0c1dyYXBwZXIgPiA6Z2xvYmFsKCopIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICB9XG5cbiAgICAuc3VtbWFyeVdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLXRvcDogJHtzcGFjZXJzLmRwOH07XG4gICAgfVxuXG4gICAgLndhcm5pbmdXcmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLndhcm5pbmdUZXh0IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICR7c3BhY2Vycy5kcDh9O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgICAgICBjb2xvcjogJHtjb2xvcnMucmVkNjAwfTtcbiAgICB9XG5cbiAgICAuc3VtbWFyeVRleHQge1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgICAgICBjb2xvcjogJHtjb2xvcnMuZ3JleTcwMH07XG4gICAgfVxuXG4gICAgLmRlc2VsZWN0QnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tbGVmdDogJHtzcGFjZXJzLmRwOH07XG4gICAgfVxuYDtcbiJdfQ==
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.
|
|
2
|
-
// Use of this source code is governed by a BSD-style
|
|
3
|
-
// license that can be found in the LICENSE file.
|
|
4
|
-
export * from './ouIdHelper';
|
|
5
|
-
export * from './ouLevelUtils';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1kaGlzMi11aS9zcmMvbGliL21vZHVsZXMvb3JnYW5pc2F0aW9uLXVuaXQtc2VsZWN0b3IvY29tcG9uZW50cy91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzREFBc0Q7QUFDdEQscURBQXFEO0FBQ3JELGlEQUFpRDtBQUNqRCxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjMgVURTTSBESElTMiBMYWIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4vLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZVxuLy8gbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLlxuZXhwb3J0ICogZnJvbSAnLi9vdUlkSGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vb3VMZXZlbFV0aWxzJztcbiJdfQ==
|
package/esm2022/lib/modules/organisation-unit-selector/components/utils/ouIdHelper/index.mjs
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
const LEVEL_ID_PREFIX = 'LEVEL';
|
|
2
|
-
const GROUP_ID_PREFIX = 'OU_GROUP';
|
|
3
|
-
export const USER_ORG_UNIT = 'USER_ORGUNIT';
|
|
4
|
-
export const USER_ORG_UNIT_CHILDREN = 'USER_ORGUNIT_CHILDREN';
|
|
5
|
-
export const USER_ORG_UNIT_GRANDCHILDREN = 'USER_ORGUNIT_GRANDCHILDREN';
|
|
6
|
-
const hasGroupPrefix = (id) => id.substr(0, GROUP_ID_PREFIX.length) === GROUP_ID_PREFIX;
|
|
7
|
-
const hasLevelPrefix = (id) => id.includes(LEVEL_ID_PREFIX);
|
|
8
|
-
const stripLevelPrefix = (id) => hasLevelPrefix(id) ? id.substr(LEVEL_ID_PREFIX.length + 1) : id;
|
|
9
|
-
const stripGroupPrefix = (id) => hasGroupPrefix(id) ? id.substr(GROUP_ID_PREFIX.length + 1) : id;
|
|
10
|
-
const removePrefix = (id) => stripGroupPrefix(stripLevelPrefix(id));
|
|
11
|
-
export const ouIdHelper = Object.freeze({
|
|
12
|
-
addLevelPrefix: (id) => `${LEVEL_ID_PREFIX}-${removePrefix(id)}`,
|
|
13
|
-
addGroupPrefix: (id) => `${GROUP_ID_PREFIX}-${removePrefix(id)}`,
|
|
14
|
-
removePrefix,
|
|
15
|
-
hasGroupPrefix,
|
|
16
|
-
hasLevelPrefix,
|
|
17
|
-
});
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1kaGlzMi11aS9zcmMvbGliL21vZHVsZXMvb3JnYW5pc2F0aW9uLXVuaXQtc2VsZWN0b3IvY29tcG9uZW50cy91dGlscy9vdUlkSGVscGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQztBQUNoQyxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUM7QUFDbkMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQztBQUM1QyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyx1QkFBdUIsQ0FBQztBQUM5RCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyw0QkFBNEIsQ0FBQztBQUV4RSxNQUFNLGNBQWMsR0FBRyxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQ3BDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxlQUFlLENBQUM7QUFFM0QsTUFBTSxjQUFjLEdBQUcsQ0FBQyxFQUFVLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7QUFFcEUsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQ3RDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFFbEUsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQ3RDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFFbEUsTUFBTSxZQUFZLEdBQUcsQ0FBQyxFQUFVLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFNUUsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDdEMsY0FBYyxFQUFFLENBQUMsRUFBVSxFQUFFLEVBQUUsQ0FBQyxHQUFHLGVBQWUsSUFBSSxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQUU7SUFDeEUsY0FBYyxFQUFFLENBQUMsRUFBVSxFQUFFLEVBQUUsQ0FBQyxHQUFHLGVBQWUsSUFBSSxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQUU7SUFDeEUsWUFBWTtJQUNaLGNBQWM7SUFDZCxjQUFjO0NBQ2YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgTEVWRUxfSURfUFJFRklYID0gJ0xFVkVMJztcbmNvbnN0IEdST1VQX0lEX1BSRUZJWCA9ICdPVV9HUk9VUCc7XG5leHBvcnQgY29uc3QgVVNFUl9PUkdfVU5JVCA9ICdVU0VSX09SR1VOSVQnO1xuZXhwb3J0IGNvbnN0IFVTRVJfT1JHX1VOSVRfQ0hJTERSRU4gPSAnVVNFUl9PUkdVTklUX0NISUxEUkVOJztcbmV4cG9ydCBjb25zdCBVU0VSX09SR19VTklUX0dSQU5EQ0hJTERSRU4gPSAnVVNFUl9PUkdVTklUX0dSQU5EQ0hJTERSRU4nO1xuXG5jb25zdCBoYXNHcm91cFByZWZpeCA9IChpZDogc3RyaW5nKSA9PlxuICBpZC5zdWJzdHIoMCwgR1JPVVBfSURfUFJFRklYLmxlbmd0aCkgPT09IEdST1VQX0lEX1BSRUZJWDtcblxuY29uc3QgaGFzTGV2ZWxQcmVmaXggPSAoaWQ6IHN0cmluZykgPT4gaWQuaW5jbHVkZXMoTEVWRUxfSURfUFJFRklYKTtcblxuY29uc3Qgc3RyaXBMZXZlbFByZWZpeCA9IChpZDogc3RyaW5nKSA9PlxuICBoYXNMZXZlbFByZWZpeChpZCkgPyBpZC5zdWJzdHIoTEVWRUxfSURfUFJFRklYLmxlbmd0aCArIDEpIDogaWQ7XG5cbmNvbnN0IHN0cmlwR3JvdXBQcmVmaXggPSAoaWQ6IHN0cmluZykgPT5cbiAgaGFzR3JvdXBQcmVmaXgoaWQpID8gaWQuc3Vic3RyKEdST1VQX0lEX1BSRUZJWC5sZW5ndGggKyAxKSA6IGlkO1xuXG5jb25zdCByZW1vdmVQcmVmaXggPSAoaWQ6IHN0cmluZykgPT4gc3RyaXBHcm91cFByZWZpeChzdHJpcExldmVsUHJlZml4KGlkKSk7XG5cbmV4cG9ydCBjb25zdCBvdUlkSGVscGVyID0gT2JqZWN0LmZyZWV6ZSh7XG4gIGFkZExldmVsUHJlZml4OiAoaWQ6IHN0cmluZykgPT4gYCR7TEVWRUxfSURfUFJFRklYfS0ke3JlbW92ZVByZWZpeChpZCl9YCxcbiAgYWRkR3JvdXBQcmVmaXg6IChpZDogc3RyaW5nKSA9PiBgJHtHUk9VUF9JRF9QUkVGSVh9LSR7cmVtb3ZlUHJlZml4KGlkKX1gLFxuICByZW1vdmVQcmVmaXgsXG4gIGhhc0dyb3VwUHJlZml4LFxuICBoYXNMZXZlbFByZWZpeCxcbn0pO1xuIl19
|
package/esm2022/lib/modules/organisation-unit-selector/components/utils/ouLevelUtils/index.mjs
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { DIMENSION_ID_ORGUNIT, dimensionGetItems, layoutGetDimension, layoutReplaceDimension, } from '../../../../../shared';
|
|
2
|
-
import { ouIdHelper } from '../ouIdHelper';
|
|
3
|
-
const isOuLevelIntId = (id) => ouIdHelper.hasLevelPrefix(id)
|
|
4
|
-
? Number.isInteger(parseInt(ouIdHelper.removePrefix(id), 10))
|
|
5
|
-
: false;
|
|
6
|
-
const replaceNumericOuLevelWithUid = (ouLevels) => (item) => {
|
|
7
|
-
if (!isOuLevelIntId(item.id)) {
|
|
8
|
-
return item;
|
|
9
|
-
}
|
|
10
|
-
const ouIntId = parseInt(ouIdHelper.removePrefix(item.id), 10);
|
|
11
|
-
const ouUid = ouLevels.find((l) => parseInt(l.level, 10) === ouIntId)?.id;
|
|
12
|
-
return ouUid
|
|
13
|
-
? Object.assign({}, item, { id: ouIdHelper.addLevelPrefix(ouUid) })
|
|
14
|
-
: item;
|
|
15
|
-
};
|
|
16
|
-
export const convertOuLevelsToUids = (ouLevels, layout) => {
|
|
17
|
-
const ouDimension = layoutGetDimension(layout, DIMENSION_ID_ORGUNIT);
|
|
18
|
-
const hasNumericOuLevels = ouDimension &&
|
|
19
|
-
dimensionGetItems(ouDimension).some((item) => isOuLevelIntId(item.id));
|
|
20
|
-
if (hasNumericOuLevels) {
|
|
21
|
-
const replaceNumericOuLevel = replaceNumericOuLevelWithUid(ouLevels);
|
|
22
|
-
const updatedOuItems = dimensionGetItems(ouDimension).map(replaceNumericOuLevel);
|
|
23
|
-
return layoutReplaceDimension(layout, DIMENSION_ID_ORGUNIT, updatedOuItems);
|
|
24
|
-
}
|
|
25
|
-
return layout;
|
|
26
|
-
};
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1kaGlzMi11aS9zcmMvbGliL21vZHVsZXMvb3JnYW5pc2F0aW9uLXVuaXQtc2VsZWN0b3IvY29tcG9uZW50cy91dGlscy9vdUxldmVsVXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLHNCQUFzQixHQUN2QixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsTUFBTSxjQUFjLEdBQUcsQ0FBQyxFQUFVLEVBQUUsRUFBRSxDQUNwQyxVQUFVLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztJQUMzQixDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDLENBQUMsS0FBSyxDQUFDO0FBRVosTUFBTSw0QkFBNEIsR0FBRyxDQUFDLFFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtJQUNwRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsSUFBSSxDQUN6QixDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssT0FBTyxDQUM5QyxFQUFFLEVBQUUsQ0FBQztJQUVOLE9BQU8sS0FBSztRQUNWLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ25FLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDWCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLFFBQWEsRUFBRSxNQUFXLEVBQUUsRUFBRTtJQUNsRSxNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztJQUVyRSxNQUFNLGtCQUFrQixHQUN0QixXQUFXO1FBQ1gsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFOUUsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0scUJBQXFCLEdBQUcsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFckUsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUN2RCxxQkFBcUIsQ0FDdEIsQ0FBQztRQUVGLE9BQU8sc0JBQXNCLENBQUMsTUFBTSxFQUFFLG9CQUFvQixFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBESU1FTlNJT05fSURfT1JHVU5JVCxcbiAgZGltZW5zaW9uR2V0SXRlbXMsXG4gIGxheW91dEdldERpbWVuc2lvbixcbiAgbGF5b3V0UmVwbGFjZURpbWVuc2lvbixcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkJztcblxuaW1wb3J0IHsgb3VJZEhlbHBlciB9IGZyb20gJy4uL291SWRIZWxwZXInO1xuXG5jb25zdCBpc091TGV2ZWxJbnRJZCA9IChpZDogc3RyaW5nKSA9PlxuICBvdUlkSGVscGVyLmhhc0xldmVsUHJlZml4KGlkKVxuICAgID8gTnVtYmVyLmlzSW50ZWdlcihwYXJzZUludChvdUlkSGVscGVyLnJlbW92ZVByZWZpeChpZCksIDEwKSlcbiAgICA6IGZhbHNlO1xuXG5jb25zdCByZXBsYWNlTnVtZXJpY091TGV2ZWxXaXRoVWlkID0gKG91TGV2ZWxzOiBhbnkpID0+IChpdGVtOiBhbnkpID0+IHtcbiAgaWYgKCFpc091TGV2ZWxJbnRJZChpdGVtLmlkKSkge1xuICAgIHJldHVybiBpdGVtO1xuICB9XG5cbiAgY29uc3Qgb3VJbnRJZCA9IHBhcnNlSW50KG91SWRIZWxwZXIucmVtb3ZlUHJlZml4KGl0ZW0uaWQpLCAxMCk7XG4gIGNvbnN0IG91VWlkID0gb3VMZXZlbHMuZmluZChcbiAgICAobDogYW55KSA9PiBwYXJzZUludChsLmxldmVsLCAxMCkgPT09IG91SW50SWRcbiAgKT8uaWQ7XG5cbiAgcmV0dXJuIG91VWlkXG4gICAgPyBPYmplY3QuYXNzaWduKHt9LCBpdGVtLCB7IGlkOiBvdUlkSGVscGVyLmFkZExldmVsUHJlZml4KG91VWlkKSB9KVxuICAgIDogaXRlbTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0T3VMZXZlbHNUb1VpZHMgPSAob3VMZXZlbHM6IGFueSwgbGF5b3V0OiBhbnkpID0+IHtcbiAgY29uc3Qgb3VEaW1lbnNpb24gPSBsYXlvdXRHZXREaW1lbnNpb24obGF5b3V0LCBESU1FTlNJT05fSURfT1JHVU5JVCk7XG5cbiAgY29uc3QgaGFzTnVtZXJpY091TGV2ZWxzID1cbiAgICBvdURpbWVuc2lvbiAmJlxuICAgIGRpbWVuc2lvbkdldEl0ZW1zKG91RGltZW5zaW9uKS5zb21lKChpdGVtOiBhbnkpID0+IGlzT3VMZXZlbEludElkKGl0ZW0uaWQpKTtcblxuICBpZiAoaGFzTnVtZXJpY091TGV2ZWxzKSB7XG4gICAgY29uc3QgcmVwbGFjZU51bWVyaWNPdUxldmVsID0gcmVwbGFjZU51bWVyaWNPdUxldmVsV2l0aFVpZChvdUxldmVscyk7XG5cbiAgICBjb25zdCB1cGRhdGVkT3VJdGVtcyA9IGRpbWVuc2lvbkdldEl0ZW1zKG91RGltZW5zaW9uKS5tYXAoXG4gICAgICByZXBsYWNlTnVtZXJpY091TGV2ZWxcbiAgICApO1xuXG4gICAgcmV0dXJuIGxheW91dFJlcGxhY2VEaW1lbnNpb24obGF5b3V0LCBESU1FTlNJT05fSURfT1JHVU5JVCwgdXBkYXRlZE91SXRlbXMpO1xuICB9XG5cbiAgcmV0dXJuIGxheW91dDtcbn07XG4iXX0=
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { Component, ElementRef, EventEmitter, Input, NgZone, Output, } from '@angular/core';
|
|
2
|
-
import { Provider } from '@dhis2/app-runtime';
|
|
3
|
-
import { NgxDhis2HttpClientService } from '@iapps/ngx-dhis2-http-client';
|
|
4
|
-
import React from 'react';
|
|
5
|
-
import * as ReactDOM from 'react-dom/client';
|
|
6
|
-
import { firstValueFrom, map } from 'rxjs';
|
|
7
|
-
import { ReactWrapperComponent } from '../../../react-wrapper';
|
|
8
|
-
import OrgUnitDimension from '../../components/OrgUnitDimension';
|
|
9
|
-
import { OrganisationUnitSelectionConfig, } from '../../models';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@iapps/ngx-dhis2-http-client";
|
|
12
|
-
export class OrganisationUnitSelectorComponent extends ReactWrapperComponent {
|
|
13
|
-
constructor(elementRef, httpClient, ngZone) {
|
|
14
|
-
super(elementRef);
|
|
15
|
-
this.httpClient = httpClient;
|
|
16
|
-
this.ngZone = ngZone;
|
|
17
|
-
this.selectedOrgUnits = [];
|
|
18
|
-
this.orgUnitSelectionConfig = new OrganisationUnitSelectionConfig();
|
|
19
|
-
this.selectOrgUnits = new EventEmitter();
|
|
20
|
-
this.props = {
|
|
21
|
-
onSelect: (e) => {
|
|
22
|
-
this.onSelectItems(e);
|
|
23
|
-
},
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
async ngAfterViewInit() {
|
|
27
|
-
if (!this.elementRef)
|
|
28
|
-
throw new Error('No element ref');
|
|
29
|
-
this.reactDomRoot = ReactDOM.createRoot(this.elementRef.nativeElement);
|
|
30
|
-
const rootOrgUnits = await this.getRootOrgUnits();
|
|
31
|
-
const config = await this.getAppConfig();
|
|
32
|
-
this.component = () => (React.createElement(Provider, { config: config }, React.createElement(OrgUnitDimension, { selected: this.selectedOrgUnits, hideGroupSelect: this.orgUnitSelectionConfig.hideGroupSelect, hideLevelSelect: this.orgUnitSelectionConfig.hideLevelSelect, hideUserOrgUnits: this.orgUnitSelectionConfig.hideUserOrgUnits, onSelect: (selectionEvent) => this.ngZone.run(() => {
|
|
33
|
-
this.onSelectItems(selectionEvent);
|
|
34
|
-
}), orgUnitGroupPromise: this.getOrgUnitGroups(), orgUnitLevelPromise: this.getOrgUnitLevels(), roots: rootOrgUnits })));
|
|
35
|
-
this.render();
|
|
36
|
-
}
|
|
37
|
-
async getAppConfig() {
|
|
38
|
-
const systemInfo = (await firstValueFrom(this.httpClient.systemInfo()));
|
|
39
|
-
return {
|
|
40
|
-
baseUrl: (document?.location?.host?.includes('localhost')
|
|
41
|
-
? `${document.location.protocol}//${document.location.host}`
|
|
42
|
-
: systemInfo['contextPath']),
|
|
43
|
-
apiVersion: Number(((systemInfo['version'] || '')?.split('.') || [])[1]),
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
getOrgUnitAttributeByUsage(usageType) {
|
|
47
|
-
switch (usageType) {
|
|
48
|
-
case 'DATA_ENTRY':
|
|
49
|
-
return 'organisationUnits';
|
|
50
|
-
case 'DATA_VIEW':
|
|
51
|
-
return 'dataViewOrganisationUnits';
|
|
52
|
-
default:
|
|
53
|
-
return 'organisationUnits';
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
getRootOrgUnits() {
|
|
57
|
-
const orgUnitAttribute = this.getOrgUnitAttributeByUsage(this.orgUnitSelectionConfig.usageType);
|
|
58
|
-
return firstValueFrom(this.httpClient
|
|
59
|
-
.me()
|
|
60
|
-
.pipe(map((user) => (user ? user[orgUnitAttribute] : []).map((orgUnit) => orgUnit.id))));
|
|
61
|
-
}
|
|
62
|
-
getOrgUnitGroups() {
|
|
63
|
-
return firstValueFrom(this.httpClient
|
|
64
|
-
.get('organisationUnitGroups.json?fields=id,displayName,name&paging=false')
|
|
65
|
-
.pipe(map((res) => res?.['organisationUnitGroups'])));
|
|
66
|
-
}
|
|
67
|
-
getOrgUnitLevels() {
|
|
68
|
-
return firstValueFrom(this.httpClient
|
|
69
|
-
.get('organisationUnitLevels.json?fields=id,level,displayName,name&paging=false')
|
|
70
|
-
.pipe(map((res) => res?.['organisationUnitLevels'])));
|
|
71
|
-
}
|
|
72
|
-
onSelectItems(selectionEvent) {
|
|
73
|
-
this.selectOrgUnits.emit(selectionEvent.items);
|
|
74
|
-
}
|
|
75
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: OrganisationUnitSelectorComponent, deps: [{ token: i0.ElementRef }, { token: i1.NgxDhis2HttpClientService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
76
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: OrganisationUnitSelectorComponent, selector: "ng-dhis2-ui-org-unit-selector", inputs: { selectedOrgUnits: "selectedOrgUnits", orgUnitSelectionConfig: "orgUnitSelectionConfig" }, outputs: { selectOrgUnits: "selectOrgUnits" }, usesInheritance: true, ngImport: i0, template: '<ng-container><ng-container>', isInline: true }); }
|
|
77
|
-
}
|
|
78
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: OrganisationUnitSelectorComponent, decorators: [{
|
|
79
|
-
type: Component,
|
|
80
|
-
args: [{
|
|
81
|
-
selector: 'ng-dhis2-ui-org-unit-selector',
|
|
82
|
-
template: '<ng-container><ng-container>',
|
|
83
|
-
}]
|
|
84
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.NgxDhis2HttpClientService }, { type: i0.NgZone }], propDecorators: { selectedOrgUnits: [{
|
|
85
|
-
type: Input
|
|
86
|
-
}], orgUnitSelectionConfig: [{
|
|
87
|
-
type: Input
|
|
88
|
-
}], selectOrgUnits: [{
|
|
89
|
-
type: Output
|
|
90
|
-
}] } });
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnYW5pc2F0aW9uLXVuaXQtc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctZGhpczItdWkvc3JjL2xpYi9tb2R1bGVzL29yZ2FuaXNhdGlvbi11bml0LXNlbGVjdG9yL2NvbnRhaW5lcnMvb3JnYW5pc2F0aW9uLXVuaXQtc2VsZWN0b3Ivb3JnYW5pc2F0aW9uLXVuaXQtc2VsZWN0b3IuY29tcG9uZW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBRSx5QkFBeUIsRUFBUSxNQUFNLDhCQUE4QixDQUFDO0FBQy9FLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEtBQUssUUFBUSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sZ0JBQWdCLE1BQU0sbUNBQW1DLENBQUM7QUFDakUsT0FBTyxFQUNMLCtCQUErQixHQUVoQyxNQUFNLGNBQWMsQ0FBQzs7O0FBV3RCLE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxxQkFBcUI7SUFhMUUsWUFDRSxVQUFtQyxFQUMzQixVQUFxQyxFQUNyQyxNQUFjO1FBRXRCLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUhWLGVBQVUsR0FBVixVQUFVLENBQTJCO1FBQ3JDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFmZixxQkFBZ0IsR0FBVSxFQUFFLENBQUM7UUFDN0Is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LE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSAnQGRoaXMyL2FwcC1ydW50aW1lJztcbmltcG9ydCB7IE5neERoaXMySHR0cENsaWVudFNlcnZpY2UsIFVzZXIgfSBmcm9tICdAaWFwcHMvbmd4LWRoaXMyLWh0dHAtY2xpZW50JztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgKiBhcyBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20vY2xpZW50JztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tLCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJlYWN0V3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3JlYWN0LXdyYXBwZXInO1xuaW1wb3J0IE9yZ1VuaXREaW1lbnNpb24gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9PcmdVbml0RGltZW5zaW9uJztcbmltcG9ydCB7XG4gIE9yZ2FuaXNhdGlvblVuaXRTZWxlY3Rpb25Db25maWcsXG4gIE9yZ2FuaXNhdGlvblVuaXRTZWxlY3Rpb25Vc2FnZVR5cGUsXG59IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbnR5cGUgT3JnYW5pc2F0aW9uVW5pdFNlbGVjdGlvbkV2ZW50ID0ge1xuICBkaW1lbnNpb25JZDogc3RyaW5nO1xuICBpdGVtczogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXTtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLWRoaXMyLXVpLW9yZy11bml0LXNlbGVjdG9yJyxcbiAgdGVtcGxhdGU6ICc8bmctY29udGFpbmVyPjxuZy1jb250YWluZXI+Jyxcbn0pXG5leHBvcnQgY2xhc3MgT3JnYW5pc2F0aW9uVW5pdFNlbGVjdG9yQ29tcG9uZW50IGV4dGVuZHMgUmVhY3RXcmFwcGVyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgc2VsZWN0ZWRPcmdVbml0czogYW55W10gPSBbXTtcbiAgQElucHV0KCkgb3JnVW5pdFNlbGVjdGlvbkNvbmZpZzogT3JnYW5pc2F0aW9uVW5pdFNlbGVjdGlvbkNvbmZpZyA9XG4gICAgbmV3IE9yZ2FuaXNhdGlvblVuaXRTZWxlY3Rpb25Db25maWcoKTtcblxuICBAT3V0cHV0KCkgc2VsZWN0T3JnVW5pdHMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgb3ZlcnJpZGUgcHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgIG9uU2VsZWN0OiAoZTogYW55KSA9PiB7XG4gICAgICB0aGlzLm9uU2VsZWN0SXRlbXMoZSk7XG4gICAgfSxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IE5neERoaXMySHR0cENsaWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZVxuICApIHtcbiAgICBzdXBlcihlbGVtZW50UmVmKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuZWxlbWVudFJlZikgdGhyb3cgbmV3IEVycm9yKCdObyBlbGVtZW50IHJlZicpO1xuICAgIHRoaXMucmVhY3REb21Sb290ID0gUmVhY3RET00uY3JlYXRlUm9vdCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgY29uc3Qgcm9vdE9yZ1VuaXRzID0gYXdhaXQgdGhpcy5nZXRSb290T3JnVW5pdHMoKTtcblxuICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IHRoaXMuZ2V0QXBwQ29uZmlnKCk7XG5cbiAgICB0aGlzLmNvbXBvbmVudCA9ICgpID0+IChcbiAgICAgIDxQcm92aWRlciBjb25maWc9e2NvbmZpZ30+XG4gICAgICAgIHtcbiAgICAgICAgICA8T3JnVW5pdERpbWVuc2lvblxuICAgICAgICAgICAgc2VsZWN0ZWQ9e3RoaXMuc2VsZWN0ZWRPcmdVbml0c31cbiAgICAgICAgICAgIGhpZGVHcm91cFNlbGVjdD17dGhpcy5vcmdVbml0U2VsZWN0aW9uQ29uZmlnLmhpZGVHcm91cFNlbGVjdH1cbiAgICAgICAgICAgIGhpZGVMZXZlbFNlbGVjdD17dGhpcy5vcmdVbml0U2VsZWN0aW9uQ29uZmlnLmhpZGVMZXZlbFNlbGVjdH1cbiAgICAgICAgICAgIGhpZGVVc2VyT3JnVW5pdHM9e3RoaXMub3JnVW5pdFNlbGVjdGlvbkNvbmZpZy5oaWRlVXNlck9yZ1VuaXRzfVxuICAgICAgICAgICAgb25TZWxlY3Q9eyhzZWxlY3Rpb25FdmVudDogT3JnYW5pc2F0aW9uVW5pdFNlbGVjdGlvbkV2ZW50KSA9PlxuICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub25TZWxlY3RJdGVtcyhzZWxlY3Rpb25FdmVudCk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcmdVbml0R3JvdXBQcm9taXNlPXt0aGlzLmdldE9yZ1VuaXRHcm91cHMoKX1cbiAgICAgICAgICAgIG9yZ1VuaXRMZXZlbFByb21pc2U9e3RoaXMuZ2V0T3JnVW5pdExldmVscygpfVxuICAgICAgICAgICAgcm9vdHM9e3Jvb3RPcmdVbml0c31cbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICA8L1Byb3ZpZGVyPlxuICAgICk7XG5cbiAgICB0aGlzLnJlbmRlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRBcHBDb25maWcoKSB7XG4gICAgY29uc3Qgc3lzdGVtSW5mbyA9IChhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgIHRoaXMuaHR0cENsaWVudC5zeXN0ZW1JbmZvKClcbiAgICApKSBhcyB1bmtub3duIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGJhc2VVcmw6IChkb2N1bWVudD8ubG9jYXRpb24/Lmhvc3Q/LmluY2x1ZGVzKCdsb2NhbGhvc3QnKVxuICAgICAgICA/IGAke2RvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sfS8vJHtkb2N1bWVudC5sb2NhdGlvbi5ob3N0fWBcbiAgICAgICAgOiBzeXN0ZW1JbmZvWydjb250ZXh0UGF0aCddKSBhcyBzdHJpbmcsXG4gICAgICBhcGlWZXJzaW9uOiBOdW1iZXIoXG4gICAgICAgICgoKHN5c3RlbUluZm9bJ3ZlcnNpb24nXSBhcyBzdHJpbmcpIHx8ICcnKT8uc3BsaXQoJy4nKSB8fCBbXSlbMV1cbiAgICAgICksXG4gICAgfTtcbiAgfVxuXG4gIGdldE9yZ1VuaXRBdHRyaWJ1dGVCeVVzYWdlKHVzYWdlVHlwZTogT3JnYW5pc2F0aW9uVW5pdFNlbGVjdGlvblVzYWdlVHlwZSkge1xuICAgIHN3aXRjaCAodXNhZ2VUeXBlKSB7XG4gICAgICBjYXNlICdEQVRBX0VOVFJZJzpcbiAgICAgICAgcmV0dXJuICdvcmdhbmlzYXRpb25Vbml0cyc7XG5cbiAgICAgIGNhc2UgJ0RBVEFfVklFVyc6XG4gICAgICAgIHJldHVybiAnZGF0YVZpZXdPcmdhbmlzYXRpb25Vbml0cyc7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnb3JnYW5pc2F0aW9uVW5pdHMnO1xuICAgIH1cbiAgfVxuXG4gIGdldFJvb3RPcmdVbml0cygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgY29uc3Qgb3JnVW5pdEF0dHJpYnV0ZSA9IHRoaXMuZ2V0T3JnVW5pdEF0dHJpYnV0ZUJ5VXNhZ2UoXG4gICAgICB0aGlzLm9yZ1VuaXRTZWxlY3Rpb25Db25maWcudXNhZ2VUeXBlXG4gICAgKTtcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgLm1lKClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKCh1c2VyOiBVc2VyKSA9PlxuICAgICAgICAgICAgKHVzZXIgPyB1c2VyW29yZ1VuaXRBdHRyaWJ1dGVdIDogW10pLm1hcCgob3JnVW5pdCkgPT4gb3JnVW5pdC5pZClcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICApO1xuICB9XG5cbiAgZ2V0T3JnVW5pdEdyb3VwcygpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbShcbiAgICAgIHRoaXMuaHR0cENsaWVudFxuICAgICAgICAuZ2V0KFxuICAgICAgICAgICdvcmdhbmlzYXRpb25Vbml0R3JvdXBzLmpzb24/ZmllbGRzPWlkLGRpc3BsYXlOYW1lLG5hbWUmcGFnaW5nPWZhbHNlJ1xuICAgICAgICApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgocmVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gcmVzPy5bJ29yZ2FuaXNhdGlvblVuaXRHcm91cHMnXSlcbiAgICAgICAgKVxuICAgICk7XG4gIH1cblxuICBnZXRPcmdVbml0TGV2ZWxzKCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy5odHRwQ2xpZW50XG4gICAgICAgIC5nZXQoXG4gICAgICAgICAgJ29yZ2FuaXNhdGlvblVuaXRMZXZlbHMuanNvbj9maWVsZHM9aWQsbGV2ZWwsZGlzcGxheU5hbWUsbmFtZSZwYWdpbmc9ZmFsc2UnXG4gICAgICAgIClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChyZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiByZXM/Llsnb3JnYW5pc2F0aW9uVW5pdExldmVscyddKVxuICAgICAgICApXG4gICAgKTtcbiAgfVxuXG4gIG9uU2VsZWN0SXRlbXMoc2VsZWN0aW9uRXZlbnQ6IE9yZ2FuaXNhdGlvblVuaXRTZWxlY3Rpb25FdmVudCkge1xuICAgIHRoaXMuc2VsZWN0T3JnVW5pdHMuZW1pdChzZWxlY3Rpb25FdmVudC5pdGVtcyk7XG4gIH1cbn1cbiJdfQ==
|