@opengis/gis 0.2.150 → 0.2.151
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +181 -181
- package/dist/{CardIcon-CwtOJb6Z.js → CardIcon-COYvGn3y.js} +1 -1
- package/dist/{EntityTablePage-BZcdLpRo.js → EntityTablePage-n5jN3Vg8.js} +2 -2
- package/dist/{ExtentOutlineLayer.vue_vue_type_script_setup_true_lang-BkUQoTIz.js → ExtentOutlineLayer.vue_vue_type_script_setup_true_lang-_bbOMBQM.js} +1 -1
- package/dist/{HeaderActions.vue_vue_type_script_setup_true_lang-ls8AXq2-.js → HeaderActions.vue_vue_type_script_setup_true_lang-X8W5T9FU.js} +1 -1
- package/dist/{MapSettings-B9MYgBIp.js → MapSettings-DFpaiasG.js} +2 -2
- package/dist/{RastersTablePage-BoVW5Fv8.js → RastersTablePage-BDPlRImd.js} +2 -2
- package/dist/{cartocss-DYZTBG6c.js → cartocss-DAww4B8T.js} +5 -5
- package/dist/{import-utils-DsfbRYWS.js → import-utils-BD6m47wz.js} +1 -1
- package/dist/{index-FZ4LFEYB.js → index-DgSwtpZG.js} +666 -666
- package/dist/index.css +1 -1
- package/dist/index.js +1 -1
- package/dist/index.umd.cjs +8 -8
- package/dist/{raster-BsoWgW3l.js → raster-Dj4pagIY.js} +3 -3
- package/dist/{register-BKQkDmho.js → register-lve1-eW0.js} +3 -3
- package/dist/{service-B3tj7wpL.js → service-DfMY6QRr.js} +6 -6
- package/dist/{vs-datatable-N1huoMSR.js → vs-datatable-CMGb14xz.js} +2 -2
- package/module/cls.json +6 -6
- package/module/gis/card/gis.metadata.table/index.yml +22 -22
- package/module/gis/card/gis.metadata.table/main_info.hbs +20 -20
- package/module/gis/card/gis.metadata.table/metadata_info.hbs +27 -27
- package/module/gis/card/gis.metadata.table/other.hbs +25 -25
- package/module/gis/card/gis.rasters.table/index.yml +11 -11
- package/module/gis/card/gis.rasters.table/main_info.hbs +27 -27
- package/module/gis/card/gis.registers.table/cls.hbs +36 -36
- package/module/gis/card/gis.registers.table/columns.hbs +89 -89
- package/module/gis/card/gis.registers.table/filters.hbs +80 -80
- package/module/gis/card/gis.registers.table/index.yml +23 -23
- package/module/gis/card/gis.registers.table/main_info.hbs +35 -35
- package/module/gis/card/gis.registers.table/source.hbs +45 -45
- package/module/gis/card/gis.services.table/attributes.hbs +91 -91
- package/module/gis/card/gis.services.table/filters.hbs +83 -83
- package/module/gis/card/gis.services.table/index.yml +25 -25
- package/module/gis/card/gis.services.table/main_info.hbs +27 -27
- package/module/gis/card/gis.services.table/source.hbs +25 -25
- package/module/gis/cls/bool.yes_no.json +12 -12
- package/module/gis/cls/encoding.json +14 -14
- package/module/gis/cls/geom_type.json +14 -14
- package/module/gis/cls/gis.column_type.json +34 -34
- package/module/gis/cls/gis.column_view_type.json +26 -26
- package/module/gis/cls/gis.filter_type.json +22 -22
- package/module/gis/cls/language.json +10 -10
- package/module/gis/cls/meta.service_type.json +42 -42
- package/module/gis/cls/ogc.service.json +21 -21
- package/module/gis/cls/service_type.json +42 -42
- package/module/gis/cls/source_type.json +10 -10
- package/module/gis/cls/standarts.json +6 -6
- package/module/gis/cls/topic_category.json +106 -106
- package/module/gis/cls/update_frequency.json +29 -29
- package/module/gis/cls/view.json +21 -21
- package/module/gis/form/feedback.answer.form.json +10 -10
- package/module/gis/form/gis.cartocss.form.json +64 -64
- package/module/gis/form/gis.group_list.form.json +17 -17
- package/module/gis/form/gis.maps.form.json +61 -61
- package/module/gis/form/gis.metadata.form.json +240 -240
- package/module/gis/form/gis.metadata_new.form.json +195 -195
- package/module/gis/form/gis.ogc_service.form.json +51 -51
- package/module/gis/form/gis.rasters.form.json +76 -76
- package/module/gis/form/gis.registers.form.json +124 -124
- package/module/gis/form/gis.registers_column.form.json +84 -84
- package/module/gis/form/gis.registers_filter.form.json +65 -65
- package/module/gis/form/gis.services.form.json +111 -111
- package/module/gis/form/gis.services_attributes.form.json +75 -75
- package/module/gis/form/gis.services_filter.form.json +65 -65
- package/module/gis/menu.json +43 -43
- package/module/gis/select/admin.cls.name.sql +9 -9
- package/module/gis/select/layer_list.sql +7 -7
- package/module/gis/select/layer_list_text.sql +7 -7
- package/module/gis/select/pg.column_name.geometry.sql +12 -12
- package/module/gis/select/pg.columns.parent.sql +6 -6
- package/module/gis/select/pg.table_name.sql +17 -17
- package/module/gis/select/service_id.sql +1 -1
- package/module/gis/table/gis.cartocss.table.json +74 -74
- package/module/gis/table/gis.group_list.table.json +58 -58
- package/module/gis/table/gis.maps.table.json +110 -110
- package/module/gis/table/gis.metadata.table.json +70 -70
- package/module/gis/table/gis.metadata_new.table.json +137 -137
- package/module/gis/table/gis.ogc_service.table.json +100 -100
- package/module/gis/table/gis.rasters.table.json +113 -113
- package/module/gis/table/gis.registers.table.json +143 -143
- package/module/gis/table/gis.services.table.json +120 -120
- package/module/gis/table/site.gis.registers.table.json +88 -88
- package/module/gis/table/site.gis.services.table.json +106 -106
- package/module/gis/templates/ISO19136_2017_gml_template.xml +330 -330
- package/module/gis/tokens.yml +5 -5
- package/module/permissions/form/permissions.users.form.json +151 -151
- package/module/permissions/table/gis.permissions.table.json +97 -97
- package/module/test/cls/bp_build_type.json +37 -37
- package/module/test/cls/doc_status.json +31 -31
- package/module/test/cls/ts.temp_status.json +18 -18
- package/module/test/cls/ts.temp_structure.ts_class.json +49 -49
- package/module/test/cls/ts.temp_type.json +9 -9
- package/module/test/layer/bp.json +59 -59
- package/module/test/layer/bp1.yml +33 -33
- package/module/test/layer/individual.yml +53 -53
- package/module/test/layer/ts.linking_passport.yml +55 -55
- package/module/test/layer/ts.temp_structure.yml +50 -50
- package/module/test/map/addr.yml +21 -21
- package/module/test/map/bp_myo.json +43 -43
- package/module/test/map/bpf.json +43 -43
- package/module/test/map/main.json +37 -37
- package/module/test/map/mbd.json +92 -92
- package/module/test/map/ts.json +53 -53
- package/module/test/select/address_id.json +2 -2
- package/module/test/select/address_id.sql +7 -7
- package/module/test/select/core.user_uid.sql +1 -1
- package/module/test/table/data_address.street.table.json +69 -69
- package/module/test/table/data_bp_myo.bp.table.json +122 -122
- package/package.json +75 -75
- package/plugin.js +55 -55
- package/server/migrations/array_intersect.sql +13 -13
- package/server/migrations/cartocss.sql +27 -27
- package/server/migrations/group_list.sql +74 -74
- package/server/migrations/maps.sql +30 -30
- package/server/migrations/metadata.sql +415 -415
- package/server/migrations/ogc.sql +106 -106
- package/server/migrations/rasters.sql +265 -265
- package/server/migrations/services.sql +247 -247
- package/server/migrations/services_users_rel.sql +22 -22
- package/server/migrations/widgets.sql +20 -20
- package/server/plugins/crons.js +21 -21
- package/server/plugins/mapnik/funcs/checkRasterFile.js +109 -109
- package/server/plugins/mapnik/funcs/mapnik.js +151 -151
- package/server/plugins/mapnik/funcs/rootFolder.mjs +8 -8
- package/server/plugins/mapnik/map.proto +230 -230
- package/server/plugins/vite.js +74 -74
- package/server/routes/gis/cartocss/add.cartocss.js +42 -42
- package/server/routes/gis/cartocss/get.cartocss.js +59 -59
- package/server/routes/gis/checkXML.js +117 -117
- package/server/routes/gis/dashboard.js +29 -29
- package/server/routes/gis/index.mjs +87 -87
- package/server/routes/gis/metadata/editMetadata.js +34 -34
- package/server/routes/gis/metadata/metadataXML.js +13 -13
- package/server/routes/gis/ogc/map.info.point.js +124 -124
- package/server/routes/gis/registers/add.registry.js +35 -35
- package/server/routes/gis/registers/del.registry.js +14 -14
- package/server/routes/gis/registers/funcs/classifiers.js +100 -100
- package/server/routes/gis/registers/funcs/columns.js +3 -3
- package/server/routes/gis/registers/funcs/content.type.js +9 -9
- package/server/routes/gis/registers/funcs/get.info.js +89 -89
- package/server/routes/gis/registers/funcs/handleRegistryRequest.js +146 -146
- package/server/routes/gis/registers/gis.export.js +153 -153
- package/server/routes/gis/registers/gis.registry.js +64 -64
- package/server/routes/gis/registers/gis.registry.list.js +59 -59
- package/server/routes/gis/registers/insert.columns.js +107 -107
- package/server/routes/gis/registers/insert.filters.js +110 -110
- package/server/routes/gis/registers/map.registry.js +79 -79
- package/server/routes/gis/services/add.service.js +64 -64
- package/server/routes/gis/services/del.service.js +12 -12
- package/server/routes/gis/services/get.layer.geom.js +27 -27
- package/server/routes/gis/services/get.services.col.js +33 -33
- package/server/routes/gis/services/get.services.js +84 -84
- package/server/routes/gis/services/legend.auto.js +77 -77
- package/server/routes/map/controllers/clearTiles.js +34 -34
- package/server/routes/map/controllers/geojson.js +187 -187
- package/server/routes/map/controllers/jsonData.js +205 -205
- package/server/routes/map/controllers/layerList.js +102 -102
- package/server/routes/map/controllers/map.js +123 -123
- package/server/routes/map/controllers/mapCatalog.js +72 -72
- package/server/routes/map/controllers/mapCatalogAttribute.js +55 -55
- package/server/routes/map/controllers/mapFeatures.js +128 -128
- package/server/routes/map/controllers/mapFormat.js +234 -234
- package/server/routes/map/controllers/mapTiles.js +152 -152
- package/server/routes/map/controllers/maps.js +15 -15
- package/server/routes/map/controllers/marker_icon.js +43 -43
- package/server/routes/map/controllers/vtile.js +172 -172
- package/server/routes/map/index.mjs +169 -169
- package/server/routes/map/maps/add.map.js +43 -43
- package/server/routes/map/maps/del.map.js +18 -18
- package/server/routes/map/maps/get.map.js +118 -118
- package/server/routes/map/vtile1.js +179 -179
- package/server/routes/map/widgets/add.widget.js +38 -38
- package/server/routes/map/widgets/del.widget.js +22 -22
- package/server/routes/map/widgets/get.widget.js +40 -40
- package/server/routes/mapnik/controllers/clearTiles.js +106 -106
- package/server/routes/mapnik/controllers/createXml.js +67 -67
- package/server/routes/mapnik/controllers/createXmlMulti.js +76 -76
- package/server/routes/mapnik/controllers/fileSearch.js +38 -38
- package/server/routes/mapnik/controllers/fileStat.js +28 -28
- package/server/routes/mapnik/controllers/mapnikLogger.js +29 -29
- package/server/routes/mapnik/controllers/mapnikStat.js +19 -19
- package/server/routes/mapnik/controllers/pretile.js +144 -144
- package/server/routes/mapnik/controllers/rasterInfo.js +57 -57
- package/server/routes/mapnik/controllers/readDir.js +22 -22
- package/server/routes/mapnik/controllers/rtile.js +150 -150
- package/server/routes/mapnik/controllers/uploadRaster.js +157 -157
- package/server/routes/mapnik/functions/cartoBounds.js +32 -32
- package/server/routes/mapnik/functions/convertBoundToTile.js +27 -27
- package/server/routes/mapnik/functions/uploadXML.js +113 -113
- package/server/routes/mapnik/index.js +40 -40
- package/server/routes/permissions/controllers/catalog.permissions.edit.js +22 -22
- package/server/routes/permissions/controllers/catalog.permissions.js +7 -7
- package/server/routes/permissions/controllers/gis.catalog.js +80 -80
- package/server/routes/permissions/controllers/utils/get.permissions.js +59 -59
- package/server/routes/permissions/index.mjs +18 -18
- package/server/routes/root.mjs +3 -3
- package/utils.js +13 -13
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent as me, useSlots as sr, computed as
|
|
1
|
+
import { defineComponent as me, useSlots as sr, computed as D, openBlock as s, createBlock as pe, resolveDynamicComponent as Yn, createSlots as Ao, renderList as ve, unref as se, withCtx as Lt, renderSlot as mn, normalizeProps as lr, guardReactiveProps as ar, defineAsyncComponent as Ze, createElementVNode as e, normalizeClass as Ee, toDisplayString as Y, createElementBlock as m, createVNode as ge, ref as F, onMounted as De, watch as ce, createCommentVNode as K, Fragment as te, withModifiers as qe, Teleport as St, createTextVNode as xe, normalizeStyle as ot, reactive as vt, withDirectives as Ye, vModelText as mt, withKeys as ao, nextTick as Xe, shallowRef as To, onUnmounted as Po, provide as ir, inject as ur, getCurrentInstance as Jt, onBeforeUnmount as Ue, createStaticVNode as zo, Transition as Xn, vShow as gn, vModelRadio as cr } from "vue";
|
|
2
2
|
import { useRoute as Tt, useRouter as Bt } from "vue-router";
|
|
3
3
|
import { Loader2 as vn, Layers as dr, Code as fr, ClipboardCopy as pr, ChevronRight as gr, X as Ut, Search as Fo, Plus as Jn, PenLine as vr, Trash2 as Kn, SquarePen as mr, Check as yr, ChevronDown as Ro, EyeOff as hr, Contrast as br, ChevronUp as xr, ArrowLeft as io, ArrowRight as uo, House as wr, MapPin as Mn, ArrowUpLeft as _r, Circle as jo, Info as En, Ruler as Io, ClipboardPaste as kr, Pen as Zn, Undo2 as $r, Pentagon as co, Download as Cr, Minus as Lr, Square as Sr, PaintBucket as Er, Eraser as Mr } from "lucide-vue-next";
|
|
4
4
|
import { VsPagination as Ar, notify as et, confirm as Tr } from "@opengis/core";
|
|
@@ -14,7 +14,7 @@ const yn = /* @__PURE__ */ me({
|
|
|
14
14
|
columnsConfig: { default: () => [] }
|
|
15
15
|
},
|
|
16
16
|
setup(n) {
|
|
17
|
-
const t = n, l = Tt(), r = sr(), k =
|
|
17
|
+
const t = n, l = Tt(), r = sr(), k = D(() => {
|
|
18
18
|
const v = String(l.params.id ?? ""), h = String(l.params.action ?? "");
|
|
19
19
|
return v ? h === t.editAction ? t.components.edit : v === t.createParam ? t.components.create : t.components.card : t.components.table;
|
|
20
20
|
});
|
|
@@ -35,12 +35,12 @@ const yn = /* @__PURE__ */ me({
|
|
|
35
35
|
__name: "RegistersWrapper",
|
|
36
36
|
setup(n) {
|
|
37
37
|
const t = Ze(
|
|
38
|
-
() => import("./EntityTablePage-
|
|
38
|
+
() => import("./EntityTablePage-n5jN3Vg8.js")
|
|
39
39
|
), l = Ze(
|
|
40
40
|
() => import("./EntityCreatePage-Da8XgBKU.js")
|
|
41
41
|
), r = Ze(
|
|
42
42
|
() => import("./EntityEditPage-QktKEAxz.js")
|
|
43
|
-
), k = Ze(() => import("./register-
|
|
43
|
+
), k = Ze(() => import("./register-lve1-eW0.js")), v = {
|
|
44
44
|
table: t,
|
|
45
45
|
create: l,
|
|
46
46
|
edit: r,
|
|
@@ -86,12 +86,12 @@ const yn = /* @__PURE__ */ me({
|
|
|
86
86
|
__name: "DatasetsWrapper",
|
|
87
87
|
setup(n) {
|
|
88
88
|
const t = Ze(
|
|
89
|
-
() => import("./EntityTablePage-
|
|
89
|
+
() => import("./EntityTablePage-n5jN3Vg8.js")
|
|
90
90
|
), l = Ze(
|
|
91
91
|
() => import("./EntityCreatePage-Da8XgBKU.js")
|
|
92
92
|
), r = Ze(
|
|
93
93
|
() => import("./EntityEditPage-QktKEAxz.js")
|
|
94
|
-
), k = Ze(() => import("./service-
|
|
94
|
+
), k = Ze(() => import("./service-DfMY6QRr.js")), v = {
|
|
95
95
|
table: t,
|
|
96
96
|
create: l,
|
|
97
97
|
edit: r,
|
|
@@ -154,12 +154,12 @@ const yn = /* @__PURE__ */ me({
|
|
|
154
154
|
__name: "RastersWrapper",
|
|
155
155
|
setup(n) {
|
|
156
156
|
const t = Ze(
|
|
157
|
-
() => import("./RastersTablePage-
|
|
157
|
+
() => import("./RastersTablePage-BDPlRImd.js")
|
|
158
158
|
), l = Ze(
|
|
159
159
|
() => import("./EntityCreatePage-Da8XgBKU.js")
|
|
160
160
|
), r = Ze(
|
|
161
161
|
() => import("./EntityEditPage-QktKEAxz.js")
|
|
162
|
-
), k = Ze(() => import("./raster-
|
|
162
|
+
), k = Ze(() => import("./raster-Dj4pagIY.js")), v = {
|
|
163
163
|
table: t,
|
|
164
164
|
create: l,
|
|
165
165
|
edit: r,
|
|
@@ -211,12 +211,12 @@ const yn = /* @__PURE__ */ me({
|
|
|
211
211
|
__name: "CartocssWrapper",
|
|
212
212
|
setup(n) {
|
|
213
213
|
const t = Ze(
|
|
214
|
-
() => import("./EntityTablePage-
|
|
214
|
+
() => import("./EntityTablePage-n5jN3Vg8.js")
|
|
215
215
|
), l = Ze(
|
|
216
216
|
() => import("./EntityCreatePage-Da8XgBKU.js")
|
|
217
217
|
), r = Ze(
|
|
218
218
|
() => import("./EntityEditPage-QktKEAxz.js")
|
|
219
|
-
), k = Ze(() => import("./cartocss-
|
|
219
|
+
), k = Ze(() => import("./cartocss-DAww4B8T.js")), v = {
|
|
220
220
|
table: t,
|
|
221
221
|
create: l,
|
|
222
222
|
edit: r,
|
|
@@ -321,12 +321,12 @@ const qr = /* @__PURE__ */ We(Br, [["render", Vr]]), Wr = { class: "gap-2 inline
|
|
|
321
321
|
__name: "MapsWrapper",
|
|
322
322
|
setup(n) {
|
|
323
323
|
const t = Ze(
|
|
324
|
-
() => import("./EntityTablePage-
|
|
324
|
+
() => import("./EntityTablePage-n5jN3Vg8.js")
|
|
325
325
|
), l = Ze(
|
|
326
326
|
() => import("./EntityCreatePage-Da8XgBKU.js")
|
|
327
327
|
), r = Ze(
|
|
328
328
|
() => import("./EntityEditPage-QktKEAxz.js")
|
|
329
|
-
), k = Ze(() => import("./MapSettings-
|
|
329
|
+
), k = Ze(() => import("./MapSettings-DFpaiasG.js")), v = {
|
|
330
330
|
table: t,
|
|
331
331
|
create: l,
|
|
332
332
|
edit: r,
|
|
@@ -392,7 +392,7 @@ const qr = /* @__PURE__ */ We(Br, [["render", Vr]]), Wr = { class: "gap-2 inline
|
|
|
392
392
|
_: 1
|
|
393
393
|
}));
|
|
394
394
|
}
|
|
395
|
-
}), Tg = /* @__PURE__ */ We(Gr, [["__scopeId", "data-v-
|
|
395
|
+
}), Tg = /* @__PURE__ */ We(Gr, [["__scopeId", "data-v-a2ee5978"]]), Yr = { class: "flex-1 overflow-y-auto p-0 overflow-x-hidden max-h-[70%] lg:max-h-[80%] xl:max-h-[83%] 2xl:max-h-[95%]" }, Xr = { class: "pt-0 mt-0" }, Jr = {
|
|
396
396
|
key: 0,
|
|
397
397
|
class: "flex items-center justify-center py-12"
|
|
398
398
|
}, Kr = {
|
|
@@ -418,14 +418,14 @@ const qr = /* @__PURE__ */ We(Br, [["render", Vr]]), Wr = { class: "gap-2 inline
|
|
|
418
418
|
},
|
|
419
419
|
emits: ["update:counts"],
|
|
420
420
|
setup(n, { expose: t, emit: l }) {
|
|
421
|
-
const r = n, k = l, v = Bt(), h = Tt(), d = F(Number(h.query.page) || 1), E = F(!1), $ = F(0), T = F([]), p =
|
|
421
|
+
const r = n, k = l, v = Bt(), h = Tt(), d = F(Number(h.query.page) || 1), E = F(!1), $ = F(0), T = F([]), p = D(() => {
|
|
422
422
|
const x = (d.value - 1) * On, C = x + On;
|
|
423
423
|
return T.value.slice(x, C);
|
|
424
424
|
}), y = F(!0), a = F(null), u = F(null);
|
|
425
425
|
let _ = null, c = null;
|
|
426
426
|
const o = (x = "", C = "") => {
|
|
427
|
-
const S = new URLSearchParams(),
|
|
428
|
-
|
|
427
|
+
const S = new URLSearchParams(), I = x.trim();
|
|
428
|
+
I && S.set("search", I);
|
|
429
429
|
const V = (C || "").trim();
|
|
430
430
|
V && S.set("type", V);
|
|
431
431
|
const oe = S.toString();
|
|
@@ -433,10 +433,10 @@ const qr = /* @__PURE__ */ We(Br, [["render", Vr]]), Wr = { class: "gap-2 inline
|
|
|
433
433
|
}, w = async (x = "", C = "") => {
|
|
434
434
|
try {
|
|
435
435
|
y.value = !0, a.value = null;
|
|
436
|
-
const S = o(x, C),
|
|
437
|
-
if (!
|
|
438
|
-
throw new Error(`HTTP error: ${
|
|
439
|
-
const V = await
|
|
436
|
+
const S = o(x, C), I = await fetch(S);
|
|
437
|
+
if (!I.ok)
|
|
438
|
+
throw new Error(`HTTP error: ${I.status}`);
|
|
439
|
+
const V = await I.json();
|
|
440
440
|
if (T.value = V.data, !x.trim())
|
|
441
441
|
$.value = V.data.length;
|
|
442
442
|
else if ($.value === 0) {
|
|
@@ -473,7 +473,7 @@ const qr = /* @__PURE__ */ We(Br, [["render", Vr]]), Wr = { class: "gap-2 inline
|
|
|
473
473
|
});
|
|
474
474
|
}, P = () => {
|
|
475
475
|
w(r.search, r.type ?? "");
|
|
476
|
-
},
|
|
476
|
+
}, j = async (x) => {
|
|
477
477
|
try {
|
|
478
478
|
await navigator.clipboard.writeText(x), u.value = x, c && clearTimeout(c), c = setTimeout(() => {
|
|
479
479
|
u.value = null;
|
|
@@ -501,8 +501,8 @@ const qr = /* @__PURE__ */ We(Br, [["render", Vr]]), Wr = { class: "gap-2 inline
|
|
|
501
501
|
})
|
|
502
502
|
])) : a.value ? (s(), m("div", Kr, Y(a.value), 1)) : T.value.length === 0 ? (s(), m("div", Qr, " Нічого не знайдено ")) : K("", !0),
|
|
503
503
|
T.value.length > 0 ? (s(), m("div", es, [
|
|
504
|
-
(s(!0), m(te, null, ve(p.value, (S,
|
|
505
|
-
key:
|
|
504
|
+
(s(!0), m(te, null, ve(p.value, (S, I) => (s(), m("div", {
|
|
505
|
+
key: I,
|
|
506
506
|
class: "w-full border border-gray-200 bg-white rounded-lg p-4 text-left hover:shadow-md transition-all hover:border-gray-300 cursor-pointer",
|
|
507
507
|
onClick: (V) => L(S)
|
|
508
508
|
}, [
|
|
@@ -524,12 +524,12 @@ const qr = /* @__PURE__ */ We(Br, [["render", Vr]]), Wr = { class: "gap-2 inline
|
|
|
524
524
|
e("div", rs, [
|
|
525
525
|
e("div", ss, [
|
|
526
526
|
e("h4", {
|
|
527
|
-
onClick: qe((V) =>
|
|
527
|
+
onClick: qe((V) => j(S.name), ["stop"]),
|
|
528
528
|
class: "text-sm font-semibold text-gray-800 mb-0 hover:border-b hover:border-gray-300 cursor-pointer"
|
|
529
529
|
}, Y(S.name), 9, ls),
|
|
530
530
|
e("div", as, [
|
|
531
531
|
e("button", {
|
|
532
|
-
onClick: qe((V) =>
|
|
532
|
+
onClick: qe((V) => j(S.name), ["stop"]),
|
|
533
533
|
class: "pt-1 mt-0.5 text-gray-400 hover:text-gray-600 hover:bg-gray-100 rounded transition-colors"
|
|
534
534
|
}, [
|
|
535
535
|
ge(se(pr), {
|
|
@@ -577,7 +577,7 @@ const qr = /* @__PURE__ */ We(Br, [["render", Vr]]), Wr = { class: "gap-2 inline
|
|
|
577
577
|
])) : K("", !0)
|
|
578
578
|
]));
|
|
579
579
|
}
|
|
580
|
-
}), vs = /* @__PURE__ */ We(gs, [["__scopeId", "data-v-
|
|
580
|
+
}), vs = /* @__PURE__ */ We(gs, [["__scopeId", "data-v-0a8ac3a8"]]), ms = { class: "bg-white rounded-lg shadow-xl max-w-md w-full overflow-hidden" }, ys = { class: "sticky top-0 bg-white border-b border-gray-200 px-6 py-4 flex items-center justify-between" }, hs = { class: "text-lg font-semibold text-gray-900" }, bs = {
|
|
581
581
|
key: 0,
|
|
582
582
|
class: "p-6 flex items-center justify-center"
|
|
583
583
|
}, xs = {
|
|
@@ -593,11 +593,11 @@ const qr = /* @__PURE__ */ We(Br, [["render", Vr]]), Wr = { class: "gap-2 inline
|
|
|
593
593
|
},
|
|
594
594
|
emits: ["close", "created"],
|
|
595
595
|
setup(n, { emit: t }) {
|
|
596
|
-
const l = Ze(() => import("@opengis/form")), r = n, k = t, v =
|
|
596
|
+
const l = Ze(() => import("@opengis/form")), r = n, k = t, v = D(() => !!r.editData), h = F(null), d = F({
|
|
597
597
|
name: "",
|
|
598
598
|
description: "",
|
|
599
599
|
alias: []
|
|
600
|
-
}), E =
|
|
600
|
+
}), E = D(() => [
|
|
601
601
|
{
|
|
602
602
|
name: "name",
|
|
603
603
|
type: "text",
|
|
@@ -663,16 +663,16 @@ const qr = /* @__PURE__ */ We(Br, [["render", Vr]]), Wr = { class: "gap-2 inline
|
|
|
663
663
|
description: d.value.description.trim() || null,
|
|
664
664
|
alias: d.value.alias.length > 0 ? d.value.alias : null,
|
|
665
665
|
data: $.value.length > 0 ? $.value : []
|
|
666
|
-
}, P = v.value ? `/api/user-cls/${encodeURIComponent(d.value.name.trim())}` : "/api/user-cls",
|
|
666
|
+
}, P = v.value ? `/api/user-cls/${encodeURIComponent(d.value.name.trim())}` : "/api/user-cls", j = await fetch(P, {
|
|
667
667
|
method: v.value ? "PUT" : "POST",
|
|
668
668
|
headers: {
|
|
669
669
|
"Content-Type": "application/json"
|
|
670
670
|
},
|
|
671
671
|
body: JSON.stringify(L)
|
|
672
672
|
});
|
|
673
|
-
if (!
|
|
674
|
-
const M = await
|
|
675
|
-
throw new Error(M.message || `HTTP error: ${
|
|
673
|
+
if (!j.ok) {
|
|
674
|
+
const M = await j.json().catch(() => ({}));
|
|
675
|
+
throw new Error(M.message || `HTTP error: ${j.status}`);
|
|
676
676
|
}
|
|
677
677
|
k("created"), k("close");
|
|
678
678
|
} catch (L) {
|
|
@@ -688,8 +688,8 @@ const qr = /* @__PURE__ */ We(Br, [["render", Vr]]), Wr = { class: "gap-2 inline
|
|
|
688
688
|
}, _ = () => {
|
|
689
689
|
const c = document.createElement("input");
|
|
690
690
|
c.type = "file", c.accept = ".json", c.onchange = (o) => {
|
|
691
|
-
var
|
|
692
|
-
const w = (
|
|
691
|
+
var j;
|
|
692
|
+
const w = (j = o.target.files) == null ? void 0 : j[0];
|
|
693
693
|
if (!w) return;
|
|
694
694
|
const L = w.name.replace(/\.json$/i, "").trim(), P = new FileReader();
|
|
695
695
|
P.onload = async (M) => {
|
|
@@ -711,8 +711,8 @@ const qr = /* @__PURE__ */ We(Br, [["render", Vr]]), Wr = { class: "gap-2 inline
|
|
|
711
711
|
})
|
|
712
712
|
});
|
|
713
713
|
if (!S.ok) {
|
|
714
|
-
const
|
|
715
|
-
throw new Error(
|
|
714
|
+
const I = await S.json().catch(() => ({}));
|
|
715
|
+
throw new Error(I.message || `HTTP error: ${S.status}`);
|
|
716
716
|
}
|
|
717
717
|
et({
|
|
718
718
|
title: "Імпорт успішний",
|
|
@@ -945,7 +945,7 @@ const qr = /* @__PURE__ */ We(Br, [["render", Vr]]), Wr = { class: "gap-2 inline
|
|
|
945
945
|
width: "w-1/12",
|
|
946
946
|
align: "text-left"
|
|
947
947
|
}
|
|
948
|
-
], d = F([]), E = F(!0), $ = F(null), T =
|
|
948
|
+
], d = F([]), E = F(!0), $ = F(null), T = D(() => {
|
|
949
949
|
var _;
|
|
950
950
|
if (!((_ = r.search) != null && _.trim()))
|
|
951
951
|
return d.value;
|
|
@@ -1262,7 +1262,7 @@ const qr = /* @__PURE__ */ We(Br, [["render", Vr]]), Wr = { class: "gap-2 inline
|
|
|
1262
1262
|
}, xl = ["disabled"], wl = ["disabled"], _l = { class: "flex items-center gap-3" }, kl = { class: "bg-white rounded-lg shadow-sm border border-gray-200 p-4 mb-4 grid grid-cols-2 justify-between" }, $l = { class: "relative max-w-md grid" }, Cl = { class: "vs-form-text relative w-full border-transparent text-sm focus:bg-white focus:border-blue-500 focus:ring-blue-500 rounded-sm" }, Ll = { class: "absolute bottom-2/4 translate-y-2/4 cursor-pointer left-3" }, Sl = /* @__PURE__ */ me({
|
|
1263
1263
|
__name: "DictionaryDetails",
|
|
1264
1264
|
setup(n) {
|
|
1265
|
-
const t = Bt(), l = Tt(), r =
|
|
1265
|
+
const t = Bt(), l = Tt(), r = D(() => l.params.name), k = F(!1), v = F(null), h = F(null), d = F(""), E = F(""), $ = F(""), T = F(!1), p = F(!1), y = F(null), a = async () => {
|
|
1266
1266
|
var M;
|
|
1267
1267
|
try {
|
|
1268
1268
|
const x = await fetch(
|
|
@@ -1290,7 +1290,7 @@ const qr = /* @__PURE__ */ We(Br, [["render", Vr]]), Wr = { class: "gap-2 inline
|
|
|
1290
1290
|
name: r.value,
|
|
1291
1291
|
description: $.value.trim() || null,
|
|
1292
1292
|
data: C
|
|
1293
|
-
},
|
|
1293
|
+
}, I = await fetch(
|
|
1294
1294
|
`/api/user-cls/${encodeURIComponent(r.value)}`,
|
|
1295
1295
|
{
|
|
1296
1296
|
method: "PUT",
|
|
@@ -1300,8 +1300,8 @@ const qr = /* @__PURE__ */ We(Br, [["render", Vr]]), Wr = { class: "gap-2 inline
|
|
|
1300
1300
|
body: JSON.stringify(S)
|
|
1301
1301
|
}
|
|
1302
1302
|
);
|
|
1303
|
-
if (!
|
|
1304
|
-
throw new Error(`HTTP error: ${
|
|
1303
|
+
if (!I.ok)
|
|
1304
|
+
throw new Error(`HTTP error: ${I.status}`);
|
|
1305
1305
|
E.value = $.value, T.value = !1;
|
|
1306
1306
|
} catch (M) {
|
|
1307
1307
|
console.error("Error saving description:", M);
|
|
@@ -1323,7 +1323,7 @@ const qr = /* @__PURE__ */ We(Br, [["render", Vr]]), Wr = { class: "gap-2 inline
|
|
|
1323
1323
|
}, P = () => {
|
|
1324
1324
|
var M;
|
|
1325
1325
|
(M = h.value) == null || M.refetch();
|
|
1326
|
-
},
|
|
1326
|
+
}, j = async () => {
|
|
1327
1327
|
try {
|
|
1328
1328
|
const M = await fetch(
|
|
1329
1329
|
`/api/suggest/${encodeURIComponent(r.value)}`
|
|
@@ -1335,8 +1335,8 @@ const qr = /* @__PURE__ */ We(Br, [["render", Vr]]), Wr = { class: "gap-2 inline
|
|
|
1335
1335
|
{
|
|
1336
1336
|
type: "application/json"
|
|
1337
1337
|
}
|
|
1338
|
-
),
|
|
1339
|
-
V.href =
|
|
1338
|
+
), I = URL.createObjectURL(S), V = document.createElement("a");
|
|
1339
|
+
V.href = I, V.download = `${r.value}.json`, document.body.appendChild(V), V.click(), document.body.removeChild(V), URL.revokeObjectURL(I), et({
|
|
1340
1340
|
title: "Експорт завершено",
|
|
1341
1341
|
type: "success",
|
|
1342
1342
|
message: "Файл успішно експортовано"
|
|
@@ -1456,7 +1456,7 @@ const qr = /* @__PURE__ */ We(Br, [["render", Vr]]), Wr = { class: "gap-2 inline
|
|
|
1456
1456
|
])
|
|
1457
1457
|
]),
|
|
1458
1458
|
e("button", {
|
|
1459
|
-
onClick:
|
|
1459
|
+
onClick: j,
|
|
1460
1460
|
class: "justify-self-end border p-2 rounded-lg w-fit text-sm bg-stone-100/50 hover:bg-white hover:shadow-sm transition-colors"
|
|
1461
1461
|
}, " Експорт ")
|
|
1462
1462
|
]),
|
|
@@ -1529,7 +1529,7 @@ const qr = /* @__PURE__ */ We(Br, [["render", Vr]]), Wr = { class: "gap-2 inline
|
|
|
1529
1529
|
},
|
|
1530
1530
|
emits: ["update:modelValue"],
|
|
1531
1531
|
setup(n, { expose: t, emit: l }) {
|
|
1532
|
-
const r = n, k = l, v =
|
|
1532
|
+
const r = n, k = l, v = D(() => r.actions && r.actions.length ? r.actions : ["view"]), h = F({}), d = F({}), E = D(() => {
|
|
1533
1533
|
var L;
|
|
1534
1534
|
return ((L = r.data) == null ? void 0 : L.routers) || [];
|
|
1535
1535
|
});
|
|
@@ -1537,16 +1537,16 @@ const qr = /* @__PURE__ */ We(Br, [["render", Vr]]), Wr = { class: "gap-2 inline
|
|
|
1537
1537
|
() => r.modelValue,
|
|
1538
1538
|
(L) => {
|
|
1539
1539
|
const P = {};
|
|
1540
|
-
(L || []).forEach((
|
|
1541
|
-
P[
|
|
1540
|
+
(L || []).forEach((j) => {
|
|
1541
|
+
P[j.id] = new Set(j.actions || []);
|
|
1542
1542
|
}), d.value = P;
|
|
1543
1543
|
},
|
|
1544
1544
|
{ immediate: !0 }
|
|
1545
1545
|
);
|
|
1546
1546
|
function $() {
|
|
1547
|
-
const L = Object.entries(d.value).map(([P,
|
|
1547
|
+
const L = Object.entries(d.value).map(([P, j]) => ({
|
|
1548
1548
|
id: P,
|
|
1549
|
-
actions: Array.from(
|
|
1549
|
+
actions: Array.from(j)
|
|
1550
1550
|
}));
|
|
1551
1551
|
k("update:modelValue", L);
|
|
1552
1552
|
}
|
|
@@ -1566,8 +1566,8 @@ const qr = /* @__PURE__ */ We(Br, [["render", Vr]]), Wr = { class: "gap-2 inline
|
|
|
1566
1566
|
}
|
|
1567
1567
|
function a(L, P) {
|
|
1568
1568
|
var M;
|
|
1569
|
-
const
|
|
1570
|
-
return ((M = d.value[
|
|
1569
|
+
const j = T(L);
|
|
1570
|
+
return ((M = d.value[j]) == null ? void 0 : M.has(P)) || !1;
|
|
1571
1571
|
}
|
|
1572
1572
|
function u(L) {
|
|
1573
1573
|
const P = p(L);
|
|
@@ -1578,27 +1578,27 @@ const qr = /* @__PURE__ */ We(Br, [["render", Vr]]), Wr = { class: "gap-2 inline
|
|
|
1578
1578
|
h.value[P] = !u(L);
|
|
1579
1579
|
}
|
|
1580
1580
|
function c(L, P) {
|
|
1581
|
-
var
|
|
1582
|
-
return (
|
|
1581
|
+
var j;
|
|
1582
|
+
return (j = L.menu) != null && j.length ? L.menu.every((M) => a(M, P)) : a(L, P);
|
|
1583
1583
|
}
|
|
1584
|
-
function o(L, P,
|
|
1584
|
+
function o(L, P, j) {
|
|
1585
1585
|
var M;
|
|
1586
1586
|
if ((M = L.menu) != null && M.length) {
|
|
1587
1587
|
const x = { ...d.value };
|
|
1588
1588
|
L.menu.forEach((C) => {
|
|
1589
|
-
const S = T(C),
|
|
1590
|
-
|
|
1589
|
+
const S = T(C), I = new Set(x[S] || []);
|
|
1590
|
+
j ? I.add(P) : I.delete(P), x[S] = I;
|
|
1591
1591
|
}), d.value = x, $();
|
|
1592
1592
|
}
|
|
1593
1593
|
}
|
|
1594
|
-
function w(L, P,
|
|
1594
|
+
function w(L, P, j) {
|
|
1595
1595
|
const M = T(L), x = new Set(d.value[M] || []);
|
|
1596
|
-
|
|
1596
|
+
j ? x.add(P) : x.delete(P), d.value = { ...d.value, [M]: x }, $();
|
|
1597
1597
|
}
|
|
1598
1598
|
return t({
|
|
1599
1599
|
getSelected: () => r.modelValue
|
|
1600
1600
|
}), (L, P) => {
|
|
1601
|
-
var
|
|
1601
|
+
var j;
|
|
1602
1602
|
return s(), m("div", Al, [
|
|
1603
1603
|
e("table", Tl, [
|
|
1604
1604
|
e("thead", Pl, [
|
|
@@ -1610,7 +1610,7 @@ const qr = /* @__PURE__ */ We(Br, [["render", Vr]]), Wr = { class: "gap-2 inline
|
|
|
1610
1610
|
}, Y(y(M)), 1))), 128))
|
|
1611
1611
|
])
|
|
1612
1612
|
]),
|
|
1613
|
-
(
|
|
1613
|
+
(j = E.value) != null && j.length ? (s(), m("tbody", zl, [
|
|
1614
1614
|
(s(!0), m(te, null, ve(E.value, (M) => (s(), m(te, {
|
|
1615
1615
|
key: T(M)
|
|
1616
1616
|
}, [
|
|
@@ -1691,7 +1691,7 @@ const qr = /* @__PURE__ */ We(Br, [["render", Vr]]), Wr = { class: "gap-2 inline
|
|
|
1691
1691
|
}), Jl = { class: "flex flex-col gap-4 mt-2 mx-2" }, Kl = { class: "flex items-center gap-3" }, Ql = { class: "flex-1 relative" }, zg = /* @__PURE__ */ me({
|
|
1692
1692
|
__name: "VsPermissions",
|
|
1693
1693
|
setup(n) {
|
|
1694
|
-
const t = Tt(), l = F(""), r = F(null), k = F({ categories: [], layers: [] }), v = F([]), h = F(["edit"]), d =
|
|
1694
|
+
const t = Tt(), l = F(""), r = F(null), k = F({ categories: [], layers: [] }), v = F([]), h = F(["edit"]), d = D(() => $(k.value)), E = D(() => {
|
|
1695
1695
|
const y = l.value.toLowerCase().trim();
|
|
1696
1696
|
return y ? d.value.map((a) => {
|
|
1697
1697
|
const u = String(a.ua || "").toLowerCase().includes(y), _ = (a.menu || []).filter((c) => String(c.ua || "").toLowerCase().includes(y));
|
|
@@ -1831,11 +1831,11 @@ function ea(n) {
|
|
|
1831
1831
|
}
|
|
1832
1832
|
a.bounds && t.value.fitBounds(a.bounds, { animate: !1 });
|
|
1833
1833
|
}, T = async () => {
|
|
1834
|
-
var P,
|
|
1834
|
+
var P, j, M, x, C, S, I;
|
|
1835
1835
|
if (typeof window > "u" || t.value) return;
|
|
1836
1836
|
const a = h();
|
|
1837
1837
|
if (!a) throw new Error("Map container not found");
|
|
1838
|
-
const u = se(n.settings) || null, _ = Xt((P = u == null ? void 0 : u.map) == null ? void 0 : P.center) || [30, 50], c = E((
|
|
1838
|
+
const u = se(n.settings) || null, _ = Xt((P = u == null ? void 0 : u.map) == null ? void 0 : P.center) || [30, 50], c = E((j = u == null ? void 0 : u.map) == null ? void 0 : j.zoom, 7), o = E((M = u == null ? void 0 : u.map) == null ? void 0 : M.maxZoom, 20), L = {
|
|
1839
1839
|
...{
|
|
1840
1840
|
attributionControl: !1,
|
|
1841
1841
|
center: _,
|
|
@@ -1856,7 +1856,7 @@ function ea(n) {
|
|
|
1856
1856
|
}, !0);
|
|
1857
1857
|
})), (C = n.controls) != null && C.scale && t.value.addControl(new maplibregl.ScaleControl(
|
|
1858
1858
|
typeof n.controls.scale == "object" ? n.controls.scale : {}
|
|
1859
|
-
), "bottom-left"), (S = n.controls) != null && S.fullscreen && t.value.addControl(new maplibregl.FullscreenControl(), "top-right"), (
|
|
1859
|
+
), "bottom-left"), (S = n.controls) != null && S.fullscreen && t.value.addControl(new maplibregl.FullscreenControl(), "top-right"), (I = n.controls) != null && I.geolocate && t.value.addControl(new maplibregl.GeolocateControl(
|
|
1860
1860
|
typeof n.controls.geolocate == "object" ? n.controls.geolocate : {}
|
|
1861
1861
|
), "top-right"), t.value.once("load", () => {
|
|
1862
1862
|
var V;
|
|
@@ -1999,7 +1999,7 @@ const ta = /* @__PURE__ */ me({
|
|
|
1999
1999
|
mn($.$slots, "default", {}, void 0, !0)
|
|
2000
2000
|
], 512));
|
|
2001
2001
|
}
|
|
2002
|
-
}), na = /* @__PURE__ */ We(ta, [["__scopeId", "data-v-
|
|
2002
|
+
}), na = /* @__PURE__ */ We(ta, [["__scopeId", "data-v-8fc70f99"]]), oa = ["Noto Sans Regular"], ra = 12, sa = "#0f172a", la = "#fff", aa = 14;
|
|
2003
2003
|
function Qe(n, t) {
|
|
2004
2004
|
if (!n) return;
|
|
2005
2005
|
for (const r of t)
|
|
@@ -2051,7 +2051,7 @@ function da(n, t = {}) {
|
|
|
2051
2051
|
"textMinZoom",
|
|
2052
2052
|
"textZoom",
|
|
2053
2053
|
"text-zoom"
|
|
2054
|
-
]), T = Qe(n, ["text-maxzoom", "textMaxZoom", "maxzoom"]), p = Qe(n, ["text-color", "textColor"]) || sa, y = Qe(n, ["text-halo-color", "textHaloColor"]) || la, a = Qe(n, ["text-halo-width", "textHaloWidth"]), u = Qe(n, ["text-halo-blur", "textHaloBlur"]), _ = Qe(n, ["text-offset", "textOffset"]), c = Qe(n, ["text-anchor", "textAnchor"]), o = Qe(n, ["text-justify", "textJustify"]), w = Qe(n, ["text-letter-spacing", "textLetterSpacing"]), L = Qe(n, ["text-transform", "textTransform"]), P = Qe(n, ["symbol-placement", "symbolPlacement"]),
|
|
2054
|
+
]), T = Qe(n, ["text-maxzoom", "textMaxZoom", "maxzoom"]), p = Qe(n, ["text-color", "textColor"]) || sa, y = Qe(n, ["text-halo-color", "textHaloColor"]) || la, a = Qe(n, ["text-halo-width", "textHaloWidth"]), u = Qe(n, ["text-halo-blur", "textHaloBlur"]), _ = Qe(n, ["text-offset", "textOffset"]), c = Qe(n, ["text-anchor", "textAnchor"]), o = Qe(n, ["text-justify", "textJustify"]), w = Qe(n, ["text-letter-spacing", "textLetterSpacing"]), L = Qe(n, ["text-transform", "textTransform"]), P = Qe(n, ["symbol-placement", "symbolPlacement"]), j = Qe(n, ["symbol-spacing", "symbolSpacing"]), M = Qe(n, [
|
|
2055
2055
|
"text-rotation-alignment",
|
|
2056
2056
|
"textRotationAlignment"
|
|
2057
2057
|
]), x = Qe(n, ["text-pitch-alignment", "textPitchAlignment"]), C = Qe(n, ["text-opacity", "textOpacity"]), S = {
|
|
@@ -2060,16 +2060,16 @@ function da(n, t = {}) {
|
|
|
2060
2060
|
"text-size": d,
|
|
2061
2061
|
"text-allow-overlap": E ?? !1
|
|
2062
2062
|
};
|
|
2063
|
-
_ && (S["text-offset"] = _), v !== "line" && (S["text-anchor"] = c ?? "center"), o && (S["text-justify"] = o), w !== void 0 && (S["text-letter-spacing"] = w), L && (S["text-transform"] = L),
|
|
2064
|
-
const
|
|
2063
|
+
_ && (S["text-offset"] = _), v !== "line" && (S["text-anchor"] = c ?? "center"), o && (S["text-justify"] = o), w !== void 0 && (S["text-letter-spacing"] = w), L && (S["text-transform"] = L), j !== void 0 && (S["symbol-spacing"] = j), v === "line" ? (S["symbol-placement"] = P || "line", S["text-rotation-alignment"] = M || "map", S["text-pitch-alignment"] = x || "map") : (M && (S["text-rotation-alignment"] = M), x && (S["text-pitch-alignment"] = x), P && (S["symbol-placement"] = P)), c && v === "line" && (S["text-anchor"] = c);
|
|
2064
|
+
const I = {
|
|
2065
2065
|
"text-color": p,
|
|
2066
2066
|
"text-opacity": C ?? 1
|
|
2067
2067
|
};
|
|
2068
|
-
|
|
2068
|
+
I["text-halo-color"] = y, a !== void 0 && (I["text-halo-width"] = a), u !== void 0 && (I["text-halo-blur"] = u);
|
|
2069
2069
|
const V = {
|
|
2070
2070
|
type: "symbol",
|
|
2071
2071
|
layout: S,
|
|
2072
|
-
paint:
|
|
2072
|
+
paint: I
|
|
2073
2073
|
}, oe = Bn($, aa);
|
|
2074
2074
|
if (V.minzoom = oe, T !== void 0) {
|
|
2075
2075
|
const J = Bn(T, void 0);
|
|
@@ -2455,11 +2455,11 @@ function Oe(n, t, l) {
|
|
|
2455
2455
|
on: p
|
|
2456
2456
|
};
|
|
2457
2457
|
Un.set(v, S);
|
|
2458
|
-
const
|
|
2458
|
+
const I = () => {
|
|
2459
2459
|
Un.get(v) === S && Un.delete(v);
|
|
2460
2460
|
}, V = S.remove;
|
|
2461
2461
|
return S.remove = () => {
|
|
2462
|
-
|
|
2462
|
+
I(), V();
|
|
2463
2463
|
}, Jt() && Ue(S.remove), Vn[n] = S, S;
|
|
2464
2464
|
}
|
|
2465
2465
|
const xa = { class: "flex flex-row gap-x-3 z-10 relative widget" }, wa = ["onClick"], _a = ["src", "alt"], qn = /* @__PURE__ */ me({
|
|
@@ -2470,7 +2470,7 @@ const xa = { class: "flex flex-row gap-x-3 z-10 relative widget" }, wa = ["onCli
|
|
|
2470
2470
|
title: {}
|
|
2471
2471
|
},
|
|
2472
2472
|
setup(n) {
|
|
2473
|
-
var L, P,
|
|
2473
|
+
var L, P, j, M, x;
|
|
2474
2474
|
const t = n, l = {
|
|
2475
2475
|
gki: {
|
|
2476
2476
|
url: "https://data.gki.com.ua/api-user/rtile/voyager/ua/{z}/{x}/{y}.png",
|
|
@@ -2489,30 +2489,30 @@ const xa = { class: "flex flex-row gap-x-3 z-10 relative widget" }, wa = ["onCli
|
|
|
2489
2489
|
return C.replace(/{z}/gi, String(r.z)).replace(/{x}/gi, String(r.x)).replace(/{y}/gi, String(r.y));
|
|
2490
2490
|
}
|
|
2491
2491
|
function v(C, S) {
|
|
2492
|
-
let
|
|
2493
|
-
for (; S[
|
|
2494
|
-
|
|
2495
|
-
return
|
|
2492
|
+
let I = C || `layers-${Object.keys(S).length}`, V = 1;
|
|
2493
|
+
for (; S[I]; )
|
|
2494
|
+
I = `${C}-${V}`, V += 1;
|
|
2495
|
+
return I;
|
|
2496
2496
|
}
|
|
2497
2497
|
const h = Jt(), d = (L = h == null ? void 0 : h.appContext.config.globalProperties) == null ? void 0 : L.$settings, E = d == null ? void 0 : d.map, $ = Tt(), T = Bt();
|
|
2498
2498
|
function p() {
|
|
2499
2499
|
const C = $ == null ? void 0 : $.query;
|
|
2500
2500
|
return !C || typeof C != "object" ? null : typeof C.basemap == "string" ? C.basemap : null;
|
|
2501
2501
|
}
|
|
2502
|
-
const y =
|
|
2502
|
+
const y = D(() => p()), a = D(() => {
|
|
2503
2503
|
let C = [];
|
|
2504
2504
|
if (Array.isArray(t.layers) && t.layers.length > 0 ? C = t.layers : t.layers && typeof t.layers == "object" && Object.keys(t.layers).length > 0 ? C = Object.values(t.layers) : Array.isArray(E == null ? void 0 : E.basemaps) && (C = E.basemaps), !C.length) return {};
|
|
2505
2505
|
const S = {};
|
|
2506
|
-
return C.forEach((
|
|
2507
|
-
const oe =
|
|
2506
|
+
return C.forEach((I, V) => {
|
|
2507
|
+
const oe = I.name ?? I.title ?? `basemap-${V}`, ue = (I.id ?? oe ?? `basemap-${V}`).toString().toLowerCase().replace(/\s+/g, "-").replace(/[^a-z0-9-]/g, ""), J = v(ue || `basemap-${V}`, S), ee = I.preview || (I.url ? k(I.url) : void 0);
|
|
2508
2508
|
S[J] = {
|
|
2509
|
-
url:
|
|
2509
|
+
url: I.url,
|
|
2510
2510
|
preview: ee,
|
|
2511
2511
|
title: oe,
|
|
2512
|
-
overlayUrl:
|
|
2512
|
+
overlayUrl: I.overlayUrl
|
|
2513
2513
|
};
|
|
2514
2514
|
}), S;
|
|
2515
|
-
}), u =
|
|
2515
|
+
}), u = D(() => {
|
|
2516
2516
|
const C = a.value;
|
|
2517
2517
|
return Object.keys(C).length ? C : l;
|
|
2518
2518
|
}), _ = F(
|
|
@@ -2520,7 +2520,7 @@ const xa = { class: "flex flex-row gap-x-3 z-10 relative widget" }, wa = ["onCli
|
|
|
2520
2520
|
), c = Oe("base", {
|
|
2521
2521
|
source: {
|
|
2522
2522
|
type: "raster",
|
|
2523
|
-
tiles: (P = u.value[_.value]) != null && P.url ? [(
|
|
2523
|
+
tiles: (P = u.value[_.value]) != null && P.url ? [(j = u.value[_.value]) == null ? void 0 : j.url] : []
|
|
2524
2524
|
},
|
|
2525
2525
|
beforeId: 0
|
|
2526
2526
|
}), o = Oe("base-overlay", {
|
|
@@ -2542,8 +2542,8 @@ const xa = { class: "flex flex-row gap-x-3 z-10 relative widget" }, wa = ["onCli
|
|
|
2542
2542
|
(C) => {
|
|
2543
2543
|
const S = y.value && C[y.value] ? y.value : _.value;
|
|
2544
2544
|
C[S] ? _.value = S : _.value = Object.keys(C)[0] ?? S;
|
|
2545
|
-
const
|
|
2546
|
-
|
|
2545
|
+
const I = C[_.value];
|
|
2546
|
+
I != null && I.url ? (c.setVisible(!0), c.setTiles([I.url])) : c.setVisible(!1), I != null && I.overlayUrl ? (o.setVisible(!0), o.setTiles([I.overlayUrl])) : o.setVisible(!1);
|
|
2547
2547
|
},
|
|
2548
2548
|
{ immediate: !0 }
|
|
2549
2549
|
), ce(
|
|
@@ -2555,18 +2555,18 @@ const xa = { class: "flex flex-row gap-x-3 z-10 relative widget" }, wa = ["onCli
|
|
|
2555
2555
|
S != null && S.url ? (c.setVisible(!0), c.setTiles([S.url])) : c.setVisible(!1), S != null && S.overlayUrl ? (o.setVisible(!0), o.setTiles([S.overlayUrl])) : o.setVisible(!1);
|
|
2556
2556
|
}
|
|
2557
2557
|
), (C, S) => (s(), m("div", xa, [
|
|
2558
|
-
(s(!0), m(te, null, ve(u.value, (
|
|
2558
|
+
(s(!0), m(te, null, ve(u.value, (I, V) => (s(), m("div", {
|
|
2559
2559
|
key: V,
|
|
2560
2560
|
onClick: (oe) => w(V)
|
|
2561
2561
|
}, [
|
|
2562
|
-
V !== "none" &&
|
|
2562
|
+
V !== "none" && I.url ? (s(), m("div", {
|
|
2563
2563
|
key: 0,
|
|
2564
2564
|
class: Ee(["lg:w-14 lg:h-14 w-10 h-10 flex items-center justify-center bg-gray-200 rounded-xl shadow-2xs cursor-pointer transition-all border-4", _.value === V ? "border-blue-500" : "border-gray-200"])
|
|
2565
2565
|
}, [
|
|
2566
|
-
|
|
2566
|
+
I.preview ? (s(), m("img", {
|
|
2567
2567
|
key: 0,
|
|
2568
|
-
src:
|
|
2569
|
-
alt:
|
|
2568
|
+
src: I.preview,
|
|
2569
|
+
alt: I.title,
|
|
2570
2570
|
class: "object-cover rounded-lg lg:w-12 lg:h-12 w-8 h-8"
|
|
2571
2571
|
}, null, 8, _a)) : K("", !0)
|
|
2572
2572
|
], 2)) : (s(), m("div", {
|
|
@@ -2586,7 +2586,7 @@ const xa = { class: "flex flex-row gap-x-3 z-10 relative widget" }, wa = ["onCli
|
|
|
2586
2586
|
setup(n, { expose: t }) {
|
|
2587
2587
|
const l = n, r = vt({ open: !1, top: 0, left: 0, transform: "translateX(-50%)" }), k = F(null), v = F(null);
|
|
2588
2588
|
let h = null;
|
|
2589
|
-
const d =
|
|
2589
|
+
const d = D(() => r.open ? {
|
|
2590
2590
|
position: "absolute",
|
|
2591
2591
|
width: "auto",
|
|
2592
2592
|
maxWidth: `${Math.min(300, window.innerWidth - 24)}px`,
|
|
@@ -2613,9 +2613,9 @@ const xa = { class: "flex flex-row gap-x-3 z-10 relative widget" }, wa = ["onCli
|
|
|
2613
2613
|
}
|
|
2614
2614
|
function $() {
|
|
2615
2615
|
if (!r.open || !k.value || !v.value) return;
|
|
2616
|
-
const _ = k.value.getBoundingClientRect(), c = 12, o = window.scrollX + c, w = window.scrollX + window.innerWidth - c, L = window.scrollY + c, P = window.scrollY + window.innerHeight - c,
|
|
2617
|
-
let x = _.left + window.scrollX + (_.width -
|
|
2618
|
-
x < o && (x = o), x +
|
|
2616
|
+
const _ = k.value.getBoundingClientRect(), c = 12, o = window.scrollX + c, w = window.scrollX + window.innerWidth - c, L = window.scrollY + c, P = window.scrollY + window.innerHeight - c, j = v.value.offsetWidth || Math.min(300, window.innerWidth - 24), M = v.value.offsetHeight || 0;
|
|
2617
|
+
let x = _.left + window.scrollX + (_.width - j) / 2;
|
|
2618
|
+
x < o && (x = o), x + j > w && (x = Math.max(o, w - j)), r.left = x;
|
|
2619
2619
|
let C = _.bottom + window.scrollY + c;
|
|
2620
2620
|
C + M > P && (C = _.top + window.scrollY - M - c, C < L && (C = Math.max(L, P - M))), C < L && (C = L), C + M > P && (C = Math.max(L, P - M)), r.top = C, r.transform = "none";
|
|
2621
2621
|
}
|
|
@@ -2659,7 +2659,7 @@ const xa = { class: "flex flex-row gap-x-3 z-10 relative widget" }, wa = ["onCli
|
|
|
2659
2659
|
href: "#",
|
|
2660
2660
|
onClick: qe(E, ["prevent", "stop"])
|
|
2661
2661
|
}, [...c[1] || (c[1] = [
|
|
2662
|
-
zo('<div class="mapLayer-info__icon" data-v-
|
|
2662
|
+
zo('<div class="mapLayer-info__icon" data-v-5688d192><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" data-v-5688d192><circle cx="12" cy="12" r="10" data-v-5688d192></circle><line x1="12" y1="16" x2="12" y2="12" data-v-5688d192></line><line x1="12" y1="8" x2="12.01" y2="8" data-v-5688d192></line></svg></div>', 1)
|
|
2663
2663
|
])]),
|
|
2664
2664
|
(s(), pe(St, { to: "body" }, [
|
|
2665
2665
|
r.open ? (s(), m("div", {
|
|
@@ -2686,7 +2686,7 @@ const xa = { class: "flex flex-row gap-x-3 z-10 relative widget" }, wa = ["onCli
|
|
|
2686
2686
|
]))
|
|
2687
2687
|
], 512));
|
|
2688
2688
|
}
|
|
2689
|
-
}), to = /* @__PURE__ */ We(Ca, [["__scopeId", "data-v-
|
|
2689
|
+
}), to = /* @__PURE__ */ We(Ca, [["__scopeId", "data-v-5688d192"]]), La = {
|
|
2690
2690
|
key: 0,
|
|
2691
2691
|
class: "map-info__title"
|
|
2692
2692
|
}, Sa = { class: "map-info__actions" }, Ea = {
|
|
@@ -2704,38 +2704,38 @@ const xa = { class: "flex flex-row gap-x-3 z-10 relative widget" }, wa = ["onCli
|
|
|
2704
2704
|
setup(n) {
|
|
2705
2705
|
const t = n, l = F(null), r = F(!1), k = F(null), v = F(null), h = F({ top: 0, left: 0 });
|
|
2706
2706
|
Bt();
|
|
2707
|
-
const d = F(!0), E = F(!1), $ =
|
|
2707
|
+
const d = F(!0), E = F(!1), $ = D(() => Array.isArray(t.links) ? t.links.filter((P) => (P == null ? void 0 : P.name) && (P == null ? void 0 : P.slug)) : []), T = D(() => ({
|
|
2708
2708
|
top: `${h.value.top}px`,
|
|
2709
2709
|
left: `${h.value.left}px`
|
|
2710
|
-
})), p =
|
|
2710
|
+
})), p = D(() => {
|
|
2711
2711
|
const P = [];
|
|
2712
2712
|
return t.mapName && P.push({ label: "Назва карти", value: t.mapName }), t.mapDescription && P.push({ label: "Опис", value: t.mapDescription, breakLine: !0 }), P;
|
|
2713
2713
|
});
|
|
2714
2714
|
function y(P) {
|
|
2715
2715
|
return P == null ? !1 : P.replace(/<[^>]*>/g, "").trim().length > 0;
|
|
2716
2716
|
}
|
|
2717
|
-
const a =
|
|
2717
|
+
const a = D(() => y(t.content)), u = D(() => a.value);
|
|
2718
2718
|
function _(P) {
|
|
2719
2719
|
P.stopPropagation(), r.value = !r.value;
|
|
2720
2720
|
}
|
|
2721
2721
|
function c() {
|
|
2722
2722
|
const P = k.value;
|
|
2723
2723
|
if (!P || !v.value) return;
|
|
2724
|
-
const
|
|
2725
|
-
let J =
|
|
2726
|
-
ee + oe > S && (ee =
|
|
2724
|
+
const j = P.getBoundingClientRect(), M = 12, x = 8, C = window.scrollX + M, S = window.scrollX + window.innerWidth - M, I = window.scrollY + M, V = window.scrollY + window.innerHeight - M, oe = v.value.offsetWidth || 160, ue = v.value.offsetHeight || 0;
|
|
2725
|
+
let J = j.bottom + window.scrollY + x, ee = j.left + window.scrollX;
|
|
2726
|
+
ee + oe > S && (ee = j.right + window.scrollX - oe, ee < C && (ee = C)), ee < C && (ee = C), J + ue > V && (J = j.top + window.scrollY - ue - x, J < I && (J = Math.max(I, V - ue))), J < I && (J = I), J + ue > V && (J = Math.max(I, V - ue)), h.value = {
|
|
2727
2727
|
top: J,
|
|
2728
2728
|
left: ee
|
|
2729
2729
|
};
|
|
2730
2730
|
}
|
|
2731
2731
|
function o(P) {
|
|
2732
2732
|
if (!r.value) return;
|
|
2733
|
-
const
|
|
2734
|
-
if (!
|
|
2733
|
+
const j = l.value;
|
|
2734
|
+
if (!j) {
|
|
2735
2735
|
r.value = !1;
|
|
2736
2736
|
return;
|
|
2737
2737
|
}
|
|
2738
|
-
|
|
2738
|
+
j.contains(P.target) || (r.value = !1);
|
|
2739
2739
|
}
|
|
2740
2740
|
ce(r, (P) => {
|
|
2741
2741
|
P ? Xe(() => {
|
|
@@ -2754,7 +2754,7 @@ const xa = { class: "flex flex-row gap-x-3 z-10 relative widget" }, wa = ["onCli
|
|
|
2754
2754
|
document.addEventListener("click", o, !0), L(), u.value ? E.value && (d.value = !1) : d.value = !1, window.addEventListener("resize", L);
|
|
2755
2755
|
}), Ue(() => {
|
|
2756
2756
|
document.removeEventListener("click", o, !0), window.removeEventListener("scroll", c, !0), window.removeEventListener("resize", c), window.removeEventListener("resize", L);
|
|
2757
|
-
}), (P,
|
|
2757
|
+
}), (P, j) => (s(), m("div", {
|
|
2758
2758
|
class: "map-info legend-widget flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative widget",
|
|
2759
2759
|
ref_key: "container",
|
|
2760
2760
|
ref: l
|
|
@@ -2774,7 +2774,7 @@ const xa = { class: "flex flex-row gap-x-3 z-10 relative widget" }, wa = ["onCli
|
|
|
2774
2774
|
class: "map-info__menu-button",
|
|
2775
2775
|
onClick: _,
|
|
2776
2776
|
"aria-label": "Показати посилання"
|
|
2777
|
-
}, [...
|
|
2777
|
+
}, [...j[1] || (j[1] = [
|
|
2778
2778
|
e("svg", {
|
|
2779
2779
|
width: "16",
|
|
2780
2780
|
height: "16",
|
|
@@ -2809,7 +2809,7 @@ const xa = { class: "flex flex-row gap-x-3 z-10 relative widget" }, wa = ["onCli
|
|
|
2809
2809
|
ref: v,
|
|
2810
2810
|
class: "vsTailwind vs-popover__content right map-info__popover",
|
|
2811
2811
|
style: ot(T.value),
|
|
2812
|
-
onClick:
|
|
2812
|
+
onClick: j[0] || (j[0] = qe(() => {
|
|
2813
2813
|
}, ["stop"]))
|
|
2814
2814
|
}, [
|
|
2815
2815
|
(s(!0), m(te, null, ve($.value, (M) => (s(), m("a", {
|
|
@@ -2838,7 +2838,7 @@ const xa = { class: "flex flex-row gap-x-3 z-10 relative widget" }, wa = ["onCli
|
|
|
2838
2838
|
fill: "none",
|
|
2839
2839
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2840
2840
|
class: Ee({ "map-info__toggle-icon--rotated": d.value })
|
|
2841
|
-
}, [...
|
|
2841
|
+
}, [...j[2] || (j[2] = [
|
|
2842
2842
|
e("path", {
|
|
2843
2843
|
d: "M6 9L12 15L18 9",
|
|
2844
2844
|
stroke: "#000000",
|
|
@@ -2857,7 +2857,7 @@ const xa = { class: "flex flex-row gap-x-3 z-10 relative widget" }, wa = ["onCli
|
|
|
2857
2857
|
}, null, 10, Aa)) : K("", !0)
|
|
2858
2858
|
], 512));
|
|
2859
2859
|
}
|
|
2860
|
-
}), ho = /* @__PURE__ */ We(Ta, [["__scopeId", "data-v-
|
|
2860
|
+
}), ho = /* @__PURE__ */ We(Ta, [["__scopeId", "data-v-4584c70e"]]), ht = F([]);
|
|
2861
2861
|
function Pa(n, t) {
|
|
2862
2862
|
return typeof n != "string" ? "" : n.includes("{{") ? n.replace(/\{\{\s*([a-zA-Z0-9_]+)\s*}}/g, (l, r) => {
|
|
2863
2863
|
const k = String(r || "").trim();
|
|
@@ -2897,7 +2897,7 @@ function No(n) {
|
|
|
2897
2897
|
if (!u) return;
|
|
2898
2898
|
const _ = za(u);
|
|
2899
2899
|
if (!_) return;
|
|
2900
|
-
const c = ht.value.findIndex((
|
|
2900
|
+
const c = ht.value.findIndex((j) => j.id === T);
|
|
2901
2901
|
c !== -1 && (Wn(ht.value[c]), ht.value.splice(c, 1));
|
|
2902
2902
|
let o = null;
|
|
2903
2903
|
const w = h.beforeId ?? Fa(_);
|
|
@@ -2920,9 +2920,9 @@ function No(n) {
|
|
|
2920
2920
|
},
|
|
2921
2921
|
beforeId: w
|
|
2922
2922
|
}, u);
|
|
2923
|
-
} catch (
|
|
2924
|
-
const M = (
|
|
2925
|
-
if (!(typeof M == "string" && M.includes("Map provider"))) throw
|
|
2923
|
+
} catch (j) {
|
|
2924
|
+
const M = (j == null ? void 0 : j.message) ?? "";
|
|
2925
|
+
if (!(typeof M == "string" && M.includes("Map provider"))) throw j;
|
|
2926
2926
|
return;
|
|
2927
2927
|
}
|
|
2928
2928
|
ht.value = [
|
|
@@ -3012,10 +3012,10 @@ const Ia = { class: "map-filter" }, Da = { class: "map-filter__header" }, Na = {
|
|
|
3012
3012
|
disabled: { type: Boolean, default: !1 }
|
|
3013
3013
|
},
|
|
3014
3014
|
setup(n) {
|
|
3015
|
-
const t = Ze(() => import("@opengis/filter")), l = n, r =
|
|
3015
|
+
const t = Ze(() => import("@opengis/filter")), l = n, r = D(() => {
|
|
3016
3016
|
var g;
|
|
3017
3017
|
return ((g = l.layer) == null ? void 0 : g.id) ?? "";
|
|
3018
|
-
}), k =
|
|
3018
|
+
}), k = D(() => `filter-popover-${r.value}`), {
|
|
3019
3019
|
isOpen: v,
|
|
3020
3020
|
close: h,
|
|
3021
3021
|
toggle: d
|
|
@@ -3026,14 +3026,14 @@ const Ia = { class: "map-filter" }, Da = { class: "map-filter__header" }, Na = {
|
|
|
3026
3026
|
text: "Спочатку активуйте шар, щоб застосувати фільтр",
|
|
3027
3027
|
top: 0,
|
|
3028
3028
|
left: 0
|
|
3029
|
-
}), u =
|
|
3029
|
+
}), u = D(() => v.value), _ = D(() => {
|
|
3030
3030
|
var g;
|
|
3031
3031
|
return Array.isArray((g = l.layer) == null ? void 0 : g.filters) ? l.layer.filters : [];
|
|
3032
|
-
}), c =
|
|
3032
|
+
}), c = D(() => _.value.length > 0), o = D(() => {
|
|
3033
3033
|
var g;
|
|
3034
3034
|
return ((g = l.layer) == null ? void 0 : g.name) ?? "";
|
|
3035
|
-
}), w =
|
|
3036
|
-
if (!u.value || !
|
|
3035
|
+
}), w = D(() => _.value), L = F(null), P = D(() => _.value.length), j = D(() => P.value <= 2), M = D(() => j.value ? "body" : typeof window > "u" || L.value ? Hn : "body"), x = D(() => {
|
|
3036
|
+
if (!u.value || !j.value)
|
|
3037
3037
|
return {};
|
|
3038
3038
|
const g = typeof window < "u" ? window.innerWidth : 280, A = Math.max(280, g - 16 * 2);
|
|
3039
3039
|
return {
|
|
@@ -3054,9 +3054,9 @@ const Ia = { class: "map-filter" }, Da = { class: "map-filter__header" }, Na = {
|
|
|
3054
3054
|
let re = g;
|
|
3055
3055
|
return re + f > X && (re = X - f), re < U && (re = U), re;
|
|
3056
3056
|
}
|
|
3057
|
-
function
|
|
3057
|
+
function I() {
|
|
3058
3058
|
var de, we, $e;
|
|
3059
|
-
if (!$.value || !
|
|
3059
|
+
if (!$.value || !j.value) return;
|
|
3060
3060
|
const g = $.value.getBoundingClientRect(), f = window.scrollX + 8, A = window.scrollX + window.innerWidth - 8, U = ((de = T.value) == null ? void 0 : de.offsetWidth) || 280, X = ((we = T.value) == null ? void 0 : we.offsetHeight) || 0;
|
|
3061
3061
|
let re = 0, ne = 0;
|
|
3062
3062
|
if (($e = l.catalogAnchor) != null && $e.value) {
|
|
@@ -3073,22 +3073,22 @@ const Ia = { class: "map-filter" }, Da = { class: "map-filter__header" }, Na = {
|
|
|
3073
3073
|
E.left = ne, E.top = re, E.transform = "none";
|
|
3074
3074
|
}
|
|
3075
3075
|
function V() {
|
|
3076
|
-
|
|
3077
|
-
|
|
3076
|
+
j.value || O(), d(), v.value && j.value && Xe(() => {
|
|
3077
|
+
I(), W(), requestAnimationFrame(() => I());
|
|
3078
3078
|
});
|
|
3079
3079
|
}
|
|
3080
3080
|
function oe() {
|
|
3081
3081
|
l.disabled || V();
|
|
3082
3082
|
}
|
|
3083
3083
|
ce(u, (g) => {
|
|
3084
|
-
g &&
|
|
3085
|
-
|
|
3086
|
-
}) : (R(),
|
|
3084
|
+
g && j.value ? Xe(() => {
|
|
3085
|
+
I(), W(), requestAnimationFrame(() => I());
|
|
3086
|
+
}) : (R(), j.value || O());
|
|
3087
3087
|
}), ce(w, () => {
|
|
3088
|
-
!u.value || !
|
|
3089
|
-
}, { deep: !0 }), ce(
|
|
3088
|
+
!u.value || !j.value || Xe(() => I());
|
|
3089
|
+
}, { deep: !0 }), ce(j, (g) => {
|
|
3090
3090
|
u.value && (g ? Xe(() => {
|
|
3091
|
-
|
|
3091
|
+
I(), W();
|
|
3092
3092
|
}) : (R(), O()));
|
|
3093
3093
|
}), ce(
|
|
3094
3094
|
() => l.disabled,
|
|
@@ -3097,7 +3097,7 @@ const Ia = { class: "map-filter" }, Da = { class: "map-filter__header" }, Na = {
|
|
|
3097
3097
|
}
|
|
3098
3098
|
);
|
|
3099
3099
|
function ue() {
|
|
3100
|
-
!u.value || !
|
|
3100
|
+
!u.value || !j.value || I();
|
|
3101
3101
|
}
|
|
3102
3102
|
function J(g) {
|
|
3103
3103
|
const f = r.value;
|
|
@@ -3124,8 +3124,8 @@ const Ia = { class: "map-filter" }, Da = { class: "map-filter__header" }, Na = {
|
|
|
3124
3124
|
window.removeEventListener("resize", ue), window.removeEventListener("scroll", ue, !0), R();
|
|
3125
3125
|
});
|
|
3126
3126
|
function W() {
|
|
3127
|
-
R(), !(!T.value || !
|
|
3128
|
-
!u.value || !
|
|
3127
|
+
R(), !(!T.value || !j.value) && (p = new ResizeObserver(() => {
|
|
3128
|
+
!u.value || !j.value || I();
|
|
3129
3129
|
}), p.observe(T.value));
|
|
3130
3130
|
}
|
|
3131
3131
|
function R() {
|
|
@@ -3170,7 +3170,7 @@ const Ia = { class: "map-filter" }, Da = { class: "map-filter__header" }, Na = {
|
|
|
3170
3170
|
to: M.value
|
|
3171
3171
|
}, [
|
|
3172
3172
|
e("div", {
|
|
3173
|
-
class: Ee(["vst-popover__content inline-block z-50 rounded-[16px] bg-white text-sm text-gray-500 rounded-md shadow-lg bottom mapLayer-filter__popover", { "mapLayer-filter__popover--static": !
|
|
3173
|
+
class: Ee(["vst-popover__content inline-block z-50 rounded-[16px] bg-white text-sm text-gray-500 rounded-md shadow-lg bottom mapLayer-filter__popover", { "mapLayer-filter__popover--static": !j.value }]),
|
|
3174
3174
|
style: ot(x.value),
|
|
3175
3175
|
ref_key: "panel",
|
|
3176
3176
|
ref: T,
|
|
@@ -3214,7 +3214,7 @@ const Ia = { class: "map-filter" }, Da = { class: "map-filter__header" }, Na = {
|
|
|
3214
3214
|
]))
|
|
3215
3215
|
], 512)) : K("", !0);
|
|
3216
3216
|
}
|
|
3217
|
-
}), An = /* @__PURE__ */ We(Ba, [["__scopeId", "data-v-
|
|
3217
|
+
}), An = /* @__PURE__ */ We(Ba, [["__scopeId", "data-v-3c2994c7"]]), Ua = { class: "opacity-popover__content" }, Va = { class: "opacity-popover__value" }, qa = /* @__PURE__ */ me({
|
|
3218
3218
|
__name: "LayerOpacityPopover",
|
|
3219
3219
|
props: {
|
|
3220
3220
|
layerId: {}
|
|
@@ -3222,8 +3222,8 @@ const Ia = { class: "map-filter" }, Da = { class: "map-filter__header" }, Na = {
|
|
|
3222
3222
|
setup(n) {
|
|
3223
3223
|
const t = n, l = F(!1), r = F(100), k = F(null), v = F(null), h = vt({ top: 0, left: 0 });
|
|
3224
3224
|
function d() {
|
|
3225
|
-
var
|
|
3226
|
-
const p = (
|
|
3225
|
+
var j;
|
|
3226
|
+
const p = (j = v.value) == null ? void 0 : j.querySelector("button");
|
|
3227
3227
|
if (!p || !k.value) return;
|
|
3228
3228
|
const y = p.getBoundingClientRect(), a = 260, u = k.value.offsetHeight || 60, _ = 8, c = 12, o = window.innerWidth, w = window.innerHeight;
|
|
3229
3229
|
let L = y.bottom + _ + window.scrollY, P = y.left + window.scrollX;
|
|
@@ -3311,7 +3311,7 @@ const Ia = { class: "map-filter" }, Da = { class: "map-filter__header" }, Na = {
|
|
|
3311
3311
|
]))
|
|
3312
3312
|
], 512));
|
|
3313
3313
|
}
|
|
3314
|
-
}), Oo = /* @__PURE__ */ We(qa, [["__scopeId", "data-v-
|
|
3314
|
+
}), Oo = /* @__PURE__ */ We(qa, [["__scopeId", "data-v-64c07a05"]]), Wa = { class: "layers-panel" }, Ha = { class: "layers-panel__header" }, Za = { class: "layers-panel__heading" }, Ga = { class: "layers-panel__heading-title" }, Ya = { class: "layers-panel__count" }, Xa = { class: "layers-panel__bulk-actions" }, Ja = { class: "layers-panel__header-actions" }, Ka = { class: "layers-panel__header-controls" }, Qa = { class: "layers-panel__label" }, ei = { class: "layers-panel__label-row" }, ti = ["checked", "onChange"], ni = { class: "layers-panel__title-block" }, oi = { class: "layers-panel__name" }, ri = { class: "layers-panel__meta text-slate-500" }, si = ["onClick"], li = { class: "inline-flex items-center justify-center w-[18px] h-[18px] text-slate-500 transition-colors duration-200 hover:text-blue-700" }, ai = {
|
|
3315
3315
|
key: 0,
|
|
3316
3316
|
class: "layers-panel__actions"
|
|
3317
3317
|
}, ii = ["innerHTML", "onClick"], bo = "map:temporary-layer-request", ui = "#5763ba", ci = /* @__PURE__ */ me({
|
|
@@ -3327,7 +3327,7 @@ const Ia = { class: "map-filter" }, Da = { class: "map-filter__header" }, Na = {
|
|
|
3327
3327
|
activateTemporaryLayer: E,
|
|
3328
3328
|
deactivateTemporaryLayer: $,
|
|
3329
3329
|
clearTemporaryLayers: T
|
|
3330
|
-
} = No(h.map), p =
|
|
3330
|
+
} = No(h.map), p = D(() => {
|
|
3331
3331
|
const g = l.layers.map((A) => ({
|
|
3332
3332
|
...A,
|
|
3333
3333
|
isTemporary: !1,
|
|
@@ -3352,11 +3352,11 @@ const Ia = { class: "map-filter" }, Da = { class: "map-filter__header" }, Na = {
|
|
|
3352
3352
|
})
|
|
3353
3353
|
);
|
|
3354
3354
|
return [...g, ...f];
|
|
3355
|
-
}), y =
|
|
3355
|
+
}), y = D(() => p.value.length), a = D(
|
|
3356
3356
|
() => p.value.filter((g) => P(g.id)).length
|
|
3357
|
-
), u =
|
|
3357
|
+
), u = D(
|
|
3358
3358
|
() => y.value > 0 && a.value === y.value
|
|
3359
|
-
), _ =
|
|
3359
|
+
), _ = D(() => d.value.length > 0), c = t;
|
|
3360
3360
|
function o() {
|
|
3361
3361
|
var g;
|
|
3362
3362
|
for (let f = 0; f < l.layers.length; f++) {
|
|
@@ -3463,7 +3463,7 @@ const Ia = { class: "map-filter" }, Da = { class: "map-filter__header" }, Na = {
|
|
|
3463
3463
|
const f = r.value[g];
|
|
3464
3464
|
return f ?? !0;
|
|
3465
3465
|
}
|
|
3466
|
-
function
|
|
3466
|
+
function j(g) {
|
|
3467
3467
|
var U, X;
|
|
3468
3468
|
if (!(g != null && g.id)) return null;
|
|
3469
3469
|
const f = (U = g.title) == null ? void 0 : U.trim(), A = (X = g.url) == null ? void 0 : X.trim();
|
|
@@ -3487,7 +3487,7 @@ const Ia = { class: "map-filter" }, Da = { class: "map-filter__header" }, Na = {
|
|
|
3487
3487
|
});
|
|
3488
3488
|
return;
|
|
3489
3489
|
}
|
|
3490
|
-
const A =
|
|
3490
|
+
const A = j(g.spec);
|
|
3491
3491
|
if (A) {
|
|
3492
3492
|
if (g.action === "activate") {
|
|
3493
3493
|
E(A, g.context || {}, f), r.value[A.id] = !0;
|
|
@@ -3531,11 +3531,11 @@ const Ia = { class: "map-filter" }, Da = { class: "map-filter__header" }, Na = {
|
|
|
3531
3531
|
const A = f.target;
|
|
3532
3532
|
C(g, A.checked);
|
|
3533
3533
|
}
|
|
3534
|
-
function
|
|
3534
|
+
function I(g) {
|
|
3535
3535
|
p.value.forEach((f) => C(f, g));
|
|
3536
3536
|
}
|
|
3537
3537
|
function V() {
|
|
3538
|
-
|
|
3538
|
+
I(!u.value);
|
|
3539
3539
|
}
|
|
3540
3540
|
function oe(g) {
|
|
3541
3541
|
return g.isTemporary ? [
|
|
@@ -3728,7 +3728,7 @@ const Ia = { class: "map-filter" }, Da = { class: "map-filter__header" }, Na = {
|
|
|
3728
3728
|
], 2)
|
|
3729
3729
|
]));
|
|
3730
3730
|
}
|
|
3731
|
-
}), xo = /* @__PURE__ */ We(ci, [["__scopeId", "data-v-
|
|
3731
|
+
}), xo = /* @__PURE__ */ We(ci, [["__scopeId", "data-v-30aea91d"]]);
|
|
3732
3732
|
function di() {
|
|
3733
3733
|
const { map: n, ready: t } = at(), l = F(null), r = F(null), k = F(null), v = F(null);
|
|
3734
3734
|
let h = [];
|
|
@@ -3791,20 +3791,20 @@ const fi = { class: "min-w-[200px] max-w-[280px] rounded-lg border border-slate-
|
|
|
3791
3791
|
return w;
|
|
3792
3792
|
}
|
|
3793
3793
|
function y(o, w, L) {
|
|
3794
|
-
const P = o.name || o.label || o.title || `field-${L}`,
|
|
3794
|
+
const P = o.name || o.label || o.title || `field-${L}`, j = o.label || o.title || o.name || P, M = o.name ? w[o.name] : void 0, x = o.name ? w[`${o.name}_text`] : void 0;
|
|
3795
3795
|
let C;
|
|
3796
3796
|
if ((o.format === "select" || o.format === "autocomplete") && o.data && M != null) {
|
|
3797
|
-
const
|
|
3798
|
-
|
|
3797
|
+
const I = E.value[o.data];
|
|
3798
|
+
I && (C = I[String(M)]);
|
|
3799
3799
|
}
|
|
3800
3800
|
const S = C ?? x ?? M ?? o.value ?? null;
|
|
3801
3801
|
return {
|
|
3802
3802
|
key: P,
|
|
3803
|
-
label:
|
|
3803
|
+
label: j,
|
|
3804
3804
|
value: p(o, S)
|
|
3805
3805
|
};
|
|
3806
3806
|
}
|
|
3807
|
-
const a =
|
|
3807
|
+
const a = D(() => {
|
|
3808
3808
|
const o = l.value || [], w = r.value || {};
|
|
3809
3809
|
return o.filter((L) => (L == null ? void 0 : L.meta) !== "title").map((L, P) => y(L, w, P)).filter((L) => L.label);
|
|
3810
3810
|
});
|
|
@@ -3816,9 +3816,9 @@ const fi = { class: "min-w-[200px] max-w-[280px] rounded-lg border border-slate-
|
|
|
3816
3816
|
if (!E.value[P] && !$.has(P)) {
|
|
3817
3817
|
$.add(P);
|
|
3818
3818
|
try {
|
|
3819
|
-
const
|
|
3820
|
-
if (
|
|
3821
|
-
const M = await
|
|
3819
|
+
const j = await fetch(`/api/suggest/${P}`);
|
|
3820
|
+
if (j.ok) {
|
|
3821
|
+
const M = await j.json();
|
|
3822
3822
|
if (M != null && M.data && Array.isArray(M.data)) {
|
|
3823
3823
|
const x = {};
|
|
3824
3824
|
M.data.forEach((C) => {
|
|
@@ -3826,17 +3826,17 @@ const fi = { class: "min-w-[200px] max-w-[280px] rounded-lg border border-slate-
|
|
|
3826
3826
|
}), E.value[P] = x;
|
|
3827
3827
|
}
|
|
3828
3828
|
}
|
|
3829
|
-
} catch (
|
|
3830
|
-
console.error(`Failed to fetch suggest for ${P}`,
|
|
3829
|
+
} catch (j) {
|
|
3830
|
+
console.error(`Failed to fetch suggest for ${P}`, j);
|
|
3831
3831
|
}
|
|
3832
3832
|
}
|
|
3833
3833
|
}
|
|
3834
3834
|
});
|
|
3835
3835
|
}, { deep: !0, immediate: !0 });
|
|
3836
|
-
const u =
|
|
3836
|
+
const u = D(() => {
|
|
3837
3837
|
const o = l.value || [], w = r.value || {}, L = o.find((P) => (P == null ? void 0 : P.meta) === "title");
|
|
3838
3838
|
return L ? y(L, w, 0) : null;
|
|
3839
|
-
}), _ =
|
|
3839
|
+
}), _ = D(() => {
|
|
3840
3840
|
var w;
|
|
3841
3841
|
const o = a.value;
|
|
3842
3842
|
return (w = u.value) != null && w.value ? [
|
|
@@ -3855,9 +3855,9 @@ const fi = { class: "min-w-[200px] max-w-[280px] rounded-lg border border-slate-
|
|
|
3855
3855
|
top: 0,
|
|
3856
3856
|
width: window.innerWidth,
|
|
3857
3857
|
height: window.innerHeight
|
|
3858
|
-
}, P = ((f = (g = v.value) == null ? void 0 : g.getContainer) == null ? void 0 : f.call(g)) || void 0,
|
|
3859
|
-
let J = M + oe +
|
|
3860
|
-
J + C + V > L.width && (J = M + oe - C -
|
|
3858
|
+
}, P = ((f = (g = v.value) == null ? void 0 : g.getContainer) == null ? void 0 : f.call(g)) || void 0, j = (P == null ? void 0 : P.getBoundingClientRect()) ?? L, M = j.left - L.left, x = j.top - L.top, C = o.offsetWidth || 0, S = o.offsetHeight || 0, I = 12, V = 8, [oe, ue] = t.value;
|
|
3859
|
+
let J = M + oe + I, ee = x + ue + I;
|
|
3860
|
+
J + C + V > L.width && (J = M + oe - C - I), ee + S + V > L.height && (ee = x + ue - S - I);
|
|
3861
3861
|
const G = V, W = V, R = Math.max(V, L.width - C - V), O = Math.max(V, L.height - S - V);
|
|
3862
3862
|
J = Math.min(Math.max(J, G), R), ee = Math.min(Math.max(ee, W), O), d.value = { left: `${J}px`, top: `${ee}px` };
|
|
3863
3863
|
}
|
|
@@ -3889,14 +3889,14 @@ const fi = { class: "min-w-[200px] max-w-[280px] rounded-lg border border-slate-
|
|
|
3889
3889
|
}
|
|
3890
3890
|
});
|
|
3891
3891
|
function yi() {
|
|
3892
|
-
const n = Tt(), t = Bt(), l = F(null), r = F(null), k = F(null), v = F(!1), h = F([]), d = F(0), E =
|
|
3892
|
+
const n = Tt(), t = Bt(), l = F(null), r = F(null), k = F(null), v = F(!1), h = F([]), d = F(0), E = D(() => h.value.length), $ = D(() => v.value || !!l.value || !!k.value);
|
|
3893
3893
|
let T = !1;
|
|
3894
3894
|
function p() {
|
|
3895
3895
|
l.value = null, r.value = null, k.value = null, v.value = !1, h.value = [], d.value = 0;
|
|
3896
3896
|
}
|
|
3897
3897
|
function y(x, C = 0) {
|
|
3898
3898
|
if (!x.length) {
|
|
3899
|
-
p(),
|
|
3899
|
+
p(), j(null);
|
|
3900
3900
|
return;
|
|
3901
3901
|
}
|
|
3902
3902
|
h.value = x, a(C);
|
|
@@ -3919,8 +3919,8 @@ function yi() {
|
|
|
3919
3919
|
if (!((V = x == null ? void 0 : x.properties) != null && V.id)) return;
|
|
3920
3920
|
const S = new URLSearchParams();
|
|
3921
3921
|
S.set("layer", x.source), S.set("id", String((oe = x.properties) == null ? void 0 : oe.id));
|
|
3922
|
-
const
|
|
3923
|
-
v.value =
|
|
3922
|
+
const I = Array.isArray(C) && C.length > 0;
|
|
3923
|
+
v.value = I, k.value = null, l.value = null, r.value = x || null;
|
|
3924
3924
|
try {
|
|
3925
3925
|
const G = await fetch(`/api/map-format?${S.toString()}`);
|
|
3926
3926
|
if (!G.ok) throw new Error(`Failed (${G.status})`);
|
|
@@ -3935,7 +3935,7 @@ function yi() {
|
|
|
3935
3935
|
fields: O,
|
|
3936
3936
|
columns: R,
|
|
3937
3937
|
html: W.html || null
|
|
3938
|
-
}, T ||
|
|
3938
|
+
}, T || j(r.value);
|
|
3939
3939
|
const f = ((ue = W.rows) == null ? void 0 : ue.geom) ?? ((J = W.data) == null ? void 0 : J.geom);
|
|
3940
3940
|
if (f) {
|
|
3941
3941
|
const A = typeof f == "string" ? JSON.parse(f) : f;
|
|
@@ -3956,7 +3956,7 @@ function yi() {
|
|
|
3956
3956
|
}
|
|
3957
3957
|
}
|
|
3958
3958
|
function o() {
|
|
3959
|
-
p(),
|
|
3959
|
+
p(), j(null);
|
|
3960
3960
|
}
|
|
3961
3961
|
function w() {
|
|
3962
3962
|
p();
|
|
@@ -3973,11 +3973,11 @@ function yi() {
|
|
|
3973
3973
|
const C = (x == null ? void 0 : x.source) ?? ((V = x == null ? void 0 : x.layer) == null ? void 0 : V.id), S = (oe = x == null ? void 0 : x.properties) == null ? void 0 : oe.id;
|
|
3974
3974
|
return !C || S === void 0 || S === null ? null : `${C},${S}`.trim() || null;
|
|
3975
3975
|
}
|
|
3976
|
-
function
|
|
3976
|
+
function j(x) {
|
|
3977
3977
|
const C = P(x), S = L();
|
|
3978
3978
|
if (C === S) return;
|
|
3979
|
-
const
|
|
3980
|
-
C ?
|
|
3979
|
+
const I = { ...n.query };
|
|
3980
|
+
C ? I.info = C : delete I.info, t.push({ query: I }).catch(() => {
|
|
3981
3981
|
});
|
|
3982
3982
|
}
|
|
3983
3983
|
async function M(x) {
|
|
@@ -3987,15 +3987,15 @@ function yi() {
|
|
|
3987
3987
|
}
|
|
3988
3988
|
if (x === P(r.value))
|
|
3989
3989
|
return;
|
|
3990
|
-
const [C, S] = x.split(","),
|
|
3991
|
-
if (!
|
|
3992
|
-
p(),
|
|
3990
|
+
const [C, S] = x.split(","), I = C == null ? void 0 : C.trim(), V = S == null ? void 0 : S.trim();
|
|
3991
|
+
if (!I || !V) {
|
|
3992
|
+
p(), j(null);
|
|
3993
3993
|
return;
|
|
3994
3994
|
}
|
|
3995
3995
|
T = !0;
|
|
3996
3996
|
try {
|
|
3997
3997
|
y([{
|
|
3998
|
-
source:
|
|
3998
|
+
source: I,
|
|
3999
3999
|
properties: { id: V }
|
|
4000
4000
|
}], 0);
|
|
4001
4001
|
} finally {
|
|
@@ -4025,7 +4025,7 @@ function yi() {
|
|
|
4025
4025
|
};
|
|
4026
4026
|
}
|
|
4027
4027
|
function hi() {
|
|
4028
|
-
const { map: n, ready: t } = at(), l = F([]), r = F(0), k = F(0), v = F(!1), h = F(null), d = F({}), E = F(null), $ = F([]), T =
|
|
4028
|
+
const { map: n, ready: t } = at(), l = F([]), r = F(0), k = F(0), v = F(!1), h = F(null), d = F({}), E = F(null), $ = F([]), T = D(() => l.value[k.value] || null), p = D(() => l.value.length > 0);
|
|
4029
4029
|
let y = null;
|
|
4030
4030
|
const a = () => {
|
|
4031
4031
|
y == null || y.remove(), y = null;
|
|
@@ -4048,12 +4048,12 @@ function hi() {
|
|
|
4048
4048
|
},
|
|
4049
4049
|
n
|
|
4050
4050
|
));
|
|
4051
|
-
}, w = async (C, S,
|
|
4051
|
+
}, w = async (C, S, I) => {
|
|
4052
4052
|
var ue, J;
|
|
4053
4053
|
const [V, oe] = [c(C), c(S)];
|
|
4054
|
-
E.value = { x: V, y: oe }, $.value =
|
|
4054
|
+
E.value = { x: V, y: oe }, $.value = I, v.value = !0, h.value = null, l.value = [], d.value = {}, k.value = 0;
|
|
4055
4055
|
try {
|
|
4056
|
-
const ee =
|
|
4056
|
+
const ee = I.map(async (g) => {
|
|
4057
4057
|
const f = `/api/map-info-point?x=${V}&y=${oe}&layers=${g}`, A = await fetch(f);
|
|
4058
4058
|
if (!A.ok) return null;
|
|
4059
4059
|
const U = await A.json();
|
|
@@ -4081,7 +4081,7 @@ function hi() {
|
|
|
4081
4081
|
l.value[C] = d.value[C];
|
|
4082
4082
|
return;
|
|
4083
4083
|
}
|
|
4084
|
-
const { x: S, y:
|
|
4084
|
+
const { x: S, y: I } = E.value, V = $.value.join(","), oe = `/api/map-info-point?x=${S}&y=${I}&index=${C}&layers=${V}`;
|
|
4085
4085
|
try {
|
|
4086
4086
|
v.value = !0;
|
|
4087
4087
|
const ue = await fetch(oe);
|
|
@@ -4095,23 +4095,23 @@ function hi() {
|
|
|
4095
4095
|
}
|
|
4096
4096
|
}, P = async () => {
|
|
4097
4097
|
k.value < r.value - 1 && (k.value += 1, d.value[k.value] || await L(k.value));
|
|
4098
|
-
},
|
|
4098
|
+
}, j = async () => {
|
|
4099
4099
|
k.value > 0 && (k.value -= 1, d.value[k.value] || await L(k.value));
|
|
4100
4100
|
}, M = () => {
|
|
4101
4101
|
l.value = [], r.value = 0, k.value = 0, d.value = {}, E.value = null, $.value = [], a();
|
|
4102
4102
|
};
|
|
4103
4103
|
ce(k, async () => {
|
|
4104
|
-
var S,
|
|
4104
|
+
var S, I;
|
|
4105
4105
|
const C = T.value;
|
|
4106
4106
|
if (C) {
|
|
4107
|
-
const V = ((S = C == null ? void 0 : C.data) == null ? void 0 : S.geom_4326) ?? ((
|
|
4107
|
+
const V = ((S = C == null ? void 0 : C.data) == null ? void 0 : S.geom_4326) ?? ((I = C == null ? void 0 : C.data) == null ? void 0 : I.geom);
|
|
4108
4108
|
await o(V);
|
|
4109
4109
|
}
|
|
4110
4110
|
});
|
|
4111
4111
|
let x = null;
|
|
4112
4112
|
return De(async () => {
|
|
4113
4113
|
await t(), n.value && (x = async (C) => {
|
|
4114
|
-
const { lng: S, lat:
|
|
4114
|
+
const { lng: S, lat: I } = C.lngLat, V = Oe(), ue = Object.entries(V).map(([J, ee]) => {
|
|
4115
4115
|
var G, W, R, O;
|
|
4116
4116
|
return {
|
|
4117
4117
|
id: J,
|
|
@@ -4127,7 +4127,7 @@ function hi() {
|
|
|
4127
4127
|
})()
|
|
4128
4128
|
};
|
|
4129
4129
|
}).filter((J) => J.service === "ogc" && J.visible).map((J) => J.id);
|
|
4130
|
-
ue.length > 0 && await w(S,
|
|
4130
|
+
ue.length > 0 && await w(S, I, ue);
|
|
4131
4131
|
}, n.value.on("dblclick", x));
|
|
4132
4132
|
}), Ue(() => {
|
|
4133
4133
|
n.value && x && n.value.off("dblclick", x), a();
|
|
@@ -4140,7 +4140,7 @@ function hi() {
|
|
|
4140
4140
|
error: h,
|
|
4141
4141
|
active: p,
|
|
4142
4142
|
next: P,
|
|
4143
|
-
prev:
|
|
4143
|
+
prev: j,
|
|
4144
4144
|
close: M
|
|
4145
4145
|
};
|
|
4146
4146
|
}
|
|
@@ -4161,10 +4161,10 @@ const wo = /* @__PURE__ */ me({
|
|
|
4161
4161
|
const p = Array.from($).map((y) => y.charCodeAt(0).toString(16)).join("").slice(0, 8);
|
|
4162
4162
|
return p ? `layer-${p}` : "layer-temp";
|
|
4163
4163
|
}
|
|
4164
|
-
const v =
|
|
4164
|
+
const v = D(() => {
|
|
4165
4165
|
var $;
|
|
4166
4166
|
return (($ = l.id) == null ? void 0 : $.trim()) || k(l.title);
|
|
4167
|
-
}), h =
|
|
4167
|
+
}), h = D(() => l.buttonText || "Показати шар");
|
|
4168
4168
|
function d() {
|
|
4169
4169
|
return {
|
|
4170
4170
|
id: v.value,
|
|
@@ -4232,13 +4232,13 @@ const wo = /* @__PURE__ */ me({
|
|
|
4232
4232
|
mapId: {}
|
|
4233
4233
|
},
|
|
4234
4234
|
setup(n) {
|
|
4235
|
-
const t = n, l = yi(), r = hi(), k = Bt(), v = F([]), h = F(0), d =
|
|
4235
|
+
const t = n, l = yi(), r = hi(), k = Bt(), v = F([]), h = F(0), d = D(() => v.value[h.value] || null), E = D(() => {
|
|
4236
4236
|
var i;
|
|
4237
4237
|
return ((i = d.value) == null ? void 0 : i.type) === "external" ? d.value : null;
|
|
4238
|
-
}), $ =
|
|
4238
|
+
}), $ = D(() => v.value.length > 0), T = D(() => {
|
|
4239
4239
|
var i, b;
|
|
4240
4240
|
return !!((b = (i = E.value) == null ? void 0 : i.html) != null && b.trim());
|
|
4241
|
-
}), p =
|
|
4241
|
+
}), p = D(() => {
|
|
4242
4242
|
var i;
|
|
4243
4243
|
return ((i = E.value) == null ? void 0 : i.geometry) ?? null;
|
|
4244
4244
|
});
|
|
@@ -4261,19 +4261,19 @@ const wo = /* @__PURE__ */ me({
|
|
|
4261
4261
|
}
|
|
4262
4262
|
function _(i) {
|
|
4263
4263
|
if (!i || !i.startsWith("external:")) return null;
|
|
4264
|
-
const b = i.slice(9), [
|
|
4265
|
-
return !
|
|
4266
|
-
layer:
|
|
4264
|
+
const b = i.slice(9), [N, Q] = b.split(","), le = N == null ? void 0 : N.trim(), be = Q == null ? void 0 : Q.trim();
|
|
4265
|
+
return !le || !be ? null : {
|
|
4266
|
+
layer: le,
|
|
4267
4267
|
id: be,
|
|
4268
|
-
token: `external:${
|
|
4268
|
+
token: `external:${le},${be}`
|
|
4269
4269
|
};
|
|
4270
4270
|
}
|
|
4271
4271
|
function c(i) {
|
|
4272
|
-
const b = u(),
|
|
4273
|
-
if (b ===
|
|
4272
|
+
const b = u(), N = (i == null ? void 0 : i.trim()) || null;
|
|
4273
|
+
if (b === N) return;
|
|
4274
4274
|
const Q = { ...ee.query };
|
|
4275
|
-
if (
|
|
4276
|
-
Q.info =
|
|
4275
|
+
if (N)
|
|
4276
|
+
Q.info = N;
|
|
4277
4277
|
else if (b != null && b.startsWith("external:"))
|
|
4278
4278
|
delete Q.info;
|
|
4279
4279
|
else
|
|
@@ -4282,7 +4282,7 @@ const wo = /* @__PURE__ */ me({
|
|
|
4282
4282
|
});
|
|
4283
4283
|
}
|
|
4284
4284
|
function o(i) {
|
|
4285
|
-
var
|
|
4285
|
+
var N;
|
|
4286
4286
|
const b = v.value[i];
|
|
4287
4287
|
if (!b) {
|
|
4288
4288
|
y(), l.close(), Ve();
|
|
@@ -4292,10 +4292,10 @@ const wo = /* @__PURE__ */ me({
|
|
|
4292
4292
|
l.openFeature(b.feature);
|
|
4293
4293
|
return;
|
|
4294
4294
|
}
|
|
4295
|
-
l.close(), c(b.infoToken ?? null), (
|
|
4295
|
+
l.close(), c(b.infoToken ?? null), (N = b.html) != null && N.trim() ? P() : Ve();
|
|
4296
4296
|
}
|
|
4297
4297
|
function w(i, b = 0) {
|
|
4298
|
-
if (r.close(), v.value = i.map((
|
|
4298
|
+
if (r.close(), v.value = i.map((N) => ({ type: "external", ...N })), !v.value.length) {
|
|
4299
4299
|
l.close(), c(null), Ve();
|
|
4300
4300
|
return;
|
|
4301
4301
|
}
|
|
@@ -4303,10 +4303,10 @@ const wo = /* @__PURE__ */ me({
|
|
|
4303
4303
|
}
|
|
4304
4304
|
function L(i) {
|
|
4305
4305
|
r.close();
|
|
4306
|
-
const b = Array.isArray(i == null ? void 0 : i.features) ? i.features.filter(Boolean) : [],
|
|
4306
|
+
const b = Array.isArray(i == null ? void 0 : i.features) ? i.features.filter(Boolean) : [], N = Array.isArray(i == null ? void 0 : i.externalItems) ? i.externalItems.filter((Q) => typeof (Q == null ? void 0 : Q.html) == "string" && Q.html.trim()) : [];
|
|
4307
4307
|
if (v.value = [
|
|
4308
4308
|
...b.map((Q) => ({ type: "feature", feature: Q })),
|
|
4309
|
-
...
|
|
4309
|
+
...N.map((Q) => ({ type: "external", ...Q }))
|
|
4310
4310
|
], !v.value.length) {
|
|
4311
4311
|
l.close(), c(null), Ve();
|
|
4312
4312
|
return;
|
|
@@ -4316,10 +4316,10 @@ const wo = /* @__PURE__ */ me({
|
|
|
4316
4316
|
function P() {
|
|
4317
4317
|
return T.value ? p.value ? (oo(p.value), !0) : (Ve(), !0) : (Ve(), !1);
|
|
4318
4318
|
}
|
|
4319
|
-
const
|
|
4320
|
-
var Q,
|
|
4321
|
-
const b = i,
|
|
4322
|
-
|
|
4319
|
+
const j = (i) => {
|
|
4320
|
+
var Q, le, be, _e;
|
|
4321
|
+
const b = i, N = Array.isArray((Q = b.detail) == null ? void 0 : Q.items) ? (le = b.detail) == null ? void 0 : le.items.filter((ze) => typeof (ze == null ? void 0 : ze.html) == "string" && ze.html.trim()) : [];
|
|
4322
|
+
N.length ? w(N, Number(((be = b.detail) == null ? void 0 : be.index) ?? 0)) : typeof ((_e = b.detail) == null ? void 0 : _e.html) == "string" && b.detail.html.trim() ? w([{
|
|
4323
4323
|
html: b.detail.html,
|
|
4324
4324
|
geometry: b.detail.geometry ?? null,
|
|
4325
4325
|
infoToken: b.detail.infoToken ?? null
|
|
@@ -4328,14 +4328,14 @@ const wo = /* @__PURE__ */ me({
|
|
|
4328
4328
|
L(i.detail);
|
|
4329
4329
|
};
|
|
4330
4330
|
De(() => {
|
|
4331
|
-
typeof window > "u" || (window.addEventListener(Gn, M), window.addEventListener(_o,
|
|
4331
|
+
typeof window > "u" || (window.addEventListener(Gn, M), window.addEventListener(_o, j));
|
|
4332
4332
|
}), Ue(() => {
|
|
4333
|
-
typeof window > "u" || (window.removeEventListener(Gn, M), window.removeEventListener(_o,
|
|
4333
|
+
typeof window > "u" || (window.removeEventListener(Gn, M), window.removeEventListener(_o, j));
|
|
4334
4334
|
});
|
|
4335
|
-
const x =
|
|
4336
|
-
var i, b,
|
|
4337
|
-
return x.value ? ((i = r.current.value) == null ? void 0 : i.html) || null : T.value ? ((b = E.value) == null ? void 0 : b.html) || null : ((
|
|
4338
|
-
}), oe = at(), ue = Qn(), J =
|
|
4335
|
+
const x = D(() => r.active.value), C = D(() => x.value || l.isOpen.value || T.value), S = D(() => x.value ? r.loading.value : l.cardLoading.value), I = D(() => x.value ? r.error.value : l.cardError.value), V = D(() => {
|
|
4336
|
+
var i, b, N;
|
|
4337
|
+
return x.value ? ((i = r.current.value) == null ? void 0 : i.html) || null : T.value ? ((b = E.value) == null ? void 0 : b.html) || null : ((N = l.card.value) == null ? void 0 : N.html) || null;
|
|
4338
|
+
}), oe = at(), ue = Qn(), J = D(() => {
|
|
4339
4339
|
var i, b;
|
|
4340
4340
|
return ((b = (i = ue.value) == null ? void 0 : i.map) == null ? void 0 : b.cardHideEmpty) ?? null;
|
|
4341
4341
|
}), ee = Tt(), {
|
|
@@ -4347,32 +4347,32 @@ const wo = /* @__PURE__ */ me({
|
|
|
4347
4347
|
function g(i) {
|
|
4348
4348
|
window.dispatchEvent(new CustomEvent(Xi, { detail: i }));
|
|
4349
4349
|
}
|
|
4350
|
-
const f =
|
|
4350
|
+
const f = D(() => {
|
|
4351
4351
|
var i;
|
|
4352
4352
|
return ((i = l.cardFeature.value) == null ? void 0 : i.source) ?? null;
|
|
4353
|
-
}), A =
|
|
4354
|
-
var Q,
|
|
4355
|
-
const i = l.cardFeature.value, b = (i == null ? void 0 : i.source) || ((Q = i == null ? void 0 : i.layer) == null ? void 0 : Q.id),
|
|
4356
|
-
return b &&
|
|
4353
|
+
}), A = D(() => f.value ? `map-card:${f.value}` : "map-card"), U = D(() => {
|
|
4354
|
+
var Q, le;
|
|
4355
|
+
const i = l.cardFeature.value, b = (i == null ? void 0 : i.source) || ((Q = i == null ? void 0 : i.layer) == null ? void 0 : Q.id), N = ((le = i == null ? void 0 : i.properties) == null ? void 0 : le.id) ?? (i == null ? void 0 : i.id);
|
|
4356
|
+
return b && N != null ? `${b}:${N}` : null;
|
|
4357
4357
|
}), X = F(null), re = F([]), ne = F(0), de = /* @__PURE__ */ new Map();
|
|
4358
4358
|
function we() {
|
|
4359
4359
|
if (typeof window > "u") return null;
|
|
4360
4360
|
const b = (window.location.pathname || "").match(/\/maps?\/([^/]+)/i);
|
|
4361
4361
|
return b && b[1] ? b[1] : null;
|
|
4362
4362
|
}
|
|
4363
|
-
const $e =
|
|
4363
|
+
const $e = D(() => {
|
|
4364
4364
|
const i = typeof t.mapId == "string" ? t.mapId.trim() : "";
|
|
4365
4365
|
if (i.length) return i;
|
|
4366
4366
|
const b = typeof ee.params.slug == "string" ? ee.params.slug.trim() : "";
|
|
4367
4367
|
if (b.length) return b;
|
|
4368
|
-
const
|
|
4369
|
-
return
|
|
4368
|
+
const N = typeof ee.query.slug == "string" ? ee.query.slug.trim() : "";
|
|
4369
|
+
return N.length ? N : we();
|
|
4370
4370
|
}), Le = F(null), je = F(null), dt = /* @__PURE__ */ new Map();
|
|
4371
4371
|
function st(i) {
|
|
4372
4372
|
const b = i.normalize("NFKD").replace(/[\u0300-\u036f]/g, "").replace(/[^a-zA-Z0-9]+/g, "-").replace(/^-+|-+$/g, "").toLowerCase();
|
|
4373
4373
|
if (b) return b;
|
|
4374
|
-
const
|
|
4375
|
-
return
|
|
4374
|
+
const N = Array.from(i).map((Q) => Q.charCodeAt(0).toString(16)).join("").slice(0, 8);
|
|
4375
|
+
return N ? `layer-${N}` : `layer-${Math.random().toString(36).slice(2, 8)}`;
|
|
4376
4376
|
}
|
|
4377
4377
|
function it(i) {
|
|
4378
4378
|
if (typeof i != "string") return "";
|
|
@@ -4381,8 +4381,8 @@ const wo = /* @__PURE__ */ me({
|
|
|
4381
4381
|
if (/^https?:\/\//i.test(b)) return b;
|
|
4382
4382
|
if (b.startsWith("//"))
|
|
4383
4383
|
return typeof window > "u" ? `https:${b}` : `${window.location.protocol}${b}`;
|
|
4384
|
-
const
|
|
4385
|
-
return b.startsWith("/") ?
|
|
4384
|
+
const N = typeof window < "u" ? window.location.origin : "";
|
|
4385
|
+
return b.startsWith("/") ? N ? `${N}${b}` : b : N ? `${N}/${b}` : b;
|
|
4386
4386
|
}
|
|
4387
4387
|
function It(i) {
|
|
4388
4388
|
if (i == null) return [];
|
|
@@ -4392,43 +4392,43 @@ const wo = /* @__PURE__ */ me({
|
|
|
4392
4392
|
return Number.isFinite(i) ? [i] : [];
|
|
4393
4393
|
if (typeof i == "string") {
|
|
4394
4394
|
const b = i.match(/-?\d+(?:\.\d+)?/g);
|
|
4395
|
-
return !b || !b.length ? [] : b.map((
|
|
4395
|
+
return !b || !b.length ? [] : b.map((N) => Number(N)).filter((N) => Number.isFinite(N));
|
|
4396
4396
|
}
|
|
4397
4397
|
return [];
|
|
4398
4398
|
}
|
|
4399
4399
|
function Et(i) {
|
|
4400
4400
|
const b = It(i);
|
|
4401
4401
|
if (b.length < 4) return null;
|
|
4402
|
-
const [
|
|
4403
|
-
return [
|
|
4402
|
+
const [N, Q, le, be] = b;
|
|
4403
|
+
return [N, Q, le, be].every((_e) => Number.isFinite(_e)) ? [N, Q, le, be] : null;
|
|
4404
4404
|
}
|
|
4405
4405
|
function yt(i) {
|
|
4406
4406
|
if (!i) return null;
|
|
4407
4407
|
const b = i.trim();
|
|
4408
4408
|
if (!b.length) return null;
|
|
4409
4409
|
try {
|
|
4410
|
-
const
|
|
4410
|
+
const le = JSON.parse(b), be = Et(le);
|
|
4411
4411
|
if (be) return be;
|
|
4412
4412
|
} catch {
|
|
4413
4413
|
}
|
|
4414
|
-
const
|
|
4415
|
-
if (!
|
|
4416
|
-
const Q =
|
|
4417
|
-
return Q.every((
|
|
4414
|
+
const N = b.match(/-?\d+(?:\.\d+)?/g);
|
|
4415
|
+
if (!N || N.length < 4) return null;
|
|
4416
|
+
const Q = N.slice(0, 4).map((le) => Number(le));
|
|
4417
|
+
return Q.every((le) => Number.isFinite(le)) ? [Q[0], Q[1], Q[2], Q[3]] : null;
|
|
4418
4418
|
}
|
|
4419
4419
|
function kt(i) {
|
|
4420
|
-
const b = {},
|
|
4420
|
+
const b = {}, N = /([:@\w-]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>]+)))?/g;
|
|
4421
4421
|
let Q;
|
|
4422
|
-
for (; (Q =
|
|
4423
|
-
const
|
|
4424
|
-
|
|
4422
|
+
for (; (Q = N.exec(i)) !== null; ) {
|
|
4423
|
+
const le = Q[1], be = Q[2] ?? Q[3] ?? Q[4] ?? "";
|
|
4424
|
+
le && (b[le] = be);
|
|
4425
4425
|
}
|
|
4426
4426
|
return b;
|
|
4427
4427
|
}
|
|
4428
4428
|
function ut(i, b) {
|
|
4429
|
-
for (const
|
|
4430
|
-
if (i[
|
|
4431
|
-
return String(i[
|
|
4429
|
+
for (const N of b)
|
|
4430
|
+
if (i[N] != null && String(i[N]).trim().length)
|
|
4431
|
+
return String(i[N]).trim();
|
|
4432
4432
|
return "";
|
|
4433
4433
|
}
|
|
4434
4434
|
function Dt(i) {
|
|
@@ -4438,16 +4438,16 @@ const wo = /* @__PURE__ */ me({
|
|
|
4438
4438
|
}
|
|
4439
4439
|
function Kt(i) {
|
|
4440
4440
|
if (typeof i != "string" || !i.length) return [];
|
|
4441
|
-
const b = [],
|
|
4442
|
-
let Q = 0,
|
|
4441
|
+
const b = [], N = /<LayerSwitcher\b([^>]*)>([\s\S]*?)<\/LayerSwitcher>/gi;
|
|
4442
|
+
let Q = 0, le;
|
|
4443
4443
|
const be = /* @__PURE__ */ new Set(), _e = (ze) => {
|
|
4444
4444
|
let He = ze, Ke = 2;
|
|
4445
4445
|
for (; be.has(He); )
|
|
4446
4446
|
He = `${ze}-${Ke}`, Ke += 1;
|
|
4447
4447
|
return be.add(He), He;
|
|
4448
4448
|
};
|
|
4449
|
-
for (; (
|
|
4450
|
-
const [ze, He = "", Ke = ""] =
|
|
4449
|
+
for (; (le = N.exec(i)) !== null; ) {
|
|
4450
|
+
const [ze, He = "", Ke = ""] = le, Be = le.index;
|
|
4451
4451
|
if (Be > Q) {
|
|
4452
4452
|
const lo = i.slice(Q, Be);
|
|
4453
4453
|
lo.trim().length && b.push({ type: "html", content: lo });
|
|
@@ -4487,10 +4487,10 @@ const wo = /* @__PURE__ */ me({
|
|
|
4487
4487
|
}
|
|
4488
4488
|
function ft(i) {
|
|
4489
4489
|
if (!i) return null;
|
|
4490
|
-
const b = typeof i.id == "string" ? i.id.trim() : "",
|
|
4490
|
+
const b = typeof i.id == "string" ? i.id.trim() : "", N = typeof i.title == "string" ? i.title.trim() : "", Q = it(typeof i.url == "string" ? i.url : "");
|
|
4491
4491
|
return !b || !Q ? null : {
|
|
4492
4492
|
id: b,
|
|
4493
|
-
title:
|
|
4493
|
+
title: N || b,
|
|
4494
4494
|
url: Q,
|
|
4495
4495
|
tileSize: i.tileSize,
|
|
4496
4496
|
minzoom: i.minzoom,
|
|
@@ -4499,59 +4499,59 @@ const wo = /* @__PURE__ */ me({
|
|
|
4499
4499
|
bounds: i.bounds
|
|
4500
4500
|
};
|
|
4501
4501
|
}
|
|
4502
|
-
const Vt =
|
|
4502
|
+
const Vt = D(() => {
|
|
4503
4503
|
if (x.value && r.current.value)
|
|
4504
4504
|
return r.current.value.data ?? {};
|
|
4505
4505
|
const i = l.card.value;
|
|
4506
4506
|
return (i == null ? void 0 : i.rows) ?? {};
|
|
4507
|
-
}), qt =
|
|
4507
|
+
}), qt = D(() => {
|
|
4508
4508
|
if (x.value && r.current.value) {
|
|
4509
|
-
const Q = r.current.value,
|
|
4510
|
-
return
|
|
4509
|
+
const Q = r.current.value, le = Array.isArray(Q.columns) ? Q.columns : [];
|
|
4510
|
+
return le.length ? le : Q.fields ?? [];
|
|
4511
4511
|
}
|
|
4512
4512
|
const i = l.card.value;
|
|
4513
4513
|
if (!i) return [];
|
|
4514
4514
|
const b = Array.isArray(i.columns) ? i.columns : [];
|
|
4515
4515
|
return b.length ? b : Array.isArray(i.fields) ? i.fields : [];
|
|
4516
|
-
}), Mt =
|
|
4516
|
+
}), Mt = D(() => {
|
|
4517
4517
|
const i = qt.value;
|
|
4518
4518
|
if (!i.length) return [];
|
|
4519
4519
|
const b = Vt.value;
|
|
4520
|
-
return i.map((
|
|
4521
|
-
key:
|
|
4522
|
-
label:
|
|
4523
|
-
value: Nt(b[
|
|
4524
|
-
format:
|
|
4520
|
+
return i.map((N) => ({
|
|
4521
|
+
key: N.name,
|
|
4522
|
+
label: N.ua || N.label || N.title || N.name,
|
|
4523
|
+
value: Nt(b[N.name], N.format || "text", N.type || "text"),
|
|
4524
|
+
format: N.format || "text"
|
|
4525
4525
|
}));
|
|
4526
4526
|
}), xt = /* @__PURE__ */ new Set(["—", "-", "–", "−"]);
|
|
4527
4527
|
function wt(i) {
|
|
4528
4528
|
const b = i.match(/^(\d{4})-(\d{2})-(\d{2})$/);
|
|
4529
4529
|
if (!b) return i;
|
|
4530
|
-
const [,
|
|
4531
|
-
return `${
|
|
4530
|
+
const [, N, Q, le] = b;
|
|
4531
|
+
return `${le}.${Q}.${N}`;
|
|
4532
4532
|
}
|
|
4533
4533
|
function Pt(i) {
|
|
4534
4534
|
return Number.isFinite(i) ? new Intl.NumberFormat("uk-UA").format(i) : "—";
|
|
4535
4535
|
}
|
|
4536
|
-
function Nt(i, b) {
|
|
4536
|
+
function Nt(i, b, N) {
|
|
4537
4537
|
if (i == null) return "—";
|
|
4538
4538
|
if (b === "tags") return i;
|
|
4539
4539
|
if (Array.isArray(i))
|
|
4540
|
-
return i.length ? i.map((
|
|
4540
|
+
return i.length ? i.map((Q) => Nt(Q, "text", "text")).join(", ") : "—";
|
|
4541
4541
|
if (typeof i == "boolean")
|
|
4542
4542
|
return i ? "так" : "ні";
|
|
4543
|
-
if (typeof i == "number")
|
|
4543
|
+
if (N === "number" && typeof i == "number")
|
|
4544
4544
|
return Pt(i);
|
|
4545
4545
|
if (typeof i == "string") {
|
|
4546
|
-
const
|
|
4547
|
-
if (!
|
|
4548
|
-
if (/^\d{4}-\d{2}-\d{2}$/.test(
|
|
4549
|
-
return wt(
|
|
4550
|
-
if (/^-?\d+(?:\.\d+)?$/.test(
|
|
4551
|
-
const
|
|
4552
|
-
return Number.isFinite(
|
|
4546
|
+
const Q = i.trim();
|
|
4547
|
+
if (!Q.length) return "—";
|
|
4548
|
+
if (/^\d{4}-\d{2}-\d{2}$/.test(Q))
|
|
4549
|
+
return wt(Q);
|
|
4550
|
+
if (N === "number" && /^-?\d+(?:\.\d+)?$/.test(Q)) {
|
|
4551
|
+
const le = Number(Q);
|
|
4552
|
+
return Number.isFinite(le) ? Pt(le) : Q;
|
|
4553
4553
|
}
|
|
4554
|
-
return
|
|
4554
|
+
return Q;
|
|
4555
4555
|
}
|
|
4556
4556
|
return String(i);
|
|
4557
4557
|
}
|
|
@@ -4570,7 +4570,7 @@ const wo = /* @__PURE__ */ me({
|
|
|
4570
4570
|
const b = i.trim();
|
|
4571
4571
|
if (b.startsWith("{") && b.endsWith("}")) {
|
|
4572
4572
|
const Q = b.slice(1, -1).match(/"((?:[^"\\]|\\.)*)"/g);
|
|
4573
|
-
return Q ? Q.map((
|
|
4573
|
+
return Q ? Q.map((le) => le.slice(1, -1).replace(/\\"/g, '"')) : [];
|
|
4574
4574
|
}
|
|
4575
4575
|
}
|
|
4576
4576
|
return [];
|
|
@@ -4592,7 +4592,7 @@ const wo = /* @__PURE__ */ me({
|
|
|
4592
4592
|
window.removeEventListener("storage", i);
|
|
4593
4593
|
});
|
|
4594
4594
|
}
|
|
4595
|
-
const ye =
|
|
4595
|
+
const ye = D(() => typeof H.value == "string");
|
|
4596
4596
|
ce(
|
|
4597
4597
|
H,
|
|
4598
4598
|
(i) => {
|
|
@@ -4606,45 +4606,45 @@ const wo = /* @__PURE__ */ me({
|
|
|
4606
4606
|
},
|
|
4607
4607
|
{ immediate: !0 }
|
|
4608
4608
|
);
|
|
4609
|
-
const Ce =
|
|
4609
|
+
const Ce = D(
|
|
4610
4610
|
() => Mt.value.filter((i) => Wt(i.value)).length
|
|
4611
|
-
), Fe =
|
|
4611
|
+
), Fe = D(() => rt.value && !$t.value ? Mt.value.filter((i) => !Wt(i.value)) : Mt.value);
|
|
4612
4612
|
function Me(i) {
|
|
4613
4613
|
const b = typeof i == "string" ? i : "";
|
|
4614
4614
|
if (!b.length) return { sanitized: "", hiddenCount: 0 };
|
|
4615
4615
|
if (typeof DOMParser > "u")
|
|
4616
4616
|
return { sanitized: b, hiddenCount: 0 };
|
|
4617
4617
|
const Q = new DOMParser().parseFromString(b, "text/html");
|
|
4618
|
-
let
|
|
4618
|
+
let le = 0;
|
|
4619
4619
|
return Q.querySelectorAll("dd").forEach((be) => {
|
|
4620
4620
|
var He;
|
|
4621
4621
|
const _e = ((He = be.textContent) == null ? void 0 : He.trim()) ?? "", ze = be.closest("div");
|
|
4622
4622
|
if (Wt(_e)) {
|
|
4623
|
-
|
|
4623
|
+
le += 1, ze ? ze.remove() : be.remove();
|
|
4624
4624
|
return;
|
|
4625
4625
|
}
|
|
4626
|
-
}), { sanitized: Q.body.innerHTML, hiddenCount:
|
|
4626
|
+
}), { sanitized: Q.body.innerHTML, hiddenCount: le };
|
|
4627
4627
|
}
|
|
4628
|
-
const pt =
|
|
4628
|
+
const pt = D(() => Me(V.value)), _t = D(() => V.value ? pt.value.hiddenCount : 0), ct = D(() => Ce.value + _t.value), At = D(
|
|
4629
4629
|
() => {
|
|
4630
4630
|
var i;
|
|
4631
4631
|
return rt.value && !$t.value && !!((i = V.value) != null && i.trim());
|
|
4632
4632
|
}
|
|
4633
|
-
), Qt =
|
|
4633
|
+
), Qt = D(
|
|
4634
4634
|
() => rt.value && ct.value > 0
|
|
4635
|
-
), zn =
|
|
4635
|
+
), zn = D(
|
|
4636
4636
|
() => $t.value ? "Приховати пусті значення" : "Показати пусті значення"
|
|
4637
|
-
), Fn =
|
|
4637
|
+
), Fn = D(() => $t.value ? xr : Ro);
|
|
4638
4638
|
function Rn() {
|
|
4639
4639
|
$t.value = !$t.value;
|
|
4640
4640
|
}
|
|
4641
|
-
const en =
|
|
4641
|
+
const en = D(() => {
|
|
4642
4642
|
const i = At.value ? pt.value.sanitized : V.value ?? "";
|
|
4643
4643
|
return Kt(i);
|
|
4644
|
-
}), ln =
|
|
4644
|
+
}), ln = D(() => en.value.filter((i) => i.type === "layer"));
|
|
4645
4645
|
function an(i) {
|
|
4646
|
-
return Array.isArray(i) ? i.map((b,
|
|
4647
|
-
const Q = it(typeof (b == null ? void 0 : b.url) == "string" ? b.url : ""),
|
|
4646
|
+
return Array.isArray(i) ? i.map((b, N) => {
|
|
4647
|
+
const Q = it(typeof (b == null ? void 0 : b.url) == "string" ? b.url : ""), le = typeof (b == null ? void 0 : b.geohub) == "string" && b.geohub.trim().length ? `/api-hub/tms/${b.geohub.trim()}/ua/{z}/{x}/{y}.png` : "", be = ((b == null ? void 0 : b.name) || (b == null ? void 0 : b.title) || (b == null ? void 0 : b.label) || `Шар ${N + 1}`).toString(), _e = (b == null ? void 0 : b.id) != null ? String(b.id) : st(`${be}-${N + 1}`), ze = (b == null ? void 0 : b.buttonText) || (b == null ? void 0 : b.button_text) || null, He = (b == null ? void 0 : b.description) || (b == null ? void 0 : b.subtitle) || null, Ke = Q || it(le) || "";
|
|
4648
4648
|
if (!Ke) return null;
|
|
4649
4649
|
const Be = {
|
|
4650
4650
|
id: _e,
|
|
@@ -4658,30 +4658,30 @@ const wo = /* @__PURE__ */ me({
|
|
|
4658
4658
|
return nt && (Be.bounds = nt), Be;
|
|
4659
4659
|
}).filter(Boolean) : [];
|
|
4660
4660
|
}
|
|
4661
|
-
const Ht =
|
|
4662
|
-
var Q,
|
|
4663
|
-
const i = l.card.value, b = r.current.value,
|
|
4661
|
+
const Ht = D(() => {
|
|
4662
|
+
var Q, le;
|
|
4663
|
+
const i = l.card.value, b = r.current.value, N = [
|
|
4664
4664
|
(Q = i == null ? void 0 : i.rows) == null ? void 0 : Q.layers,
|
|
4665
4665
|
i == null ? void 0 : i.layers,
|
|
4666
|
-
(
|
|
4666
|
+
(le = b == null ? void 0 : b.data) == null ? void 0 : le.layers,
|
|
4667
4667
|
b == null ? void 0 : b.layers
|
|
4668
4668
|
];
|
|
4669
|
-
for (const be of
|
|
4669
|
+
for (const be of N) {
|
|
4670
4670
|
const _e = an(be);
|
|
4671
4671
|
if (_e.length)
|
|
4672
4672
|
return _e;
|
|
4673
4673
|
}
|
|
4674
4674
|
return [];
|
|
4675
|
-
}), Zt =
|
|
4675
|
+
}), Zt = D(
|
|
4676
4676
|
() => en.value.length > 0 || Mt.value.length > 0 || Ht.value.length > 0
|
|
4677
|
-
), Gt =
|
|
4677
|
+
), Gt = D(() => !l.cardLoading.value && !!l.card.value);
|
|
4678
4678
|
function xn() {
|
|
4679
4679
|
const i = {}, b = Le.value;
|
|
4680
|
-
if (b && typeof b == "object" && Object.entries(b).forEach(([
|
|
4681
|
-
typeof Q == "string" && (i[
|
|
4680
|
+
if (b && typeof b == "object" && Object.entries(b).forEach(([N, Q]) => {
|
|
4681
|
+
typeof Q == "string" && (i[N] = Q);
|
|
4682
4682
|
}), f.value && (i.layer = f.value), !i.geohub) {
|
|
4683
|
-
const
|
|
4684
|
-
i.geohub =
|
|
4683
|
+
const N = typeof (b == null ? void 0 : b.geohub) == "string" ? b.geohub : null, Q = typeof (b == null ? void 0 : b.geohub_key) == "string" ? b.geohub_key : null, le = typeof (b == null ? void 0 : b.geohubId) == "string" ? b.geohubId : null;
|
|
4684
|
+
i.geohub = N || Q || le || i.layer || "";
|
|
4685
4685
|
}
|
|
4686
4686
|
return i;
|
|
4687
4687
|
}
|
|
@@ -4699,8 +4699,8 @@ const wo = /* @__PURE__ */ me({
|
|
|
4699
4699
|
const b = await fetch(`/api/gis-service/${encodeURIComponent(i)}`);
|
|
4700
4700
|
if (!b.ok)
|
|
4701
4701
|
return null;
|
|
4702
|
-
const
|
|
4703
|
-
return dt.set(i,
|
|
4702
|
+
const N = await b.json();
|
|
4703
|
+
return dt.set(i, N), Le.value = N, je.value = i, N;
|
|
4704
4704
|
} catch {
|
|
4705
4705
|
return null;
|
|
4706
4706
|
}
|
|
@@ -4708,25 +4708,25 @@ const wo = /* @__PURE__ */ me({
|
|
|
4708
4708
|
async function tn(i) {
|
|
4709
4709
|
if (!(i != null && i.id)) return;
|
|
4710
4710
|
await wn();
|
|
4711
|
-
const b = xn(),
|
|
4712
|
-
if (!
|
|
4711
|
+
const b = xn(), N = ln.value.find((ze) => ze.spec.id === i.id), Q = Ht.value.find((ze) => ze.id === i.id), le = (N == null ? void 0 : N.spec) || ft(Q) || ft(i), be = (N == null ? void 0 : N.spec.bounds) ?? (Q == null ? void 0 : Q.bounds);
|
|
4712
|
+
if (!le || O(le.id, A.value))
|
|
4713
4713
|
return;
|
|
4714
4714
|
const _e = A.value || void 0;
|
|
4715
|
-
X.value = _e ?? null, G(
|
|
4715
|
+
X.value = _e ?? null, G(le, b, _e), g({
|
|
4716
4716
|
action: "activate",
|
|
4717
4717
|
owner: _e,
|
|
4718
|
-
spec:
|
|
4718
|
+
spec: le,
|
|
4719
4719
|
context: b
|
|
4720
4720
|
}), _n(be);
|
|
4721
4721
|
}
|
|
4722
4722
|
async function _n(i) {
|
|
4723
4723
|
var be;
|
|
4724
4724
|
if (!(i != null && i.length)) return;
|
|
4725
|
-
const [b,
|
|
4726
|
-
[b,
|
|
4725
|
+
const [b, N, Q, le] = i;
|
|
4726
|
+
[b, N, Q, le].every((_e) => Number.isFinite(_e)) && typeof oe.fitBounds == "function" && (await ((be = oe.ready) == null ? void 0 : be.call(oe)), oe.fitBounds(
|
|
4727
4727
|
[
|
|
4728
|
-
[b,
|
|
4729
|
-
[Q,
|
|
4728
|
+
[b, N],
|
|
4729
|
+
[Q, le]
|
|
4730
4730
|
],
|
|
4731
4731
|
{ padding: 48, maxZoom: 18 }
|
|
4732
4732
|
));
|
|
@@ -4744,8 +4744,8 @@ const wo = /* @__PURE__ */ me({
|
|
|
4744
4744
|
return O(i, he());
|
|
4745
4745
|
}
|
|
4746
4746
|
function Z(i, b) {
|
|
4747
|
-
const
|
|
4748
|
-
!!(
|
|
4747
|
+
const N = b.target;
|
|
4748
|
+
!!(N != null && N.checked) ? tn(i) : kn(i.id);
|
|
4749
4749
|
}
|
|
4750
4750
|
function he() {
|
|
4751
4751
|
return X.value || A.value || null;
|
|
@@ -4758,10 +4758,10 @@ const wo = /* @__PURE__ */ me({
|
|
|
4758
4758
|
);
|
|
4759
4759
|
const {
|
|
4760
4760
|
next: ke,
|
|
4761
|
-
prev:
|
|
4761
|
+
prev: ae,
|
|
4762
4762
|
count: Te,
|
|
4763
4763
|
index: Se
|
|
4764
|
-
} = r,
|
|
4764
|
+
} = r, ie = D(() => l.count.value), Pe = D(() => l.index.value), Re = D(() => x.value ? !1 : $.value ? v.value.length > 1 : ie.value > 1), Ae = D(() => x.value ? Te.value : $.value ? v.value.length : ie.value), Ne = D(() => x.value ? Se.value : $.value ? h.value : Pe.value), lt = () => {
|
|
4765
4765
|
if ($.value) {
|
|
4766
4766
|
if (h.value >= v.value.length - 1) return;
|
|
4767
4767
|
o(h.value + 1);
|
|
@@ -4811,13 +4811,13 @@ const wo = /* @__PURE__ */ me({
|
|
|
4811
4811
|
}
|
|
4812
4812
|
function Ve() {
|
|
4813
4813
|
re.value.length && (re.value.forEach((i, b) => {
|
|
4814
|
-
var
|
|
4815
|
-
(
|
|
4814
|
+
var N;
|
|
4815
|
+
(N = i == null ? void 0 : i.remove) == null || N.call(i, b === 0);
|
|
4816
4816
|
}), re.value = []);
|
|
4817
4817
|
}
|
|
4818
4818
|
function qo(i) {
|
|
4819
|
-
var
|
|
4820
|
-
const b = (i == null ? void 0 : i.type) || ((
|
|
4819
|
+
var N, Q, le;
|
|
4820
|
+
const b = (i == null ? void 0 : i.type) || ((le = (Q = (N = i == null ? void 0 : i.features) == null ? void 0 : N[0]) == null ? void 0 : Q.geometry) == null ? void 0 : le.type) || "";
|
|
4821
4821
|
return b.includes("Polygon") ? [
|
|
4822
4822
|
{
|
|
4823
4823
|
type: "fill",
|
|
@@ -4883,10 +4883,10 @@ const wo = /* @__PURE__ */ me({
|
|
|
4883
4883
|
return u();
|
|
4884
4884
|
}
|
|
4885
4885
|
function Wo(i) {
|
|
4886
|
-
var
|
|
4886
|
+
var le, be;
|
|
4887
4887
|
if (!i) return null;
|
|
4888
|
-
const b = (i == null ? void 0 : i.source) ?? ((
|
|
4889
|
-
return !b ||
|
|
4888
|
+
const b = (i == null ? void 0 : i.source) ?? ((le = i == null ? void 0 : i.layer) == null ? void 0 : le.id), N = ((be = i == null ? void 0 : i.properties) == null ? void 0 : be.id) ?? (i == null ? void 0 : i.id);
|
|
4889
|
+
return !b || N === void 0 || N === null ? null : `${b},${N}`.trim() || null;
|
|
4890
4890
|
}
|
|
4891
4891
|
function $n(i, b) {
|
|
4892
4892
|
if (i) {
|
|
@@ -4895,41 +4895,41 @@ const wo = /* @__PURE__ */ me({
|
|
|
4895
4895
|
b.push([i[0], i[1]]);
|
|
4896
4896
|
return;
|
|
4897
4897
|
}
|
|
4898
|
-
i.forEach((
|
|
4898
|
+
i.forEach((N) => $n(N, b));
|
|
4899
4899
|
return;
|
|
4900
4900
|
}
|
|
4901
|
-
typeof i == "object" && (Array.isArray(i.coordinates) && $n(i.coordinates, b), Array.isArray(i.features) && i.features.forEach((
|
|
4901
|
+
typeof i == "object" && (Array.isArray(i.coordinates) && $n(i.coordinates, b), Array.isArray(i.features) && i.features.forEach((N) => $n(N == null ? void 0 : N.geometry, b)));
|
|
4902
4902
|
}
|
|
4903
4903
|
}
|
|
4904
4904
|
function Ho(i) {
|
|
4905
4905
|
var ze, He;
|
|
4906
4906
|
if (!i) return null;
|
|
4907
|
-
const b = i.type === "FeatureCollection" ? (He = (ze = i.features) == null ? void 0 : ze[0]) == null ? void 0 : He.geometry : i.type === "Feature" ? i.geometry : i,
|
|
4908
|
-
if ($n(b,
|
|
4909
|
-
let Q =
|
|
4910
|
-
return
|
|
4911
|
-
Ke < Q && (Q = Ke), Ke >
|
|
4907
|
+
const b = i.type === "FeatureCollection" ? (He = (ze = i.features) == null ? void 0 : ze[0]) == null ? void 0 : He.geometry : i.type === "Feature" ? i.geometry : i, N = [];
|
|
4908
|
+
if ($n(b, N), !N.length) return null;
|
|
4909
|
+
let Q = N[0][0], le = N[0][0], be = N[0][1], _e = N[0][1];
|
|
4910
|
+
return N.forEach(([Ke, Be]) => {
|
|
4911
|
+
Ke < Q && (Q = Ke), Ke > le && (le = Ke), Be < be && (be = Be), Be > _e && (_e = Be);
|
|
4912
4912
|
}), [
|
|
4913
|
-
(Q +
|
|
4913
|
+
(Q + le) / 2,
|
|
4914
4914
|
(be + _e) / 2
|
|
4915
4915
|
];
|
|
4916
4916
|
}
|
|
4917
4917
|
async function Zo(i, b) {
|
|
4918
4918
|
var be;
|
|
4919
|
-
const
|
|
4920
|
-
if (!
|
|
4919
|
+
const N = no();
|
|
4920
|
+
if (!N || N.startsWith("external:")) return;
|
|
4921
4921
|
const Q = Wo(i);
|
|
4922
|
-
if (!Q || Q !==
|
|
4923
|
-
const
|
|
4924
|
-
|
|
4922
|
+
if (!Q || Q !== N || jn === N) return;
|
|
4923
|
+
const le = Ho(b);
|
|
4924
|
+
le && (await ((be = oe.ready) == null ? void 0 : be.call(oe)), oe.flyTo({ center: le, zoom: Ji }), jn = N);
|
|
4925
4925
|
}
|
|
4926
4926
|
function oo(i) {
|
|
4927
|
-
var
|
|
4927
|
+
var le;
|
|
4928
4928
|
if (!i) {
|
|
4929
4929
|
Ve();
|
|
4930
4930
|
return;
|
|
4931
4931
|
}
|
|
4932
|
-
const b = (
|
|
4932
|
+
const b = (le = oe.map) == null ? void 0 : le.value, N = {
|
|
4933
4933
|
type: "FeatureCollection",
|
|
4934
4934
|
features: [{ type: "Feature", geometry: i, properties: {} }]
|
|
4935
4935
|
};
|
|
@@ -4938,7 +4938,7 @@ const wo = /* @__PURE__ */ me({
|
|
|
4938
4938
|
if (re.value = Q.map((be, _e) => Oe(
|
|
4939
4939
|
`feature-card-highlight${_e || ""}`,
|
|
4940
4940
|
{
|
|
4941
|
-
..._e === 0 ? { source: { type: "geojson", data:
|
|
4941
|
+
..._e === 0 ? { source: { type: "geojson", data: N } } : {},
|
|
4942
4942
|
sourceId: "feature-card-highlight",
|
|
4943
4943
|
layer: {
|
|
4944
4944
|
id: `feature-card-highlight${_e || ""}`,
|
|
@@ -4973,24 +4973,24 @@ const wo = /* @__PURE__ */ me({
|
|
|
4973
4973
|
}
|
|
4974
4974
|
}
|
|
4975
4975
|
function Go(i) {
|
|
4976
|
-
var Q,
|
|
4977
|
-
const b = (i == null ? void 0 : i.source) || ((Q = i == null ? void 0 : i.layer) == null ? void 0 : Q.id) || "unknown",
|
|
4978
|
-
return `${b}:${
|
|
4976
|
+
var Q, le;
|
|
4977
|
+
const b = (i == null ? void 0 : i.source) || ((Q = i == null ? void 0 : i.layer) == null ? void 0 : Q.id) || "unknown", N = ((le = i == null ? void 0 : i.properties) == null ? void 0 : le.id) ?? (i == null ? void 0 : i.id) ?? "unknown";
|
|
4978
|
+
return `${b}:${N}`;
|
|
4979
4979
|
}
|
|
4980
4980
|
async function Yo(i) {
|
|
4981
4981
|
var be, _e, ze, He, Ke;
|
|
4982
4982
|
if (!i) return null;
|
|
4983
4983
|
const b = Ct(i);
|
|
4984
4984
|
if (b) return b;
|
|
4985
|
-
const
|
|
4986
|
-
if (!
|
|
4985
|
+
const N = ((be = i == null ? void 0 : i.properties) == null ? void 0 : be.id) ?? (i == null ? void 0 : i.id);
|
|
4986
|
+
if (!N) return null;
|
|
4987
4987
|
const Q = Go(i);
|
|
4988
4988
|
if (de.has(Q))
|
|
4989
4989
|
return de.get(Q);
|
|
4990
|
-
const
|
|
4991
|
-
for (const Be of
|
|
4990
|
+
const le = [$e.value, i == null ? void 0 : i.source, (_e = i == null ? void 0 : i.layer) == null ? void 0 : _e.id].map((Be) => typeof Be == "string" ? Be.trim() : "").filter(Boolean);
|
|
4991
|
+
for (const Be of le)
|
|
4992
4992
|
try {
|
|
4993
|
-
const nt = await fetch(`/api/map-features/${encodeURIComponent(Be)}/${encodeURIComponent(String(
|
|
4993
|
+
const nt = await fetch(`/api/map-features/${encodeURIComponent(Be)}/${encodeURIComponent(String(N))}`);
|
|
4994
4994
|
if (!nt.ok)
|
|
4995
4995
|
continue;
|
|
4996
4996
|
const gt = await nt.json(), Ot = ((ze = gt == null ? void 0 : gt.data) == null ? void 0 : ze.geom) || ((He = gt == null ? void 0 : gt.data) == null ? void 0 : He.geometry) || ((Ke = gt == null ? void 0 : gt.data) == null ? void 0 : Ke.geom_4326) || null, cn = typeof Ot == "string" ? JSON.parse(Ot) : Ot;
|
|
@@ -5014,20 +5014,20 @@ const wo = /* @__PURE__ */ me({
|
|
|
5014
5014
|
Ve();
|
|
5015
5015
|
return;
|
|
5016
5016
|
}
|
|
5017
|
-
const
|
|
5017
|
+
const N = await Yo(i);
|
|
5018
5018
|
if (b === ne.value) {
|
|
5019
|
-
if (!
|
|
5019
|
+
if (!N) {
|
|
5020
5020
|
Ve();
|
|
5021
5021
|
return;
|
|
5022
5022
|
}
|
|
5023
|
-
oo(
|
|
5023
|
+
oo(N), Zo(i, N);
|
|
5024
5024
|
}
|
|
5025
5025
|
}
|
|
5026
5026
|
async function Xo(i) {
|
|
5027
|
-
var
|
|
5027
|
+
var N, Q, le;
|
|
5028
5028
|
const b = _(i);
|
|
5029
5029
|
if (!b) {
|
|
5030
|
-
(
|
|
5030
|
+
(N = u()) != null && N.startsWith("external:") && (y(), Ve());
|
|
5031
5031
|
return;
|
|
5032
5032
|
}
|
|
5033
5033
|
if (((Q = E.value) == null ? void 0 : Q.infoToken) === b.token) {
|
|
@@ -5038,7 +5038,7 @@ const wo = /* @__PURE__ */ me({
|
|
|
5038
5038
|
const be = await fetch(`/api/map-format?layer=${encodeURIComponent(b.layer)}&id=${encodeURIComponent(b.id)}`);
|
|
5039
5039
|
if (!be.ok)
|
|
5040
5040
|
throw new Error(`Failed (${be.status})`);
|
|
5041
|
-
const _e = await be.json(), ze = typeof (_e == null ? void 0 : _e.html) == "string" ? _e.html : null, He = a(((
|
|
5041
|
+
const _e = await be.json(), ze = typeof (_e == null ? void 0 : _e.html) == "string" ? _e.html : null, He = a(((le = _e == null ? void 0 : _e.data) == null ? void 0 : le.geom) ?? (_e == null ? void 0 : _e.geom) ?? null);
|
|
5042
5042
|
if (!ze && !He) {
|
|
5043
5043
|
y(), Ve();
|
|
5044
5044
|
return;
|
|
@@ -5120,7 +5120,7 @@ const wo = /* @__PURE__ */ me({
|
|
|
5120
5120
|
x.value && se(Te) > 1 ? (s(), m("div", $i, [
|
|
5121
5121
|
e("button", {
|
|
5122
5122
|
onClick: b[0] || (b[0] = //@ts-ignore
|
|
5123
|
-
(...
|
|
5123
|
+
(...N) => se(ae) && se(ae)(...N)),
|
|
5124
5124
|
disabled: se(Se) === 0,
|
|
5125
5125
|
class: "border p-1 rounded text-xs disabled:opacity-40"
|
|
5126
5126
|
}, [
|
|
@@ -5128,7 +5128,7 @@ const wo = /* @__PURE__ */ me({
|
|
|
5128
5128
|
], 8, Ci),
|
|
5129
5129
|
e("button", {
|
|
5130
5130
|
onClick: b[1] || (b[1] = //@ts-ignore
|
|
5131
|
-
(...
|
|
5131
|
+
(...N) => se(ke) && se(ke)(...N)),
|
|
5132
5132
|
disabled: se(Se) === se(Te) - 1,
|
|
5133
5133
|
class: "border p-1 rounded text-xs disabled:opacity-40"
|
|
5134
5134
|
}, [
|
|
@@ -5157,46 +5157,46 @@ const wo = /* @__PURE__ */ me({
|
|
|
5157
5157
|
}, " ✕ ")
|
|
5158
5158
|
]),
|
|
5159
5159
|
e("div", Ai, [
|
|
5160
|
-
S.value ? (s(), m("div", Ti, " Завантаження даних… ")) :
|
|
5160
|
+
S.value ? (s(), m("div", Ti, " Завантаження даних… ")) : I.value ? (s(), m("div", Pi, Y(I.value), 1)) : (s(), m(te, { key: 2 }, [
|
|
5161
5161
|
Mt.value.length ? (s(), m("div", zi, [
|
|
5162
5162
|
e("dl", Fi, [
|
|
5163
|
-
(s(!0), m(te, null, ve(Fe.value, (
|
|
5164
|
-
key:
|
|
5163
|
+
(s(!0), m(te, null, ve(Fe.value, (N) => (s(), m("div", {
|
|
5164
|
+
key: N.key,
|
|
5165
5165
|
class: "grid grid-cols-1 gap-1 py-3 sm:grid-cols-10 sm:gap-4 even:bg-gray-50 text-[12px]"
|
|
5166
5166
|
}, [
|
|
5167
|
-
e("dt", Ri, Y(
|
|
5167
|
+
e("dt", Ri, Y(N.label), 1),
|
|
5168
5168
|
e("dd", {
|
|
5169
|
-
class: Ee(["text-gray-700 sm:col-span-6 font-normal whitespace-pre-wrap",
|
|
5169
|
+
class: Ee(["text-gray-700 sm:col-span-6 font-normal whitespace-pre-wrap", N.format === "badge" ? "font-semibold text-yellow-800" : ""])
|
|
5170
5170
|
}, [
|
|
5171
|
-
|
|
5172
|
-
(s(!0), m(te, null, ve(sn(
|
|
5173
|
-
key:
|
|
5171
|
+
N.format === "tags" ? (s(), m("div", ji, [
|
|
5172
|
+
(s(!0), m(te, null, ve(sn(N.value), (Q, le) => (s(), m("span", {
|
|
5173
|
+
key: le,
|
|
5174
5174
|
class: "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold text-foreground"
|
|
5175
5175
|
}, Y(Q), 1))), 128))
|
|
5176
5176
|
])) : (s(), m(te, { key: 1 }, [
|
|
5177
|
-
xe(Y(
|
|
5177
|
+
xe(Y(N.value), 1)
|
|
5178
5178
|
], 64))
|
|
5179
5179
|
], 2)
|
|
5180
5180
|
]))), 128))
|
|
5181
5181
|
])
|
|
5182
5182
|
])) : en.value.length ? (s(), m("div", Ii, [
|
|
5183
|
-
(s(!0), m(te, null, ve(en.value, (
|
|
5184
|
-
|
|
5183
|
+
(s(!0), m(te, null, ve(en.value, (N, Q) => (s(), m(te, { key: Q }, [
|
|
5184
|
+
N.type === "html" ? (s(), m("div", {
|
|
5185
5185
|
key: 0,
|
|
5186
|
-
innerHTML:
|
|
5186
|
+
innerHTML: N.content
|
|
5187
5187
|
}, null, 8, Di)) : (s(), pe(wo, {
|
|
5188
5188
|
key: 1,
|
|
5189
|
-
title:
|
|
5190
|
-
url:
|
|
5191
|
-
id:
|
|
5192
|
-
"button-text":
|
|
5189
|
+
title: N.componentProps.title,
|
|
5190
|
+
url: N.componentProps.url,
|
|
5191
|
+
id: N.componentProps.id,
|
|
5192
|
+
"button-text": N.componentProps.buttonText,
|
|
5193
5193
|
onActivate: tn
|
|
5194
5194
|
}, Ao({ _: 2 }, [
|
|
5195
|
-
|
|
5195
|
+
N.slotText ? {
|
|
5196
5196
|
name: "default",
|
|
5197
5197
|
fn: Lt(() => [
|
|
5198
5198
|
e("span", {
|
|
5199
|
-
innerHTML:
|
|
5199
|
+
innerHTML: N.slotText
|
|
5200
5200
|
}, null, 8, Ni)
|
|
5201
5201
|
]),
|
|
5202
5202
|
key: "0"
|
|
@@ -5205,12 +5205,12 @@ const wo = /* @__PURE__ */ me({
|
|
|
5205
5205
|
], 64))), 128))
|
|
5206
5206
|
])) : K("", !0),
|
|
5207
5207
|
ln.value.length ? (s(), m("div", Oi, [
|
|
5208
|
-
(s(!0), m(te, null, ve(ln.value, (
|
|
5209
|
-
key:
|
|
5210
|
-
title:
|
|
5211
|
-
url:
|
|
5212
|
-
id:
|
|
5213
|
-
"button-text":
|
|
5208
|
+
(s(!0), m(te, null, ve(ln.value, (N) => (s(), pe(wo, {
|
|
5209
|
+
key: N.spec.id,
|
|
5210
|
+
title: N.componentProps.title,
|
|
5211
|
+
url: N.componentProps.url,
|
|
5212
|
+
id: N.spec.id,
|
|
5213
|
+
"button-text": N.componentProps.buttonText,
|
|
5214
5214
|
onActivate: tn
|
|
5215
5215
|
}, null, 8, ["title", "url", "id", "button-text"]))), 128))
|
|
5216
5216
|
])) : K("", !0),
|
|
@@ -5227,16 +5227,16 @@ const wo = /* @__PURE__ */ me({
|
|
|
5227
5227
|
Ht.value.length ? (s(), m("div", Vi, [
|
|
5228
5228
|
b[3] || (b[3] = e("p", { class: "text-xs font-semibold uppercase tracking-wide text-slate-500" }, "Шари", -1)),
|
|
5229
5229
|
e("div", qi, [
|
|
5230
|
-
(s(!0), m(te, null, ve(Ht.value, (
|
|
5231
|
-
key:
|
|
5230
|
+
(s(!0), m(te, null, ve(Ht.value, (N) => (s(), m("div", {
|
|
5231
|
+
key: N.id,
|
|
5232
5232
|
class: "hover:bg-gray-100 rounded-lg flex items-center justify-between py-[8px] px-[8px] gap-3"
|
|
5233
5233
|
}, [
|
|
5234
5234
|
e("label", Wi, [
|
|
5235
5235
|
e("input", {
|
|
5236
5236
|
type: "checkbox",
|
|
5237
5237
|
class: "peer hidden",
|
|
5238
|
-
checked: z(
|
|
5239
|
-
onChange: (Q) => Z(
|
|
5238
|
+
checked: z(N.id),
|
|
5239
|
+
onChange: (Q) => Z(N, Q)
|
|
5240
5240
|
}, null, 40, Hi),
|
|
5241
5241
|
b[2] || (b[2] = e("div", { class: "w-4 h-4 rounded border border-blue-800 flex items-center justify-center peer-checked:bg-blue-600 peer-checked:border-blue-600" }, [
|
|
5242
5242
|
e("svg", {
|
|
@@ -5255,9 +5255,9 @@ const wo = /* @__PURE__ */ me({
|
|
|
5255
5255
|
})
|
|
5256
5256
|
])
|
|
5257
5257
|
], -1)),
|
|
5258
|
-
e("span", Zi, Y(
|
|
5258
|
+
e("span", Zi, Y(N.title), 1)
|
|
5259
5259
|
]),
|
|
5260
|
-
|
|
5260
|
+
N.subtitle ? (s(), m("div", Gi, Y(N.subtitle), 1)) : K("", !0)
|
|
5261
5261
|
]))), 128))
|
|
5262
5262
|
])
|
|
5263
5263
|
])) : K("", !0),
|
|
@@ -5269,7 +5269,7 @@ const wo = /* @__PURE__ */ me({
|
|
|
5269
5269
|
_: 1
|
|
5270
5270
|
}));
|
|
5271
5271
|
}
|
|
5272
|
-
}), Qi = /* @__PURE__ */ We(Ki, [["__scopeId", "data-v-
|
|
5272
|
+
}), Qi = /* @__PURE__ */ We(Ki, [["__scopeId", "data-v-26030550"]]), eu = {
|
|
5273
5273
|
key: 0,
|
|
5274
5274
|
class: "legend-widget flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative widget",
|
|
5275
5275
|
style: { width: "100%" }
|
|
@@ -5367,7 +5367,7 @@ const wo = /* @__PURE__ */ me({
|
|
|
5367
5367
|
])) : K("", !0)
|
|
5368
5368
|
]));
|
|
5369
5369
|
}
|
|
5370
|
-
}), Co = /* @__PURE__ */ We(ru, [["__scopeId", "data-v-
|
|
5370
|
+
}), Co = /* @__PURE__ */ We(ru, [["__scopeId", "data-v-d244723f"]]), Tn = F({}), Pn = F([]);
|
|
5371
5371
|
function su(n) {
|
|
5372
5372
|
const t = {};
|
|
5373
5373
|
n.forEach((l) => {
|
|
@@ -5383,7 +5383,7 @@ function au() {
|
|
|
5383
5383
|
function iu(n) {
|
|
5384
5384
|
return n.legend ? (Array.isArray(n.legend) ? n.legend : [n.legend]).filter(Boolean) : [];
|
|
5385
5385
|
}
|
|
5386
|
-
const Bo =
|
|
5386
|
+
const Bo = D(() => {
|
|
5387
5387
|
const n = [];
|
|
5388
5388
|
return Pn.value.forEach((t) => {
|
|
5389
5389
|
const l = Tn.value[t];
|
|
@@ -5437,16 +5437,16 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
5437
5437
|
top: 0,
|
|
5438
5438
|
left: 0,
|
|
5439
5439
|
layerId: null
|
|
5440
|
-
}), d = new Intl.Collator("uk", { sensitivity: "base" }), E =
|
|
5440
|
+
}), d = new Intl.Collator("uk", { sensitivity: "base" }), E = D(() => {
|
|
5441
5441
|
const o = l.search.trim().toLowerCase();
|
|
5442
5442
|
return l.catalog.groups.map((w) => {
|
|
5443
5443
|
const L = w.layers.filter((P) => {
|
|
5444
|
-
const
|
|
5445
|
-
return
|
|
5446
|
-
}).sort((P,
|
|
5444
|
+
const j = _(P);
|
|
5445
|
+
return j ? o ? j.toLowerCase().includes(o) : !0 : !1;
|
|
5446
|
+
}).sort((P, j) => d.compare(_(P), _(j)));
|
|
5447
5447
|
return { ...w, layers: L };
|
|
5448
5448
|
}).filter((w) => w.layers.length > 0).sort((w, L) => d.compare(w.name, L.name));
|
|
5449
|
-
}), $ =
|
|
5449
|
+
}), $ = D({
|
|
5450
5450
|
get: () => l.search,
|
|
5451
5451
|
set: (o) => r("update:search", o)
|
|
5452
5452
|
});
|
|
@@ -5463,8 +5463,8 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
5463
5463
|
}
|
|
5464
5464
|
const L = o.currentTarget;
|
|
5465
5465
|
if (!L) return;
|
|
5466
|
-
const P = L.getBoundingClientRect(),
|
|
5467
|
-
h.left = P.left + P.width / 2 +
|
|
5466
|
+
const P = L.getBoundingClientRect(), j = typeof window < "u" ? window.scrollX : 0, M = typeof window < "u" ? window.scrollY : 0;
|
|
5467
|
+
h.left = P.left + P.width / 2 + j, h.top = P.bottom + 8 + M, h.layerId = w, h.visible = !0;
|
|
5468
5468
|
}
|
|
5469
5469
|
function a() {
|
|
5470
5470
|
h.visible = !1, h.layerId = null;
|
|
@@ -5562,7 +5562,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
5562
5562
|
type: "checkbox",
|
|
5563
5563
|
class: "peer hidden",
|
|
5564
5564
|
checked: n.selected.includes(P.id),
|
|
5565
|
-
onChange: (
|
|
5565
|
+
onChange: (j) => o.$emit("toggle-layer", P.id, j.target.checked, P)
|
|
5566
5566
|
}, null, 40, bu),
|
|
5567
5567
|
w[3] || (w[3] = e("div", { class: "w-4 h-4 rounded border border-blue-800 flex items-center justify-center peer-checked:bg-blue-600 peer-checked:border-blue-600 shrink-0" }, [
|
|
5568
5568
|
e("svg", {
|
|
@@ -5588,9 +5588,9 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
5588
5588
|
count: P.filters.length,
|
|
5589
5589
|
layer: P,
|
|
5590
5590
|
disabled: !n.selected.includes(P.id),
|
|
5591
|
-
onMouseenter: (
|
|
5591
|
+
onMouseenter: (j) => y(j, P.id),
|
|
5592
5592
|
onMouseleave: a,
|
|
5593
|
-
onFocus: (
|
|
5593
|
+
onFocus: (j) => y(j, P.id),
|
|
5594
5594
|
onBlur: a
|
|
5595
5595
|
}, null, 8, ["count", "layer", "disabled", "onMouseenter", "onFocus"])) : K("", !0),
|
|
5596
5596
|
ge(to, {
|
|
@@ -5618,7 +5618,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
5618
5618
|
]))
|
|
5619
5619
|
], 512));
|
|
5620
5620
|
}
|
|
5621
|
-
}), ku = /* @__PURE__ */ We(_u, [["__scopeId", "data-v-
|
|
5621
|
+
}), ku = /* @__PURE__ */ We(_u, [["__scopeId", "data-v-1668f6fa"]]), $u = { class: "flex flex-col gap-0" }, Cu = { class: "text-xs text-slate-600 font-semibold" }, Lu = /* @__PURE__ */ me({
|
|
5622
5622
|
__name: "MapLayerPopover",
|
|
5623
5623
|
props: {
|
|
5624
5624
|
items: {}
|
|
@@ -5631,7 +5631,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
5631
5631
|
transform: "translateX(-50%)"
|
|
5632
5632
|
}), k = F(null), v = F(null);
|
|
5633
5633
|
let h = null;
|
|
5634
|
-
const d =
|
|
5634
|
+
const d = D(() => {
|
|
5635
5635
|
if (!r.open) return { display: "none" };
|
|
5636
5636
|
const _ = Math.min(460, window.innerWidth - 24);
|
|
5637
5637
|
return {
|
|
@@ -5661,9 +5661,9 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
5661
5661
|
}
|
|
5662
5662
|
function $() {
|
|
5663
5663
|
if (!r.open || !k.value || !v.value) return;
|
|
5664
|
-
const _ = k.value.getBoundingClientRect(), c = 12, o = window.scrollX + c, w = window.scrollX + window.innerWidth - c, L = window.scrollY + c, P = window.scrollY + window.innerHeight - c,
|
|
5665
|
-
let x = _.left + window.scrollX + (_.width -
|
|
5666
|
-
x < o && (x = o), x +
|
|
5664
|
+
const _ = k.value.getBoundingClientRect(), c = 12, o = window.scrollX + c, w = window.scrollX + window.innerWidth - c, L = window.scrollY + c, P = window.scrollY + window.innerHeight - c, j = v.value.offsetWidth || Math.min(460, window.innerWidth - 24), M = v.value.offsetHeight || 0;
|
|
5665
|
+
let x = _.left + window.scrollX + (_.width - j) / 2;
|
|
5666
|
+
x < o && (x = o), x + j > w && (x = Math.max(o, w - j)), r.left = x;
|
|
5667
5667
|
let C = _.bottom + window.scrollY + c;
|
|
5668
5668
|
C + M > P && (C = _.top + window.scrollY - M - c, C < L && (C = Math.max(L, P - M))), C < L && (C = L), C + M > P && (C = Math.max(L, P - M)), r.top = C, r.transform = "none";
|
|
5669
5669
|
}
|
|
@@ -5795,7 +5795,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
5795
5795
|
const O = Oe(R);
|
|
5796
5796
|
O && O.remove(), r("remove", R), $.value = null;
|
|
5797
5797
|
}
|
|
5798
|
-
function
|
|
5798
|
+
function j(R) {
|
|
5799
5799
|
const O = R.target, g = v.value, f = $.value;
|
|
5800
5800
|
if (g) {
|
|
5801
5801
|
const A = h.value, U = d.get(g);
|
|
@@ -5812,9 +5812,9 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
5812
5812
|
v.value && _(), $.value && L($.value);
|
|
5813
5813
|
}
|
|
5814
5814
|
De(() => {
|
|
5815
|
-
document.addEventListener("click",
|
|
5815
|
+
document.addEventListener("click", j), window.addEventListener("resize", M), window.addEventListener("scroll", M, !0);
|
|
5816
5816
|
}), Ue(() => {
|
|
5817
|
-
document.removeEventListener("click",
|
|
5817
|
+
document.removeEventListener("click", j), window.removeEventListener("resize", M), window.removeEventListener("scroll", M, !0);
|
|
5818
5818
|
});
|
|
5819
5819
|
const { map: x } = at();
|
|
5820
5820
|
function C(R) {
|
|
@@ -5835,23 +5835,23 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
5835
5835
|
}
|
|
5836
5836
|
(X = O == null ? void 0 : O.getSource) != null && X.call(O) && ($.value = null);
|
|
5837
5837
|
}
|
|
5838
|
-
const S = F(null),
|
|
5838
|
+
const S = F(null), I = F(null);
|
|
5839
5839
|
function V(R, O) {
|
|
5840
|
-
S.value = O,
|
|
5840
|
+
S.value = O, I.value = O, R.dataTransfer && (R.dataTransfer.effectAllowed = "move", R.dataTransfer.setData("text/plain", String(O)));
|
|
5841
5841
|
}
|
|
5842
5842
|
function oe(R) {
|
|
5843
|
-
|
|
5843
|
+
I.value = R;
|
|
5844
5844
|
}
|
|
5845
5845
|
function ue(R, O) {
|
|
5846
5846
|
if (R.preventDefault(), S.value === null || S.value === O) {
|
|
5847
|
-
S.value = null,
|
|
5847
|
+
S.value = null, I.value = null;
|
|
5848
5848
|
return;
|
|
5849
5849
|
}
|
|
5850
5850
|
const f = [...l.selected], [A] = f.splice(S.value, 1);
|
|
5851
|
-
f.splice(O, 0, A), r("reorder", f), S.value = null,
|
|
5851
|
+
f.splice(O, 0, A), r("reorder", f), S.value = null, I.value = null;
|
|
5852
5852
|
}
|
|
5853
5853
|
function J() {
|
|
5854
|
-
S.value = null,
|
|
5854
|
+
S.value = null, I.value = null;
|
|
5855
5855
|
}
|
|
5856
5856
|
function ee(R) {
|
|
5857
5857
|
return R == null || R === "" ? null : String(R);
|
|
@@ -5906,7 +5906,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
5906
5906
|
key: g,
|
|
5907
5907
|
class: Ee(["selected-tab__item", {
|
|
5908
5908
|
"selected-tab__item--dragging": S.value === f,
|
|
5909
|
-
"selected-tab__item--over":
|
|
5909
|
+
"selected-tab__item--over": I.value === f
|
|
5910
5910
|
}]),
|
|
5911
5911
|
draggable: "true",
|
|
5912
5912
|
onDragstart: (U) => V(U, f),
|
|
@@ -6090,7 +6090,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
6090
6090
|
]))
|
|
6091
6091
|
]));
|
|
6092
6092
|
}
|
|
6093
|
-
}), Nu = /* @__PURE__ */ We(Du, [["__scopeId", "data-v-
|
|
6093
|
+
}), Nu = /* @__PURE__ */ We(Du, [["__scopeId", "data-v-9c33e350"]]), Ou = { class: "filter-tab" }, Bu = {
|
|
6094
6094
|
key: 0,
|
|
6095
6095
|
class: "filter-tab__header"
|
|
6096
6096
|
}, Uu = { class: "filter-tab__title" }, Vu = {
|
|
@@ -6107,10 +6107,10 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
6107
6107
|
},
|
|
6108
6108
|
emits: ["change"],
|
|
6109
6109
|
setup(n, { emit: t }) {
|
|
6110
|
-
const l = Ze(() => import("@opengis/filter")), r = n, k = t, v =
|
|
6110
|
+
const l = Ze(() => import("@opengis/filter")), r = n, k = t, v = D(() => {
|
|
6111
6111
|
var E;
|
|
6112
6112
|
return ((E = r.layer) == null ? void 0 : E.filters) ?? [];
|
|
6113
|
-
}), h =
|
|
6113
|
+
}), h = D(() => v.value.length > 0);
|
|
6114
6114
|
function d(E) {
|
|
6115
6115
|
k("change", E.data);
|
|
6116
6116
|
}
|
|
@@ -6137,7 +6137,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
6137
6137
|
])]))
|
|
6138
6138
|
]));
|
|
6139
6139
|
}
|
|
6140
|
-
}), Zu = /* @__PURE__ */ We(Hu, [["__scopeId", "data-v-
|
|
6140
|
+
}), Zu = /* @__PURE__ */ We(Hu, [["__scopeId", "data-v-b9cd2910"]]), Gu = { class: "flex items-center justify-between mb-1" }, Yu = { class: "flex items-center gap-2" }, Xu = { class: "text-lg font-semibold text-gray-800" }, Ju = { key: 0 }, Ku = {
|
|
6141
6141
|
key: 1,
|
|
6142
6142
|
class: "block text-sm font-normal text-gray-500"
|
|
6143
6143
|
}, Qu = { class: "flex items-center gap-2" }, ec = { class: "flex mb-4 border-b border-gray-200" }, tc = { class: "map-catalog-widget__body" }, nc = /* @__PURE__ */ me({
|
|
@@ -6176,7 +6176,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
6176
6176
|
const f = a.value;
|
|
6177
6177
|
f && L(f, g);
|
|
6178
6178
|
}
|
|
6179
|
-
function
|
|
6179
|
+
function j(g) {
|
|
6180
6180
|
const f = g.url;
|
|
6181
6181
|
let A = null;
|
|
6182
6182
|
if (f && (A = f.startsWith("http") ? f : `${window.location.origin}${f}`), !A) return null;
|
|
@@ -6209,7 +6209,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
6209
6209
|
var ne;
|
|
6210
6210
|
const U = A ?? c(g);
|
|
6211
6211
|
if (!U) return;
|
|
6212
|
-
const X =
|
|
6212
|
+
const X = j(U);
|
|
6213
6213
|
if (!X) return;
|
|
6214
6214
|
const re = Oe(U.id, X, p);
|
|
6215
6215
|
if (re)
|
|
@@ -6256,16 +6256,16 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
6256
6256
|
function S(g) {
|
|
6257
6257
|
!g || !Array.isArray(g.filters) || g.filters.length === 0 || $.value.includes(g.id) && (a.value = g.id, y[g.id] || (y[g.id] = {}), d.value = "filter");
|
|
6258
6258
|
}
|
|
6259
|
-
function
|
|
6259
|
+
function I() {
|
|
6260
6260
|
d.value = "catalog";
|
|
6261
6261
|
}
|
|
6262
|
-
const V =
|
|
6262
|
+
const V = D(() => a.value ? c(a.value) : null), oe = D(() => {
|
|
6263
6263
|
const g = a.value;
|
|
6264
6264
|
return g ? y[g] ?? {} : {};
|
|
6265
|
-
}), ue =
|
|
6265
|
+
}), ue = D(() => E.value.groups.reduce(
|
|
6266
6266
|
(g, f) => g + f.layers.filter(o).length,
|
|
6267
6267
|
0
|
|
6268
|
-
)), J =
|
|
6268
|
+
)), J = D(() => d.value === "selected" ? "Вибрані шари" : d.value === "filter" ? "Фільтр шарів" : "Каталог"), ee = D(() => d.value === "selected" ? $.value.length : d.value === "catalog" ? ue.value : null), G = D(() => {
|
|
6269
6269
|
var g;
|
|
6270
6270
|
return d.value === "filter" ? ((g = V.value) == null ? void 0 : g.name) ?? "" : "";
|
|
6271
6271
|
});
|
|
@@ -6348,7 +6348,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
6348
6348
|
class: "p-1 rounded-full hover:bg-gray-200 transition-colors",
|
|
6349
6349
|
"aria-label": "Reset layers"
|
|
6350
6350
|
}, [...f[6] || (f[6] = [
|
|
6351
|
-
zo('<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-refresh-cw text-gray-600" data-v-
|
|
6351
|
+
zo('<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-refresh-cw text-gray-600" data-v-3c25b69e><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8" data-v-3c25b69e></path><path d="M21 3v5h-5" data-v-3c25b69e></path><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16" data-v-3c25b69e></path><path d="M8 16H3v5" data-v-3c25b69e></path></svg>', 1)
|
|
6352
6352
|
])]),
|
|
6353
6353
|
e("button", {
|
|
6354
6354
|
type: "button",
|
|
@@ -6417,13 +6417,13 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
6417
6417
|
layer: V.value,
|
|
6418
6418
|
value: oe.value,
|
|
6419
6419
|
onChange: P,
|
|
6420
|
-
onClose:
|
|
6420
|
+
onClose: I
|
|
6421
6421
|
}, null, 8, ["layer", "value"]))
|
|
6422
6422
|
])
|
|
6423
6423
|
], 2)
|
|
6424
6424
|
], 2));
|
|
6425
6425
|
}
|
|
6426
|
-
}), Lo = /* @__PURE__ */ We(nc, [["__scopeId", "data-v-
|
|
6426
|
+
}), Lo = /* @__PURE__ */ We(nc, [["__scopeId", "data-v-3c25b69e"]]), oc = {
|
|
6427
6427
|
key: 1,
|
|
6428
6428
|
class: "flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative widget"
|
|
6429
6429
|
}, rc = { class: "flex items-start justify-between gap-3 p-5 pb-3" }, sc = { class: "inline-block text-xl font-semibold text-gray-800" }, lc = {
|
|
@@ -6448,13 +6448,13 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
6448
6448
|
function a(G) {
|
|
6449
6449
|
return G && JSON.parse(JSON.stringify(G));
|
|
6450
6450
|
}
|
|
6451
|
-
const u =
|
|
6451
|
+
const u = D(() => {
|
|
6452
6452
|
const G = l.config.layer;
|
|
6453
6453
|
if (typeof G != "string") throw new Error("MapAttributeWidget: `layer` must be a string");
|
|
6454
6454
|
const W = G.trim();
|
|
6455
6455
|
if (!W) throw new Error("MapAttributeWidget: `layer` must be non-empty");
|
|
6456
6456
|
return W;
|
|
6457
|
-
}), _ =
|
|
6457
|
+
}), _ = D(() => {
|
|
6458
6458
|
const { list: G, attribute: W } = l.config;
|
|
6459
6459
|
if (Array.isArray(G) && G.length)
|
|
6460
6460
|
return G.map((R) => ({
|
|
@@ -6469,7 +6469,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
6469
6469
|
return [{ id: R, text: null }];
|
|
6470
6470
|
}
|
|
6471
6471
|
throw new Error("MapAttributeWidget: `attribute` or `list` must be provided");
|
|
6472
|
-
}), c =
|
|
6472
|
+
}), c = D(() => _.value.map((G) => ({
|
|
6473
6473
|
id: G.id,
|
|
6474
6474
|
label: G.text || p.value[G.id] || G.id
|
|
6475
6475
|
})));
|
|
@@ -6484,7 +6484,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
6484
6484
|
},
|
|
6485
6485
|
{ immediate: !0 }
|
|
6486
6486
|
);
|
|
6487
|
-
const o =
|
|
6487
|
+
const o = D(() => {
|
|
6488
6488
|
var G;
|
|
6489
6489
|
return y.value || ((G = _.value[0]) == null ? void 0 : G.id) || null;
|
|
6490
6490
|
});
|
|
@@ -6492,14 +6492,14 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
6492
6492
|
var G, W;
|
|
6493
6493
|
(W = (G = d.value) == null ? void 0 : G.remove) == null || W.call(G), d.value = null, E.value = null, $.value = null, T.value = null, p.value = {};
|
|
6494
6494
|
});
|
|
6495
|
-
const w =
|
|
6495
|
+
const w = D(() => {
|
|
6496
6496
|
var G;
|
|
6497
6497
|
return (G = $.value) != null && G.length ? {
|
|
6498
6498
|
id: u.value,
|
|
6499
6499
|
name: E.value,
|
|
6500
6500
|
filters: $.value
|
|
6501
6501
|
} : null;
|
|
6502
|
-
}), L =
|
|
6502
|
+
}), L = D(() => {
|
|
6503
6503
|
var G, W;
|
|
6504
6504
|
return ((W = (G = w.value) == null ? void 0 : G.filters) == null ? void 0 : W.length) || 0;
|
|
6505
6505
|
});
|
|
@@ -6521,7 +6521,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
6521
6521
|
return A && (g[A] = U || A), g;
|
|
6522
6522
|
}, {}), R;
|
|
6523
6523
|
}
|
|
6524
|
-
function
|
|
6524
|
+
function j(G, W) {
|
|
6525
6525
|
let R = Oe(G);
|
|
6526
6526
|
if (!R) {
|
|
6527
6527
|
const O = `${location.origin}/api/vtile/${G}/ua/{z}/{x}/{y}.vmt`;
|
|
@@ -6576,7 +6576,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
6576
6576
|
var g;
|
|
6577
6577
|
return (W == null ? void 0 : W.text) || (W == null ? void 0 : W.label) || (W == null ? void 0 : W.name) || (W == null ? void 0 : W[`${O}_text`]) || ((g = x(R == null ? void 0 : R.style).get(G)) == null ? void 0 : g.label) || G;
|
|
6578
6578
|
}
|
|
6579
|
-
function
|
|
6579
|
+
function I(G, W, R, O) {
|
|
6580
6580
|
if (!G) return;
|
|
6581
6581
|
const g = a((W == null ? void 0 : W.style) || T.value) || {}, f = O.trim();
|
|
6582
6582
|
if (!f) return;
|
|
@@ -6600,7 +6600,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
6600
6600
|
return;
|
|
6601
6601
|
k.value = !0;
|
|
6602
6602
|
const R = await P(G);
|
|
6603
|
-
|
|
6603
|
+
j(G, R);
|
|
6604
6604
|
const O = await M(G, W), g = Array.isArray(O == null ? void 0 : O.rows) ? O.rows.map((U, X) => {
|
|
6605
6605
|
const re = (U == null ? void 0 : U.id) ?? (U == null ? void 0 : U.value), ne = re != null ? String(re) : "";
|
|
6606
6606
|
if (!ne) return null;
|
|
@@ -6612,7 +6612,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
6612
6612
|
color: $e
|
|
6613
6613
|
};
|
|
6614
6614
|
}).filter(Boolean) : [];
|
|
6615
|
-
v.value = g, h.value = ((f = O == null ? void 0 : O.field) == null ? void 0 : f.label) || ((A = O == null ? void 0 : O.field) == null ? void 0 : A.name) || null,
|
|
6615
|
+
v.value = g, h.value = ((f = O == null ? void 0 : O.field) == null ? void 0 : f.label) || ((A = O == null ? void 0 : O.field) == null ? void 0 : A.name) || null, I(d.value, R, g, W), k.value = !1;
|
|
6616
6616
|
}
|
|
6617
6617
|
ce(
|
|
6618
6618
|
() => [u.value, o.value],
|
|
@@ -6621,7 +6621,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
6621
6621
|
},
|
|
6622
6622
|
{ immediate: !0 }
|
|
6623
6623
|
);
|
|
6624
|
-
const oe =
|
|
6624
|
+
const oe = D(() => "Набори даних"), ue = D(() => v.value.reduce((G, W) => G + W.count, 0)), J = D(() => {
|
|
6625
6625
|
var R;
|
|
6626
6626
|
const G = o.value;
|
|
6627
6627
|
return ((R = c.value.find((O) => O.id === G)) == null ? void 0 : R.label) || null || h.value || G || null;
|
|
@@ -6712,7 +6712,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
6712
6712
|
onClick: W[0] || (W[0] = (R) => r.value = !0)
|
|
6713
6713
|
}, " Набори даних "));
|
|
6714
6714
|
}
|
|
6715
|
-
}), So = /* @__PURE__ */ We(wc, [["__scopeId", "data-v-
|
|
6715
|
+
}), So = /* @__PURE__ */ We(wc, [["__scopeId", "data-v-437c8d68"]]), _c = ["title"], kc = {
|
|
6716
6716
|
key: 0,
|
|
6717
6717
|
class: "vs-select__options absolute z-50 mt-1 w-auto min-w-full bg-white border border-gray-300 shadow-lg rounded-lg text-sm text-gray-900"
|
|
6718
6718
|
}, $c = ["onClick"], Cc = ["placeholder"], Lc = { class: "absolute inset-y-0 right-2 flex items-center gap-1" }, Sc = { class: "flex items-center justify-between gap-2 px-3 py-2 border-b border-gray-100" }, Ec = { class: "text-xs font-semibold uppercase tracking-wide text-gray-500" }, Mc = { class: "max-h-[60vh] overflow-auto" }, Ac = {
|
|
@@ -6775,28 +6775,28 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
6775
6775
|
const q = v(), fe = (Fe = q == null ? void 0 : q.map) == null ? void 0 : Fe.addressSuggest;
|
|
6776
6776
|
if (typeof fe == "string" && fe.trim()) return fe.trim();
|
|
6777
6777
|
}
|
|
6778
|
-
const E = !!d(), $ = !!h(), T =
|
|
6778
|
+
const E = !!d(), $ = !!h(), T = D(() => {
|
|
6779
6779
|
const B = ["xy", "parcel"];
|
|
6780
6780
|
return E && B.push("address"), $ && B.push("nominatim"), B;
|
|
6781
|
-
}), p =
|
|
6781
|
+
}), p = D(() => {
|
|
6782
6782
|
var q, fe;
|
|
6783
6783
|
const B = T.value, H = (fe = (q = l.config) == null ? void 0 : q.tools) == null ? void 0 : fe.filter((ye) => B.includes(ye));
|
|
6784
6784
|
return H && H.length ? H : B;
|
|
6785
|
-
}), y =
|
|
6785
|
+
}), y = D(() => {
|
|
6786
6786
|
var B, H;
|
|
6787
6787
|
return ((H = (B = l.config) == null ? void 0 : B.placeholder) == null ? void 0 : H.trim()) || "Пошук…";
|
|
6788
6788
|
}), a = F(p.value[0]);
|
|
6789
6789
|
ce(p, (B) => {
|
|
6790
6790
|
B.includes(a.value) || (a.value = B[0]);
|
|
6791
6791
|
});
|
|
6792
|
-
const u = F(""), _ = F(!1), c = F(null), o = F(null), w = F(null), L = F(null), P = F([]),
|
|
6792
|
+
const u = F(""), _ = F(!1), c = F(null), o = F(null), w = F(null), L = F(null), P = F([]), j = F(null), M = F(!1), x = F([]), C = D(
|
|
6793
6793
|
() => (a.value === "address" || a.value === "nominatim") && M.value
|
|
6794
|
-
), S =
|
|
6794
|
+
), S = D(() => {
|
|
6795
6795
|
var B;
|
|
6796
6796
|
return ((B = l.config) == null ? void 0 : B.addressDebounceMs) ?? 1e3;
|
|
6797
6797
|
});
|
|
6798
|
-
let
|
|
6799
|
-
const V = F(!1), oe =
|
|
6798
|
+
let I = null;
|
|
6799
|
+
const V = F(!1), oe = D(() => u.value.trim().length > 0 ? P.value : x.value), ue = D(() => u.value.trim().length ? `Знайдено ${P.value.length}` : "Історія пошуку"), J = D(() => u.value.trim().length ? "Нічого не знайдено" : "Історія порожня");
|
|
6800
6800
|
function ee() {
|
|
6801
6801
|
var B, H;
|
|
6802
6802
|
if (typeof window > "u") return [];
|
|
@@ -6904,7 +6904,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
6904
6904
|
C.value && de();
|
|
6905
6905
|
};
|
|
6906
6906
|
function $e() {
|
|
6907
|
-
|
|
6907
|
+
I && (clearTimeout(I), I = null);
|
|
6908
6908
|
}
|
|
6909
6909
|
ce(a, () => {
|
|
6910
6910
|
u.value = "", _.value = !1, P.value = [], M.value = !1, $e(), V.value = !1, O(), g();
|
|
@@ -6921,7 +6921,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
6921
6921
|
P.value = [], M.value = x.value.length > 0, $e();
|
|
6922
6922
|
return;
|
|
6923
6923
|
}
|
|
6924
|
-
$e(), M.value = !0,
|
|
6924
|
+
$e(), M.value = !0, I = window.setTimeout(() => {
|
|
6925
6925
|
Pt(B).catch((H) => {
|
|
6926
6926
|
const q = (H == null ? void 0 : H.message) || "Помилка пошуку адреси";
|
|
6927
6927
|
et({ type: "error", title: "Пошук адреси", message: q });
|
|
@@ -6955,7 +6955,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
6955
6955
|
q && !q.contains(H) && (Le(H), _.value = !1);
|
|
6956
6956
|
}
|
|
6957
6957
|
if (C.value) {
|
|
6958
|
-
const q =
|
|
6958
|
+
const q = j.value, fe = L.value;
|
|
6959
6959
|
q && !q.contains(H) && (!fe || !fe.contains(H)) && (M.value = !1);
|
|
6960
6960
|
}
|
|
6961
6961
|
}
|
|
@@ -7316,7 +7316,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
7316
7316
|
}, [
|
|
7317
7317
|
e("div", {
|
|
7318
7318
|
ref_key: "addressResultsRef",
|
|
7319
|
-
ref:
|
|
7319
|
+
ref: j,
|
|
7320
7320
|
class: "vs-select__options mt-1 bg-white border border-gray-300 rounded-lg shadow-lg text-sm text-gray-900 z-50",
|
|
7321
7321
|
style: ot(ne)
|
|
7322
7322
|
}, [
|
|
@@ -7344,7 +7344,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
7344
7344
|
], 32)
|
|
7345
7345
|
], 512));
|
|
7346
7346
|
}
|
|
7347
|
-
}), Mo = /* @__PURE__ */ We(Ic, [["__scopeId", "data-v-
|
|
7347
|
+
}), Mo = /* @__PURE__ */ We(Ic, [["__scopeId", "data-v-f501919f"]]), Dc = "https://watergis.github.io/mapbox-gl-export/mapbox-gl-export.css", Nc = "https://watergis.github.io/mapbox-gl-export/mapbox-gl-export.js", Oc = /* @__PURE__ */ me({
|
|
7348
7348
|
__name: "MapPrintControl",
|
|
7349
7349
|
setup(n) {
|
|
7350
7350
|
const { map: t, ready: l, addControl: r, removeControl: k } = at(), v = F(null), h = F(null), d = F(null), E = F(null);
|
|
@@ -7354,8 +7354,8 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
7354
7354
|
}
|
|
7355
7355
|
function p(M) {
|
|
7356
7356
|
if (Array.from(document.styleSheets).some((S) => {
|
|
7357
|
-
var
|
|
7358
|
-
return (
|
|
7357
|
+
var I;
|
|
7358
|
+
return (I = S == null ? void 0 : S.href) == null ? void 0 : I.includes(M);
|
|
7359
7359
|
})) return;
|
|
7360
7360
|
const C = document.createElement("link");
|
|
7361
7361
|
C.rel = "stylesheet", C.href = M, document.head.appendChild(C);
|
|
@@ -7368,10 +7368,10 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
7368
7368
|
S.addEventListener("load", () => x()), S.addEventListener("error", () => C(new Error(`Failed ${M}`)));
|
|
7369
7369
|
return;
|
|
7370
7370
|
}
|
|
7371
|
-
const
|
|
7372
|
-
|
|
7373
|
-
|
|
7374
|
-
},
|
|
7371
|
+
const I = document.createElement("script");
|
|
7372
|
+
I.src = M, I.async = !0, I.onload = () => {
|
|
7373
|
+
I._loaded = !0, x();
|
|
7374
|
+
}, I.onerror = () => C(new Error(`Failed ${M}`)), document.head.appendChild(I);
|
|
7375
7375
|
});
|
|
7376
7376
|
}
|
|
7377
7377
|
function a() {
|
|
@@ -7387,10 +7387,10 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
7387
7387
|
{ d: "M17 9v-4a2 2 0 0 0 -2 -2h-6a2 2 0 0 0 -2 2v4" },
|
|
7388
7388
|
{ d: "M7 13m0 2a2 2 0 0 1 2 -2h6a2 2 0 0 1 2 2v4a2 2 0 0 1 -2 2h-6a2 2 0 0 1 -2 -2z" }
|
|
7389
7389
|
].forEach((C, S) => {
|
|
7390
|
-
const
|
|
7390
|
+
const I = document.createElementNS("http://www.w3.org/2000/svg", "path");
|
|
7391
7391
|
Object.entries(C).forEach(([V, oe]) => {
|
|
7392
|
-
|
|
7393
|
-
}), M.appendChild(
|
|
7392
|
+
I.setAttribute(V, oe);
|
|
7393
|
+
}), M.appendChild(I);
|
|
7394
7394
|
}), M;
|
|
7395
7395
|
}
|
|
7396
7396
|
function _() {
|
|
@@ -7444,26 +7444,26 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
7444
7444
|
};
|
|
7445
7445
|
M.querySelectorAll("label, option").forEach((S) => {
|
|
7446
7446
|
var V;
|
|
7447
|
-
const
|
|
7448
|
-
|
|
7447
|
+
const I = (V = S.textContent) == null ? void 0 : V.trim();
|
|
7448
|
+
I && x[I] && (S.textContent = x[I]);
|
|
7449
7449
|
});
|
|
7450
7450
|
const C = M.querySelector("button");
|
|
7451
7451
|
C && (C.textContent = "Друкувати");
|
|
7452
7452
|
}
|
|
7453
|
-
function
|
|
7453
|
+
function j(M) {
|
|
7454
7454
|
const x = M.querySelector(".mapboxgl-export-list");
|
|
7455
7455
|
if (!x || !v.value) return;
|
|
7456
7456
|
d.value = x;
|
|
7457
7457
|
const C = M.querySelector("button");
|
|
7458
7458
|
if (C && (C.style.display = "none"), M.style.display = "none", !E.value) {
|
|
7459
|
-
const
|
|
7460
|
-
v.value.appendChild(
|
|
7459
|
+
const I = _();
|
|
7460
|
+
v.value.appendChild(I);
|
|
7461
7461
|
}
|
|
7462
7462
|
x.style.display = "none";
|
|
7463
7463
|
const S = "_printControlBound";
|
|
7464
7464
|
if (!x[S]) {
|
|
7465
|
-
const
|
|
7466
|
-
x.addEventListener("click",
|
|
7465
|
+
const I = (V) => V.stopPropagation();
|
|
7466
|
+
x.addEventListener("click", I), x.addEventListener("mousedown", I), x[S] = !0;
|
|
7467
7467
|
}
|
|
7468
7468
|
v.value.appendChild(x), P(x);
|
|
7469
7469
|
}
|
|
@@ -7490,9 +7490,9 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
7490
7490
|
});
|
|
7491
7491
|
if (h.value = C, typeof C.onAdd == "function") {
|
|
7492
7492
|
const S = C.onAdd.bind(C);
|
|
7493
|
-
C.onAdd = (
|
|
7494
|
-
const V = S(
|
|
7495
|
-
return setTimeout(() => V &&
|
|
7493
|
+
C.onAdd = (I) => {
|
|
7494
|
+
const V = S(I);
|
|
7495
|
+
return setTimeout(() => V && j(V), 50), V;
|
|
7496
7496
|
};
|
|
7497
7497
|
}
|
|
7498
7498
|
r ? r(C, "top-right") : M.addControl(C, "top-right"), $ = (S) => {
|
|
@@ -7513,7 +7513,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
7513
7513
|
class: "map-print-control"
|
|
7514
7514
|
}, null, 512));
|
|
7515
7515
|
}
|
|
7516
|
-
}), Bc = /* @__PURE__ */ We(Oc, [["__scopeId", "data-v-
|
|
7516
|
+
}), Bc = /* @__PURE__ */ We(Oc, [["__scopeId", "data-v-7b248bfa"]]), Uc = { class: "map-center-control" }, Vc = ["aria-label"], qc = {
|
|
7517
7517
|
class: "absolute right-full mr-3 px-1.5 py-0.5 bg-gray-700 text-white text-[0.75rem] font-medium rounded-md opacity-0 group-hover:opacity-100 group-focus-visible:opacity-100 pointer-events-none transition-opacity duration-200 whitespace-nowrap",
|
|
7518
7518
|
"aria-hidden": "true"
|
|
7519
7519
|
}, Wc = /* @__PURE__ */ me({
|
|
@@ -7528,19 +7528,19 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
7528
7528
|
targetAriaLabel: {}
|
|
7529
7529
|
},
|
|
7530
7530
|
setup(n) {
|
|
7531
|
-
const t = n, { map: l, ready: r } = at(), k = F(null), v = F(null), h = F(null), d = F(null), E = Qn(), $ =
|
|
7531
|
+
const t = n, { map: l, ready: r } = at(), k = F(null), v = F(null), h = F(null), d = F(null), E = Qn(), $ = D(() => {
|
|
7532
7532
|
var w;
|
|
7533
7533
|
return ((w = E.value) == null ? void 0 : w.map) ?? null;
|
|
7534
7534
|
});
|
|
7535
7535
|
function T(w) {
|
|
7536
7536
|
if (Array.isArray(w) && w.length >= 2) {
|
|
7537
|
-
const [L, P] = w.slice(0, 2).map((
|
|
7537
|
+
const [L, P] = w.slice(0, 2).map((j) => Number(j));
|
|
7538
7538
|
return Number.isNaN(L) || Number.isNaN(P) ? null : [L, P];
|
|
7539
7539
|
}
|
|
7540
7540
|
if (w && typeof w == "object") {
|
|
7541
|
-
const L = w, P = L.lng ?? L.lon ?? L.long ?? L.x,
|
|
7542
|
-
if (P != null &&
|
|
7543
|
-
const M = Number(P), x = Number(
|
|
7541
|
+
const L = w, P = L.lng ?? L.lon ?? L.long ?? L.x, j = L.lat ?? L.y;
|
|
7542
|
+
if (P != null && j != null) {
|
|
7543
|
+
const M = Number(P), x = Number(j);
|
|
7544
7544
|
if (!Number.isNaN(M) && !Number.isNaN(x))
|
|
7545
7545
|
return [M, x];
|
|
7546
7546
|
}
|
|
@@ -7600,10 +7600,10 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
7600
7600
|
},
|
|
7601
7601
|
{ immediate: !0 }
|
|
7602
7602
|
);
|
|
7603
|
-
const a =
|
|
7603
|
+
const a = D(() => {
|
|
7604
7604
|
var w;
|
|
7605
7605
|
return ((w = t.targetLabel) == null ? void 0 : w.trim()) || "Точка";
|
|
7606
|
-
}), u =
|
|
7606
|
+
}), u = D(() => t.targetAriaLabel || "Перейти до точки"), _ = D(() => !!h.value);
|
|
7607
7607
|
De(async () => {
|
|
7608
7608
|
await (r == null ? void 0 : r());
|
|
7609
7609
|
const w = l.value;
|
|
@@ -7619,8 +7619,8 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
7619
7619
|
const w = l.value;
|
|
7620
7620
|
if (!w) return;
|
|
7621
7621
|
const L = k.value || (() => {
|
|
7622
|
-
const
|
|
7623
|
-
return [
|
|
7622
|
+
const j = w.getCenter();
|
|
7623
|
+
return [j.lng, j.lat];
|
|
7624
7624
|
})(), P = v.value ?? w.getZoom();
|
|
7625
7625
|
w.flyTo({ center: L, zoom: P });
|
|
7626
7626
|
}
|
|
@@ -7658,7 +7658,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
7658
7658
|
], 8, Vc)) : K("", !0)
|
|
7659
7659
|
]));
|
|
7660
7660
|
}
|
|
7661
|
-
}), Hc = /* @__PURE__ */ We(Wc, [["__scopeId", "data-v-
|
|
7661
|
+
}), Hc = /* @__PURE__ */ We(Wc, [["__scopeId", "data-v-11f03bb7"]]), Zc = { class: "cursor-coordinates" }, Gc = { class: "cursor-coordinates__text" }, Yc = /* @__PURE__ */ me({
|
|
7662
7662
|
__name: "MapCursorCoordinates",
|
|
7663
7663
|
props: {
|
|
7664
7664
|
coordinates: {}
|
|
@@ -7668,7 +7668,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
7668
7668
|
e("span", Gc, Y(n.coordinates), 1)
|
|
7669
7669
|
]));
|
|
7670
7670
|
}
|
|
7671
|
-
}), Xc = /* @__PURE__ */ We(Yc, [["__scopeId", "data-v-
|
|
7671
|
+
}), Xc = /* @__PURE__ */ We(Yc, [["__scopeId", "data-v-d83db59a"]]), Jc = { class: "minimap__wrapper" }, Sn = "minimap-viewport", Kc = "minimap-viewport-layer", Qc = /* @__PURE__ */ me({
|
|
7672
7672
|
__name: "MapMiniMap",
|
|
7673
7673
|
props: {
|
|
7674
7674
|
mapContext: {},
|
|
@@ -7677,17 +7677,17 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
7677
7677
|
options: {}
|
|
7678
7678
|
},
|
|
7679
7679
|
setup(n) {
|
|
7680
|
-
var L, P,
|
|
7681
|
-
const t = n, l = ((P = (L = Jt()) == null ? void 0 : L.appContext.config.globalProperties) == null ? void 0 : P.$settings) || null, r = Xt((
|
|
7680
|
+
var L, P, j, M;
|
|
7681
|
+
const t = n, l = ((P = (L = Jt()) == null ? void 0 : L.appContext.config.globalProperties) == null ? void 0 : P.$settings) || null, r = Xt((j = l == null ? void 0 : l.map) == null ? void 0 : j.center) || [30, 50], k = F(null), v = To(null), h = (M = t.options) == null ? void 0 : M.active, d = F(h === void 0 ? !1 : !!h);
|
|
7682
7682
|
function E(x, C) {
|
|
7683
7683
|
return typeof x == "number" && Number.isFinite(x) ? x : C;
|
|
7684
7684
|
}
|
|
7685
|
-
const $ =
|
|
7685
|
+
const $ = D(() => {
|
|
7686
7686
|
var V, oe;
|
|
7687
|
-
const x = (V = t.options) == null ? void 0 : V.width, C = (oe = t.options) == null ? void 0 : oe.height, S = E(t.width ?? x, 210),
|
|
7687
|
+
const x = (V = t.options) == null ? void 0 : V.width, C = (oe = t.options) == null ? void 0 : oe.height, S = E(t.width ?? x, 210), I = E(t.height ?? C, 150);
|
|
7688
7688
|
return {
|
|
7689
7689
|
width: `${S}px`,
|
|
7690
|
-
height: `${
|
|
7690
|
+
height: `${I}px`
|
|
7691
7691
|
};
|
|
7692
7692
|
});
|
|
7693
7693
|
function T() {
|
|
@@ -7695,8 +7695,8 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
7695
7695
|
const x = (S = (C = t.mapContext) == null ? void 0 : C.map) == null ? void 0 : S.value;
|
|
7696
7696
|
if (!x || typeof x.getStyle != "function") return null;
|
|
7697
7697
|
try {
|
|
7698
|
-
const
|
|
7699
|
-
return
|
|
7698
|
+
const I = x.getStyle();
|
|
7699
|
+
return I ? JSON.parse(JSON.stringify(I)) : null;
|
|
7700
7700
|
} catch {
|
|
7701
7701
|
return null;
|
|
7702
7702
|
}
|
|
@@ -7728,11 +7728,11 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
7728
7728
|
zoom: ((V = t.options) == null ? void 0 : V.zoom) ?? 3,
|
|
7729
7729
|
interactive: !1,
|
|
7730
7730
|
attributionControl: !1
|
|
7731
|
-
},
|
|
7731
|
+
}, I = {
|
|
7732
7732
|
...S,
|
|
7733
7733
|
...t.options ?? {}
|
|
7734
7734
|
};
|
|
7735
|
-
|
|
7735
|
+
I.container = S.container, v.value = new maplibregl.Map(I), v.value.on("load", () => {
|
|
7736
7736
|
u(), c();
|
|
7737
7737
|
});
|
|
7738
7738
|
}
|
|
@@ -7799,14 +7799,14 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
7799
7799
|
}
|
|
7800
7800
|
const C = x.getBounds();
|
|
7801
7801
|
if (!C) return;
|
|
7802
|
-
const S = C.getNorthEast(),
|
|
7803
|
-
if (!S || !
|
|
7802
|
+
const S = C.getNorthEast(), I = C.getSouthWest();
|
|
7803
|
+
if (!S || !I) return;
|
|
7804
7804
|
const V = [
|
|
7805
|
-
[
|
|
7805
|
+
[I.lng, S.lat],
|
|
7806
7806
|
[S.lng, S.lat],
|
|
7807
|
-
[S.lng,
|
|
7808
|
-
[
|
|
7809
|
-
[
|
|
7807
|
+
[S.lng, I.lat],
|
|
7808
|
+
[I.lng, I.lat],
|
|
7809
|
+
[I.lng, S.lat]
|
|
7810
7810
|
], oe = v.value.getSource(Sn);
|
|
7811
7811
|
if (!oe) {
|
|
7812
7812
|
u();
|
|
@@ -7902,7 +7902,7 @@ const cu = { class: "catalog-tab__search relative mt-[10px]" }, du = {
|
|
|
7902
7902
|
})
|
|
7903
7903
|
], 2));
|
|
7904
7904
|
}
|
|
7905
|
-
}), ed = /* @__PURE__ */ We(Qc, [["__scopeId", "data-v-
|
|
7905
|
+
}), ed = /* @__PURE__ */ We(Qc, [["__scopeId", "data-v-ff9c5f7b"]]), td = { class: "pt-1 border-t border-gray-100" }, nd = { class: "space-y-1" }, od = /* @__PURE__ */ me({
|
|
7906
7906
|
__name: "AddCoordinates",
|
|
7907
7907
|
emits: ["submit", "cancel"],
|
|
7908
7908
|
setup(n, { emit: t }) {
|
|
@@ -8030,7 +8030,7 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
8030
8030
|
},
|
|
8031
8031
|
emits: ["update", "delete"],
|
|
8032
8032
|
setup(n, { emit: t }) {
|
|
8033
|
-
const l = n, r = t, k =
|
|
8033
|
+
const l = n, r = t, k = D(
|
|
8034
8034
|
() => `${l.coords.lat.toFixed(4)}°, ${l.coords.lng.toFixed(4)}°`
|
|
8035
8035
|
), v = F(!1), h = F(l.coords.lat), d = F(l.coords.lng);
|
|
8036
8036
|
ce(
|
|
@@ -8156,13 +8156,13 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
8156
8156
|
], v = () => {
|
|
8157
8157
|
l.value = !l.value;
|
|
8158
8158
|
}, h = (u, _) => {
|
|
8159
|
-
const c = (S) => S * Math.PI / 180, o = c(_.lat - u.lat), w = c(_.lng - u.lng), L = c(u.lat), P = c(_.lat),
|
|
8159
|
+
const c = (S) => S * Math.PI / 180, o = c(_.lat - u.lat), w = c(_.lng - u.lng), L = c(u.lat), P = c(_.lat), j = Math.sin(o / 2), M = Math.sin(w / 2);
|
|
8160
8160
|
return 6371e3 * (2 * Math.asin(
|
|
8161
8161
|
Math.sqrt(
|
|
8162
|
-
|
|
8162
|
+
j * j + Math.cos(L) * Math.cos(P) * M * M
|
|
8163
8163
|
)
|
|
8164
8164
|
));
|
|
8165
|
-
}, d =
|
|
8165
|
+
}, d = D(() => {
|
|
8166
8166
|
if (t.points.length < 2) return 0;
|
|
8167
8167
|
let u = 0;
|
|
8168
8168
|
for (let _ = 1; _ < t.points.length; _ += 1)
|
|
@@ -8171,25 +8171,25 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
8171
8171
|
t.points[t.points.length - 1].coords,
|
|
8172
8172
|
t.points[0].coords
|
|
8173
8173
|
)), u;
|
|
8174
|
-
}), E =
|
|
8174
|
+
}), E = D(() => d.value >= 1e3 ? `${Yt(d.value / 1e3)} км` : `${Yt(d.value)} м`);
|
|
8175
8175
|
function $(u) {
|
|
8176
8176
|
if (u.length < 3) return 0;
|
|
8177
8177
|
const _ = u[0].lat, c = u[0].lng, o = (L, P) => {
|
|
8178
|
-
const
|
|
8179
|
-
return { x: (P - c) * 111320 * Math.cos(_ * Math.PI / 180), y:
|
|
8178
|
+
const j = (L - _) * 110574;
|
|
8179
|
+
return { x: (P - c) * 111320 * Math.cos(_ * Math.PI / 180), y: j };
|
|
8180
8180
|
};
|
|
8181
8181
|
let w = 0;
|
|
8182
8182
|
for (let L = 0; L < u.length; L++) {
|
|
8183
|
-
const P = (L + 1) % u.length,
|
|
8184
|
-
w +=
|
|
8183
|
+
const P = (L + 1) % u.length, j = o(u[L].lat, u[L].lng), M = o(u[P].lat, u[P].lng);
|
|
8184
|
+
w += j.x * M.y - j.y * M.x;
|
|
8185
8185
|
}
|
|
8186
8186
|
return Math.abs(w) * 0.5;
|
|
8187
8187
|
}
|
|
8188
|
-
const T =
|
|
8188
|
+
const T = D(() => {
|
|
8189
8189
|
if (!t.isShapeClosed || t.points.length < 3) return 0;
|
|
8190
8190
|
const u = t.points.map((_) => _.coords);
|
|
8191
8191
|
return $(u);
|
|
8192
|
-
}), p =
|
|
8192
|
+
}), p = D(() => T.value > 0), y = D(() => {
|
|
8193
8193
|
const u = T.value;
|
|
8194
8194
|
if (u === 0) return "—";
|
|
8195
8195
|
if (r.value === "km2") {
|
|
@@ -8202,7 +8202,7 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
8202
8202
|
}
|
|
8203
8203
|
const _ = u >= 1 ? Math.round(u) : u;
|
|
8204
8204
|
return `${Yt(_)} м²`;
|
|
8205
|
-
}), a =
|
|
8205
|
+
}), a = D(() => {
|
|
8206
8206
|
const u = t.points.length;
|
|
8207
8207
|
return u === 1 ? "1 точка" : u >= 2 && u <= 4 ? `${u} точки` : `${u} точок`;
|
|
8208
8208
|
});
|
|
@@ -8311,7 +8311,7 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
8311
8311
|
function r(v) {
|
|
8312
8312
|
return Vo(v);
|
|
8313
8313
|
}
|
|
8314
|
-
const k =
|
|
8314
|
+
const k = D(() => {
|
|
8315
8315
|
const v = [], h = t.points;
|
|
8316
8316
|
if (h.length < 2) return v;
|
|
8317
8317
|
for (let d = 0; d < h.length; d++) {
|
|
@@ -8357,14 +8357,14 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
8357
8357
|
"shape-closed-change"
|
|
8358
8358
|
],
|
|
8359
8359
|
setup(n, { expose: t, emit: l }) {
|
|
8360
|
-
const r = l, k = F([]), v =
|
|
8360
|
+
const r = l, k = F([]), v = D(() => k.value.length > 0), h = F(!1), d = F(!1), E = F("general");
|
|
8361
8361
|
function $(V) {
|
|
8362
8362
|
E.value = V, r("tab-change", V);
|
|
8363
8363
|
}
|
|
8364
8364
|
De(() => {
|
|
8365
8365
|
r("tab-change", E.value);
|
|
8366
8366
|
});
|
|
8367
|
-
const T =
|
|
8367
|
+
const T = D(
|
|
8368
8368
|
() => k.value.length >= 3 && !d.value
|
|
8369
8369
|
);
|
|
8370
8370
|
let p = 1;
|
|
@@ -8394,7 +8394,7 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
8394
8394
|
c(V);
|
|
8395
8395
|
}, P = (V) => {
|
|
8396
8396
|
o(V);
|
|
8397
|
-
},
|
|
8397
|
+
}, j = () => {
|
|
8398
8398
|
h.value = !0, r("add-request");
|
|
8399
8399
|
}, M = (V) => {
|
|
8400
8400
|
_(V), h.value = !1;
|
|
@@ -8408,7 +8408,7 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
8408
8408
|
coords: { ...ue.coords }
|
|
8409
8409
|
}));
|
|
8410
8410
|
k.value = oe, oe.length === 0 ? p = 1 : p = Math.max(...oe.map((ue) => ue.id)) + 1, a();
|
|
8411
|
-
},
|
|
8411
|
+
}, I = () => {
|
|
8412
8412
|
w(), h.value = !1, r("close");
|
|
8413
8413
|
};
|
|
8414
8414
|
return t({
|
|
@@ -8431,7 +8431,7 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
8431
8431
|
e("button", {
|
|
8432
8432
|
class: "w-5 h-5 flex items-center justify-center rounded hover:bg-white/20 transition-colors",
|
|
8433
8433
|
"aria-label": "Закрити",
|
|
8434
|
-
onClick:
|
|
8434
|
+
onClick: I
|
|
8435
8435
|
}, [
|
|
8436
8436
|
ge(se(Ut), {
|
|
8437
8437
|
size: 14,
|
|
@@ -8477,7 +8477,7 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
8477
8477
|
e("div", Hd, [
|
|
8478
8478
|
h.value ? K("", !0) : (s(), pe(rd, {
|
|
8479
8479
|
key: 0,
|
|
8480
|
-
onClick:
|
|
8480
|
+
onClick: j
|
|
8481
8481
|
})),
|
|
8482
8482
|
T.value ? (s(), pe(ld, {
|
|
8483
8483
|
key: 1,
|
|
@@ -8506,10 +8506,10 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
8506
8506
|
},
|
|
8507
8507
|
setup(n) {
|
|
8508
8508
|
function t(c, o) {
|
|
8509
|
-
const w = (C) => C * Math.PI / 180, L = w(o.lat - c.lat), P = w(o.lng - c.lng),
|
|
8509
|
+
const w = (C) => C * Math.PI / 180, L = w(o.lat - c.lat), P = w(o.lng - c.lng), j = w(c.lat), M = w(o.lat);
|
|
8510
8510
|
return 6371e3 * (2 * Math.asin(
|
|
8511
8511
|
Math.sqrt(
|
|
8512
|
-
Math.sin(L / 2) ** 2 + Math.cos(
|
|
8512
|
+
Math.sin(L / 2) ** 2 + Math.cos(j) * Math.cos(M) * Math.sin(P / 2) ** 2
|
|
8513
8513
|
)
|
|
8514
8514
|
));
|
|
8515
8515
|
}
|
|
@@ -8522,11 +8522,11 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
8522
8522
|
}
|
|
8523
8523
|
function d(c, o, w) {
|
|
8524
8524
|
const L = w ?? "general", P = [];
|
|
8525
|
-
let
|
|
8525
|
+
let j = 0;
|
|
8526
8526
|
P.push(0);
|
|
8527
8527
|
for (let M = 1; M < c.length; M++)
|
|
8528
|
-
|
|
8529
|
-
return o && c.length >= 2 && (
|
|
8528
|
+
j += t(c[M - 1].coords, c[M].coords), P.push(j);
|
|
8529
|
+
return o && c.length >= 2 && (j += t(c[c.length - 1].coords, c[0].coords)), {
|
|
8530
8530
|
type: "FeatureCollection",
|
|
8531
8531
|
features: c.map((M, x) => {
|
|
8532
8532
|
const C = L === "general" ? x === 0 ? "0" : l(P[x]) : x === 0 ? "0" : l(
|
|
@@ -8549,13 +8549,13 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
8549
8549
|
for (let L = 0; L < c.length; L++) {
|
|
8550
8550
|
const P = L === c.length - 1 && o ? 0 : L + 1;
|
|
8551
8551
|
if (P >= c.length) break;
|
|
8552
|
-
const
|
|
8552
|
+
const j = c[L].coords, M = c[P].coords, x = t(j, M);
|
|
8553
8553
|
w.push({
|
|
8554
8554
|
type: "Feature",
|
|
8555
8555
|
geometry: {
|
|
8556
8556
|
type: "LineString",
|
|
8557
8557
|
coordinates: [
|
|
8558
|
-
[
|
|
8558
|
+
[j.lng, j.lat],
|
|
8559
8559
|
[M.lng, M.lat]
|
|
8560
8560
|
]
|
|
8561
8561
|
},
|
|
@@ -8675,11 +8675,11 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
8675
8675
|
}
|
|
8676
8676
|
function u(c) {
|
|
8677
8677
|
if (!c) return;
|
|
8678
|
-
const o = c.getSource(bt), w = c.getSource(zt), L = c.getSource(Ft), P = c.getSource(Rt),
|
|
8678
|
+
const o = c.getSource(bt), w = c.getSource(zt), L = c.getSource(Ft), P = c.getSource(Rt), j = r.points, M = r.labelMode ?? "general";
|
|
8679
8679
|
o && o.setData(
|
|
8680
|
-
d(
|
|
8681
|
-
), w && w.setData($(
|
|
8682
|
-
M === "topoint" ? E(
|
|
8680
|
+
d(j, r.isShapeClosed, M)
|
|
8681
|
+
), w && w.setData($(j, r.isShapeClosed)), L && L.setData(T(j)), P && P.setData(
|
|
8682
|
+
M === "topoint" ? E(j, r.isShapeClosed) : h()
|
|
8683
8683
|
);
|
|
8684
8684
|
}
|
|
8685
8685
|
function _() {
|
|
@@ -8707,7 +8707,7 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
8707
8707
|
},
|
|
8708
8708
|
emits: ["close", "recenter"],
|
|
8709
8709
|
setup(n, { emit: t }) {
|
|
8710
|
-
const l = n, r = t, k =
|
|
8710
|
+
const l = n, r = t, k = D(() => l.position != null ? l.position.lng.toFixed(6) : "—"), v = D(() => l.position != null ? l.position.lat.toFixed(6) : "—"), h = F(!1);
|
|
8711
8711
|
let d = null;
|
|
8712
8712
|
function E() {
|
|
8713
8713
|
if (l.position == null) return;
|
|
@@ -9029,7 +9029,7 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9029
9029
|
])
|
|
9030
9030
|
]));
|
|
9031
9031
|
}
|
|
9032
|
-
}), _f = /* @__PURE__ */ We(wf, [["__scopeId", "data-v-
|
|
9032
|
+
}), _f = /* @__PURE__ */ We(wf, [["__scopeId", "data-v-6a074bc1"]]), kf = /* @__PURE__ */ me({
|
|
9033
9033
|
name: "DrawingCanvas",
|
|
9034
9034
|
__name: "DrawingCanvas",
|
|
9035
9035
|
props: {
|
|
@@ -9038,7 +9038,7 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9038
9038
|
strokeWidth: { default: 3 }
|
|
9039
9039
|
},
|
|
9040
9040
|
setup(n, { expose: t }) {
|
|
9041
|
-
const l = F(null), r = F(null), k = F(null), v = F({ x: 0, y: 0 }), h = F(!1), d = n, E =
|
|
9041
|
+
const l = F(null), r = F(null), k = F(null), v = F({ x: 0, y: 0 }), h = F(!1), d = n, E = D(() => Math.max(d.strokeWidth * 3, 12)), $ = D(() => {
|
|
9042
9042
|
const f = E.value * 2;
|
|
9043
9043
|
return {
|
|
9044
9044
|
width: `${f}px`,
|
|
@@ -9075,7 +9075,7 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9075
9075
|
y: f.clientY - U.top
|
|
9076
9076
|
};
|
|
9077
9077
|
}
|
|
9078
|
-
function
|
|
9078
|
+
function j() {
|
|
9079
9079
|
const f = r.value;
|
|
9080
9080
|
return f ? f.getContext("2d") : null;
|
|
9081
9081
|
}
|
|
@@ -9111,7 +9111,7 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9111
9111
|
function S(f) {
|
|
9112
9112
|
f.strokeStyle = d.strokeColor, f.lineWidth = d.strokeWidth, f.lineCap = "round", f.lineJoin = "round";
|
|
9113
9113
|
}
|
|
9114
|
-
function
|
|
9114
|
+
function I() {
|
|
9115
9115
|
const f = r.value;
|
|
9116
9116
|
if (!f) return;
|
|
9117
9117
|
const A = f.getContext("2d");
|
|
@@ -9123,18 +9123,18 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9123
9123
|
if (!r.value) return;
|
|
9124
9124
|
const { x: A, y: U } = P(f);
|
|
9125
9125
|
u = A, _ = U, c = A, o = U;
|
|
9126
|
-
const X =
|
|
9126
|
+
const X = j();
|
|
9127
9127
|
if (X) {
|
|
9128
9128
|
if (d.tool === "pen" || d.tool === "eraser") {
|
|
9129
|
-
|
|
9129
|
+
I(), p.value = !0, d.tool === "eraser" ? (X.globalCompositeOperation = "destination-out", X.lineWidth = Math.max(d.strokeWidth * 3, 12)) : (X.globalCompositeOperation = "source-over", S(X)), X.beginPath(), X.moveTo(A, U);
|
|
9130
9130
|
return;
|
|
9131
9131
|
}
|
|
9132
9132
|
if (d.tool === "paint") {
|
|
9133
|
-
|
|
9133
|
+
I(), p.value = !0, X.globalCompositeOperation = "source-over", X.fillStyle = d.strokeColor, ee(X, A, U);
|
|
9134
9134
|
return;
|
|
9135
9135
|
}
|
|
9136
9136
|
if (d.tool === "line" || d.tool === "rect" || d.tool === "circle") {
|
|
9137
|
-
|
|
9137
|
+
I(), p.value = !0;
|
|
9138
9138
|
return;
|
|
9139
9139
|
}
|
|
9140
9140
|
if (d.tool === "polygon") {
|
|
@@ -9146,7 +9146,7 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9146
9146
|
function oe(f) {
|
|
9147
9147
|
const { x: A, y: U } = P(f);
|
|
9148
9148
|
c = A, o = U, d.tool === "eraser" && (v.value = { x: f.clientX, y: f.clientY }, h.value = !0);
|
|
9149
|
-
const X =
|
|
9149
|
+
const X = j();
|
|
9150
9150
|
if (X) {
|
|
9151
9151
|
if (d.tool === "pen" && p.value) {
|
|
9152
9152
|
X.globalCompositeOperation = "source-over", S(X), X.lineTo(A, U), X.stroke();
|
|
@@ -9178,7 +9178,7 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9178
9178
|
}
|
|
9179
9179
|
function G() {
|
|
9180
9180
|
if (!p.value) return;
|
|
9181
|
-
const f =
|
|
9181
|
+
const f = j();
|
|
9182
9182
|
if (!f) {
|
|
9183
9183
|
p.value = !1;
|
|
9184
9184
|
return;
|
|
@@ -9201,12 +9201,12 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9201
9201
|
x(), p.value = !1, f.globalCompositeOperation = "source-over";
|
|
9202
9202
|
}
|
|
9203
9203
|
function W() {
|
|
9204
|
-
const f =
|
|
9204
|
+
const f = j(), A = y.value;
|
|
9205
9205
|
if (!f || A.length < 2) {
|
|
9206
9206
|
y.value = [], x();
|
|
9207
9207
|
return;
|
|
9208
9208
|
}
|
|
9209
|
-
|
|
9209
|
+
I(), f.globalCompositeOperation = "source-over", S(f), f.beginPath(), f.moveTo(A[0].x, A[0].y);
|
|
9210
9210
|
for (let U = 1; U < A.length; U++) f.lineTo(A[U].x, A[U].y);
|
|
9211
9211
|
f.closePath(), f.stroke(), y.value = [], x(), f.globalCompositeOperation = "source-over";
|
|
9212
9212
|
}
|
|
@@ -9273,7 +9273,7 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9273
9273
|
])
|
|
9274
9274
|
], 34));
|
|
9275
9275
|
}
|
|
9276
|
-
}), $f = /* @__PURE__ */ We(kf, [["__scopeId", "data-v-
|
|
9276
|
+
}), $f = /* @__PURE__ */ We(kf, [["__scopeId", "data-v-d05d2a1d"]]), Cf = /* @__PURE__ */ me({
|
|
9277
9277
|
__name: "MapBoundaryLayer",
|
|
9278
9278
|
props: {
|
|
9279
9279
|
layerId: {},
|
|
@@ -9404,36 +9404,36 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9404
9404
|
var wn, tn, _n, kn;
|
|
9405
9405
|
const t = n;
|
|
9406
9406
|
console.log("props.data", t.data);
|
|
9407
|
-
const l = Tt(), r = Bt(), k = F(null), v = F({}), h = F(null), d = F(!1), E = F(null), $ = F(!1), T = F([]), { resolveMapLegendItems: p } = Uo(), y = F(null), a =
|
|
9407
|
+
const l = Tt(), r = Bt(), k = F(null), v = F({}), h = F(null), d = F(!1), E = F(null), $ = F(!1), T = F([]), { resolveMapLegendItems: p } = Uo(), y = F(null), a = D(() => y.value === "ruler"), u = D(() => y.value === "draw"), _ = D(() => y.value === "geolocation"), c = F("general"), o = F(null), w = F(null), L = F(null), P = F("pen"), j = F("#2563eb"), M = F(3), x = F([]), C = F(!1), S = F(null), I = F(!1), V = F(null), oe = D(() => t.id || "main"), ue = D(() => {
|
|
9408
9408
|
var z, Z;
|
|
9409
9409
|
return {
|
|
9410
9410
|
height: ((z = t.height) == null ? void 0 : z.trim()) || ((Z = v.value) == null ? void 0 : Z.height) || "calc(100vh - 65px)"
|
|
9411
9411
|
};
|
|
9412
|
-
}), J =
|
|
9412
|
+
}), J = D(() => {
|
|
9413
9413
|
var z;
|
|
9414
9414
|
return ((z = v.value) == null ? void 0 : z.name) ?? null;
|
|
9415
|
-
}), ee =
|
|
9415
|
+
}), ee = D(() => {
|
|
9416
9416
|
var z;
|
|
9417
9417
|
return ((z = v.value) == null ? void 0 : z.description) ?? null;
|
|
9418
|
-
}), G =
|
|
9418
|
+
}), G = D(() => {
|
|
9419
9419
|
var z;
|
|
9420
9420
|
return Le((z = v.value) == null ? void 0 : z.maps);
|
|
9421
|
-
}), W =
|
|
9421
|
+
}), W = D(() => {
|
|
9422
9422
|
var Z, he;
|
|
9423
9423
|
const z = ((Z = v.value) == null ? void 0 : Z.minZoom) ?? ((he = v.value) == null ? void 0 : he.minzoom) ?? null;
|
|
9424
9424
|
return typeof z == "number" ? z : null;
|
|
9425
|
-
}), R =
|
|
9425
|
+
}), R = D(() => {
|
|
9426
9426
|
var Z, he;
|
|
9427
9427
|
const z = ((Z = v.value) == null ? void 0 : Z.maxZoom) ?? ((he = v.value) == null ? void 0 : he.maxzoom) ?? null;
|
|
9428
9428
|
return typeof z == "number" ? z : typeof t.maxZoom == "number" ? t.maxZoom : 20;
|
|
9429
|
-
}), O = F(null), g =
|
|
9429
|
+
}), O = F(null), g = D(() => {
|
|
9430
9430
|
if (!O.value) return null;
|
|
9431
9431
|
const { lng: z, lat: Z } = O.value;
|
|
9432
9432
|
return `${Z.toFixed(6)}, ${z.toFixed(6)}`;
|
|
9433
|
-
}), f =
|
|
9433
|
+
}), f = D(() => {
|
|
9434
9434
|
var z;
|
|
9435
9435
|
return ((z = k.value) == null ? void 0 : z.ctx) ?? null;
|
|
9436
|
-
}), A =
|
|
9436
|
+
}), A = D(() => {
|
|
9437
9437
|
var z;
|
|
9438
9438
|
return ((z = v.value) == null ? void 0 : z.minimap) ?? null;
|
|
9439
9439
|
});
|
|
@@ -9448,7 +9448,7 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9448
9448
|
const Z = Number(typeof z == "string" ? z.trim() : z);
|
|
9449
9449
|
return Number.isFinite(Z) ? Z : null;
|
|
9450
9450
|
}
|
|
9451
|
-
const ne = Xt((_n = X == null ? void 0 : X.map) == null ? void 0 : _n.center), de = re((kn = X == null ? void 0 : X.map) == null ? void 0 : kn.zoom), we =
|
|
9451
|
+
const ne = Xt((_n = X == null ? void 0 : X.map) == null ? void 0 : _n.center), de = re((kn = X == null ? void 0 : X.map) == null ? void 0 : kn.zoom), we = D(() => {
|
|
9452
9452
|
const z = (X == null ? void 0 : X.map) || null, Z = (z == null ? void 0 : z.boundary) ?? null, he = (z == null ? void 0 : z.katottg) ?? null;
|
|
9453
9453
|
return !Z && !he ? null : { boundary: Z, katottg: he };
|
|
9454
9454
|
});
|
|
@@ -9458,14 +9458,14 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9458
9458
|
function Le(z) {
|
|
9459
9459
|
return Array.isArray(z) ? z : z && typeof z == "object" ? Object.values(z).filter(Boolean) : [];
|
|
9460
9460
|
}
|
|
9461
|
-
const je =
|
|
9461
|
+
const je = D(() => {
|
|
9462
9462
|
var z;
|
|
9463
9463
|
return Le((z = v.value) == null ? void 0 : z.widgets);
|
|
9464
|
-
}), dt =
|
|
9464
|
+
}), dt = D(() => je.value.some((z) => (z == null ? void 0 : z.type) === "catalog"));
|
|
9465
9465
|
function st(z) {
|
|
9466
9466
|
return p(z, { hasCatalogWidget: dt.value });
|
|
9467
9467
|
}
|
|
9468
|
-
const it =
|
|
9468
|
+
const it = D(() => je.value.some((z) => (z == null ? void 0 : z.type) === "basemaps")), It = ["left", "right"], Et = D(() => {
|
|
9469
9469
|
const z = {
|
|
9470
9470
|
left: { top: [], bottom: [] },
|
|
9471
9471
|
right: { top: [], bottom: [] }
|
|
@@ -9476,8 +9476,8 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9476
9476
|
"bottom-right": { side: "right", align: "bottom" }
|
|
9477
9477
|
};
|
|
9478
9478
|
return je.value.forEach((he) => {
|
|
9479
|
-
const ke = $e(he.position),
|
|
9480
|
-
z[
|
|
9479
|
+
const ke = $e(he.position), ae = Z[ke] ?? { side: "left", align: "top" };
|
|
9480
|
+
z[ae.side][ae.align].push(he);
|
|
9481
9481
|
}), z;
|
|
9482
9482
|
});
|
|
9483
9483
|
function yt(z) {
|
|
@@ -9509,9 +9509,9 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9509
9509
|
Z && (typeof W.value == "number" && Z.setMinZoom(W.value), typeof R.value == "number" && Z.setMaxZoom(R.value));
|
|
9510
9510
|
}
|
|
9511
9511
|
async function ft() {
|
|
9512
|
-
var
|
|
9512
|
+
var ae;
|
|
9513
9513
|
if (h.value) return;
|
|
9514
|
-
const z = await kt(), Z = (
|
|
9514
|
+
const z = await kt(), Z = (ae = z == null ? void 0 : z.map) == null ? void 0 : ae.value;
|
|
9515
9515
|
if (!Z) return;
|
|
9516
9516
|
const he = Z.getCenter(), ke = Z.getZoom();
|
|
9517
9517
|
h.value = { center: [he.lng, he.lat], zoom: ke };
|
|
@@ -9532,7 +9532,7 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9532
9532
|
if (Wt()) return;
|
|
9533
9533
|
const z = await kt(), Z = (Re = z == null ? void 0 : z.map) == null ? void 0 : Re.value;
|
|
9534
9534
|
if (!z || !Z) return;
|
|
9535
|
-
const he = parseFloat(yt(l.query.x) ?? ""), ke = parseFloat(yt(l.query.y) ?? ""),
|
|
9535
|
+
const he = parseFloat(yt(l.query.x) ?? ""), ke = parseFloat(yt(l.query.y) ?? ""), ae = parseFloat(yt(l.query.z) ?? ""), Te = !Number.isNaN(he), Se = !Number.isNaN(ke), ie = !Number.isNaN(ae);
|
|
9536
9536
|
let Pe = !1;
|
|
9537
9537
|
Pt.value = !0;
|
|
9538
9538
|
try {
|
|
@@ -9540,11 +9540,11 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9540
9540
|
const Ae = Z.getCenter();
|
|
9541
9541
|
(!qt(Ae.lng, he) || !qt(Ae.lat, ke)) && (Z.setCenter([he, ke]), Pe = !0);
|
|
9542
9542
|
}
|
|
9543
|
-
if (
|
|
9543
|
+
if (ie) {
|
|
9544
9544
|
const Ae = Z.getZoom();
|
|
9545
|
-
qt(Ae,
|
|
9545
|
+
qt(Ae, ae, 1e-3) || (Z.setZoom(ae), Pe = !0);
|
|
9546
9546
|
}
|
|
9547
|
-
(!Te || !Se || !
|
|
9547
|
+
(!Te || !Se || !ie || Pe) && Vt();
|
|
9548
9548
|
} finally {
|
|
9549
9549
|
Pt.value = !1;
|
|
9550
9550
|
}
|
|
@@ -9587,9 +9587,9 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9587
9587
|
const z = ut();
|
|
9588
9588
|
return z ? Object.entries(Oe()).filter(([, Z]) => {
|
|
9589
9589
|
var Ae, Ne, lt, Ie, Ge, Je, tt;
|
|
9590
|
-
const he = (Ne = (Ae = Z == null ? void 0 : Z.opts) == null ? void 0 : Ae.source) == null ? void 0 : Ne.type, ke = (Ie = (lt = Z == null ? void 0 : Z.opts) == null ? void 0 : lt.layer) == null ? void 0 : Ie.type,
|
|
9591
|
-
if (he !== "raster" && ke !== "raster" ||
|
|
9592
|
-
const Re = (((tt = z.getStyle()) == null ? void 0 : tt.layers) || []).filter((Ct) => Ct.source ===
|
|
9590
|
+
const he = (Ne = (Ae = Z == null ? void 0 : Z.opts) == null ? void 0 : Ae.source) == null ? void 0 : Ne.type, ke = (Ie = (lt = Z == null ? void 0 : Z.opts) == null ? void 0 : lt.layer) == null ? void 0 : Ie.type, ae = (((Ge = Z == null ? void 0 : Z.opts) == null ? void 0 : Ge.service) || "").toString().toLowerCase(), Te = Array.isArray(Z == null ? void 0 : Z.card) ? Z.card.length > 0 : !!(Z != null && Z.card), Se = Array.isArray(Z == null ? void 0 : Z.popup) ? Z.popup.length > 0 : !!(Z != null && Z.popup), ie = (Je = Z == null ? void 0 : Z.ids) == null ? void 0 : Je.sourceId;
|
|
9591
|
+
if (he !== "raster" && ke !== "raster" || ae !== "cartocss" && !Te && !Se || !ie || !z.getSource(ie)) return !1;
|
|
9592
|
+
const Re = (((tt = z.getStyle()) == null ? void 0 : tt.layers) || []).filter((Ct) => Ct.source === ie);
|
|
9593
9593
|
return Re.length ? Re.some((Ct) => {
|
|
9594
9594
|
try {
|
|
9595
9595
|
return z.getLayoutProperty(Ct.id, "visibility") !== "none";
|
|
@@ -9602,21 +9602,21 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9602
9602
|
function fe(z) {
|
|
9603
9603
|
const Z = ut();
|
|
9604
9604
|
return Z ? (Z.queryRenderedFeatures(z == null ? void 0 : z.point) || []).filter((ke) => {
|
|
9605
|
-
var
|
|
9606
|
-
if (!((
|
|
9607
|
-
const
|
|
9608
|
-
if (!
|
|
9609
|
-
const Te = (Re = (Pe =
|
|
9605
|
+
var ie, Pe, Re, Ae, Ne;
|
|
9606
|
+
if (!((ie = ke == null ? void 0 : ke.properties) != null && ie.id)) return !1;
|
|
9607
|
+
const ae = Oe(ke.source);
|
|
9608
|
+
if (!ae) return !1;
|
|
9609
|
+
const Te = (Re = (Pe = ae == null ? void 0 : ae.opts) == null ? void 0 : Pe.source) == null ? void 0 : Re.type, Se = (Ne = (Ae = ae == null ? void 0 : ae.opts) == null ? void 0 : Ae.layer) == null ? void 0 : Ne.type;
|
|
9610
9610
|
return Te !== "raster" && Se !== "raster";
|
|
9611
9611
|
}) : [];
|
|
9612
9612
|
}
|
|
9613
9613
|
async function ye(z) {
|
|
9614
|
-
var Te, Se,
|
|
9614
|
+
var Te, Se, ie, Pe, Re;
|
|
9615
9615
|
const Z = (Te = z == null ? void 0 : z.lngLat) == null ? void 0 : Te.lng, he = (Se = z == null ? void 0 : z.lngLat) == null ? void 0 : Se.lat;
|
|
9616
9616
|
if (typeof Z != "number" || typeof he != "number") return [];
|
|
9617
9617
|
const ke = q();
|
|
9618
9618
|
if (!ke.length) return [];
|
|
9619
|
-
const
|
|
9619
|
+
const ae = [];
|
|
9620
9620
|
for (let Ae = 0; Ae < ke.length; Ae += 1) {
|
|
9621
9621
|
const Ne = ke[Ae], lt = new URLSearchParams({
|
|
9622
9622
|
layer: Ne,
|
|
@@ -9625,7 +9625,7 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9625
9625
|
});
|
|
9626
9626
|
try {
|
|
9627
9627
|
const Ie = await H(lt), Ge = B(
|
|
9628
|
-
((
|
|
9628
|
+
((ie = Ie == null ? void 0 : Ie.data) == null ? void 0 : ie.geom) ?? (Ie == null ? void 0 : Ie.geom) ?? null
|
|
9629
9629
|
), Je = ((Pe = Ie == null ? void 0 : Ie.data) == null ? void 0 : Pe.id) ?? (Ie == null ? void 0 : Ie.id);
|
|
9630
9630
|
if (Je != null) {
|
|
9631
9631
|
const tt = await H(new URLSearchParams({
|
|
@@ -9635,7 +9635,7 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9635
9635
|
((Re = tt == null ? void 0 : tt.data) == null ? void 0 : Re.geom) ?? (tt == null ? void 0 : tt.geom) ?? null
|
|
9636
9636
|
);
|
|
9637
9637
|
if (Ct || Ve) {
|
|
9638
|
-
|
|
9638
|
+
ae.push({
|
|
9639
9639
|
html: Ct,
|
|
9640
9640
|
geometry: Ve ?? Ge,
|
|
9641
9641
|
infoToken: `external:${Ne},${String(Je)}`
|
|
@@ -9643,7 +9643,7 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9643
9643
|
continue;
|
|
9644
9644
|
}
|
|
9645
9645
|
}
|
|
9646
|
-
bi({ html: Ie == null ? void 0 : Ie.html }) &&
|
|
9646
|
+
bi({ html: Ie == null ? void 0 : Ie.html }) && ae.push({
|
|
9647
9647
|
html: Ie.html,
|
|
9648
9648
|
geometry: Ge,
|
|
9649
9649
|
infoToken: null
|
|
@@ -9651,12 +9651,12 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9651
9651
|
} catch {
|
|
9652
9652
|
}
|
|
9653
9653
|
}
|
|
9654
|
-
return
|
|
9654
|
+
return ae;
|
|
9655
9655
|
}
|
|
9656
9656
|
async function Ce(z) {
|
|
9657
|
-
var
|
|
9657
|
+
var ae;
|
|
9658
9658
|
const Z = z == null ? void 0 : z.lngLat;
|
|
9659
|
-
T.value.includes("ruler") && a.value && Z && ((
|
|
9659
|
+
T.value.includes("ruler") && a.value && Z && ((ae = o.value) == null || ae.addPoint({ lat: Z.lat, lng: Z.lng }));
|
|
9660
9660
|
const he = fe(z), ke = await ye(z).catch(() => []);
|
|
9661
9661
|
$t({
|
|
9662
9662
|
features: he,
|
|
@@ -9678,19 +9678,19 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9678
9678
|
At();
|
|
9679
9679
|
return;
|
|
9680
9680
|
}
|
|
9681
|
-
if (V.value = null,
|
|
9682
|
-
V.value = "Геолокація не підтримується браузером",
|
|
9681
|
+
if (V.value = null, I.value = !0, !navigator.geolocation) {
|
|
9682
|
+
V.value = "Геолокація не підтримується браузером", I.value = !1;
|
|
9683
9683
|
return;
|
|
9684
9684
|
}
|
|
9685
9685
|
navigator.geolocation.getCurrentPosition(
|
|
9686
9686
|
(z) => {
|
|
9687
9687
|
const Z = z.coords.latitude, he = z.coords.longitude;
|
|
9688
|
-
S.value = { lat: Z, lng: he }, V.value = null,
|
|
9688
|
+
S.value = { lat: Z, lng: he }, V.value = null, I.value = !1, y.value = "geolocation", kt().then((ke) => {
|
|
9689
9689
|
ke != null && ke.flyTo && ke.flyTo({ center: [he, Z], zoom: 15 });
|
|
9690
9690
|
});
|
|
9691
9691
|
},
|
|
9692
9692
|
() => {
|
|
9693
|
-
V.value = "Не вдалося визначити місце розташування",
|
|
9693
|
+
V.value = "Не вдалося визначити місце розташування", I.value = !1;
|
|
9694
9694
|
},
|
|
9695
9695
|
{ enableHighAccuracy: !0 }
|
|
9696
9696
|
);
|
|
@@ -9720,8 +9720,8 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9720
9720
|
(z = L.value) == null || z.undo();
|
|
9721
9721
|
}
|
|
9722
9722
|
function en() {
|
|
9723
|
-
var
|
|
9724
|
-
const z = (Se = (Te = (
|
|
9723
|
+
var ae, Te, Se, ie;
|
|
9724
|
+
const z = (Se = (Te = (ae = k.value) == null ? void 0 : ae.ctx) == null ? void 0 : Te.map) == null ? void 0 : Se.value, Z = (ie = L.value) == null ? void 0 : ie.getCanvas();
|
|
9725
9725
|
if (!z || !Z) return;
|
|
9726
9726
|
const he = (Pe, Re) => {
|
|
9727
9727
|
const Ae = document.createElement("a");
|
|
@@ -9771,58 +9771,58 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9771
9771
|
const Z = z || !t.data;
|
|
9772
9772
|
d.value = Z;
|
|
9773
9773
|
try {
|
|
9774
|
-
const
|
|
9774
|
+
const ae = Z ? await (async () => {
|
|
9775
9775
|
const Re = await fetch(`/api/gis-map/${encodeURIComponent(oe.value)}`);
|
|
9776
9776
|
if (!Re.ok)
|
|
9777
9777
|
throw new Error(`Помилка завантаження (${Re.status})`);
|
|
9778
9778
|
return Re.json();
|
|
9779
9779
|
})() : t.data;
|
|
9780
9780
|
Z || ($.value = !0);
|
|
9781
|
-
const Te = Xt(
|
|
9781
|
+
const Te = Xt(ae.center) ?? ne, Se = Le(ae.layers).map((Re) => U(Re)), ie = re(ae.zoom) ?? de;
|
|
9782
9782
|
v.value = {
|
|
9783
|
-
...
|
|
9783
|
+
...ae,
|
|
9784
9784
|
center: Te ?? null,
|
|
9785
|
-
zoom:
|
|
9785
|
+
zoom: ie ?? ae.zoom ?? null,
|
|
9786
9786
|
layers: Se,
|
|
9787
|
-
widgets:
|
|
9788
|
-
}, T.value =
|
|
9787
|
+
widgets: ae.widgets
|
|
9788
|
+
}, T.value = ae.tools || ["home", "print", "ruler", "draw"];
|
|
9789
9789
|
const Pe = await kt();
|
|
9790
|
-
Pe && (Te && ((he = Pe.setCenter) == null || he.call(Pe, Te)),
|
|
9791
|
-
} catch (
|
|
9792
|
-
E.value = (
|
|
9790
|
+
Pe && (Te && ((he = Pe.setCenter) == null || he.call(Pe, Te)), ie != null && ((ke = Pe.setZoom) == null || ke.call(Pe, ie)), h.value || await ft()), await Kt(), await Mt(), await ln(), $.value = !0;
|
|
9791
|
+
} catch (ae) {
|
|
9792
|
+
E.value = (ae == null ? void 0 : ae.message) || "Не вдалося завантажити карту";
|
|
9793
9793
|
} finally {
|
|
9794
9794
|
Z && (d.value = !1);
|
|
9795
9795
|
}
|
|
9796
9796
|
}
|
|
9797
|
-
const Ht =
|
|
9797
|
+
const Ht = D(() => {
|
|
9798
9798
|
var ke;
|
|
9799
9799
|
const z = /* @__PURE__ */ new Map();
|
|
9800
|
-
return Le((ke = v.value) == null ? void 0 : ke.layers).forEach((
|
|
9801
|
-
if (!(
|
|
9802
|
-
const Te = U(
|
|
9803
|
-
z.set(
|
|
9804
|
-
}), je.value.filter((
|
|
9800
|
+
return Le((ke = v.value) == null ? void 0 : ke.layers).forEach((ae) => {
|
|
9801
|
+
if (!(ae != null && ae.id)) return;
|
|
9802
|
+
const Te = U(ae) || ae;
|
|
9803
|
+
z.set(ae.id, { ...Te });
|
|
9804
|
+
}), je.value.filter((ae) => (ae == null ? void 0 : ae.type) === "layers").flatMap((ae) => {
|
|
9805
9805
|
var Te;
|
|
9806
|
-
return Le((Te =
|
|
9807
|
-
}).forEach((
|
|
9808
|
-
if (!(
|
|
9809
|
-
const Te = z.get(
|
|
9810
|
-
z.set(
|
|
9806
|
+
return Le((Te = ae == null ? void 0 : ae.config) == null ? void 0 : Te.layers);
|
|
9807
|
+
}).forEach((ae) => {
|
|
9808
|
+
if (!(ae != null && ae.id)) return;
|
|
9809
|
+
const Te = z.get(ae.id) || {}, Se = U(ae) || ae;
|
|
9810
|
+
z.set(ae.id, {
|
|
9811
9811
|
...Te,
|
|
9812
9812
|
...Se,
|
|
9813
9813
|
// keep any explicit widget actions (e.g. open filters)
|
|
9814
|
-
actions:
|
|
9814
|
+
actions: ae.actions || Te.actions || null,
|
|
9815
9815
|
// fallbacks so the panel can render a readable name
|
|
9816
|
-
name: Te.name ||
|
|
9817
|
-
title: Te.title ||
|
|
9818
|
-
visible: Te.visible ??
|
|
9816
|
+
name: Te.name || ae.name || ae.title || Te.title || ae.id,
|
|
9817
|
+
title: Te.title || ae.title || Te.name || null,
|
|
9818
|
+
visible: Te.visible ?? ae.visible ?? !0
|
|
9819
9819
|
});
|
|
9820
9820
|
}), Array.from(z.values());
|
|
9821
9821
|
}), Zt = F([]);
|
|
9822
9822
|
function Gt(z) {
|
|
9823
9823
|
Zt.value.includes(z) ? Zt.value = Zt.value.filter((Z) => Z !== z) : Zt.value.push(z);
|
|
9824
9824
|
}
|
|
9825
|
-
const xn =
|
|
9825
|
+
const xn = D(() => (z) => Zt.value.includes(z.id));
|
|
9826
9826
|
return ce([W, R], () => {
|
|
9827
9827
|
Kt();
|
|
9828
9828
|
}, { immediate: !0 }), ce(oe, () => {
|
|
@@ -9853,7 +9853,7 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9853
9853
|
class: "map-widget__view"
|
|
9854
9854
|
}, {
|
|
9855
9855
|
default: Lt(() => {
|
|
9856
|
-
var he, ke,
|
|
9856
|
+
var he, ke, ae, Te;
|
|
9857
9857
|
return [
|
|
9858
9858
|
it.value ? K("", !0) : (s(), pe(qn, {
|
|
9859
9859
|
key: 0,
|
|
@@ -9875,7 +9875,7 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9875
9875
|
onFinishPolygon: Fn,
|
|
9876
9876
|
onUndo: Rn,
|
|
9877
9877
|
"onUpdate:tool": Z[1] || (Z[1] = (Se) => P.value = Se),
|
|
9878
|
-
"onUpdate:strokeColor": Z[2] || (Z[2] = (Se) =>
|
|
9878
|
+
"onUpdate:strokeColor": Z[2] || (Z[2] = (Se) => j.value = Se),
|
|
9879
9879
|
"onUpdate:strokeWidth": Z[3] || (Z[3] = (Se) => M.value = Se)
|
|
9880
9880
|
}, null, 512)
|
|
9881
9881
|
])) : K("", !0),
|
|
@@ -9908,7 +9908,7 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9908
9908
|
T.value.includes("home") ? (s(), pe(Hc, {
|
|
9909
9909
|
key: 0,
|
|
9910
9910
|
center: ((he = v.value) == null ? void 0 : he.center) || ((ke = h.value) == null ? void 0 : ke.center) || null,
|
|
9911
|
-
zoom: ((
|
|
9911
|
+
zoom: ((ae = v.value) == null ? void 0 : ae.zoom) ?? ((Te = h.value) == null ? void 0 : Te.zoom) ?? null
|
|
9912
9912
|
}, null, 8, ["center", "zoom"])) : K("", !0),
|
|
9913
9913
|
T.value.includes("print") ? (s(), pe(Bc, { key: 1 })) : K("", !0),
|
|
9914
9914
|
T.value.includes("geolocation") ? (s(), m("button", {
|
|
@@ -9919,7 +9919,7 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9919
9919
|
_.value ? "bg-blue-500 text-white hover:bg-blue-600" : "bg-white text-gray-700 hover:bg-gray-50 hover:scale-105"
|
|
9920
9920
|
]),
|
|
9921
9921
|
"aria-label": _.value ? "Вимкнути геолокацію" : "Ваше розташування",
|
|
9922
|
-
disabled:
|
|
9922
|
+
disabled: I.value,
|
|
9923
9923
|
onClick: qe(_t, ["stop"])
|
|
9924
9924
|
}, [
|
|
9925
9925
|
e("span", Af, Y(_.value ? "Вимкнути геолокацію" : "Ваше розташування"), 1),
|
|
@@ -9967,7 +9967,7 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9967
9967
|
ref_key: "drawingCanvasRef",
|
|
9968
9968
|
ref: L,
|
|
9969
9969
|
tool: P.value,
|
|
9970
|
-
"stroke-color":
|
|
9970
|
+
"stroke-color": j.value,
|
|
9971
9971
|
"stroke-width": M.value
|
|
9972
9972
|
}, null, 8, ["tool", "stroke-color", "stroke-width"])) : K("", !0),
|
|
9973
9973
|
$.value ? (s(), m(te, { key: 7 }, [
|
|
@@ -9979,96 +9979,96 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
9979
9979
|
Se === "left" ? (s(), m("div", jf)) : K("", !0),
|
|
9980
9980
|
Et.value[Se].top.length ? (s(), m("div", If, [
|
|
9981
9981
|
e("div", Df, [
|
|
9982
|
-
(s(!0), m(te, null, ve(Et.value[Se].top, (
|
|
9982
|
+
(s(!0), m(te, null, ve(Et.value[Se].top, (ie) => {
|
|
9983
9983
|
var Pe, Re, Ae, Ne, lt, Ie, Ge;
|
|
9984
9984
|
return Ye((s(), m("div", {
|
|
9985
|
-
key:
|
|
9985
|
+
key: ie.id || ie.type,
|
|
9986
9986
|
class: "map-overlay__item"
|
|
9987
9987
|
}, [
|
|
9988
|
-
|
|
9988
|
+
ie.type === "info" ? (s(), pe(ho, {
|
|
9989
9989
|
key: 0,
|
|
9990
|
-
title: ((Pe =
|
|
9991
|
-
content: ((Re =
|
|
9990
|
+
title: ((Pe = ie.config) == null ? void 0 : Pe.title) || ie.title || null,
|
|
9991
|
+
content: ((Re = ie.config) == null ? void 0 : Re.content) || "",
|
|
9992
9992
|
links: G.value,
|
|
9993
9993
|
"map-name": J.value,
|
|
9994
9994
|
"map-description": ee.value
|
|
9995
|
-
}, null, 8, ["title", "content", "links", "map-name", "map-description"])) :
|
|
9995
|
+
}, null, 8, ["title", "content", "links", "map-name", "map-description"])) : ie.type === "catalog" ? (s(), pe(Lo, {
|
|
9996
9996
|
key: 1,
|
|
9997
|
-
api: ((Ae =
|
|
9998
|
-
}, null, 8, ["api"])) :
|
|
9997
|
+
api: ((Ae = ie.config) == null ? void 0 : Ae.api) || null
|
|
9998
|
+
}, null, 8, ["api"])) : ie.type === "layers" ? (s(), pe(xo, {
|
|
9999
9999
|
key: 2,
|
|
10000
10000
|
layers: Ht.value,
|
|
10001
10001
|
onAction: Z[6] || (Z[6] = (Je) => Gt(Je.layerId)),
|
|
10002
|
-
config:
|
|
10003
|
-
}, null, 8, ["layers", "config"])) :
|
|
10002
|
+
config: ie.config
|
|
10003
|
+
}, null, 8, ["layers", "config"])) : ie.type === "basemaps" ? (s(), pe(qn, {
|
|
10004
10004
|
key: 3,
|
|
10005
|
-
layers: ((Ne =
|
|
10006
|
-
"default-layer": ((lt =
|
|
10007
|
-
title:
|
|
10008
|
-
}, null, 8, ["layers", "default-layer", "title"])) :
|
|
10005
|
+
layers: ((Ne = ie.config) == null ? void 0 : Ne.layers) || null,
|
|
10006
|
+
"default-layer": ((lt = ie.config) == null ? void 0 : lt.default) || null,
|
|
10007
|
+
title: ie.title || ((Ie = ie.config) == null ? void 0 : Ie.title) || null
|
|
10008
|
+
}, null, 8, ["layers", "default-layer", "title"])) : ie.type === "legend" ? (s(), pe($o, {
|
|
10009
10009
|
key: 4,
|
|
10010
|
-
items: st(
|
|
10011
|
-
}, null, 8, ["items"])) :
|
|
10010
|
+
items: st(ie)
|
|
10011
|
+
}, null, 8, ["items"])) : ie.type === "filters" && xn.value(ie) ? (s(), pe(Co, {
|
|
10012
10012
|
key: 5,
|
|
10013
|
-
"layer-id": (Ge =
|
|
10013
|
+
"layer-id": (Ge = ie.config) == null ? void 0 : Ge.layer,
|
|
10014
10014
|
onClose: Gt
|
|
10015
|
-
}, null, 8, ["layer-id"])) :
|
|
10015
|
+
}, null, 8, ["layer-id"])) : ie.type === "dataset" || ie.type === "attribute" ? (s(), pe(So, {
|
|
10016
10016
|
key: 6,
|
|
10017
|
-
config:
|
|
10018
|
-
}, null, 8, ["config"])) :
|
|
10017
|
+
config: ie.config
|
|
10018
|
+
}, null, 8, ["config"])) : ie.type === "search" ? (s(), pe(Mo, {
|
|
10019
10019
|
key: 7,
|
|
10020
|
-
config:
|
|
10020
|
+
config: ie.config
|
|
10021
10021
|
}, null, 8, ["config"])) : K("", !0)
|
|
10022
10022
|
])), [
|
|
10023
|
-
[gn,
|
|
10023
|
+
[gn, ie.visible !== !1]
|
|
10024
10024
|
]);
|
|
10025
10025
|
}), 128))
|
|
10026
10026
|
])
|
|
10027
10027
|
])) : K("", !0),
|
|
10028
10028
|
Et.value[Se].bottom.length ? (s(), m("div", Nf, [
|
|
10029
10029
|
e("div", Of, [
|
|
10030
|
-
(s(!0), m(te, null, ve(Et.value[Se].bottom, (
|
|
10030
|
+
(s(!0), m(te, null, ve(Et.value[Se].bottom, (ie) => {
|
|
10031
10031
|
var Pe, Re, Ae, Ne, lt, Ie, Ge;
|
|
10032
10032
|
return Ye((s(), m("div", {
|
|
10033
|
-
key:
|
|
10033
|
+
key: ie.id || ie.type,
|
|
10034
10034
|
class: "map-overlay__item"
|
|
10035
10035
|
}, [
|
|
10036
|
-
|
|
10036
|
+
ie.type === "info" ? (s(), pe(ho, {
|
|
10037
10037
|
key: 0,
|
|
10038
|
-
title: ((Pe =
|
|
10039
|
-
content: ((Re =
|
|
10038
|
+
title: ((Pe = ie.config) == null ? void 0 : Pe.title) || ie.title || null,
|
|
10039
|
+
content: ((Re = ie.config) == null ? void 0 : Re.content) || "",
|
|
10040
10040
|
links: G.value,
|
|
10041
10041
|
"map-name": J.value,
|
|
10042
10042
|
"map-description": ee.value
|
|
10043
|
-
}, null, 8, ["title", "content", "links", "map-name", "map-description"])) :
|
|
10043
|
+
}, null, 8, ["title", "content", "links", "map-name", "map-description"])) : ie.type === "catalog" ? (s(), pe(Lo, {
|
|
10044
10044
|
key: 1,
|
|
10045
|
-
api: ((Ae =
|
|
10046
|
-
}, null, 8, ["api"])) :
|
|
10045
|
+
api: ((Ae = ie.config) == null ? void 0 : Ae.api) || null
|
|
10046
|
+
}, null, 8, ["api"])) : ie.type === "layers" ? (s(), pe(xo, {
|
|
10047
10047
|
key: 2,
|
|
10048
10048
|
layers: Ht.value,
|
|
10049
10049
|
onAction: Z[7] || (Z[7] = (Je) => Gt(Je.layerId)),
|
|
10050
|
-
config:
|
|
10051
|
-
}, null, 8, ["layers", "config"])) :
|
|
10050
|
+
config: ie.config
|
|
10051
|
+
}, null, 8, ["layers", "config"])) : ie.type === "basemaps" ? (s(), pe(qn, {
|
|
10052
10052
|
key: 3,
|
|
10053
|
-
layers: ((Ne =
|
|
10054
|
-
"default-layer": ((lt =
|
|
10055
|
-
title:
|
|
10056
|
-
}, null, 8, ["layers", "default-layer", "title"])) :
|
|
10053
|
+
layers: ((Ne = ie.config) == null ? void 0 : Ne.layers) || null,
|
|
10054
|
+
"default-layer": ((lt = ie.config) == null ? void 0 : lt.default) || null,
|
|
10055
|
+
title: ie.title || ((Ie = ie.config) == null ? void 0 : Ie.title) || null
|
|
10056
|
+
}, null, 8, ["layers", "default-layer", "title"])) : ie.type === "legend" ? (s(), pe($o, {
|
|
10057
10057
|
key: 4,
|
|
10058
|
-
items: st(
|
|
10059
|
-
}, null, 8, ["items"])) :
|
|
10058
|
+
items: st(ie)
|
|
10059
|
+
}, null, 8, ["items"])) : ie.type === "filters" && xn.value(ie) ? (s(), pe(Co, {
|
|
10060
10060
|
key: 5,
|
|
10061
|
-
"layer-id": (Ge =
|
|
10061
|
+
"layer-id": (Ge = ie.config) == null ? void 0 : Ge.layer,
|
|
10062
10062
|
onClose: Gt
|
|
10063
|
-
}, null, 8, ["layer-id"])) :
|
|
10063
|
+
}, null, 8, ["layer-id"])) : ie.type === "dataset" || ie.type === "attribute" ? (s(), pe(So, {
|
|
10064
10064
|
key: 6,
|
|
10065
|
-
config:
|
|
10066
|
-
}, null, 8, ["config"])) :
|
|
10065
|
+
config: ie.config
|
|
10066
|
+
}, null, 8, ["config"])) : ie.type === "search" ? (s(), pe(Mo, {
|
|
10067
10067
|
key: 7,
|
|
10068
|
-
config:
|
|
10068
|
+
config: ie.config
|
|
10069
10069
|
}, null, 8, ["config"])) : K("", !0)
|
|
10070
10070
|
])), [
|
|
10071
|
-
[gn,
|
|
10071
|
+
[gn, ie.visible !== !1]
|
|
10072
10072
|
]);
|
|
10073
10073
|
}), 128))
|
|
10074
10074
|
])
|
|
@@ -10085,7 +10085,7 @@ const id = { class: "flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"
|
|
|
10085
10085
|
d.value ? (s(), m("div", Bf, "Завантаження карти…")) : E.value ? (s(), m("div", Uf, Y(E.value), 1)) : K("", !0)
|
|
10086
10086
|
], 4));
|
|
10087
10087
|
}
|
|
10088
|
-
}), qf = /* @__PURE__ */ We(Vf, [["__scopeId", "data-v-
|
|
10088
|
+
}), qf = /* @__PURE__ */ We(Vf, [["__scopeId", "data-v-71645c6a"]]), Wf = [
|
|
10089
10089
|
"",
|
|
10090
10090
|
"січня",
|
|
10091
10091
|
"лютого",
|
|
@@ -10144,7 +10144,7 @@ const Hf = { class: "flex flex-col md:flex-row md:justify-between lg:flex-row lg
|
|
|
10144
10144
|
hideDetailsButton: { type: Boolean, default: !1 }
|
|
10145
10145
|
},
|
|
10146
10146
|
setup(n) {
|
|
10147
|
-
const t = n, l =
|
|
10147
|
+
const t = n, l = D(() => t.items && t.items.length || t.items ? t.items : t.item != null ? [t.item] : []), r = (p) => (p == null ? void 0 : p.service_id) && (p == null ? void 0 : p.is_map) && p[t.id_key] && (p == null ? void 0 : p.geom), k = D(() => t.columns.find((p) => p.meta === "title")), v = D(() => t.columns.filter((p) => p.meta === "category")), h = D(() => t.columns.filter((p) => p.meta === "tags")), d = D(() => t.columns.filter((p) => p.meta !== "title")), E = (p, y) => {
|
|
10148
10148
|
if (y)
|
|
10149
10149
|
return p[y];
|
|
10150
10150
|
}, $ = (p) => {
|
|
@@ -10280,7 +10280,7 @@ const Hf = { class: "flex flex-col md:flex-row md:justify-between lg:flex-row lg
|
|
|
10280
10280
|
hideDetailsButton: { type: Boolean, default: !1 }
|
|
10281
10281
|
},
|
|
10282
10282
|
setup(n) {
|
|
10283
|
-
const t = n, l =
|
|
10283
|
+
const t = n, l = D(() => t.items && t.items.length || t.items ? t.items : t.item != null ? [t.item] : []), r = (p) => (p == null ? void 0 : p.service_id) && (p == null ? void 0 : p.is_map) && p[t.id_key] && (p == null ? void 0 : p.geom), k = D(() => t.columns.find((p) => p.meta === "title")), v = D(() => t.columns.filter((p) => p.meta === "category")), h = D(() => t.columns.filter((p) => p.meta === "tags")), d = D(() => t.columns.filter((p) => p.meta !== "title")), E = (p, y) => {
|
|
10284
10284
|
if (y)
|
|
10285
10285
|
return p[y];
|
|
10286
10286
|
}, $ = (p) => {
|
|
@@ -10417,7 +10417,7 @@ const Hf = { class: "flex flex-col md:flex-row md:justify-between lg:flex-row lg
|
|
|
10417
10417
|
hideDetailsButton: { type: Boolean, default: !1 }
|
|
10418
10418
|
},
|
|
10419
10419
|
setup(n) {
|
|
10420
|
-
const t = n, l =
|
|
10420
|
+
const t = n, l = D(() => t.items && t.items.length || t.items ? t.items : t.item != null ? [t.item] : []), r = (y) => (y == null ? void 0 : y.service_id) && (y == null ? void 0 : y.is_map) && y[t.id_key] && (y == null ? void 0 : y.geom), k = D(() => t.columns.find((y) => y.meta === "title")), v = D(() => t.columns.filter((y) => y.meta === "category")), h = D(() => t.columns.filter((y) => y.meta === "tags")), d = D(() => t.columns.filter((y) => y.meta !== "title")), E = D(() => "bg-blue-500"), $ = (y, a) => {
|
|
10421
10421
|
if (a)
|
|
10422
10422
|
return y[a];
|
|
10423
10423
|
}, T = (y) => {
|
|
@@ -10470,8 +10470,8 @@ const Hf = { class: "flex flex-col md:flex-row md:justify-between lg:flex-row lg
|
|
|
10470
10470
|
}, [
|
|
10471
10471
|
e("p", Rp, Y(w.ua), 1),
|
|
10472
10472
|
e("p", jp, [
|
|
10473
|
-
Array.isArray(u[w.name]) ? (s(!0), m(te, { key: 0 }, ve(u[w.name], (P,
|
|
10474
|
-
key:
|
|
10473
|
+
Array.isArray(u[w.name]) ? (s(!0), m(te, { key: 0 }, ve(u[w.name], (P, j) => (s(), m("span", {
|
|
10474
|
+
key: j,
|
|
10475
10475
|
class: "bg-gray-200 px-1 py-0.5 rounded-lg mr-1 text-[10px] lg:text-xs"
|
|
10476
10476
|
}, Y(P), 1))), 128)) : (s(), m(te, { key: 1 }, [
|
|
10477
10477
|
w.format === "date" ? (s(), m(te, { key: 0 }, [
|
|
@@ -10555,7 +10555,7 @@ const Hf = { class: "flex flex-col md:flex-row md:justify-between lg:flex-row lg
|
|
|
10555
10555
|
hideDetailsButton: { type: Boolean, default: !1 }
|
|
10556
10556
|
},
|
|
10557
10557
|
setup(n) {
|
|
10558
|
-
const t = n, l =
|
|
10558
|
+
const t = n, l = D(() => t.items && t.items.length || t.items ? t.items : t.item != null ? [t.item] : []), r = (p) => (p == null ? void 0 : p.service_id) && (p == null ? void 0 : p.is_map) && p[t.id_key] && (p == null ? void 0 : p.geom), k = D(() => t.columns.find((p) => p.meta === "title")), v = D(() => t.columns.filter((p) => p.meta === "category")), h = D(() => t.columns.filter((p) => p.meta === "tags")), d = D(() => t.columns.filter((p) => p.meta !== "title")), E = (p, y) => {
|
|
10559
10559
|
if (y)
|
|
10560
10560
|
return p[y];
|
|
10561
10561
|
}, $ = (p) => {
|
|
@@ -10658,7 +10658,7 @@ const Hf = { class: "flex flex-col md:flex-row md:justify-between lg:flex-row lg
|
|
|
10658
10658
|
hideDetailsButton: { type: Boolean, default: !1 }
|
|
10659
10659
|
},
|
|
10660
10660
|
setup(n) {
|
|
10661
|
-
const t = n, l =
|
|
10661
|
+
const t = n, l = D(() => t.items && t.items.length || t.items ? t.items : t.item != null ? [t.item] : []), r = (a) => (a == null ? void 0 : a.service_id) && (a == null ? void 0 : a.is_map) && a[t.id_key] && (a == null ? void 0 : a.geom), k = D(() => t.columns.find((a) => a.meta === "title")), v = D(() => t.columns.filter((a) => a.meta === "category")), h = D(() => t.columns.filter((a) => a.meta === "tags")), d = D(() => t.columns.filter((a) => a.meta !== "title")), E = D(() => t.columns.find((a) => a.meta === "image")), $ = D(
|
|
10662
10662
|
() => t.columns.find((a) => a.meta === "desc") || t.columns.find((a) => a.name === "description")
|
|
10663
10663
|
), T = (a, u) => {
|
|
10664
10664
|
if (u)
|
|
@@ -10671,7 +10671,7 @@ const Hf = { class: "flex flex-col md:flex-row md:justify-between lg:flex-row lg
|
|
|
10671
10671
|
return `/map?layers=${u}&info=${u},${_}`;
|
|
10672
10672
|
};
|
|
10673
10673
|
return (a, u) => (s(!0), m(te, null, ve(l.value, (_) => {
|
|
10674
|
-
var c, o, w, L, P,
|
|
10674
|
+
var c, o, w, L, P, j, M, x, C;
|
|
10675
10675
|
return s(), m("div", {
|
|
10676
10676
|
key: _.id,
|
|
10677
10677
|
class: "bg-white border border-gray-200 rounded-lg overflow-hidden transition-all duration-200 hover:shadow-md"
|
|
@@ -10702,10 +10702,10 @@ const Hf = { class: "flex flex-col md:flex-row md:justify-between lg:flex-row lg
|
|
|
10702
10702
|
], 64))), 128)) : K("", !0)
|
|
10703
10703
|
])
|
|
10704
10704
|
]),
|
|
10705
|
-
e("p", ig, Y(((M = _[((
|
|
10705
|
+
e("p", ig, Y(((M = _[((j = $.value) == null ? void 0 : j.name) + "_data"]) == null ? void 0 : M.text) || _[((x = $.value) == null ? void 0 : x.name) + "_text"] || _[(C = $.value) == null ? void 0 : C.name]), 1),
|
|
10706
10706
|
e("div", ug, [
|
|
10707
10707
|
(s(!0), m(te, null, ve(d.value, (S) => {
|
|
10708
|
-
var
|
|
10708
|
+
var I;
|
|
10709
10709
|
return s(), m("div", {
|
|
10710
10710
|
key: S.name,
|
|
10711
10711
|
class: "flex flex-col md:flex-row md:items-center"
|
|
@@ -10728,7 +10728,7 @@ const Hf = { class: "flex flex-col md:flex-row md:justify-between lg:flex-row lg
|
|
|
10728
10728
|
], 64)) : S.type === "date" ? (s(), m(te, { key: 1 }, [
|
|
10729
10729
|
xe(Y(se(hn)(_[S == null ? void 0 : S.name]) || "Немає даних"), 1)
|
|
10730
10730
|
], 64)) : (s(), m(te, { key: 2 }, [
|
|
10731
|
-
xe(Y(((
|
|
10731
|
+
xe(Y(((I = _[(S == null ? void 0 : S.name) + "_data"]) == null ? void 0 : I.text) || _[(S == null ? void 0 : S.name) + "_text"] || _[S == null ? void 0 : S.name] || "Немає даних"), 1)
|
|
10732
10732
|
], 64))
|
|
10733
10733
|
], 64))
|
|
10734
10734
|
])
|