@dhis2/analytics 23.7.9 → 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.
Files changed (36) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/build/cjs/api/analytics/AnalyticsRequest.js +10 -2
  3. package/build/cjs/api/analytics/AnalyticsResponse.js +6 -4
  4. package/build/cjs/api/analytics/__tests__/AnalyticsResponseHeader.spec.js +3 -1
  5. package/build/cjs/api/dimensions.js +19 -19
  6. package/build/cjs/components/DataDimension/{DataTypesSelector.js → DataTypeSelector.js} +11 -11
  7. package/build/cjs/components/DataDimension/GroupSelector.js +10 -10
  8. package/build/cjs/components/DataDimension/ItemSelector.js +31 -31
  9. package/build/cjs/components/DataDimension/MetricSelector.js +4 -4
  10. package/build/cjs/components/DataDimension/styles/{DataTypesSelector.style.js → DataTypeSelector.style.js} +0 -0
  11. package/build/cjs/components/PivotTable/PivotTableValueCell.js +3 -1
  12. package/build/cjs/index.js +221 -1
  13. package/build/cjs/modules/dataTypes.js +53 -41
  14. package/build/cjs/modules/pivotTable/PivotTableEngine.js +14 -10
  15. package/build/cjs/modules/pivotTable/pivotTableConstants.js +2 -14
  16. package/build/cjs/modules/{pivotTable/renderValue.js → renderValue.js} +4 -2
  17. package/build/cjs/modules/valueTypes.js +50 -0
  18. package/build/cjs/visualizations/config/adapters/dhis_dhis/value/index.js +3 -3
  19. package/build/es/api/analytics/AnalyticsRequest.js +10 -2
  20. package/build/es/api/analytics/AnalyticsResponse.js +5 -4
  21. package/build/es/api/analytics/__tests__/AnalyticsResponseHeader.spec.js +2 -1
  22. package/build/es/api/dimensions.js +20 -21
  23. package/build/es/components/DataDimension/{DataTypesSelector.js → DataTypeSelector.js} +8 -8
  24. package/build/es/components/DataDimension/GroupSelector.js +4 -4
  25. package/build/es/components/DataDimension/ItemSelector.js +29 -29
  26. package/build/es/components/DataDimension/MetricSelector.js +5 -5
  27. package/build/es/components/DataDimension/styles/{DataTypesSelector.style.js → DataTypeSelector.style.js} +0 -0
  28. package/build/es/components/PivotTable/PivotTableValueCell.js +2 -1
  29. package/build/es/index.js +7 -4
  30. package/build/es/modules/dataTypes.js +35 -29
  31. package/build/es/modules/pivotTable/PivotTableEngine.js +5 -3
  32. package/build/es/modules/pivotTable/pivotTableConstants.js +1 -7
  33. package/build/es/modules/{pivotTable/renderValue.js → renderValue.js} +2 -1
  34. package/build/es/modules/valueTypes.js +23 -0
  35. package/build/es/visualizations/config/adapters/dhis_dhis/value/index.js +2 -2
  36. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,24 @@
1
+ ## [23.8.1](https://github.com/dhis2/analytics/compare/v23.8.0...v23.8.1) (2022-05-05)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * dimension types ([#1217](https://github.com/dhis2/analytics/issues/1217)) ([96231fc](https://github.com/dhis2/analytics/commit/96231fcfe348117b39d2f084c35731b05038da98))
7
+
8
+ # [23.8.0](https://github.com/dhis2/analytics/compare/v23.7.10...v23.8.0) (2022-05-04)
9
+
10
+
11
+ ### Features
12
+
13
+ * export constants for all value types ([#1216](https://github.com/dhis2/analytics/issues/1216)) ([d637002](https://github.com/dhis2/analytics/commit/d6370026ba653096f0781478c255b931925823c8))
14
+
15
+ ## [23.7.10](https://github.com/dhis2/analytics/compare/v23.7.9...v23.7.10) (2022-04-28)
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * set repetition in filter ([#1212](https://github.com/dhis2/analytics/issues/1212)) ([8510cba](https://github.com/dhis2/analytics/commit/8510cbaa68eac3902215d6db8508478b046d59b2))
21
+
1
22
  ## [23.7.9](https://github.com/dhis2/analytics/compare/v23.7.8...v23.7.9) (2022-04-26)
2
23
 
3
24
 
@@ -92,7 +92,7 @@ class AnalyticsRequest extends (0, _AnalyticsRequestDimensionsMixin.default)((0,
92
92
 
93
93
  request = request.addDimension(f.dimension, (_f$items = f.items) === null || _f$items === void 0 ? void 0 : _f$items.map(item => item.id));
94
94
  } else {
95
- var _f$programStage, _f$items2;
95
+ var _f$programStage, _f$repetition, _f$repetition$indexes;
96
96
 
97
97
  let filterString = (_f$programStage = f.programStage) !== null && _f$programStage !== void 0 && _f$programStage.id ? "".concat(f.programStage.id, ".").concat(f.dimension) : f.dimension;
98
98
 
@@ -100,7 +100,15 @@ class AnalyticsRequest extends (0, _AnalyticsRequestDimensionsMixin.default)((0,
100
100
  filterString += ":".concat(f.filter);
101
101
  }
102
102
 
103
- request = request.addFilter(filterString, (_f$items2 = f.items) === null || _f$items2 === void 0 ? void 0 : _f$items2.map(item => item.id));
103
+ if ((_f$repetition = f.repetition) !== null && _f$repetition !== void 0 && (_f$repetition$indexes = _f$repetition.indexes) !== null && _f$repetition$indexes !== void 0 && _f$repetition$indexes.length) {
104
+ f.repetition.indexes.forEach(index => {
105
+ request = request.addFilter(filterString.replace(/\./, "[".concat(index, "].")));
106
+ });
107
+ } else {
108
+ var _f$items2;
109
+
110
+ request = request.addFilter(filterString, (_f$items2 = f.items) === null || _f$items2 === void 0 ? void 0 : _f$items2.map(item => item.id));
111
+ }
104
112
  }
105
113
  });
106
114
  return request;
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
+ var _valueTypes = require("../../modules/valueTypes.js");
9
+
8
10
  var _AnalyticsResponseHeader = _interopRequireDefault(require("./AnalyticsResponseHeader.js"));
9
11
 
10
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -23,11 +25,11 @@ const DEFAULT_PREFIX_IGNORE_HEADERS = ['dy', ...DEFAULT_COLLECT_IGNORE_HEADERS];
23
25
  const getParseMiddleware = type => {
24
26
  switch (type) {
25
27
  case 'STRING':
26
- case 'TEXT':
28
+ case _valueTypes.VALUE_TYPE_TEXT:
27
29
  return value => "".concat(value);
28
30
 
29
- case 'INTEGER':
30
- case 'NUMBER':
31
+ case _valueTypes.VALUE_TYPE_INTEGER:
32
+ case _valueTypes.VALUE_TYPE_NUMBER:
31
33
  return value => !Number.isNaN(+value) && Number.isFinite(+value) ? parseFloat(+value) : value;
32
34
 
33
35
  default:
@@ -54,7 +56,7 @@ const isCollectHeader = (header, dimensions) => {
54
56
  const getPrefixedId = (id, prefix) => "".concat(prefix || '', " ").concat(id);
55
57
 
56
58
  const getNameByIdsByValueType = (id, valueType) => {
57
- if (valueType === 'BOOLEAN') {
59
+ if (valueType === _valueTypes.VALUE_TYPE_BOOLEAN) {
58
60
  return booleanMap[id];
59
61
  }
60
62
 
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ var _valueTypes = require("../../../modules/valueTypes.js");
4
+
3
5
  var _AnalyticsResponseHeader = _interopRequireDefault(require("../AnalyticsResponseHeader.js"));
4
6
 
5
7
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -29,7 +31,7 @@ describe('AnalyticsResponseHeader', () => {
29
31
  const header = {
30
32
  name: 'cejWyOfXge6',
31
33
  column: 'Gender',
32
- valueType: 'TEXT',
34
+ valueType: _valueTypes.VALUE_TYPE_TEXT,
33
35
  type: 'java.lang.String',
34
36
  hidden: false,
35
37
  meta: true,
@@ -57,13 +57,13 @@ const dataItemsQuery = {
57
57
  }) => {
58
58
  const filters = []; // TODO: Extract all of this logic out of the query?
59
59
 
60
- if ((filter === null || filter === void 0 ? void 0 : filter.dataType) === _dataTypes.EVENT_DATA_ITEMS) {
61
- filters.push("dimensionItemType:in:[".concat(_dataTypes.PROGRAM_DATA_ELEMENT, ",").concat(_dataTypes.PROGRAM_ATTRIBUTE, "]"));
62
- } else if (filter !== null && filter !== void 0 && filter.dataType && filter.dataType !== _dataTypes.ALL_ID) {
60
+ if ((filter === null || filter === void 0 ? void 0 : filter.dataType) === _dataTypes.DIMENSION_TYPE_EVENT_DATA_ITEM) {
61
+ filters.push("dimensionItemType:in:[".concat(_dataTypes.DIMENSION_TYPE_PROGRAM_DATA_ELEMENT, ",").concat(_dataTypes.DIMENSION_TYPE_PROGRAM_ATTRIBUTE, "]"));
62
+ } else if (filter !== null && filter !== void 0 && filter.dataType && filter.dataType !== _dataTypes.DIMENSION_TYPE_ALL) {
63
63
  filters.push("dimensionItemType:eq:".concat(filter.dataType));
64
64
  }
65
65
 
66
- if (filter !== null && filter !== void 0 && filter.group && filter.group !== _dataTypes.ALL_ID && [_dataTypes.EVENT_DATA_ITEMS, _dataTypes.PROGRAM_INDICATORS].includes(filter.dataType)) {
66
+ if (filter !== null && filter !== void 0 && filter.group && filter.group !== _dataTypes.DIMENSION_TYPE_ALL && [_dataTypes.DIMENSION_TYPE_EVENT_DATA_ITEM, _dataTypes.DIMENSION_TYPE_PROGRAM_INDICATOR].includes(filter.dataType)) {
67
67
  filters.push("programId:eq:".concat(filter.group));
68
68
  }
69
69
 
@@ -91,7 +91,7 @@ const indicatorsQuery = {
91
91
  }) => {
92
92
  const filters = [];
93
93
 
94
- if (filter !== null && filter !== void 0 && filter.group && filter.group !== _dataTypes.ALL_ID) {
94
+ if (filter !== null && filter !== void 0 && filter.group && filter.group !== _dataTypes.DIMENSION_TYPE_ALL) {
95
95
  filters.push("indicatorGroups.id:eq:".concat(filter.group));
96
96
  }
97
97
 
@@ -128,10 +128,10 @@ const dataElementsQuery = {
128
128
  searchTerm,
129
129
  page
130
130
  }) => {
131
- const idField = (filter === null || filter === void 0 ? void 0 : filter.group) === _dataTypes.ALL_ID ? 'id' : 'dimensionItem~rename(id)';
131
+ const idField = (filter === null || filter === void 0 ? void 0 : filter.group) === _dataTypes.DIMENSION_TYPE_ALL ? 'id' : 'dimensionItem~rename(id)';
132
132
  const filters = ['domainType:eq:AGGREGATE'];
133
133
 
134
- if (filter !== null && filter !== void 0 && filter.group && filter.group !== _dataTypes.ALL_ID) {
134
+ if (filter !== null && filter !== void 0 && filter.group && filter.group !== _dataTypes.DIMENSION_TYPE_ALL) {
135
135
  filters.push("dataElementGroups.id:eq:".concat(filter.group));
136
136
  }
137
137
 
@@ -194,10 +194,10 @@ const dataElementOperandsQuery = {
194
194
  searchTerm,
195
195
  page
196
196
  }) => {
197
- const idField = (filter === null || filter === void 0 ? void 0 : filter.group) === _dataTypes.ALL_ID ? 'id' : 'dimensionItem~rename(id)';
197
+ const idField = (filter === null || filter === void 0 ? void 0 : filter.group) === _dataTypes.DIMENSION_TYPE_ALL ? 'id' : 'dimensionItem~rename(id)';
198
198
  const filters = [];
199
199
 
200
- if (filter !== null && filter !== void 0 && filter.group && filter.group !== _dataTypes.ALL_ID) {
200
+ if (filter !== null && filter !== void 0 && filter.group && filter.group !== _dataTypes.DIMENSION_TYPE_ALL) {
201
201
  filters.push("dataElement.dataElementGroups.id:eq:".concat(filter.group));
202
202
  }
203
203
 
@@ -229,7 +229,7 @@ const dataSetsQuery = {
229
229
  filters.push("".concat(nameProp, ":ilike:").concat(searchTerm));
230
230
  }
231
231
 
232
- if (filter !== null && filter !== void 0 && filter.group && filter.group !== _dataTypes.ALL_ID) {
232
+ if (filter !== null && filter !== void 0 && filter.group && filter.group !== _dataTypes.DIMENSION_TYPE_ALL) {
233
233
  filters.push("id:eq:".concat(filter.group));
234
234
  }
235
235
 
@@ -299,7 +299,7 @@ const apiFetchOptions = ({
299
299
  page
300
300
  }) => {
301
301
  switch (filter === null || filter === void 0 ? void 0 : filter.dataType) {
302
- case _dataTypes.INDICATORS:
302
+ case _dataTypes.DIMENSION_TYPE_INDICATOR:
303
303
  {
304
304
  return fetchIndicators({
305
305
  dataEngine,
@@ -310,7 +310,7 @@ const apiFetchOptions = ({
310
310
  });
311
311
  }
312
312
 
313
- case _dataTypes.DATA_ELEMENTS:
313
+ case _dataTypes.DIMENSION_TYPE_DATA_ELEMENT:
314
314
  {
315
315
  if (filter.subGroup === _dataTypes.TOTALS) {
316
316
  return fetchDataElements({
@@ -331,7 +331,7 @@ const apiFetchOptions = ({
331
331
  }
332
332
  }
333
333
 
334
- case _dataTypes.DATA_SETS:
334
+ case _dataTypes.DIMENSION_TYPE_DATA_SET:
335
335
  {
336
336
  return fetchDataSets({
337
337
  dataEngine,
@@ -357,10 +357,10 @@ exports.apiFetchOptions = apiFetchOptions;
357
357
 
358
358
  const apiFetchGroups = async (dataEngine, dataType, nameProp) => {
359
359
  // indicatorGroups does not support shortName
360
- const name = dataType === _dataTypes.INDICATORS ? 'displayName' : nameProp;
360
+ const name = dataType === _dataTypes.DIMENSION_TYPE_INDICATOR ? 'displayName' : nameProp;
361
361
 
362
362
  switch (dataType) {
363
- case _dataTypes.INDICATORS:
363
+ case _dataTypes.DIMENSION_TYPE_INDICATOR:
364
364
  {
365
365
  const indicatorGroupsData = await dataEngine.query({
366
366
  indicatorGroups: indicatorGroupsQuery
@@ -373,7 +373,7 @@ const apiFetchGroups = async (dataEngine, dataType, nameProp) => {
373
373
  return indicatorGroupsData.indicatorGroups.indicatorGroups;
374
374
  }
375
375
 
376
- case _dataTypes.DATA_ELEMENTS:
376
+ case _dataTypes.DIMENSION_TYPE_DATA_ELEMENT:
377
377
  {
378
378
  const dataElementGroupsData = await dataEngine.query({
379
379
  dataElementGroups: dataElementGroupsQuery
@@ -386,7 +386,7 @@ const apiFetchGroups = async (dataEngine, dataType, nameProp) => {
386
386
  return dataElementGroupsData.dataElementGroups.dataElementGroups;
387
387
  }
388
388
 
389
- case _dataTypes.DATA_SETS:
389
+ case _dataTypes.DIMENSION_TYPE_DATA_SET:
390
390
  {
391
391
  const response = await dataEngine.query({
392
392
  data: dataSetsQuery
@@ -399,8 +399,8 @@ const apiFetchGroups = async (dataEngine, dataType, nameProp) => {
399
399
  return response.data.dataSets;
400
400
  }
401
401
 
402
- case _dataTypes.EVENT_DATA_ITEMS:
403
- case _dataTypes.PROGRAM_INDICATORS:
402
+ case _dataTypes.DIMENSION_TYPE_EVENT_DATA_ITEM:
403
+ case _dataTypes.DIMENSION_TYPE_PROGRAM_INDICATOR:
404
404
  {
405
405
  const programsData = await dataEngine.query({
406
406
  programs: programsQuery
@@ -17,11 +17,11 @@ var _index = _interopRequireDefault(require("../../locales/index.js"));
17
17
 
18
18
  var _dataTypes = require("../../modules/dataTypes.js");
19
19
 
20
- var _DataTypesSelectorStyle = _interopRequireDefault(require("./styles/DataTypesSelector.style.js"));
20
+ var _DataTypeSelectorStyle = _interopRequireDefault(require("./styles/DataTypeSelector.style.js"));
21
21
 
22
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
23
 
24
- const DataTypes = ({
24
+ const DataTypeSelector = ({
25
25
  currentDataType,
26
26
  onChange,
27
27
  dataTest
@@ -29,32 +29,32 @@ const DataTypes = ({
29
29
  var _dataTypes$currentDat;
30
30
 
31
31
  return /*#__PURE__*/_react.default.createElement("div", {
32
- className: "jsx-".concat(_DataTypesSelectorStyle.default.__hash) + " " + "container"
32
+ className: "jsx-".concat(_DataTypeSelectorStyle.default.__hash) + " " + "container"
33
33
  }, /*#__PURE__*/_react.default.createElement(_ui.SingleSelectField, {
34
34
  label: _index.default.t('Data Type'),
35
35
  dataTest: dataTest,
36
- selected: ((_dataTypes$currentDat = _dataTypes.dataTypes[currentDataType]) === null || _dataTypes$currentDat === void 0 ? void 0 : _dataTypes$currentDat.id) || _dataTypes.ALL_ID,
36
+ selected: ((_dataTypes$currentDat = _dataTypes.dataTypeMap[currentDataType]) === null || _dataTypes$currentDat === void 0 ? void 0 : _dataTypes$currentDat.id) || _dataTypes.DIMENSION_TYPE_ALL,
37
37
  onChange: ref => onChange(ref.selected),
38
38
  dense: true
39
39
  }, /*#__PURE__*/_react.default.createElement(_ui.SingleSelectOption, {
40
- value: _dataTypes.ALL_ID,
41
- key: _dataTypes.ALL_ID,
40
+ value: _dataTypes.DIMENSION_TYPE_ALL,
41
+ key: _dataTypes.DIMENSION_TYPE_ALL,
42
42
  label: _index.default.t('All types'),
43
43
  dataTest: "".concat(dataTest, "-option-all")
44
- }), Object.values(_dataTypes.dataTypes).map(type => /*#__PURE__*/_react.default.createElement(_ui.SingleSelectOption, {
44
+ }), Object.values(_dataTypes.dataTypeMap).map(type => /*#__PURE__*/_react.default.createElement(_ui.SingleSelectOption, {
45
45
  value: type.id,
46
46
  key: type.id,
47
47
  label: type.getName(),
48
48
  dataTest: "".concat(dataTest, "-option-").concat(type.id)
49
49
  }))), /*#__PURE__*/_react.default.createElement(_style.default, {
50
- id: _DataTypesSelectorStyle.default.__hash
51
- }, _DataTypesSelectorStyle.default));
50
+ id: _DataTypeSelectorStyle.default.__hash
51
+ }, _DataTypeSelectorStyle.default));
52
52
  };
53
53
 
54
- DataTypes.propTypes = {
54
+ DataTypeSelector.propTypes = {
55
55
  currentDataType: _propTypes.default.string.isRequired,
56
56
  onChange: _propTypes.default.func.isRequired,
57
57
  dataTest: _propTypes.default.string
58
58
  };
59
- var _default = DataTypes;
59
+ var _default = DataTypeSelector;
60
60
  exports.default = _default;
@@ -33,7 +33,7 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
33
33
 
34
34
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
35
 
36
- const GroupsSelector = ({
36
+ const GroupSelector = ({
37
37
  dataType,
38
38
  currentGroup,
39
39
  onGroupChange,
@@ -47,8 +47,8 @@ const GroupsSelector = ({
47
47
  const dataEngine = (0, _appRuntime.useDataEngine)();
48
48
  const [groups, setGroups] = (0, _react.useState)([]);
49
49
  const [isLoading, setIsLoading] = (0, _react.useState)(true);
50
- const defaultGroup = (_dataTypes$dataType = _dataTypes.dataTypes[dataType]) === null || _dataTypes$dataType === void 0 ? void 0 : _dataTypes$dataType.defaultGroup;
51
- const subGroupType = (_dataTypes$dataType2 = _dataTypes.dataTypes[dataType]) === null || _dataTypes$dataType2 === void 0 ? void 0 : _dataTypes$dataType2.subGroup;
50
+ const defaultGroup = (_dataTypes$dataType = _dataTypes.dataTypeMap[dataType]) === null || _dataTypes$dataType === void 0 ? void 0 : _dataTypes$dataType.defaultGroup;
51
+ const subGroupType = (_dataTypes$dataType2 = _dataTypes.dataTypeMap[dataType]) === null || _dataTypes$dataType2 === void 0 ? void 0 : _dataTypes$dataType2.subGroup;
52
52
 
53
53
  const fetchGroups = async () => {
54
54
  setIsLoading(true);
@@ -67,16 +67,16 @@ const GroupsSelector = ({
67
67
  }, _GroupSelectorStyle.default), /*#__PURE__*/_react.default.createElement("div", {
68
68
  className: "jsx-".concat(_GroupSelectorStyle.default.__hash) + " " + "group-container"
69
69
  }, /*#__PURE__*/_react.default.createElement(_ui.SingleSelectField, {
70
- label: (_dataTypes$dataType3 = _dataTypes.dataTypes[dataType]) === null || _dataTypes$dataType3 === void 0 ? void 0 : _dataTypes$dataType3.getGroupLabel(),
70
+ label: (_dataTypes$dataType3 = _dataTypes.dataTypeMap[dataType]) === null || _dataTypes$dataType3 === void 0 ? void 0 : _dataTypes$dataType3.getGroupLabel(),
71
71
  dataTest: "".concat(dataTest, "-groups-select-field"),
72
72
  selected: currentGroup || defaultGroup.id,
73
- placeholder: !currentGroup && (_dataTypes$dataType4 = _dataTypes.dataTypes[dataType]) !== null && _dataTypes$dataType4 !== void 0 && _dataTypes$dataType4.getPlaceholder ? _dataTypes.dataTypes[dataType].getPlaceholder() : null,
73
+ placeholder: !currentGroup && (_dataTypes$dataType4 = _dataTypes.dataTypeMap[dataType]) !== null && _dataTypes$dataType4 !== void 0 && _dataTypes$dataType4.getPlaceholder ? _dataTypes.dataTypeMap[dataType].getPlaceholder() : null,
74
74
  onChange: ref => onGroupChange(ref.selected),
75
75
  dense: true,
76
- empty: ((_dataTypes$dataType5 = _dataTypes.dataTypes[dataType]) === null || _dataTypes$dataType5 === void 0 ? void 0 : _dataTypes$dataType5.getGroupEmptyLabel()) || _index.default.t('No data'),
77
- loadingText: ((_dataTypes$dataType6 = _dataTypes.dataTypes[dataType]) === null || _dataTypes$dataType6 === void 0 ? void 0 : _dataTypes$dataType6.getGroupLoadingLabel()) || _index.default.t('Loading'),
76
+ empty: ((_dataTypes$dataType5 = _dataTypes.dataTypeMap[dataType]) === null || _dataTypes$dataType5 === void 0 ? void 0 : _dataTypes$dataType5.getGroupEmptyLabel()) || _index.default.t('No data'),
77
+ loadingText: ((_dataTypes$dataType6 = _dataTypes.dataTypeMap[dataType]) === null || _dataTypes$dataType6 === void 0 ? void 0 : _dataTypes$dataType6.getGroupLoadingLabel()) || _index.default.t('Loading'),
78
78
  loading: isLoading
79
- }, (_dataTypes$dataType7 = _dataTypes.dataTypes[dataType]) !== null && _dataTypes$dataType7 !== void 0 && _dataTypes$dataType7.defaultGroup ? /*#__PURE__*/_react.default.createElement(_ui.SingleSelectOption, {
79
+ }, (_dataTypes$dataType7 = _dataTypes.dataTypeMap[dataType]) !== null && _dataTypes$dataType7 !== void 0 && _dataTypes$dataType7.defaultGroup ? /*#__PURE__*/_react.default.createElement(_ui.SingleSelectOption, {
80
80
  value: defaultGroup.id,
81
81
  key: defaultGroup.id,
82
82
  label: defaultGroup.getName(),
@@ -97,7 +97,7 @@ const GroupsSelector = ({
97
97
  }));
98
98
  };
99
99
 
100
- GroupsSelector.propTypes = {
100
+ GroupSelector.propTypes = {
101
101
  dataType: _propTypes.default.string.isRequired,
102
102
  displayNameProp: _propTypes.default.string.isRequired,
103
103
  onGroupChange: _propTypes.default.func.isRequired,
@@ -106,5 +106,5 @@ GroupsSelector.propTypes = {
106
106
  currentSubGroup: _propTypes.default.string,
107
107
  dataTest: _propTypes.default.string
108
108
  };
109
- var _default = GroupsSelector;
109
+ var _default = GroupSelector;
110
110
  exports.default = _default;
@@ -35,7 +35,7 @@ var _DimensionSelectorStyle = _interopRequireDefault(require("../styles/Dimensio
35
35
 
36
36
  var _TransferOption = require("../TransferOption.js");
37
37
 
38
- var _DataTypesSelector = _interopRequireDefault(require("./DataTypesSelector.js"));
38
+ var _DataTypeSelector = _interopRequireDefault(require("./DataTypeSelector.js"));
39
39
 
40
40
  var _GroupSelector = _interopRequireDefault(require("./GroupSelector.js"));
41
41
 
@@ -70,11 +70,11 @@ const LeftHeader = ({
70
70
  dense: true,
71
71
  initialFocus: true,
72
72
  type: 'search'
73
- }), /*#__PURE__*/_react.default.createElement(_DataTypesSelector.default, {
73
+ }), /*#__PURE__*/_react.default.createElement(_DataTypeSelector.default, {
74
74
  currentDataType: dataType,
75
75
  onChange: setDataType,
76
76
  dataTest: "".concat(dataTest, "-data-types-select-field")
77
- }), _dataTypes.dataTypes[dataType] && /*#__PURE__*/_react.default.createElement(_GroupSelector.default, {
77
+ }), _dataTypes.dataTypeMap[dataType] && /*#__PURE__*/_react.default.createElement(_GroupSelector.default, {
78
78
  dataType: dataType,
79
79
  displayNameProp: displayNameProp,
80
80
  currentGroup: group,
@@ -138,23 +138,23 @@ const SourceEmptyPlaceholder = ({
138
138
  message = noItemsMessage;
139
139
  } else {
140
140
  switch (dataType) {
141
- case _dataTypes.INDICATORS:
141
+ case _dataTypes.DIMENSION_TYPE_INDICATOR:
142
142
  message = _index.default.t('No indicators found');
143
143
  break;
144
144
 
145
- case _dataTypes.DATA_ELEMENTS:
145
+ case _dataTypes.DIMENSION_TYPE_DATA_ELEMENT:
146
146
  message = _index.default.t('No data elements found');
147
147
  break;
148
148
 
149
- case _dataTypes.DATA_SETS:
149
+ case _dataTypes.DIMENSION_TYPE_DATA_SET:
150
150
  message = _index.default.t('No data sets found');
151
151
  break;
152
152
 
153
- case _dataTypes.EVENT_DATA_ITEMS:
153
+ case _dataTypes.DIMENSION_TYPE_EVENT_DATA_ITEM:
154
154
  message = _index.default.t('No event data items found');
155
155
  break;
156
156
 
157
- case _dataTypes.PROGRAM_INDICATORS:
157
+ case _dataTypes.DIMENSION_TYPE_PROGRAM_INDICATOR:
158
158
  message = _index.default.t('No program indicators found');
159
159
  break;
160
160
 
@@ -165,31 +165,31 @@ const SourceEmptyPlaceholder = ({
165
165
  }
166
166
  } else if (!loading && !options.length && searchTerm) {
167
167
  switch (dataType) {
168
- case _dataTypes.INDICATORS:
168
+ case _dataTypes.DIMENSION_TYPE_INDICATOR:
169
169
  message = _index.default.t('No indicators found for "{{- searchTerm}}"', {
170
170
  searchTerm: searchTerm
171
171
  });
172
172
  break;
173
173
 
174
- case _dataTypes.DATA_ELEMENTS:
174
+ case _dataTypes.DIMENSION_TYPE_DATA_ELEMENT:
175
175
  message = _index.default.t('No data elements found for "{{- searchTerm}}"', {
176
176
  searchTerm: searchTerm
177
177
  });
178
178
  break;
179
179
 
180
- case _dataTypes.DATA_SETS:
180
+ case _dataTypes.DIMENSION_TYPE_DATA_SET:
181
181
  message = _index.default.t('No data sets found for "{{- searchTerm}}"', {
182
182
  searchTerm: searchTerm
183
183
  });
184
184
  break;
185
185
 
186
- case _dataTypes.EVENT_DATA_ITEMS:
186
+ case _dataTypes.DIMENSION_TYPE_EVENT_DATA_ITEM:
187
187
  message = _index.default.t('No event data items found for "{{- searchTerm}}"', {
188
188
  searchTerm: searchTerm
189
189
  });
190
190
  break;
191
191
 
192
- case _dataTypes.PROGRAM_INDICATORS:
192
+ case _dataTypes.DIMENSION_TYPE_PROGRAM_INDICATOR:
193
193
  message = _index.default.t('No program indicators found for "{{- searchTerm}}"', {
194
194
  searchTerm: searchTerm
195
195
  });
@@ -232,7 +232,7 @@ const ItemSelector = ({
232
232
  const [state, setState] = (0, _react.useState)({
233
233
  searchTerm: '',
234
234
  filter: {
235
- dataType: _dataTypes.ALL_ID
235
+ dataType: _dataTypes.DIMENSION_TYPE_ALL
236
236
  },
237
237
  options: [],
238
238
  loading: true,
@@ -266,7 +266,7 @@ const ItemSelector = ({
266
266
  const newOptions = [];
267
267
  (_result$dimensionItem = result.dimensionItems) === null || _result$dimensionItem === void 0 ? void 0 : _result$dimensionItem.forEach(item => {
268
268
  if (item.dimensionItemType === _dataSets.REPORTING_RATE) {
269
- if (state.filter.subGroup && state.filter.subGroup !== _dataTypes.ALL_ID) {
269
+ if (state.filter.subGroup && state.filter.subGroup !== _dataTypes.DIMENSION_TYPE_ALL) {
270
270
  const metric = _dataSets.DATA_SETS_CONSTANTS.find(item => item.id === state.filter.subGroup);
271
271
 
272
272
  newOptions.push({
@@ -354,39 +354,39 @@ const ItemSelector = ({
354
354
  var _dataTypes$itemType;
355
355
 
356
356
  switch (itemType) {
357
- case _dataTypes.DATA_ELEMENT_OPERAND:
358
- return _dataTypes.dataTypes[_dataTypes.DATA_ELEMENTS].getItemName();
357
+ case _dataTypes.DIMENSION_TYPE_DATA_ELEMENT_OPERAND:
358
+ return _dataTypes.dataTypeMap[_dataTypes.DIMENSION_TYPE_DATA_ELEMENT].getItemName();
359
359
 
360
360
  case _dataSets.REPORTING_RATE:
361
- return _dataTypes.dataTypes[_dataTypes.DATA_SETS].getItemName();
361
+ return _dataTypes.dataTypeMap[_dataTypes.DIMENSION_TYPE_DATA_SET].getItemName();
362
362
 
363
- case _dataTypes.PROGRAM_DATA_ELEMENT:
364
- case _dataTypes.PROGRAM_ATTRIBUTE:
365
- return _dataTypes.dataTypes[_dataTypes.EVENT_DATA_ITEMS].getItemName();
363
+ case _dataTypes.DIMENSION_TYPE_PROGRAM_DATA_ELEMENT:
364
+ case _dataTypes.DIMENSION_TYPE_PROGRAM_ATTRIBUTE:
365
+ return _dataTypes.dataTypeMap[_dataTypes.DIMENSION_TYPE_EVENT_DATA_ITEM].getItemName();
366
366
 
367
367
  default:
368
- return (_dataTypes$itemType = _dataTypes.dataTypes[itemType]) === null || _dataTypes$itemType === void 0 ? void 0 : _dataTypes$itemType.getItemName();
368
+ return (_dataTypes$itemType = _dataTypes.dataTypeMap[itemType]) === null || _dataTypes$itemType === void 0 ? void 0 : _dataTypes$itemType.getItemName();
369
369
  }
370
370
  };
371
371
 
372
372
  const getIcon = itemType => {
373
373
  switch (itemType) {
374
- case _dataTypes.INDICATORS:
374
+ case _dataTypes.DIMENSION_TYPE_INDICATOR:
375
375
  return /*#__PURE__*/_react.default.createElement(_ui.IconDimensionIndicator16, null);
376
376
 
377
- case _dataTypes.DATA_ELEMENT_OPERAND:
378
- case _dataTypes.DATA_ELEMENTS:
377
+ case _dataTypes.DIMENSION_TYPE_DATA_ELEMENT_OPERAND:
378
+ case _dataTypes.DIMENSION_TYPE_DATA_ELEMENT:
379
379
  return _DataElementIcon.default;
380
380
 
381
381
  case _dataSets.REPORTING_RATE:
382
382
  return /*#__PURE__*/_react.default.createElement(_ui.IconDimensionDataSet16, null);
383
383
 
384
- case _dataTypes.EVENT_DATA_ITEMS:
385
- case _dataTypes.PROGRAM_DATA_ELEMENT:
386
- case _dataTypes.PROGRAM_ATTRIBUTE:
384
+ case _dataTypes.DIMENSION_TYPE_EVENT_DATA_ITEM:
385
+ case _dataTypes.DIMENSION_TYPE_PROGRAM_DATA_ELEMENT:
386
+ case _dataTypes.DIMENSION_TYPE_PROGRAM_ATTRIBUTE:
387
387
  return /*#__PURE__*/_react.default.createElement(_ui.IconDimensionEventDataItem16, null);
388
388
 
389
- case _dataTypes.PROGRAM_INDICATORS:
389
+ case _dataTypes.DIMENSION_TYPE_PROGRAM_INDICATOR:
390
390
  return /*#__PURE__*/_react.default.createElement(_ui.IconDimensionProgramIndicator16, null);
391
391
 
392
392
  default:
@@ -417,7 +417,7 @@ const ItemSelector = ({
417
417
  setFilter({ ...state.filter,
418
418
  dataType,
419
419
  group: null,
420
- subGroup: dataType === _dataTypes.DATA_ELEMENTS ? _dataTypes.TOTALS : null
420
+ subGroup: dataType === _dataTypes.DIMENSION_TYPE_DATA_ELEMENT ? _dataTypes.TOTALS : null
421
421
  });
422
422
  },
423
423
  group: state.filter.group,
@@ -453,7 +453,7 @@ const ItemSelector = ({
453
453
  icon: getIcon(getItemType(props.value
454
454
  /* eslint-disable-line react/prop-types */
455
455
  )),
456
- tooltipText: state.filter.dataType === _dataTypes.ALL_ID ? getTooltipText(getItemType(props.value
456
+ tooltipText: state.filter.dataType === _dataTypes.DIMENSION_TYPE_ALL ? getTooltipText(getItemType(props.value
457
457
  /* eslint-disable-line react/prop-types */
458
458
  )) : undefined,
459
459
  dataTest: "".concat(dataTest, "-transfer-option")
@@ -32,15 +32,15 @@ const MetricSelector = ({
32
32
  className: "jsx-".concat(_MetricSelectorStyle.default.__hash) + " " + "metric-container"
33
33
  }, /*#__PURE__*/_react.default.createElement(_ui.SingleSelectField, {
34
34
  label: _index.default.t('Metric type'),
35
- selected: currentValue || _dataTypes.ALL_ID,
35
+ selected: currentValue || _dataTypes.DIMENSION_TYPE_ALL,
36
36
  onChange: ref => onChange(ref.selected),
37
37
  dense: true,
38
38
  dataTest: dataTest
39
39
  }, /*#__PURE__*/_react.default.createElement(_ui.SingleSelectOption, {
40
- value: _dataTypes.ALL_ID,
41
- key: _dataTypes.ALL_ID,
40
+ value: _dataTypes.DIMENSION_TYPE_ALL,
41
+ key: _dataTypes.DIMENSION_TYPE_ALL,
42
42
  label: _index.default.t('All metrics'),
43
- dataTest: "".concat(dataTest, "-option-").concat(_dataTypes.ALL_ID)
43
+ dataTest: "".concat(dataTest, "-option-").concat(_dataTypes.DIMENSION_TYPE_ALL)
44
44
  }), _dataSets.DATA_SETS_CONSTANTS.map(option => /*#__PURE__*/_react.default.createElement(_ui.SingleSelectOption, {
45
45
  value: option.id,
46
46
  key: option.id,
@@ -13,6 +13,8 @@ var _applyLegendSet = require("../../modules/pivotTable/applyLegendSet.js");
13
13
 
14
14
  var _pivotTableConstants = require("../../modules/pivotTable/pivotTableConstants.js");
15
15
 
16
+ var _valueTypes = require("../../modules/valueTypes.js");
17
+
16
18
  var _PivotTableCell = require("./PivotTableCell.js");
17
19
 
18
20
  var _PivotTableEmptyCell = require("./PivotTableEmptyCell.js");
@@ -56,7 +58,7 @@ const PivotTableValueCell = ({
56
58
  } // TODO: Add support for 'INTEGER' type (requires server changes)
57
59
 
58
60
 
59
- const legendStyle = cellContent.cellType === _pivotTableConstants.CELL_TYPE_VALUE && cellContent.valueType === _pivotTableConstants.VALUE_TYPE_NUMBER ? (0, _applyLegendSet.applyLegendSet)(cellContent.rawValue, cellContent.dxDimension, engine) : undefined;
61
+ const legendStyle = cellContent.cellType === _pivotTableConstants.CELL_TYPE_VALUE && cellContent.valueType === _valueTypes.VALUE_TYPE_NUMBER ? (0, _applyLegendSet.applyLegendSet)(cellContent.rawValue, cellContent.dxDimension, engine) : undefined;
60
62
  const width = engine.adaptiveClippingController.columns.sizes[engine.columnMap[column]].size;
61
63
  const height = engine.adaptiveClippingController.rows.sizes[engine.rowMap[row]].size;
62
64
  const style = { ...legendStyle,