@undp/data-viz 2.3.17 → 2.3.19

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 (438) hide show
  1. package/dist/AreaChart.cjs +1 -1
  2. package/dist/AreaChart.cjs.map +1 -1
  3. package/dist/AreaChart.d.ts +2 -0
  4. package/dist/AreaChart.js +356 -354
  5. package/dist/AreaChart.js.map +1 -1
  6. package/dist/{Axis-Jt_tmhxS.cjs → Axis-BTaS9oPQ.cjs} +2 -2
  7. package/dist/{Axis-Jt_tmhxS.cjs.map → Axis-BTaS9oPQ.cjs.map} +1 -1
  8. package/dist/{Axis-RyGdzLrG.js → Axis-CNZYWzH0.js} +2 -2
  9. package/dist/{Axis-RyGdzLrG.js.map → Axis-CNZYWzH0.js.map} +1 -1
  10. package/dist/{AxisTitle-DGjX1_2v.js → AxisTitle-CyLCqpW6.js} +2 -2
  11. package/dist/{AxisTitle-DGjX1_2v.js.map → AxisTitle-CyLCqpW6.js.map} +1 -1
  12. package/dist/{AxisTitle-DV4n0RxE.cjs → AxisTitle-DP_evhbe.cjs} +2 -2
  13. package/dist/{AxisTitle-DV4n0RxE.cjs.map → AxisTitle-DP_evhbe.cjs.map} +1 -1
  14. package/dist/BarGraph.cjs +1 -1
  15. package/dist/BarGraph.cjs.map +1 -1
  16. package/dist/BarGraph.d.ts +6 -0
  17. package/dist/BarGraph.js +1687 -1675
  18. package/dist/BarGraph.js.map +1 -1
  19. package/dist/BasicStatCard.cjs +1 -1
  20. package/dist/BasicStatCard.cjs.map +1 -1
  21. package/dist/BasicStatCard.d.ts +2 -0
  22. package/dist/BasicStatCard.js +46 -45
  23. package/dist/BasicStatCard.js.map +1 -1
  24. package/dist/BeeSwarmChart.cjs +1 -1
  25. package/dist/BeeSwarmChart.cjs.map +1 -1
  26. package/dist/BeeSwarmChart.d.ts +2 -0
  27. package/dist/BeeSwarmChart.js +268 -265
  28. package/dist/BeeSwarmChart.js.map +1 -1
  29. package/dist/BiVariateChoroplethMap.cjs +1 -1
  30. package/dist/BiVariateChoroplethMap.cjs.map +1 -1
  31. package/dist/BiVariateChoroplethMap.d.ts +2 -0
  32. package/dist/BiVariateChoroplethMap.js +300 -298
  33. package/dist/BiVariateChoroplethMap.js.map +1 -1
  34. package/dist/BulletChart.cjs +1 -1
  35. package/dist/BulletChart.cjs.map +1 -1
  36. package/dist/BulletChart.d.ts +2 -0
  37. package/dist/BulletChart.js +526 -523
  38. package/dist/BulletChart.js.map +1 -1
  39. package/dist/ButterflyChart.cjs +1 -1
  40. package/dist/ButterflyChart.cjs.map +1 -1
  41. package/dist/ButterflyChart.d.ts +2 -0
  42. package/dist/ButterflyChart.js +330 -328
  43. package/dist/ButterflyChart.js.map +1 -1
  44. package/dist/ChoroplethMap.cjs +1 -1
  45. package/dist/ChoroplethMap.cjs.map +1 -1
  46. package/dist/ChoroplethMap.d.ts +2 -0
  47. package/dist/ChoroplethMap.js +303 -301
  48. package/dist/ChoroplethMap.js.map +1 -1
  49. package/dist/CirclePackingGraph.cjs +1 -1
  50. package/dist/CirclePackingGraph.d.ts +2 -0
  51. package/dist/CirclePackingGraph.js +4 -4
  52. package/dist/ColorLegend.cjs +1 -1
  53. package/dist/ColorLegend.js +2 -2
  54. package/dist/ColorLegendWithMouseOver.cjs +1 -1
  55. package/dist/ColorLegendWithMouseOver.js +2 -2
  56. package/dist/CopyTextButton.cjs +1 -1
  57. package/dist/CopyTextButton.cjs.map +1 -1
  58. package/dist/CopyTextButton.js +7 -9
  59. package/dist/CopyTextButton.js.map +1 -1
  60. package/dist/CsvDownloadButton.cjs +1 -1
  61. package/dist/CsvDownloadButton.js +2 -2
  62. package/dist/DataCards.cjs +1 -1
  63. package/dist/DataCards.cjs.map +1 -1
  64. package/dist/DataCards.js +10 -12
  65. package/dist/DataCards.js.map +1 -1
  66. package/dist/DataTable.cjs +1 -1
  67. package/dist/DataTable.cjs.map +1 -1
  68. package/dist/DataTable.d.ts +2 -0
  69. package/dist/DataTable.js +103 -102
  70. package/dist/DataTable.js.map +1 -1
  71. package/dist/{DetailsModal-C3qlUyFK.js → DetailsModal-B2XBWR7w.js} +4 -4
  72. package/dist/{DetailsModal-C3qlUyFK.js.map → DetailsModal-B2XBWR7w.js.map} +1 -1
  73. package/dist/{DetailsModal-DIRTulvr.cjs → DetailsModal-jmmKRMRM.cjs} +2 -2
  74. package/dist/{DetailsModal-DIRTulvr.cjs.map → DetailsModal-jmmKRMRM.cjs.map} +1 -1
  75. package/dist/DifferenceLineChart.cjs +1 -1
  76. package/dist/DifferenceLineChart.cjs.map +1 -1
  77. package/dist/DifferenceLineChart.d.ts +4 -0
  78. package/dist/DifferenceLineChart.js +441 -437
  79. package/dist/DifferenceLineChart.js.map +1 -1
  80. package/dist/DonutChart.cjs +1 -1
  81. package/dist/DonutChart.cjs.map +1 -1
  82. package/dist/DonutChart.d.ts +4 -0
  83. package/dist/DonutChart.js +146 -142
  84. package/dist/DonutChart.js.map +1 -1
  85. package/dist/DotDensityMap.cjs +1 -1
  86. package/dist/DotDensityMap.cjs.map +1 -1
  87. package/dist/DotDensityMap.js +146 -146
  88. package/dist/DotDensityMap.js.map +1 -1
  89. package/dist/{DropdownSelect-NNpOs7DX.cjs → DropdownSelect-CX1yMemd.cjs} +2 -2
  90. package/dist/DropdownSelect-CX1yMemd.cjs.map +1 -0
  91. package/dist/{DropdownSelect-B2WTeedJ.js → DropdownSelect-Dz7imdTB.js} +6 -9
  92. package/dist/DropdownSelect-Dz7imdTB.js.map +1 -0
  93. package/dist/DualAxisLineChart.cjs +1 -1
  94. package/dist/DualAxisLineChart.cjs.map +1 -1
  95. package/dist/DualAxisLineChart.d.ts +4 -0
  96. package/dist/DualAxisLineChart.js +336 -332
  97. package/dist/DualAxisLineChart.js.map +1 -1
  98. package/dist/DumbbellChart.cjs +1 -1
  99. package/dist/DumbbellChart.cjs.map +1 -1
  100. package/dist/DumbbellChart.d.ts +2 -0
  101. package/dist/DumbbellChart.js +547 -544
  102. package/dist/DumbbellChart.js.map +1 -1
  103. package/dist/{EmptyState-B4c-CrXs.cjs → EmptyState-CFmiFPHz.cjs} +2 -2
  104. package/dist/{EmptyState-B4c-CrXs.cjs.map → EmptyState-CFmiFPHz.cjs.map} +1 -1
  105. package/dist/{EmptyState-B3fPoH6L.js → EmptyState-CaxXCkiN.js} +4 -4
  106. package/dist/{EmptyState-B3fPoH6L.js.map → EmptyState-CaxXCkiN.js.map} +1 -1
  107. package/dist/ExcelDownloadButton.cjs +1 -1
  108. package/dist/ExcelDownloadButton.js +2 -2
  109. package/dist/FootNote.cjs +1 -1
  110. package/dist/FootNote.js +2 -2
  111. package/dist/GeoHubCompareMaps.cjs +1 -1
  112. package/dist/GeoHubCompareMaps.cjs.map +1 -1
  113. package/dist/GeoHubCompareMaps.js +111 -111
  114. package/dist/GeoHubCompareMaps.js.map +1 -1
  115. package/dist/GeoHubMap.cjs +1 -1
  116. package/dist/GeoHubMap.cjs.map +1 -1
  117. package/dist/GeoHubMap.js +71 -71
  118. package/dist/GeoHubMap.js.map +1 -1
  119. package/dist/GeoHubMapWithLayerSelection.cjs +1 -1
  120. package/dist/GeoHubMapWithLayerSelection.cjs.map +1 -1
  121. package/dist/GeoHubMapWithLayerSelection.js +83 -83
  122. package/dist/GeoHubMapWithLayerSelection.js.map +1 -1
  123. package/dist/{GraphContainer-DwMxWRCi.js → GraphContainer-B8ZqOzKI.js} +2 -2
  124. package/dist/{GraphContainer-DwMxWRCi.js.map → GraphContainer-B8ZqOzKI.js.map} +1 -1
  125. package/dist/{GraphContainer-B1EDxJ0S.cjs → GraphContainer-Cul9b74X.cjs} +2 -2
  126. package/dist/{GraphContainer-B1EDxJ0S.cjs.map → GraphContainer-Cul9b74X.cjs.map} +1 -1
  127. package/dist/GraphDescription.cjs +1 -1
  128. package/dist/GraphDescription.js +2 -2
  129. package/dist/GraphEl-D8WRC8-j.cjs +2 -0
  130. package/dist/GraphEl-D8WRC8-j.cjs.map +1 -0
  131. package/dist/{GraphEl-CnJf8b50.js → GraphEl-Dorm_qQE.js} +48 -10
  132. package/dist/GraphEl-Dorm_qQE.js.map +1 -0
  133. package/dist/GraphFooter.cjs +1 -1
  134. package/dist/GraphFooter.js +2 -2
  135. package/dist/GraphHeader.cjs +1 -1
  136. package/dist/GraphHeader.js +1 -1
  137. package/dist/GraphTitle.cjs +1 -1
  138. package/dist/GraphTitle.js +2 -2
  139. package/dist/GriddedGraphs.cjs +1 -1
  140. package/dist/GriddedGraphs.d.ts +1 -0
  141. package/dist/GriddedGraphs.js +6 -6
  142. package/dist/GriddedGraphsFromConfig.cjs +1 -1
  143. package/dist/GriddedGraphsFromConfig.d.ts +1 -0
  144. package/dist/GriddedGraphsFromConfig.js +2 -2
  145. package/dist/HeatMap.cjs +1 -1
  146. package/dist/HeatMap.cjs.map +1 -1
  147. package/dist/HeatMap.d.ts +4 -0
  148. package/dist/HeatMap.js +158 -155
  149. package/dist/HeatMap.js.map +1 -1
  150. package/dist/Histogram.cjs +1 -1
  151. package/dist/Histogram.cjs.map +1 -1
  152. package/dist/Histogram.d.ts +2 -0
  153. package/dist/Histogram.js +81 -80
  154. package/dist/Histogram.js.map +1 -1
  155. package/dist/HybridMap.cjs +1 -1
  156. package/dist/HybridMap.cjs.map +1 -1
  157. package/dist/HybridMap.d.ts +2 -0
  158. package/dist/HybridMap.js +283 -281
  159. package/dist/HybridMap.js.map +1 -1
  160. package/dist/ImageDownloadButton.cjs +1 -1
  161. package/dist/ImageDownloadButton.js +2 -2
  162. package/dist/LineChartWithConfidenceInterval.cjs +1 -1
  163. package/dist/LineChartWithConfidenceInterval.cjs.map +1 -1
  164. package/dist/LineChartWithConfidenceInterval.d.ts +2 -0
  165. package/dist/LineChartWithConfidenceInterval.js +367 -365
  166. package/dist/LineChartWithConfidenceInterval.js.map +1 -1
  167. package/dist/LinearColorLegend.cjs +1 -1
  168. package/dist/LinearColorLegend.cjs.map +1 -1
  169. package/dist/LinearColorLegend.d.ts +1 -0
  170. package/dist/LinearColorLegend.js +38 -37
  171. package/dist/LinearColorLegend.js.map +1 -1
  172. package/dist/{Modal-ZX55hLH-.cjs → Modal-BIErPPKT.cjs} +5 -5
  173. package/dist/{Modal-ZX55hLH-.cjs.map → Modal-BIErPPKT.cjs.map} +1 -1
  174. package/dist/{Modal-BV4rkoLM.js → Modal-CrUYln5V.js} +4 -4
  175. package/dist/{Modal-BV4rkoLM.js.map → Modal-CrUYln5V.js.map} +1 -1
  176. package/dist/MultiGraphDashboard.cjs +1 -1
  177. package/dist/MultiGraphDashboard.d.ts +1 -0
  178. package/dist/MultiGraphDashboard.js +4 -4
  179. package/dist/MultiGraphDashboardFromConfig.cjs +1 -1
  180. package/dist/MultiGraphDashboardFromConfig.d.ts +1 -0
  181. package/dist/MultiGraphDashboardFromConfig.js +2 -2
  182. package/dist/MultiGraphDashboardWideToLongFormat.cjs +1 -1
  183. package/dist/MultiGraphDashboardWideToLongFormat.js +4 -4
  184. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.cjs +1 -1
  185. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js +2 -2
  186. package/dist/MultiLineAltChart.cjs +1 -1
  187. package/dist/MultiLineAltChart.cjs.map +1 -1
  188. package/dist/MultiLineAltChart.d.ts +2 -0
  189. package/dist/MultiLineAltChart.js +434 -432
  190. package/dist/MultiLineAltChart.js.map +1 -1
  191. package/dist/MultiLineChart.cjs +1 -1
  192. package/dist/MultiLineChart.cjs.map +1 -1
  193. package/dist/MultiLineChart.d.ts +4 -0
  194. package/dist/MultiLineChart.js +398 -394
  195. package/dist/MultiLineChart.js.map +1 -1
  196. package/dist/ParetoChart.cjs +1 -1
  197. package/dist/ParetoChart.cjs.map +1 -1
  198. package/dist/ParetoChart.d.ts +2 -0
  199. package/dist/ParetoChart.js +273 -271
  200. package/dist/ParetoChart.js.map +1 -1
  201. package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +1 -1
  202. package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +1 -0
  203. package/dist/PerformanceIntensiveMultiGraphDashboard.js +4 -4
  204. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs +1 -1
  205. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +1 -0
  206. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js +2 -2
  207. package/dist/PerformanceIntensiveScrollStory.cjs +1 -1
  208. package/dist/PerformanceIntensiveScrollStory.d.ts +1 -0
  209. package/dist/PerformanceIntensiveScrollStory.js +3 -3
  210. package/dist/RadarChart.cjs +1 -1
  211. package/dist/RadarChart.cjs.map +1 -1
  212. package/dist/RadarChart.d.ts +2 -0
  213. package/dist/RadarChart.js +220 -218
  214. package/dist/RadarChart.js.map +1 -1
  215. package/dist/{ReferenceLine-M9aP3dj-.cjs → ReferenceLine-CpU4G01Y.cjs} +2 -2
  216. package/dist/{ReferenceLine-M9aP3dj-.cjs.map → ReferenceLine-CpU4G01Y.cjs.map} +1 -1
  217. package/dist/{ReferenceLine-CNEjAYvv.js → ReferenceLine-D41VuUhE.js} +3 -3
  218. package/dist/{ReferenceLine-CNEjAYvv.js.map → ReferenceLine-D41VuUhE.js.map} +1 -1
  219. package/dist/{RegressionLine-Ci-Dh0w0.cjs → RegressionLine-BFoBiVJk.cjs} +2 -2
  220. package/dist/{RegressionLine-Ci-Dh0w0.cjs.map → RegressionLine-BFoBiVJk.cjs.map} +1 -1
  221. package/dist/{RegressionLine-BDrndQxo.js → RegressionLine-CuwB42I6.js} +4 -4
  222. package/dist/{RegressionLine-BDrndQxo.js.map → RegressionLine-CuwB42I6.js.map} +1 -1
  223. package/dist/SVGDownloadButton.cjs +1 -1
  224. package/dist/SVGDownloadButton.js +2 -2
  225. package/dist/SankeyChart.cjs +1 -1
  226. package/dist/SankeyChart.cjs.map +1 -1
  227. package/dist/SankeyChart.d.ts +2 -0
  228. package/dist/SankeyChart.js +439 -437
  229. package/dist/SankeyChart.js.map +1 -1
  230. package/dist/ScatterPlot.cjs +1 -1
  231. package/dist/ScatterPlot.cjs.map +1 -1
  232. package/dist/ScatterPlot.d.ts +2 -0
  233. package/dist/ScatterPlot.js +425 -423
  234. package/dist/ScatterPlot.js.map +1 -1
  235. package/dist/ScrollStory.cjs +1 -1
  236. package/dist/ScrollStory.d.ts +1 -0
  237. package/dist/ScrollStory.js +3 -3
  238. package/dist/SimpleLineChart.cjs +1 -1
  239. package/dist/SimpleLineChart.cjs.map +1 -1
  240. package/dist/SimpleLineChart.d.ts +2 -0
  241. package/dist/SimpleLineChart.js +360 -358
  242. package/dist/SimpleLineChart.js.map +1 -1
  243. package/dist/SingleGraphDashboard.cjs +1 -1
  244. package/dist/SingleGraphDashboard.d.ts +1 -0
  245. package/dist/SingleGraphDashboard.js +6 -6
  246. package/dist/SingleGraphDashboardFromConfig.cjs +1 -1
  247. package/dist/SingleGraphDashboardFromConfig.d.ts +1 -0
  248. package/dist/SingleGraphDashboardFromConfig.js +2 -2
  249. package/dist/SingleGraphDashboardGeoHubMaps.cjs +1 -1
  250. package/dist/SingleGraphDashboardGeoHubMaps.d.ts +1 -0
  251. package/dist/SingleGraphDashboardGeoHubMaps.js +3 -3
  252. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs +1 -1
  253. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.d.ts +1 -0
  254. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js +2 -2
  255. package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
  256. package/dist/SingleGraphDashboardThreeDGraphs.d.ts +1 -0
  257. package/dist/SingleGraphDashboardThreeDGraphs.js +6 -6
  258. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs +1 -1
  259. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +1 -0
  260. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js +2 -2
  261. package/dist/SlopeChart.cjs +1 -1
  262. package/dist/SlopeChart.js +10 -10
  263. package/dist/{Source-BOSAl3UX.cjs → Source-PKuwZOn3.cjs} +2 -2
  264. package/dist/{Source-BOSAl3UX.cjs.map → Source-PKuwZOn3.cjs.map} +1 -1
  265. package/dist/{Source-Djkz-7jX.js → Source-QGk8vhkS.js} +3 -3
  266. package/dist/{Source-Djkz-7jX.js.map → Source-QGk8vhkS.js.map} +1 -1
  267. package/dist/Source.cjs +1 -1
  268. package/dist/Source.js +3 -3
  269. package/dist/SparkLine.cjs +1 -1
  270. package/dist/SparkLine.js +3 -3
  271. package/dist/{Spinner-CtJETd5V.js → Spinner-B2IIKg9r.js} +2 -2
  272. package/dist/{Spinner-CtJETd5V.js.map → Spinner-B2IIKg9r.js.map} +1 -1
  273. package/dist/{Spinner-jTMOLuw_.cjs → Spinner-WHzzloYQ.cjs} +2 -2
  274. package/dist/{Spinner-jTMOLuw_.cjs.map → Spinner-WHzzloYQ.cjs.map} +1 -1
  275. package/dist/StatCardFromData.cjs +1 -1
  276. package/dist/StatCardFromData.cjs.map +1 -1
  277. package/dist/StatCardFromData.d.ts +4 -0
  278. package/dist/StatCardFromData.js +97 -95
  279. package/dist/StatCardFromData.js.map +1 -1
  280. package/dist/StripChart.cjs +1 -1
  281. package/dist/StripChart.cjs.map +1 -1
  282. package/dist/StripChart.d.ts +2 -0
  283. package/dist/StripChart.js +360 -357
  284. package/dist/StripChart.js.map +1 -1
  285. package/dist/ThreeDGlobe.cjs +1 -1
  286. package/dist/ThreeDGlobe.cjs.map +1 -1
  287. package/dist/ThreeDGlobe.d.ts +2 -0
  288. package/dist/ThreeDGlobe.js +198 -196
  289. package/dist/ThreeDGlobe.js.map +1 -1
  290. package/dist/ThresholdColorLegendWithMouseOver.cjs +1 -1
  291. package/dist/ThresholdColorLegendWithMouseOver.cjs.map +1 -1
  292. package/dist/ThresholdColorLegendWithMouseOver.d.ts +2 -0
  293. package/dist/ThresholdColorLegendWithMouseOver.js +50 -48
  294. package/dist/ThresholdColorLegendWithMouseOver.js.map +1 -1
  295. package/dist/{Tooltip-CohiIbLZ.js → Tooltip-Bj-s__cI.js} +3 -3
  296. package/dist/{Tooltip-CohiIbLZ.js.map → Tooltip-Bj-s__cI.js.map} +1 -1
  297. package/dist/{Tooltip-BLa2EfMs.cjs → Tooltip-Hr46paWP.cjs} +2 -2
  298. package/dist/{Tooltip-BLa2EfMs.cjs.map → Tooltip-Hr46paWP.cjs.map} +1 -1
  299. package/dist/TreeMapGraph.cjs +1 -1
  300. package/dist/TreeMapGraph.cjs.map +1 -1
  301. package/dist/TreeMapGraph.d.ts +2 -0
  302. package/dist/TreeMapGraph.js +219 -217
  303. package/dist/TreeMapGraph.js.map +1 -1
  304. package/dist/Types.d.ts +1 -0
  305. package/dist/{Typography-DMVW6JnV.js → Typography-BO0gQDIT.js} +2 -2
  306. package/dist/{Typography-DMVW6JnV.js.map → Typography-BO0gQDIT.js.map} +1 -1
  307. package/dist/{Typography-CZZxlj1W.cjs → Typography-BqmyF1gP.cjs} +2 -2
  308. package/dist/{Typography-CZZxlj1W.cjs.map → Typography-BqmyF1gP.cjs.map} +1 -1
  309. package/dist/UnitChart.cjs +1 -1
  310. package/dist/UnitChart.cjs.map +1 -1
  311. package/dist/UnitChart.d.ts +4 -0
  312. package/dist/UnitChart.js +88 -86
  313. package/dist/UnitChart.js.map +1 -1
  314. package/dist/WaterfallChart.cjs +1 -1
  315. package/dist/WaterfallChart.cjs.map +1 -1
  316. package/dist/WaterfallChart.d.ts +2 -0
  317. package/dist/WaterfallChart.js +243 -241
  318. package/dist/WaterfallChart.js.map +1 -1
  319. package/dist/{XAxesLabels-IwjMJkYS.js → XAxesLabels-B9gkjUiC.js} +3 -3
  320. package/dist/{XAxesLabels-IwjMJkYS.js.map → XAxesLabels-B9gkjUiC.js.map} +1 -1
  321. package/dist/{XAxesLabels-C6o9jJal.cjs → XAxesLabels-C03jHniq.cjs} +2 -2
  322. package/dist/{XAxesLabels-C6o9jJal.cjs.map → XAxesLabels-C03jHniq.cjs.map} +1 -1
  323. package/dist/XTicksAndGridLines-C5DuC5oY.cjs +2 -0
  324. package/dist/XTicksAndGridLines-C5DuC5oY.cjs.map +1 -0
  325. package/dist/XTicksAndGridLines-gdbGX2rm.js +39 -0
  326. package/dist/XTicksAndGridLines-gdbGX2rm.js.map +1 -0
  327. package/dist/{YAxesLabels-BQ2aCazV.cjs → YAxesLabels-DeENFC2M.cjs} +2 -2
  328. package/dist/{YAxesLabels-BQ2aCazV.cjs.map → YAxesLabels-DeENFC2M.cjs.map} +1 -1
  329. package/dist/{YAxesLabels-DoGvgHdw.js → YAxesLabels-hWEUCTvs.js} +3 -3
  330. package/dist/{YAxesLabels-DoGvgHdw.js.map → YAxesLabels-hWEUCTvs.js.map} +1 -1
  331. package/dist/YTicksAndGridLines-CsNSq9W9.js +39 -0
  332. package/dist/YTicksAndGridLines-CsNSq9W9.js.map +1 -0
  333. package/dist/YTicksAndGridLines-DFjm8RCc.cjs +2 -0
  334. package/dist/YTicksAndGridLines-DFjm8RCc.cjs.map +1 -0
  335. package/dist/{checkIfMultiple-TOaaUwS7.cjs → checkIfMultiple-CH5tqj4q.cjs} +2 -2
  336. package/dist/checkIfMultiple-CH5tqj4q.cjs.map +1 -0
  337. package/dist/{checkIfMultiple-B97uOUVq.js → checkIfMultiple-Dpyy6BUP.js} +6 -6
  338. package/dist/checkIfMultiple-Dpyy6BUP.js.map +1 -0
  339. package/dist/{customArea-B1LWQBmM.cjs → customArea-BAcQ3pBM.cjs} +2 -2
  340. package/dist/{customArea-B1LWQBmM.cjs.map → customArea-BAcQ3pBM.cjs.map} +1 -1
  341. package/dist/{customArea-Cc2whe6P.js → customArea-D89lETG0.js} +3 -3
  342. package/dist/{customArea-Cc2whe6P.js.map → customArea-D89lETG0.js.map} +1 -1
  343. package/dist/getSliderMarks-BzrpHrHS.cjs +2 -0
  344. package/dist/getSliderMarks-BzrpHrHS.cjs.map +1 -0
  345. package/dist/{getSliderMarks-vXsR8RrR.js → getSliderMarks-X-_goqH9.js} +3 -4
  346. package/dist/getSliderMarks-X-_goqH9.js.map +1 -0
  347. package/dist/{index-CZ0elhKR.js → index-ApTBN0kp.js} +20 -10
  348. package/dist/{index-CZ0elhKR.js.map → index-ApTBN0kp.js.map} +1 -1
  349. package/dist/index-Bdo_HXb_.cjs +2 -0
  350. package/dist/index-Bdo_HXb_.cjs.map +1 -0
  351. package/dist/{index-sbKVyHS2.cjs → index-BhI7mBJx.cjs} +2 -2
  352. package/dist/{index-sbKVyHS2.cjs.map → index-BhI7mBJx.cjs.map} +1 -1
  353. package/dist/{index-D69M6klB.cjs → index-BuhBhuCq.cjs} +2 -2
  354. package/dist/{index-D69M6klB.cjs.map → index-BuhBhuCq.cjs.map} +1 -1
  355. package/dist/index-CGrBpeUa.js +380 -0
  356. package/dist/index-CGrBpeUa.js.map +1 -0
  357. package/dist/{index-CHPV5EwG-BCLAYDCV.js → index-CHPV5EwG-BzibaIRc.js} +5 -9
  358. package/dist/index-CHPV5EwG-BzibaIRc.js.map +1 -0
  359. package/dist/{index-CHPV5EwG-6v2a2njQ.cjs → index-CHPV5EwG-D4pAp7u0.cjs} +3 -3
  360. package/dist/index-CHPV5EwG-D4pAp7u0.cjs.map +1 -0
  361. package/dist/{index-Co3YGYe1.js → index-Cv_5q6Rb.js} +3 -3
  362. package/dist/{index-Co3YGYe1.js.map → index-Cv_5q6Rb.js.map} +1 -1
  363. package/dist/{index-D_dtv_T9.js → index-DHVGV8Df.js} +3 -3
  364. package/dist/{index-D_dtv_T9.js.map → index-DHVGV8Df.js.map} +1 -1
  365. package/dist/{index-CoobIWNj.cjs → index-FXfr51ZM.cjs} +2 -2
  366. package/dist/{index-CoobIWNj.cjs.map → index-FXfr51ZM.cjs.map} +1 -1
  367. package/dist/{index-D6CYcVc7-BOa7Dpvf.js → index-Scxs_wcm-BAjU0Cob.js} +16 -16
  368. package/dist/index-Scxs_wcm-BAjU0Cob.js.map +1 -0
  369. package/dist/index-Scxs_wcm-DUDU-Gll.cjs +2 -0
  370. package/dist/index-Scxs_wcm-DUDU-Gll.cjs.map +1 -0
  371. package/dist/{index-DoS4bGNa-C3DbPpy3.cjs → index-w64Zl8io-DrMm5QSb.cjs} +2 -2
  372. package/dist/index-w64Zl8io-DrMm5QSb.cjs.map +1 -0
  373. package/dist/{index-DoS4bGNa-Bgab95kx.js → index-w64Zl8io-ihagHOdP.js} +2 -2
  374. package/dist/index-w64Zl8io-ihagHOdP.js.map +1 -0
  375. package/dist/index.cjs +1 -1
  376. package/dist/index.d.ts +92 -17
  377. package/dist/index.js +3 -3
  378. package/dist/numberFormattingFunction-Cn9R7CM9.cjs +2 -0
  379. package/dist/numberFormattingFunction-Cn9R7CM9.cjs.map +1 -0
  380. package/dist/numberFormattingFunction-DqMf_v1m.js +28 -0
  381. package/dist/numberFormattingFunction-DqMf_v1m.js.map +1 -0
  382. package/dist/{proxy--_f6k3NR.js → proxy-BsxtcZKa.js} +2 -2
  383. package/dist/{proxy--_f6k3NR.js.map → proxy-BsxtcZKa.js.map} +1 -1
  384. package/dist/{proxy-C4-uo6nS.cjs → proxy-CqH8m8IQ.cjs} +2 -2
  385. package/dist/{proxy-C4-uo6nS.cjs.map → proxy-CqH8m8IQ.cjs.map} +1 -1
  386. package/dist/{string2HTML-DUYZT1L9.js → string2HTML-BrFperRM.js} +2 -2
  387. package/dist/{string2HTML-DUYZT1L9.js.map → string2HTML-BrFperRM.js.map} +1 -1
  388. package/dist/{string2HTML-xx9MzTtY.cjs → string2HTML-ZoGd08P_.cjs} +2 -2
  389. package/dist/{string2HTML-xx9MzTtY.cjs.map → string2HTML-ZoGd08P_.cjs.map} +1 -1
  390. package/dist/style.css +1 -1
  391. package/dist/{use-in-view-DqvKAveg.js → use-in-view-KOXq5Kmc.js} +2 -2
  392. package/dist/{use-in-view-DqvKAveg.js.map → use-in-view-KOXq5Kmc.js.map} +1 -1
  393. package/dist/{use-in-view-C3o_ntMv.cjs → use-in-view-dnRv_qqF.cjs} +2 -2
  394. package/dist/{use-in-view-C3o_ntMv.cjs.map → use-in-view-dnRv_qqF.cjs.map} +1 -1
  395. package/dist/utils.cjs +1 -1
  396. package/dist/utils.d.ts +9 -18
  397. package/dist/utils.js +1 -1
  398. package/dist/x-BXShoIAM-BC2sxios.cjs +2 -0
  399. package/dist/x-BXShoIAM-BC2sxios.cjs.map +1 -0
  400. package/dist/{x-BBpi7a_7-BsvWCzYM.js → x-BXShoIAM-D6VWO6z5.js} +3 -5
  401. package/dist/x-BXShoIAM-D6VWO6z5.js.map +1 -0
  402. package/package.json +2 -2
  403. package/dist/DropdownSelect-B2WTeedJ.js.map +0 -1
  404. package/dist/DropdownSelect-NNpOs7DX.cjs.map +0 -1
  405. package/dist/GraphEl-CnJf8b50.js.map +0 -1
  406. package/dist/GraphEl-D_w0Qak4.cjs +0 -2
  407. package/dist/GraphEl-D_w0Qak4.cjs.map +0 -1
  408. package/dist/XTicksAndGridLines-BDmF9etl.js +0 -38
  409. package/dist/XTicksAndGridLines-BDmF9etl.js.map +0 -1
  410. package/dist/XTicksAndGridLines-CekrPykD.cjs +0 -2
  411. package/dist/XTicksAndGridLines-CekrPykD.cjs.map +0 -1
  412. package/dist/YTicksAndGridLines-C3GW1xFG.js +0 -38
  413. package/dist/YTicksAndGridLines-C3GW1xFG.js.map +0 -1
  414. package/dist/YTicksAndGridLines-UzVC5eBM.cjs +0 -2
  415. package/dist/YTicksAndGridLines-UzVC5eBM.cjs.map +0 -1
  416. package/dist/checkIfMultiple-B97uOUVq.js.map +0 -1
  417. package/dist/checkIfMultiple-TOaaUwS7.cjs.map +0 -1
  418. package/dist/getSliderMarks-CIuSoedo.cjs +0 -2
  419. package/dist/getSliderMarks-CIuSoedo.cjs.map +0 -1
  420. package/dist/getSliderMarks-vXsR8RrR.js.map +0 -1
  421. package/dist/index-C6VwVS8W.js +0 -378
  422. package/dist/index-C6VwVS8W.js.map +0 -1
  423. package/dist/index-CHPV5EwG-6v2a2njQ.cjs.map +0 -1
  424. package/dist/index-CHPV5EwG-BCLAYDCV.js.map +0 -1
  425. package/dist/index-D6CYcVc7-BOa7Dpvf.js.map +0 -1
  426. package/dist/index-D6CYcVc7-CTEcAtiQ.cjs +0 -2
  427. package/dist/index-D6CYcVc7-CTEcAtiQ.cjs.map +0 -1
  428. package/dist/index-DoS4bGNa-Bgab95kx.js.map +0 -1
  429. package/dist/index-DoS4bGNa-C3DbPpy3.cjs.map +0 -1
  430. package/dist/index-_TlgeI_i.cjs +0 -2
  431. package/dist/index-_TlgeI_i.cjs.map +0 -1
  432. package/dist/numberFormattingFunction-02t-wJta.cjs +0 -2
  433. package/dist/numberFormattingFunction-02t-wJta.cjs.map +0 -1
  434. package/dist/numberFormattingFunction-14YCbkN2.js +0 -13
  435. package/dist/numberFormattingFunction-14YCbkN2.js.map +0 -1
  436. package/dist/x-BBpi7a_7-BsvWCzYM.js.map +0 -1
  437. package/dist/x-BBpi7a_7-DXYIEFwN.cjs +0 -2
  438. package/dist/x-BBpi7a_7-DXYIEFwN.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ThreeDGlobe.js","sources":["../node_modules/hex-to-rgba/build/index.js","../src/Components/Graphs/Maps/ThreeDGlobe/Graph.tsx","../src/Components/Graphs/Maps/ThreeDGlobe/index.tsx"],"sourcesContent":["\"use strict\";\n\nvar removeHash = function removeHash(hex) {\n return hex.charAt(0) === '#' ? hex.slice(1) : hex;\n};\n\nvar parseHex = function parseHex(nakedHex) {\n var isShort = nakedHex.length === 3 || nakedHex.length === 4;\n var twoDigitHexR = isShort ? \"\".concat(nakedHex.slice(0, 1)).concat(nakedHex.slice(0, 1)) : nakedHex.slice(0, 2);\n var twoDigitHexG = isShort ? \"\".concat(nakedHex.slice(1, 2)).concat(nakedHex.slice(1, 2)) : nakedHex.slice(2, 4);\n var twoDigitHexB = isShort ? \"\".concat(nakedHex.slice(2, 3)).concat(nakedHex.slice(2, 3)) : nakedHex.slice(4, 6);\n var twoDigitHexA = (isShort ? \"\".concat(nakedHex.slice(3, 4)).concat(nakedHex.slice(3, 4)) : nakedHex.slice(6, 8)) || 'ff'; // const numericA = +((parseInt(a, 16) / 255).toFixed(2));\n\n return {\n r: twoDigitHexR,\n g: twoDigitHexG,\n b: twoDigitHexB,\n a: twoDigitHexA\n };\n};\n\nvar hexToDecimal = function hexToDecimal(hex) {\n return parseInt(hex, 16);\n};\n\nvar hexesToDecimals = function hexesToDecimals(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b,\n a = _ref.a;\n return {\n r: hexToDecimal(r),\n g: hexToDecimal(g),\n b: hexToDecimal(b),\n a: +(hexToDecimal(a) / 255).toFixed(2)\n };\n};\n\nvar isNumeric = function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}; // eslint-disable-line no-restricted-globals, max-len\n\n\nvar formatRgb = function formatRgb(decimalObject, parameterA) {\n var r = decimalObject.r,\n g = decimalObject.g,\n b = decimalObject.b,\n parsedA = decimalObject.a;\n var a = isNumeric(parameterA) ? parameterA : parsedA;\n return \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(a, \")\");\n};\n/**\n * Turns an old-fashioned css hex color value into a rgb color value.\n *\n * If you specify an alpha value, you'll get a rgba() value instead.\n *\n * @param The hex value to convert. ('123456'. '#123456', ''123', '#123')\n * @param An alpha value to apply. (optional) ('0.5', '0.25')\n * @return An rgb or rgba value. ('rgb(11, 22, 33)'. 'rgba(11, 22, 33, 0.5)')\n */\n\n\nvar hexToRgba = function hexToRgba(hex, a) {\n var hashlessHex = removeHash(hex);\n var hexObject = parseHex(hashlessHex);\n var decimalObject = hexesToDecimals(hexObject);\n return formatRgb(decimalObject, a);\n};\n\nmodule.exports = hexToRgba;","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport Globe, { GlobeMethods } from 'react-globe.gl';\r\nimport isEqual from 'fast-deep-equal';\r\nimport { useCallback, useEffect, useRef, useState } from 'react';\r\nimport { scaleOrdinal, scaleThreshold } from 'd3-scale';\r\nimport * as THREE from 'three';\r\nimport { P } from '@undp/design-system-react/Typography';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport hexToRgba from 'hex-to-rgba';\r\n\r\nimport {\r\n ChoroplethMapDataType,\r\n ClassNameObject,\r\n FogDataType,\r\n LightConfig,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { X } from '@/Components/Icons';\r\nimport { getCentroidCoordinates } from '@/Utils/getCentroidCoordinates';\r\nimport { DetailsModal } from '@/Components/Elements/DetailsModal';\r\n\r\ninterface Props {\r\n width: number;\r\n data: ChoroplethMapDataType[];\r\n autoRotate: number;\r\n enableZoom: boolean;\r\n categorical: boolean;\r\n colorDomain: (number | string)[];\r\n colors: string[];\r\n height: number;\r\n globeMaterial?: THREE.Material;\r\n lights: LightConfig[];\r\n polygonData: any;\r\n mapProperty: string;\r\n mapBorderColor: string;\r\n atmosphereColor: string;\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n onSeriesMouseOver?: (_d: any) => void;\r\n onSeriesMouseClick?: (_d: any) => void;\r\n mapNoDataColor: string;\r\n colorLegendTitle?: string;\r\n showColorScale: boolean;\r\n hoverStrokeColor: string;\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n resetSelectionOnDoubleClick: boolean;\r\n highlightedIds: string[];\r\n scale: number;\r\n globeOffset: [number, number];\r\n polygonAltitude: number;\r\n centerLng: number;\r\n centerLat: number;\r\n atmosphereAltitude: number;\r\n globeCurvatureResolution: number;\r\n fogSettings?: FogDataType;\r\n highlightedAltitude: number;\r\n selectedId?: string;\r\n collapseColorScaleByDefault?: boolean;\r\n dimmedOpacity: number;\r\n}\r\n\r\nfunction createLightFromConfig(config: LightConfig): THREE.Light {\r\n let light: THREE.Light;\r\n\r\n switch (config.type) {\r\n case 'ambient':\r\n light = new THREE.AmbientLight(config.color, config.intensity);\r\n break;\r\n case 'directional':\r\n light = new THREE.DirectionalLight(config.color, config.intensity);\r\n if (config.position) {\r\n if (config.position === 'camera') light.position.set(0, 0, 0);\r\n else light.position.set(config.position.x, config.position.y, config.position.z);\r\n }\r\n if (config.target || config.position === 'camera') {\r\n (light as THREE.SpotLight).target.position.set(\r\n config.target?.x || 0,\r\n config.target?.y || 0,\r\n config.target?.z === undefined ? -1 : config.target.z,\r\n );\r\n }\r\n if (config.castShadow) {\r\n (light as THREE.DirectionalLight).castShadow = true;\r\n if (config.shadow) {\r\n (light as THREE.DirectionalLight).shadow.mapSize.width = config.shadow.mapSize.width;\r\n (light as THREE.DirectionalLight).shadow.mapSize.height = config.shadow.mapSize.height;\r\n (light as THREE.DirectionalLight).shadow.camera.near = config.shadow.camera.near;\r\n (light as THREE.DirectionalLight).shadow.camera.far = config.shadow.camera.far;\r\n }\r\n }\r\n break;\r\n case 'point':\r\n light = new THREE.PointLight(\r\n config.color,\r\n config.intensity,\r\n config.distance || 0,\r\n config.decay || 2,\r\n );\r\n if (config.position) {\r\n if (config.position === 'camera') light.position.set(0, 0, 0);\r\n else light.position.set(config.position.x, config.position.y, config.position.z);\r\n }\r\n break;\r\n case 'spot':\r\n light = new THREE.SpotLight(\r\n config.color,\r\n config.intensity,\r\n config.distance || 0,\r\n config.angle || Math.PI / 3,\r\n config.penumbra || 0,\r\n config.decay || 2,\r\n );\r\n if (config.position) {\r\n if (config.position === 'camera') light.position.set(0, 0, 0);\r\n else light.position.set(config.position.x, config.position.y, config.position.z);\r\n }\r\n if (config.target || config.position === 'camera') {\r\n (light as THREE.SpotLight).target.position.set(\r\n config.target?.x || 0,\r\n config.target?.y || 0,\r\n config.target?.z || 0,\r\n );\r\n }\r\n if (config.castShadow) {\r\n (light as THREE.SpotLight).castShadow = true;\r\n if (config.shadow) {\r\n (light as THREE.SpotLight).shadow.mapSize.width = config.shadow.mapSize.width;\r\n (light as THREE.SpotLight).shadow.mapSize.height = config.shadow.mapSize.height;\r\n (light as THREE.SpotLight).shadow.camera.near = config.shadow.camera.near;\r\n (light as THREE.SpotLight).shadow.camera.far = config.shadow.camera.far;\r\n }\r\n }\r\n break;\r\n default:\r\n throw new Error('Unknown light type');\r\n }\r\n\r\n return light;\r\n}\r\nfunction Graph(props: Props) {\r\n const {\r\n width,\r\n autoRotate,\r\n data,\r\n enableZoom,\r\n categorical,\r\n colorDomain,\r\n colors,\r\n globeMaterial,\r\n height,\r\n polygonData,\r\n mapProperty,\r\n mapBorderColor,\r\n atmosphereColor,\r\n tooltip,\r\n styles,\r\n classNames,\r\n mapNoDataColor,\r\n colorLegendTitle,\r\n showColorScale,\r\n hoverStrokeColor,\r\n detailsOnClick,\r\n onSeriesMouseClick,\r\n onSeriesMouseOver,\r\n resetSelectionOnDoubleClick,\r\n highlightedIds,\r\n scale,\r\n globeOffset,\r\n polygonAltitude,\r\n centerLng,\r\n centerLat,\r\n atmosphereAltitude,\r\n globeCurvatureResolution,\r\n fogSettings,\r\n lights,\r\n highlightedAltitude,\r\n selectedId,\r\n collapseColorScaleByDefault,\r\n dimmedOpacity,\r\n } = props;\r\n const [globeReady, setGlobeReady] = useState(false);\r\n const globeEl = useRef<GlobeMethods | undefined>(undefined);\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n\r\n const [showLegend, setShowLegend] = useState(\r\n collapseColorScaleByDefault === undefined ? !(width < 680) : !collapseColorScaleByDefault,\r\n );\r\n const [mousePos, setMousePos] = useState({ x: 0, y: 0 });\r\n const [mouseOverData, setMouseOverData] = useState<ChoroplethMapDataType | undefined>(undefined);\r\n const colorScale = categorical\r\n ? scaleOrdinal<number | string, string>().domain(colorDomain).range(colors)\r\n : scaleThreshold<number, string>()\r\n .domain(colorDomain as number[])\r\n .range(colors);\r\n useEffect(() => {\r\n if (globeEl.current) {\r\n globeEl.current.controls().enableZoom = enableZoom;\r\n }\r\n }, [enableZoom]);\r\n useEffect(() => {\r\n if (globeEl.current) {\r\n if (mouseOverData || selectedId) {\r\n globeEl.current.controls().autoRotate = false;\r\n } else {\r\n globeEl.current.controls().autoRotate = autoRotate === 0 ? false : true;\r\n globeEl.current.controls().autoRotateSpeed = autoRotate;\r\n }\r\n }\r\n }, [mouseOverData, selectedId, autoRotate]);\r\n useEffect(() => {\r\n if (globeEl.current && selectedId) {\r\n const selectedPolygon = polygonData.find(\r\n (d: any) => d.properties[mapProperty] === selectedId,\r\n );\r\n const [lng, lat] = getCentroidCoordinates(selectedPolygon);\r\n globeEl.current.pointOfView({ lat, lng, altitude: scale }, 1000);\r\n }\r\n }, [selectedId, scale, polygonData, mapProperty]);\r\n\r\n useEffect(() => {\r\n const canvas = globeEl.current?.renderer().domElement;\r\n if (!canvas) return;\r\n\r\n const handleMouseMove = (e: MouseEvent) => {\r\n setMousePos({ x: e.clientX, y: e.clientY });\r\n };\r\n\r\n canvas.addEventListener('mousemove', handleMouseMove);\r\n return () => canvas.removeEventListener('mousemove', handleMouseMove);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (globeEl.current) {\r\n globeEl.current.pointOfView({ lat: centerLat, lng: centerLng, altitude: scale }, 1000);\r\n }\r\n }, [scale, centerLng, centerLat]);\r\n const materials =\r\n globeMaterial ||\r\n new THREE.MeshBasicMaterial({\r\n color: '#FFF',\r\n });\r\n const setupCustomLighting = useCallback(() => {\r\n if (!globeEl.current) return;\r\n\r\n const scene = globeEl.current.scene();\r\n const camera = globeEl.current.camera();\r\n\r\n let lightsAndObjToRemove: THREE.Object3D[] = [];\r\n scene.traverse(obj => {\r\n if (obj instanceof THREE.Light) {\r\n lightsAndObjToRemove.push(obj);\r\n }\r\n });\r\n lightsAndObjToRemove = [...lightsAndObjToRemove, ...camera.children];\r\n lightsAndObjToRemove.forEach(light => light.parent?.remove(light));\r\n\r\n const lightConfig = lights.map(config => createLightFromConfig(config));\r\n lightConfig.forEach((light, i) => {\r\n if (lights[i].type !== 'ambient' && lights[i].position === 'camera') {\r\n camera.add(light);\r\n if (lights[i].type !== 'point') {\r\n camera.add((light as THREE.DirectionalLight | THREE.SpotLight).target);\r\n }\r\n } else {\r\n scene.add(light);\r\n }\r\n });\r\n\r\n if (fogSettings) {\r\n scene.fog = new THREE.Fog(fogSettings.color, fogSettings.near, fogSettings.far);\r\n }\r\n }, [lights, fogSettings]);\r\n\r\n const handleGlobeReady = () => {\r\n setGlobeReady(true);\r\n setupCustomLighting();\r\n };\r\n useEffect(() => {\r\n if (globeReady) {\r\n setupCustomLighting();\r\n }\r\n }, [globeReady, setupCustomLighting]);\r\n return (\r\n <div className='relative'>\r\n <Globe\r\n ref={globeEl}\r\n height={height}\r\n width={width}\r\n globeOffset={globeOffset}\r\n lineHoverPrecision={0}\r\n polygonsData={polygonData}\r\n polygonAltitude={(polygon: any) =>\r\n highlightedIds.includes(polygon?.properties?.[mapProperty]) ||\r\n polygon?.properties?.[mapProperty] === selectedId\r\n ? highlightedAltitude\r\n : polygon?.properties?.[mapProperty] === mouseOverData?.id ||\r\n polygon?.properties?.[mapProperty] === mouseClickData?.id\r\n ? highlightedAltitude\r\n : polygonAltitude\r\n }\r\n polygonCapColor={(polygon: any) => {\r\n const opacity = selectedId\r\n ? polygon?.properties?.[mapProperty] === selectedId\r\n ? 1\r\n : dimmedOpacity\r\n : highlightedIds.length !== 0\r\n ? highlightedIds.includes(polygon?.properties?.[mapProperty])\r\n ? 1\r\n : dimmedOpacity\r\n : 1;\r\n const id = polygon?.properties?.[mapProperty];\r\n const val = data.find(el => el.id === id)?.x;\r\n const color = val !== undefined && val !== null ? colorScale(val as any) : mapNoDataColor;\r\n return hexToRgba(color, `${opacity}`);\r\n }}\r\n polygonSideColor={(polygon: any) => {\r\n const id = polygon?.properties?.[mapProperty];\r\n const val = data.find(el => el.id === id)?.x;\r\n const opacity = selectedId\r\n ? polygon?.properties?.[mapProperty] === selectedId\r\n ? 1\r\n : dimmedOpacity\r\n : highlightedIds.length !== 0\r\n ? highlightedIds.includes(polygon?.properties?.[mapProperty])\r\n ? 1\r\n : dimmedOpacity\r\n : 1;\r\n const color = val !== undefined && val !== null ? colorScale(val as any) : mapNoDataColor;\r\n return hexToRgba(color, `${opacity}`);\r\n }}\r\n polygonStrokeColor={(polygon: any) =>\r\n polygon?.properties?.[mapProperty] === mouseOverData?.id\r\n ? hoverStrokeColor\r\n : mapBorderColor\r\n }\r\n onGlobeClick={() => {\r\n setMouseClickData(undefined);\r\n }}\r\n onPolygonClick={(polygon: any) => {\r\n const clickedData = polygon?.properties?.[mapProperty]\r\n ? data.find(el => el.id === polygon?.properties?.[mapProperty])\r\n : undefined;\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (\r\n isEqual(mouseClickData, clickedData) &&\r\n resetSelectionOnDoubleClick &&\r\n clickedData\r\n ) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(clickedData);\r\n onSeriesMouseClick?.(clickedData);\r\n }\r\n }\r\n }}\r\n onPolygonHover={(polygon: any) => {\r\n const hoverData = polygon?.properties?.[mapProperty]\r\n ? data.find(el => el.id === polygon?.properties?.[mapProperty])\r\n : undefined;\r\n setMouseOverData(hoverData);\r\n onSeriesMouseOver?.(hoverData);\r\n }}\r\n atmosphereColor={atmosphereColor}\r\n atmosphereAltitude={atmosphereAltitude}\r\n globeCurvatureResolution={globeCurvatureResolution}\r\n globeMaterial={materials}\r\n backgroundColor='rgba(0, 0, 0, 0)'\r\n polygonsTransitionDuration={100}\r\n onGlobeReady={() => {\r\n if (globeEl.current) {\r\n globeEl.current.pointOfView({\r\n lat: centerLat,\r\n lng: centerLng,\r\n });\r\n const scene = globeEl.current.scene();\r\n setTimeout(() => {\r\n const polygons = scene.children[3]?.children[0]?.children[4]?.children || [];\r\n polygons.forEach(d => {\r\n const line = d.children[1];\r\n line.renderOrder = 2;\r\n });\r\n }, 300);\r\n const camera = globeEl.current.camera();\r\n scene.add(camera);\r\n handleGlobeReady();\r\n }\r\n }}\r\n />\r\n {showColorScale === false ? null : (\r\n <div className={cn('absolute left-4 bottom-4 map-color-legend', classNames?.colorLegend)}>\r\n {showLegend ? (\r\n <>\r\n <div\r\n className='color-legend-close-button bg-[rgba(240,240,240,0.7)] dark:bg-[rgba(30,30,30,0.7)] border border-[var(--gray-400)] rounded-full w-6 h-6 p-[3px] cursor-pointer z-10 absolute right-[-0.75rem] top-[-0.75rem]'\r\n onClick={() => {\r\n setShowLegend(false);\r\n }}\r\n >\r\n <X />\r\n </div>\r\n <div\r\n className='color-legend-box p-2 bg-[rgba(240,240,240,0.7)] dark:bg-[rgba(30,30,30,0.7)]'\r\n style={{\r\n width: categorical ? undefined : '340px',\r\n }}\r\n >\r\n {colorLegendTitle && colorLegendTitle !== '' ? (\r\n <P\r\n size='xs'\r\n marginBottom='xs'\r\n className='p-0 leading-normal overflow-hidden text-primary-gray-700 dark:text-primary-gray-300'\r\n style={{\r\n display: '-webkit-box',\r\n WebkitLineClamp: '1',\r\n WebkitBoxOrient: 'vertical',\r\n }}\r\n >\r\n {colorLegendTitle}\r\n </P>\r\n ) : null}\r\n {!categorical ? (\r\n <svg width='100%' viewBox='0 0 320 30' direction='ltr'>\r\n <g>\r\n {colorDomain.map((d, i) => (\r\n <g key={i} className='cursor-pointer'>\r\n <rect\r\n x={(i * 320) / colors.length + 1}\r\n y={1}\r\n width={320 / colors.length - 2}\r\n height={8}\r\n style={{\r\n fill: colors[i],\r\n stroke: colors[i],\r\n }}\r\n />\r\n <text\r\n x={((i + 1) * 320) / colors.length}\r\n y={25}\r\n className='fill-primary-gray-700 dark:fill-primary-gray-300 text-xs'\r\n style={{ textAnchor: 'middle' }}\r\n >\r\n {numberFormattingFunction(d as number, 'NA')}\r\n </text>\r\n </g>\r\n ))}\r\n <g>\r\n <rect\r\n x={(colorDomain.length * 320) / colors.length + 1}\r\n y={1}\r\n width={320 / colors.length - 2}\r\n height={8}\r\n style={{\r\n fill: colors[colorDomain.length],\r\n stroke: colors[colorDomain.length],\r\n }}\r\n />\r\n </g>\r\n </g>\r\n </svg>\r\n ) : (\r\n <div className='flex flex-col gap-3'>\r\n {colorDomain.map((d, i) => (\r\n <div key={i} className='flex gap-2 items-center'>\r\n <div\r\n className='w-2 h-2 rounded-full'\r\n style={{ backgroundColor: colors[i % colors.length] }}\r\n />\r\n <P size='sm' marginBottom='none' leading='none'>\r\n {d}\r\n </P>\r\n </div>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </>\r\n ) : (\r\n <button\r\n type='button'\r\n className='mb-0 border-0 bg-transparent p-0 self-start'\r\n onClick={() => {\r\n setShowLegend(true);\r\n }}\r\n >\r\n <div className='show-color-legend-button items-start text-sm font-medium cursor-pointer p-2 mb-0 flex text-primary-black dark:text-primary-gray-300 bg-primary-gray-300 dark:bg-primary-gray-600 border-primary-gray-400 dark:border-primary-gray-500'>\r\n Show Legend\r\n </div>\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n {mouseOverData && tooltip ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={mousePos.x}\r\n yPos={mousePos.y}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n\r\nexport default Graph;\r\n","import React, { useEffect, useEffectEvent, useRef, useState } from 'react';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\nimport * as THREE from 'three';\r\n\r\nimport Graph from './Graph';\r\n\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport {\r\n ChoroplethMapDataType,\r\n ClassNameObject,\r\n FogDataType,\r\n Languages,\r\n LightConfig,\r\n ScaleDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { fetchAndParseJSON } from '@/Utils/fetchAndParseData';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { getJenks } from '@/Utils/getJenks';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: ChoroplethMapDataType[];\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Colors for the choropleth map. Make sure the the colors are in hex code, any other format can cause issues. */\r\n colors?: string[];\r\n /** Domain of colors for the graph */\r\n colorDomain?: number[] | string[];\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Color for the areas where data is no available */\r\n mapNoDataColor?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n\r\n // Graph Parameters\r\n /** Map data as an object in geoJson format or a url for geoJson */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n mapData?: any;\r\n /** Stroke color of the regions in the map */\r\n mapBorderColor?: string;\r\n /** Center point of the map */\r\n centerPoint?: [number, number];\r\n /** Defines if the globe rotates automatically */\r\n autoRotate?: number | boolean;\r\n /** Defines the material property applied to the sphere of the globe */\r\n globeMaterial?: THREE.Material;\r\n /** Defines the lights for the 3D scene */\r\n lights?: LightConfig[];\r\n /** Defines the colo of the glow around the globe */\r\n atmosphereColor?: string;\r\n /** Defines if the globe can be zoomed when scrolled */\r\n enableZoom?: boolean;\r\n /** Position offset of the globe relative to the canvas center */\r\n globeOffset?: [number, number];\r\n /** Defines the camera distance from Earth. This helps in defining the default size of the globe. Smaller = closer camera therefore the globe is bigger) */\r\n scale?: number;\r\n /** Defines the spacing between the country shape polygon with the sphere */\r\n polygonAltitude?: number;\r\n /** Scale for the colors */\r\n scaleType?: Exclude<ScaleDataType, 'linear'>;\r\n /** Toggle visibility of color scale. */\r\n showColorScale?: boolean;\r\n /** Toggle if color scale is collapsed by default. */\r\n collapseColorScaleByDefault?: boolean;\r\n /** The max altitude of the atmosphere, in terms of globe radius units. */\r\n atmosphereAltitude?: number;\r\n /** Resolution in angular degrees of the sphere curvature. The finer the resolution, the more the globe is fragmented into smaller faces to approximate the spheric surface, at the cost of performance. */\r\n globeCurvatureResolution?: number;\r\n /** Defines fog settings for the scene. */\r\n fogSettings?: FogDataType;\r\n /** Property in the property object in mapData geoJson object is used to match to the id in the data object */\r\n mapProperty?: string;\r\n /** Countries or regions to be highlighted */\r\n selectedId?: string;\r\n /** Countries or regions to be highlighted */\r\n highlightedIds?: string[];\r\n /** Defines the altitude of the highlighted countries or the countries on mouseover. */\r\n highlightedAltitude?: number;\r\n /** Defines the opacity of the non-highlighted data */\r\n dimmedOpacity?: number;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n /** Reset selection on double-click. Only applicable when used in a dashboard context with filters. */\r\n resetSelectionOnDoubleClick?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n /** Details displayed on the modal when user clicks of a data point. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse over event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n /** Callback for mouse click event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Unique ID for the graph */\r\n graphID?: string;\r\n}\r\n\r\n/** For using these maps you will have to install [`three`](https://threejs.org/manual/) and [react-globe.gl](https://www.npmjs.com/package/react-globe.gl) package to your project */\r\nexport function ThreeDGlobe(props: Props) {\r\n const {\r\n data,\r\n mapData = 'https://raw.githubusercontent.com/UNDP-Data/dv-country-geojson/refs/heads/main/worldMap-simplified.json',\r\n graphTitle,\r\n colors,\r\n sources,\r\n graphDescription,\r\n height,\r\n width,\r\n footNote = 'The designations employed and the presentation of material on this map do not imply the expression of any opinion whatsoever on the part of the Secretariat of the United Nations or UNDP concerning the legal status of any country, territory, city or area or its authorities, or concerning the delimitation of its frontiers or boundaries.',\r\n colorDomain,\r\n colorLegendTitle,\r\n scaleType = 'threshold',\r\n padding,\r\n mapNoDataColor = Colors.light.graphNoData,\r\n backgroundColor = false,\r\n mapBorderColor = Colors.light.grays['gray-500'],\r\n relativeHeight,\r\n tooltip,\r\n graphID,\r\n mapProperty = 'ISO3',\r\n dataDownload = false,\r\n language = 'en',\r\n minHeight = 0,\r\n theme = 'light',\r\n ariaLabel,\r\n styles,\r\n classNames,\r\n autoRotate = true,\r\n enableZoom = true,\r\n globeMaterial,\r\n centerPoint = [0, 0],\r\n atmosphereColor = '#999',\r\n showColorScale = true,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n onSeriesMouseOver,\r\n onSeriesMouseClick,\r\n highlightedIds = [],\r\n highlightedAltitude = 0.1,\r\n dimmedOpacity = 0.3,\r\n scale = 1,\r\n globeOffset = [0, 0],\r\n polygonAltitude = 0.01,\r\n globeCurvatureResolution = 4,\r\n atmosphereAltitude = 0.15,\r\n fogSettings,\r\n lights = [\r\n {\r\n type: 'ambient',\r\n color: 0x404040,\r\n intensity: 0.4,\r\n },\r\n {\r\n type: 'directional',\r\n color: 0xffffff,\r\n intensity: 1,\r\n position: { x: 5, y: 10, z: 5 },\r\n },\r\n ],\r\n selectedId,\r\n collapseColorScaleByDefault,\r\n } = props;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mapShape, setMapShape] = useState<any>(undefined);\r\n\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const onUpdateShape = useEffectEvent((shape: any) => {\r\n setMapShape(shape);\r\n });\r\n useEffect(() => {\r\n if (typeof mapData === 'string') {\r\n const fetchData = fetchAndParseJSON(mapData);\r\n fetchData.then(d => {\r\n if (\r\n mapData ===\r\n 'https://raw.githubusercontent.com/UNDP-Data/dv-country-geojson/refs/heads/main/worldMap-simplified.json'\r\n ) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const features = d.features.map((el: any) => {\r\n if (el.geometry.type === 'Polygon') {\r\n const reversed = [...el.geometry.coordinates[0]].reverse();\r\n const geometry = { ...el.geometry, coordinates: [reversed] };\r\n return { ...el, geometry };\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const coord: any = [];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n el.geometry.coordinates.forEach((c: any) => {\r\n const reversed = [...c[0]].reverse();\r\n coord.push([reversed]);\r\n });\r\n const geometry = { ...el.geometry, coordinates: coord };\r\n return { ...el, geometry };\r\n });\r\n onUpdateShape(features);\r\n } else onUpdateShape(d.features);\r\n });\r\n } else {\r\n onUpdateShape(mapData.features);\r\n }\r\n }, [mapData]);\r\n\r\n const domain =\r\n colorDomain ||\r\n (scaleType === 'categorical'\r\n ? getUniqValue(data, 'x')\r\n : getJenks(\r\n data.map(d => d.x as number | null | undefined),\r\n colors?.length || 4,\r\n ));\r\n return (\r\n <GraphContainer\r\n className={classNames?.graphContainer}\r\n style={styles?.graphContainer}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={ariaLabel}\r\n backgroundColor={backgroundColor}\r\n theme={theme}\r\n language={language}\r\n minHeight={minHeight}\r\n width={width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n padding={padding}\r\n >\r\n {graphTitle || graphDescription || dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n graphDownload={undefined}\r\n dataDownload={\r\n dataDownload\r\n ? data.map(d => d.data).filter(d => d !== undefined).length > 0\r\n ? data.map(d => d.data).filter(d => d !== undefined)\r\n : data.filter(d => d !== undefined)\r\n : null\r\n }\r\n />\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {svgWidth && svgHeight && mapShape ? (\r\n <Graph\r\n data={data}\r\n globeOffset={globeOffset}\r\n polygonData={mapShape}\r\n colorDomain={domain}\r\n width={svgWidth}\r\n height={svgHeight}\r\n colors={\r\n colors ||\r\n (scaleType === 'categorical'\r\n ? Colors[theme].sequentialColors[\r\n `neutralColorsx0${domain.length as 4 | 5 | 6 | 7 | 8 | 9}`\r\n ]\r\n : Colors[theme].sequentialColors[\r\n `neutralColorsx0${(domain.length + 1) as 4 | 5 | 6 | 7 | 8 | 9}`\r\n ])\r\n }\r\n mapNoDataColor={mapNoDataColor}\r\n categorical={scaleType === 'categorical'}\r\n mapBorderColor={mapBorderColor}\r\n tooltip={tooltip}\r\n mapProperty={mapProperty}\r\n styles={styles}\r\n classNames={classNames}\r\n autoRotate={autoRotate === true ? 1.5 : autoRotate === false ? 0 : autoRotate}\r\n enableZoom={enableZoom}\r\n globeMaterial={globeMaterial}\r\n atmosphereColor={atmosphereColor}\r\n colorLegendTitle={colorLegendTitle}\r\n showColorScale={showColorScale}\r\n hoverStrokeColor={\r\n theme === 'light' ? Colors.light.grays['gray-700'] : Colors.light.grays['gray-300']\r\n }\r\n highlightedIds={highlightedIds}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n scale={scale}\r\n polygonAltitude={polygonAltitude}\r\n centerLat={centerPoint[0]}\r\n centerLng={centerPoint[1]}\r\n atmosphereAltitude={atmosphereAltitude}\r\n globeCurvatureResolution={globeCurvatureResolution}\r\n fogSettings={fogSettings}\r\n lights={lights}\r\n highlightedAltitude={highlightedAltitude}\r\n selectedId={selectedId}\r\n collapseColorScaleByDefault={collapseColorScaleByDefault}\r\n dimmedOpacity={dimmedOpacity}\r\n />\r\n ) : (\r\n <div\r\n style={{\r\n height: `${Math.max(\r\n minHeight,\r\n height ||\r\n (relativeHeight\r\n ? minHeight\r\n ? (width || svgWidth) * relativeHeight > minHeight\r\n ? (width || svgWidth) * relativeHeight\r\n : minHeight\r\n : (width || svgWidth) * relativeHeight\r\n : svgHeight),\r\n )}px`,\r\n }}\r\n className='flex items-center justify-center'\r\n >\r\n <Spinner aria-label='Loading graph' />\r\n </div>\r\n )}\r\n </GraphArea>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["removeHash","hex","parseHex","nakedHex","isShort","twoDigitHexR","twoDigitHexG","twoDigitHexB","twoDigitHexA","hexToDecimal","hexesToDecimals","_ref","r","g","b","a","isNumeric","n","formatRgb","decimalObject","parameterA","parsedA","hexToRgba","hashlessHex","hexObject","build","createLightFromConfig","config","light","type","THREE","AmbientLight","color","intensity","DirectionalLight","position","set","x","y","z","target","undefined","castShadow","shadow","mapSize","width","height","camera","near","far","PointLight","distance","decay","SpotLight","angle","Math","PI","penumbra","Error","Graph","props","autoRotate","data","enableZoom","categorical","colorDomain","colors","globeMaterial","polygonData","mapProperty","mapBorderColor","atmosphereColor","tooltip","styles","classNames","mapNoDataColor","colorLegendTitle","showColorScale","hoverStrokeColor","detailsOnClick","onSeriesMouseClick","onSeriesMouseOver","resetSelectionOnDoubleClick","highlightedIds","scale","globeOffset","polygonAltitude","centerLng","centerLat","atmosphereAltitude","globeCurvatureResolution","fogSettings","lights","highlightedAltitude","selectedId","collapseColorScaleByDefault","dimmedOpacity","globeReady","setGlobeReady","useState","globeEl","useRef","mouseClickData","setMouseClickData","showLegend","setShowLegend","mousePos","setMousePos","mouseOverData","setMouseOverData","colorScale","scaleOrdinal","domain","range","scaleThreshold","useEffect","current","controls","autoRotateSpeed","selectedPolygon","find","d","properties","lng","lat","getCentroidCoordinates","pointOfView","altitude","canvas","renderer","domElement","handleMouseMove","e","clientX","clientY","addEventListener","removeEventListener","materials","MeshBasicMaterial","setupCustomLighting","useCallback","scene","lightsAndObjToRemove","traverse","obj","Light","push","children","forEach","parent","remove","map","i","add","fog","Fog","handleGlobeReady","jsxs","jsx","Globe","polygon","includes","id","opacity","length","val","el","clickedData","isEqual","hoverData","setTimeout","polygons","line","renderOrder","cn","colorLegend","Fragment","X","P","display","WebkitLineClamp","WebkitBoxOrient","backgroundColor","fill","stroke","textAnchor","numberFormattingFunction","Tooltip","DetailsModal","modal","ThreeDGlobe","$","_c","mapData","t0","graphTitle","sources","graphDescription","footNote","t1","scaleType","t2","padding","t3","t4","t5","relativeHeight","graphID","t6","dataDownload","t7","language","t8","minHeight","t9","theme","t10","ariaLabel","t11","t12","centerPoint","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","Colors","graphNoData","grays","t26","t27","t28","t29","mapShape","setMapShape","svgWidth","setSvgWidth","svgHeight","setSvgHeight","graphDiv","graphParentDiv","t30","t31","Symbol","for","resizeObserver","ResizeObserver","entries","clientWidth","clientHeight","observe","disconnect","t32","shape","onUpdateShape","useEffectEvent","t33","fetchAndParseJSON","then","features","_temp","t34","t35","getUniqValue","getJenks","_temp2","t36","graphContainer","t37","t38","description","title","GraphHeader","_temp3","filter","_temp4","_temp5","_temp6","_temp7","t39","GraphArea","sequentialColors","max","Spinner","t40","footnote","source","GraphFooter","t41","GraphContainer","d_3","d_2","d_1","d_5","d_4","d_0","geometry","reversed","coordinates","reverse","coord","c","reversed_0","geometry_0"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"ThreeDGlobe.js","sources":["../node_modules/hex-to-rgba/build/index.js","../src/Components/Graphs/Maps/ThreeDGlobe/Graph.tsx","../src/Components/Graphs/Maps/ThreeDGlobe/index.tsx"],"sourcesContent":["\"use strict\";\n\nvar removeHash = function removeHash(hex) {\n return hex.charAt(0) === '#' ? hex.slice(1) : hex;\n};\n\nvar parseHex = function parseHex(nakedHex) {\n var isShort = nakedHex.length === 3 || nakedHex.length === 4;\n var twoDigitHexR = isShort ? \"\".concat(nakedHex.slice(0, 1)).concat(nakedHex.slice(0, 1)) : nakedHex.slice(0, 2);\n var twoDigitHexG = isShort ? \"\".concat(nakedHex.slice(1, 2)).concat(nakedHex.slice(1, 2)) : nakedHex.slice(2, 4);\n var twoDigitHexB = isShort ? \"\".concat(nakedHex.slice(2, 3)).concat(nakedHex.slice(2, 3)) : nakedHex.slice(4, 6);\n var twoDigitHexA = (isShort ? \"\".concat(nakedHex.slice(3, 4)).concat(nakedHex.slice(3, 4)) : nakedHex.slice(6, 8)) || 'ff'; // const numericA = +((parseInt(a, 16) / 255).toFixed(2));\n\n return {\n r: twoDigitHexR,\n g: twoDigitHexG,\n b: twoDigitHexB,\n a: twoDigitHexA\n };\n};\n\nvar hexToDecimal = function hexToDecimal(hex) {\n return parseInt(hex, 16);\n};\n\nvar hexesToDecimals = function hexesToDecimals(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b,\n a = _ref.a;\n return {\n r: hexToDecimal(r),\n g: hexToDecimal(g),\n b: hexToDecimal(b),\n a: +(hexToDecimal(a) / 255).toFixed(2)\n };\n};\n\nvar isNumeric = function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}; // eslint-disable-line no-restricted-globals, max-len\n\n\nvar formatRgb = function formatRgb(decimalObject, parameterA) {\n var r = decimalObject.r,\n g = decimalObject.g,\n b = decimalObject.b,\n parsedA = decimalObject.a;\n var a = isNumeric(parameterA) ? parameterA : parsedA;\n return \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(a, \")\");\n};\n/**\n * Turns an old-fashioned css hex color value into a rgb color value.\n *\n * If you specify an alpha value, you'll get a rgba() value instead.\n *\n * @param The hex value to convert. ('123456'. '#123456', ''123', '#123')\n * @param An alpha value to apply. (optional) ('0.5', '0.25')\n * @return An rgb or rgba value. ('rgb(11, 22, 33)'. 'rgba(11, 22, 33, 0.5)')\n */\n\n\nvar hexToRgba = function hexToRgba(hex, a) {\n var hashlessHex = removeHash(hex);\n var hexObject = parseHex(hashlessHex);\n var decimalObject = hexesToDecimals(hexObject);\n return formatRgb(decimalObject, a);\n};\n\nmodule.exports = hexToRgba;","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport Globe, { GlobeMethods } from 'react-globe.gl';\r\nimport isEqual from 'fast-deep-equal';\r\nimport { useCallback, useEffect, useRef, useState } from 'react';\r\nimport { scaleOrdinal, scaleThreshold } from 'd3-scale';\r\nimport * as THREE from 'three';\r\nimport { P } from '@undp/design-system-react/Typography';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport hexToRgba from 'hex-to-rgba';\r\n\r\nimport {\r\n ChoroplethMapDataType,\r\n ClassNameObject,\r\n FogDataType,\r\n LightConfig,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { Tooltip } from '@/Components/Elements/Tooltip';\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\nimport { ExpandIcon, X } from '@/Components/Icons';\r\nimport { getCentroidCoordinates } from '@/Utils/getCentroidCoordinates';\r\nimport { DetailsModal } from '@/Components/Elements/DetailsModal';\r\n\r\ninterface Props {\r\n width: number;\r\n data: ChoroplethMapDataType[];\r\n autoRotate: number;\r\n enableZoom: boolean;\r\n categorical: boolean;\r\n colorDomain: (number | string)[];\r\n colors: string[];\r\n height: number;\r\n globeMaterial?: THREE.Material;\r\n lights: LightConfig[];\r\n polygonData: any;\r\n mapProperty: string;\r\n mapBorderColor: string;\r\n atmosphereColor: string;\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n onSeriesMouseOver?: (_d: any) => void;\r\n onSeriesMouseClick?: (_d: any) => void;\r\n mapNoDataColor: string;\r\n colorLegendTitle?: string;\r\n showColorScale: boolean;\r\n hoverStrokeColor: string;\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n resetSelectionOnDoubleClick: boolean;\r\n highlightedIds: string[];\r\n scale: number;\r\n globeOffset: [number, number];\r\n polygonAltitude: number;\r\n centerLng: number;\r\n centerLat: number;\r\n atmosphereAltitude: number;\r\n globeCurvatureResolution: number;\r\n fogSettings?: FogDataType;\r\n highlightedAltitude: number;\r\n selectedId?: string;\r\n collapseColorScaleByDefault?: boolean;\r\n dimmedOpacity: number;\r\n locale: string;\r\n}\r\n\r\nfunction createLightFromConfig(config: LightConfig): THREE.Light {\r\n let light: THREE.Light;\r\n\r\n switch (config.type) {\r\n case 'ambient':\r\n light = new THREE.AmbientLight(config.color, config.intensity);\r\n break;\r\n case 'directional':\r\n light = new THREE.DirectionalLight(config.color, config.intensity);\r\n if (config.position) {\r\n if (config.position === 'camera') light.position.set(0, 0, 0);\r\n else light.position.set(config.position.x, config.position.y, config.position.z);\r\n }\r\n if (config.target || config.position === 'camera') {\r\n (light as THREE.SpotLight).target.position.set(\r\n config.target?.x || 0,\r\n config.target?.y || 0,\r\n config.target?.z === undefined ? -1 : config.target.z,\r\n );\r\n }\r\n if (config.castShadow) {\r\n (light as THREE.DirectionalLight).castShadow = true;\r\n if (config.shadow) {\r\n (light as THREE.DirectionalLight).shadow.mapSize.width = config.shadow.mapSize.width;\r\n (light as THREE.DirectionalLight).shadow.mapSize.height = config.shadow.mapSize.height;\r\n (light as THREE.DirectionalLight).shadow.camera.near = config.shadow.camera.near;\r\n (light as THREE.DirectionalLight).shadow.camera.far = config.shadow.camera.far;\r\n }\r\n }\r\n break;\r\n case 'point':\r\n light = new THREE.PointLight(\r\n config.color,\r\n config.intensity,\r\n config.distance || 0,\r\n config.decay || 2,\r\n );\r\n if (config.position) {\r\n if (config.position === 'camera') light.position.set(0, 0, 0);\r\n else light.position.set(config.position.x, config.position.y, config.position.z);\r\n }\r\n break;\r\n case 'spot':\r\n light = new THREE.SpotLight(\r\n config.color,\r\n config.intensity,\r\n config.distance || 0,\r\n config.angle || Math.PI / 3,\r\n config.penumbra || 0,\r\n config.decay || 2,\r\n );\r\n if (config.position) {\r\n if (config.position === 'camera') light.position.set(0, 0, 0);\r\n else light.position.set(config.position.x, config.position.y, config.position.z);\r\n }\r\n if (config.target || config.position === 'camera') {\r\n (light as THREE.SpotLight).target.position.set(\r\n config.target?.x || 0,\r\n config.target?.y || 0,\r\n config.target?.z || 0,\r\n );\r\n }\r\n if (config.castShadow) {\r\n (light as THREE.SpotLight).castShadow = true;\r\n if (config.shadow) {\r\n (light as THREE.SpotLight).shadow.mapSize.width = config.shadow.mapSize.width;\r\n (light as THREE.SpotLight).shadow.mapSize.height = config.shadow.mapSize.height;\r\n (light as THREE.SpotLight).shadow.camera.near = config.shadow.camera.near;\r\n (light as THREE.SpotLight).shadow.camera.far = config.shadow.camera.far;\r\n }\r\n }\r\n break;\r\n default:\r\n throw new Error('Unknown light type');\r\n }\r\n\r\n return light;\r\n}\r\nfunction Graph(props: Props) {\r\n const {\r\n width,\r\n autoRotate,\r\n data,\r\n enableZoom,\r\n categorical,\r\n colorDomain,\r\n colors,\r\n globeMaterial,\r\n height,\r\n polygonData,\r\n mapProperty,\r\n mapBorderColor,\r\n atmosphereColor,\r\n tooltip,\r\n styles,\r\n classNames,\r\n mapNoDataColor,\r\n colorLegendTitle,\r\n showColorScale,\r\n hoverStrokeColor,\r\n detailsOnClick,\r\n onSeriesMouseClick,\r\n onSeriesMouseOver,\r\n resetSelectionOnDoubleClick,\r\n highlightedIds,\r\n scale,\r\n globeOffset,\r\n polygonAltitude,\r\n centerLng,\r\n centerLat,\r\n atmosphereAltitude,\r\n globeCurvatureResolution,\r\n fogSettings,\r\n lights,\r\n highlightedAltitude,\r\n selectedId,\r\n collapseColorScaleByDefault,\r\n dimmedOpacity,\r\n locale,\r\n } = props;\r\n const [globeReady, setGlobeReady] = useState(false);\r\n const globeEl = useRef<GlobeMethods | undefined>(undefined);\r\n const [mouseClickData, setMouseClickData] = useState<any>(undefined);\r\n\r\n const [showLegend, setShowLegend] = useState(\r\n collapseColorScaleByDefault === undefined ? !(width < 680) : !collapseColorScaleByDefault,\r\n );\r\n const [mousePos, setMousePos] = useState({ x: 0, y: 0 });\r\n const [mouseOverData, setMouseOverData] = useState<ChoroplethMapDataType | undefined>(undefined);\r\n const colorScale = categorical\r\n ? scaleOrdinal<number | string, string>().domain(colorDomain).range(colors)\r\n : scaleThreshold<number, string>()\r\n .domain(colorDomain as number[])\r\n .range(colors);\r\n useEffect(() => {\r\n if (globeEl.current) {\r\n globeEl.current.controls().enableZoom = enableZoom;\r\n }\r\n }, [enableZoom]);\r\n useEffect(() => {\r\n if (globeEl.current) {\r\n if (mouseOverData || selectedId) {\r\n globeEl.current.controls().autoRotate = false;\r\n } else {\r\n globeEl.current.controls().autoRotate = autoRotate === 0 ? false : true;\r\n globeEl.current.controls().autoRotateSpeed = autoRotate;\r\n }\r\n }\r\n }, [mouseOverData, selectedId, autoRotate]);\r\n useEffect(() => {\r\n if (globeEl.current && selectedId) {\r\n const selectedPolygon = polygonData.find(\r\n (d: any) => d.properties[mapProperty] === selectedId,\r\n );\r\n const [lng, lat] = getCentroidCoordinates(selectedPolygon);\r\n globeEl.current.pointOfView({ lat, lng, altitude: scale }, 1000);\r\n }\r\n }, [selectedId, scale, polygonData, mapProperty]);\r\n\r\n useEffect(() => {\r\n const canvas = globeEl.current?.renderer().domElement;\r\n if (!canvas) return;\r\n\r\n const handleMouseMove = (e: MouseEvent) => {\r\n setMousePos({ x: e.clientX, y: e.clientY });\r\n };\r\n\r\n canvas.addEventListener('mousemove', handleMouseMove);\r\n return () => canvas.removeEventListener('mousemove', handleMouseMove);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (globeEl.current) {\r\n globeEl.current.pointOfView({ lat: centerLat, lng: centerLng, altitude: scale }, 1000);\r\n }\r\n }, [scale, centerLng, centerLat]);\r\n const materials =\r\n globeMaterial ||\r\n new THREE.MeshBasicMaterial({\r\n color: '#FFF',\r\n });\r\n const setupCustomLighting = useCallback(() => {\r\n if (!globeEl.current) return;\r\n\r\n const scene = globeEl.current.scene();\r\n const camera = globeEl.current.camera();\r\n\r\n let lightsAndObjToRemove: THREE.Object3D[] = [];\r\n scene.traverse(obj => {\r\n if (obj instanceof THREE.Light) {\r\n lightsAndObjToRemove.push(obj);\r\n }\r\n });\r\n lightsAndObjToRemove = [...lightsAndObjToRemove, ...camera.children];\r\n lightsAndObjToRemove.forEach(light => light.parent?.remove(light));\r\n\r\n const lightConfig = lights.map(config => createLightFromConfig(config));\r\n lightConfig.forEach((light, i) => {\r\n if (lights[i].type !== 'ambient' && lights[i].position === 'camera') {\r\n camera.add(light);\r\n if (lights[i].type !== 'point') {\r\n camera.add((light as THREE.DirectionalLight | THREE.SpotLight).target);\r\n }\r\n } else {\r\n scene.add(light);\r\n }\r\n });\r\n\r\n if (fogSettings) {\r\n scene.fog = new THREE.Fog(fogSettings.color, fogSettings.near, fogSettings.far);\r\n }\r\n }, [lights, fogSettings]);\r\n\r\n const handleGlobeReady = () => {\r\n setGlobeReady(true);\r\n setupCustomLighting();\r\n };\r\n useEffect(() => {\r\n if (globeReady) {\r\n setupCustomLighting();\r\n }\r\n }, [globeReady, setupCustomLighting]);\r\n return (\r\n <div className='relative'>\r\n <Globe\r\n ref={globeEl}\r\n height={height}\r\n width={width}\r\n globeOffset={globeOffset}\r\n lineHoverPrecision={0}\r\n polygonsData={polygonData}\r\n polygonAltitude={(polygon: any) =>\r\n highlightedIds.includes(polygon?.properties?.[mapProperty]) ||\r\n polygon?.properties?.[mapProperty] === selectedId\r\n ? highlightedAltitude\r\n : polygon?.properties?.[mapProperty] === mouseOverData?.id ||\r\n polygon?.properties?.[mapProperty] === mouseClickData?.id\r\n ? highlightedAltitude\r\n : polygonAltitude\r\n }\r\n polygonCapColor={(polygon: any) => {\r\n const opacity = selectedId\r\n ? polygon?.properties?.[mapProperty] === selectedId\r\n ? 1\r\n : dimmedOpacity\r\n : highlightedIds.length !== 0\r\n ? highlightedIds.includes(polygon?.properties?.[mapProperty])\r\n ? 1\r\n : dimmedOpacity\r\n : 1;\r\n const id = polygon?.properties?.[mapProperty];\r\n const val = data.find(el => el.id === id)?.x;\r\n const color = val !== undefined && val !== null ? colorScale(val as any) : mapNoDataColor;\r\n return hexToRgba(color, `${opacity}`);\r\n }}\r\n polygonSideColor={(polygon: any) => {\r\n const id = polygon?.properties?.[mapProperty];\r\n const val = data.find(el => el.id === id)?.x;\r\n const opacity = selectedId\r\n ? polygon?.properties?.[mapProperty] === selectedId\r\n ? 1\r\n : dimmedOpacity\r\n : highlightedIds.length !== 0\r\n ? highlightedIds.includes(polygon?.properties?.[mapProperty])\r\n ? 1\r\n : dimmedOpacity\r\n : 1;\r\n const color = val !== undefined && val !== null ? colorScale(val as any) : mapNoDataColor;\r\n return hexToRgba(color, `${opacity}`);\r\n }}\r\n polygonStrokeColor={(polygon: any) =>\r\n polygon?.properties?.[mapProperty] === mouseOverData?.id\r\n ? hoverStrokeColor\r\n : mapBorderColor\r\n }\r\n onGlobeClick={() => {\r\n setMouseClickData(undefined);\r\n }}\r\n onPolygonClick={(polygon: any) => {\r\n const clickedData = polygon?.properties?.[mapProperty]\r\n ? data.find(el => el.id === polygon?.properties?.[mapProperty])\r\n : undefined;\r\n if (onSeriesMouseClick || detailsOnClick) {\r\n if (\r\n isEqual(mouseClickData, clickedData) &&\r\n resetSelectionOnDoubleClick &&\r\n clickedData\r\n ) {\r\n setMouseClickData(undefined);\r\n onSeriesMouseClick?.(undefined);\r\n } else {\r\n setMouseClickData(clickedData);\r\n onSeriesMouseClick?.(clickedData);\r\n }\r\n }\r\n }}\r\n onPolygonHover={(polygon: any) => {\r\n const hoverData = polygon?.properties?.[mapProperty]\r\n ? data.find(el => el.id === polygon?.properties?.[mapProperty])\r\n : undefined;\r\n setMouseOverData(hoverData);\r\n onSeriesMouseOver?.(hoverData);\r\n }}\r\n atmosphereColor={atmosphereColor}\r\n atmosphereAltitude={atmosphereAltitude}\r\n globeCurvatureResolution={globeCurvatureResolution}\r\n globeMaterial={materials}\r\n backgroundColor='rgba(0, 0, 0, 0)'\r\n polygonsTransitionDuration={100}\r\n onGlobeReady={() => {\r\n if (globeEl.current) {\r\n globeEl.current.pointOfView({\r\n lat: centerLat,\r\n lng: centerLng,\r\n });\r\n const scene = globeEl.current.scene();\r\n setTimeout(() => {\r\n const polygons = scene.children[3]?.children[0]?.children[4]?.children || [];\r\n polygons.forEach(d => {\r\n const line = d.children[1];\r\n line.renderOrder = 2;\r\n });\r\n }, 300);\r\n const camera = globeEl.current.camera();\r\n scene.add(camera);\r\n handleGlobeReady();\r\n }\r\n }}\r\n />\r\n {showColorScale === false ? null : (\r\n <div className={cn('absolute left-4 bottom-4 map-color-legend', classNames?.colorLegend)}>\r\n {showLegend ? (\r\n <>\r\n <div\r\n className='color-legend-close-button bg-[rgba(240,240,240,0.7)] dark:bg-[rgba(30,30,30,0.7)] border border-[var(--gray-400)] rounded-full w-6 h-6 p-[3px] cursor-pointer z-10 absolute right-[-0.75rem] top-[-0.75rem]'\r\n onClick={() => {\r\n setShowLegend(false);\r\n }}\r\n >\r\n <X />\r\n </div>\r\n <div\r\n className='color-legend-box p-2 bg-[rgba(240,240,240,0.7)] dark:bg-[rgba(30,30,30,0.7)]'\r\n style={{\r\n width: categorical ? undefined : '340px',\r\n }}\r\n >\r\n {colorLegendTitle && colorLegendTitle !== '' ? (\r\n <P\r\n size='xs'\r\n marginBottom='xs'\r\n className='p-0 leading-normal overflow-hidden text-primary-gray-700 dark:text-primary-gray-300'\r\n style={{\r\n display: '-webkit-box',\r\n WebkitLineClamp: '1',\r\n WebkitBoxOrient: 'vertical',\r\n }}\r\n >\r\n {colorLegendTitle}\r\n </P>\r\n ) : null}\r\n {!categorical ? (\r\n <svg width='100%' viewBox='0 0 320 30' direction='ltr'>\r\n <g>\r\n {colorDomain.map((d, i) => (\r\n <g key={i} className='cursor-pointer'>\r\n <rect\r\n x={(i * 320) / colors.length + 1}\r\n y={1}\r\n width={320 / colors.length - 2}\r\n height={8}\r\n style={{\r\n fill: colors[i],\r\n stroke: colors[i],\r\n }}\r\n />\r\n <text\r\n x={((i + 1) * 320) / colors.length}\r\n y={25}\r\n className='fill-primary-gray-700 dark:fill-primary-gray-300 text-xs'\r\n style={{ textAnchor: 'middle' }}\r\n >\r\n {numberFormattingFunction(\r\n d as number,\r\n undefined,\r\n undefined,\r\n undefined,\r\n undefined,\r\n locale,\r\n )}\r\n </text>\r\n </g>\r\n ))}\r\n <g>\r\n <rect\r\n x={(colorDomain.length * 320) / colors.length + 1}\r\n y={1}\r\n width={320 / colors.length - 2}\r\n height={8}\r\n style={{\r\n fill: colors[colorDomain.length],\r\n stroke: colors[colorDomain.length],\r\n }}\r\n />\r\n </g>\r\n </g>\r\n </svg>\r\n ) : (\r\n <div className='flex flex-col gap-3'>\r\n {colorDomain.map((d, i) => (\r\n <div key={i} className='flex gap-2 items-center'>\r\n <div\r\n className='w-2 h-2 rounded-full'\r\n style={{ backgroundColor: colors[i % colors.length] }}\r\n />\r\n <P size='sm' marginBottom='none' leading='none'>\r\n {d}\r\n </P>\r\n </div>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </>\r\n ) : (\r\n <button\r\n type='button'\r\n className='p-1 border-0 rounded-[2px] text-primary-gray-700 bg-primary-gray-300 dark:bg-primary-gray-500 map-legend-button'\r\n onClick={() => {\r\n setShowLegend(true);\r\n }}\r\n >\r\n <ExpandIcon />\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n {mouseOverData && tooltip ? (\r\n <Tooltip\r\n data={mouseOverData}\r\n body={tooltip}\r\n xPos={mousePos.x}\r\n yPos={mousePos.y}\r\n backgroundStyle={styles?.tooltip}\r\n className={classNames?.tooltip}\r\n />\r\n ) : null}\r\n {detailsOnClick && mouseClickData !== undefined ? (\r\n <DetailsModal\r\n body={detailsOnClick}\r\n data={mouseClickData}\r\n setData={setMouseClickData}\r\n className={classNames?.modal}\r\n />\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n\r\nexport default Graph;\r\n","import React, { useEffect, useEffectEvent, useRef, useState } from 'react';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\nimport * as THREE from 'three';\r\n\r\nimport Graph from './Graph';\r\n\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport {\r\n ChoroplethMapDataType,\r\n ClassNameObject,\r\n FogDataType,\r\n Languages,\r\n LightConfig,\r\n ScaleDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n} from '@/Types';\r\nimport { fetchAndParseJSON } from '@/Utils/fetchAndParseData';\r\nimport { Colors } from '@/Components/ColorPalette';\r\nimport { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { getJenks } from '@/Utils/getJenks';\r\nimport { GraphArea, GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: ChoroplethMapDataType[];\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Colors for the choropleth map. Make sure the the colors are in hex code, any other format can cause issues. */\r\n colors?: string[];\r\n /** Domain of colors for the graph */\r\n colorDomain?: number[] | string[];\r\n /** Title for the color legend */\r\n colorLegendTitle?: string;\r\n /** Color for the areas where data is no available */\r\n mapNoDataColor?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Minimum height of the graph */\r\n minHeight?: number;\r\n /** Relative height scaling factor. This overwrites the height props */\r\n relativeHeight?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n\r\n // Graph Parameters\r\n /** Map data as an object in geoJson format or a url for geoJson */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n mapData?: any;\r\n /** Stroke color of the regions in the map */\r\n mapBorderColor?: string;\r\n /** Center point of the map */\r\n centerPoint?: [number, number];\r\n /** Defines if the globe rotates automatically */\r\n autoRotate?: number | boolean;\r\n /** Defines the material property applied to the sphere of the globe */\r\n globeMaterial?: THREE.Material;\r\n /** Defines the lights for the 3D scene */\r\n lights?: LightConfig[];\r\n /** Defines the colo of the glow around the globe */\r\n atmosphereColor?: string;\r\n /** Defines if the globe can be zoomed when scrolled */\r\n enableZoom?: boolean;\r\n /** Position offset of the globe relative to the canvas center */\r\n globeOffset?: [number, number];\r\n /** Defines the camera distance from Earth. This helps in defining the default size of the globe. Smaller = closer camera therefore the globe is bigger) */\r\n scale?: number;\r\n /** Defines the spacing between the country shape polygon with the sphere */\r\n polygonAltitude?: number;\r\n /** Scale for the colors */\r\n scaleType?: Exclude<ScaleDataType, 'linear'>;\r\n /** Toggle visibility of color scale. */\r\n showColorScale?: boolean;\r\n /** Locale for number formatting. Must matches what `Intl.NumberFormat` expects. */\r\n locale?: string;\r\n /** Toggle if color scale is collapsed by default. */\r\n collapseColorScaleByDefault?: boolean;\r\n /** The max altitude of the atmosphere, in terms of globe radius units. */\r\n atmosphereAltitude?: number;\r\n /** Resolution in angular degrees of the sphere curvature. The finer the resolution, the more the globe is fragmented into smaller faces to approximate the spheric surface, at the cost of performance. */\r\n globeCurvatureResolution?: number;\r\n /** Defines fog settings for the scene. */\r\n fogSettings?: FogDataType;\r\n /** Property in the property object in mapData geoJson object is used to match to the id in the data object */\r\n mapProperty?: string;\r\n /** Countries or regions to be highlighted */\r\n selectedId?: string;\r\n /** Countries or regions to be highlighted */\r\n highlightedIds?: string[];\r\n /** Defines the altitude of the highlighted countries or the countries on mouseover. */\r\n highlightedAltitude?: number;\r\n /** Defines the opacity of the non-highlighted data */\r\n dimmedOpacity?: number;\r\n /** Enable data download option as a csv */\r\n dataDownload?: boolean;\r\n /** Reset selection on double-click. Only applicable when used in a dashboard context with filters. */\r\n resetSelectionOnDoubleClick?: boolean;\r\n\r\n // Interactions and Callbacks\r\n /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n tooltip?: string | ((_d: any) => React.ReactNode);\r\n /** Details displayed on the modal when user clicks of a data point. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse over event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseOver?: (_d: any) => void;\r\n /** Callback for mouse click event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Unique ID for the graph */\r\n graphID?: string;\r\n}\r\n\r\n/** For using these maps you will have to install [`three`](https://threejs.org/manual/) and [react-globe.gl](https://www.npmjs.com/package/react-globe.gl) package to your project */\r\nexport function ThreeDGlobe(props: Props) {\r\n const {\r\n data,\r\n mapData = 'https://raw.githubusercontent.com/UNDP-Data/dv-country-geojson/refs/heads/main/worldMap-simplified.json',\r\n graphTitle,\r\n colors,\r\n sources,\r\n graphDescription,\r\n height,\r\n width,\r\n footNote = 'The designations employed and the presentation of material on this map do not imply the expression of any opinion whatsoever on the part of the Secretariat of the United Nations or UNDP concerning the legal status of any country, territory, city or area or its authorities, or concerning the delimitation of its frontiers or boundaries.',\r\n colorDomain,\r\n colorLegendTitle,\r\n scaleType = 'threshold',\r\n padding,\r\n mapNoDataColor = Colors.light.graphNoData,\r\n backgroundColor = false,\r\n mapBorderColor = Colors.light.grays['gray-500'],\r\n relativeHeight,\r\n tooltip,\r\n graphID,\r\n mapProperty = 'ISO3',\r\n dataDownload = false,\r\n language = 'en',\r\n minHeight = 0,\r\n theme = 'light',\r\n ariaLabel,\r\n styles,\r\n classNames,\r\n autoRotate = true,\r\n enableZoom = true,\r\n globeMaterial,\r\n centerPoint = [0, 0],\r\n atmosphereColor = '#999',\r\n showColorScale = true,\r\n resetSelectionOnDoubleClick = true,\r\n detailsOnClick,\r\n onSeriesMouseOver,\r\n onSeriesMouseClick,\r\n highlightedIds = [],\r\n highlightedAltitude = 0.1,\r\n dimmedOpacity = 0.3,\r\n scale = 1,\r\n globeOffset = [0, 0],\r\n polygonAltitude = 0.01,\r\n globeCurvatureResolution = 4,\r\n atmosphereAltitude = 0.15,\r\n fogSettings,\r\n lights = [\r\n {\r\n type: 'ambient',\r\n color: 0x404040,\r\n intensity: 0.4,\r\n },\r\n {\r\n type: 'directional',\r\n color: 0xffffff,\r\n intensity: 1,\r\n position: { x: 5, y: 10, z: 5 },\r\n },\r\n ],\r\n selectedId,\r\n collapseColorScaleByDefault,\r\n locale = 'en',\r\n } = props;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mapShape, setMapShape] = useState<any>(undefined);\r\n\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(entries[0].target.clientWidth || 620);\r\n setSvgHeight(entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, []);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const onUpdateShape = useEffectEvent((shape: any) => {\r\n setMapShape(shape);\r\n });\r\n useEffect(() => {\r\n if (typeof mapData === 'string') {\r\n const fetchData = fetchAndParseJSON(mapData);\r\n fetchData.then(d => {\r\n if (\r\n mapData ===\r\n 'https://raw.githubusercontent.com/UNDP-Data/dv-country-geojson/refs/heads/main/worldMap-simplified.json'\r\n ) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const features = d.features.map((el: any) => {\r\n if (el.geometry.type === 'Polygon') {\r\n const reversed = [...el.geometry.coordinates[0]].reverse();\r\n const geometry = { ...el.geometry, coordinates: [reversed] };\r\n return { ...el, geometry };\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const coord: any = [];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n el.geometry.coordinates.forEach((c: any) => {\r\n const reversed = [...c[0]].reverse();\r\n coord.push([reversed]);\r\n });\r\n const geometry = { ...el.geometry, coordinates: coord };\r\n return { ...el, geometry };\r\n });\r\n onUpdateShape(features);\r\n } else onUpdateShape(d.features);\r\n });\r\n } else {\r\n onUpdateShape(mapData.features);\r\n }\r\n }, [mapData]);\r\n\r\n const domain =\r\n colorDomain ||\r\n (scaleType === 'categorical'\r\n ? getUniqValue(data, 'x')\r\n : getJenks(\r\n data.map(d => d.x as number | null | undefined),\r\n colors?.length || 4,\r\n ));\r\n return (\r\n <GraphContainer\r\n className={classNames?.graphContainer}\r\n style={styles?.graphContainer}\r\n id={graphID}\r\n ref={graphParentDiv}\r\n aria-label={ariaLabel}\r\n backgroundColor={backgroundColor}\r\n theme={theme}\r\n language={language}\r\n minHeight={minHeight}\r\n width={width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n padding={padding}\r\n >\r\n {graphTitle || graphDescription || dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n graphDownload={undefined}\r\n dataDownload={\r\n dataDownload\r\n ? data.map(d => d.data).filter(d => d !== undefined).length > 0\r\n ? data.map(d => d.data).filter(d => d !== undefined)\r\n : data.filter(d => d !== undefined)\r\n : null\r\n }\r\n />\r\n ) : null}\r\n <GraphArea ref={graphDiv}>\r\n {svgWidth && svgHeight && mapShape ? (\r\n <Graph\r\n data={data}\r\n globeOffset={globeOffset}\r\n polygonData={mapShape}\r\n colorDomain={domain}\r\n width={svgWidth}\r\n height={svgHeight}\r\n colors={\r\n colors ||\r\n (scaleType === 'categorical'\r\n ? Colors[theme].sequentialColors[\r\n `neutralColorsx0${domain.length as 4 | 5 | 6 | 7 | 8 | 9}`\r\n ]\r\n : Colors[theme].sequentialColors[\r\n `neutralColorsx0${(domain.length + 1) as 4 | 5 | 6 | 7 | 8 | 9}`\r\n ])\r\n }\r\n mapNoDataColor={mapNoDataColor}\r\n categorical={scaleType === 'categorical'}\r\n mapBorderColor={mapBorderColor}\r\n tooltip={tooltip}\r\n mapProperty={mapProperty}\r\n styles={styles}\r\n classNames={classNames}\r\n autoRotate={autoRotate === true ? 1.5 : autoRotate === false ? 0 : autoRotate}\r\n enableZoom={enableZoom}\r\n globeMaterial={globeMaterial}\r\n atmosphereColor={atmosphereColor}\r\n colorLegendTitle={colorLegendTitle}\r\n showColorScale={showColorScale}\r\n hoverStrokeColor={\r\n theme === 'light' ? Colors.light.grays['gray-700'] : Colors.light.grays['gray-300']\r\n }\r\n highlightedIds={highlightedIds}\r\n resetSelectionOnDoubleClick={resetSelectionOnDoubleClick}\r\n detailsOnClick={detailsOnClick}\r\n onSeriesMouseOver={onSeriesMouseOver}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n scale={scale}\r\n polygonAltitude={polygonAltitude}\r\n centerLat={centerPoint[0]}\r\n centerLng={centerPoint[1]}\r\n atmosphereAltitude={atmosphereAltitude}\r\n globeCurvatureResolution={globeCurvatureResolution}\r\n fogSettings={fogSettings}\r\n lights={lights}\r\n highlightedAltitude={highlightedAltitude}\r\n selectedId={selectedId}\r\n collapseColorScaleByDefault={collapseColorScaleByDefault}\r\n dimmedOpacity={dimmedOpacity}\r\n locale={locale}\r\n />\r\n ) : (\r\n <div\r\n style={{\r\n height: `${Math.max(\r\n minHeight,\r\n height ||\r\n (relativeHeight\r\n ? minHeight\r\n ? (width || svgWidth) * relativeHeight > minHeight\r\n ? (width || svgWidth) * relativeHeight\r\n : minHeight\r\n : (width || svgWidth) * relativeHeight\r\n : svgHeight),\r\n )}px`,\r\n }}\r\n className='flex items-center justify-center'\r\n >\r\n <Spinner aria-label='Loading graph' />\r\n </div>\r\n )}\r\n </GraphArea>\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["removeHash","hex","parseHex","nakedHex","isShort","twoDigitHexR","twoDigitHexG","twoDigitHexB","twoDigitHexA","hexToDecimal","hexesToDecimals","_ref","r","g","b","a","isNumeric","n","formatRgb","decimalObject","parameterA","parsedA","hexToRgba","hashlessHex","hexObject","build","createLightFromConfig","config","light","type","THREE","AmbientLight","color","intensity","DirectionalLight","position","set","x","y","z","target","undefined","castShadow","shadow","mapSize","width","height","camera","near","far","PointLight","distance","decay","SpotLight","angle","Math","PI","penumbra","Error","Graph","props","autoRotate","data","enableZoom","categorical","colorDomain","colors","globeMaterial","polygonData","mapProperty","mapBorderColor","atmosphereColor","tooltip","styles","classNames","mapNoDataColor","colorLegendTitle","showColorScale","hoverStrokeColor","detailsOnClick","onSeriesMouseClick","onSeriesMouseOver","resetSelectionOnDoubleClick","highlightedIds","scale","globeOffset","polygonAltitude","centerLng","centerLat","atmosphereAltitude","globeCurvatureResolution","fogSettings","lights","highlightedAltitude","selectedId","collapseColorScaleByDefault","dimmedOpacity","locale","globeReady","setGlobeReady","useState","globeEl","useRef","mouseClickData","setMouseClickData","showLegend","setShowLegend","mousePos","setMousePos","mouseOverData","setMouseOverData","colorScale","scaleOrdinal","domain","range","scaleThreshold","useEffect","current","controls","autoRotateSpeed","selectedPolygon","find","d","properties","lng","lat","getCentroidCoordinates","pointOfView","altitude","canvas","renderer","domElement","handleMouseMove","e","clientX","clientY","addEventListener","removeEventListener","materials","MeshBasicMaterial","setupCustomLighting","useCallback","scene","lightsAndObjToRemove","traverse","obj","Light","push","children","forEach","parent","remove","map","i","add","fog","Fog","handleGlobeReady","jsxs","jsx","Globe","polygon","includes","id","opacity","length","val","el","clickedData","isEqual","hoverData","setTimeout","polygons","line","renderOrder","cn","colorLegend","Fragment","X","P","display","WebkitLineClamp","WebkitBoxOrient","backgroundColor","fill","stroke","textAnchor","numberFormattingFunction","ExpandIcon","Tooltip","DetailsModal","modal","ThreeDGlobe","$","_c","mapData","t0","graphTitle","sources","graphDescription","footNote","t1","scaleType","t2","padding","t3","t4","t5","relativeHeight","graphID","t6","dataDownload","t7","language","t8","minHeight","t9","theme","t10","ariaLabel","t11","t12","centerPoint","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","Colors","graphNoData","grays","t27","t28","t29","t30","mapShape","setMapShape","svgWidth","setSvgWidth","svgHeight","setSvgHeight","graphDiv","graphParentDiv","t31","t32","Symbol","for","resizeObserver","ResizeObserver","entries","clientWidth","clientHeight","observe","disconnect","t33","shape","onUpdateShape","useEffectEvent","t34","fetchAndParseJSON","then","features","_temp","t35","t36","getUniqValue","getJenks","_temp2","t37","graphContainer","t38","t39","description","title","GraphHeader","_temp3","filter","_temp4","_temp5","_temp6","_temp7","t40","GraphArea","sequentialColors","max","Spinner","t41","footnote","source","GraphFooter","t42","GraphContainer","d_3","d_2","d_1","d_5","d_4","d_0","geometry","reversed","coordinates","reverse","coord","c","reversed_0","geometry_0"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./index-CHPV5EwG-6v2a2njQ.cjs"),T=require("react"),$=require("./Typography-CZZxlj1W.cjs"),q=require("./numberFormattingFunction-02t-wJta.cjs");function F(A){const e=o.compilerRuntimeExports.c(52),{colorLegendTitle:k,colorDomain:r,colors:t,setSelectedColor:s,width:W,naColor:i,className:w,showNAColor:C}=A,[l,x]=T.useState(void 0),n=i?320:360;let c;e[0]!==w?(c=o.mo("flex flex-wrap gap-0 justify-center leading-0",w),e[0]=w,e[1]=c):c=e[1];const D=W?`${W}px`:"none";let m;e[2]!==D?(m={maxWidth:D},e[2]=D,e[3]=m):m=e[3];let h;e[4]!==k?(h=k&&k!==""?o.jsxRuntimeExports.jsx($._,{size:"sm",marginBottom:"2xs",className:"w-full text-center",children:k}):null,e[4]=k,e[5]=h):h=e[5];let E;e[6]===Symbol.for("react.memo_cache_sentinel")?(E={maxWidth:"360px"},e[6]=E):E=e[6];let d;if(e[7]!==r||e[8]!==t||e[9]!==l||e[10]!==n||e[11]!==s){let R;e[13]!==t||e[14]!==l||e[15]!==n||e[16]!==s?(R=(S,a)=>o.jsxRuntimeExports.jsxs("g",{onMouseOver:()=>{x(t[a]),s(t[a])},onMouseLeave:()=>{x(void 0),s(void 0)},className:"cursor-pointer",children:[o.jsxRuntimeExports.jsx("rect",{x:a*n/t.length+1,y:1,width:n/t.length-2,height:8,className:`stroke-1 ${l===t[a]?"stroke-primary-gray-700 dark:stroke-primary-gray-300":""}`,style:{fill:t[a],...l!==t[a]?{stroke:t[a]}:{}}}),o.jsxRuntimeExports.jsx("text",{x:(a+1)*n/t.length,y:25,className:"fill-primary-gray-700 dark:fill-primary-gray-300 text-sm",style:{textAnchor:"middle"},children:q.numberFormattingFunction(S,"NA",2,"","")})]},a),e[13]=t,e[14]=l,e[15]=n,e[16]=s,e[17]=R):R=e[17],d=r.map(R),e[7]=r,e[8]=t,e[9]=l,e[10]=n,e[11]=s,e[12]=d}else d=e[12];let g;e[18]!==r.length||e[19]!==t||e[20]!==s?(g=()=>{x(t[r.length]),s(t[r.length])},e[18]=r.length,e[19]=t,e[20]=s,e[21]=g):g=e[21];let u;e[22]!==s?(u=()=>{x(void 0),s(void 0)},e[22]=s,e[23]=u):u=e[23];const M=r.length*n/t.length+1,b=n/t.length-2,L=`cursor-pointer stroke-1 ${l===t[r.length]?"stroke-primary-gray-700 dark:stroke-primary-gray-300":""}`,O=t[r.length];let y;e[24]!==r.length||e[25]!==t||e[26]!==l?(y=l!==t[r.length]?{stroke:t[r.length]}:{},e[24]=r.length,e[25]=t,e[26]=l,e[27]=y):y=e[27];let p;e[28]!==O||e[29]!==y?(p={fill:O,...y},e[28]=O,e[29]=y,e[30]=p):p=e[30];let f;e[31]!==L||e[32]!==p||e[33]!==g||e[34]!==u||e[35]!==M||e[36]!==b?(f=o.jsxRuntimeExports.jsx("g",{children:o.jsxRuntimeExports.jsx("rect",{onMouseOver:g,onMouseLeave:u,x:M,y:1,width:b,height:8,className:L,style:p})}),e[31]=L,e[32]=p,e[33]=g,e[34]=u,e[35]=M,e[36]=b,e[37]=f):f=e[37];let j;e[38]!==l||e[39]!==i||e[40]!==s||e[41]!==C?(j=C?o.jsxRuntimeExports.jsxs("g",{onMouseOver:()=>{x(i||"#D4D6D8"),s(i||"#D4D6D8")},onMouseLeave:()=>{x(void 0),s(void 0)},className:"cursor-pointer",children:[o.jsxRuntimeExports.jsx("rect",{x:335,y:1,width:24,height:8,className:`stroke-1 ${l===i?"stroke-primary-gray-700 dark:stroke-primary-gray-300":""}`,style:{fill:i||"#D4D6D8",...l!==i?{stroke:i}:{},strokeWidth:1}}),o.jsxRuntimeExports.jsx("text",{x:337.5,y:25,className:"fill-primary-gray-700 dark:fill-primary-gray-300 text-sm",style:{textAnchor:"start"},children:"NA"})]}):null,e[38]=l,e[39]=i,e[40]=s,e[41]=C,e[42]=j):j=e[42];let v;e[43]!==f||e[44]!==j||e[45]!==d?(v=o.jsxRuntimeExports.jsx("svg",{width:"100%",viewBox:"0 0 360 30",style:E,direction:"ltr",children:o.jsxRuntimeExports.jsxs("g",{children:[d,f,j]})}),e[43]=f,e[44]=j,e[45]=d,e[46]=v):v=e[46];let N;return e[47]!==c||e[48]!==v||e[49]!==m||e[50]!==h?(N=o.jsxRuntimeExports.jsxs("div",{className:c,style:m,"aria-label":"Color legend",children:[h,v]}),e[47]=c,e[48]=v,e[49]=m,e[50]=h,e[51]=N):N=e[51],N}exports.ThresholdColorLegendWithMouseOver=F;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./index-CHPV5EwG-D4pAp7u0.cjs"),_=require("react"),B=require("./Typography-BqmyF1gP.cjs"),H=require("./numberFormattingFunction-Cn9R7CM9.cjs");function P(A){const e=o.compilerRuntimeExports.c(55),{colorLegendTitle:k,colorDomain:r,colors:t,setSelectedColor:s,width:T,naColor:i,className:C,showNAColor:D,locale:$,naLabel:q}=A,E=$===void 0?"en":$,M=q===void 0?"NA":q,[l,c]=_.useState(void 0),n=i?320:360;let x;e[0]!==C?(x=o.mo("flex flex-wrap gap-0 justify-center leading-0",C),e[0]=C,e[1]=x):x=e[1];const b=T?`${T}px`:"none";let m;e[2]!==b?(m={maxWidth:b},e[2]=b,e[3]=m):m=e[3];let h;e[4]!==k?(h=k&&k!==""?o.jsxRuntimeExports.jsx(B._,{size:"sm",marginBottom:"2xs",className:"w-full text-center",children:k}):null,e[4]=k,e[5]=h):h=e[5];let R;e[6]===Symbol.for("react.memo_cache_sentinel")?(R={maxWidth:"360px"},e[6]=R):R=e[6];let d;if(e[7]!==r||e[8]!==t||e[9]!==l||e[10]!==E||e[11]!==n||e[12]!==s){let w;e[14]!==t||e[15]!==l||e[16]!==E||e[17]!==n||e[18]!==s?(w=(F,a)=>o.jsxRuntimeExports.jsxs("g",{onMouseOver:()=>{c(t[a]),s(t[a])},onMouseLeave:()=>{c(void 0),s(void 0)},className:"cursor-pointer",children:[o.jsxRuntimeExports.jsx("rect",{x:a*n/t.length+1,y:1,width:n/t.length-2,height:8,className:`stroke-1 ${l===t[a]?"stroke-primary-gray-700 dark:stroke-primary-gray-300":""}`,style:{fill:t[a],...l!==t[a]?{stroke:t[a]}:{}}}),o.jsxRuntimeExports.jsx("text",{x:(a+1)*n/t.length,y:25,className:"fill-primary-gray-700 dark:fill-primary-gray-300 text-sm",style:{textAnchor:"middle"},children:H.numberFormattingFunction(F,void 0,2,"","",E)})]},a),e[14]=t,e[15]=l,e[16]=E,e[17]=n,e[18]=s,e[19]=w):w=e[19],d=r.map(w),e[7]=r,e[8]=t,e[9]=l,e[10]=E,e[11]=n,e[12]=s,e[13]=d}else d=e[13];let g;e[20]!==r.length||e[21]!==t||e[22]!==s?(g=()=>{c(t[r.length]),s(t[r.length])},e[20]=r.length,e[21]=t,e[22]=s,e[23]=g):g=e[23];let u;e[24]!==s?(u=()=>{c(void 0),s(void 0)},e[24]=s,e[25]=u):u=e[25];const L=r.length*n/t.length+1,O=n/t.length-2,W=`cursor-pointer stroke-1 ${l===t[r.length]?"stroke-primary-gray-700 dark:stroke-primary-gray-300":""}`,S=t[r.length];let y;e[26]!==r.length||e[27]!==t||e[28]!==l?(y=l!==t[r.length]?{stroke:t[r.length]}:{},e[26]=r.length,e[27]=t,e[28]=l,e[29]=y):y=e[29];let p;e[30]!==S||e[31]!==y?(p={fill:S,...y},e[30]=S,e[31]=y,e[32]=p):p=e[32];let f;e[33]!==L||e[34]!==O||e[35]!==W||e[36]!==p||e[37]!==g||e[38]!==u?(f=o.jsxRuntimeExports.jsx("g",{children:o.jsxRuntimeExports.jsx("rect",{onMouseOver:g,onMouseLeave:u,x:L,y:1,width:O,height:8,className:W,style:p})}),e[33]=L,e[34]=O,e[35]=W,e[36]=p,e[37]=g,e[38]=u,e[39]=f):f=e[39];let j;e[40]!==l||e[41]!==i||e[42]!==M||e[43]!==s||e[44]!==D?(j=D?o.jsxRuntimeExports.jsxs("g",{onMouseOver:()=>{c(i||"#D4D6D8"),s(i||"#D4D6D8")},onMouseLeave:()=>{c(void 0),s(void 0)},className:"cursor-pointer",children:[o.jsxRuntimeExports.jsx("rect",{x:335,y:1,width:24,height:8,className:`stroke-1 ${l===i?"stroke-primary-gray-700 dark:stroke-primary-gray-300":""}`,style:{fill:i||"#D4D6D8",...l!==i?{stroke:i}:{},strokeWidth:1}}),o.jsxRuntimeExports.jsx("text",{x:337.5,y:25,className:"fill-primary-gray-700 dark:fill-primary-gray-300 text-sm",style:{textAnchor:"start"},children:M})]}):null,e[40]=l,e[41]=i,e[42]=M,e[43]=s,e[44]=D,e[45]=j):j=e[45];let v;e[46]!==f||e[47]!==j||e[48]!==d?(v=o.jsxRuntimeExports.jsx("svg",{width:"100%",viewBox:"0 0 360 30",style:R,direction:"ltr",children:o.jsxRuntimeExports.jsxs("g",{children:[d,f,j]})}),e[46]=f,e[47]=j,e[48]=d,e[49]=v):v=e[49];let N;return e[50]!==v||e[51]!==x||e[52]!==m||e[53]!==h?(N=o.jsxRuntimeExports.jsxs("div",{className:x,style:m,"aria-label":"Color legend",children:[h,v]}),e[50]=v,e[51]=x,e[52]=m,e[53]=h,e[54]=N):N=e[54],N}exports.ThresholdColorLegendWithMouseOver=P;
2
2
  //# sourceMappingURL=ThresholdColorLegendWithMouseOver.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThresholdColorLegendWithMouseOver.cjs","sources":["../src/Components/Elements/ThresholdColorLegendWithMouseOver.tsx"],"sourcesContent":["import { useState } from 'react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { P } from '@undp/design-system-react/Typography';\r\n\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\n\r\ninterface Props {\r\n colors: string[];\r\n colorDomain: number[];\r\n colorLegendTitle?: string;\r\n setSelectedColor: (_d?: string) => void;\r\n width?: number;\r\n naColor?: string;\r\n className?: string;\r\n showNAColor: boolean;\r\n}\r\n\r\nexport function ThresholdColorLegendWithMouseOver(props: Props) {\r\n const {\r\n colorLegendTitle,\r\n colorDomain,\r\n colors,\r\n setSelectedColor,\r\n width,\r\n naColor,\r\n className,\r\n showNAColor,\r\n } = props;\r\n\r\n const [hoveredColor, setHoveredColor] = useState<string | undefined>(undefined);\r\n const mainColorWidth = naColor ? 320 : 360;\r\n return (\r\n <div\r\n className={cn('flex flex-wrap gap-0 justify-center leading-0', className)}\r\n style={{ maxWidth: width ? `${width}px` : 'none' }}\r\n aria-label='Color legend'\r\n >\r\n {colorLegendTitle && colorLegendTitle !== '' ? (\r\n <P size='sm' marginBottom='2xs' className='w-full text-center'>\r\n {colorLegendTitle}\r\n </P>\r\n ) : null}\r\n <svg width='100%' viewBox='0 0 360 30' style={{ maxWidth: '360px' }} direction='ltr'>\r\n <g>\r\n {colorDomain.map((d, i) => (\r\n <g\r\n key={i}\r\n onMouseOver={() => {\r\n setHoveredColor(colors[i]);\r\n setSelectedColor(colors[i]);\r\n }}\r\n onMouseLeave={() => {\r\n setHoveredColor(undefined);\r\n setSelectedColor(undefined);\r\n }}\r\n className='cursor-pointer'\r\n >\r\n <rect\r\n x={(i * mainColorWidth) / colors.length + 1}\r\n y={1}\r\n width={mainColorWidth / colors.length - 2}\r\n height={8}\r\n className={`stroke-1 ${\r\n hoveredColor === colors[i]\r\n ? 'stroke-primary-gray-700 dark:stroke-primary-gray-300'\r\n : ''\r\n }`}\r\n style={{\r\n fill: colors[i],\r\n ...(hoveredColor !== colors[i] ? { stroke: colors[i] } : {}),\r\n }}\r\n />\r\n <text\r\n x={((i + 1) * mainColorWidth) / colors.length}\r\n y={25}\r\n className='fill-primary-gray-700 dark:fill-primary-gray-300 text-sm'\r\n style={{ textAnchor: 'middle' }}\r\n >\r\n {numberFormattingFunction(d as number, 'NA', 2, '', '')}\r\n </text>\r\n </g>\r\n ))}\r\n <g>\r\n <rect\r\n onMouseOver={() => {\r\n setHoveredColor(colors[colorDomain.length]);\r\n setSelectedColor(colors[colorDomain.length]);\r\n }}\r\n onMouseLeave={() => {\r\n setHoveredColor(undefined);\r\n setSelectedColor(undefined);\r\n }}\r\n x={(colorDomain.length * mainColorWidth) / colors.length + 1}\r\n y={1}\r\n width={mainColorWidth / colors.length - 2}\r\n height={8}\r\n className={`cursor-pointer stroke-1 ${\r\n hoveredColor === colors[colorDomain.length]\r\n ? 'stroke-primary-gray-700 dark:stroke-primary-gray-300'\r\n : ''\r\n }`}\r\n style={{\r\n fill: colors[colorDomain.length],\r\n ...(hoveredColor !== colors[colorDomain.length]\r\n ? { stroke: colors[colorDomain.length] }\r\n : {}),\r\n }}\r\n />\r\n </g>\r\n {showNAColor ? (\r\n <g\r\n onMouseOver={() => {\r\n setHoveredColor(naColor || '#D4D6D8');\r\n setSelectedColor(naColor || '#D4D6D8');\r\n }}\r\n onMouseLeave={() => {\r\n setHoveredColor(undefined);\r\n setSelectedColor(undefined);\r\n }}\r\n className='cursor-pointer'\r\n >\r\n <rect\r\n x={335}\r\n y={1}\r\n width={24}\r\n height={8}\r\n className={`stroke-1 ${\r\n hoveredColor === naColor\r\n ? 'stroke-primary-gray-700 dark:stroke-primary-gray-300'\r\n : ''\r\n }`}\r\n style={{\r\n fill: naColor || '#D4D6D8',\r\n ...(hoveredColor !== naColor ? { stroke: naColor } : {}),\r\n strokeWidth: 1,\r\n }}\r\n />\r\n <text\r\n x={337.5}\r\n y={25}\r\n className='fill-primary-gray-700 dark:fill-primary-gray-300 text-sm'\r\n style={{ textAnchor: 'start' }}\r\n >\r\n NA\r\n </text>\r\n </g>\r\n ) : null}\r\n </g>\r\n </svg>\r\n </div>\r\n );\r\n}\r\n"],"names":["ThresholdColorLegendWithMouseOver","props","$","_c","colorLegendTitle","colorDomain","colors","setSelectedColor","width","naColor","className","showNAColor","hoveredColor","setHoveredColor","useState","undefined","mainColorWidth","t0","cn","t1","t2","maxWidth","t3","jsx","P","t4","Symbol","for","t5","t6","d","i","jsxs","length","fill","stroke","textAnchor","numberFormattingFunction","map","t7","t8","t9","t10","t11","t12","t13","t14","t15","strokeWidth","t16","t17"],"mappings":"gPAiBO,SAAAA,EAAAC,EAAA,CAAA,MAAAC,EAAAC,EAAAA,uBAAAA,EAAA,EAAA,EACL,CAAAC,iBAAAA,EAAAC,YAAAA,EAAAC,OAAAA,EAAAC,iBAAAA,EAAAC,MAAAA,EAAAC,QAAAA,EAAAC,UAAAA,EAAAC,YAAAA,CAAAA,EASIV,EAEJ,CAAAW,EAAAC,CAAA,EAAwCC,EAAAA,SAA6BC,MAAS,EAC9EC,EAAuBP,EAAA,IAAA,IAAoB,IAAAQ,EAAAf,OAAAQ,GAG5BO,EAAAC,EAAAA,GAAG,gDAAiDR,CAAS,EAACR,KAAAQ,EAAAR,KAAAe,GAAAA,EAAAf,EAAA,CAAA,EACtD,MAAAiB,EAAAX,EAAA,GAAWA,CAAK,KAAhB,OAA6B,IAAAY,EAAAlB,OAAAiB,GAAzCC,EAAA,CAAAC,SAAYF,CAAAA,EAA+BjB,KAAAiB,EAAAjB,KAAAkB,GAAAA,EAAAlB,EAAA,CAAA,EAAA,IAAAoB,EAAApB,OAAAE,GAGjDkB,EAAAlB,GAAoBA,IAAqB,GACxCmB,EAAAA,kBAAAA,IAACC,EAAAA,EAAA,CAAO,KAAA,KAAkB,aAAA,MAAgB,UAAA,qBACvCpB,SAAAA,CAAAA,CACH,EAHD,KAIOF,KAAAE,EAAAF,KAAAoB,GAAAA,EAAApB,EAAA,CAAA,EAAA,IAAAuB,EAAAvB,EAAA,CAAA,IAAAwB,OAAAC,IAAA,2BAAA,GACsCF,EAAA,CAAAJ,SAAY,OAAA,EAASnB,KAAAuB,GAAAA,EAAAvB,EAAA,CAAA,EAAA,IAAA0B,EAAA,GAAA1B,EAAA,CAAA,IAAAG,GAAAH,EAAA,CAAA,IAAAI,GAAAJ,EAAA,CAAA,IAAAU,GAAAV,EAAA,EAAA,IAAAc,GAAAd,QAAAK,EAAA,CAAA,IAAAsB,EAAA3B,EAAA,EAAA,IAAAI,GAAAJ,EAAA,EAAA,IAAAU,GAAAV,EAAA,EAAA,IAAAc,GAAAd,QAAAK,GAE9CsB,EAAAA,CAAAC,EAAAC,IACfC,EAAAA,kBAAAA,KAAA,IAAA,CAEe,YAAA,IAAA,CACXnB,EAAgBP,EAAOyB,CAAC,CAAC,EACzBxB,EAAiBD,EAAOyB,CAAC,CAAC,CAAC,EAEf,aAAA,IAAA,CACZlB,EAAgBE,MAAS,EACzBR,EAAiBQ,MAAS,CAAC,EAEnB,UAAA,iBAEV,SAAA,CAAAQ,EAAAA,kBAAAA,IAAA,OAAA,CACK,EAACQ,EAAIf,EAAkBV,EAAM2B,OAAU,EACvC,EAAA,EACI,MAAAjB,EAAiBV,EAAM2B,OAAU,EAChC,OAAA,EACG,UAAA,YACTrB,IAAiBN,EAAOyB,CAAC,EAAzB,uDAAA,EAEM,GAED,MAAA,CAAAG,KACC5B,EAAOyB,CAAC,EAAC,GACXnB,IAAiBN,EAAOyB,CAAC,EAAzB,CAAAI,OAAuC7B,EAAOyB,CAAC,CAAA,EAA/C,CAAA,CAAsD,EAC3D,EAEHR,EAAAA,kBAAAA,IAAA,OAAA,CACK,GAAEQ,EAAI,GAAKf,EAAkBV,EAAM2B,OACnC,EAAA,GACO,UAAA,2DACH,MAAA,CAAAG,WAAc,QAAA,EAEpBC,SAAAA,EAAAA,yBAAyBP,EAAa,KAAM,EAAG,GAAI,EAAE,CAAA,CACxD,CAAA,CAAA,EAjCKC,CAkCP,EACD7B,MAAAI,EAAAJ,MAAAU,EAAAV,MAAAc,EAAAd,MAAAK,EAAAL,MAAA2B,GAAAA,EAAA3B,EAAA,EAAA,EArCA0B,EAAAvB,EAAWiC,IAAKT,CAqChB,EAAC3B,KAAAG,EAAAH,KAAAI,EAAAJ,KAAAU,EAAAV,MAAAc,EAAAd,MAAAK,EAAAL,MAAA0B,CAAA,MAAAA,EAAA1B,EAAA,EAAA,EAAA,IAAA2B,EAAA3B,EAAA,EAAA,IAAAG,EAAA4B,QAAA/B,EAAA,EAAA,IAAAI,GAAAJ,EAAA,EAAA,IAAAK,GAGesB,EAAAA,IAAA,CACXhB,EAAgBP,EAAOD,EAAW4B,MAAO,CAAC,EAC1C1B,EAAiBD,EAAOD,EAAW4B,MAAO,CAAC,CAAC,EAC7C/B,EAAA,EAAA,EAAAG,EAAA4B,OAAA/B,MAAAI,EAAAJ,MAAAK,EAAAL,MAAA2B,GAAAA,EAAA3B,EAAA,EAAA,EAAA,IAAAqC,EAAArC,QAAAK,GACagC,EAAAA,IAAA,CACZ1B,EAAgBE,MAAS,EACzBR,EAAiBQ,MAAS,CAAC,EAC5Bb,MAAAK,EAAAL,MAAAqC,GAAAA,EAAArC,EAAA,EAAA,EACE,MAAAsC,EAACnC,EAAW4B,OAAUjB,EAAkBV,EAAM2B,OAAU,EAEpDQ,EAAAzB,EAAiBV,EAAM2B,OAAU,EAE7BS,EAAA,2BACT9B,IAAiBN,EAAOD,EAAW4B,MAAO,EAA1C,uDAAA,EAEM,GAGAU,EAAArC,EAAOD,EAAW4B,MAAO,EAAC,IAAAW,EAAA1C,EAAA,EAAA,IAAAG,EAAA4B,QAAA/B,EAAA,EAAA,IAAAI,GAAAJ,EAAA,EAAA,IAAAU,GAC5BgC,EAAAhC,IAAiBN,EAAOD,EAAW4B,MAAO,EAA1C,CAAAE,OACU7B,EAAOD,EAAW4B,MAAO,CAAA,EADnC,CAAA,EAEE/B,EAAA,EAAA,EAAAG,EAAA4B,OAAA/B,MAAAI,EAAAJ,MAAAU,EAAAV,MAAA0C,GAAAA,EAAA1C,EAAA,EAAA,EAAA,IAAA2C,EAAA3C,EAAA,EAAA,IAAAyC,GAAAzC,QAAA0C,GAJDC,EAAA,CAAAX,KACCS,EAA0B,GAC5BC,CAAAA,EAGL1C,MAAAyC,EAAAzC,MAAA0C,EAAA1C,MAAA2C,GAAAA,EAAA3C,EAAA,EAAA,EAAA,IAAA4C,EAAA5C,QAAAwC,GAAAxC,EAAA,EAAA,IAAA2C,GAAA3C,EAAA,EAAA,IAAA2B,GAAA3B,EAAA,EAAA,IAAAqC,GAAArC,QAAAsC,GAAAtC,EAAA,EAAA,IAAAuC,GAxBLK,EAAAvB,EAAAA,kBAAAA,IAAA,KACE,SAAAA,EAAAA,kBAAAA,IAAA,OAAA,CACe,YAAAM,EAIC,aAAAU,EAIX,EAAAC,EACA,IACI,MAAAC,EACC,OAAA,EACG,UAAAC,EAKJ,MAAAG,EAKN,CAAA,CAEL,EAAI3C,MAAAwC,EAAAxC,MAAA2C,EAAA3C,MAAA2B,EAAA3B,MAAAqC,EAAArC,MAAAsC,EAAAtC,MAAAuC,EAAAvC,MAAA4C,GAAAA,EAAA5C,EAAA,EAAA,EAAA,IAAA6C,EAAA7C,EAAA,EAAA,IAAAU,GAAAV,EAAA,EAAA,IAAAO,GAAAP,EAAA,EAAA,IAAAK,GAAAL,QAAAS,GACHoC,EAAApC,EACCqB,EAAAA,kBAAAA,KAAA,IAAA,CACe,YAAA,IAAA,CACXnB,EAAgBJ,GAAA,SAAoB,EACpCF,EAAiBE,GAAA,SAAoB,CAAC,EAE1B,aAAA,IAAA,CACZI,EAAgBE,MAAS,EACzBR,EAAiBQ,MAAS,CAAC,EAEnB,UAAA,iBAEV,SAAA,CAAAQ,gCACK,EAAA,IACA,EAAA,EACI,MAAA,GACC,OAAA,EACG,sBACTX,IAAiBH,EAAjB,uDAAA,EAEM,GAED,MAAA,CAAAyB,KACCzB,GAAA,UAAoB,GACtBG,IAAiBH,EAAjB,CAAA0B,OAAqC1B,CAAAA,EAArC,CAAA,EAAmDuC,YAC1C,CAAA,IAGjBzB,wBAAA,QACK,EAAA,MACA,EAAA,GACO,UAAA,2DACH,MAAA,CAAAa,WAAc,OAAA,EACtB,SAAA,IAAA,CAED,CAAA,CAAA,CACF,EApCD,KAqCOlC,MAAAU,EAAAV,MAAAO,EAAAP,MAAAK,EAAAL,MAAAS,EAAAT,MAAA6C,GAAAA,EAAA7C,EAAA,EAAA,EAAA,IAAA+C,EAAA/C,EAAA,EAAA,IAAA4C,GAAA5C,QAAA6C,GAAA7C,EAAA,EAAA,IAAA0B,GAxGZqB,EAAA1B,EAAAA,kBAAAA,IAAA,MAAA,CAAW,MAAA,OAAe,QAAA,aAAoB,MAAAE,EAAiC,UAAA,MAC7E,SAAAO,EAAAA,kBAAAA,KAAA,IAAA,CACGJ,SAAAA,CAAAA,EAsCDkB,EA2BCC,CAAAA,CAAAA,CAsCH,CAAA,CACF,EAAM7C,MAAA4C,EAAA5C,MAAA6C,EAAA7C,MAAA0B,EAAA1B,MAAA+C,GAAAA,EAAA/C,EAAA,EAAA,EAAA,IAAAgD,EAAA,OAAAhD,EAAA,EAAA,IAAAe,GAAAf,EAAA,EAAA,IAAA+C,GAAA/C,EAAA,EAAA,IAAAkB,GAAAlB,QAAAoB,GApHR4B,2BAAA,MAAA,CACa,UAAAjC,EACJ,MAAAG,EACI,aAAA,eAEVE,SAAAA,CAAAA,EAKD2B,CAAAA,EA2GF,EAAM/C,MAAAe,EAAAf,MAAA+C,EAAA/C,MAAAkB,EAAAlB,MAAAoB,EAAApB,MAAAgD,GAAAA,EAAAhD,EAAA,EAAA,EArHNgD,CAqHM"}
1
+ {"version":3,"file":"ThresholdColorLegendWithMouseOver.cjs","sources":["../src/Components/Elements/ThresholdColorLegendWithMouseOver.tsx"],"sourcesContent":["import { useState } from 'react';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { P } from '@undp/design-system-react/Typography';\r\n\r\nimport { numberFormattingFunction } from '@/Utils/numberFormattingFunction';\r\n\r\ninterface Props {\r\n colors: string[];\r\n colorDomain: number[];\r\n colorLegendTitle?: string;\r\n setSelectedColor: (_d?: string) => void;\r\n width?: number;\r\n naColor?: string;\r\n className?: string;\r\n showNAColor: boolean;\r\n locale?: string;\r\n naLabel: string;\r\n}\r\n\r\nexport function ThresholdColorLegendWithMouseOver(props: Props) {\r\n const {\r\n colorLegendTitle,\r\n colorDomain,\r\n colors,\r\n setSelectedColor,\r\n width,\r\n naColor,\r\n className,\r\n showNAColor,\r\n locale = 'en',\r\n naLabel = 'NA',\r\n } = props;\r\n\r\n const [hoveredColor, setHoveredColor] = useState<string | undefined>(undefined);\r\n const mainColorWidth = naColor ? 320 : 360;\r\n return (\r\n <div\r\n className={cn('flex flex-wrap gap-0 justify-center leading-0', className)}\r\n style={{ maxWidth: width ? `${width}px` : 'none' }}\r\n aria-label='Color legend'\r\n >\r\n {colorLegendTitle && colorLegendTitle !== '' ? (\r\n <P size='sm' marginBottom='2xs' className='w-full text-center'>\r\n {colorLegendTitle}\r\n </P>\r\n ) : null}\r\n <svg width='100%' viewBox='0 0 360 30' style={{ maxWidth: '360px' }} direction='ltr'>\r\n <g>\r\n {colorDomain.map((d, i) => (\r\n <g\r\n key={i}\r\n onMouseOver={() => {\r\n setHoveredColor(colors[i]);\r\n setSelectedColor(colors[i]);\r\n }}\r\n onMouseLeave={() => {\r\n setHoveredColor(undefined);\r\n setSelectedColor(undefined);\r\n }}\r\n className='cursor-pointer'\r\n >\r\n <rect\r\n x={(i * mainColorWidth) / colors.length + 1}\r\n y={1}\r\n width={mainColorWidth / colors.length - 2}\r\n height={8}\r\n className={`stroke-1 ${\r\n hoveredColor === colors[i]\r\n ? 'stroke-primary-gray-700 dark:stroke-primary-gray-300'\r\n : ''\r\n }`}\r\n style={{\r\n fill: colors[i],\r\n ...(hoveredColor !== colors[i] ? { stroke: colors[i] } : {}),\r\n }}\r\n />\r\n <text\r\n x={((i + 1) * mainColorWidth) / colors.length}\r\n y={25}\r\n className='fill-primary-gray-700 dark:fill-primary-gray-300 text-sm'\r\n style={{ textAnchor: 'middle' }}\r\n >\r\n {numberFormattingFunction(d as number, undefined, 2, '', '', locale)}\r\n </text>\r\n </g>\r\n ))}\r\n <g>\r\n <rect\r\n onMouseOver={() => {\r\n setHoveredColor(colors[colorDomain.length]);\r\n setSelectedColor(colors[colorDomain.length]);\r\n }}\r\n onMouseLeave={() => {\r\n setHoveredColor(undefined);\r\n setSelectedColor(undefined);\r\n }}\r\n x={(colorDomain.length * mainColorWidth) / colors.length + 1}\r\n y={1}\r\n width={mainColorWidth / colors.length - 2}\r\n height={8}\r\n className={`cursor-pointer stroke-1 ${\r\n hoveredColor === colors[colorDomain.length]\r\n ? 'stroke-primary-gray-700 dark:stroke-primary-gray-300'\r\n : ''\r\n }`}\r\n style={{\r\n fill: colors[colorDomain.length],\r\n ...(hoveredColor !== colors[colorDomain.length]\r\n ? { stroke: colors[colorDomain.length] }\r\n : {}),\r\n }}\r\n />\r\n </g>\r\n {showNAColor ? (\r\n <g\r\n onMouseOver={() => {\r\n setHoveredColor(naColor || '#D4D6D8');\r\n setSelectedColor(naColor || '#D4D6D8');\r\n }}\r\n onMouseLeave={() => {\r\n setHoveredColor(undefined);\r\n setSelectedColor(undefined);\r\n }}\r\n className='cursor-pointer'\r\n >\r\n <rect\r\n x={335}\r\n y={1}\r\n width={24}\r\n height={8}\r\n className={`stroke-1 ${\r\n hoveredColor === naColor\r\n ? 'stroke-primary-gray-700 dark:stroke-primary-gray-300'\r\n : ''\r\n }`}\r\n style={{\r\n fill: naColor || '#D4D6D8',\r\n ...(hoveredColor !== naColor ? { stroke: naColor } : {}),\r\n strokeWidth: 1,\r\n }}\r\n />\r\n <text\r\n x={337.5}\r\n y={25}\r\n className='fill-primary-gray-700 dark:fill-primary-gray-300 text-sm'\r\n style={{ textAnchor: 'start' }}\r\n >\r\n {naLabel}\r\n </text>\r\n </g>\r\n ) : null}\r\n </g>\r\n </svg>\r\n </div>\r\n );\r\n}\r\n"],"names":["ThresholdColorLegendWithMouseOver","props","$","_c","colorLegendTitle","colorDomain","colors","setSelectedColor","width","naColor","className","showNAColor","locale","t0","naLabel","t1","undefined","hoveredColor","setHoveredColor","useState","mainColorWidth","t2","cn","t3","t4","maxWidth","t5","jsx","P","t6","Symbol","for","t7","t8","d","i","jsxs","length","fill","stroke","textAnchor","numberFormattingFunction","map","t9","t10","t11","t12","t13","t14","t15","t16","t17","strokeWidth","t18","t19"],"mappings":"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"}
@@ -9,6 +9,8 @@ declare interface Props {
9
9
  naColor?: string;
10
10
  className?: string;
11
11
  showNAColor: boolean;
12
+ locale?: string;
13
+ naLabel: string;
12
14
  }
13
15
 
14
16
  export declare function ThresholdColorLegendWithMouseOver(props: Props): JSX.Element;
@@ -1,35 +1,37 @@
1
- import { c as B, m as E, j as o } from "./index-CHPV5EwG-BCLAYDCV.js";
2
- import { useState as F } from "react";
3
- import { _ as R } from "./Typography-DMVW6JnV.js";
4
- import { n as T } from "./numberFormattingFunction-14YCbkN2.js";
5
- function I(S) {
6
- const e = B.c(52), {
1
+ import { c as T, m as z, j as o } from "./index-CHPV5EwG-BzibaIRc.js";
2
+ import { useState as H } from "react";
3
+ import { _ as q } from "./Typography-BO0gQDIT.js";
4
+ import { n as G } from "./numberFormattingFunction-DqMf_v1m.js";
5
+ function Q(F) {
6
+ const e = T.c(55), {
7
7
  colorLegendTitle: j,
8
8
  colorDomain: r,
9
9
  colors: t,
10
10
  setSelectedColor: l,
11
- width: b,
11
+ width: _,
12
12
  naColor: i,
13
- className: C,
14
- showNAColor: M
15
- } = S, [s, c] = F(void 0), n = i ? 320 : 360;
13
+ className: L,
14
+ showNAColor: M,
15
+ locale: B,
16
+ naLabel: E
17
+ } = F, N = B === void 0 ? "en" : B, b = E === void 0 ? "NA" : E, [s, c] = H(void 0), n = i ? 320 : 360;
16
18
  let m;
17
- e[0] !== C ? (m = E("flex flex-wrap gap-0 justify-center leading-0", C), e[0] = C, e[1] = m) : m = e[1];
18
- const A = b ? `${b}px` : "none";
19
+ e[0] !== L ? (m = z("flex flex-wrap gap-0 justify-center leading-0", L), e[0] = L, e[1] = m) : m = e[1];
20
+ const W = _ ? `${_}px` : "none";
19
21
  let h;
20
- e[2] !== A ? (h = {
21
- maxWidth: A
22
- }, e[2] = A, e[3] = h) : h = e[3];
22
+ e[2] !== W ? (h = {
23
+ maxWidth: W
24
+ }, e[2] = W, e[3] = h) : h = e[3];
23
25
  let d;
24
- e[4] !== j ? (d = j && j !== "" ? /* @__PURE__ */ o.jsx(R, { size: "sm", marginBottom: "2xs", className: "w-full text-center", children: j }) : null, e[4] = j, e[5] = d) : d = e[5];
25
- let N;
26
- e[6] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (N = {
26
+ e[4] !== j ? (d = j && j !== "" ? /* @__PURE__ */ o.jsx(q, { size: "sm", marginBottom: "2xs", className: "w-full text-center", children: j }) : null, e[4] = j, e[5] = d) : d = e[5];
27
+ let D;
28
+ e[6] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (D = {
27
29
  maxWidth: "360px"
28
- }, e[6] = N) : N = e[6];
30
+ }, e[6] = D) : D = e[6];
29
31
  let g;
30
- if (e[7] !== r || e[8] !== t || e[9] !== s || e[10] !== n || e[11] !== l) {
31
- let w;
32
- e[13] !== t || e[14] !== s || e[15] !== n || e[16] !== l ? (w = (_, a) => /* @__PURE__ */ o.jsxs("g", { onMouseOver: () => {
32
+ if (e[7] !== r || e[8] !== t || e[9] !== s || e[10] !== N || e[11] !== n || e[12] !== l) {
33
+ let C;
34
+ e[14] !== t || e[15] !== s || e[16] !== N || e[17] !== n || e[18] !== l ? (C = (R, a) => /* @__PURE__ */ o.jsxs("g", { onMouseOver: () => {
33
35
  c(t[a]), l(t[a]);
34
36
  }, onMouseLeave: () => {
35
37
  c(void 0), l(void 0);
@@ -42,32 +44,32 @@ function I(S) {
42
44
  } }),
43
45
  /* @__PURE__ */ o.jsx("text", { x: (a + 1) * n / t.length, y: 25, className: "fill-primary-gray-700 dark:fill-primary-gray-300 text-sm", style: {
44
46
  textAnchor: "middle"
45
- }, children: T(_, "NA", 2, "", "") })
46
- ] }, a), e[13] = t, e[14] = s, e[15] = n, e[16] = l, e[17] = w) : w = e[17], g = r.map(w), e[7] = r, e[8] = t, e[9] = s, e[10] = n, e[11] = l, e[12] = g;
47
+ }, children: G(R, void 0, 2, "", "", N) })
48
+ ] }, a), e[14] = t, e[15] = s, e[16] = N, e[17] = n, e[18] = l, e[19] = C) : C = e[19], g = r.map(C), e[7] = r, e[8] = t, e[9] = s, e[10] = N, e[11] = n, e[12] = l, e[13] = g;
47
49
  } else
48
- g = e[12];
50
+ g = e[13];
49
51
  let x;
50
- e[18] !== r.length || e[19] !== t || e[20] !== l ? (x = () => {
52
+ e[20] !== r.length || e[21] !== t || e[22] !== l ? (x = () => {
51
53
  c(t[r.length]), l(t[r.length]);
52
- }, e[18] = r.length, e[19] = t, e[20] = l, e[21] = x) : x = e[21];
54
+ }, e[20] = r.length, e[21] = t, e[22] = l, e[23] = x) : x = e[23];
53
55
  let y;
54
- e[22] !== l ? (y = () => {
56
+ e[24] !== l ? (y = () => {
55
57
  c(void 0), l(void 0);
56
- }, e[22] = l, e[23] = y) : y = e[23];
57
- const L = r.length * n / t.length + 1, W = n / t.length - 2, $ = `cursor-pointer stroke-1 ${s === t[r.length] ? "stroke-primary-gray-700 dark:stroke-primary-gray-300" : ""}`, O = t[r.length];
58
+ }, e[24] = l, e[25] = y) : y = e[25];
59
+ const $ = r.length * n / t.length + 1, A = n / t.length - 2, O = `cursor-pointer stroke-1 ${s === t[r.length] ? "stroke-primary-gray-700 dark:stroke-primary-gray-300" : ""}`, S = t[r.length];
58
60
  let f;
59
- e[24] !== r.length || e[25] !== t || e[26] !== s ? (f = s !== t[r.length] ? {
61
+ e[26] !== r.length || e[27] !== t || e[28] !== s ? (f = s !== t[r.length] ? {
60
62
  stroke: t[r.length]
61
- } : {}, e[24] = r.length, e[25] = t, e[26] = s, e[27] = f) : f = e[27];
63
+ } : {}, e[26] = r.length, e[27] = t, e[28] = s, e[29] = f) : f = e[29];
62
64
  let p;
63
- e[28] !== O || e[29] !== f ? (p = {
64
- fill: O,
65
+ e[30] !== S || e[31] !== f ? (p = {
66
+ fill: S,
65
67
  ...f
66
- }, e[28] = O, e[29] = f, e[30] = p) : p = e[30];
67
- let u;
68
- e[31] !== $ || e[32] !== p || e[33] !== x || e[34] !== y || e[35] !== L || e[36] !== W ? (u = /* @__PURE__ */ o.jsx("g", { children: /* @__PURE__ */ o.jsx("rect", { onMouseOver: x, onMouseLeave: y, x: L, y: 1, width: W, height: 8, className: $, style: p }) }), e[31] = $, e[32] = p, e[33] = x, e[34] = y, e[35] = L, e[36] = W, e[37] = u) : u = e[37];
68
+ }, e[30] = S, e[31] = f, e[32] = p) : p = e[32];
69
69
  let v;
70
- e[38] !== s || e[39] !== i || e[40] !== l || e[41] !== M ? (v = M ? /* @__PURE__ */ o.jsxs("g", { onMouseOver: () => {
70
+ e[33] !== $ || e[34] !== A || e[35] !== O || e[36] !== p || e[37] !== x || e[38] !== y ? (v = /* @__PURE__ */ o.jsx("g", { children: /* @__PURE__ */ o.jsx("rect", { onMouseOver: x, onMouseLeave: y, x: $, y: 1, width: A, height: 8, className: O, style: p }) }), e[33] = $, e[34] = A, e[35] = O, e[36] = p, e[37] = x, e[38] = y, e[39] = v) : v = e[39];
71
+ let u;
72
+ e[40] !== s || e[41] !== i || e[42] !== b || e[43] !== l || e[44] !== M ? (u = M ? /* @__PURE__ */ o.jsxs("g", { onMouseOver: () => {
71
73
  c(i || "#D4D6D8"), l(i || "#D4D6D8");
72
74
  }, onMouseLeave: () => {
73
75
  c(void 0), l(void 0);
@@ -81,21 +83,21 @@ function I(S) {
81
83
  } }),
82
84
  /* @__PURE__ */ o.jsx("text", { x: 337.5, y: 25, className: "fill-primary-gray-700 dark:fill-primary-gray-300 text-sm", style: {
83
85
  textAnchor: "start"
84
- }, children: "NA" })
85
- ] }) : null, e[38] = s, e[39] = i, e[40] = l, e[41] = M, e[42] = v) : v = e[42];
86
+ }, children: b })
87
+ ] }) : null, e[40] = s, e[41] = i, e[42] = b, e[43] = l, e[44] = M, e[45] = u) : u = e[45];
86
88
  let k;
87
- e[43] !== u || e[44] !== v || e[45] !== g ? (k = /* @__PURE__ */ o.jsx("svg", { width: "100%", viewBox: "0 0 360 30", style: N, direction: "ltr", children: /* @__PURE__ */ o.jsxs("g", { children: [
89
+ e[46] !== v || e[47] !== u || e[48] !== g ? (k = /* @__PURE__ */ o.jsx("svg", { width: "100%", viewBox: "0 0 360 30", style: D, direction: "ltr", children: /* @__PURE__ */ o.jsxs("g", { children: [
88
90
  g,
89
- u,
90
- v
91
- ] }) }), e[43] = u, e[44] = v, e[45] = g, e[46] = k) : k = e[46];
92
- let D;
93
- return e[47] !== m || e[48] !== k || e[49] !== h || e[50] !== d ? (D = /* @__PURE__ */ o.jsxs("div", { className: m, style: h, "aria-label": "Color legend", children: [
91
+ v,
92
+ u
93
+ ] }) }), e[46] = v, e[47] = u, e[48] = g, e[49] = k) : k = e[49];
94
+ let w;
95
+ return e[50] !== k || e[51] !== m || e[52] !== h || e[53] !== d ? (w = /* @__PURE__ */ o.jsxs("div", { className: m, style: h, "aria-label": "Color legend", children: [
94
96
  d,
95
97
  k
96
- ] }), e[47] = m, e[48] = k, e[49] = h, e[50] = d, e[51] = D) : D = e[51], D;
98
+ ] }), e[50] = k, e[51] = m, e[52] = h, e[53] = d, e[54] = w) : w = e[54], w;
97
99
  }
98
100
  export {
99
- I as ThresholdColorLegendWithMouseOver
101
+ Q as ThresholdColorLegendWithMouseOver
100
102
  };
101
103
  //# sourceMappingURL=ThresholdColorLegendWithMouseOver.js.map