@undp/data-viz 1.5.9 → 2.0.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.d.ts +1 -0
- package/dist/AreaChart.js +420 -520
- package/dist/AreaChart.js.map +1 -1
- package/dist/Axis-CRyfcLjc.js +32 -0
- package/dist/Axis-CRyfcLjc.js.map +1 -0
- package/dist/Axis-DxRV2yMi.cjs +2 -0
- package/dist/Axis-DxRV2yMi.cjs.map +1 -0
- package/dist/AxisTitle-jeI7am8o.js +29 -0
- package/dist/AxisTitle-jeI7am8o.js.map +1 -0
- package/dist/AxisTitle-sS5bLLR7.cjs +2 -0
- package/dist/AxisTitle-sS5bLLR7.cjs.map +1 -0
- package/dist/BarGraph.cjs +1 -1
- package/dist/BarGraph.cjs.map +1 -1
- package/dist/BarGraph.d.ts +1 -0
- package/dist/BarGraph.js +2188 -4045
- package/dist/BarGraph.js.map +1 -1
- package/dist/BasicStatCard.cjs +1 -1
- package/dist/BasicStatCard.cjs.map +1 -1
- package/dist/BasicStatCard.d.ts +1 -0
- package/dist/BasicStatCard.js +120 -186
- package/dist/BasicStatCard.js.map +1 -1
- package/dist/BeeSwarmChart.cjs +1 -1
- package/dist/BeeSwarmChart.cjs.map +1 -1
- package/dist/BeeSwarmChart.d.ts +5 -0
- package/dist/BeeSwarmChart.js +500 -1018
- package/dist/BeeSwarmChart.js.map +1 -1
- package/dist/BiVariateChoroplethMap.cjs +1 -1
- package/dist/BiVariateChoroplethMap.cjs.map +1 -1
- package/dist/BiVariateChoroplethMap.d.ts +1 -0
- package/dist/BiVariateChoroplethMap.js +458 -699
- package/dist/BiVariateChoroplethMap.js.map +1 -1
- package/dist/BulletChart.cjs +1 -1
- package/dist/BulletChart.cjs.map +1 -1
- package/dist/BulletChart.d.ts +1 -0
- package/dist/BulletChart.js +863 -1414
- package/dist/BulletChart.js.map +1 -1
- package/dist/ButterflyChart.cjs +1 -1
- package/dist/ButterflyChart.cjs.map +1 -1
- package/dist/ButterflyChart.d.ts +1 -0
- package/dist/ButterflyChart.js +474 -684
- package/dist/ButterflyChart.js.map +1 -1
- package/dist/ChoroplethMap.cjs +1 -1
- package/dist/ChoroplethMap.cjs.map +1 -1
- package/dist/ChoroplethMap.d.ts +1 -0
- package/dist/ChoroplethMap.js +466 -720
- package/dist/ChoroplethMap.js.map +1 -1
- package/dist/CirclePackingGraph.cjs +1 -1
- package/dist/CirclePackingGraph.d.ts +1 -0
- package/dist/CirclePackingGraph.js +5 -4
- package/dist/CirclePackingGraph.js.map +1 -1
- package/dist/ColorLegend.cjs +1 -1
- package/dist/ColorLegend.cjs.map +1 -1
- package/dist/ColorLegend.js +57 -44
- package/dist/ColorLegend.js.map +1 -1
- package/dist/ColorLegendWithMouseOver.cjs +1 -1
- package/dist/ColorLegendWithMouseOver.cjs.map +1 -1
- package/dist/ColorLegendWithMouseOver.js +60 -65
- package/dist/ColorLegendWithMouseOver.js.map +1 -1
- package/dist/Colors.cjs.map +1 -1
- package/dist/Colors.js +44 -430
- package/dist/Colors.js.map +1 -1
- package/dist/CopyTextButton.cjs +3 -3
- package/dist/CopyTextButton.cjs.map +1 -1
- package/dist/CopyTextButton.js +537 -455
- package/dist/CopyTextButton.js.map +1 -1
- package/dist/CsvDownloadButton.cjs +7 -7
- package/dist/CsvDownloadButton.cjs.map +1 -1
- package/dist/CsvDownloadButton.js +442 -447
- package/dist/CsvDownloadButton.js.map +1 -1
- package/dist/DataCards.cjs +5 -5
- package/dist/DataCards.cjs.map +1 -1
- package/dist/DataCards.d.ts +1 -0
- package/dist/DataCards.js +488 -581
- package/dist/DataCards.js.map +1 -1
- package/dist/DataTable.cjs +1 -1
- package/dist/DataTable.cjs.map +1 -1
- package/dist/DataTable.d.ts +1 -0
- package/dist/DataTable.js +183 -326
- package/dist/DataTable.js.map +1 -1
- package/dist/DifferenceLineChart.cjs +1 -1
- package/dist/DifferenceLineChart.cjs.map +1 -1
- package/dist/DifferenceLineChart.d.ts +1 -0
- package/dist/DifferenceLineChart.js +729 -794
- package/dist/DifferenceLineChart.js.map +1 -1
- package/dist/DonutChart.cjs +1 -1
- package/dist/DonutChart.cjs.map +1 -1
- package/dist/DonutChart.d.ts +1 -4
- package/dist/DonutChart.js +260 -444
- package/dist/DonutChart.js.map +1 -1
- package/dist/DotDensityMap.cjs +1 -1
- package/dist/DotDensityMap.cjs.map +1 -1
- package/dist/DotDensityMap.d.ts +1 -0
- package/dist/DotDensityMap.js +387 -574
- package/dist/DotDensityMap.js.map +1 -1
- package/dist/{DropdownSelect-6kjXM6oW.js → DropdownSelect-BbdPQa2k.js} +1401 -1374
- package/dist/DropdownSelect-BbdPQa2k.js.map +1 -0
- package/dist/DropdownSelect-Doz3mCrM.cjs +29 -0
- package/dist/DropdownSelect-Doz3mCrM.cjs.map +1 -0
- package/dist/DualAxisLineChart.cjs +1 -1
- package/dist/DualAxisLineChart.cjs.map +1 -1
- package/dist/DualAxisLineChart.d.ts +1 -0
- package/dist/DualAxisLineChart.js +617 -712
- package/dist/DualAxisLineChart.js.map +1 -1
- package/dist/DumbbellChart.cjs +1 -1
- package/dist/DumbbellChart.cjs.map +1 -1
- package/dist/DumbbellChart.d.ts +1 -0
- package/dist/DumbbellChart.js +789 -1499
- package/dist/DumbbellChart.js.map +1 -1
- package/dist/EmptyState-BZo1BbAn.js +15 -0
- package/dist/{EmptyState-36lXXyui.js.map → EmptyState-BZo1BbAn.js.map} +1 -1
- package/dist/EmptyState-sAEZ_5rU.cjs +2 -0
- package/dist/{EmptyState-B8IpKGcL.cjs.map → EmptyState-sAEZ_5rU.cjs.map} +1 -1
- package/dist/ExcelDownloadButton.cjs +1 -1
- package/dist/ExcelDownloadButton.cjs.map +1 -1
- package/dist/ExcelDownloadButton.js +20 -24
- package/dist/ExcelDownloadButton.js.map +1 -1
- package/dist/FootNote.cjs +1 -1
- package/dist/FootNote.cjs.map +1 -1
- package/dist/FootNote.js +26 -17
- package/dist/FootNote.js.map +1 -1
- package/dist/GeoHubCompareMaps.cjs +1 -1
- package/dist/GeoHubCompareMaps.cjs.map +1 -1
- package/dist/GeoHubCompareMaps.d.ts +1 -0
- package/dist/GeoHubCompareMaps.js +265 -340
- package/dist/GeoHubCompareMaps.js.map +1 -1
- package/dist/GeoHubMap.cjs +1 -1
- package/dist/GeoHubMap.cjs.map +1 -1
- package/dist/GeoHubMap.d.ts +1 -0
- package/dist/GeoHubMap.js +214 -379
- package/dist/GeoHubMap.js.map +1 -1
- package/dist/GeoHubMapWithLayerSelection.cjs +1 -1
- package/dist/GeoHubMapWithLayerSelection.cjs.map +1 -1
- package/dist/GeoHubMapWithLayerSelection.d.ts +1 -0
- package/dist/GeoHubMapWithLayerSelection.js +192 -278
- package/dist/GeoHubMapWithLayerSelection.js.map +1 -1
- package/dist/GraphContainer-CRqzdKu2.js +78 -0
- package/dist/GraphContainer-CRqzdKu2.js.map +1 -0
- package/dist/GraphContainer-d8A46BK2.cjs +2 -0
- package/dist/GraphContainer-d8A46BK2.cjs.map +1 -0
- package/dist/GraphDescription.cjs +1 -1
- package/dist/GraphDescription.cjs.map +1 -1
- package/dist/GraphDescription.js +23 -17
- package/dist/GraphDescription.js.map +1 -1
- package/dist/GraphEl-BkyLYXG5.cjs +2 -0
- package/dist/GraphEl-BkyLYXG5.cjs.map +1 -0
- package/dist/{GraphEl-2IiUDxjR.js → GraphEl-DzRon4cb.js} +181 -202
- package/dist/GraphEl-DzRon4cb.js.map +1 -0
- package/dist/GraphFooter.cjs +1 -1
- package/dist/GraphFooter.cjs.map +1 -1
- package/dist/GraphFooter.js +28 -18
- package/dist/GraphFooter.js.map +1 -1
- package/dist/GraphHeader.cjs +1 -1
- package/dist/GraphHeader.cjs.map +1 -1
- package/dist/GraphHeader.d.ts +2 -1
- package/dist/GraphHeader.js +45 -59
- package/dist/GraphHeader.js.map +1 -1
- package/dist/GraphTitle.cjs +1 -1
- package/dist/GraphTitle.cjs.map +1 -1
- package/dist/GraphTitle.js +29 -24
- package/dist/GraphTitle.js.map +1 -1
- package/dist/GriddedGraphs.cjs +1 -1
- package/dist/GriddedGraphs.cjs.map +1 -1
- package/dist/GriddedGraphs.d.ts +1 -0
- package/dist/GriddedGraphs.js +216 -450
- package/dist/GriddedGraphs.js.map +1 -1
- package/dist/GriddedGraphsFromConfig.cjs +1 -1
- package/dist/GriddedGraphsFromConfig.cjs.map +1 -1
- package/dist/GriddedGraphsFromConfig.d.ts +1 -0
- package/dist/GriddedGraphsFromConfig.js +22 -36
- package/dist/GriddedGraphsFromConfig.js.map +1 -1
- package/dist/HeatMap.cjs +1 -1
- package/dist/HeatMap.cjs.map +1 -1
- package/dist/HeatMap.d.ts +1 -0
- package/dist/HeatMap.js +278 -446
- package/dist/HeatMap.js.map +1 -1
- package/dist/Histogram.cjs +1 -1
- package/dist/Histogram.cjs.map +1 -1
- package/dist/Histogram.d.ts +1 -0
- package/dist/Histogram.js +154 -264
- package/dist/Histogram.js.map +1 -1
- package/dist/ImageDownloadButton.cjs +1 -1
- package/dist/ImageDownloadButton.cjs.map +1 -1
- package/dist/ImageDownloadButton.d.ts +2 -1
- package/dist/ImageDownloadButton.js +21 -25
- package/dist/ImageDownloadButton.js.map +1 -1
- package/dist/LineChartWithConfidenceInterval.cjs +1 -1
- package/dist/LineChartWithConfidenceInterval.cjs.map +1 -1
- package/dist/LineChartWithConfidenceInterval.d.ts +1 -0
- package/dist/LineChartWithConfidenceInterval.js +674 -825
- package/dist/LineChartWithConfidenceInterval.js.map +1 -1
- package/dist/LinearColorLegend.cjs +1 -1
- package/dist/LinearColorLegend.cjs.map +1 -1
- package/dist/LinearColorLegend.js +49 -30
- package/dist/LinearColorLegend.js.map +1 -1
- package/dist/Modal-DGcuAHyK.js +1047 -0
- package/dist/Modal-DGcuAHyK.js.map +1 -0
- package/dist/Modal-JW_IExO3.cjs +46 -0
- package/dist/Modal-JW_IExO3.cjs.map +1 -0
- package/dist/MultiGraphDashboard.cjs +1 -1
- package/dist/MultiGraphDashboard.cjs.map +1 -1
- package/dist/MultiGraphDashboard.d.ts +1 -0
- package/dist/MultiGraphDashboard.js +122 -290
- package/dist/MultiGraphDashboard.js.map +1 -1
- package/dist/MultiGraphDashboardFromConfig.cjs +1 -1
- package/dist/MultiGraphDashboardFromConfig.cjs.map +1 -1
- package/dist/MultiGraphDashboardFromConfig.d.ts +1 -0
- package/dist/MultiGraphDashboardFromConfig.js +22 -31
- package/dist/MultiGraphDashboardFromConfig.js.map +1 -1
- package/dist/MultiGraphDashboardWideToLongFormat.cjs +1 -1
- package/dist/MultiGraphDashboardWideToLongFormat.cjs.map +1 -1
- package/dist/MultiGraphDashboardWideToLongFormat.d.ts +1 -0
- package/dist/MultiGraphDashboardWideToLongFormat.js +137 -223
- package/dist/MultiGraphDashboardWideToLongFormat.js.map +1 -1
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.cjs +1 -1
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.cjs.map +1 -1
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.d.ts +1 -0
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js +25 -27
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js.map +1 -1
- package/dist/MultiLineAltChart.cjs +1 -1
- package/dist/MultiLineAltChart.cjs.map +1 -1
- package/dist/MultiLineAltChart.d.ts +1 -0
- package/dist/MultiLineAltChart.js +581 -659
- package/dist/MultiLineAltChart.js.map +1 -1
- package/dist/MultiLineChart.cjs +1 -1
- package/dist/MultiLineChart.cjs.map +1 -1
- package/dist/MultiLineChart.d.ts +1 -0
- package/dist/MultiLineChart.js +617 -725
- package/dist/MultiLineChart.js.map +1 -1
- package/dist/ParetoChart.cjs +1 -1
- package/dist/ParetoChart.cjs.map +1 -1
- package/dist/ParetoChart.d.ts +1 -0
- package/dist/ParetoChart.js +531 -635
- package/dist/ParetoChart.js.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.cjs.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +1 -0
- package/dist/PerformanceIntensiveMultiGraphDashboard.js +147 -338
- package/dist/PerformanceIntensiveMultiGraphDashboard.js.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +1 -0
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js +22 -31
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js.map +1 -1
- package/dist/PerformanceIntensiveScrollStory.cjs +1 -1
- package/dist/PerformanceIntensiveScrollStory.cjs.map +1 -1
- package/dist/PerformanceIntensiveScrollStory.d.ts +1 -0
- package/dist/PerformanceIntensiveScrollStory.js +93 -114
- package/dist/PerformanceIntensiveScrollStory.js.map +1 -1
- package/dist/RadarChart.cjs +1 -1
- package/dist/RadarChart.cjs.map +1 -1
- package/dist/RadarChart.d.ts +1 -0
- package/dist/RadarChart.js +426 -575
- package/dist/RadarChart.js.map +1 -1
- package/dist/ReferenceLine-2XCwHXQ4.js +162 -0
- package/dist/ReferenceLine-2XCwHXQ4.js.map +1 -0
- package/dist/ReferenceLine-BH0qdf4R.cjs +2 -0
- package/dist/ReferenceLine-BH0qdf4R.cjs.map +1 -0
- package/dist/RegressionLine-BOTTNSrr.cjs +2 -0
- package/dist/RegressionLine-BOTTNSrr.cjs.map +1 -0
- package/dist/RegressionLine-DAcY2DjT.js +87 -0
- package/dist/RegressionLine-DAcY2DjT.js.map +1 -0
- package/dist/SVGDownloadButton.cjs +1 -1
- package/dist/SVGDownloadButton.cjs.map +1 -1
- package/dist/SVGDownloadButton.js +21 -25
- package/dist/SVGDownloadButton.js.map +1 -1
- package/dist/SankeyChart.cjs +1 -1
- package/dist/SankeyChart.cjs.map +1 -1
- package/dist/SankeyChart.d.ts +1 -0
- package/dist/SankeyChart.js +665 -854
- package/dist/SankeyChart.js.map +1 -1
- package/dist/ScatterPlot.cjs +1 -1
- package/dist/ScatterPlot.cjs.map +1 -1
- package/dist/ScatterPlot.d.ts +1 -0
- package/dist/ScatterPlot.js +675 -815
- package/dist/ScatterPlot.js.map +1 -1
- package/dist/ScrollStory.cjs +1 -1
- package/dist/ScrollStory.cjs.map +1 -1
- package/dist/ScrollStory.d.ts +1 -0
- package/dist/ScrollStory.js +85 -97
- package/dist/ScrollStory.js.map +1 -1
- package/dist/SimpleLineChart.cjs +1 -1
- package/dist/SimpleLineChart.cjs.map +1 -1
- package/dist/SimpleLineChart.d.ts +1 -0
- package/dist/SimpleLineChart.js +504 -613
- package/dist/SimpleLineChart.js.map +1 -1
- package/dist/SingleGraphDashboard.cjs +1 -1
- package/dist/SingleGraphDashboard.cjs.map +1 -1
- package/dist/SingleGraphDashboard.d.ts +2 -1
- package/dist/SingleGraphDashboard.js +279 -507
- package/dist/SingleGraphDashboard.js.map +1 -1
- package/dist/SingleGraphDashboardFromConfig.cjs +1 -1
- package/dist/SingleGraphDashboardFromConfig.cjs.map +1 -1
- package/dist/SingleGraphDashboardFromConfig.d.ts +2 -1
- package/dist/SingleGraphDashboardFromConfig.js +25 -31
- package/dist/SingleGraphDashboardFromConfig.js.map +1 -1
- package/dist/SingleGraphDashboardGeoHubMaps.cjs +1 -1
- package/dist/SingleGraphDashboardGeoHubMaps.cjs.map +1 -1
- package/dist/SingleGraphDashboardGeoHubMaps.d.ts +1 -0
- package/dist/SingleGraphDashboardGeoHubMaps.js +146 -168
- package/dist/SingleGraphDashboardGeoHubMaps.js.map +1 -1
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs +1 -1
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs.map +1 -1
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.d.ts +1 -0
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js +25 -21
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.d.ts +1 -0
- package/dist/SingleGraphDashboardThreeDGraphs.js +357 -591
- package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs +1 -1
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +1 -0
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js +25 -31
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js.map +1 -1
- package/dist/SlopeChart.cjs +1 -1
- package/dist/SlopeChart.cjs.map +1 -1
- package/dist/SlopeChart.d.ts +1 -0
- package/dist/SlopeChart.js +539 -573
- package/dist/SlopeChart.js.map +1 -1
- package/dist/Source-DYMJRrsq.cjs +2 -0
- package/dist/Source-DYMJRrsq.cjs.map +1 -0
- package/dist/Source-DwTHB8fn.js +78 -0
- package/dist/Source-DwTHB8fn.js.map +1 -0
- package/dist/Source.cjs +1 -1
- package/dist/Source.cjs.map +1 -1
- package/dist/Source.js +4 -38
- package/dist/Source.js.map +1 -1
- package/dist/SparkLine.cjs +1 -1
- package/dist/SparkLine.cjs.map +1 -1
- package/dist/SparkLine.d.ts +1 -0
- package/dist/SparkLine.js +286 -314
- package/dist/SparkLine.js.map +1 -1
- package/dist/Spinner-D7rnnwnA.js +47 -0
- package/dist/Spinner-D7rnnwnA.js.map +1 -0
- package/dist/Spinner-DRMBUsX7.cjs +2 -0
- package/dist/Spinner-DRMBUsX7.cjs.map +1 -0
- package/dist/StatCardFromData.cjs +1 -1
- package/dist/StatCardFromData.cjs.map +1 -1
- package/dist/StatCardFromData.d.ts +1 -0
- package/dist/StatCardFromData.js +163 -243
- package/dist/StatCardFromData.js.map +1 -1
- package/dist/StripChart.cjs +1 -1
- package/dist/StripChart.cjs.map +1 -1
- package/dist/StripChart.d.ts +1 -0
- package/dist/StripChart.js +665 -983
- package/dist/StripChart.js.map +1 -1
- package/dist/ThreeDGlobe.cjs +1 -1
- package/dist/ThreeDGlobe.cjs.map +1 -1
- package/dist/ThreeDGlobe.d.ts +1 -0
- package/dist/ThreeDGlobe.js +356 -519
- package/dist/ThreeDGlobe.js.map +1 -1
- package/dist/ThresholdColorLegendWithMouseOver.cjs +1 -1
- package/dist/ThresholdColorLegendWithMouseOver.cjs.map +1 -1
- package/dist/ThresholdColorLegendWithMouseOver.js +96 -126
- package/dist/ThresholdColorLegendWithMouseOver.js.map +1 -1
- package/dist/Tooltip-4dJo4_AF.cjs +2 -0
- package/dist/Tooltip-4dJo4_AF.cjs.map +1 -0
- package/dist/Tooltip-CwWUegPB.js +43 -0
- package/dist/Tooltip-CwWUegPB.js.map +1 -0
- package/dist/TreeMapGraph.cjs +1 -1
- package/dist/TreeMapGraph.cjs.map +1 -1
- package/dist/TreeMapGraph.d.ts +1 -0
- package/dist/TreeMapGraph.js +479 -617
- package/dist/TreeMapGraph.js.map +1 -1
- package/dist/Types.d.ts +1 -0
- package/dist/Typography-DX7PlgQU.cjs +2 -0
- package/dist/Typography-DX7PlgQU.cjs.map +1 -0
- package/dist/Typography-PxtFcnJb.js +142 -0
- package/dist/Typography-PxtFcnJb.js.map +1 -0
- package/dist/UnitChart.cjs +1 -1
- package/dist/UnitChart.cjs.map +1 -1
- package/dist/UnitChart.d.ts +1 -0
- package/dist/UnitChart.js +160 -212
- package/dist/UnitChart.js.map +1 -1
- package/dist/XAxesLabels-D5X8jngD.cjs +2 -0
- package/dist/XAxesLabels-D5X8jngD.cjs.map +1 -0
- package/dist/XAxesLabels-DNO0KmjL.js +73 -0
- package/dist/XAxesLabels-DNO0KmjL.js.map +1 -0
- package/dist/XTicksAndGridLines-B6CELS7q.cjs +2 -0
- package/dist/XTicksAndGridLines-B6CELS7q.cjs.map +1 -0
- package/dist/XTicksAndGridLines-CObVFSm4.js +38 -0
- package/dist/XTicksAndGridLines-CObVFSm4.js.map +1 -0
- package/dist/YAxesLabels-DcS85Beo.cjs +2 -0
- package/dist/YAxesLabels-DcS85Beo.cjs.map +1 -0
- package/dist/YAxesLabels-Dnnng49-.js +70 -0
- package/dist/YAxesLabels-Dnnng49-.js.map +1 -0
- package/dist/YTicksAndGridLines-4pxTRlRK.cjs +2 -0
- package/dist/YTicksAndGridLines-4pxTRlRK.cjs.map +1 -0
- package/dist/YTicksAndGridLines-Blepl7XF.js +38 -0
- package/dist/YTicksAndGridLines-Blepl7XF.js.map +1 -0
- package/dist/{band-BEjh2CHI.js → band-CyHaVft5.js} +3 -3
- package/dist/{band-BEjh2CHI.js.map → band-CyHaVft5.js.map} +1 -1
- package/dist/{band-CAApY4Pd.cjs → band-VYfcZeJ2.cjs} +2 -2
- package/dist/{band-CAApY4Pd.cjs.map → band-VYfcZeJ2.cjs.map} +1 -1
- package/dist/checkIfMultiple-Y9iKaV_u.js +950 -0
- package/dist/checkIfMultiple-Y9iKaV_u.js.map +1 -0
- package/dist/checkIfMultiple-wg6hJLXy.cjs +12 -0
- package/dist/checkIfMultiple-wg6hJLXy.cjs.map +1 -0
- package/dist/customArea-BUhPiPT6.js +163 -0
- package/dist/{customArea-x4L4xwLl.js.map → customArea-BUhPiPT6.js.map} +1 -1
- package/dist/customArea-CMF5g-C3.cjs +2 -0
- package/dist/{customArea-1G1S78s_.cjs.map → customArea-CMF5g-C3.cjs.map} +1 -1
- package/dist/delaunay-C1uAf38t.js.map +1 -1
- package/dist/delaunay-rcy0HhZi.cjs.map +1 -1
- package/dist/{ensureCompleteData-DlmibgaI.js → ensureCompleteData-DNKEGRiP.js} +12 -32
- package/dist/{ensureCompleteData-DlmibgaI.js.map → ensureCompleteData-DNKEGRiP.js.map} +1 -1
- package/dist/{ensureCompleteData-DkQYPeDa.cjs → ensureCompleteData-I6nYmT8E.cjs} +2 -2
- package/dist/{ensureCompleteData-DkQYPeDa.cjs.map → ensureCompleteData-I6nYmT8E.cjs.map} +1 -1
- package/dist/{excelDownload-BOA-lskf.js → excelDownload-BEC1AyQW.js} +12 -2
- package/dist/{excelDownload-BOA-lskf.js.map → excelDownload-BEC1AyQW.js.map} +1 -1
- package/dist/excelDownload-BQpsCa62.cjs.map +1 -1
- package/dist/{fetchAndParseData-sapWbnYk.js → fetchAndParseData-BpqkBPQL.js} +15 -28
- package/dist/{fetchAndParseData-sapWbnYk.js.map → fetchAndParseData-BpqkBPQL.js.map} +1 -1
- package/dist/fetchAndParseData-l5HGMAEs.cjs +16 -0
- package/dist/{fetchAndParseData-Ba-_CgxS.cjs.map → fetchAndParseData-l5HGMAEs.cjs.map} +1 -1
- package/dist/fetchAndParseData.cjs +1 -1
- package/dist/fetchAndParseData.js +1 -1
- package/dist/{filterData-9nEcQ-Jp.js → filterData-DsAiFzKY.js} +3 -5
- package/dist/{filterData-9nEcQ-Jp.js.map → filterData-DsAiFzKY.js.map} +1 -1
- package/dist/{filterData-BoYadk0l.cjs → filterData-T5DQBE9b.cjs} +2 -2
- package/dist/{filterData-BoYadk0l.cjs.map → filterData-T5DQBE9b.cjs.map} +1 -1
- package/dist/generateRandomString-B5zBiJzS.cjs.map +1 -1
- package/dist/generateRandomString-za3IQGfQ.js.map +1 -1
- package/dist/{getCentroidCoordinates-Dfk6IqEG.js → getCentroidCoordinates-D7r34N4w.js} +2 -2
- package/dist/{getCentroidCoordinates-Dfk6IqEG.js.map → getCentroidCoordinates-D7r34N4w.js.map} +1 -1
- package/dist/{getCentroidCoordinates-DxTBqzp2.cjs → getCentroidCoordinates-Dng1HVjO.cjs} +2 -2
- package/dist/{getCentroidCoordinates-DxTBqzp2.cjs.map → getCentroidCoordinates-Dng1HVjO.cjs.map} +1 -1
- package/dist/getGraphList-BpEWn1Tk.js +227 -0
- package/dist/{getGraphList-DuColTJM.js.map → getGraphList-BpEWn1Tk.js.map} +1 -1
- package/dist/getGraphList-gf02xgT2.cjs.map +1 -1
- package/dist/getJenks-BbngDoBQ.js.map +1 -1
- package/dist/getJenks-GYmdwBqm.cjs.map +1 -1
- package/dist/getSchema.cjs.map +1 -1
- package/dist/getSchema.js +445 -231
- package/dist/getSchema.js.map +1 -1
- package/dist/getSliderMarks-BmADcPQt.cjs +6 -0
- package/dist/getSliderMarks-BmADcPQt.cjs.map +1 -0
- package/dist/getSliderMarks-HIDJ0_Cd.js +1033 -0
- package/dist/getSliderMarks-HIDJ0_Cd.js.map +1 -0
- package/dist/{getTextColorBasedOnBgColor-B6Nk2WBf.js → getTextColorBasedOnBgColor-CDY808zi.js} +11 -3
- package/dist/{getTextColorBasedOnBgColor-B6Nk2WBf.js.map → getTextColorBasedOnBgColor-CDY808zi.js.map} +1 -1
- package/dist/getTextColorBasedOnBgColor-nqY-bsM_.cjs.map +1 -1
- package/dist/{getUniqValue-DiCh_MOD.js → getUniqValue-BKHCm3zE.js} +2 -4
- package/dist/{getUniqValue-DiCh_MOD.js.map → getUniqValue-BKHCm3zE.js.map} +1 -1
- package/dist/getUniqValue-RViz8tTw.cjs.map +1 -1
- package/dist/{imageDownload-Dcci2LEy.js → imageDownload-BX6SILNZ.js} +4 -2
- package/dist/{imageDownload-Dcci2LEy.js.map → imageDownload-BX6SILNZ.js.map} +1 -1
- package/dist/imageDownload-CgDcm1Sj.cjs.map +1 -1
- package/dist/{index-DvVprvy6.js → index-BZQYSqar.js} +7 -7
- package/dist/{index-DvVprvy6.js.map → index-BZQYSqar.js.map} +1 -1
- package/dist/index-B_sAFsEV.cjs +2 -0
- package/dist/{index-BHe3wsWF.cjs.map → index-B_sAFsEV.cjs.map} +1 -1
- package/dist/index-BqfRwk1n.js +146 -0
- package/dist/index-BqfRwk1n.js.map +1 -0
- package/dist/{index-V_JXij1_.js → index-BuwmuDFJ.js} +3 -3
- package/dist/{index-V_JXij1_.js.map → index-BuwmuDFJ.js.map} +1 -1
- package/dist/index-CHPV5EwG-CTPQjnHt.cjs +84 -0
- package/dist/index-CHPV5EwG-CTPQjnHt.cjs.map +1 -0
- package/dist/{index-CHPV5EwG-DBWUSD9b.js → index-CHPV5EwG-Curnpaqc.js} +724 -625
- package/dist/index-CHPV5EwG-Curnpaqc.js.map +1 -0
- package/dist/index-Cno4Q0YE.cjs +2 -0
- package/dist/{index-CQ3e6Ewi.cjs.map → index-Cno4Q0YE.cjs.map} +1 -1
- package/dist/{index-Cw8sCyo_-BuI_jX5Z.js → index-Cw8sCyo_-B2hEKjzG.js} +16 -16
- package/dist/{index-Cw8sCyo_-BuI_jX5Z.js.map → index-Cw8sCyo_-B2hEKjzG.js.map} +1 -1
- package/dist/{index-Cw8sCyo_-gxT8ADyn.cjs → index-Cw8sCyo_-BrHiWiRF.cjs} +2 -2
- package/dist/{index-Cw8sCyo_-gxT8ADyn.cjs.map → index-Cw8sCyo_-BrHiWiRF.cjs.map} +1 -1
- package/dist/index-CyZ1lmi_.cjs +2 -0
- package/dist/{index-D72cOtq7.cjs.map → index-CyZ1lmi_.cjs.map} +1 -1
- package/dist/index-D491FEn1.js +184 -0
- package/dist/index-D491FEn1.js.map +1 -0
- package/dist/index-DG2bgAva.cjs +10 -0
- package/dist/index-DG2bgAva.cjs.map +1 -0
- package/dist/index-DRXx7m-C.cjs +2 -0
- package/dist/index-DRXx7m-C.cjs.map +1 -0
- package/dist/index-DoY3Ga3W.cjs +2 -0
- package/dist/index-DoY3Ga3W.cjs.map +1 -0
- package/dist/index-DxXnJ8Ti.cjs +2 -0
- package/dist/index-DxXnJ8Ti.cjs.map +1 -0
- package/dist/{index-Dzc_aaI9-BKklH89r.js → index-Dzc_aaI9-Bb7gobH_.js} +2 -2
- package/dist/{index-Dzc_aaI9-BKklH89r.js.map → index-Dzc_aaI9-Bb7gobH_.js.map} +1 -1
- package/dist/{index-Dzc_aaI9-RIk2GRHD.cjs → index-Dzc_aaI9-BmkfPMyc.cjs} +2 -2
- package/dist/{index-Dzc_aaI9-RIk2GRHD.cjs.map → index-Dzc_aaI9-BmkfPMyc.cjs.map} +1 -1
- package/dist/{index-9tDEUqOZ.js → index-GEsywGxz.js} +9 -9
- package/dist/index-GEsywGxz.js.map +1 -0
- package/dist/index-SKgJALZg.js +99 -0
- package/dist/{index-Bw_eHBVN.js.map → index-SKgJALZg.js.map} +1 -1
- package/dist/index-leTnKT2q.js +329 -0
- package/dist/index-leTnKT2q.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +10 -8
- package/dist/index.js +13 -13
- package/dist/{init-BhZylTFx.js → init-BJFW6EwE.js} +3 -3
- package/dist/{init-BhZylTFx.js.map → init-BJFW6EwE.js.map} +1 -1
- package/dist/{linear-BVckp9RD.cjs → linear-BwPAspcq.cjs} +2 -2
- package/dist/{linear-BVckp9RD.cjs.map → linear-BwPAspcq.cjs.map} +1 -1
- package/dist/{linear-DUdu7l2G.js → linear-BwnDd9KF.js} +3 -3
- package/dist/{linear-DUdu7l2G.js.map → linear-BwnDd9KF.js.map} +1 -1
- package/dist/numberFormattingFunction-02t-wJta.cjs.map +1 -1
- package/dist/numberFormattingFunction-14YCbkN2.js.map +1 -1
- package/dist/{ordinal-BOeNbyae.cjs → ordinal-CrsysVE-.cjs} +2 -2
- package/dist/ordinal-CrsysVE-.cjs.map +1 -0
- package/dist/{ordinal-w9Lu4Stb.js → ordinal-P77xw8aL.js} +24 -24
- package/dist/ordinal-P77xw8aL.js.map +1 -0
- package/dist/{pow-e8zx3AQJ.js → pow-DE4c7dbW.js} +3 -3
- package/dist/{pow-e8zx3AQJ.js.map → pow-DE4c7dbW.js.map} +1 -1
- package/dist/{pow-B5-jkdHU.cjs → pow-DgrUorRi.cjs} +2 -2
- package/dist/{pow-B5-jkdHU.cjs.map → pow-DgrUorRi.cjs.map} +1 -1
- package/dist/{proxy-BYIC9BuT.js → proxy-BxkFHwUw.js} +144 -134
- package/dist/proxy-BxkFHwUw.js.map +1 -0
- package/dist/proxy-BxvUI_9l.cjs +2 -0
- package/dist/proxy-BxvUI_9l.cjs.map +1 -0
- package/dist/{removeOutliers-DR48e-18.js → removeOutliers-BqW0sPqj.js} +2 -5
- package/dist/{removeOutliers-DR48e-18.js.map → removeOutliers-BqW0sPqj.js.map} +1 -1
- package/dist/removeOutliers-WELHHqiI.cjs.map +1 -1
- package/dist/{sort-DfK1b0F5.js → sort-BIvMlUH1.js} +5 -5
- package/dist/{sort-DfK1b0F5.js.map → sort-BIvMlUH1.js.map} +1 -1
- package/dist/{string-CRoCZCYa.cjs → string-C-kRh1bQ.cjs} +2 -2
- package/dist/{string-CRoCZCYa.cjs.map → string-C-kRh1bQ.cjs.map} +1 -1
- package/dist/{string-B8KlVSPX.js → string-C_xJ4Wg4.js} +3 -3
- package/dist/{string-B8KlVSPX.js.map → string-C_xJ4Wg4.js.map} +1 -1
- package/dist/string2HTML-CPGr_I5E.cjs +3 -0
- package/dist/{string2HTML-z7CwHXcx.cjs.map → string2HTML-CPGr_I5E.cjs.map} +1 -1
- package/dist/{string2HTML-oFCROsus.js → string2HTML-DhG75NqA.js} +15 -9
- package/dist/{string2HTML-oFCROsus.js.map → string2HTML-DhG75NqA.js.map} +1 -1
- package/dist/style.css +1 -1
- package/dist/{svgDownload-C2-E3yf2.js → svgDownload-BAoarWNt.js} +4 -2
- package/dist/{svgDownload-C2-E3yf2.js.map → svgDownload-BAoarWNt.js.map} +1 -1
- package/dist/svgDownload-D9zEGjTF.cjs.map +1 -1
- package/dist/{threshold-DFfqcDMa.js → threshold-Bgr20hik.js} +2 -2
- package/dist/{threshold-DFfqcDMa.js.map → threshold-Bgr20hik.js.map} +1 -1
- package/dist/{time-Byw_jYQ7.cjs → time-CZd5YLSP.cjs} +2 -2
- package/dist/{time-Byw_jYQ7.cjs.map → time-CZd5YLSP.cjs.map} +1 -1
- package/dist/{time-BzJP5SPC.js → time-DCCfQk3V.js} +3 -3
- package/dist/{time-BzJP5SPC.js.map → time-DCCfQk3V.js.map} +1 -1
- package/dist/transformData.cjs +1 -1
- package/dist/transformData.js +3 -3
- package/dist/transformDataForAggregation-CE3bAlHU.js +585 -0
- package/dist/{transformDataForAggregation-sBpdlX8n.js.map → transformDataForAggregation-CE3bAlHU.js.map} +1 -1
- package/dist/transformDataForAggregation-KXGm6flX.cjs.map +1 -1
- package/dist/transformDataForGraphFromFile-BExxcITV.js +14 -0
- package/dist/{transformDataForGraphFromFile-ComYvzuz.js.map → transformDataForGraphFromFile-BExxcITV.js.map} +1 -1
- package/dist/{transformDataForGraphFromFile-DVZodTHd.cjs → transformDataForGraphFromFile-DaJHQCsL.cjs} +2 -2
- package/dist/{transformDataForGraphFromFile-DVZodTHd.cjs.map → transformDataForGraphFromFile-DaJHQCsL.cjs.map} +1 -1
- package/dist/transformDataForSelect-D8AuvYdf.js.map +1 -1
- package/dist/transformDataForSelect-YmStusCI.cjs.map +1 -1
- package/dist/uniqBy-BHy4I8PK.js.map +1 -1
- package/dist/uniqBy-O05lp2S5.cjs.map +1 -1
- package/dist/{use-in-view-DR-UTB96.js → use-in-view-Cxa7y1TH.js} +2 -2
- package/dist/use-in-view-Cxa7y1TH.js.map +1 -0
- package/dist/use-in-view-QcfiW0w3.cjs +2 -0
- package/dist/use-in-view-QcfiW0w3.cjs.map +1 -0
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +8 -8
- package/dist/validateSchema.cjs.map +1 -1
- package/dist/validateSchema.js +33 -29
- package/dist/validateSchema.js.map +1 -1
- package/dist/{x-BBpi7a_7-Dz2vKSfu.cjs → x-BBpi7a_7-mTo40uId.cjs} +2 -2
- package/dist/{x-BBpi7a_7-Dz2vKSfu.cjs.map → x-BBpi7a_7-mTo40uId.cjs.map} +1 -1
- package/dist/{y-D0sAaVii.js → y-BqfogMAB.js} +3 -3
- package/dist/{y-D0sAaVii.js.map → y-BqfogMAB.js.map} +1 -1
- package/dist/{zoom-QipiAl5W.js → zoom-C9MFjAaV.js} +5 -5
- package/dist/{zoom-QipiAl5W.js.map → zoom-C9MFjAaV.js.map} +1 -1
- package/dist/zoom-DPw8bba-.cjs +2 -0
- package/dist/{zoom-BiMNsz72.cjs.map → zoom-DPw8bba-.cjs.map} +1 -1
- package/package.json +7 -6
- package/dist/Axis-4gUOL8B7.js +0 -43
- package/dist/Axis-4gUOL8B7.js.map +0 -1
- package/dist/Axis-CkNn1wit.cjs +0 -2
- package/dist/Axis-CkNn1wit.cjs.map +0 -1
- package/dist/AxisTitle-Wkz-xeQL.cjs +0 -2
- package/dist/AxisTitle-Wkz-xeQL.cjs.map +0 -1
- package/dist/AxisTitle-v6_xcXZ-.js +0 -20
- package/dist/AxisTitle-v6_xcXZ-.js.map +0 -1
- package/dist/DropdownSelect-6kjXM6oW.js.map +0 -1
- package/dist/DropdownSelect-vt8yiB-g.cjs +0 -29
- package/dist/DropdownSelect-vt8yiB-g.cjs.map +0 -1
- package/dist/EmptyState-36lXXyui.js +0 -22
- package/dist/EmptyState-B8IpKGcL.cjs +0 -2
- package/dist/GraphEl-2IiUDxjR.js.map +0 -1
- package/dist/GraphEl-qrlfGPe3.cjs +0 -2
- package/dist/GraphEl-qrlfGPe3.cjs.map +0 -1
- package/dist/Modal-Cg8daIlV.js +0 -1030
- package/dist/Modal-Cg8daIlV.js.map +0 -1
- package/dist/Modal-CuuJdWkD.cjs +0 -46
- package/dist/Modal-CuuJdWkD.cjs.map +0 -1
- package/dist/ReferenceLine-CPMaAX0r.js +0 -128
- package/dist/ReferenceLine-CPMaAX0r.js.map +0 -1
- package/dist/ReferenceLine-D04j-zeV.cjs +0 -2
- package/dist/ReferenceLine-D04j-zeV.cjs.map +0 -1
- package/dist/RegressionLine-CW7iViH2.js +0 -49
- package/dist/RegressionLine-CW7iViH2.js.map +0 -1
- package/dist/RegressionLine-D-49RaHa.cjs +0 -2
- package/dist/RegressionLine-D-49RaHa.cjs.map +0 -1
- package/dist/Spinner-Bpz70q_g.js +0 -30
- package/dist/Spinner-Bpz70q_g.js.map +0 -1
- package/dist/Spinner-C6wLp85s.cjs +0 -2
- package/dist/Spinner-C6wLp85s.cjs.map +0 -1
- package/dist/Tooltip-6LIdPQGC.js +0 -46
- package/dist/Tooltip-6LIdPQGC.js.map +0 -1
- package/dist/Tooltip-Cpv0QohJ.cjs +0 -2
- package/dist/Tooltip-Cpv0QohJ.cjs.map +0 -1
- package/dist/Typography-BDULiwlF.cjs +0 -2
- package/dist/Typography-BDULiwlF.cjs.map +0 -1
- package/dist/Typography-LmZ9LEpe.js +0 -140
- package/dist/Typography-LmZ9LEpe.js.map +0 -1
- package/dist/XAxesLabels-CLZnBgSr.cjs +0 -2
- package/dist/XAxesLabels-CLZnBgSr.cjs.map +0 -1
- package/dist/XAxesLabels-SOSmso5J.js +0 -57
- package/dist/XAxesLabels-SOSmso5J.js.map +0 -1
- package/dist/XTicksAndGridLines-DuydSnZ_.js +0 -56
- package/dist/XTicksAndGridLines-DuydSnZ_.js.map +0 -1
- package/dist/XTicksAndGridLines-RKy7BVCO.cjs +0 -2
- package/dist/XTicksAndGridLines-RKy7BVCO.cjs.map +0 -1
- package/dist/YAxesLabels-DlDyLvhi.js +0 -52
- package/dist/YAxesLabels-DlDyLvhi.js.map +0 -1
- package/dist/YAxesLabels-Dqd259-t.cjs +0 -2
- package/dist/YAxesLabels-Dqd259-t.cjs.map +0 -1
- package/dist/YTicksAndGridLines-7t4MKtGw.js +0 -56
- package/dist/YTicksAndGridLines-7t4MKtGw.js.map +0 -1
- package/dist/YTicksAndGridLines-qGpRo_t1.cjs +0 -2
- package/dist/YTicksAndGridLines-qGpRo_t1.cjs.map +0 -1
- package/dist/checkIfMultiple-Dko_cBvE.cjs +0 -12
- package/dist/checkIfMultiple-Dko_cBvE.cjs.map +0 -1
- package/dist/checkIfMultiple-u2SmbiCf.js +0 -912
- package/dist/checkIfMultiple-u2SmbiCf.js.map +0 -1
- package/dist/customArea-1G1S78s_.cjs +0 -2
- package/dist/customArea-x4L4xwLl.js +0 -175
- package/dist/fetchAndParseData-Ba-_CgxS.cjs +0 -16
- package/dist/getGraphList-DuColTJM.js +0 -265
- package/dist/getSliderMarks-CUxPy36E.cjs +0 -6
- package/dist/getSliderMarks-CUxPy36E.cjs.map +0 -1
- package/dist/getSliderMarks-_pYOWEtO.js +0 -1023
- package/dist/getSliderMarks-_pYOWEtO.js.map +0 -1
- package/dist/index-9tDEUqOZ.js.map +0 -1
- package/dist/index-BHe3wsWF.cjs +0 -2
- package/dist/index-Bw_eHBVN.js +0 -77
- package/dist/index-C0bpbS4F.cjs +0 -2
- package/dist/index-C0bpbS4F.cjs.map +0 -1
- package/dist/index-CE9pmfxt.js +0 -430
- package/dist/index-CE9pmfxt.js.map +0 -1
- package/dist/index-CEJwW3lL.cjs +0 -2
- package/dist/index-CEJwW3lL.cjs.map +0 -1
- package/dist/index-CHPV5EwG-DBWUSD9b.js.map +0 -1
- package/dist/index-CHPV5EwG-DjM48pIC.cjs +0 -44
- package/dist/index-CHPV5EwG-DjM48pIC.cjs.map +0 -1
- package/dist/index-CQ3e6Ewi.cjs +0 -2
- package/dist/index-Cm8NIdOO.cjs +0 -10
- package/dist/index-Cm8NIdOO.cjs.map +0 -1
- package/dist/index-CoZbeNM9.cjs +0 -2
- package/dist/index-CoZbeNM9.cjs.map +0 -1
- package/dist/index-Cwgh7i7X.js +0 -122
- package/dist/index-Cwgh7i7X.js.map +0 -1
- package/dist/index-D72cOtq7.cjs +0 -2
- package/dist/index-zZjQEHlm.js +0 -342
- package/dist/index-zZjQEHlm.js.map +0 -1
- package/dist/ordinal-BOeNbyae.cjs.map +0 -1
- package/dist/ordinal-w9Lu4Stb.js.map +0 -1
- package/dist/proxy-BYIC9BuT.js.map +0 -1
- package/dist/proxy-CKadx4lC.cjs +0 -2
- package/dist/proxy-CKadx4lC.cjs.map +0 -1
- package/dist/string2HTML-z7CwHXcx.cjs +0 -3
- package/dist/transformDataForAggregation-sBpdlX8n.js +0 -755
- package/dist/transformDataForGraphFromFile-ComYvzuz.js +0 -24
- package/dist/use-in-view-CEwlc_dd.cjs +0 -2
- package/dist/use-in-view-CEwlc_dd.cjs.map +0 -1
- package/dist/use-in-view-DR-UTB96.js.map +0 -1
- package/dist/zoom-BiMNsz72.cjs +0 -2
package/dist/ThreeDGlobe.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreeDGlobe.js","sources":["../src/Components/Graphs/Maps/ThreeDGlobe/Graph.tsx","../src/Components/Graphs/Maps/ThreeDGlobe/index.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport Globe, { GlobeMethods } from 'react-globe.gl';\r\nimport isEqual from 'fast-deep-equal';\r\nimport { useCallback, useEffect, useRef, useState } from 'react';\r\nimport { scaleOrdinal, scaleThreshold } from 'd3-scale';\r\nimport * as THREE from 'three';\r\nimport { Modal } from '@undp/design-system-react/Modal';\r\nimport { P } from '@undp/design-system-react/Typography';\r\n\r\nimport {\r\n ChoroplethMapDataType,\r\n ClassNameObject,\r\n FogDataType,\r\n LightConfig,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { X } from '@/Components/Icons';\r\nimport { string2HTML } from '@/Utils/string2HTML';\r\nimport { getCentroidCoordinates } from '@/Utils/getCentroidCoordinates';\r\n\r\ninterface Props {\r\n width: number;\r\n data: ChoroplethMapDataType[];\r\n autoRotate: number;\r\n enableZoom: boolean;\r\n categorical: boolean;\r\n colorDomain: (number | string)[];\r\n colors: string[];\r\n height: number;\r\n globeMaterial?: THREE.Material;\r\n lights: LightConfig[];\r\n polygonData: any;\r\n mapProperty: string;\r\n mapBorderColor: string;\r\n atmosphereColor: string;\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n onSeriesMouseOver?: (_d: any) => void;\r\n onSeriesMouseClick?: (_d: any) => void;\r\n mapNoDataColor: string;\r\n colorLegendTitle?: string;\r\n showColorScale: boolean;\r\n hoverStrokeColor: string;\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n resetSelectionOnDoubleClick: boolean;\r\n highlightedIds: string[];\r\n scale: number;\r\n globeOffset: [number, number];\r\n polygonAltitude: number;\r\n centerLng: number;\r\n centerLat: number;\r\n atmosphereAltitude: number;\r\n globeCurvatureResolution: number;\r\n fogSettings?: FogDataType;\r\n highlightedAltitude: number;\r\n selectedId?: string;\r\n collapseColorScaleByDefault?: boolean;\r\n}\r\n\r\nfunction createLightFromConfig(config: LightConfig): THREE.Light {\r\n let light: THREE.Light;\r\n\r\n switch (config.type) {\r\n case 'ambient':\r\n light = new THREE.AmbientLight(config.color, config.intensity);\r\n break;\r\n case 'directional':\r\n light = new THREE.DirectionalLight(config.color, config.intensity);\r\n if (config.position) {\r\n if (config.position === 'camera') light.position.set(0, 0, 0);\r\n else light.position.set(config.position.x, config.position.y, config.position.z);\r\n }\r\n if (config.target || config.position === 'camera') {\r\n (light as THREE.SpotLight).target.position.set(\r\n config.target?.x || 0,\r\n config.target?.y || 0,\r\n config.target?.z === undefined ? -1 : config.target.z,\r\n );\r\n }\r\n if (config.castShadow) {\r\n (light as THREE.DirectionalLight).castShadow = true;\r\n if (config.shadow) {\r\n (light as THREE.DirectionalLight).shadow.mapSize.width = config.shadow.mapSize.width;\r\n (light as THREE.DirectionalLight).shadow.mapSize.height = config.shadow.mapSize.height;\r\n (light as THREE.DirectionalLight).shadow.camera.near = config.shadow.camera.near;\r\n (light as THREE.DirectionalLight).shadow.camera.far = config.shadow.camera.far;\r\n }\r\n }\r\n break;\r\n case 'point':\r\n light = new THREE.PointLight(\r\n config.color,\r\n config.intensity,\r\n config.distance || 0,\r\n config.decay || 2,\r\n );\r\n if (config.position) {\r\n if (config.position === 'camera') light.position.set(0, 0, 0);\r\n else light.position.set(config.position.x, config.position.y, config.position.z);\r\n }\r\n break;\r\n case 'spot':\r\n light = new THREE.SpotLight(\r\n config.color,\r\n config.intensity,\r\n config.distance || 0,\r\n config.angle || Math.PI / 3,\r\n config.penumbra || 0,\r\n config.decay || 2,\r\n );\r\n if (config.position) {\r\n if (config.position === 'camera') light.position.set(0, 0, 0);\r\n else light.position.set(config.position.x, config.position.y, config.position.z);\r\n }\r\n if (config.target || config.position === 'camera') {\r\n (light as THREE.SpotLight).target.position.set(\r\n config.target?.x || 0,\r\n config.target?.y || 0,\r\n config.target?.z || 0,\r\n );\r\n }\r\n if (config.castShadow) {\r\n (light as THREE.SpotLight).castShadow = true;\r\n if (config.shadow) {\r\n (light as THREE.SpotLight).shadow.mapSize.width = config.shadow.mapSize.width;\r\n (light as THREE.SpotLight).shadow.mapSize.height = config.shadow.mapSize.height;\r\n (light as THREE.SpotLight).shadow.camera.near = config.shadow.camera.near;\r\n (light as THREE.SpotLight).shadow.camera.far = config.shadow.camera.far;\r\n }\r\n }\r\n break;\r\n default:\r\n throw new Error('Unknown light type');\r\n }\r\n\r\n return light;\r\n}\r\nfunction Graph(props: Props) {\r\n const {\r\n width,\r\n autoRotate,\r\n data,\r\n enableZoom,\r\n categorical,\r\n colorDomain,\r\n colors,\r\n globeMaterial,\r\n height,\r\n polygonData,\r\n mapProperty,\r\n mapBorderColor,\r\n atmosphereColor,\r\n tooltip,\r\n styles,\r\n classNames,\r\n mapNoDataColor,\r\n colorLegendTitle,\r\n showColorScale,\r\n hoverStrokeColor,\r\n detailsOnClick,\r\n onSeriesMouseClick,\r\n onSeriesMouseOver,\r\n resetSelectionOnDoubleClick,\r\n highlightedIds,\r\n scale,\r\n globeOffset,\r\n polygonAltitude,\r\n centerLng,\r\n centerLat,\r\n atmosphereAltitude,\r\n globeCurvatureResolution,\r\n fogSettings,\r\n lights,\r\n highlightedAltitude,\r\n selectedId,\r\n collapseColorScaleByDefault,\r\n } = props;\r\n const [globeReady, setGlobeReady] = useState(false);\r\n const globeEl = useRef<GlobeMethods | undefined>(undefined);\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n\r\n const [showLegend, setShowLegend] = useState(\r\n collapseColorScaleByDefault === undefined ? !(width < 680) : !collapseColorScaleByDefault,\r\n );\r\n const [mousePos, setMousePos] = useState({ x: 0, y: 0 });\r\n const [mouseOverData, setMouseOverData] = useState<ChoroplethMapDataType | undefined>(undefined);\r\n const colorScale = categorical\r\n ? scaleOrdinal<number | string, string>().domain(colorDomain).range(colors)\r\n : scaleThreshold<number, string>()\r\n .domain(colorDomain as number[])\r\n .range(colors);\r\n useEffect(() => {\r\n if (globeEl.current) {\r\n globeEl.current.controls().enableZoom = enableZoom;\r\n }\r\n }, [enableZoom]);\r\n useEffect(() => {\r\n if (globeEl.current) {\r\n if (mouseOverData || selectedId) {\r\n globeEl.current.controls().autoRotate = false;\r\n } else {\r\n globeEl.current.controls().autoRotate = autoRotate === 0 ? false : true;\r\n globeEl.current.controls().autoRotateSpeed = autoRotate;\r\n }\r\n }\r\n }, [mouseOverData, selectedId, autoRotate]);\r\n useEffect(() => {\r\n if (globeEl.current && selectedId) {\r\n const selectedPolygon = polygonData.find(\r\n (d: any) => d.properties[mapProperty] === selectedId,\r\n );\r\n const [lng, lat] = getCentroidCoordinates(selectedPolygon);\r\n globeEl.current.pointOfView({ lat, lng, altitude: scale }, 1000);\r\n }\r\n }, [selectedId, scale, polygonData, mapProperty]);\r\n\r\n useEffect(() => {\r\n const canvas = globeEl.current?.renderer().domElement;\r\n if (!canvas) return;\r\n\r\n const handleMouseMove = (e: MouseEvent) => {\r\n setMousePos({ x: e.clientX, y: e.clientY });\r\n };\r\n\r\n canvas.addEventListener('mousemove', handleMouseMove);\r\n return () => canvas.removeEventListener('mousemove', handleMouseMove);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (globeEl.current) {\r\n globeEl.current.pointOfView({ lat: centerLat, lng: centerLng, altitude: scale }, 1000);\r\n }\r\n }, [scale, centerLng, centerLat]);\r\n const materials =\r\n globeMaterial ||\r\n new THREE.MeshBasicMaterial({\r\n color: '#FFF',\r\n });\r\n const setupCustomLighting = useCallback(() => {\r\n if (!globeEl.current) return;\r\n\r\n const scene = globeEl.current.scene();\r\n const camera = globeEl.current.camera();\r\n\r\n let lightsAndObjToRemove: THREE.Object3D[] = [];\r\n scene.traverse(obj => {\r\n if (obj instanceof THREE.Light) {\r\n lightsAndObjToRemove.push(obj);\r\n }\r\n });\r\n lightsAndObjToRemove = [...lightsAndObjToRemove, ...camera.children];\r\n lightsAndObjToRemove.forEach(light => light.parent?.remove(light));\r\n\r\n const lightConfig = lights.map(config => createLightFromConfig(config));\r\n lightConfig.forEach((light, i) => {\r\n if (lights[i].type !== 'ambient' && lights[i].position === 'camera') {\r\n camera.add(light);\r\n if (lights[i].type !== 'point') {\r\n camera.add((light as THREE.DirectionalLight | THREE.SpotLight).target);\r\n }\r\n } else {\r\n scene.add(light);\r\n }\r\n });\r\n\r\n if (fogSettings) {\r\n scene.fog = new THREE.Fog(fogSettings.color, fogSettings.near, fogSettings.far);\r\n }\r\n }, [lights, fogSettings]);\r\n\r\n const handleGlobeReady = useCallback(() => {\r\n setGlobeReady(true);\r\n setupCustomLighting();\r\n }, [setupCustomLighting]);\r\n useEffect(() => {\r\n if (globeReady) {\r\n setupCustomLighting();\r\n }\r\n }, [globeReady, setupCustomLighting]);\r\n return (\r\n <div className='relative'>\r\n <Globe\r\n ref={globeEl}\r\n height={height}\r\n width={width}\r\n globeOffset={globeOffset}\r\n lineHoverPrecision={0}\r\n polygonsData={polygonData}\r\n polygonAltitude={(polygon: any) =>\r\n highlightedIds.includes(polygon?.properties?.[mapProperty]) ||\r\n polygon?.properties?.[mapProperty] === selectedId\r\n ? highlightedAltitude * (polygon?.properties?.[mapProperty] === selectedId ? 2 : 1)\r\n : polygon?.properties?.[mapProperty] === mouseOverData?.id ||\r\n polygon?.properties?.[mapProperty] === mouseClickData?.id\r\n ? highlightedAltitude\r\n : polygonAltitude\r\n }\r\n polygonCapColor={(polygon: any) => {\r\n const id = polygon?.properties?.[mapProperty];\r\n const val = data.find(el => el.id === id)?.x;\r\n if (val !== undefined && val !== null) {\r\n return colorScale(val as any);\r\n }\r\n return mapNoDataColor;\r\n }}\r\n polygonSideColor={(polygon: any) => {\r\n const id = polygon?.properties?.[mapProperty];\r\n const val = data.find(el => el.id === id)?.x;\r\n const color = val !== undefined && val !== null ? colorScale(val as any) : mapNoDataColor;\r\n return highlightedIds.includes(polygon?.properties?.[mapProperty]) ||\r\n polygon?.properties?.[mapProperty] === selectedId\r\n ? color\r\n : 'rgba(100,100,100,0)';\r\n }}\r\n polygonStrokeColor={(polygon: any) =>\r\n polygon?.properties?.[mapProperty] === mouseOverData?.id\r\n ? hoverStrokeColor\r\n : mapBorderColor\r\n }\r\n onGlobeClick={() => {\r\n setMouseClickData(undefined);\r\n }}\r\n onPolygonClick={(polygon: any) => {\r\n const clickedData = polygon?.properties?.[mapProperty]\r\n ? data.find(el => el.id === polygon?.properties?.[mapProperty])\r\n : undefined;\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (\r\n isEqual(mouseClickData, clickedData) &&\r\n resetSelectionOnDoubleClick &&\r\n clickedData\r\n ) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(clickedData);\r\n onSeriesMouseClick?.(clickedData);\r\n }\r\n }\r\n }}\r\n onPolygonHover={(polygon: any) => {\r\n const hoverData = polygon?.properties?.[mapProperty]\r\n ? data.find(el => el.id === polygon?.properties?.[mapProperty])\r\n : undefined;\r\n setMouseOverData(hoverData);\r\n onSeriesMouseOver?.(hoverData);\r\n }}\r\n atmosphereColor={atmosphereColor}\r\n atmosphereAltitude={atmosphereAltitude}\r\n globeCurvatureResolution={globeCurvatureResolution}\r\n globeMaterial={materials}\r\n backgroundColor='rgba(0, 0, 0, 0)'\r\n polygonsTransitionDuration={100}\r\n onGlobeReady={() => {\r\n if (globeEl.current) {\r\n globeEl.current.pointOfView({\r\n lat: centerLat,\r\n lng: centerLng,\r\n });\r\n const scene = globeEl.current.scene();\r\n setTimeout(() => {\r\n const polygons = scene.children[3]?.children[0]?.children[4]?.children || [];\r\n polygons.forEach(d => {\r\n const line = d.children[1];\r\n line.renderOrder = 2;\r\n });\r\n }, 300);\r\n const camera = globeEl.current.camera();\r\n scene.add(camera);\r\n handleGlobeReady();\r\n }\r\n }}\r\n />\r\n {showColorScale === false ? null : (\r\n <div className='absolute left-4 bottom-4'>\r\n {showLegend ? (\r\n <>\r\n <div\r\n className='color-legend-close-button bg-[rgba(240,240,240,0.7)] dark:bg-[rgba(30,30,30,0.7)] border border-[var(--gray-400)] rounded-full w-6 h-6 p-[3px] cursor-pointer z-10 absolute right-[-0.75rem] top-[-0.75rem]'\r\n onClick={() => {\r\n setShowLegend(false);\r\n }}\r\n >\r\n <X />\r\n </div>\r\n <div\r\n className='color-legend-box p-2 bg-[rgba(240,240,240,0.7)] dark:bg-[rgba(30,30,30,0.7)]'\r\n style={{\r\n width: categorical ? undefined : '340px',\r\n }}\r\n >\r\n {colorLegendTitle && colorLegendTitle !== '' ? (\r\n <P\r\n size='xs'\r\n marginBottom='xs'\r\n className='p-0 leading-normal overflow-hidden text-primary-gray-700 dark:text-primary-gray-300'\r\n style={{\r\n display: '-webkit-box',\r\n WebkitLineClamp: '1',\r\n WebkitBoxOrient: 'vertical',\r\n }}\r\n >\r\n {colorLegendTitle}\r\n </P>\r\n ) : null}\r\n {!categorical ? (\r\n <svg width='100%' viewBox='0 0 320 30' direction='ltr'>\r\n <g>\r\n {colorDomain.map((d, i) => (\r\n <g key={i} className='cursor-pointer'>\r\n <rect\r\n x={(i * 320) / colors.length + 1}\r\n y={1}\r\n width={320 / colors.length - 2}\r\n height={8}\r\n style={{\r\n fill: colors[i],\r\n stroke: colors[i],\r\n }}\r\n />\r\n <text\r\n x={((i + 1) * 320) / colors.length}\r\n y={25}\r\n className='fill-primary-gray-700 dark:fill-primary-gray-300 text-xs'\r\n style={{ textAnchor: 'middle' }}\r\n >\r\n {numberFormattingFunction(d as number, 'NA')}\r\n </text>\r\n </g>\r\n ))}\r\n <g>\r\n <rect\r\n x={(colorDomain.length * 320) / colors.length + 1}\r\n y={1}\r\n width={320 / colors.length - 2}\r\n height={8}\r\n style={{\r\n fill: colors[colorDomain.length],\r\n stroke: colors[colorDomain.length],\r\n }}\r\n />\r\n </g>\r\n </g>\r\n </svg>\r\n ) : (\r\n <div className='flex flex-col gap-3'>\r\n {colorDomain.map((d, i) => (\r\n <div key={i} className='flex gap-2 items-center'>\r\n <div\r\n className='w-2 h-2 rounded-full'\r\n style={{ backgroundColor: colors[i % colors.length] }}\r\n />\r\n <P size='sm' marginBottom='none' leading='none'>\r\n {d}\r\n </P>\r\n </div>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </>\r\n ) : (\r\n <button\r\n type='button'\r\n className='mb-0 border-0 bg-transparent p-0 self-start'\r\n onClick={() => {\r\n setShowLegend(true);\r\n }}\r\n >\r\n <div className='show-color-legend-button items-start text-sm font-medium cursor-pointer p-2 mb-0 flex text-primary-black dark:text-primary-gray-300 bg-primary-gray-300 dark:bg-primary-gray-600 border-primary-gray-400 dark:border-primary-gray-500'>\r\n Show Legend\r\n </div>\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n {mouseOverData && tooltip ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={mousePos.x}\r\n yPos={mousePos.y}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <Modal\r\n open={mouseClickData !== undefined}\r\n onClose={() => {\r\n setMouseClickData(undefined);\r\n }}\r\n >\r\n <div\r\n className='graph-modal-content m-0'\r\n dangerouslySetInnerHTML={\r\n typeof detailsOnClick === 'string'\r\n ? { __html: string2HTML(detailsOnClick, mouseClickData) }\r\n : undefined\r\n }\r\n >\r\n {typeof detailsOnClick === 'function' ? detailsOnClick(mouseClickData) : null}\r\n </div>\r\n </Modal>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n\r\nexport default Graph;\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\nimport * as THREE from 'three';\r\nimport { cn } from '@undp/design-system-react/cn';\r\n\r\nimport Graph from './Graph';\r\n\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport {\r\n ChoroplethMapDataType,\r\n ClassNameObject,\r\n FogDataType,\r\n Languages,\r\n LightConfig,\r\n ScaleDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { fetchAndParseJSON } from '@/Utils/fetchAndParseData';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { getJenks } from '@/Utils/getJenks';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: ChoroplethMapDataType[];\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Colors for the choropleth map */\r\n colors?: string[];\r\n /** Domain of colors for the graph */\r\n colorDomain?: number[] | string[];\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Color for the areas where data is no available */\r\n mapNoDataColor?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n\r\n // Graph Parameters\r\n /** Map data as an object in geoJson format or a url for geoJson */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n mapData?: any;\r\n /** Stroke color of the regions in the map */\r\n mapBorderColor?: string;\r\n /** Center point of the map */\r\n centerPoint?: [number, number];\r\n /** Defines if the globe rotates automatically */\r\n autoRotate?: number | boolean;\r\n /** Defines the material property applied to the sphere of the globe */\r\n globeMaterial?: THREE.Material;\r\n /** Defines the lights for the 3D scene */\r\n lights?: LightConfig[];\r\n /** Defines the colo of the glow around the globe */\r\n atmosphereColor?: string;\r\n /** Defines if the globe can be zoomed when scrolled */\r\n enableZoom?: boolean;\r\n /** Position offset of the globe relative to the canvas center */\r\n globeOffset?: [number, number];\r\n /** Defines the camera distance from Earth. This helps in defining the default size of the globe. Smaller = closer camera therefore the globe is bigger) */\r\n scale?: number;\r\n /** Defines the spacing between the country shape polygon with the sphere */\r\n polygonAltitude?: number;\r\n /** Scale for the colors */\r\n scaleType?: Exclude<ScaleDataType, 'linear'>;\r\n /** Toggle visibility of color scale. */\r\n showColorScale?: boolean;\r\n /** Toggle if color scale is collapsed by default. */\r\n collapseColorScaleByDefault?: boolean;\r\n /** The max altitude of the atmosphere, in terms of globe radius units. */\r\n atmosphereAltitude?: number;\r\n /** Resolution in angular degrees of the sphere curvature. The finer the resolution, the more the globe is fragmented into smaller faces to approximate the spheric surface, at the cost of performance. */\r\n globeCurvatureResolution?: number;\r\n /** Defines fog settings for the scene. */\r\n fogSettings?: FogDataType;\r\n /** Property in the property object in mapData geoJson object is used to match to the id in the data object */\r\n mapProperty?: string;\r\n /** Countries or regions to be highlighted */\r\n selectedId?: string;\r\n /** Countries or regions to be highlighted */\r\n highlightedIds?: string[];\r\n /** Defines the altitude of the highlighted countries or the countries on mouseover. */\r\n highlightedAltitude?: number;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n /** Reset selection on double-click. Only applicable when used in a dashboard context with filters. */\r\n resetSelectionOnDoubleClick?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n /** Details displayed on the modal when user clicks of a data point. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse over event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n /** Callback for mouse click event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Unique ID for the graph */\r\n graphID?: string;\r\n}\r\n\r\n/** For using these maps you will have to install [`three`](https://threejs.org/manual/) and [react-globe.gl](https://www.npmjs.com/package/react-globe.gl) package to your project */\r\nexport function ThreeDGlobe(props: Props) {\r\n const {\r\n data,\r\n mapData = 'https://raw.githubusercontent.com/UNDP-Data/dv-country-geojson/refs/heads/main/worldMap-simplified.json',\r\n graphTitle,\r\n colors,\r\n sources,\r\n graphDescription,\r\n height,\r\n width,\r\n footNote = 'The designations employed and the presentation of material on this map do not imply the expression of any opinion whatsoever on the part of the Secretariat of the United Nations or UNDP concerning the legal status of any country, territory, city or area or its authorities, or concerning the delimitation of its frontiers or boundaries.',\r\n colorDomain,\r\n colorLegendTitle,\r\n scaleType = 'threshold',\r\n padding,\r\n mapNoDataColor = Colors.light.graphNoData,\r\n backgroundColor = false,\r\n mapBorderColor = Colors.light.grays['gray-500'],\r\n relativeHeight,\r\n tooltip,\r\n graphID,\r\n mapProperty = 'ISO3',\r\n dataDownload = false,\r\n language = 'en',\r\n minHeight = 0,\r\n theme = 'light',\r\n ariaLabel,\r\n styles,\r\n classNames,\r\n autoRotate = true,\r\n enableZoom = true,\r\n globeMaterial,\r\n centerPoint = [0, 0],\r\n atmosphereColor = '#999',\r\n showColorScale = true,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n onSeriesMouseOver,\r\n onSeriesMouseClick,\r\n highlightedIds = [],\r\n highlightedAltitude = 0.1,\r\n scale = 1,\r\n globeOffset = [0, 0],\r\n polygonAltitude = 0.01,\r\n globeCurvatureResolution = 4,\r\n atmosphereAltitude = 0.15,\r\n fogSettings,\r\n lights = [\r\n {\r\n type: 'ambient',\r\n color: 0x404040,\r\n intensity: 0.4,\r\n },\r\n {\r\n type: 'directional',\r\n color: 0xffffff,\r\n intensity: 1,\r\n position: { x: 5, y: 10, z: 5 },\r\n },\r\n ],\r\n selectedId,\r\n collapseColorScaleByDefault,\r\n } = props;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mapShape, setMapShape] = useState<any>(undefined);\r\n\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(width || entries[0].target.clientWidth || 760);\r\n setSvgHeight(height || entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n setSvgHeight(graphDiv.current.clientHeight || 480);\r\n setSvgWidth(graphDiv.current.clientWidth || 760);\r\n if (!width) resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, [width, height]);\r\n useEffect(() => {\r\n if (typeof mapData === 'string') {\r\n const fetchData = fetchAndParseJSON(mapData);\r\n fetchData.then(d => {\r\n if (\r\n mapData ===\r\n 'https://raw.githubusercontent.com/UNDP-Data/dv-country-geojson/refs/heads/main/worldMap-simplified.json'\r\n ) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const features = d.features.map((el: any) => {\r\n if (el.geometry.type === 'Polygon') {\r\n const reversed = [...el.geometry.coordinates[0]].reverse();\r\n const geometry = { ...el.geometry, coordinates: [reversed] };\r\n return { ...el, geometry };\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const coord: any = [];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n el.geometry.coordinates.forEach((c: any) => {\r\n const reversed = [...c[0]].reverse();\r\n coord.push([reversed]);\r\n });\r\n const geometry = { ...el.geometry, coordinates: coord };\r\n return { ...el, geometry };\r\n });\r\n setMapShape(features);\r\n } else setMapShape(d.features);\r\n });\r\n } else {\r\n setMapShape(mapData.features);\r\n }\r\n }, [mapData]);\r\n\r\n const domain =\r\n colorDomain ||\r\n (scaleType === 'categorical'\r\n ? getUniqValue(data, 'x')\r\n : getJenks(\r\n data.map(d => d.x as number | null | undefined),\r\n colors?.length || 4,\r\n ));\r\n return (\r\n <div\r\n className={`${theme || 'light'} flex ${width ? 'w-fit grow-0' : 'w-full grow'}`}\r\n dir={language === 'he' || language === 'ar' ? 'rtl' : undefined}\r\n >\r\n <div\r\n className={cn(\r\n `${\r\n !backgroundColor\r\n ? 'bg-transparent '\r\n : backgroundColor === true\r\n ? 'bg-primary-gray-200 dark:bg-primary-gray-650 '\r\n : ''\r\n }ml-auto mr-auto flex flex-col grow h-inherit ${language || 'en'}`,\r\n width ? 'w-fit' : 'w-full',\r\n classNames?.graphContainer,\r\n )}\r\n style={{\r\n ...(styles?.graphContainer || {}),\r\n ...(backgroundColor && backgroundColor !== true ? { backgroundColor } : {}),\r\n }}\r\n id={graphID}\r\n aria-label={\r\n ariaLabel ||\r\n `${\r\n graphTitle ? `The graph shows ${graphTitle}. ` : ''\r\n }This is a map.${graphDescription ? ` ${graphDescription}` : ''}`\r\n }\r\n >\r\n <div\r\n className='flex grow'\r\n style={{ padding: backgroundColor ? padding || '1rem' : padding || 0 }}\r\n >\r\n <div className='flex flex-col w-full gap-4 grow justify-between'>\r\n {graphTitle || graphDescription || dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n graphDownload={undefined}\r\n dataDownload={\r\n dataDownload\r\n ? data.map(d => d.data).filter(d => d !== undefined).length > 0\r\n ? data.map(d => d.data).filter(d => d !== undefined)\r\n : data.filter(d => d !== undefined)\r\n : null\r\n }\r\n />\r\n ) : null}\r\n <div\r\n className='flex flex-col grow justify-center leading-0'\r\n ref={graphDiv}\r\n aria-label='Map area'\r\n >\r\n {(width || svgWidth) && (height || svgHeight) && mapShape ? (\r\n <Graph\r\n data={data}\r\n globeOffset={globeOffset}\r\n polygonData={mapShape}\r\n colorDomain={domain}\r\n width={width || svgWidth}\r\n height={Math.max(\r\n minHeight,\r\n height ||\r\n (relativeHeight\r\n ? minHeight\r\n ? (width || svgWidth) * relativeHeight > minHeight\r\n ? (width || svgWidth) * relativeHeight\r\n : minHeight\r\n : (width || svgWidth) * relativeHeight\r\n : svgHeight),\r\n )}\r\n colors={\r\n colors ||\r\n (scaleType === 'categorical'\r\n ? Colors[theme].sequentialColors[\r\n `neutralColorsx0${domain.length as 4 | 5 | 6 | 7 | 8 | 9}`\r\n ]\r\n : Colors[theme].sequentialColors[\r\n `neutralColorsx0${(domain.length + 1) as 4 | 5 | 6 | 7 | 8 | 9}`\r\n ])\r\n }\r\n mapNoDataColor={mapNoDataColor}\r\n categorical={scaleType === 'categorical'}\r\n mapBorderColor={mapBorderColor}\r\n tooltip={tooltip}\r\n mapProperty={mapProperty}\r\n styles={styles}\r\n classNames={classNames}\r\n autoRotate={autoRotate === true ? 1.5 : autoRotate === false ? 0 : autoRotate}\r\n enableZoom={enableZoom}\r\n globeMaterial={globeMaterial}\r\n atmosphereColor={atmosphereColor}\r\n colorLegendTitle={colorLegendTitle}\r\n showColorScale={showColorScale}\r\n hoverStrokeColor={\r\n theme === 'light'\r\n ? Colors.light.grays['gray-700']\r\n : Colors.light.grays['gray-300']\r\n }\r\n highlightedIds={highlightedIds}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n scale={scale}\r\n polygonAltitude={polygonAltitude}\r\n centerLat={centerPoint[0]}\r\n centerLng={centerPoint[1]}\r\n atmosphereAltitude={atmosphereAltitude}\r\n globeCurvatureResolution={globeCurvatureResolution}\r\n fogSettings={fogSettings}\r\n lights={lights}\r\n highlightedAltitude={highlightedAltitude}\r\n selectedId={selectedId}\r\n collapseColorScaleByDefault={collapseColorScaleByDefault}\r\n />\r\n ) : (\r\n <div\r\n style={{\r\n height: `${Math.max(\r\n minHeight,\r\n height ||\r\n (relativeHeight\r\n ? minHeight\r\n ? (width || svgWidth) * relativeHeight > minHeight\r\n ? (width || svgWidth) * relativeHeight\r\n : minHeight\r\n : (width || svgWidth) * relativeHeight\r\n : svgHeight),\r\n )}px`,\r\n }}\r\n className='flex items-center justify-center'\r\n >\r\n <Spinner aria-label='Loading graph' />\r\n </div>\r\n )}\r\n </div>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["createLightFromConfig","config","light","THREE","Graph","props","width","autoRotate","data","enableZoom","categorical","colorDomain","colors","globeMaterial","height","polygonData","mapProperty","mapBorderColor","atmosphereColor","tooltip","styles","classNames","mapNoDataColor","colorLegendTitle","showColorScale","hoverStrokeColor","detailsOnClick","onSeriesMouseClick","onSeriesMouseOver","resetSelectionOnDoubleClick","highlightedIds","scale","globeOffset","polygonAltitude","centerLng","centerLat","atmosphereAltitude","globeCurvatureResolution","fogSettings","lights","highlightedAltitude","selectedId","collapseColorScaleByDefault","globeReady","setGlobeReady","useState","globeEl","useRef","mouseClickData","setMouseClickData","showLegend","setShowLegend","mousePos","setMousePos","mouseOverData","setMouseOverData","colorScale","scaleOrdinal","scaleThreshold","useEffect","selectedPolygon","d","lng","lat","getCentroidCoordinates","canvas","handleMouseMove","e","materials","setupCustomLighting","useCallback","scene","camera","lightsAndObjToRemove","obj","i","handleGlobeReady","jsxs","jsx","Globe","polygon","id","val","el","color","clickedData","isEqual","hoverData","line","Fragment","X","P","numberFormattingFunction","Tooltip","Modal","string2HTML","ThreeDGlobe","mapData","graphTitle","sources","graphDescription","footNote","scaleType","padding","Colors","backgroundColor","relativeHeight","graphID","dataDownload","language","minHeight","theme","ariaLabel","centerPoint","mapShape","setMapShape","svgWidth","setSvgWidth","svgHeight","setSvgHeight","graphDiv","resizeObserver","entries","fetchAndParseJSON","features","reversed","geometry","coord","c","domain","getUniqValue","getJenks","cn","GraphHeader","Spinner","GraphFooter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ThreeDGlobe.js","sources":["../src/Components/Graphs/Maps/ThreeDGlobe/Graph.tsx","../src/Components/Graphs/Maps/ThreeDGlobe/index.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport Globe, { GlobeMethods } from 'react-globe.gl';\r\nimport isEqual from 'fast-deep-equal';\r\nimport { useCallback, useEffect, useRef, useState } from 'react';\r\nimport { scaleOrdinal, scaleThreshold } from 'd3-scale';\r\nimport * as THREE from 'three';\r\nimport { Modal } from '@undp/design-system-react/Modal';\r\nimport { P } from '@undp/design-system-react/Typography';\r\nimport { cn } from '@undp/design-system-react/cn';\r\n\r\nimport {\r\n ChoroplethMapDataType,\r\n ClassNameObject,\r\n FogDataType,\r\n LightConfig,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { X } from '@/Components/Icons';\r\nimport { string2HTML } from '@/Utils/string2HTML';\r\nimport { getCentroidCoordinates } from '@/Utils/getCentroidCoordinates';\r\n\r\ninterface Props {\r\n width: number;\r\n data: ChoroplethMapDataType[];\r\n autoRotate: number;\r\n enableZoom: boolean;\r\n categorical: boolean;\r\n colorDomain: (number | string)[];\r\n colors: string[];\r\n height: number;\r\n globeMaterial?: THREE.Material;\r\n lights: LightConfig[];\r\n polygonData: any;\r\n mapProperty: string;\r\n mapBorderColor: string;\r\n atmosphereColor: string;\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n onSeriesMouseOver?: (_d: any) => void;\r\n onSeriesMouseClick?: (_d: any) => void;\r\n mapNoDataColor: string;\r\n colorLegendTitle?: string;\r\n showColorScale: boolean;\r\n hoverStrokeColor: string;\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n resetSelectionOnDoubleClick: boolean;\r\n highlightedIds: string[];\r\n scale: number;\r\n globeOffset: [number, number];\r\n polygonAltitude: number;\r\n centerLng: number;\r\n centerLat: number;\r\n atmosphereAltitude: number;\r\n globeCurvatureResolution: number;\r\n fogSettings?: FogDataType;\r\n highlightedAltitude: number;\r\n selectedId?: string;\r\n collapseColorScaleByDefault?: boolean;\r\n}\r\n\r\nfunction createLightFromConfig(config: LightConfig): THREE.Light {\r\n let light: THREE.Light;\r\n\r\n switch (config.type) {\r\n case 'ambient':\r\n light = new THREE.AmbientLight(config.color, config.intensity);\r\n break;\r\n case 'directional':\r\n light = new THREE.DirectionalLight(config.color, config.intensity);\r\n if (config.position) {\r\n if (config.position === 'camera') light.position.set(0, 0, 0);\r\n else light.position.set(config.position.x, config.position.y, config.position.z);\r\n }\r\n if (config.target || config.position === 'camera') {\r\n (light as THREE.SpotLight).target.position.set(\r\n config.target?.x || 0,\r\n config.target?.y || 0,\r\n config.target?.z === undefined ? -1 : config.target.z,\r\n );\r\n }\r\n if (config.castShadow) {\r\n (light as THREE.DirectionalLight).castShadow = true;\r\n if (config.shadow) {\r\n (light as THREE.DirectionalLight).shadow.mapSize.width = config.shadow.mapSize.width;\r\n (light as THREE.DirectionalLight).shadow.mapSize.height = config.shadow.mapSize.height;\r\n (light as THREE.DirectionalLight).shadow.camera.near = config.shadow.camera.near;\r\n (light as THREE.DirectionalLight).shadow.camera.far = config.shadow.camera.far;\r\n }\r\n }\r\n break;\r\n case 'point':\r\n light = new THREE.PointLight(\r\n config.color,\r\n config.intensity,\r\n config.distance || 0,\r\n config.decay || 2,\r\n );\r\n if (config.position) {\r\n if (config.position === 'camera') light.position.set(0, 0, 0);\r\n else light.position.set(config.position.x, config.position.y, config.position.z);\r\n }\r\n break;\r\n case 'spot':\r\n light = new THREE.SpotLight(\r\n config.color,\r\n config.intensity,\r\n config.distance || 0,\r\n config.angle || Math.PI / 3,\r\n config.penumbra || 0,\r\n config.decay || 2,\r\n );\r\n if (config.position) {\r\n if (config.position === 'camera') light.position.set(0, 0, 0);\r\n else light.position.set(config.position.x, config.position.y, config.position.z);\r\n }\r\n if (config.target || config.position === 'camera') {\r\n (light as THREE.SpotLight).target.position.set(\r\n config.target?.x || 0,\r\n config.target?.y || 0,\r\n config.target?.z || 0,\r\n );\r\n }\r\n if (config.castShadow) {\r\n (light as THREE.SpotLight).castShadow = true;\r\n if (config.shadow) {\r\n (light as THREE.SpotLight).shadow.mapSize.width = config.shadow.mapSize.width;\r\n (light as THREE.SpotLight).shadow.mapSize.height = config.shadow.mapSize.height;\r\n (light as THREE.SpotLight).shadow.camera.near = config.shadow.camera.near;\r\n (light as THREE.SpotLight).shadow.camera.far = config.shadow.camera.far;\r\n }\r\n }\r\n break;\r\n default:\r\n throw new Error('Unknown light type');\r\n }\r\n\r\n return light;\r\n}\r\nfunction Graph(props: Props) {\r\n const {\r\n width,\r\n autoRotate,\r\n data,\r\n enableZoom,\r\n categorical,\r\n colorDomain,\r\n colors,\r\n globeMaterial,\r\n height,\r\n polygonData,\r\n mapProperty,\r\n mapBorderColor,\r\n atmosphereColor,\r\n tooltip,\r\n styles,\r\n classNames,\r\n mapNoDataColor,\r\n colorLegendTitle,\r\n showColorScale,\r\n hoverStrokeColor,\r\n detailsOnClick,\r\n onSeriesMouseClick,\r\n onSeriesMouseOver,\r\n resetSelectionOnDoubleClick,\r\n highlightedIds,\r\n scale,\r\n globeOffset,\r\n polygonAltitude,\r\n centerLng,\r\n centerLat,\r\n atmosphereAltitude,\r\n globeCurvatureResolution,\r\n fogSettings,\r\n lights,\r\n highlightedAltitude,\r\n selectedId,\r\n collapseColorScaleByDefault,\r\n } = props;\r\n const [globeReady, setGlobeReady] = useState(false);\r\n const globeEl = useRef<GlobeMethods | undefined>(undefined);\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n\r\n const [showLegend, setShowLegend] = useState(\r\n collapseColorScaleByDefault === undefined ? !(width < 680) : !collapseColorScaleByDefault,\r\n );\r\n const [mousePos, setMousePos] = useState({ x: 0, y: 0 });\r\n const [mouseOverData, setMouseOverData] = useState<ChoroplethMapDataType | undefined>(undefined);\r\n const colorScale = categorical\r\n ? scaleOrdinal<number | string, string>().domain(colorDomain).range(colors)\r\n : scaleThreshold<number, string>()\r\n .domain(colorDomain as number[])\r\n .range(colors);\r\n useEffect(() => {\r\n if (globeEl.current) {\r\n globeEl.current.controls().enableZoom = enableZoom;\r\n }\r\n }, [enableZoom]);\r\n useEffect(() => {\r\n if (globeEl.current) {\r\n if (mouseOverData || selectedId) {\r\n globeEl.current.controls().autoRotate = false;\r\n } else {\r\n globeEl.current.controls().autoRotate = autoRotate === 0 ? false : true;\r\n globeEl.current.controls().autoRotateSpeed = autoRotate;\r\n }\r\n }\r\n }, [mouseOverData, selectedId, autoRotate]);\r\n useEffect(() => {\r\n if (globeEl.current && selectedId) {\r\n const selectedPolygon = polygonData.find(\r\n (d: any) => d.properties[mapProperty] === selectedId,\r\n );\r\n const [lng, lat] = getCentroidCoordinates(selectedPolygon);\r\n globeEl.current.pointOfView({ lat, lng, altitude: scale }, 1000);\r\n }\r\n }, [selectedId, scale, polygonData, mapProperty]);\r\n\r\n useEffect(() => {\r\n const canvas = globeEl.current?.renderer().domElement;\r\n if (!canvas) return;\r\n\r\n const handleMouseMove = (e: MouseEvent) => {\r\n setMousePos({ x: e.clientX, y: e.clientY });\r\n };\r\n\r\n canvas.addEventListener('mousemove', handleMouseMove);\r\n return () => canvas.removeEventListener('mousemove', handleMouseMove);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (globeEl.current) {\r\n globeEl.current.pointOfView({ lat: centerLat, lng: centerLng, altitude: scale }, 1000);\r\n }\r\n }, [scale, centerLng, centerLat]);\r\n const materials =\r\n globeMaterial ||\r\n new THREE.MeshBasicMaterial({\r\n color: '#FFF',\r\n });\r\n const setupCustomLighting = useCallback(() => {\r\n if (!globeEl.current) return;\r\n\r\n const scene = globeEl.current.scene();\r\n const camera = globeEl.current.camera();\r\n\r\n let lightsAndObjToRemove: THREE.Object3D[] = [];\r\n scene.traverse(obj => {\r\n if (obj instanceof THREE.Light) {\r\n lightsAndObjToRemove.push(obj);\r\n }\r\n });\r\n lightsAndObjToRemove = [...lightsAndObjToRemove, ...camera.children];\r\n lightsAndObjToRemove.forEach(light => light.parent?.remove(light));\r\n\r\n const lightConfig = lights.map(config => createLightFromConfig(config));\r\n lightConfig.forEach((light, i) => {\r\n if (lights[i].type !== 'ambient' && lights[i].position === 'camera') {\r\n camera.add(light);\r\n if (lights[i].type !== 'point') {\r\n camera.add((light as THREE.DirectionalLight | THREE.SpotLight).target);\r\n }\r\n } else {\r\n scene.add(light);\r\n }\r\n });\r\n\r\n if (fogSettings) {\r\n scene.fog = new THREE.Fog(fogSettings.color, fogSettings.near, fogSettings.far);\r\n }\r\n }, [lights, fogSettings]);\r\n\r\n const handleGlobeReady = () => {\r\n setGlobeReady(true);\r\n setupCustomLighting();\r\n };\r\n useEffect(() => {\r\n if (globeReady) {\r\n setupCustomLighting();\r\n }\r\n }, [globeReady, setupCustomLighting]);\r\n return (\r\n <div className='relative'>\r\n <Globe\r\n ref={globeEl}\r\n height={height}\r\n width={width}\r\n globeOffset={globeOffset}\r\n lineHoverPrecision={0}\r\n polygonsData={polygonData}\r\n polygonAltitude={(polygon: any) =>\r\n highlightedIds.includes(polygon?.properties?.[mapProperty]) ||\r\n polygon?.properties?.[mapProperty] === selectedId\r\n ? highlightedAltitude * (polygon?.properties?.[mapProperty] === selectedId ? 2 : 1)\r\n : polygon?.properties?.[mapProperty] === mouseOverData?.id ||\r\n polygon?.properties?.[mapProperty] === mouseClickData?.id\r\n ? highlightedAltitude\r\n : polygonAltitude\r\n }\r\n polygonCapColor={(polygon: any) => {\r\n const id = polygon?.properties?.[mapProperty];\r\n const val = data.find(el => el.id === id)?.x;\r\n if (val !== undefined && val !== null) {\r\n return colorScale(val as any);\r\n }\r\n return mapNoDataColor;\r\n }}\r\n polygonSideColor={(polygon: any) => {\r\n const id = polygon?.properties?.[mapProperty];\r\n const val = data.find(el => el.id === id)?.x;\r\n const color = val !== undefined && val !== null ? colorScale(val as any) : mapNoDataColor;\r\n return highlightedIds.includes(polygon?.properties?.[mapProperty]) ||\r\n polygon?.properties?.[mapProperty] === selectedId\r\n ? color\r\n : 'rgba(100,100,100,0)';\r\n }}\r\n polygonStrokeColor={(polygon: any) =>\r\n polygon?.properties?.[mapProperty] === mouseOverData?.id\r\n ? hoverStrokeColor\r\n : mapBorderColor\r\n }\r\n onGlobeClick={() => {\r\n setMouseClickData(undefined);\r\n }}\r\n onPolygonClick={(polygon: any) => {\r\n const clickedData = polygon?.properties?.[mapProperty]\r\n ? data.find(el => el.id === polygon?.properties?.[mapProperty])\r\n : undefined;\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (\r\n isEqual(mouseClickData, clickedData) &&\r\n resetSelectionOnDoubleClick &&\r\n clickedData\r\n ) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(clickedData);\r\n onSeriesMouseClick?.(clickedData);\r\n }\r\n }\r\n }}\r\n onPolygonHover={(polygon: any) => {\r\n const hoverData = polygon?.properties?.[mapProperty]\r\n ? data.find(el => el.id === polygon?.properties?.[mapProperty])\r\n : undefined;\r\n setMouseOverData(hoverData);\r\n onSeriesMouseOver?.(hoverData);\r\n }}\r\n atmosphereColor={atmosphereColor}\r\n atmosphereAltitude={atmosphereAltitude}\r\n globeCurvatureResolution={globeCurvatureResolution}\r\n globeMaterial={materials}\r\n backgroundColor='rgba(0, 0, 0, 0)'\r\n polygonsTransitionDuration={100}\r\n onGlobeReady={() => {\r\n if (globeEl.current) {\r\n globeEl.current.pointOfView({\r\n lat: centerLat,\r\n lng: centerLng,\r\n });\r\n const scene = globeEl.current.scene();\r\n setTimeout(() => {\r\n const polygons = scene.children[3]?.children[0]?.children[4]?.children || [];\r\n polygons.forEach(d => {\r\n const line = d.children[1];\r\n line.renderOrder = 2;\r\n });\r\n }, 300);\r\n const camera = globeEl.current.camera();\r\n scene.add(camera);\r\n handleGlobeReady();\r\n }\r\n }}\r\n />\r\n {showColorScale === false ? null : (\r\n <div className={cn('absolute left-4 bottom-4 map-color-legend', classNames?.colorLegend)}>\r\n {showLegend ? (\r\n <>\r\n <div\r\n className='color-legend-close-button bg-[rgba(240,240,240,0.7)] dark:bg-[rgba(30,30,30,0.7)] border border-[var(--gray-400)] rounded-full w-6 h-6 p-[3px] cursor-pointer z-10 absolute right-[-0.75rem] top-[-0.75rem]'\r\n onClick={() => {\r\n setShowLegend(false);\r\n }}\r\n >\r\n <X />\r\n </div>\r\n <div\r\n className='color-legend-box p-2 bg-[rgba(240,240,240,0.7)] dark:bg-[rgba(30,30,30,0.7)]'\r\n style={{\r\n width: categorical ? undefined : '340px',\r\n }}\r\n >\r\n {colorLegendTitle && colorLegendTitle !== '' ? (\r\n <P\r\n size='xs'\r\n marginBottom='xs'\r\n className='p-0 leading-normal overflow-hidden text-primary-gray-700 dark:text-primary-gray-300'\r\n style={{\r\n display: '-webkit-box',\r\n WebkitLineClamp: '1',\r\n WebkitBoxOrient: 'vertical',\r\n }}\r\n >\r\n {colorLegendTitle}\r\n </P>\r\n ) : null}\r\n {!categorical ? (\r\n <svg width='100%' viewBox='0 0 320 30' direction='ltr'>\r\n <g>\r\n {colorDomain.map((d, i) => (\r\n <g key={i} className='cursor-pointer'>\r\n <rect\r\n x={(i * 320) / colors.length + 1}\r\n y={1}\r\n width={320 / colors.length - 2}\r\n height={8}\r\n style={{\r\n fill: colors[i],\r\n stroke: colors[i],\r\n }}\r\n />\r\n <text\r\n x={((i + 1) * 320) / colors.length}\r\n y={25}\r\n className='fill-primary-gray-700 dark:fill-primary-gray-300 text-xs'\r\n style={{ textAnchor: 'middle' }}\r\n >\r\n {numberFormattingFunction(d as number, 'NA')}\r\n </text>\r\n </g>\r\n ))}\r\n <g>\r\n <rect\r\n x={(colorDomain.length * 320) / colors.length + 1}\r\n y={1}\r\n width={320 / colors.length - 2}\r\n height={8}\r\n style={{\r\n fill: colors[colorDomain.length],\r\n stroke: colors[colorDomain.length],\r\n }}\r\n />\r\n </g>\r\n </g>\r\n </svg>\r\n ) : (\r\n <div className='flex flex-col gap-3'>\r\n {colorDomain.map((d, i) => (\r\n <div key={i} className='flex gap-2 items-center'>\r\n <div\r\n className='w-2 h-2 rounded-full'\r\n style={{ backgroundColor: colors[i % colors.length] }}\r\n />\r\n <P size='sm' marginBottom='none' leading='none'>\r\n {d}\r\n </P>\r\n </div>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </>\r\n ) : (\r\n <button\r\n type='button'\r\n className='mb-0 border-0 bg-transparent p-0 self-start'\r\n onClick={() => {\r\n setShowLegend(true);\r\n }}\r\n >\r\n <div className='show-color-legend-button items-start text-sm font-medium cursor-pointer p-2 mb-0 flex text-primary-black dark:text-primary-gray-300 bg-primary-gray-300 dark:bg-primary-gray-600 border-primary-gray-400 dark:border-primary-gray-500'>\r\n Show Legend\r\n </div>\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n {mouseOverData && tooltip ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={mousePos.x}\r\n yPos={mousePos.y}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <Modal\r\n open={mouseClickData !== undefined}\r\n onClose={() => {\r\n setMouseClickData(undefined);\r\n }}\r\n >\r\n <div\r\n className='graph-modal-content m-0'\r\n dangerouslySetInnerHTML={\r\n typeof detailsOnClick === 'string'\r\n ? { __html: string2HTML(detailsOnClick, mouseClickData) }\r\n : undefined\r\n }\r\n >\r\n {typeof detailsOnClick === 'function' ? detailsOnClick(mouseClickData) : null}\r\n </div>\r\n </Modal>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n\r\nexport default Graph;\r\n","import React, { useEffect, useEffectEvent, useRef, useState } from 'react';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\nimport * as THREE from 'three';\r\n\r\nimport Graph from './Graph';\r\n\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport {\r\n ChoroplethMapDataType,\r\n ClassNameObject,\r\n FogDataType,\r\n Languages,\r\n LightConfig,\r\n ScaleDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { fetchAndParseJSON } from '@/Utils/fetchAndParseData';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { getJenks } from '@/Utils/getJenks';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: ChoroplethMapDataType[];\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Colors for the choropleth map */\r\n colors?: string[];\r\n /** Domain of colors for the graph */\r\n colorDomain?: number[] | string[];\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Color for the areas where data is no available */\r\n mapNoDataColor?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n\r\n // Graph Parameters\r\n /** Map data as an object in geoJson format or a url for geoJson */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n mapData?: any;\r\n /** Stroke color of the regions in the map */\r\n mapBorderColor?: string;\r\n /** Center point of the map */\r\n centerPoint?: [number, number];\r\n /** Defines if the globe rotates automatically */\r\n autoRotate?: number | boolean;\r\n /** Defines the material property applied to the sphere of the globe */\r\n globeMaterial?: THREE.Material;\r\n /** Defines the lights for the 3D scene */\r\n lights?: LightConfig[];\r\n /** Defines the colo of the glow around the globe */\r\n atmosphereColor?: string;\r\n /** Defines if the globe can be zoomed when scrolled */\r\n enableZoom?: boolean;\r\n /** Position offset of the globe relative to the canvas center */\r\n globeOffset?: [number, number];\r\n /** Defines the camera distance from Earth. This helps in defining the default size of the globe. Smaller = closer camera therefore the globe is bigger) */\r\n scale?: number;\r\n /** Defines the spacing between the country shape polygon with the sphere */\r\n polygonAltitude?: number;\r\n /** Scale for the colors */\r\n scaleType?: Exclude<ScaleDataType, 'linear'>;\r\n /** Toggle visibility of color scale. */\r\n showColorScale?: boolean;\r\n /** Toggle if color scale is collapsed by default. */\r\n collapseColorScaleByDefault?: boolean;\r\n /** The max altitude of the atmosphere, in terms of globe radius units. */\r\n atmosphereAltitude?: number;\r\n /** Resolution in angular degrees of the sphere curvature. The finer the resolution, the more the globe is fragmented into smaller faces to approximate the spheric surface, at the cost of performance. */\r\n globeCurvatureResolution?: number;\r\n /** Defines fog settings for the scene. */\r\n fogSettings?: FogDataType;\r\n /** Property in the property object in mapData geoJson object is used to match to the id in the data object */\r\n mapProperty?: string;\r\n /** Countries or regions to be highlighted */\r\n selectedId?: string;\r\n /** Countries or regions to be highlighted */\r\n highlightedIds?: string[];\r\n /** Defines the altitude of the highlighted countries or the countries on mouseover. */\r\n highlightedAltitude?: number;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n /** Reset selection on double-click. Only applicable when used in a dashboard context with filters. */\r\n resetSelectionOnDoubleClick?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n /** Details displayed on the modal when user clicks of a data point. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse over event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n /** Callback for mouse click event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Unique ID for the graph */\r\n graphID?: string;\r\n}\r\n\r\n/** For using these maps you will have to install [`three`](https://threejs.org/manual/) and [react-globe.gl](https://www.npmjs.com/package/react-globe.gl) package to your project */\r\nexport function ThreeDGlobe(props: Props) {\r\n const {\r\n data,\r\n mapData = 'https://raw.githubusercontent.com/UNDP-Data/dv-country-geojson/refs/heads/main/worldMap-simplified.json',\r\n graphTitle,\r\n colors,\r\n sources,\r\n graphDescription,\r\n height,\r\n width,\r\n footNote = 'The designations employed and the presentation of material on this map do not imply the expression of any opinion whatsoever on the part of the Secretariat of the United Nations or UNDP concerning the legal status of any country, territory, city or area or its authorities, or concerning the delimitation of its frontiers or boundaries.',\r\n colorDomain,\r\n colorLegendTitle,\r\n scaleType = 'threshold',\r\n padding,\r\n mapNoDataColor = Colors.light.graphNoData,\r\n backgroundColor = false,\r\n mapBorderColor = Colors.light.grays['gray-500'],\r\n relativeHeight,\r\n tooltip,\r\n graphID,\r\n mapProperty = 'ISO3',\r\n dataDownload = false,\r\n language = 'en',\r\n minHeight = 0,\r\n theme = 'light',\r\n ariaLabel,\r\n styles,\r\n classNames,\r\n autoRotate = true,\r\n enableZoom = true,\r\n globeMaterial,\r\n centerPoint = [0, 0],\r\n atmosphereColor = '#999',\r\n showColorScale = true,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n onSeriesMouseOver,\r\n onSeriesMouseClick,\r\n highlightedIds = [],\r\n highlightedAltitude = 0.1,\r\n scale = 1,\r\n globeOffset = [0, 0],\r\n polygonAltitude = 0.01,\r\n globeCurvatureResolution = 4,\r\n atmosphereAltitude = 0.15,\r\n fogSettings,\r\n lights = [\r\n {\r\n type: 'ambient',\r\n color: 0x404040,\r\n intensity: 0.4,\r\n },\r\n {\r\n type: 'directional',\r\n color: 0xffffff,\r\n intensity: 1,\r\n position: { x: 5, y: 10, z: 5 },\r\n },\r\n ],\r\n selectedId,\r\n collapseColorScaleByDefault,\r\n } = props;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mapShape, setMapShape] = useState<any>(undefined);\r\n\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const onUpdateShape = useEffectEvent((shape: any) => {\r\n setMapShape(shape);\r\n });\r\n useEffect(() => {\r\n if (typeof mapData === 'string') {\r\n const fetchData = fetchAndParseJSON(mapData);\r\n fetchData.then(d => {\r\n if (\r\n mapData ===\r\n 'https://raw.githubusercontent.com/UNDP-Data/dv-country-geojson/refs/heads/main/worldMap-simplified.json'\r\n ) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const features = d.features.map((el: any) => {\r\n if (el.geometry.type === 'Polygon') {\r\n const reversed = [...el.geometry.coordinates[0]].reverse();\r\n const geometry = { ...el.geometry, coordinates: [reversed] };\r\n return { ...el, geometry };\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const coord: any = [];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n el.geometry.coordinates.forEach((c: any) => {\r\n const reversed = [...c[0]].reverse();\r\n coord.push([reversed]);\r\n });\r\n const geometry = { ...el.geometry, coordinates: coord };\r\n return { ...el, geometry };\r\n });\r\n onUpdateShape(features);\r\n } else onUpdateShape(d.features);\r\n });\r\n } else {\r\n onUpdateShape(mapData.features);\r\n }\r\n }, [mapData]);\r\n\r\n const domain =\r\n colorDomain ||\r\n (scaleType === 'categorical'\r\n ? getUniqValue(data, 'x')\r\n : getJenks(\r\n data.map(d => d.x as number | null | undefined),\r\n colors?.length || 4,\r\n ));\r\n return (\r\n <GraphContainer\r\n className={classNames?.graphContainer}\r\n style={styles?.graphContainer}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={ariaLabel}\r\n backgroundColor={backgroundColor}\r\n theme={theme}\r\n language={language}\r\n minHeight={minHeight}\r\n width={width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n padding={padding}\r\n >\r\n {graphTitle || graphDescription || dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n graphDownload={undefined}\r\n dataDownload={\r\n dataDownload\r\n ? data.map(d => d.data).filter(d => d !== undefined).length > 0\r\n ? data.map(d => d.data).filter(d => d !== undefined)\r\n : data.filter(d => d !== undefined)\r\n : null\r\n }\r\n />\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {svgWidth && svgHeight && mapShape ? (\r\n <Graph\r\n data={data}\r\n globeOffset={globeOffset}\r\n polygonData={mapShape}\r\n colorDomain={domain}\r\n width={width || svgWidth}\r\n height={Math.max(\r\n minHeight,\r\n height ||\r\n (relativeHeight\r\n ? minHeight\r\n ? (width || svgWidth) * relativeHeight > minHeight\r\n ? (width || svgWidth) * relativeHeight\r\n : minHeight\r\n : (width || svgWidth) * relativeHeight\r\n : svgHeight),\r\n )}\r\n colors={\r\n colors ||\r\n (scaleType === 'categorical'\r\n ? Colors[theme].sequentialColors[\r\n `neutralColorsx0${domain.length as 4 | 5 | 6 | 7 | 8 | 9}`\r\n ]\r\n : Colors[theme].sequentialColors[\r\n `neutralColorsx0${(domain.length + 1) as 4 | 5 | 6 | 7 | 8 | 9}`\r\n ])\r\n }\r\n mapNoDataColor={mapNoDataColor}\r\n categorical={scaleType === 'categorical'}\r\n mapBorderColor={mapBorderColor}\r\n tooltip={tooltip}\r\n mapProperty={mapProperty}\r\n styles={styles}\r\n classNames={classNames}\r\n autoRotate={autoRotate === true ? 1.5 : autoRotate === false ? 0 : autoRotate}\r\n enableZoom={enableZoom}\r\n globeMaterial={globeMaterial}\r\n atmosphereColor={atmosphereColor}\r\n colorLegendTitle={colorLegendTitle}\r\n showColorScale={showColorScale}\r\n hoverStrokeColor={\r\n theme === 'light' ? Colors.light.grays['gray-700'] : Colors.light.grays['gray-300']\r\n }\r\n highlightedIds={highlightedIds}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n scale={scale}\r\n polygonAltitude={polygonAltitude}\r\n centerLat={centerPoint[0]}\r\n centerLng={centerPoint[1]}\r\n atmosphereAltitude={atmosphereAltitude}\r\n globeCurvatureResolution={globeCurvatureResolution}\r\n fogSettings={fogSettings}\r\n lights={lights}\r\n highlightedAltitude={highlightedAltitude}\r\n selectedId={selectedId}\r\n collapseColorScaleByDefault={collapseColorScaleByDefault}\r\n />\r\n ) : (\r\n <div\r\n style={{\r\n height: `${Math.max(\r\n minHeight,\r\n height ||\r\n (relativeHeight\r\n ? minHeight\r\n ? (width || svgWidth) * relativeHeight > minHeight\r\n ? (width || svgWidth) * relativeHeight\r\n : minHeight\r\n : (width || svgWidth) * relativeHeight\r\n : svgHeight),\r\n )}px`,\r\n }}\r\n className='flex items-center justify-center'\r\n >\r\n <Spinner aria-label='Loading graph' />\r\n </div>\r\n )}\r\n </GraphArea>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["createLightFromConfig","config","light","type","THREE","AmbientLight","color","intensity","DirectionalLight","position","set","x","y","z","target","undefined","castShadow","shadow","mapSize","width","height","camera","near","far","PointLight","distance","decay","SpotLight","angle","Math","PI","penumbra","Error","Graph","props","autoRotate","data","enableZoom","categorical","colorDomain","colors","globeMaterial","polygonData","mapProperty","mapBorderColor","atmosphereColor","tooltip","styles","classNames","mapNoDataColor","colorLegendTitle","showColorScale","hoverStrokeColor","detailsOnClick","onSeriesMouseClick","onSeriesMouseOver","resetSelectionOnDoubleClick","highlightedIds","scale","globeOffset","polygonAltitude","centerLng","centerLat","atmosphereAltitude","globeCurvatureResolution","fogSettings","lights","highlightedAltitude","selectedId","collapseColorScaleByDefault","globeReady","setGlobeReady","useState","globeEl","useRef","mouseClickData","setMouseClickData","showLegend","setShowLegend","mousePos","setMousePos","mouseOverData","setMouseOverData","colorScale","scaleOrdinal","domain","range","scaleThreshold","useEffect","current","controls","autoRotateSpeed","selectedPolygon","find","d","properties","lng","lat","getCentroidCoordinates","pointOfView","altitude","canvas","renderer","domElement","handleMouseMove","e","clientX","clientY","addEventListener","removeEventListener","materials","MeshBasicMaterial","setupCustomLighting","useCallback","scene","lightsAndObjToRemove","traverse","obj","Light","push","children","forEach","parent","remove","map","i","add","fog","Fog","handleGlobeReady","jsxs","jsx","Globe","polygon","includes","id","val","el","clickedData","isEqual","hoverData","setTimeout","polygons","line","renderOrder","cn","colorLegend","Fragment","X","P","display","WebkitLineClamp","WebkitBoxOrient","backgroundColor","length","fill","stroke","textAnchor","numberFormattingFunction","Tooltip","Modal","__html","string2HTML","ThreeDGlobe","$","_c","mapData","t0","graphTitle","sources","graphDescription","footNote","t1","scaleType","t2","padding","t3","t4","t5","relativeHeight","graphID","t6","dataDownload","t7","language","t8","minHeight","t9","theme","t10","ariaLabel","t11","t12","centerPoint","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","Colors","graphNoData","grays","t25","t26","t27","t28","mapShape","setMapShape","svgWidth","setSvgWidth","svgHeight","setSvgHeight","graphDiv","graphParentDiv","t29","t30","Symbol","for","resizeObserver","ResizeObserver","entries","clientWidth","clientHeight","observe","disconnect","t31","shape","onUpdateShape","useEffectEvent","t32","fetchAndParseJSON","then","features","_temp","t33","t34","getUniqValue","getJenks","_temp2","t35","graphContainer","t36","t37","description","title","GraphHeader","_temp3","filter","_temp4","_temp5","_temp6","_temp7","t38","GraphArea","max","sequentialColors","Spinner","t39","footnote","source","GraphFooter","t40","GraphContainer","d_3","d_2","d_1","d_5","d_4","d_0","geometry","reversed","coordinates","reverse","coord","c","reversed_0","geometry_0"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./index-CHPV5EwG-CTPQjnHt.cjs"),T=require("react"),$=require("./Typography-DX7PlgQU.cjs"),q=require("./numberFormattingFunction-02t-wJta.cjs");function F(A){const e=o.compilerRuntimeExports.c(52),{colorLegendTitle:k,colorDomain:r,colors:t,setSelectedColor:s,width:W,naColor:i,className:w,showNAColor:C}=A,[l,x]=T.useState(void 0),n=i?320:360;let c;e[0]!==w?(c=o.mo("flex flex-wrap gap-0 justify-center leading-0",w),e[0]=w,e[1]=c):c=e[1];const D=W?`${W}px`:"none";let m;e[2]!==D?(m={maxWidth:D},e[2]=D,e[3]=m):m=e[3];let h;e[4]!==k?(h=k&&k!==""?o.jsxRuntimeExports.jsx($.j,{size:"sm",marginBottom:"2xs",className:"w-full text-center",children:k}):null,e[4]=k,e[5]=h):h=e[5];let E;e[6]===Symbol.for("react.memo_cache_sentinel")?(E={maxWidth:"360px"},e[6]=E):E=e[6];let d;if(e[7]!==r||e[8]!==t||e[9]!==l||e[10]!==n||e[11]!==s){let R;e[13]!==t||e[14]!==l||e[15]!==n||e[16]!==s?(R=(S,a)=>o.jsxRuntimeExports.jsxs("g",{onMouseOver:()=>{x(t[a]),s(t[a])},onMouseLeave:()=>{x(void 0),s(void 0)},className:"cursor-pointer",children:[o.jsxRuntimeExports.jsx("rect",{x:a*n/t.length+1,y:1,width:n/t.length-2,height:8,className:`stroke-1 ${l===t[a]?"stroke-primary-gray-700 dark:stroke-primary-gray-300":""}`,style:{fill:t[a],...l!==t[a]?{stroke:t[a]}:{}}}),o.jsxRuntimeExports.jsx("text",{x:(a+1)*n/t.length,y:25,className:"fill-primary-gray-700 dark:fill-primary-gray-300 text-sm",style:{textAnchor:"middle"},children:q.numberFormattingFunction(S,"NA",2,"","")})]},a),e[13]=t,e[14]=l,e[15]=n,e[16]=s,e[17]=R):R=e[17],d=r.map(R),e[7]=r,e[8]=t,e[9]=l,e[10]=n,e[11]=s,e[12]=d}else d=e[12];let g;e[18]!==r.length||e[19]!==t||e[20]!==s?(g=()=>{x(t[r.length]),s(t[r.length])},e[18]=r.length,e[19]=t,e[20]=s,e[21]=g):g=e[21];let u;e[22]!==s?(u=()=>{x(void 0),s(void 0)},e[22]=s,e[23]=u):u=e[23];const M=r.length*n/t.length+1,b=n/t.length-2,L=`cursor-pointer stroke-1 ${l===t[r.length]?"stroke-primary-gray-700 dark:stroke-primary-gray-300":""}`,O=t[r.length];let y;e[24]!==r.length||e[25]!==t||e[26]!==l?(y=l!==t[r.length]?{stroke:t[r.length]}:{},e[24]=r.length,e[25]=t,e[26]=l,e[27]=y):y=e[27];let p;e[28]!==O||e[29]!==y?(p={fill:O,...y},e[28]=O,e[29]=y,e[30]=p):p=e[30];let f;e[31]!==L||e[32]!==p||e[33]!==g||e[34]!==u||e[35]!==M||e[36]!==b?(f=o.jsxRuntimeExports.jsx("g",{children:o.jsxRuntimeExports.jsx("rect",{onMouseOver:g,onMouseLeave:u,x:M,y:1,width:b,height:8,className:L,style:p})}),e[31]=L,e[32]=p,e[33]=g,e[34]=u,e[35]=M,e[36]=b,e[37]=f):f=e[37];let j;e[38]!==l||e[39]!==i||e[40]!==s||e[41]!==C?(j=C?o.jsxRuntimeExports.jsxs("g",{onMouseOver:()=>{x(i||"#D4D6D8"),s(i||"#D4D6D8")},onMouseLeave:()=>{x(void 0),s(void 0)},className:"cursor-pointer",children:[o.jsxRuntimeExports.jsx("rect",{x:335,y:1,width:24,height:8,className:`stroke-1 ${l===i?"stroke-primary-gray-700 dark:stroke-primary-gray-300":""}`,style:{fill:i||"#D4D6D8",...l!==i?{stroke:i}:{},strokeWidth:1}}),o.jsxRuntimeExports.jsx("text",{x:337.5,y:25,className:"fill-primary-gray-700 dark:fill-primary-gray-300 text-sm",style:{textAnchor:"start"},children:"NA"})]}):null,e[38]=l,e[39]=i,e[40]=s,e[41]=C,e[42]=j):j=e[42];let v;e[43]!==f||e[44]!==j||e[45]!==d?(v=o.jsxRuntimeExports.jsx("svg",{width:"100%",viewBox:"0 0 360 30",style:E,direction:"ltr",children:o.jsxRuntimeExports.jsxs("g",{children:[d,f,j]})}),e[43]=f,e[44]=j,e[45]=d,e[46]=v):v=e[46];let N;return e[47]!==c||e[48]!==v||e[49]!==m||e[50]!==h?(N=o.jsxRuntimeExports.jsxs("div",{className:c,style:m,"aria-label":"Color legend",children:[h,v]}),e[47]=c,e[48]=v,e[49]=m,e[50]=h,e[51]=N):N=e[51],N}exports.ThresholdColorLegendWithMouseOver=F;
|
|
2
2
|
//# sourceMappingURL=ThresholdColorLegendWithMouseOver.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThresholdColorLegendWithMouseOver.cjs","sources":["../src/Components/Elements/ThresholdColorLegendWithMouseOver.tsx"],"sourcesContent":["import { useState } from 'react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { P } from '@undp/design-system-react/Typography';\r\n\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\n\r\ninterface Props {\r\n colors: string[];\r\n colorDomain: number[];\r\n colorLegendTitle?: string;\r\n setSelectedColor: (_d?: string) => void;\r\n width?: number;\r\n naColor?: string;\r\n className?: string;\r\n showNAColor: boolean;\r\n}\r\n\r\nexport function ThresholdColorLegendWithMouseOver(props: Props) {\r\n const {\r\n colorLegendTitle,\r\n colorDomain,\r\n colors,\r\n setSelectedColor,\r\n width,\r\n naColor,\r\n className,\r\n showNAColor,\r\n } = props;\r\n\r\n const [hoveredColor, setHoveredColor] = useState<string | undefined>(undefined);\r\n const mainColorWidth = naColor ? 320 : 360;\r\n return (\r\n <div\r\n className={cn('flex flex-wrap gap-0 justify-center leading-0', className)}\r\n style={{ maxWidth: width ? `${width}px` : 'none' }}\r\n aria-label='Color legend'\r\n >\r\n {colorLegendTitle && colorLegendTitle !== '' ? (\r\n <P size='sm' marginBottom='2xs' className='w-full text-center'>\r\n {colorLegendTitle}\r\n </P>\r\n ) : null}\r\n <svg width='100%' viewBox='0 0 360 30' style={{ maxWidth: '360px' }} direction='ltr'>\r\n <g>\r\n {colorDomain.map((d, i) => (\r\n <g\r\n key={i}\r\n onMouseOver={() => {\r\n setHoveredColor(colors[i]);\r\n setSelectedColor(colors[i]);\r\n }}\r\n onMouseLeave={() => {\r\n setHoveredColor(undefined);\r\n setSelectedColor(undefined);\r\n }}\r\n className='cursor-pointer'\r\n >\r\n <rect\r\n x={(i * mainColorWidth) / colors.length + 1}\r\n y={1}\r\n width={mainColorWidth / colors.length - 2}\r\n height={8}\r\n className={`stroke-1 ${\r\n hoveredColor === colors[i]\r\n ? 'stroke-primary-gray-700 dark:stroke-primary-gray-300'\r\n : ''\r\n }`}\r\n style={{\r\n fill: colors[i],\r\n ...(hoveredColor !== colors[i] ? { stroke: colors[i] } : {}),\r\n }}\r\n />\r\n <text\r\n x={((i + 1) * mainColorWidth) / colors.length}\r\n y={25}\r\n className='fill-primary-gray-700 dark:fill-primary-gray-300 text-sm'\r\n style={{ textAnchor: 'middle' }}\r\n >\r\n {numberFormattingFunction(d as number, 'NA', 2, '', '')}\r\n </text>\r\n </g>\r\n ))}\r\n <g>\r\n <rect\r\n onMouseOver={() => {\r\n setHoveredColor(colors[colorDomain.length]);\r\n setSelectedColor(colors[colorDomain.length]);\r\n }}\r\n onMouseLeave={() => {\r\n setHoveredColor(undefined);\r\n setSelectedColor(undefined);\r\n }}\r\n x={(colorDomain.length * mainColorWidth) / colors.length + 1}\r\n y={1}\r\n width={mainColorWidth / colors.length - 2}\r\n height={8}\r\n className={`cursor-pointer stroke-1 ${\r\n hoveredColor === colors[colorDomain.length]\r\n ? 'stroke-primary-gray-700 dark:stroke-primary-gray-300'\r\n : ''\r\n }`}\r\n style={{\r\n fill: colors[colorDomain.length],\r\n ...(hoveredColor !== colors[colorDomain.length]\r\n ? { stroke: colors[colorDomain.length] }\r\n : {}),\r\n }}\r\n />\r\n </g>\r\n {showNAColor ? (\r\n <g\r\n onMouseOver={() => {\r\n setHoveredColor(naColor || '#D4D6D8');\r\n setSelectedColor(naColor || '#D4D6D8');\r\n }}\r\n onMouseLeave={() => {\r\n setHoveredColor(undefined);\r\n setSelectedColor(undefined);\r\n }}\r\n className='cursor-pointer'\r\n >\r\n <rect\r\n x={335}\r\n y={1}\r\n width={24}\r\n height={8}\r\n className={`stroke-1 ${\r\n hoveredColor === naColor\r\n ? 'stroke-primary-gray-700 dark:stroke-primary-gray-300'\r\n : ''\r\n }`}\r\n style={{\r\n fill: naColor || '#D4D6D8',\r\n ...(hoveredColor !== naColor ? { stroke: naColor } : {}),\r\n strokeWidth: 1,\r\n }}\r\n />\r\n <text\r\n x={337.5}\r\n y={25}\r\n className='fill-primary-gray-700 dark:fill-primary-gray-300 text-sm'\r\n style={{ textAnchor: 'start' }}\r\n >\r\n NA\r\n </text>\r\n </g>\r\n ) : null}\r\n </g>\r\n </svg>\r\n </div>\r\n );\r\n}\r\n"],"names":["ThresholdColorLegendWithMouseOver","props","colorLegendTitle","colorDomain","colors","setSelectedColor","width","naColor","className","showNAColor","hoveredColor","setHoveredColor","useState","mainColorWidth","jsxs","cn","jsx","P","d","i","numberFormattingFunction"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ThresholdColorLegendWithMouseOver.cjs","sources":["../src/Components/Elements/ThresholdColorLegendWithMouseOver.tsx"],"sourcesContent":["import { useState } from 'react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { P } from '@undp/design-system-react/Typography';\r\n\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\n\r\ninterface Props {\r\n colors: string[];\r\n colorDomain: number[];\r\n colorLegendTitle?: string;\r\n setSelectedColor: (_d?: string) => void;\r\n width?: number;\r\n naColor?: string;\r\n className?: string;\r\n showNAColor: boolean;\r\n}\r\n\r\nexport function ThresholdColorLegendWithMouseOver(props: Props) {\r\n const {\r\n colorLegendTitle,\r\n colorDomain,\r\n colors,\r\n setSelectedColor,\r\n width,\r\n naColor,\r\n className,\r\n showNAColor,\r\n } = props;\r\n\r\n const [hoveredColor, setHoveredColor] = useState<string | undefined>(undefined);\r\n const mainColorWidth = naColor ? 320 : 360;\r\n return (\r\n <div\r\n className={cn('flex flex-wrap gap-0 justify-center leading-0', className)}\r\n style={{ maxWidth: width ? `${width}px` : 'none' }}\r\n aria-label='Color legend'\r\n >\r\n {colorLegendTitle && colorLegendTitle !== '' ? (\r\n <P size='sm' marginBottom='2xs' className='w-full text-center'>\r\n {colorLegendTitle}\r\n </P>\r\n ) : null}\r\n <svg width='100%' viewBox='0 0 360 30' style={{ maxWidth: '360px' }} direction='ltr'>\r\n <g>\r\n {colorDomain.map((d, i) => (\r\n <g\r\n key={i}\r\n onMouseOver={() => {\r\n setHoveredColor(colors[i]);\r\n setSelectedColor(colors[i]);\r\n }}\r\n onMouseLeave={() => {\r\n setHoveredColor(undefined);\r\n setSelectedColor(undefined);\r\n }}\r\n className='cursor-pointer'\r\n >\r\n <rect\r\n x={(i * mainColorWidth) / colors.length + 1}\r\n y={1}\r\n width={mainColorWidth / colors.length - 2}\r\n height={8}\r\n className={`stroke-1 ${\r\n hoveredColor === colors[i]\r\n ? 'stroke-primary-gray-700 dark:stroke-primary-gray-300'\r\n : ''\r\n }`}\r\n style={{\r\n fill: colors[i],\r\n ...(hoveredColor !== colors[i] ? { stroke: colors[i] } : {}),\r\n }}\r\n />\r\n <text\r\n x={((i + 1) * mainColorWidth) / colors.length}\r\n y={25}\r\n className='fill-primary-gray-700 dark:fill-primary-gray-300 text-sm'\r\n style={{ textAnchor: 'middle' }}\r\n >\r\n {numberFormattingFunction(d as number, 'NA', 2, '', '')}\r\n </text>\r\n </g>\r\n ))}\r\n <g>\r\n <rect\r\n onMouseOver={() => {\r\n setHoveredColor(colors[colorDomain.length]);\r\n setSelectedColor(colors[colorDomain.length]);\r\n }}\r\n onMouseLeave={() => {\r\n setHoveredColor(undefined);\r\n setSelectedColor(undefined);\r\n }}\r\n x={(colorDomain.length * mainColorWidth) / colors.length + 1}\r\n y={1}\r\n width={mainColorWidth / colors.length - 2}\r\n height={8}\r\n className={`cursor-pointer stroke-1 ${\r\n hoveredColor === colors[colorDomain.length]\r\n ? 'stroke-primary-gray-700 dark:stroke-primary-gray-300'\r\n : ''\r\n }`}\r\n style={{\r\n fill: colors[colorDomain.length],\r\n ...(hoveredColor !== colors[colorDomain.length]\r\n ? { stroke: colors[colorDomain.length] }\r\n : {}),\r\n }}\r\n />\r\n </g>\r\n {showNAColor ? (\r\n <g\r\n onMouseOver={() => {\r\n setHoveredColor(naColor || '#D4D6D8');\r\n setSelectedColor(naColor || '#D4D6D8');\r\n }}\r\n onMouseLeave={() => {\r\n setHoveredColor(undefined);\r\n setSelectedColor(undefined);\r\n }}\r\n className='cursor-pointer'\r\n >\r\n <rect\r\n x={335}\r\n y={1}\r\n width={24}\r\n height={8}\r\n className={`stroke-1 ${\r\n hoveredColor === naColor\r\n ? 'stroke-primary-gray-700 dark:stroke-primary-gray-300'\r\n : ''\r\n }`}\r\n style={{\r\n fill: naColor || '#D4D6D8',\r\n ...(hoveredColor !== naColor ? { stroke: naColor } : {}),\r\n strokeWidth: 1,\r\n }}\r\n />\r\n <text\r\n x={337.5}\r\n y={25}\r\n className='fill-primary-gray-700 dark:fill-primary-gray-300 text-sm'\r\n style={{ textAnchor: 'start' }}\r\n >\r\n NA\r\n </text>\r\n </g>\r\n ) : null}\r\n </g>\r\n </svg>\r\n </div>\r\n );\r\n}\r\n"],"names":["ThresholdColorLegendWithMouseOver","props","$","_c","colorLegendTitle","colorDomain","colors","setSelectedColor","width","naColor","className","showNAColor","hoveredColor","setHoveredColor","useState","undefined","mainColorWidth","t0","cn","t1","t2","maxWidth","t3","jsx","P","t4","Symbol","for","t5","t6","d","i","jsxs","length","fill","stroke","textAnchor","numberFormattingFunction","map","t7","t8","t9","t10","t11","t12","t13","t14","t15","strokeWidth","t16","t17"],"mappings":"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"}
|
|
@@ -1,131 +1,101 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { useState as
|
|
3
|
-
import {
|
|
4
|
-
import { n as
|
|
5
|
-
function
|
|
6
|
-
const {
|
|
7
|
-
colorLegendTitle:
|
|
8
|
-
colorDomain:
|
|
9
|
-
colors:
|
|
1
|
+
import { c as E, m as F, j as o } from "./index-CHPV5EwG-Curnpaqc.js";
|
|
2
|
+
import { useState as R } from "react";
|
|
3
|
+
import { j as T } from "./Typography-PxtFcnJb.js";
|
|
4
|
+
import { n as _ } from "./numberFormattingFunction-14YCbkN2.js";
|
|
5
|
+
function I(S) {
|
|
6
|
+
const e = E.c(52), {
|
|
7
|
+
colorLegendTitle: j,
|
|
8
|
+
colorDomain: r,
|
|
9
|
+
colors: t,
|
|
10
10
|
setSelectedColor: l,
|
|
11
|
-
width:
|
|
12
|
-
naColor:
|
|
13
|
-
className:
|
|
14
|
-
showNAColor:
|
|
15
|
-
} =
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
{
|
|
98
|
-
x: 335,
|
|
99
|
-
y: 1,
|
|
100
|
-
width: 24,
|
|
101
|
-
height: 8,
|
|
102
|
-
className: `stroke-1 ${a === s ? "stroke-primary-gray-700 dark:stroke-primary-gray-300" : ""}`,
|
|
103
|
-
style: {
|
|
104
|
-
fill: s || "#D4D6D8",
|
|
105
|
-
...a !== s ? { stroke: s } : {},
|
|
106
|
-
strokeWidth: 1
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
),
|
|
110
|
-
/* @__PURE__ */ r.jsx(
|
|
111
|
-
"text",
|
|
112
|
-
{
|
|
113
|
-
x: 337.5,
|
|
114
|
-
y: 25,
|
|
115
|
-
className: "fill-primary-gray-700 dark:fill-primary-gray-300 text-sm",
|
|
116
|
-
style: { textAnchor: "start" },
|
|
117
|
-
children: "NA"
|
|
118
|
-
}
|
|
119
|
-
)
|
|
120
|
-
]
|
|
121
|
-
}
|
|
122
|
-
) : null
|
|
123
|
-
] }) })
|
|
124
|
-
]
|
|
125
|
-
}
|
|
126
|
-
);
|
|
11
|
+
width: b,
|
|
12
|
+
naColor: i,
|
|
13
|
+
className: C,
|
|
14
|
+
showNAColor: M
|
|
15
|
+
} = S, [s, c] = R(void 0), n = i ? 320 : 360;
|
|
16
|
+
let m;
|
|
17
|
+
e[0] !== C ? (m = F("flex flex-wrap gap-0 justify-center leading-0", C), e[0] = C, e[1] = m) : m = e[1];
|
|
18
|
+
const A = b ? `${b}px` : "none";
|
|
19
|
+
let h;
|
|
20
|
+
e[2] !== A ? (h = {
|
|
21
|
+
maxWidth: A
|
|
22
|
+
}, e[2] = A, e[3] = h) : h = e[3];
|
|
23
|
+
let d;
|
|
24
|
+
e[4] !== j ? (d = j && j !== "" ? /* @__PURE__ */ o.jsx(T, { size: "sm", marginBottom: "2xs", className: "w-full text-center", children: j }) : null, e[4] = j, e[5] = d) : d = e[5];
|
|
25
|
+
let N;
|
|
26
|
+
e[6] === Symbol.for("react.memo_cache_sentinel") ? (N = {
|
|
27
|
+
maxWidth: "360px"
|
|
28
|
+
}, e[6] = N) : N = e[6];
|
|
29
|
+
let g;
|
|
30
|
+
if (e[7] !== r || e[8] !== t || e[9] !== s || e[10] !== n || e[11] !== l) {
|
|
31
|
+
let w;
|
|
32
|
+
e[13] !== t || e[14] !== s || e[15] !== n || e[16] !== l ? (w = (B, a) => /* @__PURE__ */ o.jsxs("g", { onMouseOver: () => {
|
|
33
|
+
c(t[a]), l(t[a]);
|
|
34
|
+
}, onMouseLeave: () => {
|
|
35
|
+
c(void 0), l(void 0);
|
|
36
|
+
}, className: "cursor-pointer", children: [
|
|
37
|
+
/* @__PURE__ */ o.jsx("rect", { x: a * n / t.length + 1, y: 1, width: n / t.length - 2, height: 8, className: `stroke-1 ${s === t[a] ? "stroke-primary-gray-700 dark:stroke-primary-gray-300" : ""}`, style: {
|
|
38
|
+
fill: t[a],
|
|
39
|
+
...s !== t[a] ? {
|
|
40
|
+
stroke: t[a]
|
|
41
|
+
} : {}
|
|
42
|
+
} }),
|
|
43
|
+
/* @__PURE__ */ o.jsx("text", { x: (a + 1) * n / t.length, y: 25, className: "fill-primary-gray-700 dark:fill-primary-gray-300 text-sm", style: {
|
|
44
|
+
textAnchor: "middle"
|
|
45
|
+
}, children: _(B, "NA", 2, "", "") })
|
|
46
|
+
] }, a), e[13] = t, e[14] = s, e[15] = n, e[16] = l, e[17] = w) : w = e[17], g = r.map(w), e[7] = r, e[8] = t, e[9] = s, e[10] = n, e[11] = l, e[12] = g;
|
|
47
|
+
} else
|
|
48
|
+
g = e[12];
|
|
49
|
+
let x;
|
|
50
|
+
e[18] !== r.length || e[19] !== t || e[20] !== l ? (x = () => {
|
|
51
|
+
c(t[r.length]), l(t[r.length]);
|
|
52
|
+
}, e[18] = r.length, e[19] = t, e[20] = l, e[21] = x) : x = e[21];
|
|
53
|
+
let y;
|
|
54
|
+
e[22] !== l ? (y = () => {
|
|
55
|
+
c(void 0), l(void 0);
|
|
56
|
+
}, e[22] = l, e[23] = y) : y = e[23];
|
|
57
|
+
const L = r.length * n / t.length + 1, W = n / t.length - 2, $ = `cursor-pointer stroke-1 ${s === t[r.length] ? "stroke-primary-gray-700 dark:stroke-primary-gray-300" : ""}`, O = t[r.length];
|
|
58
|
+
let f;
|
|
59
|
+
e[24] !== r.length || e[25] !== t || e[26] !== s ? (f = s !== t[r.length] ? {
|
|
60
|
+
stroke: t[r.length]
|
|
61
|
+
} : {}, e[24] = r.length, e[25] = t, e[26] = s, e[27] = f) : f = e[27];
|
|
62
|
+
let p;
|
|
63
|
+
e[28] !== O || e[29] !== f ? (p = {
|
|
64
|
+
fill: O,
|
|
65
|
+
...f
|
|
66
|
+
}, e[28] = O, e[29] = f, e[30] = p) : p = e[30];
|
|
67
|
+
let u;
|
|
68
|
+
e[31] !== $ || e[32] !== p || e[33] !== x || e[34] !== y || e[35] !== L || e[36] !== W ? (u = /* @__PURE__ */ o.jsx("g", { children: /* @__PURE__ */ o.jsx("rect", { onMouseOver: x, onMouseLeave: y, x: L, y: 1, width: W, height: 8, className: $, style: p }) }), e[31] = $, e[32] = p, e[33] = x, e[34] = y, e[35] = L, e[36] = W, e[37] = u) : u = e[37];
|
|
69
|
+
let v;
|
|
70
|
+
e[38] !== s || e[39] !== i || e[40] !== l || e[41] !== M ? (v = M ? /* @__PURE__ */ o.jsxs("g", { onMouseOver: () => {
|
|
71
|
+
c(i || "#D4D6D8"), l(i || "#D4D6D8");
|
|
72
|
+
}, onMouseLeave: () => {
|
|
73
|
+
c(void 0), l(void 0);
|
|
74
|
+
}, className: "cursor-pointer", children: [
|
|
75
|
+
/* @__PURE__ */ o.jsx("rect", { x: 335, y: 1, width: 24, height: 8, className: `stroke-1 ${s === i ? "stroke-primary-gray-700 dark:stroke-primary-gray-300" : ""}`, style: {
|
|
76
|
+
fill: i || "#D4D6D8",
|
|
77
|
+
...s !== i ? {
|
|
78
|
+
stroke: i
|
|
79
|
+
} : {},
|
|
80
|
+
strokeWidth: 1
|
|
81
|
+
} }),
|
|
82
|
+
/* @__PURE__ */ o.jsx("text", { x: 337.5, y: 25, className: "fill-primary-gray-700 dark:fill-primary-gray-300 text-sm", style: {
|
|
83
|
+
textAnchor: "start"
|
|
84
|
+
}, children: "NA" })
|
|
85
|
+
] }) : null, e[38] = s, e[39] = i, e[40] = l, e[41] = M, e[42] = v) : v = e[42];
|
|
86
|
+
let k;
|
|
87
|
+
e[43] !== u || e[44] !== v || e[45] !== g ? (k = /* @__PURE__ */ o.jsx("svg", { width: "100%", viewBox: "0 0 360 30", style: N, direction: "ltr", children: /* @__PURE__ */ o.jsxs("g", { children: [
|
|
88
|
+
g,
|
|
89
|
+
u,
|
|
90
|
+
v
|
|
91
|
+
] }) }), e[43] = u, e[44] = v, e[45] = g, e[46] = k) : k = e[46];
|
|
92
|
+
let D;
|
|
93
|
+
return e[47] !== m || e[48] !== k || e[49] !== h || e[50] !== d ? (D = /* @__PURE__ */ o.jsxs("div", { className: m, style: h, "aria-label": "Color legend", children: [
|
|
94
|
+
d,
|
|
95
|
+
k
|
|
96
|
+
] }), e[47] = m, e[48] = k, e[49] = h, e[50] = d, e[51] = D) : D = e[51], D;
|
|
127
97
|
}
|
|
128
98
|
export {
|
|
129
|
-
|
|
99
|
+
I as ThresholdColorLegendWithMouseOver
|
|
130
100
|
};
|
|
131
101
|
//# sourceMappingURL=ThresholdColorLegendWithMouseOver.js.map
|