@undp/data-viz 1.5.7 → 1.5.9

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 (342) hide show
  1. package/dist/AreaChart.cjs +1 -1
  2. package/dist/AreaChart.js +13 -13
  3. package/dist/{Axis-Ddg-seDi.js → Axis-4gUOL8B7.js} +2 -2
  4. package/dist/{Axis-Ddg-seDi.js.map → Axis-4gUOL8B7.js.map} +1 -1
  5. package/dist/{Axis-DE7dSn1_.cjs → Axis-CkNn1wit.cjs} +2 -2
  6. package/dist/{Axis-DE7dSn1_.cjs.map → Axis-CkNn1wit.cjs.map} +1 -1
  7. package/dist/{AxisTitle-CK9YeovX.cjs → AxisTitle-Wkz-xeQL.cjs} +2 -2
  8. package/dist/{AxisTitle-CK9YeovX.cjs.map → AxisTitle-Wkz-xeQL.cjs.map} +1 -1
  9. package/dist/{AxisTitle-BmHLMRJZ.js → AxisTitle-v6_xcXZ-.js} +2 -2
  10. package/dist/{AxisTitle-BmHLMRJZ.js.map → AxisTitle-v6_xcXZ-.js.map} +1 -1
  11. package/dist/BarGraph.cjs +1 -1
  12. package/dist/BarGraph.cjs.map +1 -1
  13. package/dist/BarGraph.js +666 -664
  14. package/dist/BarGraph.js.map +1 -1
  15. package/dist/BasicStatCard.cjs +1 -1
  16. package/dist/BasicStatCard.js +2 -2
  17. package/dist/BeeSwarmChart.cjs +1 -1
  18. package/dist/BeeSwarmChart.js +42 -42
  19. package/dist/BiVariateChoroplethMap.cjs +1 -1
  20. package/dist/BiVariateChoroplethMap.cjs.map +1 -1
  21. package/dist/BiVariateChoroplethMap.d.ts +2 -0
  22. package/dist/BiVariateChoroplethMap.js +257 -264
  23. package/dist/BiVariateChoroplethMap.js.map +1 -1
  24. package/dist/BulletChart.cjs +1 -1
  25. package/dist/BulletChart.cjs.map +1 -1
  26. package/dist/BulletChart.js +223 -221
  27. package/dist/BulletChart.js.map +1 -1
  28. package/dist/ButterflyChart.cjs +1 -1
  29. package/dist/ButterflyChart.cjs.map +1 -1
  30. package/dist/ButterflyChart.js +84 -82
  31. package/dist/ButterflyChart.js.map +1 -1
  32. package/dist/ChoroplethMap.cjs +1 -1
  33. package/dist/ChoroplethMap.cjs.map +1 -1
  34. package/dist/ChoroplethMap.d.ts +2 -0
  35. package/dist/ChoroplethMap.js +296 -304
  36. package/dist/ChoroplethMap.js.map +1 -1
  37. package/dist/CirclePackingGraph.cjs +1 -1
  38. package/dist/CirclePackingGraph.js +3 -3
  39. package/dist/ColorLegend.cjs +1 -1
  40. package/dist/ColorLegend.js +2 -2
  41. package/dist/ColorLegendWithMouseOver.cjs +1 -1
  42. package/dist/ColorLegendWithMouseOver.js +2 -2
  43. package/dist/CopyTextButton.cjs +4 -4
  44. package/dist/CopyTextButton.cjs.map +1 -1
  45. package/dist/CopyTextButton.js +27 -27
  46. package/dist/CopyTextButton.js.map +1 -1
  47. package/dist/CsvDownloadButton.cjs +1 -1
  48. package/dist/CsvDownloadButton.js +2 -2
  49. package/dist/DataCards.cjs +3 -3
  50. package/dist/DataCards.cjs.map +1 -1
  51. package/dist/DataCards.js +16 -16
  52. package/dist/DataCards.js.map +1 -1
  53. package/dist/DataTable.cjs +1 -1
  54. package/dist/DataTable.js +3 -3
  55. package/dist/DifferenceLineChart.cjs +1 -1
  56. package/dist/DifferenceLineChart.cjs.map +1 -1
  57. package/dist/DifferenceLineChart.js +133 -131
  58. package/dist/DifferenceLineChart.js.map +1 -1
  59. package/dist/DonutChart.cjs +1 -1
  60. package/dist/DonutChart.js +20 -20
  61. package/dist/DotDensityMap.cjs +1 -1
  62. package/dist/DotDensityMap.cjs.map +1 -1
  63. package/dist/DotDensityMap.d.ts +2 -0
  64. package/dist/DotDensityMap.js +282 -289
  65. package/dist/DotDensityMap.js.map +1 -1
  66. package/dist/{DropdownSelect-CtOKZHD0.js → DropdownSelect-6kjXM6oW.js} +2 -2
  67. package/dist/DropdownSelect-6kjXM6oW.js.map +1 -0
  68. package/dist/{DropdownSelect-DBDM64B5.cjs → DropdownSelect-vt8yiB-g.cjs} +5 -5
  69. package/dist/DropdownSelect-vt8yiB-g.cjs.map +1 -0
  70. package/dist/DualAxisLineChart.cjs +1 -1
  71. package/dist/DualAxisLineChart.cjs.map +1 -1
  72. package/dist/DualAxisLineChart.js +141 -121
  73. package/dist/DualAxisLineChart.js.map +1 -1
  74. package/dist/DumbbellChart.cjs +1 -1
  75. package/dist/DumbbellChart.cjs.map +1 -1
  76. package/dist/DumbbellChart.js +307 -307
  77. package/dist/DumbbellChart.js.map +1 -1
  78. package/dist/{EmptyState-DdTp-Mdn.js → EmptyState-36lXXyui.js} +4 -4
  79. package/dist/{EmptyState-DdTp-Mdn.js.map → EmptyState-36lXXyui.js.map} +1 -1
  80. package/dist/{EmptyState-d8_8SxeW.cjs → EmptyState-B8IpKGcL.cjs} +2 -2
  81. package/dist/{EmptyState-d8_8SxeW.cjs.map → EmptyState-B8IpKGcL.cjs.map} +1 -1
  82. package/dist/ExcelDownloadButton.cjs +1 -1
  83. package/dist/ExcelDownloadButton.js +2 -2
  84. package/dist/FootNote.cjs +1 -1
  85. package/dist/FootNote.js +2 -2
  86. package/dist/GeoHubCompareMaps.cjs +1 -1
  87. package/dist/GeoHubCompareMaps.cjs.map +1 -1
  88. package/dist/GeoHubCompareMaps.js +65 -80
  89. package/dist/GeoHubCompareMaps.js.map +1 -1
  90. package/dist/GeoHubMap.cjs +1 -1
  91. package/dist/GeoHubMap.cjs.map +1 -1
  92. package/dist/GeoHubMap.js +95 -125
  93. package/dist/GeoHubMap.js.map +1 -1
  94. package/dist/GeoHubMapWithLayerSelection.cjs +1 -1
  95. package/dist/GeoHubMapWithLayerSelection.cjs.map +1 -1
  96. package/dist/GeoHubMapWithLayerSelection.js +73 -88
  97. package/dist/GeoHubMapWithLayerSelection.js.map +1 -1
  98. package/dist/GraphDescription.cjs +1 -1
  99. package/dist/GraphDescription.js +2 -2
  100. package/dist/{GraphEl-CqWzvOyr.js → GraphEl-2IiUDxjR.js} +15 -12
  101. package/dist/GraphEl-2IiUDxjR.js.map +1 -0
  102. package/dist/GraphEl-qrlfGPe3.cjs +2 -0
  103. package/dist/GraphEl-qrlfGPe3.cjs.map +1 -0
  104. package/dist/GraphFooter.cjs +1 -1
  105. package/dist/GraphFooter.js +1 -1
  106. package/dist/GraphHeader.cjs +1 -1
  107. package/dist/GraphHeader.js +1 -1
  108. package/dist/GraphTitle.cjs +1 -1
  109. package/dist/GraphTitle.js +2 -2
  110. package/dist/GriddedGraphs.cjs +1 -1
  111. package/dist/GriddedGraphs.d.ts +1 -0
  112. package/dist/GriddedGraphs.js +5 -5
  113. package/dist/GriddedGraphsFromConfig.cjs +1 -1
  114. package/dist/GriddedGraphsFromConfig.d.ts +1 -0
  115. package/dist/GriddedGraphsFromConfig.js +2 -2
  116. package/dist/HeatMap.cjs +1 -1
  117. package/dist/HeatMap.js +19 -19
  118. package/dist/Histogram.cjs +1 -1
  119. package/dist/Histogram.js +3 -3
  120. package/dist/ImageDownloadButton.cjs +1 -1
  121. package/dist/ImageDownloadButton.js +2 -2
  122. package/dist/LineChartWithConfidenceInterval.cjs +1 -1
  123. package/dist/LineChartWithConfidenceInterval.cjs.map +1 -1
  124. package/dist/LineChartWithConfidenceInterval.js +204 -184
  125. package/dist/LineChartWithConfidenceInterval.js.map +1 -1
  126. package/dist/LinearColorLegend.cjs +1 -1
  127. package/dist/LinearColorLegend.js +2 -2
  128. package/dist/{Modal-DVVwpKhP.js → Modal-Cg8daIlV.js} +198 -187
  129. package/dist/Modal-Cg8daIlV.js.map +1 -0
  130. package/dist/Modal-CuuJdWkD.cjs +46 -0
  131. package/dist/Modal-CuuJdWkD.cjs.map +1 -0
  132. package/dist/MultiGraphDashboard.cjs +1 -1
  133. package/dist/MultiGraphDashboard.d.ts +1 -0
  134. package/dist/MultiGraphDashboard.js +3 -3
  135. package/dist/MultiGraphDashboardFromConfig.cjs +1 -1
  136. package/dist/MultiGraphDashboardFromConfig.d.ts +1 -0
  137. package/dist/MultiGraphDashboardFromConfig.js +2 -2
  138. package/dist/MultiGraphDashboardWideToLongFormat.cjs +1 -1
  139. package/dist/MultiGraphDashboardWideToLongFormat.js +4 -4
  140. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.cjs +1 -1
  141. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js +2 -2
  142. package/dist/MultiLineAltChart.cjs +1 -1
  143. package/dist/MultiLineAltChart.cjs.map +1 -1
  144. package/dist/MultiLineAltChart.js +172 -173
  145. package/dist/MultiLineAltChart.js.map +1 -1
  146. package/dist/MultiLineChart.cjs +1 -1
  147. package/dist/MultiLineChart.cjs.map +1 -1
  148. package/dist/MultiLineChart.js +89 -78
  149. package/dist/MultiLineChart.js.map +1 -1
  150. package/dist/ParetoChart.cjs +1 -1
  151. package/dist/ParetoChart.cjs.map +1 -1
  152. package/dist/ParetoChart.js +186 -181
  153. package/dist/ParetoChart.js.map +1 -1
  154. package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +1 -1
  155. package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +1 -0
  156. package/dist/PerformanceIntensiveMultiGraphDashboard.js +3 -3
  157. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs +1 -1
  158. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +1 -0
  159. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js +2 -2
  160. package/dist/PerformanceIntensiveScrollStory.cjs +1 -1
  161. package/dist/PerformanceIntensiveScrollStory.d.ts +1 -0
  162. package/dist/PerformanceIntensiveScrollStory.js +3 -3
  163. package/dist/RadarChart.cjs +1 -1
  164. package/dist/RadarChart.cjs.map +1 -1
  165. package/dist/RadarChart.js +256 -244
  166. package/dist/RadarChart.js.map +1 -1
  167. package/dist/{ReferenceLine-CfAW3vKJ.js → ReferenceLine-CPMaAX0r.js} +3 -3
  168. package/dist/{ReferenceLine-CfAW3vKJ.js.map → ReferenceLine-CPMaAX0r.js.map} +1 -1
  169. package/dist/{ReferenceLine-CFVBBN__.cjs → ReferenceLine-D04j-zeV.cjs} +2 -2
  170. package/dist/{ReferenceLine-CFVBBN__.cjs.map → ReferenceLine-D04j-zeV.cjs.map} +1 -1
  171. package/dist/{RegressionLine-mH7UKOPi.js → RegressionLine-CW7iViH2.js} +13 -12
  172. package/dist/RegressionLine-CW7iViH2.js.map +1 -0
  173. package/dist/RegressionLine-D-49RaHa.cjs +2 -0
  174. package/dist/RegressionLine-D-49RaHa.cjs.map +1 -0
  175. package/dist/SVGDownloadButton.cjs +1 -1
  176. package/dist/SVGDownloadButton.js +2 -2
  177. package/dist/SankeyChart.cjs +1 -1
  178. package/dist/SankeyChart.js +27 -27
  179. package/dist/ScatterPlot.cjs +1 -1
  180. package/dist/ScatterPlot.cjs.map +1 -1
  181. package/dist/ScatterPlot.js +145 -144
  182. package/dist/ScatterPlot.js.map +1 -1
  183. package/dist/ScrollStory.cjs +1 -1
  184. package/dist/ScrollStory.d.ts +1 -0
  185. package/dist/ScrollStory.js +3 -3
  186. package/dist/SimpleLineChart.cjs +1 -1
  187. package/dist/SimpleLineChart.cjs.map +1 -1
  188. package/dist/SimpleLineChart.js +53 -48
  189. package/dist/SimpleLineChart.js.map +1 -1
  190. package/dist/SingleGraphDashboard.cjs +1 -1
  191. package/dist/SingleGraphDashboard.d.ts +1 -0
  192. package/dist/SingleGraphDashboard.js +6 -6
  193. package/dist/SingleGraphDashboardFromConfig.cjs +1 -1
  194. package/dist/SingleGraphDashboardFromConfig.d.ts +1 -0
  195. package/dist/SingleGraphDashboardFromConfig.js +2 -2
  196. package/dist/SingleGraphDashboardGeoHubMaps.cjs +1 -1
  197. package/dist/SingleGraphDashboardGeoHubMaps.d.ts +1 -0
  198. package/dist/SingleGraphDashboardGeoHubMaps.js +2 -2
  199. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs +1 -1
  200. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.d.ts +1 -0
  201. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js +2 -2
  202. package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
  203. package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -1
  204. package/dist/SingleGraphDashboardThreeDGraphs.d.ts +1 -0
  205. package/dist/SingleGraphDashboardThreeDGraphs.js +14 -13
  206. package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -1
  207. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs +1 -1
  208. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +1 -0
  209. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js +2 -2
  210. package/dist/SlopeChart.cjs +1 -1
  211. package/dist/SlopeChart.cjs.map +1 -1
  212. package/dist/SlopeChart.js +137 -133
  213. package/dist/SlopeChart.js.map +1 -1
  214. package/dist/Source.cjs +1 -1
  215. package/dist/Source.js +2 -2
  216. package/dist/SparkLine.cjs +1 -1
  217. package/dist/SparkLine.js +2 -2
  218. package/dist/{Spinner-C85UF28E.js → Spinner-Bpz70q_g.js} +2 -2
  219. package/dist/{Spinner-C85UF28E.js.map → Spinner-Bpz70q_g.js.map} +1 -1
  220. package/dist/{Spinner-DA6Z5E4n.cjs → Spinner-C6wLp85s.cjs} +2 -2
  221. package/dist/{Spinner-DA6Z5E4n.cjs.map → Spinner-C6wLp85s.cjs.map} +1 -1
  222. package/dist/StatCardFromData.cjs +1 -1
  223. package/dist/StatCardFromData.js +2 -2
  224. package/dist/StripChart.cjs +1 -1
  225. package/dist/StripChart.cjs.map +1 -1
  226. package/dist/StripChart.js +307 -295
  227. package/dist/StripChart.js.map +1 -1
  228. package/dist/ThreeDGlobe.cjs +1 -1
  229. package/dist/ThreeDGlobe.cjs.map +1 -1
  230. package/dist/ThreeDGlobe.d.ts +2 -0
  231. package/dist/ThreeDGlobe.js +220 -228
  232. package/dist/ThreeDGlobe.js.map +1 -1
  233. package/dist/ThresholdColorLegendWithMouseOver.cjs +1 -1
  234. package/dist/ThresholdColorLegendWithMouseOver.js +2 -2
  235. package/dist/{Tooltip-CVCGWyzw.js → Tooltip-6LIdPQGC.js} +2 -2
  236. package/dist/{Tooltip-CVCGWyzw.js.map → Tooltip-6LIdPQGC.js.map} +1 -1
  237. package/dist/{Tooltip-De16GWhY.cjs → Tooltip-Cpv0QohJ.cjs} +2 -2
  238. package/dist/{Tooltip-De16GWhY.cjs.map → Tooltip-Cpv0QohJ.cjs.map} +1 -1
  239. package/dist/TreeMapGraph.cjs +1 -1
  240. package/dist/TreeMapGraph.js +24 -24
  241. package/dist/Types.d.ts +1 -0
  242. package/dist/{Typography-k-kOjICQ.cjs → Typography-BDULiwlF.cjs} +2 -2
  243. package/dist/{Typography-k-kOjICQ.cjs.map → Typography-BDULiwlF.cjs.map} +1 -1
  244. package/dist/{Typography-Ctgfl1J5.js → Typography-LmZ9LEpe.js} +2 -2
  245. package/dist/{Typography-Ctgfl1J5.js.map → Typography-LmZ9LEpe.js.map} +1 -1
  246. package/dist/UnitChart.cjs +1 -1
  247. package/dist/UnitChart.cjs.map +1 -1
  248. package/dist/UnitChart.js +25 -26
  249. package/dist/UnitChart.js.map +1 -1
  250. package/dist/{XAxesLabels-Drf7M3YK.cjs → XAxesLabels-CLZnBgSr.cjs} +2 -2
  251. package/dist/{XAxesLabels-Drf7M3YK.cjs.map → XAxesLabels-CLZnBgSr.cjs.map} +1 -1
  252. package/dist/{XAxesLabels-loO78vUO.js → XAxesLabels-SOSmso5J.js} +3 -3
  253. package/dist/{XAxesLabels-loO78vUO.js.map → XAxesLabels-SOSmso5J.js.map} +1 -1
  254. package/dist/{XTicksAndGridLines-Bn9u5gOM.js → XTicksAndGridLines-DuydSnZ_.js} +2 -2
  255. package/dist/{XTicksAndGridLines-Bn9u5gOM.js.map → XTicksAndGridLines-DuydSnZ_.js.map} +1 -1
  256. package/dist/{XTicksAndGridLines-CCzXIV8d.cjs → XTicksAndGridLines-RKy7BVCO.cjs} +2 -2
  257. package/dist/{XTicksAndGridLines-CCzXIV8d.cjs.map → XTicksAndGridLines-RKy7BVCO.cjs.map} +1 -1
  258. package/dist/{YAxesLabels-DECkMgq8.js → YAxesLabels-DlDyLvhi.js} +3 -3
  259. package/dist/{YAxesLabels-DECkMgq8.js.map → YAxesLabels-DlDyLvhi.js.map} +1 -1
  260. package/dist/{YAxesLabels-yRFFdx1s.cjs → YAxesLabels-Dqd259-t.cjs} +2 -2
  261. package/dist/{YAxesLabels-yRFFdx1s.cjs.map → YAxesLabels-Dqd259-t.cjs.map} +1 -1
  262. package/dist/{YTicksAndGridLines-B6ah7CRf.js → YTicksAndGridLines-7t4MKtGw.js} +2 -2
  263. package/dist/{YTicksAndGridLines-B6ah7CRf.js.map → YTicksAndGridLines-7t4MKtGw.js.map} +1 -1
  264. package/dist/{YTicksAndGridLines-DBDuz6vb.cjs → YTicksAndGridLines-qGpRo_t1.cjs} +2 -2
  265. package/dist/{YTicksAndGridLines-DBDuz6vb.cjs.map → YTicksAndGridLines-qGpRo_t1.cjs.map} +1 -1
  266. package/dist/checkIfMultiple-Dko_cBvE.cjs +12 -0
  267. package/dist/checkIfMultiple-Dko_cBvE.cjs.map +1 -0
  268. package/dist/{checkIfMultiple-ChTJk2Tk.js → checkIfMultiple-u2SmbiCf.js} +11 -11
  269. package/dist/checkIfMultiple-u2SmbiCf.js.map +1 -0
  270. package/dist/{customArea-CK768gCn.cjs → customArea-1G1S78s_.cjs} +2 -2
  271. package/dist/{customArea-CK768gCn.cjs.map → customArea-1G1S78s_.cjs.map} +1 -1
  272. package/dist/{customArea-B-dWU0zZ.js → customArea-x4L4xwLl.js} +3 -3
  273. package/dist/{customArea-B-dWU0zZ.js.map → customArea-x4L4xwLl.js.map} +1 -1
  274. package/dist/getCentroidCoordinates-Dfk6IqEG.js.map +1 -1
  275. package/dist/getCentroidCoordinates-DxTBqzp2.cjs.map +1 -1
  276. package/dist/getSliderMarks-CUxPy36E.cjs +6 -0
  277. package/dist/getSliderMarks-CUxPy36E.cjs.map +1 -0
  278. package/dist/{getSliderMarks-9cNoRkDx.js → getSliderMarks-_pYOWEtO.js} +3 -3
  279. package/dist/getSliderMarks-_pYOWEtO.js.map +1 -0
  280. package/dist/{index-BYzIB5V6.cjs → index-BHe3wsWF.cjs} +2 -2
  281. package/dist/{index-BYzIB5V6.cjs.map → index-BHe3wsWF.cjs.map} +1 -1
  282. package/dist/{index-DKCxu1Gh.js → index-Bw_eHBVN.js} +3 -3
  283. package/dist/{index-DKCxu1Gh.js.map → index-Bw_eHBVN.js.map} +1 -1
  284. package/dist/{index-BW_-wD2k.cjs → index-C0bpbS4F.cjs} +2 -2
  285. package/dist/{index-BW_-wD2k.cjs.map → index-C0bpbS4F.cjs.map} +1 -1
  286. package/dist/{index-37q0ULNQ.js → index-CE9pmfxt.js} +17 -17
  287. package/dist/{index-37q0ULNQ.js.map → index-CE9pmfxt.js.map} +1 -1
  288. package/dist/{index-CVlCtJbC.cjs → index-CEJwW3lL.cjs} +2 -2
  289. package/dist/{index-CVlCtJbC.cjs.map → index-CEJwW3lL.cjs.map} +1 -1
  290. package/dist/{index-CHPV5EwG-BPSP-7Jg.js → index-CHPV5EwG-DBWUSD9b.js} +539 -543
  291. package/dist/index-CHPV5EwG-DBWUSD9b.js.map +1 -0
  292. package/dist/index-CHPV5EwG-DjM48pIC.cjs +44 -0
  293. package/dist/index-CHPV5EwG-DjM48pIC.cjs.map +1 -0
  294. package/dist/{index-BW8iNx7E.cjs → index-Cm8NIdOO.cjs} +2 -2
  295. package/dist/{index-BW8iNx7E.cjs.map → index-Cm8NIdOO.cjs.map} +1 -1
  296. package/dist/{index-tvAyXPPW-DBlMKnNB.js → index-Cw8sCyo_-BuI_jX5Z.js} +3 -3
  297. package/dist/{index-tvAyXPPW-DBlMKnNB.js.map → index-Cw8sCyo_-BuI_jX5Z.js.map} +1 -1
  298. package/dist/index-Cw8sCyo_-gxT8ADyn.cjs +2 -0
  299. package/dist/index-Cw8sCyo_-gxT8ADyn.cjs.map +1 -0
  300. package/dist/{index-CNvov0eg.js → index-Cwgh7i7X.js} +3 -3
  301. package/dist/{index-CNvov0eg.js.map → index-Cwgh7i7X.js.map} +1 -1
  302. package/dist/{index-DG3YrCr5-D3FrrXj8.js → index-Dzc_aaI9-BKklH89r.js} +2 -2
  303. package/dist/{index-DG3YrCr5-D3FrrXj8.js.map → index-Dzc_aaI9-BKklH89r.js.map} +1 -1
  304. package/dist/{index-DG3YrCr5-v7rayV3N.cjs → index-Dzc_aaI9-RIk2GRHD.cjs} +2 -2
  305. package/dist/{index-DG3YrCr5-v7rayV3N.cjs.map → index-Dzc_aaI9-RIk2GRHD.cjs.map} +1 -1
  306. package/dist/{index-BmCqpO1B.js → index-zZjQEHlm.js} +2 -2
  307. package/dist/{index-BmCqpO1B.js.map → index-zZjQEHlm.js.map} +1 -1
  308. package/dist/index.cjs +1 -1
  309. package/dist/index.d.ts +9 -0
  310. package/dist/index.js +1 -1
  311. package/dist/{proxy-CkpFesk1.js → proxy-BYIC9BuT.js} +2 -2
  312. package/dist/{proxy-CkpFesk1.js.map → proxy-BYIC9BuT.js.map} +1 -1
  313. package/dist/{proxy-BHRoeZgd.cjs → proxy-CKadx4lC.cjs} +2 -2
  314. package/dist/{proxy-BHRoeZgd.cjs.map → proxy-CKadx4lC.cjs.map} +1 -1
  315. package/dist/style.css +1 -1
  316. package/dist/{use-in-view-sQJZ_xDO.cjs → use-in-view-CEwlc_dd.cjs} +2 -2
  317. package/dist/{use-in-view-sQJZ_xDO.cjs.map → use-in-view-CEwlc_dd.cjs.map} +1 -1
  318. package/dist/{use-in-view-yS6jzJAp.js → use-in-view-DR-UTB96.js} +2 -2
  319. package/dist/{use-in-view-yS6jzJAp.js.map → use-in-view-DR-UTB96.js.map} +1 -1
  320. package/package.json +4 -4
  321. package/dist/DropdownSelect-CtOKZHD0.js.map +0 -1
  322. package/dist/DropdownSelect-DBDM64B5.cjs.map +0 -1
  323. package/dist/GraphEl-C6yjl1VM.cjs +0 -2
  324. package/dist/GraphEl-C6yjl1VM.cjs.map +0 -1
  325. package/dist/GraphEl-CqWzvOyr.js.map +0 -1
  326. package/dist/Modal-DVVwpKhP.js.map +0 -1
  327. package/dist/Modal-tXZlLE5s.cjs +0 -46
  328. package/dist/Modal-tXZlLE5s.cjs.map +0 -1
  329. package/dist/RegressionLine-mH7UKOPi.js.map +0 -1
  330. package/dist/RegressionLine-xKdiJ8sw.cjs +0 -2
  331. package/dist/RegressionLine-xKdiJ8sw.cjs.map +0 -1
  332. package/dist/checkIfMultiple-BXbHUCWM.cjs +0 -12
  333. package/dist/checkIfMultiple-BXbHUCWM.cjs.map +0 -1
  334. package/dist/checkIfMultiple-ChTJk2Tk.js.map +0 -1
  335. package/dist/getSliderMarks-9cNoRkDx.js.map +0 -1
  336. package/dist/getSliderMarks-CRIbTGYV.cjs +0 -6
  337. package/dist/getSliderMarks-CRIbTGYV.cjs.map +0 -1
  338. package/dist/index-CHPV5EwG-BPSP-7Jg.js.map +0 -1
  339. package/dist/index-CHPV5EwG-DDoeWRVt.cjs +0 -44
  340. package/dist/index-CHPV5EwG-DDoeWRVt.cjs.map +0 -1
  341. package/dist/index-tvAyXPPW-DPOG-C2i.cjs +0 -2
  342. package/dist/index-tvAyXPPW-DPOG-C2i.cjs.map +0 -1
package/dist/GeoHubMap.js CHANGED
@@ -1,15 +1,15 @@
1
- import { j as e, m as I } from "./index-CHPV5EwG-BPSP-7Jg.js";
2
- import R, { useState as N, useRef as M, useEffect as L, useMemo as A } from "react";
3
- import { Z as E, H as Z } from "./DropdownSelect-CtOKZHD0.js";
1
+ import { j as e, m as A } from "./index-CHPV5EwG-DBWUSD9b.js";
2
+ import W, { useState as C, useRef as M, useEffect as L, useMemo as E } from "react";
3
+ import { Z, H as F } from "./DropdownSelect-6kjXM6oW.js";
4
4
  import w from "maplibre-gl";
5
- import * as W from "pmtiles";
5
+ import * as _ from "pmtiles";
6
6
  /* empty css */
7
7
  import { f as z } from "./fetchAndParseData-sapWbnYk.js";
8
8
  import { f as V } from "./filterData-9nEcQ-Jp.js";
9
- import { X as _ } from "./index-BmCqpO1B.js";
10
- import { s as $ } from "./string2HTML-oFCROsus.js";
11
- import { s as P } from "./select-DKy99ogv.js";
12
- import { GraphHeader as F } from "./GraphHeader.js";
9
+ import { X as $ } from "./index-zZjQEHlm.js";
10
+ import { s as P } from "./string2HTML-oFCROsus.js";
11
+ import { s as R } from "./select-DKy99ogv.js";
12
+ import { GraphHeader as I } from "./GraphHeader.js";
13
13
  import { GraphFooter as J } from "./GraphFooter.js";
14
14
  function X(k) {
15
15
  const {
@@ -17,62 +17,62 @@ function X(k) {
17
17
  height: n,
18
18
  width: r,
19
19
  relativeHeight: a,
20
- center: y,
21
- zoomLevel: b,
20
+ center: b,
21
+ zoomLevel: y,
22
22
  minHeight: c,
23
23
  includeLayers: u,
24
- excludeLayers: p,
24
+ excludeLayers: g,
25
25
  mapLegend: l
26
- } = k, [o, v] = N(0), [j, h] = N(0), [H, C] = N(!0), d = M(null), g = M(null), i = M(null);
26
+ } = k, [o, v] = C(0), [j, h] = C(0), [H, S] = C(!0), d = M(null), p = M(null), s = M(null);
27
27
  return L(() => {
28
- const s = new ResizeObserver((m) => {
28
+ const i = new ResizeObserver((m) => {
29
29
  v(r || m[0].target.clientWidth || 620), h(n || m[0].target.clientHeight || 480);
30
30
  });
31
- return d.current && (h(d.current.clientHeight || 480), v(d.current.clientWidth || 620), r || s.observe(d.current)), () => s.disconnect();
31
+ return d.current && (h(d.current.clientHeight || 480), v(d.current.clientWidth || 620), r || i.observe(d.current)), () => i.disconnect();
32
32
  }, [r, n]), L(() => {
33
- g.current && o && !i.current && z(t).then((s) => {
34
- P(g.current).selectAll("div").remove();
35
- const f = new W.Protocol();
33
+ p.current && o && !s.current && z(t).then((i) => {
34
+ R(p.current).selectAll("div").remove();
35
+ const f = new _.Protocol();
36
36
  w.addProtocol("pmtiles", f.tile);
37
37
  const x = {
38
38
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
39
- container: g.current,
40
- style: u.length === 0 && p.length === 0 ? s : {
41
- ...s,
42
- layers: V(s.layers, [
39
+ container: p.current,
40
+ style: u.length === 0 && g.length === 0 ? i : {
41
+ ...i,
42
+ layers: V(i.layers, [
43
43
  {
44
44
  column: "id",
45
45
  includeValues: u,
46
- excludeValues: p
46
+ excludeValues: g
47
47
  }
48
48
  ])
49
49
  },
50
50
  attributionControl: !0
51
51
  };
52
- y && (x.center = y), b && (x.zoom = b), i.current = new w.Map(x), i.current.addControl(
52
+ b && (x.center = b), y && (x.zoom = y), s.current = new w.Map(x), s.current.addControl(
53
53
  new w.NavigationControl({
54
54
  visualizePitch: !0,
55
55
  showZoom: !0,
56
56
  showCompass: !0
57
57
  }),
58
58
  "bottom-right"
59
- ), i.current.addControl(new w.ScaleControl(), "bottom-left");
59
+ ), s.current.addControl(new w.ScaleControl(), "bottom-left");
60
60
  });
61
- }, [o, y, b, u, p, t]), L(() => {
62
- i.current && z(t).then((s) => {
61
+ }, [o, b, y, u, g, t]), L(() => {
62
+ s.current && z(t).then((i) => {
63
63
  const m = {
64
- ...s,
65
- layers: V(s.layers, [
64
+ ...i,
65
+ layers: V(i.layers, [
66
66
  {
67
67
  column: "id",
68
68
  includeValues: u,
69
- excludeValues: p
69
+ excludeValues: g
70
70
  }
71
71
  ])
72
72
  };
73
- i.current.setStyle(m);
73
+ s.current.setStyle(m);
74
74
  });
75
- }, [p, u, t]), /* @__PURE__ */ e.jsx(
75
+ }, [g, u, t]), /* @__PURE__ */ e.jsx(
76
76
  "div",
77
77
  {
78
78
  className: "flex flex-col grow justify-center leading-0",
@@ -92,7 +92,7 @@ function X(k) {
92
92
  /* @__PURE__ */ e.jsx(
93
93
  "div",
94
94
  {
95
- ref: g,
95
+ ref: p,
96
96
  className: "map maplibre-show-control",
97
97
  style: { width: "100%", height: "100%" }
98
98
  }
@@ -101,34 +101,19 @@ function X(k) {
101
101
  /* @__PURE__ */ e.jsx(
102
102
  "div",
103
103
  {
104
- style: {
105
- backgroundColor: "rgba(240,240,240, 0.7)",
106
- border: "1px solid var(--gray-400)",
107
- borderRadius: "999px",
108
- width: "24px",
109
- height: "24px",
110
- padding: "3px",
111
- cursor: "pointer",
112
- zIndex: 10,
113
- position: "absolute",
114
- right: "-0.75rem",
115
- top: "-0.75rem"
116
- },
104
+ 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]",
117
105
  onClick: () => {
118
- C(!1);
106
+ S(!1);
119
107
  },
120
- children: /* @__PURE__ */ e.jsx(_, {})
108
+ children: /* @__PURE__ */ e.jsx($, {})
121
109
  }
122
110
  ),
123
111
  /* @__PURE__ */ e.jsx(
124
112
  "div",
125
113
  {
126
- className: "p-2",
127
- style: {
128
- backgroundColor: "rgba(240,240,240, 0.7)"
129
- },
130
- dangerouslySetInnerHTML: typeof l == "string" ? { __html: $(l) } : void 0,
131
- children: R.isValidElement(l) ? l : null
114
+ className: "color-legend-box p-2 bg-[rgba(240,240,240,0.7)] dark:bg-[rgba(30,30,30,0.7)]",
115
+ dangerouslySetInnerHTML: typeof l == "string" ? { __html: P(l) } : void 0,
116
+ children: W.isValidElement(l) ? l : null
132
117
  }
133
118
  )
134
119
  ] }) : /* @__PURE__ */ e.jsx(
@@ -137,9 +122,9 @@ function X(k) {
137
122
  type: "button",
138
123
  className: "mb-0 border-0 bg-transparent p-0 self-start",
139
124
  onClick: () => {
140
- C(!0);
125
+ S(!0);
141
126
  },
142
- children: /* @__PURE__ */ e.jsx("div", { className: "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-550 border-primary-gray-400 dark:border-primary-gray-500", children: "Show Legend" })
127
+ children: /* @__PURE__ */ e.jsx("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", children: "Show Legend" })
143
128
  }
144
129
  ) }) : null
145
130
  ]
@@ -154,39 +139,39 @@ function q(k) {
154
139
  height: n,
155
140
  width: r,
156
141
  relativeHeight: a,
157
- center: y,
158
- zoomLevel: b,
142
+ center: b,
143
+ zoomLevel: y,
159
144
  minHeight: c,
160
145
  includeLayers: u,
161
- excludeLayers: p,
146
+ excludeLayers: g,
162
147
  mapLegend: l
163
- } = k, [o, v] = N(0), [j, h] = N(0), [H, C] = N(!0), d = M(null), g = M(null);
148
+ } = k, [o, v] = C(0), [j, h] = C(0), [H, S] = C(!0), d = M(null), p = M(null);
164
149
  return L(() => {
165
- const i = new ResizeObserver((s) => {
166
- v(r || s[0].target.clientWidth || 620), h(n || s[0].target.clientHeight || 480);
150
+ const s = new ResizeObserver((i) => {
151
+ v(r || i[0].target.clientWidth || 620), h(n || i[0].target.clientHeight || 480);
167
152
  });
168
- return d.current && (h(d.current.clientHeight || 480), v(d.current.clientWidth || 620), r || i.observe(d.current)), () => i.disconnect();
153
+ return d.current && (h(d.current.clientHeight || 480), v(d.current.clientWidth || 620), r || s.observe(d.current)), () => s.disconnect();
169
154
  }, [r, n]), L(() => {
170
- g.current && o && z(t).then((i) => {
171
- P(g.current).selectAll("div").remove();
172
- const m = new W.Protocol();
155
+ p.current && o && z(t).then((s) => {
156
+ R(p.current).selectAll("div").remove();
157
+ const m = new _.Protocol();
173
158
  w.addProtocol("pmtiles", m.tile);
174
159
  const f = {
175
160
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
176
- container: g.current,
177
- style: u.length === 0 && p.length === 0 ? i : {
178
- ...i,
179
- layers: V(i.layers, [
161
+ container: p.current,
162
+ style: u.length === 0 && g.length === 0 ? s : {
163
+ ...s,
164
+ layers: V(s.layers, [
180
165
  {
181
166
  column: "id",
182
167
  includeValues: u,
183
- excludeValues: p
168
+ excludeValues: g
184
169
  }
185
170
  ])
186
171
  },
187
172
  attributionControl: !0
188
173
  };
189
- y && (f.center = y), b && (f.zoom = b);
174
+ b && (f.center = b), y && (f.zoom = y);
190
175
  const x = new w.Map(f);
191
176
  x.addControl(
192
177
  new w.NavigationControl({
@@ -197,7 +182,7 @@ function q(k) {
197
182
  "bottom-right"
198
183
  ), x.addControl(new w.ScaleControl(), "bottom-left");
199
184
  });
200
- }, [o, t, y, b, u, p]), /* @__PURE__ */ e.jsx(
185
+ }, [o, t, b, y, u, g]), /* @__PURE__ */ e.jsx(
201
186
  "div",
202
187
  {
203
188
  className: "flex flex-col grow justify-center leading-0",
@@ -217,7 +202,7 @@ function q(k) {
217
202
  /* @__PURE__ */ e.jsx(
218
203
  "div",
219
204
  {
220
- ref: g,
205
+ ref: p,
221
206
  className: "map maplibre-show-control",
222
207
  style: { width: "100%", height: "100%" }
223
208
  }
@@ -226,34 +211,19 @@ function q(k) {
226
211
  /* @__PURE__ */ e.jsx(
227
212
  "div",
228
213
  {
229
- style: {
230
- backgroundColor: "rgba(240,240,240, 0.7)",
231
- border: "1px solid var(--gray-400)",
232
- borderRadius: "999px",
233
- width: "24px",
234
- height: "24px",
235
- padding: "3px",
236
- cursor: "pointer",
237
- zIndex: 10,
238
- position: "absolute",
239
- right: "-0.75rem",
240
- top: "-0.75rem"
241
- },
214
+ 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]",
242
215
  onClick: () => {
243
- C(!1);
216
+ S(!1);
244
217
  },
245
- children: /* @__PURE__ */ e.jsx(_, {})
218
+ children: /* @__PURE__ */ e.jsx($, {})
246
219
  }
247
220
  ),
248
221
  /* @__PURE__ */ e.jsx(
249
222
  "div",
250
223
  {
251
- className: "p-2",
252
- style: {
253
- backgroundColor: "rgba(240,240,240, 0.7)"
254
- },
255
- dangerouslySetInnerHTML: typeof l == "string" ? { __html: $(l) } : void 0,
256
- children: R.isValidElement(l) ? l : null
224
+ className: "color-legend-box p-2 bg-[rgba(240,240,240,0.7)] dark:bg-[rgba(30,30,30,0.7)]",
225
+ dangerouslySetInnerHTML: typeof l == "string" ? { __html: P(l) } : void 0,
226
+ children: W.isValidElement(l) ? l : null
257
227
  }
258
228
  )
259
229
  ] }) : /* @__PURE__ */ e.jsx(
@@ -262,9 +232,9 @@ function q(k) {
262
232
  type: "button",
263
233
  className: "mb-0 border-0 bg-transparent p-0 self-start",
264
234
  onClick: () => {
265
- C(!0);
235
+ S(!0);
266
236
  },
267
- children: /* @__PURE__ */ e.jsx("div", { className: "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-550 border-primary-gray-400 dark:border-primary-gray-500", children: "Show Legend" })
237
+ children: /* @__PURE__ */ e.jsx("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", children: "Show Legend" })
268
238
  }
269
239
  ) }) : null
270
240
  ]
@@ -273,38 +243,38 @@ function q(k) {
273
243
  }
274
244
  );
275
245
  }
276
- function se(k) {
246
+ function ie(k) {
277
247
  const {
278
248
  mapStyle: t,
279
249
  graphTitle: n,
280
250
  height: r,
281
251
  width: a,
282
- relativeHeight: y,
283
- sources: b,
252
+ relativeHeight: b,
253
+ sources: y,
284
254
  graphDescription: c,
285
255
  footNote: u,
286
- padding: p,
256
+ padding: g,
287
257
  backgroundColor: l = !1,
288
258
  center: o,
289
259
  zoomLevel: v,
290
260
  graphID: j,
291
261
  language: h = "en",
292
262
  minHeight: H = 0,
293
- theme: C = "light",
263
+ theme: S = "light",
294
264
  includeLayers: d = [],
295
- excludeLayers: g = [],
296
- ariaLabel: i,
297
- uiMode: s = "normal",
265
+ excludeLayers: p = [],
266
+ ariaLabel: s,
267
+ uiMode: i = "normal",
298
268
  styles: m,
299
269
  classNames: f,
300
270
  mapLegend: x
301
- } = k, [D, O] = N(
271
+ } = k, [D, O] = C(
302
272
  typeof t == "string" ? t : t[0].style
303
273
  );
304
274
  L(() => {
305
275
  O(typeof t == "string" ? t : t[0].style);
306
276
  }, [t]);
307
- const G = A(
277
+ const G = E(
308
278
  () => ({
309
279
  ignoreCase: !0,
310
280
  ignoreAccents: !0,
@@ -315,12 +285,12 @@ function se(k) {
315
285
  return /* @__PURE__ */ e.jsx(
316
286
  "div",
317
287
  {
318
- className: `${C || "light"} flex ${a ? "w-fit grow-0" : "w-full grow"}`,
288
+ className: `${S || "light"} flex ${a ? "w-fit grow-0" : "w-full grow"}`,
319
289
  dir: h === "he" || h === "ar" ? "rtl" : void 0,
320
290
  children: /* @__PURE__ */ e.jsx(
321
291
  "div",
322
292
  {
323
- className: I(
293
+ className: A(
324
294
  `${l ? l === !0 ? "bg-primary-gray-200 dark:bg-primary-gray-650 " : "" : "bg-transparent "}ml-auto mr-auto flex flex-col grow h-inherit ${h || "en"}`,
325
295
  a ? "w-fit" : "w-full",
326
296
  f?.graphContainer
@@ -330,15 +300,15 @@ function se(k) {
330
300
  ...l && l !== !0 ? { backgroundColor: l } : {}
331
301
  },
332
302
  id: j,
333
- "aria-label": i || `${n ? `The graph shows ${n}. ` : ""}This is a map.${c ? ` ${c}` : ""}`,
303
+ "aria-label": s || `${n ? `The graph shows ${n}. ` : ""}This is a map.${c ? ` ${c}` : ""}`,
334
304
  children: /* @__PURE__ */ e.jsx(
335
305
  "div",
336
306
  {
337
307
  className: "flex grow",
338
- style: { padding: l ? p || "1rem" : p || 0 },
308
+ style: { padding: l ? g || "1rem" : g || 0 },
339
309
  children: /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col w-full gap-4 grow justify-between", children: [
340
310
  n || c ? /* @__PURE__ */ e.jsx(
341
- F,
311
+ I,
342
312
  {
343
313
  styles: {
344
314
  title: m?.title,
@@ -354,22 +324,22 @@ function se(k) {
354
324
  }
355
325
  ) : null,
356
326
  typeof t == "string" ? null : /* @__PURE__ */ e.jsx(
357
- E,
327
+ Z,
358
328
  {
359
- options: t.map((S) => ({ label: S.name, value: S.style })),
329
+ options: t.map((N) => ({ label: N.name, value: N.style })),
360
330
  isClearable: !1,
361
331
  size: "sm",
362
- variant: s,
332
+ variant: i,
363
333
  isRtl: h === "he" || h === "ar",
364
334
  isSearchable: !0,
365
- filterOption: Z(G),
335
+ filterOption: F(G),
366
336
  defaultValue: {
367
337
  label: t[0].name,
368
338
  value: t[0].style
369
339
  },
370
340
  controlShouldRenderValue: !0,
371
- onChange: (S) => {
372
- S && O(S.value);
341
+ onChange: (N) => {
342
+ N && O(N.value);
373
343
  }
374
344
  }
375
345
  ),
@@ -381,10 +351,10 @@ function se(k) {
381
351
  zoomLevel: v,
382
352
  width: a,
383
353
  height: r,
384
- relativeHeight: y,
354
+ relativeHeight: b,
385
355
  minHeight: H,
386
356
  includeLayers: d,
387
- excludeLayers: g,
357
+ excludeLayers: p,
388
358
  mapLegend: x
389
359
  }
390
360
  ) : /* @__PURE__ */ e.jsx(
@@ -395,16 +365,16 @@ function se(k) {
395
365
  zoomLevel: v,
396
366
  width: a,
397
367
  height: r,
398
- relativeHeight: y,
368
+ relativeHeight: b,
399
369
  minHeight: H,
400
370
  includeLayers: d,
401
- excludeLayers: g,
371
+ excludeLayers: p,
402
372
  mapLegend: (x || []).find(
403
- (S) => S.mapStyleName === t.find((T) => T.style === D)?.name
373
+ (N) => N.mapStyleName === t.find((T) => T.style === D)?.name
404
374
  )?.legend
405
375
  }
406
376
  ),
407
- b || u ? /* @__PURE__ */ e.jsx(
377
+ y || u ? /* @__PURE__ */ e.jsx(
408
378
  J,
409
379
  {
410
380
  styles: { footnote: m?.footnote, source: m?.source },
@@ -412,7 +382,7 @@ function se(k) {
412
382
  footnote: f?.footnote,
413
383
  source: f?.source
414
384
  },
415
- sources: b,
385
+ sources: y,
416
386
  footNote: u,
417
387
  width: a
418
388
  }
@@ -426,6 +396,6 @@ function se(k) {
426
396
  );
427
397
  }
428
398
  export {
429
- se as GeoHubMap
399
+ ie as GeoHubMap
430
400
  };
431
401
  //# sourceMappingURL=GeoHubMap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GeoHubMap.js","sources":["../src/Components/Graphs/Maps/GeoHubMaps/SimpleMap/GeoHubMultipleMap.tsx","../src/Components/Graphs/Maps/GeoHubMaps/SimpleMap/GeoHubSingleMap.tsx","../src/Components/Graphs/Maps/GeoHubMaps/SimpleMap/index.tsx"],"sourcesContent":["import { useRef, useEffect, useState } from 'react';\r\nimport maplibreGl from 'maplibre-gl';\r\nimport * as pmtiles from 'pmtiles';\r\nimport 'maplibre-gl/dist/maplibre-gl.css';\r\nimport { select } from 'd3-selection';\r\nimport React from 'react';\r\n\r\nimport { fetchAndParseJSON } from '@/Utils/fetchAndParseData';\r\nimport { filterData } from '@/Utils/transformData/filterData';\r\nimport { X } from '@/Components/Icons';\r\nimport { string2HTML } from '@/Utils/string2HTML';\r\n\r\ninterface Props {\r\n mapStyle: string;\r\n center?: [number, number];\r\n zoomLevel?: number;\r\n width?: number;\r\n height?: number;\r\n relativeHeight?: number;\r\n minHeight: number;\r\n includeLayers: string[];\r\n excludeLayers: string[];\r\n mapLegend?: string | React.ReactNode;\r\n}\r\n\r\nexport function GeoHubMultipleMap(props: Props) {\r\n const {\r\n mapStyle,\r\n height,\r\n width,\r\n relativeHeight,\r\n center,\r\n zoomLevel,\r\n minHeight,\r\n includeLayers,\r\n excludeLayers,\r\n mapLegend,\r\n } = props;\r\n\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [showLegend, setShowLegend] = useState(true);\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const mapContainer = useRef<HTMLDivElement>(null);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const mapRef = useRef<any>(null);\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(width || entries[0].target.clientWidth || 620);\r\n setSvgHeight(height || entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n setSvgHeight(graphDiv.current.clientHeight || 480);\r\n setSvgWidth(graphDiv.current.clientWidth || 620);\r\n if (!width) resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, [width, height]);\r\n useEffect(() => {\r\n if (mapContainer.current && svgWidth && !mapRef.current) {\r\n fetchAndParseJSON(mapStyle).then(d => {\r\n const mapDiv = select(mapContainer.current);\r\n mapDiv.selectAll('div').remove();\r\n const protocol = new pmtiles.Protocol();\r\n maplibreGl.addProtocol('pmtiles', protocol.tile);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const mapObj: any = {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n container: mapContainer.current as any,\r\n style:\r\n includeLayers.length === 0 && excludeLayers.length === 0\r\n ? d\r\n : {\r\n ...d,\r\n layers: filterData(d.layers, [\r\n {\r\n column: 'id',\r\n includeValues: includeLayers,\r\n excludeValues: excludeLayers,\r\n },\r\n ]),\r\n },\r\n attributionControl: true,\r\n };\r\n if (center) {\r\n mapObj.center = center;\r\n }\r\n if (zoomLevel) {\r\n mapObj.zoom = zoomLevel;\r\n }\r\n mapRef.current = new maplibreGl.Map(mapObj);\r\n mapRef.current.addControl(\r\n new maplibreGl.NavigationControl({\r\n visualizePitch: true,\r\n showZoom: true,\r\n showCompass: true,\r\n }),\r\n 'bottom-right',\r\n );\r\n mapRef.current.addControl(new maplibreGl.ScaleControl(), 'bottom-left');\r\n });\r\n }\r\n }, [svgWidth, center, zoomLevel, includeLayers, excludeLayers, mapStyle]);\r\n useEffect(() => {\r\n if (mapRef.current) {\r\n fetchAndParseJSON(mapStyle).then(d => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const mapStyleObj: any = {\r\n ...d,\r\n layers: filterData(d.layers, [\r\n {\r\n column: 'id',\r\n includeValues: includeLayers,\r\n excludeValues: excludeLayers,\r\n },\r\n ]),\r\n };\r\n mapRef.current.setStyle(mapStyleObj);\r\n });\r\n }\r\n }, [excludeLayers, includeLayers, mapStyle]);\r\n return (\r\n <div\r\n className='flex flex-col grow justify-center leading-0'\r\n ref={graphDiv}\r\n aria-label='Map area'\r\n >\r\n {(width || svgWidth) && (height || svgHeight) ? (\r\n <div\r\n style={{\r\n width: width || svgWidth,\r\n height: Math.max(\r\n minHeight,\r\n height ||\r\n (relativeHeight\r\n ? minHeight\r\n ? (width || svgWidth) * relativeHeight > minHeight\r\n ? (width || svgWidth) * relativeHeight\r\n : minHeight\r\n : (width || svgWidth) * relativeHeight\r\n : svgHeight),\r\n ),\r\n }}\r\n >\r\n <div\r\n ref={mapContainer}\r\n className='map maplibre-show-control'\r\n style={{ width: '100%', height: '100%' }}\r\n />\r\n {mapLegend ? (\r\n <div className='absolute left-[22px] bottom-13'>\r\n {showLegend ? (\r\n <>\r\n <div\r\n style={{\r\n backgroundColor: 'rgba(240,240,240, 0.7)',\r\n border: '1px solid var(--gray-400)',\r\n borderRadius: '999px',\r\n width: '24px',\r\n height: '24px',\r\n padding: '3px',\r\n cursor: 'pointer',\r\n zIndex: 10,\r\n position: 'absolute',\r\n right: '-0.75rem',\r\n top: '-0.75rem',\r\n }}\r\n onClick={() => {\r\n setShowLegend(false);\r\n }}\r\n >\r\n <X />\r\n </div>\r\n <div\r\n className='p-2'\r\n style={{\r\n backgroundColor: 'rgba(240,240,240, 0.7)',\r\n }}\r\n dangerouslySetInnerHTML={\r\n typeof mapLegend === 'string' ? { __html: string2HTML(mapLegend) } : undefined\r\n }\r\n >\r\n {React.isValidElement(mapLegend) ? mapLegend : null}\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='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-550 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 ) : null}\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n","import { useRef, useEffect, useState } from 'react';\r\nimport maplibreGl from 'maplibre-gl';\r\nimport * as pmtiles from 'pmtiles';\r\nimport 'maplibre-gl/dist/maplibre-gl.css';\r\nimport { select } from 'd3-selection';\r\nimport React from 'react';\r\n\r\nimport { fetchAndParseJSON } from '@/Utils/fetchAndParseData';\r\nimport { filterData } from '@/Utils/transformData/filterData';\r\nimport { X } from '@/Components/Icons';\r\nimport { string2HTML } from '@/Utils/string2HTML';\r\n\r\ninterface Props {\r\n mapStyle: string;\r\n center?: [number, number];\r\n zoomLevel?: number;\r\n width?: number;\r\n height?: number;\r\n relativeHeight?: number;\r\n minHeight: number;\r\n mapLegend?: string | React.ReactNode;\r\n includeLayers: string[];\r\n excludeLayers: string[];\r\n}\r\n\r\nexport function GeoHubSingleMap(props: Props) {\r\n const {\r\n mapStyle,\r\n height,\r\n width,\r\n relativeHeight,\r\n center,\r\n zoomLevel,\r\n minHeight,\r\n includeLayers,\r\n excludeLayers,\r\n mapLegend,\r\n } = props;\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [showLegend, setShowLegend] = useState(true);\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const mapContainer = useRef<HTMLDivElement>(null);\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(width || entries[0].target.clientWidth || 620);\r\n setSvgHeight(height || entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n setSvgHeight(graphDiv.current.clientHeight || 480);\r\n setSvgWidth(graphDiv.current.clientWidth || 620);\r\n if (!width) resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, [width, height]);\r\n useEffect(() => {\r\n if (mapContainer.current && svgWidth) {\r\n fetchAndParseJSON(mapStyle).then(d => {\r\n const mapDiv = select(mapContainer.current);\r\n mapDiv.selectAll('div').remove();\r\n const protocol = new pmtiles.Protocol();\r\n maplibreGl.addProtocol('pmtiles', protocol.tile);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const mapObj: any = {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n container: mapContainer.current as any,\r\n style:\r\n includeLayers.length === 0 && excludeLayers.length === 0\r\n ? d\r\n : {\r\n ...d,\r\n layers: filterData(d.layers, [\r\n {\r\n column: 'id',\r\n includeValues: includeLayers,\r\n excludeValues: excludeLayers,\r\n },\r\n ]),\r\n },\r\n attributionControl: true,\r\n };\r\n if (center) {\r\n mapObj.center = center;\r\n }\r\n if (zoomLevel) {\r\n mapObj.zoom = zoomLevel;\r\n }\r\n const map = new maplibreGl.Map(mapObj);\r\n map.addControl(\r\n new maplibreGl.NavigationControl({\r\n visualizePitch: true,\r\n showZoom: true,\r\n showCompass: true,\r\n }),\r\n 'bottom-right',\r\n );\r\n map.addControl(new maplibreGl.ScaleControl(), 'bottom-left');\r\n });\r\n }\r\n }, [svgWidth, mapStyle, center, zoomLevel, includeLayers, excludeLayers]);\r\n return (\r\n <div\r\n className='flex flex-col grow justify-center leading-0'\r\n ref={graphDiv}\r\n aria-label='Map area'\r\n >\r\n {(width || svgWidth) && (height || svgHeight) ? (\r\n <div\r\n style={{\r\n width: width || svgWidth,\r\n height: Math.max(\r\n minHeight,\r\n height ||\r\n (relativeHeight\r\n ? minHeight\r\n ? (width || svgWidth) * relativeHeight > minHeight\r\n ? (width || svgWidth) * relativeHeight\r\n : minHeight\r\n : (width || svgWidth) * relativeHeight\r\n : svgHeight),\r\n ),\r\n }}\r\n >\r\n <div\r\n ref={mapContainer}\r\n className='map maplibre-show-control'\r\n style={{ width: '100%', height: '100%' }}\r\n />\r\n {mapLegend ? (\r\n <div className='absolute left-[22px] bottom-13'>\r\n {showLegend ? (\r\n <>\r\n <div\r\n style={{\r\n backgroundColor: 'rgba(240,240,240, 0.7)',\r\n border: '1px solid var(--gray-400)',\r\n borderRadius: '999px',\r\n width: '24px',\r\n height: '24px',\r\n padding: '3px',\r\n cursor: 'pointer',\r\n zIndex: 10,\r\n position: 'absolute',\r\n right: '-0.75rem',\r\n top: '-0.75rem',\r\n }}\r\n onClick={() => {\r\n setShowLegend(false);\r\n }}\r\n >\r\n <X />\r\n </div>\r\n <div\r\n className='p-2'\r\n style={{\r\n backgroundColor: 'rgba(240,240,240, 0.7)',\r\n }}\r\n dangerouslySetInnerHTML={\r\n typeof mapLegend === 'string' ? { __html: string2HTML(mapLegend) } : undefined\r\n }\r\n >\r\n {React.isValidElement(mapLegend) ? mapLegend : null}\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='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-550 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 ) : null}\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n","import React, { useEffect, useMemo, useState } from 'react';\r\nimport { DropdownSelect, createFilter } from '@undp/design-system-react/DropdownSelect';\r\nimport { cn } from '@undp/design-system-react/cn';\r\n\r\nimport { GeoHubMultipleMap } from './GeoHubMultipleMap';\r\nimport { GeoHubSingleMap } from './GeoHubSingleMap';\r\n\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport {\r\n ClassNameObject,\r\n Languages,\r\n MapLegendDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n} from '@/Types';\r\n\r\ninterface Props {\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** 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 /** URL for mapStyle JSON. If the type is string, otherwise it creates and dropdown and provide end user to select the map style they would like to */\r\n mapStyle: string | { style: string; name: string }[];\r\n /** Defines the legend for the map. If the mapStyle is string, mapLegend can be string or ReactNode. mapLegend with type string is show as innerHTML. If the mapStyle is not string, mapLegend is of type { mapStyleName: string; legend: string | React.ReactNode }[] where mapStyleName corresponds to the each name in the mapStyle. */\r\n mapLegend?: string | React.ReactNode | MapLegendDataType[];\r\n /** Starting center point of the map */\r\n center?: [number, number];\r\n /** Starting zoom level of the map */\r\n zoomLevel?: number;\r\n /** List of layer IDs to be included in the visualization. If this is present only these layers are included. */\r\n includeLayers?: string[];\r\n /** List of layer IDs to be excluded from the visualization */\r\n excludeLayers?: string[];\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Theme for the UI elements */\r\n uiMode?: 'light' | 'normal';\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 [`maplibre`](https://maplibre.org/maplibre-gl-js/docs/#npm) and [pmtiles](https://www.npmjs.com/package/pmtiles) package to your project */\r\nexport function GeoHubMap(props: Props) {\r\n const {\r\n mapStyle,\r\n graphTitle,\r\n height,\r\n width,\r\n relativeHeight,\r\n sources,\r\n graphDescription,\r\n footNote,\r\n padding,\r\n backgroundColor = false,\r\n center,\r\n zoomLevel,\r\n graphID,\r\n language = 'en',\r\n minHeight = 0,\r\n theme = 'light',\r\n includeLayers = [],\r\n excludeLayers = [],\r\n ariaLabel,\r\n uiMode = 'normal',\r\n styles,\r\n classNames,\r\n mapLegend,\r\n } = props;\r\n\r\n const [selectedMapStyle, setSelectedMapStyle] = useState(\r\n typeof mapStyle === 'string' ? mapStyle : mapStyle[0].style,\r\n );\r\n\r\n useEffect(() => {\r\n setSelectedMapStyle(typeof mapStyle === 'string' ? mapStyle : mapStyle[0].style);\r\n }, [mapStyle]);\r\n\r\n const filterConfig = useMemo(\r\n () => ({\r\n ignoreCase: true,\r\n ignoreAccents: true,\r\n trim: true,\r\n }),\r\n [],\r\n );\r\n return (\r\n <div\r\n className={`${theme || 'light'} flex ${width ? 'w-fit grow-0' : 'w-full grow'}`}\r\n dir={language === 'he' || language === 'ar' ? 'rtl' : undefined}\r\n >\r\n <div\r\n className={cn(\r\n `${\r\n !backgroundColor\r\n ? 'bg-transparent '\r\n : backgroundColor === true\r\n ? 'bg-primary-gray-200 dark:bg-primary-gray-650 '\r\n : ''\r\n }ml-auto mr-auto flex flex-col grow h-inherit ${language || 'en'}`,\r\n width ? 'w-fit' : 'w-full',\r\n classNames?.graphContainer,\r\n )}\r\n style={{\r\n ...(styles?.graphContainer || {}),\r\n ...(backgroundColor && backgroundColor !== true ? { backgroundColor } : {}),\r\n }}\r\n id={graphID}\r\n aria-label={\r\n ariaLabel ||\r\n `${\r\n graphTitle ? `The graph shows ${graphTitle}. ` : ''\r\n }This is a map.${graphDescription ? ` ${graphDescription}` : ''}`\r\n }\r\n >\r\n <div\r\n className='flex grow'\r\n style={{ padding: backgroundColor ? padding || '1rem' : padding || 0 }}\r\n >\r\n <div className='flex flex-col w-full gap-4 grow justify-between'>\r\n {graphTitle || graphDescription ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n />\r\n ) : null}\r\n {typeof mapStyle === 'string' ? null : (\r\n <DropdownSelect\r\n options={mapStyle.map(d => ({ label: d.name, value: d.style }))}\r\n isClearable={false}\r\n size='sm'\r\n variant={uiMode}\r\n isRtl={language === 'he' || language === 'ar'}\r\n isSearchable\r\n filterOption={createFilter(filterConfig)}\r\n defaultValue={{\r\n label: mapStyle[0].name,\r\n value: mapStyle[0].style,\r\n }}\r\n controlShouldRenderValue\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n if (el) setSelectedMapStyle(el.value);\r\n }}\r\n />\r\n )}\r\n {typeof mapStyle === 'string' ? (\r\n <GeoHubSingleMap\r\n mapStyle={mapStyle}\r\n center={center}\r\n zoomLevel={zoomLevel}\r\n width={width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n minHeight={minHeight}\r\n includeLayers={includeLayers}\r\n excludeLayers={excludeLayers}\r\n mapLegend={mapLegend as string | React.ReactNode | undefined}\r\n />\r\n ) : (\r\n <GeoHubMultipleMap\r\n mapStyle={selectedMapStyle}\r\n center={center}\r\n zoomLevel={zoomLevel}\r\n width={width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n minHeight={minHeight}\r\n includeLayers={includeLayers}\r\n excludeLayers={excludeLayers}\r\n mapLegend={\r\n ((mapLegend || []) as MapLegendDataType[]).find(\r\n d =>\r\n d.mapStyleName === mapStyle.find(el => el.style === selectedMapStyle)?.name,\r\n )?.legend\r\n }\r\n />\r\n )}\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["GeoHubMultipleMap","props","mapStyle","height","width","relativeHeight","center","zoomLevel","minHeight","includeLayers","excludeLayers","mapLegend","svgWidth","setSvgWidth","useState","svgHeight","setSvgHeight","showLegend","setShowLegend","graphDiv","useRef","mapContainer","mapRef","useEffect","resizeObserver","entries","fetchAndParseJSON","d","select","protocol","pmtiles","maplibreGl","mapObj","filterData","mapStyleObj","jsx","jsxs","Fragment","X","string2HTML","React","GeoHubSingleMap","map","GeoHubMap","graphTitle","sources","graphDescription","footNote","padding","backgroundColor","graphID","language","theme","ariaLabel","uiMode","styles","classNames","selectedMapStyle","setSelectedMapStyle","filterConfig","useMemo","cn","GraphHeader","DropdownSelect","createFilter","el","GraphFooter"],"mappings":"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"}
1
+ {"version":3,"file":"GeoHubMap.js","sources":["../src/Components/Graphs/Maps/GeoHubMaps/SimpleMap/GeoHubMultipleMap.tsx","../src/Components/Graphs/Maps/GeoHubMaps/SimpleMap/GeoHubSingleMap.tsx","../src/Components/Graphs/Maps/GeoHubMaps/SimpleMap/index.tsx"],"sourcesContent":["import { useRef, useEffect, useState } from 'react';\r\nimport maplibreGl from 'maplibre-gl';\r\nimport * as pmtiles from 'pmtiles';\r\nimport 'maplibre-gl/dist/maplibre-gl.css';\r\nimport { select } from 'd3-selection';\r\nimport React from 'react';\r\n\r\nimport { fetchAndParseJSON } from '@/Utils/fetchAndParseData';\r\nimport { filterData } from '@/Utils/transformData/filterData';\r\nimport { X } from '@/Components/Icons';\r\nimport { string2HTML } from '@/Utils/string2HTML';\r\n\r\ninterface Props {\r\n mapStyle: string;\r\n center?: [number, number];\r\n zoomLevel?: number;\r\n width?: number;\r\n height?: number;\r\n relativeHeight?: number;\r\n minHeight: number;\r\n includeLayers: string[];\r\n excludeLayers: string[];\r\n mapLegend?: string | React.ReactNode;\r\n}\r\n\r\nexport function GeoHubMultipleMap(props: Props) {\r\n const {\r\n mapStyle,\r\n height,\r\n width,\r\n relativeHeight,\r\n center,\r\n zoomLevel,\r\n minHeight,\r\n includeLayers,\r\n excludeLayers,\r\n mapLegend,\r\n } = props;\r\n\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [showLegend, setShowLegend] = useState(true);\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const mapContainer = useRef<HTMLDivElement>(null);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const mapRef = useRef<any>(null);\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(width || entries[0].target.clientWidth || 620);\r\n setSvgHeight(height || entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n setSvgHeight(graphDiv.current.clientHeight || 480);\r\n setSvgWidth(graphDiv.current.clientWidth || 620);\r\n if (!width) resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, [width, height]);\r\n useEffect(() => {\r\n if (mapContainer.current && svgWidth && !mapRef.current) {\r\n fetchAndParseJSON(mapStyle).then(d => {\r\n const mapDiv = select(mapContainer.current);\r\n mapDiv.selectAll('div').remove();\r\n const protocol = new pmtiles.Protocol();\r\n maplibreGl.addProtocol('pmtiles', protocol.tile);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const mapObj: any = {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n container: mapContainer.current as any,\r\n style:\r\n includeLayers.length === 0 && excludeLayers.length === 0\r\n ? d\r\n : {\r\n ...d,\r\n layers: filterData(d.layers, [\r\n {\r\n column: 'id',\r\n includeValues: includeLayers,\r\n excludeValues: excludeLayers,\r\n },\r\n ]),\r\n },\r\n attributionControl: true,\r\n };\r\n if (center) {\r\n mapObj.center = center;\r\n }\r\n if (zoomLevel) {\r\n mapObj.zoom = zoomLevel;\r\n }\r\n mapRef.current = new maplibreGl.Map(mapObj);\r\n mapRef.current.addControl(\r\n new maplibreGl.NavigationControl({\r\n visualizePitch: true,\r\n showZoom: true,\r\n showCompass: true,\r\n }),\r\n 'bottom-right',\r\n );\r\n mapRef.current.addControl(new maplibreGl.ScaleControl(), 'bottom-left');\r\n });\r\n }\r\n }, [svgWidth, center, zoomLevel, includeLayers, excludeLayers, mapStyle]);\r\n useEffect(() => {\r\n if (mapRef.current) {\r\n fetchAndParseJSON(mapStyle).then(d => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const mapStyleObj: any = {\r\n ...d,\r\n layers: filterData(d.layers, [\r\n {\r\n column: 'id',\r\n includeValues: includeLayers,\r\n excludeValues: excludeLayers,\r\n },\r\n ]),\r\n };\r\n mapRef.current.setStyle(mapStyleObj);\r\n });\r\n }\r\n }, [excludeLayers, includeLayers, mapStyle]);\r\n return (\r\n <div\r\n className='flex flex-col grow justify-center leading-0'\r\n ref={graphDiv}\r\n aria-label='Map area'\r\n >\r\n {(width || svgWidth) && (height || svgHeight) ? (\r\n <div\r\n style={{\r\n width: width || svgWidth,\r\n height: Math.max(\r\n minHeight,\r\n height ||\r\n (relativeHeight\r\n ? minHeight\r\n ? (width || svgWidth) * relativeHeight > minHeight\r\n ? (width || svgWidth) * relativeHeight\r\n : minHeight\r\n : (width || svgWidth) * relativeHeight\r\n : svgHeight),\r\n ),\r\n }}\r\n >\r\n <div\r\n ref={mapContainer}\r\n className='map maplibre-show-control'\r\n style={{ width: '100%', height: '100%' }}\r\n />\r\n {mapLegend ? (\r\n <div className='absolute left-[22px] bottom-13'>\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 dangerouslySetInnerHTML={\r\n typeof mapLegend === 'string' ? { __html: string2HTML(mapLegend) } : undefined\r\n }\r\n >\r\n {React.isValidElement(mapLegend) ? mapLegend : null}\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 ) : null}\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n","import { useRef, useEffect, useState } from 'react';\r\nimport maplibreGl from 'maplibre-gl';\r\nimport * as pmtiles from 'pmtiles';\r\nimport 'maplibre-gl/dist/maplibre-gl.css';\r\nimport { select } from 'd3-selection';\r\nimport React from 'react';\r\n\r\nimport { fetchAndParseJSON } from '@/Utils/fetchAndParseData';\r\nimport { filterData } from '@/Utils/transformData/filterData';\r\nimport { X } from '@/Components/Icons';\r\nimport { string2HTML } from '@/Utils/string2HTML';\r\n\r\ninterface Props {\r\n mapStyle: string;\r\n center?: [number, number];\r\n zoomLevel?: number;\r\n width?: number;\r\n height?: number;\r\n relativeHeight?: number;\r\n minHeight: number;\r\n mapLegend?: string | React.ReactNode;\r\n includeLayers: string[];\r\n excludeLayers: string[];\r\n}\r\n\r\nexport function GeoHubSingleMap(props: Props) {\r\n const {\r\n mapStyle,\r\n height,\r\n width,\r\n relativeHeight,\r\n center,\r\n zoomLevel,\r\n minHeight,\r\n includeLayers,\r\n excludeLayers,\r\n mapLegend,\r\n } = props;\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const [svgHeight, setSvgHeight] = useState(0);\r\n const [showLegend, setShowLegend] = useState(true);\r\n const graphDiv = useRef<HTMLDivElement>(null);\r\n const mapContainer = useRef<HTMLDivElement>(null);\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(entries => {\r\n setSvgWidth(width || entries[0].target.clientWidth || 620);\r\n setSvgHeight(height || entries[0].target.clientHeight || 480);\r\n });\r\n if (graphDiv.current) {\r\n setSvgHeight(graphDiv.current.clientHeight || 480);\r\n setSvgWidth(graphDiv.current.clientWidth || 620);\r\n if (!width) resizeObserver.observe(graphDiv.current);\r\n }\r\n return () => resizeObserver.disconnect();\r\n }, [width, height]);\r\n useEffect(() => {\r\n if (mapContainer.current && svgWidth) {\r\n fetchAndParseJSON(mapStyle).then(d => {\r\n const mapDiv = select(mapContainer.current);\r\n mapDiv.selectAll('div').remove();\r\n const protocol = new pmtiles.Protocol();\r\n maplibreGl.addProtocol('pmtiles', protocol.tile);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const mapObj: any = {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n container: mapContainer.current as any,\r\n style:\r\n includeLayers.length === 0 && excludeLayers.length === 0\r\n ? d\r\n : {\r\n ...d,\r\n layers: filterData(d.layers, [\r\n {\r\n column: 'id',\r\n includeValues: includeLayers,\r\n excludeValues: excludeLayers,\r\n },\r\n ]),\r\n },\r\n attributionControl: true,\r\n };\r\n if (center) {\r\n mapObj.center = center;\r\n }\r\n if (zoomLevel) {\r\n mapObj.zoom = zoomLevel;\r\n }\r\n const map = new maplibreGl.Map(mapObj);\r\n map.addControl(\r\n new maplibreGl.NavigationControl({\r\n visualizePitch: true,\r\n showZoom: true,\r\n showCompass: true,\r\n }),\r\n 'bottom-right',\r\n );\r\n map.addControl(new maplibreGl.ScaleControl(), 'bottom-left');\r\n });\r\n }\r\n }, [svgWidth, mapStyle, center, zoomLevel, includeLayers, excludeLayers]);\r\n return (\r\n <div\r\n className='flex flex-col grow justify-center leading-0'\r\n ref={graphDiv}\r\n aria-label='Map area'\r\n >\r\n {(width || svgWidth) && (height || svgHeight) ? (\r\n <div\r\n style={{\r\n width: width || svgWidth,\r\n height: Math.max(\r\n minHeight,\r\n height ||\r\n (relativeHeight\r\n ? minHeight\r\n ? (width || svgWidth) * relativeHeight > minHeight\r\n ? (width || svgWidth) * relativeHeight\r\n : minHeight\r\n : (width || svgWidth) * relativeHeight\r\n : svgHeight),\r\n ),\r\n }}\r\n >\r\n <div\r\n ref={mapContainer}\r\n className='map maplibre-show-control'\r\n style={{ width: '100%', height: '100%' }}\r\n />\r\n {mapLegend ? (\r\n <div className='absolute left-[22px] bottom-13'>\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 dangerouslySetInnerHTML={\r\n typeof mapLegend === 'string' ? { __html: string2HTML(mapLegend) } : undefined\r\n }\r\n >\r\n {React.isValidElement(mapLegend) ? mapLegend : null}\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 ) : null}\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n","import React, { useEffect, useMemo, useState } from 'react';\r\nimport { DropdownSelect, createFilter } from '@undp/design-system-react/DropdownSelect';\r\nimport { cn } from '@undp/design-system-react/cn';\r\n\r\nimport { GeoHubMultipleMap } from './GeoHubMultipleMap';\r\nimport { GeoHubSingleMap } from './GeoHubSingleMap';\r\n\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport {\r\n ClassNameObject,\r\n Languages,\r\n MapLegendDataType,\r\n SourcesDataType,\r\n StyleObject,\r\n} from '@/Types';\r\n\r\ninterface Props {\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** 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 /** URL for mapStyle JSON. If the type is string, otherwise it creates and dropdown and provide end user to select the map style they would like to */\r\n mapStyle: string | { style: string; name: string }[];\r\n /** Defines the legend for the map. If the mapStyle is string, mapLegend can be string or ReactNode. mapLegend with type string is show as innerHTML. If the mapStyle is not string, mapLegend is of type { mapStyleName: string; legend: string | React.ReactNode }[] where mapStyleName corresponds to the each name in the mapStyle. */\r\n mapLegend?: string | React.ReactNode | MapLegendDataType[];\r\n /** Starting center point of the map */\r\n center?: [number, number];\r\n /** Starting zoom level of the map */\r\n zoomLevel?: number;\r\n /** List of layer IDs to be included in the visualization. If this is present only these layers are included. */\r\n includeLayers?: string[];\r\n /** List of layer IDs to be excluded from the visualization */\r\n excludeLayers?: string[];\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Theme for the UI elements */\r\n uiMode?: 'light' | 'normal';\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 [`maplibre`](https://maplibre.org/maplibre-gl-js/docs/#npm) and [pmtiles](https://www.npmjs.com/package/pmtiles) package to your project */\r\nexport function GeoHubMap(props: Props) {\r\n const {\r\n mapStyle,\r\n graphTitle,\r\n height,\r\n width,\r\n relativeHeight,\r\n sources,\r\n graphDescription,\r\n footNote,\r\n padding,\r\n backgroundColor = false,\r\n center,\r\n zoomLevel,\r\n graphID,\r\n language = 'en',\r\n minHeight = 0,\r\n theme = 'light',\r\n includeLayers = [],\r\n excludeLayers = [],\r\n ariaLabel,\r\n uiMode = 'normal',\r\n styles,\r\n classNames,\r\n mapLegend,\r\n } = props;\r\n\r\n const [selectedMapStyle, setSelectedMapStyle] = useState(\r\n typeof mapStyle === 'string' ? mapStyle : mapStyle[0].style,\r\n );\r\n\r\n useEffect(() => {\r\n setSelectedMapStyle(typeof mapStyle === 'string' ? mapStyle : mapStyle[0].style);\r\n }, [mapStyle]);\r\n\r\n const filterConfig = useMemo(\r\n () => ({\r\n ignoreCase: true,\r\n ignoreAccents: true,\r\n trim: true,\r\n }),\r\n [],\r\n );\r\n return (\r\n <div\r\n className={`${theme || 'light'} flex ${width ? 'w-fit grow-0' : 'w-full grow'}`}\r\n dir={language === 'he' || language === 'ar' ? 'rtl' : undefined}\r\n >\r\n <div\r\n className={cn(\r\n `${\r\n !backgroundColor\r\n ? 'bg-transparent '\r\n : backgroundColor === true\r\n ? 'bg-primary-gray-200 dark:bg-primary-gray-650 '\r\n : ''\r\n }ml-auto mr-auto flex flex-col grow h-inherit ${language || 'en'}`,\r\n width ? 'w-fit' : 'w-full',\r\n classNames?.graphContainer,\r\n )}\r\n style={{\r\n ...(styles?.graphContainer || {}),\r\n ...(backgroundColor && backgroundColor !== true ? { backgroundColor } : {}),\r\n }}\r\n id={graphID}\r\n aria-label={\r\n ariaLabel ||\r\n `${\r\n graphTitle ? `The graph shows ${graphTitle}. ` : ''\r\n }This is a map.${graphDescription ? ` ${graphDescription}` : ''}`\r\n }\r\n >\r\n <div\r\n className='flex grow'\r\n style={{ padding: backgroundColor ? padding || '1rem' : padding || 0 }}\r\n >\r\n <div className='flex flex-col w-full gap-4 grow justify-between'>\r\n {graphTitle || graphDescription ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n />\r\n ) : null}\r\n {typeof mapStyle === 'string' ? null : (\r\n <DropdownSelect\r\n options={mapStyle.map(d => ({ label: d.name, value: d.style }))}\r\n isClearable={false}\r\n size='sm'\r\n variant={uiMode}\r\n isRtl={language === 'he' || language === 'ar'}\r\n isSearchable\r\n filterOption={createFilter(filterConfig)}\r\n defaultValue={{\r\n label: mapStyle[0].name,\r\n value: mapStyle[0].style,\r\n }}\r\n controlShouldRenderValue\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n if (el) setSelectedMapStyle(el.value);\r\n }}\r\n />\r\n )}\r\n {typeof mapStyle === 'string' ? (\r\n <GeoHubSingleMap\r\n mapStyle={mapStyle}\r\n center={center}\r\n zoomLevel={zoomLevel}\r\n width={width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n minHeight={minHeight}\r\n includeLayers={includeLayers}\r\n excludeLayers={excludeLayers}\r\n mapLegend={mapLegend as string | React.ReactNode | undefined}\r\n />\r\n ) : (\r\n <GeoHubMultipleMap\r\n mapStyle={selectedMapStyle}\r\n center={center}\r\n zoomLevel={zoomLevel}\r\n width={width}\r\n height={height}\r\n relativeHeight={relativeHeight}\r\n minHeight={minHeight}\r\n includeLayers={includeLayers}\r\n excludeLayers={excludeLayers}\r\n mapLegend={\r\n ((mapLegend || []) as MapLegendDataType[]).find(\r\n d =>\r\n d.mapStyleName === mapStyle.find(el => el.style === selectedMapStyle)?.name,\r\n )?.legend\r\n }\r\n />\r\n )}\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["GeoHubMultipleMap","props","mapStyle","height","width","relativeHeight","center","zoomLevel","minHeight","includeLayers","excludeLayers","mapLegend","svgWidth","setSvgWidth","useState","svgHeight","setSvgHeight","showLegend","setShowLegend","graphDiv","useRef","mapContainer","mapRef","useEffect","resizeObserver","entries","fetchAndParseJSON","d","select","protocol","pmtiles","maplibreGl","mapObj","filterData","mapStyleObj","jsx","jsxs","Fragment","X","string2HTML","React","GeoHubSingleMap","map","GeoHubMap","graphTitle","sources","graphDescription","footNote","padding","backgroundColor","graphID","language","theme","ariaLabel","uiMode","styles","classNames","selectedMapStyle","setSelectedMapStyle","filterConfig","useMemo","cn","GraphHeader","DropdownSelect","createFilter","el","GraphFooter"],"mappings":"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"}