@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/DHIS2PivotTable/components/TableHeaders/index.tsx"],"names":["useRef","useResizeObserver","slice","column","isEmpty","jsxs","Fragment","DataTableRow","jsx","DataTableColumnHeader","classes","times","useCustomPivotTableEngine","TableHead"],"mappings":";;;;;;;;;;;;;;AAQA,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/DHIS2PivotTable/components/TableHeaders/index.tsx"],"names":["useRef","useResizeObserver","slice","column","isEmpty","jsxs","Fragment","DataTableRow","jsx","DataTableColumnHeader","classes","times","useCustomPivotTableEngine","TableHead"],"mappings":"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","file":"index.js","sourcesContent":["import { type ReactElement, useRef } from \"react\";\nimport { useCustomPivotTableEngine } from \"../../state/engine.js\";\nimport { DataTableColumnHeader, DataTableRow, TableHead } from \"@dhis2/ui\";\nimport { isEmpty, slice, times } from \"lodash\";\nimport { DHIS2PivotTableEngine, Header } from \"../../services/engine.js\";\nimport classes from \"./TableHeaders.module.css\";\nimport { useResizeObserver } from \"usehooks-ts\";\n\nfunction ColumnRenderer({\n\tcolumn,\n\tindex,\n\tconfig: { fixColumnHeaders, rowHeaders, prevHeight = 0, columns, engine },\n}: {\n\tcolumn: Header;\n\tindex: number;\n\tconfig: {\n\t\tcolumns: Header[];\n\t\trowHeaders?: Header[];\n\t\tprevHeight?: number;\n\t\tfixColumnHeaders?: boolean;\n\t\tengine: DHIS2PivotTableEngine;\n\t};\n}): ReactElement | null {\n\tconst ref = useRef<HTMLElement | null>(null);\n\tconst { height } = useResizeObserver({\n\t\tref,\n\t});\n\n\tif (!column) {\n\t\treturn null;\n\t}\n\tconst colSpan = slice(columns, index + 1).reduce((acc, column) => {\n\t\treturn acc * (column.items?.length ?? 1);\n\t}, 1);\n\n\tconst hasSubColumns = !isEmpty(columns[index + 1]);\n\tconst nextColumn = columns[index + 1];\n\n\tconst multiplicationFactor = slice(columns, 0, index).reduce(\n\t\t(acc, column) => {\n\t\t\treturn acc * (column.items?.length ?? 1);\n\t\t},\n\t\t1,\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{engine?.showTitle && (\n\t\t\t\t<DataTableRow>\n\t\t\t\t\t<DataTableColumnHeader\n\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\tcolSpan={engine.titleSpan.toString()}\n\t\t\t\t\t>\n\t\t\t\t\t\t{engine.title ?? \"\"}\n\t\t\t\t\t</DataTableColumnHeader>\n\t\t\t\t</DataTableRow>\n\t\t\t)}\n\t\t\t<DataTableRow>\n\t\t\t\t{index === 0 &&\n\t\t\t\t\trowHeaders?.map((header) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<DataTableColumnHeader\n\t\t\t\t\t\t\t\tfixed={fixColumnHeaders}\n\t\t\t\t\t\t\t\t/*\n // @ts-ignore */\n\t\t\t\t\t\t\t\ttop={\"0\"}\n\t\t\t\t\t\t\t\tclassName={classes[\"table-header\"]}\n\t\t\t\t\t\t\t\trowSpan={columns.length.toString()}\n\t\t\t\t\t\t\t\tkey={`${header.dimension}-header-column`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{header.label ?? \"\"}\n\t\t\t\t\t\t\t</DataTableColumnHeader>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t{times(multiplicationFactor, (colNo) => {\n\t\t\t\t\treturn column.items?.map((item) => (\n\t\t\t\t\t\t<DataTableColumnHeader\n\t\t\t\t\t\t\tfixed={fixColumnHeaders}\n\t\t\t\t\t\t\t/*\n // @ts-ignore */\n\t\t\t\t\t\t\ttop={`${prevHeight.toString()}px`}\n\t\t\t\t\t\t\t/*\n// @ts-ignore */\n\t\t\t\t\t\t\tref={index === 0 ? ref : undefined}\n\t\t\t\t\t\t\tclassName={classes[\"table-header\"]}\n\t\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\t\tcolSpan={colSpan.toString()}\n\t\t\t\t\t\t\tkey={`${colNo}-${item.name}-column-header`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{item.name as unknown as string}\n\t\t\t\t\t\t</DataTableColumnHeader>\n\t\t\t\t\t));\n\t\t\t\t})}\n\t\t\t</DataTableRow>\n\t\t\t{hasSubColumns ? (\n\t\t\t\t<ColumnRenderer\n\t\t\t\t\tcolumn={nextColumn}\n\t\t\t\t\tindex={index + 1}\n\t\t\t\t\tconfig={{\n\t\t\t\t\t\tcolumns,\n\t\t\t\t\t\trowHeaders,\n\t\t\t\t\t\tprevHeight: height,\n\t\t\t\t\t\tfixColumnHeaders,\n\t\t\t\t\t\tengine,\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t) : null}\n\t\t</>\n\t);\n}\n\nexport function TableHeaders() {\n\tconst engine = useCustomPivotTableEngine();\n\tconst columns = engine?.columnHeaders;\n\tconst rowHeaders = engine?.rowHeaders;\n\tconst fixColumnHeaders = engine?.fixColumnHeaders;\n\n\tif (!columns || isEmpty(columns)) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<TableHead>\n\t\t\t<ColumnRenderer\n\t\t\t\tcolumn={columns[0]}\n\t\t\t\tindex={0}\n\t\t\t\tconfig={{ engine, rowHeaders, columns, fixColumnHeaders }}\n\t\t\t/>\n\t\t</TableHead>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/DHIS2PivotTable/services/engine.ts"],"names":["findIndex","dimension","compact","getColorFromLegendSet","intersection","times","zip"],"mappings":"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","file":"engine.js","sourcesContent":["import type { LegendSet } from \"@hisptz/dhis2-utils\";\nimport { Analytics, AnalyticsItem } from \"@hisptz/dhis2-utils\";\nimport { compact, findIndex, intersection, times, zip } from \"lodash\";\nimport { DHIS2Dimension } from \"../interfaces\";\nimport { getColorFromLegendSet } from \"../../Map\";\n\nexport interface BaseLegendConfig {\n\tstrategy: \"FIXED\" | \"BY_DATA_ITEM\";\n\tshowKey: boolean;\n\tstyle: \"TEXT\" | \"FILL\";\n}\nexport interface FixedLegendConfig extends BaseLegendConfig {\n\tstrategy: \"FIXED\";\n\tset: LegendSet;\n}\n\nexport interface DataItemLegendConfig extends BaseLegendConfig {\n\tstrategy: \"BY_DATA_ITEM\";\n\tlegendMap: Map<string, LegendSet>;\n}\n\nexport type LegendConfig = FixedLegendConfig | DataItemLegendConfig;\n\nexport interface EngineConfig {\n\tlayout: {\n\t\tcolumns: { dimension: DHIS2Dimension; label?: string }[];\n\t\trows: { dimension: DHIS2Dimension; label?: string }[];\n\t\tfilter?: { dimension: DHIS2Dimension; label?: string }[];\n\t};\n\toptions?: {\n\t\tlegend?: LegendConfig;\n\t\thideEmptyColumns?: boolean;\n\t\thideEmptyRows?: boolean;\n\t\tshowRowTotals?: boolean;\n\t\tshowColumnTotals?: boolean;\n\t\tshowRowSubtotals?: boolean;\n\t\tshowColumnSubtotals?: boolean;\n\t\tshowFilterAsTitle?: boolean;\n\t\tfixColumnHeaders?: boolean;\n\t\tfixRowHeaders?: boolean;\n\t\t[key: string]: any;\n\t};\n}\n\nexport interface Header {\n\tdimension: DHIS2Dimension;\n\tlabel?: string;\n\titems?: AnalyticsItem[];\n}\n\nexport class DHIS2PivotTableEngine {\n\tanalyticsData: Analytics;\n\tvalueIndex: number;\n\tconfig: EngineConfig;\n\trowHeaders?: Header[];\n\tcolumnHeaders?: Header[];\n\n\tcolumnMap?: { [key: string]: any }[];\n\n\tconstructor({\n\t\tanalytics,\n\t\tconfig,\n\t}: {\n\t\tanalytics: Analytics;\n\t\tconfig: EngineConfig;\n\t}) {\n\t\tthis.config = config;\n\t\tthis.analyticsData = analytics;\n\t\tthis.valueIndex = findIndex(this.analyticsData.headers, [\n\t\t\t\"name\",\n\t\t\t\"value\",\n\t\t]);\n\t\tthis.getHeaders();\n\t\tthis.getColumnMap();\n\t}\n\n\tget title() {\n\t\tconst filters = this.config.layout.filter ?? [];\n\t\tconst labels =\n\t\t\tfilters?.map(({ dimension }) => {\n\t\t\t\tconst dimensions =\n\t\t\t\t\tthis.analyticsData.metaData?.dimensions[dimension];\n\n\t\t\t\treturn dimensions?.map((dimension) => {\n\t\t\t\t\tconst dimensionItem =\n\t\t\t\t\t\tthis.analyticsData.metaData?.items[dimension];\n\t\t\t\t\treturn dimensionItem?.name;\n\t\t\t\t});\n\t\t\t}) ?? [];\n\n\t\treturn compact(labels.flat()).join(\", \");\n\t}\n\n\tget titleSpan() {\n\t\tconst rowHeaders = this.rowHeaders?.length ?? 0;\n\t\tconst columnHeaders =\n\t\t\tthis.columnHeaders?.reduce(\n\t\t\t\t(acc, val) => acc + (val.items?.length ?? 0),\n\t\t\t\t0,\n\t\t\t) ?? 0;\n\n\t\treturn rowHeaders + columnHeaders;\n\t}\n\n\tget showTitle() {\n\t\treturn this.config?.options?.showFilterAsTitle;\n\t}\n\n\tget fixColumnHeaders() {\n\t\treturn this.config.options?.fixColumnHeaders ?? true;\n\t}\n\n\tget fixRowHeaders() {\n\t\treturn this.config.options?.fixRowHeaders ?? true;\n\t}\n\n\tgetDimensionItems(dimension: DHIS2Dimension) {\n\t\treturn this.analyticsData.metaData?.dimensions[dimension] ?? [];\n\t}\n\n\tgetItem(id: string) {\n\t\treturn this.analyticsData.metaData?.items[id as any];\n\t}\n\n\tgetItemValueLegend(mapper: { [key: string]: any }) {\n\t\tconst legend = this.config.options?.legend;\n\t\tif (!legend) return;\n\t\tconst value = this.getValue(mapper);\n\t\tconst strategy = legend?.strategy;\n\t\tif (strategy === \"FIXED\") {\n\t\t\tconst legends = legend.set.legends;\n\t\t\tconst color = getColorFromLegendSet(legends, value);\n\t\t\treturn {\n\t\t\t\tcolor,\n\t\t\t\tstyle: legend.style,\n\t\t\t};\n\t\t}\n\t\tif (strategy === \"BY_DATA_ITEM\") {\n\t\t\tconst legendSet = legend.legendMap.get(mapper.dx);\n\t\t\tif (!legendSet) return;\n\t\t\tconst legends = legendSet.legends;\n\t\t\tconst color = getColorFromLegendSet(legends, value);\n\t\t\treturn {\n\t\t\t\tcolor,\n\t\t\t\tstyle: legend.style,\n\t\t\t};\n\t\t}\n\t\treturn;\n\t}\n\n\tgetValue(mapper: { [key: string]: any }) {\n\t\tconst dimensions = Object.values(mapper);\n\t\tconst data = this.analyticsData.rows?.filter(\n\t\t\t(row) => intersection(row, dimensions).length >= dimensions.length,\n\t\t);\n\t\treturn data?.reduce((acc, row) => {\n\t\t\treturn acc + parseFloat(row[this.valueIndex]);\n\t\t}, 0);\n\t}\n\n\tgetHeaders() {\n\t\tthis.rowHeaders = this.config.layout.rows.map((rowConfig) => {\n\t\t\treturn {\n\t\t\t\t...rowConfig,\n\t\t\t\titems: compact(\n\t\t\t\t\tthis.getDimensionItems(rowConfig.dimension).map(\n\t\t\t\t\t\t(itemId: string) => this.getItem(itemId),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t};\n\t\t});\n\t\tthis.columnHeaders = this.config.layout.columns.map((columnConfig) => {\n\t\t\treturn {\n\t\t\t\t...columnConfig,\n\t\t\t\titems: compact(\n\t\t\t\t\tthis.getDimensionItems(columnConfig.dimension).map(\n\t\t\t\t\t\t(itemId: string) => this.getItem(itemId),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t};\n\t\t});\n\t}\n\n\tgetColumnMap() {\n\t\tconst columns = this.columnHeaders;\n\t\tconst sanitizedColumns =\n\t\t\tcompact(\n\t\t\t\tcolumns?.map((column) =>\n\t\t\t\t\tcolumn.items?.map((item) => ({\n\t\t\t\t\t\t[column.dimension]: item.uid,\n\t\t\t\t\t})),\n\t\t\t\t),\n\t\t\t) ?? [];\n\t\tconst size = sanitizedColumns.reduce((acc, items) => {\n\t\t\treturn acc * (items?.length ?? 1);\n\t\t}, 1);\n\t\tconst standardiseColumns = sanitizedColumns.map((items) => [\n\t\t\t...times(size / items.length, () => items).flat(),\n\t\t]);\n\t\tthis.columnMap = compact(\n\t\t\tzip(...standardiseColumns).map((arr) =>\n\t\t\t\tarr.reduce((obj, value) => {\n\t\t\t\t\treturn { ...obj, ...value };\n\t\t\t\t}),\n\t\t\t),\n\t\t);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/DHIS2PivotTable/services/engine.ts"],"names":["findIndex","dimension","compact","getColorFromLegendSet","intersection","times","zip"],"mappings":"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","file":"engine.js","sourcesContent":["import type { LegendSet } from \"@hisptz/dhis2-utils\";\nimport { Analytics, AnalyticsItem } from \"@hisptz/dhis2-utils\";\nimport { compact, findIndex, intersection, times, zip } from \"lodash\";\nimport { DHIS2Dimension } from \"../interfaces\";\nimport { getColorFromLegendSet } from \"../../Map\";\n\nexport interface BaseLegendConfig {\n\tstrategy: \"FIXED\" | \"BY_DATA_ITEM\";\n\tshowKey: boolean;\n\tstyle: \"TEXT\" | \"FILL\";\n}\nexport interface FixedLegendConfig extends BaseLegendConfig {\n\tstrategy: \"FIXED\";\n\tset: LegendSet;\n}\n\nexport interface DataItemLegendConfig extends BaseLegendConfig {\n\tstrategy: \"BY_DATA_ITEM\";\n\tlegendMap: Map<string, LegendSet>;\n}\n\nexport type LegendConfig = FixedLegendConfig | DataItemLegendConfig;\n\nexport interface EngineConfig {\n\tlayout: {\n\t\tcolumns: { dimension: DHIS2Dimension; label?: string }[];\n\t\trows: { dimension: DHIS2Dimension; label?: string }[];\n\t\tfilter?: { dimension: DHIS2Dimension; label?: string }[];\n\t};\n\toptions?: {\n\t\tlegend?: LegendConfig;\n\t\thideEmptyColumns?: boolean;\n\t\thideEmptyRows?: boolean;\n\t\tshowRowTotals?: boolean;\n\t\tshowColumnTotals?: boolean;\n\t\tshowRowSubtotals?: boolean;\n\t\tshowColumnSubtotals?: boolean;\n\t\tshowFilterAsTitle?: boolean;\n\t\tfixColumnHeaders?: boolean;\n\t\tfixRowHeaders?: boolean;\n\t\t[key: string]: any;\n\t};\n}\n\nexport interface Header {\n\tdimension: DHIS2Dimension;\n\tlabel?: string;\n\titems?: AnalyticsItem[];\n}\n\nexport class DHIS2PivotTableEngine {\n\tanalyticsData: Analytics;\n\tvalueIndex: number;\n\tconfig: EngineConfig;\n\trowHeaders?: Header[];\n\tcolumnHeaders?: Header[];\n\n\tcolumnMap?: { [key: string]: any }[];\n\n\tconstructor({\n\t\tanalytics,\n\t\tconfig,\n\t}: {\n\t\tanalytics: Analytics;\n\t\tconfig: EngineConfig;\n\t}) {\n\t\tthis.config = config;\n\t\tthis.analyticsData = analytics;\n\t\tthis.valueIndex = findIndex(this.analyticsData.headers, [\n\t\t\t\"name\",\n\t\t\t\"value\",\n\t\t]);\n\t\tthis.getHeaders();\n\t\tthis.getColumnMap();\n\t}\n\n\tget title() {\n\t\tconst filters = this.config.layout.filter ?? [];\n\t\tconst labels =\n\t\t\tfilters?.map(({ dimension }) => {\n\t\t\t\tconst dimensions =\n\t\t\t\t\tthis.analyticsData.metaData?.dimensions[dimension];\n\n\t\t\t\treturn dimensions?.map((dimension) => {\n\t\t\t\t\tconst dimensionItem =\n\t\t\t\t\t\tthis.analyticsData.metaData?.items[dimension];\n\t\t\t\t\treturn dimensionItem?.name;\n\t\t\t\t});\n\t\t\t}) ?? [];\n\n\t\treturn compact(labels.flat()).join(\", \");\n\t}\n\n\tget titleSpan() {\n\t\tconst rowHeaders = this.rowHeaders?.length ?? 0;\n\t\tconst columnHeaders =\n\t\t\tthis.columnHeaders?.reduce(\n\t\t\t\t(acc, val) => acc + (val.items?.length ?? 0),\n\t\t\t\t0,\n\t\t\t) ?? 0;\n\n\t\treturn rowHeaders + columnHeaders;\n\t}\n\n\tget showTitle() {\n\t\treturn this.config?.options?.showFilterAsTitle;\n\t}\n\n\tget fixColumnHeaders() {\n\t\treturn this.config.options?.fixColumnHeaders ?? true;\n\t}\n\n\tget fixRowHeaders() {\n\t\treturn this.config.options?.fixRowHeaders ?? true;\n\t}\n\n\tgetDimensionItems(dimension: DHIS2Dimension) {\n\t\treturn this.analyticsData.metaData?.dimensions[dimension] ?? [];\n\t}\n\n\tgetItem(id: string) {\n\t\treturn this.analyticsData.metaData?.items[id as any];\n\t}\n\n\tgetItemValueLegend(mapper: { [key: string]: any }) {\n\t\tconst legend = this.config.options?.legend;\n\t\tif (!legend) return;\n\t\tconst value = this.getValue(mapper);\n\t\tconst strategy = legend?.strategy;\n\t\tif (strategy === \"FIXED\") {\n\t\t\tconst legends = legend.set.legends;\n\t\t\tconst color = getColorFromLegendSet(legends, value);\n\t\t\treturn {\n\t\t\t\tcolor,\n\t\t\t\tstyle: legend.style,\n\t\t\t};\n\t\t}\n\t\tif (strategy === \"BY_DATA_ITEM\") {\n\t\t\tconst legendSet = legend.legendMap.get(mapper.dx);\n\t\t\tif (!legendSet) return;\n\t\t\tconst legends = legendSet.legends;\n\t\t\tconst color = getColorFromLegendSet(legends, value);\n\t\t\treturn {\n\t\t\t\tcolor,\n\t\t\t\tstyle: legend.style,\n\t\t\t};\n\t\t}\n\t\treturn;\n\t}\n\n\tgetValue(mapper: { [key: string]: any }) {\n\t\tconst dimensions = Object.values(mapper);\n\t\tconst data = this.analyticsData.rows?.filter(\n\t\t\t(row) => intersection(row, dimensions).length >= dimensions.length,\n\t\t);\n\t\treturn data?.reduce((acc, row) => {\n\t\t\treturn acc + parseFloat(row[this.valueIndex]);\n\t\t}, 0);\n\t}\n\n\tgetHeaders() {\n\t\tthis.rowHeaders = this.config.layout.rows.map((rowConfig) => {\n\t\t\treturn {\n\t\t\t\t...rowConfig,\n\t\t\t\titems: compact(\n\t\t\t\t\tthis.getDimensionItems(rowConfig.dimension).map(\n\t\t\t\t\t\t(itemId: string) => this.getItem(itemId),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t};\n\t\t});\n\t\tthis.columnHeaders = this.config.layout.columns.map((columnConfig) => {\n\t\t\treturn {\n\t\t\t\t...columnConfig,\n\t\t\t\titems: compact(\n\t\t\t\t\tthis.getDimensionItems(columnConfig.dimension).map(\n\t\t\t\t\t\t(itemId: string) => this.getItem(itemId),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t};\n\t\t});\n\t}\n\n\tgetColumnMap() {\n\t\tconst columns = this.columnHeaders;\n\t\tconst sanitizedColumns =\n\t\t\tcompact(\n\t\t\t\tcolumns?.map((column) =>\n\t\t\t\t\tcolumn.items?.map((item) => ({\n\t\t\t\t\t\t[column.dimension]: item.uid,\n\t\t\t\t\t})),\n\t\t\t\t),\n\t\t\t) ?? [];\n\t\tconst size = sanitizedColumns.reduce((acc, items) => {\n\t\t\treturn acc * (items?.length ?? 1);\n\t\t}, 1);\n\t\tconst standardiseColumns = sanitizedColumns.map((items) => [\n\t\t\t...times(size / items.length, () => items).flat(),\n\t\t]);\n\t\tthis.columnMap = compact(\n\t\t\tzip(...standardiseColumns).map((arr) =>\n\t\t\t\tarr.reduce((obj, value) => {\n\t\t\t\t\treturn { ...obj, ...value };\n\t\t\t\t}),\n\t\t\t),\n\t\t);\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/DHIS2PivotTable/state/engine.tsx"],"names":["createContext","useContext"],"mappings":";;;;;AAGA,MAAM,4BAAA,GACLA,oBAA4C,IAAI,CAAA;AAE1C,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/DHIS2PivotTable/state/engine.tsx"],"names":["createContext","useContext"],"mappings":";;;;;AAGA,MAAM,4BAAA,GACLA,oBAA4C,IAAI,CAAA;AAE1C,SAAS,yBAAA,GAA4B;AAC3C,EAAA,OAAOC,iBAAW,4BAA4B,CAAA;AAC/C;AAEO,SAAS,6BAAA,CAA8B;AAAA,EAC7C,QAAA;AAAA,EACA;AACD,CAAA,EAGG;AACF,EAAA,sCACE,4BAAA,CAA6B,QAAA,EAA7B,EAAsC,KAAA,EAAO,QAC5C,QAAA,EACF,CAAA;AAEF","file":"engine.js","sourcesContent":["import { createContext, ReactNode, useContext } from \"react\";\nimport { DHIS2PivotTableEngine } from \"../services/engine.js\";\n\nconst DHIS2PivotTableEngineContext =\n\tcreateContext<DHIS2PivotTableEngine | null>(null);\n\nexport function useCustomPivotTableEngine() {\n\treturn useContext(DHIS2PivotTableEngineContext);\n}\n\nexport function DHIS2PivotTableEngineProvider({\n\tchildren,\n\tengine,\n}: {\n\tchildren: ReactNode;\n\tengine: DHIS2PivotTableEngine;\n}) {\n\treturn (\n\t\t<DHIS2PivotTableEngineContext.Provider value={engine}>\n\t\t\t{children}\n\t\t</DHIS2PivotTableEngineContext.Provider>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/DHIS2PivotTable/utils/color.ts"],"names":[],"mappings":";;AAAO,SAAS,gCAAgC,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/DHIS2PivotTable/utils/color.ts"],"names":[],"mappings":";;AAAO,SAAS,gCAAgC,UAAA,EAA4B;AAE3E,EAAA,UAAA,GAAa,UAAA,CAAW,OAAA,CAAQ,IAAA,EAAM,EAAE,CAAA;AAGxC,EAAA,IAAI,IAAI,QAAA,CAAS,UAAA,CAAW,UAAU,CAAA,EAAG,CAAC,GAAG,EAAE,CAAA;AAC/C,EAAA,IAAI,IAAI,QAAA,CAAS,UAAA,CAAW,UAAU,CAAA,EAAG,CAAC,GAAG,EAAE,CAAA;AAC/C,EAAA,IAAI,IAAI,QAAA,CAAS,UAAA,CAAW,UAAU,CAAA,EAAG,CAAC,GAAG,EAAE,CAAA;AAG/C,EAAA,IAAI,OAAO,CAAA,GAAI,GAAA,GAAM,CAAA,GAAI,GAAA,GAAM,IAAI,GAAA,IAAO,GAAA;AAG1C,EAAA,OAAO,GAAA,IAAO,MAAM,SAAA,GAAY,SAAA;AACjC","file":"color.js","sourcesContent":["export function getTextColorFromBackgroundColor(background: string): string {\n\t// Remove the hash at the start if it's there\n\tbackground = background.replace(/^#/, \"\");\n\n\t// Convert hex to RGB\n\tlet r = parseInt(background.substring(0, 2), 16);\n\tlet g = parseInt(background.substring(2, 4), 16);\n\tlet b = parseInt(background.substring(4, 6), 16);\n\n\t// Calculate the YIQ value\n\tlet yiq = (r * 299 + g * 587 + b * 114) / 1000;\n\n\t// Return black for light backgrounds and white for dark backgrounds\n\treturn yiq >= 128 ? \"#000000\" : \"#FFFFFF\";\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Map/DHIS2Map.tsx"],"names":["jsx","MapProvider","MapArea"],"mappings":";;;;;;;;;;;AAUA,MAAM,eAAe,CAAC;AAAA,EACrB,gBAAA;AAAA,EACA,UAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,iBAAA;AAAA,EACA,eAAA;AAAA,EACA,UAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,eAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,gBAAA;AAAA,EACA;AACD,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Map/DHIS2Map.tsx"],"names":["jsx","MapProvider","MapArea"],"mappings":";;;;;;;;;;;AAUA,MAAM,eAAe,CAAC;AAAA,EACrB,gBAAA;AAAA,EACA,UAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,iBAAA;AAAA,EACA,eAAA;AAAA,EACA,UAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,eAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,gBAAA;AAAA,EACA;AACD,CAAA,KAAgB;AACf,EAAA,MAAM,oBAAA,GAA2C;AAAA,IAChD;AAAA,MACC,IAAA,EAAM,OAAA;AAAA,MACN,EAAA,EAAI,OAAA;AAAA,MACJ,OAAA,EAAS,YAAY,OAAA,IAAW,KAAA;AAAA,MAChC,GAAG;AAAA;AACJ,GACD;AACA,EAAA,MAAM,uBAAA,GAAiD;AAAA,IACtD;AAAA,MACC,GAAG,aAAA;AAAA,MACH,IAAA,EAAM,SAAA;AAAA,MACN,EAAA,EAAI,UAAA;AAAA,MACJ,OAAA,EAAS,eAAe,OAAA,IAAW;AAAA;AACpC,GACD;AAEA,EAAA,uBACCA,cAAA;AAAA,IAACC,uBAAA;AAAA,IAAA;AAAA,MACA,eAAA;AAAA,MACA,gBAAA;AAAA,MAEA,QAAA,kBAAAD,cAAA;AAAA,QAACE,wBAAA;AAAA,QAAA;AAAA,UACA,IAAA,EAAM;AAAA,YACL,GAAG;AAAA,WACJ;AAAA,UACA,MAAA,EAAQ;AAAA,YACP,cAAA;AAAA,YACA,iBAAA;AAAA,YACA,cAAA,EAAgB,uBAAA;AAAA,YAChB,WAAA,EAAa;AAAA,WACd;AAAA,UACA,eAAA;AAAA,UACA,gBAAA;AAAA,UACA,OAAA;AAAA,UACA,QAAA;AAAA,UAEA,GAAA,EAAK,MAAA;AAAA,UACL;AAAA,SAAA;AAAA,QAFK;AAAA;AAGN;AAAA,GACD;AAEF,CAAA;AACO,MAAM,QAAA,GAAyB;AAK/B,MAAM,GAAA,GAAM","file":"DHIS2Map.js","sourcesContent":["import MapArea from \"./components/MapArea/index.js\";\nimport {\n\tCustomBoundaryLayer,\n\tCustomPointLayer,\n} from \"./components/MapLayer/interfaces\";\nimport { MapProvider } from \"./components/MapProvider\";\nimport { MapProps } from \"./interfaces\";\nimport \"leaflet/dist/leaflet.css\";\nimport type { FC } from \"react\";\n\nconst MapComponent = ({\n\torgUnitSelection,\n\tpointLayer,\n\tboundaryLayer,\n\tthematicLayers,\n\tearthEngineLayers,\n\tperiodSelection,\n\tmapOptions,\n\tkey,\n\tcontrols,\n\tshowPeriodTitle,\n\tlegends,\n\tsetRef,\n\tanalyticsOptions,\n\tbase,\n}: MapProps) => {\n\tconst sanitizedPointLayers: CustomPointLayer[] = [\n\t\t{\n\t\t\ttype: \"point\",\n\t\t\tid: \"point\",\n\t\t\tenabled: pointLayer?.enabled ?? false,\n\t\t\t...pointLayer,\n\t\t},\n\t];\n\tconst sanitizedBoundaryLayers: CustomBoundaryLayer[] = [\n\t\t{\n\t\t\t...boundaryLayer,\n\t\t\ttype: \"overlay\",\n\t\t\tid: \"boundary\",\n\t\t\tenabled: boundaryLayer?.enabled ?? false,\n\t\t},\n\t];\n\n\treturn (\n\t\t<MapProvider\n\t\t\tperiodSelection={periodSelection}\n\t\t\torgUnitSelection={orgUnitSelection}\n\t\t>\n\t\t\t<MapArea\n\t\t\t\tbase={{\n\t\t\t\t\t...base,\n\t\t\t\t}}\n\t\t\t\tlayers={{\n\t\t\t\t\tthematicLayers,\n\t\t\t\t\tearthEngineLayers,\n\t\t\t\t\tboundaryLayers: sanitizedBoundaryLayers,\n\t\t\t\t\tpointLayers: sanitizedPointLayers,\n\t\t\t\t}}\n\t\t\t\tshowPeriodTitle={showPeriodTitle}\n\t\t\t\tanalyticsOptions={analyticsOptions}\n\t\t\t\tlegends={legends}\n\t\t\t\tcontrols={controls}\n\t\t\t\tkey={key}\n\t\t\t\tref={setRef}\n\t\t\t\tmapOptions={mapOptions}\n\t\t\t/>\n\t\t</MapProvider>\n\t);\n};\nexport const DHIS2Map: FC<MapProps> = MapComponent;\n\n/**\n * @deprecated since `v2`. Use `DHIS2Map` instead\n * */\nexport const Map = DHIS2Map;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.tsx"],"names":["useForm","Modal","jsx","ModalTitle","i18n","ModalContent","EarthEngineLayerConfiguration","ModalActions","jsxs","ButtonStrip","Button"],"mappings":";;;;;;;;;;;;AAsBO,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.tsx"],"names":["useForm","Modal","jsx","ModalTitle","i18n","ModalContent","EarthEngineLayerConfiguration","ModalActions","jsxs","ButtonStrip","Button"],"mappings":";;;;;;;;;;;;AAsBO,SAAS,2BAAA,CAA4B;AAAA,EAC3C,IAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACJ,CAAA,EAAqC;AACpC,EAAA,MAAM,OAAOA,qBAAA,CAAgC;AAAA,IAC5C,aAAA,EAAe,UAAU;AAAC,GAC1B,CAAA;AACD,EAAA,MAAM,aAAA,GAAgB,CAAC,MAAA,KAAmC;AACzD,IAAA,OAAA,EAAQ;AACR,IAAA,QAAA,CAAS,MAAM,CAAA;AAAA,EAChB,CAAA;AAEA,EAAA,uCACEC,QAAA,EAAA,EAAO,GAAG,OAAO,IAAA,EAAM,CAAC,MAAM,OAAA,EAC9B,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAACC,aAAA,EAAA,EAAY,QAAA,EAAAC,qBAAA,CAAK,CAAA,CAAE,8BAA8B,CAAA,EAAE,CAAA;AAAA,mCACnDC,eAAA,EAAA,EACA,QAAA,kBAAAH,cAAA,CAACI,kEAA8B,IAAA,EAAY,QAAA,EAAU,SAAS,CAAA,EAC/D,CAAA;AAAA,oBACAJ,cAAA,CAACK,eAAA,EAAA,EACA,QAAA,kBAAAC,eAAA,CAACC,cAAA,EAAA,EACA,QAAA,EAAA;AAAA,sBAAAP,cAAA,CAACQ,aAAO,OAAA,EAAS,OAAA,EAAU,QAAA,EAAAN,qBAAA,CAAK,CAAA,CAAE,QAAQ,CAAA,EAAE,CAAA;AAAA,sBAC5CF,cAAA;AAAA,QAACQ,SAAA;AAAA,QAAA;AAAA,UACA,OAAA,EAAO,IAAA;AAAA,UACP,OAAA,EAAS,MAAM,IAAA,CAAK,YAAA,CAAa,aAAa,CAAA,EAAE;AAAA,UAE/C,QAAA,EAAAN,qBAAA,CAAK,EAAE,MAAM;AAAA;AAAA;AACf,KAAA,EACD,CAAA,EACD;AAAA,GAAA,EACD,CAAA;AAEF","file":"EarthEngineLayerConfigModal.js","sourcesContent":["import { useForm } from \"react-hook-form\";\nimport { EarthEngineLayerConfig } from \"../MapLayer/interfaces/index.js\";\nimport {\n\tButton,\n\tButtonStrip,\n\tModal,\n\tModalActions,\n\tModalContent,\n\tModalTitle,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport React from \"react\";\nimport { EarthEngineLayerConfiguration } from \"./EarthEngineLayerConfiguration.js\";\n\nexport interface EarthEngineLayerConfigModalProps {\n\topen: boolean;\n\tconfig?: EarthEngineLayerConfig;\n\texclude?: string[];\n\tonClose: () => void;\n\tonChange: (config: EarthEngineLayerConfig) => void;\n}\n\nexport function EarthEngineLayerConfigModal({\n\topen,\n\texclude,\n\tconfig,\n\tonClose,\n\tonChange,\n\t...props\n}: EarthEngineLayerConfigModalProps) {\n\tconst form = useForm<EarthEngineLayerConfig>({\n\t\tdefaultValues: config ?? {},\n\t});\n\tconst onSubmitClick = (values: EarthEngineLayerConfig) => {\n\t\tonClose();\n\t\tonChange(values);\n\t};\n\n\treturn (\n\t\t<Modal {...props} hide={!open} onClose={onClose}>\n\t\t\t<ModalTitle>{i18n.t(\"Configure Earth Engine Layer\")}</ModalTitle>\n\t\t\t<ModalContent>\n\t\t\t\t<EarthEngineLayerConfiguration form={form} excluded={exclude} />\n\t\t\t</ModalContent>\n\t\t\t<ModalActions>\n\t\t\t\t<ButtonStrip>\n\t\t\t\t\t<Button onClick={onClose}>{i18n.t(\"Cancel\")}</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tprimary\n\t\t\t\t\t\tonClick={() => form.handleSubmit(onSubmitClick)()}\n\t\t\t\t\t>\n\t\t\t\t\t\t{i18n.t(\"Save\")}\n\t\t\t\t\t</Button>\n\t\t\t\t</ButtonStrip>\n\t\t\t</ModalActions>\n\t\t</Modal>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.tsx"],"names":["QueryClient","QueryClientProvider","jsx","FormProvider","jsxs","TypeField","Name","AggregationSelector","PeriodSelector","StylesConfig"],"mappings":";;;;;;;;;;;AAUA,MAAM,WAAA,GAAc,IAAIA,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.tsx"],"names":["QueryClient","QueryClientProvider","jsx","FormProvider","jsxs","TypeField","Name","AggregationSelector","PeriodSelector","StylesConfig"],"mappings":";;;;;;;;;;;AAUA,MAAM,WAAA,GAAc,IAAIA,sBAAA,EAAY;AAS7B,SAAS,6BAAA,CAA8B;AAAA,EAC7C,IAAA;AAAA,EACA;AACD,CAAA,EAAuC;AACtC,EAAA,sCACEC,8BAAA,EAAA,EAAoB,MAAA,EAAQ,aAC5B,QAAA,kBAAAC,cAAA,CAACC,0BAAA,EAAA,EAAc,GAAG,IAAA,EACjB,QAAA,kBAAAC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACN,OAAA,EAAS,MAAA;AAAA,QACT,aAAA,EAAe,QAAA;AAAA,QACf,GAAA,EAAK;AAAA,OACN;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAF,cAAA,CAACG,0BAAU,QAAA,EAAoB,CAAA;AAAA,uCAC9BC,YAAA,EAAA,EAAK,CAAA;AAAA,uCACLC,0CAAA,EAAA,EAAoB,CAAA;AAAA,uCACpBC,gCAAA,EAAA,EAAe,CAAA;AAAA,uCACfC,4BAAA,EAAA,EAAa;AAAA;AAAA;AAAA,KAEhB,CAAA,EACD,CAAA;AAEF","file":"EarthEngineLayerConfiguration.js","sourcesContent":["import { EarthEngineLayerConfig } from \"../MapLayer/interfaces\";\nimport { FormProvider, UseFormReturn } from \"react-hook-form\";\nimport React from \"react\";\nimport { StylesConfig } from \"./components/StylesConfig.js\";\nimport { Name } from \"./components/Name.js\";\nimport { TypeField } from \"./components/TypeField.js\";\nimport { AggregationSelector } from \"./components/AggregationSelector.js\";\nimport { PeriodSelector } from \"./components/PeriodSelector.js\";\nimport { QueryClient, QueryClientProvider } from \"@tanstack/react-query\";\n\nconst queryClient = new QueryClient();\n\nexport interface EarthEngineLayerConfigurationProps {\n\tform: UseFormReturn<EarthEngineLayerConfig>;\n\texcluded?: string[];\n\n\t[key: string]: any;\n}\n\nexport function EarthEngineLayerConfiguration({\n\tform,\n\texcluded,\n}: EarthEngineLayerConfigurationProps) {\n\treturn (\n\t\t<QueryClientProvider client={queryClient}>\n\t\t\t<FormProvider {...form}>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<TypeField excluded={excluded} />\n\t\t\t\t\t<Name />\n\t\t\t\t\t<AggregationSelector />\n\t\t\t\t\t<PeriodSelector />\n\t\t\t\t\t<StylesConfig />\n\t\t\t\t</div>\n\t\t\t</FormProvider>\n\t\t</QueryClientProvider>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/components/AggregationSelector.tsx"],"names":["useType","jsx","Controller","SingleSelectField","head","i18n","SingleSelectOption","capitalize","MultiSelectField","MultiSelectOption"],"mappings":";;;;;;;;;;;;;AAYO,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/components/AggregationSelector.tsx"],"names":["useType","jsx","Controller","SingleSelectField","head","i18n","SingleSelectOption","capitalize","MultiSelectField","MultiSelectOption"],"mappings":";;;;;;;;;;;;;AAYO,SAAS,mBAAA,GAAsB;AACrC,EAAA,MAAM,SAASA,eAAA,EAAQ;AAEvB,EAAA,IAAI,CAAC,QAAQ,mBAAA,EAAqB;AACjC,IAAA,OAAO,IAAA;AAAA,EACR;AAEA,EAAA,MAAM,qBAAA,GAAwB,MAAA,EAAQ,mBAAA,IAAuB,EAAC;AAE9D,EAAA,MAAM,kBAAkB,MAAA,EAAQ,eAAA;AAEhC,EAAA,uBACCC,cAAA;AAAA,IAACC,wBAAA;AAAA,IAAA;AAAA,MACA,MAAA,EAAQ,CAAC,EAAE,KAAA,EAAO,YAAW,KAAM;AAClC,QAAA,OAAO,oBAAoB,CAAA,mBAC1BD,cAAA;AAAA,UAACE,oBAAA;AAAA,UAAA;AAAA,YACA,SAAA,EAAS,IAAA;AAAA,YACT,KAAA,EAAO,OAAA,CAAQ,UAAA,CAAW,KAAK,CAAA;AAAA,YAC/B,cAAA,EAAgB,YAAY,KAAA,EAAO,OAAA;AAAA,YACnC,UACC,qBAAA,CAAsB,QAAA;AAAA,cACrBC,WAAA,CAAK,KAAA,CAAM,KAAK,CAAA,IAAK;AAAA,aACtB,GACGA,WAAA,CAAK,KAAA,CAAM,KAAK,CAAA,GAChB,MAAA;AAAA,YAEJ,QAAA,EAAU,CAAC,EAAE,QAAA,OACZ,KAAA,CAAM,QAAA,CAAS,CAAC,QAAQ,CAAC,CAAA;AAAA,YAE1B,KAAA,EAAOC,qBAAA,CAAK,CAAA,CAAE,aAAa,CAAA;AAAA,YAE1B,QAAA,EAAA,qBAAA,CAAsB,GAAA,CAAI,CAAC,WAAA,qBAC3BJ,cAAA;AAAA,cAACK,qBAAA;AAAA,cAAA;AAAA,gBAEA,KAAA,EAAOC,kBAAW,WAAW,CAAA;AAAA,gBAC7B,KAAA,EAAO;AAAA,eAAA;AAAA,cAFF,GAAG,WAAW,CAAA,OAAA;AAAA,aAIpB;AAAA;AAAA,SACF,mBAEAN,cAAA;AAAA,UAACO,mBAAA;AAAA,UAAA;AAAA,YACA,KAAA,EAAO,OAAA,CAAQ,UAAA,CAAW,KAAK,CAAA;AAAA,YAC/B,cAAA,EAAgB,YAAY,KAAA,EAAO,OAAA;AAAA,YACnC,QAAA,EAAU,MAAM,KAAA,EAAO,MAAA;AAAA,cACtB,CAAC,KAAA,KACA,qBAAA,EAAuB,QAAA,CAAS,KAAK;AAAA,aACvC;AAAA,YACA,UAAU,CAAC,EAAE,UAAS,KACrB,KAAA,CAAM,SAAS,QAAQ,CAAA;AAAA,YAExB,KAAA,EAAOH,qBAAA,CAAK,CAAA,CAAE,cAAc,CAAA;AAAA,YAE3B,QAAA,EAAA,qBAAA,CAAsB,GAAA,CAAI,CAAC,WAAA,qBAC3BJ,cAAA;AAAA,cAACQ,oBAAA;AAAA,cAAA;AAAA,gBAEA,KAAA,EAAOF,kBAAW,WAAW,CAAA;AAAA,gBAC7B,KAAA,EAAO;AAAA,eAAA;AAAA,cAFF,GAAG,WAAW,CAAA,OAAA;AAAA,aAIpB;AAAA;AAAA,SACF;AAAA,MAEF,CAAA;AAAA,MACA,IAAA,EAAM;AAAA;AAAA,GACP;AAEF","file":"AggregationSelector.js","sourcesContent":["import { Controller } from \"react-hook-form\";\nimport {\n\tMultiSelectField,\n\tMultiSelectOption,\n\tSingleSelectField,\n\tSingleSelectOption,\n} from \"@dhis2/ui\";\nimport { capitalize, head } from \"lodash\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport React from \"react\";\nimport { useType } from \"../hooks/data.js\";\n\nexport function AggregationSelector() {\n\tconst config = useType();\n\n\tif (!config?.defaultAggregations) {\n\t\treturn null;\n\t}\n\n\tconst supportedAggregations = config?.defaultAggregations ?? [];\n\n\tconst maxAggregations = config?.maxAggregations;\n\n\treturn (\n\t\t<Controller\n\t\t\trender={({ field, fieldState }) => {\n\t\t\t\treturn maxAggregations === 1 ? (\n\t\t\t\t\t<SingleSelectField\n\t\t\t\t\t\tclearable\n\t\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\t\tvalidationText={fieldState?.error?.message}\n\t\t\t\t\t\tselected={\n\t\t\t\t\t\t\tsupportedAggregations.includes(\n\t\t\t\t\t\t\t\thead(field.value) ?? \"\",\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t? head(field.value)\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonChange={({ selected }: { selected: string }) =>\n\t\t\t\t\t\t\tfield.onChange([selected])\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlabel={i18n.t(\"Aggregation\")}\n\t\t\t\t\t>\n\t\t\t\t\t\t{supportedAggregations.map((aggregation) => (\n\t\t\t\t\t\t\t<SingleSelectOption\n\t\t\t\t\t\t\t\tkey={`${aggregation}-option`}\n\t\t\t\t\t\t\t\tlabel={capitalize(aggregation)}\n\t\t\t\t\t\t\t\tvalue={aggregation}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</SingleSelectField>\n\t\t\t\t) : (\n\t\t\t\t\t<MultiSelectField\n\t\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\t\tvalidationText={fieldState?.error?.message}\n\t\t\t\t\t\tselected={field.value?.filter(\n\t\t\t\t\t\t\t(value: string) =>\n\t\t\t\t\t\t\t\tsupportedAggregations?.includes(value),\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tonChange={({ selected }: { selected: string[] }) =>\n\t\t\t\t\t\t\tfield.onChange(selected)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlabel={i18n.t(\"Aggregations\")}\n\t\t\t\t\t>\n\t\t\t\t\t\t{supportedAggregations.map((aggregation) => (\n\t\t\t\t\t\t\t<MultiSelectOption\n\t\t\t\t\t\t\t\tkey={`${aggregation}-option`}\n\t\t\t\t\t\t\t\tlabel={capitalize(aggregation)}\n\t\t\t\t\t\t\t\tvalue={aggregation}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</MultiSelectField>\n\t\t\t\t);\n\t\t\t}}\n\t\t\tname={\"aggregations\"}\n\t\t/>\n\t);\n}\n"]}
|
package/dist/components/Map/components/EarthEngineLayerConfiguration/components/ColorConfig.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/components/ColorConfig.tsx"],"names":["jsxs","jsx","Controller","InputField","i18n","getColorClasses","getColorScale","palette","getColorPalette","SingleSelectField","defaultClasses","SingleSelectOption","colorClass","Field","ColorScaleSelect","defaultColorScaleName"],"mappings":";;;;;;;;;;;;;;AAkBO,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/components/ColorConfig.tsx"],"names":["jsxs","jsx","Controller","InputField","i18n","getColorClasses","getColorScale","palette","getColorPalette","SingleSelectField","defaultClasses","SingleSelectOption","colorClass","Field","ColorScaleSelect","defaultColorScaleName"],"mappings":"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","file":"ColorConfig.js","sourcesContent":["import { Controller } from \"react-hook-form\";\nimport {\n\tField,\n\tInputField,\n\tSingleSelectField,\n\tSingleSelectOption,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport {\n\tdefaultClasses,\n\tdefaultColorScaleName,\n\tgetColorClasses,\n\tgetColorPalette,\n\tgetColorScale,\n} from \"../../../utils/colors.js\";\nimport ColorScaleSelect from \"../../ThematicLayerConfiguration/components/ColorScaleSelect/index.js\";\nimport React from \"react\";\n\nexport function ColorConfig() {\n\treturn (\n\t\t<div className=\"column gap-16\">\n\t\t\t<div className=\"row gap-8\">\n\t\t\t\t<Controller\n\t\t\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t\t\t<InputField\n\t\t\t\t\t\t\t{...field}\n\t\t\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\t\t\tvalidationText={fieldState.error?.message}\n\t\t\t\t\t\t\tvalue={field.value?.toString()}\n\t\t\t\t\t\t\tonChange={({ value }: { value?: string }) => {\n\t\t\t\t\t\t\t\tif (!value) return;\n\t\t\t\t\t\t\t\tfield.onChange(parseInt(value));\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tlabel={i18n.t(\"Min\")}\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\tname={\"params.min\"}\n\t\t\t\t/>\n\t\t\t\t<Controller\n\t\t\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t\t\t<InputField\n\t\t\t\t\t\t\t{...field}\n\t\t\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\t\t\tvalidationText={fieldState.error?.message}\n\t\t\t\t\t\t\tvalue={field.value?.toString()}\n\t\t\t\t\t\t\tonChange={({ value }: { value?: string }) => {\n\t\t\t\t\t\t\t\tif (!value) return;\n\t\t\t\t\t\t\t\tfield.onChange(parseInt(value));\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tlabel={i18n.t(\"Max\")}\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\tname={\"params.max\"}\n\t\t\t\t/>\n\t\t\t\t<Controller\n\t\t\t\t\tname=\"params.palette\"\n\t\t\t\t\trender={({ field, fieldState }) => {\n\t\t\t\t\t\tconst palette = field.value;\n\t\t\t\t\t\tconst scale = getColorClasses(palette);\n\t\t\t\t\t\tconst colorClass = getColorScale(palette ?? \"\");\n\n\t\t\t\t\t\tconst onChange = ({\n\t\t\t\t\t\t\tselected,\n\t\t\t\t\t\t}: {\n\t\t\t\t\t\t\tselected: string;\n\t\t\t\t\t\t}) => {\n\t\t\t\t\t\t\tconst palette = getColorPalette(\n\t\t\t\t\t\t\t\tcolorClass as string,\n\t\t\t\t\t\t\t\tparseInt(selected),\n\t\t\t\t\t\t\t)?.join(\",\");\n\t\t\t\t\t\t\tfield.onChange(palette);\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<SingleSelectField\n\t\t\t\t\t\t\t\tvalidationText={fieldState.error?.message}\n\t\t\t\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\t\t\t\tselected={\n\t\t\t\t\t\t\t\t\tscale?.toString() ??\n\t\t\t\t\t\t\t\t\tdefaultClasses.toString()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlabel={i18n.t(\"Steps\")}\n\t\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{[3, 4, 5, 6, 7, 8, 9].map((value) => (\n\t\t\t\t\t\t\t\t\t<SingleSelectOption\n\t\t\t\t\t\t\t\t\t\tkey={`${value}-classes-option`}\n\t\t\t\t\t\t\t\t\t\tlabel={`${value}`}\n\t\t\t\t\t\t\t\t\t\tvalue={value?.toString()}\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</SingleSelectField>\n\t\t\t\t\t\t);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<Controller\n\t\t\t\t\tname=\"params.palette\"\n\t\t\t\t\trender={({ field, fieldState }) => {\n\t\t\t\t\t\tconst palette = field.value;\n\t\t\t\t\t\tconst scale = getColorClasses(palette);\n\t\t\t\t\t\tconst colorClass = getColorScale(palette ?? \"\");\n\n\t\t\t\t\t\tconst onChange = (colorClass: string) => {\n\t\t\t\t\t\t\tconst palette = getColorPalette(\n\t\t\t\t\t\t\t\tcolorClass,\n\t\t\t\t\t\t\t\tscale,\n\t\t\t\t\t\t\t)?.join(\",\");\n\t\t\t\t\t\t\tfield.onChange(palette);\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Field\n\t\t\t\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\t\t\t\tvalidationText={fieldState.error?.message}\n\t\t\t\t\t\t\t\tlabel={i18n.t(\"Colors\")}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ColorScaleSelect\n\t\t\t\t\t\t\t\t\tcount={scale ?? defaultClasses}\n\t\t\t\t\t\t\t\t\tcolorClass={\n\t\t\t\t\t\t\t\t\t\tcolorClass ?? defaultColorScaleName\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\twidth={300}\n\t\t\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Field>\n\t\t\t\t\t\t);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/components/Name.tsx"],"names":["useType","useFormContext","useEffect","jsx","Controller","i18n","InputField"],"mappings":";;;;;;;;;;;;;AAMO,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/components/Name.tsx"],"names":["useType","useFormContext","useEffect","jsx","Controller","i18n","InputField"],"mappings":";;;;;;;;;;;;;AAMO,SAAS,IAAA,GAAO;AACtB,EAAA,MAAM,SAASA,eAAA,EAAQ;AACvB,EAAA,MAAM,EAAE,QAAA,EAAS,GAAIC,4BAAA,EAAe;AACpC,EAAAC,eAAA,CAAU,MAAM;AACf,IAAA,QAAA,CAAS,MAAA,EAAQ,QAAQ,IAAI,CAAA;AAC7B,IAAA,QAAA,CAAS,IAAA,EAAM,QAAQ,EAAE,CAAA;AAAA,EAC1B,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAEX,EAAA,uBACCC,cAAA;AAAA,IAACC,wBAAA;AAAA,IAAA;AAAA,MACA,IAAA,EAAK,MAAA;AAAA,MACL,KAAA,EAAO;AAAA,QACN,QAAA,EAAUC,qBAAA,CAAK,CAAA,CAAE,kBAAkB;AAAA,OACpC;AAAA,MACA,MAAA,EAAQ,CAAC,EAAE,KAAA,EAAO,YAAW,qBAC5BF,cAAA;AAAA,QAACG,aAAA;AAAA,QAAA;AAAA,UACA,KAAA,EAAOD,qBAAA,CAAK,CAAA,CAAE,YAAY,CAAA;AAAA,UAC1B,IAAA,EAAK,MAAA;AAAA,UACL,QAAA,EAAQ,IAAA;AAAA,UACR,KAAA,EAAO,OAAA,CAAQ,UAAA,CAAW,KAAK,CAAA;AAAA,UAC/B,cAAA,EAAgB,WAAW,KAAA,EAAO,OAAA;AAAA,UAClC,QAAA,EAAU,CAAC,EAAE,KAAA,EAAM,KAA0B;AAC5C,YAAA,IAAI,CAAC,KAAA,EAAO;AACZ,YAAA,KAAA,CAAM,SAAS,KAAK,CAAA;AAAA,UACrB,CAAA;AAAA,UACA,OAAO,KAAA,CAAM;AAAA;AAAA;AACd;AAAA,GAEF;AAEF","file":"Name.js","sourcesContent":["import { Controller, useFormContext } from \"react-hook-form\";\nimport { useEffect } from \"react\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { InputField } from \"@dhis2/ui\";\nimport { useType } from \"../hooks/data.js\";\n\nexport function Name() {\n\tconst config = useType();\n\tconst { setValue } = useFormContext();\n\tuseEffect(() => {\n\t\tsetValue(\"name\", config?.name);\n\t\tsetValue(\"id\", config?.id);\n\t}, [config]);\n\n\treturn (\n\t\t<Controller\n\t\t\tname=\"name\"\n\t\t\trules={{\n\t\t\t\trequired: i18n.t(\"Name is required\"),\n\t\t\t}}\n\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t<InputField\n\t\t\t\t\tlabel={i18n.t(\"Layer name\")}\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\trequired\n\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\tvalidationText={fieldState.error?.message}\n\t\t\t\t\tonChange={({ value }: { value?: string }) => {\n\t\t\t\t\t\tif (!value) return;\n\t\t\t\t\t\tfield.onChange(value);\n\t\t\t\t\t}}\n\t\t\t\t\tvalue={field.value}\n\t\t\t\t/>\n\t\t\t)}\n\t\t/>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/components/PeriodSelector.tsx"],"names":["useType","useFormContext","useDatasetInfo","useEffect","isEmpty","head","Center","jsx","Controller","i18n","jsxs","SingleSelectField","SingleSelectOption","CircularLoader"],"mappings":";;;;;;;;;;;;;;AAYO,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/components/PeriodSelector.tsx"],"names":["useType","useFormContext","useDatasetInfo","useEffect","isEmpty","head","Center","jsx","Controller","i18n","jsxs","SingleSelectField","SingleSelectOption","CircularLoader"],"mappings":";;;;;;;;;;;;;;AAYO,SAAS,cAAA,GAAiB;AAChC,EAAA,MAAM,SAASA,eAAA,EAAQ;AACvB,EAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAU,GAAIC,4BAAA,EAAe;AAC/C,EAAA,MAAM,OAAA,GAAU,MAAA,EAAQ,OAAA,IAAW,EAAC;AACpC,EAAA,MAAM,eAAA,GAAkB,OAAA,CAAQ,QAAA,CAAS,QAAQ,CAAA;AACjD,EAAA,MAAM,EAAE,OAAA,EAAS,KAAA,EAAO,SAAQ,GAAIC,sBAAA,CAAe,iBAAiB,MAAM,CAAA;AAC1E,EAAA,MAAM,aAAA,GAAgB,UAAU,gBAAgB,CAAA;AAEhD,EAAAC,eAAA,CAAU,MAAM;AACf,IAAA,IAAI,CAACC,cAAA,CAAQ,OAAO,CAAA,IAAK,CAAC,aAAA,EAAe;AACxC,MAAA,QAAA,CAAS,gBAAA,EAAkBC,WAAA,CAAK,OAAO,CAAC,CAAA;AAAA,IACzC;AAAA,EACD,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,EAAA,IAAI,CAAC,eAAA,EAAiB;AACrB,IAAA,OAAO,IAAA;AAAA,EACR;AAEA,EAAA,IAAI,KAAA,EAAO;AACV,IAAA,sCACE,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,QAAA,EAAU,MAAA,EAAQ,WAAW,GAAA,EAAI,EAC9C,yCAACC,SAAA,EAAA,EACA,QAAA,kBAAAC,cAAA,CAAC,OAAG,QAAA,EAAA,KAAA,EAAO,OAAA,IAAW,OAAO,QAAA,EAAS,EAAE,GACzC,CAAA,EACD,CAAA;AAAA,EAEF;AAEA,EAAA,uBACCA,cAAA;AAAA,IAACC,wBAAA;AAAA,IAAA;AAAA,MACA,IAAA,EAAK,gBAAA;AAAA,MACL,KAAA,EAAO;AAAA,QACN,QAAA,EAAUC,qBAAA,CAAK,CAAA,CAAE,oBAAoB;AAAA,OACtC;AAAA,MACA,MAAA,EAAQ,CAAC,EAAE,KAAA,EAAO,YAAW,qBAC5BC,eAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,GAAA,EAAK,CAAA,EAAE,EAAG,WAAU,wBAAA,EACjC,QAAA,EAAA;AAAA,wBAAAH,cAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,GAAE,EACrB,QAAA,kBAAAA,cAAA;AAAA,UAACI,oBAAA;AAAA,UAAA;AAAA,YACA,UAAUF,qBAAA,CAAK,CAAA;AAAA,cACd;AAAA,aACD;AAAA,YACA,OAAA;AAAA,YACA,UAAA,EAAU,IAAA;AAAA,YACV,KAAA,EAAOA,qBAAA,CAAK,CAAA,CAAE,QAAQ,CAAA;AAAA,YACtB,QAAA,EAAQ,IAAA;AAAA,YACR,KAAA,EAAO,OAAA,CAAQ,UAAA,CAAW,KAAK,CAAA;AAAA,YAC/B,cAAA,EAAgB,WAAW,KAAA,EAAO,OAAA;AAAA,YAClC,QAAA,EAAU,CAAC,EAAE,QAAA,OACZ,KAAA,CAAM,QAAA,CAAS,QAAA,CAAS,QAAQ,CAAC,CAAA;AAAA,YAElC,QAAA,EACC,SAAS,QAAA,CAAS,KAAA,CAAM,KAAK,CAAA,GAC1B,KAAA,CAAM,KAAA,EAAO,QAAA,EAAS,GACtB,MAAA;AAAA,YAGH,QAAA,EAAA,OAAA,EAAS,GAAA,CAAI,CAAC,MAAA,qBACdF,cAAA;AAAA,cAACK,qBAAA;AAAA,cAAA;AAAA,gBAEA,KAAA,EAAO,OAAO,QAAA,EAAS;AAAA,gBACvB,KAAA,EAAO,OAAO,QAAA;AAAS,eAAA;AAAA,cAFlB,GAAG,MAAM,CAAA,OAAA;AAAA,aAIf;AAAA;AAAA,SACF,EACD,CAAA;AAAA,QACC,OAAA,oBAAWL,cAAA,CAACM,iBAAA,EAAA,EAAe,UAAA,EAAU,IAAA,EAAC;AAAA,OAAA,EACxC;AAAA;AAAA,GAEF;AAEF","file":"PeriodSelector.js","sourcesContent":["import { Controller, useFormContext } from \"react-hook-form\";\nimport { useEffect } from \"react\";\nimport { head, isEmpty } from \"lodash\";\nimport {\n\tCenter,\n\tCircularLoader,\n\tSingleSelectField,\n\tSingleSelectOption,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useDatasetInfo, useType } from \"../hooks/data.js\";\n\nexport function PeriodSelector() {\n\tconst config = useType();\n\tconst { setValue, getValues } = useFormContext();\n\tconst filters = config?.filters ?? [];\n\tconst hasPeriodFilter = filters.includes(\"period\");\n\tconst { loading, error, periods } = useDatasetInfo(hasPeriodFilter, config);\n\tconst initialPeriod = getValues(\"filters.period\");\n\n\tuseEffect(() => {\n\t\tif (!isEmpty(periods) && !initialPeriod) {\n\t\t\tsetValue(\"filters.period\", head(periods));\n\t\t}\n\t}, [periods]);\n\n\tif (!hasPeriodFilter) {\n\t\treturn null;\n\t}\n\n\tif (error) {\n\t\treturn (\n\t\t\t<div style={{ minWidth: \"100%\", minHeight: 100 }}>\n\t\t\t\t<Center>\n\t\t\t\t\t<p>{error?.message ?? error?.toString()}</p>\n\t\t\t\t</Center>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Controller\n\t\t\tname=\"filters.period\"\n\t\t\trules={{\n\t\t\t\trequired: i18n.t(\"Period is required\"),\n\t\t\t}}\n\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t<div style={{ gap: 4 }} className=\"row align-items-center\">\n\t\t\t\t\t<div style={{ flex: 1 }}>\n\t\t\t\t\t\t<SingleSelectField\n\t\t\t\t\t\t\thelpText={i18n.t(\n\t\t\t\t\t\t\t\t\"Available periods are set by the source data\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tloading={loading}\n\t\t\t\t\t\t\tfilterable\n\t\t\t\t\t\t\tlabel={i18n.t(\"Period\")}\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\t\t\tvalidationText={fieldState.error?.message}\n\t\t\t\t\t\t\tonChange={({ selected }: { selected: string }) =>\n\t\t\t\t\t\t\t\tfield.onChange(parseInt(selected))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tselected={\n\t\t\t\t\t\t\t\tperiods?.includes(field.value)\n\t\t\t\t\t\t\t\t\t? field.value?.toString()\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{periods?.map((period: number) => (\n\t\t\t\t\t\t\t\t<SingleSelectOption\n\t\t\t\t\t\t\t\t\tkey={`${period}-option`}\n\t\t\t\t\t\t\t\t\tvalue={period.toString()}\n\t\t\t\t\t\t\t\t\tlabel={period.toString()}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</SingleSelectField>\n\t\t\t\t\t</div>\n\t\t\t\t\t{loading && <CircularLoader extrasmall />}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t/>\n\t);\n}\n"]}
|
package/dist/components/Map/components/EarthEngineLayerConfiguration/components/StylesConfig.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/components/StylesConfig.tsx"],"names":["useType","jsx","jsxs","i18n","ColorConfig"],"mappings":";;;;;;;;;;;AAKO,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/components/StylesConfig.tsx"],"names":["useType","jsx","jsxs","i18n","ColorConfig"],"mappings":";;;;;;;;;;;AAKO,SAAS,YAAA,GAAe;AAC9B,EAAA,MAAM,SAASA,eAAA,EAAQ;AACvB,EAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,MAAA,EAAQ,MAAM,CAAA;AAExC,EAAA,IAAI,CAAC,SAAA,EAAW;AACf,IAAA,OAAO,IAAA;AAAA,EACR;AAEA,EAAA,uBACCC,cAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,UAAU,GAAA,EAAK,SAAA,EAAW,GAAA,EAAI,EAAG,SAAA,EAAU,YAAA,EACxD,QAAA,kBAAAC,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,QAAA,EACd,QAAA,EAAA;AAAA,oBAAAA,eAAA,CAAC,GAAA,EAAA,EACC,QAAA,EAAA;AAAA,MAAAC,qBAAA,CAAK,EAAE,MAAM,CAAA;AAAA,MAAE,IAAA;AAAA,MAAG,MAAA,EAAQ;AAAA,KAAA,EAC5B,CAAA;AAAA,mCACCC,0BAAA,EAAA,EAAY;AAAA,GAAA,EACd,CAAA,EACD,CAAA;AAEF","file":"StylesConfig.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport { ColorConfig } from \"./ColorConfig.js\";\nimport React from \"react\";\nimport { useType } from \"../hooks/data.js\";\n\nexport function StylesConfig() {\n\tconst config = useType();\n\tconst hasParams = Boolean(config?.params);\n\n\tif (!hasParams) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div style={{ minWidth: 200, minHeight: 100 }} className=\"row gap-16\">\n\t\t\t<div className=\"column\">\n\t\t\t\t<p>\n\t\t\t\t\t{i18n.t(\"Unit\")}: {config?.unit}\n\t\t\t\t</p>\n\t\t\t\t<ColorConfig />\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
|
package/dist/components/Map/components/EarthEngineLayerConfiguration/components/TypeField.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/components/TypeField.tsx"],"names":["filter","EARTH_ENGINE_LAYERS","SUPPORTED_EARTH_ENGINE_LAYERS","useFormContext","find","jsx","Controller","i18n","SingleSelectField","SingleSelectOption"],"mappings":";;;;;;;;;;;;;AAUO,SAAS,SAAA,CAAU,EAAE,QAAA,
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/components/TypeField.tsx"],"names":["filter","EARTH_ENGINE_LAYERS","SUPPORTED_EARTH_ENGINE_LAYERS","useFormContext","find","jsx","Controller","i18n","SingleSelectField","SingleSelectOption"],"mappings":";;;;;;;;;;;;;AAUO,SAAS,SAAA,CAAU,EAAE,QAAA,EAAS,EAA4B;AAChE,EAAA,MAAM,eAAA,GAAkBA,aAAA;AAAA,IACvBC,4BAAA;AAAA,IACA,CAAC,EAAE,EAAA,EAAG,KACLC,sCAAA,CAA8B,QAAA,CAAS,EAAE,CAAA,IACzC,EAAE,QAAA,EAAU,QAAA,CAAS,EAAE,CAAA,IAAK,KAAA;AAAA,GAC9B;AACA,EAAA,MAAM,EAAE,QAAA,EAAS,GAAIC,4BAAA,EAAe;AACpC,EAAA,MAAM,iBAAA,GAAoB,CAAC,QAAA,KAAqB;AAC/C,IAAA,MAAM,SAASC,WAAA,CAAK,eAAA,EAAiB,CAAC,IAAA,EAAM,QAAQ,CAAC,CAAA;AACrD,IAAA,IAAI,CAAC,MAAA,EAAQ;AAEb,IAAA,IAAI,QAAQ,mBAAA,EAAqB;AAChC,MAAA,QAAA,CAAS,cAAA,EAAgB,QAAQ,mBAAmB,CAAA;AAAA,IACrD,CAAA,MAAO;AACN,MAAA,QAAA,CAAS,gBAAgB,MAAS,CAAA;AAAA,IACnC;AAEA,IAAA,IAAI,QAAQ,MAAA,EAAQ;AACnB,MAAA,MAAM,EAAE,GAAA,EAAK,GAAA,EAAK,OAAA,KAAY,MAAA,CAAO,MAAA;AACrC,MAAA,QAAA,CAAS,cAAc,GAAG,CAAA;AAC1B,MAAA,QAAA,CAAS,cAAc,GAAG,CAAA;AAC1B,MAAA,QAAA,CAAS,kBAAkB,OAAO,CAAA;AAAA,IACnC,CAAA,MAAO;AACN,MAAA,QAAA,CAAS,UAAU,MAAS,CAAA;AAAA,IAC7B;AAAA,EACD,CAAA;AAEA,EAAA,uBACCC,cAAA;AAAA,IAACC,wBAAA;AAAA,IAAA;AAAA,MACA,IAAA,EAAK,MAAA;AAAA,MACL,KAAA,EAAO;AAAA,QACN,QAAA,EAAUC,qBAAA,CAAK,CAAA,CAAE,kBAAkB;AAAA,OACpC;AAAA,MACA,MAAA,EAAQ,CAAC,EAAE,KAAA,EAAO,YAAW,qBAC5BF,cAAA;AAAA,QAACG,oBAAA;AAAA,QAAA;AAAA,UACA,KAAA,EAAOD,qBAAA,CAAK,CAAA,CAAE,YAAY,CAAA;AAAA,UAC1B,QAAA,EAAQ,IAAA;AAAA,UACR,KAAA,EAAO,OAAA,CAAQ,UAAA,CAAW,KAAK,CAAA;AAAA,UAC/B,cAAA,EAAgB,WAAW,KAAA,EAAO,OAAA;AAAA,UAClC,QAAA,EAAU,CAAC,EAAE,QAAA,EAAS,KAA4B;AACjD,YAAA,iBAAA,CAAkB,QAAQ,CAAA;AAC1B,YAAA,KAAA,CAAM,SAAS,QAAQ,CAAA;AAAA,UACxB,CAAA;AAAA,UACA,QAAA,EACC,OAAA,CAAQH,WAAA,CAAK,eAAA,EAAiB,IAAA,EAAM,MAAM,KAAK,CAAC,CAAA,GAC7C,KAAA,CAAM,KAAA,GACN,MAAA;AAAA,UAGH,QAAA,EAAA,eAAA,EAAiB,GAAA,CAAI,CAAC,KAAA,qBACtBC,cAAA;AAAA,YAACI,qBAAA;AAAA,YAAA;AAAA,cAEA,OAAO,KAAA,CAAM,EAAA;AAAA,cACb,OAAO,KAAA,CAAM;AAAA,aAAA;AAAA,YAFR,CAAA,EAAG,MAAM,EAAE,CAAA,OAAA;AAAA,WAIjB;AAAA;AAAA;AACF;AAAA,GAEF;AAEF","file":"TypeField.js","sourcesContent":["import { filter, find } from \"lodash\";\nimport {\n\tEARTH_ENGINE_LAYERS,\n\tSUPPORTED_EARTH_ENGINE_LAYERS,\n} from \"../../MapLayer/components/GoogleEngineLayer/constants/index.js\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { SingleSelectField, SingleSelectOption } from \"@dhis2/ui\";\nimport React from \"react\";\n\nexport function TypeField({ excluded }: { excluded?: string[] }) {\n\tconst supportedLayers = filter(\n\t\tEARTH_ENGINE_LAYERS,\n\t\t({ id }) =>\n\t\t\tSUPPORTED_EARTH_ENGINE_LAYERS.includes(id) &&\n\t\t\t!(excluded?.includes(id) ?? false),\n\t);\n\tconst { setValue } = useFormContext();\n\tconst setConfigDefaults = (selected: string) => {\n\t\tconst config = find(supportedLayers, [\"id\", selected]);\n\t\tif (!config) return;\n\n\t\tif (config?.defaultAggregations) {\n\t\t\tsetValue(\"aggregations\", config?.defaultAggregations);\n\t\t} else {\n\t\t\tsetValue(\"aggregations\", undefined);\n\t\t}\n\n\t\tif (config?.params) {\n\t\t\tconst { max, min, palette } = config.params;\n\t\t\tsetValue(\"params.max\", max);\n\t\t\tsetValue(\"params.min\", min);\n\t\t\tsetValue(\"params.palette\", palette);\n\t\t} else {\n\t\t\tsetValue(\"params\", undefined);\n\t\t}\n\t};\n\n\treturn (\n\t\t<Controller\n\t\t\tname=\"type\"\n\t\t\trules={{\n\t\t\t\trequired: i18n.t(\"Type is required\"),\n\t\t\t}}\n\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t<SingleSelectField\n\t\t\t\t\tlabel={i18n.t(\"Layer type\")}\n\t\t\t\t\trequired\n\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\tvalidationText={fieldState.error?.message}\n\t\t\t\t\tonChange={({ selected }: { selected: string }) => {\n\t\t\t\t\t\tsetConfigDefaults(selected);\n\t\t\t\t\t\tfield.onChange(selected);\n\t\t\t\t\t}}\n\t\t\t\t\tselected={\n\t\t\t\t\t\tBoolean(find(supportedLayers, \"id\", field.value))\n\t\t\t\t\t\t\t? field.value\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{supportedLayers?.map((layer) => (\n\t\t\t\t\t\t<SingleSelectOption\n\t\t\t\t\t\t\tkey={`${layer.id}-option`}\n\t\t\t\t\t\t\tvalue={layer.id}\n\t\t\t\t\t\t\tlabel={layer.name}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</SingleSelectField>\n\t\t\t)}\n\t\t/>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/hooks/data.ts"],"names":["useGoogleEngineToken","EarthEngine","useQuery","useMemo","useWatch","find","EARTH_ENGINE_LAYERS"],"mappings":";;;;;;;;;;AASO,SAAS,cAAA,CACf,WACA,
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/hooks/data.ts"],"names":["useGoogleEngineToken","EarthEngine","useQuery","useMemo","useWatch","find","EARTH_ENGINE_LAYERS"],"mappings":";;;;;;;;;;AASO,SAAS,cAAA,CACf,WACA,MAAA,EACC;AACD,EAAA,MAAM,EAAE,OAAA,EAAQ,GAAIA,6BAAA,EAAqB;AAEzC,EAAA,eAAe,OAAA,GAAU;AACxB,IAAA,IAAI,MAAA,EAAQ;AACX,MAAA,MAAM,SAAA,GAAY,MAAM,OAAA,EAAQ;AAChC,MAAA,MAAMC,qBAAA,CAAY,QAAA,CAAS,SAAA,CAAU,KAAA,EAAO,OAAO,CAAA;AACnD,MAAA,MAAM,MAAA,GAAS,IAAIA,qBAAA,CAAY;AAAA,QAC9B,OAAA,EAAS;AAAA,OACT,CAAA;AACD,MAAA,OAAO,OAAO,SAAA,EAAU;AAAA,IACzB;AAAA,EACD;AAEA,EAAA,MAAM,EAAE,MAAM,KAAA,EAAO,SAAA,KAAcC,mBAAA,CAAS,CAAC,MAAM,CAAA,EAAG,OAAO,CAAA;AAE7D,EAAA,MAAM,OAAA,GAAUC,cAAQ,MAAM;AAC7B,IAAA,MAAM,WAAY,IAAA,EAAc,QAAA;AAChC,IAAA,OAAO,QAAA,EAAU,GAAA,CAAI,CAAC,OAAA,KAAiB;AACtC,MAAA,OAAO,IAAI,IAAA;AAAA,QACV,OAAA,EAAS,WAAW,mBAAmB;AAAA,SACrC,WAAA,EAAY;AAAA,IAChB,CAAC,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,OAAO;AAAA,IACN,OAAA,EAAS,SAAA;AAAA,IACT,KAAA;AAAA,IACA;AAAA,GACD;AACD;AAEO,SAAS,OAAA,GAAU;AACzB,EAAA,MAAM,OAAOC,sBAAA,CAAS;AAAA,IACrB,IAAA,EAAM;AAAA,GACN,CAAA;AACD,EAAA,OAAOC,WAAA,CAAKC,8BAAA,EAAqB,CAAC,IAAA,EAAM,IAAI,CAAC,CAAA;AAC9C","file":"data.js","sourcesContent":["import { EarthEngineOptions } from \"../../MapLayer/components/GoogleEngineLayer/interfaces/index.js\";\nimport { useGoogleEngineToken } from \"../../MapLayer/components/GoogleEngineLayer/hooks/index.js\";\nimport { EarthEngine } from \"../../MapLayer/components/GoogleEngineLayer/services/engine.js\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useMemo } from \"react\";\nimport { useWatch } from \"react-hook-form\";\nimport { find } from \"lodash\";\nimport { EARTH_ENGINE_LAYERS } from \"../../MapLayer/components/GoogleEngineLayer/constants/index.js\";\n\nexport function useDatasetInfo(\n\tshouldRun: boolean,\n\tconfig?: EarthEngineOptions,\n) {\n\tconst { refresh } = useGoogleEngineToken();\n\n\tasync function getInfo() {\n\t\tif (config) {\n\t\t\tconst tokenData = await refresh();\n\t\t\tawait EarthEngine.setToken(tokenData.token, refresh);\n\t\t\tconst engine = new EarthEngine({\n\t\t\t\toptions: config,\n\t\t\t});\n\t\t\treturn engine.getPeriod();\n\t\t}\n\t}\n\n\tconst { data, error, isLoading } = useQuery([config], getInfo);\n\n\tconst periods = useMemo(() => {\n\t\tconst features = (data as any)?.features;\n\t\treturn features?.map((feature: any) => {\n\t\t\treturn new Date(\n\t\t\t\tfeature?.properties[\"system:time_start\"],\n\t\t\t)?.getFullYear();\n\t\t});\n\t}, [data]);\n\n\treturn {\n\t\tloading: isLoading,\n\t\terror: error as any,\n\t\tperiods,\n\t};\n}\n\nexport function useType() {\n\tconst type = useWatch({\n\t\tname: \"type\",\n\t});\n\treturn find(EARTH_ENGINE_LAYERS, [\"id\", type]);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Map/components/MapArea/index.tsx"],"names":["useMapLayers","jsxs","Fragment","jsx","TileLayer","MapControl","isEmpty","LayersControl","MapLayer","LegendArea","useMapBounds","useRef","uid","MapContainer","MapPeriodTitle","MapUpdater","MapLayersProvider","forwardRef"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAoBA,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Map/components/MapArea/index.tsx"],"names":["useMapLayers","jsxs","Fragment","jsx","TileLayer","MapControl","isEmpty","LayersControl","MapLayer","LegendArea","useMapBounds","useRef","uid","MapContainer","MapPeriodTitle","MapUpdater","MapLayersProvider","forwardRef"],"mappings":"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","file":"index.js","sourcesContent":["import { uid } from \"@hisptz/dhis2-utils\";\nimport { Map as LeafletMap } from \"leaflet\";\nimport { isEmpty } from \"lodash\";\nimport { forwardRef, type Ref, useRef } from \"react\";\nimport { LayersControl, MapContainer, TileLayer } from \"react-leaflet\";\nimport { useMapBounds } from \"../../hooks/map.js\";\nimport MapControl from \"../MapControls/index.js\";\nimport MapLayer from \"../MapLayer/index.js\";\nimport LegendArea from \"../MapLayer/components/LegendArea/index.js\";\nimport { CustomThematicLayer } from \"../MapLayer/interfaces/index.js\";\nimport { MapLayersProvider } from \"../MapProvider/components/MapLayerProvider/index.js\";\nimport { useMapLayers } from \"../MapProvider/hooks/index.js\";\nimport {\n\tMapAreaProps,\n\tMapControls,\n\tMapLegendConfig,\n} from \"./interfaces/index.js\";\nimport MapUpdater from \"../MapUpdater/index.js\";\nimport { MapPeriodTitle } from \"../MapTitle\";\n\nfunction MapLayerArea({\n\tid,\n\tbase = { enabled: true },\n\tcontrols,\n\tlegends,\n}: {\n\tid: string;\n\tbase?: {\n\t\turl?: string;\n\t\tattribution?: string;\n\t\tenabled?: boolean;\n\t};\n\tcontrols?: MapControls[];\n\tlegends?: MapLegendConfig;\n}) {\n\tconst { layers } = useMapLayers();\n\n\treturn (\n\t\t<>\n\t\t\t{base?.enabled && (\n\t\t\t\t<TileLayer\n\t\t\t\t\tid={id}\n\t\t\t\t\tattribution={\n\t\t\t\t\t\tbase?.attribution ??\n\t\t\t\t\t\t'© <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a> | © <a href=\"https://carto.com/attribution\">CARTO</a>'\n\t\t\t\t\t}\n\t\t\t\t\turl={\n\t\t\t\t\t\tbase?.url ??\n\t\t\t\t\t\t\"https://cartodb-basemaps-{s}.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png\"\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{controls?.map((control) => (\n\t\t\t\t<MapControl\n\t\t\t\t\tmapId={id}\n\t\t\t\t\tkey={`${control.type}-control`}\n\t\t\t\t\t{...control}\n\t\t\t\t/>\n\t\t\t))}\n\t\t\t{!isEmpty(layers) && (\n\t\t\t\t<LayersControl hideSingleBase position={\"topleft\"}>\n\t\t\t\t\t{(layers as CustomThematicLayer[]).map(\n\t\t\t\t\t\t(layer: CustomThematicLayer, index) => (\n\t\t\t\t\t\t\t<MapLayer\n\t\t\t\t\t\t\t\tkey={layer.id}\n\t\t\t\t\t\t\t\tlayer={layer}\n\t\t\t\t\t\t\t\tindex={index}\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</LayersControl>\n\t\t\t)}\n\t\t\t{!isEmpty(layers) && (\n\t\t\t\t<LegendArea\n\t\t\t\t\tlegends={legends}\n\t\t\t\t\tlayers={layers as CustomThematicLayer[]}\n\t\t\t\t\tposition={\"topright\"}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n}\n\nconst MapArea = (\n\t{\n\t\tbase,\n\t\tcontrols,\n\t\tmapOptions,\n\t\tshowPeriodTitle,\n\t\tkey,\n\t\tlegends,\n\t\tlayers,\n\t\tanalyticsOptions,\n\t}: MapAreaProps,\n\tref: Ref<LeafletMap> | undefined,\n) => {\n\tconst { center, bounds } = useMapBounds();\n\tconst { current: id } = useRef<string>(uid());\n\tconst containerRef = useRef<HTMLDivElement | null>(null);\n\n\treturn (\n\t\t<div\n\t\t\tref={containerRef}\n\t\t\tid={`${id}-\"map-container`}\n\t\t\tstyle={{ height: \"100%\", width: \"100%\" }}\n\t\t>\n\t\t\t<MapContainer\n\t\t\t\tattributionControl\n\t\t\t\tref={ref}\n\t\t\t\tid={id}\n\t\t\t\tcenter={center}\n\t\t\t\tbounceAtZoomLimits\n\t\t\t\tbounds={bounds}\n\t\t\t\tstyle={{ height: \"100%\", width: \"100%\", minHeight: 500 }}\n\t\t\t\tkey={key}\n\t\t\t\ttrackResize\n\t\t\t\t{...mapOptions}\n\t\t\t>\n\t\t\t\t<>\n\t\t\t\t\t{showPeriodTitle && <MapPeriodTitle />}\n\t\t\t\t\t<MapUpdater containerRef={containerRef} bounds={bounds} />\n\t\t\t\t\t<MapLayersProvider\n\t\t\t\t\t\tanalyticsOptions={analyticsOptions}\n\t\t\t\t\t\tlayers={layers}\n\t\t\t\t\t>\n\t\t\t\t\t\t<MapLayerArea\n\t\t\t\t\t\t\tbase={base}\n\t\t\t\t\t\t\tid={id}\n\t\t\t\t\t\t\tcontrols={controls}\n\t\t\t\t\t\t\tlegends={legends}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MapLayersProvider>\n\t\t\t\t</>\n\t\t\t</MapContainer>\n\t\t</div>\n\t);\n};\n\nexport default forwardRef(MapArea);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/components/Map/components/MapControls/components/CustomControl/index.tsx"],"names":["jsx"],"mappings":";;;;AAGA,MAAM,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/components/Map/components/MapControls/components/CustomControl/index.tsx"],"names":["jsx"],"mappings":";;;;AAGA,MAAM,gBAAA,GAAmB;AAAA,EACxB,UAAA,EAAY,6BAAA;AAAA,EACZ,WAAA,EAAa,8BAAA;AAAA,EACb,OAAA,EAAS,0BAAA;AAAA,EACT,QAAA,EAAU;AACX,CAAA;AAMO,SAAS,aAAA,CAAc;AAAA,EAC7B,QAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACJ,CAAA,EAAyB;AACxB,EAAA,MAAM,aAAA,GACJ,QAAA,IAAY,gBAAA,CAAiB,QAAQ,KAAM,gBAAA,CAAiB,QAAA;AAC9D,EAAA,sCACE,KAAA,EAAA,EAAK,GAAG,SAAS,SAAA,EAAW,CAAA,EAAG,aAAa,CAAA,CAAA,EAC5C,QAAA,kBAAAA,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAA,EAAO,EAAE,QAAA,EAAU,QAAA,EAAU,QAAQ,MAAA,EAAO;AAAA,MAC5C,SAAA,EAAU,6BAAA;AAAA,MAET;AAAA;AAAA,GACF,EACD,CAAA;AAEF","file":"index.js","sourcesContent":["import { ControlOptions } from \"leaflet\";\nimport { type ReactNode } from \"react\";\n\nconst POSITION_CLASSES = {\n\tbottomleft: \"leaflet-bottom leaflet-left\",\n\tbottomright: \"leaflet-bottom leaflet-right\",\n\ttopleft: \"leaflet-top leaflet-left\",\n\ttopright: \"leaflet-top leaflet-right\",\n};\n\ninterface CustomControlOptions extends ControlOptions {\n\tchildren: ReactNode;\n}\n\nexport function CustomControl({\n\tchildren,\n\tposition,\n\t...options\n}: CustomControlOptions) {\n\tconst positionClass =\n\t\t(position && POSITION_CLASSES[position]) || POSITION_CLASSES.topright;\n\treturn (\n\t\t<div {...options} className={`${positionClass}`}>\n\t\t\t<div\n\t\t\t\tstyle={{ overflow: \"hidden\", border: \"none\" }}\n\t\t\t\tclassName=\"leaflet-control leaflet-bar\"\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/components/Map/components/MapControls/components/DownloadControl/index.tsx"],"names":["createControlComponent","L"],"mappings":";;;;;;;;;;;AAKA,MAAM,wBAAA,GAA2BA,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/components/Map/components/MapControls/components/DownloadControl/index.tsx"],"names":["createControlComponent","L"],"mappings":";;;;;;;;;;;AAKA,MAAM,wBAAA,GAA2BA,2BAAA,CAAuB,CAAC,KAAA,KAAU;AAClE,EAAA,OAAQC,kBAAA,CAAU,UAAU,KAAK,CAAA;AAClC,CAAC,CAAA;AACc,SAAR,eAAA,CAAiC,EAAE,OAAA,EAAS,QAAA,EAAU,OAAM,EAA+D;AAChI,EAAA,sCAAQ,wBAAA,EAAA,EAA0B,GAAG,EAAE,GAAG,OAAA,EAAS,UAAS,EAAG,CAAA;AACjE","file":"index.js","sourcesContent":["import { createControlComponent } from \"@react-leaflet/core\";\nimport L, { ControlPosition } from \"leaflet\";\nimport \"leaflet-easyprint\";\nimport React from \"react\";\n\nconst DownloadControlComponent = createControlComponent((props) => {\n\treturn (L as any).easyPrint(props);\n});\nexport default function DownloadControl({ options, position, mapId }: { options: any; position: ControlPosition; mapId: string }) {\n return <DownloadControlComponent {...{ ...options, position }} />;\n}\n"]}
|
package/dist/components/Map/components/MapControls/components/FullscreenControl/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/components/Map/components/MapControls/components/FullscreenControl/index.tsx"],"names":["createControlComponent","control"],"mappings":";;;;;;;AAMA,MAAM,oBAEFA,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/components/Map/components/MapControls/components/FullscreenControl/index.tsx"],"names":["createControlComponent","control"],"mappings":";;;;;;;AAMA,MAAM,oBAEFA,2BAAA,CAAuB,CAAC,UAAWC,eAAA,CAAgB,UAAA,CAAW,KAAK,CAAC,CAAA;AACxE,IAAO,yBAAA,GAAQ","file":"index.js","sourcesContent":["import { createControlComponent } from \"@react-leaflet/core\";\nimport { control, type ControlOptions } from \"leaflet\";\nimport \"leaflet.fullscreen\";\nimport \"leaflet.fullscreen/Control.FullScreen.css\";\nimport type { ForwardRefExoticComponent, RefAttributes } from \"react\";\n\nconst FullscreenControl: ForwardRefExoticComponent<\n\tControlOptions & RefAttributes<any>\n> = createControlComponent((props) => (control as any).fullscreen(props));\nexport default FullscreenControl;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Map/components/MapControls/index.tsx"],"names":["jsx","ZoomControl","ScaleControl","FullscreenControl","DownloadControl"],"mappings":";;;;;;;;;;;;AAUe,SAAR,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Map/components/MapControls/index.tsx"],"names":["jsx","ZoomControl","ScaleControl","FullscreenControl","DownloadControl"],"mappings":";;;;;;;;;;;;AAUe,SAAR,UAAA,CAA4B;AAAA,EAClC,IAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA;AACD,CAAA,EAAoB;AACnB,EAAA,QAAQ,IAAA;AAAM,IACb,KAAK,MAAA;AACJ,MAAA,uBAAOA,cAAA,CAACC,wBAAA,EAAA,EAAY,QAAA,EAAqB,GAAG,OAAA,EAAS,CAAA;AAAA,IACtD,KAAK,OAAA;AACJ,MAAA,uBAAOD,cAAA,CAACE,yBAAA,EAAA,EAAa,QAAA,EAAqB,GAAG,OAAA,EAAS,CAAA;AAAA,IACvD,KAAK,YAAA;AACJ,MAAA,uBAAOF,cAAA,CAACG,kCAAA,EAAA,EAAkB,QAAA,EAAqB,GAAG,OAAA,EAAS,CAAA;AAAA,IAC5D,KAAK,OAAA;AACJ,MAAA,uBACCH,cAAA;AAAA,QAACI,gCAAA;AAAA,QAAA;AAAA,UACA,KAAA;AAAA,UACA,QAAA;AAAA,UACA;AAAA;AAAA,OACD;AAAA,IAEF;AACC,MAAA,OAAO,IAAA;AAAA;AAEV","file":"index.js","sourcesContent":["import React from \"react\";\nimport { ScaleControl, ZoomControl } from \"react-leaflet\";\nimport { MapControls } from \"../MapArea/interfaces/index.js\";\nimport FullscreenControl from \"./components/FullscreenControl/index.js\";\nimport DownloadControl from \"./components/DownloadControl/index.js\";\n\nexport interface MapControlProps extends MapControls {\n\tmapId: string;\n}\n\nexport default function MapControl({\n\ttype,\n\toptions,\n\tposition,\n\tmapId,\n}: MapControlProps) {\n\tswitch (type) {\n\t\tcase \"zoom\":\n\t\t\treturn <ZoomControl position={position} {...options} />;\n\t\tcase \"scale\":\n\t\t\treturn <ScaleControl position={position} {...options} />;\n\t\tcase \"fullscreen\":\n\t\t\treturn <FullscreenControl position={position} {...options} />;\n\t\tcase \"print\":\n\t\t\treturn (\n\t\t\t\t<DownloadControl\n\t\t\t\t\tmapId={mapId}\n\t\t\t\t\tposition={position}\n\t\t\t\t\toptions={options}\n\t\t\t\t/>\n\t\t\t);\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../src/components/Map/components/MapLayer/components/BoundaryLayer/hooks/useBoundaryData.ts"],"names":["useMapOrganisationUnit"],"mappings":";;;;AAEO,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../src/components/Map/components/MapLayer/components/BoundaryLayer/hooks/useBoundaryData.ts"],"names":["useMapOrganisationUnit"],"mappings":";;;;AAEO,SAAS,eAAA,GAAkB;AACjC,EAAA,MAAM,EAAE,QAAA,EAAS,GAAIA,+BAAA,EAAuB;AAE5C,EAAA,OAAO,QAAA;AACR","file":"useBoundaryData.js","sourcesContent":["import { useMapOrganisationUnit } from \"../../../../MapProvider/hooks/index.js\";\n\nexport function useBoundaryData() {\n\tconst { orgUnits } = useMapOrganisationUnit();\n\n\treturn orgUnits;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/components/Map/components/MapLayer/components/BoundaryLayer/index.tsx"],"names":["colors","useBoundaryData","LayersControl","i18n","jsx","LayerGroup","jsxs","GeoJSON","highlightFeature","resetHighlight","Tooltip","Popup"],"mappings":";;;;;;;;;;;;;;;AAeO,MAAM,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/components/Map/components/MapLayer/components/BoundaryLayer/index.tsx"],"names":["colors","useBoundaryData","LayersControl","i18n","jsx","LayerGroup","jsxs","GeoJSON","highlightFeature","resetHighlight","Tooltip","Popup"],"mappings":";;;;;;;;;;;;;;;AAeO,MAAM,YAAA,GAAe;AAAA,EAC3B,MAAA,EAAQ,CAAA;AAAA,EACR,OAAOA,SAAA,CAAO,OAAA;AAAA,EACd,WAAWA,SAAA,CAAO,OAAA;AAAA,EAClB,WAAA,EAAa;AACd;AACO,MAAM,cAAA,GAAiB;AAAA,EAC7B,MAAA,EAAQ,CAAA;AAAA,EACR,OAAOA,SAAA,CAAO,OAAA;AAAA,EACd,SAAA,EAAW,EAAA;AAAA,EACX,WAAA,EAAa;AACd;AAEe,SAAR,cAA+B,KAAA,EAA+B;AACpE,EAAA,MAAM,EAAE,OAAA,EAAS,mBAAA,EAAqB,YAAA,EAAa,GAAI,SAAS,EAAC;AACjE,EAAA,MAAM,WAAWC,kCAAA,EAAgB;AAEjC,EAAA,sCACEC,0BAAA,CAAc,OAAA,EAAd,EAAsB,OAAA,EAAS,SAAS,IAAA,EAAMC,qBAAA,CAAK,CAAA,CAAE,YAAY,GACjE,QAAA,kBAAAC,cAAA,CAACC,uBAAA,EAAA,EACC,QAAA,EAAA,QAAA,EAAU,GAAA,CAAI,CAAC,IAAA,KAAqB;AACpC,IAAA,uBACCC,eAAA;AAAA,MAACC,oBAAA;AAAA,MAAA;AAAA,QACA,MAAM,IAAA,CAAK,OAAA;AAAA,QACX,WAAA,EAAW,IAAA;AAAA,QACX,aAAA,EAAe;AAAA,UACd,SAAA,EAAW,CAAC,CAAA,KACXC,uBAAA,CAAiB,GAAG,cAAc,CAAA;AAAA,UACnC,QAAA,EAAU,CAAC,CAAA,KACVC,qBAAA,CAAe,GAAG,YAAY,CAAA;AAAA,UAC/B,GAAI,uBAAuB,EAAC;AAAA,UAC5B,SAAA,EAAW,CAAC,CAAA,KAAM;AACjB,YAAA,IAAI,YAAA,EAAc;AACjB,cAAA,YAAA,CAAa,CAAA,EAAG,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA;AAAA,YAClC;AAAA,UACD;AAAA,SACD;AAAA,QAEA,WAAA,EAAa,YAAA;AAAA,QAEb,QAAA,EAAA;AAAA,0BAAAL,cAAA,CAACM,oBAAA,EAAA,EAAS,eAAK,IAAA,EAAK,CAAA;AAAA,0BACpBJ,eAAA,CAACK,kBAAA,EAAA,EAAM,QAAA,EAAU,EAAA,EAChB,QAAA,EAAA;AAAA,4BAAAP,cAAA,CAAC,IAAA,EAAA,EAAI,eAAK,IAAA,EAAK,CAAA;AAAA,4CACd,KAAA,EAAA,EACA,QAAA,EAAA;AAAA,8BAAAA,cAAA,CAAC,OAAE,QAAA,EAAA,SAAA,EAAO,CAAA;AAAA,cACT,IAAA,CAAK;AAAA,aAAA,EACP;AAAA,WAAA,EACD;AAAA;AAAA,OAAA;AAAA,MAVK,CAAA,EAAG,KAAK,EAAE,CAAA,QAAA;AAAA,KAWhB;AAAA,EAEF,CAAC,GACF,CAAA,EACD,CAAA;AAEF","file":"index.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport { colors } from \"@dhis2/ui\";\nimport React from \"react\";\nimport {\n\tGeoJSON,\n\tLayerGroup,\n\tLayersControl,\n\tPopup,\n\tTooltip,\n} from \"react-leaflet\";\nimport { MapOrgUnit } from \"../../../../interfaces/index.js\";\nimport { highlightFeature, resetHighlight } from \"../../../../utils/map.js\";\nimport { CustomBoundaryLayer as BoundaryLayerInterface } from \"../../interfaces/index.js\";\nimport { useBoundaryData } from \"./hooks/useBoundaryData.js\";\n\nexport const defaultStyle = {\n\tweight: 1,\n\tcolor: colors.grey900,\n\tfillColor: colors.grey900,\n\tfillOpacity: 0.0,\n};\nexport const highlightStyle = {\n\tweight: 2,\n\tcolor: colors.grey900,\n\tdashArray: \"\",\n\tfillOpacity: 0.1,\n};\n\nexport default function BoundaryLayer(props: BoundaryLayerInterface) {\n\tconst { enabled, customEventHandlers, onLayerClick } = props ?? {};\n\tconst orgUnits = useBoundaryData();\n\n\treturn (\n\t\t<LayersControl.Overlay checked={enabled} name={i18n.t(\"Boundaries\")}>\n\t\t\t<LayerGroup>\n\t\t\t\t{orgUnits?.map((area: MapOrgUnit) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<GeoJSON\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\teventHandlers={{\n\t\t\t\t\t\t\t\tmouseover: (e) =>\n\t\t\t\t\t\t\t\t\thighlightFeature(e, highlightStyle),\n\t\t\t\t\t\t\t\tmouseout: (e) =>\n\t\t\t\t\t\t\t\t\tresetHighlight(e, defaultStyle),\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\tkey={`${area.id}-polygon`}\n\t\t\t\t\t\t\tpathOptions={defaultStyle}\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\t<div>\n\t\t\t\t\t\t\t\t\t<b>Level: </b>\n\t\t\t\t\t\t\t\t\t{area.level}\n\t\t\t\t\t\t\t\t</div>\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/GoogleEngineLayer/components/EarthEngineLegend.tsx"],"names":["jsxs","jsx","min","max","LegendCardHeader","Divider","isEmpty","i18n","forwardRef"],"mappings":";;;;;;;;;;;;;;;;AAOO,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../src/components/Map/components/MapLayer/components/GoogleEngineLayer/components/EarthEngineLegend.tsx"],"names":["jsxs","jsx","min","max","LegendCardHeader","Divider","isEmpty","i18n","forwardRef"],"mappings":"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","file":"EarthEngineLegend.js","sourcesContent":["import { forwardRef, type LegacyRef } from \"react\";\nimport LegendCardHeader from \"../../LegendArea/components/LegendCardHeader/index.js\";\nimport { CustomGoogleEngineLayer } from \"../../../interfaces/index.js\";\nimport { Divider } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { isEmpty } from \"lodash\";\n\nexport function LegendItem({\n\tlegend,\n}: {\n\tlegend: { min: number; max: number; color: string; name?: string };\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{legend.name ? (\n\t\t\t\t<div className=\"legend-item-label\">{`${legend.name}`}</div>\n\t\t\t) : (\n\t\t\t\t<div className=\"legend-item-label\">{`${legend.min} - ${legend.max}`}</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nfunction getLegendsFromParams(params?: {\n\tmin: number;\n\tmax: number;\n\tpalette: string | string[];\n}) {\n\tif (!params) return [];\n\n\tconst { palette, min, max } = params;\n\tconst sanitizedPalette = Array.isArray(palette)\n\t\t? palette\n\t\t: palette.split(\",\");\n\tconst classes = sanitizedPalette.length;\n\tconst difference = max - min;\n\tconst interval = Math.round(difference / classes);\n\tconst legends = [];\n\tfor (let i = 0; i < classes; i++) {\n\t\tconst min = i * interval;\n\t\tconst max = min + interval;\n\n\t\tconst name = i === classes - 1 ? `> ${min}` : undefined;\n\n\t\tlegends.push({\n\t\t\tid: sanitizedPalette[i],\n\t\t\tcolor: sanitizedPalette[i],\n\t\t\tmin,\n\t\t\tmax,\n\t\t\tname,\n\t\t});\n\t}\n\n\treturn legends;\n}\n\nfunction EarthEngineLegend(\n\t{\n\t\tlayer,\n\t\tcollapsible,\n\t\tonCollapse,\n\t\tname,\n\t}: {\n\t\tlayer: CustomGoogleEngineLayer;\n\t\tcollapsible?: boolean;\n\t\tonCollapse?: () => void;\n\t\tname: string;\n\t},\n\tref: LegacyRef<HTMLDivElement>,\n) {\n\tconst { options } = layer;\n\tconst legends =\n\t\toptions?.legend?.items ?? getLegendsFromParams(options?.params);\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{ maxWidth: 200, alignItems: \"start\", gap: 8 }}\n\t\t\tclassName=\"legend-card\"\n\t\t\tref={ref}\n\t\t>\n\t\t\t<LegendCardHeader\n\t\t\t\ttitle={name}\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<p style={{ margin: 0 }}>{options?.description ?? \"\"}</p>\n\t\t\t{!isEmpty(legends) && <b>{options?.unit ?? \"\"}</b>}\n\t\t\t<div className=\"legend-list\">\n\t\t\t\t{legends?.map((legend: any) => (\n\t\t\t\t\t<LegendItem\n\t\t\t\t\t\tkey={`${legend?.color}-legend-list`}\n\t\t\t\t\t\tlegend={legend}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t\t{options?.source && (\n\t\t\t\t<div className=\"row gap-8\">\n\t\t\t\t\t{i18n.t(\"Source\")}:\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName=\"source-url\"\n\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\treferrerPolicy=\"no-referrer\"\n\t\t\t\t\t\thref={options?.sourceUrl}\n\t\t\t\t\t>\n\t\t\t\t\t\t{options?.source ?? \"\"}\n\t\t\t\t\t</a>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport default forwardRef(EarthEngineLegend);\n"]}
|