@undp/data-viz 1.4.12 → 1.4.14

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 (180) hide show
  1. package/dist/AreaChart.cjs +1 -1
  2. package/dist/AreaChart.cjs.map +1 -1
  3. package/dist/AreaChart.js +25 -24
  4. package/dist/AreaChart.js.map +1 -1
  5. package/dist/BarGraph.cjs +1 -1
  6. package/dist/BarGraph.cjs.map +1 -1
  7. package/dist/BarGraph.js +638 -632
  8. package/dist/BarGraph.js.map +1 -1
  9. package/dist/BeeSwarmChart.cjs +1 -1
  10. package/dist/BeeSwarmChart.cjs.map +1 -1
  11. package/dist/BeeSwarmChart.js +134 -132
  12. package/dist/BeeSwarmChart.js.map +1 -1
  13. package/dist/BiVariateChoroplethMap.cjs +1 -1
  14. package/dist/BiVariateChoroplethMap.cjs.map +1 -1
  15. package/dist/BiVariateChoroplethMap.js +35 -34
  16. package/dist/BiVariateChoroplethMap.js.map +1 -1
  17. package/dist/BulletChart.cjs +1 -1
  18. package/dist/BulletChart.cjs.map +1 -1
  19. package/dist/BulletChart.js +226 -224
  20. package/dist/BulletChart.js.map +1 -1
  21. package/dist/ButterflyChart.cjs +1 -1
  22. package/dist/ButterflyChart.cjs.map +1 -1
  23. package/dist/ButterflyChart.js +48 -47
  24. package/dist/ButterflyChart.js.map +1 -1
  25. package/dist/ChoroplethMap.cjs +1 -1
  26. package/dist/ChoroplethMap.cjs.map +1 -1
  27. package/dist/ChoroplethMap.js +56 -55
  28. package/dist/ChoroplethMap.js.map +1 -1
  29. package/dist/CirclePackingGraph.cjs +1 -1
  30. package/dist/CirclePackingGraph.js +1 -1
  31. package/dist/DataCards.cjs +3 -3
  32. package/dist/DataCards.cjs.map +1 -1
  33. package/dist/DataCards.js +2 -1
  34. package/dist/DataCards.js.map +1 -1
  35. package/dist/DataTable.cjs +1 -1
  36. package/dist/DataTable.cjs.map +1 -1
  37. package/dist/DataTable.js +9 -8
  38. package/dist/DataTable.js.map +1 -1
  39. package/dist/DifferenceLineChart.cjs +1 -1
  40. package/dist/DifferenceLineChart.cjs.map +1 -1
  41. package/dist/DifferenceLineChart.js +1 -0
  42. package/dist/DifferenceLineChart.js.map +1 -1
  43. package/dist/DonutChart.cjs +1 -1
  44. package/dist/DonutChart.cjs.map +1 -1
  45. package/dist/DonutChart.js +77 -76
  46. package/dist/DonutChart.js.map +1 -1
  47. package/dist/DotDensityMap.cjs +1 -1
  48. package/dist/DotDensityMap.cjs.map +1 -1
  49. package/dist/DotDensityMap.js +1 -0
  50. package/dist/DotDensityMap.js.map +1 -1
  51. package/dist/{DropdownSelect-CeHog_ih.js → DropdownSelect-CtOKZHD0.js} +22 -20
  52. package/dist/{DropdownSelect-CeHog_ih.js.map → DropdownSelect-CtOKZHD0.js.map} +1 -1
  53. package/dist/{DropdownSelect-BmE5JaeE.cjs → DropdownSelect-DBDM64B5.cjs} +2 -2
  54. package/dist/{DropdownSelect-BmE5JaeE.cjs.map → DropdownSelect-DBDM64B5.cjs.map} +1 -1
  55. package/dist/DualAxisLineChart.cjs +1 -1
  56. package/dist/DualAxisLineChart.cjs.map +1 -1
  57. package/dist/DualAxisLineChart.d.ts +3 -1
  58. package/dist/DualAxisLineChart.js +265 -261
  59. package/dist/DualAxisLineChart.js.map +1 -1
  60. package/dist/DumbbellChart.cjs +1 -1
  61. package/dist/DumbbellChart.cjs.map +1 -1
  62. package/dist/DumbbellChart.js +216 -214
  63. package/dist/DumbbellChart.js.map +1 -1
  64. package/dist/GeoHubCompareMaps.cjs +1 -1
  65. package/dist/GeoHubCompareMaps.cjs.map +1 -1
  66. package/dist/GeoHubCompareMaps.js +1 -0
  67. package/dist/GeoHubCompareMaps.js.map +1 -1
  68. package/dist/GeoHubMap.cjs +1 -1
  69. package/dist/GeoHubMap.cjs.map +1 -1
  70. package/dist/GeoHubMap.js +29 -28
  71. package/dist/GeoHubMap.js.map +1 -1
  72. package/dist/GeoHubMapWithLayerSelection.cjs +1 -1
  73. package/dist/GeoHubMapWithLayerSelection.cjs.map +1 -1
  74. package/dist/GeoHubMapWithLayerSelection.js +34 -33
  75. package/dist/GeoHubMapWithLayerSelection.js.map +1 -1
  76. package/dist/{GraphEl-s3ctz7oA.js → GraphEl-N6vuMRw_.js} +6 -2
  77. package/dist/GraphEl-N6vuMRw_.js.map +1 -0
  78. package/dist/GraphEl-Zl0W-LK9.cjs +2 -0
  79. package/dist/GraphEl-Zl0W-LK9.cjs.map +1 -0
  80. package/dist/GriddedGraphs.cjs +1 -1
  81. package/dist/GriddedGraphs.d.ts +1 -0
  82. package/dist/GriddedGraphs.js +2 -2
  83. package/dist/GriddedGraphsFromConfig.d.ts +1 -0
  84. package/dist/HeatMap.cjs +1 -1
  85. package/dist/HeatMap.cjs.map +1 -1
  86. package/dist/HeatMap.js +55 -54
  87. package/dist/HeatMap.js.map +1 -1
  88. package/dist/Histogram.cjs +1 -1
  89. package/dist/Histogram.js +1 -1
  90. package/dist/LineChartWithConfidenceInterval.cjs +1 -1
  91. package/dist/LineChartWithConfidenceInterval.cjs.map +1 -1
  92. package/dist/LineChartWithConfidenceInterval.js +22 -21
  93. package/dist/LineChartWithConfidenceInterval.js.map +1 -1
  94. package/dist/MultiGraphDashboard.cjs +1 -1
  95. package/dist/MultiGraphDashboard.d.ts +1 -0
  96. package/dist/MultiGraphDashboard.js +1 -1
  97. package/dist/MultiGraphDashboardFromConfig.d.ts +1 -0
  98. package/dist/MultiGraphDashboardWideToLongFormat.cjs +1 -1
  99. package/dist/MultiGraphDashboardWideToLongFormat.js +1 -1
  100. package/dist/MultiLineAltChart.cjs +1 -1
  101. package/dist/MultiLineAltChart.cjs.map +1 -1
  102. package/dist/MultiLineAltChart.js +34 -33
  103. package/dist/MultiLineAltChart.js.map +1 -1
  104. package/dist/MultiLineChart.cjs +1 -1
  105. package/dist/MultiLineChart.cjs.map +1 -1
  106. package/dist/MultiLineChart.js +72 -71
  107. package/dist/MultiLineChart.js.map +1 -1
  108. package/dist/ParetoChart.cjs +1 -1
  109. package/dist/ParetoChart.cjs.map +1 -1
  110. package/dist/ParetoChart.d.ts +4 -0
  111. package/dist/ParetoChart.js +317 -312
  112. package/dist/ParetoChart.js.map +1 -1
  113. package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +1 -1
  114. package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +1 -0
  115. package/dist/PerformanceIntensiveMultiGraphDashboard.js +1 -1
  116. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +1 -0
  117. package/dist/PerformanceIntensiveScrollStory.d.ts +1 -0
  118. package/dist/RadarChart.cjs +1 -1
  119. package/dist/RadarChart.cjs.map +1 -1
  120. package/dist/RadarChart.js +27 -26
  121. package/dist/RadarChart.js.map +1 -1
  122. package/dist/SankeyChart.cjs +1 -1
  123. package/dist/SankeyChart.cjs.map +1 -1
  124. package/dist/SankeyChart.js +30 -29
  125. package/dist/SankeyChart.js.map +1 -1
  126. package/dist/ScatterPlot.cjs +1 -1
  127. package/dist/ScatterPlot.cjs.map +1 -1
  128. package/dist/ScatterPlot.js +119 -118
  129. package/dist/ScatterPlot.js.map +1 -1
  130. package/dist/ScrollStory.d.ts +1 -0
  131. package/dist/SimpleLineChart.cjs +1 -1
  132. package/dist/SimpleLineChart.cjs.map +1 -1
  133. package/dist/SimpleLineChart.js +16 -15
  134. package/dist/SimpleLineChart.js.map +1 -1
  135. package/dist/SingleGraphDashboard.cjs +1 -1
  136. package/dist/SingleGraphDashboard.d.ts +1 -0
  137. package/dist/SingleGraphDashboard.js +2 -2
  138. package/dist/SingleGraphDashboardFromConfig.d.ts +1 -0
  139. package/dist/SingleGraphDashboardGeoHubMaps.d.ts +1 -0
  140. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.d.ts +1 -0
  141. package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
  142. package/dist/SingleGraphDashboardThreeDGraphs.d.ts +1 -0
  143. package/dist/SingleGraphDashboardThreeDGraphs.js +1 -1
  144. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +1 -0
  145. package/dist/SlopeChart.cjs +1 -1
  146. package/dist/SlopeChart.cjs.map +1 -1
  147. package/dist/SlopeChart.js +46 -45
  148. package/dist/SlopeChart.js.map +1 -1
  149. package/dist/SparkLine.cjs +1 -1
  150. package/dist/SparkLine.cjs.map +1 -1
  151. package/dist/SparkLine.js +12 -11
  152. package/dist/SparkLine.js.map +1 -1
  153. package/dist/StripChart.cjs +1 -1
  154. package/dist/StripChart.cjs.map +1 -1
  155. package/dist/StripChart.js +81 -79
  156. package/dist/StripChart.js.map +1 -1
  157. package/dist/ThreeDGlobe.cjs +1 -1
  158. package/dist/ThreeDGlobe.cjs.map +1 -1
  159. package/dist/ThreeDGlobe.js +1 -0
  160. package/dist/ThreeDGlobe.js.map +1 -1
  161. package/dist/TreeMapGraph.cjs +1 -1
  162. package/dist/TreeMapGraph.cjs.map +1 -1
  163. package/dist/TreeMapGraph.js +114 -113
  164. package/dist/TreeMapGraph.js.map +1 -1
  165. package/dist/Types.d.ts +1 -0
  166. package/dist/UnitChart.cjs +1 -1
  167. package/dist/UnitChart.cjs.map +1 -1
  168. package/dist/UnitChart.js +10 -9
  169. package/dist/UnitChart.js.map +1 -1
  170. package/dist/{index-CZLvTu6p.cjs → index-BbNoLJ_w.cjs} +2 -2
  171. package/dist/{index-CZLvTu6p.cjs.map → index-BbNoLJ_w.cjs.map} +1 -1
  172. package/dist/{index-DGAaLNu9.js → index-Bc5VF70V.js} +46 -45
  173. package/dist/{index-DGAaLNu9.js.map → index-Bc5VF70V.js.map} +1 -1
  174. package/dist/index.cjs +1 -1
  175. package/dist/index.d.ts +8 -1
  176. package/dist/index.js +1 -1
  177. package/package.json +2 -2
  178. package/dist/GraphEl-OzC-icbr.cjs +0 -2
  179. package/dist/GraphEl-OzC-icbr.cjs.map +0 -1
  180. package/dist/GraphEl-s3ctz7oA.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { j as e, m as V } from "./index-CHPV5EwG-BPSP-7Jg.js";
2
2
  import _, { useState as L, useRef as O, useEffect as H, useMemo as T } from "react";
3
3
  import { f as W } from "./index-UV9hjG_S.js";
4
- import { Z as E, H as G } from "./DropdownSelect-CeHog_ih.js";
4
+ import { Z as E, H as G } from "./DropdownSelect-CtOKZHD0.js";
5
5
  import D from "maplibre-gl";
6
6
  import * as P from "pmtiles";
7
7
  /* empty css */
@@ -15,9 +15,9 @@ import { GraphFooter as X } from "./GraphFooter.js";
15
15
  function q(I) {
16
16
  const {
17
17
  mapStyle: x,
18
- height: c,
18
+ height: m,
19
19
  width: i,
20
- relativeHeight: m,
20
+ relativeHeight: s,
21
21
  center: j,
22
22
  zoomLevel: b,
23
23
  minHeight: d,
@@ -25,20 +25,20 @@ function q(I) {
25
25
  layerIdList: f,
26
26
  excludeLayers: a,
27
27
  mapLegend: h
28
- } = I, [u, C] = L(0), [g, N] = L(0), [k, l] = L(!0), [v, M] = L(void 0), y = O(null), s = O(null), t = O(null);
28
+ } = I, [u, C] = L(0), [g, N] = L(0), [k, l] = L(!0), [v, M] = L(void 0), y = O(null), n = O(null), t = O(null);
29
29
  return H(() => {
30
- const r = new ResizeObserver((n) => {
31
- C(i || n[0].target.clientWidth || 620), N(c || n[0].target.clientHeight || 480);
30
+ const r = new ResizeObserver((c) => {
31
+ C(i || c[0].target.clientWidth || 620), N(m || c[0].target.clientHeight || 480);
32
32
  });
33
33
  return y.current && (N(y.current.clientHeight || 480), C(y.current.clientWidth || 620), i || r.observe(y.current)), () => r.disconnect();
34
- }, [i, c]), H(() => {
35
- s.current && u && !t.current && $(x).then((r) => {
36
- M(r), F(s.current).selectAll("div").remove();
34
+ }, [i, m]), H(() => {
35
+ n.current && u && !t.current && $(x).then((r) => {
36
+ M(r), F(n.current).selectAll("div").remove();
37
37
  const w = new P.Protocol();
38
38
  D.addProtocol("pmtiles", w.tile);
39
39
  const S = {
40
40
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
41
- container: s.current,
41
+ container: n.current,
42
42
  style: {
43
43
  ...r,
44
44
  layers: z(r.layers, [
@@ -72,7 +72,7 @@ function q(I) {
72
72
  column: "id",
73
73
  excludeValues: [
74
74
  ...a,
75
- ...f.filter((n) => p.indexOf(n) === -1)
75
+ ...f.filter((c) => p.indexOf(c) === -1)
76
76
  ]
77
77
  }
78
78
  ])
@@ -80,7 +80,7 @@ function q(I) {
80
80
  t.current.setStyle(r);
81
81
  } else
82
82
  $(x).then((r) => {
83
- const n = {
83
+ const c = {
84
84
  ...r,
85
85
  layers: z(r.layers, [
86
86
  {
@@ -92,7 +92,7 @@ function q(I) {
92
92
  }
93
93
  ])
94
94
  };
95
- t.current.setStyle(n);
95
+ t.current.setStyle(c);
96
96
  });
97
97
  }, [a, f, x, v, p]), /* @__PURE__ */ e.jsx(
98
98
  "div",
@@ -100,18 +100,18 @@ function q(I) {
100
100
  className: "flex flex-col grow justify-center leading-0",
101
101
  ref: y,
102
102
  "aria-label": "Map area",
103
- children: (i || u) && (c || g) ? /* @__PURE__ */ e.jsxs(
103
+ children: (i || u) && (m || g) ? /* @__PURE__ */ e.jsxs(
104
104
  "div",
105
105
  {
106
106
  style: {
107
107
  width: i || u,
108
108
  height: Math.max(
109
109
  d,
110
- c || (m ? d ? (i || u) * m > d ? (i || u) * m : d : (i || u) * m : g)
110
+ m || (s ? d ? (i || u) * s > d ? (i || u) * s : d : (i || u) * s : g)
111
111
  )
112
112
  },
113
113
  children: [
114
- /* @__PURE__ */ e.jsx("div", { ref: s, className: "map maplibre-show-control w-full h-full" }),
114
+ /* @__PURE__ */ e.jsx("div", { ref: n, className: "map maplibre-show-control w-full h-full" }),
115
115
  h ? /* @__PURE__ */ e.jsx("div", { className: "absolute left-[22px] bottom-13", children: k ? /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
116
116
  /* @__PURE__ */ e.jsx(
117
117
  "div",
@@ -166,9 +166,9 @@ function q(I) {
166
166
  function ne(I) {
167
167
  const {
168
168
  mapStyle: x,
169
- graphTitle: c,
169
+ graphTitle: m,
170
170
  height: i,
171
- width: m,
171
+ width: s,
172
172
  relativeHeight: j,
173
173
  sources: b,
174
174
  graphDescription: d,
@@ -185,10 +185,10 @@ function ne(I) {
185
185
  excludeLayers: v = [],
186
186
  ariaLabel: M,
187
187
  uiMode: y = "normal",
188
- styles: s,
188
+ styles: n,
189
189
  classNames: t,
190
190
  mapLegend: r = []
191
- } = I, [n, w] = L(l[0].layerID);
191
+ } = I, [c, w] = L(l[0].layerID);
192
192
  H(() => {
193
193
  w(l[0].layerID);
194
194
  }, [l]);
@@ -203,41 +203,42 @@ function ne(I) {
203
203
  return /* @__PURE__ */ e.jsx(
204
204
  "div",
205
205
  {
206
- className: `${k || "light"} flex ${m ? "w-fit grow-0" : "w-full grow"}`,
206
+ className: `${k || "light"} flex ${s ? "w-fit grow-0" : "w-full grow"}`,
207
207
  dir: g === "he" || g === "ar" ? "rtl" : void 0,
208
208
  children: /* @__PURE__ */ e.jsx(
209
209
  "div",
210
210
  {
211
211
  className: V(
212
212
  `${a ? a === !0 ? "bg-primary-gray-200 dark:bg-primary-gray-650 " : "" : "bg-transparent "}ml-auto mr-auto flex flex-col grow h-inherit ${g || "en"}`,
213
+ s ? "w-fit" : "w-full",
213
214
  t?.graphContainer
214
215
  ),
215
216
  style: {
216
- ...s?.graphContainer || {},
217
+ ...n?.graphContainer || {},
217
218
  ...a && a !== !0 ? { backgroundColor: a } : {}
218
219
  },
219
220
  id: C,
220
- "aria-label": M || `${c ? `The graph shows ${c}. ` : ""}This is a map.${d ? ` ${d}` : ""}`,
221
+ "aria-label": M || `${m ? `The graph shows ${m}. ` : ""}This is a map.${d ? ` ${d}` : ""}`,
221
222
  children: /* @__PURE__ */ e.jsx(
222
223
  "div",
223
224
  {
224
225
  className: "flex grow",
225
226
  style: { padding: a ? f || "1rem" : f || 0 },
226
227
  children: /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col w-full gap-4 grow justify-between", children: [
227
- c || d ? /* @__PURE__ */ e.jsx(
228
+ m || d ? /* @__PURE__ */ e.jsx(
228
229
  J,
229
230
  {
230
231
  styles: {
231
- title: s?.title,
232
- description: s?.description
232
+ title: n?.title,
233
+ description: n?.description
233
234
  },
234
235
  classNames: {
235
236
  title: t?.title,
236
237
  description: t?.description
237
238
  },
238
- graphTitle: c,
239
+ graphTitle: m,
239
240
  graphDescription: d,
240
- width: m
241
+ width: s
241
242
  }
242
243
  ) : null,
243
244
  /* @__PURE__ */ e.jsx(
@@ -269,29 +270,29 @@ function ne(I) {
269
270
  mapStyle: x,
270
271
  center: h,
271
272
  zoomLevel: u,
272
- width: m,
273
+ width: s,
273
274
  height: i,
274
275
  relativeHeight: j,
275
276
  minHeight: N,
276
- selectedLayer: n,
277
+ selectedLayer: c,
277
278
  layerIdList: W(l.map((o) => o.layerID)),
278
279
  excludeLayers: v,
279
280
  mapLegend: r.find(
280
- (o) => o.mapStyleName === l.find((R) => R.layerID === n)?.name
281
+ (o) => o.mapStyleName === l.find((R) => R.layerID === c)?.name
281
282
  )?.legend
282
283
  }
283
284
  ),
284
285
  b || p ? /* @__PURE__ */ e.jsx(
285
286
  X,
286
287
  {
287
- styles: { footnote: s?.footnote, source: s?.source },
288
+ styles: { footnote: n?.footnote, source: n?.source },
288
289
  classNames: {
289
290
  footnote: t?.footnote,
290
291
  source: t?.source
291
292
  },
292
293
  sources: b,
293
294
  footNote: p,
294
- width: m
295
+ width: s
295
296
  }
296
297
  ) : null
297
298
  ] })
@@ -1 +1 @@
1
- {"version":3,"file":"GeoHubMapWithLayerSelection.js","sources":["../src/Components/Graphs/Maps/GeoHubMaps/MapWithLayerSelection/MapEl.tsx","../src/Components/Graphs/Maps/GeoHubMaps/MapWithLayerSelection/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 { string2HTML } from '@/Utils/string2HTML';\r\nimport { X } from '@/Components/Icons';\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 selectedLayer: string[];\r\n layerIdList: string[];\r\n excludeLayers: string[];\r\n mapLegend?: string | React.ReactNode;\r\n}\r\n\r\nexport function MapEl(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 selectedLayer,\r\n layerIdList,\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mapStyleData, setMapStyleData] = useState<any>(undefined);\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 setMapStyleData(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 ...d,\r\n layers: filterData(d.layers, [\r\n {\r\n column: 'id',\r\n excludeValues: [\r\n ...excludeLayers,\r\n ...layerIdList.filter(el => selectedLayer.indexOf(el) === -1),\r\n ],\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, layerIdList, mapStyle, excludeLayers, selectedLayer]);\r\n useEffect(() => {\r\n if (mapRef.current) {\r\n if (mapStyleData) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const mapStyleObj: any = {\r\n ...mapStyleData,\r\n layers: filterData(mapStyleData.layers, [\r\n {\r\n column: 'id',\r\n excludeValues: [\r\n ...excludeLayers,\r\n ...layerIdList.filter(el => selectedLayer.indexOf(el) === -1),\r\n ],\r\n },\r\n ]),\r\n };\r\n mapRef.current.setStyle(mapStyleObj);\r\n } else\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 excludeValues: [\r\n ...excludeLayers,\r\n ...layerIdList.filter(el => selectedLayer.indexOf(el) === -1),\r\n ],\r\n },\r\n ]),\r\n };\r\n mapRef.current.setStyle(mapStyleObj);\r\n });\r\n }\r\n }, [excludeLayers, layerIdList, mapStyle, mapStyleData, selectedLayer]);\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 ref={mapContainer} className='map maplibre-show-control w-full h-full' />\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 { useEffect, useMemo, useState } from 'react';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { cn } from '@undp/design-system-react/cn';\r\n\r\nimport { MapEl } from './MapEl';\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 */\r\n mapStyle: string;\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 the layers that the user select and switch between sing a drop down */\r\n layerSelection: { layerID: string[]; name: string }[];\r\n /** Defines the legend for the map. mapLegend is of type { mapStyleName: string; legend: string | React.ReactNode }[] where mapStyleName corresponds to the each name in the layerSelection. */\r\n mapLegend?: MapLegendDataType[];\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 GeoHubMapWithLayerSelection(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 layerSelection,\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 [selectedLayer, setSelectedLayer] = useState(layerSelection[0].layerID);\r\n\r\n useEffect(() => {\r\n setSelectedLayer(layerSelection[0].layerID);\r\n }, [layerSelection]);\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 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 <DropdownSelect\r\n options={layerSelection.map(d => ({\r\n label: d.name,\r\n value: d.layerID,\r\n }))}\r\n size='sm'\r\n isClearable={false}\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: layerSelection[0].name,\r\n value: layerSelection[0].layerID,\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) setSelectedLayer(el.value);\r\n }}\r\n />\r\n <MapEl\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 selectedLayer={selectedLayer}\r\n layerIdList={flattenDeep(layerSelection.map(d => d.layerID))}\r\n excludeLayers={excludeLayers}\r\n mapLegend={\r\n (mapLegend as MapLegendDataType[]).find(\r\n d =>\r\n d.mapStyleName ===\r\n layerSelection.find(el => el.layerID === selectedLayer)?.name,\r\n )?.legend\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":["MapEl","props","mapStyle","height","width","relativeHeight","center","zoomLevel","minHeight","selectedLayer","layerIdList","excludeLayers","mapLegend","svgWidth","setSvgWidth","useState","svgHeight","setSvgHeight","showLegend","setShowLegend","mapStyleData","setMapStyleData","graphDiv","useRef","mapContainer","mapRef","useEffect","resizeObserver","entries","fetchAndParseJSON","d","select","protocol","pmtiles","maplibreGl","mapObj","filterData","el","mapStyleObj","jsx","jsxs","Fragment","X","string2HTML","React","GeoHubMapWithLayerSelection","graphTitle","sources","graphDescription","footNote","padding","backgroundColor","graphID","language","theme","layerSelection","ariaLabel","uiMode","styles","classNames","setSelectedLayer","filterConfig","useMemo","cn","GraphHeader","DropdownSelect","createFilter","flattenDeep","GraphFooter"],"mappings":";;;;;;;;;;;;;;AA0BO,SAASA,EAAMC,GAAc;AAClC,QAAM;AAAA,IACJ,UAAAC;AAAA,IACA,QAAAC;AAAA,IACA,OAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,QAAAC;AAAA,IACA,WAAAC;AAAA,IACA,WAAAC;AAAA,IACA,eAAAC;AAAA,IACA,aAAAC;AAAA,IACA,eAAAC;AAAA,IACA,WAAAC;AAAA,EAAA,IACEX,GAEE,CAACY,GAAUC,CAAW,IAAIC,EAAS,CAAC,GACpC,CAACC,GAAWC,CAAY,IAAIF,EAAS,CAAC,GACtC,CAACG,GAAYC,CAAa,IAAIJ,EAAS,EAAI,GAE3C,CAACK,GAAcC,CAAe,IAAIN,EAAc,MAAS,GACzDO,IAAWC,EAAuB,IAAI,GACtCC,IAAeD,EAAuB,IAAI,GAE1CE,IAASF,EAAY,IAAI;AAC/B,SAAAG,EAAU,MAAM;AACd,UAAMC,IAAiB,IAAI,eAAe,CAAAC,MAAW;AACnD,MAAAd,EAAYV,KAASwB,EAAQ,CAAC,EAAE,OAAO,eAAe,GAAG,GACzDX,EAAad,KAAUyB,EAAQ,CAAC,EAAE,OAAO,gBAAgB,GAAG;AAAA,IAC9D,CAAC;AACD,WAAIN,EAAS,YACXL,EAAaK,EAAS,QAAQ,gBAAgB,GAAG,GACjDR,EAAYQ,EAAS,QAAQ,eAAe,GAAG,GAC1ClB,KAAOuB,EAAe,QAAQL,EAAS,OAAO,IAE9C,MAAMK,EAAe,WAAA;AAAA,EAC9B,GAAG,CAACvB,GAAOD,CAAM,CAAC,GAClBuB,EAAU,MAAM;AACd,IAAIF,EAAa,WAAWX,KAAY,CAACY,EAAO,WAC9CI,EAAkB3B,CAAQ,EAAE,KAAK,CAAA4B,MAAK;AACpC,MAAAT,EAAgBS,CAAC,GACFC,EAAOP,EAAa,OAAO,EACnC,UAAU,KAAK,EAAE,OAAA;AACxB,YAAMQ,IAAW,IAAIC,EAAQ,SAAA;AAC7BC,MAAAA,EAAW,YAAY,WAAWF,EAAS,IAAI;AAE/C,YAAMG,IAAc;AAAA;AAAA,QAElB,WAAWX,EAAa;AAAA,QACxB,OAAO;AAAA,UACL,GAAGM;AAAA,UACH,QAAQM,EAAWN,EAAE,QAAQ;AAAA,YAC3B;AAAA,cACE,QAAQ;AAAA,cACR,eAAe;AAAA,gBACb,GAAGnB;AAAA,gBACH,GAAGD,EAAY,OAAO,CAAA2B,MAAM5B,EAAc,QAAQ4B,CAAE,MAAM,EAAE;AAAA,cAAA;AAAA,YAC9D;AAAA,UACF,CACD;AAAA,QAAA;AAAA,QAEH,oBAAoB;AAAA,MAAA;AAEtB,MAAI/B,MACF6B,EAAO,SAAS7B,IAEdC,MACF4B,EAAO,OAAO5B,IAEhBkB,EAAO,UAAU,IAAIS,EAAW,IAAIC,CAAM,GAC1CV,EAAO,QAAQ;AAAA,QACb,IAAIS,EAAW,kBAAkB;AAAA,UAC/B,gBAAgB;AAAA,UAChB,UAAU;AAAA,UACV,aAAa;AAAA,QAAA,CACd;AAAA,QACD;AAAA,MAAA,GAEFT,EAAO,QAAQ,WAAW,IAAIS,EAAW,aAAA,GAAgB,aAAa;AAAA,IACxE,CAAC;AAAA,EAEL,GAAG,CAACrB,GAAUP,GAAQC,GAAWG,GAAaR,GAAUS,GAAeF,CAAa,CAAC,GACrFiB,EAAU,MAAM;AACd,QAAID,EAAO;AACT,UAAIL,GAAc;AAEhB,cAAMkB,IAAmB;AAAA,UACvB,GAAGlB;AAAA,UACH,QAAQgB,EAAWhB,EAAa,QAAQ;AAAA,YACtC;AAAA,cACE,QAAQ;AAAA,cACR,eAAe;AAAA,gBACb,GAAGT;AAAA,gBACH,GAAGD,EAAY,OAAO,CAAA2B,MAAM5B,EAAc,QAAQ4B,CAAE,MAAM,EAAE;AAAA,cAAA;AAAA,YAC9D;AAAA,UACF,CACD;AAAA,QAAA;AAEH,QAAAZ,EAAO,QAAQ,SAASa,CAAW;AAAA,MACrC;AACE,QAAAT,EAAkB3B,CAAQ,EAAE,KAAK,CAAA4B,MAAK;AAEpC,gBAAMQ,IAAmB;AAAA,YACvB,GAAGR;AAAA,YACH,QAAQM,EAAWN,EAAE,QAAQ;AAAA,cAC3B;AAAA,gBACE,QAAQ;AAAA,gBACR,eAAe;AAAA,kBACb,GAAGnB;AAAA,kBACH,GAAGD,EAAY,OAAO,CAAA2B,MAAM5B,EAAc,QAAQ4B,CAAE,MAAM,EAAE;AAAA,gBAAA;AAAA,cAC9D;AAAA,YACF,CACD;AAAA,UAAA;AAEH,UAAAZ,EAAO,QAAQ,SAASa,CAAW;AAAA,QACrC,CAAC;AAAA,EAEP,GAAG,CAAC3B,GAAeD,GAAaR,GAAUkB,GAAcX,CAAa,CAAC,GAEpE8B,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,KAAKjB;AAAA,MACL,cAAW;AAAA,MAET,WAAAlB,KAASS,OAAcV,KAAUa,KACjCwB,gBAAAA,EAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,OAAO;AAAA,YACL,OAAOpC,KAASS;AAAA,YAChB,QAAQ,KAAK;AAAA,cACXL;AAAA,cACAL,MACGE,IACGG,KACGJ,KAASS,KAAYR,IAAiBG,KACpCJ,KAASS,KAAYR,IACtBG,KACDJ,KAASS,KAAYR,IACxBW;AAAA,YAAA;AAAA,UACR;AAAA,UAGF,UAAA;AAAA,YAAAuB,gBAAAA,EAAAA,IAAC,OAAA,EAAI,KAAKf,GAAc,WAAU,2CAA0C;AAAA,YAE3EZ,IACC2B,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,kCACZ,cACCC,gBAAAA,EAAAA,KAAAC,EAAAA,UAAA,EACE,UAAA;AAAA,cAAAF,gBAAAA,EAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO;AAAA,oBACL,iBAAiB;AAAA,oBACjB,QAAQ;AAAA,oBACR,cAAc;AAAA,oBACd,OAAO;AAAA,oBACP,QAAQ;AAAA,oBACR,SAAS;AAAA,oBACT,QAAQ;AAAA,oBACR,QAAQ;AAAA,oBACR,UAAU;AAAA,oBACV,OAAO;AAAA,oBACP,KAAK;AAAA,kBAAA;AAAA,kBAEP,SAAS,MAAM;AACb,oBAAApB,EAAc,EAAK;AAAA,kBACrB;AAAA,kBAEA,gCAACuB,GAAA,CAAA,CAAE;AAAA,gBAAA;AAAA,cAAA;AAAA,cAELH,gBAAAA,EAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,OAAO;AAAA,oBACL,iBAAiB;AAAA,kBAAA;AAAA,kBAEnB,yBACE,OAAO3B,KAAc,WAAW,EAAE,QAAQ+B,EAAY/B,CAAS,EAAA,IAAM;AAAA,kBAGtE,UAAAgC,EAAM,eAAehC,CAAS,IAAIA,IAAY;AAAA,gBAAA;AAAA,cAAA;AAAA,YACjD,EAAA,CACF,IAEA2B,gBAAAA,EAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,WAAU;AAAA,gBACV,SAAS,MAAM;AACb,kBAAApB,EAAc,EAAI;AAAA,gBACpB;AAAA,gBAEA,UAAAoB,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,gNAA+M,UAAA,cAAA,CAE9N;AAAA,cAAA;AAAA,YAAA,GAGN,IACE;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA,IAEJ;AAAA,IAAA;AAAA,EAAA;AAGV;ACnJO,SAASM,GAA4B5C,GAAc;AACxD,QAAM;AAAA,IACJ,UAAAC;AAAA,IACA,YAAA4C;AAAA,IACA,QAAA3C;AAAA,IACA,OAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,SAAA0C;AAAA,IACA,kBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,SAAAC;AAAA,IACA,iBAAAC,IAAkB;AAAA,IAClB,QAAA7C;AAAA,IACA,WAAAC;AAAA,IACA,SAAA6C;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,WAAA7C,IAAY;AAAA,IACZ,OAAA8C,IAAQ;AAAA,IACR,gBAAAC;AAAA,IACA,eAAA5C,IAAgB,CAAA;AAAA,IAChB,WAAA6C;AAAA,IACA,QAAAC,IAAS;AAAA,IACT,QAAAC;AAAA,IACA,YAAAC;AAAA,IACA,WAAA/C,IAAY,CAAA;AAAA,EAAC,IACXX,GAEE,CAACQ,GAAemD,CAAgB,IAAI7C,EAASwC,EAAe,CAAC,EAAE,OAAO;AAE5E,EAAA7B,EAAU,MAAM;AACd,IAAAkC,EAAiBL,EAAe,CAAC,EAAE,OAAO;AAAA,EAC5C,GAAG,CAACA,CAAc,CAAC;AAEnB,QAAMM,IAAeC;AAAA,IACnB,OAAO;AAAA,MACL,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,MAAM;AAAA,IAAA;AAAA,IAER,CAAA;AAAA,EAAC;AAEH,SACEvB,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,GAAGe,KAAS,OAAO,UAAUlD,IAAQ,iBAAiB,aAAa;AAAA,MAC9E,KAAKiD,MAAa,QAAQA,MAAa,OAAO,QAAQ;AAAA,MAEtD,UAAAd,gBAAAA,EAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWwB;AAAAA,YACT,GACGZ,IAEGA,MAAoB,KAClB,kDACA,KAHF,iBAIN,gDAAgDE,KAAY,IAAI;AAAA,YAChEM,GAAY;AAAA,UAAA;AAAA,UAEd,OAAO;AAAA,YACL,GAAID,GAAQ,kBAAkB,CAAA;AAAA,YAC9B,GAAIP,KAAmBA,MAAoB,KAAO,EAAE,iBAAAA,EAAA,IAAoB,CAAA;AAAA,UAAC;AAAA,UAE3E,IAAIC;AAAA,UACJ,cACEI,KACA,GACEV,IAAa,mBAAmBA,CAAU,OAAO,EACnD,iBAAiBE,IAAmB,IAAIA,CAAgB,KAAK,EAAE;AAAA,UAGjE,UAAAT,gBAAAA,EAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO,EAAE,SAASY,IAAkBD,KAAW,SAASA,KAAW,EAAA;AAAA,cAEnE,UAAAV,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,mDACZ,UAAA;AAAA,gBAAAM,KAAcE,IACbT,gBAAAA,EAAAA;AAAAA,kBAACyB;AAAA,kBAAA;AAAA,oBACC,QAAQ;AAAA,sBACN,OAAON,GAAQ;AAAA,sBACf,aAAaA,GAAQ;AAAA,oBAAA;AAAA,oBAEvB,YAAY;AAAA,sBACV,OAAOC,GAAY;AAAA,sBACnB,aAAaA,GAAY;AAAA,oBAAA;AAAA,oBAE3B,YAAAb;AAAA,oBACA,kBAAAE;AAAA,oBACA,OAAA5C;AAAA,kBAAA;AAAA,gBAAA,IAEA;AAAA,gBACJmC,gBAAAA,EAAAA;AAAAA,kBAAC0B;AAAAA,kBAAA;AAAA,oBACC,SAASV,EAAe,IAAI,CAAAzB,OAAM;AAAA,sBAChC,OAAOA,EAAE;AAAA,sBACT,OAAOA,EAAE;AAAA,oBAAA,EACT;AAAA,oBACF,MAAK;AAAA,oBACL,aAAa;AAAA,oBACb,SAAS2B;AAAA,oBACT,OAAOJ,MAAa,QAAQA,MAAa;AAAA,oBACzC,cAAY;AAAA,oBACZ,cAAca,EAAaL,CAAY;AAAA,oBACvC,cAAc;AAAA,sBACZ,OAAON,EAAe,CAAC,EAAE;AAAA,sBACzB,OAAOA,EAAe,CAAC,EAAE;AAAA,oBAAA;AAAA,oBAE3B,0BAAwB;AAAA,oBAExB,UAAU,CAAClB,MAAY;AACrB,sBAAIA,KAAIuB,EAAiBvB,EAAG,KAAK;AAAA,oBACnC;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAEFE,gBAAAA,EAAAA;AAAAA,kBAACvC;AAAA,kBAAA;AAAA,oBACC,UAAAE;AAAA,oBACA,QAAAI;AAAA,oBACA,WAAAC;AAAA,oBACA,OAAAH;AAAA,oBACA,QAAAD;AAAA,oBACA,gBAAAE;AAAA,oBACA,WAAAG;AAAA,oBACA,eAAAC;AAAA,oBACA,aAAa0D,EAAYZ,EAAe,IAAI,CAAAzB,MAAKA,EAAE,OAAO,CAAC;AAAA,oBAC3D,eAAAnB;AAAA,oBACA,WACGC,EAAkC;AAAA,sBACjC,CAAAkB,MACEA,EAAE,iBACFyB,EAAe,KAAK,CAAAlB,MAAMA,EAAG,YAAY5B,CAAa,GAAG;AAAA,oBAAA,GAC1D;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAGNsC,KAAWE,IACVV,gBAAAA,EAAAA;AAAAA,kBAAC6B;AAAA,kBAAA;AAAA,oBACC,QAAQ,EAAE,UAAUV,GAAQ,UAAU,QAAQA,GAAQ,OAAA;AAAA,oBACtD,YAAY;AAAA,sBACV,UAAUC,GAAY;AAAA,sBACtB,QAAQA,GAAY;AAAA,oBAAA;AAAA,oBAEtB,SAAAZ;AAAA,oBACA,UAAAE;AAAA,oBACA,OAAA7C;AAAA,kBAAA;AAAA,gBAAA,IAEA;AAAA,cAAA,EAAA,CACN;AAAA,YAAA;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"GeoHubMapWithLayerSelection.js","sources":["../src/Components/Graphs/Maps/GeoHubMaps/MapWithLayerSelection/MapEl.tsx","../src/Components/Graphs/Maps/GeoHubMaps/MapWithLayerSelection/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 { string2HTML } from '@/Utils/string2HTML';\r\nimport { X } from '@/Components/Icons';\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 selectedLayer: string[];\r\n layerIdList: string[];\r\n excludeLayers: string[];\r\n mapLegend?: string | React.ReactNode;\r\n}\r\n\r\nexport function MapEl(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 selectedLayer,\r\n layerIdList,\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [mapStyleData, setMapStyleData] = useState<any>(undefined);\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 setMapStyleData(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 ...d,\r\n layers: filterData(d.layers, [\r\n {\r\n column: 'id',\r\n excludeValues: [\r\n ...excludeLayers,\r\n ...layerIdList.filter(el => selectedLayer.indexOf(el) === -1),\r\n ],\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, layerIdList, mapStyle, excludeLayers, selectedLayer]);\r\n useEffect(() => {\r\n if (mapRef.current) {\r\n if (mapStyleData) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const mapStyleObj: any = {\r\n ...mapStyleData,\r\n layers: filterData(mapStyleData.layers, [\r\n {\r\n column: 'id',\r\n excludeValues: [\r\n ...excludeLayers,\r\n ...layerIdList.filter(el => selectedLayer.indexOf(el) === -1),\r\n ],\r\n },\r\n ]),\r\n };\r\n mapRef.current.setStyle(mapStyleObj);\r\n } else\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 excludeValues: [\r\n ...excludeLayers,\r\n ...layerIdList.filter(el => selectedLayer.indexOf(el) === -1),\r\n ],\r\n },\r\n ]),\r\n };\r\n mapRef.current.setStyle(mapStyleObj);\r\n });\r\n }\r\n }, [excludeLayers, layerIdList, mapStyle, mapStyleData, selectedLayer]);\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 ref={mapContainer} className='map maplibre-show-control w-full h-full' />\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 { useEffect, useMemo, useState } from 'react';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { cn } from '@undp/design-system-react/cn';\r\n\r\nimport { MapEl } from './MapEl';\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 */\r\n mapStyle: string;\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 the layers that the user select and switch between sing a drop down */\r\n layerSelection: { layerID: string[]; name: string }[];\r\n /** Defines the legend for the map. mapLegend is of type { mapStyleName: string; legend: string | React.ReactNode }[] where mapStyleName corresponds to the each name in the layerSelection. */\r\n mapLegend?: MapLegendDataType[];\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 GeoHubMapWithLayerSelection(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 layerSelection,\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 [selectedLayer, setSelectedLayer] = useState(layerSelection[0].layerID);\r\n\r\n useEffect(() => {\r\n setSelectedLayer(layerSelection[0].layerID);\r\n }, [layerSelection]);\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 <DropdownSelect\r\n options={layerSelection.map(d => ({\r\n label: d.name,\r\n value: d.layerID,\r\n }))}\r\n size='sm'\r\n isClearable={false}\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: layerSelection[0].name,\r\n value: layerSelection[0].layerID,\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) setSelectedLayer(el.value);\r\n }}\r\n />\r\n <MapEl\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 selectedLayer={selectedLayer}\r\n layerIdList={flattenDeep(layerSelection.map(d => d.layerID))}\r\n excludeLayers={excludeLayers}\r\n mapLegend={\r\n (mapLegend as MapLegendDataType[]).find(\r\n d =>\r\n d.mapStyleName ===\r\n layerSelection.find(el => el.layerID === selectedLayer)?.name,\r\n )?.legend\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":["MapEl","props","mapStyle","height","width","relativeHeight","center","zoomLevel","minHeight","selectedLayer","layerIdList","excludeLayers","mapLegend","svgWidth","setSvgWidth","useState","svgHeight","setSvgHeight","showLegend","setShowLegend","mapStyleData","setMapStyleData","graphDiv","useRef","mapContainer","mapRef","useEffect","resizeObserver","entries","fetchAndParseJSON","d","select","protocol","pmtiles","maplibreGl","mapObj","filterData","el","mapStyleObj","jsx","jsxs","Fragment","X","string2HTML","React","GeoHubMapWithLayerSelection","graphTitle","sources","graphDescription","footNote","padding","backgroundColor","graphID","language","theme","layerSelection","ariaLabel","uiMode","styles","classNames","setSelectedLayer","filterConfig","useMemo","cn","GraphHeader","DropdownSelect","createFilter","flattenDeep","GraphFooter"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { j as n } from "./index-CHPV5EwG-BPSP-7Jg.js";
2
2
  import { u as h } from "./Typography-Ctgfl1J5.js";
3
3
  import { ButterflyChart as D } from "./ButterflyChart.js";
4
- import { C as b } from "./index-DGAaLNu9.js";
4
+ import { C as b } from "./index-Bc5VF70V.js";
5
5
  import { DataTable as C } from "./DataTable.js";
6
6
  import { DonutChart as w } from "./DonutChart.js";
7
7
  import { HeatMap as T } from "./HeatMap.js";
@@ -452,6 +452,8 @@ function Ve(c) {
452
452
  };
453
453
  case "dualAxisLineChart":
454
454
  return {
455
+ showAxisLabel: e?.showAxisLabels,
456
+ showColorScale: e?.showColorScale,
455
457
  customLayers: e?.customLayers,
456
458
  precision: e?.precision,
457
459
  theme: e?.theme,
@@ -1444,6 +1446,8 @@ function Ve(c) {
1444
1446
  };
1445
1447
  case "paretoChart":
1446
1448
  return {
1449
+ showAxisLabel: e?.showAxisLabels,
1450
+ showColorScale: e?.showColorScale,
1447
1451
  naLabel: e?.naLabel,
1448
1452
  customLayers: e?.customLayers,
1449
1453
  precision: e?.precision,
@@ -1726,4 +1730,4 @@ function Ve(c) {
1726
1730
  export {
1727
1731
  Ve as G
1728
1732
  };
1729
- //# sourceMappingURL=GraphEl-s3ctz7oA.js.map
1733
+ //# sourceMappingURL=GraphEl-N6vuMRw_.js.map