@dhis2/analytics 26.8.7 → 26.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/__demo__/CalculationModal.stories.js +38 -16
- package/build/cjs/__demo__/DimensionsPanel.stories.js +65 -27
- package/build/cjs/__demo__/DynamicDimension.stories.js +30 -12
- package/build/cjs/__demo__/FileMenu.stories.js +27 -10
- package/build/cjs/__demo__/Filter.stories.js +20 -10
- package/build/cjs/__demo__/FixedPeriodSelect.stories.js +35 -17
- package/build/cjs/__demo__/InterpretationsUnit.stories.js +22 -11
- package/build/cjs/__demo__/OpenFileDialog.stories.js +44 -27
- package/build/cjs/__demo__/OrgUnitDimension.stories.js +103 -54
- package/build/cjs/__demo__/PeriodDimension.stories.js +64 -23
- package/build/cjs/__demo__/PivotTable.stories.js +413 -210
- package/build/cjs/__demo__/SingleValue.stories.js +684 -0
- package/build/cjs/__demo__/Toolbar.stories.js +44 -34
- package/build/cjs/__fixtures__/fixtures.js +2 -3
- package/build/cjs/api/analytics/Analytics.js +2 -3
- package/build/cjs/api/analytics/AnalyticsAggregate.js +2 -3
- package/build/cjs/api/analytics/AnalyticsBase.js +2 -3
- package/build/cjs/api/analytics/AnalyticsEnrollments.js +2 -3
- package/build/cjs/api/analytics/AnalyticsEvents.js +2 -3
- package/build/cjs/api/analytics/AnalyticsRequest.js +2 -3
- package/build/cjs/api/analytics/AnalyticsRequestBase.js +2 -3
- package/build/cjs/api/analytics/AnalyticsRequestDimensionsMixin.js +2 -3
- package/build/cjs/api/analytics/AnalyticsRequestFiltersMixin.js +2 -3
- package/build/cjs/api/analytics/AnalyticsRequestPropertiesMixin.js +2 -3
- package/build/cjs/api/analytics/AnalyticsResponse.js +2 -4
- package/build/cjs/api/analytics/AnalyticsResponseHeader.js +1 -2
- package/build/cjs/api/analytics/AnalyticsTrackedEntities.js +2 -3
- package/build/cjs/api/analytics/__tests__/Analytics.spec.js +1 -1
- package/build/cjs/api/analytics/__tests__/AnalyticsAggregate.spec.js +1 -1
- package/build/cjs/api/analytics/__tests__/AnalyticsBase.spec.js +2 -2
- package/build/cjs/api/analytics/__tests__/AnalyticsEnrollments.spec.js +1 -1
- package/build/cjs/api/analytics/__tests__/AnalyticsEvents.spec.js +1 -1
- package/build/cjs/api/analytics/__tests__/AnalyticsRequest.spec.js +1 -1
- package/build/cjs/api/analytics/__tests__/AnalyticsRequestBase.spec.js +1 -1
- package/build/cjs/api/analytics/__tests__/AnalyticsResponse.spec.js +1 -1
- package/build/cjs/api/analytics/__tests__/AnalyticsResponseHeader.spec.js +1 -1
- package/build/cjs/api/dimensions.js +11 -21
- package/build/cjs/api/expression.js +5 -9
- package/build/cjs/assets/AssignedCategoriesIcon.js +2 -3
- package/build/cjs/assets/DimensionItemIcons/CalculationIcon.js +3 -4
- package/build/cjs/assets/DimensionItemIcons/DataElementIcon.js +3 -4
- package/build/cjs/assets/DimensionItemIcons/GenericIcon.js +3 -4
- package/build/cjs/assets/DimensionItemIcons/PeriodIcon.js +3 -4
- package/build/cjs/assets/DynamicDimensionIcon.js +2 -3
- package/build/cjs/assets/FormulaIcon.js +2 -3
- package/build/cjs/components/AboutAOUnit/AboutAOUnit.js +4 -5
- package/build/cjs/components/AboutAOUnit/styles/AboutAOUnit.style.js +1 -2
- package/build/cjs/components/AboutAOUnit/utils.js +7 -13
- package/build/cjs/components/CachedDataQueryProvider.js +3 -3
- package/build/cjs/components/DataDimension/Calculation/CalculationModal.js +4 -5
- package/build/cjs/components/DataDimension/Calculation/DataElementOption.js +3 -4
- package/build/cjs/components/DataDimension/Calculation/DataElementSelector.js +4 -5
- package/build/cjs/components/DataDimension/Calculation/DndContext.js +8 -10
- package/build/cjs/components/DataDimension/Calculation/DragHandleIcon.js +3 -4
- package/build/cjs/components/DataDimension/Calculation/DraggingItem.js +2 -3
- package/build/cjs/components/DataDimension/Calculation/DropZone.js +2 -3
- package/build/cjs/components/DataDimension/Calculation/FormulaField.js +4 -7
- package/build/cjs/components/DataDimension/Calculation/FormulaItem.js +5 -6
- package/build/cjs/components/DataDimension/Calculation/MathOperatorSelector.js +2 -3
- package/build/cjs/components/DataDimension/Calculation/Operator.js +3 -4
- package/build/cjs/components/DataDimension/Calculation/styles/CalculationModal.style.js +1 -2
- package/build/cjs/components/DataDimension/Calculation/styles/DataElementOption.style.js +1 -2
- package/build/cjs/components/DataDimension/Calculation/styles/DataElementSelector.style.js +1 -2
- package/build/cjs/components/DataDimension/Calculation/styles/DraggingItem.style.js +1 -2
- package/build/cjs/components/DataDimension/Calculation/styles/DropZone.style.js +1 -2
- package/build/cjs/components/DataDimension/Calculation/styles/FormulaField.style.js +1 -2
- package/build/cjs/components/DataDimension/Calculation/styles/FormulaItem.style.js +1 -2
- package/build/cjs/components/DataDimension/Calculation/styles/MathOperatorSelector.style.js +1 -2
- package/build/cjs/components/DataDimension/Calculation/styles/Operator.style.js +1 -2
- package/build/cjs/components/DataDimension/DataDimension.js +4 -5
- package/build/cjs/components/DataDimension/DataTypeSelector.js +2 -3
- package/build/cjs/components/DataDimension/DetailSelector.js +2 -3
- package/build/cjs/components/DataDimension/GroupSelector.js +4 -5
- package/build/cjs/components/DataDimension/ItemSelector.js +5 -7
- package/build/cjs/components/DataDimension/MetricSelector.js +2 -3
- package/build/cjs/components/DataDimension/styles/DataTypeSelector.style.js +1 -2
- package/build/cjs/components/DataDimension/styles/DetailSelector.style.js +1 -2
- package/build/cjs/components/DataDimension/styles/GroupSelector.style.js +1 -2
- package/build/cjs/components/DataDimension/styles/MetricSelector.style.js +1 -2
- package/build/cjs/components/DimensionMenu.js +5 -6
- package/build/cjs/components/DimensionsPanel/DimensionsPanel.js +7 -8
- package/build/cjs/components/DimensionsPanel/List/DimensionItem.js +8 -9
- package/build/cjs/components/DimensionsPanel/List/DimensionList.js +7 -8
- package/build/cjs/components/DimensionsPanel/List/OptionsButton.js +2 -3
- package/build/cjs/components/DimensionsPanel/List/RecommendedIcon.js +2 -3
- package/build/cjs/components/DimensionsPanel/List/__tests__/DimensionItem.spec.js +2 -2
- package/build/cjs/components/DimensionsPanel/List/styles/DimensionItem.style.js +1 -2
- package/build/cjs/components/DimensionsPanel/List/styles/DimensionList.style.js +1 -2
- package/build/cjs/components/DimensionsPanel/List/styles/RecommendedIcon.style.js +2 -3
- package/build/cjs/components/DimensionsPanel/__tests__/DimensionsPanel.spec.js +2 -2
- package/build/cjs/components/DimensionsPanel/styles/DimensionsPanel.style.js +2 -3
- package/build/cjs/components/DynamicDimension/DynamicDimension.js +3 -5
- package/build/cjs/components/DynamicDimension/ItemSelector.js +5 -7
- package/build/cjs/components/DynamicDimension/styles/DynamicDimension.style.js +1 -2
- package/build/cjs/components/FileMenu/DeleteDialog.js +3 -3
- package/build/cjs/components/FileMenu/FileMenu.js +4 -5
- package/build/cjs/components/FileMenu/FileMenu.styles.js +2 -4
- package/build/cjs/components/FileMenu/GetLinkDialog.js +1 -1
- package/build/cjs/components/FileMenu/GetLinkDialog.styles.js +1 -2
- package/build/cjs/components/FileMenu/RenameDialog.js +3 -3
- package/build/cjs/components/FileMenu/SaveAsDialog.js +3 -3
- package/build/cjs/components/FileMenu/__tests__/DeleteDialog.spec.js +2 -2
- package/build/cjs/components/FileMenu/__tests__/FileMenu.spec.js +2 -2
- package/build/cjs/components/FileMenu/__tests__/GetLinkDialog.spec.js +2 -2
- package/build/cjs/components/FileMenu/__tests__/RenameDialog.spec.js +2 -2
- package/build/cjs/components/FileMenu/__tests__/SaveAsDialog.spec.js +2 -2
- package/build/cjs/components/FileMenu/utils.js +6 -11
- package/build/cjs/components/Filter/Filter.js +2 -3
- package/build/cjs/components/Filter/__tests__/Filter.spec.js +2 -2
- package/build/cjs/components/Filter/styles/Filter.style.js +1 -2
- package/build/cjs/components/Interpretations/InterpretationModal/Comment.js +3 -3
- package/build/cjs/components/Interpretations/InterpretationModal/CommentAddForm.js +3 -3
- package/build/cjs/components/Interpretations/InterpretationModal/CommentDeleteButton.js +3 -3
- package/build/cjs/components/Interpretations/InterpretationModal/CommentUpdateForm.js +3 -3
- package/build/cjs/components/Interpretations/InterpretationModal/InterpretationModal.js +3 -3
- package/build/cjs/components/Interpretations/InterpretationModal/InterpretationThread.js +3 -3
- package/build/cjs/components/Interpretations/InterpretationsUnit/InterpretationForm.js +3 -3
- package/build/cjs/components/Interpretations/InterpretationsUnit/InterpretationList.js +1 -1
- package/build/cjs/components/Interpretations/InterpretationsUnit/InterpretationsUnit.js +4 -5
- package/build/cjs/components/Interpretations/common/Interpretation/Interpretation.js +3 -3
- package/build/cjs/components/Interpretations/common/Interpretation/InterpretationDeleteButton.js +1 -1
- package/build/cjs/components/Interpretations/common/Interpretation/InterpretationSharingLink.js +3 -3
- package/build/cjs/components/Interpretations/common/Interpretation/InterpretationUpdateForm.js +3 -3
- package/build/cjs/components/Interpretations/common/Message/Message.js +1 -1
- package/build/cjs/components/Interpretations/common/Message/MessageButtonStrip.js +1 -1
- package/build/cjs/components/Interpretations/common/Message/MessageEditorContainer.js +1 -1
- package/build/cjs/components/Interpretations/common/Message/MessageIconButton.js +1 -1
- package/build/cjs/components/Interpretations/common/Message/MessageInput.js +5 -6
- package/build/cjs/components/Interpretations/common/Message/MessageStatsBar.js +1 -1
- package/build/cjs/components/LegendKey/LegendKey.js +2 -3
- package/build/cjs/components/LegendKey/styles/LegendKey.style.js +1 -2
- package/build/cjs/components/OfflineTooltip.js +1 -1
- package/build/cjs/components/OpenFileDialog/CreatedByFilter.js +5 -9
- package/build/cjs/components/OpenFileDialog/CustomSelectOption.js +2 -3
- package/build/cjs/components/OpenFileDialog/DateField.js +2 -3
- package/build/cjs/components/OpenFileDialog/FileList.js +2 -3
- package/build/cjs/components/OpenFileDialog/NameFilter.js +2 -3
- package/build/cjs/components/OpenFileDialog/OpenFileDialog.js +4 -5
- package/build/cjs/components/OpenFileDialog/OpenFileDialog.styles.js +1 -2
- package/build/cjs/components/OpenFileDialog/PaginationControls.js +2 -3
- package/build/cjs/components/OpenFileDialog/VisTypeFilter.js +2 -3
- package/build/cjs/components/OpenFileDialog/styles/CustomSelectOption.style.js +1 -2
- package/build/cjs/components/OpenFileDialog/utils.js +5 -9
- package/build/cjs/components/Options/VisualizationOptions.js +4 -5
- package/build/cjs/components/Options/styles/VisualizationOptions.style.js +17 -32
- package/build/cjs/components/OrgUnitDimension/OrgUnitDimension.js +6 -10
- package/build/cjs/components/OrgUnitDimension/__tests__/OrgUnitDimension.spec.js +60 -0
- package/build/cjs/components/OrgUnitDimension/__tests__/__snapshots__/OrgUnitDimension.spec.js.snap +94 -0
- package/build/cjs/components/OrgUnitDimension/styles/OrgUnitDimension.style.js +1 -2
- package/build/cjs/components/PeriodDimension/FixedPeriodFilter.js +2 -3
- package/build/cjs/components/PeriodDimension/FixedPeriodSelect.js +7 -8
- package/build/cjs/components/PeriodDimension/PeriodDimension.js +2 -3
- package/build/cjs/components/PeriodDimension/PeriodTransfer.js +5 -6
- package/build/cjs/components/PeriodDimension/RelativePeriodFilter.js +2 -3
- package/build/cjs/components/PeriodDimension/__tests__/FixedPeriodSingleSelect.spec.js +2 -2
- package/build/cjs/components/PeriodDimension/__tests__/PeriodDimension.spec.js +2 -2
- package/build/cjs/components/PeriodDimension/__tests__/PeriodSelector.spec.js +2 -2
- package/build/cjs/components/PeriodDimension/styles/FixedPeriodSelect.style.js +1 -2
- package/build/cjs/components/PeriodDimension/styles/PeriodFilter.style.js +1 -2
- package/build/cjs/components/PeriodDimension/utils/fixedPeriods.js +1 -2
- package/build/cjs/components/PeriodDimension/utils/index.js +19 -38
- package/build/cjs/components/PeriodDimension/utils/relativePeriods.js +1 -1
- package/build/cjs/components/PivotTable/PivotTable.js +4 -5
- package/build/cjs/components/PivotTable/PivotTableBody.js +1 -1
- package/build/cjs/components/PivotTable/PivotTableCell.js +3 -4
- package/build/cjs/components/PivotTable/PivotTableClippedAxis.js +1 -1
- package/build/cjs/components/PivotTable/PivotTableColumnHeaderCell.js +1 -1
- package/build/cjs/components/PivotTable/PivotTableColumnHeaders.js +1 -1
- package/build/cjs/components/PivotTable/PivotTableContainer.js +2 -3
- package/build/cjs/components/PivotTable/PivotTableDimensionLabelCell.js +1 -1
- package/build/cjs/components/PivotTable/PivotTableEmptyCell.js +3 -4
- package/build/cjs/components/PivotTable/PivotTableEmptyRow.js +1 -1
- package/build/cjs/components/PivotTable/PivotTableEngineContext.js +4 -5
- package/build/cjs/components/PivotTable/PivotTableHead.js +1 -1
- package/build/cjs/components/PivotTable/PivotTableHeaderCell.js +1 -1
- package/build/cjs/components/PivotTable/PivotTableRow.js +1 -1
- package/build/cjs/components/PivotTable/PivotTableRowHeaderCell.js +1 -1
- package/build/cjs/components/PivotTable/PivotTableSortIcon.js +1 -1
- package/build/cjs/components/PivotTable/PivotTableTitleRow.js +3 -3
- package/build/cjs/components/PivotTable/PivotTableTitleRows.js +1 -1
- package/build/cjs/components/PivotTable/PivotTableValueCell.js +3 -3
- package/build/cjs/components/PivotTable/icons/SortIconAscending.js +1 -1
- package/build/cjs/components/PivotTable/icons/SortIconDescending.js +1 -1
- package/build/cjs/components/PivotTable/icons/SortIconIdle.js +1 -1
- package/build/cjs/components/PivotTable/styles/PivotTable.style.js +3 -6
- package/build/cjs/components/RichText/Editor/Editor.js +4 -5
- package/build/cjs/components/RichText/Editor/__tests__/Editor.spec.js +2 -2
- package/build/cjs/components/RichText/Editor/markdownHandler.js +9 -18
- package/build/cjs/components/RichText/Editor/styles/Editor.style.js +4 -8
- package/build/cjs/components/RichText/Parser/MdParser.js +1 -1
- package/build/cjs/components/RichText/Parser/Parser.js +3 -3
- package/build/cjs/components/RichText/Parser/__tests__/Parser.spec.js +2 -2
- package/build/cjs/components/Toolbar/HoverMenuBar/HoverMenuBar.js +3 -3
- package/build/cjs/components/Toolbar/HoverMenuBar/HoverMenuDropdown.js +3 -3
- package/build/cjs/components/Toolbar/HoverMenuBar/HoverMenuList.js +3 -3
- package/build/cjs/components/Toolbar/HoverMenuBar/HoverMenuListItem.js +4 -4
- package/build/cjs/components/Toolbar/HoverMenuBar/HoverMenuListItem.styles.js +1 -2
- package/build/cjs/components/Toolbar/HoverMenuBar/__tests__/HoverMenuBar.spec.js +4 -4
- package/build/cjs/components/Toolbar/HoverMenuBar/__tests__/HoverMenuDropdown.spec.js +3 -3
- package/build/cjs/components/Toolbar/HoverMenuBar/__tests__/HoverMenuList.spec.js +7 -7
- package/build/cjs/components/Toolbar/HoverMenuBar/__tests__/HoverMenuListItem.spec.js +5 -5
- package/build/cjs/components/Toolbar/InterpretationsAndDetailsToggler.js +1 -1
- package/build/cjs/components/Toolbar/MenuButton.styles.js +1 -2
- package/build/cjs/components/Toolbar/Toolbar.js +1 -1
- package/build/cjs/components/Toolbar/ToolbarSidebar.js +1 -1
- package/build/cjs/components/Toolbar/UpdateButton.js +2 -2
- package/build/cjs/components/Toolbar/__tests__/InterpretationsAndDetailsToggler.spec.js +6 -6
- package/build/cjs/components/Toolbar/__tests__/Toolbar.spec.js +3 -3
- package/build/cjs/components/Toolbar/__tests__/ToolbarSidebar.spec.js +4 -4
- package/build/cjs/components/Toolbar/__tests__/UpdateButton.spec.js +5 -5
- package/build/cjs/components/TransferOption.js +1 -1
- package/build/cjs/components/TranslationDialog/TranslationModal/LocalesSelect.js +1 -1
- package/build/cjs/components/TranslationDialog/TranslationModal/TranslationForm.js +3 -3
- package/build/cjs/components/TranslationDialog/TranslationModal/TranslationModal.js +3 -3
- package/build/cjs/components/TranslationDialog/TranslationModal/TranslationModalActions.js +1 -1
- package/build/cjs/components/TranslationDialog/TranslationModal/useTranslationsResults.js +1 -1
- package/build/cjs/components/UserMention/UserList.js +1 -1
- package/build/cjs/components/UserMention/UserMentionWrapper.js +3 -4
- package/build/cjs/components/UserMention/styles/UserMentionWrapper.style.js +4 -6
- package/build/cjs/components/UserMention/useUserSearchResults.js +1 -1
- package/build/cjs/components/VisTypeIcon.js +2 -3
- package/build/cjs/components/styles/DimensionSelector.style.js +1 -2
- package/build/cjs/components/styles/DimensionsPanel.style.js +2 -3
- package/build/cjs/components/styles/OfflineTooltip.style.js +1 -2
- package/build/cjs/components/styles/TransferOption.style.js +1 -2
- package/build/cjs/index.js +3 -3
- package/build/cjs/locales/index.js +2 -3
- package/build/cjs/locales/lo/translations.json +16 -12
- package/build/cjs/locales/pt/translations.json +251 -242
- package/build/cjs/locales/vi/translations.json +16 -12
- package/build/cjs/locales/zh/translations.json +2 -0
- package/build/cjs/modules/__tests__/getOuLevelAndGroupText.spec.js +9 -0
- package/build/cjs/modules/axis.js +1 -1
- package/build/cjs/modules/dataSets.js +8 -14
- package/build/cjs/modules/dataTypes.js +24 -47
- package/build/cjs/modules/dimensionListItem.js +1 -1
- package/build/cjs/modules/dimensionSelectorHelper.js +3 -6
- package/build/cjs/modules/expressions.js +6 -11
- package/build/cjs/modules/fontStyle.js +19 -37
- package/build/cjs/modules/getAdaptedUiLayoutByType.js +1 -1
- package/build/cjs/modules/getOuLevelAndGroupText.js +5 -2
- package/build/cjs/modules/hash.js +1 -1
- package/build/cjs/modules/layout/axis.js +10 -16
- package/build/cjs/modules/layout/dimension.js +11 -19
- package/build/cjs/modules/layout/item.js +5 -7
- package/build/cjs/modules/layout/layout.js +3 -4
- package/build/cjs/modules/layout/testResources.js +39 -71
- package/build/cjs/modules/layoutTypes.js +8 -16
- package/build/cjs/modules/layoutUiRules/rules.js +4 -7
- package/build/cjs/modules/legends.js +4 -8
- package/build/cjs/modules/list.js +1 -1
- package/build/cjs/modules/ouIdHelper/index.js +5 -9
- package/build/cjs/modules/outliers/index.js +13 -25
- package/build/cjs/modules/outliers/iqr.js +5 -9
- package/build/cjs/modules/outliers/modZScore.js +2 -3
- package/build/cjs/modules/outliers/normalization.js +2 -2
- package/build/cjs/modules/outliers/zScore.js +2 -3
- package/build/cjs/modules/pivotTable/AdaptiveClippingController.js +3 -3
- package/build/cjs/modules/pivotTable/PivotTableEngine.js +4 -4
- package/build/cjs/modules/pivotTable/clipAxis.js +1 -1
- package/build/cjs/modules/pivotTable/pivotTableConstants.js +32 -62
- package/build/cjs/modules/pivotTable/useParentSize.js +1 -1
- package/build/cjs/modules/pivotTable/useScrollPosition.js +1 -1
- package/build/cjs/modules/pivotTable/useSortableColumns.js +0 -1
- package/build/cjs/modules/predefinedDimensions.js +6 -11
- package/build/cjs/modules/valueTypes.js +21 -42
- package/build/cjs/modules/visTypes.js +24 -47
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/addTrendLines.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/axis.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/chart/default.js +26 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/chart/index.js +18 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/chart/singleValue.js +19 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/customAxes.js +2 -4
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/customSVGOptions/index.js +36 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueBackgroundColor.js +12 -0
- package/build/cjs/visualizations/config/adapters/{dhis_dhis/value/index.js → dhis_highcharts/customSVGOptions/singleValue/getSingleValueFormattedValue.js} +7 -6
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueLegendColor.js +11 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueSubtext.js +11 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueTextColor.js +20 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueTitleColor.js +26 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/index.js +31 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/index.js +24 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/index.js +18 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/addIconElement.js +34 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/checkIfFitsWithinContainer.js +19 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/computeLayoutRect.js +39 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/computeSpacingTop.js +21 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/constants.js +10 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/getAvailableSpace.js +14 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/index.js +47 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/positionElements.js +46 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/styles.js +107 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/exporting.js +30 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/getAxisTitle.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/getCategories.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/getCumulativeData.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/getFormatter.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/getSortedConfig.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/getSteps.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/getTrimmedConfig.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/index.js +36 -26
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/lang.js +17 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/legendSet.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/pane/index.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/plotOptions.js +2 -2
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/series/index.js +6 -2
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/series/scatter.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/subtitle/__tests__/singleValue.spec.js +61 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/subtitle/gauge.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/subtitle/index.js +58 -24
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/subtitle/singleValue.js +27 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/title/__tests__/singleValue.spec.js +44 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/title/index.js +51 -23
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/title/scatter.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/title/singleValue.js +31 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/title/yearOverYear.js +3 -3
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/type.js +2 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/xAxis/index.js +2 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/xAxis/radar.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/xAxis/scatter.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/xAxis/twoCategory.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/xAxis/yearOnYear.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/yAxis/gauge.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/yAxis/index.js +7 -8
- package/build/cjs/visualizations/config/adapters/index.js +5 -8
- package/build/cjs/visualizations/config/generators/highcharts/index.js +5 -1
- package/build/cjs/visualizations/config/generators/index.js +5 -8
- package/build/cjs/visualizations/config/index.js +1 -1
- package/build/cjs/visualizations/config/validators/index.js +3 -4
- package/build/cjs/visualizations/index.js +2 -3
- package/build/cjs/visualizations/store/adapters/dhis_highcharts/index.js +4 -1
- package/build/cjs/visualizations/store/adapters/dhis_highcharts/singleValue.js +10 -0
- package/build/cjs/visualizations/store/adapters/dhis_highcharts/twoCategory.js +1 -1
- package/build/cjs/visualizations/store/adapters/index.js +5 -8
- package/build/cjs/visualizations/store/index.js +1 -1
- package/build/cjs/visualizations/store/validators/dhis/index.js +1 -1
- package/build/cjs/visualizations/store/validators/index.js +3 -4
- package/build/cjs/visualizations/util/__tests__/getFilterText.spec.js +1 -1
- package/build/cjs/visualizations/util/colors/colorSets.js +11 -20
- package/build/cjs/visualizations/util/colors/themes.js +3 -5
- package/build/cjs/visualizations/util/shouldUseContrastColor.js +24 -0
- package/build/es/__demo__/CalculationModal.stories.js +20 -6
- package/build/es/__demo__/DimensionsPanel.stories.js +43 -17
- package/build/es/__demo__/DynamicDimension.stories.js +18 -7
- package/build/es/__demo__/FileMenu.stories.js +15 -5
- package/build/es/__demo__/Filter.stories.js +8 -3
- package/build/es/__demo__/FixedPeriodSelect.stories.js +18 -7
- package/build/es/__demo__/InterpretationsUnit.stories.js +10 -5
- package/build/es/__demo__/OpenFileDialog.stories.js +34 -26
- package/build/es/__demo__/OrgUnitDimension.stories.js +61 -26
- package/build/es/__demo__/PeriodDimension.stories.js +44 -13
- package/build/es/__demo__/PivotTable.stories.js +249 -99
- package/build/es/__demo__/SingleValue.stories.js +675 -0
- package/build/es/__demo__/Toolbar.stories.js +8 -3
- package/build/es/api/analytics/AnalyticsResponse.js +0 -1
- package/build/es/components/DataDimension/Calculation/DataElementOption.js +1 -1
- package/build/es/components/DataDimension/Calculation/DndContext.js +3 -3
- package/build/es/components/DataDimension/Calculation/FormulaItem.js +1 -1
- package/build/es/components/DataDimension/Calculation/Operator.js +1 -1
- package/build/es/components/DataDimension/ItemSelector.js +1 -2
- package/build/es/components/DimensionMenu.js +3 -3
- package/build/es/components/DimensionsPanel/DimensionsPanel.js +3 -3
- package/build/es/components/DimensionsPanel/List/DimensionItem.js +4 -4
- package/build/es/components/DimensionsPanel/List/DimensionList.js +3 -3
- package/build/es/components/DimensionsPanel/List/__tests__/DimensionItem.spec.js +1 -1
- package/build/es/components/DimensionsPanel/__tests__/DimensionsPanel.spec.js +1 -1
- package/build/es/components/DynamicDimension/ItemSelector.js +1 -2
- package/build/es/components/FileMenu/__tests__/DeleteDialog.spec.js +1 -1
- package/build/es/components/FileMenu/__tests__/FileMenu.spec.js +1 -1
- package/build/es/components/FileMenu/__tests__/GetLinkDialog.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/Filter/__tests__/Filter.spec.js +1 -1
- package/build/es/components/Interpretations/common/Message/MessageInput.js +1 -1
- package/build/es/components/OrgUnitDimension/OrgUnitDimension.js +2 -5
- package/build/es/components/OrgUnitDimension/__tests__/OrgUnitDimension.spec.js +57 -0
- package/build/es/components/OrgUnitDimension/__tests__/__snapshots__/OrgUnitDimension.spec.js.snap +94 -0
- package/build/es/components/PeriodDimension/FixedPeriodSelect.js +3 -3
- package/build/es/components/PeriodDimension/PeriodTransfer.js +1 -1
- package/build/es/components/PeriodDimension/__tests__/FixedPeriodSingleSelect.spec.js +1 -1
- package/build/es/components/PeriodDimension/__tests__/PeriodDimension.spec.js +1 -1
- package/build/es/components/PeriodDimension/__tests__/PeriodSelector.spec.js +1 -1
- package/build/es/components/PeriodDimension/utils/fixedPeriods.js +0 -1
- package/build/es/components/PivotTable/PivotTableCell.js +1 -1
- package/build/es/components/PivotTable/PivotTableEmptyCell.js +1 -1
- package/build/es/components/RichText/Editor/__tests__/Editor.spec.js +1 -1
- package/build/es/components/RichText/Parser/__tests__/Parser.spec.js +1 -1
- package/build/es/components/Toolbar/HoverMenuBar/HoverMenuListItem.js +1 -1
- package/build/es/components/Toolbar/HoverMenuBar/__tests__/HoverMenuBar.spec.js +3 -3
- package/build/es/components/Toolbar/HoverMenuBar/__tests__/HoverMenuDropdown.spec.js +2 -2
- package/build/es/components/Toolbar/HoverMenuBar/__tests__/HoverMenuList.spec.js +6 -6
- package/build/es/components/Toolbar/HoverMenuBar/__tests__/HoverMenuListItem.spec.js +4 -4
- package/build/es/components/Toolbar/UpdateButton.js +1 -1
- package/build/es/components/Toolbar/__tests__/InterpretationsAndDetailsToggler.spec.js +5 -5
- package/build/es/components/Toolbar/__tests__/Toolbar.spec.js +2 -2
- package/build/es/components/Toolbar/__tests__/ToolbarSidebar.spec.js +3 -3
- package/build/es/components/Toolbar/__tests__/UpdateButton.spec.js +4 -4
- package/build/es/components/UserMention/UserMentionWrapper.js +0 -1
- package/build/es/locales/lo/translations.json +16 -12
- package/build/es/locales/pt/translations.json +251 -242
- package/build/es/locales/vi/translations.json +16 -12
- package/build/es/locales/zh/translations.json +2 -0
- package/build/es/modules/__tests__/getOuLevelAndGroupText.spec.js +9 -0
- package/build/es/modules/getOuLevelAndGroupText.js +4 -1
- package/build/es/modules/pivotTable/AdaptiveClippingController.js +3 -3
- package/build/es/modules/pivotTable/PivotTableEngine.js +3 -3
- package/build/es/modules/pivotTable/useSortableColumns.js +0 -1
- package/build/es/visualizations/config/adapters/dhis_highcharts/chart/default.js +19 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/chart/index.js +11 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/chart/singleValue.js +12 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/customSVGOptions/index.js +29 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueBackgroundColor.js +6 -0
- package/build/es/visualizations/config/adapters/{dhis_dhis/value/index.js → dhis_highcharts/customSVGOptions/singleValue/getSingleValueFormattedValue.js} +4 -4
- package/build/es/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueLegendColor.js +5 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueSubtext.js +5 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueTextColor.js +14 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueTitleColor.js +20 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/index.js +25 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/events/index.js +16 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/index.js +11 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/addIconElement.js +28 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/checkIfFitsWithinContainer.js +13 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/computeLayoutRect.js +33 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/computeSpacingTop.js +15 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/constants.js +4 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/getAvailableSpace.js +8 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/index.js +41 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/positionElements.js +40 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/styles.js +100 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/exporting.js +23 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/index.js +23 -13
- package/build/es/visualizations/config/adapters/dhis_highcharts/lang.js +11 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/plotOptions.js +3 -3
- package/build/es/visualizations/config/adapters/dhis_highcharts/series/index.js +6 -2
- package/build/es/visualizations/config/adapters/dhis_highcharts/series/scatter.js +2 -2
- package/build/es/visualizations/config/adapters/dhis_highcharts/subtitle/__tests__/singleValue.spec.js +58 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/subtitle/index.js +56 -24
- package/build/es/visualizations/config/adapters/dhis_highcharts/subtitle/singleValue.js +14 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/title/__tests__/singleValue.spec.js +42 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/title/index.js +52 -24
- package/build/es/visualizations/config/adapters/dhis_highcharts/title/singleValue.js +18 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/title/yearOverYear.js +1 -1
- package/build/es/visualizations/config/adapters/dhis_highcharts/type.js +3 -1
- package/build/es/visualizations/config/adapters/dhis_highcharts/xAxis/index.js +2 -1
- package/build/es/visualizations/config/adapters/dhis_highcharts/xAxis/radar.js +2 -2
- package/build/es/visualizations/config/adapters/dhis_highcharts/yAxis/index.js +6 -7
- package/build/es/visualizations/config/adapters/index.js +1 -3
- package/build/es/visualizations/config/generators/highcharts/index.js +4 -0
- package/build/es/visualizations/config/generators/index.js +1 -3
- package/build/es/visualizations/store/adapters/dhis_highcharts/index.js +4 -1
- package/build/es/visualizations/store/adapters/dhis_highcharts/singleValue.js +4 -0
- package/build/es/visualizations/store/adapters/index.js +1 -3
- package/build/es/visualizations/util/shouldUseContrastColor.js +17 -0
- package/package.json +13 -11
- package/build/cjs/visualizations/config/adapters/dhis_dhis/index.js +0 -39
- package/build/cjs/visualizations/config/adapters/dhis_dhis/subtitle/__tests__/index.spec.js +0 -49
- package/build/cjs/visualizations/config/adapters/dhis_dhis/subtitle/__tests__/singleValue.spec.js +0 -15
- package/build/cjs/visualizations/config/adapters/dhis_dhis/subtitle/index.js +0 -34
- package/build/cjs/visualizations/config/adapters/dhis_dhis/subtitle/singleValue.js +0 -11
- package/build/cjs/visualizations/config/adapters/dhis_dhis/title/__tests__/index.spec.js +0 -39
- package/build/cjs/visualizations/config/adapters/dhis_dhis/title/__tests__/singleValue.spec.js +0 -17
- package/build/cjs/visualizations/config/adapters/dhis_dhis/title/index.js +0 -31
- package/build/cjs/visualizations/config/adapters/dhis_dhis/title/singleValue.js +0 -18
- package/build/cjs/visualizations/config/adapters/dhis_dhis/type.js +0 -19
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/chart.js +0 -39
- package/build/cjs/visualizations/config/generators/dhis/index.js +0 -28
- package/build/cjs/visualizations/config/generators/dhis/singleValue.js +0 -359
- package/build/cjs/visualizations/store/adapters/dhis_dhis/index.js +0 -83
- package/build/cjs/visualizations/store/adapters/dhis_dhis/singleValue.js +0 -10
- package/build/es/visualizations/config/adapters/dhis_dhis/index.js +0 -30
- package/build/es/visualizations/config/adapters/dhis_dhis/subtitle/__tests__/index.spec.js +0 -46
- package/build/es/visualizations/config/adapters/dhis_dhis/subtitle/__tests__/singleValue.spec.js +0 -12
- package/build/es/visualizations/config/adapters/dhis_dhis/subtitle/index.js +0 -27
- package/build/es/visualizations/config/adapters/dhis_dhis/subtitle/singleValue.js +0 -4
- package/build/es/visualizations/config/adapters/dhis_dhis/title/__tests__/index.spec.js +0 -36
- package/build/es/visualizations/config/adapters/dhis_dhis/title/__tests__/singleValue.spec.js +0 -14
- package/build/es/visualizations/config/adapters/dhis_dhis/title/index.js +0 -24
- package/build/es/visualizations/config/adapters/dhis_dhis/title/singleValue.js +0 -11
- package/build/es/visualizations/config/adapters/dhis_dhis/type.js +0 -13
- package/build/es/visualizations/config/adapters/dhis_highcharts/chart.js +0 -32
- package/build/es/visualizations/config/generators/dhis/index.js +0 -21
- package/build/es/visualizations/config/generators/dhis/singleValue.js +0 -353
- package/build/es/visualizations/store/adapters/dhis_dhis/index.js +0 -76
- package/build/es/visualizations/store/adapters/dhis_dhis/singleValue.js +0 -4
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { VIS_TYPE_SINGLE_VALUE } from '../../../../modules/visTypes.js';
|
|
2
|
+
import loadSingleValueSVG from './events/loadCustomSVG/singleValue/index.js';
|
|
3
|
+
export default function getExporting(visType) {
|
|
4
|
+
const exporting = {
|
|
5
|
+
// disable exporting context menu
|
|
6
|
+
enabled: false
|
|
7
|
+
};
|
|
8
|
+
switch (visType) {
|
|
9
|
+
case VIS_TYPE_SINGLE_VALUE:
|
|
10
|
+
return {
|
|
11
|
+
...exporting,
|
|
12
|
+
chartOptions: {
|
|
13
|
+
chart: {
|
|
14
|
+
events: {
|
|
15
|
+
load: loadSingleValueSVG
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
default:
|
|
21
|
+
return exporting;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -5,10 +5,13 @@ import { getOutlierHelper } from '../../../../modules/outliers/index.js';
|
|
|
5
5
|
import { isStacked, isLegendSetType, VIS_TYPE_SCATTER, VIS_TYPE_GAUGE, VIS_TYPE_LINE } from '../../../../modules/visTypes.js';
|
|
6
6
|
import { defaultMultiAxisTheme1 } from '../../../util/colors/themes.js';
|
|
7
7
|
import addTrendLines, { isRegressionIneligible } from './addTrendLines.js';
|
|
8
|
-
import getChart from './chart.js';
|
|
8
|
+
import getChart from './chart/index.js';
|
|
9
|
+
import getCustomSVGOptions from './customSVGOptions/index.js';
|
|
10
|
+
import getExporting from './exporting.js';
|
|
9
11
|
import getScatterData from './getScatterData.js';
|
|
10
12
|
import getSortedConfig from './getSortedConfig.js';
|
|
11
13
|
import getTrimmedConfig from './getTrimmedConfig.js';
|
|
14
|
+
import getLang from './lang.js';
|
|
12
15
|
import getLegend from './legend.js';
|
|
13
16
|
import { applyLegendSet, getLegendSetTooltip } from './legendSet.js';
|
|
14
17
|
import getNoData from './noData.js';
|
|
@@ -58,11 +61,11 @@ export default function (_ref) {
|
|
|
58
61
|
}
|
|
59
62
|
let config = {
|
|
60
63
|
// type etc
|
|
61
|
-
chart: getChart(_layout, el, _extraOptions
|
|
64
|
+
chart: getChart(_layout, el, _extraOptions, series),
|
|
62
65
|
// title
|
|
63
|
-
title: getTitle(_layout, store.data[0].metaData, _extraOptions
|
|
66
|
+
title: getTitle(_layout, store.data[0].metaData, _extraOptions, series),
|
|
64
67
|
// subtitle
|
|
65
|
-
subtitle: getSubtitle(series, _layout, store.data[0].metaData, _extraOptions
|
|
68
|
+
subtitle: getSubtitle(series, _layout, store.data[0].metaData, _extraOptions),
|
|
66
69
|
// x-axis
|
|
67
70
|
xAxis: getXAxis(store, _layout, _extraOptions, series),
|
|
68
71
|
// y-axis
|
|
@@ -87,20 +90,26 @@ export default function (_ref) {
|
|
|
87
90
|
// pane
|
|
88
91
|
pane: getPane(_layout.type),
|
|
89
92
|
// no data + zoom
|
|
90
|
-
lang:
|
|
91
|
-
|
|
92
|
-
resetZoom: _extraOptions.resetZoom.text
|
|
93
|
-
},
|
|
94
|
-
noData: getNoData(),
|
|
93
|
+
lang: getLang(_layout.type, _extraOptions),
|
|
94
|
+
noData: getNoData(_layout.type),
|
|
95
95
|
// credits
|
|
96
96
|
credits: {
|
|
97
97
|
enabled: false
|
|
98
98
|
},
|
|
99
99
|
// exporting
|
|
100
|
-
exporting:
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
100
|
+
exporting: getExporting(_layout.type),
|
|
101
|
+
/* The config object passed to the Highcharts Chart constructor
|
|
102
|
+
* can contain arbitrary properties, which are made accessible
|
|
103
|
+
* under the Chart instance's `userOptions` member. This means
|
|
104
|
+
* that in event callback functions the custom SVG options are
|
|
105
|
+
* accessible as `this.userOptions.customSVGOptions` */
|
|
106
|
+
customSVGOptions: getCustomSVGOptions({
|
|
107
|
+
extraConfig,
|
|
108
|
+
layout: _layout,
|
|
109
|
+
extraOptions: _extraOptions,
|
|
110
|
+
metaData: store.data[0].metaData,
|
|
111
|
+
series
|
|
112
|
+
})
|
|
104
113
|
};
|
|
105
114
|
|
|
106
115
|
// get plot options for scatter
|
|
@@ -176,5 +185,6 @@ export default function (_ref) {
|
|
|
176
185
|
|
|
177
186
|
// force apply extra config
|
|
178
187
|
Object.assign(config, extraConfig);
|
|
188
|
+
console.log(objectClean(config));
|
|
179
189
|
return objectClean(config);
|
|
180
190
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { VIS_TYPE_SINGLE_VALUE } from '../../../../modules/visTypes.js';
|
|
2
|
+
export default function getLang(visType, extraOptions) {
|
|
3
|
+
return {
|
|
4
|
+
/* The SingleValue visualization consists of some custom SVG elements
|
|
5
|
+
* rendered on an empty chart. Since the chart is empty, there is never
|
|
6
|
+
* any data and Highcharts will show the noData text. To avoid this we
|
|
7
|
+
* clear the text here. */
|
|
8
|
+
noData: visType === VIS_TYPE_SINGLE_VALUE ? undefined : extraOptions.noData.text,
|
|
9
|
+
resetZoom: extraOptions.resetZoom.text
|
|
10
|
+
};
|
|
11
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import i18n from '../../../../locales/index.js';
|
|
2
2
|
import { VIS_TYPE_COLUMN, VIS_TYPE_SCATTER, VIS_TYPE_STACKED_COLUMN, VIS_TYPE_BAR, VIS_TYPE_STACKED_BAR } from '../../../../modules/visTypes.js';
|
|
3
3
|
const MAX_LABELS = 10;
|
|
4
|
-
export default
|
|
4
|
+
export default _ref => {
|
|
5
5
|
let {
|
|
6
6
|
visType,
|
|
7
7
|
xAxisName,
|
|
@@ -64,6 +64,6 @@ export default (_ref => {
|
|
|
64
64
|
}
|
|
65
65
|
} : {};
|
|
66
66
|
default:
|
|
67
|
-
return
|
|
67
|
+
return null;
|
|
68
68
|
}
|
|
69
|
-
}
|
|
69
|
+
};
|
|
@@ -2,7 +2,7 @@ import { colors } from '@dhis2/ui';
|
|
|
2
2
|
import { hasCustomAxes } from '../../../../../modules/axis.js';
|
|
3
3
|
import { axisHasRelativeItems } from '../../../../../modules/layout/axisHasRelativeItems.js';
|
|
4
4
|
import { getLegendSetByDisplayStrategy } from '../../../../../modules/legends.js';
|
|
5
|
-
import { VIS_TYPE_PIE, VIS_TYPE_GAUGE, isDualAxisType, isYearOverYear, VIS_TYPE_LINE, VIS_TYPE_SCATTER } from '../../../../../modules/visTypes.js';
|
|
5
|
+
import { VIS_TYPE_PIE, VIS_TYPE_GAUGE, isDualAxisType, isYearOverYear, VIS_TYPE_LINE, VIS_TYPE_SCATTER, VIS_TYPE_SINGLE_VALUE } from '../../../../../modules/visTypes.js';
|
|
6
6
|
import { getAxisStringFromId } from '../../../../util/axisId.js';
|
|
7
7
|
import { colorSets, COLOR_SET_PATTERNS } from '../../../../util/colors/colorSets.js';
|
|
8
8
|
import { generateColors } from '../../../../util/colors/gradientColorGenerator.js';
|
|
@@ -153,6 +153,7 @@ function getDefault(_ref) {
|
|
|
153
153
|
return series;
|
|
154
154
|
}
|
|
155
155
|
export default function (_ref2) {
|
|
156
|
+
var _series;
|
|
156
157
|
let {
|
|
157
158
|
series,
|
|
158
159
|
metaData,
|
|
@@ -163,6 +164,9 @@ export default function (_ref2) {
|
|
|
163
164
|
displayStrategy
|
|
164
165
|
} = _ref2;
|
|
165
166
|
switch (layout.type) {
|
|
167
|
+
case VIS_TYPE_SINGLE_VALUE:
|
|
168
|
+
series = [];
|
|
169
|
+
break;
|
|
166
170
|
case VIS_TYPE_PIE:
|
|
167
171
|
series = getPie(series, Object.values(getIdColorMap(series, layout, extraOptions)));
|
|
168
172
|
break;
|
|
@@ -183,7 +187,7 @@ export default function (_ref2) {
|
|
|
183
187
|
displayStrategy
|
|
184
188
|
});
|
|
185
189
|
}
|
|
186
|
-
series.forEach(seriesObj => {
|
|
190
|
+
(_series = series) === null || _series === void 0 ? void 0 : _series.forEach(seriesObj => {
|
|
187
191
|
// animation
|
|
188
192
|
seriesObj.animation = {
|
|
189
193
|
duration: getAnimation(extraOptions.animation, DEFAULT_ANIMATION_DURATION)
|
|
@@ -2,7 +2,7 @@ import i18n from '../../../../../locales/index.js';
|
|
|
2
2
|
const DEFAULT_COLOR = '#a8bf24';
|
|
3
3
|
const OUTLIER_COLOR = 'red';
|
|
4
4
|
const POINT_MARKER_SYMBOL = 'circle';
|
|
5
|
-
export default
|
|
5
|
+
export default extraOptions => {
|
|
6
6
|
const series = [];
|
|
7
7
|
if (extraOptions.outlierHelper) {
|
|
8
8
|
var _helper$vars$normaliz;
|
|
@@ -78,4 +78,4 @@ export default (extraOptions => {
|
|
|
78
78
|
});
|
|
79
79
|
}
|
|
80
80
|
return series;
|
|
81
|
-
}
|
|
81
|
+
};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import getSingleValueSubtitle from '../singleValue.js';
|
|
2
|
+
jest.mock('../../../../../util/getFilterText', () => () => 'The default filter text');
|
|
3
|
+
describe('getSingleValueSubtitle', () => {
|
|
4
|
+
it('returns empty subtitle when flag hideSubtitle exists', () => {
|
|
5
|
+
expect(getSingleValueSubtitle({
|
|
6
|
+
hideSubtitle: true
|
|
7
|
+
})).toEqual('');
|
|
8
|
+
});
|
|
9
|
+
it('returns the subtitle provided in the layout', () => {
|
|
10
|
+
const subtitle = 'The subtitle was already set';
|
|
11
|
+
expect(getSingleValueSubtitle({
|
|
12
|
+
subtitle
|
|
13
|
+
})).toEqual(subtitle);
|
|
14
|
+
});
|
|
15
|
+
it('returns an empty string when layout does not have filters', () => {
|
|
16
|
+
expect(getSingleValueSubtitle({})).toEqual('');
|
|
17
|
+
});
|
|
18
|
+
it('returns the filter text', () => {
|
|
19
|
+
expect(getSingleValueSubtitle({
|
|
20
|
+
filters: []
|
|
21
|
+
})).toEqual('The default filter text');
|
|
22
|
+
});
|
|
23
|
+
describe('not dashboard', () => {
|
|
24
|
+
describe('layout does not include title', () => {
|
|
25
|
+
it('returns empty subtitle', () => {
|
|
26
|
+
expect(getSingleValueSubtitle({
|
|
27
|
+
filters: undefined
|
|
28
|
+
}, {}, false)).toEqual('');
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
/* All these tests have been moved and adjusted from here:
|
|
33
|
+
* src/visualizations/config/adapters/dhis_dhis/title/__tests__`
|
|
34
|
+
* The test below asserted the default subtitle behaviour, for
|
|
35
|
+
* visualization types other than SingleValue. It expected that
|
|
36
|
+
* the title was being used as subtitle. It fails now, and I
|
|
37
|
+
* believe that this behaviour does not make sense. So instead
|
|
38
|
+
* of fixing it, I disabled it. */
|
|
39
|
+
// describe('layout includes title', () => {
|
|
40
|
+
// it('returns filter title as subtitle', () => {
|
|
41
|
+
// expect(
|
|
42
|
+
// getSingleValueSubtitle(
|
|
43
|
+
// { filters: undefined, title: 'Chart title' },
|
|
44
|
+
// {},
|
|
45
|
+
// false
|
|
46
|
+
// )
|
|
47
|
+
// ).toEqual('The default filter text')
|
|
48
|
+
// })
|
|
49
|
+
// })
|
|
50
|
+
});
|
|
51
|
+
describe('dashboard', () => {
|
|
52
|
+
it('returns filter title as subtitle', () => {
|
|
53
|
+
expect(getSingleValueSubtitle({
|
|
54
|
+
filters: {}
|
|
55
|
+
}, {}, true)).toEqual('The default filter text');
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
});
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import isString from 'd2-utilizr/lib/isString';
|
|
2
|
-
import { FONT_STYLE_OPTION_ITALIC, FONT_STYLE_OPTION_BOLD, FONT_STYLE_OPTION_TEXT_COLOR, FONT_STYLE_OPTION_FONT_SIZE, FONT_STYLE_OPTION_TEXT_ALIGN, FONT_STYLE_VISUALIZATION_SUBTITLE, mergeFontStyleWithDefault } from '../../../../../modules/fontStyle.js';
|
|
3
|
-
import { VIS_TYPE_YEAR_OVER_YEAR_LINE, VIS_TYPE_YEAR_OVER_YEAR_COLUMN, isVerticalType, VIS_TYPE_SCATTER } from '../../../../../modules/visTypes.js';
|
|
2
|
+
import { FONT_STYLE_OPTION_ITALIC, FONT_STYLE_OPTION_BOLD, FONT_STYLE_OPTION_TEXT_COLOR, FONT_STYLE_OPTION_FONT_SIZE, FONT_STYLE_OPTION_TEXT_ALIGN, FONT_STYLE_VISUALIZATION_SUBTITLE, mergeFontStyleWithDefault, defaultFontStyle } from '../../../../../modules/fontStyle.js';
|
|
3
|
+
import { VIS_TYPE_YEAR_OVER_YEAR_LINE, VIS_TYPE_YEAR_OVER_YEAR_COLUMN, isVerticalType, VIS_TYPE_SCATTER, VIS_TYPE_SINGLE_VALUE } from '../../../../../modules/visTypes.js';
|
|
4
4
|
import getFilterText from '../../../../util/getFilterText.js';
|
|
5
5
|
import { getTextAlignOption } from '../getTextAlignOption.js';
|
|
6
6
|
import getYearOverYearTitle from '../title/yearOverYear.js';
|
|
7
|
+
import getSingleValueSubtitle, { getSingleValueSubtitleColor } from './singleValue.js';
|
|
7
8
|
const DASHBOARD_SUBTITLE = {
|
|
8
9
|
style: {
|
|
9
10
|
// DHIS2-578: dynamically truncate subtitle when it's taking more than 1 line
|
|
@@ -16,18 +17,33 @@ const DASHBOARD_SUBTITLE = {
|
|
|
16
17
|
}
|
|
17
18
|
};
|
|
18
19
|
function getDefault(layout, dashboard, filterTitle) {
|
|
19
|
-
return
|
|
20
|
-
text: dashboard || isString(layout.title) ? filterTitle : undefined
|
|
21
|
-
};
|
|
20
|
+
return dashboard || isString(layout.title) ? filterTitle : undefined;
|
|
22
21
|
}
|
|
23
|
-
export default function (series, layout, metaData,
|
|
24
|
-
const fontStyle = mergeFontStyleWithDefault(layout.fontStyle && layout.fontStyle[FONT_STYLE_VISUALIZATION_SUBTITLE], FONT_STYLE_VISUALIZATION_SUBTITLE);
|
|
25
|
-
let subtitle = {
|
|
26
|
-
text: undefined
|
|
27
|
-
};
|
|
22
|
+
export default function subtitle(series, layout, metaData, extraOptions) {
|
|
28
23
|
if (layout.hideSubtitle) {
|
|
29
24
|
return null;
|
|
30
25
|
}
|
|
26
|
+
const {
|
|
27
|
+
dashboard,
|
|
28
|
+
legendSets
|
|
29
|
+
} = extraOptions;
|
|
30
|
+
const legendOptions = layout.legend;
|
|
31
|
+
const fontStyle = mergeFontStyleWithDefault(layout.fontStyle && layout.fontStyle[FONT_STYLE_VISUALIZATION_SUBTITLE], FONT_STYLE_VISUALIZATION_SUBTITLE);
|
|
32
|
+
const subtitle = Object.assign({
|
|
33
|
+
text: undefined
|
|
34
|
+
}, dashboard ? DASHBOARD_SUBTITLE : {
|
|
35
|
+
align: getTextAlignOption(fontStyle[FONT_STYLE_OPTION_TEXT_ALIGN], FONT_STYLE_VISUALIZATION_SUBTITLE, isVerticalType(layout.type)),
|
|
36
|
+
style: {
|
|
37
|
+
// DHIS2-578: dynamically truncate subtitle when it's taking more than 1 line
|
|
38
|
+
color: undefined,
|
|
39
|
+
fontSize: `${fontStyle[FONT_STYLE_OPTION_FONT_SIZE]}px`,
|
|
40
|
+
fontWeight: fontStyle[FONT_STYLE_OPTION_BOLD] ? FONT_STYLE_OPTION_BOLD : 'normal',
|
|
41
|
+
fontStyle: fontStyle[FONT_STYLE_OPTION_ITALIC] ? FONT_STYLE_OPTION_ITALIC : 'normal',
|
|
42
|
+
whiteSpace: 'nowrap',
|
|
43
|
+
overflow: 'hidden',
|
|
44
|
+
textOverflow: 'ellipsis'
|
|
45
|
+
}
|
|
46
|
+
});
|
|
31
47
|
|
|
32
48
|
// DHIS2-578: allow for optional custom subtitle
|
|
33
49
|
const customSubtitle = layout.subtitle && layout.displaySubtitle || layout.subtitle;
|
|
@@ -36,6 +52,9 @@ export default function (series, layout, metaData, dashboard) {
|
|
|
36
52
|
} else {
|
|
37
53
|
const filterTitle = getFilterText(layout.filters, metaData);
|
|
38
54
|
switch (layout.type) {
|
|
55
|
+
case VIS_TYPE_SINGLE_VALUE:
|
|
56
|
+
subtitle.text = getSingleValueSubtitle(layout, metaData);
|
|
57
|
+
break;
|
|
39
58
|
case VIS_TYPE_YEAR_OVER_YEAR_LINE:
|
|
40
59
|
case VIS_TYPE_YEAR_OVER_YEAR_COLUMN:
|
|
41
60
|
subtitle.text = getYearOverYearTitle(layout, metaData, Boolean(!dashboard));
|
|
@@ -44,20 +63,33 @@ export default function (series, layout, metaData, dashboard) {
|
|
|
44
63
|
subtitle.text = filterTitle;
|
|
45
64
|
break;
|
|
46
65
|
default:
|
|
47
|
-
subtitle = getDefault(layout, dashboard, filterTitle);
|
|
66
|
+
subtitle.text = getDefault(layout, dashboard, filterTitle);
|
|
48
67
|
}
|
|
49
68
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
69
|
+
switch (layout.type) {
|
|
70
|
+
case VIS_TYPE_SINGLE_VALUE:
|
|
71
|
+
{
|
|
72
|
+
var _defaultFontStyle$FON, _layout$fontStyle, _layout$fontStyle$FON;
|
|
73
|
+
const defaultColor = defaultFontStyle === null || defaultFontStyle === void 0 ? void 0 : (_defaultFontStyle$FON = defaultFontStyle[FONT_STYLE_VISUALIZATION_SUBTITLE]) === null || _defaultFontStyle$FON === void 0 ? void 0 : _defaultFontStyle$FON[FONT_STYLE_OPTION_TEXT_COLOR];
|
|
74
|
+
const customColor = layout === null || layout === void 0 ? void 0 : (_layout$fontStyle = layout.fontStyle) === null || _layout$fontStyle === void 0 ? void 0 : (_layout$fontStyle$FON = _layout$fontStyle[FONT_STYLE_VISUALIZATION_SUBTITLE]) === null || _layout$fontStyle$FON === void 0 ? void 0 : _layout$fontStyle$FON[FONT_STYLE_OPTION_TEXT_COLOR];
|
|
75
|
+
subtitle.style.color = getSingleValueSubtitleColor(customColor, defaultColor, series[0], legendOptions, legendSets);
|
|
76
|
+
if (dashboard) {
|
|
77
|
+
// Single value subtitle text should be multiline
|
|
78
|
+
/* TODO: The default color of the subtitle now is #4a5768 but the
|
|
79
|
+
* original implementation used #666, which is a lighter grey.
|
|
80
|
+
* If we want to keep this color, changes are needed here. */
|
|
81
|
+
Object.assign(subtitle.style, {
|
|
82
|
+
wordWrap: 'normal',
|
|
83
|
+
whiteSpace: 'normal',
|
|
84
|
+
overflow: 'visible',
|
|
85
|
+
textOverflow: 'initial'
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
break;
|
|
90
|
+
default:
|
|
91
|
+
subtitle.style.color = fontStyle[FONT_STYLE_OPTION_TEXT_COLOR];
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
return subtitle;
|
|
63
95
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import getFilterText from '../../../../util/getFilterText.js';
|
|
2
|
+
export { getSingleValueTitleColor as getSingleValueSubtitleColor } from '../customSVGOptions/singleValue/getSingleValueTitleColor.js';
|
|
3
|
+
export default function getSingleValueSubtitle(layout, metaData) {
|
|
4
|
+
if (layout.hideSubtitle || 1 === 0) {
|
|
5
|
+
return '';
|
|
6
|
+
}
|
|
7
|
+
if (typeof layout.subtitle === 'string' && layout.subtitle.length) {
|
|
8
|
+
return layout.subtitle;
|
|
9
|
+
}
|
|
10
|
+
if (layout.filters) {
|
|
11
|
+
return getFilterText(layout.filters, metaData);
|
|
12
|
+
}
|
|
13
|
+
return '';
|
|
14
|
+
}
|
package/build/es/visualizations/config/adapters/dhis_highcharts/title/__tests__/singleValue.spec.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { getSingleValueTitleText } from '../singleValue.js';
|
|
2
|
+
jest.mock('../../../../../util/getFilterText', () => () => 'The filter text');
|
|
3
|
+
describe('getSingleValueTitle', () => {
|
|
4
|
+
it('returns empty title when flag hideTitle exists', () => {
|
|
5
|
+
expect(getSingleValueTitleText({
|
|
6
|
+
hideTitle: true
|
|
7
|
+
})).toEqual('');
|
|
8
|
+
});
|
|
9
|
+
it('returns the title provided in the layout', () => {
|
|
10
|
+
const title = 'The title was already set';
|
|
11
|
+
expect(getSingleValueTitleText({
|
|
12
|
+
title
|
|
13
|
+
})).toEqual(title);
|
|
14
|
+
});
|
|
15
|
+
it('returns null when layout does not have columns', () => {
|
|
16
|
+
expect(getSingleValueTitleText({})).toEqual('');
|
|
17
|
+
});
|
|
18
|
+
it('returns the filter text based on column items', () => {
|
|
19
|
+
expect(getSingleValueTitleText({
|
|
20
|
+
columns: [{
|
|
21
|
+
items: [{}]
|
|
22
|
+
}]
|
|
23
|
+
})).toEqual('The filter text');
|
|
24
|
+
});
|
|
25
|
+
describe('not dashboard', () => {
|
|
26
|
+
it('returns filter text as title', () => {
|
|
27
|
+
expect(getSingleValueTitleText({
|
|
28
|
+
columns: [{
|
|
29
|
+
items: [{}]
|
|
30
|
+
}],
|
|
31
|
+
filters: []
|
|
32
|
+
}, {}, false)).toEqual('The filter text');
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
describe('dashboard', () => {
|
|
36
|
+
it('returns empty string', () => {
|
|
37
|
+
expect(getSingleValueTitleText({
|
|
38
|
+
filters: {}
|
|
39
|
+
}, {}, true)).toEqual('');
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
});
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import isString from 'd2-utilizr/lib/isString';
|
|
2
|
-
import { FONT_STYLE_OPTION_ITALIC, FONT_STYLE_OPTION_BOLD, FONT_STYLE_OPTION_TEXT_COLOR, FONT_STYLE_OPTION_FONT_SIZE, FONT_STYLE_OPTION_TEXT_ALIGN, FONT_STYLE_VISUALIZATION_TITLE, mergeFontStyleWithDefault } from '../../../../../modules/fontStyle.js';
|
|
3
|
-
import { VIS_TYPE_YEAR_OVER_YEAR_LINE, VIS_TYPE_YEAR_OVER_YEAR_COLUMN, VIS_TYPE_GAUGE, isVerticalType, VIS_TYPE_SCATTER } from '../../../../../modules/visTypes.js';
|
|
2
|
+
import { FONT_STYLE_OPTION_ITALIC, FONT_STYLE_OPTION_BOLD, FONT_STYLE_OPTION_TEXT_COLOR, FONT_STYLE_OPTION_FONT_SIZE, FONT_STYLE_OPTION_TEXT_ALIGN, FONT_STYLE_VISUALIZATION_TITLE, mergeFontStyleWithDefault, defaultFontStyle } from '../../../../../modules/fontStyle.js';
|
|
3
|
+
import { VIS_TYPE_YEAR_OVER_YEAR_LINE, VIS_TYPE_YEAR_OVER_YEAR_COLUMN, VIS_TYPE_GAUGE, isVerticalType, VIS_TYPE_SCATTER, VIS_TYPE_SINGLE_VALUE } from '../../../../../modules/visTypes.js';
|
|
4
4
|
import getFilterText from '../../../../util/getFilterText.js';
|
|
5
5
|
import { getTextAlignOption } from '../getTextAlignOption.js';
|
|
6
6
|
import getScatterTitle from './scatter.js';
|
|
7
|
+
import { getSingleValueTitleColor, getSingleValueTitleText } from './singleValue.js';
|
|
7
8
|
import getYearOverYearTitle from './yearOverYear.js';
|
|
8
9
|
const DASHBOARD_TITLE_STYLE = {
|
|
9
10
|
margin: 15,
|
|
@@ -23,19 +24,41 @@ function getDefault(layout, metaData, dashboard) {
|
|
|
23
24
|
}
|
|
24
25
|
return null;
|
|
25
26
|
}
|
|
26
|
-
export default function (layout, metaData,
|
|
27
|
-
const fontStyle = mergeFontStyleWithDefault(layout.fontStyle && layout.fontStyle[FONT_STYLE_VISUALIZATION_TITLE], FONT_STYLE_VISUALIZATION_TITLE);
|
|
28
|
-
const title = {
|
|
29
|
-
text: undefined
|
|
30
|
-
};
|
|
27
|
+
export default function (layout, metaData, extraOptions, series) {
|
|
31
28
|
if (layout.hideTitle) {
|
|
32
|
-
return
|
|
29
|
+
return {
|
|
30
|
+
text: undefined
|
|
31
|
+
};
|
|
33
32
|
}
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
const {
|
|
34
|
+
dashboard,
|
|
35
|
+
legendSets
|
|
36
|
+
} = extraOptions;
|
|
37
|
+
const legendOptions = layout.legend;
|
|
38
|
+
const fontStyle = mergeFontStyleWithDefault(layout.fontStyle && layout.fontStyle[FONT_STYLE_VISUALIZATION_TITLE], FONT_STYLE_VISUALIZATION_TITLE);
|
|
39
|
+
const title = Object.assign({
|
|
40
|
+
text: undefined
|
|
41
|
+
}, dashboard ? DASHBOARD_TITLE_STYLE : {
|
|
42
|
+
margin: 30,
|
|
43
|
+
align: getTextAlignOption(fontStyle[FONT_STYLE_OPTION_TEXT_ALIGN], FONT_STYLE_VISUALIZATION_TITLE, isVerticalType(layout.type)),
|
|
44
|
+
style: {
|
|
45
|
+
color: undefined,
|
|
46
|
+
fontSize: `${fontStyle[FONT_STYLE_OPTION_FONT_SIZE]}px`,
|
|
47
|
+
fontWeight: fontStyle[FONT_STYLE_OPTION_BOLD] ? FONT_STYLE_OPTION_BOLD : 'normal',
|
|
48
|
+
fontStyle: fontStyle[FONT_STYLE_OPTION_ITALIC] ? FONT_STYLE_OPTION_ITALIC : 'normal',
|
|
49
|
+
whiteSpace: 'nowrap',
|
|
50
|
+
overflow: 'hidden',
|
|
51
|
+
textOverflow: 'ellipsis'
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
const customTitleText = layout.title && layout.displayTitle || layout.title;
|
|
55
|
+
if (isString(customTitleText) && customTitleText.length) {
|
|
56
|
+
title.text = customTitleText;
|
|
37
57
|
} else {
|
|
38
58
|
switch (layout.type) {
|
|
59
|
+
case VIS_TYPE_SINGLE_VALUE:
|
|
60
|
+
title.text = getSingleValueTitleText(layout, metaData, dashboard);
|
|
61
|
+
break;
|
|
39
62
|
case VIS_TYPE_GAUGE:
|
|
40
63
|
case VIS_TYPE_YEAR_OVER_YEAR_LINE:
|
|
41
64
|
case VIS_TYPE_YEAR_OVER_YEAR_COLUMN:
|
|
@@ -49,17 +72,22 @@ export default function (layout, metaData, dashboard) {
|
|
|
49
72
|
break;
|
|
50
73
|
}
|
|
51
74
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
75
|
+
switch (layout.type) {
|
|
76
|
+
case VIS_TYPE_SINGLE_VALUE:
|
|
77
|
+
{
|
|
78
|
+
var _defaultFontStyle$FON, _layout$fontStyle, _layout$fontStyle$FON;
|
|
79
|
+
const defaultColor = defaultFontStyle === null || defaultFontStyle === void 0 ? void 0 : (_defaultFontStyle$FON = defaultFontStyle[FONT_STYLE_VISUALIZATION_TITLE]) === null || _defaultFontStyle$FON === void 0 ? void 0 : _defaultFontStyle$FON[FONT_STYLE_OPTION_TEXT_COLOR];
|
|
80
|
+
const customColor = layout === null || layout === void 0 ? void 0 : (_layout$fontStyle = layout.fontStyle) === null || _layout$fontStyle === void 0 ? void 0 : (_layout$fontStyle$FON = _layout$fontStyle[FONT_STYLE_VISUALIZATION_TITLE]) === null || _layout$fontStyle$FON === void 0 ? void 0 : _layout$fontStyle$FON[FONT_STYLE_OPTION_TEXT_COLOR];
|
|
81
|
+
title.style.color = getSingleValueTitleColor(customColor, defaultColor, series[0], legendOptions, legendSets);
|
|
82
|
+
if (dashboard) {
|
|
83
|
+
// TODO: is this always what we want?
|
|
84
|
+
title.style.fontWeight = 'normal';
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
break;
|
|
88
|
+
default:
|
|
89
|
+
title.style.color = fontStyle[FONT_STYLE_OPTION_TEXT_COLOR];
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
return title;
|
|
65
93
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import getFilterText from '../../../../util/getFilterText.js';
|
|
2
|
+
export { getSingleValueTitleColor } from '../customSVGOptions/singleValue/getSingleValueTitleColor.js';
|
|
3
|
+
export function getSingleValueTitleText(layout, metaData) {
|
|
4
|
+
if (layout.hideTitle) {
|
|
5
|
+
return '';
|
|
6
|
+
}
|
|
7
|
+
if (typeof layout.title === 'string' && layout.title.length) {
|
|
8
|
+
return layout.title;
|
|
9
|
+
}
|
|
10
|
+
if (layout.columns) {
|
|
11
|
+
const firstItem = layout.columns[0].items[0];
|
|
12
|
+
const column = Object.assign({}, layout.columns[0], {
|
|
13
|
+
items: [firstItem]
|
|
14
|
+
});
|
|
15
|
+
return getFilterText([column], metaData);
|
|
16
|
+
}
|
|
17
|
+
return '';
|
|
18
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import getFilterText from '../../../../util/getFilterText.js';
|
|
2
|
-
export default function (layout, metaData, dashboard) {
|
|
2
|
+
export default function yearOverYear(layout, metaData, dashboard) {
|
|
3
3
|
const titleFragments = [];
|
|
4
4
|
if (layout.columns && layout.columns.length && !dashboard) {
|
|
5
5
|
titleFragments.push(getFilterText(layout.columns, metaData));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { VIS_TYPE_BAR, VIS_TYPE_STACKED_BAR, VIS_TYPE_LINE, VIS_TYPE_YEAR_OVER_YEAR_LINE, VIS_TYPE_AREA, VIS_TYPE_STACKED_AREA, VIS_TYPE_PIE, VIS_TYPE_RADAR, VIS_TYPE_GAUGE, VIS_TYPE_COLUMN, VIS_TYPE_STACKED_COLUMN, VIS_TYPE_YEAR_OVER_YEAR_COLUMN, VIS_TYPE_SCATTER } from '../../../../modules/visTypes.js';
|
|
1
|
+
import { VIS_TYPE_BAR, VIS_TYPE_STACKED_BAR, VIS_TYPE_LINE, VIS_TYPE_YEAR_OVER_YEAR_LINE, VIS_TYPE_AREA, VIS_TYPE_STACKED_AREA, VIS_TYPE_PIE, VIS_TYPE_RADAR, VIS_TYPE_GAUGE, VIS_TYPE_COLUMN, VIS_TYPE_STACKED_COLUMN, VIS_TYPE_YEAR_OVER_YEAR_COLUMN, VIS_TYPE_SCATTER, VIS_TYPE_SINGLE_VALUE } from '../../../../modules/visTypes.js';
|
|
2
2
|
export default function (type) {
|
|
3
3
|
switch (type) {
|
|
4
4
|
case VIS_TYPE_BAR:
|
|
@@ -34,6 +34,8 @@ export default function (type) {
|
|
|
34
34
|
type: 'scatter',
|
|
35
35
|
zoomType: 'xy'
|
|
36
36
|
};
|
|
37
|
+
case VIS_TYPE_SINGLE_VALUE:
|
|
38
|
+
return {};
|
|
37
39
|
case VIS_TYPE_COLUMN:
|
|
38
40
|
case VIS_TYPE_STACKED_COLUMN:
|
|
39
41
|
case VIS_TYPE_YEAR_OVER_YEAR_COLUMN:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import objectClean from 'd2-utilizr/lib/objectClean';
|
|
2
2
|
import { FONT_STYLE_HORIZONTAL_AXIS_TITLE, FONT_STYLE_AXIS_LABELS, FONT_STYLE_OPTION_TEXT_COLOR, FONT_STYLE_OPTION_FONT_SIZE, FONT_STYLE_OPTION_BOLD, FONT_STYLE_OPTION_ITALIC, mergeFontStyleWithDefault } from '../../../../../modules/fontStyle.js';
|
|
3
|
-
import { VIS_TYPE_GAUGE, VIS_TYPE_YEAR_OVER_YEAR_LINE, VIS_TYPE_YEAR_OVER_YEAR_COLUMN, VIS_TYPE_PIE, VIS_TYPE_RADAR, VIS_TYPE_SCATTER, isTwoCategoryChartType } from '../../../../../modules/visTypes.js';
|
|
3
|
+
import { VIS_TYPE_GAUGE, VIS_TYPE_YEAR_OVER_YEAR_LINE, VIS_TYPE_YEAR_OVER_YEAR_COLUMN, VIS_TYPE_PIE, VIS_TYPE_RADAR, VIS_TYPE_SCATTER, isTwoCategoryChartType, VIS_TYPE_SINGLE_VALUE } from '../../../../../modules/visTypes.js';
|
|
4
4
|
import { getAxis } from '../../../../util/axes.js';
|
|
5
5
|
import getAxisTitle from '../getAxisTitle.js';
|
|
6
6
|
import getCategories from '../getCategories.js';
|
|
@@ -44,6 +44,7 @@ export default function (store, layout, extraOptions, series) {
|
|
|
44
44
|
switch (layout.type) {
|
|
45
45
|
case VIS_TYPE_PIE:
|
|
46
46
|
case VIS_TYPE_GAUGE:
|
|
47
|
+
case VIS_TYPE_SINGLE_VALUE:
|
|
47
48
|
xAxis = noAxis();
|
|
48
49
|
break;
|
|
49
50
|
case VIS_TYPE_YEAR_OVER_YEAR_LINE:
|
|
@@ -3,11 +3,11 @@ import { FONT_STYLE_HORIZONTAL_AXIS_TITLE, TEXT_ALIGN_CENTER } from '../../../..
|
|
|
3
3
|
import { isVerticalType, VIS_TYPE_RADAR } from '../../../../../modules/visTypes.js';
|
|
4
4
|
import { getTextAlignOption } from '../getTextAlignOption.js';
|
|
5
5
|
import { getDefault } from './index.js';
|
|
6
|
-
export default (
|
|
6
|
+
export default (store, layout) => {
|
|
7
7
|
var _config$title;
|
|
8
8
|
const config = getDefault(store, layout);
|
|
9
9
|
if (isString((_config$title = config.title) === null || _config$title === void 0 ? void 0 : _config$title.text) && config.title.align === getTextAlignOption(TEXT_ALIGN_CENTER, FONT_STYLE_HORIZONTAL_AXIS_TITLE, isVerticalType(VIS_TYPE_RADAR))) {
|
|
10
10
|
config.title.textAlign = 'right';
|
|
11
11
|
}
|
|
12
12
|
return config;
|
|
13
|
-
}
|
|
13
|
+
};
|
|
@@ -2,7 +2,7 @@ import arrayClean from 'd2-utilizr/lib/arrayClean';
|
|
|
2
2
|
import objectClean from 'd2-utilizr/lib/objectClean';
|
|
3
3
|
import i18n from '../../../../../locales/index.js';
|
|
4
4
|
import { FONT_STYLE_VERTICAL_AXIS_TITLE, mergeFontStyleWithDefault, TEXT_ALIGN_RIGHT } from '../../../../../modules/fontStyle.js';
|
|
5
|
-
import { isDualAxisType, isStacked, VIS_TYPE_GAUGE, VIS_TYPE_SCATTER } from '../../../../../modules/visTypes.js';
|
|
5
|
+
import { isDualAxisType, isStacked, VIS_TYPE_GAUGE, VIS_TYPE_SCATTER, VIS_TYPE_SINGLE_VALUE } from '../../../../../modules/visTypes.js';
|
|
6
6
|
import { getAxis } from '../../../../util/axes.js';
|
|
7
7
|
import { getAxisStringFromId } from '../../../../util/axisId.js';
|
|
8
8
|
import { getGridLineColor, getLabels, getMaxValue, getMinValue, getRegressionLine } from '../axis.js';
|
|
@@ -99,14 +99,13 @@ function getDefault(layout, series, extraOptions) {
|
|
|
99
99
|
});
|
|
100
100
|
return axes;
|
|
101
101
|
}
|
|
102
|
-
export default function (layout, series, extraOptions) {
|
|
103
|
-
let yAxis;
|
|
102
|
+
export default function yAxis(layout, series, extraOptions) {
|
|
104
103
|
switch (layout.type) {
|
|
104
|
+
case VIS_TYPE_SINGLE_VALUE:
|
|
105
|
+
return null;
|
|
105
106
|
case VIS_TYPE_GAUGE:
|
|
106
|
-
|
|
107
|
-
break;
|
|
107
|
+
return getGauge(layout, series, extraOptions.legendSets[0]);
|
|
108
108
|
default:
|
|
109
|
-
|
|
109
|
+
return getDefault(layout, series, extraOptions);
|
|
110
110
|
}
|
|
111
|
-
return yAxis;
|
|
112
111
|
}
|
|
@@ -13,6 +13,10 @@ HNDTD(H);
|
|
|
13
13
|
HE(H);
|
|
14
14
|
HPF(H);
|
|
15
15
|
HB(H);
|
|
16
|
+
|
|
17
|
+
/* Whitelist some additional SVG attributes here. Without this,
|
|
18
|
+
* the PDF export for the SingleValue visualization breaks. */
|
|
19
|
+
H.AST.allowedAttributes.push('fill-rule', 'clip-rule');
|
|
16
20
|
function drawLegendSymbolWrap() {
|
|
17
21
|
const pick = H.pick;
|
|
18
22
|
H.wrap(H.seriesTypes.column.prototype, 'drawLegendSymbol', function (proceed, legend, item) {
|