@phila/layerboard 3.0.0-beta.18 → 3.0.0-beta.19

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