@undp/data-viz 2.5.3 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (444) hide show
  1. package/dist/AreaChart.cjs +1 -1
  2. package/dist/AreaChart.cjs.map +1 -1
  3. package/dist/AreaChart.js +17 -16
  4. package/dist/AreaChart.js.map +1 -1
  5. package/dist/Axis-DY7jsk1Y.cjs +2 -0
  6. package/dist/{Axis-BTaS9oPQ.cjs.map → Axis-DY7jsk1Y.cjs.map} +1 -1
  7. package/dist/{Axis-CNZYWzH0.js → Axis-RRx-0Rlw.js} +9 -8
  8. package/dist/{Axis-CNZYWzH0.js.map → Axis-RRx-0Rlw.js.map} +1 -1
  9. package/dist/AxisTitle-B9F80_Z0.js +30 -0
  10. package/dist/AxisTitle-B9F80_Z0.js.map +1 -0
  11. package/dist/AxisTitle-CyFFbdNU.cjs +2 -0
  12. package/dist/{AxisTitle-DP_evhbe.cjs.map → AxisTitle-CyFFbdNU.cjs.map} +1 -1
  13. package/dist/BarGraph.cjs +1 -1
  14. package/dist/BarGraph.cjs.map +1 -1
  15. package/dist/BarGraph.js +203 -201
  16. package/dist/BarGraph.js.map +1 -1
  17. package/dist/BasicStatCard.cjs +1 -1
  18. package/dist/BasicStatCard.cjs.map +1 -1
  19. package/dist/BasicStatCard.js +15 -14
  20. package/dist/BasicStatCard.js.map +1 -1
  21. package/dist/BeeSwarmChart.cjs +1 -1
  22. package/dist/BeeSwarmChart.cjs.map +1 -1
  23. package/dist/BeeSwarmChart.js +60 -59
  24. package/dist/BeeSwarmChart.js.map +1 -1
  25. package/dist/BiVariateChoroplethMap.cjs +1 -1
  26. package/dist/BiVariateChoroplethMap.cjs.map +1 -1
  27. package/dist/BiVariateChoroplethMap.js +88 -86
  28. package/dist/BiVariateChoroplethMap.js.map +1 -1
  29. package/dist/BulletChart.cjs +1 -1
  30. package/dist/BulletChart.cjs.map +1 -1
  31. package/dist/BulletChart.js +88 -86
  32. package/dist/BulletChart.js.map +1 -1
  33. package/dist/ButterflyChart.cjs +1 -1
  34. package/dist/ButterflyChart.cjs.map +1 -1
  35. package/dist/ButterflyChart.js +100 -98
  36. package/dist/ButterflyChart.js.map +1 -1
  37. package/dist/ChoroplethMap.cjs +1 -1
  38. package/dist/ChoroplethMap.cjs.map +1 -1
  39. package/dist/ChoroplethMap.js +266 -243
  40. package/dist/ChoroplethMap.js.map +1 -1
  41. package/dist/CirclePackingGraph.cjs +1 -1
  42. package/dist/CirclePackingGraph.js +4 -4
  43. package/dist/ColorLegend.cjs +1 -1
  44. package/dist/ColorLegend.cjs.map +1 -1
  45. package/dist/ColorLegend.js +17 -16
  46. package/dist/ColorLegend.js.map +1 -1
  47. package/dist/ColorLegendWithMouseOver.cjs +1 -1
  48. package/dist/ColorLegendWithMouseOver.cjs.map +1 -1
  49. package/dist/ColorLegendWithMouseOver.js +13 -12
  50. package/dist/ColorLegendWithMouseOver.js.map +1 -1
  51. package/dist/Colors.cjs +1 -1
  52. package/dist/Colors.cjs.map +1 -1
  53. package/dist/Colors.d.ts +16 -0
  54. package/dist/Colors.js +16 -0
  55. package/dist/Colors.js.map +1 -1
  56. package/dist/CopyTextButton.cjs +1 -1
  57. package/dist/CopyTextButton.cjs.map +1 -1
  58. package/dist/CopyTextButton.js +37 -754
  59. package/dist/CopyTextButton.js.map +1 -1
  60. package/dist/CsvDownloadButton.cjs +4 -4
  61. package/dist/CsvDownloadButton.cjs.map +1 -1
  62. package/dist/CsvDownloadButton.js +47 -45
  63. package/dist/CsvDownloadButton.js.map +1 -1
  64. package/dist/DataCards.cjs +1 -1
  65. package/dist/DataCards.cjs.map +1 -1
  66. package/dist/DataCards.js +213 -467
  67. package/dist/DataCards.js.map +1 -1
  68. package/dist/DataTable.cjs +1 -1
  69. package/dist/DataTable.cjs.map +1 -1
  70. package/dist/DataTable.js +19 -19
  71. package/dist/DetailsModal-BmjtLqrZ.cjs +2 -0
  72. package/dist/{DetailsModal-Du8Fr1QD.cjs.map → DetailsModal-BmjtLqrZ.cjs.map} +1 -1
  73. package/dist/{DetailsModal-GqEbGHY2.js → DetailsModal-k-Me_U_T.js} +3 -3
  74. package/dist/{DetailsModal-GqEbGHY2.js.map → DetailsModal-k-Me_U_T.js.map} +1 -1
  75. package/dist/DifferenceLineChart.cjs +1 -1
  76. package/dist/DifferenceLineChart.cjs.map +1 -1
  77. package/dist/DifferenceLineChart.js +61 -60
  78. package/dist/DifferenceLineChart.js.map +1 -1
  79. package/dist/DonutChart.cjs +1 -1
  80. package/dist/DonutChart.cjs.map +1 -1
  81. package/dist/DonutChart.js +47 -46
  82. package/dist/DonutChart.js.map +1 -1
  83. package/dist/DotDensityMap.cjs +1 -1
  84. package/dist/DotDensityMap.cjs.map +1 -1
  85. package/dist/DotDensityMap.js +112 -110
  86. package/dist/DotDensityMap.js.map +1 -1
  87. package/dist/DualAxisLineChart.cjs +1 -1
  88. package/dist/DualAxisLineChart.cjs.map +1 -1
  89. package/dist/DualAxisLineChart.js +13 -12
  90. package/dist/DualAxisLineChart.js.map +1 -1
  91. package/dist/DumbbellChart.cjs +1 -1
  92. package/dist/DumbbellChart.cjs.map +1 -1
  93. package/dist/DumbbellChart.js +104 -102
  94. package/dist/DumbbellChart.js.map +1 -1
  95. package/dist/EmptyState-BoaUUuo6.cjs +2 -0
  96. package/dist/{EmptyState-CFmiFPHz.cjs.map → EmptyState-BoaUUuo6.cjs.map} +1 -1
  97. package/dist/{EmptyState-CaxXCkiN.js → EmptyState-prZ8OnEs.js} +4 -4
  98. package/dist/{EmptyState-CaxXCkiN.js.map → EmptyState-prZ8OnEs.js.map} +1 -1
  99. package/dist/ExcelDownloadButton.cjs +1 -1
  100. package/dist/ExcelDownloadButton.cjs.map +1 -1
  101. package/dist/ExcelDownloadButton.js +15 -13
  102. package/dist/ExcelDownloadButton.js.map +1 -1
  103. package/dist/FootNote.cjs +1 -1
  104. package/dist/FootNote.cjs.map +1 -1
  105. package/dist/FootNote.js +10 -9
  106. package/dist/FootNote.js.map +1 -1
  107. package/dist/GeoHubCompareMaps.cjs +1 -1
  108. package/dist/GeoHubCompareMaps.cjs.map +1 -1
  109. package/dist/GeoHubCompareMaps.js +14 -14
  110. package/dist/GeoHubMap.cjs +1 -1
  111. package/dist/GeoHubMap.cjs.map +1 -1
  112. package/dist/GeoHubMap.js +59 -59
  113. package/dist/GeoHubMapWithLayerSelection.cjs +1 -1
  114. package/dist/GeoHubMapWithLayerSelection.cjs.map +1 -1
  115. package/dist/GeoHubMapWithLayerSelection.js +50 -50
  116. package/dist/{GraphContainer-B8ZqOzKI.js → GraphContainer-DcOM2CI6.js} +28 -27
  117. package/dist/GraphContainer-DcOM2CI6.js.map +1 -0
  118. package/dist/GraphContainer-gaG9TSy4.cjs +2 -0
  119. package/dist/{GraphContainer-Cul9b74X.cjs.map → GraphContainer-gaG9TSy4.cjs.map} +1 -1
  120. package/dist/GraphDescription.cjs +1 -1
  121. package/dist/GraphDescription.cjs.map +1 -1
  122. package/dist/GraphDescription.js +14 -13
  123. package/dist/GraphDescription.js.map +1 -1
  124. package/dist/{GraphEl-Ch0uAeZw.js → GraphEl-C7KBBHvB.js} +9 -9
  125. package/dist/{GraphEl-Ch0uAeZw.js.map → GraphEl-C7KBBHvB.js.map} +1 -1
  126. package/dist/GraphEl-CGALp07K.cjs +2 -0
  127. package/dist/{GraphEl-BgkDbq50.cjs.map → GraphEl-CGALp07K.cjs.map} +1 -1
  128. package/dist/GraphFooter.cjs +1 -1
  129. package/dist/GraphFooter.cjs.map +1 -1
  130. package/dist/GraphFooter.js +2 -2
  131. package/dist/GraphHeader.cjs +1 -1
  132. package/dist/GraphHeader.cjs.map +1 -1
  133. package/dist/GraphHeader.js +1 -1
  134. package/dist/GraphTitle.cjs +1 -1
  135. package/dist/GraphTitle.cjs.map +1 -1
  136. package/dist/GraphTitle.js +14 -13
  137. package/dist/GraphTitle.js.map +1 -1
  138. package/dist/GriddedGraphs.cjs +1 -1
  139. package/dist/GriddedGraphs.cjs.map +1 -1
  140. package/dist/GriddedGraphs.js +58 -55
  141. package/dist/GriddedGraphs.js.map +1 -1
  142. package/dist/GriddedGraphsFromConfig.cjs +1 -1
  143. package/dist/GriddedGraphsFromConfig.cjs.map +1 -1
  144. package/dist/GriddedGraphsFromConfig.js +15 -15
  145. package/dist/HeatMap.cjs +1 -1
  146. package/dist/HeatMap.cjs.map +1 -1
  147. package/dist/HeatMap.js +17 -16
  148. package/dist/HeatMap.js.map +1 -1
  149. package/dist/Histogram.cjs +1 -1
  150. package/dist/Histogram.cjs.map +1 -1
  151. package/dist/Histogram.js +3 -3
  152. package/dist/HybridMap.cjs +1 -1
  153. package/dist/HybridMap.cjs.map +1 -1
  154. package/dist/HybridMap.js +409 -420
  155. package/dist/HybridMap.js.map +1 -1
  156. package/dist/ImageDownloadButton.cjs +1 -1
  157. package/dist/ImageDownloadButton.cjs.map +1 -1
  158. package/dist/ImageDownloadButton.js +16 -14
  159. package/dist/ImageDownloadButton.js.map +1 -1
  160. package/dist/LineChartWithConfidenceInterval.cjs +1 -1
  161. package/dist/LineChartWithConfidenceInterval.cjs.map +1 -1
  162. package/dist/LineChartWithConfidenceInterval.js +16 -15
  163. package/dist/LineChartWithConfidenceInterval.js.map +1 -1
  164. package/dist/LinearColorLegend.cjs +1 -1
  165. package/dist/LinearColorLegend.cjs.map +1 -1
  166. package/dist/LinearColorLegend.js +5 -4
  167. package/dist/LinearColorLegend.js.map +1 -1
  168. package/dist/MultiGraphDashboard.cjs +1 -1
  169. package/dist/MultiGraphDashboard.cjs.map +1 -1
  170. package/dist/MultiGraphDashboard.js +62 -60
  171. package/dist/MultiGraphDashboard.js.map +1 -1
  172. package/dist/MultiGraphDashboardFromConfig.cjs +1 -1
  173. package/dist/MultiGraphDashboardFromConfig.cjs.map +1 -1
  174. package/dist/MultiGraphDashboardFromConfig.js +7 -7
  175. package/dist/MultiGraphDashboardWideToLongFormat.cjs +1 -1
  176. package/dist/MultiGraphDashboardWideToLongFormat.cjs.map +1 -1
  177. package/dist/MultiGraphDashboardWideToLongFormat.js +21 -21
  178. package/dist/MultiGraphDashboardWideToLongFormat.js.map +1 -1
  179. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.cjs +1 -1
  180. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.cjs.map +1 -1
  181. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js +3 -3
  182. package/dist/MultiLineAltChart.cjs +1 -1
  183. package/dist/MultiLineAltChart.cjs.map +1 -1
  184. package/dist/MultiLineAltChart.js +16 -15
  185. package/dist/MultiLineAltChart.js.map +1 -1
  186. package/dist/MultiLineChart.cjs +1 -1
  187. package/dist/MultiLineChart.cjs.map +1 -1
  188. package/dist/MultiLineChart.js +16 -15
  189. package/dist/MultiLineChart.js.map +1 -1
  190. package/dist/ParetoChart.cjs +1 -1
  191. package/dist/ParetoChart.cjs.map +1 -1
  192. package/dist/ParetoChart.js +14 -13
  193. package/dist/ParetoChart.js.map +1 -1
  194. package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +1 -1
  195. package/dist/PerformanceIntensiveMultiGraphDashboard.cjs.map +1 -1
  196. package/dist/PerformanceIntensiveMultiGraphDashboard.js +67 -65
  197. package/dist/PerformanceIntensiveMultiGraphDashboard.js.map +1 -1
  198. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs +1 -1
  199. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs.map +1 -1
  200. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js +8 -8
  201. package/dist/PerformanceIntensiveScrollStory.cjs +1 -1
  202. package/dist/PerformanceIntensiveScrollStory.cjs.map +1 -1
  203. package/dist/PerformanceIntensiveScrollStory.js +3 -3
  204. package/dist/RadarChart.cjs +1 -1
  205. package/dist/RadarChart.cjs.map +1 -1
  206. package/dist/RadarChart.js +11 -10
  207. package/dist/RadarChart.js.map +1 -1
  208. package/dist/ReferenceLine-CxITVT1K.cjs +2 -0
  209. package/dist/{ReferenceLine-CpU4G01Y.cjs.map → ReferenceLine-CxITVT1K.cjs.map} +1 -1
  210. package/dist/{ReferenceLine-D41VuUhE.js → ReferenceLine-NF4g3Reh.js} +26 -25
  211. package/dist/ReferenceLine-NF4g3Reh.js.map +1 -0
  212. package/dist/RegressionLine-BQ6h-NZP.js +88 -0
  213. package/dist/RegressionLine-BQ6h-NZP.js.map +1 -0
  214. package/dist/RegressionLine-BpcVBjL0.cjs +2 -0
  215. package/dist/{RegressionLine-BFoBiVJk.cjs.map → RegressionLine-BpcVBjL0.cjs.map} +1 -1
  216. package/dist/SVGDownloadButton.cjs +1 -1
  217. package/dist/SVGDownloadButton.cjs.map +1 -1
  218. package/dist/SVGDownloadButton.js +11 -9
  219. package/dist/SVGDownloadButton.js.map +1 -1
  220. package/dist/SankeyChart.cjs +1 -1
  221. package/dist/SankeyChart.cjs.map +1 -1
  222. package/dist/SankeyChart.js +63 -62
  223. package/dist/SankeyChart.js.map +1 -1
  224. package/dist/ScatterPlot.cjs +1 -1
  225. package/dist/ScatterPlot.cjs.map +1 -1
  226. package/dist/ScatterPlot.js +109 -107
  227. package/dist/ScatterPlot.js.map +1 -1
  228. package/dist/ScrollStory.cjs +1 -1
  229. package/dist/ScrollStory.cjs.map +1 -1
  230. package/dist/ScrollStory.js +3 -3
  231. package/dist/SimpleLineChart.cjs +1 -1
  232. package/dist/SimpleLineChart.cjs.map +1 -1
  233. package/dist/SimpleLineChart.js +17 -16
  234. package/dist/SimpleLineChart.js.map +1 -1
  235. package/dist/SingleGraphDashboard.cjs +1 -1
  236. package/dist/SingleGraphDashboard.cjs.map +1 -1
  237. package/dist/SingleGraphDashboard.js +59 -56
  238. package/dist/SingleGraphDashboard.js.map +1 -1
  239. package/dist/SingleGraphDashboardFromConfig.cjs +1 -1
  240. package/dist/SingleGraphDashboardFromConfig.cjs.map +1 -1
  241. package/dist/SingleGraphDashboardFromConfig.js +6 -6
  242. package/dist/SingleGraphDashboardGeoHubMaps.cjs +1 -1
  243. package/dist/SingleGraphDashboardGeoHubMaps.cjs.map +1 -1
  244. package/dist/SingleGraphDashboardGeoHubMaps.js +12 -12
  245. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs +1 -1
  246. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs.map +1 -1
  247. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js +8 -8
  248. package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
  249. package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -1
  250. package/dist/SingleGraphDashboardThreeDGraphs.js +59 -56
  251. package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -1
  252. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs +1 -1
  253. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs.map +1 -1
  254. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js +7 -7
  255. package/dist/SlopeChart.cjs +1 -1
  256. package/dist/SlopeChart.cjs.map +1 -1
  257. package/dist/SlopeChart.js +60 -59
  258. package/dist/SlopeChart.js.map +1 -1
  259. package/dist/Source.cjs +1 -1
  260. package/dist/Source.cjs.map +1 -1
  261. package/dist/Source.js +38 -4
  262. package/dist/Source.js.map +1 -1
  263. package/dist/SparkLine.cjs +1 -1
  264. package/dist/SparkLine.cjs.map +1 -1
  265. package/dist/SparkLine.js +11 -10
  266. package/dist/SparkLine.js.map +1 -1
  267. package/dist/StatCardFromData.cjs +1 -1
  268. package/dist/StatCardFromData.cjs.map +1 -1
  269. package/dist/StatCardFromData.js +15 -14
  270. package/dist/StatCardFromData.js.map +1 -1
  271. package/dist/StripChart.cjs +1 -1
  272. package/dist/StripChart.cjs.map +1 -1
  273. package/dist/StripChart.js +11 -10
  274. package/dist/StripChart.js.map +1 -1
  275. package/dist/ThreeDGlobe.cjs +1 -1
  276. package/dist/ThreeDGlobe.cjs.map +1 -1
  277. package/dist/ThreeDGlobe.js +52 -51
  278. package/dist/ThreeDGlobe.js.map +1 -1
  279. package/dist/ThresholdColorLegendWithMouseOver.cjs +1 -1
  280. package/dist/ThresholdColorLegendWithMouseOver.cjs.map +1 -1
  281. package/dist/ThresholdColorLegendWithMouseOver.js +17 -16
  282. package/dist/ThresholdColorLegendWithMouseOver.js.map +1 -1
  283. package/dist/{Tooltip-3EYDVa3w.js → Tooltip-DO56mY4b.js} +11 -10
  284. package/dist/{Tooltip-3EYDVa3w.js.map → Tooltip-DO56mY4b.js.map} +1 -1
  285. package/dist/Tooltip-DwUFLDrj.cjs +2 -0
  286. package/dist/{Tooltip-C9F3uYG0.cjs.map → Tooltip-DwUFLDrj.cjs.map} +1 -1
  287. package/dist/TreeMapGraph.cjs +1 -1
  288. package/dist/TreeMapGraph.cjs.map +1 -1
  289. package/dist/TreeMapGraph.js +34 -33
  290. package/dist/TreeMapGraph.js.map +1 -1
  291. package/dist/UnitChart.cjs +1 -1
  292. package/dist/UnitChart.cjs.map +1 -1
  293. package/dist/UnitChart.js +27 -27
  294. package/dist/WaterfallChart.cjs +1 -1
  295. package/dist/WaterfallChart.cjs.map +1 -1
  296. package/dist/WaterfallChart.js +21 -20
  297. package/dist/WaterfallChart.js.map +1 -1
  298. package/dist/XAxesLabels-0ROJnigy.cjs +2 -0
  299. package/dist/{XAxesLabels-C03jHniq.cjs.map → XAxesLabels-0ROJnigy.cjs.map} +1 -1
  300. package/dist/{XAxesLabels-B9gkjUiC.js → XAxesLabels-CPZX3OJN.js} +12 -11
  301. package/dist/XAxesLabels-CPZX3OJN.js.map +1 -0
  302. package/dist/XTicksAndGridLines-BO6KJc8d.cjs +2 -0
  303. package/dist/{XTicksAndGridLines-B4UhDVyU.cjs.map → XTicksAndGridLines-BO6KJc8d.cjs.map} +1 -1
  304. package/dist/{XTicksAndGridLines-CkYwVshF.js → XTicksAndGridLines-obTK2e7G.js} +10 -9
  305. package/dist/{XTicksAndGridLines-CkYwVshF.js.map → XTicksAndGridLines-obTK2e7G.js.map} +1 -1
  306. package/dist/{YAxesLabels-hWEUCTvs.js → YAxesLabels-CwVnFG2a.js} +13 -12
  307. package/dist/YAxesLabels-CwVnFG2a.js.map +1 -0
  308. package/dist/YAxesLabels-DIa2cEXL.cjs +2 -0
  309. package/dist/{YAxesLabels-DeENFC2M.cjs.map → YAxesLabels-DIa2cEXL.cjs.map} +1 -1
  310. package/dist/YTicksAndGridLines-C7glLI5b.cjs +2 -0
  311. package/dist/{YTicksAndGridLines-sT3zdCs6.cjs.map → YTicksAndGridLines-C7glLI5b.cjs.map} +1 -1
  312. package/dist/{YTicksAndGridLines-BbujwxOB.js → YTicksAndGridLines-wtuAKNeT.js} +10 -9
  313. package/dist/{YTicksAndGridLines-BbujwxOB.js.map → YTicksAndGridLines-wtuAKNeT.js.map} +1 -1
  314. package/dist/checkIfMultiple-BIEQDuA3.cjs +2 -0
  315. package/dist/checkIfMultiple-BIEQDuA3.cjs.map +1 -0
  316. package/dist/checkIfMultiple-D2tgEnYM.js +11 -0
  317. package/dist/checkIfMultiple-D2tgEnYM.js.map +1 -0
  318. package/dist/compiler-runtime-oPPev21o.cjs +11 -0
  319. package/dist/compiler-runtime-oPPev21o.cjs.map +1 -0
  320. package/dist/compiler-runtime-qHgugrLy.js +297 -0
  321. package/dist/compiler-runtime-qHgugrLy.js.map +1 -0
  322. package/dist/customArea-BCGIYDQa.cjs +2 -0
  323. package/dist/{customArea-BAcQ3pBM.cjs.map → customArea-BCGIYDQa.cjs.map} +1 -1
  324. package/dist/{customArea-D89lETG0.js → customArea-Dixg0NtQ.js} +10 -9
  325. package/dist/{customArea-D89lETG0.js.map → customArea-Dixg0NtQ.js.map} +1 -1
  326. package/dist/{fetchAndParseData-BAXhgTDM.js → fetchAndParseData-CDjQZ1fL.js} +5 -5
  327. package/dist/{fetchAndParseData-BAXhgTDM.js.map → fetchAndParseData-CDjQZ1fL.js.map} +1 -1
  328. package/dist/fetchAndParseData.js +1 -1
  329. package/dist/getSliderMarks-Bj_JJTtX.cjs +2 -0
  330. package/dist/getSliderMarks-Bj_JJTtX.cjs.map +1 -0
  331. package/dist/getSliderMarks-DSxFGb1f.js +21 -0
  332. package/dist/getSliderMarks-DSxFGb1f.js.map +1 -0
  333. package/dist/index-5BQWR1Z8.cjs +10 -0
  334. package/dist/{index-FXfr51ZM.cjs.map → index-5BQWR1Z8.cjs.map} +1 -1
  335. package/dist/index-BaXzoD4r.cjs +2 -0
  336. package/dist/{index-BuhBhuCq.cjs.map → index-BaXzoD4r.cjs.map} +1 -1
  337. package/dist/{index-Cv_5q6Rb.js → index-CNUlPiEL.js} +3 -3
  338. package/dist/{index-Cv_5q6Rb.js.map → index-CNUlPiEL.js.map} +1 -1
  339. package/dist/{index-DHVGV8Df.js → index-CmkqqFRG.js} +3 -3
  340. package/dist/{index-DHVGV8Df.js.map → index-CmkqqFRG.js.map} +1 -1
  341. package/dist/index-D_ls5oK8.js +142 -0
  342. package/dist/index-D_ls5oK8.js.map +1 -0
  343. package/dist/index-DbSnila_.cjs +2 -0
  344. package/dist/index-DbSnila_.cjs.map +1 -0
  345. package/dist/{index-BPyj_6hG.js → index-_w-CQAbR.js} +113 -112
  346. package/dist/{index-BPyj_6hG.js.map → index-_w-CQAbR.js.map} +1 -1
  347. package/dist/index-dN3wiQgD.cjs +2 -0
  348. package/dist/{index-DuLvdHo2.cjs.map → index-dN3wiQgD.cjs.map} +1 -1
  349. package/dist/index.cjs +1 -1
  350. package/dist/index.d.ts +16 -0
  351. package/dist/index.js +181 -180
  352. package/dist/index.js.map +1 -1
  353. package/dist/{proxy-BsxtcZKa.js → proxy-D31SA_aE.js} +2 -2
  354. package/dist/{proxy-BsxtcZKa.js.map → proxy-D31SA_aE.js.map} +1 -1
  355. package/dist/proxy-QMeVVqam.cjs +2 -0
  356. package/dist/{proxy-CqH8m8IQ.cjs.map → proxy-QMeVVqam.cjs.map} +1 -1
  357. package/dist/style.css +1 -1
  358. package/dist/transformData.js +2 -2
  359. package/dist/{transformDataForGraphFromFile-dt9sHTVy.js → transformDataForGraphFromFile-COZC6A0_.js} +4 -4
  360. package/dist/{transformDataForGraphFromFile-dt9sHTVy.js.map → transformDataForGraphFromFile-COZC6A0_.js.map} +1 -1
  361. package/dist/{use-in-view-KOXq5Kmc.js → use-in-view-Co5SmzfT.js} +2 -2
  362. package/dist/{use-in-view-KOXq5Kmc.js.map → use-in-view-Co5SmzfT.js.map} +1 -1
  363. package/dist/use-in-view-DjR_gqJP.cjs +2 -0
  364. package/dist/{use-in-view-dnRv_qqF.cjs.map → use-in-view-DjR_gqJP.cjs.map} +1 -1
  365. package/package.json +1 -1
  366. package/dist/Axis-BTaS9oPQ.cjs +0 -2
  367. package/dist/AxisTitle-CyLCqpW6.js +0 -29
  368. package/dist/AxisTitle-CyLCqpW6.js.map +0 -1
  369. package/dist/AxisTitle-DP_evhbe.cjs +0 -2
  370. package/dist/DetailsModal-Du8Fr1QD.cjs +0 -2
  371. package/dist/DropdownSelect-CX1yMemd.cjs +0 -5
  372. package/dist/DropdownSelect-CX1yMemd.cjs.map +0 -1
  373. package/dist/DropdownSelect-Dz7imdTB.js +0 -4191
  374. package/dist/DropdownSelect-Dz7imdTB.js.map +0 -1
  375. package/dist/EmptyState-CFmiFPHz.cjs +0 -2
  376. package/dist/GraphContainer-B8ZqOzKI.js.map +0 -1
  377. package/dist/GraphContainer-Cul9b74X.cjs +0 -2
  378. package/dist/GraphEl-BgkDbq50.cjs +0 -2
  379. package/dist/Modal-BIErPPKT.cjs +0 -46
  380. package/dist/Modal-BIErPPKT.cjs.map +0 -1
  381. package/dist/Modal-CrUYln5V.js +0 -1047
  382. package/dist/Modal-CrUYln5V.js.map +0 -1
  383. package/dist/ReferenceLine-CpU4G01Y.cjs +0 -2
  384. package/dist/ReferenceLine-D41VuUhE.js.map +0 -1
  385. package/dist/RegressionLine-BFoBiVJk.cjs +0 -2
  386. package/dist/RegressionLine-CuwB42I6.js +0 -87
  387. package/dist/RegressionLine-CuwB42I6.js.map +0 -1
  388. package/dist/Source-PKuwZOn3.cjs +0 -2
  389. package/dist/Source-PKuwZOn3.cjs.map +0 -1
  390. package/dist/Source-QGk8vhkS.js +0 -78
  391. package/dist/Source-QGk8vhkS.js.map +0 -1
  392. package/dist/Spinner-B2IIKg9r.js +0 -47
  393. package/dist/Spinner-B2IIKg9r.js.map +0 -1
  394. package/dist/Spinner-WHzzloYQ.cjs +0 -2
  395. package/dist/Spinner-WHzzloYQ.cjs.map +0 -1
  396. package/dist/Tooltip-C9F3uYG0.cjs +0 -2
  397. package/dist/Typography-BO0gQDIT.js +0 -270
  398. package/dist/Typography-BO0gQDIT.js.map +0 -1
  399. package/dist/Typography-BqmyF1gP.cjs +0 -2
  400. package/dist/Typography-BqmyF1gP.cjs.map +0 -1
  401. package/dist/XAxesLabels-B9gkjUiC.js.map +0 -1
  402. package/dist/XAxesLabels-C03jHniq.cjs +0 -2
  403. package/dist/XTicksAndGridLines-B4UhDVyU.cjs +0 -2
  404. package/dist/YAxesLabels-DeENFC2M.cjs +0 -2
  405. package/dist/YAxesLabels-hWEUCTvs.js.map +0 -1
  406. package/dist/YTicksAndGridLines-sT3zdCs6.cjs +0 -2
  407. package/dist/checkIfMultiple-CH5tqj4q.cjs +0 -2
  408. package/dist/checkIfMultiple-CH5tqj4q.cjs.map +0 -1
  409. package/dist/checkIfMultiple-Dpyy6BUP.js +0 -938
  410. package/dist/checkIfMultiple-Dpyy6BUP.js.map +0 -1
  411. package/dist/customArea-BAcQ3pBM.cjs +0 -2
  412. package/dist/getSliderMarks-BzrpHrHS.cjs +0 -2
  413. package/dist/getSliderMarks-BzrpHrHS.cjs.map +0 -1
  414. package/dist/getSliderMarks-X-_goqH9.js +0 -1027
  415. package/dist/getSliderMarks-X-_goqH9.js.map +0 -1
  416. package/dist/index-ApTBN0kp.js +0 -196
  417. package/dist/index-ApTBN0kp.js.map +0 -1
  418. package/dist/index-BhI7mBJx.cjs +0 -2
  419. package/dist/index-BhI7mBJx.cjs.map +0 -1
  420. package/dist/index-BuhBhuCq.cjs +0 -2
  421. package/dist/index-CHPV5EwG-BzibaIRc.js +0 -3360
  422. package/dist/index-CHPV5EwG-BzibaIRc.js.map +0 -1
  423. package/dist/index-CHPV5EwG-D4pAp7u0.cjs +0 -20
  424. package/dist/index-CHPV5EwG-D4pAp7u0.cjs.map +0 -1
  425. package/dist/index-DuLvdHo2.cjs +0 -2
  426. package/dist/index-FXfr51ZM.cjs +0 -10
  427. package/dist/index-Scxs_wcm-BAjU0Cob.js +0 -49
  428. package/dist/index-Scxs_wcm-BAjU0Cob.js.map +0 -1
  429. package/dist/index-Scxs_wcm-DUDU-Gll.cjs +0 -2
  430. package/dist/index-Scxs_wcm-DUDU-Gll.cjs.map +0 -1
  431. package/dist/index-w64Zl8io-DrMm5QSb.cjs +0 -2
  432. package/dist/index-w64Zl8io-DrMm5QSb.cjs.map +0 -1
  433. package/dist/index-w64Zl8io-ihagHOdP.js +0 -459
  434. package/dist/index-w64Zl8io-ihagHOdP.js.map +0 -1
  435. package/dist/proxy-CqH8m8IQ.cjs +0 -2
  436. package/dist/toConsumableArray-DiWOvh_d-DcLaZvDq.cjs +0 -4
  437. package/dist/toConsumableArray-DiWOvh_d-DcLaZvDq.cjs.map +0 -1
  438. package/dist/toConsumableArray-DiWOvh_d-DlpOlgap.js +0 -145
  439. package/dist/toConsumableArray-DiWOvh_d-DlpOlgap.js.map +0 -1
  440. package/dist/use-in-view-dnRv_qqF.cjs +0 -2
  441. package/dist/x-BXShoIAM-BC2sxios.cjs +0 -2
  442. package/dist/x-BXShoIAM-BC2sxios.cjs.map +0 -1
  443. package/dist/x-BXShoIAM-D6VWO6z5.js +0 -74
  444. package/dist/x-BXShoIAM-D6VWO6z5.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index-BPyj_6hG.js","sources":["../node_modules/d3-array/src/extent.js","../node_modules/d3-force-boundary/dist/d3-force-boundary.esm.js","../src/Components/Graphs/CirclePackingGraph/Graph.tsx","../src/Components/Graphs/CirclePackingGraph/getMaxCircleRadius.ts","../src/Components/Graphs/CirclePackingGraph/index.tsx"],"sourcesContent":["export default function extent(values, valueof) {\n let min;\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n return [min, max];\n}\n","// https://observablehq.com/@john-guerra/d3-force-boundary v0.0.2 Copyright 2022 John Alexis Guerra Gómez\nfunction constant(x) {\n return function() {\n return x;\n };\n}\n\nfunction forceBoundary(x0, y0, x1, y1) {\n var strength = constant(0.1),\n hardBoundary = true,\n border = constant( Math.min((x1 - x0)/2, (y1 - y0)/2) ),\n nodes,\n strengthsX,\n strengthsY,\n x0z, x1z,\n y0z, y1z,\n borderz,\n halfX, halfY;\n\n if (typeof x0 !== \"function\") x0 = constant(x0 == null ? -100 : +x0);\n if (typeof x1 !== \"function\") x1 = constant(x1 == null ? 100 : +x1);\n if (typeof y0 !== \"function\") y0 = constant(y0 == null ? -100 : +y0);\n if (typeof y1 !== \"function\") y1 = constant(y1 == null ? 100 : +y1);\n\n function getVx(halfX, x, strengthX, border, alpha) {\n return (halfX - x) * Math.min(2, Math.abs( halfX - x) / halfX) * strengthX * alpha;\n }\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i];\n // debugger;\n if ((node.x < (x0z[i] + borderz[i]) || node.x > (x1z[i] - borderz[i])) ||\n (node.y < (y0z[i] + borderz[i]) || node.y > (y1z[i] - borderz[i]))) {\n node.vx += getVx(halfX[i], node.x, strengthsX[i], borderz[i], alpha);\n node.vy += getVx(halfY[i], node.y, strengthsY[i], borderz[i], alpha);\n } else if (node.y < (y0z[i] + borderz[i]) || node.y > (y1z[i] - borderz[i])) ;\n\n if (hardBoundary) {\n if (node.x >= x1z[i]) node.vx += x1z[i] - node.x;\n if (node.x <= x0z[i]) node.vx += x0z[i] - node.x;\n if (node.y >= y1z[i]) node.vy += y1z[i] - node.y;\n if (node.y <= y0z[i]) node.vy += y0z[i] - node.y;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengthsX = new Array(n);\n strengthsY = new Array(n);\n x0z = new Array(n);\n y0z = new Array(n);\n x1z = new Array(n);\n y1z = new Array(n);\n halfY = new Array(n);\n halfX = new Array(n);\n borderz = new Array(n);\n\n for (i = 0; i < n; ++i) {\n strengthsX[i] = (isNaN(x0z[i] = +x0(nodes[i], i, nodes)) ||\n isNaN(x1z[i] = +x1(nodes[i], i, nodes))) ? 0 : +strength(nodes[i], i, nodes);\n strengthsY[i] = (isNaN(y0z[i] = +y0(nodes[i], i, nodes)) ||\n isNaN(y1z[i] = +y1(nodes[i], i, nodes))) ? 0 : +strength(nodes[i], i, nodes);\n halfX[i] = x0z[i] + (x1z[i] - x0z[i])/2,\n halfY[i] = y0z[i] + (y1z[i] - y0z[i])/2;\n borderz[i] = +border(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : x0;\n };\n\n force.x1 = function(_) {\n return arguments.length ? (x1 = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : x1;\n };\n\n force.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : y0;\n };\n\n force.y1 = function(_) {\n return arguments.length ? (y1 = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : y1;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.border = function(_) {\n return arguments.length ? (border = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : border;\n };\n\n force.hardBoundary = function(_) {\n return arguments.length ? (hardBoundary = _, force) : hardBoundary;\n };\n\n return force;\n}\n\nexport default forceBoundary;\n","import { useEffect, useState, useRef } from 'react';\r\nimport { forceCollide, forceManyBody, forceSimulation, forceX, forceY } from 'd3-force';\r\nimport orderBy from 'lodash.orderby';\r\nimport { scaleSqrt } from 'd3-scale';\r\nimport { extent } from 'd3-array';\r\nimport forceBoundary from 'd3-force-boundary';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\nimport { P } from '@undp/design-system-react/Typography';\r\n\r\nimport { ClassNameObject, StyleObject, TreeMapDataType } from '@/Types';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { getTextColorBasedOnBgColor } from '@/Utils/getTextColorBasedOnBgColor';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { DetailsModal } from '@/Components/Elements/DetailsModal';\r\n\r\ninterface Props {\r\n data: TreeMapDataType[];\r\n colors: string[];\r\n colorDomain: string[];\r\n leftMargin: number;\r\n rightMargin: number;\r\n topMargin: number;\r\n bottomMargin: number;\r\n showLabels: boolean;\r\n showValues: boolean;\r\n width: number;\r\n height: number;\r\n suffix: string;\r\n prefix: string;\r\n selectedColor?: string;\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 highlightedDataPoints?: (string | number)[];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n theme: 'light' | 'dark';\r\n maxRadiusValue?: number;\r\n radius: number;\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 dimmedOpacity: number;\r\n precision: number;\r\n locale: string;\r\n padZeros: boolean;\r\n}\r\n\r\ninterface TreeMapDataTypeForBubbleChart extends TreeMapDataType {\r\n x: number;\r\n y: number;\r\n vx: number;\r\n vy: number;\r\n}\r\n\r\nexport const Graph = (props: Props) => {\r\n const {\r\n data,\r\n colors,\r\n leftMargin,\r\n width,\r\n height,\r\n colorDomain,\r\n selectedColor,\r\n rightMargin,\r\n topMargin,\r\n bottomMargin,\r\n showLabels,\r\n tooltip,\r\n onSeriesMouseOver,\r\n showValues,\r\n suffix,\r\n prefix,\r\n highlightedDataPoints,\r\n onSeriesMouseClick,\r\n maxRadiusValue,\r\n radius,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n dimmedOpacity,\r\n precision,\r\n locale,\r\n padZeros,\r\n } = props;\r\n const svgRef = useRef(null);\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 const [viewPortDimensions, setViewPortDimensions] = useState<\r\n [number, number, number, number] | undefined\r\n >(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const [finalData, setFinalData] = useState<TreeMapDataTypeForBubbleChart[] | null>(null);\r\n\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\r\n };\r\n\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n // Memoize data ordering and radius scale\r\n const dataOrdered =\r\n data.filter(d => !checkIfNullOrUndefined(d.size)).length === 0\r\n ? data\r\n : orderBy(\r\n data.filter(d => !checkIfNullOrUndefined(d.size)),\r\n 'radius',\r\n 'asc',\r\n );\r\n\r\n const radiusScale =\r\n data.filter(d => d.size === undefined || d.size === null).length !== data.length\r\n ? scaleSqrt()\r\n .domain([\r\n 0,\r\n checkIfNullOrUndefined(maxRadiusValue)\r\n ? Math.max(...data.map(d => d.size).filter(d => d !== undefined && d !== null))\r\n : (maxRadiusValue as number),\r\n ])\r\n .range([0.25, radius])\r\n .nice()\r\n : undefined;\r\n\r\n // Memoize simulation setup\r\n useEffect(() => {\r\n const setupSimulation = () => {\r\n const dataTemp = dataOrdered.map(d => ({ ...d, ...(d.data && { data: { ...d.data } }) }));\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const simulation = forceSimulation(dataTemp as any)\r\n .force('y', forceY(_d => graphHeight / 2).strength(1))\r\n .force('x', forceX(_d => graphWidth / 2).strength(1))\r\n .force(\r\n 'collide',\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n forceCollide((d: any) => (radiusScale ? radiusScale(d.size || 0) + 1 : radius + 1)),\r\n )\r\n .force('charge', forceManyBody().strength(-15))\r\n .force('boundary', forceBoundary(0, 0, graphWidth, graphHeight).strength(0.2).border(50))\r\n .alphaDecay(0.05)\r\n .tick(10000);\r\n\r\n simulation\r\n .on('tick', () => {\r\n setFinalData(dataTemp as TreeMapDataTypeForBubbleChart[]);\r\n })\r\n .on('end', () => {\r\n setFinalData(dataTemp as TreeMapDataTypeForBubbleChart[]);\r\n const xMinExtent =\r\n extent(\r\n dataTemp as TreeMapDataTypeForBubbleChart[],\r\n d => d.x - (radiusScale ? radiusScale(d.size || 0) + 1 : radius + 1),\r\n )[0] || 0;\r\n const yMinExtent =\r\n extent(\r\n dataTemp as TreeMapDataTypeForBubbleChart[],\r\n d => d.y - (radiusScale ? radiusScale(d.size || 0) + 1 : radius + 1),\r\n )[0] || 0;\r\n const xMaxExtent =\r\n extent(\r\n dataTemp as TreeMapDataTypeForBubbleChart[],\r\n d => d.x + (radiusScale ? radiusScale(d.size || 0) + 1 : radius + 1),\r\n )[1] || 0;\r\n const yMaxExtent =\r\n extent(\r\n dataTemp as TreeMapDataTypeForBubbleChart[],\r\n d => d.y + (radiusScale ? radiusScale(d.size || 0) + 1 : radius + 1),\r\n )[1] || 0;\r\n setViewPortDimensions([\r\n xMinExtent,\r\n yMinExtent,\r\n xMinExtent < 0 ? xMaxExtent - xMinExtent : xMaxExtent,\r\n yMinExtent < 0 ? yMaxExtent - yMinExtent : yMaxExtent,\r\n ]);\r\n });\r\n };\r\n\r\n setupSimulation();\r\n }, [data, radius, graphHeight, graphWidth, maxRadiusValue, dataOrdered, radiusScale]);\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleMouseEnter = (event: any, d: any) => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleMouseMove = (event: any, d: any) => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleClick = (d: any) => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (mouseClickData === d.label && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d.label);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n };\r\n\r\n const handleMouseLeave = () => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const getCircleColor = (d: any) =>\r\n data.filter(el => el.color).length === 0\r\n ? colors[0]\r\n : !d.color\r\n ? Colors.gray\r\n : colors[colorDomain.indexOf(d.color)];\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const getOpacity = (d: any) =>\r\n selectedColor\r\n ? d.color\r\n ? colors[colorDomain.indexOf(d.color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedDataPoints\r\n ? highlightedDataPoints.indexOf(d.label) !== -1\r\n ? 0.85\r\n : dimmedOpacity\r\n : 0.85;\r\n\r\n // Render loading state\r\n if (!finalData) {\r\n return (\r\n <div style={{ width: `${width}px`, height: `${height}px` }}>\r\n <div className='flex m-auto items-center justify-center p-0 leading-none text-base h-40'>\r\n <Spinner />\r\n </div>\r\n </div>\r\n );\r\n }\r\n if (viewPortDimensions) {\r\n return (\r\n <>\r\n <svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`${viewPortDimensions[0] > 0 ? 0 : viewPortDimensions[0]} ${\r\n viewPortDimensions[1] > 0 ? 0 : viewPortDimensions[1]\r\n } ${width < viewPortDimensions[2] ? viewPortDimensions[2] : width} ${\r\n height < viewPortDimensions[3] ? viewPortDimensions[3] : height\r\n }`}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {finalData.map(d => {\r\n const circleColor = getCircleColor(d);\r\n const opacity = getOpacity(d);\r\n const bubbleRadius = radiusScale ? radiusScale(d.size || 0) : radius;\r\n const showLabel = bubbleRadius > 20 && (showLabels || showValues);\r\n return (\r\n <g\r\n className='undp-viz-g-with-hover'\r\n key={d.label}\r\n opacity={opacity}\r\n transform={`translate(${d.x},${d.y})`}\r\n onMouseEnter={event => handleMouseEnter(event, d)}\r\n onMouseMove={event => handleMouseMove(event, d)}\r\n onClick={() => handleClick(d)}\r\n onMouseLeave={handleMouseLeave}\r\n >\r\n <circle cx={0} cy={0} r={bubbleRadius} fill={circleColor} />\r\n {(showLabel || showValues) &&\r\n d.size !== undefined &&\r\n d.size !== null &&\r\n bubbleRadius >= 15 && (\r\n <g>\r\n <foreignObject\r\n y={0 - bubbleRadius}\r\n x={0 - bubbleRadius}\r\n width={2 * bubbleRadius}\r\n height={2 * bubbleRadius}\r\n >\r\n <div\r\n className='flex flex-col justify-center items-center h-full py-0 px-3'\r\n style={{\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n height: '100%',\r\n padding: '0 0.75rem',\r\n }}\r\n >\r\n {showLabels && (\r\n <P\r\n className={cn(\r\n 'text-center leading-[1.25] overflow-hidden m-0 circle-packing-label',\r\n classNames?.graphObjectValues,\r\n )}\r\n marginBottom='none'\r\n style={{\r\n fontSize: `${Math.min(\r\n Math.max(Math.round(bubbleRadius / 4), 12),\r\n Math.max(\r\n Math.round((bubbleRadius * 12) / `${d.label}`.length),\r\n 12,\r\n ),\r\n 14,\r\n )}px`,\r\n WebkitLineClamp:\r\n bubbleRadius * 2 < 60\r\n ? 1\r\n : bubbleRadius * 2 < 75\r\n ? 2\r\n : bubbleRadius * 2 < 100\r\n ? 3\r\n : undefined,\r\n display: '-webkit-box',\r\n WebkitBoxOrient: 'vertical',\r\n color: getTextColorBasedOnBgColor(circleColor),\r\n hyphens: 'auto',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n >\r\n {d.label}\r\n </P>\r\n )}\r\n {showValues && (\r\n <P\r\n className='text-center font-bold leading-[1.25] w-full m-0 circle-packing-value'\r\n marginBottom='none'\r\n style={{\r\n fontSize: `${Math.min(\r\n Math.max(Math.round(bubbleRadius / 4), 14),\r\n 14,\r\n )}px`,\r\n color: getTextColorBasedOnBgColor(circleColor),\r\n }}\r\n >\r\n {numberFormattingFunction(\r\n d.size,\r\n undefined,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n padZeros,\r\n )}\r\n </P>\r\n )}\r\n </div>\r\n </foreignObject>\r\n </g>\r\n )}\r\n </g>\r\n );\r\n })}\r\n </g>\r\n </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 )}\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 return null;\r\n};\r\n","export function getMaxCircleRadius(\r\n values: (number | undefined | null)[],\r\n width: number,\r\n height: number,\r\n circularBoundary?: boolean,\r\n) {\r\n const filteredValues = values.filter(d => d !== undefined && d !== null);\r\n const containerRadius =\r\n circularBoundary === false\r\n ? Math.sqrt((width * height) / Math.PI)\r\n : Math.min(width, height) / 2;\r\n const totalValue = filteredValues.reduce((sum, v) => sum + v, 0);\r\n const maxValue = Math.max(...filteredValues);\r\n const getPackingEfficiency = (n: number) => {\r\n if (n <= 5) return 0.9;\r\n if (n <= 10) return 0.85;\r\n if (n <= 20) return 0.8;\r\n return 0.7;\r\n };\r\n const getEfficiencyBecauseOfContainerRadius = (r: number) => {\r\n if (r <= 200) return 0.85;\r\n if (r <= 250) return 0.95;\r\n return 1;\r\n };\r\n return (\r\n containerRadius *\r\n Math.sqrt(maxValue / totalValue) *\r\n (circularBoundary ? getEfficiencyBecauseOfContainerRadius(containerRadius) : 1) *\r\n (circularBoundary ? getPackingEfficiency(filteredValues.length) : 1)\r\n );\r\n}\r\n","import { useState, useRef, useEffect } from 'react';\r\n\r\nimport { Graph } from './Graph';\r\nimport { getMaxCircleRadius } from './getMaxCircleRadius';\r\n\r\nimport {\r\n Languages,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n TreeMapDataType,\r\n NumberFormatOptions,\r\n} from '@/Types';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { ColorLegendWithMouseOver } from '@/Components/Elements/ColorLegendWithMouseOver';\r\nimport { Colors } from '@/Components/ColorPalette';\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: TreeMapDataType[];\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 circle */\r\n colors?: string | string[];\r\n /** Domain of colors for the graph */\r\n colorDomain?: string[];\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** 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\r\n // Values and Ticks\r\n /** Maximum value mapped to the radius chart */\r\n maxRadiusValue?: number;\r\n\r\n // Graph Parameters\r\n /** If true, the graph will be rendered in a circle layout */\r\n circularBoundary?: boolean;\r\n /** Maximum radius of the circle */\r\n radius?: number;\r\n /** Toggle visibility of labels */\r\n showLabels?: boolean;\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Toggle visibility of color scale. This is only applicable if the data props hae color parameter */\r\n showColorScale?: boolean;\r\n /** Toggle visibility of NA color in the color scale. This is only applicable if the data props hae color parameter and showColorScale prop is true */\r\n showNAColor?: boolean;\r\n /** Data points to highlight. Use the label value from data to highlight the data point */\r\n highlightedDataPoints?: (string | number)[];\r\n /** Defines the opacity of the non-highlighted data */\r\n dimmedOpacity?: number;\r\n /** Configuration options for controlling number formatting, localization, prefixes/suffixes, precision, and zero padding. */\r\n numberDisplayOptions?: NumberFormatOptions;\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. 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 CirclePackingGraph(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors,\r\n sources,\r\n graphDescription,\r\n leftMargin = 0,\r\n rightMargin = 0,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n padding,\r\n backgroundColor = false,\r\n topMargin = 0,\r\n bottomMargin = 0,\r\n showLabels = true,\r\n relativeHeight,\r\n tooltip,\r\n onSeriesMouseOver,\r\n showColorScale = true,\r\n showValues,\r\n graphID,\r\n highlightedDataPoints,\r\n onSeriesMouseClick,\r\n graphDownload = false,\r\n dataDownload = false,\r\n language = 'en',\r\n showNAColor,\r\n minHeight = 0,\r\n theme = 'light',\r\n ariaLabel,\r\n radius,\r\n maxRadiusValue,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n dimmedOpacity = 0.3,\r\n circularBoundary = true,\r\n numberDisplayOptions,\r\n } = props;\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [selectedColor, setSelectedColor] = useState<string | undefined>(undefined);\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\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 return (\r\n <GraphContainer\r\n className={classNames?.graphContainer}\r\n style={styles?.graphContainer}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={ariaLabel}\r\n backgroundColor={backgroundColor}\r\n theme={theme}\r\n language={language}\r\n minHeight={minHeight}\r\n width={width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n padding={padding}\r\n >\r\n {graphTitle || graphDescription || 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 {showColorScale && data.filter(el => el.color).length !== 0 && data.length > 0 ? (\r\n <ColorLegendWithMouseOver\r\n width={width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={(colors as string[] | undefined) || Colors[theme].categoricalColors.colors}\r\n colorDomain={colorDomain || (uniqBy(data, 'color', true) as string[])}\r\n setSelectedColor={setSelectedColor}\r\n showNAColor={showNAColor === undefined || showNAColor === null ? true : showNAColor}\r\n isCenter\r\n className={classNames?.colorLegend}\r\n />\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {data.length === 0 && <EmptyState />}\r\n {svgWidth && svgHeight && data.length > 0 ? (\r\n <Graph\r\n data={data}\r\n colors={\r\n data.filter(el => el.color).length === 0\r\n ? colors\r\n ? [colors as string]\r\n : [Colors.primaryColors['blue-600']]\r\n : (colors as string[] | undefined) || Colors[theme].categoricalColors.colors\r\n }\r\n colorDomain={\r\n data.filter(el => el.color).length === 0\r\n ? []\r\n : colorDomain || (uniqBy(data, 'color', true) as string[])\r\n }\r\n width={svgWidth}\r\n height={svgHeight}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n showLabels={showLabels}\r\n showValues={\r\n showValues !== false\r\n ? data.filter(el => el.size).length !== 0\r\n : (showValues as boolean)\r\n }\r\n selectedColor={selectedColor}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n highlightedDataPoints={highlightedDataPoints}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n theme={theme}\r\n radius={\r\n !radius\r\n ? getMaxCircleRadius(\r\n data.map(d => d.size),\r\n svgWidth,\r\n svgHeight,\r\n circularBoundary,\r\n )\r\n : radius\r\n }\r\n maxRadiusValue={maxRadiusValue}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n styles={styles}\r\n classNames={classNames}\r\n dimmedOpacity={dimmedOpacity}\r\n locale={numberDisplayOptions?.locale || 'en'}\r\n padZeros={numberDisplayOptions?.padZeros || false}\r\n suffix={numberDisplayOptions?.suffix || ''}\r\n prefix={numberDisplayOptions?.prefix || ''}\r\n precision={numberDisplayOptions?.precision ?? 2}\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":["extent","values","valueof","min","max","value","index","constant","x","forceBoundary","x0","y0","x1","y1","strength","hardBoundary","border","nodes","strengthsX","strengthsY","x0z","x1z","y0z","y1z","borderz","halfX","halfY","getVx","strengthX","alpha","force","i","n","node","initialize","_","Graph","props","$","_c","data","colors","leftMargin","width","height","colorDomain","selectedColor","rightMargin","topMargin","bottomMargin","showLabels","tooltip","onSeriesMouseOver","showValues","suffix","prefix","highlightedDataPoints","onSeriesMouseClick","maxRadiusValue","radius","resetSelectionOnDoubleClick","detailsOnClick","styles","classNames","dimmedOpacity","precision","locale","padZeros","svgRef","useRef","mouseOverData","setMouseOverData","useState","undefined","mouseClickData","setMouseClickData","viewPortDimensions","setViewPortDimensions","eventX","setEventX","eventY","setEventY","finalData","setFinalData","t0","top","bottom","left","right","margin","graphWidth","graphHeight","t1","filter","_temp","length","orderBy","_temp2","dataOrdered","t2","_temp3","scaleSqrt","domain","checkIfNullOrUndefined","Math","map","_temp4","_temp5","range","nice","radiusScale","t3","setupSimulation","dataTemp","_temp6","simulation","forceSimulation","forceY","_d","forceX","_d_0","forceCollide","d_5","d","size","forceManyBody","alphaDecay","tick","on","xMinExtent","d_6","yMinExtent","d_7","y","xMaxExtent","d_8","yMaxExtent","d_9","t4","useEffect","t5","event","d_10","clientY","clientX","handleMouseEnter","t6","Symbol","for","event_0","d_11","handleMouseMove","t7","d_12","label","handleClick","t8","handleMouseLeave","t9","d_13","_temp7","color","indexOf","Colors","gray","getCircleColor","t10","d_14","getOpacity","t11","t12","t13","t14","jsx","Spinner","t15","graphObjectValues","t16","d_15","circleColor","opacity","bubbleRadius","showLabel","jsxs","event_1","event_2","display","flexDirection","justifyContent","alignItems","padding","P","cn","fontSize","round","WebkitLineClamp","WebkitBoxOrient","getTextColorBasedOnBgColor","hyphens","numberFormattingFunction","t17","t18","Tooltip","t19","modal","DetailsModal","t20","Fragment","d_0","d_3","d_1","d_2","d_4","el","getMaxCircleRadius","circularBoundary","filteredValues","containerRadius","sqrt","PI","totalValue","reduce","sum","v","maxValue","getPackingEfficiency","getEfficiencyBecauseOfContainerRadius","r","CirclePackingGraph","graphTitle","sources","graphDescription","footNote","colorLegendTitle","backgroundColor","relativeHeight","showColorScale","graphID","graphDownload","dataDownload","language","showNAColor","minHeight","theme","ariaLabel","numberDisplayOptions","svgWidth","setSvgWidth","svgHeight","setSvgHeight","setSelectedColor","graphDiv","graphParentDiv","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","current","observe","disconnect","graphContainer","description","title","GraphHeader","colorLegend","ColorLegendWithMouseOver","categoricalColors","uniqBy","t21","EmptyState","t22","primaryColors","_temp8","_temp9","_temp0","t23","GraphArea","t24","footnote","source","GraphFooter","t25","GraphContainer","el_2","el_1","el_0"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"index-_w-CQAbR.js","sources":["../node_modules/d3-array/src/extent.js","../node_modules/d3-force-boundary/dist/d3-force-boundary.esm.js","../src/Components/Graphs/CirclePackingGraph/Graph.tsx","../src/Components/Graphs/CirclePackingGraph/getMaxCircleRadius.ts","../src/Components/Graphs/CirclePackingGraph/index.tsx"],"sourcesContent":["export default function extent(values, valueof) {\n let min;\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n return [min, max];\n}\n","// https://observablehq.com/@john-guerra/d3-force-boundary v0.0.2 Copyright 2022 John Alexis Guerra Gómez\nfunction constant(x) {\n return function() {\n return x;\n };\n}\n\nfunction forceBoundary(x0, y0, x1, y1) {\n var strength = constant(0.1),\n hardBoundary = true,\n border = constant( Math.min((x1 - x0)/2, (y1 - y0)/2) ),\n nodes,\n strengthsX,\n strengthsY,\n x0z, x1z,\n y0z, y1z,\n borderz,\n halfX, halfY;\n\n if (typeof x0 !== \"function\") x0 = constant(x0 == null ? -100 : +x0);\n if (typeof x1 !== \"function\") x1 = constant(x1 == null ? 100 : +x1);\n if (typeof y0 !== \"function\") y0 = constant(y0 == null ? -100 : +y0);\n if (typeof y1 !== \"function\") y1 = constant(y1 == null ? 100 : +y1);\n\n function getVx(halfX, x, strengthX, border, alpha) {\n return (halfX - x) * Math.min(2, Math.abs( halfX - x) / halfX) * strengthX * alpha;\n }\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i];\n // debugger;\n if ((node.x < (x0z[i] + borderz[i]) || node.x > (x1z[i] - borderz[i])) ||\n (node.y < (y0z[i] + borderz[i]) || node.y > (y1z[i] - borderz[i]))) {\n node.vx += getVx(halfX[i], node.x, strengthsX[i], borderz[i], alpha);\n node.vy += getVx(halfY[i], node.y, strengthsY[i], borderz[i], alpha);\n } else if (node.y < (y0z[i] + borderz[i]) || node.y > (y1z[i] - borderz[i])) ;\n\n if (hardBoundary) {\n if (node.x >= x1z[i]) node.vx += x1z[i] - node.x;\n if (node.x <= x0z[i]) node.vx += x0z[i] - node.x;\n if (node.y >= y1z[i]) node.vy += y1z[i] - node.y;\n if (node.y <= y0z[i]) node.vy += y0z[i] - node.y;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengthsX = new Array(n);\n strengthsY = new Array(n);\n x0z = new Array(n);\n y0z = new Array(n);\n x1z = new Array(n);\n y1z = new Array(n);\n halfY = new Array(n);\n halfX = new Array(n);\n borderz = new Array(n);\n\n for (i = 0; i < n; ++i) {\n strengthsX[i] = (isNaN(x0z[i] = +x0(nodes[i], i, nodes)) ||\n isNaN(x1z[i] = +x1(nodes[i], i, nodes))) ? 0 : +strength(nodes[i], i, nodes);\n strengthsY[i] = (isNaN(y0z[i] = +y0(nodes[i], i, nodes)) ||\n isNaN(y1z[i] = +y1(nodes[i], i, nodes))) ? 0 : +strength(nodes[i], i, nodes);\n halfX[i] = x0z[i] + (x1z[i] - x0z[i])/2,\n halfY[i] = y0z[i] + (y1z[i] - y0z[i])/2;\n borderz[i] = +border(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : x0;\n };\n\n force.x1 = function(_) {\n return arguments.length ? (x1 = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : x1;\n };\n\n force.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : y0;\n };\n\n force.y1 = function(_) {\n return arguments.length ? (y1 = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : y1;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.border = function(_) {\n return arguments.length ? (border = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : border;\n };\n\n force.hardBoundary = function(_) {\n return arguments.length ? (hardBoundary = _, force) : hardBoundary;\n };\n\n return force;\n}\n\nexport default forceBoundary;\n","import { useEffect, useState, useRef } from 'react';\r\nimport { forceCollide, forceManyBody, forceSimulation, forceX, forceY } from 'd3-force';\r\nimport orderBy from 'lodash.orderby';\r\nimport { scaleSqrt } from 'd3-scale';\r\nimport { extent } from 'd3-array';\r\nimport forceBoundary from 'd3-force-boundary';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\nimport { P } from '@undp/design-system-react/Typography';\r\n\r\nimport { ClassNameObject, StyleObject, TreeMapDataType } from '@/Types';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { getTextColorBasedOnBgColor } from '@/Utils/getTextColorBasedOnBgColor';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { DetailsModal } from '@/Components/Elements/DetailsModal';\r\n\r\ninterface Props {\r\n data: TreeMapDataType[];\r\n colors: string[];\r\n colorDomain: string[];\r\n leftMargin: number;\r\n rightMargin: number;\r\n topMargin: number;\r\n bottomMargin: number;\r\n showLabels: boolean;\r\n showValues: boolean;\r\n width: number;\r\n height: number;\r\n suffix: string;\r\n prefix: string;\r\n selectedColor?: string;\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 highlightedDataPoints?: (string | number)[];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n theme: 'light' | 'dark';\r\n maxRadiusValue?: number;\r\n radius: number;\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 dimmedOpacity: number;\r\n precision: number;\r\n locale: string;\r\n padZeros: boolean;\r\n}\r\n\r\ninterface TreeMapDataTypeForBubbleChart extends TreeMapDataType {\r\n x: number;\r\n y: number;\r\n vx: number;\r\n vy: number;\r\n}\r\n\r\nexport const Graph = (props: Props) => {\r\n const {\r\n data,\r\n colors,\r\n leftMargin,\r\n width,\r\n height,\r\n colorDomain,\r\n selectedColor,\r\n rightMargin,\r\n topMargin,\r\n bottomMargin,\r\n showLabels,\r\n tooltip,\r\n onSeriesMouseOver,\r\n showValues,\r\n suffix,\r\n prefix,\r\n highlightedDataPoints,\r\n onSeriesMouseClick,\r\n maxRadiusValue,\r\n radius,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n dimmedOpacity,\r\n precision,\r\n locale,\r\n padZeros,\r\n } = props;\r\n const svgRef = useRef(null);\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 const [viewPortDimensions, setViewPortDimensions] = useState<\r\n [number, number, number, number] | undefined\r\n >(undefined);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const [finalData, setFinalData] = useState<TreeMapDataTypeForBubbleChart[] | null>(null);\r\n\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\r\n };\r\n\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n // Memoize data ordering and radius scale\r\n const dataOrdered =\r\n data.filter(d => !checkIfNullOrUndefined(d.size)).length === 0\r\n ? data\r\n : orderBy(\r\n data.filter(d => !checkIfNullOrUndefined(d.size)),\r\n 'radius',\r\n 'asc',\r\n );\r\n\r\n const radiusScale =\r\n data.filter(d => d.size === undefined || d.size === null).length !== data.length\r\n ? scaleSqrt()\r\n .domain([\r\n 0,\r\n checkIfNullOrUndefined(maxRadiusValue)\r\n ? Math.max(...data.map(d => d.size).filter(d => d !== undefined && d !== null))\r\n : (maxRadiusValue as number),\r\n ])\r\n .range([0.25, radius])\r\n .nice()\r\n : undefined;\r\n\r\n // Memoize simulation setup\r\n useEffect(() => {\r\n const setupSimulation = () => {\r\n const dataTemp = dataOrdered.map(d => ({ ...d, ...(d.data && { data: { ...d.data } }) }));\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const simulation = forceSimulation(dataTemp as any)\r\n .force('y', forceY(_d => graphHeight / 2).strength(1))\r\n .force('x', forceX(_d => graphWidth / 2).strength(1))\r\n .force(\r\n 'collide',\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n forceCollide((d: any) => (radiusScale ? radiusScale(d.size || 0) + 1 : radius + 1)),\r\n )\r\n .force('charge', forceManyBody().strength(-15))\r\n .force('boundary', forceBoundary(0, 0, graphWidth, graphHeight).strength(0.2).border(50))\r\n .alphaDecay(0.05)\r\n .tick(10000);\r\n\r\n simulation\r\n .on('tick', () => {\r\n setFinalData(dataTemp as TreeMapDataTypeForBubbleChart[]);\r\n })\r\n .on('end', () => {\r\n setFinalData(dataTemp as TreeMapDataTypeForBubbleChart[]);\r\n const xMinExtent =\r\n extent(\r\n dataTemp as TreeMapDataTypeForBubbleChart[],\r\n d => d.x - (radiusScale ? radiusScale(d.size || 0) + 1 : radius + 1),\r\n )[0] || 0;\r\n const yMinExtent =\r\n extent(\r\n dataTemp as TreeMapDataTypeForBubbleChart[],\r\n d => d.y - (radiusScale ? radiusScale(d.size || 0) + 1 : radius + 1),\r\n )[0] || 0;\r\n const xMaxExtent =\r\n extent(\r\n dataTemp as TreeMapDataTypeForBubbleChart[],\r\n d => d.x + (radiusScale ? radiusScale(d.size || 0) + 1 : radius + 1),\r\n )[1] || 0;\r\n const yMaxExtent =\r\n extent(\r\n dataTemp as TreeMapDataTypeForBubbleChart[],\r\n d => d.y + (radiusScale ? radiusScale(d.size || 0) + 1 : radius + 1),\r\n )[1] || 0;\r\n setViewPortDimensions([\r\n xMinExtent,\r\n yMinExtent,\r\n xMinExtent < 0 ? xMaxExtent - xMinExtent : xMaxExtent,\r\n yMinExtent < 0 ? yMaxExtent - yMinExtent : yMaxExtent,\r\n ]);\r\n });\r\n };\r\n\r\n setupSimulation();\r\n }, [data, radius, graphHeight, graphWidth, maxRadiusValue, dataOrdered, radiusScale]);\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleMouseEnter = (event: any, d: any) => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleMouseMove = (event: any, d: any) => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleClick = (d: any) => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (mouseClickData === d.label && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d.label);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n };\r\n\r\n const handleMouseLeave = () => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const getCircleColor = (d: any) =>\r\n data.filter(el => el.color).length === 0\r\n ? colors[0]\r\n : !d.color\r\n ? Colors.gray\r\n : colors[colorDomain.indexOf(d.color)];\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const getOpacity = (d: any) =>\r\n selectedColor\r\n ? d.color\r\n ? colors[colorDomain.indexOf(d.color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedDataPoints\r\n ? highlightedDataPoints.indexOf(d.label) !== -1\r\n ? 0.85\r\n : dimmedOpacity\r\n : 0.85;\r\n\r\n // Render loading state\r\n if (!finalData) {\r\n return (\r\n <div style={{ width: `${width}px`, height: `${height}px` }}>\r\n <div className='flex m-auto items-center justify-center p-0 leading-none text-base h-40'>\r\n <Spinner />\r\n </div>\r\n </div>\r\n );\r\n }\r\n if (viewPortDimensions) {\r\n return (\r\n <>\r\n <svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`${viewPortDimensions[0] > 0 ? 0 : viewPortDimensions[0]} ${\r\n viewPortDimensions[1] > 0 ? 0 : viewPortDimensions[1]\r\n } ${width < viewPortDimensions[2] ? viewPortDimensions[2] : width} ${\r\n height < viewPortDimensions[3] ? viewPortDimensions[3] : height\r\n }`}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {finalData.map(d => {\r\n const circleColor = getCircleColor(d);\r\n const opacity = getOpacity(d);\r\n const bubbleRadius = radiusScale ? radiusScale(d.size || 0) : radius;\r\n const showLabel = bubbleRadius > 20 && (showLabels || showValues);\r\n return (\r\n <g\r\n className='undp-viz-g-with-hover'\r\n key={d.label}\r\n opacity={opacity}\r\n transform={`translate(${d.x},${d.y})`}\r\n onMouseEnter={event => handleMouseEnter(event, d)}\r\n onMouseMove={event => handleMouseMove(event, d)}\r\n onClick={() => handleClick(d)}\r\n onMouseLeave={handleMouseLeave}\r\n >\r\n <circle cx={0} cy={0} r={bubbleRadius} fill={circleColor} />\r\n {(showLabel || showValues) &&\r\n d.size !== undefined &&\r\n d.size !== null &&\r\n bubbleRadius >= 15 && (\r\n <g>\r\n <foreignObject\r\n y={0 - bubbleRadius}\r\n x={0 - bubbleRadius}\r\n width={2 * bubbleRadius}\r\n height={2 * bubbleRadius}\r\n >\r\n <div\r\n className='flex flex-col justify-center items-center h-full py-0 px-3'\r\n style={{\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n height: '100%',\r\n padding: '0 0.75rem',\r\n }}\r\n >\r\n {showLabels && (\r\n <P\r\n className={cn(\r\n 'text-center leading-[1.25] overflow-hidden m-0 circle-packing-label',\r\n classNames?.graphObjectValues,\r\n )}\r\n marginBottom='none'\r\n style={{\r\n fontSize: `${Math.min(\r\n Math.max(Math.round(bubbleRadius / 4), 12),\r\n Math.max(\r\n Math.round((bubbleRadius * 12) / `${d.label}`.length),\r\n 12,\r\n ),\r\n 14,\r\n )}px`,\r\n WebkitLineClamp:\r\n bubbleRadius * 2 < 60\r\n ? 1\r\n : bubbleRadius * 2 < 75\r\n ? 2\r\n : bubbleRadius * 2 < 100\r\n ? 3\r\n : undefined,\r\n display: '-webkit-box',\r\n WebkitBoxOrient: 'vertical',\r\n color: getTextColorBasedOnBgColor(circleColor),\r\n hyphens: 'auto',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n >\r\n {d.label}\r\n </P>\r\n )}\r\n {showValues && (\r\n <P\r\n className='text-center font-bold leading-[1.25] w-full m-0 circle-packing-value'\r\n marginBottom='none'\r\n style={{\r\n fontSize: `${Math.min(\r\n Math.max(Math.round(bubbleRadius / 4), 14),\r\n 14,\r\n )}px`,\r\n color: getTextColorBasedOnBgColor(circleColor),\r\n }}\r\n >\r\n {numberFormattingFunction(\r\n d.size,\r\n undefined,\r\n precision,\r\n prefix,\r\n suffix,\r\n locale,\r\n padZeros,\r\n )}\r\n </P>\r\n )}\r\n </div>\r\n </foreignObject>\r\n </g>\r\n )}\r\n </g>\r\n );\r\n })}\r\n </g>\r\n </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 )}\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 return null;\r\n};\r\n","export function getMaxCircleRadius(\r\n values: (number | undefined | null)[],\r\n width: number,\r\n height: number,\r\n circularBoundary?: boolean,\r\n) {\r\n const filteredValues = values.filter(d => d !== undefined && d !== null);\r\n const containerRadius =\r\n circularBoundary === false\r\n ? Math.sqrt((width * height) / Math.PI)\r\n : Math.min(width, height) / 2;\r\n const totalValue = filteredValues.reduce((sum, v) => sum + v, 0);\r\n const maxValue = Math.max(...filteredValues);\r\n const getPackingEfficiency = (n: number) => {\r\n if (n <= 5) return 0.9;\r\n if (n <= 10) return 0.85;\r\n if (n <= 20) return 0.8;\r\n return 0.7;\r\n };\r\n const getEfficiencyBecauseOfContainerRadius = (r: number) => {\r\n if (r <= 200) return 0.85;\r\n if (r <= 250) return 0.95;\r\n return 1;\r\n };\r\n return (\r\n containerRadius *\r\n Math.sqrt(maxValue / totalValue) *\r\n (circularBoundary ? getEfficiencyBecauseOfContainerRadius(containerRadius) : 1) *\r\n (circularBoundary ? getPackingEfficiency(filteredValues.length) : 1)\r\n );\r\n}\r\n","import { useState, useRef, useEffect } from 'react';\r\n\r\nimport { Graph } from './Graph';\r\nimport { getMaxCircleRadius } from './getMaxCircleRadius';\r\n\r\nimport {\r\n Languages,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n TreeMapDataType,\r\n NumberFormatOptions,\r\n} from '@/Types';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { ColorLegendWithMouseOver } from '@/Components/Elements/ColorLegendWithMouseOver';\r\nimport { Colors } from '@/Components/ColorPalette';\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: TreeMapDataType[];\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 circle */\r\n colors?: string | string[];\r\n /** Domain of colors for the graph */\r\n colorDomain?: string[];\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** 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\r\n // Values and Ticks\r\n /** Maximum value mapped to the radius chart */\r\n maxRadiusValue?: number;\r\n\r\n // Graph Parameters\r\n /** If true, the graph will be rendered in a circle layout */\r\n circularBoundary?: boolean;\r\n /** Maximum radius of the circle */\r\n radius?: number;\r\n /** Toggle visibility of labels */\r\n showLabels?: boolean;\r\n /** Toggle visibility of values */\r\n showValues?: boolean;\r\n /** Toggle visibility of color scale. This is only applicable if the data props hae color parameter */\r\n showColorScale?: boolean;\r\n /** Toggle visibility of NA color in the color scale. This is only applicable if the data props hae color parameter and showColorScale prop is true */\r\n showNAColor?: boolean;\r\n /** Data points to highlight. Use the label value from data to highlight the data point */\r\n highlightedDataPoints?: (string | number)[];\r\n /** Defines the opacity of the non-highlighted data */\r\n dimmedOpacity?: number;\r\n /** Configuration options for controlling number formatting, localization, prefixes/suffixes, precision, and zero padding. */\r\n numberDisplayOptions?: NumberFormatOptions;\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. 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 CirclePackingGraph(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors,\r\n sources,\r\n graphDescription,\r\n leftMargin = 0,\r\n rightMargin = 0,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n padding,\r\n backgroundColor = false,\r\n topMargin = 0,\r\n bottomMargin = 0,\r\n showLabels = true,\r\n relativeHeight,\r\n tooltip,\r\n onSeriesMouseOver,\r\n showColorScale = true,\r\n showValues,\r\n graphID,\r\n highlightedDataPoints,\r\n onSeriesMouseClick,\r\n graphDownload = false,\r\n dataDownload = false,\r\n language = 'en',\r\n showNAColor,\r\n minHeight = 0,\r\n theme = 'light',\r\n ariaLabel,\r\n radius,\r\n maxRadiusValue,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n dimmedOpacity = 0.3,\r\n circularBoundary = true,\r\n numberDisplayOptions,\r\n } = props;\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [selectedColor, setSelectedColor] = useState<string | undefined>(undefined);\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\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 return (\r\n <GraphContainer\r\n className={classNames?.graphContainer}\r\n style={styles?.graphContainer}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={ariaLabel}\r\n backgroundColor={backgroundColor}\r\n theme={theme}\r\n language={language}\r\n minHeight={minHeight}\r\n width={width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n padding={padding}\r\n >\r\n {graphTitle || graphDescription || 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 {showColorScale && data.filter(el => el.color).length !== 0 && data.length > 0 ? (\r\n <ColorLegendWithMouseOver\r\n width={width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={(colors as string[] | undefined) || Colors[theme].categoricalColors.colors}\r\n colorDomain={colorDomain || (uniqBy(data, 'color', true) as string[])}\r\n setSelectedColor={setSelectedColor}\r\n showNAColor={showNAColor === undefined || showNAColor === null ? true : showNAColor}\r\n isCenter\r\n className={classNames?.colorLegend}\r\n />\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {data.length === 0 && <EmptyState />}\r\n {svgWidth && svgHeight && data.length > 0 ? (\r\n <Graph\r\n data={data}\r\n colors={\r\n data.filter(el => el.color).length === 0\r\n ? colors\r\n ? [colors as string]\r\n : [Colors.primaryColors['blue-600']]\r\n : (colors as string[] | undefined) || Colors[theme].categoricalColors.colors\r\n }\r\n colorDomain={\r\n data.filter(el => el.color).length === 0\r\n ? []\r\n : colorDomain || (uniqBy(data, 'color', true) as string[])\r\n }\r\n width={svgWidth}\r\n height={svgHeight}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n showLabels={showLabels}\r\n showValues={\r\n showValues !== false\r\n ? data.filter(el => el.size).length !== 0\r\n : (showValues as boolean)\r\n }\r\n selectedColor={selectedColor}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n highlightedDataPoints={highlightedDataPoints}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n theme={theme}\r\n radius={\r\n !radius\r\n ? getMaxCircleRadius(\r\n data.map(d => d.size),\r\n svgWidth,\r\n svgHeight,\r\n circularBoundary,\r\n )\r\n : radius\r\n }\r\n maxRadiusValue={maxRadiusValue}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n styles={styles}\r\n classNames={classNames}\r\n dimmedOpacity={dimmedOpacity}\r\n locale={numberDisplayOptions?.locale || 'en'}\r\n padZeros={numberDisplayOptions?.padZeros || false}\r\n suffix={numberDisplayOptions?.suffix || ''}\r\n prefix={numberDisplayOptions?.prefix || ''}\r\n precision={numberDisplayOptions?.precision ?? 2}\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":["extent","values","valueof","min","max","value","index","constant","x","forceBoundary","x0","y0","x1","y1","strength","hardBoundary","border","nodes","strengthsX","strengthsY","x0z","x1z","y0z","y1z","borderz","halfX","halfY","getVx","strengthX","alpha","force","i","n","node","initialize","_","Graph","props","$","_c","data","colors","leftMargin","width","height","colorDomain","selectedColor","rightMargin","topMargin","bottomMargin","showLabels","tooltip","onSeriesMouseOver","showValues","suffix","prefix","highlightedDataPoints","onSeriesMouseClick","maxRadiusValue","radius","resetSelectionOnDoubleClick","detailsOnClick","styles","classNames","dimmedOpacity","precision","locale","padZeros","svgRef","useRef","mouseOverData","setMouseOverData","useState","undefined","mouseClickData","setMouseClickData","viewPortDimensions","setViewPortDimensions","eventX","setEventX","eventY","setEventY","finalData","setFinalData","t0","top","bottom","left","right","margin","graphWidth","graphHeight","t1","filter","_temp","length","orderBy","_temp2","dataOrdered","t2","_temp3","scaleSqrt","domain","checkIfNullOrUndefined","Math","map","_temp4","_temp5","range","nice","radiusScale","t3","setupSimulation","dataTemp","_temp6","simulation","forceSimulation","forceY","_d","forceX","_d_0","forceCollide","d_5","d","size","forceManyBody","alphaDecay","tick","on","xMinExtent","d_6","yMinExtent","d_7","y","xMaxExtent","d_8","yMaxExtent","d_9","t4","useEffect","t5","event","d_10","clientY","clientX","handleMouseEnter","t6","Symbol","for","event_0","d_11","handleMouseMove","t7","d_12","label","handleClick","t8","handleMouseLeave","t9","d_13","_temp7","color","indexOf","Colors","gray","getCircleColor","t10","d_14","getOpacity","t11","t12","t13","t14","jsx","Spinner","t15","graphObjectValues","t16","d_15","circleColor","opacity","bubbleRadius","showLabel","jsxs","event_1","event_2","display","flexDirection","justifyContent","alignItems","padding","P","cn","fontSize","round","WebkitLineClamp","WebkitBoxOrient","getTextColorBasedOnBgColor","hyphens","numberFormattingFunction","t17","t18","Tooltip","t19","modal","DetailsModal","t20","Fragment","d_0","d_3","d_1","d_2","d_4","el","getMaxCircleRadius","circularBoundary","filteredValues","containerRadius","sqrt","PI","totalValue","reduce","sum","v","maxValue","getPackingEfficiency","getEfficiencyBecauseOfContainerRadius","r","CirclePackingGraph","graphTitle","sources","graphDescription","footNote","colorLegendTitle","backgroundColor","relativeHeight","showColorScale","graphID","graphDownload","dataDownload","language","showNAColor","minHeight","theme","ariaLabel","numberDisplayOptions","svgWidth","setSvgWidth","svgHeight","setSvgHeight","setSelectedColor","graphDiv","graphParentDiv","resizeObserver","ResizeObserver","entries","target","clientWidth","clientHeight","current","observe","disconnect","graphContainer","description","title","GraphHeader","colorLegend","ColorLegendWithMouseOver","categoricalColors","uniqBy","t21","EmptyState","t22","primaryColors","_temp8","_temp9","_temp0","t23","GraphArea","t24","footnote","source","GraphFooter","t25","GraphContainer","el_2","el_1","el_0"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -0,0 +1,2 @@
1
+ "use strict";const g=require("./compiler-runtime-oPPev21o.cjs"),B=require("react"),Ae=require("./index-Cno4Q0YE.cjs"),Ge=require("@undp/design-system-react/cn"),He=require("@undp/design-system-react/Spinner"),$e=require("@undp/design-system-react/Typography"),Te=require("./Tooltip-DwUFLDrj.cjs"),Fe=require("./numberFormattingFunction-u2iNHL_c.cjs"),Ve=require("./getTextColorBasedOnBgColor-nqY-bsM_.cjs"),ze=require("./Colors.cjs"),qe=require("./checkIfNullOrUndefined-BCW3Y1ML.cjs"),We=require("./DetailsModal-BmjtLqrZ.cjs"),Ie=require("./pow-BnyPO-NX.cjs"),Re=require("./y-QcCbqrzx.cjs"),Ye=require("./GraphFooter.cjs"),Xe=require("./GraphHeader.cjs"),Ze=require("./ColorLegendWithMouseOver.cjs"),Ue=require("./EmptyState-BoaUUuo6.cjs"),Be=require("./uniqBy-O05lp2S5.cjs"),Le=require("./GraphContainer-gaG9TSy4.cjs");function Se(r,e){let n,l;if(e===void 0)for(const a of r)a!=null&&(n===void 0?a>=a&&(n=l=a):(n>a&&(n=a),l<a&&(l=a)));else{let a=-1;for(let f of r)(f=e(f,++a,r))!=null&&(n===void 0?f>=f&&(n=l=f):(n>f&&(n=f),l<f&&(l=f)))}return[n,l]}function F(r){return function(){return r}}function Je(r,e,n,l){var a=F(.1),f=!0,R=F(Math.min((n-r)/2,(l-e)/2)),c,L,P,s,w,v,S,y,$,T;typeof r!="function"&&(r=F(r==null?-100:+r)),typeof n!="function"&&(n=F(n==null?100:+n)),typeof e!="function"&&(e=F(e==null?-100:+e)),typeof l!="function"&&(l=F(l==null?100:+l));function W(t,o,Q,i,V){return(t-o)*Math.min(2,Math.abs(t-o)/t)*Q*V}function m(t){for(var o=0,Q=c.length,i;o<Q;++o)i=c[o],i.x<s[o]+y[o]||i.x>w[o]-y[o]||i.y<v[o]+y[o]||i.y>S[o]-y[o]?(i.vx+=W($[o],i.x,L[o],y[o],t),i.vy+=W(T[o],i.y,P[o],y[o],t)):i.y<v[o]+y[o]||i.y>S[o]-y[o],f&&(i.x>=w[o]&&(i.vx+=w[o]-i.x),i.x<=s[o]&&(i.vx+=s[o]-i.x),i.y>=S[o]&&(i.vy+=S[o]-i.y),i.y<=v[o]&&(i.vy+=v[o]-i.y))}function E(){if(c){var t,o=c.length;for(L=new Array(o),P=new Array(o),s=new Array(o),v=new Array(o),w=new Array(o),S=new Array(o),T=new Array(o),$=new Array(o),y=new Array(o),t=0;t<o;++t)L[t]=isNaN(s[t]=+r(c[t],t,c))||isNaN(w[t]=+n(c[t],t,c))?0:+a(c[t],t,c),P[t]=isNaN(v[t]=+e(c[t],t,c))||isNaN(S[t]=+l(c[t],t,c))?0:+a(c[t],t,c),$[t]=s[t]+(w[t]-s[t])/2,T[t]=v[t]+(S[t]-v[t])/2,y[t]=+R(c[t],t,c)}}return m.initialize=function(t){c=t,E()},m.x0=function(t){return arguments.length?(r=typeof t=="function"?t:F(+t),E(),m):r},m.x1=function(t){return arguments.length?(n=typeof t=="function"?t:F(+t),E(),m):n},m.y0=function(t){return arguments.length?(e=typeof t=="function"?t:F(+t),E(),m):e},m.y1=function(t){return arguments.length?(l=typeof t=="function"?t:F(+t),E(),m):l},m.strength=function(t){return arguments.length?(a=typeof t=="function"?t:F(+t),E(),m):a},m.border=function(t){return arguments.length?(R=typeof t=="function"?t:F(+t),E(),m):R},m.hardBoundary=function(t){return arguments.length?(f=t,m):f},m}const Ke=r=>{const e=g.compilerRuntimeExports.c(109),{data:n,colors:l,leftMargin:a,width:f,height:R,colorDomain:c,selectedColor:L,rightMargin:P,topMargin:s,bottomMargin:w,showLabels:v,tooltip:S,onSeriesMouseOver:y,showValues:$,suffix:T,prefix:W,highlightedDataPoints:m,onSeriesMouseClick:E,maxRadiusValue:t,radius:o,resetSelectionOnDoubleClick:Q,detailsOnClick:i,styles:V,classNames:q,dimmedOpacity:te,precision:ie,locale:se,padZeros:le}=r,xe=B.useRef(null),[ve,be]=B.useState(void 0),[I,ae]=B.useState(void 0),[A,De]=B.useState(void 0),[ce,b]=B.useState(void 0),[x,je]=B.useState(void 0),[ye,O]=B.useState(null);let ue;e[0]!==w||e[1]!==a||e[2]!==P||e[3]!==s?(ue={top:s,bottom:w,left:a,right:P},e[0]=w,e[1]=a,e[2]=P,e[3]=s,e[4]=ue):ue=e[4];const _=ue,Y=f-_.left-_.right,X=R-_.top-_.bottom;let fe;e[5]!==n?(fe=n.filter(Qe).length===0?n:Ae.orderBy(n.filter(_e),"radius","asc"),e[5]=n,e[6]=fe):fe=e[6];const ee=fe;let he;e[7]!==n||e[8]!==t||e[9]!==o?(he=n.filter(et).length!==n.length?Ie.sqrt().domain([0,qe.checkIfNullOrUndefined(t)?Math.max(...n.map(tt).filter(ot)):t]).range([.25,o]).nice():void 0,e[7]=n,e[8]=t,e[9]=o,e[10]=he):he=e[10];const h=he;let oe;e[11]!==ee||e[12]!==X||e[13]!==Y||e[14]!==o||e[15]!==h?(oe=()=>{(()=>{const p=ee.map(nt);Re.forceSimulation(p).force("y",Re.forceY(j=>X/2).strength(1)).force("x",Re.forceX(j=>Y/2).strength(1)).force("collide",Re.forceCollide(j=>h?h(j.size||0)+1:o+1)).force("charge",Re.forceManyBody().strength(-15)).force("boundary",Je(0,0,Y,X).strength(.2).border(50)).alphaDecay(.05).tick(1e4).on("tick",()=>{O(p)}).on("end",()=>{O(p);const j=Se(p,d=>d.x-(h?h(d.size||0)+1:o+1))[0]||0,M=Se(p,d=>d.y-(h?h(d.size||0)+1:o+1))[0]||0,z=Se(p,d=>d.x+(h?h(d.size||0)+1:o+1))[1]||0,N=Se(p,d=>d.y+(h?h(d.size||0)+1:o+1))[1]||0;De([j,M,j<0?z-j:z,M<0?N-M:N])})})()},e[11]=ee,e[12]=X,e[13]=Y,e[14]=o,e[15]=h,e[16]=oe):oe=e[16];let pe;e[17]!==n||e[18]!==ee||e[19]!==X||e[20]!==Y||e[21]!==t||e[22]!==o||e[23]!==h?(pe=[n,o,X,Y,t,ee,h],e[17]=n,e[18]=ee,e[19]=X,e[20]=Y,e[21]=t,e[22]=o,e[23]=h,e[24]=pe):pe=e[24],B.useEffect(oe,pe);let de;e[25]!==y?(de=(u,p)=>{be(p),je(u.clientY),b(u.clientX),y?.(p)},e[25]=y,e[26]=de):de=e[26];const D=de;let ge;e[27]===Symbol.for("react.memo_cache_sentinel")?(ge=(u,p)=>{be(p),je(u.clientY),b(u.clientX)},e[27]=ge):ge=e[27];const Ee=ge;let me;e[28]!==i||e[29]!==I||e[30]!==E||e[31]!==Q?(me=u=>{(E||i)&&(I===u.label&&Q?(ae(void 0),E?.(void 0)):(ae(u.label),E?.(u)))},e[28]=i,e[29]=I,e[30]=E,e[31]=Q,e[32]=me):me=e[32];const Z=me;let Me;e[33]!==y?(Me=()=>{be(void 0),b(void 0),je(void 0),y?.(void 0)},e[33]=y,e[34]=Me):Me=e[34];const U=Me;let Ce;e[35]!==c||e[36]!==l||e[37]!==n?(Ce=u=>n.filter(rt).length===0?l[0]:u.color?l[c.indexOf(u.color)]:ze.Colors.gray,e[35]=c,e[36]=l,e[37]=n,e[38]=Ce):Ce=e[38];const ne=Ce;let Oe;e[39]!==c||e[40]!==l||e[41]!==te||e[42]!==m||e[43]!==L?(Oe=u=>L?u.color&&l[c.indexOf(u.color)]===L?1:te:m?m.indexOf(u.label)!==-1?.85:te:.85,e[39]=c,e[40]=l,e[41]=te,e[42]=m,e[43]=L,e[44]=Oe):Oe=e[44];const re=Oe;if(!ye){const u=`${f}px`,p=`${R}px`;let k;e[45]!==u||e[46]!==p?(k={width:u,height:p},e[45]=u,e[46]=p,e[47]=k):k=e[47];let j;e[48]===Symbol.for("react.memo_cache_sentinel")?(j=g.jsxRuntimeExports.jsx("div",{className:"flex m-auto items-center justify-center p-0 leading-none text-base h-40",children:g.jsxRuntimeExports.jsx(He.Spinner,{})}),e[48]=j):j=e[48];let M;return e[49]!==k?(M=g.jsxRuntimeExports.jsx("div",{style:k,children:j}),e[49]=k,e[50]=M):M=e[50],M}if(A){const u=`${f}px`,p=`${R}px`,k=`${A[0]>0?0:A[0]} ${A[1]>0?0:A[1]} ${f<A[2]?A[2]:f} ${R<A[3]?A[3]:R}`,j=`translate(${_.left},${_.top})`;let M;if(e[51]!==q?.graphObjectValues||e[52]!==ye||e[53]!==ne||e[54]!==re||e[55]!==Z||e[56]!==D||e[57]!==U||e[58]!==se||e[59]!==le||e[60]!==ie||e[61]!==W||e[62]!==o||e[63]!==h||e[64]!==v||e[65]!==$||e[66]!==V?.graphObjectValues||e[67]!==T){let K;e[69]!==q?.graphObjectValues||e[70]!==ne||e[71]!==re||e[72]!==Z||e[73]!==D||e[74]!==U||e[75]!==se||e[76]!==le||e[77]!==ie||e[78]!==W||e[79]!==o||e[80]!==h||e[81]!==v||e[82]!==$||e[83]!==V?.graphObjectValues||e[84]!==T?(K=C=>{const we=ne(C),ke=re(C),H=h?h(C.size||0):o,Pe=H>20&&(v||$);return g.jsxRuntimeExports.jsxs("g",{className:"undp-viz-g-with-hover",opacity:ke,transform:`translate(${C.x},${C.y})`,onMouseEnter:Ne=>D(Ne,C),onMouseMove:Ne=>Ee(Ne,C),onClick:()=>Z(C),onMouseLeave:U,children:[g.jsxRuntimeExports.jsx("circle",{cx:0,cy:0,r:H,fill:we}),(Pe||$)&&C.size!==void 0&&C.size!==null&&H>=15&&g.jsxRuntimeExports.jsx("g",{children:g.jsxRuntimeExports.jsx("foreignObject",{y:0-H,x:0-H,width:2*H,height:2*H,children:g.jsxRuntimeExports.jsxs("div",{className:"flex flex-col justify-center items-center h-full py-0 px-3",style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",height:"100%",padding:"0 0.75rem"},children:[v&&g.jsxRuntimeExports.jsx($e.P,{className:Ge.cn("text-center leading-[1.25] overflow-hidden m-0 circle-packing-label",q?.graphObjectValues),marginBottom:"none",style:{fontSize:`${Math.min(Math.max(Math.round(H/4),12),Math.max(Math.round(H*12/`${C.label}`.length),12),14)}px`,WebkitLineClamp:H*2<60?1:H*2<75?2:H*2<100?3:void 0,display:"-webkit-box",WebkitBoxOrient:"vertical",color:Ve.getTextColorBasedOnBgColor(we),hyphens:"auto",...V?.graphObjectValues||{}},children:C.label}),$&&g.jsxRuntimeExports.jsx($e.P,{className:"text-center font-bold leading-[1.25] w-full m-0 circle-packing-value",marginBottom:"none",style:{fontSize:`${Math.min(Math.max(Math.round(H/4),14),14)}px`,color:Ve.getTextColorBasedOnBgColor(we)},children:Fe.numberFormattingFunction(C.size,void 0,ie,W,T,se,le)})]})})})]},C.label)},e[69]=q?.graphObjectValues,e[70]=ne,e[71]=re,e[72]=Z,e[73]=D,e[74]=U,e[75]=se,e[76]=le,e[77]=ie,e[78]=W,e[79]=o,e[80]=h,e[81]=v,e[82]=$,e[83]=V?.graphObjectValues,e[84]=T,e[85]=K):K=e[85],M=ye.map(K),e[51]=q?.graphObjectValues,e[52]=ye,e[53]=ne,e[54]=re,e[55]=Z,e[56]=D,e[57]=U,e[58]=se,e[59]=le,e[60]=ie,e[61]=W,e[62]=o,e[63]=h,e[64]=v,e[65]=$,e[66]=V?.graphObjectValues,e[67]=T,e[68]=M}else M=e[68];let z;e[86]!==j||e[87]!==M?(z=g.jsxRuntimeExports.jsx("g",{transform:j,children:M}),e[86]=j,e[87]=M,e[88]=z):z=e[88];let N;e[89]!==u||e[90]!==p||e[91]!==k||e[92]!==z?(N=g.jsxRuntimeExports.jsx("svg",{width:u,height:p,viewBox:k,direction:"ltr",ref:xe,children:z}),e[89]=u,e[90]=p,e[91]=k,e[92]=z,e[93]=N):N=e[93];let d;e[94]!==q?.tooltip||e[95]!==ce||e[96]!==x||e[97]!==ve||e[98]!==V?.tooltip||e[99]!==S?(d=ve&&S&&ce&&x&&g.jsxRuntimeExports.jsx(Te.Tooltip,{data:ve,body:S,xPos:ce,yPos:x,backgroundStyle:V?.tooltip,className:q?.tooltip}),e[94]=q?.tooltip,e[95]=ce,e[96]=x,e[97]=ve,e[98]=V?.tooltip,e[99]=S,e[100]=d):d=e[100];let G;e[101]!==q?.modal||e[102]!==i||e[103]!==I?(G=i&&I!==void 0?g.jsxRuntimeExports.jsx(We.DetailsModal,{body:i,data:I,setData:ae,className:q?.modal}):null,e[101]=q?.modal,e[102]=i,e[103]=I,e[104]=G):G=e[104];let J;return e[105]!==N||e[106]!==d||e[107]!==G?(J=g.jsxRuntimeExports.jsxs(g.jsxRuntimeExports.Fragment,{children:[N,d,G]}),e[105]=N,e[106]=d,e[107]=G,e[108]=J):J=e[108],J}return null};function Qe(r){return!qe.checkIfNullOrUndefined(r.size)}function _e(r){return!qe.checkIfNullOrUndefined(r.size)}function et(r){return r.size===void 0||r.size===null}function tt(r){return r.size}function ot(r){return r!=null}function nt(r){return{...r,...r.data&&{data:{...r.data}}}}function rt(r){return r.color}function it(r,e,n,l){const a=r.filter(s=>s!=null),f=l===!1?Math.sqrt(e*n/Math.PI):Math.min(e,n)/2,R=a.reduce((s,w)=>s+w,0),c=Math.max(...a),L=s=>s<=5?.9:s<=10?.85:s<=20?.8:.7,P=s=>s<=200?.85:s<=250?.95:1;return f*Math.sqrt(c/R)*(l?P(f):1)*(l?L(a.length):1)}function st(r){const e=g.compilerRuntimeExports.c(84),{data:n,graphTitle:l,colors:a,sources:f,graphDescription:R,leftMargin:c,rightMargin:L,height:P,width:s,footNote:w,colorDomain:v,colorLegendTitle:S,padding:y,backgroundColor:$,topMargin:T,bottomMargin:W,showLabels:m,relativeHeight:E,tooltip:t,onSeriesMouseOver:o,showColorScale:Q,showValues:i,graphID:V,highlightedDataPoints:q,onSeriesMouseClick:te,graphDownload:ie,dataDownload:se,language:le,showNAColor:xe,minHeight:ve,theme:be,ariaLabel:I,radius:ae,maxRadiusValue:A,resetSelectionOnDoubleClick:De,detailsOnClick:ce,styles:b,classNames:x,dimmedOpacity:je,circularBoundary:ye,numberDisplayOptions:O}=r,ue=c===void 0?0:c,_=L===void 0?0:L,Y=$===void 0?!1:$,X=T===void 0?0:T,fe=W===void 0?0:W,ee=m===void 0?!0:m,he=Q===void 0?!0:Q,h=ie===void 0?!1:ie,oe=se===void 0?!1:se,pe=le===void 0?"en":le,de=ve===void 0?0:ve,D=be===void 0?"light":be,ge=De===void 0?!0:De,Ee=je===void 0?.3:je,me=ye===void 0?!0:ye,[Z,Me]=B.useState(0),[U,Ce]=B.useState(0),[ne,Oe]=B.useState(void 0),re=B.useRef(null),u=B.useRef(null);let p,k;e[0]===Symbol.for("react.memo_cache_sentinel")?(p=()=>{const we=new ResizeObserver(ke=>{Me(ke[0].target.clientWidth||620),Ce(ke[0].target.clientHeight||480)});return re.current&&we.observe(re.current),()=>we.disconnect()},k=[],e[0]=p,e[1]=k):(p=e[0],k=e[1]),B.useEffect(p,k);const j=x?.graphContainer,M=b?.graphContainer;let z;e[2]!==x?.description||e[3]!==x?.title||e[4]!==n||e[5]!==oe||e[6]!==R||e[7]!==h||e[8]!==l||e[9]!==b?.description||e[10]!==b?.title||e[11]!==s?(z=l||R||h||oe?g.jsxRuntimeExports.jsx(Xe.GraphHeader,{styles:{title:b?.title,description:b?.description},classNames:{title:x?.title,description:x?.description},graphTitle:l,graphDescription:R,width:s,graphDownload:h?u:void 0,dataDownload:oe?n.map(mt).filter(gt).length>0?n.map(dt).filter(pt):n.filter(ht):null}):null,e[2]=x?.description,e[3]=x?.title,e[4]=n,e[5]=oe,e[6]=R,e[7]=h,e[8]=l,e[9]=b?.description,e[10]=b?.title,e[11]=s,e[12]=z):z=e[12];let N;e[13]!==x?.colorLegend||e[14]!==v||e[15]!==S||e[16]!==a||e[17]!==n||e[18]!==he||e[19]!==xe||e[20]!==D||e[21]!==s?(N=he&&n.filter(ft).length!==0&&n.length>0?g.jsxRuntimeExports.jsx(Ze.ColorLegendWithMouseOver,{width:s,colorLegendTitle:S,colors:a||ze.Colors[D].categoricalColors.colors,colorDomain:v||Be.uniqBy(n,"color",!0),setSelectedColor:Oe,showNAColor:xe??!0,isCenter:!0,className:x?.colorLegend}):null,e[13]=x?.colorLegend,e[14]=v,e[15]=S,e[16]=a,e[17]=n,e[18]=he,e[19]=xe,e[20]=D,e[21]=s,e[22]=N):N=e[22];let d;e[23]!==n.length?(d=n.length===0&&g.jsxRuntimeExports.jsx(Ue.EmptyState,{}),e[23]=n.length,e[24]=d):d=e[24];let G;e[25]!==fe||e[26]!==me||e[27]!==x||e[28]!==v||e[29]!==a||e[30]!==n||e[31]!==ce||e[32]!==Ee||e[33]!==q||e[34]!==ue||e[35]!==A||e[36]!==O?.locale||e[37]!==O?.padZeros||e[38]!==O?.precision||e[39]!==O?.prefix||e[40]!==O?.suffix||e[41]!==te||e[42]!==o||e[43]!==ae||e[44]!==ge||e[45]!==_||e[46]!==ne||e[47]!==ee||e[48]!==i||e[49]!==b||e[50]!==U||e[51]!==Z||e[52]!==D||e[53]!==t||e[54]!==X?(G=Z&&U&&n.length>0?g.jsxRuntimeExports.jsx(Ke,{data:n,colors:n.filter(ut).length===0?a?[a]:[ze.Colors.primaryColors["blue-600"]]:a||ze.Colors[D].categoricalColors.colors,colorDomain:n.filter(ct).length===0?[]:v||Be.uniqBy(n,"color",!0),width:Z,height:U,leftMargin:ue,rightMargin:_,topMargin:X,bottomMargin:fe,showLabels:ee,showValues:i!==!1?n.filter(at).length!==0:i,selectedColor:ne,tooltip:t,onSeriesMouseOver:o,highlightedDataPoints:q,onSeriesMouseClick:te,theme:D,radius:ae||it(n.map(lt),Z,U,me),maxRadiusValue:A,resetSelectionOnDoubleClick:ge,detailsOnClick:ce,styles:b,classNames:x,dimmedOpacity:Ee,locale:O?.locale||"en",padZeros:O?.padZeros||!1,suffix:O?.suffix||"",prefix:O?.prefix||"",precision:O?.precision??2}):null,e[25]=fe,e[26]=me,e[27]=x,e[28]=v,e[29]=a,e[30]=n,e[31]=ce,e[32]=Ee,e[33]=q,e[34]=ue,e[35]=A,e[36]=O?.locale,e[37]=O?.padZeros,e[38]=O?.precision,e[39]=O?.prefix,e[40]=O?.suffix,e[41]=te,e[42]=o,e[43]=ae,e[44]=ge,e[45]=_,e[46]=ne,e[47]=ee,e[48]=i,e[49]=b,e[50]=U,e[51]=Z,e[52]=D,e[53]=t,e[54]=X,e[55]=G):G=e[55];let J;e[56]!==d||e[57]!==G?(J=g.jsxRuntimeExports.jsxs(Le.GraphArea,{ref:re,children:[d,G]}),e[56]=d,e[57]=G,e[58]=J):J=e[58];let K;e[59]!==x?.footnote||e[60]!==x?.source||e[61]!==w||e[62]!==f||e[63]!==b?.footnote||e[64]!==b?.source||e[65]!==s?(K=f||w?g.jsxRuntimeExports.jsx(Ye.GraphFooter,{styles:{footnote:b?.footnote,source:b?.source},classNames:{footnote:x?.footnote,source:x?.source},sources:f,footNote:w,width:s}):null,e[59]=x?.footnote,e[60]=x?.source,e[61]=w,e[62]=f,e[63]=b?.footnote,e[64]=b?.source,e[65]=s,e[66]=K):K=e[66];let C;return e[67]!==I||e[68]!==Y||e[69]!==V||e[70]!==P||e[71]!==pe||e[72]!==de||e[73]!==y||e[74]!==E||e[75]!==j||e[76]!==M||e[77]!==z||e[78]!==N||e[79]!==J||e[80]!==K||e[81]!==D||e[82]!==s?(C=g.jsxRuntimeExports.jsxs(Le.GraphContainer,{className:j,style:M,id:V,ref:u,"aria-label":I,backgroundColor:Y,theme:D,language:pe,minHeight:de,width:s,height:P,relativeHeight:E,padding:y,children:[z,N,J,K]}),e[67]=I,e[68]=Y,e[69]=V,e[70]=P,e[71]=pe,e[72]=de,e[73]=y,e[74]=E,e[75]=j,e[76]=M,e[77]=z,e[78]=N,e[79]=J,e[80]=K,e[81]=D,e[82]=s,e[83]=C):C=e[83],C}function lt(r){return r.size}function at(r){return r.size}function ct(r){return r.color}function ut(r){return r.color}function ft(r){return r.color}function ht(r){return r!==void 0}function pt(r){return r!==void 0}function dt(r){return r.data}function gt(r){return r!==void 0}function mt(r){return r.data}exports.CirclePackingGraph=st;exports.extent=Se;
2
+ //# sourceMappingURL=index-dN3wiQgD.cjs.map