@undp/data-viz 2.1.9 → 2.2.1

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.
Files changed (462) hide show
  1. package/dist/AreaChart.cjs +1 -1
  2. package/dist/AreaChart.js +19 -19
  3. package/dist/AreaChart.js.map +1 -1
  4. package/dist/{Axis-CRyfcLjc.js → Axis-DoOqnt6g.js} +2 -2
  5. package/dist/{Axis-CRyfcLjc.js.map → Axis-DoOqnt6g.js.map} +1 -1
  6. package/dist/{Axis-DxRV2yMi.cjs → Axis-Dtjn-EgM.cjs} +2 -2
  7. package/dist/{Axis-DxRV2yMi.cjs.map → Axis-Dtjn-EgM.cjs.map} +1 -1
  8. package/dist/{AxisTitle-sS5bLLR7.cjs → AxisTitle-DV4n0RxE.cjs} +2 -2
  9. package/dist/{AxisTitle-sS5bLLR7.cjs.map → AxisTitle-DV4n0RxE.cjs.map} +1 -1
  10. package/dist/{AxisTitle-jeI7am8o.js → AxisTitle-VFq89Olw.js} +2 -2
  11. package/dist/{AxisTitle-jeI7am8o.js.map → AxisTitle-VFq89Olw.js.map} +1 -1
  12. package/dist/BarGraph.cjs +1 -1
  13. package/dist/BarGraph.js +24 -24
  14. package/dist/BarGraph.js.map +1 -1
  15. package/dist/BasicStatCard.cjs +1 -1
  16. package/dist/BasicStatCard.js +2 -2
  17. package/dist/BeeSwarmChart.cjs +1 -1
  18. package/dist/BeeSwarmChart.js +14 -14
  19. package/dist/BeeSwarmChart.js.map +1 -1
  20. package/dist/BiVariateChoroplethMap.cjs +1 -1
  21. package/dist/BiVariateChoroplethMap.cjs.map +1 -1
  22. package/dist/BiVariateChoroplethMap.js +48 -48
  23. package/dist/BiVariateChoroplethMap.js.map +1 -1
  24. package/dist/BulletChart.cjs +1 -1
  25. package/dist/BulletChart.js +22 -22
  26. package/dist/BulletChart.js.map +1 -1
  27. package/dist/ButterflyChart.cjs +1 -1
  28. package/dist/ButterflyChart.js +19 -19
  29. package/dist/ButterflyChart.js.map +1 -1
  30. package/dist/ChoroplethMap.cjs +1 -1
  31. package/dist/ChoroplethMap.cjs.map +1 -1
  32. package/dist/ChoroplethMap.js +51 -51
  33. package/dist/ChoroplethMap.js.map +1 -1
  34. package/dist/CirclePackingGraph.cjs +1 -1
  35. package/dist/CirclePackingGraph.js +4 -4
  36. package/dist/ColorLegend.cjs +1 -1
  37. package/dist/ColorLegend.js +2 -2
  38. package/dist/ColorLegendWithMouseOver.cjs +1 -1
  39. package/dist/ColorLegendWithMouseOver.js +2 -2
  40. package/dist/CopyTextButton.cjs +1 -16
  41. package/dist/CopyTextButton.cjs.map +1 -1
  42. package/dist/CopyTextButton.js +13 -31
  43. package/dist/CopyTextButton.js.map +1 -1
  44. package/dist/CsvDownloadButton.cjs +2 -20
  45. package/dist/CsvDownloadButton.cjs.map +1 -1
  46. package/dist/CsvDownloadButton.js +5 -26
  47. package/dist/CsvDownloadButton.js.map +1 -1
  48. package/dist/DataCards.cjs +1 -21
  49. package/dist/DataCards.cjs.map +1 -1
  50. package/dist/DataCards.js +18 -42
  51. package/dist/DataCards.js.map +1 -1
  52. package/dist/DataTable.cjs +1 -1
  53. package/dist/DataTable.js +6 -6
  54. package/dist/DataTable.js.map +1 -1
  55. package/dist/{DetailsModal-0Ry5nXiC.js → DetailsModal-BMCTgVsk.js} +4 -4
  56. package/dist/{DetailsModal-0Ry5nXiC.js.map → DetailsModal-BMCTgVsk.js.map} +1 -1
  57. package/dist/{DetailsModal-BN0HDFlV.cjs → DetailsModal-DHttOA80.cjs} +2 -2
  58. package/dist/{DetailsModal-BN0HDFlV.cjs.map → DetailsModal-DHttOA80.cjs.map} +1 -1
  59. package/dist/DifferenceLineChart.cjs +1 -1
  60. package/dist/DifferenceLineChart.js +22 -22
  61. package/dist/DifferenceLineChart.js.map +1 -1
  62. package/dist/DonutChart.cjs +1 -1
  63. package/dist/DonutChart.js +10 -10
  64. package/dist/DotDensityMap.cjs +1 -1
  65. package/dist/DotDensityMap.cjs.map +1 -1
  66. package/dist/DotDensityMap.js +78 -78
  67. package/dist/DotDensityMap.js.map +1 -1
  68. package/dist/{DropdownSelect-BbdPQa2k.js → DropdownSelect-D8rFbygC.js} +5 -33
  69. package/dist/{DropdownSelect-BbdPQa2k.js.map → DropdownSelect-D8rFbygC.js.map} +1 -1
  70. package/dist/{DropdownSelect-Doz3mCrM.cjs → DropdownSelect-NNpOs7DX.cjs} +2 -26
  71. package/dist/{DropdownSelect-Doz3mCrM.cjs.map → DropdownSelect-NNpOs7DX.cjs.map} +1 -1
  72. package/dist/DualAxisLineChart.cjs +1 -1
  73. package/dist/DualAxisLineChart.js +15 -15
  74. package/dist/DualAxisLineChart.js.map +1 -1
  75. package/dist/DumbbellChart.cjs +1 -1
  76. package/dist/DumbbellChart.js +22 -22
  77. package/dist/DumbbellChart.js.map +1 -1
  78. package/dist/{EmptyState-gLDRXBHm.cjs → EmptyState-CGeBqbmR.cjs} +2 -2
  79. package/dist/{EmptyState-gLDRXBHm.cjs.map → EmptyState-CGeBqbmR.cjs.map} +1 -1
  80. package/dist/EmptyState-tZBErBKF.js +15 -0
  81. package/dist/{EmptyState-C7ZXkZWd.js.map → EmptyState-tZBErBKF.js.map} +1 -1
  82. package/dist/ExcelDownloadButton.cjs +1 -1
  83. package/dist/ExcelDownloadButton.js +2 -2
  84. package/dist/FootNote.cjs +1 -1
  85. package/dist/FootNote.js +2 -2
  86. package/dist/GeoHubCompareMaps.cjs +1 -1
  87. package/dist/GeoHubCompareMaps.js +13 -13
  88. package/dist/GeoHubCompareMaps.js.map +1 -1
  89. package/dist/GeoHubMap.cjs +1 -1
  90. package/dist/GeoHubMap.js +8 -8
  91. package/dist/GeoHubMap.js.map +1 -1
  92. package/dist/GeoHubMapWithLayerSelection.cjs +1 -1
  93. package/dist/GeoHubMapWithLayerSelection.js +12 -12
  94. package/dist/GeoHubMapWithLayerSelection.js.map +1 -1
  95. package/dist/{GraphContainer-d8A46BK2.cjs → GraphContainer-B1EDxJ0S.cjs} +2 -2
  96. package/dist/{GraphContainer-d8A46BK2.cjs.map → GraphContainer-B1EDxJ0S.cjs.map} +1 -1
  97. package/dist/{GraphContainer-CRqzdKu2.js → GraphContainer-CF6ws3pd.js} +2 -2
  98. package/dist/{GraphContainer-CRqzdKu2.js.map → GraphContainer-CF6ws3pd.js.map} +1 -1
  99. package/dist/GraphDescription.cjs +1 -1
  100. package/dist/GraphDescription.js +2 -2
  101. package/dist/GraphEl-CBZdcvb7.cjs +2 -0
  102. package/dist/GraphEl-CBZdcvb7.cjs.map +1 -0
  103. package/dist/{GraphEl-Dyu_EIQb.js → GraphEl-DKrjuQNB.js} +79 -18
  104. package/dist/GraphEl-DKrjuQNB.js.map +1 -0
  105. package/dist/GraphFooter.cjs +1 -1
  106. package/dist/GraphFooter.js +2 -2
  107. package/dist/GraphHeader.cjs +1 -1
  108. package/dist/GraphHeader.js +1 -1
  109. package/dist/GraphTitle.cjs +1 -1
  110. package/dist/GraphTitle.js +2 -2
  111. package/dist/GriddedGraphs.cjs +1 -1
  112. package/dist/GriddedGraphs.d.ts +1 -1
  113. package/dist/GriddedGraphs.js +8 -8
  114. package/dist/GriddedGraphsFromConfig.cjs +1 -1
  115. package/dist/GriddedGraphsFromConfig.d.ts +1 -1
  116. package/dist/GriddedGraphsFromConfig.js +4 -4
  117. package/dist/GriddedGraphsFromConfig.js.map +1 -1
  118. package/dist/HeatMap.cjs +1 -1
  119. package/dist/HeatMap.js +14 -14
  120. package/dist/HeatMap.js.map +1 -1
  121. package/dist/Histogram.cjs +1 -1
  122. package/dist/Histogram.js +5 -5
  123. package/dist/Histogram.js.map +1 -1
  124. package/dist/HybridMap.cjs +1 -1
  125. package/dist/HybridMap.cjs.map +1 -1
  126. package/dist/HybridMap.js +48 -48
  127. package/dist/HybridMap.js.map +1 -1
  128. package/dist/ImageDownloadButton.cjs +1 -1
  129. package/dist/ImageDownloadButton.js +3 -3
  130. package/dist/LineChartWithConfidenceInterval.cjs +1 -1
  131. package/dist/LineChartWithConfidenceInterval.js +18 -18
  132. package/dist/LineChartWithConfidenceInterval.js.map +1 -1
  133. package/dist/LinearColorLegend.cjs +1 -1
  134. package/dist/LinearColorLegend.js +2 -2
  135. package/dist/{Modal-JW_IExO3.cjs → Modal-CaYa_TLE.cjs} +2 -2
  136. package/dist/{Modal-JW_IExO3.cjs.map → Modal-CaYa_TLE.cjs.map} +1 -1
  137. package/dist/{Modal-bMQA6bL_.js → Modal-Ch9wvKxF.js} +4 -4
  138. package/dist/{Modal-bMQA6bL_.js.map → Modal-Ch9wvKxF.js.map} +1 -1
  139. package/dist/MultiGraphDashboard.cjs +1 -1
  140. package/dist/MultiGraphDashboard.d.ts +1 -1
  141. package/dist/MultiGraphDashboard.js +5 -5
  142. package/dist/MultiGraphDashboardFromConfig.cjs +1 -1
  143. package/dist/MultiGraphDashboardFromConfig.d.ts +1 -1
  144. package/dist/MultiGraphDashboardFromConfig.js +4 -4
  145. package/dist/MultiGraphDashboardFromConfig.js.map +1 -1
  146. package/dist/MultiGraphDashboardWideToLongFormat.cjs +1 -1
  147. package/dist/MultiGraphDashboardWideToLongFormat.js +5 -5
  148. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.cjs +1 -1
  149. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js +4 -4
  150. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js.map +1 -1
  151. package/dist/MultiLineAltChart.cjs +1 -1
  152. package/dist/MultiLineAltChart.js +17 -17
  153. package/dist/MultiLineAltChart.js.map +1 -1
  154. package/dist/MultiLineChart.cjs +1 -1
  155. package/dist/MultiLineChart.js +19 -19
  156. package/dist/MultiLineChart.js.map +1 -1
  157. package/dist/ParetoChart.cjs +1 -1
  158. package/dist/ParetoChart.js +15 -15
  159. package/dist/ParetoChart.js.map +1 -1
  160. package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +1 -1
  161. package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +1 -1
  162. package/dist/PerformanceIntensiveMultiGraphDashboard.js +5 -5
  163. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs +1 -1
  164. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +1 -1
  165. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js +4 -4
  166. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js.map +1 -1
  167. package/dist/PerformanceIntensiveScrollStory.cjs +1 -1
  168. package/dist/PerformanceIntensiveScrollStory.d.ts +1 -1
  169. package/dist/PerformanceIntensiveScrollStory.js +6 -6
  170. package/dist/PerformanceIntensiveScrollStory.js.map +1 -1
  171. package/dist/RadarChart.cjs +1 -1
  172. package/dist/RadarChart.cjs.map +1 -1
  173. package/dist/RadarChart.js +9 -9
  174. package/dist/{ReferenceLine-2XCwHXQ4.js → ReferenceLine-DgtoRgw0.js} +5 -5
  175. package/dist/ReferenceLine-DgtoRgw0.js.map +1 -0
  176. package/dist/{ReferenceLine-BH0qdf4R.cjs → ReferenceLine-M9aP3dj-.cjs} +2 -2
  177. package/dist/{ReferenceLine-BH0qdf4R.cjs.map → ReferenceLine-M9aP3dj-.cjs.map} +1 -1
  178. package/dist/{RegressionLine-BOTTNSrr.cjs → RegressionLine-Ci-Dh0w0.cjs} +2 -2
  179. package/dist/{RegressionLine-BOTTNSrr.cjs.map → RegressionLine-Ci-Dh0w0.cjs.map} +1 -1
  180. package/dist/{RegressionLine-DAcY2DjT.js → RegressionLine-D2aqeBKp.js} +6 -6
  181. package/dist/RegressionLine-D2aqeBKp.js.map +1 -0
  182. package/dist/SVGDownloadButton.cjs +1 -1
  183. package/dist/SVGDownloadButton.js +2 -2
  184. package/dist/SankeyChart.cjs +1 -1
  185. package/dist/SankeyChart.cjs.map +1 -1
  186. package/dist/SankeyChart.js +61 -67
  187. package/dist/SankeyChart.js.map +1 -1
  188. package/dist/ScatterPlot.cjs +1 -1
  189. package/dist/ScatterPlot.js +23 -23
  190. package/dist/ScatterPlot.js.map +1 -1
  191. package/dist/ScrollStory.cjs +1 -1
  192. package/dist/ScrollStory.d.ts +1 -1
  193. package/dist/ScrollStory.js +4 -4
  194. package/dist/ScrollStory.js.map +1 -1
  195. package/dist/SimpleLineChart.cjs +1 -1
  196. package/dist/SimpleLineChart.js +19 -19
  197. package/dist/SimpleLineChart.js.map +1 -1
  198. package/dist/SingleGraphDashboard.cjs +1 -1
  199. package/dist/SingleGraphDashboard.d.ts +1 -1
  200. package/dist/SingleGraphDashboard.js +9 -9
  201. package/dist/SingleGraphDashboardFromConfig.cjs +1 -1
  202. package/dist/SingleGraphDashboardFromConfig.d.ts +1 -1
  203. package/dist/SingleGraphDashboardFromConfig.js +4 -4
  204. package/dist/SingleGraphDashboardFromConfig.js.map +1 -1
  205. package/dist/SingleGraphDashboardGeoHubMaps.cjs +1 -1
  206. package/dist/SingleGraphDashboardGeoHubMaps.js +5 -5
  207. package/dist/SingleGraphDashboardGeoHubMaps.js.map +1 -1
  208. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs +1 -1
  209. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js +4 -4
  210. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js.map +1 -1
  211. package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
  212. package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -1
  213. package/dist/SingleGraphDashboardThreeDGraphs.js +63 -70
  214. package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -1
  215. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs +1 -1
  216. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js +4 -4
  217. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js.map +1 -1
  218. package/dist/SlopeChart.cjs +1 -1
  219. package/dist/SlopeChart.js +12 -12
  220. package/dist/SlopeChart.js.map +1 -1
  221. package/dist/{Source-DYMJRrsq.cjs → Source-B5AoSlsi.cjs} +2 -2
  222. package/dist/{Source-DYMJRrsq.cjs.map → Source-B5AoSlsi.cjs.map} +1 -1
  223. package/dist/{Source-DwTHB8fn.js → Source-F8EYCYkV.js} +4 -4
  224. package/dist/{Source-DwTHB8fn.js.map → Source-F8EYCYkV.js.map} +1 -1
  225. package/dist/Source.cjs +1 -1
  226. package/dist/Source.js +3 -3
  227. package/dist/SparkLine.cjs +1 -1
  228. package/dist/SparkLine.js +8 -8
  229. package/dist/SparkLine.js.map +1 -1
  230. package/dist/{Spinner-DVBnY6Vg.js → Spinner--r2RrJV8.js} +2 -2
  231. package/dist/{Spinner-DVBnY6Vg.js.map → Spinner--r2RrJV8.js.map} +1 -1
  232. package/dist/{Spinner-CQZcjzwd.cjs → Spinner-jTMOLuw_.cjs} +2 -2
  233. package/dist/{Spinner-CQZcjzwd.cjs.map → Spinner-jTMOLuw_.cjs.map} +1 -1
  234. package/dist/StatCardFromData.cjs +1 -1
  235. package/dist/StatCardFromData.js +2 -2
  236. package/dist/StripChart.cjs +1 -1
  237. package/dist/StripChart.js +10 -10
  238. package/dist/StripChart.js.map +1 -1
  239. package/dist/ThreeDGlobe.cjs +1 -1
  240. package/dist/ThreeDGlobe.js +13 -13
  241. package/dist/ThreeDGlobe.js.map +1 -1
  242. package/dist/ThresholdColorLegendWithMouseOver.cjs +1 -1
  243. package/dist/ThresholdColorLegendWithMouseOver.js +3 -3
  244. package/dist/ThresholdColorLegendWithMouseOver.js.map +1 -1
  245. package/dist/{Tooltip-uUdw6wJL.cjs → Tooltip-BLa2EfMs.cjs} +2 -2
  246. package/dist/{Tooltip-uUdw6wJL.cjs.map → Tooltip-BLa2EfMs.cjs.map} +1 -1
  247. package/dist/{Tooltip-Dj5eVppQ.js → Tooltip-BRnAz2Gv.js} +3 -3
  248. package/dist/{Tooltip-Dj5eVppQ.js.map → Tooltip-BRnAz2Gv.js.map} +1 -1
  249. package/dist/TreeMapGraph.cjs +1 -1
  250. package/dist/TreeMapGraph.js +10 -10
  251. package/dist/TreeMapGraph.js.map +1 -1
  252. package/dist/Types.d.ts +8 -1
  253. package/dist/{Typography-PxtFcnJb.js → Typography-hWfh3H0J.js} +2 -2
  254. package/dist/{Typography-PxtFcnJb.js.map → Typography-hWfh3H0J.js.map} +1 -1
  255. package/dist/{Typography-DX7PlgQU.cjs → Typography-sa1UE0oF.cjs} +2 -2
  256. package/dist/{Typography-DX7PlgQU.cjs.map → Typography-sa1UE0oF.cjs.map} +1 -1
  257. package/dist/UnitChart.cjs +1 -1
  258. package/dist/UnitChart.js +8 -8
  259. package/dist/WaterfallChart.cjs +2 -0
  260. package/dist/WaterfallChart.cjs.map +1 -0
  261. package/dist/WaterfallChart.d.ts +207 -0
  262. package/dist/WaterfallChart.js +427 -0
  263. package/dist/WaterfallChart.js.map +1 -0
  264. package/dist/{XAxesLabels-Bt5NZBmX.cjs → XAxesLabels-C6o9jJal.cjs} +2 -2
  265. package/dist/{XAxesLabels-Bt5NZBmX.cjs.map → XAxesLabels-C6o9jJal.cjs.map} +1 -1
  266. package/dist/{XAxesLabels-Dy8E1SEo.js → XAxesLabels-rhK7lRjO.js} +3 -3
  267. package/dist/{XAxesLabels-Dy8E1SEo.js.map → XAxesLabels-rhK7lRjO.js.map} +1 -1
  268. package/dist/{XTicksAndGridLines-CObVFSm4.js → XTicksAndGridLines-CVZkZkpS.js} +2 -2
  269. package/dist/{XTicksAndGridLines-CObVFSm4.js.map → XTicksAndGridLines-CVZkZkpS.js.map} +1 -1
  270. package/dist/{XTicksAndGridLines-B6CELS7q.cjs → XTicksAndGridLines-CekrPykD.cjs} +2 -2
  271. package/dist/{XTicksAndGridLines-B6CELS7q.cjs.map → XTicksAndGridLines-CekrPykD.cjs.map} +1 -1
  272. package/dist/{YAxesLabels-DesLesUP.cjs → YAxesLabels-BQ2aCazV.cjs} +2 -2
  273. package/dist/{YAxesLabels-DesLesUP.cjs.map → YAxesLabels-BQ2aCazV.cjs.map} +1 -1
  274. package/dist/{YAxesLabels-a57ZRv-0.js → YAxesLabels-QICWVsHf.js} +3 -3
  275. package/dist/{YAxesLabels-a57ZRv-0.js.map → YAxesLabels-QICWVsHf.js.map} +1 -1
  276. package/dist/{YTicksAndGridLines-Blepl7XF.js → YTicksAndGridLines-GnXnSRF2.js} +2 -2
  277. package/dist/{YTicksAndGridLines-Blepl7XF.js.map → YTicksAndGridLines-GnXnSRF2.js.map} +1 -1
  278. package/dist/{YTicksAndGridLines-4pxTRlRK.cjs → YTicksAndGridLines-UzVC5eBM.cjs} +2 -2
  279. package/dist/{YTicksAndGridLines-4pxTRlRK.cjs.map → YTicksAndGridLines-UzVC5eBM.cjs.map} +1 -1
  280. package/dist/{band-DHUZ2X7J.js → band-DYty33LD.js} +2 -2
  281. package/dist/{band-DHUZ2X7J.js.map → band-DYty33LD.js.map} +1 -1
  282. package/dist/{checkIfMultiple-CIRtG0KE.js → checkIfMultiple-D9fVkeOq.js} +7 -19
  283. package/dist/{checkIfMultiple-CIRtG0KE.js.map → checkIfMultiple-D9fVkeOq.js.map} +1 -1
  284. package/dist/checkIfMultiple-DxnGtm3t.cjs +2 -0
  285. package/dist/{checkIfMultiple-wg6hJLXy.cjs.map → checkIfMultiple-DxnGtm3t.cjs.map} +1 -1
  286. package/dist/{customArea-BUhPiPT6.js → customArea-ASDaSE4u.js} +5 -5
  287. package/dist/{customArea-BUhPiPT6.js.map → customArea-ASDaSE4u.js.map} +1 -1
  288. package/dist/{customArea-CMF5g-C3.cjs → customArea-B1LWQBmM.cjs} +2 -2
  289. package/dist/{customArea-CMF5g-C3.cjs.map → customArea-B1LWQBmM.cjs.map} +1 -1
  290. package/dist/defaultLocale-C4wbwF1n.cjs +2 -0
  291. package/dist/defaultLocale-C4wbwF1n.cjs.map +1 -0
  292. package/dist/defaultLocale-CPy_WVtp.js +172 -0
  293. package/dist/defaultLocale-CPy_WVtp.js.map +1 -0
  294. package/dist/{ensureCompleteData-DH5c52Ub.js → ensureCompleteData-CDIukSG6.js} +2 -2
  295. package/dist/{ensureCompleteData-DH5c52Ub.js.map → ensureCompleteData-CDIukSG6.js.map} +1 -1
  296. package/dist/{ensureCompleteData-pZ9QO6kB.cjs → ensureCompleteData-D9bQTiVS.cjs} +2 -2
  297. package/dist/{ensureCompleteData-pZ9QO6kB.cjs.map → ensureCompleteData-D9bQTiVS.cjs.map} +1 -1
  298. package/dist/{fetchAndParseData-BpqkBPQL.js → fetchAndParseData-BAXhgTDM.js} +12 -18
  299. package/dist/{fetchAndParseData-BpqkBPQL.js.map → fetchAndParseData-BAXhgTDM.js.map} +1 -1
  300. package/dist/{fetchAndParseData-l5HGMAEs.cjs → fetchAndParseData-QTF6tjij.cjs} +3 -8
  301. package/dist/{fetchAndParseData-l5HGMAEs.cjs.map → fetchAndParseData-QTF6tjij.cjs.map} +1 -1
  302. package/dist/fetchAndParseData.cjs +1 -1
  303. package/dist/fetchAndParseData.js +1 -1
  304. package/dist/getCentroidCoordinates-CtBGrNC8.cjs +2 -0
  305. package/dist/getCentroidCoordinates-CtBGrNC8.cjs.map +1 -0
  306. package/dist/{getCentroidCoordinates-D7r34N4w.js → getCentroidCoordinates-s0OOUjLF.js} +15 -15
  307. package/dist/getCentroidCoordinates-s0OOUjLF.js.map +1 -0
  308. package/dist/{getGraphList-Dxwo9TDb.js → getGraphList-Bpd3PVmF.js} +7 -1
  309. package/dist/getGraphList-Bpd3PVmF.js.map +1 -0
  310. package/dist/getGraphList-DQ24IzAn.cjs +2 -0
  311. package/dist/getGraphList-DQ24IzAn.cjs.map +1 -0
  312. package/dist/{getJenks-GYmdwBqm.cjs → getJenks-BzJvhy_H.cjs} +2 -2
  313. package/dist/{getJenks-GYmdwBqm.cjs.map → getJenks-BzJvhy_H.cjs.map} +1 -1
  314. package/dist/{getJenks-BbngDoBQ.js → getJenks-DTCcQSDi.js} +2 -2
  315. package/dist/{getJenks-BbngDoBQ.js.map → getJenks-DTCcQSDi.js.map} +1 -1
  316. package/dist/getSliderMarks-CIuSoedo.cjs +2 -0
  317. package/dist/{getSliderMarks-BmADcPQt.cjs.map → getSliderMarks-CIuSoedo.cjs.map} +1 -1
  318. package/dist/{getSliderMarks-HIDJ0_Cd.js → getSliderMarks-Cvg8zHBU.js} +4 -9
  319. package/dist/getSliderMarks-Cvg8zHBU.js.map +1 -0
  320. package/dist/{imageDownload-NYXbvKob.cjs → imageDownload-61q6jyJW.cjs} +3 -3
  321. package/dist/imageDownload-61q6jyJW.cjs.map +1 -0
  322. package/dist/{imageDownload-BU4qnxJP.js → imageDownload-Diofs_vY.js} +14 -15
  323. package/dist/imageDownload-Diofs_vY.js.map +1 -0
  324. package/dist/{index-D491FEn1.js → index-BQYOuXdl.js} +15 -15
  325. package/dist/{index-D491FEn1.js.map → index-BQYOuXdl.js.map} +1 -1
  326. package/dist/{index-DxXnJ8Ti.cjs → index-C5K--w8d.cjs} +2 -2
  327. package/dist/index-C5K--w8d.cjs.map +1 -0
  328. package/dist/{index-DRXx7m-C.cjs → index-C6er0ety.cjs} +2 -2
  329. package/dist/{index-DRXx7m-C.cjs.map → index-C6er0ety.cjs.map} +1 -1
  330. package/dist/{index-CHPV5EwG-CTPQjnHt.cjs → index-CHPV5EwG-6v2a2njQ.cjs} +5 -69
  331. package/dist/{index-CHPV5EwG-CTPQjnHt.cjs.map → index-CHPV5EwG-6v2a2njQ.cjs.map} +1 -1
  332. package/dist/{index-CHPV5EwG-Curnpaqc.js → index-CHPV5EwG-DecW7_qr.js} +5 -77
  333. package/dist/{index-CHPV5EwG-Curnpaqc.js.map → index-CHPV5EwG-DecW7_qr.js.map} +1 -1
  334. package/dist/{index-SKgJALZg.js → index-CSiFiXPj.js} +3 -3
  335. package/dist/{index-SKgJALZg.js.map → index-CSiFiXPj.js.map} +1 -1
  336. package/dist/index-CoobIWNj.cjs +10 -0
  337. package/dist/index-CoobIWNj.cjs.map +1 -0
  338. package/dist/index-CtMBjvtq.js +148 -0
  339. package/dist/index-CtMBjvtq.js.map +1 -0
  340. package/dist/{index-Cw8sCyo_-BrHiWiRF.cjs → index-Cw8sCyo_-CEcCMKUi.cjs} +2 -2
  341. package/dist/{index-Cw8sCyo_-BrHiWiRF.cjs.map → index-Cw8sCyo_-CEcCMKUi.cjs.map} +1 -1
  342. package/dist/{index-Cw8sCyo_-B2hEKjzG.js → index-Cw8sCyo_-n4AacHGk.js} +6 -4
  343. package/dist/{index-Cw8sCyo_-B2hEKjzG.js.map → index-Cw8sCyo_-n4AacHGk.js.map} +1 -1
  344. package/dist/{index-R1gTfap5.js → index-D5ihtaJJ.js} +12 -12
  345. package/dist/{index-R1gTfap5.js.map → index-D5ihtaJJ.js.map} +1 -1
  346. package/dist/{index-B_sAFsEV.cjs → index-D69M6klB.cjs} +2 -2
  347. package/dist/{index-B_sAFsEV.cjs.map → index-D69M6klB.cjs.map} +1 -1
  348. package/dist/{index-GEsywGxz.js → index-DCsFBfJ_.js} +160 -104
  349. package/dist/index-DCsFBfJ_.js.map +1 -0
  350. package/dist/{index-WML2dCZ0.cjs → index-Dgjq6aZ2.cjs} +2 -2
  351. package/dist/{index-WML2dCZ0.cjs.map → index-Dgjq6aZ2.cjs.map} +1 -1
  352. package/dist/{index-Dzc_aaI9-BmkfPMyc.cjs → index-Dzc_aaI9-C3DbPpy3.cjs} +2 -2
  353. package/dist/{index-Dzc_aaI9-BmkfPMyc.cjs.map → index-Dzc_aaI9-C3DbPpy3.cjs.map} +1 -1
  354. package/dist/{index-Dzc_aaI9-Bb7gobH_.js → index-Dzc_aaI9-CG2Ar7l1.js} +4 -4
  355. package/dist/{index-Dzc_aaI9-Bb7gobH_.js.map → index-Dzc_aaI9-CG2Ar7l1.js.map} +1 -1
  356. package/dist/index.cjs +1 -1
  357. package/dist/index.d.ts +213 -3252
  358. package/dist/index.js +145 -161
  359. package/dist/index.js.map +1 -1
  360. package/dist/{linear-BqltdMeF.js → linear-CalFSAaO.js} +2 -2
  361. package/dist/{linear-BqltdMeF.js.map → linear-CalFSAaO.js.map} +1 -1
  362. package/dist/{linear-BwPAspcq.cjs → linear-CgUCbw9F.cjs} +2 -2
  363. package/dist/{linear-BwPAspcq.cjs.map → linear-CgUCbw9F.cjs.map} +1 -1
  364. package/dist/{ordinal-BJ6O_LC5.js → ordinal-CHaxGJ_l.js} +2 -2
  365. package/dist/{ordinal-BJ6O_LC5.js.map → ordinal-CHaxGJ_l.js.map} +1 -1
  366. package/dist/{parse-DlCRUFh_.js → parse-Dv4of-PN.js} +2 -67
  367. package/dist/{parse-DlCRUFh_.js.map → parse-Dv4of-PN.js.map} +1 -1
  368. package/dist/parse-xYI9yrvL.cjs +2 -0
  369. package/dist/{parse-hMnG_lRV.cjs.map → parse-xYI9yrvL.cjs.map} +1 -1
  370. package/dist/{pow-DgrUorRi.cjs → pow-BnyPO-NX.cjs} +2 -2
  371. package/dist/{pow-DgrUorRi.cjs.map → pow-BnyPO-NX.cjs.map} +1 -1
  372. package/dist/{pow-CM2aze4M.js → pow-CaIrlM4J.js} +2 -2
  373. package/dist/{pow-CM2aze4M.js.map → pow-CaIrlM4J.js.map} +1 -1
  374. package/dist/proxy-C4-uo6nS.cjs +2 -0
  375. package/dist/proxy-C4-uo6nS.cjs.map +1 -0
  376. package/dist/{proxy-BxkFHwUw.js → proxy-DRuSUlPL.js} +2828 -2717
  377. package/dist/proxy-DRuSUlPL.js.map +1 -0
  378. package/dist/{string2HTML-DhG75NqA.js → string2HTML-DUYZT1L9.js} +17 -17
  379. package/dist/{string2HTML-DhG75NqA.js.map → string2HTML-DUYZT1L9.js.map} +1 -1
  380. package/dist/{string2HTML-CPGr_I5E.cjs → string2HTML-xx9MzTtY.cjs} +3 -3
  381. package/dist/{string2HTML-CPGr_I5E.cjs.map → string2HTML-xx9MzTtY.cjs.map} +1 -1
  382. package/dist/style.css +1 -1
  383. package/dist/{time-BUL-dwnK.js → time-CAtex-RV.js} +2 -2
  384. package/dist/{time-BUL-dwnK.js.map → time-CAtex-RV.js.map} +1 -1
  385. package/dist/{time-CZd5YLSP.cjs → time-CkcKbhwe.cjs} +2 -2
  386. package/dist/{time-CZd5YLSP.cjs.map → time-CkcKbhwe.cjs.map} +1 -1
  387. package/dist/transformData.cjs +1 -1
  388. package/dist/transformData.d.ts +1 -1
  389. package/dist/transformData.js +3 -3
  390. package/dist/transformDataForAggregation-BFdha9Dx.cjs +2 -0
  391. package/dist/transformDataForAggregation-BFdha9Dx.cjs.map +1 -0
  392. package/dist/{transformDataForAggregation-j34UL73s.js → transformDataForAggregation-wdPf8bNt.js} +26 -11
  393. package/dist/transformDataForAggregation-wdPf8bNt.js.map +1 -0
  394. package/dist/{transformDataForGraphFromFile-CuXxR8uA.cjs → transformDataForGraphFromFile-DOhp1qrp.cjs} +2 -2
  395. package/dist/{transformDataForGraphFromFile-CuXxR8uA.cjs.map → transformDataForGraphFromFile-DOhp1qrp.cjs.map} +1 -1
  396. package/dist/{transformDataForGraphFromFile-DyP-83Nh.js → transformDataForGraphFromFile-dt9sHTVy.js} +3 -3
  397. package/dist/{transformDataForGraphFromFile-DyP-83Nh.js.map → transformDataForGraphFromFile-dt9sHTVy.js.map} +1 -1
  398. package/dist/{use-in-view-QcfiW0w3.cjs → use-in-view-C3o_ntMv.cjs} +2 -2
  399. package/dist/use-in-view-C3o_ntMv.cjs.map +1 -0
  400. package/dist/{use-in-view-Cxa7y1TH.js → use-in-view-Dl5L8LtP.js} +2 -2
  401. package/dist/use-in-view-Dl5L8LtP.js.map +1 -0
  402. package/dist/utils.cjs +1 -1
  403. package/dist/utils.js +4 -4
  404. package/dist/{x-BBpi7a_7-WVdj1j6r.js → x-BBpi7a_7-BsvWCzYM.js} +1 -31
  405. package/dist/{x-BBpi7a_7-WVdj1j6r.js.map → x-BBpi7a_7-BsvWCzYM.js.map} +1 -1
  406. package/dist/x-BBpi7a_7-DXYIEFwN.cjs +2 -0
  407. package/dist/{x-BBpi7a_7-mTo40uId.cjs.map → x-BBpi7a_7-DXYIEFwN.cjs.map} +1 -1
  408. package/dist/{zoom-C9MFjAaV.js → zoom-5AkJSuWO.js} +3 -3
  409. package/dist/zoom-5AkJSuWO.js.map +1 -0
  410. package/dist/{zoom-DPw8bba-.cjs → zoom-ChcvXFIz.cjs} +2 -2
  411. package/dist/zoom-ChcvXFIz.cjs.map +1 -0
  412. package/package.json +23 -15
  413. package/readme.md +33 -22
  414. package/dist/EmptyState-C7ZXkZWd.js +0 -15
  415. package/dist/GraphEl-BixTEyKW.cjs +0 -2
  416. package/dist/GraphEl-BixTEyKW.cjs.map +0 -1
  417. package/dist/GraphEl-Dyu_EIQb.js.map +0 -1
  418. package/dist/ReferenceLine-2XCwHXQ4.js.map +0 -1
  419. package/dist/RegressionLine-DAcY2DjT.js.map +0 -1
  420. package/dist/checkIfMultiple-wg6hJLXy.cjs +0 -12
  421. package/dist/defaultLocale-BEa-49Qz.js +0 -172
  422. package/dist/defaultLocale-BEa-49Qz.js.map +0 -1
  423. package/dist/defaultLocale-DIVzfLaQ.cjs +0 -2
  424. package/dist/defaultLocale-DIVzfLaQ.cjs.map +0 -1
  425. package/dist/getCentroidCoordinates-D7r34N4w.js.map +0 -1
  426. package/dist/getCentroidCoordinates-Dng1HVjO.cjs +0 -2
  427. package/dist/getCentroidCoordinates-Dng1HVjO.cjs.map +0 -1
  428. package/dist/getGraphList-CA17dvFB.cjs +0 -2
  429. package/dist/getGraphList-CA17dvFB.cjs.map +0 -1
  430. package/dist/getGraphList-Dxwo9TDb.js.map +0 -1
  431. package/dist/getSchema.cjs +0 -2
  432. package/dist/getSchema.cjs.map +0 -1
  433. package/dist/getSchema.d.ts +0 -3258
  434. package/dist/getSchema.js +0 -1129
  435. package/dist/getSchema.js.map +0 -1
  436. package/dist/getSliderMarks-BmADcPQt.cjs +0 -6
  437. package/dist/getSliderMarks-HIDJ0_Cd.js.map +0 -1
  438. package/dist/imageDownload-BU4qnxJP.js.map +0 -1
  439. package/dist/imageDownload-NYXbvKob.cjs.map +0 -1
  440. package/dist/index-BqfRwk1n.js +0 -146
  441. package/dist/index-BqfRwk1n.js.map +0 -1
  442. package/dist/index-DG2bgAva.cjs +0 -10
  443. package/dist/index-DG2bgAva.cjs.map +0 -1
  444. package/dist/index-DxXnJ8Ti.cjs.map +0 -1
  445. package/dist/index-GEsywGxz.js.map +0 -1
  446. package/dist/parse-hMnG_lRV.cjs +0 -2
  447. package/dist/proxy-BxkFHwUw.js.map +0 -1
  448. package/dist/proxy-BxvUI_9l.cjs +0 -2
  449. package/dist/proxy-BxvUI_9l.cjs.map +0 -1
  450. package/dist/transformDataForAggregation-CYoB5Xsk.cjs +0 -2
  451. package/dist/transformDataForAggregation-CYoB5Xsk.cjs.map +0 -1
  452. package/dist/transformDataForAggregation-j34UL73s.js.map +0 -1
  453. package/dist/use-in-view-Cxa7y1TH.js.map +0 -1
  454. package/dist/use-in-view-QcfiW0w3.cjs.map +0 -1
  455. package/dist/validateSchema.cjs +0 -2
  456. package/dist/validateSchema.cjs.map +0 -1
  457. package/dist/validateSchema.d.ts +0 -66
  458. package/dist/validateSchema.js +0 -109
  459. package/dist/validateSchema.js.map +0 -1
  460. package/dist/x-BBpi7a_7-mTo40uId.cjs +0 -27
  461. package/dist/zoom-C9MFjAaV.js.map +0 -1
  462. package/dist/zoom-DPw8bba-.cjs.map +0 -1
@@ -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 { 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 { DetailsModal } from '@/Components/Elements/DetailsModal';\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 <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\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 <GraphArea ref={graphDiv}>\r\n {data.length === 0 && <EmptyState />}\r\n {svgWidth && svgHeight && sankeyData && data.length > 0 ? (\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 {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","DetailsModal","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","t39","generateRandomString","t40","GraphArea","t41","footnote","GraphFooter","t42","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]}
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 { 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 { DetailsModal } from '@/Components/Elements/DetailsModal';\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 <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\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 <GraphArea ref={graphDiv}>\r\n {data.length === 0 && <EmptyState />}\r\n {svgWidth && svgHeight && sankeyData && data.length > 0 ? (\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 {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","linkPathGenerator","motion","svg","Symbol","for","marginLeft","marginRight","jsx","textAnchor","filter","_temp3","map","_temp4","t16","d_2","jsxs","fill","color","overflow","P","cn","hyphens","label","length","substring","numberFormattingFunction","_temp5","t17","d_4","i_0","_temp6","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","_temp7","_temp8","t19","t20","Tooltip","modal","DetailsModal","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","t39","generateRandomString","_temp9","t40","GraphArea","t41","footnote","GraphFooter","t42","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]}