@dhis2/analytics 23.8.0 → 23.8.1
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 +7 -0
- package/build/cjs/api/dimensions.js +19 -19
- package/build/cjs/components/DataDimension/{DataTypesSelector.js → DataTypeSelector.js} +11 -11
- package/build/cjs/components/DataDimension/GroupSelector.js +10 -10
- package/build/cjs/components/DataDimension/ItemSelector.js +31 -31
- package/build/cjs/components/DataDimension/MetricSelector.js +4 -4
- package/build/cjs/components/DataDimension/styles/{DataTypesSelector.style.js → DataTypeSelector.style.js} +0 -0
- package/build/cjs/index.js +98 -0
- package/build/cjs/modules/dataTypes.js +53 -39
- package/build/cjs/modules/pivotTable/PivotTableEngine.js +5 -3
- package/build/cjs/modules/pivotTable/pivotTableConstants.js +2 -10
- package/build/es/api/dimensions.js +20 -20
- package/build/es/components/DataDimension/{DataTypesSelector.js → DataTypeSelector.js} +8 -8
- package/build/es/components/DataDimension/GroupSelector.js +4 -4
- package/build/es/components/DataDimension/ItemSelector.js +29 -29
- package/build/es/components/DataDimension/MetricSelector.js +5 -5
- package/build/es/components/DataDimension/styles/{DataTypesSelector.style.js → DataTypeSelector.style.js} +0 -0
- package/build/es/index.js +2 -1
- package/build/es/modules/dataTypes.js +35 -28
- package/build/es/modules/pivotTable/PivotTableEngine.js +3 -2
- package/build/es/modules/pivotTable/pivotTableConstants.js +1 -5
- package/package.json +1 -1
|
@@ -5,30 +5,44 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.defaultGroupId = defaultGroupId;
|
|
7
7
|
exports.defaultGroupDetail = defaultGroupDetail;
|
|
8
|
-
exports.DEFAULT_DATATYPE_ID = exports.
|
|
8
|
+
exports.DEFAULT_DATATYPE_ID = exports.dataTypeMap = exports.SUB_GROUP_METRIC = exports.SUB_GROUP_DETAIL = exports.DETAIL = exports.TOTALS = exports.DIMENSION_TYPE_ORGANISATION_UNIT_GROUP_SET = exports.DIMENSION_TYPE_ORGANISATION_UNIT = exports.DIMENSION_TYPE_PERIOD = exports.DIMENSION_TYPE_DATA = exports.DIMENSION_TYPE_DATA_ELEMENT_GROUP_SET = exports.DIMENSION_TYPE_CATEGORY_OPTION_GROUP_SET = exports.DIMENSION_TYPE_CATEGORY = exports.DIMENSION_TYPE_DATA_ELEMENT_OPERAND = exports.DIMENSION_TYPE_PROGRAM_ATTRIBUTE = exports.DIMENSION_TYPE_PROGRAM_DATA_ELEMENT = exports.DIMENSION_TYPE_PROGRAM_INDICATOR = exports.DIMENSION_TYPE_EVENT_DATA_ITEM = exports.DIMENSION_TYPE_DATA_SET = exports.DIMENSION_TYPE_DATA_ELEMENT = exports.DIMENSION_TYPE_INDICATOR = exports.DIMENSION_TYPE_ALL = void 0;
|
|
9
9
|
|
|
10
10
|
var _index = _interopRequireDefault(require("../locales/index.js"));
|
|
11
11
|
|
|
12
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
13
|
|
|
14
|
-
const
|
|
15
|
-
exports.
|
|
16
|
-
const
|
|
17
|
-
exports.
|
|
18
|
-
const
|
|
19
|
-
exports.
|
|
20
|
-
const
|
|
21
|
-
exports.
|
|
22
|
-
const
|
|
23
|
-
exports.
|
|
24
|
-
const
|
|
25
|
-
exports.
|
|
26
|
-
const
|
|
27
|
-
exports.
|
|
28
|
-
const
|
|
29
|
-
exports.
|
|
30
|
-
const
|
|
31
|
-
exports.
|
|
14
|
+
const DIMENSION_TYPE_ALL = 'ALL';
|
|
15
|
+
exports.DIMENSION_TYPE_ALL = DIMENSION_TYPE_ALL;
|
|
16
|
+
const DIMENSION_TYPE_INDICATOR = 'INDICATOR';
|
|
17
|
+
exports.DIMENSION_TYPE_INDICATOR = DIMENSION_TYPE_INDICATOR;
|
|
18
|
+
const DIMENSION_TYPE_DATA_ELEMENT = 'DATA_ELEMENT';
|
|
19
|
+
exports.DIMENSION_TYPE_DATA_ELEMENT = DIMENSION_TYPE_DATA_ELEMENT;
|
|
20
|
+
const DIMENSION_TYPE_DATA_SET = 'DATA_SET';
|
|
21
|
+
exports.DIMENSION_TYPE_DATA_SET = DIMENSION_TYPE_DATA_SET;
|
|
22
|
+
const DIMENSION_TYPE_EVENT_DATA_ITEM = 'EVENT_DATA_ITEM';
|
|
23
|
+
exports.DIMENSION_TYPE_EVENT_DATA_ITEM = DIMENSION_TYPE_EVENT_DATA_ITEM;
|
|
24
|
+
const DIMENSION_TYPE_PROGRAM_INDICATOR = 'PROGRAM_INDICATOR';
|
|
25
|
+
exports.DIMENSION_TYPE_PROGRAM_INDICATOR = DIMENSION_TYPE_PROGRAM_INDICATOR;
|
|
26
|
+
const DIMENSION_TYPE_PROGRAM_DATA_ELEMENT = 'PROGRAM_DATA_ELEMENT';
|
|
27
|
+
exports.DIMENSION_TYPE_PROGRAM_DATA_ELEMENT = DIMENSION_TYPE_PROGRAM_DATA_ELEMENT;
|
|
28
|
+
const DIMENSION_TYPE_PROGRAM_ATTRIBUTE = 'PROGRAM_ATTRIBUTE';
|
|
29
|
+
exports.DIMENSION_TYPE_PROGRAM_ATTRIBUTE = DIMENSION_TYPE_PROGRAM_ATTRIBUTE;
|
|
30
|
+
const DIMENSION_TYPE_DATA_ELEMENT_OPERAND = 'DATA_ELEMENT_OPERAND';
|
|
31
|
+
exports.DIMENSION_TYPE_DATA_ELEMENT_OPERAND = DIMENSION_TYPE_DATA_ELEMENT_OPERAND;
|
|
32
|
+
const DIMENSION_TYPE_CATEGORY = 'CATEGORY';
|
|
33
|
+
exports.DIMENSION_TYPE_CATEGORY = DIMENSION_TYPE_CATEGORY;
|
|
34
|
+
const DIMENSION_TYPE_CATEGORY_OPTION_GROUP_SET = 'CATEGORY_OPTION_GROUP_SET';
|
|
35
|
+
exports.DIMENSION_TYPE_CATEGORY_OPTION_GROUP_SET = DIMENSION_TYPE_CATEGORY_OPTION_GROUP_SET;
|
|
36
|
+
const DIMENSION_TYPE_DATA_ELEMENT_GROUP_SET = 'DATA_ELEMENT_GROUP_SET';
|
|
37
|
+
exports.DIMENSION_TYPE_DATA_ELEMENT_GROUP_SET = DIMENSION_TYPE_DATA_ELEMENT_GROUP_SET;
|
|
38
|
+
const DIMENSION_TYPE_DATA = 'DATA_X';
|
|
39
|
+
exports.DIMENSION_TYPE_DATA = DIMENSION_TYPE_DATA;
|
|
40
|
+
const DIMENSION_TYPE_PERIOD = 'PERIOD';
|
|
41
|
+
exports.DIMENSION_TYPE_PERIOD = DIMENSION_TYPE_PERIOD;
|
|
42
|
+
const DIMENSION_TYPE_ORGANISATION_UNIT = 'ORGANISATION_UNIT';
|
|
43
|
+
exports.DIMENSION_TYPE_ORGANISATION_UNIT = DIMENSION_TYPE_ORGANISATION_UNIT;
|
|
44
|
+
const DIMENSION_TYPE_ORGANISATION_UNIT_GROUP_SET = 'ORGANISATION_UNIT_GROUP_SET';
|
|
45
|
+
exports.DIMENSION_TYPE_ORGANISATION_UNIT_GROUP_SET = DIMENSION_TYPE_ORGANISATION_UNIT_GROUP_SET;
|
|
32
46
|
const TOTALS = 'totals';
|
|
33
47
|
exports.TOTALS = TOTALS;
|
|
34
48
|
const DETAIL = 'detail';
|
|
@@ -42,25 +56,25 @@ const getProgramText = () => _index.default.t('Program');
|
|
|
42
56
|
|
|
43
57
|
const getSelectProgramText = () => _index.default.t('Select a program');
|
|
44
58
|
|
|
45
|
-
const
|
|
46
|
-
[
|
|
47
|
-
id:
|
|
59
|
+
const dataTypeMap = {
|
|
60
|
+
[DIMENSION_TYPE_INDICATOR]: {
|
|
61
|
+
id: DIMENSION_TYPE_INDICATOR,
|
|
48
62
|
getName: () => _index.default.t('Indicators'),
|
|
49
63
|
getGroupLabel: () => _index.default.t('Indicator group'),
|
|
50
64
|
defaultGroup: {
|
|
51
|
-
id:
|
|
65
|
+
id: DIMENSION_TYPE_ALL,
|
|
52
66
|
getName: () => _index.default.t('All groups')
|
|
53
67
|
},
|
|
54
68
|
getItemName: () => _index.default.t('Indicator'),
|
|
55
69
|
getGroupEmptyLabel: () => _index.default.t('No indicator groups found'),
|
|
56
70
|
getGroupLoadingLabel: () => _index.default.t('Loading indicator groups')
|
|
57
71
|
},
|
|
58
|
-
[
|
|
59
|
-
id:
|
|
72
|
+
[DIMENSION_TYPE_DATA_ELEMENT]: {
|
|
73
|
+
id: DIMENSION_TYPE_DATA_ELEMENT,
|
|
60
74
|
getName: () => _index.default.t('Data elements'),
|
|
61
75
|
getGroupLabel: () => _index.default.t('Data element group'),
|
|
62
76
|
defaultGroup: {
|
|
63
|
-
id:
|
|
77
|
+
id: DIMENSION_TYPE_ALL,
|
|
64
78
|
getName: () => _index.default.t('All groups')
|
|
65
79
|
},
|
|
66
80
|
subGroup: SUB_GROUP_DETAIL,
|
|
@@ -68,12 +82,12 @@ const dataTypes = {
|
|
|
68
82
|
getGroupEmptyLabel: () => _index.default.t('No data element groups found'),
|
|
69
83
|
getGroupLoadingLabel: () => _index.default.t('Loading data element groups')
|
|
70
84
|
},
|
|
71
|
-
[
|
|
72
|
-
id:
|
|
85
|
+
[DIMENSION_TYPE_DATA_SET]: {
|
|
86
|
+
id: DIMENSION_TYPE_DATA_SET,
|
|
73
87
|
getName: () => _index.default.t('Data sets'),
|
|
74
88
|
getGroupLabel: () => _index.default.t('Data set'),
|
|
75
89
|
defaultGroup: {
|
|
76
|
-
id:
|
|
90
|
+
id: DIMENSION_TYPE_ALL,
|
|
77
91
|
getName: () => _index.default.t('All data sets')
|
|
78
92
|
},
|
|
79
93
|
subGroup: SUB_GROUP_METRIC,
|
|
@@ -81,26 +95,26 @@ const dataTypes = {
|
|
|
81
95
|
getGroupEmptyLabel: () => _index.default.t('No data sets found'),
|
|
82
96
|
getGroupLoadingLabel: () => _index.default.t('Loading data sets')
|
|
83
97
|
},
|
|
84
|
-
[
|
|
85
|
-
id:
|
|
98
|
+
[DIMENSION_TYPE_EVENT_DATA_ITEM]: {
|
|
99
|
+
id: DIMENSION_TYPE_EVENT_DATA_ITEM,
|
|
86
100
|
getName: () => _index.default.t('Event data items'),
|
|
87
101
|
getGroupLabel: getProgramText,
|
|
88
102
|
getPlaceholder: getSelectProgramText,
|
|
89
103
|
defaultGroup: {
|
|
90
|
-
id:
|
|
104
|
+
id: DIMENSION_TYPE_ALL,
|
|
91
105
|
getName: () => _index.default.t('All programs')
|
|
92
106
|
},
|
|
93
107
|
getItemName: () => _index.default.t('Event data item'),
|
|
94
108
|
getGroupEmptyLabel: () => _index.default.t('No programs found'),
|
|
95
109
|
getGroupLoadingLabel: () => _index.default.t('Loading programs')
|
|
96
110
|
},
|
|
97
|
-
[
|
|
98
|
-
id:
|
|
111
|
+
[DIMENSION_TYPE_PROGRAM_INDICATOR]: {
|
|
112
|
+
id: DIMENSION_TYPE_PROGRAM_INDICATOR,
|
|
99
113
|
getName: () => _index.default.t('Program indicators'),
|
|
100
114
|
getGroupLabel: getProgramText,
|
|
101
115
|
getPlaceholder: getSelectProgramText,
|
|
102
116
|
defaultGroup: {
|
|
103
|
-
id:
|
|
117
|
+
id: DIMENSION_TYPE_ALL,
|
|
104
118
|
getName: () => _index.default.t('All programs')
|
|
105
119
|
},
|
|
106
120
|
getItemName: () => _index.default.t('Program indicator'),
|
|
@@ -108,15 +122,15 @@ const dataTypes = {
|
|
|
108
122
|
getGroupLoadingLabel: () => _index.default.t('Loading programs')
|
|
109
123
|
}
|
|
110
124
|
};
|
|
111
|
-
exports.
|
|
125
|
+
exports.dataTypeMap = dataTypeMap;
|
|
112
126
|
|
|
113
127
|
function defaultGroupId(dataType) {
|
|
114
|
-
return
|
|
128
|
+
return dataTypeMap[dataType].defaultGroup ? dataTypeMap[dataType].defaultGroup.id : '';
|
|
115
129
|
}
|
|
116
130
|
|
|
117
131
|
function defaultGroupDetail(dataType) {
|
|
118
|
-
return
|
|
132
|
+
return dataTypeMap[dataType].groupDetail ? dataTypeMap[dataType].groupDetail.default : '';
|
|
119
133
|
}
|
|
120
134
|
|
|
121
|
-
const DEFAULT_DATATYPE_ID =
|
|
135
|
+
const DEFAULT_DATATYPE_ID = DIMENSION_TYPE_INDICATOR;
|
|
122
136
|
exports.DEFAULT_DATATYPE_ID = DEFAULT_DATATYPE_ID;
|
|
@@ -7,6 +7,8 @@ exports.PivotTableEngine = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _times = _interopRequireDefault(require("lodash/times"));
|
|
9
9
|
|
|
10
|
+
var _dataTypes = require("../dataTypes.js");
|
|
11
|
+
|
|
10
12
|
var _predefinedDimensions = require("../predefinedDimensions.js");
|
|
11
13
|
|
|
12
14
|
var _renderValue = require("../renderValue.js");
|
|
@@ -39,7 +41,7 @@ const defaultVisualizationProps = {
|
|
|
39
41
|
displayDensity: _pivotTableConstants.DISPLAY_DENSITY_OPTION_NORMAL
|
|
40
42
|
};
|
|
41
43
|
|
|
42
|
-
const isDxDimension = dimensionItem => [
|
|
44
|
+
const isDxDimension = dimensionItem => [_dataTypes.DIMENSION_TYPE_DATA, _dataTypes.DIMENSION_TYPE_DATA_ELEMENT_GROUP_SET].includes(dimensionItem.dimensionType);
|
|
43
45
|
|
|
44
46
|
const countFromDisaggregates = list => {
|
|
45
47
|
let count = 1;
|
|
@@ -266,8 +268,8 @@ class PivotTableEngine {
|
|
|
266
268
|
column
|
|
267
269
|
});
|
|
268
270
|
const headers = [...this.getRawRowHeader(row), ...this.getRawColumnHeader(column)];
|
|
269
|
-
const peId = (_headers$find = headers.find(header => (header === null || header === void 0 ? void 0 : header.dimensionItemType) ===
|
|
270
|
-
const ouId = (_headers$find2 = headers.find(header => (header === null || header === void 0 ? void 0 : header.dimensionItemType) ===
|
|
271
|
+
const peId = (_headers$find = headers.find(header => (header === null || header === void 0 ? void 0 : header.dimensionItemType) === _dataTypes.DIMENSION_TYPE_PERIOD)) === null || _headers$find === void 0 ? void 0 : _headers$find.uid;
|
|
272
|
+
const ouId = (_headers$find2 = headers.find(header => (header === null || header === void 0 ? void 0 : header.dimensionItemType) === _dataTypes.DIMENSION_TYPE_ORGANISATION_UNIT)) === null || _headers$find2 === void 0 ? void 0 : _headers$find2.uid;
|
|
271
273
|
|
|
272
274
|
if (!this.data[row] || !this.data[row][column]) {
|
|
273
275
|
return {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.CLIPPED_AXIS_PARTITION_SIZE_PX = exports.WRAPPED_TEXT_LINE_HEIGHT = exports.WRAPPED_TEXT_JUSTIFY_BUFFER = exports.CLIPPED_CELL_MIN_SIZE = exports.CLIPPED_CELL_MAX_SIZE = exports.DISPLAY_DENSITY_PADDING_COMFORTABLE = exports.DISPLAY_DENSITY_OPTION_COMFORTABLE = exports.DISPLAY_DENSITY_PADDING_NORMAL = exports.DISPLAY_DENSITY_OPTION_NORMAL = exports.DISPLAY_DENSITY_PADDING_COMPACT = exports.DISPLAY_DENSITY_OPTION_COMPACT = exports.FONT_SIZE_LARGE = exports.FONT_SIZE_OPTION_LARGE = exports.FONT_SIZE_NORMAL = exports.FONT_SIZE_OPTION_NORMAL = exports.FONT_SIZE_SMALL = exports.FONT_SIZE_OPTION_SMALL = exports.BORDER_COLOR = exports.NUMBER_TYPE_COLUMN_PERCENTAGE = exports.NUMBER_TYPE_ROW_PERCENTAGE = exports.NUMBER_TYPE_VALUE = exports.AGGREGATE_TYPE_NA = exports.AGGREGATE_TYPE_AVERAGE = exports.AGGREGATE_TYPE_SUM = exports.CELL_TYPE_TOTAL = exports.CELL_TYPE_SUBTOTAL = exports.CELL_TYPE_VALUE = exports.SORT_ORDER_DESCENDING = exports.SORT_ORDER_ASCENDING = void 0;
|
|
7
7
|
const SORT_ORDER_ASCENDING = 1;
|
|
8
8
|
exports.SORT_ORDER_ASCENDING = SORT_ORDER_ASCENDING;
|
|
9
9
|
const SORT_ORDER_DESCENDING = -1;
|
|
@@ -61,12 +61,4 @@ exports.WRAPPED_TEXT_JUSTIFY_BUFFER = WRAPPED_TEXT_JUSTIFY_BUFFER;
|
|
|
61
61
|
const WRAPPED_TEXT_LINE_HEIGHT = 1.0;
|
|
62
62
|
exports.WRAPPED_TEXT_LINE_HEIGHT = WRAPPED_TEXT_LINE_HEIGHT;
|
|
63
63
|
const CLIPPED_AXIS_PARTITION_SIZE_PX = 1000;
|
|
64
|
-
exports.CLIPPED_AXIS_PARTITION_SIZE_PX = CLIPPED_AXIS_PARTITION_SIZE_PX;
|
|
65
|
-
const DIMENSION_TYPE_DATA_ELEMENT_GROUP_SET = 'DATA_ELEMENT_GROUP_SET';
|
|
66
|
-
exports.DIMENSION_TYPE_DATA_ELEMENT_GROUP_SET = DIMENSION_TYPE_DATA_ELEMENT_GROUP_SET;
|
|
67
|
-
const DIMENSION_TYPE_DATA = 'DATA_X';
|
|
68
|
-
exports.DIMENSION_TYPE_DATA = DIMENSION_TYPE_DATA;
|
|
69
|
-
const DIMENSION_TYPE_PERIOD = 'PERIOD';
|
|
70
|
-
exports.DIMENSION_TYPE_PERIOD = DIMENSION_TYPE_PERIOD;
|
|
71
|
-
const DIMENSION_TYPE_ORGUNIT = 'ORGANISATION_UNIT';
|
|
72
|
-
exports.DIMENSION_TYPE_ORGUNIT = DIMENSION_TYPE_ORGUNIT;
|
|
64
|
+
exports.CLIPPED_AXIS_PARTITION_SIZE_PX = CLIPPED_AXIS_PARTITION_SIZE_PX;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import objectClean from 'd2-utilizr/lib/objectClean';
|
|
2
|
-
import {
|
|
2
|
+
import { DIMENSION_TYPE_ALL, DIMENSION_TYPE_INDICATOR, DIMENSION_TYPE_DATA_ELEMENT, DIMENSION_TYPE_DATA_SET, DIMENSION_TYPE_PROGRAM_INDICATOR, DIMENSION_TYPE_EVENT_DATA_ITEM, DIMENSION_TYPE_PROGRAM_DATA_ELEMENT, DIMENSION_TYPE_PROGRAM_ATTRIBUTE, TOTALS } from '../modules/dataTypes.js';
|
|
3
3
|
import { onError } from './index.js'; // Query definitions
|
|
4
4
|
|
|
5
5
|
export const dimensionsQuery = {
|
|
@@ -44,13 +44,13 @@ export const dataItemsQuery = {
|
|
|
44
44
|
}) => {
|
|
45
45
|
const filters = []; // TODO: Extract all of this logic out of the query?
|
|
46
46
|
|
|
47
|
-
if ((filter === null || filter === void 0 ? void 0 : filter.dataType) ===
|
|
48
|
-
filters.push("dimensionItemType:in:[".concat(
|
|
49
|
-
} else if (filter !== null && filter !== void 0 && filter.dataType && filter.dataType !==
|
|
47
|
+
if ((filter === null || filter === void 0 ? void 0 : filter.dataType) === DIMENSION_TYPE_EVENT_DATA_ITEM) {
|
|
48
|
+
filters.push("dimensionItemType:in:[".concat(DIMENSION_TYPE_PROGRAM_DATA_ELEMENT, ",").concat(DIMENSION_TYPE_PROGRAM_ATTRIBUTE, "]"));
|
|
49
|
+
} else if (filter !== null && filter !== void 0 && filter.dataType && filter.dataType !== DIMENSION_TYPE_ALL) {
|
|
50
50
|
filters.push("dimensionItemType:eq:".concat(filter.dataType));
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
if (filter !== null && filter !== void 0 && filter.group && filter.group !==
|
|
53
|
+
if (filter !== null && filter !== void 0 && filter.group && filter.group !== DIMENSION_TYPE_ALL && [DIMENSION_TYPE_EVENT_DATA_ITEM, DIMENSION_TYPE_PROGRAM_INDICATOR].includes(filter.dataType)) {
|
|
54
54
|
filters.push("programId:eq:".concat(filter.group));
|
|
55
55
|
}
|
|
56
56
|
|
|
@@ -77,7 +77,7 @@ export const indicatorsQuery = {
|
|
|
77
77
|
}) => {
|
|
78
78
|
const filters = [];
|
|
79
79
|
|
|
80
|
-
if (filter !== null && filter !== void 0 && filter.group && filter.group !==
|
|
80
|
+
if (filter !== null && filter !== void 0 && filter.group && filter.group !== DIMENSION_TYPE_ALL) {
|
|
81
81
|
filters.push("indicatorGroups.id:eq:".concat(filter.group));
|
|
82
82
|
}
|
|
83
83
|
|
|
@@ -112,10 +112,10 @@ export const dataElementsQuery = {
|
|
|
112
112
|
searchTerm,
|
|
113
113
|
page
|
|
114
114
|
}) => {
|
|
115
|
-
const idField = (filter === null || filter === void 0 ? void 0 : filter.group) ===
|
|
115
|
+
const idField = (filter === null || filter === void 0 ? void 0 : filter.group) === DIMENSION_TYPE_ALL ? 'id' : 'dimensionItem~rename(id)';
|
|
116
116
|
const filters = ['domainType:eq:AGGREGATE'];
|
|
117
117
|
|
|
118
|
-
if (filter !== null && filter !== void 0 && filter.group && filter.group !==
|
|
118
|
+
if (filter !== null && filter !== void 0 && filter.group && filter.group !== DIMENSION_TYPE_ALL) {
|
|
119
119
|
filters.push("dataElementGroups.id:eq:".concat(filter.group));
|
|
120
120
|
}
|
|
121
121
|
|
|
@@ -175,10 +175,10 @@ export const dataElementOperandsQuery = {
|
|
|
175
175
|
searchTerm,
|
|
176
176
|
page
|
|
177
177
|
}) => {
|
|
178
|
-
const idField = (filter === null || filter === void 0 ? void 0 : filter.group) ===
|
|
178
|
+
const idField = (filter === null || filter === void 0 ? void 0 : filter.group) === DIMENSION_TYPE_ALL ? 'id' : 'dimensionItem~rename(id)';
|
|
179
179
|
const filters = [];
|
|
180
180
|
|
|
181
|
-
if (filter !== null && filter !== void 0 && filter.group && filter.group !==
|
|
181
|
+
if (filter !== null && filter !== void 0 && filter.group && filter.group !== DIMENSION_TYPE_ALL) {
|
|
182
182
|
filters.push("dataElement.dataElementGroups.id:eq:".concat(filter.group));
|
|
183
183
|
}
|
|
184
184
|
|
|
@@ -209,7 +209,7 @@ export const dataSetsQuery = {
|
|
|
209
209
|
filters.push("".concat(nameProp, ":ilike:").concat(searchTerm));
|
|
210
210
|
}
|
|
211
211
|
|
|
212
|
-
if (filter !== null && filter !== void 0 && filter.group && filter.group !==
|
|
212
|
+
if (filter !== null && filter !== void 0 && filter.group && filter.group !== DIMENSION_TYPE_ALL) {
|
|
213
213
|
filters.push("id:eq:".concat(filter.group));
|
|
214
214
|
}
|
|
215
215
|
|
|
@@ -270,7 +270,7 @@ export const apiFetchOptions = ({
|
|
|
270
270
|
page
|
|
271
271
|
}) => {
|
|
272
272
|
switch (filter === null || filter === void 0 ? void 0 : filter.dataType) {
|
|
273
|
-
case
|
|
273
|
+
case DIMENSION_TYPE_INDICATOR:
|
|
274
274
|
{
|
|
275
275
|
return fetchIndicators({
|
|
276
276
|
dataEngine,
|
|
@@ -281,7 +281,7 @@ export const apiFetchOptions = ({
|
|
|
281
281
|
});
|
|
282
282
|
}
|
|
283
283
|
|
|
284
|
-
case
|
|
284
|
+
case DIMENSION_TYPE_DATA_ELEMENT:
|
|
285
285
|
{
|
|
286
286
|
if (filter.subGroup === TOTALS) {
|
|
287
287
|
return fetchDataElements({
|
|
@@ -302,7 +302,7 @@ export const apiFetchOptions = ({
|
|
|
302
302
|
}
|
|
303
303
|
}
|
|
304
304
|
|
|
305
|
-
case
|
|
305
|
+
case DIMENSION_TYPE_DATA_SET:
|
|
306
306
|
{
|
|
307
307
|
return fetchDataSets({
|
|
308
308
|
dataEngine,
|
|
@@ -325,10 +325,10 @@ export const apiFetchOptions = ({
|
|
|
325
325
|
};
|
|
326
326
|
export const apiFetchGroups = async (dataEngine, dataType, nameProp) => {
|
|
327
327
|
// indicatorGroups does not support shortName
|
|
328
|
-
const name = dataType ===
|
|
328
|
+
const name = dataType === DIMENSION_TYPE_INDICATOR ? 'displayName' : nameProp;
|
|
329
329
|
|
|
330
330
|
switch (dataType) {
|
|
331
|
-
case
|
|
331
|
+
case DIMENSION_TYPE_INDICATOR:
|
|
332
332
|
{
|
|
333
333
|
const indicatorGroupsData = await dataEngine.query({
|
|
334
334
|
indicatorGroups: indicatorGroupsQuery
|
|
@@ -341,7 +341,7 @@ export const apiFetchGroups = async (dataEngine, dataType, nameProp) => {
|
|
|
341
341
|
return indicatorGroupsData.indicatorGroups.indicatorGroups;
|
|
342
342
|
}
|
|
343
343
|
|
|
344
|
-
case
|
|
344
|
+
case DIMENSION_TYPE_DATA_ELEMENT:
|
|
345
345
|
{
|
|
346
346
|
const dataElementGroupsData = await dataEngine.query({
|
|
347
347
|
dataElementGroups: dataElementGroupsQuery
|
|
@@ -354,7 +354,7 @@ export const apiFetchGroups = async (dataEngine, dataType, nameProp) => {
|
|
|
354
354
|
return dataElementGroupsData.dataElementGroups.dataElementGroups;
|
|
355
355
|
}
|
|
356
356
|
|
|
357
|
-
case
|
|
357
|
+
case DIMENSION_TYPE_DATA_SET:
|
|
358
358
|
{
|
|
359
359
|
const response = await dataEngine.query({
|
|
360
360
|
data: dataSetsQuery
|
|
@@ -367,8 +367,8 @@ export const apiFetchGroups = async (dataEngine, dataType, nameProp) => {
|
|
|
367
367
|
return response.data.dataSets;
|
|
368
368
|
}
|
|
369
369
|
|
|
370
|
-
case
|
|
371
|
-
case
|
|
370
|
+
case DIMENSION_TYPE_EVENT_DATA_ITEM:
|
|
371
|
+
case DIMENSION_TYPE_PROGRAM_INDICATOR:
|
|
372
372
|
{
|
|
373
373
|
const programsData = await dataEngine.query({
|
|
374
374
|
programs: programsQuery
|
|
@@ -3,10 +3,10 @@ import { SingleSelectField, SingleSelectOption } from '@dhis2/ui';
|
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import i18n from '../../locales/index.js';
|
|
6
|
-
import {
|
|
7
|
-
import styles from './styles/
|
|
6
|
+
import { DIMENSION_TYPE_ALL, dataTypeMap as dataTypes } from '../../modules/dataTypes.js';
|
|
7
|
+
import styles from './styles/DataTypeSelector.style.js';
|
|
8
8
|
|
|
9
|
-
const
|
|
9
|
+
const DataTypeSelector = ({
|
|
10
10
|
currentDataType,
|
|
11
11
|
onChange,
|
|
12
12
|
dataTest
|
|
@@ -18,12 +18,12 @@ const DataTypes = ({
|
|
|
18
18
|
}, /*#__PURE__*/React.createElement(SingleSelectField, {
|
|
19
19
|
label: i18n.t('Data Type'),
|
|
20
20
|
dataTest: dataTest,
|
|
21
|
-
selected: ((_dataTypes$currentDat = dataTypes[currentDataType]) === null || _dataTypes$currentDat === void 0 ? void 0 : _dataTypes$currentDat.id) ||
|
|
21
|
+
selected: ((_dataTypes$currentDat = dataTypes[currentDataType]) === null || _dataTypes$currentDat === void 0 ? void 0 : _dataTypes$currentDat.id) || DIMENSION_TYPE_ALL,
|
|
22
22
|
onChange: ref => onChange(ref.selected),
|
|
23
23
|
dense: true
|
|
24
24
|
}, /*#__PURE__*/React.createElement(SingleSelectOption, {
|
|
25
|
-
value:
|
|
26
|
-
key:
|
|
25
|
+
value: DIMENSION_TYPE_ALL,
|
|
26
|
+
key: DIMENSION_TYPE_ALL,
|
|
27
27
|
label: i18n.t('All types'),
|
|
28
28
|
dataTest: "".concat(dataTest, "-option-all")
|
|
29
29
|
}), Object.values(dataTypes).map(type => /*#__PURE__*/React.createElement(SingleSelectOption, {
|
|
@@ -36,9 +36,9 @@ const DataTypes = ({
|
|
|
36
36
|
}, styles));
|
|
37
37
|
};
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
DataTypeSelector.propTypes = {
|
|
40
40
|
currentDataType: PropTypes.string.isRequired,
|
|
41
41
|
onChange: PropTypes.func.isRequired,
|
|
42
42
|
dataTest: PropTypes.string
|
|
43
43
|
};
|
|
44
|
-
export default
|
|
44
|
+
export default DataTypeSelector;
|
|
@@ -5,12 +5,12 @@ import PropTypes from 'prop-types';
|
|
|
5
5
|
import React, { useEffect, useState } from 'react';
|
|
6
6
|
import { apiFetchGroups } from '../../api/dimensions.js';
|
|
7
7
|
import i18n from '../../locales/index.js';
|
|
8
|
-
import { dataTypes, SUB_GROUP_DETAIL, SUB_GROUP_METRIC } from '../../modules/dataTypes.js';
|
|
8
|
+
import { dataTypeMap as dataTypes, SUB_GROUP_DETAIL, SUB_GROUP_METRIC } from '../../modules/dataTypes.js';
|
|
9
9
|
import { DetailSelector } from './DetailSelector.js';
|
|
10
10
|
import { MetricSelector } from './MetricSelector.js';
|
|
11
11
|
import styles from './styles/GroupSelector.style.js';
|
|
12
12
|
|
|
13
|
-
const
|
|
13
|
+
const GroupSelector = ({
|
|
14
14
|
dataType,
|
|
15
15
|
currentGroup,
|
|
16
16
|
onGroupChange,
|
|
@@ -74,7 +74,7 @@ const GroupsSelector = ({
|
|
|
74
74
|
}));
|
|
75
75
|
};
|
|
76
76
|
|
|
77
|
-
|
|
77
|
+
GroupSelector.propTypes = {
|
|
78
78
|
dataType: PropTypes.string.isRequired,
|
|
79
79
|
displayNameProp: PropTypes.string.isRequired,
|
|
80
80
|
onGroupChange: PropTypes.func.isRequired,
|
|
@@ -83,4 +83,4 @@ GroupsSelector.propTypes = {
|
|
|
83
83
|
currentSubGroup: PropTypes.string,
|
|
84
84
|
dataTest: PropTypes.string
|
|
85
85
|
};
|
|
86
|
-
export default
|
|
86
|
+
export default GroupSelector;
|
|
@@ -11,12 +11,12 @@ import DataElementIcon from '../../assets/DimensionItemIcons/DataElementIcon.js'
|
|
|
11
11
|
import GenericIcon from '../../assets/DimensionItemIcons/GenericIcon.js';
|
|
12
12
|
import i18n from '../../locales/index.js';
|
|
13
13
|
import { DATA_SETS_CONSTANTS, REPORTING_RATE } from '../../modules/dataSets.js';
|
|
14
|
-
import {
|
|
14
|
+
import { dataTypeMap as dataTypes, DIMENSION_TYPE_ALL, DIMENSION_TYPE_DATA_ELEMENT, DIMENSION_TYPE_DATA_ELEMENT_OPERAND, DIMENSION_TYPE_DATA_SET, DIMENSION_TYPE_EVENT_DATA_ITEM, DIMENSION_TYPE_PROGRAM_INDICATOR, DIMENSION_TYPE_INDICATOR, TOTALS, DIMENSION_TYPE_PROGRAM_DATA_ELEMENT, DIMENSION_TYPE_PROGRAM_ATTRIBUTE } from '../../modules/dataTypes.js';
|
|
15
15
|
import { TRANSFER_HEIGHT, TRANSFER_OPTIONS_WIDTH, TRANSFER_SELECTED_WIDTH } from '../../modules/dimensionSelectorHelper.js';
|
|
16
16
|
import { useDebounce, useDidUpdateEffect } from '../../modules/utils.js';
|
|
17
17
|
import styles from '../styles/DimensionSelector.style.js';
|
|
18
18
|
import { TransferOption } from '../TransferOption.js';
|
|
19
|
-
import DataTypeSelector from './
|
|
19
|
+
import DataTypeSelector from './DataTypeSelector.js';
|
|
20
20
|
import GroupSelector from './GroupSelector.js';
|
|
21
21
|
|
|
22
22
|
const LeftHeader = ({
|
|
@@ -110,23 +110,23 @@ const SourceEmptyPlaceholder = ({
|
|
|
110
110
|
message = noItemsMessage;
|
|
111
111
|
} else {
|
|
112
112
|
switch (dataType) {
|
|
113
|
-
case
|
|
113
|
+
case DIMENSION_TYPE_INDICATOR:
|
|
114
114
|
message = i18n.t('No indicators found');
|
|
115
115
|
break;
|
|
116
116
|
|
|
117
|
-
case
|
|
117
|
+
case DIMENSION_TYPE_DATA_ELEMENT:
|
|
118
118
|
message = i18n.t('No data elements found');
|
|
119
119
|
break;
|
|
120
120
|
|
|
121
|
-
case
|
|
121
|
+
case DIMENSION_TYPE_DATA_SET:
|
|
122
122
|
message = i18n.t('No data sets found');
|
|
123
123
|
break;
|
|
124
124
|
|
|
125
|
-
case
|
|
125
|
+
case DIMENSION_TYPE_EVENT_DATA_ITEM:
|
|
126
126
|
message = i18n.t('No event data items found');
|
|
127
127
|
break;
|
|
128
128
|
|
|
129
|
-
case
|
|
129
|
+
case DIMENSION_TYPE_PROGRAM_INDICATOR:
|
|
130
130
|
message = i18n.t('No program indicators found');
|
|
131
131
|
break;
|
|
132
132
|
|
|
@@ -137,31 +137,31 @@ const SourceEmptyPlaceholder = ({
|
|
|
137
137
|
}
|
|
138
138
|
} else if (!loading && !options.length && searchTerm) {
|
|
139
139
|
switch (dataType) {
|
|
140
|
-
case
|
|
140
|
+
case DIMENSION_TYPE_INDICATOR:
|
|
141
141
|
message = i18n.t('No indicators found for "{{- searchTerm}}"', {
|
|
142
142
|
searchTerm: searchTerm
|
|
143
143
|
});
|
|
144
144
|
break;
|
|
145
145
|
|
|
146
|
-
case
|
|
146
|
+
case DIMENSION_TYPE_DATA_ELEMENT:
|
|
147
147
|
message = i18n.t('No data elements found for "{{- searchTerm}}"', {
|
|
148
148
|
searchTerm: searchTerm
|
|
149
149
|
});
|
|
150
150
|
break;
|
|
151
151
|
|
|
152
|
-
case
|
|
152
|
+
case DIMENSION_TYPE_DATA_SET:
|
|
153
153
|
message = i18n.t('No data sets found for "{{- searchTerm}}"', {
|
|
154
154
|
searchTerm: searchTerm
|
|
155
155
|
});
|
|
156
156
|
break;
|
|
157
157
|
|
|
158
|
-
case
|
|
158
|
+
case DIMENSION_TYPE_EVENT_DATA_ITEM:
|
|
159
159
|
message = i18n.t('No event data items found for "{{- searchTerm}}"', {
|
|
160
160
|
searchTerm: searchTerm
|
|
161
161
|
});
|
|
162
162
|
break;
|
|
163
163
|
|
|
164
|
-
case
|
|
164
|
+
case DIMENSION_TYPE_PROGRAM_INDICATOR:
|
|
165
165
|
message = i18n.t('No program indicators found for "{{- searchTerm}}"', {
|
|
166
166
|
searchTerm: searchTerm
|
|
167
167
|
});
|
|
@@ -204,7 +204,7 @@ const ItemSelector = ({
|
|
|
204
204
|
const [state, setState] = useState({
|
|
205
205
|
searchTerm: '',
|
|
206
206
|
filter: {
|
|
207
|
-
dataType:
|
|
207
|
+
dataType: DIMENSION_TYPE_ALL
|
|
208
208
|
},
|
|
209
209
|
options: [],
|
|
210
210
|
loading: true,
|
|
@@ -238,7 +238,7 @@ const ItemSelector = ({
|
|
|
238
238
|
const newOptions = [];
|
|
239
239
|
(_result$dimensionItem = result.dimensionItems) === null || _result$dimensionItem === void 0 ? void 0 : _result$dimensionItem.forEach(item => {
|
|
240
240
|
if (item.dimensionItemType === REPORTING_RATE) {
|
|
241
|
-
if (state.filter.subGroup && state.filter.subGroup !==
|
|
241
|
+
if (state.filter.subGroup && state.filter.subGroup !== DIMENSION_TYPE_ALL) {
|
|
242
242
|
const metric = DATA_SETS_CONSTANTS.find(item => item.id === state.filter.subGroup);
|
|
243
243
|
newOptions.push({
|
|
244
244
|
label: "".concat(item.name, " - ").concat(metric.getName()),
|
|
@@ -325,15 +325,15 @@ const ItemSelector = ({
|
|
|
325
325
|
var _dataTypes$itemType;
|
|
326
326
|
|
|
327
327
|
switch (itemType) {
|
|
328
|
-
case
|
|
329
|
-
return dataTypes[
|
|
328
|
+
case DIMENSION_TYPE_DATA_ELEMENT_OPERAND:
|
|
329
|
+
return dataTypes[DIMENSION_TYPE_DATA_ELEMENT].getItemName();
|
|
330
330
|
|
|
331
331
|
case REPORTING_RATE:
|
|
332
|
-
return dataTypes[
|
|
332
|
+
return dataTypes[DIMENSION_TYPE_DATA_SET].getItemName();
|
|
333
333
|
|
|
334
|
-
case
|
|
335
|
-
case
|
|
336
|
-
return dataTypes[
|
|
334
|
+
case DIMENSION_TYPE_PROGRAM_DATA_ELEMENT:
|
|
335
|
+
case DIMENSION_TYPE_PROGRAM_ATTRIBUTE:
|
|
336
|
+
return dataTypes[DIMENSION_TYPE_EVENT_DATA_ITEM].getItemName();
|
|
337
337
|
|
|
338
338
|
default:
|
|
339
339
|
return (_dataTypes$itemType = dataTypes[itemType]) === null || _dataTypes$itemType === void 0 ? void 0 : _dataTypes$itemType.getItemName();
|
|
@@ -342,22 +342,22 @@ const ItemSelector = ({
|
|
|
342
342
|
|
|
343
343
|
const getIcon = itemType => {
|
|
344
344
|
switch (itemType) {
|
|
345
|
-
case
|
|
345
|
+
case DIMENSION_TYPE_INDICATOR:
|
|
346
346
|
return /*#__PURE__*/React.createElement(IconDimensionIndicator16, null);
|
|
347
347
|
|
|
348
|
-
case
|
|
349
|
-
case
|
|
348
|
+
case DIMENSION_TYPE_DATA_ELEMENT_OPERAND:
|
|
349
|
+
case DIMENSION_TYPE_DATA_ELEMENT:
|
|
350
350
|
return DataElementIcon;
|
|
351
351
|
|
|
352
352
|
case REPORTING_RATE:
|
|
353
353
|
return /*#__PURE__*/React.createElement(IconDimensionDataSet16, null);
|
|
354
354
|
|
|
355
|
-
case
|
|
356
|
-
case
|
|
357
|
-
case
|
|
355
|
+
case DIMENSION_TYPE_EVENT_DATA_ITEM:
|
|
356
|
+
case DIMENSION_TYPE_PROGRAM_DATA_ELEMENT:
|
|
357
|
+
case DIMENSION_TYPE_PROGRAM_ATTRIBUTE:
|
|
358
358
|
return /*#__PURE__*/React.createElement(IconDimensionEventDataItem16, null);
|
|
359
359
|
|
|
360
|
-
case
|
|
360
|
+
case DIMENSION_TYPE_PROGRAM_INDICATOR:
|
|
361
361
|
return /*#__PURE__*/React.createElement(IconDimensionProgramIndicator16, null);
|
|
362
362
|
|
|
363
363
|
default:
|
|
@@ -388,7 +388,7 @@ const ItemSelector = ({
|
|
|
388
388
|
setFilter({ ...state.filter,
|
|
389
389
|
dataType,
|
|
390
390
|
group: null,
|
|
391
|
-
subGroup: dataType ===
|
|
391
|
+
subGroup: dataType === DIMENSION_TYPE_DATA_ELEMENT ? TOTALS : null
|
|
392
392
|
});
|
|
393
393
|
},
|
|
394
394
|
group: state.filter.group,
|
|
@@ -424,7 +424,7 @@ const ItemSelector = ({
|
|
|
424
424
|
icon: getIcon(getItemType(props.value
|
|
425
425
|
/* eslint-disable-line react/prop-types */
|
|
426
426
|
)),
|
|
427
|
-
tooltipText: state.filter.dataType ===
|
|
427
|
+
tooltipText: state.filter.dataType === DIMENSION_TYPE_ALL ? getTooltipText(getItemType(props.value
|
|
428
428
|
/* eslint-disable-line react/prop-types */
|
|
429
429
|
)) : undefined,
|
|
430
430
|
dataTest: "".concat(dataTest, "-transfer-option")
|
|
@@ -4,7 +4,7 @@ import PropTypes from 'prop-types';
|
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import i18n from '../../locales/index.js';
|
|
6
6
|
import { DATA_SETS_CONSTANTS } from '../../modules/dataSets.js';
|
|
7
|
-
import {
|
|
7
|
+
import { DIMENSION_TYPE_ALL } from '../../modules/dataTypes.js';
|
|
8
8
|
import styles from './styles/MetricSelector.style.js';
|
|
9
9
|
export const MetricSelector = ({
|
|
10
10
|
currentValue,
|
|
@@ -15,15 +15,15 @@ export const MetricSelector = ({
|
|
|
15
15
|
className: "jsx-".concat(styles.__hash) + " " + "metric-container"
|
|
16
16
|
}, /*#__PURE__*/React.createElement(SingleSelectField, {
|
|
17
17
|
label: i18n.t('Metric type'),
|
|
18
|
-
selected: currentValue ||
|
|
18
|
+
selected: currentValue || DIMENSION_TYPE_ALL,
|
|
19
19
|
onChange: ref => onChange(ref.selected),
|
|
20
20
|
dense: true,
|
|
21
21
|
dataTest: dataTest
|
|
22
22
|
}, /*#__PURE__*/React.createElement(SingleSelectOption, {
|
|
23
|
-
value:
|
|
24
|
-
key:
|
|
23
|
+
value: DIMENSION_TYPE_ALL,
|
|
24
|
+
key: DIMENSION_TYPE_ALL,
|
|
25
25
|
label: i18n.t('All metrics'),
|
|
26
|
-
dataTest: "".concat(dataTest, "-option-").concat(
|
|
26
|
+
dataTest: "".concat(dataTest, "-option-").concat(DIMENSION_TYPE_ALL)
|
|
27
27
|
}), DATA_SETS_CONSTANTS.map(option => /*#__PURE__*/React.createElement(SingleSelectOption, {
|
|
28
28
|
value: option.id,
|
|
29
29
|
key: option.id,
|
|
File without changes
|
package/build/es/index.js
CHANGED
|
@@ -90,4 +90,5 @@ export { COLOR_SET_DEFAULT, COLOR_SET_BRIGHT, COLOR_SET_DARK, COLOR_SET_GRAY, CO
|
|
|
90
90
|
export { DAILY, WEEKLY, WEEKLYWED, WEEKLYTHU, WEEKLYSAT, WEEKLYSUN, BIWEEKLY, MONTHLY, BIMONTHLY, QUARTERLY, SIXMONTHLY, SIXMONTHLYAPR, YEARLY, FINANCIAL, FYNOV, FYOCT, FYJUL, FYAPR } from './components/PeriodDimension/utils/index.js';
|
|
91
91
|
export { getRelativePeriodsOptionsById } from './components/PeriodDimension/utils/relativePeriods.js';
|
|
92
92
|
export { getFixedPeriodsOptionsById } from './components/PeriodDimension/utils/fixedPeriods.js';
|
|
93
|
-
export { default as VisualizationOptions } from './components/Options/VisualizationOptions.js';
|
|
93
|
+
export { default as VisualizationOptions } from './components/Options/VisualizationOptions.js';
|
|
94
|
+
export { DIMENSION_TYPE_INDICATOR, DIMENSION_TYPE_DATA_ELEMENT, DIMENSION_TYPE_DATA_SET, DIMENSION_TYPE_EVENT_DATA_ITEM, DIMENSION_TYPE_PROGRAM_INDICATOR, DIMENSION_TYPE_PROGRAM_DATA_ELEMENT, DIMENSION_TYPE_PROGRAM_ATTRIBUTE, DIMENSION_TYPE_DATA_ELEMENT_OPERAND, DIMENSION_TYPE_CATEGORY, DIMENSION_TYPE_CATEGORY_OPTION_GROUP_SET, DIMENSION_TYPE_ALL, DIMENSION_TYPE_DATA, DIMENSION_TYPE_DATA_ELEMENT_GROUP_SET, DIMENSION_TYPE_ORGANISATION_UNIT, DIMENSION_TYPE_PERIOD, DIMENSION_TYPE_ORGANISATION_UNIT_GROUP_SET } from './modules/dataTypes.js';
|