@phila/layerboard 3.0.0-beta.18 → 3.0.0-beta.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +179 -45
- package/dist/index.js +2 -2
- package/dist/index.mjs +510 -510
- package/dist/layerboard.css +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent as $e, ref as k, watch as Re, computed as z, onMounted as Xe, onUnmounted as Pt, createElementBlock as
|
|
1
|
+
import { defineComponent as $e, ref as k, watch as Re, computed as z, onMounted as Xe, onUnmounted as Pt, createElementBlock as m, openBlock as f, createVNode as Q, unref as O, withCtx as Ue, createBlock as te, createCommentVNode as E, Fragment as ie, renderList as se, useAttrs as Ot, toRef as zt, normalizeClass as ne, createElementVNode as P, toDisplayString as N, renderSlot as fe, withDirectives as Mt, mergeProps as dt, vModelDynamic as It, createTextVNode as Le, normalizeProps as mt, guardReactiveProps as vt, withModifiers as Rt, normalizeStyle as J, readonly as j, provide as V, onBeforeUnmount as Dt, nextTick as Ve, useId as bt, resolveComponent as Zt, vShow as Bt } from "vue";
|
|
2
2
|
import { Map as At, DrawTool as Nt, RasterLayer as wt, CircleLayer as Lt, FillLayer as St, LineLayer as ct, MapMarker as Vt, MapPopup as Ut } from "@phila/phila-ui-map-core";
|
|
3
3
|
import { cn as ft, Icon as be, BaseLink as Wt, ActionContent as Ct } from "@phila/phila-ui-core";
|
|
4
4
|
const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
@@ -26,14 +26,14 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
26
26
|
setup(t, { emit: i }) {
|
|
27
27
|
const a = t, o = i, l = k(null), n = k(null), y = k(0);
|
|
28
28
|
function $(e) {
|
|
29
|
-
o("zoom", e), n.value && (y.value =
|
|
29
|
+
o("zoom", e), n.value && (y.value = g(n.value));
|
|
30
30
|
}
|
|
31
|
-
function
|
|
31
|
+
function g(e) {
|
|
32
32
|
const d = e.getZoom(), w = e.getCenter().lat, _ = 559082264028e-3, T = w * Math.PI / 180;
|
|
33
33
|
return _ * Math.cos(T) / Math.pow(2, d);
|
|
34
34
|
}
|
|
35
35
|
const M = k({}), L = k(null), S = k(/* @__PURE__ */ new Set());
|
|
36
|
-
async function
|
|
36
|
+
async function r(e, d, s, w, _) {
|
|
37
37
|
const T = encodeURIComponent(w || "1=1"), B = JSON.stringify({
|
|
38
38
|
xmin: d.west,
|
|
39
39
|
ymin: d.south,
|
|
@@ -63,12 +63,12 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
63
63
|
};
|
|
64
64
|
}
|
|
65
65
|
async function C(e, d) {
|
|
66
|
-
const
|
|
66
|
+
const s = d.map(async (w) => {
|
|
67
67
|
const _ = a.layerList.find((T) => T.config.id === w)?.config;
|
|
68
68
|
if (_) {
|
|
69
69
|
o("layerLoading", w, !0);
|
|
70
70
|
try {
|
|
71
|
-
const T = n.value?.getZoom(), B = await
|
|
71
|
+
const T = n.value?.getZoom(), B = await r(_.url, e, w, _.where, T);
|
|
72
72
|
M.value = { ...M.value, [w]: B }, o("layerError", w, null);
|
|
73
73
|
} catch (T) {
|
|
74
74
|
const B = T instanceof Error ? T.message : "Failed to load";
|
|
@@ -78,16 +78,16 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
});
|
|
81
|
-
await Promise.all(
|
|
81
|
+
await Promise.all(s);
|
|
82
82
|
}
|
|
83
83
|
async function p(e) {
|
|
84
84
|
const d = [...a.visibleLayers];
|
|
85
85
|
await C(e, d);
|
|
86
86
|
}
|
|
87
|
-
function
|
|
87
|
+
function h(e) {
|
|
88
88
|
L.value = e.bounds, p(e.bounds);
|
|
89
89
|
}
|
|
90
|
-
function
|
|
90
|
+
function u(e) {
|
|
91
91
|
n.value = e;
|
|
92
92
|
const d = e.getBounds();
|
|
93
93
|
L.value = {
|
|
@@ -96,34 +96,34 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
96
96
|
east: d.getEast(),
|
|
97
97
|
north: d.getNorth()
|
|
98
98
|
};
|
|
99
|
-
const
|
|
100
|
-
o("zoom",
|
|
99
|
+
const s = e.getZoom();
|
|
100
|
+
o("zoom", s), y.value = g(e), p(L.value);
|
|
101
101
|
}
|
|
102
102
|
Re(
|
|
103
103
|
() => a.visibleLayers.size,
|
|
104
104
|
async () => {
|
|
105
105
|
if (le.value.length > 0 && Me(), L.value) {
|
|
106
|
-
const e = new Set(a.visibleLayers), d = [...e].filter((
|
|
106
|
+
const e = new Set(a.visibleLayers), d = [...e].filter((s) => !S.value.has(s));
|
|
107
107
|
S.value = new Set(e), d.length > 0 && await C(L.value, d);
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
);
|
|
111
|
-
function
|
|
111
|
+
function c(e) {
|
|
112
112
|
return a.visibleLayers.has(e);
|
|
113
113
|
}
|
|
114
|
-
function
|
|
114
|
+
function v(e) {
|
|
115
115
|
return !!M.value[e.id];
|
|
116
116
|
}
|
|
117
117
|
const I = z(
|
|
118
|
-
() => a.layerList.filter((e) => e.config.type === "circle" &&
|
|
118
|
+
() => a.layerList.filter((e) => e.config.type === "circle" && c(e.config.id) && v(e.config)).map((e) => e.config)
|
|
119
119
|
), F = z(
|
|
120
|
-
() => a.layerList.filter((e) => e.config.type === "fill" &&
|
|
120
|
+
() => a.layerList.filter((e) => e.config.type === "fill" && c(e.config.id) && v(e.config)).map((e) => e.config)
|
|
121
121
|
), R = z(
|
|
122
122
|
() => a.layerList.filter(
|
|
123
|
-
(e) => e.config.type === "fill" && e.config.outlinePaint &&
|
|
123
|
+
(e) => e.config.type === "fill" && e.config.outlinePaint && c(e.config.id) && v(e.config)
|
|
124
124
|
).map((e) => e.config)
|
|
125
125
|
), Z = z(
|
|
126
|
-
() => a.layerList.filter((e) => e.config.type === "line" &&
|
|
126
|
+
() => a.layerList.filter((e) => e.config.type === "line" && c(e.config.id) && v(e.config)).map((e) => e.config)
|
|
127
127
|
);
|
|
128
128
|
function pe(e) {
|
|
129
129
|
return a.visibleTiledLayers?.has(e) ?? !1;
|
|
@@ -147,10 +147,10 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
147
147
|
if (!je.value.has(e.id)) {
|
|
148
148
|
je.value.add(e.id);
|
|
149
149
|
try {
|
|
150
|
-
const d = e.url.replace(/\/$/, ""),
|
|
151
|
-
if (!
|
|
150
|
+
const d = e.url.replace(/\/$/, ""), s = await fetch(`${d}?f=json`);
|
|
151
|
+
if (!s.ok)
|
|
152
152
|
return;
|
|
153
|
-
const w = await
|
|
153
|
+
const w = await s.json(), _ = w.minScale || 0;
|
|
154
154
|
let T = w.maxScale || 0;
|
|
155
155
|
if (w.layers && w.layers.length > 0)
|
|
156
156
|
for (const B of w.layers)
|
|
@@ -174,8 +174,8 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
174
174
|
const d = Be.value[e.id];
|
|
175
175
|
if (!d)
|
|
176
176
|
return "tiled";
|
|
177
|
-
const
|
|
178
|
-
return
|
|
177
|
+
const s = y.value;
|
|
178
|
+
return s === 0 || s > d.maxScale ? "tiled" : "dynamic";
|
|
179
179
|
}
|
|
180
180
|
const at = z(() => a.tiledLayers ? a.tiledLayers.filter((e) => pe(e.id) ? e.scaleBasedRendering ? Fe(e) === "tiled" : !0 : !1) : []), it = z(() => a.tiledLayers ? a.tiledLayers.filter((e) => pe(e.id) && e.scaleBasedRendering ? Fe(e) === "dynamic" : !1) : []);
|
|
181
181
|
function nt(e) {
|
|
@@ -193,10 +193,10 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
193
193
|
return a.layerOpacities[e] ?? 1;
|
|
194
194
|
}
|
|
195
195
|
function _e(e) {
|
|
196
|
-
const d = Ee(e.id),
|
|
196
|
+
const d = Ee(e.id), s = e.type === "circle" ? "circle-opacity" : e.type === "fill" ? "fill-opacity" : "line-opacity";
|
|
197
197
|
if (e.type === "fill" && e.paint["fill-opacity"] === 0)
|
|
198
198
|
return { ...e.paint, "fill-opacity": 0 };
|
|
199
|
-
const w = e.type === "circle" ? "circle-color" : e.type === "fill" ? "fill-color" : "line-color", _ = { ...e.paint }, T = _[w], B = _[
|
|
199
|
+
const w = e.type === "circle" ? "circle-color" : e.type === "fill" ? "fill-color" : "line-color", _ = { ...e.paint }, T = _[w], B = _[s] === 1, ee = typeof T == "string" && T.startsWith("rgba(");
|
|
200
200
|
if (B && ee) {
|
|
201
201
|
if (d === 1)
|
|
202
202
|
return _;
|
|
@@ -204,7 +204,7 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
204
204
|
const U = T.match(/rgba\((\d+),\s*(\d+),\s*(\d+),\s*([\d.]+)\)/);
|
|
205
205
|
if (U && U[4]) {
|
|
206
206
|
const [, X, A, K, H] = U, de = parseFloat(H) * d;
|
|
207
|
-
_[w] = `rgba(${X}, ${A}, ${K}, ${de})`, _[
|
|
207
|
+
_[w] = `rgba(${X}, ${A}, ${K}, ${de})`, _[s] = 1;
|
|
208
208
|
}
|
|
209
209
|
return _;
|
|
210
210
|
}
|
|
@@ -216,7 +216,7 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
216
216
|
_[w] = `rgb(${X}, ${A}, ${K})`;
|
|
217
217
|
}
|
|
218
218
|
}
|
|
219
|
-
return _[
|
|
219
|
+
return _[s] = d, _;
|
|
220
220
|
}
|
|
221
221
|
function Oe(e) {
|
|
222
222
|
const d = Ee(e.id);
|
|
@@ -228,7 +228,7 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
228
228
|
return a.layerList.find((w) => w.config.id === d)?.config;
|
|
229
229
|
}
|
|
230
230
|
function qe(e, d) {
|
|
231
|
-
return e.replace(/\{([^}]+)\}/g, (
|
|
231
|
+
return e.replace(/\{([^}]+)\}/g, (s, w) => {
|
|
232
232
|
const _ = d[w];
|
|
233
233
|
return _ == null ? "" : String(_);
|
|
234
234
|
});
|
|
@@ -236,11 +236,11 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
236
236
|
function Se(e) {
|
|
237
237
|
return e.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
238
238
|
}
|
|
239
|
-
function Ge(e, d,
|
|
239
|
+
function Ge(e, d, s) {
|
|
240
240
|
if (e == null) return "-";
|
|
241
241
|
if (d?.dateFormat && typeof e == "number") {
|
|
242
242
|
const w = new Date(e);
|
|
243
|
-
if (
|
|
243
|
+
if (s && d.dateFormat === "shortDateShortTime")
|
|
244
244
|
return w.toLocaleString(void 0, { dateStyle: "short", timeStyle: "short" });
|
|
245
245
|
switch (d.dateFormat) {
|
|
246
246
|
case "shortDateShortTime":
|
|
@@ -275,17 +275,17 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
275
275
|
}
|
|
276
276
|
function Ae(e) {
|
|
277
277
|
const d = /* @__PURE__ */ new Set();
|
|
278
|
-
return e.filter((
|
|
279
|
-
const _ = `${
|
|
278
|
+
return e.filter((s) => {
|
|
279
|
+
const _ = `${s.layer.id.replace(/-outline$/, "")}:${JSON.stringify(s.properties)}`;
|
|
280
280
|
return d.has(_) ? !1 : (d.add(_), !0);
|
|
281
281
|
});
|
|
282
282
|
}
|
|
283
283
|
function Ne(e, d) {
|
|
284
|
-
const
|
|
285
|
-
if (!
|
|
284
|
+
const s = M.value[e];
|
|
285
|
+
if (!s?.features) return null;
|
|
286
286
|
const w = d.objectid ?? d.OBJECTID ?? d.FID;
|
|
287
287
|
if (w != null) {
|
|
288
|
-
const _ =
|
|
288
|
+
const _ = s.features.find(
|
|
289
289
|
(T) => (T.properties?.objectid ?? T.properties?.OBJECTID ?? T.properties?.FID) === w
|
|
290
290
|
);
|
|
291
291
|
if (_) return _.geometry;
|
|
@@ -293,24 +293,24 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
293
293
|
return null;
|
|
294
294
|
}
|
|
295
295
|
function He(e, d) {
|
|
296
|
-
const
|
|
296
|
+
const s = /* @__PURE__ */ new Map();
|
|
297
297
|
return d.forEach((w, _) => {
|
|
298
|
-
|
|
298
|
+
s.set(w.id, _);
|
|
299
299
|
}), e.sort((w, _) => {
|
|
300
|
-
const T = w.layer.id.replace(/-outline$/, ""), B = _.layer.id.replace(/-outline$/, ""), ee =
|
|
301
|
-
return (
|
|
300
|
+
const T = w.layer.id.replace(/-outline$/, ""), B = _.layer.id.replace(/-outline$/, ""), ee = s.get(T) ?? -1;
|
|
301
|
+
return (s.get(B) ?? -1) - ee;
|
|
302
302
|
});
|
|
303
303
|
}
|
|
304
304
|
function re(e) {
|
|
305
305
|
const d = n.value;
|
|
306
306
|
if (!d) return;
|
|
307
|
-
const
|
|
307
|
+
const s = [];
|
|
308
308
|
a.layerList.forEach((A) => {
|
|
309
309
|
const K = A.config;
|
|
310
|
-
a.visibleLayers.has(K.id) && (
|
|
310
|
+
a.visibleLayers.has(K.id) && (s.push(K.id), K.outlinePaint && s.push(`${K.id}-outline`));
|
|
311
311
|
});
|
|
312
312
|
const w = d.project([e.lngLat.lng, e.lngLat.lat]), _ = d.queryRenderedFeatures(w, {
|
|
313
|
-
layers:
|
|
313
|
+
layers: s
|
|
314
314
|
});
|
|
315
315
|
if (_.length === 0) return;
|
|
316
316
|
const T = Ae(_), B = a.layerList.map((A) => A.config), U = He(T, B).map((A) => {
|
|
@@ -331,7 +331,7 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
331
331
|
if (X) {
|
|
332
332
|
const A = Pe(X.layerId);
|
|
333
333
|
if (A) {
|
|
334
|
-
const K =
|
|
334
|
+
const K = b(X.geometry), H = x(A.id, A.type);
|
|
335
335
|
ue.value = {
|
|
336
336
|
geometry: X.geometry,
|
|
337
337
|
geometryType: K,
|
|
@@ -384,9 +384,9 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
384
384
|
let d = '<div class="popup-content">';
|
|
385
385
|
if (d += `<h3 class="popup-title">${Se(Ke.value)}</h3>`, e.popupConfig?.fields?.length) {
|
|
386
386
|
d += `<table class="popup-table" aria-label="${Se(Ke.value)}">`;
|
|
387
|
-
for (const
|
|
388
|
-
const w = Ge(e.properties[
|
|
389
|
-
d += `<tr><th scope="row">${Se(
|
|
387
|
+
for (const s of e.popupConfig.fields) {
|
|
388
|
+
const w = Ge(e.properties[s.field], s.format, e.popupConfig.showTime), _ = s.label.toLowerCase(), T = _.includes("url") || _.includes("website"), B = w.startsWith("http://") || w.startsWith("https://") || w.startsWith("www.") || T && w.includes("."), ee = w.startsWith("http://") || w.startsWith("https://") ? w : `https://${w}`, U = B ? `<a href="${Se(ee)}" target="_blank" rel="noopener noreferrer">${Se(w)}</a>` : Se(w);
|
|
389
|
+
d += `<tr><th scope="row">${Se(s.label)}</th><td>${U}</td></tr>`;
|
|
390
390
|
}
|
|
391
391
|
d += "</table>";
|
|
392
392
|
}
|
|
@@ -414,13 +414,13 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
414
414
|
"fill-color": "#808080",
|
|
415
415
|
"fill-opacity": 0.5
|
|
416
416
|
}, ue = k(null);
|
|
417
|
-
function
|
|
417
|
+
function b(e) {
|
|
418
418
|
return e.type;
|
|
419
419
|
}
|
|
420
420
|
function x(e, d) {
|
|
421
|
-
const
|
|
422
|
-
if (!
|
|
423
|
-
const w =
|
|
421
|
+
const s = Pe(e);
|
|
422
|
+
if (!s) return { radius: 5, width: 2 };
|
|
423
|
+
const w = s.paint || {};
|
|
424
424
|
if (d === "circle") {
|
|
425
425
|
const _ = w["circle-radius"];
|
|
426
426
|
return typeof _ == "number" ? { radius: _ } : { radius: 5 };
|
|
@@ -429,8 +429,8 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
429
429
|
const _ = w["line-width"];
|
|
430
430
|
if (typeof _ == "number")
|
|
431
431
|
return { width: _ };
|
|
432
|
-
if (
|
|
433
|
-
const T =
|
|
432
|
+
if (s.outlinePaint && s.outlinePaint["line-width"]) {
|
|
433
|
+
const T = s.outlinePaint["line-width"];
|
|
434
434
|
if (typeof T == "number")
|
|
435
435
|
return { width: T };
|
|
436
436
|
}
|
|
@@ -442,8 +442,8 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
442
442
|
return !e || e.length === 0 ? [] : e[0] ?? [];
|
|
443
443
|
}
|
|
444
444
|
function W(e) {
|
|
445
|
-
const { geometry: d, geometryType:
|
|
446
|
-
if (
|
|
445
|
+
const { geometry: d, geometryType: s, originalStyle: w } = e;
|
|
446
|
+
if (s === "Point" || s === "MultiPoint") {
|
|
447
447
|
const T = (w.radius || 5) + 3;
|
|
448
448
|
return {
|
|
449
449
|
type: "FeatureCollection",
|
|
@@ -458,7 +458,7 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
458
458
|
]
|
|
459
459
|
};
|
|
460
460
|
}
|
|
461
|
-
if (
|
|
461
|
+
if (s === "LineString" || s === "MultiLineString") {
|
|
462
462
|
const T = (w.width || 2) + 3;
|
|
463
463
|
return {
|
|
464
464
|
type: "FeatureCollection",
|
|
@@ -473,7 +473,7 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
473
473
|
]
|
|
474
474
|
};
|
|
475
475
|
}
|
|
476
|
-
if (
|
|
476
|
+
if (s === "Polygon") {
|
|
477
477
|
const _ = d.coordinates, T = q(_), ee = (w.width || 2) + 3;
|
|
478
478
|
return {
|
|
479
479
|
type: "FeatureCollection",
|
|
@@ -491,7 +491,7 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
491
491
|
]
|
|
492
492
|
};
|
|
493
493
|
}
|
|
494
|
-
if (
|
|
494
|
+
if (s === "MultiPolygon") {
|
|
495
495
|
const _ = d.coordinates, B = (w.width || 2) + 3;
|
|
496
496
|
return {
|
|
497
497
|
type: "FeatureCollection",
|
|
@@ -513,8 +513,8 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
513
513
|
};
|
|
514
514
|
}
|
|
515
515
|
function G(e) {
|
|
516
|
-
const { geometry: d, geometryType:
|
|
517
|
-
return
|
|
516
|
+
const { geometry: d, geometryType: s } = e;
|
|
517
|
+
return s === "Polygon" || s === "MultiPolygon" ? {
|
|
518
518
|
type: "FeatureCollection",
|
|
519
519
|
features: [{ type: "Feature", geometry: d, properties: {} }]
|
|
520
520
|
} : { type: "FeatureCollection", features: [] };
|
|
@@ -546,10 +546,10 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
546
546
|
}
|
|
547
547
|
const d = Pe(e.layerId);
|
|
548
548
|
if (d) {
|
|
549
|
-
const
|
|
549
|
+
const s = b(e.geometry), w = x(d.id, d.type);
|
|
550
550
|
ue.value = {
|
|
551
551
|
geometry: e.geometry,
|
|
552
|
-
geometryType:
|
|
552
|
+
geometryType: s,
|
|
553
553
|
layerId: d.id,
|
|
554
554
|
properties: e.properties,
|
|
555
555
|
originalStyle: w
|
|
@@ -558,10 +558,10 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
558
558
|
});
|
|
559
559
|
const ht = k(null);
|
|
560
560
|
function Et(e) {
|
|
561
|
-
const [d,
|
|
562
|
-
ht.value = [d,
|
|
561
|
+
const [d, s] = e.geometry.coordinates;
|
|
562
|
+
ht.value = [d, s];
|
|
563
563
|
}
|
|
564
|
-
return (e, d) => (f(),
|
|
564
|
+
return (e, d) => (f(), m("div", jt, [
|
|
565
565
|
Q(O(At), {
|
|
566
566
|
ref_key: "mapRef",
|
|
567
567
|
ref: l,
|
|
@@ -581,8 +581,8 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
581
581
|
"tool-panel-split-ratio": 50,
|
|
582
582
|
onZoom: $,
|
|
583
583
|
onClick: Me,
|
|
584
|
-
onMoveend:
|
|
585
|
-
onLoad:
|
|
584
|
+
onMoveend: h,
|
|
585
|
+
onLoad: u,
|
|
586
586
|
onSearchResult: Et
|
|
587
587
|
}, {
|
|
588
588
|
default: Ue(() => [
|
|
@@ -590,59 +590,59 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
590
590
|
key: 0,
|
|
591
591
|
position: a.drawControlPosition
|
|
592
592
|
}, null, 8, ["position"])) : E("", !0),
|
|
593
|
-
(f(!0),
|
|
594
|
-
id: "tiled-" +
|
|
595
|
-
key: "tiled-" +
|
|
596
|
-
source: tt(
|
|
597
|
-
paint: { "raster-opacity": ye(
|
|
598
|
-
minzoom:
|
|
599
|
-
maxzoom:
|
|
593
|
+
(f(!0), m(ie, null, se(at.value, (s) => (f(), te(O(wt), {
|
|
594
|
+
id: "tiled-" + s.id,
|
|
595
|
+
key: "tiled-" + s.id,
|
|
596
|
+
source: tt(s),
|
|
597
|
+
paint: { "raster-opacity": ye(s.id) },
|
|
598
|
+
minzoom: s.minZoom,
|
|
599
|
+
maxzoom: s.maxZoom
|
|
600
600
|
}, null, 8, ["id", "source", "paint", "minzoom", "maxzoom"]))), 128)),
|
|
601
|
-
(f(!0),
|
|
602
|
-
id: "dynamic-" +
|
|
603
|
-
key: "dynamic-" +
|
|
604
|
-
source: nt(
|
|
605
|
-
paint: { "raster-opacity": ye(
|
|
606
|
-
minzoom:
|
|
607
|
-
maxzoom:
|
|
601
|
+
(f(!0), m(ie, null, se(it.value, (s) => (f(), te(O(wt), {
|
|
602
|
+
id: "dynamic-" + s.id,
|
|
603
|
+
key: "dynamic-" + s.id,
|
|
604
|
+
source: nt(s),
|
|
605
|
+
paint: { "raster-opacity": ye(s.id) },
|
|
606
|
+
minzoom: s.minZoom,
|
|
607
|
+
maxzoom: s.maxZoom
|
|
608
608
|
}, null, 8, ["id", "source", "paint", "minzoom", "maxzoom"]))), 128)),
|
|
609
|
-
(f(!0),
|
|
610
|
-
id:
|
|
611
|
-
key:
|
|
612
|
-
source: ge(
|
|
613
|
-
paint: _e(
|
|
614
|
-
minzoom:
|
|
615
|
-
maxzoom:
|
|
609
|
+
(f(!0), m(ie, null, se(I.value, (s) => (f(), te(O(Lt), {
|
|
610
|
+
id: s.id,
|
|
611
|
+
key: s.id,
|
|
612
|
+
source: ge(s),
|
|
613
|
+
paint: _e(s),
|
|
614
|
+
minzoom: s.minZoom,
|
|
615
|
+
maxzoom: s.maxZoom,
|
|
616
616
|
"before-id": "highlight-circles",
|
|
617
617
|
onClick: re
|
|
618
618
|
}, null, 8, ["id", "source", "paint", "minzoom", "maxzoom"]))), 128)),
|
|
619
|
-
(f(!0),
|
|
620
|
-
id:
|
|
621
|
-
key:
|
|
622
|
-
source: ge(
|
|
623
|
-
paint: _e(
|
|
624
|
-
minzoom:
|
|
625
|
-
maxzoom:
|
|
619
|
+
(f(!0), m(ie, null, se(F.value, (s) => (f(), te(O(St), {
|
|
620
|
+
id: s.id,
|
|
621
|
+
key: s.id,
|
|
622
|
+
source: ge(s),
|
|
623
|
+
paint: _e(s),
|
|
624
|
+
minzoom: s.minZoom,
|
|
625
|
+
maxzoom: s.maxZoom,
|
|
626
626
|
"before-id": "highlight-circles",
|
|
627
627
|
onClick: re
|
|
628
628
|
}, null, 8, ["id", "source", "paint", "minzoom", "maxzoom"]))), 128)),
|
|
629
|
-
(f(!0),
|
|
630
|
-
id:
|
|
631
|
-
key:
|
|
632
|
-
source: ge(
|
|
633
|
-
paint: Oe(
|
|
634
|
-
minzoom:
|
|
635
|
-
maxzoom:
|
|
629
|
+
(f(!0), m(ie, null, se(R.value, (s) => (f(), te(O(ct), {
|
|
630
|
+
id: s.id + "-outline",
|
|
631
|
+
key: s.id + "-outline",
|
|
632
|
+
source: ge(s),
|
|
633
|
+
paint: Oe(s),
|
|
634
|
+
minzoom: s.minZoom,
|
|
635
|
+
maxzoom: s.maxZoom,
|
|
636
636
|
"before-id": "highlight-lines",
|
|
637
637
|
onClick: re
|
|
638
638
|
}, null, 8, ["id", "source", "paint", "minzoom", "maxzoom"]))), 128)),
|
|
639
|
-
(f(!0),
|
|
640
|
-
id:
|
|
641
|
-
key:
|
|
642
|
-
source: ge(
|
|
643
|
-
paint: _e(
|
|
644
|
-
minzoom:
|
|
645
|
-
maxzoom:
|
|
639
|
+
(f(!0), m(ie, null, se(Z.value, (s) => (f(), te(O(ct), {
|
|
640
|
+
id: s.id,
|
|
641
|
+
key: s.id,
|
|
642
|
+
source: ge(s),
|
|
643
|
+
paint: _e(s),
|
|
644
|
+
minzoom: s.minZoom,
|
|
645
|
+
maxzoom: s.maxZoom,
|
|
646
646
|
"before-id": "highlight-lines",
|
|
647
647
|
onClick: re
|
|
648
648
|
}, null, 8, ["id", "source", "paint", "minzoom", "maxzoom"]))), 128)),
|
|
@@ -754,7 +754,7 @@ const jt = { class: "map-panel" }, qt = /* @__PURE__ */ $e({
|
|
|
754
754
|
}, 16)
|
|
755
755
|
]),
|
|
756
756
|
_: 3
|
|
757
|
-
}, 16)) : (f(),
|
|
757
|
+
}, 16)) : (f(), m("button", dt({
|
|
758
758
|
key: 1,
|
|
759
759
|
type: "button",
|
|
760
760
|
disabled: i.disabled,
|
|
@@ -804,7 +804,7 @@ const eo = ["for"], to = { class: "state-layer" }, oo = { class: "content" }, ao
|
|
|
804
804
|
},
|
|
805
805
|
emits: ["update:modelValue"],
|
|
806
806
|
setup(t, { emit: i }) {
|
|
807
|
-
const a = Ot(), o = t, l = z(() => typeof o.error == "string" ? o.error : o.error[0]), n = zt(o, "id"), y = i, $ = k(""),
|
|
807
|
+
const a = Ot(), o = t, l = z(() => typeof o.error == "string" ? o.error : o.error[0]), n = zt(o, "id"), y = i, $ = k(""), g = z({
|
|
808
808
|
get: () => o.modelValue !== void 0 ? o.modelValue : $.value,
|
|
809
809
|
set: (p) => {
|
|
810
810
|
y("update:modelValue", p), $.value = p;
|
|
@@ -814,17 +814,17 @@ const eo = ["for"], to = { class: "state-layer" }, oo = { class: "content" }, ao
|
|
|
814
814
|
return a.disabled != null && p.push("phila-input--disabled"), l.value && p.push("phila-input--error"), a.required != null && p.push("phila-input--required"), ft(...p);
|
|
815
815
|
}), L = z(() => {
|
|
816
816
|
const p = [];
|
|
817
|
-
return
|
|
817
|
+
return g.value !== "" && p.push("phila-text-field--filled"), o.className && p.push(o.className), ft(...p);
|
|
818
818
|
}), S = z(() => {
|
|
819
819
|
if (!(o.label || a["aria-label"]))
|
|
820
820
|
return o.placeholder || void 0;
|
|
821
|
-
}),
|
|
822
|
-
p.target.closest("button") ||
|
|
821
|
+
}), r = k(null), C = (p) => {
|
|
822
|
+
p.target.closest("button") || r.value?.focus();
|
|
823
823
|
};
|
|
824
|
-
return (p,
|
|
824
|
+
return (p, h) => (f(), m("div", {
|
|
825
825
|
class: ne(["phila-input", M.value])
|
|
826
826
|
}, [
|
|
827
|
-
o.label ? (f(),
|
|
827
|
+
o.label ? (f(), m("label", {
|
|
828
828
|
key: 0,
|
|
829
829
|
for: n.value,
|
|
830
830
|
class: "has-text-label-small phila-label"
|
|
@@ -845,23 +845,23 @@ const eo = ["for"], to = { class: "state-layer" }, oo = { class: "content" }, ao
|
|
|
845
845
|
Mt(P("input", dt({
|
|
846
846
|
id: n.value,
|
|
847
847
|
ref_key: "inputRef",
|
|
848
|
-
ref:
|
|
849
|
-
"onUpdate:modelValue":
|
|
848
|
+
ref: r,
|
|
849
|
+
"onUpdate:modelValue": h[0] || (h[0] = (u) => g.value = u),
|
|
850
850
|
class: "phila-text-field-input has-text-body-default",
|
|
851
851
|
placeholder: o.placeholder,
|
|
852
852
|
"aria-label": S.value
|
|
853
853
|
}, O(a)), null, 16, io), [
|
|
854
|
-
[It,
|
|
854
|
+
[It, g.value]
|
|
855
855
|
])
|
|
856
856
|
])
|
|
857
857
|
]),
|
|
858
|
-
|
|
858
|
+
g.value != "" ? (f(), te(O(Jt), {
|
|
859
859
|
key: 1,
|
|
860
860
|
variant: "standard",
|
|
861
861
|
size: "small",
|
|
862
862
|
"icon-only": "",
|
|
863
863
|
"icon-definition": O(Yt),
|
|
864
|
-
onClick:
|
|
864
|
+
onClick: h[1] || (h[1] = (u) => g.value = "")
|
|
865
865
|
}, null, 8, ["icon-definition"])) : E("", !0),
|
|
866
866
|
o.trailingIcon ? (f(), te(O(be), {
|
|
867
867
|
key: 2,
|
|
@@ -873,8 +873,8 @@ const eo = ["for"], to = { class: "state-layer" }, oo = { class: "content" }, ao
|
|
|
873
873
|
fe(p.$slots, "trailing-action")
|
|
874
874
|
])
|
|
875
875
|
], 2),
|
|
876
|
-
o.supportingText ? (f(),
|
|
877
|
-
l.value ? (f(),
|
|
876
|
+
o.supportingText ? (f(), m("div", no, N(o.supportingText), 1)) : E("", !0),
|
|
877
|
+
l.value ? (f(), m("div", lo, [
|
|
878
878
|
Q(O(be), {
|
|
879
879
|
"icon-definition": O(Qt),
|
|
880
880
|
size: "small",
|
|
@@ -955,50 +955,50 @@ const yo = { class: "layer-panel" }, go = {
|
|
|
955
955
|
const a = t, o = i, l = z(() => {
|
|
956
956
|
if (!a.searchQuery.trim())
|
|
957
957
|
return a.layerList;
|
|
958
|
-
const
|
|
959
|
-
return a.layerList.filter((
|
|
958
|
+
const u = a.searchQuery.toLowerCase();
|
|
959
|
+
return a.layerList.filter((c) => c.config.title.toLowerCase().includes(u));
|
|
960
960
|
});
|
|
961
|
-
function n(
|
|
962
|
-
let
|
|
963
|
-
return
|
|
961
|
+
function n(u) {
|
|
962
|
+
let c = u.split("?")[0] || u;
|
|
963
|
+
return c = c.replace(/\/query$/, ""), c = c.replace(/\/$/, ""), c.toLowerCase();
|
|
964
964
|
}
|
|
965
|
-
function y(
|
|
966
|
-
const
|
|
967
|
-
return a.layerMetadata[
|
|
965
|
+
function y(u) {
|
|
966
|
+
const c = n(u);
|
|
967
|
+
return a.layerMetadata[c] || null;
|
|
968
968
|
}
|
|
969
|
-
const $ = z(() => a.layerList.some((
|
|
970
|
-
function
|
|
971
|
-
return a.visibleLayers.has(
|
|
969
|
+
const $ = z(() => a.layerList.some((u) => y(u.config.url)));
|
|
970
|
+
function g(u) {
|
|
971
|
+
return a.visibleLayers.has(u);
|
|
972
972
|
}
|
|
973
|
-
function M(
|
|
974
|
-
return a.layerOpacities[
|
|
973
|
+
function M(u) {
|
|
974
|
+
return a.layerOpacities[u] ?? 1;
|
|
975
975
|
}
|
|
976
|
-
function L(
|
|
977
|
-
return a.loadingLayers.has(
|
|
976
|
+
function L(u) {
|
|
977
|
+
return a.loadingLayers.has(u);
|
|
978
978
|
}
|
|
979
|
-
function S(
|
|
980
|
-
return a.layerErrors[
|
|
979
|
+
function S(u) {
|
|
980
|
+
return a.layerErrors[u] || null;
|
|
981
981
|
}
|
|
982
|
-
function
|
|
983
|
-
const
|
|
984
|
-
return !(
|
|
982
|
+
function r(u) {
|
|
983
|
+
const c = a.currentZoom, v = u.minZoom, I = u.maxZoom;
|
|
984
|
+
return !(v !== void 0 && c < v || I !== void 0 && c > I);
|
|
985
985
|
}
|
|
986
986
|
const C = z({
|
|
987
987
|
get: () => a.searchQuery,
|
|
988
|
-
set: (
|
|
988
|
+
set: (u) => o("updateSearch", u)
|
|
989
989
|
});
|
|
990
|
-
function p(
|
|
991
|
-
o("toggleLayer",
|
|
990
|
+
function p(u) {
|
|
991
|
+
o("toggleLayer", u);
|
|
992
992
|
}
|
|
993
|
-
function
|
|
994
|
-
const
|
|
995
|
-
o("setOpacity",
|
|
993
|
+
function h(u, c) {
|
|
994
|
+
const v = c.target, I = parseFloat(v.value);
|
|
995
|
+
o("setOpacity", u, I);
|
|
996
996
|
}
|
|
997
|
-
return (
|
|
998
|
-
t.showSearch ? (f(),
|
|
997
|
+
return (u, c) => (f(), m("div", yo, [
|
|
998
|
+
t.showSearch ? (f(), m("div", go, [
|
|
999
999
|
Q(O(ro), {
|
|
1000
1000
|
modelValue: C.value,
|
|
1001
|
-
"onUpdate:modelValue":
|
|
1001
|
+
"onUpdate:modelValue": c[0] || (c[0] = (v) => C.value = v),
|
|
1002
1002
|
placeholder: t.searchPlaceholder,
|
|
1003
1003
|
"class-name": "layer-search-field"
|
|
1004
1004
|
}, {
|
|
@@ -1013,27 +1013,27 @@ const yo = { class: "layer-panel" }, go = {
|
|
|
1013
1013
|
_: 1
|
|
1014
1014
|
}, 8, ["modelValue", "placeholder"])
|
|
1015
1015
|
])) : E("", !0),
|
|
1016
|
-
t.mode === "topics" ? (f(),
|
|
1017
|
-
fe(
|
|
1018
|
-
|
|
1016
|
+
t.mode === "topics" ? (f(), m("div", ho, [
|
|
1017
|
+
fe(u.$slots, "topics", {}, () => [
|
|
1018
|
+
c[2] || (c[2] = P("div", { class: "no-topics" }, ' No topic components provided. Use the "topics" slot to add TopicAccordion components. ', -1))
|
|
1019
1019
|
], !0)
|
|
1020
|
-
])) : (f(),
|
|
1020
|
+
])) : (f(), m("div", {
|
|
1021
1021
|
key: 2,
|
|
1022
1022
|
class: ne(["layer-list", { "has-metadata": $.value }])
|
|
1023
1023
|
}, [
|
|
1024
|
-
(f(!0),
|
|
1025
|
-
key:
|
|
1024
|
+
(f(!0), m(ie, null, se(l.value, (v) => (f(), m("div", {
|
|
1025
|
+
key: v.config.id,
|
|
1026
1026
|
class: "layer-item"
|
|
1027
1027
|
}, [
|
|
1028
1028
|
P("div", mo, [
|
|
1029
|
-
y(
|
|
1029
|
+
y(v.config.url) ? (f(), m("a", {
|
|
1030
1030
|
key: 0,
|
|
1031
|
-
href: y(
|
|
1031
|
+
href: y(v.config.url) || "",
|
|
1032
1032
|
target: "_blank",
|
|
1033
1033
|
rel: "noopener noreferrer",
|
|
1034
1034
|
class: "metadata-link",
|
|
1035
|
-
"aria-label": "View metadata for " +
|
|
1036
|
-
onClick:
|
|
1035
|
+
"aria-label": "View metadata for " + v.config.title,
|
|
1036
|
+
onClick: c[1] || (c[1] = Rt(() => {
|
|
1037
1037
|
}, ["stop"]))
|
|
1038
1038
|
}, [
|
|
1039
1039
|
Q(O(be), {
|
|
@@ -1042,64 +1042,64 @@ const yo = { class: "layer-panel" }, go = {
|
|
|
1042
1042
|
inline: "",
|
|
1043
1043
|
decorative: ""
|
|
1044
1044
|
}, null, 8, ["icon-definition"])
|
|
1045
|
-
], 8, vo)) : $.value ? (f(),
|
|
1045
|
+
], 8, vo)) : $.value ? (f(), m("span", bo)) : E("", !0),
|
|
1046
1046
|
P("label", {
|
|
1047
1047
|
class: ne(["layer-checkbox", {
|
|
1048
|
-
"layer-unavailable": !
|
|
1049
|
-
"layer-error": S(
|
|
1048
|
+
"layer-unavailable": !r(v.config),
|
|
1049
|
+
"layer-error": S(v.config.id)
|
|
1050
1050
|
}])
|
|
1051
1051
|
}, [
|
|
1052
1052
|
P("input", {
|
|
1053
1053
|
type: "checkbox",
|
|
1054
|
-
checked:
|
|
1055
|
-
disabled: !
|
|
1056
|
-
onChange: (I) => p(
|
|
1054
|
+
checked: g(v.config.id),
|
|
1055
|
+
disabled: !r(v.config),
|
|
1056
|
+
onChange: (I) => p(v.config.id)
|
|
1057
1057
|
}, null, 40, wo),
|
|
1058
1058
|
P("span", Lo, [
|
|
1059
|
-
Le(N(
|
|
1060
|
-
L(
|
|
1061
|
-
S(
|
|
1059
|
+
Le(N(v.config.title) + " ", 1),
|
|
1060
|
+
L(v.config.id) && r(v.config) ? (f(), m("span", So, " Loading... ")) : E("", !0),
|
|
1061
|
+
S(v.config.id) ? (f(), m("span", {
|
|
1062
1062
|
key: 1,
|
|
1063
1063
|
class: "error-indicator",
|
|
1064
|
-
"aria-label": S(
|
|
1064
|
+
"aria-label": S(v.config.id) || "Error",
|
|
1065
1065
|
role: "status"
|
|
1066
1066
|
}, " Error ", 8, Co)) : E("", !0),
|
|
1067
|
-
|
|
1067
|
+
r(v.config) ? E("", !0) : (f(), m("span", ko, " (zoom in) "))
|
|
1068
1068
|
])
|
|
1069
1069
|
], 2)
|
|
1070
1070
|
]),
|
|
1071
|
-
t.showOpacity &&
|
|
1071
|
+
t.showOpacity && g(v.config.id) && r(v.config) ? (f(), m("div", xo, [
|
|
1072
1072
|
P("label", {
|
|
1073
1073
|
class: "opacity-label",
|
|
1074
|
-
for: "opacity-" +
|
|
1075
|
-
}, " Opacity: " + N(Math.round(M(
|
|
1074
|
+
for: "opacity-" + v.config.id
|
|
1075
|
+
}, " Opacity: " + N(Math.round(M(v.config.id) * 100)) + "% ", 9, $o),
|
|
1076
1076
|
P("input", {
|
|
1077
|
-
id: "opacity-" +
|
|
1077
|
+
id: "opacity-" + v.config.id,
|
|
1078
1078
|
type: "range",
|
|
1079
1079
|
min: "0",
|
|
1080
1080
|
max: "1",
|
|
1081
1081
|
step: "0.05",
|
|
1082
|
-
value: M(
|
|
1083
|
-
"aria-label": "Opacity for " +
|
|
1082
|
+
value: M(v.config.id),
|
|
1083
|
+
"aria-label": "Opacity for " + v.config.title,
|
|
1084
1084
|
class: "opacity-slider",
|
|
1085
|
-
onInput: (I) =>
|
|
1085
|
+
onInput: (I) => h(v.config.id, I)
|
|
1086
1086
|
}, null, 40, _o)
|
|
1087
1087
|
])) : E("", !0),
|
|
1088
|
-
t.showLegend &&
|
|
1088
|
+
t.showLegend && g(v.config.id) && r(v.config) && v.config.legend?.length ? (f(), m("ul", {
|
|
1089
1089
|
key: 1,
|
|
1090
1090
|
class: "layer-legend",
|
|
1091
|
-
"aria-label": "Legend for " +
|
|
1091
|
+
"aria-label": "Legend for " + v.config.title
|
|
1092
1092
|
}, [
|
|
1093
|
-
(f(!0),
|
|
1093
|
+
(f(!0), m(ie, null, se(v.config.legend, (I, F) => (f(), m("li", {
|
|
1094
1094
|
key: F,
|
|
1095
1095
|
class: "legend-item"
|
|
1096
1096
|
}, [
|
|
1097
|
-
I.type === "circle" ? (f(),
|
|
1097
|
+
I.type === "circle" ? (f(), m("span", {
|
|
1098
1098
|
key: 0,
|
|
1099
1099
|
class: "legend-symbol legend-circle",
|
|
1100
1100
|
style: J({ backgroundColor: I.color }),
|
|
1101
1101
|
"aria-hidden": "true"
|
|
1102
|
-
}, null, 4)) : I.type === "line" ? (f(),
|
|
1102
|
+
}, null, 4)) : I.type === "line" ? (f(), m("span", {
|
|
1103
1103
|
key: 1,
|
|
1104
1104
|
class: "legend-symbol legend-line",
|
|
1105
1105
|
style: J({
|
|
@@ -1107,7 +1107,7 @@ const yo = { class: "layer-panel" }, go = {
|
|
|
1107
1107
|
height: `${I.width || 2}px`
|
|
1108
1108
|
}),
|
|
1109
1109
|
"aria-hidden": "true"
|
|
1110
|
-
}, null, 4)) : I.type === "fill" ? (f(),
|
|
1110
|
+
}, null, 4)) : I.type === "fill" ? (f(), m("span", {
|
|
1111
1111
|
key: 2,
|
|
1112
1112
|
class: "legend-symbol legend-fill",
|
|
1113
1113
|
style: J({ backgroundColor: I.color }),
|
|
@@ -1117,11 +1117,11 @@ const yo = { class: "layer-panel" }, go = {
|
|
|
1117
1117
|
]))), 128))
|
|
1118
1118
|
], 8, Po)) : E("", !0)
|
|
1119
1119
|
]))), 128)),
|
|
1120
|
-
l.value.length === 0 ? (f(),
|
|
1120
|
+
l.value.length === 0 ? (f(), m("div", To, 'No layers match "' + N(t.searchQuery) + '"', 1)) : E("", !0)
|
|
1121
1121
|
], 2))
|
|
1122
1122
|
]));
|
|
1123
1123
|
}
|
|
1124
|
-
}), Eo = /* @__PURE__ */ De(Fo, [["__scopeId", "data-v-
|
|
1124
|
+
}), Eo = /* @__PURE__ */ De(Fo, [["__scopeId", "data-v-79d2401f"]]);
|
|
1125
1125
|
function D(t) {
|
|
1126
1126
|
if (!t || !Array.isArray(t) || t.length < 3) return "#888888";
|
|
1127
1127
|
const i = t[0], a = t[1], o = t[2], n = (t[3] ?? 255) / 255;
|
|
@@ -1173,7 +1173,7 @@ function Tt(t, i, a) {
|
|
|
1173
1173
|
const o = t.symbol, l = et(o);
|
|
1174
1174
|
let n = {}, y = [], $ = null;
|
|
1175
1175
|
if (l === "fill" && o) {
|
|
1176
|
-
const
|
|
1176
|
+
const g = o.color === null ? 0 : o.color?.[3] ?? 255, M = g === 0 ? "rgba(0, 0, 0, 0)" : D(o.color), L = g === 0 ? 0 : g < 255 ? 1 : we(i);
|
|
1177
1177
|
if (n = {
|
|
1178
1178
|
"fill-color": M,
|
|
1179
1179
|
"fill-opacity": L
|
|
@@ -1205,10 +1205,10 @@ function Tt(t, i, a) {
|
|
|
1205
1205
|
}
|
|
1206
1206
|
];
|
|
1207
1207
|
else if (l === "circle" && o) {
|
|
1208
|
-
const
|
|
1208
|
+
const g = Math.round((o.size || 6) * 0.71 * 100) / 100;
|
|
1209
1209
|
n = {
|
|
1210
1210
|
"circle-color": D(o.color),
|
|
1211
|
-
"circle-radius":
|
|
1211
|
+
"circle-radius": g,
|
|
1212
1212
|
"circle-opacity": we(i)
|
|
1213
1213
|
}, xe(o.outline) && (n["circle-stroke-color"] = D(o.outline.color), n["circle-stroke-width"] = o.outline.width || 1), y = [
|
|
1214
1214
|
{
|
|
@@ -1225,43 +1225,43 @@ function Io(t, i, a) {
|
|
|
1225
1225
|
if (l.length === 0)
|
|
1226
1226
|
return Tt({ ...t, symbol: n }, i);
|
|
1227
1227
|
const y = l[0]?.symbol || n, $ = et(y);
|
|
1228
|
-
let
|
|
1228
|
+
let g = {};
|
|
1229
1229
|
const M = [];
|
|
1230
1230
|
let L = null;
|
|
1231
1231
|
if ($ === "fill") {
|
|
1232
1232
|
const S = ["match", ["to-string", ["get", o]]];
|
|
1233
|
-
for (const
|
|
1234
|
-
S.push(ut(
|
|
1235
|
-
const C = String(
|
|
1233
|
+
for (const r of l) {
|
|
1234
|
+
S.push(ut(r.value)), S.push(D(r.symbol?.color));
|
|
1235
|
+
const C = String(r.value), h = a?.get(C) || r.label || C;
|
|
1236
1236
|
M.push({
|
|
1237
1237
|
type: "fill",
|
|
1238
|
-
color: D(
|
|
1239
|
-
label:
|
|
1238
|
+
color: D(r.symbol?.color),
|
|
1239
|
+
label: h
|
|
1240
1240
|
});
|
|
1241
1241
|
}
|
|
1242
|
-
if (S.push(n ? D(n.color) : "rgba(0, 0, 0, 0)"),
|
|
1242
|
+
if (S.push(n ? D(n.color) : "rgba(0, 0, 0, 0)"), g = {
|
|
1243
1243
|
"fill-color": S,
|
|
1244
1244
|
"fill-opacity": we(i)
|
|
1245
1245
|
}, xe(y?.outline)) {
|
|
1246
|
-
const
|
|
1246
|
+
const r = Math.max(y.outline.width || 1, 1);
|
|
1247
1247
|
L = {
|
|
1248
1248
|
"line-color": D(y.outline.color),
|
|
1249
|
-
"line-width":
|
|
1249
|
+
"line-width": r
|
|
1250
1250
|
};
|
|
1251
1251
|
}
|
|
1252
1252
|
} else if ($ === "line") {
|
|
1253
1253
|
const S = ["match", ["to-string", ["get", o]]];
|
|
1254
|
-
for (const
|
|
1255
|
-
S.push(ut(
|
|
1256
|
-
const C = String(
|
|
1254
|
+
for (const r of l) {
|
|
1255
|
+
S.push(ut(r.value)), S.push(D(r.symbol?.color));
|
|
1256
|
+
const C = String(r.value), h = a?.get(C) || r.label || C;
|
|
1257
1257
|
M.push({
|
|
1258
1258
|
type: "line",
|
|
1259
|
-
color: D(
|
|
1260
|
-
width:
|
|
1261
|
-
label:
|
|
1259
|
+
color: D(r.symbol?.color),
|
|
1260
|
+
width: r.symbol?.width || 1,
|
|
1261
|
+
label: h
|
|
1262
1262
|
});
|
|
1263
1263
|
}
|
|
1264
|
-
S.push(n ? D(n.color) : "rgba(0, 0, 0, 0)"),
|
|
1264
|
+
S.push(n ? D(n.color) : "rgba(0, 0, 0, 0)"), g = {
|
|
1265
1265
|
"line-color": S,
|
|
1266
1266
|
"line-width": y?.width || 2,
|
|
1267
1267
|
"line-opacity": we(i)
|
|
@@ -1270,22 +1270,22 @@ function Io(t, i, a) {
|
|
|
1270
1270
|
const S = ["match", ["to-string", ["get", o]]];
|
|
1271
1271
|
for (const C of l) {
|
|
1272
1272
|
S.push(ut(C.value)), S.push(D(C.symbol?.color));
|
|
1273
|
-
const p = String(C.value),
|
|
1273
|
+
const p = String(C.value), u = a?.get(p) || C.label || p;
|
|
1274
1274
|
M.push({
|
|
1275
1275
|
type: "circle",
|
|
1276
1276
|
color: D(C.symbol?.color),
|
|
1277
|
-
label:
|
|
1277
|
+
label: u
|
|
1278
1278
|
});
|
|
1279
1279
|
}
|
|
1280
1280
|
S.push(n ? D(n.color) : "rgba(0, 0, 0, 0)");
|
|
1281
|
-
const
|
|
1282
|
-
|
|
1281
|
+
const r = Math.round((y?.size || 6) * 0.71 * 100) / 100;
|
|
1282
|
+
g = {
|
|
1283
1283
|
"circle-color": S,
|
|
1284
|
-
"circle-radius":
|
|
1284
|
+
"circle-radius": r,
|
|
1285
1285
|
"circle-opacity": we(i)
|
|
1286
|
-
}, xe(y?.outline) && (
|
|
1286
|
+
}, xe(y?.outline) && (g["circle-stroke-color"] = D(y.outline.color), g["circle-stroke-width"] = y.outline.width || 1);
|
|
1287
1287
|
}
|
|
1288
|
-
return { paint:
|
|
1288
|
+
return { paint: g, legend: M, geomType: $, outlinePaint: L };
|
|
1289
1289
|
}
|
|
1290
1290
|
function Ro(t, i) {
|
|
1291
1291
|
const a = t.field.toLowerCase(), o = t.classBreakInfos || [], l = t.visualVariables?.find((L) => L.type === "colorInfo");
|
|
@@ -1295,17 +1295,17 @@ function Ro(t, i) {
|
|
|
1295
1295
|
return { paint: {}, legend: [], geomType: "fill", outlinePaint: null };
|
|
1296
1296
|
const n = o[0]?.symbol, y = et(n);
|
|
1297
1297
|
let $ = {};
|
|
1298
|
-
const
|
|
1298
|
+
const g = [];
|
|
1299
1299
|
let M = null;
|
|
1300
1300
|
if (y === "fill") {
|
|
1301
1301
|
const L = ["step", ["get", a]];
|
|
1302
1302
|
L.push(D(o[0]?.symbol?.color));
|
|
1303
1303
|
for (let S = 0; S < o.length; S++) {
|
|
1304
|
-
const
|
|
1305
|
-
S > 0 && (L.push(o[S - 1].classMaxValue), L.push(D(
|
|
1304
|
+
const r = o[S];
|
|
1305
|
+
S > 0 && (L.push(o[S - 1].classMaxValue), L.push(D(r.symbol?.color))), g.push({
|
|
1306
1306
|
type: "fill",
|
|
1307
|
-
color: D(
|
|
1308
|
-
label:
|
|
1307
|
+
color: D(r.symbol?.color),
|
|
1308
|
+
label: r.label || `${r.classMaxValue}`
|
|
1309
1309
|
});
|
|
1310
1310
|
}
|
|
1311
1311
|
if ($ = {
|
|
@@ -1324,21 +1324,21 @@ function Ro(t, i) {
|
|
|
1324
1324
|
let S = t.minValue ?? 0;
|
|
1325
1325
|
for (let C = 0; C < o.length; C++) {
|
|
1326
1326
|
const p = o[C];
|
|
1327
|
-
C > 0 && (L.push(o[C - 1].classMaxValue), L.push(D(p.symbol?.color))),
|
|
1327
|
+
C > 0 && (L.push(o[C - 1].classMaxValue), L.push(D(p.symbol?.color))), g.push({
|
|
1328
1328
|
type: "line",
|
|
1329
1329
|
color: D(p.symbol?.color),
|
|
1330
1330
|
width: p.symbol?.width || n?.width || 2,
|
|
1331
1331
|
label: p.label || `${S} - ${p.classMaxValue}`
|
|
1332
1332
|
}), S = p.classMaxValue + 1;
|
|
1333
1333
|
}
|
|
1334
|
-
const
|
|
1334
|
+
const r = n?.width || 2;
|
|
1335
1335
|
$ = {
|
|
1336
1336
|
"line-color": L,
|
|
1337
|
-
"line-width":
|
|
1337
|
+
"line-width": r,
|
|
1338
1338
|
"line-opacity": we(i)
|
|
1339
1339
|
};
|
|
1340
1340
|
}
|
|
1341
|
-
return { paint: $, legend:
|
|
1341
|
+
return { paint: $, legend: g, geomType: y, outlinePaint: M };
|
|
1342
1342
|
}
|
|
1343
1343
|
function Do(t, i, a, o) {
|
|
1344
1344
|
const l = t.stops || [];
|
|
@@ -1346,15 +1346,15 @@ function Do(t, i, a, o) {
|
|
|
1346
1346
|
return { paint: {}, legend: [], geomType: "fill", outlinePaint: null };
|
|
1347
1347
|
const n = a.classBreakInfos?.[0]?.symbol || a.defaultSymbol, y = et(n);
|
|
1348
1348
|
let $ = {};
|
|
1349
|
-
const
|
|
1349
|
+
const g = [];
|
|
1350
1350
|
let M = null;
|
|
1351
1351
|
if (y === "fill") {
|
|
1352
1352
|
const L = ["interpolate", ["linear"], ["get", i]];
|
|
1353
|
-
for (const
|
|
1354
|
-
L.push(
|
|
1353
|
+
for (const r of l)
|
|
1354
|
+
L.push(r.value), L.push(D(r.color)), g.push({
|
|
1355
1355
|
type: "fill",
|
|
1356
|
-
color: D(
|
|
1357
|
-
label:
|
|
1356
|
+
color: D(r.color),
|
|
1357
|
+
label: r.label || `${r.value}`
|
|
1358
1358
|
});
|
|
1359
1359
|
if ($ = {
|
|
1360
1360
|
"fill-color": [
|
|
@@ -1367,14 +1367,14 @@ function Do(t, i, a, o) {
|
|
|
1367
1367
|
],
|
|
1368
1368
|
"fill-opacity": we(o)
|
|
1369
1369
|
}, xe(n?.outline)) {
|
|
1370
|
-
const
|
|
1370
|
+
const r = n.outline.width || 1;
|
|
1371
1371
|
M = {
|
|
1372
1372
|
"line-color": D(n.outline.color),
|
|
1373
|
-
"line-width":
|
|
1373
|
+
"line-width": r
|
|
1374
1374
|
};
|
|
1375
1375
|
}
|
|
1376
1376
|
}
|
|
1377
|
-
return { paint: $, legend:
|
|
1377
|
+
return { paint: $, legend: g, geomType: y, outlinePaint: M };
|
|
1378
1378
|
}
|
|
1379
1379
|
function Zo(t, i, a, o) {
|
|
1380
1380
|
if (!t?.renderer)
|
|
@@ -1449,8 +1449,8 @@ async function Ft(t) {
|
|
|
1449
1449
|
if (l.url && !l.title?.toLowerCase().includes("(under construction)"))
|
|
1450
1450
|
try {
|
|
1451
1451
|
let n = l.layerDefinition?.drawingInfo, y;
|
|
1452
|
-
const $ = !n || !n.renderer,
|
|
1453
|
-
if (($ ||
|
|
1452
|
+
const $ = !n || !n.renderer, g = o.includes(l.title), M = n?.renderer?.uniqueValueInfos?.[0]?.symbol?.outline || n?.renderer?.defaultSymbol?.outline;
|
|
1453
|
+
if (($ || g) && l.url) {
|
|
1454
1454
|
const R = await Wo(l.url);
|
|
1455
1455
|
if (R) {
|
|
1456
1456
|
if (n = R.drawingInfo, M && xe(M) && n?.renderer) {
|
|
@@ -1464,22 +1464,22 @@ async function Ft(t) {
|
|
|
1464
1464
|
R.description && (y = Uo(R.description), y.size > 0);
|
|
1465
1465
|
}
|
|
1466
1466
|
}
|
|
1467
|
-
const { paint: L, legend: S, geomType:
|
|
1467
|
+
const { paint: L, legend: S, geomType: r, outlinePaint: C } = Zo(
|
|
1468
1468
|
n,
|
|
1469
1469
|
l.opacity,
|
|
1470
1470
|
y,
|
|
1471
1471
|
l.title
|
|
1472
|
-
), p = Bo(l.popupInfo),
|
|
1473
|
-
id:
|
|
1474
|
-
title:
|
|
1475
|
-
type:
|
|
1472
|
+
), p = Bo(l.popupInfo), h = Ao(l.layerDefinition), u = zo(l.layerDefinition?.minScale, l.layerDefinition?.maxScale), c = No(l.title), v = Vo(l.title), I = l.opacity ?? 1, F = {
|
|
1473
|
+
id: c,
|
|
1474
|
+
title: v,
|
|
1475
|
+
type: r,
|
|
1476
1476
|
url: l.url,
|
|
1477
1477
|
opacity: I,
|
|
1478
1478
|
paint: L,
|
|
1479
1479
|
legend: S,
|
|
1480
1480
|
popup: p
|
|
1481
1481
|
};
|
|
1482
|
-
|
|
1482
|
+
h && (F.where = h), u.minZoom !== void 0 && (F.minZoom = u.minZoom), u.maxZoom !== void 0 && (F.maxZoom = u.maxZoom), C && (F.outlinePaint = C), a.push(F);
|
|
1483
1483
|
} catch {
|
|
1484
1484
|
}
|
|
1485
1485
|
return a.sort((l, n) => l.title.localeCompare(n.title)), a;
|
|
@@ -1561,15 +1561,15 @@ async function pt(t = yt) {
|
|
|
1561
1561
|
}
|
|
1562
1562
|
function Jo(t) {
|
|
1563
1563
|
const i = k({}), a = /* @__PURE__ */ new Map();
|
|
1564
|
-
for (const
|
|
1565
|
-
i.value[
|
|
1564
|
+
for (const r of t)
|
|
1565
|
+
i.value[r.id] = {
|
|
1566
1566
|
data: null,
|
|
1567
1567
|
loading: !1,
|
|
1568
1568
|
error: null,
|
|
1569
1569
|
lastFetched: null
|
|
1570
1570
|
};
|
|
1571
|
-
async function o(
|
|
1572
|
-
const C =
|
|
1571
|
+
async function o(r) {
|
|
1572
|
+
const C = r.id;
|
|
1573
1573
|
i.value = {
|
|
1574
1574
|
...i.value,
|
|
1575
1575
|
[C]: {
|
|
@@ -1581,30 +1581,30 @@ function Jo(t) {
|
|
|
1581
1581
|
};
|
|
1582
1582
|
try {
|
|
1583
1583
|
let p;
|
|
1584
|
-
if (
|
|
1585
|
-
const
|
|
1584
|
+
if (r.type === "http-get") {
|
|
1585
|
+
const h = await fetch(r.url, {
|
|
1586
1586
|
method: "GET",
|
|
1587
|
-
...
|
|
1587
|
+
...r.options
|
|
1588
1588
|
});
|
|
1589
|
-
if (!
|
|
1590
|
-
throw new Error(`HTTP ${
|
|
1591
|
-
p = await
|
|
1592
|
-
} else if (
|
|
1593
|
-
const
|
|
1589
|
+
if (!h.ok)
|
|
1590
|
+
throw new Error(`HTTP ${h.status}: ${h.statusText}`);
|
|
1591
|
+
p = await h.json();
|
|
1592
|
+
} else if (r.type === "http-post") {
|
|
1593
|
+
const h = await fetch(r.url, {
|
|
1594
1594
|
method: "POST",
|
|
1595
|
-
...
|
|
1595
|
+
...r.options
|
|
1596
1596
|
});
|
|
1597
|
-
if (!
|
|
1598
|
-
throw new Error(`HTTP ${
|
|
1599
|
-
p = await
|
|
1600
|
-
} else if (
|
|
1601
|
-
const
|
|
1602
|
-
if (!
|
|
1603
|
-
throw new Error(`HTTP ${
|
|
1604
|
-
p = (await
|
|
1597
|
+
if (!h.ok)
|
|
1598
|
+
throw new Error(`HTTP ${h.status}: ${h.statusText}`);
|
|
1599
|
+
p = await h.json();
|
|
1600
|
+
} else if (r.type === "esri") {
|
|
1601
|
+
const u = `${r.url.replace(/\/$/, "")}/query?where=1%3D1&outFields=*&returnGeometry=false&f=json`, c = await fetch(u, r.options);
|
|
1602
|
+
if (!c.ok)
|
|
1603
|
+
throw new Error(`HTTP ${c.status}: ${c.statusText}`);
|
|
1604
|
+
p = (await c.json()).features?.map((I) => I.attributes) || [];
|
|
1605
1605
|
} else
|
|
1606
|
-
throw new Error(`Unknown data source type: ${
|
|
1607
|
-
|
|
1606
|
+
throw new Error(`Unknown data source type: ${r.type}`);
|
|
1607
|
+
r.transform && (p = r.transform(p)), i.value = {
|
|
1608
1608
|
...i.value,
|
|
1609
1609
|
[C]: {
|
|
1610
1610
|
data: p,
|
|
@@ -1614,47 +1614,47 @@ function Jo(t) {
|
|
|
1614
1614
|
}
|
|
1615
1615
|
};
|
|
1616
1616
|
} catch (p) {
|
|
1617
|
-
const
|
|
1617
|
+
const h = p instanceof Error ? p.message : "Unknown error";
|
|
1618
1618
|
i.value = {
|
|
1619
1619
|
...i.value,
|
|
1620
1620
|
[C]: {
|
|
1621
1621
|
data: i.value[C]?.data ?? null,
|
|
1622
1622
|
lastFetched: i.value[C]?.lastFetched ?? null,
|
|
1623
1623
|
loading: !1,
|
|
1624
|
-
error:
|
|
1624
|
+
error: h
|
|
1625
1625
|
}
|
|
1626
1626
|
};
|
|
1627
1627
|
}
|
|
1628
1628
|
}
|
|
1629
1629
|
async function l() {
|
|
1630
|
-
await Promise.all(t.map((
|
|
1630
|
+
await Promise.all(t.map((r) => o(r)));
|
|
1631
1631
|
}
|
|
1632
|
-
async function n(
|
|
1633
|
-
const C = t.find((p) => p.id ===
|
|
1632
|
+
async function n(r) {
|
|
1633
|
+
const C = t.find((p) => p.id === r);
|
|
1634
1634
|
C && await o(C);
|
|
1635
1635
|
}
|
|
1636
|
-
function y(
|
|
1637
|
-
return i.value[
|
|
1636
|
+
function y(r) {
|
|
1637
|
+
return i.value[r]?.data ?? null;
|
|
1638
1638
|
}
|
|
1639
|
-
const $ = z(() => Object.values(i.value).some((
|
|
1640
|
-
function
|
|
1641
|
-
return i.value[
|
|
1639
|
+
const $ = z(() => Object.values(i.value).some((r) => r.loading));
|
|
1640
|
+
function g(r) {
|
|
1641
|
+
return i.value[r]?.loading ?? !1;
|
|
1642
1642
|
}
|
|
1643
|
-
function M(
|
|
1644
|
-
return i.value[
|
|
1643
|
+
function M(r) {
|
|
1644
|
+
return i.value[r]?.error ?? null;
|
|
1645
1645
|
}
|
|
1646
1646
|
function L() {
|
|
1647
|
-
for (const
|
|
1648
|
-
if (
|
|
1647
|
+
for (const r of t)
|
|
1648
|
+
if (r.pollInterval && r.pollInterval > 0) {
|
|
1649
1649
|
const C = window.setInterval(() => {
|
|
1650
|
-
o(
|
|
1651
|
-
},
|
|
1652
|
-
a.set(
|
|
1650
|
+
o(r);
|
|
1651
|
+
}, r.pollInterval);
|
|
1652
|
+
a.set(r.id, C);
|
|
1653
1653
|
}
|
|
1654
1654
|
}
|
|
1655
1655
|
function S() {
|
|
1656
|
-
for (const [,
|
|
1657
|
-
window.clearInterval(
|
|
1656
|
+
for (const [, r] of a)
|
|
1657
|
+
window.clearInterval(r);
|
|
1658
1658
|
a.clear();
|
|
1659
1659
|
}
|
|
1660
1660
|
return Xe(() => {
|
|
@@ -1673,7 +1673,7 @@ function Jo(t) {
|
|
|
1673
1673
|
/** Get data for a specific source */
|
|
1674
1674
|
getData: y,
|
|
1675
1675
|
/** Check if a specific source is loading */
|
|
1676
|
-
isSourceLoading:
|
|
1676
|
+
isSourceLoading: g,
|
|
1677
1677
|
/** Get error for a specific source */
|
|
1678
1678
|
getError: M,
|
|
1679
1679
|
/** Stop all polling (useful for cleanup) */
|
|
@@ -1725,30 +1725,30 @@ const Ko = { class: "layerboard-layout" }, Qo = ["aria-expanded"], Xo = {
|
|
|
1725
1725
|
},
|
|
1726
1726
|
emits: ["configs-loaded", "load-error", "zoom"],
|
|
1727
1727
|
setup(t, { expose: i, emit: a }) {
|
|
1728
|
-
const o = t, l = a, n = k([]), y = k(!0), $ = k(null),
|
|
1729
|
-
function
|
|
1730
|
-
const
|
|
1728
|
+
const o = t, l = a, n = k([]), y = k(!0), $ = k(null), g = k(12), M = k(""), L = k(/* @__PURE__ */ new Set()), S = k({}), r = k(/* @__PURE__ */ new Set()), C = k({}), p = k({}), h = k(/* @__PURE__ */ new Set()), u = k({});
|
|
1729
|
+
function c() {
|
|
1730
|
+
const b = {};
|
|
1731
1731
|
for (const x of o.tiledLayers)
|
|
1732
|
-
|
|
1733
|
-
|
|
1732
|
+
b[x.id] = x.opacity ?? 1;
|
|
1733
|
+
u.value = b;
|
|
1734
1734
|
}
|
|
1735
|
-
function b
|
|
1736
|
-
|
|
1735
|
+
function v(b) {
|
|
1736
|
+
h.value.has(b) ? h.value.delete(b) : h.value.add(b), h.value = new Set(h.value);
|
|
1737
1737
|
}
|
|
1738
|
-
function I(
|
|
1739
|
-
x ?
|
|
1738
|
+
function I(b, x) {
|
|
1739
|
+
x ? h.value.add(b) : h.value.delete(b), h.value = new Set(h.value);
|
|
1740
1740
|
}
|
|
1741
|
-
function F(
|
|
1742
|
-
|
|
1741
|
+
function F(b, x) {
|
|
1742
|
+
u.value = { ...u.value, [b]: x };
|
|
1743
1743
|
}
|
|
1744
1744
|
const R = o.dataSources.length > 0 ? Jo(o.dataSources) : null, Z = z(() => R?.state.value ?? {}), pe = z(() => R?.isLoading.value ?? !1);
|
|
1745
|
-
function ye(
|
|
1746
|
-
return R?.getData(
|
|
1745
|
+
function ye(b) {
|
|
1746
|
+
return R?.getData(b) ?? null;
|
|
1747
1747
|
}
|
|
1748
|
-
function Ze(
|
|
1749
|
-
return R?.refetch(
|
|
1748
|
+
function Ze(b) {
|
|
1749
|
+
return R?.refetch(b) ?? Promise.resolve();
|
|
1750
1750
|
}
|
|
1751
|
-
V("layerboard-layers", j(n)), V("layerboard-visible", L), V("layerboard-opacities", S), V("layerboard-loading", j(
|
|
1751
|
+
V("layerboard-layers", j(n)), V("layerboard-visible", L), V("layerboard-opacities", S), V("layerboard-loading", j(r)), V("layerboard-errors", j(C)), V("layerboard-zoom", j(g)), V("layerboard-toggle-layer", ge), V("layerboard-set-layer-visible", Ee), V("layerboard-set-layers-visible", _e), V("layerboard-set-opacity", Oe), V("layerboard-tiled-layers", j(z(() => o.tiledLayers))), V("layerboard-visible-tiled", h), V("layerboard-tiled-opacities", u), V("layerboard-toggle-tiled", v), V("layerboard-set-tiled-opacity", F), V("layerboard-set-tiled-visible", I), V("layerboard-data-sources-state", Z), V("layerboard-data-sources-loading", pe), V("layerboard-get-data-source", ye), V("layerboard-refetch-data-source", Ze);
|
|
1752
1752
|
const tt = z(() => ({
|
|
1753
1753
|
backgroundColor: o.themeColor
|
|
1754
1754
|
})), Be = z(() => ({
|
|
@@ -1785,23 +1785,23 @@ const Ko = { class: "layerboard-layout" }, Qo = ["aria-expanded"], Xo = {
|
|
|
1785
1785
|
x.forEach((W) => {
|
|
1786
1786
|
q[W.id] = W.opacity ?? 1;
|
|
1787
1787
|
}), S.value = q, l("configs-loaded", x);
|
|
1788
|
-
} catch (
|
|
1789
|
-
const x =
|
|
1788
|
+
} catch (b) {
|
|
1789
|
+
const x = b instanceof Error ? b.message : "Failed to load layer configurations";
|
|
1790
1790
|
$.value = x, l("load-error", x);
|
|
1791
1791
|
} finally {
|
|
1792
1792
|
y.value = !1;
|
|
1793
1793
|
}
|
|
1794
1794
|
}
|
|
1795
|
-
function at(
|
|
1796
|
-
let x =
|
|
1795
|
+
function at(b) {
|
|
1796
|
+
let x = b.split("?")[0] || b;
|
|
1797
1797
|
return x = x.replace(/\/query$/, ""), x = x.replace(/\/$/, ""), x.toLowerCase();
|
|
1798
1798
|
}
|
|
1799
1799
|
async function it() {
|
|
1800
1800
|
if (o.fetchMetadata)
|
|
1801
1801
|
try {
|
|
1802
|
-
const
|
|
1802
|
+
const b = "https://phl.carto.com/api/v2/sql?q=" + encodeURIComponent(
|
|
1803
1803
|
"select url_text, COALESCE(representation, '') as representation from phl.knack_metadata_reps_endpoints_join WHERE ( format = 'API' OR format = 'GeoService' ) AND url_text IS NOT null"
|
|
1804
|
-
), x = await fetch(
|
|
1804
|
+
), x = await fetch(b);
|
|
1805
1805
|
if (!x.ok) return;
|
|
1806
1806
|
const q = await x.json(), W = {};
|
|
1807
1807
|
for (const G of q.rows || [])
|
|
@@ -1813,36 +1813,36 @@ const Ko = { class: "layerboard-layout" }, Qo = ["aria-expanded"], Xo = {
|
|
|
1813
1813
|
} catch {
|
|
1814
1814
|
}
|
|
1815
1815
|
}
|
|
1816
|
-
function nt(
|
|
1817
|
-
|
|
1816
|
+
function nt(b) {
|
|
1817
|
+
g.value = b, l("zoom", b);
|
|
1818
1818
|
}
|
|
1819
|
-
function ge(
|
|
1820
|
-
L.value.has(
|
|
1819
|
+
function ge(b) {
|
|
1820
|
+
L.value.has(b) ? L.value.delete(b) : L.value.add(b), L.value = new Set(L.value);
|
|
1821
1821
|
}
|
|
1822
|
-
function Ee(
|
|
1823
|
-
x ? L.value.add(
|
|
1822
|
+
function Ee(b, x) {
|
|
1823
|
+
x ? L.value.add(b) : L.value.delete(b), L.value = new Set(L.value);
|
|
1824
1824
|
}
|
|
1825
|
-
function _e(
|
|
1826
|
-
for (const q of
|
|
1825
|
+
function _e(b, x) {
|
|
1826
|
+
for (const q of b)
|
|
1827
1827
|
x ? L.value.add(q) : L.value.delete(q);
|
|
1828
1828
|
L.value = new Set(L.value);
|
|
1829
1829
|
}
|
|
1830
|
-
function Oe(
|
|
1831
|
-
S.value = { ...S.value, [
|
|
1830
|
+
function Oe(b, x) {
|
|
1831
|
+
S.value = { ...S.value, [b]: x };
|
|
1832
1832
|
}
|
|
1833
|
-
function le(
|
|
1834
|
-
x ?
|
|
1833
|
+
function le(b, x) {
|
|
1834
|
+
x ? r.value.add(b) : r.value.delete(b), r.value = new Set(r.value);
|
|
1835
1835
|
}
|
|
1836
|
-
function ze(
|
|
1836
|
+
function ze(b, x) {
|
|
1837
1837
|
if (x)
|
|
1838
|
-
C.value = { ...C.value, [
|
|
1838
|
+
C.value = { ...C.value, [b]: x };
|
|
1839
1839
|
else {
|
|
1840
1840
|
const q = { ...C.value };
|
|
1841
|
-
delete q[
|
|
1841
|
+
delete q[b], C.value = q;
|
|
1842
1842
|
}
|
|
1843
1843
|
}
|
|
1844
|
-
function oe(
|
|
1845
|
-
M.value =
|
|
1844
|
+
function oe(b) {
|
|
1845
|
+
M.value = b;
|
|
1846
1846
|
}
|
|
1847
1847
|
const Pe = k(null), qe = k(null), Se = k(null), Ge = k(null), Ae = k(null), Ne = k(null), He = k(null), re = k("map");
|
|
1848
1848
|
function Me() {
|
|
@@ -1876,15 +1876,15 @@ const Ko = { class: "layerboard-layout" }, Qo = ["aria-expanded"], Xo = {
|
|
|
1876
1876
|
Ce.value?.focus(), Ce.value = null;
|
|
1877
1877
|
});
|
|
1878
1878
|
}
|
|
1879
|
-
function lt(
|
|
1880
|
-
|
|
1879
|
+
function lt(b) {
|
|
1880
|
+
b.target.classList.contains("layerboard-modal-backdrop") && ae();
|
|
1881
1881
|
}
|
|
1882
|
-
function rt(
|
|
1883
|
-
if (
|
|
1882
|
+
function rt(b) {
|
|
1883
|
+
if (b.key === "Escape") {
|
|
1884
1884
|
Te();
|
|
1885
1885
|
return;
|
|
1886
1886
|
}
|
|
1887
|
-
if (
|
|
1887
|
+
if (b.key === "Tab" && Ae.value) {
|
|
1888
1888
|
const x = Array.from(
|
|
1889
1889
|
Ae.value.querySelectorAll(
|
|
1890
1890
|
'a[href], button:not([disabled]), textarea, input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])'
|
|
@@ -1892,15 +1892,15 @@ const Ko = { class: "layerboard-layout" }, Qo = ["aria-expanded"], Xo = {
|
|
|
1892
1892
|
);
|
|
1893
1893
|
if (x.length === 0) return;
|
|
1894
1894
|
const q = x[0], W = x[x.length - 1];
|
|
1895
|
-
|
|
1895
|
+
b.shiftKey ? document.activeElement === q && (b.preventDefault(), W.focus()) : document.activeElement === W && (b.preventDefault(), q.focus());
|
|
1896
1896
|
}
|
|
1897
1897
|
}
|
|
1898
|
-
function st(
|
|
1899
|
-
if (
|
|
1898
|
+
function st(b) {
|
|
1899
|
+
if (b.key === "Escape") {
|
|
1900
1900
|
ae();
|
|
1901
1901
|
return;
|
|
1902
1902
|
}
|
|
1903
|
-
if (
|
|
1903
|
+
if (b.key === "Tab" && Ne.value) {
|
|
1904
1904
|
const x = Array.from(
|
|
1905
1905
|
Ne.value.querySelectorAll(
|
|
1906
1906
|
'a[href], button:not([disabled]), textarea, input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])'
|
|
@@ -1908,7 +1908,7 @@ const Ko = { class: "layerboard-layout" }, Qo = ["aria-expanded"], Xo = {
|
|
|
1908
1908
|
);
|
|
1909
1909
|
if (x.length === 0) return;
|
|
1910
1910
|
const q = x[0], W = x[x.length - 1];
|
|
1911
|
-
|
|
1911
|
+
b.shiftKey ? document.activeElement === q && (b.preventDefault(), W.focus()) : document.activeElement === W && (b.preventDefault(), q.focus());
|
|
1912
1912
|
}
|
|
1913
1913
|
}
|
|
1914
1914
|
V("layerboard-open-modal", me), V("layerboard-close-modal", ae), V("layerboard-is-modal-open", j(he)), i({
|
|
@@ -1919,11 +1919,11 @@ const Ko = { class: "layerboard-layout" }, Qo = ["aria-expanded"], Xo = {
|
|
|
1919
1919
|
/** Layer opacity values */
|
|
1920
1920
|
layerOpacities: S,
|
|
1921
1921
|
/** Set of currently loading layer IDs */
|
|
1922
|
-
loadingLayers:
|
|
1922
|
+
loadingLayers: r,
|
|
1923
1923
|
/** Map of layer errors by ID */
|
|
1924
1924
|
layerErrors: C,
|
|
1925
1925
|
/** Current map zoom level */
|
|
1926
|
-
currentZoom:
|
|
1926
|
+
currentZoom: g,
|
|
1927
1927
|
/** Toggle a layer's visibility */
|
|
1928
1928
|
toggleLayer: ge,
|
|
1929
1929
|
/** Set a layer's visibility explicitly */
|
|
@@ -1938,11 +1938,11 @@ const Ko = { class: "layerboard-layout" }, Qo = ["aria-expanded"], Xo = {
|
|
|
1938
1938
|
clearCache: () => jo(o.webMapId),
|
|
1939
1939
|
// Tiled layer APIs
|
|
1940
1940
|
/** Set of visible tiled layer IDs */
|
|
1941
|
-
visibleTiledLayers:
|
|
1941
|
+
visibleTiledLayers: h,
|
|
1942
1942
|
/** Tiled layer opacity values */
|
|
1943
|
-
tiledLayerOpacities:
|
|
1943
|
+
tiledLayerOpacities: u,
|
|
1944
1944
|
/** Toggle a tiled layer's visibility */
|
|
1945
|
-
toggleTiledLayer:
|
|
1945
|
+
toggleTiledLayer: v,
|
|
1946
1946
|
/** Set a tiled layer's visibility explicitly */
|
|
1947
1947
|
setTiledLayerVisible: I,
|
|
1948
1948
|
/** Set a tiled layer's opacity */
|
|
@@ -1964,14 +1964,14 @@ const Ko = { class: "layerboard-layout" }, Qo = ["aria-expanded"], Xo = {
|
|
|
1964
1964
|
/** Close the modal */
|
|
1965
1965
|
closeModal: ae
|
|
1966
1966
|
});
|
|
1967
|
-
function ue(
|
|
1968
|
-
|
|
1967
|
+
function ue(b) {
|
|
1968
|
+
b.key === "Escape" && ce.value && Te();
|
|
1969
1969
|
}
|
|
1970
1970
|
return Xe(() => {
|
|
1971
|
-
Fe(), it(),
|
|
1971
|
+
Fe(), it(), c(), document.addEventListener("keydown", ue);
|
|
1972
1972
|
}), Dt(() => {
|
|
1973
1973
|
document.removeEventListener("keydown", ue);
|
|
1974
|
-
}), (
|
|
1974
|
+
}), (b, x) => (f(), m("div", Ko, [
|
|
1975
1975
|
x[5] || (x[5] = P("a", {
|
|
1976
1976
|
href: "#main-content",
|
|
1977
1977
|
class: "skip-to-main-content-link"
|
|
@@ -2008,11 +2008,11 @@ const Ko = { class: "layerboard-layout" }, Qo = ["aria-expanded"], Xo = {
|
|
|
2008
2008
|
decorative: ""
|
|
2009
2009
|
}, null, 8, ["icon-definition"])
|
|
2010
2010
|
], 8, Qo),
|
|
2011
|
-
fe(
|
|
2011
|
+
fe(b.$slots, "header", {}, () => [
|
|
2012
2012
|
P("h1", null, N(t.title), 1),
|
|
2013
|
-
t.subtitle ? (f(),
|
|
2013
|
+
t.subtitle ? (f(), m("span", Xo, N(t.subtitle), 1)) : E("", !0)
|
|
2014
2014
|
], !0),
|
|
2015
|
-
ce.value ? (f(),
|
|
2015
|
+
ce.value ? (f(), m("div", {
|
|
2016
2016
|
key: 0,
|
|
2017
2017
|
ref_key: "mobileMenuRef",
|
|
2018
2018
|
ref: Ae,
|
|
@@ -2024,7 +2024,7 @@ const Ko = { class: "layerboard-layout" }, Qo = ["aria-expanded"], Xo = {
|
|
|
2024
2024
|
onKeydown: rt
|
|
2025
2025
|
}, [
|
|
2026
2026
|
P("div", Yo, [
|
|
2027
|
-
fe(
|
|
2027
|
+
fe(b.$slots, "footer", {
|
|
2028
2028
|
openModal: me,
|
|
2029
2029
|
closeModal: ae,
|
|
2030
2030
|
isModalOpen: he.value
|
|
@@ -2046,20 +2046,20 @@ const Ko = { class: "layerboard-layout" }, Qo = ["aria-expanded"], Xo = {
|
|
|
2046
2046
|
}, null, 8, ["icon-definition"])
|
|
2047
2047
|
], 512)
|
|
2048
2048
|
], 36)) : E("", !0),
|
|
2049
|
-
ce.value ? (f(),
|
|
2049
|
+
ce.value ? (f(), m("div", {
|
|
2050
2050
|
key: 1,
|
|
2051
2051
|
class: "layerboard-mobile-menu-backdrop",
|
|
2052
2052
|
onClick: Te
|
|
2053
2053
|
})) : E("", !0)
|
|
2054
2054
|
], 4),
|
|
2055
2055
|
P("div", ea, [
|
|
2056
|
-
y.value ? (f(),
|
|
2056
|
+
y.value ? (f(), m("div", ta, [
|
|
2057
2057
|
P("div", {
|
|
2058
2058
|
class: "layerboard-spinner",
|
|
2059
2059
|
style: J({ borderTopColor: t.themeColor })
|
|
2060
2060
|
}, null, 4),
|
|
2061
2061
|
P("p", null, "Loading " + N(t.title) + "...", 1)
|
|
2062
|
-
])) : $.value ? (f(),
|
|
2062
|
+
])) : $.value ? (f(), m("div", oa, [
|
|
2063
2063
|
x[3] || (x[3] = P("h2", null, "Error Loading Layers", -1)),
|
|
2064
2064
|
P("p", null, N($.value), 1),
|
|
2065
2065
|
P("button", {
|
|
@@ -2067,7 +2067,7 @@ const Ko = { class: "layerboard-layout" }, Qo = ["aria-expanded"], Xo = {
|
|
|
2067
2067
|
style: J({ backgroundColor: t.themeColor }),
|
|
2068
2068
|
onClick: Fe
|
|
2069
2069
|
}, " Retry ", 4)
|
|
2070
|
-
])) : (f(),
|
|
2070
|
+
])) : (f(), m(ie, { key: 2 }, [
|
|
2071
2071
|
P("aside", {
|
|
2072
2072
|
id: "main-content",
|
|
2073
2073
|
ref_key: "sidebarRef",
|
|
@@ -2077,21 +2077,21 @@ const Ko = { class: "layerboard-layout" }, Qo = ["aria-expanded"], Xo = {
|
|
|
2077
2077
|
"aria-label": "Map layers",
|
|
2078
2078
|
tabindex: "-1"
|
|
2079
2079
|
}, [
|
|
2080
|
-
fe(
|
|
2080
|
+
fe(b.$slots, "sidebar", {
|
|
2081
2081
|
layers: n.value,
|
|
2082
2082
|
visibleLayers: L.value,
|
|
2083
2083
|
layerOpacities: S.value,
|
|
2084
|
-
loadingLayers:
|
|
2084
|
+
loadingLayers: r.value,
|
|
2085
2085
|
layerErrors: C.value,
|
|
2086
|
-
currentZoom:
|
|
2086
|
+
currentZoom: g.value,
|
|
2087
2087
|
toggleLayer: ge,
|
|
2088
2088
|
setLayerVisible: Ee,
|
|
2089
2089
|
setLayersVisible: _e,
|
|
2090
2090
|
setOpacity: Oe,
|
|
2091
2091
|
tiledLayers: t.tiledLayers,
|
|
2092
|
-
visibleTiledLayers:
|
|
2093
|
-
tiledLayerOpacities:
|
|
2094
|
-
toggleTiledLayer:
|
|
2092
|
+
visibleTiledLayers: h.value,
|
|
2093
|
+
tiledLayerOpacities: u.value,
|
|
2094
|
+
toggleTiledLayer: v,
|
|
2095
2095
|
setTiledLayerVisible: I,
|
|
2096
2096
|
setTiledLayerOpacity: F,
|
|
2097
2097
|
dataSourcesState: Z.value,
|
|
@@ -2104,9 +2104,9 @@ const Ko = { class: "layerboard-layout" }, Qo = ["aria-expanded"], Xo = {
|
|
|
2104
2104
|
"layer-list": n.value,
|
|
2105
2105
|
"visible-layers": L.value,
|
|
2106
2106
|
"layer-opacities": S.value,
|
|
2107
|
-
"loading-layers":
|
|
2107
|
+
"loading-layers": r.value,
|
|
2108
2108
|
"layer-errors": C.value,
|
|
2109
|
-
"current-zoom":
|
|
2109
|
+
"current-zoom": g.value,
|
|
2110
2110
|
"search-query": M.value,
|
|
2111
2111
|
"layer-metadata": p.value,
|
|
2112
2112
|
onToggleLayer: ge,
|
|
@@ -2125,8 +2125,8 @@ const Ko = { class: "layerboard-layout" }, Qo = ["aria-expanded"], Xo = {
|
|
|
2125
2125
|
"layer-opacities": S.value,
|
|
2126
2126
|
"layer-list": n.value,
|
|
2127
2127
|
"tiled-layers": t.tiledLayers,
|
|
2128
|
-
"visible-tiled-layers":
|
|
2129
|
-
"tiled-layer-opacities":
|
|
2128
|
+
"visible-tiled-layers": h.value,
|
|
2129
|
+
"tiled-layer-opacities": u.value,
|
|
2130
2130
|
"cyclomedia-config": t.cyclomediaConfig,
|
|
2131
2131
|
"pictometry-credentials": t.pictometryCredentials,
|
|
2132
2132
|
"basemap-control-position": t.basemapControlPosition,
|
|
@@ -2165,13 +2165,13 @@ const Ko = { class: "layerboard-layout" }, Qo = ["aria-expanded"], Xo = {
|
|
|
2165
2165
|
style: J(je.value),
|
|
2166
2166
|
onClick: Me
|
|
2167
2167
|
}, [
|
|
2168
|
-
re.value === "map" ? (f(),
|
|
2168
|
+
re.value === "map" ? (f(), m("span", ia, N(t.sidebarLabel), 1)) : (f(), m("span", na, N(t.mapLabel), 1))
|
|
2169
2169
|
], 4),
|
|
2170
2170
|
P("footer", {
|
|
2171
2171
|
class: "layerboard-footer",
|
|
2172
2172
|
style: J(Be.value)
|
|
2173
2173
|
}, [
|
|
2174
|
-
fe(
|
|
2174
|
+
fe(b.$slots, "footer", {
|
|
2175
2175
|
openModal: me,
|
|
2176
2176
|
closeModal: ae,
|
|
2177
2177
|
isModalOpen: he.value
|
|
@@ -2179,7 +2179,7 @@ const Ko = { class: "layerboard-layout" }, Qo = ["aria-expanded"], Xo = {
|
|
|
2179
2179
|
x[4] || (x[4] = Le(" City of Philadelphia ", -1))
|
|
2180
2180
|
], !0)
|
|
2181
2181
|
], 4),
|
|
2182
|
-
he.value ? (f(),
|
|
2182
|
+
he.value ? (f(), m("div", {
|
|
2183
2183
|
key: 0,
|
|
2184
2184
|
class: "layerboard-modal-backdrop",
|
|
2185
2185
|
onClick: lt,
|
|
@@ -2206,7 +2206,7 @@ const Ko = { class: "layerboard-layout" }, Qo = ["aria-expanded"], Xo = {
|
|
|
2206
2206
|
decorative: ""
|
|
2207
2207
|
}, null, 8, ["icon-definition"])
|
|
2208
2208
|
], 512),
|
|
2209
|
-
fe(
|
|
2209
|
+
fe(b.$slots, "modal", { closeModal: ae }, void 0, !0)
|
|
2210
2210
|
], 512)
|
|
2211
2211
|
], 32)) : E("", !0),
|
|
2212
2212
|
P("span", la, N(re.value === "sidebar" ? "Showing layers panel" : "Showing map"), 1)
|
|
@@ -2229,16 +2229,16 @@ const Ko = { class: "layerboard-layout" }, Qo = ["aria-expanded"], Xo = {
|
|
|
2229
2229
|
const a = t, o = i, l = k(a.expanded), n = `topic-panel-${bt()}`, y = `topic-header-${bt()}`;
|
|
2230
2230
|
Re(
|
|
2231
2231
|
() => a.expanded,
|
|
2232
|
-
(
|
|
2233
|
-
l.value =
|
|
2232
|
+
(g) => {
|
|
2233
|
+
l.value = g;
|
|
2234
2234
|
}
|
|
2235
2235
|
);
|
|
2236
2236
|
function $() {
|
|
2237
2237
|
l.value = !l.value, o("toggle", l.value);
|
|
2238
2238
|
}
|
|
2239
|
-
return (
|
|
2239
|
+
return (g, M) => {
|
|
2240
2240
|
const L = Zt("font-awesome-icon");
|
|
2241
|
-
return f(),
|
|
2241
|
+
return f(), m("div", {
|
|
2242
2242
|
class: ne(["topic-accordion", { "is-expanded": l.value }])
|
|
2243
2243
|
}, [
|
|
2244
2244
|
P("button", {
|
|
@@ -2249,8 +2249,8 @@ const Ko = { class: "layerboard-layout" }, Qo = ["aria-expanded"], Xo = {
|
|
|
2249
2249
|
"aria-controls": n,
|
|
2250
2250
|
onClick: $
|
|
2251
2251
|
}, [
|
|
2252
|
-
t.icon ||
|
|
2253
|
-
fe(
|
|
2252
|
+
t.icon || g.$slots.icon ? (f(), m("span", ca, [
|
|
2253
|
+
fe(g.$slots, "icon", {}, () => [
|
|
2254
2254
|
t.icon ? (f(), te(L, {
|
|
2255
2255
|
key: 0,
|
|
2256
2256
|
icon: ["fas", t.icon],
|
|
@@ -2284,7 +2284,7 @@ const Ko = { class: "layerboard-layout" }, Qo = ["aria-expanded"], Xo = {
|
|
|
2284
2284
|
"aria-labelledby": y,
|
|
2285
2285
|
class: "topic-content"
|
|
2286
2286
|
}, [
|
|
2287
|
-
fe(
|
|
2287
|
+
fe(g.$slots, "default", {}, () => [
|
|
2288
2288
|
M[1] || (M[1] = P("p", { class: "topic-empty" }, "No content provided for this topic.", -1))
|
|
2289
2289
|
], !0)
|
|
2290
2290
|
], 512), [
|
|
@@ -2329,146 +2329,146 @@ const Ko = { class: "layerboard-layout" }, Qo = ["aria-expanded"], Xo = {
|
|
|
2329
2329
|
emits: ["toggleLayer", "setOpacity"],
|
|
2330
2330
|
setup(t, { emit: i }) {
|
|
2331
2331
|
const a = t, o = i;
|
|
2332
|
-
function l(
|
|
2333
|
-
return a.visibleLayerIds.has(
|
|
2332
|
+
function l(h) {
|
|
2333
|
+
return a.visibleLayerIds.has(h);
|
|
2334
2334
|
}
|
|
2335
|
-
function n(
|
|
2336
|
-
return a.layerOpacities[
|
|
2335
|
+
function n(h) {
|
|
2336
|
+
return a.layerOpacities[h] ?? 1;
|
|
2337
2337
|
}
|
|
2338
|
-
function y(
|
|
2339
|
-
return a.loadingLayerIds.has(
|
|
2338
|
+
function y(h) {
|
|
2339
|
+
return a.loadingLayerIds.has(h);
|
|
2340
2340
|
}
|
|
2341
|
-
function $(
|
|
2342
|
-
return a.layerErrors[
|
|
2341
|
+
function $(h) {
|
|
2342
|
+
return a.layerErrors[h] || null;
|
|
2343
2343
|
}
|
|
2344
|
-
function
|
|
2345
|
-
const
|
|
2346
|
-
return !(
|
|
2344
|
+
function g(h) {
|
|
2345
|
+
const u = a.currentZoom, c = h.minZoom, v = h.maxZoom;
|
|
2346
|
+
return !(c !== void 0 && u < c || v !== void 0 && u > v);
|
|
2347
2347
|
}
|
|
2348
|
-
function M(
|
|
2349
|
-
return
|
|
2348
|
+
function M(h) {
|
|
2349
|
+
return h.displayOptions?.shouldShowCheckbox !== !1;
|
|
2350
2350
|
}
|
|
2351
|
-
function L(
|
|
2352
|
-
return a.showOpacity ?
|
|
2351
|
+
function L(h) {
|
|
2352
|
+
return a.showOpacity ? h.displayOptions?.shouldShowSlider !== !1 : !1;
|
|
2353
2353
|
}
|
|
2354
|
-
function S(
|
|
2355
|
-
return a.showLegend ?
|
|
2354
|
+
function S(h) {
|
|
2355
|
+
return a.showLegend ? h.displayOptions?.shouldShowLegendBox !== !1 : !1;
|
|
2356
2356
|
}
|
|
2357
|
-
function
|
|
2358
|
-
return
|
|
2357
|
+
function r(h) {
|
|
2358
|
+
return h.displayOptions?.layerNameChange || h.title;
|
|
2359
2359
|
}
|
|
2360
|
-
function C(
|
|
2361
|
-
o("toggleLayer",
|
|
2360
|
+
function C(h) {
|
|
2361
|
+
o("toggleLayer", h);
|
|
2362
2362
|
}
|
|
2363
|
-
function p(
|
|
2364
|
-
const
|
|
2365
|
-
o("setOpacity",
|
|
2363
|
+
function p(h, u) {
|
|
2364
|
+
const c = u.target;
|
|
2365
|
+
o("setOpacity", h, parseFloat(c.value));
|
|
2366
2366
|
}
|
|
2367
|
-
return (
|
|
2367
|
+
return (h, u) => (f(), m("fieldset", {
|
|
2368
2368
|
class: "layer-checkbox-set",
|
|
2369
2369
|
role: "group",
|
|
2370
2370
|
"aria-label": t.groupLabel
|
|
2371
2371
|
}, [
|
|
2372
|
-
(f(!0),
|
|
2373
|
-
key:
|
|
2372
|
+
(f(!0), m(ie, null, se(t.layers, (c) => (f(), m("div", {
|
|
2373
|
+
key: c.id,
|
|
2374
2374
|
class: "layer-item"
|
|
2375
2375
|
}, [
|
|
2376
|
-
M(
|
|
2376
|
+
M(c) ? (f(), m("label", {
|
|
2377
2377
|
key: 0,
|
|
2378
2378
|
class: ne(["layer-checkbox", {
|
|
2379
|
-
"layer-unavailable": !
|
|
2380
|
-
"layer-error": $(
|
|
2379
|
+
"layer-unavailable": !g(c),
|
|
2380
|
+
"layer-error": $(c.id)
|
|
2381
2381
|
}])
|
|
2382
2382
|
}, [
|
|
2383
2383
|
P("input", {
|
|
2384
2384
|
type: "checkbox",
|
|
2385
|
-
checked: l(
|
|
2386
|
-
disabled: !
|
|
2387
|
-
onChange: (
|
|
2385
|
+
checked: l(c.id),
|
|
2386
|
+
disabled: !g(c),
|
|
2387
|
+
onChange: (v) => C(c.id)
|
|
2388
2388
|
}, null, 40, pa),
|
|
2389
2389
|
P("span", ya, [
|
|
2390
|
-
Le(N(
|
|
2391
|
-
y(
|
|
2392
|
-
$(
|
|
2390
|
+
Le(N(r(c)) + " ", 1),
|
|
2391
|
+
y(c.id) && g(c) ? (f(), m("span", ga, " Loading... ")) : E("", !0),
|
|
2392
|
+
$(c.id) ? (f(), m("span", {
|
|
2393
2393
|
key: 1,
|
|
2394
2394
|
class: "error-indicator",
|
|
2395
|
-
"aria-label": $(
|
|
2395
|
+
"aria-label": $(c.id) || "Error",
|
|
2396
2396
|
role: "status"
|
|
2397
2397
|
}, " Error ", 8, ha)) : E("", !0),
|
|
2398
|
-
|
|
2398
|
+
g(c) ? E("", !0) : (f(), m("span", ma, " (zoom in) "))
|
|
2399
2399
|
])
|
|
2400
|
-
], 2)) : (f(),
|
|
2400
|
+
], 2)) : (f(), m("div", {
|
|
2401
2401
|
key: 1,
|
|
2402
2402
|
class: ne(["layer-label-only", {
|
|
2403
|
-
"layer-unavailable": !
|
|
2404
|
-
"layer-error": $(
|
|
2403
|
+
"layer-unavailable": !g(c),
|
|
2404
|
+
"layer-error": $(c.id)
|
|
2405
2405
|
}])
|
|
2406
2406
|
}, [
|
|
2407
2407
|
P("span", va, [
|
|
2408
|
-
Le(N(
|
|
2409
|
-
y(
|
|
2410
|
-
$(
|
|
2408
|
+
Le(N(r(c)) + " ", 1),
|
|
2409
|
+
y(c.id) && g(c) ? (f(), m("span", ba, " Loading... ")) : E("", !0),
|
|
2410
|
+
$(c.id) ? (f(), m("span", {
|
|
2411
2411
|
key: 1,
|
|
2412
2412
|
class: "error-indicator",
|
|
2413
|
-
"aria-label": $(
|
|
2413
|
+
"aria-label": $(c.id) || "Error",
|
|
2414
2414
|
role: "status"
|
|
2415
2415
|
}, " Error ", 8, wa)) : E("", !0),
|
|
2416
|
-
|
|
2416
|
+
g(c) ? E("", !0) : (f(), m("span", La, " (zoom in) "))
|
|
2417
2417
|
])
|
|
2418
2418
|
], 2)),
|
|
2419
|
-
L(
|
|
2419
|
+
L(c) && l(c.id) && g(c) ? (f(), m("div", Sa, [
|
|
2420
2420
|
P("label", {
|
|
2421
2421
|
class: "opacity-label",
|
|
2422
|
-
for: "opacity-" +
|
|
2423
|
-
}, " Opacity: " + N(Math.round(n(
|
|
2422
|
+
for: "opacity-" + c.id
|
|
2423
|
+
}, " Opacity: " + N(Math.round(n(c.id) * 100)) + "% ", 9, Ca),
|
|
2424
2424
|
P("input", {
|
|
2425
|
-
id: "opacity-" +
|
|
2425
|
+
id: "opacity-" + c.id,
|
|
2426
2426
|
type: "range",
|
|
2427
2427
|
min: "0",
|
|
2428
2428
|
max: "1",
|
|
2429
2429
|
step: "0.05",
|
|
2430
|
-
value: n(
|
|
2431
|
-
"aria-label": "Opacity for " +
|
|
2430
|
+
value: n(c.id),
|
|
2431
|
+
"aria-label": "Opacity for " + r(c),
|
|
2432
2432
|
class: "opacity-slider",
|
|
2433
|
-
onInput: (
|
|
2433
|
+
onInput: (v) => p(c.id, v)
|
|
2434
2434
|
}, null, 40, ka)
|
|
2435
2435
|
])) : E("", !0),
|
|
2436
|
-
S(
|
|
2436
|
+
S(c) && l(c.id) && g(c) && c.legend?.length ? (f(), m("ul", {
|
|
2437
2437
|
key: 3,
|
|
2438
2438
|
class: "layer-legend",
|
|
2439
|
-
"aria-label": "Legend for " +
|
|
2439
|
+
"aria-label": "Legend for " + r(c)
|
|
2440
2440
|
}, [
|
|
2441
|
-
(f(!0),
|
|
2441
|
+
(f(!0), m(ie, null, se(c.legend, (v, I) => (f(), m("li", {
|
|
2442
2442
|
key: I,
|
|
2443
2443
|
class: "legend-item"
|
|
2444
2444
|
}, [
|
|
2445
|
-
|
|
2445
|
+
v.type === "circle" ? (f(), m("span", {
|
|
2446
2446
|
key: 0,
|
|
2447
2447
|
class: "legend-symbol legend-circle",
|
|
2448
|
-
style: J({ backgroundColor:
|
|
2448
|
+
style: J({ backgroundColor: v.color }),
|
|
2449
2449
|
"aria-hidden": "true"
|
|
2450
|
-
}, null, 4)) :
|
|
2450
|
+
}, null, 4)) : v.type === "line" ? (f(), m("span", {
|
|
2451
2451
|
key: 1,
|
|
2452
2452
|
class: "legend-symbol legend-line",
|
|
2453
2453
|
style: J({
|
|
2454
|
-
backgroundColor:
|
|
2455
|
-
height: `${
|
|
2454
|
+
backgroundColor: v.color,
|
|
2455
|
+
height: `${v.width || 2}px`
|
|
2456
2456
|
}),
|
|
2457
2457
|
"aria-hidden": "true"
|
|
2458
|
-
}, null, 4)) :
|
|
2458
|
+
}, null, 4)) : v.type === "fill" ? (f(), m("span", {
|
|
2459
2459
|
key: 2,
|
|
2460
2460
|
class: "legend-symbol legend-fill",
|
|
2461
|
-
style: J({ backgroundColor:
|
|
2461
|
+
style: J({ backgroundColor: v.color }),
|
|
2462
2462
|
"aria-hidden": "true"
|
|
2463
2463
|
}, null, 4)) : E("", !0),
|
|
2464
|
-
P("span", $a, N(
|
|
2464
|
+
P("span", $a, N(v.label), 1)
|
|
2465
2465
|
]))), 128))
|
|
2466
2466
|
], 8, xa)) : E("", !0)
|
|
2467
2467
|
]))), 128)),
|
|
2468
|
-
t.layers.length === 0 ? (f(),
|
|
2468
|
+
t.layers.length === 0 ? (f(), m("div", _a, "No layers available")) : E("", !0)
|
|
2469
2469
|
], 8, fa));
|
|
2470
2470
|
}
|
|
2471
|
-
}), Ka = /* @__PURE__ */ De(Pa, [["__scopeId", "data-v-
|
|
2471
|
+
}), Ka = /* @__PURE__ */ De(Pa, [["__scopeId", "data-v-08508c44"]]), Ma = ["aria-label"], Ta = ["name", "checked", "disabled", "onChange"], Fa = { class: "layer-title" }, Ea = {
|
|
2472
2472
|
key: 0,
|
|
2473
2473
|
class: "loading-indicator",
|
|
2474
2474
|
role: "status"
|
|
@@ -2510,9 +2510,9 @@ const Ko = { class: "layerboard-layout" }, Qo = ["aria-expanded"], Xo = {
|
|
|
2510
2510
|
function $(p) {
|
|
2511
2511
|
return a.layerErrors[p] || null;
|
|
2512
2512
|
}
|
|
2513
|
-
function
|
|
2514
|
-
const
|
|
2515
|
-
return !(
|
|
2513
|
+
function g(p) {
|
|
2514
|
+
const h = a.currentZoom, u = p.minZoom, c = p.maxZoom;
|
|
2515
|
+
return !(u !== void 0 && h < u || c !== void 0 && h > c);
|
|
2516
2516
|
}
|
|
2517
2517
|
function M(p) {
|
|
2518
2518
|
return a.showOpacity ? p.displayOptions?.shouldShowSlider !== !1 : !1;
|
|
@@ -2523,103 +2523,103 @@ const Ko = { class: "layerboard-layout" }, Qo = ["aria-expanded"], Xo = {
|
|
|
2523
2523
|
function S(p) {
|
|
2524
2524
|
return p.displayOptions?.layerNameChange || p.title;
|
|
2525
2525
|
}
|
|
2526
|
-
function
|
|
2527
|
-
const
|
|
2528
|
-
o("selectLayer", p,
|
|
2526
|
+
function r(p) {
|
|
2527
|
+
const h = a.layers.filter((u) => a.visibleLayerIds.has(u.id) && u.id !== p).map((u) => u.id);
|
|
2528
|
+
o("selectLayer", p, h);
|
|
2529
2529
|
}
|
|
2530
|
-
function C(p,
|
|
2531
|
-
const
|
|
2532
|
-
o("setOpacity", p, parseFloat(
|
|
2530
|
+
function C(p, h) {
|
|
2531
|
+
const u = h.target;
|
|
2532
|
+
o("setOpacity", p, parseFloat(u.value));
|
|
2533
2533
|
}
|
|
2534
|
-
return (p,
|
|
2534
|
+
return (p, h) => (f(), m("div", {
|
|
2535
2535
|
class: "layer-radio-set",
|
|
2536
2536
|
role: "radiogroup",
|
|
2537
2537
|
"aria-label": t.groupLabel
|
|
2538
2538
|
}, [
|
|
2539
|
-
(f(!0),
|
|
2540
|
-
key:
|
|
2539
|
+
(f(!0), m(ie, null, se(t.layers, (u) => (f(), m("div", {
|
|
2540
|
+
key: u.id,
|
|
2541
2541
|
class: "layer-item"
|
|
2542
2542
|
}, [
|
|
2543
2543
|
P("label", {
|
|
2544
2544
|
class: ne(["layer-radio", {
|
|
2545
|
-
"layer-unavailable": !
|
|
2546
|
-
"layer-error": $(
|
|
2545
|
+
"layer-unavailable": !g(u),
|
|
2546
|
+
"layer-error": $(u.id)
|
|
2547
2547
|
}])
|
|
2548
2548
|
}, [
|
|
2549
2549
|
P("input", {
|
|
2550
2550
|
type: "radio",
|
|
2551
2551
|
name: t.groupName,
|
|
2552
|
-
checked: l(
|
|
2553
|
-
disabled: !
|
|
2554
|
-
onChange: (
|
|
2552
|
+
checked: l(u.id),
|
|
2553
|
+
disabled: !g(u),
|
|
2554
|
+
onChange: (c) => r(u.id)
|
|
2555
2555
|
}, null, 40, Ta),
|
|
2556
2556
|
P("span", Fa, [
|
|
2557
|
-
Le(N(S(
|
|
2558
|
-
y(
|
|
2559
|
-
$(
|
|
2557
|
+
Le(N(S(u)) + " ", 1),
|
|
2558
|
+
y(u.id) && g(u) ? (f(), m("span", Ea, " Loading... ")) : E("", !0),
|
|
2559
|
+
$(u.id) ? (f(), m("span", {
|
|
2560
2560
|
key: 1,
|
|
2561
2561
|
class: "error-indicator",
|
|
2562
|
-
"aria-label": $(
|
|
2562
|
+
"aria-label": $(u.id) || "Error",
|
|
2563
2563
|
role: "status"
|
|
2564
2564
|
}, " Error ", 8, Oa)) : E("", !0),
|
|
2565
|
-
|
|
2565
|
+
g(u) ? E("", !0) : (f(), m("span", za, " (zoom in) "))
|
|
2566
2566
|
])
|
|
2567
2567
|
], 2),
|
|
2568
|
-
M(
|
|
2568
|
+
M(u) && l(u.id) && g(u) ? (f(), m("div", Ia, [
|
|
2569
2569
|
P("label", {
|
|
2570
2570
|
class: "opacity-label",
|
|
2571
|
-
for: "opacity-" +
|
|
2572
|
-
}, " Opacity: " + N(Math.round(n(
|
|
2571
|
+
for: "opacity-" + u.id
|
|
2572
|
+
}, " Opacity: " + N(Math.round(n(u.id) * 100)) + "% ", 9, Ra),
|
|
2573
2573
|
P("input", {
|
|
2574
|
-
id: "opacity-" +
|
|
2574
|
+
id: "opacity-" + u.id,
|
|
2575
2575
|
type: "range",
|
|
2576
2576
|
min: "0",
|
|
2577
2577
|
max: "1",
|
|
2578
2578
|
step: "0.05",
|
|
2579
|
-
value: n(
|
|
2580
|
-
"aria-label": "Opacity for " + S(
|
|
2579
|
+
value: n(u.id),
|
|
2580
|
+
"aria-label": "Opacity for " + S(u),
|
|
2581
2581
|
class: "opacity-slider",
|
|
2582
|
-
onInput: (
|
|
2582
|
+
onInput: (c) => C(u.id, c)
|
|
2583
2583
|
}, null, 40, Da)
|
|
2584
2584
|
])) : E("", !0),
|
|
2585
|
-
L(
|
|
2585
|
+
L(u) && l(u.id) && g(u) && u.legend?.length ? (f(), m("ul", {
|
|
2586
2586
|
key: 1,
|
|
2587
2587
|
class: "layer-legend",
|
|
2588
|
-
"aria-label": "Legend for " + S(
|
|
2588
|
+
"aria-label": "Legend for " + S(u)
|
|
2589
2589
|
}, [
|
|
2590
|
-
(f(!0),
|
|
2591
|
-
key:
|
|
2590
|
+
(f(!0), m(ie, null, se(u.legend, (c, v) => (f(), m("li", {
|
|
2591
|
+
key: v,
|
|
2592
2592
|
class: "legend-item"
|
|
2593
2593
|
}, [
|
|
2594
|
-
|
|
2594
|
+
c.type === "circle" ? (f(), m("span", {
|
|
2595
2595
|
key: 0,
|
|
2596
2596
|
class: "legend-symbol legend-circle",
|
|
2597
|
-
style: J({ backgroundColor:
|
|
2597
|
+
style: J({ backgroundColor: c.color }),
|
|
2598
2598
|
"aria-hidden": "true"
|
|
2599
|
-
}, null, 4)) :
|
|
2599
|
+
}, null, 4)) : c.type === "line" ? (f(), m("span", {
|
|
2600
2600
|
key: 1,
|
|
2601
2601
|
class: "legend-symbol legend-line",
|
|
2602
2602
|
style: J({
|
|
2603
|
-
backgroundColor:
|
|
2604
|
-
height: `${
|
|
2603
|
+
backgroundColor: c.color,
|
|
2604
|
+
height: `${c.width || 2}px`
|
|
2605
2605
|
}),
|
|
2606
2606
|
"aria-hidden": "true"
|
|
2607
|
-
}, null, 4)) :
|
|
2607
|
+
}, null, 4)) : c.type === "fill" ? (f(), m("span", {
|
|
2608
2608
|
key: 2,
|
|
2609
2609
|
class: "legend-symbol legend-fill",
|
|
2610
|
-
style: J({ backgroundColor:
|
|
2610
|
+
style: J({ backgroundColor: c.color }),
|
|
2611
2611
|
"aria-hidden": "true"
|
|
2612
2612
|
}, null, 4)) : E("", !0),
|
|
2613
|
-
P("span", Ba, N(
|
|
2613
|
+
P("span", Ba, N(c.label), 1)
|
|
2614
2614
|
]))), 128))
|
|
2615
2615
|
], 8, Za)) : E("", !0)
|
|
2616
2616
|
]))), 128)),
|
|
2617
|
-
t.layers.length === 0 ? (f(),
|
|
2617
|
+
t.layers.length === 0 ? (f(), m("div", Aa, "No layers available")) : E("", !0)
|
|
2618
2618
|
], 8, Ma));
|
|
2619
2619
|
}
|
|
2620
|
-
}), Qa = /* @__PURE__ */ De(Na, [["__scopeId", "data-v-
|
|
2620
|
+
}), Qa = /* @__PURE__ */ De(Na, [["__scopeId", "data-v-f28c6628"]]);
|
|
2621
2621
|
function Xa(t) {
|
|
2622
|
-
const i = k([]), a = k(/* @__PURE__ */ new Set()), o = k({}), l = k(/* @__PURE__ */ new Set()), n = k({}), y = k(""), $ = k(!1),
|
|
2622
|
+
const i = k([]), a = k(/* @__PURE__ */ new Set()), o = k({}), l = k(/* @__PURE__ */ new Set()), n = k({}), y = k(""), $ = k(!1), g = k(!1), M = k(null), L = z(() => {
|
|
2623
2623
|
if (!y.value.trim())
|
|
2624
2624
|
return i.value;
|
|
2625
2625
|
const F = y.value.toLowerCase();
|
|
@@ -2629,8 +2629,8 @@ function Xa(t) {
|
|
|
2629
2629
|
component: F.type
|
|
2630
2630
|
// "circle", "fill", or "line"
|
|
2631
2631
|
})));
|
|
2632
|
-
async function
|
|
2633
|
-
if (!
|
|
2632
|
+
async function r() {
|
|
2633
|
+
if (!g.value) {
|
|
2634
2634
|
$.value = !0, M.value = null;
|
|
2635
2635
|
try {
|
|
2636
2636
|
let F;
|
|
@@ -2638,7 +2638,7 @@ function Xa(t) {
|
|
|
2638
2638
|
const R = {};
|
|
2639
2639
|
F.forEach((Z) => {
|
|
2640
2640
|
R[Z.id] = Z.opacity ?? 1;
|
|
2641
|
-
}), o.value = R,
|
|
2641
|
+
}), o.value = R, g.value = !0;
|
|
2642
2642
|
} catch (F) {
|
|
2643
2643
|
M.value = F instanceof Error ? F : new Error("Failed to initialize layerboard");
|
|
2644
2644
|
} finally {
|
|
@@ -2657,20 +2657,20 @@ function Xa(t) {
|
|
|
2657
2657
|
const R = new Set(a.value);
|
|
2658
2658
|
R.has(F) ? R.delete(F) : R.add(F), a.value = R;
|
|
2659
2659
|
}
|
|
2660
|
-
function
|
|
2660
|
+
function h(F, R) {
|
|
2661
2661
|
o.value = {
|
|
2662
2662
|
...o.value,
|
|
2663
2663
|
[F]: Math.max(0, Math.min(1, R))
|
|
2664
2664
|
};
|
|
2665
2665
|
}
|
|
2666
|
-
function
|
|
2666
|
+
function u(F) {
|
|
2667
2667
|
y.value = F;
|
|
2668
2668
|
}
|
|
2669
|
-
function
|
|
2669
|
+
function c(F, R) {
|
|
2670
2670
|
const Z = new Set(l.value);
|
|
2671
2671
|
R ? Z.add(F) : Z.delete(F), l.value = Z;
|
|
2672
2672
|
}
|
|
2673
|
-
function
|
|
2673
|
+
function v(F, R) {
|
|
2674
2674
|
if (R)
|
|
2675
2675
|
n.value = { ...n.value, [F]: R };
|
|
2676
2676
|
else {
|
|
@@ -2679,7 +2679,7 @@ function Xa(t) {
|
|
|
2679
2679
|
}
|
|
2680
2680
|
}
|
|
2681
2681
|
function I() {
|
|
2682
|
-
i.value = [], a.value = /* @__PURE__ */ new Set(), o.value = {}, l.value = /* @__PURE__ */ new Set(), n.value = {}, y.value = "", $.value = !1,
|
|
2682
|
+
i.value = [], a.value = /* @__PURE__ */ new Set(), o.value = {}, l.value = /* @__PURE__ */ new Set(), n.value = {}, y.value = "", $.value = !1, g.value = !1, M.value = null;
|
|
2683
2683
|
}
|
|
2684
2684
|
return {
|
|
2685
2685
|
// State (readonly)
|
|
@@ -2690,7 +2690,7 @@ function Xa(t) {
|
|
|
2690
2690
|
layerErrors: j(n),
|
|
2691
2691
|
searchQuery: j(y),
|
|
2692
2692
|
isLoading: j($),
|
|
2693
|
-
isInitialized: j(
|
|
2693
|
+
isInitialized: j(g),
|
|
2694
2694
|
error: j(M),
|
|
2695
2695
|
// Computed
|
|
2696
2696
|
filteredLayerConfigs: L,
|
|
@@ -2698,12 +2698,12 @@ function Xa(t) {
|
|
|
2698
2698
|
// Config
|
|
2699
2699
|
config: t,
|
|
2700
2700
|
// Methods
|
|
2701
|
-
initialize:
|
|
2701
|
+
initialize: r,
|
|
2702
2702
|
toggleLayer: p,
|
|
2703
|
-
setLayerOpacity:
|
|
2704
|
-
filterLayers:
|
|
2705
|
-
setLayerLoading:
|
|
2706
|
-
setLayerError:
|
|
2703
|
+
setLayerOpacity: h,
|
|
2704
|
+
filterLayers: u,
|
|
2705
|
+
setLayerLoading: c,
|
|
2706
|
+
setLayerError: v,
|
|
2707
2707
|
reset: I
|
|
2708
2708
|
};
|
|
2709
2709
|
}
|
|
@@ -2725,29 +2725,29 @@ function Ya() {
|
|
|
2725
2725
|
}
|
|
2726
2726
|
function Va(t) {
|
|
2727
2727
|
const i = k(null), a = k(!1), o = k(null), l = k(0);
|
|
2728
|
-
async function n(
|
|
2728
|
+
async function n(g = {}) {
|
|
2729
2729
|
a.value = !0, o.value = null;
|
|
2730
2730
|
const M = t.pageSize || 2e3;
|
|
2731
|
-
let L = 0, S = [],
|
|
2731
|
+
let L = 0, S = [], r = !0;
|
|
2732
2732
|
try {
|
|
2733
|
-
for (;
|
|
2734
|
-
const p = t.url.replace(/\/$/, ""),
|
|
2735
|
-
let
|
|
2736
|
-
if (
|
|
2733
|
+
for (; r; ) {
|
|
2734
|
+
const p = t.url.replace(/\/$/, ""), h = encodeURIComponent(g.where || t.where || "1=1");
|
|
2735
|
+
let u = `${p}/query?where=${h}&outFields=*&returnGeometry=true&resultRecordCount=${M}&resultOffset=${L}&f=geojson`;
|
|
2736
|
+
if (g.bounds) {
|
|
2737
2737
|
const I = JSON.stringify({
|
|
2738
|
-
xmin:
|
|
2739
|
-
ymin:
|
|
2740
|
-
xmax:
|
|
2741
|
-
ymax:
|
|
2738
|
+
xmin: g.bounds.west,
|
|
2739
|
+
ymin: g.bounds.south,
|
|
2740
|
+
xmax: g.bounds.east,
|
|
2741
|
+
ymax: g.bounds.north,
|
|
2742
2742
|
spatialReference: { wkid: 4326 }
|
|
2743
2743
|
});
|
|
2744
|
-
|
|
2744
|
+
u += `&geometry=${encodeURIComponent(I)}&geometryType=esriGeometryEnvelope&spatialRel=esriSpatialRelIntersects`;
|
|
2745
2745
|
}
|
|
2746
|
-
const
|
|
2747
|
-
if (!
|
|
2748
|
-
throw new Error(`HTTP ${
|
|
2749
|
-
const
|
|
2750
|
-
|
|
2746
|
+
const c = await fetch(u);
|
|
2747
|
+
if (!c.ok)
|
|
2748
|
+
throw new Error(`HTTP ${c.status}: ${c.statusText}`);
|
|
2749
|
+
const v = await c.json();
|
|
2750
|
+
v.features && v.features.length > 0 ? (S = S.concat(v.features), L += v.features.length, r = v.features.length === M) : r = !1;
|
|
2751
2751
|
}
|
|
2752
2752
|
const C = {
|
|
2753
2753
|
type: "FeatureCollection",
|
|
@@ -2764,8 +2764,8 @@ function Va(t) {
|
|
|
2764
2764
|
function y() {
|
|
2765
2765
|
i.value = null, l.value = 0, o.value = null;
|
|
2766
2766
|
}
|
|
2767
|
-
async function $(
|
|
2768
|
-
return n(
|
|
2767
|
+
async function $(g = {}) {
|
|
2768
|
+
return n(g);
|
|
2769
2769
|
}
|
|
2770
2770
|
return {
|
|
2771
2771
|
// State (readonly)
|