@phila/layerboard 3.0.0-beta.34 → 3.0.0-beta.35
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/index.js +2 -2
- package/dist/index.mjs +823 -820
- package/dist/layerboard.css +1 -1
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { defineComponent as ge, ref as
|
|
2
|
-
import { Map as
|
|
3
|
-
import { cn as
|
|
4
|
-
const
|
|
1
|
+
import { defineComponent as ge, ref as x, watch as Oe, computed as _, nextTick as Ne, onMounted as lt, onUnmounted as Vt, createElementBlock as M, openBlock as m, createVNode as H, unref as f, withCtx as He, createBlock as q, createCommentVNode as A, Fragment as ue, renderList as Le, useAttrs as Kt, toRef as Qt, normalizeClass as ne, createElementVNode as P, toDisplayString as G, renderSlot as me, withDirectives as Zt, mergeProps as vt, vModelDynamic as Xt, createTextVNode as xe, normalizeProps as Pt, guardReactiveProps as Ft, normalizeStyle as ye, withModifiers as Yt, readonly as j, provide as N, onBeforeUnmount as eo, useId as Tt, resolveComponent as to, vShow as oo } from "vue";
|
|
2
|
+
import { Map as ao, DrawTool as io, RasterLayer as It, CircleLayer as Et, FillLayer as Ot, LineLayer as gt, MapMarker as lo, MapPopup as no } from "@phila/phila-ui-map-core";
|
|
3
|
+
import { cn as bt, Icon as ke, BaseLink as ro, ActionContent as zt } from "@phila/phila-ui-core";
|
|
4
|
+
const so = { class: "map-panel" }, co = /* @__PURE__ */ ge({
|
|
5
5
|
__name: "MapPanel",
|
|
6
6
|
props: {
|
|
7
7
|
visibleLayers: {},
|
|
@@ -24,57 +24,57 @@ const no = { class: "map-panel" }, ro = /* @__PURE__ */ ge({
|
|
|
24
24
|
},
|
|
25
25
|
emits: ["zoom", "layerLoading", "layerError"],
|
|
26
26
|
setup(e, { emit: a }) {
|
|
27
|
-
const l = e, o = a, r =
|
|
27
|
+
const l = e, o = a, r = x(null), n = x(null), u = x(0);
|
|
28
28
|
function w(t) {
|
|
29
29
|
o("zoom", t), n.value && (u.value = p(n.value));
|
|
30
30
|
}
|
|
31
31
|
function p(t) {
|
|
32
|
-
const c = t.getZoom(), b = t.getCenter().lat,
|
|
33
|
-
return
|
|
32
|
+
const c = t.getZoom(), b = t.getCenter().lat, k = 559082264028e-3, I = b * Math.PI / 180;
|
|
33
|
+
return k * Math.cos(I) / Math.pow(2, c);
|
|
34
34
|
}
|
|
35
|
-
const C =
|
|
36
|
-
async function i(t, c, s, b,
|
|
37
|
-
const
|
|
35
|
+
const C = x({}), y = x(null), h = x(/* @__PURE__ */ new Set());
|
|
36
|
+
async function i(t, c, s, b, k) {
|
|
37
|
+
const I = encodeURIComponent(b || "1=1"), B = JSON.stringify({
|
|
38
38
|
xmin: c.west,
|
|
39
39
|
ymin: c.south,
|
|
40
40
|
xmax: c.east,
|
|
41
41
|
ymax: c.north,
|
|
42
42
|
spatialReference: { wkid: 4326 }
|
|
43
|
-
}),
|
|
44
|
-
let
|
|
45
|
-
for (;
|
|
46
|
-
const
|
|
47
|
-
if (!
|
|
48
|
-
throw new Error(`HTTP ${
|
|
49
|
-
const
|
|
50
|
-
|
|
43
|
+
}), Y = k !== void 0 && k < 14 ? `&maxAllowableOffset=${360 / (Math.pow(2, k) * 512)}` : "", Q = 2e3;
|
|
44
|
+
let pe = 0, we = [], se = !0;
|
|
45
|
+
for (; se; ) {
|
|
46
|
+
const te = `${t}/query?where=${I}&geometry=${encodeURIComponent(B)}&geometryType=esriGeometryEnvelope&spatialRel=esriSpatialRelIntersects&outFields=*&returnGeometry=true&resultRecordCount=${Q}&resultOffset=${pe}${Y}&f=geojson`, R = await fetch(te);
|
|
47
|
+
if (!R.ok)
|
|
48
|
+
throw new Error(`HTTP ${R.status}: ${R.statusText}`);
|
|
49
|
+
const W = await R.json();
|
|
50
|
+
W.features && W.features.length > 0 ? (we = we.concat(W.features), pe += W.features.length, se = W.features.length === Q) : se = !1;
|
|
51
51
|
}
|
|
52
|
-
return
|
|
53
|
-
if (
|
|
54
|
-
const
|
|
55
|
-
for (const
|
|
56
|
-
|
|
57
|
-
return { ...
|
|
52
|
+
return we = we.map((te) => {
|
|
53
|
+
if (te.properties) {
|
|
54
|
+
const R = {};
|
|
55
|
+
for (const W of Object.keys(te.properties))
|
|
56
|
+
R[W.toLowerCase()] = te.properties[W];
|
|
57
|
+
return { ...te, properties: R };
|
|
58
58
|
}
|
|
59
|
-
return
|
|
59
|
+
return te;
|
|
60
60
|
}), {
|
|
61
61
|
type: "FeatureCollection",
|
|
62
|
-
features:
|
|
62
|
+
features: we
|
|
63
63
|
};
|
|
64
64
|
}
|
|
65
65
|
async function g(t, c, s) {
|
|
66
|
-
const b = c.map(async (
|
|
67
|
-
const
|
|
68
|
-
if (
|
|
69
|
-
o("layerLoading",
|
|
66
|
+
const b = c.map(async (k) => {
|
|
67
|
+
const I = l.layerList.find((B) => B.config.id === k)?.config;
|
|
68
|
+
if (I) {
|
|
69
|
+
o("layerLoading", k, !0);
|
|
70
70
|
try {
|
|
71
|
-
const B = await i(
|
|
72
|
-
C.value = { ...C.value, [
|
|
71
|
+
const B = await i(I.url, t, k, I.where, s);
|
|
72
|
+
C.value = { ...C.value, [k]: B }, o("layerError", k, null);
|
|
73
73
|
} catch (B) {
|
|
74
|
-
const
|
|
75
|
-
o("layerError",
|
|
74
|
+
const Y = B instanceof Error ? B.message : "Failed to load";
|
|
75
|
+
o("layerError", k, Y);
|
|
76
76
|
} finally {
|
|
77
|
-
o("layerLoading",
|
|
77
|
+
o("layerLoading", k, !1);
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
});
|
|
@@ -93,7 +93,7 @@ const no = { class: "map-panel" }, ro = /* @__PURE__ */ ge({
|
|
|
93
93
|
function S(t) {
|
|
94
94
|
y.value = t.bounds, L(t.bounds, t.zoom);
|
|
95
95
|
}
|
|
96
|
-
function
|
|
96
|
+
function E(t) {
|
|
97
97
|
n.value = t;
|
|
98
98
|
const c = t.getBounds();
|
|
99
99
|
y.value = {
|
|
@@ -105,10 +105,10 @@ const no = { class: "map-panel" }, ro = /* @__PURE__ */ ge({
|
|
|
105
105
|
const s = t.getZoom();
|
|
106
106
|
o("zoom", s), u.value = p(t), L(y.value, s);
|
|
107
107
|
}
|
|
108
|
-
|
|
108
|
+
Oe(
|
|
109
109
|
() => l.visibleLayers,
|
|
110
110
|
async () => {
|
|
111
|
-
if (
|
|
111
|
+
if (re.value.length > 0 && Ie(), y.value) {
|
|
112
112
|
const t = new Set(l.visibleLayers), c = [...t].filter((b) => !h.value.has(b));
|
|
113
113
|
h.value = new Set(t);
|
|
114
114
|
const s = d(c);
|
|
@@ -135,12 +135,12 @@ const no = { class: "map-panel" }, ro = /* @__PURE__ */ ge({
|
|
|
135
135
|
() => l.layerList.filter(
|
|
136
136
|
(t) => t.config.type === "fill" && t.config.outlinePaint && F(t.config.id) && V(t.config)
|
|
137
137
|
).map((t) => t.config)
|
|
138
|
-
),
|
|
138
|
+
), ee = _(
|
|
139
139
|
() => l.layerList.filter((t) => t.config.type === "line" && F(t.config.id) && V(t.config)).map((t) => t.config)
|
|
140
140
|
);
|
|
141
|
-
|
|
141
|
+
Oe(ee, async (t) => {
|
|
142
142
|
if (t.length < 2) return;
|
|
143
|
-
await
|
|
143
|
+
await Ne();
|
|
144
144
|
const c = n.value;
|
|
145
145
|
if (c)
|
|
146
146
|
for (let s = t.length - 1; s >= 0; s--) {
|
|
@@ -151,16 +151,16 @@ const no = { class: "map-panel" }, ro = /* @__PURE__ */ ge({
|
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
153
|
});
|
|
154
|
-
function
|
|
154
|
+
function U(t) {
|
|
155
155
|
return l.visibleTiledLayers?.has(t) ?? !1;
|
|
156
156
|
}
|
|
157
|
-
function
|
|
157
|
+
function de(t) {
|
|
158
158
|
return l.tiledLayerOpacities?.[t] ?? 1;
|
|
159
159
|
}
|
|
160
160
|
function ve(t) {
|
|
161
161
|
return `${t.replace(/\/$/, "")}/tile/{z}/{y}/{x}`;
|
|
162
162
|
}
|
|
163
|
-
function
|
|
163
|
+
function ct(t) {
|
|
164
164
|
return {
|
|
165
165
|
type: "raster",
|
|
166
166
|
tiles: [ve(t.url)],
|
|
@@ -168,43 +168,43 @@ const no = { class: "map-panel" }, ro = /* @__PURE__ */ ge({
|
|
|
168
168
|
attribution: t.attribution || ""
|
|
169
169
|
};
|
|
170
170
|
}
|
|
171
|
-
const
|
|
172
|
-
async function
|
|
173
|
-
if (!
|
|
174
|
-
|
|
171
|
+
const Ue = x({}), Qe = x(/* @__PURE__ */ new Set());
|
|
172
|
+
async function We(t) {
|
|
173
|
+
if (!Qe.value.has(t.id)) {
|
|
174
|
+
Qe.value.add(t.id);
|
|
175
175
|
try {
|
|
176
176
|
const c = t.url.replace(/\/$/, ""), s = await fetch(`${c}?f=json`);
|
|
177
177
|
if (!s.ok)
|
|
178
178
|
return;
|
|
179
|
-
const b = await s.json(),
|
|
180
|
-
let
|
|
179
|
+
const b = await s.json(), k = b.minScale || 0;
|
|
180
|
+
let I = b.maxScale || 0;
|
|
181
181
|
if (b.layers && b.layers.length > 0)
|
|
182
182
|
for (const B of b.layers)
|
|
183
|
-
B.maxScale && B.maxScale > 0 && (
|
|
184
|
-
|
|
185
|
-
...
|
|
186
|
-
[t.id]: { minScale:
|
|
183
|
+
B.maxScale && B.maxScale > 0 && (I === 0 || B.maxScale < I) && (I = B.maxScale);
|
|
184
|
+
I === 0 && (I = 72e3), Ue.value = {
|
|
185
|
+
...Ue.value,
|
|
186
|
+
[t.id]: { minScale: k, maxScale: I }
|
|
187
187
|
};
|
|
188
188
|
} catch {
|
|
189
189
|
}
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
|
-
|
|
192
|
+
lt(() => {
|
|
193
193
|
if (l.tiledLayers)
|
|
194
194
|
for (const t of l.tiledLayers)
|
|
195
|
-
t.scaleBasedRendering &&
|
|
195
|
+
t.scaleBasedRendering && We(t);
|
|
196
196
|
});
|
|
197
|
-
function
|
|
197
|
+
function Xe(t) {
|
|
198
198
|
if (!t.scaleBasedRendering)
|
|
199
199
|
return "tiled";
|
|
200
|
-
const c =
|
|
200
|
+
const c = Ue.value[t.id];
|
|
201
201
|
if (!c)
|
|
202
202
|
return "tiled";
|
|
203
203
|
const s = u.value;
|
|
204
204
|
return s === 0 || s > c.maxScale ? "tiled" : "dynamic";
|
|
205
205
|
}
|
|
206
|
-
const
|
|
207
|
-
function
|
|
206
|
+
const ut = _(() => l.tiledLayers ? l.tiledLayers.filter((t) => U(t.id) ? t.scaleBasedRendering ? Xe(t) === "tiled" : !0 : !1) : []), De = _(() => l.tiledLayers ? l.tiledLayers.filter((t) => U(t.id) && t.scaleBasedRendering ? Xe(t) === "dynamic" : !1) : []);
|
|
207
|
+
function je(t) {
|
|
208
208
|
return {
|
|
209
209
|
type: "raster",
|
|
210
210
|
tiles: [`${t.url.replace(/\/$/, "")}/export?bbox={bbox-epsg-3857}&bboxSR=3857&imageSR=3857&size=256,256&format=png32&transparent=true&f=image`],
|
|
@@ -212,57 +212,57 @@ const no = { class: "map-panel" }, ro = /* @__PURE__ */ ge({
|
|
|
212
212
|
attribution: t.attribution || ""
|
|
213
213
|
};
|
|
214
214
|
}
|
|
215
|
-
function
|
|
215
|
+
function Me(t) {
|
|
216
216
|
return { type: "geojson", data: C.value[t.id], tolerance: 0 };
|
|
217
217
|
}
|
|
218
|
-
function
|
|
218
|
+
function Fe(t) {
|
|
219
219
|
return l.layerOpacities[t] ?? 1;
|
|
220
220
|
}
|
|
221
|
-
function
|
|
222
|
-
const c =
|
|
221
|
+
function qe(t) {
|
|
222
|
+
const c = Fe(t.id), s = t.type === "circle" ? "circle-opacity" : t.type === "fill" ? "fill-opacity" : "line-opacity";
|
|
223
223
|
if (t.type === "fill" && t.paint["fill-opacity"] === 0)
|
|
224
224
|
return { ...t.paint, "fill-opacity": 0 };
|
|
225
|
-
const b = t.type === "circle" ? "circle-color" : t.type === "fill" ? "fill-color" : "line-color",
|
|
226
|
-
if (B &&
|
|
225
|
+
const b = t.type === "circle" ? "circle-color" : t.type === "fill" ? "fill-color" : "line-color", k = { ...t.paint }, I = k[b], B = k[s] === 1, Y = typeof I == "string" && I.startsWith("rgba(");
|
|
226
|
+
if (B && Y) {
|
|
227
227
|
if (c === 1)
|
|
228
|
-
return
|
|
228
|
+
return k;
|
|
229
229
|
{
|
|
230
|
-
const
|
|
231
|
-
if (
|
|
232
|
-
const [,
|
|
233
|
-
|
|
230
|
+
const Q = I.match(/rgba\((\d+),\s*(\d+),\s*(\d+),\s*([\d.]+)\)/);
|
|
231
|
+
if (Q && Q[4]) {
|
|
232
|
+
const [, pe, we, se, te] = Q, R = parseFloat(te) * c;
|
|
233
|
+
k[b] = `rgba(${pe}, ${we}, ${se}, ${R})`, k[s] = 1;
|
|
234
234
|
}
|
|
235
|
-
return
|
|
235
|
+
return k;
|
|
236
236
|
}
|
|
237
237
|
}
|
|
238
|
-
if (
|
|
239
|
-
const
|
|
240
|
-
if (
|
|
241
|
-
const [,
|
|
242
|
-
|
|
238
|
+
if (Y) {
|
|
239
|
+
const Q = I.match(/rgba\((\d+),\s*(\d+),\s*(\d+),\s*([\d.]+)\)/);
|
|
240
|
+
if (Q) {
|
|
241
|
+
const [, pe, we, se] = Q;
|
|
242
|
+
k[b] = `rgb(${pe}, ${we}, ${se})`;
|
|
243
243
|
}
|
|
244
244
|
}
|
|
245
|
-
return
|
|
245
|
+
return k[s] = c, k;
|
|
246
246
|
}
|
|
247
|
-
function
|
|
248
|
-
const c =
|
|
247
|
+
function dt(t) {
|
|
248
|
+
const c = Fe(t.id);
|
|
249
249
|
return { ...t.outlinePaint, "line-opacity": c };
|
|
250
250
|
}
|
|
251
|
-
const
|
|
252
|
-
function
|
|
251
|
+
const re = x([]), Te = x(null), oe = x(0);
|
|
252
|
+
function _e(t) {
|
|
253
253
|
const c = t.replace(/-outline$/, "");
|
|
254
254
|
return l.layerList.find((b) => b.config.id === c)?.config;
|
|
255
255
|
}
|
|
256
|
-
function
|
|
256
|
+
function Ye(t, c) {
|
|
257
257
|
return t.replace(/\{([^}]+)\}/g, (s, b) => {
|
|
258
|
-
const
|
|
259
|
-
return
|
|
258
|
+
const k = c[b];
|
|
259
|
+
return k == null ? "" : String(k);
|
|
260
260
|
});
|
|
261
261
|
}
|
|
262
262
|
function be(t) {
|
|
263
263
|
return t.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
264
264
|
}
|
|
265
|
-
function
|
|
265
|
+
function Ge(t, c, s) {
|
|
266
266
|
if (t == null) return "-";
|
|
267
267
|
if (c?.dateFormat && typeof t == "number") {
|
|
268
268
|
const b = new Date(t);
|
|
@@ -284,202 +284,205 @@ const no = { class: "map-panel" }, ro = /* @__PURE__ */ ge({
|
|
|
284
284
|
if (typeof t == "number") {
|
|
285
285
|
if (t > 1e12 && !c)
|
|
286
286
|
return new Date(t).toLocaleDateString();
|
|
287
|
-
const b = c?.places,
|
|
287
|
+
const b = c?.places, k = c?.digitSeparator ?? !0;
|
|
288
288
|
if (b !== void 0) {
|
|
289
289
|
if (Number.isInteger(t) && b >= 0)
|
|
290
290
|
return String(t);
|
|
291
|
-
const
|
|
292
|
-
if (
|
|
293
|
-
const B =
|
|
294
|
-
return
|
|
291
|
+
const I = t.toFixed(b);
|
|
292
|
+
if (k) {
|
|
293
|
+
const B = I.split("."), Y = B[0] || "0", Q = B[1], pe = Y.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
294
|
+
return Q ? `${pe}.${Q}` : pe;
|
|
295
295
|
}
|
|
296
|
-
return
|
|
296
|
+
return I;
|
|
297
297
|
}
|
|
298
|
-
return Number.isInteger(t) ? String(t) :
|
|
298
|
+
return Number.isInteger(t) ? String(t) : k ? t.toLocaleString() : String(t);
|
|
299
299
|
}
|
|
300
300
|
return String(t);
|
|
301
301
|
}
|
|
302
|
-
function
|
|
302
|
+
function et(t) {
|
|
303
303
|
const c = /* @__PURE__ */ new Set();
|
|
304
304
|
return t.filter((s) => {
|
|
305
|
-
const
|
|
306
|
-
return c.has(
|
|
305
|
+
const k = `${s.layer.id.replace(/-outline$/, "")}:${JSON.stringify(s.properties)}`;
|
|
306
|
+
return c.has(k) ? !1 : (c.add(k), !0);
|
|
307
307
|
});
|
|
308
308
|
}
|
|
309
|
-
function
|
|
309
|
+
function Se(t, c) {
|
|
310
310
|
const s = C.value[t];
|
|
311
311
|
if (!s?.features) return null;
|
|
312
312
|
const b = c.objectid ?? c.OBJECTID ?? c.FID;
|
|
313
313
|
if (b != null) {
|
|
314
|
-
const
|
|
315
|
-
(
|
|
314
|
+
const k = s.features.find(
|
|
315
|
+
(I) => (I.properties?.objectid ?? I.properties?.OBJECTID ?? I.properties?.FID) === b
|
|
316
316
|
);
|
|
317
|
-
if (
|
|
317
|
+
if (k) return k.geometry;
|
|
318
318
|
}
|
|
319
319
|
return null;
|
|
320
320
|
}
|
|
321
|
-
function
|
|
321
|
+
function ft(t, c) {
|
|
322
322
|
const s = /* @__PURE__ */ new Map();
|
|
323
|
-
return c.forEach((b,
|
|
324
|
-
s.set(b.id,
|
|
325
|
-
}), t.sort((b,
|
|
326
|
-
const
|
|
327
|
-
return (s.get(B) ?? -1) -
|
|
323
|
+
return c.forEach((b, k) => {
|
|
324
|
+
s.set(b.id, k);
|
|
325
|
+
}), t.sort((b, k) => {
|
|
326
|
+
const I = b.layer.id.replace(/-outline$/, ""), B = k.layer.id.replace(/-outline$/, ""), Y = s.get(I) ?? -1;
|
|
327
|
+
return (s.get(B) ?? -1) - Y;
|
|
328
328
|
});
|
|
329
329
|
}
|
|
330
|
-
function
|
|
330
|
+
function ae(t) {
|
|
331
331
|
const c = n.value;
|
|
332
332
|
if (!c) return;
|
|
333
333
|
const s = [];
|
|
334
|
-
l.layerList.forEach((
|
|
335
|
-
const
|
|
336
|
-
F(
|
|
334
|
+
l.layerList.forEach((R) => {
|
|
335
|
+
const W = R.config;
|
|
336
|
+
F(W.id) && (s.push(W.id), W.outlinePaint && s.push(`${W.id}-outline`));
|
|
337
337
|
});
|
|
338
|
-
const b = s.filter((
|
|
338
|
+
const b = s.filter((R) => c.getLayer(R));
|
|
339
339
|
if (b.length === 0) return;
|
|
340
|
-
const
|
|
340
|
+
const k = c.project([t.lngLat.lng, t.lngLat.lat]), I = 10, B = [
|
|
341
|
+
[k.x - I, k.y - I],
|
|
342
|
+
[k.x + I, k.y + I]
|
|
343
|
+
], Y = c.queryRenderedFeatures(B, {
|
|
341
344
|
layers: b
|
|
342
345
|
});
|
|
343
|
-
if (
|
|
344
|
-
const
|
|
345
|
-
const
|
|
346
|
-
if (!
|
|
347
|
-
const
|
|
346
|
+
if (Y.length === 0) return;
|
|
347
|
+
const Q = et(Y), pe = l.layerList.map((R) => R.config), se = ft(Q, pe).map((R) => {
|
|
348
|
+
const W = R.layer.id.replace(/-outline$/, ""), ce = _e(W);
|
|
349
|
+
if (!ce) return null;
|
|
350
|
+
const yt = Se(ce.id, R.properties || {});
|
|
348
351
|
return {
|
|
349
|
-
layerId:
|
|
350
|
-
layerTitle:
|
|
351
|
-
properties:
|
|
352
|
-
geometry:
|
|
353
|
-
popupConfig:
|
|
352
|
+
layerId: ce.id,
|
|
353
|
+
layerTitle: ce.title,
|
|
354
|
+
properties: R.properties || {},
|
|
355
|
+
geometry: yt || R.geometry,
|
|
356
|
+
popupConfig: ce.popup
|
|
354
357
|
};
|
|
355
|
-
}).filter((
|
|
356
|
-
if (
|
|
357
|
-
|
|
358
|
-
const
|
|
359
|
-
if (!
|
|
360
|
-
const
|
|
361
|
-
if (
|
|
362
|
-
const
|
|
363
|
-
return
|
|
364
|
-
}),
|
|
365
|
-
const
|
|
366
|
-
if (
|
|
367
|
-
const
|
|
368
|
-
if (
|
|
369
|
-
const
|
|
370
|
-
|
|
371
|
-
geometry:
|
|
372
|
-
geometryType:
|
|
373
|
-
layerId:
|
|
374
|
-
properties:
|
|
375
|
-
originalStyle:
|
|
358
|
+
}).filter((R) => R !== null);
|
|
359
|
+
if (se.length === 0) return;
|
|
360
|
+
se.sort((R, W) => {
|
|
361
|
+
const ce = R.popupConfig?.popupSortField, yt = W.popupConfig?.popupSortField;
|
|
362
|
+
if (!ce || ce !== yt) return 0;
|
|
363
|
+
const mt = R.properties[ce], ht = W.properties[ce];
|
|
364
|
+
if (mt == null || ht == null) return 0;
|
|
365
|
+
const Mt = R.popupConfig?.popupSortOrder !== "asc";
|
|
366
|
+
return mt < ht ? Mt ? 1 : -1 : mt > ht ? Mt ? -1 : 1 : 0;
|
|
367
|
+
}), re.value = se, oe.value = 0, Te.value = [t.lngLat.lng, t.lngLat.lat];
|
|
368
|
+
const te = se[0];
|
|
369
|
+
if (te) {
|
|
370
|
+
const R = _e(te.layerId);
|
|
371
|
+
if (R) {
|
|
372
|
+
const W = J(te.geometry), ce = Z(R.id, R.type);
|
|
373
|
+
$.value = {
|
|
374
|
+
geometry: te.geometry,
|
|
375
|
+
geometryType: W,
|
|
376
|
+
layerId: R.id,
|
|
377
|
+
properties: te.properties,
|
|
378
|
+
originalStyle: ce
|
|
376
379
|
};
|
|
377
380
|
}
|
|
378
381
|
}
|
|
379
382
|
}
|
|
380
|
-
function
|
|
381
|
-
|
|
383
|
+
function Ie() {
|
|
384
|
+
re.value = [], Te.value = null, oe.value = 0, $.value = null;
|
|
382
385
|
}
|
|
383
|
-
function
|
|
384
|
-
if (
|
|
386
|
+
function Ee(t) {
|
|
387
|
+
if (re.value.length === 0) return;
|
|
385
388
|
const c = t.target;
|
|
386
389
|
if (!(c.tagName === "INPUT" || c.tagName === "TEXTAREA" || c.isContentEditable))
|
|
387
390
|
switch (t.key) {
|
|
388
391
|
case "ArrowLeft":
|
|
389
392
|
case "ArrowUp":
|
|
390
|
-
t.preventDefault(),
|
|
393
|
+
t.preventDefault(), tt();
|
|
391
394
|
break;
|
|
392
395
|
case "ArrowRight":
|
|
393
396
|
case "ArrowDown":
|
|
394
|
-
t.preventDefault(),
|
|
397
|
+
t.preventDefault(), fe();
|
|
395
398
|
break;
|
|
396
399
|
case "Escape":
|
|
397
|
-
t.preventDefault(),
|
|
400
|
+
t.preventDefault(), Ie();
|
|
398
401
|
break;
|
|
399
402
|
}
|
|
400
403
|
}
|
|
401
|
-
|
|
402
|
-
window.addEventListener("keydown",
|
|
403
|
-
}),
|
|
404
|
-
window.removeEventListener("keydown",
|
|
404
|
+
lt(() => {
|
|
405
|
+
window.addEventListener("keydown", Ee);
|
|
406
|
+
}), Vt(() => {
|
|
407
|
+
window.removeEventListener("keydown", Ee);
|
|
405
408
|
});
|
|
406
|
-
function
|
|
407
|
-
const t =
|
|
408
|
-
t <= 1 ||
|
|
409
|
-
}
|
|
410
|
-
function
|
|
411
|
-
|
|
412
|
-
}
|
|
413
|
-
const
|
|
414
|
-
const t =
|
|
415
|
-
return !t || !t.popupConfig ? t?.layerTitle || "" :
|
|
416
|
-
}),
|
|
417
|
-
const t =
|
|
409
|
+
function fe() {
|
|
410
|
+
const t = re.value.length;
|
|
411
|
+
t <= 1 || oe.value >= t - 1 || (oe.value = oe.value + 1);
|
|
412
|
+
}
|
|
413
|
+
function tt() {
|
|
414
|
+
re.value.length <= 1 || oe.value <= 0 || (oe.value = oe.value - 1);
|
|
415
|
+
}
|
|
416
|
+
const ie = _(() => re.value.length === 0 ? null : re.value[oe.value]), Re = _(() => {
|
|
417
|
+
const t = ie.value;
|
|
418
|
+
return !t || !t.popupConfig ? t?.layerTitle || "" : Ye(t.popupConfig.title, t.properties);
|
|
419
|
+
}), Ae = _(() => {
|
|
420
|
+
const t = ie.value;
|
|
418
421
|
if (!t) return "";
|
|
419
422
|
let c = '<div class="popup-content">';
|
|
420
|
-
if (c += `<h3 class="popup-title">${be(
|
|
421
|
-
c += `<table class="popup-table" aria-label="${be(
|
|
423
|
+
if (c += `<h3 class="popup-title">${be(Re.value)}</h3>`, t.popupConfig?.fields?.length) {
|
|
424
|
+
c += `<table class="popup-table" aria-label="${be(Re.value)}">`;
|
|
422
425
|
for (const s of t.popupConfig.fields) {
|
|
423
|
-
const b =
|
|
424
|
-
c += `<tr><th scope="row">${be(s.label)}</th><td>${
|
|
426
|
+
const b = Ge(t.properties[s.field], s.format, t.popupConfig.showTime), k = s.label.toLowerCase(), I = k.includes("url") || k.includes("website"), B = b.startsWith("http://") || b.startsWith("https://") || b.startsWith("www.") || I && b.includes("."), Y = b.startsWith("http://") || b.startsWith("https://") ? b : `https://${b}`, Q = B ? `<a href="${be(Y)}" target="_blank" rel="noopener noreferrer">${be(b)}</a>` : be(b);
|
|
427
|
+
c += `<tr><th scope="row">${be(s.label)}</th><td>${Q}</td></tr>`;
|
|
425
428
|
}
|
|
426
429
|
c += "</table>";
|
|
427
430
|
}
|
|
428
431
|
return c += "</div>", c;
|
|
429
|
-
}),
|
|
432
|
+
}), le = x({
|
|
430
433
|
type: "FeatureCollection",
|
|
431
434
|
features: []
|
|
432
|
-
}),
|
|
435
|
+
}), Be = x({
|
|
433
436
|
type: "FeatureCollection",
|
|
434
437
|
features: []
|
|
435
|
-
}),
|
|
438
|
+
}), Ve = x({
|
|
436
439
|
type: "FeatureCollection",
|
|
437
440
|
features: []
|
|
438
|
-
}),
|
|
441
|
+
}), pt = {
|
|
439
442
|
"circle-radius": ["get", "highlightRadius"],
|
|
440
443
|
"circle-color": "#00FFFF",
|
|
441
444
|
"circle-opacity": 0.8,
|
|
442
445
|
"circle-stroke-width": 2,
|
|
443
446
|
"circle-stroke-color": "#FFFFFF"
|
|
444
|
-
},
|
|
447
|
+
}, ot = {
|
|
445
448
|
"line-width": ["get", "highlightWidth"],
|
|
446
449
|
"line-color": "#00FFFF",
|
|
447
450
|
"line-opacity": 0.9
|
|
448
451
|
}, v = {
|
|
449
452
|
"fill-color": "#808080",
|
|
450
453
|
"fill-opacity": 0.5
|
|
451
|
-
},
|
|
452
|
-
function
|
|
454
|
+
}, $ = x(null);
|
|
455
|
+
function J(t) {
|
|
453
456
|
return t.type;
|
|
454
457
|
}
|
|
455
458
|
function Z(t, c) {
|
|
456
|
-
const s =
|
|
459
|
+
const s = _e(t);
|
|
457
460
|
if (!s) return { radius: 5, width: 2 };
|
|
458
461
|
const b = s.paint || {};
|
|
459
462
|
if (c === "circle") {
|
|
460
|
-
const
|
|
461
|
-
return typeof
|
|
463
|
+
const k = b["circle-radius"];
|
|
464
|
+
return typeof k == "number" ? { radius: k } : { radius: 5 };
|
|
462
465
|
}
|
|
463
466
|
if (c === "line" || c === "fill") {
|
|
464
|
-
const
|
|
465
|
-
if (typeof
|
|
466
|
-
return { width:
|
|
467
|
+
const k = b["line-width"];
|
|
468
|
+
if (typeof k == "number")
|
|
469
|
+
return { width: k };
|
|
467
470
|
if (s.outlinePaint && s.outlinePaint["line-width"]) {
|
|
468
|
-
const
|
|
469
|
-
if (typeof
|
|
470
|
-
return { width:
|
|
471
|
+
const I = s.outlinePaint["line-width"];
|
|
472
|
+
if (typeof I == "number")
|
|
473
|
+
return { width: I };
|
|
471
474
|
}
|
|
472
475
|
return { width: 2 };
|
|
473
476
|
}
|
|
474
477
|
return { radius: 5, width: 2 };
|
|
475
478
|
}
|
|
476
|
-
function
|
|
479
|
+
function K(t) {
|
|
477
480
|
return !t || t.length === 0 ? [] : t[0] ?? [];
|
|
478
481
|
}
|
|
479
|
-
function
|
|
482
|
+
function Ce(t) {
|
|
480
483
|
const { geometry: c, geometryType: s, originalStyle: b } = t;
|
|
481
484
|
if (s === "Point" || s === "MultiPoint") {
|
|
482
|
-
const
|
|
485
|
+
const I = (b.radius || 5) + 3;
|
|
483
486
|
return {
|
|
484
487
|
type: "FeatureCollection",
|
|
485
488
|
features: [
|
|
@@ -487,14 +490,14 @@ const no = { class: "map-panel" }, ro = /* @__PURE__ */ ge({
|
|
|
487
490
|
type: "Feature",
|
|
488
491
|
geometry: c,
|
|
489
492
|
properties: {
|
|
490
|
-
highlightRadius:
|
|
493
|
+
highlightRadius: I
|
|
491
494
|
}
|
|
492
495
|
}
|
|
493
496
|
]
|
|
494
497
|
};
|
|
495
498
|
}
|
|
496
499
|
if (s === "LineString" || s === "MultiLineString") {
|
|
497
|
-
const
|
|
500
|
+
const I = (b.width || 2) + 3;
|
|
498
501
|
return {
|
|
499
502
|
type: "FeatureCollection",
|
|
500
503
|
features: [
|
|
@@ -502,14 +505,14 @@ const no = { class: "map-panel" }, ro = /* @__PURE__ */ ge({
|
|
|
502
505
|
type: "Feature",
|
|
503
506
|
geometry: c,
|
|
504
507
|
properties: {
|
|
505
|
-
highlightWidth:
|
|
508
|
+
highlightWidth: I
|
|
506
509
|
}
|
|
507
510
|
}
|
|
508
511
|
]
|
|
509
512
|
};
|
|
510
513
|
}
|
|
511
514
|
if (s === "Polygon") {
|
|
512
|
-
const
|
|
515
|
+
const k = c.coordinates, I = K(k), Y = (b.width || 2) + 3;
|
|
513
516
|
return {
|
|
514
517
|
type: "FeatureCollection",
|
|
515
518
|
features: [
|
|
@@ -517,24 +520,24 @@ const no = { class: "map-panel" }, ro = /* @__PURE__ */ ge({
|
|
|
517
520
|
type: "Feature",
|
|
518
521
|
geometry: {
|
|
519
522
|
type: "LineString",
|
|
520
|
-
coordinates:
|
|
523
|
+
coordinates: I
|
|
521
524
|
},
|
|
522
525
|
properties: {
|
|
523
|
-
highlightWidth:
|
|
526
|
+
highlightWidth: Y
|
|
524
527
|
}
|
|
525
528
|
}
|
|
526
529
|
]
|
|
527
530
|
};
|
|
528
531
|
}
|
|
529
532
|
if (s === "MultiPolygon") {
|
|
530
|
-
const
|
|
533
|
+
const k = c.coordinates, B = (b.width || 2) + 3;
|
|
531
534
|
return {
|
|
532
535
|
type: "FeatureCollection",
|
|
533
|
-
features:
|
|
536
|
+
features: k.map((Q) => ({
|
|
534
537
|
type: "Feature",
|
|
535
538
|
geometry: {
|
|
536
539
|
type: "LineString",
|
|
537
|
-
coordinates: Q
|
|
540
|
+
coordinates: K(Q)
|
|
538
541
|
},
|
|
539
542
|
properties: {
|
|
540
543
|
highlightWidth: B
|
|
@@ -547,42 +550,42 @@ const no = { class: "map-panel" }, ro = /* @__PURE__ */ ge({
|
|
|
547
550
|
features: []
|
|
548
551
|
};
|
|
549
552
|
}
|
|
550
|
-
function
|
|
553
|
+
function Ze(t) {
|
|
551
554
|
const { geometry: c, geometryType: s } = t;
|
|
552
555
|
return s === "Polygon" || s === "MultiPolygon" ? {
|
|
553
556
|
type: "FeatureCollection",
|
|
554
557
|
features: [{ type: "Feature", geometry: c, properties: {} }]
|
|
555
558
|
} : { type: "FeatureCollection", features: [] };
|
|
556
559
|
}
|
|
557
|
-
function
|
|
560
|
+
function Gt(t) {
|
|
558
561
|
if (!t) {
|
|
559
|
-
|
|
562
|
+
Ht();
|
|
560
563
|
return;
|
|
561
564
|
}
|
|
562
|
-
const c =
|
|
563
|
-
t.geometryType === "Point" || t.geometryType === "MultiPoint" ? (
|
|
565
|
+
const c = Ce(t);
|
|
566
|
+
t.geometryType === "Point" || t.geometryType === "MultiPoint" ? (le.value = c, Be.value = { type: "FeatureCollection", features: [] }, Ve.value = { type: "FeatureCollection", features: [] }) : (Be.value = c, le.value = { type: "FeatureCollection", features: [] }, Ve.value = Ze(t));
|
|
564
567
|
}
|
|
565
|
-
function
|
|
566
|
-
|
|
568
|
+
function Ht() {
|
|
569
|
+
le.value = { type: "FeatureCollection", features: [] }, Be.value = { type: "FeatureCollection", features: [] }, Ve.value = { type: "FeatureCollection", features: [] };
|
|
567
570
|
}
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
}),
|
|
571
|
+
Oe($, (t) => {
|
|
572
|
+
Gt(t);
|
|
573
|
+
}), Oe(
|
|
571
574
|
() => l.visibleLayers,
|
|
572
575
|
(t) => {
|
|
573
|
-
|
|
576
|
+
$.value && !t.has($.value.layerId) && ($.value = null, Ie());
|
|
574
577
|
},
|
|
575
578
|
{ deep: !0 }
|
|
576
|
-
),
|
|
577
|
-
const t =
|
|
579
|
+
), Oe(oe, () => {
|
|
580
|
+
const t = ie.value;
|
|
578
581
|
if (!t) {
|
|
579
|
-
|
|
582
|
+
$.value = null;
|
|
580
583
|
return;
|
|
581
584
|
}
|
|
582
|
-
const c =
|
|
585
|
+
const c = _e(t.layerId);
|
|
583
586
|
if (c) {
|
|
584
|
-
const s =
|
|
585
|
-
|
|
587
|
+
const s = J(t.geometry), b = Z(c.id, c.type);
|
|
588
|
+
$.value = {
|
|
586
589
|
geometry: t.geometry,
|
|
587
590
|
geometryType: s,
|
|
588
591
|
layerId: c.id,
|
|
@@ -591,13 +594,13 @@ const no = { class: "map-panel" }, ro = /* @__PURE__ */ ge({
|
|
|
591
594
|
};
|
|
592
595
|
}
|
|
593
596
|
});
|
|
594
|
-
const
|
|
595
|
-
function
|
|
597
|
+
const $t = x(null);
|
|
598
|
+
function Jt(t) {
|
|
596
599
|
const [c, s] = t.geometry.coordinates;
|
|
597
|
-
|
|
600
|
+
$t.value = [c, s];
|
|
598
601
|
}
|
|
599
|
-
return (t, c) => (m(), M("div",
|
|
600
|
-
|
|
602
|
+
return (t, c) => (m(), M("div", so, [
|
|
603
|
+
H(f(ao), {
|
|
601
604
|
ref_key: "mapRef",
|
|
602
605
|
ref: r,
|
|
603
606
|
zoom: l.initialZoom,
|
|
@@ -615,124 +618,124 @@ const no = { class: "map-panel" }, ro = /* @__PURE__ */ ge({
|
|
|
615
618
|
"tool-panel-layout": "vertical",
|
|
616
619
|
"tool-panel-split-ratio": 50,
|
|
617
620
|
onZoom: w,
|
|
618
|
-
onClick:
|
|
621
|
+
onClick: Ie,
|
|
619
622
|
onMoveend: S,
|
|
620
|
-
onLoad:
|
|
621
|
-
onSearchResult:
|
|
623
|
+
onLoad: E,
|
|
624
|
+
onSearchResult: Jt
|
|
622
625
|
}, {
|
|
623
|
-
default:
|
|
624
|
-
l.drawControlPosition !== null ? (m(),
|
|
626
|
+
default: He(() => [
|
|
627
|
+
l.drawControlPosition !== null ? (m(), q(f(io), {
|
|
625
628
|
key: 0,
|
|
626
629
|
position: l.drawControlPosition
|
|
627
|
-
}, null, 8, ["position"])) :
|
|
628
|
-
(m(!0), M(
|
|
630
|
+
}, null, 8, ["position"])) : A("", !0),
|
|
631
|
+
(m(!0), M(ue, null, Le(ut.value, (s) => (m(), q(f(It), {
|
|
629
632
|
id: "tiled-" + s.id,
|
|
630
633
|
key: "tiled-" + s.id,
|
|
631
|
-
source:
|
|
632
|
-
paint: { "raster-opacity":
|
|
634
|
+
source: ct(s),
|
|
635
|
+
paint: { "raster-opacity": de(s.id) },
|
|
633
636
|
minzoom: s.minZoom,
|
|
634
637
|
maxzoom: s.maxZoom
|
|
635
638
|
}, null, 8, ["id", "source", "paint", "minzoom", "maxzoom"]))), 128)),
|
|
636
|
-
(m(!0), M(
|
|
639
|
+
(m(!0), M(ue, null, Le(De.value, (s) => (m(), q(f(It), {
|
|
637
640
|
id: "dynamic-" + s.id,
|
|
638
641
|
key: "dynamic-" + s.id,
|
|
639
|
-
source:
|
|
640
|
-
paint: { "raster-opacity":
|
|
642
|
+
source: je(s),
|
|
643
|
+
paint: { "raster-opacity": de(s.id) },
|
|
641
644
|
minzoom: s.minZoom,
|
|
642
645
|
maxzoom: s.maxZoom
|
|
643
646
|
}, null, 8, ["id", "source", "paint", "minzoom", "maxzoom"]))), 128)),
|
|
644
|
-
(m(!0), M(
|
|
647
|
+
(m(!0), M(ue, null, Le(T.value, (s) => (m(), q(f(Et), {
|
|
645
648
|
id: s.id,
|
|
646
649
|
key: s.id,
|
|
647
|
-
source:
|
|
648
|
-
paint:
|
|
650
|
+
source: Me(s),
|
|
651
|
+
paint: qe(s),
|
|
649
652
|
minzoom: s.minZoom,
|
|
650
653
|
maxzoom: s.maxZoom,
|
|
651
654
|
"before-id": "highlight-circles",
|
|
652
|
-
onClick:
|
|
655
|
+
onClick: ae
|
|
653
656
|
}, null, 8, ["id", "source", "paint", "minzoom", "maxzoom"]))), 128)),
|
|
654
|
-
(m(!0), M(
|
|
657
|
+
(m(!0), M(ue, null, Le(O.value, (s) => (m(), q(f(Ot), {
|
|
655
658
|
id: s.id,
|
|
656
659
|
key: s.id,
|
|
657
|
-
source:
|
|
658
|
-
paint:
|
|
660
|
+
source: Me(s),
|
|
661
|
+
paint: qe(s),
|
|
659
662
|
minzoom: s.minZoom,
|
|
660
663
|
maxzoom: s.maxZoom,
|
|
661
664
|
"before-id": "highlight-circles",
|
|
662
|
-
onClick:
|
|
665
|
+
onClick: ae
|
|
663
666
|
}, null, 8, ["id", "source", "paint", "minzoom", "maxzoom"]))), 128)),
|
|
664
|
-
(m(!0), M(
|
|
667
|
+
(m(!0), M(ue, null, Le(D.value, (s) => (m(), q(f(gt), {
|
|
665
668
|
id: s.id + "-outline",
|
|
666
669
|
key: s.id + "-outline",
|
|
667
|
-
source:
|
|
668
|
-
paint:
|
|
670
|
+
source: Me(s),
|
|
671
|
+
paint: dt(s),
|
|
669
672
|
minzoom: s.minZoom,
|
|
670
673
|
maxzoom: s.maxZoom,
|
|
671
674
|
"before-id": "highlight-lines",
|
|
672
|
-
onClick:
|
|
675
|
+
onClick: ae
|
|
673
676
|
}, null, 8, ["id", "source", "paint", "minzoom", "maxzoom"]))), 128)),
|
|
674
|
-
(m(!0), M(
|
|
677
|
+
(m(!0), M(ue, null, Le(ee.value, (s) => (m(), q(f(gt), {
|
|
675
678
|
id: s.id,
|
|
676
679
|
key: s.id,
|
|
677
|
-
source:
|
|
678
|
-
paint:
|
|
680
|
+
source: Me(s),
|
|
681
|
+
paint: qe(s),
|
|
679
682
|
minzoom: s.minZoom,
|
|
680
683
|
maxzoom: s.maxZoom,
|
|
681
684
|
"before-id": "highlight-lines",
|
|
682
|
-
onClick:
|
|
685
|
+
onClick: ae
|
|
683
686
|
}, null, 8, ["id", "source", "paint", "minzoom", "maxzoom"]))), 128)),
|
|
684
|
-
|
|
687
|
+
H(f(Et), {
|
|
685
688
|
id: "highlight-circles",
|
|
686
689
|
key: "highlight-circles-layer",
|
|
687
|
-
source: { type: "geojson", data:
|
|
688
|
-
paint:
|
|
690
|
+
source: { type: "geojson", data: le.value },
|
|
691
|
+
paint: pt
|
|
689
692
|
}, null, 8, ["source"]),
|
|
690
|
-
|
|
693
|
+
H(f(Ot), {
|
|
691
694
|
id: "highlight-fill",
|
|
692
695
|
key: "highlight-fill-layer",
|
|
693
|
-
source: { type: "geojson", data:
|
|
696
|
+
source: { type: "geojson", data: Ve.value },
|
|
694
697
|
paint: v
|
|
695
698
|
}, null, 8, ["source"]),
|
|
696
|
-
|
|
699
|
+
H(f(gt), {
|
|
697
700
|
id: "highlight-lines",
|
|
698
701
|
key: "highlight-lines-layer",
|
|
699
|
-
source: { type: "geojson", data:
|
|
700
|
-
paint:
|
|
702
|
+
source: { type: "geojson", data: Be.value },
|
|
703
|
+
paint: ot
|
|
701
704
|
}, null, 8, ["source"]),
|
|
702
|
-
|
|
703
|
-
"lng-lat":
|
|
705
|
+
H(f(lo), {
|
|
706
|
+
"lng-lat": $t.value,
|
|
704
707
|
color: "#2176d2"
|
|
705
708
|
}, null, 8, ["lng-lat"]),
|
|
706
|
-
|
|
709
|
+
ie.value && Te.value ? (m(), q(f(no), {
|
|
707
710
|
key: 1,
|
|
708
|
-
"lng-lat":
|
|
709
|
-
html:
|
|
711
|
+
"lng-lat": Te.value,
|
|
712
|
+
html: Ae.value,
|
|
710
713
|
"close-on-click": !1,
|
|
711
714
|
offset: [0, -15],
|
|
712
|
-
"show-navigation":
|
|
713
|
-
"current-feature-index":
|
|
714
|
-
"total-features":
|
|
715
|
-
"layer-name":
|
|
716
|
-
onClose:
|
|
717
|
-
onNext:
|
|
718
|
-
onPrevious:
|
|
719
|
-
}, null, 8, ["lng-lat", "html", "show-navigation", "current-feature-index", "total-features", "layer-name"])) :
|
|
715
|
+
"show-navigation": re.value.length > 1,
|
|
716
|
+
"current-feature-index": oe.value,
|
|
717
|
+
"total-features": re.value.length,
|
|
718
|
+
"layer-name": ie.value.layerTitle,
|
|
719
|
+
onClose: Ie,
|
|
720
|
+
onNext: fe,
|
|
721
|
+
onPrevious: tt
|
|
722
|
+
}, null, 8, ["lng-lat", "html", "show-navigation", "current-feature-index", "total-features", "layer-name"])) : A("", !0)
|
|
720
723
|
]),
|
|
721
724
|
_: 1
|
|
722
725
|
}, 8, ["zoom", "center", "navigation-controls", "geolocation-control", "basemap-change-controls", "map-search-control", "cyclomedia-config", "cyclomedia-button-position", "pictometry-credentials", "pictometry-button-position"])
|
|
723
726
|
]));
|
|
724
727
|
}
|
|
725
|
-
}),
|
|
728
|
+
}), $e = (e, a) => {
|
|
726
729
|
const l = e.__vccOpts || e;
|
|
727
730
|
for (const [o, r] of a)
|
|
728
731
|
l[o] = r;
|
|
729
732
|
return l;
|
|
730
|
-
},
|
|
731
|
-
function
|
|
733
|
+
}, uo = /* @__PURE__ */ $e(co, [["__scopeId", "data-v-c704fcd9"]]);
|
|
734
|
+
function Nt(e) {
|
|
732
735
|
let a = e.split("?")[0] || e;
|
|
733
736
|
return a = a.replace(/\/query$/, ""), a = a.replace(/\/$/, ""), a = a.replace(/^https?:\/\//, ""), a.toLowerCase();
|
|
734
737
|
}
|
|
735
|
-
const
|
|
738
|
+
const fo = ["disabled"], po = /* @__PURE__ */ ge({
|
|
736
739
|
inheritAttrs: !1,
|
|
737
740
|
__name: "PhlButton",
|
|
738
741
|
props: {
|
|
@@ -754,7 +757,7 @@ const co = ["disabled"], uo = /* @__PURE__ */ ge({
|
|
|
754
757
|
svgRaw: {}
|
|
755
758
|
},
|
|
756
759
|
setup(e) {
|
|
757
|
-
const a = e, l = (u) => "href" in u && u.href !== void 0 || "to" in u && u.to !== void 0, o = _(() =>
|
|
760
|
+
const a = e, l = (u) => "href" in u && u.href !== void 0 || "to" in u && u.to !== void 0, o = _(() => bt(
|
|
758
761
|
"phila-button",
|
|
759
762
|
`phila-button--${a.variant}`,
|
|
760
763
|
a.size && `is-${a.size}`,
|
|
@@ -782,51 +785,51 @@ const co = ["disabled"], uo = /* @__PURE__ */ ge({
|
|
|
782
785
|
size: a.size
|
|
783
786
|
})
|
|
784
787
|
);
|
|
785
|
-
return (u, w) => l(a) ? (m(),
|
|
786
|
-
default:
|
|
787
|
-
|
|
788
|
-
default:
|
|
788
|
+
return (u, w) => l(a) ? (m(), q(f(ro), vt({ key: 0 }, { ...r.value, ...u.$attrs }, { role: "button" }), {
|
|
789
|
+
default: He(() => [
|
|
790
|
+
H(f(zt), Pt(Ft(n.value)), {
|
|
791
|
+
default: He(() => [
|
|
789
792
|
me(u.$slots, "default", {}, () => [
|
|
790
|
-
|
|
793
|
+
xe(G(a.text), 1)
|
|
791
794
|
])
|
|
792
795
|
]),
|
|
793
796
|
_: 3
|
|
794
797
|
}, 16)
|
|
795
798
|
]),
|
|
796
799
|
_: 3
|
|
797
|
-
}, 16)) : (m(), M("button",
|
|
800
|
+
}, 16)) : (m(), M("button", vt({
|
|
798
801
|
key: 1,
|
|
799
802
|
type: "button",
|
|
800
803
|
disabled: a.disabled,
|
|
801
804
|
class: o.value
|
|
802
805
|
}, u.$attrs), [
|
|
803
|
-
|
|
804
|
-
default:
|
|
806
|
+
H(f(zt), Pt(Ft(n.value)), {
|
|
807
|
+
default: He(() => [
|
|
805
808
|
me(u.$slots, "default", {}, () => [
|
|
806
|
-
|
|
809
|
+
xe(G(a.text), 1)
|
|
807
810
|
])
|
|
808
811
|
]),
|
|
809
812
|
_: 3
|
|
810
813
|
}, 16)
|
|
811
|
-
], 16,
|
|
814
|
+
], 16, fo));
|
|
812
815
|
}
|
|
813
816
|
});
|
|
814
|
-
var
|
|
817
|
+
var yo = {
|
|
815
818
|
prefix: "fas",
|
|
816
819
|
iconName: "circle-exclamation",
|
|
817
820
|
icon: [512, 512, ["exclamation-circle"], "f06a", "M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zm0-192a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-192c-18.2 0-32.7 15.5-31.4 33.7l7.4 104c.9 12.6 11.4 22.3 23.9 22.3 12.6 0 23-9.7 23.9-22.3l7.4-104c1.3-18.2-13.1-33.7-31.4-33.7z"]
|
|
818
|
-
},
|
|
821
|
+
}, mo = yo, ho = {
|
|
819
822
|
prefix: "fas",
|
|
820
823
|
iconName: "xmark",
|
|
821
824
|
icon: [384, 512, [128473, 10005, 10006, 10060, 215, "close", "multiply", "remove", "times"], "f00d", "M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z"]
|
|
822
|
-
},
|
|
823
|
-
const
|
|
825
|
+
}, go = ho;
|
|
826
|
+
const vo = ["for"], bo = { class: "state-layer" }, wo = { class: "content" }, Lo = { class: "input-text-container" }, So = ["id", "placeholder", "aria-label"], Co = {
|
|
824
827
|
key: 1,
|
|
825
828
|
class: "has-text-body-small phila-supporting-text"
|
|
826
|
-
},
|
|
829
|
+
}, ko = {
|
|
827
830
|
key: 2,
|
|
828
831
|
class: "has-text-body-small phila-error-text"
|
|
829
|
-
},
|
|
832
|
+
}, xo = /* @__PURE__ */ ge({
|
|
830
833
|
inheritAttrs: !1,
|
|
831
834
|
__name: "TextField",
|
|
832
835
|
props: {
|
|
@@ -844,45 +847,45 @@ const ho = ["for"], go = { class: "state-layer" }, vo = { class: "content" }, bo
|
|
|
844
847
|
},
|
|
845
848
|
emits: ["update:modelValue"],
|
|
846
849
|
setup(e, { emit: a }) {
|
|
847
|
-
const l =
|
|
850
|
+
const l = Kt(), o = e, r = _(() => typeof o.error == "string" ? o.error : o.error[0]), n = Qt(o, "id"), u = a, w = x(""), p = _({
|
|
848
851
|
get: () => o.modelValue !== void 0 ? o.modelValue : w.value,
|
|
849
852
|
set: (d) => {
|
|
850
853
|
u("update:modelValue", d), w.value = d;
|
|
851
854
|
}
|
|
852
855
|
}), C = _(() => {
|
|
853
856
|
const d = ["default-class"];
|
|
854
|
-
return l.disabled != null && d.push("phila-input--disabled"), r.value && d.push("phila-input--error"), l.required != null && d.push("phila-input--required"),
|
|
857
|
+
return l.disabled != null && d.push("phila-input--disabled"), r.value && d.push("phila-input--error"), l.required != null && d.push("phila-input--required"), bt(...d);
|
|
855
858
|
}), y = _(() => {
|
|
856
859
|
const d = [];
|
|
857
|
-
return p.value !== "" && d.push("phila-text-field--filled"), o.className && d.push(o.className),
|
|
860
|
+
return p.value !== "" && d.push("phila-text-field--filled"), o.className && d.push(o.className), bt(...d);
|
|
858
861
|
}), h = _(() => {
|
|
859
862
|
if (!(o.label || l["aria-label"]))
|
|
860
863
|
return o.placeholder || void 0;
|
|
861
|
-
}), i =
|
|
864
|
+
}), i = x(null), g = (d) => {
|
|
862
865
|
d.target.closest("button") || i.value?.focus();
|
|
863
866
|
};
|
|
864
867
|
return (d, L) => (m(), M("div", {
|
|
865
|
-
class:
|
|
868
|
+
class: ne(["phila-input", C.value])
|
|
866
869
|
}, [
|
|
867
870
|
o.label ? (m(), M("label", {
|
|
868
871
|
key: 0,
|
|
869
872
|
for: n.value,
|
|
870
873
|
class: "has-text-label-small phila-label"
|
|
871
|
-
},
|
|
874
|
+
}, G(o.label), 9, vo)) : A("", !0),
|
|
872
875
|
P("div", {
|
|
873
|
-
class:
|
|
876
|
+
class: ne(["phila-text-field", y.value]),
|
|
874
877
|
onClick: g
|
|
875
878
|
}, [
|
|
876
|
-
P("div",
|
|
877
|
-
o.leadingIcon ? (m(),
|
|
879
|
+
P("div", bo, [
|
|
880
|
+
o.leadingIcon ? (m(), q(f(ke), {
|
|
878
881
|
key: 0,
|
|
879
882
|
"icon-class": o.leadingIcon,
|
|
880
883
|
inline: "",
|
|
881
884
|
decorative: ""
|
|
882
|
-
}, null, 8, ["icon-class"])) :
|
|
883
|
-
P("div",
|
|
884
|
-
P("div",
|
|
885
|
-
|
|
885
|
+
}, null, 8, ["icon-class"])) : A("", !0),
|
|
886
|
+
P("div", wo, [
|
|
887
|
+
P("div", Lo, [
|
|
888
|
+
Zt(P("input", vt({
|
|
886
889
|
id: n.value,
|
|
887
890
|
ref_key: "inputRef",
|
|
888
891
|
ref: i,
|
|
@@ -890,75 +893,75 @@ const ho = ["for"], go = { class: "state-layer" }, vo = { class: "content" }, bo
|
|
|
890
893
|
class: "phila-text-field-input has-text-body-default",
|
|
891
894
|
placeholder: o.placeholder,
|
|
892
895
|
"aria-label": h.value
|
|
893
|
-
}, f(l)), null, 16,
|
|
894
|
-
[
|
|
896
|
+
}, f(l)), null, 16, So), [
|
|
897
|
+
[Xt, p.value]
|
|
895
898
|
])
|
|
896
899
|
])
|
|
897
900
|
]),
|
|
898
|
-
p.value != "" ? (m(),
|
|
901
|
+
p.value != "" ? (m(), q(f(po), {
|
|
899
902
|
key: 1,
|
|
900
903
|
variant: "standard",
|
|
901
904
|
size: "small",
|
|
902
905
|
"icon-only": "",
|
|
903
|
-
"icon-definition": f(
|
|
906
|
+
"icon-definition": f(go),
|
|
904
907
|
onClick: L[1] || (L[1] = (S) => p.value = "")
|
|
905
|
-
}, null, 8, ["icon-definition"])) :
|
|
906
|
-
o.trailingIcon ? (m(),
|
|
908
|
+
}, null, 8, ["icon-definition"])) : A("", !0),
|
|
909
|
+
o.trailingIcon ? (m(), q(f(ke), {
|
|
907
910
|
key: 2,
|
|
908
911
|
size: "small",
|
|
909
912
|
"icon-class": o.trailingIcon,
|
|
910
913
|
inline: "",
|
|
911
914
|
decorative: ""
|
|
912
|
-
}, null, 8, ["icon-class"])) :
|
|
915
|
+
}, null, 8, ["icon-class"])) : A("", !0),
|
|
913
916
|
me(d.$slots, "trailing-action")
|
|
914
917
|
])
|
|
915
918
|
], 2),
|
|
916
|
-
o.supportingText ? (m(), M("div",
|
|
917
|
-
r.value ? (m(), M("div",
|
|
918
|
-
|
|
919
|
-
"icon-definition": f(
|
|
919
|
+
o.supportingText ? (m(), M("div", Co, G(o.supportingText), 1)) : A("", !0),
|
|
920
|
+
r.value ? (m(), M("div", ko, [
|
|
921
|
+
H(f(ke), {
|
|
922
|
+
"icon-definition": f(mo),
|
|
920
923
|
size: "small",
|
|
921
924
|
inline: "",
|
|
922
925
|
decorative: ""
|
|
923
926
|
}, null, 8, ["icon-definition"]),
|
|
924
|
-
|
|
925
|
-
])) :
|
|
927
|
+
xe(" " + G(r.value), 1)
|
|
928
|
+
])) : A("", !0)
|
|
926
929
|
], 2));
|
|
927
930
|
}
|
|
928
931
|
});
|
|
929
|
-
var
|
|
932
|
+
var $o = {
|
|
930
933
|
prefix: "fas",
|
|
931
934
|
iconName: "filter",
|
|
932
935
|
icon: [512, 512, [], "f0b0", "M32 64C19.1 64 7.4 71.8 2.4 83.8S.2 109.5 9.4 118.6L192 301.3 192 416c0 8.5 3.4 16.6 9.4 22.6l64 64c9.2 9.2 22.9 11.9 34.9 6.9S320 492.9 320 480l0-178.7 182.6-182.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 64 480 64L32 64z"]
|
|
933
|
-
},
|
|
936
|
+
}, Mo = {
|
|
934
937
|
prefix: "fas",
|
|
935
938
|
iconName: "caret-right",
|
|
936
939
|
icon: [256, 512, [], "f0da", "M249.3 235.8c10.2 12.6 9.5 31.1-2.2 42.8l-128 128c-9.2 9.2-22.9 11.9-34.9 6.9S64.5 396.9 64.5 384l0-256c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l128 128 2.2 2.4z"]
|
|
937
|
-
},
|
|
940
|
+
}, Po = {
|
|
938
941
|
prefix: "fas",
|
|
939
942
|
iconName: "caret-left",
|
|
940
943
|
icon: [256, 512, [], "f0d9", "M7.7 235.8c-10.3 12.6-9.5 31.1 2.2 42.8l128 128c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-256c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-128 128-2.2 2.4z"]
|
|
941
|
-
},
|
|
944
|
+
}, Dt = {
|
|
942
945
|
prefix: "fas",
|
|
943
946
|
iconName: "xmark",
|
|
944
947
|
icon: [384, 512, [128473, 10005, 10006, 10060, 215, "close", "multiply", "remove", "times"], "f00d", "M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z"]
|
|
945
|
-
},
|
|
948
|
+
}, Fo = {
|
|
946
949
|
prefix: "fas",
|
|
947
950
|
iconName: "bars",
|
|
948
951
|
icon: [448, 512, ["navicon"], "f0c9", "M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"]
|
|
949
|
-
},
|
|
952
|
+
}, To = {
|
|
950
953
|
prefix: "fas",
|
|
951
954
|
iconName: "circle-info",
|
|
952
955
|
icon: [512, 512, ["info-circle"], "f05a", "M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-8 64l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]
|
|
953
956
|
};
|
|
954
|
-
const
|
|
957
|
+
const Io = {
|
|
955
958
|
key: 0,
|
|
956
959
|
class: "loading-indicator",
|
|
957
960
|
role: "status"
|
|
958
|
-
},
|
|
961
|
+
}, Eo = ["aria-label"], Oo = {
|
|
959
962
|
key: 2,
|
|
960
963
|
class: "zoom-indicator"
|
|
961
|
-
},
|
|
964
|
+
}, zo = /* @__PURE__ */ ge({
|
|
962
965
|
__name: "LayerStatusIndicators",
|
|
963
966
|
props: {
|
|
964
967
|
loading: { type: Boolean },
|
|
@@ -966,18 +969,18 @@ const Fo = {
|
|
|
966
969
|
unavailable: { type: Boolean }
|
|
967
970
|
},
|
|
968
971
|
setup(e) {
|
|
969
|
-
return (a, l) => (m(), M(
|
|
970
|
-
e.loading && !e.unavailable ? (m(), M("span",
|
|
972
|
+
return (a, l) => (m(), M(ue, null, [
|
|
973
|
+
e.loading && !e.unavailable ? (m(), M("span", Io, " Loading... ")) : A("", !0),
|
|
971
974
|
e.error ? (m(), M("span", {
|
|
972
975
|
key: 1,
|
|
973
976
|
class: "error-indicator",
|
|
974
977
|
"aria-label": e.error,
|
|
975
978
|
role: "status"
|
|
976
|
-
}, " Error ", 8,
|
|
977
|
-
e.unavailable ? (m(), M("span",
|
|
979
|
+
}, " Error ", 8, Eo)) : A("", !0),
|
|
980
|
+
e.unavailable ? (m(), M("span", Oo, " (zoom in) ")) : A("", !0)
|
|
978
981
|
], 64));
|
|
979
982
|
}
|
|
980
|
-
}),
|
|
983
|
+
}), nt = /* @__PURE__ */ $e(zo, [["__scopeId", "data-v-19b1b402"]]), Do = { class: "opacity-control" }, _o = ["for"], Ro = ["id", "value", "aria-label"], Ao = /* @__PURE__ */ ge({
|
|
981
984
|
__name: "LayerOpacitySlider",
|
|
982
985
|
props: {
|
|
983
986
|
layerId: {},
|
|
@@ -991,11 +994,11 @@ const Fo = {
|
|
|
991
994
|
const n = r.target;
|
|
992
995
|
l("update:opacity", parseFloat(n.value));
|
|
993
996
|
}
|
|
994
|
-
return (r, n) => (m(), M("div",
|
|
997
|
+
return (r, n) => (m(), M("div", Do, [
|
|
995
998
|
P("label", {
|
|
996
999
|
class: "opacity-label",
|
|
997
1000
|
for: "opacity-" + e.layerId
|
|
998
|
-
}, " Opacity: " +
|
|
1001
|
+
}, " Opacity: " + G(Math.round(e.opacity * 100)) + "% ", 9, _o),
|
|
999
1002
|
P("input", {
|
|
1000
1003
|
id: "opacity-" + e.layerId,
|
|
1001
1004
|
type: "range",
|
|
@@ -1006,10 +1009,10 @@ const Fo = {
|
|
|
1006
1009
|
"aria-label": "Opacity for " + e.layerName,
|
|
1007
1010
|
class: "opacity-slider",
|
|
1008
1011
|
onInput: o
|
|
1009
|
-
}, null, 40,
|
|
1012
|
+
}, null, 40, Ro)
|
|
1010
1013
|
]));
|
|
1011
1014
|
}
|
|
1012
|
-
}),
|
|
1015
|
+
}), Lt = /* @__PURE__ */ $e(Ao, [["__scopeId", "data-v-1a025f6a"]]), Bo = ["aria-label"], Vo = { class: "legend-label" }, Zo = /* @__PURE__ */ ge({
|
|
1013
1016
|
__name: "LayerLegend",
|
|
1014
1017
|
props: {
|
|
1015
1018
|
items: {},
|
|
@@ -1020,7 +1023,7 @@ const Fo = {
|
|
|
1020
1023
|
class: "layer-legend",
|
|
1021
1024
|
"aria-label": e.label
|
|
1022
1025
|
}, [
|
|
1023
|
-
(m(!0), M(
|
|
1026
|
+
(m(!0), M(ue, null, Le(e.items, (o, r) => (m(), M("li", {
|
|
1024
1027
|
key: r,
|
|
1025
1028
|
class: "legend-item"
|
|
1026
1029
|
}, [
|
|
@@ -1042,13 +1045,13 @@ const Fo = {
|
|
|
1042
1045
|
class: "legend-symbol legend-fill",
|
|
1043
1046
|
style: ye({ backgroundColor: o.color }),
|
|
1044
1047
|
"aria-hidden": "true"
|
|
1045
|
-
}, null, 4)) :
|
|
1046
|
-
P("span",
|
|
1048
|
+
}, null, 4)) : A("", !0),
|
|
1049
|
+
P("span", Vo, G(o.label), 1)
|
|
1047
1050
|
]))), 128))
|
|
1048
|
-
], 8,
|
|
1051
|
+
], 8, Bo));
|
|
1049
1052
|
}
|
|
1050
|
-
}),
|
|
1051
|
-
function
|
|
1053
|
+
}), St = /* @__PURE__ */ $e(Zo, [["__scopeId", "data-v-62e210e3"]]);
|
|
1054
|
+
function Ct(e) {
|
|
1052
1055
|
function a(u) {
|
|
1053
1056
|
return e().visibleLayerIds.has(u);
|
|
1054
1057
|
}
|
|
@@ -1067,19 +1070,19 @@ function Lt(e) {
|
|
|
1067
1070
|
}
|
|
1068
1071
|
return { isVisible: a, getLayerOpacity: l, isLayerLoading: o, getLayerError: r, isLayerAvailableAtZoom: n };
|
|
1069
1072
|
}
|
|
1070
|
-
const
|
|
1073
|
+
const No = { class: "layer-panel" }, Uo = {
|
|
1071
1074
|
key: 0,
|
|
1072
1075
|
class: "search-box"
|
|
1073
|
-
},
|
|
1076
|
+
}, Wo = {
|
|
1074
1077
|
key: 1,
|
|
1075
1078
|
class: "topics-container"
|
|
1076
|
-
},
|
|
1079
|
+
}, jo = { class: "layer-row" }, qo = ["href", "aria-label"], Go = {
|
|
1077
1080
|
key: 1,
|
|
1078
1081
|
class: "metadata-placeholder"
|
|
1079
|
-
},
|
|
1082
|
+
}, Ho = ["checked", "disabled", "onChange"], Jo = { class: "layer-title" }, Ko = {
|
|
1080
1083
|
key: 0,
|
|
1081
1084
|
class: "no-results"
|
|
1082
|
-
},
|
|
1085
|
+
}, Qo = /* @__PURE__ */ ge({
|
|
1083
1086
|
__name: "LayerPanel",
|
|
1084
1087
|
props: {
|
|
1085
1088
|
layerList: {},
|
|
@@ -1105,10 +1108,10 @@ const Vo = { class: "layer-panel" }, Zo = {
|
|
|
1105
1108
|
return l.layerList.filter((L) => L.config.title.toLowerCase().includes(d));
|
|
1106
1109
|
});
|
|
1107
1110
|
function n(d) {
|
|
1108
|
-
const L =
|
|
1111
|
+
const L = Nt(d);
|
|
1109
1112
|
return l.layerMetadata[L] || null;
|
|
1110
1113
|
}
|
|
1111
|
-
const u = _(() => l.layerList.some((d) => n(d.config.url))), { isVisible: w, getLayerOpacity: p, isLayerLoading: C, getLayerError: y, isLayerAvailableAtZoom: h } =
|
|
1114
|
+
const u = _(() => l.layerList.some((d) => n(d.config.url))), { isVisible: w, getLayerOpacity: p, isLayerLoading: C, getLayerError: y, isLayerAvailableAtZoom: h } = Ct(() => ({
|
|
1112
1115
|
visibleLayerIds: l.visibleLayers,
|
|
1113
1116
|
layerOpacities: l.layerOpacities,
|
|
1114
1117
|
loadingLayerIds: l.loadingLayers,
|
|
@@ -1121,17 +1124,17 @@ const Vo = { class: "layer-panel" }, Zo = {
|
|
|
1121
1124
|
function g(d) {
|
|
1122
1125
|
o("toggleLayer", d);
|
|
1123
1126
|
}
|
|
1124
|
-
return (d, L) => (m(), M("div",
|
|
1125
|
-
e.showSearch ? (m(), M("div",
|
|
1126
|
-
|
|
1127
|
+
return (d, L) => (m(), M("div", No, [
|
|
1128
|
+
e.showSearch ? (m(), M("div", Uo, [
|
|
1129
|
+
H(f(xo), {
|
|
1127
1130
|
modelValue: i.value,
|
|
1128
1131
|
"onUpdate:modelValue": L[0] || (L[0] = (S) => i.value = S),
|
|
1129
1132
|
placeholder: e.searchPlaceholder,
|
|
1130
1133
|
"class-name": "layer-search-field"
|
|
1131
1134
|
}, {
|
|
1132
|
-
"trailing-action":
|
|
1133
|
-
|
|
1134
|
-
"icon-definition": f(
|
|
1135
|
+
"trailing-action": He(() => [
|
|
1136
|
+
H(f(ke), {
|
|
1137
|
+
"icon-definition": f($o),
|
|
1135
1138
|
size: "small",
|
|
1136
1139
|
inline: "",
|
|
1137
1140
|
decorative: ""
|
|
@@ -1139,20 +1142,20 @@ const Vo = { class: "layer-panel" }, Zo = {
|
|
|
1139
1142
|
]),
|
|
1140
1143
|
_: 1
|
|
1141
1144
|
}, 8, ["modelValue", "placeholder"])
|
|
1142
|
-
])) :
|
|
1143
|
-
e.mode === "topics" ? (m(), M("div",
|
|
1145
|
+
])) : A("", !0),
|
|
1146
|
+
e.mode === "topics" ? (m(), M("div", Wo, [
|
|
1144
1147
|
me(d.$slots, "topics", {}, () => [
|
|
1145
1148
|
L[2] || (L[2] = P("div", { class: "no-topics" }, ' No topic components provided. Use the "topics" slot to add TopicAccordion components. ', -1))
|
|
1146
1149
|
], !0)
|
|
1147
1150
|
])) : (m(), M("div", {
|
|
1148
1151
|
key: 2,
|
|
1149
|
-
class:
|
|
1152
|
+
class: ne(["layer-list", { "has-metadata": u.value }])
|
|
1150
1153
|
}, [
|
|
1151
|
-
(m(!0), M(
|
|
1154
|
+
(m(!0), M(ue, null, Le(r.value, (S) => (m(), M("div", {
|
|
1152
1155
|
key: S.config.id,
|
|
1153
1156
|
class: "layer-item"
|
|
1154
1157
|
}, [
|
|
1155
|
-
P("div",
|
|
1158
|
+
P("div", jo, [
|
|
1156
1159
|
n(S.config.url) ? (m(), M("a", {
|
|
1157
1160
|
key: 0,
|
|
1158
1161
|
href: n(S.config.url) || "",
|
|
@@ -1160,18 +1163,18 @@ const Vo = { class: "layer-panel" }, Zo = {
|
|
|
1160
1163
|
rel: "noopener noreferrer",
|
|
1161
1164
|
class: "metadata-link",
|
|
1162
1165
|
"aria-label": "View metadata for " + S.config.title,
|
|
1163
|
-
onClick: L[1] || (L[1] =
|
|
1166
|
+
onClick: L[1] || (L[1] = Yt(() => {
|
|
1164
1167
|
}, ["stop"]))
|
|
1165
1168
|
}, [
|
|
1166
|
-
|
|
1167
|
-
"icon-definition": f(
|
|
1169
|
+
H(f(ke), {
|
|
1170
|
+
"icon-definition": f(To),
|
|
1168
1171
|
size: "small",
|
|
1169
1172
|
inline: "",
|
|
1170
1173
|
decorative: ""
|
|
1171
1174
|
}, null, 8, ["icon-definition"])
|
|
1172
|
-
], 8,
|
|
1175
|
+
], 8, qo)) : u.value ? (m(), M("span", Go)) : A("", !0),
|
|
1173
1176
|
P("label", {
|
|
1174
|
-
class:
|
|
1177
|
+
class: ne(["layer-checkbox", {
|
|
1175
1178
|
"layer-unavailable": !f(h)(S.config),
|
|
1176
1179
|
"layer-error": f(y)(S.config.id)
|
|
1177
1180
|
}])
|
|
@@ -1180,11 +1183,11 @@ const Vo = { class: "layer-panel" }, Zo = {
|
|
|
1180
1183
|
type: "checkbox",
|
|
1181
1184
|
checked: f(w)(S.config.id),
|
|
1182
1185
|
disabled: !f(h)(S.config),
|
|
1183
|
-
onChange: (
|
|
1184
|
-
}, null, 40,
|
|
1185
|
-
P("span",
|
|
1186
|
-
|
|
1187
|
-
|
|
1186
|
+
onChange: (E) => g(S.config.id)
|
|
1187
|
+
}, null, 40, Ho),
|
|
1188
|
+
P("span", Jo, [
|
|
1189
|
+
xe(G(S.config.title) + " ", 1),
|
|
1190
|
+
H(nt, {
|
|
1188
1191
|
loading: f(C)(S.config.id),
|
|
1189
1192
|
error: f(y)(S.config.id),
|
|
1190
1193
|
unavailable: !f(h)(S.config)
|
|
@@ -1192,24 +1195,24 @@ const Vo = { class: "layer-panel" }, Zo = {
|
|
|
1192
1195
|
])
|
|
1193
1196
|
], 2)
|
|
1194
1197
|
]),
|
|
1195
|
-
e.showOpacity && f(w)(S.config.id) && f(h)(S.config) ? (m(),
|
|
1198
|
+
e.showOpacity && f(w)(S.config.id) && f(h)(S.config) ? (m(), q(Lt, {
|
|
1196
1199
|
key: 0,
|
|
1197
1200
|
"layer-id": S.config.id,
|
|
1198
1201
|
"layer-name": S.config.title,
|
|
1199
1202
|
opacity: f(p)(S.config.id),
|
|
1200
|
-
"onUpdate:opacity": (
|
|
1201
|
-
}, null, 8, ["layer-id", "layer-name", "opacity", "onUpdate:opacity"])) :
|
|
1202
|
-
e.showLegend && f(w)(S.config.id) && f(h)(S.config) && S.config.legend?.length ? (m(),
|
|
1203
|
+
"onUpdate:opacity": (E) => o("setOpacity", S.config.id, E)
|
|
1204
|
+
}, null, 8, ["layer-id", "layer-name", "opacity", "onUpdate:opacity"])) : A("", !0),
|
|
1205
|
+
e.showLegend && f(w)(S.config.id) && f(h)(S.config) && S.config.legend?.length ? (m(), q(St, {
|
|
1203
1206
|
key: 1,
|
|
1204
1207
|
items: S.config.legend,
|
|
1205
1208
|
label: "Legend for " + S.config.title
|
|
1206
|
-
}, null, 8, ["items", "label"])) :
|
|
1209
|
+
}, null, 8, ["items", "label"])) : A("", !0)
|
|
1207
1210
|
]))), 128)),
|
|
1208
|
-
r.value.length === 0 ? (m(), M("div",
|
|
1211
|
+
r.value.length === 0 ? (m(), M("div", Ko, 'No layers match "' + G(e.searchQuery) + '"', 1)) : A("", !0)
|
|
1209
1212
|
], 2))
|
|
1210
1213
|
]));
|
|
1211
1214
|
}
|
|
1212
|
-
}),
|
|
1215
|
+
}), Xo = /* @__PURE__ */ $e(Qo, [["__scopeId", "data-v-e48bb978"]]), Yo = {
|
|
1213
1216
|
esriSLSSolid: null,
|
|
1214
1217
|
esriSLSDash: [6, 1.5],
|
|
1215
1218
|
esriSLSDot: [1, 1.5],
|
|
@@ -1217,11 +1220,11 @@ const Vo = { class: "layer-panel" }, Zo = {
|
|
|
1217
1220
|
esriSLSDashDotDot: [6, 1.5, 1, 1.5, 1, 1.5],
|
|
1218
1221
|
esriSLSNull: null
|
|
1219
1222
|
};
|
|
1220
|
-
function
|
|
1223
|
+
function Ke(e) {
|
|
1221
1224
|
if (e)
|
|
1222
|
-
return
|
|
1225
|
+
return Yo[e] ?? void 0;
|
|
1223
1226
|
}
|
|
1224
|
-
function
|
|
1227
|
+
function ea(e, a, l, o, r) {
|
|
1225
1228
|
const n = [];
|
|
1226
1229
|
let u = a[0], w = [e[0]], p = 0;
|
|
1227
1230
|
for (let i = 1; i < e.length; i++)
|
|
@@ -1230,37 +1233,37 @@ function Xo(e, a, l, o, r) {
|
|
|
1230
1233
|
const C = [], y = /* @__PURE__ */ new Set();
|
|
1231
1234
|
let h = o.minValue ?? 0;
|
|
1232
1235
|
for (let i = 0; i < n.length; i++) {
|
|
1233
|
-
const g = n[i], d = g.breaks, L =
|
|
1236
|
+
const g = n[i], d = g.breaks, L = Ke(g.style), S = i === 0 ? null : n[i - 1].breaks[n[i - 1].breaks.length - 1].classMaxValue, E = d[d.length - 1].classMaxValue;
|
|
1234
1237
|
let F;
|
|
1235
1238
|
const V = !!o.defaultSymbol;
|
|
1236
|
-
S === null ? F = `${!V && o.minValue != null ? `${l} >= ${o.minValue} AND ` : ""}${l} <= ${
|
|
1239
|
+
S === null ? F = `${!V && o.minValue != null ? `${l} >= ${o.minValue} AND ` : ""}${l} <= ${E}` : i === n.length - 1 && V ? F = `${l} > ${S}` : F = `${l} > ${S} AND ${l} <= ${E}`;
|
|
1237
1240
|
const T = {
|
|
1238
1241
|
"line-opacity": he(r)
|
|
1239
1242
|
};
|
|
1240
1243
|
if (L && (T["line-dasharray"] = L), d.length === 1)
|
|
1241
1244
|
T["line-color"] = z(d[0].symbol?.color), T["line-width"] = X(d[0].symbol?.width || 2);
|
|
1242
1245
|
else {
|
|
1243
|
-
const
|
|
1244
|
-
|
|
1246
|
+
const U = ["step", ["get", l]], de = ["step", ["get", l]];
|
|
1247
|
+
U.push(z(d[0].symbol?.color)), de.push(X(d[0].symbol?.width || 2));
|
|
1245
1248
|
for (let ve = 1; ve < d.length; ve++)
|
|
1246
|
-
|
|
1247
|
-
T["line-color"] =
|
|
1249
|
+
U.push(d[ve - 1].classMaxValue), U.push(z(d[ve].symbol?.color)), de.push(d[ve - 1].classMaxValue), de.push(X(d[ve].symbol?.width || 2));
|
|
1250
|
+
T["line-color"] = U, T["line-width"] = de;
|
|
1248
1251
|
}
|
|
1249
1252
|
const O = [];
|
|
1250
|
-
for (const
|
|
1253
|
+
for (const U of d)
|
|
1251
1254
|
O.push({
|
|
1252
1255
|
type: "line",
|
|
1253
|
-
color: z(
|
|
1254
|
-
width: X(
|
|
1255
|
-
label:
|
|
1256
|
-
}), h =
|
|
1256
|
+
color: z(U.symbol?.color),
|
|
1257
|
+
width: X(U.symbol?.width || 2),
|
|
1258
|
+
label: U.label || `${h} - ${U.classMaxValue}`
|
|
1259
|
+
}), h = U.classMaxValue + 1;
|
|
1257
1260
|
const D = g.style.replace("esriSLS", "").toLowerCase();
|
|
1258
|
-
let
|
|
1259
|
-
i === 0 ?
|
|
1261
|
+
let ee;
|
|
1262
|
+
i === 0 ? ee = "" : y.has(D) ? ee = `-${D}-${i}` : ee = `-${D}`, y.add(D), C.push({ suffix: ee, where: F, paint: T, legend: O });
|
|
1260
1263
|
}
|
|
1261
1264
|
return C;
|
|
1262
1265
|
}
|
|
1263
|
-
function
|
|
1266
|
+
function ta(e, a, l, o, r) {
|
|
1264
1267
|
const n = /* @__PURE__ */ new Map();
|
|
1265
1268
|
for (const C of e) {
|
|
1266
1269
|
const y = C.symbol?.style || "esriSLSSolid";
|
|
@@ -1269,7 +1272,7 @@ function Yo(e, a, l, o, r) {
|
|
|
1269
1272
|
const u = [], w = /* @__PURE__ */ new Set();
|
|
1270
1273
|
let p = !0;
|
|
1271
1274
|
for (const [C, y] of n) {
|
|
1272
|
-
const h =
|
|
1275
|
+
const h = Ke(C), g = y.map((F) => `${a} = '${String(F.value).replace(/'/g, "''")}'`).join(" OR "), d = {
|
|
1273
1276
|
"line-opacity": he(o)
|
|
1274
1277
|
};
|
|
1275
1278
|
if (h && (d["line-dasharray"] = h), y.length === 1)
|
|
@@ -1277,7 +1280,7 @@ function Yo(e, a, l, o, r) {
|
|
|
1277
1280
|
else {
|
|
1278
1281
|
const F = ["match", ["to-string", ["get", a]]];
|
|
1279
1282
|
for (const V of y)
|
|
1280
|
-
F.push(
|
|
1283
|
+
F.push(it(V.value)), F.push(z(V.symbol?.color));
|
|
1281
1284
|
F.push(l ? z(l.color) : "rgba(0, 0, 0, 0)"), d["line-color"] = F, d["line-width"] = X(y[0].symbol?.width || 2);
|
|
1282
1285
|
}
|
|
1283
1286
|
const L = [];
|
|
@@ -1291,8 +1294,8 @@ function Yo(e, a, l, o, r) {
|
|
|
1291
1294
|
});
|
|
1292
1295
|
}
|
|
1293
1296
|
const S = C.replace("esriSLS", "").toLowerCase();
|
|
1294
|
-
let
|
|
1295
|
-
p ?
|
|
1297
|
+
let E;
|
|
1298
|
+
p ? E = "" : w.has(S) ? E = `-${S}-${u.length}` : E = `-${S}`, w.add(S), p = !1, u.push({ suffix: E, where: g, paint: d, legend: L });
|
|
1296
1299
|
}
|
|
1297
1300
|
return u;
|
|
1298
1301
|
}
|
|
@@ -1307,23 +1310,23 @@ function he(e) {
|
|
|
1307
1310
|
function X(e) {
|
|
1308
1311
|
return Math.round(e * (96 / 72) * 10) / 10;
|
|
1309
1312
|
}
|
|
1310
|
-
const
|
|
1311
|
-
function
|
|
1312
|
-
return !e || e <= 0 ? null : Math.round(Math.log2(
|
|
1313
|
+
const oa = 559082264;
|
|
1314
|
+
function _t(e) {
|
|
1315
|
+
return !e || e <= 0 ? null : Math.round(Math.log2(oa / e) * 100) / 100;
|
|
1313
1316
|
}
|
|
1314
|
-
function
|
|
1317
|
+
function aa(e, a) {
|
|
1315
1318
|
const l = {};
|
|
1316
1319
|
if (e && e > 0) {
|
|
1317
|
-
const o =
|
|
1320
|
+
const o = _t(e);
|
|
1318
1321
|
o !== null && (l.minZoom = o);
|
|
1319
1322
|
}
|
|
1320
1323
|
if (a && a > 0) {
|
|
1321
|
-
const o =
|
|
1324
|
+
const o = _t(a);
|
|
1322
1325
|
o !== null && (l.maxZoom = o);
|
|
1323
1326
|
}
|
|
1324
1327
|
return l;
|
|
1325
1328
|
}
|
|
1326
|
-
function
|
|
1329
|
+
function st(e) {
|
|
1327
1330
|
if (!e) return "fill";
|
|
1328
1331
|
switch (e.type) {
|
|
1329
1332
|
case "esriSFS":
|
|
@@ -1340,21 +1343,21 @@ function rt(e) {
|
|
|
1340
1343
|
return "fill";
|
|
1341
1344
|
}
|
|
1342
1345
|
}
|
|
1343
|
-
function
|
|
1346
|
+
function Pe(e) {
|
|
1344
1347
|
return !(!e || e.style === "esriSLSNull" || e.color === null || e.width === 0 || e.color && e.color[3] === 0);
|
|
1345
1348
|
}
|
|
1346
|
-
function
|
|
1349
|
+
function it(e) {
|
|
1347
1350
|
return String(e);
|
|
1348
1351
|
}
|
|
1349
|
-
function
|
|
1350
|
-
const o = e.symbol, r =
|
|
1352
|
+
function Ut(e, a, l) {
|
|
1353
|
+
const o = e.symbol, r = st(o);
|
|
1351
1354
|
let n = {}, u = [], w = null;
|
|
1352
1355
|
if (r === "fill" && o) {
|
|
1353
1356
|
const p = o.color === null ? 0 : o.color?.[3] ?? 255, C = p === 0 ? "rgba(0, 0, 0, 0)" : z(o.color), y = p === 0 ? 0 : p < 255 ? 1 : he(a);
|
|
1354
1357
|
if (n = {
|
|
1355
1358
|
"fill-color": C,
|
|
1356
1359
|
"fill-opacity": y
|
|
1357
|
-
},
|
|
1360
|
+
}, Pe(o.outline)) {
|
|
1358
1361
|
const h = X(o.outline.width || 1);
|
|
1359
1362
|
w = {
|
|
1360
1363
|
"line-color": z(o.outline.color),
|
|
@@ -1374,7 +1377,7 @@ function Zt(e, a, l) {
|
|
|
1374
1377
|
"line-width": X(o.width || 1),
|
|
1375
1378
|
"line-opacity": he(a)
|
|
1376
1379
|
};
|
|
1377
|
-
const p =
|
|
1380
|
+
const p = Ke(o.style);
|
|
1378
1381
|
p && (n["line-dasharray"] = p), u = [
|
|
1379
1382
|
{
|
|
1380
1383
|
type: "line",
|
|
@@ -1389,7 +1392,7 @@ function Zt(e, a, l) {
|
|
|
1389
1392
|
"circle-color": z(o.color),
|
|
1390
1393
|
"circle-radius": p,
|
|
1391
1394
|
"circle-opacity": he(a)
|
|
1392
|
-
},
|
|
1395
|
+
}, Pe(o.outline) && (n["circle-stroke-color"] = z(o.outline.color), n["circle-stroke-width"] = X(o.outline.width || 1)), u = [
|
|
1393
1396
|
{
|
|
1394
1397
|
type: "circle",
|
|
1395
1398
|
color: z(o.color),
|
|
@@ -1399,18 +1402,18 @@ function Zt(e, a, l) {
|
|
|
1399
1402
|
}
|
|
1400
1403
|
return { paint: n, legend: u, geomType: r, outlinePaint: w };
|
|
1401
1404
|
}
|
|
1402
|
-
function
|
|
1405
|
+
function ia(e, a, l) {
|
|
1403
1406
|
const o = e.field1.toLowerCase(), r = e.uniqueValueInfos || [], n = e.defaultSymbol;
|
|
1404
1407
|
if (r.length === 0)
|
|
1405
|
-
return
|
|
1406
|
-
const u = r[0]?.symbol || n, w =
|
|
1408
|
+
return Ut({ ...e, symbol: n }, a);
|
|
1409
|
+
const u = r[0]?.symbol || n, w = st(u);
|
|
1407
1410
|
let p = {};
|
|
1408
1411
|
const C = [];
|
|
1409
1412
|
let y = null;
|
|
1410
1413
|
if (w === "fill") {
|
|
1411
1414
|
const h = ["match", ["to-string", ["get", o]]];
|
|
1412
1415
|
for (const i of r) {
|
|
1413
|
-
h.push(
|
|
1416
|
+
h.push(it(i.value)), h.push(z(i.symbol?.color));
|
|
1414
1417
|
const g = String(i.value), L = l?.get(g) || i.label || g;
|
|
1415
1418
|
C.push({
|
|
1416
1419
|
type: "fill",
|
|
@@ -1421,7 +1424,7 @@ function oa(e, a, l) {
|
|
|
1421
1424
|
if (h.push(n ? z(n.color) : "rgba(0, 0, 0, 0)"), p = {
|
|
1422
1425
|
"fill-color": h,
|
|
1423
1426
|
"fill-opacity": he(a)
|
|
1424
|
-
},
|
|
1427
|
+
}, Pe(u?.outline)) {
|
|
1425
1428
|
const i = X(Math.max(u.outline.width || 1, 1));
|
|
1426
1429
|
y = {
|
|
1427
1430
|
"line-color": z(u.outline.color),
|
|
@@ -1431,13 +1434,13 @@ function oa(e, a, l) {
|
|
|
1431
1434
|
} else if (w === "line") {
|
|
1432
1435
|
const h = ["match", ["to-string", ["get", o]]];
|
|
1433
1436
|
for (const d of r) {
|
|
1434
|
-
h.push(
|
|
1435
|
-
const L = String(d.value),
|
|
1437
|
+
h.push(it(d.value)), h.push(z(d.symbol?.color));
|
|
1438
|
+
const L = String(d.value), E = l?.get(L) || d.label || L;
|
|
1436
1439
|
C.push({
|
|
1437
1440
|
type: "line",
|
|
1438
1441
|
color: z(d.symbol?.color),
|
|
1439
1442
|
width: X(d.symbol?.width || 1),
|
|
1440
|
-
label:
|
|
1443
|
+
label: E
|
|
1441
1444
|
});
|
|
1442
1445
|
}
|
|
1443
1446
|
h.push(n ? z(n.color) : "rgba(0, 0, 0, 0)"), p = {
|
|
@@ -1447,17 +1450,17 @@ function oa(e, a, l) {
|
|
|
1447
1450
|
};
|
|
1448
1451
|
const i = r.map((d) => d.symbol?.style || "esriSLSSolid"), g = [...new Set(i)];
|
|
1449
1452
|
if (g.length > 1) {
|
|
1450
|
-
const d =
|
|
1453
|
+
const d = ta(r, o, n, a, l);
|
|
1451
1454
|
return { paint: {}, legend: [], geomType: w, outlinePaint: y, splitLayers: d };
|
|
1452
1455
|
}
|
|
1453
1456
|
if (g.length === 1) {
|
|
1454
|
-
const d =
|
|
1457
|
+
const d = Ke(g[0]);
|
|
1455
1458
|
d && (p["line-dasharray"] = d);
|
|
1456
1459
|
}
|
|
1457
1460
|
} else if (w === "circle") {
|
|
1458
1461
|
const h = ["match", ["to-string", ["get", o]]];
|
|
1459
1462
|
for (const g of r) {
|
|
1460
|
-
h.push(
|
|
1463
|
+
h.push(it(g.value)), h.push(z(g.symbol?.color));
|
|
1461
1464
|
const d = String(g.value), S = l?.get(d) || g.label || d;
|
|
1462
1465
|
C.push({
|
|
1463
1466
|
type: "circle",
|
|
@@ -1471,17 +1474,17 @@ function oa(e, a, l) {
|
|
|
1471
1474
|
"circle-color": h,
|
|
1472
1475
|
"circle-radius": i,
|
|
1473
1476
|
"circle-opacity": he(a)
|
|
1474
|
-
},
|
|
1477
|
+
}, Pe(u?.outline) && (p["circle-stroke-color"] = z(u.outline.color), p["circle-stroke-width"] = X(u.outline.width || 1));
|
|
1475
1478
|
}
|
|
1476
1479
|
return { paint: p, legend: C, geomType: w, outlinePaint: y };
|
|
1477
1480
|
}
|
|
1478
|
-
function
|
|
1481
|
+
function la(e, a) {
|
|
1479
1482
|
const l = e.field.toLowerCase(), o = e.classBreakInfos || [], r = e.visualVariables?.find((y) => y.type === "colorInfo");
|
|
1480
1483
|
if (r?.stops && r.stops.length > 0)
|
|
1481
|
-
return
|
|
1484
|
+
return na(r, l, e, a);
|
|
1482
1485
|
if (o.length === 0)
|
|
1483
1486
|
return { paint: {}, legend: [], geomType: "fill", outlinePaint: null };
|
|
1484
|
-
const n = o[0]?.symbol, u =
|
|
1487
|
+
const n = o[0]?.symbol, u = st(n);
|
|
1485
1488
|
let w = {};
|
|
1486
1489
|
const p = [];
|
|
1487
1490
|
let C = null;
|
|
@@ -1499,7 +1502,7 @@ function aa(e, a) {
|
|
|
1499
1502
|
if (w = {
|
|
1500
1503
|
"fill-color": y,
|
|
1501
1504
|
"fill-opacity": he(a)
|
|
1502
|
-
},
|
|
1505
|
+
}, Pe(n?.outline)) {
|
|
1503
1506
|
const h = X(n.outline.width || 1);
|
|
1504
1507
|
C = {
|
|
1505
1508
|
"line-color": z(n.outline.color),
|
|
@@ -1507,17 +1510,17 @@ function aa(e, a) {
|
|
|
1507
1510
|
};
|
|
1508
1511
|
}
|
|
1509
1512
|
} else if (u === "line") {
|
|
1510
|
-
const y = o.map((
|
|
1513
|
+
const y = o.map((E) => E.symbol?.style || "esriSLSSolid"), h = [...new Set(y)];
|
|
1511
1514
|
if (h.length > 1) {
|
|
1512
|
-
const
|
|
1513
|
-
return { paint: {}, legend: [], geomType: u, outlinePaint: C, splitLayers:
|
|
1515
|
+
const E = ea(o, y, l, e, a);
|
|
1516
|
+
return { paint: {}, legend: [], geomType: u, outlinePaint: C, splitLayers: E };
|
|
1514
1517
|
}
|
|
1515
1518
|
const g = ["step", ["get", l]];
|
|
1516
1519
|
g.push(z(o[0]?.symbol?.color));
|
|
1517
1520
|
let d = e.minValue ?? 0;
|
|
1518
|
-
for (let
|
|
1519
|
-
const F = o[
|
|
1520
|
-
|
|
1521
|
+
for (let E = 0; E < o.length; E++) {
|
|
1522
|
+
const F = o[E];
|
|
1523
|
+
E > 0 && (g.push(o[E - 1].classMaxValue), g.push(z(F.symbol?.color))), p.push({
|
|
1521
1524
|
type: "line",
|
|
1522
1525
|
color: z(F.symbol?.color),
|
|
1523
1526
|
width: X(F.symbol?.width || n?.width || 2),
|
|
@@ -1530,16 +1533,16 @@ function aa(e, a) {
|
|
|
1530
1533
|
"line-width": L,
|
|
1531
1534
|
"line-opacity": he(a)
|
|
1532
1535
|
};
|
|
1533
|
-
const S =
|
|
1536
|
+
const S = Ke(h[0]);
|
|
1534
1537
|
S && (w["line-dasharray"] = S);
|
|
1535
1538
|
}
|
|
1536
1539
|
return { paint: w, legend: p, geomType: u, outlinePaint: C };
|
|
1537
1540
|
}
|
|
1538
|
-
function
|
|
1541
|
+
function na(e, a, l, o) {
|
|
1539
1542
|
const r = e.stops || [];
|
|
1540
1543
|
if (r.length === 0)
|
|
1541
1544
|
return { paint: {}, legend: [], geomType: "fill", outlinePaint: null };
|
|
1542
|
-
const n = l.classBreakInfos?.[0]?.symbol || l.defaultSymbol, u =
|
|
1545
|
+
const n = l.classBreakInfos?.[0]?.symbol || l.defaultSymbol, u = st(n);
|
|
1543
1546
|
let w = {};
|
|
1544
1547
|
const p = [];
|
|
1545
1548
|
let C = null;
|
|
@@ -1561,7 +1564,7 @@ function ia(e, a, l, o) {
|
|
|
1561
1564
|
// Otherwise use the interpolated color
|
|
1562
1565
|
],
|
|
1563
1566
|
"fill-opacity": he(o)
|
|
1564
|
-
},
|
|
1567
|
+
}, Pe(n?.outline)) {
|
|
1565
1568
|
const i = X(n.outline.width || 1);
|
|
1566
1569
|
C = {
|
|
1567
1570
|
"line-color": z(n.outline.color),
|
|
@@ -1571,22 +1574,22 @@ function ia(e, a, l, o) {
|
|
|
1571
1574
|
}
|
|
1572
1575
|
return { paint: w, legend: p, geomType: u, outlinePaint: C };
|
|
1573
1576
|
}
|
|
1574
|
-
function
|
|
1577
|
+
function ra(e, a, l, o) {
|
|
1575
1578
|
if (!e?.renderer)
|
|
1576
1579
|
return { paint: {}, legend: [], geomType: "fill", outlinePaint: null };
|
|
1577
1580
|
const r = e.renderer;
|
|
1578
1581
|
switch (r.type) {
|
|
1579
1582
|
case "simple":
|
|
1580
|
-
return
|
|
1583
|
+
return Ut(r, a);
|
|
1581
1584
|
case "uniqueValue":
|
|
1582
|
-
return
|
|
1585
|
+
return ia(r, a, l);
|
|
1583
1586
|
case "classBreaks":
|
|
1584
|
-
return
|
|
1587
|
+
return la(r, a);
|
|
1585
1588
|
default:
|
|
1586
1589
|
return { paint: {}, legend: [], geomType: "fill", outlinePaint: null };
|
|
1587
1590
|
}
|
|
1588
1591
|
}
|
|
1589
|
-
function
|
|
1592
|
+
function sa(e) {
|
|
1590
1593
|
if (!e) return null;
|
|
1591
1594
|
const a = (e.title || "").replace(/\{([^}]+)\}/g, (n, u) => `{${u.toLowerCase()}}`), o = (e.fieldInfos || []).filter((n) => n.visible === !0).map((n) => {
|
|
1592
1595
|
const u = {
|
|
@@ -1600,16 +1603,16 @@ function na(e) {
|
|
|
1600
1603
|
};
|
|
1601
1604
|
return e.showTime && (r.showTime = !0), r;
|
|
1602
1605
|
}
|
|
1603
|
-
function
|
|
1606
|
+
function ca(e) {
|
|
1604
1607
|
return e?.definitionExpression;
|
|
1605
1608
|
}
|
|
1606
|
-
function
|
|
1609
|
+
function ua(e) {
|
|
1607
1610
|
return (e.includes("_") ? e.split("_").slice(1).join(" ") : e).toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
|
|
1608
1611
|
}
|
|
1609
|
-
function
|
|
1612
|
+
function da(e) {
|
|
1610
1613
|
return e.includes("_") ? e.split("_").slice(1).join(" ") : e;
|
|
1611
1614
|
}
|
|
1612
|
-
function
|
|
1615
|
+
function fa(e) {
|
|
1613
1616
|
const a = /* @__PURE__ */ new Map();
|
|
1614
1617
|
if (!e)
|
|
1615
1618
|
return a;
|
|
@@ -1624,7 +1627,7 @@ function ua(e) {
|
|
|
1624
1627
|
}
|
|
1625
1628
|
return a;
|
|
1626
1629
|
}
|
|
1627
|
-
async function
|
|
1630
|
+
async function pa(e) {
|
|
1628
1631
|
try {
|
|
1629
1632
|
const a = await fetch(`${e}?f=json`);
|
|
1630
1633
|
if (!a.ok)
|
|
@@ -1638,7 +1641,7 @@ async function da(e) {
|
|
|
1638
1641
|
return null;
|
|
1639
1642
|
}
|
|
1640
1643
|
}
|
|
1641
|
-
function
|
|
1644
|
+
function Rt(e) {
|
|
1642
1645
|
const a = {
|
|
1643
1646
|
id: e.id,
|
|
1644
1647
|
title: e.title,
|
|
@@ -1651,7 +1654,7 @@ function Dt(e) {
|
|
|
1651
1654
|
};
|
|
1652
1655
|
return e.where && (a.where = e.where), e.minZoom !== void 0 && (a.minZoom = e.minZoom), e.maxZoom !== void 0 && (a.maxZoom = e.maxZoom), e.outlinePaint && (a.outlinePaint = e.outlinePaint), e.parentId && (a.parentId = e.parentId), a;
|
|
1653
1656
|
}
|
|
1654
|
-
async function
|
|
1657
|
+
async function Wt(e) {
|
|
1655
1658
|
const a = e.operationalLayers || [], l = [], o = ["Zoning and Planning_Land Use"];
|
|
1656
1659
|
for (const r of a)
|
|
1657
1660
|
if (r.url && !r.title?.toLowerCase().includes("(under construction)") && !(r.url && /\/MapServer(\/\d+)?$/i.test(r.url)))
|
|
@@ -1659,29 +1662,29 @@ async function Nt(e) {
|
|
|
1659
1662
|
let n = r.layerDefinition?.drawingInfo, u;
|
|
1660
1663
|
const w = !n || !n.renderer, p = o.includes(r.title), C = n?.renderer?.uniqueValueInfos?.[0]?.symbol?.outline || n?.renderer?.defaultSymbol?.outline;
|
|
1661
1664
|
if ((w || p) && r.url) {
|
|
1662
|
-
const O = await
|
|
1665
|
+
const O = await pa(r.url);
|
|
1663
1666
|
if (O) {
|
|
1664
|
-
if (n = O.drawingInfo, C &&
|
|
1665
|
-
const D = n.renderer,
|
|
1666
|
-
if (!
|
|
1667
|
-
for (const
|
|
1668
|
-
|
|
1667
|
+
if (n = O.drawingInfo, C && Pe(C) && n?.renderer) {
|
|
1668
|
+
const D = n.renderer, ee = D.uniqueValueInfos?.[0]?.symbol?.outline || D.defaultSymbol?.outline;
|
|
1669
|
+
if (!Pe(ee)) {
|
|
1670
|
+
for (const U of D.uniqueValueInfos || [])
|
|
1671
|
+
U.symbol && (U.symbol.outline = C);
|
|
1669
1672
|
D.defaultSymbol && (D.defaultSymbol.outline = C);
|
|
1670
1673
|
}
|
|
1671
1674
|
}
|
|
1672
|
-
O.description && (u =
|
|
1675
|
+
O.description && (u = fa(O.description), u.size > 0);
|
|
1673
1676
|
}
|
|
1674
1677
|
}
|
|
1675
|
-
const { paint: y, legend: h, geomType: i, outlinePaint: g, splitLayers: d } =
|
|
1678
|
+
const { paint: y, legend: h, geomType: i, outlinePaint: g, splitLayers: d } = ra(
|
|
1676
1679
|
n,
|
|
1677
1680
|
r.opacity,
|
|
1678
1681
|
u,
|
|
1679
1682
|
r.title
|
|
1680
|
-
), L =
|
|
1683
|
+
), L = sa(r.popupInfo), S = ca(r.layerDefinition), E = aa(r.layerDefinition?.minScale, r.layerDefinition?.maxScale), F = ua(r.title), V = da(r.title), T = r.opacity ?? 1;
|
|
1681
1684
|
if (d && d.length > 0)
|
|
1682
1685
|
for (const O of d) {
|
|
1683
1686
|
const D = `${F}${O.suffix}`;
|
|
1684
|
-
l.push(
|
|
1687
|
+
l.push(Rt({
|
|
1685
1688
|
id: D,
|
|
1686
1689
|
title: V,
|
|
1687
1690
|
type: i,
|
|
@@ -1691,13 +1694,13 @@ async function Nt(e) {
|
|
|
1691
1694
|
legend: O.legend,
|
|
1692
1695
|
popup: L,
|
|
1693
1696
|
where: S ? `(${S}) AND (${O.where})` : O.where,
|
|
1694
|
-
minZoom:
|
|
1695
|
-
maxZoom:
|
|
1697
|
+
minZoom: E.minZoom,
|
|
1698
|
+
maxZoom: E.maxZoom,
|
|
1696
1699
|
parentId: O.suffix ? F : void 0
|
|
1697
1700
|
}));
|
|
1698
1701
|
}
|
|
1699
1702
|
else
|
|
1700
|
-
l.push(
|
|
1703
|
+
l.push(Rt({
|
|
1701
1704
|
id: F,
|
|
1702
1705
|
title: V,
|
|
1703
1706
|
type: i,
|
|
@@ -1707,32 +1710,32 @@ async function Nt(e) {
|
|
|
1707
1710
|
legend: h,
|
|
1708
1711
|
popup: L,
|
|
1709
1712
|
where: S,
|
|
1710
|
-
minZoom:
|
|
1711
|
-
maxZoom:
|
|
1713
|
+
minZoom: E.minZoom,
|
|
1714
|
+
maxZoom: E.maxZoom,
|
|
1712
1715
|
outlinePaint: g
|
|
1713
1716
|
}));
|
|
1714
1717
|
} catch {
|
|
1715
1718
|
}
|
|
1716
1719
|
return l.sort((r, n) => r.title.localeCompare(n.title)), l;
|
|
1717
1720
|
}
|
|
1718
|
-
const
|
|
1719
|
-
function
|
|
1721
|
+
const At = {}, kt = "376af635c84643cd816a8c5d017a53aa", Qa = kt;
|
|
1722
|
+
function xt(e, a) {
|
|
1720
1723
|
let l = `https://www.arcgis.com/sharing/rest/content/items/${e}/data?f=json`;
|
|
1721
1724
|
return a && (l += `&token=${a}`), l;
|
|
1722
1725
|
}
|
|
1723
|
-
function
|
|
1724
|
-
return
|
|
1726
|
+
function Xa() {
|
|
1727
|
+
return xt(kt);
|
|
1725
1728
|
}
|
|
1726
|
-
const
|
|
1727
|
-
function
|
|
1728
|
-
e ? (
|
|
1729
|
+
const rt = /* @__PURE__ */ new Map(), Je = /* @__PURE__ */ new Map();
|
|
1730
|
+
function ya(e) {
|
|
1731
|
+
e ? (rt.delete(e), Je.delete(e)) : (rt.clear(), Je.clear());
|
|
1729
1732
|
}
|
|
1730
|
-
let
|
|
1731
|
-
async function
|
|
1732
|
-
const e = typeof import.meta < "u" &&
|
|
1733
|
+
let at, Bt = 0;
|
|
1734
|
+
async function ma() {
|
|
1735
|
+
const e = typeof import.meta < "u" && At?.VITE_AGO_USERNAME, a = typeof import.meta < "u" && At?.VITE_AGO_PASSWORD;
|
|
1733
1736
|
if (!(!e || !a)) {
|
|
1734
|
-
if (
|
|
1735
|
-
return
|
|
1737
|
+
if (at && Date.now() < Bt - 3e5)
|
|
1738
|
+
return at;
|
|
1736
1739
|
try {
|
|
1737
1740
|
const o = await (await fetch("https://www.arcgis.com/sharing/rest/generateToken", {
|
|
1738
1741
|
method: "POST",
|
|
@@ -1748,14 +1751,14 @@ async function pa() {
|
|
|
1748
1751
|
// 2 hours
|
|
1749
1752
|
})
|
|
1750
1753
|
})).json();
|
|
1751
|
-
return o.error ? void 0 : (
|
|
1754
|
+
return o.error ? void 0 : (at = o.token, Bt = o.expires, at);
|
|
1752
1755
|
} catch {
|
|
1753
1756
|
return;
|
|
1754
1757
|
}
|
|
1755
1758
|
}
|
|
1756
1759
|
}
|
|
1757
|
-
async function
|
|
1758
|
-
const l =
|
|
1760
|
+
async function ha(e, a) {
|
|
1761
|
+
const l = xt(e, a), o = await fetch(l, { cache: "no-store" });
|
|
1759
1762
|
if (!o.ok)
|
|
1760
1763
|
throw new Error(`Failed to fetch WebMap: ${o.status} ${o.statusText}`);
|
|
1761
1764
|
const r = await o.json();
|
|
@@ -1763,35 +1766,35 @@ async function ya(e, a) {
|
|
|
1763
1766
|
throw new Error(`ArcGIS error: ${r.error.message || r.error.code || "Unknown error"}`);
|
|
1764
1767
|
return r;
|
|
1765
1768
|
}
|
|
1766
|
-
async function
|
|
1769
|
+
async function ga(e) {
|
|
1767
1770
|
try {
|
|
1768
|
-
const a = await
|
|
1769
|
-
return await
|
|
1771
|
+
const a = await ma(), l = await ha(e, a);
|
|
1772
|
+
return await Wt(l);
|
|
1770
1773
|
} catch (a) {
|
|
1771
1774
|
throw new Error(
|
|
1772
1775
|
`Failed to load dynamic layer configs: ${a instanceof Error ? a.message : "Unknown error"}`
|
|
1773
1776
|
);
|
|
1774
1777
|
}
|
|
1775
1778
|
}
|
|
1776
|
-
async function
|
|
1777
|
-
const a =
|
|
1779
|
+
async function wt(e = kt) {
|
|
1780
|
+
const a = rt.get(e);
|
|
1778
1781
|
if (a)
|
|
1779
1782
|
return a;
|
|
1780
|
-
const l =
|
|
1783
|
+
const l = Je.get(e);
|
|
1781
1784
|
if (l)
|
|
1782
1785
|
return l;
|
|
1783
1786
|
const o = (async () => {
|
|
1784
1787
|
try {
|
|
1785
|
-
const r = await
|
|
1786
|
-
return
|
|
1788
|
+
const r = await ga(e);
|
|
1789
|
+
return rt.set(e, r), r;
|
|
1787
1790
|
} finally {
|
|
1788
|
-
|
|
1791
|
+
Je.delete(e);
|
|
1789
1792
|
}
|
|
1790
1793
|
})();
|
|
1791
|
-
return
|
|
1794
|
+
return Je.set(e, o), o;
|
|
1792
1795
|
}
|
|
1793
|
-
function
|
|
1794
|
-
const a =
|
|
1796
|
+
function va(e) {
|
|
1797
|
+
const a = x({}), l = /* @__PURE__ */ new Map();
|
|
1795
1798
|
for (const i of e)
|
|
1796
1799
|
a.value[i.id] = {
|
|
1797
1800
|
data: null,
|
|
@@ -1829,10 +1832,10 @@ function ha(e) {
|
|
|
1829
1832
|
throw new Error(`HTTP ${L.status}: ${L.statusText}`);
|
|
1830
1833
|
d = await L.json();
|
|
1831
1834
|
} else if (i.type === "esri") {
|
|
1832
|
-
const S = `${i.url.replace(/\/$/, "")}/query?where=1%3D1&outFields=*&returnGeometry=false&f=json`,
|
|
1833
|
-
if (!
|
|
1834
|
-
throw new Error(`HTTP ${
|
|
1835
|
-
d = (await
|
|
1835
|
+
const S = `${i.url.replace(/\/$/, "")}/query?where=1%3D1&outFields=*&returnGeometry=false&f=json`, E = await fetch(S, i.options);
|
|
1836
|
+
if (!E.ok)
|
|
1837
|
+
throw new Error(`HTTP ${E.status}: ${E.statusText}`);
|
|
1838
|
+
d = (await E.json()).features?.map((V) => V.attributes) || [];
|
|
1836
1839
|
} else
|
|
1837
1840
|
throw new Error(`Unknown data source type: ${i.type}`);
|
|
1838
1841
|
i.transform && (d = i.transform(d)), a.value = {
|
|
@@ -1888,13 +1891,13 @@ function ha(e) {
|
|
|
1888
1891
|
window.clearInterval(i);
|
|
1889
1892
|
l.clear();
|
|
1890
1893
|
}
|
|
1891
|
-
return
|
|
1894
|
+
return lt(() => {
|
|
1892
1895
|
r(), y();
|
|
1893
|
-
}),
|
|
1896
|
+
}), Vt(() => {
|
|
1894
1897
|
h();
|
|
1895
1898
|
}), {
|
|
1896
1899
|
/** Reactive state for all data sources */
|
|
1897
|
-
state:
|
|
1900
|
+
state: j(a),
|
|
1898
1901
|
/** Whether any data source is currently loading */
|
|
1899
1902
|
isLoading: w,
|
|
1900
1903
|
/** Fetch all data sources */
|
|
@@ -1911,22 +1914,22 @@ function ha(e) {
|
|
|
1911
1914
|
stopPolling: h
|
|
1912
1915
|
};
|
|
1913
1916
|
}
|
|
1914
|
-
const
|
|
1917
|
+
const ba = { class: "layerboard-layout" }, wa = ["aria-expanded"], La = {
|
|
1915
1918
|
key: 0,
|
|
1916
1919
|
class: "layerboard-subtitle"
|
|
1917
|
-
},
|
|
1920
|
+
}, Sa = { class: "layerboard-mobile-menu-content" }, Ca = { class: "layerboard-main" }, ka = {
|
|
1918
1921
|
key: 0,
|
|
1919
1922
|
class: "layerboard-loading",
|
|
1920
1923
|
role: "status",
|
|
1921
1924
|
"aria-live": "polite"
|
|
1922
|
-
},
|
|
1925
|
+
}, xa = {
|
|
1923
1926
|
key: 1,
|
|
1924
1927
|
class: "layerboard-error",
|
|
1925
1928
|
role: "alert"
|
|
1926
|
-
},
|
|
1929
|
+
}, $a = ["aria-expanded", "aria-label"], Ma = { key: 0 }, Pa = { key: 1 }, Fa = {
|
|
1927
1930
|
class: "sr-only",
|
|
1928
1931
|
"aria-live": "polite"
|
|
1929
|
-
},
|
|
1932
|
+
}, Ta = /* @__PURE__ */ ge({
|
|
1930
1933
|
__name: "Layerboard",
|
|
1931
1934
|
props: {
|
|
1932
1935
|
title: {},
|
|
@@ -1956,189 +1959,189 @@ const ga = { class: "layerboard-layout" }, va = ["aria-expanded"], ba = {
|
|
|
1956
1959
|
},
|
|
1957
1960
|
emits: ["configs-loaded", "load-error", "zoom"],
|
|
1958
1961
|
setup(e, { expose: a, emit: l }) {
|
|
1959
|
-
const o = e, r = l, n =
|
|
1960
|
-
function
|
|
1962
|
+
const o = e, r = l, n = x([]), u = x(!0), w = x(null), p = x(12), C = x(""), y = x(/* @__PURE__ */ new Set()), h = x({}), i = x(/* @__PURE__ */ new Set()), g = x({}), d = x({}), L = x(/* @__PURE__ */ new Set()), S = x({});
|
|
1963
|
+
function E() {
|
|
1961
1964
|
const v = {};
|
|
1962
|
-
for (const
|
|
1963
|
-
v[
|
|
1965
|
+
for (const $ of o.tiledLayers)
|
|
1966
|
+
v[$.id] = $.opacity ?? 1;
|
|
1964
1967
|
S.value = v;
|
|
1965
1968
|
}
|
|
1966
1969
|
function F(v) {
|
|
1967
1970
|
L.value.has(v) ? L.value.delete(v) : L.value.add(v), L.value = new Set(L.value);
|
|
1968
1971
|
}
|
|
1969
|
-
function V(v,
|
|
1970
|
-
|
|
1972
|
+
function V(v, $) {
|
|
1973
|
+
$ ? L.value.add(v) : L.value.delete(v), L.value = new Set(L.value);
|
|
1971
1974
|
}
|
|
1972
|
-
function T(v,
|
|
1973
|
-
S.value = { ...S.value, [v]:
|
|
1975
|
+
function T(v, $) {
|
|
1976
|
+
S.value = { ...S.value, [v]: $ };
|
|
1974
1977
|
}
|
|
1975
|
-
const O = o.dataSources.length > 0 ?
|
|
1976
|
-
function
|
|
1978
|
+
const O = o.dataSources.length > 0 ? va(o.dataSources) : null, D = _(() => O?.state.value ?? {}), ee = _(() => O?.isLoading.value ?? !1);
|
|
1979
|
+
function U(v) {
|
|
1977
1980
|
return O?.getData(v) ?? null;
|
|
1978
1981
|
}
|
|
1979
|
-
function
|
|
1982
|
+
function de(v) {
|
|
1980
1983
|
return O?.refetch(v) ?? Promise.resolve();
|
|
1981
1984
|
}
|
|
1982
|
-
N("layerboard-layers",
|
|
1985
|
+
N("layerboard-layers", j(n)), N("layerboard-visible", y), N("layerboard-opacities", h), N("layerboard-loading", j(i)), N("layerboard-errors", j(g)), N("layerboard-zoom", j(p)), N("layerboard-toggle-layer", De), N("layerboard-set-layer-visible", je), N("layerboard-set-layers-visible", Me), N("layerboard-set-opacity", Fe), N("layerboard-tiled-layers", j(_(() => o.tiledLayers))), N("layerboard-visible-tiled", L), N("layerboard-tiled-opacities", S), N("layerboard-toggle-tiled", F), N("layerboard-set-tiled-opacity", T), N("layerboard-set-tiled-visible", V), N("layerboard-data-sources-state", D), N("layerboard-data-sources-loading", ee), N("layerboard-get-data-source", U), N("layerboard-refetch-data-source", de);
|
|
1983
1986
|
const ve = _(() => ({
|
|
1984
1987
|
backgroundColor: o.themeColor
|
|
1985
|
-
})),
|
|
1988
|
+
})), ct = _(() => ({
|
|
1986
1989
|
backgroundColor: o.themeColor
|
|
1987
|
-
})),
|
|
1990
|
+
})), Ue = _(() => ({
|
|
1988
1991
|
backgroundColor: o.themeColor
|
|
1989
|
-
})),
|
|
1990
|
-
width:
|
|
1992
|
+
})), Qe = _(() => ({
|
|
1993
|
+
width: fe.value ? "0" : o.sidebarWidth
|
|
1991
1994
|
}));
|
|
1992
|
-
async function
|
|
1995
|
+
async function We() {
|
|
1993
1996
|
try {
|
|
1994
1997
|
u.value = !0, w.value = null;
|
|
1995
|
-
const
|
|
1996
|
-
let
|
|
1997
|
-
const
|
|
1998
|
-
|
|
1999
|
-
...
|
|
2000
|
-
paint:
|
|
2001
|
-
outlinePaint:
|
|
2002
|
-
legend:
|
|
2003
|
-
type:
|
|
1998
|
+
const $ = (await wt(o.webMapId)).map((Z) => {
|
|
1999
|
+
let K = Z;
|
|
2000
|
+
const Ce = o.layerStyleOverrides[Z.id];
|
|
2001
|
+
Ce && (K = {
|
|
2002
|
+
...K,
|
|
2003
|
+
paint: Ce.paint ?? K.paint,
|
|
2004
|
+
outlinePaint: Ce.outlinePaint ?? K.outlinePaint,
|
|
2005
|
+
legend: Ce.legend ?? K.legend,
|
|
2006
|
+
type: Ce.type ?? K.type
|
|
2004
2007
|
});
|
|
2005
|
-
const
|
|
2006
|
-
return
|
|
2007
|
-
...
|
|
2008
|
-
popup: { ...
|
|
2009
|
-
}),
|
|
2008
|
+
const Ze = o.popupOverrides[Z.id] || (Z.parentId ? o.popupOverrides[Z.parentId] : void 0);
|
|
2009
|
+
return Ze && K.popup && (K = {
|
|
2010
|
+
...K,
|
|
2011
|
+
popup: { ...K.popup, ...Ze }
|
|
2012
|
+
}), K;
|
|
2010
2013
|
});
|
|
2011
|
-
n.value =
|
|
2014
|
+
n.value = $.map((Z) => ({
|
|
2012
2015
|
config: Z,
|
|
2013
2016
|
component: Z.type
|
|
2014
2017
|
}));
|
|
2015
|
-
const
|
|
2016
|
-
|
|
2017
|
-
|
|
2018
|
-
}), h.value =
|
|
2018
|
+
const J = {};
|
|
2019
|
+
$.forEach((Z) => {
|
|
2020
|
+
J[Z.id] = Z.opacity ?? 1;
|
|
2021
|
+
}), h.value = J, r("configs-loaded", $);
|
|
2019
2022
|
} catch (v) {
|
|
2020
|
-
const
|
|
2021
|
-
w.value =
|
|
2023
|
+
const $ = v instanceof Error ? v.message : "Failed to load layer configurations";
|
|
2024
|
+
w.value = $, r("load-error", $);
|
|
2022
2025
|
} finally {
|
|
2023
2026
|
u.value = !1;
|
|
2024
2027
|
}
|
|
2025
2028
|
}
|
|
2026
|
-
async function
|
|
2029
|
+
async function Xe() {
|
|
2027
2030
|
if (o.fetchMetadata)
|
|
2028
2031
|
try {
|
|
2029
2032
|
const v = "https://phl.carto.com/api/v2/sql?q=" + encodeURIComponent(
|
|
2030
2033
|
"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"
|
|
2031
|
-
),
|
|
2032
|
-
if (
|
|
2033
|
-
const
|
|
2034
|
-
for (const
|
|
2035
|
-
if (
|
|
2036
|
-
const
|
|
2037
|
-
Z[
|
|
2034
|
+
), $ = await fetch(v);
|
|
2035
|
+
if (!$.ok) return;
|
|
2036
|
+
const J = await $.json(), Z = {};
|
|
2037
|
+
for (const K of J.rows || [])
|
|
2038
|
+
if (K.url_text && K.representation) {
|
|
2039
|
+
const Ce = Nt(K.url_text), Ze = `https://metadata.phila.gov/#home/representationdetails/${K.representation}/`;
|
|
2040
|
+
Z[Ce] = Ze;
|
|
2038
2041
|
}
|
|
2039
2042
|
d.value = Z;
|
|
2040
2043
|
} catch {
|
|
2041
2044
|
}
|
|
2042
2045
|
}
|
|
2043
|
-
function
|
|
2046
|
+
function ut(v) {
|
|
2044
2047
|
p.value = v, r("zoom", v);
|
|
2045
2048
|
}
|
|
2046
|
-
function
|
|
2049
|
+
function De(v) {
|
|
2047
2050
|
y.value.has(v) ? y.value.delete(v) : y.value.add(v), y.value = new Set(y.value);
|
|
2048
2051
|
}
|
|
2049
|
-
function
|
|
2050
|
-
|
|
2052
|
+
function je(v, $) {
|
|
2053
|
+
$ ? y.value.add(v) : y.value.delete(v), y.value = new Set(y.value);
|
|
2051
2054
|
}
|
|
2052
|
-
function
|
|
2053
|
-
for (const
|
|
2054
|
-
|
|
2055
|
+
function Me(v, $) {
|
|
2056
|
+
for (const J of v)
|
|
2057
|
+
$ ? y.value.add(J) : y.value.delete(J);
|
|
2055
2058
|
y.value = new Set(y.value);
|
|
2056
2059
|
}
|
|
2057
|
-
function
|
|
2058
|
-
h.value = { ...h.value, [v]:
|
|
2060
|
+
function Fe(v, $) {
|
|
2061
|
+
h.value = { ...h.value, [v]: $ };
|
|
2059
2062
|
}
|
|
2060
|
-
function
|
|
2061
|
-
|
|
2063
|
+
function qe(v, $) {
|
|
2064
|
+
$ ? i.value.add(v) : i.value.delete(v), i.value = new Set(i.value);
|
|
2062
2065
|
}
|
|
2063
|
-
function
|
|
2064
|
-
if (
|
|
2065
|
-
g.value = { ...g.value, [v]:
|
|
2066
|
+
function dt(v, $) {
|
|
2067
|
+
if ($)
|
|
2068
|
+
g.value = { ...g.value, [v]: $ };
|
|
2066
2069
|
else {
|
|
2067
|
-
const
|
|
2068
|
-
delete
|
|
2070
|
+
const J = { ...g.value };
|
|
2071
|
+
delete J[v], g.value = J;
|
|
2069
2072
|
}
|
|
2070
2073
|
}
|
|
2071
|
-
function
|
|
2074
|
+
function re(v) {
|
|
2072
2075
|
C.value = v;
|
|
2073
2076
|
}
|
|
2074
|
-
const
|
|
2075
|
-
function
|
|
2076
|
-
|
|
2077
|
-
|
|
2077
|
+
const Te = x(null), oe = x(null), _e = x(null), Ye = x(null), be = x(null), Ge = x(null), et = x(null), Se = x("sidebar");
|
|
2078
|
+
function ft() {
|
|
2079
|
+
Se.value = Se.value === "sidebar" ? "map" : "sidebar", Ne(() => {
|
|
2080
|
+
Se.value === "sidebar" && Te.value?.focus();
|
|
2078
2081
|
});
|
|
2079
2082
|
}
|
|
2080
|
-
const
|
|
2081
|
-
function
|
|
2082
|
-
|
|
2083
|
-
|
|
2083
|
+
const ae = x(!1);
|
|
2084
|
+
function Ie() {
|
|
2085
|
+
ae.value = !ae.value, ae.value && Ne(() => {
|
|
2086
|
+
Ye.value?.focus();
|
|
2084
2087
|
});
|
|
2085
2088
|
}
|
|
2086
|
-
function
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
+
function Ee() {
|
|
2090
|
+
ae.value = !1, Ne(() => {
|
|
2091
|
+
oe.value?.focus();
|
|
2089
2092
|
});
|
|
2090
2093
|
}
|
|
2091
|
-
const
|
|
2092
|
-
function
|
|
2093
|
-
|
|
2094
|
+
const fe = x(!1);
|
|
2095
|
+
function tt() {
|
|
2096
|
+
fe.value = !fe.value;
|
|
2094
2097
|
}
|
|
2095
|
-
const
|
|
2096
|
-
function
|
|
2097
|
-
|
|
2098
|
-
|
|
2098
|
+
const ie = x(!1), Re = x(null);
|
|
2099
|
+
function Ae() {
|
|
2100
|
+
Re.value = document.activeElement, ie.value = !0, Ne(() => {
|
|
2101
|
+
et.value?.focus();
|
|
2099
2102
|
});
|
|
2100
2103
|
}
|
|
2101
|
-
function
|
|
2102
|
-
|
|
2103
|
-
|
|
2104
|
+
function le() {
|
|
2105
|
+
ie.value = !1, Ne(() => {
|
|
2106
|
+
Re.value?.focus(), Re.value = null;
|
|
2104
2107
|
});
|
|
2105
2108
|
}
|
|
2106
|
-
function Ae(v) {
|
|
2107
|
-
v.target.classList.contains("layerboard-modal-backdrop") && re();
|
|
2108
|
-
}
|
|
2109
2109
|
function Be(v) {
|
|
2110
|
+
v.target.classList.contains("layerboard-modal-backdrop") && le();
|
|
2111
|
+
}
|
|
2112
|
+
function Ve(v) {
|
|
2110
2113
|
if (v.key === "Escape") {
|
|
2111
|
-
|
|
2114
|
+
Ee();
|
|
2112
2115
|
return;
|
|
2113
2116
|
}
|
|
2114
2117
|
if (v.key === "Tab" && be.value) {
|
|
2115
|
-
const
|
|
2118
|
+
const $ = Array.from(
|
|
2116
2119
|
be.value.querySelectorAll(
|
|
2117
2120
|
'a[href], button:not([disabled]), textarea, input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])'
|
|
2118
2121
|
)
|
|
2119
2122
|
);
|
|
2120
|
-
if (
|
|
2121
|
-
const
|
|
2122
|
-
v.shiftKey ? document.activeElement ===
|
|
2123
|
+
if ($.length === 0) return;
|
|
2124
|
+
const J = $[0], Z = $[$.length - 1];
|
|
2125
|
+
v.shiftKey ? document.activeElement === J && (v.preventDefault(), Z.focus()) : document.activeElement === Z && (v.preventDefault(), J.focus());
|
|
2123
2126
|
}
|
|
2124
2127
|
}
|
|
2125
|
-
function
|
|
2128
|
+
function pt(v) {
|
|
2126
2129
|
if (v.key === "Escape") {
|
|
2127
|
-
|
|
2130
|
+
le();
|
|
2128
2131
|
return;
|
|
2129
2132
|
}
|
|
2130
|
-
if (v.key === "Tab" &&
|
|
2131
|
-
const
|
|
2132
|
-
|
|
2133
|
+
if (v.key === "Tab" && Ge.value) {
|
|
2134
|
+
const $ = Array.from(
|
|
2135
|
+
Ge.value.querySelectorAll(
|
|
2133
2136
|
'a[href], button:not([disabled]), textarea, input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])'
|
|
2134
2137
|
)
|
|
2135
2138
|
);
|
|
2136
|
-
if (
|
|
2137
|
-
const
|
|
2138
|
-
v.shiftKey ? document.activeElement ===
|
|
2139
|
+
if ($.length === 0) return;
|
|
2140
|
+
const J = $[0], Z = $[$.length - 1];
|
|
2141
|
+
v.shiftKey ? document.activeElement === J && (v.preventDefault(), Z.focus()) : document.activeElement === Z && (v.preventDefault(), J.focus());
|
|
2139
2142
|
}
|
|
2140
2143
|
}
|
|
2141
|
-
N("layerboard-open-modal",
|
|
2144
|
+
N("layerboard-open-modal", Ae), N("layerboard-close-modal", le), N("layerboard-is-modal-open", j(ie)), a({
|
|
2142
2145
|
/** Layer configurations */
|
|
2143
2146
|
layerList: n,
|
|
2144
2147
|
/** Set of visible layer IDs */
|
|
@@ -2152,17 +2155,17 @@ const ga = { class: "layerboard-layout" }, va = ["aria-expanded"], ba = {
|
|
|
2152
2155
|
/** Current map zoom level */
|
|
2153
2156
|
currentZoom: p,
|
|
2154
2157
|
/** Toggle a layer's visibility */
|
|
2155
|
-
toggleLayer:
|
|
2158
|
+
toggleLayer: De,
|
|
2156
2159
|
/** Set a layer's visibility explicitly */
|
|
2157
|
-
setLayerVisible:
|
|
2160
|
+
setLayerVisible: je,
|
|
2158
2161
|
/** Set multiple layers' visibility at once */
|
|
2159
|
-
setLayersVisible:
|
|
2162
|
+
setLayersVisible: Me,
|
|
2160
2163
|
/** Set a layer's opacity */
|
|
2161
|
-
setLayerOpacity:
|
|
2164
|
+
setLayerOpacity: Fe,
|
|
2162
2165
|
/** Reload layer configurations */
|
|
2163
|
-
reloadConfigs:
|
|
2166
|
+
reloadConfigs: We,
|
|
2164
2167
|
/** Clear configuration cache */
|
|
2165
|
-
clearCache: () =>
|
|
2168
|
+
clearCache: () => ya(o.webMapId),
|
|
2166
2169
|
// Tiled layer APIs
|
|
2167
2170
|
/** Set of visible tiled layer IDs */
|
|
2168
2171
|
visibleTiledLayers: L,
|
|
@@ -2178,28 +2181,28 @@ const ga = { class: "layerboard-layout" }, va = ["aria-expanded"], ba = {
|
|
|
2178
2181
|
/** State of all data sources */
|
|
2179
2182
|
dataSourcesState: D,
|
|
2180
2183
|
/** Whether any data source is loading */
|
|
2181
|
-
dataSourcesLoading:
|
|
2184
|
+
dataSourcesLoading: ee,
|
|
2182
2185
|
/** Get data from a specific data source */
|
|
2183
|
-
getDataSourceData:
|
|
2186
|
+
getDataSourceData: U,
|
|
2184
2187
|
/** Refetch a specific data source */
|
|
2185
|
-
refetchDataSource:
|
|
2188
|
+
refetchDataSource: de,
|
|
2186
2189
|
// Modal APIs
|
|
2187
2190
|
/** Whether the modal is currently open */
|
|
2188
|
-
isModalOpen:
|
|
2191
|
+
isModalOpen: ie,
|
|
2189
2192
|
/** Open the modal */
|
|
2190
|
-
openModal:
|
|
2193
|
+
openModal: Ae,
|
|
2191
2194
|
/** Close the modal */
|
|
2192
|
-
closeModal:
|
|
2195
|
+
closeModal: le
|
|
2193
2196
|
});
|
|
2194
|
-
function
|
|
2195
|
-
v.key === "Escape" &&
|
|
2196
|
-
}
|
|
2197
|
-
return
|
|
2198
|
-
|
|
2199
|
-
}),
|
|
2200
|
-
document.removeEventListener("keydown",
|
|
2201
|
-
}), (v,
|
|
2202
|
-
|
|
2197
|
+
function ot(v) {
|
|
2198
|
+
v.key === "Escape" && ae.value && Ee();
|
|
2199
|
+
}
|
|
2200
|
+
return lt(() => {
|
|
2201
|
+
We(), Xe(), E(), document.addEventListener("keydown", ot);
|
|
2202
|
+
}), eo(() => {
|
|
2203
|
+
document.removeEventListener("keydown", ot);
|
|
2204
|
+
}), (v, $) => (m(), M("div", ba, [
|
|
2205
|
+
$[5] || ($[5] = P("a", {
|
|
2203
2206
|
href: "#main-content",
|
|
2204
2207
|
class: "skip-to-main-content-link"
|
|
2205
2208
|
}, "Skip to main content", -1)),
|
|
@@ -2207,7 +2210,7 @@ const ga = { class: "layerboard-layout" }, va = ["aria-expanded"], ba = {
|
|
|
2207
2210
|
class: "layerboard-header",
|
|
2208
2211
|
style: ye(ve.value)
|
|
2209
2212
|
}, [
|
|
2210
|
-
|
|
2213
|
+
$[1] || ($[1] = P("a", {
|
|
2211
2214
|
href: "https://www.phila.gov/",
|
|
2212
2215
|
class: "layerboard-logo layerboard-desktop-only"
|
|
2213
2216
|
}, [
|
|
@@ -2216,30 +2219,30 @@ const ga = { class: "layerboard-layout" }, va = ["aria-expanded"], ba = {
|
|
|
2216
2219
|
alt: "City of Philadelphia"
|
|
2217
2220
|
})
|
|
2218
2221
|
], -1)),
|
|
2219
|
-
|
|
2222
|
+
$[2] || ($[2] = P("span", {
|
|
2220
2223
|
class: "layerboard-header-divider layerboard-desktop-only",
|
|
2221
2224
|
"aria-hidden": "true"
|
|
2222
2225
|
}, null, -1)),
|
|
2223
2226
|
P("button", {
|
|
2224
2227
|
ref_key: "hamburgerRef",
|
|
2225
|
-
ref:
|
|
2228
|
+
ref: oe,
|
|
2226
2229
|
class: "layerboard-hamburger layerboard-mobile-only",
|
|
2227
|
-
"aria-expanded":
|
|
2230
|
+
"aria-expanded": ae.value,
|
|
2228
2231
|
"aria-label": "Toggle menu",
|
|
2229
|
-
onClick:
|
|
2232
|
+
onClick: Ie
|
|
2230
2233
|
}, [
|
|
2231
|
-
|
|
2232
|
-
"icon-definition": f(
|
|
2234
|
+
H(f(ke), {
|
|
2235
|
+
"icon-definition": f(Fo),
|
|
2233
2236
|
size: "medium",
|
|
2234
2237
|
inline: "",
|
|
2235
2238
|
decorative: ""
|
|
2236
2239
|
}, null, 8, ["icon-definition"])
|
|
2237
|
-
], 8,
|
|
2240
|
+
], 8, wa),
|
|
2238
2241
|
me(v.$slots, "header", {}, () => [
|
|
2239
|
-
P("h1", null,
|
|
2240
|
-
e.subtitle ? (m(), M("span",
|
|
2242
|
+
P("h1", null, G(e.title), 1),
|
|
2243
|
+
e.subtitle ? (m(), M("span", La, G(e.subtitle), 1)) : A("", !0)
|
|
2241
2244
|
], !0),
|
|
2242
|
-
|
|
2245
|
+
ae.value ? (m(), M("div", {
|
|
2243
2246
|
key: 0,
|
|
2244
2247
|
ref_key: "mobileMenuRef",
|
|
2245
2248
|
ref: be,
|
|
@@ -2248,59 +2251,59 @@ const ga = { class: "layerboard-layout" }, va = ["aria-expanded"], ba = {
|
|
|
2248
2251
|
"aria-modal": "true",
|
|
2249
2252
|
"aria-label": "Site menu",
|
|
2250
2253
|
style: ye({ backgroundColor: e.themeColor }),
|
|
2251
|
-
onKeydown:
|
|
2254
|
+
onKeydown: Ve
|
|
2252
2255
|
}, [
|
|
2253
|
-
P("div",
|
|
2256
|
+
P("div", Sa, [
|
|
2254
2257
|
me(v.$slots, "footer", {
|
|
2255
|
-
openModal:
|
|
2256
|
-
closeModal:
|
|
2257
|
-
isModalOpen:
|
|
2258
|
+
openModal: Ae,
|
|
2259
|
+
closeModal: le,
|
|
2260
|
+
isModalOpen: ie.value
|
|
2258
2261
|
}, () => [
|
|
2259
|
-
|
|
2262
|
+
$[0] || ($[0] = xe(" City of Philadelphia ", -1))
|
|
2260
2263
|
], !0)
|
|
2261
2264
|
]),
|
|
2262
2265
|
P("button", {
|
|
2263
2266
|
ref_key: "mobileMenuCloseRef",
|
|
2264
|
-
ref:
|
|
2267
|
+
ref: Ye,
|
|
2265
2268
|
class: "layerboard-mobile-menu-close",
|
|
2266
2269
|
"aria-label": "Close menu",
|
|
2267
|
-
onClick:
|
|
2270
|
+
onClick: Ee
|
|
2268
2271
|
}, [
|
|
2269
|
-
|
|
2270
|
-
"icon-definition": f(
|
|
2272
|
+
H(f(ke), {
|
|
2273
|
+
"icon-definition": f(Dt),
|
|
2271
2274
|
size: "medium",
|
|
2272
2275
|
decorative: ""
|
|
2273
2276
|
}, null, 8, ["icon-definition"])
|
|
2274
2277
|
], 512)
|
|
2275
|
-
], 36)) :
|
|
2276
|
-
|
|
2278
|
+
], 36)) : A("", !0),
|
|
2279
|
+
ae.value ? (m(), M("div", {
|
|
2277
2280
|
key: 1,
|
|
2278
2281
|
class: "layerboard-mobile-menu-backdrop",
|
|
2279
|
-
onClick:
|
|
2280
|
-
})) :
|
|
2282
|
+
onClick: Ee
|
|
2283
|
+
})) : A("", !0)
|
|
2281
2284
|
], 4),
|
|
2282
|
-
P("div",
|
|
2283
|
-
u.value ? (m(), M("div",
|
|
2285
|
+
P("div", Ca, [
|
|
2286
|
+
u.value ? (m(), M("div", ka, [
|
|
2284
2287
|
P("div", {
|
|
2285
2288
|
class: "layerboard-spinner",
|
|
2286
2289
|
style: ye({ borderTopColor: e.themeColor })
|
|
2287
2290
|
}, null, 4),
|
|
2288
|
-
P("p", null, "Loading " +
|
|
2289
|
-
])) : w.value ? (m(), M("div",
|
|
2290
|
-
|
|
2291
|
-
P("p", null,
|
|
2291
|
+
P("p", null, "Loading " + G(e.title) + "...", 1)
|
|
2292
|
+
])) : w.value ? (m(), M("div", xa, [
|
|
2293
|
+
$[3] || ($[3] = P("h2", null, "Error Loading Layers", -1)),
|
|
2294
|
+
P("p", null, G(w.value), 1),
|
|
2292
2295
|
P("button", {
|
|
2293
2296
|
class: "layerboard-retry-button",
|
|
2294
2297
|
style: ye({ backgroundColor: e.themeColor }),
|
|
2295
|
-
onClick:
|
|
2298
|
+
onClick: We
|
|
2296
2299
|
}, " Retry ", 4)
|
|
2297
|
-
])) : (m(), M(
|
|
2300
|
+
])) : (m(), M(ue, { key: 2 }, [
|
|
2298
2301
|
P("aside", {
|
|
2299
2302
|
id: "main-content",
|
|
2300
2303
|
ref_key: "sidebarRef",
|
|
2301
|
-
ref:
|
|
2302
|
-
class:
|
|
2303
|
-
style: ye(
|
|
2304
|
+
ref: Te,
|
|
2305
|
+
class: ne(["layerboard-sidebar", { "is-active": Se.value === "sidebar" }]),
|
|
2306
|
+
style: ye(Qe.value),
|
|
2304
2307
|
"aria-label": "Map layers",
|
|
2305
2308
|
tabindex: "-1"
|
|
2306
2309
|
}, [
|
|
@@ -2311,10 +2314,10 @@ const ga = { class: "layerboard-layout" }, va = ["aria-expanded"], ba = {
|
|
|
2311
2314
|
loadingLayers: i.value,
|
|
2312
2315
|
layerErrors: g.value,
|
|
2313
2316
|
currentZoom: p.value,
|
|
2314
|
-
toggleLayer:
|
|
2315
|
-
setLayerVisible:
|
|
2316
|
-
setLayersVisible:
|
|
2317
|
-
setOpacity:
|
|
2317
|
+
toggleLayer: De,
|
|
2318
|
+
setLayerVisible: je,
|
|
2319
|
+
setLayersVisible: Me,
|
|
2320
|
+
setOpacity: Fe,
|
|
2318
2321
|
tiledLayers: e.tiledLayers,
|
|
2319
2322
|
visibleTiledLayers: L.value,
|
|
2320
2323
|
tiledLayerOpacities: S.value,
|
|
@@ -2322,11 +2325,11 @@ const ga = { class: "layerboard-layout" }, va = ["aria-expanded"], ba = {
|
|
|
2322
2325
|
setTiledLayerVisible: V,
|
|
2323
2326
|
setTiledLayerOpacity: T,
|
|
2324
2327
|
dataSourcesState: D.value,
|
|
2325
|
-
dataSourcesLoading:
|
|
2326
|
-
getDataSource:
|
|
2327
|
-
refetchDataSource:
|
|
2328
|
+
dataSourcesLoading: ee.value,
|
|
2329
|
+
getDataSource: U,
|
|
2330
|
+
refetchDataSource: de
|
|
2328
2331
|
}, () => [
|
|
2329
|
-
e.showDefaultSidebar ? (m(),
|
|
2332
|
+
e.showDefaultSidebar ? (m(), q(Xo, {
|
|
2330
2333
|
key: 0,
|
|
2331
2334
|
"layer-list": n.value,
|
|
2332
2335
|
"visible-layers": y.value,
|
|
@@ -2336,18 +2339,18 @@ const ga = { class: "layerboard-layout" }, va = ["aria-expanded"], ba = {
|
|
|
2336
2339
|
"current-zoom": p.value,
|
|
2337
2340
|
"search-query": C.value,
|
|
2338
2341
|
"layer-metadata": d.value,
|
|
2339
|
-
onToggleLayer:
|
|
2340
|
-
onSetOpacity:
|
|
2341
|
-
onUpdateSearch:
|
|
2342
|
-
}, null, 8, ["layer-list", "visible-layers", "layer-opacities", "loading-layers", "layer-errors", "current-zoom", "search-query", "layer-metadata"])) :
|
|
2342
|
+
onToggleLayer: De,
|
|
2343
|
+
onSetOpacity: Fe,
|
|
2344
|
+
onUpdateSearch: re
|
|
2345
|
+
}, null, 8, ["layer-list", "visible-layers", "layer-opacities", "loading-layers", "layer-errors", "current-zoom", "search-query", "layer-metadata"])) : A("", !0)
|
|
2343
2346
|
], !0)
|
|
2344
2347
|
], 6),
|
|
2345
2348
|
P("div", {
|
|
2346
2349
|
role: "main",
|
|
2347
2350
|
"aria-label": "Map",
|
|
2348
|
-
class:
|
|
2351
|
+
class: ne(["layerboard-map", { "is-active": Se.value === "map" }])
|
|
2349
2352
|
}, [
|
|
2350
|
-
|
|
2353
|
+
H(uo, {
|
|
2351
2354
|
"visible-layers": y.value,
|
|
2352
2355
|
"layer-opacities": h.value,
|
|
2353
2356
|
"layer-list": n.value,
|
|
@@ -2365,56 +2368,56 @@ const ga = { class: "layerboard-layout" }, va = ["aria-expanded"], ba = {
|
|
|
2365
2368
|
"pictometry-button-position": e.pictometryButtonPosition,
|
|
2366
2369
|
"initial-zoom": e.initialZoom,
|
|
2367
2370
|
"initial-center": e.initialCenter,
|
|
2368
|
-
onZoom:
|
|
2369
|
-
onLayerLoading:
|
|
2370
|
-
onLayerError:
|
|
2371
|
+
onZoom: ut,
|
|
2372
|
+
onLayerLoading: qe,
|
|
2373
|
+
onLayerError: dt
|
|
2371
2374
|
}, null, 8, ["visible-layers", "layer-opacities", "layer-list", "tiled-layers", "visible-tiled-layers", "tiled-layer-opacities", "cyclomedia-config", "pictometry-credentials", "basemap-control-position", "navigation-control-position", "geolocation-control-position", "search-control-position", "draw-control-position", "cyclomedia-button-position", "pictometry-button-position", "initial-zoom", "initial-center"])
|
|
2372
2375
|
], 2),
|
|
2373
2376
|
P("button", {
|
|
2374
|
-
class:
|
|
2375
|
-
style: ye({ left:
|
|
2376
|
-
"aria-expanded": !
|
|
2377
|
-
"aria-label":
|
|
2378
|
-
onClick:
|
|
2377
|
+
class: ne(["layerboard-sidebar-toggle", { "is-collapsed": fe.value }]),
|
|
2378
|
+
style: ye({ left: fe.value ? "0" : o.sidebarWidth }),
|
|
2379
|
+
"aria-expanded": !fe.value,
|
|
2380
|
+
"aria-label": fe.value ? "Expand sidebar" : "Collapse sidebar",
|
|
2381
|
+
onClick: tt
|
|
2379
2382
|
}, [
|
|
2380
|
-
|
|
2381
|
-
"icon-definition":
|
|
2383
|
+
H(f(ke), {
|
|
2384
|
+
"icon-definition": fe.value ? f(Mo) : f(Po),
|
|
2382
2385
|
size: "medium",
|
|
2383
2386
|
decorative: ""
|
|
2384
2387
|
}, null, 8, ["icon-definition"])
|
|
2385
|
-
], 14,
|
|
2388
|
+
], 14, $a)
|
|
2386
2389
|
], 64))
|
|
2387
2390
|
]),
|
|
2388
2391
|
P("button", {
|
|
2389
2392
|
ref_key: "mobileToggleRef",
|
|
2390
|
-
ref:
|
|
2393
|
+
ref: _e,
|
|
2391
2394
|
class: "layerboard-mobile-toggle",
|
|
2392
|
-
style: ye(
|
|
2393
|
-
onClick:
|
|
2395
|
+
style: ye(Ue.value),
|
|
2396
|
+
onClick: ft
|
|
2394
2397
|
}, [
|
|
2395
|
-
|
|
2398
|
+
Se.value === "map" ? (m(), M("span", Ma, G(e.sidebarLabel), 1)) : (m(), M("span", Pa, G(e.mapLabel), 1))
|
|
2396
2399
|
], 4),
|
|
2397
2400
|
P("footer", {
|
|
2398
2401
|
class: "layerboard-footer",
|
|
2399
|
-
style: ye(
|
|
2402
|
+
style: ye(ct.value)
|
|
2400
2403
|
}, [
|
|
2401
2404
|
me(v.$slots, "footer", {
|
|
2402
|
-
openModal:
|
|
2403
|
-
closeModal:
|
|
2404
|
-
isModalOpen:
|
|
2405
|
+
openModal: Ae,
|
|
2406
|
+
closeModal: le,
|
|
2407
|
+
isModalOpen: ie.value
|
|
2405
2408
|
}, () => [
|
|
2406
|
-
|
|
2409
|
+
$[4] || ($[4] = xe(" City of Philadelphia ", -1))
|
|
2407
2410
|
], !0)
|
|
2408
2411
|
], 4),
|
|
2409
|
-
|
|
2412
|
+
ie.value ? (m(), M("div", {
|
|
2410
2413
|
key: 0,
|
|
2411
2414
|
class: "layerboard-modal-backdrop",
|
|
2412
|
-
onClick:
|
|
2413
|
-
onKeydown:
|
|
2415
|
+
onClick: Be,
|
|
2416
|
+
onKeydown: pt
|
|
2414
2417
|
}, [
|
|
2415
2418
|
P("div", {
|
|
2416
2419
|
ref_key: "modalRef",
|
|
2417
|
-
ref:
|
|
2420
|
+
ref: Ge,
|
|
2418
2421
|
class: "layerboard-modal",
|
|
2419
2422
|
role: "dialog",
|
|
2420
2423
|
"aria-modal": "true",
|
|
@@ -2422,27 +2425,27 @@ const ga = { class: "layerboard-layout" }, va = ["aria-expanded"], ba = {
|
|
|
2422
2425
|
}, [
|
|
2423
2426
|
P("button", {
|
|
2424
2427
|
ref_key: "modalCloseRef",
|
|
2425
|
-
ref:
|
|
2428
|
+
ref: et,
|
|
2426
2429
|
class: "layerboard-modal-close",
|
|
2427
2430
|
"aria-label": "Close modal",
|
|
2428
|
-
onClick:
|
|
2431
|
+
onClick: le
|
|
2429
2432
|
}, [
|
|
2430
|
-
|
|
2431
|
-
"icon-definition": f(
|
|
2433
|
+
H(f(ke), {
|
|
2434
|
+
"icon-definition": f(Dt),
|
|
2432
2435
|
size: "medium",
|
|
2433
2436
|
decorative: ""
|
|
2434
2437
|
}, null, 8, ["icon-definition"])
|
|
2435
2438
|
], 512),
|
|
2436
|
-
me(v.$slots, "modal", { closeModal:
|
|
2439
|
+
me(v.$slots, "modal", { closeModal: le }, void 0, !0)
|
|
2437
2440
|
], 512)
|
|
2438
|
-
], 32)) :
|
|
2439
|
-
P("span",
|
|
2441
|
+
], 32)) : A("", !0),
|
|
2442
|
+
P("span", Fa, G(Se.value === "sidebar" ? "Showing layers panel" : "Showing map"), 1)
|
|
2440
2443
|
]));
|
|
2441
2444
|
}
|
|
2442
|
-
}),
|
|
2445
|
+
}), Ya = /* @__PURE__ */ $e(Ta, [["__scopeId", "data-v-b6c04107"]]), Ia = ["aria-expanded"], Ea = {
|
|
2443
2446
|
key: 0,
|
|
2444
2447
|
class: "topic-icon"
|
|
2445
|
-
},
|
|
2448
|
+
}, Oa = { class: "topic-title" }, za = /* @__PURE__ */ ge({
|
|
2446
2449
|
__name: "TopicAccordion",
|
|
2447
2450
|
props: {
|
|
2448
2451
|
title: {},
|
|
@@ -2453,8 +2456,8 @@ const ga = { class: "layerboard-layout" }, va = ["aria-expanded"], ba = {
|
|
|
2453
2456
|
},
|
|
2454
2457
|
emits: ["toggle", "layerChange"],
|
|
2455
2458
|
setup(e, { emit: a }) {
|
|
2456
|
-
const l = e, o = a, r =
|
|
2457
|
-
|
|
2459
|
+
const l = e, o = a, r = x(l.expanded), n = `topic-panel-${Tt()}`, u = `topic-header-${Tt()}`;
|
|
2460
|
+
Oe(
|
|
2458
2461
|
() => l.expanded,
|
|
2459
2462
|
(p) => {
|
|
2460
2463
|
r.value = p;
|
|
@@ -2464,30 +2467,30 @@ const ga = { class: "layerboard-layout" }, va = ["aria-expanded"], ba = {
|
|
|
2464
2467
|
r.value = !r.value, o("toggle", r.value);
|
|
2465
2468
|
}
|
|
2466
2469
|
return (p, C) => {
|
|
2467
|
-
const y =
|
|
2470
|
+
const y = to("font-awesome-icon");
|
|
2468
2471
|
return m(), M("div", {
|
|
2469
|
-
class:
|
|
2472
|
+
class: ne(["topic-accordion", { "is-expanded": r.value }])
|
|
2470
2473
|
}, [
|
|
2471
2474
|
P("button", {
|
|
2472
2475
|
id: u,
|
|
2473
|
-
class:
|
|
2476
|
+
class: ne(["topic-header", e.headerClass]),
|
|
2474
2477
|
type: "button",
|
|
2475
2478
|
"aria-expanded": r.value,
|
|
2476
2479
|
"aria-controls": n,
|
|
2477
2480
|
onClick: w
|
|
2478
2481
|
}, [
|
|
2479
|
-
e.icon || p.$slots.icon ? (m(), M("span",
|
|
2482
|
+
e.icon || p.$slots.icon ? (m(), M("span", Ea, [
|
|
2480
2483
|
me(p.$slots, "icon", {}, () => [
|
|
2481
|
-
e.icon ? (m(),
|
|
2484
|
+
e.icon ? (m(), q(y, {
|
|
2482
2485
|
key: 0,
|
|
2483
2486
|
icon: ["fas", e.icon],
|
|
2484
2487
|
"aria-hidden": "true"
|
|
2485
|
-
}, null, 8, ["icon"])) :
|
|
2488
|
+
}, null, 8, ["icon"])) : A("", !0)
|
|
2486
2489
|
], !0)
|
|
2487
|
-
])) :
|
|
2488
|
-
P("span",
|
|
2490
|
+
])) : A("", !0),
|
|
2491
|
+
P("span", Oa, G(e.title), 1),
|
|
2489
2492
|
P("span", {
|
|
2490
|
-
class:
|
|
2493
|
+
class: ne(["topic-chevron", { "is-rotated": r.value }])
|
|
2491
2494
|
}, [...C[0] || (C[0] = [
|
|
2492
2495
|
P("svg", {
|
|
2493
2496
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -2504,8 +2507,8 @@ const ga = { class: "layerboard-layout" }, va = ["aria-expanded"], ba = {
|
|
|
2504
2507
|
P("polyline", { points: "6 9 12 15 18 9" })
|
|
2505
2508
|
], -1)
|
|
2506
2509
|
])], 2)
|
|
2507
|
-
], 10,
|
|
2508
|
-
|
|
2510
|
+
], 10, Ia),
|
|
2511
|
+
Zt(P("div", {
|
|
2509
2512
|
id: n,
|
|
2510
2513
|
role: "region",
|
|
2511
2514
|
"aria-labelledby": u,
|
|
@@ -2515,28 +2518,28 @@ const ga = { class: "layerboard-layout" }, va = ["aria-expanded"], ba = {
|
|
|
2515
2518
|
C[1] || (C[1] = P("p", { class: "topic-empty" }, "No content provided for this topic.", -1))
|
|
2516
2519
|
], !0)
|
|
2517
2520
|
], 512), [
|
|
2518
|
-
[
|
|
2521
|
+
[oo, r.value]
|
|
2519
2522
|
])
|
|
2520
2523
|
], 2);
|
|
2521
2524
|
};
|
|
2522
2525
|
}
|
|
2523
|
-
}),
|
|
2524
|
-
function
|
|
2526
|
+
}), ei = /* @__PURE__ */ $e(za, [["__scopeId", "data-v-a2023afa"]]);
|
|
2527
|
+
function Da(e) {
|
|
2525
2528
|
return e.displayOptions?.shouldShowCheckbox !== !1;
|
|
2526
2529
|
}
|
|
2527
|
-
function
|
|
2530
|
+
function jt(e, a) {
|
|
2528
2531
|
return a ? e.displayOptions?.shouldShowSlider !== !1 : !1;
|
|
2529
2532
|
}
|
|
2530
|
-
function
|
|
2533
|
+
function qt(e, a) {
|
|
2531
2534
|
return a ? e.displayOptions?.shouldShowLegendBox !== !1 : !1;
|
|
2532
2535
|
}
|
|
2533
|
-
function
|
|
2536
|
+
function ze(e) {
|
|
2534
2537
|
return e.displayOptions?.layerNameChange || e.title;
|
|
2535
2538
|
}
|
|
2536
|
-
const
|
|
2539
|
+
const _a = ["aria-label"], Ra = ["checked", "disabled", "onChange"], Aa = { class: "layer-title" }, Ba = { class: "layer-title" }, Va = {
|
|
2537
2540
|
key: 0,
|
|
2538
2541
|
class: "empty-state"
|
|
2539
|
-
},
|
|
2542
|
+
}, Za = /* @__PURE__ */ ge({
|
|
2540
2543
|
__name: "LayerCheckboxSet",
|
|
2541
2544
|
props: {
|
|
2542
2545
|
layers: {},
|
|
@@ -2551,7 +2554,7 @@ const za = ["aria-label"], Da = ["checked", "disabled", "onChange"], _a = { clas
|
|
|
2551
2554
|
},
|
|
2552
2555
|
emits: ["toggleLayer", "setOpacity"],
|
|
2553
2556
|
setup(e, { emit: a }) {
|
|
2554
|
-
const l = e, o = a, { isVisible: r, getLayerOpacity: n, isLayerLoading: u, getLayerError: w, isLayerAvailableAtZoom: p } =
|
|
2557
|
+
const l = e, o = a, { isVisible: r, getLayerOpacity: n, isLayerLoading: u, getLayerError: w, isLayerAvailableAtZoom: p } = Ct(
|
|
2555
2558
|
() => l
|
|
2556
2559
|
);
|
|
2557
2560
|
function C(y) {
|
|
@@ -2562,13 +2565,13 @@ const za = ["aria-label"], Da = ["checked", "disabled", "onChange"], _a = { clas
|
|
|
2562
2565
|
role: "group",
|
|
2563
2566
|
"aria-label": e.groupLabel
|
|
2564
2567
|
}, [
|
|
2565
|
-
(m(!0), M(
|
|
2568
|
+
(m(!0), M(ue, null, Le(e.layers, (i) => (m(), M("div", {
|
|
2566
2569
|
key: i.id,
|
|
2567
2570
|
class: "layer-item"
|
|
2568
2571
|
}, [
|
|
2569
|
-
f(
|
|
2572
|
+
f(Da)(i) ? (m(), M("label", {
|
|
2570
2573
|
key: 0,
|
|
2571
|
-
class:
|
|
2574
|
+
class: ne(["layer-checkbox", {
|
|
2572
2575
|
"layer-unavailable": !f(p)(i),
|
|
2573
2576
|
"layer-error": f(w)(i.id)
|
|
2574
2577
|
}])
|
|
@@ -2578,10 +2581,10 @@ const za = ["aria-label"], Da = ["checked", "disabled", "onChange"], _a = { clas
|
|
|
2578
2581
|
checked: f(r)(i.id),
|
|
2579
2582
|
disabled: !f(p)(i),
|
|
2580
2583
|
onChange: (g) => C(i.id)
|
|
2581
|
-
}, null, 40,
|
|
2582
|
-
P("span",
|
|
2583
|
-
|
|
2584
|
-
|
|
2584
|
+
}, null, 40, Ra),
|
|
2585
|
+
P("span", Aa, [
|
|
2586
|
+
xe(G(f(ze)(i)) + " ", 1),
|
|
2587
|
+
H(nt, {
|
|
2585
2588
|
loading: f(u)(i.id),
|
|
2586
2589
|
error: f(w)(i.id),
|
|
2587
2590
|
unavailable: !f(p)(i)
|
|
@@ -2589,40 +2592,40 @@ const za = ["aria-label"], Da = ["checked", "disabled", "onChange"], _a = { clas
|
|
|
2589
2592
|
])
|
|
2590
2593
|
], 2)) : (m(), M("div", {
|
|
2591
2594
|
key: 1,
|
|
2592
|
-
class:
|
|
2595
|
+
class: ne(["layer-label-only", {
|
|
2593
2596
|
"layer-unavailable": !f(p)(i),
|
|
2594
2597
|
"layer-error": f(w)(i.id)
|
|
2595
2598
|
}])
|
|
2596
2599
|
}, [
|
|
2597
|
-
P("span",
|
|
2598
|
-
|
|
2599
|
-
|
|
2600
|
+
P("span", Ba, [
|
|
2601
|
+
xe(G(f(ze)(i)) + " ", 1),
|
|
2602
|
+
H(nt, {
|
|
2600
2603
|
loading: f(u)(i.id),
|
|
2601
2604
|
error: f(w)(i.id),
|
|
2602
2605
|
unavailable: !f(p)(i)
|
|
2603
2606
|
}, null, 8, ["loading", "error", "unavailable"])
|
|
2604
2607
|
])
|
|
2605
2608
|
], 2)),
|
|
2606
|
-
f(
|
|
2609
|
+
f(jt)(i, e.showOpacity) && f(r)(i.id) && f(p)(i) ? (m(), q(Lt, {
|
|
2607
2610
|
key: 2,
|
|
2608
2611
|
"layer-id": i.id,
|
|
2609
|
-
"layer-name": f(
|
|
2612
|
+
"layer-name": f(ze)(i),
|
|
2610
2613
|
opacity: f(n)(i.id),
|
|
2611
2614
|
"onUpdate:opacity": (g) => o("setOpacity", i.id, g)
|
|
2612
|
-
}, null, 8, ["layer-id", "layer-name", "opacity", "onUpdate:opacity"])) :
|
|
2613
|
-
f(
|
|
2615
|
+
}, null, 8, ["layer-id", "layer-name", "opacity", "onUpdate:opacity"])) : A("", !0),
|
|
2616
|
+
f(qt)(i, e.showLegend) && f(r)(i.id) && f(p)(i) && i.legend?.length ? (m(), q(St, {
|
|
2614
2617
|
key: 3,
|
|
2615
2618
|
items: i.legend,
|
|
2616
|
-
label: "Legend for " + f(
|
|
2617
|
-
}, null, 8, ["items", "label"])) :
|
|
2619
|
+
label: "Legend for " + f(ze)(i)
|
|
2620
|
+
}, null, 8, ["items", "label"])) : A("", !0)
|
|
2618
2621
|
]))), 128)),
|
|
2619
|
-
e.layers.length === 0 ? (m(), M("div",
|
|
2620
|
-
], 8,
|
|
2622
|
+
e.layers.length === 0 ? (m(), M("div", Va, "No layers available")) : A("", !0)
|
|
2623
|
+
], 8, _a));
|
|
2621
2624
|
}
|
|
2622
|
-
}),
|
|
2625
|
+
}), ti = /* @__PURE__ */ $e(Za, [["__scopeId", "data-v-bfcd7855"]]), Na = ["aria-label"], Ua = ["name", "checked", "disabled", "onChange"], Wa = { class: "layer-title" }, ja = {
|
|
2623
2626
|
key: 0,
|
|
2624
2627
|
class: "empty-state"
|
|
2625
|
-
},
|
|
2628
|
+
}, qa = /* @__PURE__ */ ge({
|
|
2626
2629
|
__name: "LayerRadioButtonSet",
|
|
2627
2630
|
props: {
|
|
2628
2631
|
layers: {},
|
|
@@ -2638,7 +2641,7 @@ const za = ["aria-label"], Da = ["checked", "disabled", "onChange"], _a = { clas
|
|
|
2638
2641
|
},
|
|
2639
2642
|
emits: ["selectLayer", "setOpacity"],
|
|
2640
2643
|
setup(e, { emit: a }) {
|
|
2641
|
-
const l = e, o = a, { isVisible: r, getLayerOpacity: n, isLayerLoading: u, getLayerError: w, isLayerAvailableAtZoom: p } =
|
|
2644
|
+
const l = e, o = a, { isVisible: r, getLayerOpacity: n, isLayerLoading: u, getLayerError: w, isLayerAvailableAtZoom: p } = Ct(
|
|
2642
2645
|
() => l
|
|
2643
2646
|
);
|
|
2644
2647
|
function C(y) {
|
|
@@ -2650,12 +2653,12 @@ const za = ["aria-label"], Da = ["checked", "disabled", "onChange"], _a = { clas
|
|
|
2650
2653
|
role: "radiogroup",
|
|
2651
2654
|
"aria-label": e.groupLabel
|
|
2652
2655
|
}, [
|
|
2653
|
-
(m(!0), M(
|
|
2656
|
+
(m(!0), M(ue, null, Le(e.layers, (i) => (m(), M("div", {
|
|
2654
2657
|
key: i.id,
|
|
2655
2658
|
class: "layer-item"
|
|
2656
2659
|
}, [
|
|
2657
2660
|
P("label", {
|
|
2658
|
-
class:
|
|
2661
|
+
class: ne(["layer-radio", {
|
|
2659
2662
|
"layer-unavailable": !f(p)(i),
|
|
2660
2663
|
"layer-error": f(w)(i.id)
|
|
2661
2664
|
}])
|
|
@@ -2666,35 +2669,35 @@ const za = ["aria-label"], Da = ["checked", "disabled", "onChange"], _a = { clas
|
|
|
2666
2669
|
checked: f(r)(i.id),
|
|
2667
2670
|
disabled: !f(p)(i),
|
|
2668
2671
|
onChange: (g) => C(i.id)
|
|
2669
|
-
}, null, 40,
|
|
2670
|
-
P("span",
|
|
2671
|
-
|
|
2672
|
-
|
|
2672
|
+
}, null, 40, Ua),
|
|
2673
|
+
P("span", Wa, [
|
|
2674
|
+
xe(G(f(ze)(i)) + " ", 1),
|
|
2675
|
+
H(nt, {
|
|
2673
2676
|
loading: f(u)(i.id),
|
|
2674
2677
|
error: f(w)(i.id),
|
|
2675
2678
|
unavailable: !f(p)(i)
|
|
2676
2679
|
}, null, 8, ["loading", "error", "unavailable"])
|
|
2677
2680
|
])
|
|
2678
2681
|
], 2),
|
|
2679
|
-
f(
|
|
2682
|
+
f(jt)(i, e.showOpacity) && f(r)(i.id) && f(p)(i) ? (m(), q(Lt, {
|
|
2680
2683
|
key: 0,
|
|
2681
2684
|
"layer-id": i.id,
|
|
2682
|
-
"layer-name": f(
|
|
2685
|
+
"layer-name": f(ze)(i),
|
|
2683
2686
|
opacity: f(n)(i.id),
|
|
2684
2687
|
"onUpdate:opacity": (g) => o("setOpacity", i.id, g)
|
|
2685
|
-
}, null, 8, ["layer-id", "layer-name", "opacity", "onUpdate:opacity"])) :
|
|
2686
|
-
f(
|
|
2688
|
+
}, null, 8, ["layer-id", "layer-name", "opacity", "onUpdate:opacity"])) : A("", !0),
|
|
2689
|
+
f(qt)(i, e.showLegend) && f(r)(i.id) && f(p)(i) && i.legend?.length ? (m(), q(St, {
|
|
2687
2690
|
key: 1,
|
|
2688
2691
|
items: i.legend,
|
|
2689
|
-
label: "Legend for " + f(
|
|
2690
|
-
}, null, 8, ["items", "label"])) :
|
|
2692
|
+
label: "Legend for " + f(ze)(i)
|
|
2693
|
+
}, null, 8, ["items", "label"])) : A("", !0)
|
|
2691
2694
|
]))), 128)),
|
|
2692
|
-
e.layers.length === 0 ? (m(), M("div",
|
|
2693
|
-
], 8,
|
|
2695
|
+
e.layers.length === 0 ? (m(), M("div", ja, "No layers available")) : A("", !0)
|
|
2696
|
+
], 8, Na));
|
|
2694
2697
|
}
|
|
2695
|
-
}),
|
|
2696
|
-
function
|
|
2697
|
-
const a =
|
|
2698
|
+
}), oi = /* @__PURE__ */ $e(qa, [["__scopeId", "data-v-c368d815"]]);
|
|
2699
|
+
function ai(e) {
|
|
2700
|
+
const a = x([]), l = x(/* @__PURE__ */ new Set()), o = x({}), r = x(/* @__PURE__ */ new Set()), n = x({}), u = x(""), w = x(!1), p = x(!1), C = x(null), y = _(() => {
|
|
2698
2701
|
if (!u.value.trim())
|
|
2699
2702
|
return a.value;
|
|
2700
2703
|
const T = u.value.toLowerCase();
|
|
@@ -2709,7 +2712,7 @@ function ti(e) {
|
|
|
2709
2712
|
w.value = !0, C.value = null;
|
|
2710
2713
|
try {
|
|
2711
2714
|
let T;
|
|
2712
|
-
e.mode === "dynamic" || !e.mode ? e.webMapId ? T = await g(e.webMapId) : T = await
|
|
2715
|
+
e.mode === "dynamic" || !e.mode ? e.webMapId ? T = await g(e.webMapId) : T = await wt() : T = await wt(), a.value = T;
|
|
2713
2716
|
const O = {};
|
|
2714
2717
|
T.forEach((D) => {
|
|
2715
2718
|
O[D.id] = D.opacity ?? 1;
|
|
@@ -2722,11 +2725,11 @@ function ti(e) {
|
|
|
2722
2725
|
}
|
|
2723
2726
|
}
|
|
2724
2727
|
async function g(T) {
|
|
2725
|
-
const O =
|
|
2728
|
+
const O = xt(T), D = await fetch(O, { cache: "no-store" });
|
|
2726
2729
|
if (!D.ok)
|
|
2727
2730
|
throw new Error(`Failed to fetch WebMap: ${D.status} ${D.statusText}`);
|
|
2728
|
-
const
|
|
2729
|
-
return
|
|
2731
|
+
const ee = await D.json();
|
|
2732
|
+
return Wt(ee);
|
|
2730
2733
|
}
|
|
2731
2734
|
function d(T) {
|
|
2732
2735
|
const O = new Set(l.value);
|
|
@@ -2741,7 +2744,7 @@ function ti(e) {
|
|
|
2741
2744
|
function S(T) {
|
|
2742
2745
|
u.value = T;
|
|
2743
2746
|
}
|
|
2744
|
-
function
|
|
2747
|
+
function E(T, O) {
|
|
2745
2748
|
const D = new Set(r.value);
|
|
2746
2749
|
O ? D.add(T) : D.delete(T), r.value = D;
|
|
2747
2750
|
}
|
|
@@ -2758,15 +2761,15 @@ function ti(e) {
|
|
|
2758
2761
|
}
|
|
2759
2762
|
return {
|
|
2760
2763
|
// State (readonly)
|
|
2761
|
-
layerConfigs:
|
|
2762
|
-
visibleLayers:
|
|
2763
|
-
layerOpacities:
|
|
2764
|
-
loadingLayers:
|
|
2765
|
-
layerErrors:
|
|
2766
|
-
searchQuery:
|
|
2767
|
-
isLoading:
|
|
2768
|
-
isInitialized:
|
|
2769
|
-
error:
|
|
2764
|
+
layerConfigs: j(a),
|
|
2765
|
+
visibleLayers: j(l),
|
|
2766
|
+
layerOpacities: j(o),
|
|
2767
|
+
loadingLayers: j(r),
|
|
2768
|
+
layerErrors: j(n),
|
|
2769
|
+
searchQuery: j(u),
|
|
2770
|
+
isLoading: j(w),
|
|
2771
|
+
isInitialized: j(p),
|
|
2772
|
+
error: j(C),
|
|
2770
2773
|
// Computed
|
|
2771
2774
|
filteredLayerConfigs: y,
|
|
2772
2775
|
layerList: h,
|
|
@@ -2777,13 +2780,13 @@ function ti(e) {
|
|
|
2777
2780
|
toggleLayer: d,
|
|
2778
2781
|
setLayerOpacity: L,
|
|
2779
2782
|
filterLayers: S,
|
|
2780
|
-
setLayerLoading:
|
|
2783
|
+
setLayerLoading: E,
|
|
2781
2784
|
setLayerError: F,
|
|
2782
2785
|
reset: V
|
|
2783
2786
|
};
|
|
2784
2787
|
}
|
|
2785
|
-
function
|
|
2786
|
-
const e =
|
|
2788
|
+
function ii() {
|
|
2789
|
+
const e = x([]), a = x(/* @__PURE__ */ new Set()), l = x(/* @__PURE__ */ new Set());
|
|
2787
2790
|
function o(n) {
|
|
2788
2791
|
a.value.has(n) ? a.value.delete(n) : a.value.add(n);
|
|
2789
2792
|
}
|
|
@@ -2798,8 +2801,8 @@ function oi() {
|
|
|
2798
2801
|
setLayers: r
|
|
2799
2802
|
};
|
|
2800
2803
|
}
|
|
2801
|
-
function
|
|
2802
|
-
const a =
|
|
2804
|
+
function Ga(e) {
|
|
2805
|
+
const a = x(null), l = x(!1), o = x(null), r = x(0);
|
|
2803
2806
|
async function n(p = {}) {
|
|
2804
2807
|
l.value = !0, o.value = null;
|
|
2805
2808
|
const C = e.pageSize || 2e3;
|
|
@@ -2818,10 +2821,10 @@ function ja(e) {
|
|
|
2818
2821
|
});
|
|
2819
2822
|
S += `&geometry=${encodeURIComponent(V)}&geometryType=esriGeometryEnvelope&spatialRel=esriSpatialRelIntersects`;
|
|
2820
2823
|
}
|
|
2821
|
-
const
|
|
2822
|
-
if (!
|
|
2823
|
-
throw new Error(`HTTP ${
|
|
2824
|
-
const F = await
|
|
2824
|
+
const E = await fetch(S);
|
|
2825
|
+
if (!E.ok)
|
|
2826
|
+
throw new Error(`HTTP ${E.status}: ${E.statusText}`);
|
|
2827
|
+
const F = await E.json();
|
|
2825
2828
|
F.features && F.features.length > 0 ? (h = h.concat(F.features), y += F.features.length, i = F.features.length === C) : i = !1;
|
|
2826
2829
|
}
|
|
2827
2830
|
const g = {
|
|
@@ -2844,10 +2847,10 @@ function ja(e) {
|
|
|
2844
2847
|
}
|
|
2845
2848
|
return {
|
|
2846
2849
|
// State (readonly)
|
|
2847
|
-
data:
|
|
2848
|
-
isLoading:
|
|
2849
|
-
error:
|
|
2850
|
-
totalFeatures:
|
|
2850
|
+
data: j(a),
|
|
2851
|
+
isLoading: j(l),
|
|
2852
|
+
error: j(o),
|
|
2853
|
+
totalFeatures: j(r),
|
|
2851
2854
|
// Config
|
|
2852
2855
|
config: e,
|
|
2853
2856
|
// Methods
|
|
@@ -2856,9 +2859,9 @@ function ja(e) {
|
|
|
2856
2859
|
clear: u
|
|
2857
2860
|
};
|
|
2858
2861
|
}
|
|
2859
|
-
function
|
|
2860
|
-
const o =
|
|
2861
|
-
return
|
|
2862
|
+
function li(e, a, l) {
|
|
2863
|
+
const o = Ga(e);
|
|
2864
|
+
return Oe(
|
|
2862
2865
|
a,
|
|
2863
2866
|
async (r) => {
|
|
2864
2867
|
if (r) {
|
|
@@ -2870,26 +2873,26 @@ function ai(e, a, l) {
|
|
|
2870
2873
|
), o;
|
|
2871
2874
|
}
|
|
2872
2875
|
export {
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
|
|
2878
|
-
|
|
2879
|
-
|
|
2880
|
-
|
|
2881
|
-
|
|
2882
|
-
|
|
2883
|
-
|
|
2884
|
-
|
|
2885
|
-
|
|
2886
|
-
|
|
2887
|
-
|
|
2888
|
-
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
|
|
2894
|
-
|
|
2876
|
+
ti as LayerCheckboxSet,
|
|
2877
|
+
Xo as LayerPanel,
|
|
2878
|
+
oi as LayerRadioButtonSet,
|
|
2879
|
+
Ya as Layerboard,
|
|
2880
|
+
uo as MapPanel,
|
|
2881
|
+
ei as TopicAccordion,
|
|
2882
|
+
Qa as WEBMAP_ID,
|
|
2883
|
+
xt as buildWebMapUrl,
|
|
2884
|
+
ya as clearCache,
|
|
2885
|
+
wt as getLayerConfigs,
|
|
2886
|
+
ze as getLayerDisplayName,
|
|
2887
|
+
Xa as getWebMapUrl,
|
|
2888
|
+
Nt as normalizeUrl,
|
|
2889
|
+
Da as shouldShowCheckbox,
|
|
2890
|
+
qt as shouldShowLegendBox,
|
|
2891
|
+
jt as shouldShowSlider,
|
|
2892
|
+
Wt as transformWebMapToLayerConfigs,
|
|
2893
|
+
va as useApiDataSources,
|
|
2894
|
+
Ga as useDataSource,
|
|
2895
|
+
ii as useLayerConfig,
|
|
2896
|
+
ai as useLayerboard,
|
|
2897
|
+
li as useReactiveDataSource
|
|
2895
2898
|
};
|