@dhis2/analytics 23.8.0 → 23.8.3
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 +21 -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/components/FileMenu/FileMenu.styles.js +2 -2
- package/build/cjs/index.js +98 -0
- package/build/cjs/modules/__tests__/renderValue.spec.js +289 -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/cjs/modules/renderValue.js +7 -7
- package/build/cjs/modules/valueTypes.js +7 -2
- 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/components/FileMenu/FileMenu.styles.js +2 -2
- package/build/es/index.js +2 -1
- package/build/es/modules/__tests__/renderValue.spec.js +284 -0
- 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/build/es/modules/renderValue.js +8 -8
- package/build/es/modules/valueTypes.js +3 -1
- package/package.json +1 -1
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _pivotTableConstants = require("../pivotTable/pivotTableConstants.js");
|
|
4
|
+
|
|
5
|
+
var _renderValue = require("../renderValue.js");
|
|
6
|
+
|
|
7
|
+
var _valueTypes = require("../valueTypes.js");
|
|
8
|
+
|
|
9
|
+
const DGS_COMMA = 'COMMA';
|
|
10
|
+
const DGS_SPACE = 'SPACE';
|
|
11
|
+
const DGS_NONE = 'NONE';
|
|
12
|
+
const tests = [// Numbers
|
|
13
|
+
{
|
|
14
|
+
value: 1000.5,
|
|
15
|
+
expected: '1 000.5',
|
|
16
|
+
valueType: _valueTypes.VALUE_TYPE_NUMBER,
|
|
17
|
+
round: true,
|
|
18
|
+
dgs: DGS_SPACE
|
|
19
|
+
}, {
|
|
20
|
+
value: 33777889.55,
|
|
21
|
+
expected: '33,777,889.5',
|
|
22
|
+
valueType: _valueTypes.VALUE_TYPE_NUMBER,
|
|
23
|
+
round: true,
|
|
24
|
+
dgs: DGS_COMMA
|
|
25
|
+
}, {
|
|
26
|
+
value: 33777889.556,
|
|
27
|
+
expected: '33 777 889.6',
|
|
28
|
+
valueType: _valueTypes.VALUE_TYPE_NUMBER,
|
|
29
|
+
round: true,
|
|
30
|
+
dgs: DGS_SPACE
|
|
31
|
+
}, {
|
|
32
|
+
value: 33777889.556,
|
|
33
|
+
expected: '33 777 889.5560000017',
|
|
34
|
+
// float issue?
|
|
35
|
+
valueType: _valueTypes.VALUE_TYPE_NUMBER,
|
|
36
|
+
round: false,
|
|
37
|
+
dgs: DGS_SPACE
|
|
38
|
+
}, {
|
|
39
|
+
value: 33777889.56,
|
|
40
|
+
expected: '33777889.6',
|
|
41
|
+
valueType: _valueTypes.VALUE_TYPE_NUMBER,
|
|
42
|
+
round: true,
|
|
43
|
+
dgs: DGS_NONE
|
|
44
|
+
}, {
|
|
45
|
+
value: 0.0005,
|
|
46
|
+
expected: '0',
|
|
47
|
+
valueType: _valueTypes.VALUE_TYPE_NUMBER,
|
|
48
|
+
round: true,
|
|
49
|
+
dgs: DGS_SPACE
|
|
50
|
+
}, {
|
|
51
|
+
value: 0.109,
|
|
52
|
+
expected: '0.11',
|
|
53
|
+
valueType: _valueTypes.VALUE_TYPE_NUMBER,
|
|
54
|
+
round: true,
|
|
55
|
+
dgs: DGS_SPACE
|
|
56
|
+
}, {
|
|
57
|
+
value: 1.101,
|
|
58
|
+
expected: '1.1',
|
|
59
|
+
valueType: _valueTypes.VALUE_TYPE_NUMBER,
|
|
60
|
+
round: true,
|
|
61
|
+
dgs: DGS_SPACE
|
|
62
|
+
}, {
|
|
63
|
+
value: 1.101,
|
|
64
|
+
expected: '1.1010000000',
|
|
65
|
+
valueType: _valueTypes.VALUE_TYPE_NUMBER,
|
|
66
|
+
round: false,
|
|
67
|
+
dgs: DGS_SPACE
|
|
68
|
+
}, {
|
|
69
|
+
value: 0.0005,
|
|
70
|
+
expected: '0.0005000000',
|
|
71
|
+
valueType: _valueTypes.VALUE_TYPE_NUMBER,
|
|
72
|
+
round: false,
|
|
73
|
+
dgs: DGS_SPACE
|
|
74
|
+
}, // Numbers showing as column/row percentage
|
|
75
|
+
{
|
|
76
|
+
value: 0.234,
|
|
77
|
+
expected: '23.4%',
|
|
78
|
+
valueType: _valueTypes.VALUE_TYPE_NUMBER,
|
|
79
|
+
numberType: _pivotTableConstants.NUMBER_TYPE_ROW_PERCENTAGE,
|
|
80
|
+
round: true,
|
|
81
|
+
dgs: DGS_SPACE
|
|
82
|
+
}, {
|
|
83
|
+
value: 0.234,
|
|
84
|
+
expected: '23.4%',
|
|
85
|
+
valueType: _valueTypes.VALUE_TYPE_NUMBER,
|
|
86
|
+
numberType: _pivotTableConstants.NUMBER_TYPE_ROW_PERCENTAGE,
|
|
87
|
+
round: false,
|
|
88
|
+
dgs: DGS_SPACE
|
|
89
|
+
}, {
|
|
90
|
+
value: 0.000234,
|
|
91
|
+
expected: '0.02%',
|
|
92
|
+
valueType: _valueTypes.VALUE_TYPE_NUMBER,
|
|
93
|
+
numberType: _pivotTableConstants.NUMBER_TYPE_ROW_PERCENTAGE,
|
|
94
|
+
round: true,
|
|
95
|
+
dgs: DGS_SPACE
|
|
96
|
+
}, {
|
|
97
|
+
value: 0.0000432,
|
|
98
|
+
expected: '0%',
|
|
99
|
+
valueType: _valueTypes.VALUE_TYPE_NUMBER,
|
|
100
|
+
numberType: _pivotTableConstants.NUMBER_TYPE_ROW_PERCENTAGE,
|
|
101
|
+
round: true,
|
|
102
|
+
dgs: DGS_SPACE
|
|
103
|
+
}, {
|
|
104
|
+
value: 0.000234,
|
|
105
|
+
expected: '0.0234%',
|
|
106
|
+
valueType: _valueTypes.VALUE_TYPE_NUMBER,
|
|
107
|
+
numberType: _pivotTableConstants.NUMBER_TYPE_ROW_PERCENTAGE,
|
|
108
|
+
round: false,
|
|
109
|
+
dgs: DGS_SPACE
|
|
110
|
+
}, {
|
|
111
|
+
value: -0.0234,
|
|
112
|
+
expected: '-2.3%',
|
|
113
|
+
valueType: _valueTypes.VALUE_TYPE_NUMBER,
|
|
114
|
+
numberType: _pivotTableConstants.NUMBER_TYPE_ROW_PERCENTAGE,
|
|
115
|
+
round: true,
|
|
116
|
+
dgs: DGS_SPACE
|
|
117
|
+
}, {
|
|
118
|
+
value: -0.0234,
|
|
119
|
+
expected: '-2.34%',
|
|
120
|
+
valueType: _valueTypes.VALUE_TYPE_NUMBER,
|
|
121
|
+
numberType: _pivotTableConstants.NUMBER_TYPE_ROW_PERCENTAGE,
|
|
122
|
+
round: false,
|
|
123
|
+
dgs: DGS_SPACE
|
|
124
|
+
}, {
|
|
125
|
+
value: 0.450048675309,
|
|
126
|
+
expected: '45.0048675309%',
|
|
127
|
+
valueType: _valueTypes.VALUE_TYPE_NUMBER,
|
|
128
|
+
numberType: _pivotTableConstants.NUMBER_TYPE_ROW_PERCENTAGE,
|
|
129
|
+
round: false,
|
|
130
|
+
dgs: DGS_SPACE
|
|
131
|
+
}, {
|
|
132
|
+
value: 77.893,
|
|
133
|
+
expected: '7 789.3%',
|
|
134
|
+
valueType: _valueTypes.VALUE_TYPE_NUMBER,
|
|
135
|
+
numberType: _pivotTableConstants.NUMBER_TYPE_COLUMN_PERCENTAGE,
|
|
136
|
+
round: true,
|
|
137
|
+
dgs: DGS_SPACE
|
|
138
|
+
}, {
|
|
139
|
+
value: 77.893,
|
|
140
|
+
expected: '7,789.3%',
|
|
141
|
+
valueType: _valueTypes.VALUE_TYPE_NUMBER,
|
|
142
|
+
numberType: _pivotTableConstants.NUMBER_TYPE_COLUMN_PERCENTAGE,
|
|
143
|
+
round: true,
|
|
144
|
+
dgs: DGS_COMMA
|
|
145
|
+
}, // Integers
|
|
146
|
+
{
|
|
147
|
+
value: 99777888,
|
|
148
|
+
expected: '99 777 888',
|
|
149
|
+
valueType: _valueTypes.VALUE_TYPE_INTEGER,
|
|
150
|
+
round: true,
|
|
151
|
+
dgs: DGS_SPACE
|
|
152
|
+
}, {
|
|
153
|
+
value: -99777888,
|
|
154
|
+
expected: '-99 777 888',
|
|
155
|
+
valueType: _valueTypes.VALUE_TYPE_INTEGER,
|
|
156
|
+
round: true,
|
|
157
|
+
dgs: DGS_SPACE
|
|
158
|
+
}, {
|
|
159
|
+
value: -9977888,
|
|
160
|
+
expected: '-9977888',
|
|
161
|
+
valueType: _valueTypes.VALUE_TYPE_INTEGER,
|
|
162
|
+
round: true,
|
|
163
|
+
dgs: DGS_NONE
|
|
164
|
+
}, {
|
|
165
|
+
value: 345,
|
|
166
|
+
expected: '345',
|
|
167
|
+
valueType: _valueTypes.VALUE_TYPE_INTEGER_POSITIVE,
|
|
168
|
+
round: true,
|
|
169
|
+
dgs: DGS_COMMA
|
|
170
|
+
}, {
|
|
171
|
+
value: 334445577,
|
|
172
|
+
expected: '334,445,577',
|
|
173
|
+
valueType: _valueTypes.VALUE_TYPE_INTEGER_POSITIVE,
|
|
174
|
+
round: false,
|
|
175
|
+
dgs: DGS_COMMA
|
|
176
|
+
}, {
|
|
177
|
+
value: -44555777,
|
|
178
|
+
expected: '-44 555 777',
|
|
179
|
+
valueType: _valueTypes.VALUE_TYPE_INTEGER_NEGATIVE,
|
|
180
|
+
round: true,
|
|
181
|
+
dgs: DGS_SPACE
|
|
182
|
+
}, {
|
|
183
|
+
value: -4445577,
|
|
184
|
+
expected: '-4,445,577',
|
|
185
|
+
valueType: _valueTypes.VALUE_TYPE_INTEGER_NEGATIVE,
|
|
186
|
+
round: false,
|
|
187
|
+
dgs: DGS_COMMA
|
|
188
|
+
}, {
|
|
189
|
+
value: -445577,
|
|
190
|
+
expected: '-445577',
|
|
191
|
+
valueType: _valueTypes.VALUE_TYPE_INTEGER_NEGATIVE,
|
|
192
|
+
round: true,
|
|
193
|
+
dgs: DGS_NONE
|
|
194
|
+
}, {
|
|
195
|
+
value: -4445577,
|
|
196
|
+
expected: '-4,445,577',
|
|
197
|
+
valueType: _valueTypes.VALUE_TYPE_INTEGER_ZERO_OR_POSITIVE,
|
|
198
|
+
round: false,
|
|
199
|
+
dgs: DGS_COMMA
|
|
200
|
+
}, {
|
|
201
|
+
value: 57,
|
|
202
|
+
expected: '5 700%',
|
|
203
|
+
valueType: _valueTypes.VALUE_TYPE_INTEGER_ZERO_OR_POSITIVE,
|
|
204
|
+
numberType: _pivotTableConstants.NUMBER_TYPE_COLUMN_PERCENTAGE,
|
|
205
|
+
round: true,
|
|
206
|
+
dgs: DGS_SPACE
|
|
207
|
+
}, {
|
|
208
|
+
value: 557,
|
|
209
|
+
expected: '55700%',
|
|
210
|
+
valueType: _valueTypes.VALUE_TYPE_INTEGER_ZERO_OR_POSITIVE,
|
|
211
|
+
numberType: _pivotTableConstants.NUMBER_TYPE_COLUMN_PERCENTAGE,
|
|
212
|
+
round: true,
|
|
213
|
+
dgs: DGS_NONE
|
|
214
|
+
}, // Percentage
|
|
215
|
+
{
|
|
216
|
+
value: 5,
|
|
217
|
+
expected: '5',
|
|
218
|
+
valueType: _valueTypes.VALUE_TYPE_PERCENTAGE,
|
|
219
|
+
round: true,
|
|
220
|
+
dgs: DGS_SPACE
|
|
221
|
+
}, {
|
|
222
|
+
value: 53,
|
|
223
|
+
expected: '53',
|
|
224
|
+
valueType: _valueTypes.VALUE_TYPE_PERCENTAGE,
|
|
225
|
+
round: false,
|
|
226
|
+
dgs: DGS_SPACE
|
|
227
|
+
}, {
|
|
228
|
+
value: 53,
|
|
229
|
+
expected: '5 300%',
|
|
230
|
+
valueType: _valueTypes.VALUE_TYPE_PERCENTAGE,
|
|
231
|
+
numberType: _pivotTableConstants.NUMBER_TYPE_COLUMN_PERCENTAGE,
|
|
232
|
+
round: true,
|
|
233
|
+
dgs: DGS_SPACE
|
|
234
|
+
}, // Unit interval
|
|
235
|
+
{
|
|
236
|
+
value: 4,
|
|
237
|
+
expected: '4',
|
|
238
|
+
valueType: _valueTypes.VALUE_TYPE_UNIT_INTERVAL,
|
|
239
|
+
round: true,
|
|
240
|
+
dgs: DGS_COMMA
|
|
241
|
+
}, {
|
|
242
|
+
value: 4600,
|
|
243
|
+
expected: '4 600',
|
|
244
|
+
valueType: _valueTypes.VALUE_TYPE_UNIT_INTERVAL,
|
|
245
|
+
round: false,
|
|
246
|
+
dgs: DGS_SPACE
|
|
247
|
+
}, {
|
|
248
|
+
value: 46,
|
|
249
|
+
expected: '4,600%',
|
|
250
|
+
valueType: _valueTypes.VALUE_TYPE_UNIT_INTERVAL,
|
|
251
|
+
numberType: _pivotTableConstants.NUMBER_TYPE_COLUMN_PERCENTAGE,
|
|
252
|
+
round: true,
|
|
253
|
+
dgs: DGS_COMMA
|
|
254
|
+
}, // Texts
|
|
255
|
+
{
|
|
256
|
+
value: 'This string has multiple whitespace characters',
|
|
257
|
+
expected: 'This string has multiple whitespace characters',
|
|
258
|
+
valueType: _valueTypes.VALUE_TYPE_TEXT
|
|
259
|
+
}, {
|
|
260
|
+
value: 'Characters \n',
|
|
261
|
+
expected: 'Characters \n',
|
|
262
|
+
valueType: _valueTypes.VALUE_TYPE_TEXT
|
|
263
|
+
}, {
|
|
264
|
+
value: 'Characters \nmorecharacters here',
|
|
265
|
+
expected: 'Characters \nmorecharacters here',
|
|
266
|
+
valueType: _valueTypes.VALUE_TYPE_TEXT
|
|
267
|
+
}, // Undefined values
|
|
268
|
+
{
|
|
269
|
+
value: undefined,
|
|
270
|
+
expected: 'undefined',
|
|
271
|
+
valueType: _valueTypes.VALUE_TYPE_NUMBER
|
|
272
|
+
}, {
|
|
273
|
+
value: undefined,
|
|
274
|
+
expected: 'undefined',
|
|
275
|
+
valueType: _valueTypes.VALUE_TYPE_TEXT
|
|
276
|
+
}];
|
|
277
|
+
describe('renderValue', () => {
|
|
278
|
+
tests.forEach(t => {
|
|
279
|
+
const testname = "valueType: ".concat(t.valueType, ", value: ").concat(t.value, ", dgs: ").concat(t.dgs, ", round: ").concat(t.round, ", isPercent: ").concat([_pivotTableConstants.NUMBER_TYPE_ROW_PERCENTAGE, _pivotTableConstants.NUMBER_TYPE_COLUMN_PERCENTAGE].includes(t.numberType));
|
|
280
|
+
it(testname, () => {
|
|
281
|
+
const actual = (0, _renderValue.renderValue)(t.value, t.valueType, {
|
|
282
|
+
skipRounding: !t.round,
|
|
283
|
+
digitGroupSeparator: t.dgs,
|
|
284
|
+
numberType: t.numberType
|
|
285
|
+
});
|
|
286
|
+
expect(actual).toEqual(t.expected);
|
|
287
|
+
});
|
|
288
|
+
});
|
|
289
|
+
});
|
|
@@ -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;
|
|
@@ -11,7 +11,7 @@ var _valueTypes = require("./valueTypes.js");
|
|
|
11
11
|
|
|
12
12
|
const trimTrailingZeros = stringValue => stringValue.replace(/\.?0+$/, '');
|
|
13
13
|
|
|
14
|
-
const
|
|
14
|
+
const decimalSeparator = '.';
|
|
15
15
|
|
|
16
16
|
const separateDigitGroups = (stringValue, decimalSeparator) => {
|
|
17
17
|
const isNegative = stringValue[0] === '-';
|
|
@@ -65,17 +65,17 @@ const toFixedPrecisionString = (value, skipRounding) => {
|
|
|
65
65
|
};
|
|
66
66
|
|
|
67
67
|
const renderValue = (value, valueType, visualization) => {
|
|
68
|
-
if (
|
|
68
|
+
if (!(0, _valueTypes.isNumericValueType)(valueType) || value === undefined) {
|
|
69
69
|
return String(value).replace(/[^\S\n]+/, ' ');
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
if (visualization.numberType === _pivotTableConstants.NUMBER_TYPE_ROW_PERCENTAGE || visualization.numberType === _pivotTableConstants.NUMBER_TYPE_COLUMN_PERCENTAGE) {
|
|
73
|
-
|
|
73
|
+
const stringValue = trimTrailingZeros(toFixedPrecisionString(value * 100, visualization.skipRounding));
|
|
74
|
+
return separateDigitGroups(stringValue, decimalSeparator).join(getSeparator(visualization)) + '%';
|
|
75
|
+
} else {
|
|
76
|
+
const stringValue = toFixedPrecisionString(value, visualization.skipRounding);
|
|
77
|
+
return separateDigitGroups(stringValue, decimalSeparator).join(getSeparator(visualization));
|
|
74
78
|
}
|
|
75
|
-
|
|
76
|
-
const stringValue = toFixedPrecisionString(value, visualization.skipRounding);
|
|
77
|
-
const digitGroups = separateDigitGroups(stringValue, defaultDecimalSeparator);
|
|
78
|
-
return digitGroups.join(getSeparator(visualization));
|
|
79
79
|
};
|
|
80
80
|
|
|
81
81
|
exports.renderValue = renderValue;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.VALUE_TYPE_ORGANISATION_UNIT = exports.VALUE_TYPE_DATETIME = exports.VALUE_TYPE_TIME = exports.VALUE_TYPE_DATE = exports.VALUE_TYPE_TRUE_ONLY = exports.VALUE_TYPE_BOOLEAN = exports.VALUE_TYPE_URL = exports.VALUE_TYPE_USERNAME = exports.VALUE_TYPE_EMAIL = exports.VALUE_TYPE_PHONE_NUMBER = exports.VALUE_TYPE_LETTER = exports.VALUE_TYPE_LONG_TEXT = exports.VALUE_TYPE_TEXT = exports.VALUE_TYPE_INTEGER_ZERO_OR_POSITIVE = exports.VALUE_TYPE_INTEGER_NEGATIVE = exports.VALUE_TYPE_INTEGER_POSITIVE = exports.VALUE_TYPE_INTEGER = exports.VALUE_TYPE_PERCENTAGE = exports.VALUE_TYPE_UNIT_INTERVAL = exports.VALUE_TYPE_NUMBER = void 0;
|
|
6
|
+
exports.isNumericValueType = exports.VALUE_TYPE_ORGANISATION_UNIT = exports.VALUE_TYPE_DATETIME = exports.VALUE_TYPE_TIME = exports.VALUE_TYPE_DATE = exports.VALUE_TYPE_TRUE_ONLY = exports.VALUE_TYPE_BOOLEAN = exports.VALUE_TYPE_URL = exports.VALUE_TYPE_USERNAME = exports.VALUE_TYPE_EMAIL = exports.VALUE_TYPE_PHONE_NUMBER = exports.VALUE_TYPE_LETTER = exports.VALUE_TYPE_LONG_TEXT = exports.VALUE_TYPE_TEXT = exports.VALUE_TYPE_INTEGER_ZERO_OR_POSITIVE = exports.VALUE_TYPE_INTEGER_NEGATIVE = exports.VALUE_TYPE_INTEGER_POSITIVE = exports.VALUE_TYPE_INTEGER = exports.VALUE_TYPE_PERCENTAGE = exports.VALUE_TYPE_UNIT_INTERVAL = exports.VALUE_TYPE_NUMBER = void 0;
|
|
7
7
|
|
|
8
8
|
/* These types match the types in the backend
|
|
9
9
|
https://github.com/dhis2/dhis2-core/blob/master/dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/ValueType.java
|
|
@@ -47,4 +47,9 @@ exports.VALUE_TYPE_TIME = VALUE_TYPE_TIME;
|
|
|
47
47
|
const VALUE_TYPE_DATETIME = 'DATETIME';
|
|
48
48
|
exports.VALUE_TYPE_DATETIME = VALUE_TYPE_DATETIME;
|
|
49
49
|
const VALUE_TYPE_ORGANISATION_UNIT = 'ORGANISATION_UNIT';
|
|
50
|
-
exports.VALUE_TYPE_ORGANISATION_UNIT = VALUE_TYPE_ORGANISATION_UNIT;
|
|
50
|
+
exports.VALUE_TYPE_ORGANISATION_UNIT = VALUE_TYPE_ORGANISATION_UNIT;
|
|
51
|
+
const NUMERIC_VALUE_TYPES = [VALUE_TYPE_NUMBER, VALUE_TYPE_UNIT_INTERVAL, VALUE_TYPE_PERCENTAGE, VALUE_TYPE_INTEGER, VALUE_TYPE_INTEGER_POSITIVE, VALUE_TYPE_INTEGER_NEGATIVE, VALUE_TYPE_INTEGER_ZERO_OR_POSITIVE];
|
|
52
|
+
|
|
53
|
+
const isNumericValueType = type => NUMERIC_VALUE_TYPES.includes(type);
|
|
54
|
+
|
|
55
|
+
exports.isNumericValueType = isNumericValueType;
|