@hisptz/dhis2-analytics 2.1.27 → 2.1.29
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/DHIS2Chart.js.map +1 -1
- package/dist/components/ChartAnalytics/components/DownloadMenu/components/Menu.js.map +1 -1
- package/dist/components/ChartAnalytics/components/DownloadMenu/constants/menu.js.map +1 -1
- package/dist/components/ChartAnalytics/components/DownloadMenu/index.js.map +1 -1
- package/dist/components/ChartAnalytics/hooks/useChart.js.map +1 -1
- package/dist/components/ChartAnalytics/models/area.js.map +1 -1
- package/dist/components/ChartAnalytics/models/bar.js.map +1 -1
- package/dist/components/ChartAnalytics/models/column.js.map +1 -1
- package/dist/components/ChartAnalytics/models/gauge.js.map +1 -1
- package/dist/components/ChartAnalytics/models/index.js.map +1 -1
- package/dist/components/ChartAnalytics/models/line.js.map +1 -1
- package/dist/components/ChartAnalytics/models/multi-series.js.map +1 -1
- package/dist/components/ChartAnalytics/models/pie.js.map +1 -1
- package/dist/components/ChartAnalytics/models/radar.js.map +1 -1
- package/dist/components/ChartAnalytics/models/scatter.js.map +1 -1
- package/dist/components/ChartAnalytics/services/export.js.map +1 -1
- package/dist/components/ChartAnalytics/utils/chart.js.map +1 -1
- package/dist/components/CircularProgressDashboard/CircularProgressIndicator.js.map +1 -1
- package/dist/components/DHIS2PivotTable/DHIS2PivotTable.js.map +1 -1
- package/dist/components/DHIS2PivotTable/components/Table/index.js.map +1 -1
- package/dist/components/DHIS2PivotTable/components/TableBody/index.js.map +1 -1
- package/dist/components/DHIS2PivotTable/components/TableHeaders/index.js.map +1 -1
- package/dist/components/DHIS2PivotTable/services/engine.js.map +1 -1
- package/dist/components/DHIS2PivotTable/state/engine.js.map +1 -1
- package/dist/components/DHIS2PivotTable/utils/color.js.map +1 -1
- package/dist/components/Map/DHIS2Map.js.map +1 -1
- package/dist/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.js.map +1 -1
- package/dist/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.js.map +1 -1
- package/dist/components/Map/components/EarthEngineLayerConfiguration/components/AggregationSelector.js.map +1 -1
- package/dist/components/Map/components/EarthEngineLayerConfiguration/components/ColorConfig.js.map +1 -1
- package/dist/components/Map/components/EarthEngineLayerConfiguration/components/Name.js.map +1 -1
- package/dist/components/Map/components/EarthEngineLayerConfiguration/components/PeriodSelector.js.map +1 -1
- package/dist/components/Map/components/EarthEngineLayerConfiguration/components/StylesConfig.js.map +1 -1
- package/dist/components/Map/components/EarthEngineLayerConfiguration/components/TypeField.js.map +1 -1
- package/dist/components/Map/components/EarthEngineLayerConfiguration/hooks/data.js.map +1 -1
- package/dist/components/Map/components/MapArea/index.js.map +1 -1
- package/dist/components/Map/components/MapControls/components/CustomControl/index.js.map +1 -1
- package/dist/components/Map/components/MapControls/components/DownloadControl/index.js.map +1 -1
- package/dist/components/Map/components/MapControls/components/FullscreenControl/index.js.map +1 -1
- package/dist/components/Map/components/MapControls/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/BoundaryLayer/hooks/useBoundaryData.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/BoundaryLayer/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/components/EarthEngineLegend.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/constants/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/hooks/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/services/api.js +22 -22
- package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/services/api.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/services/engine.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/utils/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/LegendArea/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/PointLayer/components/PointLegend/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/PointLayer/hooks/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/PointLayer/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubble.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubbles.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/LabelMarker/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/hooks/config.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/utils/label.js.map +1 -1
- package/dist/components/Map/components/MapLayer/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/interfaces/index.js.map +1 -1
- package/dist/components/Map/components/MapProvider/components/MapLayerProvider/hooks/index.js.map +1 -1
- package/dist/components/Map/components/MapProvider/components/MapLayerProvider/index.js.map +1 -1
- package/dist/components/Map/components/MapProvider/hooks/index.js.map +1 -1
- package/dist/components/Map/components/MapProvider/index.js +1 -1
- package/dist/components/Map/components/MapProvider/index.js.map +1 -1
- package/dist/components/Map/components/MapTitle/index.js.map +1 -1
- package/dist/components/Map/components/MapUpdater/index.js.map +1 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfigModal.js.map +1 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.js.map +1 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/components/ColorScale/index.js.map +1 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/constants/colors.js.map +1 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/index.js.map +1 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/utils/colors.js.map +1 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/components/CustomLegend/index.js.map +1 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/components/IndicatorSelectorModal/index.js.map +1 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/components/LegendSetSelector/index.js.map +1 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/components/RadiusField.js.map +1 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/components/TypeField.js.map +1 -1
- package/dist/components/Map/constants/colors.js.map +1 -1
- package/dist/components/Map/constants/legendSet.js.map +1 -1
- package/dist/components/Map/hooks/map.js.map +1 -1
- package/dist/components/Map/state/index.js.map +1 -1
- package/dist/components/Map/utils/colors.js.map +1 -1
- package/dist/components/Map/utils/helpers.js.map +1 -1
- package/dist/components/Map/utils/map.js.map +1 -1
- package/dist/components/SingleValueContainer/SingleValueVisualizer.js.map +1 -1
- package/dist/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.js.map +1 -1
- package/dist/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.js.map +1 -1
- package/dist/components/Visualization/components/AnalyticsDataProvider/index.js.map +1 -1
- package/dist/components/Visualization/components/DimensionsProvider/index.js.map +1 -1
- package/dist/components/Visualization/components/LayoutProvider/index.js.map +1 -1
- package/dist/components/Visualization/components/VisualizationDimensionSelector/index.js.map +1 -1
- package/dist/components/Visualization/components/VisualizationProvider/index.js.map +1 -1
- package/dist/components/Visualization/components/VisualizationSelector/index.js.map +1 -1
- package/dist/components/Visualization/components/VisualizationTypeProvider/index.js.map +1 -1
- package/dist/components/Visualization/components/VisualizationTypeSelector/index.js.map +1 -1
- package/dist/components/Visualization/index.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/DHIS2Chart.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/components/DownloadMenu/components/Menu.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/components/DownloadMenu/constants/menu.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/components/DownloadMenu/index.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/hooks/useChart.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/models/area.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/models/bar.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/models/column.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/models/gauge.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/models/index.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/models/line.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/models/multi-series.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/models/pie.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/models/radar.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/models/scatter.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/services/export.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/utils/chart.js.map +1 -1
- package/dist/esm/components/CircularProgressDashboard/CircularProgressIndicator.js.map +1 -1
- package/dist/esm/components/DHIS2PivotTable/DHIS2PivotTable.js.map +1 -1
- package/dist/esm/components/DHIS2PivotTable/components/Table/index.js.map +1 -1
- package/dist/esm/components/DHIS2PivotTable/components/TableBody/index.js.map +1 -1
- package/dist/esm/components/DHIS2PivotTable/components/TableHeaders/index.js.map +1 -1
- package/dist/esm/components/DHIS2PivotTable/services/engine.js.map +1 -1
- package/dist/esm/components/DHIS2PivotTable/state/engine.js.map +1 -1
- package/dist/esm/components/DHIS2PivotTable/utils/color.js.map +1 -1
- package/dist/esm/components/Map/DHIS2Map.js.map +1 -1
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.js.map +1 -1
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.js.map +1 -1
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/AggregationSelector.js.map +1 -1
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/ColorConfig.js.map +1 -1
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/Name.js.map +1 -1
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/PeriodSelector.js.map +1 -1
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/StylesConfig.js.map +1 -1
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/TypeField.js.map +1 -1
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/hooks/data.js.map +1 -1
- package/dist/esm/components/Map/components/MapArea/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapControls/components/CustomControl/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapControls/components/DownloadControl/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapControls/components/FullscreenControl/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapControls/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/BoundaryLayer/hooks/useBoundaryData.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/BoundaryLayer/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/components/EarthEngineLegend.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/constants/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/hooks/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/services/api.js +22 -22
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/services/api.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/services/engine.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/utils/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/LegendArea/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/PointLayer/components/PointLegend/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/PointLayer/hooks/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/PointLayer/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubble.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubbles.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/LabelMarker/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/hooks/config.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/utils/label.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/interfaces/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapProvider/components/MapLayerProvider/hooks/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapProvider/components/MapLayerProvider/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapProvider/hooks/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapProvider/index.js +1 -1
- package/dist/esm/components/Map/components/MapProvider/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapTitle/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapUpdater/index.js.map +1 -1
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfigModal.js.map +1 -1
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.js.map +1 -1
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/components/ColorScale/index.js.map +1 -1
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/constants/colors.js.map +1 -1
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/index.js.map +1 -1
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/utils/colors.js.map +1 -1
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/CustomLegend/index.js.map +1 -1
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/IndicatorSelectorModal/index.js.map +1 -1
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/LegendSetSelector/index.js.map +1 -1
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/RadiusField.js.map +1 -1
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/TypeField.js.map +1 -1
- package/dist/esm/components/Map/constants/colors.js.map +1 -1
- package/dist/esm/components/Map/constants/legendSet.js.map +1 -1
- package/dist/esm/components/Map/hooks/map.js.map +1 -1
- package/dist/esm/components/Map/state/index.js.map +1 -1
- package/dist/esm/components/Map/utils/colors.js.map +1 -1
- package/dist/esm/components/Map/utils/helpers.js.map +1 -1
- package/dist/esm/components/Map/utils/map.js.map +1 -1
- package/dist/esm/components/SingleValueContainer/SingleValueVisualizer.js.map +1 -1
- package/dist/esm/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.js.map +1 -1
- package/dist/esm/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.js.map +1 -1
- package/dist/esm/components/Visualization/components/AnalyticsDataProvider/index.js.map +1 -1
- package/dist/esm/components/Visualization/components/DimensionsProvider/index.js.map +1 -1
- package/dist/esm/components/Visualization/components/LayoutProvider/index.js.map +1 -1
- package/dist/esm/components/Visualization/components/VisualizationDimensionSelector/index.js.map +1 -1
- package/dist/esm/components/Visualization/components/VisualizationProvider/index.js.map +1 -1
- package/dist/esm/components/Visualization/components/VisualizationSelector/index.js.map +1 -1
- package/dist/esm/components/Visualization/components/VisualizationTypeProvider/index.js.map +1 -1
- package/dist/esm/components/Visualization/components/VisualizationTypeSelector/index.js.map +1 -1
- package/dist/esm/components/Visualization/index.js.map +1 -1
- package/dist/package.json +63 -0
- package/dist/types/components/ChartAnalytics/services/export.d.ts.map +1 -1
- package/dist/types/components/DHIS2PivotTable/components/TableHeaders/index.d.ts.map +1 -1
- package/package.json +8 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../src/components/Map/components/MapLayer/components/GoogleEngineLayer/services/engine.ts"],"names":["token"],"mappings":"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","file":"engine.js","sourcesContent":["import { MapOrgUnit } from \"../../../../../interfaces\";\nimport {\n\tEarthEngineOptions,\n\tEarthEngineToken,\n\tRefreshToken,\n} from \"../interfaces\";\nimport {\n\tcombineReducers,\n\tgetFeatureCollectionProperties,\n\tgetHistogramStatistics,\n\tgetInfo,\n\tgetScale,\n\thasClasses,\n} from \"../utils\";\nimport { find, head, isEmpty } from \"lodash\";\n\n//@ts-expect-error earth engine does not have types\nimport EE from \"./api\";\n// @ts-ignore\nconst ee = EE as any;\n// @ts-ignore\nwindow.ee = ee;\n\nconsole.log(ee.data);\n\nconst FEATURE_STYLE = { color: \"FFA500\", strokeWidth: 2 };\nconst DEFAULT_TILE_SCALE = 1;\n\nexport class EarthEngine {\n\ttoken?: EarthEngineToken;\n\toptions: EarthEngineOptions;\n\trefresh?: RefreshToken;\n\torgUnits?: MapOrgUnit[];\n\tinitialized = false;\n\tperiod?: string | string[];\n\tinstance: any;\n\tscale?: any;\n\timage: any;\n\taggregationData: any;\n\n\tconstructor({ options }: { options: EarthEngineOptions }) {\n\t\tthis.options = options;\n\t\tthis.initialized = true;\n\t\tthis.getInstance();\n\t}\n\n\tstatic async setToken(\n\t\ttoken: EarthEngineToken,\n\t\trefresh: RefreshToken,\n\t): Promise<void> {\n\t\tconst tokenType = \"Bearer\";\n\n\t\tfunction refreshToken(\n\t\t\tauthArgs: { scope: any },\n\t\t\tcallback: (props: any) => void,\n\t\t) {\n\t\t\trefresh().then(({ token }: { token: EarthEngineToken }) => {\n\t\t\t\tcallback({\n\t\t\t\t\t...token,\n\t\t\t\t\ttoken_type: tokenType ?? \"Bearer\",\n\t\t\t\t\tstate: authArgs?.scope,\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tawait new Promise((resolve, reject) => {\n\t\t\tif (ee.data.getAuthToken()) {\n\t\t\t\tee.initialize(null, null, resolve, reject);\n\t\t\t}\n\t\t\tif (token) {\n\t\t\t\tconst { access_token, client_id, expires_in } = token;\n\t\t\t\tee.data.setAuthToken(\n\t\t\t\t\tclient_id,\n\t\t\t\t\ttokenType ?? \"Bearer\",\n\t\t\t\t\taccess_token,\n\t\t\t\t\texpires_in,\n\t\t\t\t\tnull,\n\t\t\t\t\t() => {\n\t\t\t\t\t\tee.initialize(null, null, resolve, reject);\n\t\t\t\t\t},\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\t\t\t\tee.data.setAuthTokenRefresher(refreshToken);\n\t\t\t}\n\t\t\tresolve(\"Token not found\");\n\t\t});\n\t}\n\n\tsetOrgUnits(orgUnits: MapOrgUnit[]): EarthEngine {\n\t\tthis.orgUnits = orgUnits;\n\t\treturn this;\n\t}\n\n\tsetPeriod(period: string) {\n\t\tthis.period = period;\n\t}\n\n\tasync getValue(geoJSON: any, type: string) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst point = this.getGeometryByType(geoJSON);\n\t\t\tconst reducer = this.getReducerByType(type);\n\t\t\tconst image = this.getImage();\n\n\t\t\tconst reducedImage = image.reduceRegion(reducer, point, 1);\n\n\t\t\treducedImage.evaluate((data: unknown, error: any) => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t} else {\n\t\t\t\t\tresolve(data);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tasync getPeriod() {\n\t\tconst { type } = this.options;\n\t\tif (type !== \"ImageCollection\") {\n\t\t\treturn;\n\t\t}\n\n\t\tconst imageCollection = this.instance\n\t\t\t.distinct(\"system:time_start\")\n\t\t\t.sort(\"system:time_start\", false);\n\t\tconst featureCollection = ee\n\t\t\t.FeatureCollection(imageCollection)\n\t\t\t.select([\"system:time_start\", \"system:time_end\"], null, false);\n\n\t\treturn getInfo(featureCollection);\n\t}\n\n\tasync info() {\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.instance.getInfo(resolve);\n\t\t});\n\t}\n\n\tasync getScale() {\n\t\ttry {\n\t\t\tconst { type } = this.options;\n\t\t\tswitch (type) {\n\t\t\t\tcase \"ImageCollection\":\n\t\t\t\t\tthis.scale = await getScale(this.instance.first());\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthis.scale = await getScale(this.getImage());\n\t\t\t}\n\t\t} catch (e) {}\n\t}\n\n\tasync getFeatureCollectionAggregation() {\n\t\tconst { datasetId } = this.options;\n\t\tconst dataset = ee.FeatureCollection(datasetId);\n\t\tconst collection = this.getFeatureCollection() as any;\n\t\tconst aggFeatures = collection\n\t\t\t?.map((feature: any) => {\n\t\t\t\tfeature = ee.Feature(feature);\n\t\t\t\tconst count = dataset.filterBounds(feature.geometry()).size();\n\n\t\t\t\treturn feature.set(\"count\", count);\n\t\t\t})\n\t\t\t.select([\"count\"], null, false);\n\n\t\treturn getInfo(aggFeatures).then(getFeatureCollectionProperties);\n\t}\n\n\tasync getHistogramAggregations() {\n\t\ttry {\n\t\t\tconst aggregation = head(this.options.aggregations) ?? \"\";\n\t\t\tconst reducer = ee.Reducer.frequencyHistogram();\n\t\t\tconst collection = this.getFeatureCollection();\n\t\t\tconst legend = this.options.legend?.items;\n\t\t\tconst scale = this.scale;\n\t\t\tconst tileScale = this.options.tileScale ?? DEFAULT_TILE_SCALE;\n\t\t\tconst scaleValue = await getInfo(scale);\n\n\t\t\tconst image = this.getImage();\n\t\t\tconst features = Object.values(\n\t\t\t\tawait getInfo(\n\t\t\t\t\timage\n\t\t\t\t\t\t.reduceRegions({\n\t\t\t\t\t\t\tcollection,\n\t\t\t\t\t\t\treducer,\n\t\t\t\t\t\t\tscale,\n\t\t\t\t\t\t\ttileScale,\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.select([\"histogram\"], null, false),\n\t\t\t\t).then((data) =>\n\t\t\t\t\tgetHistogramStatistics({\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\tscale: scaleValue,\n\t\t\t\t\t\taggregationType: aggregation,\n\t\t\t\t\t\tlegend,\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t);\n\n\t\t\treturn features.map((feature: any, index: number) => {\n\t\t\t\treturn {\n\t\t\t\t\torgUnit: this.orgUnits?.[index],\n\t\t\t\t\tdata: feature,\n\t\t\t\t};\n\t\t\t});\n\t\t} catch (e: any) {\n\t\t\tthrow Error(\"Could not get histogram\", {\n\t\t\t\tcause: e,\n\t\t\t});\n\t\t}\n\t}\n\n\tasync getAggregations() {\n\t\tawait this.getScale();\n\t\tconst { type } = this.options;\n\t\tif (type === \"FeatureCollection\") {\n\t\t\tthis.aggregationData = await this.getFeatureCollectionAggregation();\n\t\t\treturn;\n\t\t}\n\t\tconst aggregations = this.options.aggregations;\n\t\tif (!aggregations) return;\n\n\t\tif (hasClasses(head(aggregations) ?? \"\")) {\n\t\t\tthis.aggregationData = await this.getHistogramAggregations();\n\t\t\treturn;\n\t\t}\n\n\t\tconst reducer = combineReducers(ee)(aggregations);\n\t\tconst collection = this.getFeatureCollection();\n\t\tconst image = this.getImage();\n\t\tconst scale = this.scale;\n\t\tconst tileScale = this.options.tileScale ?? DEFAULT_TILE_SCALE;\n\t\tconst aggregatedFeatures = image\n\t\t\t.reduceRegions({\n\t\t\t\tcollection,\n\t\t\t\treducer,\n\t\t\t\tscale,\n\t\t\t\ttileScale,\n\t\t\t})\n\t\t\t.select(aggregations, null, false);\n\n\t\tconst features = Object.values(\n\t\t\tgetFeatureCollectionProperties(await getInfo(aggregatedFeatures)),\n\t\t) as any[];\n\t\tif (!isEmpty(features) && features.length === this.orgUnits?.length) {\n\t\t\t//Mapping features to orgUnits using index.\n\t\t\tthis.aggregationData = features.map(\n\t\t\t\t(feature: any, index: number) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\torgUnit: this.orgUnits?.[index],\n\t\t\t\t\t\tdata: feature,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t}\n\n\tgetAggregation(orgUnit: MapOrgUnit) {\n\t\tif (isEmpty(this.aggregationData)) {\n\t\t\treturn;\n\t\t}\n\t\treturn find(\n\t\t\tthis.aggregationData,\n\t\t\t(aggregation) => aggregation.orgUnit.id === orgUnit.id,\n\t\t);\n\t}\n\n\tasync url(): Promise<string> {\n\t\tif (!this.initialized) throw \"You need to call init() first\";\n\t\treturn this.visualize(this.getImage());\n\t}\n\n\tprotected applyPeriod(imageCollection: any) {\n\t\tconst period = this.period;\n\t\tif (period) {\n\t\t\treturn imageCollection.filterDate(period);\n\t\t}\n\t}\n\n\tprotected applyMask(image: any) {\n\t\tif (this.options.mask) {\n\t\t\treturn image.updateMask(image.gt(0));\n\t\t} else {\n\t\t\treturn image;\n\t\t}\n\t}\n\n\tprotected applyBand(imageCollection: any) {\n\t\tif (this.options.selectedBands) {\n\t\t\treturn imageCollection.select(this.options.selectedBands);\n\t\t} else {\n\t\t\treturn imageCollection;\n\t\t}\n\t}\n\n\tprotected getReducerByType(type: string) {\n\t\treturn ee.Reducer[type].call();\n\t}\n\n\tprotected getGeometryByType(geoJSON: any) {\n\t\treturn ee.Geometry(geoJSON?.geometry);\n\t}\n\n\tprotected getFeatureByType(geoJSON: any) {\n\t\tconst featureType = geoJSON.type;\n\t\tconst features = geoJSON.features ?? [];\n\t\tconst geometry = this.getGeometryByType(geoJSON);\n\t\tswitch (featureType) {\n\t\t\tcase \"Feature\":\n\t\t\t\treturn ee.Feature(geometry);\n\t\t\tcase \"FeatureCollection\":\n\t\t\t\treturn ee.FeatureCollection([\n\t\t\t\t\t...features.map((feature: any) =>\n\t\t\t\t\t\tee.Feature(this.getGeometryByType(feature)),\n\t\t\t\t\t),\n\t\t\t\t]);\n\t\t}\n\t}\n\n\tprotected getFeatureCollection(): unknown {\n\t\tif (this.orgUnits) {\n\t\t\treturn ee.FeatureCollection(\n\t\t\t\tthis.orgUnits.map((orgUnit: MapOrgUnit) =>\n\t\t\t\t\tthis.getFeatureByType(orgUnit.geoJSON),\n\t\t\t\t),\n\t\t\t);\n\t\t} else {\n\t\t\tthrow \"You need to set org units first\";\n\t\t}\n\t}\n\n\tprotected getParamsFromLegend() {\n\t\tif (!this.options.legend) return;\n\t\tconst legend = this.options.legend.items;\n\t\tconst keys = legend.map((l) => l.id);\n\t\tconst min = Math.min(...keys);\n\t\tconst max = Math.max(...keys);\n\t\tconst palette = legend.map((l) => l.color).join(\",\");\n\t\treturn { min, max, palette };\n\t}\n\n\tprotected async visualize(image: any): Promise<string> {\n\t\tconst { min, max, palette } = this.getParamsFromLegend() ??\n\t\t\tthis.options.params ?? {\n\t\t\t\tmin: null,\n\t\t\t\tmax: null,\n\t\t\t\tpalette: null,\n\t\t\t};\n\t\treturn (\n\t\t\t(await new Promise((resolve, reject) => {\n\t\t\t\timage.getMap({ min, max, palette }, resolve);\n\t\t\t})) as any\n\t\t)?.urlFormat;\n\t}\n\n\tprotected getImageCollectionInstance() {\n\t\tconst { datasetId } = this.options;\n\t\tlet imageCollection = ee.ImageCollection(datasetId);\n\t\tif (this.period) {\n\t\t\timageCollection = this.applyPeriod(imageCollection);\n\t\t}\n\t\timageCollection = this.applyBand(imageCollection);\n\t\treturn imageCollection;\n\t}\n\n\tprotected getImageFromImageCollection() {\n\t\tconst { mosaic } = this.options;\n\t\tconst imageCollection = this.instance;\n\t\treturn mosaic\n\t\t\t? imageCollection\n\t\t\t\t\t.mosaic()\n\t\t\t\t\t.clipToCollection(this.getFeatureCollection())\n\t\t\t: ee\n\t\t\t\t\t.Image(imageCollection.first())\n\t\t\t\t\t.clipToCollection(this.getFeatureCollection());\n\t}\n\n\tprotected getImageInstance() {\n\t\tconst { datasetId } = this.options;\n\t\treturn ee\n\t\t\t.Image(datasetId)\n\t\t\t.clipToCollection(this.getFeatureCollection());\n\t}\n\n\tprotected getImageFromImage() {\n\t\treturn this.instance;\n\t}\n\n\tprotected getFeatureInstance() {\n\t\tconst { datasetId } = this.options;\n\t\tconst feature = ee.Feature(datasetId);\n\t\tthis.instance = feature;\n\t\treturn feature;\n\t}\n\n\tprotected getImageFromFeature() {\n\t\treturn this.instance;\n\t}\n\n\tprotected getFeatureCollectionInstance() {\n\t\tconst { datasetId } = this.options;\n\t\tlet featureCollection = ee.FeatureCollection(datasetId);\n\t\tif (this.period) {\n\t\t\tfeatureCollection = this.applyPeriod(featureCollection);\n\t\t}\n\t\treturn featureCollection;\n\t}\n\n\tprotected getImageFromFeatureCollection() {\n\t\tlet featureCollection = this.instance;\n\t\treturn featureCollection\n\t\t\t.draw(FEATURE_STYLE)\n\t\t\t.clipToCollection(this.getFeatureCollection());\n\t}\n\n\tprotected getInstance() {\n\t\tconst { type } = this.options;\n\t\tswitch (type) {\n\t\t\tcase \"Feature\":\n\t\t\t\tthis.instance = this.getFeatureInstance();\n\t\t\t\tbreak;\n\t\t\tcase \"FeatureCollection\":\n\t\t\t\tthis.instance = this.getFeatureCollectionInstance();\n\t\t\t\tbreak;\n\t\t\tcase \"Image\":\n\t\t\t\tthis.instance = this.getImageInstance();\n\t\t\t\tbreak;\n\t\t\tcase \"ImageCollection\":\n\t\t\t\tthis.instance = this.getImageCollectionInstance();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthis.instance = this.getImageFromImage();\n\t\t}\n\t}\n\n\tprotected getImage(): any {\n\t\tif (this.image) {\n\t\t\treturn this.image;\n\t\t}\n\t\tconst { type } = this.options;\n\t\tlet image;\n\t\tswitch (type) {\n\t\t\tcase \"Feature\":\n\t\t\t\timage = this.getImageFromFeature();\n\t\t\t\tbreak;\n\t\t\tcase \"FeatureCollection\":\n\t\t\t\timage = this.getImageFromFeatureCollection();\n\t\t\t\tbreak;\n\t\t\tcase \"Image\":\n\t\t\t\timage = this.getImageFromImage();\n\t\t\t\tbreak;\n\t\t\tcase \"ImageCollection\":\n\t\t\t\timage = this.getImageFromImageCollection();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\timage = this.getImageFromImage();\n\t\t}\n\t\timage = this.applyMask(image);\n\t\timage = this.applyBand(image);\n\t\tthis.image = image;\n\t\treturn image;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../src/components/Map/components/MapLayer/components/GoogleEngineLayer/services/engine.ts"],"names":["token"],"mappings":"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","file":"engine.js","sourcesContent":["import { MapOrgUnit } from \"../../../../../interfaces\";\nimport {\n\tEarthEngineOptions,\n\tEarthEngineToken,\n\tRefreshToken,\n} from \"../interfaces\";\nimport {\n\tcombineReducers,\n\tgetFeatureCollectionProperties,\n\tgetHistogramStatistics,\n\tgetInfo,\n\tgetScale,\n\thasClasses,\n} from \"../utils\";\nimport { find, head, isEmpty } from \"lodash\";\n\n//@ts-expect-error earth engine does not have types\nimport EE from \"./api\";\n// @ts-ignore\nconst ee = EE as any;\n// @ts-ignore\nwindow.ee = ee;\n\nconsole.log(ee.data);\n\nconst FEATURE_STYLE = { color: \"FFA500\", strokeWidth: 2 };\nconst DEFAULT_TILE_SCALE = 1;\n\nexport class EarthEngine {\n\ttoken?: EarthEngineToken;\n\toptions: EarthEngineOptions;\n\trefresh?: RefreshToken;\n\torgUnits?: MapOrgUnit[];\n\tinitialized = false;\n\tperiod?: string | string[];\n\tinstance: any;\n\tscale?: any;\n\timage: any;\n\taggregationData: any;\n\n\tconstructor({ options }: { options: EarthEngineOptions }) {\n\t\tthis.options = options;\n\t\tthis.initialized = true;\n\t\tthis.getInstance();\n\t}\n\n\tstatic async setToken(\n\t\ttoken: EarthEngineToken,\n\t\trefresh: RefreshToken,\n\t): Promise<void> {\n\t\tconst tokenType = \"Bearer\";\n\n\t\tfunction refreshToken(\n\t\t\tauthArgs: { scope: any },\n\t\t\tcallback: (props: any) => void,\n\t\t) {\n\t\t\trefresh().then(({ token }: { token: EarthEngineToken }) => {\n\t\t\t\tcallback({\n\t\t\t\t\t...token,\n\t\t\t\t\ttoken_type: tokenType ?? \"Bearer\",\n\t\t\t\t\tstate: authArgs?.scope,\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tawait new Promise((resolve, reject) => {\n\t\t\tif (ee.data.getAuthToken()) {\n\t\t\t\tee.initialize(null, null, resolve, reject);\n\t\t\t}\n\t\t\tif (token) {\n\t\t\t\tconst { access_token, client_id, expires_in } = token;\n\t\t\t\tee.data.setAuthToken(\n\t\t\t\t\tclient_id,\n\t\t\t\t\ttokenType ?? \"Bearer\",\n\t\t\t\t\taccess_token,\n\t\t\t\t\texpires_in,\n\t\t\t\t\tnull,\n\t\t\t\t\t() => {\n\t\t\t\t\t\tee.initialize(null, null, resolve, reject);\n\t\t\t\t\t},\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\t\t\t\tee.data.setAuthTokenRefresher(refreshToken);\n\t\t\t}\n\t\t\tresolve(\"Token not found\");\n\t\t});\n\t}\n\n\tsetOrgUnits(orgUnits: MapOrgUnit[]): EarthEngine {\n\t\tthis.orgUnits = orgUnits;\n\t\treturn this;\n\t}\n\n\tsetPeriod(period: string) {\n\t\tthis.period = period;\n\t}\n\n\tasync getValue(geoJSON: any, type: string) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst point = this.getGeometryByType(geoJSON);\n\t\t\tconst reducer = this.getReducerByType(type);\n\t\t\tconst image = this.getImage();\n\n\t\t\tconst reducedImage = image.reduceRegion(reducer, point, 1);\n\n\t\t\treducedImage.evaluate((data: unknown, error: any) => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t} else {\n\t\t\t\t\tresolve(data);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tasync getPeriod() {\n\t\tconst { type } = this.options;\n\t\tif (type !== \"ImageCollection\") {\n\t\t\treturn;\n\t\t}\n\n\t\tconst imageCollection = this.instance\n\t\t\t.distinct(\"system:time_start\")\n\t\t\t.sort(\"system:time_start\", false);\n\t\tconst featureCollection = ee\n\t\t\t.FeatureCollection(imageCollection)\n\t\t\t.select([\"system:time_start\", \"system:time_end\"], null, false);\n\n\t\treturn getInfo(featureCollection);\n\t}\n\n\tasync info() {\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.instance.getInfo(resolve);\n\t\t});\n\t}\n\n\tasync getScale() {\n\t\ttry {\n\t\t\tconst { type } = this.options;\n\t\t\tswitch (type) {\n\t\t\t\tcase \"ImageCollection\":\n\t\t\t\t\tthis.scale = await getScale(this.instance.first());\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthis.scale = await getScale(this.getImage());\n\t\t\t}\n\t\t} catch (e) {}\n\t}\n\n\tasync getFeatureCollectionAggregation() {\n\t\tconst { datasetId } = this.options;\n\t\tconst dataset = ee.FeatureCollection(datasetId);\n\t\tconst collection = this.getFeatureCollection() as any;\n\t\tconst aggFeatures = collection\n\t\t\t?.map((feature: any) => {\n\t\t\t\tfeature = ee.Feature(feature);\n\t\t\t\tconst count = dataset.filterBounds(feature.geometry()).size();\n\n\t\t\t\treturn feature.set(\"count\", count);\n\t\t\t})\n\t\t\t.select([\"count\"], null, false);\n\n\t\treturn getInfo(aggFeatures).then(getFeatureCollectionProperties);\n\t}\n\n\tasync getHistogramAggregations() {\n\t\ttry {\n\t\t\tconst aggregation = head(this.options.aggregations) ?? \"\";\n\t\t\tconst reducer = ee.Reducer.frequencyHistogram();\n\t\t\tconst collection = this.getFeatureCollection();\n\t\t\tconst legend = this.options.legend?.items;\n\t\t\tconst scale = this.scale;\n\t\t\tconst tileScale = this.options.tileScale ?? DEFAULT_TILE_SCALE;\n\t\t\tconst scaleValue = await getInfo(scale);\n\n\t\t\tconst image = this.getImage();\n\t\t\tconst features = Object.values(\n\t\t\t\tawait getInfo(\n\t\t\t\t\timage\n\t\t\t\t\t\t.reduceRegions({\n\t\t\t\t\t\t\tcollection,\n\t\t\t\t\t\t\treducer,\n\t\t\t\t\t\t\tscale,\n\t\t\t\t\t\t\ttileScale,\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.select([\"histogram\"], null, false),\n\t\t\t\t).then((data) =>\n\t\t\t\t\tgetHistogramStatistics({\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\tscale: scaleValue,\n\t\t\t\t\t\taggregationType: aggregation,\n\t\t\t\t\t\tlegend,\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t);\n\n\t\t\treturn features.map((feature: any, index: number) => {\n\t\t\t\treturn {\n\t\t\t\t\torgUnit: this.orgUnits?.[index],\n\t\t\t\t\tdata: feature,\n\t\t\t\t};\n\t\t\t});\n\t\t} catch (e: any) {\n\t\t\tthrow Error(\"Could not get histogram\", {\n\t\t\t\tcause: e,\n\t\t\t});\n\t\t}\n\t}\n\n\tasync getAggregations() {\n\t\tawait this.getScale();\n\t\tconst { type } = this.options;\n\t\tif (type === \"FeatureCollection\") {\n\t\t\tthis.aggregationData = await this.getFeatureCollectionAggregation();\n\t\t\treturn;\n\t\t}\n\t\tconst aggregations = this.options.aggregations;\n\t\tif (!aggregations) return;\n\n\t\tif (hasClasses(head(aggregations) ?? \"\")) {\n\t\t\tthis.aggregationData = await this.getHistogramAggregations();\n\t\t\treturn;\n\t\t}\n\n\t\tconst reducer = combineReducers(ee)(aggregations);\n\t\tconst collection = this.getFeatureCollection();\n\t\tconst image = this.getImage();\n\t\tconst scale = this.scale;\n\t\tconst tileScale = this.options.tileScale ?? DEFAULT_TILE_SCALE;\n\t\tconst aggregatedFeatures = image\n\t\t\t.reduceRegions({\n\t\t\t\tcollection,\n\t\t\t\treducer,\n\t\t\t\tscale,\n\t\t\t\ttileScale,\n\t\t\t})\n\t\t\t.select(aggregations, null, false);\n\n\t\tconst features = Object.values(\n\t\t\tgetFeatureCollectionProperties(await getInfo(aggregatedFeatures)),\n\t\t) as any[];\n\t\tif (!isEmpty(features) && features.length === this.orgUnits?.length) {\n\t\t\t//Mapping features to orgUnits using index.\n\t\t\tthis.aggregationData = features.map(\n\t\t\t\t(feature: any, index: number) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\torgUnit: this.orgUnits?.[index],\n\t\t\t\t\t\tdata: feature,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t}\n\n\tgetAggregation(orgUnit: MapOrgUnit) {\n\t\tif (isEmpty(this.aggregationData)) {\n\t\t\treturn;\n\t\t}\n\t\treturn find(\n\t\t\tthis.aggregationData,\n\t\t\t(aggregation) => aggregation.orgUnit.id === orgUnit.id,\n\t\t);\n\t}\n\n\tasync url(): Promise<string> {\n\t\tif (!this.initialized) throw \"You need to call init() first\";\n\t\treturn this.visualize(this.getImage());\n\t}\n\n\tprotected applyPeriod(imageCollection: any) {\n\t\tconst period = this.period;\n\t\tif (period) {\n\t\t\treturn imageCollection.filterDate(period);\n\t\t}\n\t}\n\n\tprotected applyMask(image: any) {\n\t\tif (this.options.mask) {\n\t\t\treturn image.updateMask(image.gt(0));\n\t\t} else {\n\t\t\treturn image;\n\t\t}\n\t}\n\n\tprotected applyBand(imageCollection: any) {\n\t\tif (this.options.selectedBands) {\n\t\t\treturn imageCollection.select(this.options.selectedBands);\n\t\t} else {\n\t\t\treturn imageCollection;\n\t\t}\n\t}\n\n\tprotected getReducerByType(type: string) {\n\t\treturn ee.Reducer[type].call();\n\t}\n\n\tprotected getGeometryByType(geoJSON: any) {\n\t\treturn ee.Geometry(geoJSON?.geometry);\n\t}\n\n\tprotected getFeatureByType(geoJSON: any) {\n\t\tconst featureType = geoJSON.type;\n\t\tconst features = geoJSON.features ?? [];\n\t\tconst geometry = this.getGeometryByType(geoJSON);\n\t\tswitch (featureType) {\n\t\t\tcase \"Feature\":\n\t\t\t\treturn ee.Feature(geometry);\n\t\t\tcase \"FeatureCollection\":\n\t\t\t\treturn ee.FeatureCollection([\n\t\t\t\t\t...features.map((feature: any) =>\n\t\t\t\t\t\tee.Feature(this.getGeometryByType(feature)),\n\t\t\t\t\t),\n\t\t\t\t]);\n\t\t}\n\t}\n\n\tprotected getFeatureCollection(): unknown {\n\t\tif (this.orgUnits) {\n\t\t\treturn ee.FeatureCollection(\n\t\t\t\tthis.orgUnits.map((orgUnit: MapOrgUnit) =>\n\t\t\t\t\tthis.getFeatureByType(orgUnit.geoJSON),\n\t\t\t\t),\n\t\t\t);\n\t\t} else {\n\t\t\tthrow \"You need to set org units first\";\n\t\t}\n\t}\n\n\tprotected getParamsFromLegend() {\n\t\tif (!this.options.legend) return;\n\t\tconst legend = this.options.legend.items;\n\t\tconst keys = legend.map((l) => l.id);\n\t\tconst min = Math.min(...keys);\n\t\tconst max = Math.max(...keys);\n\t\tconst palette = legend.map((l) => l.color).join(\",\");\n\t\treturn { min, max, palette };\n\t}\n\n\tprotected async visualize(image: any): Promise<string> {\n\t\tconst { min, max, palette } = this.getParamsFromLegend() ??\n\t\t\tthis.options.params ?? {\n\t\t\t\tmin: null,\n\t\t\t\tmax: null,\n\t\t\t\tpalette: null,\n\t\t\t};\n\t\treturn (\n\t\t\t(await new Promise((resolve, reject) => {\n\t\t\t\timage.getMap({ min, max, palette }, resolve);\n\t\t\t})) as any\n\t\t)?.urlFormat;\n\t}\n\n\tprotected getImageCollectionInstance() {\n\t\tconst { datasetId } = this.options;\n\t\tlet imageCollection = ee.ImageCollection(datasetId);\n\t\tif (this.period) {\n\t\t\timageCollection = this.applyPeriod(imageCollection);\n\t\t}\n\t\timageCollection = this.applyBand(imageCollection);\n\t\treturn imageCollection;\n\t}\n\n\tprotected getImageFromImageCollection() {\n\t\tconst { mosaic } = this.options;\n\t\tconst imageCollection = this.instance;\n\t\treturn mosaic\n\t\t\t? imageCollection\n\t\t\t\t\t.mosaic()\n\t\t\t\t\t.clipToCollection(this.getFeatureCollection())\n\t\t\t: ee\n\t\t\t\t\t.Image(imageCollection.first())\n\t\t\t\t\t.clipToCollection(this.getFeatureCollection());\n\t}\n\n\tprotected getImageInstance() {\n\t\tconst { datasetId } = this.options;\n\t\treturn ee\n\t\t\t.Image(datasetId)\n\t\t\t.clipToCollection(this.getFeatureCollection());\n\t}\n\n\tprotected getImageFromImage() {\n\t\treturn this.instance;\n\t}\n\n\tprotected getFeatureInstance() {\n\t\tconst { datasetId } = this.options;\n\t\tconst feature = ee.Feature(datasetId);\n\t\tthis.instance = feature;\n\t\treturn feature;\n\t}\n\n\tprotected getImageFromFeature() {\n\t\treturn this.instance;\n\t}\n\n\tprotected getFeatureCollectionInstance() {\n\t\tconst { datasetId } = this.options;\n\t\tlet featureCollection = ee.FeatureCollection(datasetId);\n\t\tif (this.period) {\n\t\t\tfeatureCollection = this.applyPeriod(featureCollection);\n\t\t}\n\t\treturn featureCollection;\n\t}\n\n\tprotected getImageFromFeatureCollection() {\n\t\tlet featureCollection = this.instance;\n\t\treturn featureCollection\n\t\t\t.draw(FEATURE_STYLE)\n\t\t\t.clipToCollection(this.getFeatureCollection());\n\t}\n\n\tprotected getInstance() {\n\t\tconst { type } = this.options;\n\t\tswitch (type) {\n\t\t\tcase \"Feature\":\n\t\t\t\tthis.instance = this.getFeatureInstance();\n\t\t\t\tbreak;\n\t\t\tcase \"FeatureCollection\":\n\t\t\t\tthis.instance = this.getFeatureCollectionInstance();\n\t\t\t\tbreak;\n\t\t\tcase \"Image\":\n\t\t\t\tthis.instance = this.getImageInstance();\n\t\t\t\tbreak;\n\t\t\tcase \"ImageCollection\":\n\t\t\t\tthis.instance = this.getImageCollectionInstance();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthis.instance = this.getImageFromImage();\n\t\t}\n\t}\n\n\tprotected getImage(): any {\n\t\tif (this.image) {\n\t\t\treturn this.image;\n\t\t}\n\t\tconst { type } = this.options;\n\t\tlet image;\n\t\tswitch (type) {\n\t\t\tcase \"Feature\":\n\t\t\t\timage = this.getImageFromFeature();\n\t\t\t\tbreak;\n\t\t\tcase \"FeatureCollection\":\n\t\t\t\timage = this.getImageFromFeatureCollection();\n\t\t\t\tbreak;\n\t\t\tcase \"Image\":\n\t\t\t\timage = this.getImageFromImage();\n\t\t\t\tbreak;\n\t\t\tcase \"ImageCollection\":\n\t\t\t\timage = this.getImageFromImageCollection();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\timage = this.getImageFromImage();\n\t\t}\n\t\timage = this.applyMask(image);\n\t\timage = this.applyBand(image);\n\t\tthis.image = image;\n\t\treturn image;\n\t}\n}\n"]}
|
package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../src/components/Map/components/MapLayer/components/GoogleEngineLayer/utils/index.ts"],"names":["id"],"mappings":"AAEO,MAAM,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../src/components/Map/components/MapLayer/components/GoogleEngineLayer/utils/index.ts"],"names":["id"],"mappings":"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","file":"index.js","sourcesContent":["import { EarthEngineOptions } from \"../interfaces/index.js\";\n\nexport const combineReducers = (ee: any) => (types: string[]) =>\n\ttypes.reduce(\n\t\t(r: any, t: any, i: any) =>\n\t\t\ti === 0\n\t\t\t\t? r[t]()\n\t\t\t\t: r.combine({\n\t\t\t\t\t\treducer2: ee.Reducer[t](),\n\t\t\t\t\t\tsharedInputs: true,\n\t\t\t\t\t}),\n\t\tee.Reducer,\n\t);\n\nexport const getInfo = (instance: any) =>\n\tnew Promise((resolve, reject) =>\n\t\tinstance.evaluate((data: any, error: Error) => {\n\t\t\tif (error) {\n\t\t\t\treject(error);\n\t\t\t} else {\n\t\t\t\tresolve(data);\n\t\t\t}\n\t\t}),\n\t);\n\nexport const getFeatureCollectionProperties = (data: any) =>\n\tdata.features.reduce(\n\t\t(obj: any, f: any) => ({\n\t\t\t...obj,\n\t\t\t[f.id]: f.properties,\n\t\t}),\n\t\t{},\n\t);\n\nexport const getScale = async (image: any) => {\n\treturn image.select(0).projection().nominalScale();\n};\n\nconst getParamsFromLegend = (legend: any[]) => {\n\tconst keys = legend.map((l) => l.id);\n\tconst min = Math.min(...keys);\n\tconst max = Math.max(...keys);\n\tconst palette = legend.map((l) => l.color).join(\",\");\n\n\treturn { min, max, palette };\n};\n\nexport const getClassifiedImage = (\n\teeImage: any,\n\t{ legend: legends, params }: EarthEngineOptions,\n) => {\n\tconst legend = legends?.items ?? [];\n\tif (!params) {\n\t\t// Image has classes (e.g. landcover)\n\t\treturn { eeImage, params: getParamsFromLegend(legend) };\n\t}\n\n\tconst min = 0;\n\tconst max = legend.length - 1;\n\tconst { palette } = params;\n\tlet zones;\n\n\tfor (let i = min, item; i < max; i++) {\n\t\titem = legend[i] as any;\n\n\t\tif (!zones) {\n\t\t\tzones = eeImage.gt(item.to);\n\t\t} else {\n\t\t\tzones = zones.add(eeImage.gt(item.to));\n\t\t}\n\t}\n\n\treturn { eeImage: zones, params: { min, max, palette } };\n};\n\nconst squareMetersToHectares = (value: number) => value / 10000;\n\nconst squareMetersToAcres = (value: number) => value / 4046.8564224;\n\nconst classAggregation = [\"percentage\", \"hectares\", \"acres\"];\n\nexport const hasClasses = (type: string) => classAggregation.includes(type);\n\nexport const getHistogramStatistics = ({\n\tdata,\n\tscale,\n\taggregationType,\n\tlegend,\n}: {\n\tdata: any;\n\tscale: any;\n\taggregationType: string;\n\tlegend: any;\n}) =>\n\tdata.features.reduce(\n\t\t(\n\t\t\tobj: Record<any, any>,\n\t\t\t{ id, properties }: { id: string; properties: any },\n\t\t) => {\n\t\t\tconst { histogram } = properties;\n\t\t\tconst sum: number = Object.values(histogram).reduce(\n\t\t\t\t(a: any, b: any) => a + b,\n\t\t\t\t0,\n\t\t\t) as number;\n\t\t\tobj[id] = legend.reduce((values: any, { id }: { id: string }) => {\n\t\t\t\tconst count = histogram[id] || 0;\n\t\t\t\tconst sqMeters = count * (scale * scale);\n\t\t\t\tlet value;\n\t\t\t\tswitch (aggregationType) {\n\t\t\t\t\tcase \"hectares\":\n\t\t\t\t\t\tvalue = Math.round(squareMetersToHectares(sqMeters));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"acres\":\n\t\t\t\t\t\tvalue = Math.round(squareMetersToAcres(sqMeters));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvalue = (count / sum) * 100; // percentage\n\t\t\t\t}\n\n\t\t\t\tvalues[id] = value;\n\n\t\t\t\treturn values;\n\t\t\t}, {});\n\t\t\treturn obj;\n\t\t},\n\t\t{},\n\t);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.tsx"],"names":[],"mappings":";;;;;AAKe,SAAR,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.tsx"],"names":[],"mappings":";;;;;AAKe,SAAR,gBAAA,CAAkC;AAAA,EACxC,KAAA;AAAA,EACA,WAAA;AAAA,EACA;AACD,CAAA,EAIG;AACF,EAAA,MAAM,EAAE,OAAA,EAAQ,GAAI,aAAA,MAAmB,EAAC;AACxC,EAAA,MAAM,WAAA,GAAc,SAAS,GAAA,CAAI,CAAC,WAAW,MAAA,CAAO,IAAI,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA;AACnE,EAAA,uBACC,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACN,OAAA,EAAS,MAAA;AAAA,QACT,aAAA,EAAe,QAAA;AAAA,QACf,GAAA,EAAK,CAAA;AAAA,QACL,KAAA,EAAO,MAAA;AAAA,QACP,OAAA,EAAS;AAAA,OACV;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,IAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACA,KAAA,EAAO;AAAA,cACN,OAAA,EAAS,MAAA;AAAA,cACT,KAAA,EAAO,MAAA;AAAA,cACP,cAAA,EAAgB,eAAA;AAAA,cAChB,UAAA,EAAY,QAAA;AAAA,cACZ,GAAA,EAAK;AAAA,aACN;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,IAAA,EAAA,EAAG,OAAO,EAAE,MAAA,EAAQ,GAAE,EAAG,SAAA,EAAU,iBACnC,QAAA,kBAAA,GAAA,CAAC,OAAA,EAAA,EAAQ,SAAS,KAAA,EAChB,QAAA,EAAA,QAAA,CAAS,OAAO,EAAE,MAAA,EAAQ,IAAI,QAAA,EAAU,KAAA,EAAO,CAAA,EACjD,CAAA,EACD,CAAA;AAAA,cACC,+BACA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAS,UAAA,EACb,QAAA,kBAAA,GAAA,CAAC,gBAAa,CAAA,EACf;AAAA;AAAA;AAAA,SAEF;AAAA,QACC,WAAA,wBACC,OAAA,EAAA,EAAQ,OAAA,EAAS,aACjB,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,KAAA,EAAO,MAAA,CAAO,SAAQ,EACnC,QAAA,EAAA,QAAA,CAAS,aAAa,EAAE,MAAA,EAAQ,IAAI,QAAA,EAAU,KAAA,EAAO,CAAA,EACvD,CAAA,EACD;AAAA;AAAA;AAAA,GAEF;AAEF","file":"index.js","sourcesContent":["import { colors, IconLaunch16, Tooltip } from \"@dhis2/ui\";\nimport React from \"react\";\nimport { truncate } from \"lodash\";\nimport { useMapPeriods } from \"../../../../../MapProvider/hooks\";\n\nexport default function LegendCardHeader({\n\ttitle,\n\tcollapsible,\n\tonCollapse,\n}: {\n\ttitle: string;\n\tonCollapse?: () => void;\n\tcollapsible?: boolean;\n}) {\n\tconst { periods } = useMapPeriods() ?? {};\n\tconst periodLabel = periods?.map((period) => period.name).join(\", \");\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\tflexDirection: \"column\",\n\t\t\t\tgap: 2,\n\t\t\t\twidth: \"100%\",\n\t\t\t\tpadding: 4,\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\tgap: 8,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<h4 style={{ margin: 0 }} className=\"legend-header\">\n\t\t\t\t\t<Tooltip content={title}>\n\t\t\t\t\t\t{truncate(title, { length: 20, omission: \"...\" })}\n\t\t\t\t\t</Tooltip>\n\t\t\t\t</h4>\n\t\t\t\t{collapsible && (\n\t\t\t\t\t<div onClick={onCollapse}>\n\t\t\t\t\t\t<IconLaunch16 />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{periodLabel && (\n\t\t\t\t<Tooltip content={periodLabel}>\n\t\t\t\t\t<span style={{ color: colors.grey700 }}>\n\t\t\t\t\t\t{truncate(periodLabel, { length: 20, omission: \"...\" })}\n\t\t\t\t\t</span>\n\t\t\t\t</Tooltip>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../src/components/Map/components/MapLayer/components/LegendArea/index.tsx"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { colors, IconLegend24, Popper, Portal } from \"@dhis2/ui\";\nimport { ControlPosition } from \"leaflet\";\nimport { compact, head } from \"lodash\";\nimport {\n\tChildren,\n\tcloneElement,\n\ttype ReactElement,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n} from \"react\";\nimport { MapLegendConfig } from \"../../../MapArea/interfaces/index.js\";\nimport { CustomControl } from \"../../../MapControls/components/CustomControl\";\nimport {\n\tCustomBubbleLayer,\n\tCustomGoogleEngineLayer,\n\tCustomPointLayer,\n\tCustomThematicLayer,\n\tSUPPORTED_EARTH_ENGINE_LAYERS,\n} from \"../../interfaces/index.js\";\nimport PointLegend from \"../PointLayer/components/PointLegend/index.js\";\nimport BubbleLegend from \"../ThematicLayer/components/Bubble/components/BubbleLegend/index.js\";\nimport ChoroplethLegend from \"../ThematicLayer/components/Choropleth/components/ChoroplethLegend.js\";\nimport EarthEngineLegend from \"../GoogleEngineLayer/components/EarthEngineLegend.js\";\nimport classes from \"./LegendArea.module.css\";\nimport { usePrintMedia } from \"../../../../hooks/map.js\";\n\nconst TOOLTIP_OFFSET = 4;\n\nfunction getLegendComponent(\n\tlayer: CustomThematicLayer | CustomPointLayer | CustomGoogleEngineLayer,\n) {\n\tif (layer.type === \"point\") {\n\t\treturn <PointLegend name={layer.label} />;\n\t}\n\n\tif (SUPPORTED_EARTH_ENGINE_LAYERS.includes(layer.type)) {\n\t\treturn (\n\t\t\t<EarthEngineLegend\n\t\t\t\tname={layer.name ?? \"\"}\n\t\t\t\tlayer={layer as CustomGoogleEngineLayer}\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst { type, enabled, control, dataItem, name, data, legends } =\n\t\t(layer as CustomThematicLayer) ?? {};\n\n\tif (!enabled || !control) {\n\t\treturn null;\n\t}\n\tswitch (type) {\n\t\tcase \"bubble\":\n\t\t\treturn (\n\t\t\t\t<BubbleLegend\n\t\t\t\t\tradius={\n\t\t\t\t\t\t(layer as CustomBubbleLayer)?.radius ?? {\n\t\t\t\t\t\t\tmin: 0,\n\t\t\t\t\t\t\tmax: 50,\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tlegends={legends ?? []}\n\t\t\t\t\tname={name ?? dataItem.displayName}\n\t\t\t\t\tdata={data}\n\t\t\t\t\tdataItem={head(data)?.dataItem ?? dataItem}\n\t\t\t\t/>\n\t\t\t);\n\t\tcase \"choropleth\":\n\t\t\treturn (\n\t\t\t\t<ChoroplethLegend\n\t\t\t\t\tlegends={legends ?? []}\n\t\t\t\t\tname={name ?? dataItem.displayName}\n\t\t\t\t\tdata={data}\n\t\t\t\t\tdataItem={head(data)?.dataItem ?? dataItem}\n\t\t\t\t/>\n\t\t\t);\n\t}\n}\n\nfunction CollapsedLegendIcon({\n\tonCollapse,\n\tname,\n}: {\n\tname: string;\n\tonCollapse: () => void;\n}) {\n\tconst openDelay = 200;\n\tconst closeDelay = 200;\n\tconst [openTooltip, setOpenTooltip] = useState(false);\n\tconst openTimerRef = useRef<any>(null);\n\tconst closeTimerRef = useRef<any>(null);\n\tconst ref = useRef<HTMLDivElement>(null);\n\n\tconst hideModifier = { name: \"hide\" };\n\tconst offsetModifier = {\n\t\tname: \"offset\",\n\t\toptions: {\n\t\t\toffset: [0, TOOLTIP_OFFSET],\n\t\t},\n\t};\n\n\tconst flipModifier = {\n\t\tname: \"flip\",\n\t\toptions: { altBoundary: true },\n\t};\n\n\tconst onMouseOver = () => {\n\t\tclearTimeout(closeTimerRef.current);\n\n\t\topenTimerRef.current = setTimeout(() => {\n\t\t\tsetOpenTooltip(true);\n\t\t}, openDelay);\n\t};\n\n\tconst onMouseOut = () => {\n\t\tclearTimeout(openTimerRef.current);\n\n\t\tcloseTimerRef.current = setTimeout(() => {\n\t\t\tsetOpenTooltip(false);\n\t\t}, closeDelay);\n\t};\n\n\tuseEffect(\n\t\t() => () => {\n\t\t\tclearTimeout(openTimerRef.current);\n\t\t\tclearTimeout(closeTimerRef.current);\n\t\t},\n\t\t[],\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tref={ref}\n\t\t\tonMouseOver={onMouseOver}\n\t\t\tonMouseOut={onMouseOut}\n\t\t\tonClick={onCollapse}\n\t\t\tstyle={{ width: 28, height: 28 }}\n\t\t\tclassName=\"legend-card collapsed\"\n\t\t>\n\t\t\t<IconLegend24 />\n\t\t\t{openTooltip && (\n\t\t\t\t<Portal\n\t\t\t\t\t/*\n\t\t\t // @ts-ignore */\n\t\t\t\t\tclassName={classes[\"map-tooltip\"]}\n\t\t\t\t>\n\t\t\t\t\t<Popper\n\t\t\t\t\t\tclassName={classes[\"map-tooltip\"]}\n\t\t\t\t\t\treference={ref}\n\t\t\t\t\t\t/*\n // @ts-ignore */\n\t\t\t\t\t\tmodifiers={[offsetModifier, flipModifier, hideModifier]}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackgroundColor: `${colors.grey900}`,\n\t\t\t\t\t\t\t\tborderRadius: 3,\n\t\t\t\t\t\t\t\tcolor: `${colors.white}`,\n\t\t\t\t\t\t\t\tpadding: \"4px 6px\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tdata-test={`content`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{name}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Popper>\n\t\t\t\t</Portal>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nfunction Legend({\n\tchildren,\n\tcollapsible,\n}: {\n\tchildren: ReactElement;\n\tcollapsible: boolean;\n}) {\n\tconst [collapsed, setCollapsed] = useState(collapsible);\n\tconst inPrintMode = usePrintMedia();\n\tconst onCollapse = () => {\n\t\tif (collapsible) {\n\t\t\tsetCollapsed((prevState) => !prevState);\n\t\t}\n\t};\n\n\tconst name = head(Children.toArray(children) as ReactElement[])?.props.name;\n\n\tconst shouldCollapse = collapsed && !inPrintMode;\n\n\treturn (\n\t\t<div className=\"w-100\">\n\t\t\t{shouldCollapse ? (\n\t\t\t\t<CollapsedLegendIcon name={name} onCollapse={onCollapse} />\n\t\t\t) : (\n\t\t\t\tChildren.map(children, (child) =>\n\t\t\t\t\tcloneElement(child, { collapsible, onCollapse }),\n\t\t\t\t)\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport default function LegendArea({\n\tlayers,\n\tlegends: legendConfig,\n}: {\n\tlayers: Array<\n\t\tCustomThematicLayer | CustomPointLayer | CustomGoogleEngineLayer\n\t>;\n\tposition: ControlPosition;\n\tlegends?: MapLegendConfig;\n}) {\n\tconst legends: JSX.Element[] = compact(\n\t\tlayers.filter((layer) => layer.enabled).map(getLegendComponent),\n\t);\n\tconst { position, collapsible } = legendConfig ?? {};\n\n\treturn (\n\t\t<CustomControl position={position}>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\tgap: 16,\n\t\t\t\t\talignItems: \"flex-end\",\n\t\t\t\t\tmaxWidth: 200,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{legends?.map((legend: any, index) => (\n\t\t\t\t\t<Legend\n\t\t\t\t\t\tcollapsible={collapsible ?? true}\n\t\t\t\t\t\tkey={`${index}-map-legend`}\n\t\t\t\t\t>\n\t\t\t\t\t\t{legend}\n\t\t\t\t\t</Legend>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t</CustomControl>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../src/components/Map/components/MapLayer/components/LegendArea/index.tsx"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { colors, IconLegend24, Popper, Portal } from \"@dhis2/ui\";\nimport { ControlPosition } from \"leaflet\";\nimport { compact, head } from \"lodash\";\nimport {\n\tChildren,\n\tcloneElement,\n\ttype ReactElement,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n} from \"react\";\nimport { MapLegendConfig } from \"../../../MapArea/interfaces/index.js\";\nimport { CustomControl } from \"../../../MapControls/components/CustomControl\";\nimport {\n\tCustomBubbleLayer,\n\tCustomGoogleEngineLayer,\n\tCustomPointLayer,\n\tCustomThematicLayer,\n\tSUPPORTED_EARTH_ENGINE_LAYERS,\n} from \"../../interfaces/index.js\";\nimport PointLegend from \"../PointLayer/components/PointLegend/index.js\";\nimport BubbleLegend from \"../ThematicLayer/components/Bubble/components/BubbleLegend/index.js\";\nimport ChoroplethLegend from \"../ThematicLayer/components/Choropleth/components/ChoroplethLegend.js\";\nimport EarthEngineLegend from \"../GoogleEngineLayer/components/EarthEngineLegend.js\";\nimport classes from \"./LegendArea.module.css\";\nimport { usePrintMedia } from \"../../../../hooks/map.js\";\n\nconst TOOLTIP_OFFSET = 4;\n\nfunction getLegendComponent(\n\tlayer: CustomThematicLayer | CustomPointLayer | CustomGoogleEngineLayer,\n) {\n\tif (layer.type === \"point\") {\n\t\treturn <PointLegend name={layer.label} />;\n\t}\n\n\tif (SUPPORTED_EARTH_ENGINE_LAYERS.includes(layer.type)) {\n\t\treturn (\n\t\t\t<EarthEngineLegend\n\t\t\t\tname={layer.name ?? \"\"}\n\t\t\t\tlayer={layer as CustomGoogleEngineLayer}\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst { type, enabled, control, dataItem, name, data, legends } =\n\t\t(layer as CustomThematicLayer) ?? {};\n\n\tif (!enabled || !control) {\n\t\treturn null;\n\t}\n\tswitch (type) {\n\t\tcase \"bubble\":\n\t\t\treturn (\n\t\t\t\t<BubbleLegend\n\t\t\t\t\tradius={\n\t\t\t\t\t\t(layer as CustomBubbleLayer)?.radius ?? {\n\t\t\t\t\t\t\tmin: 0,\n\t\t\t\t\t\t\tmax: 50,\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tlegends={legends ?? []}\n\t\t\t\t\tname={name ?? dataItem.displayName}\n\t\t\t\t\tdata={data}\n\t\t\t\t\tdataItem={head(data)?.dataItem ?? dataItem}\n\t\t\t\t/>\n\t\t\t);\n\t\tcase \"choropleth\":\n\t\t\treturn (\n\t\t\t\t<ChoroplethLegend\n\t\t\t\t\tlegends={legends ?? []}\n\t\t\t\t\tname={name ?? dataItem.displayName}\n\t\t\t\t\tdata={data}\n\t\t\t\t\tdataItem={head(data)?.dataItem ?? dataItem}\n\t\t\t\t/>\n\t\t\t);\n\t}\n}\n\nfunction CollapsedLegendIcon({\n\tonCollapse,\n\tname,\n}: {\n\tname: string;\n\tonCollapse: () => void;\n}) {\n\tconst openDelay = 200;\n\tconst closeDelay = 200;\n\tconst [openTooltip, setOpenTooltip] = useState(false);\n\tconst openTimerRef = useRef<any>(null);\n\tconst closeTimerRef = useRef<any>(null);\n\tconst ref = useRef<HTMLDivElement>(null);\n\n\tconst hideModifier = { name: \"hide\" };\n\tconst offsetModifier = {\n\t\tname: \"offset\",\n\t\toptions: {\n\t\t\toffset: [0, TOOLTIP_OFFSET],\n\t\t},\n\t};\n\n\tconst flipModifier = {\n\t\tname: \"flip\",\n\t\toptions: { altBoundary: true },\n\t};\n\n\tconst onMouseOver = () => {\n\t\tclearTimeout(closeTimerRef.current);\n\n\t\topenTimerRef.current = setTimeout(() => {\n\t\t\tsetOpenTooltip(true);\n\t\t}, openDelay);\n\t};\n\n\tconst onMouseOut = () => {\n\t\tclearTimeout(openTimerRef.current);\n\n\t\tcloseTimerRef.current = setTimeout(() => {\n\t\t\tsetOpenTooltip(false);\n\t\t}, closeDelay);\n\t};\n\n\tuseEffect(\n\t\t() => () => {\n\t\t\tclearTimeout(openTimerRef.current);\n\t\t\tclearTimeout(closeTimerRef.current);\n\t\t},\n\t\t[],\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tref={ref}\n\t\t\tonMouseOver={onMouseOver}\n\t\t\tonMouseOut={onMouseOut}\n\t\t\tonClick={onCollapse}\n\t\t\tstyle={{ width: 28, height: 28 }}\n\t\t\tclassName=\"legend-card collapsed\"\n\t\t>\n\t\t\t<IconLegend24 />\n\t\t\t{openTooltip && (\n\t\t\t\t<Portal\n\t\t\t\t\t/*\n\t\t\t // @ts-ignore */\n\t\t\t\t\tclassName={classes[\"map-tooltip\"]}\n\t\t\t\t>\n\t\t\t\t\t<Popper\n\t\t\t\t\t\tclassName={classes[\"map-tooltip\"]}\n\t\t\t\t\t\treference={ref}\n\t\t\t\t\t\t/*\n // @ts-ignore */\n\t\t\t\t\t\tmodifiers={[offsetModifier, flipModifier, hideModifier]}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackgroundColor: `${colors.grey900}`,\n\t\t\t\t\t\t\t\tborderRadius: 3,\n\t\t\t\t\t\t\t\tcolor: `${colors.white}`,\n\t\t\t\t\t\t\t\tpadding: \"4px 6px\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tdata-test={`content`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{name}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Popper>\n\t\t\t\t</Portal>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nfunction Legend({\n\tchildren,\n\tcollapsible,\n}: {\n\tchildren: ReactElement;\n\tcollapsible: boolean;\n}) {\n\tconst [collapsed, setCollapsed] = useState(collapsible);\n\tconst inPrintMode = usePrintMedia();\n\tconst onCollapse = () => {\n\t\tif (collapsible) {\n\t\t\tsetCollapsed((prevState) => !prevState);\n\t\t}\n\t};\n\n\tconst name = head(Children.toArray(children) as ReactElement[])?.props.name;\n\n\tconst shouldCollapse = collapsed && !inPrintMode;\n\n\treturn (\n\t\t<div className=\"w-100\">\n\t\t\t{shouldCollapse ? (\n\t\t\t\t<CollapsedLegendIcon name={name} onCollapse={onCollapse} />\n\t\t\t) : (\n\t\t\t\tChildren.map(children, (child) =>\n\t\t\t\t\tcloneElement(child, { collapsible, onCollapse }),\n\t\t\t\t)\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport default function LegendArea({\n\tlayers,\n\tlegends: legendConfig,\n}: {\n\tlayers: Array<\n\t\tCustomThematicLayer | CustomPointLayer | CustomGoogleEngineLayer\n\t>;\n\tposition: ControlPosition;\n\tlegends?: MapLegendConfig;\n}) {\n\tconst legends: JSX.Element[] = compact(\n\t\tlayers.filter((layer) => layer.enabled).map(getLegendComponent),\n\t);\n\tconst { position, collapsible } = legendConfig ?? {};\n\n\treturn (\n\t\t<CustomControl position={position}>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\tgap: 16,\n\t\t\t\t\talignItems: \"flex-end\",\n\t\t\t\t\tmaxWidth: 200,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{legends?.map((legend: any, index) => (\n\t\t\t\t\t<Legend\n\t\t\t\t\t\tcollapsible={collapsible ?? true}\n\t\t\t\t\t\tkey={`${index}-map-legend`}\n\t\t\t\t\t>\n\t\t\t\t\t\t{legend}\n\t\t\t\t\t</Legend>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t</CustomControl>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/PointLayer/components/PointLegend/index.tsx"],"names":["name"],"mappings":";;;;;;;;;AAQA,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/PointLayer/components/PointLegend/index.tsx"],"names":["name"],"mappings":"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","file":"index.js","sourcesContent":["import { useConfig } from \"@dhis2/app-runtime\";\nimport { Divider } from \"@dhis2/ui\";\nimport { forwardRef, type LegacyRef } from \"react\";\nimport { getIconUrl } from \"../../../../../../utils/helpers.js\";\nimport LegendCardHeader from \"../../../LegendArea/components/LegendCardHeader/index.js\";\nimport { usePointLayer } from \"../../hooks/index.js\";\nimport i18n from \"@dhis2/d2-i18n\";\n\nfunction PointLegends({\n\torgUnitGroups,\n\ticon,\n\tlabel,\n}: {\n\torgUnitGroups: { name: string; symbol: string }[];\n\ticon?: string;\n\tlabel?: string;\n}) {\n\tconst { baseUrl } = useConfig();\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tminWidth: 100,\n\t\t\t\talignItems: \"flex-start\",\n\t\t\t\twidth: \"100%\",\n\t\t\t\tpadding: 8,\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\tflexDirection: \"column\",\n\t\t\t}}\n\t\t>\n\t\t\t{icon && (\n\t\t\t\t<div\n\t\t\t\t\tkey={`${icon}-legend`}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t}}\n\t\t\t\t\tclassName=\"row gap-16 align-items-center\"\n\t\t\t\t>\n\t\t\t\t\t<img\n\t\t\t\t\t\theight={20}\n\t\t\t\t\t\twidth={20}\n\t\t\t\t\t\talt={`${name}-icon`}\n\t\t\t\t\t\tsrc={getIconUrl(icon, { baseUrl })}\n\t\t\t\t\t/>\n\t\t\t\t\t<p>{label}</p>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{orgUnitGroups.map(({ name, symbol }) => {\n\t\t\t\treturn (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={`${name}-legend`}\n\t\t\t\t\t\tclassName=\"row gap-16 align-items-center\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\theight={20}\n\t\t\t\t\t\t\twidth={20}\n\t\t\t\t\t\t\talt={`${name}-icon`}\n\t\t\t\t\t\t\tsrc={getIconUrl(symbol ?? \"\", { baseUrl })}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<p>{name}</p>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n}\n\nfunction PointLegend(\n\t{ collapsible, onCollapse }: any,\n\tref: LegacyRef<HTMLDivElement>,\n) {\n\tconst pointLayer = usePointLayer();\n\tconst { label, style } = pointLayer ?? {};\n\n\treturn (\n\t\t<div ref={ref} className=\"legend-card\">\n\t\t\t<LegendCardHeader\n\t\t\t\tcollapsible={collapsible}\n\t\t\t\tonCollapse={onCollapse}\n\t\t\t\ttitle={label ?? i18n.t(\"Points\")}\n\t\t\t/>\n\t\t\t<Divider margin={\"0\"} />\n\t\t\t<PointLegends\n\t\t\t\tlabel={label}\n\t\t\t\torgUnitGroups={style?.orgUnitGroups ?? []}\n\t\t\t\ticon={style?.icon}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport default forwardRef(PointLegend);\n"]}
|
package/dist/esm/components/Map/components/MapLayer/components/PointLayer/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../src/components/Map/components/MapLayer/components/PointLayer/hooks/index.ts"],"names":[],"mappings":";;;AAIO,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../src/components/Map/components/MapLayer/components/PointLayer/hooks/index.ts"],"names":[],"mappings":";;;AAIO,SAAS,aAAA,GAAgB;AAC/B,EAAA,MAAM,EAAE,MAAA,EAAO,GAAI,YAAA,EAAa;AAChC,EAAA,OAAO,IAAA,CAAK,MAAA,EAAQ,CAAC,MAAA,EAAQ,OAAO,CAAC,CAAA;AACtC","file":"index.js","sourcesContent":["import { find } from \"lodash\";\nimport { useMapLayers } from \"../../../../MapProvider/hooks/index.js\";\nimport { CustomPointLayer } from \"../../../interfaces/index.js\";\n\nexport function usePointLayer() {\n\tconst { layers } = useMapLayers();\n\treturn find(layers, [\"type\", \"point\"]) as CustomPointLayer;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../src/components/Map/components/MapLayer/components/PointLayer/index.tsx"],"names":[],"mappings":";;;;;;;;AAeO,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../src/components/Map/components/MapLayer/components/PointLayer/index.tsx"],"names":[],"mappings":";;;;;;;;AAeO,SAAS,UAAA,GAAa;AAC5B,EAAA,MAAM,aAAa,aAAA,EAAc;AACjC,EAAA,MAAM;AAAA,IACL,OAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA,EAAQ,QAAA;AAAA,IACR,KAAA;AAAA,IACA,mBAAA;AAAA,IACA;AAAA,GACD,GAAI,cAAc,EAAC;AACnB,EAAA,MAAM,EAAE,OAAA,EAAQ,GAAI,SAAA,EAAU;AAC9B,EAAA,uBACC,GAAA;AAAA,IAAC,aAAA,CAAc,OAAA;AAAA,IAAd;AAAA,MACA,OAAA,EAAS,OAAA;AAAA,MACT,IAAA,EAAM,KAAA,IAAS,IAAA,CAAK,CAAA,CAAE,QAAQ,CAAA;AAAA,MAE9B,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EACC,QAAA,EAAA,QAAA,EAAU,GAAA,CAAI,CAAC,IAAA,KAAuB;AACtC,QAAA,uBACC,IAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACA,YAAA,EAAc,CAAC,CAAA,EAAG,WAAA,KAAgB;AACjC,cAAA,OAAO,CAAA,CAAE,OAAO,WAAA,EAAa;AAAA,gBAC5B,IAAA,EAAM,OAAA;AAAA,kBACL,UAAA;AAAA,oBACC,IAAA,CAAK,IAAA,CAAK,IAAA,IAAQ,KAAA,EAAO,IAAA;AAAA,oBACzB,EAAE,OAAA;AAAQ;AACX;AACD,eACA,CAAA;AAAA,YACF,CAAA;AAAA,YACA,aAAA,EAAe;AAAA,cACd,GAAI,uBAAuB,EAAC;AAAA,cAC5B,SAAA,EAAW,CAAC,CAAA,KAAM;AACjB,gBAAA,IAAI,YAAA,EAAc;AACjB,kBAAA,YAAA,CAAa,CAAA,EAAG,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA;AAAA,gBAClC;AAAA,cACD;AAAA,aACD;AAAA,YACA,MAAM,IAAA,CAAK,OAAA;AAAA,YACX,WAAA,EAAW,IAAA;AAAA,YAGX,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,OAAA,EAAA,EAAS,eAAK,IAAA,EAAK,CAAA;AAAA,8BACpB,GAAA,CAAC,SAAM,QAAA,EAAU,EAAA,EAChB,8BAAC,IAAA,EAAA,EAAI,QAAA,EAAA,IAAA,CAAK,MAAK,CAAA,EAChB;AAAA;AAAA,WAAA;AAAA,UALK,CAAA,EAAG,KAAK,EAAE,CAAA,QAAA;AAAA,SAMhB;AAAA,MAEF,CAAC,CAAA,EACF;AAAA;AAAA,GACD;AAEF","file":"index.js","sourcesContent":["import { useConfig } from \"@dhis2/app-runtime\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport L from \"leaflet\";\nimport React from \"react\";\nimport {\n\tGeoJSON,\n\tLayerGroup,\n\tLayersControl,\n\tPopup,\n\tTooltip,\n} from \"react-leaflet\";\nimport { PointOrgUnit } from \"../../../../interfaces/index.js\";\nimport { getIcon, getIconUrl } from \"../../../../utils/helpers.js\";\nimport { usePointLayer } from \"./hooks/index.js\";\n\nexport function PointLayer() {\n\tconst pointLayer = usePointLayer();\n\tconst {\n\t\tenabled,\n\t\tlabel,\n\t\tpoints: orgUnits,\n\t\tstyle,\n\t\tcustomEventHandlers,\n\t\tonLayerClick,\n\t} = pointLayer ?? {};\n\tconst { baseUrl } = useConfig();\n\treturn (\n\t\t<LayersControl.Overlay\n\t\t\tchecked={enabled}\n\t\t\tname={label ?? i18n.t(\"Points\")}\n\t\t>\n\t\t\t<LayerGroup>\n\t\t\t\t{orgUnits?.map((area: PointOrgUnit) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<GeoJSON\n\t\t\t\t\t\t\tpointToLayer={(_, coordinates) => {\n\t\t\t\t\t\t\t\treturn L.marker(coordinates, {\n\t\t\t\t\t\t\t\t\ticon: getIcon(\n\t\t\t\t\t\t\t\t\t\tgetIconUrl(\n\t\t\t\t\t\t\t\t\t\t\tarea.icon.icon ?? style?.icon,\n\t\t\t\t\t\t\t\t\t\t\t{ baseUrl },\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\teventHandlers={{\n\t\t\t\t\t\t\t\t...(customEventHandlers ?? {}),\n\t\t\t\t\t\t\t\tmousedown: (e) => {\n\t\t\t\t\t\t\t\t\tif (onLayerClick) {\n\t\t\t\t\t\t\t\t\t\tonLayerClick(e, { orgUnit: area });\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tdata={area.geoJSON}\n\t\t\t\t\t\t\tinteractive\n\t\t\t\t\t\t\tkey={`${area.id}-polygon`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Tooltip>{area.name}</Tooltip>\n\t\t\t\t\t\t\t<Popup minWidth={80}>\n\t\t\t\t\t\t\t\t<h3>{area.name}</h3>\n\t\t\t\t\t\t\t</Popup>\n\t\t\t\t\t\t</GeoJSON>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</LayerGroup>\n\t\t</LayersControl.Overlay>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubble.tsx"],"names":[],"mappings":";;;AAcA,MAAM,SAAS,CAAC;AAAA,EACf,MAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA;AACD,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubble.tsx"],"names":[],"mappings":";;;AAcA,MAAM,SAAS,CAAC;AAAA,EACf,MAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA;AACD,CAAA,KAAmB;AAClB,EAAA,MAAM,YAAY,SAAA,KAAc,MAAA;AAChC,EAAA,MAAM,CAAA,GAAI,SAAA;AACV,EAAA,MAAM,CAAA,GAAI,YAAY,CAAA,GAAI,MAAA;AAC1B,EAAA,MAAM,KAAK,SAAA,GACR,CAAA,GAAI,SAAA,GAAY,WAAA,GAChB,IAAI,SAAA,GAAY,WAAA;AACnB,EAAA,MAAM,EAAA,GAAK,SAAA,GAAY,CAAA,GAAI,MAAA,GAAS,CAAA;AACpC,EAAA,MAAM,KAAA,GAAQ,EAAA,IAAM,SAAA,GAAY,CAAC,WAAA,GAAc,WAAA,CAAA;AAC/C,EAAA,MAAM,UAAA,GAAa,YAAY,KAAA,GAAQ,OAAA;AAEvC,EAAA,4BACE,GAAA,EAAA,EACA,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACA,EAAA,EAAI,CAAA;AAAA,QACJ,EAAA,EAAI,CAAA;AAAA,QACJ,CAAA,EAAG,MAAA;AAAA,QACH,QAAQ,MAAA,IAAU,MAAA;AAAA,QAClB,KAAA,EAAO;AAAA,UACN,IAAA,EAAM,OAAA,GAAU,CAAA,KAAA,EAAQ,OAAO,MAAM,KAAA,IAAS,MAAA;AAAA,UAC9C,WAAA,EAAa;AAAA;AACd;AAAA,KACD;AAAA,IACC,IAAA,yBACC,GAAA,EAAA,EACA,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACA,EAAA,EAAI,CAAA;AAAA,UACJ,EAAA;AAAA,UACA,EAAA,EAAI,EAAA;AAAA,UACJ,EAAA;AAAA,UACA,MAAA,EAAO,OAAA;AAAA,UACP,KAAA,EAAO,EAAE,eAAA,EAAiB,MAAA,EAAQ,aAAa,GAAA;AAAI;AAAA,OACpD;AAAA,sBACA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACA,CAAA,EAAG,KAAA;AAAA,UACH,CAAA,EAAG,EAAA;AAAA,UACH,UAAA;AAAA,UACA,iBAAA,EAAkB,QAAA;AAAA,UAClB,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAG;AAAA,UAErB,QAAA,EAAA;AAAA;AAAA;AACF,KAAA,EACD;AAAA,GAAA,EAEF,CAAA;AAEF,CAAA;AAEA,IAAO,cAAA,GAAQ","file":"Bubble.js","sourcesContent":["import React from \"react\";\nimport { guideLength, textPadding } from \"./Bubbles.js\";\n\nexport interface BubbleProps {\n\tradius: number;\n\tmaxRadius: number;\n\ttext?: string;\n\ttextAlign?: \"left\" | \"right\";\n\tcolor?: string;\n\tstroke?: string;\n\tpattern?: string;\n\tgap?: number;\n}\n\nconst Bubble = ({\n\tradius,\n\tmaxRadius,\n\ttext,\n\ttextAlign,\n\tcolor,\n\tstroke,\n\tpattern,\n}: BubbleProps) => {\n\tconst leftAlign = textAlign === \"left\";\n\tconst x = maxRadius;\n\tconst y = maxRadius * 2 - radius;\n\tconst x2 = leftAlign\n\t\t? x - maxRadius - guideLength\n\t\t: x + maxRadius + guideLength;\n\tconst y2 = maxRadius * 2 - radius * 2;\n\tconst textX = x2 + (leftAlign ? -textPadding : textPadding);\n\tconst textAnchor = leftAlign ? \"end\" : \"start\";\n\n\treturn (\n\t\t<g>\n\t\t\t<circle\n\t\t\t\tcx={x}\n\t\t\t\tcy={y}\n\t\t\t\tr={radius}\n\t\t\t\tstroke={stroke || \"#000\"}\n\t\t\t\tstyle={{\n\t\t\t\t\tfill: pattern ? `url(#${pattern})` : color || \"none\",\n\t\t\t\t\tstrokeWidth: 0.5,\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{text && (\n\t\t\t\t<g>\n\t\t\t\t\t<line\n\t\t\t\t\t\tx1={x}\n\t\t\t\t\t\tx2={x2}\n\t\t\t\t\t\ty1={y2}\n\t\t\t\t\t\ty2={y2}\n\t\t\t\t\t\tstroke=\"black\"\n\t\t\t\t\t\tstyle={{ strokeDasharray: \"2, 2\", strokeWidth: 0.5 }}\n\t\t\t\t\t/>\n\t\t\t\t\t<text\n\t\t\t\t\t\tx={textX}\n\t\t\t\t\t\ty={y2}\n\t\t\t\t\t\ttextAnchor={textAnchor}\n\t\t\t\t\t\talignmentBaseline=\"middle\"\n\t\t\t\t\t\tstyle={{ fontSize: 12 }}\n\t\t\t\t\t>\n\t\t\t\t\t\t{text}\n\t\t\t\t\t</text>\n\t\t\t\t</g>\n\t\t\t)}\n\t\t</g>\n\t);\n};\n\nexport default Bubble;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubbles.tsx"],"names":["smallestGap"],"mappings":";;;;;;;;;AAQA,MAAM,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubbles.tsx"],"names":["smallestGap"],"mappings":"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","file":"Bubbles.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport { scaleSqrt } from \"d3-scale\";\nimport { reduce } from \"lodash\";\nimport { memo } from \"react\";\nimport { getContrastColor } from \"../../../../../../../../../utils/colors.js\";\nimport { getLongestTextLength } from \"../../../../../../../../../utils/helpers.js\";\nimport Bubble, { BubbleProps } from \"./Bubble.js\";\n\nconst style = {\n\tpaddingTop: 10,\n\tdisplay: \"flex\",\n\talignItems: \"center\",\n\tjustifyContent: \"center\",\n};\n\nconst legendWidth = 180;\nconst digitWidth = 6.8;\nexport const guideLength = 16;\nexport const textPadding = 4;\n\nconst Bubbles = ({\n\tradiusLow,\n\tradiusHigh,\n\tcolor,\n\tclasses,\n}: {\n\tradiusLow: number;\n\tradiusHigh: number;\n\tcolor?: string;\n\tclasses: Array<any>;\n}) => {\n\tconst height = radiusHigh * 2 + 4;\n\tconst scale = scaleSqrt().range([radiusLow, radiusHigh]);\n\tconst radiusMid = scale(0.5);\n\n\tif (isNaN(radiusLow) || isNaN(radiusHigh)) {\n\t\treturn null;\n\t}\n\n\tlet bubbles: Array<BubbleProps> = [];\n\n\t// If color legend\n\tif (Array.isArray(classes) && classes.length) {\n\t\tconst startValue = classes[0].startValue;\n\t\tconst endValue = classes[classes.length - 1].endValue;\n\t\tconst itemScale = scale.domain([startValue, endValue]);\n\n\t\tbubbles = [...classes].reverse().map((c) => ({\n\t\t\tradius: itemScale(c.endValue),\n\t\t\tmaxRadius: radiusHigh,\n\t\t\tcolor: c.color,\n\t\t\ttext: String(c.endValue),\n\t\t}));\n\n\t\t// Add the smallest bubble for the lowest value\n\t\tbubbles.push({\n\t\t\tradius: itemScale(startValue),\n\t\t\tmaxRadius: radiusHigh,\n\t\t\ttext: String(startValue),\n\t\t});\n\t} else {\n\t\t// If single color\n\t\tconst stroke = color && getContrastColor(color);\n\n\t\tbubbles = [\n\t\t\t{\n\t\t\t\tradius: radiusHigh,\n\t\t\t\tmaxRadius: radiusHigh,\n\t\t\t\tcolor,\n\t\t\t\tstroke,\n\t\t\t\ttext: i18n.t(\"Max\"),\n\t\t\t},\n\t\t\t{\n\t\t\t\tradius: radiusMid,\n\t\t\t\tmaxRadius: radiusHigh,\n\t\t\t\tcolor,\n\t\t\t\tstroke,\n\t\t\t\ttext: i18n.t(\"Mid\"),\n\t\t\t},\n\t\t\t{\n\t\t\t\tradius: radiusLow,\n\t\t\t\tmaxRadius: radiusHigh,\n\t\t\t\tcolor,\n\t\t\t\tstroke,\n\t\t\t\ttext: i18n.t(\"Min\"),\n\t\t\t},\n\t\t];\n\t}\n\n\t// Calculate the pixel length of the longest number\n\tlet textLength = Math.ceil(\n\t\tMath.max(\n\t\t\tgetLongestTextLength(classes, \"startValue\"),\n\t\t\tgetLongestTextLength(classes, \"endValue\"),\n\t\t) * digitWidth,\n\t);\n\n\t// Calculate the total length if numbers are alternate on each side\n\tconst alternateLength =\n\t\t(radiusHigh + guideLength + textPadding + textLength) * 2;\n\n\tlet smallestGap = reduce(bubbles, (prev, curr: any, i) => {\n\t\tconst gap = prev.radius - curr.radius;\n\t\tconst smallestGap =\n\t\t\tprev.gap === undefined || gap < prev.gap ? gap : prev.gap;\n\n\t\treturn i === bubbles.length - 1\n\t\t\t? Math.round(smallestGap * 2)\n\t\t\t: {\n\t\t\t\t\tradius: curr.radius,\n\t\t\t\t\tgap: smallestGap,\n\t\t\t\t};\n\t});\n\n\tconst alternateFit = alternateLength < legendWidth;\n\n\tconst alternate = alternateFit && smallestGap > 5 && smallestGap < 12;\n\n\tif (!alternateFit) {\n\t\tsmallestGap = smallestGap / 2;\n\t}\n\n\t// Too cramped to show number for each bubble\n\tif (smallestGap < 4) {\n\t\tconst [maxBubble] = bubbles;\n\t\tconst minBubble = bubbles[bubbles.length - 1];\n\t\tconst gap = maxBubble.radius - minBubble.radius;\n\t\tconst showNumbers = [0]; // Always show the largest number\n\n\t\tif (gap > 4) {\n\t\t\tshowNumbers.push(bubbles.length - 1);\n\t\t}\n\n\t\tif (gap > 15) {\n\t\t\tconst midRadius = minBubble.radius + gap / 2;\n\n\t\t\t// Find the closest bubble above the mid-radius\n\t\t\tconst midBubble = bubbles.reduce((prev, curr) =>\n\t\t\t\tcurr.radius >= midRadius &&\n\t\t\t\tcurr.radius - midRadius < prev.radius - midRadius\n\t\t\t\t\t? curr\n\t\t\t\t\t: prev,\n\t\t\t);\n\n\t\t\tshowNumbers.push(bubbles.indexOf(midBubble));\n\t\t}\n\n\t\tbubbles.forEach((b, i) => {\n\t\t\tif (!showNumbers.includes(i)) {\n\t\t\t\tdelete b.text;\n\t\t\t}\n\t\t});\n\t}\n\n\ttextLength = Math.ceil(getLongestTextLength(bubbles, \"text\") * digitWidth);\n\n\tconst offset = textLength + guideLength + textPadding;\n\n\treturn (\n\t\t<div style={style}>\n\t\t\t<svg width={legendWidth} height={height + 50}>\n\t\t\t\t<g transform={`translate(${alternate ? offset : \"16\"} 24)`}>\n\t\t\t\t\t{bubbles.map((bubble, i) => (\n\t\t\t\t\t\t<Bubble\n\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\t{...bubble}\n\t\t\t\t\t\t\ttextAlign={\n\t\t\t\t\t\t\t\talternate && i % 2 == 0 ? \"left\" : \"right\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</g>\n\t\t\t</svg>\n\t\t</div>\n\t);\n};\n\nexport default memo(Bubbles);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/index.tsx"],"names":[],"mappings":";;;;;;AAUA,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/index.tsx"],"names":[],"mappings":";;;;;;AAUA,SAAS,YAAA,CACR;AAAA,EACC,MAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA;AACD,CAAA,EASA,GAAA,EACC;AACD,EAAA,uBACC,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,aAAA,EAAc,GAAA,EAC5B,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,gBAAA;AAAA,MAAA;AAAA,QACA,OAAO,QAAA,CAAS,WAAA;AAAA,QAChB,UAAA;AAAA,QACA;AAAA;AAAA,KACD;AAAA,oBACA,GAAA,CAAC,OAAA,EAAA,EAAQ,MAAA,EAAQ,GAAA,EAAK,CAAA;AAAA,oBACtB,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAA,EACd,QAAA,kBAAA,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACA,OAAA,EAAS,QAAQ,OAAA,EAAQ;AAAA,QACzB,YAAY,MAAA,CAAO,GAAA;AAAA,QACnB,WAAW,MAAA,CAAO,GAAA;AAAA,QAClB,KAAA,EAAO;AAAA;AAAA,KACR,EACD;AAAA,GAAA,EACD,CAAA;AAEF;AAEA,IAAO,oBAAA,GAAQ,WAAW,YAAY","file":"index.js","sourcesContent":["import { Divider } from \"@dhis2/ui\";\nimport type { Legend } from \"@hisptz/dhis2-utils\";\nimport { forwardRef, type LegacyRef } from \"react\";\nimport {\n\tThematicLayerData,\n\tThematicLayerDataItem,\n} from \"../../../../../../interfaces/index.js\";\nimport LegendCardHeader from \"../../../../../LegendArea/components/LegendCardHeader/index.js\";\nimport Bubbles from \"./components/Bubbles.js\";\n\nfunction BubbleLegend(\n\t{\n\t\tradius,\n\t\tdataItem,\n\t\tdata,\n\t\tname,\n\t\tcollapsible,\n\t\tonCollapse,\n\t\tlegends,\n\t}: {\n\t\tradius: { min: number; max: number };\n\t\tdataItem: ThematicLayerDataItem;\n\t\tdata: ThematicLayerData[];\n\t\tname?: string;\n\t\tcollapsible?: boolean;\n\t\tonCollapse?: () => void;\n\t\tlegends: Legend[];\n\t},\n\tref: 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\tonCollapse={onCollapse}\n\t\t\t\tcollapsible={collapsible}\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<Bubbles\n\t\t\t\t\tclasses={legends.reverse()}\n\t\t\t\t\tradiusHigh={radius.max}\n\t\t\t\t\tradiusLow={radius.min}\n\t\t\t\t\tcolor={\"#FF0000\"}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport default forwardRef(BubbleLegend);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/index.tsx"],"names":[],"mappings":";;;;;;;;AAqBA,MAAM,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/index.tsx"],"names":[],"mappings":";;;;;;;;AAqBA,MAAM,YAAA,GAAe;AAAA,EACpB,MAAA,EAAQ;AACT,CAAA;AACA,MAAM,cAAA,GAAiB;AAAA,EACtB,MAAA,EAAQ;AACT,CAAA;AAQe,SAAR,MAAA,CAAwB;AAAA,EAC9B,IAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,mBAAA;AAAA,EACA;AACD,CAAA,EAOG;AACF,EAAA,MAAM,EAAE,OAAA,EAAS,IAAA,EAAM,KAAA,EAAM,GAAI,QAAQ,EAAC;AAE1C,EAAA,MAAM,gBAAgB,OAAA,CAAQ,OAAA;AAC9B,EAAA,MAAM,SAAS,OAAA,CAAQ,aAAa,CAAA,CAAE,SAAA,GAAY,SAAA,EAAU;AAE5D,EAAA,MAAM,YAAA,GAAe,QAAQ,MAAM;AAClC,IAAA,OAAA,CAAS,KAAA,IAAS,CAAA,KAAM,MAAA,EAAQ,GAAA,IAAO,EAAA,CAAA,GAAO,WAAA;AAAA,EAC/C,CAAA,EAAG,CAAC,MAAA,EAAQ,IAAA,EAAM,WAAW,CAAC,CAAA;AAE9B,EAAA,uBACC,GAAA,CAAA,QAAA,EAAA,EACC,QAAA,kBAAA,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACA,WAAA,EAAW,IAAA;AAAA,MACX,aAAA,EAAe;AAAA,QACd,SAAA,EAAW,CAAC,CAAA,KAAM,gBAAA,CAAiB,GAAG,cAAc,CAAA;AAAA,QACpD,QAAA,EAAU,CAAC,CAAA,KAAM,cAAA,CAAe,GAAG,YAAY,CAAA;AAAA,QAC/C,GAAI,uBAAuB,EAAC;AAAA,QAC5B,SAAA,EAAW,CAAC,CAAA,KAAM;AACjB,UAAA,IAAI,YAAA,EAAc;AACjB,YAAA,YAAA,CAAa,GAAG,IAAI,CAAA;AAAA,UACrB;AAAA,QACD;AAAA,OACD;AAAA,MACA,WAAA,EAAa;AAAA,QACZ,SAAA,EAAW,qBAAA,CAAsB,OAAA,EAAS,IAAA,CAAK,IAAI,CAAA;AAAA,QACnD,WAAA,EAAa,CAAA;AAAA,QACb,OAAO,MAAA,CAAO,OAAA;AAAA,QACd,MAAA,EAAQ;AAAA,OACT;AAAA,MACA,MAAA,EAAQ,YAAA;AAAA,MACR,MAAA;AAAA,MAEA,QAAA,kBAAA,GAAA,CAAC,iBAAc,IAAA,EAAY;AAAA;AAAA,GAC5B,EACD,CAAA;AAEF","file":"index.js","sourcesContent":["import { colors } from \"@dhis2/ui\";\nimport type { Legend } from \"@hisptz/dhis2-utils\";\nimport {\n\tgeoJSON,\n\ttype LeafletEventHandlerFnMap,\n\ttype LeafletMouseEvent,\n} from \"leaflet\";\nimport { useMemo } from \"react\";\nimport { CircleMarker } from \"react-leaflet\";\nimport {\n\tgetColorFromLegendSet,\n\thighlightFeature,\n\tresetHighlight,\n} from \"../../../../../../utils/map.js\";\nimport {\n\tThematicLayerData,\n\tThematicLayerDataItem,\n} from \"../../../../interfaces/index.js\";\nimport CustomTooltip from \"../CustomTooltip/index.js\";\nimport { MapOrgUnit } from \"../../../../../../interfaces/index.js\";\n\nconst defaultStyle = {\n\tweight: 1,\n};\nconst highlightStyle = {\n\tweight: 2,\n};\n\ninterface LayerData {\n\torgUnit: MapOrgUnit;\n\tdata?: number;\n\tdataItem: ThematicLayerDataItem;\n}\n\nexport default function Bubble({\n\tdata,\n\thighestData,\n\tlegends,\n\tradius,\n\tcustomEventHandlers,\n\tonLayerClick,\n}: {\n\tdata: ThematicLayerData;\n\thighestData: number;\n\tlegends: Legend[];\n\tradius?: { min: number; max: number };\n\tcustomEventHandlers?: LeafletEventHandlerFnMap;\n\tonLayerClick?: (e: LeafletMouseEvent, data: LayerData) => void;\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\t...(customEventHandlers ?? {}),\n\t\t\t\t\tmousedown: (e) => {\n\t\t\t\t\t\tif (onLayerClick) {\n\t\t\t\t\t\t\tonLayerClick(e, data);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.tsx"],"names":[],"mappings":";;;;;;;;AAYA,MAAM,YAAA,GAAe,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.tsx"],"names":[],"mappings":";;;;;;;;AAYA,MAAM,YAAA,GAAe,IAAA,CAAK,YAAA,CAAa,OAAA,EAAS;AAAA,EAC/C,QAAA,EAAU;AACX,CAAC,CAAA,CAAE,MAAA;AAEI,SAAS,UAAA,CAAW;AAAA,EAC1B,MAAA;AAAA,EACA;AACD,CAAA,EAGG;AACF,EAAA,uBACC,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,aAAA,EACd,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACA,SAAA,EAAU,mBAAA;AAAA,QACV,KAAA,EAAO,EAAE,eAAA,EAAiB,MAAA,CAAO,KAAA;AAAM;AAAA,KACxC;AAAA,wBACC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EAAqB,QAAA,EAAA,CAAA,EAAG,aAAa,MAAA,CAAO,UAAA,IAAc,CAAC,CAAC,MAAM,YAAA,CAAa,MAAA,CAAO,QAAA,IAAY,CAAC,CAAC,CAAA,CAAA,EAAG,CAAA;AAAA,oBACtH,GAAA,CAAC,SAAI,SAAA,EAAU,mBAAA,EAAqB,cAAI,YAAA,CAAa,KAAA,IAAS,CAAC,CAAC,CAAA,CAAA,CAAA,EAAI;AAAA,GAAA,EACrE,CAAA;AAEF;AAEA,SAAS,gBAAA,CACR;AAAA,EACC,QAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA;AACD,CAAA,EAQA,GAAA,EACC;AACD,EAAA,uBACC,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,aAAA,EAAc,GAAA,EAC5B,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,gBAAA;AAAA,MAAA;AAAA,QACA,OAAO,QAAA,CAAS,WAAA;AAAA,QAChB,WAAA;AAAA,QACA;AAAA;AAAA,KACD;AAAA,oBACA,GAAA,CAAC,OAAA,EAAA,EAAQ,MAAA,EAAQ,GAAA,EAAK,CAAA;AAAA,oBACtB,GAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,YAAY,CAAA,EAAE,EAAG,SAAA,EAAU,aAAA,EACvC,iBAAO,OAAA,EAAS,YAAY,CAAA,CAAE,GAAA,CAAI,CAAC,MAAA,qBACnC,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QAEA,MAAA;AAAA,QACA,KAAA,EAAO,cAAA,CAAe,MAAA,EAAQ,IAAI;AAAA,OAAA;AAAA,MAF7B,CAAA,EAAG,QAAQ,KAAK,CAAA,YAAA;AAAA,KAItB,CAAA,EACF;AAAA,GAAA,EACD,CAAA;AAEF;AAEA,IAAO,wBAAA,GAAQ,WAAW,gBAAgB","file":"ChoroplethLegend.js","sourcesContent":["import \"../../../styles/legends.css\";\nimport { Divider } from \"@dhis2/ui\";\nimport type { Legend } from \"@hisptz/dhis2-utils\";\nimport { forwardRef, type LegacyRef } from \"react\";\nimport { getLegendCount } from \"../../../../../../../utils/map.js\";\nimport {\n\tThematicLayerData,\n\tThematicLayerDataItem,\n} from \"../../../../../interfaces\";\nimport LegendCardHeader from \"../../../../LegendArea/components/LegendCardHeader/index.js\";\nimport { sortBy } from \"lodash\";\n\nconst formatNumber = Intl.NumberFormat(\"en-GB\", {\n\tnotation: \"standard\",\n}).format;\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\">{`${formatNumber(legend.startValue ?? 1)} - ${formatNumber(legend.endValue ?? 1)}`}</div>\n\t\t\t<div className=\"legend-item-value\">{`(${formatNumber(value ?? 0)})`}</div>\n\t\t</div>\n\t);\n}\n\nfunction ChoroplethLegend(\n\t{\n\t\tdataItem,\n\t\tdata,\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: 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 style={{ paddingTop: 4 }} className=\"legend-list\">\n\t\t\t\t{sortBy(legends, \"startValue\").map((legend) => (\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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.tsx"],"names":[],"mappings":";;;;;;;;;AAoBA,MAAM,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.tsx"],"names":[],"mappings":";;;;;;;;;AAoBA,MAAM,YAAA,GAAe;AAAA,EACpB,MAAA,EAAQ;AACT,CAAA;AACA,MAAM,cAAA,GAAiB;AAAA,EACtB,MAAA,EAAQ;AACT,CAAA;AAQe,SAAR,UAAA,CAA4B;AAAA,EAClC,IAAA;AAAA,EACA,OAAA;AAAA,EACA,mBAAA;AAAA,EACA,YAAA;AAAA,EACA;AACD,CAAA,EAMG;AACF,EAAA,MAAM,EAAE,SAAQ,GAAI,IAAA;AACpB,EAAA,MAAM,KAAA,GAAQ,qBAAA,CAAsB,OAAA,EAAS,IAAA,CAAK,IAAI,CAAA;AAEtD,EAAA,MAAM,MAAA,GAAS,SAAA;AAAA,IACd,KAAA;AAAA,MACC,WAAA,CAAoB,OAAA,CAAQ,OAAA,CAAQ,QAAA,CAAS,WAAW,CAAA;AAAA,MACxD;AAAA,MACC,GAAA,CAAI,CAAC,CAAC,QAAA,EAAU,SAAS,CAAA,MAAiB;AAAA,MAC3C,SAAA;AAAA,MACA;AAAA,KACD,CAAE;AAAA,GACH;AAKA,EAAA,uBACC,GAAA,CAAA,QAAA,EAAA,EACC,QAAA,kBAAA,IAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACA,MAAM,OAAA,CAAQ,OAAA;AAAA,MACd,aAAA,EAAe;AAAA,QACd,SAAA,EAAW,CAAC,CAAA,KAAM,gBAAA,CAAiB,GAAG,cAAc,CAAA;AAAA,QACpD,QAAA,EAAU,CAAC,CAAA,KAAM,cAAA,CAAe,GAAG,YAAY,CAAA;AAAA,QAC/C,GAAI,uBAAuB,EAAC;AAAA,QAC5B,SAAA,EAAW,CAAC,CAAA,KAAM;AACjB,UAAA,IAAI,YAAA,EAAc;AACjB,YAAA,YAAA,CAAa,GAAG,IAAI,CAAA;AAAA,UACrB;AAAA,QACD;AAAA,OACD;AAAA,MACA,WAAA,EAAW,IAAA;AAAA,MACX,WAAA,EAAa;AAAA,QACZ,SAAA,EAAW,KAAA;AAAA,QACX,WAAA,EAAa,CAAA;AAAA,QACb,OAAO,MAAA,CAAO,OAAA;AAAA,QACd,IAAA,EAAM,IAAA;AAAA,QACN,MAAA,EAAQ;AAAA,OACT;AAAA,MAGC,QAAA,EAAA;AAAA,QAAA,WAAA,oBACA,GAAA;AAAA,UAAC,WAAA;AAAA,UAAA;AAAA,YACA,UAAA,EAAY,KAAA;AAAA,YACZ,WAAA;AAAA,YACA,MAAM,IAAA,CAAK,IAAA;AAAA,YACX,OAAA;AAAA,YACA,MAAA,EAAQ,CAAC,MAAA,CAAO,SAAA,EAAW,OAAO,QAAQ;AAAA;AAAA,SAC3C;AAAA,wBAED,GAAA,CAAC,iBAAc,IAAA,EAAY;AAAA;AAAA,KAAA;AAAA,IAXtB,CAAA,EAAG,IAAA,CAAK,QAAA,CAAS,EAAE,CAAA,MAAA;AAAA,GAYzB,EACD,CAAA;AAEF","file":"index.js","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\";\nimport {\n\tgetColorFromLegendSet,\n\thighlightFeature,\n\tresetHighlight,\n} from \"../../../../../../utils\";\nimport {\n\ttype LayerLabelConfig,\n\tThematicLayerDataItem,\n} from \"../../../../interfaces\";\nimport CustomTooltip from \"../CustomTooltip/index.js\";\nimport { type LeafletEventHandlerFnMap, type LeafletMouseEvent } from \"leaflet\";\nimport { LabelMarker } from \"../LabelMarker\";\nimport { getCenter } from \"geolib\";\nimport { chunk, flattenDeep } from \"lodash\";\n\nconst defaultStyle = {\n\tweight: 1,\n};\nconst highlightStyle = {\n\tweight: 2,\n};\n\ninterface LayerData {\n\torgUnit: MapOrgUnit;\n\tdata?: number;\n\tdataItem: ThematicLayerDataItem;\n}\n\nexport default function Choropleth({\n\tdata,\n\tlegends,\n\tcustomEventHandlers,\n\tonLayerClick,\n\tlabelConfig,\n}: {\n\tdata: LayerData;\n\tlegends: Legend[];\n\tcustomEventHandlers?: LeafletEventHandlerFnMap;\n\tonLayerClick?: (e: LeafletMouseEvent, data: LayerData) => void;\n\tlabelConfig?: LayerLabelConfig;\n}) {\n\tconst { orgUnit } = data;\n\tconst color = getColorFromLegendSet(legends, data.data);\n\n\tconst center = getCenter(\n\t\tchunk<number>(\n\t\t\tflattenDeep<number>(orgUnit.geoJSON.geometry.coordinates),\n\t\t\t2,\n\t\t).map(([latitude, longitude]: number[]) => ({\n\t\t\tlongitude,\n\t\t\tlatitude,\n\t\t})),\n\t) as {\n\t\tlongitude: number;\n\t\tlatitude: number;\n\t};\n\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\t...(customEventHandlers ?? {}),\n\t\t\t\t\tmousedown: (e) => {\n\t\t\t\t\t\tif (onLayerClick) {\n\t\t\t\t\t\t\tonLayerClick(e, data);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t\tinteractive\n\t\t\t\tpathOptions={{\n\t\t\t\t\tfillColor: color,\n\t\t\t\t\tfillOpacity: 1,\n\t\t\t\t\tcolor: colors.grey900,\n\t\t\t\t\tfill: true,\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{labelConfig && (\n\t\t\t\t\t<LabelMarker\n\t\t\t\t\t\tlayerColor={color}\n\t\t\t\t\t\tlabelConfig={labelConfig}\n\t\t\t\t\t\tdata={data.data}\n\t\t\t\t\t\torgUnit={orgUnit}\n\t\t\t\t\t\tcenter={[center.longitude, center.latitude]}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<CustomTooltip data={data} />\n\t\t\t</GeoJSON>\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.tsx"],"names":[],"mappings":";;;;;AAMe,SAAR,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.tsx"],"names":[],"mappings":";;;;;AAMe,SAAR,aAAA,CAA+B;AAAA,EACrC,IAAA,EAAM;AACP,CAAA,EAEG;AACF,EAAA,MAAM,EAAE,QAAA,EAAU,OAAA,EAAS,IAAA,EAAK,GAAI,cAAc,EAAC;AACnD,EAAA,MAAM,EAAE,OAAA,EAAQ,GAAI,aAAA,MAAmB,EAAC;AAExC,EAAA,MAAM,YAAY,IAAA,CAAK,YAAA,CAAa,UAAU,QAAA,EAAU,EAAE,CAAA,CAAE,MAAA;AAE5D,EAAA,MAAM,aAAA,GAAgB,IAAA,GAAO,SAAA,CAAU,IAAc,CAAA,GAAI,EAAA;AAEzD,EAAA,uBACC,IAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACA,MAAM,CAAA,EAAG,QAAA,CAAS,WAAW,CAAA,CAAA,EAAI,QAAQ,EAAE,CAAA,WAAA,CAAA;AAAA,MAC3C,IAAA,EAAK,WAAA;AAAA,MAEL,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,OAAA,EAAA,EACC,QAAA,EAAA;AAAA,UAAA,OAAA,EAAS,IAAA;AAAA,UAAK,IAAA;AAAA,UAAG,aAAA;AAAA,UAAc;AAAA,SAAA,EACjC,CAAA;AAAA,wBACA,IAAA,CAAC,KAAA,EAAA,EAAM,QAAA,EAAU,EAAA,EAChB,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,QAAG,KAAA,EAAO,EAAE,QAAQ,CAAA,EAAE,EAAI,mBAAS,IAAA,EAAK,CAAA;AAAA,0BACzC,GAAA,CAAC,KAAA,EAAA,EAAK,QAAA,EAAA,QAAA,EAAU,WAAA,EAAY,CAAA;AAAA,0BAC5B,GAAA,CAAC,KAAA,EAAA,EAAK,QAAA,EAAA,OAAA,EAAS,GAAA,CAAI,CAAC,MAAA,KAAW,MAAA,CAAO,IAAI,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA,EAAE,CAAA;AAAA,+BACrD,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,YAAA,IAAA,CAAK,EAAE,OAAO,CAAA;AAAA,YAAE,IAAA;AAAA,YAAG;AAAA,WAAA,EACrB;AAAA,SAAA,EACD;AAAA;AAAA;AAAA,GACD;AAEF","file":"index.js","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\tconst formatter = Intl.NumberFormat(navigator.language, {}).format;\n\n\tconst formattedData = data ? formatter(data as number) : \"\";\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} ({formattedData})\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\")}: {formattedData}\n\t\t\t\t</div>\n\t\t\t</Popup>\n\t\t</Pane>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/LabelMarker/index.tsx"],"names":[],"mappings":";;;;;;;AAOO,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/LabelMarker/index.tsx"],"names":[],"mappings":";;;;;;;AAOO,SAAS,WAAA,CAAY;AAAA,EAC3B,WAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA;AACD,CAAA,EAMG;AACF,EAAA,MAAM,QAAQ,QAAA,CAAS;AAAA,IACtB,WAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,GACA,CAAA;AAED,EAAA,MAAM,SAAA,GAAY,EAAE,OAAA,CAAQ;AAAA,IAC3B,SAAA,EAAW,YAAA;AAAA,IACX,MAAM,CAAA,oBAAA,EAAuB,+BAAA,CAAgC,UAAU,CAAC,0CAA0C,KAAK,CAAA,OAAA;AAAA,GACvH,CAAA;AAED,EAAA,2BAAQ,MAAA,EAAA,EAAO,YAAA,EAAc,KAAM,IAAA,EAAM,SAAA,EAAW,UAAU,MAAA,EAAQ,CAAA;AACvE","file":"index.js","sourcesContent":["import { Marker } from \"react-leaflet\";\nimport { getLabel } from \"../../utils/label\";\nimport type { LayerLabelConfig } from \"../../../../interfaces\";\nimport L, { type LatLngExpression } from \"leaflet\";\nimport \"./label.css\";\nimport { getTextColorFromBackgroundColor } from \"../../../../../../../DHIS2PivotTable/utils/color\";\n\nexport function LabelMarker({\n\tlabelConfig,\n\tdata,\n\torgUnit,\n\tcenter,\n\tlayerColor,\n}: {\n\tlabelConfig: LayerLabelConfig;\n\tdata: number | undefined;\n\torgUnit: { name: string };\n\tcenter: LatLngExpression;\n\tlayerColor: string;\n}) {\n\tconst label = getLabel({\n\t\tlabelConfig,\n\t\tdata,\n\t\torgUnit,\n\t});\n\n\tconst labelIcon = L.divIcon({\n\t\tclassName: \"label-icon\",\n\t\thtml: `<span style=\"color: ${getTextColorFromBackgroundColor(layerColor)}; text-align: center; font-size: 12px\">${label}</span>`,\n\t});\n\n\treturn <Marker zIndexOffset={1000} icon={labelIcon} position={center} />;\n}\n"]}
|
package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/hooks/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/hooks/config.ts"],"names":[],"mappings":";;;;AAKe,SAAR,iBACN,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/hooks/config.ts"],"names":[],"mappings":";;;;AAKe,SAAR,iBACN,OAAA,EACkC;AAClC,EAAA,MAAM,EAAE,MAAA,EAAO,GAAI,UAAA,CAAW,gBAAgB,CAAA;AAE9C,EAAA,OAAO,IAAA,CAAK,MAAA,EAAiC,CAAC,IAAA,EAAM,OAAO,CAAC,CAAA;AAC7D","file":"config.js","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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/index.tsx"],"names":[],"mappings":";;;;;;;AAQe,SAAR,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/index.tsx"],"names":[],"mappings":";;;;;;;AAQe,SAAR,aAAA,CAA+B;AAAA,EACrC,OAAA;AAAA,EACA;AACD,CAAA,EAGG;AACF,EAAA,MAAM,KAAA,GAAQ,iBAAiB,OAAO,CAAA;AAEtC,EAAA,IAAI,CAAC,KAAA,EAAO;AACX,IAAA,OAAO,IAAA;AAAA,EACR;AAEA,EAAA,MAAM;AAAA,IACL,IAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,IAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,mBAAA;AAAA,IACA;AAAA,GACD,GAAI,SAAS,EAAC;AACd,EAAA,MAAM,UAAA,GAAa,QAAQ,QAAA,CAAS,WAAA;AACpC,EAAA,uBACC,GAAA,CAAA,QAAA,EAAA,EACC,8BAAC,aAAA,CAAc,OAAA,EAAd,EAAsB,OAAA,EAAS,OAAA,EAAS,MAAM,UAAA,EAC9C,QAAA,kBAAA,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACN,MAAA,EAAQ,IAAA,KAAS,QAAA,GAAW,GAAA,GAAM,OAAO,KAAA,GAAQ,CAAA;AAAA,OAClD;AAAA,MACA,IAAA,EAAM,UAAA;AAAA,MAEN,+BAAC,UAAA,EAAA,EACC,QAAA,EAAA;AAAA,QAAA,IAAA,EAAM,GAAA;AAAA,UAAI,CAAC,KAAA,KACX,IAAA,KAAS,YAAA,mBACR,GAAA;AAAA,YAAC,UAAA;AAAA,YAAA;AAAA,cACA,aAAa,KAAA,CAAM,WAAA;AAAA,cACnB,mBAAA;AAAA,cACA,YAAA;AAAA,cACA,OAAA,EAAS,WAAW,EAAC;AAAA,cACrB,IAAA,EAAM;AAAA,aAAA;AAAA,YACD,GAAG,KAAA,EAAO,QAAA,EAAU,EAAE,CAAA,CAAA,EAAI,KAAA,EAAO,SAAS,EAAE,CAAA,MAAA;AAAA,WAClD,GACG;AAAA,SACL;AAAA,QACC,IAAA,EAAM,GAAA;AAAA,UAAI,CAAC,KAAA,KACX,IAAA,KAAS,QAAA,mBACR,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACA,QACE,KAAA,EAA6B,MAAA;AAAA,cAE/B,OAAA,EAAS,WAAW,EAAC;AAAA,cACrB,WAAA,EAAa,IAAA,CAAK,IAAI,CAAA,EAAG,IAAA,IAAQ,CAAA;AAAA,cACjC,IAAA,EAAM;AAAA,aAAA;AAAA,YACD,GAAG,KAAA,EAAO,QAAA,EAAU,EAAE,CAAA,CAAA,EAAI,KAAA,EAAO,SAAS,EAAE,CAAA,MAAA;AAAA,WAClD,GACG;AAAA;AACL,OAAA,EACD;AAAA;AAAA,KAEF,CAAA,EACD,CAAA;AAEF","file":"index.js","sourcesContent":["import { last } from \"lodash\";\nimport React from \"react\";\nimport { LayerGroup, LayersControl, Pane } from \"react-leaflet\";\nimport { CustomBubbleLayer } from \"../../interfaces\";\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 {\n\t\ttype,\n\t\tdataItem,\n\t\tname,\n\t\tdata,\n\t\tenabled,\n\t\tlegends,\n\t\tcustomEventHandlers,\n\t\tonLayerClick,\n\t} = 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\tlabelConfig={layer.labelConfig}\n\t\t\t\t\t\t\t\t\tcustomEventHandlers={customEventHandlers}\n\t\t\t\t\t\t\t\t\tonLayerClick={onLayerClick}\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/utils/label.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/utils/label.ts"],"names":[],"mappings":";;AAGA,MAAM,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/utils/label.ts"],"names":[],"mappings":";;AAGA,MAAM,cAAA,GAAiB,IAAA,CAAK,YAAA,CAAa,SAAA,CAAU,QAAQ,CAAA,CAAE,MAAA;AAEtD,SAAS,QAAA,CAAS;AAAA,EACxB,OAAA;AAAA,EACA,IAAA;AAAA,EACA;AACD,CAAA,EAIG;AACF,EAAA,gBAAA,CAAiB,WAAA,GAAc,eAAA;AAE/B,EAAA,OAAO,SAAS,WAAA,CAAY,aAAA,CAAc,QAAQ,KAAA,EAAO,QAAQ,CAAC,CAAA,CAAE;AAAA,IACnE,MAAM,OAAA,CAAQ,IAAA;AAAA,IACd,KAAA,EAAO,IAAA,GAAO,cAAA,CAAe,IAAI,CAAA,GAAI;AAAA,GACrC,CAAA;AACF","file":"label.js","sourcesContent":["import { template, templateSettings } from \"lodash\";\nimport type { LayerLabelConfig } from \"../../../interfaces\";\n\nconst valueFormatter = Intl.NumberFormat(navigator.language).format;\n\nexport function getLabel({\n\torgUnit,\n\tdata,\n\tlabelConfig,\n}: {\n\tlabelConfig: LayerLabelConfig;\n\torgUnit: { name: string };\n\tdata?: number;\n}) {\n\ttemplateSettings.interpolate = /{([\\s\\S]+?)}/g;\n\n\treturn template(labelConfig.labelTemplate.replace(/\\n/g, \"<br />\"))({\n\t\tname: orgUnit.name,\n\t\tvalue: data ? valueFormatter(data) : \"\",\n\t});\n}\n"]}
|