@hisptz/dhis2-analytics 2.0.6 → 2.0.8
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/dist/components/ChartAnalytics/ChartAnalytics.stories.js +11 -1
- package/dist/components/ChartAnalytics/ChartAnalytics.stories.js.map +1 -1
- package/dist/components/ChartAnalytics/models/index.js +16 -1
- package/dist/components/ChartAnalytics/models/index.js.map +1 -1
- package/dist/components/DHIS2PivotTable/DHIS2PivotTable.js.map +1 -1
- package/dist/components/DHIS2PivotTable/components/TableHeaders/index.js +10 -2
- package/dist/components/DHIS2PivotTable/components/TableHeaders/index.js.map +1 -1
- package/dist/components/DHIS2PivotTable/services/engine.js +22 -0
- package/dist/components/DHIS2PivotTable/services/engine.js.map +1 -1
- package/dist/components/Map/DHIS2Map.js +7 -7
- package/dist/components/Map/DHIS2Map.js.map +1 -1
- package/dist/components/SingleValueContainer/SingleValueContainer.stories.js +38 -0
- package/dist/components/SingleValueContainer/SingleValueContainer.stories.js.map +1 -1
- package/dist/components/SingleValueContainer/SingleValueVisualizer.js +3 -1
- package/dist/components/SingleValueContainer/SingleValueVisualizer.js.map +1 -1
- package/dist/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.js +3 -1
- package/dist/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.js.map +1 -1
- package/dist/components/SingleValueContainer/index.js +7 -0
- package/dist/components/SingleValueContainer/index.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/ChartAnalytics.stories.js +11 -1
- package/dist/esm/components/ChartAnalytics/ChartAnalytics.stories.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/models/index.js +16 -1
- package/dist/esm/components/ChartAnalytics/models/index.js.map +1 -1
- package/dist/esm/components/DHIS2PivotTable/DHIS2PivotTable.js.map +1 -1
- package/dist/esm/components/DHIS2PivotTable/components/TableHeaders/index.js +10 -2
- package/dist/esm/components/DHIS2PivotTable/components/TableHeaders/index.js.map +1 -1
- package/dist/esm/components/DHIS2PivotTable/services/engine.js +23 -1
- package/dist/esm/components/DHIS2PivotTable/services/engine.js.map +1 -1
- package/dist/esm/components/Map/DHIS2Map.js +6 -6
- package/dist/esm/components/Map/DHIS2Map.js.map +1 -1
- package/dist/esm/components/SingleValueContainer/SingleValueContainer.stories.js +38 -1
- package/dist/esm/components/SingleValueContainer/SingleValueContainer.stories.js.map +1 -1
- package/dist/esm/components/SingleValueContainer/SingleValueVisualizer.js +3 -1
- package/dist/esm/components/SingleValueContainer/SingleValueVisualizer.js.map +1 -1
- package/dist/esm/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.js +3 -1
- package/dist/esm/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.js.map +1 -1
- package/dist/esm/components/SingleValueContainer/index.js +1 -0
- package/dist/esm/components/SingleValueContainer/index.js.map +1 -1
- package/package.json +4 -4
- package/dist/types/components/ChartAnalytics/DHIS2Chart.d.ts +0 -26
- package/dist/types/components/ChartAnalytics/DHIS2Chart.d.ts.map +0 -1
- package/dist/types/components/ChartAnalytics/components/DownloadMenu/components/Menu.d.ts +0 -8
- package/dist/types/components/ChartAnalytics/components/DownloadMenu/components/Menu.d.ts.map +0 -1
- package/dist/types/components/ChartAnalytics/components/DownloadMenu/constants/menu.d.ts +0 -8
- package/dist/types/components/ChartAnalytics/components/DownloadMenu/constants/menu.d.ts.map +0 -1
- package/dist/types/components/ChartAnalytics/components/DownloadMenu/index.d.ts +0 -9
- package/dist/types/components/ChartAnalytics/components/DownloadMenu/index.d.ts.map +0 -1
- package/dist/types/components/ChartAnalytics/components/DownloadMenu/interfaces/menu.d.ts +0 -2
- package/dist/types/components/ChartAnalytics/components/DownloadMenu/interfaces/menu.d.ts.map +0 -1
- package/dist/types/components/ChartAnalytics/hooks/useChart.d.ts +0 -12
- package/dist/types/components/ChartAnalytics/hooks/useChart.d.ts.map +0 -1
- package/dist/types/components/ChartAnalytics/index.d.ts +0 -2
- package/dist/types/components/ChartAnalytics/index.d.ts.map +0 -1
- package/dist/types/components/ChartAnalytics/models/bar.d.ts +0 -9
- package/dist/types/components/ChartAnalytics/models/bar.d.ts.map +0 -1
- package/dist/types/components/ChartAnalytics/models/column.d.ts +0 -13
- package/dist/types/components/ChartAnalytics/models/column.d.ts.map +0 -1
- package/dist/types/components/ChartAnalytics/models/index.d.ts +0 -18
- package/dist/types/components/ChartAnalytics/models/index.d.ts.map +0 -1
- package/dist/types/components/ChartAnalytics/models/line.d.ts +0 -9
- package/dist/types/components/ChartAnalytics/models/line.d.ts.map +0 -1
- package/dist/types/components/ChartAnalytics/models/multi-series.d.ts +0 -10
- package/dist/types/components/ChartAnalytics/models/multi-series.d.ts.map +0 -1
- package/dist/types/components/ChartAnalytics/models/pie.d.ts +0 -9
- package/dist/types/components/ChartAnalytics/models/pie.d.ts.map +0 -1
- package/dist/types/components/ChartAnalytics/services/export.d.ts +0 -9
- package/dist/types/components/ChartAnalytics/services/export.d.ts.map +0 -1
- package/dist/types/components/ChartAnalytics/types/props.d.ts +0 -46
- package/dist/types/components/ChartAnalytics/types/props.d.ts.map +0 -1
- package/dist/types/components/ChartAnalytics/utils/chart.d.ts +0 -16
- package/dist/types/components/ChartAnalytics/utils/chart.d.ts.map +0 -1
- package/dist/types/components/CircularProgressDashboard/CircularProgressIndicator.d.ts +0 -6
- package/dist/types/components/CircularProgressDashboard/CircularProgressIndicator.d.ts.map +0 -1
- package/dist/types/components/CircularProgressDashboard/index.d.ts +0 -3
- package/dist/types/components/CircularProgressDashboard/index.d.ts.map +0 -1
- package/dist/types/components/CircularProgressDashboard/types/props.d.ts +0 -18
- package/dist/types/components/CircularProgressDashboard/types/props.d.ts.map +0 -1
- package/dist/types/components/DHIS2PivotTable/DHIS2PivotTable.d.ts +0 -38
- package/dist/types/components/DHIS2PivotTable/DHIS2PivotTable.d.ts.map +0 -1
- package/dist/types/components/DHIS2PivotTable/components/Table/index.d.ts +0 -10
- package/dist/types/components/DHIS2PivotTable/components/Table/index.d.ts.map +0 -1
- package/dist/types/components/DHIS2PivotTable/components/TableBody/index.d.ts +0 -2
- package/dist/types/components/DHIS2PivotTable/components/TableBody/index.d.ts.map +0 -1
- package/dist/types/components/DHIS2PivotTable/components/TableHeaders/index.d.ts +0 -2
- package/dist/types/components/DHIS2PivotTable/components/TableHeaders/index.d.ts.map +0 -1
- package/dist/types/components/DHIS2PivotTable/index.d.ts +0 -3
- package/dist/types/components/DHIS2PivotTable/index.d.ts.map +0 -1
- package/dist/types/components/DHIS2PivotTable/interfaces/index.d.ts +0 -2
- package/dist/types/components/DHIS2PivotTable/interfaces/index.d.ts.map +0 -1
- package/dist/types/components/DHIS2PivotTable/services/engine.d.ts +0 -59
- package/dist/types/components/DHIS2PivotTable/services/engine.d.ts.map +0 -1
- package/dist/types/components/DHIS2PivotTable/state/engine.d.ts +0 -8
- package/dist/types/components/DHIS2PivotTable/state/engine.d.ts.map +0 -1
- package/dist/types/components/Map/DHIS2Map.d.ts +0 -9
- package/dist/types/components/Map/DHIS2Map.d.ts.map +0 -1
- package/dist/types/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.d.ts +0 -10
- package/dist/types/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.d.ts.map +0 -1
- package/dist/types/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.d.ts +0 -9
- package/dist/types/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.d.ts.map +0 -1
- package/dist/types/components/Map/components/EarthEngineLayerConfiguration/components/AggregationSelector.d.ts +0 -2
- package/dist/types/components/Map/components/EarthEngineLayerConfiguration/components/AggregationSelector.d.ts.map +0 -1
- package/dist/types/components/Map/components/EarthEngineLayerConfiguration/components/ColorConfig.d.ts +0 -2
- package/dist/types/components/Map/components/EarthEngineLayerConfiguration/components/ColorConfig.d.ts.map +0 -1
- package/dist/types/components/Map/components/EarthEngineLayerConfiguration/components/Name.d.ts +0 -2
- package/dist/types/components/Map/components/EarthEngineLayerConfiguration/components/Name.d.ts.map +0 -1
- package/dist/types/components/Map/components/EarthEngineLayerConfiguration/components/PeriodSelector.d.ts +0 -2
- package/dist/types/components/Map/components/EarthEngineLayerConfiguration/components/PeriodSelector.d.ts.map +0 -1
- package/dist/types/components/Map/components/EarthEngineLayerConfiguration/components/StylesConfig.d.ts +0 -2
- package/dist/types/components/Map/components/EarthEngineLayerConfiguration/components/StylesConfig.d.ts.map +0 -1
- package/dist/types/components/Map/components/EarthEngineLayerConfiguration/components/TypeField.d.ts +0 -4
- package/dist/types/components/Map/components/EarthEngineLayerConfiguration/components/TypeField.d.ts.map +0 -1
- package/dist/types/components/Map/components/EarthEngineLayerConfiguration/hooks/data.d.ts +0 -8
- package/dist/types/components/Map/components/EarthEngineLayerConfiguration/hooks/data.d.ts.map +0 -1
- package/dist/types/components/Map/components/EarthEngineLayerConfiguration/index.d.ts +0 -3
- package/dist/types/components/Map/components/EarthEngineLayerConfiguration/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapArea/index.d.ts +0 -6
- package/dist/types/components/Map/components/MapArea/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapArea/interfaces/index.d.ts +0 -31
- package/dist/types/components/Map/components/MapArea/interfaces/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapControls/components/CustomControl/index.d.ts +0 -8
- package/dist/types/components/Map/components/MapControls/components/CustomControl/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapControls/components/DownloadControl/index.d.ts +0 -8
- package/dist/types/components/Map/components/MapControls/components/DownloadControl/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapControls/components/FullscreenControl/index.d.ts +0 -6
- package/dist/types/components/Map/components/MapControls/components/FullscreenControl/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapControls/index.d.ts +0 -6
- package/dist/types/components/Map/components/MapControls/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapLayer/components/BoundaryLayer/hooks/useBoundaryData.d.ts +0 -2
- package/dist/types/components/Map/components/MapLayer/components/BoundaryLayer/hooks/useBoundaryData.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapLayer/components/BoundaryLayer/index.d.ts +0 -15
- package/dist/types/components/Map/components/MapLayer/components/BoundaryLayer/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapLayer/components/GoogleEngineLayer/components/EarthEngineLegend.d.ts +0 -18
- package/dist/types/components/Map/components/MapLayer/components/GoogleEngineLayer/components/EarthEngineLegend.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapLayer/components/GoogleEngineLayer/constants/index.d.ts +0 -5
- package/dist/types/components/Map/components/MapLayer/components/GoogleEngineLayer/constants/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapLayer/components/GoogleEngineLayer/hooks/index.d.ts +0 -10
- package/dist/types/components/Map/components/MapLayer/components/GoogleEngineLayer/hooks/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapLayer/components/GoogleEngineLayer/index.d.ts +0 -4
- package/dist/types/components/Map/components/MapLayer/components/GoogleEngineLayer/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapLayer/components/GoogleEngineLayer/interfaces/index.d.ts +0 -59
- package/dist/types/components/Map/components/MapLayer/components/GoogleEngineLayer/interfaces/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapLayer/components/GoogleEngineLayer/services/engine.d.ts +0 -56
- package/dist/types/components/Map/components/MapLayer/components/GoogleEngineLayer/services/engine.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapLayer/components/GoogleEngineLayer/utils/index.d.ts +0 -21
- package/dist/types/components/Map/components/MapLayer/components/GoogleEngineLayer/utils/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.d.ts +0 -6
- package/dist/types/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapLayer/components/LegendArea/index.d.ts +0 -9
- package/dist/types/components/Map/components/MapLayer/components/LegendArea/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapLayer/components/PointLayer/components/PointLegend/index.d.ts +0 -4
- package/dist/types/components/Map/components/MapLayer/components/PointLayer/components/PointLegend/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapLayer/components/PointLayer/hooks/index.d.ts +0 -3
- package/dist/types/components/Map/components/MapLayer/components/PointLayer/hooks/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapLayer/components/PointLayer/index.d.ts +0 -2
- package/dist/types/components/Map/components/MapLayer/components/PointLayer/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubble.d.ts +0 -13
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubble.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubbles.d.ts +0 -11
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubbles.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/index.d.ts +0 -17
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/index.d.ts +0 -22
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.d.ts +0 -22
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.d.ts +0 -17
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.d.ts +0 -5
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/hooks/config.d.ts +0 -3
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/hooks/config.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/index.d.ts +0 -5
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapLayer/index.d.ts +0 -6
- package/dist/types/components/Map/components/MapLayer/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapLayer/interfaces/index.d.ts +0 -136
- package/dist/types/components/Map/components/MapLayer/interfaces/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapProvider/components/MapLayerProvider/hooks/index.d.ts +0 -10
- package/dist/types/components/Map/components/MapProvider/components/MapLayerProvider/hooks/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapProvider/components/MapLayerProvider/index.d.ts +0 -7
- package/dist/types/components/Map/components/MapProvider/components/MapLayerProvider/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapProvider/hooks/index.d.ts +0 -16
- package/dist/types/components/Map/components/MapProvider/hooks/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapProvider/index.d.ts +0 -3
- package/dist/types/components/Map/components/MapProvider/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/MapUpdater/index.d.ts +0 -5
- package/dist/types/components/Map/components/MapUpdater/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfigModal.d.ts +0 -3
- package/dist/types/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfigModal.d.ts.map +0 -1
- package/dist/types/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.d.ts +0 -3
- package/dist/types/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.d.ts.map +0 -1
- package/dist/types/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/components/ColorScale/index.d.ts +0 -8
- package/dist/types/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/components/ColorScale/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/constants/colors.d.ts +0 -420
- package/dist/types/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/constants/colors.d.ts.map +0 -1
- package/dist/types/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/index.d.ts +0 -9
- package/dist/types/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/utils/colors.d.ts +0 -12
- package/dist/types/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/utils/colors.d.ts.map +0 -1
- package/dist/types/components/Map/components/ThematicLayerConfiguration/components/CustomLegend/index.d.ts +0 -2
- package/dist/types/components/Map/components/ThematicLayerConfiguration/components/CustomLegend/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/ThematicLayerConfiguration/components/IndicatorSelectorModal/index.d.ts +0 -8
- package/dist/types/components/Map/components/ThematicLayerConfiguration/components/IndicatorSelectorModal/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/ThematicLayerConfiguration/components/LegendSetSelector/index.d.ts +0 -9
- package/dist/types/components/Map/components/ThematicLayerConfiguration/components/LegendSetSelector/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/ThematicLayerConfiguration/components/RadiusField.d.ts +0 -2
- package/dist/types/components/Map/components/ThematicLayerConfiguration/components/RadiusField.d.ts.map +0 -1
- package/dist/types/components/Map/components/ThematicLayerConfiguration/components/TypeField.d.ts +0 -2
- package/dist/types/components/Map/components/ThematicLayerConfiguration/components/TypeField.d.ts.map +0 -1
- package/dist/types/components/Map/components/ThematicLayerConfiguration/index.d.ts +0 -4
- package/dist/types/components/Map/components/ThematicLayerConfiguration/index.d.ts.map +0 -1
- package/dist/types/components/Map/components/ThematicLayerConfiguration/types/index.d.ts +0 -15
- package/dist/types/components/Map/components/ThematicLayerConfiguration/types/index.d.ts.map +0 -1
- package/dist/types/components/Map/constants/colors.d.ts +0 -422
- package/dist/types/components/Map/constants/colors.d.ts.map +0 -1
- package/dist/types/components/Map/constants/legendSet.d.ts +0 -8
- package/dist/types/components/Map/constants/legendSet.d.ts.map +0 -1
- package/dist/types/components/Map/hooks/map.d.ts +0 -10
- package/dist/types/components/Map/hooks/map.d.ts.map +0 -1
- package/dist/types/components/Map/index.d.ts +0 -6
- package/dist/types/components/Map/index.d.ts.map +0 -1
- package/dist/types/components/Map/interfaces/index.d.ts +0 -75
- package/dist/types/components/Map/interfaces/index.d.ts.map +0 -1
- package/dist/types/components/Map/state/index.d.ts +0 -21
- package/dist/types/components/Map/state/index.d.ts.map +0 -1
- package/dist/types/components/Map/utils/colors.d.ts +0 -13
- package/dist/types/components/Map/utils/colors.d.ts.map +0 -1
- package/dist/types/components/Map/utils/helpers.d.ts +0 -7
- package/dist/types/components/Map/utils/helpers.d.ts.map +0 -1
- package/dist/types/components/Map/utils/map.d.ts +0 -41
- package/dist/types/components/Map/utils/map.d.ts.map +0 -1
- package/dist/types/components/SingleValueContainer/SingleValueVisualizer.d.ts +0 -11
- package/dist/types/components/SingleValueContainer/SingleValueVisualizer.d.ts.map +0 -1
- package/dist/types/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.d.ts +0 -9
- package/dist/types/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.d.ts.map +0 -1
- package/dist/types/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.d.ts +0 -3
- package/dist/types/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.d.ts.map +0 -1
- package/dist/types/components/SingleValueContainer/index.d.ts +0 -4
- package/dist/types/components/SingleValueContainer/index.d.ts.map +0 -1
- package/dist/types/components/SingleValueContainer/types/props.d.ts +0 -17
- package/dist/types/components/SingleValueContainer/types/props.d.ts.map +0 -1
- package/dist/types/components/Visualization/components/AnalyticsDataProvider/index.d.ts +0 -11
- package/dist/types/components/Visualization/components/AnalyticsDataProvider/index.d.ts.map +0 -1
- package/dist/types/components/Visualization/components/DimensionsProvider/index.d.ts +0 -16
- package/dist/types/components/Visualization/components/DimensionsProvider/index.d.ts.map +0 -1
- package/dist/types/components/Visualization/components/LayoutProvider/index.d.ts +0 -15
- package/dist/types/components/Visualization/components/LayoutProvider/index.d.ts.map +0 -1
- package/dist/types/components/Visualization/components/VisualizationDimensionSelector/index.d.ts +0 -5
- package/dist/types/components/Visualization/components/VisualizationDimensionSelector/index.d.ts.map +0 -1
- package/dist/types/components/Visualization/components/VisualizationProvider/index.d.ts +0 -14
- package/dist/types/components/Visualization/components/VisualizationProvider/index.d.ts.map +0 -1
- package/dist/types/components/Visualization/components/VisualizationSelector/index.d.ts +0 -23
- package/dist/types/components/Visualization/components/VisualizationSelector/index.d.ts.map +0 -1
- package/dist/types/components/Visualization/components/VisualizationTypeProvider/index.d.ts +0 -15
- package/dist/types/components/Visualization/components/VisualizationTypeProvider/index.d.ts.map +0 -1
- package/dist/types/components/Visualization/components/VisualizationTypeSelector/index.d.ts +0 -2
- package/dist/types/components/Visualization/components/VisualizationTypeSelector/index.d.ts.map +0 -1
- package/dist/types/components/Visualization/index.d.ts +0 -23
- package/dist/types/components/Visualization/index.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -7
- package/dist/types/index.d.ts.map +0 -1
|
@@ -22,6 +22,7 @@ const Default = {
|
|
|
22
22
|
category: ["ou"],
|
|
23
23
|
filter: ["pe"]
|
|
24
24
|
},
|
|
25
|
+
showFilterAsTitle: true,
|
|
25
26
|
type: "column"
|
|
26
27
|
}
|
|
27
28
|
}
|
|
@@ -36,6 +37,7 @@ const Bar = {
|
|
|
36
37
|
category: ["ou"],
|
|
37
38
|
filter: ["pe"]
|
|
38
39
|
},
|
|
40
|
+
showFilterAsTitle: true,
|
|
39
41
|
type: "bar"
|
|
40
42
|
}
|
|
41
43
|
}
|
|
@@ -50,6 +52,7 @@ const MultipleColumns = {
|
|
|
50
52
|
category: ["pe"],
|
|
51
53
|
filter: ["dx"]
|
|
52
54
|
},
|
|
55
|
+
showFilterAsTitle: true,
|
|
53
56
|
type: "column"
|
|
54
57
|
}
|
|
55
58
|
}
|
|
@@ -64,6 +67,7 @@ const StackedColumn = {
|
|
|
64
67
|
category: ["pe"],
|
|
65
68
|
filter: ["dx"]
|
|
66
69
|
},
|
|
70
|
+
showFilterAsTitle: true,
|
|
67
71
|
type: "stacked-column"
|
|
68
72
|
}
|
|
69
73
|
}
|
|
@@ -78,6 +82,7 @@ const StackedBar = {
|
|
|
78
82
|
category: ["pe"],
|
|
79
83
|
filter: ["dx"]
|
|
80
84
|
},
|
|
85
|
+
showFilterAsTitle: true,
|
|
81
86
|
type: "stacked-bar"
|
|
82
87
|
}
|
|
83
88
|
}
|
|
@@ -92,6 +97,7 @@ const Line = {
|
|
|
92
97
|
category: ["ou"],
|
|
93
98
|
filter: ["pe"]
|
|
94
99
|
},
|
|
100
|
+
showFilterAsTitle: true,
|
|
95
101
|
type: "line"
|
|
96
102
|
}
|
|
97
103
|
}
|
|
@@ -106,6 +112,7 @@ const MultipleLines = {
|
|
|
106
112
|
category: ["pe"],
|
|
107
113
|
filter: ["dx"]
|
|
108
114
|
},
|
|
115
|
+
showFilterAsTitle: true,
|
|
109
116
|
type: "line"
|
|
110
117
|
}
|
|
111
118
|
}
|
|
@@ -118,8 +125,9 @@ const PieChart = {
|
|
|
118
125
|
layout: {
|
|
119
126
|
series: ["dx"],
|
|
120
127
|
category: [],
|
|
121
|
-
filter: ["
|
|
128
|
+
filter: ["pe", "ou"]
|
|
122
129
|
},
|
|
130
|
+
showFilterAsTitle: true,
|
|
123
131
|
type: "pie"
|
|
124
132
|
}
|
|
125
133
|
}
|
|
@@ -134,6 +142,7 @@ const MultiSeries = {
|
|
|
134
142
|
category: ["pe"],
|
|
135
143
|
filter: ["dx"]
|
|
136
144
|
},
|
|
145
|
+
showFilterAsTitle: true,
|
|
137
146
|
type: "multi-series",
|
|
138
147
|
multiSeries: {
|
|
139
148
|
series: [
|
|
@@ -197,6 +206,7 @@ const ComplexMultiSeries = {
|
|
|
197
206
|
filter: ["ou"]
|
|
198
207
|
},
|
|
199
208
|
type: "multi-series",
|
|
209
|
+
showFilterAsTitle: true,
|
|
200
210
|
multiSeries: {
|
|
201
211
|
series: [
|
|
202
212
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ChartAnalytics/ChartAnalytics.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { DHIS2Chart, setupHighchartsModules } from \".\";\nimport { Meta, StoryObj } from \"@storybook/react\";\nimport columnData from \"../../shared/resources/column-data.json\";\nimport multiSeriesData from \"../../shared/resources/multi-series-data.json\";\nimport stackedChartData from \"../../shared/resources/stacked-chart-data.json\";\nimport pieData from \"../../shared/resources/pie-data.json\";\nimport complexMultiSeriesData from \"../../shared/resources/complex-multi-series-data.json\";\nimport { Analytics } from \"@hisptz/dhis2-utils\";\nimport HighCharts from \"highcharts\";\n\nsetupHighchartsModules(HighCharts);\n\nconst meta: Meta<typeof DHIS2Chart> = {\n\tcomponent: DHIS2Chart,\n\ttitle: \"DHIS2 Chart\",\n};\n\nexport default meta;\n\ntype Story = StoryObj<typeof DHIS2Chart>;\n\nexport const Default: Story = {\n\tname: \"Column\",\n\targs: {\n\t\tanalytics: columnData as unknown as Analytics,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"dx\"],\n\t\t\t\tcategory: [\"ou\"],\n\t\t\t\tfilter: [\"pe\"],\n\t\t\t},\n\t\t\ttype: \"column\",\n\t\t},\n\t},\n};\n\nexport const Bar: Story = {\n\tname: \"Bar\",\n\targs: {\n\t\tanalytics: columnData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"dx\"],\n\t\t\t\tcategory: [\"ou\"],\n\t\t\t\tfilter: [\"pe\"],\n\t\t\t},\n\t\t\ttype: \"bar\",\n\t\t},\n\t},\n};\nexport const MultipleColumns: Story = {\n\tname: \"Multiple columns\",\n\targs: {\n\t\tanalytics: multiSeriesData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"ou\"],\n\t\t\t\tcategory: [\"pe\"],\n\t\t\t\tfilter: [\"dx\"],\n\t\t\t},\n\t\t\ttype: \"column\",\n\t\t},\n\t},\n};\n\nexport const StackedColumn: Story = {\n\tname: \"Stacked column\",\n\targs: {\n\t\tanalytics: stackedChartData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"ou\"],\n\t\t\t\tcategory: [\"pe\"],\n\t\t\t\tfilter: [\"dx\"],\n\t\t\t},\n\t\t\ttype: \"stacked-column\",\n\t\t},\n\t},\n};\nexport const StackedBar: Story = {\n\tname: \"Stacked bar\",\n\targs: {\n\t\tanalytics: stackedChartData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"ou\"],\n\t\t\t\tcategory: [\"pe\"],\n\t\t\t\tfilter: [\"dx\"],\n\t\t\t},\n\t\t\ttype: \"stacked-bar\",\n\t\t},\n\t},\n};\nexport const Line: Story = {\n\tname: \"Line chart\",\n\targs: {\n\t\tanalytics: columnData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"dx\"],\n\t\t\t\tcategory: [\"ou\"],\n\t\t\t\tfilter: [\"pe\"],\n\t\t\t},\n\t\t\ttype: \"line\",\n\t\t},\n\t},\n};\n\nexport const MultipleLines: Story = {\n\tname: \"Multi line\",\n\targs: {\n\t\tanalytics: multiSeriesData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"ou\"],\n\t\t\t\tcategory: [\"pe\"],\n\t\t\t\tfilter: [\"dx\"],\n\t\t\t},\n\t\t\ttype: \"line\",\n\t\t},\n\t},\n};\n\nexport const PieChart: Story = {\n\tname: \"Pie chart\",\n\targs: {\n\t\tanalytics: pieData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"dx\"],\n\t\t\t\tcategory: [],\n\t\t\t\tfilter: [\"dx\", \"pe\"],\n\t\t\t},\n\t\t\ttype: \"pie\",\n\t\t},\n\t},\n};\n\nexport const MultiSeries: Story = {\n\tname: \"Multi series\",\n\targs: {\n\t\tanalytics: multiSeriesData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"ou\"],\n\t\t\t\tcategory: [\"pe\"],\n\t\t\t\tfilter: [\"dx\"],\n\t\t\t},\n\t\t\ttype: \"multi-series\",\n\t\t\tmultiSeries: {\n\t\t\t\tseries: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"qhqAxPSTUXp\",\n\t\t\t\t\t\tas: \"column\",\n\t\t\t\t\t\tyAxis: 0,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"Vth0fbpFcsO\",\n\t\t\t\t\t\tas: \"line\",\n\t\t\t\t\t\tcumulative: true,\n\t\t\t\t\t\tyAxis: 1,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tyAxes: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"yAxis1\",\n\t\t\t\t\t\ttitle: {\n\t\t\t\t\t\t\ttext: \"Koinandugu\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlabels: {\n\t\t\t\t\t\t\tformat: \"{value}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"yAxis2\",\n\t\t\t\t\t\ttitle: {\n\t\t\t\t\t\t\ttext: \"Kono\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlabels: {\n\t\t\t\t\t\t\tformat: \"{value}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\topposite: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\ttarget: {\n\t\t\t\t\tid: \"\",\n\t\t\t\t\tstyles: {\n\t\t\t\t\t\tcolor: \"blue\",\n\t\t\t\t\t},\n\t\t\t\t\tvalue: 45,\n\t\t\t\t\tlabel: {\n\t\t\t\t\t\ttext: \"Target\",\n\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\tverticalAlign: \"middle\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n};\n\nexport const ComplexMultiSeries: Story = {\n\tname: \"Complex multi series\",\n\targs: {\n\t\tanalytics: complexMultiSeriesData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"dx\"],\n\t\t\t\tcategory: [\"pe\"],\n\t\t\t\tfilter: [\"ou\"],\n\t\t\t},\n\t\t\ttype: \"multi-series\",\n\t\t\tmultiSeries: {\n\t\t\t\tseries: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"QQkOAJFukyY\",\n\t\t\t\t\t\tas: \"column\",\n\t\t\t\t\t\tyAxis: 0,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"QQkOAJFukyY\",\n\t\t\t\t\t\tas: \"line\",\n\t\t\t\t\t\tcumulative: true,\n\t\t\t\t\t\tyAxis: 1,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tyAxes: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"yAxis1\",\n\t\t\t\t\t\ttitle: {\n\t\t\t\t\t\t\ttext: \"Koinandugu\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlabels: {\n\t\t\t\t\t\t\tformat: \"{value}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"yAxis2\",\n\t\t\t\t\t\ttitle: {\n\t\t\t\t\t\t\ttext: \"Kono\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlabels: {\n\t\t\t\t\t\t\tformat: \"{value}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\topposite: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\ttarget: {\n\t\t\t\t\tid: \"\",\n\t\t\t\t\tstyles: {\n\t\t\t\t\t\tcolor: \"blue\",\n\t\t\t\t\t},\n\t\t\t\t\tvalue: 45,\n\t\t\t\t\tlabel: {\n\t\t\t\t\t\ttext: \"Target\",\n\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\tverticalAlign: \"middle\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ChartAnalytics/ChartAnalytics.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { DHIS2Chart, setupHighchartsModules } from \".\";\nimport { Meta, StoryObj } from \"@storybook/react\";\nimport columnData from \"../../shared/resources/column-data.json\";\nimport multiSeriesData from \"../../shared/resources/multi-series-data.json\";\nimport stackedChartData from \"../../shared/resources/stacked-chart-data.json\";\nimport pieData from \"../../shared/resources/pie-data.json\";\nimport complexMultiSeriesData from \"../../shared/resources/complex-multi-series-data.json\";\nimport { Analytics } from \"@hisptz/dhis2-utils\";\nimport HighCharts from \"highcharts\";\n\nsetupHighchartsModules(HighCharts);\n\nconst meta: Meta<typeof DHIS2Chart> = {\n\tcomponent: DHIS2Chart,\n\ttitle: \"DHIS2 Chart\",\n};\n\nexport default meta;\n\ntype Story = StoryObj<typeof DHIS2Chart>;\n\nexport const Default: Story = {\n\tname: \"Column\",\n\targs: {\n\t\tanalytics: columnData as unknown as Analytics,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"dx\"],\n\t\t\t\tcategory: [\"ou\"],\n\t\t\t\tfilter: [\"pe\"],\n\t\t\t},\n\t\t\tshowFilterAsTitle: true,\n\t\t\ttype: \"column\",\n\t\t},\n\t},\n};\n\nexport const Bar: Story = {\n\tname: \"Bar\",\n\targs: {\n\t\tanalytics: columnData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"dx\"],\n\t\t\t\tcategory: [\"ou\"],\n\t\t\t\tfilter: [\"pe\"],\n\t\t\t},\n\t\t\tshowFilterAsTitle: true,\n\t\t\ttype: \"bar\",\n\t\t},\n\t},\n};\nexport const MultipleColumns: Story = {\n\tname: \"Multiple columns\",\n\targs: {\n\t\tanalytics: multiSeriesData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"ou\"],\n\t\t\t\tcategory: [\"pe\"],\n\t\t\t\tfilter: [\"dx\"],\n\t\t\t},\n\t\t\tshowFilterAsTitle: true,\n\t\t\ttype: \"column\",\n\t\t},\n\t},\n};\n\nexport const StackedColumn: Story = {\n\tname: \"Stacked column\",\n\targs: {\n\t\tanalytics: stackedChartData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"ou\"],\n\t\t\t\tcategory: [\"pe\"],\n\t\t\t\tfilter: [\"dx\"],\n\t\t\t},\n\t\t\tshowFilterAsTitle: true,\n\t\t\ttype: \"stacked-column\",\n\t\t},\n\t},\n};\nexport const StackedBar: Story = {\n\tname: \"Stacked bar\",\n\targs: {\n\t\tanalytics: stackedChartData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"ou\"],\n\t\t\t\tcategory: [\"pe\"],\n\t\t\t\tfilter: [\"dx\"],\n\t\t\t},\n\t\t\tshowFilterAsTitle: true,\n\t\t\ttype: \"stacked-bar\",\n\t\t},\n\t},\n};\nexport const Line: Story = {\n\tname: \"Line chart\",\n\targs: {\n\t\tanalytics: columnData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"dx\"],\n\t\t\t\tcategory: [\"ou\"],\n\t\t\t\tfilter: [\"pe\"],\n\t\t\t},\n\t\t\tshowFilterAsTitle: true,\n\t\t\ttype: \"line\",\n\t\t},\n\t},\n};\n\nexport const MultipleLines: Story = {\n\tname: \"Multi line\",\n\targs: {\n\t\tanalytics: multiSeriesData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"ou\"],\n\t\t\t\tcategory: [\"pe\"],\n\t\t\t\tfilter: [\"dx\"],\n\t\t\t},\n\t\t\tshowFilterAsTitle: true,\n\t\t\ttype: \"line\",\n\t\t},\n\t},\n};\n\nexport const PieChart: Story = {\n\tname: \"Pie chart\",\n\targs: {\n\t\tanalytics: pieData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"dx\"],\n\t\t\t\tcategory: [],\n\t\t\t\tfilter: [\"pe\", \"ou\"],\n\t\t\t},\n\t\t\tshowFilterAsTitle: true,\n\t\t\ttype: \"pie\",\n\t\t},\n\t},\n};\n\nexport const MultiSeries: Story = {\n\tname: \"Multi series\",\n\targs: {\n\t\tanalytics: multiSeriesData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"ou\"],\n\t\t\t\tcategory: [\"pe\"],\n\t\t\t\tfilter: [\"dx\"],\n\t\t\t},\n\t\t\tshowFilterAsTitle: true,\n\t\t\ttype: \"multi-series\",\n\t\t\tmultiSeries: {\n\t\t\t\tseries: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"qhqAxPSTUXp\",\n\t\t\t\t\t\tas: \"column\",\n\t\t\t\t\t\tyAxis: 0,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"Vth0fbpFcsO\",\n\t\t\t\t\t\tas: \"line\",\n\t\t\t\t\t\tcumulative: true,\n\t\t\t\t\t\tyAxis: 1,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tyAxes: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"yAxis1\",\n\t\t\t\t\t\ttitle: {\n\t\t\t\t\t\t\ttext: \"Koinandugu\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlabels: {\n\t\t\t\t\t\t\tformat: \"{value}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"yAxis2\",\n\t\t\t\t\t\ttitle: {\n\t\t\t\t\t\t\ttext: \"Kono\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlabels: {\n\t\t\t\t\t\t\tformat: \"{value}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\topposite: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\ttarget: {\n\t\t\t\t\tid: \"\",\n\t\t\t\t\tstyles: {\n\t\t\t\t\t\tcolor: \"blue\",\n\t\t\t\t\t},\n\t\t\t\t\tvalue: 45,\n\t\t\t\t\tlabel: {\n\t\t\t\t\t\ttext: \"Target\",\n\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\tverticalAlign: \"middle\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n};\n\nexport const ComplexMultiSeries: Story = {\n\tname: \"Complex multi series\",\n\targs: {\n\t\tanalytics: complexMultiSeriesData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"dx\"],\n\t\t\t\tcategory: [\"pe\"],\n\t\t\t\tfilter: [\"ou\"],\n\t\t\t},\n\t\t\ttype: \"multi-series\",\n\t\t\tshowFilterAsTitle: true,\n\t\t\tmultiSeries: {\n\t\t\t\tseries: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"QQkOAJFukyY\",\n\t\t\t\t\t\tas: \"column\",\n\t\t\t\t\t\tyAxis: 0,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"QQkOAJFukyY\",\n\t\t\t\t\t\tas: \"line\",\n\t\t\t\t\t\tcumulative: true,\n\t\t\t\t\t\tyAxis: 1,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tyAxes: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"yAxis1\",\n\t\t\t\t\t\ttitle: {\n\t\t\t\t\t\t\ttext: \"Koinandugu\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlabels: {\n\t\t\t\t\t\t\tformat: \"{value}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"yAxis2\",\n\t\t\t\t\t\ttitle: {\n\t\t\t\t\t\t\ttext: \"Kono\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlabels: {\n\t\t\t\t\t\t\tformat: \"{value}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\topposite: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\ttarget: {\n\t\t\t\t\tid: \"\",\n\t\t\t\t\tstyles: {\n\t\t\t\t\t\tcolor: \"blue\",\n\t\t\t\t\t},\n\t\t\t\t\tvalue: 45,\n\t\t\t\t\tlabel: {\n\t\t\t\t\t\ttext: \"Target\",\n\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\tverticalAlign: \"middle\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n};\n"]}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { compact } from 'lodash';
|
|
2
|
+
|
|
1
3
|
class DHIS2Chart {
|
|
2
4
|
constructor(id, analytics, config) {
|
|
3
5
|
this.id = id;
|
|
@@ -40,7 +42,9 @@ class DHIS2Chart {
|
|
|
40
42
|
],
|
|
41
43
|
series: this.getSeries(),
|
|
42
44
|
plotOptions: this.getPlotOptions(),
|
|
43
|
-
title: {
|
|
45
|
+
title: {
|
|
46
|
+
text: this.config.showFilterAsTitle ? this.getFilterLabel() : ""
|
|
47
|
+
},
|
|
44
48
|
xAxis: this.getXAxis(),
|
|
45
49
|
exporting: this.getExporting(),
|
|
46
50
|
legend: { enabled: true },
|
|
@@ -107,6 +111,17 @@ class DHIS2Chart {
|
|
|
107
111
|
}
|
|
108
112
|
};
|
|
109
113
|
}
|
|
114
|
+
getFilterLabel() {
|
|
115
|
+
const filters = this.config.layout.filter;
|
|
116
|
+
const labels = filters.map((filter) => {
|
|
117
|
+
const dimensions = this.analytics.metaData?.dimensions[filter] ?? [];
|
|
118
|
+
return dimensions.map((dimension) => {
|
|
119
|
+
const filterItem = this.analytics.metaData?.items[dimension];
|
|
120
|
+
return filterItem?.name;
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
return compact(labels.flat()).join(", ");
|
|
124
|
+
}
|
|
110
125
|
}
|
|
111
126
|
|
|
112
127
|
export { DHIS2Chart };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/ChartAnalytics/models/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/ChartAnalytics/models/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Analytics } from \"@hisptz/dhis2-utils\";\nimport HighCharts from \"highcharts\";\nimport { ChartConfig } from \"../types/props.js\";\nimport { compact } from \"lodash\";\n\nexport abstract class DHIS2Chart {\n\tid: string;\n\tanalytics: Analytics;\n\tconfig: ChartConfig;\n\n\tconstructor(id: string, analytics: Analytics, config: ChartConfig) {\n\t\tthis.id = id;\n\t\tthis.analytics = analytics;\n\t\tthis.config = config;\n\t}\n\n\tabstract getHighchartsType(): string;\n\n\tgetChartConfig(): HighCharts.ChartOptions & any {\n\t\treturn {\n\t\t\trenderTo: this.id,\n\t\t\tzoomType: \"xy\",\n\t\t\ttype: this.getHighchartsType(),\n\t\t\theight: this.config?.height,\n\t\t\tstyledMode: false,\n\t\t};\n\t}\n\n\tgetOptions(): HighCharts.Options {\n\t\tconst options = {\n\t\t\tyAxis: this.getYAxis(),\n\t\t\tchart: this.getChartConfig(),\n\t\t\tcolors: this.config?.colors ?? [\n\t\t\t\t\"#a8bf24\",\n\t\t\t\t\"#518cc3\",\n\t\t\t\t\"#d74554\",\n\t\t\t\t\"#ff9e21\",\n\t\t\t\t\"#968f8f\",\n\t\t\t\t\"#ba3ba1\",\n\t\t\t\t\"#ffda54\",\n\t\t\t\t\"#45beae\",\n\t\t\t\t\"#b98037\",\n\t\t\t\t\"#676767\",\n\t\t\t\t\"#6b2dd4\",\n\t\t\t\t\"#47792c\",\n\t\t\t\t\"#fcbdbd\",\n\t\t\t\t\"#830000\",\n\t\t\t\t\"#a5ffc0\",\n\t\t\t\t\"#000078\",\n\t\t\t\t\"#817c00\",\n\t\t\t\t\"#bdf023\",\n\t\t\t\t\"#fffac4\",\n\t\t\t],\n\t\t\tseries: this.getSeries(),\n\t\t\tplotOptions: this.getPlotOptions(),\n\t\t\ttitle: {\n\t\t\t\ttext: this.config.showFilterAsTitle\n\t\t\t\t\t? this.getFilterLabel()\n\t\t\t\t\t: \"\",\n\t\t\t},\n\t\t\txAxis: this.getXAxis(),\n\t\t\texporting: this.getExporting(),\n\t\t\tlegend: { enabled: true },\n\t\t\tcredits: { enabled: false },\n\t\t};\n\n\t\tlet overrides = {};\n\n\t\tif (this.config?.highChartOverrides) {\n\t\t\toverrides = {\n\t\t\t\t...(typeof this.config?.highChartOverrides === \"object\"\n\t\t\t\t\t? this.config?.highChartOverrides ?? {}\n\t\t\t\t\t: this.config?.highChartOverrides(options)),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\t...options,\n\t\t\t...overrides,\n\t\t};\n\t}\n\n\tabstract getSeries(): HighCharts.SeriesOptionsType[];\n\n\tabstract getPlotOptions(): HighCharts.PlotOptions;\n\n\tabstract getXAxis(): HighCharts.XAxisOptions | undefined;\n\n\tgetYAxis(): HighCharts.YAxisOptions[] {\n\t\treturn [\n\t\t\t{\n\t\t\t\ttitle: {\n\t\t\t\t\ttext: \"\",\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tcolor: \"#000000\",\n\t\t\t\t\t\tfontWeight: \"normal\",\n\t\t\t\t\t\tfontSize: \"14px\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tlabels: {\n\t\t\t\t\tenabled: true,\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tcolor: \"#000000\",\n\t\t\t\t\t\tfontWeight: \"normal\",\n\t\t\t\t\t\tfontSize: \"14px\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tplotLines: [\n\t\t\t\t\t{\n\t\t\t\t\t\tcolor: \"#000000\",\n\t\t\t\t\t\tdashStyle: \"Solid\",\n\t\t\t\t\t\twidth: 2,\n\t\t\t\t\t\tzIndex: 1000,\n\t\t\t\t\t\tlabel: { text: \"\" },\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tcolor: \"#bbbbbb\",\n\t\t\t\t\t\tdashStyle: \"Solid\",\n\t\t\t\t\t\tzIndex: 1000,\n\t\t\t\t\t\twidth: 2,\n\t\t\t\t\t\tlabel: { text: \"\" },\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t];\n\t}\n\n\tgetExporting(): HighCharts.ExportingOptions {\n\t\tconst name = this.config?.name ?? \"chart\";\n\t\treturn {\n\t\t\tfilename: `${name}`,\n\t\t\tsourceWidth: 1200,\n\t\t\tbuttons: {\n\t\t\t\tcontextButton: {\n\t\t\t\t\tenabled: false,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate getFilterLabel() {\n\t\tconst filters = this.config.layout.filter;\n\t\tconst labels = filters.map((filter) => {\n\t\t\tconst dimensions =\n\t\t\t\tthis.analytics.metaData?.dimensions[filter] ?? [];\n\t\t\treturn dimensions.map((dimension) => {\n\t\t\t\tconst filterItem = this.analytics.metaData?.items[dimension];\n\t\t\t\treturn filterItem?.name;\n\t\t\t});\n\t\t});\n\t\treturn compact(labels.flat()).join(\", \");\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/DHIS2PivotTable/DHIS2PivotTable.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/DHIS2PivotTable/DHIS2PivotTable.tsx"],"names":[],"mappings":"AA0CG,SACC,KADD;AAzCH,SAAS,6BAAgD;AACzD,SAAgB,eAAe;AAC/B,SAAS,qCAAqC;AAC9C,SAAS,kBAAkB;AAC3B,SAAS,oBAAoB;AAC7B,SAAS,4BAA4B;AAuB9B,SAAS,gBAAgB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAyB;AACxB,QAAM,SAAS;AAAA,IACd,MAAM,IAAI,sBAAsB,EAAE,WAAW,OAAO,CAAC;AAAA,IACrD,CAAC,WAAW,MAAM;AAAA,EACnB;AAEA,SACC,oBAAC,iCAA8B,QAC9B,+BAAC,cAAW,QAAgB,YAC3B;AAAA,wBAAC,gBAAa;AAAA,IACd,oBAAC,wBAAqB;AAAA,KACvB,GACD;AAEF","sourcesContent":["import { Analytics, LegendSet } from \"@hisptz/dhis2-utils\";\nimport { DHIS2PivotTableEngine, type EngineConfig } from \"./services/engine.js\";\nimport React, { useMemo } from \"react\";\nimport { DHIS2PivotTableEngineProvider } from \"./state/engine.js\";\nimport { PivotTable } from \"./components/Table/index.js\";\nimport { TableHeaders } from \"./components/TableHeaders/index.js\";\nimport { CustomPivotTableBody } from \"./components/TableBody/index.js\";\nimport { DataTableProps } from \"@dhis2/ui\";\n\nexport interface DHIS2PivotTableOptions {\n\tlegendSets?: LegendSet[];\n\thideEmptyColumns?: boolean;\n\thideEmptyRows?: boolean;\n\tshowRowTotals?: boolean;\n\tshowColumnTotals?: boolean;\n\tshowRowSubtotals?: boolean;\n\tshowColumnSubtotals?: boolean;\n\tfixColumnHeaders?: boolean;\n\tfixRowHeaders?: boolean;\n\tshowFilterAsTitle?: boolean;\n}\n\nexport interface DHIS2PivotTableProps {\n\tanalytics: Analytics;\n\ttableProps?: DataTableProps;\n\tsetRef?: (ref: HTMLTableElement) => void;\n\tconfig: EngineConfig;\n}\n\nexport function DHIS2PivotTable({\n\tanalytics,\n\tconfig,\n\ttableProps,\n\tsetRef,\n}: DHIS2PivotTableProps) {\n\tconst engine = useMemo(\n\t\t() => new DHIS2PivotTableEngine({ analytics, config }),\n\t\t[analytics, config],\n\t);\n\n\treturn (\n\t\t<DHIS2PivotTableEngineProvider engine={engine}>\n\t\t\t<PivotTable setRef={setRef} tableProps={tableProps}>\n\t\t\t\t<TableHeaders />\n\t\t\t\t<CustomPivotTableBody />\n\t\t\t</PivotTable>\n\t\t</DHIS2PivotTableEngineProvider>\n\t);\n}\n"]}
|
|
@@ -8,7 +8,7 @@ import { useElementSize } from 'usehooks-ts';
|
|
|
8
8
|
function ColumnRenderer({
|
|
9
9
|
column,
|
|
10
10
|
index,
|
|
11
|
-
config: { fixColumnHeaders, rowHeaders, prevHeight = 0, columns }
|
|
11
|
+
config: { fixColumnHeaders, rowHeaders, prevHeight = 0, columns, engine }
|
|
12
12
|
}) {
|
|
13
13
|
const [columnHeaderRef, { height }] = useElementSize();
|
|
14
14
|
if (!column) {
|
|
@@ -26,6 +26,14 @@ function ColumnRenderer({
|
|
|
26
26
|
1
|
|
27
27
|
);
|
|
28
28
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
29
|
+
engine?.showTitle && /* @__PURE__ */ jsx(DataTableRow, { children: /* @__PURE__ */ jsx(
|
|
30
|
+
DataTableColumnHeader,
|
|
31
|
+
{
|
|
32
|
+
align: "center",
|
|
33
|
+
colSpan: engine.titleSpan.toString(),
|
|
34
|
+
children: engine.title ?? ""
|
|
35
|
+
}
|
|
36
|
+
) }),
|
|
29
37
|
/* @__PURE__ */ jsxs(DataTableRow, { children: [
|
|
30
38
|
index === 0 && rowHeaders?.map((header) => {
|
|
31
39
|
return /* @__PURE__ */ jsx(
|
|
@@ -84,7 +92,7 @@ function TableHeaders() {
|
|
|
84
92
|
{
|
|
85
93
|
column: columns[0],
|
|
86
94
|
index: 0,
|
|
87
|
-
config: { rowHeaders, columns, fixColumnHeaders }
|
|
95
|
+
config: { engine, rowHeaders, columns, fixColumnHeaders }
|
|
88
96
|
}
|
|
89
97
|
) });
|
|
90
98
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/components/DHIS2PivotTable/components/TableHeaders/index.tsx"],"names":["column"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/DHIS2PivotTable/components/TableHeaders/index.tsx"],"names":["column"],"mappings":"AA2CE,mBAGG,KAQF,YAXD;AA1CF,SAAS,iCAAiC;AAC1C,SAAS,uBAAuB,cAAc,iBAAiB;AAC/D,SAAS,SAAS,OAAO,aAAa;AAEtC,OAAO,aAAa;AACpB,SAAS,sBAAsB;AAE/B,SAAS,eAAe;AAAA,EACvB;AAAA,EACA;AAAA,EACA,QAAQ,EAAE,kBAAkB,YAAY,aAAa,GAAG,SAAS,OAAO;AACzE,GAU8B;AAC7B,QAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,IAAI,eAAe;AAErD,MAAI,CAAC,QAAQ;AACZ,WAAO;AAAA,EACR;AACA,QAAM,UAAU,MAAM,SAAS,QAAQ,CAAC,EAAE,OAAO,CAAC,KAAKA,YAAW;AACjE,WAAO,OAAOA,QAAO,OAAO,UAAU;AAAA,EACvC,GAAG,CAAC;AAEJ,QAAM,gBAAgB,CAAC,QAAQ,QAAQ,QAAQ,CAAC,CAAC;AACjD,QAAM,aAAa,QAAQ,QAAQ,CAAC;AAEpC,QAAM,uBAAuB,MAAM,SAAS,GAAG,KAAK,EAAE;AAAA,IACrD,CAAC,KAAKA,YAAW;AAChB,aAAO,OAAOA,QAAO,OAAO,UAAU;AAAA,IACvC;AAAA,IACA;AAAA,EACD;AAEA,SACC,iCACE;AAAA,YAAQ,aACR,oBAAC,gBACA;AAAA,MAAC;AAAA;AAAA,QACA,OAAM;AAAA,QACN,SAAS,OAAO,UAAU,SAAS;AAAA,QAElC,iBAAO,SAAS;AAAA;AAAA,IAClB,GACD;AAAA,IAED,qBAAC,gBACC;AAAA,gBAAU,KACV,YAAY,IAAI,CAAC,WAAW;AAC3B,eACC;AAAA,UAAC;AAAA;AAAA,YACA,OAAO;AAAA,YAGP,KAAK;AAAA,YACL,WAAW,QAAQ,cAAc;AAAA,YACjC,SAAS,QAAQ,OAAO,SAAS;AAAA,YAGhC,iBAAO,SAAS;AAAA;AAAA,UAFZ,GAAG,OAAO,SAAS;AAAA,QAGzB;AAAA,MAEF,CAAC;AAAA,MACD,MAAM,sBAAsB,CAAC,UAAU;AACvC,eAAO,OAAO,OAAO,IAAI,CAAC,SACzB;AAAA,UAAC;AAAA;AAAA,YACA,OAAO;AAAA,YAGP,KAAK,GAAG,WAAW,SAAS,CAAC;AAAA,YAC7B,KAAK,UAAU,IAAI,kBAAkB;AAAA,YACrC,WAAW,QAAQ,cAAc;AAAA,YACjC,OAAM;AAAA,YACN,SAAS,QAAQ,SAAS;AAAA,YAGzB,eAAK;AAAA;AAAA,UAFD,GAAG,KAAK,IAAI,KAAK,IAAI;AAAA,QAG3B,CACA;AAAA,MACF,CAAC;AAAA,OACF;AAAA,IACC,gBACA;AAAA,MAAC;AAAA;AAAA,QACA,QAAQ;AAAA,QACR,OAAO,QAAQ;AAAA,QACf,QAAQ;AAAA,UACP;AAAA,UACA;AAAA,UACA,YAAY;AAAA,UACZ;AAAA,QACD;AAAA;AAAA,IACD,IACG;AAAA,KACL;AAEF;AAEO,SAAS,eAAe;AAC9B,QAAM,SAAS,0BAA0B;AACzC,QAAM,UAAU,QAAQ;AACxB,QAAM,aAAa,QAAQ;AAC3B,QAAM,mBAAmB,QAAQ;AAEjC,MAAI,CAAC,WAAW,QAAQ,OAAO,GAAG;AACjC,WAAO;AAAA,EACR;AAEA,SACC,oBAAC,aACA;AAAA,IAAC;AAAA;AAAA,MACA,QAAQ,QAAQ,CAAC;AAAA,MACjB,OAAO;AAAA,MACP,QAAQ,EAAE,QAAQ,YAAY,SAAS,iBAAiB;AAAA;AAAA,EACzD,GACD;AAEF","sourcesContent":["import React from \"react\";\nimport { useCustomPivotTableEngine } from \"../../state/engine.js\";\nimport { DataTableColumnHeader, DataTableRow, TableHead } from \"@dhis2/ui\";\nimport { isEmpty, slice, times } from \"lodash\";\nimport { DHIS2PivotTableEngine, Header } from \"../../services/engine.js\";\nimport classes from \"./TableHeaders.module.css\";\nimport { useElementSize } from \"usehooks-ts\";\n\nfunction ColumnRenderer({\n\tcolumn,\n\tindex,\n\tconfig: { fixColumnHeaders, rowHeaders, prevHeight = 0, columns, engine },\n}: {\n\tcolumn: Header;\n\tindex: number;\n\tconfig: {\n\t\tcolumns: Header[];\n\t\trowHeaders?: Header[];\n\t\tprevHeight?: number;\n\t\tfixColumnHeaders?: boolean;\n\t\tengine: DHIS2PivotTableEngine;\n\t};\n}): React.ReactElement | null {\n\tconst [columnHeaderRef, { height }] = useElementSize();\n\n\tif (!column) {\n\t\treturn null;\n\t}\n\tconst colSpan = slice(columns, index + 1).reduce((acc, column) => {\n\t\treturn acc * (column.items?.length ?? 1);\n\t}, 1);\n\n\tconst hasSubColumns = !isEmpty(columns[index + 1]);\n\tconst nextColumn = columns[index + 1];\n\n\tconst multiplicationFactor = slice(columns, 0, index).reduce(\n\t\t(acc, column) => {\n\t\t\treturn acc * (column.items?.length ?? 1);\n\t\t},\n\t\t1,\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{engine?.showTitle && (\n\t\t\t\t<DataTableRow>\n\t\t\t\t\t<DataTableColumnHeader\n\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\tcolSpan={engine.titleSpan.toString()}\n\t\t\t\t\t>\n\t\t\t\t\t\t{engine.title ?? \"\"}\n\t\t\t\t\t</DataTableColumnHeader>\n\t\t\t\t</DataTableRow>\n\t\t\t)}\n\t\t\t<DataTableRow>\n\t\t\t\t{index === 0 &&\n\t\t\t\t\trowHeaders?.map((header) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<DataTableColumnHeader\n\t\t\t\t\t\t\t\tfixed={fixColumnHeaders}\n\t\t\t\t\t\t\t\t/*\n // @ts-ignore */\n\t\t\t\t\t\t\t\ttop={\"0\"}\n\t\t\t\t\t\t\t\tclassName={classes[\"table-header\"]}\n\t\t\t\t\t\t\t\trowSpan={columns.length.toString()}\n\t\t\t\t\t\t\t\tkey={`${header.dimension}-header-column`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{header.label ?? \"\"}\n\t\t\t\t\t\t\t</DataTableColumnHeader>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t{times(multiplicationFactor, (colNo) => {\n\t\t\t\t\treturn column.items?.map((item) => (\n\t\t\t\t\t\t<DataTableColumnHeader\n\t\t\t\t\t\t\tfixed={fixColumnHeaders}\n\t\t\t\t\t\t\t/*\n // @ts-ignore */\n\t\t\t\t\t\t\ttop={`${prevHeight.toString()}px`}\n\t\t\t\t\t\t\tref={index === 0 ? columnHeaderRef : undefined}\n\t\t\t\t\t\t\tclassName={classes[\"table-header\"]}\n\t\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\t\tcolSpan={colSpan.toString()}\n\t\t\t\t\t\t\tkey={`${colNo}-${item.name}-column-header`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{item.name as unknown as string}\n\t\t\t\t\t\t</DataTableColumnHeader>\n\t\t\t\t\t));\n\t\t\t\t})}\n\t\t\t</DataTableRow>\n\t\t\t{hasSubColumns ? (\n\t\t\t\t<ColumnRenderer\n\t\t\t\t\tcolumn={nextColumn}\n\t\t\t\t\tindex={index + 1}\n\t\t\t\t\tconfig={{\n\t\t\t\t\t\tcolumns,\n\t\t\t\t\t\trowHeaders,\n\t\t\t\t\t\tprevHeight: height,\n\t\t\t\t\t\tfixColumnHeaders,\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t) : null}\n\t\t</>\n\t);\n}\n\nexport function TableHeaders() {\n\tconst engine = useCustomPivotTableEngine();\n\tconst columns = engine?.columnHeaders;\n\tconst rowHeaders = engine?.rowHeaders;\n\tconst fixColumnHeaders = engine?.fixColumnHeaders;\n\n\tif (!columns || isEmpty(columns)) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<TableHead>\n\t\t\t<ColumnRenderer\n\t\t\t\tcolumn={columns[0]}\n\t\t\t\tindex={0}\n\t\t\t\tconfig={{ engine, rowHeaders, columns, fixColumnHeaders }}\n\t\t\t/>\n\t\t</TableHead>\n\t);\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { findIndex,
|
|
1
|
+
import { findIndex, compact, intersection, times, zip } from 'lodash';
|
|
2
2
|
|
|
3
3
|
class DHIS2PivotTableEngine {
|
|
4
4
|
constructor({
|
|
@@ -14,6 +14,28 @@ class DHIS2PivotTableEngine {
|
|
|
14
14
|
this.getHeaders();
|
|
15
15
|
this.getColumnMap();
|
|
16
16
|
}
|
|
17
|
+
get title() {
|
|
18
|
+
const filters = this.config.layout.filter;
|
|
19
|
+
const labels = filters?.map(({ dimension }) => {
|
|
20
|
+
const dimensions = this.analyticsData.metaData?.dimensions[dimension];
|
|
21
|
+
return dimensions?.map((dimension2) => {
|
|
22
|
+
const dimensionItem = this.analyticsData.metaData?.items[dimension2];
|
|
23
|
+
return dimensionItem?.name;
|
|
24
|
+
});
|
|
25
|
+
}) ?? [];
|
|
26
|
+
return compact(labels.flat()).join(", ");
|
|
27
|
+
}
|
|
28
|
+
get titleSpan() {
|
|
29
|
+
const rowHeaders = this.rowHeaders?.length ?? 0;
|
|
30
|
+
const columnHeaders = this.columnHeaders?.reduce(
|
|
31
|
+
(acc, val) => acc + (val.items?.length ?? 0),
|
|
32
|
+
0
|
|
33
|
+
) ?? 0;
|
|
34
|
+
return rowHeaders + columnHeaders;
|
|
35
|
+
}
|
|
36
|
+
get showTitle() {
|
|
37
|
+
return this.config?.options?.showFilterAsTitle;
|
|
38
|
+
}
|
|
17
39
|
get fixColumnHeaders() {
|
|
18
40
|
return this.config.options?.fixColumnHeaders ?? true;
|
|
19
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/DHIS2PivotTable/services/engine.ts"],"names":[],"mappings":"AACA,SAAS,SAAS,WAAW,cAAc,OAAO,WAAW;
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/DHIS2PivotTable/services/engine.ts"],"names":["dimension"],"mappings":"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","sourcesContent":["import { Analytics, AnalyticsItem, LegendSet } from \"@hisptz/dhis2-utils\";\nimport { compact, findIndex, intersection, times, zip } from \"lodash\";\nimport { DHIS2Dimension } from \"../interfaces/index.js\";\n\nexport interface EngineConfig {\n\tlayout: {\n\t\tcolumns: { dimension: DHIS2Dimension; label?: string }[];\n\t\trows: { dimension: DHIS2Dimension; label?: string }[];\n\t\tfilter?: { dimension: DHIS2Dimension; label?: string }[];\n\t};\n\toptions?: {\n\t\tlegendSets?: LegendSet[];\n\t\thideEmptyColumns?: boolean;\n\t\thideEmptyRows?: boolean;\n\t\tshowRowTotals?: boolean;\n\t\tshowColumnTotals?: boolean;\n\t\tshowRowSubtotals?: boolean;\n\t\tshowColumnSubtotals?: boolean;\n\t\tshowFilterAsTitle?: boolean;\n\t\tfixColumnHeaders?: boolean;\n\t\tfixRowHeaders?: boolean;\n\t\t[key: string]: any;\n\t};\n}\n\nexport interface Header {\n\tdimension: DHIS2Dimension;\n\tlabel?: string;\n\titems?: AnalyticsItem[];\n}\n\nexport class DHIS2PivotTableEngine {\n\tanalyticsData: Analytics;\n\tvalueIndex: number;\n\tconfig: EngineConfig;\n\trowHeaders?: Header[];\n\tcolumnHeaders?: Header[];\n\n\tcolumnMap?: { [key: string]: any }[];\n\n\tconstructor({\n\t\tanalytics,\n\t\tconfig,\n\t}: {\n\t\tanalytics: Analytics;\n\t\tconfig: EngineConfig;\n\t}) {\n\t\tthis.config = config;\n\t\tthis.analyticsData = analytics;\n\t\tthis.valueIndex = findIndex(this.analyticsData.headers, [\n\t\t\t\"name\",\n\t\t\t\"value\",\n\t\t]);\n\t\tthis.getHeaders();\n\t\tthis.getColumnMap();\n\t}\n\n\tget title() {\n\t\tconst filters = this.config.layout.filter;\n\t\tconst labels =\n\t\t\tfilters?.map(({ dimension }) => {\n\t\t\t\tconst dimensions =\n\t\t\t\t\tthis.analyticsData.metaData?.dimensions[dimension];\n\n\t\t\t\treturn dimensions?.map((dimension) => {\n\t\t\t\t\tconst dimensionItem =\n\t\t\t\t\t\tthis.analyticsData.metaData?.items[dimension];\n\t\t\t\t\treturn dimensionItem?.name;\n\t\t\t\t});\n\t\t\t}) ?? [];\n\n\t\treturn compact(labels.flat()).join(\", \");\n\t}\n\n\tget titleSpan() {\n\t\tconst rowHeaders = this.rowHeaders?.length ?? 0;\n\t\tconst columnHeaders =\n\t\t\tthis.columnHeaders?.reduce(\n\t\t\t\t(acc, val) => acc + (val.items?.length ?? 0),\n\t\t\t\t0,\n\t\t\t) ?? 0;\n\n\t\treturn rowHeaders + columnHeaders;\n\t}\n\n\tget showTitle() {\n\t\treturn this.config?.options?.showFilterAsTitle;\n\t}\n\n\tget fixColumnHeaders() {\n\t\treturn this.config.options?.fixColumnHeaders ?? true;\n\t}\n\n\tget fixRowHeaders() {\n\t\treturn this.config.options?.fixRowHeaders ?? true;\n\t}\n\n\tgetDimensionItems(dimension: DHIS2Dimension) {\n\t\treturn this.analyticsData.metaData?.dimensions[dimension] ?? [];\n\t}\n\n\tgetItem(id: string) {\n\t\treturn this.analyticsData.metaData?.items[id as any];\n\t}\n\n\tgetValue(mapper: { [key: string]: any }) {\n\t\tconst dimensions = Object.values(mapper);\n\t\tconst data = this.analyticsData.rows?.filter(\n\t\t\t(row) => intersection(row, dimensions).length >= dimensions.length,\n\t\t);\n\t\treturn data?.reduce((acc, row) => {\n\t\t\treturn acc + parseFloat(row[this.valueIndex]);\n\t\t}, 0);\n\t}\n\n\tgetHeaders() {\n\t\tthis.rowHeaders = this.config.layout.rows.map((rowConfig) => {\n\t\t\treturn {\n\t\t\t\t...rowConfig,\n\t\t\t\titems: compact(\n\t\t\t\t\tthis.getDimensionItems(rowConfig.dimension).map(\n\t\t\t\t\t\t(itemId: string) => this.getItem(itemId),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t};\n\t\t});\n\t\tthis.columnHeaders = this.config.layout.columns.map((columnConfig) => {\n\t\t\treturn {\n\t\t\t\t...columnConfig,\n\t\t\t\titems: compact(\n\t\t\t\t\tthis.getDimensionItems(columnConfig.dimension).map(\n\t\t\t\t\t\t(itemId: string) => this.getItem(itemId),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t};\n\t\t});\n\t}\n\n\tgetColumnMap() {\n\t\tconst columns = this.columnHeaders;\n\t\tconst sanitizedColumns =\n\t\t\tcompact(\n\t\t\t\tcolumns?.map(\n\t\t\t\t\t(column) =>\n\t\t\t\t\t\tcolumn.items?.map((item) => ({\n\t\t\t\t\t\t\t[column.dimension]: item.uid,\n\t\t\t\t\t\t})),\n\t\t\t\t),\n\t\t\t) ?? [];\n\t\tconst size = sanitizedColumns.reduce((acc, items) => {\n\t\t\treturn acc * (items?.length ?? 1);\n\t\t}, 1);\n\t\tconst standardiseColumns = sanitizedColumns.map((items) => [\n\t\t\t...times(size / items.length, () => items).flat(),\n\t\t]);\n\t\tthis.columnMap = compact(\n\t\t\tzip(...standardiseColumns).map((arr) =>\n\t\t\t\tarr.reduce((obj, value) => {\n\t\t\t\t\treturn { ...obj, ...value };\n\t\t\t\t}),\n\t\t\t),\n\t\t);\n\t}\n}\n"]}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { forwardRef } from 'react';
|
|
3
2
|
import MapArea from './components/MapArea/index.js';
|
|
4
|
-
import { MapProvider } from './components/MapProvider
|
|
3
|
+
import { MapProvider } from './components/MapProvider';
|
|
5
4
|
import 'leaflet/dist/leaflet.css';
|
|
6
5
|
import { QueryClient, QueryClientProvider } from 'react-query';
|
|
7
6
|
|
|
@@ -16,8 +15,9 @@ const MapComponent = ({
|
|
|
16
15
|
mapOptions,
|
|
17
16
|
key,
|
|
18
17
|
controls,
|
|
19
|
-
legends
|
|
20
|
-
|
|
18
|
+
legends,
|
|
19
|
+
setRef
|
|
20
|
+
}) => {
|
|
21
21
|
const sanitizedPointLayers = [
|
|
22
22
|
{
|
|
23
23
|
type: "point",
|
|
@@ -50,7 +50,7 @@ const MapComponent = ({
|
|
|
50
50
|
},
|
|
51
51
|
legends,
|
|
52
52
|
controls,
|
|
53
|
-
ref,
|
|
53
|
+
ref: setRef,
|
|
54
54
|
mapOptions
|
|
55
55
|
},
|
|
56
56
|
key
|
|
@@ -58,7 +58,7 @@ const MapComponent = ({
|
|
|
58
58
|
}
|
|
59
59
|
) });
|
|
60
60
|
};
|
|
61
|
-
const DHIS2Map =
|
|
61
|
+
const DHIS2Map = MapComponent;
|
|
62
62
|
const Map = DHIS2Map;
|
|
63
63
|
|
|
64
64
|
export { DHIS2Map, Map };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Map/DHIS2Map.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Map/DHIS2Map.tsx"],"names":[],"mappings":"AAiDI;AAhDJ,OAAO,aAAa;AAKpB,SAAS,mBAAmB;AAE5B,OAAO;AACP,SAAS,aAAa,2BAA2B;AAEjD,MAAM,cAAc,IAAI,YAAY;AAEpC,MAAM,eAAe,CAAC;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,MAAgB;AACf,QAAM,uBAA2C;AAAA,IAChD;AAAA,MACC,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,SAAS,YAAY,WAAW;AAAA,MAChC,GAAG;AAAA,IACJ;AAAA,EACD;AACA,QAAM,0BAAiD;AAAA,IACtD;AAAA,MACC,GAAG;AAAA,MACH,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,SAAS,eAAe,WAAW;AAAA,IACpC;AAAA,EACD;AAEA,SACC,oBAAC,uBAAoB,QAAQ,aAC5B;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACA,QAAQ;AAAA,YACP;AAAA,YACA;AAAA,YACA,gBAAgB;AAAA,YAChB,aAAa;AAAA,UACd;AAAA,UACA;AAAA,UACA;AAAA,UAEA,KAAK;AAAA,UACL;AAAA;AAAA,QAFK;AAAA,MAGN;AAAA;AAAA,EACD,GACD;AAEF;AACO,MAAM,WAA+B;AAKrC,MAAM,MAAM","sourcesContent":["import React from \"react\";\nimport MapArea from \"./components/MapArea/index.js\";\nimport {\n\tCustomBoundaryLayer,\n\tCustomPointLayer,\n} from \"./components/MapLayer/interfaces\";\nimport { MapProvider } from \"./components/MapProvider\";\nimport { MapProps } from \"./interfaces\";\nimport \"leaflet/dist/leaflet.css\";\nimport { QueryClient, QueryClientProvider } from \"react-query\";\n\nconst queryClient = new QueryClient();\n\nconst MapComponent = ({\n\torgUnitSelection,\n\tpointLayer,\n\tboundaryLayer,\n\tthematicLayers,\n\tearthEngineLayers,\n\tperiodSelection,\n\tmapOptions,\n\tkey,\n\tcontrols,\n\tlegends,\n\tsetRef,\n}: MapProps) => {\n\tconst sanitizedPointLayers: CustomPointLayer[] = [\n\t\t{\n\t\t\ttype: \"point\",\n\t\t\tid: \"point\",\n\t\t\tenabled: pointLayer?.enabled ?? false,\n\t\t\t...pointLayer,\n\t\t},\n\t];\n\tconst sanitizedBoundaryLayers: CustomBoundaryLayer[] = [\n\t\t{\n\t\t\t...boundaryLayer,\n\t\t\ttype: \"overlay\",\n\t\t\tid: \"boundary\",\n\t\t\tenabled: boundaryLayer?.enabled ?? false,\n\t\t},\n\t];\n\n\treturn (\n\t\t<QueryClientProvider client={queryClient}>\n\t\t\t<MapProvider\n\t\t\t\tperiodSelection={periodSelection}\n\t\t\t\torgUnitSelection={orgUnitSelection}\n\t\t\t>\n\t\t\t\t<MapArea\n\t\t\t\t\tlayers={{\n\t\t\t\t\t\tthematicLayers,\n\t\t\t\t\t\tearthEngineLayers,\n\t\t\t\t\t\tboundaryLayers: sanitizedBoundaryLayers,\n\t\t\t\t\t\tpointLayers: sanitizedPointLayers,\n\t\t\t\t\t}}\n\t\t\t\t\tlegends={legends}\n\t\t\t\t\tcontrols={controls}\n\t\t\t\t\tkey={key}\n\t\t\t\t\tref={setRef}\n\t\t\t\t\tmapOptions={mapOptions}\n\t\t\t\t/>\n\t\t\t</MapProvider>\n\t\t</QueryClientProvider>\n\t);\n};\nexport const DHIS2Map: React.FC<MapProps> = MapComponent;\n\n/**\n * @deprecated since `v2`. Use `DHIS2Map` instead\n * */\nexport const Map = DHIS2Map;\n"]}
|
|
@@ -139,7 +139,44 @@ SingleValuesWithDecimalPlaces.args = {
|
|
|
139
139
|
}
|
|
140
140
|
]
|
|
141
141
|
};
|
|
142
|
+
const DisabledAnimation = {
|
|
143
|
+
name: "Disabled Animation"
|
|
144
|
+
};
|
|
145
|
+
DisabledAnimation.args = {
|
|
146
|
+
title: "PRIORITY INDICATORS",
|
|
147
|
+
animationDuration: 1500,
|
|
148
|
+
animationDelay: 500,
|
|
149
|
+
disableAnimation: true,
|
|
150
|
+
singleValueItems: [
|
|
151
|
+
{
|
|
152
|
+
label: "Total Bookings",
|
|
153
|
+
value: 136344
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
label: "At least one dose",
|
|
157
|
+
value: 4423,
|
|
158
|
+
percentage: 23,
|
|
159
|
+
color: "#0D47A1"
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
label: "Partially vaccinated",
|
|
163
|
+
value: 1394,
|
|
164
|
+
percentage: 17,
|
|
165
|
+
color: "#0D47A1"
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
label: "Fully vaccinated",
|
|
169
|
+
value: 12432,
|
|
170
|
+
percentage: 83,
|
|
171
|
+
color: "#0D47A1"
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
label: "Number of AEFI",
|
|
175
|
+
value: 26423
|
|
176
|
+
}
|
|
177
|
+
]
|
|
178
|
+
};
|
|
142
179
|
|
|
143
|
-
export { AnimatedAllValues, AnimatedSingleValue, Default, SingleValuesWithDecimalPlaces, SingleValueContainer_stories_default as default };
|
|
180
|
+
export { AnimatedAllValues, AnimatedSingleValue, Default, DisabledAnimation, SingleValuesWithDecimalPlaces, SingleValueContainer_stories_default as default };
|
|
144
181
|
//# sourceMappingURL=out.js.map
|
|
145
182
|
//# sourceMappingURL=SingleValueContainer.stories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/SingleValueContainer/SingleValueContainer.stories.tsx"],"names":[],"mappings":"AACA,SAAS,6BAA6B;AAEtC,MAAM,OAA2C;AAAA,EAChD,OAAO;AAAA,EACP,WAAW;AACZ;AAEA,IAAO,uCAAQ;AAGR,MAAM,UAAiB;AAAA,EAC7B,MAAM;AACP;AACA,QAAQ,OAAO;AAAA,EACd,OAAO;AAAA,EACP,kBAAkB;AAAA,IACjB;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,IACR;AAAA,EACD;AACD;AAEO,MAAM,oBAA2B;AAAA,EACvC,MAAM;AACP;AACA,kBAAkB,OAAO;AAAA,EACxB,OAAO;AAAA,EACP,mBAAmB;AAAA,EACnB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,IACjB;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,IACR;AAAA,EACD;AACD;AAEO,MAAM,sBAA6B;AAAA,EACzC,MAAM;AACP;AACA,oBAAoB,OAAO;AAAA,EAC1B,OAAO;AAAA,EACP,kBAAkB;AAAA,IACjB;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,IACjB;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,IACjB;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,IACjB;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,IACjB;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,IACjB;AAAA,EACD;AACD;AAEO,MAAM,gCAAuC;AAAA,EACnD,MAAM;AACP;AACA,8BAA8B,OAAO;AAAA,EACpC,OAAO;AAAA,EACP,mBAAmB;AAAA,EACnB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,IACjB;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,eAAe;AAAA,IAChB;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,eAAe;AAAA,IAChB;AAAA,EACD;AACD","sourcesContent":["import { Meta, StoryObj } from \"@storybook/react\";\nimport { SingleValueVisualizer } from \"./SingleValueVisualizer\";\n\nconst meta: Meta<typeof SingleValueVisualizer> = {\n\ttitle: \"Single Value Visualizer\",\n\tcomponent: SingleValueVisualizer,\n};\n\nexport default meta;\n\ntype Story = StoryObj<typeof SingleValueVisualizer>;\nexport const Default: Story = {\n\tname: \"Default\",\n};\nDefault.args = {\n\ttitle: \"PRIORITY INDICATORS\",\n\tsingleValueItems: [\n\t\t{\n\t\t\tlabel: \"Total Bookings\",\n\t\t\tvalue: 136,\n\t\t},\n\t\t{\n\t\t\tlabel: \"At least one dose\",\n\t\t\tvalue: 45,\n\t\t\tpercentage: 23,\n\t\t\tcolor: \"#0D47A1\",\n\t\t},\n\t\t{\n\t\t\tlabel: \"Partially vaccinated\",\n\t\t\tvalue: 13,\n\t\t\tpercentage: 17,\n\t\t\tcolor: \"#0D47A1\",\n\t\t},\n\t\t{\n\t\t\tlabel: \"Fully vaccinated\",\n\t\t\tvalue: 126,\n\t\t\tpercentage: 83,\n\t\t\tcolor: \"#0D47A1\",\n\t\t},\n\t\t{\n\t\t\tlabel: \"Number of AEFI\",\n\t\t\tvalue: 26,\n\t\t},\n\t],\n};\n\nexport const AnimatedAllValues: Story = {\n\tname: \"Animated all values\",\n};\nAnimatedAllValues.args = {\n\ttitle: \"PRIORITY INDICATORS\",\n\tanimationDuration: 1500,\n\tanimationDelay: 500,\n\tsingleValueItems: [\n\t\t{\n\t\t\tlabel: \"Total Bookings\",\n\t\t\tvalue: 136344,\n\t\t},\n\t\t{\n\t\t\tlabel: \"At least one dose\",\n\t\t\tvalue: 4423,\n\t\t\tpercentage: 23,\n\t\t\tcolor: \"#0D47A1\",\n\t\t},\n\t\t{\n\t\t\tlabel: \"Partially vaccinated\",\n\t\t\tvalue: 1394,\n\t\t\tpercentage: 17,\n\t\t\tcolor: \"#0D47A1\",\n\t\t},\n\t\t{\n\t\t\tlabel: \"Fully vaccinated\",\n\t\t\tvalue: 12432,\n\t\t\tpercentage: 83,\n\t\t\tcolor: \"#0D47A1\",\n\t\t},\n\t\t{\n\t\t\tlabel: \"Number of AEFI\",\n\t\t\tvalue: 26423,\n\t\t},\n\t],\n};\n\nexport const AnimatedSingleValue: Story = {\n\tname: \"Animated single value\",\n};\nAnimatedSingleValue.args = {\n\ttitle: \"PRIORITY INDICATORS\",\n\tsingleValueItems: [\n\t\t{\n\t\t\tlabel: \"Total Bookings\",\n\t\t\tvalue: 13634244,\n\t\t\tanimationDuration: 1000,\n\t\t\tanimationDelay: 100,\n\t\t},\n\t\t{\n\t\t\tlabel: \"At least one dose\",\n\t\t\tvalue: 45423,\n\t\t\tpercentage: 23,\n\t\t\tcolor: \"#0D47A1\",\n\t\t\tanimationDuration: 1000,\n\t\t\tanimationDelay: 600,\n\t\t},\n\t\t{\n\t\t\tlabel: \"Partially vaccinated\",\n\t\t\tvalue: 13434,\n\t\t\tpercentage: 17,\n\t\t\tcolor: \"#0D47A1\",\n\t\t\tanimationDuration: 1000,\n\t\t\tanimationDelay: 1100,\n\t\t},\n\t\t{\n\t\t\tlabel: \"Fully vaccinated\",\n\t\t\tvalue: 126432,\n\t\t\tpercentage: 83,\n\t\t\tcolor: \"#0D47A1\",\n\t\t\tanimationDuration: 1000,\n\t\t\tanimationDelay: 1600,\n\t\t},\n\t\t{\n\t\t\tlabel: \"Number of AEFI\",\n\t\t\tvalue: 268423,\n\t\t\tanimationDuration: 1000,\n\t\t\tanimationDelay: 2000,\n\t\t},\n\t],\n};\n\nexport const SingleValuesWithDecimalPlaces: Story = {\n\tname: \"Single value with decimal places\",\n};\nSingleValuesWithDecimalPlaces.args = {\n\ttitle: \"ENROLLMENTS\",\n\tanimationDuration: 1500,\n\tanimationDelay: 500,\n\tsingleValueItems: [\n\t\t{\n\t\t\tlabel: \"Number of Enrolled Clients\",\n\t\t\tvalue: 268423,\n\t\t\tdecimalPlaces: 3,\n\t\t},\n\t\t{\n\t\t\tlabel: \"Number of Served Clients\",\n\t\t\tvalue: 268423,\n\t\t\tdecimalPlaces: 1,\n\t\t},\n\t],\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/SingleValueContainer/SingleValueContainer.stories.tsx"],"names":[],"mappings":"AACA,SAAS,6BAA6B;AAEtC,MAAM,OAA2C;AAAA,EAChD,OAAO;AAAA,EACP,WAAW;AACZ;AAEA,IAAO,uCAAQ;AAGR,MAAM,UAAiB;AAAA,EAC7B,MAAM;AACP;AACA,QAAQ,OAAO;AAAA,EACd,OAAO;AAAA,EACP,kBAAkB;AAAA,IACjB;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,IACR;AAAA,EACD;AACD;AAEO,MAAM,oBAA2B;AAAA,EACvC,MAAM;AACP;AACA,kBAAkB,OAAO;AAAA,EACxB,OAAO;AAAA,EACP,mBAAmB;AAAA,EACnB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,IACjB;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,IACR;AAAA,EACD;AACD;AAEO,MAAM,sBAA6B;AAAA,EACzC,MAAM;AACP;AACA,oBAAoB,OAAO;AAAA,EAC1B,OAAO;AAAA,EACP,kBAAkB;AAAA,IACjB;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,IACjB;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,IACjB;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,IACjB;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,IACjB;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,IACjB;AAAA,EACD;AACD;AAEO,MAAM,gCAAuC;AAAA,EACnD,MAAM;AACP;AACA,8BAA8B,OAAO;AAAA,EACpC,OAAO;AAAA,EACP,mBAAmB;AAAA,EACnB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,IACjB;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,eAAe;AAAA,IAChB;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,eAAe;AAAA,IAChB;AAAA,EACD;AACD;AAEO,MAAM,oBAA2B;AAAA,EACvC,MAAM;AACP;AACA,kBAAkB,OAAO;AAAA,EACxB,OAAO;AAAA,EACP,mBAAmB;AAAA,EACnB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,IACjB;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO;AAAA,IACR;AAAA,EACD;AACD","sourcesContent":["import { Meta, StoryObj } from \"@storybook/react\";\nimport { SingleValueVisualizer } from \"./SingleValueVisualizer\";\n\nconst meta: Meta<typeof SingleValueVisualizer> = {\n\ttitle: \"Single Value Visualizer\",\n\tcomponent: SingleValueVisualizer,\n};\n\nexport default meta;\n\ntype Story = StoryObj<typeof SingleValueVisualizer>;\nexport const Default: Story = {\n\tname: \"Default\",\n};\nDefault.args = {\n\ttitle: \"PRIORITY INDICATORS\",\n\tsingleValueItems: [\n\t\t{\n\t\t\tlabel: \"Total Bookings\",\n\t\t\tvalue: 136,\n\t\t},\n\t\t{\n\t\t\tlabel: \"At least one dose\",\n\t\t\tvalue: 45,\n\t\t\tpercentage: 23,\n\t\t\tcolor: \"#0D47A1\",\n\t\t},\n\t\t{\n\t\t\tlabel: \"Partially vaccinated\",\n\t\t\tvalue: 13,\n\t\t\tpercentage: 17,\n\t\t\tcolor: \"#0D47A1\",\n\t\t},\n\t\t{\n\t\t\tlabel: \"Fully vaccinated\",\n\t\t\tvalue: 126,\n\t\t\tpercentage: 83,\n\t\t\tcolor: \"#0D47A1\",\n\t\t},\n\t\t{\n\t\t\tlabel: \"Number of AEFI\",\n\t\t\tvalue: 26,\n\t\t},\n\t],\n};\n\nexport const AnimatedAllValues: Story = {\n\tname: \"Animated all values\",\n};\nAnimatedAllValues.args = {\n\ttitle: \"PRIORITY INDICATORS\",\n\tanimationDuration: 1500,\n\tanimationDelay: 500,\n\tsingleValueItems: [\n\t\t{\n\t\t\tlabel: \"Total Bookings\",\n\t\t\tvalue: 136344,\n\t\t},\n\t\t{\n\t\t\tlabel: \"At least one dose\",\n\t\t\tvalue: 4423,\n\t\t\tpercentage: 23,\n\t\t\tcolor: \"#0D47A1\",\n\t\t},\n\t\t{\n\t\t\tlabel: \"Partially vaccinated\",\n\t\t\tvalue: 1394,\n\t\t\tpercentage: 17,\n\t\t\tcolor: \"#0D47A1\",\n\t\t},\n\t\t{\n\t\t\tlabel: \"Fully vaccinated\",\n\t\t\tvalue: 12432,\n\t\t\tpercentage: 83,\n\t\t\tcolor: \"#0D47A1\",\n\t\t},\n\t\t{\n\t\t\tlabel: \"Number of AEFI\",\n\t\t\tvalue: 26423,\n\t\t},\n\t],\n};\n\nexport const AnimatedSingleValue: Story = {\n\tname: \"Animated single value\",\n};\nAnimatedSingleValue.args = {\n\ttitle: \"PRIORITY INDICATORS\",\n\tsingleValueItems: [\n\t\t{\n\t\t\tlabel: \"Total Bookings\",\n\t\t\tvalue: 13634244,\n\t\t\tanimationDuration: 1000,\n\t\t\tanimationDelay: 100,\n\t\t},\n\t\t{\n\t\t\tlabel: \"At least one dose\",\n\t\t\tvalue: 45423,\n\t\t\tpercentage: 23,\n\t\t\tcolor: \"#0D47A1\",\n\t\t\tanimationDuration: 1000,\n\t\t\tanimationDelay: 600,\n\t\t},\n\t\t{\n\t\t\tlabel: \"Partially vaccinated\",\n\t\t\tvalue: 13434,\n\t\t\tpercentage: 17,\n\t\t\tcolor: \"#0D47A1\",\n\t\t\tanimationDuration: 1000,\n\t\t\tanimationDelay: 1100,\n\t\t},\n\t\t{\n\t\t\tlabel: \"Fully vaccinated\",\n\t\t\tvalue: 126432,\n\t\t\tpercentage: 83,\n\t\t\tcolor: \"#0D47A1\",\n\t\t\tanimationDuration: 1000,\n\t\t\tanimationDelay: 1600,\n\t\t},\n\t\t{\n\t\t\tlabel: \"Number of AEFI\",\n\t\t\tvalue: 268423,\n\t\t\tanimationDuration: 1000,\n\t\t\tanimationDelay: 2000,\n\t\t},\n\t],\n};\n\nexport const SingleValuesWithDecimalPlaces: Story = {\n\tname: \"Single value with decimal places\",\n};\nSingleValuesWithDecimalPlaces.args = {\n\ttitle: \"ENROLLMENTS\",\n\tanimationDuration: 1500,\n\tanimationDelay: 500,\n\tsingleValueItems: [\n\t\t{\n\t\t\tlabel: \"Number of Enrolled Clients\",\n\t\t\tvalue: 268423,\n\t\t\tdecimalPlaces: 3,\n\t\t},\n\t\t{\n\t\t\tlabel: \"Number of Served Clients\",\n\t\t\tvalue: 268423,\n\t\t\tdecimalPlaces: 1,\n\t\t},\n\t],\n};\n\nexport const DisabledAnimation: Story = {\n\tname: \"Disabled Animation\",\n};\nDisabledAnimation.args = {\n\ttitle: \"PRIORITY INDICATORS\",\n\tanimationDuration: 1500,\n\tanimationDelay: 500,\n\tdisableAnimation: true,\n\tsingleValueItems: [\n\t\t{\n\t\t\tlabel: \"Total Bookings\",\n\t\t\tvalue: 136344,\n\t\t},\n\t\t{\n\t\t\tlabel: \"At least one dose\",\n\t\t\tvalue: 4423,\n\t\t\tpercentage: 23,\n\t\t\tcolor: \"#0D47A1\",\n\t\t},\n\t\t{\n\t\t\tlabel: \"Partially vaccinated\",\n\t\t\tvalue: 1394,\n\t\t\tpercentage: 17,\n\t\t\tcolor: \"#0D47A1\",\n\t\t},\n\t\t{\n\t\t\tlabel: \"Fully vaccinated\",\n\t\t\tvalue: 12432,\n\t\t\tpercentage: 83,\n\t\t\tcolor: \"#0D47A1\",\n\t\t},\n\t\t{\n\t\t\tlabel: \"Number of AEFI\",\n\t\t\tvalue: 26423,\n\t\t},\n\t],\n};\n"]}
|
|
@@ -11,7 +11,8 @@ function SingleValueVisualizer({
|
|
|
11
11
|
title,
|
|
12
12
|
singleValueItems,
|
|
13
13
|
animationDuration,
|
|
14
|
-
animationDelay
|
|
14
|
+
animationDelay,
|
|
15
|
+
disableAnimation
|
|
15
16
|
}) {
|
|
16
17
|
return /* @__PURE__ */ jsxs("div", { className: "w-100 h-100", children: [
|
|
17
18
|
/* @__PURE__ */ jsx(CssReset, {}),
|
|
@@ -27,6 +28,7 @@ function SingleValueVisualizer({
|
|
|
27
28
|
(singleValueItem) => /* @__PURE__ */ jsx(
|
|
28
29
|
SingleValueItem,
|
|
29
30
|
{
|
|
31
|
+
disableAnimation,
|
|
30
32
|
...singleValueItem,
|
|
31
33
|
globalAnimationDuration: animationDuration,
|
|
32
34
|
globalAnimationDelay: animationDelay
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/SingleValueContainer/SingleValueVisualizer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/SingleValueContainer/SingleValueVisualizer.tsx"],"names":[],"mappings":"AAkBG,cAEC,YAFD;AAlBH,OAAO,UAAU;AACjB,SAAS,gBAAgB;AACzB,SAAgB,gBAAgB;AAChC,OAAO,qBAAqB;AAC5B,OAAO,YAAY;AAGnB,cAAc;AAEP,SAAS,sBAAsB;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAmD;AAClD,SACC,qBAAC,SAAI,WAAU,eACd;AAAA,wBAAC,YAAS;AAAA,IACV,oBAAC,YAAS,UAAU,oBAAC,SAAK,eAAK,EAAE,aAAa,GAAE,GAC/C,+BAAC,SACA;AAAA;AAAA,QAAC;AAAA;AAAA,UACA,WAAW,GAAG,OAAO,cAAc,CAAC,IAAI,OAAO,WAAW,CAAC;AAAA,UAE1D;AAAA;AAAA,MACF;AAAA,MACA,oBAAC,SAAI,WAAW,OAAO,mBAAmB,GACxC,2BAAiB;AAAA,QACjB,CAAC,oBACA;AAAA,UAAC;AAAA;AAAA,YACA;AAAA,YAEC,GAAG;AAAA,YACJ,yBAAyB;AAAA,YACzB,sBAAsB;AAAA;AAAA,UAHjB,GAAG,gBAAgB,KAAK,IAAI,gBAAgB,KAAK;AAAA,QAIvD;AAAA,MAEF,GACD;AAAA,OACD,GACD;AAAA,KACD;AAEF;AAKO,MAAM,uBAAuB","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport { CssReset } from \"@dhis2/ui\";\nimport React, { Suspense } from \"react\";\nimport SingleValueItem from \"./components/SingleValueItem/SingleValueItem.js\";\nimport styles from \"./styles/SingleValueContainer.module.css\";\nimport { SingleValue, SingleValueVisualizerProps } from \"./types/props.js\";\n\nexport * from \"./types/props.js\";\n\nexport function SingleValueVisualizer({\n\ttitle,\n\tsingleValueItems,\n\tanimationDuration,\n\tanimationDelay,\n\tdisableAnimation,\n}: SingleValueVisualizerProps): React.ReactElement {\n\treturn (\n\t\t<div className=\"w-100 h-100\">\n\t\t\t<CssReset />\n\t\t\t<Suspense fallback={<div>{i18n.t(\"Loading ...\")}</div>}>\n\t\t\t\t<div>\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={`${styles[\"font-x-large\"]} ${styles[\"font-bold\"]}`}\n\t\t\t\t\t>\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</span>\n\t\t\t\t\t<div className={styles[\"single-value-list\"]}>\n\t\t\t\t\t\t{singleValueItems.map(\n\t\t\t\t\t\t\t(singleValueItem: SingleValue) => (\n\t\t\t\t\t\t\t\t<SingleValueItem\n\t\t\t\t\t\t\t\t\tdisableAnimation={disableAnimation}\n\t\t\t\t\t\t\t\t\tkey={`${singleValueItem.label}-${singleValueItem.value}`}\n\t\t\t\t\t\t\t\t\t{...singleValueItem}\n\t\t\t\t\t\t\t\t\tglobalAnimationDuration={animationDuration}\n\t\t\t\t\t\t\t\t\tglobalAnimationDelay={animationDelay}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Suspense>\n\t\t</div>\n\t);\n}\n\n/**\n * @deprecated since `v2`. Use `SingleValueVisualizer` instead\n * */\nexport const SingleValueContainer = SingleValueVisualizer;\nexport { SingleValueItem };\n"]}
|
package/dist/esm/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.js
CHANGED
|
@@ -14,13 +14,15 @@ function SingleValueItem({
|
|
|
14
14
|
animationDelay,
|
|
15
15
|
globalAnimationDelay,
|
|
16
16
|
decimalPlaces,
|
|
17
|
-
globalAnimationDuration
|
|
17
|
+
globalAnimationDuration,
|
|
18
|
+
disableAnimation
|
|
18
19
|
}) {
|
|
19
20
|
const numberFormatter = (value2) => Intl.NumberFormat("en-US", {
|
|
20
21
|
notation: "compact",
|
|
21
22
|
maximumFractionDigits: decimalPlaces ?? 1
|
|
22
23
|
}).format(value2);
|
|
23
24
|
const sanitizedValue = useSpring({
|
|
25
|
+
cancel: disableAnimation,
|
|
24
26
|
val: value,
|
|
25
27
|
from: { val: 0 },
|
|
26
28
|
config: {
|
package/dist/esm/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.tsx"],"names":["value"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.tsx"],"names":["value"],"mappings":"AA4CE,SACC,KADD;AA5CF,SAAS,eAAe;AACxB,SAAS,kBAAkB;AAE3B,SAAS,UAAU,iBAAiB;AACpC,OAAO,YAAY;AAEnB,OAAO,2BAA2B;AAQnB,SAAR,gBAAiC;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAyC;AACxC,QAAM,kBAAkB,CAACA,WACxB,KAAK,aAAa,SAAS;AAAA,IAC1B,UAAU;AAAA,IACV,uBAAuB,iBAAiB;AAAA,EACzC,CAAC,EAAE,OAAOA,MAAK;AAEhB,QAAM,iBAAiB,UAAU;AAAA,IAChC,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,MAAM,EAAE,KAAK,EAAE;AAAA,IACf,QAAQ;AAAA,MACP,UAAU,qBAAqB,2BAA2B;AAAA,IAC3D;AAAA,IACA,OAAO,kBAAkB,wBAAwB;AAAA,EAClD,CAAC;AAED,QAAM,iBAAiB,GAAG,KAAK,KAAK,KAAK;AACzC,SACC,qBAAC,SAAI,WAAW,GAAG,OAAO,mBAAmB,CAAC,gBAC7C;AAAA,wBAAC,SAAI,WAAW,OAAO,YAAY,GAAI,iBAAM;AAAA,IAC7C,oBAAC,WAAQ,SAAS,WAAW,cAAc,GAC1C;AAAA,MAAC,SAAS;AAAA,MAAT;AAAA,QACA,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,OAAO,eAAe,CAAC,IAAI,OAAO,aAAa,CAAC;AAAA,QAEpF,yBAAe,IAAI;AAAA,UAAG,CAACA,WACvB,gBAAgB,KAAK,MAAMA,MAAK,CAAC;AAAA,QAClC;AAAA;AAAA,IACD,GACD;AAAA,IACC,aACA,oBAAC,yBAAsB,OAAc,YAAwB,IAE7D,oBAAC,UAAK;AAAA,KAER;AAEF","sourcesContent":["import { Tooltip } from \"@dhis2/ui\";\nimport { capitalize } from \"lodash\";\nimport React from \"react\";\nimport { animated, useSpring } from \"react-spring\";\nimport styles from \"../../styles/SingleValueContainer.module.css\";\nimport { SingleValue } from \"../../types/props.js\";\nimport SingleValuePercentage from \"./SingleValuePercentage.js\";\n\ninterface SingleValueProps extends SingleValue {\n\tglobalAnimationDelay?: number;\n\tglobalAnimationDuration?: number;\n\tdisableAnimation?: boolean;\n}\n\nexport default function SingleValueItem({\n\tlabel,\n\tvalue,\n\tcolor,\n\tpercentage,\n\tanimationDuration,\n\tanimationDelay,\n\tglobalAnimationDelay,\n\tdecimalPlaces,\n\tglobalAnimationDuration,\n\tdisableAnimation,\n}: SingleValueProps): React.ReactElement {\n\tconst numberFormatter = (value: number) =>\n\t\tIntl.NumberFormat(\"en-US\", {\n\t\t\tnotation: \"compact\",\n\t\t\tmaximumFractionDigits: decimalPlaces ?? 1,\n\t\t}).format(value);\n\n\tconst sanitizedValue = useSpring({\n\t\tcancel: disableAnimation,\n\t\tval: value,\n\t\tfrom: { val: 0 },\n\t\tconfig: {\n\t\t\tduration: animationDuration ?? globalAnimationDuration ?? 1000,\n\t\t},\n\t\tdelay: animationDelay ?? globalAnimationDelay ?? 10,\n\t});\n\n\tconst tooltipContent = `${label}: ${value}`;\n\treturn (\n\t\t<div className={`${styles[\"single-value-item\"]} text-center`}>\n\t\t\t<div className={styles[\"font-large\"]}>{label}</div>\n\t\t\t<Tooltip content={capitalize(tooltipContent)}>\n\t\t\t\t<animated.div\n\t\t\t\t\tclassName={`${styles[\"font-bold\"]} ${styles[\"font-xx-large\"]} ${styles[\"padding-top\"]}`}\n\t\t\t\t>\n\t\t\t\t\t{sanitizedValue.val.to((value) =>\n\t\t\t\t\t\tnumberFormatter(Math.floor(value)),\n\t\t\t\t\t)}\n\t\t\t\t</animated.div>\n\t\t\t</Tooltip>\n\t\t\t{percentage ? (\n\t\t\t\t<SingleValuePercentage color={color} percentage={percentage} />\n\t\t\t) : (\n\t\t\t\t<span></span>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from './SingleValueVisualizer.js';
|
|
2
2
|
export * from './components/SingleValueItem/SingleValuePercentage.js';
|
|
3
|
+
export * from './components/SingleValueItem/SingleValueItem.js';
|
|
3
4
|
export * from './types/props.js';
|
|
4
5
|
//# sourceMappingURL=out.js.map
|
|
5
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/SingleValueContainer/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc","sourcesContent":["export * from \"./SingleValueVisualizer.js\";\nexport * from \"./components/SingleValueItem/SingleValuePercentage.js\";\nexport * from \"./types/props.js\";\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/SingleValueContainer/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc","sourcesContent":["export * from \"./SingleValueVisualizer.js\";\nexport * from \"./components/SingleValueItem/SingleValuePercentage.js\";\nexport * from \"./components/SingleValueItem/SingleValueItem.js\";\nexport * from \"./types/props.js\";\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hisptz/dhis2-analytics",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.8",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"module": "./dist/esm/index.js",
|
|
6
6
|
"types": "./dist/types/index.d.ts",
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
"tsup": "^8.0.1",
|
|
37
37
|
"typescript": "^5.3.3",
|
|
38
38
|
"usehooks-ts": "^2.9.2",
|
|
39
|
-
"@repo/
|
|
40
|
-
"@repo/
|
|
39
|
+
"@repo/eslint-config": "0.0.0",
|
|
40
|
+
"@repo/typescript-config": "0.0.0"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@react-leaflet/core": "^2.1.0",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"react-query": "^3.39.3",
|
|
56
56
|
"react-spring": "^9.6.1",
|
|
57
57
|
"screenfull": "^6.0.2",
|
|
58
|
-
"@hisptz/dhis2-ui": "2.0.
|
|
58
|
+
"@hisptz/dhis2-ui": "2.0.8",
|
|
59
59
|
"@hisptz/dhis2-utils": "2.0.4"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import "./styles/custom-highchart.css";
|
|
3
|
-
import { ChartAnalyticsProps } from "./types/props.js";
|
|
4
|
-
export * from "./services/export.js";
|
|
5
|
-
export * from "./types/props.js";
|
|
6
|
-
export * from "./components/DownloadMenu/index.js";
|
|
7
|
-
/**
|
|
8
|
-
* The `DHIS2Chart` component allows you to render a chart visualization from DHIS2 analytics data.
|
|
9
|
-
* It accepts the DHIS2 analytics payload as well as configuration on how to visualize the data.
|
|
10
|
-
*
|
|
11
|
-
* @component
|
|
12
|
-
*
|
|
13
|
-
* @param {ChartAnalyticsProps} props
|
|
14
|
-
* @param {Analytics} [props.analytics] - Analytics data from DHIS2
|
|
15
|
-
* @param {ChartConfig} [props.config] - Visualization configuration. See stories for more information
|
|
16
|
-
* @param {Record<string, any>} [props.containerProps] - Props that will be passed to the chart container
|
|
17
|
-
* @param {forwardRef} forwardRef - A function that creates a higher order component that forwards the ref through the component tree.
|
|
18
|
-
*
|
|
19
|
-
* @returns {React.ForwardRefExoticComponent<ChartAnalyticsProps>} - The DHIS2 chart component with forward ref support.
|
|
20
|
-
*/
|
|
21
|
-
export declare const DHIS2Chart: React.ForwardRefExoticComponent<ChartAnalyticsProps>;
|
|
22
|
-
/**
|
|
23
|
-
* @deprecated since `v2`. Use `DHIS2Chart` instead
|
|
24
|
-
* */
|
|
25
|
-
export declare const ChartAnalytics: React.ForwardRefExoticComponent<ChartAnalyticsProps>;
|
|
26
|
-
//# sourceMappingURL=DHIS2Chart.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DHIS2Chart.d.ts","sourceRoot":"","sources":["../../../../src/components/ChartAnalytics/DHIS2Chart.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAElD,OAAO,+BAA+B,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oCAAoC,CAAC;AAyBnD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,yBAAyB,CAAC,mBAAmB,CAG1E,CAAC;AAEH;;KAEK;AACL,eAAO,MAAM,cAAc,sDAAa,CAAC"}
|