@hisptz/dhis2-analytics 2.1.27 → 2.1.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ChartAnalytics/DHIS2Chart.js.map +1 -1
- package/dist/components/ChartAnalytics/components/DownloadMenu/components/Menu.js.map +1 -1
- package/dist/components/ChartAnalytics/components/DownloadMenu/constants/menu.js.map +1 -1
- package/dist/components/ChartAnalytics/components/DownloadMenu/index.js.map +1 -1
- package/dist/components/ChartAnalytics/hooks/useChart.js.map +1 -1
- package/dist/components/ChartAnalytics/models/area.js.map +1 -1
- package/dist/components/ChartAnalytics/models/bar.js.map +1 -1
- package/dist/components/ChartAnalytics/models/column.js.map +1 -1
- package/dist/components/ChartAnalytics/models/gauge.js.map +1 -1
- package/dist/components/ChartAnalytics/models/index.js.map +1 -1
- package/dist/components/ChartAnalytics/models/line.js.map +1 -1
- package/dist/components/ChartAnalytics/models/multi-series.js.map +1 -1
- package/dist/components/ChartAnalytics/models/pie.js.map +1 -1
- package/dist/components/ChartAnalytics/models/radar.js.map +1 -1
- package/dist/components/ChartAnalytics/models/scatter.js.map +1 -1
- package/dist/components/ChartAnalytics/services/export.js.map +1 -1
- package/dist/components/ChartAnalytics/utils/chart.js.map +1 -1
- package/dist/components/CircularProgressDashboard/CircularProgressIndicator.js.map +1 -1
- package/dist/components/DHIS2PivotTable/DHIS2PivotTable.js.map +1 -1
- package/dist/components/DHIS2PivotTable/components/Table/index.js.map +1 -1
- package/dist/components/DHIS2PivotTable/components/TableBody/index.js.map +1 -1
- package/dist/components/DHIS2PivotTable/components/TableHeaders/index.js.map +1 -1
- package/dist/components/DHIS2PivotTable/services/engine.js.map +1 -1
- package/dist/components/DHIS2PivotTable/state/engine.js.map +1 -1
- package/dist/components/DHIS2PivotTable/utils/color.js.map +1 -1
- package/dist/components/Map/DHIS2Map.js.map +1 -1
- package/dist/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.js.map +1 -1
- package/dist/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.js.map +1 -1
- package/dist/components/Map/components/EarthEngineLayerConfiguration/components/AggregationSelector.js.map +1 -1
- package/dist/components/Map/components/EarthEngineLayerConfiguration/components/ColorConfig.js.map +1 -1
- package/dist/components/Map/components/EarthEngineLayerConfiguration/components/Name.js.map +1 -1
- package/dist/components/Map/components/EarthEngineLayerConfiguration/components/PeriodSelector.js.map +1 -1
- package/dist/components/Map/components/EarthEngineLayerConfiguration/components/StylesConfig.js.map +1 -1
- package/dist/components/Map/components/EarthEngineLayerConfiguration/components/TypeField.js.map +1 -1
- package/dist/components/Map/components/EarthEngineLayerConfiguration/hooks/data.js.map +1 -1
- package/dist/components/Map/components/MapArea/index.js.map +1 -1
- package/dist/components/Map/components/MapControls/components/CustomControl/index.js.map +1 -1
- package/dist/components/Map/components/MapControls/components/DownloadControl/index.js.map +1 -1
- package/dist/components/Map/components/MapControls/components/FullscreenControl/index.js.map +1 -1
- package/dist/components/Map/components/MapControls/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/BoundaryLayer/hooks/useBoundaryData.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/BoundaryLayer/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/components/EarthEngineLegend.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/constants/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/hooks/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/services/api.js +22 -22
- package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/services/api.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/services/engine.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/utils/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/LegendArea/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/PointLayer/components/PointLegend/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/PointLayer/hooks/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/PointLayer/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubble.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubbles.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/LabelMarker/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/hooks/config.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/utils/label.js.map +1 -1
- package/dist/components/Map/components/MapLayer/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/interfaces/index.js.map +1 -1
- package/dist/components/Map/components/MapProvider/components/MapLayerProvider/hooks/index.js.map +1 -1
- package/dist/components/Map/components/MapProvider/components/MapLayerProvider/index.js.map +1 -1
- package/dist/components/Map/components/MapProvider/hooks/index.js.map +1 -1
- package/dist/components/Map/components/MapProvider/index.js +1 -1
- package/dist/components/Map/components/MapProvider/index.js.map +1 -1
- package/dist/components/Map/components/MapTitle/index.js.map +1 -1
- package/dist/components/Map/components/MapUpdater/index.js.map +1 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfigModal.js.map +1 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.js.map +1 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/components/ColorScale/index.js.map +1 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/constants/colors.js.map +1 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/index.js.map +1 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/utils/colors.js.map +1 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/components/CustomLegend/index.js.map +1 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/components/IndicatorSelectorModal/index.js.map +1 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/components/LegendSetSelector/index.js.map +1 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/components/RadiusField.js.map +1 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/components/TypeField.js.map +1 -1
- package/dist/components/Map/constants/colors.js.map +1 -1
- package/dist/components/Map/constants/legendSet.js.map +1 -1
- package/dist/components/Map/hooks/map.js.map +1 -1
- package/dist/components/Map/state/index.js.map +1 -1
- package/dist/components/Map/utils/colors.js.map +1 -1
- package/dist/components/Map/utils/helpers.js.map +1 -1
- package/dist/components/Map/utils/map.js.map +1 -1
- package/dist/components/SingleValueContainer/SingleValueVisualizer.js.map +1 -1
- package/dist/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.js.map +1 -1
- package/dist/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.js.map +1 -1
- package/dist/components/Visualization/components/AnalyticsDataProvider/index.js.map +1 -1
- package/dist/components/Visualization/components/DimensionsProvider/index.js.map +1 -1
- package/dist/components/Visualization/components/LayoutProvider/index.js.map +1 -1
- package/dist/components/Visualization/components/VisualizationDimensionSelector/index.js.map +1 -1
- package/dist/components/Visualization/components/VisualizationProvider/index.js.map +1 -1
- package/dist/components/Visualization/components/VisualizationSelector/index.js.map +1 -1
- package/dist/components/Visualization/components/VisualizationTypeProvider/index.js.map +1 -1
- package/dist/components/Visualization/components/VisualizationTypeSelector/index.js.map +1 -1
- package/dist/components/Visualization/index.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/DHIS2Chart.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/components/DownloadMenu/components/Menu.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/components/DownloadMenu/constants/menu.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/components/DownloadMenu/index.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/hooks/useChart.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/models/area.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/models/bar.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/models/column.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/models/gauge.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/models/index.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/models/line.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/models/multi-series.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/models/pie.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/models/radar.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/models/scatter.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/services/export.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/utils/chart.js.map +1 -1
- package/dist/esm/components/CircularProgressDashboard/CircularProgressIndicator.js.map +1 -1
- package/dist/esm/components/DHIS2PivotTable/DHIS2PivotTable.js.map +1 -1
- package/dist/esm/components/DHIS2PivotTable/components/Table/index.js.map +1 -1
- package/dist/esm/components/DHIS2PivotTable/components/TableBody/index.js.map +1 -1
- package/dist/esm/components/DHIS2PivotTable/components/TableHeaders/index.js.map +1 -1
- package/dist/esm/components/DHIS2PivotTable/services/engine.js.map +1 -1
- package/dist/esm/components/DHIS2PivotTable/state/engine.js.map +1 -1
- package/dist/esm/components/DHIS2PivotTable/utils/color.js.map +1 -1
- package/dist/esm/components/Map/DHIS2Map.js.map +1 -1
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.js.map +1 -1
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.js.map +1 -1
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/AggregationSelector.js.map +1 -1
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/ColorConfig.js.map +1 -1
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/Name.js.map +1 -1
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/PeriodSelector.js.map +1 -1
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/StylesConfig.js.map +1 -1
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/TypeField.js.map +1 -1
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/hooks/data.js.map +1 -1
- package/dist/esm/components/Map/components/MapArea/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapControls/components/CustomControl/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapControls/components/DownloadControl/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapControls/components/FullscreenControl/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapControls/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/BoundaryLayer/hooks/useBoundaryData.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/BoundaryLayer/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/components/EarthEngineLegend.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/constants/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/hooks/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/services/api.js +22 -22
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/services/api.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/services/engine.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/utils/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/LegendArea/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/PointLayer/components/PointLegend/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/PointLayer/hooks/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/PointLayer/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubble.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubbles.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/LabelMarker/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/hooks/config.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/utils/label.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/interfaces/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapProvider/components/MapLayerProvider/hooks/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapProvider/components/MapLayerProvider/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapProvider/hooks/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapProvider/index.js +1 -1
- package/dist/esm/components/Map/components/MapProvider/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapTitle/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapUpdater/index.js.map +1 -1
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfigModal.js.map +1 -1
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.js.map +1 -1
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/components/ColorScale/index.js.map +1 -1
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/constants/colors.js.map +1 -1
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/index.js.map +1 -1
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/utils/colors.js.map +1 -1
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/CustomLegend/index.js.map +1 -1
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/IndicatorSelectorModal/index.js.map +1 -1
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/LegendSetSelector/index.js.map +1 -1
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/RadiusField.js.map +1 -1
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/TypeField.js.map +1 -1
- package/dist/esm/components/Map/constants/colors.js.map +1 -1
- package/dist/esm/components/Map/constants/legendSet.js.map +1 -1
- package/dist/esm/components/Map/hooks/map.js.map +1 -1
- package/dist/esm/components/Map/state/index.js.map +1 -1
- package/dist/esm/components/Map/utils/colors.js.map +1 -1
- package/dist/esm/components/Map/utils/helpers.js.map +1 -1
- package/dist/esm/components/Map/utils/map.js.map +1 -1
- package/dist/esm/components/SingleValueContainer/SingleValueVisualizer.js.map +1 -1
- package/dist/esm/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.js.map +1 -1
- package/dist/esm/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.js.map +1 -1
- package/dist/esm/components/Visualization/components/AnalyticsDataProvider/index.js.map +1 -1
- package/dist/esm/components/Visualization/components/DimensionsProvider/index.js.map +1 -1
- package/dist/esm/components/Visualization/components/LayoutProvider/index.js.map +1 -1
- package/dist/esm/components/Visualization/components/VisualizationDimensionSelector/index.js.map +1 -1
- package/dist/esm/components/Visualization/components/VisualizationProvider/index.js.map +1 -1
- package/dist/esm/components/Visualization/components/VisualizationSelector/index.js.map +1 -1
- package/dist/esm/components/Visualization/components/VisualizationTypeProvider/index.js.map +1 -1
- package/dist/esm/components/Visualization/components/VisualizationTypeSelector/index.js.map +1 -1
- package/dist/esm/components/Visualization/index.js.map +1 -1
- package/dist/package.json +63 -0
- package/dist/types/components/ChartAnalytics/services/export.d.ts.map +1 -1
- package/dist/types/components/DHIS2PivotTable/components/TableHeaders/index.d.ts.map +1 -1
- package/package.json +8 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Map/utils/map.ts"],"names":["find","legend","filter","isEmpty","forEach","sortBy","isString","compact","defaultClasses","defaultColorScaleName","getColorPalette"],"mappings":";;;;;AAqBO,SAAS,gBAAA,CAAiB,GAAsB,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Map/utils/map.ts"],"names":["find","legend","filter","isEmpty","forEach","sortBy","isString","compact","defaultClasses","defaultColorScaleName","getColorPalette"],"mappings":"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","file":"map.js","sourcesContent":["import type {\n\tLegend,\n\tOrganisationUnit,\n\tOrgUnitSelection,\n} from \"@hisptz/dhis2-utils\";\nimport { LeafletMouseEvent } from \"leaflet\";\nimport {\n\tcompact,\n\tfilter,\n\tfind,\n\tforEach,\n\tisEmpty,\n\tisString,\n\tsortBy,\n} from \"lodash\";\nimport {\n\tdefaultClasses,\n\tdefaultColorScaleName,\n\tgetColorPalette,\n} from \"./colors.js\";\n\nexport function highlightFeature(e: LeafletMouseEvent, style: any) {\n\tconst layer = e.target;\n\tlayer.setStyle(style);\n\t// layer.bringToFront();\n}\n\nexport function resetHighlight(e: LeafletMouseEvent, defaultStyle: any) {\n\tconst layer = e.target;\n\tlayer.setStyle(defaultStyle);\n\t// layer.bringToBack();\n}\n\nexport function getColorFromLegendSet(\n\tlegends: Legend[],\n\tvalue?: number,\n): string {\n\tif (!value) {\n\t\treturn \"transparent\";\n\t}\n\tconst legend: any =\n\t\tfind(\n\t\t\tlegends ?? [],\n\t\t\t(legend: any) =>\n\t\t\t\tlegend?.startValue <= value && legend?.endValue >= value,\n\t\t) ?? {};\n\treturn legend.color ? legend.color : \"transparent\";\n}\n\nexport function getLegendCount(legend: any, data: any) {\n\tconst { startValue, endValue } = legend;\n\treturn filter(data, (d: any) => d.data >= startValue && d.data <= endValue)\n\t\t.length;\n}\n\nexport function getOrgUnitsSelection(orgUnitSelection: OrgUnitSelection) {\n\tconst orgUnits = [];\n\tif (orgUnitSelection.userOrgUnit) {\n\t\torgUnits.push(\"USER_ORGUNIT\");\n\t}\n\n\tif (orgUnitSelection.userSubUnit) {\n\t\torgUnits.push(\"USER_ORGUNIT_CHILDREN\");\n\t}\n\n\tif (orgUnitSelection.userSubX2Unit) {\n\t\torgUnits.push(\"USER_ORGUNIT_GRANDCHILDREN\");\n\t}\n\tif (!isEmpty(orgUnitSelection.levels)) {\n\t\tforEach(orgUnitSelection.levels, (level) =>\n\t\t\torgUnits.push(`LEVEL-${level}`),\n\t\t);\n\t}\n\n\treturn [\n\t\t...orgUnits,\n\t\t...(orgUnitSelection?.orgUnits?.map(\n\t\t\t(ou: OrganisationUnit) => `${ou.id}`,\n\t\t) ?? []),\n\t];\n}\n\nexport function sanitizeOrgUnits(metaData: any) {\n\tif (metaData) {\n\t\treturn metaData?.dimensions?.ou?.map((ouId: string) => ({\n\t\t\tid: ouId,\n\t\t\tname: metaData?.items[ouId]?.name,\n\t\t\tpath: metaData?.ouHierarchy?.[ouId],\n\t\t}));\n\t}\n\treturn [];\n}\n\nexport function toGeoJson(organisationUnits: any) {\n\treturn sortBy(organisationUnits, \"le\").map((ou: any) => {\n\t\ttry {\n\t\t\tconst coord = JSON.parse(ou.co);\n\t\t\tlet gpid = \"\";\n\t\t\tlet gppg = \"\";\n\t\t\tlet type = \"Point\";\n\n\t\t\tif (ou.ty === 2) {\n\t\t\t\ttype = \"Polygon\";\n\t\t\t\tif (ou.co.substring(0, 4) === \"[[[[\") {\n\t\t\t\t\ttype = \"MultiPolygon\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Grand parent\n\t\t\tif (isString(ou.pg) && ou.pg.length) {\n\t\t\t\tconst ids = compact(ou.pg.split(\"/\"));\n\n\t\t\t\t// Grand parent id\n\t\t\t\tif (ids.length >= 2) {\n\t\t\t\t\tgpid = ids[ids.length - 2] as string;\n\t\t\t\t}\n\n\t\t\t\t// Grand parent parent graph\n\t\t\t\tif (ids.length > 2) {\n\t\t\t\t\tgppg = \"/\" + ids.slice(0, ids.length - 2).join(\"/\");\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttype: \"Feature\",\n\t\t\t\tid: ou.id,\n\t\t\t\tgeometry: {\n\t\t\t\t\ttype,\n\t\t\t\t\tcoordinates: coord,\n\t\t\t\t},\n\t\t\t\tproperties: {\n\t\t\t\t\ttype,\n\t\t\t\t\tid: ou.id,\n\t\t\t\t\tname: ou.na,\n\t\t\t\t\thasCoordinatesDown: ou.hcd,\n\t\t\t\t\thasCoordinatesUp: ou.hcu,\n\t\t\t\t\tlevel: ou.le,\n\t\t\t\t\tgrandParentParentGraph: gppg,\n\t\t\t\t\tgrandParentId: gpid,\n\t\t\t\t\tparentGraph: ou.pg,\n\t\t\t\t\tparentId: ou.pi,\n\t\t\t\t\tparentName: ou.pn,\n\t\t\t\t\tdimensions: ou.dimensions,\n\t\t\t\t},\n\t\t\t};\n\t\t} catch (e) {\n\t\t\treturn {};\n\t\t}\n\t});\n}\n\nexport function sanitizeDate(startDate: string): string {\n\tif (startDate?.split(\"-\")?.[0]?.length < 4) {\n\t\treturn startDate?.split(\"-\")?.reverse()?.join(\"-\");\n\t}\n\treturn startDate;\n}\n\nexport function generateLegends(\n\tmaxValue: number,\n\tminValue: number,\n\t{ classesCount, colorClass }: { classesCount: number; colorClass: string },\n): Array<Legend> {\n\tconst count: number = classesCount ?? defaultClasses;\n\tconst color = colorClass ?? defaultColorScaleName;\n\n\tconst colorScale = [...getColorPalette(color, count)].reverse();\n\n\tconst maxLegendValue = 5 * Math.ceil(maxValue / 5);\n\tconst range = maxLegendValue / count;\n\n\tconst values = [];\n\tlet legendColorsIterator = colorScale.length - 1;\n\tfor (let i = 0; i < maxLegendValue; i += range) {\n\t\tconst id = colorScale[legendColorsIterator];\n\t\tvalues.push({\n\t\t\tstartValue: Math.floor(i),\n\t\t\tendValue: Math.floor(i + range),\n\t\t\tid,\n\t\t\tcolor: id,\n\t\t});\n\t\tlegendColorsIterator--;\n\t}\n\n\treturn values.reverse();\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/SingleValueContainer/SingleValueVisualizer.tsx"],"names":["jsxs","jsx","CssReset","Suspense","i18n","styles","SingleValueItem"],"mappings":";;;;;;;;;;;;;;;;AASO,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/SingleValueContainer/SingleValueVisualizer.tsx"],"names":["jsxs","jsx","CssReset","Suspense","i18n","styles","SingleValueItem"],"mappings":";;;;;;;;;;;;;;;;AASO,SAAS,qBAAA,CAAsB;AAAA,EACrC,KAAA;AAAA,EACA,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,cAAA;AAAA,EACA;AACD,CAAA,EAA6C;AAC5C,EAAA,uBACCA,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,aAAA,EACd,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAACC,WAAA,EAAA,EAAS,CAAA;AAAA,oBACVD,cAAA,CAACE,cAAA,EAAA,EAAS,QAAA,kBAAUF,cAAA,CAAC,KAAA,EAAA,EAAK,QAAA,EAAAG,qBAAA,CAAK,CAAA,CAAE,aAAa,CAAA,EAAE,CAAA,EAC/C,QAAA,kBAAAJ,eAAA,CAAC,KAAA,EAAA,EACA,QAAA,EAAA;AAAA,sBAAAC,cAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACA,SAAA,EAAW,GAAGI,uBAAA,CAAO,cAAc,CAAC,CAAA,CAAA,EAAIA,uBAAA,CAAO,WAAW,CAAC,CAAA,CAAA;AAAA,UAE1D,QAAA,EAAA;AAAA;AAAA,OACF;AAAA,qCACC,KAAA,EAAA,EAAI,SAAA,EAAWA,uBAAA,CAAO,mBAAmB,GACxC,QAAA,EAAA,gBAAA,CAAiB,GAAA;AAAA,QACjB,CAAC,eAAA,qBACAJ,cAAA;AAAA,UAACK,gCAAA;AAAA,UAAA;AAAA,YACA,gBAAA;AAAA,YAEC,GAAG,eAAA;AAAA,YACJ,uBAAA,EAAyB,iBAAA;AAAA,YACzB,oBAAA,EAAsB;AAAA,WAAA;AAAA,UAHjB,CAAA,EAAG,eAAA,CAAgB,KAAK,CAAA,CAAA,EAAI,gBAAgB,KAAK,CAAA;AAAA;AAIvD,OAEF,EACD;AAAA,KAAA,EACD,CAAA,EACD;AAAA,GAAA,EACD,CAAA;AAEF;AAKO,MAAM,oBAAA,GAAuB","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,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.tsx"],"names":["value","useSpring","styles","jsx","Tooltip","capitalize","animated","SingleValuePercentage"],"mappings":";;;;;;;;;;;;;;AAce,SAAR,eAAA,CAAiC;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,CAAA,EAAmC;AAClC,EAAA,MAAM,eAAA,GAAkB,CAACA,MAAAA,KACxB,IAAA,CAAK,aAAa,OAAA,EAAS;AAAA,IAC1B,QAAA,EAAU,SAAA;AAAA,IACV,uBAAuB,aAAA,IAAiB;AAAA,GACxC,CAAA,CAAE,MAAA,CAAOA,MAAK,CAAA;AAEhB,EAAA,MAAM,iBAAiBC,qBAAA,CAAU;AAAA,IAChC,MAAA,EAAQ,gBAAA;AAAA,IACR,GAAA,EAAK,KAAA;AAAA,IACL,IAAA,EAAM,EAAE,GAAA,EAAK,CAAA,EAAE;AAAA,IACf,MAAA,EAAQ;AAAA,MACP,QAAA,EAAU,qBAAqB,uBAAA,IAA2B;AAAA,KAC3D;AAAA,IACA,KAAA,EAAO,kBAAkB,oBAAA,IAAwB;AAAA,GACjD,CAAA;AAED,EAAA,MAAM,cAAA,GAAiB,CAAA,EAAG,KAAK,CAAA,EAAA,EAAK,KAAK,CAAA,CAAA;AACzC,EAAA,uCACE,KAAA,EAAA,EAAI,SAAA,EAAW,GAAGC,uBAAA,CAAO,mBAAmB,CAAC,CAAA,YAAA,CAAA,EAC7C,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWD,uBAAA,CAAO,YAAY,GAAI,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,oBAC7CC,cAAA,CAACC,UAAA,EAAA,EAAQ,OAAA,EAASC,iBAAA,CAAW,cAAc,CAAA,EAC1C,QAAA,kBAAAF,cAAA;AAAA,MAACG,oBAAA,CAAS,GAAA;AAAA,MAAT;AAAA,QACA,SAAA,EAAW,CAAA,EAAGJ,uBAAA,CAAO,WAAW,CAAC,CAAA,CAAA,EAAIA,uBAAA,CAAO,eAAe,CAAC,CAAA,CAAA,EAAIA,uBAAA,CAAO,aAAa,CAAC,CAAA,CAAA;AAAA,QAEpF,yBAAe,GAAA,CAAI,EAAA;AAAA,UAAG,CAACF,MAAAA,KACvB,eAAA,CAAgB,IAAA,CAAK,KAAA,CAAMA,MAAK,CAAC;AAAA;AAClC;AAAA,KACD,EACD,CAAA;AAAA,IACC,6BACAG,cAAA,CAACI,sCAAA,EAAA,EAAsB,OAAc,UAAA,EAAwB,CAAA,kCAE5D,MAAA,EAAA,EAAK;AAAA,GAAA,EAER,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,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.tsx"],"names":["jsx","LinearLoader","styles"],"mappings":";;;;;;;;;;AAIe,SAAR,qBAAA,CAAuC;AAAA,EAC7C,UAAA;AAAA,EACA;AACD,CAAA,EAAsB;AACrB,EAAA,MAAM,KAAA,GAAQ,MAAA;AACd,EAAA,uBACCA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,OAAA,EACd,QAAA,kBAAAA,cAAA;AAAA,IAACC,eAAA;AAAA,IAAA;AAAA,MACA,SAAA,EAAWC,wBAAO,eAAe,CAAA;AAAA,MACjC,KAAA;AAAA,MACA,MAAA,EAAQ;AAAA;AAAA,GACT,EACD,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":";;;;;;;;;AAaA,MAAM,gBAAA,GAAmBA,oBAEvB,MAAS,CAAA;AAEX,MAAM,
|
|
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":";;;;;;AAgBO,MAAM,iBAAiBA,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Visualization/components/DimensionsProvider/index.tsx"],"names":["createContext","set","useContext","useReducer","useEffect","jsx"],"mappings":";;;;;;AAgBO,MAAM,iBAAiBA,mBAAA,CAAkC;AAAA,EAC/D,IAAI,EAAC;AAAA,EACL,IAAI,EAAC;AAAA,EACL,IAAI;AACL,CAAC;AACM,MAAM,oBAAA,GAAuBA,mBAAA;AAAA,EACnC;AACD;AAEA,SAAS,OAAA,CACR,KAAA,EACA,EAAE,SAAA,EAAW,OAAM,EAClB;AACD,EAAA,MAAM,YAAA,GAAe,EAAE,GAAI,KAAA,IAAS,EAAC,EAAG;AACxC,EAAAC,UAAA,CAAI,YAAA,EAAc,CAAC,SAAS,CAAA,EAAG,KAAK,CAAA;AACpC,EAAA,OAAO,YAAA;AACR;AAOO,SAAS,aAAA,GAAgB;AAC/B,EAAA,OAAO,CAACC,gBAAA,CAAW,cAAc,CAAA,EAAGA,gBAAA,CAAW,oBAAoB,CAAC,CAAA;AAIrE;AAEO,SAAS,kBAAA,CAAmB;AAAA,EAClC,QAAA;AAAA,EACA;AACD,CAAA,EAA2B;AAC1B,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIC,gBAAA,CAAW,SAAS,UAAU,CAAA;AAExD,EAAAC,eAAA,CAAU,MAAM;AACf,IAAA,MAAA,CAAO,IAAA,CAAK,UAAU,CAAA,CAAE,OAAA,CAAQ,CAAC,SAAA,KAAsB;AACtD,MAAA,QAAA,CAAS;AAAA,QACR,SAAA;AAAA,QACA,KAAA,EAAO,UAAA,CAAW,SAAS,CAAA,IAAK;AAAC,OACjC,CAAA;AAAA,IACF,CAAC,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,UAAU,CAAC,CAAA;AAEf,EAAA,uBACCC,cAAA,CAAC,cAAA,CAAe,QAAA,EAAf,EAAwB,KAAA,EAAO,KAAA,EAC/B,QAAA,kBAAAA,cAAA,CAAC,oBAAA,CAAqB,QAAA,EAArB,EAA8B,KAAA,EAAO,QAAA,EACpC,UACF,CAAA,EACD,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":";;;;;
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Visualization/components/LayoutProvider/index.tsx"],"names":["createContext","useContext","useState"],"mappings":";;;;;AAcO,MAAM,WAAA,GAAcA,oBAAkC,MAAS;AAE/D,SAAS,SAAA,GAAY;AAC3B,EAAA,OAAO,CAACC,gBAAA,CAAW,WAAW,CAAA,IAAK,EAAE,IAAA,EAAM,EAAC,EAAG,OAAA,EAAS,EAAC,EAAG,OAAA,EAAS,IAAI,CAAA;AAC1E;AAEO,SAAS,cAAA,CAAe;AAAA,EAC9B,aAAA;AAAA,EACA;AACD,CAAA,EAAwB;AACvB,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIC,eAAS,aAAa,CAAA;AAElD,EAAA,sCACE,WAAA,CAAY,QAAA,EAAZ,EAAqB,KAAA,EAAO,QAAS,QAAA,EAAS,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":";;;;;;;;;;;;;;;AASO,SAAS,
|
|
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":";;;;;;;;;;;;;;;AASO,SAAS,8BAAA,CAA+B;AAAA,EAC9C,kBAAA;AAAA,EACA;AACD,CAAA,EAGG;AACF,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIA,sBAAA,EAAc;AAClD,EAAA,MAAM,OAAA,GAAUC,cAAQ,MAAM,UAAA,CAAW,IAAI,CAAC,UAAA,CAAW,EAAE,CAAC,CAAA;AAC5D,EAAA,MAAM,gBAAA,GAAmBA,aAAA;AAAA,IACxB,MAAMC,qCAAA,CAA2B,UAAA,CAAW,EAAA,IAAM,EAAE,CAAA;AAAA,IACpD,CAAC,WAAW,EAAE;AAAA,GACf;AACA,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIC,cAAA,EAAkC;AAEtE,EAAA,MAAM,cAAA,GAAiBC,iBAAA;AAAA,IACtB,CAAC,IAAA,KAAsB,CAAC,IAAA,KAAiC;AACxD,MAAA,aAAA,CAAc,MAAS,CAAA;AACvB,MAAA,IAAI,SAAS,IAAA,EAAM;AAClB,QAAA,aAAA,CAAc;AAAA,UACb,SAAA,EAAW,IAAA;AAAA,UACX,KAAA,EAAOC,4BAAqB,IAAI;AAAA,SAChC,CAAA;AACD,QAAA;AAAA,MACD;AACA,MAAA,IAAI,SAAS,IAAA,EAAM;AAClB,QAAA,aAAA,CAAc,EAAE,SAAA,EAAW,IAAA,EAAM,KAAA,EAAO,MAAM,CAAA;AAC9C,QAAA;AAAA,MACD;AAAA,IACD,CAAA;AAAA,IACA,CAAC,aAAa;AAAA,GACf;AAEA,EAAA,uBACCC,cAAA,CAAAC,mBAAA,EAAA,EACC,0CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,GAAA,EAAK,CAAA,EAAE,EACpC,QAAA,EAAA;AAAA,IAAA,kBAAA,mCACCC,UAAA,EAAA,EAAQ,OAAA,EAASC,sBAAK,CAAA,CAAE,QAAQ,GAChC,QAAA,kBAAAC,eAAA,CAAAH,mBAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAAD,cAAA;AAAA,QAACK,2BAAA;AAAA,QAAA;AAAA,UACA,QAAA,EAAS,QAAA;AAAA,UACT,oBAAA,EAAoB,IAAA;AAAA,UACpB,eAAA,EAAiB,OAAA;AAAA,UACjB,OAAA,EAAS,MAAM,aAAA,CAAc,MAAS,CAAA;AAAA,UACtC,MAAM,UAAA,KAAe,IAAA;AAAA,UACrB,QAAA,EAAU,eAAe,IAAI;AAAA;AAAA,OAC9B;AAAA,sBACAL,cAAA;AAAA,QAACM,SAAA;AAAA,QAAA;AAAA,UACA,OAAA,EAAS,MAAM,aAAA,CAAc,IAAI,CAAA;AAAA,UACjC,IAAA,iCAAOC,cAAA,EAAA,EAAY;AAAA;AAAA;AACpB,KAAA,EACD,CAAA,EACD,CAAA;AAAA,IAEA,mBAAA,mCACCL,UAAA,EAAA,EAAQ,OAAA,EAASC,sBAAK,CAAA,CAAE,UAAU,GAClC,QAAA,kBAAAC,eAAA,CAAAH,mBAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAAD,cAAA;AAAA,QAACQ,4BAAA;AAAA,QAAA;AAAA,UACA,eAAA,EAAe,IAAA;AAAA,UACf,UAAA,EAAU,IAAA;AAAA,UACV,KAAA,EAAOL,qBAAA,CAAK,CAAA,CAAE,oBAAoB,CAAA;AAAA,UAClC,KAAA,EAAO,gBAAA;AAAA,UACP,OAAA,EAAS,MAAM,aAAA,CAAc,MAAS,CAAA;AAAA,UACtC,MAAM,UAAA,KAAe,IAAA;AAAA,UACrB,QAAA,EAAU,eAAe,IAAI;AAAA;AAAA,OAC9B;AAAA,sBACAH,cAAA;AAAA,QAACM,SAAA;AAAA,QAAA;AAAA,UACA,OAAA,EAAS,MAAM,aAAA,CAAc,IAAI,CAAA;AAAA,UACjC,IAAA,iCAAOG,iBAAA,EAAA,EAAe;AAAA;AAAA;AACvB,KAAA,EACD,CAAA,EACD;AAAA,GAAA,EAEF,CAAA,EACD,CAAA;AAEF","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,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Visualization/components/VisualizationProvider/index.tsx"],"names":["DimensionsProvider","jsx","VisualizationTypeProvider","LayoutProvider","AnalyticsDataProvider"],"mappings":";;;;;;;;AAmBO,SAAS,qBAAA,CAAsB;AAAA,EACrC,MAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA;AACD,CAAA,EAA+B;AAC9B,EAAA,sCACEA,2BAAA,EAAA,EAAmB,UAAA,EACnB,QAAA,kBAAAC,cAAA,CAACC,oCAAA,EAAA,EAA0B,QAAgB,WAAA,EAAa,IAAA,EACvD,QAAA,kBAAAD,cAAA,CAACE,yBAAA,EAAA,EAAe,eAAe,MAAA,EAC9B,QAAA,kBAAAF,cAAA,CAACG,oCAAuB,QAAA,EAAS,CAAA,EAClC,GACD,CAAA,EACD,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 { 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}, [\n\t\tanalytics.headers,\n\t\tanalytics.metaData?.dimensions,\n\t\toptions.thematicLayers,\n\t\tanalytics.rows,\n\t]);\n\n\treturn (\n\t\t<DHIS2Map\n\t\t\tperiodSelection={{\n\t\t\t\tperiods: dimensions.pe,\n\t\t\t}}\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}, [\n\t\tanalytics.headers,\n\t\tanalytics.metaData?.dimensions,\n\t\toptions.thematicLayers,\n\t\tanalytics.rows,\n\t]);\n\n\treturn (\n\t\t<DHIS2Map\n\t\t\tperiodSelection={{\n\t\t\t\tperiods: dimensions.pe,\n\t\t\t}}\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":";;;;;AAYO,MAAM,wBAAA,GACZA,oBAAiC,YAAY;AACvC,MAAM,0BAAA,GAA6BA,oBAExC,MAAS;AACJ,MAAM,uBAAA,GAA0BA,oBAErC,MAAS;AAQJ,SAAS,oBAAA,GAAuB;AACtC,EAAA,OAAO;AAAA,IACNC,iBAAW,wBAAwB,CAAA;AAAA,IACnCA,iBAAW,uBAAuB;AAAA,GACnC;AACD;AAEO,SAAS,sBAAA,GAAyB;AACxC,EAAA,OAAOA,iBAAW,0BAA0B,CAAA;AAC7C;AAEO,SAAS,yBAAA,CAA0B;AAAA,EACzC,QAAA;AAAA,EACA,WAAA;AAAA,EACA;AACD,CAAA,EAAmC;AAClC,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIC,eAA4B,WAAW,CAAA;AAE/D,EAAA,uBACCC,cAAA,CAAC,yBAAyB,QAAA,EAAzB,EAAkC,OAAO,IAAA,EACzC,QAAA,kBAAAA,cAAA,CAAC,2BAA2B,QAAA,EAA3B,EAAoC,OAAO,MAAA,EAC3C,QAAA,kBAAAA,cAAA,CAAC,wBAAwB,QAAA,EAAxB,EAAiC,OAAO,OAAA,EACvC,QAAA,EACF,GACD,CAAA,EACD,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,
|
|
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,2BAAA,GAA8B;AAAA,EACnC;AAAA,IACC,EAAA,EAAI,YAAA;AAAA,IACJ,IAAA,iCAAOA,cAAA,EAAA,EAAY,CAAA;AAAA,IACnB,KAAA,EAAOC,qBAAA,CAAK,CAAA,CAAE,aAAa;AAAA,GAC5B;AAAA,EACA;AAAA,IACC,EAAA,EAAI,OAAA;AAAA,IACJ,IAAA,iCAAOC,4BAAA,EAAA,EAA0B,CAAA;AAAA,IACjC,KAAA,EAAOD,qBAAA,CAAK,CAAA,CAAE,OAAO;AAAA,GACtB;AAAA,EACA;AAAA,IACC,EAAA,EAAI,KAAA;AAAA,IACJ,IAAA,iCAAOE,cAAA,EAAA,EAAY,CAAA;AAAA,IACnB,KAAA,EAAOF,qBAAA,CAAK,CAAA,CAAE,KAAK;AAAA;AAErB,CAAA;AAEO,SAAS,yBAAA,GAA4B;AAC3C,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIG,6BAAA,EAAqB;AAC7C,EAAA,MAAM,SAASC,+BAAA,EAAuB;AAEtC,EAAA,MAAM,KAAA,GAAQC,aAAA;AAAA,IACb,MACC,2BAAA,CAA4B,MAAA,CAAO,CAAC,aAAA,KAAkB;AACrD,MAAA,OACC,MAAA,CAAO,IAAA,CAAK,MAAA,IAAU,EAAE,CAAA,CAAE,QAAA,CAAS,aAAA,CAAc,EAAE,CAAA,IACnD,aAAA,CAAc,EAAA,KAAO,IAAA;AAAA,IAEvB,CAAC,CAAA;AAAA,IACF,CAAC,MAAM,MAAM;AAAA,GACd;AAEA,EAAA,sCACE,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,GAAA,EAAK,CAAA,EAAE,EACpC,QAAA,EAAA,KAAA,CAAM,IAAI,CAAC,EAAE,IAAA,EAAM,KAAA,EAAO,IAAG,KAAM;AACnC,IAAA,uBACCC,cAAA;AAAA,MAACC,UAAA;AAAA,MAAA;AAAA,QAEA,OAAA,EAASP,qBAAA,CAAK,CAAA,CAAE,kBAAA,EAAoB;AAAA,UACnC,IAAA,EAAM,MAAM,WAAA;AAAY,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,EAEF,CAAC,CAAA,EACF,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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Visualization/index.tsx"],"names":["jsxs","jsx","IconError24","colors","i18n","Button","ErrorBoundary","VisualizationProvider","VisualizationTypeSelector","VisualizationDimensionSelector","Fragment","VisualizationSelector"],"mappings":";;;;;;;;;;;;;;;AAqCA,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Visualization/index.tsx"],"names":["jsxs","jsx","IconError24","colors","i18n","Button","ErrorBoundary","VisualizationProvider","VisualizationTypeSelector","VisualizationDimensionSelector","Fragment","VisualizationSelector"],"mappings":"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","file":"index.js","sourcesContent":["import React from \"react\";\nimport { AnalyticsDimension } from \"@hisptz/dhis2-utils\";\nimport { VisualizationProvider } from \"./components/VisualizationProvider/index.js\";\nimport { Layout } from \"./components/LayoutProvider/index.js\";\nimport { VisualizationType } from \"./components/VisualizationTypeProvider/index.js\";\nimport { VisualizationTypeSelector } from \"./components/VisualizationTypeSelector/index.js\";\nimport { VisualizationDimensionSelector } from \"./components/VisualizationDimensionSelector/index.js\";\nimport { VisualizationSelector } from \"./components/VisualizationSelector/index.js\";\nimport { DHIS2PivotTableOptions } from \"../DHIS2PivotTable/index.js\";\nimport { ChartConfig } from \"../ChartAnalytics/index.js\";\nimport { MapProps } from \"../Map/index.js\";\nimport { ErrorBoundary, FallbackProps } from \"react-error-boundary\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { Button, colors, IconError24 } from \"@dhis2/ui\";\n\nexport interface VisualizationConfig {\n\tpivotTable?: DHIS2PivotTableOptions;\n\tchart?: ChartConfig;\n\tmap?: Omit<MapProps, \"orgUnitSelection\" | \"periodSelection\">;\n}\n\nexport interface VisualizationProps {\n\tlayout: Layout;\n\tdefaultVisualizationType: VisualizationType;\n\tdimensions: AnalyticsDimension;\n\tconfig: VisualizationConfig;\n\theight?: number;\n\tshowToolbar?: boolean;\n\tshowPeriodSelector?: boolean;\n\tshowOrgUnitSelector?: boolean;\n}\n\n/**\n * An analytics component that allows visualization of `chart`, `map`, and `pivot table` by passing analytics object and the default layout and type\n *\n * */\n\nfunction ErrorFallback({\n\terror,\n\tresetErrorBoundary,\n\theight,\n}: FallbackProps & { height?: number }) {\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\twidth: \"100%\",\n\t\t\t\ttextAlign: \"center\",\n\t\t\t\theight: height ?? 500,\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\tflexDirection: \"column\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t\tgap: 16,\n\t\t\t\tpadding: 16,\n\t\t\t}}\n\t\t>\n\t\t\t<IconError24 />\n\t\t\t<h3\n\t\t\t\tstyle={{\n\t\t\t\t\tcolor: colors.grey800,\n\t\t\t\t\tmargin: 0,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i18n.t(\"Could not load visualization\")}\n\t\t\t</h3>\n\t\t\t<p style={{ margin: 0 }}>{error.message}</p>\n\t\t\t{resetErrorBoundary && (\n\t\t\t\t<Button onClick={resetErrorBoundary} small>\n\t\t\t\t\t{i18n.t(\"Try again\")}\n\t\t\t\t</Button>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport function Visualization({\n\tdimensions,\n\tlayout,\n\tdefaultVisualizationType,\n\tconfig,\n\theight,\n\tshowToolbar,\n\tshowOrgUnitSelector,\n\tshowPeriodSelector,\n}: VisualizationProps) {\n\treturn (\n\t\t<ErrorBoundary\n\t\t\tresetKeys={[dimensions, layout, defaultVisualizationType, config]}\n\t\t\tfallbackRender={(props) =>\n\t\t\t\t(<ErrorFallback height={height} {...props} />) as any\n\t\t\t}\n\t\t>\n\t\t\t<VisualizationProvider\n\t\t\t\tconfig={config}\n\t\t\t\ttype={defaultVisualizationType}\n\t\t\t\tlayout={layout}\n\t\t\t\tdimensions={dimensions}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{showToolbar && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\tflexDirection: \"row\",\n\t\t\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<VisualizationTypeSelector />\n\t\t\t\t\t\t\t<VisualizationDimensionSelector\n\t\t\t\t\t\t\t\tshowPeriodSelector={showPeriodSelector}\n\t\t\t\t\t\t\t\tshowOrgUnitSelector={showOrgUnitSelector}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t<>\n\t\t\t\t\t\t<VisualizationSelector config={config} />\n\t\t\t\t\t</>\n\t\t\t\t</div>\n\t\t\t</VisualizationProvider>\n\t\t</ErrorBoundary>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ChartAnalytics/DHIS2Chart.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAkBA,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ChartAnalytics/DHIS2Chart.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAkBA,SAAS,uBAAA,CAAwB;AAAA,EAChC,SAAA;AAAA,EACA,MAAA;AAAA,EACA,cAAA;AAAA,EACA;AACD,CAAA,EAAwB;AACvB,EAAA,MAAM,EAAA,GAAK,MAAA,CAAO,CAAA,EAAG,GAAA,EAAK,CAAA,WAAA,CAAa,CAAA;AACvC,EAAA,MAAM,EAAE,KAAA,EAAM,GAAI,QAAA,CAAS,EAAE,IAAI,EAAA,CAAG,OAAA,EAAS,SAAA,EAAW,MAAA,EAAQ,CAAA;AAEhE,EAAA,IAAI,CAAC,KAAA,EAAO;AACX,IAAA,OAAO,IAAA;AAAA,EACR;AACA,EAAA,uBACC,GAAA;AAAA,IAAC,eAAA;AAAA,IAAA;AAAA,MACA,SAAA,EAAS,IAAA;AAAA,MACT,GAAA,EAAK,MAAA;AAAA,MACL,cAAA,EAAgB;AAAA,QACf,IAAI,EAAA,CAAG,OAAA;AAAA,QACP,KAAA,EAAO,EAAE,KAAA,EAAO,MAAA,EAAQ,QAAQ,MAAA,EAAO;AAAA,QACvC,GAAI,kBAAkB;AAAC,OACxB;AAAA,MACA,UAAA,EAAY,UAAA;AAAA,MACZ,OAAA,EAAS,EAAE,GAAG,KAAA;AAAM;AAAA,GACrB;AAEF;AAgBO,MAAM,UAAA,GACZ,UAAA;AAAA,EACC;AACD;AAKM,MAAM,cAAA,GAAiB","file":"DHIS2Chart.js","sourcesContent":["import { uid } from \"@hisptz/dhis2-utils\";\nimport * as Highcharts from \"highcharts\";\nimport HighchartsReact from \"highcharts-react-official\";\nimport { forwardRef, type ForwardRefExoticComponent, useRef } from \"react\";\nimport { useChart } from \"./hooks/useChart.js\";\nimport \"./styles/custom-highchart.css\";\nimport \"highcharts/modules/exporting\";\nimport \"highcharts/modules/export-data\";\nimport \"highcharts/modules/full-screen\";\nimport \"highcharts/highcharts-more\";\nimport \"highcharts/modules/solid-gauge\";\nimport \"highcharts/modules/accessibility\";\nimport { ChartAnalyticsProps } from \"./types/props.js\";\n\nexport * from \"./services/export.js\";\nexport * from \"./types/props.js\";\nexport * from \"./components/DownloadMenu/index.js\";\n\nfunction ChartAnalyticsComponent({\n\tanalytics,\n\tconfig,\n\tcontainerProps,\n\tsetRef,\n}: ChartAnalyticsProps) {\n\tconst id = useRef(`${uid()}-chart-item`);\n\tconst { chart } = useChart({ id: id.current, analytics, config });\n\n\tif (!chart) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<HighchartsReact\n\t\t\timmutable\n\t\t\tref={setRef}\n\t\t\tcontainerProps={{\n\t\t\t\tid: id.current,\n\t\t\t\tstyle: { width: \"100%\", height: \"100%\" },\n\t\t\t\t...(containerProps ?? {}),\n\t\t\t}}\n\t\t\thighcharts={Highcharts}\n\t\t\toptions={{ ...chart }}\n\t\t/>\n\t);\n}\n\n/**\n * The `DHIS2Chart` component allows you to render a chart visualization from DHIS2 analytics data.\n * It accepts the DHIS2 analytics payload as well as configuration on how to visualize the data.\n *\n * @component\n *\n * @param {ChartAnalyticsProps} props\n * @param {Analytics} [props.analytics] - Analytics data from DHIS2\n * @param {ChartConfig} [props.config] - Visualization configuration. See stories for more information\n * @param {Record<string, any>} [props.containerProps] - Props that will be passed to the chart container\n * @param {forwardRef} forwardRef - A function that creates a higher order component that forwards the ref through the component tree.\n *\n * @returns {React.ForwardRefExoticComponent<ChartAnalyticsProps>} - The DHIS2 chart component with forward ref support.\n */\nexport const DHIS2Chart: ForwardRefExoticComponent<ChartAnalyticsProps> =\n\tforwardRef<HighchartsReact.RefObject, ChartAnalyticsProps>(\n\t\tChartAnalyticsComponent,\n\t);\n\n/**\n * @deprecated since `v2`. Use `DHIS2Chart` instead\n * */\nexport const ChartAnalytics = DHIS2Chart;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/components/ChartAnalytics/components/DownloadMenu/components/Menu.tsx"],"names":[],"mappings":";;;;;AAMO,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/components/ChartAnalytics/components/DownloadMenu/components/Menu.tsx"],"names":[],"mappings":";;;;;AAMO,SAAS,SAAA,CAAU;AAAA,EACzB,OAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAU;AACX,CAAA,EAKG;AACF,EAAA,MAAM,WAAA,GAAc,CAAC,MAAA,KAAmB,MAAM;AAC7C,IAAA,OAAA,CAAQ,MAAM,CAAA;AACd,IAAA,OAAA,EAAQ;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,YAAA,GAAe,GAAA,CAAI,iBAAA,EAAmB,CAAC,OAAA,KAAY;AACxD,IAAA,OAAO;AAAA,MACN,GAAG,OAAA;AAAA,MACH,SAAA,EAAW,QAAQ,SAAA,CAAU,MAAA;AAAA,QAC5B,CAAC,IAAA,KAAc,CAAC,OAAA,CAAQ,QAAA,CAAS,KAAK,IAAI;AAAA;AAC3C,KACD;AAAA,EACD,CAAC,EAAE,MAAA,CAAO,CAAC,YAAY,CAAC,OAAA,CAAQ,OAAA,CAAQ,SAAS,CAAC,CAAA;AAElD,EAAA,uBACC,GAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACA,cAAA,EAAgB,OAAA;AAAA,MAEhB,OAAA;AAAA,MACA,SAAA,EAAW,OAAA;AAAA,MAEX,QAAA,kBAAA,GAAA,CAAC,cACA,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EACC,wBAAc,GAAA,CAAI,CAAC,SAAS,KAAA,KAAU;AACtC,QAAA,uBACC,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,UAAA,OAAA,CAAQ,WAAW,GAAA,CAAI,CAAC,EAAE,IAAA,EAAM,OAAM,KAAM;AAC5C,YAAA,uBACC,GAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBAEA,QAAA,EAAU,YAAY,IAAI,CAAA,CAAA;AAAA,gBAC1B,KAAA;AAAA,gBACA,OAAA,EAAS,YAAY,IAAI;AAAA,eAAA;AAAA,cAHpB,GAAG,IAAI,CAAA,UAAA;AAAA,aAIb;AAAA,UAEF,CAAC,CAAA;AAAA,UACA,KAAA,KAAU,YAAA,CAAa,MAAA,GAAS,CAAA,wBAC/B,WAAA,EAAA,EAAY;AAAA,SAAA,EAEf,CAAA;AAAA,MAEF,CAAC,GACF,CAAA,EACD;AAAA;AAAA,GACD;AAEF","file":"Menu.js","sourcesContent":["import { FlyoutMenu, Menu, MenuDivider, MenuItem, Popover } from \"@dhis2/ui\";\nimport { isEmpty, map } from \"lodash\";\nimport React from \"react\";\nimport { chartMenuSections } from \"../constants/menu.js\";\nimport { ChartExportMenuItem } from \"../interfaces/menu.js\";\n\nexport function ChartMenu({\n\tmenuRef,\n\tonClick,\n\tonClose,\n\texclude = [],\n}: {\n\tmenuRef: HTMLDivElement;\n\tonClick: (action: string) => void;\n\tonClose: () => void;\n\texclude?: ChartExportMenuItem[];\n}) {\n\tconst onMenuClick = (action: string) => () => {\n\t\tonClick(action);\n\t\tonClose();\n\t};\n\n\tconst menuSections = map(chartMenuSections, (section) => {\n\t\treturn {\n\t\t\t...section,\n\t\t\tmenuItems: section.menuItems.filter(\n\t\t\t\t(item: any) => !exclude.includes(item.name),\n\t\t\t),\n\t\t};\n\t}).filter((section) => !isEmpty(section.menuItems));\n\n\treturn (\n\t\t<Popover\n\t\t\tonClickOutside={onClose} /*\n // @ts-ignore */\n\t\t\tonClose={onClose}\n\t\t\treference={menuRef}\n\t\t>\n\t\t\t<FlyoutMenu>\n\t\t\t\t<Menu>\n\t\t\t\t\t{menuSections?.map((section, index) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{section.menuItems?.map(({ name, label }) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tkey={`${name}-menu-item`}\n\t\t\t\t\t\t\t\t\t\t\tdataTest={`download-${name}`}\n\t\t\t\t\t\t\t\t\t\t\tlabel={label}\n\t\t\t\t\t\t\t\t\t\t\tonClick={onMenuClick(name)}\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{index !== menuSections.length - 1 && (\n\t\t\t\t\t\t\t\t\t<MenuDivider />\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</Menu>\n\t\t\t</FlyoutMenu>\n\t\t</Popover>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/components/ChartAnalytics/components/DownloadMenu/constants/menu.ts"],"names":[],"mappings":";;AAEO,MAAM,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/components/ChartAnalytics/components/DownloadMenu/constants/menu.ts"],"names":[],"mappings":";;AAEO,MAAM,iBAAA,GAAoB;AAAA,EAC/B;AAAA,IACE,IAAA,EAAM,UAAA;AAAA,IACN,SAAA,EAAW;AAAA,MACT;AAAA,QACE,IAAA,EAAM,KAAA;AAAA,QACN,KAAA,EAAO,IAAA,CAAK,CAAA,CAAE,cAAc;AAAA,OAC9B;AAAA,MACA;AAAA,QACE,IAAA,EAAM,MAAA;AAAA,QACN,KAAA,EAAO,IAAA,CAAK,CAAA,CAAE,eAAe;AAAA,OAC/B;AAAA,MACA;AAAA,QACE,IAAA,EAAM,KAAA;AAAA,QACN,KAAA,EAAO,IAAA,CAAK,CAAA,CAAE,cAAc;AAAA,OAC9B;AAAA,MACA;AAAA,QACE,IAAA,EAAM,KAAA;AAAA,QACN,KAAA,EAAO,IAAA,CAAK,CAAA,CAAE,cAAc;AAAA;AAC9B;AACF,GACF;AAAA,EACA;AAAA,IACE,IAAA,EAAM,MAAA;AAAA,IACN,SAAA,EAAW;AAAA,MACT;AAAA,QACE,IAAA,EAAM,OAAA;AAAA,QACN,KAAA,EAAO,IAAA,CAAK,CAAA,CAAE,eAAe;AAAA,OAC/B;AAAA,MACA;AAAA,QACE,IAAA,EAAM,aAAA;AAAA,QACN,KAAA,EAAO,IAAA,CAAK,CAAA,CAAE,kBAAkB;AAAA;AAClC;AACF;AAEJ","file":"menu.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\n\nexport const chartMenuSections = [\n {\n name: \"download\",\n menuItems: [\n {\n name: \"png\",\n label: i18n.t(\"Download PNG\"),\n },\n {\n name: \"jpeg\",\n label: i18n.t(\"Download JPEG\"),\n },\n {\n name: \"svg\",\n label: i18n.t(\"Download SVG\"),\n },\n {\n name: \"pdf\",\n label: i18n.t(\"Download PDF\"),\n },\n ],\n },\n {\n name: \"view\",\n menuItems: [\n {\n name: \"table\",\n label: i18n.t(\"View as table\"),\n },\n {\n name: \"full-screen\",\n label: i18n.t(\"View full screen\"),\n },\n ],\n },\n];\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/components/ChartAnalytics/components/DownloadMenu/index.tsx"],"names":[],"mappings":";;;;;;AAaO,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/ChartAnalytics/components/DownloadMenu/index.tsx"],"names":[],"mappings":";;;;;;AAaO,SAAS,iBAAA,CAAkB;AAAA,EACjC,QAAA;AAAA,EACA,OAAA;AAAA,EACA;AACD,CAAA,EAIG;AACF,EAAA,MAAM,aAAA,GAAgB,OAA8B,IAAI,CAAA;AACxD,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAgC,IAAI,CAAA;AAClE,EAAA,MAAM,aAAa,MAAM;AACxB,IAAA,IAAI,YAAY,IAAA,EAAM;AACrB,MAAA,UAAA,CAAW,cAAc,OAAO,CAAA;AAAA,IACjC,CAAA,MAAO;AACN,MAAA,UAAA,CAAW,IAAI,CAAA;AAAA,IAChB;AAAA,EACD,CAAA;AAEA,EAAA,MAAM,KAAA,GAAQ,QAAA;AAEd,EAAA,MAAM,WAAA,GAAc,CAAC,MAAA,KAAmB;AACvC,IAAA,IAAI,KAAA,EAAO;AACV,MAAA,QAAQ,MAAA;AAAQ,QACf,KAAK,KAAA;AACJ,UAAA,eAAA,CAAgB,OAAO,KAAK,CAAA;AAC5B,UAAA;AAAA,QACD,KAAK,MAAA;AACJ,UAAA,eAAA,CAAgB,OAAO,MAAM,CAAA;AAC7B,UAAA;AAAA,QACD,KAAK,KAAA;AACJ,UAAA,eAAA,CAAgB,OAAO,SAAS,CAAA;AAChC,UAAA;AAAA,QACD,KAAK,KAAA;AACJ,UAAA,aAAA,CAAc,KAAK,CAAA;AACnB,UAAA;AAAA,QACD,KAAK,KAAA;AACJ,UAAA,aAAA,CAAc,KAAK,CAAA;AACnB,UAAA;AAAA,QACD,KAAK,OAAA;AACJ,UAAA,aAAA,CAAc,OAAO,IAAI,CAAA;AACzB,UAAA;AAAA,QACD,KAAK,aAAA;AACJ,UAAA,gBAAA,CAAiB,KAAK,CAAA;AACtB,UAAA;AAAA;AACF,IACD;AAAA,EACD,CAAA;AAEA,EAAA,uBACC,IAAA,CAAA,QAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAS,UAAA,EAAY,GAAA,EAAK,eAC7B,QAAA,EAAA,IAAA,oBAAQ,GAAA,CAAC,cAAW,CAAA,EACtB,CAAA;AAAA,IACC,OAAA,oBACA,GAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACA,OAAA;AAAA,QACA,OAAA,EAAS,WAAA;AAAA,QACT,OAAA,EAAS,UAAA;AAAA,QACT;AAAA;AAAA;AACD,GAAA,EAEF,CAAA;AAEF","file":"index.js","sourcesContent":["import { IconMore24 } from \"@dhis2/ui\";\nimport HighchartsReact from \"highcharts-react-official\";\nimport { type ReactNode, useRef, useState } from \"react\";\nimport {\n\tonCSVDownload,\n\tonFullScreenView,\n\tonImageDownload,\n\tonPDFDownload,\n\tonViewAsTable,\n} from \"../../services/export.js\";\nimport { ChartMenu } from \"./components/Menu.js\";\nimport { ChartExportMenuItem } from \"./interfaces/menu.js\";\n\nexport function ChartDownloadMenu({\n\tchartRef,\n\texclude,\n\ticon,\n}: {\n\tchartRef: HighchartsReact.RefObject | null;\n\texclude?: ChartExportMenuItem[];\n\ticon?: ReactNode;\n}) {\n\tconst menuButtonRef = useRef<HTMLDivElement | null>(null);\n\tconst [menuRef, setMenuRef] = useState<HTMLDivElement | null>(null);\n\tconst toggleMenu = () => {\n\t\tif (menuRef === null) {\n\t\t\tsetMenuRef(menuButtonRef.current);\n\t\t} else {\n\t\t\tsetMenuRef(null);\n\t\t}\n\t};\n\n\tconst chart = chartRef;\n\n\tconst onMenuClick = (action: string) => {\n\t\tif (chart) {\n\t\t\tswitch (action) {\n\t\t\t\tcase \"png\":\n\t\t\t\t\tonImageDownload(chart, \"png\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"jpeg\":\n\t\t\t\t\tonImageDownload(chart, \"jpeg\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"svg\":\n\t\t\t\t\tonImageDownload(chart, \"svg+xml\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"csv\":\n\t\t\t\t\tonCSVDownload(chart);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"pdf\":\n\t\t\t\t\tonPDFDownload(chart);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"table\":\n\t\t\t\t\tonViewAsTable(chart, true);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"full-screen\":\n\t\t\t\t\tonFullScreenView(chart);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<div onClick={toggleMenu} ref={menuButtonRef}>\n\t\t\t\t{icon ?? <IconMore24 />}\n\t\t\t</div>\n\t\t\t{menuRef && (\n\t\t\t\t<ChartMenu\n\t\t\t\t\texclude={exclude}\n\t\t\t\t\tonClick={onMenuClick}\n\t\t\t\t\tonClose={toggleMenu}\n\t\t\t\t\tmenuRef={menuRef}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/ChartAnalytics/hooks/useChart.ts"],"names":[],"mappings":";;;AAOO,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/ChartAnalytics/hooks/useChart.ts"],"names":[],"mappings":";;;AAOO,SAAS,QAAA,CAAS;AAAA,EACxB,EAAA;AAAA,EACA,SAAA;AAAA,EACA;AACD,CAAA,EAOE;AACD,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,QAAA;AAAA,IACzB,gBAAA,CAAiB,EAAA,EAAI,SAAA,EAAW,MAAM,EAAE,UAAA;AAAW,GACpD;AAEA,EAAA,MAAM,eAAA,GAAkB,WAAA;AAAA,IACvB,CAAC,IAAA,KAAoB;AACpB,MAAA,MAAM,aAAA,GAAgB,YAAA,CAAa,MAAA,EAAQ,EAAE,MAAM,CAAA;AACnD,MAAA,MAAM,gBAAgB,EAAE,GAAG,MAAA,EAAQ,MAAA,EAAQ,eAAe,IAAA,EAAK;AAC/D,MAAA,MAAM,aAAA,GAA4B,gBAAA;AAAA,QACjC,EAAA;AAAA,QACA,SAAA;AAAA,QACA;AAAA,OACD;AACA,MAAA,QAAA,CAAS,aAAA,CAAc,YAAY,CAAA;AAAA,IACpC,CAAA;AAAA,IACA,CAAC,MAAA,EAAQ,EAAA,EAAI,SAAS;AAAA,GACvB;AAEA,EAAA,SAAA,CAAU,MAAM;AACf,IAAA,IAAI,aAAa,MAAA,EAAQ;AACxB,MAAA,MAAM,aAAA,GAA4B,gBAAA;AAAA,QACjC,EAAA;AAAA,QACA,SAAA;AAAA,QACA;AAAA,OACD;AACA,MAAA,QAAA,CAAS,aAAA,CAAc,YAAY,CAAA;AAAA,IACpC;AAAA,EACD,CAAA,EAAG,CAAC,SAAA,EAAW,MAAA,EAAQ,EAAE,CAAC,CAAA;AAE1B,EAAA,OAAO;AAAA,IACN,KAAA;AAAA,IACA;AAAA,GACD;AACD","file":"useChart.js","sourcesContent":["import type { Analytics } from \"@hisptz/dhis2-utils\";\nimport { Options } from \"highcharts\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { DHIS2Chart } from \"../models\";\nimport { ChartConfig, ChartType } from \"../types/props.js\";\nimport { getChartInstance, updateLayout } from \"../utils/chart.js\";\n\nexport function useChart({\n\tid,\n\tanalytics,\n\tconfig,\n}: {\n\tid: string;\n\tanalytics: Analytics;\n\tconfig: ChartConfig;\n}): {\n\tchart?: Options;\n\tchangeChartType: (type: ChartType) => void;\n} {\n\tconst [chart, setChart] = useState<Options | undefined>(\n\t\tgetChartInstance(id, analytics, config).getOptions(),\n\t);\n\n\tconst changeChartType = useCallback(\n\t\t(type: ChartType) => {\n\t\t\tconst updatedLayout = updateLayout(config, { type });\n\t\t\tconst updatedConfig = { ...config, layout: updatedLayout, type };\n\t\t\tconst chartInstance: DHIS2Chart = getChartInstance(\n\t\t\t\tid,\n\t\t\t\tanalytics,\n\t\t\t\tupdatedConfig,\n\t\t\t);\n\t\t\tsetChart(chartInstance.getOptions());\n\t\t},\n\t\t[config, id, analytics],\n\t);\n\n\tuseEffect(() => {\n\t\tif (analytics && config) {\n\t\t\tconst chartInstance: DHIS2Chart = getChartInstance(\n\t\t\t\tid,\n\t\t\t\tanalytics,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t\tsetChart(chartInstance.getOptions());\n\t\t}\n\t}, [analytics, config, id]);\n\n\treturn {\n\t\tchart,\n\t\tchangeChartType,\n\t};\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/ChartAnalytics/models/area.ts"],"names":[],"mappings":";;;AAIO,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/ChartAnalytics/models/area.ts"],"names":[],"mappings":";;;AAIO,MAAM,uBAAuB,cAAA,CAAe;AAAA,EAClD,iBAAA,GAA4B;AAC3B,IAAA,OAAO,MAAA;AAAA,EACR;AAAA,EAEA,cAAA,GAA8B;AAC7B,IAAA,OAAO;AAAA,MACN,MAAM;AAAC,KACR;AAAA,EACD;AAAA,EAEA,SAAA,GAAiC;AAChC,IAAA,OAAO,cAAA,CAAe,IAAA,CAAK,SAAA,EAAW,IAAA,CAAK,QAAQ,MAAM,CAAA;AAAA,EAC1D;AACD;AAEO,MAAM,6BAA6B,cAAA,CAAe;AAAA,EACxD,cAAA,GAA8B;AAC7B,IAAA,OAAO;AAAA,MACN,IAAA,EAAM;AAAA,QACL,QAAA,EAAU,QAAA;AAAA,QACV,GAAG,KAAA,CAAM,cAAA,EAAe,CAAE;AAAA;AAC3B,KACD;AAAA,EACD;AACD","file":"area.js","sourcesContent":["import { PlotOptions, SeriesOptionsType } from \"highcharts\";\nimport { getPointSeries } from \"../utils/chart.js\";\nimport { DHIS2LineChart } from \"./line\";\n\nexport class DHIS2AreaChart extends DHIS2LineChart {\n\tgetHighchartsType(): string {\n\t\treturn \"area\";\n\t}\n\n\tgetPlotOptions(): PlotOptions {\n\t\treturn {\n\t\t\tarea: {},\n\t\t};\n\t}\n\n\tgetSeries(): SeriesOptionsType[] {\n\t\treturn getPointSeries(this.analytics, this.config, \"area\");\n\t}\n}\n\nexport class DHISStackedAreaChart extends DHIS2AreaChart {\n\tgetPlotOptions(): PlotOptions {\n\t\treturn {\n\t\t\tarea: {\n\t\t\t\tstacking: \"normal\",\n\t\t\t\t...super.getPlotOptions().area,\n\t\t\t},\n\t\t};\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/ChartAnalytics/models/bar.ts"],"names":[],"mappings":";;AAGO,MAAM,sBAAsB,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/ChartAnalytics/models/bar.ts"],"names":[],"mappings":";;AAGO,MAAM,sBAAsB,gBAAA,CAAiB;AAAA,EACnD,iBAAA,GAA4B;AAC3B,IAAA,OAAO,KAAA;AAAA,EACR;AACD;AAEO,MAAM,6BAA6B,aAAA,CAAc;AAAA,EACvD,cAAA,GAA8B;AAC7B,IAAA,OAAO;AAAA,MACN,MAAA,EAAQ;AAAA,QACP,QAAA,EAAU,QAAA;AAAA,QACV,GAAG,KAAA,CAAM,cAAA,EAAe,CAAE;AAAA;AAC3B,KACD;AAAA,EACD;AACD","file":"bar.js","sourcesContent":["import { PlotOptions } from \"highcharts\";\nimport { DHIS2ColumnChart } from \"./column.js\";\n\nexport class DHIS2BarChart extends DHIS2ColumnChart {\n\tgetHighchartsType(): string {\n\t\treturn \"bar\";\n\t}\n}\n\nexport class DHIS2StackedBarChart extends DHIS2BarChart {\n\tgetPlotOptions(): PlotOptions {\n\t\treturn {\n\t\t\tcolumn: {\n\t\t\t\tstacking: \"normal\",\n\t\t\t\t...super.getPlotOptions().column,\n\t\t\t},\n\t\t};\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/ChartAnalytics/models/column.ts"],"names":[],"mappings":";;;AAIO,MAAM,yBAAyB,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/ChartAnalytics/models/column.ts"],"names":[],"mappings":";;;AAIO,MAAM,yBAAyB,UAAA,CAAW;AAAA,EAChD,aAAA,GAAmC;AAClC,IAAA,OAAO,MAAA;AAAA,EACR;AAAA,EAEA,iBAAA,GAA4B;AAC3B,IAAA,OAAO,QAAA;AAAA,EACR;AAAA,EAEA,cAAA,GAA8B;AAC7B,IAAA,OAAO;AAAA,MACN,MAAA,EAAQ;AAAA,QACP,UAAA,EAAY;AAAA,UACX,OAAA,EAAS;AAAA;AACV;AACD,KACD;AAAA,EACD;AAAA,EAEA,SAAA,GAAiC;AAChC,IAAA,OAAO,cAAA,CAAe,IAAA,CAAK,SAAA,EAAW,IAAA,CAAK,QAAQ,QAAQ,CAAA;AAAA,EAC5D;AAAA,EAEA,QAAA,GAAqC;AACpC,IAAA,OAAO;AAAA,MACN,IAAA,EAAM,UAAA;AAAA,MACN,UAAA,EAAY,gBAAA,CAAiB,IAAA,CAAK,SAAA,EAAW,KAAK,MAAM,CAAA;AAAA,MACxD,SAAA,EAAW,IAAA;AAAA,MACX,MAAA,EAAQ;AAAA,QACP,OAAA,EAAS;AAAA,OACV;AAAA,MACA,KAAA,EAAO,EAAE,IAAA,EAAM,EAAA;AAAG,KACnB;AAAA,EACD;AACD;AAEO,MAAM,gCAAgC,gBAAA,CAAiB;AAAA,EAC7D,cAAA,GAA8B;AAC7B,IAAA,OAAO;AAAA,MACN,MAAA,EAAQ;AAAA,QACP,QAAA,EAAU,QAAA;AAAA,QACV,GAAG,KAAA,CAAM,cAAA,EAAe,CAAE;AAAA;AAC3B,KACD;AAAA,EACD;AACD","file":"column.js","sourcesContent":["import { PlotOptions, SeriesOptionsType, XAxisOptions } from \"highcharts\";\nimport { getAllCategories, getPointSeries } from \"../utils/chart.js\";\nimport { DHIS2Chart } from \"./index.js\";\n\nexport class DHIS2ColumnChart extends DHIS2Chart {\n\tgetCategories(): any[] | undefined {\n\t\treturn undefined;\n\t}\n\n\tgetHighchartsType(): string {\n\t\treturn \"column\";\n\t}\n\n\tgetPlotOptions(): PlotOptions {\n\t\treturn {\n\t\t\tcolumn: {\n\t\t\t\tdataLabels: {\n\t\t\t\t\tenabled: true,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tgetSeries(): SeriesOptionsType[] {\n\t\treturn getPointSeries(this.analytics, this.config, \"column\");\n\t}\n\n\tgetXAxis(): XAxisOptions | undefined {\n\t\treturn {\n\t\t\ttype: \"category\",\n\t\t\tcategories: getAllCategories(this.analytics, this.config),\n\t\t\tcrosshair: true,\n\t\t\tlabels: {\n\t\t\t\tenabled: true,\n\t\t\t},\n\t\t\ttitle: { text: \"\" },\n\t\t};\n\t}\n}\n\nexport class DHIS2StackedColumnChart extends DHIS2ColumnChart {\n\tgetPlotOptions(): PlotOptions {\n\t\treturn {\n\t\t\tcolumn: {\n\t\t\t\tstacking: \"normal\",\n\t\t\t\t...super.getPlotOptions().column,\n\t\t\t},\n\t\t};\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/ChartAnalytics/models/gauge.ts"],"names":[],"mappings":";;;;;AAeA,MAAM,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/ChartAnalytics/models/gauge.ts"],"names":[],"mappings":"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","file":"gauge.js","sourcesContent":["import {\n\ttype PaneBackgroundOptions,\n\ttype PaneOptions,\n\tPlotOptions,\n\tSeriesGaugeOptions,\n\tSeriesOptionsType,\n\tXAxisOptions,\n\ttype YAxisOptions,\n} from \"highcharts\";\nimport { get, head } from \"lodash\";\nimport { DHIS2Chart } from \"./index.js\";\nimport { getColorFromLegendSet } from \"../../Map\";\nimport { colors } from \"@dhis2/ui\";\nimport type { LegendSet } from \"@hisptz/dhis2-utils/src\";\n\nconst DEFAULT_PANE_SIZE = \"100%\";\nconst DEFAULT_FONT_SIZE = \"28px\";\n\nexport class DHIS2GaugeChart extends DHIS2Chart {\n\tgetHighchartsType(): string {\n\t\treturn \"solidgauge\";\n\t}\n\n\tgetPlotOptions(): PlotOptions {\n\t\treturn {\n\t\t\tsolidgauge: {\n\t\t\t\tborderRadius: 4,\n\t\t\t\tcolor: head(this.config.colors),\n\t\t\t\tdataLabels: {\n\t\t\t\t\ty: 5,\n\t\t\t\t\tborderWidth: 0,\n\t\t\t\t\tuseHTML: true,\n\t\t\t\t},\n\t\t\t\tborderWidth: 0,\n\t\t\t\tborderColor: \"white\",\n\t\t\t\tinnerRadius: \"60%\",\n\t\t\t},\n\t\t} as Highcharts.PlotOptions;\n\t}\n\n\tgetValue(): number | undefined {\n\t\tconst { rows, headers } = this.analytics;\n\t\tconst valueHeaderIndex = headers!.findIndex(\n\t\t\t({ name }) => name === \"value\",\n\t\t);\n\t\treturn parseFloat(get(head(rows), [valueHeaderIndex]) ?? \"\");\n\t}\n\n\tgetPane(): PaneOptions | undefined {\n\t\treturn {\n\t\t\tcenter: [\"50%\", \"85%\"],\n\t\t\tsize: DEFAULT_PANE_SIZE,\n\t\t\tstartAngle: -90,\n\t\t\tendAngle: 90,\n\t\t\tbackground: [\n\t\t\t\t{\n\t\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\t\tinnerRadius: \"60%\",\n\t\t\t\t\touterRadius: \"100%\",\n\t\t\t\t\tshape: \"arc\",\n\t\t\t\t} as PaneBackgroundOptions,\n\t\t\t],\n\t\t};\n\t}\n\n\tgetSeries(): SeriesOptionsType[] {\n\t\tconst value = this.getValue();\n\t\treturn [\n\t\t\t{\n\t\t\t\tname: this.id,\n\t\t\t\tdata: [Math.round(value ?? 0)],\n\t\t\t\tcolor: \"white\",\n\t\t\t\tenableMouseTracking: false,\n\t\t\t\tdataLabels: {\n\t\t\t\t\ty: 0,\n\t\t\t\t\tborderWidth: 0,\n\t\t\t\t\tverticalAlign: \"bottom\",\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tfontSize: DEFAULT_FONT_SIZE,\n\t\t\t\t\t\tcolor: colors.grey900,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tcompare: \"percent\",\n\t\t\t\ttooltip: {\n\t\t\t\t\tvalueSuffix: \"%\",\n\t\t\t\t},\n\t\t\t},\n\t\t] as unknown as SeriesGaugeOptions[];\n\t}\n\n\tgetYAxis(): YAxisOptions[] {\n\t\tconst chartColors = this.config.colors ?? [];\n\t\tconst legendSet = this.config.legendSet;\n\t\tconst legendColor = legendSet\n\t\t\t? getColorFromLegendSet(\n\t\t\t\t\tArray.isArray(legendSet)\n\t\t\t\t\t\t? (head(legendSet as unknown as Array<LegendSet>)\n\t\t\t\t\t\t\t\t?.legends ?? [])\n\t\t\t\t\t\t: (legendSet as LegendSet).legends,\n\t\t\t\t\tthis.getValue(),\n\t\t\t\t)\n\t\t\t: undefined;\n\t\treturn [\n\t\t\t{\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\toffset: 0,\n\t\t\t\tlineWidth: 0,\n\t\t\t\tminorTicks: false,\n\t\t\t\ttickWidth: 0,\n\t\t\t\ttype: \"linear\",\n\t\t\t\tlabels: {\n\t\t\t\t\tenabled: false,\n\t\t\t\t\tdistance: 20,\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tfontSize: \"14px\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tmaxPadding: 0,\n\t\t\t\tpane: 0,\n\t\t\t\tminColor: legendColor ?? head(chartColors),\n\t\t\t\tmaxColor: legendColor ?? head(chartColors),\n\t\t\t\tmargin: 0,\n\t\t\t} as YAxisOptions,\n\t\t];\n\t}\n\n\tgetXAxis(): XAxisOptions | undefined {\n\t\treturn undefined;\n\t}\n}\n"]}
|