@dhis2/analytics 26.0.7 → 26.0.9
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__/CalculationModal.stories.js +0 -5
- package/build/cjs/__demo__/DimensionsPanel.stories.js +0 -7
- package/build/cjs/__demo__/DynamicDimension.stories.js +0 -4
- package/build/cjs/__demo__/FileMenu.stories.js +2 -7
- package/build/cjs/__demo__/Filter.stories.js +0 -10
- package/build/cjs/__demo__/FixedPeriodSelect.stories.js +0 -6
- package/build/cjs/__demo__/OpenFileDialog.stories.js +1 -9
- package/build/cjs/__demo__/OrgUnitDimension.stories.js +1 -9
- package/build/cjs/__demo__/PeriodDimension.stories.js +0 -5
- package/build/cjs/__demo__/PivotTable.stories.js +100 -104
- package/build/cjs/__demo__/Toolbar.stories.js +0 -6
- package/build/cjs/__fixtures__/fixtures.js +0 -7
- package/build/cjs/api/__tests__/dimensions.spec.js +0 -3
- package/build/cjs/api/analytics/Analytics.js +1 -12
- package/build/cjs/api/analytics/AnalyticsAggregate.js +2 -9
- package/build/cjs/api/analytics/AnalyticsBase.js +8 -21
- package/build/cjs/api/analytics/AnalyticsEnrollments.js +0 -5
- package/build/cjs/api/analytics/AnalyticsEvents.js +3 -11
- package/build/cjs/api/analytics/AnalyticsRequest.js +15 -34
- package/build/cjs/api/analytics/AnalyticsRequestBase.js +7 -28
- package/build/cjs/api/analytics/AnalyticsRequestDimensionsMixin.js +3 -16
- package/build/cjs/api/analytics/AnalyticsRequestFiltersMixin.js +3 -16
- package/build/cjs/api/analytics/AnalyticsRequestPropertiesMixin.js +55 -140
- package/build/cjs/api/analytics/AnalyticsResponse.js +21 -45
- package/build/cjs/api/analytics/AnalyticsResponseHeader.js +0 -6
- package/build/cjs/api/analytics/__mocks__/DataEngine.js +0 -5
- package/build/cjs/api/analytics/__tests__/Analytics.spec.js +0 -5
- package/build/cjs/api/analytics/__tests__/AnalyticsAggregate.spec.js +11 -8
- package/build/cjs/api/analytics/__tests__/AnalyticsBase.spec.js +0 -2
- package/build/cjs/api/analytics/__tests__/AnalyticsEnrollments.spec.js +0 -7
- package/build/cjs/api/analytics/__tests__/AnalyticsEvents.spec.js +0 -7
- package/build/cjs/api/analytics/__tests__/AnalyticsRequest.spec.js +17 -19
- package/build/cjs/api/analytics/__tests__/AnalyticsRequestBase.spec.js +4 -9
- package/build/cjs/api/analytics/__tests__/AnalyticsResponse.spec.js +3 -5
- package/build/cjs/api/analytics/__tests__/AnalyticsResponseHeader.spec.js +2 -4
- package/build/cjs/api/analytics/utils.js +1 -3
- package/build/cjs/api/dimensions.js +41 -91
- package/build/cjs/api/index.js +1 -2
- package/build/cjs/api/organisationUnits.js +5 -16
- package/build/cjs/assets/AssignedCategoriesIcon.js +0 -4
- package/build/cjs/assets/DimensionItemIcons/CalculationIcon.js +0 -4
- package/build/cjs/assets/DimensionItemIcons/DataElementIcon.js +0 -4
- package/build/cjs/assets/DimensionItemIcons/GenericIcon.js +0 -4
- package/build/cjs/assets/DimensionItemIcons/PeriodIcon.js +0 -4
- package/build/cjs/assets/DynamicDimensionIcon.js +0 -4
- package/build/cjs/assets/FormulaIcon.js +0 -4
- package/build/cjs/components/AboutAOUnit/AboutAOUnit.js +19 -47
- package/build/cjs/components/AboutAOUnit/styles/AboutAOUnit.style.js +1 -3
- package/build/cjs/components/AboutAOUnit/utils.js +0 -5
- package/build/cjs/components/CachedDataQueryProvider.js +0 -17
- package/build/cjs/components/DataDimension/Calculation/CalculationModal.js +26 -73
- package/build/cjs/components/DataDimension/Calculation/DataElementOption.js +6 -19
- package/build/cjs/components/DataDimension/Calculation/DataElementSelector.js +16 -51
- package/build/cjs/components/DataDimension/Calculation/DndContext.js +6 -36
- package/build/cjs/components/DataDimension/Calculation/DragHandleIcon.js +0 -4
- package/build/cjs/components/DataDimension/Calculation/DraggingItem.js +3 -15
- package/build/cjs/components/DataDimension/Calculation/DropZone.js +1 -12
- package/build/cjs/components/DataDimension/Calculation/FormulaField.js +5 -21
- package/build/cjs/components/DataDimension/Calculation/FormulaItem.js +13 -41
- package/build/cjs/components/DataDimension/Calculation/MathOperatorSelector.js +4 -14
- package/build/cjs/components/DataDimension/Calculation/Operator.js +5 -18
- package/build/cjs/components/DataDimension/Calculation/styles/CalculationModal.style.js +1 -3
- package/build/cjs/components/DataDimension/Calculation/styles/DataElementOption.style.js +1 -3
- package/build/cjs/components/DataDimension/Calculation/styles/DataElementSelector.style.js +1 -3
- package/build/cjs/components/DataDimension/Calculation/styles/DraggingItem.style.js +1 -3
- package/build/cjs/components/DataDimension/Calculation/styles/DropZone.style.js +1 -3
- package/build/cjs/components/DataDimension/Calculation/styles/FormulaField.style.js +1 -3
- package/build/cjs/components/DataDimension/Calculation/styles/FormulaItem.style.js +1 -3
- package/build/cjs/components/DataDimension/Calculation/styles/MathOperatorSelector.style.js +1 -3
- package/build/cjs/components/DataDimension/Calculation/styles/Operator.style.js +1 -3
- package/build/cjs/components/DataDimension/DataDimension.js +1 -11
- package/build/cjs/components/DataDimension/DataTypeSelector.js +3 -14
- package/build/cjs/components/DataDimension/DetailSelector.js +2 -13
- package/build/cjs/components/DataDimension/GroupSelector.js +7 -26
- package/build/cjs/components/DataDimension/ItemSelector.js +45 -94
- package/build/cjs/components/DataDimension/MetricSelector.js +3 -14
- package/build/cjs/components/DataDimension/styles/DataTypeSelector.style.js +1 -3
- package/build/cjs/components/DataDimension/styles/DetailSelector.style.js +1 -3
- package/build/cjs/components/DataDimension/styles/GroupSelector.style.js +1 -3
- package/build/cjs/components/DataDimension/styles/MetricSelector.style.js +1 -3
- package/build/cjs/components/DimensionMenu.js +18 -35
- package/build/cjs/components/DimensionsPanel/DimensionsPanel.js +5 -19
- package/build/cjs/components/DimensionsPanel/List/DimensionItem.js +11 -32
- package/build/cjs/components/DimensionsPanel/List/DimensionList.js +11 -30
- package/build/cjs/components/DimensionsPanel/List/OptionsButton.js +0 -6
- package/build/cjs/components/DimensionsPanel/List/RecommendedIcon.js +0 -8
- package/build/cjs/components/DimensionsPanel/List/__tests__/DimensionItem.spec.js +0 -7
- package/build/cjs/components/DimensionsPanel/List/styles/DimensionItem.style.js +0 -2
- package/build/cjs/components/DimensionsPanel/List/styles/DimensionList.style.js +2 -4
- package/build/cjs/components/DimensionsPanel/List/styles/RecommendedIcon.style.js +0 -2
- package/build/cjs/components/DimensionsPanel/__tests__/DimensionsPanel.spec.js +0 -8
- package/build/cjs/components/DimensionsPanel/styles/DimensionsPanel.style.js +1 -3
- package/build/cjs/components/DynamicDimension/DynamicDimension.js +4 -23
- package/build/cjs/components/DynamicDimension/ItemSelector.js +15 -41
- package/build/cjs/components/DynamicDimension/styles/DynamicDimension.style.js +1 -3
- package/build/cjs/components/FileMenu/DeleteDialog.js +0 -12
- package/build/cjs/components/FileMenu/FileMenu.js +0 -29
- package/build/cjs/components/FileMenu/FileMenu.styles.js +2 -4
- package/build/cjs/components/FileMenu/GetLinkDialog.js +5 -15
- package/build/cjs/components/FileMenu/GetLinkDialog.styles.js +1 -3
- package/build/cjs/components/FileMenu/RenameDialog.js +1 -17
- package/build/cjs/components/FileMenu/SaveAsDialog.js +3 -16
- package/build/cjs/components/FileMenu/__tests__/DeleteDialog.spec.js +1 -9
- package/build/cjs/components/FileMenu/__tests__/FileMenu.spec.js +28 -51
- package/build/cjs/components/FileMenu/__tests__/GetLinkDialog.spec.js +0 -9
- package/build/cjs/components/FileMenu/__tests__/RenameDialog.spec.js +1 -9
- package/build/cjs/components/FileMenu/__tests__/SaveAsDialog.spec.js +1 -9
- package/build/cjs/components/FileMenu/utils.js +4 -19
- package/build/cjs/components/Filter/Filter.js +1 -9
- package/build/cjs/components/Filter/__tests__/Filter.spec.js +0 -8
- package/build/cjs/components/Filter/styles/Filter.style.js +1 -3
- package/build/cjs/components/Interpretations/InterpretationModal/Comment.js +0 -12
- package/build/cjs/components/Interpretations/InterpretationModal/CommentAddForm.js +1 -14
- package/build/cjs/components/Interpretations/InterpretationModal/CommentDeleteButton.js +1 -11
- package/build/cjs/components/Interpretations/InterpretationModal/CommentUpdateForm.js +2 -14
- package/build/cjs/components/Interpretations/InterpretationModal/InterpretationModal.js +2 -26
- package/build/cjs/components/Interpretations/InterpretationModal/InterpretationThread.js +0 -15
- package/build/cjs/components/Interpretations/InterpretationModal/index.js +0 -1
- package/build/cjs/components/Interpretations/InterpretationModal/useModalContentWidth.js +0 -7
- package/build/cjs/components/Interpretations/InterpretationsUnit/InterpretationForm.js +2 -15
- package/build/cjs/components/Interpretations/InterpretationsUnit/InterpretationList.js +1 -16
- package/build/cjs/components/Interpretations/InterpretationsUnit/InterpretationsUnit.js +2 -15
- package/build/cjs/components/Interpretations/InterpretationsUnit/index.js +0 -1
- package/build/cjs/components/Interpretations/common/Interpretation/Interpretation.js +0 -13
- package/build/cjs/components/Interpretations/common/Interpretation/InterpretationDeleteButton.js +0 -10
- package/build/cjs/components/Interpretations/common/Interpretation/InterpretationSharingLink.js +1 -11
- package/build/cjs/components/Interpretations/common/Interpretation/InterpretationUpdateForm.js +1 -14
- package/build/cjs/components/Interpretations/common/Interpretation/index.js +0 -2
- package/build/cjs/components/Interpretations/common/Interpretation/useLike.js +1 -7
- package/build/cjs/components/Interpretations/common/Message/Message.js +1 -10
- package/build/cjs/components/Interpretations/common/Message/MessageButtonStrip.js +1 -8
- package/build/cjs/components/Interpretations/common/Message/MessageEditorContainer.js +1 -8
- package/build/cjs/components/Interpretations/common/Message/MessageIconButton.js +5 -13
- package/build/cjs/components/Interpretations/common/Message/MessageInput.js +2 -10
- package/build/cjs/components/Interpretations/common/Message/MessageStatsBar.js +1 -8
- package/build/cjs/components/Interpretations/common/Message/index.js +0 -6
- package/build/cjs/components/Interpretations/common/RichTextEditor/RichTextEditor.js +15 -35
- package/build/cjs/components/Interpretations/common/RichTextEditor/index.js +0 -1
- package/build/cjs/components/Interpretations/common/RichTextEditor/markdownHandler.js +4 -22
- package/build/cjs/components/Interpretations/common/RichTextEditor/styles/RichTextEditor.style.js +3 -5
- package/build/cjs/components/Interpretations/common/UserMention/UserList.js +1 -9
- package/build/cjs/components/Interpretations/common/UserMention/UserMentionWrapper.js +18 -46
- package/build/cjs/components/Interpretations/common/UserMention/styles/UserMentionWrapper.style.js +1 -6
- package/build/cjs/components/Interpretations/common/UserMention/useUserSearchResults.js +1 -9
- package/build/cjs/components/Interpretations/common/index.js +0 -6
- package/build/cjs/components/LegendKey/LegendKey.js +9 -17
- package/build/cjs/components/LegendKey/styles/LegendKey.style.js +1 -3
- package/build/cjs/components/OfflineTooltip.js +1 -12
- package/build/cjs/components/OpenFileDialog/CreatedByFilter.js +1 -8
- package/build/cjs/components/OpenFileDialog/CustomSelectOption.js +2 -13
- package/build/cjs/components/OpenFileDialog/DateField.js +0 -6
- package/build/cjs/components/OpenFileDialog/FileList.js +0 -8
- package/build/cjs/components/OpenFileDialog/NameFilter.js +0 -7
- package/build/cjs/components/OpenFileDialog/OpenFileDialog.js +29 -64
- package/build/cjs/components/OpenFileDialog/OpenFileDialog.styles.js +1 -3
- package/build/cjs/components/OpenFileDialog/PaginationControls.js +0 -7
- package/build/cjs/components/OpenFileDialog/VisTypeFilter.js +0 -10
- package/build/cjs/components/OpenFileDialog/styles/CustomSelectOption.style.js +1 -3
- package/build/cjs/components/OpenFileDialog/utils.js +0 -5
- package/build/cjs/components/Options/VisualizationOptions.js +0 -16
- package/build/cjs/components/Options/styles/VisualizationOptions.style.js +11 -14
- package/build/cjs/components/OrgUnitDimension/OrgUnitDimension.js +12 -47
- package/build/cjs/components/OrgUnitDimension/styles/OrgUnitDimension.style.js +1 -3
- package/build/cjs/components/PeriodDimension/FixedPeriodFilter.js +5 -16
- package/build/cjs/components/PeriodDimension/FixedPeriodSelect.js +5 -27
- package/build/cjs/components/PeriodDimension/PeriodDimension.js +0 -11
- package/build/cjs/components/PeriodDimension/PeriodTransfer.js +12 -41
- package/build/cjs/components/PeriodDimension/RelativePeriodFilter.js +2 -13
- package/build/cjs/components/PeriodDimension/__tests__/FixedPeriodSingleSelect.spec.js +0 -7
- package/build/cjs/components/PeriodDimension/__tests__/PeriodDimension.spec.js +0 -7
- package/build/cjs/components/PeriodDimension/__tests__/PeriodSelector.spec.js +0 -7
- package/build/cjs/components/PeriodDimension/__tests__/fixedPeriods.spec.js +2 -2
- package/build/cjs/components/PeriodDimension/__tests__/utils.spec.js +0 -3
- package/build/cjs/components/PeriodDimension/styles/FixedPeriodSelect.style.js +1 -3
- package/build/cjs/components/PeriodDimension/styles/PeriodFilter.style.js +1 -3
- package/build/cjs/components/PeriodDimension/utils/fixedPeriods.js +2 -35
- package/build/cjs/components/PeriodDimension/utils/index.js +0 -2
- package/build/cjs/components/PeriodDimension/utils/relativePeriods.js +0 -19
- package/build/cjs/components/PivotTable/PivotTable.js +0 -15
- package/build/cjs/components/PivotTable/PivotTableBody.js +0 -8
- package/build/cjs/components/PivotTable/PivotTableCell.js +4 -14
- package/build/cjs/components/PivotTable/PivotTableClippedAxis.js +0 -5
- package/build/cjs/components/PivotTable/PivotTableColumnHeaderCell.js +4 -18
- package/build/cjs/components/PivotTable/PivotTableColumnHeaders.js +0 -11
- package/build/cjs/components/PivotTable/PivotTableContainer.js +2 -11
- package/build/cjs/components/PivotTable/PivotTableDimensionLabelCell.js +4 -16
- package/build/cjs/components/PivotTable/PivotTableEmptyCell.js +3 -10
- package/build/cjs/components/PivotTable/PivotTableEmptyRow.js +0 -7
- package/build/cjs/components/PivotTable/PivotTableEngineContext.js +0 -10
- package/build/cjs/components/PivotTable/PivotTableHead.js +0 -7
- package/build/cjs/components/PivotTable/PivotTableHeaderCell.js +0 -5
- package/build/cjs/components/PivotTable/PivotTableRow.js +0 -11
- package/build/cjs/components/PivotTable/PivotTableRowHeaderCell.js +2 -10
- package/build/cjs/components/PivotTable/PivotTableSortIcon.js +2 -14
- package/build/cjs/components/PivotTable/PivotTableTitleRow.js +2 -13
- package/build/cjs/components/PivotTable/PivotTableTitleRows.js +0 -9
- package/build/cjs/components/PivotTable/PivotTableValueCell.js +4 -19
- package/build/cjs/components/PivotTable/icons/SortIconAscending.js +0 -4
- package/build/cjs/components/PivotTable/icons/SortIconDescending.js +0 -4
- package/build/cjs/components/PivotTable/icons/SortIconIdle.js +0 -4
- package/build/cjs/components/PivotTable/styles/PivotTable.style.js +3 -6
- package/build/cjs/components/Toolbar/HoverMenuBar/HoverMenuBar.js +0 -14
- package/build/cjs/components/Toolbar/HoverMenuBar/HoverMenuDropdown.js +1 -14
- package/build/cjs/components/Toolbar/HoverMenuBar/HoverMenuList.js +1 -16
- package/build/cjs/components/Toolbar/HoverMenuBar/HoverMenuListItem.js +4 -21
- package/build/cjs/components/Toolbar/HoverMenuBar/HoverMenuListItem.styles.js +1 -3
- package/build/cjs/components/Toolbar/HoverMenuBar/__tests__/HoverMenuBar.spec.js +0 -50
- package/build/cjs/components/Toolbar/HoverMenuBar/__tests__/HoverMenuDropdown.spec.js +1 -4
- package/build/cjs/components/Toolbar/HoverMenuBar/__tests__/HoverMenuList.spec.js +2 -6
- package/build/cjs/components/Toolbar/HoverMenuBar/__tests__/HoverMenuListItem.spec.js +1 -6
- package/build/cjs/components/Toolbar/HoverMenuBar/index.js +0 -4
- package/build/cjs/components/Toolbar/InterpretationsAndDetailsToggler.js +1 -10
- package/build/cjs/components/Toolbar/MenuButton.styles.js +1 -3
- package/build/cjs/components/Toolbar/Toolbar.js +1 -8
- package/build/cjs/components/Toolbar/ToolbarSidebar.js +1 -9
- package/build/cjs/components/Toolbar/UpdateButton.js +2 -13
- package/build/cjs/components/Toolbar/__tests__/InterpretationsAndDetailsToggler.spec.js +0 -5
- package/build/cjs/components/Toolbar/__tests__/Toolbar.spec.js +0 -4
- package/build/cjs/components/Toolbar/__tests__/ToolbarSidebar.spec.js +0 -4
- package/build/cjs/components/Toolbar/__tests__/UpdateButton.spec.js +0 -5
- package/build/cjs/components/Toolbar/index.js +0 -6
- package/build/cjs/components/TransferOption.js +7 -20
- package/build/cjs/components/TranslationDialog/TranslationModal/LocalesSelect.js +2 -12
- package/build/cjs/components/TranslationDialog/TranslationModal/TranslationForm.js +3 -27
- package/build/cjs/components/TranslationDialog/TranslationModal/TranslationModal.js +0 -12
- package/build/cjs/components/TranslationDialog/TranslationModal/TranslationModalActions.js +0 -11
- package/build/cjs/components/TranslationDialog/TranslationModal/useTranslationsResults.js +1 -7
- package/build/cjs/components/TranslationDialog/index.js +0 -1
- package/build/cjs/components/VisTypeIcon.js +0 -24
- package/build/cjs/components/styles/DimensionSelector.style.js +1 -3
- package/build/cjs/components/styles/DimensionsPanel.style.js +0 -2
- package/build/cjs/components/styles/TransferOption.style.js +1 -3
- package/build/cjs/index.js +0 -84
- package/build/cjs/locales/es/translations.json +7 -7
- package/build/cjs/locales/index.js +1 -74
- package/build/cjs/locales/km/translations.json +4 -3
- package/build/cjs/modules/__tests__/expressions.spec.js +4 -4
- package/build/cjs/modules/__tests__/getAdaptedUiLayoutByType.spec.js +0 -4
- package/build/cjs/modules/__tests__/getColorByValueFromLegendSet.spec.js +1 -2
- package/build/cjs/modules/__tests__/getOuLevelAndGroupText.spec.js +0 -1
- package/build/cjs/modules/__tests__/hash.spec.js +0 -2
- package/build/cjs/modules/__tests__/parseExpression.spec.js +0 -1
- package/build/cjs/modules/__tests__/renderValue.spec.js +19 -13
- package/build/cjs/modules/axis.js +1 -17
- package/build/cjs/modules/dataSets.js +0 -3
- package/build/cjs/modules/dataTypes.js +0 -9
- package/build/cjs/modules/dimensionListItem.js +0 -24
- package/build/cjs/modules/expressions.js +2 -21
- package/build/cjs/modules/fontStyle.js +15 -27
- package/build/cjs/modules/getAdaptedUiLayoutByType.js +7 -39
- package/build/cjs/modules/getOuLevelAndGroupText.js +0 -18
- package/build/cjs/modules/hash.js +0 -10
- package/build/cjs/modules/layout/__tests__/axisGetAllItems.spec.js +0 -2
- package/build/cjs/modules/layout/__tests__/axisGetDimension.spec.js +0 -3
- package/build/cjs/modules/layout/__tests__/axisGetDimensionIds.spec.js +0 -5
- package/build/cjs/modules/layout/__tests__/axisHasDataDimension.spec.js +0 -2
- package/build/cjs/modules/layout/__tests__/axisHasDimension.spec.js +0 -3
- package/build/cjs/modules/layout/__tests__/axisHasOuDimension.spec.js +0 -2
- package/build/cjs/modules/layout/__tests__/axisHasPeriodDimension.spec.js +0 -2
- package/build/cjs/modules/layout/__tests__/axisIsEmpty.spec.js +0 -2
- package/build/cjs/modules/layout/__tests__/dimensionCreate.spec.js +0 -5
- package/build/cjs/modules/layout/__tests__/dimensionGetId.spec.js +0 -3
- package/build/cjs/modules/layout/__tests__/dimensionGetItemIds.spec.js +0 -4
- package/build/cjs/modules/layout/__tests__/dimensionGetItems.spec.js +0 -3
- package/build/cjs/modules/layout/__tests__/dimensionHasRelativeItems.spec.js +0 -2
- package/build/cjs/modules/layout/__tests__/dimensionIs.spec.js +0 -3
- package/build/cjs/modules/layout/__tests__/dimensionIsEmpty.spec.js +0 -2
- package/build/cjs/modules/layout/__tests__/dimensionIsValid.spec.js +0 -2
- package/build/cjs/modules/layout/__tests__/itemGetId.spec.js +0 -3
- package/build/cjs/modules/layout/__tests__/itemIsValid.spec.js +0 -2
- package/build/cjs/modules/layout/__tests__/layoutFilterDimensions.spec.js +0 -5
- package/build/cjs/modules/layout/__tests__/layoutGetAllAxes.spec.js +0 -2
- package/build/cjs/modules/layout/__tests__/layoutGetAllDimensions.spec.js +0 -2
- package/build/cjs/modules/layout/__tests__/layoutGetAllItemIds.spec.js +0 -3
- package/build/cjs/modules/layout/__tests__/layoutGetAllItems.spec.js +0 -2
- package/build/cjs/modules/layout/__tests__/layoutGetAxisIdDimensionIdsObject.spec.js +0 -4
- package/build/cjs/modules/layout/__tests__/layoutGetDimension.spec.js +0 -3
- package/build/cjs/modules/layout/__tests__/layoutGetDimensionIdItemIdsObject.spec.js +0 -6
- package/build/cjs/modules/layout/__tests__/layoutGetDimensionItems.spec.js +0 -3
- package/build/cjs/modules/layout/__tests__/layoutHasDataDimension.spec.js +2 -4
- package/build/cjs/modules/layout/__tests__/layoutHasDimension.spec.js +2 -5
- package/build/cjs/modules/layout/__tests__/layoutHasDynamicDimension.spec.js +2 -4
- package/build/cjs/modules/layout/__tests__/layoutHasPeriodDimension.spec.js +2 -4
- package/build/cjs/modules/layout/__tests__/layoutReplaceDimension.spec.js +0 -3
- package/build/cjs/modules/layout/axis.js +5 -3
- package/build/cjs/modules/layout/axisGetAllItems.js +0 -3
- package/build/cjs/modules/layout/axisGetDimension.js +0 -4
- package/build/cjs/modules/layout/axisGetDimensionIds.js +0 -4
- package/build/cjs/modules/layout/axisHasDataDimension.js +0 -4
- package/build/cjs/modules/layout/axisHasDimension.js +0 -3
- package/build/cjs/modules/layout/axisHasOuDimension.js +0 -4
- package/build/cjs/modules/layout/axisHasPeriodDimension.js +0 -4
- package/build/cjs/modules/layout/axisHasRelativeItems.js +0 -3
- package/build/cjs/modules/layout/axisIsEmpty.js +0 -2
- package/build/cjs/modules/layout/dimension.js +3 -5
- package/build/cjs/modules/layout/dimensionCreate.js +0 -3
- package/build/cjs/modules/layout/dimensionGetId.js +1 -5
- package/build/cjs/modules/layout/dimensionGetItemIds.js +0 -4
- package/build/cjs/modules/layout/dimensionGetItems.js +0 -4
- package/build/cjs/modules/layout/dimensionHasRelativeItems.js +0 -5
- package/build/cjs/modules/layout/dimensionIs.js +0 -3
- package/build/cjs/modules/layout/dimensionIsEmpty.js +0 -3
- package/build/cjs/modules/layout/dimensionIsValid.js +0 -9
- package/build/cjs/modules/layout/item.js +3 -5
- package/build/cjs/modules/layout/itemGetId.js +0 -3
- package/build/cjs/modules/layout/itemIsValid.js +0 -5
- package/build/cjs/modules/layout/layout.js +0 -3
- package/build/cjs/modules/layout/layoutFilterDimensions.js +0 -6
- package/build/cjs/modules/layout/layoutGetAllAxes.js +0 -3
- package/build/cjs/modules/layout/layoutGetAllDimensions.js +0 -3
- package/build/cjs/modules/layout/layoutGetAllItemIds.js +0 -4
- package/build/cjs/modules/layout/layoutGetAllItems.js +0 -4
- package/build/cjs/modules/layout/layoutGetAxisIdDimensionIdsObject.js +0 -5
- package/build/cjs/modules/layout/layoutGetDimension.js +0 -4
- package/build/cjs/modules/layout/layoutGetDimensionIdItemIdsObject.js +0 -5
- package/build/cjs/modules/layout/layoutGetDimensionItems.js +0 -4
- package/build/cjs/modules/layout/layoutHasDataDimension.js +0 -4
- package/build/cjs/modules/layout/layoutHasDimension.js +0 -3
- package/build/cjs/modules/layout/layoutHasDynamicDimension.js +0 -5
- package/build/cjs/modules/layout/layoutHasPeriodDimension.js +0 -4
- package/build/cjs/modules/layout/layoutReplaceDimension.js +0 -8
- package/build/cjs/modules/layout/testResources.js +7 -9
- package/build/cjs/modules/layoutUiRules/__tests__/rules.spec.js +6 -14
- package/build/cjs/modules/layoutUiRules/index.js +0 -2
- package/build/cjs/modules/layoutUiRules/rules.js +10 -26
- package/build/cjs/modules/layoutUiRules/rulesHelper.js +1 -11
- package/build/cjs/modules/layoutUiRules/rulesUtils.js +6 -16
- package/build/cjs/modules/legends.js +0 -8
- package/build/cjs/modules/list.js +0 -4
- package/build/cjs/modules/ouIdHelper/__tests__/index.spec.js +0 -1
- package/build/cjs/modules/ouIdHelper/index.js +2 -8
- package/build/cjs/modules/ouLevelUtils/__tests__/index.spec.js +0 -1
- package/build/cjs/modules/ouLevelUtils/index.js +0 -13
- package/build/cjs/modules/outliers/__tests__/index.spec.js +0 -1
- package/build/cjs/modules/outliers/__tests__/iqr.spec.js +0 -1
- package/build/cjs/modules/outliers/__tests__/modZScore.spec.js +0 -1
- package/build/cjs/modules/outliers/__tests__/xyStats.spec.js +0 -1
- package/build/cjs/modules/outliers/index.js +6 -28
- package/build/cjs/modules/outliers/iqr.js +0 -19
- package/build/cjs/modules/outliers/modZScore.js +10 -34
- package/build/cjs/modules/outliers/normalization.js +2 -9
- package/build/cjs/modules/outliers/xyStats.js +0 -4
- package/build/cjs/modules/outliers/zScore.js +0 -13
- package/build/cjs/modules/pivotTable/AdaptiveClippingController.js +4 -33
- package/build/cjs/modules/pivotTable/PivotTableEngine.js +20 -190
- package/build/cjs/modules/pivotTable/applyLegendSet.js +0 -23
- package/build/cjs/modules/pivotTable/clipAxis.js +3 -6
- package/build/cjs/modules/pivotTable/clipPartitionedAxis.js +0 -8
- package/build/cjs/modules/pivotTable/getHeaderForDisplay.js +0 -9
- package/build/cjs/modules/pivotTable/isColorBright.js +0 -6
- package/build/cjs/modules/pivotTable/measureText.js +5 -21
- package/build/cjs/modules/pivotTable/parseValue.js +0 -4
- package/build/cjs/modules/pivotTable/useParentSize.js +0 -11
- package/build/cjs/modules/pivotTable/useScrollPosition.js +0 -7
- package/build/cjs/modules/pivotTable/useSortableColumns.js +0 -7
- package/build/cjs/modules/pivotTable/useTableClipping.js +0 -6
- package/build/cjs/modules/predefinedDimensions.js +2 -18
- package/build/cjs/modules/relativeItems/__tests__/index.spec.js +0 -2
- package/build/cjs/modules/relativeItems/index.js +0 -5
- package/build/cjs/modules/renderValue.js +0 -18
- package/build/cjs/modules/utils.js +0 -5
- package/build/cjs/modules/valueTypes.js +1 -3
- package/build/cjs/modules/visTypeToLayoutType.js +0 -5
- package/build/cjs/modules/visTypes.js +1 -27
- package/build/cjs/visualizations/config/adapters/dhis_dhis/index.js +2 -8
- package/build/cjs/visualizations/config/adapters/dhis_dhis/subtitle/__tests__/index.spec.js +0 -3
- package/build/cjs/visualizations/config/adapters/dhis_dhis/subtitle/__tests__/singleValue.spec.js +0 -2
- package/build/cjs/visualizations/config/adapters/dhis_dhis/subtitle/index.js +0 -11
- package/build/cjs/visualizations/config/adapters/dhis_dhis/subtitle/singleValue.js +0 -3
- package/build/cjs/visualizations/config/adapters/dhis_dhis/title/__tests__/index.spec.js +0 -3
- package/build/cjs/visualizations/config/adapters/dhis_dhis/title/__tests__/singleValue.spec.js +0 -2
- package/build/cjs/visualizations/config/adapters/dhis_dhis/title/index.js +0 -10
- package/build/cjs/visualizations/config/adapters/dhis_dhis/title/singleValue.js +0 -4
- package/build/cjs/visualizations/config/adapters/dhis_dhis/type.js +0 -3
- package/build/cjs/visualizations/config/adapters/dhis_dhis/value/index.js +3 -7
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/addTrendLines.js +30 -113
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/axis.js +6 -37
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/chart.js +0 -5
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/customAxes.js +8 -10
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/getAxisTitle.js +1 -8
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/getCategories.js +0 -3
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/getCumulativeData.js +6 -15
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/getFormatter.js +0 -3
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/getScatterData.js +0 -2
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/getSortedConfig.js +7 -19
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/getStackedData.js +0 -4
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/getSteps.js +0 -3
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/getTextAlignOption.js +0 -7
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/getTrimmedConfig.js +4 -31
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/getTwoCategorySplitSerieData.js +0 -2
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/index.js +21 -56
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/legend.js +1 -8
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/legendSet.js +5 -14
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/noData.js +0 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/pane/gauge.js +0 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/pane/index.js +0 -5
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/plotOptions.js +1 -15
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/series/gauge.js +0 -5
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/series/index.js +13 -48
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/series/pie.js +0 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/series/scatter.js +9 -11
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/subtitle/gauge.js +0 -3
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/subtitle/index.js +3 -18
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/title/index.js +1 -18
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/title/scatter.js +1 -5
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/title/yearOverYear.js +0 -6
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/type.js +0 -9
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/xAxis/index.js +1 -28
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/xAxis/radar.js +0 -11
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/xAxis/scatter.js +0 -12
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/xAxis/twoCategory.js +4 -11
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/xAxis/yearOnYear.js +0 -11
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/yAxis/gauge.js +3 -28
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/yAxis/index.js +8 -37
- package/build/cjs/visualizations/config/adapters/index.js +0 -4
- package/build/cjs/visualizations/config/generators/dhis/index.js +0 -8
- package/build/cjs/visualizations/config/generators/dhis/singleValue.js +41 -70
- package/build/cjs/visualizations/config/generators/highcharts/index.js +9 -24
- package/build/cjs/visualizations/config/generators/index.js +0 -4
- package/build/cjs/visualizations/config/index.js +9 -22
- package/build/cjs/visualizations/config/validators/dhis/index.js +0 -1
- package/build/cjs/visualizations/config/validators/index.js +0 -4
- package/build/cjs/visualizations/index.js +0 -10
- package/build/cjs/visualizations/store/adapters/dhis_dhis/index.js +3 -13
- package/build/cjs/visualizations/store/adapters/dhis_dhis/singleValue.js +0 -1
- package/build/cjs/visualizations/store/adapters/dhis_highcharts/gauge.js +0 -1
- package/build/cjs/visualizations/store/adapters/dhis_highcharts/index.js +8 -26
- package/build/cjs/visualizations/store/adapters/dhis_highcharts/pie.js +0 -2
- package/build/cjs/visualizations/store/adapters/dhis_highcharts/twoCategory.js +3 -6
- package/build/cjs/visualizations/store/adapters/dhis_highcharts/yearOnYear.js +3 -4
- package/build/cjs/visualizations/store/adapters/index.js +0 -4
- package/build/cjs/visualizations/store/index.js +2 -12
- package/build/cjs/visualizations/store/validators/dhis/index.js +6 -22
- package/build/cjs/visualizations/store/validators/index.js +0 -4
- package/build/cjs/visualizations/util/__tests__/getFilterText.spec.js +0 -2
- package/build/cjs/visualizations/util/axes.js +0 -2
- package/build/cjs/visualizations/util/axisId.js +1 -3
- package/build/cjs/visualizations/util/colors/colorSets.js +0 -4
- package/build/cjs/visualizations/util/colors/gradientColorGenerator.js +3 -10
- package/build/cjs/visualizations/util/colors/index.js +0 -3
- package/build/cjs/visualizations/util/getFilterText.js +4 -13
- package/build/es/__demo__/DimensionsPanel.stories.js +0 -2
- package/build/es/__demo__/FileMenu.stories.js +2 -1
- package/build/es/__demo__/Filter.stories.js +0 -5
- package/build/es/__demo__/OpenFileDialog.stories.js +1 -3
- package/build/es/__demo__/OrgUnitDimension.stories.js +1 -3
- package/build/es/__demo__/PivotTable.stories.js +100 -57
- package/build/es/__demo__/Toolbar.stories.js +0 -2
- package/build/es/__fixtures__/fixtures.js +0 -5
- package/build/es/api/__tests__/dimensions.spec.js +0 -2
- package/build/es/api/analytics/Analytics.js +2 -6
- package/build/es/api/analytics/AnalyticsAggregate.js +3 -7
- package/build/es/api/analytics/AnalyticsBase.js +8 -17
- package/build/es/api/analytics/AnalyticsEnrollments.js +1 -3
- package/build/es/api/analytics/AnalyticsEvents.js +4 -9
- package/build/es/api/analytics/AnalyticsRequest.js +16 -27
- package/build/es/api/analytics/AnalyticsRequestBase.js +8 -25
- package/build/es/api/analytics/AnalyticsRequestDimensionsMixin.js +4 -14
- package/build/es/api/analytics/AnalyticsRequestFiltersMixin.js +4 -14
- package/build/es/api/analytics/AnalyticsRequestPropertiesMixin.js +57 -138
- package/build/es/api/analytics/AnalyticsResponse.js +21 -41
- package/build/es/api/analytics/AnalyticsResponseHeader.js +0 -5
- package/build/es/api/analytics/__mocks__/DataEngine.js +0 -4
- package/build/es/api/analytics/__tests__/AnalyticsAggregate.spec.js +11 -1
- package/build/es/api/analytics/__tests__/AnalyticsRequest.spec.js +17 -15
- package/build/es/api/analytics/__tests__/AnalyticsRequestBase.spec.js +4 -6
- package/build/es/api/analytics/__tests__/AnalyticsResponse.spec.js +3 -1
- package/build/es/api/analytics/__tests__/AnalyticsResponseHeader.spec.js +2 -1
- package/build/es/api/analytics/utils.js +1 -1
- package/build/es/api/dimensions.js +43 -78
- package/build/es/api/index.js +1 -0
- package/build/es/api/organisationUnits.js +5 -4
- package/build/es/assets/AssignedCategoriesIcon.js +0 -2
- package/build/es/assets/DynamicDimensionIcon.js +0 -2
- package/build/es/assets/FormulaIcon.js +0 -2
- package/build/es/components/AboutAOUnit/AboutAOUnit.js +19 -31
- package/build/es/components/AboutAOUnit/styles/AboutAOUnit.style.js +1 -1
- package/build/es/components/CachedDataQueryProvider.js +0 -7
- package/build/es/components/DataDimension/Calculation/CalculationModal.js +26 -54
- package/build/es/components/DataDimension/Calculation/DataElementOption.js +6 -10
- package/build/es/components/DataDimension/Calculation/DataElementSelector.js +16 -35
- package/build/es/components/DataDimension/Calculation/DndContext.js +6 -28
- package/build/es/components/DataDimension/Calculation/DraggingItem.js +3 -5
- package/build/es/components/DataDimension/Calculation/DropZone.js +1 -5
- package/build/es/components/DataDimension/Calculation/FormulaField.js +5 -8
- package/build/es/components/DataDimension/Calculation/FormulaItem.js +13 -26
- package/build/es/components/DataDimension/Calculation/MathOperatorSelector.js +4 -6
- package/build/es/components/DataDimension/Calculation/Operator.js +5 -9
- package/build/es/components/DataDimension/Calculation/styles/CalculationModal.style.js +1 -1
- package/build/es/components/DataDimension/Calculation/styles/DataElementOption.style.js +1 -1
- package/build/es/components/DataDimension/Calculation/styles/DataElementSelector.style.js +1 -1
- package/build/es/components/DataDimension/Calculation/styles/DraggingItem.style.js +1 -1
- package/build/es/components/DataDimension/Calculation/styles/DropZone.style.js +1 -1
- package/build/es/components/DataDimension/Calculation/styles/FormulaField.style.js +1 -1
- package/build/es/components/DataDimension/Calculation/styles/FormulaItem.style.js +1 -1
- package/build/es/components/DataDimension/Calculation/styles/MathOperatorSelector.style.js +1 -1
- package/build/es/components/DataDimension/Calculation/styles/Operator.style.js +1 -1
- package/build/es/components/DataDimension/DataDimension.js +1 -5
- package/build/es/components/DataDimension/DataTypeSelector.js +3 -6
- package/build/es/components/DataDimension/DetailSelector.js +2 -4
- package/build/es/components/DataDimension/GroupSelector.js +7 -12
- package/build/es/components/DataDimension/ItemSelector.js +45 -74
- package/build/es/components/DataDimension/MetricSelector.js +3 -3
- package/build/es/components/DataDimension/styles/DataTypeSelector.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 +18 -24
- package/build/es/components/DimensionsPanel/DimensionsPanel.js +5 -10
- package/build/es/components/DimensionsPanel/List/DimensionItem.js +11 -21
- package/build/es/components/DimensionsPanel/List/DimensionList.js +11 -21
- package/build/es/components/DimensionsPanel/List/OptionsButton.js +0 -2
- package/build/es/components/DimensionsPanel/List/RecommendedIcon.js +0 -2
- package/build/es/components/DimensionsPanel/List/__tests__/DimensionItem.spec.js +0 -3
- package/build/es/components/DimensionsPanel/List/styles/DimensionList.style.js +2 -2
- package/build/es/components/DimensionsPanel/__tests__/DimensionsPanel.spec.js +0 -3
- package/build/es/components/DimensionsPanel/styles/DimensionsPanel.style.js +1 -1
- package/build/es/components/DynamicDimension/DynamicDimension.js +4 -10
- package/build/es/components/DynamicDimension/ItemSelector.js +15 -29
- package/build/es/components/DynamicDimension/styles/DynamicDimension.style.js +1 -1
- package/build/es/components/FileMenu/DeleteDialog.js +0 -2
- package/build/es/components/FileMenu/FileMenu.js +0 -12
- package/build/es/components/FileMenu/FileMenu.styles.js +2 -2
- package/build/es/components/FileMenu/GetLinkDialog.js +5 -4
- package/build/es/components/FileMenu/GetLinkDialog.styles.js +1 -1
- package/build/es/components/FileMenu/RenameDialog.js +1 -5
- package/build/es/components/FileMenu/SaveAsDialog.js +3 -3
- package/build/es/components/FileMenu/__tests__/DeleteDialog.spec.js +1 -4
- package/build/es/components/FileMenu/__tests__/FileMenu.spec.js +28 -20
- package/build/es/components/FileMenu/__tests__/GetLinkDialog.spec.js +0 -3
- package/build/es/components/FileMenu/__tests__/RenameDialog.spec.js +1 -4
- package/build/es/components/FileMenu/__tests__/SaveAsDialog.spec.js +1 -4
- package/build/es/components/FileMenu/utils.js +4 -10
- package/build/es/components/Filter/Filter.js +1 -3
- package/build/es/components/Filter/__tests__/Filter.spec.js +0 -3
- package/build/es/components/Filter/styles/Filter.style.js +1 -1
- package/build/es/components/Interpretations/InterpretationModal/Comment.js +0 -2
- package/build/es/components/Interpretations/InterpretationModal/CommentAddForm.js +1 -1
- package/build/es/components/Interpretations/InterpretationModal/CommentDeleteButton.js +1 -3
- package/build/es/components/Interpretations/InterpretationModal/CommentUpdateForm.js +2 -2
- package/build/es/components/Interpretations/InterpretationModal/InterpretationModal.js +2 -13
- package/build/es/components/Interpretations/InterpretationModal/InterpretationThread.js +0 -3
- package/build/es/components/Interpretations/InterpretationModal/useModalContentWidth.js +0 -3
- package/build/es/components/Interpretations/InterpretationsUnit/InterpretationForm.js +2 -2
- package/build/es/components/Interpretations/InterpretationsUnit/InterpretationList.js +1 -8
- package/build/es/components/Interpretations/InterpretationsUnit/InterpretationsUnit.js +2 -2
- package/build/es/components/Interpretations/common/Interpretation/InterpretationDeleteButton.js +0 -2
- package/build/es/components/Interpretations/common/Interpretation/InterpretationSharingLink.js +1 -3
- package/build/es/components/Interpretations/common/Interpretation/InterpretationUpdateForm.js +1 -1
- package/build/es/components/Interpretations/common/Interpretation/useLike.js +1 -5
- package/build/es/components/Interpretations/common/Message/Message.js +1 -3
- package/build/es/components/Interpretations/common/Message/MessageButtonStrip.js +1 -3
- package/build/es/components/Interpretations/common/Message/MessageEditorContainer.js +1 -3
- package/build/es/components/Interpretations/common/Message/MessageIconButton.js +6 -8
- package/build/es/components/Interpretations/common/Message/MessageInput.js +2 -4
- package/build/es/components/Interpretations/common/Message/MessageStatsBar.js +1 -3
- package/build/es/components/Interpretations/common/RichTextEditor/RichTextEditor.js +15 -23
- package/build/es/components/Interpretations/common/RichTextEditor/markdownHandler.js +4 -19
- package/build/es/components/Interpretations/common/RichTextEditor/styles/RichTextEditor.style.js +3 -3
- package/build/es/components/Interpretations/common/UserMention/UserList.js +1 -2
- package/build/es/components/Interpretations/common/UserMention/UserMentionWrapper.js +18 -33
- package/build/es/components/Interpretations/common/UserMention/styles/UserMentionWrapper.style.js +1 -2
- package/build/es/components/Interpretations/common/UserMention/useUserSearchResults.js +1 -2
- package/build/es/components/LegendKey/LegendKey.js +9 -11
- package/build/es/components/LegendKey/styles/LegendKey.style.js +1 -1
- package/build/es/components/OfflineTooltip.js +1 -3
- package/build/es/components/OpenFileDialog/CreatedByFilter.js +3 -1
- package/build/es/components/OpenFileDialog/CustomSelectOption.js +2 -4
- package/build/es/components/OpenFileDialog/OpenFileDialog.js +29 -45
- 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/VisualizationOptions.js +0 -8
- package/build/es/components/Options/styles/VisualizationOptions.style.js +11 -12
- package/build/es/components/OrgUnitDimension/OrgUnitDimension.js +12 -31
- package/build/es/components/OrgUnitDimension/styles/OrgUnitDimension.style.js +1 -1
- package/build/es/components/PeriodDimension/FixedPeriodFilter.js +5 -7
- package/build/es/components/PeriodDimension/FixedPeriodSelect.js +5 -17
- package/build/es/components/PeriodDimension/PeriodDimension.js +0 -4
- package/build/es/components/PeriodDimension/PeriodTransfer.js +12 -25
- package/build/es/components/PeriodDimension/RelativePeriodFilter.js +2 -4
- package/build/es/components/PeriodDimension/__tests__/FixedPeriodSingleSelect.spec.js +0 -3
- package/build/es/components/PeriodDimension/__tests__/PeriodDimension.spec.js +0 -3
- package/build/es/components/PeriodDimension/__tests__/PeriodSelector.spec.js +0 -3
- package/build/es/components/PeriodDimension/__tests__/fixedPeriods.spec.js +2 -1
- 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 +2 -23
- package/build/es/components/PeriodDimension/utils/relativePeriods.js +0 -11
- package/build/es/components/PivotTable/PivotTable.js +0 -2
- package/build/es/components/PivotTable/PivotTableCell.js +4 -6
- package/build/es/components/PivotTable/PivotTableColumnHeaderCell.js +4 -7
- package/build/es/components/PivotTable/PivotTableContainer.js +2 -2
- package/build/es/components/PivotTable/PivotTableDimensionLabelCell.js +4 -9
- package/build/es/components/PivotTable/PivotTableEmptyCell.js +3 -4
- package/build/es/components/PivotTable/PivotTableRowHeaderCell.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/PivotTableTitleRows.js +0 -1
- package/build/es/components/PivotTable/PivotTableValueCell.js +4 -6
- package/build/es/components/PivotTable/styles/PivotTable.style.js +3 -3
- package/build/es/components/Toolbar/HoverMenuBar/HoverMenuBar.js +0 -7
- package/build/es/components/Toolbar/HoverMenuBar/HoverMenuDropdown.js +1 -1
- package/build/es/components/Toolbar/HoverMenuBar/HoverMenuList.js +1 -7
- package/build/es/components/Toolbar/HoverMenuBar/HoverMenuListItem.js +4 -9
- package/build/es/components/Toolbar/HoverMenuBar/HoverMenuListItem.styles.js +1 -1
- package/build/es/components/Toolbar/HoverMenuBar/__tests__/HoverMenuBar.spec.js +0 -2
- package/build/es/components/Toolbar/HoverMenuBar/__tests__/HoverMenuDropdown.spec.js +1 -0
- package/build/es/components/Toolbar/HoverMenuBar/__tests__/HoverMenuList.spec.js +2 -2
- package/build/es/components/Toolbar/HoverMenuBar/__tests__/HoverMenuListItem.spec.js +1 -0
- package/build/es/components/Toolbar/InterpretationsAndDetailsToggler.js +1 -1
- package/build/es/components/Toolbar/MenuButton.styles.js +1 -1
- package/build/es/components/Toolbar/Toolbar.js +1 -1
- package/build/es/components/Toolbar/ToolbarSidebar.js +1 -1
- package/build/es/components/Toolbar/UpdateButton.js +2 -2
- package/build/es/components/Toolbar/__tests__/InterpretationsAndDetailsToggler.spec.js +0 -1
- package/build/es/components/Toolbar/__tests__/UpdateButton.spec.js +0 -1
- package/build/es/components/TransferOption.js +7 -11
- package/build/es/components/TranslationDialog/TranslationModal/LocalesSelect.js +2 -3
- package/build/es/components/TranslationDialog/TranslationModal/TranslationForm.js +3 -15
- package/build/es/components/TranslationDialog/TranslationModal/TranslationModalActions.js +0 -2
- package/build/es/components/TranslationDialog/TranslationModal/useTranslationsResults.js +1 -1
- package/build/es/components/VisTypeIcon.js +0 -17
- 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 +53 -19
- package/build/es/locales/es/translations.json +7 -7
- package/build/es/locales/km/translations.json +4 -3
- package/build/es/modules/__tests__/expressions.spec.js +4 -3
- package/build/es/modules/__tests__/getColorByValueFromLegendSet.spec.js +1 -1
- package/build/es/modules/__tests__/renderValue.spec.js +19 -10
- package/build/es/modules/axis.js +1 -8
- package/build/es/modules/dataTypes.js +0 -3
- package/build/es/modules/dimensionListItem.js +0 -12
- package/build/es/modules/expressions.js +2 -6
- package/build/es/modules/fontStyle.js +16 -16
- package/build/es/modules/getAdaptedUiLayoutByType.js +7 -22
- package/build/es/modules/getOuLevelAndGroupText.js +0 -10
- package/build/es/modules/hash.js +0 -3
- package/build/es/modules/layout/__tests__/layoutHasDataDimension.spec.js +2 -1
- package/build/es/modules/layout/__tests__/layoutHasDimension.spec.js +2 -1
- package/build/es/modules/layout/__tests__/layoutHasDynamicDimension.spec.js +2 -1
- package/build/es/modules/layout/__tests__/layoutHasPeriodDimension.spec.js +2 -1
- package/build/es/modules/layout/axis.js +6 -2
- package/build/es/modules/layout/dimension.js +6 -2
- package/build/es/modules/layout/dimensionGetId.js +1 -2
- package/build/es/modules/layout/dimensionIsValid.js +0 -5
- package/build/es/modules/layout/item.js +6 -2
- package/build/es/modules/layout/itemIsValid.js +0 -1
- package/build/es/modules/layout/layoutGetAxisIdDimensionIdsObject.js +0 -1
- package/build/es/modules/layout/layoutReplaceDimension.js +0 -3
- package/build/es/modules/layout/testResources.js +12 -4
- package/build/es/modules/layoutUiRules/__tests__/rules.spec.js +8 -12
- package/build/es/modules/layoutUiRules/rules.js +11 -11
- package/build/es/modules/layoutUiRules/rulesHelper.js +3 -1
- package/build/es/modules/layoutUiRules/rulesUtils.js +6 -4
- package/build/es/modules/legends.js +0 -2
- package/build/es/modules/ouIdHelper/index.js +2 -8
- package/build/es/modules/ouLevelUtils/index.js +0 -7
- package/build/es/modules/outliers/index.js +6 -17
- package/build/es/modules/outliers/iqr.js +0 -9
- package/build/es/modules/outliers/modZScore.js +13 -9
- package/build/es/modules/outliers/normalization.js +3 -5
- package/build/es/modules/outliers/xyStats.js +0 -2
- package/build/es/modules/outliers/zScore.js +0 -2
- package/build/es/modules/pivotTable/AdaptiveClippingController.js +4 -29
- package/build/es/modules/pivotTable/PivotTableEngine.js +20 -179
- package/build/es/modules/pivotTable/applyLegendSet.js +0 -19
- package/build/es/modules/pivotTable/clipAxis.js +3 -2
- package/build/es/modules/pivotTable/clipPartitionedAxis.js +0 -6
- package/build/es/modules/pivotTable/getHeaderForDisplay.js +0 -7
- package/build/es/modules/pivotTable/isColorBright.js +0 -4
- package/build/es/modules/pivotTable/measureText.js +5 -18
- package/build/es/modules/pivotTable/parseValue.js +0 -2
- package/build/es/modules/pivotTable/useParentSize.js +0 -5
- package/build/es/modules/pivotTable/useScrollPosition.js +0 -2
- package/build/es/modules/pivotTable/useSortableColumns.js +0 -3
- package/build/es/modules/predefinedDimensions.js +2 -1
- package/build/es/modules/renderValue.js +0 -15
- package/build/es/modules/valueTypes.js +1 -0
- package/build/es/modules/visTypes.js +1 -3
- package/build/es/visualizations/config/adapters/dhis_dhis/index.js +2 -2
- package/build/es/visualizations/config/adapters/dhis_dhis/subtitle/index.js +0 -7
- package/build/es/visualizations/config/adapters/dhis_dhis/title/index.js +0 -6
- package/build/es/visualizations/config/adapters/dhis_dhis/title/singleValue.js +0 -1
- package/build/es/visualizations/config/adapters/dhis_dhis/type.js +0 -1
- package/build/es/visualizations/config/adapters/dhis_dhis/value/index.js +3 -3
- package/build/es/visualizations/config/adapters/dhis_highcharts/addTrendLines.js +30 -101
- package/build/es/visualizations/config/adapters/dhis_highcharts/axis.js +6 -19
- package/build/es/visualizations/config/adapters/dhis_highcharts/chart.js +0 -2
- package/build/es/visualizations/config/adapters/dhis_highcharts/customAxes.js +8 -7
- package/build/es/visualizations/config/adapters/dhis_highcharts/getAxisTitle.js +1 -3
- package/build/es/visualizations/config/adapters/dhis_highcharts/getCumulativeData.js +6 -11
- package/build/es/visualizations/config/adapters/dhis_highcharts/getScatterData.js +0 -1
- package/build/es/visualizations/config/adapters/dhis_highcharts/getSortedConfig.js +7 -12
- package/build/es/visualizations/config/adapters/dhis_highcharts/getStackedData.js +0 -2
- package/build/es/visualizations/config/adapters/dhis_highcharts/getTextAlignOption.js +0 -4
- package/build/es/visualizations/config/adapters/dhis_highcharts/getTrimmedConfig.js +4 -26
- package/build/es/visualizations/config/adapters/dhis_highcharts/getTwoCategorySplitSerieData.js +0 -1
- package/build/es/visualizations/config/adapters/dhis_highcharts/index.js +21 -32
- package/build/es/visualizations/config/adapters/dhis_highcharts/legend.js +1 -4
- package/build/es/visualizations/config/adapters/dhis_highcharts/legendSet.js +5 -6
- package/build/es/visualizations/config/adapters/dhis_highcharts/pane/index.js +0 -1
- package/build/es/visualizations/config/adapters/dhis_highcharts/plotOptions.js +1 -9
- package/build/es/visualizations/config/adapters/dhis_highcharts/series/gauge.js +0 -1
- package/build/es/visualizations/config/adapters/dhis_highcharts/series/index.js +13 -32
- package/build/es/visualizations/config/adapters/dhis_highcharts/series/scatter.js +9 -6
- package/build/es/visualizations/config/adapters/dhis_highcharts/subtitle/gauge.js +2 -1
- package/build/es/visualizations/config/adapters/dhis_highcharts/subtitle/index.js +3 -10
- package/build/es/visualizations/config/adapters/dhis_highcharts/title/index.js +1 -9
- package/build/es/visualizations/config/adapters/dhis_highcharts/title/scatter.js +1 -2
- package/build/es/visualizations/config/adapters/dhis_highcharts/title/yearOverYear.js +0 -3
- package/build/es/visualizations/config/adapters/dhis_highcharts/type.js +0 -7
- package/build/es/visualizations/config/adapters/dhis_highcharts/xAxis/index.js +1 -11
- package/build/es/visualizations/config/adapters/dhis_highcharts/xAxis/radar.js +0 -3
- package/build/es/visualizations/config/adapters/dhis_highcharts/xAxis/scatter.js +0 -1
- package/build/es/visualizations/config/adapters/dhis_highcharts/xAxis/twoCategory.js +4 -3
- package/build/es/visualizations/config/adapters/dhis_highcharts/xAxis/yearOnYear.js +0 -4
- package/build/es/visualizations/config/adapters/dhis_highcharts/yAxis/gauge.js +3 -14
- package/build/es/visualizations/config/adapters/dhis_highcharts/yAxis/index.js +8 -23
- package/build/es/visualizations/config/generators/dhis/index.js +0 -4
- package/build/es/visualizations/config/generators/dhis/singleValue.js +42 -67
- package/build/es/visualizations/config/generators/highcharts/index.js +11 -15
- package/build/es/visualizations/config/index.js +9 -15
- package/build/es/visualizations/config/validators/index.js +0 -2
- package/build/es/visualizations/index.js +0 -6
- package/build/es/visualizations/store/adapters/dhis_dhis/index.js +3 -9
- package/build/es/visualizations/store/adapters/dhis_highcharts/index.js +8 -17
- package/build/es/visualizations/store/adapters/dhis_highcharts/pie.js +0 -1
- package/build/es/visualizations/store/adapters/dhis_highcharts/twoCategory.js +5 -4
- package/build/es/visualizations/store/adapters/dhis_highcharts/yearOnYear.js +3 -3
- package/build/es/visualizations/store/index.js +2 -8
- package/build/es/visualizations/store/validators/dhis/index.js +6 -17
- package/build/es/visualizations/store/validators/index.js +0 -2
- package/build/es/visualizations/util/axisId.js +1 -1
- package/build/es/visualizations/util/colors/gradientColorGenerator.js +3 -8
- package/build/es/visualizations/util/getFilterText.js +4 -7
- package/package.json +6 -7
|
@@ -4,7 +4,8 @@ import { VALUE_TYPE_NUMBER, VALUE_TYPE_INTEGER, VALUE_TYPE_INTEGER_POSITIVE, VAL
|
|
|
4
4
|
const DGS_COMMA = 'COMMA';
|
|
5
5
|
const DGS_SPACE = 'SPACE';
|
|
6
6
|
const DGS_NONE = 'NONE';
|
|
7
|
-
const tests = [
|
|
7
|
+
const tests = [
|
|
8
|
+
// Numbers
|
|
8
9
|
{
|
|
9
10
|
value: 1000.5,
|
|
10
11
|
expected: '1 000.5',
|
|
@@ -66,7 +67,8 @@ const tests = [// Numbers
|
|
|
66
67
|
valueType: VALUE_TYPE_NUMBER,
|
|
67
68
|
round: false,
|
|
68
69
|
dgs: DGS_SPACE
|
|
69
|
-
},
|
|
70
|
+
},
|
|
71
|
+
// Numbers showing as column/row percentage
|
|
70
72
|
{
|
|
71
73
|
value: 0.234,
|
|
72
74
|
expected: '23.4%',
|
|
@@ -137,7 +139,8 @@ const tests = [// Numbers
|
|
|
137
139
|
numberType: NUMBER_TYPE_COLUMN_PERCENTAGE,
|
|
138
140
|
round: true,
|
|
139
141
|
dgs: DGS_COMMA
|
|
140
|
-
},
|
|
142
|
+
},
|
|
143
|
+
// Integers
|
|
141
144
|
{
|
|
142
145
|
value: 99777888,
|
|
143
146
|
expected: '99 777 888',
|
|
@@ -206,7 +209,8 @@ const tests = [// Numbers
|
|
|
206
209
|
numberType: NUMBER_TYPE_COLUMN_PERCENTAGE,
|
|
207
210
|
round: true,
|
|
208
211
|
dgs: DGS_NONE
|
|
209
|
-
},
|
|
212
|
+
},
|
|
213
|
+
// Phone number
|
|
210
214
|
{
|
|
211
215
|
value: '99777888',
|
|
212
216
|
expected: '99777888',
|
|
@@ -231,7 +235,8 @@ const tests = [// Numbers
|
|
|
231
235
|
valueType: VALUE_TYPE_PHONE_NUMBER,
|
|
232
236
|
round: false,
|
|
233
237
|
dgs: DGS_COMMA
|
|
234
|
-
},
|
|
238
|
+
},
|
|
239
|
+
// Date
|
|
235
240
|
{
|
|
236
241
|
value: '05/04/2022',
|
|
237
242
|
expected: '05/04/2022',
|
|
@@ -250,7 +255,8 @@ const tests = [// Numbers
|
|
|
250
255
|
valueType: VALUE_TYPE_DATETIME,
|
|
251
256
|
round: true,
|
|
252
257
|
dgs: DGS_NONE
|
|
253
|
-
},
|
|
258
|
+
},
|
|
259
|
+
// Percentage
|
|
254
260
|
{
|
|
255
261
|
value: 5,
|
|
256
262
|
expected: '5',
|
|
@@ -270,7 +276,8 @@ const tests = [// Numbers
|
|
|
270
276
|
numberType: NUMBER_TYPE_COLUMN_PERCENTAGE,
|
|
271
277
|
round: true,
|
|
272
278
|
dgs: DGS_SPACE
|
|
273
|
-
},
|
|
279
|
+
},
|
|
280
|
+
// Unit interval
|
|
274
281
|
{
|
|
275
282
|
value: 4,
|
|
276
283
|
expected: '4',
|
|
@@ -290,7 +297,8 @@ const tests = [// Numbers
|
|
|
290
297
|
numberType: NUMBER_TYPE_COLUMN_PERCENTAGE,
|
|
291
298
|
round: true,
|
|
292
299
|
dgs: DGS_COMMA
|
|
293
|
-
},
|
|
300
|
+
},
|
|
301
|
+
// Texts
|
|
294
302
|
{
|
|
295
303
|
value: 'This string has multiple whitespace characters',
|
|
296
304
|
expected: 'This string has multiple whitespace characters',
|
|
@@ -303,7 +311,8 @@ const tests = [// Numbers
|
|
|
303
311
|
value: 'Characters \nmorecharacters here',
|
|
304
312
|
expected: 'Characters \nmorecharacters here',
|
|
305
313
|
valueType: VALUE_TYPE_TEXT
|
|
306
|
-
},
|
|
314
|
+
},
|
|
315
|
+
// Undefined values
|
|
307
316
|
{
|
|
308
317
|
value: undefined,
|
|
309
318
|
expected: 'undefined',
|
|
@@ -315,7 +324,7 @@ const tests = [// Numbers
|
|
|
315
324
|
}];
|
|
316
325
|
describe('renderValue', () => {
|
|
317
326
|
tests.forEach(t => {
|
|
318
|
-
const testname =
|
|
327
|
+
const testname = `valueType: ${t.valueType}, value: ${t.value}, dgs: ${t.dgs}, round: ${t.round}, isPercent: ${[NUMBER_TYPE_ROW_PERCENTAGE, NUMBER_TYPE_COLUMN_PERCENTAGE].includes(t.numberType)}`;
|
|
319
328
|
it(testname, () => {
|
|
320
329
|
const actual = renderValue(t.value, t.valueType, {
|
|
321
330
|
skipRounding: !t.round,
|
package/build/es/modules/axis.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import i18n from '../locales/index.js';
|
|
2
2
|
import { AXIS_ID_COLUMNS, AXIS_ID_ROWS, AXIS_ID_FILTERS } from './layout/axis.js';
|
|
3
3
|
import { LAYOUT_TYPE_DEFAULT, LAYOUT_TYPE_PIE, LAYOUT_TYPE_YEAR_OVER_YEAR, LAYOUT_TYPE_PIVOT_TABLE, LAYOUT_TYPE_SCATTER, LAYOUT_TYPE_LINE_LIST } from './layoutTypes.js';
|
|
4
|
-
|
|
5
4
|
const getAxisNamesByLayoutType = layoutType => {
|
|
6
5
|
switch (layoutType) {
|
|
7
6
|
case LAYOUT_TYPE_DEFAULT:
|
|
@@ -13,20 +12,17 @@ const getAxisNamesByLayoutType = layoutType => {
|
|
|
13
12
|
[AXIS_ID_ROWS]: i18n.t('Category'),
|
|
14
13
|
[AXIS_ID_FILTERS]: i18n.t('Filter')
|
|
15
14
|
};
|
|
16
|
-
|
|
17
15
|
case LAYOUT_TYPE_PIVOT_TABLE:
|
|
18
16
|
return {
|
|
19
17
|
[AXIS_ID_COLUMNS]: i18n.t('Columns'),
|
|
20
18
|
[AXIS_ID_ROWS]: i18n.t('Rows'),
|
|
21
19
|
[AXIS_ID_FILTERS]: i18n.t('Filter')
|
|
22
20
|
};
|
|
23
|
-
|
|
24
21
|
case LAYOUT_TYPE_LINE_LIST:
|
|
25
22
|
return {
|
|
26
23
|
[AXIS_ID_COLUMNS]: i18n.t('Columns'),
|
|
27
24
|
[AXIS_ID_FILTERS]: i18n.t('Filter')
|
|
28
25
|
};
|
|
29
|
-
|
|
30
26
|
case LAYOUT_TYPE_SCATTER:
|
|
31
27
|
return {
|
|
32
28
|
[AXIS_ID_ROWS]: i18n.t('Points'),
|
|
@@ -34,14 +30,11 @@ const getAxisNamesByLayoutType = layoutType => {
|
|
|
34
30
|
};
|
|
35
31
|
}
|
|
36
32
|
};
|
|
37
|
-
|
|
38
33
|
export const getAxisNameByLayoutType = (axisId, layoutType) => {
|
|
39
34
|
const name = getAxisNamesByLayoutType(layoutType)[axisId];
|
|
40
|
-
|
|
41
35
|
if (!name) {
|
|
42
|
-
throw new Error(
|
|
36
|
+
throw new Error(`${axisId} is not a valid axis id`);
|
|
43
37
|
}
|
|
44
|
-
|
|
45
38
|
return name;
|
|
46
39
|
};
|
|
47
40
|
export const getAxisName = axisId => getAxisNameByLayoutType(axisId, LAYOUT_TYPE_DEFAULT);
|
|
@@ -20,11 +20,8 @@ export const TOTALS = 'totals';
|
|
|
20
20
|
export const DETAIL = 'detail';
|
|
21
21
|
export const SUB_GROUP_DETAIL = 'DETAIL';
|
|
22
22
|
export const SUB_GROUP_METRIC = 'METRIC';
|
|
23
|
-
|
|
24
23
|
const getProgramText = () => i18n.t('Program');
|
|
25
|
-
|
|
26
24
|
const getSelectProgramText = () => i18n.t('Select a program');
|
|
27
|
-
|
|
28
25
|
export const dataTypeMap = {
|
|
29
26
|
[DIMENSION_TYPE_INDICATOR]: {
|
|
30
27
|
id: DIMENSION_TYPE_INDICATOR,
|
|
@@ -7,27 +7,21 @@ import { REPORTING_RATE } from './dataSets.js';
|
|
|
7
7
|
import { DIMENSION_TYPE_DATA_ELEMENT, DIMENSION_TYPE_DATA_ELEMENT_OPERAND, DIMENSION_TYPE_DATA_SET, DIMENSION_TYPE_EVENT_DATA_ITEM, DIMENSION_TYPE_EXPRESSION_DIMENSION_ITEM, DIMENSION_TYPE_PROGRAM_ATTRIBUTE, DIMENSION_TYPE_PROGRAM_DATA_ELEMENT, dataTypeMap as dataTypes, DIMENSION_TYPE_INDICATOR, DIMENSION_TYPE_PROGRAM_INDICATOR } from './dataTypes.js';
|
|
8
8
|
export const getTooltipText = _ref => {
|
|
9
9
|
var _dataTypes$type;
|
|
10
|
-
|
|
11
10
|
let {
|
|
12
11
|
type,
|
|
13
12
|
expression
|
|
14
13
|
} = _ref;
|
|
15
|
-
|
|
16
14
|
if (type === DIMENSION_TYPE_EXPRESSION_DIMENSION_ITEM && expression) {
|
|
17
15
|
return dataTypes[DIMENSION_TYPE_EXPRESSION_DIMENSION_ITEM].getItemName();
|
|
18
16
|
}
|
|
19
|
-
|
|
20
17
|
switch (type) {
|
|
21
18
|
case DIMENSION_TYPE_DATA_ELEMENT_OPERAND:
|
|
22
19
|
return dataTypes[DIMENSION_TYPE_DATA_ELEMENT].getItemName();
|
|
23
|
-
|
|
24
20
|
case REPORTING_RATE:
|
|
25
21
|
return dataTypes[DIMENSION_TYPE_DATA_SET].getItemName();
|
|
26
|
-
|
|
27
22
|
case DIMENSION_TYPE_PROGRAM_DATA_ELEMENT:
|
|
28
23
|
case DIMENSION_TYPE_PROGRAM_ATTRIBUTE:
|
|
29
24
|
return dataTypes[DIMENSION_TYPE_EVENT_DATA_ITEM].getItemName();
|
|
30
|
-
|
|
31
25
|
default:
|
|
32
26
|
return (_dataTypes$type = dataTypes[type]) === null || _dataTypes$type === void 0 ? void 0 : _dataTypes$type.getItemName();
|
|
33
27
|
}
|
|
@@ -36,25 +30,19 @@ export const getIcon = type => {
|
|
|
36
30
|
switch (type) {
|
|
37
31
|
case DIMENSION_TYPE_INDICATOR:
|
|
38
32
|
return /*#__PURE__*/React.createElement(IconDimensionIndicator16, null);
|
|
39
|
-
|
|
40
33
|
case DIMENSION_TYPE_DATA_ELEMENT_OPERAND:
|
|
41
34
|
case DIMENSION_TYPE_DATA_ELEMENT:
|
|
42
35
|
return DataElementIcon;
|
|
43
|
-
|
|
44
36
|
case REPORTING_RATE:
|
|
45
37
|
return /*#__PURE__*/React.createElement(IconDimensionDataSet16, null);
|
|
46
|
-
|
|
47
38
|
case DIMENSION_TYPE_EVENT_DATA_ITEM:
|
|
48
39
|
case DIMENSION_TYPE_PROGRAM_DATA_ELEMENT:
|
|
49
40
|
case DIMENSION_TYPE_PROGRAM_ATTRIBUTE:
|
|
50
41
|
return /*#__PURE__*/React.createElement(IconDimensionEventDataItem16, null);
|
|
51
|
-
|
|
52
42
|
case DIMENSION_TYPE_PROGRAM_INDICATOR:
|
|
53
43
|
return /*#__PURE__*/React.createElement(IconDimensionProgramIndicator16, null);
|
|
54
|
-
|
|
55
44
|
case DIMENSION_TYPE_EXPRESSION_DIMENSION_ITEM:
|
|
56
45
|
return CalculationIcon;
|
|
57
|
-
|
|
58
46
|
default:
|
|
59
47
|
return GenericIcon;
|
|
60
48
|
}
|
|
@@ -43,7 +43,6 @@ export const parseExpressionToArray = function () {
|
|
|
43
43
|
return parseExpression(expression).map(value => {
|
|
44
44
|
if (value.startsWith('#{') && value.endsWith('}')) {
|
|
45
45
|
var _metadata$find;
|
|
46
|
-
|
|
47
46
|
const id = value.slice(2, -1);
|
|
48
47
|
const label = ((_metadata$find = metadata.find(item => item.id === id)) === null || _metadata$find === void 0 ? void 0 : _metadata$find.name) || id;
|
|
49
48
|
return {
|
|
@@ -52,7 +51,6 @@ export const parseExpressionToArray = function () {
|
|
|
52
51
|
type: EXPRESSION_TYPE_DATA
|
|
53
52
|
};
|
|
54
53
|
}
|
|
55
|
-
|
|
56
54
|
if (isNaN(value)) {
|
|
57
55
|
return {
|
|
58
56
|
value,
|
|
@@ -60,7 +58,6 @@ export const parseExpressionToArray = function () {
|
|
|
60
58
|
type: EXPRESSION_TYPE_OPERATOR
|
|
61
59
|
};
|
|
62
60
|
}
|
|
63
|
-
|
|
64
61
|
return {
|
|
65
62
|
value,
|
|
66
63
|
label: value,
|
|
@@ -76,13 +73,13 @@ export const validateExpression = expression => {
|
|
|
76
73
|
let result;
|
|
77
74
|
const leftParenthesisCount = expression.split('(').length - 1;
|
|
78
75
|
const rightParenthesisCount = expression.split(')').length - 1;
|
|
79
|
-
|
|
80
76
|
if (!expression) {
|
|
81
77
|
// empty formula
|
|
82
78
|
result = {
|
|
83
79
|
status: INVALID_EXPRESSION,
|
|
84
80
|
message: i18n.t('Formula is empty. Add items to the formula from the lists on the left.')
|
|
85
|
-
};
|
|
81
|
+
};
|
|
82
|
+
// TODO: reimplement this but allow negative values, e.g. 10 / -5
|
|
86
83
|
// } else if (/[-+/*]{2,}/.test(expression)) {
|
|
87
84
|
// // two math operators next to each other
|
|
88
85
|
// result = {
|
|
@@ -120,7 +117,6 @@ export const validateExpression = expression => {
|
|
|
120
117
|
message: i18n.t('Missing left parenthesis (')
|
|
121
118
|
};
|
|
122
119
|
}
|
|
123
|
-
|
|
124
120
|
return result;
|
|
125
121
|
};
|
|
126
122
|
export const getItemIdsFromExpression = function () {
|
|
@@ -1,27 +1,29 @@
|
|
|
1
1
|
/*eslint no-unused-vars: ["error", { "ignoreRestSiblings": true }]*/
|
|
2
2
|
import { colors } from '@dhis2/ui';
|
|
3
|
-
import i18n from '../locales/index.js';
|
|
3
|
+
import i18n from '../locales/index.js';
|
|
4
4
|
|
|
5
|
+
// Font styles
|
|
5
6
|
export const FONT_STYLE_VISUALIZATION_TITLE = 'visualizationTitle';
|
|
6
7
|
export const FONT_STYLE_VISUALIZATION_SUBTITLE = 'visualizationSubtitle';
|
|
7
8
|
export const FONT_STYLE_HORIZONTAL_AXIS_TITLE = 'horizontalAxisTitle';
|
|
8
9
|
export const FONT_STYLE_VERTICAL_AXIS_TITLE = 'verticalAxisTitle';
|
|
9
10
|
export const FONT_STYLE_LEGEND = 'legend';
|
|
10
11
|
export const FONT_STYLE_AXIS_LABELS = 'axisLabel';
|
|
11
|
-
export const FONT_STYLE_REGRESSION_LINE_LABEL = 'regressionLineLabel';
|
|
12
|
-
|
|
12
|
+
export const FONT_STYLE_REGRESSION_LINE_LABEL = 'regressionLineLabel';
|
|
13
|
+
// Options
|
|
13
14
|
export const FONT_STYLE_OPTION_FONT = 'font';
|
|
14
15
|
export const FONT_STYLE_OPTION_FONT_SIZE = 'fontSize';
|
|
15
16
|
export const FONT_STYLE_OPTION_BOLD = 'bold';
|
|
16
17
|
export const FONT_STYLE_OPTION_ITALIC = 'italic';
|
|
17
18
|
export const FONT_STYLE_OPTION_UNDERLINE = 'underline';
|
|
18
19
|
export const FONT_STYLE_OPTION_TEXT_COLOR = 'textColor';
|
|
19
|
-
export const FONT_STYLE_OPTION_TEXT_ALIGN = 'textAlign';
|
|
20
|
-
|
|
20
|
+
export const FONT_STYLE_OPTION_TEXT_ALIGN = 'textAlign';
|
|
21
|
+
// Text align
|
|
21
22
|
export const TEXT_ALIGN_LEFT = 'LEFT';
|
|
22
23
|
export const TEXT_ALIGN_CENTER = 'CENTER';
|
|
23
|
-
export const TEXT_ALIGN_RIGHT = 'RIGHT';
|
|
24
|
+
export const TEXT_ALIGN_RIGHT = 'RIGHT';
|
|
24
25
|
|
|
26
|
+
// Tiers
|
|
25
27
|
const TIER1 = 'tier1';
|
|
26
28
|
const TIER2 = 'tier2';
|
|
27
29
|
export const getFontSizeOptions = fontStyleKey => {
|
|
@@ -66,18 +68,15 @@ export const getTextAlignOptions = (fontStyleKey, isVertical) => {
|
|
|
66
68
|
case FONT_STYLE_HORIZONTAL_AXIS_TITLE:
|
|
67
69
|
case FONT_STYLE_VERTICAL_AXIS_TITLE:
|
|
68
70
|
return axisTitleAlignOptions();
|
|
69
|
-
|
|
70
71
|
case FONT_STYLE_VISUALIZATION_TITLE:
|
|
71
72
|
case FONT_STYLE_VISUALIZATION_SUBTITLE:
|
|
72
73
|
case FONT_STYLE_LEGEND:
|
|
73
74
|
return defaultAlignOptions();
|
|
74
|
-
|
|
75
75
|
case FONT_STYLE_REGRESSION_LINE_LABEL:
|
|
76
76
|
default:
|
|
77
77
|
return isVertical ? verticalAlignOptions() : defaultAlignOptions();
|
|
78
78
|
}
|
|
79
79
|
};
|
|
80
|
-
|
|
81
80
|
const defaultAlignOptions = () => [{
|
|
82
81
|
label: i18n.t('Left'),
|
|
83
82
|
value: TEXT_ALIGN_LEFT
|
|
@@ -88,7 +87,6 @@ const defaultAlignOptions = () => [{
|
|
|
88
87
|
label: i18n.t('Right'),
|
|
89
88
|
value: TEXT_ALIGN_RIGHT
|
|
90
89
|
}];
|
|
91
|
-
|
|
92
90
|
const axisTitleAlignOptions = () => [{
|
|
93
91
|
label: i18n.t('Start'),
|
|
94
92
|
value: TEXT_ALIGN_LEFT
|
|
@@ -99,7 +97,6 @@ const axisTitleAlignOptions = () => [{
|
|
|
99
97
|
label: i18n.t('End'),
|
|
100
98
|
value: TEXT_ALIGN_RIGHT
|
|
101
99
|
}];
|
|
102
|
-
|
|
103
100
|
const verticalAlignOptions = () => [{
|
|
104
101
|
label: i18n.t('Top'),
|
|
105
102
|
value: TEXT_ALIGN_LEFT
|
|
@@ -110,7 +107,6 @@ const verticalAlignOptions = () => [{
|
|
|
110
107
|
label: i18n.t('Bottom'),
|
|
111
108
|
value: TEXT_ALIGN_RIGHT
|
|
112
109
|
}];
|
|
113
|
-
|
|
114
110
|
const defaultFont = 'Roboto';
|
|
115
111
|
export const defaultFontStyle = {
|
|
116
112
|
[FONT_STYLE_VISUALIZATION_TITLE]: {
|
|
@@ -176,13 +172,17 @@ export const defaultFontStyle = {
|
|
|
176
172
|
[FONT_STYLE_OPTION_TEXT_ALIGN]: TEXT_ALIGN_LEFT
|
|
177
173
|
}
|
|
178
174
|
};
|
|
179
|
-
export const mergeFontStyleWithDefault = (fontStyle, fontStyleKey) => ({
|
|
175
|
+
export const mergeFontStyleWithDefault = (fontStyle, fontStyleKey) => ({
|
|
176
|
+
...defaultFontStyle[fontStyleKey],
|
|
180
177
|
...fontStyle
|
|
181
|
-
});
|
|
178
|
+
});
|
|
182
179
|
|
|
180
|
+
//FIXME: Is this function unused? Remove?
|
|
183
181
|
export const deleteFontStyleOption = (inputFontStyle, fontStyleKey, option) => {
|
|
184
|
-
const style = {
|
|
185
|
-
|
|
182
|
+
const style = {
|
|
183
|
+
...inputFontStyle,
|
|
184
|
+
[fontStyleKey]: {
|
|
185
|
+
...inputFontStyle[fontStyleKey]
|
|
186
186
|
}
|
|
187
187
|
};
|
|
188
188
|
style[fontStyleKey] && delete style[fontStyleKey][option];
|
|
@@ -4,40 +4,34 @@ import { DIMENSION_ID_DATA, DIMENSION_ID_ORGUNIT, DIMENSION_ID_PERIOD } from './
|
|
|
4
4
|
import { VIS_TYPE_YEAR_OVER_YEAR_LINE, VIS_TYPE_YEAR_OVER_YEAR_COLUMN, VIS_TYPE_PIE, VIS_TYPE_GAUGE, VIS_TYPE_SINGLE_VALUE, VIS_TYPE_PIVOT_TABLE, VIS_TYPE_SCATTER, isTwoCategoryChartType } from './visTypes.js';
|
|
5
5
|
export const getAdaptedUiLayoutByType = (layout, type) => {
|
|
6
6
|
var _layout$rows;
|
|
7
|
-
|
|
8
7
|
if (isTwoCategoryChartType(type) && ((_layout$rows = layout.rows) === null || _layout$rows === void 0 ? void 0 : _layout$rows.length) > 1) {
|
|
9
8
|
return getDualCategoryLayout(layout);
|
|
10
9
|
}
|
|
11
|
-
|
|
12
10
|
switch (type) {
|
|
13
11
|
case VIS_TYPE_YEAR_OVER_YEAR_LINE:
|
|
14
12
|
case VIS_TYPE_YEAR_OVER_YEAR_COLUMN:
|
|
15
13
|
{
|
|
16
14
|
return getYearOverYearLayout(layout);
|
|
17
15
|
}
|
|
18
|
-
|
|
19
16
|
case VIS_TYPE_PIE:
|
|
20
17
|
{
|
|
21
18
|
return getPieLayout(layout);
|
|
22
19
|
}
|
|
23
|
-
|
|
24
20
|
case VIS_TYPE_SINGLE_VALUE:
|
|
25
21
|
case VIS_TYPE_GAUGE:
|
|
26
22
|
{
|
|
27
23
|
return getSingleValueLayout(layout);
|
|
28
24
|
}
|
|
29
|
-
|
|
30
25
|
case VIS_TYPE_PIVOT_TABLE:
|
|
31
26
|
return layout;
|
|
32
|
-
|
|
33
27
|
case VIS_TYPE_SCATTER:
|
|
34
28
|
return getScatterLayout(layout);
|
|
35
|
-
|
|
36
29
|
default:
|
|
37
30
|
return getDefaultLayout(layout);
|
|
38
31
|
}
|
|
39
|
-
};
|
|
32
|
+
};
|
|
40
33
|
|
|
34
|
+
// Transform from ui.layout to default layout format
|
|
41
35
|
const getDefaultLayout = layout => {
|
|
42
36
|
const columns = layout[AXIS_ID_COLUMNS].slice();
|
|
43
37
|
const rows = layout[AXIS_ID_ROWS].slice();
|
|
@@ -47,7 +41,6 @@ const getDefaultLayout = layout => {
|
|
|
47
41
|
[AXIS_ID_FILTERS]: [...layout[AXIS_ID_FILTERS], ...columns, ...rows]
|
|
48
42
|
};
|
|
49
43
|
};
|
|
50
|
-
|
|
51
44
|
const getDualCategoryLayout = layout => {
|
|
52
45
|
const columns = layout[AXIS_ID_COLUMNS].slice();
|
|
53
46
|
const rows = layout[AXIS_ID_ROWS].slice();
|
|
@@ -56,9 +49,9 @@ const getDualCategoryLayout = layout => {
|
|
|
56
49
|
[AXIS_ID_ROWS]: rows.length > 2 ? rows.splice(0, 2) : rows.splice(0, rows.length),
|
|
57
50
|
[AXIS_ID_FILTERS]: [...layout[AXIS_ID_FILTERS], ...columns, ...rows]
|
|
58
51
|
};
|
|
59
|
-
};
|
|
60
|
-
|
|
52
|
+
};
|
|
61
53
|
|
|
54
|
+
// Transform from ui.layout to pie layout format
|
|
62
55
|
const getPieLayout = layout => {
|
|
63
56
|
const columns = layout[AXIS_ID_COLUMNS].slice();
|
|
64
57
|
const rows = layout[AXIS_ID_ROWS].slice();
|
|
@@ -68,57 +61,49 @@ const getPieLayout = layout => {
|
|
|
68
61
|
[AXIS_ID_FILTERS]: [...layout[AXIS_ID_FILTERS], ...columns, ...rows]
|
|
69
62
|
};
|
|
70
63
|
};
|
|
71
|
-
|
|
72
64
|
const getYearOverYearLayout = layout => ({
|
|
73
65
|
[AXIS_ID_COLUMNS]: [],
|
|
74
66
|
[AXIS_ID_ROWS]: [],
|
|
75
67
|
[AXIS_ID_FILTERS]: [...layout[AXIS_ID_FILTERS], ...layout[AXIS_ID_COLUMNS], ...layout[AXIS_ID_ROWS]].filter(dim => getDimensionId(dim) !== DIMENSION_ID_PERIOD)
|
|
76
68
|
});
|
|
77
|
-
|
|
78
69
|
const getScatterLayout = layout => ({
|
|
79
70
|
[AXIS_ID_COLUMNS]: [DIMENSION_ID_DATA],
|
|
80
71
|
[AXIS_ID_ROWS]: [DIMENSION_ID_ORGUNIT],
|
|
81
72
|
[AXIS_ID_FILTERS]: [...layout[AXIS_ID_COLUMNS], ...layout[AXIS_ID_ROWS], ...layout[AXIS_ID_FILTERS]].filter(dim => ![DIMENSION_ID_DATA, DIMENSION_ID_ORGUNIT].includes(getDimensionId(dim)))
|
|
82
|
-
});
|
|
83
|
-
|
|
73
|
+
});
|
|
84
74
|
|
|
75
|
+
// Transform from ui.layout to single value layout format
|
|
85
76
|
const getSingleValueLayout = layout => {
|
|
86
77
|
const columns = layout[AXIS_ID_COLUMNS].slice();
|
|
87
78
|
const rows = layout[AXIS_ID_ROWS].slice();
|
|
88
79
|
const filters = layout[AXIS_ID_FILTERS].slice();
|
|
89
80
|
let dxDimensionArr = [];
|
|
90
81
|
const clonedLayout = [columns, rows, filters];
|
|
91
|
-
|
|
92
82
|
for (let i = 0; i < clonedLayout.length; ++i) {
|
|
93
83
|
const axis = clonedLayout[i];
|
|
94
|
-
|
|
95
84
|
for (let j = 0; j < axis.length; ++j) {
|
|
96
85
|
const dimension = axis[j];
|
|
97
|
-
|
|
98
86
|
if (getDimensionId(dimension) == DIMENSION_ID_DATA) {
|
|
99
87
|
dxDimensionArr = axis.splice(j, 1);
|
|
100
88
|
break;
|
|
101
89
|
}
|
|
102
90
|
}
|
|
103
|
-
|
|
104
91
|
if (dxDimensionArr.length > 0) {
|
|
105
92
|
break;
|
|
106
93
|
}
|
|
107
94
|
}
|
|
108
|
-
|
|
109
95
|
return {
|
|
110
96
|
[AXIS_ID_COLUMNS]: dxDimensionArr,
|
|
111
97
|
[AXIS_ID_ROWS]: [],
|
|
112
98
|
[AXIS_ID_FILTERS]: [...filters, ...columns, ...rows]
|
|
113
99
|
};
|
|
114
100
|
};
|
|
101
|
+
|
|
115
102
|
/**
|
|
116
103
|
*
|
|
117
104
|
* @param {string|object} dimension
|
|
118
105
|
* @returns {string}
|
|
119
106
|
*/
|
|
120
|
-
|
|
121
|
-
|
|
122
107
|
const getDimensionId = dimension => {
|
|
123
108
|
return isObject(dimension) ? dimension.dimension : dimension;
|
|
124
109
|
};
|
|
@@ -7,31 +7,24 @@ export const getOuLevelAndGroupText = (filter, metaData) => {
|
|
|
7
7
|
if (!dimensionIs(DIMENSION_ID_ORGUNIT)) {
|
|
8
8
|
return '';
|
|
9
9
|
}
|
|
10
|
-
|
|
11
10
|
const items = dimensionGetItems(filter);
|
|
12
11
|
const hasOuLevel = items.some(item => ouIdHelper.hasLevelPrefix(item.id));
|
|
13
12
|
const hasOuGroup = items.some(item => ouIdHelper.hasGroupPrefix(item.id));
|
|
14
13
|
const filterFragments = [];
|
|
15
|
-
|
|
16
14
|
if (hasOuGroup) {
|
|
17
15
|
filterFragments.push(getLevelAndGroupText(items, metaData, false));
|
|
18
16
|
}
|
|
19
|
-
|
|
20
17
|
if (hasOuLevel) {
|
|
21
18
|
filterFragments.push(getLevelAndGroupText(items, metaData, true));
|
|
22
19
|
}
|
|
23
|
-
|
|
24
20
|
return filterFragments.join(' - ');
|
|
25
21
|
};
|
|
26
|
-
|
|
27
22
|
const getLevelAndGroupText = (items, metaData, isLevel) => {
|
|
28
23
|
const getNameFromMetadata = id => metaData.items[id] ? metaData.items[id].name : id;
|
|
29
|
-
|
|
30
24
|
const dynamicOuItems = items.filter(item => isLevel ? ouIdHelper.hasLevelPrefix(item.id) : ouIdHelper.hasGroupPrefix(item.id));
|
|
31
25
|
const lastItem = dynamicOuItems.length > 1 ? dynamicOuItems.pop() : null;
|
|
32
26
|
const dynamicOuNames = dynamicOuItems.map(item => getNameFromMetadata(ouIdHelper.removePrefix(item.id))).join(', ');
|
|
33
27
|
let allDynamicOuNames;
|
|
34
|
-
|
|
35
28
|
if (lastItem) {
|
|
36
29
|
const lastOuName = getNameFromMetadata(ouIdHelper.removePrefix(lastItem.id));
|
|
37
30
|
allDynamicOuNames = i18n.t('{{dynamicOuNames}} and {{lastOuName}}', {
|
|
@@ -41,10 +34,8 @@ const getLevelAndGroupText = (items, metaData, isLevel) => {
|
|
|
41
34
|
} else {
|
|
42
35
|
allDynamicOuNames = dynamicOuNames;
|
|
43
36
|
}
|
|
44
|
-
|
|
45
37
|
const staticOuNames = items.filter(item => !ouIdHelper.hasGroupPrefix(item.id) && !ouIdHelper.hasLevelPrefix(item.id)).map(item => getNameFromMetadata(item.id)).join(', ');
|
|
46
38
|
let ouLevelAndGroupText = '';
|
|
47
|
-
|
|
48
39
|
if (!staticOuNames) {
|
|
49
40
|
if (isLevel) {
|
|
50
41
|
ouLevelAndGroupText = i18n.t('{{allDynamicOuNames}} levels', {
|
|
@@ -68,6 +59,5 @@ const getLevelAndGroupText = (items, metaData, isLevel) => {
|
|
|
68
59
|
});
|
|
69
60
|
}
|
|
70
61
|
}
|
|
71
|
-
|
|
72
62
|
return ouLevelAndGroupText;
|
|
73
63
|
};
|
package/build/es/modules/hash.js
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import SHA1 from 'crypto-js/sha1';
|
|
2
2
|
import { DIMENSION_TYPE_EXPRESSION_DIMENSION_ITEM } from './dataTypes.js';
|
|
3
3
|
import { layoutGetAllItems } from './layout/layoutGetAllItems.js';
|
|
4
|
-
|
|
5
4
|
const isValidValue = value => typeof value === 'string' && value.length;
|
|
6
|
-
|
|
7
5
|
export const getHash = value => isValidValue(value) ? SHA1(value).toString() : undefined;
|
|
8
6
|
export const getExpressionHashFromVisualization = visualization => {
|
|
9
7
|
var _layoutGetAllItems;
|
|
10
|
-
|
|
11
8
|
return getHash((_layoutGetAllItems = layoutGetAllItems(visualization)) === null || _layoutGetAllItems === void 0 ? void 0 : _layoutGetAllItems.filter(item => item.dimensionItemType === DIMENSION_TYPE_EXPRESSION_DIMENSION_ITEM && isValidValue(item.expression)).sort((i1, i2) => i1.id < i2.id ? -1 : i1.id > i2.id ? 1 : 0).map(edi => edi.expression).join(''));
|
|
12
9
|
};
|
|
@@ -4,7 +4,8 @@ import { TEST_LAYOUT } from '../testResources.js';
|
|
|
4
4
|
describe('layoutHasDataDimension', () => {
|
|
5
5
|
it('should return true if the dx dimension is found in the layout, otherwise false', () => {
|
|
6
6
|
expect(layoutHasDataDimension(TEST_LAYOUT)).toBe(true);
|
|
7
|
-
const layoutWithoutData = {
|
|
7
|
+
const layoutWithoutData = {
|
|
8
|
+
...TEST_LAYOUT,
|
|
8
9
|
[AXIS_ID_COLUMNS]: AXIS.defaultValue
|
|
9
10
|
};
|
|
10
11
|
expect(layoutHasDataDimension(layoutWithoutData)).toBe(false);
|
|
@@ -5,7 +5,8 @@ import { TEST_LAYOUT } from '../testResources.js';
|
|
|
5
5
|
describe('layoutHasDimension', () => {
|
|
6
6
|
it('should return true if the dimension id is found in the layout, otherwise false', () => {
|
|
7
7
|
expect(layoutHasDimension(TEST_LAYOUT, DIMENSION_ID_ORGUNIT)).toBe(true);
|
|
8
|
-
const layoutWithoutPeriod = {
|
|
8
|
+
const layoutWithoutPeriod = {
|
|
9
|
+
...TEST_LAYOUT,
|
|
9
10
|
[AXIS_ID_FILTERS]: AXIS.defaultValue
|
|
10
11
|
};
|
|
11
12
|
expect(layoutHasDimension(layoutWithoutPeriod, DIMENSION_ID_ORGUNIT)).toBe(false);
|
|
@@ -4,7 +4,8 @@ import { TEST_LAYOUT } from '../testResources.js';
|
|
|
4
4
|
describe('layoutHasDynamicDimension', () => {
|
|
5
5
|
it('should return true if a dynamic dimension id is found in the layout, otherwise false', () => {
|
|
6
6
|
expect(layoutHasDynamicDimension(TEST_LAYOUT)).toBe(true);
|
|
7
|
-
const layoutWithoutDynamicDimension = {
|
|
7
|
+
const layoutWithoutDynamicDimension = {
|
|
8
|
+
...TEST_LAYOUT,
|
|
8
9
|
[AXIS_ID_FILTERS]: AXIS.defaultValue
|
|
9
10
|
};
|
|
10
11
|
expect(layoutHasDynamicDimension(layoutWithoutDynamicDimension)).toBe(false);
|
|
@@ -4,7 +4,8 @@ import { TEST_LAYOUT } from '../testResources.js';
|
|
|
4
4
|
describe('layoutHasPeriodDimension', () => {
|
|
5
5
|
it('should return true if the pe dimension is found in the layout, otherwise false', () => {
|
|
6
6
|
expect(layoutHasPeriodDimension(TEST_LAYOUT)).toBe(true);
|
|
7
|
-
const layoutWithoutPeriod = {
|
|
7
|
+
const layoutWithoutPeriod = {
|
|
8
|
+
...TEST_LAYOUT,
|
|
8
9
|
[AXIS_ID_ROWS]: AXIS.defaultValue
|
|
9
10
|
};
|
|
10
11
|
expect(layoutHasPeriodDimension(layoutWithoutPeriod)).toBe(false);
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
// Axis
|
|
2
|
+
|
|
2
3
|
export const AXIS = {
|
|
3
4
|
defaultValue: [],
|
|
4
5
|
isValid: axis => Array.isArray(axis)
|
|
5
|
-
};
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
// Axis ids
|
|
6
9
|
|
|
7
10
|
export const AXIS_ID_COLUMNS = 'columns';
|
|
8
11
|
export const AXIS_ID_ROWS = 'rows';
|
|
9
12
|
export const AXIS_ID_FILTERS = 'filters';
|
|
10
13
|
export const AXIS_ID_YEAR_OVER_YEAR_SERIES = 'yearOverYearSeries';
|
|
11
|
-
export const AXIS_ID_YEAR_OVER_YEAR_CATEGORY = 'yearOverYearCategory';
|
|
14
|
+
export const AXIS_ID_YEAR_OVER_YEAR_CATEGORY = 'yearOverYearCategory';
|
|
15
|
+
//export const AXIS_ID_POINTS_CATEGORY = 'pointsCategory'
|
|
12
16
|
|
|
13
17
|
export const DEFAULT_AXIS_IDS = [AXIS_ID_COLUMNS, AXIS_ID_ROWS, AXIS_ID_FILTERS];
|
|
14
18
|
export const ALL_AXIS_IDS = [AXIS_ID_COLUMNS, AXIS_ID_ROWS, AXIS_ID_FILTERS, AXIS_ID_YEAR_OVER_YEAR_SERIES, AXIS_ID_YEAR_OVER_YEAR_CATEGORY];
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import isObject from 'lodash/isObject';
|
|
2
|
-
import isString from 'lodash/isString';
|
|
2
|
+
import isString from 'lodash/isString';
|
|
3
|
+
|
|
4
|
+
// Dimension
|
|
3
5
|
|
|
4
6
|
export const DIMENSION = {
|
|
5
7
|
isValid: dimension => isObject(dimension)
|
|
6
|
-
};
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
// Props
|
|
7
11
|
|
|
8
12
|
export const DIMENSION_PROP_ID = {
|
|
9
13
|
name: 'dimension',
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { DIMENSION_PROP_ID, DIMENSION_PROP_PROGRAM_STAGE } from './dimension.js';
|
|
2
2
|
export const dimensionGetId = dimension => {
|
|
3
3
|
var _dimension$DIMENSION_;
|
|
4
|
-
|
|
5
|
-
return (_dimension$DIMENSION_ = dimension[DIMENSION_PROP_PROGRAM_STAGE.name]) !== null && _dimension$DIMENSION_ !== void 0 && _dimension$DIMENSION_.id ? "".concat(dimension[DIMENSION_PROP_PROGRAM_STAGE.name].id, ".").concat(dimension[DIMENSION_PROP_ID.name]) : dimension[DIMENSION_PROP_ID.name];
|
|
4
|
+
return (_dimension$DIMENSION_ = dimension[DIMENSION_PROP_PROGRAM_STAGE.name]) !== null && _dimension$DIMENSION_ !== void 0 && _dimension$DIMENSION_.id ? `${dimension[DIMENSION_PROP_PROGRAM_STAGE.name].id}.${dimension[DIMENSION_PROP_ID.name]}` : dimension[DIMENSION_PROP_ID.name];
|
|
6
5
|
};
|
|
@@ -4,20 +4,15 @@ export const dimensionIsValid = function (dimension) {
|
|
|
4
4
|
let {
|
|
5
5
|
requireItems
|
|
6
6
|
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
7
|
-
|
|
8
7
|
if (!DIMENSION.isValid(dimension)) {
|
|
9
8
|
return false;
|
|
10
9
|
}
|
|
11
|
-
|
|
12
10
|
const requiredProps = DIMENSION_PROPS.filter(prop => prop.required);
|
|
13
|
-
|
|
14
11
|
if (!requiredProps.every(prop => prop.isValid(dimension[prop.name]))) {
|
|
15
12
|
return false;
|
|
16
13
|
}
|
|
17
|
-
|
|
18
14
|
if (requireItems === true && dimensionIsEmpty(dimension)) {
|
|
19
15
|
return false;
|
|
20
16
|
}
|
|
21
|
-
|
|
22
17
|
return true;
|
|
23
18
|
};
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import isObject from 'lodash/isObject';
|
|
2
|
-
import isString from 'lodash/isString';
|
|
2
|
+
import isString from 'lodash/isString';
|
|
3
|
+
|
|
4
|
+
// Item
|
|
3
5
|
|
|
4
6
|
export const ITEM = {
|
|
5
7
|
isValid: item => isObject(item)
|
|
6
|
-
};
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
// Props
|
|
7
11
|
|
|
8
12
|
export const ITEM_PROP_ID = {
|
|
9
13
|
name: 'id',
|