@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.
Files changed (197) hide show
  1. package/README.md +181 -181
  2. package/dist/{CardIcon-CwtOJb6Z.js → CardIcon-COYvGn3y.js} +1 -1
  3. package/dist/{EntityTablePage-BZcdLpRo.js → EntityTablePage-n5jN3Vg8.js} +2 -2
  4. package/dist/{ExtentOutlineLayer.vue_vue_type_script_setup_true_lang-BkUQoTIz.js → ExtentOutlineLayer.vue_vue_type_script_setup_true_lang-_bbOMBQM.js} +1 -1
  5. package/dist/{HeaderActions.vue_vue_type_script_setup_true_lang-ls8AXq2-.js → HeaderActions.vue_vue_type_script_setup_true_lang-X8W5T9FU.js} +1 -1
  6. package/dist/{MapSettings-B9MYgBIp.js → MapSettings-DFpaiasG.js} +2 -2
  7. package/dist/{RastersTablePage-BoVW5Fv8.js → RastersTablePage-BDPlRImd.js} +2 -2
  8. package/dist/{cartocss-DYZTBG6c.js → cartocss-DAww4B8T.js} +5 -5
  9. package/dist/{import-utils-DsfbRYWS.js → import-utils-BD6m47wz.js} +1 -1
  10. package/dist/{index-FZ4LFEYB.js → index-DgSwtpZG.js} +666 -666
  11. package/dist/index.css +1 -1
  12. package/dist/index.js +1 -1
  13. package/dist/index.umd.cjs +8 -8
  14. package/dist/{raster-BsoWgW3l.js → raster-Dj4pagIY.js} +3 -3
  15. package/dist/{register-BKQkDmho.js → register-lve1-eW0.js} +3 -3
  16. package/dist/{service-B3tj7wpL.js → service-DfMY6QRr.js} +6 -6
  17. package/dist/{vs-datatable-N1huoMSR.js → vs-datatable-CMGb14xz.js} +2 -2
  18. package/module/cls.json +6 -6
  19. package/module/gis/card/gis.metadata.table/index.yml +22 -22
  20. package/module/gis/card/gis.metadata.table/main_info.hbs +20 -20
  21. package/module/gis/card/gis.metadata.table/metadata_info.hbs +27 -27
  22. package/module/gis/card/gis.metadata.table/other.hbs +25 -25
  23. package/module/gis/card/gis.rasters.table/index.yml +11 -11
  24. package/module/gis/card/gis.rasters.table/main_info.hbs +27 -27
  25. package/module/gis/card/gis.registers.table/cls.hbs +36 -36
  26. package/module/gis/card/gis.registers.table/columns.hbs +89 -89
  27. package/module/gis/card/gis.registers.table/filters.hbs +80 -80
  28. package/module/gis/card/gis.registers.table/index.yml +23 -23
  29. package/module/gis/card/gis.registers.table/main_info.hbs +35 -35
  30. package/module/gis/card/gis.registers.table/source.hbs +45 -45
  31. package/module/gis/card/gis.services.table/attributes.hbs +91 -91
  32. package/module/gis/card/gis.services.table/filters.hbs +83 -83
  33. package/module/gis/card/gis.services.table/index.yml +25 -25
  34. package/module/gis/card/gis.services.table/main_info.hbs +27 -27
  35. package/module/gis/card/gis.services.table/source.hbs +25 -25
  36. package/module/gis/cls/bool.yes_no.json +12 -12
  37. package/module/gis/cls/encoding.json +14 -14
  38. package/module/gis/cls/geom_type.json +14 -14
  39. package/module/gis/cls/gis.column_type.json +34 -34
  40. package/module/gis/cls/gis.column_view_type.json +26 -26
  41. package/module/gis/cls/gis.filter_type.json +22 -22
  42. package/module/gis/cls/language.json +10 -10
  43. package/module/gis/cls/meta.service_type.json +42 -42
  44. package/module/gis/cls/ogc.service.json +21 -21
  45. package/module/gis/cls/service_type.json +42 -42
  46. package/module/gis/cls/source_type.json +10 -10
  47. package/module/gis/cls/standarts.json +6 -6
  48. package/module/gis/cls/topic_category.json +106 -106
  49. package/module/gis/cls/update_frequency.json +29 -29
  50. package/module/gis/cls/view.json +21 -21
  51. package/module/gis/form/feedback.answer.form.json +10 -10
  52. package/module/gis/form/gis.cartocss.form.json +64 -64
  53. package/module/gis/form/gis.group_list.form.json +17 -17
  54. package/module/gis/form/gis.maps.form.json +61 -61
  55. package/module/gis/form/gis.metadata.form.json +240 -240
  56. package/module/gis/form/gis.metadata_new.form.json +195 -195
  57. package/module/gis/form/gis.ogc_service.form.json +51 -51
  58. package/module/gis/form/gis.rasters.form.json +76 -76
  59. package/module/gis/form/gis.registers.form.json +124 -124
  60. package/module/gis/form/gis.registers_column.form.json +84 -84
  61. package/module/gis/form/gis.registers_filter.form.json +65 -65
  62. package/module/gis/form/gis.services.form.json +111 -111
  63. package/module/gis/form/gis.services_attributes.form.json +75 -75
  64. package/module/gis/form/gis.services_filter.form.json +65 -65
  65. package/module/gis/menu.json +43 -43
  66. package/module/gis/select/admin.cls.name.sql +9 -9
  67. package/module/gis/select/layer_list.sql +7 -7
  68. package/module/gis/select/layer_list_text.sql +7 -7
  69. package/module/gis/select/pg.column_name.geometry.sql +12 -12
  70. package/module/gis/select/pg.columns.parent.sql +6 -6
  71. package/module/gis/select/pg.table_name.sql +17 -17
  72. package/module/gis/select/service_id.sql +1 -1
  73. package/module/gis/table/gis.cartocss.table.json +74 -74
  74. package/module/gis/table/gis.group_list.table.json +58 -58
  75. package/module/gis/table/gis.maps.table.json +110 -110
  76. package/module/gis/table/gis.metadata.table.json +70 -70
  77. package/module/gis/table/gis.metadata_new.table.json +137 -137
  78. package/module/gis/table/gis.ogc_service.table.json +100 -100
  79. package/module/gis/table/gis.rasters.table.json +113 -113
  80. package/module/gis/table/gis.registers.table.json +143 -143
  81. package/module/gis/table/gis.services.table.json +120 -120
  82. package/module/gis/table/site.gis.registers.table.json +88 -88
  83. package/module/gis/table/site.gis.services.table.json +106 -106
  84. package/module/gis/templates/ISO19136_2017_gml_template.xml +330 -330
  85. package/module/gis/tokens.yml +5 -5
  86. package/module/permissions/form/permissions.users.form.json +151 -151
  87. package/module/permissions/table/gis.permissions.table.json +97 -97
  88. package/module/test/cls/bp_build_type.json +37 -37
  89. package/module/test/cls/doc_status.json +31 -31
  90. package/module/test/cls/ts.temp_status.json +18 -18
  91. package/module/test/cls/ts.temp_structure.ts_class.json +49 -49
  92. package/module/test/cls/ts.temp_type.json +9 -9
  93. package/module/test/layer/bp.json +59 -59
  94. package/module/test/layer/bp1.yml +33 -33
  95. package/module/test/layer/individual.yml +53 -53
  96. package/module/test/layer/ts.linking_passport.yml +55 -55
  97. package/module/test/layer/ts.temp_structure.yml +50 -50
  98. package/module/test/map/addr.yml +21 -21
  99. package/module/test/map/bp_myo.json +43 -43
  100. package/module/test/map/bpf.json +43 -43
  101. package/module/test/map/main.json +37 -37
  102. package/module/test/map/mbd.json +92 -92
  103. package/module/test/map/ts.json +53 -53
  104. package/module/test/select/address_id.json +2 -2
  105. package/module/test/select/address_id.sql +7 -7
  106. package/module/test/select/core.user_uid.sql +1 -1
  107. package/module/test/table/data_address.street.table.json +69 -69
  108. package/module/test/table/data_bp_myo.bp.table.json +122 -122
  109. package/package.json +75 -75
  110. package/plugin.js +55 -55
  111. package/server/migrations/array_intersect.sql +13 -13
  112. package/server/migrations/cartocss.sql +27 -27
  113. package/server/migrations/group_list.sql +74 -74
  114. package/server/migrations/maps.sql +30 -30
  115. package/server/migrations/metadata.sql +415 -415
  116. package/server/migrations/ogc.sql +106 -106
  117. package/server/migrations/rasters.sql +265 -265
  118. package/server/migrations/services.sql +247 -247
  119. package/server/migrations/services_users_rel.sql +22 -22
  120. package/server/migrations/widgets.sql +20 -20
  121. package/server/plugins/crons.js +21 -21
  122. package/server/plugins/mapnik/funcs/checkRasterFile.js +109 -109
  123. package/server/plugins/mapnik/funcs/mapnik.js +151 -151
  124. package/server/plugins/mapnik/funcs/rootFolder.mjs +8 -8
  125. package/server/plugins/mapnik/map.proto +230 -230
  126. package/server/plugins/vite.js +74 -74
  127. package/server/routes/gis/cartocss/add.cartocss.js +42 -42
  128. package/server/routes/gis/cartocss/get.cartocss.js +59 -59
  129. package/server/routes/gis/checkXML.js +117 -117
  130. package/server/routes/gis/dashboard.js +29 -29
  131. package/server/routes/gis/index.mjs +87 -87
  132. package/server/routes/gis/metadata/editMetadata.js +34 -34
  133. package/server/routes/gis/metadata/metadataXML.js +13 -13
  134. package/server/routes/gis/ogc/map.info.point.js +124 -124
  135. package/server/routes/gis/registers/add.registry.js +35 -35
  136. package/server/routes/gis/registers/del.registry.js +14 -14
  137. package/server/routes/gis/registers/funcs/classifiers.js +100 -100
  138. package/server/routes/gis/registers/funcs/columns.js +3 -3
  139. package/server/routes/gis/registers/funcs/content.type.js +9 -9
  140. package/server/routes/gis/registers/funcs/get.info.js +89 -89
  141. package/server/routes/gis/registers/funcs/handleRegistryRequest.js +146 -146
  142. package/server/routes/gis/registers/gis.export.js +153 -153
  143. package/server/routes/gis/registers/gis.registry.js +64 -64
  144. package/server/routes/gis/registers/gis.registry.list.js +59 -59
  145. package/server/routes/gis/registers/insert.columns.js +107 -107
  146. package/server/routes/gis/registers/insert.filters.js +110 -110
  147. package/server/routes/gis/registers/map.registry.js +79 -79
  148. package/server/routes/gis/services/add.service.js +64 -64
  149. package/server/routes/gis/services/del.service.js +12 -12
  150. package/server/routes/gis/services/get.layer.geom.js +27 -27
  151. package/server/routes/gis/services/get.services.col.js +33 -33
  152. package/server/routes/gis/services/get.services.js +84 -84
  153. package/server/routes/gis/services/legend.auto.js +77 -77
  154. package/server/routes/map/controllers/clearTiles.js +34 -34
  155. package/server/routes/map/controllers/geojson.js +187 -187
  156. package/server/routes/map/controllers/jsonData.js +205 -205
  157. package/server/routes/map/controllers/layerList.js +102 -102
  158. package/server/routes/map/controllers/map.js +123 -123
  159. package/server/routes/map/controllers/mapCatalog.js +72 -72
  160. package/server/routes/map/controllers/mapCatalogAttribute.js +55 -55
  161. package/server/routes/map/controllers/mapFeatures.js +128 -128
  162. package/server/routes/map/controllers/mapFormat.js +234 -234
  163. package/server/routes/map/controllers/mapTiles.js +152 -152
  164. package/server/routes/map/controllers/maps.js +15 -15
  165. package/server/routes/map/controllers/marker_icon.js +43 -43
  166. package/server/routes/map/controllers/vtile.js +172 -172
  167. package/server/routes/map/index.mjs +169 -169
  168. package/server/routes/map/maps/add.map.js +43 -43
  169. package/server/routes/map/maps/del.map.js +18 -18
  170. package/server/routes/map/maps/get.map.js +118 -118
  171. package/server/routes/map/vtile1.js +179 -179
  172. package/server/routes/map/widgets/add.widget.js +38 -38
  173. package/server/routes/map/widgets/del.widget.js +22 -22
  174. package/server/routes/map/widgets/get.widget.js +40 -40
  175. package/server/routes/mapnik/controllers/clearTiles.js +106 -106
  176. package/server/routes/mapnik/controllers/createXml.js +67 -67
  177. package/server/routes/mapnik/controllers/createXmlMulti.js +76 -76
  178. package/server/routes/mapnik/controllers/fileSearch.js +38 -38
  179. package/server/routes/mapnik/controllers/fileStat.js +28 -28
  180. package/server/routes/mapnik/controllers/mapnikLogger.js +29 -29
  181. package/server/routes/mapnik/controllers/mapnikStat.js +19 -19
  182. package/server/routes/mapnik/controllers/pretile.js +144 -144
  183. package/server/routes/mapnik/controllers/rasterInfo.js +57 -57
  184. package/server/routes/mapnik/controllers/readDir.js +22 -22
  185. package/server/routes/mapnik/controllers/rtile.js +150 -150
  186. package/server/routes/mapnik/controllers/uploadRaster.js +157 -157
  187. package/server/routes/mapnik/functions/cartoBounds.js +32 -32
  188. package/server/routes/mapnik/functions/convertBoundToTile.js +27 -27
  189. package/server/routes/mapnik/functions/uploadXML.js +113 -113
  190. package/server/routes/mapnik/index.js +40 -40
  191. package/server/routes/permissions/controllers/catalog.permissions.edit.js +22 -22
  192. package/server/routes/permissions/controllers/catalog.permissions.js +7 -7
  193. package/server/routes/permissions/controllers/gis.catalog.js +80 -80
  194. package/server/routes/permissions/controllers/utils/get.permissions.js +59 -59
  195. package/server/routes/permissions/index.mjs +18 -18
  196. package/server/routes/root.mjs +3 -3
  197. package/utils.js +13 -13
@@ -1,4 +1,4 @@
1
- import { defineComponent as me, useSlots as sr, computed as N, 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";
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 = N(() => {
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-BZcdLpRo.js")
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-BKQkDmho.js")), v = {
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-BZcdLpRo.js")
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-B3tj7wpL.js")), v = {
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-BoVW5Fv8.js")
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-BsoWgW3l.js")), v = {
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-BZcdLpRo.js")
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-DYZTBG6c.js")), v = {
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-BZcdLpRo.js")
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-B9MYgBIp.js")), v = {
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-d576dfc7"]]), 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 = {
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 = N(() => {
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(), D = x.trim();
428
- D && S.set("search", D);
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), D = await fetch(S);
437
- if (!D.ok)
438
- throw new Error(`HTTP error: ${D.status}`);
439
- const V = await D.json();
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
- }, I = async (x) => {
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, D) => (s(), m("div", {
505
- key: D,
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) => I(S.name), ["stop"]),
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) => I(S.name), ["stop"]),
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-3556f06d"]]), 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 = {
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 = N(() => !!r.editData), h = F(null), d = F({
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 = N(() => [
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", I = await fetch(P, {
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 (!I.ok) {
674
- const M = await I.json().catch(() => ({}));
675
- throw new Error(M.message || `HTTP error: ${I.status}`);
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 I;
692
- const w = (I = o.target.files) == null ? void 0 : I[0];
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 D = await S.json().catch(() => ({}));
715
- throw new Error(D.message || `HTTP error: ${S.status}`);
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 = N(() => {
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 = N(() => 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 () => {
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
- }, D = await fetch(
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 (!D.ok)
1304
- throw new Error(`HTTP error: ${D.status}`);
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
- }, I = async () => {
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
- ), D = URL.createObjectURL(S), V = document.createElement("a");
1339
- V.href = D, V.download = `${r.value}.json`, document.body.appendChild(V), V.click(), document.body.removeChild(V), URL.revokeObjectURL(D), et({
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: I,
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 = N(() => r.actions && r.actions.length ? r.actions : ["view"]), h = F({}), d = F({}), E = N(() => {
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((I) => {
1541
- P[I.id] = new Set(I.actions || []);
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, I]) => ({
1547
+ const L = Object.entries(d.value).map(([P, j]) => ({
1548
1548
  id: P,
1549
- actions: Array.from(I)
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 I = T(L);
1570
- return ((M = d.value[I]) == null ? void 0 : M.has(P)) || !1;
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 I;
1582
- return (I = L.menu) != null && I.length ? L.menu.every((M) => a(M, P)) : a(L, P);
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, I) {
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), D = new Set(x[S] || []);
1590
- I ? D.add(P) : D.delete(P), x[S] = D;
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, I) {
1594
+ function w(L, P, j) {
1595
1595
  const M = T(L), x = new Set(d.value[M] || []);
1596
- I ? x.add(P) : x.delete(P), d.value = { ...d.value, [M]: x }, $();
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 I;
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
- (I = E.value) != null && I.length ? (s(), m("tbody", zl, [
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 = N(() => $(k.value)), E = N(() => {
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, I, M, x, C, S, D;
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((I = u == null ? void 0 : u.map) == null ? void 0 : I.zoom, 7), o = E((M = u == null ? void 0 : u.map) == null ? void 0 : M.maxZoom, 20), L = {
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"), (D = n.controls) != null && D.geolocate && t.value.addControl(new maplibregl.GeolocateControl(
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-d6e61166"]]), oa = ["Noto Sans Regular"], ra = 12, sa = "#0f172a", la = "#fff", aa = 14;
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"]), I = Qe(n, ["symbol-spacing", "symbolSpacing"]), M = Qe(n, [
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), I !== void 0 && (S["symbol-spacing"] = I), 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 D = {
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
- D["text-halo-color"] = y, a !== void 0 && (D["text-halo-width"] = a), u !== void 0 && (D["text-halo-blur"] = u);
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: D
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 D = () => {
2458
+ const I = () => {
2459
2459
  Un.get(v) === S && Un.delete(v);
2460
2460
  }, V = S.remove;
2461
2461
  return S.remove = () => {
2462
- D(), V();
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, I, M, x;
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 D = C || `layers-${Object.keys(S).length}`, V = 1;
2493
- for (; S[D]; )
2494
- D = `${C}-${V}`, V += 1;
2495
- return D;
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 = N(() => p()), a = N(() => {
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((D, V) => {
2507
- const oe = D.name ?? D.title ?? `basemap-${V}`, ue = (D.id ?? oe ?? `basemap-${V}`).toString().toLowerCase().replace(/\s+/g, "-").replace(/[^a-z0-9-]/g, ""), J = v(ue || `basemap-${V}`, S), ee = D.preview || (D.url ? k(D.url) : void 0);
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: D.url,
2509
+ url: I.url,
2510
2510
  preview: ee,
2511
2511
  title: oe,
2512
- overlayUrl: D.overlayUrl
2512
+ overlayUrl: I.overlayUrl
2513
2513
  };
2514
2514
  }), S;
2515
- }), u = N(() => {
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 ? [(I = u.value[_.value]) == null ? void 0 : I.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 D = C[_.value];
2546
- D != null && D.url ? (c.setVisible(!0), c.setTiles([D.url])) : c.setVisible(!1), D != null && D.overlayUrl ? (o.setVisible(!0), o.setTiles([D.overlayUrl])) : o.setVisible(!1);
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, (D, V) => (s(), m("div", {
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" && D.url ? (s(), m("div", {
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
- D.preview ? (s(), m("img", {
2566
+ I.preview ? (s(), m("img", {
2567
2567
  key: 0,
2568
- src: D.preview,
2569
- alt: D.title,
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 = N(() => r.open ? {
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, I = v.value.offsetWidth || Math.min(300, window.innerWidth - 24), M = v.value.offsetHeight || 0;
2617
- let x = _.left + window.scrollX + (_.width - I) / 2;
2618
- x < o && (x = o), x + I > w && (x = Math.max(o, w - I)), r.left = 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-cc1cc7bf><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-cc1cc7bf><circle cx="12" cy="12" r="10" data-v-cc1cc7bf></circle><line x1="12" y1="16" x2="12" y2="12" data-v-cc1cc7bf></line><line x1="12" y1="8" x2="12.01" y2="8" data-v-cc1cc7bf></line></svg></div>', 1)
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-cc1cc7bf"]]), La = {
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), $ = N(() => Array.isArray(t.links) ? t.links.filter((P) => (P == null ? void 0 : P.name) && (P == null ? void 0 : P.slug)) : []), T = N(() => ({
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 = N(() => {
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 = N(() => y(t.content)), u = N(() => a.value);
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 I = P.getBoundingClientRect(), M = 12, x = 8, C = window.scrollX + M, S = window.scrollX + window.innerWidth - M, D = window.scrollY + M, V = window.scrollY + window.innerHeight - M, oe = v.value.offsetWidth || 160, ue = v.value.offsetHeight || 0;
2725
- let J = I.bottom + window.scrollY + x, ee = I.left + window.scrollX;
2726
- ee + oe > S && (ee = I.right + window.scrollX - oe, ee < C && (ee = C)), ee < C && (ee = C), J + ue > V && (J = I.top + window.scrollY - ue - x, J < D && (J = Math.max(D, V - ue))), J < D && (J = D), J + ue > V && (J = Math.max(D, V - ue)), h.value = {
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 I = l.value;
2734
- if (!I) {
2733
+ const j = l.value;
2734
+ if (!j) {
2735
2735
  r.value = !1;
2736
2736
  return;
2737
2737
  }
2738
- I.contains(P.target) || (r.value = !1);
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, I) => (s(), m("div", {
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
- }, [...I[1] || (I[1] = [
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: I[0] || (I[0] = qe(() => {
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
- }, [...I[2] || (I[2] = [
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-813e24fb"]]), ht = F([]);
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((I) => I.id === T);
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 (I) {
2924
- const M = (I == null ? void 0 : I.message) ?? "";
2925
- if (!(typeof M == "string" && M.includes("Map provider"))) throw I;
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 = N(() => {
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 = N(() => `filter-popover-${r.value}`), {
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 = N(() => v.value), _ = N(() => {
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 = N(() => _.value.length > 0), o = N(() => {
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 = N(() => _.value), L = F(null), P = N(() => _.value.length), I = N(() => P.value <= 2), M = N(() => I.value ? "body" : typeof window > "u" || L.value ? Hn : "body"), x = N(() => {
3036
- if (!u.value || !I.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 D() {
3057
+ function I() {
3058
3058
  var de, we, $e;
3059
- if (!$.value || !I.value) return;
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
- I.value || O(), d(), v.value && I.value && Xe(() => {
3077
- D(), W(), requestAnimationFrame(() => D());
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 && I.value ? Xe(() => {
3085
- D(), W(), requestAnimationFrame(() => D());
3086
- }) : (R(), I.value || O());
3084
+ g && j.value ? Xe(() => {
3085
+ I(), W(), requestAnimationFrame(() => I());
3086
+ }) : (R(), j.value || O());
3087
3087
  }), ce(w, () => {
3088
- !u.value || !I.value || Xe(() => D());
3089
- }, { deep: !0 }), ce(I, (g) => {
3088
+ !u.value || !j.value || Xe(() => I());
3089
+ }, { deep: !0 }), ce(j, (g) => {
3090
3090
  u.value && (g ? Xe(() => {
3091
- D(), W();
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 || !I.value || D();
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 || !I.value) && (p = new ResizeObserver(() => {
3128
- !u.value || !I.value || D();
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": !I.value }]),
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-32948852"]]), Ua = { class: "opacity-popover__content" }, Va = { class: "opacity-popover__value" }, qa = /* @__PURE__ */ me({
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 I;
3226
- const p = (I = v.value) == null ? void 0 : I.querySelector("button");
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-39c90b6d"]]), 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 = {
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 = N(() => {
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 = N(() => p.value.length), a = N(
3355
+ }), y = D(() => p.value.length), a = D(
3356
3356
  () => p.value.filter((g) => P(g.id)).length
3357
- ), u = N(
3357
+ ), u = D(
3358
3358
  () => y.value > 0 && a.value === y.value
3359
- ), _ = N(() => d.value.length > 0), c = t;
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 I(g) {
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 = I(g.spec);
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 D(g) {
3534
+ function I(g) {
3535
3535
  p.value.forEach((f) => C(f, g));
3536
3536
  }
3537
3537
  function V() {
3538
- D(!u.value);
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-4706ee79"]]);
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}`, I = o.label || o.title || o.name || P, M = o.name ? w[o.name] : void 0, x = o.name ? w[`${o.name}_text`] : void 0;
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 D = E.value[o.data];
3798
- D && (C = D[String(M)]);
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: I,
3803
+ label: j,
3804
3804
  value: p(o, S)
3805
3805
  };
3806
3806
  }
3807
- const a = N(() => {
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 I = await fetch(`/api/suggest/${P}`);
3820
- if (I.ok) {
3821
- const M = await I.json();
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 (I) {
3830
- console.error(`Failed to fetch suggest for ${P}`, I);
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 = N(() => {
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
- }), _ = N(() => {
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, I = (P == null ? void 0 : P.getBoundingClientRect()) ?? L, M = I.left - L.left, x = I.top - L.top, C = o.offsetWidth || 0, S = o.offsetHeight || 0, D = 12, V = 8, [oe, ue] = t.value;
3859
- let J = M + oe + D, ee = x + ue + D;
3860
- J + C + V > L.width && (J = M + oe - C - D), ee + S + V > L.height && (ee = x + ue - S - D);
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 = N(() => h.value.length), $ = N(() => v.value || !!l.value || !!k.value);
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(), I(null);
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 D = Array.isArray(C) && C.length > 0;
3923
- v.value = D, k.value = null, l.value = null, r.value = x || null;
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 || I(r.value);
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(), I(null);
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 I(x) {
3976
+ function j(x) {
3977
3977
  const C = P(x), S = L();
3978
3978
  if (C === S) return;
3979
- const D = { ...n.query };
3980
- C ? D.info = C : delete D.info, t.push({ query: D }).catch(() => {
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(","), D = C == null ? void 0 : C.trim(), V = S == null ? void 0 : S.trim();
3991
- if (!D || !V) {
3992
- p(), I(null);
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: D,
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 = N(() => l.value[k.value] || null), p = N(() => l.value.length > 0);
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, D) => {
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 = D, v.value = !0, h.value = null, l.value = [], d.value = {}, k.value = 0;
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 = D.map(async (g) => {
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: D } = E.value, V = $.value.join(","), oe = `/api/map-info-point?x=${S}&y=${D}&index=${C}&layers=${V}`;
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
- }, I = async () => {
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, D;
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) ?? ((D = C == null ? void 0 : C.data) == null ? void 0 : D.geom);
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: D } = C.lngLat, V = Oe(), ue = Object.entries(V).map(([J, ee]) => {
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, D, ue);
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: I,
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 = N(() => {
4164
+ const v = D(() => {
4165
4165
  var $;
4166
4166
  return (($ = l.id) == null ? void 0 : $.trim()) || k(l.title);
4167
- }), h = N(() => l.buttonText || "Показати шар");
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 = N(() => v.value[h.value] || null), E = N(() => {
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
- }), $ = N(() => v.value.length > 0), T = N(() => {
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 = N(() => {
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), [j, Q] = b.split(","), ie = j == null ? void 0 : j.trim(), be = Q == null ? void 0 : Q.trim();
4265
- return !ie || !be ? null : {
4266
- layer: ie,
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:${ie},${be}`
4268
+ token: `external:${le},${be}`
4269
4269
  };
4270
4270
  }
4271
4271
  function c(i) {
4272
- const b = u(), j = (i == null ? void 0 : i.trim()) || null;
4273
- if (b === j) return;
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 (j)
4276
- Q.info = j;
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 j;
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), (j = b.html) != null && j.trim() ? P() : Ve();
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((j) => ({ type: "external", ...j })), !v.value.length) {
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) : [], j = Array.isArray(i == null ? void 0 : i.externalItems) ? i.externalItems.filter((Q) => typeof (Q == null ? void 0 : Q.html) == "string" && Q.html.trim()) : [];
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
- ...j.map((Q) => ({ type: "external", ...Q }))
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 I = (i) => {
4320
- var Q, ie, be, _e;
4321
- const b = i, j = Array.isArray((Q = b.detail) == null ? void 0 : Q.items) ? (ie = b.detail) == null ? void 0 : ie.items.filter((ze) => typeof (ze == null ? void 0 : ze.html) == "string" && ze.html.trim()) : [];
4322
- j.length ? w(j, 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([{
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, I));
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, I));
4333
+ typeof window > "u" || (window.removeEventListener(Gn, M), window.removeEventListener(_o, j));
4334
4334
  });
4335
- const x = N(() => r.active.value), C = N(() => x.value || l.isOpen.value || T.value), S = N(() => x.value ? r.loading.value : l.cardLoading.value), D = N(() => x.value ? r.error.value : l.cardError.value), V = N(() => {
4336
- var i, b, j;
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 : ((j = l.card.value) == null ? void 0 : j.html) || null;
4338
- }), oe = at(), ue = Qn(), J = N(() => {
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 = N(() => {
4350
+ const f = D(() => {
4351
4351
  var i;
4352
4352
  return ((i = l.cardFeature.value) == null ? void 0 : i.source) ?? null;
4353
- }), A = N(() => f.value ? `map-card:${f.value}` : "map-card"), U = N(() => {
4354
- var Q, ie;
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), j = ((ie = i == null ? void 0 : i.properties) == null ? void 0 : ie.id) ?? (i == null ? void 0 : i.id);
4356
- return b && j != null ? `${b}:${j}` : null;
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 = N(() => {
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 j = typeof ee.query.slug == "string" ? ee.query.slug.trim() : "";
4369
- return j.length ? j : we();
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 j = Array.from(i).map((Q) => Q.charCodeAt(0).toString(16)).join("").slice(0, 8);
4375
- return j ? `layer-${j}` : `layer-${Math.random().toString(36).slice(2, 8)}`;
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 j = typeof window < "u" ? window.location.origin : "";
4385
- return b.startsWith("/") ? j ? `${j}${b}` : b : j ? `${j}/${b}` : b;
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((j) => Number(j)).filter((j) => Number.isFinite(j));
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 [j, Q, ie, be] = b;
4403
- return [j, Q, ie, be].every((_e) => Number.isFinite(_e)) ? [j, Q, ie, be] : null;
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 ie = JSON.parse(b), be = Et(ie);
4410
+ const le = JSON.parse(b), be = Et(le);
4411
4411
  if (be) return be;
4412
4412
  } catch {
4413
4413
  }
4414
- const j = b.match(/-?\d+(?:\.\d+)?/g);
4415
- if (!j || j.length < 4) return null;
4416
- const Q = j.slice(0, 4).map((ie) => Number(ie));
4417
- return Q.every((ie) => Number.isFinite(ie)) ? [Q[0], Q[1], Q[2], Q[3]] : null;
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 = {}, j = /([:@\w-]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>]+)))?/g;
4420
+ const b = {}, N = /([:@\w-]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>]+)))?/g;
4421
4421
  let Q;
4422
- for (; (Q = j.exec(i)) !== null; ) {
4423
- const ie = Q[1], be = Q[2] ?? Q[3] ?? Q[4] ?? "";
4424
- ie && (b[ie] = be);
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 j of b)
4430
- if (i[j] != null && String(i[j]).trim().length)
4431
- return String(i[j]).trim();
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 = [], j = /<LayerSwitcher\b([^>]*)>([\s\S]*?)<\/LayerSwitcher>/gi;
4442
- let Q = 0, ie;
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 (; (ie = j.exec(i)) !== null; ) {
4450
- const [ze, He = "", Ke = ""] = ie, Be = ie.index;
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() : "", j = typeof i.title == "string" ? i.title.trim() : "", Q = it(typeof i.url == "string" ? i.url : "");
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: j || b,
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 = N(() => {
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 = N(() => {
4507
+ }), qt = D(() => {
4508
4508
  if (x.value && r.current.value) {
4509
- const Q = r.current.value, ie = Array.isArray(Q.columns) ? Q.columns : [];
4510
- return ie.length ? ie : Q.fields ?? [];
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 = N(() => {
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((j) => ({
4521
- key: j.name,
4522
- label: j.ua || j.label || j.title || j.name,
4523
- value: Nt(b[j.name], j.format || "text"),
4524
- format: j.format || "text"
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 [, j, Q, ie] = b;
4531
- return `${ie}.${Q}.${j}`;
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((j) => Nt(j, "text")).join(", ") : "—";
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 j = i.trim();
4547
- if (!j.length) return "—";
4548
- if (/^\d{4}-\d{2}-\d{2}$/.test(j))
4549
- return wt(j);
4550
- if (/^-?\d+(?:\.\d+)?$/.test(j)) {
4551
- const Q = Number(j);
4552
- return Number.isFinite(Q) ? Pt(Q) : j;
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 j;
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((ie) => ie.slice(1, -1).replace(/\\"/g, '"')) : [];
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 = N(() => typeof H.value == "string");
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 = N(
4609
+ const Ce = D(
4610
4610
  () => Mt.value.filter((i) => Wt(i.value)).length
4611
- ), Fe = N(() => rt.value && !$t.value ? Mt.value.filter((i) => !Wt(i.value)) : Mt.value);
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 ie = 0;
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
- ie += 1, ze ? ze.remove() : be.remove();
4623
+ le += 1, ze ? ze.remove() : be.remove();
4624
4624
  return;
4625
4625
  }
4626
- }), { sanitized: Q.body.innerHTML, hiddenCount: ie };
4626
+ }), { sanitized: Q.body.innerHTML, hiddenCount: le };
4627
4627
  }
4628
- const pt = N(() => Me(V.value)), _t = N(() => V.value ? pt.value.hiddenCount : 0), ct = N(() => Ce.value + _t.value), At = N(
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 = N(
4633
+ ), Qt = D(
4634
4634
  () => rt.value && ct.value > 0
4635
- ), zn = N(
4635
+ ), zn = D(
4636
4636
  () => $t.value ? "Приховати пусті значення" : "Показати пусті значення"
4637
- ), Fn = N(() => $t.value ? xr : Ro);
4637
+ ), Fn = D(() => $t.value ? xr : Ro);
4638
4638
  function Rn() {
4639
4639
  $t.value = !$t.value;
4640
4640
  }
4641
- const en = N(() => {
4641
+ const en = D(() => {
4642
4642
  const i = At.value ? pt.value.sanitized : V.value ?? "";
4643
4643
  return Kt(i);
4644
- }), ln = N(() => en.value.filter((i) => i.type === "layer"));
4644
+ }), ln = D(() => en.value.filter((i) => i.type === "layer"));
4645
4645
  function an(i) {
4646
- return Array.isArray(i) ? i.map((b, j) => {
4647
- const Q = it(typeof (b == null ? void 0 : b.url) == "string" ? b.url : ""), ie = 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) || `Шар ${j + 1}`).toString(), _e = (b == null ? void 0 : b.id) != null ? String(b.id) : st(`${be}-${j + 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(ie) || "";
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 = N(() => {
4662
- var Q, ie;
4663
- const i = l.card.value, b = r.current.value, j = [
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
- (ie = b == null ? void 0 : b.data) == null ? void 0 : ie.layers,
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 j) {
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 = N(
4675
+ }), Zt = D(
4676
4676
  () => en.value.length > 0 || Mt.value.length > 0 || Ht.value.length > 0
4677
- ), Gt = N(() => !l.cardLoading.value && !!l.card.value);
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(([j, Q]) => {
4681
- typeof Q == "string" && (i[j] = Q);
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 j = 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, ie = typeof (b == null ? void 0 : b.geohubId) == "string" ? b.geohubId : null;
4684
- i.geohub = j || Q || ie || i.layer || "";
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 j = await b.json();
4703
- return dt.set(i, j), Le.value = j, je.value = i, j;
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(), j = ln.value.find((ze) => ze.spec.id === i.id), Q = Ht.value.find((ze) => ze.id === i.id), ie = (j == null ? void 0 : j.spec) || ft(Q) || ft(i), be = (j == null ? void 0 : j.spec.bounds) ?? (Q == null ? void 0 : Q.bounds);
4712
- if (!ie || O(ie.id, A.value))
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(ie, b, _e), g({
4715
+ X.value = _e ?? null, G(le, b, _e), g({
4716
4716
  action: "activate",
4717
4717
  owner: _e,
4718
- spec: ie,
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, j, Q, ie] = i;
4726
- [b, j, Q, ie].every((_e) => Number.isFinite(_e)) && typeof oe.fitBounds == "function" && (await ((be = oe.ready) == null ? void 0 : be.call(oe)), oe.fitBounds(
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, j],
4729
- [Q, ie]
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 j = b.target;
4748
- !!(j != null && j.checked) ? tn(i) : kn(i.id);
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: le,
4761
+ prev: ae,
4762
4762
  count: Te,
4763
4763
  index: Se
4764
- } = r, ae = N(() => l.count.value), Pe = N(() => l.index.value), Re = N(() => x.value ? !1 : $.value ? v.value.length > 1 : ae.value > 1), Ae = N(() => x.value ? Te.value : $.value ? v.value.length : ae.value), Ne = N(() => x.value ? Se.value : $.value ? h.value : Pe.value), lt = () => {
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 j;
4815
- (j = i == null ? void 0 : i.remove) == null || j.call(i, b === 0);
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 j, Q, ie;
4820
- const b = (i == null ? void 0 : i.type) || ((ie = (Q = (j = i == null ? void 0 : i.features) == null ? void 0 : j[0]) == null ? void 0 : Q.geometry) == null ? void 0 : ie.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 ie, be;
4886
+ var le, be;
4887
4887
  if (!i) return null;
4888
- const b = (i == null ? void 0 : i.source) ?? ((ie = i == null ? void 0 : i.layer) == null ? void 0 : ie.id), j = ((be = i == null ? void 0 : i.properties) == null ? void 0 : be.id) ?? (i == null ? void 0 : i.id);
4889
- return !b || j === void 0 || j === null ? null : `${b},${j}`.trim() || null;
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((j) => $n(j, b));
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((j) => $n(j == null ? void 0 : j.geometry, b)));
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, j = [];
4908
- if ($n(b, j), !j.length) return null;
4909
- let Q = j[0][0], ie = j[0][0], be = j[0][1], _e = j[0][1];
4910
- return j.forEach(([Ke, Be]) => {
4911
- Ke < Q && (Q = Ke), Ke > ie && (ie = Ke), Be < be && (be = Be), Be > _e && (_e = Be);
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 + ie) / 2,
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 j = no();
4920
- if (!j || j.startsWith("external:")) return;
4919
+ const N = no();
4920
+ if (!N || N.startsWith("external:")) return;
4921
4921
  const Q = Wo(i);
4922
- if (!Q || Q !== j || jn === j) return;
4923
- const ie = Ho(b);
4924
- ie && (await ((be = oe.ready) == null ? void 0 : be.call(oe)), oe.flyTo({ center: ie, zoom: Ji }), jn = j);
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 ie;
4927
+ var le;
4928
4928
  if (!i) {
4929
4929
  Ve();
4930
4930
  return;
4931
4931
  }
4932
- const b = (ie = oe.map) == null ? void 0 : ie.value, j = {
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: j } } : {},
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, ie;
4977
- const b = (i == null ? void 0 : i.source) || ((Q = i == null ? void 0 : i.layer) == null ? void 0 : Q.id) || "unknown", j = ((ie = i == null ? void 0 : i.properties) == null ? void 0 : ie.id) ?? (i == null ? void 0 : i.id) ?? "unknown";
4978
- return `${b}:${j}`;
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 j = ((be = i == null ? void 0 : i.properties) == null ? void 0 : be.id) ?? (i == null ? void 0 : i.id);
4986
- if (!j) return null;
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 ie = [$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 ie)
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(j))}`);
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 j = await Yo(i);
5017
+ const N = await Yo(i);
5018
5018
  if (b === ne.value) {
5019
- if (!j) {
5019
+ if (!N) {
5020
5020
  Ve();
5021
5021
  return;
5022
5022
  }
5023
- oo(j), Zo(i, j);
5023
+ oo(N), Zo(i, N);
5024
5024
  }
5025
5025
  }
5026
5026
  async function Xo(i) {
5027
- var j, Q, ie;
5027
+ var N, Q, le;
5028
5028
  const b = _(i);
5029
5029
  if (!b) {
5030
- (j = u()) != null && j.startsWith("external:") && (y(), Ve());
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(((ie = _e == null ? void 0 : _e.data) == null ? void 0 : ie.geom) ?? (_e == null ? void 0 : _e.geom) ?? null);
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
- (...j) => se(le) && se(le)(...j)),
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
- (...j) => se(ke) && se(ke)(...j)),
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, " Завантаження даних… ")) : D.value ? (s(), m("div", Pi, Y(D.value), 1)) : (s(), m(te, { key: 2 }, [
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, (j) => (s(), m("div", {
5164
- key: j.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(j.label), 1),
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", j.format === "badge" ? "font-semibold text-yellow-800" : ""])
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
- j.format === "tags" ? (s(), m("div", ji, [
5172
- (s(!0), m(te, null, ve(sn(j.value), (Q, ie) => (s(), m("span", {
5173
- key: ie,
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(j.value), 1)
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, (j, Q) => (s(), m(te, { key: Q }, [
5184
- j.type === "html" ? (s(), m("div", {
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: j.content
5186
+ innerHTML: N.content
5187
5187
  }, null, 8, Di)) : (s(), pe(wo, {
5188
5188
  key: 1,
5189
- title: j.componentProps.title,
5190
- url: j.componentProps.url,
5191
- id: j.componentProps.id,
5192
- "button-text": j.componentProps.buttonText,
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
- j.slotText ? {
5195
+ N.slotText ? {
5196
5196
  name: "default",
5197
5197
  fn: Lt(() => [
5198
5198
  e("span", {
5199
- innerHTML: j.slotText
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, (j) => (s(), pe(wo, {
5209
- key: j.spec.id,
5210
- title: j.componentProps.title,
5211
- url: j.componentProps.url,
5212
- id: j.spec.id,
5213
- "button-text": j.componentProps.buttonText,
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, (j) => (s(), m("div", {
5231
- key: j.id,
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(j.id),
5239
- onChange: (Q) => Z(j, Q)
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(j.title), 1)
5258
+ e("span", Zi, Y(N.title), 1)
5259
5259
  ]),
5260
- j.subtitle ? (s(), m("div", Gi, Y(j.subtitle), 1)) : K("", !0)
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-ebceb7b9"]]), eu = {
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-98772410"]]), Tn = F({}), Pn = F([]);
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 = N(() => {
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 = N(() => {
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 I = _(P);
5445
- return I ? o ? I.toLowerCase().includes(o) : !0 : !1;
5446
- }).sort((P, I) => d.compare(_(P), _(I)));
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
- }), $ = N({
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(), I = typeof window < "u" ? window.scrollX : 0, M = typeof window < "u" ? window.scrollY : 0;
5467
- h.left = P.left + P.width / 2 + I, h.top = P.bottom + 8 + M, h.layerId = w, h.visible = !0;
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: (I) => o.$emit("toggle-layer", P.id, I.target.checked, P)
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: (I) => y(I, P.id),
5591
+ onMouseenter: (j) => y(j, P.id),
5592
5592
  onMouseleave: a,
5593
- onFocus: (I) => y(I, P.id),
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-36ed2aad"]]), $u = { class: "flex flex-col gap-0" }, Cu = { class: "text-xs text-slate-600 font-semibold" }, Lu = /* @__PURE__ */ me({
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 = N(() => {
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, I = v.value.offsetWidth || Math.min(460, window.innerWidth - 24), M = v.value.offsetHeight || 0;
5665
- let x = _.left + window.scrollX + (_.width - I) / 2;
5666
- x < o && (x = o), x + I > w && (x = Math.max(o, w - I)), r.left = 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 I(R) {
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", I), window.addEventListener("resize", M), window.addEventListener("scroll", M, !0);
5815
+ document.addEventListener("click", j), window.addEventListener("resize", M), window.addEventListener("scroll", M, !0);
5816
5816
  }), Ue(() => {
5817
- document.removeEventListener("click", I), window.removeEventListener("resize", M), window.removeEventListener("scroll", M, !0);
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), D = F(null);
5838
+ const S = F(null), I = F(null);
5839
5839
  function V(R, O) {
5840
- S.value = O, D.value = O, R.dataTransfer && (R.dataTransfer.effectAllowed = "move", R.dataTransfer.setData("text/plain", String(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
- D.value = R;
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, D.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, D.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, D.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": D.value === f
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-1566770c"]]), Ou = { class: "filter-tab" }, Bu = {
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 = N(() => {
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 = N(() => v.value.length > 0);
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-c6632fbd"]]), 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 = {
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 I(g) {
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 = I(U);
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 D() {
6259
+ function I() {
6260
6260
  d.value = "catalog";
6261
6261
  }
6262
- const V = N(() => a.value ? c(a.value) : null), oe = N(() => {
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 = N(() => E.value.groups.reduce(
6265
+ }), ue = D(() => E.value.groups.reduce(
6266
6266
  (g, f) => g + f.layers.filter(o).length,
6267
6267
  0
6268
- )), J = N(() => d.value === "selected" ? "Вибрані шари" : d.value === "filter" ? "Фільтр шарів" : "Каталог"), ee = N(() => d.value === "selected" ? $.value.length : d.value === "catalog" ? ue.value : null), G = N(() => {
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-1522ba15><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8" data-v-1522ba15></path><path d="M21 3v5h-5" data-v-1522ba15></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-1522ba15></path><path d="M8 16H3v5" data-v-1522ba15></path></svg>', 1)
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: D
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-1522ba15"]]), oc = {
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 = N(() => {
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
- }), _ = N(() => {
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 = N(() => _.value.map((G) => ({
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 = N(() => {
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 = N(() => {
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 = N(() => {
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 I(G, W) {
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 D(G, W, R, O) {
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
- I(G, R);
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, D(d.value, R, g, W), k.value = !1;
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 = N(() => "Набори даних"), ue = N(() => v.value.reduce((G, W) => G + W.count, 0)), J = N(() => {
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-9686ce7b"]]), _c = ["title"], kc = {
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 = N(() => {
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 = N(() => {
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 = N(() => {
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([]), I = F(null), M = F(!1), x = F([]), C = N(
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 = N(() => {
6794
+ ), S = D(() => {
6795
6795
  var B;
6796
6796
  return ((B = l.config) == null ? void 0 : B.addressDebounceMs) ?? 1e3;
6797
6797
  });
6798
- let D = null;
6799
- const V = F(!1), oe = N(() => u.value.trim().length > 0 ? P.value : x.value), ue = N(() => u.value.trim().length ? `Знайдено ${P.value.length}` : "Історія пошуку"), J = N(() => u.value.trim().length ? "Нічого не знайдено" : "Історія порожня");
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
- D && (clearTimeout(D), D = null);
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, D = window.setTimeout(() => {
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 = I.value, fe = L.value;
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: I,
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-d7cf7dd1"]]), 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({
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 D;
7358
- return (D = S == null ? void 0 : S.href) == null ? void 0 : D.includes(M);
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 D = document.createElement("script");
7372
- D.src = M, D.async = !0, D.onload = () => {
7373
- D._loaded = !0, x();
7374
- }, D.onerror = () => C(new Error(`Failed ${M}`)), document.head.appendChild(D);
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 D = document.createElementNS("http://www.w3.org/2000/svg", "path");
7390
+ const I = document.createElementNS("http://www.w3.org/2000/svg", "path");
7391
7391
  Object.entries(C).forEach(([V, oe]) => {
7392
- D.setAttribute(V, oe);
7393
- }), M.appendChild(D);
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 D = (V = S.textContent) == null ? void 0 : V.trim();
7448
- D && x[D] && (S.textContent = x[D]);
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 I(M) {
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 D = _();
7460
- v.value.appendChild(D);
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 D = (V) => V.stopPropagation();
7466
- x.addEventListener("click", D), x.addEventListener("mousedown", D), x[S] = !0;
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 = (D) => {
7494
- const V = S(D);
7495
- return setTimeout(() => V && I(V), 50), 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-4fae7635"]]), Uc = { class: "map-center-control" }, Vc = ["aria-label"], qc = {
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(), $ = N(() => {
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((I) => Number(I));
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, I = L.lat ?? L.y;
7542
- if (P != null && I != null) {
7543
- const M = Number(P), x = Number(I);
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 = N(() => {
7603
+ const a = D(() => {
7604
7604
  var w;
7605
7605
  return ((w = t.targetLabel) == null ? void 0 : w.trim()) || "Точка";
7606
- }), u = N(() => t.targetAriaLabel || "Перейти до точки"), _ = N(() => !!h.value);
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 I = w.getCenter();
7623
- return [I.lng, I.lat];
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-03fa94f6"]]), Zc = { class: "cursor-coordinates" }, Gc = { class: "cursor-coordinates__text" }, Yc = /* @__PURE__ */ me({
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-334315d9"]]), Jc = { class: "minimap__wrapper" }, Sn = "minimap-viewport", Kc = "minimap-viewport-layer", Qc = /* @__PURE__ */ me({
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, I, M;
7681
- const t = n, l = ((P = (L = Jt()) == null ? void 0 : L.appContext.config.globalProperties) == null ? void 0 : P.$settings) || null, r = Xt((I = l == null ? void 0 : l.map) == null ? void 0 : I.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);
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 $ = N(() => {
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), D = E(t.height ?? C, 150);
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: `${D}px`
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 D = x.getStyle();
7699
- return D ? JSON.parse(JSON.stringify(D)) : null;
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
- }, D = {
7731
+ }, I = {
7732
7732
  ...S,
7733
7733
  ...t.options ?? {}
7734
7734
  };
7735
- D.container = S.container, v.value = new maplibregl.Map(D), v.value.on("load", () => {
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(), D = C.getSouthWest();
7803
- if (!S || !D) return;
7802
+ const S = C.getNorthEast(), I = C.getSouthWest();
7803
+ if (!S || !I) return;
7804
7804
  const V = [
7805
- [D.lng, S.lat],
7805
+ [I.lng, S.lat],
7806
7806
  [S.lng, S.lat],
7807
- [S.lng, D.lat],
7808
- [D.lng, D.lat],
7809
- [D.lng, S.lat]
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-bc754c89"]]), td = { class: "pt-1 border-t border-gray-100" }, nd = { class: "space-y-1" }, od = /* @__PURE__ */ me({
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 = N(
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), I = Math.sin(o / 2), M = Math.sin(w / 2);
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
- I * I + Math.cos(L) * Math.cos(P) * M * M
8162
+ j * j + Math.cos(L) * Math.cos(P) * M * M
8163
8163
  )
8164
8164
  ));
8165
- }, d = N(() => {
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 = N(() => d.value >= 1e3 ? `${Yt(d.value / 1e3)} км` : `${Yt(d.value)} м`);
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 I = (L - _) * 110574;
8179
- return { x: (P - c) * 111320 * Math.cos(_ * Math.PI / 180), y: I };
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, I = o(u[L].lat, u[L].lng), M = o(u[P].lat, u[P].lng);
8184
- w += I.x * M.y - I.y * M.x;
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 = N(() => {
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 = N(() => T.value > 0), y = N(() => {
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 = N(() => {
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 = N(() => {
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 = N(() => k.value.length > 0), h = F(!1), d = F(!1), E = F("general");
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 = N(
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
- }, I = () => {
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
- }, D = () => {
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: D
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: I
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), I = w(c.lat), M = w(o.lat);
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(I) * Math.cos(M) * Math.sin(P / 2) ** 2
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 I = 0;
8525
+ let j = 0;
8526
8526
  P.push(0);
8527
8527
  for (let M = 1; M < c.length; M++)
8528
- I += t(c[M - 1].coords, c[M].coords), P.push(I);
8529
- return o && c.length >= 2 && (I += t(c[c.length - 1].coords, c[0].coords)), {
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 I = c[L].coords, M = c[P].coords, x = t(I, M);
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
- [I.lng, I.lat],
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), I = r.points, M = r.labelMode ?? "general";
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(I, r.isShapeClosed, M)
8681
- ), w && w.setData($(I, r.isShapeClosed)), L && L.setData(T(I)), P && P.setData(
8682
- M === "topoint" ? E(I, r.isShapeClosed) : h()
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 = N(() => l.position != null ? l.position.lng.toFixed(6) : "—"), v = N(() => l.position != null ? l.position.lat.toFixed(6) : "—"), h = F(!1);
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-4cee5a30"]]), kf = /* @__PURE__ */ me({
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 = N(() => Math.max(d.strokeWidth * 3, 12)), $ = N(() => {
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 I() {
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 D() {
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 = I();
9126
+ const X = j();
9127
9127
  if (X) {
9128
9128
  if (d.tool === "pen" || d.tool === "eraser") {
9129
- D(), 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);
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
- D(), p.value = !0, X.globalCompositeOperation = "source-over", X.fillStyle = d.strokeColor, ee(X, A, U);
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
- D(), p.value = !0;
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 = I();
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 = I();
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 = I(), A = y.value;
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
- D(), f.globalCompositeOperation = "source-over", S(f), f.beginPath(), f.moveTo(A[0].x, A[0].y);
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-ed2688bc"]]), Cf = /* @__PURE__ */ me({
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 = N(() => y.value === "ruler"), u = N(() => y.value === "draw"), _ = N(() => y.value === "geolocation"), c = F("general"), o = F(null), w = F(null), L = F(null), P = F("pen"), I = F("#2563eb"), M = F(3), x = F([]), C = F(!1), S = F(null), D = F(!1), V = F(null), oe = N(() => t.id || "main"), ue = N(() => {
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 = N(() => {
9412
+ }), J = D(() => {
9413
9413
  var z;
9414
9414
  return ((z = v.value) == null ? void 0 : z.name) ?? null;
9415
- }), ee = N(() => {
9415
+ }), ee = D(() => {
9416
9416
  var z;
9417
9417
  return ((z = v.value) == null ? void 0 : z.description) ?? null;
9418
- }), G = N(() => {
9418
+ }), G = D(() => {
9419
9419
  var z;
9420
9420
  return Le((z = v.value) == null ? void 0 : z.maps);
9421
- }), W = N(() => {
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 = N(() => {
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 = N(() => {
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 = N(() => {
9433
+ }), f = D(() => {
9434
9434
  var z;
9435
9435
  return ((z = k.value) == null ? void 0 : z.ctx) ?? null;
9436
- }), A = N(() => {
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 = N(() => {
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 = N(() => {
9461
+ const je = D(() => {
9462
9462
  var z;
9463
9463
  return Le((z = v.value) == null ? void 0 : z.widgets);
9464
- }), dt = N(() => je.value.some((z) => (z == null ? void 0 : z.type) === "catalog"));
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 = N(() => je.value.some((z) => (z == null ? void 0 : z.type) === "basemaps")), It = ["left", "right"], Et = N(() => {
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), le = Z[ke] ?? { side: "left", align: "top" };
9480
- z[le.side][le.align].push(he);
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 le;
9512
+ var ae;
9513
9513
  if (h.value) return;
9514
- const z = await kt(), Z = (le = z == null ? void 0 : z.map) == null ? void 0 : le.value;
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) ?? ""), le = parseFloat(yt(l.query.z) ?? ""), Te = !Number.isNaN(he), Se = !Number.isNaN(ke), ae = !Number.isNaN(le);
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 (ae) {
9543
+ if (ie) {
9544
9544
  const Ae = Z.getZoom();
9545
- qt(Ae, le, 1e-3) || (Z.setZoom(le), Pe = !0);
9545
+ qt(Ae, ae, 1e-3) || (Z.setZoom(ae), Pe = !0);
9546
9546
  }
9547
- (!Te || !Se || !ae || Pe) && Vt();
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, le = (((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), ae = (Je = Z == null ? void 0 : Z.ids) == null ? void 0 : Je.sourceId;
9591
- if (he !== "raster" && ke !== "raster" || le !== "cartocss" && !Te && !Se || !ae || !z.getSource(ae)) return !1;
9592
- const Re = (((tt = z.getStyle()) == null ? void 0 : tt.layers) || []).filter((Ct) => Ct.source === ae);
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 ae, Pe, Re, Ae, Ne;
9606
- if (!((ae = ke == null ? void 0 : ke.properties) != null && ae.id)) return !1;
9607
- const le = Oe(ke.source);
9608
- if (!le) return !1;
9609
- const Te = (Re = (Pe = le == null ? void 0 : le.opts) == null ? void 0 : Pe.source) == null ? void 0 : Re.type, Se = (Ne = (Ae = le == null ? void 0 : le.opts) == null ? void 0 : Ae.layer) == null ? void 0 : Ne.type;
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, ae, Pe, Re;
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 le = [];
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
- ((ae = Ie == null ? void 0 : Ie.data) == null ? void 0 : ae.geom) ?? (Ie == null ? void 0 : Ie.geom) ?? null
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
- le.push({
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 }) && le.push({
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 le;
9654
+ return ae;
9655
9655
  }
9656
9656
  async function Ce(z) {
9657
- var le;
9657
+ var ae;
9658
9658
  const Z = z == null ? void 0 : z.lngLat;
9659
- T.value.includes("ruler") && a.value && Z && ((le = o.value) == null || le.addPoint({ lat: Z.lat, lng: Z.lng }));
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, D.value = !0, !navigator.geolocation) {
9682
- V.value = "Геолокація не підтримується браузером", D.value = !1;
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, D.value = !1, y.value = "geolocation", kt().then((ke) => {
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 = "Не вдалося визначити місце розташування", D.value = !1;
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 le, Te, Se, ae;
9724
- const z = (Se = (Te = (le = k.value) == null ? void 0 : le.ctx) == null ? void 0 : Te.map) == null ? void 0 : Se.value, Z = (ae = L.value) == null ? void 0 : ae.getCanvas();
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 le = Z ? await (async () => {
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(le.center) ?? ne, Se = Le(le.layers).map((Re) => U(Re)), ae = re(le.zoom) ?? de;
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
- ...le,
9783
+ ...ae,
9784
9784
  center: Te ?? null,
9785
- zoom: ae ?? le.zoom ?? null,
9785
+ zoom: ie ?? ae.zoom ?? null,
9786
9786
  layers: Se,
9787
- widgets: le.widgets
9788
- }, T.value = le.tools || ["home", "print", "ruler", "draw"];
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)), ae != null && ((ke = Pe.setZoom) == null || ke.call(Pe, ae)), h.value || await ft()), await Kt(), await Mt(), await ln(), $.value = !0;
9791
- } catch (le) {
9792
- E.value = (le == null ? void 0 : le.message) || "Не вдалося завантажити карту";
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 = N(() => {
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((le) => {
9801
- if (!(le != null && le.id)) return;
9802
- const Te = U(le) || le;
9803
- z.set(le.id, { ...Te });
9804
- }), je.value.filter((le) => (le == null ? void 0 : le.type) === "layers").flatMap((le) => {
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 = le == null ? void 0 : le.config) == null ? void 0 : Te.layers);
9807
- }).forEach((le) => {
9808
- if (!(le != null && le.id)) return;
9809
- const Te = z.get(le.id) || {}, Se = U(le) || le;
9810
- z.set(le.id, {
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: le.actions || Te.actions || null,
9814
+ actions: ae.actions || Te.actions || null,
9815
9815
  // fallbacks so the panel can render a readable name
9816
- name: Te.name || le.name || le.title || Te.title || le.id,
9817
- title: Te.title || le.title || Te.name || null,
9818
- visible: Te.visible ?? le.visible ?? !0
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 = N(() => (z) => Zt.value.includes(z.id));
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, le, Te;
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) => I.value = 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: ((le = v.value) == null ? void 0 : le.zoom) ?? ((Te = h.value) == null ? void 0 : Te.zoom) ?? null
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: D.value,
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": I.value,
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, (ae) => {
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: ae.id || ae.type,
9985
+ key: ie.id || ie.type,
9986
9986
  class: "map-overlay__item"
9987
9987
  }, [
9988
- ae.type === "info" ? (s(), pe(ho, {
9988
+ ie.type === "info" ? (s(), pe(ho, {
9989
9989
  key: 0,
9990
- title: ((Pe = ae.config) == null ? void 0 : Pe.title) || ae.title || null,
9991
- content: ((Re = ae.config) == null ? void 0 : Re.content) || "",
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"])) : ae.type === "catalog" ? (s(), pe(Lo, {
9995
+ }, null, 8, ["title", "content", "links", "map-name", "map-description"])) : ie.type === "catalog" ? (s(), pe(Lo, {
9996
9996
  key: 1,
9997
- api: ((Ae = ae.config) == null ? void 0 : Ae.api) || null
9998
- }, null, 8, ["api"])) : ae.type === "layers" ? (s(), pe(xo, {
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: ae.config
10003
- }, null, 8, ["layers", "config"])) : ae.type === "basemaps" ? (s(), pe(qn, {
10002
+ config: ie.config
10003
+ }, null, 8, ["layers", "config"])) : ie.type === "basemaps" ? (s(), pe(qn, {
10004
10004
  key: 3,
10005
- layers: ((Ne = ae.config) == null ? void 0 : Ne.layers) || null,
10006
- "default-layer": ((lt = ae.config) == null ? void 0 : lt.default) || null,
10007
- title: ae.title || ((Ie = ae.config) == null ? void 0 : Ie.title) || null
10008
- }, null, 8, ["layers", "default-layer", "title"])) : ae.type === "legend" ? (s(), pe($o, {
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(ae)
10011
- }, null, 8, ["items"])) : ae.type === "filters" && xn.value(ae) ? (s(), pe(Co, {
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 = ae.config) == null ? void 0 : Ge.layer,
10013
+ "layer-id": (Ge = ie.config) == null ? void 0 : Ge.layer,
10014
10014
  onClose: Gt
10015
- }, null, 8, ["layer-id"])) : ae.type === "dataset" || ae.type === "attribute" ? (s(), pe(So, {
10015
+ }, null, 8, ["layer-id"])) : ie.type === "dataset" || ie.type === "attribute" ? (s(), pe(So, {
10016
10016
  key: 6,
10017
- config: ae.config
10018
- }, null, 8, ["config"])) : ae.type === "search" ? (s(), pe(Mo, {
10017
+ config: ie.config
10018
+ }, null, 8, ["config"])) : ie.type === "search" ? (s(), pe(Mo, {
10019
10019
  key: 7,
10020
- config: ae.config
10020
+ config: ie.config
10021
10021
  }, null, 8, ["config"])) : K("", !0)
10022
10022
  ])), [
10023
- [gn, ae.visible !== !1]
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, (ae) => {
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: ae.id || ae.type,
10033
+ key: ie.id || ie.type,
10034
10034
  class: "map-overlay__item"
10035
10035
  }, [
10036
- ae.type === "info" ? (s(), pe(ho, {
10036
+ ie.type === "info" ? (s(), pe(ho, {
10037
10037
  key: 0,
10038
- title: ((Pe = ae.config) == null ? void 0 : Pe.title) || ae.title || null,
10039
- content: ((Re = ae.config) == null ? void 0 : Re.content) || "",
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"])) : ae.type === "catalog" ? (s(), pe(Lo, {
10043
+ }, null, 8, ["title", "content", "links", "map-name", "map-description"])) : ie.type === "catalog" ? (s(), pe(Lo, {
10044
10044
  key: 1,
10045
- api: ((Ae = ae.config) == null ? void 0 : Ae.api) || null
10046
- }, null, 8, ["api"])) : ae.type === "layers" ? (s(), pe(xo, {
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: ae.config
10051
- }, null, 8, ["layers", "config"])) : ae.type === "basemaps" ? (s(), pe(qn, {
10050
+ config: ie.config
10051
+ }, null, 8, ["layers", "config"])) : ie.type === "basemaps" ? (s(), pe(qn, {
10052
10052
  key: 3,
10053
- layers: ((Ne = ae.config) == null ? void 0 : Ne.layers) || null,
10054
- "default-layer": ((lt = ae.config) == null ? void 0 : lt.default) || null,
10055
- title: ae.title || ((Ie = ae.config) == null ? void 0 : Ie.title) || null
10056
- }, null, 8, ["layers", "default-layer", "title"])) : ae.type === "legend" ? (s(), pe($o, {
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(ae)
10059
- }, null, 8, ["items"])) : ae.type === "filters" && xn.value(ae) ? (s(), pe(Co, {
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 = ae.config) == null ? void 0 : Ge.layer,
10061
+ "layer-id": (Ge = ie.config) == null ? void 0 : Ge.layer,
10062
10062
  onClose: Gt
10063
- }, null, 8, ["layer-id"])) : ae.type === "dataset" || ae.type === "attribute" ? (s(), pe(So, {
10063
+ }, null, 8, ["layer-id"])) : ie.type === "dataset" || ie.type === "attribute" ? (s(), pe(So, {
10064
10064
  key: 6,
10065
- config: ae.config
10066
- }, null, 8, ["config"])) : ae.type === "search" ? (s(), pe(Mo, {
10065
+ config: ie.config
10066
+ }, null, 8, ["config"])) : ie.type === "search" ? (s(), pe(Mo, {
10067
10067
  key: 7,
10068
- config: ae.config
10068
+ config: ie.config
10069
10069
  }, null, 8, ["config"])) : K("", !0)
10070
10070
  ])), [
10071
- [gn, ae.visible !== !1]
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-37ad9f85"]]), Wf = [
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 = N(() => 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 = N(() => t.columns.find((p) => p.meta === "title")), v = N(() => t.columns.filter((p) => p.meta === "category")), h = N(() => t.columns.filter((p) => p.meta === "tags")), d = N(() => t.columns.filter((p) => p.meta !== "title")), E = (p, y) => {
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 = N(() => 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 = N(() => t.columns.find((p) => p.meta === "title")), v = N(() => t.columns.filter((p) => p.meta === "category")), h = N(() => t.columns.filter((p) => p.meta === "tags")), d = N(() => t.columns.filter((p) => p.meta !== "title")), E = (p, y) => {
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 = N(() => 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 = N(() => t.columns.find((y) => y.meta === "title")), v = N(() => t.columns.filter((y) => y.meta === "category")), h = N(() => t.columns.filter((y) => y.meta === "tags")), d = N(() => t.columns.filter((y) => y.meta !== "title")), E = N(() => "bg-blue-500"), $ = (y, a) => {
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, I) => (s(), m("span", {
10474
- key: I,
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 = N(() => 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 = N(() => t.columns.find((p) => p.meta === "title")), v = N(() => t.columns.filter((p) => p.meta === "category")), h = N(() => t.columns.filter((p) => p.meta === "tags")), d = N(() => t.columns.filter((p) => p.meta !== "title")), E = (p, y) => {
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 = N(() => 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 = N(() => t.columns.find((a) => a.meta === "title")), v = N(() => t.columns.filter((a) => a.meta === "category")), h = N(() => t.columns.filter((a) => a.meta === "tags")), d = N(() => t.columns.filter((a) => a.meta !== "title")), E = N(() => t.columns.find((a) => a.meta === "image")), $ = N(
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, I, M, x, C;
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 = _[((I = $.value) == null ? void 0 : I.name) + "_data"]) == null ? void 0 : M.text) || _[((x = $.value) == null ? void 0 : x.name) + "_text"] || _[(C = $.value) == null ? void 0 : C.name]), 1),
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 D;
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(((D = _[(S == null ? void 0 : S.name) + "_data"]) == null ? void 0 : D.text) || _[(S == null ? void 0 : S.name) + "_text"] || _[S == null ? void 0 : S.name] || "Немає даних"), 1)
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
  ])