@dhis2/analytics 23.13.11 → 24.0.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 +26 -0
- package/build/cjs/components/AboutAOUnit/AboutAOUnit.js +15 -9
- package/build/cjs/components/AboutAOUnit/utils.js +48 -0
- package/build/cjs/locales/en/translations.json +4 -1
- package/build/cjs/locales/uk/translations.json +36 -36
- package/build/es/components/AboutAOUnit/AboutAOUnit.js +14 -9
- package/build/es/components/AboutAOUnit/utils.js +31 -0
- package/build/es/locales/en/translations.json +4 -1
- package/build/es/locales/uk/translations.json +36 -36
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,29 @@
|
|
|
1
|
+
# [24.0.0](https://github.com/dhis2/analytics/compare/v23.13.13...v24.0.0) (2022-08-22)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* add support for Maps app (LIBS-339) ([#1322](https://github.com/dhis2/analytics/issues/1322)) ([b92717d](https://github.com/dhis2/analytics/commit/b92717d941d7bdb15394cecd663fa7fa9b1a57f2))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### BREAKING CHANGES
|
|
10
|
+
|
|
11
|
+
* the type prop changed from the plural version to the singular, this requires updating the apps that use the AboutAOUnit component.
|
|
12
|
+
|
|
13
|
+
## [23.13.13](https://github.com/dhis2/analytics/compare/v23.13.12...v23.13.13) (2022-08-22)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
* **translations:** sync translations from transifex (master) ([ec34ef7](https://github.com/dhis2/analytics/commit/ec34ef755b02dead5661fa1997db4271812c8134))
|
|
19
|
+
|
|
20
|
+
## [23.13.12](https://github.com/dhis2/analytics/compare/v23.13.11...v23.13.12) (2022-08-20)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### Bug Fixes
|
|
24
|
+
|
|
25
|
+
* **translations:** sync translations from transifex (master) ([2e23732](https://github.com/dhis2/analytics/commit/2e237327df8ab7d3aa2b1414329260fb55e07500))
|
|
26
|
+
|
|
1
27
|
## [23.13.11](https://github.com/dhis2/analytics/compare/v23.13.10...v23.13.11) (2022-08-19)
|
|
2
28
|
|
|
3
29
|
|
|
@@ -25,6 +25,8 @@ var _list = require("../../modules/list.js");
|
|
|
25
25
|
|
|
26
26
|
var _AboutAOUnitStyle = _interopRequireDefault(require("./styles/AboutAOUnit.style.js"));
|
|
27
27
|
|
|
28
|
+
var _utils = require("./utils.js");
|
|
29
|
+
|
|
28
30
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
29
31
|
|
|
30
32
|
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; }
|
|
@@ -36,7 +38,7 @@ const READ_AND_WRITE = 'rw';
|
|
|
36
38
|
|
|
37
39
|
const getQueries = type => ({
|
|
38
40
|
ao: {
|
|
39
|
-
resource: type,
|
|
41
|
+
resource: _utils.AOTypeMap[type].apiEndpoint,
|
|
40
42
|
id: _ref => {
|
|
41
43
|
let {
|
|
42
44
|
id
|
|
@@ -59,22 +61,24 @@ const getQueries = type => ({
|
|
|
59
61
|
});
|
|
60
62
|
|
|
61
63
|
const getSubscribeMutation = (type, id) => ({
|
|
62
|
-
resource: "".concat(type, "/").concat(id, "/subscriber"),
|
|
64
|
+
resource: "".concat(_utils.AOTypeMap[type].apiEndpoint, "/").concat(id, "/subscriber"),
|
|
63
65
|
type: 'create'
|
|
64
66
|
});
|
|
65
67
|
|
|
66
68
|
const getUnsubscribeMutation = (type, id) => ({
|
|
67
|
-
resource: "".concat(type, "/").concat(id, "/subscriber"),
|
|
69
|
+
resource: "".concat(_utils.AOTypeMap[type].apiEndpoint, "/").concat(id, "/subscriber"),
|
|
68
70
|
type: 'delete'
|
|
69
71
|
});
|
|
70
72
|
|
|
71
73
|
const AboutAOUnit = _ref3 => {
|
|
74
|
+
var _data$ao$createdBy;
|
|
75
|
+
|
|
72
76
|
let {
|
|
73
77
|
type,
|
|
74
78
|
id
|
|
75
79
|
} = _ref3;
|
|
76
80
|
const [isExpanded, setIsExpanded] = (0, _react.useState)(true);
|
|
77
|
-
const queries = (0, _react.useMemo)(() => getQueries(type), []);
|
|
81
|
+
const queries = (0, _react.useMemo)(() => getQueries(type), [type]);
|
|
78
82
|
const {
|
|
79
83
|
data,
|
|
80
84
|
loading: dataIsLoading,
|
|
@@ -82,8 +86,8 @@ const AboutAOUnit = _ref3 => {
|
|
|
82
86
|
} = (0, _appRuntime.useDataQuery)(queries, {
|
|
83
87
|
lazy: true
|
|
84
88
|
});
|
|
85
|
-
const subscribeMutation = (0, _react.useMemo)(() => getSubscribeMutation(type, id), []);
|
|
86
|
-
const unsubscribeMutation = (0, _react.useMemo)(() => getUnsubscribeMutation(type, id), []);
|
|
89
|
+
const subscribeMutation = (0, _react.useMemo)(() => getSubscribeMutation(type, id), [type, id]);
|
|
90
|
+
const unsubscribeMutation = (0, _react.useMemo)(() => getUnsubscribeMutation(type, id), [type, id]);
|
|
87
91
|
const [subscribe, {
|
|
88
92
|
loading: subscribeIsLoading
|
|
89
93
|
}] = (0, _appRuntime.useDataMutation)(subscribeMutation, {
|
|
@@ -112,7 +116,7 @@ const AboutAOUnit = _ref3 => {
|
|
|
112
116
|
id
|
|
113
117
|
});
|
|
114
118
|
}
|
|
115
|
-
}, [
|
|
119
|
+
}, [id, refetch]);
|
|
116
120
|
|
|
117
121
|
const getAccessLevelString = access => {
|
|
118
122
|
const re = new RegExp("(?<accessLevel>".concat(READ_AND_WRITE, "?)"));
|
|
@@ -159,7 +163,7 @@ const AboutAOUnit = _ref3 => {
|
|
|
159
163
|
className: "jsx-".concat(_AboutAOUnitStyle.default.__hash) + " " + "header"
|
|
160
164
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
161
165
|
className: "jsx-".concat(_AboutAOUnitStyle.default.__hash) + " " + "title"
|
|
162
|
-
},
|
|
166
|
+
}, (0, _utils.getTranslatedString)(type, 'unitTitle')), isExpanded ? /*#__PURE__*/_react.default.createElement(_ui.IconChevronUp24, {
|
|
163
167
|
color: _ui.colors.grey700
|
|
164
168
|
}) : /*#__PURE__*/_react.default.createElement(_ui.IconChevronDown24, {
|
|
165
169
|
color: _ui.colors.grey700
|
|
@@ -189,9 +193,11 @@ const AboutAOUnit = _ref3 => {
|
|
|
189
193
|
className: "jsx-".concat(_AboutAOUnitStyle.default.__hash) + " " + "detailLine"
|
|
190
194
|
}, /*#__PURE__*/_react.default.createElement(_ui.IconUser16, {
|
|
191
195
|
color: _ui.colors.grey700
|
|
192
|
-
}), _d2I18n.default.t('Created {{time}} by {{author}}', {
|
|
196
|
+
}), (_data$ao$createdBy = data.ao.createdBy) !== null && _data$ao$createdBy !== void 0 && _data$ao$createdBy.displayName ? _d2I18n.default.t('Created {{time}} by {{author}}', {
|
|
193
197
|
time: (0, _moment.default)(data.ao.created).fromNow(),
|
|
194
198
|
author: data.ao.createdBy.displayName
|
|
199
|
+
}) : _d2I18n.default.t('Created {{time}}', {
|
|
200
|
+
time: (0, _moment.default)(data.ao.created).fromNow()
|
|
195
201
|
})), /*#__PURE__*/_react.default.createElement("p", {
|
|
196
202
|
className: "jsx-".concat(_AboutAOUnitStyle.default.__hash) + " " + "detailLine"
|
|
197
203
|
}, /*#__PURE__*/_react.default.createElement(_ui.IconView16, {
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getTranslatedString = exports.AO_TYPE_VISUALIZATION = exports.AO_TYPE_MAP = exports.AO_TYPE_EVENT_VISUALIZATION = exports.AOTypeMap = void 0;
|
|
7
|
+
|
|
8
|
+
var _d2I18n = _interopRequireDefault(require("@dhis2/d2-i18n"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
const AO_TYPE_VISUALIZATION = 'visualization';
|
|
13
|
+
exports.AO_TYPE_VISUALIZATION = AO_TYPE_VISUALIZATION;
|
|
14
|
+
const AO_TYPE_MAP = 'map';
|
|
15
|
+
exports.AO_TYPE_MAP = AO_TYPE_MAP;
|
|
16
|
+
const AO_TYPE_EVENT_VISUALIZATION = 'eventVisualization';
|
|
17
|
+
exports.AO_TYPE_EVENT_VISUALIZATION = AO_TYPE_EVENT_VISUALIZATION;
|
|
18
|
+
const AOTypeMap = {
|
|
19
|
+
[AO_TYPE_VISUALIZATION]: {
|
|
20
|
+
apiEndpoint: 'visualizations'
|
|
21
|
+
},
|
|
22
|
+
[AO_TYPE_MAP]: {
|
|
23
|
+
apiEndpoint: 'maps'
|
|
24
|
+
},
|
|
25
|
+
[AO_TYPE_EVENT_VISUALIZATION]: {
|
|
26
|
+
apiEndpoint: 'eventVisualizations'
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
exports.AOTypeMap = AOTypeMap;
|
|
30
|
+
const NO_TYPE = 'NO_TYPE';
|
|
31
|
+
const texts = {
|
|
32
|
+
[AO_TYPE_MAP]: {
|
|
33
|
+
unitTitle: _d2I18n.default.t('About this map')
|
|
34
|
+
},
|
|
35
|
+
[AO_TYPE_EVENT_VISUALIZATION]: {
|
|
36
|
+
unitTitle: _d2I18n.default.t('About this line list')
|
|
37
|
+
},
|
|
38
|
+
[AO_TYPE_VISUALIZATION]: {
|
|
39
|
+
unitTitle: _d2I18n.default.t('About this visualization')
|
|
40
|
+
},
|
|
41
|
+
[NO_TYPE]: {
|
|
42
|
+
unitTitle: _d2I18n.default.t('About this visualization')
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const getTranslatedString = (type, key) => (texts[type] || texts[NO_TYPE])[key];
|
|
47
|
+
|
|
48
|
+
exports.getTranslatedString = getTranslatedString;
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
"{{userOrGroup}} ({{accessLevel}})": "{{userOrGroup}} ({{accessLevel}})",
|
|
6
6
|
"Shared with {{commaSeparatedListOfUsersAndGroups}}": "Shared with {{commaSeparatedListOfUsersAndGroups}}",
|
|
7
7
|
"Not shared with any users or groups": "Not shared with any users or groups",
|
|
8
|
-
"About this visualization": "About this visualization",
|
|
9
8
|
"No description": "No description",
|
|
10
9
|
"Last updated {{time}}": "Last updated {{time}}",
|
|
11
10
|
"Created {{time}} by {{author}}": "Created {{time}} by {{author}}",
|
|
11
|
+
"Created {{time}}": "Created {{time}}",
|
|
12
12
|
"Viewed {{count}} times": "Viewed 1 time",
|
|
13
13
|
"Viewed {{count}} times_plural": "Viewed {{count}} times",
|
|
14
14
|
"Notifications": "Notifications",
|
|
@@ -16,6 +16,9 @@
|
|
|
16
16
|
"Unsubscribe": "Unsubscribe",
|
|
17
17
|
"Subscribe to get updates about new interpretations.": "Subscribe to get updates about new interpretations.",
|
|
18
18
|
"Subscribe": "Subscribe",
|
|
19
|
+
"About this map": "About this map",
|
|
20
|
+
"About this line list": "About this line list",
|
|
21
|
+
"About this visualization": "About this visualization",
|
|
19
22
|
"This app could not retrieve required data.": "This app could not retrieve required data.",
|
|
20
23
|
"Network error": "Network error",
|
|
21
24
|
"Data Type": "Data Type",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"This app could not retrieve required data.": "",
|
|
22
22
|
"Network error": "",
|
|
23
23
|
"Data Type": "",
|
|
24
|
-
"All types": "",
|
|
24
|
+
"All types": "Всі типи",
|
|
25
25
|
"Totals only": "",
|
|
26
26
|
"Details only": "",
|
|
27
27
|
"Disaggregation": "",
|
|
@@ -44,16 +44,16 @@
|
|
|
44
44
|
"Metric type": "",
|
|
45
45
|
"All metrics": "Всі метрики",
|
|
46
46
|
"Move to {{axisName}}": "",
|
|
47
|
-
"Add to {{axisName}}": "",
|
|
47
|
+
"Add to {{axisName}}": "Додати до {{axisName}}",
|
|
48
48
|
"Not available for {{visualizationType}}": "",
|
|
49
49
|
"Remove Assigned Categories": "",
|
|
50
|
-
"Add Assigned Categories": "",
|
|
50
|
+
"Add Assigned Categories": "Додати призначені категорії",
|
|
51
51
|
"Remove": "Прибрати",
|
|
52
|
-
"Filter dimensions": "",
|
|
53
|
-
"Main dimensions": "",
|
|
54
|
-
"Your dimensions": "",
|
|
52
|
+
"Filter dimensions": "Виміри фільтра",
|
|
53
|
+
"Main dimensions": "Основні виміри",
|
|
54
|
+
"Your dimensions": "Ваші виміри",
|
|
55
55
|
"Dimension recommended with selected data": "",
|
|
56
|
-
"All items": "",
|
|
56
|
+
"All items": "Всі елементи",
|
|
57
57
|
"Automatically include all items": "",
|
|
58
58
|
"Select all {{- dimensionTitle}} items. With this option, new items added in the future will be automatically included.": "",
|
|
59
59
|
"Manually select items...": "",
|
|
@@ -74,19 +74,19 @@
|
|
|
74
74
|
"Translate…": "",
|
|
75
75
|
"Share…": "",
|
|
76
76
|
"Get link…": "",
|
|
77
|
-
"Open in this app": "",
|
|
77
|
+
"Open in this app": "Відкрити в цьому додатку",
|
|
78
78
|
"Close": "Закрити",
|
|
79
79
|
"Rename {{fileType}}": "",
|
|
80
80
|
"Name": "Ім'я",
|
|
81
81
|
"Description": "Змалювання",
|
|
82
82
|
"Rename": "Перейменувати",
|
|
83
83
|
"Save {{fileType}} as": "",
|
|
84
|
-
"event report": "",
|
|
84
|
+
"event report": "звіт про подію",
|
|
85
85
|
"line list": "",
|
|
86
|
-
"map": "",
|
|
86
|
+
"map": "мапа",
|
|
87
87
|
"visualization": "",
|
|
88
88
|
"Edit": "Редагувати",
|
|
89
|
-
"Write a reply": "",
|
|
89
|
+
"Write a reply": "Написати відповідь",
|
|
90
90
|
"Post reply": "",
|
|
91
91
|
"Could not update comment": "",
|
|
92
92
|
"Enter comment text": "",
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
"Could not load interpretation": "",
|
|
96
96
|
"The interpretation couldn’t be displayed. Try again or contact your system administrator.": "",
|
|
97
97
|
"Hide interpretation": "",
|
|
98
|
-
"Write an interpretation": "",
|
|
98
|
+
"Write an interpretation": "Написати інтерпретацію",
|
|
99
99
|
"Post interpretation": "",
|
|
100
100
|
"Interpretations": "Інтерпретації",
|
|
101
101
|
"Unlike": "Прибрати вподобання",
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
"Reply": "Відповісти",
|
|
104
104
|
"Share": "Поділитися",
|
|
105
105
|
"See interpretation": "",
|
|
106
|
-
"Manage sharing": "",
|
|
106
|
+
"Manage sharing": "Керування спільним доступом",
|
|
107
107
|
"Could not update interpretation": "",
|
|
108
108
|
"Enter interpretation text": "",
|
|
109
109
|
"Bold text": "",
|
|
@@ -171,11 +171,11 @@
|
|
|
171
171
|
"{{count}} groups_3": "",
|
|
172
172
|
"Selected: {{commaSeparatedListOfOrganisationUnits}}": "",
|
|
173
173
|
"Nothing selected": "",
|
|
174
|
-
"User organisation unit": "",
|
|
174
|
+
"User organisation unit": "Організаційний підрозділ користувачів",
|
|
175
175
|
"User sub-units": "Одиниці підрозділів користувачів",
|
|
176
176
|
"User sub-x2-units": "Підрозділи користувачів 2-го рівня",
|
|
177
|
-
"Select a level": "",
|
|
178
|
-
"Select a group": "",
|
|
177
|
+
"Select a level": "Вибрати рівень",
|
|
178
|
+
"Select a group": "Вибрати групу",
|
|
179
179
|
"Deselect all": "Скасувати вибір усіх",
|
|
180
180
|
"Period type": "",
|
|
181
181
|
"Year": "Рік",
|
|
@@ -275,17 +275,17 @@
|
|
|
275
275
|
"Save translations": "",
|
|
276
276
|
"Could not load translations": "",
|
|
277
277
|
"Retry": "",
|
|
278
|
-
"Series": "",
|
|
278
|
+
"Series": "Серія",
|
|
279
279
|
"Category": "Категорія",
|
|
280
280
|
"Filter": "Фільтр",
|
|
281
281
|
"Columns": "",
|
|
282
282
|
"Rows": "",
|
|
283
283
|
"Points": "",
|
|
284
|
-
"Reporting rate": "",
|
|
285
|
-
"Reporting rate on time": "",
|
|
286
|
-
"Actual reports": "",
|
|
287
|
-
"Actual reports on time": "",
|
|
288
|
-
"Expected reports": "",
|
|
284
|
+
"Reporting rate": "Частота повідомлень",
|
|
285
|
+
"Reporting rate on time": "Частота повідомлень у часі",
|
|
286
|
+
"Actual reports": "Фактичні звіти",
|
|
287
|
+
"Actual reports on time": "Фактичні звіти за часом",
|
|
288
|
+
"Expected reports": "Очікувані звіти",
|
|
289
289
|
"Program": "Програма",
|
|
290
290
|
"Select a program": "",
|
|
291
291
|
"Indicators": "Показники",
|
|
@@ -340,21 +340,21 @@
|
|
|
340
340
|
"Organisation unit": "Організаційний підрозділ",
|
|
341
341
|
"Assigned Categories": "",
|
|
342
342
|
"Pivot table": "Зведена таблиця",
|
|
343
|
-
"Area": "",
|
|
344
|
-
"Stacked area": "",
|
|
345
|
-
"Bar": "",
|
|
346
|
-
"Stacked bar": "",
|
|
343
|
+
"Area": "З областями",
|
|
344
|
+
"Stacked area": "З областями з накопиченням",
|
|
345
|
+
"Bar": "Гістограма",
|
|
346
|
+
"Stacked bar": "Гістограма з накопиченням",
|
|
347
347
|
"Column": "Стовпчик",
|
|
348
|
-
"Year over year (column)": "",
|
|
349
|
-
"Stacked column": "",
|
|
350
|
-
"Gauge": "",
|
|
351
|
-
"Line": "",
|
|
348
|
+
"Year over year (column)": "Рік за роком (стовпчик)",
|
|
349
|
+
"Stacked column": "Стовпчаста з накопиченням",
|
|
350
|
+
"Gauge": "Індикатор",
|
|
351
|
+
"Line": "Лінійна",
|
|
352
352
|
"Line list": "Перелік рядків",
|
|
353
|
-
"Year over year (line)": "",
|
|
354
|
-
"Pie": "",
|
|
355
|
-
"Radar": "",
|
|
356
|
-
"Scatter": "",
|
|
357
|
-
"Single value": "",
|
|
353
|
+
"Year over year (line)": "Рік за роком (лінія)",
|
|
354
|
+
"Pie": "Секторна",
|
|
355
|
+
"Radar": "Пелюсткова",
|
|
356
|
+
"Scatter": "Точкова",
|
|
357
|
+
"Single value": "Одне значення",
|
|
358
358
|
"All charts": "",
|
|
359
359
|
"{{seriesName}} (trend)": "",
|
|
360
360
|
"Trend": "",
|
|
@@ -363,7 +363,7 @@
|
|
|
363
363
|
"Linear Regression": "",
|
|
364
364
|
"Target": "Ціль",
|
|
365
365
|
"Base": "",
|
|
366
|
-
"Axis {{axisId}}": "",
|
|
366
|
+
"Axis {{axisId}}": "Вісь {{axisId}}",
|
|
367
367
|
"{{count}} items_0": "",
|
|
368
368
|
"{{count}} items_1": "",
|
|
369
369
|
"{{count}} items_2": "",
|
|
@@ -8,12 +8,13 @@ import PropTypes from 'prop-types';
|
|
|
8
8
|
import React, { useEffect, useMemo, useState } from 'react';
|
|
9
9
|
import { formatList } from '../../modules/list.js';
|
|
10
10
|
import styles from './styles/AboutAOUnit.style.js';
|
|
11
|
+
import { getTranslatedString, AOTypeMap } from './utils.js';
|
|
11
12
|
const READ_ONLY = 'r';
|
|
12
13
|
const READ_AND_WRITE = 'rw';
|
|
13
14
|
|
|
14
15
|
const getQueries = type => ({
|
|
15
16
|
ao: {
|
|
16
|
-
resource: type,
|
|
17
|
+
resource: AOTypeMap[type].apiEndpoint,
|
|
17
18
|
id: _ref => {
|
|
18
19
|
let {
|
|
19
20
|
id
|
|
@@ -36,22 +37,24 @@ const getQueries = type => ({
|
|
|
36
37
|
});
|
|
37
38
|
|
|
38
39
|
const getSubscribeMutation = (type, id) => ({
|
|
39
|
-
resource: "".concat(type, "/").concat(id, "/subscriber"),
|
|
40
|
+
resource: "".concat(AOTypeMap[type].apiEndpoint, "/").concat(id, "/subscriber"),
|
|
40
41
|
type: 'create'
|
|
41
42
|
});
|
|
42
43
|
|
|
43
44
|
const getUnsubscribeMutation = (type, id) => ({
|
|
44
|
-
resource: "".concat(type, "/").concat(id, "/subscriber"),
|
|
45
|
+
resource: "".concat(AOTypeMap[type].apiEndpoint, "/").concat(id, "/subscriber"),
|
|
45
46
|
type: 'delete'
|
|
46
47
|
});
|
|
47
48
|
|
|
48
49
|
const AboutAOUnit = _ref3 => {
|
|
50
|
+
var _data$ao$createdBy;
|
|
51
|
+
|
|
49
52
|
let {
|
|
50
53
|
type,
|
|
51
54
|
id
|
|
52
55
|
} = _ref3;
|
|
53
56
|
const [isExpanded, setIsExpanded] = useState(true);
|
|
54
|
-
const queries = useMemo(() => getQueries(type), []);
|
|
57
|
+
const queries = useMemo(() => getQueries(type), [type]);
|
|
55
58
|
const {
|
|
56
59
|
data,
|
|
57
60
|
loading: dataIsLoading,
|
|
@@ -59,8 +62,8 @@ const AboutAOUnit = _ref3 => {
|
|
|
59
62
|
} = useDataQuery(queries, {
|
|
60
63
|
lazy: true
|
|
61
64
|
});
|
|
62
|
-
const subscribeMutation = useMemo(() => getSubscribeMutation(type, id), []);
|
|
63
|
-
const unsubscribeMutation = useMemo(() => getUnsubscribeMutation(type, id), []);
|
|
65
|
+
const subscribeMutation = useMemo(() => getSubscribeMutation(type, id), [type, id]);
|
|
66
|
+
const unsubscribeMutation = useMemo(() => getUnsubscribeMutation(type, id), [type, id]);
|
|
64
67
|
const [subscribe, {
|
|
65
68
|
loading: subscribeIsLoading
|
|
66
69
|
}] = useDataMutation(subscribeMutation, {
|
|
@@ -89,7 +92,7 @@ const AboutAOUnit = _ref3 => {
|
|
|
89
92
|
id
|
|
90
93
|
});
|
|
91
94
|
}
|
|
92
|
-
}, [
|
|
95
|
+
}, [id, refetch]);
|
|
93
96
|
|
|
94
97
|
const getAccessLevelString = access => {
|
|
95
98
|
const re = new RegExp("(?<accessLevel>".concat(READ_AND_WRITE, "?)"));
|
|
@@ -136,7 +139,7 @@ const AboutAOUnit = _ref3 => {
|
|
|
136
139
|
className: "jsx-".concat(styles.__hash) + " " + "header"
|
|
137
140
|
}, /*#__PURE__*/React.createElement("span", {
|
|
138
141
|
className: "jsx-".concat(styles.__hash) + " " + "title"
|
|
139
|
-
},
|
|
142
|
+
}, getTranslatedString(type, 'unitTitle')), isExpanded ? /*#__PURE__*/React.createElement(IconChevronUp24, {
|
|
140
143
|
color: colors.grey700
|
|
141
144
|
}) : /*#__PURE__*/React.createElement(IconChevronDown24, {
|
|
142
145
|
color: colors.grey700
|
|
@@ -166,9 +169,11 @@ const AboutAOUnit = _ref3 => {
|
|
|
166
169
|
className: "jsx-".concat(styles.__hash) + " " + "detailLine"
|
|
167
170
|
}, /*#__PURE__*/React.createElement(IconUser16, {
|
|
168
171
|
color: colors.grey700
|
|
169
|
-
}), i18n.t('Created {{time}} by {{author}}', {
|
|
172
|
+
}), (_data$ao$createdBy = data.ao.createdBy) !== null && _data$ao$createdBy !== void 0 && _data$ao$createdBy.displayName ? i18n.t('Created {{time}} by {{author}}', {
|
|
170
173
|
time: moment(data.ao.created).fromNow(),
|
|
171
174
|
author: data.ao.createdBy.displayName
|
|
175
|
+
}) : i18n.t('Created {{time}}', {
|
|
176
|
+
time: moment(data.ao.created).fromNow()
|
|
172
177
|
})), /*#__PURE__*/React.createElement("p", {
|
|
173
178
|
className: "jsx-".concat(styles.__hash) + " " + "detailLine"
|
|
174
179
|
}, /*#__PURE__*/React.createElement(IconView16, {
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import i18n from '@dhis2/d2-i18n';
|
|
2
|
+
export const AO_TYPE_VISUALIZATION = 'visualization';
|
|
3
|
+
export const AO_TYPE_MAP = 'map';
|
|
4
|
+
export const AO_TYPE_EVENT_VISUALIZATION = 'eventVisualization';
|
|
5
|
+
export const AOTypeMap = {
|
|
6
|
+
[AO_TYPE_VISUALIZATION]: {
|
|
7
|
+
apiEndpoint: 'visualizations'
|
|
8
|
+
},
|
|
9
|
+
[AO_TYPE_MAP]: {
|
|
10
|
+
apiEndpoint: 'maps'
|
|
11
|
+
},
|
|
12
|
+
[AO_TYPE_EVENT_VISUALIZATION]: {
|
|
13
|
+
apiEndpoint: 'eventVisualizations'
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
const NO_TYPE = 'NO_TYPE';
|
|
17
|
+
const texts = {
|
|
18
|
+
[AO_TYPE_MAP]: {
|
|
19
|
+
unitTitle: i18n.t('About this map')
|
|
20
|
+
},
|
|
21
|
+
[AO_TYPE_EVENT_VISUALIZATION]: {
|
|
22
|
+
unitTitle: i18n.t('About this line list')
|
|
23
|
+
},
|
|
24
|
+
[AO_TYPE_VISUALIZATION]: {
|
|
25
|
+
unitTitle: i18n.t('About this visualization')
|
|
26
|
+
},
|
|
27
|
+
[NO_TYPE]: {
|
|
28
|
+
unitTitle: i18n.t('About this visualization')
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
export const getTranslatedString = (type, key) => (texts[type] || texts[NO_TYPE])[key];
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
"{{userOrGroup}} ({{accessLevel}})": "{{userOrGroup}} ({{accessLevel}})",
|
|
6
6
|
"Shared with {{commaSeparatedListOfUsersAndGroups}}": "Shared with {{commaSeparatedListOfUsersAndGroups}}",
|
|
7
7
|
"Not shared with any users or groups": "Not shared with any users or groups",
|
|
8
|
-
"About this visualization": "About this visualization",
|
|
9
8
|
"No description": "No description",
|
|
10
9
|
"Last updated {{time}}": "Last updated {{time}}",
|
|
11
10
|
"Created {{time}} by {{author}}": "Created {{time}} by {{author}}",
|
|
11
|
+
"Created {{time}}": "Created {{time}}",
|
|
12
12
|
"Viewed {{count}} times": "Viewed 1 time",
|
|
13
13
|
"Viewed {{count}} times_plural": "Viewed {{count}} times",
|
|
14
14
|
"Notifications": "Notifications",
|
|
@@ -16,6 +16,9 @@
|
|
|
16
16
|
"Unsubscribe": "Unsubscribe",
|
|
17
17
|
"Subscribe to get updates about new interpretations.": "Subscribe to get updates about new interpretations.",
|
|
18
18
|
"Subscribe": "Subscribe",
|
|
19
|
+
"About this map": "About this map",
|
|
20
|
+
"About this line list": "About this line list",
|
|
21
|
+
"About this visualization": "About this visualization",
|
|
19
22
|
"This app could not retrieve required data.": "This app could not retrieve required data.",
|
|
20
23
|
"Network error": "Network error",
|
|
21
24
|
"Data Type": "Data Type",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"This app could not retrieve required data.": "",
|
|
22
22
|
"Network error": "",
|
|
23
23
|
"Data Type": "",
|
|
24
|
-
"All types": "",
|
|
24
|
+
"All types": "Всі типи",
|
|
25
25
|
"Totals only": "",
|
|
26
26
|
"Details only": "",
|
|
27
27
|
"Disaggregation": "",
|
|
@@ -44,16 +44,16 @@
|
|
|
44
44
|
"Metric type": "",
|
|
45
45
|
"All metrics": "Всі метрики",
|
|
46
46
|
"Move to {{axisName}}": "",
|
|
47
|
-
"Add to {{axisName}}": "",
|
|
47
|
+
"Add to {{axisName}}": "Додати до {{axisName}}",
|
|
48
48
|
"Not available for {{visualizationType}}": "",
|
|
49
49
|
"Remove Assigned Categories": "",
|
|
50
|
-
"Add Assigned Categories": "",
|
|
50
|
+
"Add Assigned Categories": "Додати призначені категорії",
|
|
51
51
|
"Remove": "Прибрати",
|
|
52
|
-
"Filter dimensions": "",
|
|
53
|
-
"Main dimensions": "",
|
|
54
|
-
"Your dimensions": "",
|
|
52
|
+
"Filter dimensions": "Виміри фільтра",
|
|
53
|
+
"Main dimensions": "Основні виміри",
|
|
54
|
+
"Your dimensions": "Ваші виміри",
|
|
55
55
|
"Dimension recommended with selected data": "",
|
|
56
|
-
"All items": "",
|
|
56
|
+
"All items": "Всі елементи",
|
|
57
57
|
"Automatically include all items": "",
|
|
58
58
|
"Select all {{- dimensionTitle}} items. With this option, new items added in the future will be automatically included.": "",
|
|
59
59
|
"Manually select items...": "",
|
|
@@ -74,19 +74,19 @@
|
|
|
74
74
|
"Translate…": "",
|
|
75
75
|
"Share…": "",
|
|
76
76
|
"Get link…": "",
|
|
77
|
-
"Open in this app": "",
|
|
77
|
+
"Open in this app": "Відкрити в цьому додатку",
|
|
78
78
|
"Close": "Закрити",
|
|
79
79
|
"Rename {{fileType}}": "",
|
|
80
80
|
"Name": "Ім'я",
|
|
81
81
|
"Description": "Змалювання",
|
|
82
82
|
"Rename": "Перейменувати",
|
|
83
83
|
"Save {{fileType}} as": "",
|
|
84
|
-
"event report": "",
|
|
84
|
+
"event report": "звіт про подію",
|
|
85
85
|
"line list": "",
|
|
86
|
-
"map": "",
|
|
86
|
+
"map": "мапа",
|
|
87
87
|
"visualization": "",
|
|
88
88
|
"Edit": "Редагувати",
|
|
89
|
-
"Write a reply": "",
|
|
89
|
+
"Write a reply": "Написати відповідь",
|
|
90
90
|
"Post reply": "",
|
|
91
91
|
"Could not update comment": "",
|
|
92
92
|
"Enter comment text": "",
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
"Could not load interpretation": "",
|
|
96
96
|
"The interpretation couldn’t be displayed. Try again or contact your system administrator.": "",
|
|
97
97
|
"Hide interpretation": "",
|
|
98
|
-
"Write an interpretation": "",
|
|
98
|
+
"Write an interpretation": "Написати інтерпретацію",
|
|
99
99
|
"Post interpretation": "",
|
|
100
100
|
"Interpretations": "Інтерпретації",
|
|
101
101
|
"Unlike": "Прибрати вподобання",
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
"Reply": "Відповісти",
|
|
104
104
|
"Share": "Поділитися",
|
|
105
105
|
"See interpretation": "",
|
|
106
|
-
"Manage sharing": "",
|
|
106
|
+
"Manage sharing": "Керування спільним доступом",
|
|
107
107
|
"Could not update interpretation": "",
|
|
108
108
|
"Enter interpretation text": "",
|
|
109
109
|
"Bold text": "",
|
|
@@ -171,11 +171,11 @@
|
|
|
171
171
|
"{{count}} groups_3": "",
|
|
172
172
|
"Selected: {{commaSeparatedListOfOrganisationUnits}}": "",
|
|
173
173
|
"Nothing selected": "",
|
|
174
|
-
"User organisation unit": "",
|
|
174
|
+
"User organisation unit": "Організаційний підрозділ користувачів",
|
|
175
175
|
"User sub-units": "Одиниці підрозділів користувачів",
|
|
176
176
|
"User sub-x2-units": "Підрозділи користувачів 2-го рівня",
|
|
177
|
-
"Select a level": "",
|
|
178
|
-
"Select a group": "",
|
|
177
|
+
"Select a level": "Вибрати рівень",
|
|
178
|
+
"Select a group": "Вибрати групу",
|
|
179
179
|
"Deselect all": "Скасувати вибір усіх",
|
|
180
180
|
"Period type": "",
|
|
181
181
|
"Year": "Рік",
|
|
@@ -275,17 +275,17 @@
|
|
|
275
275
|
"Save translations": "",
|
|
276
276
|
"Could not load translations": "",
|
|
277
277
|
"Retry": "",
|
|
278
|
-
"Series": "",
|
|
278
|
+
"Series": "Серія",
|
|
279
279
|
"Category": "Категорія",
|
|
280
280
|
"Filter": "Фільтр",
|
|
281
281
|
"Columns": "",
|
|
282
282
|
"Rows": "",
|
|
283
283
|
"Points": "",
|
|
284
|
-
"Reporting rate": "",
|
|
285
|
-
"Reporting rate on time": "",
|
|
286
|
-
"Actual reports": "",
|
|
287
|
-
"Actual reports on time": "",
|
|
288
|
-
"Expected reports": "",
|
|
284
|
+
"Reporting rate": "Частота повідомлень",
|
|
285
|
+
"Reporting rate on time": "Частота повідомлень у часі",
|
|
286
|
+
"Actual reports": "Фактичні звіти",
|
|
287
|
+
"Actual reports on time": "Фактичні звіти за часом",
|
|
288
|
+
"Expected reports": "Очікувані звіти",
|
|
289
289
|
"Program": "Програма",
|
|
290
290
|
"Select a program": "",
|
|
291
291
|
"Indicators": "Показники",
|
|
@@ -340,21 +340,21 @@
|
|
|
340
340
|
"Organisation unit": "Організаційний підрозділ",
|
|
341
341
|
"Assigned Categories": "",
|
|
342
342
|
"Pivot table": "Зведена таблиця",
|
|
343
|
-
"Area": "",
|
|
344
|
-
"Stacked area": "",
|
|
345
|
-
"Bar": "",
|
|
346
|
-
"Stacked bar": "",
|
|
343
|
+
"Area": "З областями",
|
|
344
|
+
"Stacked area": "З областями з накопиченням",
|
|
345
|
+
"Bar": "Гістограма",
|
|
346
|
+
"Stacked bar": "Гістограма з накопиченням",
|
|
347
347
|
"Column": "Стовпчик",
|
|
348
|
-
"Year over year (column)": "",
|
|
349
|
-
"Stacked column": "",
|
|
350
|
-
"Gauge": "",
|
|
351
|
-
"Line": "",
|
|
348
|
+
"Year over year (column)": "Рік за роком (стовпчик)",
|
|
349
|
+
"Stacked column": "Стовпчаста з накопиченням",
|
|
350
|
+
"Gauge": "Індикатор",
|
|
351
|
+
"Line": "Лінійна",
|
|
352
352
|
"Line list": "Перелік рядків",
|
|
353
|
-
"Year over year (line)": "",
|
|
354
|
-
"Pie": "",
|
|
355
|
-
"Radar": "",
|
|
356
|
-
"Scatter": "",
|
|
357
|
-
"Single value": "",
|
|
353
|
+
"Year over year (line)": "Рік за роком (лінія)",
|
|
354
|
+
"Pie": "Секторна",
|
|
355
|
+
"Radar": "Пелюсткова",
|
|
356
|
+
"Scatter": "Точкова",
|
|
357
|
+
"Single value": "Одне значення",
|
|
358
358
|
"All charts": "",
|
|
359
359
|
"{{seriesName}} (trend)": "",
|
|
360
360
|
"Trend": "",
|
|
@@ -363,7 +363,7 @@
|
|
|
363
363
|
"Linear Regression": "",
|
|
364
364
|
"Target": "Ціль",
|
|
365
365
|
"Base": "",
|
|
366
|
-
"Axis {{axisId}}": "",
|
|
366
|
+
"Axis {{axisId}}": "Вісь {{axisId}}",
|
|
367
367
|
"{{count}} items_0": "",
|
|
368
368
|
"{{count}} items_1": "",
|
|
369
369
|
"{{count}} items_2": "",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dhis2/analytics",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "24.0.0",
|
|
4
4
|
"main": "./build/cjs/index.js",
|
|
5
5
|
"module": "./build/es/index.js",
|
|
6
6
|
"exports": {
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"@dhis2/cli-app-scripts": "^9.0.1",
|
|
36
36
|
"@dhis2/cli-style": "^10.4.1",
|
|
37
37
|
"@dhis2/d2-i18n": "^1.1.0",
|
|
38
|
-
"@dhis2/ui": "^8.4.
|
|
38
|
+
"@dhis2/ui": "^8.4.9",
|
|
39
39
|
"@sambego/storybook-state": "^2.0.1",
|
|
40
40
|
"@storybook/addons": "^6.5.9",
|
|
41
41
|
"@storybook/preset-create-react-app": "^3.1.7",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"classnames": "^2.3.1",
|
|
63
63
|
"d2-utilizr": "^0.2.16",
|
|
64
64
|
"d3-color": "^1.2.3",
|
|
65
|
-
"highcharts": "^10.
|
|
65
|
+
"highcharts": "^10.2.0",
|
|
66
66
|
"lodash": "^4.17.21",
|
|
67
67
|
"mathjs": "^9.4.2",
|
|
68
68
|
"react-beautiful-dnd": "^10.1.1",
|