@undp/data-viz 1.3.0 → 1.4.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 (621) hide show
  1. package/dist/AreaChart.cjs +2 -0
  2. package/dist/AreaChart.cjs.map +1 -0
  3. package/dist/AreaChart.js +530 -1
  4. package/dist/AreaChart.js.map +1 -1
  5. package/dist/Axis-DE7dSn1_.cjs +2 -0
  6. package/dist/{Axis-BlyBRMNw.cjs.map → Axis-DE7dSn1_.cjs.map} +1 -1
  7. package/dist/{Axis-CvK-w3E2.js → Axis-Ddg-seDi.js} +10 -11
  8. package/dist/{Axis-CvK-w3E2.js.map → Axis-Ddg-seDi.js.map} +1 -1
  9. package/dist/AxisTitle-BmHLMRJZ.js +20 -0
  10. package/dist/{AxisTitle-BeMxcw5I.js.map → AxisTitle-BmHLMRJZ.js.map} +1 -1
  11. package/dist/AxisTitle-CK9YeovX.cjs +2 -0
  12. package/dist/{AxisTitle-BY8MI9jC.cjs.map → AxisTitle-CK9YeovX.cjs.map} +1 -1
  13. package/dist/BarGraph.cjs +2 -0
  14. package/dist/BarGraph.cjs.map +1 -0
  15. package/dist/BarGraph.js +4043 -1
  16. package/dist/BarGraph.js.map +1 -1
  17. package/dist/BasicStatCard.cjs +2 -0
  18. package/dist/BasicStatCard.cjs.map +1 -0
  19. package/dist/BasicStatCard.js +190 -1
  20. package/dist/BasicStatCard.js.map +1 -1
  21. package/dist/BeeSwarmChart.cjs +2 -0
  22. package/dist/BeeSwarmChart.cjs.map +1 -0
  23. package/dist/BeeSwarmChart.d.ts +0 -8
  24. package/dist/BeeSwarmChart.js +1042 -1
  25. package/dist/BeeSwarmChart.js.map +1 -1
  26. package/dist/BiVariateChoroplethMap.cjs +2 -0
  27. package/dist/BiVariateChoroplethMap.cjs.map +1 -0
  28. package/dist/BiVariateChoroplethMap.js +720 -1
  29. package/dist/BiVariateChoroplethMap.js.map +1 -1
  30. package/dist/BulletChart.cjs +2 -0
  31. package/dist/BulletChart.cjs.map +1 -0
  32. package/dist/BulletChart.js +1431 -1
  33. package/dist/BulletChart.js.map +1 -1
  34. package/dist/ButterflyChart.cjs +2 -0
  35. package/dist/ButterflyChart.cjs.map +1 -0
  36. package/dist/ButterflyChart.js +692 -1
  37. package/dist/ButterflyChart.js.map +1 -1
  38. package/dist/ChoroplethMap.cjs +2 -0
  39. package/dist/ChoroplethMap.cjs.map +1 -0
  40. package/dist/ChoroplethMap.js +745 -1
  41. package/dist/ChoroplethMap.js.map +1 -1
  42. package/dist/CirclePackingGraph.cjs +2 -0
  43. package/dist/CirclePackingGraph.cjs.map +1 -0
  44. package/dist/CirclePackingGraph.d.ts +0 -8
  45. package/dist/CirclePackingGraph.js +14 -1
  46. package/dist/CirclePackingGraph.js.map +1 -1
  47. package/dist/ColorLegend.cjs +2 -0
  48. package/dist/ColorLegend.cjs.map +1 -0
  49. package/dist/ColorLegend.js +47 -1
  50. package/dist/ColorLegend.js.map +1 -1
  51. package/dist/ColorLegendWithMouseOver.cjs +2 -0
  52. package/dist/ColorLegendWithMouseOver.cjs.map +1 -0
  53. package/dist/ColorLegendWithMouseOver.js +70 -1
  54. package/dist/ColorLegendWithMouseOver.js.map +1 -1
  55. package/dist/Colors.cjs +2 -0
  56. package/dist/Colors.cjs.map +1 -0
  57. package/dist/Colors.js +561 -1
  58. package/dist/Colors.js.map +1 -1
  59. package/dist/CopyTextButton.cjs +17 -0
  60. package/dist/CopyTextButton.cjs.map +1 -0
  61. package/dist/CopyTextButton.js +698 -16
  62. package/dist/CopyTextButton.js.map +1 -1
  63. package/dist/CsvDownloadButton.cjs +23 -0
  64. package/dist/CsvDownloadButton.cjs.map +1 -0
  65. package/dist/CsvDownloadButton.js +852 -7
  66. package/dist/CsvDownloadButton.js.map +1 -1
  67. package/dist/DataCards.cjs +22 -0
  68. package/dist/DataCards.cjs.map +1 -0
  69. package/dist/DataCards.js +624 -1
  70. package/dist/DataCards.js.map +1 -1
  71. package/dist/DataTable.cjs +2 -0
  72. package/dist/DataTable.cjs.map +1 -0
  73. package/dist/DataTable.js +331 -1
  74. package/dist/DataTable.js.map +1 -1
  75. package/dist/DifferenceLineChart.cjs +2 -0
  76. package/dist/DifferenceLineChart.cjs.map +1 -0
  77. package/dist/DifferenceLineChart.js +805 -1
  78. package/dist/DifferenceLineChart.js.map +1 -1
  79. package/dist/DonutChart.cjs +2 -0
  80. package/dist/DonutChart.cjs.map +1 -0
  81. package/dist/DonutChart.js +478 -1
  82. package/dist/DonutChart.js.map +1 -1
  83. package/dist/DotDensityMap.cjs +2 -0
  84. package/dist/DotDensityMap.cjs.map +1 -0
  85. package/dist/DotDensityMap.js +600 -1
  86. package/dist/DotDensityMap.js.map +1 -1
  87. package/dist/DropdownSelect-0I2QxaVy.cjs +29 -0
  88. package/dist/DropdownSelect-0I2QxaVy.cjs.map +1 -0
  89. package/dist/DropdownSelect-CDC9lEqU.js +4193 -0
  90. package/dist/DropdownSelect-CDC9lEqU.js.map +1 -0
  91. package/dist/DualAxisLineChart.cjs +2 -0
  92. package/dist/DualAxisLineChart.cjs.map +1 -0
  93. package/dist/DualAxisLineChart.js +699 -1
  94. package/dist/DualAxisLineChart.js.map +1 -1
  95. package/dist/DumbbellChart.cjs +2 -0
  96. package/dist/DumbbellChart.cjs.map +1 -0
  97. package/dist/DumbbellChart.js +1510 -1
  98. package/dist/DumbbellChart.js.map +1 -1
  99. package/dist/{EmptyState-b2Ln487i.js → EmptyState-DdTp-Mdn.js} +8 -8
  100. package/dist/{EmptyState-b2Ln487i.js.map → EmptyState-DdTp-Mdn.js.map} +1 -1
  101. package/dist/EmptyState-d8_8SxeW.cjs +2 -0
  102. package/dist/{EmptyState-BQguKAp5.cjs.map → EmptyState-d8_8SxeW.cjs.map} +1 -1
  103. package/dist/ExcelDownloadButton.cjs +2 -0
  104. package/dist/ExcelDownloadButton.cjs.map +1 -0
  105. package/dist/ExcelDownloadButton.js +29 -1
  106. package/dist/ExcelDownloadButton.js.map +1 -1
  107. package/dist/FootNote.cjs +2 -0
  108. package/dist/FootNote.cjs.map +1 -0
  109. package/dist/FootNote.js +20 -1
  110. package/dist/FootNote.js.map +1 -1
  111. package/dist/GeoHubCompareMaps.cjs +2 -0
  112. package/dist/GeoHubCompareMaps.cjs.map +1 -0
  113. package/dist/GeoHubCompareMaps.js +370 -1
  114. package/dist/GeoHubCompareMaps.js.map +1 -1
  115. package/dist/GeoHubMap.cjs +2 -0
  116. package/dist/GeoHubMap.cjs.map +1 -0
  117. package/dist/GeoHubMap.js +429 -1
  118. package/dist/GeoHubMap.js.map +1 -1
  119. package/dist/GeoHubMapWithLayerSelection.cjs +2 -0
  120. package/dist/GeoHubMapWithLayerSelection.cjs.map +1 -0
  121. package/dist/GeoHubMapWithLayerSelection.js +307 -1
  122. package/dist/GeoHubMapWithLayerSelection.js.map +1 -1
  123. package/dist/GraphDescription.cjs +2 -0
  124. package/dist/GraphDescription.cjs.map +1 -0
  125. package/dist/GraphDescription.js +20 -1
  126. package/dist/GraphDescription.js.map +1 -1
  127. package/dist/GraphEl-B6SoGRFW.cjs +2 -0
  128. package/dist/GraphEl-B6SoGRFW.cjs.map +1 -0
  129. package/dist/{checkIfMultiple-CaefP4X2.js → GraphEl-Cw2tDUb3.js} +123 -662
  130. package/dist/GraphEl-Cw2tDUb3.js.map +1 -0
  131. package/dist/GraphFooter.cjs +2 -0
  132. package/dist/GraphFooter.cjs.map +1 -0
  133. package/dist/GraphFooter.js +21 -1
  134. package/dist/GraphFooter.js.map +1 -1
  135. package/dist/GraphHeader.cjs +2 -0
  136. package/dist/GraphHeader.cjs.map +1 -0
  137. package/dist/GraphHeader.js +63 -1
  138. package/dist/GraphHeader.js.map +1 -1
  139. package/dist/GraphTitle.cjs +2 -0
  140. package/dist/GraphTitle.cjs.map +1 -0
  141. package/dist/GraphTitle.js +28 -1
  142. package/dist/GraphTitle.js.map +1 -1
  143. package/dist/GriddedGraphs.cjs +2 -0
  144. package/dist/GriddedGraphs.cjs.map +1 -0
  145. package/dist/GriddedGraphs.d.ts +2 -4
  146. package/dist/GriddedGraphs.js +483 -1
  147. package/dist/GriddedGraphs.js.map +1 -1
  148. package/dist/GriddedGraphsFromConfig.cjs +2 -0
  149. package/dist/GriddedGraphsFromConfig.cjs.map +1 -0
  150. package/dist/GriddedGraphsFromConfig.d.ts +2 -4
  151. package/dist/GriddedGraphsFromConfig.js +42 -1
  152. package/dist/GriddedGraphsFromConfig.js.map +1 -1
  153. package/dist/HeatMap.cjs +2 -0
  154. package/dist/HeatMap.cjs.map +1 -0
  155. package/dist/HeatMap.js +451 -1
  156. package/dist/HeatMap.js.map +1 -1
  157. package/dist/Histogram.cjs +2 -0
  158. package/dist/Histogram.cjs.map +1 -0
  159. package/dist/Histogram.js +287 -1
  160. package/dist/Histogram.js.map +1 -1
  161. package/dist/ImageDownloadButton.cjs +2 -0
  162. package/dist/ImageDownloadButton.cjs.map +1 -0
  163. package/dist/ImageDownloadButton.js +28 -1
  164. package/dist/ImageDownloadButton.js.map +1 -1
  165. package/dist/LineChartWithConfidenceInterval.cjs +2 -0
  166. package/dist/LineChartWithConfidenceInterval.cjs.map +1 -0
  167. package/dist/LineChartWithConfidenceInterval.js +818 -1
  168. package/dist/LineChartWithConfidenceInterval.js.map +1 -1
  169. package/dist/LinearColorLegend.cjs +2 -0
  170. package/dist/LinearColorLegend.cjs.map +1 -0
  171. package/dist/LinearColorLegend.js +33 -1
  172. package/dist/LinearColorLegend.js.map +1 -1
  173. package/dist/Modal-CUU6ZK3U.js +1019 -0
  174. package/dist/Modal-CUU6ZK3U.js.map +1 -0
  175. package/dist/Modal-C_dl0EtQ.cjs +46 -0
  176. package/dist/Modal-C_dl0EtQ.cjs.map +1 -0
  177. package/dist/MultiGraphDashboard.cjs +2 -0
  178. package/dist/MultiGraphDashboard.cjs.map +1 -0
  179. package/dist/MultiGraphDashboard.d.ts +16 -12
  180. package/dist/MultiGraphDashboard.js +303 -1
  181. package/dist/MultiGraphDashboard.js.map +1 -1
  182. package/dist/MultiGraphDashboardFromConfig.cjs +2 -0
  183. package/dist/MultiGraphDashboardFromConfig.cjs.map +1 -0
  184. package/dist/MultiGraphDashboardFromConfig.d.ts +16 -12
  185. package/dist/MultiGraphDashboardFromConfig.js +37 -1
  186. package/dist/MultiGraphDashboardFromConfig.js.map +1 -1
  187. package/dist/MultiGraphDashboardWideToLongFormat.cjs +2 -0
  188. package/dist/MultiGraphDashboardWideToLongFormat.cjs.map +1 -0
  189. package/dist/MultiGraphDashboardWideToLongFormat.js +243 -1
  190. package/dist/MultiGraphDashboardWideToLongFormat.js.map +1 -1
  191. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.cjs +2 -0
  192. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.cjs.map +1 -0
  193. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js +30 -1
  194. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js.map +1 -1
  195. package/dist/MultiLineAltChart.cjs +2 -0
  196. package/dist/MultiLineAltChart.cjs.map +1 -0
  197. package/dist/MultiLineAltChart.js +689 -1
  198. package/dist/MultiLineAltChart.js.map +1 -1
  199. package/dist/MultiLineChart.cjs +2 -0
  200. package/dist/MultiLineChart.cjs.map +1 -0
  201. package/dist/MultiLineChart.js +722 -1
  202. package/dist/MultiLineChart.js.map +1 -1
  203. package/dist/ParetoChart.cjs +2 -0
  204. package/dist/ParetoChart.cjs.map +1 -0
  205. package/dist/ParetoChart.js +636 -1
  206. package/dist/ParetoChart.js.map +1 -1
  207. package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +2 -0
  208. package/dist/PerformanceIntensiveMultiGraphDashboard.cjs.map +1 -0
  209. package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +566 -0
  210. package/dist/PerformanceIntensiveMultiGraphDashboard.js +353 -0
  211. package/dist/PerformanceIntensiveMultiGraphDashboard.js.map +1 -0
  212. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs +2 -0
  213. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs.map +1 -0
  214. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +570 -0
  215. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js +38 -0
  216. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js.map +1 -0
  217. package/dist/PerformanceIntensiveScrollStory.cjs +2 -0
  218. package/dist/PerformanceIntensiveScrollStory.cjs.map +1 -0
  219. package/dist/PerformanceIntensiveScrollStory.d.ts +493 -0
  220. package/dist/PerformanceIntensiveScrollStory.js +122 -0
  221. package/dist/PerformanceIntensiveScrollStory.js.map +1 -0
  222. package/dist/RadarChart.cjs +2 -0
  223. package/dist/RadarChart.cjs.map +1 -0
  224. package/dist/RadarChart.js +677 -1
  225. package/dist/RadarChart.js.map +1 -1
  226. package/dist/{ReferenceLine-BgDdQbDI.js → ReferenceLine-C1GpoG9d.js} +33 -34
  227. package/dist/ReferenceLine-C1GpoG9d.js.map +1 -0
  228. package/dist/ReferenceLine-CuFMk0cI.cjs +2 -0
  229. package/dist/ReferenceLine-CuFMk0cI.cjs.map +1 -0
  230. package/dist/RegressionLine-7_rKTHN_.cjs +2 -0
  231. package/dist/{RegressionLine-BfpCuD7B.cjs.map → RegressionLine-7_rKTHN_.cjs.map} +1 -1
  232. package/dist/{RegressionLine-cSljpHaE.js → RegressionLine-BFwDCTUU.js} +17 -18
  233. package/dist/{RegressionLine-cSljpHaE.js.map → RegressionLine-BFwDCTUU.js.map} +1 -1
  234. package/dist/SVGDownloadButton.cjs +2 -0
  235. package/dist/SVGDownloadButton.cjs.map +1 -0
  236. package/dist/SVGDownloadButton.js +28 -1
  237. package/dist/SVGDownloadButton.js.map +1 -1
  238. package/dist/SankeyChart.cjs +2 -0
  239. package/dist/SankeyChart.cjs.map +1 -0
  240. package/dist/SankeyChart.js +989 -1
  241. package/dist/SankeyChart.js.map +1 -1
  242. package/dist/ScatterPlot.cjs +2 -0
  243. package/dist/ScatterPlot.cjs.map +1 -0
  244. package/dist/ScatterPlot.js +828 -1
  245. package/dist/ScatterPlot.js.map +1 -1
  246. package/dist/ScrollStory.cjs +2 -0
  247. package/dist/ScrollStory.cjs.map +1 -0
  248. package/dist/ScrollStory.d.ts +3 -5
  249. package/dist/ScrollStory.js +105 -1
  250. package/dist/ScrollStory.js.map +1 -1
  251. package/dist/SimpleLineChart.cjs +2 -0
  252. package/dist/SimpleLineChart.cjs.map +1 -0
  253. package/dist/SimpleLineChart.js +619 -1
  254. package/dist/SimpleLineChart.js.map +1 -1
  255. package/dist/SingleGraphDashboard.cjs +2 -0
  256. package/dist/SingleGraphDashboard.cjs.map +1 -0
  257. package/dist/SingleGraphDashboard.d.ts +2 -5
  258. package/dist/SingleGraphDashboard.js +522 -1
  259. package/dist/SingleGraphDashboard.js.map +1 -1
  260. package/dist/SingleGraphDashboardFromConfig.cjs +2 -0
  261. package/dist/SingleGraphDashboardFromConfig.cjs.map +1 -0
  262. package/dist/SingleGraphDashboardFromConfig.d.ts +2 -4
  263. package/dist/SingleGraphDashboardFromConfig.js +34 -1
  264. package/dist/SingleGraphDashboardFromConfig.js.map +1 -1
  265. package/dist/SingleGraphDashboardGeoHubMaps.cjs +2 -0
  266. package/dist/SingleGraphDashboardGeoHubMaps.cjs.map +1 -0
  267. package/dist/SingleGraphDashboardGeoHubMaps.d.ts +428 -0
  268. package/dist/SingleGraphDashboardGeoHubMaps.js +185 -0
  269. package/dist/SingleGraphDashboardGeoHubMaps.js.map +1 -0
  270. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs +2 -0
  271. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs.map +1 -0
  272. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.d.ts +432 -0
  273. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js +25 -0
  274. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js.map +1 -0
  275. package/dist/SingleGraphDashboardThreeDGraphs.cjs +2 -0
  276. package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -0
  277. package/dist/SingleGraphDashboardThreeDGraphs.d.ts +540 -0
  278. package/dist/SingleGraphDashboardThreeDGraphs.js +610 -0
  279. package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -0
  280. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs +2 -0
  281. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs.map +1 -0
  282. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +543 -0
  283. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js +35 -0
  284. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js.map +1 -0
  285. package/dist/SlopeChart.cjs +2 -0
  286. package/dist/SlopeChart.cjs.map +1 -0
  287. package/dist/SlopeChart.js +582 -1
  288. package/dist/SlopeChart.js.map +1 -1
  289. package/dist/Source.cjs +2 -0
  290. package/dist/Source.cjs.map +1 -0
  291. package/dist/Source.js +40 -1
  292. package/dist/Source.js.map +1 -1
  293. package/dist/SparkLine.cjs +2 -0
  294. package/dist/SparkLine.cjs.map +1 -0
  295. package/dist/SparkLine.js +320 -1
  296. package/dist/SparkLine.js.map +1 -1
  297. package/dist/Spinner-C85UF28E.js +30 -0
  298. package/dist/Spinner-C85UF28E.js.map +1 -0
  299. package/dist/Spinner-DA6Z5E4n.cjs +2 -0
  300. package/dist/Spinner-DA6Z5E4n.cjs.map +1 -0
  301. package/dist/StatCardFromData.cjs +2 -0
  302. package/dist/StatCardFromData.cjs.map +1 -0
  303. package/dist/StatCardFromData.js +249 -1
  304. package/dist/StatCardFromData.js.map +1 -1
  305. package/dist/StripChart.cjs +2 -0
  306. package/dist/StripChart.cjs.map +1 -0
  307. package/dist/StripChart.js +988 -1
  308. package/dist/StripChart.js.map +1 -1
  309. package/dist/ThreeDGlobe.cjs +2 -0
  310. package/dist/ThreeDGlobe.cjs.map +1 -0
  311. package/dist/ThreeDGlobe.js +451 -1
  312. package/dist/ThreeDGlobe.js.map +1 -1
  313. package/dist/ThresholdColorLegendWithMouseOver.cjs +2 -0
  314. package/dist/ThresholdColorLegendWithMouseOver.cjs.map +1 -0
  315. package/dist/ThresholdColorLegendWithMouseOver.js +130 -1
  316. package/dist/ThresholdColorLegendWithMouseOver.js.map +1 -1
  317. package/dist/{Tooltip-CzZ1wFyF.js → Tooltip-DyM5snqx.js} +15 -16
  318. package/dist/{Tooltip-CzZ1wFyF.js.map → Tooltip-DyM5snqx.js.map} +1 -1
  319. package/dist/Tooltip-n8z5bfav.cjs +2 -0
  320. package/dist/{Tooltip-BM18N_3l.cjs.map → Tooltip-n8z5bfav.cjs.map} +1 -1
  321. package/dist/TreeMapGraph.cjs +2 -0
  322. package/dist/TreeMapGraph.cjs.map +1 -0
  323. package/dist/TreeMapGraph.js +760 -1
  324. package/dist/TreeMapGraph.js.map +1 -1
  325. package/dist/Types.cjs +2 -0
  326. package/dist/Types.cjs.map +1 -0
  327. package/dist/Types.d.ts +38 -11
  328. package/dist/Types.js +1 -1
  329. package/dist/Typography-Ctgfl1J5.js +140 -0
  330. package/dist/Typography-Ctgfl1J5.js.map +1 -0
  331. package/dist/Typography-k-kOjICQ.cjs +2 -0
  332. package/dist/Typography-k-kOjICQ.cjs.map +1 -0
  333. package/dist/UnitChart.cjs +2 -0
  334. package/dist/UnitChart.cjs.map +1 -0
  335. package/dist/UnitChart.js +216 -1
  336. package/dist/UnitChart.js.map +1 -1
  337. package/dist/XAxesLabels-CJMQbfVy.cjs +2 -0
  338. package/dist/{XAxesLabels-C9REbQQs.cjs.map → XAxesLabels-CJMQbfVy.cjs.map} +1 -1
  339. package/dist/{XAxesLabels-DVw7Lvuz.js → XAxesLabels-DQFo_z2R.js} +21 -22
  340. package/dist/{XAxesLabels-DVw7Lvuz.js.map → XAxesLabels-DQFo_z2R.js.map} +1 -1
  341. package/dist/{XTicksAndGridLines-CUefTINd.js → XTicksAndGridLines-Bn9u5gOM.js} +19 -20
  342. package/dist/{XTicksAndGridLines-CUefTINd.js.map → XTicksAndGridLines-Bn9u5gOM.js.map} +1 -1
  343. package/dist/XTicksAndGridLines-CCzXIV8d.cjs +2 -0
  344. package/dist/{XTicksAndGridLines-DuK35ROS.cjs.map → XTicksAndGridLines-CCzXIV8d.cjs.map} +1 -1
  345. package/dist/YAxesLabels-BXLTX7AI.cjs +2 -0
  346. package/dist/{YAxesLabels-DhBdLk3Z.cjs.map → YAxesLabels-BXLTX7AI.cjs.map} +1 -1
  347. package/dist/{YAxesLabels-CYVY053X.js → YAxesLabels-H5-002X5.js} +11 -12
  348. package/dist/{YAxesLabels-CYVY053X.js.map → YAxesLabels-H5-002X5.js.map} +1 -1
  349. package/dist/{YTicksAndGridLines-BJRXuBdC.js → YTicksAndGridLines-B6ah7CRf.js} +14 -15
  350. package/dist/{YTicksAndGridLines-BJRXuBdC.js.map → YTicksAndGridLines-B6ah7CRf.js.map} +1 -1
  351. package/dist/YTicksAndGridLines-DBDuz6vb.cjs +2 -0
  352. package/dist/{YTicksAndGridLines-CtLvzExe.cjs.map → YTicksAndGridLines-DBDuz6vb.cjs.map} +1 -1
  353. package/dist/checkIfMultiple-CYp3vADF.js +912 -0
  354. package/dist/checkIfMultiple-CYp3vADF.js.map +1 -0
  355. package/dist/checkIfMultiple-Do4kADNr.cjs +12 -0
  356. package/dist/checkIfMultiple-Do4kADNr.cjs.map +1 -0
  357. package/dist/checkIfNullOrUndefined-BCW3Y1ML.cjs +2 -0
  358. package/dist/checkIfNullOrUndefined-BCW3Y1ML.cjs.map +1 -0
  359. package/dist/checkIfNullOrUndefined-DmfiKkNw.js +7 -0
  360. package/dist/checkIfNullOrUndefined-DmfiKkNw.js.map +1 -0
  361. package/dist/customArea-BYNyxAkm.cjs +2 -0
  362. package/dist/{customArea-B47Ew5cT.cjs.map → customArea-BYNyxAkm.cjs.map} +1 -1
  363. package/dist/{customArea-I3MsoqIl.js → customArea-CaxScFmW.js} +29 -30
  364. package/dist/{customArea-I3MsoqIl.js.map → customArea-CaxScFmW.js.map} +1 -1
  365. package/dist/excelDownload-BOA-lskf.js +19 -0
  366. package/dist/excelDownload-BOA-lskf.js.map +1 -0
  367. package/dist/excelDownload-BQpsCa62.cjs +2 -0
  368. package/dist/excelDownload-BQpsCa62.cjs.map +1 -0
  369. package/dist/fetchAndParseData-Bcmr659B.js +1196 -0
  370. package/dist/fetchAndParseData-Bcmr659B.js.map +1 -0
  371. package/dist/fetchAndParseData-DmgQtB9n.cjs +16 -0
  372. package/dist/fetchAndParseData-DmgQtB9n.cjs.map +1 -0
  373. package/dist/fetchAndParseData.cjs +2 -0
  374. package/dist/fetchAndParseData.cjs.map +1 -0
  375. package/dist/fetchAndParseData.js +9 -15
  376. package/dist/fetchAndParseData.js.map +1 -1
  377. package/dist/getGraphList-DuColTJM.js +265 -0
  378. package/dist/getGraphList-DuColTJM.js.map +1 -0
  379. package/dist/getGraphList-gf02xgT2.cjs +2 -0
  380. package/dist/getGraphList-gf02xgT2.cjs.map +1 -0
  381. package/dist/getJenks-TWQvbuOz.cjs +2 -0
  382. package/dist/getJenks-TWQvbuOz.cjs.map +1 -0
  383. package/dist/getJenks-VhM3GIoC.js +23 -0
  384. package/dist/getJenks-VhM3GIoC.js.map +1 -0
  385. package/dist/getSchema.cjs +2 -0
  386. package/dist/getSchema.cjs.map +1 -0
  387. package/dist/getSchema.d.ts +7 -5
  388. package/dist/getSchema.js +910 -1
  389. package/dist/getSchema.js.map +1 -1
  390. package/dist/getSliderMarks-C0jptXeP.js +1054 -0
  391. package/dist/getSliderMarks-C0jptXeP.js.map +1 -0
  392. package/dist/getSliderMarks-CtsEXiLV.cjs +6 -0
  393. package/dist/getSliderMarks-CtsEXiLV.cjs.map +1 -0
  394. package/dist/getTextColorBasedOnBgColor-B6Nk2WBf.js +28 -0
  395. package/dist/getTextColorBasedOnBgColor-B6Nk2WBf.js.map +1 -0
  396. package/dist/getTextColorBasedOnBgColor-nqY-bsM_.cjs +2 -0
  397. package/dist/getTextColorBasedOnBgColor-nqY-bsM_.cjs.map +1 -0
  398. package/dist/getUniqValue-BtUENB2H.js +20 -0
  399. package/dist/getUniqValue-BtUENB2H.js.map +1 -0
  400. package/dist/getUniqValue-CHqgSss5.cjs +2 -0
  401. package/dist/getUniqValue-CHqgSss5.cjs.map +1 -0
  402. package/dist/imageDownload-CgDcm1Sj.cjs +3 -0
  403. package/dist/imageDownload-CgDcm1Sj.cjs.map +1 -0
  404. package/dist/imageDownload-Dcci2LEy.js +495 -0
  405. package/dist/imageDownload-Dcci2LEy.js.map +1 -0
  406. package/dist/index-BVnYktl4.js +435 -0
  407. package/dist/index-BVnYktl4.js.map +1 -0
  408. package/dist/index-BW_-wD2k.cjs +2 -0
  409. package/dist/index-BW_-wD2k.cjs.map +1 -0
  410. package/dist/{index-DXmF_0ez.js → index-BmCqpO1B.js} +74 -40
  411. package/dist/index-BmCqpO1B.js.map +1 -0
  412. package/dist/{index-Db-Yg_Ud.js → index-BxAUvrua.js} +19 -19
  413. package/dist/{index-Db-Yg_Ud.js.map → index-BxAUvrua.js.map} +1 -1
  414. package/dist/index-CHPV5EwG-BPSP-7Jg.js +3341 -0
  415. package/dist/index-CHPV5EwG-BPSP-7Jg.js.map +1 -0
  416. package/dist/index-CHPV5EwG-DDoeWRVt.cjs +44 -0
  417. package/dist/index-CHPV5EwG-DDoeWRVt.cjs.map +1 -0
  418. package/dist/index-CylX-pWB.cjs +2 -0
  419. package/dist/{index-BYroABPm.cjs.map → index-CylX-pWB.cjs.map} +1 -1
  420. package/dist/index-DG3YrCr5-D3FrrXj8.js +459 -0
  421. package/dist/index-DG3YrCr5-D3FrrXj8.js.map +1 -0
  422. package/dist/index-DG3YrCr5-v7rayV3N.cjs +2 -0
  423. package/dist/index-DG3YrCr5-v7rayV3N.cjs.map +1 -0
  424. package/dist/index-DVOJ7vxH.cjs +10 -0
  425. package/dist/{index-a2C2Bqn2.cjs.map → index-DVOJ7vxH.cjs.map} +1 -1
  426. package/dist/index-D_n8aamX.cjs +2 -0
  427. package/dist/index-D_n8aamX.cjs.map +1 -0
  428. package/dist/{index-DzdwZ2OA.js → index-n_RI8T0n.js} +3 -3
  429. package/dist/{index-DzdwZ2OA.js.map → index-n_RI8T0n.js.map} +1 -1
  430. package/dist/index-tvAyXPPW-DBlMKnNB.js +47 -0
  431. package/dist/index-tvAyXPPW-DBlMKnNB.js.map +1 -0
  432. package/dist/index-tvAyXPPW-DPOG-C2i.cjs +2 -0
  433. package/dist/index-tvAyXPPW-DPOG-C2i.cjs.map +1 -0
  434. package/dist/index.cjs +2 -0
  435. package/dist/index.cjs.map +1 -0
  436. package/dist/index.d.ts +331 -168
  437. package/dist/index.js +194 -1
  438. package/dist/index.js.map +1 -1
  439. package/dist/numberFormattingFunction-02t-wJta.cjs +2 -0
  440. package/dist/numberFormattingFunction-02t-wJta.cjs.map +1 -0
  441. package/dist/numberFormattingFunction-14YCbkN2.js +13 -0
  442. package/dist/numberFormattingFunction-14YCbkN2.js.map +1 -0
  443. package/dist/{use-in-view-CZPXmTZM.js → proxy-DJxJg1kD.js} +699 -732
  444. package/dist/proxy-DJxJg1kD.js.map +1 -0
  445. package/dist/{use-in-view-Dl1CsAIo.cjs → proxy-PQd2AItT.cjs} +2 -2
  446. package/dist/proxy-PQd2AItT.cjs.map +1 -0
  447. package/dist/removeOutliers-DR48e-18.js +57 -0
  448. package/dist/removeOutliers-DR48e-18.js.map +1 -0
  449. package/dist/removeOutliers-WELHHqiI.cjs +2 -0
  450. package/dist/removeOutliers-WELHHqiI.cjs.map +1 -0
  451. package/dist/{string2HTML-BX0oNw83.js → string2HTML-CWHGfz_d.js} +2 -2
  452. package/dist/{string2HTML-BX0oNw83.js.map → string2HTML-CWHGfz_d.js.map} +1 -1
  453. package/dist/{string2HTML-X4ZYX5jI.cjs → string2HTML-D2Avudmb.cjs} +2 -2
  454. package/dist/{string2HTML-X4ZYX5jI.cjs.map → string2HTML-D2Avudmb.cjs.map} +1 -1
  455. package/dist/svgDownload-C2-E3yf2.js +9 -0
  456. package/dist/svgDownload-C2-E3yf2.js.map +1 -0
  457. package/dist/svgDownload-D9zEGjTF.cjs +2 -0
  458. package/dist/svgDownload-D9zEGjTF.cjs.map +1 -0
  459. package/dist/toConsumableArray-DiWOvh_d-DcLaZvDq.cjs +4 -0
  460. package/dist/toConsumableArray-DiWOvh_d-DcLaZvDq.cjs.map +1 -0
  461. package/dist/toConsumableArray-DiWOvh_d-DlpOlgap.js +145 -0
  462. package/dist/toConsumableArray-DiWOvh_d-DlpOlgap.js.map +1 -0
  463. package/dist/transformData.cjs +2 -0
  464. package/dist/transformData.cjs.map +1 -0
  465. package/dist/transformData.d.ts +170 -0
  466. package/dist/transformData.js +10 -0
  467. package/dist/transformData.js.map +1 -0
  468. package/dist/transformDataForAggregation-CdcwlnNe.js +759 -0
  469. package/dist/transformDataForAggregation-CdcwlnNe.js.map +1 -0
  470. package/dist/transformDataForAggregation-Du-Hei-W.cjs +2 -0
  471. package/dist/transformDataForAggregation-Du-Hei-W.cjs.map +1 -0
  472. package/dist/transformDataForGraphFromFile-CA0rw80A.js +24 -0
  473. package/dist/transformDataForGraphFromFile-CA0rw80A.js.map +1 -0
  474. package/dist/transformDataForGraphFromFile-D9G3ToQf.cjs +2 -0
  475. package/dist/transformDataForGraphFromFile-D9G3ToQf.cjs.map +1 -0
  476. package/dist/transformDataForSelect-D8AuvYdf.js +14 -0
  477. package/dist/transformDataForSelect-D8AuvYdf.js.map +1 -0
  478. package/dist/transformDataForSelect-YmStusCI.cjs +2 -0
  479. package/dist/transformDataForSelect-YmStusCI.cjs.map +1 -0
  480. package/dist/use-in-view-BAHrBy6b.js +40 -0
  481. package/dist/use-in-view-BAHrBy6b.js.map +1 -0
  482. package/dist/use-in-view-BCmzDU2O.cjs +2 -0
  483. package/dist/use-in-view-BCmzDU2O.cjs.map +1 -0
  484. package/dist/utils.cjs +2 -0
  485. package/dist/utils.cjs.map +1 -0
  486. package/dist/utils.d.ts +217 -0
  487. package/dist/utils.js +27 -0
  488. package/dist/utils.js.map +1 -0
  489. package/dist/validateSchema.cjs +2 -0
  490. package/dist/validateSchema.cjs.map +1 -0
  491. package/dist/validateSchema.d.ts +2 -4
  492. package/dist/validateSchema.js +104 -1
  493. package/dist/validateSchema.js.map +1 -1
  494. package/dist/x-CnsEH4Ox-CGGXQl4M.cjs +27 -0
  495. package/dist/x-CnsEH4Ox-CGGXQl4M.cjs.map +1 -0
  496. package/dist/x-CnsEH4Ox-DDvAJndW.js +101 -0
  497. package/dist/x-CnsEH4Ox-DDvAJndW.js.map +1 -0
  498. package/package.json +50 -90
  499. package/dist/Axis-BlyBRMNw.cjs +0 -2
  500. package/dist/AxisTitle-BY8MI9jC.cjs +0 -2
  501. package/dist/AxisTitle-BeMxcw5I.js +0 -21
  502. package/dist/DropdownSelect-CuzV7gdj.cjs +0 -29
  503. package/dist/DropdownSelect-CuzV7gdj.cjs.map +0 -1
  504. package/dist/DropdownSelect-DmZsXrhY.js +0 -2698
  505. package/dist/DropdownSelect-DmZsXrhY.js.map +0 -1
  506. package/dist/EmptyState-BQguKAp5.cjs +0 -2
  507. package/dist/Modal-C9txyGOk.js +0 -723
  508. package/dist/Modal-C9txyGOk.js.map +0 -1
  509. package/dist/Modal-cQF2UQIa.cjs +0 -46
  510. package/dist/Modal-cQF2UQIa.cjs.map +0 -1
  511. package/dist/ReferenceLine-BgDdQbDI.js.map +0 -1
  512. package/dist/ReferenceLine-Bsb5jeE4.cjs +0 -2
  513. package/dist/ReferenceLine-Bsb5jeE4.cjs.map +0 -1
  514. package/dist/RegressionLine-BfpCuD7B.cjs +0 -2
  515. package/dist/Spinner-DN3s4S0H.js +0 -17
  516. package/dist/Spinner-DN3s4S0H.js.map +0 -1
  517. package/dist/Spinner-UmN-KPe9.cjs +0 -2
  518. package/dist/Spinner-UmN-KPe9.cjs.map +0 -1
  519. package/dist/Tooltip-BM18N_3l.cjs +0 -2
  520. package/dist/Typography-CDR-DAHH.cjs +0 -2
  521. package/dist/Typography-CDR-DAHH.cjs.map +0 -1
  522. package/dist/Typography-XJoSE-By.js +0 -58
  523. package/dist/Typography-XJoSE-By.js.map +0 -1
  524. package/dist/XAxesLabels-C9REbQQs.cjs +0 -2
  525. package/dist/XTicksAndGridLines-DuK35ROS.cjs +0 -2
  526. package/dist/YAxesLabels-DhBdLk3Z.cjs +0 -2
  527. package/dist/YTicksAndGridLines-CtLvzExe.cjs +0 -2
  528. package/dist/checkIfMultiple-CaefP4X2.js.map +0 -1
  529. package/dist/checkIfMultiple-D3h8to1T.cjs +0 -12
  530. package/dist/checkIfMultiple-D3h8to1T.cjs.map +0 -1
  531. package/dist/checkIfNullOrUndefined.d.ts +0 -15
  532. package/dist/checkIfNullOrUndefined.js +0 -2
  533. package/dist/checkIfNullOrUndefined.js.map +0 -1
  534. package/dist/customArea-B47Ew5cT.cjs +0 -2
  535. package/dist/excelDownload.d.ts +0 -31
  536. package/dist/excelDownload.js +0 -2
  537. package/dist/excelDownload.js.map +0 -1
  538. package/dist/generateCodes.d.ts +0 -25
  539. package/dist/generateCodes.js +0 -2
  540. package/dist/generateCodes.js.map +0 -1
  541. package/dist/getJenks.d.ts +0 -17
  542. package/dist/getJenks.js +0 -2
  543. package/dist/getJenks.js.map +0 -1
  544. package/dist/getPercentileValue.d.ts +0 -13
  545. package/dist/getPercentileValue.js +0 -2
  546. package/dist/getPercentileValue.js.map +0 -1
  547. package/dist/getQueryParamsFromLink.d.ts +0 -18
  548. package/dist/getQueryParamsFromLink.js +0 -2
  549. package/dist/getQueryParamsFromLink.js.map +0 -1
  550. package/dist/getSliderMarks-CWajGCGq.js +0 -719
  551. package/dist/getSliderMarks-CWajGCGq.js.map +0 -1
  552. package/dist/getSliderMarks-DDJ1CdhL.cjs +0 -6
  553. package/dist/getSliderMarks-DDJ1CdhL.cjs.map +0 -1
  554. package/dist/getTextColorBasedOnBgColor.d.ts +0 -13
  555. package/dist/getTextColorBasedOnBgColor.js +0 -2
  556. package/dist/getTextColorBasedOnBgColor.js.map +0 -1
  557. package/dist/getUniqValue.d.ts +0 -18
  558. package/dist/getUniqValue.js +0 -2
  559. package/dist/getUniqValue.js.map +0 -1
  560. package/dist/graphList.d.ts +0 -9
  561. package/dist/graphList.js +0 -2
  562. package/dist/graphList.js.map +0 -1
  563. package/dist/imageDownload.d.ts +0 -16
  564. package/dist/imageDownload.js +0 -3
  565. package/dist/imageDownload.js.map +0 -1
  566. package/dist/index-01r5X3Gr-9jE0ObrK.cjs +0 -2
  567. package/dist/index-01r5X3Gr-9jE0ObrK.cjs.map +0 -1
  568. package/dist/index-01r5X3Gr-kH7FxQ7P.js +0 -451
  569. package/dist/index-01r5X3Gr-kH7FxQ7P.js.map +0 -1
  570. package/dist/index-BGMGC-HN.cjs +0 -22
  571. package/dist/index-BGMGC-HN.cjs.map +0 -1
  572. package/dist/index-BHm2KTjD-2e-Fu8L-.js +0 -702
  573. package/dist/index-BHm2KTjD-2e-Fu8L-.js.map +0 -1
  574. package/dist/index-BHm2KTjD-D8FylaKc.cjs +0 -44
  575. package/dist/index-BHm2KTjD-D8FylaKc.cjs.map +0 -1
  576. package/dist/index-BIPNFFja.js +0 -506
  577. package/dist/index-BIPNFFja.js.map +0 -1
  578. package/dist/index-BYroABPm.cjs +0 -2
  579. package/dist/index-CEc_9zWy.cjs +0 -2
  580. package/dist/index-CEc_9zWy.cjs.map +0 -1
  581. package/dist/index-CbVeVrla.cjs +0 -2
  582. package/dist/index-CbVeVrla.cjs.map +0 -1
  583. package/dist/index-CqzhBPuO-CfQywbdq.js +0 -41
  584. package/dist/index-CqzhBPuO-CfQywbdq.js.map +0 -1
  585. package/dist/index-CqzhBPuO-raKZqS7l.cjs +0 -2
  586. package/dist/index-CqzhBPuO-raKZqS7l.cjs.map +0 -1
  587. package/dist/index-DSnvdkHZ.js +0 -495
  588. package/dist/index-DSnvdkHZ.js.map +0 -1
  589. package/dist/index-DXmF_0ez.js.map +0 -1
  590. package/dist/index-a2C2Bqn2.cjs +0 -10
  591. package/dist/numberFormattingFunction.d.ts +0 -22
  592. package/dist/numberFormattingFunction.js +0 -2
  593. package/dist/numberFormattingFunction.js.map +0 -1
  594. package/dist/removeOutliers.d.ts +0 -16
  595. package/dist/removeOutliers.js +0 -2
  596. package/dist/removeOutliers.js.map +0 -1
  597. package/dist/svgDownload.d.ts +0 -16
  598. package/dist/svgDownload.js +0 -2
  599. package/dist/svgDownload.js.map +0 -1
  600. package/dist/toConsumableArray-BSMMWi3w-Cu4vcE-m.js +0 -139
  601. package/dist/toConsumableArray-BSMMWi3w-Cu4vcE-m.js.map +0 -1
  602. package/dist/toConsumableArray-BSMMWi3w-DJL7-zAp.cjs +0 -4
  603. package/dist/toConsumableArray-BSMMWi3w-DJL7-zAp.cjs.map +0 -1
  604. package/dist/transformColumnsToArray.d.ts +0 -38
  605. package/dist/transformColumnsToArray.js +0 -2
  606. package/dist/transformColumnsToArray.js.map +0 -1
  607. package/dist/transformDataForAggregation.d.ts +0 -38
  608. package/dist/transformDataForAggregation.js +0 -2
  609. package/dist/transformDataForAggregation.js.map +0 -1
  610. package/dist/transformDataForGraph.d.ts +0 -47
  611. package/dist/transformDataForGraph.js +0 -2
  612. package/dist/transformDataForGraph.js.map +0 -1
  613. package/dist/transformDataForGraphFromFile.d.ts +0 -66
  614. package/dist/transformDataForGraphFromFile.js +0 -2
  615. package/dist/transformDataForGraphFromFile.js.map +0 -1
  616. package/dist/use-in-view-CZPXmTZM.js.map +0 -1
  617. package/dist/use-in-view-Dl1CsAIo.cjs.map +0 -1
  618. package/dist/x-Dft9NVe_-DcB7wtv5.js +0 -61
  619. package/dist/x-Dft9NVe_-DcB7wtv5.js.map +0 -1
  620. package/dist/x-Dft9NVe_-LeyJu02C.cjs +0 -27
  621. package/dist/x-Dft9NVe_-LeyJu02C.cjs.map +0 -1
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-CHPV5EwG-DDoeWRVt.cjs"),b=require("./Typography-k-kOjICQ.cjs"),N=require("./GraphFooter.cjs"),w=require("./GraphHeader.cjs"),E=require("./numberFormattingFunction-02t-wJta.cjs");function v(R){const{year:o,value:c,graphTitle:i,suffix:m="",sources:l,prefix:p="",graphDescription:n,footNote:x,padding:u,backgroundColor:a=!1,graphID:k,language:s="en",theme:S="light",ariaLabel:$,textBackground:d=!1,headingFontSize:g="4.375rem",centerAlign:h=!1,verticalAlign:f="center",layout:y="primary",styles:t,classNames:r,precision:j}=R;return e.jsxRuntimeExports.jsx("div",{className:`${S||"light"} flex w-full`,dir:s==="he"||s==="ar"?"rtl":void 0,children:e.jsxRuntimeExports.jsx("div",{className:e.mo(`${a?a===!0?"bg-primary-gray-200 dark:bg-primary-gray-650 ":"":"bg-transparent "}flex flex-col w-full h-inherit ${s||"en"}`,r?.graphContainer),style:{...t?.graphContainer||{},...a&&a!==!0?{backgroundColor:a}:{}},id:k,"aria-label":$||`${i?`The graph shows ${i}. `:""}This is a statistic card.${n?` ${n}`:""}`,children:e.jsxRuntimeExports.jsx("div",{className:"flex grow",style:{padding:a?u||"1rem":u||0},children:y!=="secondary"?e.jsxRuntimeExports.jsxs("div",{className:"flex flex-col w-full gap-12 justify-between grow",children:[i||n?e.jsxRuntimeExports.jsx(w.GraphHeader,{styles:{title:t?.title,description:t?.description},classNames:{title:r?.title,description:r?.description},graphTitle:i,graphDescription:n}):null,e.jsxRuntimeExports.jsx("div",{className:`flex flex-col justify-between grow ${f==="top"?"justify-start":f==="bottom"?"justify-end":"justify-center"}`,children:e.jsxRuntimeExports.jsxs(b.h,{marginBottom:"base",className:`leading-none text-outline font-heading ${h?"text-center":s==="he"||s==="ar"?"text-right":"text-left"} ${d?"text-primary-black dark:text-primary-white":"transparent"}`,style:{fontSize:g,letterSpacing:"0.05rem"},children:[E.numberFormattingFunction(c,"NA",j,p,m)," ",o?e.jsxRuntimeExports.jsxs("span",{className:"text-lg font-normal mt-0 mb-4 text-primary-gray-550 dark:text-primary-gray-400",style:{marginLeft:"-8px",lineHeight:"1.09",textShadow:"none",WebkitTextStrokeWidth:0},children:["(",o,")"]}):null]})}),l||x?e.jsxRuntimeExports.jsx(N.GraphFooter,{styles:{footnote:t?.footnote,source:t?.source},classNames:{footnote:r?.footnote,source:r?.source},sources:l,footNote:x}):null]}):e.jsxRuntimeExports.jsxs("div",{className:"flex flex-col w-full gap-4 grow justify-center",children:[e.jsxRuntimeExports.jsxs(b.h,{marginBottom:y==="secondary"?"none":"base",className:`leading-none text-outline font-heading ${h?"text-center":s==="he"||s==="ar"?"text-right":"text-left"} ${d?"text-primary-black dark:text-primary-white":"transparent"}`,style:{fontSize:g,letterSpacing:"0.05rem"},children:[E.numberFormattingFunction(c,"NA",j,p,m)," ",o?e.jsxRuntimeExports.jsxs("span",{className:"text-lg font-normal mt-0 mb-4 text-primary-gray-550 dark:text-primary-gray-400",style:{marginLeft:"-8px",lineHeight:"1.09",textShadow:"none",WebkitTextStrokeWidth:0},children:["(",o,")"]}):null]}),i||n?e.jsxRuntimeExports.jsx(w.GraphHeader,{styles:{title:t?.title,description:t?.description},classNames:{title:r?.title,description:r?.description},graphTitle:i,graphDescription:n}):null,l||x?e.jsxRuntimeExports.jsx(N.GraphFooter,{styles:{footnote:t?.footnote,source:t?.source},classNames:{footnote:r?.footnote,source:r?.source},sources:l,footNote:x}):null]})})})})}exports.BasicStatCard=v;
2
+ //# sourceMappingURL=BasicStatCard.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BasicStatCard.cjs","sources":["../src/Components/Graphs/StatCard/index.tsx"],"sourcesContent":["import { H3 } from '@undp/design-system-react/Typography';\r\nimport { cn } from '@undp/design-system-react/cn';\r\n\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { ClassNameObject, Languages, SourcesDataType, StyleObject } from '@/Types';\r\n\r\ninterface Props {\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 /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Defines the layout for the cards */\r\n layout?: 'primary' | 'secondary';\r\n /** Font size of the main text */\r\n headingFontSize?: string;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Toggle the fill color of the main text. */\r\n textBackground?: boolean;\r\n /** Toggle is the text is center aligned. */\r\n centerAlign?: boolean;\r\n /** Vertical alignment of the main text */\r\n verticalAlign?: 'center' | 'top' | 'bottom';\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 // Values and Ticks\r\n /** Prefix for values */\r\n prefix?: string;\r\n /** Suffix for values */\r\n suffix?: string;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Main text */\r\n value: number | string;\r\n /** Sub text next to main text */\r\n year?: number | string;\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 BasicStatCard(props: Props) {\r\n const {\r\n year,\r\n value,\r\n graphTitle,\r\n suffix = '',\r\n sources,\r\n prefix = '',\r\n graphDescription,\r\n footNote,\r\n padding,\r\n backgroundColor = false,\r\n graphID,\r\n language = 'en',\r\n theme = 'light',\r\n ariaLabel,\r\n textBackground = false,\r\n headingFontSize = '4.375rem',\r\n centerAlign = false,\r\n verticalAlign = 'center',\r\n layout = 'primary',\r\n styles,\r\n classNames,\r\n precision,\r\n } = props;\r\n return (\r\n <div\r\n className={`${theme || 'light'} flex w-full`}\r\n dir={language === 'he' || language === 'ar' ? 'rtl' : undefined}\r\n >\r\n <div\r\n className={cn(\r\n `${\r\n !backgroundColor\r\n ? 'bg-transparent '\r\n : backgroundColor === true\r\n ? 'bg-primary-gray-200 dark:bg-primary-gray-650 '\r\n : ''\r\n }flex flex-col w-full h-inherit ${language || 'en'}`,\r\n classNames?.graphContainer,\r\n )}\r\n style={{\r\n ...(styles?.graphContainer || {}),\r\n ...(backgroundColor && backgroundColor !== true ? { backgroundColor } : {}),\r\n }}\r\n id={graphID}\r\n aria-label={\r\n ariaLabel ||\r\n `${graphTitle ? `The graph shows ${graphTitle}. ` : ''}This is a statistic card.${\r\n graphDescription ? ` ${graphDescription}` : ''\r\n }`\r\n }\r\n >\r\n <div\r\n className='flex grow'\r\n style={{ padding: backgroundColor ? padding || '1rem' : padding || 0 }}\r\n >\r\n {layout !== 'secondary' ? (\r\n <div className='flex flex-col w-full gap-12 justify-between grow'>\r\n {graphTitle || graphDescription ? (\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 />\r\n ) : null}\r\n <div\r\n className={`flex flex-col justify-between grow ${\r\n verticalAlign === 'top'\r\n ? 'justify-start'\r\n : verticalAlign === 'bottom'\r\n ? 'justify-end'\r\n : 'justify-center'\r\n }`}\r\n >\r\n <H3\r\n marginBottom='base'\r\n className={`leading-none text-outline font-heading ${\r\n centerAlign\r\n ? 'text-center'\r\n : language === 'he' || language === 'ar'\r\n ? 'text-right'\r\n : 'text-left'\r\n } ${textBackground ? 'text-primary-black dark:text-primary-white' : 'transparent'}`}\r\n style={{\r\n fontSize: headingFontSize,\r\n letterSpacing: '0.05rem',\r\n }}\r\n >\r\n {numberFormattingFunction(value, 'NA', precision, prefix, suffix)}{' '}\r\n {year ? (\r\n <span\r\n className='text-lg font-normal mt-0 mb-4 text-primary-gray-550 dark:text-primary-gray-400'\r\n style={{\r\n marginLeft: '-8px',\r\n lineHeight: '1.09',\r\n textShadow: 'none',\r\n WebkitTextStrokeWidth: 0,\r\n }}\r\n >\r\n ({year})\r\n </span>\r\n ) : null}\r\n </H3>\r\n </div>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n />\r\n ) : null}\r\n </div>\r\n ) : (\r\n <div className='flex flex-col w-full gap-4 grow justify-center'>\r\n <H3\r\n marginBottom={layout === 'secondary' ? 'none' : 'base'}\r\n className={`leading-none text-outline font-heading ${\r\n centerAlign\r\n ? 'text-center'\r\n : language === 'he' || language === 'ar'\r\n ? 'text-right'\r\n : 'text-left'\r\n } ${textBackground ? 'text-primary-black dark:text-primary-white' : 'transparent'}`}\r\n style={{\r\n fontSize: headingFontSize,\r\n letterSpacing: '0.05rem',\r\n }}\r\n >\r\n {numberFormattingFunction(value, 'NA', precision, prefix, suffix)}{' '}\r\n {year ? (\r\n <span\r\n className='text-lg font-normal mt-0 mb-4 text-primary-gray-550 dark:text-primary-gray-400'\r\n style={{\r\n marginLeft: '-8px',\r\n lineHeight: '1.09',\r\n textShadow: 'none',\r\n WebkitTextStrokeWidth: 0,\r\n }}\r\n >\r\n ({year})\r\n </span>\r\n ) : null}\r\n </H3>\r\n {graphTitle || graphDescription ? (\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 />\r\n ) : null}\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 />\r\n ) : null}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["BasicStatCard","props","year","value","graphTitle","suffix","sources","prefix","graphDescription","footNote","padding","backgroundColor","graphID","language","theme","ariaLabel","textBackground","headingFontSize","centerAlign","verticalAlign","layout","styles","classNames","precision","jsx","cn","jsxs","GraphHeader","H3","numberFormattingFunction","GraphFooter"],"mappings":"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"}
@@ -1,2 +1,191 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-BHm2KTjD-D8FylaKc.cjs"),c=require("./Typography-CDR-DAHH.cjs"),N=require("./GraphFooter.js"),E=require("./GraphHeader.js"),w=require("./numberFormattingFunction.js");function v(R){const{year:o,value:p,graphTitle:i,suffix:m="",sources:l,prefix:u="",graphDescription:n,footNote:x,padding:d,backgroundColor:a=!1,graphID:k,language:s="en",theme:S="light",ariaLabel:$,textBackground:g=!1,headingFontSize:h="4.375rem",centerAlign:f=!1,verticalAlign:y="center",layout:j="primary",styles:t,classNames:r,precision:b}=R;return e.jsxRuntimeExports.jsx("div",{className:`${S||"light"} flex w-full`,dir:s==="he"||s==="ar"?"rtl":void 0,children:e.jsxRuntimeExports.jsx("div",{className:c.cnExports.cn(`${a?a===!0?"bg-primary-gray-200 dark:bg-primary-gray-650 ":"":"bg-transparent "}flex flex-col w-full h-inherit ${s||"en"}`,r?.graphContainer),style:{...t?.graphContainer||{},...a&&a!==!0?{backgroundColor:a}:{}},id:k,"aria-label":$||`${i?`The graph shows ${i}. `:""}This is a statistic card.${n?` ${n}`:""}`,children:e.jsxRuntimeExports.jsx("div",{className:"flex grow",style:{padding:a?d||"1rem":d||0},children:j!=="secondary"?e.jsxRuntimeExports.jsxs("div",{className:"flex flex-col w-full gap-12 justify-between grow",children:[i||n?e.jsxRuntimeExports.jsx(E.GraphHeader,{styles:{title:t?.title,description:t?.description},classNames:{title:r?.title,description:r?.description},graphTitle:i,graphDescription:n}):null,e.jsxRuntimeExports.jsx("div",{className:`flex flex-col justify-between grow ${y==="top"?"justify-start":y==="bottom"?"justify-end":"justify-center"}`,children:e.jsxRuntimeExports.jsxs(c.TypographyExports.H3,{marginBottom:"base",className:`leading-none text-outline font-heading ${f?"text-center":s==="he"||s==="ar"?"text-right":"text-left"} ${g?"text-primary-black dark:text-primary-white":"transparent"}`,style:{fontSize:h,letterSpacing:"0.05rem"},children:[w.numberFormattingFunction(p,"NA",b,u,m)," ",o?e.jsxRuntimeExports.jsxs("span",{className:"text-lg font-normal mt-0 mb-4 text-primary-gray-550 dark:text-primary-gray-400",style:{marginLeft:"-8px",lineHeight:"1.09",textShadow:"none",WebkitTextStrokeWidth:0},children:["(",o,")"]}):null]})}),l||x?e.jsxRuntimeExports.jsx(N.GraphFooter,{styles:{footnote:t?.footnote,source:t?.source},classNames:{footnote:r?.footnote,source:r?.source},sources:l,footNote:x}):null]}):e.jsxRuntimeExports.jsxs("div",{className:"flex flex-col w-full gap-4 grow justify-center",children:[e.jsxRuntimeExports.jsxs(c.TypographyExports.H3,{marginBottom:j==="secondary"?"none":"base",className:`leading-none text-outline font-heading ${f?"text-center":s==="he"||s==="ar"?"text-right":"text-left"} ${g?"text-primary-black dark:text-primary-white":"transparent"}`,style:{fontSize:h,letterSpacing:"0.05rem"},children:[w.numberFormattingFunction(p,"NA",b,u,m)," ",o?e.jsxRuntimeExports.jsxs("span",{className:"text-lg font-normal mt-0 mb-4 text-primary-gray-550 dark:text-primary-gray-400",style:{marginLeft:"-8px",lineHeight:"1.09",textShadow:"none",WebkitTextStrokeWidth:0},children:["(",o,")"]}):null]}),i||n?e.jsxRuntimeExports.jsx(E.GraphHeader,{styles:{title:t?.title,description:t?.description},classNames:{title:r?.title,description:r?.description},graphTitle:i,graphDescription:n}):null,l||x?e.jsxRuntimeExports.jsx(N.GraphFooter,{styles:{footnote:t?.footnote,source:t?.source},classNames:{footnote:r?.footnote,source:r?.source},sources:l,footNote:x}):null]})})})})}exports.BasicStatCard=v;
1
+ import { j as e, m as A } from "./index-CHPV5EwG-BPSP-7Jg.js";
2
+ import { h as b } from "./Typography-Ctgfl1J5.js";
3
+ import { GraphFooter as N } from "./GraphFooter.js";
4
+ import { GraphHeader as w } from "./GraphHeader.js";
5
+ import { n as k } from "./numberFormattingFunction-14YCbkN2.js";
6
+ function H($) {
7
+ const {
8
+ year: n,
9
+ value: m,
10
+ graphTitle: s,
11
+ suffix: x = "",
12
+ sources: o,
13
+ prefix: d = "",
14
+ graphDescription: i,
15
+ footNote: c,
16
+ padding: f,
17
+ backgroundColor: l = !1,
18
+ graphID: S,
19
+ language: a = "en",
20
+ theme: v = "light",
21
+ ariaLabel: T,
22
+ textBackground: p = !1,
23
+ headingFontSize: g = "4.375rem",
24
+ centerAlign: h = !1,
25
+ verticalAlign: u = "center",
26
+ layout: y = "primary",
27
+ styles: t,
28
+ classNames: r,
29
+ precision: j
30
+ } = $;
31
+ return /* @__PURE__ */ e.jsx(
32
+ "div",
33
+ {
34
+ className: `${v || "light"} flex w-full`,
35
+ dir: a === "he" || a === "ar" ? "rtl" : void 0,
36
+ children: /* @__PURE__ */ e.jsx(
37
+ "div",
38
+ {
39
+ className: A(
40
+ `${l ? l === !0 ? "bg-primary-gray-200 dark:bg-primary-gray-650 " : "" : "bg-transparent "}flex flex-col w-full h-inherit ${a || "en"}`,
41
+ r?.graphContainer
42
+ ),
43
+ style: {
44
+ ...t?.graphContainer || {},
45
+ ...l && l !== !0 ? { backgroundColor: l } : {}
46
+ },
47
+ id: S,
48
+ "aria-label": T || `${s ? `The graph shows ${s}. ` : ""}This is a statistic card.${i ? ` ${i}` : ""}`,
49
+ children: /* @__PURE__ */ e.jsx(
50
+ "div",
51
+ {
52
+ className: "flex grow",
53
+ style: { padding: l ? f || "1rem" : f || 0 },
54
+ children: y !== "secondary" ? /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col w-full gap-12 justify-between grow", children: [
55
+ s || i ? /* @__PURE__ */ e.jsx(
56
+ w,
57
+ {
58
+ styles: {
59
+ title: t?.title,
60
+ description: t?.description
61
+ },
62
+ classNames: {
63
+ title: r?.title,
64
+ description: r?.description
65
+ },
66
+ graphTitle: s,
67
+ graphDescription: i
68
+ }
69
+ ) : null,
70
+ /* @__PURE__ */ e.jsx(
71
+ "div",
72
+ {
73
+ className: `flex flex-col justify-between grow ${u === "top" ? "justify-start" : u === "bottom" ? "justify-end" : "justify-center"}`,
74
+ children: /* @__PURE__ */ e.jsxs(
75
+ b,
76
+ {
77
+ marginBottom: "base",
78
+ className: `leading-none text-outline font-heading ${h ? "text-center" : a === "he" || a === "ar" ? "text-right" : "text-left"} ${p ? "text-primary-black dark:text-primary-white" : "transparent"}`,
79
+ style: {
80
+ fontSize: g,
81
+ letterSpacing: "0.05rem"
82
+ },
83
+ children: [
84
+ k(m, "NA", j, d, x),
85
+ " ",
86
+ n ? /* @__PURE__ */ e.jsxs(
87
+ "span",
88
+ {
89
+ className: "text-lg font-normal mt-0 mb-4 text-primary-gray-550 dark:text-primary-gray-400",
90
+ style: {
91
+ marginLeft: "-8px",
92
+ lineHeight: "1.09",
93
+ textShadow: "none",
94
+ WebkitTextStrokeWidth: 0
95
+ },
96
+ children: [
97
+ "(",
98
+ n,
99
+ ")"
100
+ ]
101
+ }
102
+ ) : null
103
+ ]
104
+ }
105
+ )
106
+ }
107
+ ),
108
+ o || c ? /* @__PURE__ */ e.jsx(
109
+ N,
110
+ {
111
+ styles: { footnote: t?.footnote, source: t?.source },
112
+ classNames: {
113
+ footnote: r?.footnote,
114
+ source: r?.source
115
+ },
116
+ sources: o,
117
+ footNote: c
118
+ }
119
+ ) : null
120
+ ] }) : /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col w-full gap-4 grow justify-center", children: [
121
+ /* @__PURE__ */ e.jsxs(
122
+ b,
123
+ {
124
+ marginBottom: y === "secondary" ? "none" : "base",
125
+ className: `leading-none text-outline font-heading ${h ? "text-center" : a === "he" || a === "ar" ? "text-right" : "text-left"} ${p ? "text-primary-black dark:text-primary-white" : "transparent"}`,
126
+ style: {
127
+ fontSize: g,
128
+ letterSpacing: "0.05rem"
129
+ },
130
+ children: [
131
+ k(m, "NA", j, d, x),
132
+ " ",
133
+ n ? /* @__PURE__ */ e.jsxs(
134
+ "span",
135
+ {
136
+ className: "text-lg font-normal mt-0 mb-4 text-primary-gray-550 dark:text-primary-gray-400",
137
+ style: {
138
+ marginLeft: "-8px",
139
+ lineHeight: "1.09",
140
+ textShadow: "none",
141
+ WebkitTextStrokeWidth: 0
142
+ },
143
+ children: [
144
+ "(",
145
+ n,
146
+ ")"
147
+ ]
148
+ }
149
+ ) : null
150
+ ]
151
+ }
152
+ ),
153
+ s || i ? /* @__PURE__ */ e.jsx(
154
+ w,
155
+ {
156
+ styles: {
157
+ title: t?.title,
158
+ description: t?.description
159
+ },
160
+ classNames: {
161
+ title: r?.title,
162
+ description: r?.description
163
+ },
164
+ graphTitle: s,
165
+ graphDescription: i
166
+ }
167
+ ) : null,
168
+ o || c ? /* @__PURE__ */ e.jsx(
169
+ N,
170
+ {
171
+ styles: { footnote: t?.footnote, source: t?.source },
172
+ classNames: {
173
+ footnote: r?.footnote,
174
+ source: r?.source
175
+ },
176
+ sources: o,
177
+ footNote: c
178
+ }
179
+ ) : null
180
+ ] })
181
+ }
182
+ )
183
+ }
184
+ )
185
+ }
186
+ );
187
+ }
188
+ export {
189
+ H as BasicStatCard
190
+ };
2
191
  //# sourceMappingURL=BasicStatCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BasicStatCard.js","sources":["../src/Components/Graphs/StatCard/index.tsx"],"sourcesContent":["import { H3 } from '@undp/design-system-react/Typography';\r\nimport { cn } from '@undp/design-system-react/cn';\r\n\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { ClassNameObject, Languages, SourcesDataType, StyleObject } from '@/Types';\r\n\r\ninterface Props {\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 /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Defines the layout for the cards */\r\n layout?: 'primary' | 'secondary';\r\n /** Font size of the main text */\r\n headingFontSize?: string;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Toggle the fill color of the main text. */\r\n textBackground?: boolean;\r\n /** Toggle is the text is center aligned. */\r\n centerAlign?: boolean;\r\n /** Vertical alignment of the main text */\r\n verticalAlign?: 'center' | 'top' | 'bottom';\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 // Values and Ticks\r\n /** Prefix for values */\r\n prefix?: string;\r\n /** Suffix for values */\r\n suffix?: string;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Main text */\r\n value: number | string;\r\n /** Sub text next to main text */\r\n year?: number | string;\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 BasicStatCard(props: Props) {\r\n const {\r\n year,\r\n value,\r\n graphTitle,\r\n suffix = '',\r\n sources,\r\n prefix = '',\r\n graphDescription,\r\n footNote,\r\n padding,\r\n backgroundColor = false,\r\n graphID,\r\n language = 'en',\r\n theme = 'light',\r\n ariaLabel,\r\n textBackground = false,\r\n headingFontSize = '4.375rem',\r\n centerAlign = false,\r\n verticalAlign = 'center',\r\n layout = 'primary',\r\n styles,\r\n classNames,\r\n precision,\r\n } = props;\r\n return (\r\n <div\r\n className={`${theme || 'light'} flex w-full`}\r\n dir={language === 'he' || language === 'ar' ? 'rtl' : undefined}\r\n >\r\n <div\r\n className={cn(\r\n `${\r\n !backgroundColor\r\n ? 'bg-transparent '\r\n : backgroundColor === true\r\n ? 'bg-primary-gray-200 dark:bg-primary-gray-650 '\r\n : ''\r\n }flex flex-col w-full h-inherit ${language || 'en'}`,\r\n classNames?.graphContainer,\r\n )}\r\n style={{\r\n ...(styles?.graphContainer || {}),\r\n ...(backgroundColor && backgroundColor !== true ? { backgroundColor } : {}),\r\n }}\r\n id={graphID}\r\n aria-label={\r\n ariaLabel ||\r\n `${graphTitle ? `The graph shows ${graphTitle}. ` : ''}This is a statistic card.${\r\n graphDescription ? ` ${graphDescription}` : ''\r\n }`\r\n }\r\n >\r\n <div\r\n className='flex grow'\r\n style={{ padding: backgroundColor ? padding || '1rem' : padding || 0 }}\r\n >\r\n {layout !== 'secondary' ? (\r\n <div className='flex flex-col w-full gap-12 justify-between grow'>\r\n {graphTitle || graphDescription ? (\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 />\r\n ) : null}\r\n <div\r\n className={`flex flex-col justify-between grow ${\r\n verticalAlign === 'top'\r\n ? 'justify-start'\r\n : verticalAlign === 'bottom'\r\n ? 'justify-end'\r\n : 'justify-center'\r\n }`}\r\n >\r\n <H3\r\n marginBottom='base'\r\n className={`leading-none text-outline font-heading ${\r\n centerAlign\r\n ? 'text-center'\r\n : language === 'he' || language === 'ar'\r\n ? 'text-right'\r\n : 'text-left'\r\n } ${textBackground ? 'text-primary-black dark:text-primary-white' : 'transparent'}`}\r\n style={{\r\n fontSize: headingFontSize,\r\n letterSpacing: '0.05rem',\r\n }}\r\n >\r\n {numberFormattingFunction(value, 'NA', precision, prefix, suffix)}{' '}\r\n {year ? (\r\n <span\r\n className='text-lg font-normal mt-0 mb-4 text-primary-gray-550 dark:text-primary-gray-400'\r\n style={{\r\n marginLeft: '-8px',\r\n lineHeight: '1.09',\r\n textShadow: 'none',\r\n WebkitTextStrokeWidth: 0,\r\n }}\r\n >\r\n ({year})\r\n </span>\r\n ) : null}\r\n </H3>\r\n </div>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n />\r\n ) : null}\r\n </div>\r\n ) : (\r\n <div className='flex flex-col w-full gap-4 grow justify-center'>\r\n <H3\r\n marginBottom={layout === 'secondary' ? 'none' : 'base'}\r\n className={`leading-none text-outline font-heading ${\r\n centerAlign\r\n ? 'text-center'\r\n : language === 'he' || language === 'ar'\r\n ? 'text-right'\r\n : 'text-left'\r\n } ${textBackground ? 'text-primary-black dark:text-primary-white' : 'transparent'}`}\r\n style={{\r\n fontSize: headingFontSize,\r\n letterSpacing: '0.05rem',\r\n }}\r\n >\r\n {numberFormattingFunction(value, 'NA', precision, prefix, suffix)}{' '}\r\n {year ? (\r\n <span\r\n className='text-lg font-normal mt-0 mb-4 text-primary-gray-550 dark:text-primary-gray-400'\r\n style={{\r\n marginLeft: '-8px',\r\n lineHeight: '1.09',\r\n textShadow: 'none',\r\n WebkitTextStrokeWidth: 0,\r\n }}\r\n >\r\n ({year})\r\n </span>\r\n ) : null}\r\n </H3>\r\n {graphTitle || graphDescription ? (\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 />\r\n ) : null}\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 />\r\n ) : null}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["BasicStatCard","props","year","value","graphTitle","suffix","sources","prefix","graphDescription","footNote","padding","backgroundColor","graphID","language","theme","ariaLabel","textBackground","headingFontSize","centerAlign","verticalAlign","layout","styles","classNames","precision","jsx","cn","jsxs","GraphHeader","H3","numberFormattingFunction","GraphFooter"],"mappings":"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"}
1
+ {"version":3,"file":"BasicStatCard.js","sources":["../src/Components/Graphs/StatCard/index.tsx"],"sourcesContent":["import { H3 } from '@undp/design-system-react/Typography';\r\nimport { cn } from '@undp/design-system-react/cn';\r\n\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { ClassNameObject, Languages, SourcesDataType, StyleObject } from '@/Types';\r\n\r\ninterface Props {\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 /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Defines the layout for the cards */\r\n layout?: 'primary' | 'secondary';\r\n /** Font size of the main text */\r\n headingFontSize?: string;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n /** Toggle the fill color of the main text. */\r\n textBackground?: boolean;\r\n /** Toggle is the text is center aligned. */\r\n centerAlign?: boolean;\r\n /** Vertical alignment of the main text */\r\n verticalAlign?: 'center' | 'top' | 'bottom';\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 // Values and Ticks\r\n /** Prefix for values */\r\n prefix?: string;\r\n /** Suffix for values */\r\n suffix?: string;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Main text */\r\n value: number | string;\r\n /** Sub text next to main text */\r\n year?: number | string;\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 BasicStatCard(props: Props) {\r\n const {\r\n year,\r\n value,\r\n graphTitle,\r\n suffix = '',\r\n sources,\r\n prefix = '',\r\n graphDescription,\r\n footNote,\r\n padding,\r\n backgroundColor = false,\r\n graphID,\r\n language = 'en',\r\n theme = 'light',\r\n ariaLabel,\r\n textBackground = false,\r\n headingFontSize = '4.375rem',\r\n centerAlign = false,\r\n verticalAlign = 'center',\r\n layout = 'primary',\r\n styles,\r\n classNames,\r\n precision,\r\n } = props;\r\n return (\r\n <div\r\n className={`${theme || 'light'} flex w-full`}\r\n dir={language === 'he' || language === 'ar' ? 'rtl' : undefined}\r\n >\r\n <div\r\n className={cn(\r\n `${\r\n !backgroundColor\r\n ? 'bg-transparent '\r\n : backgroundColor === true\r\n ? 'bg-primary-gray-200 dark:bg-primary-gray-650 '\r\n : ''\r\n }flex flex-col w-full h-inherit ${language || 'en'}`,\r\n classNames?.graphContainer,\r\n )}\r\n style={{\r\n ...(styles?.graphContainer || {}),\r\n ...(backgroundColor && backgroundColor !== true ? { backgroundColor } : {}),\r\n }}\r\n id={graphID}\r\n aria-label={\r\n ariaLabel ||\r\n `${graphTitle ? `The graph shows ${graphTitle}. ` : ''}This is a statistic card.${\r\n graphDescription ? ` ${graphDescription}` : ''\r\n }`\r\n }\r\n >\r\n <div\r\n className='flex grow'\r\n style={{ padding: backgroundColor ? padding || '1rem' : padding || 0 }}\r\n >\r\n {layout !== 'secondary' ? (\r\n <div className='flex flex-col w-full gap-12 justify-between grow'>\r\n {graphTitle || graphDescription ? (\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 />\r\n ) : null}\r\n <div\r\n className={`flex flex-col justify-between grow ${\r\n verticalAlign === 'top'\r\n ? 'justify-start'\r\n : verticalAlign === 'bottom'\r\n ? 'justify-end'\r\n : 'justify-center'\r\n }`}\r\n >\r\n <H3\r\n marginBottom='base'\r\n className={`leading-none text-outline font-heading ${\r\n centerAlign\r\n ? 'text-center'\r\n : language === 'he' || language === 'ar'\r\n ? 'text-right'\r\n : 'text-left'\r\n } ${textBackground ? 'text-primary-black dark:text-primary-white' : 'transparent'}`}\r\n style={{\r\n fontSize: headingFontSize,\r\n letterSpacing: '0.05rem',\r\n }}\r\n >\r\n {numberFormattingFunction(value, 'NA', precision, prefix, suffix)}{' '}\r\n {year ? (\r\n <span\r\n className='text-lg font-normal mt-0 mb-4 text-primary-gray-550 dark:text-primary-gray-400'\r\n style={{\r\n marginLeft: '-8px',\r\n lineHeight: '1.09',\r\n textShadow: 'none',\r\n WebkitTextStrokeWidth: 0,\r\n }}\r\n >\r\n ({year})\r\n </span>\r\n ) : null}\r\n </H3>\r\n </div>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n />\r\n ) : null}\r\n </div>\r\n ) : (\r\n <div className='flex flex-col w-full gap-4 grow justify-center'>\r\n <H3\r\n marginBottom={layout === 'secondary' ? 'none' : 'base'}\r\n className={`leading-none text-outline font-heading ${\r\n centerAlign\r\n ? 'text-center'\r\n : language === 'he' || language === 'ar'\r\n ? 'text-right'\r\n : 'text-left'\r\n } ${textBackground ? 'text-primary-black dark:text-primary-white' : 'transparent'}`}\r\n style={{\r\n fontSize: headingFontSize,\r\n letterSpacing: '0.05rem',\r\n }}\r\n >\r\n {numberFormattingFunction(value, 'NA', precision, prefix, suffix)}{' '}\r\n {year ? (\r\n <span\r\n className='text-lg font-normal mt-0 mb-4 text-primary-gray-550 dark:text-primary-gray-400'\r\n style={{\r\n marginLeft: '-8px',\r\n lineHeight: '1.09',\r\n textShadow: 'none',\r\n WebkitTextStrokeWidth: 0,\r\n }}\r\n >\r\n ({year})\r\n </span>\r\n ) : null}\r\n </H3>\r\n {graphTitle || graphDescription ? (\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 />\r\n ) : null}\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 />\r\n ) : null}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["BasicStatCard","props","year","value","graphTitle","suffix","sources","prefix","graphDescription","footNote","padding","backgroundColor","graphID","language","theme","ariaLabel","textBackground","headingFontSize","centerAlign","verticalAlign","layout","styles","classNames","precision","jsx","cn","jsxs","GraphHeader","H3","numberFormattingFunction","GraphFooter"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./index-CHPV5EwG-DDoeWRVt.cjs"),ce=require("./index-CZbIGs8q.cjs"),a=require("react"),ue=require("./index-BXns0-ng.cjs"),xe=require("./index-BczVvEBZ.cjs"),de=require("./Modal-C_dl0EtQ.cjs"),he=require("./Spinner-DA6Z5E4n.cjs"),me=require("./numberFormattingFunction-02t-wJta.cjs"),pe=require("./Tooltip-n8z5bfav.cjs"),O=require("./checkIfNullOrUndefined-BCW3Y1ML.cjs"),fe=require("./getTextColorBasedOnBgColor-nqY-bsM_.cjs"),le=require("./Colors.cjs"),ge=require("./string2HTML-D2Avudmb.cjs"),je=require("./Axis-DE7dSn1_.cjs"),Me=require("./XTicksAndGridLines-CCzXIV8d.cjs"),ye=require("./ReferenceLine-CuFMk0cI.cjs"),ve=require("./pow-B5-jkdHU.cjs"),be=require("./linear-BVckp9RD.cjs"),re=require("./y-QcCbqrzx.cjs"),Re=require("./GraphFooter.cjs"),Ee=require("./GraphHeader.cjs"),we=require("./ColorLegendWithMouseOver.cjs"),Ce=require("./EmptyState-d8_8SxeW.cjs"),Oe=require("./YTicksAndGridLines-DBDuz6vb.cjs");function ke(ne){const{data:o,circleColors:u,showTicks:C,leftMargin:ie,width:b,height:R,colorDomain:c,rightMargin:se,topMargin:I,bottomMargin:F,showLabels:A,tooltip:j,onSeriesMouseOver:$,refValues:m,selectedColor:B,startFromZero:U,radius:g,maxRadiusValue:G,maxValue:n,minValue:Z,highlightedDataPoints:J,onSeriesMouseClick:P,rtl:oe,resetSelectionOnDoubleClick:K,detailsOnClick:L,suffix:N,prefix:S,styles:y,classNames:q,noOfTicks:Q,dimmedOpacity:V,precision:H,customLayers:k}=ne,X=a.useRef(null),[E,v]=a.useState(void 0),[D,W]=a.useState(void 0),[Y,z]=a.useState(null),[ee,p]=a.useState(void 0),[f,x]=a.useState(void 0),d={top:I,bottom:F,left:ie,right:se},_=b-d.left-d.right,te=R-d.top-d.bottom,M=o.filter(e=>!O.checkIfNullOrUndefined(e.radius)).length===0?o:xe.orderBy(o.filter(e=>!O.checkIfNullOrUndefined(e.radius)),"radius","desc"),w=O.checkIfNullOrUndefined(n)?Math.max(...o.filter(e=>!O.checkIfNullOrUndefined(e.position)).map(e=>e.position))<0&&!U?0:Math.max(...o.filter(e=>!O.checkIfNullOrUndefined(e.position)).map(e=>e.position)):n,r=O.checkIfNullOrUndefined(Z)?Math.min(...o.filter(e=>!O.checkIfNullOrUndefined(e.position)).map(e=>e.position))>=0&&!U?0:Math.min(...o.filter(e=>!O.checkIfNullOrUndefined(e.position)).map(e=>e.position)):Z,l=o.filter(e=>e.radius===void 0||e.radius===null).length!==o.length?ve.sqrt().domain([0,O.checkIfNullOrUndefined(G)?Math.max(...o.map(e=>e.radius).filter(e=>e!=null)):G]).range([.25,g]).nice():void 0,T=be.linear().domain([r,w]).range([0,_]).nice(),t=T.ticks(Q);return a.useEffect(()=>{z(null);const e=M.filter(h=>h.position);re.forceSimulation(e).force("x",re.forceX(h=>T(h.position)).strength(5)).force("y",re.forceY(h=>te/2).strength(1)).force("collide",re.forceCollide(h=>l?l(h.radius||0)+1:g+1)).force("charge",re.forceManyBody().strength(-15)).alphaDecay(.05).tick(1e4).on("tick",()=>{z(e)}).on("end",()=>{z(e)})},[o,g,te,_,r,w,M,T,l]),i.jsxRuntimeExports.jsxs(i.jsxRuntimeExports.Fragment,{children:[Y?i.jsxRuntimeExports.jsx("svg",{width:`${b}px`,height:`${R}px`,viewBox:`0 0 ${b} ${R}`,direction:"ltr",ref:X,children:i.jsxRuntimeExports.jsxs("g",{transform:`translate(${d.left},${d.top})`,children:[C?i.jsxRuntimeExports.jsxs(i.jsxRuntimeExports.Fragment,{children:[i.jsxRuntimeExports.jsx(je.Axis,{x1:T(r<0?0:r),x2:T(r<0?0:r),y1:0-d.top,y2:te+d.bottom,label:me.numberFormattingFunction(r<0?0:r,"NA",H,S,N),labelPos:{x:T(r<0?0:r),y:0-I,dy:"0.75em",dx:3},classNames:{axis:q?.xAxis?.axis,label:q?.yAxis?.labels},styles:{axis:y?.xAxis?.axis,label:y?.yAxis?.labels}}),i.jsxRuntimeExports.jsx(Me.XTicksAndGridLines,{values:t.filter(e=>e!==0),x:t.filter(e=>e!==0).map(e=>T(e)),y1:0-I,y2:te+d.bottom,styles:{gridLines:y?.xAxis?.gridLines,labels:y?.xAxis?.labels},classNames:{gridLines:q?.xAxis?.gridLines,labels:q?.xAxis?.labels},suffix:N,prefix:S,labelType:"secondary",showGridLines:!0,precision:H})]}):null,k.filter(e=>e.position==="before").map(e=>e.layer),Y.map(e=>i.jsxRuntimeExports.jsxs("g",{className:"undp-viz-g-with-hover",transform:`translate(${e.x},${e.y})`,opacity:B?e.color&&u[c.indexOf(e.color)]===B?1:V:J.length!==0?J.indexOf(e.label)!==-1?.85:V:.85,onMouseEnter:h=>{v(e),x(h.clientY),p(h.clientX),$?.(e)},onMouseMove:h=>{v(e),x(h.clientY),p(h.clientX)},onClick:()=>{(P||L)&&(ue.isEqual(D,e)&&K?(W(void 0),P?.(void 0)):(W(e),P?.(e)))},onMouseLeave:()=>{v(void 0),p(void 0),x(void 0),$?.(void 0)},children:[i.jsxRuntimeExports.jsx("circle",{cx:0,cy:0,fill:o.filter(h=>h.color).length===0?u[0]:e.color?u[c.indexOf(e.color)]:le.Colors.gray,radius:l?l(e.radius||0):g}),(l?l(e.radius||0):g)>10&&A?i.jsxRuntimeExports.jsx("g",{children:i.jsxRuntimeExports.jsx("foreignObject",{y:0-(l?l(e.radius||0):g),x:0-(l?l(e.radius||0):g),width:2*(l?l(e.radius||0):g),height:2*(l?l(e.radius||0):g),children:i.jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-0.5 justify-center items-center h-inherit py-0 px-1.5",children:A?i.jsxRuntimeExports.jsx("p",{className:i.mo("text-center leading-none m-0",q?.graphObjectValues),style:{fontSize:`${Math.min(Math.max(Math.round((l?l(e.radius||0):g)/4),10),Math.max(Math.round((l?l(e.radius||0):g)*12/`${e.label}`.length),10),20)}px`,color:fe.getTextColorBasedOnBgColor(o.filter(h=>h.color).length===0?u[0]:e.color?u[c.indexOf(e.color)]:le.Colors.gray),hyphens:"auto",...y?.graphObjectValues||{}},children:e.label}):null})})}):null]},e.label)),m?i.jsxRuntimeExports.jsx(i.jsxRuntimeExports.Fragment,{children:m.map((e,h)=>i.jsxRuntimeExports.jsx(ye.RefLineX,{text:e.text,color:e.color,x:T(e.value),y1:0-d.top,y2:te+d.bottom,textSide:T(e.value)>_*.75||oe?"left":"right",classNames:e.classNames,styles:e.styles,isInView:!0},h))}):null,k.filter(e=>e.position==="after").map(e=>e.layer)]})}):i.jsxRuntimeExports.jsx("div",{style:{width:`${b}px`,height:`${R}px`},children:i.jsxRuntimeExports.jsx("div",{className:"flex m-auto items-center justify-center p-0 leading-none text-base h-40",children:i.jsxRuntimeExports.jsx(he.y,{})})}),E&&j&&ee&&f?i.jsxRuntimeExports.jsx(pe.Tooltip,{data:E,body:j,xPos:ee,yPos:f,backgroundStyle:y?.tooltip,className:q?.tooltip}):null,L&&D!==void 0?i.jsxRuntimeExports.jsx(de.X,{open:D!==void 0,onClose:()=>{W(void 0)},children:i.jsxRuntimeExports.jsx("div",{className:"graph-modal-content m-0",dangerouslySetInnerHTML:typeof L=="string"?{__html:ge.string2HTML(L,D)}:void 0,children:typeof L=="function"?L(D):null})}):null]})}function Ne(ne){const{data:o,graphTitle:u,backgroundColor:C=!1,topMargin:ie=25,bottomMargin:b=10,leftMargin:R=10,rightMargin:c=10,showLabels:se=!0,showTicks:I=!0,colors:F,sources:A,graphDescription:j,height:$,width:m,footNote:B,colorDomain:U,colorLegendTitle:g,padding:G,relativeHeight:n,tooltip:Z,onSeriesMouseOver:J,refValues:P,showColorScale:oe,graphID:K,radius:L=5,maxRadiusValue:N,maxValue:S,minValue:y,highlightedDataPoints:q=[],onSeriesMouseClick:Q,graphDownload:V=!1,dataDownload:H=!1,language:k="en",showNAColor:X=!0,minHeight:E=0,theme:v="light",ariaLabel:D,resetSelectionOnDoubleClick:W=!0,detailsOnClick:Y,suffix:z="",prefix:ee="",styles:p,classNames:f,noOfTicks:x,dimmedOpacity:d=.3,precision:_=2,customLayers:te=[]}=ne,[M,w]=a.useState(0),[r,l]=a.useState(0),[T,t]=a.useState(void 0),e=a.useRef(null),h=a.useRef(null);return a.useEffect(()=>{const s=new ResizeObserver(ae=>{w(m||ae[0].target.clientWidth||620),l($||ae[0].target.clientHeight||480)});return e.current&&(l(e.current.clientHeight||480),w(e.current.clientWidth||620),m||s.observe(e.current)),()=>s.disconnect()},[m,$]),i.jsxRuntimeExports.jsx("div",{className:`${v||"light"} flex ${m?"w-fit grow-0":"w-full grow"}`,dir:k==="he"||k==="ar"?"rtl":void 0,children:i.jsxRuntimeExports.jsx("div",{className:i.mo(`${C?C===!0?"bg-primary-gray-200 dark:bg-primary-gray-650 ":"":"bg-transparent "}ml-auto mr-auto flex flex-col grow h-inherit ${k||"en"}`,f?.graphContainer),style:{...p?.graphContainer||{},...C&&C!==!0?{backgroundColor:C}:{}},id:K,ref:h,"aria-label":D||`${u?`The graph shows ${u}. `:""}This is a bee swarm chart showing the distribution along the x-axes. ${j?` ${j}`:""}`,children:i.jsxRuntimeExports.jsx("div",{className:"flex grow",style:{padding:C?G||"1rem":G||0},children:i.jsxRuntimeExports.jsxs("div",{className:"flex flex-col w-full gap-4 grow justify-between",children:[u||j||V||H?i.jsxRuntimeExports.jsx(Ee.GraphHeader,{styles:{title:p?.title,description:p?.description},classNames:{title:f?.title,description:f?.description},graphTitle:u,graphDescription:j,width:m,graphDownload:V?h.current:void 0,dataDownload:H?o.map(s=>s.data).filter(s=>s!==void 0).length>0?o.map(s=>s.data).filter(s=>s!==void 0):o.filter(s=>s!==void 0):null}):null,i.jsxRuntimeExports.jsx("div",{className:"grow flex flex-col justify-center gap-3 w-full",children:o.length===0?i.jsxRuntimeExports.jsx(Ce.EmptyState,{}):i.jsxRuntimeExports.jsxs(i.jsxRuntimeExports.Fragment,{children:[oe!==!1&&o.filter(s=>s.color).length!==0?i.jsxRuntimeExports.jsx(we.ColorLegendWithMouseOver,{width:m,colorLegendTitle:g,colors:F||le.Colors[v].categoricalColors.colors,colorDomain:U||ce.uniqBy(o.filter(s=>s.color),"color").map(s=>s.color),setSelectedColor:t,showNAColor:X??!0}):null,i.jsxRuntimeExports.jsx("div",{className:"flex flex-col grow justify-center w-full leading-0",ref:e,"aria-label":"Graph area",children:(m||M)&&($||r)?i.jsxRuntimeExports.jsx(ke,{data:o,circleColors:o.filter(s=>s.color).length===0?F?[F]:[le.Colors.primaryColors["blue-600"]]:F||le.Colors[v].categoricalColors.colors,colorDomain:o.filter(s=>s.color).length===0?[]:U||ce.uniqBy(o.filter(s=>s.color),"color").map(s=>s.color),width:m||M,selectedColor:T,height:Math.max(E,$||(n?E?(m||M)*n>E?(m||M)*n:E:(m||M)*n:r)),showTicks:I,leftMargin:R,rightMargin:c,topMargin:ie,bottomMargin:b,showLabels:se,tooltip:Z,onSeriesMouseOver:J,refValues:P,startFromZero:!1,radius:L,maxRadiusValue:N,maxValue:S,minValue:y,highlightedDataPoints:q,onSeriesMouseClick:Q,rtl:k==="he"||k==="ar",resetSelectionOnDoubleClick:W,detailsOnClick:Y,suffix:z,prefix:ee,styles:p,classNames:f,noOfTicks:x||5,dimmedOpacity:d,precision:_,customLayers:te}):null})]})}),A||B?i.jsxRuntimeExports.jsx(Re.GraphFooter,{styles:{footnote:p?.footnote,source:p?.source},classNames:{footnote:f?.footnote,source:f?.source},sources:A,footNote:B,width:m}):null]})})})})}function Se(ne){const{data:o,circleColors:u,showTicks:C,leftMargin:ie,width:b,height:R,colorDomain:c,rightMargin:se,topMargin:I,bottomMargin:F,suffix:A,prefix:j,showLabels:$,tooltip:m,onSeriesMouseOver:B,refValues:U,selectedColor:g,startFromZero:G,radius:n,maxRadiusValue:Z,maxValue:J,minValue:P,highlightedDataPoints:oe,onSeriesMouseClick:K,resetSelectionOnDoubleClick:L,detailsOnClick:N,styles:S,classNames:y,noOfTicks:q,dimmedOpacity:Q,precision:V,customLayers:H}=ne,k=a.useRef(null),[X,E]=a.useState(void 0),[v,D]=a.useState(void 0),[W,Y]=a.useState(null),[z,ee]=a.useState(void 0),[p,f]=a.useState(void 0),x={top:I,bottom:F,left:ie,right:se},d=b-x.left-x.right,_=R-x.top-x.bottom,te=o.filter(t=>!O.checkIfNullOrUndefined(t.radius)).length===0?o:xe.orderBy(o.filter(t=>!O.checkIfNullOrUndefined(t.radius)),"radius","desc"),M=O.checkIfNullOrUndefined(J)?Math.max(...o.filter(t=>!O.checkIfNullOrUndefined(t.position)).map(t=>t.position))<0&&!G?0:Math.max(...o.filter(t=>!O.checkIfNullOrUndefined(t.position)).map(t=>t.position)):J,w=O.checkIfNullOrUndefined(P)?Math.min(...o.filter(t=>!O.checkIfNullOrUndefined(t.position)).map(t=>t.position))>=0&&!G?0:Math.min(...o.filter(t=>!O.checkIfNullOrUndefined(t.position)).map(t=>t.position)):P,r=o.filter(t=>t.radius===void 0||t.radius===null).length!==o.length?ve.sqrt().domain([0,O.checkIfNullOrUndefined(Z)?Math.max(...o.map(t=>t.radius).filter(t=>t!=null)):Z]).range([.25,n]).nice():void 0,l=be.linear().domain([w,M]).range([_,0]).nice(),T=l.ticks(q);return a.useEffect(()=>{Y(null);const t=te.filter(e=>e.position);re.forceSimulation(t).force("y",re.forceY(e=>l(e.position)).strength(5)).force("x",re.forceX(e=>d/2).strength(1)).force("collide",re.forceCollide(e=>r?r(e.radius||0)+1:n+1)).force("charge",re.forceManyBody().strength(-15)).alphaDecay(.05).tick(1e4).on("tick",()=>{Y(t)}).on("end",()=>{Y(t)})},[o,n,_,d,w,M,te,l,r]),i.jsxRuntimeExports.jsxs(i.jsxRuntimeExports.Fragment,{children:[W?i.jsxRuntimeExports.jsx("svg",{width:`${b}px`,height:`${R}px`,viewBox:`0 0 ${b} ${R}`,direction:"ltr",ref:k,children:i.jsxRuntimeExports.jsxs("g",{transform:`translate(${x.left},${x.top})`,children:[C?i.jsxRuntimeExports.jsxs(i.jsxRuntimeExports.Fragment,{children:[i.jsxRuntimeExports.jsx(je.Axis,{y1:l(w<0?0:w),y2:l(w<0?0:w),x1:0-x.left,x2:d+x.right,label:me.numberFormattingFunction(w<0?0:w,"NA",V,j,A),labelPos:{x:0-x.left,y:l(w<0?0:w),dx:0,dy:M<0?"1em":-5},classNames:{axis:y?.xAxis?.axis,label:y?.yAxis?.labels},styles:{axis:S?.xAxis?.axis,label:S?.yAxis?.labels}}),i.jsxRuntimeExports.jsx(Oe.YTicksAndGridLines,{values:T.filter(t=>t!==0),y:T.filter(t=>t!==0).map(t=>l(t)),x1:0-x.left,x2:d+x.right,styles:{gridLines:S?.yAxis?.gridLines,labels:S?.yAxis?.labels},classNames:{gridLines:y?.yAxis?.gridLines,labels:y?.yAxis?.labels},suffix:A,prefix:j,labelType:"secondary",showGridLines:!0,labelPos:"vertical",precision:V})]}):null,H.filter(t=>t.position==="before").map(t=>t.layer),W.map(t=>i.jsxRuntimeExports.jsxs("g",{className:"undp-viz-g-with-hover",transform:`translate(${t.x},${t.y})`,opacity:g?t.color&&u[c.indexOf(t.color)]===g?1:Q:oe.length!==0?oe.indexOf(t.label)!==-1?.85:Q:.85,onMouseEnter:e=>{E(t),f(e.clientY),ee(e.clientX),B?.(t)},onMouseMove:e=>{E(t),f(e.clientY),ee(e.clientX)},onClick:()=>{(K||N)&&(ue.isEqual(v,t)&&L?(D(void 0),K?.(void 0)):(D(t),K?.(t)))},onMouseLeave:()=>{E(void 0),ee(void 0),f(void 0),B?.(void 0)},children:[i.jsxRuntimeExports.jsx("circle",{cx:0,cy:0,r:r?r(t.radius||0):n,fill:o.filter(e=>e.color).length===0?u[0]:t.color?u[c.indexOf(t.color)]:le.Colors.gray}),(r?r(t.radius||0):n)>10&&$?i.jsxRuntimeExports.jsx("g",{children:i.jsxRuntimeExports.jsx("foreignObject",{y:0-(r?r(t.radius||0):n),x:0-(r?r(t.radius||0):n),width:2*(r?r(t.radius||0):n),height:2*(r?r(t.radius||0):n),children:i.jsxRuntimeExports.jsx("div",{className:"flex flex-col justify-center items-center h-inherit py-0 px-1.5",children:$?i.jsxRuntimeExports.jsx("p",{className:i.mo("text-center leading-none m-0",y?.graphObjectValues),style:{fontSize:`${Math.min(Math.max(Math.round((r?r(t.radius||0):n)/4),10),Math.max(Math.round((r?r(t.radius||0):n)*12/`${t.label}`.length),10),20)}px`,hyphens:"auto",color:fe.getTextColorBasedOnBgColor(o.filter(e=>e.color).length===0?u[0]:t.color?u[c.indexOf(t.color)]:le.Colors.gray),...S?.graphObjectValues||{}},children:t.label}):null})})}):null]},t.label)),U?i.jsxRuntimeExports.jsx(i.jsxRuntimeExports.Fragment,{children:U.map((t,e)=>i.jsxRuntimeExports.jsx(ye.RefLineY,{text:t.text,color:t.color,y:l(t.value),x1:0-x.left,x2:d+x.right,classNames:t.classNames,styles:t.styles,isInView:!0},e))}):null,H.filter(t=>t.position==="after").map(t=>t.layer)]})}):i.jsxRuntimeExports.jsx("div",{style:{width:`${b}px`,height:`${R}px`},children:i.jsxRuntimeExports.jsx("div",{className:"flex m-auto items-center justify-center p-0 leading-none text-base h-40",children:i.jsxRuntimeExports.jsx(he.y,{})})}),X&&m&&z&&p?i.jsxRuntimeExports.jsx(pe.Tooltip,{data:X,body:m,xPos:z,yPos:p,backgroundStyle:S?.tooltip,className:y?.tooltip}):null,N&&v!==void 0?i.jsxRuntimeExports.jsx(de.X,{open:v!==void 0,onClose:()=>{D(void 0)},children:i.jsxRuntimeExports.jsx("div",{className:"graph-modal-content m-0",dangerouslySetInnerHTML:typeof N=="string"?{__html:ge.string2HTML(N,v)}:void 0,children:typeof N=="function"?N(v):null})}):null]})}function De(ne){const{data:o,graphTitle:u,colors:C,sources:ie,graphDescription:b,height:R,width:c,footNote:se,colorDomain:I,colorLegendTitle:F,padding:A,backgroundColor:j=!1,topMargin:$=25,bottomMargin:m=10,leftMargin:B=100,rightMargin:U=40,showLabels:g=!0,showTicks:G=!0,relativeHeight:n,tooltip:Z,onSeriesMouseOver:J,refValues:P,showColorScale:oe,graphID:K,radius:L=5,maxRadiusValue:N,maxValue:S,minValue:y,highlightedDataPoints:q=[],onSeriesMouseClick:Q,graphDownload:V=!1,dataDownload:H=!1,language:k="en",showNAColor:X=!0,minHeight:E=0,theme:v="light",ariaLabel:D,resetSelectionOnDoubleClick:W=!0,detailsOnClick:Y,suffix:z="",prefix:ee="",styles:p,classNames:f,noOfTicks:x,dimmedOpacity:d=.3,precision:_=2,customLayers:te=[]}=ne,[M,w]=a.useState(0),[r,l]=a.useState(0),[T,t]=a.useState(void 0),e=a.useRef(null),h=a.useRef(null);return a.useEffect(()=>{const s=new ResizeObserver(ae=>{w(c||ae[0].target.clientWidth||620),l(R||ae[0].target.clientHeight||480)});return e.current&&(l(e.current.clientHeight||480),w(e.current.clientWidth||620),c||s.observe(e.current)),()=>s.disconnect()},[c,R]),i.jsxRuntimeExports.jsx("div",{className:`${v||"light"} flex ${c?"w-fit grow-0":"w-full grow"}`,dir:k==="he"||k==="ar"?"rtl":void 0,children:i.jsxRuntimeExports.jsx("div",{className:i.mo(`${j?j===!0?"bg-primary-gray-200 dark:bg-primary-gray-650 ":"":"bg-transparent "}ml-auto mr-auto flex flex-col grow h-inherit ${k||"en"}`,f?.graphContainer),style:{...p?.graphContainer||{},...j&&j!==!0?{backgroundColor:j}:{}},id:K,ref:h,"aria-label":D||`${u?`The graph shows ${u}. `:""}This is a bee swarm chart showing the distribution along the y-axes. ${b?` ${b}`:""}`,children:i.jsxRuntimeExports.jsx("div",{className:"flex grow",style:{padding:j?A||"1rem":A||0},children:i.jsxRuntimeExports.jsxs("div",{className:"flex flex-col w-full gap-4 grow justify-between",children:[u||b||V||H?i.jsxRuntimeExports.jsx(Ee.GraphHeader,{styles:{title:p?.title,description:p?.description},classNames:{title:f?.title,description:f?.description},graphTitle:u,graphDescription:b,width:c,graphDownload:V?h.current:void 0,dataDownload:H?o.map(s=>s.data).filter(s=>s!==void 0).length>0?o.map(s=>s.data).filter(s=>s!==void 0):o.filter(s=>s!==void 0):null}):null,i.jsxRuntimeExports.jsx("div",{className:"grow flex flex-col justify-center gap-3 w-full",children:o.length===0?i.jsxRuntimeExports.jsx(Ce.EmptyState,{}):i.jsxRuntimeExports.jsxs(i.jsxRuntimeExports.Fragment,{children:[oe!==!1&&o.filter(s=>s.color).length!==0?i.jsxRuntimeExports.jsx(we.ColorLegendWithMouseOver,{width:c,colorLegendTitle:F,colors:C||le.Colors[v].categoricalColors.colors,colorDomain:I||ce.uniqBy(o.filter(s=>s.color),"color").map(s=>s.color),setSelectedColor:t,showNAColor:X}):null,i.jsxRuntimeExports.jsx("div",{className:"flex flex-col grow justify-center w-full leading-0",ref:e,"aria-label":"Graph area",children:(c||M)&&(R||r)?i.jsxRuntimeExports.jsx(Se,{data:o,circleColors:o.filter(s=>s.color).length===0?C?[C]:[le.Colors.primaryColors["blue-600"]]:C||le.Colors[v].categoricalColors.colors,colorDomain:o.filter(s=>s.color).length===0?[]:I||ce.uniqBy(o.filter(s=>s.color),"color").map(s=>s.color),width:c||M,selectedColor:T,height:Math.max(E,R||(n?E?(c||M)*n>E?(c||M)*n:E:(c||M)*n:r)),showTicks:G,leftMargin:B,rightMargin:U,topMargin:$,bottomMargin:m,showLabels:g,tooltip:Z,onSeriesMouseOver:J,refValues:P,startFromZero:!1,radius:L,maxRadiusValue:N,maxValue:S,minValue:y,highlightedDataPoints:q,onSeriesMouseClick:Q,resetSelectionOnDoubleClick:W,detailsOnClick:Y,styles:p,classNames:f,suffix:z,prefix:ee,noOfTicks:x||5,dimmedOpacity:d,precision:_,customLayers:te}):null})]})}),ie||se?i.jsxRuntimeExports.jsx(Re.GraphFooter,{styles:{footnote:p?.footnote,source:p?.source},classNames:{footnote:f?.footnote,source:f?.source},sources:ie,footNote:se,width:c}):null]})})})})}function Te(ne){const{data:o,graphTitle:u,backgroundColor:C,topMargin:ie,bottomMargin:b,leftMargin:R,rightMargin:c,showLabels:se,showTicks:I,colors:F,sources:A,graphDescription:j,height:$,width:m,footNote:B,colorDomain:U,colorLegendTitle:g,padding:G,relativeHeight:n,tooltip:Z,onSeriesMouseOver:J,refValues:P,showColorScale:oe,graphID:K,radius:L,maxRadiusValue:N,maxValue:S,minValue:y,highlightedDataPoints:q,onSeriesMouseClick:Q,graphDownload:V,dataDownload:H,language:k,showNAColor:X,minHeight:E,theme:v,ariaLabel:D,resetSelectionOnDoubleClick:W,detailsOnClick:Y,noOfTicks:z,orientation:ee="vertical",styles:p,classNames:f,dimmedOpacity:x,precision:d,customLayers:_}=ne;return ee==="vertical"?i.jsxRuntimeExports.jsx(De,{data:o,graphTitle:u,backgroundColor:C,topMargin:ie,bottomMargin:b,leftMargin:R,rightMargin:c,showLabels:se,showTicks:I,colors:F,sources:A,graphDescription:j,height:$,width:m,footNote:B,colorDomain:U,colorLegendTitle:g,padding:G,relativeHeight:n,tooltip:Z,onSeriesMouseOver:J,refValues:P,showColorScale:oe,graphID:K,radius:L,maxRadiusValue:N,maxValue:S,minValue:y,highlightedDataPoints:q,onSeriesMouseClick:Q,graphDownload:V,dataDownload:H,language:k,showNAColor:X,minHeight:E,theme:v,ariaLabel:D,resetSelectionOnDoubleClick:W,styles:p,detailsOnClick:Y,classNames:f,noOfTicks:z,dimmedOpacity:x,precision:d,customLayers:_}):i.jsxRuntimeExports.jsx(Ne,{data:o,graphTitle:u,backgroundColor:C,topMargin:ie,bottomMargin:b,leftMargin:R,rightMargin:c,showLabels:se,showTicks:I,colors:F,sources:A,graphDescription:j,height:$,width:m,footNote:B,colorDomain:U,colorLegendTitle:g,padding:G,relativeHeight:n,tooltip:Z,onSeriesMouseOver:J,refValues:P,showColorScale:oe,graphID:K,radius:L,maxRadiusValue:N,maxValue:S,minValue:y,highlightedDataPoints:q,onSeriesMouseClick:Q,graphDownload:V,dataDownload:H,language:k,showNAColor:X,minHeight:E,theme:v,ariaLabel:D,resetSelectionOnDoubleClick:W,styles:p,detailsOnClick:Y,classNames:f,noOfTicks:z,dimmedOpacity:x,precision:d,customLayers:_})}exports.BeeSwarmChart=Te;
2
+ //# sourceMappingURL=BeeSwarmChart.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BeeSwarmChart.cjs","sources":["../src/Components/Graphs/BeeSwarmChart/Horizontal/Graph.tsx","../src/Components/Graphs/BeeSwarmChart/Horizontal/index.tsx","../src/Components/Graphs/BeeSwarmChart/Vertical/Graph.tsx","../src/Components/Graphs/BeeSwarmChart/Vertical/index.tsx","../src/Components/Graphs/BeeSwarmChart/index.tsx"],"sourcesContent":["import isEqual from 'fast-deep-equal';\r\nimport { scaleLinear, scaleSqrt } from 'd3-scale';\r\nimport { forceCollide, forceManyBody, forceSimulation, forceX, forceY } from 'd3-force';\r\nimport { useEffect, useRef, useState } from 'react';\r\nimport orderBy from 'lodash.orderby';\r\nimport { Modal } from '@undp/design-system-react/Modal';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\n\r\nimport {\r\n BeeSwarmChartDataType,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n ReferenceDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { getTextColorBasedOnBgColor } from '@/Utils/getTextColorBasedOnBgColor';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { string2HTML } from '@/Utils/string2HTML';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { XTicksAndGridLines } from '@/Components/Elements/Axes/XTicksAndGridLines';\r\nimport { RefLineX } from '@/Components/Elements/ReferenceLine';\r\n\r\ninterface BeeSwarmChartDataTypeForBubbleChart extends BeeSwarmChartDataType {\r\n x: number;\r\n y: number;\r\n vx: number;\r\n vy: number;\r\n}\r\n\r\ninterface Props {\r\n data: BeeSwarmChartDataType[];\r\n circleColors: string[];\r\n colorDomain: string[];\r\n showTicks: boolean;\r\n leftMargin: number;\r\n rightMargin: number;\r\n topMargin: number;\r\n bottomMargin: number;\r\n showLabels: boolean;\r\n width: number;\r\n suffix: string;\r\n prefix: string;\r\n height: number;\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 refValues?: ReferenceDataType[];\r\n selectedColor?: string;\r\n startFromZero: boolean;\r\n radius: number;\r\n maxRadiusValue?: number;\r\n maxValue?: number;\r\n minValue?: number;\r\n highlightedDataPoints: (string | number)[];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n rtl: boolean;\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 noOfTicks: number;\r\n dimmedOpacity: number;\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n}\r\n\r\nexport function Graph(props: Props) {\r\n const {\r\n data,\r\n circleColors,\r\n showTicks,\r\n leftMargin,\r\n width,\r\n height,\r\n colorDomain,\r\n rightMargin,\r\n topMargin,\r\n bottomMargin,\r\n showLabels,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n selectedColor,\r\n startFromZero,\r\n radius,\r\n maxRadiusValue,\r\n maxValue,\r\n minValue,\r\n highlightedDataPoints,\r\n onSeriesMouseClick,\r\n rtl,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n suffix,\r\n prefix,\r\n styles,\r\n classNames,\r\n noOfTicks,\r\n dimmedOpacity,\r\n precision,\r\n customLayers,\r\n } = props;\r\n const svgRef = useRef(null);\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 [finalData, setFinalData] = useState<BeeSwarmChartDataTypeForBubbleChart[] | null>(null);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\r\n };\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataOrdered =\r\n data.filter(d => !checkIfNullOrUndefined(d.radius)).length === 0\r\n ? data\r\n : orderBy(\r\n data.filter(d => !checkIfNullOrUndefined(d.radius)),\r\n 'radius',\r\n 'desc',\r\n );\r\n const xMaxValue = !checkIfNullOrUndefined(maxValue)\r\n ? (maxValue as number)\r\n : Math.max(...data.filter(d => !checkIfNullOrUndefined(d.position)).map(d => d.position)) < 0 &&\r\n !startFromZero\r\n ? 0\r\n : Math.max(...data.filter(d => !checkIfNullOrUndefined(d.position)).map(d => d.position));\r\n const xMinValue = !checkIfNullOrUndefined(minValue)\r\n ? (minValue as number)\r\n : Math.min(...data.filter(d => !checkIfNullOrUndefined(d.position)).map(d => d.position)) >=\r\n 0 && !startFromZero\r\n ? 0\r\n : Math.min(...data.filter(d => !checkIfNullOrUndefined(d.position)).map(d => d.position));\r\n\r\n const radiusScale =\r\n data.filter(d => d.radius === undefined || d.radius === 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.radius).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 const x = scaleLinear().domain([xMinValue, xMaxValue]).range([0, graphWidth]).nice();\r\n const xTicks = x.ticks(noOfTicks);\r\n\r\n useEffect(() => {\r\n setFinalData(null);\r\n const dataTemp = (dataOrdered as BeeSwarmChartDataType[]).filter(d => d.position);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n forceSimulation(dataTemp as any)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .force('x', forceX((d: any) => x(d.position as number)).strength(5))\r\n .force('y', forceY(_d => graphHeight / 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.radius || 0) + 1 : radius + 1)),\r\n )\r\n .force('charge', forceManyBody().strength(-15))\r\n .alphaDecay(0.05)\r\n .tick(10000)\r\n .on('tick', () => {\r\n setFinalData(dataTemp as BeeSwarmChartDataTypeForBubbleChart[]);\r\n })\r\n .on('end', () => {\r\n setFinalData(dataTemp as BeeSwarmChartDataTypeForBubbleChart[]);\r\n });\r\n }, [data, radius, graphHeight, graphWidth, xMinValue, xMaxValue, dataOrdered, x, radiusScale]);\r\n\r\n return (\r\n <>\r\n {finalData ? (\r\n <svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {showTicks ? (\r\n <>\r\n <Axis\r\n x1={x(xMinValue < 0 ? 0 : xMinValue)}\r\n x2={x(xMinValue < 0 ? 0 : xMinValue)}\r\n y1={0 - margin.top}\r\n y2={graphHeight + margin.bottom}\r\n label={numberFormattingFunction(\r\n xMinValue < 0 ? 0 : xMinValue,\r\n 'NA',\r\n precision,\r\n prefix,\r\n suffix,\r\n )}\r\n labelPos={{\r\n x: x(xMinValue < 0 ? 0 : xMinValue),\r\n y: 0 - topMargin,\r\n dy: '0.75em',\r\n dx: 3,\r\n }}\r\n classNames={{\r\n axis: classNames?.xAxis?.axis,\r\n label: classNames?.yAxis?.labels,\r\n }}\r\n styles={{\r\n axis: styles?.xAxis?.axis,\r\n label: styles?.yAxis?.labels,\r\n }}\r\n />\r\n <XTicksAndGridLines\r\n values={xTicks.filter(d => d !== 0)}\r\n x={xTicks.filter(d => d !== 0).map(d => x(d))}\r\n y1={0 - topMargin}\r\n y2={graphHeight + margin.bottom}\r\n styles={{\r\n gridLines: styles?.xAxis?.gridLines,\r\n labels: styles?.xAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.xAxis?.gridLines,\r\n labels: classNames?.xAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n precision={precision}\r\n />\r\n </>\r\n ) : null}\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n {finalData.map(d => (\r\n <g\r\n className='undp-viz-g-with-hover'\r\n key={d.label}\r\n transform={`translate(${d.x},${d.y})`}\r\n opacity={\r\n selectedColor\r\n ? d.color\r\n ? circleColors[colorDomain.indexOf(d.color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedDataPoints.length !== 0\r\n ? highlightedDataPoints.indexOf(d.label) !== -1\r\n ? 0.85\r\n : dimmedOpacity\r\n : 0.85\r\n }\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n >\r\n <circle\r\n cx={0}\r\n cy={0}\r\n fill={\r\n data.filter(el => el.color).length === 0\r\n ? circleColors[0]\r\n : !d.color\r\n ? Colors.gray\r\n : circleColors[colorDomain.indexOf(d.color)]\r\n }\r\n radius={radiusScale ? radiusScale(d.radius || 0) : radius}\r\n />\r\n {(radiusScale ? radiusScale(d.radius || 0) : radius) > 10 && showLabels ? (\r\n <g>\r\n <foreignObject\r\n y={0 - (radiusScale ? radiusScale(d.radius || 0) : radius)}\r\n x={0 - (radiusScale ? radiusScale(d.radius || 0) : radius)}\r\n width={2 * (radiusScale ? radiusScale(d.radius || 0) : radius)}\r\n height={2 * (radiusScale ? radiusScale(d.radius || 0) : radius)}\r\n >\r\n <div className='flex flex-col gap-0.5 justify-center items-center h-inherit py-0 px-1.5'>\r\n {showLabels ? (\r\n <p\r\n className={cn(\r\n 'text-center leading-none m-0',\r\n classNames?.graphObjectValues,\r\n )}\r\n style={{\r\n fontSize: `${Math.min(\r\n Math.max(\r\n Math.round(\r\n (radiusScale ? radiusScale(d.radius || 0) : radius) / 4,\r\n ),\r\n 10,\r\n ),\r\n Math.max(\r\n Math.round(\r\n ((radiusScale ? radiusScale(d.radius || 0) : radius) * 12) /\r\n `${d.label}`.length,\r\n ),\r\n 10,\r\n ),\r\n 20,\r\n )}px`,\r\n color: getTextColorBasedOnBgColor(\r\n data.filter(el => el.color).length === 0\r\n ? circleColors[0]\r\n : !d.color\r\n ? Colors.gray\r\n : circleColors[colorDomain.indexOf(d.color)],\r\n ),\r\n hyphens: 'auto',\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n >\r\n {d.label}\r\n </p>\r\n ) : null}\r\n </div>\r\n </foreignObject>\r\n </g>\r\n ) : null}\r\n </g>\r\n ))}\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineX\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n x={x(el.value as number)}\r\n y1={0 - margin.top}\r\n y2={graphHeight + margin.bottom}\r\n textSide={x(el.value as number) > graphWidth * 0.75 || rtl ? 'left' : 'right'}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n isInView={true}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </svg>\r\n ) : (\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 {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <Modal\r\n open={mouseClickData !== undefined}\r\n onClose={() => {\r\n setMouseClickData(undefined);\r\n }}\r\n >\r\n <div\r\n className='graph-modal-content m-0'\r\n dangerouslySetInnerHTML={\r\n typeof detailsOnClick === 'string'\r\n ? { __html: string2HTML(detailsOnClick, mouseClickData) }\r\n : undefined\r\n }\r\n >\r\n {typeof detailsOnClick === 'function' ? detailsOnClick(mouseClickData) : null}\r\n </div>\r\n </Modal>\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import uniqBy from 'lodash.uniqby';\r\nimport { useState, useRef, useEffect } from 'react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\n\r\nimport { Graph } from './Graph';\r\n\r\nimport {\r\n BeeSwarmChartDataType,\r\n Languages,\r\n ReferenceDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n CustomLayerDataType,\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\n\r\ninterface Props {\r\n data: BeeSwarmChartDataType[];\r\n colors?: string | string[];\r\n graphTitle?: string | React.ReactNode;\r\n graphDescription?: string | React.ReactNode;\r\n footNote?: string | React.ReactNode;\r\n width?: number;\r\n height?: number;\r\n sources?: SourcesDataType[];\r\n showTicks?: boolean;\r\n leftMargin?: number;\r\n rightMargin?: number;\r\n colorDomain?: string[];\r\n colorLegendTitle?: string;\r\n backgroundColor?: string | boolean;\r\n padding?: string;\r\n topMargin?: number;\r\n bottomMargin?: number;\r\n relativeHeight?: number;\r\n showLabels?: boolean;\r\n showColorScale?: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n graphID?: string;\r\n radius?: number;\r\n maxRadiusValue?: number;\r\n maxValue?: number;\r\n minValue?: number;\r\n highlightedDataPoints?: (string | number)[];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n graphDownload?: boolean;\r\n dataDownload?: boolean;\r\n language?: Languages;\r\n showNAColor?: boolean;\r\n minHeight?: number;\r\n theme?: 'light' | 'dark';\r\n ariaLabel?: string;\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 suffix?: string;\r\n prefix?: string;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n noOfTicks?: number;\r\n dimmedOpacity?: number;\r\n precision?: number;\r\n customLayers?: CustomLayerDataType[];\r\n}\r\n\r\nexport function HorizontalBeeSwarmChart(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n backgroundColor = false,\r\n topMargin = 25,\r\n bottomMargin = 10,\r\n leftMargin = 10,\r\n rightMargin = 10,\r\n showLabels = true,\r\n showTicks = true,\r\n colors,\r\n sources,\r\n graphDescription,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n padding,\r\n relativeHeight,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n showColorScale,\r\n graphID,\r\n radius = 5,\r\n maxRadiusValue,\r\n maxValue,\r\n minValue,\r\n highlightedDataPoints = [],\r\n onSeriesMouseClick,\r\n graphDownload = false,\r\n dataDownload = false,\r\n language = 'en',\r\n showNAColor = true,\r\n minHeight = 0,\r\n theme = 'light',\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n suffix = '',\r\n prefix = '',\r\n styles,\r\n classNames,\r\n noOfTicks,\r\n dimmedOpacity = 0.3,\r\n precision = 2,\r\n customLayers = [],\r\n } = props;\r\n\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [selectedColor, setSelectedColor] = useState<string | undefined>(undefined);\r\n\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(width || entries[0].target.clientWidth || 620);\r\n setSvgHeight(height || entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n setSvgHeight(graphDiv.current.clientHeight || 480);\r\n setSvgWidth(graphDiv.current.clientWidth || 620);\r\n if (!width) resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, [width, height]);\r\n\r\n return (\r\n <div\r\n className={`${theme || 'light'} flex ${width ? 'w-fit grow-0' : 'w-full grow'}`}\r\n dir={language === 'he' || language === 'ar' ? 'rtl' : undefined}\r\n >\r\n <div\r\n className={cn(\r\n `${\r\n !backgroundColor\r\n ? 'bg-transparent '\r\n : backgroundColor === true\r\n ? 'bg-primary-gray-200 dark:bg-primary-gray-650 '\r\n : ''\r\n }ml-auto mr-auto flex flex-col grow h-inherit ${language || 'en'}`,\r\n classNames?.graphContainer,\r\n )}\r\n style={{\r\n ...(styles?.graphContainer || {}),\r\n ...(backgroundColor && backgroundColor !== true ? { backgroundColor } : {}),\r\n }}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={\r\n ariaLabel ||\r\n `${\r\n graphTitle ? `The graph shows ${graphTitle}. ` : ''\r\n }This is a bee swarm chart showing the distribution along the x-axes. ${\r\n graphDescription ? ` ${graphDescription}` : ''\r\n }`\r\n }\r\n >\r\n <div\r\n className='flex grow'\r\n style={{ padding: backgroundColor ? padding || '1rem' : padding || 0 }}\r\n >\r\n <div className='flex flex-col w-full gap-4 grow justify-between'>\r\n {graphTitle || graphDescription || graphDownload || dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n graphDownload={graphDownload ? graphParentDiv.current : undefined}\r\n dataDownload={\r\n dataDownload\r\n ? data.map(d => d.data).filter(d => d !== undefined).length > 0\r\n ? data.map(d => d.data).filter(d => d !== undefined)\r\n : data.filter(d => d !== undefined)\r\n : null\r\n }\r\n />\r\n ) : null}\r\n <div className='grow flex flex-col justify-center gap-3 w-full'>\r\n {data.length === 0 ? (\r\n <EmptyState />\r\n ) : (\r\n <>\r\n {showColorScale !== false && data.filter(el => el.color).length !== 0 ? (\r\n <ColorLegendWithMouseOver\r\n width={width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={\r\n (colors as string[] | undefined) || Colors[theme].categoricalColors.colors\r\n }\r\n colorDomain={\r\n colorDomain ||\r\n (uniqBy(\r\n data.filter(el => el.color),\r\n 'color',\r\n ).map(d => d.color) as string[])\r\n }\r\n setSelectedColor={setSelectedColor}\r\n showNAColor={\r\n showNAColor === undefined || showNAColor === null ? true : showNAColor\r\n }\r\n />\r\n ) : null}\r\n <div\r\n className='flex flex-col grow justify-center w-full leading-0'\r\n ref={graphDiv}\r\n aria-label='Graph area'\r\n >\r\n {(width || svgWidth) && (height || svgHeight) ? (\r\n <Graph\r\n data={data}\r\n circleColors={\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) ||\r\n Colors[theme].categoricalColors.colors\r\n }\r\n colorDomain={\r\n data.filter(el => el.color).length === 0\r\n ? []\r\n : colorDomain ||\r\n (uniqBy(\r\n data.filter(el => el.color),\r\n 'color',\r\n ).map(d => d.color) as string[])\r\n }\r\n width={width || svgWidth}\r\n selectedColor={selectedColor}\r\n height={Math.max(\r\n minHeight,\r\n height ||\r\n (relativeHeight\r\n ? minHeight\r\n ? (width || svgWidth) * relativeHeight > minHeight\r\n ? (width || svgWidth) * relativeHeight\r\n : minHeight\r\n : (width || svgWidth) * relativeHeight\r\n : svgHeight),\r\n )}\r\n showTicks={showTicks}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n showLabels={showLabels}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n refValues={refValues}\r\n startFromZero={false}\r\n radius={radius}\r\n maxRadiusValue={maxRadiusValue}\r\n maxValue={maxValue}\r\n minValue={minValue}\r\n highlightedDataPoints={highlightedDataPoints}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n rtl={language === 'he' || language === 'ar'}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n suffix={suffix}\r\n prefix={prefix}\r\n styles={styles}\r\n classNames={classNames}\r\n noOfTicks={noOfTicks || 5}\r\n dimmedOpacity={dimmedOpacity}\r\n precision={precision}\r\n customLayers={customLayers}\r\n />\r\n ) : null}\r\n </div>\r\n </>\r\n )}\r\n </div>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import isEqual from 'fast-deep-equal';\r\nimport { scaleLinear, scaleSqrt } from 'd3-scale';\r\nimport { forceCollide, forceManyBody, forceSimulation, forceX, forceY } from 'd3-force';\r\nimport { useEffect, useRef, useState } from 'react';\r\nimport orderBy from 'lodash.orderby';\r\nimport { Modal } from '@undp/design-system-react/Modal';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\n\r\nimport {\r\n BeeSwarmChartDataType,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n ReferenceDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { checkIfNullOrUndefined } from '@/Utils/checkIfNullOrUndefined';\r\nimport { getTextColorBasedOnBgColor } from '@/Utils/getTextColorBasedOnBgColor';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { string2HTML } from '@/Utils/string2HTML';\r\nimport { Axis } from '@/Components/Elements/Axes/Axis';\r\nimport { RefLineY } from '@/Components/Elements/ReferenceLine';\r\nimport { YTicksAndGridLines } from '@/Components/Elements/Axes/YTicksAndGridLines';\r\n\r\ninterface BeeSwarmChartDataTypeForBubbleChart extends BeeSwarmChartDataType {\r\n x: number;\r\n y: number;\r\n vx: number;\r\n vy: number;\r\n}\r\n\r\ninterface Props {\r\n data: BeeSwarmChartDataType[];\r\n circleColors: string[];\r\n colorDomain: string[];\r\n showTicks: boolean;\r\n leftMargin: number;\r\n rightMargin: number;\r\n topMargin: number;\r\n bottomMargin: number;\r\n showLabels: boolean;\r\n width: number;\r\n height: number;\r\n suffix: string;\r\n prefix: 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 refValues?: ReferenceDataType[];\r\n selectedColor?: string;\r\n startFromZero: boolean;\r\n radius: number;\r\n maxRadiusValue?: number;\r\n maxValue?: number;\r\n minValue?: number;\r\n highlightedDataPoints: (string | number)[];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\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 noOfTicks: number;\r\n dimmedOpacity: number;\r\n precision: number;\r\n customLayers: CustomLayerDataType[];\r\n}\r\n\r\nexport function Graph(props: Props) {\r\n const {\r\n data,\r\n circleColors,\r\n showTicks,\r\n leftMargin,\r\n width,\r\n height,\r\n colorDomain,\r\n rightMargin,\r\n topMargin,\r\n bottomMargin,\r\n suffix,\r\n prefix,\r\n showLabels,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n selectedColor,\r\n startFromZero,\r\n radius,\r\n maxRadiusValue,\r\n maxValue,\r\n minValue,\r\n highlightedDataPoints,\r\n onSeriesMouseClick,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n styles,\r\n classNames,\r\n noOfTicks,\r\n dimmedOpacity,\r\n precision,\r\n customLayers,\r\n } = props;\r\n const svgRef = useRef(null);\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 [finalData, setFinalData] = useState<BeeSwarmChartDataTypeForBubbleChart[] | null>(null);\r\n const [eventX, setEventX] = useState<number | undefined>(undefined);\r\n const [eventY, setEventY] = useState<number | undefined>(undefined);\r\n const margin = {\r\n top: topMargin,\r\n bottom: bottomMargin,\r\n left: leftMargin,\r\n right: rightMargin,\r\n };\r\n const graphWidth = width - margin.left - margin.right;\r\n const graphHeight = height - margin.top - margin.bottom;\r\n\r\n const dataOrdered =\r\n data.filter(d => !checkIfNullOrUndefined(d.radius)).length === 0\r\n ? data\r\n : orderBy(\r\n data.filter(d => !checkIfNullOrUndefined(d.radius)),\r\n 'radius',\r\n 'desc',\r\n );\r\n const yMaxValue = !checkIfNullOrUndefined(maxValue)\r\n ? (maxValue as number)\r\n : Math.max(...data.filter(d => !checkIfNullOrUndefined(d.position)).map(d => d.position)) < 0 &&\r\n !startFromZero\r\n ? 0\r\n : Math.max(...data.filter(d => !checkIfNullOrUndefined(d.position)).map(d => d.position));\r\n const yMinValue = !checkIfNullOrUndefined(minValue)\r\n ? (minValue as number)\r\n : Math.min(...data.filter(d => !checkIfNullOrUndefined(d.position)).map(d => d.position)) >=\r\n 0 && !startFromZero\r\n ? 0\r\n : Math.min(...data.filter(d => !checkIfNullOrUndefined(d.position)).map(d => d.position));\r\n\r\n const radiusScale =\r\n data.filter(d => d.radius === undefined || d.radius === 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.radius).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 const y = scaleLinear().domain([yMinValue, yMaxValue]).range([graphHeight, 0]).nice();\r\n const yTicks = y.ticks(noOfTicks);\r\n\r\n useEffect(() => {\r\n setFinalData(null);\r\n const dataTemp = (dataOrdered as BeeSwarmChartDataType[]).filter(d => d.position);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n forceSimulation(dataTemp as any)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .force('y', forceY((d: any) => y(d.position as number)).strength(5))\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.radius || 0) + 1 : radius + 1)),\r\n )\r\n .force('charge', forceManyBody().strength(-15))\r\n .alphaDecay(0.05)\r\n .tick(10000)\r\n .on('tick', () => {\r\n setFinalData(dataTemp as BeeSwarmChartDataTypeForBubbleChart[]);\r\n })\r\n .on('end', () => {\r\n setFinalData(dataTemp as BeeSwarmChartDataTypeForBubbleChart[]);\r\n });\r\n }, [data, radius, graphHeight, graphWidth, yMinValue, yMaxValue, dataOrdered, y, radiusScale]);\r\n\r\n return (\r\n <>\r\n {finalData ? (\r\n <svg\r\n width={`${width}px`}\r\n height={`${height}px`}\r\n viewBox={`0 0 ${width} ${height}`}\r\n direction='ltr'\r\n ref={svgRef}\r\n >\r\n <g transform={`translate(${margin.left},${margin.top})`}>\r\n {showTicks ? (\r\n <>\r\n <Axis\r\n y1={y(yMinValue < 0 ? 0 : yMinValue)}\r\n y2={y(yMinValue < 0 ? 0 : yMinValue)}\r\n x1={0 - margin.left}\r\n x2={graphWidth + margin.right}\r\n label={numberFormattingFunction(\r\n yMinValue < 0 ? 0 : yMinValue,\r\n 'NA',\r\n precision,\r\n prefix,\r\n suffix,\r\n )}\r\n labelPos={{\r\n x: 0 - margin.left,\r\n y: y(yMinValue < 0 ? 0 : yMinValue),\r\n dx: 0,\r\n dy: yMaxValue < 0 ? '1em' : -5,\r\n }}\r\n classNames={{\r\n axis: classNames?.xAxis?.axis,\r\n label: classNames?.yAxis?.labels,\r\n }}\r\n styles={{\r\n axis: styles?.xAxis?.axis,\r\n label: styles?.yAxis?.labels,\r\n }}\r\n />\r\n <YTicksAndGridLines\r\n values={yTicks.filter(d => d !== 0)}\r\n y={yTicks.filter(d => d !== 0).map(d => y(d))}\r\n x1={0 - margin.left}\r\n x2={graphWidth + margin.right}\r\n styles={{\r\n gridLines: styles?.yAxis?.gridLines,\r\n labels: styles?.yAxis?.labels,\r\n }}\r\n classNames={{\r\n gridLines: classNames?.yAxis?.gridLines,\r\n labels: classNames?.yAxis?.labels,\r\n }}\r\n suffix={suffix}\r\n prefix={prefix}\r\n labelType='secondary'\r\n showGridLines\r\n labelPos='vertical'\r\n precision={precision}\r\n />\r\n </>\r\n ) : null}\r\n {customLayers.filter(d => d.position === 'before').map(d => d.layer)}\r\n {finalData.map(d => (\r\n <g\r\n className='undp-viz-g-with-hover'\r\n key={d.label}\r\n transform={`translate(${d.x},${d.y})`}\r\n opacity={\r\n selectedColor\r\n ? d.color\r\n ? circleColors[colorDomain.indexOf(d.color)] === selectedColor\r\n ? 1\r\n : dimmedOpacity\r\n : dimmedOpacity\r\n : highlightedDataPoints.length !== 0\r\n ? highlightedDataPoints.indexOf(d.label) !== -1\r\n ? 0.85\r\n : dimmedOpacity\r\n : 0.85\r\n }\r\n onMouseEnter={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n onSeriesMouseOver?.(d);\r\n }}\r\n onMouseMove={event => {\r\n setMouseOverData(d);\r\n setEventY(event.clientY);\r\n setEventX(event.clientX);\r\n }}\r\n onClick={() => {\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (isEqual(mouseClickData, d) && resetSelectionOnDoubleClick) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(d);\r\n onSeriesMouseClick?.(d);\r\n }\r\n }\r\n }}\r\n onMouseLeave={() => {\r\n setMouseOverData(undefined);\r\n setEventX(undefined);\r\n setEventY(undefined);\r\n onSeriesMouseOver?.(undefined);\r\n }}\r\n >\r\n <circle\r\n cx={0}\r\n cy={0}\r\n r={radiusScale ? radiusScale(d.radius || 0) : radius}\r\n fill={\r\n data.filter(el => el.color).length === 0\r\n ? circleColors[0]\r\n : !d.color\r\n ? Colors.gray\r\n : circleColors[colorDomain.indexOf(d.color)]\r\n }\r\n />\r\n {(radiusScale ? radiusScale(d.radius || 0) : radius) > 10 && showLabels ? (\r\n <g>\r\n <foreignObject\r\n y={0 - (radiusScale ? radiusScale(d.radius || 0) : radius)}\r\n x={0 - (radiusScale ? radiusScale(d.radius || 0) : radius)}\r\n width={2 * (radiusScale ? radiusScale(d.radius || 0) : radius)}\r\n height={2 * (radiusScale ? radiusScale(d.radius || 0) : radius)}\r\n >\r\n <div className='flex flex-col justify-center items-center h-inherit py-0 px-1.5'>\r\n {showLabels ? (\r\n <p\r\n className={cn(\r\n 'text-center leading-none m-0',\r\n classNames?.graphObjectValues,\r\n )}\r\n style={{\r\n fontSize: `${Math.min(\r\n Math.max(\r\n Math.round(\r\n (radiusScale ? radiusScale(d.radius || 0) : radius) / 4,\r\n ),\r\n 10,\r\n ),\r\n Math.max(\r\n Math.round(\r\n ((radiusScale ? radiusScale(d.radius || 0) : radius) * 12) /\r\n `${d.label}`.length,\r\n ),\r\n 10,\r\n ),\r\n 20,\r\n )}px`,\r\n hyphens: 'auto',\r\n color: getTextColorBasedOnBgColor(\r\n data.filter(el => el.color).length === 0\r\n ? circleColors[0]\r\n : !d.color\r\n ? Colors.gray\r\n : circleColors[colorDomain.indexOf(d.color)],\r\n ),\r\n ...(styles?.graphObjectValues || {}),\r\n }}\r\n >\r\n {d.label}\r\n </p>\r\n ) : null}\r\n </div>\r\n </foreignObject>\r\n </g>\r\n ) : null}\r\n </g>\r\n ))}\r\n {refValues ? (\r\n <>\r\n {refValues.map((el, i) => (\r\n <RefLineY\r\n key={i}\r\n text={el.text}\r\n color={el.color}\r\n y={y(el.value as number)}\r\n x1={0 - margin.left}\r\n x2={graphWidth + margin.right}\r\n classNames={el.classNames}\r\n styles={el.styles}\r\n isInView={true}\r\n />\r\n ))}\r\n </>\r\n ) : null}\r\n {customLayers.filter(d => d.position === 'after').map(d => d.layer)}\r\n </g>\r\n </svg>\r\n ) : (\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 {mouseOverData && tooltip && eventX && eventY ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={eventX}\r\n yPos={eventY}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <Modal\r\n open={mouseClickData !== undefined}\r\n onClose={() => {\r\n setMouseClickData(undefined);\r\n }}\r\n >\r\n <div\r\n className='graph-modal-content m-0'\r\n dangerouslySetInnerHTML={\r\n typeof detailsOnClick === 'string'\r\n ? { __html: string2HTML(detailsOnClick, mouseClickData) }\r\n : undefined\r\n }\r\n >\r\n {typeof detailsOnClick === 'function' ? detailsOnClick(mouseClickData) : null}\r\n </div>\r\n </Modal>\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import uniqBy from 'lodash.uniqby';\r\nimport { useState, useRef, useEffect } from 'react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\n\r\nimport { Graph } from './Graph';\r\n\r\nimport {\r\n BeeSwarmChartDataType,\r\n Languages,\r\n ReferenceDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n CustomLayerDataType,\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\n\r\ninterface Props {\r\n data: BeeSwarmChartDataType[];\r\n colors?: string | string[];\r\n graphTitle?: string | React.ReactNode;\r\n graphDescription?: string | React.ReactNode;\r\n footNote?: string | React.ReactNode;\r\n width?: number;\r\n height?: number;\r\n suffix?: string;\r\n prefix?: string;\r\n sources?: SourcesDataType[];\r\n showTicks?: boolean;\r\n leftMargin?: number;\r\n rightMargin?: number;\r\n colorDomain?: string[];\r\n colorLegendTitle?: string;\r\n backgroundColor?: string | boolean;\r\n padding?: string;\r\n topMargin?: number;\r\n bottomMargin?: number;\r\n relativeHeight?: number;\r\n showLabels?: boolean;\r\n showColorScale?: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n refValues?: ReferenceDataType[];\r\n graphID?: string;\r\n radius?: number;\r\n maxRadiusValue?: number;\r\n maxValue?: number;\r\n minValue?: number;\r\n highlightedDataPoints?: (string | number)[];\r\n dimmedOpacity?: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n graphDownload?: boolean;\r\n dataDownload?: boolean;\r\n language?: Languages;\r\n showNAColor?: boolean;\r\n minHeight?: number;\r\n theme?: 'light' | 'dark';\r\n ariaLabel?: string;\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 noOfTicks?: number;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n precision?: number;\r\n customLayers?: CustomLayerDataType[];\r\n}\r\n\r\nexport function VerticalBeeSwarmChart(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n colors,\r\n sources,\r\n graphDescription,\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 = 25,\r\n bottomMargin = 10,\r\n leftMargin = 100,\r\n rightMargin = 40,\r\n showLabels = true,\r\n showTicks = true,\r\n relativeHeight,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n showColorScale,\r\n graphID,\r\n radius = 5,\r\n maxRadiusValue,\r\n maxValue,\r\n minValue,\r\n highlightedDataPoints = [],\r\n onSeriesMouseClick,\r\n graphDownload = false,\r\n dataDownload = false,\r\n language = 'en',\r\n showNAColor = true,\r\n minHeight = 0,\r\n theme = 'light',\r\n ariaLabel,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n suffix = '',\r\n prefix = '',\r\n styles,\r\n classNames,\r\n noOfTicks,\r\n dimmedOpacity = 0.3,\r\n precision = 2,\r\n customLayers = [],\r\n } = props;\r\n\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [selectedColor, setSelectedColor] = useState<string | undefined>(undefined);\r\n\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(width || entries[0].target.clientWidth || 620);\r\n setSvgHeight(height || entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n setSvgHeight(graphDiv.current.clientHeight || 480);\r\n setSvgWidth(graphDiv.current.clientWidth || 620);\r\n if (!width) resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, [width, height]);\r\n\r\n return (\r\n <div\r\n className={`${theme || 'light'} flex ${width ? 'w-fit grow-0' : 'w-full grow'}`}\r\n dir={language === 'he' || language === 'ar' ? 'rtl' : undefined}\r\n >\r\n <div\r\n className={cn(\r\n `${\r\n !backgroundColor\r\n ? 'bg-transparent '\r\n : backgroundColor === true\r\n ? 'bg-primary-gray-200 dark:bg-primary-gray-650 '\r\n : ''\r\n }ml-auto mr-auto flex flex-col grow h-inherit ${language || 'en'}`,\r\n classNames?.graphContainer,\r\n )}\r\n style={{\r\n ...(styles?.graphContainer || {}),\r\n ...(backgroundColor && backgroundColor !== true ? { backgroundColor } : {}),\r\n }}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={\r\n ariaLabel ||\r\n `${\r\n graphTitle ? `The graph shows ${graphTitle}. ` : ''\r\n }This is a bee swarm chart showing the distribution along the y-axes. ${\r\n graphDescription ? ` ${graphDescription}` : ''\r\n }`\r\n }\r\n >\r\n <div\r\n className='flex grow'\r\n style={{ padding: backgroundColor ? padding || '1rem' : padding || 0 }}\r\n >\r\n <div className='flex flex-col w-full gap-4 grow justify-between'>\r\n {graphTitle || graphDescription || graphDownload || dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n graphDownload={graphDownload ? graphParentDiv.current : undefined}\r\n dataDownload={\r\n dataDownload\r\n ? data.map(d => d.data).filter(d => d !== undefined).length > 0\r\n ? data.map(d => d.data).filter(d => d !== undefined)\r\n : data.filter(d => d !== undefined)\r\n : null\r\n }\r\n />\r\n ) : null}\r\n <div className='grow flex flex-col justify-center gap-3 w-full'>\r\n {data.length === 0 ? (\r\n <EmptyState />\r\n ) : (\r\n <>\r\n {showColorScale !== false && data.filter(el => el.color).length !== 0 ? (\r\n <ColorLegendWithMouseOver\r\n width={width}\r\n colorLegendTitle={colorLegendTitle}\r\n colors={\r\n (colors as string[] | undefined) || Colors[theme].categoricalColors.colors\r\n }\r\n colorDomain={\r\n colorDomain ||\r\n (uniqBy(\r\n data.filter(el => el.color),\r\n 'color',\r\n ).map(d => d.color) as string[])\r\n }\r\n setSelectedColor={setSelectedColor}\r\n showNAColor={showNAColor}\r\n />\r\n ) : null}\r\n <div\r\n className='flex flex-col grow justify-center w-full leading-0'\r\n ref={graphDiv}\r\n aria-label='Graph area'\r\n >\r\n {(width || svgWidth) && (height || svgHeight) ? (\r\n <Graph\r\n data={data}\r\n circleColors={\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) ||\r\n Colors[theme].categoricalColors.colors\r\n }\r\n colorDomain={\r\n data.filter(el => el.color).length === 0\r\n ? []\r\n : colorDomain ||\r\n (uniqBy(\r\n data.filter(el => el.color),\r\n 'color',\r\n ).map(d => d.color) as string[])\r\n }\r\n width={width || svgWidth}\r\n selectedColor={selectedColor}\r\n height={Math.max(\r\n minHeight,\r\n height ||\r\n (relativeHeight\r\n ? minHeight\r\n ? (width || svgWidth) * relativeHeight > minHeight\r\n ? (width || svgWidth) * relativeHeight\r\n : minHeight\r\n : (width || svgWidth) * relativeHeight\r\n : svgHeight),\r\n )}\r\n showTicks={showTicks}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n showLabels={showLabels}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n refValues={refValues}\r\n startFromZero={false}\r\n radius={radius}\r\n maxRadiusValue={maxRadiusValue}\r\n maxValue={maxValue}\r\n minValue={minValue}\r\n highlightedDataPoints={highlightedDataPoints}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n styles={styles}\r\n classNames={classNames}\r\n suffix={suffix}\r\n prefix={prefix}\r\n noOfTicks={noOfTicks || 5}\r\n dimmedOpacity={dimmedOpacity}\r\n precision={precision}\r\n customLayers={customLayers}\r\n />\r\n ) : null}\r\n </div>\r\n </>\r\n )}\r\n </div>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import { HorizontalBeeSwarmChart } from './Horizontal';\r\nimport { VerticalBeeSwarmChart } from './Vertical';\r\n\r\nimport {\r\n ReferenceDataType,\r\n SourcesDataType,\r\n Languages,\r\n BeeSwarmChartDataType,\r\n StyleObject,\r\n ClassNameObject,\r\n CustomLayerDataType,\r\n} from '@/Types';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: BeeSwarmChartDataType[];\r\n\r\n /** Orientation of the graph */\r\n orientation?: 'vertical' | 'horizontal';\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 for the radius of the circle */\r\n maxRadiusValue?: number;\r\n /** Minimum value for position of the circle */\r\n minValue?: number;\r\n /** Maximum value for position of the circle */\r\n maxValue?: number;\r\n /** Reference values for comparison */\r\n refValues?: ReferenceDataType[];\r\n /** Number of ticks on the axis */\r\n noOfTicks?: number;\r\n\r\n // Graph Parameters\r\n /** Toggle visibility of labels */\r\n showLabels?: boolean;\r\n /** Toggle visibility of values */\r\n showTicks?: 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 /** Maximum radius of the circles */\r\n radius?: number;\r\n /** Specifies the number of decimal places to display in the value. */\r\n precision?: number;\r\n /** Optional SVG <g> element or function that renders custom content behind or in front of the graph. */\r\n customLayers?: CustomLayerDataType[];\r\n /** Enable graph download option as png */\r\n graphDownload?: boolean;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n /** Reset selection on double-click. Only applicable when used in a dashboard context with filters. */\r\n resetSelectionOnDoubleClick?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. 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 BeeSwarmChart(props: Props) {\r\n const {\r\n data,\r\n graphTitle,\r\n backgroundColor,\r\n topMargin,\r\n bottomMargin,\r\n leftMargin,\r\n rightMargin,\r\n showLabels,\r\n showTicks,\r\n colors,\r\n sources,\r\n graphDescription,\r\n height,\r\n width,\r\n footNote,\r\n colorDomain,\r\n colorLegendTitle,\r\n padding,\r\n relativeHeight,\r\n tooltip,\r\n onSeriesMouseOver,\r\n refValues,\r\n showColorScale,\r\n graphID,\r\n radius,\r\n maxRadiusValue,\r\n maxValue,\r\n minValue,\r\n highlightedDataPoints,\r\n onSeriesMouseClick,\r\n graphDownload,\r\n dataDownload,\r\n language,\r\n showNAColor,\r\n minHeight,\r\n theme,\r\n ariaLabel,\r\n resetSelectionOnDoubleClick,\r\n detailsOnClick,\r\n noOfTicks,\r\n orientation = 'vertical',\r\n styles,\r\n classNames,\r\n dimmedOpacity,\r\n precision,\r\n customLayers,\r\n } = props;\r\n\r\n if (orientation === 'vertical')\r\n return (\r\n <VerticalBeeSwarmChart\r\n data={data}\r\n graphTitle={graphTitle}\r\n backgroundColor={backgroundColor}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n showLabels={showLabels}\r\n showTicks={showTicks}\r\n colors={colors}\r\n sources={sources}\r\n graphDescription={graphDescription}\r\n height={height}\r\n width={width}\r\n footNote={footNote}\r\n colorDomain={colorDomain}\r\n colorLegendTitle={colorLegendTitle}\r\n padding={padding}\r\n relativeHeight={relativeHeight}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n refValues={refValues}\r\n showColorScale={showColorScale}\r\n graphID={graphID}\r\n radius={radius}\r\n maxRadiusValue={maxRadiusValue}\r\n maxValue={maxValue}\r\n minValue={minValue}\r\n highlightedDataPoints={highlightedDataPoints}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n graphDownload={graphDownload}\r\n dataDownload={dataDownload}\r\n language={language}\r\n showNAColor={showNAColor}\r\n minHeight={minHeight}\r\n theme={theme}\r\n ariaLabel={ariaLabel}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n styles={styles}\r\n detailsOnClick={detailsOnClick}\r\n classNames={classNames}\r\n noOfTicks={noOfTicks}\r\n dimmedOpacity={dimmedOpacity}\r\n precision={precision}\r\n customLayers={customLayers}\r\n />\r\n );\r\n return (\r\n <HorizontalBeeSwarmChart\r\n data={data}\r\n graphTitle={graphTitle}\r\n backgroundColor={backgroundColor}\r\n topMargin={topMargin}\r\n bottomMargin={bottomMargin}\r\n leftMargin={leftMargin}\r\n rightMargin={rightMargin}\r\n showLabels={showLabels}\r\n showTicks={showTicks}\r\n colors={colors}\r\n sources={sources}\r\n graphDescription={graphDescription}\r\n height={height}\r\n width={width}\r\n footNote={footNote}\r\n colorDomain={colorDomain}\r\n colorLegendTitle={colorLegendTitle}\r\n padding={padding}\r\n relativeHeight={relativeHeight}\r\n tooltip={tooltip}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n refValues={refValues}\r\n showColorScale={showColorScale}\r\n graphID={graphID}\r\n radius={radius}\r\n maxRadiusValue={maxRadiusValue}\r\n maxValue={maxValue}\r\n minValue={minValue}\r\n highlightedDataPoints={highlightedDataPoints}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n graphDownload={graphDownload}\r\n dataDownload={dataDownload}\r\n language={language}\r\n showNAColor={showNAColor}\r\n minHeight={minHeight}\r\n theme={theme}\r\n ariaLabel={ariaLabel}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n styles={styles}\r\n detailsOnClick={detailsOnClick}\r\n classNames={classNames}\r\n noOfTicks={noOfTicks}\r\n dimmedOpacity={dimmedOpacity}\r\n precision={precision}\r\n customLayers={customLayers}\r\n />\r\n );\r\n}\r\n"],"names":["Graph","props","data","circleColors","showTicks","leftMargin","width","height","colorDomain","rightMargin","topMargin","bottomMargin","showLabels","tooltip","onSeriesMouseOver","refValues","selectedColor","startFromZero","radius","maxRadiusValue","maxValue","minValue","highlightedDataPoints","onSeriesMouseClick","rtl","resetSelectionOnDoubleClick","detailsOnClick","suffix","prefix","styles","classNames","noOfTicks","dimmedOpacity","precision","customLayers","svgRef","useRef","mouseOverData","setMouseOverData","useState","mouseClickData","setMouseClickData","finalData","setFinalData","eventX","setEventX","eventY","setEventY","margin","graphWidth","graphHeight","dataOrdered","d","checkIfNullOrUndefined","orderBy","xMaxValue","xMinValue","radiusScale","scaleSqrt","x","scaleLinear","xTicks","useEffect","dataTemp","forceSimulation","forceX","forceY","_d","forceCollide","forceManyBody","jsxs","Fragment","jsx","Axis","numberFormattingFunction","XTicksAndGridLines","event","isEqual","el","Colors","cn","getTextColorBasedOnBgColor","i","RefLineX","Spinner","Tooltip","Modal","string2HTML","HorizontalBeeSwarmChart","graphTitle","backgroundColor","colors","sources","graphDescription","footNote","colorLegendTitle","padding","relativeHeight","showColorScale","graphID","graphDownload","dataDownload","language","showNAColor","minHeight","theme","ariaLabel","svgWidth","setSvgWidth","svgHeight","setSvgHeight","setSelectedColor","graphDiv","graphParentDiv","resizeObserver","entries","GraphHeader","EmptyState","ColorLegendWithMouseOver","uniqBy","GraphFooter","yMaxValue","yMinValue","y","yTicks","YTicksAndGridLines","RefLineY","VerticalBeeSwarmChart","BeeSwarmChart","orientation"],"mappings":"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"}