@dhis2/analytics 20.6.5 → 21.0.0-alpha.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/build/cjs/__demo__/Filter.stories.js +2 -2
- package/build/cjs/__demo__/FixedPeriodSelect.stories.js +2 -2
- package/build/cjs/__demo__/OpenFileDialog.stories.js +1 -1
- package/build/cjs/__demo__/OrgUnitDimension.stories.js +95 -0
- package/build/cjs/__demo__/PivotTable.stories.js +2 -2
- package/build/cjs/api/analytics/AnalyticsBase.js +1 -1
- package/build/cjs/api/analytics/AnalyticsRequest.js +1 -1
- package/build/cjs/api/analytics/AnalyticsRequestBase.js +3 -3
- package/build/cjs/api/analytics/AnalyticsRequestPropertiesMixin.js +7 -7
- package/build/cjs/api/analytics/AnalyticsResponse.js +2 -2
- package/build/cjs/api/analytics/__tests__/AnalyticsAggregate.spec.js +11 -1
- package/build/cjs/api/analytics/__tests__/AnalyticsRequest.spec.js +9 -9
- package/build/cjs/api/analytics/__tests__/AnalyticsRequestBase.spec.js +4 -4
- package/build/cjs/api/analytics/utils.js +1 -1
- package/build/cjs/api/dimensions.js +37 -37
- package/build/cjs/api/organisationUnits.js +100 -46
- package/build/cjs/components/DataDimension/DataTypesSelector.js +3 -3
- package/build/cjs/components/DataDimension/DetailSelector.js +2 -2
- package/build/cjs/components/DataDimension/GroupSelector.js +9 -9
- package/build/cjs/components/DataDimension/ItemSelector.js +19 -19
- package/build/cjs/components/DataDimension/MetricSelector.js +3 -3
- package/build/cjs/components/DataDimension/styles/DataTypesSelector.style.js +1 -1
- package/build/cjs/components/DataDimension/styles/DetailSelector.style.js +1 -1
- package/build/cjs/components/DataDimension/styles/GroupSelector.style.js +1 -1
- package/build/cjs/components/DataDimension/styles/MetricSelector.style.js +1 -1
- package/build/cjs/components/DimensionMenu.js +10 -10
- package/build/cjs/components/DimensionsPanel/DimensionsPanel.js +2 -2
- package/build/cjs/components/DimensionsPanel/List/DimensionItem.js +5 -5
- package/build/cjs/components/DimensionsPanel/List/DimensionLabel.js +2 -2
- package/build/cjs/components/DimensionsPanel/List/DimensionList.js +10 -10
- package/build/cjs/components/DimensionsPanel/List/styles/DimensionList.style.js +1 -1
- package/build/cjs/components/DimensionsPanel/styles/DimensionsPanel.style.js +1 -1
- package/build/cjs/components/DynamicDimension/DynamicDimension.js +4 -4
- package/build/cjs/components/DynamicDimension/ItemSelector.js +8 -8
- package/build/cjs/components/DynamicDimension/styles/DynamicDimension.style.js +1 -1
- package/build/cjs/components/FileMenu/DeleteDialog.js +2 -2
- package/build/cjs/components/FileMenu/FileMenu.js +5 -5
- package/build/cjs/components/FileMenu/FileMenu.styles.js +1 -1
- package/build/cjs/components/FileMenu/GetLinkDialog.js +1 -1
- package/build/cjs/components/FileMenu/RenameDialog.js +2 -2
- package/build/cjs/components/FileMenu/SaveAsDialog.js +2 -2
- package/build/cjs/components/FileMenu/__tests__/DeleteDialog.spec.js +1 -1
- package/build/cjs/components/FileMenu/__tests__/RenameDialog.spec.js +1 -1
- package/build/cjs/components/FileMenu/__tests__/SaveAsDialog.spec.js +1 -1
- package/build/cjs/components/FileMenu/utils.js +3 -3
- package/build/cjs/components/Filter/Filter.js +1 -1
- package/build/cjs/components/Filter/styles/Filter.style.js +1 -1
- package/build/cjs/components/LegendKey/LegendKey.js +9 -9
- package/build/cjs/components/LegendKey/styles/LegendKey.style.js +1 -1
- package/build/cjs/components/OpenFileDialog/CustomSelectOption.js +2 -2
- package/build/cjs/components/OpenFileDialog/OpenFileDialog.js +21 -21
- package/build/cjs/components/OpenFileDialog/OpenFileDialog.styles.js +1 -1
- package/build/cjs/components/OpenFileDialog/styles/CustomSelectOption.style.js +1 -1
- package/build/cjs/components/Options/VisualizationOptions.js +2 -2
- package/build/cjs/components/Options/styles/VisualizationOptions.style.js +10 -10
- package/build/cjs/components/OrgUnitDimension/OrgUnitDimension.js +163 -203
- package/build/cjs/components/OrgUnitDimension/OrgUnitDimensionOld.js +244 -0
- package/build/cjs/components/OrgUnitDimension/styles/OrgUnitDimension.style.js +5 -2
- package/build/cjs/components/PeriodDimension/FixedPeriodFilter.js +5 -5
- package/build/cjs/components/PeriodDimension/FixedPeriodSelect.js +4 -4
- package/build/cjs/components/PeriodDimension/PeriodTransfer.js +11 -11
- package/build/cjs/components/PeriodDimension/RelativePeriodFilter.js +2 -2
- package/build/cjs/components/PeriodDimension/styles/FixedPeriodSelect.style.js +1 -1
- package/build/cjs/components/PeriodDimension/styles/PeriodFilter.style.js +1 -1
- package/build/cjs/components/PeriodDimension/utils/fixedPeriods.js +49 -49
- package/build/cjs/components/PivotTable/PivotTable.js +2 -2
- package/build/cjs/components/PivotTable/PivotTableCell.js +3 -3
- package/build/cjs/components/PivotTable/PivotTableColumnHeaderCell.js +2 -2
- package/build/cjs/components/PivotTable/PivotTableContainer.js +2 -2
- package/build/cjs/components/PivotTable/PivotTableEngineContext.js +2 -2
- package/build/cjs/components/PivotTable/PivotTableSortIcon.js +2 -2
- package/build/cjs/components/PivotTable/PivotTableTitleRow.js +4 -4
- package/build/cjs/components/PivotTable/PivotTableValueCell.js +2 -2
- package/build/cjs/components/PivotTable/styles/PivotTable.style.js +3 -3
- package/build/cjs/components/TransferOption.js +5 -5
- package/build/cjs/components/styles/DimensionSelector.style.js +1 -1
- package/build/cjs/components/styles/TransferOption.style.js +1 -1
- package/build/cjs/index.js +6 -6
- package/build/cjs/locales/en/translations.json +5 -0
- package/build/cjs/modules/axis.js +1 -1
- package/build/cjs/modules/layoutUiRules/rules.js +1 -1
- package/build/cjs/modules/ouIdHelper/index.js +9 -3
- package/build/cjs/modules/pivotTable/PivotTableEngine.js +3 -3
- package/build/cjs/modules/pivotTable/measureText.js +1 -1
- package/build/cjs/modules/relativeItems/index.js +1 -1
- package/build/cjs/modules/visTypes.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/addTrendLines.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/axis.js +2 -2
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/getAxisTitle.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/index.js +2 -2
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/legend.js +19 -8
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/legendSet.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/plotOptions.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/subtitle/index.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/title/index.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/title/scatter.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/xAxis/index.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/yAxis/gauge.js +3 -3
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/yAxis/index.js +2 -2
- package/build/cjs/visualizations/config/generators/dhis/singleValue.js +5 -5
- package/build/cjs/visualizations/config/index.js +3 -3
- package/build/cjs/visualizations/store/adapters/dhis_dhis/index.js +1 -1
- package/build/cjs/visualizations/store/adapters/dhis_highcharts/index.js +1 -1
- package/build/cjs/visualizations/store/adapters/dhis_highcharts/twoCategory.js +1 -1
- package/build/cjs/visualizations/store/index.js +2 -2
- package/build/cjs/visualizations/util/axisId.js +1 -1
- package/build/cjs/visualizations/util/getFilterText.js +3 -3
- package/build/es/__demo__/OpenFileDialog.stories.js +1 -1
- package/build/es/__demo__/OrgUnitDimension.stories.js +84 -0
- package/build/es/api/analytics/AnalyticsBase.js +1 -1
- package/build/es/api/analytics/AnalyticsRequest.js +1 -1
- package/build/es/api/analytics/AnalyticsRequestBase.js +3 -3
- package/build/es/api/analytics/AnalyticsRequestPropertiesMixin.js +7 -7
- package/build/es/api/analytics/AnalyticsResponse.js +2 -2
- package/build/es/api/analytics/__tests__/AnalyticsAggregate.spec.js +11 -1
- package/build/es/api/analytics/__tests__/AnalyticsRequest.spec.js +9 -9
- package/build/es/api/analytics/__tests__/AnalyticsRequestBase.spec.js +4 -4
- package/build/es/api/analytics/utils.js +1 -1
- package/build/es/api/dimensions.js +39 -39
- package/build/es/api/organisationUnits.js +93 -43
- package/build/es/components/DataDimension/DataTypesSelector.js +3 -3
- package/build/es/components/DataDimension/DetailSelector.js +2 -2
- package/build/es/components/DataDimension/GroupSelector.js +7 -7
- package/build/es/components/DataDimension/ItemSelector.js +17 -17
- package/build/es/components/DataDimension/MetricSelector.js +3 -3
- package/build/es/components/DataDimension/styles/DataTypesSelector.style.js +1 -1
- package/build/es/components/DataDimension/styles/DetailSelector.style.js +1 -1
- package/build/es/components/DataDimension/styles/GroupSelector.style.js +1 -1
- package/build/es/components/DataDimension/styles/MetricSelector.style.js +1 -1
- package/build/es/components/DimensionMenu.js +10 -10
- package/build/es/components/DimensionsPanel/List/DimensionItem.js +3 -3
- package/build/es/components/DimensionsPanel/List/DimensionList.js +8 -8
- package/build/es/components/DimensionsPanel/List/styles/DimensionList.style.js +1 -1
- package/build/es/components/DimensionsPanel/styles/DimensionsPanel.style.js +1 -1
- package/build/es/components/DynamicDimension/DynamicDimension.js +4 -4
- package/build/es/components/DynamicDimension/ItemSelector.js +6 -6
- package/build/es/components/DynamicDimension/styles/DynamicDimension.style.js +1 -1
- package/build/es/components/FileMenu/FileMenu.js +3 -3
- package/build/es/components/FileMenu/FileMenu.styles.js +1 -1
- package/build/es/components/FileMenu/GetLinkDialog.js +1 -1
- package/build/es/components/FileMenu/__tests__/DeleteDialog.spec.js +1 -1
- package/build/es/components/FileMenu/__tests__/RenameDialog.spec.js +1 -1
- package/build/es/components/FileMenu/__tests__/SaveAsDialog.spec.js +1 -1
- package/build/es/components/FileMenu/utils.js +3 -3
- package/build/es/components/Filter/Filter.js +1 -1
- package/build/es/components/Filter/styles/Filter.style.js +1 -1
- package/build/es/components/LegendKey/LegendKey.js +9 -9
- package/build/es/components/LegendKey/styles/LegendKey.style.js +1 -1
- package/build/es/components/OpenFileDialog/CustomSelectOption.js +2 -2
- package/build/es/components/OpenFileDialog/OpenFileDialog.js +19 -19
- package/build/es/components/OpenFileDialog/OpenFileDialog.styles.js +1 -1
- package/build/es/components/OpenFileDialog/styles/CustomSelectOption.style.js +1 -1
- package/build/es/components/Options/styles/VisualizationOptions.style.js +10 -10
- package/build/es/components/OrgUnitDimension/OrgUnitDimension.js +163 -204
- package/build/es/components/OrgUnitDimension/OrgUnitDimensionOld.js +220 -0
- package/build/es/components/OrgUnitDimension/styles/OrgUnitDimension.style.js +3 -2
- package/build/es/components/PeriodDimension/FixedPeriodFilter.js +5 -5
- package/build/es/components/PeriodDimension/FixedPeriodSelect.js +2 -2
- package/build/es/components/PeriodDimension/PeriodTransfer.js +9 -9
- package/build/es/components/PeriodDimension/RelativePeriodFilter.js +2 -2
- package/build/es/components/PeriodDimension/styles/FixedPeriodSelect.style.js +1 -1
- package/build/es/components/PeriodDimension/styles/PeriodFilter.style.js +1 -1
- package/build/es/components/PeriodDimension/utils/fixedPeriods.js +49 -49
- package/build/es/components/PivotTable/PivotTableCell.js +3 -3
- package/build/es/components/PivotTable/PivotTableColumnHeaderCell.js +2 -2
- package/build/es/components/PivotTable/PivotTableContainer.js +2 -2
- package/build/es/components/PivotTable/PivotTableSortIcon.js +2 -2
- package/build/es/components/PivotTable/PivotTableTitleRow.js +2 -2
- package/build/es/components/PivotTable/styles/PivotTable.style.js +3 -3
- package/build/es/components/TransferOption.js +5 -5
- package/build/es/components/styles/DimensionSelector.style.js +1 -1
- package/build/es/components/styles/TransferOption.style.js +1 -1
- package/build/es/index.js +1 -1
- package/build/es/locales/en/translations.json +5 -0
- package/build/es/modules/axis.js +1 -1
- package/build/es/modules/layoutUiRules/rules.js +1 -1
- package/build/es/modules/ouIdHelper/index.js +5 -2
- package/build/es/modules/pivotTable/PivotTableEngine.js +3 -3
- package/build/es/modules/pivotTable/measureText.js +1 -1
- package/build/es/modules/relativeItems/index.js +2 -2
- package/build/es/modules/visTypes.js +1 -1
- package/build/es/visualizations/config/adapters/dhis_highcharts/addTrendLines.js +1 -1
- package/build/es/visualizations/config/adapters/dhis_highcharts/axis.js +2 -2
- package/build/es/visualizations/config/adapters/dhis_highcharts/getAxisTitle.js +1 -1
- package/build/es/visualizations/config/adapters/dhis_highcharts/legend.js +19 -8
- package/build/es/visualizations/config/adapters/dhis_highcharts/legendSet.js +1 -1
- package/build/es/visualizations/config/adapters/dhis_highcharts/plotOptions.js +1 -1
- package/build/es/visualizations/config/adapters/dhis_highcharts/subtitle/index.js +1 -1
- package/build/es/visualizations/config/adapters/dhis_highcharts/title/index.js +1 -1
- package/build/es/visualizations/config/adapters/dhis_highcharts/title/scatter.js +1 -1
- package/build/es/visualizations/config/adapters/dhis_highcharts/xAxis/index.js +1 -1
- package/build/es/visualizations/config/adapters/dhis_highcharts/yAxis/gauge.js +3 -3
- package/build/es/visualizations/config/adapters/dhis_highcharts/yAxis/index.js +2 -2
- package/build/es/visualizations/config/generators/dhis/singleValue.js +5 -5
- package/build/es/visualizations/config/index.js +3 -3
- package/build/es/visualizations/store/adapters/dhis_dhis/index.js +1 -1
- package/build/es/visualizations/store/adapters/dhis_highcharts/index.js +1 -1
- package/build/es/visualizations/store/adapters/dhis_highcharts/twoCategory.js +1 -1
- package/build/es/visualizations/store/index.js +2 -2
- package/build/es/visualizations/util/axisId.js +1 -1
- package/build/es/visualizations/util/getFilterText.js +3 -3
- package/package.json +1 -1
- package/CHANGELOG.md +0 -2756
- package/build/cjs/api/organisationUnits-dataEngine.js +0 -119
- package/build/cjs/components/OrgUnitDimension/__tests__/OrgUnitDimension.spec.js +0 -96
- package/build/es/api/organisationUnits-dataEngine.js +0 -96
- package/build/es/components/OrgUnitDimension/__tests__/OrgUnitDimension.spec.js +0 -86
|
@@ -97,7 +97,7 @@ class extends base {
|
|
|
97
97
|
if (aggregationTypes.has(aggregationType)) {
|
|
98
98
|
this.parameters.aggregationType = aggregationType;
|
|
99
99
|
} else if (aggregationType !== 'DEFAULT') {
|
|
100
|
-
console.warn(
|
|
100
|
+
console.warn(`analytics.request.withAggregationType(): "${value}" not listed as possible value`);
|
|
101
101
|
this.parameters.aggregationType = value;
|
|
102
102
|
}
|
|
103
103
|
|
|
@@ -333,7 +333,7 @@ class extends base {
|
|
|
333
333
|
if (displayProperties.has(displayProperty)) {
|
|
334
334
|
this.parameters.displayProperty = displayProperty;
|
|
335
335
|
} else {
|
|
336
|
-
console.warn(
|
|
336
|
+
console.warn(`analytics.request.withDisplayProperty(): "${value}" not listed as possible value`);
|
|
337
337
|
this.parameters.displayProperty = value;
|
|
338
338
|
}
|
|
339
339
|
|
|
@@ -580,7 +580,7 @@ class extends base {
|
|
|
580
580
|
if (eventStatuses.has(eventStatus)) {
|
|
581
581
|
this.parameters.eventStatus = eventStatus;
|
|
582
582
|
} else {
|
|
583
|
-
console.warn(
|
|
583
|
+
console.warn(`analytics.request.withEventStatus(): "${value}" not listed as possible value`);
|
|
584
584
|
this.parameters.eventStatus = value;
|
|
585
585
|
}
|
|
586
586
|
|
|
@@ -606,7 +606,7 @@ class extends base {
|
|
|
606
606
|
if (programStatuses.has(programStatus)) {
|
|
607
607
|
this.parameters.programStatus = programStatus;
|
|
608
608
|
} else {
|
|
609
|
-
console.warn(
|
|
609
|
+
console.warn(`analytics.request.withProgramStatus(): "${value}" not listed as possible value`);
|
|
610
610
|
this.parameters.programStatus = value;
|
|
611
611
|
}
|
|
612
612
|
|
|
@@ -632,7 +632,7 @@ class extends base {
|
|
|
632
632
|
if (ouModes.has(ouMode)) {
|
|
633
633
|
this.parameters.ouMode = ouMode;
|
|
634
634
|
} else {
|
|
635
|
-
console.warn(
|
|
635
|
+
console.warn(`analytics.request.withOuMode(): "${value}" not listed as possible value`);
|
|
636
636
|
this.parameters.ouMode = value;
|
|
637
637
|
}
|
|
638
638
|
|
|
@@ -770,7 +770,7 @@ class extends base {
|
|
|
770
770
|
if (sortOrders.has(sortOrder)) {
|
|
771
771
|
this.parameters.sortOrder = sortOrder;
|
|
772
772
|
} else {
|
|
773
|
-
console.warn(
|
|
773
|
+
console.warn(`analytics.request.withSortOrder(): "${value}" not listed as possible value`);
|
|
774
774
|
this.parameters.sortOrder = value;
|
|
775
775
|
}
|
|
776
776
|
|
|
@@ -817,7 +817,7 @@ class extends base {
|
|
|
817
817
|
if (outputTypes.has(type)) {
|
|
818
818
|
this.parameters.outputType = type;
|
|
819
819
|
} else {
|
|
820
|
-
console.warn(
|
|
820
|
+
console.warn(`analytics.request.withOutputType(): "${value}" not listed as possible value`);
|
|
821
821
|
this.parameters.outputType = value;
|
|
822
822
|
}
|
|
823
823
|
|
|
@@ -14,7 +14,7 @@ const getParseMiddleware = type => {
|
|
|
14
14
|
switch (type) {
|
|
15
15
|
case 'STRING':
|
|
16
16
|
case 'TEXT':
|
|
17
|
-
return value =>
|
|
17
|
+
return value => `${value}`;
|
|
18
18
|
|
|
19
19
|
case 'INTEGER':
|
|
20
20
|
case 'NUMBER':
|
|
@@ -41,7 +41,7 @@ const isCollectHeader = (header, dimensions) => {
|
|
|
41
41
|
return Boolean(Array.isArray(dimensions) && dimensions.length === 0);
|
|
42
42
|
};
|
|
43
43
|
|
|
44
|
-
const getPrefixedId = (id, prefix) =>
|
|
44
|
+
const getPrefixedId = (id, prefix) => `${prefix || ''} ${id}`;
|
|
45
45
|
|
|
46
46
|
const getNameByIdsByValueType = (id, valueType) => {
|
|
47
47
|
if (valueType === 'BOOLEAN') {
|
|
@@ -2,7 +2,17 @@ import fixtures from '../../../__fixtures__/fixtures';
|
|
|
2
2
|
import DataEngineMock from '../__mocks__/DataEngine';
|
|
3
3
|
import AnalyticsAggregate from '../AnalyticsAggregate';
|
|
4
4
|
import AnalyticsRequest from '../AnalyticsRequest';
|
|
5
|
-
const debugSqlFixture =
|
|
5
|
+
const debugSqlFixture = `select de.name as de_name, de.uid as de_uid, de.dataelementid as de_id, pe.startdate as
|
|
6
|
+
start_date, pe.enddate as end_date, pt.name as pt_name, ou.name as ou_name, ou.uid as ou_uid, ou.organisationunitid as
|
|
7
|
+
ou_id, coc.name as coc_name, coc.uid as coc_uid, coc.categoryoptioncomboid as coc_id, aoc.name as aoc_name, aoc.uid as
|
|
8
|
+
aoc_uid, aoc.categoryoptioncomboid as aoc_id, dv.value as datavalue from datavalue dv inner join dataelement de on
|
|
9
|
+
dv.dataelementid = de.dataelementid inner join period pe on dv.periodid = pe.periodid inner join periodtype pt on
|
|
10
|
+
pe.periodtypeid = pt.periodtypeid inner join organisationunit ou on dv.sourceid = ou.organisationunitid inner join
|
|
11
|
+
categoryoptioncombo coc on dv.categoryoptioncomboid = coc.categoryoptioncomboid inner join categoryoptioncombo aoc on
|
|
12
|
+
dv.attributeoptioncomboid = aoc.categoryoptioncomboid where dv.dataelementid in (359596,359597) and ((pe.startdate >=
|
|
13
|
+
'2016-01-01' and pe.enddate <= '2016-03-31') or (pe.startdate >= '2016-04-01' and pe.enddate <= '2016-06-30') ) and
|
|
14
|
+
((dv.sourceid in (select organisationunitid from _orgunitstructure where idlevel2 = 264)) ) and dv.deleted is false
|
|
15
|
+
limit 100000`;
|
|
6
16
|
describe('Analytics.aggregate', () => {
|
|
7
17
|
let aggregate;
|
|
8
18
|
let request;
|
|
@@ -3,7 +3,7 @@ import AnalyticsRequest from '../AnalyticsRequest';
|
|
|
3
3
|
let request;
|
|
4
4
|
let expectedParameters;
|
|
5
5
|
|
|
6
|
-
const getFuncName = parameter =>
|
|
6
|
+
const getFuncName = parameter => `with${parameter.charAt(0).toUpperCase()}${parameter.slice(1)}`;
|
|
7
7
|
|
|
8
8
|
describe('AnalyticsRequest', () => {
|
|
9
9
|
beforeEach(() => {
|
|
@@ -234,12 +234,12 @@ describe('AnalyticsRequest', () => {
|
|
|
234
234
|
;
|
|
235
235
|
['aggregateData', 'coordinatesOnly', 'collapseDataDimensions', 'hideEmptyRows', 'hideEmptyColumns', 'hierarchyMeta', 'ignoreLimit', 'includeClusterPoints', 'includeNumDen', 'showHierarchy', 'skipData', 'skipMeta', 'skipRounding', 'tableLayout', 'includeMetadataDetails'].forEach(parameter => {
|
|
236
236
|
const funcName = getFuncName(parameter);
|
|
237
|
-
it(
|
|
237
|
+
it(`should add the ${parameter} parameter with default value`, () => {
|
|
238
238
|
request[funcName]();
|
|
239
239
|
expectedParameters[parameter] = true;
|
|
240
240
|
expect(request.parameters).toEqual(expectedParameters);
|
|
241
241
|
});
|
|
242
|
-
it(
|
|
242
|
+
it(`should replace the ${parameter} parameter on subsequent calls with the specified value`, () => {
|
|
243
243
|
request[funcName](false);
|
|
244
244
|
expectedParameters[parameter] = false;
|
|
245
245
|
expect(request.parameters).toEqual(expectedParameters);
|
|
@@ -255,18 +255,18 @@ describe('AnalyticsRequest', () => {
|
|
|
255
255
|
'stage', 'startDate', 'userOrgUnit', 'value' // XXX
|
|
256
256
|
].forEach(parameter => {
|
|
257
257
|
const funcName = getFuncName(parameter);
|
|
258
|
-
it(
|
|
258
|
+
it(`should add the ${parameter} parameter with the specified value`, () => {
|
|
259
259
|
request[funcName]('test');
|
|
260
260
|
expectedParameters[parameter] = 'test';
|
|
261
261
|
expect(request.parameters).toEqual(expectedParameters);
|
|
262
262
|
});
|
|
263
|
-
it(
|
|
263
|
+
it(`should replace the ${parameter} parameter on subsequent calls with the specified value`, () => {
|
|
264
264
|
request = request[funcName]('test');
|
|
265
265
|
request[funcName]('test2');
|
|
266
266
|
expectedParameters[parameter] = 'test2';
|
|
267
267
|
expect(request.parameters).toEqual(expectedParameters);
|
|
268
268
|
});
|
|
269
|
-
it(
|
|
269
|
+
it(`should not replace the ${parameter} parameter when called without passing a value`, () => {
|
|
270
270
|
request = request[funcName]('test');
|
|
271
271
|
request[funcName]();
|
|
272
272
|
expectedParameters[parameter] = 'test';
|
|
@@ -282,17 +282,17 @@ describe('AnalyticsRequest', () => {
|
|
|
282
282
|
Object.entries(params).forEach(([key, value]) => {
|
|
283
283
|
const parameter = key;
|
|
284
284
|
const funcName = getFuncName(parameter);
|
|
285
|
-
it(
|
|
285
|
+
it(`should add the ${parameter} parameter with the default value`, () => {
|
|
286
286
|
request[funcName]();
|
|
287
287
|
expectedParameters[parameter] = value;
|
|
288
288
|
expect(request.parameters).toEqual(expectedParameters);
|
|
289
289
|
});
|
|
290
|
-
it(
|
|
290
|
+
it(`should add the ${parameter} parameter with the specified value`, () => {
|
|
291
291
|
request[funcName](10);
|
|
292
292
|
expectedParameters[parameter] = 10;
|
|
293
293
|
expect(request.parameters).toEqual(expectedParameters);
|
|
294
294
|
});
|
|
295
|
-
it(
|
|
295
|
+
it(`should replace the ${parameter} parameter on subsequent calls with the specified value`, () => {
|
|
296
296
|
request = request[funcName](10);
|
|
297
297
|
request[funcName](20);
|
|
298
298
|
expectedParameters[parameter] = 20;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import AnalyticsRequestBase from '../AnalyticsRequestBase';
|
|
2
2
|
import { customEncodeURIComponent } from '../utils';
|
|
3
3
|
jest.mock('../utils', () => ({
|
|
4
|
-
customEncodeURIComponent: jest.fn(x =>
|
|
4
|
+
customEncodeURIComponent: jest.fn(x => `<${x}>`)
|
|
5
5
|
}));
|
|
6
6
|
const endPoint = 'foo';
|
|
7
7
|
const path = 'bar';
|
|
8
8
|
const program = 'census';
|
|
9
9
|
const format = 'json';
|
|
10
|
-
const basePath =
|
|
10
|
+
const basePath = `${endPoint}/${path}/${program}.${format}`;
|
|
11
11
|
const dimensions = [{
|
|
12
12
|
dimension: 'ou',
|
|
13
13
|
items: ['mars', 'earth']
|
|
@@ -44,7 +44,7 @@ describe('AnalyticsRequestBase', () => {
|
|
|
44
44
|
});
|
|
45
45
|
const url = request.buildUrl();
|
|
46
46
|
expect(customEncodeURIComponent).toHaveBeenCalledTimes(4);
|
|
47
|
-
expect(url).toBe(
|
|
47
|
+
expect(url).toBe(`${basePath}?dimension=ou:<mars>;<earth>&dimension=dx:<population>&dimension=question&dimension=answer:<42>`);
|
|
48
48
|
});
|
|
49
49
|
it('Should build a URL with sorted dimension parameters when options.sorted=true', () => {
|
|
50
50
|
const request = buildRequest({
|
|
@@ -54,7 +54,7 @@ describe('AnalyticsRequestBase', () => {
|
|
|
54
54
|
sorted: true
|
|
55
55
|
});
|
|
56
56
|
expect(customEncodeURIComponent).toHaveBeenCalledTimes(4);
|
|
57
|
-
expect(url).toBe(
|
|
57
|
+
expect(url).toBe(`${basePath}?dimension=answer:<42>&dimension=dx:<population>&dimension=ou:<earth>;<mars>&dimension=question`);
|
|
58
58
|
});
|
|
59
59
|
it('Should not choke on a null or empty filter array', () => {
|
|
60
60
|
const request = buildRequest();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Define our very own special list of characters that we don't want to encode in the URI
|
|
2
2
|
const whitelistURI = ',&$=/;:';
|
|
3
3
|
const whitelistURICodes = whitelistURI.split('').map(c => encodeURIComponent(c));
|
|
4
|
-
const whitelistRegExp = new RegExp(
|
|
4
|
+
const whitelistRegExp = new RegExp(`(?:${whitelistURICodes.join('|')})`, 'g');
|
|
5
5
|
export const customEncodeURIComponent = uri => encodeURIComponent(uri).replace(whitelistRegExp, decodeURIComponent);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import objectClean from 'd2-utilizr/lib/objectClean';
|
|
2
|
-
import { ALL_ID // CHART_AGGREGATE_AGGREGATABLE_TYPES,
|
|
3
|
-
|
|
2
|
+
import { ALL_ID, // CHART_AGGREGATE_AGGREGATABLE_TYPES,
|
|
3
|
+
INDICATORS, DATA_ELEMENTS, DATA_SETS, PROGRAM_INDICATORS, EVENT_DATA_ITEMS, PROGRAM_DATA_ELEMENT, PROGRAM_ATTRIBUTE, TOTALS } from '../modules/dataTypes';
|
|
4
4
|
import { onError } from './index'; // Query definitions
|
|
5
5
|
|
|
6
6
|
export const dimensionsQuery = {
|
|
@@ -8,8 +8,8 @@ export const dimensionsQuery = {
|
|
|
8
8
|
params: ({
|
|
9
9
|
nameProp
|
|
10
10
|
}) => ({
|
|
11
|
-
fields:
|
|
12
|
-
order:
|
|
11
|
+
fields: `id,${nameProp}~rename(name),dimensionType,dataDimensionType`,
|
|
12
|
+
order: `${nameProp}:asc`,
|
|
13
13
|
paging: false
|
|
14
14
|
})
|
|
15
15
|
};
|
|
@@ -22,11 +22,11 @@ const recommendedDimensionsQuery = {
|
|
|
22
22
|
const dimensions = [];
|
|
23
23
|
|
|
24
24
|
if (dxIds.length) {
|
|
25
|
-
dimensions.push(
|
|
25
|
+
dimensions.push(`dx:${dxIds.join(';')}`);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
if (ouIds.length) {
|
|
29
|
-
dimensions.push(
|
|
29
|
+
dimensions.push(`ou:${ouIds.join(';')}`);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
return {
|
|
@@ -46,22 +46,22 @@ export const dataItemsQuery = {
|
|
|
46
46
|
const filters = []; // TODO: Extract all of this logic out of the query?
|
|
47
47
|
|
|
48
48
|
if ((filter === null || filter === void 0 ? void 0 : filter.dataType) === EVENT_DATA_ITEMS) {
|
|
49
|
-
filters.push(
|
|
49
|
+
filters.push(`dimensionItemType:in:[${PROGRAM_DATA_ELEMENT},${PROGRAM_ATTRIBUTE}]`);
|
|
50
50
|
} else if (filter !== null && filter !== void 0 && filter.dataType && filter.dataType !== ALL_ID) {
|
|
51
|
-
filters.push(
|
|
51
|
+
filters.push(`dimensionItemType:eq:${filter.dataType}`);
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
if (filter !== null && filter !== void 0 && filter.group && filter.group !== ALL_ID && [EVENT_DATA_ITEMS, PROGRAM_INDICATORS].includes(filter.dataType)) {
|
|
55
|
-
filters.push(
|
|
55
|
+
filters.push(`programId:eq:${filter.group}`);
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
if (searchTerm) {
|
|
59
|
-
filters.push(
|
|
59
|
+
filters.push(`${nameProp}:ilike:${searchTerm}`);
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
return objectClean({
|
|
63
|
-
fields:
|
|
64
|
-
order:
|
|
63
|
+
fields: `id,${nameProp}~rename(name),dimensionItemType`,
|
|
64
|
+
order: `${nameProp}:asc`,
|
|
65
65
|
filter: filters,
|
|
66
66
|
paging: true,
|
|
67
67
|
page
|
|
@@ -79,16 +79,16 @@ export const indicatorsQuery = {
|
|
|
79
79
|
const filters = [];
|
|
80
80
|
|
|
81
81
|
if (filter !== null && filter !== void 0 && filter.group && filter.group !== ALL_ID) {
|
|
82
|
-
filters.push(
|
|
82
|
+
filters.push(`indicatorGroups.id:eq:${filter.group}`);
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
if (searchTerm) {
|
|
86
|
-
filters.push(
|
|
86
|
+
filters.push(`${nameProp}:ilike:${searchTerm}`);
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
return {
|
|
90
|
-
fields:
|
|
91
|
-
order:
|
|
90
|
+
fields: `id,${nameProp}~rename(name),dimensionItemType`,
|
|
91
|
+
order: `${nameProp}:asc`,
|
|
92
92
|
filter: filters,
|
|
93
93
|
paging: true,
|
|
94
94
|
page
|
|
@@ -100,8 +100,8 @@ export const indicatorGroupsQuery = {
|
|
|
100
100
|
params: ({
|
|
101
101
|
nameProp
|
|
102
102
|
}) => ({
|
|
103
|
-
fields:
|
|
104
|
-
order:
|
|
103
|
+
fields: `id,${nameProp}~rename(name)`,
|
|
104
|
+
order: `${nameProp}:asc`,
|
|
105
105
|
paging: false
|
|
106
106
|
})
|
|
107
107
|
};
|
|
@@ -117,16 +117,16 @@ export const dataElementsQuery = {
|
|
|
117
117
|
const filters = ['domainType:eq:AGGREGATE'];
|
|
118
118
|
|
|
119
119
|
if (filter !== null && filter !== void 0 && filter.group && filter.group !== ALL_ID) {
|
|
120
|
-
filters.push(
|
|
120
|
+
filters.push(`dataElementGroups.id:eq:${filter.group}`);
|
|
121
121
|
}
|
|
122
122
|
|
|
123
123
|
if (searchTerm) {
|
|
124
|
-
filters.push(
|
|
124
|
+
filters.push(`${nameProp}:ilike:${searchTerm}`);
|
|
125
125
|
}
|
|
126
126
|
|
|
127
127
|
return {
|
|
128
|
-
fields:
|
|
129
|
-
order:
|
|
128
|
+
fields: `${idField},${nameProp}~rename(name),dimensionItemType`,
|
|
129
|
+
order: `${nameProp}:asc`,
|
|
130
130
|
filter: filters,
|
|
131
131
|
paging: true,
|
|
132
132
|
page
|
|
@@ -138,16 +138,16 @@ export const dataElementGroupsQuery = {
|
|
|
138
138
|
params: ({
|
|
139
139
|
nameProp
|
|
140
140
|
}) => ({
|
|
141
|
-
fields:
|
|
142
|
-
order:
|
|
141
|
+
fields: `id,${nameProp}~rename(name)`,
|
|
142
|
+
order: `${nameProp}:asc`,
|
|
143
143
|
paging: false
|
|
144
144
|
})
|
|
145
145
|
};
|
|
146
146
|
export const itemsByDimensionQuery = {
|
|
147
|
-
resource:
|
|
147
|
+
resource: `dimensions`,
|
|
148
148
|
id: ({
|
|
149
149
|
id
|
|
150
|
-
}) =>
|
|
150
|
+
}) => `${id}/items`,
|
|
151
151
|
params: ({
|
|
152
152
|
searchTerm,
|
|
153
153
|
page,
|
|
@@ -156,12 +156,12 @@ export const itemsByDimensionQuery = {
|
|
|
156
156
|
const filters = [];
|
|
157
157
|
|
|
158
158
|
if (searchTerm) {
|
|
159
|
-
filters.push(
|
|
159
|
+
filters.push(`${nameProp}:ilike:${searchTerm}`);
|
|
160
160
|
}
|
|
161
161
|
|
|
162
162
|
return {
|
|
163
|
-
fields:
|
|
164
|
-
order:
|
|
163
|
+
fields: `id,${nameProp}~rename(name)`,
|
|
164
|
+
order: `${nameProp}:asc`,
|
|
165
165
|
filter: filters,
|
|
166
166
|
paging: true,
|
|
167
167
|
page
|
|
@@ -180,16 +180,16 @@ export const dataElementOperandsQuery = {
|
|
|
180
180
|
const filters = [];
|
|
181
181
|
|
|
182
182
|
if (filter !== null && filter !== void 0 && filter.group && filter.group !== ALL_ID) {
|
|
183
|
-
filters.push(
|
|
183
|
+
filters.push(`dataElement.dataElementGroups.id:eq:${filter.group}`);
|
|
184
184
|
}
|
|
185
185
|
|
|
186
186
|
if (searchTerm) {
|
|
187
|
-
filters.push(
|
|
187
|
+
filters.push(`${nameProp}:ilike:${searchTerm}`);
|
|
188
188
|
}
|
|
189
189
|
|
|
190
190
|
return {
|
|
191
|
-
fields:
|
|
192
|
-
order:
|
|
191
|
+
fields: `${idField},${nameProp}~rename(name),dimensionItemType`,
|
|
192
|
+
order: `${nameProp}:asc`,
|
|
193
193
|
filter: filters,
|
|
194
194
|
paging: true,
|
|
195
195
|
page
|
|
@@ -207,16 +207,16 @@ export const dataSetsQuery = {
|
|
|
207
207
|
const filters = [];
|
|
208
208
|
|
|
209
209
|
if (searchTerm) {
|
|
210
|
-
filters.push(
|
|
210
|
+
filters.push(`${nameProp}:ilike:${searchTerm}`);
|
|
211
211
|
}
|
|
212
212
|
|
|
213
213
|
if (filter !== null && filter !== void 0 && filter.group && filter.group !== ALL_ID) {
|
|
214
|
-
filters.push(
|
|
214
|
+
filters.push(`id:eq:${filter.group}`);
|
|
215
215
|
}
|
|
216
216
|
|
|
217
217
|
const query = {
|
|
218
|
-
fields:
|
|
219
|
-
order:
|
|
218
|
+
fields: `dimensionItem~rename(id),${nameProp}~rename(name),dimensionItemType`,
|
|
219
|
+
order: `${nameProp}:asc`,
|
|
220
220
|
filter: filters,
|
|
221
221
|
paging: false
|
|
222
222
|
};
|
|
@@ -234,8 +234,8 @@ export const programsQuery = {
|
|
|
234
234
|
params: ({
|
|
235
235
|
nameProp
|
|
236
236
|
}) => ({
|
|
237
|
-
fields:
|
|
238
|
-
order:
|
|
237
|
+
fields: `id,${nameProp}~rename(name)`,
|
|
238
|
+
order: `${nameProp}:asc`,
|
|
239
239
|
paging: false
|
|
240
240
|
})
|
|
241
241
|
}; // Fetch functions
|
|
@@ -1,49 +1,99 @@
|
|
|
1
1
|
import { onError } from './index';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
2
|
+
const orgUnitLevelsQuery = {
|
|
3
|
+
resource: 'organisationUnitLevels',
|
|
4
|
+
params: ({
|
|
5
|
+
displayNameProp = 'displayName'
|
|
6
|
+
}) => ({
|
|
7
|
+
fields: `id,level,${displayNameProp}~rename(displayName),name`,
|
|
8
|
+
paging: false
|
|
9
|
+
})
|
|
10
|
+
};
|
|
11
|
+
const orgUnitGroupsQuery = {
|
|
12
|
+
resource: 'organisationUnitGroups',
|
|
13
|
+
params: ({
|
|
14
|
+
displayNameProp = 'displayName'
|
|
15
|
+
}) => ({
|
|
16
|
+
fields: `id,${displayNameProp}~rename(displayName),name`,
|
|
17
|
+
paging: false
|
|
18
|
+
})
|
|
19
|
+
};
|
|
20
|
+
const orgUnitRootsQuery = {
|
|
21
|
+
resource: 'organisationUnits',
|
|
22
|
+
params: {
|
|
23
|
+
fields: 'id,displayName,name',
|
|
24
|
+
userDataViewFallback: true,
|
|
25
|
+
paging: false
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
const orgUnitsQuery = {
|
|
29
|
+
resource: 'organisationUnits',
|
|
30
|
+
params: ({
|
|
31
|
+
displayNameProp
|
|
32
|
+
}) => ({
|
|
33
|
+
fields: `id,path,${displayNameProp}~rename(displayName),children::isNotEmpty`,
|
|
19
34
|
level: 1,
|
|
20
|
-
|
|
21
|
-
|
|
35
|
+
userDataViewFallback: true,
|
|
36
|
+
paging: false
|
|
37
|
+
})
|
|
38
|
+
};
|
|
39
|
+
const orgUnitQuery = {
|
|
40
|
+
resource: 'organisationUnits',
|
|
41
|
+
id: ({
|
|
42
|
+
id
|
|
43
|
+
}) => id,
|
|
44
|
+
params: {
|
|
45
|
+
fields: 'id,level,displayName~rename(name),path,parent[id,displayName~rename(name)],children[level]',
|
|
46
|
+
userDataViewFallback: true,
|
|
47
|
+
paging: false
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
export const apiFetchOrganisationUnitLevels = async dataEngine => {
|
|
51
|
+
const orgUnitLevelsData = await dataEngine.query({
|
|
52
|
+
orgUnitLevels: orgUnitLevelsQuery
|
|
53
|
+
}, {
|
|
54
|
+
onError
|
|
22
55
|
});
|
|
56
|
+
return orgUnitLevelsData.orgUnitLevels.organisationUnitLevels;
|
|
23
57
|
};
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
return
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
58
|
+
export const apiFetchOrganisationUnitGroups = async (dataEngine, displayNameProp) => {
|
|
59
|
+
const orgUnitGroupsData = await dataEngine.query({
|
|
60
|
+
orgUnitGroups: orgUnitGroupsQuery
|
|
61
|
+
}, {
|
|
62
|
+
variables: {
|
|
63
|
+
displayNameProp
|
|
64
|
+
},
|
|
65
|
+
onError
|
|
66
|
+
});
|
|
67
|
+
return orgUnitGroupsData.orgUnitGroups.organisationUnitGroups;
|
|
68
|
+
};
|
|
69
|
+
export const apiFetchOrganisationUnitRoots = async dataEngine => {
|
|
70
|
+
const orgUnitRootsData = await dataEngine.query({
|
|
71
|
+
orgUnitRoots: orgUnitRootsQuery
|
|
72
|
+
}, {
|
|
73
|
+
onError
|
|
74
|
+
});
|
|
75
|
+
return orgUnitRootsData.orgUnitRoots.organisationUnits;
|
|
76
|
+
}; // TODO: Unused, previously used to load all org units for the tree, but that is done by the ui component internally now, remove?
|
|
41
77
|
|
|
42
|
-
export const
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
78
|
+
export const apiFetchOrganisationUnits = async (dataEngine, displayNameProp) => {
|
|
79
|
+
const orgUnitsData = await dataEngine.query({
|
|
80
|
+
orgUnits: orgUnitsQuery
|
|
81
|
+
}, {
|
|
82
|
+
variables: {
|
|
83
|
+
displayNameProp
|
|
84
|
+
},
|
|
85
|
+
onError
|
|
86
|
+
});
|
|
87
|
+
return orgUnitsData.orgUnits.organisationUnits;
|
|
88
|
+
};
|
|
89
|
+
export const apiFetchOrganisationUnit = async (dataEngine, id) => {
|
|
90
|
+
const orgUnitData = await dataEngine.query({
|
|
91
|
+
orgUnit: orgUnitQuery
|
|
92
|
+
}, {
|
|
93
|
+
variables: {
|
|
94
|
+
id
|
|
95
|
+
},
|
|
96
|
+
onError
|
|
97
|
+
});
|
|
98
|
+
return orgUnitData.orgUnit;
|
|
49
99
|
};
|
|
@@ -14,7 +14,7 @@ const DataTypes = ({
|
|
|
14
14
|
var _dataTypes$currentDat;
|
|
15
15
|
|
|
16
16
|
return /*#__PURE__*/React.createElement("div", {
|
|
17
|
-
className:
|
|
17
|
+
className: `jsx-${styles.__hash}` + " " + "container"
|
|
18
18
|
}, /*#__PURE__*/React.createElement(SingleSelectField, {
|
|
19
19
|
label: i18n.t('Data Type'),
|
|
20
20
|
dataTest: dataTest,
|
|
@@ -25,12 +25,12 @@ const DataTypes = ({
|
|
|
25
25
|
value: ALL_ID,
|
|
26
26
|
key: ALL_ID,
|
|
27
27
|
label: i18n.t('All types'),
|
|
28
|
-
dataTest:
|
|
28
|
+
dataTest: `${dataTest}-option-all`
|
|
29
29
|
}), Object.values(dataTypes).map(type => /*#__PURE__*/React.createElement(SingleSelectOption, {
|
|
30
30
|
value: type.id,
|
|
31
31
|
key: type.id,
|
|
32
32
|
label: type.getName(),
|
|
33
|
-
dataTest:
|
|
33
|
+
dataTest: `${dataTest}-option-${type.id}`
|
|
34
34
|
}))), /*#__PURE__*/React.createElement(_JSXStyle, {
|
|
35
35
|
id: styles.__hash
|
|
36
36
|
}, styles));
|
|
@@ -18,7 +18,7 @@ export const DetailSelector = ({
|
|
|
18
18
|
}) => {
|
|
19
19
|
const options = getOptions();
|
|
20
20
|
return /*#__PURE__*/React.createElement("div", {
|
|
21
|
-
className:
|
|
21
|
+
className: `jsx-${styles.__hash}` + " " + "detail-container"
|
|
22
22
|
}, /*#__PURE__*/React.createElement(SingleSelectField, {
|
|
23
23
|
dataTest: dataTest,
|
|
24
24
|
label: i18n.t('Disaggregation'),
|
|
@@ -29,7 +29,7 @@ export const DetailSelector = ({
|
|
|
29
29
|
value: option[0],
|
|
30
30
|
key: option[0],
|
|
31
31
|
label: option[1],
|
|
32
|
-
dataTest:
|
|
32
|
+
dataTest: `${dataTest}-option-${option[0]}`
|
|
33
33
|
}))), /*#__PURE__*/React.createElement(_JSXStyle, {
|
|
34
34
|
id: styles.__hash
|
|
35
35
|
}, styles));
|
|
@@ -38,14 +38,14 @@ const GroupsSelector = ({
|
|
|
38
38
|
fetchGroups();
|
|
39
39
|
}, [dataType]);
|
|
40
40
|
return /*#__PURE__*/React.createElement("div", {
|
|
41
|
-
className:
|
|
41
|
+
className: `jsx-${styles.__hash}` + " " + "container"
|
|
42
42
|
}, /*#__PURE__*/React.createElement(_JSXStyle, {
|
|
43
43
|
id: styles.__hash
|
|
44
44
|
}, styles), /*#__PURE__*/React.createElement("div", {
|
|
45
|
-
className:
|
|
45
|
+
className: `jsx-${styles.__hash}` + " " + "group-container"
|
|
46
46
|
}, /*#__PURE__*/React.createElement(SingleSelectField, {
|
|
47
47
|
label: (_dataTypes$dataType3 = dataTypes[dataType]) === null || _dataTypes$dataType3 === void 0 ? void 0 : _dataTypes$dataType3.getGroupLabel(),
|
|
48
|
-
dataTest:
|
|
48
|
+
dataTest: `${dataTest}-groups-select-field`,
|
|
49
49
|
selected: currentGroup || defaultGroup.id,
|
|
50
50
|
placeholder: !currentGroup && (_dataTypes$dataType4 = dataTypes[dataType]) !== null && _dataTypes$dataType4 !== void 0 && _dataTypes$dataType4.getPlaceholder ? dataTypes[dataType].getPlaceholder() : null,
|
|
51
51
|
onChange: ref => onGroupChange(ref.selected),
|
|
@@ -57,20 +57,20 @@ const GroupsSelector = ({
|
|
|
57
57
|
value: defaultGroup.id,
|
|
58
58
|
key: defaultGroup.id,
|
|
59
59
|
label: defaultGroup.getName(),
|
|
60
|
-
dataTest:
|
|
60
|
+
dataTest: `${dataTest}-groups-select-field-option-${defaultGroup.id}`
|
|
61
61
|
}) : null, !isLoading ? groups.map(item => /*#__PURE__*/React.createElement(SingleSelectOption, {
|
|
62
62
|
value: item.id,
|
|
63
63
|
key: item.id,
|
|
64
64
|
label: item.name,
|
|
65
|
-
dataTest:
|
|
65
|
+
dataTest: `${dataTest}-groups-select-field-option-${item.id}`
|
|
66
66
|
})) : null)), subGroupType === SUB_GROUP_DETAIL && /*#__PURE__*/React.createElement(DetailSelector, {
|
|
67
67
|
currentValue: currentSubGroup,
|
|
68
68
|
onChange: onSubGroupChange,
|
|
69
|
-
dataTest:
|
|
69
|
+
dataTest: `${dataTest}-sub-group-select-field`
|
|
70
70
|
}), subGroupType === SUB_GROUP_METRIC && /*#__PURE__*/React.createElement(MetricSelector, {
|
|
71
71
|
currentValue: currentSubGroup,
|
|
72
72
|
onChange: onSubGroupChange,
|
|
73
|
-
dataTest:
|
|
73
|
+
dataTest: `${dataTest}-sub-group-select-field`
|
|
74
74
|
}));
|
|
75
75
|
};
|
|
76
76
|
|