@hisptz/dhis2-analytics 2.1.28 → 2.1.30
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 +56 -2
- 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 +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 +56 -2
- 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 +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/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.d.ts +1 -0
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.d.ts.map +1 -1
- package/package.json +6 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/ChartAnalytics/DHIS2Chart.tsx"],"names":["useRef","uid","useChart","jsx","HighchartsReact","Highcharts","forwardRef"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/ChartAnalytics/DHIS2Chart.tsx"],"names":["useRef","uid","useChart","jsx","HighchartsReact","Highcharts","forwardRef"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,SAAS,uBAAA,CAAwB;AAAA,EAChC,SAAA;AAAA,EACA,MAAA;AAAA,EACA,cAAA;AAAA,EACA;AACD,CAAA,EAAwB;AACvB,EAAA,MAAM,EAAA,GAAKA,YAAA,CAAO,CAAA,EAAGC,cAAA,EAAK,CAAA,WAAA,CAAa,CAAA;AACvC,EAAA,MAAM,EAAE,KAAA,EAAM,GAAIC,oBAAA,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,uBACCC,cAAA;AAAA,IAACC,gCAAA;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,EAAYC,qBAAA;AAAA,MACZ,OAAA,EAAS,EAAE,GAAG,KAAA;AAAM;AAAA,GACrB;AAEF;AAgBO,MAAM,UAAA,GACZC,gBAAA;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":["map","chartMenuSections","isEmpty","jsx","Popover","FlyoutMenu","Menu","jsxs","Fragment","MenuItem","MenuDivider"],"mappings":";;;;;;;AAMO,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/ChartAnalytics/components/DownloadMenu/components/Menu.tsx"],"names":["map","chartMenuSections","isEmpty","jsx","Popover","FlyoutMenu","Menu","jsxs","Fragment","MenuItem","MenuDivider"],"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,GAAeA,UAAA,CAAIC,yBAAA,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,CAACC,cAAA,CAAQ,OAAA,CAAQ,SAAS,CAAC,CAAA;AAElD,EAAA,uBACCC,cAAA;AAAA,IAACC,UAAA;AAAA,IAAA;AAAA,MACA,cAAA,EAAgB,OAAA;AAAA,MAEhB,OAAA;AAAA,MACA,SAAA,EAAW,OAAA;AAAA,MAEX,QAAA,kBAAAD,cAAA,CAACE,iBACA,QAAA,kBAAAF,cAAA,CAACG,OAAA,EAAA,EACC,wBAAc,GAAA,CAAI,CAAC,SAAS,KAAA,KAAU;AACtC,QAAA,uBACCC,eAAA,CAAAC,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,UAAA,OAAA,CAAQ,WAAW,GAAA,CAAI,CAAC,EAAE,IAAA,EAAM,OAAM,KAAM;AAC5C,YAAA,uBACCL,cAAA;AAAA,cAACM,WAAA;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,mCAC/BC,cAAA,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":["i18n"],"mappings":";;;;;;;;AAEO,MAAM,
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/ChartAnalytics/components/DownloadMenu/constants/menu.ts"],"names":["i18n"],"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,EAAOA,qBAAA,CAAK,CAAA,CAAE,cAAc;AAAA,OAC9B;AAAA,MACA;AAAA,QACE,IAAA,EAAM,MAAA;AAAA,QACN,KAAA,EAAOA,qBAAA,CAAK,CAAA,CAAE,eAAe;AAAA,OAC/B;AAAA,MACA;AAAA,QACE,IAAA,EAAM,KAAA;AAAA,QACN,KAAA,EAAOA,qBAAA,CAAK,CAAA,CAAE,cAAc;AAAA,OAC9B;AAAA,MACA;AAAA,QACE,IAAA,EAAM,KAAA;AAAA,QACN,KAAA,EAAOA,qBAAA,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,EAAOA,qBAAA,CAAK,CAAA,CAAE,eAAe;AAAA,OAC/B;AAAA,MACA;AAAA,QACE,IAAA,EAAM,aAAA;AAAA,QACN,KAAA,EAAOA,qBAAA,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":["useRef","useState","onImageDownload","onCSVDownload","onPDFDownload","onViewAsTable","onFullScreenView","jsxs","Fragment","jsx","IconMore24","ChartMenu"],"mappings":";;;;;;;;AAaO,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/ChartAnalytics/components/DownloadMenu/index.tsx"],"names":["useRef","useState","onImageDownload","onCSVDownload","onPDFDownload","onViewAsTable","onFullScreenView","jsxs","Fragment","jsx","IconMore24","ChartMenu"],"mappings":";;;;;;;;AAaO,SAAS,iBAAA,CAAkB;AAAA,EACjC,QAAA;AAAA,EACA,OAAA;AAAA,EACA;AACD,CAAA,EAIG;AACF,EAAA,MAAM,aAAA,GAAgBA,aAA8B,IAAI,CAAA;AACxD,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIC,eAAgC,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,UAAAC,yBAAA,CAAgB,OAAO,KAAK,CAAA;AAC5B,UAAA;AAAA,QACD,KAAK,MAAA;AACJ,UAAAA,yBAAA,CAAgB,OAAO,MAAM,CAAA;AAC7B,UAAA;AAAA,QACD,KAAK,KAAA;AACJ,UAAAA,yBAAA,CAAgB,OAAO,SAAS,CAAA;AAChC,UAAA;AAAA,QACD,KAAK,KAAA;AACJ,UAAAC,uBAAA,CAAc,KAAK,CAAA;AACnB,UAAA;AAAA,QACD,KAAK,KAAA;AACJ,UAAAC,uBAAA,CAAc,KAAK,CAAA;AACnB,UAAA;AAAA,QACD,KAAK,OAAA;AACJ,UAAAC,uBAAA,CAAc,OAAO,IAAI,CAAA;AACzB,UAAA;AAAA,QACD,KAAK,aAAA;AACJ,UAAAC,0BAAA,CAAiB,KAAK,CAAA;AACtB,UAAA;AAAA;AACF,IACD;AAAA,EACD,CAAA;AAEA,EAAA,uBACCC,eAAA,CAAAC,mBAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAS,UAAA,EAAY,GAAA,EAAK,eAC7B,QAAA,EAAA,IAAA,oBAAQA,cAAA,CAACC,iBAAW,CAAA,EACtB,CAAA;AAAA,IACC,OAAA,oBACAD,cAAA;AAAA,MAACE,iBAAA;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":["useState","getChartInstance","useCallback","updateLayout","useEffect"],"mappings":";;;;;AAOO,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ChartAnalytics/hooks/useChart.ts"],"names":["useState","getChartInstance","useCallback","updateLayout","useEffect"],"mappings":";;;;;AAOO,SAAS,QAAA,CAAS;AAAA,EACxB,EAAA;AAAA,EACA,SAAA;AAAA,EACA;AACD,CAAA,EAOE;AACD,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIA,cAAA;AAAA,IACzBC,yBAAA,CAAiB,EAAA,EAAI,SAAA,EAAW,MAAM,EAAE,UAAA;AAAW,GACpD;AAEA,EAAA,MAAM,eAAA,GAAkBC,iBAAA;AAAA,IACvB,CAAC,IAAA,KAAoB;AACpB,MAAA,MAAM,aAAA,GAAgBC,qBAAA,CAAa,MAAA,EAAQ,EAAE,MAAM,CAAA;AACnD,MAAA,MAAM,gBAAgB,EAAE,GAAG,MAAA,EAAQ,MAAA,EAAQ,eAAe,IAAA,EAAK;AAC/D,MAAA,MAAM,aAAA,GAA4BF,yBAAA;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,EAAAG,eAAA,CAAU,MAAM;AACf,IAAA,IAAI,aAAa,MAAA,EAAQ;AACxB,MAAA,MAAM,aAAA,GAA4BH,yBAAA;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":["DHIS2LineChart","getPointSeries"],"mappings":";;;;;AAIO,MAAM,uBAAuBA,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ChartAnalytics/models/area.ts"],"names":["DHIS2LineChart","getPointSeries"],"mappings":";;;;;AAIO,MAAM,uBAAuBA,mBAAA,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,OAAOC,uBAAA,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":["DHIS2ColumnChart"],"mappings":";;;;AAGO,MAAM,sBAAsBA,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ChartAnalytics/models/bar.ts"],"names":["DHIS2ColumnChart"],"mappings":";;;;AAGO,MAAM,sBAAsBA,0BAAA,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":["DHIS2Chart","getPointSeries","getAllCategories"],"mappings":";;;;;AAIO,MAAM,yBAAyBA,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ChartAnalytics/models/column.ts"],"names":["DHIS2Chart","getPointSeries","getAllCategories"],"mappings":";;;;;AAIO,MAAM,yBAAyBA,mBAAA,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,OAAOC,uBAAA,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,EAAYC,yBAAA,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":["DHIS2Chart","head","get","colors","getColorFromLegendSet"],"mappings":";;;;;;;AAeA,MAAM,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ChartAnalytics/models/gauge.ts"],"names":["DHIS2Chart","head","get","colors","getColorFromLegendSet"],"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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ChartAnalytics/models/index.ts"],"names":["compact"],"mappings":";;;;AAcO,MAAe,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ChartAnalytics/models/index.ts"],"names":["compact"],"mappings":"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","file":"index.js","sourcesContent":["import type { Analytics } from \"@hisptz/dhis2-utils\";\nimport { ChartConfig } from \"../types/props.js\";\nimport { compact } from \"lodash\";\nimport {\n\tChartOptions,\n\tExportingOptions,\n\tOptions,\n\tPaneOptions,\n\tPlotOptions,\n\tSeriesOptionsType,\n\tXAxisOptions,\n\tYAxisOptions,\n} from \"highcharts\";\n\nexport abstract class DHIS2Chart {\n\tid: string;\n\tanalytics: Analytics;\n\tconfig: ChartConfig;\n\n\tconstructor(id: string, analytics: Analytics, config: ChartConfig) {\n\t\tthis.id = id;\n\t\tthis.analytics = analytics;\n\t\tthis.config = config;\n\t}\n\n\tabstract getHighchartsType(): string;\n\n\tgetChartConfig(): ChartOptions & any {\n\t\treturn {\n\t\t\trenderTo: this.id,\n\t\t\tzoomType: \"xy\",\n\t\t\ttype: this.getHighchartsType(),\n\t\t\theight: this.config?.height,\n\t\t\tstyledMode: false,\n\t\t};\n\t}\n\n\tgetPane(): PaneOptions | undefined {\n\t\treturn undefined;\n\t}\n\n\tgetOptions(): Options {\n\t\tconst options = {\n\t\t\tyAxis: this.getYAxis(),\n\t\t\tchart: this.getChartConfig(),\n\t\t\tpane: this.getPane(),\n\t\t\tcolors: this.config?.colors ?? [\n\t\t\t\t\"#a8bf24\",\n\t\t\t\t\"#518cc3\",\n\t\t\t\t\"#d74554\",\n\t\t\t\t\"#ff9e21\",\n\t\t\t\t\"#968f8f\",\n\t\t\t\t\"#ba3ba1\",\n\t\t\t\t\"#ffda54\",\n\t\t\t\t\"#45beae\",\n\t\t\t\t\"#b98037\",\n\t\t\t\t\"#676767\",\n\t\t\t\t\"#6b2dd4\",\n\t\t\t\t\"#47792c\",\n\t\t\t\t\"#fcbdbd\",\n\t\t\t\t\"#830000\",\n\t\t\t\t\"#a5ffc0\",\n\t\t\t\t\"#000078\",\n\t\t\t\t\"#817c00\",\n\t\t\t\t\"#bdf023\",\n\t\t\t\t\"#fffac4\",\n\t\t\t],\n\t\t\tseries: this.getSeries(),\n\t\t\tplotOptions: this.getPlotOptions(),\n\t\t\ttitle: {\n\t\t\t\ttext: this.config.customTitle\n\t\t\t\t\t? this.config.customTitle\n\t\t\t\t\t: this.config.showFilterAsTitle\n\t\t\t\t\t\t? this.getFilterLabel()\n\t\t\t\t\t\t: \"\",\n\t\t\t},\n\t\t\txAxis: this.getXAxis(),\n\t\t\texporting: this.getExporting(),\n\t\t\tlegend: { enabled: true },\n\t\t\tcredits: { enabled: false },\n\t\t};\n\n\t\tlet overrides = {};\n\n\t\tif (this.config?.highChartOverrides) {\n\t\t\toverrides = {\n\t\t\t\t...(typeof this.config?.highChartOverrides === \"object\"\n\t\t\t\t\t? (this.config?.highChartOverrides ?? {})\n\t\t\t\t\t: this.config?.highChartOverrides(options)),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\t...options,\n\t\t\t...overrides,\n\t\t};\n\t}\n\n\tabstract getSeries(): SeriesOptionsType[];\n\n\tabstract getPlotOptions(): PlotOptions;\n\n\tabstract getXAxis(): XAxisOptions | undefined;\n\n\tgetYAxis(): YAxisOptions[] {\n\t\treturn [\n\t\t\t{\n\t\t\t\ttitle: {\n\t\t\t\t\ttext: \"\",\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tcolor: \"#000000\",\n\t\t\t\t\t\tfontWeight: \"normal\",\n\t\t\t\t\t\tfontSize: \"14px\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tlabels: {\n\t\t\t\t\tenabled: true,\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tcolor: \"#000000\",\n\t\t\t\t\t\tfontWeight: \"normal\",\n\t\t\t\t\t\tfontSize: \"14px\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tplotLines: [\n\t\t\t\t\t{\n\t\t\t\t\t\tcolor: \"#000000\",\n\t\t\t\t\t\tdashStyle: \"Solid\",\n\t\t\t\t\t\twidth: 2,\n\t\t\t\t\t\tzIndex: 1000,\n\t\t\t\t\t\tlabel: { text: \"\" },\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tcolor: \"#bbbbbb\",\n\t\t\t\t\t\tdashStyle: \"Solid\",\n\t\t\t\t\t\tzIndex: 1000,\n\t\t\t\t\t\twidth: 2,\n\t\t\t\t\t\tlabel: { text: \"\" },\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t];\n\t}\n\n\tgetExporting(): ExportingOptions {\n\t\tconst name = this.config?.name ?? \"chart\";\n\t\treturn {\n\t\t\tfilename: `${name}`,\n\t\t\tsourceWidth: 1200,\n\t\t\tbuttons: {\n\t\t\t\tcontextButton: {\n\t\t\t\t\tenabled: false,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate getFilterLabel() {\n\t\tconst filters = this.config.layout.filter ?? [];\n\t\tconst labels = filters.map((filter) => {\n\t\t\tconst dimensions =\n\t\t\t\tthis.analytics.metaData?.dimensions[filter] ?? [];\n\t\t\treturn dimensions.map((dimension) => {\n\t\t\t\tconst filterItem = this.analytics.metaData?.items[dimension];\n\t\t\t\treturn filterItem?.name;\n\t\t\t});\n\t\t});\n\t\treturn compact(labels.flat()).join(\", \");\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ChartAnalytics/models/line.ts"],"names":["DHIS2Chart","getPointSeries","getAllCategories"],"mappings":";;;;;AAIO,MAAM,uBAAuBA,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ChartAnalytics/models/line.ts"],"names":["DHIS2Chart","getPointSeries","getAllCategories"],"mappings":";;;;;AAIO,MAAM,uBAAuBA,mBAAA,CAAW;AAAA,EAC9C,iBAAA,GAA4B;AAC3B,IAAA,OAAO,MAAA;AAAA,EACR;AAAA,EAEA,cAAA,GAA8B;AAC7B,IAAA,OAAO;AAAA,MACN,IAAA,EAAM;AAAA,QACL,UAAA,EAAY;AAAA,UACX,OAAA,EAAS;AAAA;AACV;AACD,KACD;AAAA,EACD;AAAA,EAEA,SAAA,GAAiC;AAChC,IAAA,OAAOC,uBAAA,CAAe,IAAA,CAAK,SAAA,EAAW,IAAA,CAAK,QAAQ,MAAM,CAAA;AAAA,EAC1D;AAAA,EAEA,QAAA,GAAqC;AACpC,IAAA,OAAO;AAAA,MACN,IAAA,EAAM,UAAA;AAAA,MACN,UAAA,EAAYC,yBAAA,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","file":"line.js","sourcesContent":["import { PlotOptions, SeriesOptionsType, XAxisOptions } from \"highcharts\";\nimport { getAllCategories, getPointSeries } from \"../utils/chart.js\";\nimport { DHIS2Chart } from \"./index.js\";\n\nexport class DHIS2LineChart extends DHIS2Chart {\n\tgetHighchartsType(): string {\n\t\treturn \"line\";\n\t}\n\n\tgetPlotOptions(): PlotOptions {\n\t\treturn {\n\t\t\tline: {\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, \"line\");\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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ChartAnalytics/models/multi-series.ts"],"names":["DHIS2Chart","head","getDimensionHeaderIndex","compact","row","getAllCategories"],"mappings":";;;;;;AAWO,MAAM,8BAA8BA,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ChartAnalytics/models/multi-series.ts"],"names":["DHIS2Chart","head","getDimensionHeaderIndex","compact","row","getAllCategories"],"mappings":"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","file":"multi-series.js","sourcesContent":["import {\n\tPlotOptions,\n\tSeriesOptionsType,\n\tXAxisOptions,\n\tYAxisOptions,\n} from \"highcharts\";\nimport { compact, head } from \"lodash\";\nimport { MultiSeriesConfig } from \"../types/props.js\";\nimport { getAllCategories, getDimensionHeaderIndex } from \"../utils/chart.js\";\nimport { DHIS2Chart } from \"./index.js\";\n\nexport class DHIS2MultiSeriesChart extends DHIS2Chart {\n\tgetHighchartsType(): string {\n\t\treturn \"\";\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\tline: {\n\t\t\t\tdataLabels: {\n\t\t\t\t\tenabled: true,\n\t\t\t\t},\n\t\t\t},\n\t\t\tbar: {\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\tconst analytics = this.analytics;\n\t\tconst config = this.config;\n\n\t\tconst categoryDimension = head(config.layout.category);\n\t\tconst seriesConfig: MultiSeriesConfig | undefined =\n\t\t\tthis.config.multiSeries;\n\n\t\tconst categoryIndex = getDimensionHeaderIndex(\n\t\t\tanalytics.headers ?? [],\n\t\t\tcategoryDimension ?? \"\",\n\t\t);\n\t\tconst seriesIndex = getDimensionHeaderIndex(\n\t\t\tanalytics.headers ?? [],\n\t\t\thead(config.layout.series) ?? \"\",\n\t\t);\n\t\tconst valueIndex = getDimensionHeaderIndex(\n\t\t\tanalytics.headers ?? [],\n\t\t\t\"value\",\n\t\t);\n\n\t\tif (!categoryDimension) {\n\t\t\tthrow new Error(\"At least one category dimension is required\");\n\t\t}\n\n\t\tif (!seriesConfig) {\n\t\t\tthrow new Error(\n\t\t\t\t\"MultiSeries config is required for chart type multi-series\",\n\t\t\t);\n\t\t}\n\n\t\treturn compact(\n\t\t\tseriesConfig?.series?.map(({ id, as, cumulative, yAxis }) => {\n\t\t\t\tconst dataItem = analytics.metaData?.items[id as any];\n\t\t\t\tconst categoryItems =\n\t\t\t\t\tanalytics.metaData?.dimensions[\n\t\t\t\t\t\tcategoryDimension as \"dx\" | \"ou\" | \"pe\"\n\t\t\t\t\t];\n\n\t\t\t\tconst data = categoryItems?.map((item: string) => {\n\t\t\t\t\tconst row = analytics.rows?.find(\n\t\t\t\t\t\t(row: any) =>\n\t\t\t\t\t\t\trow[categoryIndex] === item &&\n\t\t\t\t\t\t\trow[seriesIndex] === id,\n\t\t\t\t\t);\n\t\t\t\t\treturn row?.[valueIndex]\n\t\t\t\t\t\t? parseFloat(row?.[valueIndex])\n\t\t\t\t\t\t: null;\n\t\t\t\t});\n\n\t\t\t\tlet cumulativeData: number[] = [];\n\n\t\t\t\tif (cumulative) {\n\t\t\t\t\tcumulativeData =\n\t\t\t\t\t\tcompact(data)?.reduce((acc, curr, index) => {\n\t\t\t\t\t\t\tif (index === 0) {\n\t\t\t\t\t\t\t\treturn [...acc, curr];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn [...acc, acc[index - 1] + curr];\n\t\t\t\t\t\t}, [] as number[]) ?? [];\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tid,\n\t\t\t\t\tname: dataItem?.name,\n\t\t\t\t\tdata: cumulative ? cumulativeData : data,\n\t\t\t\t\ttype: as,\n\t\t\t\t\tyAxis: yAxis ?? 0,\n\t\t\t\t};\n\t\t\t}),\n\t\t) as SeriesOptionsType[];\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\tgetYAxis(): YAxisOptions[] {\n\t\tlet yAxes: YAxisOptions[];\n\n\t\tif (this.config.multiSeries?.yAxes) {\n\t\t\tyAxes = this.config.multiSeries?.yAxes;\n\t\t} else {\n\t\t\tyAxes = super.getYAxis();\n\t\t}\n\n\t\tif (!this.config.multiSeries?.target) {\n\t\t\treturn yAxes;\n\t\t}\n\n\t\tconst { value, styles, label } = this.config.multiSeries?.target ?? {};\n\n\t\treturn [\n\t\t\t{\n\t\t\t\t...yAxes[0],\n\t\t\t\tplotLines: [\n\t\t\t\t\t...(yAxes[0].plotLines ?? []),\n\t\t\t\t\t{\n\t\t\t\t\t\tcolor: styles?.color ?? \"#00FF00\",\n\t\t\t\t\t\tdashStyle: styles?.dashStyle ?? \"Solid\",\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\twidth: styles?.width ?? 2,\n\t\t\t\t\t\tzIndex: styles?.zIndex ?? 1000,\n\t\t\t\t\t\tlabel: label,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t...yAxes.slice(1),\n\t\t];\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ChartAnalytics/models/pie.ts"],"names":["DHIS2Chart","head","row"],"mappings":";;;;;AAIO,MAAM,sBAAsBA,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ChartAnalytics/models/pie.ts"],"names":["DHIS2Chart","head","row"],"mappings":";;;;;AAIO,MAAM,sBAAsBA,mBAAA,CAAW;AAAA,EAC7C,iBAAA,GAA4B;AAC3B,IAAA,OAAO,KAAA;AAAA,EACR;AAAA,EAEA,cAAA,GAA8B;AAC7B,IAAA,OAAO;AAAA,MACN,GAAA,EAAK;AAAA,QACJ,gBAAA,EAAkB,IAAA;AAAA,QAClB,MAAA,EAAQ,SAAA;AAAA,QACR,UAAA,EAAY;AAAA,UACX,OAAA,EAAS,IAAA;AAAA,UACT,MAAA,EAAQ;AAAA;AACT;AACD,KACD;AAAA,EACD;AAAA,EAEA,SAAA,GAAiC;AAChC,IAAA,MAAM,YAAY,IAAA,CAAK,SAAA;AACvB,IAAA,MAAM,SAAS,IAAA,CAAK,MAAA;AACpB,IAAA,MAAM,eAAA,GAAkBC,WAAA,CAAK,MAAA,CAAO,MAAA,CAAO,MAAM,CAAA;AACjD,IAAA,MAAM,WAAA,GACL,WAAW,OAAA,EAAS,SAAA,CAAU,CAAC,CAAA,KAAM,CAAA,CAAE,IAAA,KAAS,eAAe,CAAA,IAC/D,EAAA;AACD,IAAA,MAAM,UAAA,GACL,WAAW,OAAA,EAAS,SAAA,CAAU,CAAC,CAAA,KAAM,CAAA,CAAE,IAAA,KAAS,OAAO,CAAA,IAAK,EAAA;AAE7D,IAAA,IAAI,CAAC,eAAA,EAAiB;AACrB,MAAA,MAAM,IAAI,MAAM,wCAAwC,CAAA;AAAA,IACzD;AACA,IAAA,MAAM,YAAA,GACL,SAAA,CAAU,QAAA,EAAU,UAAA,GACnB,eACD,CAAA;AAED,IAAA,OAAO;AAAA,MACN;AAAA,QACC,IAAI,eAAA,IAAmB,EAAA;AAAA,QACvB,MACC,SAAA,CAAU,QAAA,EAAU,KAAA,GAAQ,eAAsB,GAAG,IAAA,IACrD,EAAA;AAAA,QACD,IAAA,EAAM,YAAA,EAAc,GAAA,CAAI,CAAC,KAAA,KAAkB;AAC1C,UAAA,MAAM,GAAA,GAAM,WAAW,IAAA,EAAM,IAAA;AAAA,YAC5B,CAACC,IAAAA,KAAaA,IAAAA,CAAI,WAAW,CAAA,KAAM;AAAA,WACpC;AAEA,UAAA,OAAO;AAAA,YACN,IAAA,EAAM,SAAA,CAAU,QAAA,EAAU,KAAA,GAAQ,KAAY,CAAA,EAAG,IAAA;AAAA,YACjD,CAAA,EAAG,MAAM,UAAU,CAAA,GAChB,WAAW,GAAA,GAAM,UAAU,CAAA,IAAK,EAAE,CAAA,GAClC;AAAA,WACJ;AAAA,QACD,CAAC;AAAA;AACF,KACD;AAAA,EACD;AAAA,EAEA,QAAA,GAAqC;AACpC,IAAA,OAAO,MAAA;AAAA,EACR;AACD","file":"pie.js","sourcesContent":["import { PlotOptions, SeriesOptionsType, XAxisOptions } from \"highcharts\";\nimport { head } from \"lodash\";\nimport { DHIS2Chart } from \"./index.js\";\n\nexport class DHIS2PieChart extends DHIS2Chart {\n\tgetHighchartsType(): string {\n\t\treturn \"pie\";\n\t}\n\n\tgetPlotOptions(): PlotOptions {\n\t\treturn {\n\t\t\tpie: {\n\t\t\t\tallowPointSelect: true,\n\t\t\t\tcursor: \"pointer\",\n\t\t\t\tdataLabels: {\n\t\t\t\t\tenabled: true,\n\t\t\t\t\tformat: \"<b>{point.name}</b>: {point.percentage:.1f} %\",\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tgetSeries(): SeriesOptionsType[] {\n\t\tconst analytics = this.analytics;\n\t\tconst config = this.config;\n\t\tconst seriesDimension = head(config.layout.series);\n\t\tconst seriesIndex =\n\t\t\tanalytics?.headers?.findIndex((h) => h.name === seriesDimension) ??\n\t\t\t-1;\n\t\tconst valueIndex =\n\t\t\tanalytics?.headers?.findIndex((h) => h.name === \"value\") ?? -1;\n\n\t\tif (!seriesDimension) {\n\t\t\tthrow new Error(\"Pie chart must have a series dimension\");\n\t\t}\n\t\tconst seriesValues =\n\t\t\tanalytics.metaData?.dimensions?.[\n\t\t\t\tseriesDimension as \"dx\" | \"ou\" | \"pe\"\n\t\t\t];\n\n\t\treturn [\n\t\t\t{\n\t\t\t\tid: seriesDimension ?? \"\",\n\t\t\t\tname:\n\t\t\t\t\tanalytics.metaData?.items?.[seriesDimension as any]?.name ??\n\t\t\t\t\t\"\",\n\t\t\t\tdata: seriesValues?.map((value: string) => {\n\t\t\t\t\tconst row = analytics?.rows?.find(\n\t\t\t\t\t\t(row: any) => row[seriesIndex] === value,\n\t\t\t\t\t);\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tname: analytics.metaData?.items?.[value as any]?.name,\n\t\t\t\t\t\ty: row?.[valueIndex]\n\t\t\t\t\t\t\t? parseFloat(row?.[valueIndex] ?? \"\")\n\t\t\t\t\t\t\t: 0,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t} as SeriesOptionsType,\n\t\t];\n\t}\n\n\tgetXAxis(): XAxisOptions | undefined {\n\t\treturn undefined;\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ChartAnalytics/models/radar.ts"],"names":["DHIS2LineChart"],"mappings":";;;;AAEO,MAAM,wBAAwBA,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ChartAnalytics/models/radar.ts"],"names":["DHIS2LineChart"],"mappings":";;;;AAEO,MAAM,wBAAwBA,mBAAA,CAAe;AAAA,EACnD,cAAA,GAAsB;AACrB,IAAA,OAAO;AAAA,MACN,GAAG,MAAM,cAAA,EAAe;AAAA,MACxB,KAAA,EAAO;AAAA,KACR;AAAA,EACD;AACD","file":"radar.js","sourcesContent":["import { DHIS2LineChart } from \"./line\";\n\nexport class DHIS2RadarChart extends DHIS2LineChart {\n\tgetChartConfig(): any {\n\t\treturn {\n\t\t\t...super.getChartConfig(),\n\t\t\tpolar: true,\n\t\t};\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ChartAnalytics/models/scatter.ts"],"names":["DHIS2LineChart","getPointSeries"],"mappings":";;;;;AAIO,MAAM,0BAA0BA,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ChartAnalytics/models/scatter.ts"],"names":["DHIS2LineChart","getPointSeries"],"mappings":";;;;;AAIO,MAAM,0BAA0BA,mBAAA,CAAe;AAAA,EACrD,iBAAA,GAA4B;AAC3B,IAAA,OAAO,SAAA;AAAA,EACR;AAAA,EAEA,SAAA,GAAiC;AAChC,IAAA,OAAOC,oBAAA,CAAe,IAAA,CAAK,SAAA,EAAW,IAAA,CAAK,QAAQ,SAAS,CAAA;AAAA,EAC7D;AACD","file":"scatter.js","sourcesContent":["import { DHIS2LineChart } from \"./line\";\nimport { SeriesOptionsType } from \"highcharts\";\nimport { getPointSeries } from \"../utils/chart\";\n\nexport class DHIS2ScatterChart extends DHIS2LineChart {\n\tgetHighchartsType(): string {\n\t\treturn \"scatter\";\n\t}\n\n\tgetSeries(): SeriesOptionsType[] {\n\t\treturn getPointSeries(this.analytics, this.config, \"scatter\");\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ChartAnalytics/services/export.ts"],"names":[],"mappings":";;;;;;;AAUO,SAAS,uBAAuB,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ChartAnalytics/services/export.ts"],"names":[],"mappings":";;;;;;;AAUO,SAAS,uBAAuB,UAAA,EAA+B;AACrE,EAAA,OAAA,CAAQ,IAAA;AAAA,IACP,CAAA,4EAAA;AAAA,GACD;AACD;AAEO,SAAS,gBAAA,CACf,UACA,OAAA,EACC;AACD,EAAA,QAAA,EAAU,KAAA,EAAO,WAAW,MAAA,EAAO;AACpC;AAEO,SAAS,aAAA,CACf,UACA,OAAA,EACC;AAGD,EAAA,QAAA,EAAU,KAAA,CAAM,YAAY,EAAE,IAAA,EAAM,mBAAkB,EAAG,OAAA,IAAW,EAAE,CAAA;AACvE;AAEO,SAAS,aAAA,CACf,UACA,OAAA,EACC;AAGD,EAAA,QAAA,EAAU,MAAM,WAAA,EAAY;AAC7B;AAEO,MAAM,eAAA,GAAkB,CAC9B,QAAA,EACA,IAAA,EACA,OAAA,KACI;AAEJ,EAAA,QAAA,EAAU,KAAA,CAAM,WAAA,CAAY,EAAE,IAAA,EAAM,CAAA,MAAA,EAAS,IAAI,CAAA,CAAA,EAAG,EAAG,OAAA,IAAW,EAAE,CAAA;AACrE;AAEO,MAAM,aAAA,GAAgB,CAC5B,QAAA,EACA,IAAA,KACI;AACJ,EAAA,MAAM,OAAA,GAAU,UAAU,KAAA,CAAM,OAAA;AAChC,EAAA,QAAA,EAAU,OAAO,MAAA,CAAO;AAAA,IACvB,GAAG,OAAA;AAAA,IACH,SAAA,EAAW;AAAA,MACV,GAAG,OAAA,EAAS,SAAA;AAAA,MACZ,SAAA,EAAW;AAAA;AACZ,GACA,CAAA;AACF","file":"export.js","sourcesContent":["import * as Highcharts from \"highcharts\";\nimport HighchartsReact from \"highcharts-react-official\";\nimport \"highcharts/modules/exporting\";\nimport \"highcharts/modules/export-data\";\nimport \"highcharts/modules/full-screen\";\nimport \"highcharts/modules/accessibility\";\n\n/**\n * @deprecated since `v2`. Not needed for highcharts > v12\n * */\nexport function setupHighchartsModules(highcharts: typeof Highcharts) {\n\tconsole.warn(\n\t\t`Due to highchart changes this is no longer needed. You can remove this call.`,\n\t);\n}\n\nexport function onFullScreenView(\n\tchartRef: HighchartsReact.RefObject,\n\toptions?: Highcharts.Options,\n) {\n\tchartRef?.chart?.fullscreen.toggle();\n}\n\nexport function onPDFDownload(\n\tchartRef: HighchartsReact.RefObject,\n\toptions?: Highcharts.Options,\n) {\n\t// @ts-ignore\n\n\tchartRef?.chart.exportChart({ type: \"application/pdf\" }, options ?? {});\n}\n\nexport function onCSVDownload(\n\tchartRef: HighchartsReact.RefObject,\n\toptions?: Highcharts.Options,\n) {\n\t// @ts-ignore\n\n\tchartRef?.chart.downloadCSV();\n}\n\nexport const onImageDownload = (\n\tchartRef: HighchartsReact.RefObject,\n\ttype: \"png\" | \"svg+xml\" | \"jpeg\",\n\toptions?: Highcharts.Options,\n) => {\n\t// @ts-ignore\n\tchartRef?.chart.exportChart({ type: `image/${type}` }, options ?? {});\n};\n\nexport const onViewAsTable = (\n\tchartRef: HighchartsReact.RefObject,\n\tshow: boolean,\n) => {\n\tconst options = chartRef?.chart.options;\n\tchartRef?.chart?.update({\n\t\t...options,\n\t\texporting: {\n\t\t\t...options?.exporting,\n\t\t\tshowTable: show,\n\t\t},\n\t});\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ChartAnalytics/utils/chart.ts"],"names":["findIndex","header","head","index","find","row","color","compact","set","isEmpty","DHIS2ColumnChart","DHIS2BarChart","DHIS2StackedBarChart","DHIS2StackedColumnChart","DHIS2PieChart","DHIS2LineChart","DHIS2AreaChart","DHISStackedAreaChart","DHIS2MultiSeriesChart","DHIS2GaugeChart","DHIS2RadarChart","DHIS2ScatterChart"],"mappings":"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","file":"chart.js","sourcesContent":["import type {\n\tAnalytics,\n\tAnalyticsHeader,\n\tAnalyticsMetadata,\n\tLegendSet,\n} from \"@hisptz/dhis2-utils\";\nimport { compact, find, findIndex, head, isEmpty, set } from \"lodash\";\nimport { DHIS2Chart } from \"../models\";\nimport { DHIS2ColumnChart, DHIS2StackedColumnChart } from \"../models/column.js\";\nimport { DHIS2LineChart } from \"../models/line.js\";\nimport { DHIS2MultiSeriesChart } from \"../models/multi-series.js\";\nimport { DHIS2PieChart } from \"../models/pie.js\";\nimport { ChartConfig, ChartType } from \"../types/props.js\";\nimport { DHIS2BarChart, DHIS2StackedBarChart } from \"../models/bar.js\";\nimport { DHIS2GaugeChart } from \"../models/gauge\";\nimport { DHIS2AreaChart, DHISStackedAreaChart } from \"../models/area\";\nimport { DHIS2RadarChart } from \"../models/radar\";\nimport { DHIS2ScatterChart } from \"../models/scatter\";\n\nexport function getDimensionHeaderIndex(\n\theaders: AnalyticsHeader[],\n\tname: string,\n): number {\n\treturn findIndex(headers, { name });\n}\n\nexport function getPointSeries(\n\tanalytics: Analytics,\n\tconfig: ChartConfig,\n\thighchartsType: string,\n) {\n\tconst series: string[] = config.layout.series;\n\n\treturn series.map((seriesName: string) => {\n\t\tconst header = analytics?.headers?.find(\n\t\t\t(header: any) => header.name === seriesName,\n\t\t);\n\t\tif (!header) {\n\t\t\treturn undefined;\n\t\t}\n\t\tif (analytics?.metaData) {\n\t\t\treturn getColumnSeries(analytics, header, config, highchartsType);\n\t\t}\n\t})[0];\n}\n\nexport function getColumnSeries(\n\tanalytics: Analytics,\n\theader: AnalyticsHeader,\n\tconfig: ChartConfig,\n\thighchartsType: string,\n): any {\n\tconst headerIndex = analytics?.headers?.findIndex(\n\t\t(h: { name: any }) => header.name === h.name,\n\t);\n\tconst valueIndex = analytics?.headers?.findIndex(\n\t\t(h: { name: string }) => h.name === \"value\",\n\t);\n\n\tconst colors = config.colors ?? [];\n\n\tconst { items, dimensions } = analytics?.metaData ?? {};\n\tconst categoriesDimension = config.layout.category;\n\n\tconst seriesDimensionValues: string[] =\n\t\tdimensions?.[header.name as \"dx\" | \"ou\" | \"pe\"] ?? [];\n\n\treturn head(\n\t\tcategoriesDimension?.map((categoryDimension: string) => {\n\t\t\tconst categories: string[] = dimensions?.[\n\t\t\t\tcategoryDimension as \"dx\" | \"ou\" | \"pe\"\n\t\t\t] as any;\n\t\t\tconst categoryDimensionIndex = analytics?.headers?.findIndex(\n\t\t\t\t(h: { name: string }) => h.name === categoryDimension,\n\t\t\t);\n\t\t\treturn seriesDimensionValues?.map(\n\t\t\t\t(seriesDimensionValue: string, index) => {\n\t\t\t\t\tconst data = categories?.map((category: string, index) => {\n\t\t\t\t\t\tconst row = find(\n\t\t\t\t\t\t\tanalytics?.rows,\n\t\t\t\t\t\t\t(row: any) =>\n\t\t\t\t\t\t\t\trow[headerIndex ?? -1] ===\n\t\t\t\t\t\t\t\t\tseriesDimensionValue &&\n\t\t\t\t\t\t\t\trow[categoryDimensionIndex ?? -1] === category,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst value = row?.[valueIndex ?? -1]\n\t\t\t\t\t\t\t? parseFloat(row?.[valueIndex ?? -1])\n\t\t\t\t\t\t\t: null;\n\n\t\t\t\t\t\tif (!config.legendSet) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!Array.isArray(config.legendSet)) {\n\t\t\t\t\t\t\tconst color = getLegendColorFromValue({\n\t\t\t\t\t\t\t\tlegendSet: config.legendSet as LegendSet,\n\t\t\t\t\t\t\t\tvalue: value ?? 0,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tx: index,\n\t\t\t\t\t\t\t\ty: value,\n\t\t\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\t\t\tcolor: color,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst legendSet =\n\t\t\t\t\t\t\tconfig.legendSet.find(\n\t\t\t\t\t\t\t\t({ dataItem }) => dataItem === category,\n\t\t\t\t\t\t\t)?.legendSet ??\n\t\t\t\t\t\t\tconfig.legendSet.find(\n\t\t\t\t\t\t\t\t({ dataItem }) =>\n\t\t\t\t\t\t\t\t\tdataItem === seriesDimensionValue,\n\t\t\t\t\t\t\t)?.legendSet;\n\n\t\t\t\t\t\tif (!legendSet) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst color = getLegendColorFromValue({\n\t\t\t\t\t\t\tlegendSet: legendSet,\n\t\t\t\t\t\t\tvalue: value ?? 0,\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tx: index,\n\t\t\t\t\t\t\ty: value,\n\t\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\t\tcolor: color,\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: seriesDimensionValue,\n\t\t\t\t\t\tname: items?.[seriesDimensionValue as any]?.name,\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\ttype: highchartsType,\n\t\t\t\t\t\tcolor: colors[index % colors.length],\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t);\n\t\t}),\n\t);\n}\n\nfunction getCategories(\n\t{ name }: AnalyticsHeader,\n\t{ items, dimensions }: AnalyticsMetadata,\n): string[] {\n\tconst categories: string[] = dimensions?.[\n\t\tname as \"dx\" | \"ou\" | \"pe\"\n\t] as any;\n\n\treturn categories?.map((category: string) => {\n\t\treturn items[category as any]?.name ?? \"\";\n\t}) as unknown as string[];\n}\n\nexport function getAllCategories(\n\tanalytics: Analytics,\n\tconfig: ChartConfig,\n): string[] {\n\tconst categories = config.layout.category;\n\n\treturn compact(\n\t\tcategories?.map((category: string) => {\n\t\t\tconst header = analytics?.headers?.find(\n\t\t\t\t(header: any) => header.name === category,\n\t\t\t);\n\t\t\tif (!header) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif (analytics?.metaData) {\n\t\t\t\treturn getCategories(header, analytics?.metaData);\n\t\t\t}\n\t\t}),\n\t)[0];\n}\n\nexport function updateLayout(\n\tconfig: ChartConfig,\n\t{ type }: { type: ChartType },\n) {\n\tif (type === config.type) {\n\t\treturn config.layout;\n\t}\n\n\tconst updatedLayout = { ...config.layout };\n\n\tswitch (type) {\n\t\tcase \"pie\":\n\t\t\tset(updatedLayout, \"category\", []);\n\t\t\tif (isEmpty(updatedLayout.series)) {\n\t\t\t\tif (!isEmpty(config.layout.category)) {\n\t\t\t\t\tset(updatedLayout, \"series\", [\n\t\t\t\t\t\thead(config.layout.category),\n\t\t\t\t\t]);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(\"Invalid layout for pie chart\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (updatedLayout.series.length > 1) {\n\t\t\t\tset(updatedLayout, \"series\", [head(updatedLayout.series)]);\n\t\t\t}\n\t}\n\n\treturn updatedLayout;\n}\n\nexport function getLegendColorFromValue({\n\tlegendSet,\n\tvalue,\n}: {\n\tlegendSet?: LegendSet;\n\tvalue?: number;\n}): string | null {\n\tif (!legendSet && !value) {\n\t\treturn null;\n\t}\n\tconst legends = legendSet?.legends ?? [];\n\tconst legend = legends.find((l) => {\n\t\treturn (\n\t\t\tl.startValue === value ||\n\t\t\tl.endValue === value ||\n\t\t\t(l.startValue < value! && value! < l.endValue)\n\t\t);\n\t});\n\treturn legend?.color ?? null;\n}\n\nexport function getChartInstance(\n\tid: string,\n\tanalytics: Analytics,\n\tconfig: ChartConfig,\n): DHIS2Chart {\n\tswitch (config.type) {\n\t\tcase \"column\":\n\t\t\treturn new DHIS2ColumnChart(id, analytics, config);\n\t\tcase \"bar\":\n\t\t\treturn new DHIS2BarChart(id, analytics, config);\n\t\tcase \"stacked-bar\":\n\t\t\treturn new DHIS2StackedBarChart(id, analytics, config);\n\t\tcase \"stacked-column\":\n\t\t\treturn new DHIS2StackedColumnChart(id, analytics, config);\n\t\tcase \"pie\":\n\t\t\treturn new DHIS2PieChart(id, analytics, config);\n\t\tcase \"line\":\n\t\t\treturn new DHIS2LineChart(id, analytics, config);\n\t\tcase \"area\":\n\t\t\treturn new DHIS2AreaChart(id, analytics, config);\n\t\tcase \"stacked-area\":\n\t\t\treturn new DHISStackedAreaChart(id, analytics, config);\n\t\tcase \"multi-series\":\n\t\t\treturn new DHIS2MultiSeriesChart(id, analytics, config);\n\t\tcase \"gauge\":\n\t\t\treturn new DHIS2GaugeChart(id, analytics, config);\n\t\tcase \"radar\":\n\t\t\treturn new DHIS2RadarChart(id, analytics, config);\n\t\tcase \"scatter\":\n\t\t\treturn new DHIS2ScatterChart(id, analytics, config);\n\t\tdefault:\n\t\t\tthrow new Error(`Unsupported chart type: ${config.type}`);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ChartAnalytics/utils/chart.ts"],"names":["findIndex","header","head","index","find","row","color","compact","set","isEmpty","DHIS2ColumnChart","DHIS2BarChart","DHIS2StackedBarChart","DHIS2StackedColumnChart","DHIS2PieChart","DHIS2LineChart","DHIS2AreaChart","DHISStackedAreaChart","DHIS2MultiSeriesChart","DHIS2GaugeChart","DHIS2RadarChart","DHIS2ScatterChart"],"mappings":"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","file":"chart.js","sourcesContent":["import type {\n\tAnalytics,\n\tAnalyticsHeader,\n\tAnalyticsMetadata,\n\tLegendSet,\n} from \"@hisptz/dhis2-utils\";\nimport { compact, find, findIndex, head, isEmpty, set } from \"lodash\";\nimport { DHIS2Chart } from \"../models\";\nimport { DHIS2ColumnChart, DHIS2StackedColumnChart } from \"../models/column.js\";\nimport { DHIS2LineChart } from \"../models/line.js\";\nimport { DHIS2MultiSeriesChart } from \"../models/multi-series.js\";\nimport { DHIS2PieChart } from \"../models/pie.js\";\nimport { ChartConfig, ChartType } from \"../types/props.js\";\nimport { DHIS2BarChart, DHIS2StackedBarChart } from \"../models/bar.js\";\nimport { DHIS2GaugeChart } from \"../models/gauge\";\nimport { DHIS2AreaChart, DHISStackedAreaChart } from \"../models/area\";\nimport { DHIS2RadarChart } from \"../models/radar\";\nimport { DHIS2ScatterChart } from \"../models/scatter\";\n\nexport function getDimensionHeaderIndex(\n\theaders: AnalyticsHeader[],\n\tname: string,\n): number {\n\treturn findIndex(headers, { name });\n}\n\nexport function getPointSeries(\n\tanalytics: Analytics,\n\tconfig: ChartConfig,\n\thighchartsType: string,\n) {\n\tconst series: string[] = config.layout.series;\n\n\treturn series.map((seriesName: string) => {\n\t\tconst header = analytics?.headers?.find(\n\t\t\t(header: any) => header.name === seriesName,\n\t\t);\n\t\tif (!header) {\n\t\t\treturn undefined;\n\t\t}\n\t\tif (analytics?.metaData) {\n\t\t\treturn getColumnSeries(analytics, header, config, highchartsType);\n\t\t}\n\t})[0];\n}\n\nexport function getColumnSeries(\n\tanalytics: Analytics,\n\theader: AnalyticsHeader,\n\tconfig: ChartConfig,\n\thighchartsType: string,\n): any {\n\tconst headerIndex = analytics?.headers?.findIndex(\n\t\t(h: { name: any }) => header.name === h.name,\n\t);\n\tconst valueIndex = analytics?.headers?.findIndex(\n\t\t(h: { name: string }) => h.name === \"value\",\n\t);\n\n\tconst colors = config.colors ?? [];\n\n\tconst { items, dimensions } = analytics?.metaData ?? {};\n\tconst categoriesDimension = config.layout.category;\n\n\tconst seriesDimensionValues: string[] =\n\t\tdimensions?.[header.name as \"dx\" | \"ou\" | \"pe\"] ?? [];\n\n\treturn head(\n\t\tcategoriesDimension?.map((categoryDimension: string) => {\n\t\t\tconst categories: string[] = dimensions?.[\n\t\t\t\tcategoryDimension as \"dx\" | \"ou\" | \"pe\"\n\t\t\t] as any;\n\t\t\tconst categoryDimensionIndex = analytics?.headers?.findIndex(\n\t\t\t\t(h: { name: string }) => h.name === categoryDimension,\n\t\t\t);\n\t\t\treturn seriesDimensionValues?.map(\n\t\t\t\t(seriesDimensionValue: string, index) => {\n\t\t\t\t\tconst data = categories?.map((category: string, index) => {\n\t\t\t\t\t\tconst row = find(\n\t\t\t\t\t\t\tanalytics?.rows,\n\t\t\t\t\t\t\t(row: any) =>\n\t\t\t\t\t\t\t\trow[headerIndex ?? -1] ===\n\t\t\t\t\t\t\t\t\tseriesDimensionValue &&\n\t\t\t\t\t\t\t\trow[categoryDimensionIndex ?? -1] === category,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst value = row?.[valueIndex ?? -1]\n\t\t\t\t\t\t\t? parseFloat(row?.[valueIndex ?? -1])\n\t\t\t\t\t\t\t: null;\n\n\t\t\t\t\t\tif (!config.legendSet) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!Array.isArray(config.legendSet)) {\n\t\t\t\t\t\t\tconst color = getLegendColorFromValue({\n\t\t\t\t\t\t\t\tlegendSet: config.legendSet as LegendSet,\n\t\t\t\t\t\t\t\tvalue: value ?? 0,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tx: index,\n\t\t\t\t\t\t\t\ty: value,\n\t\t\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\t\t\tcolor: color,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst legendSet =\n\t\t\t\t\t\t\tconfig.legendSet.find(\n\t\t\t\t\t\t\t\t({ dataItem }) => dataItem === category,\n\t\t\t\t\t\t\t)?.legendSet ??\n\t\t\t\t\t\t\tconfig.legendSet.find(\n\t\t\t\t\t\t\t\t({ dataItem }) =>\n\t\t\t\t\t\t\t\t\tdataItem === seriesDimensionValue,\n\t\t\t\t\t\t\t)?.legendSet;\n\n\t\t\t\t\t\tif (!legendSet) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst color = getLegendColorFromValue({\n\t\t\t\t\t\t\tlegendSet: legendSet,\n\t\t\t\t\t\t\tvalue: value ?? 0,\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tx: index,\n\t\t\t\t\t\t\ty: value,\n\t\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\t\tcolor: color,\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: seriesDimensionValue,\n\t\t\t\t\t\tname: items?.[seriesDimensionValue as any]?.name,\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\ttype: highchartsType,\n\t\t\t\t\t\tcolor: colors[index % colors.length],\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t);\n\t\t}),\n\t);\n}\n\nfunction getCategories(\n\t{ name }: AnalyticsHeader,\n\t{ items, dimensions }: AnalyticsMetadata,\n): string[] {\n\tconst categories: string[] = dimensions?.[\n\t\tname as \"dx\" | \"ou\" | \"pe\"\n\t] as any;\n\n\treturn categories?.map((category: string) => {\n\t\treturn items[category as any]?.name ?? \"\";\n\t}) as unknown as string[];\n}\n\nexport function getAllCategories(\n\tanalytics: Analytics,\n\tconfig: ChartConfig,\n): string[] {\n\tconst categories = config.layout.category;\n\n\treturn compact(\n\t\tcategories?.map((category: string) => {\n\t\t\tconst header = analytics?.headers?.find(\n\t\t\t\t(header: any) => header.name === category,\n\t\t\t);\n\t\t\tif (!header) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif (analytics?.metaData) {\n\t\t\t\treturn getCategories(header, analytics?.metaData);\n\t\t\t}\n\t\t}),\n\t)[0];\n}\n\nexport function updateLayout(\n\tconfig: ChartConfig,\n\t{ type }: { type: ChartType },\n) {\n\tif (type === config.type) {\n\t\treturn config.layout;\n\t}\n\n\tconst updatedLayout = { ...config.layout };\n\n\tswitch (type) {\n\t\tcase \"pie\":\n\t\t\tset(updatedLayout, \"category\", []);\n\t\t\tif (isEmpty(updatedLayout.series)) {\n\t\t\t\tif (!isEmpty(config.layout.category)) {\n\t\t\t\t\tset(updatedLayout, \"series\", [\n\t\t\t\t\t\thead(config.layout.category),\n\t\t\t\t\t]);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(\"Invalid layout for pie chart\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (updatedLayout.series.length > 1) {\n\t\t\t\tset(updatedLayout, \"series\", [head(updatedLayout.series)]);\n\t\t\t}\n\t}\n\n\treturn updatedLayout;\n}\n\nexport function getLegendColorFromValue({\n\tlegendSet,\n\tvalue,\n}: {\n\tlegendSet?: LegendSet;\n\tvalue?: number;\n}): string | null {\n\tif (!legendSet && !value) {\n\t\treturn null;\n\t}\n\tconst legends = legendSet?.legends ?? [];\n\tconst legend = legends.find((l) => {\n\t\treturn (\n\t\t\tl.startValue === value ||\n\t\t\tl.endValue === value ||\n\t\t\t(l.startValue < value! && value! < l.endValue)\n\t\t);\n\t});\n\treturn legend?.color ?? null;\n}\n\nexport function getChartInstance(\n\tid: string,\n\tanalytics: Analytics,\n\tconfig: ChartConfig,\n): DHIS2Chart {\n\tswitch (config.type) {\n\t\tcase \"column\":\n\t\t\treturn new DHIS2ColumnChart(id, analytics, config);\n\t\tcase \"bar\":\n\t\t\treturn new DHIS2BarChart(id, analytics, config);\n\t\tcase \"stacked-bar\":\n\t\t\treturn new DHIS2StackedBarChart(id, analytics, config);\n\t\tcase \"stacked-column\":\n\t\t\treturn new DHIS2StackedColumnChart(id, analytics, config);\n\t\tcase \"pie\":\n\t\t\treturn new DHIS2PieChart(id, analytics, config);\n\t\tcase \"line\":\n\t\t\treturn new DHIS2LineChart(id, analytics, config);\n\t\tcase \"area\":\n\t\t\treturn new DHIS2AreaChart(id, analytics, config);\n\t\tcase \"stacked-area\":\n\t\t\treturn new DHISStackedAreaChart(id, analytics, config);\n\t\tcase \"multi-series\":\n\t\t\treturn new DHIS2MultiSeriesChart(id, analytics, config);\n\t\tcase \"gauge\":\n\t\t\treturn new DHIS2GaugeChart(id, analytics, config);\n\t\tcase \"radar\":\n\t\t\treturn new DHIS2RadarChart(id, analytics, config);\n\t\tcase \"scatter\":\n\t\t\treturn new DHIS2ScatterChart(id, analytics, config);\n\t\tdefault:\n\t\t\tthrow new Error(`Unsupported chart type: ${config.type}`);\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/CircularProgressDashboard/CircularProgressIndicator.tsx"],"names":["useMemo","jsx","CircularProgressbarWithChildren","colors","jsxs"],"mappings":";;;;;;;;AAOO,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/CircularProgressDashboard/CircularProgressIndicator.tsx"],"names":["useMemo","jsx","CircularProgressbarWithChildren","colors","jsxs"],"mappings":";;;;;;;;AAOO,SAAS,0BAAA,CAA2B;AAAA,EAC1C,SAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA;AACD,CAAA,EAAyC;AACxC,EAAA,MAAM,6BAAA,GAAgCA,cAAQ,MAAM;AACnD,IAAA,OAAO,KAAA,KAAU,SACd,KAAA,GACA,IAAA,CAAK,OAAQ,SAAA,IAAa,CAAA,KAAM,WAAA,IAAe,CAAA,CAAA,GAAM,GAAG,CAAA;AAAA,EAC5D,CAAA,EAAG,CAAC,SAAA,EAAW,WAAA,EAAa,KAAK,CAAC,CAAA;AAClC,EAAA,uBACCC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACN,eAAA,EAAiB,aAAA;AAAA,QACjB,KAAA,EAAO;AAAA,OACR;AAAA,MAEA,QAAA,kBAAAA,cAAA;AAAA,QAACC,wDAAA;AAAA,QAAA;AAAA,UACA,MAAA,EAAQ;AAAA,YACP,IAAA,EAAM;AAAA,cACL,MAAA,EAAQ,WAAA,EAAa,KAAA,IAASC,SAAA,CAAO;AAAA;AACtC,WACD;AAAA,UACA,WAAA,EAAa,CAAA;AAAA,UACb,KAAA,EAAO,6BAAA;AAAA,UAEP,QAAA,kBAAAF,cAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACA,KAAA,EAAO;AAAA,gBACN,GAAI,aAAa,EAAC;AAAA,gBAClB,UACE,SAAA,EAAW,QAAA,IAAY,OAAO,IAAA,KAAS,QAAA,GACrC,MAAO,IAAA,GACP,MAAA;AAAA,gBACJ,SAAA,EAAW;AAAA,eACZ;AAAA,cAEA,QAAA,kBAAAG,eAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBACA,KAAA,EAAO;AAAA,oBACN,KAAA,EACC,SAAA,EAAW,KAAA,IACX,WAAA,EAAa,SACbD,SAAA,CAAO;AAAA,mBACT;AAAA,kBAEC,QAAA,EAAA;AAAA,oBAAA,6BAAA;AAAA,oBAA8B;AAAA;AAAA;AAAA;AAChC;AAAA;AACD;AAAA;AACD;AAAA,GACD;AAEF;AAEO,MAAM,yBAAA,GAA4B","file":"CircularProgressIndicator.js","sourcesContent":["import { colors } from \"@dhis2/ui\";\nimport { type ReactElement, useMemo } from \"react\";\nimport { CircularProgressbarWithChildren } from \"react-circular-progressbar\";\nimport { CircularDashboardProps } from \"./types/props.js\";\n\nexport * from \"./types/props.js\";\n\nexport function CircularProgressVisualizer({\n\tnumerator,\n\tsize,\n\tdenominator,\n\tvalue,\n\ttextStyle,\n\tstrokeStyle,\n}: CircularDashboardProps): ReactElement {\n\tconst filledSectionFieldsPercentage = useMemo(() => {\n\t\treturn value !== undefined\n\t\t\t? value\n\t\t\t: Math.floor(((numerator ?? 0) / (denominator ?? 1)) * 100);\n\t}, [numerator, denominator, value]);\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\twidth: size,\n\t\t\t}}\n\t\t>\n\t\t\t<CircularProgressbarWithChildren\n\t\t\t\tstyles={{\n\t\t\t\t\tpath: {\n\t\t\t\t\t\tstroke: strokeStyle?.color ?? colors.blue700,\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t\tstrokeWidth={7}\n\t\t\t\tvalue={filledSectionFieldsPercentage}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\t...(textStyle ?? {}),\n\t\t\t\t\t\tfontSize:\n\t\t\t\t\t\t\t(textStyle?.fontSize ?? typeof size === \"number\")\n\t\t\t\t\t\t\t\t? 0.3 * (size as number)\n\t\t\t\t\t\t\t\t: \"100%\",\n\t\t\t\t\t\tmarginTop: -11,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<strong\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tcolor:\n\t\t\t\t\t\t\t\ttextStyle?.color ??\n\t\t\t\t\t\t\t\tstrokeStyle?.color ??\n\t\t\t\t\t\t\t\tcolors.blue700,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{filledSectionFieldsPercentage}%\n\t\t\t\t\t</strong>\n\t\t\t\t</div>\n\t\t\t</CircularProgressbarWithChildren>\n\t\t</div>\n\t);\n}\n\nexport const CircularProgressDashboard = CircularProgressVisualizer;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/DHIS2PivotTable/DHIS2PivotTable.tsx"],"names":["useMemo","DHIS2PivotTableEngine","DHIS2PivotTableEngineProvider","jsxs","PivotTable","jsx","TableHeaders","CustomPivotTableBody"],"mappings":";;;;;;;;;;AA6BO,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/DHIS2PivotTable/DHIS2PivotTable.tsx"],"names":["useMemo","DHIS2PivotTableEngine","DHIS2PivotTableEngineProvider","jsxs","PivotTable","jsx","TableHeaders","CustomPivotTableBody"],"mappings":";;;;;;;;;;AA6BO,SAAS,eAAA,CAAgB;AAAA,EAC/B,SAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAA;AAAA,EACA;AACD,CAAA,EAAyB;AACxB,EAAA,MAAM,MAAA,GAASA,aAAA;AAAA,IACd,MAAM,IAAIC,+BAAA,CAAsB,EAAE,SAAA,EAAW,QAAQ,CAAA;AAAA,IACrD,CAAC,WAAW,MAAM;AAAA,GACnB;AAEA,EAAA,sCACEC,yCAAA,EAAA,EAA8B,MAAA,EAC9B,QAAA,kBAAAC,eAAA,CAACC,gBAAA,EAAA,EAAW,QAAgB,UAAA,EAC3B,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAACC,yBAAA,EAAA,EAAa,CAAA;AAAA,mCACbC,8BAAA,EAAA,EAAqB;AAAA,GAAA,EACvB,CAAA,EACD,CAAA;AAEF","file":"DHIS2PivotTable.js","sourcesContent":["import { Analytics, LegendSet } from \"@hisptz/dhis2-utils\";\nimport { DHIS2PivotTableEngine, type EngineConfig } from \"./services/engine.js\";\nimport { useMemo } from \"react\";\nimport { DHIS2PivotTableEngineProvider } from \"./state/engine.js\";\nimport { PivotTable } from \"./components/Table\";\nimport { TableHeaders } from \"./components/TableHeaders\";\nimport { CustomPivotTableBody } from \"./components/TableBody\";\nimport { DataTableProps } from \"@dhis2/ui\";\n\nexport interface DHIS2PivotTableOptions {\n\tlegendSets?: LegendSet[];\n\thideEmptyColumns?: boolean;\n\thideEmptyRows?: boolean;\n\tshowRowTotals?: boolean;\n\tshowColumnTotals?: boolean;\n\tshowRowSubtotals?: boolean;\n\tshowColumnSubtotals?: boolean;\n\tfixColumnHeaders?: boolean;\n\tfixRowHeaders?: boolean;\n\tshowFilterAsTitle?: boolean;\n}\n\nexport interface DHIS2PivotTableProps {\n\tanalytics: Analytics;\n\ttableProps?: DataTableProps;\n\tsetRef?: (ref: HTMLTableElement) => void;\n\tconfig: EngineConfig;\n}\n\nexport function DHIS2PivotTable({\n\tanalytics,\n\tconfig,\n\ttableProps,\n\tsetRef,\n}: DHIS2PivotTableProps) {\n\tconst engine = useMemo(\n\t\t() => new DHIS2PivotTableEngine({ analytics, config }),\n\t\t[analytics, config],\n\t);\n\n\treturn (\n\t\t<DHIS2PivotTableEngineProvider engine={engine}>\n\t\t\t<PivotTable setRef={setRef} tableProps={tableProps}>\n\t\t\t\t<TableHeaders />\n\t\t\t\t<CustomPivotTableBody />\n\t\t\t</PivotTable>\n\t\t</DHIS2PivotTableEngineProvider>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/DHIS2PivotTable/components/Table/index.tsx"],"names":["jsx","Fragment","DataTable"],"mappings":";;;;;AAWO,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/DHIS2PivotTable/components/Table/index.tsx"],"names":["jsx","Fragment","DataTable"],"mappings":";;;;;AAWO,SAAS,UAAA,CAAW,EAAE,UAAA,EAAY,QAAA,EAAU,QAAO,EAAoB;AAC7E,EAAA,uBACCA,cAAA,CAAAC,mBAAA,EAAA,EAGC,QAAA,kBAAAD,cAAA,CAACE,YAAA,EAAA,EAAU,GAAA,EAAK,MAAA,EAAgB,GAAI,UAAA,IAAc,EAAC,EACjD,QAAA,EACF,CAAA,EACD,CAAA;AAEF","file":"index.js","sourcesContent":["import { DataTable, DataTableProps } from \"@dhis2/ui\";\nimport type { ReactNode } from \"react\";\n\nexport type PivotTableLayoutProps = DataTableProps;\n\nexport interface PivotTableProps {\n\tchildren: ReactNode;\n\ttableProps?: DataTableProps;\n\tsetRef?: (ref: HTMLTableElement) => void;\n}\n\nexport function PivotTable({ tableProps, children, setRef }: PivotTableProps) {\n\treturn (\n\t\t<>\n\t\t\t{/*\n// @ts-ignore */}\n\t\t\t<DataTable ref={setRef as any} {...(tableProps ?? {})}>\n\t\t\t\t{children}\n\t\t\t</DataTable>\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/DHIS2PivotTable/components/TableBody/index.tsx"],"names":["useCustomPivotTableEngine","jsx","Fragment","mapper","DataTableCell","getTextColorFromBackgroundColor","useRef","useResizeObserver","slice","isEmpty","jsxs","DataTableRow","classes","TableBody"],"mappings":";;;;;;;;;;;;;;;AAWA,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/DHIS2PivotTable/components/TableBody/index.tsx"],"names":["useCustomPivotTableEngine","jsx","Fragment","mapper","DataTableCell","getTextColorFromBackgroundColor","useRef","useResizeObserver","slice","isEmpty","jsxs","DataTableRow","classes","TableBody"],"mappings":"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","file":"index.js","sourcesContent":["import { Header } from \"../../services/engine\";\nimport { isEmpty, slice } from \"lodash\";\nimport { useCustomPivotTableEngine } from \"../../state/engine.js\";\nimport { DataTableCell, DataTableRow, TableBody } from \"@dhis2/ui\";\nimport { Fragment, type ReactElement, ReactNode, useRef } from \"react\";\nimport { AnalyticsItem } from \"@hisptz/dhis2-utils\";\nimport classes from \"./TableBody.module.css\";\nimport { DHIS2Dimension } from \"../../interfaces\";\nimport { useResizeObserver } from \"usehooks-ts\";\nimport { getTextColorFromBackgroundColor } from \"../../utils/color\";\n\nfunction DataRowRenderer({\n\tmapper,\n\titem,\n\tdimension,\n}: {\n\tmapper?: { [key: string]: any };\n\titem: AnalyticsItem;\n\tdimension: DHIS2Dimension;\n}) {\n\tconst engine = useCustomPivotTableEngine();\n\n\tconst columnMappers = engine?.columnMap;\n\tconst completeMapper = columnMappers?.map((map) => ({\n\t\t...map,\n\t\t...mapper,\n\t\t[dimension]: item.uid,\n\t}));\n\n\treturn (\n\t\t<>\n\t\t\t{completeMapper?.map((mapper) => {\n\t\t\t\tconst legend = engine?.getItemValueLegend(mapper);\n\n\t\t\t\treturn (\n\t\t\t\t\t<DataTableCell\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tbackground:\n\t\t\t\t\t\t\t\tlegend?.style === \"FILL\"\n\t\t\t\t\t\t\t\t\t? legend?.color\n\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\tcolor:\n\t\t\t\t\t\t\t\tlegend?.style === \"FILL\"\n\t\t\t\t\t\t\t\t\t? getTextColorFromBackgroundColor(\n\t\t\t\t\t\t\t\t\t\t\tlegend?.color,\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t: legend?.style === \"TEXT\"\n\t\t\t\t\t\t\t\t\t\t? legend.color\n\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tkey={`${Object.values(mapper).join(\"-\")}-value`}\n\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\tbordered\n\t\t\t\t\t>\n\t\t\t\t\t\t{engine?.getValue(mapper) ?? \"\"}\n\t\t\t\t\t</DataTableCell>\n\t\t\t\t);\n\t\t\t})}\n\t\t</>\n\t);\n}\n\nfunction RowRenderer({\n\trow,\n\tindex,\n\tconfig: { rows, columns, mapper, prevWidth, fixRowHeaders },\n}: {\n\trow: Header;\n\tindex: number;\n\tconfig: {\n\t\trows: Header[];\n\t\tcolumns?: Header[];\n\t\tmapper?: { [key: string]: string | undefined };\n\t\tprevWidth?: number;\n\t\tfixRowHeaders?: boolean;\n\t};\n}): ReactElement | null {\n\tconst cellRef = useRef<HTMLElement | null>(null);\n\tconst { width } = useResizeObserver({\n\t\tref: cellRef,\n\t});\n\n\tconst rowSpan = slice(rows, index + 1).reduce((acc, column) => {\n\t\treturn acc * (column.items?.length ?? 1);\n\t}, 1);\n\tconst hasSubRows = !isEmpty(rows[index + 1]);\n\tconst nextRow = rows[index + 1];\n\n\treturn (\n\t\t<>\n\t\t\t{row?.items?.map((item) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment key={`${item.name}-${row.dimension}-fragment`}>\n\t\t\t\t\t\t<DataTableRow key={`${item.name}-${row.dimension}-row`}>\n\t\t\t\t\t\t\t<DataTableCell\n\t\t\t\t\t\t\t\t/*\n // @ts-ignore */\n\t\t\t\t\t\t\t\tref={cellRef}\n\t\t\t\t\t\t\t\tfixed={fixRowHeaders}\n\t\t\t\t\t\t\t\tleft={`${prevWidth}px` as unknown as boolean}\n\t\t\t\t\t\t\t\tclassName={classes[\"header-cell\"]}\n\t\t\t\t\t\t\t\ttag=\"th\"\n\t\t\t\t\t\t\t\tbordered\n\t\t\t\t\t\t\t\trowSpan={(\n\t\t\t\t\t\t\t\t\trowSpan + (hasSubRows ? 1 : 0)\n\t\t\t\t\t\t\t\t).toString()}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{item.name as unknown as string | ReactNode}\n\t\t\t\t\t\t\t</DataTableCell>\n\t\t\t\t\t\t\t{!hasSubRows ? (\n\t\t\t\t\t\t\t\t<DataRowRenderer\n\t\t\t\t\t\t\t\t\tdimension={row.dimension}\n\t\t\t\t\t\t\t\t\tmapper={mapper}\n\t\t\t\t\t\t\t\t\titem={item}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t</DataTableRow>\n\t\t\t\t\t\t{hasSubRows ? (\n\t\t\t\t\t\t\t<RowRenderer\n\t\t\t\t\t\t\t\trow={nextRow}\n\t\t\t\t\t\t\t\tindex={index + 1}\n\t\t\t\t\t\t\t\tconfig={{\n\t\t\t\t\t\t\t\t\trows,\n\t\t\t\t\t\t\t\t\tcolumns,\n\t\t\t\t\t\t\t\t\tprevWidth: width,\n\t\t\t\t\t\t\t\t\tmapper: {\n\t\t\t\t\t\t\t\t\t\t...mapper,\n\t\t\t\t\t\t\t\t\t\t[row.dimension]:\n\t\t\t\t\t\t\t\t\t\t\titem.uid as unknown as string,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t})}\n\t\t</>\n\t);\n}\n\nexport function CustomPivotTableBody() {\n\tconst engine = useCustomPivotTableEngine();\n\tconst rows = engine?.rowHeaders;\n\tconst columns = engine?.columnHeaders;\n\tconst fixRowHeaders = engine?.fixRowHeaders;\n\n\tif (!rows || isEmpty(rows)) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<TableBody>\n\t\t\t<RowRenderer\n\t\t\t\trow={rows[0]}\n\t\t\t\tindex={0}\n\t\t\t\tconfig={{ rows, columns, fixRowHeaders }}\n\t\t\t/>\n\t\t</TableBody>\n\t);\n}\n"]}
|