@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,50 @@
|
|
|
1
|
+
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { colors } from '@dhis2/ui';
|
|
3
|
+
import { geoJSON } from 'leaflet';
|
|
4
|
+
import { useMemo } from 'react';
|
|
5
|
+
import { CircleMarker } from 'react-leaflet';
|
|
6
|
+
import { highlightFeature, resetHighlight, getColorFromLegendSet } from '../../../../../../utils/map.js';
|
|
7
|
+
import CustomTooltip from '../CustomTooltip/index.js';
|
|
8
|
+
|
|
9
|
+
const defaultStyle = {
|
|
10
|
+
weight: 1
|
|
11
|
+
};
|
|
12
|
+
const highlightStyle = {
|
|
13
|
+
weight: 2
|
|
14
|
+
};
|
|
15
|
+
function Bubble({
|
|
16
|
+
data,
|
|
17
|
+
highestData,
|
|
18
|
+
legends,
|
|
19
|
+
radius
|
|
20
|
+
}) {
|
|
21
|
+
const { orgUnit, data: value } = data ?? {};
|
|
22
|
+
const geoJSONObject = orgUnit.geoJSON;
|
|
23
|
+
const center = geoJSON(geoJSONObject).getBounds().getCenter();
|
|
24
|
+
const circleRadius = useMemo(() => {
|
|
25
|
+
return (value ?? 0) * (radius?.max ?? 50) / highestData;
|
|
26
|
+
}, [radius, data, highestData]);
|
|
27
|
+
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
|
|
28
|
+
CircleMarker,
|
|
29
|
+
{
|
|
30
|
+
interactive: true,
|
|
31
|
+
eventHandlers: {
|
|
32
|
+
mouseover: (e) => highlightFeature(e, highlightStyle),
|
|
33
|
+
mouseout: (e) => resetHighlight(e, defaultStyle)
|
|
34
|
+
},
|
|
35
|
+
pathOptions: {
|
|
36
|
+
fillColor: getColorFromLegendSet(legends, data.data),
|
|
37
|
+
fillOpacity: 1,
|
|
38
|
+
color: colors.grey900,
|
|
39
|
+
weight: 1
|
|
40
|
+
},
|
|
41
|
+
radius: circleRadius,
|
|
42
|
+
center,
|
|
43
|
+
children: /* @__PURE__ */ jsx(CustomTooltip, { data })
|
|
44
|
+
}
|
|
45
|
+
) });
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export { Bubble as default };
|
|
49
|
+
//# sourceMappingURL=out.js.map
|
|
50
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/index.tsx"],"names":[],"mappings":"AAyCE,mBAgBE,WAhBF;AAzCF,SAAS,cAAc;AAEvB,SAAS,eAAe;AACxB,SAAgB,eAAe;AAC/B,SAAS,oBAAoB;AAC7B;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAEP,OAAO,mBAAmB;AAE1B,MAAM,eAAe;AAAA,EACpB,QAAQ;AACT;AACA,MAAM,iBAAiB;AAAA,EACtB,QAAQ;AACT;AAEe,SAAR,OAAwB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAKG;AACF,QAAM,EAAE,SAAS,MAAM,MAAM,IAAI,QAAQ,CAAC;AAE1C,QAAM,gBAAgB,QAAQ;AAC9B,QAAM,SAAS,QAAQ,aAAa,EAAE,UAAU,EAAE,UAAU;AAE5D,QAAM,eAAe,QAAQ,MAAM;AAClC,YAAS,SAAS,MAAM,QAAQ,OAAO,MAAO;AAAA,EAC/C,GAAG,CAAC,QAAQ,MAAM,WAAW,CAAC;AAE9B,SACC,gCACC;AAAA,IAAC;AAAA;AAAA,MACA,aAAW;AAAA,MACX,eAAe;AAAA,QACd,WAAW,CAAC,MAAM,iBAAiB,GAAG,cAAc;AAAA,QACpD,UAAU,CAAC,MAAM,eAAe,GAAG,YAAY;AAAA,MAChD;AAAA,MACA,aAAa;AAAA,QACZ,WAAW,sBAAsB,SAAS,KAAK,IAAI;AAAA,QACnD,aAAa;AAAA,QACb,OAAO,OAAO;AAAA,QACd,QAAQ;AAAA,MACT;AAAA,MACA,QAAQ;AAAA,MACR;AAAA,MAEA,8BAAC,iBAAc,MAAY;AAAA;AAAA,EAC5B,GACD;AAEF","sourcesContent":["import { colors } from \"@dhis2/ui\";\nimport type { Legend } from \"@hisptz/dhis2-utils\";\nimport { geoJSON } from \"leaflet\";\nimport React, { useMemo } from \"react\";\nimport { CircleMarker } from \"react-leaflet\";\nimport {\n\tgetColorFromLegendSet,\n\thighlightFeature,\n\tresetHighlight,\n} from \"../../../../../../utils/map.js\";\nimport { ThematicLayerData } from \"../../../../interfaces/index.js\";\nimport CustomTooltip from \"../CustomTooltip/index.js\";\n\nconst defaultStyle = {\n\tweight: 1,\n};\nconst highlightStyle = {\n\tweight: 2,\n};\n\nexport default function Bubble({\n\tdata,\n\thighestData,\n\tlegends,\n\tradius,\n}: {\n\tdata: ThematicLayerData;\n\thighestData: number;\n\tlegends: Legend[];\n\tradius?: { min: number; max: number };\n}) {\n\tconst { orgUnit, data: value } = data ?? {};\n\n\tconst geoJSONObject = orgUnit.geoJSON;\n\tconst center = geoJSON(geoJSONObject).getBounds().getCenter();\n\n\tconst circleRadius = useMemo(() => {\n\t\treturn ((value ?? 0) * (radius?.max ?? 50)) / highestData;\n\t}, [radius, data, highestData]);\n\n\treturn (\n\t\t<>\n\t\t\t<CircleMarker\n\t\t\t\tinteractive\n\t\t\t\teventHandlers={{\n\t\t\t\t\tmouseover: (e) => highlightFeature(e, highlightStyle),\n\t\t\t\t\tmouseout: (e) => resetHighlight(e, defaultStyle),\n\t\t\t\t}}\n\t\t\t\tpathOptions={{\n\t\t\t\t\tfillColor: getColorFromLegendSet(legends, data.data),\n\t\t\t\t\tfillOpacity: 1,\n\t\t\t\t\tcolor: colors.grey900,\n\t\t\t\t\tweight: 1,\n\t\t\t\t}}\n\t\t\t\tradius={circleRadius}\n\t\t\t\tcenter={center}\n\t\t\t>\n\t\t\t\t<CustomTooltip data={data} />\n\t\t\t</CircleMarker>\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import '../../../styles/legends.css';
|
|
3
|
+
import { Divider } from '@dhis2/ui';
|
|
4
|
+
import { forwardRef } from 'react';
|
|
5
|
+
import { getLegendCount } from '../../../../../../../utils/map.js';
|
|
6
|
+
import LegendCardHeader from '../../../../LegendArea/components/LegendCardHeader/index.js';
|
|
7
|
+
|
|
8
|
+
function LegendItem({
|
|
9
|
+
legend,
|
|
10
|
+
value
|
|
11
|
+
}) {
|
|
12
|
+
return /* @__PURE__ */ jsxs("div", { className: "legend-item", children: [
|
|
13
|
+
/* @__PURE__ */ jsx(
|
|
14
|
+
"div",
|
|
15
|
+
{
|
|
16
|
+
className: "legend-item-color",
|
|
17
|
+
style: { backgroundColor: legend.color }
|
|
18
|
+
}
|
|
19
|
+
),
|
|
20
|
+
/* @__PURE__ */ jsx("div", { className: "legend-item-label", children: `${legend.startValue} - ${legend.endValue}` }),
|
|
21
|
+
/* @__PURE__ */ jsx("div", { className: "legend-item-value", children: `(${value})` })
|
|
22
|
+
] });
|
|
23
|
+
}
|
|
24
|
+
function ChoroplethLegend({
|
|
25
|
+
dataItem,
|
|
26
|
+
data,
|
|
27
|
+
name,
|
|
28
|
+
collapsible,
|
|
29
|
+
onCollapse,
|
|
30
|
+
legends
|
|
31
|
+
}, ref) {
|
|
32
|
+
return /* @__PURE__ */ jsxs("div", { className: "legend-card", ref, children: [
|
|
33
|
+
/* @__PURE__ */ jsx(
|
|
34
|
+
LegendCardHeader,
|
|
35
|
+
{
|
|
36
|
+
title: dataItem.displayName,
|
|
37
|
+
collapsible,
|
|
38
|
+
onCollapse
|
|
39
|
+
}
|
|
40
|
+
),
|
|
41
|
+
/* @__PURE__ */ jsx(Divider, { margin: "0" }),
|
|
42
|
+
/* @__PURE__ */ jsx("div", { className: "legend-list pt-8", children: legends?.map((legend) => /* @__PURE__ */ jsx(
|
|
43
|
+
LegendItem,
|
|
44
|
+
{
|
|
45
|
+
legend,
|
|
46
|
+
value: getLegendCount(legend, data)
|
|
47
|
+
},
|
|
48
|
+
`${legend?.color}-legend-list`
|
|
49
|
+
)) })
|
|
50
|
+
] });
|
|
51
|
+
}
|
|
52
|
+
var ChoroplethLegend_default = forwardRef(ChoroplethLegend);
|
|
53
|
+
|
|
54
|
+
export { LegendItem, ChoroplethLegend_default as default };
|
|
55
|
+
//# sourceMappingURL=out.js.map
|
|
56
|
+
//# sourceMappingURL=ChoroplethLegend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.tsx"],"names":[],"mappings":"AAmBE,SACC,KADD;AAnBF,OAAO;AACP,SAAS,eAAe;AAExB,SAAgB,kBAAkB;AAClC,SAAS,sBAAsB;AAK/B,OAAO,sBAAsB;AAEtB,SAAS,WAAW;AAAA,EAC1B;AAAA,EACA;AACD,GAGG;AACF,SACC,qBAAC,SAAI,WAAU,eACd;AAAA;AAAA,MAAC;AAAA;AAAA,QACA,WAAU;AAAA,QACV,OAAO,EAAE,iBAAiB,OAAO,MAAM;AAAA;AAAA,IACxC;AAAA,IACA,oBAAC,SAAI,WAAU,qBAAqB,aAAG,OAAO,UAAU,MAAM,OAAO,QAAQ,IAAG;AAAA,IAChF,oBAAC,SAAI,WAAU,qBAAqB,cAAI,KAAK,KAAI;AAAA,KAClD;AAEF;AAEA,SAAS,iBACR;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAQA,KACC;AACD,SACC,qBAAC,SAAI,WAAU,eAAc,KAC5B;AAAA;AAAA,MAAC;AAAA;AAAA,QACA,OAAO,SAAS;AAAA,QAChB;AAAA,QACA;AAAA;AAAA,IACD;AAAA,IACA,oBAAC,WAAQ,QAAQ,KAAK;AAAA,IACtB,oBAAC,SAAI,WAAU,oBACb,mBAAS,IAAI,CAAC,WACd;AAAA,MAAC;AAAA;AAAA,QAEA;AAAA,QACA,OAAO,eAAe,QAAQ,IAAI;AAAA;AAAA,MAF7B,GAAG,QAAQ,KAAK;AAAA,IAGtB,CACA,GACF;AAAA,KACD;AAEF;AAEA,IAAO,2BAAQ,WAAW,gBAAgB","sourcesContent":["import \"../../../styles/legends.css\";\nimport { Divider } from \"@dhis2/ui\";\nimport type { Legend } from \"@hisptz/dhis2-utils\";\nimport React, { forwardRef } from \"react\";\nimport { getLegendCount } from \"../../../../../../../utils/map.js\";\nimport {\n\tThematicLayerData,\n\tThematicLayerDataItem,\n} from \"../../../../../interfaces/index.js\";\nimport LegendCardHeader from \"../../../../LegendArea/components/LegendCardHeader/index.js\";\n\nexport function LegendItem({\n\tlegend,\n\tvalue,\n}: {\n\tlegend: { startValue: number; endValue: number; color: string };\n\tvalue: number;\n}) {\n\treturn (\n\t\t<div className=\"legend-item\">\n\t\t\t<div\n\t\t\t\tclassName=\"legend-item-color\"\n\t\t\t\tstyle={{ backgroundColor: legend.color }}\n\t\t\t/>\n\t\t\t<div className=\"legend-item-label\">{`${legend.startValue} - ${legend.endValue}`}</div>\n\t\t\t<div className=\"legend-item-value\">{`(${value})`}</div>\n\t\t</div>\n\t);\n}\n\nfunction ChoroplethLegend(\n\t{\n\t\tdataItem,\n\t\tdata,\n\t\tname,\n\t\tcollapsible,\n\t\tonCollapse,\n\t\tlegends,\n\t}: {\n\t\tdata: ThematicLayerData[];\n\t\tdataItem: ThematicLayerDataItem;\n\t\tname?: string;\n\t\tcollapsible?: boolean;\n\t\tonCollapse?: () => void;\n\t\tlegends: Legend[];\n\t},\n\tref: React.LegacyRef<HTMLDivElement> | undefined,\n) {\n\treturn (\n\t\t<div className=\"legend-card\" ref={ref}>\n\t\t\t<LegendCardHeader\n\t\t\t\ttitle={dataItem.displayName}\n\t\t\t\tcollapsible={collapsible}\n\t\t\t\tonCollapse={onCollapse}\n\t\t\t/>\n\t\t\t<Divider margin={\"0\"} />\n\t\t\t<div className=\"legend-list pt-8\">\n\t\t\t\t{legends?.map((legend: any) => (\n\t\t\t\t\t<LegendItem\n\t\t\t\t\t\tkey={`${legend?.color}-legend-list`}\n\t\t\t\t\t\tlegend={legend}\n\t\t\t\t\t\tvalue={getLegendCount(legend, data)}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport default forwardRef(ChoroplethLegend);\n"]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { colors } from '@dhis2/ui';
|
|
3
|
+
import { GeoJSON } from 'react-leaflet';
|
|
4
|
+
import { highlightFeature, resetHighlight, getColorFromLegendSet } from '../../../../../../utils/map.js';
|
|
5
|
+
import CustomTooltip from '../CustomTooltip/index.js';
|
|
6
|
+
|
|
7
|
+
const defaultStyle = {
|
|
8
|
+
weight: 1
|
|
9
|
+
};
|
|
10
|
+
const highlightStyle = {
|
|
11
|
+
weight: 2
|
|
12
|
+
};
|
|
13
|
+
function Choropleth({
|
|
14
|
+
data,
|
|
15
|
+
legends
|
|
16
|
+
}) {
|
|
17
|
+
const { orgUnit } = data;
|
|
18
|
+
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
|
|
19
|
+
GeoJSON,
|
|
20
|
+
{
|
|
21
|
+
data: orgUnit.geoJSON,
|
|
22
|
+
eventHandlers: {
|
|
23
|
+
mouseover: (e) => highlightFeature(e, highlightStyle),
|
|
24
|
+
mouseout: (e) => resetHighlight(e, defaultStyle)
|
|
25
|
+
},
|
|
26
|
+
pathOptions: {
|
|
27
|
+
fillColor: getColorFromLegendSet(legends, data.data),
|
|
28
|
+
fillOpacity: 1,
|
|
29
|
+
color: colors.grey900,
|
|
30
|
+
weight: 1
|
|
31
|
+
},
|
|
32
|
+
children: /* @__PURE__ */ jsx(CustomTooltip, { data })
|
|
33
|
+
},
|
|
34
|
+
`${data.dataItem.id}-layer`
|
|
35
|
+
) });
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export { Choropleth as default };
|
|
39
|
+
//# sourceMappingURL=out.js.map
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.tsx"],"names":[],"mappings":"AAiCE,mBAeE,WAfF;AAjCF,SAAS,cAAc;AAGvB,SAAS,eAAe;AAExB;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAEP,OAAO,mBAAmB;AAE1B,MAAM,eAAe;AAAA,EACpB,QAAQ;AACT;AACA,MAAM,iBAAiB;AAAA,EACtB,QAAQ;AACT;AAEe,SAAR,WAA4B;AAAA,EAClC;AAAA,EACA;AACD,GAOG;AACF,QAAM,EAAE,QAAQ,IAAI;AACpB,SACC,gCACC;AAAA,IAAC;AAAA;AAAA,MACA,MAAM,QAAQ;AAAA,MACd,eAAe;AAAA,QACd,WAAW,CAAC,MAAM,iBAAiB,GAAG,cAAc;AAAA,QACpD,UAAU,CAAC,MAAM,eAAe,GAAG,YAAY;AAAA,MAChD;AAAA,MACA,aAAa;AAAA,QACZ,WAAW,sBAAsB,SAAS,KAAK,IAAI;AAAA,QACnD,aAAa;AAAA,QACb,OAAO,OAAO;AAAA,QACd,QAAQ;AAAA,MACT;AAAA,MAGA,8BAAC,iBAAc,MAAY;AAAA;AAAA,IAFtB,GAAG,KAAK,SAAS,EAAE;AAAA,EAGzB,GACD;AAEF","sourcesContent":["import { colors } from \"@dhis2/ui\";\nimport type { Legend } from \"@hisptz/dhis2-utils\";\nimport React from \"react\";\nimport { GeoJSON } from \"react-leaflet\";\nimport { MapOrgUnit } from \"../../../../../../interfaces/index.js\";\nimport {\n\tgetColorFromLegendSet,\n\thighlightFeature,\n\tresetHighlight,\n} from \"../../../../../../utils/map.js\";\nimport { ThematicLayerDataItem } from \"../../../../interfaces/index.js\";\nimport CustomTooltip from \"../CustomTooltip/index.js\";\n\nconst defaultStyle = {\n\tweight: 1,\n};\nconst highlightStyle = {\n\tweight: 2,\n};\n\nexport default function Choropleth({\n\tdata,\n\tlegends,\n}: {\n\tdata: {\n\t\torgUnit: MapOrgUnit;\n\t\tdata?: number;\n\t\tdataItem: ThematicLayerDataItem;\n\t};\n\tlegends: Legend[];\n}) {\n\tconst { orgUnit } = data;\n\treturn (\n\t\t<>\n\t\t\t<GeoJSON\n\t\t\t\tdata={orgUnit.geoJSON}\n\t\t\t\teventHandlers={{\n\t\t\t\t\tmouseover: (e) => highlightFeature(e, highlightStyle),\n\t\t\t\t\tmouseout: (e) => resetHighlight(e, defaultStyle),\n\t\t\t\t}}\n\t\t\t\tpathOptions={{\n\t\t\t\t\tfillColor: getColorFromLegendSet(legends, data.data),\n\t\t\t\t\tfillOpacity: 1,\n\t\t\t\t\tcolor: colors.grey900,\n\t\t\t\t\tweight: 1,\n\t\t\t\t}}\n\t\t\t\tkey={`${data.dataItem.id}-layer`}\n\t\t\t>\n\t\t\t\t<CustomTooltip data={data} />\n\t\t\t</GeoJSON>\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import i18n from '@dhis2/d2-i18n';
|
|
3
|
+
import { Pane, Tooltip, Popup } from 'react-leaflet';
|
|
4
|
+
import { useMapPeriods } from '../../../../../MapProvider/hooks/index.js';
|
|
5
|
+
|
|
6
|
+
function CustomTooltip({
|
|
7
|
+
data: dataObject
|
|
8
|
+
}) {
|
|
9
|
+
const { dataItem, orgUnit, data } = dataObject ?? {};
|
|
10
|
+
const { periods } = useMapPeriods() ?? {};
|
|
11
|
+
return /* @__PURE__ */ jsxs(
|
|
12
|
+
Pane,
|
|
13
|
+
{
|
|
14
|
+
name: `${dataItem.displayName}-${orgUnit.id}-popup-pane`,
|
|
15
|
+
pane: "popupPane",
|
|
16
|
+
children: [
|
|
17
|
+
/* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
18
|
+
orgUnit?.name,
|
|
19
|
+
" (",
|
|
20
|
+
data,
|
|
21
|
+
")"
|
|
22
|
+
] }),
|
|
23
|
+
/* @__PURE__ */ jsxs(Popup, { minWidth: 80, children: [
|
|
24
|
+
/* @__PURE__ */ jsx("h3", { style: { margin: 0 }, children: orgUnit?.name }),
|
|
25
|
+
/* @__PURE__ */ jsx("div", { children: dataItem?.displayName }),
|
|
26
|
+
/* @__PURE__ */ jsx("div", { children: periods?.map((period) => period.name).join(",") }),
|
|
27
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
28
|
+
i18n.t("Value"),
|
|
29
|
+
": ",
|
|
30
|
+
data
|
|
31
|
+
] })
|
|
32
|
+
] })
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export { CustomTooltip as default };
|
|
39
|
+
//# sourceMappingURL=out.js.map
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.tsx"],"names":[],"mappings":"AAmBG,SAIC,KAJD;AAnBH,OAAO,UAAU;AAEjB,SAAS,MAAM,OAAO,eAAe;AACrC,SAAS,qBAAqB;AAGf,SAAR,cAA+B;AAAA,EACrC,MAAM;AACP,GAEG;AACF,QAAM,EAAE,UAAU,SAAS,KAAK,IAAI,cAAc,CAAC;AACnD,QAAM,EAAE,QAAQ,IAAI,cAAc,KAAK,CAAC;AAExC,SACC;AAAA,IAAC;AAAA;AAAA,MACA,MAAM,GAAG,SAAS,WAAW,IAAI,QAAQ,EAAE;AAAA,MAC3C,MAAK;AAAA,MAEL;AAAA,6BAAC,WACC;AAAA,mBAAS;AAAA,UAAK;AAAA,UAAG;AAAA,UAAK;AAAA,WACxB;AAAA,QACA,qBAAC,SAAM,UAAU,IAChB;AAAA,8BAAC,QAAG,OAAO,EAAE,QAAQ,EAAE,GAAI,mBAAS,MAAK;AAAA,UACzC,oBAAC,SAAK,oBAAU,aAAY;AAAA,UAC5B,oBAAC,SAAK,mBAAS,IAAI,CAAC,WAAW,OAAO,IAAI,EAAE,KAAK,GAAG,GAAE;AAAA,UACtD,qBAAC,SACC;AAAA,iBAAK,EAAE,OAAO;AAAA,YAAE;AAAA,YAAG;AAAA,aACrB;AAAA,WACD;AAAA;AAAA;AAAA,EACD;AAEF","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport React from \"react\";\nimport { Pane, Popup, Tooltip } from \"react-leaflet\";\nimport { useMapPeriods } from \"../../../../../MapProvider/hooks/index.js\";\nimport { ThematicLayerData } from \"../../../../interfaces/index.js\";\n\nexport default function CustomTooltip({\n\tdata: dataObject,\n}: {\n\tdata: ThematicLayerData;\n}) {\n\tconst { dataItem, orgUnit, data } = dataObject ?? {};\n\tconst { periods } = useMapPeriods() ?? {};\n\n\treturn (\n\t\t<Pane\n\t\t\tname={`${dataItem.displayName}-${orgUnit.id}-popup-pane`}\n\t\t\tpane=\"popupPane\"\n\t\t>\n\t\t\t<Tooltip>\n\t\t\t\t{orgUnit?.name} ({data})\n\t\t\t</Tooltip>\n\t\t\t<Popup minWidth={80}>\n\t\t\t\t<h3 style={{ margin: 0 }}>{orgUnit?.name}</h3>\n\t\t\t\t<div>{dataItem?.displayName}</div>\n\t\t\t\t<div>{periods?.map((period) => period.name).join(\",\")}</div>\n\t\t\t\t<div>\n\t\t\t\t\t{i18n.t(\"Value\")}: {data}\n\t\t\t\t</div>\n\t\t\t</Popup>\n\t\t</Pane>\n\t);\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { find } from 'lodash';
|
|
2
|
+
import { useContext } from 'react';
|
|
3
|
+
import { MapLayersContext } from '../../../../../state/index.js';
|
|
4
|
+
|
|
5
|
+
function useThematicLayer(layerId) {
|
|
6
|
+
const { layers } = useContext(MapLayersContext);
|
|
7
|
+
return find(layers, ["id", layerId]);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export { useThematicLayer as default };
|
|
11
|
+
//# sourceMappingURL=out.js.map
|
|
12
|
+
//# sourceMappingURL=config.js.map
|
package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/hooks/config.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/hooks/config.ts"],"names":[],"mappings":"AAAA,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAC3B,SAAS,wBAAwB;AAGlB,SAAR,iBACN,SACkC;AAClC,QAAM,EAAE,OAAO,IAAI,WAAW,gBAAgB;AAE9C,SAAO,KAAK,QAAiC,CAAC,MAAM,OAAO,CAAC;AAC7D","sourcesContent":["import { find } from \"lodash\";\nimport { useContext } from \"react\";\nimport { MapLayersContext } from \"../../../../../state/index.js\";\nimport { CustomThematicLayer } from \"../../../interfaces/index.js\";\n\nexport default function useThematicLayer(\n\tlayerId: string,\n): CustomThematicLayer | undefined {\n\tconst { layers } = useContext(MapLayersContext);\n\n\treturn find(layers as CustomThematicLayer[], [\"id\", layerId]);\n}\n"]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { last } from 'lodash';
|
|
3
|
+
import { LayersControl, Pane, LayerGroup } from 'react-leaflet';
|
|
4
|
+
import Bubble from './components/Bubble/index.js';
|
|
5
|
+
import Choropleth from './components/Choropleth/index.js';
|
|
6
|
+
import useThematicLayer from './hooks/config.js';
|
|
7
|
+
|
|
8
|
+
function ThematicLayer({
|
|
9
|
+
layerId,
|
|
10
|
+
index
|
|
11
|
+
}) {
|
|
12
|
+
const layer = useThematicLayer(layerId);
|
|
13
|
+
if (!layer) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
const { type, dataItem, name, data, enabled, legends } = layer ?? {};
|
|
17
|
+
const uniqueName = name ?? dataItem.displayName;
|
|
18
|
+
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(LayersControl.Overlay, { checked: enabled, name: uniqueName, children: /* @__PURE__ */ jsx(
|
|
19
|
+
Pane,
|
|
20
|
+
{
|
|
21
|
+
style: {
|
|
22
|
+
zIndex: type === "bubble" ? 500 : 500 - (index + 1)
|
|
23
|
+
},
|
|
24
|
+
name: uniqueName,
|
|
25
|
+
children: /* @__PURE__ */ jsxs(LayerGroup, { children: [
|
|
26
|
+
data?.map(
|
|
27
|
+
(datum) => type === "choropleth" ? /* @__PURE__ */ jsx(
|
|
28
|
+
Choropleth,
|
|
29
|
+
{
|
|
30
|
+
legends: legends ?? [],
|
|
31
|
+
data: datum
|
|
32
|
+
},
|
|
33
|
+
`${datum?.dataItem?.id}-${datum?.orgUnit?.id}-layer`
|
|
34
|
+
) : null
|
|
35
|
+
),
|
|
36
|
+
data?.map(
|
|
37
|
+
(datum) => type === "bubble" ? /* @__PURE__ */ jsx(
|
|
38
|
+
Bubble,
|
|
39
|
+
{
|
|
40
|
+
radius: layer?.radius,
|
|
41
|
+
legends: legends ?? [],
|
|
42
|
+
highestData: last(data)?.data ?? 1,
|
|
43
|
+
data: datum
|
|
44
|
+
},
|
|
45
|
+
`${datum?.dataItem?.id}-${datum?.orgUnit?.id}-layer`
|
|
46
|
+
) : null
|
|
47
|
+
)
|
|
48
|
+
] })
|
|
49
|
+
}
|
|
50
|
+
) }) });
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export { ThematicLayer as default };
|
|
54
|
+
//# sourceMappingURL=out.js.map
|
|
55
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/index.tsx"],"names":[],"mappings":"AAwBE,mBAWM,KAHH,YARH;AAxBF,SAAS,YAAY;AAErB,SAAS,YAAY,eAAe,YAAY;AAEhD,OAAO,YAAY;AACnB,OAAO,gBAAgB;AACvB,OAAO,sBAAsB;AAEd,SAAR,cAA+B;AAAA,EACrC;AAAA,EACA;AACD,GAGG;AACF,QAAM,QAAQ,iBAAiB,OAAO;AAEtC,MAAI,CAAC,OAAO;AACX,WAAO;AAAA,EACR;AAEA,QAAM,EAAE,MAAM,UAAU,MAAM,MAAM,SAAS,QAAQ,IAAI,SAAS,CAAC;AACnE,QAAM,aAAa,QAAQ,SAAS;AACpC,SACC,gCACC,8BAAC,cAAc,SAAd,EAAsB,SAAS,SAAS,MAAM,YAC9C;AAAA,IAAC;AAAA;AAAA,MACA,OAAO;AAAA,QACN,QAAQ,SAAS,WAAW,MAAM,OAAO,QAAQ;AAAA,MAClD;AAAA,MACA,MAAM;AAAA,MAEN,+BAAC,cACC;AAAA,cAAM;AAAA,UAAI,CAAC,UACX,SAAS,eACR;AAAA,YAAC;AAAA;AAAA,cACA,SAAS,WAAW,CAAC;AAAA,cACrB,MAAM;AAAA;AAAA,YACD,GAAG,OAAO,UAAU,EAAE,IAAI,OAAO,SAAS,EAAE;AAAA,UAClD,IACG;AAAA,QACL;AAAA,QACC,MAAM;AAAA,UAAI,CAAC,UACX,SAAS,WACR;AAAA,YAAC;AAAA;AAAA,cACA,QACE,OAA6B;AAAA,cAE/B,SAAS,WAAW,CAAC;AAAA,cACrB,aAAa,KAAK,IAAI,GAAG,QAAQ;AAAA,cACjC,MAAM;AAAA;AAAA,YACD,GAAG,OAAO,UAAU,EAAE,IAAI,OAAO,SAAS,EAAE;AAAA,UAClD,IACG;AAAA,QACL;AAAA,SACD;AAAA;AAAA,EACD,GACD,GACD;AAEF","sourcesContent":["import { last } from \"lodash\";\nimport React from \"react\";\nimport { LayerGroup, LayersControl, Pane } from \"react-leaflet\";\nimport { CustomBubbleLayer } from \"../../interfaces/index.js\";\nimport Bubble from \"./components/Bubble/index.js\";\nimport Choropleth from \"./components/Choropleth/index.js\";\nimport useThematicLayer from \"./hooks/config.js\";\n\nexport default function ThematicLayer({\n\tlayerId,\n\tindex,\n}: {\n\tlayerId: string;\n\tindex: number;\n}) {\n\tconst layer = useThematicLayer(layerId);\n\n\tif (!layer) {\n\t\treturn null;\n\t}\n\n\tconst { type, dataItem, name, data, enabled, legends } = layer ?? {};\n\tconst uniqueName = name ?? dataItem.displayName;\n\treturn (\n\t\t<>\n\t\t\t<LayersControl.Overlay checked={enabled} name={uniqueName}>\n\t\t\t\t<Pane\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tzIndex: type === \"bubble\" ? 500 : 500 - (index + 1),\n\t\t\t\t\t}}\n\t\t\t\t\tname={uniqueName}\n\t\t\t\t>\n\t\t\t\t\t<LayerGroup>\n\t\t\t\t\t\t{data?.map((datum) =>\n\t\t\t\t\t\t\ttype === \"choropleth\" ? (\n\t\t\t\t\t\t\t\t<Choropleth\n\t\t\t\t\t\t\t\t\tlegends={legends ?? []}\n\t\t\t\t\t\t\t\t\tdata={datum}\n\t\t\t\t\t\t\t\t\tkey={`${datum?.dataItem?.id}-${datum?.orgUnit?.id}-layer`}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : null,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{data?.map((datum) =>\n\t\t\t\t\t\t\ttype === \"bubble\" ? (\n\t\t\t\t\t\t\t\t<Bubble\n\t\t\t\t\t\t\t\t\tradius={\n\t\t\t\t\t\t\t\t\t\t(layer as CustomBubbleLayer)?.radius\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tlegends={legends ?? []}\n\t\t\t\t\t\t\t\t\thighestData={last(data)?.data ?? 1}\n\t\t\t\t\t\t\t\t\tdata={datum}\n\t\t\t\t\t\t\t\t\tkey={`${datum?.dataItem?.id}-${datum?.orgUnit?.id}-layer`}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : null,\n\t\t\t\t\t\t)}\n\t\t\t\t\t</LayerGroup>\n\t\t\t\t</Pane>\n\t\t\t</LayersControl.Overlay>\n\t\t</>\n\t);\n}\n"]}
|
package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/styles/legends.css
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
.legend-card {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
justify-content: center;
|
|
5
|
+
align-items: center;
|
|
6
|
+
height: 100%;
|
|
7
|
+
padding: 0.5rem;
|
|
8
|
+
border-radius: 0.2rem;
|
|
9
|
+
background-color: #fff;
|
|
10
|
+
box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.1);
|
|
11
|
+
border: 2px solid rgba(0, 0, 0, 0.2);
|
|
12
|
+
}
|
|
13
|
+
.legend-card.collapsed {
|
|
14
|
+
padding: 0 !important;
|
|
15
|
+
float: right;
|
|
16
|
+
}
|
|
17
|
+
.legend-header {
|
|
18
|
+
font-weight: bold;
|
|
19
|
+
margin-bottom: 0.5rem;
|
|
20
|
+
}
|
|
21
|
+
.legend-item {
|
|
22
|
+
display: flex;
|
|
23
|
+
flex-direction: row;
|
|
24
|
+
align-items: center;
|
|
25
|
+
justify-content: start;
|
|
26
|
+
padding: 0 1rem;
|
|
27
|
+
gap: 16px;
|
|
28
|
+
width: 100%;
|
|
29
|
+
}
|
|
30
|
+
.legend-item-color {
|
|
31
|
+
width: 1rem;
|
|
32
|
+
height: 1rem;
|
|
33
|
+
border-radius: 1px;
|
|
34
|
+
}
|
|
35
|
+
.legend-item-label {
|
|
36
|
+
}
|
|
37
|
+
.source-url {
|
|
38
|
+
background: none !important;
|
|
39
|
+
line-height: inherit !important;
|
|
40
|
+
text-align: inherit !important;
|
|
41
|
+
width: auto !important;
|
|
42
|
+
height: auto !important;
|
|
43
|
+
text-decoration: underline !important;
|
|
44
|
+
color: #0078A8 !important;
|
|
45
|
+
}
|
|
46
|
+
.legend-list {
|
|
47
|
+
display: flex;
|
|
48
|
+
flex-direction: column;
|
|
49
|
+
justify-content: flex-start;
|
|
50
|
+
align-items: center;
|
|
51
|
+
width: 100%;
|
|
52
|
+
height: 100%;
|
|
53
|
+
background-color: #fff;
|
|
54
|
+
gap: 4px;
|
|
55
|
+
}
|
|
56
|
+
/*# sourceMappingURL=legends.css.map */
|
package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/styles/legends.css.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/styles/legends.css"],"sourcesContent":[".legend-card {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: 100%;\n padding: 0.5rem;\n border-radius: 0.2rem;\n background-color: #fff;\n box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.1);\n border: 2px solid rgba(0, 0, 0, 0.2);\n}\n\n.legend-card.collapsed {\n padding: 0 !important;\n float: right;\n}\n\n.legend-header {\n font-weight: bold;\n margin-bottom: 0.5rem;\n}\n\n.legend-item {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: start;\n padding: 0 1rem;\n gap: 16px;\n width: 100%;\n}\n\n.legend-item-color {\n width: 1rem;\n height: 1rem;\n border-radius: 1px;\n}\n\n.legend-item-label {\n}\n\n.source-url {\n background: none !important;\n line-height: inherit !important;\n text-align: inherit !important;\n width: auto !important;\n height: auto !important;\n text-decoration: underline !important;\n color: #0078A8 !important;\n}\n\n.legend-list {\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: center;\n width: 100%;\n height: 100%;\n background-color: #fff;\n gap: 4px;\n}\n"],"mappings":"AAAA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,mBAAiB;AACjB,eAAa;AACb,UAAQ;AACR,WAAS;AACT,iBAAe;AACf,oBAAkB;AAClB,cAAY,EAAE,QAAQ,OAAO,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC3C,UAAQ,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACpC;AAEA,CAbC,WAaW,CAAC;AACT,WAAS;AACT,SAAO;AACX;AAEA,CAAC;AACG,eAAa;AACb,iBAAe;AACnB;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,mBAAiB;AACjB,WAAS,EAAE;AACX,OAAK;AACL,SAAO;AACX;AAEA,CAAC;AACG,SAAO;AACP,UAAQ;AACR,iBAAe;AACnB;AAEA,CAAC;AACD;AAEA,CAAC;AACG,cAAY;AACZ,eAAa;AACb,cAAY;AACZ,SAAO;AACP,UAAQ;AACR,mBAAiB;AACjB,SAAO;AACX;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,mBAAiB;AACjB,eAAa;AACb,SAAO;AACP,UAAQ;AACR,oBAAkB;AAClB,OAAK;AACT;","names":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import BoundaryLayer from './components/BoundaryLayer/index.js';
|
|
3
|
+
import GoogleEngineLayer from './components/GoogleEngineLayer/index.js';
|
|
4
|
+
import { PointLayer } from './components/PointLayer/index.js';
|
|
5
|
+
import ThematicLayer from './components/ThematicLayer/index.js';
|
|
6
|
+
|
|
7
|
+
function MapLayer({
|
|
8
|
+
layer,
|
|
9
|
+
index
|
|
10
|
+
}) {
|
|
11
|
+
switch (layer.type) {
|
|
12
|
+
case "overlay":
|
|
13
|
+
case "basemap":
|
|
14
|
+
return /* @__PURE__ */ jsx(BoundaryLayer, { ...layer });
|
|
15
|
+
case "bubble":
|
|
16
|
+
case "choropleth":
|
|
17
|
+
return /* @__PURE__ */ jsx(ThematicLayer, { layerId: layer.id, index });
|
|
18
|
+
case "point":
|
|
19
|
+
return /* @__PURE__ */ jsx(PointLayer, {});
|
|
20
|
+
case "population":
|
|
21
|
+
case "elevation":
|
|
22
|
+
case "footprints":
|
|
23
|
+
case "landCover":
|
|
24
|
+
return /* @__PURE__ */ jsx(GoogleEngineLayer, { layerId: layer.id });
|
|
25
|
+
default:
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export { MapLayer as default };
|
|
31
|
+
//# sourceMappingURL=out.js.map
|
|
32
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/Map/components/MapLayer/index.tsx"],"names":[],"mappings":"AA0BU;AAzBV,OAAO,mBAAmB;AAC1B,OAAO,uBAAuB;AAC9B,SAAS,kBAAkB;AAC3B,OAAO,mBAAmB;AAQX,SAAR,SAA0B;AAAA,EAChC;AAAA,EACA;AACD,GAOG;AACF,UAAQ,MAAM,MAAM;AAAA,IACnB,KAAK;AAAA,IACL,KAAK;AACJ,aAAO,oBAAC,iBAAe,GAAG,OAAO;AAAA,IAClC,KAAK;AAAA,IACL,KAAK;AACJ,aAAO,oBAAC,iBAAc,SAAS,MAAM,IAAI,OAAc;AAAA,IACxD,KAAK;AACJ,aAAO,oBAAC,cAAW;AAAA,IACpB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACJ,aAAO,oBAAC,qBAAkB,SAAS,MAAM,IAAI;AAAA,IAC9C;AACC,aAAO;AAAA,EACT;AACD","sourcesContent":["import React from \"react\";\nimport BoundaryLayer from \"./components/BoundaryLayer/index.js\";\nimport GoogleEngineLayer from \"./components/GoogleEngineLayer/index.js\";\nimport { PointLayer } from \"./components/PointLayer/index.js\";\nimport ThematicLayer from \"./components/ThematicLayer/index.js\";\nimport {\n\tCustomBoundaryLayer,\n\tCustomGoogleEngineLayer,\n\tCustomPointLayer,\n\tCustomThematicLayer,\n} from \"./interfaces/index.js\";\n\nexport default function MapLayer({\n\tlayer,\n\tindex,\n}: {\n\tlayer:\n\t\t| CustomThematicLayer\n\t\t| CustomBoundaryLayer\n\t\t| CustomPointLayer\n\t\t| CustomGoogleEngineLayer;\n\tindex: number;\n}) {\n\tswitch (layer.type) {\n\t\tcase \"overlay\":\n\t\tcase \"basemap\":\n\t\t\treturn <BoundaryLayer {...layer} />;\n\t\tcase \"bubble\":\n\t\tcase \"choropleth\":\n\t\t\treturn <ThematicLayer layerId={layer.id} index={index} />;\n\t\tcase \"point\":\n\t\t\treturn <PointLayer />;\n\t\tcase \"population\":\n\t\tcase \"elevation\":\n\t\tcase \"footprints\":\n\t\tcase \"landCover\":\n\t\t\treturn <GoogleEngineLayer layerId={layer.id} />;\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/components/Map/components/MapLayer/interfaces/index.ts"],"names":[],"mappings":"AASO,MAAM,gCAAgC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD","sourcesContent":["import type { Legend } from \"@hisptz/dhis2-utils\";\nimport { MapOrgUnit, PointOrgUnit } from \"../../../interfaces/index.js\";\nimport { LegendColorScale } from \"../../../utils/colors.js\";\nimport { EarthEngineOptions } from \"../components/GoogleEngineLayer/interfaces/index.js\";\nimport { EarthEngine } from \"../components/GoogleEngineLayer/services/engine.js\";\n\nexport type BoundaryLayerType = \"basemap\" | \"overlay\";\nexport type ThematicLayerType = \"choropleth\" | \"bubble\";\n\nexport const SUPPORTED_EARTH_ENGINE_LAYERS = [\n\t\"population\",\n\t\"footprints\",\n\t\"elevation\",\n\t\"landCover\",\n];\n\nexport type GoogleEngineLayerType =\n\t| \"population\"\n\t| \"footprints\"\n\t| \"elevation\"\n\t| \"landCover\";\n\nexport interface CustomBoundaryLayer extends CustomMapLayer {\n\tid: string;\n\ttype: BoundaryLayerType;\n\tenabled: boolean;\n}\n\nexport interface EarthEngineLayerConfig extends CustomMapLayer {\n\ttype: GoogleEngineLayerType;\n\taggregations?: string[];\n\tname?: string;\n\tfilters?: {\n\t\tperiod: string;\n\t};\n\tparams?: {\n\t\tmin: number;\n\t\tmax: number;\n\t\tpalette?: string;\n\t};\n}\n\nexport interface CustomGoogleEngineLayer extends CustomMapLayer {\n\ttype: GoogleEngineLayerType;\n\toptions: EarthEngineOptions;\n\taggregations?: string[];\n\tname: string;\n\turl: string;\n\tengine?: EarthEngine;\n}\n\nexport interface CustomPointLayer extends CustomMapLayer {\n\tid: string;\n\ttype: \"point\";\n\tlabel?: string;\n\tlevel?: string | number;\n\tgroup?: string;\n\tstyle?: {\n\t\ticon?: string;\n\t\tgroupSet?: string;\n\t\torgUnitGroups?: Array<{ name: string; symbol: string }>;\n\t};\n\tpoints?: Array<PointOrgUnit>;\n}\n\nexport type DataItemType = \"dataElement\" | \"indicator\" | \"programIndicator\";\n\nexport interface ThematicLayerDataItem {\n\tid: string;\n\tdisplayName: string;\n\ttype: DataItemType;\n\tlegendSet?: string;\n\tlegendConfig?: {\n\t\tcolorClass: LegendColorScale;\n\t\tscale: number;\n\t};\n}\n\nexport interface ThematicLayerControl {\n\tposition: \"topleft\" | \"topright\" | \"bottomleft\" | \"bottomright\";\n\tenabled: boolean;\n}\n\nexport interface ThematicLayerData {\n\torgUnit: MapOrgUnit;\n\tdata?: number;\n\tdataItem: ThematicLayerDataItem;\n}\n\nexport interface ThematicLayerRawData {\n\torgUnit: string;\n\tdata?: number;\n\tdataItem: string;\n}\n\nexport interface CustomChoroplethLayer extends CustomMapLayer {\n\tenabled: boolean;\n\tname?: string;\n\tdata: ThematicLayerData[];\n\tdataItem: ThematicLayerDataItem;\n\ttype: \"choropleth\";\n\tcontrol?: ThematicLayerControl;\n\tlegends?: Legend[];\n}\n\nexport interface CustomBubbleLayer extends CustomMapLayer {\n\tenabled: boolean;\n\tname?: string;\n\tdata: ThematicLayerData[];\n\tdataItem: ThematicLayerDataItem;\n\ttype: \"bubble\";\n\tcontrol?: ThematicLayerControl;\n\tlegends?: Legend[];\n\tradius?: {\n\t\tmin: number;\n\t\tmax: number;\n\t};\n}\n\nexport type CustomThematicLayer = CustomBubbleLayer | CustomChoroplethLayer;\n\nexport interface ThematicLayerConfig {\n\tid: string;\n\tdata?: ThematicLayerRawData[];\n\tenabled: boolean;\n\tname?: string;\n\tdataItem: ThematicLayerDataItem;\n\ttype: ThematicLayerType;\n\tcontrol?: ThematicLayerControl;\n\tradius?: {\n\t\tmin: number;\n\t\tmax: number;\n\t};\n}\n\nexport interface CustomMapLayer {\n\tid: string;\n\ttype: string;\n\tenabled: boolean;\n}\n\nexport type MapLayer =\n\t| CustomBoundaryLayer\n\t| ThematicLayerConfig\n\t| CustomPointLayer\n\t| CustomGoogleEngineLayer;\n\nexport interface MapLayerProps {\n\tenabled: boolean;\n\ttype: \"boundary\" | \"thematic\" | \"external\" | \"point\" | \"earthEngine\";\n\tlayer: MapLayer;\n}\n"]}
|