@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/SankeyChart.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SankeyChart.cjs","sources":["../node_modules/d3-sankey/node_modules/d3-array/src/max.js","../node_modules/d3-sankey/node_modules/d3-array/src/min.js","../node_modules/d3-sankey/node_modules/d3-array/src/sum.js","../node_modules/d3-sankey/src/align.js","../node_modules/d3-sankey/src/constant.js","../node_modules/d3-sankey/src/sankey.js","../node_modules/d3-sankey/node_modules/d3-path/src/path.js","../node_modules/d3-sankey/node_modules/d3-shape/src/constant.js","../node_modules/d3-sankey/node_modules/d3-shape/src/point.js","../node_modules/d3-sankey/node_modules/d3-shape/src/array.js","../node_modules/d3-sankey/node_modules/d3-shape/src/link/index.js","../node_modules/d3-sankey/src/sankeyLinkHorizontal.js","../src/Components/Graphs/SankeyChart/Graph.tsx","../src/Components/Graphs/SankeyChart/index.tsx"],"sourcesContent":["export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","export default function sum(values, valueof) {\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n sum += value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n sum += value;\n }\n }\n }\n return sum;\n}\n","import {min} from \"d3-array\";\n\nfunction targetDepth(d) {\n return d.target.depth;\n}\n\nexport function left(node) {\n return node.depth;\n}\n\nexport function right(node, n) {\n return n - 1 - node.height;\n}\n\nexport function justify(node, n) {\n return node.sourceLinks.length ? node.depth : n - 1;\n}\n\nexport function center(node) {\n return node.targetLinks.length ? node.depth\n : node.sourceLinks.length ? min(node.sourceLinks, targetDepth) - 1\n : 0;\n}\n","export default function constant(x) {\n return function() {\n return x;\n };\n}\n","import {max, min, sum} from \"d3-array\";\nimport {justify} from \"./align.js\";\nimport constant from \"./constant.js\";\n\nfunction ascendingSourceBreadth(a, b) {\n return ascendingBreadth(a.source, b.source) || a.index - b.index;\n}\n\nfunction ascendingTargetBreadth(a, b) {\n return ascendingBreadth(a.target, b.target) || a.index - b.index;\n}\n\nfunction ascendingBreadth(a, b) {\n return a.y0 - b.y0;\n}\n\nfunction value(d) {\n return d.value;\n}\n\nfunction defaultId(d) {\n return d.index;\n}\n\nfunction defaultNodes(graph) {\n return graph.nodes;\n}\n\nfunction defaultLinks(graph) {\n return graph.links;\n}\n\nfunction find(nodeById, id) {\n const node = nodeById.get(id);\n if (!node) throw new Error(\"missing: \" + id);\n return node;\n}\n\nfunction computeLinkBreadths({nodes}) {\n for (const node of nodes) {\n let y0 = node.y0;\n let y1 = y0;\n for (const link of node.sourceLinks) {\n link.y0 = y0 + link.width / 2;\n y0 += link.width;\n }\n for (const link of node.targetLinks) {\n link.y1 = y1 + link.width / 2;\n y1 += link.width;\n }\n }\n}\n\nexport default function Sankey() {\n let x0 = 0, y0 = 0, x1 = 1, y1 = 1; // extent\n let dx = 24; // nodeWidth\n let dy = 8, py; // nodePadding\n let id = defaultId;\n let align = justify;\n let sort;\n let linkSort;\n let nodes = defaultNodes;\n let links = defaultLinks;\n let iterations = 6;\n\n function sankey() {\n const graph = {nodes: nodes.apply(null, arguments), links: links.apply(null, arguments)};\n computeNodeLinks(graph);\n computeNodeValues(graph);\n computeNodeDepths(graph);\n computeNodeHeights(graph);\n computeNodeBreadths(graph);\n computeLinkBreadths(graph);\n return graph;\n }\n\n sankey.update = function(graph) {\n computeLinkBreadths(graph);\n return graph;\n };\n\n sankey.nodeId = function(_) {\n return arguments.length ? (id = typeof _ === \"function\" ? _ : constant(_), sankey) : id;\n };\n\n sankey.nodeAlign = function(_) {\n return arguments.length ? (align = typeof _ === \"function\" ? _ : constant(_), sankey) : align;\n };\n\n sankey.nodeSort = function(_) {\n return arguments.length ? (sort = _, sankey) : sort;\n };\n\n sankey.nodeWidth = function(_) {\n return arguments.length ? (dx = +_, sankey) : dx;\n };\n\n sankey.nodePadding = function(_) {\n return arguments.length ? (dy = py = +_, sankey) : dy;\n };\n\n sankey.nodes = function(_) {\n return arguments.length ? (nodes = typeof _ === \"function\" ? _ : constant(_), sankey) : nodes;\n };\n\n sankey.links = function(_) {\n return arguments.length ? (links = typeof _ === \"function\" ? _ : constant(_), sankey) : links;\n };\n\n sankey.linkSort = function(_) {\n return arguments.length ? (linkSort = _, sankey) : linkSort;\n };\n\n sankey.size = function(_) {\n return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], sankey) : [x1 - x0, y1 - y0];\n };\n\n sankey.extent = function(_) {\n return arguments.length ? (x0 = +_[0][0], x1 = +_[1][0], y0 = +_[0][1], y1 = +_[1][1], sankey) : [[x0, y0], [x1, y1]];\n };\n\n sankey.iterations = function(_) {\n return arguments.length ? (iterations = +_, sankey) : iterations;\n };\n\n function computeNodeLinks({nodes, links}) {\n for (const [i, node] of nodes.entries()) {\n node.index = i;\n node.sourceLinks = [];\n node.targetLinks = [];\n }\n const nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d]));\n for (const [i, link] of links.entries()) {\n link.index = i;\n let {source, target} = link;\n if (typeof source !== \"object\") source = link.source = find(nodeById, source);\n if (typeof target !== \"object\") target = link.target = find(nodeById, target);\n source.sourceLinks.push(link);\n target.targetLinks.push(link);\n }\n if (linkSort != null) {\n for (const {sourceLinks, targetLinks} of nodes) {\n sourceLinks.sort(linkSort);\n targetLinks.sort(linkSort);\n }\n }\n }\n\n function computeNodeValues({nodes}) {\n for (const node of nodes) {\n node.value = node.fixedValue === undefined\n ? Math.max(sum(node.sourceLinks, value), sum(node.targetLinks, value))\n : node.fixedValue;\n }\n }\n\n function computeNodeDepths({nodes}) {\n const n = nodes.length;\n let current = new Set(nodes);\n let next = new Set;\n let x = 0;\n while (current.size) {\n for (const node of current) {\n node.depth = x;\n for (const {target} of node.sourceLinks) {\n next.add(target);\n }\n }\n if (++x > n) throw new Error(\"circular link\");\n current = next;\n next = new Set;\n }\n }\n\n function computeNodeHeights({nodes}) {\n const n = nodes.length;\n let current = new Set(nodes);\n let next = new Set;\n let x = 0;\n while (current.size) {\n for (const node of current) {\n node.height = x;\n for (const {source} of node.targetLinks) {\n next.add(source);\n }\n }\n if (++x > n) throw new Error(\"circular link\");\n current = next;\n next = new Set;\n }\n }\n\n function computeNodeLayers({nodes}) {\n const x = max(nodes, d => d.depth) + 1;\n const kx = (x1 - x0 - dx) / (x - 1);\n const columns = new Array(x);\n for (const node of nodes) {\n const i = Math.max(0, Math.min(x - 1, Math.floor(align.call(null, node, x))));\n node.layer = i;\n node.x0 = x0 + i * kx;\n node.x1 = node.x0 + dx;\n if (columns[i]) columns[i].push(node);\n else columns[i] = [node];\n }\n if (sort) for (const column of columns) {\n column.sort(sort);\n }\n return columns;\n }\n\n function initializeNodeBreadths(columns) {\n const ky = min(columns, c => (y1 - y0 - (c.length - 1) * py) / sum(c, value));\n for (const nodes of columns) {\n let y = y0;\n for (const node of nodes) {\n node.y0 = y;\n node.y1 = y + node.value * ky;\n y = node.y1 + py;\n for (const link of node.sourceLinks) {\n link.width = link.value * ky;\n }\n }\n y = (y1 - y + py) / (nodes.length + 1);\n for (let i = 0; i < nodes.length; ++i) {\n const node = nodes[i];\n node.y0 += y * (i + 1);\n node.y1 += y * (i + 1);\n }\n reorderLinks(nodes);\n }\n }\n\n function computeNodeBreadths(graph) {\n const columns = computeNodeLayers(graph);\n py = Math.min(dy, (y1 - y0) / (max(columns, c => c.length) - 1));\n initializeNodeBreadths(columns);\n for (let i = 0; i < iterations; ++i) {\n const alpha = Math.pow(0.99, i);\n const beta = Math.max(1 - alpha, (i + 1) / iterations);\n relaxRightToLeft(columns, alpha, beta);\n relaxLeftToRight(columns, alpha, beta);\n }\n }\n\n // Reposition each node based on its incoming (target) links.\n function relaxLeftToRight(columns, alpha, beta) {\n for (let i = 1, n = columns.length; i < n; ++i) {\n const column = columns[i];\n for (const target of column) {\n let y = 0;\n let w = 0;\n for (const {source, value} of target.targetLinks) {\n let v = value * (target.layer - source.layer);\n y += targetTop(source, target) * v;\n w += v;\n }\n if (!(w > 0)) continue;\n let dy = (y / w - target.y0) * alpha;\n target.y0 += dy;\n target.y1 += dy;\n reorderNodeLinks(target);\n }\n if (sort === undefined) column.sort(ascendingBreadth);\n resolveCollisions(column, beta);\n }\n }\n\n // Reposition each node based on its outgoing (source) links.\n function relaxRightToLeft(columns, alpha, beta) {\n for (let n = columns.length, i = n - 2; i >= 0; --i) {\n const column = columns[i];\n for (const source of column) {\n let y = 0;\n let w = 0;\n for (const {target, value} of source.sourceLinks) {\n let v = value * (target.layer - source.layer);\n y += sourceTop(source, target) * v;\n w += v;\n }\n if (!(w > 0)) continue;\n let dy = (y / w - source.y0) * alpha;\n source.y0 += dy;\n source.y1 += dy;\n reorderNodeLinks(source);\n }\n if (sort === undefined) column.sort(ascendingBreadth);\n resolveCollisions(column, beta);\n }\n }\n\n function resolveCollisions(nodes, alpha) {\n const i = nodes.length >> 1;\n const subject = nodes[i];\n resolveCollisionsBottomToTop(nodes, subject.y0 - py, i - 1, alpha);\n resolveCollisionsTopToBottom(nodes, subject.y1 + py, i + 1, alpha);\n resolveCollisionsBottomToTop(nodes, y1, nodes.length - 1, alpha);\n resolveCollisionsTopToBottom(nodes, y0, 0, alpha);\n }\n\n // Push any overlapping nodes down.\n function resolveCollisionsTopToBottom(nodes, y, i, alpha) {\n for (; i < nodes.length; ++i) {\n const node = nodes[i];\n const dy = (y - node.y0) * alpha;\n if (dy > 1e-6) node.y0 += dy, node.y1 += dy;\n y = node.y1 + py;\n }\n }\n\n // Push any overlapping nodes up.\n function resolveCollisionsBottomToTop(nodes, y, i, alpha) {\n for (; i >= 0; --i) {\n const node = nodes[i];\n const dy = (node.y1 - y) * alpha;\n if (dy > 1e-6) node.y0 -= dy, node.y1 -= dy;\n y = node.y0 - py;\n }\n }\n\n function reorderNodeLinks({sourceLinks, targetLinks}) {\n if (linkSort === undefined) {\n for (const {source: {sourceLinks}} of targetLinks) {\n sourceLinks.sort(ascendingTargetBreadth);\n }\n for (const {target: {targetLinks}} of sourceLinks) {\n targetLinks.sort(ascendingSourceBreadth);\n }\n }\n }\n\n function reorderLinks(nodes) {\n if (linkSort === undefined) {\n for (const {sourceLinks, targetLinks} of nodes) {\n sourceLinks.sort(ascendingTargetBreadth);\n targetLinks.sort(ascendingSourceBreadth);\n }\n }\n }\n\n // Returns the target.y0 that would produce an ideal link from source to target.\n function targetTop(source, target) {\n let y = source.y0 - (source.sourceLinks.length - 1) * py / 2;\n for (const {target: node, width} of source.sourceLinks) {\n if (node === target) break;\n y += width + py;\n }\n for (const {source: node, width} of target.targetLinks) {\n if (node === source) break;\n y -= width;\n }\n return y;\n }\n\n // Returns the source.y0 that would produce an ideal link from source to target.\n function sourceTop(source, target) {\n let y = target.y0 - (target.targetLinks.length - 1) * py / 2;\n for (const {source: node, width} of target.targetLinks) {\n if (node === source) break;\n y += width + py;\n }\n for (const {target: node, width} of source.sourceLinks) {\n if (node === target) break;\n y -= width;\n }\n return y;\n }\n\n return sankey;\n}\n","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","export var slice = Array.prototype.slice;\n","import {path} from \"d3-path\";\nimport {slice} from \"../array.js\";\nimport constant from \"../constant.js\";\nimport {x as pointX, y as pointY} from \"../point.js\";\nimport pointRadial from \"../pointRadial.js\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = pointX,\n y = pointY,\n context = null;\n\n function link() {\n var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = path();\n curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), link) : context;\n };\n\n return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0),\n p1 = pointRadial(x0, y0 = (y0 + y1) / 2),\n p2 = pointRadial(x1, y0),\n p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nexport function linkHorizontal() {\n return link(curveHorizontal);\n}\n\nexport function linkVertical() {\n return link(curveVertical);\n}\n\nexport function linkRadial() {\n var l = link(curveRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n","import {linkHorizontal} from \"d3-shape\";\n\nfunction horizontalSource(d) {\n return [d.source.x1, d.y0];\n}\n\nfunction horizontalTarget(d) {\n return [d.target.x0, d.y1];\n}\n\nexport default function() {\n return linkHorizontal()\n .source(horizontalSource)\n .target(horizontalTarget);\n}\n","import isEqual from 'fast-deep-equal';\r\nimport { useRef, useState } from 'react';\r\nimport { sankey, sankeyCenter, sankeyLinkHorizontal } from 'd3-sankey';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\nimport { Modal } from '@undp/design-system-react/Modal';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { P } from '@undp/design-system-react/Typography';\r\n\r\nimport {\r\n AnimateDataType,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n NodeDataType,\r\n NodesLinkDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { string2HTML } from '@/Utils/string2HTML';\r\n\r\ninterface Props {\r\n data: NodesLinkDataType;\r\n showLabels: boolean;\r\n leftMargin: number;\r\n truncateBy: number;\r\n defaultLinkOpacity: number;\r\n width: number;\r\n height: number;\r\n nodePadding: number;\r\n nodeWidth: number;\r\n rightMargin: number;\r\n topMargin: number;\r\n bottomMargin: number;\r\n suffix: string;\r\n prefix: string;\r\n showValues?: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n id: string;\r\n highlightedSourceDataPoints: string[];\r\n highlightedTargetDataPoints: string[];\r\n sourceTitle?: string;\r\n targetTitle?: string;\r\n animate: AnimateDataType;\r\n sortNodes: 'asc' | 'desc' | 'mostReadable' | 'none';\r\n resetSelectionOnDoubleClick: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n}\r\n\r\nexport function Graph(props: Props) {\r\n const {\r\n data,\r\n showLabels,\r\n leftMargin,\r\n rightMargin,\r\n truncateBy,\r\n width,\r\n height,\r\n topMargin,\r\n bottomMargin,\r\n tooltip,\r\n onSeriesMouseOver,\r\n suffix,\r\n prefix,\r\n showValues,\r\n onSeriesMouseClick,\r\n nodePadding,\r\n nodeWidth,\r\n id,\r\n highlightedSourceDataPoints,\r\n highlightedTargetDataPoints,\r\n defaultLinkOpacity,\r\n sourceTitle,\r\n targetTitle,\r\n animate,\r\n sortNodes,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n precision,\r\n customLayers,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [selectedNode, setSelectedNode] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\r\n };\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n const sankeyGenerator =\r\n sortNodes === 'mostReadable'\r\n ? sankey()\r\n .nodeWidth(nodeWidth)\r\n .nodePadding(nodePadding)\r\n .size([graphWidth, graphHeight])\r\n .nodeAlign(sankeyCenter)\r\n : sortNodes === 'none'\r\n ? sankey()\r\n .nodeWidth(nodeWidth)\r\n .nodePadding(nodePadding)\r\n .size([graphWidth, graphHeight])\r\n .nodeAlign(sankeyCenter)\r\n .nodeSort(() => null)\r\n .linkSort(() => null)\r\n : sankey()\r\n .nodeWidth(nodeWidth)\r\n .nodePadding(nodePadding)\r\n .size([graphWidth, graphHeight])\r\n .nodeAlign(sankeyCenter)\r\n .nodeSort(\r\n sortNodes === 'desc'\r\n ? (a, b) => (b.value || 0) - (a.value || 0)\r\n : (a, b) => (a.value || 0) - (b.value || 0),\r\n );\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const { nodes, links } = sankeyGenerator(data as any);\r\n const linkPathGenerator = sankeyLinkHorizontal();\r\n return (\r\n <>\r\n <motion.svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n style={{ marginLeft: 'auto', marginRight: 'auto' }}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n {sourceTitle ? (\r\n <text\r\n x={margin.left}\r\n y={margin.top - 10}\r\n className='text-base font-bold fill-primary-gray-700 dark:fill-primary-gray-100'\r\n style={{ textAnchor: 'start' }}\r\n >\r\n {sourceTitle}\r\n </text>\r\n ) : null}\r\n {targetTitle ? (\r\n <text\r\n x={width - margin.right}\r\n y={margin.top - 10}\r\n className='text-base font-bold fill-primary-gray-700 dark:fill-primary-gray-100'\r\n style={{ textAnchor: 'end' }}\r\n >\r\n {targetTitle}\r\n </text>\r\n ) : null}\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n {nodes\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .filter((d: any) => d.type === 'source')\r\n .map((d, i) => (\r\n <g\r\n key={i}\r\n onMouseEnter={() => {\r\n setSelectedNode(d);\r\n }}\r\n onMouseLeave={() => {\r\n setSelectedNode(undefined);\r\n }}\r\n >\r\n <g transform={`translate(${d.x0},${d.y0})`}>\r\n <rect\r\n x={0}\r\n y={0}\r\n width={(d.x1 || 0) - (d.x0 || 0)}\r\n height={(d.y1 || 0) - (d.y0 || 0)}\r\n style={{ fill: (d as NodeDataType).color }}\r\n />\r\n {showLabels || showValues ? (\r\n <foreignObject\r\n y={0 - nodePadding / 2}\r\n x={0 - leftMargin}\r\n width={leftMargin}\r\n height={(d.y1 || 0) - (d.y0 || 0) + nodePadding}\r\n >\r\n <div\r\n className='flex flex-col gap-0.5 justify-center py-0 px-1.5'\r\n style={{\r\n height: `${(d.y1 || 0) - (d.y0 || 0) + nodePadding}px`,\r\n overflow: 'visible',\r\n }}\r\n >\r\n {showLabels ? (\r\n <P\r\n marginBottom={showValues ? '3xs' : 'none'}\r\n size='sm'\r\n leading='none'\r\n className={cn(\r\n 'sankey-right-label text-right',\r\n classNames?.graphObjectValues,\r\n )}\r\n style={{\r\n hyphens: 'auto',\r\n color: (d as NodeDataType).color,\r\n ...styles?.graphObjectValues,\r\n }}\r\n >\r\n {`${(d as NodeDataType).label}`.length < truncateBy\r\n ? `${(d as NodeDataType).label}`\r\n : `${`${(d as NodeDataType).label}`.substring(0, truncateBy)}...`}\r\n </P>\r\n ) : null}\r\n {showValues ? (\r\n <P\r\n marginBottom='none'\r\n size='sm'\r\n leading='none'\r\n className={cn(\r\n 'sankey-right-value text-right font-bold',\r\n classNames?.graphObjectValues,\r\n )}\r\n style={{\r\n hyphens: 'auto',\r\n color: (d as NodeDataType).color,\r\n ...styles?.graphObjectValues,\r\n }}\r\n >\r\n {numberFormattingFunction(d.value, 'NA', precision, prefix, suffix)}\r\n </P>\r\n ) : null}\r\n </div>\r\n </foreignObject>\r\n ) : null}\r\n </g>\r\n </g>\r\n ))}\r\n {nodes\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .filter((d: any) => d.type === 'target')\r\n .map((d, i) => (\r\n <g\r\n key={i}\r\n onMouseEnter={() => {\r\n setSelectedNode(d);\r\n }}\r\n onMouseLeave={() => {\r\n setSelectedNode(undefined);\r\n }}\r\n >\r\n <g transform={`translate(${d.x0},${d.y0})`}>\r\n <rect\r\n x={0}\r\n y={0}\r\n width={(d.x1 || 0) - (d.x0 || 0)}\r\n height={(d.y1 || 0) - (d.y0 || 0)}\r\n style={{ fill: (d as NodeDataType).color }}\r\n />\r\n {showLabels || showValues ? (\r\n <foreignObject\r\n y={0 - nodePadding / 2}\r\n x={nodeWidth}\r\n width={rightMargin - nodeWidth}\r\n height={(d.y1 || 0) - (d.y0 || 0) + nodePadding}\r\n >\r\n <div\r\n className='flex flex-col gap-0.5 justify-center py-0 px-1.5'\r\n style={{\r\n height: `${(d.y1 || 0) - (d.y0 || 0) + nodePadding}px`,\r\n }}\r\n >\r\n {showLabels ? (\r\n <P\r\n marginBottom={showValues ? '3xs' : 'none'}\r\n size='sm'\r\n leading='none'\r\n className={cn(\r\n 'sankey-left-label text-left',\r\n classNames?.graphObjectValues,\r\n )}\r\n style={{\r\n hyphens: 'auto',\r\n color: (d as NodeDataType).color,\r\n ...styles?.graphObjectValues,\r\n }}\r\n >\r\n {`${(d as NodeDataType).label}`.length < truncateBy\r\n ? `${(d as NodeDataType).label}`\r\n : `${`${(d as NodeDataType).label}`.substring(0, truncateBy)}...`}\r\n </P>\r\n ) : null}\r\n {showValues ? (\r\n <P\r\n size='sm'\r\n leading='none'\r\n marginBottom='none'\r\n className={cn(\r\n 'sankey-left-value text-left font-bold',\r\n classNames?.graphObjectValues,\r\n )}\r\n style={{\r\n hyphens: 'auto',\r\n color: (d as NodeDataType).color,\r\n ...styles?.graphObjectValues,\r\n }}\r\n >\r\n {numberFormattingFunction(d.value, 'NA', precision, prefix, suffix)}\r\n </P>\r\n ) : null}\r\n </div>\r\n </foreignObject>\r\n ) : null}\r\n </g>\r\n </g>\r\n ))}\r\n <defs>\r\n {links.map((d, i) => (\r\n <linearGradient\r\n id={`${id}-gradient-${i}`}\r\n x1='0%'\r\n y1='0%'\r\n x2='100%'\r\n y2='0%'\r\n key={i}\r\n gradientUnits='userSpaceOnUse'\r\n >\r\n <stop\r\n offset='0%'\r\n style={{\r\n stopColor: (d.source as NodeDataType).color,\r\n stopOpacity: 1,\r\n }}\r\n />\r\n <stop\r\n offset='100%'\r\n style={{\r\n stopColor: (d.target as NodeDataType).color,\r\n stopOpacity: 1,\r\n }}\r\n />\r\n </linearGradient>\r\n ))}\r\n </defs>\r\n <g>\r\n <AnimatePresence>\r\n {links.map((d, i) => (\r\n <motion.g\r\n className='undp-viz-g-with-hover'\r\n key={`${d.source}-${d.target}`}\r\n onMouseEnter={event => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setMouseOverData((d as any).data);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onMouseMove={event => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setMouseOverData((d as any).data);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n isEqual(mouseClickData, (d as any).data) &&\r\n resetSelectionOnDoubleClick\r\n ) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setMouseClickData((d as any).data);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?.((d as any).data);\r\n }\r\n }\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n variants={{\r\n initial: {\r\n opacity: selectedNode\r\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d.source as any).name === selectedNode.name ||\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d.target as any).name === selectedNode.name\r\n ? 0.85\r\n : defaultLinkOpacity\r\n : highlightedSourceDataPoints.length !== 0 ||\r\n highlightedTargetDataPoints.length !== 0\r\n ? highlightedSourceDataPoints.indexOf(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d.source as any).label,\r\n ) !== -1 ||\r\n highlightedTargetDataPoints.indexOf(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d.target as any).label,\r\n ) !== -1\r\n ? 0.85\r\n : defaultLinkOpacity\r\n : defaultLinkOpacity,\r\n },\r\n whileInView: {\r\n opacity: selectedNode\r\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d.source as any).name === selectedNode.name ||\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d.target as any).name === selectedNode.name\r\n ? 0.85\r\n : defaultLinkOpacity\r\n : highlightedSourceDataPoints.length !== 0 ||\r\n highlightedTargetDataPoints.length !== 0\r\n ? highlightedSourceDataPoints.indexOf(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d.source as any).label,\r\n ) !== -1 ||\r\n highlightedTargetDataPoints.indexOf(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d.target as any).label,\r\n ) !== -1\r\n ? 0.85\r\n : defaultLinkOpacity\r\n : defaultLinkOpacity,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n <motion.path\r\n key={`${d.source}-${d.target}`}\r\n d={linkPathGenerator(d) || ''}\r\n style={{\r\n stroke: `url(#${id}-gradient-${i})`,\r\n strokeWidth: d.width,\r\n fill: 'none',\r\n }}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n pathLength: 0,\r\n opacity: 1,\r\n },\r\n whileInView: {\r\n pathLength: 1,\r\n opacity: 1,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n </motion.g>\r\n ))}\r\n </AnimatePresence>\r\n </g>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\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 </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect } from 'react';\r\nimport sum from 'lodash.sum';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport orderBy from 'lodash.orderby';\r\n\r\nimport { Graph } from './Graph';\r\n\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport {\r\n AnimateDataType,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n Languages,\r\n NodesLinkDataType,\r\n SankeyDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { generateRandomString } from '@/Utils/generateRandomString';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { uniqBy } from '@/Utils/uniqBy';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: SankeyDataType[];\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 /** Color or array of colors for source */\r\n sourceColors?: string[] | string;\r\n /** Color or array of colors for targets */\r\n targetColors?: string[] | string;\r\n /** Domain of colors for the source */\r\n sourceColorDomain?: (string | number)[];\r\n /** Domain of colors for the target */\r\n targetColorDomain?: (string | number)[];\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 /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n /** Toggles the background to fill the container. This only works if the width of the graph is defined. */\r\n fillContainer?: boolean;\r\n /** Padding between nodes */\r\n nodePadding?: number;\r\n /** Thickness of each node */\r\n nodeWidth?: number;\r\n\r\n // Values and Ticks\r\n /** Prefix for values */\r\n prefix?: string;\r\n /** Suffix for values */\r\n suffix?: string;\r\n /** Truncate labels by specified length */\r\n truncateBy?: number;\r\n\r\n // Graph Parameters\r\n /** Title of the source */\r\n sourceTitle?: string;\r\n /** Title of the targets */\r\n targetTitle?: string;\r\n /** Toggle visibility of labels */\r\n showLabels?: boolean;\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Source to highlight. Use the label value from data to highlight the data point */\r\n highlightedSourceDataPoints?: (string | number)[];\r\n /** Targets to highlight. Use the label value from data to highlight the data point */\r\n highlightedTargetDataPoints?: (string | number)[];\r\n /** Opacity of the links */\r\n defaultLinkOpacity?: number;\r\n /** Sorting order of the nodes */\r\n sortNodes?: 'asc' | 'desc' | 'mostReadable' | 'none';\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Enable graph download option as png */\r\n graphDownload?: boolean;\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 when user mouseover on the links. 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\nexport function SankeyChart(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n sources,\r\n graphDescription,\r\n showLabels = true,\r\n leftMargin = 75,\r\n rightMargin = 75,\r\n topMargin = 30,\r\n bottomMargin = 10,\r\n truncateBy = 999,\r\n height,\r\n width,\r\n footNote,\r\n padding,\r\n backgroundColor,\r\n tooltip,\r\n onSeriesMouseOver,\r\n suffix = '',\r\n prefix = '',\r\n relativeHeight,\r\n showValues = true,\r\n graphID,\r\n onSeriesMouseClick,\r\n graphDownload = false,\r\n dataDownload = false,\r\n fillContainer = true,\r\n language = 'en',\r\n minHeight = 0,\r\n theme = 'light',\r\n ariaLabel,\r\n sourceColors,\r\n targetColors,\r\n sourceColorDomain,\r\n targetColorDomain,\r\n nodePadding = 5,\r\n nodeWidth = 5,\r\n highlightedSourceDataPoints = [],\r\n highlightedTargetDataPoints = [],\r\n defaultLinkOpacity = 0.3,\r\n sourceTitle,\r\n targetTitle,\r\n sortNodes = 'mostReadable',\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n animate = false,\r\n precision = 2,\r\n customLayers = [],\r\n } = props;\r\n\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [sankeyData, setSankeyData] = useState<NodesLinkDataType | undefined>(undefined);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const sourceNodes = uniqBy(data, 'source', true).map(d => ({\r\n name: `source_${d}`,\r\n type: 'source' as const,\r\n label: `${d}`,\r\n color:\r\n typeof sourceColors === 'string' || !sourceColors\r\n ? sourceColors || Colors.graphMainColor\r\n : sourceColors[\r\n (sourceColorDomain || uniqBy(data, 'source', true)).findIndex(\r\n el => `${el}` === `${d}`,\r\n ) > sourceColors.length\r\n ? sourceColors.length - 1\r\n : (sourceColorDomain || uniqBy(data, 'source', true)).findIndex(\r\n el => `${el}` === `${d}`,\r\n )\r\n ],\r\n totalValue: sum(data.filter(el => `${el.source}` === `${d}`).map(el => el.value)),\r\n }));\r\n const sourceNodesSorted =\r\n sortNodes === 'asc' || sortNodes === 'desc'\r\n ? orderBy(sourceNodes, ['totalValue'], [sortNodes])\r\n : sourceNodes;\r\n const targetNodes = uniqBy(data, 'target', true).map(d => ({\r\n name: `target_${d}`,\r\n type: 'target' as const,\r\n label: `${d}`,\r\n color:\r\n typeof targetColors === 'string' || !targetColors\r\n ? targetColors || Colors.graphMainColor\r\n : targetColors[\r\n (targetColorDomain || uniqBy(data, 'target', true)).findIndex(\r\n el => `${el}` === `${d}`,\r\n ) > targetColors.length\r\n ? targetColors.length - 1\r\n : (targetColorDomain || uniqBy(data, 'target', true)).findIndex(\r\n el => `${el}` === `${d}`,\r\n )\r\n ],\r\n totalValue: sum(data.filter(el => `${el.target}` === `${d}`).map(el => el.value)),\r\n }));\r\n const targetNodesSorted =\r\n sortNodes === 'asc' || sortNodes === 'desc'\r\n ? orderBy(targetNodes, ['totalValue'], [sortNodes])\r\n : targetNodes;\r\n\r\n const nodes = [...sourceNodesSorted, ...targetNodesSorted];\r\n setSankeyData({\r\n nodes,\r\n links: data.map(d => ({\r\n source: nodes.findIndex(el => el.name === `source_${d.source}`),\r\n target: nodes.findIndex(el => el.name === `target_${d.target}`),\r\n value: d.value,\r\n data: { ...d },\r\n })),\r\n });\r\n }, [data, sortNodes, sourceColorDomain, sourceColors, targetColorDomain, targetColors]);\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(width || entries[0].target.clientWidth || 620);\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 || 620);\r\n if (!width) resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, [width, height]);\r\n\r\n return (\r\n <div\r\n className={`${theme || 'light'} flex ${width ? 'grow-0' : 'grow'} ${\r\n !fillContainer ? 'w-fit' : 'w-full'\r\n } `}\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 !fillContainer ? '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 ref={graphParentDiv}\r\n aria-label={\r\n ariaLabel ||\r\n `${\r\n graphTitle ? `The graph shows ${graphTitle}. ` : ''\r\n }This is a sankey chart showing flow. ${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 gap-4 w-full grow justify-between'>\r\n {graphTitle || graphDescription || graphDownload || 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={graphDownload ? graphParentDiv.current : 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 className='grow flex flex-col justify-center gap-3 w-full'>\r\n {data.length === 0 ? (\r\n <EmptyState />\r\n ) : (\r\n <div\r\n className='flex flex-col grow justify-center gap-3 w-full leading-0'\r\n ref={graphDiv}\r\n aria-label='Graph area'\r\n >\r\n {(width || svgWidth) && (height || svgHeight) && sankeyData ? (\r\n <Graph\r\n data={sankeyData}\r\n width={width || svgWidth}\r\n nodePadding={nodePadding}\r\n nodeWidth={nodeWidth}\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 showLabels={showLabels}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n truncateBy={truncateBy}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n showValues={showValues}\r\n suffix={suffix}\r\n prefix={prefix}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n id={generateRandomString(8)}\r\n highlightedSourceDataPoints={highlightedSourceDataPoints.map(d => `${d}`)}\r\n highlightedTargetDataPoints={highlightedTargetDataPoints.map(d => `${d}`)}\r\n defaultLinkOpacity={defaultLinkOpacity}\r\n sourceTitle={sourceTitle}\r\n targetTitle={targetTitle}\r\n sortNodes={sortNodes}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n styles={styles}\r\n classNames={classNames}\r\n detailsOnClick={detailsOnClick}\r\n animate={\r\n animate === true\r\n ? { duration: 0.5, once: true, amount: 0.5 }\r\n : animate || { duration: 0, once: true, amount: 0 }\r\n }\r\n precision={precision}\r\n customLayers={customLayers}\r\n />\r\n ) : null}\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":["max","values","valueof","value","index","min","sum","targetDepth","d","justify","node","center","constant","x","ascendingSourceBreadth","a","b","ascendingBreadth","ascendingTargetBreadth","defaultId","defaultNodes","graph","defaultLinks","find","nodeById","id","computeLinkBreadths","nodes","y0","y1","link","Sankey","x0","x1","dx","dy","py","align","sort","linkSort","links","iterations","sankey","computeNodeLinks","computeNodeValues","computeNodeDepths","computeNodeHeights","computeNodeBreadths","_","i","source","target","sourceLinks","targetLinks","n","current","next","computeNodeLayers","kx","columns","column","initializeNodeBreadths","ky","c","y","reorderLinks","alpha","beta","relaxRightToLeft","relaxLeftToRight","w","v","targetTop","reorderNodeLinks","resolveCollisions","sourceTop","subject","resolveCollisionsBottomToTop","resolveCollisionsTopToBottom","width","pi","tau","epsilon","tauEpsilon","Path","path","x2","y2","r","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","l","t01","t21","a0","a1","ccw","cw","da","h","p","slice","linkSource","linkTarget","curve","pointX","pointY","context","buffer","argv","s","t","curveHorizontal","linkHorizontal","horizontalSource","horizontalTarget","sankeyLinkHorizontal","Graph","props","data","showLabels","leftMargin","rightMargin","truncateBy","height","topMargin","bottomMargin","tooltip","onSeriesMouseOver","suffix","prefix","showValues","onSeriesMouseClick","nodePadding","nodeWidth","highlightedSourceDataPoints","highlightedTargetDataPoints","defaultLinkOpacity","sourceTitle","targetTitle","animate","sortNodes","resetSelectionOnDoubleClick","detailsOnClick","styles","classNames","precision","customLayers","svgRef","useRef","isInView","useInView","mouseOverData","setMouseOverData","useState","mouseClickData","setMouseClickData","selectedNode","setSelectedNode","eventX","setEventX","eventY","setEventY","margin","graphWidth","graphHeight","sankeyGenerator","sankeyCenter","linkPathGenerator","jsxs","Fragment","motion","jsx","P","cn","AnimatePresence","event","isEqual","Tooltip","Modal","string2HTML","SankeyChart","graphTitle","sources","graphDescription","footNote","padding","backgroundColor","relativeHeight","graphID","graphDownload","dataDownload","fillContainer","language","minHeight","theme","ariaLabel","sourceColors","targetColors","sourceColorDomain","targetColorDomain","svgWidth","setSvgWidth","svgHeight","setSvgHeight","sankeyData","setSankeyData","graphDiv","graphParentDiv","useEffect","sourceNodes","uniqBy","Colors","el","sourceNodesSorted","orderBy","targetNodes","targetNodesSorted","resizeObserver","entries","GraphHeader","EmptyState","generateRandomString","GraphFooter"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11]}
|
|
1
|
+
{"version":3,"file":"SankeyChart.cjs","sources":["../node_modules/d3-sankey/node_modules/d3-array/src/max.js","../node_modules/d3-sankey/node_modules/d3-array/src/min.js","../node_modules/d3-sankey/node_modules/d3-array/src/sum.js","../node_modules/d3-sankey/src/align.js","../node_modules/d3-sankey/src/constant.js","../node_modules/d3-sankey/src/sankey.js","../node_modules/d3-sankey/node_modules/d3-path/src/path.js","../node_modules/d3-sankey/node_modules/d3-shape/src/constant.js","../node_modules/d3-sankey/node_modules/d3-shape/src/point.js","../node_modules/d3-sankey/node_modules/d3-shape/src/array.js","../node_modules/d3-sankey/node_modules/d3-shape/src/link/index.js","../node_modules/d3-sankey/src/sankeyLinkHorizontal.js","../src/Components/Graphs/SankeyChart/Graph.tsx","../src/Components/Graphs/SankeyChart/index.tsx"],"sourcesContent":["export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","export default function sum(values, valueof) {\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n sum += value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n sum += value;\n }\n }\n }\n return sum;\n}\n","import {min} from \"d3-array\";\n\nfunction targetDepth(d) {\n return d.target.depth;\n}\n\nexport function left(node) {\n return node.depth;\n}\n\nexport function right(node, n) {\n return n - 1 - node.height;\n}\n\nexport function justify(node, n) {\n return node.sourceLinks.length ? node.depth : n - 1;\n}\n\nexport function center(node) {\n return node.targetLinks.length ? node.depth\n : node.sourceLinks.length ? min(node.sourceLinks, targetDepth) - 1\n : 0;\n}\n","export default function constant(x) {\n return function() {\n return x;\n };\n}\n","import {max, min, sum} from \"d3-array\";\nimport {justify} from \"./align.js\";\nimport constant from \"./constant.js\";\n\nfunction ascendingSourceBreadth(a, b) {\n return ascendingBreadth(a.source, b.source) || a.index - b.index;\n}\n\nfunction ascendingTargetBreadth(a, b) {\n return ascendingBreadth(a.target, b.target) || a.index - b.index;\n}\n\nfunction ascendingBreadth(a, b) {\n return a.y0 - b.y0;\n}\n\nfunction value(d) {\n return d.value;\n}\n\nfunction defaultId(d) {\n return d.index;\n}\n\nfunction defaultNodes(graph) {\n return graph.nodes;\n}\n\nfunction defaultLinks(graph) {\n return graph.links;\n}\n\nfunction find(nodeById, id) {\n const node = nodeById.get(id);\n if (!node) throw new Error(\"missing: \" + id);\n return node;\n}\n\nfunction computeLinkBreadths({nodes}) {\n for (const node of nodes) {\n let y0 = node.y0;\n let y1 = y0;\n for (const link of node.sourceLinks) {\n link.y0 = y0 + link.width / 2;\n y0 += link.width;\n }\n for (const link of node.targetLinks) {\n link.y1 = y1 + link.width / 2;\n y1 += link.width;\n }\n }\n}\n\nexport default function Sankey() {\n let x0 = 0, y0 = 0, x1 = 1, y1 = 1; // extent\n let dx = 24; // nodeWidth\n let dy = 8, py; // nodePadding\n let id = defaultId;\n let align = justify;\n let sort;\n let linkSort;\n let nodes = defaultNodes;\n let links = defaultLinks;\n let iterations = 6;\n\n function sankey() {\n const graph = {nodes: nodes.apply(null, arguments), links: links.apply(null, arguments)};\n computeNodeLinks(graph);\n computeNodeValues(graph);\n computeNodeDepths(graph);\n computeNodeHeights(graph);\n computeNodeBreadths(graph);\n computeLinkBreadths(graph);\n return graph;\n }\n\n sankey.update = function(graph) {\n computeLinkBreadths(graph);\n return graph;\n };\n\n sankey.nodeId = function(_) {\n return arguments.length ? (id = typeof _ === \"function\" ? _ : constant(_), sankey) : id;\n };\n\n sankey.nodeAlign = function(_) {\n return arguments.length ? (align = typeof _ === \"function\" ? _ : constant(_), sankey) : align;\n };\n\n sankey.nodeSort = function(_) {\n return arguments.length ? (sort = _, sankey) : sort;\n };\n\n sankey.nodeWidth = function(_) {\n return arguments.length ? (dx = +_, sankey) : dx;\n };\n\n sankey.nodePadding = function(_) {\n return arguments.length ? (dy = py = +_, sankey) : dy;\n };\n\n sankey.nodes = function(_) {\n return arguments.length ? (nodes = typeof _ === \"function\" ? _ : constant(_), sankey) : nodes;\n };\n\n sankey.links = function(_) {\n return arguments.length ? (links = typeof _ === \"function\" ? _ : constant(_), sankey) : links;\n };\n\n sankey.linkSort = function(_) {\n return arguments.length ? (linkSort = _, sankey) : linkSort;\n };\n\n sankey.size = function(_) {\n return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], sankey) : [x1 - x0, y1 - y0];\n };\n\n sankey.extent = function(_) {\n return arguments.length ? (x0 = +_[0][0], x1 = +_[1][0], y0 = +_[0][1], y1 = +_[1][1], sankey) : [[x0, y0], [x1, y1]];\n };\n\n sankey.iterations = function(_) {\n return arguments.length ? (iterations = +_, sankey) : iterations;\n };\n\n function computeNodeLinks({nodes, links}) {\n for (const [i, node] of nodes.entries()) {\n node.index = i;\n node.sourceLinks = [];\n node.targetLinks = [];\n }\n const nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d]));\n for (const [i, link] of links.entries()) {\n link.index = i;\n let {source, target} = link;\n if (typeof source !== \"object\") source = link.source = find(nodeById, source);\n if (typeof target !== \"object\") target = link.target = find(nodeById, target);\n source.sourceLinks.push(link);\n target.targetLinks.push(link);\n }\n if (linkSort != null) {\n for (const {sourceLinks, targetLinks} of nodes) {\n sourceLinks.sort(linkSort);\n targetLinks.sort(linkSort);\n }\n }\n }\n\n function computeNodeValues({nodes}) {\n for (const node of nodes) {\n node.value = node.fixedValue === undefined\n ? Math.max(sum(node.sourceLinks, value), sum(node.targetLinks, value))\n : node.fixedValue;\n }\n }\n\n function computeNodeDepths({nodes}) {\n const n = nodes.length;\n let current = new Set(nodes);\n let next = new Set;\n let x = 0;\n while (current.size) {\n for (const node of current) {\n node.depth = x;\n for (const {target} of node.sourceLinks) {\n next.add(target);\n }\n }\n if (++x > n) throw new Error(\"circular link\");\n current = next;\n next = new Set;\n }\n }\n\n function computeNodeHeights({nodes}) {\n const n = nodes.length;\n let current = new Set(nodes);\n let next = new Set;\n let x = 0;\n while (current.size) {\n for (const node of current) {\n node.height = x;\n for (const {source} of node.targetLinks) {\n next.add(source);\n }\n }\n if (++x > n) throw new Error(\"circular link\");\n current = next;\n next = new Set;\n }\n }\n\n function computeNodeLayers({nodes}) {\n const x = max(nodes, d => d.depth) + 1;\n const kx = (x1 - x0 - dx) / (x - 1);\n const columns = new Array(x);\n for (const node of nodes) {\n const i = Math.max(0, Math.min(x - 1, Math.floor(align.call(null, node, x))));\n node.layer = i;\n node.x0 = x0 + i * kx;\n node.x1 = node.x0 + dx;\n if (columns[i]) columns[i].push(node);\n else columns[i] = [node];\n }\n if (sort) for (const column of columns) {\n column.sort(sort);\n }\n return columns;\n }\n\n function initializeNodeBreadths(columns) {\n const ky = min(columns, c => (y1 - y0 - (c.length - 1) * py) / sum(c, value));\n for (const nodes of columns) {\n let y = y0;\n for (const node of nodes) {\n node.y0 = y;\n node.y1 = y + node.value * ky;\n y = node.y1 + py;\n for (const link of node.sourceLinks) {\n link.width = link.value * ky;\n }\n }\n y = (y1 - y + py) / (nodes.length + 1);\n for (let i = 0; i < nodes.length; ++i) {\n const node = nodes[i];\n node.y0 += y * (i + 1);\n node.y1 += y * (i + 1);\n }\n reorderLinks(nodes);\n }\n }\n\n function computeNodeBreadths(graph) {\n const columns = computeNodeLayers(graph);\n py = Math.min(dy, (y1 - y0) / (max(columns, c => c.length) - 1));\n initializeNodeBreadths(columns);\n for (let i = 0; i < iterations; ++i) {\n const alpha = Math.pow(0.99, i);\n const beta = Math.max(1 - alpha, (i + 1) / iterations);\n relaxRightToLeft(columns, alpha, beta);\n relaxLeftToRight(columns, alpha, beta);\n }\n }\n\n // Reposition each node based on its incoming (target) links.\n function relaxLeftToRight(columns, alpha, beta) {\n for (let i = 1, n = columns.length; i < n; ++i) {\n const column = columns[i];\n for (const target of column) {\n let y = 0;\n let w = 0;\n for (const {source, value} of target.targetLinks) {\n let v = value * (target.layer - source.layer);\n y += targetTop(source, target) * v;\n w += v;\n }\n if (!(w > 0)) continue;\n let dy = (y / w - target.y0) * alpha;\n target.y0 += dy;\n target.y1 += dy;\n reorderNodeLinks(target);\n }\n if (sort === undefined) column.sort(ascendingBreadth);\n resolveCollisions(column, beta);\n }\n }\n\n // Reposition each node based on its outgoing (source) links.\n function relaxRightToLeft(columns, alpha, beta) {\n for (let n = columns.length, i = n - 2; i >= 0; --i) {\n const column = columns[i];\n for (const source of column) {\n let y = 0;\n let w = 0;\n for (const {target, value} of source.sourceLinks) {\n let v = value * (target.layer - source.layer);\n y += sourceTop(source, target) * v;\n w += v;\n }\n if (!(w > 0)) continue;\n let dy = (y / w - source.y0) * alpha;\n source.y0 += dy;\n source.y1 += dy;\n reorderNodeLinks(source);\n }\n if (sort === undefined) column.sort(ascendingBreadth);\n resolveCollisions(column, beta);\n }\n }\n\n function resolveCollisions(nodes, alpha) {\n const i = nodes.length >> 1;\n const subject = nodes[i];\n resolveCollisionsBottomToTop(nodes, subject.y0 - py, i - 1, alpha);\n resolveCollisionsTopToBottom(nodes, subject.y1 + py, i + 1, alpha);\n resolveCollisionsBottomToTop(nodes, y1, nodes.length - 1, alpha);\n resolveCollisionsTopToBottom(nodes, y0, 0, alpha);\n }\n\n // Push any overlapping nodes down.\n function resolveCollisionsTopToBottom(nodes, y, i, alpha) {\n for (; i < nodes.length; ++i) {\n const node = nodes[i];\n const dy = (y - node.y0) * alpha;\n if (dy > 1e-6) node.y0 += dy, node.y1 += dy;\n y = node.y1 + py;\n }\n }\n\n // Push any overlapping nodes up.\n function resolveCollisionsBottomToTop(nodes, y, i, alpha) {\n for (; i >= 0; --i) {\n const node = nodes[i];\n const dy = (node.y1 - y) * alpha;\n if (dy > 1e-6) node.y0 -= dy, node.y1 -= dy;\n y = node.y0 - py;\n }\n }\n\n function reorderNodeLinks({sourceLinks, targetLinks}) {\n if (linkSort === undefined) {\n for (const {source: {sourceLinks}} of targetLinks) {\n sourceLinks.sort(ascendingTargetBreadth);\n }\n for (const {target: {targetLinks}} of sourceLinks) {\n targetLinks.sort(ascendingSourceBreadth);\n }\n }\n }\n\n function reorderLinks(nodes) {\n if (linkSort === undefined) {\n for (const {sourceLinks, targetLinks} of nodes) {\n sourceLinks.sort(ascendingTargetBreadth);\n targetLinks.sort(ascendingSourceBreadth);\n }\n }\n }\n\n // Returns the target.y0 that would produce an ideal link from source to target.\n function targetTop(source, target) {\n let y = source.y0 - (source.sourceLinks.length - 1) * py / 2;\n for (const {target: node, width} of source.sourceLinks) {\n if (node === target) break;\n y += width + py;\n }\n for (const {source: node, width} of target.targetLinks) {\n if (node === source) break;\n y -= width;\n }\n return y;\n }\n\n // Returns the source.y0 that would produce an ideal link from source to target.\n function sourceTop(source, target) {\n let y = target.y0 - (target.targetLinks.length - 1) * py / 2;\n for (const {source: node, width} of target.targetLinks) {\n if (node === source) break;\n y += width + py;\n }\n for (const {target: node, width} of source.sourceLinks) {\n if (node === target) break;\n y -= width;\n }\n return y;\n }\n\n return sankey;\n}\n","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","export var slice = Array.prototype.slice;\n","import {path} from \"d3-path\";\nimport {slice} from \"../array.js\";\nimport constant from \"../constant.js\";\nimport {x as pointX, y as pointY} from \"../point.js\";\nimport pointRadial from \"../pointRadial.js\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = pointX,\n y = pointY,\n context = null;\n\n function link() {\n var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = path();\n curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), link) : context;\n };\n\n return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0),\n p1 = pointRadial(x0, y0 = (y0 + y1) / 2),\n p2 = pointRadial(x1, y0),\n p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nexport function linkHorizontal() {\n return link(curveHorizontal);\n}\n\nexport function linkVertical() {\n return link(curveVertical);\n}\n\nexport function linkRadial() {\n var l = link(curveRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n","import {linkHorizontal} from \"d3-shape\";\n\nfunction horizontalSource(d) {\n return [d.source.x1, d.y0];\n}\n\nfunction horizontalTarget(d) {\n return [d.target.x0, d.y1];\n}\n\nexport default function() {\n return linkHorizontal()\n .source(horizontalSource)\n .target(horizontalTarget);\n}\n","import isEqual from 'fast-deep-equal';\r\nimport { useRef, useState } from 'react';\r\nimport { sankey, sankeyCenter, sankeyLinkHorizontal } from 'd3-sankey';\r\nimport { AnimatePresence, motion, useInView } from 'motion/react';\r\nimport { Modal } from '@undp/design-system-react/Modal';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { P } from '@undp/design-system-react/Typography';\r\n\r\nimport {\r\n AnimateDataType,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n NodeDataType,\r\n NodesLinkDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { string2HTML } from '@/Utils/string2HTML';\r\n\r\ninterface Props {\r\n data: NodesLinkDataType;\r\n showLabels: boolean;\r\n leftMargin: number;\r\n truncateBy: number;\r\n defaultLinkOpacity: number;\r\n width: number;\r\n height: number;\r\n nodePadding: number;\r\n nodeWidth: number;\r\n rightMargin: number;\r\n topMargin: number;\r\n bottomMargin: number;\r\n suffix: string;\r\n prefix: string;\r\n showValues?: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n id: string;\r\n highlightedSourceDataPoints: string[];\r\n highlightedTargetDataPoints: string[];\r\n sourceTitle?: string;\r\n targetTitle?: string;\r\n animate: AnimateDataType;\r\n sortNodes: 'asc' | 'desc' | 'mostReadable' | 'none';\r\n resetSelectionOnDoubleClick: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n}\r\n\r\nexport function Graph(props: Props) {\r\n const {\r\n data,\r\n showLabels,\r\n leftMargin,\r\n rightMargin,\r\n truncateBy,\r\n width,\r\n height,\r\n topMargin,\r\n bottomMargin,\r\n tooltip,\r\n onSeriesMouseOver,\r\n suffix,\r\n prefix,\r\n showValues,\r\n onSeriesMouseClick,\r\n nodePadding,\r\n nodeWidth,\r\n id,\r\n highlightedSourceDataPoints,\r\n highlightedTargetDataPoints,\r\n defaultLinkOpacity,\r\n sourceTitle,\r\n targetTitle,\r\n animate,\r\n sortNodes,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n precision,\r\n customLayers,\r\n } = props;\r\n const svgRef = useRef(null);\r\n const isInView = useInView(svgRef, {\r\n once: animate.once,\r\n amount: animate.amount,\r\n });\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseOverData, setMouseOverData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [selectedNode, setSelectedNode] = useState<any>(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\r\n };\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n const sankeyGenerator =\r\n sortNodes === 'mostReadable'\r\n ? sankey()\r\n .nodeWidth(nodeWidth)\r\n .nodePadding(nodePadding)\r\n .size([graphWidth, graphHeight])\r\n .nodeAlign(sankeyCenter)\r\n : sortNodes === 'none'\r\n ? sankey()\r\n .nodeWidth(nodeWidth)\r\n .nodePadding(nodePadding)\r\n .size([graphWidth, graphHeight])\r\n .nodeAlign(sankeyCenter)\r\n .nodeSort(() => null)\r\n .linkSort(() => null)\r\n : sankey()\r\n .nodeWidth(nodeWidth)\r\n .nodePadding(nodePadding)\r\n .size([graphWidth, graphHeight])\r\n .nodeAlign(sankeyCenter)\r\n .nodeSort(\r\n sortNodes === 'desc'\r\n ? (a, b) => (b.value || 0) - (a.value || 0)\r\n : (a, b) => (a.value || 0) - (b.value || 0),\r\n );\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const { nodes, links } = sankeyGenerator(data as any);\r\n const linkPathGenerator = sankeyLinkHorizontal();\r\n return (\r\n <>\r\n <motion.svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n style={{ marginLeft: 'auto', marginRight: 'auto' }}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n {sourceTitle ? (\r\n <text\r\n x={margin.left}\r\n y={margin.top - 10}\r\n className='text-base font-bold fill-primary-gray-700 dark:fill-primary-gray-100'\r\n style={{ textAnchor: 'start' }}\r\n >\r\n {sourceTitle}\r\n </text>\r\n ) : null}\r\n {targetTitle ? (\r\n <text\r\n x={width - margin.right}\r\n y={margin.top - 10}\r\n className='text-base font-bold fill-primary-gray-700 dark:fill-primary-gray-100'\r\n style={{ textAnchor: 'end' }}\r\n >\r\n {targetTitle}\r\n </text>\r\n ) : null}\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n {nodes\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .filter((d: any) => d.type === 'source')\r\n .map((d, i) => (\r\n <g\r\n key={i}\r\n onMouseEnter={() => {\r\n setSelectedNode(d);\r\n }}\r\n onMouseLeave={() => {\r\n setSelectedNode(undefined);\r\n }}\r\n >\r\n <g transform={`translate(${d.x0},${d.y0})`}>\r\n <rect\r\n x={0}\r\n y={0}\r\n width={(d.x1 || 0) - (d.x0 || 0)}\r\n height={(d.y1 || 0) - (d.y0 || 0)}\r\n style={{ fill: (d as NodeDataType).color }}\r\n />\r\n {showLabels || showValues ? (\r\n <foreignObject\r\n y={0 - nodePadding / 2}\r\n x={0 - leftMargin}\r\n width={leftMargin}\r\n height={(d.y1 || 0) - (d.y0 || 0) + nodePadding}\r\n >\r\n <div\r\n className='flex flex-col gap-0.5 justify-center py-0 px-1.5'\r\n style={{\r\n height: `${(d.y1 || 0) - (d.y0 || 0) + nodePadding}px`,\r\n overflow: 'visible',\r\n }}\r\n >\r\n {showLabels ? (\r\n <P\r\n marginBottom={showValues ? '3xs' : 'none'}\r\n size='sm'\r\n leading='none'\r\n className={cn(\r\n 'sankey-right-label text-right',\r\n classNames?.graphObjectValues,\r\n )}\r\n style={{\r\n hyphens: 'auto',\r\n color: (d as NodeDataType).color,\r\n ...styles?.graphObjectValues,\r\n }}\r\n >\r\n {`${(d as NodeDataType).label}`.length < truncateBy\r\n ? `${(d as NodeDataType).label}`\r\n : `${`${(d as NodeDataType).label}`.substring(0, truncateBy)}...`}\r\n </P>\r\n ) : null}\r\n {showValues ? (\r\n <P\r\n marginBottom='none'\r\n size='sm'\r\n leading='none'\r\n className={cn(\r\n 'sankey-right-value text-right font-bold',\r\n classNames?.graphObjectValues,\r\n )}\r\n style={{\r\n hyphens: 'auto',\r\n color: (d as NodeDataType).color,\r\n ...styles?.graphObjectValues,\r\n }}\r\n >\r\n {numberFormattingFunction(d.value, 'NA', precision, prefix, suffix)}\r\n </P>\r\n ) : null}\r\n </div>\r\n </foreignObject>\r\n ) : null}\r\n </g>\r\n </g>\r\n ))}\r\n {nodes\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .filter((d: any) => d.type === 'target')\r\n .map((d, i) => (\r\n <g\r\n key={i}\r\n onMouseEnter={() => {\r\n setSelectedNode(d);\r\n }}\r\n onMouseLeave={() => {\r\n setSelectedNode(undefined);\r\n }}\r\n >\r\n <g transform={`translate(${d.x0},${d.y0})`}>\r\n <rect\r\n x={0}\r\n y={0}\r\n width={(d.x1 || 0) - (d.x0 || 0)}\r\n height={(d.y1 || 0) - (d.y0 || 0)}\r\n style={{ fill: (d as NodeDataType).color }}\r\n />\r\n {showLabels || showValues ? (\r\n <foreignObject\r\n y={0 - nodePadding / 2}\r\n x={nodeWidth}\r\n width={rightMargin - nodeWidth}\r\n height={(d.y1 || 0) - (d.y0 || 0) + nodePadding}\r\n >\r\n <div\r\n className='flex flex-col gap-0.5 justify-center py-0 px-1.5'\r\n style={{\r\n height: `${(d.y1 || 0) - (d.y0 || 0) + nodePadding}px`,\r\n }}\r\n >\r\n {showLabels ? (\r\n <P\r\n marginBottom={showValues ? '3xs' : 'none'}\r\n size='sm'\r\n leading='none'\r\n className={cn(\r\n 'sankey-left-label text-left',\r\n classNames?.graphObjectValues,\r\n )}\r\n style={{\r\n hyphens: 'auto',\r\n color: (d as NodeDataType).color,\r\n ...styles?.graphObjectValues,\r\n }}\r\n >\r\n {`${(d as NodeDataType).label}`.length < truncateBy\r\n ? `${(d as NodeDataType).label}`\r\n : `${`${(d as NodeDataType).label}`.substring(0, truncateBy)}...`}\r\n </P>\r\n ) : null}\r\n {showValues ? (\r\n <P\r\n size='sm'\r\n leading='none'\r\n marginBottom='none'\r\n className={cn(\r\n 'sankey-left-value text-left font-bold',\r\n classNames?.graphObjectValues,\r\n )}\r\n style={{\r\n hyphens: 'auto',\r\n color: (d as NodeDataType).color,\r\n ...styles?.graphObjectValues,\r\n }}\r\n >\r\n {numberFormattingFunction(d.value, 'NA', precision, prefix, suffix)}\r\n </P>\r\n ) : null}\r\n </div>\r\n </foreignObject>\r\n ) : null}\r\n </g>\r\n </g>\r\n ))}\r\n <defs>\r\n {links.map((d, i) => (\r\n <linearGradient\r\n id={`${id}-gradient-${i}`}\r\n x1='0%'\r\n y1='0%'\r\n x2='100%'\r\n y2='0%'\r\n key={i}\r\n gradientUnits='userSpaceOnUse'\r\n >\r\n <stop\r\n offset='0%'\r\n style={{\r\n stopColor: (d.source as NodeDataType).color,\r\n stopOpacity: 1,\r\n }}\r\n />\r\n <stop\r\n offset='100%'\r\n style={{\r\n stopColor: (d.target as NodeDataType).color,\r\n stopOpacity: 1,\r\n }}\r\n />\r\n </linearGradient>\r\n ))}\r\n </defs>\r\n <g>\r\n <AnimatePresence>\r\n {links.map((d, i) => (\r\n <motion.g\r\n className='undp-viz-g-with-hover'\r\n key={`${d.source}-${d.target}`}\r\n onMouseEnter={event => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setMouseOverData((d as any).data);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onMouseMove={event => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setMouseOverData((d as any).data);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n isEqual(mouseClickData, (d as any).data) &&\r\n resetSelectionOnDoubleClick\r\n ) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setMouseClickData((d as any).data);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?.((d as any).data);\r\n }\r\n }\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n variants={{\r\n initial: {\r\n opacity: selectedNode\r\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d.source as any).name === selectedNode.name ||\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d.target as any).name === selectedNode.name\r\n ? 0.85\r\n : defaultLinkOpacity\r\n : highlightedSourceDataPoints.length !== 0 ||\r\n highlightedTargetDataPoints.length !== 0\r\n ? highlightedSourceDataPoints.indexOf(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d.source as any).label,\r\n ) !== -1 ||\r\n highlightedTargetDataPoints.indexOf(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d.target as any).label,\r\n ) !== -1\r\n ? 0.85\r\n : defaultLinkOpacity\r\n : defaultLinkOpacity,\r\n },\r\n whileInView: {\r\n opacity: selectedNode\r\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d.source as any).name === selectedNode.name ||\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d.target as any).name === selectedNode.name\r\n ? 0.85\r\n : defaultLinkOpacity\r\n : highlightedSourceDataPoints.length !== 0 ||\r\n highlightedTargetDataPoints.length !== 0\r\n ? highlightedSourceDataPoints.indexOf(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d.source as any).label,\r\n ) !== -1 ||\r\n highlightedTargetDataPoints.indexOf(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (d.target as any).label,\r\n ) !== -1\r\n ? 0.85\r\n : defaultLinkOpacity\r\n : defaultLinkOpacity,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n <motion.path\r\n key={`${d.source}-${d.target}`}\r\n d={linkPathGenerator(d) || ''}\r\n style={{\r\n stroke: `url(#${id}-gradient-${i})`,\r\n strokeWidth: d.width,\r\n fill: 'none',\r\n }}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n variants={{\r\n initial: {\r\n pathLength: 0,\r\n opacity: 1,\r\n },\r\n whileInView: {\r\n pathLength: 1,\r\n opacity: 1,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n />\r\n </motion.g>\r\n ))}\r\n </AnimatePresence>\r\n </g>\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </motion.svg>\r\n {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\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 </>\r\n );\r\n}\r\n","import { useState, useRef, useEffect, useEffectEvent } from 'react';\r\nimport sum from 'lodash.sum';\r\nimport orderBy from 'lodash.orderby';\r\n\r\nimport { Graph } from './Graph';\r\n\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport {\r\n AnimateDataType,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n Languages,\r\n NodesLinkDataType,\r\n SankeyDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { generateRandomString } from '@/Utils/generateRandomString';\r\nimport { EmptyState } from '@/Components/Elements/EmptyState';\r\nimport { uniqBy } from '@/Utils/uniqBy';\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: SankeyDataType[];\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 /** Color or array of colors for source */\r\n sourceColors?: string[] | string;\r\n /** Color or array of colors for targets */\r\n targetColors?: string[] | string;\r\n /** Domain of colors for the source */\r\n sourceColorDomain?: (string | number)[];\r\n /** Domain of colors for the target */\r\n targetColorDomain?: (string | number)[];\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 /** Left margin of the graph */\r\n leftMargin?: number;\r\n /** Right margin of the graph */\r\n rightMargin?: number;\r\n /** Top margin of the graph */\r\n topMargin?: number;\r\n /** Bottom margin of the graph */\r\n bottomMargin?: number;\r\n /** Toggles the background to fill the container. This only works if the width of the graph is defined. */\r\n fillContainer?: boolean;\r\n /** Padding between nodes */\r\n nodePadding?: number;\r\n /** Thickness of each node */\r\n nodeWidth?: number;\r\n\r\n // Values and Ticks\r\n /** Prefix for values */\r\n prefix?: string;\r\n /** Suffix for values */\r\n suffix?: string;\r\n /** Truncate labels by specified length */\r\n truncateBy?: number;\r\n\r\n // Graph Parameters\r\n /** Title of the source */\r\n sourceTitle?: string;\r\n /** Title of the targets */\r\n targetTitle?: string;\r\n /** Toggle visibility of labels */\r\n showLabels?: boolean;\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Source to highlight. Use the label value from data to highlight the data point */\r\n highlightedSourceDataPoints?: (string | number)[];\r\n /** Targets to highlight. Use the label value from data to highlight the data point */\r\n highlightedTargetDataPoints?: (string | number)[];\r\n /** Opacity of the links */\r\n defaultLinkOpacity?: number;\r\n /** Sorting order of the nodes */\r\n sortNodes?: 'asc' | 'desc' | 'mostReadable' | 'none';\r\n /** Toggles if the graph animates in when loaded. */\r\n animate?: boolean | AnimateDataType;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Enable graph download option as png */\r\n graphDownload?: boolean;\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 when user mouseover on the links. 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\nexport function SankeyChart(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n sources,\r\n graphDescription,\r\n showLabels = true,\r\n leftMargin = 75,\r\n rightMargin = 75,\r\n topMargin = 30,\r\n bottomMargin = 10,\r\n truncateBy = 999,\r\n height,\r\n width,\r\n footNote,\r\n padding,\r\n backgroundColor = false,\r\n tooltip,\r\n onSeriesMouseOver,\r\n suffix = '',\r\n prefix = '',\r\n relativeHeight,\r\n showValues = true,\r\n graphID,\r\n onSeriesMouseClick,\r\n graphDownload = false,\r\n dataDownload = false,\r\n fillContainer = true,\r\n language = 'en',\r\n minHeight = 0,\r\n theme = 'light',\r\n ariaLabel,\r\n sourceColors,\r\n targetColors,\r\n sourceColorDomain,\r\n targetColorDomain,\r\n nodePadding = 5,\r\n nodeWidth = 5,\r\n highlightedSourceDataPoints = [],\r\n highlightedTargetDataPoints = [],\r\n defaultLinkOpacity = 0.3,\r\n sourceTitle,\r\n targetTitle,\r\n sortNodes = 'mostReadable',\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n animate = false,\r\n precision = 2,\r\n customLayers = [],\r\n } = props;\r\n\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [sankeyData, setSankeyData] = useState<NodesLinkDataType | undefined>(undefined);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n const updateSankeyDataEvent = useEffectEvent((data: NodesLinkDataType) => {\r\n setSankeyData(data);\r\n });\r\n\r\n useEffect(() => {\r\n const sourceNodes = uniqBy(data, 'source', true).map(d => ({\r\n name: `source_${d}`,\r\n type: 'source' as const,\r\n label: `${d}`,\r\n color:\r\n typeof sourceColors === 'string' || !sourceColors\r\n ? sourceColors || Colors.graphMainColor\r\n : sourceColors[\r\n (sourceColorDomain || uniqBy(data, 'source', true)).findIndex(\r\n el => `${el}` === `${d}`,\r\n ) > sourceColors.length\r\n ? sourceColors.length - 1\r\n : (sourceColorDomain || uniqBy(data, 'source', true)).findIndex(\r\n el => `${el}` === `${d}`,\r\n )\r\n ],\r\n totalValue: sum(data.filter(el => `${el.source}` === `${d}`).map(el => el.value)),\r\n }));\r\n const sourceNodesSorted =\r\n sortNodes === 'asc' || sortNodes === 'desc'\r\n ? orderBy(sourceNodes, ['totalValue'], [sortNodes])\r\n : sourceNodes;\r\n const targetNodes = uniqBy(data, 'target', true).map(d => ({\r\n name: `target_${d}`,\r\n type: 'target' as const,\r\n label: `${d}`,\r\n color:\r\n typeof targetColors === 'string' || !targetColors\r\n ? targetColors || Colors.graphMainColor\r\n : targetColors[\r\n (targetColorDomain || uniqBy(data, 'target', true)).findIndex(\r\n el => `${el}` === `${d}`,\r\n ) > targetColors.length\r\n ? targetColors.length - 1\r\n : (targetColorDomain || uniqBy(data, 'target', true)).findIndex(\r\n el => `${el}` === `${d}`,\r\n )\r\n ],\r\n totalValue: sum(data.filter(el => `${el.target}` === `${d}`).map(el => el.value)),\r\n }));\r\n const targetNodesSorted =\r\n sortNodes === 'asc' || sortNodes === 'desc'\r\n ? orderBy(targetNodes, ['totalValue'], [sortNodes])\r\n : targetNodes;\r\n\r\n const nodes = [...sourceNodesSorted, ...targetNodesSorted];\r\n updateSankeyDataEvent({\r\n nodes,\r\n links: data.map(d => ({\r\n source: nodes.findIndex(el => el.name === `source_${d.source}`),\r\n target: nodes.findIndex(el => el.name === `target_${d.target}`),\r\n value: d.value,\r\n data: { ...d },\r\n })),\r\n });\r\n }, [data, sortNodes, sourceColorDomain, sourceColors, targetColorDomain, targetColors]);\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\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={fillContainer ? undefined : width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n padding={padding}\r\n >\r\n {graphTitle || graphDescription || graphDownload || 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={graphDownload ? graphParentDiv : 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 {data.length === 0 ? (\r\n <EmptyState />\r\n ) : (\r\n <GraphArea ref={graphDiv}>\r\n {svgWidth && svgHeight && sankeyData ? (\r\n <Graph\r\n data={sankeyData}\r\n nodePadding={nodePadding}\r\n nodeWidth={nodeWidth}\r\n width={fillContainer || !width ? svgWidth : svgWidth < width ? svgWidth : width}\r\n height={svgHeight}\r\n showLabels={showLabels}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n truncateBy={truncateBy}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n showValues={showValues}\r\n suffix={suffix}\r\n prefix={prefix}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n id={generateRandomString(8)}\r\n highlightedSourceDataPoints={highlightedSourceDataPoints.map(d => `${d}`)}\r\n highlightedTargetDataPoints={highlightedTargetDataPoints.map(d => `${d}`)}\r\n defaultLinkOpacity={defaultLinkOpacity}\r\n sourceTitle={sourceTitle}\r\n targetTitle={targetTitle}\r\n sortNodes={sortNodes}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n styles={styles}\r\n classNames={classNames}\r\n detailsOnClick={detailsOnClick}\r\n animate={\r\n animate === true\r\n ? { duration: 0.5, once: true, amount: 0.5 }\r\n : animate || { duration: 0, once: true, amount: 0 }\r\n }\r\n precision={precision}\r\n customLayers={customLayers}\r\n />\r\n ) : null}\r\n </GraphArea>\r\n )}\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":["max","values","valueof","value","index","min","sum","targetDepth","d","justify","node","n","center","constant","x","ascendingSourceBreadth","a","b","ascendingBreadth","ascendingTargetBreadth","defaultId","defaultNodes","graph","defaultLinks","find","nodeById","id","computeLinkBreadths","nodes","y0","y1","link","Sankey","x0","x1","dx","dy","py","align","sort","linkSort","links","iterations","sankey","computeNodeLinks","computeNodeValues","computeNodeDepths","computeNodeHeights","computeNodeBreadths","_","i","source","target","sourceLinks","targetLinks","current","next","computeNodeLayers","kx","columns","column","initializeNodeBreadths","ky","c","y","reorderLinks","alpha","beta","relaxRightToLeft","relaxLeftToRight","w","v","targetTop","reorderNodeLinks","resolveCollisions","sourceTop","subject","resolveCollisionsBottomToTop","resolveCollisionsTopToBottom","width","pi","tau","epsilon","tauEpsilon","Path","path","x2","y2","r","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","l","t01","t21","a0","a1","ccw","cw","da","h","p","slice","linkSource","linkTarget","curve","pointX","pointY","context","buffer","argv","s","t","curveHorizontal","linkHorizontal","horizontalSource","horizontalTarget","sankeyLinkHorizontal","Graph","props","$","_c","data","showLabels","leftMargin","rightMargin","truncateBy","height","topMargin","bottomMargin","tooltip","onSeriesMouseOver","suffix","prefix","showValues","onSeriesMouseClick","nodePadding","nodeWidth","highlightedSourceDataPoints","highlightedTargetDataPoints","defaultLinkOpacity","sourceTitle","targetTitle","animate","sortNodes","resetSelectionOnDoubleClick","detailsOnClick","styles","classNames","precision","customLayers","svgRef","useRef","t0","amount","once","isInView","useInView","mouseOverData","setMouseOverData","useState","undefined","mouseClickData","setMouseClickData","selectedNode","setSelectedNode","eventX","setEventX","eventY","setEventY","t1","top","bottom","left","right","margin","graphWidth","graphHeight","T0","T1","t10","t11","t12","t13","t14","t15","t2","t3","t4","t5","t6","t7","t8","t9","duration","graphObjectValues","sankeyGenerator","size","nodeAlign","sankeyCenter","nodeSort","_temp","_temp2","_temp3","_temp4","linkPathGenerator","motion","svg","Symbol","for","marginLeft","marginRight","jsx","textAnchor","filter","_temp5","map","_temp6","t16","d_2","jsxs","fill","color","overflow","P","cn","hyphens","label","length","substring","numberFormattingFunction","_temp7","t17","d_4","i_0","_temp8","t18","d_5","i_1","stopColor","stopOpacity","AnimatePresence","d_6","i_2","event","clientY","clientX","event_0","isEqual","initial","opacity","name","indexOf","whileInView","transition","stroke","strokeWidth","pathLength","_temp9","_temp0","t19","t20","Tooltip","Modal","__html","string2HTML","t22","Fragment","d_8","layer","d_7","position","d_3","type","d_1","d_0","a_0","b_0","SankeyChart","graphTitle","sources","graphDescription","footNote","padding","backgroundColor","relativeHeight","graphID","graphDownload","dataDownload","fillContainer","language","minHeight","theme","ariaLabel","sourceColors","targetColors","sourceColorDomain","targetColorDomain","t23","t24","t25","t26","t27","t28","svgWidth","setSvgWidth","svgHeight","setSvgHeight","sankeyData","setSankeyData","graphDiv","graphParentDiv","t29","data_0","updateSankeyDataEvent","useEffectEvent","t30","sourceNodes","uniqBy","Colors","graphMainColor","findIndex","el_0","el","totalValue","sourceNodesSorted","orderBy","targetNodes","el_4","targetNodesSorted","el_7","el_8","t31","useEffect","t32","t33","resizeObserver","ResizeObserver","entries","clientWidth","clientHeight","observe","disconnect","t34","graphContainer","t35","t36","t37","description","title","GraphHeader","t38","EmptyState","GraphArea","generateRandomString","t39","footnote","GraphFooter","t40","GraphContainer","el_6","el_2"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11]}
|