@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.
- package/dist/AreaChart.cjs +1 -1
- package/dist/AreaChart.cjs.map +1 -1
- package/dist/AreaChart.js +25 -24
- package/dist/AreaChart.js.map +1 -1
- package/dist/BarGraph.cjs +1 -1
- package/dist/BarGraph.cjs.map +1 -1
- package/dist/BarGraph.js +638 -632
- package/dist/BarGraph.js.map +1 -1
- package/dist/BeeSwarmChart.cjs +1 -1
- package/dist/BeeSwarmChart.cjs.map +1 -1
- package/dist/BeeSwarmChart.js +134 -132
- package/dist/BeeSwarmChart.js.map +1 -1
- package/dist/BiVariateChoroplethMap.cjs +1 -1
- package/dist/BiVariateChoroplethMap.cjs.map +1 -1
- package/dist/BiVariateChoroplethMap.js +35 -34
- package/dist/BiVariateChoroplethMap.js.map +1 -1
- package/dist/BulletChart.cjs +1 -1
- package/dist/BulletChart.cjs.map +1 -1
- package/dist/BulletChart.js +226 -224
- package/dist/BulletChart.js.map +1 -1
- package/dist/ButterflyChart.cjs +1 -1
- package/dist/ButterflyChart.cjs.map +1 -1
- package/dist/ButterflyChart.js +48 -47
- package/dist/ButterflyChart.js.map +1 -1
- package/dist/ChoroplethMap.cjs +1 -1
- package/dist/ChoroplethMap.cjs.map +1 -1
- package/dist/ChoroplethMap.js +56 -55
- package/dist/ChoroplethMap.js.map +1 -1
- package/dist/CirclePackingGraph.cjs +1 -1
- package/dist/CirclePackingGraph.js +1 -1
- package/dist/DataCards.cjs +3 -3
- package/dist/DataCards.cjs.map +1 -1
- package/dist/DataCards.js +2 -1
- package/dist/DataCards.js.map +1 -1
- package/dist/DataTable.cjs +1 -1
- package/dist/DataTable.cjs.map +1 -1
- package/dist/DataTable.js +9 -8
- package/dist/DataTable.js.map +1 -1
- package/dist/DifferenceLineChart.cjs +1 -1
- package/dist/DifferenceLineChart.cjs.map +1 -1
- package/dist/DifferenceLineChart.js +1 -0
- package/dist/DifferenceLineChart.js.map +1 -1
- package/dist/DonutChart.cjs +1 -1
- package/dist/DonutChart.cjs.map +1 -1
- package/dist/DonutChart.js +77 -76
- package/dist/DonutChart.js.map +1 -1
- package/dist/DotDensityMap.cjs +1 -1
- package/dist/DotDensityMap.cjs.map +1 -1
- package/dist/DotDensityMap.js +1 -0
- package/dist/DotDensityMap.js.map +1 -1
- package/dist/{DropdownSelect-CeHog_ih.js → DropdownSelect-CtOKZHD0.js} +22 -20
- package/dist/{DropdownSelect-CeHog_ih.js.map → DropdownSelect-CtOKZHD0.js.map} +1 -1
- package/dist/{DropdownSelect-BmE5JaeE.cjs → DropdownSelect-DBDM64B5.cjs} +2 -2
- package/dist/{DropdownSelect-BmE5JaeE.cjs.map → DropdownSelect-DBDM64B5.cjs.map} +1 -1
- package/dist/DualAxisLineChart.cjs +1 -1
- package/dist/DualAxisLineChart.cjs.map +1 -1
- package/dist/DualAxisLineChart.d.ts +3 -1
- package/dist/DualAxisLineChart.js +265 -261
- package/dist/DualAxisLineChart.js.map +1 -1
- package/dist/DumbbellChart.cjs +1 -1
- package/dist/DumbbellChart.cjs.map +1 -1
- package/dist/DumbbellChart.js +216 -214
- package/dist/DumbbellChart.js.map +1 -1
- package/dist/GeoHubCompareMaps.cjs +1 -1
- package/dist/GeoHubCompareMaps.cjs.map +1 -1
- package/dist/GeoHubCompareMaps.js +1 -0
- package/dist/GeoHubCompareMaps.js.map +1 -1
- package/dist/GeoHubMap.cjs +1 -1
- package/dist/GeoHubMap.cjs.map +1 -1
- package/dist/GeoHubMap.js +29 -28
- package/dist/GeoHubMap.js.map +1 -1
- package/dist/GeoHubMapWithLayerSelection.cjs +1 -1
- package/dist/GeoHubMapWithLayerSelection.cjs.map +1 -1
- package/dist/GeoHubMapWithLayerSelection.js +34 -33
- package/dist/GeoHubMapWithLayerSelection.js.map +1 -1
- package/dist/{GraphEl-s3ctz7oA.js → GraphEl-N6vuMRw_.js} +6 -2
- package/dist/GraphEl-N6vuMRw_.js.map +1 -0
- package/dist/GraphEl-Zl0W-LK9.cjs +2 -0
- package/dist/GraphEl-Zl0W-LK9.cjs.map +1 -0
- package/dist/GriddedGraphs.cjs +1 -1
- package/dist/GriddedGraphs.d.ts +1 -0
- package/dist/GriddedGraphs.js +2 -2
- package/dist/GriddedGraphsFromConfig.d.ts +1 -0
- package/dist/HeatMap.cjs +1 -1
- package/dist/HeatMap.cjs.map +1 -1
- package/dist/HeatMap.js +55 -54
- package/dist/HeatMap.js.map +1 -1
- package/dist/Histogram.cjs +1 -1
- package/dist/Histogram.js +1 -1
- package/dist/LineChartWithConfidenceInterval.cjs +1 -1
- package/dist/LineChartWithConfidenceInterval.cjs.map +1 -1
- package/dist/LineChartWithConfidenceInterval.js +22 -21
- package/dist/LineChartWithConfidenceInterval.js.map +1 -1
- package/dist/MultiGraphDashboard.cjs +1 -1
- package/dist/MultiGraphDashboard.d.ts +1 -0
- package/dist/MultiGraphDashboard.js +1 -1
- package/dist/MultiGraphDashboardFromConfig.d.ts +1 -0
- package/dist/MultiGraphDashboardWideToLongFormat.cjs +1 -1
- package/dist/MultiGraphDashboardWideToLongFormat.js +1 -1
- package/dist/MultiLineAltChart.cjs +1 -1
- package/dist/MultiLineAltChart.cjs.map +1 -1
- package/dist/MultiLineAltChart.js +34 -33
- package/dist/MultiLineAltChart.js.map +1 -1
- package/dist/MultiLineChart.cjs +1 -1
- package/dist/MultiLineChart.cjs.map +1 -1
- package/dist/MultiLineChart.js +72 -71
- package/dist/MultiLineChart.js.map +1 -1
- package/dist/ParetoChart.cjs +1 -1
- package/dist/ParetoChart.cjs.map +1 -1
- package/dist/ParetoChart.d.ts +4 -0
- package/dist/ParetoChart.js +317 -312
- package/dist/ParetoChart.js.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +1 -0
- package/dist/PerformanceIntensiveMultiGraphDashboard.js +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +1 -0
- package/dist/PerformanceIntensiveScrollStory.d.ts +1 -0
- package/dist/RadarChart.cjs +1 -1
- package/dist/RadarChart.cjs.map +1 -1
- package/dist/RadarChart.js +27 -26
- package/dist/RadarChart.js.map +1 -1
- package/dist/SankeyChart.cjs +1 -1
- package/dist/SankeyChart.cjs.map +1 -1
- package/dist/SankeyChart.js +30 -29
- package/dist/SankeyChart.js.map +1 -1
- package/dist/ScatterPlot.cjs +1 -1
- package/dist/ScatterPlot.cjs.map +1 -1
- package/dist/ScatterPlot.js +119 -118
- package/dist/ScatterPlot.js.map +1 -1
- package/dist/ScrollStory.d.ts +1 -0
- package/dist/SimpleLineChart.cjs +1 -1
- package/dist/SimpleLineChart.cjs.map +1 -1
- package/dist/SimpleLineChart.js +16 -15
- package/dist/SimpleLineChart.js.map +1 -1
- package/dist/SingleGraphDashboard.cjs +1 -1
- package/dist/SingleGraphDashboard.d.ts +1 -0
- package/dist/SingleGraphDashboard.js +2 -2
- package/dist/SingleGraphDashboardFromConfig.d.ts +1 -0
- package/dist/SingleGraphDashboardGeoHubMaps.d.ts +1 -0
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.d.ts +1 -0
- package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.d.ts +1 -0
- package/dist/SingleGraphDashboardThreeDGraphs.js +1 -1
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +1 -0
- package/dist/SlopeChart.cjs +1 -1
- package/dist/SlopeChart.cjs.map +1 -1
- package/dist/SlopeChart.js +46 -45
- package/dist/SlopeChart.js.map +1 -1
- package/dist/SparkLine.cjs +1 -1
- package/dist/SparkLine.cjs.map +1 -1
- package/dist/SparkLine.js +12 -11
- package/dist/SparkLine.js.map +1 -1
- package/dist/StripChart.cjs +1 -1
- package/dist/StripChart.cjs.map +1 -1
- package/dist/StripChart.js +81 -79
- package/dist/StripChart.js.map +1 -1
- package/dist/ThreeDGlobe.cjs +1 -1
- package/dist/ThreeDGlobe.cjs.map +1 -1
- package/dist/ThreeDGlobe.js +1 -0
- package/dist/ThreeDGlobe.js.map +1 -1
- package/dist/TreeMapGraph.cjs +1 -1
- package/dist/TreeMapGraph.cjs.map +1 -1
- package/dist/TreeMapGraph.js +114 -113
- package/dist/TreeMapGraph.js.map +1 -1
- package/dist/Types.d.ts +1 -0
- package/dist/UnitChart.cjs +1 -1
- package/dist/UnitChart.cjs.map +1 -1
- package/dist/UnitChart.js +10 -9
- package/dist/UnitChart.js.map +1 -1
- package/dist/{index-CZLvTu6p.cjs → index-BbNoLJ_w.cjs} +2 -2
- package/dist/{index-CZLvTu6p.cjs.map → index-BbNoLJ_w.cjs.map} +1 -1
- package/dist/{index-DGAaLNu9.js → index-Bc5VF70V.js} +46 -45
- package/dist/{index-DGAaLNu9.js.map → index-Bc5VF70V.js.map} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.js +1 -1
- package/package.json +2 -2
- package/dist/GraphEl-OzC-icbr.cjs +0 -2
- package/dist/GraphEl-OzC-icbr.cjs.map +0 -1
- 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-
|
|
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:
|
|
18
|
+
height: m,
|
|
19
19
|
width: i,
|
|
20
|
-
relativeHeight:
|
|
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),
|
|
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((
|
|
31
|
-
C(i ||
|
|
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,
|
|
35
|
-
|
|
36
|
-
M(r), F(
|
|
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:
|
|
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((
|
|
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
|
|
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(
|
|
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) && (
|
|
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
|
-
|
|
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:
|
|
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:
|
|
169
|
+
graphTitle: m,
|
|
170
170
|
height: i,
|
|
171
|
-
width:
|
|
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:
|
|
188
|
+
styles: n,
|
|
189
189
|
classNames: t,
|
|
190
190
|
mapLegend: r = []
|
|
191
|
-
} = I, [
|
|
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 ${
|
|
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
|
-
...
|
|
217
|
+
...n?.graphContainer || {},
|
|
217
218
|
...a && a !== !0 ? { backgroundColor: a } : {}
|
|
218
219
|
},
|
|
219
220
|
id: C,
|
|
220
|
-
"aria-label": M || `${
|
|
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
|
-
|
|
228
|
+
m || d ? /* @__PURE__ */ e.jsx(
|
|
228
229
|
J,
|
|
229
230
|
{
|
|
230
231
|
styles: {
|
|
231
|
-
title:
|
|
232
|
-
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:
|
|
239
|
+
graphTitle: m,
|
|
239
240
|
graphDescription: d,
|
|
240
|
-
width:
|
|
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:
|
|
273
|
+
width: s,
|
|
273
274
|
height: i,
|
|
274
275
|
relativeHeight: j,
|
|
275
276
|
minHeight: N,
|
|
276
|
-
selectedLayer:
|
|
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 ===
|
|
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:
|
|
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:
|
|
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-
|
|
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-
|
|
1733
|
+
//# sourceMappingURL=GraphEl-N6vuMRw_.js.map
|