@hisptz/dhis2-analytics 2.1.24 → 2.1.25
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/index.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/state/engine.js.map +1 -1
- package/dist/components/Map/DHIS2Map.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/MapArea/index.js.map +1 -1
- package/dist/components/Map/components/MapControls/components/CustomControl/index.js +13 -2
- package/dist/components/Map/components/MapControls/components/CustomControl/index.js.map +1 -1
- package/dist/components/Map/components/MapControls/components/FullscreenControl/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/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/LegendArea/index.js +10 -11
- 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/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/MapProvider/components/MapLayerProvider/index.js.map +1 -1
- package/dist/components/Map/components/MapProvider/index.js.map +1 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.js.map +1 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/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/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/esm/components/ChartAnalytics/DHIS2Chart.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/components/DownloadMenu/index.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/state/engine.js.map +1 -1
- package/dist/esm/components/Map/DHIS2Map.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/MapArea/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapControls/components/CustomControl/index.js +13 -2
- package/dist/esm/components/Map/components/MapControls/components/CustomControl/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/MapLayer/components/GoogleEngineLayer/components/EarthEngineLegend.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/LegendArea/index.js +4 -4
- 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/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/MapProvider/components/MapLayerProvider/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapProvider/index.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/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/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/types/components/ChartAnalytics/DHIS2Chart.d.ts +3 -3
- package/dist/types/components/ChartAnalytics/DHIS2Chart.d.ts.map +1 -1
- package/dist/types/components/ChartAnalytics/components/DownloadMenu/index.d.ts +2 -2
- package/dist/types/components/ChartAnalytics/components/DownloadMenu/index.d.ts.map +1 -1
- package/dist/types/components/CircularProgressDashboard/CircularProgressIndicator.d.ts +2 -2
- package/dist/types/components/CircularProgressDashboard/CircularProgressIndicator.d.ts.map +1 -1
- package/dist/types/components/DHIS2PivotTable/components/Table/index.d.ts +2 -2
- package/dist/types/components/DHIS2PivotTable/components/Table/index.d.ts.map +1 -1
- package/dist/types/components/DHIS2PivotTable/state/engine.d.ts.map +1 -1
- package/dist/types/components/Map/DHIS2Map.d.ts +3 -3
- package/dist/types/components/Map/DHIS2Map.d.ts.map +1 -1
- package/dist/types/components/Map/components/MapArea/index.d.ts +1 -2
- package/dist/types/components/Map/components/MapArea/index.d.ts.map +1 -1
- package/dist/types/components/Map/components/MapControls/components/CustomControl/index.d.ts +2 -2
- package/dist/types/components/Map/components/MapControls/components/CustomControl/index.d.ts.map +1 -1
- package/dist/types/components/Map/components/MapControls/components/FullscreenControl/index.d.ts +2 -1
- package/dist/types/components/Map/components/MapControls/components/FullscreenControl/index.d.ts.map +1 -1
- package/dist/types/components/Map/components/MapLayer/components/GoogleEngineLayer/components/EarthEngineLegend.d.ts +2 -3
- package/dist/types/components/Map/components/MapLayer/components/GoogleEngineLayer/components/EarthEngineLegend.d.ts.map +1 -1
- package/dist/types/components/Map/components/MapLayer/components/LegendArea/index.d.ts.map +1 -1
- package/dist/types/components/Map/components/MapLayer/components/PointLayer/components/PointLegend/index.d.ts +1 -2
- package/dist/types/components/Map/components/MapLayer/components/PointLayer/components/PointLegend/index.d.ts.map +1 -1
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubbles.d.ts +1 -2
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubbles.d.ts.map +1 -1
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/index.d.ts +2 -3
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/index.d.ts.map +1 -1
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.d.ts +2 -3
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.d.ts.map +1 -1
- package/dist/types/components/Map/components/MapProvider/components/MapLayerProvider/index.d.ts +2 -2
- package/dist/types/components/Map/components/MapProvider/components/MapLayerProvider/index.d.ts.map +1 -1
- package/dist/types/components/Map/components/MapProvider/index.d.ts.map +1 -1
- package/dist/types/components/Map/interfaces/index.d.ts +2 -2
- package/dist/types/components/Map/interfaces/index.d.ts.map +1 -1
- package/dist/types/components/SingleValueContainer/SingleValueVisualizer.d.ts +2 -2
- package/dist/types/components/SingleValueContainer/SingleValueVisualizer.d.ts.map +1 -1
- package/dist/types/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.d.ts +2 -2
- package/dist/types/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.d.ts.map +1 -1
- package/dist/types/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.d.ts +2 -2
- package/dist/types/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.d.ts.map +1 -1
- package/dist/types/components/Visualization/components/AnalyticsDataProvider/index.d.ts +2 -2
- package/dist/types/components/Visualization/components/AnalyticsDataProvider/index.d.ts.map +1 -1
- package/dist/types/components/Visualization/components/DimensionsProvider/index.d.ts +4 -4
- package/dist/types/components/Visualization/components/DimensionsProvider/index.d.ts.map +1 -1
- package/dist/types/components/Visualization/components/LayoutProvider/index.d.ts +3 -3
- package/dist/types/components/Visualization/components/LayoutProvider/index.d.ts.map +1 -1
- package/dist/types/components/Visualization/components/VisualizationProvider/index.d.ts +2 -2
- package/dist/types/components/Visualization/components/VisualizationProvider/index.d.ts.map +1 -1
- package/dist/types/components/Visualization/components/VisualizationTypeProvider/index.d.ts +6 -6
- package/dist/types/components/Visualization/components/VisualizationTypeProvider/index.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubbles.tsx"],"names":["scaleSqrt","getContrastColor","i18n","getLongestTextLength","reduce","smallestGap","jsx","Bubble","memo"],"mappings":"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","file":"Bubbles.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport { scaleSqrt } from \"d3-scale\";\nimport { reduce } from \"lodash\";\nimport
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubbles.tsx"],"names":["scaleSqrt","getContrastColor","i18n","getLongestTextLength","reduce","smallestGap","jsx","Bubble","memo"],"mappings":"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","file":"Bubbles.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport { scaleSqrt } from \"d3-scale\";\nimport { reduce } from \"lodash\";\nimport { memo } from \"react\";\nimport { getContrastColor } from \"../../../../../../../../../utils/colors.js\";\nimport { getLongestTextLength } from \"../../../../../../../../../utils/helpers.js\";\nimport Bubble, { BubbleProps } from \"./Bubble.js\";\n\nconst style = {\n\tpaddingTop: 10,\n\tdisplay: \"flex\",\n\talignItems: \"center\",\n\tjustifyContent: \"center\",\n};\n\nconst legendWidth = 180;\nconst digitWidth = 6.8;\nexport const guideLength = 16;\nexport const textPadding = 4;\n\nconst Bubbles = ({\n\tradiusLow,\n\tradiusHigh,\n\tcolor,\n\tclasses,\n}: {\n\tradiusLow: number;\n\tradiusHigh: number;\n\tcolor?: string;\n\tclasses: Array<any>;\n}) => {\n\tconst height = radiusHigh * 2 + 4;\n\tconst scale = scaleSqrt().range([radiusLow, radiusHigh]);\n\tconst radiusMid = scale(0.5);\n\n\tif (isNaN(radiusLow) || isNaN(radiusHigh)) {\n\t\treturn null;\n\t}\n\n\tlet bubbles: Array<BubbleProps> = [];\n\n\t// If color legend\n\tif (Array.isArray(classes) && classes.length) {\n\t\tconst startValue = classes[0].startValue;\n\t\tconst endValue = classes[classes.length - 1].endValue;\n\t\tconst itemScale = scale.domain([startValue, endValue]);\n\n\t\tbubbles = [...classes].reverse().map((c) => ({\n\t\t\tradius: itemScale(c.endValue),\n\t\t\tmaxRadius: radiusHigh,\n\t\t\tcolor: c.color,\n\t\t\ttext: String(c.endValue),\n\t\t}));\n\n\t\t// Add the smallest bubble for the lowest value\n\t\tbubbles.push({\n\t\t\tradius: itemScale(startValue),\n\t\t\tmaxRadius: radiusHigh,\n\t\t\ttext: String(startValue),\n\t\t});\n\t} else {\n\t\t// If single color\n\t\tconst stroke = color && getContrastColor(color);\n\n\t\tbubbles = [\n\t\t\t{\n\t\t\t\tradius: radiusHigh,\n\t\t\t\tmaxRadius: radiusHigh,\n\t\t\t\tcolor,\n\t\t\t\tstroke,\n\t\t\t\ttext: i18n.t(\"Max\"),\n\t\t\t},\n\t\t\t{\n\t\t\t\tradius: radiusMid,\n\t\t\t\tmaxRadius: radiusHigh,\n\t\t\t\tcolor,\n\t\t\t\tstroke,\n\t\t\t\ttext: i18n.t(\"Mid\"),\n\t\t\t},\n\t\t\t{\n\t\t\t\tradius: radiusLow,\n\t\t\t\tmaxRadius: radiusHigh,\n\t\t\t\tcolor,\n\t\t\t\tstroke,\n\t\t\t\ttext: i18n.t(\"Min\"),\n\t\t\t},\n\t\t];\n\t}\n\n\t// Calculate the pixel length of the longest number\n\tlet textLength = Math.ceil(\n\t\tMath.max(\n\t\t\tgetLongestTextLength(classes, \"startValue\"),\n\t\t\tgetLongestTextLength(classes, \"endValue\"),\n\t\t) * digitWidth,\n\t);\n\n\t// Calculate the total length if numbers are alternate on each side\n\tconst alternateLength =\n\t\t(radiusHigh + guideLength + textPadding + textLength) * 2;\n\n\tlet smallestGap = reduce(bubbles, (prev, curr: any, i) => {\n\t\tconst gap = prev.radius - curr.radius;\n\t\tconst smallestGap =\n\t\t\tprev.gap === undefined || gap < prev.gap ? gap : prev.gap;\n\n\t\treturn i === bubbles.length - 1\n\t\t\t? Math.round(smallestGap * 2)\n\t\t\t: {\n\t\t\t\t\tradius: curr.radius,\n\t\t\t\t\tgap: smallestGap,\n\t\t\t\t};\n\t});\n\n\tconst alternateFit = alternateLength < legendWidth;\n\n\tconst alternate = alternateFit && smallestGap > 5 && smallestGap < 12;\n\n\tif (!alternateFit) {\n\t\tsmallestGap = smallestGap / 2;\n\t}\n\n\t// Too cramped to show number for each bubble\n\tif (smallestGap < 4) {\n\t\tconst [maxBubble] = bubbles;\n\t\tconst minBubble = bubbles[bubbles.length - 1];\n\t\tconst gap = maxBubble.radius - minBubble.radius;\n\t\tconst showNumbers = [0]; // Always show the largest number\n\n\t\tif (gap > 4) {\n\t\t\tshowNumbers.push(bubbles.length - 1);\n\t\t}\n\n\t\tif (gap > 15) {\n\t\t\tconst midRadius = minBubble.radius + gap / 2;\n\n\t\t\t// Find the closest bubble above the mid-radius\n\t\t\tconst midBubble = bubbles.reduce((prev, curr) =>\n\t\t\t\tcurr.radius >= midRadius &&\n\t\t\t\tcurr.radius - midRadius < prev.radius - midRadius\n\t\t\t\t\t? curr\n\t\t\t\t\t: prev,\n\t\t\t);\n\n\t\t\tshowNumbers.push(bubbles.indexOf(midBubble));\n\t\t}\n\n\t\tbubbles.forEach((b, i) => {\n\t\t\tif (!showNumbers.includes(i)) {\n\t\t\t\tdelete b.text;\n\t\t\t}\n\t\t});\n\t}\n\n\ttextLength = Math.ceil(getLongestTextLength(bubbles, \"text\") * digitWidth);\n\n\tconst offset = textLength + guideLength + textPadding;\n\n\treturn (\n\t\t<div style={style}>\n\t\t\t<svg width={legendWidth} height={height + 50}>\n\t\t\t\t<g transform={`translate(${alternate ? offset : \"16\"} 24)`}>\n\t\t\t\t\t{bubbles.map((bubble, i) => (\n\t\t\t\t\t\t<Bubble\n\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\t{...bubble}\n\t\t\t\t\t\t\ttextAlign={\n\t\t\t\t\t\t\t\talternate && i % 2 == 0 ? \"left\" : \"right\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</g>\n\t\t\t</svg>\n\t\t</div>\n\t);\n};\n\nexport default memo(Bubbles);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/index.tsx"],"names":["jsxs","jsx","LegendCardHeader","Divider","Bubbles","forwardRef"],"mappings":";;;;;;;;;;;;;AAUA,SAAS,YACR,CAAA;AAAA,EACC,MAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA;AACD,CAAA,EASA,GACC,EAAA;AACD,EAAA,uBACEA,eAAA,CAAA,KAAA,EAAA,EAAI,SAAU,EAAA,aAAA,EAAc,GAC5B,EAAA,QAAA,EAAA;AAAA,oBAAAC,cAAA;AAAA,MAACC,iCAAA;AAAA,MAAA;AAAA,QACA,OAAO,QAAS,CAAA,WAAA;AAAA,QAChB,UAAA;AAAA,QACA;AAAA;AAAA,KACD;AAAA,oBACAD,cAAA,CAACE,UAAQ,EAAA,EAAA,MAAA,EAAQ,GAAK,EAAA,CAAA;AAAA,oBACtBF,cAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,kBACd,EAAA,QAAA,kBAAAA,cAAA;AAAA,MAACG,wBAAA;AAAA,MAAA;AAAA,QACA,OAAA,EAAS,QAAQ,OAAQ,EAAA;AAAA,QACzB,YAAY,MAAO,CAAA,GAAA;AAAA,QACnB,WAAW,MAAO,CAAA,GAAA;AAAA,QAClB,KAAO,EAAA;AAAA;AAAA,KAET,EAAA;AAAA,GACD,EAAA,CAAA;AAEF;AAEO,IAAA,oBAAA,GAAQC,iBAAW,YAAY","file":"index.js","sourcesContent":["import { Divider } from \"@dhis2/ui\";\nimport type { Legend } from \"@hisptz/dhis2-utils\";\nimport
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/index.tsx"],"names":["jsxs","jsx","LegendCardHeader","Divider","Bubbles","forwardRef"],"mappings":";;;;;;;;;;;;;AAUA,SAAS,YACR,CAAA;AAAA,EACC,MAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA;AACD,CAAA,EASA,GACC,EAAA;AACD,EAAA,uBACEA,eAAA,CAAA,KAAA,EAAA,EAAI,SAAU,EAAA,aAAA,EAAc,GAC5B,EAAA,QAAA,EAAA;AAAA,oBAAAC,cAAA;AAAA,MAACC,iCAAA;AAAA,MAAA;AAAA,QACA,OAAO,QAAS,CAAA,WAAA;AAAA,QAChB,UAAA;AAAA,QACA;AAAA;AAAA,KACD;AAAA,oBACAD,cAAA,CAACE,UAAQ,EAAA,EAAA,MAAA,EAAQ,GAAK,EAAA,CAAA;AAAA,oBACtBF,cAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,kBACd,EAAA,QAAA,kBAAAA,cAAA;AAAA,MAACG,wBAAA;AAAA,MAAA;AAAA,QACA,OAAA,EAAS,QAAQ,OAAQ,EAAA;AAAA,QACzB,YAAY,MAAO,CAAA,GAAA;AAAA,QACnB,WAAW,MAAO,CAAA,GAAA;AAAA,QAClB,KAAO,EAAA;AAAA;AAAA,KAET,EAAA;AAAA,GACD,EAAA,CAAA;AAEF;AAEO,IAAA,oBAAA,GAAQC,iBAAW,YAAY","file":"index.js","sourcesContent":["import { Divider } from \"@dhis2/ui\";\nimport type { Legend } from \"@hisptz/dhis2-utils\";\nimport { forwardRef, type LegacyRef } from \"react\";\nimport {\n\tThematicLayerData,\n\tThematicLayerDataItem,\n} from \"../../../../../../interfaces/index.js\";\nimport LegendCardHeader from \"../../../../../LegendArea/components/LegendCardHeader/index.js\";\nimport Bubbles from \"./components/Bubbles.js\";\n\nfunction BubbleLegend(\n\t{\n\t\tradius,\n\t\tdataItem,\n\t\tdata,\n\t\tname,\n\t\tcollapsible,\n\t\tonCollapse,\n\t\tlegends,\n\t}: {\n\t\tradius: { min: number; max: number };\n\t\tdataItem: ThematicLayerDataItem;\n\t\tdata: ThematicLayerData[];\n\t\tname?: string;\n\t\tcollapsible?: boolean;\n\t\tonCollapse?: () => void;\n\t\tlegends: Legend[];\n\t},\n\tref: LegacyRef<HTMLDivElement> | undefined,\n) {\n\treturn (\n\t\t<div className=\"legend-card\" ref={ref}>\n\t\t\t<LegendCardHeader\n\t\t\t\ttitle={dataItem.displayName}\n\t\t\t\tonCollapse={onCollapse}\n\t\t\t\tcollapsible={collapsible}\n\t\t\t/>\n\t\t\t<Divider margin={\"0\"} />\n\t\t\t<div className=\"legend-list pt-8\">\n\t\t\t\t<Bubbles\n\t\t\t\t\tclasses={legends.reverse()}\n\t\t\t\t\tradiusHigh={radius.max}\n\t\t\t\t\tradiusLow={radius.min}\n\t\t\t\t\tcolor={\"#FF0000\"}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport default forwardRef(BubbleLegend);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/index.tsx"],"names":["geoJSON","useMemo","jsx","Fragment","CircleMarker","highlightFeature","resetHighlight","getColorFromLegendSet","colors","CustomTooltip"],"mappings":";;;;;;;;;;;;;;AAqBA,MAAM,YAAe,GAAA;AAAA,EACpB,MAAQ,EAAA;AACT,CAAA;AACA,MAAM,cAAiB,GAAA;AAAA,EACtB,MAAQ,EAAA;AACT,CAAA;AAQe,SAAR,MAAwB,CAAA;AAAA,EAC9B,IAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,mBAAA;AAAA,EACA;AACD,CAOG,EAAA;AACF,EAAA,MAAM,EAAE,OAAS,EAAA,IAAA,EAAM,KAAM,EAAA,GAAI,QAAQ,EAAC;AAE1C,EAAA,MAAM,gBAAgB,OAAQ,CAAA,OAAA;AAC9B,EAAA,MAAM,SAASA,eAAQ,CAAA,aAAa,CAAE,CAAA,SAAA,GAAY,SAAU,EAAA;AAE5D,EAAM,MAAA,YAAA,GAAeC,cAAQ,MAAM;AAClC,IAAA,OAAA,CAAS,KAAS,IAAA,CAAA,KAAM,MAAQ,EAAA,GAAA,IAAO,EAAO,CAAA,GAAA,WAAA;AAAA,GAC5C,EAAA,CAAC,MAAQ,EAAA,IAAA,EAAM,WAAW,CAAC,CAAA;AAE9B,EAAA,uBAEEC,cAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,kBAAAD,cAAA;AAAA,IAACE,yBAAA;AAAA,IAAA;AAAA,MACA,WAAW,EAAA,IAAA;AAAA,MACX,aAAe,EAAA;AAAA,QACd,SAAW,EAAA,CAAC,CAAM,KAAAC,uBAAA,CAAiB,GAAG,cAAc,CAAA;AAAA,QACpD,QAAU,EAAA,CAAC,CAAM,KAAAC,qBAAA,CAAe,GAAG,YAAY,CAAA;AAAA,QAC/C,GAAI,uBAAuB,EAAC;AAAA,QAC5B,SAAA,EAAW,CAAC,CAAM,KAAA;AACjB,UAAA,IAAI,YAAc,EAAA;AACjB,YAAA,YAAA,CAAa,GAAG,IAAI,CAAA;AAAA;AACrB;AACD,OACD;AAAA,MACA,WAAa,EAAA;AAAA,QACZ,SAAW,EAAAC,4BAAA,CAAsB,OAAS,EAAA,IAAA,CAAK,IAAI,CAAA;AAAA,QACnD,WAAa,EAAA,CAAA;AAAA,QACb,OAAOC,SAAO,CAAA,OAAA;AAAA,QACd,MAAQ,EAAA;AAAA,OACT;AAAA,MACA,MAAQ,EAAA,YAAA;AAAA,MACR,MAAA;AAAA,MAEA,QAAA,kBAAAN,cAAA,CAACO,kCAAc,IAAY,EAAA;AAAA;AAAA,GAE7B,EAAA,CAAA;AAEF","file":"index.js","sourcesContent":["import { colors } from \"@dhis2/ui\";\nimport type { Legend } from \"@hisptz/dhis2-utils\";\nimport {\n\tgeoJSON,\n\ttype LeafletEventHandlerFnMap,\n\ttype LeafletMouseEvent,\n} from \"leaflet\";\nimport
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/index.tsx"],"names":["geoJSON","useMemo","jsx","Fragment","CircleMarker","highlightFeature","resetHighlight","getColorFromLegendSet","colors","CustomTooltip"],"mappings":";;;;;;;;;;;;;;AAqBA,MAAM,YAAe,GAAA;AAAA,EACpB,MAAQ,EAAA;AACT,CAAA;AACA,MAAM,cAAiB,GAAA;AAAA,EACtB,MAAQ,EAAA;AACT,CAAA;AAQe,SAAR,MAAwB,CAAA;AAAA,EAC9B,IAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,mBAAA;AAAA,EACA;AACD,CAOG,EAAA;AACF,EAAA,MAAM,EAAE,OAAS,EAAA,IAAA,EAAM,KAAM,EAAA,GAAI,QAAQ,EAAC;AAE1C,EAAA,MAAM,gBAAgB,OAAQ,CAAA,OAAA;AAC9B,EAAA,MAAM,SAASA,eAAQ,CAAA,aAAa,CAAE,CAAA,SAAA,GAAY,SAAU,EAAA;AAE5D,EAAM,MAAA,YAAA,GAAeC,cAAQ,MAAM;AAClC,IAAA,OAAA,CAAS,KAAS,IAAA,CAAA,KAAM,MAAQ,EAAA,GAAA,IAAO,EAAO,CAAA,GAAA,WAAA;AAAA,GAC5C,EAAA,CAAC,MAAQ,EAAA,IAAA,EAAM,WAAW,CAAC,CAAA;AAE9B,EAAA,uBAEEC,cAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,kBAAAD,cAAA;AAAA,IAACE,yBAAA;AAAA,IAAA;AAAA,MACA,WAAW,EAAA,IAAA;AAAA,MACX,aAAe,EAAA;AAAA,QACd,SAAW,EAAA,CAAC,CAAM,KAAAC,uBAAA,CAAiB,GAAG,cAAc,CAAA;AAAA,QACpD,QAAU,EAAA,CAAC,CAAM,KAAAC,qBAAA,CAAe,GAAG,YAAY,CAAA;AAAA,QAC/C,GAAI,uBAAuB,EAAC;AAAA,QAC5B,SAAA,EAAW,CAAC,CAAM,KAAA;AACjB,UAAA,IAAI,YAAc,EAAA;AACjB,YAAA,YAAA,CAAa,GAAG,IAAI,CAAA;AAAA;AACrB;AACD,OACD;AAAA,MACA,WAAa,EAAA;AAAA,QACZ,SAAW,EAAAC,4BAAA,CAAsB,OAAS,EAAA,IAAA,CAAK,IAAI,CAAA;AAAA,QACnD,WAAa,EAAA,CAAA;AAAA,QACb,OAAOC,SAAO,CAAA,OAAA;AAAA,QACd,MAAQ,EAAA;AAAA,OACT;AAAA,MACA,MAAQ,EAAA,YAAA;AAAA,MACR,MAAA;AAAA,MAEA,QAAA,kBAAAN,cAAA,CAACO,kCAAc,IAAY,EAAA;AAAA;AAAA,GAE7B,EAAA,CAAA;AAEF","file":"index.js","sourcesContent":["import { colors } from \"@dhis2/ui\";\nimport type { Legend } from \"@hisptz/dhis2-utils\";\nimport {\n\tgeoJSON,\n\ttype LeafletEventHandlerFnMap,\n\ttype LeafletMouseEvent,\n} from \"leaflet\";\nimport { useMemo } from \"react\";\nimport { CircleMarker } from \"react-leaflet\";\nimport {\n\tgetColorFromLegendSet,\n\thighlightFeature,\n\tresetHighlight,\n} from \"../../../../../../utils/map.js\";\nimport {\n\tThematicLayerData,\n\tThematicLayerDataItem,\n} from \"../../../../interfaces/index.js\";\nimport CustomTooltip from \"../CustomTooltip/index.js\";\nimport { MapOrgUnit } from \"../../../../../../interfaces/index.js\";\n\nconst defaultStyle = {\n\tweight: 1,\n};\nconst highlightStyle = {\n\tweight: 2,\n};\n\ninterface LayerData {\n\torgUnit: MapOrgUnit;\n\tdata?: number;\n\tdataItem: ThematicLayerDataItem;\n}\n\nexport default function Bubble({\n\tdata,\n\thighestData,\n\tlegends,\n\tradius,\n\tcustomEventHandlers,\n\tonLayerClick,\n}: {\n\tdata: ThematicLayerData;\n\thighestData: number;\n\tlegends: Legend[];\n\tradius?: { min: number; max: number };\n\tcustomEventHandlers?: LeafletEventHandlerFnMap;\n\tonLayerClick?: (e: LeafletMouseEvent, data: LayerData) => void;\n}) {\n\tconst { orgUnit, data: value } = data ?? {};\n\n\tconst geoJSONObject = orgUnit.geoJSON;\n\tconst center = geoJSON(geoJSONObject).getBounds().getCenter();\n\n\tconst circleRadius = useMemo(() => {\n\t\treturn ((value ?? 0) * (radius?.max ?? 50)) / highestData;\n\t}, [radius, data, highestData]);\n\n\treturn (\n\t\t<>\n\t\t\t<CircleMarker\n\t\t\t\tinteractive\n\t\t\t\teventHandlers={{\n\t\t\t\t\tmouseover: (e) => highlightFeature(e, highlightStyle),\n\t\t\t\t\tmouseout: (e) => resetHighlight(e, defaultStyle),\n\t\t\t\t\t...(customEventHandlers ?? {}),\n\t\t\t\t\tmousedown: (e) => {\n\t\t\t\t\t\tif (onLayerClick) {\n\t\t\t\t\t\t\tonLayerClick(e, data);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t\tpathOptions={{\n\t\t\t\t\tfillColor: getColorFromLegendSet(legends, data.data),\n\t\t\t\t\tfillOpacity: 1,\n\t\t\t\t\tcolor: colors.grey900,\n\t\t\t\t\tweight: 1,\n\t\t\t\t}}\n\t\t\t\tradius={circleRadius}\n\t\t\t\tcenter={center}\n\t\t\t>\n\t\t\t\t<CustomTooltip data={data} />\n\t\t\t</CircleMarker>\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.tsx"],"names":["jsxs","jsx","LegendCardHeader","Divider","getLegendCount","forwardRef"],"mappings":";;;;;;;;;;;;;;;;AAYA,MAAM,YAAA,GAAe,IAAK,CAAA,YAAA,CAAa,OAAS,EAAA;AAAA,EAC/C,QAAU,EAAA;AACX,CAAC,CAAE,CAAA,MAAA;AAEI,SAAS,UAAW,CAAA;AAAA,EAC1B,MAAA;AAAA,EACA;AACD,CAGG,EAAA;AACF,EACC,uBAAAA,eAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,aACd,EAAA,QAAA,EAAA;AAAA,oBAAAC,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACA,SAAU,EAAA,mBAAA;AAAA,QACV,KAAO,EAAA,EAAE,eAAiB,EAAA,MAAA,CAAO,KAAM;AAAA;AAAA,KACxC;AAAA,mCACC,KAAI,EAAA,EAAA,SAAA,EAAU,mBAAqB,EAAA,QAAA,EAAA,CAAA,EAAG,aAAa,MAAO,CAAA,UAAA,IAAc,CAAC,CAAC,MAAM,YAAa,CAAA,MAAA,CAAO,QAAY,IAAA,CAAC,CAAC,CAAG,CAAA,EAAA,CAAA;AAAA,oBACtHA,cAAA,CAAC,SAAI,SAAU,EAAA,mBAAA,EAAqB,cAAI,YAAa,CAAA,KAAA,IAAS,CAAC,CAAC,CAAI,CAAA,CAAA,EAAA;AAAA,GACrE,EAAA,CAAA;AAEF;AAEA,SAAS,gBACR,CAAA;AAAA,EACC,QAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA;AACD,CAAA,EAQA,GACC,EAAA;AACD,EAAA,uBACED,eAAA,CAAA,KAAA,EAAA,EAAI,SAAU,EAAA,aAAA,EAAc,GAC5B,EAAA,QAAA,EAAA;AAAA,oBAAAC,cAAA;AAAA,MAACC,iCAAA;AAAA,MAAA;AAAA,QACA,OAAO,QAAS,CAAA,WAAA;AAAA,QAChB,WAAA;AAAA,QACA;AAAA;AAAA,KACD;AAAA,oBACAD,cAAA,CAACE,UAAQ,EAAA,EAAA,MAAA,EAAQ,GAAK,EAAA,CAAA;AAAA,oBACrBF,cAAA,CAAA,KAAA,EAAA,EAAI,KAAO,EAAA,EAAE,YAAY,CAAE,EAAA,EAAG,SAAU,EAAA,aAAA,EACvC,wBAAO,OAAS,EAAA,YAAY,CAAE,CAAA,GAAA,CAAI,CAAC,MACnC,qBAAAA,cAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QAEA,MAAA;AAAA,QACA,KAAA,EAAOG,qBAAe,CAAA,MAAA,EAAQ,IAAI;AAAA,OAAA;AAAA,MAF7B,CAAA,EAAG,QAAQ,KAAK,CAAA,YAAA;AAAA,KAItB,CACF,EAAA;AAAA,GACD,EAAA,CAAA;AAEF;AAEO,IAAA,wBAAA,GAAQC,iBAAW,gBAAgB","file":"ChoroplethLegend.js","sourcesContent":["import \"../../../styles/legends.css\";\nimport { Divider } from \"@dhis2/ui\";\nimport type { Legend } from \"@hisptz/dhis2-utils\";\nimport
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.tsx"],"names":["jsxs","jsx","LegendCardHeader","Divider","getLegendCount","forwardRef"],"mappings":";;;;;;;;;;;;;;;;AAYA,MAAM,YAAA,GAAe,IAAK,CAAA,YAAA,CAAa,OAAS,EAAA;AAAA,EAC/C,QAAU,EAAA;AACX,CAAC,CAAE,CAAA,MAAA;AAEI,SAAS,UAAW,CAAA;AAAA,EAC1B,MAAA;AAAA,EACA;AACD,CAGG,EAAA;AACF,EACC,uBAAAA,eAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,aACd,EAAA,QAAA,EAAA;AAAA,oBAAAC,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACA,SAAU,EAAA,mBAAA;AAAA,QACV,KAAO,EAAA,EAAE,eAAiB,EAAA,MAAA,CAAO,KAAM;AAAA;AAAA,KACxC;AAAA,mCACC,KAAI,EAAA,EAAA,SAAA,EAAU,mBAAqB,EAAA,QAAA,EAAA,CAAA,EAAG,aAAa,MAAO,CAAA,UAAA,IAAc,CAAC,CAAC,MAAM,YAAa,CAAA,MAAA,CAAO,QAAY,IAAA,CAAC,CAAC,CAAG,CAAA,EAAA,CAAA;AAAA,oBACtHA,cAAA,CAAC,SAAI,SAAU,EAAA,mBAAA,EAAqB,cAAI,YAAa,CAAA,KAAA,IAAS,CAAC,CAAC,CAAI,CAAA,CAAA,EAAA;AAAA,GACrE,EAAA,CAAA;AAEF;AAEA,SAAS,gBACR,CAAA;AAAA,EACC,QAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA;AACD,CAAA,EAQA,GACC,EAAA;AACD,EAAA,uBACED,eAAA,CAAA,KAAA,EAAA,EAAI,SAAU,EAAA,aAAA,EAAc,GAC5B,EAAA,QAAA,EAAA;AAAA,oBAAAC,cAAA;AAAA,MAACC,iCAAA;AAAA,MAAA;AAAA,QACA,OAAO,QAAS,CAAA,WAAA;AAAA,QAChB,WAAA;AAAA,QACA;AAAA;AAAA,KACD;AAAA,oBACAD,cAAA,CAACE,UAAQ,EAAA,EAAA,MAAA,EAAQ,GAAK,EAAA,CAAA;AAAA,oBACrBF,cAAA,CAAA,KAAA,EAAA,EAAI,KAAO,EAAA,EAAE,YAAY,CAAE,EAAA,EAAG,SAAU,EAAA,aAAA,EACvC,wBAAO,OAAS,EAAA,YAAY,CAAE,CAAA,GAAA,CAAI,CAAC,MACnC,qBAAAA,cAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QAEA,MAAA;AAAA,QACA,KAAA,EAAOG,qBAAe,CAAA,MAAA,EAAQ,IAAI;AAAA,OAAA;AAAA,MAF7B,CAAA,EAAG,QAAQ,KAAK,CAAA,YAAA;AAAA,KAItB,CACF,EAAA;AAAA,GACD,EAAA,CAAA;AAEF;AAEO,IAAA,wBAAA,GAAQC,iBAAW,gBAAgB","file":"ChoroplethLegend.js","sourcesContent":["import \"../../../styles/legends.css\";\nimport { Divider } from \"@dhis2/ui\";\nimport type { Legend } from \"@hisptz/dhis2-utils\";\nimport { forwardRef, type LegacyRef } from \"react\";\nimport { getLegendCount } from \"../../../../../../../utils/map.js\";\nimport {\n\tThematicLayerData,\n\tThematicLayerDataItem,\n} from \"../../../../../interfaces\";\nimport LegendCardHeader from \"../../../../LegendArea/components/LegendCardHeader/index.js\";\nimport { sortBy } from \"lodash\";\n\nconst formatNumber = Intl.NumberFormat(\"en-GB\", {\n\tnotation: \"standard\",\n}).format;\n\nexport function LegendItem({\n\tlegend,\n\tvalue,\n}: {\n\tlegend: { startValue: number; endValue: number; color: string };\n\tvalue: number;\n}) {\n\treturn (\n\t\t<div className=\"legend-item\">\n\t\t\t<div\n\t\t\t\tclassName=\"legend-item-color\"\n\t\t\t\tstyle={{ backgroundColor: legend.color }}\n\t\t\t/>\n\t\t\t<div className=\"legend-item-label\">{`${formatNumber(legend.startValue ?? 1)} - ${formatNumber(legend.endValue ?? 1)}`}</div>\n\t\t\t<div className=\"legend-item-value\">{`(${formatNumber(value ?? 0)})`}</div>\n\t\t</div>\n\t);\n}\n\nfunction ChoroplethLegend(\n\t{\n\t\tdataItem,\n\t\tdata,\n\t\tcollapsible,\n\t\tonCollapse,\n\t\tlegends,\n\t}: {\n\t\tdata: ThematicLayerData[];\n\t\tdataItem: ThematicLayerDataItem;\n\t\tname?: string;\n\t\tcollapsible?: boolean;\n\t\tonCollapse?: () => void;\n\t\tlegends: Legend[];\n\t},\n\tref: LegacyRef<HTMLDivElement> | undefined,\n) {\n\treturn (\n\t\t<div className=\"legend-card\" ref={ref}>\n\t\t\t<LegendCardHeader\n\t\t\t\ttitle={dataItem.displayName}\n\t\t\t\tcollapsible={collapsible}\n\t\t\t\tonCollapse={onCollapse}\n\t\t\t/>\n\t\t\t<Divider margin={\"0\"} />\n\t\t\t<div style={{ paddingTop: 4 }} className=\"legend-list\">\n\t\t\t\t{sortBy(legends, \"startValue\").map((legend) => (\n\t\t\t\t\t<LegendItem\n\t\t\t\t\t\tkey={`${legend?.color}-legend-list`}\n\t\t\t\t\t\tlegend={legend}\n\t\t\t\t\t\tvalue={getLegendCount(legend, data)}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport default forwardRef(ChoroplethLegend);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/components/Map/components/MapProvider/components/MapLayerProvider/index.tsx"],"names":["useMapPeriods","useMapOrganisationUnit","useState","useThematicLayers","usePointLayer","useGoogleEngineLayers","useMapEvents","head","compact","useCallback","updatedLayers","useEffect","find","jsx","Center","CircularLoader","jsxs","i18n","MapLayersContext"],"mappings":";;;;;;;;;;;;;;;;AAwBO,SAAS,iBAAkB,CAAA;AAAA,EACjC,MAAA;AAAA,EACA,QAAA;AAAA,EACA;AACD,CAIG,EAAA;AACF,EAAA,MAAM,SAASA,mBAAc,EAAA;AAC7B,EAAA,MAAM,UAAUC,4BAAuB,EAAA;AACvC,EAAA,MAAM,CAAC,aAAe,EAAA,gBAAgB,CAAI,GAAAC,cAAA,CAOxC,EAAE,CAAA;AACJ,EAAA,MAAM,EAAE,cAAA,EAAgB,sBAAwB,EAAA,KAAA,EAAU,GAAAC,yBAAA;AAAA,IACzD;AAAA,MACC;AAAA;AACD,GACD;AACA,EAAA,MAAM,EAAE,aAAA,EAAe,kBAAmB,EAAA,GAAIC,qBAAc,EAAA;AAC5D,EAAA,MAAM,EAAE,cAAA,EAAgB,yBAA0B,EAAA,GACjDC,6BAAsB,EAAA;AACvB,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIH,eAAS,KAAK,CAAA;AAE5C,EAAaI,yBAAA,CAAA;AAAA,IACZ,aAAA,EAAe,CAAC,KAAU,KAAA;AACzB,MAAA,mBAAA,CAAoB,UAAU,KAAK,CAAA;AAAA,KACpC;AAAA,IACA,UAAA,EAAY,CAAC,KAAU,KAAA;AACtB,MAAA,mBAAA,CAAoB,OAAO,KAAK,CAAA;AAAA;AACjC,GACA,CAAA;AAED,EAAA,MAAM,iBAAiB,YAAY;AAClC,IAAA,UAAA,CAAW,IAAI,CAAA;AACf,IAAI,IAAA;AACH,MAAM,MAAA;AAAA,QACL,cAAA;AAAA,QACA,cAAA;AAAA,QACA,WAAA;AAAA,QACA;AAAA,OACG,GAAA,MAAA;AACJ,MAAM,MAAA,uBAAA,GAA0B,MAAM,sBAAuB,CAAA;AAAA,QAC5D,GAAI,kBAAkB;AAAC,OACE,CAAA;AAC1B,MAAM,MAAA,uBAAA,GAA2B,kBAChC,EAAC;AACF,MAAA,MAAM,sBAAsBC,WAAK,CAAA,WAAA,IAAe,EAAE,IAC/C,MAAM,kBAAA;AAAA,QACNA,YAAK,WAAW;AAAA,OAEhB,GAAA,KAAA,CAAA;AACH,MAAM,MAAA,0BAAA,GAA6B,MAAM,yBAA0B,CAAA;AAAA,QAClE,GAAI,qBAAqB;AAAC,OACc,CAAA;AACzC,MAAA,gBAAA;AAAA,QACCC,cAAQ,CAAA;AAAA,UACP,GAAI,2BAA2B,EAAC;AAAA,UAChC,GAAI,2BAA2B,EAAC;AAAA,UAChC,mBAAA;AAAA,UACA,GAAI,8BAA8B;AAAC,SACnC;AAAA,OACF;AAAA,aACQ,CAAQ,EAAA;AAChB,MAAA,OAAA,CAAQ,KAAM,CAAA,CAAA,uBAAA,CAAA,EAA2B,CAAE,CAAA,QAAA,EAAU,CAAA;AAAA;AAEtD,IAAA,UAAA,CAAW,KAAK,CAAA;AAAA,GACjB;AAEA,EAAA,MAAM,WAAc,GAAAC,iBAAA;AAAA,IACnB,CAAC,IAAY,YAAiC,KAAA;AAC7C,MAAA,gBAAA,CAAiB,CAAC,UAAe,KAAA;AAChC,QAAMC,MAAAA,cAAAA,GAAgB,CAAC,GAAG,UAAU,CAAA;AACpC,QAAA,MAAM,aAAaA,cAAc,CAAA,SAAA;AAAA,UAChC,CAAC,KAAA,KAAU,KAAM,CAAA,EAAA,KAAO,YAAa,CAAA;AAAA,SACtC;AACA,QAAA,IAAI,aAAa,CAAG,EAAA;AACnB,UAAO,OAAA,UAAA;AAAA;AAER,QAAIA,UAAAA,CAAAA,cAAAA,EAAe,YAAY,YAAY,CAAA;AAC3C,QAAOA,OAAAA,cAAAA;AAAA,OACP,CAAA;AAAA,KACF;AAAA,IACA;AAAC,GACF;AAEA,EAAAC,eAAA,CAAU,MAAM;AACf,IAAe,cAAA,EAAA,CAAE,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,GAClC,EAAA,CAAC,MAAQ,EAAA,OAAO,CAAC,CAAA;AAEpB,EAAM,MAAA,mBAAA,GAAsB,CAC3B,IAAA,EACA,KACI,KAAA;AACJ,IAAA,MAAM,OAAO,KAAM,CAAA,IAAA;AAEnB,IAAA,MAAM,WAAc,GAAAC,WAAA,CAAK,aAAe,EAAA,CAAC,KAAe,KAAA;AACvD,MAAA,MAAM,iBACL,KAAO,EAAA,IAAA,IAAQ,KAAO,EAAA,QAAA,EAAU,eAAe,KAAO,EAAA,KAAA;AACvD,MAAA,OAAO,cAAmB,KAAA,IAAA;AAAA,KAC1B,CAAA;AAED,IAAA,IAAI,WAAa,EAAA;AAChB,MAAA,WAAA,CAAY,YAAY,EAAI,EAAA;AAAA,QAC3B,GAAG,WAAA;AAAA,QACH,SAAS,IAAS,KAAA;AAAA,OAClB,CAAA;AAAA;AACF,GACD;AAEA,EAAA,IAAI,OAAS,EAAA;AACZ,IAAA,sCACE,KAAI,EAAA,EAAA,KAAA,EAAO,EAAE,MAAA,EAAQ,QAAQ,KAAO,EAAA,MAAA,EACpC,EAAA,QAAA,kBAAAC,cAAA,CAACC,aACA,QAAC,kBAAAD,cAAA,CAAAE,iBAAA,EAAA,EAAe,KAAK,EAAA,IAAA,EAAC,GACvB,CACD,EAAA,CAAA;AAAA;AAGF,EAAA,IAAI,KAAO,EAAA;AACV,IAAA,uBACEF,cAAA,CAAA,KAAA,EAAA,EAAI,KAAO,EAAA,EAAE,MAAQ,EAAA,MAAA,EAAQ,KAAO,EAAA,MAAA,EACpC,EAAA,QAAA,kBAAAA,cAAA,CAACC,SACA,EAAA,EAAA,QAAA,kBAAAE,eAAA,CAAC,IACC,EAAA,EAAA,QAAA,EAAA;AAAA,MAAAC,qBAAA,CAAK,EAAE,OAAO,CAAA;AAAA,MAAE,IAAA;AAAA,MAAG,KAAM,CAAA;AAAA,KAAA,EAC3B,GACD,CACD,EAAA,CAAA;AAAA;AAGF,EACC,uBAAAJ,cAAA;AAAA,IAACK,sBAAiB,CAAA,QAAA;AAAA,IAAjB;AAAA,MACA,KAAO,EAAA,EAAE,MAAQ,EAAA,aAAA,EAAe,WAAY,EAAA;AAAA,MAE3C;AAAA;AAAA,GACF;AAEF","file":"index.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport { Center, CircularLoader } from \"@dhis2/ui\";\nimport { LayersControlEvent } from \"leaflet\";\nimport { compact, find, head, set } from \"lodash\";\nimport
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/components/Map/components/MapProvider/components/MapLayerProvider/index.tsx"],"names":["useMapPeriods","useMapOrganisationUnit","useState","useThematicLayers","usePointLayer","useGoogleEngineLayers","useMapEvents","head","compact","useCallback","updatedLayers","useEffect","find","jsx","Center","CircularLoader","jsxs","i18n","MapLayersContext"],"mappings":"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","file":"index.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport { Center, CircularLoader } from \"@dhis2/ui\";\nimport { LayersControlEvent } from \"leaflet\";\nimport { compact, find, head, set } from \"lodash\";\nimport { type ReactNode, useCallback, useEffect, useState } from \"react\";\nimport { useMapEvents } from \"react-leaflet\";\nimport { MapLayersContext } from \"../../../../state\";\nimport { MapLayerConfig } from \"../../../MapArea/interfaces\";\nimport {\n\tCustomBoundaryLayer,\n\tCustomGoogleEngineLayer,\n\tCustomMapLayer,\n\tCustomPointLayer,\n\tCustomThematicLayer,\n\tThematicLayerConfig,\n} from \"../../../MapLayer/interfaces\";\nimport { useMapOrganisationUnit, useMapPeriods } from \"../../hooks\";\nimport {\n\tuseGoogleEngineLayers,\n\tusePointLayer,\n\tuseThematicLayers,\n} from \"./hooks\";\nimport type { MapAnalyticsOptions } from \"../../../../interfaces\";\n\nexport function MapLayersProvider({\n\tlayers,\n\tchildren,\n\tanalyticsOptions,\n}: {\n\tlayers: MapLayerConfig;\n\tchildren: ReactNode;\n\tanalyticsOptions?: MapAnalyticsOptions;\n}) {\n\tconst period = useMapPeriods();\n\tconst orgUnit = useMapOrganisationUnit();\n\tconst [updatedLayers, setUpdatedLayers] = useState<\n\t\tArray<\n\t\t\t| CustomThematicLayer\n\t\t\t| CustomBoundaryLayer\n\t\t\t| CustomPointLayer\n\t\t\t| CustomGoogleEngineLayer\n\t\t>\n\t>([]);\n\tconst { sanitizeLayers: sanitizeThematicLayers, error } = useThematicLayers(\n\t\t{\n\t\t\tanalyticsOptions,\n\t\t},\n\t);\n\tconst { sanitizeLayer: sanitizePointLayer } = usePointLayer();\n\tconst { sanitizeLayers: sanitizeEarthEngineLayers } =\n\t\tuseGoogleEngineLayers();\n\tconst [loading, setLoading] = useState(false);\n\n\tuseMapEvents({\n\t\toverlayremove: (event) => {\n\t\t\tsetupLayerListeners(\"remove\", event);\n\t\t},\n\t\toverlayadd: (event) => {\n\t\t\tsetupLayerListeners(\"add\", event);\n\t\t},\n\t});\n\n\tconst sanitizeLayers = async () => {\n\t\tsetLoading(true);\n\t\ttry {\n\t\t\tconst {\n\t\t\t\tboundaryLayers,\n\t\t\t\tthematicLayers,\n\t\t\t\tpointLayers,\n\t\t\t\tearthEngineLayers,\n\t\t\t} = layers;\n\t\t\tconst sanitizedThematicLayers = await sanitizeThematicLayers([\n\t\t\t\t...(thematicLayers ?? []),\n\t\t\t] as ThematicLayerConfig[]);\n\t\t\tconst sanitizedBoundaryLayers = (boundaryLayers ??\n\t\t\t\t[]) as CustomBoundaryLayer[];\n\t\t\tconst sanitizedPointLayer = head(pointLayers ?? [])\n\t\t\t\t? await sanitizePointLayer(\n\t\t\t\t\t\thead(pointLayers) as CustomPointLayer,\n\t\t\t\t\t)\n\t\t\t\t: undefined;\n\t\t\tconst sanitizedEarthEngineLayers = await sanitizeEarthEngineLayers([\n\t\t\t\t...(earthEngineLayers ?? []),\n\t\t\t] as unknown as CustomGoogleEngineLayer[]);\n\t\t\tsetUpdatedLayers(\n\t\t\t\tcompact([\n\t\t\t\t\t...(sanitizedBoundaryLayers ?? []),\n\t\t\t\t\t...(sanitizedThematicLayers ?? []),\n\t\t\t\t\tsanitizedPointLayer,\n\t\t\t\t\t...(sanitizedEarthEngineLayers ?? []),\n\t\t\t\t]),\n\t\t\t);\n\t\t} catch (e: any) {\n\t\t\tconsole.error(`Error sanitizing layers`, e.toString());\n\t\t}\n\t\tsetLoading(false);\n\t};\n\n\tconst updateLayer = useCallback(\n\t\t(id: string, updatedLayer: CustomMapLayer) => {\n\t\t\tsetUpdatedLayers((prevLayers) => {\n\t\t\t\tconst updatedLayers = [...prevLayers];\n\t\t\t\tconst layerIndex = updatedLayers.findIndex(\n\t\t\t\t\t(layer) => layer.id === updatedLayer.id,\n\t\t\t\t);\n\t\t\t\tif (layerIndex < 0) {\n\t\t\t\t\treturn prevLayers;\n\t\t\t\t}\n\t\t\t\tset(updatedLayers, layerIndex, updatedLayer);\n\t\t\t\treturn updatedLayers;\n\t\t\t});\n\t\t},\n\t\t[],\n\t);\n\n\tuseEffect(() => {\n\t\tsanitizeLayers().catch(console.error);\n\t}, [period, orgUnit]);\n\n\tconst setupLayerListeners = (\n\t\ttype: \"add\" | \"remove\",\n\t\tevent: LayersControlEvent,\n\t) => {\n\t\tconst name = event.name;\n\n\t\tconst layerConfig = find(updatedLayers, (layer: any) => {\n\t\t\tconst nameFromConfig =\n\t\t\t\tlayer?.name ?? layer?.dataItem?.displayname ?? layer?.label;\n\t\t\treturn nameFromConfig === name;\n\t\t});\n\n\t\tif (layerConfig) {\n\t\t\tupdateLayer(layerConfig.id, {\n\t\t\t\t...layerConfig,\n\t\t\t\tenabled: type === \"add\",\n\t\t\t});\n\t\t}\n\t};\n\n\tif (loading) {\n\t\treturn (\n\t\t\t<div style={{ height: \"100%\", width: \"100%\" }}>\n\t\t\t\t<Center>\n\t\t\t\t\t<CircularLoader small />\n\t\t\t\t</Center>\n\t\t\t</div>\n\t\t);\n\t}\n\tif (error) {\n\t\treturn (\n\t\t\t<div style={{ height: \"100%\", width: \"100%\" }}>\n\t\t\t\t<Center>\n\t\t\t\t\t<h4>\n\t\t\t\t\t\t{i18n.t(\"Error\")}: {error.message}\n\t\t\t\t\t</h4>\n\t\t\t\t</Center>\n\t\t\t</div>\n\t\t);\n\t}\n\treturn (\n\t\t<MapLayersContext.Provider\n\t\t\tvalue={{ layers: updatedLayers, updateLayer }}\n\t\t>\n\t\t\t{children}\n\t\t</MapLayersContext.Provider>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Map/components/MapProvider/index.tsx"],"names":["useState","useDataQuery","useEffect","getOrgUnitsSelection","sanitizeOrgUnits","toGeoJson","orgUnits","compact","periods","PeriodUtility","error","jsx","Center","CircularLoader","jsxs","i18n","isEmpty","MapOrgUnitContext","MapPeriodContext"],"mappings":";;;;;;;;;;;;;;;;AAUA,MAAM,aAAgB,GAAA;AAAA,EACrB,UAAY,EAAA;AAAA,IACX,QAAU,EAAA,aAAA;AAAA,IACV,MAAQ,EAAA,CAAC,EAAE,UAAA,EAAuB,MAAA;AAAA,MACjC,EAAI,EAAA,CAAA,GAAA,EAAM,UAAY,EAAA,IAAA,CAAK,GAAG,CAAC,CAAA;AAAA,KAChC;AAAA,GACD;AAAA,EACA,SAAW,EAAA;AAAA,IACV,QAAU,EAAA,WAAA;AAAA,IACV,MAAQ,EAAA,CAAC,EAAE,UAAA,EAAY,WAAsB,MAAA;AAAA,MAC5C,SAAW,EAAA;AAAA,QACV,CAAM,GAAA,EAAA,UAAA,CAAW,IAAK,CAAA,GAAG,CAAC,CAAA,CAAA;AAAA,QAC1B,CAAM,GAAA,EAAA,SAAA,CAAU,IAAK,CAAA,GAAG,CAAC,CAAA;AAAA,OAC1B;AAAA,MACA,QAAU,EAAA,IAAA;AAAA,MACV,aAAe,EAAA;AAAA,KAChB;AAAA;AAEF,CAAA;AAEO,SAAS,WAAY,CAAA;AAAA,EAC3B,QAAA;AAAA,EACA,gBAAA;AAAA,EACA;AACD,CAAqB,EAAA;AACpB,EAAA,MAAM,CAAC,QAAU,EAAA,WAAW,CAAI,GAAAA,cAAA,CAAuB,EAAE,CAAA;AACzD,EAAA,MAAM,CAAC,OAAS,EAAA,UAAU,CAAI,GAAAA,cAAA,CAAuB,EAAE,CAAA;AACvD,EAAA,MAAM,EAAE,OAAS,EAAA,OAAA,EAAS,KAAM,EAAA,GAAIC,wBAAa,aAAe,EAAA;AAAA,IAC/D,IAAM,EAAA;AAAA,GACN,CAAA;AAED,EAAAC,eAAA,CAAU,MAAM;AACf,IAAA,eAAe,WAAc,GAAA;AAC5B,MAAM,MAAA,aAAA,GAAgBC,2BAAqB,gBAAgB,CAAA;AAC3D,MAAM,MAAA,IAAA,GAAO,MAAM,OAAQ,CAAA;AAAA,QAC1B,UAAY,EAAA,aAAA;AAAA,QACZ,WAAW,eAAiB,EAAA;AAAA,OAC5B,CAAA;AACD,MAAA,MAAM,EAAE,SAAA,EAAW,UAAW,EAAA,GAAK,QAAgB,EAAC;AACpD,MAAM,MAAA,WAAA,GAAcC,sBAAiB,CAAA,SAAA,EAAW,QAAQ,CAAA;AACxD,MAAA,MAAM,cAAiB,GAAAC,eAAA;AAAA,QACtB,UAAW,CAAA,MAAA,CAAO,CAAC,KAAA,KAAe,MAAM,EAAE;AAAA,OAC3C;AACA,MAAA,MAAMC,SAAyB,GAAAC,cAAA;AAAA,QAC9B,WAAA,CAAY,GAAI,CAAA,CAAC,OAAiB,KAAA;AACjC,UAAA,MAAM,gBAAqB,cAAgB,EAAA,IAAA;AAAA,YAC1C,CAAC,OAAA,KAAiB,OAAQ,CAAA,UAAA,CAAW,OAAO,OAAQ,CAAA;AAAA,WACrD;AAEA,UAAA,IAAI,CAAC,aAAe,EAAA;AACnB,YAAA;AAAA;AAED,UAAO,OAAA;AAAA,YACN,GAAG,OAAA;AAAA,YACH,OAAS,EAAA,aAAA;AAAA,YACT,QAAQ,EAAC;AAAA,YACT,KAAA,EAAO,cAAc,UAAW,CAAA;AAAA,WACjC;AAAA,SACA;AAAA,OACF;AACA,MAAA,MAAM,SACL,GAAA,SAAA,EAAW,QAAU,EAAA,UAAA,EAAY,MAAM,eAAiB,EAAA,OAAA;AACzD,MAAA,MAAMC,WAAU,SAAU,CAAA,GAAA;AAAA,QAAI,CAAC,EAAA,KAC9BC,wBAAc,CAAA,aAAA,CAAc,EAAE;AAAA,OAC/B;AACA,MAAA,UAAA,CAAWD,QAAO,CAAA;AAClB,MAAA,WAAA,CAAYF,SAAQ,CAAA;AAAA;
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Map/components/MapProvider/index.tsx"],"names":["useState","useDataQuery","useEffect","getOrgUnitsSelection","sanitizeOrgUnits","toGeoJson","orgUnits","compact","periods","PeriodUtility","error","jsx","Center","CircularLoader","jsxs","i18n","isEmpty","MapOrgUnitContext","MapPeriodContext"],"mappings":"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","file":"index.js","sourcesContent":["import { useDataQuery } from \"@dhis2/app-runtime\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { Center, CircularLoader } from \"@dhis2/ui\";\nimport { compact, isEmpty } from \"lodash\";\nimport { useEffect, useState } from \"react\";\nimport { MapOrgUnit, MapProviderProps } from \"../../interfaces\";\nimport { MapOrgUnitContext, MapPeriodContext } from \"../../state\";\nimport { getOrgUnitsSelection, sanitizeOrgUnits, toGeoJson } from \"../../utils\";\nimport { BasePeriod, PeriodUtility } from \"@hisptz/dhis2-utils\";\n\nconst boundaryQuery = {\n\tboundaries: {\n\t\tresource: \"geoFeatures\",\n\t\tparams: ({ orgUnitIds }: any) => ({\n\t\t\tou: `ou:${orgUnitIds?.join(\";\")}`,\n\t\t}),\n\t},\n\tanalytics: {\n\t\tresource: \"analytics\",\n\t\tparams: ({ orgUnitIds, periodIds }: any) => ({\n\t\t\tdimension: [\n\t\t\t\t`ou:${orgUnitIds.join(\";\")}`,\n\t\t\t\t`pe:${periodIds.join(\";\")}`,\n\t\t\t],\n\t\t\tskipData: true,\n\t\t\thierarchyMeta: true,\n\t\t}),\n\t},\n};\n\nexport function MapProvider({\n\tchildren,\n\torgUnitSelection,\n\tperiodSelection,\n}: MapProviderProps) {\n\tconst [orgUnits, setOrgUnits] = useState<MapOrgUnit[]>([]);\n\tconst [periods, setPeriods] = useState<BasePeriod[]>([]);\n\tconst { refetch, loading, error } = useDataQuery(boundaryQuery, {\n\t\tlazy: true,\n\t});\n\n\tuseEffect(() => {\n\t\tasync function getOrgUnits() {\n\t\t\tconst rawOrgUnitIds = getOrgUnitsSelection(orgUnitSelection);\n\t\t\tconst data = await refetch({\n\t\t\t\torgUnitIds: rawOrgUnitIds,\n\t\t\t\tperiodIds: periodSelection?.periods,\n\t\t\t});\n\t\t\tconst { analytics, boundaries } = (data as any) ?? {};\n\t\t\tconst rawOrgUnits = sanitizeOrgUnits(analytics?.metaData);\n\t\t\tconst geoJSONObjects = toGeoJson(\n\t\t\t\tboundaries.filter((bound: any) => bound.co),\n\t\t\t);\n\t\t\tconst orgUnits: MapOrgUnit[] = compact(\n\t\t\t\trawOrgUnits.map((orgUnit: any) => {\n\t\t\t\t\tconst geoJSONObject: any = geoJSONObjects?.find(\n\t\t\t\t\t\t(geoJSON: any) => geoJSON.properties.id === orgUnit.id,\n\t\t\t\t\t);\n\n\t\t\t\t\tif (!geoJSONObject) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...orgUnit,\n\t\t\t\t\t\tgeoJSON: geoJSONObject,\n\t\t\t\t\t\tbounds: [],\n\t\t\t\t\t\tlevel: geoJSONObject.properties.level,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t);\n\t\t\tconst periodIds =\n\t\t\t\tanalytics?.metaData?.dimensions?.pe ?? periodSelection?.periods;\n\t\t\tconst periods = periodIds.map((pe: string) =>\n\t\t\t\tPeriodUtility.getPeriodById(pe),\n\t\t\t);\n\t\t\tsetPeriods(periods);\n\t\t\tsetOrgUnits(orgUnits);\n\t\t}\n\t\tgetOrgUnits().catch((error) => console.log(error));\n\t}, [orgUnitSelection, refetch, periodSelection?.periods]);\n\n\tif (loading) {\n\t\treturn (\n\t\t\t<div style={{ height: \"100%\", width: \"100%\" }}>\n\t\t\t\t<Center>\n\t\t\t\t\t<CircularLoader small />\n\t\t\t\t</Center>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (error) {\n\t\treturn (\n\t\t\t<div style={{ height: \"100%\", width: \"100%\" }}>\n\t\t\t\t<Center>\n\t\t\t\t\t<h4>\n\t\t\t\t\t\t{i18n.t(\"Error\")}: {error.message}\n\t\t\t\t\t</h4>\n\t\t\t\t</Center>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (!isEmpty(orgUnits)) {\n\t\treturn (\n\t\t\t<MapOrgUnitContext.Provider value={{ orgUnitSelection, orgUnits }}>\n\t\t\t\t<MapPeriodContext.Provider\n\t\t\t\t\tvalue={{ ...periodSelection, periods }}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</MapPeriodContext.Provider>\n\t\t\t</MapOrgUnitContext.Provider>\n\t\t);\n\t}\n\n\treturn null;\n}\n"]}
|
package/dist/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.tsx"],"names":["useWatch","useState","type","defaultClasses","defaultColorScaleName","useMemo","jsx","FormProvider","TypeField","Controller","i18n","jsxs","Fragment","InputField","Button","IndicatorSelectorModal","compact","Field","Radio","LegendSetSelector","CustomLegend","RadiusField"],"mappings":"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","file":"ThematicLayerConfiguration.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport { Button, Field, InputField, Radio } from \"@dhis2/ui\";\nimport { Controller, FormProvider, useWatch } from \"react-hook-form\";\nimport React, { useMemo, useState } from \"react\";\nimport { compact } from \"lodash\";\nimport { defaultClasses, defaultColorScaleName } from \"../../utils/colors.js\";\nimport IndicatorSelectorModal from \"./components/IndicatorSelectorModal/index.js\";\nimport { LegendSetSelector } from \"./components/LegendSetSelector/index.js\";\nimport { CustomLegend } from \"./components/CustomLegend/index.js\";\nimport { ThematicLayerConfigurationProps } from \"./types/index.js\";\nimport { RadiusField } from \"./components/RadiusField.js\";\nimport { TypeField } from \"./components/TypeField.js\";\n\nexport function ThematicLayerConfiguration({\n\texclude,\n\tform,\n}: ThematicLayerConfigurationProps) {\n\tconst [type, legendSet, dataItemId] = useWatch({\n\t\tcontrol: form.control,\n\t\tname: [\"type\", \"dataItem.legendSet\", \"dataItem.id\"],\n\t});\n\tconst [legendType, setLegendType] = useState(\n\t\tlegendSet ? \"legendSet\" : \"custom\",\n\t);\n\tconst [dataSelectorOpen, setDataSelectorOpen] = useState(false);\n\n\tconst onLegendTypeChange =\n\t\t(type: string) =>\n\t\t({ value }: { value?: string }) => {\n\t\t\tif (type === \"custom\") {\n\t\t\t\tform.setValue(\"dataItem.legendSet\", undefined);\n\t\t\t\tform.setValue(\"dataItem.legendConfig.scale\", defaultClasses);\n\t\t\t\tform.setValue(\n\t\t\t\t\t\"dataItem.legendConfig.colorClass\",\n\t\t\t\t\tdefaultColorScaleName,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tform.setValue(\"dataItem.legendConfig\", undefined);\n\t\t\t}\n\t\t\tif (value) {\n\t\t\t\tsetLegendType(value);\n\t\t\t}\n\t\t};\n\tconst disabled = useMemo(\n\t\t() => exclude?.filter((indicator) => indicator !== dataItemId) ?? [],\n\t\t[dataItemId, exclude],\n\t);\n\treturn (\n\t\t<FormProvider {...form}>\n\t\t\t<div style={{ display: \"flex\", flexDirection: \"column\", gap: 16 }}>\n\t\t\t\t<TypeField />\n\t\t\t\t<Controller\n\t\t\t\t\trules={{\n\t\t\t\t\t\tvalidate: {\n\t\t\t\t\t\t\trequired: (value: { id: string; name: string }) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\tBoolean(value?.id) ||\n\t\t\t\t\t\t\t\t\ti18n.t(\"A data item is required\")\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}}\n\t\t\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\talignItems: \"flex-end\",\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tonClick={() => setDataSelectorOpen(true)}\n\t\t\t\t\t\t\t\t\tstyle={{ flex: 1 }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<InputField\n\t\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\t\t\t\t\t\tvalidationText={\n\t\t\t\t\t\t\t\t\t\t\tfieldState.error?.message\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t\t\t\tinputWidth=\"100%\"\n\t\t\t\t\t\t\t\t\t\tlabel={i18n.t(\"Data Item\")}\n\t\t\t\t\t\t\t\t\t\tvalue={field.value?.displayName}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tonClick={() => setDataSelectorOpen(true)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{field.value?.id\n\t\t\t\t\t\t\t\t\t\t? i18n.t(\"Change\")\n\t\t\t\t\t\t\t\t\t\t: i18n.t(\"Select\")}\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{dataSelectorOpen && (\n\t\t\t\t\t\t\t\t<IndicatorSelectorModal\n\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\tonUpdate={(values: any[]) => {\n\t\t\t\t\t\t\t\t\t\tconst [indicator] = values ?? [];\n\t\t\t\t\t\t\t\t\t\tfield.onChange({\n\t\t\t\t\t\t\t\t\t\t\tid: indicator.id,\n\t\t\t\t\t\t\t\t\t\t\tdisplayName: indicator.displayName,\n\t\t\t\t\t\t\t\t\t\t\ttype: \"indicator\",\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tonClose={() => setDataSelectorOpen(false)}\n\t\t\t\t\t\t\t\t\thide={!dataSelectorOpen}\n\t\t\t\t\t\t\t\t\tselected={compact([\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tid: field.value?.id,\n\t\t\t\t\t\t\t\t\t\t\tdisplayName:\n\t\t\t\t\t\t\t\t\t\t\t\tfield.value?.displayName,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t])}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t\tname={\"dataItem\"}\n\t\t\t\t/>\n\t\t\t\t<div>\n\t\t\t\t\t<Field label={i18n.t(\"Legend\")}>\n\t\t\t\t\t\t<div className=\"column gap-8\">\n\t\t\t\t\t\t\t<div className=\"row gap-16\">\n\t\t\t\t\t\t\t\t<Radio\n\t\t\t\t\t\t\t\t\tchecked={legendType === \"legendSet\"}\n\t\t\t\t\t\t\t\t\tlabel={i18n.t(\"Legend set\")}\n\t\t\t\t\t\t\t\t\tname=\"legendSet\"\n\t\t\t\t\t\t\t\t\tvalue=\"legendSet\"\n\t\t\t\t\t\t\t\t\tonChange={onLegendTypeChange(\"legendSet\")}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Radio\n\t\t\t\t\t\t\t\t\tchecked={legendType === \"custom\"}\n\t\t\t\t\t\t\t\t\tlabel={i18n.t(\"Custom legend\")}\n\t\t\t\t\t\t\t\t\tname=\"custom\"\n\t\t\t\t\t\t\t\t\tvalue=\"custom\"\n\t\t\t\t\t\t\t\t\tonChange={onLegendTypeChange(\"custom\")}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t{legendType === \"legendSet\" && (\n\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\trules={{\n\t\t\t\t\t\t\t\t\t\t\trequired: i18n.t(\n\t\t\t\t\t\t\t\t\t\t\t\t\"Legend set is required\",\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tname=\"dataItem.legendSet\"\n\t\t\t\t\t\t\t\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t\t\t\t\t\t\t\t<LegendSetSelector\n\t\t\t\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t\t\t\tselected={field.value}\n\t\t\t\t\t\t\t\t\t\t\t\t{...field}\n\t\t\t\t\t\t\t\t\t\t\t\t{...fieldState}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{legendType === \"custom\" && <CustomLegend />}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Field>\n\t\t\t\t\t{type === \"bubble\" && (\n\t\t\t\t\t\t<Field label={i18n.t(\"Radius\")}>\n\t\t\t\t\t\t\t<RadiusField />\n\t\t\t\t\t\t</Field>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</FormProvider>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.tsx"],"names":["useWatch","useState","type","defaultClasses","defaultColorScaleName","useMemo","jsx","FormProvider","TypeField","Controller","i18n","jsxs","Fragment","InputField","Button","IndicatorSelectorModal","compact","Field","Radio","LegendSetSelector","CustomLegend","RadiusField"],"mappings":"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","file":"ThematicLayerConfiguration.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport { Button, Field, InputField, Radio } from \"@dhis2/ui\";\nimport { Controller, FormProvider, useWatch } from \"react-hook-form\";\nimport { useMemo, useState } from \"react\";\nimport { compact } from \"lodash\";\nimport { defaultClasses, defaultColorScaleName } from \"../../utils/colors.js\";\nimport IndicatorSelectorModal from \"./components/IndicatorSelectorModal/index.js\";\nimport { LegendSetSelector } from \"./components/LegendSetSelector/index.js\";\nimport { CustomLegend } from \"./components/CustomLegend/index.js\";\nimport { ThematicLayerConfigurationProps } from \"./types/index.js\";\nimport { RadiusField } from \"./components/RadiusField.js\";\nimport { TypeField } from \"./components/TypeField.js\";\n\nexport function ThematicLayerConfiguration({\n\texclude,\n\tform,\n}: ThematicLayerConfigurationProps) {\n\tconst [type, legendSet, dataItemId] = useWatch({\n\t\tcontrol: form.control,\n\t\tname: [\"type\", \"dataItem.legendSet\", \"dataItem.id\"],\n\t});\n\tconst [legendType, setLegendType] = useState(\n\t\tlegendSet ? \"legendSet\" : \"custom\",\n\t);\n\tconst [dataSelectorOpen, setDataSelectorOpen] = useState(false);\n\n\tconst onLegendTypeChange =\n\t\t(type: string) =>\n\t\t({ value }: { value?: string }) => {\n\t\t\tif (type === \"custom\") {\n\t\t\t\tform.setValue(\"dataItem.legendSet\", undefined);\n\t\t\t\tform.setValue(\"dataItem.legendConfig.scale\", defaultClasses);\n\t\t\t\tform.setValue(\n\t\t\t\t\t\"dataItem.legendConfig.colorClass\",\n\t\t\t\t\tdefaultColorScaleName,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tform.setValue(\"dataItem.legendConfig\", undefined);\n\t\t\t}\n\t\t\tif (value) {\n\t\t\t\tsetLegendType(value);\n\t\t\t}\n\t\t};\n\tconst disabled = useMemo(\n\t\t() => exclude?.filter((indicator) => indicator !== dataItemId) ?? [],\n\t\t[dataItemId, exclude],\n\t);\n\treturn (\n\t\t<FormProvider {...form}>\n\t\t\t<div style={{ display: \"flex\", flexDirection: \"column\", gap: 16 }}>\n\t\t\t\t<TypeField />\n\t\t\t\t<Controller\n\t\t\t\t\trules={{\n\t\t\t\t\t\tvalidate: {\n\t\t\t\t\t\t\trequired: (value: { id: string; name: string }) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\tBoolean(value?.id) ||\n\t\t\t\t\t\t\t\t\ti18n.t(\"A data item is required\")\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}}\n\t\t\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\talignItems: \"flex-end\",\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tonClick={() => setDataSelectorOpen(true)}\n\t\t\t\t\t\t\t\t\tstyle={{ flex: 1 }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<InputField\n\t\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\t\t\t\t\t\tvalidationText={\n\t\t\t\t\t\t\t\t\t\t\tfieldState.error?.message\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t\t\t\tinputWidth=\"100%\"\n\t\t\t\t\t\t\t\t\t\tlabel={i18n.t(\"Data Item\")}\n\t\t\t\t\t\t\t\t\t\tvalue={field.value?.displayName}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tonClick={() => setDataSelectorOpen(true)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{field.value?.id\n\t\t\t\t\t\t\t\t\t\t? i18n.t(\"Change\")\n\t\t\t\t\t\t\t\t\t\t: i18n.t(\"Select\")}\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{dataSelectorOpen && (\n\t\t\t\t\t\t\t\t<IndicatorSelectorModal\n\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\tonUpdate={(values: any[]) => {\n\t\t\t\t\t\t\t\t\t\tconst [indicator] = values ?? [];\n\t\t\t\t\t\t\t\t\t\tfield.onChange({\n\t\t\t\t\t\t\t\t\t\t\tid: indicator.id,\n\t\t\t\t\t\t\t\t\t\t\tdisplayName: indicator.displayName,\n\t\t\t\t\t\t\t\t\t\t\ttype: \"indicator\",\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tonClose={() => setDataSelectorOpen(false)}\n\t\t\t\t\t\t\t\t\thide={!dataSelectorOpen}\n\t\t\t\t\t\t\t\t\tselected={compact([\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tid: field.value?.id,\n\t\t\t\t\t\t\t\t\t\t\tdisplayName:\n\t\t\t\t\t\t\t\t\t\t\t\tfield.value?.displayName,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t])}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t\tname={\"dataItem\"}\n\t\t\t\t/>\n\t\t\t\t<div>\n\t\t\t\t\t<Field label={i18n.t(\"Legend\")}>\n\t\t\t\t\t\t<div className=\"column gap-8\">\n\t\t\t\t\t\t\t<div className=\"row gap-16\">\n\t\t\t\t\t\t\t\t<Radio\n\t\t\t\t\t\t\t\t\tchecked={legendType === \"legendSet\"}\n\t\t\t\t\t\t\t\t\tlabel={i18n.t(\"Legend set\")}\n\t\t\t\t\t\t\t\t\tname=\"legendSet\"\n\t\t\t\t\t\t\t\t\tvalue=\"legendSet\"\n\t\t\t\t\t\t\t\t\tonChange={onLegendTypeChange(\"legendSet\")}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Radio\n\t\t\t\t\t\t\t\t\tchecked={legendType === \"custom\"}\n\t\t\t\t\t\t\t\t\tlabel={i18n.t(\"Custom legend\")}\n\t\t\t\t\t\t\t\t\tname=\"custom\"\n\t\t\t\t\t\t\t\t\tvalue=\"custom\"\n\t\t\t\t\t\t\t\t\tonChange={onLegendTypeChange(\"custom\")}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t{legendType === \"legendSet\" && (\n\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\trules={{\n\t\t\t\t\t\t\t\t\t\t\trequired: i18n.t(\n\t\t\t\t\t\t\t\t\t\t\t\t\"Legend set is required\",\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tname=\"dataItem.legendSet\"\n\t\t\t\t\t\t\t\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t\t\t\t\t\t\t\t<LegendSetSelector\n\t\t\t\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t\t\t\tselected={field.value}\n\t\t\t\t\t\t\t\t\t\t\t\t{...field}\n\t\t\t\t\t\t\t\t\t\t\t\t{...fieldState}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{legendType === \"custom\" && <CustomLegend />}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Field>\n\t\t\t\t\t{type === \"bubble\" && (\n\t\t\t\t\t\t<Field label={i18n.t(\"Radius\")}>\n\t\t\t\t\t\t\t<RadiusField />\n\t\t\t\t\t\t</Field>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</FormProvider>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/index.tsx"],"names":["useState","useRef","getColorPalette","getColorScale","defaultColorScale","scale","Fragment","jsx","cx","styles","ColorScale","defaultColorScaleName","Popover","colorScales"],"mappings":";;;;;;;;;;;;;;;;AAaA,MAAM,mBAAmB,CAAC;AAAA,EACzB,UAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA;AACD,CAMM,KAAA;AACL,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIA,eAAS,KAAK,CAAA;AAC1C,EAAM,MAAA,SAAA,GAAYC,aAAuB,IAAI,CAAA;AAC7C,EAAM,MAAA,OAAA,GAAUC,yBAAgB,CAAA,UAAA,EAAY,KAAK,CAAA;AACjD,EAAA,MAAM,IAAO,GAAA,OAAA,CAAQ,KAAM,CAAA,GAAG,CAAE,CAAA,MAAA;AAChC,EAAM,MAAA,KAAA,GAAQC,uBAAc,CAAA,OAAO,CAAK,IAAAC,2BAAA;AAExC,EAAM,MAAA,kBAAA,GAAqB,CAACC,MAAkB,KAAA;AAC7C,IAAA,QAAA,CAASA,MAAK,CAAA;AACd,IAAA,SAAA,CAAU,KAAK,CAAA;AAAA,GAChB;AAEA,EAAA,uCACEC,cACA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAACC,cAAA,CAAA,KAAA,EAAA,EAAI,KAAK,SAAW,EAAA,SAAA,EAAWC,oBAAGC,uBAAO,CAAA,UAAA,EAAY,SAAS,CAC9D,EAAA,QAAA,kBAAAF,cAAA;AAAA,MAACG,2BAAA;AAAA,MAAA;AAAA,QACA,IAAA;AAAA,QACA,OAAO,KAAS,IAAAC,+BAAA;AAAA,QAChB,OAAA,EAAS,MAAM,SAAA,CAAU,IAAI,CAAA;AAAA,QAC7B,OAAO,KAAS,IAAA;AAAA;AAAA,KAElB,EAAA,CAAA;AAAA,IACC,MACA,oBAAAJ,cAAA;AAAA,MAACK,UAAA;AAAA,MAAA;AAAA,QACA,SAAW,EAAA,SAAA;AAAA,QACX,KAAO,EAAA,KAAA;AAAA,QACP,SAAU,EAAA,OAAA;AAAA,QACV,cAAA,EAAgB,MAAM,SAAA,CAAU,KAAK,CAAA;AAAA,QAErC,QAAA,kBAAAL,cAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACA,WAAWE,uBAAO,CAAA,OAAA;AAAA,YAClB,KAAO,EAAA;AAAA,cACN,KAAA,EAAO,QAAQ,EAAM,IAAA,GAAA;AAAA,cACrB,MAAQ,EAAA,MAAA;AAAA,cACR,QAAU,EAAA;AAAA,aACX;AAAA,YAEC,QAAY,EAAAI,qBAAA,CAAA,GAAA,CAAI,CAACR,MAAAA,EAAO,KACxB,qBAAAE,cAAA;AAAA,cAACG,2BAAA;AAAA,cAAA;AAAA,gBAEA,KAAOL,EAAAA,MAAAA;AAAA,gBACP,IAAA;AAAA,gBACA,OAAS,EAAA,kBAAA;AAAA,gBACT,OAAO,KAAS,IAAA;AAAA,eAAA;AAAA,cAJX;AAAA,aAMN;AAAA;AAAA;AACF;AAAA;AACD,GAEF,EAAA,CAAA;AAEF,CAAA;AAEA,IAAO,wBAAQ,GAAA","file":"index.js","sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/index.tsx"],"names":["useState","useRef","getColorPalette","getColorScale","defaultColorScale","scale","Fragment","jsx","cx","styles","ColorScale","defaultColorScaleName","Popover","colorScales"],"mappings":";;;;;;;;;;;;;;;;AAaA,MAAM,mBAAmB,CAAC;AAAA,EACzB,UAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA;AACD,CAMM,KAAA;AACL,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIA,eAAS,KAAK,CAAA;AAC1C,EAAM,MAAA,SAAA,GAAYC,aAAuB,IAAI,CAAA;AAC7C,EAAM,MAAA,OAAA,GAAUC,yBAAgB,CAAA,UAAA,EAAY,KAAK,CAAA;AACjD,EAAA,MAAM,IAAO,GAAA,OAAA,CAAQ,KAAM,CAAA,GAAG,CAAE,CAAA,MAAA;AAChC,EAAM,MAAA,KAAA,GAAQC,uBAAc,CAAA,OAAO,CAAK,IAAAC,2BAAA;AAExC,EAAM,MAAA,kBAAA,GAAqB,CAACC,MAAkB,KAAA;AAC7C,IAAA,QAAA,CAASA,MAAK,CAAA;AACd,IAAA,SAAA,CAAU,KAAK,CAAA;AAAA,GAChB;AAEA,EAAA,uCACEC,cACA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAACC,cAAA,CAAA,KAAA,EAAA,EAAI,KAAK,SAAW,EAAA,SAAA,EAAWC,oBAAGC,uBAAO,CAAA,UAAA,EAAY,SAAS,CAC9D,EAAA,QAAA,kBAAAF,cAAA;AAAA,MAACG,2BAAA;AAAA,MAAA;AAAA,QACA,IAAA;AAAA,QACA,OAAO,KAAS,IAAAC,+BAAA;AAAA,QAChB,OAAA,EAAS,MAAM,SAAA,CAAU,IAAI,CAAA;AAAA,QAC7B,OAAO,KAAS,IAAA;AAAA;AAAA,KAElB,EAAA,CAAA;AAAA,IACC,MACA,oBAAAJ,cAAA;AAAA,MAACK,UAAA;AAAA,MAAA;AAAA,QACA,SAAW,EAAA,SAAA;AAAA,QACX,KAAO,EAAA,KAAA;AAAA,QACP,SAAU,EAAA,OAAA;AAAA,QACV,cAAA,EAAgB,MAAM,SAAA,CAAU,KAAK,CAAA;AAAA,QAErC,QAAA,kBAAAL,cAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACA,WAAWE,uBAAO,CAAA,OAAA;AAAA,YAClB,KAAO,EAAA;AAAA,cACN,KAAA,EAAO,QAAQ,EAAM,IAAA,GAAA;AAAA,cACrB,MAAQ,EAAA,MAAA;AAAA,cACR,QAAU,EAAA;AAAA,aACX;AAAA,YAEC,QAAY,EAAAI,qBAAA,CAAA,GAAA,CAAI,CAACR,MAAAA,EAAO,KACxB,qBAAAE,cAAA;AAAA,cAACG,2BAAA;AAAA,cAAA;AAAA,gBAEA,KAAOL,EAAAA,MAAAA;AAAA,gBACP,IAAA;AAAA,gBACA,OAAS,EAAA,kBAAA;AAAA,gBACT,OAAO,KAAS,IAAA;AAAA,eAAA;AAAA,cAJX;AAAA,aAMN;AAAA;AAAA;AACF;AAAA;AACD,GAEF,EAAA,CAAA;AAEF,CAAA;AAEA,IAAO,wBAAQ,GAAA","file":"index.js","sourcesContent":["import { Fragment, useRef, useState } from \"react\";\nimport { Popover } from \"@dhis2/ui\";\nimport cx from \"classnames\";\nimport ColorScale from \"./components/ColorScale/index.js\";\nimport styles from \"./styles/ColorScaleSelect.module.css\";\nimport {\n\tcolorScales,\n\tdefaultColorScale,\n\tdefaultColorScaleName,\n\tgetColorPalette,\n\tgetColorScale,\n} from \"./utils/colors.js\";\n\nconst ColorScaleSelect = ({\n\tcolorClass,\n\tcount,\n\twidth,\n\tonChange,\n\tclassName,\n}: {\n\tclassName?: string;\n\tcount: number;\n\twidth: number;\n\tonChange: (palette: string) => void;\n\tcolorClass: string;\n}) => {\n\tconst [isOpen, setIsOpen] = useState(false);\n\tconst anchorRef = useRef<HTMLDivElement>(null);\n\tconst palette = getColorPalette(colorClass, count);\n\tconst bins = palette.split(\",\").length;\n\tconst scale = getColorScale(palette) ?? defaultColorScale;\n\n\tconst onColorScaleSelect = (scale: string) => {\n\t\tonChange(scale);\n\t\tsetIsOpen(false);\n\t};\n\n\treturn (\n\t\t<Fragment>\n\t\t\t<div ref={anchorRef} className={cx(styles.colorScale, className)}>\n\t\t\t\t<ColorScale\n\t\t\t\t\tbins={bins}\n\t\t\t\t\tscale={scale ?? defaultColorScaleName}\n\t\t\t\t\tonClick={() => setIsOpen(true)}\n\t\t\t\t\twidth={width || 260}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{isOpen && (\n\t\t\t\t<Popover\n\t\t\t\t\treference={anchorRef}\n\t\t\t\t\tarrow={false}\n\t\t\t\t\tplacement=\"right\"\n\t\t\t\t\tonClickOutside={() => setIsOpen(false)}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={styles.popover}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\twidth: width + 24 || 260,\n\t\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\t\toverflow: \"auto\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{colorScales.map((scale, index) => (\n\t\t\t\t\t\t\t<ColorScale\n\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\tscale={scale}\n\t\t\t\t\t\t\t\tbins={bins}\n\t\t\t\t\t\t\t\tonClick={onColorScaleSelect}\n\t\t\t\t\t\t\t\twidth={width || 260}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t</Popover>\n\t\t\t)}\n\t\t</Fragment>\n\t);\n};\n\nexport default ColorScaleSelect;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/components/Map/components/ThematicLayerConfiguration/components/IndicatorSelectorModal/index.tsx"],"names":["useState","useCallback","jsxs","Modal","jsx","ModalTitle","i18n","ModalContent","DataSourceSelector","ModalActions","ButtonStrip","Button"],"mappings":";;;;;;;;;;;;AAYe,SAAR,sBAAwC,CAAA;AAAA,EAC9C,QAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACJ,CAMG,EAAA;AACF,EAAA,MAAM,CAAC,kBAAA,EAAoB,qBAAqB,CAAA,GAAIA,eAAS,QAAQ,CAAA;AAErE,EAAM,MAAA,aAAA,GAAgBC,kBAAY,MAAM;AACvC,IAAA,QAAA,CAAS,kBAAkB,CAAA;AAC3B,IAAQ,OAAA,EAAA;AAAA,GACN,EAAA,CAAC,QAAU,EAAA,kBAAkB,CAAC,CAAA;AAEjC,EAAM,MAAA,QAAA,GAAWA,iBAAY,CAAA,CAAC,UAAoB,KAAA;AACjD,IAAA,qBAAA,CAAsB,UAAU,CAAA;AAAA,GACjC,EAAG,EAAE,CAAA;AAEL,EAAA,uBACEC,eAAA,CAAAC,QAAA,EAAA,EAAM,QAAS,EAAA,QAAA,EAAS,MAAY,OACpC,EAAA,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAACC,aAAY,EAAA,EAAA,QAAA,EAAAC,qBAAA,CAAK,CAAE,CAAA,kBAAkB,CAAE,EAAA,CAAA;AAAA,mCACvCC,eACA,EAAA,EAAA,QAAA,kBAAAH,cAAA;AAAA,MAACI,0BAAA;AAAA,MAAA;AAAA,QACC,GAAG,KAAA;AAAA,QACJ,QAAA;AAAA,QACA,aAAe,EAAA,CAAA;AAAA,QACf,QAAU,EAAA,kBAAA;AAAA,QACV;AAAA;AAAA,KAEF,EAAA,CAAA;AAAA,oBACAJ,cAAA,CAACK,eACA,EAAA,EAAA,QAAA,kBAAAP,eAAA,CAACQ,cACA,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAAN,cAAA,CAACO,aAAO,OAAS,EAAA,OAAA,EAAU,QAAK,EAAAL,qBAAA,CAAA,CAAA,CAAE,QAAQ,CAAE,EAAA,CAAA;AAAA,sBAC5CF,cAAA,CAACO,aAAO,OAAO,EAAA,IAAA,EAAC,SAAS,aACvB,EAAA,QAAA,EAAAL,qBAAA,CAAK,CAAE,CAAA,QAAQ,CACjB,EAAA;AAAA,KAAA,EACD,CACD,EAAA;AAAA,GACD,EAAA,CAAA;AAEF","file":"index.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport {\n\tButton,\n\tButtonStrip,\n\tModal,\n\tModalActions,\n\tModalContent,\n\tModalTitle,\n} from \"@dhis2/ui\";\nimport
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/components/Map/components/ThematicLayerConfiguration/components/IndicatorSelectorModal/index.tsx"],"names":["useState","useCallback","jsxs","Modal","jsx","ModalTitle","i18n","ModalContent","DataSourceSelector","ModalActions","ButtonStrip","Button"],"mappings":";;;;;;;;;;;;AAYe,SAAR,sBAAwC,CAAA;AAAA,EAC9C,QAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACJ,CAMG,EAAA;AACF,EAAA,MAAM,CAAC,kBAAA,EAAoB,qBAAqB,CAAA,GAAIA,eAAS,QAAQ,CAAA;AAErE,EAAM,MAAA,aAAA,GAAgBC,kBAAY,MAAM;AACvC,IAAA,QAAA,CAAS,kBAAkB,CAAA;AAC3B,IAAQ,OAAA,EAAA;AAAA,GACN,EAAA,CAAC,QAAU,EAAA,kBAAkB,CAAC,CAAA;AAEjC,EAAM,MAAA,QAAA,GAAWA,iBAAY,CAAA,CAAC,UAAoB,KAAA;AACjD,IAAA,qBAAA,CAAsB,UAAU,CAAA;AAAA,GACjC,EAAG,EAAE,CAAA;AAEL,EAAA,uBACEC,eAAA,CAAAC,QAAA,EAAA,EAAM,QAAS,EAAA,QAAA,EAAS,MAAY,OACpC,EAAA,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAACC,aAAY,EAAA,EAAA,QAAA,EAAAC,qBAAA,CAAK,CAAE,CAAA,kBAAkB,CAAE,EAAA,CAAA;AAAA,mCACvCC,eACA,EAAA,EAAA,QAAA,kBAAAH,cAAA;AAAA,MAACI,0BAAA;AAAA,MAAA;AAAA,QACC,GAAG,KAAA;AAAA,QACJ,QAAA;AAAA,QACA,aAAe,EAAA,CAAA;AAAA,QACf,QAAU,EAAA,kBAAA;AAAA,QACV;AAAA;AAAA,KAEF,EAAA,CAAA;AAAA,oBACAJ,cAAA,CAACK,eACA,EAAA,EAAA,QAAA,kBAAAP,eAAA,CAACQ,cACA,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAAN,cAAA,CAACO,aAAO,OAAS,EAAA,OAAA,EAAU,QAAK,EAAAL,qBAAA,CAAA,CAAA,CAAE,QAAQ,CAAE,EAAA,CAAA;AAAA,sBAC5CF,cAAA,CAACO,aAAO,OAAO,EAAA,IAAA,EAAC,SAAS,aACvB,EAAA,QAAA,EAAAL,qBAAA,CAAK,CAAE,CAAA,QAAQ,CACjB,EAAA;AAAA,KAAA,EACD,CACD,EAAA;AAAA,GACD,EAAA,CAAA;AAEF","file":"index.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport {\n\tButton,\n\tButtonStrip,\n\tModal,\n\tModalActions,\n\tModalContent,\n\tModalTitle,\n} from \"@dhis2/ui\";\nimport { useCallback, useState } from \"react\";\nimport { DataSourceSelector } from \"@hisptz/dhis2-ui\";\n\nexport default function IndicatorSelectorModal({\n\tonUpdate,\n\tonClose,\n\thide,\n\tselected,\n\tdisabled,\n\t...props\n}: {\n\tonUpdate: (data: any) => void;\n\tonClose: () => void;\n\thide: boolean;\n\tselected: any;\n\tdisabled?: string[];\n}) {\n\tconst [selectedIndicators, setSelectedIndicators] = useState(selected);\n\n\tconst onUpdateClick = useCallback(() => {\n\t\tonUpdate(selectedIndicators);\n\t\tonClose();\n\t}, [onUpdate, selectedIndicators]);\n\n\tconst onSelect = useCallback((indicators: any) => {\n\t\tsetSelectedIndicators(indicators);\n\t}, []);\n\n\treturn (\n\t\t<Modal position=\"middle\" hide={hide} onClose={onClose}>\n\t\t\t<ModalTitle>{i18n.t(\"Select Data Item\")}</ModalTitle>\n\t\t\t<ModalContent>\n\t\t\t\t<DataSourceSelector\n\t\t\t\t\t{...props}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tmaxSelections={1}\n\t\t\t\t\tselected={selectedIndicators}\n\t\t\t\t\tonSelect={onSelect}\n\t\t\t\t/>\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 primary onClick={onUpdateClick}>\n\t\t\t\t\t\t{i18n.t(\"Update\")}\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/ThematicLayerConfiguration/components/LegendSetSelector/index.tsx"],"names":["useDataQuery","useMemo","jsx","SingleSelectField","i18n","isEmpty","selected","SingleSelectOption"],"mappings":";;;;;;;;;;;;;AAOA,MAAM,cAAiB,GAAA;AAAA,EACtB,UAAY,EAAA;AAAA,IACX,QAAU,EAAA,YAAA;AAAA,IACV,MAAQ,EAAA;AAAA,MACP,MAAA,EAAQ,CAAC,aAAA,EAAe,IAAI;AAAA;AAC7B;AAEF,CAAA;AAEO,SAAS,iBAAkB,CAAA;AAAA,EACjC,QAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACJ,CAKG,EAAA;AACF,EAAA,MAAM,EAAE,OAAA,EAAS,IAAK,EAAA,GAAIA,wBAAa,cAAc,CAAA;AACrD,EAAM,MAAA,OAAA,GAAUC,cAAQ,MAAM;AAC7B,IAAA,IAAI,IAAM,EAAA;AACT,MACC,OAAA,IAAA,EAAM,YACJ,UAAY,EAAA,GAAA,CAAI,CAAC,EAAE,WAAA,EAAa,IAAU,MAAA;AAAA,QAC5C,OAAO,WAAe,IAAA,EAAA;AAAA,QACtB,KAAO,EAAA;AAAA,OACN,CAAA,CAAA;AAAA;AAEH,IAAA,OAAO,EAAC;AAAA,GACT,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EACC,uBAAAC,cAAA;AAAA,IAACC,oBAAA;AAAA,IAAA;AAAA,MACA,QAAA;AAAA,MACA,KAAA,EAAO,QAAQ,KAAK,CAAA;AAAA,MACpB,gBAAgB,KAAO,EAAA,OAAA;AAAA,MACtB,GAAG,KAAA;AAAA,MACJ,KAAA,EAAOC,qBAAK,CAAA,CAAA,CAAE,YAAY,CAAA;AAAA,MAC1B,UAAU,EAAA,IAAA;AAAA,MACV,QAAU,EAAA,CAACC,cAAQ,CAAA,OAAO,IAAI,QAAW,GAAA,MAAA;AAAA,MACzC,WAAA,EAAaD,qBAAK,CAAA,CAAA,CAAE,gBAAgB,CAAA;AAAA,MACpC,UAAU,CAAC,EAAE,UAAAE,SAAS,EAAA,KACrB,SAASA,SAAQ,CAAA;AAAA,MAElB,OAAA;AAAA,MAEC,mBAAS,GAAI,CAAA,CAAC,EAAE,KAAA,EAAO,OACvB,qBAAAJ,cAAA;AAAA,QAACK,qBAAA;AAAA,QAAA;AAAA,UAEA,KAAA;AAAA,UACA;AAAA,SAAA;AAAA,QAFK,GAAG,KAAK,CAAA,cAAA;AAAA,OAId;AAAA;AAAA,GACF;AAEF","file":"index.js","sourcesContent":["import { useDataQuery } from \"@dhis2/app-runtime\";\nimport
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/components/Map/components/ThematicLayerConfiguration/components/LegendSetSelector/index.tsx"],"names":["useDataQuery","useMemo","jsx","SingleSelectField","i18n","isEmpty","selected","SingleSelectOption"],"mappings":";;;;;;;;;;;;;AAOA,MAAM,cAAiB,GAAA;AAAA,EACtB,UAAY,EAAA;AAAA,IACX,QAAU,EAAA,YAAA;AAAA,IACV,MAAQ,EAAA;AAAA,MACP,MAAA,EAAQ,CAAC,aAAA,EAAe,IAAI;AAAA;AAC7B;AAEF,CAAA;AAEO,SAAS,iBAAkB,CAAA;AAAA,EACjC,QAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACJ,CAKG,EAAA;AACF,EAAA,MAAM,EAAE,OAAA,EAAS,IAAK,EAAA,GAAIA,wBAAa,cAAc,CAAA;AACrD,EAAM,MAAA,OAAA,GAAUC,cAAQ,MAAM;AAC7B,IAAA,IAAI,IAAM,EAAA;AACT,MACC,OAAA,IAAA,EAAM,YACJ,UAAY,EAAA,GAAA,CAAI,CAAC,EAAE,WAAA,EAAa,IAAU,MAAA;AAAA,QAC5C,OAAO,WAAe,IAAA,EAAA;AAAA,QACtB,KAAO,EAAA;AAAA,OACN,CAAA,CAAA;AAAA;AAEH,IAAA,OAAO,EAAC;AAAA,GACT,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EACC,uBAAAC,cAAA;AAAA,IAACC,oBAAA;AAAA,IAAA;AAAA,MACA,QAAA;AAAA,MACA,KAAA,EAAO,QAAQ,KAAK,CAAA;AAAA,MACpB,gBAAgB,KAAO,EAAA,OAAA;AAAA,MACtB,GAAG,KAAA;AAAA,MACJ,KAAA,EAAOC,qBAAK,CAAA,CAAA,CAAE,YAAY,CAAA;AAAA,MAC1B,UAAU,EAAA,IAAA;AAAA,MACV,QAAU,EAAA,CAACC,cAAQ,CAAA,OAAO,IAAI,QAAW,GAAA,MAAA;AAAA,MACzC,WAAA,EAAaD,qBAAK,CAAA,CAAA,CAAE,gBAAgB,CAAA;AAAA,MACpC,UAAU,CAAC,EAAE,UAAAE,SAAS,EAAA,KACrB,SAASA,SAAQ,CAAA;AAAA,MAElB,OAAA;AAAA,MAEC,mBAAS,GAAI,CAAA,CAAC,EAAE,KAAA,EAAO,OACvB,qBAAAJ,cAAA;AAAA,QAACK,qBAAA;AAAA,QAAA;AAAA,UAEA,KAAA;AAAA,UACA;AAAA,SAAA;AAAA,QAFK,GAAG,KAAK,CAAA,cAAA;AAAA,OAId;AAAA;AAAA,GACF;AAEF","file":"index.js","sourcesContent":["import { useDataQuery } from \"@dhis2/app-runtime\";\nimport { useMemo } from \"react\";\nimport { LegendSet } from \"@hisptz/dhis2-utils\";\nimport { SingleSelectField, SingleSelectOption } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { isEmpty } from \"lodash\";\n\nconst legendSetQuery = {\n\tlegendSets: {\n\t\tresource: \"legendSets\",\n\t\tparams: {\n\t\t\tfields: [\"displayName\", \"id\"],\n\t\t},\n\t},\n};\n\nexport function LegendSetSelector({\n\tselected,\n\tonChange,\n\terror,\n\trequired,\n\t...props\n}: {\n\tselected?: string;\n\tonChange: (value: string) => void;\n\terror?: { message?: string };\n\trequired?: boolean;\n}) {\n\tconst { loading, data } = useDataQuery(legendSetQuery);\n\tconst options = useMemo(() => {\n\t\tif (data) {\n\t\t\treturn (\n\t\t\t\tdata?.legendSets as { legendSets?: LegendSet[] }\n\t\t\t)?.legendSets?.map(({ displayName, id }) => ({\n\t\t\t\tlabel: displayName ?? id,\n\t\t\t\tvalue: id,\n\t\t\t}));\n\t\t}\n\t\treturn [];\n\t}, [data]);\n\n\treturn (\n\t\t<SingleSelectField\n\t\t\trequired={required}\n\t\t\terror={Boolean(error)}\n\t\t\tvalidationText={error?.message}\n\t\t\t{...props}\n\t\t\tlabel={i18n.t(\"Legend set\")}\n\t\t\tfilterable\n\t\t\tselected={!isEmpty(options) ? selected : undefined}\n\t\t\tloadingText={i18n.t(\"Please wait...\")}\n\t\t\tonChange={({ selected }: { selected: string }) =>\n\t\t\t\tonChange(selected)\n\t\t\t}\n\t\t\tloading={loading}\n\t\t>\n\t\t\t{options?.map(({ label, value }) => (\n\t\t\t\t<SingleSelectOption\n\t\t\t\t\tkey={`${label}-legend-option`}\n\t\t\t\t\tlabel={label}\n\t\t\t\t\tvalue={value}\n\t\t\t\t/>\n\t\t\t))}\n\t\t</SingleSelectField>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/SingleValueContainer/SingleValueVisualizer.tsx"],"names":["jsxs","jsx","CssReset","Suspense","i18n","styles","SingleValueItem"],"mappings":";;;;;;;;;;;;;;;;AASO,SAAS,qBAAsB,CAAA;AAAA,EACrC,KAAA;AAAA,EACA,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,cAAA;AAAA,EACA;AACD,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/SingleValueContainer/SingleValueVisualizer.tsx"],"names":["jsxs","jsx","CssReset","Suspense","i18n","styles","SingleValueItem"],"mappings":";;;;;;;;;;;;;;;;AASO,SAAS,qBAAsB,CAAA;AAAA,EACrC,KAAA;AAAA,EACA,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,cAAA;AAAA,EACA;AACD,CAA6C,EAAA;AAC5C,EACC,uBAAAA,eAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,aACd,EAAA,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAACC,WAAS,EAAA,EAAA,CAAA;AAAA,oBACVD,cAAA,CAACE,cAAS,EAAA,EAAA,QAAA,kBAAWF,cAAA,CAAA,KAAA,EAAA,EAAK,QAAK,EAAAG,qBAAA,CAAA,CAAA,CAAE,aAAa,CAAA,EAAE,CAC/C,EAAA,QAAA,kBAAAJ,eAAA,CAAC,KACA,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAAC,cAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACA,SAAA,EAAW,GAAGI,uBAAO,CAAA,cAAc,CAAC,CAAI,CAAA,EAAAA,uBAAA,CAAO,WAAW,CAAC,CAAA,CAAA;AAAA,UAE1D,QAAA,EAAA;AAAA;AAAA,OACF;AAAA,qCACC,KAAI,EAAA,EAAA,SAAA,EAAWA,uBAAO,CAAA,mBAAmB,GACxC,QAAiB,EAAA,gBAAA,CAAA,GAAA;AAAA,QACjB,CAAC,eACA,qBAAAJ,cAAA;AAAA,UAACK,gCAAA;AAAA,UAAA;AAAA,YACA,gBAAA;AAAA,YAEC,GAAG,eAAA;AAAA,YACJ,uBAAyB,EAAA,iBAAA;AAAA,YACzB,oBAAsB,EAAA;AAAA,WAAA;AAAA,UAHjB,CAAG,EAAA,eAAA,CAAgB,KAAK,CAAA,CAAA,EAAI,gBAAgB,KAAK,CAAA;AAAA;AAIvD,OAGH,EAAA;AAAA,KAAA,EACD,CACD,EAAA;AAAA,GACD,EAAA,CAAA;AAEF;AAKO,MAAM,oBAAuB,GAAA","file":"SingleValueVisualizer.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport { CssReset } from \"@dhis2/ui\";\nimport { type ReactElement, Suspense } from \"react\";\nimport SingleValueItem from \"./components/SingleValueItem/SingleValueItem.js\";\nimport styles from \"./styles/SingleValueContainer.module.css\";\nimport { SingleValue, SingleValueVisualizerProps } from \"./types/props.js\";\n\nexport * from \"./types/props.js\";\n\nexport function SingleValueVisualizer({\n\ttitle,\n\tsingleValueItems,\n\tanimationDuration,\n\tanimationDelay,\n\tdisableAnimation,\n}: SingleValueVisualizerProps): ReactElement {\n\treturn (\n\t\t<div className=\"w-100 h-100\">\n\t\t\t<CssReset />\n\t\t\t<Suspense fallback={<div>{i18n.t(\"Loading ...\")}</div>}>\n\t\t\t\t<div>\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={`${styles[\"font-x-large\"]} ${styles[\"font-bold\"]}`}\n\t\t\t\t\t>\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</span>\n\t\t\t\t\t<div className={styles[\"single-value-list\"]}>\n\t\t\t\t\t\t{singleValueItems.map(\n\t\t\t\t\t\t\t(singleValueItem: SingleValue) => (\n\t\t\t\t\t\t\t\t<SingleValueItem\n\t\t\t\t\t\t\t\t\tdisableAnimation={disableAnimation}\n\t\t\t\t\t\t\t\t\tkey={`${singleValueItem.label}-${singleValueItem.value}`}\n\t\t\t\t\t\t\t\t\t{...singleValueItem}\n\t\t\t\t\t\t\t\t\tglobalAnimationDuration={animationDuration}\n\t\t\t\t\t\t\t\t\tglobalAnimationDelay={animationDelay}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Suspense>\n\t\t</div>\n\t);\n}\n\n/**\n * @deprecated since `v2`. Use `SingleValueVisualizer` instead\n * */\nexport const SingleValueContainer = SingleValueVisualizer;\nexport { SingleValueItem };\n"]}
|
package/dist/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.tsx"],"names":["value","useSpring","styles","jsx","Tooltip","capitalize","animated","SingleValuePercentage"],"mappings":";;;;;;;;;;;;;;AAce,SAAR,eAAiC,CAAA;AAAA,EACvC,KAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA,iBAAA;AAAA,EACA,cAAA;AAAA,EACA,oBAAA;AAAA,EACA,aAAA;AAAA,EACA,uBAAA;AAAA,EACA;AACD,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.tsx"],"names":["value","useSpring","styles","jsx","Tooltip","capitalize","animated","SingleValuePercentage"],"mappings":";;;;;;;;;;;;;;AAce,SAAR,eAAiC,CAAA;AAAA,EACvC,KAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA,iBAAA;AAAA,EACA,cAAA;AAAA,EACA,oBAAA;AAAA,EACA,aAAA;AAAA,EACA,uBAAA;AAAA,EACA;AACD,CAAmC,EAAA;AAClC,EAAA,MAAM,eAAkB,GAAA,CAACA,MACxB,KAAA,IAAA,CAAK,aAAa,OAAS,EAAA;AAAA,IAC1B,QAAU,EAAA,SAAA;AAAA,IACV,uBAAuB,aAAiB,IAAA;AAAA,GACxC,CAAE,CAAA,MAAA,CAAOA,MAAK,CAAA;AAEhB,EAAA,MAAM,iBAAiBC,qBAAU,CAAA;AAAA,IAChC,MAAQ,EAAA,gBAAA;AAAA,IACR,GAAK,EAAA,KAAA;AAAA,IACL,IAAA,EAAM,EAAE,GAAA,EAAK,CAAE,EAAA;AAAA,IACf,MAAQ,EAAA;AAAA,MACP,QAAA,EAAU,qBAAqB,uBAA2B,IAAA;AAAA,KAC3D;AAAA,IACA,KAAA,EAAO,kBAAkB,oBAAwB,IAAA;AAAA,GACjD,CAAA;AAED,EAAA,MAAM,cAAiB,GAAA,CAAA,EAAG,KAAK,CAAA,EAAA,EAAK,KAAK,CAAA,CAAA;AACzC,EAAA,uCACE,KAAI,EAAA,EAAA,SAAA,EAAW,GAAGC,uBAAO,CAAA,mBAAmB,CAAC,CAC7C,YAAA,CAAA,EAAA,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAWD,uBAAO,CAAA,YAAY,GAAI,QAAM,EAAA,KAAA,EAAA,CAAA;AAAA,oBAC5CC,cAAA,CAAAC,UAAA,EAAA,EAAQ,OAAS,EAAAC,iBAAA,CAAW,cAAc,CAC1C,EAAA,QAAA,kBAAAF,cAAA;AAAA,MAACG,oBAAS,CAAA,GAAA;AAAA,MAAT;AAAA,QACA,SAAW,EAAA,CAAA,EAAGJ,uBAAO,CAAA,WAAW,CAAC,CAAA,CAAA,EAAIA,uBAAO,CAAA,eAAe,CAAC,CAAA,CAAA,EAAIA,uBAAO,CAAA,aAAa,CAAC,CAAA,CAAA;AAAA,QAEpF,yBAAe,GAAI,CAAA,EAAA;AAAA,UAAG,CAACF,MACvB,KAAA,eAAA,CAAgB,IAAK,CAAA,KAAA,CAAMA,MAAK,CAAC;AAAA;AAClC;AAAA,KAEF,EAAA,CAAA;AAAA,IACC,6BACCG,cAAA,CAAAI,sCAAA,EAAA,EAAsB,OAAc,UAAwB,EAAA,CAAA,kCAE5D,MAAK,EAAA,EAAA;AAAA,GAER,EAAA,CAAA;AAEF","file":"SingleValueItem.js","sourcesContent":["import { Tooltip } from \"@dhis2/ui\";\nimport { capitalize } from \"lodash\";\nimport { type ReactElement } from \"react\";\nimport { animated, useSpring } from \"react-spring\";\nimport styles from \"../../styles/SingleValueContainer.module.css\";\nimport { SingleValue } from \"../../types/props.js\";\nimport SingleValuePercentage from \"./SingleValuePercentage.js\";\n\ninterface SingleValueProps extends SingleValue {\n\tglobalAnimationDelay?: number;\n\tglobalAnimationDuration?: number;\n\tdisableAnimation?: boolean;\n}\n\nexport default function SingleValueItem({\n\tlabel,\n\tvalue,\n\tcolor,\n\tpercentage,\n\tanimationDuration,\n\tanimationDelay,\n\tglobalAnimationDelay,\n\tdecimalPlaces,\n\tglobalAnimationDuration,\n\tdisableAnimation,\n}: SingleValueProps): ReactElement {\n\tconst numberFormatter = (value: number) =>\n\t\tIntl.NumberFormat(\"en-US\", {\n\t\t\tnotation: \"compact\",\n\t\t\tmaximumFractionDigits: decimalPlaces ?? 1,\n\t\t}).format(value);\n\n\tconst sanitizedValue = useSpring({\n\t\tcancel: disableAnimation,\n\t\tval: value,\n\t\tfrom: { val: 0 },\n\t\tconfig: {\n\t\t\tduration: animationDuration ?? globalAnimationDuration ?? 1000,\n\t\t},\n\t\tdelay: animationDelay ?? globalAnimationDelay ?? 10,\n\t});\n\n\tconst tooltipContent = `${label}: ${value}`;\n\treturn (\n\t\t<div className={`${styles[\"single-value-item\"]} text-center`}>\n\t\t\t<div className={styles[\"font-large\"]}>{label}</div>\n\t\t\t<Tooltip content={capitalize(tooltipContent)}>\n\t\t\t\t<animated.div\n\t\t\t\t\tclassName={`${styles[\"font-bold\"]} ${styles[\"font-xx-large\"]} ${styles[\"padding-top\"]}`}\n\t\t\t\t>\n\t\t\t\t\t{sanitizedValue.val.to((value) =>\n\t\t\t\t\t\tnumberFormatter(Math.floor(value)),\n\t\t\t\t\t)}\n\t\t\t\t</animated.div>\n\t\t\t</Tooltip>\n\t\t\t{percentage ? (\n\t\t\t\t<SingleValuePercentage color={color} percentage={percentage} />\n\t\t\t) : (\n\t\t\t\t<span></span>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n"]}
|
package/dist/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.tsx"],"names":["jsx","LinearLoader","styles"],"mappings":";;;;;;;;;;AAIe,SAAR,qBAAuC,CAAA;AAAA,EAC7C,UAAA;AAAA,EACA;AACD,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.tsx"],"names":["jsx","LinearLoader","styles"],"mappings":";;;;;;;;;;AAIe,SAAR,qBAAuC,CAAA;AAAA,EAC7C,UAAA;AAAA,EACA;AACD,CAAsB,EAAA;AACrB,EAAA,MAAM,KAAQ,GAAA,MAAA;AACd,EACC,uBAAAA,cAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,OACd,EAAA,QAAA,kBAAAA,cAAA;AAAA,IAACC,eAAA;AAAA,IAAA;AAAA,MACA,SAAA,EAAWC,wBAAO,eAAe,CAAA;AAAA,MACjC,KAAA;AAAA,MACA,MAAQ,EAAA;AAAA;AAAA,GAEV,EAAA,CAAA;AAEF","file":"SingleValuePercentage.js","sourcesContent":["import { LinearLoader } from \"@dhis2/ui\";\nimport { type ReactElement } from \"react\";\nimport styles from \"../../styles/SingleValueContainer.module.css\";\n\nexport default function SingleValuePercentage({\n\tpercentage,\n\tcolor,\n}: any): ReactElement {\n\tconst width = \"100%\";\n\treturn (\n\t\t<div className=\"w-100\">\n\t\t\t<LinearLoader\n\t\t\t\tclassName={styles[\"percent-value\"]}\n\t\t\t\twidth={width}\n\t\t\t\tamount={percentage}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Visualization/components/AnalyticsDataProvider/index.tsx"],"names":["createContext","useContext","useDimensions","useLayout","useMemo","dimensions","filters","forEach","set","useDataQuery","useEffect","jsx"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Visualization/components/AnalyticsDataProvider/index.tsx"],"names":["createContext","useContext","useDimensions","useLayout","useMemo","dimensions","filters","forEach","set","useDataQuery","useEffect","jsx"],"mappings":"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","file":"index.js","sourcesContent":["import {\n\tcreateContext,\n\ttype ReactNode,\n\tuseContext,\n\tuseEffect,\n\tuseMemo,\n} from \"react\";\nimport { Analytics, AnalyticsDimension } from \"@hisptz/dhis2-utils\";\nimport { useDimensions } from \"../DimensionsProvider/index.js\";\nimport { useDataQuery } from \"@dhis2/app-runtime\";\nimport { useLayout } from \"../LayoutProvider/index.js\";\nimport { forEach, set } from \"lodash\";\n\nconst AnalyticsContext = createContext<\n\t{ loading: boolean; analytics: Analytics } | undefined\n>(undefined);\n\nconst analyticsQuery = {\n\tanalytics: {\n\t\tresource: \"analytics\",\n\t\tparams: ({ dimensions, filters }: any) => {\n\t\t\treturn {\n\t\t\t\tdimension: Object.keys(dimensions).map(\n\t\t\t\t\t(dimension) =>\n\t\t\t\t\t\t`${dimension}:${dimensions[dimension]?.join(\";\")}`,\n\t\t\t\t),\n\t\t\t\tfilter: Object.keys(filters).map(\n\t\t\t\t\t(dimension) =>\n\t\t\t\t\t\t`${dimension}:${filters[dimension]?.join(\";\")}`,\n\t\t\t\t),\n\t\t\t\tincludeMetadataDetails: true,\n\t\t\t};\n\t\t},\n\t},\n};\n\nexport interface DataProviderProps {\n\tchildren: ReactNode;\n}\n\nexport function useAnalyticsData() {\n\treturn useContext(AnalyticsContext) ?? { analytics: {}, loading: false };\n}\n\nexport function AnalyticsDataProvider({ children }: DataProviderProps) {\n\tconst [analyticsDimensions] = useDimensions();\n\tconst [layout] = useLayout();\n\tconst { dimensions, filters } = useMemo(() => {\n\t\tconst dimensions = {};\n\t\tconst filters = {};\n\n\t\tforEach(\n\t\t\t[...(layout?.columns ?? []), ...(layout?.rows ?? [])],\n\t\t\t(dimension) => {\n\t\t\t\tset(\n\t\t\t\t\tdimensions,\n\t\t\t\t\t[dimension],\n\t\t\t\t\t(analyticsDimensions as AnalyticsDimension)?.[dimension],\n\t\t\t\t);\n\t\t\t},\n\t\t);\n\t\tforEach([...(layout?.filters ?? [])], (dimension) => {\n\t\t\tset(\n\t\t\t\tfilters,\n\t\t\t\t[dimension],\n\t\t\t\t(analyticsDimensions as AnalyticsDimension)?.[dimension],\n\t\t\t);\n\t\t});\n\n\t\treturn {\n\t\t\tdimensions,\n\t\t\tfilters,\n\t\t};\n\t}, [layout, analyticsDimensions]);\n\n\tconst {\n\t\tdata: analytics,\n\t\terror,\n\t\tloading,\n\t\trefetch,\n\t\tcalled,\n\t} = useDataQuery(analyticsQuery, {\n\t\tvariables: {\n\t\t\tdimensions,\n\t\t\tfilters,\n\t\t},\n\t\tlazy: true,\n\t});\n\n\tuseEffect(() => {\n\t\trefetch({\n\t\t\tdimensions,\n\t\t\tfilters,\n\t\t});\n\t}, [dimensions, filters]);\n\n\tuseEffect(() => {\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\t}, [error]);\n\n\treturn (\n\t\t<AnalyticsContext.Provider\n\t\t\tvalue={{ analytics: analytics?.analytics as Analytics, loading }}\n\t\t>\n\t\t\t{children}\n\t\t</AnalyticsContext.Provider>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Visualization/components/DimensionsProvider/index.tsx"],"names":["createContext","set","useContext","useReducer","useEffect","jsx"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Visualization/components/DimensionsProvider/index.tsx"],"names":["createContext","set","useContext","useReducer","useEffect","jsx"],"mappings":";;;;;;AAgBO,MAAM,iBAAiBA,mBAAkC,CAAA;AAAA,EAC/D,IAAI,EAAC;AAAA,EACL,IAAI,EAAC;AAAA,EACL,IAAI;AACL,CAAC;AACM,MAAM,oBAAuB,GAAAA,mBAAA;AAAA,EACnC;AACD;AAEA,SAAS,OACR,CAAA,KAAA,EACA,EAAE,SAAA,EAAW,OACZ,EAAA;AACD,EAAA,MAAM,YAAe,GAAA,EAAE,GAAI,KAAA,IAAS,EAAI,EAAA;AACxC,EAAAC,UAAA,CAAI,YAAc,EAAA,CAAC,SAAS,CAAA,EAAG,KAAK,CAAA;AACpC,EAAO,OAAA,YAAA;AACR;AAOO,SAAS,aAAgB,GAAA;AAC/B,EAAA,OAAO,CAACC,gBAAW,CAAA,cAAc,CAAG,EAAAA,gBAAA,CAAW,oBAAoB,CAAC,CAAA;AAIrE;AAEO,SAAS,kBAAmB,CAAA;AAAA,EAClC,QAAA;AAAA,EACA;AACD,CAA2B,EAAA;AAC1B,EAAA,MAAM,CAAC,KAAO,EAAA,QAAQ,CAAI,GAAAC,gBAAA,CAAW,SAAS,UAAU,CAAA;AAExD,EAAAC,eAAA,CAAU,MAAM;AACf,IAAA,MAAA,CAAO,IAAK,CAAA,UAAU,CAAE,CAAA,OAAA,CAAQ,CAAC,SAAsB,KAAA;AACtD,MAAS,QAAA,CAAA;AAAA,QACR,SAAA;AAAA,QACA,KAAO,EAAA,UAAA,CAAW,SAAS,CAAA,IAAK;AAAC,OACjC,CAAA;AAAA,KACD,CAAA;AAAA,GACF,EAAG,CAAC,UAAU,CAAC,CAAA;AAEf,EAAA,uBACEC,cAAA,CAAA,cAAA,CAAe,QAAf,EAAA,EAAwB,KAAO,EAAA,KAAA,EAC/B,QAAC,kBAAAA,cAAA,CAAA,oBAAA,CAAqB,QAArB,EAAA,EAA8B,KAAO,EAAA,QAAA,EACpC,UACF,CACD,EAAA,CAAA;AAEF","file":"index.js","sourcesContent":["import {\n\tcreateContext,\n\ttype ReactNode,\n\tuseContext,\n\tuseEffect,\n\tuseReducer,\n} from \"react\";\nimport { AnalyticsDimension } from \"@hisptz/dhis2-utils\";\nimport { set } from \"lodash\";\n\nexport type Dimension = \"ou\" | \"pe\" | \"dx\" | \"co\";\n\nexport type DimensionUpdater = (data: {\n\tdimension: Dimension;\n\tvalue: string[];\n}) => void;\nexport const DimensionState = createContext<AnalyticsDimension>({\n\tdx: [],\n\tpe: [],\n\tou: [],\n});\nexport const DimensionUpdateState = createContext<DimensionUpdater | undefined>(\n\tundefined,\n);\n\nfunction reducer(\n\tstate: AnalyticsDimension,\n\t{ dimension, value }: { dimension: Dimension; value: string[] },\n) {\n\tconst updatedState = { ...(state ?? {}) };\n\tset(updatedState, [dimension], value);\n\treturn updatedState;\n}\n\nexport interface DimensionProviderProps {\n\tchildren: ReactNode;\n\tdimensions: AnalyticsDimension;\n}\n\nexport function useDimensions() {\n\treturn [useContext(DimensionState), useContext(DimensionUpdateState)] as [\n\t\tAnalyticsDimension,\n\t\tDimensionUpdater,\n\t];\n}\n\nexport function DimensionsProvider({\n\tchildren,\n\tdimensions,\n}: DimensionProviderProps) {\n\tconst [state, dispatch] = useReducer(reducer, dimensions);\n\n\tuseEffect(() => {\n\t\tObject.keys(dimensions).forEach((dimension: string) => {\n\t\t\tdispatch({\n\t\t\t\tdimension: dimension as Dimension,\n\t\t\t\tvalue: dimensions[dimension] ?? [],\n\t\t\t});\n\t\t});\n\t}, [dimensions]);\n\n\treturn (\n\t\t<DimensionState.Provider value={state}>\n\t\t\t<DimensionUpdateState.Provider value={dispatch}>\n\t\t\t\t{children}\n\t\t\t</DimensionUpdateState.Provider>\n\t\t</DimensionState.Provider>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Visualization/components/LayoutProvider/index.tsx"],"names":["createContext","useContext","useState"],"mappings":";;;;;AAca,MAAA,WAAA,GAAcA,oBAAkC,MAAS;AAE/D,SAAS,SAAY,GAAA;AAC3B,EAAA,OAAO,CAACC,gBAAA,CAAW,WAAW,CAAA,IAAK,EAAE,IAAM,EAAA,EAAI,EAAA,OAAA,EAAS,EAAC,EAAG,OAAS,EAAA,IAAI,CAAA;AAC1E;AAEO,SAAS,cAAe,CAAA;AAAA,EAC9B,aAAA;AAAA,EACA;AACD,CAAwB,EAAA;AACvB,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIC,eAAS,aAAa,CAAA;AAElD,EAAA,sCACE,WAAY,CAAA,QAAA,EAAZ,EAAqB,KAAA,EAAO,QAAS,QAAS,EAAA,CAAA;AAEjD","file":"index.js","sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Visualization/components/LayoutProvider/index.tsx"],"names":["createContext","useContext","useState"],"mappings":";;;;;AAca,MAAA,WAAA,GAAcA,oBAAkC,MAAS;AAE/D,SAAS,SAAY,GAAA;AAC3B,EAAA,OAAO,CAACC,gBAAA,CAAW,WAAW,CAAA,IAAK,EAAE,IAAM,EAAA,EAAI,EAAA,OAAA,EAAS,EAAC,EAAG,OAAS,EAAA,IAAI,CAAA;AAC1E;AAEO,SAAS,cAAe,CAAA;AAAA,EAC9B,aAAA;AAAA,EACA;AACD,CAAwB,EAAA;AACvB,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIC,eAAS,aAAa,CAAA;AAElD,EAAA,sCACE,WAAY,CAAA,QAAA,EAAZ,EAAqB,KAAA,EAAO,QAAS,QAAS,EAAA,CAAA;AAEjD","file":"index.js","sourcesContent":["import { createContext, type ReactNode, useContext, useState } from \"react\";\nimport { Dimension } from \"../DimensionsProvider/index.js\";\n\nexport interface Layout {\n\trows: Dimension[];\n\tcolumns: Dimension[];\n\tfilters: Dimension[];\n}\n\nexport interface LayoutProviderProps {\n\tchildren: ReactNode;\n\tdefaultLayout: Layout;\n}\n\nexport const LayoutState = createContext<Layout | undefined>(undefined);\n\nexport function useLayout() {\n\treturn [useContext(LayoutState) ?? { rows: [], filters: [], columns: [] }];\n}\n\nexport function LayoutProvider({\n\tdefaultLayout,\n\tchildren,\n}: LayoutProviderProps) {\n\tconst [layout, setLayout] = useState(defaultLayout);\n\n\treturn (\n\t\t<LayoutState.Provider value={layout}>{children}</LayoutState.Provider>\n\t);\n}\n"]}
|
package/dist/components/Visualization/components/VisualizationDimensionSelector/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Visualization/components/VisualizationDimensionSelector/index.tsx"],"names":["useDimensions","useMemo","getOrgUnitSelectionFromIds","useState","useCallback","getOrgUnitsSelection","jsx","Fragment","Tooltip","i18n","jsxs","PeriodSelectorModal","Button","IconClock24","OrgUnitSelectorModal","IconLocation24"],"mappings":"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","file":"index.js","sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Visualization/components/VisualizationDimensionSelector/index.tsx"],"names":["useDimensions","useMemo","getOrgUnitSelectionFromIds","useState","useCallback","getOrgUnitsSelection","jsx","Fragment","Tooltip","i18n","jsxs","PeriodSelectorModal","Button","IconClock24","OrgUnitSelectorModal","IconLocation24"],"mappings":"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","file":"index.js","sourcesContent":["import { useCallback, useMemo, useState } from \"react\";\nimport { Button, IconClock24, IconLocation24, Tooltip } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useDimensions } from \"../DimensionsProvider/index.js\";\nimport { OrgUnitSelectorModal, PeriodSelectorModal } from \"@hisptz/dhis2-ui\";\nimport { OrgUnitSelection } from \"@hisptz/dhis2-utils\";\nimport { getOrgUnitSelectionFromIds } from \"../VisualizationSelector/index.js\";\nimport { getOrgUnitsSelection } from \"../../../Map/utils/map.js\";\n\nexport function VisualizationDimensionSelector({\n\tshowPeriodSelector,\n\tshowOrgUnitSelector,\n}: {\n\tshowPeriodSelector?: boolean;\n\tshowOrgUnitSelector?: boolean;\n}) {\n\tconst [dimensions, setDimensions] = useDimensions();\n\tconst periods = useMemo(() => dimensions.pe, [dimensions.pe]);\n\tconst orgUnitSelection = useMemo(\n\t\t() => getOrgUnitSelectionFromIds(dimensions.ou ?? []),\n\t\t[dimensions.ou],\n\t);\n\tconst [openFilter, setOpenFilter] = useState<\"pe\" | \"ou\" | undefined>();\n\n\tconst onFilterUpdate = useCallback(\n\t\t(type: \"ou\" | \"pe\") => (data: OrgUnitSelection | any) => {\n\t\t\tsetOpenFilter(undefined);\n\t\t\tif (type === \"ou\") {\n\t\t\t\tsetDimensions({\n\t\t\t\t\tdimension: \"ou\",\n\t\t\t\t\tvalue: getOrgUnitsSelection(data),\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (type === \"pe\") {\n\t\t\t\tsetDimensions({ dimension: \"pe\", value: data });\n\t\t\t\treturn;\n\t\t\t}\n\t\t},\n\t\t[setDimensions],\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<div style={{ display: \"flex\", gap: 8 }}>\n\t\t\t\t{showPeriodSelector && (\n\t\t\t\t\t<Tooltip content={i18n.t(\"Period\")}>\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<PeriodSelectorModal\n\t\t\t\t\t\t\t\tposition=\"middle\"\n\t\t\t\t\t\t\t\tenablePeriodSelector\n\t\t\t\t\t\t\t\tselectedPeriods={periods}\n\t\t\t\t\t\t\t\tonClose={() => setOpenFilter(undefined)}\n\t\t\t\t\t\t\t\thide={openFilter !== \"pe\"}\n\t\t\t\t\t\t\t\tonUpdate={onFilterUpdate(\"pe\")}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tonClick={() => setOpenFilter(\"pe\")}\n\t\t\t\t\t\t\t\ticon={<IconClock24 />}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t)}\n\t\t\t\t{showOrgUnitSelector && (\n\t\t\t\t\t<Tooltip content={i18n.t(\"Location\")}>\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<OrgUnitSelectorModal\n\t\t\t\t\t\t\t\tshowUserOptions\n\t\t\t\t\t\t\t\tsearchable\n\t\t\t\t\t\t\t\ttitle={i18n.t(\"Select location(s)\")}\n\t\t\t\t\t\t\t\tvalue={orgUnitSelection}\n\t\t\t\t\t\t\t\tonClose={() => setOpenFilter(undefined)}\n\t\t\t\t\t\t\t\thide={openFilter !== \"ou\"}\n\t\t\t\t\t\t\t\tonUpdate={onFilterUpdate(\"ou\")}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tonClick={() => setOpenFilter(\"ou\")}\n\t\t\t\t\t\t\t\ticon={<IconLocation24 />}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Visualization/components/VisualizationProvider/index.tsx"],"names":["DimensionsProvider","jsx","VisualizationTypeProvider","LayoutProvider","AnalyticsDataProvider"],"mappings":";;;;;;;;AAmBO,SAAS,qBAAsB,CAAA;AAAA,EACrC,MAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA;AACD,CAA+B,EAAA;AAC9B,EAAA,sCACEA,2BAAmB,EAAA,EAAA,UAAA,EACnB,QAAC,kBAAAC,cAAA,CAAAC,oCAAA,EAAA,EAA0B,QAAgB,WAAa,EAAA,IAAA,EACvD,QAAC,kBAAAD,cAAA,CAAAE,yBAAA,EAAA,EAAe,eAAe,MAC9B,EAAA,QAAA,kBAAAF,cAAA,CAACG,oCAAuB,QAAS,EAAA,CAAA,EAClC,GACD,CACD,EAAA,CAAA;AAEF","file":"index.js","sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Visualization/components/VisualizationProvider/index.tsx"],"names":["DimensionsProvider","jsx","VisualizationTypeProvider","LayoutProvider","AnalyticsDataProvider"],"mappings":";;;;;;;;AAmBO,SAAS,qBAAsB,CAAA;AAAA,EACrC,MAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA;AACD,CAA+B,EAAA;AAC9B,EAAA,sCACEA,2BAAmB,EAAA,EAAA,UAAA,EACnB,QAAC,kBAAAC,cAAA,CAAAC,oCAAA,EAAA,EAA0B,QAAgB,WAAa,EAAA,IAAA,EACvD,QAAC,kBAAAD,cAAA,CAAAE,yBAAA,EAAA,EAAe,eAAe,MAC9B,EAAA,QAAA,kBAAAF,cAAA,CAACG,oCAAuB,QAAS,EAAA,CAAA,EAClC,GACD,CACD,EAAA,CAAA;AAEF","file":"index.js","sourcesContent":["import { type ReactNode } from \"react\";\nimport { Layout, LayoutProvider } from \"../LayoutProvider/index.js\";\nimport { AnalyticsDimension } from \"@hisptz/dhis2-utils\";\nimport { DimensionsProvider } from \"../DimensionsProvider/index.js\";\nimport { AnalyticsDataProvider } from \"../AnalyticsDataProvider/index.js\";\nimport {\n\tVisualizationType,\n\tVisualizationTypeProvider,\n} from \"../VisualizationTypeProvider/index.js\";\nimport { VisualizationConfig } from \"../../index.js\";\n\nexport interface VisualizationProviderProps {\n\tchildren: ReactNode;\n\tlayout: Layout;\n\tdimensions: AnalyticsDimension;\n\ttype: VisualizationType;\n\tconfig: VisualizationConfig;\n}\n\nexport function VisualizationProvider({\n\tlayout,\n\tdimensions,\n\tchildren,\n\ttype,\n\tconfig,\n}: VisualizationProviderProps) {\n\treturn (\n\t\t<DimensionsProvider dimensions={dimensions}>\n\t\t\t<VisualizationTypeProvider config={config} defaultType={type}>\n\t\t\t\t<LayoutProvider defaultLayout={layout}>\n\t\t\t\t\t<AnalyticsDataProvider>{children}</AnalyticsDataProvider>\n\t\t\t\t</LayoutProvider>\n\t\t\t</VisualizationTypeProvider>\n\t\t</DimensionsProvider>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Visualization/components/VisualizationSelector/index.tsx"],"names":["i18n","forEach","set","useLayout","useAnalyticsData","useMemo","mapValues","dimension","jsx","DHIS2PivotTable","DHIS2Chart","useDimensions","findIndex","find","filter","value","DHIS2Map","useVisualizationType","CircularLoader","jsxs","Fragment"],"mappings":"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","file":"index.js","sourcesContent":["import React, { useMemo } from \"react\";\nimport { useVisualizationType } from \"../VisualizationTypeProvider/index.js\";\nimport { useAnalyticsData } from \"../AnalyticsDataProvider/index.js\";\nimport { CircularLoader } from \"@dhis2/ui\";\nimport {\n\tDHIS2PivotTable,\n\tDHIS2PivotTableOptions,\n} from \"../../../DHIS2PivotTable/index.js\";\nimport { useLayout } from \"../LayoutProvider/index.js\";\nimport { filter, find, findIndex, forEach, mapValues, set } from \"lodash\";\nimport { Dimension, useDimensions } from \"../DimensionsProvider/index.js\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { ChartConfig, DHIS2Chart } from \"../../../ChartAnalytics/index.js\";\nimport { VisualizationConfig } from \"../../index.js\";\nimport { DHIS2Map, MapProps } from \"../../../Map/index.js\";\nimport { OrgUnitSelection } from \"@hisptz/dhis2-utils\";\nimport {\n\tThematicLayerConfig,\n\tThematicLayerRawData,\n} from \"../../../Map/components/MapLayer/interfaces/index.js\";\nimport type { PivotTableLayoutProps } from \"../../../DHIS2PivotTable/components/Table/index.js\";\n\nexport interface VisualizationSelectorProps {\n\tconfig: VisualizationConfig;\n}\n\nexport function getDimensionLabel(dimension: Dimension) {\n\tswitch (dimension) {\n\t\tcase \"pe\":\n\t\t\treturn i18n.t(\"Period\");\n\t\tcase \"ou\":\n\t\t\treturn i18n.t(\"Organisation unit\");\n\t\tcase \"dx\":\n\t\t\treturn i18n.t(\"Data\");\n\t\tdefault:\n\t\t\treturn \"\";\n\t}\n}\n\nexport function getOrgUnitSelectionFromIds(ous: string[]) {\n\tconst orgUnitSelection: OrgUnitSelection = {\n\t\torgUnits: [],\n\t};\n\tforEach(ous, (ou) => {\n\t\tif (ou === \"USER_ORGUNIT\") {\n\t\t\tset(orgUnitSelection, [\"userOrgUnit\"], true);\n\t\t} else if (ou === \"USER_ORGUNIT_CHILDREN\") {\n\t\t\tset(orgUnitSelection, [\"userSubUnit\"], true);\n\t\t} else if (ou === \"USER_ORGUNIT_GRANDCHILDREN\") {\n\t\t\tset(orgUnitSelection, [\"userSubX2Unit\"], true);\n\t\t} else {\n\t\t\tconst orgUnits = [...(orgUnitSelection.orgUnits ?? [])];\n\t\t\torgUnits.push({\n\t\t\t\tid: ou,\n\t\t\t\tchildren: [],\n\t\t\t\tpath: \"\",\n\t\t\t});\n\t\t\tset(orgUnitSelection, [\"orgUnits\"], orgUnits);\n\t\t}\n\t});\n\treturn orgUnitSelection;\n}\n\nexport function PivotTableRenderer({\n\toptions,\n}: {\n\toptions: DHIS2PivotTableOptions & PivotTableLayoutProps;\n}) {\n\tconst [layout] = useLayout();\n\tconst { analytics } = useAnalyticsData();\n\n\tconst sanitizedLayout = useMemo(() => {\n\t\treturn mapValues(layout, (dimension) =>\n\t\t\tdimension.map((dimension) => ({\n\t\t\t\tdimension,\n\t\t\t\tlabel: getDimensionLabel(dimension),\n\t\t\t})),\n\t\t);\n\t}, [layout]);\n\n\tif (!analytics) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DHIS2PivotTable\n\t\t\ttableProps={{\n\t\t\t\tscrollHeight: options.scrollHeight ?? \"100%\",\n\t\t\t\tscrollWidth: options.scrollWidth ?? \"100%\",\n\t\t\t\twidth: options.width ?? \"100%\",\n\t\t\t}}\n\t\t\tanalytics={analytics}\n\t\t\tconfig={{ layout: sanitizedLayout, options }}\n\t\t/>\n\t);\n}\n\nexport function ChartRenderer({ options }: { options: ChartConfig }) {\n\tconst { analytics } = useAnalyticsData();\n\tif (!analytics) {\n\t\treturn null;\n\t}\n\treturn <DHIS2Chart analytics={analytics} config={{ ...options }} />;\n}\n\nexport function MapRenderer({\n\toptions,\n}: {\n\toptions: Omit<MapProps, \"orgUnitSelection\" | \"periodSelection\">;\n}) {\n\tconst [dimensions] = useDimensions();\n\tconst { analytics } = useAnalyticsData();\n\tconst orgUnitSelection: OrgUnitSelection = useMemo(() => {\n\t\treturn getOrgUnitSelectionFromIds(dimensions.ou ?? []);\n\t}, [dimensions.ou]);\n\n\tconst thematicLayers: ThematicLayerConfig[] = useMemo(() => {\n\t\tconst valueIndex =\n\t\t\tfindIndex(analytics.headers, [\"name\", \"value\"]) ?? -1;\n\t\treturn (\n\t\t\tanalytics.metaData?.dimensions[\"dx\"]?.map((dataId) => {\n\t\t\t\tconst config = find(options.thematicLayers, [\"id\", dataId]);\n\t\t\t\tconst data: ThematicLayerRawData[] =\n\t\t\t\t\tanalytics.metaData?.dimensions?.ou?.map((ouId) => {\n\t\t\t\t\t\tconst values = filter(\n\t\t\t\t\t\t\tanalytics.rows,\n\t\t\t\t\t\t\t(row) => row.includes(dataId) && row.includes(ouId),\n\t\t\t\t\t\t) as unknown as string[];\n\t\t\t\t\t\tconst value = values.reduce(\n\t\t\t\t\t\t\t(acc, value) => acc + parseFloat(value[valueIndex]),\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tdata: value,\n\t\t\t\t\t\t\tdataItem: dataId,\n\t\t\t\t\t\t\torgUnit: ouId,\n\t\t\t\t\t\t};\n\t\t\t\t\t}) ?? [];\n\t\t\t\treturn {\n\t\t\t\t\t...config,\n\t\t\t\t\tdata,\n\t\t\t\t} as ThematicLayerConfig;\n\t\t\t}) ?? []\n\t\t);\n\t}, [analytics]);\n\n\treturn (\n\t\t<DHIS2Map\n\t\t\torgUnitSelection={orgUnitSelection}\n\t\t\tthematicLayers={thematicLayers}\n\t\t/>\n\t);\n}\n\nexport function VisualizationSelector({ config }: VisualizationSelectorProps) {\n\tconst [type] = useVisualizationType();\n\tconst { analytics, loading } = useAnalyticsData();\n\n\tif (loading) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<CircularLoader small />\n\t\t\t</div>\n\t\t);\n\t}\n\tif (!analytics) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{type === \"pivotTable\" && (\n\t\t\t\t<PivotTableRenderer\n\t\t\t\t\toptions={config?.pivotTable as DHIS2PivotTableOptions}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{type === \"chart\" && (\n\t\t\t\t<ChartRenderer options={config?.chart as ChartConfig} />\n\t\t\t)}\n\t\t\t{type === \"map\" && (\n\t\t\t\t<MapRenderer\n\t\t\t\t\toptions={\n\t\t\t\t\t\tconfig?.map as Omit<\n\t\t\t\t\t\t\tMapProps,\n\t\t\t\t\t\t\t\"orgUnitSelection\" | \"periodSelection\"\n\t\t\t\t\t\t>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Visualization/components/VisualizationSelector/index.tsx"],"names":["i18n","forEach","set","useLayout","useAnalyticsData","useMemo","mapValues","dimension","jsx","DHIS2PivotTable","DHIS2Chart","useDimensions","findIndex","find","filter","value","DHIS2Map","useVisualizationType","CircularLoader","jsxs","Fragment"],"mappings":"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","file":"index.js","sourcesContent":["import { useMemo } from \"react\";\nimport { useVisualizationType } from \"../VisualizationTypeProvider/index.js\";\nimport { useAnalyticsData } from \"../AnalyticsDataProvider/index.js\";\nimport { CircularLoader } from \"@dhis2/ui\";\nimport {\n\tDHIS2PivotTable,\n\tDHIS2PivotTableOptions,\n} from \"../../../DHIS2PivotTable/index.js\";\nimport { useLayout } from \"../LayoutProvider/index.js\";\nimport { filter, find, findIndex, forEach, mapValues, set } from \"lodash\";\nimport { Dimension, useDimensions } from \"../DimensionsProvider/index.js\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { ChartConfig, DHIS2Chart } from \"../../../ChartAnalytics/index.js\";\nimport { VisualizationConfig } from \"../../index.js\";\nimport { DHIS2Map, MapProps } from \"../../../Map/index.js\";\nimport { OrgUnitSelection } from \"@hisptz/dhis2-utils\";\nimport {\n\tThematicLayerConfig,\n\tThematicLayerRawData,\n} from \"../../../Map/components/MapLayer/interfaces/index.js\";\nimport type { PivotTableLayoutProps } from \"../../../DHIS2PivotTable/components/Table/index.js\";\n\nexport interface VisualizationSelectorProps {\n\tconfig: VisualizationConfig;\n}\n\nexport function getDimensionLabel(dimension: Dimension) {\n\tswitch (dimension) {\n\t\tcase \"pe\":\n\t\t\treturn i18n.t(\"Period\");\n\t\tcase \"ou\":\n\t\t\treturn i18n.t(\"Organisation unit\");\n\t\tcase \"dx\":\n\t\t\treturn i18n.t(\"Data\");\n\t\tdefault:\n\t\t\treturn \"\";\n\t}\n}\n\nexport function getOrgUnitSelectionFromIds(ous: string[]) {\n\tconst orgUnitSelection: OrgUnitSelection = {\n\t\torgUnits: [],\n\t};\n\tforEach(ous, (ou) => {\n\t\tif (ou === \"USER_ORGUNIT\") {\n\t\t\tset(orgUnitSelection, [\"userOrgUnit\"], true);\n\t\t} else if (ou === \"USER_ORGUNIT_CHILDREN\") {\n\t\t\tset(orgUnitSelection, [\"userSubUnit\"], true);\n\t\t} else if (ou === \"USER_ORGUNIT_GRANDCHILDREN\") {\n\t\t\tset(orgUnitSelection, [\"userSubX2Unit\"], true);\n\t\t} else {\n\t\t\tconst orgUnits = [...(orgUnitSelection.orgUnits ?? [])];\n\t\t\torgUnits.push({\n\t\t\t\tid: ou,\n\t\t\t\tchildren: [],\n\t\t\t\tpath: \"\",\n\t\t\t});\n\t\t\tset(orgUnitSelection, [\"orgUnits\"], orgUnits);\n\t\t}\n\t});\n\treturn orgUnitSelection;\n}\n\nexport function PivotTableRenderer({\n\toptions,\n}: {\n\toptions: DHIS2PivotTableOptions & PivotTableLayoutProps;\n}) {\n\tconst [layout] = useLayout();\n\tconst { analytics } = useAnalyticsData();\n\n\tconst sanitizedLayout = useMemo(() => {\n\t\treturn mapValues(layout, (dimension) =>\n\t\t\tdimension.map((dimension) => ({\n\t\t\t\tdimension,\n\t\t\t\tlabel: getDimensionLabel(dimension),\n\t\t\t})),\n\t\t);\n\t}, [layout]);\n\n\tif (!analytics) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DHIS2PivotTable\n\t\t\ttableProps={{\n\t\t\t\tscrollHeight: options.scrollHeight ?? \"100%\",\n\t\t\t\tscrollWidth: options.scrollWidth ?? \"100%\",\n\t\t\t\twidth: options.width ?? \"100%\",\n\t\t\t}}\n\t\t\tanalytics={analytics}\n\t\t\tconfig={{ layout: sanitizedLayout, options }}\n\t\t/>\n\t);\n}\n\nexport function ChartRenderer({ options }: { options: ChartConfig }) {\n\tconst { analytics } = useAnalyticsData();\n\tif (!analytics) {\n\t\treturn null;\n\t}\n\treturn <DHIS2Chart analytics={analytics} config={{ ...options }} />;\n}\n\nexport function MapRenderer({\n\toptions,\n}: {\n\toptions: Omit<MapProps, \"orgUnitSelection\" | \"periodSelection\">;\n}) {\n\tconst [dimensions] = useDimensions();\n\tconst { analytics } = useAnalyticsData();\n\tconst orgUnitSelection: OrgUnitSelection = useMemo(() => {\n\t\treturn getOrgUnitSelectionFromIds(dimensions.ou ?? []);\n\t}, [dimensions.ou]);\n\n\tconst thematicLayers: ThematicLayerConfig[] = useMemo(() => {\n\t\tconst valueIndex =\n\t\t\tfindIndex(analytics.headers, [\"name\", \"value\"]) ?? -1;\n\t\treturn (\n\t\t\tanalytics.metaData?.dimensions[\"dx\"]?.map((dataId) => {\n\t\t\t\tconst config = find(options.thematicLayers, [\"id\", dataId]);\n\t\t\t\tconst data: ThematicLayerRawData[] =\n\t\t\t\t\tanalytics.metaData?.dimensions?.ou?.map((ouId) => {\n\t\t\t\t\t\tconst values = filter(\n\t\t\t\t\t\t\tanalytics.rows,\n\t\t\t\t\t\t\t(row) => row.includes(dataId) && row.includes(ouId),\n\t\t\t\t\t\t) as unknown as string[];\n\t\t\t\t\t\tconst value = values.reduce(\n\t\t\t\t\t\t\t(acc, value) => acc + parseFloat(value[valueIndex]),\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tdata: value,\n\t\t\t\t\t\t\tdataItem: dataId,\n\t\t\t\t\t\t\torgUnit: ouId,\n\t\t\t\t\t\t};\n\t\t\t\t\t}) ?? [];\n\t\t\t\treturn {\n\t\t\t\t\t...config,\n\t\t\t\t\tdata,\n\t\t\t\t} as ThematicLayerConfig;\n\t\t\t}) ?? []\n\t\t);\n\t}, [analytics]);\n\n\treturn (\n\t\t<DHIS2Map\n\t\t\torgUnitSelection={orgUnitSelection}\n\t\t\tthematicLayers={thematicLayers}\n\t\t/>\n\t);\n}\n\nexport function VisualizationSelector({ config }: VisualizationSelectorProps) {\n\tconst [type] = useVisualizationType();\n\tconst { analytics, loading } = useAnalyticsData();\n\n\tif (loading) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<CircularLoader small />\n\t\t\t</div>\n\t\t);\n\t}\n\tif (!analytics) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{type === \"pivotTable\" && (\n\t\t\t\t<PivotTableRenderer\n\t\t\t\t\toptions={config?.pivotTable as DHIS2PivotTableOptions}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{type === \"chart\" && (\n\t\t\t\t<ChartRenderer options={config?.chart as ChartConfig} />\n\t\t\t)}\n\t\t\t{type === \"map\" && (\n\t\t\t\t<MapRenderer\n\t\t\t\t\toptions={\n\t\t\t\t\t\tconfig?.map as Omit<\n\t\t\t\t\t\t\tMapProps,\n\t\t\t\t\t\t\t\"orgUnitSelection\" | \"periodSelection\"\n\t\t\t\t\t\t>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Visualization/components/VisualizationTypeProvider/index.tsx"],"names":["createContext","useContext","useState","jsx"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Visualization/components/VisualizationTypeProvider/index.tsx"],"names":["createContext","useContext","useState","jsx"],"mappings":";;;;;AAYa,MAAA,wBAAA,GACZA,oBAAiC,YAAY;AACjC,MAAA,0BAAA,GAA6BA,oBAExC,MAAS;AACE,MAAA,uBAAA,GAA0BA,oBAErC,MAAS;AAQJ,SAAS,oBAAuB,GAAA;AACtC,EAAO,OAAA;AAAA,IACNC,iBAAW,wBAAwB,CAAA;AAAA,IACnCA,iBAAW,uBAAuB;AAAA,GACnC;AACD;AAEO,SAAS,sBAAyB,GAAA;AACxC,EAAA,OAAOA,iBAAW,0BAA0B,CAAA;AAC7C;AAEO,SAAS,yBAA0B,CAAA;AAAA,EACzC,QAAA;AAAA,EACA,WAAA;AAAA,EACA;AACD,CAAmC,EAAA;AAClC,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIC,eAA4B,WAAW,CAAA;AAE/D,EACC,uBAAAC,cAAA,CAAC,yBAAyB,QAAzB,EAAA,EAAkC,OAAO,IACzC,EAAA,QAAA,kBAAAA,cAAA,CAAC,2BAA2B,QAA3B,EAAA,EAAoC,OAAO,MAC3C,EAAA,QAAA,kBAAAA,cAAA,CAAC,wBAAwB,QAAxB,EAAA,EAAiC,OAAO,OACvC,EAAA,QAAA,EACF,GACD,CACD,EAAA,CAAA;AAEF","file":"index.js","sourcesContent":["import {\n\tcreateContext,\n\ttype Dispatch,\n\ttype ReactNode,\n\ttype SetStateAction,\n\tuseContext,\n\tuseState,\n} from \"react\";\nimport { VisualizationConfig } from \"../../index.js\";\n\nexport type VisualizationType = \"pivotTable\" | \"chart\" | \"map\";\n\nexport const VisualizationTypeContext =\n\tcreateContext<VisualizationType>(\"pivotTable\");\nexport const VisualizationConfigContext = createContext<\n\tVisualizationConfig | undefined\n>(undefined);\nexport const VisualizationTypeSetter = createContext<\n\tDispatch<SetStateAction<VisualizationType>> | undefined\n>(undefined);\n\nexport interface VisualizationTypeProviderProps {\n\tchildren: ReactNode;\n\tdefaultType: VisualizationType;\n\tconfig: VisualizationConfig;\n}\n\nexport function useVisualizationType() {\n\treturn [\n\t\tuseContext(VisualizationTypeContext),\n\t\tuseContext(VisualizationTypeSetter),\n\t] as [VisualizationType, Dispatch<SetStateAction<VisualizationType>>];\n}\n\nexport function useVisualizationConfig() {\n\treturn useContext(VisualizationConfigContext);\n}\n\nexport function VisualizationTypeProvider({\n\tchildren,\n\tdefaultType,\n\tconfig,\n}: VisualizationTypeProviderProps) {\n\tconst [type, setType] = useState<VisualizationType>(defaultType);\n\n\treturn (\n\t\t<VisualizationTypeContext.Provider value={type}>\n\t\t\t<VisualizationConfigContext.Provider value={config}>\n\t\t\t\t<VisualizationTypeSetter.Provider value={setType}>\n\t\t\t\t\t{children}\n\t\t\t\t</VisualizationTypeSetter.Provider>\n\t\t\t</VisualizationConfigContext.Provider>\n\t\t</VisualizationTypeContext.Provider>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Visualization/components/VisualizationTypeSelector/index.tsx"],"names":["IconTable24","i18n","IconVisualizationColumn24","IconWorld24","useVisualizationType","useVisualizationConfig","useMemo","jsx","Tooltip","Button"],"mappings":";;;;;;;;;;;;AAeA,MAAM,2BAA8B,GAAA;AAAA,EACnC;AAAA,IACC,EAAI,EAAA,YAAA;AAAA,IACJ,IAAA,iCAAOA,cAAY,EAAA,EAAA,CAAA;AAAA,IACnB,KAAA,EAAOC,qBAAK,CAAA,CAAA,CAAE,aAAa;AAAA,GAC5B;AAAA,EACA;AAAA,IACC,EAAI,EAAA,OAAA;AAAA,IACJ,IAAA,iCAAOC,4BAA0B,EAAA,EAAA,CAAA;AAAA,IACjC,KAAA,EAAOD,qBAAK,CAAA,CAAA,CAAE,OAAO;AAAA,GACtB;AAAA,EACA;AAAA,IACC,EAAI,EAAA,KAAA;AAAA,IACJ,IAAA,iCAAOE,cAAY,EAAA,EAAA,CAAA;AAAA,IACnB,KAAA,EAAOF,qBAAK,CAAA,CAAA,CAAE,KAAK;AAAA;AAErB,CAAA;AAEO,SAAS,yBAA4B,GAAA;AAC3C,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIG,6BAAqB,EAAA;AAC7C,EAAA,MAAM,SAASC,+BAAuB,EAAA;AAEtC,EAAA,MAAM,KAAQ,GAAAC,aAAA;AAAA,IACb,MACC,2BAAA,CAA4B,MAAO,CAAA,CAAC,aAAkB,KAAA;AACrD,MACC,OAAA,MAAA,CAAO,IAAK,CAAA,MAAA,IAAU,EAAE,CAAE,CAAA,QAAA,CAAS,aAAc,CAAA,EAAE,CACnD,IAAA,aAAA,CAAc,EAAO,KAAA,IAAA;AAAA,KAEtB,CAAA;AAAA,IACF,CAAC,MAAM,MAAM;AAAA,GACd;AAEA,EAAA,sCACE,KAAI,EAAA,EAAA,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,GAAK,EAAA,CAAA,EAClC,EAAA,QAAA,EAAA,KAAA,CAAM,IAAI,CAAC,EAAE,IAAM,EAAA,KAAA,EAAO,IAAS,KAAA;AACnC,IACC,uBAAAC,cAAA;AAAA,MAACC,UAAA;AAAA,MAAA;AAAA,QAEA,OAAA,EAASP,qBAAK,CAAA,CAAA,CAAE,kBAAoB,EAAA;AAAA,UACnC,IAAA,EAAM,MAAM,WAAY;AAAA,SACxB,CAAA;AAAA,QAED,QAAA,kBAAAM,cAAA;AAAA,UAACE,SAAA;AAAA,UAAA;AAAA,YACA,OAAA,EAAS,MAAM,OAAA,CAAQ,EAAuB,CAAA;AAAA,YAC9C;AAAA;AAAA;AACD,OAAA;AAAA,MARK,GAAG,KAAK,CAAA,QAAA;AAAA,KASd;AAAA,GAED,CACF,EAAA,CAAA;AAEF","file":"index.js","sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Visualization/components/VisualizationTypeSelector/index.tsx"],"names":["IconTable24","i18n","IconVisualizationColumn24","IconWorld24","useVisualizationType","useVisualizationConfig","useMemo","jsx","Tooltip","Button"],"mappings":";;;;;;;;;;;;AAeA,MAAM,2BAA8B,GAAA;AAAA,EACnC;AAAA,IACC,EAAI,EAAA,YAAA;AAAA,IACJ,IAAA,iCAAOA,cAAY,EAAA,EAAA,CAAA;AAAA,IACnB,KAAA,EAAOC,qBAAK,CAAA,CAAA,CAAE,aAAa;AAAA,GAC5B;AAAA,EACA;AAAA,IACC,EAAI,EAAA,OAAA;AAAA,IACJ,IAAA,iCAAOC,4BAA0B,EAAA,EAAA,CAAA;AAAA,IACjC,KAAA,EAAOD,qBAAK,CAAA,CAAA,CAAE,OAAO;AAAA,GACtB;AAAA,EACA;AAAA,IACC,EAAI,EAAA,KAAA;AAAA,IACJ,IAAA,iCAAOE,cAAY,EAAA,EAAA,CAAA;AAAA,IACnB,KAAA,EAAOF,qBAAK,CAAA,CAAA,CAAE,KAAK;AAAA;AAErB,CAAA;AAEO,SAAS,yBAA4B,GAAA;AAC3C,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIG,6BAAqB,EAAA;AAC7C,EAAA,MAAM,SAASC,+BAAuB,EAAA;AAEtC,EAAA,MAAM,KAAQ,GAAAC,aAAA;AAAA,IACb,MACC,2BAAA,CAA4B,MAAO,CAAA,CAAC,aAAkB,KAAA;AACrD,MACC,OAAA,MAAA,CAAO,IAAK,CAAA,MAAA,IAAU,EAAE,CAAE,CAAA,QAAA,CAAS,aAAc,CAAA,EAAE,CACnD,IAAA,aAAA,CAAc,EAAO,KAAA,IAAA;AAAA,KAEtB,CAAA;AAAA,IACF,CAAC,MAAM,MAAM;AAAA,GACd;AAEA,EAAA,sCACE,KAAI,EAAA,EAAA,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,GAAK,EAAA,CAAA,EAClC,EAAA,QAAA,EAAA,KAAA,CAAM,IAAI,CAAC,EAAE,IAAM,EAAA,KAAA,EAAO,IAAS,KAAA;AACnC,IACC,uBAAAC,cAAA;AAAA,MAACC,UAAA;AAAA,MAAA;AAAA,QAEA,OAAA,EAASP,qBAAK,CAAA,CAAA,CAAE,kBAAoB,EAAA;AAAA,UACnC,IAAA,EAAM,MAAM,WAAY;AAAA,SACxB,CAAA;AAAA,QAED,QAAA,kBAAAM,cAAA;AAAA,UAACE,SAAA;AAAA,UAAA;AAAA,YACA,OAAA,EAAS,MAAM,OAAA,CAAQ,EAAuB,CAAA;AAAA,YAC9C;AAAA;AAAA;AACD,OAAA;AAAA,MARK,GAAG,KAAK,CAAA,QAAA;AAAA,KASd;AAAA,GAED,CACF,EAAA,CAAA;AAEF","file":"index.js","sourcesContent":["import { useMemo } from \"react\";\nimport {\n\tuseVisualizationConfig,\n\tuseVisualizationType,\n\tVisualizationType,\n} from \"../VisualizationTypeProvider/index.js\";\nimport {\n\tButton,\n\tIconTable24,\n\tIconVisualizationColumn24,\n\tIconWorld24,\n\tTooltip,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\n\nconst supportedVisualizationTypes = [\n\t{\n\t\tid: \"pivotTable\",\n\t\ticon: <IconTable24 />,\n\t\tlabel: i18n.t(\"Pivot table\"),\n\t},\n\t{\n\t\tid: \"chart\",\n\t\ticon: <IconVisualizationColumn24 />,\n\t\tlabel: i18n.t(\"Chart\"),\n\t},\n\t{\n\t\tid: \"map\",\n\t\ticon: <IconWorld24 />,\n\t\tlabel: i18n.t(\"Map\"),\n\t},\n];\n\nexport function VisualizationTypeSelector() {\n\tconst [type, setType] = useVisualizationType();\n\tconst config = useVisualizationConfig();\n\n\tconst types = useMemo(\n\t\t() =>\n\t\t\tsupportedVisualizationTypes.filter((supportedType) => {\n\t\t\t\treturn (\n\t\t\t\t\tObject.keys(config ?? {}).includes(supportedType.id) &&\n\t\t\t\t\tsupportedType.id !== type\n\t\t\t\t);\n\t\t\t}),\n\t\t[type, config],\n\t);\n\n\treturn (\n\t\t<div style={{ display: \"flex\", gap: 8 }}>\n\t\t\t{types.map(({ icon, label, id }) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Tooltip\n\t\t\t\t\t\tkey={`${label}-tooltip`}\n\t\t\t\t\t\tcontent={i18n.t(\"View as {{type}}\", {\n\t\t\t\t\t\t\ttype: label.toLowerCase(),\n\t\t\t\t\t\t})}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tonClick={() => setType(id as VisualizationType)}\n\t\t\t\t\t\t\ticon={icon}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n}\n"]}
|