@dhis2/analytics 24.5.0 → 24.7.0
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/CHANGELOG.md +16 -2
- package/build/cjs/__demo__/OrgUnitDimension.stories.js +40 -1
- package/build/cjs/components/OrgUnitDimension/OrgUnitDimension.js +25 -8
- package/build/cjs/components/OrgUnitDimension/styles/OrgUnitDimension.style.js +2 -2
- package/build/cjs/components/PeriodDimension/PeriodTransfer.js +4 -16
- package/build/cjs/components/PeriodDimension/utils/fixedPeriods.js +478 -204
- package/build/cjs/locales/en/translations.json +14 -0
- package/build/cjs/visualizations/config/generators/dhis/singleValue.js +76 -23
- package/build/cjs/visualizations/config/index.js +2 -1
- package/build/es/__demo__/OrgUnitDimension.stories.js +40 -1
- package/build/es/components/OrgUnitDimension/OrgUnitDimension.js +26 -9
- package/build/es/components/OrgUnitDimension/styles/OrgUnitDimension.style.js +2 -2
- package/build/es/components/PeriodDimension/PeriodTransfer.js +4 -14
- package/build/es/components/PeriodDimension/utils/fixedPeriods.js +477 -202
- package/build/es/locales/en/translations.json +14 -0
- package/build/es/visualizations/config/generators/dhis/singleValue.js +79 -26
- package/build/es/visualizations/config/index.js +2 -1
- package/package.json +1 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,9 +1,23 @@
|
|
|
1
|
-
# [24.
|
|
1
|
+
# [24.7.0](https://github.com/dhis2/analytics/compare/v24.6.0...v24.7.0) (2023-02-15)
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
### Features
|
|
5
5
|
|
|
6
|
-
*
|
|
6
|
+
* new props for customising OrgUnitDimension DHIS2-14744 ([#1427](https://github.com/dhis2/analytics/issues/1427)) ([ae2f886](https://github.com/dhis2/analytics/commit/ae2f886167a487271bf42c2f4c694e45ea4b25b3))
|
|
7
|
+
|
|
8
|
+
# [24.6.0](https://github.com/dhis2/analytics/compare/v24.5.0...v24.6.0) (2023-02-13)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* single value background color change based upon legend (DHIS2-13702) ([#1402](https://github.com/dhis2/analytics/issues/1402)) ([ad437c6](https://github.com/dhis2/analytics/commit/ad437c6a1fcbcb71cee7b6945c6bc83ed2bc3bb3))
|
|
14
|
+
|
|
15
|
+
# [24.5.0](https://github.com/dhis2/analytics/compare/v24.4.2...v24.5.0) (2023-02-06)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
* [reverted] use multi-calendar-dates library to generate fixed periods ([acc3801](https://github.com/dhis2/analytics/commit/acc380156092f888cfa55f70b4bade1c6516d034)). This work was added to "next" release channel, but was reverted afterwards because of the restrictions "next" channel puts on what can be released from master afterwards. It will be added to "alpha" channel instead until it's ready for the main channel.
|
|
7
21
|
|
|
8
22
|
## [24.4.2](https://github.com/dhis2/analytics/compare/v24.4.1...v24.4.2) (2023-01-25)
|
|
9
23
|
|
|
@@ -15,7 +15,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
15
15
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
16
16
|
|
|
17
17
|
const Wrapper = story => /*#__PURE__*/_react2.default.createElement(_appRuntime.DataProvider, {
|
|
18
|
-
baseUrl: "
|
|
18
|
+
baseUrl: "https://debug.dhis2.org/analytics-dev/",
|
|
19
19
|
apiVersion: ""
|
|
20
20
|
}, story());
|
|
21
21
|
|
|
@@ -101,4 +101,43 @@ const defaultRootOrgUnits = ['ImspTQPwCqd']; // Sierra Leone
|
|
|
101
101
|
roots: ['O6uvpzGd5pu', 'fdc6uOvgoji'] // Bo + Bombali
|
|
102
102
|
|
|
103
103
|
});
|
|
104
|
+
});
|
|
105
|
+
(0, _react.storiesOf)('OrgUnitDimension', module).addDecorator(Wrapper).add('Without level selector', () => {
|
|
106
|
+
const [selected, setSelected] = (0, _react2.useState)([]);
|
|
107
|
+
return /*#__PURE__*/_react2.default.createElement(_OrgUnitDimension.default, {
|
|
108
|
+
hideLevelSelect: true,
|
|
109
|
+
selected: selected,
|
|
110
|
+
onSelect: response => setSelected(response.items),
|
|
111
|
+
roots: defaultRootOrgUnits
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
(0, _react.storiesOf)('OrgUnitDimension', module).addDecorator(Wrapper).add('Without group selector', () => {
|
|
115
|
+
const [selected, setSelected] = (0, _react2.useState)([]);
|
|
116
|
+
return /*#__PURE__*/_react2.default.createElement(_OrgUnitDimension.default, {
|
|
117
|
+
hideGroupSelect: true,
|
|
118
|
+
selected: selected,
|
|
119
|
+
onSelect: response => setSelected(response.items),
|
|
120
|
+
roots: defaultRootOrgUnits
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
(0, _react.storiesOf)('OrgUnitDimension', module).addDecorator(Wrapper).add('Without level and group selector', () => {
|
|
124
|
+
const [selected, setSelected] = (0, _react2.useState)([]);
|
|
125
|
+
return /*#__PURE__*/_react2.default.createElement(_OrgUnitDimension.default, {
|
|
126
|
+
hideLevelSelect: true,
|
|
127
|
+
hideGroupSelect: true,
|
|
128
|
+
selected: selected,
|
|
129
|
+
onSelect: response => setSelected(response.items),
|
|
130
|
+
roots: defaultRootOrgUnits
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
(0, _react.storiesOf)('OrgUnitDimension', module).addDecorator(Wrapper).add('Without level and group selector, with warning text', () => {
|
|
134
|
+
const [selected, setSelected] = (0, _react2.useState)([]);
|
|
135
|
+
return /*#__PURE__*/_react2.default.createElement(_OrgUnitDimension.default, {
|
|
136
|
+
hideLevelSelect: true,
|
|
137
|
+
hideGroupSelect: true,
|
|
138
|
+
selected: selected,
|
|
139
|
+
onSelect: response => setSelected(response.items),
|
|
140
|
+
roots: defaultRootOrgUnits,
|
|
141
|
+
warning: 'No org. units selected'
|
|
142
|
+
});
|
|
104
143
|
});
|
|
@@ -41,7 +41,10 @@ const OrgUnitDimension = _ref => {
|
|
|
41
41
|
let {
|
|
42
42
|
roots,
|
|
43
43
|
selected,
|
|
44
|
-
onSelect
|
|
44
|
+
onSelect,
|
|
45
|
+
hideGroupSelect,
|
|
46
|
+
hideLevelSelect,
|
|
47
|
+
warning
|
|
45
48
|
} = _ref;
|
|
46
49
|
const [ouLevels, setOuLevels] = (0, _react.useState)([]);
|
|
47
50
|
const [ouGroups, setOuGroups] = (0, _react.useState)([]);
|
|
@@ -94,9 +97,9 @@ const OrgUnitDimension = _ref => {
|
|
|
94
97
|
setOuGroups(result);
|
|
95
98
|
};
|
|
96
99
|
|
|
97
|
-
doFetchOuLevels();
|
|
98
|
-
doFetchOuGroups();
|
|
99
|
-
}, [dataEngine]);
|
|
100
|
+
!hideLevelSelect && doFetchOuLevels();
|
|
101
|
+
!hideGroupSelect && doFetchOuGroups();
|
|
102
|
+
}, [dataEngine, hideLevelSelect, hideGroupSelect]);
|
|
100
103
|
|
|
101
104
|
const onLevelChange = ids => {
|
|
102
105
|
const items = ids.map(id => ({
|
|
@@ -227,9 +230,10 @@ const OrgUnitDimension = _ref => {
|
|
|
227
230
|
dataTest: 'org-unit-tree'
|
|
228
231
|
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
229
232
|
className: "jsx-".concat(_OrgUnitDimensionStyle.default.__hash) + " " + ((0, _classnames.default)('selectsWrapper', {
|
|
230
|
-
disabled: selected.some(item => DYNAMIC_ORG_UNITS.includes(item.id))
|
|
233
|
+
disabled: selected.some(item => DYNAMIC_ORG_UNITS.includes(item.id)),
|
|
234
|
+
hidden: hideLevelSelect && hideGroupSelect
|
|
231
235
|
}) || "")
|
|
232
|
-
}, /*#__PURE__*/_react.default.createElement(_ui.MultiSelect, {
|
|
236
|
+
}, !hideLevelSelect && /*#__PURE__*/_react.default.createElement(_ui.MultiSelect, {
|
|
233
237
|
selected: ouLevels.length ? selected.filter(item => _index2.ouIdHelper.hasLevelPrefix(item.id)).map(item => _index2.ouIdHelper.removePrefix(item.id)) : [],
|
|
234
238
|
onChange: _ref5 => {
|
|
235
239
|
let {
|
|
@@ -246,7 +250,7 @@ const OrgUnitDimension = _ref => {
|
|
|
246
250
|
value: level.id,
|
|
247
251
|
label: level.displayName,
|
|
248
252
|
dataTest: "org-unit-level-select-option-".concat(level.id)
|
|
249
|
-
}))), /*#__PURE__*/_react.default.createElement(_ui.MultiSelect, {
|
|
253
|
+
}))), !hideGroupSelect && /*#__PURE__*/_react.default.createElement(_ui.MultiSelect, {
|
|
250
254
|
selected: ouGroups.length ? selected.filter(item => _index2.ouIdHelper.hasGroupPrefix(item.id)).map(item => _index2.ouIdHelper.removePrefix(item.id)) : [],
|
|
251
255
|
onChange: _ref6 => {
|
|
252
256
|
let {
|
|
@@ -265,7 +269,13 @@ const OrgUnitDimension = _ref => {
|
|
|
265
269
|
dataTest: "org-unit-group-select-option-".concat(group.id)
|
|
266
270
|
})))), /*#__PURE__*/_react.default.createElement("div", {
|
|
267
271
|
className: "jsx-".concat(_OrgUnitDimensionStyle.default.__hash) + " " + "summaryWrapper"
|
|
268
|
-
}, /*#__PURE__*/_react.default.createElement("
|
|
272
|
+
}, warning ? /*#__PURE__*/_react.default.createElement("div", {
|
|
273
|
+
className: "jsx-".concat(_OrgUnitDimensionStyle.default.__hash) + " " + "warningWrapper"
|
|
274
|
+
}, /*#__PURE__*/_react.default.createElement(_ui.IconWarningFilled16, {
|
|
275
|
+
color: _ui.colors.red500
|
|
276
|
+
}), /*#__PURE__*/_react.default.createElement("span", {
|
|
277
|
+
className: "jsx-".concat(_OrgUnitDimensionStyle.default.__hash) + " " + "warningText"
|
|
278
|
+
}, warning)) : /*#__PURE__*/_react.default.createElement("span", {
|
|
269
279
|
className: "jsx-".concat(_OrgUnitDimensionStyle.default.__hash) + " " + "summaryText"
|
|
270
280
|
}, getSummary()), /*#__PURE__*/_react.default.createElement("div", {
|
|
271
281
|
className: "jsx-".concat(_OrgUnitDimensionStyle.default.__hash) + " " + "deselectButton"
|
|
@@ -279,13 +289,20 @@ const OrgUnitDimension = _ref => {
|
|
|
279
289
|
}, _OrgUnitDimensionStyle.default));
|
|
280
290
|
};
|
|
281
291
|
|
|
292
|
+
OrgUnitDimension.defaultProps = {
|
|
293
|
+
hideGroupSelect: false,
|
|
294
|
+
hideLevelSelect: false
|
|
295
|
+
};
|
|
282
296
|
OrgUnitDimension.propTypes = {
|
|
297
|
+
hideGroupSelect: _propTypes.default.bool,
|
|
298
|
+
hideLevelSelect: _propTypes.default.bool,
|
|
283
299
|
roots: _propTypes.default.arrayOf(_propTypes.default.string),
|
|
284
300
|
selected: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
285
301
|
id: _propTypes.default.string.isRequired,
|
|
286
302
|
name: _propTypes.default.string.isRequired,
|
|
287
303
|
path: _propTypes.default.string
|
|
288
304
|
})),
|
|
305
|
+
warning: _propTypes.default.string,
|
|
289
306
|
onSelect: _propTypes.default.func
|
|
290
307
|
};
|
|
291
308
|
var _default = OrgUnitDimension;
|
|
@@ -7,7 +7,7 @@ exports.default = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _ui = require("@dhis2/ui");
|
|
9
9
|
|
|
10
|
-
const _defaultExport = [".container.jsx-
|
|
11
|
-
_defaultExport.__hash = "
|
|
10
|
+
const _defaultExport = [".container.jsx-2348205733{height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}", ".orgUnitTreeWrapper.jsx-2348205733{height:382px;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;overflow:auto;}", ".orgUnitTreeWrapper.jsx-2348205733>*{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}", ".disabled.jsx-2348205733{cursor:not-allowed;opacity:0.5;}", ".disabled.jsx-2348205733>*{pointer-events:none;}", ".userOrgUnitsWrapper.jsx-2348205733{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;background:".concat(_ui.colors.grey200, ";padding:").concat(_ui.spacers.dp8, " ").concat(_ui.spacers.dp8, " ").concat(_ui.spacers.dp8, " ").concat(_ui.spacers.dp24, ";margin-bottom:").concat(_ui.spacers.dp12, ";}"), ".userOrgUnitsWrapper.jsx-2348205733>*{margin-right:".concat(_ui.spacers.dp48, ";}"), ".selectsWrapper.jsx-2348205733{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;gap:".concat(_ui.spacers.dp8, ";margin-top:").concat(_ui.spacers.dp12, ";}"), ".selectsWrapper.hidden.jsx-2348205733{display:none;}", ".selectsWrapper.jsx-2348205733>*{width:50%;}", ".summaryWrapper.jsx-2348205733{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:".concat(_ui.spacers.dp8, ";}"), ".warningWrapper.jsx-2348205733{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}", ".warningText.jsx-2348205733{margin-left:".concat(_ui.spacers.dp8, ";font-size:14px;line-height:18px;color:").concat(_ui.colors.red600, ";}"), ".summaryText.jsx-2348205733{font-size:14px;line-height:18px;color:".concat(_ui.colors.grey700, ";}"), ".deselectButton.jsx-2348205733{display:inline-block;margin-left:".concat(_ui.spacers.dp8, ";}")];
|
|
11
|
+
_defaultExport.__hash = "2348205733";
|
|
12
12
|
var _default = _defaultExport;
|
|
13
13
|
exports.default = _default;
|
|
@@ -7,10 +7,6 @@ exports.default = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _style = _interopRequireDefault(require("styled-jsx/style"));
|
|
9
9
|
|
|
10
|
-
var _appRuntime = require("@dhis2/app-runtime");
|
|
11
|
-
|
|
12
|
-
var _multiCalendarDates = require("@dhis2/multi-calendar-dates");
|
|
13
|
-
|
|
14
10
|
var _ui = require("@dhis2/ui");
|
|
15
11
|
|
|
16
12
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
@@ -53,17 +49,9 @@ const PeriodTransfer = _ref => {
|
|
|
53
49
|
rightFooter,
|
|
54
50
|
excludedPeriodTypes
|
|
55
51
|
} = _ref;
|
|
56
|
-
const {
|
|
57
|
-
systemInfo = {}
|
|
58
|
-
} = (0, _appRuntime.useConfig)();
|
|
59
|
-
const {
|
|
60
|
-
calendar = 'gregory'
|
|
61
|
-
} = systemInfo;
|
|
62
52
|
const defaultRelativePeriodType = excludedPeriodTypes.includes(_index2.MONTHLY) ? (0, _relativePeriods.getRelativePeriodsOptionsById)(_index2.QUARTERLY) : (0, _relativePeriods.getRelativePeriodsOptionsById)(_index2.MONTHLY);
|
|
63
|
-
const defaultFixedPeriodType = excludedPeriodTypes.includes(_index2.MONTHLY) ? (0, _fixedPeriods.getFixedPeriodsOptionsById)(_index2.QUARTERLY
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
const defaultFixedPeriodYear = (0, _multiCalendarDates.getNowInCalendar)(calendar).eraYear;
|
|
53
|
+
const defaultFixedPeriodType = excludedPeriodTypes.includes(_index2.MONTHLY) ? (0, _fixedPeriods.getFixedPeriodsOptionsById)(_index2.QUARTERLY) : (0, _fixedPeriods.getFixedPeriodsOptionsById)(_index2.MONTHLY);
|
|
54
|
+
const defaultFixedPeriodYear = new Date().getFullYear();
|
|
67
55
|
|
|
68
56
|
const fixedPeriodConfig = year => ({
|
|
69
57
|
offset: year - defaultFixedPeriodYear,
|
|
@@ -85,7 +73,7 @@ const PeriodTransfer = _ref => {
|
|
|
85
73
|
const onIsRelativeClick = state => {
|
|
86
74
|
if (state !== isRelative) {
|
|
87
75
|
setIsRelative(state);
|
|
88
|
-
setAllPeriods(state ? (0, _relativePeriods.getRelativePeriodsOptionsById)(relativeFilter.periodType).getPeriods() : (0, _fixedPeriods.getFixedPeriodsOptionsById)(fixedFilter.periodType
|
|
76
|
+
setAllPeriods(state ? (0, _relativePeriods.getRelativePeriodsOptionsById)(relativeFilter.periodType).getPeriods() : (0, _fixedPeriods.getFixedPeriodsOptionsById)(fixedFilter.periodType).getPeriods(fixedPeriodConfig(Number(fixedFilter.year))));
|
|
89
77
|
}
|
|
90
78
|
};
|
|
91
79
|
|
|
@@ -138,7 +126,7 @@ const PeriodTransfer = _ref => {
|
|
|
138
126
|
|
|
139
127
|
const onSelectFixedPeriods = filter => {
|
|
140
128
|
setFixedFilter(filter);
|
|
141
|
-
setAllPeriods((0, _fixedPeriods.getFixedPeriodsOptionsById)(filter.periodType
|
|
129
|
+
setAllPeriods((0, _fixedPeriods.getFixedPeriodsOptionsById)(filter.periodType).getPeriods(fixedPeriodConfig(Number(filter.year))));
|
|
142
130
|
};
|
|
143
131
|
|
|
144
132
|
const renderEmptySelection = () => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("p", {
|