@hisptz/dhis2-analytics 2.0.0-alpha.1 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ChartAnalytics/ChartAnalytics.stories.js +43 -20
- package/dist/components/ChartAnalytics/DHIS2Chart.js +43 -17
- package/dist/components/ChartAnalytics/components/DownloadMenu/components/Menu.js +16 -14
- package/dist/components/ChartAnalytics/components/DownloadMenu/constants/menu.js +14 -8
- package/dist/components/ChartAnalytics/components/DownloadMenu/index.js +21 -19
- package/dist/components/ChartAnalytics/components/DownloadMenu/interfaces/menu.js +1 -0
- package/dist/components/ChartAnalytics/hooks/useChart.js +12 -10
- package/dist/components/ChartAnalytics/index.js +12 -1
- package/dist/components/ChartAnalytics/models/bar.js +6 -3
- package/dist/components/ChartAnalytics/models/column.js +9 -6
- package/dist/components/ChartAnalytics/models/index.js +3 -1
- package/dist/components/ChartAnalytics/models/line.js +8 -6
- package/dist/components/ChartAnalytics/models/multi-series.js +14 -12
- package/dist/components/ChartAnalytics/models/pie.js +7 -5
- package/dist/components/ChartAnalytics/services/export.js +20 -7
- package/dist/components/ChartAnalytics/types/props.js +1 -0
- package/dist/components/ChartAnalytics/utils/chart.js +31 -24
- package/dist/components/CircularProgressDashboard/CircularProgressIndicator.js +23 -14
- package/dist/components/CircularProgressDashboard/CircularProgressIndicator.stories.js +10 -3
- package/dist/components/CircularProgressDashboard/index.js +19 -2
- package/dist/components/CircularProgressDashboard/types/props.js +1 -0
- package/dist/components/DHIS2PivotTable/DHIS2PivotTable.js +15 -13
- package/dist/components/DHIS2PivotTable/DHIS2PivotTable.stories.js +14 -5
- package/dist/components/DHIS2PivotTable/components/Table/index.js +6 -4
- package/dist/components/DHIS2PivotTable/components/TableBody/index.js +31 -25
- package/dist/components/DHIS2PivotTable/components/TableHeaders/index.js +30 -24
- package/dist/components/DHIS2PivotTable/index.js +19 -2
- package/dist/components/DHIS2PivotTable/interfaces/index.js +1 -0
- package/dist/components/DHIS2PivotTable/services/engine.js +12 -10
- package/dist/components/DHIS2PivotTable/state/engine.js +9 -6
- package/dist/components/Map/DHIS2Map.js +20 -13
- package/dist/components/Map/DHIS2Map.stories.js +17 -3
- package/dist/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.js +21 -15
- package/dist/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.stories.js +15 -10
- package/dist/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.js +18 -16
- package/dist/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.stories.js +12 -7
- package/dist/components/Map/components/EarthEngineLayerConfiguration/components/AggregationSelector.js +30 -24
- package/dist/components/Map/components/EarthEngineLayerConfiguration/components/ColorConfig.js +49 -42
- package/dist/components/Map/components/EarthEngineLayerConfiguration/components/Name.js +22 -16
- package/dist/components/Map/components/EarthEngineLayerConfiguration/components/PeriodSelector.js +32 -26
- package/dist/components/Map/components/EarthEngineLayerConfiguration/components/StylesConfig.js +16 -10
- package/dist/components/Map/components/EarthEngineLayerConfiguration/components/TypeField.js +27 -21
- package/dist/components/Map/components/EarthEngineLayerConfiguration/hooks/data.js +18 -15
- package/dist/components/Map/components/EarthEngineLayerConfiguration/index.js +19 -2
- package/dist/components/Map/components/MapArea/index.js +41 -32
- package/dist/components/Map/components/MapArea/interfaces/index.js +1 -0
- package/dist/components/Map/components/MapControls/components/CustomControl/index.js +5 -3
- package/dist/components/Map/components/MapControls/components/DownloadControl/index.js +14 -8
- package/dist/components/Map/components/MapControls/components/FullscreenControl/index.js +9 -7
- package/dist/components/Map/components/MapControls/index.js +17 -10
- package/dist/components/Map/components/MapLayer/components/BoundaryLayer/hooks/useBoundaryData.js +5 -3
- package/dist/components/Map/components/MapLayer/components/BoundaryLayer/index.js +31 -21
- package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/components/EarthEngineLegend.js +31 -21
- package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/constants/index.js +88 -80
- package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/hooks/index.js +14 -9
- package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/index.js +69 -62
- package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/interfaces/index.js +1 -0
- package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/services/api.js +3 -1
- package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/services/engine.js +41 -19
- package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/utils/index.js +9 -1
- package/dist/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.js +8 -6
- package/dist/components/Map/components/MapLayer/components/LegendArea/index.js +57 -46
- package/dist/components/Map/components/MapLayer/components/PointLayer/components/PointLegend/index.js +31 -25
- package/dist/components/Map/components/MapLayer/components/PointLayer/hooks/index.js +7 -5
- package/dist/components/Map/components/MapLayer/components/PointLayer/index.js +28 -21
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubble.js +12 -10
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubbles.js +32 -21
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/index.js +20 -13
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/index.js +23 -17
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.js +27 -18
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.js +19 -13
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.js +21 -15
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/hooks/config.js +8 -6
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/index.js +24 -16
- package/dist/components/Map/components/MapLayer/index.js +18 -10
- package/dist/components/Map/components/MapLayer/interfaces/index.js +3 -1
- package/dist/components/Map/components/MapProvider/components/MapLayerProvider/hooks/index.js +63 -59
- package/dist/components/Map/components/MapProvider/components/MapLayerProvider/index.js +36 -30
- package/dist/components/Map/components/MapProvider/hooks/index.js +10 -6
- package/dist/components/Map/components/MapProvider/index.js +31 -25
- package/dist/components/Map/components/MapUpdater/index.js +7 -5
- package/dist/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfigModal.js +21 -15
- package/dist/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfigModal.stories.js +10 -5
- package/dist/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.js +60 -53
- package/dist/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.stories.js +12 -7
- package/dist/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/components/ColorScale/index.js +15 -9
- package/dist/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/constants/colors.js +4 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/index.js +30 -22
- package/dist/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/utils/colors.js +18 -7
- package/dist/components/Map/components/ThematicLayerConfiguration/components/CustomLegend/index.js +30 -23
- package/dist/components/Map/components/ThematicLayerConfiguration/components/IndicatorSelectorModal/index.js +22 -16
- package/dist/components/Map/components/ThematicLayerConfiguration/components/LegendSetSelector/index.js +22 -16
- package/dist/components/Map/components/ThematicLayerConfiguration/components/RadiusField.js +22 -16
- package/dist/components/Map/components/ThematicLayerConfiguration/components/TypeField.js +24 -18
- package/dist/components/Map/components/ThematicLayerConfiguration/index.js +26 -3
- package/dist/components/Map/components/ThematicLayerConfiguration/types/index.js +1 -0
- package/dist/components/Map/constants/colors.js +4 -1
- package/dist/components/Map/constants/legendSet.js +3 -1
- package/dist/components/Map/hooks/map.js +21 -17
- package/dist/components/Map/index.js +40 -5
- package/dist/components/Map/interfaces/index.js +1 -0
- package/dist/components/Map/state/index.js +9 -5
- package/dist/components/Map/utils/colors.js +19 -7
- package/dist/components/Map/utils/helpers.js +11 -3
- package/dist/components/Map/utils/map.js +23 -13
- package/dist/components/SingleValueContainer/SingleValueContainer.stories.js +11 -3
- package/dist/components/SingleValueContainer/SingleValueVisualizer.js +35 -17
- package/dist/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.js +21 -14
- package/dist/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.js +13 -7
- package/dist/components/SingleValueContainer/index.js +26 -3
- package/dist/components/SingleValueContainer/types/props.js +1 -0
- package/dist/components/Visualization/components/AnalyticsDataProvider/index.js +23 -20
- package/dist/components/Visualization/components/DimensionsProvider/index.js +18 -13
- package/dist/components/Visualization/components/LayoutProvider/index.js +11 -7
- package/dist/components/Visualization/components/VisualizationDimensionSelector/index.js +36 -30
- package/dist/components/Visualization/components/VisualizationProvider/index.js +9 -7
- package/dist/components/Visualization/components/VisualizationSelector/index.js +57 -46
- package/dist/components/Visualization/components/VisualizationTypeProvider/index.js +18 -11
- package/dist/components/Visualization/components/VisualizationTypeSelector/index.js +27 -21
- package/dist/components/Visualization/index.js +33 -27
- package/dist/esm/components/ChartAnalytics/ChartAnalytics.stories.js +254 -0
- package/dist/esm/components/ChartAnalytics/ChartAnalytics.stories.js.map +1 -0
- package/dist/esm/components/ChartAnalytics/DHIS2Chart.js +36 -0
- package/dist/esm/components/ChartAnalytics/DHIS2Chart.js.map +1 -0
- package/dist/esm/components/ChartAnalytics/components/DownloadMenu/components/Menu.js +52 -0
- package/dist/esm/components/ChartAnalytics/components/DownloadMenu/components/Menu.js.map +1 -0
- package/dist/esm/components/ChartAnalytics/components/DownloadMenu/constants/menu.js +42 -0
- package/dist/esm/components/ChartAnalytics/components/DownloadMenu/constants/menu.js.map +1 -0
- package/dist/esm/components/ChartAnalytics/components/DownloadMenu/index.js +65 -0
- package/dist/esm/components/ChartAnalytics/components/DownloadMenu/index.js.map +1 -0
- package/dist/esm/components/ChartAnalytics/components/DownloadMenu/interfaces/menu.js +3 -0
- package/dist/esm/components/ChartAnalytics/components/DownloadMenu/interfaces/menu.js.map +1 -0
- package/dist/esm/components/ChartAnalytics/hooks/useChart.js +43 -0
- package/dist/esm/components/ChartAnalytics/hooks/useChart.js.map +1 -0
- package/dist/esm/components/ChartAnalytics/index.js +3 -0
- package/dist/esm/components/ChartAnalytics/index.js.map +1 -0
- package/dist/esm/components/ChartAnalytics/models/bar.js +21 -0
- package/dist/esm/components/ChartAnalytics/models/bar.js.map +1 -0
- package/dist/esm/components/ChartAnalytics/models/column.js +48 -0
- package/dist/esm/components/ChartAnalytics/models/column.js.map +1 -0
- package/dist/esm/components/ChartAnalytics/models/index.js +114 -0
- package/dist/esm/components/ChartAnalytics/models/index.js.map +1 -0
- package/dist/esm/components/ChartAnalytics/models/line.js +31 -0
- package/dist/esm/components/ChartAnalytics/models/line.js.map +1 -0
- package/dist/esm/components/ChartAnalytics/models/multi-series.js +112 -0
- package/dist/esm/components/ChartAnalytics/models/multi-series.js.map +1 -0
- package/dist/esm/components/ChartAnalytics/models/pie.js +53 -0
- package/dist/esm/components/ChartAnalytics/models/pie.js.map +1 -0
- package/dist/esm/components/ChartAnalytics/services/export.js +35 -0
- package/dist/esm/components/ChartAnalytics/services/export.js.map +1 -0
- package/dist/esm/components/ChartAnalytics/styles/custom-highchart.css +40 -0
- package/dist/esm/components/ChartAnalytics/styles/custom-highchart.css.map +1 -0
- package/dist/esm/components/ChartAnalytics/types/props.js +3 -0
- package/dist/esm/components/ChartAnalytics/types/props.js.map +1 -0
- package/dist/esm/components/ChartAnalytics/utils/chart.js +130 -0
- package/dist/esm/components/ChartAnalytics/utils/chart.js.map +1 -0
- package/dist/esm/components/CircularProgressDashboard/CircularProgressIndicator.js +66 -0
- package/dist/esm/components/CircularProgressDashboard/CircularProgressIndicator.js.map +1 -0
- package/dist/esm/components/CircularProgressDashboard/CircularProgressIndicator.stories.js +42 -0
- package/dist/esm/components/CircularProgressDashboard/CircularProgressIndicator.stories.js.map +1 -0
- package/dist/esm/components/CircularProgressDashboard/index.js +4 -0
- package/dist/esm/components/CircularProgressDashboard/index.js.map +1 -0
- package/dist/esm/components/CircularProgressDashboard/types/props.js +3 -0
- package/dist/esm/components/CircularProgressDashboard/types/props.js.map +1 -0
- package/dist/esm/components/DHIS2PivotTable/DHIS2PivotTable.js +26 -0
- package/dist/esm/components/DHIS2PivotTable/DHIS2PivotTable.js.map +1 -0
- package/dist/esm/components/DHIS2PivotTable/DHIS2PivotTable.stories.js +30 -0
- package/dist/esm/components/DHIS2PivotTable/DHIS2PivotTable.stories.js.map +1 -0
- package/dist/esm/components/DHIS2PivotTable/components/Table/index.js +10 -0
- package/dist/esm/components/DHIS2PivotTable/components/Table/index.js.map +1 -0
- package/dist/esm/components/DHIS2PivotTable/components/TableBody/TableBody.module.css +11 -0
- package/dist/esm/components/DHIS2PivotTable/components/TableBody/TableBody.module.css.map +1 -0
- package/dist/esm/components/DHIS2PivotTable/components/TableBody/index.js +106 -0
- package/dist/esm/components/DHIS2PivotTable/components/TableBody/index.js.map +1 -0
- package/dist/esm/components/DHIS2PivotTable/components/TableHeaders/TableHeaders.module.css +10 -0
- package/dist/esm/components/DHIS2PivotTable/components/TableHeaders/TableHeaders.module.css.map +1 -0
- package/dist/esm/components/DHIS2PivotTable/components/TableHeaders/index.js +94 -0
- package/dist/esm/components/DHIS2PivotTable/components/TableHeaders/index.js.map +1 -0
- package/dist/esm/components/DHIS2PivotTable/index.js +4 -0
- package/dist/esm/components/DHIS2PivotTable/index.js.map +1 -0
- package/dist/esm/components/DHIS2PivotTable/interfaces/index.js +3 -0
- package/dist/esm/components/DHIS2PivotTable/interfaces/index.js.map +1 -0
- package/dist/esm/components/DHIS2PivotTable/services/engine.js +87 -0
- package/dist/esm/components/DHIS2PivotTable/services/engine.js.map +1 -0
- package/dist/esm/components/DHIS2PivotTable/state/engine.js +17 -0
- package/dist/esm/components/DHIS2PivotTable/state/engine.js.map +1 -0
- package/dist/esm/components/Map/DHIS2Map.js +65 -0
- package/dist/esm/components/Map/DHIS2Map.js.map +1 -0
- package/dist/esm/components/Map/DHIS2Map.stories.js +366 -0
- package/dist/esm/components/Map/DHIS2Map.stories.js.map +1 -0
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.js +41 -0
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.js.map +1 -0
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.stories.js +34 -0
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.stories.js.map +1 -0
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.js +26 -0
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.js.map +1 -0
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.stories.js +21 -0
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.stories.js.map +1 -0
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/AggregationSelector.js +67 -0
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/AggregationSelector.js.map +1 -0
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/ColorConfig.js +134 -0
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/ColorConfig.js.map +1 -0
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/Name.js +44 -0
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/Name.js.map +1 -0
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/PeriodSelector.js +67 -0
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/PeriodSelector.js.map +1 -0
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/StylesConfig.js +24 -0
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/StylesConfig.js.map +1 -0
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/TypeField.js +67 -0
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/TypeField.js.map +1 -0
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/hooks/data.js +45 -0
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/hooks/data.js.map +1 -0
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/index.js +4 -0
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapArea/index.js +100 -0
- package/dist/esm/components/Map/components/MapArea/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapArea/interfaces/index.js +3 -0
- package/dist/esm/components/Map/components/MapArea/interfaces/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapControls/components/CustomControl/index.js +16 -0
- package/dist/esm/components/Map/components/MapControls/components/CustomControl/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapControls/components/DownloadControl/index.js +15 -0
- package/dist/esm/components/Map/components/MapControls/components/DownloadControl/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapControls/components/FullscreenControl/index.js +13 -0
- package/dist/esm/components/Map/components/MapControls/components/FullscreenControl/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapControls/index.js +35 -0
- package/dist/esm/components/Map/components/MapControls/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/BoundaryLayer/hooks/useBoundaryData.js +10 -0
- package/dist/esm/components/Map/components/MapLayer/components/BoundaryLayer/hooks/useBoundaryData.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/BoundaryLayer/index.js +52 -0
- package/dist/esm/components/Map/components/MapLayer/components/BoundaryLayer/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/components/EarthEngineLegend.js +100 -0
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/components/EarthEngineLegend.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/constants/index.js +457 -0
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/constants/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/hooks/index.js +32 -0
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/hooks/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/index.js +197 -0
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/interfaces/index.js +3 -0
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/interfaces/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/services/api.js +31466 -0
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/services/api.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/services/engine.js +365 -0
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/services/engine.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/utils/index.js +93 -0
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/utils/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/LegendArea/LegendArea.module.css +10 -0
- package/dist/esm/components/Map/components/MapLayer/components/LegendArea/LegendArea.module.css.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.js +17 -0
- package/dist/esm/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/LegendArea/index.js +179 -0
- package/dist/esm/components/Map/components/MapLayer/components/LegendArea/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/PointLayer/components/PointLegend/index.js +92 -0
- package/dist/esm/components/Map/components/MapLayer/components/PointLayer/components/PointLegend/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/PointLayer/hooks/index.js +11 -0
- package/dist/esm/components/Map/components/MapLayer/components/PointLayer/hooks/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/PointLayer/index.js +48 -0
- package/dist/esm/components/Map/components/MapLayer/components/PointLayer/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubble.js +64 -0
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubble.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubbles.js +130 -0
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubbles.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/index.js +41 -0
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/index.js +50 -0
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.js +56 -0
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.js +40 -0
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.js +40 -0
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/hooks/config.js +12 -0
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/hooks/config.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/index.js +55 -0
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/styles/legends.css +56 -0
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/styles/legends.css.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/index.js +32 -0
- package/dist/esm/components/Map/components/MapLayer/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/interfaces/index.js +10 -0
- package/dist/esm/components/Map/components/MapLayer/interfaces/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapProvider/components/MapLayerProvider/hooks/index.js +405 -0
- package/dist/esm/components/Map/components/MapProvider/components/MapLayerProvider/hooks/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapProvider/components/MapLayerProvider/index.js +115 -0
- package/dist/esm/components/Map/components/MapProvider/components/MapLayerProvider/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapProvider/hooks/index.js +16 -0
- package/dist/esm/components/Map/components/MapProvider/hooks/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapProvider/index.js +95 -0
- package/dist/esm/components/Map/components/MapProvider/index.js.map +1 -0
- package/dist/esm/components/Map/components/MapUpdater/index.js +11 -0
- package/dist/esm/components/Map/components/MapUpdater/index.js.map +1 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfigModal.js +41 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfigModal.js.map +1 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfigModal.stories.js +24 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfigModal.stories.js.map +1 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.js +174 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.js.map +1 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.stories.js +21 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.stories.js.map +1 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/components/ColorScale/index.js +36 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/components/ColorScale/index.js.map +1 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/constants/colors.js +436 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/constants/colors.js.map +1 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/index.js +71 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/index.js.map +1 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/styles/ColorScale.module.css +15 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/styles/ColorScale.module.css.map +1 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/styles/ColorScaleSelect.module.css +12 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/styles/ColorScaleSelect.module.css.map +1 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/utils/colors.js +82 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/utils/colors.js.map +1 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/CustomLegend/index.js +57 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/CustomLegend/index.js.map +1 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/IndicatorSelectorModal/index.js +44 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/IndicatorSelectorModal/index.js.map +1 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/LegendSetSelector/index.js +60 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/LegendSetSelector/index.js.map +1 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/RadiusField.js +54 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/RadiusField.js.map +1 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/TypeField.js +63 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/TypeField.js.map +1 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/index.js +5 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/index.js.map +1 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/types/index.js +3 -0
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/types/index.js.map +1 -0
- package/dist/esm/components/Map/constants/colors.js +436 -0
- package/dist/esm/components/Map/constants/colors.js.map +1 -0
- package/dist/esm/components/Map/constants/legendSet.js +23 -0
- package/dist/esm/components/Map/constants/legendSet.js.map +1 -0
- package/dist/esm/components/Map/hooks/map.js +44 -0
- package/dist/esm/components/Map/hooks/map.js.map +1 -0
- package/dist/esm/components/Map/index.js +7 -0
- package/dist/esm/components/Map/index.js.map +1 -0
- package/dist/esm/components/Map/interfaces/index.js +3 -0
- package/dist/esm/components/Map/interfaces/index.js.map +1 -0
- package/dist/esm/components/Map/state/index.js +18 -0
- package/dist/esm/components/Map/state/index.js.map +1 -0
- package/dist/esm/components/Map/utils/colors.js +85 -0
- package/dist/esm/components/Map/utils/colors.js.map +1 -0
- package/dist/esm/components/Map/utils/helpers.js +18 -0
- package/dist/esm/components/Map/utils/helpers.js.map +1 -0
- package/dist/esm/components/Map/utils/map.js +138 -0
- package/dist/esm/components/Map/utils/map.js.map +1 -0
- package/dist/esm/components/SingleValueContainer/SingleValueContainer.stories.js +145 -0
- package/dist/esm/components/SingleValueContainer/SingleValueContainer.stories.js.map +1 -0
- package/dist/esm/components/SingleValueContainer/SingleValueVisualizer.js +44 -0
- package/dist/esm/components/SingleValueContainer/SingleValueVisualizer.js.map +1 -0
- package/dist/esm/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.js +49 -0
- package/dist/esm/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.js.map +1 -0
- package/dist/esm/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.js +22 -0
- package/dist/esm/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.js.map +1 -0
- package/dist/esm/components/SingleValueContainer/index.js +5 -0
- package/dist/esm/components/SingleValueContainer/index.js.map +1 -0
- package/dist/esm/components/SingleValueContainer/styles/SingleValueContainer.module.css +32 -0
- package/dist/esm/components/SingleValueContainer/styles/SingleValueContainer.module.css.map +1 -0
- package/dist/esm/components/SingleValueContainer/types/props.js +3 -0
- package/dist/esm/components/SingleValueContainer/types/props.js.map +1 -0
- package/dist/esm/components/Visualization/components/AnalyticsDataProvider/index.js +94 -0
- package/dist/esm/components/Visualization/components/AnalyticsDataProvider/index.js.map +1 -0
- package/dist/esm/components/Visualization/components/DimensionsProvider/index.js +35 -0
- package/dist/esm/components/Visualization/components/DimensionsProvider/index.js.map +1 -0
- package/dist/esm/components/Visualization/components/LayoutProvider/index.js +18 -0
- package/dist/esm/components/Visualization/components/LayoutProvider/index.js.map +1 -0
- package/dist/esm/components/Visualization/components/VisualizationDimensionSelector/index.js +85 -0
- package/dist/esm/components/Visualization/components/VisualizationDimensionSelector/index.js.map +1 -0
- package/dist/esm/components/Visualization/components/VisualizationProvider/index.js +19 -0
- package/dist/esm/components/Visualization/components/VisualizationProvider/index.js.map +1 -0
- package/dist/esm/components/Visualization/components/VisualizationSelector/index.js +167 -0
- package/dist/esm/components/Visualization/components/VisualizationSelector/index.js.map +1 -0
- package/dist/esm/components/Visualization/components/VisualizationTypeProvider/index.js +27 -0
- package/dist/esm/components/Visualization/components/VisualizationTypeProvider/index.js.map +1 -0
- package/dist/esm/components/Visualization/components/VisualizationTypeSelector/index.js +55 -0
- package/dist/esm/components/Visualization/components/VisualizationTypeSelector/index.js.map +1 -0
- package/dist/esm/components/Visualization/index.js +113 -0
- package/dist/esm/components/Visualization/index.js.map +1 -0
- package/dist/esm/index.js +8 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/index.js +47 -6
- package/package.json +5 -6
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { SingleValueVisualizer } from './SingleValueVisualizer';
|
|
2
|
+
|
|
3
|
+
const meta = {
|
|
4
|
+
title: "Single Value Visualizer",
|
|
5
|
+
component: SingleValueVisualizer
|
|
6
|
+
};
|
|
7
|
+
var SingleValueContainer_stories_default = meta;
|
|
8
|
+
const Default = {
|
|
9
|
+
name: "Default"
|
|
10
|
+
};
|
|
11
|
+
Default.args = {
|
|
12
|
+
title: "PRIORITY INDICATORS",
|
|
13
|
+
singleValueItems: [
|
|
14
|
+
{
|
|
15
|
+
label: "Total Bookings",
|
|
16
|
+
value: 136
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
label: "At least one dose",
|
|
20
|
+
value: 45,
|
|
21
|
+
percentage: 23,
|
|
22
|
+
color: "#0D47A1"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
label: "Partially vaccinated",
|
|
26
|
+
value: 13,
|
|
27
|
+
percentage: 17,
|
|
28
|
+
color: "#0D47A1"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
label: "Fully vaccinated",
|
|
32
|
+
value: 126,
|
|
33
|
+
percentage: 83,
|
|
34
|
+
color: "#0D47A1"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
label: "Number of AEFI",
|
|
38
|
+
value: 26
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
};
|
|
42
|
+
const AnimatedAllValues = {
|
|
43
|
+
name: "Animated all values"
|
|
44
|
+
};
|
|
45
|
+
AnimatedAllValues.args = {
|
|
46
|
+
title: "PRIORITY INDICATORS",
|
|
47
|
+
animationDuration: 1500,
|
|
48
|
+
animationDelay: 500,
|
|
49
|
+
singleValueItems: [
|
|
50
|
+
{
|
|
51
|
+
label: "Total Bookings",
|
|
52
|
+
value: 136344
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
label: "At least one dose",
|
|
56
|
+
value: 4423,
|
|
57
|
+
percentage: 23,
|
|
58
|
+
color: "#0D47A1"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
label: "Partially vaccinated",
|
|
62
|
+
value: 1394,
|
|
63
|
+
percentage: 17,
|
|
64
|
+
color: "#0D47A1"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
label: "Fully vaccinated",
|
|
68
|
+
value: 12432,
|
|
69
|
+
percentage: 83,
|
|
70
|
+
color: "#0D47A1"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
label: "Number of AEFI",
|
|
74
|
+
value: 26423
|
|
75
|
+
}
|
|
76
|
+
]
|
|
77
|
+
};
|
|
78
|
+
const AnimatedSingleValue = {
|
|
79
|
+
name: "Animated single value"
|
|
80
|
+
};
|
|
81
|
+
AnimatedSingleValue.args = {
|
|
82
|
+
title: "PRIORITY INDICATORS",
|
|
83
|
+
singleValueItems: [
|
|
84
|
+
{
|
|
85
|
+
label: "Total Bookings",
|
|
86
|
+
value: 13634244,
|
|
87
|
+
animationDuration: 1e3,
|
|
88
|
+
animationDelay: 100
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
label: "At least one dose",
|
|
92
|
+
value: 45423,
|
|
93
|
+
percentage: 23,
|
|
94
|
+
color: "#0D47A1",
|
|
95
|
+
animationDuration: 1e3,
|
|
96
|
+
animationDelay: 600
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
label: "Partially vaccinated",
|
|
100
|
+
value: 13434,
|
|
101
|
+
percentage: 17,
|
|
102
|
+
color: "#0D47A1",
|
|
103
|
+
animationDuration: 1e3,
|
|
104
|
+
animationDelay: 1100
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
label: "Fully vaccinated",
|
|
108
|
+
value: 126432,
|
|
109
|
+
percentage: 83,
|
|
110
|
+
color: "#0D47A1",
|
|
111
|
+
animationDuration: 1e3,
|
|
112
|
+
animationDelay: 1600
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
label: "Number of AEFI",
|
|
116
|
+
value: 268423,
|
|
117
|
+
animationDuration: 1e3,
|
|
118
|
+
animationDelay: 2e3
|
|
119
|
+
}
|
|
120
|
+
]
|
|
121
|
+
};
|
|
122
|
+
const SingleValuesWithDecimalPlaces = {
|
|
123
|
+
name: "Single value with decimal places"
|
|
124
|
+
};
|
|
125
|
+
SingleValuesWithDecimalPlaces.args = {
|
|
126
|
+
title: "ENROLLMENTS",
|
|
127
|
+
animationDuration: 1500,
|
|
128
|
+
animationDelay: 500,
|
|
129
|
+
singleValueItems: [
|
|
130
|
+
{
|
|
131
|
+
label: "Number of Enrolled Clients",
|
|
132
|
+
value: 268423,
|
|
133
|
+
decimalPlaces: 3
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
label: "Number of Served Clients",
|
|
137
|
+
value: 268423,
|
|
138
|
+
decimalPlaces: 1
|
|
139
|
+
}
|
|
140
|
+
]
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
export { AnimatedAllValues, AnimatedSingleValue, Default, SingleValuesWithDecimalPlaces, SingleValueContainer_stories_default as default };
|
|
144
|
+
//# sourceMappingURL=out.js.map
|
|
145
|
+
//# sourceMappingURL=SingleValueContainer.stories.js.map
|
|
@@ -0,0 +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"]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import i18n from '@dhis2/d2-i18n';
|
|
3
|
+
import { CssReset } from '@dhis2/ui';
|
|
4
|
+
import { Suspense } from 'react';
|
|
5
|
+
import SingleValueItem from './components/SingleValueItem/SingleValueItem.js';
|
|
6
|
+
export { default as SingleValueItem } from './components/SingleValueItem/SingleValueItem.js';
|
|
7
|
+
import styles from './styles/SingleValueContainer.module.css';
|
|
8
|
+
export * from './types/props.js';
|
|
9
|
+
|
|
10
|
+
function SingleValueVisualizer({
|
|
11
|
+
title,
|
|
12
|
+
singleValueItems,
|
|
13
|
+
animationDuration,
|
|
14
|
+
animationDelay
|
|
15
|
+
}) {
|
|
16
|
+
return /* @__PURE__ */ jsxs("div", { className: "w-100 h-100", children: [
|
|
17
|
+
/* @__PURE__ */ jsx(CssReset, {}),
|
|
18
|
+
/* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx("div", { children: i18n.t("Loading ...") }), children: /* @__PURE__ */ jsxs("div", { children: [
|
|
19
|
+
/* @__PURE__ */ jsx(
|
|
20
|
+
"span",
|
|
21
|
+
{
|
|
22
|
+
className: `${styles["font-x-large"]} ${styles["font-bold"]}`,
|
|
23
|
+
children: title
|
|
24
|
+
}
|
|
25
|
+
),
|
|
26
|
+
/* @__PURE__ */ jsx("div", { className: styles["single-value-list"], children: singleValueItems.map(
|
|
27
|
+
(singleValueItem) => /* @__PURE__ */ jsx(
|
|
28
|
+
SingleValueItem,
|
|
29
|
+
{
|
|
30
|
+
...singleValueItem,
|
|
31
|
+
globalAnimationDuration: animationDuration,
|
|
32
|
+
globalAnimationDelay: animationDelay
|
|
33
|
+
},
|
|
34
|
+
`${singleValueItem.label}-${singleValueItem.value}`
|
|
35
|
+
)
|
|
36
|
+
) })
|
|
37
|
+
] }) })
|
|
38
|
+
] });
|
|
39
|
+
}
|
|
40
|
+
const SingleValueContainer = SingleValueVisualizer;
|
|
41
|
+
|
|
42
|
+
export { SingleValueContainer, SingleValueVisualizer };
|
|
43
|
+
//# sourceMappingURL=out.js.map
|
|
44
|
+
//# sourceMappingURL=SingleValueVisualizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/SingleValueContainer/SingleValueVisualizer.tsx"],"names":[],"mappings":"AAiBG,cAEC,YAFD;AAjBH,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;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,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}: 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\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
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { Tooltip } from '@dhis2/ui';
|
|
3
|
+
import { capitalize } from 'lodash';
|
|
4
|
+
import { useSpring, animated } from 'react-spring';
|
|
5
|
+
import styles from '../../styles/SingleValueContainer.module.css';
|
|
6
|
+
import SingleValuePercentage from './SingleValuePercentage.js';
|
|
7
|
+
|
|
8
|
+
function SingleValueItem({
|
|
9
|
+
label,
|
|
10
|
+
value,
|
|
11
|
+
color,
|
|
12
|
+
percentage,
|
|
13
|
+
animationDuration,
|
|
14
|
+
animationDelay,
|
|
15
|
+
globalAnimationDelay,
|
|
16
|
+
decimalPlaces,
|
|
17
|
+
globalAnimationDuration
|
|
18
|
+
}) {
|
|
19
|
+
const numberFormatter = (value2) => Intl.NumberFormat("en-US", {
|
|
20
|
+
notation: "compact",
|
|
21
|
+
maximumFractionDigits: decimalPlaces ?? 1
|
|
22
|
+
}).format(value2);
|
|
23
|
+
const sanitizedValue = useSpring({
|
|
24
|
+
val: value,
|
|
25
|
+
from: { val: 0 },
|
|
26
|
+
config: {
|
|
27
|
+
duration: animationDuration ?? globalAnimationDuration ?? 1e3
|
|
28
|
+
},
|
|
29
|
+
delay: animationDelay ?? globalAnimationDelay ?? 10
|
|
30
|
+
});
|
|
31
|
+
const tooltipContent = `${label}: ${value}`;
|
|
32
|
+
return /* @__PURE__ */ jsxs("div", { className: `${styles["single-value-item"]} text-center`, children: [
|
|
33
|
+
/* @__PURE__ */ jsx("div", { className: styles["font-large"], children: label }),
|
|
34
|
+
/* @__PURE__ */ jsx(Tooltip, { content: capitalize(tooltipContent), children: /* @__PURE__ */ jsx(
|
|
35
|
+
animated.div,
|
|
36
|
+
{
|
|
37
|
+
className: `${styles["font-bold"]} ${styles["font-xx-large"]} ${styles["padding-top"]}`,
|
|
38
|
+
children: sanitizedValue.val.to(
|
|
39
|
+
(value2) => numberFormatter(Math.floor(value2))
|
|
40
|
+
)
|
|
41
|
+
}
|
|
42
|
+
) }),
|
|
43
|
+
percentage ? /* @__PURE__ */ jsx(SingleValuePercentage, { color, percentage }) : /* @__PURE__ */ jsx("span", {})
|
|
44
|
+
] });
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export { SingleValueItem as default };
|
|
48
|
+
//# sourceMappingURL=out.js.map
|
|
49
|
+
//# sourceMappingURL=SingleValueItem.js.map
|
package/dist/esm/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.tsx"],"names":["value"],"mappings":"AAyCE,SACC,KADD;AAzCF,SAAS,eAAe;AACxB,SAAS,kBAAkB;AAE3B,SAAS,UAAU,iBAAiB;AACpC,OAAO,YAAY;AAEnB,OAAO,2BAA2B;AAOnB,SAAR,gBAAiC;AAAA,EACvC;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,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}\n\nexport default function SingleValueItem({\n\tlabel,\n\tvalue,\n\tcolor,\n\tpercentage,\n\tanimationDuration,\n\tanimationDelay,\n\tglobalAnimationDelay,\n\tdecimalPlaces,\n\tglobalAnimationDuration,\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\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"]}
|
package/dist/esm/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { LinearLoader } from '@dhis2/ui';
|
|
3
|
+
import styles from '../../styles/SingleValueContainer.module.css';
|
|
4
|
+
|
|
5
|
+
function SingleValuePercentage({
|
|
6
|
+
percentage,
|
|
7
|
+
color
|
|
8
|
+
}) {
|
|
9
|
+
const width = "100%";
|
|
10
|
+
return /* @__PURE__ */ jsx("div", { className: "w-100", children: /* @__PURE__ */ jsx(
|
|
11
|
+
LinearLoader,
|
|
12
|
+
{
|
|
13
|
+
className: styles["percent-value"],
|
|
14
|
+
width,
|
|
15
|
+
amount: percentage
|
|
16
|
+
}
|
|
17
|
+
) });
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export { SingleValuePercentage as default };
|
|
21
|
+
//# sourceMappingURL=out.js.map
|
|
22
|
+
//# sourceMappingURL=SingleValuePercentage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.tsx"],"names":[],"mappings":"AAWG;AAXH,SAAS,oBAAoB;AAE7B,OAAO,YAAY;AAEJ,SAAR,sBAAuC;AAAA,EAC7C;AAAA,EACA;AACD,GAA4B;AAC3B,QAAM,QAAQ;AACd,SACC,oBAAC,SAAI,WAAU,SACd;AAAA,IAAC;AAAA;AAAA,MACA,WAAW,OAAO,eAAe;AAAA,MACjC;AAAA,MACA,QAAQ;AAAA;AAAA,EACT,GACD;AAEF","sourcesContent":["import { LinearLoader } from \"@dhis2/ui\";\nimport React from \"react\";\nimport styles from \"../../styles/SingleValueContainer.module.css\";\n\nexport default function SingleValuePercentage({\n\tpercentage,\n\tcolor,\n}: any): React.ReactElement {\n\tconst width = \"100%\";\n\treturn (\n\t\t<div className=\"w-100\">\n\t\t\t<LinearLoader\n\t\t\t\tclassName={styles[\"percent-value\"]}\n\t\t\t\twidth={width}\n\t\t\t\tamount={percentage}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -0,0 +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"]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
.single-value-list {
|
|
2
|
+
padding: 10px 2px;
|
|
3
|
+
width: 100%;
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-wrap: wrap;
|
|
6
|
+
justify-content: space-around;
|
|
7
|
+
}
|
|
8
|
+
.padding-top {
|
|
9
|
+
padding-top: 12px;
|
|
10
|
+
}
|
|
11
|
+
.percent-value {
|
|
12
|
+
border-radius: 1rem;
|
|
13
|
+
}
|
|
14
|
+
.percent-value div {
|
|
15
|
+
height: .5rem !important;
|
|
16
|
+
}
|
|
17
|
+
.font-large {
|
|
18
|
+
font-size: 1rem;
|
|
19
|
+
}
|
|
20
|
+
.font-x-large {
|
|
21
|
+
font-size: 1.5rem;
|
|
22
|
+
}
|
|
23
|
+
.font-xx-large {
|
|
24
|
+
font-size: 3rem;
|
|
25
|
+
}
|
|
26
|
+
.font-bold {
|
|
27
|
+
font-weight: bold;
|
|
28
|
+
}
|
|
29
|
+
.single-value-item {
|
|
30
|
+
margin: 0 1vw;
|
|
31
|
+
}
|
|
32
|
+
/*# sourceMappingURL=SingleValueContainer.module.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/SingleValueContainer/styles/SingleValueContainer.module.css"],"sourcesContent":[".single-value-list {\n padding: 10px 2px;\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n justify-content: space-around;\n}\n\n.padding-top {\n padding-top: 12px;\n}\n\n.percent-value {\n border-radius: 1rem;\n}\n\n.percent-value div {\n height: .5rem !important;\n}\n\n.font-large {\n font-size: 1rem;\n}\n\n.font-x-large {\n font-size: 1.5rem;\n}\n\n.font-xx-large {\n font-size: 3rem;\n}\n\n.font-bold {\n font-weight: bold;\n}\n\n.single-value-item {\n margin: 0 1vw;\n}"],"mappings":"AAAA,CAAC;AACG,WAAS,KAAK;AACd,SAAO;AACP,WAAS;AACT,aAAW;AACX,mBAAiB;AACrB;AAEA,CAAC;AACG,eAAa;AACjB;AAEA,CAAC;AACG,iBAAe;AACnB;AAEA,CAJC,cAIc;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,aAAW;AACf;AAEA,CAAC;AACG,aAAW;AACf;AAEA,CAAC;AACG,aAAW;AACf;AAEA,CAAC;AACG,eAAa;AACjB;AAEA,CAAC;AACG,UAAQ,EAAE;AACd;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { createContext, useContext, useMemo, useEffect } from 'react';
|
|
3
|
+
import { useDimensions } from '../DimensionsProvider/index.js';
|
|
4
|
+
import { useDataQuery } from '@dhis2/app-runtime';
|
|
5
|
+
import { useLayout } from '../LayoutProvider/index.js';
|
|
6
|
+
import { forEach, set } from 'lodash';
|
|
7
|
+
|
|
8
|
+
const AnalyticsContext = createContext(void 0);
|
|
9
|
+
const analyticsQuery = {
|
|
10
|
+
analytics: {
|
|
11
|
+
resource: "analytics",
|
|
12
|
+
params: ({ dimensions, filters }) => {
|
|
13
|
+
return {
|
|
14
|
+
dimension: Object.keys(dimensions).map(
|
|
15
|
+
(dimension) => `${dimension}:${dimensions[dimension]?.join(";")}`
|
|
16
|
+
),
|
|
17
|
+
filter: Object.keys(filters).map(
|
|
18
|
+
(dimension) => `${dimension}:${filters[dimension]?.join(";")}`
|
|
19
|
+
),
|
|
20
|
+
includeMetadataDetails: true
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
function useAnalyticsData() {
|
|
26
|
+
return useContext(AnalyticsContext) ?? { analytics: {}, loading: false };
|
|
27
|
+
}
|
|
28
|
+
function AnalyticsDataProvider({ children }) {
|
|
29
|
+
const [analyticsDimensions] = useDimensions();
|
|
30
|
+
const [layout] = useLayout();
|
|
31
|
+
const { dimensions, filters } = useMemo(() => {
|
|
32
|
+
const dimensions2 = {};
|
|
33
|
+
const filters2 = {};
|
|
34
|
+
forEach(
|
|
35
|
+
[...layout?.columns ?? [], ...layout?.rows ?? []],
|
|
36
|
+
(dimension) => {
|
|
37
|
+
set(
|
|
38
|
+
dimensions2,
|
|
39
|
+
[dimension],
|
|
40
|
+
analyticsDimensions?.[dimension]
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
);
|
|
44
|
+
forEach([...layout?.filters ?? []], (dimension) => {
|
|
45
|
+
set(
|
|
46
|
+
filters2,
|
|
47
|
+
[dimension],
|
|
48
|
+
analyticsDimensions?.[dimension]
|
|
49
|
+
);
|
|
50
|
+
});
|
|
51
|
+
return {
|
|
52
|
+
dimensions: dimensions2,
|
|
53
|
+
filters: filters2
|
|
54
|
+
};
|
|
55
|
+
}, [layout, analyticsDimensions]);
|
|
56
|
+
console.log({
|
|
57
|
+
filters
|
|
58
|
+
});
|
|
59
|
+
const {
|
|
60
|
+
data: analytics,
|
|
61
|
+
error,
|
|
62
|
+
loading,
|
|
63
|
+
refetch,
|
|
64
|
+
called
|
|
65
|
+
} = useDataQuery(analyticsQuery, {
|
|
66
|
+
variables: {
|
|
67
|
+
dimensions,
|
|
68
|
+
filters
|
|
69
|
+
},
|
|
70
|
+
lazy: true
|
|
71
|
+
});
|
|
72
|
+
useEffect(() => {
|
|
73
|
+
refetch({
|
|
74
|
+
dimensions,
|
|
75
|
+
filters
|
|
76
|
+
});
|
|
77
|
+
}, [dimensions, filters]);
|
|
78
|
+
useEffect(() => {
|
|
79
|
+
if (error) {
|
|
80
|
+
throw error;
|
|
81
|
+
}
|
|
82
|
+
}, [error]);
|
|
83
|
+
return /* @__PURE__ */ jsx(
|
|
84
|
+
AnalyticsContext.Provider,
|
|
85
|
+
{
|
|
86
|
+
value: { analytics: analytics?.analytics, loading },
|
|
87
|
+
children
|
|
88
|
+
}
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export { AnalyticsDataProvider, useAnalyticsData };
|
|
93
|
+
//# sourceMappingURL=out.js.map
|
|
94
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/Visualization/components/AnalyticsDataProvider/index.tsx"],"names":["dimensions","filters"],"mappings":"AAqGE;AArGF,SAAgB,eAAe,YAAY,WAAW,eAAe;AAErE,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAC7B,SAAS,iBAAiB;AAC1B,SAAS,SAAS,WAAW;AAE7B,MAAM,mBAAmB,cAEvB,MAAS;AAEX,MAAM,iBAAiB;AAAA,EACtB,WAAW;AAAA,IACV,UAAU;AAAA,IACV,QAAQ,CAAC,EAAE,YAAY,QAAQ,MAAW;AACzC,aAAO;AAAA,QACN,WAAW,OAAO,KAAK,UAAU,EAAE;AAAA,UAClC,CAAC,cACA,GAAG,SAAS,IAAI,WAAW,SAAS,GAAG,KAAK,GAAG,CAAC;AAAA,QAClD;AAAA,QACA,QAAQ,OAAO,KAAK,OAAO,EAAE;AAAA,UAC5B,CAAC,cACA,GAAG,SAAS,IAAI,QAAQ,SAAS,GAAG,KAAK,GAAG,CAAC;AAAA,QAC/C;AAAA,QACA,wBAAwB;AAAA,MACzB;AAAA,IACD;AAAA,EACD;AACD;AAMO,SAAS,mBAAmB;AAClC,SAAO,WAAW,gBAAgB,KAAK,EAAE,WAAW,CAAC,GAAG,SAAS,MAAM;AACxE;AAEO,SAAS,sBAAsB,EAAE,SAAS,GAAsB;AACtE,QAAM,CAAC,mBAAmB,IAAI,cAAc;AAC5C,QAAM,CAAC,MAAM,IAAI,UAAU;AAC3B,QAAM,EAAE,YAAY,QAAQ,IAAI,QAAQ,MAAM;AAC7C,UAAMA,cAAa,CAAC;AACpB,UAAMC,WAAU,CAAC;AAEjB;AAAA,MACC,CAAC,GAAI,QAAQ,WAAW,CAAC,GAAI,GAAI,QAAQ,QAAQ,CAAC,CAAE;AAAA,MACpD,CAAC,cAAc;AACd;AAAA,UACCD;AAAA,UACA,CAAC,SAAS;AAAA,UACT,sBAA6C,SAAS;AAAA,QACxD;AAAA,MACD;AAAA,IACD;AACA,YAAQ,CAAC,GAAI,QAAQ,WAAW,CAAC,CAAE,GAAG,CAAC,cAAc;AACpD;AAAA,QACCC;AAAA,QACA,CAAC,SAAS;AAAA,QACT,sBAA6C,SAAS;AAAA,MACxD;AAAA,IACD,CAAC;AAED,WAAO;AAAA,MACN,YAAAD;AAAA,MACA,SAAAC;AAAA,IACD;AAAA,EACD,GAAG,CAAC,QAAQ,mBAAmB,CAAC;AAEhC,UAAQ,IAAI;AAAA,IACX;AAAA,EACD,CAAC;AAED,QAAM;AAAA,IACL,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI,aAAa,gBAAgB;AAAA,IAChC,WAAW;AAAA,MACV;AAAA,MACA;AAAA,IACD;AAAA,IACA,MAAM;AAAA,EACP,CAAC;AAED,YAAU,MAAM;AACf,YAAQ;AAAA,MACP;AAAA,MACA;AAAA,IACD,CAAC;AAAA,EACF,GAAG,CAAC,YAAY,OAAO,CAAC;AAExB,YAAU,MAAM;AACf,QAAI,OAAO;AACV,YAAM;AAAA,IACP;AAAA,EACD,GAAG,CAAC,KAAK,CAAC;AAEV,SACC;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACA,OAAO,EAAE,WAAW,WAAW,WAAwB,QAAQ;AAAA,MAE9D;AAAA;AAAA,EACF;AAEF","sourcesContent":["import React, { createContext, useContext, useEffect, useMemo } from \"react\";\nimport { Analytics, AnalyticsDimension } from \"@hisptz/dhis2-utils\";\nimport { useDimensions } from \"../DimensionsProvider/index.js\";\nimport { useDataQuery } from \"@dhis2/app-runtime\";\nimport { useLayout } from \"../LayoutProvider/index.js\";\nimport { forEach, set } from \"lodash\";\n\nconst AnalyticsContext = createContext<\n\t{ loading: boolean; analytics: Analytics } | undefined\n>(undefined);\n\nconst analyticsQuery = {\n\tanalytics: {\n\t\tresource: \"analytics\",\n\t\tparams: ({ dimensions, filters }: any) => {\n\t\t\treturn {\n\t\t\t\tdimension: Object.keys(dimensions).map(\n\t\t\t\t\t(dimension) =>\n\t\t\t\t\t\t`${dimension}:${dimensions[dimension]?.join(\";\")}`,\n\t\t\t\t),\n\t\t\t\tfilter: Object.keys(filters).map(\n\t\t\t\t\t(dimension) =>\n\t\t\t\t\t\t`${dimension}:${filters[dimension]?.join(\";\")}`,\n\t\t\t\t),\n\t\t\t\tincludeMetadataDetails: true,\n\t\t\t};\n\t\t},\n\t},\n};\n\nexport interface DataProviderProps {\n\tchildren: React.ReactNode;\n}\n\nexport function useAnalyticsData() {\n\treturn useContext(AnalyticsContext) ?? { analytics: {}, loading: false };\n}\n\nexport function AnalyticsDataProvider({ children }: DataProviderProps) {\n\tconst [analyticsDimensions] = useDimensions();\n\tconst [layout] = useLayout();\n\tconst { dimensions, filters } = useMemo(() => {\n\t\tconst dimensions = {};\n\t\tconst filters = {};\n\n\t\tforEach(\n\t\t\t[...(layout?.columns ?? []), ...(layout?.rows ?? [])],\n\t\t\t(dimension) => {\n\t\t\t\tset(\n\t\t\t\t\tdimensions,\n\t\t\t\t\t[dimension],\n\t\t\t\t\t(analyticsDimensions as AnalyticsDimension)?.[dimension],\n\t\t\t\t);\n\t\t\t},\n\t\t);\n\t\tforEach([...(layout?.filters ?? [])], (dimension) => {\n\t\t\tset(\n\t\t\t\tfilters,\n\t\t\t\t[dimension],\n\t\t\t\t(analyticsDimensions as AnalyticsDimension)?.[dimension],\n\t\t\t);\n\t\t});\n\n\t\treturn {\n\t\t\tdimensions,\n\t\t\tfilters,\n\t\t};\n\t}, [layout, analyticsDimensions]);\n\n\tconsole.log({\n\t\tfilters,\n\t});\n\n\tconst {\n\t\tdata: analytics,\n\t\terror,\n\t\tloading,\n\t\trefetch,\n\t\tcalled,\n\t} = useDataQuery(analyticsQuery, {\n\t\tvariables: {\n\t\t\tdimensions,\n\t\t\tfilters,\n\t\t},\n\t\tlazy: true,\n\t});\n\n\tuseEffect(() => {\n\t\trefetch({\n\t\t\tdimensions,\n\t\t\tfilters,\n\t\t});\n\t}, [dimensions, filters]);\n\n\tuseEffect(() => {\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\t}, [error]);\n\n\treturn (\n\t\t<AnalyticsContext.Provider\n\t\t\tvalue={{ analytics: analytics?.analytics as Analytics, loading }}\n\t\t>\n\t\t\t{children}\n\t\t</AnalyticsContext.Provider>\n\t);\n}\n"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { createContext, useContext, useReducer } from 'react';
|
|
3
|
+
import { set } from 'lodash';
|
|
4
|
+
import { useUpdateEffect } from 'usehooks-ts';
|
|
5
|
+
|
|
6
|
+
const DimensionState = createContext({
|
|
7
|
+
dx: [],
|
|
8
|
+
pe: [],
|
|
9
|
+
ou: []
|
|
10
|
+
});
|
|
11
|
+
const DimensionUpdateState = createContext(void 0);
|
|
12
|
+
function reducer(state, { dimension, value }) {
|
|
13
|
+
const updatedState = { ...state ?? {} };
|
|
14
|
+
set(updatedState, [dimension], value);
|
|
15
|
+
return updatedState;
|
|
16
|
+
}
|
|
17
|
+
function useDimensions() {
|
|
18
|
+
return [
|
|
19
|
+
useContext(DimensionState),
|
|
20
|
+
useContext(DimensionUpdateState)
|
|
21
|
+
];
|
|
22
|
+
}
|
|
23
|
+
function DimensionsProvider({ children, dimensions }) {
|
|
24
|
+
const [state, dispatch] = useReducer(reducer, dimensions);
|
|
25
|
+
useUpdateEffect(() => {
|
|
26
|
+
Object.keys(dimensions).forEach((dimension) => {
|
|
27
|
+
dispatch({ dimension, value: dimensions[dimension] ?? [] });
|
|
28
|
+
});
|
|
29
|
+
}, [dimensions]);
|
|
30
|
+
return /* @__PURE__ */ jsx(DimensionState.Provider, { value: state, children: /* @__PURE__ */ jsx(DimensionUpdateState.Provider, { value: dispatch, children }) });
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export { DimensionState, DimensionUpdateState, DimensionsProvider, useDimensions };
|
|
34
|
+
//# sourceMappingURL=out.js.map
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/Visualization/components/DimensionsProvider/index.tsx"],"names":[],"mappings":"AA6CQ;AA7CR,SAAgB,eAAe,YAAY,kBAAkB;AAE7D,SAAS,WAAW;AACpB,SAAS,uBAAuB;AAKzB,MAAM,iBAAiB,cAAkC;AAAA,EAC5D,IAAI,CAAC;AAAA,EACL,IAAI,CAAC;AAAA,EACL,IAAI,CAAC;AACT,CAAC;AACM,MAAM,uBAAuB,cAA4C,MAAS;AAGzF,SAAS,QAAQ,OAA2B,EAAC,WAAW,MAAK,GAA8C;AACvG,QAAM,eAAe,EAAC,GAAI,SAAS,CAAC,EAAE;AACtC,MAAI,cAAc,CAAC,SAAS,GAAG,KAAK;AACpC,SAAO;AACX;AAOO,SAAS,gBAAgB;AAC5B,SAAO;AAAA,IACH,WAAW,cAAc;AAAA,IACzB,WAAW,oBAAoB;AAAA,EACnC;AACJ;AAEO,SAAS,mBAAmB,EAAC,UAAU,WAAU,GAA2B;AAC/E,QAAM,CAAC,OAAO,QAAQ,IAAI,WAAW,SAAS,UAAU;AAExD,kBAAgB,MAAM;AAClB,WAAO,KAAK,UAAU,EAAE,QAAQ,CAAC,cAAsB;AACnD,eAAS,EAAC,WAAmC,OAAO,WAAW,SAAS,KAAK,CAAC,EAAC,CAAC;AAAA,IACpF,CAAC;AAAA,EACL,GAAG,CAAC,UAAU,CAAC;AAGf,SAAO,oBAAC,eAAe,UAAf,EAAwB,OAAO,OACnC,8BAAC,qBAAqB,UAArB,EAA8B,OAAO,UACjC,UACL,GACJ;AACJ","sourcesContent":["import React, { createContext, useContext, useReducer } from \"react\";\nimport { AnalyticsDimension } from \"@hisptz/dhis2-utils\";\nimport { set } from \"lodash\";\nimport { useUpdateEffect } from \"usehooks-ts\";\n\nexport type Dimension = \"ou\" | \"pe\" | \"dx\" | \"co\";\n\nexport type DimensionUpdater = (data: { dimension: Dimension; value: string[] }) => void\nexport const DimensionState = createContext<AnalyticsDimension>({\n dx: [],\n pe: [],\n ou: []\n})\nexport const DimensionUpdateState = createContext<DimensionUpdater | undefined>(undefined);\n\n\nfunction reducer(state: AnalyticsDimension, {dimension, value}: { dimension: Dimension, value: string[] }) {\n const updatedState = {...(state ?? {})};\n set(updatedState, [dimension], value);\n return updatedState\n}\n\nexport interface DimensionProviderProps {\n children: React.ReactNode,\n dimensions: AnalyticsDimension\n}\n\nexport function useDimensions() {\n return [\n useContext(DimensionState),\n useContext(DimensionUpdateState)\n ] as [AnalyticsDimension, DimensionUpdater]\n}\n\nexport function DimensionsProvider({children, dimensions}: DimensionProviderProps) {\n const [state, dispatch] = useReducer(reducer, dimensions);\n\n useUpdateEffect(() => {\n Object.keys(dimensions).forEach((dimension: string) => {\n dispatch({dimension: dimension as Dimension, value: dimensions[dimension] ?? []})\n })\n }, [dimensions]);\n\n\n return <DimensionState.Provider value={state}>\n <DimensionUpdateState.Provider value={dispatch}>\n {children}\n </DimensionUpdateState.Provider>\n </DimensionState.Provider>\n}\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { createContext, useContext, useState } from 'react';
|
|
3
|
+
|
|
4
|
+
const LayoutState = createContext(void 0);
|
|
5
|
+
function useLayout() {
|
|
6
|
+
return [useContext(LayoutState) ?? { rows: [], filters: [], columns: [] }];
|
|
7
|
+
}
|
|
8
|
+
function LayoutProvider({
|
|
9
|
+
defaultLayout,
|
|
10
|
+
children
|
|
11
|
+
}) {
|
|
12
|
+
const [layout, setLayout] = useState(defaultLayout);
|
|
13
|
+
return /* @__PURE__ */ jsx(LayoutState.Provider, { value: layout, children });
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export { LayoutProvider, LayoutState, useLayout };
|
|
17
|
+
//# sourceMappingURL=out.js.map
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/Visualization/components/LayoutProvider/index.tsx"],"names":[],"mappings":"AA2BE;AA3BF,SAAgB,eAAe,YAAY,gBAAgB;AAcpD,MAAM,cAAc,cAAkC,MAAS;AAE/D,SAAS,YAAY;AAC3B,SAAO,CAAC,WAAW,WAAW,KAAK,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC;AAC1E;AAEO,SAAS,eAAe;AAAA,EAC9B;AAAA,EACA;AACD,GAAwB;AACvB,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,aAAa;AAElD,SACC,oBAAC,YAAY,UAAZ,EAAqB,OAAO,QAAS,UAAS;AAEjD","sourcesContent":["import React, { createContext, useContext, useState } from \"react\";\nimport { Dimension } from \"../DimensionsProvider/index.js\";\n\nexport interface Layout {\n\trows: Dimension[];\n\tcolumns: Dimension[];\n\tfilters: Dimension[];\n}\n\nexport interface LayoutProviderProps {\n\tchildren: React.ReactNode;\n\tdefaultLayout: Layout;\n}\n\nexport const LayoutState = createContext<Layout | undefined>(undefined);\n\nexport function useLayout() {\n\treturn [useContext(LayoutState) ?? { rows: [], filters: [], columns: [] }];\n}\n\nexport function LayoutProvider({\n\tdefaultLayout,\n\tchildren,\n}: LayoutProviderProps) {\n\tconst [layout, setLayout] = useState(defaultLayout);\n\n\treturn (\n\t\t<LayoutState.Provider value={layout}>{children}</LayoutState.Provider>\n\t);\n}\n"]}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { useMemo, useState, useCallback } from 'react';
|
|
3
|
+
import { Tooltip, Button, IconClock24, IconLocation24 } from '@dhis2/ui';
|
|
4
|
+
import i18n from '@dhis2/d2-i18n';
|
|
5
|
+
import { useDimensions } from '../DimensionsProvider/index.js';
|
|
6
|
+
import { PeriodSelectorModal, OrgUnitSelectorModal } from '@hisptz/dhis2-ui';
|
|
7
|
+
import { getOrgUnitSelectionFromIds } from '../VisualizationSelector/index.js';
|
|
8
|
+
import { getOrgUnitsSelection } from '../../../Map/utils/map.js';
|
|
9
|
+
|
|
10
|
+
function VisualizationDimensionSelector({
|
|
11
|
+
showPeriodSelector,
|
|
12
|
+
showOrgUnitSelector
|
|
13
|
+
}) {
|
|
14
|
+
const [dimensions, setDimensions] = useDimensions();
|
|
15
|
+
const periods = useMemo(() => dimensions.pe, [dimensions.pe]);
|
|
16
|
+
const orgUnitSelection = useMemo(
|
|
17
|
+
() => getOrgUnitSelectionFromIds(dimensions.ou ?? []),
|
|
18
|
+
[dimensions.ou]
|
|
19
|
+
);
|
|
20
|
+
const [openFilter, setOpenFilter] = useState();
|
|
21
|
+
const onFilterUpdate = useCallback(
|
|
22
|
+
(type) => (data) => {
|
|
23
|
+
setOpenFilter(void 0);
|
|
24
|
+
if (type === "ou") {
|
|
25
|
+
setDimensions({
|
|
26
|
+
dimension: "ou",
|
|
27
|
+
value: getOrgUnitsSelection(data)
|
|
28
|
+
});
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (type === "pe") {
|
|
32
|
+
setDimensions({ dimension: "pe", value: data });
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
[setDimensions]
|
|
37
|
+
);
|
|
38
|
+
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs("div", { style: { display: "flex", gap: 8 }, children: [
|
|
39
|
+
showPeriodSelector && /* @__PURE__ */ jsx(Tooltip, { content: i18n.t("Period"), children: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
40
|
+
/* @__PURE__ */ jsx(
|
|
41
|
+
PeriodSelectorModal,
|
|
42
|
+
{
|
|
43
|
+
position: "middle",
|
|
44
|
+
enablePeriodSelector: true,
|
|
45
|
+
selectedPeriods: periods,
|
|
46
|
+
onClose: () => setOpenFilter(void 0),
|
|
47
|
+
hide: openFilter !== "pe",
|
|
48
|
+
onUpdate: onFilterUpdate("pe")
|
|
49
|
+
}
|
|
50
|
+
),
|
|
51
|
+
/* @__PURE__ */ jsx(
|
|
52
|
+
Button,
|
|
53
|
+
{
|
|
54
|
+
onClick: () => setOpenFilter("pe"),
|
|
55
|
+
icon: /* @__PURE__ */ jsx(IconClock24, {})
|
|
56
|
+
}
|
|
57
|
+
)
|
|
58
|
+
] }) }),
|
|
59
|
+
showOrgUnitSelector && /* @__PURE__ */ jsx(Tooltip, { content: i18n.t("Location"), children: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
60
|
+
/* @__PURE__ */ jsx(
|
|
61
|
+
OrgUnitSelectorModal,
|
|
62
|
+
{
|
|
63
|
+
showUserOptions: true,
|
|
64
|
+
searchable: true,
|
|
65
|
+
title: i18n.t("Select location(s)"),
|
|
66
|
+
value: orgUnitSelection,
|
|
67
|
+
onClose: () => setOpenFilter(void 0),
|
|
68
|
+
hide: openFilter !== "ou",
|
|
69
|
+
onUpdate: onFilterUpdate("ou")
|
|
70
|
+
}
|
|
71
|
+
),
|
|
72
|
+
/* @__PURE__ */ jsx(
|
|
73
|
+
Button,
|
|
74
|
+
{
|
|
75
|
+
onClick: () => setOpenFilter("ou"),
|
|
76
|
+
icon: /* @__PURE__ */ jsx(IconLocation24, {})
|
|
77
|
+
}
|
|
78
|
+
)
|
|
79
|
+
] }) })
|
|
80
|
+
] }) });
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export { VisualizationDimensionSelector };
|
|
84
|
+
//# sourceMappingURL=out.js.map
|
|
85
|
+
//# sourceMappingURL=index.js.map
|
package/dist/esm/components/Visualization/components/VisualizationDimensionSelector/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/Visualization/components/VisualizationDimensionSelector/index.tsx"],"names":[],"mappings":"AA+CM,mBACC,KADD;AA/CN,SAAgB,aAAa,SAAS,gBAAgB;AACtD,SAAS,QAAQ,aAAa,gBAAgB,eAAe;AAC7D,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB,2BAA2B;AAE1D,SAAS,kCAAkC;AAC3C,SAAS,4BAA4B;AAE9B,SAAS,+BAA+B;AAAA,EAC9C;AAAA,EACA;AACD,GAGG;AACF,QAAM,CAAC,YAAY,aAAa,IAAI,cAAc;AAClD,QAAM,UAAU,QAAQ,MAAM,WAAW,IAAI,CAAC,WAAW,EAAE,CAAC;AAC5D,QAAM,mBAAmB;AAAA,IACxB,MAAM,2BAA2B,WAAW,MAAM,CAAC,CAAC;AAAA,IACpD,CAAC,WAAW,EAAE;AAAA,EACf;AACA,QAAM,CAAC,YAAY,aAAa,IAAI,SAAkC;AAEtE,QAAM,iBAAiB;AAAA,IACtB,CAAC,SAAsB,CAAC,SAAiC;AACxD,oBAAc,MAAS;AACvB,UAAI,SAAS,MAAM;AAClB,sBAAc;AAAA,UACb,WAAW;AAAA,UACX,OAAO,qBAAqB,IAAI;AAAA,QACjC,CAAC;AACD;AAAA,MACD;AACA,UAAI,SAAS,MAAM;AAClB,sBAAc,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AAC9C;AAAA,MACD;AAAA,IACD;AAAA,IACA,CAAC,aAAa;AAAA,EACf;AAEA,SACC,gCACC,+BAAC,SAAI,OAAO,EAAE,SAAS,QAAQ,KAAK,EAAE,GACpC;AAAA,0BACA,oBAAC,WAAQ,SAAS,KAAK,EAAE,QAAQ,GAChC,2CACC;AAAA;AAAA,QAAC;AAAA;AAAA,UACA,UAAS;AAAA,UACT,sBAAoB;AAAA,UACpB,iBAAiB;AAAA,UACjB,SAAS,MAAM,cAAc,MAAS;AAAA,UACtC,MAAM,eAAe;AAAA,UACrB,UAAU,eAAe,IAAI;AAAA;AAAA,MAC9B;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACA,SAAS,MAAM,cAAc,IAAI;AAAA,UACjC,MAAM,oBAAC,eAAY;AAAA;AAAA,MACpB;AAAA,OACD,GACD;AAAA,IAEA,uBACA,oBAAC,WAAQ,SAAS,KAAK,EAAE,UAAU,GAClC,2CACC;AAAA;AAAA,QAAC;AAAA;AAAA,UACA,iBAAe;AAAA,UACf,YAAU;AAAA,UACV,OAAO,KAAK,EAAE,oBAAoB;AAAA,UAClC,OAAO;AAAA,UACP,SAAS,MAAM,cAAc,MAAS;AAAA,UACtC,MAAM,eAAe;AAAA,UACrB,UAAU,eAAe,IAAI;AAAA;AAAA,MAC9B;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACA,SAAS,MAAM,cAAc,IAAI;AAAA,UACjC,MAAM,oBAAC,kBAAe;AAAA;AAAA,MACvB;AAAA,OACD,GACD;AAAA,KAEF,GACD;AAEF","sourcesContent":["import React, { useCallback, useMemo, useState } from \"react\";\nimport { Button, IconClock24, IconLocation24, Tooltip } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useDimensions } from \"../DimensionsProvider/index.js\";\nimport { OrgUnitSelectorModal, PeriodSelectorModal } from \"@hisptz/dhis2-ui\";\nimport { OrgUnitSelection } from \"@hisptz/dhis2-utils\";\nimport { getOrgUnitSelectionFromIds } from \"../VisualizationSelector/index.js\";\nimport { getOrgUnitsSelection } from \"../../../Map/utils/map.js\";\n\nexport function VisualizationDimensionSelector({\n\tshowPeriodSelector,\n\tshowOrgUnitSelector,\n}: {\n\tshowPeriodSelector?: boolean;\n\tshowOrgUnitSelector?: boolean;\n}) {\n\tconst [dimensions, setDimensions] = useDimensions();\n\tconst periods = useMemo(() => dimensions.pe, [dimensions.pe]);\n\tconst orgUnitSelection = useMemo(\n\t\t() => getOrgUnitSelectionFromIds(dimensions.ou ?? []),\n\t\t[dimensions.ou],\n\t);\n\tconst [openFilter, setOpenFilter] = useState<\"pe\" | \"ou\" | undefined>();\n\n\tconst onFilterUpdate = useCallback(\n\t\t(type: \"ou\" | \"pe\") => (data: OrgUnitSelection | any) => {\n\t\t\tsetOpenFilter(undefined);\n\t\t\tif (type === \"ou\") {\n\t\t\t\tsetDimensions({\n\t\t\t\t\tdimension: \"ou\",\n\t\t\t\t\tvalue: getOrgUnitsSelection(data),\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (type === \"pe\") {\n\t\t\t\tsetDimensions({ dimension: \"pe\", value: data });\n\t\t\t\treturn;\n\t\t\t}\n\t\t},\n\t\t[setDimensions],\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<div style={{ display: \"flex\", gap: 8 }}>\n\t\t\t\t{showPeriodSelector && (\n\t\t\t\t\t<Tooltip content={i18n.t(\"Period\")}>\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<PeriodSelectorModal\n\t\t\t\t\t\t\t\tposition=\"middle\"\n\t\t\t\t\t\t\t\tenablePeriodSelector\n\t\t\t\t\t\t\t\tselectedPeriods={periods}\n\t\t\t\t\t\t\t\tonClose={() => setOpenFilter(undefined)}\n\t\t\t\t\t\t\t\thide={openFilter !== \"pe\"}\n\t\t\t\t\t\t\t\tonUpdate={onFilterUpdate(\"pe\")}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tonClick={() => setOpenFilter(\"pe\")}\n\t\t\t\t\t\t\t\ticon={<IconClock24 />}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t)}\n\t\t\t\t{showOrgUnitSelector && (\n\t\t\t\t\t<Tooltip content={i18n.t(\"Location\")}>\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<OrgUnitSelectorModal\n\t\t\t\t\t\t\t\tshowUserOptions\n\t\t\t\t\t\t\t\tsearchable\n\t\t\t\t\t\t\t\ttitle={i18n.t(\"Select location(s)\")}\n\t\t\t\t\t\t\t\tvalue={orgUnitSelection}\n\t\t\t\t\t\t\t\tonClose={() => setOpenFilter(undefined)}\n\t\t\t\t\t\t\t\thide={openFilter !== \"ou\"}\n\t\t\t\t\t\t\t\tonUpdate={onFilterUpdate(\"ou\")}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tonClick={() => setOpenFilter(\"ou\")}\n\t\t\t\t\t\t\t\ticon={<IconLocation24 />}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { LayoutProvider } from '../LayoutProvider/index.js';
|
|
3
|
+
import { DimensionsProvider } from '../DimensionsProvider/index.js';
|
|
4
|
+
import { AnalyticsDataProvider } from '../AnalyticsDataProvider/index.js';
|
|
5
|
+
import { VisualizationTypeProvider } from '../VisualizationTypeProvider/index.js';
|
|
6
|
+
|
|
7
|
+
function VisualizationProvider({
|
|
8
|
+
layout,
|
|
9
|
+
dimensions,
|
|
10
|
+
children,
|
|
11
|
+
type,
|
|
12
|
+
config
|
|
13
|
+
}) {
|
|
14
|
+
return /* @__PURE__ */ jsx(DimensionsProvider, { dimensions, children: /* @__PURE__ */ jsx(VisualizationTypeProvider, { config, defaultType: type, children: /* @__PURE__ */ jsx(LayoutProvider, { defaultLayout: layout, children: /* @__PURE__ */ jsx(AnalyticsDataProvider, { children }) }) }) });
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { VisualizationProvider };
|
|
18
|
+
//# sourceMappingURL=out.js.map
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/Visualization/components/VisualizationProvider/index.tsx"],"names":[],"mappings":"AA8BK;AA7BL,SAAiB,sBAAsB;AAEvC,SAAS,0BAA0B;AACnC,SAAS,6BAA6B;AACtC;AAAA,EAEC;AAAA,OACM;AAWA,SAAS,sBAAsB;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAA+B;AAC9B,SACC,oBAAC,sBAAmB,YACnB,8BAAC,6BAA0B,QAAgB,aAAa,MACvD,8BAAC,kBAAe,eAAe,QAC9B,8BAAC,yBAAuB,UAAS,GAClC,GACD,GACD;AAEF","sourcesContent":["import React from \"react\";\nimport { Layout, LayoutProvider } from \"../LayoutProvider/index.js\";\nimport { AnalyticsDimension } from \"@hisptz/dhis2-utils\";\nimport { DimensionsProvider } from \"../DimensionsProvider/index.js\";\nimport { AnalyticsDataProvider } from \"../AnalyticsDataProvider/index.js\";\nimport {\n\tVisualizationType,\n\tVisualizationTypeProvider,\n} from \"../VisualizationTypeProvider/index.js\";\nimport { VisualizationConfig } from \"../../index.js\";\n\nexport interface VisualizationProviderProps {\n\tchildren: React.ReactNode;\n\tlayout: Layout;\n\tdimensions: AnalyticsDimension;\n\ttype: VisualizationType;\n\tconfig: VisualizationConfig;\n}\n\nexport function VisualizationProvider({\n\tlayout,\n\tdimensions,\n\tchildren,\n\ttype,\n\tconfig,\n}: VisualizationProviderProps) {\n\treturn (\n\t\t<DimensionsProvider dimensions={dimensions}>\n\t\t\t<VisualizationTypeProvider config={config} defaultType={type}>\n\t\t\t\t<LayoutProvider defaultLayout={layout}>\n\t\t\t\t\t<AnalyticsDataProvider>{children}</AnalyticsDataProvider>\n\t\t\t\t</LayoutProvider>\n\t\t\t</VisualizationTypeProvider>\n\t\t</DimensionsProvider>\n\t);\n}\n"]}
|