@phila/layerboard 3.0.0-beta.35 → 3.0.0-beta.36
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 +1 -1
- package/dist/index.mjs +158 -156
- package/dist/layerboard.css +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
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
|
|
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 h, 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 he, 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
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
3
|
import { cn as bt, Icon as ke, BaseLink as ro, ActionContent as zt } from "@phila/phila-ui-core";
|
|
4
4
|
const so = { class: "map-panel" }, co = /* @__PURE__ */ ge({
|
|
@@ -32,7 +32,7 @@ const so = { class: "map-panel" }, co = /* @__PURE__ */ ge({
|
|
|
32
32
|
const c = t.getZoom(), b = t.getCenter().lat, k = 559082264028e-3, I = b * Math.PI / 180;
|
|
33
33
|
return k * Math.cos(I) / Math.pow(2, c);
|
|
34
34
|
}
|
|
35
|
-
const C = x({}), y = x(null),
|
|
35
|
+
const C = x({}), y = x(null), m = x(/* @__PURE__ */ new Set());
|
|
36
36
|
async function i(t, c, s, b, k) {
|
|
37
37
|
const I = encodeURIComponent(b || "1=1"), B = JSON.stringify({
|
|
38
38
|
xmin: c.west,
|
|
@@ -109,8 +109,8 @@ const so = { class: "map-panel" }, co = /* @__PURE__ */ ge({
|
|
|
109
109
|
() => l.visibleLayers,
|
|
110
110
|
async () => {
|
|
111
111
|
if (re.value.length > 0 && Ie(), y.value) {
|
|
112
|
-
const t = new Set(l.visibleLayers), c = [...t].filter((b) => !
|
|
113
|
-
|
|
112
|
+
const t = new Set(l.visibleLayers), c = [...t].filter((b) => !m.value.has(b));
|
|
113
|
+
m.value = new Set(t);
|
|
114
114
|
const s = d(c);
|
|
115
115
|
if (s.length > 0) {
|
|
116
116
|
const b = n.value?.getZoom();
|
|
@@ -360,10 +360,10 @@ const so = { class: "map-panel" }, co = /* @__PURE__ */ ge({
|
|
|
360
360
|
se.sort((R, W) => {
|
|
361
361
|
const ce = R.popupConfig?.popupSortField, yt = W.popupConfig?.popupSortField;
|
|
362
362
|
if (!ce || ce !== yt) return 0;
|
|
363
|
-
const
|
|
364
|
-
if (
|
|
363
|
+
const ht = R.properties[ce], mt = W.properties[ce];
|
|
364
|
+
if (ht == null || mt == null) return 0;
|
|
365
365
|
const Mt = R.popupConfig?.popupSortOrder !== "asc";
|
|
366
|
-
return
|
|
366
|
+
return ht < mt ? Mt ? 1 : -1 : ht > mt ? Mt ? -1 : 1 : 0;
|
|
367
367
|
}), re.value = se, oe.value = 0, Te.value = [t.lngLat.lng, t.lngLat.lat];
|
|
368
368
|
const te = se[0];
|
|
369
369
|
if (te) {
|
|
@@ -599,7 +599,7 @@ const so = { class: "map-panel" }, co = /* @__PURE__ */ ge({
|
|
|
599
599
|
const [c, s] = t.geometry.coordinates;
|
|
600
600
|
$t.value = [c, s];
|
|
601
601
|
}
|
|
602
|
-
return (t, c) => (
|
|
602
|
+
return (t, c) => (h(), M("div", so, [
|
|
603
603
|
H(f(ao), {
|
|
604
604
|
ref_key: "mapRef",
|
|
605
605
|
ref: r,
|
|
@@ -624,27 +624,29 @@ const so = { class: "map-panel" }, co = /* @__PURE__ */ ge({
|
|
|
624
624
|
onSearchResult: Jt
|
|
625
625
|
}, {
|
|
626
626
|
default: He(() => [
|
|
627
|
-
l.drawControlPosition !== null ? (
|
|
627
|
+
l.drawControlPosition !== null ? (h(), q(f(io), {
|
|
628
628
|
key: 0,
|
|
629
629
|
position: l.drawControlPosition
|
|
630
630
|
}, null, 8, ["position"])) : A("", !0),
|
|
631
|
-
(
|
|
631
|
+
(h(!0), M(ue, null, Le(ut.value, (s) => (h(), q(f(It), {
|
|
632
632
|
id: "tiled-" + s.id,
|
|
633
633
|
key: "tiled-" + s.id,
|
|
634
634
|
source: ct(s),
|
|
635
635
|
paint: { "raster-opacity": de(s.id) },
|
|
636
636
|
minzoom: s.minZoom,
|
|
637
|
-
maxzoom: s.maxZoom
|
|
637
|
+
maxzoom: s.maxZoom,
|
|
638
|
+
"before-id": "highlight-circles"
|
|
638
639
|
}, null, 8, ["id", "source", "paint", "minzoom", "maxzoom"]))), 128)),
|
|
639
|
-
(
|
|
640
|
+
(h(!0), M(ue, null, Le(De.value, (s) => (h(), q(f(It), {
|
|
640
641
|
id: "dynamic-" + s.id,
|
|
641
642
|
key: "dynamic-" + s.id,
|
|
642
643
|
source: je(s),
|
|
643
644
|
paint: { "raster-opacity": de(s.id) },
|
|
644
645
|
minzoom: s.minZoom,
|
|
645
|
-
maxzoom: s.maxZoom
|
|
646
|
+
maxzoom: s.maxZoom,
|
|
647
|
+
"before-id": "highlight-circles"
|
|
646
648
|
}, null, 8, ["id", "source", "paint", "minzoom", "maxzoom"]))), 128)),
|
|
647
|
-
(
|
|
649
|
+
(h(!0), M(ue, null, Le(T.value, (s) => (h(), q(f(Et), {
|
|
648
650
|
id: s.id,
|
|
649
651
|
key: s.id,
|
|
650
652
|
source: Me(s),
|
|
@@ -654,7 +656,7 @@ const so = { class: "map-panel" }, co = /* @__PURE__ */ ge({
|
|
|
654
656
|
"before-id": "highlight-circles",
|
|
655
657
|
onClick: ae
|
|
656
658
|
}, null, 8, ["id", "source", "paint", "minzoom", "maxzoom"]))), 128)),
|
|
657
|
-
(
|
|
659
|
+
(h(!0), M(ue, null, Le(O.value, (s) => (h(), q(f(Ot), {
|
|
658
660
|
id: s.id,
|
|
659
661
|
key: s.id,
|
|
660
662
|
source: Me(s),
|
|
@@ -664,7 +666,7 @@ const so = { class: "map-panel" }, co = /* @__PURE__ */ ge({
|
|
|
664
666
|
"before-id": "highlight-circles",
|
|
665
667
|
onClick: ae
|
|
666
668
|
}, null, 8, ["id", "source", "paint", "minzoom", "maxzoom"]))), 128)),
|
|
667
|
-
(
|
|
669
|
+
(h(!0), M(ue, null, Le(D.value, (s) => (h(), q(f(gt), {
|
|
668
670
|
id: s.id + "-outline",
|
|
669
671
|
key: s.id + "-outline",
|
|
670
672
|
source: Me(s),
|
|
@@ -674,7 +676,7 @@ const so = { class: "map-panel" }, co = /* @__PURE__ */ ge({
|
|
|
674
676
|
"before-id": "highlight-lines",
|
|
675
677
|
onClick: ae
|
|
676
678
|
}, null, 8, ["id", "source", "paint", "minzoom", "maxzoom"]))), 128)),
|
|
677
|
-
(
|
|
679
|
+
(h(!0), M(ue, null, Le(ee.value, (s) => (h(), q(f(gt), {
|
|
678
680
|
id: s.id,
|
|
679
681
|
key: s.id,
|
|
680
682
|
source: Me(s),
|
|
@@ -706,7 +708,7 @@ const so = { class: "map-panel" }, co = /* @__PURE__ */ ge({
|
|
|
706
708
|
"lng-lat": $t.value,
|
|
707
709
|
color: "#2176d2"
|
|
708
710
|
}, null, 8, ["lng-lat"]),
|
|
709
|
-
ie.value && Te.value ? (
|
|
711
|
+
ie.value && Te.value ? (h(), q(f(no), {
|
|
710
712
|
key: 1,
|
|
711
713
|
"lng-lat": Te.value,
|
|
712
714
|
html: Ae.value,
|
|
@@ -730,7 +732,7 @@ const so = { class: "map-panel" }, co = /* @__PURE__ */ ge({
|
|
|
730
732
|
for (const [o, r] of a)
|
|
731
733
|
l[o] = r;
|
|
732
734
|
return l;
|
|
733
|
-
}, uo = /* @__PURE__ */ $e(co, [["__scopeId", "data-v-
|
|
735
|
+
}, uo = /* @__PURE__ */ $e(co, [["__scopeId", "data-v-1f8b1f59"]]);
|
|
734
736
|
function Nt(e) {
|
|
735
737
|
let a = e.split("?")[0] || e;
|
|
736
738
|
return a = a.replace(/\/query$/, ""), a = a.replace(/\/$/, ""), a = a.replace(/^https?:\/\//, ""), a.toLowerCase();
|
|
@@ -785,11 +787,11 @@ const fo = ["disabled"], po = /* @__PURE__ */ ge({
|
|
|
785
787
|
size: a.size
|
|
786
788
|
})
|
|
787
789
|
);
|
|
788
|
-
return (u, w) => l(a) ? (
|
|
790
|
+
return (u, w) => l(a) ? (h(), q(f(ro), vt({ key: 0 }, { ...r.value, ...u.$attrs }, { role: "button" }), {
|
|
789
791
|
default: He(() => [
|
|
790
792
|
H(f(zt), Pt(Ft(n.value)), {
|
|
791
793
|
default: He(() => [
|
|
792
|
-
|
|
794
|
+
he(u.$slots, "default", {}, () => [
|
|
793
795
|
xe(G(a.text), 1)
|
|
794
796
|
])
|
|
795
797
|
]),
|
|
@@ -797,7 +799,7 @@ const fo = ["disabled"], po = /* @__PURE__ */ ge({
|
|
|
797
799
|
}, 16)
|
|
798
800
|
]),
|
|
799
801
|
_: 3
|
|
800
|
-
}, 16)) : (
|
|
802
|
+
}, 16)) : (h(), M("button", vt({
|
|
801
803
|
key: 1,
|
|
802
804
|
type: "button",
|
|
803
805
|
disabled: a.disabled,
|
|
@@ -805,7 +807,7 @@ const fo = ["disabled"], po = /* @__PURE__ */ ge({
|
|
|
805
807
|
}, u.$attrs), [
|
|
806
808
|
H(f(zt), Pt(Ft(n.value)), {
|
|
807
809
|
default: He(() => [
|
|
808
|
-
|
|
810
|
+
he(u.$slots, "default", {}, () => [
|
|
809
811
|
xe(G(a.text), 1)
|
|
810
812
|
])
|
|
811
813
|
]),
|
|
@@ -818,11 +820,11 @@ var yo = {
|
|
|
818
820
|
prefix: "fas",
|
|
819
821
|
iconName: "circle-exclamation",
|
|
820
822
|
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"]
|
|
821
|
-
},
|
|
823
|
+
}, ho = yo, mo = {
|
|
822
824
|
prefix: "fas",
|
|
823
825
|
iconName: "xmark",
|
|
824
826
|
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"]
|
|
825
|
-
}, go =
|
|
827
|
+
}, go = mo;
|
|
826
828
|
const vo = ["for"], bo = { class: "state-layer" }, wo = { class: "content" }, Lo = { class: "input-text-container" }, So = ["id", "placeholder", "aria-label"], Co = {
|
|
827
829
|
key: 1,
|
|
828
830
|
class: "has-text-body-small phila-supporting-text"
|
|
@@ -858,16 +860,16 @@ const vo = ["for"], bo = { class: "state-layer" }, wo = { class: "content" }, Lo
|
|
|
858
860
|
}), y = _(() => {
|
|
859
861
|
const d = [];
|
|
860
862
|
return p.value !== "" && d.push("phila-text-field--filled"), o.className && d.push(o.className), bt(...d);
|
|
861
|
-
}),
|
|
863
|
+
}), m = _(() => {
|
|
862
864
|
if (!(o.label || l["aria-label"]))
|
|
863
865
|
return o.placeholder || void 0;
|
|
864
866
|
}), i = x(null), g = (d) => {
|
|
865
867
|
d.target.closest("button") || i.value?.focus();
|
|
866
868
|
};
|
|
867
|
-
return (d, L) => (
|
|
869
|
+
return (d, L) => (h(), M("div", {
|
|
868
870
|
class: ne(["phila-input", C.value])
|
|
869
871
|
}, [
|
|
870
|
-
o.label ? (
|
|
872
|
+
o.label ? (h(), M("label", {
|
|
871
873
|
key: 0,
|
|
872
874
|
for: n.value,
|
|
873
875
|
class: "has-text-label-small phila-label"
|
|
@@ -877,7 +879,7 @@ const vo = ["for"], bo = { class: "state-layer" }, wo = { class: "content" }, Lo
|
|
|
877
879
|
onClick: g
|
|
878
880
|
}, [
|
|
879
881
|
P("div", bo, [
|
|
880
|
-
o.leadingIcon ? (
|
|
882
|
+
o.leadingIcon ? (h(), q(f(ke), {
|
|
881
883
|
key: 0,
|
|
882
884
|
"icon-class": o.leadingIcon,
|
|
883
885
|
inline: "",
|
|
@@ -892,13 +894,13 @@ const vo = ["for"], bo = { class: "state-layer" }, wo = { class: "content" }, Lo
|
|
|
892
894
|
"onUpdate:modelValue": L[0] || (L[0] = (S) => p.value = S),
|
|
893
895
|
class: "phila-text-field-input has-text-body-default",
|
|
894
896
|
placeholder: o.placeholder,
|
|
895
|
-
"aria-label":
|
|
897
|
+
"aria-label": m.value
|
|
896
898
|
}, f(l)), null, 16, So), [
|
|
897
899
|
[Xt, p.value]
|
|
898
900
|
])
|
|
899
901
|
])
|
|
900
902
|
]),
|
|
901
|
-
p.value != "" ? (
|
|
903
|
+
p.value != "" ? (h(), q(f(po), {
|
|
902
904
|
key: 1,
|
|
903
905
|
variant: "standard",
|
|
904
906
|
size: "small",
|
|
@@ -906,20 +908,20 @@ const vo = ["for"], bo = { class: "state-layer" }, wo = { class: "content" }, Lo
|
|
|
906
908
|
"icon-definition": f(go),
|
|
907
909
|
onClick: L[1] || (L[1] = (S) => p.value = "")
|
|
908
910
|
}, null, 8, ["icon-definition"])) : A("", !0),
|
|
909
|
-
o.trailingIcon ? (
|
|
911
|
+
o.trailingIcon ? (h(), q(f(ke), {
|
|
910
912
|
key: 2,
|
|
911
913
|
size: "small",
|
|
912
914
|
"icon-class": o.trailingIcon,
|
|
913
915
|
inline: "",
|
|
914
916
|
decorative: ""
|
|
915
917
|
}, null, 8, ["icon-class"])) : A("", !0),
|
|
916
|
-
|
|
918
|
+
he(d.$slots, "trailing-action")
|
|
917
919
|
])
|
|
918
920
|
], 2),
|
|
919
|
-
o.supportingText ? (
|
|
920
|
-
r.value ? (
|
|
921
|
+
o.supportingText ? (h(), M("div", Co, G(o.supportingText), 1)) : A("", !0),
|
|
922
|
+
r.value ? (h(), M("div", ko, [
|
|
921
923
|
H(f(ke), {
|
|
922
|
-
"icon-definition": f(
|
|
924
|
+
"icon-definition": f(ho),
|
|
923
925
|
size: "small",
|
|
924
926
|
inline: "",
|
|
925
927
|
decorative: ""
|
|
@@ -969,15 +971,15 @@ const Io = {
|
|
|
969
971
|
unavailable: { type: Boolean }
|
|
970
972
|
},
|
|
971
973
|
setup(e) {
|
|
972
|
-
return (a, l) => (
|
|
973
|
-
e.loading && !e.unavailable ? (
|
|
974
|
-
e.error ? (
|
|
974
|
+
return (a, l) => (h(), M(ue, null, [
|
|
975
|
+
e.loading && !e.unavailable ? (h(), M("span", Io, " Loading... ")) : A("", !0),
|
|
976
|
+
e.error ? (h(), M("span", {
|
|
975
977
|
key: 1,
|
|
976
978
|
class: "error-indicator",
|
|
977
979
|
"aria-label": e.error,
|
|
978
980
|
role: "status"
|
|
979
981
|
}, " Error ", 8, Eo)) : A("", !0),
|
|
980
|
-
e.unavailable ? (
|
|
982
|
+
e.unavailable ? (h(), M("span", Oo, " (zoom in) ")) : A("", !0)
|
|
981
983
|
], 64));
|
|
982
984
|
}
|
|
983
985
|
}), nt = /* @__PURE__ */ $e(zo, [["__scopeId", "data-v-19b1b402"]]), Do = { class: "opacity-control" }, _o = ["for"], Ro = ["id", "value", "aria-label"], Ao = /* @__PURE__ */ ge({
|
|
@@ -994,7 +996,7 @@ const Io = {
|
|
|
994
996
|
const n = r.target;
|
|
995
997
|
l("update:opacity", parseFloat(n.value));
|
|
996
998
|
}
|
|
997
|
-
return (r, n) => (
|
|
999
|
+
return (r, n) => (h(), M("div", Do, [
|
|
998
1000
|
P("label", {
|
|
999
1001
|
class: "opacity-label",
|
|
1000
1002
|
for: "opacity-" + e.layerId
|
|
@@ -1019,20 +1021,20 @@ const Io = {
|
|
|
1019
1021
|
label: {}
|
|
1020
1022
|
},
|
|
1021
1023
|
setup(e) {
|
|
1022
|
-
return (a, l) => (
|
|
1024
|
+
return (a, l) => (h(), M("ul", {
|
|
1023
1025
|
class: "layer-legend",
|
|
1024
1026
|
"aria-label": e.label
|
|
1025
1027
|
}, [
|
|
1026
|
-
(
|
|
1028
|
+
(h(!0), M(ue, null, Le(e.items, (o, r) => (h(), M("li", {
|
|
1027
1029
|
key: r,
|
|
1028
1030
|
class: "legend-item"
|
|
1029
1031
|
}, [
|
|
1030
|
-
o.type === "circle" ? (
|
|
1032
|
+
o.type === "circle" ? (h(), M("span", {
|
|
1031
1033
|
key: 0,
|
|
1032
1034
|
class: "legend-symbol legend-circle",
|
|
1033
1035
|
style: ye({ backgroundColor: o.color }),
|
|
1034
1036
|
"aria-hidden": "true"
|
|
1035
|
-
}, null, 4)) : o.type === "line" ? (
|
|
1037
|
+
}, null, 4)) : o.type === "line" ? (h(), M("span", {
|
|
1036
1038
|
key: 1,
|
|
1037
1039
|
class: "legend-symbol legend-line",
|
|
1038
1040
|
style: ye({
|
|
@@ -1040,7 +1042,7 @@ const Io = {
|
|
|
1040
1042
|
height: `${o.width || 2}px`
|
|
1041
1043
|
}),
|
|
1042
1044
|
"aria-hidden": "true"
|
|
1043
|
-
}, null, 4)) : o.type === "fill" ? (
|
|
1045
|
+
}, null, 4)) : o.type === "fill" ? (h(), M("span", {
|
|
1044
1046
|
key: 2,
|
|
1045
1047
|
class: "legend-symbol legend-fill",
|
|
1046
1048
|
style: ye({ backgroundColor: o.color }),
|
|
@@ -1111,7 +1113,7 @@ const No = { class: "layer-panel" }, Uo = {
|
|
|
1111
1113
|
const L = Nt(d);
|
|
1112
1114
|
return l.layerMetadata[L] || null;
|
|
1113
1115
|
}
|
|
1114
|
-
const u = _(() => l.layerList.some((d) => n(d.config.url))), { isVisible: w, getLayerOpacity: p, isLayerLoading: C, getLayerError: y, isLayerAvailableAtZoom:
|
|
1116
|
+
const u = _(() => l.layerList.some((d) => n(d.config.url))), { isVisible: w, getLayerOpacity: p, isLayerLoading: C, getLayerError: y, isLayerAvailableAtZoom: m } = Ct(() => ({
|
|
1115
1117
|
visibleLayerIds: l.visibleLayers,
|
|
1116
1118
|
layerOpacities: l.layerOpacities,
|
|
1117
1119
|
loadingLayerIds: l.loadingLayers,
|
|
@@ -1124,8 +1126,8 @@ const No = { class: "layer-panel" }, Uo = {
|
|
|
1124
1126
|
function g(d) {
|
|
1125
1127
|
o("toggleLayer", d);
|
|
1126
1128
|
}
|
|
1127
|
-
return (d, L) => (
|
|
1128
|
-
e.showSearch ? (
|
|
1129
|
+
return (d, L) => (h(), M("div", No, [
|
|
1130
|
+
e.showSearch ? (h(), M("div", Uo, [
|
|
1129
1131
|
H(f(xo), {
|
|
1130
1132
|
modelValue: i.value,
|
|
1131
1133
|
"onUpdate:modelValue": L[0] || (L[0] = (S) => i.value = S),
|
|
@@ -1143,20 +1145,20 @@ const No = { class: "layer-panel" }, Uo = {
|
|
|
1143
1145
|
_: 1
|
|
1144
1146
|
}, 8, ["modelValue", "placeholder"])
|
|
1145
1147
|
])) : A("", !0),
|
|
1146
|
-
e.mode === "topics" ? (
|
|
1147
|
-
|
|
1148
|
+
e.mode === "topics" ? (h(), M("div", Wo, [
|
|
1149
|
+
he(d.$slots, "topics", {}, () => [
|
|
1148
1150
|
L[2] || (L[2] = P("div", { class: "no-topics" }, ' No topic components provided. Use the "topics" slot to add TopicAccordion components. ', -1))
|
|
1149
1151
|
], !0)
|
|
1150
|
-
])) : (
|
|
1152
|
+
])) : (h(), M("div", {
|
|
1151
1153
|
key: 2,
|
|
1152
1154
|
class: ne(["layer-list", { "has-metadata": u.value }])
|
|
1153
1155
|
}, [
|
|
1154
|
-
(
|
|
1156
|
+
(h(!0), M(ue, null, Le(r.value, (S) => (h(), M("div", {
|
|
1155
1157
|
key: S.config.id,
|
|
1156
1158
|
class: "layer-item"
|
|
1157
1159
|
}, [
|
|
1158
1160
|
P("div", jo, [
|
|
1159
|
-
n(S.config.url) ? (
|
|
1161
|
+
n(S.config.url) ? (h(), M("a", {
|
|
1160
1162
|
key: 0,
|
|
1161
1163
|
href: n(S.config.url) || "",
|
|
1162
1164
|
target: "_blank",
|
|
@@ -1172,17 +1174,17 @@ const No = { class: "layer-panel" }, Uo = {
|
|
|
1172
1174
|
inline: "",
|
|
1173
1175
|
decorative: ""
|
|
1174
1176
|
}, null, 8, ["icon-definition"])
|
|
1175
|
-
], 8, qo)) : u.value ? (
|
|
1177
|
+
], 8, qo)) : u.value ? (h(), M("span", Go)) : A("", !0),
|
|
1176
1178
|
P("label", {
|
|
1177
1179
|
class: ne(["layer-checkbox", {
|
|
1178
|
-
"layer-unavailable": !f(
|
|
1180
|
+
"layer-unavailable": !f(m)(S.config),
|
|
1179
1181
|
"layer-error": f(y)(S.config.id)
|
|
1180
1182
|
}])
|
|
1181
1183
|
}, [
|
|
1182
1184
|
P("input", {
|
|
1183
1185
|
type: "checkbox",
|
|
1184
1186
|
checked: f(w)(S.config.id),
|
|
1185
|
-
disabled: !f(
|
|
1187
|
+
disabled: !f(m)(S.config),
|
|
1186
1188
|
onChange: (E) => g(S.config.id)
|
|
1187
1189
|
}, null, 40, Ho),
|
|
1188
1190
|
P("span", Jo, [
|
|
@@ -1190,25 +1192,25 @@ const No = { class: "layer-panel" }, Uo = {
|
|
|
1190
1192
|
H(nt, {
|
|
1191
1193
|
loading: f(C)(S.config.id),
|
|
1192
1194
|
error: f(y)(S.config.id),
|
|
1193
|
-
unavailable: !f(
|
|
1195
|
+
unavailable: !f(m)(S.config)
|
|
1194
1196
|
}, null, 8, ["loading", "error", "unavailable"])
|
|
1195
1197
|
])
|
|
1196
1198
|
], 2)
|
|
1197
1199
|
]),
|
|
1198
|
-
e.showOpacity && f(w)(S.config.id) && f(
|
|
1200
|
+
e.showOpacity && f(w)(S.config.id) && f(m)(S.config) ? (h(), q(Lt, {
|
|
1199
1201
|
key: 0,
|
|
1200
1202
|
"layer-id": S.config.id,
|
|
1201
1203
|
"layer-name": S.config.title,
|
|
1202
1204
|
opacity: f(p)(S.config.id),
|
|
1203
1205
|
"onUpdate:opacity": (E) => o("setOpacity", S.config.id, E)
|
|
1204
1206
|
}, null, 8, ["layer-id", "layer-name", "opacity", "onUpdate:opacity"])) : A("", !0),
|
|
1205
|
-
e.showLegend && f(w)(S.config.id) && f(
|
|
1207
|
+
e.showLegend && f(w)(S.config.id) && f(m)(S.config) && S.config.legend?.length ? (h(), q(St, {
|
|
1206
1208
|
key: 1,
|
|
1207
1209
|
items: S.config.legend,
|
|
1208
1210
|
label: "Legend for " + S.config.title
|
|
1209
1211
|
}, null, 8, ["items", "label"])) : A("", !0)
|
|
1210
1212
|
]))), 128)),
|
|
1211
|
-
r.value.length === 0 ? (
|
|
1213
|
+
r.value.length === 0 ? (h(), M("div", Ko, 'No layers match "' + G(e.searchQuery) + '"', 1)) : A("", !0)
|
|
1212
1214
|
], 2))
|
|
1213
1215
|
]));
|
|
1214
1216
|
}
|
|
@@ -1231,14 +1233,14 @@ function ea(e, a, l, o, r) {
|
|
|
1231
1233
|
a[i] === u ? w.push(e[i]) : (n.push({ style: u, breaks: w, startIndex: p }), u = a[i], w = [e[i]], p = i);
|
|
1232
1234
|
n.push({ style: u, breaks: w, startIndex: p });
|
|
1233
1235
|
const C = [], y = /* @__PURE__ */ new Set();
|
|
1234
|
-
let
|
|
1236
|
+
let m = o.minValue ?? 0;
|
|
1235
1237
|
for (let i = 0; i < n.length; i++) {
|
|
1236
1238
|
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;
|
|
1237
1239
|
let F;
|
|
1238
1240
|
const V = !!o.defaultSymbol;
|
|
1239
1241
|
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}`;
|
|
1240
1242
|
const T = {
|
|
1241
|
-
"line-opacity":
|
|
1243
|
+
"line-opacity": me(r)
|
|
1242
1244
|
};
|
|
1243
1245
|
if (L && (T["line-dasharray"] = L), d.length === 1)
|
|
1244
1246
|
T["line-color"] = z(d[0].symbol?.color), T["line-width"] = X(d[0].symbol?.width || 2);
|
|
@@ -1255,8 +1257,8 @@ function ea(e, a, l, o, r) {
|
|
|
1255
1257
|
type: "line",
|
|
1256
1258
|
color: z(U.symbol?.color),
|
|
1257
1259
|
width: X(U.symbol?.width || 2),
|
|
1258
|
-
label: U.label || `${
|
|
1259
|
-
}),
|
|
1260
|
+
label: U.label || `${m} - ${U.classMaxValue}`
|
|
1261
|
+
}), m = U.classMaxValue + 1;
|
|
1260
1262
|
const D = g.style.replace("esriSLS", "").toLowerCase();
|
|
1261
1263
|
let ee;
|
|
1262
1264
|
i === 0 ? ee = "" : y.has(D) ? ee = `-${D}-${i}` : ee = `-${D}`, y.add(D), C.push({ suffix: ee, where: F, paint: T, legend: O });
|
|
@@ -1272,10 +1274,10 @@ function ta(e, a, l, o, r) {
|
|
|
1272
1274
|
const u = [], w = /* @__PURE__ */ new Set();
|
|
1273
1275
|
let p = !0;
|
|
1274
1276
|
for (const [C, y] of n) {
|
|
1275
|
-
const
|
|
1276
|
-
"line-opacity":
|
|
1277
|
+
const m = Ke(C), g = y.map((F) => `${a} = '${String(F.value).replace(/'/g, "''")}'`).join(" OR "), d = {
|
|
1278
|
+
"line-opacity": me(o)
|
|
1277
1279
|
};
|
|
1278
|
-
if (
|
|
1280
|
+
if (m && (d["line-dasharray"] = m), y.length === 1)
|
|
1279
1281
|
d["line-color"] = z(y[0].symbol?.color), d["line-width"] = X(y[0].symbol?.width || 2);
|
|
1280
1282
|
else {
|
|
1281
1283
|
const F = ["match", ["to-string", ["get", a]]];
|
|
@@ -1304,7 +1306,7 @@ function z(e) {
|
|
|
1304
1306
|
const a = e[0], l = e[1], o = e[2], n = (e[3] ?? 255) / 255;
|
|
1305
1307
|
return n === 1 ? `#${a.toString(16).padStart(2, "0")}${l.toString(16).padStart(2, "0")}${o.toString(16).padStart(2, "0")}` : `rgba(${a}, ${l}, ${o}, ${n.toFixed(2)})`;
|
|
1306
1308
|
}
|
|
1307
|
-
function
|
|
1309
|
+
function me(e) {
|
|
1308
1310
|
return e !== void 0 ? e : 1;
|
|
1309
1311
|
}
|
|
1310
1312
|
function X(e) {
|
|
@@ -1353,15 +1355,15 @@ function Ut(e, a, l) {
|
|
|
1353
1355
|
const o = e.symbol, r = st(o);
|
|
1354
1356
|
let n = {}, u = [], w = null;
|
|
1355
1357
|
if (r === "fill" && o) {
|
|
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 :
|
|
1358
|
+
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 : me(a);
|
|
1357
1359
|
if (n = {
|
|
1358
1360
|
"fill-color": C,
|
|
1359
1361
|
"fill-opacity": y
|
|
1360
1362
|
}, Pe(o.outline)) {
|
|
1361
|
-
const
|
|
1363
|
+
const m = X(o.outline.width || 1);
|
|
1362
1364
|
w = {
|
|
1363
1365
|
"line-color": z(o.outline.color),
|
|
1364
|
-
"line-width":
|
|
1366
|
+
"line-width": m
|
|
1365
1367
|
};
|
|
1366
1368
|
}
|
|
1367
1369
|
u = [
|
|
@@ -1375,7 +1377,7 @@ function Ut(e, a, l) {
|
|
|
1375
1377
|
n = {
|
|
1376
1378
|
"line-color": z(o.color),
|
|
1377
1379
|
"line-width": X(o.width || 1),
|
|
1378
|
-
"line-opacity":
|
|
1380
|
+
"line-opacity": me(a)
|
|
1379
1381
|
};
|
|
1380
1382
|
const p = Ke(o.style);
|
|
1381
1383
|
p && (n["line-dasharray"] = p), u = [
|
|
@@ -1391,7 +1393,7 @@ function Ut(e, a, l) {
|
|
|
1391
1393
|
n = {
|
|
1392
1394
|
"circle-color": z(o.color),
|
|
1393
1395
|
"circle-radius": p,
|
|
1394
|
-
"circle-opacity":
|
|
1396
|
+
"circle-opacity": me(a)
|
|
1395
1397
|
}, Pe(o.outline) && (n["circle-stroke-color"] = z(o.outline.color), n["circle-stroke-width"] = X(o.outline.width || 1)), u = [
|
|
1396
1398
|
{
|
|
1397
1399
|
type: "circle",
|
|
@@ -1411,9 +1413,9 @@ function ia(e, a, l) {
|
|
|
1411
1413
|
const C = [];
|
|
1412
1414
|
let y = null;
|
|
1413
1415
|
if (w === "fill") {
|
|
1414
|
-
const
|
|
1416
|
+
const m = ["match", ["to-string", ["get", o]]];
|
|
1415
1417
|
for (const i of r) {
|
|
1416
|
-
|
|
1418
|
+
m.push(it(i.value)), m.push(z(i.symbol?.color));
|
|
1417
1419
|
const g = String(i.value), L = l?.get(g) || i.label || g;
|
|
1418
1420
|
C.push({
|
|
1419
1421
|
type: "fill",
|
|
@@ -1421,9 +1423,9 @@ function ia(e, a, l) {
|
|
|
1421
1423
|
label: L
|
|
1422
1424
|
});
|
|
1423
1425
|
}
|
|
1424
|
-
if (
|
|
1425
|
-
"fill-color":
|
|
1426
|
-
"fill-opacity":
|
|
1426
|
+
if (m.push(n ? z(n.color) : "rgba(0, 0, 0, 0)"), p = {
|
|
1427
|
+
"fill-color": m,
|
|
1428
|
+
"fill-opacity": me(a)
|
|
1427
1429
|
}, Pe(u?.outline)) {
|
|
1428
1430
|
const i = X(Math.max(u.outline.width || 1, 1));
|
|
1429
1431
|
y = {
|
|
@@ -1432,9 +1434,9 @@ function ia(e, a, l) {
|
|
|
1432
1434
|
};
|
|
1433
1435
|
}
|
|
1434
1436
|
} else if (w === "line") {
|
|
1435
|
-
const
|
|
1437
|
+
const m = ["match", ["to-string", ["get", o]]];
|
|
1436
1438
|
for (const d of r) {
|
|
1437
|
-
|
|
1439
|
+
m.push(it(d.value)), m.push(z(d.symbol?.color));
|
|
1438
1440
|
const L = String(d.value), E = l?.get(L) || d.label || L;
|
|
1439
1441
|
C.push({
|
|
1440
1442
|
type: "line",
|
|
@@ -1443,10 +1445,10 @@ function ia(e, a, l) {
|
|
|
1443
1445
|
label: E
|
|
1444
1446
|
});
|
|
1445
1447
|
}
|
|
1446
|
-
|
|
1447
|
-
"line-color":
|
|
1448
|
+
m.push(n ? z(n.color) : "rgba(0, 0, 0, 0)"), p = {
|
|
1449
|
+
"line-color": m,
|
|
1448
1450
|
"line-width": X(u?.width || 2),
|
|
1449
|
-
"line-opacity":
|
|
1451
|
+
"line-opacity": me(a)
|
|
1450
1452
|
};
|
|
1451
1453
|
const i = r.map((d) => d.symbol?.style || "esriSLSSolid"), g = [...new Set(i)];
|
|
1452
1454
|
if (g.length > 1) {
|
|
@@ -1458,9 +1460,9 @@ function ia(e, a, l) {
|
|
|
1458
1460
|
d && (p["line-dasharray"] = d);
|
|
1459
1461
|
}
|
|
1460
1462
|
} else if (w === "circle") {
|
|
1461
|
-
const
|
|
1463
|
+
const m = ["match", ["to-string", ["get", o]]];
|
|
1462
1464
|
for (const g of r) {
|
|
1463
|
-
|
|
1465
|
+
m.push(it(g.value)), m.push(z(g.symbol?.color));
|
|
1464
1466
|
const d = String(g.value), S = l?.get(d) || g.label || d;
|
|
1465
1467
|
C.push({
|
|
1466
1468
|
type: "circle",
|
|
@@ -1468,12 +1470,12 @@ function ia(e, a, l) {
|
|
|
1468
1470
|
label: S
|
|
1469
1471
|
});
|
|
1470
1472
|
}
|
|
1471
|
-
|
|
1473
|
+
m.push(n ? z(n.color) : "rgba(0, 0, 0, 0)");
|
|
1472
1474
|
const i = Math.round((u?.size || 6) * 0.71 * 100) / 100;
|
|
1473
1475
|
p = {
|
|
1474
|
-
"circle-color":
|
|
1476
|
+
"circle-color": m,
|
|
1475
1477
|
"circle-radius": i,
|
|
1476
|
-
"circle-opacity":
|
|
1478
|
+
"circle-opacity": me(a)
|
|
1477
1479
|
}, Pe(u?.outline) && (p["circle-stroke-color"] = z(u.outline.color), p["circle-stroke-width"] = X(u.outline.width || 1));
|
|
1478
1480
|
}
|
|
1479
1481
|
return { paint: p, legend: C, geomType: w, outlinePaint: y };
|
|
@@ -1491,9 +1493,9 @@ function la(e, a) {
|
|
|
1491
1493
|
if (u === "fill") {
|
|
1492
1494
|
const y = ["step", ["get", l]];
|
|
1493
1495
|
y.push(z(o[0]?.symbol?.color));
|
|
1494
|
-
for (let
|
|
1495
|
-
const i = o[
|
|
1496
|
-
|
|
1496
|
+
for (let m = 0; m < o.length; m++) {
|
|
1497
|
+
const i = o[m];
|
|
1498
|
+
m > 0 && (y.push(o[m - 1].classMaxValue), y.push(z(i.symbol?.color))), p.push({
|
|
1497
1499
|
type: "fill",
|
|
1498
1500
|
color: z(i.symbol?.color),
|
|
1499
1501
|
label: i.label || `${i.classMaxValue}`
|
|
@@ -1501,17 +1503,17 @@ function la(e, a) {
|
|
|
1501
1503
|
}
|
|
1502
1504
|
if (w = {
|
|
1503
1505
|
"fill-color": y,
|
|
1504
|
-
"fill-opacity":
|
|
1506
|
+
"fill-opacity": me(a)
|
|
1505
1507
|
}, Pe(n?.outline)) {
|
|
1506
|
-
const
|
|
1508
|
+
const m = X(n.outline.width || 1);
|
|
1507
1509
|
C = {
|
|
1508
1510
|
"line-color": z(n.outline.color),
|
|
1509
|
-
"line-width":
|
|
1511
|
+
"line-width": m
|
|
1510
1512
|
};
|
|
1511
1513
|
}
|
|
1512
1514
|
} else if (u === "line") {
|
|
1513
|
-
const y = o.map((E) => E.symbol?.style || "esriSLSSolid"),
|
|
1514
|
-
if (
|
|
1515
|
+
const y = o.map((E) => E.symbol?.style || "esriSLSSolid"), m = [...new Set(y)];
|
|
1516
|
+
if (m.length > 1) {
|
|
1515
1517
|
const E = ea(o, y, l, e, a);
|
|
1516
1518
|
return { paint: {}, legend: [], geomType: u, outlinePaint: C, splitLayers: E };
|
|
1517
1519
|
}
|
|
@@ -1531,9 +1533,9 @@ function la(e, a) {
|
|
|
1531
1533
|
w = {
|
|
1532
1534
|
"line-color": g,
|
|
1533
1535
|
"line-width": L,
|
|
1534
|
-
"line-opacity":
|
|
1536
|
+
"line-opacity": me(a)
|
|
1535
1537
|
};
|
|
1536
|
-
const S = Ke(
|
|
1538
|
+
const S = Ke(m[0]);
|
|
1537
1539
|
S && (w["line-dasharray"] = S);
|
|
1538
1540
|
}
|
|
1539
1541
|
return { paint: w, legend: p, geomType: u, outlinePaint: C };
|
|
@@ -1563,7 +1565,7 @@ function na(e, a, l, o) {
|
|
|
1563
1565
|
y
|
|
1564
1566
|
// Otherwise use the interpolated color
|
|
1565
1567
|
],
|
|
1566
|
-
"fill-opacity":
|
|
1568
|
+
"fill-opacity": me(o)
|
|
1567
1569
|
}, Pe(n?.outline)) {
|
|
1568
1570
|
const i = X(n.outline.width || 1);
|
|
1569
1571
|
C = {
|
|
@@ -1675,7 +1677,7 @@ async function Wt(e) {
|
|
|
1675
1677
|
O.description && (u = fa(O.description), u.size > 0);
|
|
1676
1678
|
}
|
|
1677
1679
|
}
|
|
1678
|
-
const { paint: y, legend:
|
|
1680
|
+
const { paint: y, legend: m, geomType: i, outlinePaint: g, splitLayers: d } = ra(
|
|
1679
1681
|
n,
|
|
1680
1682
|
r.opacity,
|
|
1681
1683
|
u,
|
|
@@ -1707,7 +1709,7 @@ async function Wt(e) {
|
|
|
1707
1709
|
url: r.url,
|
|
1708
1710
|
opacity: T,
|
|
1709
1711
|
paint: y,
|
|
1710
|
-
legend:
|
|
1712
|
+
legend: m,
|
|
1711
1713
|
popup: L,
|
|
1712
1714
|
where: S,
|
|
1713
1715
|
minZoom: E.minZoom,
|
|
@@ -1731,7 +1733,7 @@ function ya(e) {
|
|
|
1731
1733
|
e ? (rt.delete(e), Je.delete(e)) : (rt.clear(), Je.clear());
|
|
1732
1734
|
}
|
|
1733
1735
|
let at, Bt = 0;
|
|
1734
|
-
async function
|
|
1736
|
+
async function ha() {
|
|
1735
1737
|
const e = typeof import.meta < "u" && At?.VITE_AGO_USERNAME, a = typeof import.meta < "u" && At?.VITE_AGO_PASSWORD;
|
|
1736
1738
|
if (!(!e || !a)) {
|
|
1737
1739
|
if (at && Date.now() < Bt - 3e5)
|
|
@@ -1757,7 +1759,7 @@ async function ma() {
|
|
|
1757
1759
|
}
|
|
1758
1760
|
}
|
|
1759
1761
|
}
|
|
1760
|
-
async function
|
|
1762
|
+
async function ma(e, a) {
|
|
1761
1763
|
const l = xt(e, a), o = await fetch(l, { cache: "no-store" });
|
|
1762
1764
|
if (!o.ok)
|
|
1763
1765
|
throw new Error(`Failed to fetch WebMap: ${o.status} ${o.statusText}`);
|
|
@@ -1768,7 +1770,7 @@ async function ha(e, a) {
|
|
|
1768
1770
|
}
|
|
1769
1771
|
async function ga(e) {
|
|
1770
1772
|
try {
|
|
1771
|
-
const a = await
|
|
1773
|
+
const a = await ha(), l = await ma(e, a);
|
|
1772
1774
|
return await Wt(l);
|
|
1773
1775
|
} catch (a) {
|
|
1774
1776
|
throw new Error(
|
|
@@ -1886,7 +1888,7 @@ function va(e) {
|
|
|
1886
1888
|
l.set(i.id, g);
|
|
1887
1889
|
}
|
|
1888
1890
|
}
|
|
1889
|
-
function
|
|
1891
|
+
function m() {
|
|
1890
1892
|
for (const [, i] of l)
|
|
1891
1893
|
window.clearInterval(i);
|
|
1892
1894
|
l.clear();
|
|
@@ -1894,7 +1896,7 @@ function va(e) {
|
|
|
1894
1896
|
return lt(() => {
|
|
1895
1897
|
r(), y();
|
|
1896
1898
|
}), Vt(() => {
|
|
1897
|
-
|
|
1899
|
+
m();
|
|
1898
1900
|
}), {
|
|
1899
1901
|
/** Reactive state for all data sources */
|
|
1900
1902
|
state: j(a),
|
|
@@ -1911,7 +1913,7 @@ function va(e) {
|
|
|
1911
1913
|
/** Get error for a specific source */
|
|
1912
1914
|
getError: C,
|
|
1913
1915
|
/** Stop all polling (useful for cleanup) */
|
|
1914
|
-
stopPolling:
|
|
1916
|
+
stopPolling: m
|
|
1915
1917
|
};
|
|
1916
1918
|
}
|
|
1917
1919
|
const ba = { class: "layerboard-layout" }, wa = ["aria-expanded"], La = {
|
|
@@ -1959,7 +1961,7 @@ const ba = { class: "layerboard-layout" }, wa = ["aria-expanded"], La = {
|
|
|
1959
1961
|
},
|
|
1960
1962
|
emits: ["configs-loaded", "load-error", "zoom"],
|
|
1961
1963
|
setup(e, { expose: a, emit: l }) {
|
|
1962
|
-
const o = e, r = l, n = x([]), u = x(!0), w = x(null), p = x(12), C = x(""), y = x(/* @__PURE__ */ new Set()),
|
|
1964
|
+
const o = e, r = l, n = x([]), u = x(!0), w = x(null), p = x(12), C = x(""), y = x(/* @__PURE__ */ new Set()), m = x({}), i = x(/* @__PURE__ */ new Set()), g = x({}), d = x({}), L = x(/* @__PURE__ */ new Set()), S = x({});
|
|
1963
1965
|
function E() {
|
|
1964
1966
|
const v = {};
|
|
1965
1967
|
for (const $ of o.tiledLayers)
|
|
@@ -1982,7 +1984,7 @@ const ba = { class: "layerboard-layout" }, wa = ["aria-expanded"], La = {
|
|
|
1982
1984
|
function de(v) {
|
|
1983
1985
|
return O?.refetch(v) ?? Promise.resolve();
|
|
1984
1986
|
}
|
|
1985
|
-
N("layerboard-layers", j(n)), N("layerboard-visible", y), N("layerboard-opacities",
|
|
1987
|
+
N("layerboard-layers", j(n)), N("layerboard-visible", y), N("layerboard-opacities", m), 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);
|
|
1986
1988
|
const ve = _(() => ({
|
|
1987
1989
|
backgroundColor: o.themeColor
|
|
1988
1990
|
})), ct = _(() => ({
|
|
@@ -2018,7 +2020,7 @@ const ba = { class: "layerboard-layout" }, wa = ["aria-expanded"], La = {
|
|
|
2018
2020
|
const J = {};
|
|
2019
2021
|
$.forEach((Z) => {
|
|
2020
2022
|
J[Z.id] = Z.opacity ?? 1;
|
|
2021
|
-
}),
|
|
2023
|
+
}), m.value = J, r("configs-loaded", $);
|
|
2022
2024
|
} catch (v) {
|
|
2023
2025
|
const $ = v instanceof Error ? v.message : "Failed to load layer configurations";
|
|
2024
2026
|
w.value = $, r("load-error", $);
|
|
@@ -2058,7 +2060,7 @@ const ba = { class: "layerboard-layout" }, wa = ["aria-expanded"], La = {
|
|
|
2058
2060
|
y.value = new Set(y.value);
|
|
2059
2061
|
}
|
|
2060
2062
|
function Fe(v, $) {
|
|
2061
|
-
|
|
2063
|
+
m.value = { ...m.value, [v]: $ };
|
|
2062
2064
|
}
|
|
2063
2065
|
function qe(v, $) {
|
|
2064
2066
|
$ ? i.value.add(v) : i.value.delete(v), i.value = new Set(i.value);
|
|
@@ -2147,7 +2149,7 @@ const ba = { class: "layerboard-layout" }, wa = ["aria-expanded"], La = {
|
|
|
2147
2149
|
/** Set of visible layer IDs */
|
|
2148
2150
|
visibleLayers: y,
|
|
2149
2151
|
/** Layer opacity values */
|
|
2150
|
-
layerOpacities:
|
|
2152
|
+
layerOpacities: m,
|
|
2151
2153
|
/** Set of currently loading layer IDs */
|
|
2152
2154
|
loadingLayers: i,
|
|
2153
2155
|
/** Map of layer errors by ID */
|
|
@@ -2201,7 +2203,7 @@ const ba = { class: "layerboard-layout" }, wa = ["aria-expanded"], La = {
|
|
|
2201
2203
|
We(), Xe(), E(), document.addEventListener("keydown", ot);
|
|
2202
2204
|
}), eo(() => {
|
|
2203
2205
|
document.removeEventListener("keydown", ot);
|
|
2204
|
-
}), (v, $) => (
|
|
2206
|
+
}), (v, $) => (h(), M("div", ba, [
|
|
2205
2207
|
$[5] || ($[5] = P("a", {
|
|
2206
2208
|
href: "#main-content",
|
|
2207
2209
|
class: "skip-to-main-content-link"
|
|
@@ -2238,11 +2240,11 @@ const ba = { class: "layerboard-layout" }, wa = ["aria-expanded"], La = {
|
|
|
2238
2240
|
decorative: ""
|
|
2239
2241
|
}, null, 8, ["icon-definition"])
|
|
2240
2242
|
], 8, wa),
|
|
2241
|
-
|
|
2243
|
+
he(v.$slots, "header", {}, () => [
|
|
2242
2244
|
P("h1", null, G(e.title), 1),
|
|
2243
|
-
e.subtitle ? (
|
|
2245
|
+
e.subtitle ? (h(), M("span", La, G(e.subtitle), 1)) : A("", !0)
|
|
2244
2246
|
], !0),
|
|
2245
|
-
ae.value ? (
|
|
2247
|
+
ae.value ? (h(), M("div", {
|
|
2246
2248
|
key: 0,
|
|
2247
2249
|
ref_key: "mobileMenuRef",
|
|
2248
2250
|
ref: be,
|
|
@@ -2254,7 +2256,7 @@ const ba = { class: "layerboard-layout" }, wa = ["aria-expanded"], La = {
|
|
|
2254
2256
|
onKeydown: Ve
|
|
2255
2257
|
}, [
|
|
2256
2258
|
P("div", Sa, [
|
|
2257
|
-
|
|
2259
|
+
he(v.$slots, "footer", {
|
|
2258
2260
|
openModal: Ae,
|
|
2259
2261
|
closeModal: le,
|
|
2260
2262
|
isModalOpen: ie.value
|
|
@@ -2276,20 +2278,20 @@ const ba = { class: "layerboard-layout" }, wa = ["aria-expanded"], La = {
|
|
|
2276
2278
|
}, null, 8, ["icon-definition"])
|
|
2277
2279
|
], 512)
|
|
2278
2280
|
], 36)) : A("", !0),
|
|
2279
|
-
ae.value ? (
|
|
2281
|
+
ae.value ? (h(), M("div", {
|
|
2280
2282
|
key: 1,
|
|
2281
2283
|
class: "layerboard-mobile-menu-backdrop",
|
|
2282
2284
|
onClick: Ee
|
|
2283
2285
|
})) : A("", !0)
|
|
2284
2286
|
], 4),
|
|
2285
2287
|
P("div", Ca, [
|
|
2286
|
-
u.value ? (
|
|
2288
|
+
u.value ? (h(), M("div", ka, [
|
|
2287
2289
|
P("div", {
|
|
2288
2290
|
class: "layerboard-spinner",
|
|
2289
2291
|
style: ye({ borderTopColor: e.themeColor })
|
|
2290
2292
|
}, null, 4),
|
|
2291
2293
|
P("p", null, "Loading " + G(e.title) + "...", 1)
|
|
2292
|
-
])) : w.value ? (
|
|
2294
|
+
])) : w.value ? (h(), M("div", xa, [
|
|
2293
2295
|
$[3] || ($[3] = P("h2", null, "Error Loading Layers", -1)),
|
|
2294
2296
|
P("p", null, G(w.value), 1),
|
|
2295
2297
|
P("button", {
|
|
@@ -2297,7 +2299,7 @@ const ba = { class: "layerboard-layout" }, wa = ["aria-expanded"], La = {
|
|
|
2297
2299
|
style: ye({ backgroundColor: e.themeColor }),
|
|
2298
2300
|
onClick: We
|
|
2299
2301
|
}, " Retry ", 4)
|
|
2300
|
-
])) : (
|
|
2302
|
+
])) : (h(), M(ue, { key: 2 }, [
|
|
2301
2303
|
P("aside", {
|
|
2302
2304
|
id: "main-content",
|
|
2303
2305
|
ref_key: "sidebarRef",
|
|
@@ -2307,10 +2309,10 @@ const ba = { class: "layerboard-layout" }, wa = ["aria-expanded"], La = {
|
|
|
2307
2309
|
"aria-label": "Map layers",
|
|
2308
2310
|
tabindex: "-1"
|
|
2309
2311
|
}, [
|
|
2310
|
-
|
|
2312
|
+
he(v.$slots, "sidebar", {
|
|
2311
2313
|
layers: n.value,
|
|
2312
2314
|
visibleLayers: y.value,
|
|
2313
|
-
layerOpacities:
|
|
2315
|
+
layerOpacities: m.value,
|
|
2314
2316
|
loadingLayers: i.value,
|
|
2315
2317
|
layerErrors: g.value,
|
|
2316
2318
|
currentZoom: p.value,
|
|
@@ -2329,11 +2331,11 @@ const ba = { class: "layerboard-layout" }, wa = ["aria-expanded"], La = {
|
|
|
2329
2331
|
getDataSource: U,
|
|
2330
2332
|
refetchDataSource: de
|
|
2331
2333
|
}, () => [
|
|
2332
|
-
e.showDefaultSidebar ? (
|
|
2334
|
+
e.showDefaultSidebar ? (h(), q(Xo, {
|
|
2333
2335
|
key: 0,
|
|
2334
2336
|
"layer-list": n.value,
|
|
2335
2337
|
"visible-layers": y.value,
|
|
2336
|
-
"layer-opacities":
|
|
2338
|
+
"layer-opacities": m.value,
|
|
2337
2339
|
"loading-layers": i.value,
|
|
2338
2340
|
"layer-errors": g.value,
|
|
2339
2341
|
"current-zoom": p.value,
|
|
@@ -2352,7 +2354,7 @@ const ba = { class: "layerboard-layout" }, wa = ["aria-expanded"], La = {
|
|
|
2352
2354
|
}, [
|
|
2353
2355
|
H(uo, {
|
|
2354
2356
|
"visible-layers": y.value,
|
|
2355
|
-
"layer-opacities":
|
|
2357
|
+
"layer-opacities": m.value,
|
|
2356
2358
|
"layer-list": n.value,
|
|
2357
2359
|
"tiled-layers": e.tiledLayers,
|
|
2358
2360
|
"visible-tiled-layers": L.value,
|
|
@@ -2395,13 +2397,13 @@ const ba = { class: "layerboard-layout" }, wa = ["aria-expanded"], La = {
|
|
|
2395
2397
|
style: ye(Ue.value),
|
|
2396
2398
|
onClick: ft
|
|
2397
2399
|
}, [
|
|
2398
|
-
Se.value === "map" ? (
|
|
2400
|
+
Se.value === "map" ? (h(), M("span", Ma, G(e.sidebarLabel), 1)) : (h(), M("span", Pa, G(e.mapLabel), 1))
|
|
2399
2401
|
], 4),
|
|
2400
2402
|
P("footer", {
|
|
2401
2403
|
class: "layerboard-footer",
|
|
2402
2404
|
style: ye(ct.value)
|
|
2403
2405
|
}, [
|
|
2404
|
-
|
|
2406
|
+
he(v.$slots, "footer", {
|
|
2405
2407
|
openModal: Ae,
|
|
2406
2408
|
closeModal: le,
|
|
2407
2409
|
isModalOpen: ie.value
|
|
@@ -2409,7 +2411,7 @@ const ba = { class: "layerboard-layout" }, wa = ["aria-expanded"], La = {
|
|
|
2409
2411
|
$[4] || ($[4] = xe(" City of Philadelphia ", -1))
|
|
2410
2412
|
], !0)
|
|
2411
2413
|
], 4),
|
|
2412
|
-
ie.value ? (
|
|
2414
|
+
ie.value ? (h(), M("div", {
|
|
2413
2415
|
key: 0,
|
|
2414
2416
|
class: "layerboard-modal-backdrop",
|
|
2415
2417
|
onClick: Be,
|
|
@@ -2436,7 +2438,7 @@ const ba = { class: "layerboard-layout" }, wa = ["aria-expanded"], La = {
|
|
|
2436
2438
|
decorative: ""
|
|
2437
2439
|
}, null, 8, ["icon-definition"])
|
|
2438
2440
|
], 512),
|
|
2439
|
-
|
|
2441
|
+
he(v.$slots, "modal", { closeModal: le }, void 0, !0)
|
|
2440
2442
|
], 512)
|
|
2441
2443
|
], 32)) : A("", !0),
|
|
2442
2444
|
P("span", Fa, G(Se.value === "sidebar" ? "Showing layers panel" : "Showing map"), 1)
|
|
@@ -2468,7 +2470,7 @@ const ba = { class: "layerboard-layout" }, wa = ["aria-expanded"], La = {
|
|
|
2468
2470
|
}
|
|
2469
2471
|
return (p, C) => {
|
|
2470
2472
|
const y = to("font-awesome-icon");
|
|
2471
|
-
return
|
|
2473
|
+
return h(), M("div", {
|
|
2472
2474
|
class: ne(["topic-accordion", { "is-expanded": r.value }])
|
|
2473
2475
|
}, [
|
|
2474
2476
|
P("button", {
|
|
@@ -2479,9 +2481,9 @@ const ba = { class: "layerboard-layout" }, wa = ["aria-expanded"], La = {
|
|
|
2479
2481
|
"aria-controls": n,
|
|
2480
2482
|
onClick: w
|
|
2481
2483
|
}, [
|
|
2482
|
-
e.icon || p.$slots.icon ? (
|
|
2483
|
-
|
|
2484
|
-
e.icon ? (
|
|
2484
|
+
e.icon || p.$slots.icon ? (h(), M("span", Ea, [
|
|
2485
|
+
he(p.$slots, "icon", {}, () => [
|
|
2486
|
+
e.icon ? (h(), q(y, {
|
|
2485
2487
|
key: 0,
|
|
2486
2488
|
icon: ["fas", e.icon],
|
|
2487
2489
|
"aria-hidden": "true"
|
|
@@ -2514,7 +2516,7 @@ const ba = { class: "layerboard-layout" }, wa = ["aria-expanded"], La = {
|
|
|
2514
2516
|
"aria-labelledby": u,
|
|
2515
2517
|
class: "topic-content"
|
|
2516
2518
|
}, [
|
|
2517
|
-
|
|
2519
|
+
he(p.$slots, "default", {}, () => [
|
|
2518
2520
|
C[1] || (C[1] = P("p", { class: "topic-empty" }, "No content provided for this topic.", -1))
|
|
2519
2521
|
], !0)
|
|
2520
2522
|
], 512), [
|
|
@@ -2560,16 +2562,16 @@ const _a = ["aria-label"], Ra = ["checked", "disabled", "onChange"], Aa = { clas
|
|
|
2560
2562
|
function C(y) {
|
|
2561
2563
|
o("toggleLayer", y);
|
|
2562
2564
|
}
|
|
2563
|
-
return (y,
|
|
2565
|
+
return (y, m) => (h(), M("fieldset", {
|
|
2564
2566
|
class: "layer-checkbox-set",
|
|
2565
2567
|
role: "group",
|
|
2566
2568
|
"aria-label": e.groupLabel
|
|
2567
2569
|
}, [
|
|
2568
|
-
(
|
|
2570
|
+
(h(!0), M(ue, null, Le(e.layers, (i) => (h(), M("div", {
|
|
2569
2571
|
key: i.id,
|
|
2570
2572
|
class: "layer-item"
|
|
2571
2573
|
}, [
|
|
2572
|
-
f(Da)(i) ? (
|
|
2574
|
+
f(Da)(i) ? (h(), M("label", {
|
|
2573
2575
|
key: 0,
|
|
2574
2576
|
class: ne(["layer-checkbox", {
|
|
2575
2577
|
"layer-unavailable": !f(p)(i),
|
|
@@ -2590,7 +2592,7 @@ const _a = ["aria-label"], Ra = ["checked", "disabled", "onChange"], Aa = { clas
|
|
|
2590
2592
|
unavailable: !f(p)(i)
|
|
2591
2593
|
}, null, 8, ["loading", "error", "unavailable"])
|
|
2592
2594
|
])
|
|
2593
|
-
], 2)) : (
|
|
2595
|
+
], 2)) : (h(), M("div", {
|
|
2594
2596
|
key: 1,
|
|
2595
2597
|
class: ne(["layer-label-only", {
|
|
2596
2598
|
"layer-unavailable": !f(p)(i),
|
|
@@ -2606,20 +2608,20 @@ const _a = ["aria-label"], Ra = ["checked", "disabled", "onChange"], Aa = { clas
|
|
|
2606
2608
|
}, null, 8, ["loading", "error", "unavailable"])
|
|
2607
2609
|
])
|
|
2608
2610
|
], 2)),
|
|
2609
|
-
f(jt)(i, e.showOpacity) && f(r)(i.id) && f(p)(i) ? (
|
|
2611
|
+
f(jt)(i, e.showOpacity) && f(r)(i.id) && f(p)(i) ? (h(), q(Lt, {
|
|
2610
2612
|
key: 2,
|
|
2611
2613
|
"layer-id": i.id,
|
|
2612
2614
|
"layer-name": f(ze)(i),
|
|
2613
2615
|
opacity: f(n)(i.id),
|
|
2614
2616
|
"onUpdate:opacity": (g) => o("setOpacity", i.id, g)
|
|
2615
2617
|
}, 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 ? (
|
|
2618
|
+
f(qt)(i, e.showLegend) && f(r)(i.id) && f(p)(i) && i.legend?.length ? (h(), q(St, {
|
|
2617
2619
|
key: 3,
|
|
2618
2620
|
items: i.legend,
|
|
2619
2621
|
label: "Legend for " + f(ze)(i)
|
|
2620
2622
|
}, null, 8, ["items", "label"])) : A("", !0)
|
|
2621
2623
|
]))), 128)),
|
|
2622
|
-
e.layers.length === 0 ? (
|
|
2624
|
+
e.layers.length === 0 ? (h(), M("div", Va, "No layers available")) : A("", !0)
|
|
2623
2625
|
], 8, _a));
|
|
2624
2626
|
}
|
|
2625
2627
|
}), ti = /* @__PURE__ */ $e(Za, [["__scopeId", "data-v-bfcd7855"]]), Na = ["aria-label"], Ua = ["name", "checked", "disabled", "onChange"], Wa = { class: "layer-title" }, ja = {
|
|
@@ -2645,15 +2647,15 @@ const _a = ["aria-label"], Ra = ["checked", "disabled", "onChange"], Aa = { clas
|
|
|
2645
2647
|
() => l
|
|
2646
2648
|
);
|
|
2647
2649
|
function C(y) {
|
|
2648
|
-
const
|
|
2649
|
-
o("selectLayer", y,
|
|
2650
|
+
const m = l.layers.filter((i) => l.visibleLayerIds.has(i.id) && i.id !== y).map((i) => i.id);
|
|
2651
|
+
o("selectLayer", y, m);
|
|
2650
2652
|
}
|
|
2651
|
-
return (y,
|
|
2653
|
+
return (y, m) => (h(), M("div", {
|
|
2652
2654
|
class: "layer-radio-set",
|
|
2653
2655
|
role: "radiogroup",
|
|
2654
2656
|
"aria-label": e.groupLabel
|
|
2655
2657
|
}, [
|
|
2656
|
-
(
|
|
2658
|
+
(h(!0), M(ue, null, Le(e.layers, (i) => (h(), M("div", {
|
|
2657
2659
|
key: i.id,
|
|
2658
2660
|
class: "layer-item"
|
|
2659
2661
|
}, [
|
|
@@ -2679,20 +2681,20 @@ const _a = ["aria-label"], Ra = ["checked", "disabled", "onChange"], Aa = { clas
|
|
|
2679
2681
|
}, null, 8, ["loading", "error", "unavailable"])
|
|
2680
2682
|
])
|
|
2681
2683
|
], 2),
|
|
2682
|
-
f(jt)(i, e.showOpacity) && f(r)(i.id) && f(p)(i) ? (
|
|
2684
|
+
f(jt)(i, e.showOpacity) && f(r)(i.id) && f(p)(i) ? (h(), q(Lt, {
|
|
2683
2685
|
key: 0,
|
|
2684
2686
|
"layer-id": i.id,
|
|
2685
2687
|
"layer-name": f(ze)(i),
|
|
2686
2688
|
opacity: f(n)(i.id),
|
|
2687
2689
|
"onUpdate:opacity": (g) => o("setOpacity", i.id, g)
|
|
2688
2690
|
}, 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 ? (
|
|
2691
|
+
f(qt)(i, e.showLegend) && f(r)(i.id) && f(p)(i) && i.legend?.length ? (h(), q(St, {
|
|
2690
2692
|
key: 1,
|
|
2691
2693
|
items: i.legend,
|
|
2692
2694
|
label: "Legend for " + f(ze)(i)
|
|
2693
2695
|
}, null, 8, ["items", "label"])) : A("", !0)
|
|
2694
2696
|
]))), 128)),
|
|
2695
|
-
e.layers.length === 0 ? (
|
|
2697
|
+
e.layers.length === 0 ? (h(), M("div", ja, "No layers available")) : A("", !0)
|
|
2696
2698
|
], 8, Na));
|
|
2697
2699
|
}
|
|
2698
2700
|
}), oi = /* @__PURE__ */ $e(qa, [["__scopeId", "data-v-c368d815"]]);
|
|
@@ -2702,7 +2704,7 @@ function ai(e) {
|
|
|
2702
2704
|
return a.value;
|
|
2703
2705
|
const T = u.value.toLowerCase();
|
|
2704
2706
|
return a.value.filter((O) => O.title.toLowerCase().includes(T));
|
|
2705
|
-
}),
|
|
2707
|
+
}), m = _(() => a.value.map((T) => ({
|
|
2706
2708
|
config: T,
|
|
2707
2709
|
component: T.type
|
|
2708
2710
|
// "circle", "fill", or "line"
|
|
@@ -2772,7 +2774,7 @@ function ai(e) {
|
|
|
2772
2774
|
error: j(C),
|
|
2773
2775
|
// Computed
|
|
2774
2776
|
filteredLayerConfigs: y,
|
|
2775
|
-
layerList:
|
|
2777
|
+
layerList: m,
|
|
2776
2778
|
// Config
|
|
2777
2779
|
config: e,
|
|
2778
2780
|
// Methods
|
|
@@ -2806,7 +2808,7 @@ function Ga(e) {
|
|
|
2806
2808
|
async function n(p = {}) {
|
|
2807
2809
|
l.value = !0, o.value = null;
|
|
2808
2810
|
const C = e.pageSize || 2e3;
|
|
2809
|
-
let y = 0,
|
|
2811
|
+
let y = 0, m = [], i = !0;
|
|
2810
2812
|
try {
|
|
2811
2813
|
for (; i; ) {
|
|
2812
2814
|
const d = e.url.replace(/\/$/, ""), L = encodeURIComponent(p.where || e.where || "1=1");
|
|
@@ -2825,13 +2827,13 @@ function Ga(e) {
|
|
|
2825
2827
|
if (!E.ok)
|
|
2826
2828
|
throw new Error(`HTTP ${E.status}: ${E.statusText}`);
|
|
2827
2829
|
const F = await E.json();
|
|
2828
|
-
F.features && F.features.length > 0 ? (
|
|
2830
|
+
F.features && F.features.length > 0 ? (m = m.concat(F.features), y += F.features.length, i = F.features.length === C) : i = !1;
|
|
2829
2831
|
}
|
|
2830
2832
|
const g = {
|
|
2831
2833
|
type: "FeatureCollection",
|
|
2832
|
-
features:
|
|
2834
|
+
features: m
|
|
2833
2835
|
};
|
|
2834
|
-
return a.value = g, r.value =
|
|
2836
|
+
return a.value = g, r.value = m.length, g;
|
|
2835
2837
|
} catch (g) {
|
|
2836
2838
|
const d = g instanceof Error ? g : new Error("Failed to fetch features");
|
|
2837
2839
|
throw o.value = d, d;
|