@undp/data-viz 2.5.4 → 2.6.0
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/AreaChart.cjs +1 -1
- package/dist/AreaChart.cjs.map +1 -1
- package/dist/AreaChart.js +17 -16
- package/dist/AreaChart.js.map +1 -1
- package/dist/Axis-DY7jsk1Y.cjs +2 -0
- package/dist/{Axis-BTaS9oPQ.cjs.map → Axis-DY7jsk1Y.cjs.map} +1 -1
- package/dist/{Axis-CNZYWzH0.js → Axis-RRx-0Rlw.js} +9 -8
- package/dist/{Axis-CNZYWzH0.js.map → Axis-RRx-0Rlw.js.map} +1 -1
- package/dist/AxisTitle-B9F80_Z0.js +30 -0
- package/dist/AxisTitle-B9F80_Z0.js.map +1 -0
- package/dist/AxisTitle-CyFFbdNU.cjs +2 -0
- package/dist/{AxisTitle-DP_evhbe.cjs.map → AxisTitle-CyFFbdNU.cjs.map} +1 -1
- package/dist/BarGraph.cjs +1 -1
- package/dist/BarGraph.cjs.map +1 -1
- package/dist/BarGraph.js +203 -201
- package/dist/BarGraph.js.map +1 -1
- package/dist/BasicStatCard.cjs +1 -1
- package/dist/BasicStatCard.cjs.map +1 -1
- package/dist/BasicStatCard.js +15 -14
- package/dist/BasicStatCard.js.map +1 -1
- package/dist/BeeSwarmChart.cjs +1 -1
- package/dist/BeeSwarmChart.cjs.map +1 -1
- package/dist/BeeSwarmChart.js +60 -59
- package/dist/BeeSwarmChart.js.map +1 -1
- package/dist/BiVariateChoroplethMap.cjs +1 -1
- package/dist/BiVariateChoroplethMap.cjs.map +1 -1
- package/dist/BiVariateChoroplethMap.js +88 -86
- package/dist/BiVariateChoroplethMap.js.map +1 -1
- package/dist/BulletChart.cjs +1 -1
- package/dist/BulletChart.cjs.map +1 -1
- package/dist/BulletChart.js +88 -86
- package/dist/BulletChart.js.map +1 -1
- package/dist/ButterflyChart.cjs +1 -1
- package/dist/ButterflyChart.cjs.map +1 -1
- package/dist/ButterflyChart.js +100 -98
- package/dist/ButterflyChart.js.map +1 -1
- package/dist/ChoroplethMap.cjs +1 -1
- package/dist/ChoroplethMap.cjs.map +1 -1
- package/dist/ChoroplethMap.js +83 -81
- package/dist/ChoroplethMap.js.map +1 -1
- package/dist/CirclePackingGraph.cjs +1 -1
- package/dist/CirclePackingGraph.js +4 -4
- package/dist/ColorLegend.cjs +1 -1
- package/dist/ColorLegend.cjs.map +1 -1
- package/dist/ColorLegend.js +17 -16
- package/dist/ColorLegend.js.map +1 -1
- package/dist/ColorLegendWithMouseOver.cjs +1 -1
- package/dist/ColorLegendWithMouseOver.cjs.map +1 -1
- package/dist/ColorLegendWithMouseOver.js +13 -12
- package/dist/ColorLegendWithMouseOver.js.map +1 -1
- package/dist/CopyTextButton.cjs +1 -1
- package/dist/CopyTextButton.cjs.map +1 -1
- package/dist/CopyTextButton.js +37 -754
- package/dist/CopyTextButton.js.map +1 -1
- package/dist/CsvDownloadButton.cjs +4 -4
- package/dist/CsvDownloadButton.cjs.map +1 -1
- package/dist/CsvDownloadButton.js +47 -45
- package/dist/CsvDownloadButton.js.map +1 -1
- package/dist/DataCards.cjs +1 -1
- package/dist/DataCards.cjs.map +1 -1
- package/dist/DataCards.js +213 -467
- package/dist/DataCards.js.map +1 -1
- package/dist/DataTable.cjs +1 -1
- package/dist/DataTable.cjs.map +1 -1
- package/dist/DataTable.js +19 -19
- package/dist/DetailsModal-BmjtLqrZ.cjs +2 -0
- package/dist/{DetailsModal-Du8Fr1QD.cjs.map → DetailsModal-BmjtLqrZ.cjs.map} +1 -1
- package/dist/{DetailsModal-GqEbGHY2.js → DetailsModal-k-Me_U_T.js} +3 -3
- package/dist/{DetailsModal-GqEbGHY2.js.map → DetailsModal-k-Me_U_T.js.map} +1 -1
- package/dist/DifferenceLineChart.cjs +1 -1
- package/dist/DifferenceLineChart.cjs.map +1 -1
- package/dist/DifferenceLineChart.js +61 -60
- package/dist/DifferenceLineChart.js.map +1 -1
- package/dist/DonutChart.cjs +1 -1
- package/dist/DonutChart.cjs.map +1 -1
- package/dist/DonutChart.js +47 -46
- package/dist/DonutChart.js.map +1 -1
- package/dist/DotDensityMap.cjs +1 -1
- package/dist/DotDensityMap.cjs.map +1 -1
- package/dist/DotDensityMap.js +112 -110
- package/dist/DotDensityMap.js.map +1 -1
- package/dist/DualAxisLineChart.cjs +1 -1
- package/dist/DualAxisLineChart.cjs.map +1 -1
- package/dist/DualAxisLineChart.js +13 -12
- package/dist/DualAxisLineChart.js.map +1 -1
- package/dist/DumbbellChart.cjs +1 -1
- package/dist/DumbbellChart.cjs.map +1 -1
- package/dist/DumbbellChart.js +104 -102
- package/dist/DumbbellChart.js.map +1 -1
- package/dist/EmptyState-BoaUUuo6.cjs +2 -0
- package/dist/{EmptyState-CFmiFPHz.cjs.map → EmptyState-BoaUUuo6.cjs.map} +1 -1
- package/dist/{EmptyState-CaxXCkiN.js → EmptyState-prZ8OnEs.js} +4 -4
- package/dist/{EmptyState-CaxXCkiN.js.map → EmptyState-prZ8OnEs.js.map} +1 -1
- package/dist/ExcelDownloadButton.cjs +1 -1
- package/dist/ExcelDownloadButton.cjs.map +1 -1
- package/dist/ExcelDownloadButton.js +15 -13
- package/dist/ExcelDownloadButton.js.map +1 -1
- package/dist/FootNote.cjs +1 -1
- package/dist/FootNote.cjs.map +1 -1
- package/dist/FootNote.js +10 -9
- package/dist/FootNote.js.map +1 -1
- package/dist/GeoHubCompareMaps.cjs +1 -1
- package/dist/GeoHubCompareMaps.cjs.map +1 -1
- package/dist/GeoHubCompareMaps.js +14 -14
- package/dist/GeoHubMap.cjs +1 -1
- package/dist/GeoHubMap.cjs.map +1 -1
- package/dist/GeoHubMap.js +59 -59
- package/dist/GeoHubMapWithLayerSelection.cjs +1 -1
- package/dist/GeoHubMapWithLayerSelection.cjs.map +1 -1
- package/dist/GeoHubMapWithLayerSelection.js +50 -50
- package/dist/{GraphContainer-B8ZqOzKI.js → GraphContainer-DcOM2CI6.js} +28 -27
- package/dist/GraphContainer-DcOM2CI6.js.map +1 -0
- package/dist/GraphContainer-gaG9TSy4.cjs +2 -0
- package/dist/{GraphContainer-Cul9b74X.cjs.map → GraphContainer-gaG9TSy4.cjs.map} +1 -1
- package/dist/GraphDescription.cjs +1 -1
- package/dist/GraphDescription.cjs.map +1 -1
- package/dist/GraphDescription.js +14 -13
- package/dist/GraphDescription.js.map +1 -1
- package/dist/{GraphEl-Ch0uAeZw.js → GraphEl-C7KBBHvB.js} +9 -9
- package/dist/{GraphEl-Ch0uAeZw.js.map → GraphEl-C7KBBHvB.js.map} +1 -1
- package/dist/GraphEl-CGALp07K.cjs +2 -0
- package/dist/{GraphEl-BgkDbq50.cjs.map → GraphEl-CGALp07K.cjs.map} +1 -1
- package/dist/GraphFooter.cjs +1 -1
- package/dist/GraphFooter.cjs.map +1 -1
- package/dist/GraphFooter.js +2 -2
- package/dist/GraphHeader.cjs +1 -1
- package/dist/GraphHeader.cjs.map +1 -1
- package/dist/GraphHeader.js +1 -1
- package/dist/GraphTitle.cjs +1 -1
- package/dist/GraphTitle.cjs.map +1 -1
- package/dist/GraphTitle.js +14 -13
- package/dist/GraphTitle.js.map +1 -1
- package/dist/GriddedGraphs.cjs +1 -1
- package/dist/GriddedGraphs.cjs.map +1 -1
- package/dist/GriddedGraphs.js +58 -55
- package/dist/GriddedGraphs.js.map +1 -1
- package/dist/GriddedGraphsFromConfig.cjs +1 -1
- package/dist/GriddedGraphsFromConfig.cjs.map +1 -1
- package/dist/GriddedGraphsFromConfig.js +15 -15
- package/dist/HeatMap.cjs +1 -1
- package/dist/HeatMap.cjs.map +1 -1
- package/dist/HeatMap.js +17 -16
- package/dist/HeatMap.js.map +1 -1
- package/dist/Histogram.cjs +1 -1
- package/dist/Histogram.cjs.map +1 -1
- package/dist/Histogram.js +3 -3
- package/dist/HybridMap.cjs +1 -1
- package/dist/HybridMap.cjs.map +1 -1
- package/dist/HybridMap.js +392 -424
- package/dist/HybridMap.js.map +1 -1
- package/dist/ImageDownloadButton.cjs +1 -1
- package/dist/ImageDownloadButton.cjs.map +1 -1
- package/dist/ImageDownloadButton.js +16 -14
- package/dist/ImageDownloadButton.js.map +1 -1
- package/dist/LineChartWithConfidenceInterval.cjs +1 -1
- package/dist/LineChartWithConfidenceInterval.cjs.map +1 -1
- package/dist/LineChartWithConfidenceInterval.js +16 -15
- package/dist/LineChartWithConfidenceInterval.js.map +1 -1
- package/dist/LinearColorLegend.cjs +1 -1
- package/dist/LinearColorLegend.cjs.map +1 -1
- package/dist/LinearColorLegend.js +5 -4
- package/dist/LinearColorLegend.js.map +1 -1
- package/dist/MultiGraphDashboard.cjs +1 -1
- package/dist/MultiGraphDashboard.cjs.map +1 -1
- package/dist/MultiGraphDashboard.js +62 -60
- package/dist/MultiGraphDashboard.js.map +1 -1
- package/dist/MultiGraphDashboardFromConfig.cjs +1 -1
- package/dist/MultiGraphDashboardFromConfig.cjs.map +1 -1
- package/dist/MultiGraphDashboardFromConfig.js +7 -7
- package/dist/MultiGraphDashboardWideToLongFormat.cjs +1 -1
- package/dist/MultiGraphDashboardWideToLongFormat.cjs.map +1 -1
- package/dist/MultiGraphDashboardWideToLongFormat.js +21 -21
- package/dist/MultiGraphDashboardWideToLongFormat.js.map +1 -1
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.cjs +1 -1
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.cjs.map +1 -1
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js +3 -3
- package/dist/MultiLineAltChart.cjs +1 -1
- package/dist/MultiLineAltChart.cjs.map +1 -1
- package/dist/MultiLineAltChart.js +16 -15
- package/dist/MultiLineAltChart.js.map +1 -1
- package/dist/MultiLineChart.cjs +1 -1
- package/dist/MultiLineChart.cjs.map +1 -1
- package/dist/MultiLineChart.js +16 -15
- package/dist/MultiLineChart.js.map +1 -1
- package/dist/ParetoChart.cjs +1 -1
- package/dist/ParetoChart.cjs.map +1 -1
- package/dist/ParetoChart.js +14 -13
- package/dist/ParetoChart.js.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.cjs.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.js +67 -65
- package/dist/PerformanceIntensiveMultiGraphDashboard.js.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js +8 -8
- package/dist/PerformanceIntensiveScrollStory.cjs +1 -1
- package/dist/PerformanceIntensiveScrollStory.cjs.map +1 -1
- package/dist/PerformanceIntensiveScrollStory.js +3 -3
- package/dist/RadarChart.cjs +1 -1
- package/dist/RadarChart.cjs.map +1 -1
- package/dist/RadarChart.js +11 -10
- package/dist/RadarChart.js.map +1 -1
- package/dist/ReferenceLine-CxITVT1K.cjs +2 -0
- package/dist/{ReferenceLine-CpU4G01Y.cjs.map → ReferenceLine-CxITVT1K.cjs.map} +1 -1
- package/dist/{ReferenceLine-D41VuUhE.js → ReferenceLine-NF4g3Reh.js} +26 -25
- package/dist/ReferenceLine-NF4g3Reh.js.map +1 -0
- package/dist/RegressionLine-BQ6h-NZP.js +88 -0
- package/dist/RegressionLine-BQ6h-NZP.js.map +1 -0
- package/dist/RegressionLine-BpcVBjL0.cjs +2 -0
- package/dist/{RegressionLine-BFoBiVJk.cjs.map → RegressionLine-BpcVBjL0.cjs.map} +1 -1
- package/dist/SVGDownloadButton.cjs +1 -1
- package/dist/SVGDownloadButton.cjs.map +1 -1
- package/dist/SVGDownloadButton.js +11 -9
- package/dist/SVGDownloadButton.js.map +1 -1
- package/dist/SankeyChart.cjs +1 -1
- package/dist/SankeyChart.cjs.map +1 -1
- package/dist/SankeyChart.js +63 -62
- package/dist/SankeyChart.js.map +1 -1
- package/dist/ScatterPlot.cjs +1 -1
- package/dist/ScatterPlot.cjs.map +1 -1
- package/dist/ScatterPlot.js +109 -107
- package/dist/ScatterPlot.js.map +1 -1
- package/dist/ScrollStory.cjs +1 -1
- package/dist/ScrollStory.cjs.map +1 -1
- package/dist/ScrollStory.js +3 -3
- package/dist/SimpleLineChart.cjs +1 -1
- package/dist/SimpleLineChart.cjs.map +1 -1
- package/dist/SimpleLineChart.js +17 -16
- package/dist/SimpleLineChart.js.map +1 -1
- package/dist/SingleGraphDashboard.cjs +1 -1
- package/dist/SingleGraphDashboard.cjs.map +1 -1
- package/dist/SingleGraphDashboard.js +59 -56
- package/dist/SingleGraphDashboard.js.map +1 -1
- package/dist/SingleGraphDashboardFromConfig.cjs +1 -1
- package/dist/SingleGraphDashboardFromConfig.cjs.map +1 -1
- package/dist/SingleGraphDashboardFromConfig.js +6 -6
- package/dist/SingleGraphDashboardGeoHubMaps.cjs +1 -1
- package/dist/SingleGraphDashboardGeoHubMaps.cjs.map +1 -1
- package/dist/SingleGraphDashboardGeoHubMaps.js +12 -12
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs +1 -1
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs.map +1 -1
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js +8 -8
- package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.js +59 -56
- package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs +1 -1
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js +7 -7
- package/dist/SlopeChart.cjs +1 -1
- package/dist/SlopeChart.cjs.map +1 -1
- package/dist/SlopeChart.js +60 -59
- package/dist/SlopeChart.js.map +1 -1
- package/dist/Source.cjs +1 -1
- package/dist/Source.cjs.map +1 -1
- package/dist/Source.js +38 -4
- package/dist/Source.js.map +1 -1
- package/dist/SparkLine.cjs +1 -1
- package/dist/SparkLine.cjs.map +1 -1
- package/dist/SparkLine.js +11 -10
- package/dist/SparkLine.js.map +1 -1
- package/dist/StatCardFromData.cjs +1 -1
- package/dist/StatCardFromData.cjs.map +1 -1
- package/dist/StatCardFromData.js +15 -14
- package/dist/StatCardFromData.js.map +1 -1
- package/dist/StripChart.cjs +1 -1
- package/dist/StripChart.cjs.map +1 -1
- package/dist/StripChart.js +11 -10
- package/dist/StripChart.js.map +1 -1
- package/dist/ThreeDGlobe.cjs +1 -1
- package/dist/ThreeDGlobe.cjs.map +1 -1
- package/dist/ThreeDGlobe.js +52 -51
- package/dist/ThreeDGlobe.js.map +1 -1
- package/dist/ThresholdColorLegendWithMouseOver.cjs +1 -1
- package/dist/ThresholdColorLegendWithMouseOver.cjs.map +1 -1
- package/dist/ThresholdColorLegendWithMouseOver.js +17 -16
- package/dist/ThresholdColorLegendWithMouseOver.js.map +1 -1
- package/dist/{Tooltip-3EYDVa3w.js → Tooltip-DO56mY4b.js} +11 -10
- package/dist/{Tooltip-3EYDVa3w.js.map → Tooltip-DO56mY4b.js.map} +1 -1
- package/dist/Tooltip-DwUFLDrj.cjs +2 -0
- package/dist/{Tooltip-C9F3uYG0.cjs.map → Tooltip-DwUFLDrj.cjs.map} +1 -1
- package/dist/TreeMapGraph.cjs +1 -1
- package/dist/TreeMapGraph.cjs.map +1 -1
- package/dist/TreeMapGraph.js +34 -33
- package/dist/TreeMapGraph.js.map +1 -1
- package/dist/UnitChart.cjs +1 -1
- package/dist/UnitChart.cjs.map +1 -1
- package/dist/UnitChart.js +27 -27
- package/dist/WaterfallChart.cjs +1 -1
- package/dist/WaterfallChart.cjs.map +1 -1
- package/dist/WaterfallChart.js +21 -20
- package/dist/WaterfallChart.js.map +1 -1
- package/dist/XAxesLabels-0ROJnigy.cjs +2 -0
- package/dist/{XAxesLabels-C03jHniq.cjs.map → XAxesLabels-0ROJnigy.cjs.map} +1 -1
- package/dist/{XAxesLabels-B9gkjUiC.js → XAxesLabels-CPZX3OJN.js} +12 -11
- package/dist/XAxesLabels-CPZX3OJN.js.map +1 -0
- package/dist/XTicksAndGridLines-BO6KJc8d.cjs +2 -0
- package/dist/{XTicksAndGridLines-B4UhDVyU.cjs.map → XTicksAndGridLines-BO6KJc8d.cjs.map} +1 -1
- package/dist/{XTicksAndGridLines-CkYwVshF.js → XTicksAndGridLines-obTK2e7G.js} +10 -9
- package/dist/{XTicksAndGridLines-CkYwVshF.js.map → XTicksAndGridLines-obTK2e7G.js.map} +1 -1
- package/dist/{YAxesLabels-hWEUCTvs.js → YAxesLabels-CwVnFG2a.js} +13 -12
- package/dist/YAxesLabels-CwVnFG2a.js.map +1 -0
- package/dist/YAxesLabels-DIa2cEXL.cjs +2 -0
- package/dist/{YAxesLabels-DeENFC2M.cjs.map → YAxesLabels-DIa2cEXL.cjs.map} +1 -1
- package/dist/YTicksAndGridLines-C7glLI5b.cjs +2 -0
- package/dist/{YTicksAndGridLines-sT3zdCs6.cjs.map → YTicksAndGridLines-C7glLI5b.cjs.map} +1 -1
- package/dist/{YTicksAndGridLines-BbujwxOB.js → YTicksAndGridLines-wtuAKNeT.js} +10 -9
- package/dist/{YTicksAndGridLines-BbujwxOB.js.map → YTicksAndGridLines-wtuAKNeT.js.map} +1 -1
- package/dist/checkIfMultiple-BIEQDuA3.cjs +2 -0
- package/dist/checkIfMultiple-BIEQDuA3.cjs.map +1 -0
- package/dist/checkIfMultiple-D2tgEnYM.js +11 -0
- package/dist/checkIfMultiple-D2tgEnYM.js.map +1 -0
- package/dist/compiler-runtime-oPPev21o.cjs +11 -0
- package/dist/compiler-runtime-oPPev21o.cjs.map +1 -0
- package/dist/compiler-runtime-qHgugrLy.js +297 -0
- package/dist/compiler-runtime-qHgugrLy.js.map +1 -0
- package/dist/customArea-BCGIYDQa.cjs +2 -0
- package/dist/{customArea-BAcQ3pBM.cjs.map → customArea-BCGIYDQa.cjs.map} +1 -1
- package/dist/{customArea-D89lETG0.js → customArea-Dixg0NtQ.js} +10 -9
- package/dist/{customArea-D89lETG0.js.map → customArea-Dixg0NtQ.js.map} +1 -1
- package/dist/{fetchAndParseData-BAXhgTDM.js → fetchAndParseData-CDjQZ1fL.js} +5 -5
- package/dist/{fetchAndParseData-BAXhgTDM.js.map → fetchAndParseData-CDjQZ1fL.js.map} +1 -1
- package/dist/fetchAndParseData.js +1 -1
- package/dist/getSliderMarks-Bj_JJTtX.cjs +2 -0
- package/dist/getSliderMarks-Bj_JJTtX.cjs.map +1 -0
- package/dist/getSliderMarks-DSxFGb1f.js +21 -0
- package/dist/getSliderMarks-DSxFGb1f.js.map +1 -0
- package/dist/index-5BQWR1Z8.cjs +10 -0
- package/dist/{index-FXfr51ZM.cjs.map → index-5BQWR1Z8.cjs.map} +1 -1
- package/dist/index-BaXzoD4r.cjs +2 -0
- package/dist/{index-BuhBhuCq.cjs.map → index-BaXzoD4r.cjs.map} +1 -1
- package/dist/{index-Cv_5q6Rb.js → index-CNUlPiEL.js} +3 -3
- package/dist/{index-Cv_5q6Rb.js.map → index-CNUlPiEL.js.map} +1 -1
- package/dist/{index-DHVGV8Df.js → index-CmkqqFRG.js} +3 -3
- package/dist/{index-DHVGV8Df.js.map → index-CmkqqFRG.js.map} +1 -1
- package/dist/index-D_ls5oK8.js +142 -0
- package/dist/index-D_ls5oK8.js.map +1 -0
- package/dist/index-DbSnila_.cjs +2 -0
- package/dist/index-DbSnila_.cjs.map +1 -0
- package/dist/{index-BPyj_6hG.js → index-_w-CQAbR.js} +113 -112
- package/dist/{index-BPyj_6hG.js.map → index-_w-CQAbR.js.map} +1 -1
- package/dist/index-dN3wiQgD.cjs +2 -0
- package/dist/{index-DuLvdHo2.cjs.map → index-dN3wiQgD.cjs.map} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +181 -180
- package/dist/index.js.map +1 -1
- package/dist/{proxy-BsxtcZKa.js → proxy-D31SA_aE.js} +2 -2
- package/dist/{proxy-BsxtcZKa.js.map → proxy-D31SA_aE.js.map} +1 -1
- package/dist/proxy-QMeVVqam.cjs +2 -0
- package/dist/{proxy-CqH8m8IQ.cjs.map → proxy-QMeVVqam.cjs.map} +1 -1
- package/dist/style.css +1 -1
- package/dist/transformData.js +2 -2
- package/dist/{transformDataForGraphFromFile-dt9sHTVy.js → transformDataForGraphFromFile-COZC6A0_.js} +4 -4
- package/dist/{transformDataForGraphFromFile-dt9sHTVy.js.map → transformDataForGraphFromFile-COZC6A0_.js.map} +1 -1
- package/dist/{use-in-view-KOXq5Kmc.js → use-in-view-Co5SmzfT.js} +2 -2
- package/dist/{use-in-view-KOXq5Kmc.js.map → use-in-view-Co5SmzfT.js.map} +1 -1
- package/dist/use-in-view-DjR_gqJP.cjs +2 -0
- package/dist/{use-in-view-dnRv_qqF.cjs.map → use-in-view-DjR_gqJP.cjs.map} +1 -1
- package/package.json +1 -1
- package/dist/Axis-BTaS9oPQ.cjs +0 -2
- package/dist/AxisTitle-CyLCqpW6.js +0 -29
- package/dist/AxisTitle-CyLCqpW6.js.map +0 -1
- package/dist/AxisTitle-DP_evhbe.cjs +0 -2
- package/dist/DetailsModal-Du8Fr1QD.cjs +0 -2
- package/dist/DropdownSelect-CX1yMemd.cjs +0 -5
- package/dist/DropdownSelect-CX1yMemd.cjs.map +0 -1
- package/dist/DropdownSelect-Dz7imdTB.js +0 -4191
- package/dist/DropdownSelect-Dz7imdTB.js.map +0 -1
- package/dist/EmptyState-CFmiFPHz.cjs +0 -2
- package/dist/GraphContainer-B8ZqOzKI.js.map +0 -1
- package/dist/GraphContainer-Cul9b74X.cjs +0 -2
- package/dist/GraphEl-BgkDbq50.cjs +0 -2
- package/dist/Modal-BIErPPKT.cjs +0 -46
- package/dist/Modal-BIErPPKT.cjs.map +0 -1
- package/dist/Modal-CrUYln5V.js +0 -1047
- package/dist/Modal-CrUYln5V.js.map +0 -1
- package/dist/ReferenceLine-CpU4G01Y.cjs +0 -2
- package/dist/ReferenceLine-D41VuUhE.js.map +0 -1
- package/dist/RegressionLine-BFoBiVJk.cjs +0 -2
- package/dist/RegressionLine-CuwB42I6.js +0 -87
- package/dist/RegressionLine-CuwB42I6.js.map +0 -1
- package/dist/Source-PKuwZOn3.cjs +0 -2
- package/dist/Source-PKuwZOn3.cjs.map +0 -1
- package/dist/Source-QGk8vhkS.js +0 -78
- package/dist/Source-QGk8vhkS.js.map +0 -1
- package/dist/Spinner-B2IIKg9r.js +0 -47
- package/dist/Spinner-B2IIKg9r.js.map +0 -1
- package/dist/Spinner-WHzzloYQ.cjs +0 -2
- package/dist/Spinner-WHzzloYQ.cjs.map +0 -1
- package/dist/Tooltip-C9F3uYG0.cjs +0 -2
- package/dist/Typography-BO0gQDIT.js +0 -270
- package/dist/Typography-BO0gQDIT.js.map +0 -1
- package/dist/Typography-BqmyF1gP.cjs +0 -2
- package/dist/Typography-BqmyF1gP.cjs.map +0 -1
- package/dist/XAxesLabels-B9gkjUiC.js.map +0 -1
- package/dist/XAxesLabels-C03jHniq.cjs +0 -2
- package/dist/XTicksAndGridLines-B4UhDVyU.cjs +0 -2
- package/dist/YAxesLabels-DeENFC2M.cjs +0 -2
- package/dist/YAxesLabels-hWEUCTvs.js.map +0 -1
- package/dist/YTicksAndGridLines-sT3zdCs6.cjs +0 -2
- package/dist/checkIfMultiple-CH5tqj4q.cjs +0 -2
- package/dist/checkIfMultiple-CH5tqj4q.cjs.map +0 -1
- package/dist/checkIfMultiple-Dpyy6BUP.js +0 -938
- package/dist/checkIfMultiple-Dpyy6BUP.js.map +0 -1
- package/dist/customArea-BAcQ3pBM.cjs +0 -2
- package/dist/getSliderMarks-BzrpHrHS.cjs +0 -2
- package/dist/getSliderMarks-BzrpHrHS.cjs.map +0 -1
- package/dist/getSliderMarks-X-_goqH9.js +0 -1027
- package/dist/getSliderMarks-X-_goqH9.js.map +0 -1
- package/dist/index-ApTBN0kp.js +0 -196
- package/dist/index-ApTBN0kp.js.map +0 -1
- package/dist/index-BhI7mBJx.cjs +0 -2
- package/dist/index-BhI7mBJx.cjs.map +0 -1
- package/dist/index-BuhBhuCq.cjs +0 -2
- package/dist/index-CHPV5EwG-BzibaIRc.js +0 -3360
- package/dist/index-CHPV5EwG-BzibaIRc.js.map +0 -1
- package/dist/index-CHPV5EwG-D4pAp7u0.cjs +0 -20
- package/dist/index-CHPV5EwG-D4pAp7u0.cjs.map +0 -1
- package/dist/index-DuLvdHo2.cjs +0 -2
- package/dist/index-FXfr51ZM.cjs +0 -10
- package/dist/index-Scxs_wcm-BAjU0Cob.js +0 -49
- package/dist/index-Scxs_wcm-BAjU0Cob.js.map +0 -1
- package/dist/index-Scxs_wcm-DUDU-Gll.cjs +0 -2
- package/dist/index-Scxs_wcm-DUDU-Gll.cjs.map +0 -1
- package/dist/index-w64Zl8io-DrMm5QSb.cjs +0 -2
- package/dist/index-w64Zl8io-DrMm5QSb.cjs.map +0 -1
- package/dist/index-w64Zl8io-ihagHOdP.js +0 -459
- package/dist/index-w64Zl8io-ihagHOdP.js.map +0 -1
- package/dist/proxy-CqH8m8IQ.cjs +0 -2
- package/dist/toConsumableArray-DiWOvh_d-DcLaZvDq.cjs +0 -4
- package/dist/toConsumableArray-DiWOvh_d-DcLaZvDq.cjs.map +0 -1
- package/dist/toConsumableArray-DiWOvh_d-DlpOlgap.js +0 -145
- package/dist/toConsumableArray-DiWOvh_d-DlpOlgap.js.map +0 -1
- package/dist/use-in-view-dnRv_qqF.cjs +0 -2
- package/dist/x-BXShoIAM-BC2sxios.cjs +0 -2
- package/dist/x-BXShoIAM-BC2sxios.cjs.map +0 -1
- package/dist/x-BXShoIAM-D6VWO6z5.js +0 -74
- package/dist/x-BXShoIAM-D6VWO6z5.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingleGraphDashboard.cjs","sources":["../src/Components/Dashboard/SingleGraphDashboard.tsx"],"sourcesContent":["import { useEffect, useEffectEvent, useRef, useState } from 'react';\r\nimport intersection from 'lodash.intersection';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport isEqual from 'fast-deep-equal';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { CheckboxGroup, CheckboxGroupItem } from '@undp/design-system-react/CheckboxGroup';\r\nimport { RadioGroup, RadioGroupItem } from '@undp/design-system-react/RadioGroup';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\nimport { Label } from '@undp/design-system-react/Label';\r\n\r\nimport { GraphContainer } from '../Elements/GraphContainer';\r\n\r\nimport GraphEl from './GraphEl';\r\n\r\nimport {\r\n AdvancedDataSelectionDataType,\r\n AggregationSettingsDataType,\r\n DataFilterDataType,\r\n DataSelectionDataType,\r\n DataSettingsDataType,\r\n FilterSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphConfigurationDataType,\r\n GraphSettingsDataType,\r\n GraphType,\r\n HighlightDataPointSettingsDataType,\r\n} from '@/Types';\r\nimport {\r\n fetchAndParseCSV,\r\n fetchAndParseJSON,\r\n fetchAndParseMultipleDataSources,\r\n fetchAndTransformDataFromAPI,\r\n} from '@/Utils/fetchAndParseData';\r\nimport { transformDataForGraph } from '@/Utils/transformData/transformDataForGraph';\r\nimport { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { transformDataForAggregation } from '@/Utils/transformData/transformDataForAggregation';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { filterData } from '@/Utils/transformData/filterData';\r\nimport { checkIfMultiple } from '@/Utils/checkIfMultiple';\r\nimport { transformColumnsToArray } from '@/Utils/transformData/transformColumnsToArray';\r\nimport { graphList } from '@/Utils/getGraphList';\r\nimport { transformDefaultValue } from '@/Utils/transformDataForSelect';\r\n\r\ninterface Props {\r\n graphSettings?: GraphSettingsDataType;\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n highlightDataPointSettings?: HighlightDataPointSettingsDataType;\r\n noOfFiltersPerRow?: number;\r\n graphType: GraphType;\r\n dataTransform?: {\r\n keyColumn: string;\r\n aggregationColumnsSetting?: AggregationSettingsDataType[];\r\n };\r\n dataFilters?: DataFilterDataType[];\r\n graphDataConfiguration?: GraphConfigurationDataType[];\r\n dataSelectionOptions?: DataSelectionDataType[];\r\n advancedDataSelectionOptions?: AdvancedDataSelectionDataType[];\r\n debugMode?: boolean;\r\n uiMode?: 'light' | 'normal';\r\n updateFilters?: (_d: string) => void;\r\n}\r\n\r\nconst addMinAndMax = (config: GraphConfigurationDataType[]) => {\r\n if (\r\n config.findIndex(d => d.chartConfigId === 'yMin') !== -1 &&\r\n config.findIndex(d => d.chartConfigId === 'yMax') !== -1\r\n )\r\n return config;\r\n const configTemp = [...config];\r\n if (config.findIndex(d => d.chartConfigId === 'yMin') === -1) {\r\n configTemp.push({\r\n chartConfigId: 'yMin',\r\n columnId: `${config[config.findIndex(d => d.chartConfigId === 'y')].columnId}Min`,\r\n });\r\n }\r\n if (config.findIndex(d => d.chartConfigId === 'yMax') === -1) {\r\n configTemp.push({\r\n chartConfigId: 'yMax',\r\n columnId: `${config[config.findIndex(d => d.chartConfigId === 'y')].columnId}Max`,\r\n });\r\n }\r\n return configTemp;\r\n};\r\n\r\nconst getGraphSettings = (\r\n dataSelectionOptions: DataSelectionDataType[],\r\n updatedConfig?: GraphConfigurationDataType[],\r\n) => {\r\n const updatedSettings =\r\n updatedConfig?.map(c => {\r\n const indx = dataSelectionOptions?.findIndex(opt => opt.chartConfigId === c.chartConfigId);\r\n if (indx === -1) return {};\r\n const allowedValIndx = dataSelectionOptions[indx]?.allowedColumnIds?.findIndex(\r\n col => col.value === c.columnId,\r\n );\r\n if (allowedValIndx === -1) return {};\r\n return dataSelectionOptions[indx].allowedColumnIds[allowedValIndx].graphSettings || {};\r\n }) || [];\r\n return Object.assign({}, ...updatedSettings);\r\n};\r\n\r\nexport function SingleGraphDashboard(props: Props) {\r\n const {\r\n graphSettings,\r\n dataSettings,\r\n filters,\r\n graphType,\r\n dataTransform,\r\n graphDataConfiguration,\r\n dataFilters,\r\n debugMode,\r\n dataSelectionOptions,\r\n advancedDataSelectionOptions,\r\n readableHeader,\r\n noOfFiltersPerRow = 4,\r\n updateFilters,\r\n uiMode = 'normal',\r\n highlightDataPointSettings,\r\n } = props;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [filteredData, setFilteredData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [data, setData] = useState<any>(undefined);\r\n const [graphConfig, setGraphConfig] = useState<GraphConfigurationDataType[] | undefined>(\r\n graphDataConfiguration,\r\n );\r\n const [advancedGraphSettings, setAdvancedGraphSettings] = useState<GraphSettingsDataType>({});\r\n const [highlightedDataPointList, setHighlightedDataPointList] = useState<\r\n (string | number)[] | undefined\r\n >(undefined);\r\n const [highlightedDataPointOptions, setHighlightedDataPointOption] = useState<\r\n { label: string | number; value: string | number }[]\r\n >([]);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n const prevGraphDataConfigRef = useRef<GraphConfigurationDataType[] | undefined>(\r\n graphDataConfiguration,\r\n );\r\n const [filterSettings, setFilterSettings] = useState<FilterSettingsDataType[]>([]);\r\n\r\n const filterConfig = {\r\n ignoreCase: true,\r\n ignoreAccents: true,\r\n trim: true,\r\n };\r\n\r\n const updateFiltersEvent = useEffectEvent(() => {\r\n const filterSettingsTemp = (filters || []).map(el => ({\r\n filter: el.column,\r\n label: el.label || `Filter by ${el.column}`,\r\n singleSelect: el.singleSelect,\r\n clearable: el.clearable,\r\n ui: el.ui,\r\n defaultValue: transformDefaultValue(el.defaultValue),\r\n value: transformDefaultValue(el.defaultValue),\r\n availableValues: getUniqValue(data, el.column)\r\n .filter(v => !el.excludeValues?.includes(`${v}`))\r\n .map(v => ({ value: v, label: v })),\r\n allowSelectAll: el.allowSelectAll,\r\n width: el.width,\r\n }));\r\n setFilterSettings(filterSettingsTemp);\r\n });\r\n\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n try {\r\n const dataFromFile = dataSettings.dataURL\r\n ? typeof dataSettings.dataURL === 'string'\r\n ? dataSettings.fileType === 'json'\r\n ? await fetchAndParseJSON(\r\n dataSettings.dataURL,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : dataSettings.fileType === 'api'\r\n ? await fetchAndTransformDataFromAPI(\r\n dataSettings.dataURL,\r\n dataSettings.apiHeaders,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : await fetchAndParseCSV(\r\n dataSettings.dataURL,\r\n dataSettings.dataTransformation,\r\n dataSettings.columnsToArray,\r\n debugMode,\r\n dataSettings.delimiter,\r\n true,\r\n )\r\n : await fetchAndParseMultipleDataSources(\r\n dataSettings.dataURL,\r\n dataSettings.idColumnTitle,\r\n )\r\n : await transformColumnsToArray(dataSettings.data, dataSettings.columnsToArray);\r\n setData(dataFromFile);\r\n } catch (error) {\r\n console.error('Data fetching error:', error);\r\n }\r\n };\r\n fetchData();\r\n updateFiltersEvent();\r\n }, [dataSettings, debugMode]);\r\n\r\n useEffect(() => {\r\n updateFiltersEvent();\r\n }, [filters, data]);\r\n\r\n const filteredDataEvent = useEffectEvent(() => {\r\n if (!data || filterSettings.length === 0) setFilteredData(data);\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const result = data.filter((item: any) =>\r\n filterSettings.every(filter =>\r\n filter.value && flattenDeep([filter.value]).length > 0\r\n ? intersection(\r\n flattenDeep([item[filter.filter]]),\r\n flattenDeep([filter.value]).map(el => el.value),\r\n ).length > 0\r\n : true,\r\n ),\r\n );\r\n setFilteredData(result);\r\n }\r\n });\r\n useEffect(() => {\r\n filteredDataEvent();\r\n }, [filterSettings, data]);\r\n\r\n useEffect(() => {\r\n if (dataSelectionOptions)\r\n // eslint-disable-next-line react-hooks/set-state-in-effect\r\n setAdvancedGraphSettings(getGraphSettings(dataSelectionOptions, graphDataConfiguration));\r\n }, [dataSelectionOptions, graphDataConfiguration]);\r\n\r\n const updateHighlightedDataPointOptions = useEffectEvent(() => {\r\n if (highlightDataPointSettings?.column && filteredData)\r\n setHighlightedDataPointOption(\r\n getUniqValue(filteredData, highlightDataPointSettings.column)\r\n .filter(v => !highlightDataPointSettings?.excludeValues?.includes(`${v}`))\r\n .map(d => ({ value: d, label: d })),\r\n );\r\n });\r\n\r\n useEffect(() => {\r\n updateHighlightedDataPointOptions();\r\n }, [highlightDataPointSettings]);\r\n\r\n useEffect(() => {\r\n if (!isEqual(prevGraphDataConfigRef.current, graphDataConfiguration)) {\r\n // eslint-disable-next-line react-hooks/set-state-in-effect\r\n setGraphConfig(graphDataConfiguration);\r\n prevGraphDataConfigRef.current = graphDataConfiguration;\r\n }\r\n }, [graphDataConfiguration]);\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleFilterChange = (filter: string, values: any) => {\r\n setFilterSettings(prev => prev.map(f => (f.filter === filter ? { ...f, value: values } : f)));\r\n };\r\n\r\n const graphData = !data\r\n ? undefined\r\n : transformDataForGraph(\r\n dataTransform\r\n ? transformDataForAggregation(\r\n filterData(data, dataFilters || []),\r\n dataTransform.keyColumn,\r\n dataTransform.aggregationColumnsSetting,\r\n )\r\n : filterData(data, dataFilters || []),\r\n graphType,\r\n graphType === 'lineChartWithConfidenceInterval' && graphConfig\r\n ? addMinAndMax(graphConfig)\r\n : graphConfig,\r\n );\r\n return (\r\n <GraphContainer\r\n className={graphSettings?.classNames?.graphContainer}\r\n style={graphSettings?.styles?.graphContainer}\r\n id={graphSettings?.graphID}\r\n ref={graphParentDiv}\r\n aria-label={graphSettings?.ariaLabel}\r\n backgroundColor={graphSettings?.backgroundColor ?? false}\r\n theme={graphSettings?.theme || 'light'}\r\n language={graphSettings?.language || 'en'}\r\n width={graphSettings?.width}\r\n height={graphSettings?.height}\r\n padding={graphSettings?.padding}\r\n minHeight={graphSettings?.minHeight}\r\n relativeHeight={graphSettings?.relativeHeight}\r\n >\r\n {data ||\r\n graphList\r\n .filter(el => el.geoHubMapPresentation)\r\n .map(el => el.graphID)\r\n .indexOf(graphType) !== -1 ? (\r\n <>\r\n {advancedGraphSettings?.graphTitle ||\r\n advancedGraphSettings?.graphDescription ||\r\n graphSettings?.graphTitle ||\r\n graphSettings?.graphDescription ||\r\n graphSettings?.graphDownload ||\r\n graphSettings?.dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: advancedGraphSettings?.styles?.title || graphSettings?.styles?.title,\r\n description:\r\n advancedGraphSettings?.styles?.description || graphSettings?.styles?.description,\r\n }}\r\n classNames={{\r\n title: advancedGraphSettings?.classNames?.title || graphSettings?.classNames?.title,\r\n description:\r\n advancedGraphSettings?.classNames?.description ||\r\n graphSettings?.classNames?.description,\r\n }}\r\n graphTitle={advancedGraphSettings?.graphTitle || graphSettings?.graphTitle}\r\n graphDescription={\r\n advancedGraphSettings?.graphDescription || graphSettings?.graphDescription\r\n }\r\n width={advancedGraphSettings?.width || graphSettings?.width}\r\n graphDownload={graphSettings?.graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n graphSettings?.dataDownload && data ? (data.length > 0 ? data : null) : null\r\n }\r\n />\r\n ) : null}\r\n {filterSettings.length !== 0 ||\r\n (dataSelectionOptions || []).length !== 0 ||\r\n (advancedDataSelectionOptions || []).length !== 0 ||\r\n highlightDataPointSettings ? (\r\n <div className='flex flex-wrap items-start gap-x-4 gap-y-0 w-full'>\r\n {advancedDataSelectionOptions?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: d.width ? 0 : 1,\r\n flexShrink: d.ui !== 'radio' || d.width ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || 'Graph by'}</Label>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.options.map(opt => ({\r\n ...opt,\r\n value: opt.label,\r\n }))}\r\n size='sm'\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\r\n defaultValue={\r\n d.defaultValue\r\n ? {\r\n ...d.defaultValue,\r\n value: d.defaultValue?.label,\r\n }\r\n : {\r\n ...d.options[0],\r\n value: d.options[0].label,\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n setAdvancedGraphSettings(el?.graphSettings || {});\r\n setGraphConfig(el?.dataConfiguration);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n defaultValue={d.defaultValue?.label || d.options[0].label}\r\n variant={uiMode}\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.options[d.options.findIndex(opt => opt.label === el)];\r\n setAdvancedGraphSettings(selectedOption.graphSettings || {});\r\n setGraphConfig(selectedOption.dataConfiguration);\r\n }}\r\n >\r\n {d.options.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )}\r\n </div>\r\n ))}\r\n {dataSelectionOptions?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: d.width ? 0 : 1,\r\n flexShrink: d.ui !== 'radio' || d.width ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || `Visualize ${d.chartConfigId} by`}</Label>\r\n {!checkIfMultiple(d.chartConfigId, graphConfig || []) ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n size='sm'\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ]\r\n : undefined\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: el?.value as string,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(\r\n getGraphSettings(dataSelectionOptions, updatedConfig),\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ].label\r\n : ''\r\n }\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(opt => opt.label === el)\r\n ];\r\n const newGraphConfig = {\r\n columnId: selectedOption.value,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(\r\n getGraphSettings(dataSelectionOptions, updatedConfig),\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )\r\n ) : d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n size='sm'\r\n isMulti\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n ).map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n : undefined\r\n }\r\n filterOption={createFilter(filterConfig)}\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: (el || []).map(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (item: any) => item.value,\r\n ) as string[],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n />\r\n ) : (\r\n <CheckboxGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n )\r\n .map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n .map(el => el.value)\r\n : []\r\n }\r\n onValueChange={el => {\r\n const newGraphConfig = {\r\n columnId: el || [],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <CheckboxGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </CheckboxGroup>\r\n )}\r\n </div>\r\n ))}\r\n {filterSettings?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: d.width ? 0 : 1,\r\n flexShrink: 0,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label}</Label>\r\n {d.singleSelect ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n variant={uiMode}\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <RadioGroup\r\n variant={uiMode}\r\n defaultValue={(d.defaultValue as { value: string; label: string }).value}\r\n onValueChange={el => {\r\n handleFilterChange(\r\n d.filter,\r\n d.availableValues.filter(v => v.value === el),\r\n );\r\n }}\r\n >\r\n {d.availableValues.map((el, j) => (\r\n <RadioGroupItem label={`${el.label}`} value={`${el.value}`} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )\r\n ) : (\r\n <>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n variant={uiMode}\r\n size='sm'\r\n isMulti\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <CheckboxGroup\r\n variant={uiMode}\r\n defaultValue={\r\n d.defaultValue\r\n ? (\r\n d.defaultValue as {\r\n value: string | number;\r\n label: string | number;\r\n }[]\r\n ).map(el => `${el.value}`)\r\n : []\r\n }\r\n value={\r\n d.value\r\n ? (\r\n d.value as {\r\n value: string | number;\r\n label: string | number;\r\n }[]\r\n ).map(el => `${el.value}`)\r\n : undefined\r\n }\r\n onValueChange={el => {\r\n handleFilterChange(\r\n d.filter,\r\n d.availableValues.filter(v => el.indexOf(`${v.value}`) !== -1),\r\n );\r\n }}\r\n >\r\n {d.availableValues.map((el, j) => (\r\n <CheckboxGroupItem\r\n label={`${el.label}`}\r\n value={`${el.value}`}\r\n key={j}\r\n />\r\n ))}\r\n </CheckboxGroup>\r\n )}\r\n {d.allowSelectAll ? (\r\n <button\r\n type='button'\r\n className='bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400'\r\n onClick={() => {\r\n handleFilterChange(d.filter, d.availableValues);\r\n }}\r\n >\r\n Select all options\r\n </button>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n ))}\r\n {highlightDataPointSettings ? (\r\n <div\r\n style={{\r\n width:\r\n highlightDataPointSettings.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: highlightDataPointSettings.width ? 0 : 1,\r\n flexShrink: 0,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n >\r\n <Label className='mb-2'>\r\n {highlightDataPointSettings.label || 'Highlight data'}\r\n </Label>\r\n <DropdownSelect\r\n options={highlightedDataPointOptions}\r\n variant={uiMode}\r\n size='sm'\r\n isMulti\r\n isClearable\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setHighlightedDataPointList(el?.map((d: any) => d.value));\r\n }}\r\n value={highlightedDataPointList?.map(d => ({\r\n label: d,\r\n value: d,\r\n }))}\r\n defaultValue={highlightDataPointSettings.defaultValues?.map(d => ({\r\n label: d,\r\n value: d,\r\n }))}\r\n />\r\n </div>\r\n ) : null}\r\n </div>\r\n ) : null}\r\n <GraphEl\r\n graph={graphType}\r\n graphData={graphData}\r\n graphDataConfiguration={graphConfig}\r\n debugMode={debugMode}\r\n readableHeader={readableHeader || []}\r\n updateFilters={updateFilters}\r\n settings={{\r\n ...(graphSettings || {}),\r\n ...advancedGraphSettings,\r\n graphTitle: undefined,\r\n graphDescription: undefined,\r\n graphDownload: false,\r\n dataDownload: false,\r\n backgroundColor: undefined,\r\n width: undefined,\r\n height: undefined,\r\n relativeHeight: undefined,\r\n minHeight: undefined,\r\n padding: '0',\r\n theme: graphSettings?.theme,\r\n ...(highlightedDataPointList\r\n ? {\r\n highlightedDataPoints: highlightedDataPointList,\r\n highlightedIds: highlightedDataPointList?.map(d => `${d}`),\r\n highlightedLines: highlightedDataPointList?.map(d => d),\r\n }\r\n : {}),\r\n }}\r\n />\r\n </>\r\n ) : (\r\n <div className='w-full flex justify-center p-4'>\r\n <Spinner />\r\n </div>\r\n )}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["addMinAndMax","config","findIndex","d","chartConfigId","configTemp","push","columnId","getGraphSettings","dataSelectionOptions","updatedConfig","updatedSettings","map","c","indx","opt","allowedValIndx","allowedColumnIds","col","value","graphSettings","Object","assign","SingleGraphDashboard","props","dataSettings","filters","graphType","dataTransform","graphDataConfiguration","dataFilters","debugMode","advancedDataSelectionOptions","readableHeader","noOfFiltersPerRow","updateFilters","uiMode","highlightDataPointSettings","filteredData","setFilteredData","useState","undefined","data","setData","graphConfig","setGraphConfig","advancedGraphSettings","setAdvancedGraphSettings","highlightedDataPointList","setHighlightedDataPointList","highlightedDataPointOptions","setHighlightedDataPointOption","graphParentDiv","useRef","prevGraphDataConfigRef","filterSettings","setFilterSettings","filterConfig","ignoreCase","ignoreAccents","trim","updateFiltersEvent","useEffectEvent","filterSettingsTemp","el","filter","column","label","singleSelect","clearable","ui","defaultValue","transformDefaultValue","availableValues","getUniqValue","v","excludeValues","includes","allowSelectAll","width","useEffect","dataFromFile","dataURL","fileType","fetchAndParseJSON","columnsToArray","dataTransformation","fetchAndTransformDataFromAPI","apiHeaders","fetchAndParseCSV","delimiter","fetchAndParseMultipleDataSources","idColumnTitle","transformColumnsToArray","error","console","fetchData","filteredDataEvent","length","result","item","every","flattenDeep","intersection","updateHighlightedDataPointOptions","isEqual","current","handleFilterChange","values","prev","f","graphData","transformDataForGraph","transformDataForAggregation","filterData","keyColumn","aggregationColumnsSetting","jsx","GraphContainer","classNames","graphContainer","styles","graphID","ariaLabel","backgroundColor","theme","language","height","padding","minHeight","relativeHeight","graphList","geoHubMapPresentation","indexOf","jsxs","Fragment","graphTitle","graphDescription","graphDownload","dataDownload","GraphHeader","title","description","i","flexGrow","flexShrink","minWidth","Label","DropdownSelect","options","dataConfiguration","RadioGroup","selectedOption","j","RadioGroupItem","checkIfMultiple","createFilter","newGraphConfig","CheckboxGroup","CheckboxGroupItem","defaultValues","GraphEl","highlightedDataPoints","highlightedIds","highlightedLines","Spinner"],"mappings":"4vBAmEMA,GAAgBC,GAAyC,CAC7D,GACEA,EAAOC,UAAUC,GAAKA,EAAEC,gBAAkB,MAAM,IAAM,IACtDH,EAAOC,aAAeC,EAAEC,gBAAkB,MAAM,IAAM,GAEtD,OAAOH,EACT,MAAMI,EAAa,CAAC,GAAGJ,CAAM,EAC7B,OAAIA,EAAOC,UAAUC,GAAKA,EAAEC,gBAAkB,MAAM,IAAM,IACxDC,EAAWC,KAAK,CACdF,cAAe,OACfG,SAAU,GAAGN,EAAOA,EAAOC,UAAUC,GAAKA,EAAEC,gBAAkB,GAAG,CAAC,EAAEG,QAAQ,KAAA,CAC7E,EAECN,EAAOC,UAAUC,GAAKA,EAAEC,gBAAkB,MAAM,IAAM,IACxDC,EAAWC,KAAK,CACdF,cAAe,OACfG,SAAU,GAAGN,EAAOA,EAAOC,UAAUC,GAAKA,EAAEC,gBAAkB,GAAG,CAAC,EAAEG,QAAQ,KAAA,CAC7E,EAEIF,CACT,EAEMG,EAAmBA,CACvBC,EACAC,IACG,CACH,MAAMC,EACJD,GAAeE,IAAIC,GAAK,CACtB,MAAMC,EAAOL,GAAsBP,aAAiBa,EAAIX,gBAAkBS,EAAET,aAAa,EACzF,GAAIU,IAAS,GAAI,MAAO,CAAA,EACxB,MAAME,EAAiBP,EAAqBK,CAAI,GAAGG,kBAAkBf,UACnEgB,GAAOA,EAAIC,QAAUN,EAAEN,QACzB,EACA,OAAIS,IAAmB,GAAW,CAAA,EAC3BP,EAAqBK,CAAI,EAAEG,iBAAiBD,CAAc,EAAEI,eAAiB,CAAA,CACtF,CAAC,GAAK,CAAA,EACR,OAAOC,OAAOC,OAAO,CAAA,EAAI,GAAGX,CAAe,CAC7C,EAEO,SAASY,GAAqBC,EAAc,CACjD,KAAM,CACJJ,cAAAA,EACAK,aAAAA,EACAC,QAAAA,EACAC,UAAAA,EACAC,cAAAA,EACAC,uBAAAA,EACAC,YAAAA,EACAC,UAAAA,EACAtB,qBAAAA,EACAuB,6BAAAA,EACAC,eAAAA,EACAC,kBAAAA,EAAoB,EACpBC,cAAAA,EACAC,OAAAA,EAAS,SACTC,2BAAAA,CAAAA,EACEb,EAEE,CAACc,EAAcC,CAAe,EAAIC,EAAAA,SAAcC,MAAS,EAEzD,CAACC,EAAMC,CAAO,EAAIH,EAAAA,SAAcC,MAAS,EACzC,CAACG,EAAaC,CAAc,EAAIL,EAAAA,SACpCX,CACF,EACM,CAACiB,EAAuBC,CAAwB,EAAIP,EAAAA,SAAgC,CAAA,CAAE,EACtF,CAACQ,EAA0BC,CAA2B,EAAIT,EAAAA,SAE9DC,MAAS,EACL,CAACS,EAA6BC,CAA6B,EAAIX,EAAAA,SAEnE,CAAA,CAAE,EACEY,EAAiBC,EAAAA,OAAuB,IAAI,EAE5CC,EAAyBD,EAAAA,OAC7BxB,CACF,EACM,CAAC0B,EAAgBC,CAAiB,EAAIhB,EAAAA,SAAmC,CAAA,CAAE,EAE3EiB,EAAe,CACnBC,WAAY,GACZC,cAAe,GACfC,KAAM,EAAA,EAGFC,EAAqBC,EAAAA,eAAe,IAAM,CAC9C,MAAMC,GAAsBrC,GAAW,CAAA,GAAId,IAAIoD,IAAO,CACpDC,OAAQD,EAAGE,OACXC,MAAOH,EAAGG,OAAS,aAAaH,EAAGE,MAAM,GACzCE,aAAcJ,EAAGI,aACjBC,UAAWL,EAAGK,UACdC,GAAIN,EAAGM,GACPC,aAAcC,EAAAA,sBAAsBR,EAAGO,YAAY,EACnDpD,MAAOqD,EAAAA,sBAAsBR,EAAGO,YAAY,EAC5CE,gBAAiBC,EAAAA,aAAahC,EAAMsB,EAAGE,MAAM,EAC1CD,OAAOU,GAAK,CAACX,EAAGY,eAAeC,SAAS,GAAGF,CAAC,EAAE,CAAC,EAC/C/D,IAAI+D,IAAM,CAAExD,MAAOwD,EAAGR,MAAOQ,CAAAA,EAAI,EACpCG,eAAgBd,EAAGc,eACnBC,MAAOf,EAAGe,KAAAA,EACV,EACFvB,EAAkBO,CAAkB,CACtC,CAAC,EAEDiB,EAAAA,UAAU,IAAM,EACI,SAAY,CAC5B,GAAI,CACF,MAAMC,EAAexD,EAAayD,QAC9B,OAAOzD,EAAayD,SAAY,SAC9BzD,EAAa0D,WAAa,OACxB,MAAMC,EAAAA,kBACJ3D,EAAayD,QACbzD,EAAa4D,eACb5D,EAAa6D,mBACbvD,CACF,EACAN,EAAa0D,WAAa,MACxB,MAAMI,EAAAA,6BACJ9D,EAAayD,QACbzD,EAAa+D,WACb/D,EAAa4D,eACb5D,EAAa6D,mBACbvD,CACF,EACA,MAAM0D,EAAAA,iBACJhE,EAAayD,QACbzD,EAAa6D,mBACb7D,EAAa4D,eACbtD,EACAN,EAAaiE,UACb,EACF,EACJ,MAAMC,EAAAA,iCACJlE,EAAayD,QACbzD,EAAamE,aACf,EACF,MAAMC,EAAAA,wBAAwBpE,EAAaiB,KAAMjB,EAAa4D,cAAc,EAChF1C,EAAQsC,CAAY,CACtB,OAASa,EAAO,CACdC,QAAQD,MAAM,uBAAwBA,CAAK,CAC7C,CACF,GACAE,EACAnC,EAAAA,CACF,EAAG,CAACpC,EAAcM,CAAS,CAAC,EAE5BiD,EAAAA,UAAU,IAAM,CACdnB,EAAAA,CACF,EAAG,CAACnC,EAASgB,CAAI,CAAC,EAElB,MAAMuD,EAAoBnC,EAAAA,eAAe,IAAM,CAC7C,GAAI,CAACpB,GAAQa,EAAe2C,SAAW,IAAmBxD,CAAI,MACzD,CAEH,MAAMyD,EAASzD,EAAKuB,OAAQmC,GAC1B7C,EAAe8C,MAAMpC,GACnBA,EAAO9C,OAASmF,EAAAA,YAAY,CAACrC,EAAO9C,KAAK,CAAC,EAAE+E,OAAS,EACjDK,gBACED,EAAAA,YAAY,CAACF,EAAKnC,EAAOA,MAAM,CAAC,CAAC,EACjCqC,cAAY,CAACrC,EAAO9C,KAAK,CAAC,EAAEP,IAAIoD,GAAMA,EAAG7C,KAAK,CAChD,EAAE+E,OAAS,EACX,EACN,CACF,EACA3D,EAAgB4D,CAAM,CACxB,CACF,CAAC,EACDnB,EAAAA,UAAU,IAAM,CACdiB,EAAAA,CACF,EAAG,CAAC1C,EAAgBb,CAAI,CAAC,EAEzBsC,EAAAA,UAAU,IAAM,CACVvE,GAEFsC,EAAyBvC,EAAiBC,EAAsBoB,CAAsB,CAAC,CAC3F,EAAG,CAACpB,EAAsBoB,CAAsB,CAAC,EAEjD,MAAM2E,GAAoC1C,EAAAA,eAAe,IAAM,CACzDzB,GAA4B6B,QAAU5B,GACxCa,EACEuB,eAAapC,EAAcD,EAA2B6B,MAAM,EACzDD,UAAY,CAAC5B,GAA4BuC,eAAeC,SAAS,GAAGF,CAAC,EAAE,CAAC,EACxE/D,IAAIT,IAAM,CAAEgB,MAAOhB,EAAGgE,MAAOhE,CAAAA,EAAI,CACtC,CACJ,CAAC,EAED6E,EAAAA,UAAU,IAAM,CACdwB,GAAAA,CACF,EAAG,CAACnE,CAA0B,CAAC,EAE/B2C,EAAAA,UAAU,IAAM,CACTyB,GAAAA,QAAQnD,EAAuBoD,QAAS7E,CAAsB,IAEjEgB,EAAehB,CAAsB,EACrCyB,EAAuBoD,QAAU7E,EAErC,EAAG,CAACA,CAAsB,CAAC,EAG3B,MAAM8E,EAAqBA,CAAC1C,EAAgB2C,IAAgB,CAC1DpD,KAA0BqD,EAAKjG,IAAIkG,GAAMA,EAAE7C,SAAWA,EAAS,CAAE,GAAG6C,EAAG3F,MAAOyF,CAAAA,EAAWE,CAAE,CAAC,CAC9F,EAEMC,GAAarE,EAEfsE,EAAAA,sBACEpF,EACIqF,8BACEC,EAAAA,WAAWxE,EAAMZ,GAAe,CAAA,CAAE,EAClCF,EAAcuF,UACdvF,EAAcwF,yBAChB,EACAF,EAAAA,WAAWxE,EAAMZ,GAAe,CAAA,CAAE,EACtCH,EACAA,IAAc,mCAAqCiB,EAC/C5C,GAAa4C,CAAW,EACxBA,CACN,EAbAH,OAcJ,OACE4E,EAAAA,kBAAAA,IAACC,GAAAA,eAAA,CACC,UAAWlG,GAAemG,YAAYC,eACtC,MAAOpG,GAAeqG,QAAQD,eAC9B,GAAIpG,GAAesG,QACnB,IAAKtE,EACL,aAAYhC,GAAeuG,UAC3B,gBAAiBvG,GAAewG,iBAAmB,GACnD,MAAOxG,GAAeyG,OAAS,QAC/B,SAAUzG,GAAe0G,UAAY,KACrC,MAAO1G,GAAe2D,MACtB,OAAQ3D,GAAe2G,OACvB,QAAS3G,GAAe4G,QACxB,UAAW5G,GAAe6G,UAC1B,eAAgB7G,GAAe8G,eAE9BxF,SAAAA,GACDyF,aACGlE,OAAOD,GAAMA,EAAGoE,qBAAqB,EACrCxH,IAAIoD,GAAMA,EAAG0D,OAAO,EACpBW,QAAQ1G,CAAS,IAAM,GACxB2G,EAAAA,kBAAAA,KAAAC,EAAAA,kBAAAA,SAAA,CACGzF,SAAAA,CAAAA,GAAuB0F,YACxB1F,GAAuB2F,kBACvBrH,GAAeoH,YACfpH,GAAeqH,kBACfrH,GAAesH,eACftH,GAAeuH,aACbtB,EAAAA,kBAAAA,IAACuB,GAAAA,aACC,OAAQ,CACNC,MAAO/F,GAAuB2E,QAAQoB,OAASzH,GAAeqG,QAAQoB,MACtEC,YACEhG,GAAuB2E,QAAQqB,aAAe1H,GAAeqG,QAAQqB,WAAAA,EAEzE,WAAY,CACVD,MAAO/F,GAAuByE,YAAYsB,OAASzH,GAAemG,YAAYsB,MAC9EC,YACEhG,GAAuByE,YAAYuB,aACnC1H,GAAemG,YAAYuB,WAAAA,EAE/B,WAAYhG,GAAuB0F,YAAcpH,GAAeoH,WAChE,iBACE1F,GAAuB2F,kBAAoBrH,GAAeqH,iBAE5D,MAAO3F,GAAuBiC,OAAS3D,GAAe2D,MACtD,cAAe3D,GAAesH,cAAgBtF,EAAiBX,OAC/D,aACErB,GAAeuH,cAAgBjG,GAAQA,EAAKwD,OAAS,EAAIxD,EAAe,KACzE,EAED,KACHa,EAAe2C,SAAW,IAC1BzF,GAAwB,CAAA,GAAIyF,SAAW,IACvClE,GAAgC,CAAA,GAAIkE,SAAW,GAChD7D,EACEiG,EAAAA,kBAAAA,KAAC,MAAA,CAAI,UAAU,oDACZtG,SAAAA,CAAAA,GAA8BpB,IAAI,CAACT,EAAG4I,IACrCT,yBAAC,OACC,MAAO,CACLvD,MACE5E,EAAE4E,OACF,QAAQ,IAAM7C,CAAiB,QAC5BA,EAAoB,GAAKA,CAAiB,OAE/C8G,SAAU7I,EAAE4E,MAAQ,EAAI,EACxBkE,WAAY9I,EAAEmE,KAAO,SAAWnE,EAAE4E,MAAQ,EAAI,EAC9CmE,SAAU,OAAA,EAEZ,UAAU,OAGV,SAAA,CAAA7B,wBAAC8B,EAAAA,EAAA,CAAM,UAAU,OAAQhJ,SAAAA,EAAEgE,OAAS,WAAW,EAC9ChE,EAAEmE,KAAO,QACR+C,EAAAA,kBAAAA,IAAC+B,EAAAA,GAAA,CACC,QAASjJ,EAAEkJ,QAAQzI,IAAIG,IAAQ,CAC7B,GAAGA,EACHI,MAAOJ,EAAIoD,KAAAA,EACX,EACF,KAAK,KACL,YAAa,GACb,aAAY,GACZ,QAAS/B,EACT,yBAAwB,GACxB,aACEjC,EAAEoE,aACE,CACE,GAAGpE,EAAEoE,aACLpD,MAAOhB,EAAEoE,cAAcJ,KAAAA,EAEzB,CACE,GAAGhE,EAAEkJ,QAAQ,CAAC,EACdlI,MAAOhB,EAAEkJ,QAAQ,CAAC,EAAElF,KAAAA,EAI5B,SAAWH,GAAY,CACrBjB,EAAyBiB,GAAI5C,eAAiB,EAAE,EAChDyB,EAAemB,GAAIsF,iBAAiB,CACtC,CAAA,CAAA,EAGFjC,EAAAA,kBAAAA,IAACkC,EAAAA,GAAA,CACC,aAAcpJ,EAAEoE,cAAcJ,OAAShE,EAAEkJ,QAAQ,CAAC,EAAElF,MACpD,QAAS/B,EACT,cAAe4B,GAAM,CACnB,MAAMwF,EACJrJ,EAAEkJ,QAAQlJ,EAAEkJ,QAAQnJ,UAAUa,GAAOA,EAAIoD,QAAUH,CAAE,CAAC,EACxDjB,EAAyByG,EAAepI,eAAiB,EAAE,EAC3DyB,EAAe2G,EAAeF,iBAAiB,CACjD,EAECnJ,SAAAA,EAAEkJ,QAAQzI,IAAI,CAACoD,EAAIyF,IAClBpC,wBAACqC,EAAAA,GAAA,CAAe,MAAO1F,EAAGG,MAAO,MAAOH,EAAGG,KAAAA,EAAYsF,CAAE,CAC1D,CAAA,CACH,CAAA,CAAA,EA7CGV,CA+CP,CACD,EACAtI,GAAsBG,IAAI,CAACT,EAAG4I,IAC7BT,yBAAC,OACC,MAAO,CACLvD,MACE5E,EAAE4E,OACF,QAAQ,IAAM7C,CAAiB,QAC5BA,EAAoB,GAAKA,CAAiB,OAE/C8G,SAAU7I,EAAE4E,MAAQ,EAAI,EACxBkE,WAAY9I,EAAEmE,KAAO,SAAWnE,EAAE4E,MAAQ,EAAI,EAC9CmE,SAAU,OAAA,EAEZ,UAAU,OAGV,SAAA,CAAA7B,EAAAA,kBAAAA,IAAC8B,EAAAA,EAAA,CAAM,UAAU,OAAQhJ,SAAAA,EAAEgE,OAAS,aAAahE,EAAEC,aAAa,KAAA,CAAM,EACpEuJ,EAAAA,gBAAgBxJ,EAAEC,cAAewC,GAAe,CAAA,CAAE,EAoFhDzC,EAAEmE,KAAO,QACX+C,EAAAA,kBAAAA,IAAC+B,EAAAA,GAAA,CACC,QAASjJ,EAAEc,iBACX,KAAK,KACL,QAAO,GACP,aAAY,GACZ,QAASmB,EACT,yBAAwB,GACxB,aACEP,EAEMA,EACEA,EAAuB3B,UACrB8D,GAAMA,EAAG5D,gBAAkBD,EAAEC,aAC/B,CAAC,EACDG,SACFK,IACAoD,GACE7D,EAAEc,iBACAd,EAAEc,iBAAiBf,UAAUuJ,GAAKA,EAAEtI,QAAU6C,CAAE,CAAC,CAEvD,EACAvB,OAEN,aAAcmH,EAAAA,GAAanG,CAAY,EAEvC,SAAWO,GAAY,CACrB,MAAM6F,EAAiB,CACrBtJ,UAAWyD,GAAM,CAAA,GAAIpD,IAElBwF,GAAcA,EAAKjF,KAAAA,EAEtBf,cAAeD,EAAEC,aAAAA,EAEbM,EAAgBkC,GAAahC,IAAIwF,GACrCA,EAAKhG,gBAAkByJ,EAAezJ,cAClCyJ,EACAzD,CACN,EACAvD,EAAenC,CAAa,CAC9B,CAAA,CAAA,EAGF2G,EAAAA,kBAAAA,IAACyC,EAAAA,EAAA,CACC,QAAS1H,EACT,aACEP,EAEMA,EACEA,EAAuB3B,UACrB8D,GAAMA,EAAG5D,gBAAkBD,EAAEC,aAC/B,CAAC,EACDG,SAEDK,IACCoD,GACE7D,EAAEc,iBACAd,EAAEc,iBAAiBf,aAAeuJ,EAAEtI,QAAU6C,CAAE,CAAC,CAEvD,EACCpD,OAAUoD,EAAG7C,KAAK,EACrB,CAAA,EAEN,cAAe6C,GAAM,CACnB,MAAM6F,EAAiB,CACrBtJ,SAAUyD,GAAM,CAAA,EAChB5D,cAAeD,EAAEC,aAAAA,EAEbM,EAAgBkC,GAAahC,IAAIwF,GACrCA,EAAKhG,gBAAkByJ,EAAezJ,cAClCyJ,EACAzD,CACN,EACAvD,EAAenC,CAAa,CAC9B,EAECP,SAAAA,EAAEc,iBAAiBL,IAAI,CAACoD,EAAIyF,IAC3BpC,wBAAC0C,EAAAA,EAAA,CAAkB,MAAO/F,EAAGG,MAAO,MAAOH,EAAGG,KAAAA,EAAYsF,CAAE,CAC7D,CAAA,CACH,EAlKAtJ,EAAEmE,KAAO,QACP+C,EAAAA,kBAAAA,IAAC+B,EAAAA,GAAA,CACC,QAASjJ,EAAEc,iBACX,KAAK,KACL,YAAa,GACb,aAAY,GACZ,QAASmB,EACT,yBAAwB,GACxB,aACEP,EACI1B,EAAEc,iBACAd,EAAEc,iBAAiBf,UACjBuJ,GACEA,EAAEtI,QACDU,EACCA,EAAuB3B,UACrB8D,GAAMA,EAAG5D,gBAAkBD,EAAEC,aAC/B,CAAC,EACDG,QACN,CAAC,EAEHkC,OAGN,SAAWuB,GAAY,CACrB,MAAM6F,EAAiB,CACrBtJ,SAAUyD,GAAI7C,MACdf,cAAeD,EAAEC,aAAAA,EAEbM,EAAgBkC,GAAahC,IAAIwF,GACrCA,EAAKhG,gBAAkByJ,EAAezJ,cAClCyJ,EACAzD,CACN,EACArD,EACEvC,EAAiBC,EAAsBC,CAAa,CACtD,EACAmC,EAAenC,CAAa,CAC9B,CAAA,CAAA,EAGF2G,EAAAA,kBAAAA,IAACkC,EAAAA,GAAA,CACC,QAASnH,EACT,aACEP,EACI1B,EAAEc,iBACAd,EAAEc,iBAAiBf,aAEfuJ,EAAEtI,QACDU,EACCA,EAAuB3B,UACrB8D,GAAMA,EAAG5D,gBAAkBD,EAAEC,aAC/B,CAAC,EACDG,QACN,CAAC,EACD4D,MACF,GAEN,cAAeH,GAAM,CAKnB,MAAM6F,EAAiB,CACrBtJ,SAJAJ,EAAEc,iBACAd,EAAEc,iBAAiBf,UAAUa,GAAOA,EAAIoD,QAAUH,CAAE,CAAC,EAG9B7C,MACzBf,cAAeD,EAAEC,aAAAA,EAEbM,EAAgBkC,GAAahC,IAAIwF,GACrCA,EAAKhG,gBAAkByJ,EAAezJ,cAClCyJ,EACAzD,CACN,EACArD,EACEvC,EAAiBC,EAAsBC,CAAa,CACtD,EACAmC,EAAenC,CAAa,CAC9B,EAECP,WAAEc,iBAAiBL,IAAI,CAACoD,EAAIyF,4BAC1BC,EAAAA,GAAA,CAAe,MAAO1F,EAAGG,MAAO,MAAOH,EAAGG,OAAYsF,CAAE,CAC1D,CAAA,CACH,CAiFF,CAAA,EAtKGV,CAwKP,CACD,EACAxF,GAAgB3C,IAAI,CAACT,EAAG4I,IACvBT,yBAAC,OACC,MAAO,CACLvD,MACE5E,EAAE4E,OACF,QAAQ,IAAM7C,CAAiB,QAC5BA,EAAoB,GAAKA,CAAiB,OAE/C8G,SAAU7I,EAAE4E,MAAQ,EAAI,EACxBkE,WAAY,EACZC,SAAU,OAAA,EAEZ,UAAU,OAGV,SAAA,CAAA7B,EAAAA,kBAAAA,IAAC8B,EAAAA,EAAA,CAAM,UAAU,OAAQhJ,SAAAA,EAAEgE,MAAM,EAChChE,EAAEiE,aACDjE,EAAEmE,KAAO,QACP+C,EAAAA,kBAAAA,IAAC+B,EAAAA,GAAA,CACC,QAASjJ,EAAEsE,gBACX,QAASrC,EACT,YAAajC,EAAEkE,YAAc5B,OAAY,GAAOtC,EAAEkE,UAClD,aAAY,GACZ,yBAAwB,GACxB,aAAcuF,EAAAA,GAAanG,CAAY,EACvC,SAAUO,GAAM,CACd2C,EAAmBxG,EAAE8D,OAAQD,CAAE,CACjC,EACA,MAAO7D,EAAEgB,MACT,aAAchB,EAAEoE,YAAAA,CAAa,EAG/B8C,EAAAA,kBAAAA,IAACkC,EAAAA,GAAA,CACC,QAASnH,EACT,aAAejC,EAAEoE,aAAkDpD,MACnE,cAAe6C,GAAM,CACnB2C,EACExG,EAAE8D,OACF9D,EAAEsE,gBAAgBR,OAAOU,GAAKA,EAAExD,QAAU6C,CAAE,CAC9C,CACF,EAEC7D,WAAEsE,gBAAgB7D,IAAI,CAACoD,EAAIyF,IAC1BpC,EAAAA,kBAAAA,IAACqC,EAAAA,GAAA,CAAe,MAAO,GAAG1F,EAAGG,KAAK,GAAI,MAAO,GAAGH,EAAG7C,KAAK,IAASsI,CAAE,CACpE,CAAA,CACH,EAGFnB,EAAAA,kBAAAA,KAAAC,EAAAA,kBAAAA,SAAA,CACGpI,SAAAA,CAAAA,EAAEmE,KAAO,QACR+C,EAAAA,kBAAAA,IAAC+B,EAAAA,GAAA,CACC,QAASjJ,EAAEsE,gBACX,QAASrC,EACT,KAAK,KACL,QAAO,GACP,YAAajC,EAAEkE,YAAc5B,OAAY,GAAOtC,EAAEkE,UAClD,aAAY,GACZ,yBAAwB,GACxB,aAAcuF,EAAAA,GAAanG,CAAY,EACvC,SAAUO,GAAM,CACd2C,EAAmBxG,EAAE8D,OAAQD,CAAE,CACjC,EACA,MAAO7D,EAAEgB,MACT,aAAchB,EAAEoE,aAAa,EAG/B8C,wBAACyC,EAAAA,EAAA,CACC,QAAS1H,EACT,aACEjC,EAAEoE,aAEIpE,EAAEoE,aAIF3D,IAAIoD,GAAM,GAAGA,EAAG7C,KAAK,EAAE,EACzB,CAAA,EAEN,MACEhB,EAAEgB,MAEIhB,EAAEgB,MAIFP,IAAIoD,GAAM,GAAGA,EAAG7C,KAAK,EAAE,EACzBsB,OAEN,cAAeuB,GAAM,CACnB2C,EACExG,EAAE8D,OACF9D,EAAEsE,gBAAgBR,OAAOU,GAAKX,EAAGqE,QAAQ,GAAG1D,EAAExD,KAAK,EAAE,IAAM,EAAE,CAC/D,CACF,EAEChB,WAAEsE,gBAAgB7D,IAAI,CAACoD,EAAIyF,4BACzBM,EAAAA,EAAA,CACC,MAAO,GAAG/F,EAAGG,KAAK,GAClB,MAAO,GAAGH,EAAG7C,KAAK,EAAA,EACbsI,CAAE,CAEV,CAAA,CACH,EAEDtJ,EAAE2E,eACDuC,EAAAA,kBAAAA,IAAC,SAAA,CACC,KAAK,SACL,UAAU,mGACV,QAAS,IAAM,CACbV,EAAmBxG,EAAE8D,OAAQ9D,EAAEsE,eAAe,CAChD,EACD,8BAED,EACE,IAAA,CAAA,CACN,CAAA,CAAA,EAtGGsE,CAwGP,CACD,EACA1G,EACCiG,EAAAA,kBAAAA,KAAC,MAAA,CACC,MAAO,CACLvD,MACE1C,EAA2B0C,OAC3B,QAAQ,IAAM7C,CAAiB,QAC5BA,EAAoB,GAAKA,CAAiB,OAE/C8G,SAAU3G,EAA2B0C,MAAQ,EAAI,EACjDkE,WAAY,EACZC,SAAU,OAAA,EAEZ,UAAU,OAEV,SAAA,CAAA7B,wBAAC8B,EAAAA,EAAA,CAAM,UAAU,OACd9G,SAAAA,EAA2B8B,OAAS,iBACvC,EACAkD,EAAAA,kBAAAA,IAAC+B,EAAAA,GAAA,CACC,QAASlG,EACT,QAASd,EACT,KAAK,KACL,QAAO,GACP,YAAW,GACX,aAAY,GACZ,yBAAwB,GACxB,aAAcwH,EAAAA,GAAanG,CAAY,EAEvC,SAAWO,GAAY,CAErBf,EAA4Be,GAAIpD,IAAKT,GAAWA,EAAEgB,KAAK,CAAC,CAC1D,EACA,MAAO6B,GAA0BpC,IAAIT,IAAM,CACzCgE,MAAOhE,EACPgB,MAAOhB,CAAAA,EACP,EACF,aAAckC,EAA2B2H,eAAepJ,IAAIT,IAAM,CAChEgE,MAAOhE,EACPgB,MAAOhB,CAAAA,EACP,CAAA,CAAA,CAAE,CAAA,CAER,EACE,IAAA,CAAA,CACN,EACE,KACJkH,EAAAA,kBAAAA,IAAC4C,GAAAA,QAAA,CACC,MAAOtI,EACP,UAAAoF,GACA,uBAAwBnE,EACxB,UAAAb,EACA,eAAgBE,GAAkB,CAAA,EAClC,cAAAE,EACA,SAAU,CACR,GAAIf,GAAiB,CAAA,EACrB,GAAG0B,EACH0F,WAAY/F,OACZgG,iBAAkBhG,OAClBiG,cAAe,GACfC,aAAc,GACdf,gBAAiBnF,OACjBsC,MAAOtC,OACPsF,OAAQtF,OACRyF,eAAgBzF,OAChBwF,UAAWxF,OACXuF,QAAS,IACTH,MAAOzG,GAAeyG,MACtB,GAAI7E,EACA,CACEkH,sBAAuBlH,EACvBmH,eAAgBnH,GAA0BpC,IAAIT,GAAK,GAAGA,CAAC,EAAE,EACzDiK,iBAAkBpH,GAA0BpC,IAAIT,GAAKA,CAAC,CAAA,EAExD,CAAA,CAAC,CACP,CAAE,CAAA,CAAA,CAEN,0BAEC,MAAA,CAAI,UAAU,iCACb,SAAAkH,EAAAA,kBAAAA,IAACgD,GAAAA,EAAA,EAAO,EACV,CAAA,CAEJ,CAEJ"}
|
|
1
|
+
{"version":3,"file":"SingleGraphDashboard.cjs","sources":["../src/Components/Dashboard/SingleGraphDashboard.tsx"],"sourcesContent":["import { useEffect, useEffectEvent, useRef, useState } from 'react';\r\nimport intersection from 'lodash.intersection';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport isEqual from 'fast-deep-equal';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { CheckboxGroup, CheckboxGroupItem } from '@undp/design-system-react/CheckboxGroup';\r\nimport { RadioGroup, RadioGroupItem } from '@undp/design-system-react/RadioGroup';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\nimport { Label } from '@undp/design-system-react/Label';\r\n\r\nimport { GraphContainer } from '../Elements/GraphContainer';\r\n\r\nimport GraphEl from './GraphEl';\r\n\r\nimport {\r\n AdvancedDataSelectionDataType,\r\n AggregationSettingsDataType,\r\n DataFilterDataType,\r\n DataSelectionDataType,\r\n DataSettingsDataType,\r\n FilterSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphConfigurationDataType,\r\n GraphSettingsDataType,\r\n GraphType,\r\n HighlightDataPointSettingsDataType,\r\n} from '@/Types';\r\nimport {\r\n fetchAndParseCSV,\r\n fetchAndParseJSON,\r\n fetchAndParseMultipleDataSources,\r\n fetchAndTransformDataFromAPI,\r\n} from '@/Utils/fetchAndParseData';\r\nimport { transformDataForGraph } from '@/Utils/transformData/transformDataForGraph';\r\nimport { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { transformDataForAggregation } from '@/Utils/transformData/transformDataForAggregation';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { filterData } from '@/Utils/transformData/filterData';\r\nimport { checkIfMultiple } from '@/Utils/checkIfMultiple';\r\nimport { transformColumnsToArray } from '@/Utils/transformData/transformColumnsToArray';\r\nimport { graphList } from '@/Utils/getGraphList';\r\nimport { transformDefaultValue } from '@/Utils/transformDataForSelect';\r\n\r\ninterface Props {\r\n graphSettings?: GraphSettingsDataType;\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n highlightDataPointSettings?: HighlightDataPointSettingsDataType;\r\n noOfFiltersPerRow?: number;\r\n graphType: GraphType;\r\n dataTransform?: {\r\n keyColumn: string;\r\n aggregationColumnsSetting?: AggregationSettingsDataType[];\r\n };\r\n dataFilters?: DataFilterDataType[];\r\n graphDataConfiguration?: GraphConfigurationDataType[];\r\n dataSelectionOptions?: DataSelectionDataType[];\r\n advancedDataSelectionOptions?: AdvancedDataSelectionDataType[];\r\n debugMode?: boolean;\r\n uiMode?: 'light' | 'normal';\r\n updateFilters?: (_d: string) => void;\r\n}\r\n\r\nconst addMinAndMax = (config: GraphConfigurationDataType[]) => {\r\n if (\r\n config.findIndex(d => d.chartConfigId === 'yMin') !== -1 &&\r\n config.findIndex(d => d.chartConfigId === 'yMax') !== -1\r\n )\r\n return config;\r\n const configTemp = [...config];\r\n if (config.findIndex(d => d.chartConfigId === 'yMin') === -1) {\r\n configTemp.push({\r\n chartConfigId: 'yMin',\r\n columnId: `${config[config.findIndex(d => d.chartConfigId === 'y')].columnId}Min`,\r\n });\r\n }\r\n if (config.findIndex(d => d.chartConfigId === 'yMax') === -1) {\r\n configTemp.push({\r\n chartConfigId: 'yMax',\r\n columnId: `${config[config.findIndex(d => d.chartConfigId === 'y')].columnId}Max`,\r\n });\r\n }\r\n return configTemp;\r\n};\r\n\r\nconst getGraphSettings = (\r\n dataSelectionOptions: DataSelectionDataType[],\r\n updatedConfig?: GraphConfigurationDataType[],\r\n) => {\r\n const updatedSettings =\r\n updatedConfig?.map(c => {\r\n const indx = dataSelectionOptions?.findIndex(opt => opt.chartConfigId === c.chartConfigId);\r\n if (indx === -1) return {};\r\n const allowedValIndx = dataSelectionOptions[indx]?.allowedColumnIds?.findIndex(\r\n col => col.value === c.columnId,\r\n );\r\n if (allowedValIndx === -1) return {};\r\n return dataSelectionOptions[indx].allowedColumnIds[allowedValIndx].graphSettings || {};\r\n }) || [];\r\n return Object.assign({}, ...updatedSettings);\r\n};\r\n\r\nexport function SingleGraphDashboard(props: Props) {\r\n const {\r\n graphSettings,\r\n dataSettings,\r\n filters,\r\n graphType,\r\n dataTransform,\r\n graphDataConfiguration,\r\n dataFilters,\r\n debugMode,\r\n dataSelectionOptions,\r\n advancedDataSelectionOptions,\r\n readableHeader,\r\n noOfFiltersPerRow = 4,\r\n updateFilters,\r\n uiMode = 'normal',\r\n highlightDataPointSettings,\r\n } = props;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [filteredData, setFilteredData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [data, setData] = useState<any>(undefined);\r\n const [graphConfig, setGraphConfig] = useState<GraphConfigurationDataType[] | undefined>(\r\n graphDataConfiguration,\r\n );\r\n const [advancedGraphSettings, setAdvancedGraphSettings] = useState<GraphSettingsDataType>({});\r\n const [highlightedDataPointList, setHighlightedDataPointList] = useState<\r\n (string | number)[] | undefined\r\n >(undefined);\r\n const [highlightedDataPointOptions, setHighlightedDataPointOption] = useState<\r\n { label: string | number; value: string | number }[]\r\n >([]);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n const prevGraphDataConfigRef = useRef<GraphConfigurationDataType[] | undefined>(\r\n graphDataConfiguration,\r\n );\r\n const [filterSettings, setFilterSettings] = useState<FilterSettingsDataType[]>([]);\r\n\r\n const filterConfig = {\r\n ignoreCase: true,\r\n ignoreAccents: true,\r\n trim: true,\r\n };\r\n\r\n const updateFiltersEvent = useEffectEvent(() => {\r\n const filterSettingsTemp = (filters || []).map(el => ({\r\n filter: el.column,\r\n label: el.label || `Filter by ${el.column}`,\r\n singleSelect: el.singleSelect,\r\n clearable: el.clearable,\r\n ui: el.ui,\r\n defaultValue: transformDefaultValue(el.defaultValue),\r\n value: transformDefaultValue(el.defaultValue),\r\n availableValues: getUniqValue(data, el.column)\r\n .filter(v => !el.excludeValues?.includes(`${v}`))\r\n .map(v => ({ value: v, label: v })),\r\n allowSelectAll: el.allowSelectAll,\r\n width: el.width,\r\n }));\r\n setFilterSettings(filterSettingsTemp);\r\n });\r\n\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n try {\r\n const dataFromFile = dataSettings.dataURL\r\n ? typeof dataSettings.dataURL === 'string'\r\n ? dataSettings.fileType === 'json'\r\n ? await fetchAndParseJSON(\r\n dataSettings.dataURL,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : dataSettings.fileType === 'api'\r\n ? await fetchAndTransformDataFromAPI(\r\n dataSettings.dataURL,\r\n dataSettings.apiHeaders,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : await fetchAndParseCSV(\r\n dataSettings.dataURL,\r\n dataSettings.dataTransformation,\r\n dataSettings.columnsToArray,\r\n debugMode,\r\n dataSettings.delimiter,\r\n true,\r\n )\r\n : await fetchAndParseMultipleDataSources(\r\n dataSettings.dataURL,\r\n dataSettings.idColumnTitle,\r\n )\r\n : await transformColumnsToArray(dataSettings.data, dataSettings.columnsToArray);\r\n setData(dataFromFile);\r\n } catch (error) {\r\n console.error('Data fetching error:', error);\r\n }\r\n };\r\n fetchData();\r\n updateFiltersEvent();\r\n }, [dataSettings, debugMode]);\r\n\r\n useEffect(() => {\r\n updateFiltersEvent();\r\n }, [filters, data]);\r\n\r\n const filteredDataEvent = useEffectEvent(() => {\r\n if (!data || filterSettings.length === 0) setFilteredData(data);\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const result = data.filter((item: any) =>\r\n filterSettings.every(filter =>\r\n filter.value && flattenDeep([filter.value]).length > 0\r\n ? intersection(\r\n flattenDeep([item[filter.filter]]),\r\n flattenDeep([filter.value]).map(el => el.value),\r\n ).length > 0\r\n : true,\r\n ),\r\n );\r\n setFilteredData(result);\r\n }\r\n });\r\n useEffect(() => {\r\n filteredDataEvent();\r\n }, [filterSettings, data]);\r\n\r\n useEffect(() => {\r\n if (dataSelectionOptions)\r\n // eslint-disable-next-line react-hooks/set-state-in-effect\r\n setAdvancedGraphSettings(getGraphSettings(dataSelectionOptions, graphDataConfiguration));\r\n }, [dataSelectionOptions, graphDataConfiguration]);\r\n\r\n const updateHighlightedDataPointOptions = useEffectEvent(() => {\r\n if (highlightDataPointSettings?.column && filteredData)\r\n setHighlightedDataPointOption(\r\n getUniqValue(filteredData, highlightDataPointSettings.column)\r\n .filter(v => !highlightDataPointSettings?.excludeValues?.includes(`${v}`))\r\n .map(d => ({ value: d, label: d })),\r\n );\r\n });\r\n\r\n useEffect(() => {\r\n updateHighlightedDataPointOptions();\r\n }, [highlightDataPointSettings]);\r\n\r\n useEffect(() => {\r\n if (!isEqual(prevGraphDataConfigRef.current, graphDataConfiguration)) {\r\n // eslint-disable-next-line react-hooks/set-state-in-effect\r\n setGraphConfig(graphDataConfiguration);\r\n prevGraphDataConfigRef.current = graphDataConfiguration;\r\n }\r\n }, [graphDataConfiguration]);\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleFilterChange = (filter: string, values: any) => {\r\n setFilterSettings(prev => prev.map(f => (f.filter === filter ? { ...f, value: values } : f)));\r\n };\r\n\r\n const graphData = !data\r\n ? undefined\r\n : transformDataForGraph(\r\n dataTransform\r\n ? transformDataForAggregation(\r\n filterData(data, dataFilters || []),\r\n dataTransform.keyColumn,\r\n dataTransform.aggregationColumnsSetting,\r\n )\r\n : filterData(data, dataFilters || []),\r\n graphType,\r\n graphType === 'lineChartWithConfidenceInterval' && graphConfig\r\n ? addMinAndMax(graphConfig)\r\n : graphConfig,\r\n );\r\n return (\r\n <GraphContainer\r\n className={graphSettings?.classNames?.graphContainer}\r\n style={graphSettings?.styles?.graphContainer}\r\n id={graphSettings?.graphID}\r\n ref={graphParentDiv}\r\n aria-label={graphSettings?.ariaLabel}\r\n backgroundColor={graphSettings?.backgroundColor ?? false}\r\n theme={graphSettings?.theme || 'light'}\r\n language={graphSettings?.language || 'en'}\r\n width={graphSettings?.width}\r\n height={graphSettings?.height}\r\n padding={graphSettings?.padding}\r\n minHeight={graphSettings?.minHeight}\r\n relativeHeight={graphSettings?.relativeHeight}\r\n >\r\n {data ||\r\n graphList\r\n .filter(el => el.geoHubMapPresentation)\r\n .map(el => el.graphID)\r\n .indexOf(graphType) !== -1 ? (\r\n <>\r\n {advancedGraphSettings?.graphTitle ||\r\n advancedGraphSettings?.graphDescription ||\r\n graphSettings?.graphTitle ||\r\n graphSettings?.graphDescription ||\r\n graphSettings?.graphDownload ||\r\n graphSettings?.dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: advancedGraphSettings?.styles?.title || graphSettings?.styles?.title,\r\n description:\r\n advancedGraphSettings?.styles?.description || graphSettings?.styles?.description,\r\n }}\r\n classNames={{\r\n title: advancedGraphSettings?.classNames?.title || graphSettings?.classNames?.title,\r\n description:\r\n advancedGraphSettings?.classNames?.description ||\r\n graphSettings?.classNames?.description,\r\n }}\r\n graphTitle={advancedGraphSettings?.graphTitle || graphSettings?.graphTitle}\r\n graphDescription={\r\n advancedGraphSettings?.graphDescription || graphSettings?.graphDescription\r\n }\r\n width={advancedGraphSettings?.width || graphSettings?.width}\r\n graphDownload={graphSettings?.graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n graphSettings?.dataDownload && data ? (data.length > 0 ? data : null) : null\r\n }\r\n />\r\n ) : null}\r\n {filterSettings.length !== 0 ||\r\n (dataSelectionOptions || []).length !== 0 ||\r\n (advancedDataSelectionOptions || []).length !== 0 ||\r\n highlightDataPointSettings ? (\r\n <div className='flex flex-wrap items-start gap-x-4 gap-y-0 w-full'>\r\n {advancedDataSelectionOptions?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: d.width ? 0 : 1,\r\n flexShrink: d.ui !== 'radio' || d.width ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || 'Graph by'}</Label>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.options.map(opt => ({\r\n ...opt,\r\n value: opt.label,\r\n }))}\r\n size='sm'\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\r\n defaultValue={\r\n d.defaultValue\r\n ? {\r\n ...d.defaultValue,\r\n value: d.defaultValue?.label,\r\n }\r\n : {\r\n ...d.options[0],\r\n value: d.options[0].label,\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n setAdvancedGraphSettings(el?.graphSettings || {});\r\n setGraphConfig(el?.dataConfiguration);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n defaultValue={d.defaultValue?.label || d.options[0].label}\r\n variant={uiMode}\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.options[d.options.findIndex(opt => opt.label === el)];\r\n setAdvancedGraphSettings(selectedOption.graphSettings || {});\r\n setGraphConfig(selectedOption.dataConfiguration);\r\n }}\r\n >\r\n {d.options.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )}\r\n </div>\r\n ))}\r\n {dataSelectionOptions?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: d.width ? 0 : 1,\r\n flexShrink: d.ui !== 'radio' || d.width ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || `Visualize ${d.chartConfigId} by`}</Label>\r\n {!checkIfMultiple(d.chartConfigId, graphConfig || []) ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n size='sm'\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ]\r\n : undefined\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: el?.value as string,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(\r\n getGraphSettings(dataSelectionOptions, updatedConfig),\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ].label\r\n : ''\r\n }\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(opt => opt.label === el)\r\n ];\r\n const newGraphConfig = {\r\n columnId: selectedOption.value,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(\r\n getGraphSettings(dataSelectionOptions, updatedConfig),\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )\r\n ) : d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n size='sm'\r\n isMulti\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n ).map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n : undefined\r\n }\r\n filterOption={createFilter(filterConfig)}\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: (el || []).map(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (item: any) => item.value,\r\n ) as string[],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n />\r\n ) : (\r\n <CheckboxGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n )\r\n .map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n .map(el => el.value)\r\n : []\r\n }\r\n onValueChange={el => {\r\n const newGraphConfig = {\r\n columnId: el || [],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <CheckboxGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </CheckboxGroup>\r\n )}\r\n </div>\r\n ))}\r\n {filterSettings?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: d.width ? 0 : 1,\r\n flexShrink: 0,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label}</Label>\r\n {d.singleSelect ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n variant={uiMode}\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <RadioGroup\r\n variant={uiMode}\r\n defaultValue={(d.defaultValue as { value: string; label: string }).value}\r\n onValueChange={el => {\r\n handleFilterChange(\r\n d.filter,\r\n d.availableValues.filter(v => v.value === el),\r\n );\r\n }}\r\n >\r\n {d.availableValues.map((el, j) => (\r\n <RadioGroupItem label={`${el.label}`} value={`${el.value}`} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )\r\n ) : (\r\n <>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n variant={uiMode}\r\n size='sm'\r\n isMulti\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <CheckboxGroup\r\n variant={uiMode}\r\n defaultValue={\r\n d.defaultValue\r\n ? (\r\n d.defaultValue as {\r\n value: string | number;\r\n label: string | number;\r\n }[]\r\n ).map(el => `${el.value}`)\r\n : []\r\n }\r\n value={\r\n d.value\r\n ? (\r\n d.value as {\r\n value: string | number;\r\n label: string | number;\r\n }[]\r\n ).map(el => `${el.value}`)\r\n : undefined\r\n }\r\n onValueChange={el => {\r\n handleFilterChange(\r\n d.filter,\r\n d.availableValues.filter(v => el.indexOf(`${v.value}`) !== -1),\r\n );\r\n }}\r\n >\r\n {d.availableValues.map((el, j) => (\r\n <CheckboxGroupItem\r\n label={`${el.label}`}\r\n value={`${el.value}`}\r\n key={j}\r\n />\r\n ))}\r\n </CheckboxGroup>\r\n )}\r\n {d.allowSelectAll ? (\r\n <button\r\n type='button'\r\n className='bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400'\r\n onClick={() => {\r\n handleFilterChange(d.filter, d.availableValues);\r\n }}\r\n >\r\n Select all options\r\n </button>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n ))}\r\n {highlightDataPointSettings ? (\r\n <div\r\n style={{\r\n width:\r\n highlightDataPointSettings.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: highlightDataPointSettings.width ? 0 : 1,\r\n flexShrink: 0,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n >\r\n <Label className='mb-2'>\r\n {highlightDataPointSettings.label || 'Highlight data'}\r\n </Label>\r\n <DropdownSelect\r\n options={highlightedDataPointOptions}\r\n variant={uiMode}\r\n size='sm'\r\n isMulti\r\n isClearable\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setHighlightedDataPointList(el?.map((d: any) => d.value));\r\n }}\r\n value={highlightedDataPointList?.map(d => ({\r\n label: d,\r\n value: d,\r\n }))}\r\n defaultValue={highlightDataPointSettings.defaultValues?.map(d => ({\r\n label: d,\r\n value: d,\r\n }))}\r\n />\r\n </div>\r\n ) : null}\r\n </div>\r\n ) : null}\r\n <GraphEl\r\n graph={graphType}\r\n graphData={graphData}\r\n graphDataConfiguration={graphConfig}\r\n debugMode={debugMode}\r\n readableHeader={readableHeader || []}\r\n updateFilters={updateFilters}\r\n settings={{\r\n ...(graphSettings || {}),\r\n ...advancedGraphSettings,\r\n graphTitle: undefined,\r\n graphDescription: undefined,\r\n graphDownload: false,\r\n dataDownload: false,\r\n backgroundColor: undefined,\r\n width: undefined,\r\n height: undefined,\r\n relativeHeight: undefined,\r\n minHeight: undefined,\r\n padding: '0',\r\n theme: graphSettings?.theme,\r\n ...(highlightedDataPointList\r\n ? {\r\n highlightedDataPoints: highlightedDataPointList,\r\n highlightedIds: highlightedDataPointList?.map(d => `${d}`),\r\n highlightedLines: highlightedDataPointList?.map(d => d),\r\n }\r\n : {}),\r\n }}\r\n />\r\n </>\r\n ) : (\r\n <div className='w-full flex justify-center p-4'>\r\n <Spinner />\r\n </div>\r\n )}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["addMinAndMax","config","findIndex","d","chartConfigId","configTemp","push","columnId","getGraphSettings","dataSelectionOptions","updatedConfig","updatedSettings","map","c","indx","opt","allowedValIndx","allowedColumnIds","col","value","graphSettings","Object","assign","SingleGraphDashboard","props","dataSettings","filters","graphType","dataTransform","graphDataConfiguration","dataFilters","debugMode","advancedDataSelectionOptions","readableHeader","noOfFiltersPerRow","updateFilters","uiMode","highlightDataPointSettings","filteredData","setFilteredData","useState","undefined","data","setData","graphConfig","setGraphConfig","advancedGraphSettings","setAdvancedGraphSettings","highlightedDataPointList","setHighlightedDataPointList","highlightedDataPointOptions","setHighlightedDataPointOption","graphParentDiv","useRef","prevGraphDataConfigRef","filterSettings","setFilterSettings","filterConfig","ignoreCase","ignoreAccents","trim","updateFiltersEvent","useEffectEvent","filterSettingsTemp","el","filter","column","label","singleSelect","clearable","ui","defaultValue","transformDefaultValue","availableValues","getUniqValue","v","excludeValues","includes","allowSelectAll","width","useEffect","dataFromFile","dataURL","fileType","fetchAndParseJSON","columnsToArray","dataTransformation","fetchAndTransformDataFromAPI","apiHeaders","fetchAndParseCSV","delimiter","fetchAndParseMultipleDataSources","idColumnTitle","transformColumnsToArray","error","console","fetchData","filteredDataEvent","length","result","item","every","flattenDeep","intersection","updateHighlightedDataPointOptions","isEqual","current","handleFilterChange","values","prev","f","graphData","transformDataForGraph","transformDataForAggregation","filterData","keyColumn","aggregationColumnsSetting","jsx","GraphContainer","classNames","graphContainer","styles","graphID","ariaLabel","backgroundColor","theme","language","height","padding","minHeight","relativeHeight","graphList","geoHubMapPresentation","indexOf","jsxs","Fragment","graphTitle","graphDescription","graphDownload","dataDownload","GraphHeader","title","description","i","flexGrow","flexShrink","minWidth","Label","DropdownSelect","options","dataConfiguration","RadioGroup","selectedOption","j","RadioGroupItem","checkIfMultiple","createFilter","newGraphConfig","CheckboxGroup","CheckboxGroupItem","defaultValues","GraphEl","highlightedDataPoints","highlightedIds","highlightedLines","Spinner"],"mappings":"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"}
|
|
@@ -1,18 +1,21 @@
|
|
|
1
|
-
import { j as t } from "./
|
|
2
|
-
import { useState as b, useRef as B, useEffectEvent as
|
|
1
|
+
import { j as t } from "./compiler-runtime-qHgugrLy.js";
|
|
2
|
+
import { useState as b, useRef as B, useEffectEvent as A, useEffect as w } from "react";
|
|
3
3
|
import { i as sa } from "./index-BuwmuDFJ.js";
|
|
4
4
|
import { f as F } from "./index-EArKRVKg.js";
|
|
5
5
|
import { i as ua } from "./index-Bwrro8-q.js";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
6
|
+
import { DropdownSelect as V, createFilter as M } from "@undp/design-system-react/DropdownSelect";
|
|
7
|
+
import { CheckboxGroup as K, CheckboxGroupItem as Q } from "@undp/design-system-react/CheckboxGroup";
|
|
8
|
+
import { RadioGroup as H, RadioGroupItem as O } from "@undp/design-system-react/RadioGroup";
|
|
9
|
+
import { Spinner as da } from "@undp/design-system-react/Spinner";
|
|
10
|
+
import { Label as R } from "@undp/design-system-react/Label";
|
|
11
|
+
import { G as ha } from "./GraphContainer-DcOM2CI6.js";
|
|
12
|
+
import { G as ca } from "./GraphEl-C7KBBHvB.js";
|
|
13
|
+
import { b as fa, d as pa, f as ga, c as ma, t as Ca } from "./fetchAndParseData-CDjQZ1fL.js";
|
|
14
|
+
import { a as va, t as Ia } from "./transformDataForAggregation-wdPf8bNt.js";
|
|
13
15
|
import { g as X } from "./getUniqValue-DsqSii6M.js";
|
|
14
|
-
import { GraphHeader as
|
|
16
|
+
import { GraphHeader as ba } from "./GraphHeader.js";
|
|
15
17
|
import { f as Y } from "./filterData-DsAiFzKY.js";
|
|
18
|
+
import { c as xa } from "./checkIfMultiple-D2tgEnYM.js";
|
|
16
19
|
import { g as wa } from "./getGraphList-Bpd3PVmF.js";
|
|
17
20
|
import { t as Z } from "./transformDataForSelect-D8AuvYdf.js";
|
|
18
21
|
const Va = (s) => {
|
|
@@ -34,7 +37,7 @@ const Va = (s) => {
|
|
|
34
37
|
}) || [];
|
|
35
38
|
return Object.assign({}, ...i);
|
|
36
39
|
};
|
|
37
|
-
function
|
|
40
|
+
function Wa(s) {
|
|
38
41
|
const {
|
|
39
42
|
graphSettings: n,
|
|
40
43
|
dataSettings: i,
|
|
@@ -43,19 +46,19 @@ function Ea(s) {
|
|
|
43
46
|
dataTransform: x,
|
|
44
47
|
graphDataConfiguration: o,
|
|
45
48
|
dataFilters: k,
|
|
46
|
-
debugMode:
|
|
49
|
+
debugMode: S,
|
|
47
50
|
dataSelectionOptions: v,
|
|
48
51
|
advancedDataSelectionOptions: L,
|
|
49
52
|
readableHeader: _,
|
|
50
53
|
noOfFiltersPerRow: h = 4,
|
|
51
54
|
updateFilters: aa,
|
|
52
55
|
uiMode: c = "normal",
|
|
53
|
-
highlightDataPointSettings:
|
|
54
|
-
} = s, [E, U] = b(void 0), [u, ea] = b(void 0), [m, I] = b(o), [
|
|
56
|
+
highlightDataPointSettings: p
|
|
57
|
+
} = s, [E, U] = b(void 0), [u, ea] = b(void 0), [m, I] = b(o), [g, y] = b({}), [j, la] = b(void 0), [ta, ia] = b([]), z = B(null), W = B(o), [G, q] = b([]), $ = {
|
|
55
58
|
ignoreCase: !0,
|
|
56
59
|
ignoreAccents: !0,
|
|
57
60
|
trim: !0
|
|
58
|
-
}, J =
|
|
61
|
+
}, J = A(() => {
|
|
59
62
|
const a = (D || []).map((r) => ({
|
|
60
63
|
filter: r.column,
|
|
61
64
|
label: r.label || `Filter by ${r.column}`,
|
|
@@ -76,36 +79,36 @@ function Ea(s) {
|
|
|
76
79
|
w(() => {
|
|
77
80
|
(async () => {
|
|
78
81
|
try {
|
|
79
|
-
const r = i.dataURL ? typeof i.dataURL == "string" ? i.fileType === "json" ? await
|
|
82
|
+
const r = i.dataURL ? typeof i.dataURL == "string" ? i.fileType === "json" ? await fa(i.dataURL, i.columnsToArray, i.dataTransformation, S) : i.fileType === "api" ? await pa(i.dataURL, i.apiHeaders, i.columnsToArray, i.dataTransformation, S) : await ga(i.dataURL, i.dataTransformation, i.columnsToArray, S, i.delimiter, !0) : await ma(i.dataURL, i.idColumnTitle) : await Ca(i.data, i.columnsToArray);
|
|
80
83
|
ea(r);
|
|
81
84
|
} catch (r) {
|
|
82
85
|
console.error("Data fetching error:", r);
|
|
83
86
|
}
|
|
84
87
|
})(), J();
|
|
85
|
-
}, [i,
|
|
88
|
+
}, [i, S]), w(() => {
|
|
86
89
|
J();
|
|
87
90
|
}, [D, u]);
|
|
88
|
-
const na =
|
|
89
|
-
if (!u ||
|
|
91
|
+
const na = A(() => {
|
|
92
|
+
if (!u || G.length === 0) U(u);
|
|
90
93
|
else {
|
|
91
|
-
const a = u.filter((r) =>
|
|
94
|
+
const a = u.filter((r) => G.every((e) => e.value && F([e.value]).length > 0 ? sa(F([r[e.filter]]), F([e.value]).map((l) => l.value)).length > 0 : !0));
|
|
92
95
|
U(a);
|
|
93
96
|
}
|
|
94
97
|
});
|
|
95
98
|
w(() => {
|
|
96
99
|
na();
|
|
97
|
-
}, [
|
|
98
|
-
v &&
|
|
100
|
+
}, [G, u]), w(() => {
|
|
101
|
+
v && y(P(v, o));
|
|
99
102
|
}, [v, o]);
|
|
100
|
-
const ra =
|
|
101
|
-
|
|
103
|
+
const ra = A(() => {
|
|
104
|
+
p?.column && E && ia(X(E, p.column).filter((a) => !p?.excludeValues?.includes(`${a}`)).map((a) => ({
|
|
102
105
|
value: a,
|
|
103
106
|
label: a
|
|
104
107
|
})));
|
|
105
108
|
});
|
|
106
109
|
w(() => {
|
|
107
110
|
ra();
|
|
108
|
-
}, [
|
|
111
|
+
}, [p]), w(() => {
|
|
109
112
|
ua(W.current, o) || (I(o), W.current = o);
|
|
110
113
|
}, [o]);
|
|
111
114
|
const T = (a, r) => {
|
|
@@ -113,23 +116,23 @@ function Ea(s) {
|
|
|
113
116
|
...l,
|
|
114
117
|
value: r
|
|
115
118
|
} : l));
|
|
116
|
-
}, oa = u ?
|
|
117
|
-
return /* @__PURE__ */ t.jsx(
|
|
118
|
-
|
|
119
|
-
title:
|
|
120
|
-
description:
|
|
119
|
+
}, oa = u ? va(x ? Ia(Y(u, k || []), x.keyColumn, x.aggregationColumnsSetting) : Y(u, k || []), C, C === "lineChartWithConfidenceInterval" && m ? Va(m) : m) : void 0;
|
|
120
|
+
return /* @__PURE__ */ t.jsx(ha, { className: n?.classNames?.graphContainer, style: n?.styles?.graphContainer, id: n?.graphID, ref: z, "aria-label": n?.ariaLabel, backgroundColor: n?.backgroundColor ?? !1, theme: n?.theme || "light", language: n?.language || "en", width: n?.width, height: n?.height, padding: n?.padding, minHeight: n?.minHeight, relativeHeight: n?.relativeHeight, children: u || wa.filter((a) => a.geoHubMapPresentation).map((a) => a.graphID).indexOf(C) !== -1 ? /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
|
|
121
|
+
g?.graphTitle || g?.graphDescription || n?.graphTitle || n?.graphDescription || n?.graphDownload || n?.dataDownload ? /* @__PURE__ */ t.jsx(ba, { styles: {
|
|
122
|
+
title: g?.styles?.title || n?.styles?.title,
|
|
123
|
+
description: g?.styles?.description || n?.styles?.description
|
|
121
124
|
}, classNames: {
|
|
122
|
-
title:
|
|
123
|
-
description:
|
|
124
|
-
}, graphTitle:
|
|
125
|
-
|
|
125
|
+
title: g?.classNames?.title || n?.classNames?.title,
|
|
126
|
+
description: g?.classNames?.description || n?.classNames?.description
|
|
127
|
+
}, graphTitle: g?.graphTitle || n?.graphTitle, graphDescription: g?.graphDescription || n?.graphDescription, width: g?.width || n?.width, graphDownload: n?.graphDownload ? z : void 0, dataDownload: n?.dataDownload && u && u.length > 0 ? u : null }) : null,
|
|
128
|
+
G.length !== 0 || (v || []).length !== 0 || (L || []).length !== 0 || p ? /* @__PURE__ */ t.jsxs("div", { className: "flex flex-wrap items-start gap-x-4 gap-y-0 w-full", children: [
|
|
126
129
|
L?.map((a, r) => /* @__PURE__ */ t.jsxs("div", { style: {
|
|
127
130
|
width: a.width || `calc(${100 / h}% - ${(h - 1) / h}rem)`,
|
|
128
131
|
flexGrow: a.width ? 0 : 1,
|
|
129
132
|
flexShrink: a.ui !== "radio" || a.width ? 0 : 1,
|
|
130
133
|
minWidth: "240px"
|
|
131
134
|
}, className: "pb-4", children: [
|
|
132
|
-
/* @__PURE__ */ t.jsx(
|
|
135
|
+
/* @__PURE__ */ t.jsx(R, { className: "mb-2", children: a.label || "Graph by" }),
|
|
133
136
|
a.ui !== "radio" ? /* @__PURE__ */ t.jsx(
|
|
134
137
|
V,
|
|
135
138
|
{
|
|
@@ -150,12 +153,12 @@ function Ea(s) {
|
|
|
150
153
|
value: a.options[0].label
|
|
151
154
|
},
|
|
152
155
|
onChange: (e) => {
|
|
153
|
-
|
|
156
|
+
y(e?.graphSettings || {}), I(e?.dataConfiguration);
|
|
154
157
|
}
|
|
155
158
|
}
|
|
156
159
|
) : /* @__PURE__ */ t.jsx(H, { defaultValue: a.defaultValue?.label || a.options[0].label, variant: c, onValueChange: (e) => {
|
|
157
160
|
const l = a.options[a.options.findIndex((f) => f.label === e)];
|
|
158
|
-
|
|
161
|
+
y(l.graphSettings || {}), I(l.dataConfiguration);
|
|
159
162
|
}, children: a.options.map((e, l) => /* @__PURE__ */ t.jsx(O, { label: e.label, value: e.label }, l)) })
|
|
160
163
|
] }, r)),
|
|
161
164
|
v?.map((a, r) => /* @__PURE__ */ t.jsxs("div", { style: {
|
|
@@ -164,8 +167,8 @@ function Ea(s) {
|
|
|
164
167
|
flexShrink: a.ui !== "radio" || a.width ? 0 : 1,
|
|
165
168
|
minWidth: "240px"
|
|
166
169
|
}, className: "pb-4", children: [
|
|
167
|
-
/* @__PURE__ */ t.jsx(
|
|
168
|
-
|
|
170
|
+
/* @__PURE__ */ t.jsx(R, { className: "mb-2", children: a.label || `Visualize ${a.chartConfigId} by` }),
|
|
171
|
+
xa(a.chartConfigId, m || []) ? a.ui !== "radio" ? /* @__PURE__ */ t.jsx(
|
|
169
172
|
V,
|
|
170
173
|
{
|
|
171
174
|
options: a.allowedColumnIds,
|
|
@@ -175,7 +178,7 @@ function Ea(s) {
|
|
|
175
178
|
variant: c,
|
|
176
179
|
controlShouldRenderValue: !0,
|
|
177
180
|
defaultValue: o ? o[o.findIndex((e) => e.chartConfigId === a.chartConfigId)].columnId.map((e) => a.allowedColumnIds[a.allowedColumnIds.findIndex((l) => l.value === e)]) : void 0,
|
|
178
|
-
filterOption: M(
|
|
181
|
+
filterOption: M($),
|
|
179
182
|
onChange: (e) => {
|
|
180
183
|
const l = {
|
|
181
184
|
columnId: (e || []).map(
|
|
@@ -208,7 +211,7 @@ function Ea(s) {
|
|
|
208
211
|
columnId: e?.value,
|
|
209
212
|
chartConfigId: a.chartConfigId
|
|
210
213
|
}, f = m?.map((d) => d.chartConfigId === l.chartConfigId ? l : d);
|
|
211
|
-
|
|
214
|
+
y(P(v, f)), I(f);
|
|
212
215
|
}
|
|
213
216
|
}
|
|
214
217
|
) : /* @__PURE__ */ t.jsx(H, { variant: c, defaultValue: o ? a.allowedColumnIds[a.allowedColumnIds.findIndex((e) => e.value === o[o.findIndex((l) => l.chartConfigId === a.chartConfigId)].columnId)].label : "", onValueChange: (e) => {
|
|
@@ -216,22 +219,22 @@ function Ea(s) {
|
|
|
216
219
|
columnId: a.allowedColumnIds[a.allowedColumnIds.findIndex((N) => N.label === e)].value,
|
|
217
220
|
chartConfigId: a.chartConfigId
|
|
218
221
|
}, d = m?.map((N) => N.chartConfigId === f.chartConfigId ? f : N);
|
|
219
|
-
|
|
222
|
+
y(P(v, d)), I(d);
|
|
220
223
|
}, children: a.allowedColumnIds.map((e, l) => /* @__PURE__ */ t.jsx(O, { label: e.label, value: e.label }, l)) })
|
|
221
224
|
] }, r)),
|
|
222
|
-
|
|
225
|
+
G?.map((a, r) => /* @__PURE__ */ t.jsxs("div", { style: {
|
|
223
226
|
width: a.width || `calc(${100 / h}% - ${(h - 1) / h}rem)`,
|
|
224
227
|
flexGrow: a.width ? 0 : 1,
|
|
225
228
|
flexShrink: 0,
|
|
226
229
|
minWidth: "240px"
|
|
227
230
|
}, className: "pb-4", children: [
|
|
228
|
-
/* @__PURE__ */ t.jsx(
|
|
229
|
-
a.singleSelect ? a.ui !== "radio" ? /* @__PURE__ */ t.jsx(V, { options: a.availableValues, variant: c, isClearable: a.clearable === void 0 ? !0 : a.clearable, isSearchable: !0, controlShouldRenderValue: !0, filterOption: M(
|
|
231
|
+
/* @__PURE__ */ t.jsx(R, { className: "mb-2", children: a.label }),
|
|
232
|
+
a.singleSelect ? a.ui !== "radio" ? /* @__PURE__ */ t.jsx(V, { options: a.availableValues, variant: c, isClearable: a.clearable === void 0 ? !0 : a.clearable, isSearchable: !0, controlShouldRenderValue: !0, filterOption: M($), onChange: (e) => {
|
|
230
233
|
T(a.filter, e);
|
|
231
234
|
}, value: a.value, defaultValue: a.defaultValue }) : /* @__PURE__ */ t.jsx(H, { variant: c, defaultValue: a.defaultValue.value, onValueChange: (e) => {
|
|
232
235
|
T(a.filter, a.availableValues.filter((l) => l.value === e));
|
|
233
236
|
}, children: a.availableValues.map((e, l) => /* @__PURE__ */ t.jsx(O, { label: `${e.label}`, value: `${e.value}` }, l)) }) : /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
|
|
234
|
-
a.ui !== "radio" ? /* @__PURE__ */ t.jsx(V, { options: a.availableValues, variant: c, size: "sm", isMulti: !0, isClearable: a.clearable === void 0 ? !0 : a.clearable, isSearchable: !0, controlShouldRenderValue: !0, filterOption: M(
|
|
237
|
+
a.ui !== "radio" ? /* @__PURE__ */ t.jsx(V, { options: a.availableValues, variant: c, size: "sm", isMulti: !0, isClearable: a.clearable === void 0 ? !0 : a.clearable, isSearchable: !0, controlShouldRenderValue: !0, filterOption: M($), onChange: (e) => {
|
|
235
238
|
T(a.filter, e);
|
|
236
239
|
}, value: a.value, defaultValue: a.defaultValue }) : /* @__PURE__ */ t.jsx(K, { variant: c, defaultValue: a.defaultValue ? a.defaultValue.map((e) => `${e.value}`) : [], value: a.value ? a.value.map((e) => `${e.value}`) : void 0, onValueChange: (e) => {
|
|
237
240
|
T(a.filter, a.availableValues.filter((l) => e.indexOf(`${l.value}`) !== -1));
|
|
@@ -241,13 +244,13 @@ function Ea(s) {
|
|
|
241
244
|
}, children: "Select all options" }) : null
|
|
242
245
|
] })
|
|
243
246
|
] }, r)),
|
|
244
|
-
|
|
245
|
-
width:
|
|
246
|
-
flexGrow:
|
|
247
|
+
p ? /* @__PURE__ */ t.jsxs("div", { style: {
|
|
248
|
+
width: p.width || `calc(${100 / h}% - ${(h - 1) / h}rem)`,
|
|
249
|
+
flexGrow: p.width ? 0 : 1,
|
|
247
250
|
flexShrink: 0,
|
|
248
251
|
minWidth: "240px"
|
|
249
252
|
}, className: "pb-4", children: [
|
|
250
|
-
/* @__PURE__ */ t.jsx(
|
|
253
|
+
/* @__PURE__ */ t.jsx(R, { className: "mb-2", children: p.label || "Highlight data" }),
|
|
251
254
|
/* @__PURE__ */ t.jsx(
|
|
252
255
|
V,
|
|
253
256
|
{
|
|
@@ -258,7 +261,7 @@ function Ea(s) {
|
|
|
258
261
|
isClearable: !0,
|
|
259
262
|
isSearchable: !0,
|
|
260
263
|
controlShouldRenderValue: !0,
|
|
261
|
-
filterOption: M(
|
|
264
|
+
filterOption: M($),
|
|
262
265
|
onChange: (a) => {
|
|
263
266
|
la(a?.map((r) => r.value));
|
|
264
267
|
},
|
|
@@ -266,7 +269,7 @@ function Ea(s) {
|
|
|
266
269
|
label: a,
|
|
267
270
|
value: a
|
|
268
271
|
})),
|
|
269
|
-
defaultValue:
|
|
272
|
+
defaultValue: p.defaultValues?.map((a) => ({
|
|
270
273
|
label: a,
|
|
271
274
|
value: a
|
|
272
275
|
}))
|
|
@@ -274,9 +277,9 @@ function Ea(s) {
|
|
|
274
277
|
)
|
|
275
278
|
] }) : null
|
|
276
279
|
] }) : null,
|
|
277
|
-
/* @__PURE__ */ t.jsx(
|
|
280
|
+
/* @__PURE__ */ t.jsx(ca, { graph: C, graphData: oa, graphDataConfiguration: m, debugMode: S, readableHeader: _ || [], updateFilters: aa, settings: {
|
|
278
281
|
...n || {},
|
|
279
|
-
...
|
|
282
|
+
...g,
|
|
280
283
|
graphTitle: void 0,
|
|
281
284
|
graphDescription: void 0,
|
|
282
285
|
graphDownload: !1,
|
|
@@ -294,9 +297,9 @@ function Ea(s) {
|
|
|
294
297
|
highlightedLines: j?.map((a) => a)
|
|
295
298
|
} : {}
|
|
296
299
|
} })
|
|
297
|
-
] }) : /* @__PURE__ */ t.jsx("div", { className: "w-full flex justify-center p-4", children: /* @__PURE__ */ t.jsx(
|
|
300
|
+
] }) : /* @__PURE__ */ t.jsx("div", { className: "w-full flex justify-center p-4", children: /* @__PURE__ */ t.jsx(da, {}) }) });
|
|
298
301
|
}
|
|
299
302
|
export {
|
|
300
|
-
|
|
303
|
+
Wa as SingleGraphDashboard
|
|
301
304
|
};
|
|
302
305
|
//# sourceMappingURL=SingleGraphDashboard.js.map
|