@opengis/form 0.0.37 → 0.0.38

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.
@@ -1 +1 @@
1
- {"version":3,"file":"vs-compact-form-layout.vue.d.ts","sourceRoot":"","sources":["../../../src/components/layouts/vs-compact-form-layout.vue"],"names":[],"mappings":"AA8DA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,KAAK,WAAW,GAAG,YAAY,CAAC;AA8ChC,KAAK,iBAAiB,GAAG,WAAW,GAAG;IACvC,UAAU,CAAC,EAAE,GAAG,CAAC;CAChB,CAAC;;;;;;;;;;;AAoFF,wBAQG"}
1
+ {"version":3,"file":"vs-compact-form-layout.vue.d.ts","sourceRoot":"","sources":["../../../src/components/layouts/vs-compact-form-layout.vue"],"names":[],"mappings":"AAgEA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,KAAK,WAAW,GAAG,YAAY,CAAC;AA8ChC,KAAK,iBAAiB,GAAG,WAAW,GAAG;IACvC,UAAU,CAAC,EAAE,GAAG,CAAC;CAChB,CAAC;;;;;;;;;;;AAoFF,wBAQG"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { defineComponent as O, ref as w, onMounted as ge, onUnmounted as Pe, createElementBlock as d, openBlock as i, normalizeClass as V, createCommentVNode as z, renderSlot as _e, createElementVNode as l, toDisplayString as T, normalizeProps as He, guardReactiveProps as Ne, createTextVNode as fe, computed as D, mergeModels as X, useModel as Y, withDirectives as Q, unref as G, vModelText as ie, vModelCheckbox as ht, createVNode as j, createBlock as de, resolveDynamicComponent as Ie, normalizeStyle as xe, withCtx as Be, withModifiers as he, onBeforeUnmount as It, watch as te, createStaticVNode as ce, vModelRadio as gt, Fragment as ee, renderList as ae, mergeProps as Ae, reactive as Et, vModelDynamic as zt, vShow as Ze, inject as Se, resolveComponent as rt, Transition as bt, nextTick as ze, Teleport as Ft, getCurrentInstance as At, toRef as Dt, provide as nt } from "vue";
1
+ import { defineComponent as O, ref as w, onMounted as ge, onUnmounted as Pe, createElementBlock as d, openBlock as i, normalizeClass as V, createCommentVNode as z, renderSlot as _e, createElementVNode as l, toDisplayString as T, normalizeProps as He, guardReactiveProps as Ne, createTextVNode as ce, computed as D, mergeModels as X, useModel as Y, withDirectives as Q, unref as G, vModelText as ie, vModelCheckbox as ht, createVNode as j, createBlock as de, resolveDynamicComponent as Ie, normalizeStyle as xe, withCtx as Be, withModifiers as he, onBeforeUnmount as It, watch as te, createStaticVNode as pe, vModelRadio as gt, Fragment as ee, renderList as ae, mergeProps as Ae, reactive as Et, vModelDynamic as zt, vShow as Ze, inject as Se, resolveComponent as rt, Transition as bt, nextTick as ze, Teleport as Ft, getCurrentInstance as At, toRef as Dt, provide as nt } from "vue";
2
2
  import { notify as ne, VsModal as yt, modal as Ot } from "@opengis/core";
3
3
  const Ut = {
4
4
  key: 0,
@@ -66,7 +66,7 @@ const Ut = {
66
66
  setup(o) {
67
67
  return (e, t) => (i(), d("div", Nt, [
68
68
  e.item?.type !== "html" ? (i(), d("span", qt, [
69
- fe(T(e.ua || e.label) + " ", 1),
69
+ ce(T(e.ua || e.label) + " ", 1),
70
70
  e.item?.rules?.includes("required") && (e.ua || e.label) ? (i(), d("span", Gt, "*")) : z("", !0)
71
71
  ])) : z("", !0),
72
72
  _e(e.$slots, "default", He(Ne(e.$attrs))),
@@ -325,7 +325,7 @@ const ml = /* @__PURE__ */ H(pl, [["render", vl]]), hl = { class: "flex items-ce
325
325
  ], 2),
326
326
  l("span", yl, [
327
327
  _e(r.$slots, "default", {}, () => [
328
- fe(T(r.label), 1)
328
+ ce(T(r.label), 1)
329
329
  ])
330
330
  ])
331
331
  ], 10, bl)
@@ -382,7 +382,7 @@ const ml = /* @__PURE__ */ H(pl, [["render", vl]]), hl = { class: "flex items-ce
382
382
  }, null, 8, $l)) : z("", !0)
383
383
  ])) : z("", !0),
384
384
  _e(u.$slots, "default", {}, () => [
385
- fe(T(u.label), 1)
385
+ ce(T(u.label), 1)
386
386
  ])
387
387
  ])
388
388
  ], 2));
@@ -429,7 +429,7 @@ const ml = /* @__PURE__ */ H(pl, [["render", vl]]), hl = { class: "flex items-ce
429
429
  error: u.error
430
430
  }, {
431
431
  default: Be(() => [
432
- fe(T(u.label), 1)
432
+ ce(T(u.label), 1)
433
433
  ]),
434
434
  _: 1
435
435
  }, 8, ["value", "label", "info", "disabled", "modelValue", "icon", "imgUrl", "style", "error"]))
@@ -657,7 +657,7 @@ const Ol = /* @__PURE__ */ H(Fl, [["render", Dl]]), Ul = {
657
657
  setup(o) {
658
658
  const e = o, { inputClass: t } = be(e.style), n = Y(o, "modelValue");
659
659
  return (a, r) => (i(), d("div", Gl, [
660
- r[1] || (r[1] = ce('<div class="absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"><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="stroke-gray-500 transition-all"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M3 7a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-10z"></path><path d="M3 7l9 6l9 -6"></path></svg></div>', 1)),
660
+ r[1] || (r[1] = pe('<div class="absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"><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="stroke-gray-500 transition-all"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M3 7a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-10z"></path><path d="M3 7l9 6l9 -6"></path></svg></div>', 1)),
661
661
  Q(l("input", {
662
662
  type: "email",
663
663
  "onUpdate:modelValue": r[0] || (r[0] = (s) => n.value = s),
@@ -989,7 +989,7 @@ const De = /* @__PURE__ */ H(io, [["render", co]]), po = {}, fo = {
989
989
  };
990
990
  function vo(o, e, t, n, a, r) {
991
991
  return i(), d("svg", fo, e[0] || (e[0] = [
992
- ce('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M14 3v4a1 1 0 0 0 1 1h4"></path><path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z"></path><line x1="9" y1="9" x2="10" y2="9"></line><line x1="9" y1="13" x2="15" y2="13"></line><line x1="9" y1="17" x2="15" y2="17"></line>', 6)
992
+ pe('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M14 3v4a1 1 0 0 0 1 1h4"></path><path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z"></path><line x1="9" y1="9" x2="10" y2="9"></line><line x1="9" y1="13" x2="15" y2="13"></line><line x1="9" y1="17" x2="15" y2="17"></line>', 6)
993
993
  ]));
994
994
  }
995
995
  const mo = /* @__PURE__ */ H(po, [["render", vo]]), ho = {}, go = {
@@ -1045,7 +1045,7 @@ const yo = /* @__PURE__ */ H(ho, [["render", bo]]), xo = {}, wo = {
1045
1045
  };
1046
1046
  function ko(o, e) {
1047
1047
  return i(), d("svg", wo, e[0] || (e[0] = [
1048
- ce('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M14 3v4a1 1 0 0 0 1 1h4"></path><path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z"></path><path d="M9 9l1 0"></path><path d="M9 13l6 0"></path><path d="M9 17l6 0"></path>', 6)
1048
+ pe('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M14 3v4a1 1 0 0 0 1 1h4"></path><path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z"></path><path d="M9 9l1 0"></path><path d="M9 13l6 0"></path><path d="M9 17l6 0"></path>', 6)
1049
1049
  ]));
1050
1050
  }
1051
1051
  const kt = /* @__PURE__ */ H(xo, [["render", ko]]), _o = {}, $o = {
@@ -1062,7 +1062,7 @@ const kt = /* @__PURE__ */ H(xo, [["render", ko]]), _o = {}, $o = {
1062
1062
  };
1063
1063
  function Co(o, e, t, n, a, r) {
1064
1064
  return i(), d("svg", $o, e[0] || (e[0] = [
1065
- ce('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M6 20.735a2 2 0 0 1 -1 -1.735v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2h-1"></path><path d="M11 17a2 2 0 0 1 2 2v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-2a2 2 0 0 1 2 -2z"></path><line x1="11" y1="5" x2="10" y2="5"></line><line x1="13" y1="7" x2="12" y2="7"></line><line x1="11" y1="9" x2="10" y2="9"></line><line x1="13" y1="11" x2="12" y2="11"></line><line x1="11" y1="13" x2="10" y2="13"></line><line x1="13" y1="15" x2="12" y2="15"></line>', 9)
1065
+ pe('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M6 20.735a2 2 0 0 1 -1 -1.735v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2h-1"></path><path d="M11 17a2 2 0 0 1 2 2v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-2a2 2 0 0 1 2 -2z"></path><line x1="11" y1="5" x2="10" y2="5"></line><line x1="13" y1="7" x2="12" y2="7"></line><line x1="11" y1="9" x2="10" y2="9"></line><line x1="13" y1="11" x2="12" y2="11"></line><line x1="11" y1="13" x2="10" y2="13"></line><line x1="13" y1="15" x2="12" y2="15"></line>', 9)
1066
1066
  ]));
1067
1067
  }
1068
1068
  const Vo = /* @__PURE__ */ H(_o, [["render", Co]]), Mo = {}, Lo = {
@@ -1079,7 +1079,7 @@ const Vo = /* @__PURE__ */ H(_o, [["render", Co]]), Mo = {}, Lo = {
1079
1079
  };
1080
1080
  function So(o, e, t, n, a, r) {
1081
1081
  return i(), d("svg", Lo, e[0] || (e[0] = [
1082
- ce('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M14 3v4a1 1 0 0 0 1 1h4"></path><path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z"></path><path d="M10 13l-1 2l1 2"></path><path d="M14 13l1 2l-1 2"></path>', 5)
1082
+ pe('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M14 3v4a1 1 0 0 0 1 1h4"></path><path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z"></path><path d="M10 13l-1 2l1 2"></path><path d="M14 13l1 2l-1 2"></path>', 5)
1083
1083
  ]));
1084
1084
  }
1085
1085
  const Bo = /* @__PURE__ */ H(Mo, [["render", So]]), jo = (o) => {
@@ -1109,7 +1109,7 @@ const Bo = /* @__PURE__ */ H(Mo, [["render", So]]), jo = (o) => {
1109
1109
  };
1110
1110
  function Fo(o, e) {
1111
1111
  return i(), d("svg", zo, e[0] || (e[0] = [
1112
- ce('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M4 7l16 0"></path><path d="M10 11l0 6"></path><path d="M14 11l0 6"></path><path d="M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12"></path><path d="M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3"></path>', 6)
1112
+ pe('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M4 7l16 0"></path><path d="M10 11l0 6"></path><path d="M14 11l0 6"></path><path d="M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12"></path><path d="M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3"></path>', 6)
1113
1113
  ]));
1114
1114
  }
1115
1115
  const qe = /* @__PURE__ */ H(Eo, [["render", Fo]]), Ao = {}, Do = {
@@ -1281,7 +1281,7 @@ const _t = /* @__PURE__ */ H(Ao, [["render", Oo]]), Uo = { class: "h-[120px] w-[
1281
1281
  return r < 1024 ? `${r.toFixed(2)} KB` : `${(r / 1024).toFixed(2)} MB`;
1282
1282
  }
1283
1283
  return (a, r) => (i(), d(ee, null, [
1284
- r[1] || (r[1] = ce('<div class="flex items-center justify-center h-[30px] w-[30px]"><svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-file"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M14 3v4a1 1 0 0 0 1 1h4"></path><path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z"></path></svg></div>', 1)),
1284
+ r[1] || (r[1] = pe('<div class="flex items-center justify-center h-[30px] w-[30px]"><svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-file"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M14 3v4a1 1 0 0 0 1 1h4"></path><path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z"></path></svg></div>', 1)),
1285
1285
  l("div", qo, [
1286
1286
  l("p", Go, T(a.item?.uploaded_name), 1),
1287
1287
  l("p", Jo, [
@@ -1695,7 +1695,7 @@ const da = /* @__PURE__ */ H(na, [["render", ua]]), ca = { class: "flex flex-col
1695
1695
  switcher: Ca,
1696
1696
  accordion: Sa,
1697
1697
  default: ja
1698
- }, pe = {
1698
+ }, fe = {
1699
1699
  Equal: "==",
1700
1700
  Inequal: "!=",
1701
1701
  Higer: ">",
@@ -1711,29 +1711,29 @@ const da = /* @__PURE__ */ H(na, [["render", ua]]), ca = { class: "flex flex-col
1711
1711
  }, Ea = (o, e) => String(o) === String(e), za = (o, e) => String(o) !== String(e), Fa = (o, e) => o > e, Aa = (o, e) => o >= e, Da = (o, e) => o < e, Oa = (o, e) => o <= e, Ua = (o, e) => Array.isArray(e) && e.length === 2 ? o >= e[0] && o <= e[1] : !1, Ta = (o, e) => String(o).startsWith(String(e)), Ra = (o, e) => String(o).endsWith(String(e)), Pa = (o, e) => String(o).includes(String(e)), Ha = (o, e) => Array.isArray(e) ? e.includes(o) : !1, Na = (o, e) => Array.isArray(e) ? !e.includes(o) : !0, $t = (o, e) => {
1712
1712
  if (!e) return !0;
1713
1713
  switch (e?.[1]) {
1714
- case pe.Equal:
1714
+ case fe.Equal:
1715
1715
  return Ea(o, e?.[2]);
1716
- case pe.Inequal:
1716
+ case fe.Inequal:
1717
1717
  return za(o, e?.[2]);
1718
- case pe.Higer:
1718
+ case fe.Higer:
1719
1719
  return Fa(o, e?.[2]);
1720
- case pe.HigerOrEqual:
1720
+ case fe.HigerOrEqual:
1721
1721
  return Aa(o, e?.[2]);
1722
- case pe.Lower:
1722
+ case fe.Lower:
1723
1723
  return Da(o, e?.[2]);
1724
- case pe.LowerOrEqual:
1724
+ case fe.LowerOrEqual:
1725
1725
  return Oa(o, e?.[2]);
1726
- case pe.Between:
1726
+ case fe.Between:
1727
1727
  return Ua(o, e?.[2]);
1728
- case pe.StartWith:
1728
+ case fe.StartWith:
1729
1729
  return Ta(o, e?.[2]);
1730
- case pe.EndWith:
1730
+ case fe.EndWith:
1731
1731
  return Ra(o, e?.[2]);
1732
- case pe.Contain:
1732
+ case fe.Contain:
1733
1733
  return Pa(o, e?.[2]);
1734
- case pe.In:
1734
+ case fe.In:
1735
1735
  return Ha(o, e?.[2]);
1736
- case pe.NotIn:
1736
+ case fe.NotIn:
1737
1737
  return Na(o, e?.[2]);
1738
1738
  default:
1739
1739
  return !0;
@@ -2368,7 +2368,7 @@ const _s = /* @__PURE__ */ H(xs, [["render", ks]]), $s = {}, Cs = {
2368
2368
  };
2369
2369
  function Vs(o, e) {
2370
2370
  return i(), d("svg", Cs, e[0] || (e[0] = [
2371
- ce('<circle cx="9" cy="12" r="1"></circle><circle cx="9" cy="5" r="1"></circle><circle cx="9" cy="19" r="1"></circle><circle cx="15" cy="12" r="1"></circle><circle cx="15" cy="5" r="1"></circle><circle cx="15" cy="19" r="1"></circle>', 6)
2371
+ pe('<circle cx="9" cy="12" r="1"></circle><circle cx="9" cy="5" r="1"></circle><circle cx="9" cy="19" r="1"></circle><circle cx="15" cy="12" r="1"></circle><circle cx="15" cy="5" r="1"></circle><circle cx="15" cy="19" r="1"></circle>', 6)
2372
2372
  ]));
2373
2373
  }
2374
2374
  const ft = /* @__PURE__ */ H($s, [["render", Vs]]), Ms = {}, Ls = {
@@ -2378,7 +2378,7 @@ const ft = /* @__PURE__ */ H($s, [["render", Vs]]), Ms = {}, Ls = {
2378
2378
  };
2379
2379
  function Ss(o, e) {
2380
2380
  return i(), d("svg", Ls, e[0] || (e[0] = [
2381
- ce('<rect x="27" y="50.5" width="124" height="39" rx="7.5" fill="currentColor" class="fill-white dark:fill-neutral-800"></rect><rect x="27" y="50.5" width="124" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-50 dark:stroke-neutral-700/10"></rect><rect x="34.5" y="58" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="66.5" y="61" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="66.5" y="73" width="77" height="6" rx="3" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="19.5" y="28.5" width="139" height="39" rx="7.5" fill="currentColor" class="fill-white dark:fill-neutral-800"></rect><rect x="19.5" y="28.5" width="139" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-100 dark:stroke-neutral-700/30"></rect><rect x="27" y="36" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><rect x="59" y="39" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><rect x="59" y="51" width="92" height="6" rx="3" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><g filter="url(#filter1)"><rect x="12" y="6" width="154" height="40" rx="8" fill="currentColor" class="fill-white dark:fill-neutral-800" shape-rendering="crispEdges"></rect><rect x="12.5" y="6.5" width="153" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-100 dark:stroke-neutral-700/60" shape-rendering="crispEdges"></rect><rect x="20" y="14" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect><rect x="52" y="17" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect><rect x="52" y="29" width="106" height="6" rx="3" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect></g><defs><filter id="filter1" x="0" y="0" width="178" height="64" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"></feColorMatrix><feOffset dy="6"></feOffset><feGaussianBlur stdDeviation="6"></feGaussianBlur><feComposite in2="hardAlpha" operator="out"></feComposite><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03 0"></feColorMatrix><feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1187_14810"></feBlend><feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1187_14810" result="shape"></feBlend></filter></defs>', 12)
2381
+ pe('<rect x="27" y="50.5" width="124" height="39" rx="7.5" fill="currentColor" class="fill-white dark:fill-neutral-800"></rect><rect x="27" y="50.5" width="124" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-50 dark:stroke-neutral-700/10"></rect><rect x="34.5" y="58" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="66.5" y="61" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="66.5" y="73" width="77" height="6" rx="3" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="19.5" y="28.5" width="139" height="39" rx="7.5" fill="currentColor" class="fill-white dark:fill-neutral-800"></rect><rect x="19.5" y="28.5" width="139" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-100 dark:stroke-neutral-700/30"></rect><rect x="27" y="36" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><rect x="59" y="39" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><rect x="59" y="51" width="92" height="6" rx="3" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><g filter="url(#filter1)"><rect x="12" y="6" width="154" height="40" rx="8" fill="currentColor" class="fill-white dark:fill-neutral-800" shape-rendering="crispEdges"></rect><rect x="12.5" y="6.5" width="153" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-100 dark:stroke-neutral-700/60" shape-rendering="crispEdges"></rect><rect x="20" y="14" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect><rect x="52" y="17" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect><rect x="52" y="29" width="106" height="6" rx="3" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect></g><defs><filter id="filter1" x="0" y="0" width="178" height="64" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"></feColorMatrix><feOffset dy="6"></feOffset><feGaussianBlur stdDeviation="6"></feGaussianBlur><feComposite in2="hardAlpha" operator="out"></feComposite><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03 0"></feColorMatrix><feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1187_14810"></feBlend><feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1187_14810" result="shape"></feBlend></filter></defs>', 12)
2382
2382
  ]));
2383
2383
  }
2384
2384
  const Bs = /* @__PURE__ */ H(Ms, [["render", Ss]]), js = {}, Is = {
@@ -2561,7 +2561,7 @@ const zs = /* @__PURE__ */ H(js, [["render", Es]]), Fs = { class: "vs-datatable
2561
2561
  width: "14",
2562
2562
  height: "14"
2563
2563
  }),
2564
- S[4] || (S[4] = fe(" Імпортувати ", -1))
2564
+ S[4] || (S[4] = ce(" Імпортувати ", -1))
2565
2565
  ]),
2566
2566
  l("button", {
2567
2567
  onClick: E,
@@ -2573,7 +2573,7 @@ const zs = /* @__PURE__ */ H(js, [["render", Es]]), Fs = { class: "vs-datatable
2573
2573
  width: "14",
2574
2574
  height: "14"
2575
2575
  }),
2576
- S[5] || (S[5] = fe(" Експортувати ", -1))
2576
+ S[5] || (S[5] = ce(" Експортувати ", -1))
2577
2577
  ])
2578
2578
  ])
2579
2579
  ])
@@ -2585,7 +2585,7 @@ const zs = /* @__PURE__ */ H(js, [["render", Es]]), Fs = { class: "vs-datatable
2585
2585
  class: "text-slate-700 bg-white hover:bg-gray-100 font-semibold text-[15px] leadig-[18.5px] py-[10px] px-[12px] border border-[#E5E7EB] rounded-[8px] h-[38px] max-h-[38px] gap-[8px] flex items-center"
2586
2586
  }, [
2587
2587
  j(De),
2588
- S[6] || (S[6] = fe(" Додати ", -1))
2588
+ S[6] || (S[6] = ce(" Додати ", -1))
2589
2589
  ])
2590
2590
  ]),
2591
2591
  l("div", qs, [
@@ -2908,7 +2908,7 @@ const _r = /* @__PURE__ */ H(xr, [["render", kr]]), $r = {}, Cr = {
2908
2908
  };
2909
2909
  function Vr(o, e) {
2910
2910
  return i(), d("svg", Cr, e[0] || (e[0] = [
2911
- ce('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M12 5m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M19 8m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M5 11m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M15 19m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M6.5 9.5l3.5 -3"></path><path d="M14 5.5l3 1.5"></path><path d="M18.5 10l-2.5 7"></path><path d="M13.5 17.5l-7 -5"></path>', 9)
2911
+ pe('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M12 5m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M19 8m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M5 11m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M15 19m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M6.5 9.5l3.5 -3"></path><path d="M14 5.5l3 1.5"></path><path d="M18.5 10l-2.5 7"></path><path d="M13.5 17.5l-7 -5"></path>', 9)
2912
2912
  ]));
2913
2913
  }
2914
2914
  const Mr = /* @__PURE__ */ H($r, [["render", Vr]]), Lr = {}, Sr = {
@@ -2923,7 +2923,7 @@ const Mr = /* @__PURE__ */ H($r, [["render", Vr]]), Lr = {}, Sr = {
2923
2923
  };
2924
2924
  function Br(o, e) {
2925
2925
  return i(), d("svg", Sr, e[0] || (e[0] = [
2926
- ce('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M8 18a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M20 18a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M20 6a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M8 6a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M6 8v8"></path><path d="M18 16v-8"></path><path d="M8 6h8"></path><path d="M16 18h-8"></path>', 9)
2926
+ pe('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M8 18a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M20 18a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M20 6a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M8 6a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M6 8v8"></path><path d="M18 16v-8"></path><path d="M8 6h8"></path><path d="M16 18h-8"></path>', 9)
2927
2927
  ]));
2928
2928
  }
2929
2929
  const jr = /* @__PURE__ */ H(Lr, [["render", Br]]), Ir = {}, Er = {
@@ -3523,19 +3523,19 @@ const Fr = /* @__PURE__ */ H(Ir, [["render", zr]]), Ar = { class: "form-geom__se
3523
3523
  l("div", yn, [
3524
3524
  I.value ? (i(), d("div", xn, [
3525
3525
  l("div", wn, [
3526
- k[7] || (k[7] = fe(" Тип: ", -1)),
3526
+ k[7] || (k[7] = ce(" Тип: ", -1)),
3527
3527
  l("span", kn, T(I.value.type), 1)
3528
3528
  ]),
3529
3529
  l("div", _n, [
3530
3530
  l("div", $n, [
3531
- k[8] || (k[8] = fe(" Центр: ", -1)),
3531
+ k[8] || (k[8] = ce(" Центр: ", -1)),
3532
3532
  l("b", null, T(I.value.center.lat.toFixed(5)) + ", " + T(I.value.center.lng.toFixed(5)), 1)
3533
3533
  ]),
3534
3534
  I.value.areaKm2 !== null ? (i(), d("div", Cn, [
3535
- k[9] || (k[9] = fe(" Площа: ", -1)),
3535
+ k[9] || (k[9] = ce(" Площа: ", -1)),
3536
3536
  l("b", null, T(I.value.areaKm2.toFixed(1)) + "км²", 1)
3537
3537
  ])) : (i(), d("div", Vn, k[10] || (k[10] = [
3538
- fe(" Площа: ", -1),
3538
+ ce(" Площа: ", -1),
3539
3539
  l("b", null, "—", -1)
3540
3540
  ]))),
3541
3541
  l("button", {
@@ -3543,7 +3543,7 @@ const Fr = /* @__PURE__ */ H(Ir, [["render", zr]]), Ar = { class: "form-geom__se
3543
3543
  title: "Наблизити",
3544
3544
  onClick: k[5] || (k[5] = (U) => we())
3545
3545
  }, k[11] || (k[11] = [
3546
- ce('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-3 h-3" data-v-44f47a6f><path d="M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0" data-v-44f47a6f></path><path d="M7 10l6 0" data-v-44f47a6f></path><path d="M10 7l0 6" data-v-44f47a6f></path><path d="M21 21l-6 -6" data-v-44f47a6f></path></svg>', 1)
3546
+ pe('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-3 h-3" data-v-44f47a6f><path d="M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0" data-v-44f47a6f></path><path d="M7 10l6 0" data-v-44f47a6f></path><path d="M10 7l0 6" data-v-44f47a6f></path><path d="M21 21l-6 -6" data-v-44f47a6f></path></svg>', 1)
3547
3547
  ])),
3548
3548
  l("button", {
3549
3549
  class: "tool bg-gray-100 py-1.5 px-2 rounded-lg text-md cursor-pointer hover:bg-blue-500 hover:text-white transition-all",
@@ -3841,7 +3841,7 @@ const Fr = /* @__PURE__ */ H(Ir, [["render", zr]]), Ar = { class: "form-geom__se
3841
3841
  }, ["prevent"])),
3842
3842
  onDrop: (f) => g(x)
3843
3843
  }, [
3844
- F[1] || (F[1] = ce('<button class="cursor-move" data-v-a0f7fbfc><svg fill="#000000" width="20" height="20" viewBox="0 0 36 36" data-v-a0f7fbfc><circle cx="15" cy="12" r="1.5" data-v-a0f7fbfc></circle><circle cx="15" cy="24" r="1.5" data-v-a0f7fbfc></circle><circle cx="21" cy="12" r="1.5" data-v-a0f7fbfc></circle><circle cx="21" cy="24" r="1.5" data-v-a0f7fbfc></circle><circle cx="21" cy="18" r="1.5" data-v-a0f7fbfc></circle><circle cx="15" cy="18" r="1.5" data-v-a0f7fbfc></circle></svg></button>', 1)),
3844
+ F[1] || (F[1] = pe('<button class="cursor-move" data-v-a0f7fbfc><svg fill="#000000" width="20" height="20" viewBox="0 0 36 36" data-v-a0f7fbfc><circle cx="15" cy="12" r="1.5" data-v-a0f7fbfc></circle><circle cx="15" cy="24" r="1.5" data-v-a0f7fbfc></circle><circle cx="21" cy="12" r="1.5" data-v-a0f7fbfc></circle><circle cx="21" cy="24" r="1.5" data-v-a0f7fbfc></circle><circle cx="21" cy="18" r="1.5" data-v-a0f7fbfc></circle><circle cx="15" cy="18" r="1.5" data-v-a0f7fbfc></circle></svg></button>', 1)),
3845
3845
  l("div", Gn, [
3846
3846
  j(Re, {
3847
3847
  modelValue: E.key,
@@ -3879,7 +3879,7 @@ const Fr = /* @__PURE__ */ H(Ir, [["render", zr]]), Ar = { class: "form-geom__se
3879
3879
  height: "14",
3880
3880
  width: "14"
3881
3881
  }),
3882
- fe(" " + T(G(s)), 1)
3882
+ ce(" " + T(G(s)), 1)
3883
3883
  ], 8, Qn)
3884
3884
  ])
3885
3885
  ]));
@@ -4053,6 +4053,7 @@ const Fr = /* @__PURE__ */ H(Ir, [["render", zr]]), Ar = { class: "form-geom__se
4053
4053
  label: e.item.label
4054
4054
  }, {
4055
4055
  default: Be(() => [
4056
+ c[1] || (c[1] = ce(' v-show="!item.hidden" > ', -1)),
4056
4057
  l("div", {
4057
4058
  class: V(["flex w-full", `${e.item.type}-component`])
4058
4059
  }, [
@@ -4063,7 +4064,8 @@ const Fr = /* @__PURE__ */ H(Ir, [["render", zr]]), Ar = { class: "form-geom__se
4063
4064
  u.item.behavior?.api && u.item.behavior?.button ? (i(), de(ni, Ae({ key: 0 }, u.item.behavior, { value: t.value }), null, 16, ["value"])) : z("", !0)
4064
4065
  ], 2)
4065
4066
  ]),
4066
- _: 1
4067
+ _: 1,
4068
+ __: [1]
4067
4069
  }, 8, ["ua", "error", "item", "label"]));
4068
4070
  }
4069
4071
  }), Vt = {
@@ -1,3 +1,3 @@
1
1
  (function(I,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@opengis/core")):typeof define=="function"&&define.amd?define(["exports","vue","@opengis/core"],e):(I=typeof globalThis<"u"?globalThis:I||self,e(I.FormBuilder={},I.Vue,I.OpenGISCore))})(this,function(I,e,G){"use strict";const Ht={key:0,class:"text-[14px] font-medium text-gray-900 mb-2"},Gt={class:"opacity-100"},qt={key:0,class:"text-red-500 text-[14px]"},Kt={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Zt=e.defineComponent({__name:"vs-layout-default",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""}},setup(o){const t=e.ref("uk"),s=n=>{n.detail.key==="locale"&&(t.value=n.detail.newValue)};return e.onMounted(()=>{t.value=localStorage.locale,window.addEventListener("storage",s)}),e.onUnmounted(()=>{window.removeEventListener("resize",s)}),(n,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["w-full relative",{"opacity-60":n.item.disabled}])},[n.ua||n.label?(e.openBlock(),e.createElementBlock("div",Ht,[e.createElementVNode("span",Gt,e.toDisplayString(n.item[t.value]||n.ua||n.label),1),n.item?.rules?.includes("required")?(e.openBlock(),e.createElementBlock("span",qt,"*")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(n.$slots,"default",e.normalizeProps(e.guardReactiveProps(n.$attrs))),n.error?(e.openBlock(),e.createElementBlock("span",Kt,e.toDisplayString(n.error),1)):e.createCommentVNode("",!0)],2))}}),Yt={class:"w-full relative flex flex-row items-center gap-2"},Jt={key:0,class:"text-sm text-gray-900 font-medium flex shrink-0 w-3/12 max-w-[250px]"},Wt={key:0,class:"text-red-500 text-[14px]"},Xt={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Qt=e.defineComponent({__name:"vs-layout-horizontal",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""}},setup(o){return(t,s)=>(e.openBlock(),e.createElementBlock("div",Yt,[t.item?.type!=="html"?(e.openBlock(),e.createElementBlock("span",Jt,[e.createTextVNode(e.toDisplayString(t.ua||t.label)+" ",1),t.item?.rules?.includes("required")&&(t.ua||t.label)?(e.openBlock(),e.createElementBlock("span",Wt,"*")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(t.$attrs))),t.error?(e.openBlock(),e.createElementBlock("span",Xt,e.toDisplayString(t.error),1)):e.createCommentVNode("",!0)]))}}),es={class:"w-full relative"},ts={key:0,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},ss=e.defineComponent({__name:"vs-layout-inline",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""}},setup(o){return(t,s)=>(e.openBlock(),e.createElementBlock("div",es,[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(t.$attrs))),t.error?(e.openBlock(),e.createElementBlock("span",ts,e.toDisplayString(t.error),1)):e.createCommentVNode("",!0)]))}}),ns={class:"flex-1 min-w-0"},ls={key:0,class:"text-sm font-medium text-slate-700 dark:text-slate-200 flex items-center gap-1"},as={class:"truncate"},rs={key:0,class:"text-red-500 text-[14px]"},os={key:1,class:"text-xs text-slate-500 dark:text-slate-400"},is={class:"w-full md:w-auto"},ds={key:0,class:"mt-1 text-xs text-red-500"},us={default:Zt,horizontal:Qt,inline:ss,settings:e.defineComponent({__name:"vs-layout-settings",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""}},setup(o){const t=o,s=e.ref("uk");e.computed(()=>(t.item??{})?.[s.value]??t.ua??t.label??"");const n=e.computed(()=>t.item?.description??""),l=e.computed(()=>Array.isArray(t.item?.rules)&&t.item.rules.includes("required")),a=e.computed(()=>(typeof t.error=="string"?t.error:"")??""),r=i=>{i.key==="locale"&&(s.value=i.newValue??"uk")};return e.onMounted(()=>{try{typeof localStorage<"u"&&localStorage.locale&&(s.value=localStorage.locale)}catch{}window.addEventListener("storage",r)}),e.onUnmounted(()=>{window.removeEventListener("storage",r)}),(i,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["w-full relative",{"opacity-60":i.item?.disabled}])},[e.createElementVNode("div",{class:e.normalizeClass(["gap-2 md:flex-row md:items-center md:justify-between",[["switcher","native-select"].includes(i.item.type)?"flex flex-col":""]])},[e.createElementVNode("div",ns,[i.ua||i.label?(e.openBlock(),e.createElementBlock("p",ls,[e.createElementVNode("span",as,e.toDisplayString(i.item[s.value]||i.ua||i.label),1),l.value?(e.openBlock(),e.createElementBlock("span",rs,"*")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),n.value?(e.openBlock(),e.createElementBlock("p",os,e.toDisplayString(n.value),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",is,[e.renderSlot(i.$slots,"default",e.normalizeProps(e.guardReactiveProps(i.$attrs)))])],2),a.value?(e.openBlock(),e.createElementBlock("p",ds,e.toDisplayString(a.value),1)):e.createCommentVNode("",!0)],2))}})};function te(o){return{inputClass:e.computed(()=>{const s=`disabled:opacity-50 disabled:cursor-not-allowed outline-none focus:ring-2 focus:ring-ring focus:ring-${o?.primaryColor||"blue"}-500 border border-solid border-stone-200 rounded-md text-sm text-stone-800 placeholder:text-stone-400 `;return o?.size==="sm"?`${s}h-[32px]`:`${s}h-[38px]`})}}const cs=["placeholder","disabled"],ps=e.defineComponent({__name:"vs-input-password",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:s}=te(t.style),n=e.useModel(o,"modelValue");return(l,a)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"password","onUpdate:modelValue":a[0]||(a[0]=r=>n.value=r),placeholder:l.placeholder,disabled:l.disabled,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(s),{"!border-red-600":l.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,cs)),[[e.vModelText,n.value]])}}),hs=["placeholder","disabled"],xe=e.defineComponent({__name:"vs-input-text",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:s}=te(t.style),n=e.useModel(o,"modelValue");return(l,a)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"text","onUpdate:modelValue":a[0]||(a[0]=r=>n.value=r),placeholder:l.placeholder,disabled:l.disabled,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(s),{"!border-red-600":l.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,hs)),[[e.vModelText,n.value]])}}),ms=["placeholder"],Ke=e.defineComponent({__name:"vs-input-number",props:e.mergeModels({style:{default:()=>({})},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{default:""}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:s}=te(t.style),n=e.useModel(o,"modelValue");return(l,a)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"number",step:"any","onUpdate:modelValue":a[0]||(a[0]=r=>n.value=r),placeholder:l.placeholder,class:e.normalizeClass(["py-1.5 px-3 block w-full bg-white",[e.unref(s)]]),style:{border:"1px solid #CFD9E0"}},null,10,ms)),[[e.vModelText,n.value]])}}),T=(o,t)=>{const s=o.__vccOpts||o;for(const[n,l]of t)s[n]=l;return s},fs={},gs={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"4","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-check"};function ks(o,t){return e.openBlock(),e.createElementBlock("svg",gs,t[0]||(t[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M5 12l5 5l10 -10"},null,-1)]))}const bs=T(fs,[["render",ks]]),ys={class:"flex items-center gap-[4px]"},xs=["value","id","disabled"],_s=["for"],ws={class:"text-[14px] text-gray-700 flex items-center gap-x-1 ml-1 dark:text-neutral-400"},Es=e.defineComponent({__name:"vs-checkbox-default",props:{value:{default:""},label:{default:""},disabled:{type:Boolean,default:!1},id:{},modelValue:{default:""},info:{},error:{}},emits:["update:modelValue"],setup(o,{emit:t}){const s=t,n=o,l=e.computed({get:()=>n.modelValue,set:a=>s("update:modelValue",a)});return(a,r)=>(e.openBlock(),e.createElementBlock("div",ys,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",value:a.value,"onUpdate:modelValue":r[0]||(r[0]=i=>l.value=i),class:e.normalizeClass(["shrink-0 border border-solid hidden border-gray-700 w-3.5 h-3.5 rounded text-blue-600 focus:ring-offset-0 dark:bg-neutral-800 dark:border-neutral-700 cursor-pointer",{"!cursor-not-allowed":a.disabled}]),id:a.id,disabled:a.disabled},null,10,xs),[[e.vModelCheckbox,l.value]]),e.createElementVNode("label",{for:a.id,class:e.normalizeClass(["flex flex-1 checkbox-label items-center gap-x-2 cursor-pointer text-sm text-gray-800 dark:text-neutral-300",{"!cursor-not-allowed":a.disabled}])},[e.createElementVNode("div",{class:e.normalizeClass(["h-[16px] text-white w-[16px] flex items-center justify-center shrink-0 border rounded",[l.value?"bg-blue-600 border-blue-600":"bg-white border-gray-600",a.error?"border-red-600":""]])},[e.createVNode(bs,{height:"12",width:"12"})],2),e.createElementVNode("span",ws,[e.renderSlot(a.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(a.label),1)])])],10,_s)]))}}),Vs=["name","value","disabled"],Cs={class:"flex items-center gap-[6px] text-[14px]"},vs={key:0,class:"text-[16px]"},Bs=["src"],Ns=e.defineComponent({__name:"vs-checkbox-buttons",props:{value:{type:[String,Number,Boolean],default:""},label:{default:""},modelValue:{default:""},disabled:{type:Boolean},id:{},icon:{},imgUrl:{},style:{}},emits:["update:modelValue"],setup(o,{emit:t}){const s=o,n=t,l=e.computed({get:()=>s.modelValue,set:i=>{n("update:modelValue",i)}}),a=e.computed(()=>Array.isArray(l.value)?l.value.includes(s.value):l.value===!0||l.value===s.value),r=e.computed(()=>s.style?.size==="xs"?"p-1.5 text-xs":s.style?.size==="lg"?"p-3.5 text-[20px]":"p-2.5 text-xs");return(i,d)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["group relative flex justify-center items-center gap-x-3 text-center bg-white text-gray-800 ring-ring ring-2 cursor-pointer rounded-lg",[r.value,a.value?"ring-blue-500":"border border-gray-200 ring-transparent"]])},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",class:"hidden",name:i.id,value:i.value,"onUpdate:modelValue":d[0]||(d[0]=u=>l.value=u),disabled:i.disabled},null,8,Vs),[[e.vModelCheckbox,l.value]]),e.createElementVNode("span",Cs,[i.icon||i.imgUrl?(e.openBlock(),e.createElementBlock("span",vs,[i.icon?(e.openBlock(),e.createElementBlock("i",{key:0,class:e.normalizeClass(i.icon)},null,2)):e.createCommentVNode("",!0),i.imgUrl?(e.openBlock(),e.createElementBlock("img",{key:1,src:i.imgUrl,width:"16",height:"16",alt:"icon"},null,8,Bs)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(i.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(i.label),1)])])],2))}}),Ss={class:"flex items-center"},Ze=e.defineComponent({__name:"vs-input-checkbox-item",props:{value:{default:""},label:{default:""},disabled:{type:Boolean,default:!1},view:{default:"default"},modelValue:{type:[Boolean,Array],default:!1},icon:{},imgUrl:{},slots:{},option:{},style:{},error:{default:""}},emits:["update:modelValue"],setup(o,{emit:t}){const s=o,n=t,l=`radio-${Math.floor(Math.random()*1e4)}`,a=e.computed({get:()=>Array.isArray(s.modelValue)?Array.isArray(s.modelValue)&&s.modelValue.includes(s.value):s.modelValue,set:i=>{if(Array.isArray(s.modelValue)){let d=[...s.modelValue];i?d.includes(s.value)||d.push(s.value):d=d.filter(u=>u!==s.value),n("update:modelValue",d)}else n("update:modelValue",i)}}),r=e.ref(`vs-checkbox-${s.view||"default"}`);return(i,d)=>(e.openBlock(),e.createElementBlock("div",Ss,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value==="vs-checkbox-buttons"?e.unref(Ns):e.unref(Es)),{value:i.value,label:i.label,info:i.option?.info,disabled:i.disabled,modelValue:a.value,"onUpdate:modelValue":d[0]||(d[0]=u=>a.value=u),id:l,icon:i.icon,imgUrl:i.imgUrl,style:e.normalizeStyle(i.style),error:i.error},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.label),1)]),_:1},8,["value","label","info","disabled","modelValue","icon","imgUrl","style","error"]))]))}}),Ms={},Fs={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-chevron-down"};function As(o,t){return e.openBlock(),e.createElementBlock("svg",Fs,t[0]||(t[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M6 9l6 6l6 -6"},null,-1)]))}const $s=T(Ms,[["render",As]]),Ds={},Is={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-x"};function Ls(o,t){return e.openBlock(),e.createElementBlock("svg",Is,t[0]||(t[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M18 6l-12 12"},null,-1),e.createElementVNode("path",{d:"M6 6l12 12"},null,-1)]))}const Ts=T(Ds,[["render",Ls]]),Rs={},Os={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"};function zs(o,t){return e.openBlock(),e.createElementBlock("svg",Os,t[0]||(t[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M12 9h.01"},null,-1),e.createElementVNode("path",{d:"M11 12h1v4h1"},null,-1),e.createElementVNode("path",{d:"M12 3c7.2 0 9 1.8 9 9s-1.8 9 -9 9s-9 -1.8 -9 -9s1.8 -9 9 -9z"},null,-1)]))}const js=T(Rs,[["render",zs]]),Us={key:0,class:"flex items-start gap-x-1"},Ps={key:0,class:"text-red-500 text-[14px]"},Hs=["title"],Gs=["disabled"],Le=e.defineComponent({__name:"vs-input-switcher",props:e.mergeModels({rules:{default:()=>[]},view:{default:"checkbox"},label:{default:""},i:{default:""},text:{default:""},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,s=e.useModel(o,"modelValue");return(n,l)=>t.view==="checkbox"?(e.openBlock(),e.createElementBlock("div",Us,[e.createVNode(Ze,{modelValue:s.value,"onUpdate:modelValue":l[0]||(l[0]=a=>s.value=a),label:n.text,error:n.error||""},null,8,["modelValue","label","error"]),n.rules?.includes("required")?(e.openBlock(),e.createElementBlock("span",Ps,"*")):e.createCommentVNode("",!0),n.i?(e.openBlock(),e.createElementBlock("button",{key:1,class:"cursor-pointer",title:n.i,onClick:l[1]||(l[1]=e.withModifiers(()=>{},["prevent"]))},[e.createVNode(e.unref(js),{class:"text-gray-500 w-[14px] h-[14px]"})],8,Hs)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:e.normalizeClass(["inline-flex h-5 w-9 shrink-0 px-[2px] cursor-pointer items-center rounded-full shadow-sm disabled:cursor-not-allowed disabled:opacity-50",[s.value?`bg-${n.style?.primaryColor||"blue"}-500`:"bg-stone-200",n.customClass]]),disabled:n.disabled,onClick:l[2]||(l[2]=a=>s.value=!s.value)},[e.createElementVNode("span",{"data-state":"checked",class:e.normalizeClass(["pointer-events-none block h-4 w-4 rounded-full bg-white shadow-lg ring-0 transition-transform",[s.value?"translate-x-4":"translate-x-0"]])},null,2)],10,Gs))}}),qs=["innerHTML"],Te=e.defineComponent({__name:"vs-input-static",props:{text:{default:""},html:{default:""},style:{},customClass:{default:""},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{}},setup(o){return(t,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.customClass),innerHTML:t.html?t.html:t.text},null,10,qs))}}),Ks=["placeholder","disabled","name"],Ye=e.defineComponent({__name:"vs-input-mask",props:e.mergeModels({name:{},mask:{default:""},unmask:{type:Boolean,default:!1},placeholder:{default:"_"},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:s}=te(t.style),n=e.useModel(o,"modelValue"),l=e.ref(null);let a=null;return e.onMounted(async()=>{if(l.value){const{default:r}=await Promise.resolve().then(()=>ai);a=r(l.value,{mask:t.mask||"",definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},lazy:!1}),a.on("accept",()=>{n.value=t.unmask?a.unmaskedValue:a.value}),a.on("complete",()=>{n.value=t.unmask?a.unmaskedValue:a.value}),a.value=n.value??""}}),e.onBeforeUnmount(()=>{a?.destroy()}),e.watch(()=>t.mask,r=>{a&&a.updateOptions({mask:r,definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/}})}),e.watch(n,r=>{a&&a.unmaskedValue!==r&&(a.value=r||"")}),(r,i)=>(e.openBlock(),e.createElementBlock("input",{type:"text",ref_key:"inputEl",ref:l,placeholder:r.placeholder,disabled:r.disabled,name:r.name,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(s)]]),style:{border:"1px solid #CFD9E0"}},null,10,Ks))}}),Zs={class:"relative w-full bg-white rounded-lg"},Ys=["placeholder","disabled"],Je=e.defineComponent({__name:"vs-input-email",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:s}=te(t.style),n=e.useModel(o,"modelValue");return(l,a)=>(e.openBlock(),e.createElementBlock("div",Zs,[a[1]||(a[1]=e.createStaticVNode('<div class="absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"><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="stroke-gray-500 transition-all"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M3 7a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-10z"></path><path d="M3 7l9 6l9 -6"></path></svg></div>',1)),e.withDirectives(e.createElementVNode("input",{type:"email","onUpdate:modelValue":a[0]||(a[0]=r=>n.value=r),placeholder:l.placeholder,disabled:l.disabled,class:e.normalizeClass(["!pl-8 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(s),{"!border-red-600":l.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Ys),[[e.vModelText,n.value]])]))}}),Js=["value","disabled"],Ws={class:"text-[13px] text-gray-700"},Xs=e.defineComponent({__name:"vs-input-radio-default",props:e.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},value:{},text:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=e.useModel(o,"modelValue");return(s,n)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex items-center gap-0",[s.customClass]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":n[0]||(n[0]=l=>t.value=l),type:"radio",value:s.value,disabled:s.disabled,class:"hidden"},null,8,Js),[[e.vModelRadio,t.value]]),e.createElementVNode("span",{class:e.normalizeClass(["w-[16px] shrink-0 h-[16px] border rounded-full flex items-center justify-center mr-[10px]",[`border-${s.style?.primaryColor||"blue"}-500`,s.disabled?"opacity-50 cursor-not-allowed":""]])},[t.value==s.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["w-[12px] h-[12px] shrink-0 rounded-full",[`bg-${s.style?.primaryColor||"blue"}-500`]])},null,2)):e.createCommentVNode("",!0)],2),e.createElementVNode("span",Ws,e.toDisplayString(s.text),1)],2))}}),Qs=["value","disabled"],en={class:"text-[13px] text-gray-700"},tn={"vs-input-radio-default":Xs,"vs-input-radio-buttons":e.defineComponent({__name:"vs-input-radio-buttons",props:e.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},value:{},text:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=e.useModel(o,"modelValue");return(s,n)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex items-center border rounded-lg px-2 py-1",[t.value==s.value?`ring-2 ring-ring ring-${s.style?.primaryColor||"blue"}-500`:"",s.customClass]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":n[0]||(n[0]=l=>t.value=l),type:"radio",value:s.value,disabled:s.disabled,class:"hidden"},null,8,Qs),[[e.vModelRadio,t.value]]),e.createElementVNode("span",en,e.toDisplayString(s.text),1)],2))}})},Re=e.defineComponent({__name:"vs-input-radio",props:e.mergeModels({options:{},position:{default:"vertical"},view:{default:"default"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,s=e.useModel(o,"modelValue"),n=e.computed(()=>tn[`vs-input-radio-${t.view}`]);return(l,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([l.position==="horizontal"?"flex items-center flex-wrap gap-2":""])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.options,r=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.value),e.mergeProps({key:r?.id,text:r.text,value:r.id.toString(),checked:s.value===r.id,modelValue:s.value,"onUpdate:modelValue":a[0]||(a[0]=i=>s.value=i)},{ref_for:!0},l.$attrs),null,16,["text","value","checked","modelValue"]))),128))],2))}}),We=T(e.defineComponent({__name:"vs-input-checkbox",props:{options:{default:()=>[]},position:{default:"vertical"},slots:{default:null},colSpan:{default:0},data:{},view:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{default:!1},error:{},name:{},placeholder:{}},emits:["update:modelValue"],setup(o,{emit:t}){const s=o,n=t,l=e.ref([]),a=e.reactive({}),r=c=>c?.value||c?.id||c?.text||c,i=c=>c.text||String(c),d=c=>`lg:col-span-${c||12}`,u=async()=>{try{const c=await fetch(`/api/suggest/${s.data}`).then(p=>p.json());l.value=c?.data||c}catch(c){console.error(c)}};return e.watch(()=>s.modelValue,c=>{if(typeof c=="boolean"&&l.value.length===1){const p=r(l.value[0]);a[p]=c}else if(Array.isArray(c)){const p=new Set(c);l.value.forEach(m=>{if(!m.disabled){const x=r(m);a[x]=p.has(x)}})}},{immediate:!0}),e.watch(a,()=>{if(!l.value.length){n("update:modelValue",null);return}const c=Object.entries(a).filter(([,p])=>p).map(([p])=>p);n("update:modelValue",c.length===0?[]:c)},{deep:!0}),e.onMounted(()=>{if(s.data)u().then(()=>{if(typeof s.modelValue=="boolean"&&l.value.length===1){const c=r(l.value[0]);a[c]=s.modelValue}else if(Array.isArray(s.modelValue)){const c=new Set(s.modelValue);l.value.forEach(p=>{if(!p.disabled){const m=r(p);a[m]=c.has(m)}})}});else if(l.value=s.options,typeof s.modelValue=="boolean"&&l.value.length===1){const c=r(l.value[0]);a[c]=s.modelValue}else if(Array.isArray(s.modelValue)){const c=new Set(s.modelValue);l.value.forEach(p=>{if(!p.disabled){const m=r(p);a[m]=c.has(m)}})}}),(c,p)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["p-0 w-full gap-[6px]",[c.position==="vertical"?"flex-col":"",c.colSpan?"grid":"flex justify-start"]])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,m=>(e.openBlock(),e.createBlock(Ze,{modelValue:a[r(m)],"onUpdate:modelValue":x=>a[r(m)]=x,value:r(m),class:e.normalizeClass(d(c.colSpan)),disabled:m.disabled,label:i(m),key:r(m),icon:m?.icon,imgUrl:m?.imgUrl,option:m,view:c.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","icon","imgUrl","option","view"]))),128))],2))}}),[["__scopeId","data-v-91f3584a"]]),sn=["type","placeholder","disabled"],Xe=e.defineComponent({__name:"vs-input-date1",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},mode:{default:"date"}},emits:["update:modelValue"],setup(o,{emit:t}){const s=o;function n(d){return d?s.mode==="datetime"?(d.includes("T")?d:null)||d+(d.includes(" ")?"":"T00:00"):d?.split(" ")[0]:null}const{inputClass:l}=te(s.style),a=t,r=e.computed({get:()=>n(s.modelValue),set:d=>a("update:modelValue",d)}),i=e.computed(()=>s.mode==="datetime"?"datetime-local":s.mode);return(d,u)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:i.value,"onUpdate:modelValue":u[0]||(u[0]=c=>r.value=c),placeholder:d.placeholder,disabled:d.disabled,ref:"date",class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[d.modelValue?"":"text-opacity-50",e.unref(l)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,sn)),[[e.vModelDynamic,r.value]])}}),nn=async(o,t,s,n)=>{try{const l=new FormData;return l.append("unique","true"),l.append("file",o),(await fetch(`/file/upload/uploads?id=${t||""}&form=${s||""}&table=${n||""}`,{method:"POST",body:l}).then(r=>r.json()))?.result}catch(l){return G.notify({type:"error",title:"Помилка!",message:"Сталась помилка під час завантаження файлу",position:"right-bottom"}),console.error("Сталась помилка завантаження файлу",l),null}},ln=async o=>{try{return await fetch(`file/delete${o}`),!0}catch(t){return console.error(t),!1}},Qe=async o=>{try{const t=await fetch(`file/download/files/uploads${o}`),s=await t.arrayBuffer(),n=t.headers["content-type"],l=new TextDecoder("utf-8").decode(s),a=new Blob([l],{type:n}),r=document.createElement("a");r.setAttribute("download",o),r.href=window.URL.createObjectURL(a),r.click()}catch(t){console.error(t.message)}},an={},rn={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"};function on(o,t){return e.openBlock(),e.createElementBlock("svg",rn,t[0]||(t[0]=[e.createElementVNode("path",{d:"M5 12h14"},null,-1),e.createElementVNode("path",{d:"M12 5v14"},null,-1)]))}const _e=T(an,[["render",on]]),dn={},un={xmlns:"http://www.w3.org/2000/svg",class:"icon icon-tabler icon-tabler-file-text",width:"44",height:"44",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"};function cn(o,t,s,n,l,a){return e.openBlock(),e.createElementBlock("svg",un,t[0]||(t[0]=[e.createStaticVNode('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M14 3v4a1 1 0 0 0 1 1h4"></path><path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z"></path><line x1="9" y1="9" x2="10" y2="9"></line><line x1="9" y1="13" x2="15" y2="13"></line><line x1="9" y1="17" x2="15" y2="17"></line>',6)]))}const pn=T(dn,[["render",cn]]),hn={},mn={xmlns:"http://www.w3.org/2000/svg",class:"icon icon-tabler icon-tabler-table",width:"44",height:"44",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"};function fn(o,t,s,n,l,a){return e.openBlock(),e.createElementBlock("svg",mn,t[0]||(t[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"},null,-1),e.createElementVNode("line",{x1:"4",y1:"10",x2:"20",y2:"10"},null,-1),e.createElementVNode("line",{x1:"10",y1:"4",x2:"10",y2:"20"},null,-1)]))}const gn=T(hn,[["render",fn]]),kn={},bn={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"};function yn(o,t){return e.openBlock(),e.createElementBlock("svg",bn,t[0]||(t[0]=[e.createStaticVNode('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M14 3v4a1 1 0 0 0 1 1h4"></path><path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z"></path><path d="M9 9l1 0"></path><path d="M9 13l6 0"></path><path d="M9 17l6 0"></path>',6)]))}const et=T(kn,[["render",yn]]),xn={},_n={xmlns:"http://www.w3.org/2000/svg",class:"icon icon-tabler icon-tabler-file-zip",width:"44",height:"44",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"};function wn(o,t,s,n,l,a){return e.openBlock(),e.createElementBlock("svg",_n,t[0]||(t[0]=[e.createStaticVNode('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M6 20.735a2 2 0 0 1 -1 -1.735v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2h-1"></path><path d="M11 17a2 2 0 0 1 2 2v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-2a2 2 0 0 1 2 -2z"></path><line x1="11" y1="5" x2="10" y2="5"></line><line x1="13" y1="7" x2="12" y2="7"></line><line x1="11" y1="9" x2="10" y2="9"></line><line x1="13" y1="11" x2="12" y2="11"></line><line x1="11" y1="13" x2="10" y2="13"></line><line x1="13" y1="15" x2="12" y2="15"></line>',9)]))}const En=T(xn,[["render",wn]]),Vn={},Cn={xmlns:"http://www.w3.org/2000/svg",class:"icon icon-tabler icon-tabler-file-code",width:"44",height:"44",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"};function vn(o,t,s,n,l,a){return e.openBlock(),e.createElementBlock("svg",Cn,t[0]||(t[0]=[e.createStaticVNode('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M14 3v4a1 1 0 0 0 1 1h4"></path><path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z"></path><path d="M10 13l-1 2l1 2"></path><path d="M14 13l1 2l-1 2"></path>',5)]))}const Bn=T(Vn,[["render",vn]]),Nn=o=>{if(!o)return"";const t=o?.split(".");return t[t.length-1]},Sn=o=>{const t=Nn(o),s={imageFormat:["tiff","jpg","jpeg","png","svg","ico","webp"],sheetsFormat:["xls","csv","xlsx"],archivesFormat:["zip","rar"],textsFormat:["json","geojson","txt","yml","yaml","shp"],documentsFormat:["pdf"]};return s.imageFormat.includes(t)?"img":s.sheetsFormat.includes(t)?gn:s.textsFormat.includes(t)?Bn:s.documentsFormat.includes(t)?pn:s.archivesFormat.includes(t)?En:et},Mn={},Fn={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-trash"};function An(o,t){return e.openBlock(),e.createElementBlock("svg",Fn,t[0]||(t[0]=[e.createStaticVNode('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M4 7l16 0"></path><path d="M10 11l0 6"></path><path d="M14 11l0 6"></path><path d="M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12"></path><path d="M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3"></path>',6)]))}const Se=T(Mn,[["render",An]]),$n={},Dn={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-download"};function In(o,t){return e.openBlock(),e.createElementBlock("svg",Dn,t[0]||(t[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2"},null,-1),e.createElementVNode("path",{d:"M7 11l5 5l5 -5"},null,-1),e.createElementVNode("path",{d:"M12 4l0 12"},null,-1)]))}const tt=T($n,[["render",In]]),Ln={class:"h-[120px] w-[120px] border text-gray-300 border-dashed border-[#CFD9E0] rounded-lg overflow-hidden relative item-file"},Tn={class:"absolute hidden top-0 right-0 flex items-center gap-x-2 w-full h-full justify-center"},st=T(e.defineComponent({__name:"vs-input-file-list-item",props:e.mergeModels({format:{},multiple:{type:Boolean},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{}},{value:{},valueModifiers:{},item:{},itemModifiers:{}}),emits:["update:value","update:item"],setup(o){const t=e.useModel(o,"value"),s=e.useModel(o,"item"),n=o;return(l,a)=>(e.openBlock(),e.createElementBlock("div",Ln,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(Sn)(s.value)),{src:s.value,alt:"file",class:"w-full h-full object-cover cursor-pointer",onClick:a[0]||(a[0]=r=>e.unref(Qe)(s.value))},null,8,["src"])),e.createElementVNode("div",Tn,[e.createElementVNode("button",{type:"button",onClick:a[1]||(a[1]=r=>{e.unref(ln)(s.value),t.value=n.multiple?t.value?.filter(i=>i!==s.value):""}),class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-red-500"},[e.createVNode(Se,{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:a[2]||(a[2]=r=>e.unref(Qe)(s.value)),class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-blue-500"},[e.createVNode(tt,{class:"w-4 h-4"})])])]))}}),[["__scopeId","data-v-0ca886b3"]]),Rn={class:"flex items-center gap-x-2"},On={key:1,class:"flex items-center flex-wrap gap-2"},nt=e.defineComponent({__name:"vs-input-file",props:e.mergeModels({format:{},multiple:{type:Boolean},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,s=e.useModel(o,"modelValue"),n=e.ref(null),l=r=>Array.isArray(s.value)&&s.value[r]||"",a=async r=>{if(t.format){const u=r.target.files?.[0];if(!u||!u.name.endsWith(t.format))return}const i=r.target.files?.[0];if(!i)return;const d=await nn(i,"1","form","table");s.value=t.multiple?[...s.value||[],d?.file_path]:d?.file_path};return(r,i)=>(e.openBlock(),e.createElementBlock("div",Rn,[e.createElementVNode("input",{class:"hidden",ref_key:"fileInput",ref:n,type:"file",onChange:a},null,544),!r.multiple&&s.value?(e.openBlock(),e.createBlock(st,{key:0,item:s.value,"onUpdate:item":i[0]||(i[0]=d=>s.value=d),value:s.value,"onUpdate:value":i[1]||(i[1]=d=>s.value=d)},null,8,["item","value"])):r.multiple?(e.openBlock(),e.createElementBlock("div",On,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(d,u)=>(e.openBlock(),e.createBlock(st,{multiple:r.multiple,key:u,value:s.value,"onUpdate:value":i[2]||(i[2]=c=>s.value=c),item:l(u)},null,8,["multiple","value","item"]))),128)),e.createElementVNode("div",{onClick:i[3]||(i[3]=d=>!r.disabled&&n.value?.click()),class:e.normalizeClass(["h-[120px] w-[120px] border text-gray-300 hover:text-blue-500 border-dashed border-[#CFD9E0] rounded-lg flex items-center justify-center transition-all duration-300",r.disabled?"opacity-50 cursor-not-allowed":"cursor-pointer hover:border-blue-500 hover:bg-blue-50"])},[e.createVNode(_e,{class:"w-6 h-6"})],2)])):e.createCommentVNode("",!0),r.multiple?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:2,onClick:i[4]||(i[4]=d=>n.value?.click()),class:e.normalizeClass([r.disabled?"opacity-50 cursor-not-allowed":"cursor-pointer hover:border-blue-500","h-[120px] w-[120px] border text-gray-300 hover:text-blue-500 border-dashed border-gray-300 rounded-lg flex items-center justify-center cursor-pointer hover:border-blue-500 transition-all duration-300 hover:bg-blue-50"])},[e.createVNode(_e,{class:"w-6 h-6"})],2))]))}}),zn={class:"max-w-[55vw]"},jn={class:"text-sm font-semibold text-gray-800 truncate dark:text-neutral-200"},Un={class:"flex items-center text-xs text-gray-500 truncate dark:text-neutral-500"},Pn={class:"px-[5px]"},Hn={class:""},Me=e.defineComponent({__name:"vs-widget-file-info",props:{item:{default:null}},setup(o){const t=o,s=e.computed(()=>{try{return new Date(t.item.cdate).toLocaleDateString("uk-UA",{day:"2-digit",month:"long",year:"numeric"})}catch{return""}});function n(l){if(l<1024)return`${l} B`;const a=l/1024;return a<1024?`${a.toFixed(2)} KB`:`${(a/1024).toFixed(2)} MB`}return(l,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[a[1]||(a[1]=e.createStaticVNode('<div class="flex items-center justify-center h-[30px] w-[30px]"><svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-file"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M14 3v4a1 1 0 0 0 1 1h4"></path><path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z"></path></svg></div>',1)),e.createElementVNode("div",zn,[e.createElementVNode("p",jn,e.toDisplayString(l.item?.uploaded_name),1),e.createElementVNode("p",Un,[e.createElementVNode("span",null,e.toDisplayString(l.item?.username),1),e.withDirectives(e.createElementVNode("span",Pn,"|",512),[[e.vShow,l.item?.username]]),e.createElementVNode("span",null,e.toDisplayString(s.value),1),a[0]||(a[0]=e.createElementVNode("span",{class:"px-[5px]"},"|",-1)),e.createElementVNode("span",Hn,e.toDisplayString(n(l.item?.size)),1)])])],64))}}),Gn={class:"p-3 relative group flex items-center gap-x-3 border border-gray-200 bg-white rounded-md w-full"},qn={key:0,class:"flex w-full gap-x-3 items-center"},Kn={key:1,class:"flex gap-x-3 w-full items-center"},Zn={key:2,class:"flex gap-x-3 w-full items-center"},Yn=["href"],Jn={key:3,class:"flex gap-x-3 w-full items-center"},Wn={class:"lg:absolute lg:top-3 lg:end-1 opacity-100"},Xn={class:"p-0.5 sm:p-1 inline-flex items-center gap-0.5 bg-white rounded-lg dark:bg-neutral-800 dark:border-neutral-700"},Qn={class:"inline-block"},el={class:"inline-block"},tl=e.defineComponent({__name:"vs-widget-file-item",props:{item:{default:null},index:{default:0},prefix:{default:"/api"}},emits:["update","openModal","openLightbox"],setup(o,{emit:t}){const s=o,n=t;function l(c){return["pdf","json"].includes(c.ext)}function a(c){return["ppt","pptx","doc","docx","xls","xlsx"].includes(c.ext)}function r(c){const p=document.createElement("a");p.setAttribute("download",c?.uploaded_name),p.href=c?.file_path,p.click()}async function i(){try{await fetch(`${s.prefix}/widget/file/${s.item.entity_id}/${s.item.file_id}`),n("update")}catch(c){console.error(c)}}function d(){n("openModal",{title:"Ви впевнені?",message:"Ви впевнені, що хочете видалити цей файл?",confirmButtonText:"Так, я впевнена/ий",cancelButtonText:"Скасувати",confirm:i,updateListOnConfirm:!0})}function u(c){(s.item.ext==="jpg"||s.item.ext==="png")&&n("openLightbox",{item:s.item,index:c})}return(c,p)=>(e.openBlock(),e.createElementBlock("div",Gn,[c.item.ext==="jpg"||c.item.ext==="png"?(e.openBlock(),e.createElementBlock("div",qn,[e.createElementVNode("div",{class:"max-w-[55vw] cursor-pointer flex gap-x-3 w-full items-center",onClick:p[0]||(p[0]=m=>u(c.index))},[e.createVNode(Me,{item:c.item},null,8,["item"])])])):l(c.item)?(e.openBlock(),e.createElementBlock("div",Kn,[e.createVNode(Me,{item:c.item},null,8,["item"])])):a(c.item)?(e.openBlock(),e.createElementBlock("div",Zn,[e.createElementVNode("a",{href:`/api/file-preview?id=${c.item.file_id}`,target:"_blank",class:"flex gap-x-3 w-full items-center"},[e.createVNode(Me,{item:c.item},null,8,["item"])],8,Yn)])):(e.openBlock(),e.createElementBlock("div",Jn,[e.createVNode(Me,{item:c.item},null,8,["item"])])),e.createElementVNode("div",Wn,[e.createElementVNode("div",Xn,[e.createElementVNode("div",Qn,[e.createElementVNode("button",{class:"inline-flex p-[6px] justify-center items-center gap-x-2 rounded-lg border border-transparent text-gray-500 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none dark:text-neutral-400 focus:outline-none focus:bg-gray-100 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",onClick:p[1]||(p[1]=m=>r(c.item))},[e.createVNode(tt,{height:"14",width:"14"})])]),p[3]||(p[3]=e.createElementVNode("div",{class:"w-px h-5 mx-1 bg-gray-200 dark:bg-neutral-700"},null,-1)),e.createElementVNode("div",el,[e.createElementVNode("button",{type:"button",class:"size-[30px] inline-flex justify-center items-center gap-x-2 rounded-lg border border-transparent text-red-600 hover:bg-red-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-red-100 dark:text-red-500 dark:hover:bg-red-500/20 dark:focus:bg-red-500/20",onClick:p[2]||(p[2]=m=>d())},[e.createVNode(Se,{height:"14",width:"14"})])])])])]))}}),sl={},nl={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-download"};function ll(o,t){return e.openBlock(),e.createElementBlock("svg",nl,t[0]||(t[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2"},null,-1),e.createElementVNode("path",{d:"M7 11l5 5l5 -5"},null,-1),e.createElementVNode("path",{d:"M12 4l0 12"},null,-1)]))}const al=T(sl,[["render",ll]]),rl={class:"flex flex-col widget-file xl:bg-white xl:rounded-xl dark:xl:bg-neutral-800 dark:xl:border-neutral-700 w-full"},ol={class:"flex w-full mb-[12px] items-center gap-x-2"},il={class:"font-semibold text-gray-800 dark:text-neutral-200 text-[14px]"},dl={class1:"ml-auto"},ul={class:"py-1.5 px-4 inline-flex items-center gap-x-2 text-sm font-medium rounded-lg bg-gray-100 cursor-pointer hover:bg-gray-200 text-gray-800 shadow-2xs hover:bg-gray-50 focus:outline-hidden focus:bg-gray-50 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-800 dark:border-neutral-700 dark:text-white dark:hover:bg-neutral-700 dark:focus:bg-neutral-700"},cl={key:0,class:"py-4 mb-4 space-y-4 border-gray-200 border-y dark:border-neutral-700"},pl={class:"relative"},hl={key:1,class:"space-y-3 max-h-[300px] overflow-y-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500"},ml={key:0},lt=e.defineComponent({__name:"vs-input-file-list",props:{id:{default:""},prefix:{default:"/api"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{}},emits:["update"],setup(o,{emit:t}){const s=o,n=e.inject("form"),l=e.computed(()=>n.value.formId),a=e.ref(!1),r=e.ref(0),i=t,d=e.ref(!1),u=e.ref({}),c=e.ref([]),p=e.ref(""),m=e.computed(()=>Array.isArray(c.value)?c.value.filter(b=>b.ext==="jpg"||b.ext==="png").map(b=>b?.file_path):[]),x=e.computed(()=>p.value===""?c.value:c.value.filter(b=>b?.uploaded_name?.includes(p.value))),B=b=>{const h=m.value.findIndex(j=>j===b.item.file_path);h!==-1&&(a.value=!0,r.value=h)},D=async()=>{try{const b=await fetch(`${s.prefix}/widget/file/${l.value}`).then(h=>h.json());c.value=b?.rows}catch(b){console.error(b)}},V=async b=>{await Promise.all(Array.from(b.target.files).map(async h=>{const j=new FormData;j.append("file",h);try{const U=`${s.prefix}/widget/file/${l.value}`,_=await fetch(U,{method:"POST",body:j});return _.ok?(i("update","file-list"),h):(G.notify({type:_.status>=400&&_.status<500?"warning":"error",title:"Error",message:`Error code: ${_.status}`}),null)}catch(U){return G.notify({type:"error",title:"Error",message:U.message||"Unknown error"}),console.error(U),null}})),await D()},M=b=>{const h={...b};return b.cancel||(h.cancel=()=>{d.value=!1}),b.updateListOnConfirm&&(h.confirm=async()=>{await b.confirm(),d.value=!1,D()}),h},N=b=>{u.value=M(b),d.value=!0};return e.watch(l,b=>{b&&D()}),e.onMounted(()=>{l.value&&D()}),(b,h)=>{const j=e.resolveComponent("Lightbox"),U=e.resolveComponent("MessageBox");return e.openBlock(),e.createElementBlock("div",rl,[e.createElementVNode("div",ol,[e.createElementVNode("h2",il," Файлів: "+e.toDisplayString(c.value?.length),1),e.createElementVNode("div",dl,[e.createElementVNode("label",null,[e.createElementVNode("input",{type:"file",class:"hidden",onChange:h[0]||(h[0]=_=>V(_))},null,32),e.createElementVNode("div",ul,[e.createVNode(al,{height:"16",width:"16"})])])])]),c.value?.length>4?(e.openBlock(),e.createElementBlock("div",cl,[e.createElementVNode("div",null,[e.createElementVNode("div",pl,[h[8]||(h[8]=e.createElementVNode("div",{class:"absolute inset-y-0 start-0 flex items-center pointer-events-none z-[1] ps-3.5"},[e.createElementVNode("svg",{class:"flex-shrink-0 text-gray-500 size-4 dark:text-neutral-400",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("circle",{cx:"11",cy:"11",r:"8"}),e.createElementVNode("path",{d:"m21 21-4.3-4.3"})])],-1)),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":h[1]||(h[1]=_=>p.value=_),class:"py-2 px-3 ps-10 pe-16 block w-full bg-gray-200 xl:bg-gray-100 rounded-lg text-sm focus:border-blue-500 h-[40px] focus:border-2 focus:outline-none disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:border-transparent dark:text-neutral-400 dark:placeholder:text-neutral-400 dark:focus:ring-neutral-600",placeholder:"Введіть назву файлу"},null,512),[[e.vModelText,p.value,void 0,{trim:!0}]])])])])):e.createCommentVNode("",!0),c.value?.length?(e.openBlock(),e.createElementBlock("div",hl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.value,(_,J)=>(e.openBlock(),e.createBlock(tl,{key:J,prefix:b.prefix,item:_,index:J,onUpdate:h[2]||(h[2]=Z=>b.$emit("update","file-list")),onOpenModal:h[3]||(h[3]=Z=>N(Z)),onOpenLightbox:h[4]||(h[4]=Z=>B(Z))},null,8,["prefix","item","index"]))),128)),x.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",ml,h[9]||(h[9]=[e.createElementVNode("p",{class:"text-sm text-gray-600 font-sm"}," Файлів з такою назвою не існує, введіть інше пошукове слово ",-1)])))])):e.createCommentVNode("",!0),e.createVNode(j,{modelValue:a.value,"onUpdate:modelValue":h[5]||(h[5]=_=>a.value=_),startIndex:r.value,"onUpdate:index":h[6]||(h[6]=_=>r.value=_),images:m.value},null,8,["modelValue","startIndex","images"]),e.createVNode(U,e.mergeProps({modelValue:d.value,"onUpdate:modelValue":h[7]||(h[7]=_=>d.value=_),onConfirm:u.value.confirm},u.value),null,16,["modelValue","onConfirm"])])}}}),fl={class:"flex items-center justify-between"},gl={class:"text-[16px] text-gray-900 font-medium"},kl={class:"grid gap-3"},bl=T(e.defineComponent({__name:"vs-container-switcher",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(o){const t=o,s=e.ref(t.isOpen);return e.watch(()=>t.isOpen,n=>{s.value=n}),(n,l)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",fl,[e.createElementVNode("p",gl,e.toDisplayString(o.title),1),e.createVNode(Le,{modelValue:s.value,"onUpdate:modelValue":l[0]||(l[0]=a=>s.value=a),style:e.normalizeStyle(o.style)},null,8,["modelValue","style"])]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",kl,[e.renderSlot(n.$slots,"default",{},void 0,!0)],512),[[e.vShow,s.value]])]),_:3})]))}}),[["__scopeId","data-v-90320b87"]]),yl={class:"text-[16px] text-gray-900 font-medium"},xl={class:"grid gap-3"},_l=T(e.defineComponent({__name:"vs-container-accordion",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(o){const t=o,s=e.ref(t.isOpen);return e.watch(()=>t.isOpen,n=>{s.value=n}),(n,l)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("button",{type:"button",onClick:l[0]||(l[0]=a=>s.value=!s.value),class:"flex items-center gap-2"},[e.createVNode(e.unref($s),{class:e.normalizeClass(["h-4 w-4 duration-300",[s.value?"-rotate-180":""]])},null,8,["class"]),e.createElementVNode("span",yl,e.toDisplayString(o.title),1)]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",xl,[e.renderSlot(n.$slots,"default",{},void 0,!0)],512),[[e.vShow,s.value]])]),_:3})]))}}),[["__scopeId","data-v-590eff11"]]),wl={class:"flex items-center justify-between"},El={switcher:bl,accordion:_l,default:e.defineComponent({__name:"vs-container-default",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})}},setup(o){return(t,s)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",wl,[e.createElementVNode("p",null,e.toDisplayString(o.title),1)]),e.renderSlot(t.$slots,"default")]))}})},ee={Equal:"==",Inequal:"!=",Higer:">",HigerOrEqual:">=",Lower:"<",LowerOrEqual:"<=",Between:"between",StartWith:"^",EndWith:"$",Contain:"*",In:"in",NotIn:"not_in"},Vl=(o,t)=>String(o)===String(t),Cl=(o,t)=>String(o)!==String(t),vl=(o,t)=>o>t,Bl=(o,t)=>o>=t,Nl=(o,t)=>o<t,Sl=(o,t)=>o<=t,Ml=(o,t)=>Array.isArray(t)&&t.length===2?o>=t[0]&&o<=t[1]:!1,Fl=(o,t)=>String(o).startsWith(String(t)),Al=(o,t)=>String(o).endsWith(String(t)),$l=(o,t)=>String(o).includes(String(t)),Dl=(o,t)=>Array.isArray(t)?t.includes(o):!1,Il=(o,t)=>Array.isArray(t)?!t.includes(o):!0,at=(o,t)=>{if(!t)return!0;switch(t?.[1]){case ee.Equal:return Vl(o,t?.[2]);case ee.Inequal:return Cl(o,t?.[2]);case ee.Higer:return vl(o,t?.[2]);case ee.HigerOrEqual:return Bl(o,t?.[2]);case ee.Lower:return Nl(o,t?.[2]);case ee.LowerOrEqual:return Sl(o,t?.[2]);case ee.Between:return Ml(o,t?.[2]);case ee.StartWith:return Fl(o,t?.[2]);case ee.EndWith:return Al(o,t?.[2]);case ee.Contain:return $l(o,t?.[2]);case ee.In:return Dl(o,t?.[2]);case ee.NotIn:return Il(o,t?.[2]);default:return!0}},rt=e.defineComponent({__name:"vs-input-container",props:{style:{type:Object,default:()=>({})},title:{type:String,default:""},view:{type:String,default:"default"},schema:{type:Array,default:()=>[]}},setup(o){const t=o,s=e.inject("formValues",{default:{}}),n=e.inject("form"),l=e.computed(()=>t.schema?.filter(r=>{const i=r?.conditions;if(!i)return!0;const d=Array.isArray(i)?i[0]:i,u=s?.value?.[d];return at(u,i)})),a=e.computed(()=>El[t.view]);return(r,i)=>o.schema?.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{key:0,title:o.title,style:e.normalizeStyle(o.style)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,d=>(e.openBlock(),e.createBlock(kt,e.mergeProps({key:d.name},{ref_for:!0},d,{item:d,modelValue:e.unref(s)[d.name],"onUpdate:modelValue":u=>e.unref(s)[d.name]=u,style:o.style,error:e.unref(n)?.errors?.[d.name]}),null,16,["item","modelValue","onUpdate:modelValue","style","error"]))),128))]),_:1},8,["title","style"])):e.createCommentVNode("",!0)}}),Ll=["aria-expanded","data-focus"],Tl={class:"flex items-center"},Rl=["title"],Ol=["onClick"],zl=["title"],jl={key:2,class:"text-gray-500 truncate"},Ul={class:"flex-1 min-w-[2px]"},Pl=["placeholder"],Hl={class:"flex items-center shrink-0"},Gl=["disabled"],ql=["disabled","title"],Kl=["aria-disabled","onClick"],Zl={key:1,class:"px-3 py-2 text-center text-gray-500"},Yl=["disabled"],Oe=e.defineComponent({__name:"vs-input-select",props:{multiple:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},mode:{},defaultValue:{},search:{type:Boolean,default:!0},placeholder:{default:"Оберіть значення"},prefix:{default:"api"},host:{default:""},data:{default:""},options:{default:()=>[]},api:{default:null},maxHeight:{default:400},parent:{},add:{},style:{default:()=>({})},customClass:{default:""},modelValue:{},error:{default:null},name:{}},emits:["change","update:modelValue"],setup(o,{emit:t}){const s=o,n=t,l=e.computed(()=>s.multiple),a=e.computed(()=>s.disabled);te(s.style);const r=e.computed({get:()=>s.modelValue,set:k=>n("update:modelValue",k)});!r.value&&s.defaultValue&&(r.value=s.defaultValue);const i=e.ref(null),d=e.ref(null),u=e.ref(null),c=e.ref(!1),p=e.ref(!1),m=e.ref(null),x=e.ref([]),B=e.ref(-1),D=e.ref([]),V=e.ref(""),M=e.ref(null),N=e.ref("bottom"),b=e.ref({}),h=e.ref([]),j=e.computed(()=>{if(!h.value.length)return[];const k=new Map(x.value.map(f=>[f.id?.toString(),f]));return h.value.map(f=>k.get(f?.toString())).filter(f=>!!f)}),U=e.computed(()=>s.placeholder||"Select..."),_=e.computed(()=>l.value?!h.value.length&&V.value==="":!m.value?.text&&V.value===""),J=e.computed(()=>a.value?!1:l.value?h.value.length>0:!!r.value),Z=k=>l.value?h.value.some(f=>f?.toString()===k?.toString()):r.value?.toString()===k?.toString(),W=e.computed(()=>{let k=x.value??[];if(!s.data&&V.value.trim()!==""){const f=V.value.toLowerCase();k=k.filter(w=>w.text?.toLowerCase?.().includes(f))}if(l.value&&h.value.length){const f=new Set(h.value.map(w=>w?.toString()));k=k.filter(w=>!f.has(w.id?.toString()))}return k}),se=e.inject("values"),ie=e.computed(()=>s.parent?se?.value?.[s.parent]??null:null),pe=async k=>{if(!s.data){let f=s.options??[];if(k?.trim()){const w=k.toLowerCase();f=f.filter(R=>R.text?.toLowerCase?.().includes(w))}return f}try{const f=s.host??"",w=s.prefix??"api",R=s.api??`/${w}/suggest/${s.data}`,Y=`${f}${R}`,Q=new URLSearchParams;return Q.set("json","1"),k&&Q.set("key",k),ie.value!==void 0&&ie.value!==null&&ie.value!==""&&Q.set("parent",String(ie.value)),(await fetch(`${Y}?${Q.toString()}`).then(Ne=>Ne.json()))?.data??[]}catch{return[]}},F=async()=>{s.data?x.value=await pe(V.value):x.value=s.options?[...s.options]:[]},C=async k=>{if(k==null)return null;const f=x.value?.find(R=>R?.id?.toString()===String(k));return f||((await pe(String(k)))?.[0]??null)},v=async k=>{const f=new Set(x.value.map(R=>R.id?.toString())),w=k.filter(R=>!f.has(R?.toString()));w.length&&await w.reduce(async(R,Y)=>{await R;const Q=await C(Y);Q&&x.value.push(Q)},Promise.resolve())},O=async()=>{a.value||(c.value=!0,await F(),await e.nextTick(()=>{ne(),M.value?.focus(),W.value.length?B.value=0:B.value=-1}))},P=()=>{c.value=!1,B.value=-1},he=async k=>{if(a.value)return;!c.value?await O():P()},de=async()=>{c.value?M.value?.focus():await O()},g=()=>{l.value?(h.value=[],r.value=[],n("change",[])):(m.value=null,r.value=null,n("change",null)),V.value="",e.nextTick(()=>M.value?.focus())},y=k=>{l.value&&(h.value=h.value.filter(f=>f?.toString()!==k?.toString()),r.value=[...h.value],n("change",r.value),e.nextTick(()=>M.value?.focus()))},$=k=>{l.value?(Z(k.id)||(h.value=[...h.value,k.id],r.value=[...h.value],n("change",r.value)),V.value="",e.nextTick(()=>{M.value?.focus(),B.value=Math.min(B.value,W.value.length-1)})):(m.value=k,r.value=k.id,n("change",r.value),V.value="",P())},z=k=>{Z(k.id)||$(k)},H=(k,f)=>{if(!k||!f)return;const w=k.offsetTop,R=w+k.offsetHeight,Y=f.scrollTop,Q=Y+f.clientHeight;let ye=f.scrollTop;w<Y?ye=w-80:R>Q&&(ye=R-f.clientHeight+4);const Ne=f;Ne.scrollTop=ye},oe=k=>{let f=k.parentElement;for(;f;){if(f.classList.contains("ui-dialog__content"))return f;const w=window.getComputedStyle(f),R=w.overflow+w.overflowY+w.overflowX;if(R.includes("auto")||R.includes("scroll")||f===document.body||f===document.documentElement)return f;f=f.parentElement}return document.body},ne=()=>{if(!d.value)return;const k=d.value.getBoundingClientRect(),w=oe(d.value).getBoundingClientRect(),R=300,Y=20,Q=8,ye=k.top-w.top,Ne=k.bottom-w.top,Ut=w.height-Ne-Q-Y,Pt=ye-Q-Y;let Ge=!1;if(Ut>=Pt?Ge=!0:Ge=!1,Ge){N.value="bottom";const qe=Math.min(R,Math.max(Ut+Y,50));b.value={top:`${k.height+Q}px`,left:"0px",right:"0px",bottom:"auto",maxHeight:`${qe}px`}}else{N.value="top";const qe=Math.min(R,Math.max(Pt+Y,50));b.value={top:"auto",left:"0px",right:"0px",bottom:`${k.height+Q}px`,maxHeight:`${qe}px`}}},fe=async k=>{a.value||!c.value&&(k.key==="ArrowDown"||k.key==="ArrowUp")&&(k.preventDefault(),await O())},ge=k=>{if(!c.value)return;const{key:f}=k;if(f==="ArrowDown")k.preventDefault(),B.value+1<W.value.length&&(B.value+=1,H(D.value[B.value],u.value));else if(f==="ArrowUp")k.preventDefault(),B.value>0&&(B.value-=1,H(D.value[B.value],u.value));else if(f==="Enter"){k.preventDefault();const w=W.value[B.value];w&&$(w),M.value?.blur()}else f==="Escape"?(k.preventDefault(),P()):f==="Backspace"?l.value&&V.value===""&&h.value.length&&(h.value=h.value.slice(0,-1),r.value=[...h.value],n("change",r.value)):f==="Home"?(B.value=0,H(D.value[0],u.value)):f==="End"?(B.value=W.value.length-1,H(D.value[B.value],u.value)):f==="Tab"&&P()},ke=()=>{a.value||(p.value=!0)},ri=()=>{p.value=!1,V.value=""},Dt=k=>{k.key==="Escape"&&c.value&&P()},It=k=>{i.value&&(i.value.contains(k.target)||P())},Lt=k=>{c.value&&u.value&&!u.value.contains(k.target)&&ne()},Tt=()=>{c.value&&ne()},Rt=()=>{c.value&&ne()};e.watch(()=>s.options,k=>{k?.length&&(x.value=[...k])},{immediate:!0});const Ot=async()=>{if(l.value)Array.isArray(r.value)?h.value=[...r.value]:(h.value=r.value==null?[]:[r.value],r.value=[...h.value]),!s.options?.length&&s.data&&await v(h.value);else{if(Array.isArray(r.value)){const k=r.value[0]??null;r.value=k??null}m.value=await C(r.value)}};e.watch(r,()=>{Ot()}),e.onMounted(async()=>{addEventListener("keydown",Dt),addEventListener("scroll",Lt,!0),addEventListener("resize",Tt),document.addEventListener("click",It,!0),d.value&&oe(d.value).addEventListener("scroll",Rt,!0),s.options?.length?x.value=[...s.options]:s.data&&(x.value=await pe("")),await Ot()}),e.onUnmounted(()=>{removeEventListener("keydown",Dt),removeEventListener("scroll",Lt,!0),removeEventListener("resize",Tt),document.removeEventListener("click",It,!0),d.value&&oe(d.value).removeEventListener("scroll",Rt,!0)});const Ie=e.ref(!1),He=e.ref({}),zt=e.ref([]),jt=e.ref(null);async function oi(){if(!s.add?.token||jt?.value.validate())return;const f=s.add.api??`/api/table/${s.add.token}`,{id:w}=await fetch(f,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(He.value)}).then(R=>R.json());if(!s.options?.length&&s.data){const{data:R}=await fetch(`${s.api??`/api/suggest/${s.data}`}?val=${w}`).then(Y=>Y.json());m.value=R[0],x.value.push(R[0]),r.value=w}Ie.value=!1,G.notify({title:"Success!",message:"Object created."})}async function ii(){if(!s.add)return null;const k=await fetch(`/api/template/form/${s.add.form}`).then(f=>f.json());return zt.value=k.schema,Ie.value=!0,null}function di(k,f=200){let w;return(...R)=>{w&&clearTimeout(w),w=window.setTimeout(()=>k(...R),f)}}const ui=di(async k=>{x.value=await pe(k)},200);return e.watch(V,k=>{s.data&&ui(k.trim())}),e.watch(()=>s.options,k=>{!s.data&&k?.length&&(x.value=[...k])},{immediate:!0}),e.watch(()=>s.parent??s.parentValue,()=>{s.data&&F()}),e.watch(ie,async()=>{s.data&&(l.value?(h.value=[],r.value=[],n("change",[])):(m.value=null,r.value=null,n("change",null)))}),(k,f)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(G.VsModal),{visible:Ie.value,"onUpdate:visible":f[1]||(f[1]=w=>Ie.value=w),title:"Додати",buttonText:"Додати",onDone:oi},{default:e.withCtx(()=>[e.createVNode(me,{schema:zt.value,modelValue:He.value,"onUpdate:modelValue":f[0]||(f[0]=w=>He.value=w),ref_key:"addForm",ref:jt},null,8,["schema","modelValue"])]),_:1},8,["visible"]),e.createElementVNode("div",{class:"flex gap-1 w-full",ref_key:"selectRoot",ref:i,onClick:f[4]||(f[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",s.customClass])},[f[9]||(f[9]=e.createElementVNode("span",{id:"react-select-live-region",class:"sr-only"},null,-1)),f[10]||(f[10]=e.createElementVNode("span",{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text",role:"log",class:"sr-only"},null,-1)),e.createElementVNode("div",{class:e.normalizeClass(["flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white","border-gray-300 hover:border-gray-400",c.value||p.value?"border-blue-500 ring-1 ring-blue-500":"",a.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),role:"combobox","aria-expanded":c.value,"aria-haspopup":"listbox",onKeydown:fe,onClick:de,"data-focus":c.value||p.value?"true":"false"},[e.createElementVNode("div",{class:"flex flex-1 items-center gap-1 py-0.5 pl-2 pr-0 overflow-hidden",ref_key:"triggerRef",ref:d},[l.value&&h.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(j.value,w=>(e.openBlock(),e.createElementBlock("div",{class:"flex min-w-0 bg-[#e6e6e6] rounded-sm m-0.5 box-border",key:w.id},[e.createElementVNode("div",Tl,[w?.color?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[16px] h-[16px] rounded-md block ml-1.5",style:e.normalizeStyle({backgroundColor:w?.color})},null,4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"truncate text-gray-900 overflow-hidden",title:w.text},e.toDisplayString(w.text),9,Rl)]),e.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border hover:bg-[#ffbdad] hover:text-[#de350b]",onClick:e.withModifiers(R=>y(w.id),["stop"])},f[5]||(f[5]=[e.createElementVNode("svg",{height:"14",width:"14",viewBox:"0 0 20 20","aria-hidden":"true",focusable:"false",class:"inline-block fill-current stroke-current leading-none stroke-0"},[e.createElementVNode("path",{d:"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z"})],-1)]),8,Ol)]))),128)):!l.value&&!p.value&&m.value?.text&&V.value===""?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["truncate text-gray-900"]),title:m.value.text},[m.value?.color?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[14px] h-[14px] rounded-md block mr-1 mt-1 absolute",style:e.normalizeStyle({backgroundColor:m.value?.color})},null,4)):e.createCommentVNode("",!0),e.createElementVNode("span",{class:e.normalizeClass({"pl-5":m.value?.color})},e.toDisplayString(m.value.text),3)],8,zl)):e.createCommentVNode("",!0),_.value?(e.openBlock(),e.createElementBlock("div",jl,e.toDisplayString(U.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Ul,[!a.value&&k.search?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"inputRef",ref:M,class:"w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:(l.value&&h.value.length?" ":null)||(p.value&&!V.value?.length?m.value?.text:" "),"onUpdate:modelValue":f[2]||(f[2]=w=>V.value=w),onFocus:ke,onBlur:ri,onKeydown:ge},null,40,Pl)),[[e.vModelText,V.value]]):e.createCommentVNode("",!0)])],512),e.createElementVNode("div",Hl,[J.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:a.value,onClick:e.withModifiers(g,["stop"])},f[6]||(f[6]=[e.createElementVNode("svg",{height:"20",width:"20",viewBox:"0 0 20 20",class:"fill-current"},[e.createElementVNode("path",{d:"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z"})],-1)]),8,Gl)):e.createCommentVNode("",!0),f[8]||(f[8]=e.createElementVNode("div",{class:"self-stretch w-px bg-[#ccc] my-[1px]"},null,-1)),e.createElementVNode("button",{type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:a.value,onClick:f[3]||(f[3]=e.withModifiers(w=>he(),["stop"])),title:c.value?"Закрити список":"Відкрити список"},f[7]||(f[7]=[e.createElementVNode("svg",{height:"20",width:"20",viewBox:"0 0 20 20",class:"fill-current"},[e.createElementVNode("path",{d:"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"})],-1)]),8,ql)])],42,Ll),c.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["absolute z-10 w-full rounded bg-white shadow-[0_0_0_1px_rgba(0,0,0,0.1),0_4px_11px_rgba(0,0,0,0.1)]",N.value==="bottom"?"mt-2":"mb-2"]),style:e.normalizeStyle(b.value),role:"listbox"},[e.createElementVNode("div",{class:"overflow-y-auto py-1",style:e.normalizeStyle({maxHeight:b.value.maxHeight||"300px"}),ref_key:"listRef",ref:u},[W.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(W.value,(w,R)=>(e.openBlock(),e.createElementBlock("div",{key:w.id,ref_for:!0,ref:Y=>D.value[R]=Y,class:e.normalizeClass(["flex px-3 py-2 cursor-default select-none text-gray-900 hover:bg-blue-100",B.value===R?"bg-blue-100":"",Z(w.id)?"bg-blue-50":"bg-white"]),"aria-disabled":Z(w.id)?"true":"false",role:"option",tabindex:"-1",onClick:Y=>z(w)},[w?.color?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[11px] h-[11px] rounded-full block mr-1 mt-1.5",style:e.normalizeStyle({backgroundColor:w?.color})},null,4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["leading-[19px]",B.value===w.id?"text-white":"",(B.value===R,"")])},e.toDisplayString(w.text),3)],10,Kl))),128)):(e.openBlock(),e.createElementBlock("div",Zl," No options "))],4)],6)):e.createCommentVNode("",!0)],2),s.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:ii,class:"bg-white hover:bg-gray-100 text-sm text-gray-900 py-[10px] px-3 border border-stone-200 rounded-md h-[38px] flex items-center gap-2",disabled:a.value,type:"button"},[e.createVNode(_e,{width:"16",height:"16"}),f[11]||(f[11]=e.createElementVNode("span",null,"Додати",-1))],8,Yl)):e.createCommentVNode("",!0)],512)],64))}}),Jl=["placeholder","disabled"],ot=e.defineComponent({__name:"vs-input-textarea",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:s}=te(t.style),n=e.useModel(o,"modelValue");return(l,a)=>e.withDirectives((e.openBlock(),e.createElementBlock("textarea",{"onUpdate:modelValue":a[0]||(a[0]=r=>n.value=r),placeholder:l.placeholder,disabled:l.disabled,row:"2",class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] h-auto bg-white",[e.unref(s)]]),style:{border:"1px solid #CFD9E0"}},null,10,Jl)),[[e.vModelText,n.value]])}}),Wl={},Xl={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-search stroke-gray-500 transition-all"};function Ql(o,t){return e.openBlock(),e.createElementBlock("svg",Xl,t[0]||(t[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0"},null,-1),e.createElementVNode("path",{d:"M21 21l-6 -6"},null,-1)]))}const ea=T(Wl,[["render",Ql]]),ta={},sa={class:"flex-shrink-0 mt-0.5 size-3.5",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"};function na(o,t){return e.openBlock(),e.createElementBlock("svg",sa,t[0]||(t[0]=[e.createElementVNode("path",{d:"m3 16 4 4 4-4"},null,-1),e.createElementVNode("path",{d:"M7 20V4"},null,-1),e.createElementVNode("path",{d:"m21 8-4-4-4 4"},null,-1),e.createElementVNode("path",{d:"M17 4v16"},null,-1)]))}const la=T(ta,[["render",na]]),aa={},ra={xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"};function oa(o,t){return e.openBlock(),e.createElementBlock("svg",ra,t[0]||(t[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2"},null,-1),e.createElementVNode("path",{d:"M7 9l5 -5l5 5"},null,-1),e.createElementVNode("path",{d:"M12 4l0 12"},null,-1)]))}const ia=T(aa,[["render",oa]]),da={},ua={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"};function ca(o,t){return e.openBlock(),e.createElementBlock("svg",ua,t[0]||(t[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2"},null,-1),e.createElementVNode("path",{d:"M7 11l5 5l5 -5"},null,-1),e.createElementVNode("path",{d:"M12 4l0 12"},null,-1)]))}const pa=T(da,[["render",ca]]),ha={},ma={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"};function fa(o,t){return e.openBlock(),e.createElementBlock("svg",ma,t[0]||(t[0]=[e.createStaticVNode('<circle cx="9" cy="12" r="1"></circle><circle cx="9" cy="5" r="1"></circle><circle cx="9" cy="19" r="1"></circle><circle cx="15" cy="12" r="1"></circle><circle cx="15" cy="5" r="1"></circle><circle cx="15" cy="19" r="1"></circle>',6)]))}const it=T(ha,[["render",fa]]),ga={},ka={viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function ba(o,t){return e.openBlock(),e.createElementBlock("svg",ka,t[0]||(t[0]=[e.createStaticVNode('<rect x="27" y="50.5" width="124" height="39" rx="7.5" fill="currentColor" class="fill-white dark:fill-neutral-800"></rect><rect x="27" y="50.5" width="124" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-50 dark:stroke-neutral-700/10"></rect><rect x="34.5" y="58" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="66.5" y="61" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="66.5" y="73" width="77" height="6" rx="3" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="19.5" y="28.5" width="139" height="39" rx="7.5" fill="currentColor" class="fill-white dark:fill-neutral-800"></rect><rect x="19.5" y="28.5" width="139" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-100 dark:stroke-neutral-700/30"></rect><rect x="27" y="36" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><rect x="59" y="39" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><rect x="59" y="51" width="92" height="6" rx="3" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><g filter="url(#filter1)"><rect x="12" y="6" width="154" height="40" rx="8" fill="currentColor" class="fill-white dark:fill-neutral-800" shape-rendering="crispEdges"></rect><rect x="12.5" y="6.5" width="153" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-100 dark:stroke-neutral-700/60" shape-rendering="crispEdges"></rect><rect x="20" y="14" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect><rect x="52" y="17" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect><rect x="52" y="29" width="106" height="6" rx="3" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect></g><defs><filter id="filter1" x="0" y="0" width="178" height="64" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"></feColorMatrix><feOffset dy="6"></feOffset><feGaussianBlur stdDeviation="6"></feGaussianBlur><feComposite in2="hardAlpha" operator="out"></feComposite><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03 0"></feColorMatrix><feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1187_14810"></feBlend><feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1187_14810" result="shape"></feBlend></filter></defs>',12)]))}const ya=T(ga,[["render",ba]]),xa={},_a={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"};function wa(o,t){return e.openBlock(),e.createElementBlock("svg",_a,t[0]||(t[0]=[e.createElementVNode("path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"},null,-1)]))}const Ea=T(xa,[["render",wa]]),Va={class:"vs-datatable border rounded-xl w-full flex-grow"},Ca={class:"flex items-center npm gap-[16px] justify-between p-[20px] pb-[16px]"},va={class:"relative w-full"},Ba={class:"table-wrapper flex gap-2"},Na={class:"vs-popover inline-block text-slate-700"},Sa={class:"text-center"},Ma={class:""},Fa={class:"py-1 px-0 w-full text-sm text-stone-800 bg-white shadow-[0_10px_40px_10px_rgba(0,0,0,0.08)] rounded-lg focus:outline-none focus:bg-stone-100 dark:bg-neutral-900 dark:text-neutral-200 dark:focus:bg-neutral-800 after:h-4 after:absolute after:-bottom-4 after:start-0 after:w-full before:h-4 before:absolute before:-top-4 before:start-0 before:w-full"},Aa={class:"flex flex-col p-[1px] gap-[2px] w-[140px]"},$a={class:"text-sm items-center text-gray-800 flex gap-1"},Da={class:"w-full overflow-x-auto"},Ia={class:"w-full table-auto caption-bottom text-sm"},La={class:"[&_tr]:border-b"},Ta={class:"border-b data-[state=selected]:bg-muted bg-slate-50/50 dark:bg-slate-700/50 hover:bg-slate-50/80 dark:hover:bg-slate-700/80 transition-colors"},Ra={class:"h-10 px-2 align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px] w-12 text-center"},Oa={key:0,colspan:"100%",class:"text-center"},za={class:"w-full"},ja={class:"p-5 min-h-[200px] flex flex-col justify-center items-center text-center"},Ua=["onDragstart","onDragover","onDrop"],Pa={class:"p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px] text-center"},Ha={class:"flex items-center justify-center"},Ga={key:0,class:"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-slate-100 dark:bg-slate-700 text-slate-700 dark:text-slate-300 hover:bg-slate-200 dark:hover:bg-slate-600 transition-colors"},qa={key:0},Ka=["src"],Za={key:1,class:"rounded-md max-w-[45px] w-[45px] max-h-[45px] h-[45px] bg-gray-200 flex items-center justify-center"},Ya=["innerHTML"],Ja={key:2,class:"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-slate-100 dark:bg-slate-700 text-slate-700 dark:text-slate-300 hover:bg-slate-200 dark:hover:bg-slate-600 transition-colors"},Wa={class:"p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]"},Xa={class:"flex items-center justify-center gap-2"},Qa=["onClick"],er=["onClick"],tr={class:"vs-form__head mr-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},dt=e.defineComponent({__name:"vs-input-datatable",props:e.mergeModels({colModel:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,s=e.useModel(o,"modelValue"),n=e.ref({}),l=e.ref(""),a=e.computed(()=>{if(!l.value)return s.value??[];const F=l.value.toLowerCase();return s.value.filter(C=>t.colModel?.some(v=>{const O=C[v.key];return O?Array.isArray(O)?O.join(", ").toLowerCase().includes(F):String(O).toLowerCase().includes(F):!1}))}),r=e.ref(null),i=e.ref(null),d=e.ref(!1),u=e.ref(null),c=e.ref({top:0,left:0}),p=F=>{r.value=F},m=F=>{i.value=F},x=F=>{if(r.value===null||r.value===F){r.value=null,i.value=null;return}const C=[...s.value],[v]=C.splice(r.value,1);C.splice(F,0,v),s.value=C,r.value=null,i.value=null},B=F=>{const v=F.currentTarget.getBoundingClientRect();c.value={top:v.bottom+window.scrollY,left:v.left+window.scrollX},d.value=!d.value},D=()=>{u.value&&u.value.click()},V=F=>{const C=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".ico",".tiff",".tif"],v=F.toLowerCase();return C.some(O=>v.endsWith(O))},M=F=>{const v=F.target.files?.[0];if(!v)return;const O=new FileReader;O.onload=P=>{try{const he=P.target?.result;if(typeof he=="string"){const de=JSON.parse(he);Array.isArray(de)&&s.value.push(...de)}}catch(he){console.error("Error parsing file:",he)}},O.readAsText(v)},N=()=>{const F=JSON.stringify(s.value,null,2),C=new Blob([F],{type:"application/json"}),v=URL.createObjectURL(C),O=document.createElement("a");O.href=v,O.download="data.json",O.click(),URL.revokeObjectURL(v)};e.onMounted(async()=>{const F=t.colModel?.filter(C=>C.data);F?.length&&Promise.all(F.map(async C=>{const O=await(await fetch(`/api/suggest/${C.data}`)).json();n.value[C.key]=O.data}))});const b=e.ref(""),h=e.ref(!1);let j="edit",U=0;const _=e.ref({}),J=e.ref({});async function Z(){b.value="Додати",h.value=!0,j="add",_.value={}}function W(F,C){const v=C.key||C.name;return n.value[v]&&F[v]?n.value[v].find(O=>O.id.toString()===F[v].toString())?.text??F[v]:F[v]||"-"}async function se(F,C){b.value="Редагувати",h.value=!0,j="edit",U=C,_.value={...F}}function ie(){const F=J.value.validate();if(F){G.notify({type:"warning",title:"Помилка валідації",message:Object.entries(F).map(([C,v])=>`${C}: ${v}`).join(`
2
- `)});return}j==="add"?Array.isArray(s.value)?s.value=[...s.value,_.value]:s.value=[_.value]:s.value=s.value.map((C,v)=>v===U?_.value:C),h.value=!1}function pe(F){s.value=s.value.filter((C,v)=>v!==F)}return(F,C)=>(e.openBlock(),e.createElementBlock("div",Va,[e.createElementVNode("div",Ca,[e.createElementVNode("div",va,[e.createVNode(ea,{width:"14",height:"14",class:"absolute left-3 top-1/2 transform -translate-y-1/2 text-stone-500"}),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":C[0]||(C[0]=v=>l.value=v),placeholder:"Пошук",class:"py-2 px-3 pl-10 w-full bg-gray-100 h-[36px] rounded-[8px] text-[15px] leading-[18px] focus:border-1 text-stone-800 placeholder:text-[#6B7280] focus:outline-blue-500 focus:outline-2"},null,512),[[e.vModelText,l.value]])]),e.createElementVNode("div",Ba,[e.createElementVNode("input",{ref_key:"fileInput",ref:u,onChange:M,class:"hidden",accept:".json",type:"file"},null,544),e.createElementVNode("div",Na,[e.createElementVNode("div",Sa,[e.createElementVNode("div",Ma,[e.createElementVNode("button",{onClick:B,class:"bg-white hover:bg-gray-100 font-semibold text-[15px] leadig-[18.5px] py-[10px] px-[12px] border border-[#E5E7EB] rounded-[8px] h-[38px] max-h-[38px] gap-[8px] flex items-center"},[e.createVNode(la,{height:"16",width:"16"})])])])])]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[d.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"text-slate-700 vsTailwind vs-popover__content bottom",style:e.normalizeStyle([{width:"fit-content","z-index":"10002",position:"fixed"},{position:"absolute",top:c.value.top+"px",left:c.value.left+"px"}])},[e.createElementVNode("div",Fa,[e.createElementVNode("div",Aa,[e.createElementVNode("button",{onClick:D,class:"text-slate-700 flex items-center gap-1 px-3 py-2 rounded-md cursor-pointer group hover:bg-gray-100"},[e.createVNode(ia,{class:"text-black",width:"14",height:"14"}),C[4]||(C[4]=e.createTextVNode(" Імпортувати ",-1))]),e.createElementVNode("button",{onClick:N,class:"text-slate-700 flex items-center px-3 py-2 rounded-md cursor-pointer group hover:bg-gray-100"},[e.createElementVNode("span",$a,[e.createVNode(pa,{class:"text-black",width:"14",height:"14"}),C[5]||(C[5]=e.createTextVNode(" Експортувати ",-1))])])])])],4)):e.createCommentVNode("",!0)])),e.createElementVNode("button",{onClick:Z,class:"text-slate-700 bg-white hover:bg-gray-100 font-semibold text-[15px] leadig-[18.5px] py-[10px] px-[12px] border border-[#E5E7EB] rounded-[8px] h-[38px] max-h-[38px] gap-[8px] flex items-center"},[e.createVNode(_e),C[6]||(C[6]=e.createTextVNode(" Додати ",-1))])]),e.createElementVNode("div",Da,[e.createElementVNode("table",Ia,[e.createElementVNode("thead",La,[e.createElementVNode("tr",Ta,[e.createElementVNode("th",Ra,[e.createVNode(it,{width:"24",height:"24",class:"w-4 h-4 mx-auto text-slate-400 dark:text-slate-500"})]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(F.colModel,v=>(e.openBlock(),e.createElementBlock("th",{key:v.key,class:"h-10 px-2 text-left align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px] font-semibold text-slate-700 dark:text-slate-300 min-w-[150px]"},e.toDisplayString(v.ua||v.label),1))),128)),C[7]||(C[7]=e.createElementVNode("th",{class:"h-10 px-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px] font-semibold text-slate-700 dark:text-slate-300 text-center"}," Дії ",-1))])]),e.createElementVNode("tbody",{class:e.normalizeClass({"[&_tr:last-child]:border-0":!i.value})},[a.value.length===0?(e.openBlock(),e.createElementBlock("td",Oa,[e.createElementVNode("div",za,[e.createElementVNode("div",ja,[e.createVNode(ya,{class:"w-48 mx-auto"}),C[8]||(C[8]=e.createElementVNode("div",{class:"max-w-sm mx-auto mt-6"},[e.createElementVNode("p",{class:"font-medium text-gray-800 dark:text-neutral-200"},"Нічого не знайдено"),e.createElementVNode("p",{class:"mt-2 text-sm text-gray-500 dark:text-neutral-500"})],-1))])])])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(v,O)=>(e.openBlock(),e.createElementBlock("tr",{key:v.id,class:e.normalizeClass(["border-b data-[state=selected]:bg-muted transition-all duration-200 hover:bg-slate-50/60 dark:hover:bg-slate-700/60 cursor-move",{"opacity-50":r.value===O,"border-t-2 border-b-2 border-blue-500 bg-blue-50 dark:bg-blue-900/20":i.value===O}]),draggable:"true",onDragstart:P=>p(O),onDragover:e.withModifiers(P=>m(O),["prevent"]),onDrop:P=>x(O)},[e.createElementVNode("td",Pa,[e.createElementVNode("div",Ha,[e.createVNode(it,{width:"24",height:"24",class:"w-4 h-4 mx-auto text-slate-400 dark:text-slate-500"})])]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(F.colModel,P=>(e.openBlock(),e.createElementBlock("td",{key:P.key,class:"p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]"},[P.type==="file"?(e.openBlock(),e.createElementBlock("div",Ga,[V(W(v,P))?(e.openBlock(),e.createElementBlock("div",qa,[e.createElementVNode("img",{src:W(v,P),alt:"alt",width:"45",class:"rounded-md max-w-[45px] h-[45px] object-cover"},null,8,Ka)])):(e.openBlock(),e.createElementBlock("div",Za,[e.createVNode(et,{class:"w-[25px] min-w-[25px] h-[25px]"})]))])):P.type==="tiptap-editor"?(e.openBlock(),e.createElementBlock("div",{key:1,class:"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-slate-100 dark:bg-slate-700 text-slate-700 dark:text-slate-300 hover:bg-slate-200 dark:hover:bg-slate-600 transition-colors",innerHTML:W(v,P)},null,8,Ya)):(e.openBlock(),e.createElementBlock("div",Ja,e.toDisplayString(W(v,P)),1))]))),128)),e.createElementVNode("td",Wa,[e.createElementVNode("div",Xa,[e.createElementVNode("button",{onClick:P=>se(v,O),class:"text-slate-700 inline-flex items-center justify-center whitespace-nowrap font-medium focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 border rounded-md text-xs h-7 w-7 p-0 border-slate-300 dark:border-slate-600 bg-white dark:bg-slate-700 hover:bg-blue-50 dark:hover:bg-slate-600 hover:border-blue-300 dark:hover:border-slate-500 hover:text-blue-600 dark:hover:text-slate-200 transition-all duration-200 shadow-sm"},[e.createVNode(Ea,{width:"24",height:"24",class:"w-3 h-3"})],8,Qa),e.createElementVNode("button",{onClick:P=>pe(O),class:"text-slate-700 inline-flex items-center justify-center whitespace-nowrap font-medium focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 border rounded-md text-xs h-7 w-7 p-0 border-slate-300 dark:border-slate-600 bg-white dark:bg-slate-700 hover:bg-red-50 dark:hover:bg-slate-600 hover:border-red-300 dark:hover:border-slate-500 hover:text-red-600 dark:hover:text-slate-200 transition-all duration-200 shadow-sm"},[e.createVNode(Se,{width:"24",height:"24",class:"w-3 h-3"})],8,er)])])],42,Ua))),128))],2)])]),e.createVNode(e.unref(G.VsModal),{visible:h.value,title:b.value,size:"lg"},{default:e.withCtx(()=>[e.createVNode(me,{schema:t.colModel,values:_.value,"onUpdate:values":C[1]||(C[1]=v=>_.value=v),form:J.value,"onUpdate:form":C[2]||(C[2]=v=>J.value=v)},null,8,["schema","values","form"]),e.createElementVNode("div",tr,[e.createElementVNode("button",{type:"button",onClick:C[3]||(C[3]=v=>h.value=!1),class:"vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-red-500 hover:border-red-500 hover:bg-red-500 focus:ring-red-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 mr-2"}," Скасувати "),e.createElementVNode("button",{onClick:ie,type:"button",class:"vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border-1 border-transparent text-white bg-blue-500 hover:bg-blue-600 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1"}," Зберегти ")])]),_:1},8,["visible","title"])]))}}),sr={draw:{toolbar:{actions:{title:"Скасувати малювання",text:"Скасувати"},finish:{title:"Завершити малювання",text:"Завершити"},undo:{title:"Видалити останню точку",text:"Видалити останню"},buttons:{polyline:"Намалювати лінію",polygon:"Намалювати полігон",rectangle:"Намалювати прямокутник",circle:"Намалювати коло",marker:"Додати точку",circlemarker:"Додати маркер-коло"}},handlers:{circle:{tooltip:{start:"Клацніть і тягніть, щоб намалювати коло",end:"Відпустіть кнопку миші, щоб завершити"},radius:"Радіус"},circlemarker:{tooltip:{start:"Клацніть на карту, щоб додати маркер-коло"}},marker:{tooltip:{start:"Клацніть на карту, щоб додати точку"}},polygon:{tooltip:{start:"Клацніть, щоб почати малювати полігон",cont:"Клацайте, щоб продовжити малювати полігон",end:"Клацніть першу точку, щоб завершити полігон"}},polyline:{error:"<strong>Помилка:</strong> лінія не може перетинатися сама з собою",tooltip:{start:"Клацніть, щоб почати малювати лінію",cont:"Клацайте, щоб продовжити малювати лінію",end:"Клацніть останню точку, щоб завершити лінію"}},rectangle:{tooltip:{start:"Клацніть і тягніть, щоб намалювати прямокутник",end:"Відпустіть кнопку миші, щоб завершити"}},simpleshape:{tooltip:{end:"Відпустіть кнопку миші, щоб завершити"}}}},edit:{toolbar:{actions:{save:{title:"Зберегти зміни",text:"Зберегти"},cancel:{title:"Скасувати редагування",text:"Скасувати"},clearAll:{title:"Очистити всі шари",text:"Очистити все"}},buttons:{edit:"Редагувати шари",editDisabled:"Немає шарів для редагування",remove:"Видалити шари",removeDisabled:"Немає шарів для видалення"}},handlers:{edit:{tooltip:{text:"Перетягніть маркери, щоб редагувати шари",subtext:"Натисніть 'Скасувати', щоб повернутися"}},remove:{tooltip:{text:"Клацніть на шари, щоб видалити їх"}}}}};function we(o){return o?o.type==="Polygon"?{type:"MultiPolygon",coordinates:[o.coordinates]}:o.type==="Feature"?{...o,geometry:we(o.geometry)}:o.type==="FeatureCollection"?{...o,features:(o.features||[]).map(t=>we(t)).filter(Boolean)}:o:null}function nr(o){return o?o.type==="FeatureCollection"||o.type==="Feature"?we(o):o.geom?{type:"Feature",geometry:we({type:o.geom.type,coordinates:o.geom.coordinates}),properties:{}}:o.type&&o.coordinates?{type:"Feature",geometry:we(o),properties:{}}:null:null}const lr={},ar={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",stroke:"currentColor",fill:"none","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-map-pin"};function rr(o,t){return e.openBlock(),e.createElementBlock("svg",ar,t[0]||(t[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M9 11a3 3 0 1 0 6 0a3 3 0 0 0 -6 0"},null,-1),e.createElementVNode("path",{d:"M17.657 16.657l-4.243 4.243a2 2 0 0 1 -2.827 0l-4.244 -4.243a8 8 0 1 1 11.314 0z"},null,-1)]))}const or=T(lr,[["render",rr]]),ir={},dr={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none","stroke-width":"2",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-line"};function ur(o,t){return e.openBlock(),e.createElementBlock("svg",dr,t[0]||(t[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M6 18m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"},null,-1),e.createElementVNode("path",{d:"M18 6m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"},null,-1),e.createElementVNode("path",{d:"M7.5 16.5l9 -9"},null,-1)]))}const cr=T(ir,[["render",ur]]),pr={},hr={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-polygon"};function mr(o,t){return e.openBlock(),e.createElementBlock("svg",hr,t[0]||(t[0]=[e.createStaticVNode('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M12 5m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M19 8m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M5 11m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M15 19m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M6.5 9.5l3.5 -3"></path><path d="M14 5.5l3 1.5"></path><path d="M18.5 10l-2.5 7"></path><path d="M13.5 17.5l-7 -5"></path>',9)]))}const fr=T(pr,[["render",mr]]),gr={},kr={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-topology-ring-3"};function br(o,t){return e.openBlock(),e.createElementBlock("svg",kr,t[0]||(t[0]=[e.createStaticVNode('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M8 18a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M20 18a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M20 6a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M8 6a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M6 8v8"></path><path d="M18 16v-8"></path><path d="M8 6h8"></path><path d="M16 18h-8"></path>',9)]))}const yr=T(gr,[["render",br]]),xr={},_r={version:"1.1",viewBox:"0 0 14 14",xmlns:"http://www.w3.org/2000/svg","xmlns:sketch":"http://www.bohemiancoding.com/sketch/ns","xmlns:xlink":"http://www.w3.org/1999/xlink",class:"fullscreen-icon"};function wr(o,t){return e.openBlock(),e.createElementBlock("svg",_r,t[0]||(t[0]=[e.createElementVNode("title",null,null,-1),e.createElementVNode("desc",null,null,-1),e.createElementVNode("defs",null,null,-1),e.createElementVNode("g",{fill:"none","fill-rule":"evenodd",id:"Page-1",stroke:"none","stroke-width":"1"},[e.createElementVNode("g",{fill:"#000000",id:"Core",transform:"translate(-215.000000, -257.000000)"},[e.createElementVNode("g",{id:"fullscreen",transform:"translate(215.000000, 257.000000)"},[e.createElementVNode("path",{d:"M2,9 L0,9 L0,14 L5,14 L5,12 L2,12 L2,9 L2,9 Z M0,5 L2,5 L2,2 L5,2 L5,0 L0,0 L0,5 L0,5 Z M12,12 L9,12 L9,14 L14,14 L14,9 L12,9 L12,12 L12,12 Z M9,0 L9,2 L12,2 L12,5 L14,5 L14,0 L9,0 L9,0 Z",id:"Shape"})])])],-1)]))}const Er=T(xr,[["render",wr]]),Vr={class:"form-geom__search"},Cr={class:"map-search__input"},vr={class:"flex flex-nowrap relative"},Br={class:"form-autocomplete relative min-w-[6rem] vsTailwind map-search__select hidden"},Nr={class:"flex items-center w-full"},Sr={class:"max-w-[90%] truncate"},Mr={key:0,class:"absolute z-[3100] mt-0.5 left-0 right-0"},Fr={class:"form-autocomplete__wrapper mt-[10px] z-50 w-full min-w-36 max-h-72 p-0 space-y-0.5 bg-white rounded-xl shadow-[0_10px_40px_10px_rgba(0,0,0,0.08)] dark:bg-neutral-900 top-full opened"},Ar={class:"form-autocomplete__list vsTailwind px-2 pb-2 pt-0 max-h-200 relative [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500 dark:bg-neutral-900"},$r=["onClick"],Dr={class:"flex justify-between items-center w-full"},Ir={class:"flex items-center"},Lr={key:0,class:"flex-shrink-0 w-3.5 h-3.5 text-blue-600",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Tr={class:"relative w-full"},Rr={class:"vs-form-text relative bg-white rounded-lg"},Or={key:1,class:"absolute left-0 right-0 top-full z-[3200] bg-white border border-gray-200 rounded-b-lg shadow-lg max-h-72 overflow-auto"},zr={key:0},jr=["onClick"],Ur={key:1,class:"px-3 py-2 text-xs text-gray-500"},Pr={key:2,class:"px-3 py-2 text-xs text-gray-400"},Hr=e.defineComponent({__name:"map-search",props:{placeholder:{default:"50, 30"}},emits:["goToCoordinates"],setup(o,{emit:t}){const s=t,n=e.ref(!1),l=e.ref("coordinates"),a=e.ref(""),r=e.ref([]),i=e.ref(!1),d=e.ref(!1);let u;const c=[{value:"coordinates",label:"Пошук по кординатам"},{value:"atu",label:"АТУ"},{value:"address",label:"Адресса"},{value:"search_here",label:"Пошук HERE"}],p=e.computed(()=>c.find(N=>N.value===l.value)?.label??"АТУ");function m(N){l.value=N.value,n.value=!1,a.value="",a.value&&D()}function x(N){N.target.closest(".map-search__input")||(n.value=!1)}e.onMounted(()=>document.addEventListener("click",x)),e.onUnmounted(()=>document.removeEventListener("click",x));async function B(N){let b;l.value==="atu"?b="/api/suggest/atu.nsdi.ato_level":l.value==="address"?b="/api/suggest/map.address_id":l.value==="search_here"&&(b="/api/gis-url-proxy");const h=new URL(b||"");return l.value==="search_here"?h.searchParams.set("searchtext",N):(l.value==="atu"||l.value==="address")&&h.searchParams.set("key",N),h.searchParams.set("limit","20"),h.searchParams.set("q",N),(await fetch(h.toString())).json()}function D(){if(i.value=!0,d.value=!0,l.value==="coordinates"){const N=a.value.trim().split(",");if(N.length===2){const b=parseFloat(N[0]),h=parseFloat(N[1]);!Number.isNaN(b)&&!Number.isNaN(h)&&s("goToCoordinates",[b,h])}return}u&&window.clearTimeout(u),u=window.setTimeout(async()=>{const N=a.value.trim();if(!N){r.value=[],d.value=!1;return}try{const b=await B(N);r.value=Array.isArray(b.features)?b.features:[]}catch{r.value=[]}finally{d.value=!1}},300)}function V(){a.value="",r.value=[],i.value=!1,d.value=!1}function M(N){s("goToCoordinates",N),i.value=!1,d.value=!1,r.value=[]}return(N,b)=>(e.openBlock(),e.createElementBlock("div",Vr,[e.createElementVNode("div",Cr,[e.createElementVNode("div",vr,[e.createElementVNode("div",Br,[e.createElementVNode("button",{type:"button",onClick:b[0]||(b[0]=h=>n.value=!n.value),class:"h-[40px] relative px-4 pe-9 flex text-nowrap w-full cursor-pointer bg-white border border-solid border-stone-200 rounded-lg text-start text-sm text-stone-800 focus:outline-none focus:ring-1 focus:ring-blue-600 dark:bg-neutral-800 dark:border-neutral-700 dark:text-neutral-200"},[e.createElementVNode("div",Nr,[e.createElementVNode("span",Sr,e.toDisplayString(p.value),1)]),b[3]||(b[3]=e.createElementVNode("svg",{class:"stroke-gray-500 absolute right-3 translate-y-1/2 bottom-1/2",width:"15",height:"15",viewBox:"0 0 24 24",fill:"none"},[e.createElementVNode("path",{d:"M6 9l6 6 6-6","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"})],-1))]),n.value?(e.openBlock(),e.createElementBlock("div",Mr,[e.createElementVNode("div",Fr,[e.createElementVNode("div",Ar,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(c,h=>e.createElementVNode("div",{onClick:j=>m(h),key:h.value,class:"form-autocomplete__item cursor-pointer hs-selected:bg-stone-100 dark:hs-selected:bg-neutral-800 py-2 px-4 w-full text-sm text-gray-800 hover:bg-gray-100 rounded-lg focus:outline-none focus:bg-stone-100 dark:bg-neutral-900 dark:hover:bg-neutral-800 dark:text-neutral-200 dark:focus:bg-neutral-800 cursor-default"},[e.createElementVNode("div",Dr,[e.createElementVNode("div",Ir,[e.createElementVNode("div",null,e.toDisplayString(h.label),1)]),h.value===l.value?(e.openBlock(),e.createElementBlock("svg",Lr,b[4]||(b[4]=[e.createElementVNode("polyline",{points:"20 6 9 17 4 12"},null,-1)]))):e.createCommentVNode("",!0)])],8,$r)),64))])])])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Tr,[e.createElementVNode("div",Rr,[b[6]||(b[6]=e.createElementVNode("i",{class:"absolute bottom-1/2 translate-y-1/2 left-3 text-gray-500"},[e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor"},[e.createElementVNode("circle",{cx:"11",cy:"11",r:"8","stroke-width":"2"}),e.createElementVNode("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65","stroke-width":"2"})])],-1)),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":b[1]||(b[1]=h=>a.value=h),onInput:D,onFocus:b[2]||(b[2]=h=>i.value=!0),placeholder:"lat, lng ex. 50, 30",class:"bg-white h-[38px] text-sm py-2 px-3 ps-9 pe-8 block w-full border border-solid placeholder:text-nowrap border-stone-200 rounded-lg text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,544),[[e.vModelText,a.value]]),a.value?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:V,class:"absolute right-2 bottom-1/2 translate-y-1/2 text-gray-500 hover:text-red-500","aria-label":"Очистити",type:"button"},b[5]||(b[5]=[e.createElementVNode("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{d:"M18 6L6 18M6 6l12 12","stroke-linecap":"round","stroke-linejoin":"round"})],-1)]))):e.createCommentVNode("",!0),i.value&&l.value!=="coordinates"?(e.openBlock(),e.createElementBlock("div",Or,[r.value.length?(e.openBlock(),e.createElementBlock("ul",zr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,h=>(e.openBlock(),e.createElementBlock("li",{key:h.properties.place_id,onClick:j=>M(h),class:"px-3 py-2 text-sm cursor-pointer hover:bg-gray-100"},e.toDisplayString(h.properties.display_name),9,jr))),128))])):d.value?(e.openBlock(),e.createElementBlock("div",Ur,"Шукаю…")):(e.openBlock(),e.createElementBlock("div",Pr,"Нічого не знайдено"))])):e.createCommentVNode("",!0)])])])])]))}}),Gr={class:"bg-white/95 p-2 rounded-xl shadow border border-gray-200"},qr={class:"flex gap-2"},Kr=["onClick","title"],Zr=["src"],Yr=e.defineComponent({__name:"map-layers",props:{basemaps:{}},emits:["onLayerChange"],setup(o,{emit:t}){const s=o,n=e.ref(Object.keys(s.basemaps)[0]),l=t;function a(r){l("onLayerChange",r),n.value=r}return(r,i)=>(e.openBlock(),e.createElementBlock("div",Gr,[e.createElementVNode("div",qr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.basemaps,(d,u)=>(e.openBlock(),e.createElementBlock("div",{key:u,class:e.normalizeClass(["cursor-pointer border rounded-lg overflow-hidden hover:shadow-sm",{"ring-2 ring-blue-500 border-blue-300":n.value===u}]),onClick:c=>a(u),title:d.name||u,role:"button",tabindex:"0"},[e.createElementVNode("img",{src:d.preview,alt:"",class:"w-14 h-14 object-cover"},null,8,Zr)],10,Kr))),128))])]))}}),Jr={class:"absolute top-4 left-4 z-[1000] w-[calc(100%-20px)] sm:w-[350px]"},Wr={class:"form-geom__panel flex gap-1 items-start mt-2"},Xr={class:"flex items-center gap-1"},Qr=["disabled"],eo={class:"absolute top-4 right-4 z-[1000]"},to={class:"flex flex-col gap-[2px]"},so=["aria-pressed"],no=["aria-pressed"],lo=["aria-pressed"],ao=["aria-pressed"],ro={class:"absolute bottom-0 left-0 right-0 z-[1000] bg-white/95 border-t border-gray-200 text-xs text-gray-700 flex items-center gap-4 pt-1"},oo={key:0,class:"form-geom__feature flex items-center text-xs transition-all gap-2 w-full"},io={class:"mr-auto"},uo={class:"font-bold"},co={class:"flex items-center"},po={class:"text-xs mr-2"},ho={key:0,class:"text-xs"},mo={key:1,class:"text-xs"},ut=T(e.defineComponent({__name:"vs-input-map",props:{tools:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{}},emits:["update:modelValue"],setup(o,{emit:t}){const s=e.getCurrentInstance(),n=o,l=t,a=e.ref(null);let r,i,d;const u=e.ref(null),c=e.ref(null),p=e.ref(6),m=e.ref(0),x=e.ref(s?.appContext.config.globalProperties.$settings?.center||[50,30]),B=e.ref(null),D=he();let V;const M=e.ref("topo100");function N(g){return g?g.type==="Polygon"?{type:"MultiPolygon",coordinates:[g.coordinates]}:(g.type==="MultiPolygon",g):null}function b(){return new Promise((g,y)=>{window.L&&window.L.Draw&&g(0);const $=H=>{if(Array.from(document.styleSheets).some(fe=>fe?.href?.includes(H)))return;const ne=document.createElement("link");ne.rel="stylesheet",ne.href=H,document.head.appendChild(ne)},z=H=>new Promise((oe,ne)=>{const fe=Array.from(document.scripts).find(ke=>ke.src===H);if(fe){fe.addEventListener("load",()=>oe()),fe.addEventListener("error",ke=>ne(ke));return}const ge=document.createElement("script");ge.src=H,ge.async=!0,ge.onload=()=>oe(),ge.onerror=ke=>ne(ke),document.body.appendChild(ge)});$("https://unpkg.com/leaflet@1.9.4/dist/leaflet.css"),$("https://unpkg.com/leaflet-draw@1.0.4/dist/leaflet.draw.css"),z("https://unpkg.com/leaflet@1.9.4/dist/leaflet.js").then(()=>z("https://unpkg.com/leaflet-draw@1.0.4/dist/leaflet.draw.js")).then(()=>g(0)).catch(y)})}function h(){const g=i.toGeoJSON(),y=[],$=H=>{if(H)switch(H.type){case"Polygon":y.push(H.coordinates);break;case"MultiPolygon":y.push(...H.coordinates);break;case"GeometryCollection":(H.geometries||[]).forEach($);break}};(g?.features||[]).forEach(H=>$(H.geometry));const z=y.length?{type:"MultiPolygon",coordinates:y}:null;l("update:modelValue",z?N(z):null),m.value=i.getLayers().length}function j(g=30){const y=i.getLayers();if(!y.length)return;const z=L.featureGroup(y).getBounds();z&&z.isValid()&&r.fitBounds(z,{padding:[g,g]})}function U(){u.value?.click()}const _=e.ref("");function J(g){return g instanceof L.Circle?"Circle":g instanceof L.Rectangle?"Rectangle":g instanceof L.Polygon&&!(g instanceof L.Rectangle)?"Polygon":g instanceof L.Polyline&&!(g instanceof L.Polygon)?"Polyline":g instanceof L.Marker?"Point":"Feature"}function Z(g){if(g instanceof L.Circle){const y=g.getRadius();return Math.PI*(y*y)/1e6}if(g instanceof L.Polygon||g instanceof L.Rectangle)try{const y=g.getLatLngs(),$=Array.isArray(y[0])?y[0]:y,z=L.GeometryUtil?.geodesicArea?L.GeometryUtil.geodesicArea($):0;return z?z/1e6:0}catch{return null}return null}function W(g){return g instanceof L.Circle?g.getLatLng():g.getBounds?g.getBounds().getCenter():g.getLatLng?g.getLatLng():r.getCenter()}function se(){const g=i.getLayers();if(!g.length){B.value=null,m.value=0;return}const y=g[g.length-1],$=J(y),z=W(y),H=Z(y);B.value={type:$,center:z,areaKm2:H,layer:y},m.value=g.length}function ie(){const g=B.value?.layer;g&&(g instanceof L.Circle&&g.getBounds?r.fitBounds(g.getBounds(),{padding:[30,30]}):g.getBounds?r.fitBounds(g.getBounds(),{padding:[30,30]}):g.getLatLng&&r.setView(g.getLatLng(),Math.max(p.value,14)))}function pe(){const g=B.value?.layer;g&&(i.removeLayer(g),h(),se())}e.onMounted(async()=>{await b(),L.drawLocal=sr,r=L.map(a.value,{zoomControl:!1}).setView(x.value,10),L.control.zoom({position:"bottomright"}).addTo(r),M.value=Object.keys(D)[0],V=L.tileLayer(D[M.value].url,{maxZoom:19,minZoom:6}).addTo(r),i=new L.FeatureGroup().addTo(r),r.on(L.Draw.Event.CREATED,$=>{const{layer:z}=$;i.clearLayers(),i.addLayer(z),h(),se(),j(),_.value=""}),r.on(L.Draw.Event.EDITED,()=>{h(),se(),j()}),r.on(L.Draw.Event.DELETED,()=>{h(),se(),j()});let g=!1;r.on("mousemove",$=>{g||(r.invalidateSize(),g=!0),c.value=$.latlng}),r.on("zoomend",()=>{p.value=r.getZoom()});const y=nr(n.modelValue);if(y){const $=[];L.geoJSON(y).eachLayer(z=>$.push(z)),$.length&&i.addLayer($[0]),h(),se(),j()}});function F(g){if(r){switch(d&&d.disable(),g){case"marker":d=new L.Draw.Marker(r);break;case"polyline":d=new L.Draw.Polyline(r);break;case"polygon":d=new L.Draw.Polygon(r);break;case"rectangle":d=new L.Draw.Rectangle(r);break;default:d=new L.Draw.Rectangle(r);break}d&&(d.enable(),_.value=g)}}function C(){const g=i.toGeoJSON(),y=new Blob([JSON.stringify(g,null,2)],{type:"application/json"}),$=URL.createObjectURL(y),z=document.createElement("a");z.href=$,z.download="data.geojson",z.click(),URL.revokeObjectURL($)}function v(g){const y=g.target.files?.[0];if(!y)return;const $=new FileReader;$.onload=()=>{if(typeof $.result=="string")try{const z=JSON.parse($.result);i.clearLayers(),z&&L.geoJSON({type:"Feature",geometry:z}).eachLayer(H=>{i.addLayer(H)}),h(),se(),j()}finally{g.target.value=""}},$.readAsText(y)}function O(g){r&&(V&&r.removeLayer(V),V=L.tileLayer(D[g].url,{maxZoom:19,minZoom:6}).addTo(r),M.value=g)}function P(g){const y=L.latLng(g[0],g[1]);r.setView(y,13)}e.watch(()=>n.modelValue,g=>{console.log("update map");const y=N(g);if(g&&y!==g){l("update:modelValue",y);return}i.clearLayers(),y&&L.geoJSON({type:"Feature",geometry:y}).eachLayer($=>{i.addLayer($),$.dragging?.enable(),$.dragging?.enabled(),$.on("dragend",z=>{const oe=z.target.getLatLng();l("update:modelValue",{type:"Point",coordinates:[oe.lng,oe.lat]})})}),m.value=i.getLayers().length,se(),j()});function he(){return s?.appContext.config.globalProperties.$settings?.basemaps?s?.appContext.config.globalProperties.$settings?.basemaps.map((g,y)=>Object.assign(g,{key:`b${y}`,preview:g.preview||g.url.replace("{z}/{x}/{y}.png","13/4790/2762.png")})).reduce((g,y)=>({...g,[y.key]:y}),{}):{topo100:{url:"https://data.gki.com.ua/api-user/rtile/voyager/ua/{z}/{x}/{y}.png",preview:"https://data.gki.com.ua/api-user/rtile/voyager/ua/13/4790/2762.png"},orto10:{url:"https://data.gki.com.ua/api-user/rtile/orto10/ua/{z}/{x}/{y}.png",preview:"https://data.gki.com.ua/api-user/rtile/orto10/ua/13/4790/2762.png"},osmb:{url:"https://tile.openstreetmap.org.ua/styles/osm-bright/{z}/{x}/{y}.png",preview:"https://tile.openstreetmap.org.ua/styles/osm-bright/13/4790/2762.png"}}}const de=e.ref(!1);return e.watch(de,()=>{setTimeout(()=>{r.invalidateSize()},50)}),(g,y)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["leaflet-map-wrapper relative w-full h-[400px]",{fullscreen:de.value}])},[e.createElementVNode("div",{ref_key:"mapContainer",ref:a,class:"w-full h-full"},null,512),e.createElementVNode("div",Jr,[e.createVNode(Hr,{onGoToCoordinates:P}),e.createElementVNode("div",Wr,[e.createElementVNode("div",Xr,[e.createElementVNode("button",{type:"button",class:"vs-btn-row",onClick:U},"Import"),e.createElementVNode("button",{type:"button",class:"vs-btn-row",onClick:C,disabled:m.value===0},"Export ",8,Qr)]),e.createElementVNode("input",{ref_key:"importRef",ref:u,type:"file",onChange:v,accept:".json,.geojson",class:"hidden"},null,544)])]),e.createElementVNode("div",eo,[e.createElementVNode("div",to,[e.createElementVNode("button",{class:e.normalizeClass(["vs-btn",{"vs-active":_.value==="marker"}]),"aria-pressed":_.value==="marker",title:"Point (P)","aria-label":"Draw point",onClick:y[0]||(y[0]=$=>F("marker"))},[e.createVNode(or)],10,so),e.createElementVNode("button",{class:e.normalizeClass(["vs-btn",{"vs-active":_.value==="polyline"}]),"aria-pressed":_.value==="polyline",title:"Line (L)","aria-label":"Draw polyline",onClick:y[1]||(y[1]=$=>F("polyline"))},[e.createVNode(cr)],10,no),e.createElementVNode("button",{class:e.normalizeClass(["vs-btn",{"vs-active":_.value==="polygon"}]),"aria-pressed":_.value==="polygon",title:"Polygon (G)","aria-label":"Draw polygon",onClick:y[2]||(y[2]=$=>F("polygon"))},[e.createVNode(fr)],10,lo),e.createElementVNode("button",{class:e.normalizeClass(["vs-btn",{"vs-active":_.value==="rectangle"}]),"aria-pressed":_.value==="rectangle",title:"Rectangle (R)","aria-label":"Draw rectangle",onClick:y[3]||(y[3]=$=>F("rectangle"))},[e.createVNode(yr)],10,ao),e.createElementVNode("button",{class:"vs-btn mt-5",onClick:y[4]||(y[4]=$=>{de.value=!de.value}),title:"Full Screen","aria-label":"Full Screen"},[e.createVNode(Er,{style:{width:"12px",height:"12px"}})])])]),e.createElementVNode("div",{class:e.normalizeClass(["absolute left-4 z-[1000]",B.value?"bottom-8":"bottom-4"])},[e.createVNode(Yr,{basemaps:e.unref(D),onOnLayerChange:O},null,8,["basemaps"])],2),e.createElementVNode("div",ro,[B.value?(e.openBlock(),e.createElementBlock("div",oo,[e.createElementVNode("div",io,[y[7]||(y[7]=e.createTextVNode(" Тип: ",-1)),e.createElementVNode("span",uo,e.toDisplayString(B.value.type),1)]),e.createElementVNode("div",co,[e.createElementVNode("div",po,[y[8]||(y[8]=e.createTextVNode(" Центр: ",-1)),e.createElementVNode("b",null,e.toDisplayString(B.value.center.lat.toFixed(5))+", "+e.toDisplayString(B.value.center.lng.toFixed(5)),1)]),B.value.areaKm2!==null?(e.openBlock(),e.createElementBlock("div",ho,[y[9]||(y[9]=e.createTextVNode(" Площа: ",-1)),e.createElementVNode("b",null,e.toDisplayString(B.value.areaKm2.toFixed(1))+"км²",1)])):(e.openBlock(),e.createElementBlock("div",mo,y[10]||(y[10]=[e.createTextVNode(" Площа: ",-1),e.createElementVNode("b",null,"—",-1)]))),e.createElementVNode("button",{class:"tool bg-gray-100 py-1.5 px-2 rounded-lg text-md mr-1 cursor-pointer hover:bg-blue-500 hover:text-white transition-all",title:"Наблизити",onClick:y[5]||(y[5]=$=>ie())},y[11]||(y[11]=[e.createStaticVNode('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-3 h-3" data-v-44f47a6f><path d="M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0" data-v-44f47a6f></path><path d="M7 10l6 0" data-v-44f47a6f></path><path d="M10 7l0 6" data-v-44f47a6f></path><path d="M21 21l-6 -6" data-v-44f47a6f></path></svg>',1)])),e.createElementVNode("button",{class:"tool bg-gray-100 py-1.5 px-2 rounded-lg text-md cursor-pointer hover:bg-blue-500 hover:text-white transition-all",title:"Видалити",onClick:y[6]||(y[6]=$=>pe())},[e.createVNode(Se,{class:"w-3 h-3"})])])])):e.createCommentVNode("",!0)])],2))}}),[["__scopeId","data-v-44f47a6f"]]),fo=["data-focus"],go={class:"flex items-center"},ko={class:"overflow-hidden text-ellipsis whitespace-nowrap rounded-sm text-[#333] text-[85%] px-0.5 py-[3px] pl-1.5 box-border"},bo=["onClick","aria-label"],yo={key:0,class:"absolute text-gray-500 truncate pl-2"},xo={class:"flex-1 min-w-[2px]"},_o=["placeholder"],wo={class:"flex items-center shrink-0"},Eo=["disabled"],ct=e.defineComponent({__name:"vs-input-tag",props:e.mergeModels({unique:{type:Boolean,default:!0},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:"Введіть тег"}},{modelValue:{default:[]},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue"],["update:modelValue"]),setup(o,{emit:t}){const s=o,n=t;te(s.style);const l=e.ref(null),a=e.ref(null),r=e.ref(null),i=e.ref(!1),d=e.ref(""),u=e.useModel(o,"modelValue"),c=e.computed(()=>s.placeholder||"Add tag…"),p=e.computed(()=>u.value?.length===0&&d.value===""),m=e.computed(()=>!s.disabled&&u.value?.length>0),x=e.computed(()=>s.disabled),B=async()=>{x.value||await e.nextTick(()=>r.value?.focus())},D=U=>{const _=U.trim();_!==""&&(!u.value||!Array.isArray(u.value)?u.value=[_]:s.unique?u.value.includes(_)||(u.value=[...u.value,_]):u.value=[...u.value,_],d.value="")},V=()=>{const U=d.value;U.trim()!==""&&D(U),d.value=""},M=U=>{const _=u.value.slice();_.splice(U,1),n("update:modelValue",_)},N=()=>{n("update:modelValue",[])},b=()=>{x.value||(i.value=!0)},h=()=>{i.value=!1},j=U=>{const{key:_}=U;_==="Enter"?(U.preventDefault(),V()):_==="Backspace"&&d.value===""&&u.value.length>0&&M(u.value.length-1)};return(U,_)=>(e.openBlock(),e.createElementBlock("div",{class:"flex gap-1 w-full",ref_key:"root",ref:l,onClick:_[1]||(_[1]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",s.customClass]),role:"group","aria-label":"Tag input"},[e.createElementVNode("div",{class:e.normalizeClass(["flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white","border-gray-300 hover:border-gray-400",i.value?"border-blue-500 ring-1 ring-blue-500":"",x.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),"data-focus":i.value?"true":"false",onClick:B},[e.createElementVNode("div",{class:"flex flex-1 flex-wrap items-center gap-1 py-0.5 pl-2 pr-0 overflow-hidden",ref_key:"chipsRef",ref:a},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,(J,Z)=>(e.openBlock(),e.createElementBlock("div",{key:Z,class:"flex min-w-0 bg-[#e6e6e6] rounded-sm m-0.5 box-border"},[e.createElementVNode("div",go,[e.createElementVNode("div",ko,e.toDisplayString(J),1)]),e.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border hover:bg-[#ffbdad] hover:text-[#de350b]",onClick:e.withModifiers(W=>M(Z),["stop"]),"aria-label":`Remove ${J}`},_[2]||(_[2]=[e.createElementVNode("svg",{height:"14",width:"14",viewBox:"0 0 20 20","aria-hidden":"true",focusable:"false",class:"inline-block fill-current stroke-current leading-none stroke-0"},[e.createElementVNode("path",{d:"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z"})],-1)]),8,bo)]))),128)),p.value?(e.openBlock(),e.createElementBlock("div",yo,e.toDisplayString(c.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",xo,[x.value?e.createCommentVNode("",!0):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"inputRef",ref:r,class:"pl-2 w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-label":"Add tag","onUpdate:modelValue":_[0]||(_[0]=J=>d.value=J),onFocus:b,onBlur:h,onKeydown:j,placeholder:u.value&&u.value.length?"":void 0},null,40,_o)),[[e.vModelText,d.value]])])],512),e.createElementVNode("div",wo,[m.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-label":"Clear all tags",disabled:x.value,onClick:e.withModifiers(N,["stop"])},_[3]||(_[3]=[e.createElementVNode("svg",{height:"20",width:"20",viewBox:"0 0 20 20",class:"fill-current"},[e.createElementVNode("path",{d:"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z"})],-1)]),8,Eo)):e.createCommentVNode("",!0)])],10,fo)],2)],512))}}),Vo={class:"relative flex gap-1 bg-white w-full"},Co=["disabled","placeholder"],pt=T(e.defineComponent({__name:"vs-input-slug",props:e.mergeModels({disabled:{type:Boolean},placeholder:{},parent:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=e.inject("values"),s=o,n=e.useModel(o,"modelValue");function l(r){const i={а:"a",б:"b",в:"v",г:"g",д:"d",е:"e",ё:"e",ж:"zh",з:"z",и:"i",й:"y",к:"k",л:"l",м:"m",н:"n",о:"o",п:"p",р:"r",с:"s",т:"t",у:"u",ф:"f",х:"kh",ц:"ts",ч:"ch",ш:"sh",щ:"shch",ы:"y",э:"e",ю:"yu",я:"ya",ь:"",ъ:"",є:"ye",і:"i",ї:"yi",ґ:"g"};return r.toLowerCase().split("").map(d=>i[d]||d).join("").replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}const a=()=>{const r=t?.value?.[s.parent||""]?.toString(),i=l(r);n.value=i.toString()};return(r,i)=>(e.openBlock(),e.createElementBlock("div",Vo,[e.withDirectives(e.createElementVNode("input",{ref:"vsText",disabled:r.disabled,placeholder:r.placeholder,"onUpdate:modelValue":i[0]||(i[0]=d=>n.value=d),class:"block w-full px-3 py-2 text-sm border border-solid rounded-lg placeholder:text-nowrap border-stone-200 text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,8,Co),[[e.vModelText,n.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200",onClick:a}," Gen ")]))}}),[["__scopeId","data-v-b0eba370"]]),vo={class:"w-full"},Bo={ref:"sortableContainer",class:"flex flex-col gap-1"},No=["onDragstart","onDrop"],So={class:"w-1/3"},Mo={class:"w-2/3"},Fo=["onClick"],Ao={key:0,class:"text-[14px] text-gray-700"},$o={class:"mt-2 w-full flex items-center"},Do=["disabled"],ht=T(e.defineComponent({__name:"vs-input-key-value",props:{parent:{},ignore:{},addButtonText:{},modelValue:{}},emits:["update:modelValue"],setup(o,{emit:t}){const s=V=>`${V}-${Math.random().toString(36).substring(2,15)}`,n=e.inject("values"),l=o,a=t,r=l.addButtonText??"Додати",i=l.ignore??[],d=e.ref([]),u=e.ref(null);(()=>{const V=l.parent&&n?.value?.[l.parent]||l.modelValue||{};d.value=Object.entries(V).filter(([M])=>!i.includes(M)).map(([M,N])=>({id:s("key-value-"),key:M,value:N}))})();function p(V){u.value=V}function m(V){if(u.value===null||u.value===V)return;const M=d.value.splice(u.value,1)[0];d.value.splice(V,0,M),u.value=null}const x=e.computed(()=>d.value.some(V=>V.key&&!V.value||!V.key&&V.value)),B=()=>{d.value.push({id:s("key-value-"),key:"",value:""})},D=V=>{d.value=d.value.filter(M=>M.id!==V)};return e.watch(d,V=>{const M={};V.forEach(b=>{b.key&&b.value!==void 0&&(M[b.key]=b.value)});const N={};i.length&&i.forEach(b=>{N[b]=l.parent?n?.value?.[l.parent]?.[b]:void 0}),n?.value&&l.parent&&(n.value[l.parent]={...N,...M}),a("update:modelValue",M)},{deep:!0}),(V,M)=>(e.openBlock(),e.createElementBlock("div",vo,[e.createElementVNode("div",Bo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(N,b)=>(e.openBlock(),e.createElementBlock("div",{key:N.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":u.value===b}]),draggable:"true",onDragstart:h=>p(b),onDragover:M[0]||(M[0]=e.withModifiers(()=>{},["prevent"])),onDrop:h=>m(b)},[M[1]||(M[1]=e.createStaticVNode('<button class="cursor-move" data-v-a0f7fbfc><svg fill="#000000" width="20" height="20" viewBox="0 0 36 36" data-v-a0f7fbfc><circle cx="15" cy="12" r="1.5" data-v-a0f7fbfc></circle><circle cx="15" cy="24" r="1.5" data-v-a0f7fbfc></circle><circle cx="21" cy="12" r="1.5" data-v-a0f7fbfc></circle><circle cx="21" cy="24" r="1.5" data-v-a0f7fbfc></circle><circle cx="21" cy="18" r="1.5" data-v-a0f7fbfc></circle><circle cx="15" cy="18" r="1.5" data-v-a0f7fbfc></circle></svg></button>',1)),e.createElementVNode("div",So,[e.createVNode(xe,{modelValue:N.key,"onUpdate:modelValue":h=>N.key=h,placeholder:"Ключ"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",Mo,[e.createVNode(xe,{modelValue:N.value,"onUpdate:modelValue":h=>N.value=h,placeholder:"Значення"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("button",{onClick:h=>D(N.id),class:"shrink-0 w-[30px] text-gray-600 h-[30px] rounded-full flex items-center justify-center bg-gray-100 hover:bg-gray-200"},[e.createVNode(e.unref(Ts),{height:"16",width:"16"})],8,Fo)],42,No))),128))],512),d.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Ao," Дані для відображення відсутні ")),e.createElementVNode("div",$o,[e.createElementVNode("button",{type:"button",onClick:B,disabled:x.value,class:"py-1.5 px-2 flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"},[e.createVNode(_e,{height:"14",width:"14"}),e.createTextVNode(" "+e.toDisplayString(e.unref(r)),1)],8,Do)])]))}}),[["__scopeId","data-v-a0f7fbfc"]]),Io={class:"flex items-center gap-2 w-full"},Lo=["disabled"],mt=e.defineComponent({__name:"vs-input-color",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""}},emits:["update:modelValue"],setup(o,{emit:t}){const s=o,{inputClass:n}=te(s.style),l=t,a=e.computed({get:()=>s.modelValue||"#000000",set:r=>l("update:modelValue",r)});return(r,i)=>(e.openBlock(),e.createElementBlock("div",Io,[e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":i[0]||(i[0]=d=>a.value=d),disabled:r.disabled,ref:"color",class:e.normalizeClass(["py-1.5 px-1 block w-full bg-white cursor-pointer max-w-[50px]",[r.modelValue?"":"text-opacity-50",e.unref(n)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,Lo),[[e.vModelText,a.value]]),e.withDirectives(e.createElementVNode("input",{class:"text-sm text-gray-600 border border-solid border-stone-200 rounded-md p-2","onUpdate:modelValue":i[1]||(i[1]=d=>a.value=d)},null,512),[[e.vModelText,a.value]])]))}}),To={class:"flex items-center gap-2 w-full"},Ro=["min","max","step","disabled"],ft=e.defineComponent({__name:"vs-input-range",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},min:{default:0},max:{default:100},step:{default:1}},emits:["update:modelValue"],setup(o,{emit:t}){const s=o,{inputClass:n}=te(s.style),l=t,a=e.computed({get:()=>Number(s.modelValue??s.min),set:r=>l("update:modelValue",Number(r))});return(r,i)=>(e.openBlock(),e.createElementBlock("div",To,[e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":i[0]||(i[0]=d=>a.value=d),min:r.min,max:r.max,step:r.step,disabled:r.disabled,ref:"range",class:e.normalizeClass(["w-full cursor-pointer accent-blue-500",[r.modelValue?"":"text-opacity-50",e.unref(n)].join(" ")])},null,10,Ro),[[e.vModelText,a.value]]),e.withDirectives(e.createElementVNode("input",{class:"text-sm text-gray-600 border border-solid border-stone-200 rounded-md p-2 max-w-[100px]",type:"number","onUpdate:modelValue":i[1]||(i[1]=d=>a.value=d)},null,512),[[e.vModelText,a.value]])]))}}),gt={VsInputText:xe,VsInputRadio:Re,"vs-input-text":xe,"vs-input-password":ps,"vs-input-textarea":ot,"vs-input-mask":Ye,"vs-input-number":Ke,"vs-input-radio":Re,"vs-input-select":Oe,"vs-input-switcher":Le,"vs-input-static":Te,"vs-input-container":rt,"vs-input-date":Xe,"vs-input-checkbox":We,"vs-input-file":nt,"vs-input-html":Te,"vs-input-email":Je,"vs-input-datatable":dt,"vs-input-map":ut,"vs-input-file-list":lt,"vs-input-tag":ct,"vs-input-slug":pt,"vs-input-key-value":ht,"vs-input-range":ft,"vs-input-color":mt,"vs-input-native-select":Oe},Oo=e.defineComponent({__name:"behavior",props:{api:{},set:{},button:{},error:{},value:{}},setup(o){const t=o,s=e.inject("values");async function n(){try{if(!t.api)return;const l=t.api.replace("{{value}}",t.value),a=await fetch(l);if(!a.ok){G.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const r=await a.json();if(!t.set||!s)return;for(const[i,d]of Object.entries(t.set))s.value[i]=r.result[d]}catch(l){console.error(t.error,l)}}return(l,a)=>(e.openBlock(),e.createElementBlock("button",{onClick:n,class:"vs-button relative inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-blue-500 hover:border-blue-500 hover:bg-blue-500 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 ml-0 md:ml-2 mt-2 md:mt-0 py-[8px] md:w-2/4 whitespace-nowrap w-full"},e.toDisplayString(l.button),1))}}),kt=e.defineComponent({__name:"vs-compact-form-layout",props:e.mergeModels({item:{default:{}},layout:{default:"default"},style:{default:{}},type:{default:""},error:{type:[String,Boolean]}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,s=e.useModel(o,"modelValue"),n=e.computed(()=>us[`${t.layout}`]),l=e.computed(()=>gt?.[`vs-input-${t.item.type}`]),a=e.computed(()=>{const i=e.unref(l);if(!i)return new Set;const d=i.props??i.__vccOpts?.props;if(!d)return new Set;const u=Array.isArray(d)?d:Object.keys(d);return new Set(u)}),r=e.computed(()=>{const i=t.item??{},d=a.value;return d.size?Object.fromEntries(Object.entries(i).filter(([u])=>d.has(u))):{}});return(i,d)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.value),{ua:t.item.ua,error:t.error||"",item:i.item,label:t.item.label},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["flex w-full",`${t.item.type}-component`])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),e.mergeProps(r.value,{modelValue:s.value,"onUpdate:modelValue":d[0]||(d[0]=u=>s.value=u)}),null,16,["modelValue"])),i.item.behavior?.api&&i.item.behavior?.button?(e.openBlock(),e.createBlock(Oo,e.mergeProps({key:0},i.item.behavior,{value:s.value}),null,16,["value"])):e.createCommentVNode("",!0)],2)]),_:1},8,["ua","error","item","label"]))}}),bt={required:"Це поле є обов’язковим",email:"Неправильний email"},zo=o=>o?!1:bt.required,jo=o=>!o&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(o)?bt.email:!1,Uo=(o,t)=>{const s=t.pattern??t.regexp;return!(typeof s=="string"?new RegExp(s):s).test(o)&&o?t.message:!1},Po=(o,t)=>!1,Ho=(o,t)=>{switch(typeof t=="string"?t:t.type){case"required":return zo(o);case"email":return jo(o);case"regexp":return Uo(o,t);case"custom":return Po();default:return!1}},Go={autocomplete:"select",combobox:"select",datepicker:"date",markedtext:"mask",html:"static",geom:"map",filelist:"file-list",datalist:"datatable",file:"file"};function yt(o){const t=o.toLowerCase();return Go[t]||t}function qo(o,t=!1){if(Array.isArray(o)){const n=[];return o.forEach(l=>{const a={...l};a.name=(l.name||l.id||l.key||"").toString(),a.type=yt(l.type),a.label=l.label||l.ua,a.rules=l.rules||l.validators,l.data&&(a.api=`/api/suggest/${l.data}`),a.disabled=t,n.push(a)}),n}const s=[];return Object.entries(o).forEach(n=>{const l={name:n[0],...n[1],type:yt(n[1].type),label:n[1].label||n[1].ua,rules:n[1].rules||n[1].validators,disabled:t};n[1].type.includes("list")&&(l.multiple=!0),!l.api&&n[1].data&&(l.api=`/api/suggest/${n[1].data}`),s.push(l)}),s}function Ko(o,t,s=!1){const n=e.computed(()=>qo((Array.isArray(t),t),typeof s=="boolean"?s:s.value)),l=e.ref({});function a(u){const c=u?.conditions;if(!c)return!0;const p=Array.isArray(c)?c[0]:c,m=o?.value?.[p];return at(m,c)}const r=(u=n.value,c=!0)=>(u.forEach(p=>{if(p.rules){if(!a(p)){delete l.value[p.name];return}p.rules.forEach(m=>{const x=Ho(o.value[p.name],m);x?l.value[p.name]=x:delete l.value[p.name]})}p.schema&&r(p.schema,!1)}),c&&Object.values(l.value).some(Boolean)?l.value:null),i=e.computed(()=>n.value?.filter(u=>a(u)));return{errors:l,validate:r,reset:()=>{o.value={},l.value={}},visibleSchema:i}}const Zo={key:0,"data-orientation":"horizontal",role:"none",class:"mt-1 shrink-0 h-[1px] w-full bg-slate-100 dark:bg-slate-600"},me=e.defineComponent({__name:"vs-compact-form",props:e.mergeModels({schema:{default:()=>[]},style:{default:()=>({})},modelValue:{},layout:{default:()=>"default"},formId:{default:()=>""},disabled:{type:Boolean,default:!1}},{form:{default:()=>({})},formModifiers:{},values:{default:()=>({})},valuesModifiers:{}}),emits:e.mergeModels(["handle-submit","update:modelValue"],["update:form","update:values"]),setup(o,{expose:t,emit:s}){const n=s,l=o,a=e.useModel(o,"form"),r=e.useModel(o,"values"),{errors:i,validate:d,reset:u,visibleSchema:c}=Ko(r,l.schema,e.toRef(l,"disabled")),p=()=>{n("update:modelValue",r.value),d(),n("handle-submit",r.value)};t({validate:d,reset:u,errors:i}),e.onMounted(()=>{l.modelValue&&(r.value=l.modelValue),a.value.value=r.value,a.value.errors=i.value,a.value.reset=u,a.value.validate=d,a.value.formId=l.formId});function m(x,B){if(x===B)return!0;if(typeof x!="object"||typeof B!="object"||!x||!B)return!1;const D=Object.keys(x),V=Object.keys(B);return D.length!==V.length?!1:D.every(M=>x[M]===B[M])}return e.provide("form",a),e.provide("values",r),e.watch(a.value,x=>{console.log("form",x)}),(x,B)=>(e.openBlock(),e.createElementBlock("form",{onSubmit:e.withModifiers(p,["prevent"]),class:e.normalizeClass(["grid grid-cols-12",x.layout==="default"?"gap-6":"gap-4"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(c),(D,V)=>(e.openBlock(),e.createElementBlock("div",{key:D.name,class:e.normalizeClass(x.layout==="horizontal"?"col-span-12":`col-span-${D.col||12}`)},[e.createVNode(kt,{style:e.normalizeStyle(x.style),item:D,layout:x.layout,"model-value":r.value[D.name],"onUpdate:modelValue":M=>{const N=r.value[D.name];m(N,M)||(r.value[D.name]=M)},error:e.unref(i)[D.name]},null,8,["style","item","layout","model-value","onUpdate:modelValue","error"]),x.layout==="settings"&&V+1!==e.unref(c).length?(e.openBlock(),e.createElementBlock("div",Zo)):e.createCommentVNode("",!0)],2))),128))],34))}}),Yo={class:"relative"},Jo={class:"w-full h-full fixed top-0 start-0 z-[1000] bg-black bg-opacity-50"},Wo={class:"m-[10px] fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 min-h-0 h-fit max-h-[80vh] overflow-hidden opacity-1 flex flex-col bg-white dark:bg-[#1A1A1A] border dark:border-[#454545] pointer-events-auto shadow-[0_10px_40px_10px_rgba(0,0,0,0.08)] rounded-xl lg:w-7/12 w-11/12"},Xo={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},Qo={class:"font-medium text-gray-800 dark:text-[#ffffff]"},ei={class:"p-4 mim-h-0 h-full overflow-auto"},xt=e.defineComponent({__name:"modal-edit",props:{schema:{},defaultValue:{},mode:{},token:{},form:{}},emits:["close","save","edit"],setup(o,{emit:t}){const s=o,n=t,l=e.ref(s.schema),a=e.ref(s.defaultValue?JSON.parse(JSON.stringify(s.defaultValue)):{}),r=e.ref({}),i=e.ref(),d=e.ref(s.mode);async function u(){const p=r.value.validate();if(p){G.notify({type:"warning",title:"Помилка валідації",message:Object.entries(p).map(([m,x])=>`${m}: ${x}`).join(`
2
+ `)});return}j==="add"?Array.isArray(s.value)?s.value=[...s.value,_.value]:s.value=[_.value]:s.value=s.value.map((C,v)=>v===U?_.value:C),h.value=!1}function pe(F){s.value=s.value.filter((C,v)=>v!==F)}return(F,C)=>(e.openBlock(),e.createElementBlock("div",Va,[e.createElementVNode("div",Ca,[e.createElementVNode("div",va,[e.createVNode(ea,{width:"14",height:"14",class:"absolute left-3 top-1/2 transform -translate-y-1/2 text-stone-500"}),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":C[0]||(C[0]=v=>l.value=v),placeholder:"Пошук",class:"py-2 px-3 pl-10 w-full bg-gray-100 h-[36px] rounded-[8px] text-[15px] leading-[18px] focus:border-1 text-stone-800 placeholder:text-[#6B7280] focus:outline-blue-500 focus:outline-2"},null,512),[[e.vModelText,l.value]])]),e.createElementVNode("div",Ba,[e.createElementVNode("input",{ref_key:"fileInput",ref:u,onChange:M,class:"hidden",accept:".json",type:"file"},null,544),e.createElementVNode("div",Na,[e.createElementVNode("div",Sa,[e.createElementVNode("div",Ma,[e.createElementVNode("button",{onClick:B,class:"bg-white hover:bg-gray-100 font-semibold text-[15px] leadig-[18.5px] py-[10px] px-[12px] border border-[#E5E7EB] rounded-[8px] h-[38px] max-h-[38px] gap-[8px] flex items-center"},[e.createVNode(la,{height:"16",width:"16"})])])])])]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[d.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"text-slate-700 vsTailwind vs-popover__content bottom",style:e.normalizeStyle([{width:"fit-content","z-index":"10002",position:"fixed"},{position:"absolute",top:c.value.top+"px",left:c.value.left+"px"}])},[e.createElementVNode("div",Fa,[e.createElementVNode("div",Aa,[e.createElementVNode("button",{onClick:D,class:"text-slate-700 flex items-center gap-1 px-3 py-2 rounded-md cursor-pointer group hover:bg-gray-100"},[e.createVNode(ia,{class:"text-black",width:"14",height:"14"}),C[4]||(C[4]=e.createTextVNode(" Імпортувати ",-1))]),e.createElementVNode("button",{onClick:N,class:"text-slate-700 flex items-center px-3 py-2 rounded-md cursor-pointer group hover:bg-gray-100"},[e.createElementVNode("span",$a,[e.createVNode(pa,{class:"text-black",width:"14",height:"14"}),C[5]||(C[5]=e.createTextVNode(" Експортувати ",-1))])])])])],4)):e.createCommentVNode("",!0)])),e.createElementVNode("button",{onClick:Z,class:"text-slate-700 bg-white hover:bg-gray-100 font-semibold text-[15px] leadig-[18.5px] py-[10px] px-[12px] border border-[#E5E7EB] rounded-[8px] h-[38px] max-h-[38px] gap-[8px] flex items-center"},[e.createVNode(_e),C[6]||(C[6]=e.createTextVNode(" Додати ",-1))])]),e.createElementVNode("div",Da,[e.createElementVNode("table",Ia,[e.createElementVNode("thead",La,[e.createElementVNode("tr",Ta,[e.createElementVNode("th",Ra,[e.createVNode(it,{width:"24",height:"24",class:"w-4 h-4 mx-auto text-slate-400 dark:text-slate-500"})]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(F.colModel,v=>(e.openBlock(),e.createElementBlock("th",{key:v.key,class:"h-10 px-2 text-left align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px] font-semibold text-slate-700 dark:text-slate-300 min-w-[150px]"},e.toDisplayString(v.ua||v.label),1))),128)),C[7]||(C[7]=e.createElementVNode("th",{class:"h-10 px-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px] font-semibold text-slate-700 dark:text-slate-300 text-center"}," Дії ",-1))])]),e.createElementVNode("tbody",{class:e.normalizeClass({"[&_tr:last-child]:border-0":!i.value})},[a.value.length===0?(e.openBlock(),e.createElementBlock("td",Oa,[e.createElementVNode("div",za,[e.createElementVNode("div",ja,[e.createVNode(ya,{class:"w-48 mx-auto"}),C[8]||(C[8]=e.createElementVNode("div",{class:"max-w-sm mx-auto mt-6"},[e.createElementVNode("p",{class:"font-medium text-gray-800 dark:text-neutral-200"},"Нічого не знайдено"),e.createElementVNode("p",{class:"mt-2 text-sm text-gray-500 dark:text-neutral-500"})],-1))])])])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(v,O)=>(e.openBlock(),e.createElementBlock("tr",{key:v.id,class:e.normalizeClass(["border-b data-[state=selected]:bg-muted transition-all duration-200 hover:bg-slate-50/60 dark:hover:bg-slate-700/60 cursor-move",{"opacity-50":r.value===O,"border-t-2 border-b-2 border-blue-500 bg-blue-50 dark:bg-blue-900/20":i.value===O}]),draggable:"true",onDragstart:P=>p(O),onDragover:e.withModifiers(P=>m(O),["prevent"]),onDrop:P=>x(O)},[e.createElementVNode("td",Pa,[e.createElementVNode("div",Ha,[e.createVNode(it,{width:"24",height:"24",class:"w-4 h-4 mx-auto text-slate-400 dark:text-slate-500"})])]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(F.colModel,P=>(e.openBlock(),e.createElementBlock("td",{key:P.key,class:"p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]"},[P.type==="file"?(e.openBlock(),e.createElementBlock("div",Ga,[V(W(v,P))?(e.openBlock(),e.createElementBlock("div",qa,[e.createElementVNode("img",{src:W(v,P),alt:"alt",width:"45",class:"rounded-md max-w-[45px] h-[45px] object-cover"},null,8,Ka)])):(e.openBlock(),e.createElementBlock("div",Za,[e.createVNode(et,{class:"w-[25px] min-w-[25px] h-[25px]"})]))])):P.type==="tiptap-editor"?(e.openBlock(),e.createElementBlock("div",{key:1,class:"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-slate-100 dark:bg-slate-700 text-slate-700 dark:text-slate-300 hover:bg-slate-200 dark:hover:bg-slate-600 transition-colors",innerHTML:W(v,P)},null,8,Ya)):(e.openBlock(),e.createElementBlock("div",Ja,e.toDisplayString(W(v,P)),1))]))),128)),e.createElementVNode("td",Wa,[e.createElementVNode("div",Xa,[e.createElementVNode("button",{onClick:P=>se(v,O),class:"text-slate-700 inline-flex items-center justify-center whitespace-nowrap font-medium focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 border rounded-md text-xs h-7 w-7 p-0 border-slate-300 dark:border-slate-600 bg-white dark:bg-slate-700 hover:bg-blue-50 dark:hover:bg-slate-600 hover:border-blue-300 dark:hover:border-slate-500 hover:text-blue-600 dark:hover:text-slate-200 transition-all duration-200 shadow-sm"},[e.createVNode(Ea,{width:"24",height:"24",class:"w-3 h-3"})],8,Qa),e.createElementVNode("button",{onClick:P=>pe(O),class:"text-slate-700 inline-flex items-center justify-center whitespace-nowrap font-medium focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 border rounded-md text-xs h-7 w-7 p-0 border-slate-300 dark:border-slate-600 bg-white dark:bg-slate-700 hover:bg-red-50 dark:hover:bg-slate-600 hover:border-red-300 dark:hover:border-slate-500 hover:text-red-600 dark:hover:text-slate-200 transition-all duration-200 shadow-sm"},[e.createVNode(Se,{width:"24",height:"24",class:"w-3 h-3"})],8,er)])])],42,Ua))),128))],2)])]),e.createVNode(e.unref(G.VsModal),{visible:h.value,title:b.value,size:"lg"},{default:e.withCtx(()=>[e.createVNode(me,{schema:t.colModel,values:_.value,"onUpdate:values":C[1]||(C[1]=v=>_.value=v),form:J.value,"onUpdate:form":C[2]||(C[2]=v=>J.value=v)},null,8,["schema","values","form"]),e.createElementVNode("div",tr,[e.createElementVNode("button",{type:"button",onClick:C[3]||(C[3]=v=>h.value=!1),class:"vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-red-500 hover:border-red-500 hover:bg-red-500 focus:ring-red-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 mr-2"}," Скасувати "),e.createElementVNode("button",{onClick:ie,type:"button",class:"vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border-1 border-transparent text-white bg-blue-500 hover:bg-blue-600 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1"}," Зберегти ")])]),_:1},8,["visible","title"])]))}}),sr={draw:{toolbar:{actions:{title:"Скасувати малювання",text:"Скасувати"},finish:{title:"Завершити малювання",text:"Завершити"},undo:{title:"Видалити останню точку",text:"Видалити останню"},buttons:{polyline:"Намалювати лінію",polygon:"Намалювати полігон",rectangle:"Намалювати прямокутник",circle:"Намалювати коло",marker:"Додати точку",circlemarker:"Додати маркер-коло"}},handlers:{circle:{tooltip:{start:"Клацніть і тягніть, щоб намалювати коло",end:"Відпустіть кнопку миші, щоб завершити"},radius:"Радіус"},circlemarker:{tooltip:{start:"Клацніть на карту, щоб додати маркер-коло"}},marker:{tooltip:{start:"Клацніть на карту, щоб додати точку"}},polygon:{tooltip:{start:"Клацніть, щоб почати малювати полігон",cont:"Клацайте, щоб продовжити малювати полігон",end:"Клацніть першу точку, щоб завершити полігон"}},polyline:{error:"<strong>Помилка:</strong> лінія не може перетинатися сама з собою",tooltip:{start:"Клацніть, щоб почати малювати лінію",cont:"Клацайте, щоб продовжити малювати лінію",end:"Клацніть останню точку, щоб завершити лінію"}},rectangle:{tooltip:{start:"Клацніть і тягніть, щоб намалювати прямокутник",end:"Відпустіть кнопку миші, щоб завершити"}},simpleshape:{tooltip:{end:"Відпустіть кнопку миші, щоб завершити"}}}},edit:{toolbar:{actions:{save:{title:"Зберегти зміни",text:"Зберегти"},cancel:{title:"Скасувати редагування",text:"Скасувати"},clearAll:{title:"Очистити всі шари",text:"Очистити все"}},buttons:{edit:"Редагувати шари",editDisabled:"Немає шарів для редагування",remove:"Видалити шари",removeDisabled:"Немає шарів для видалення"}},handlers:{edit:{tooltip:{text:"Перетягніть маркери, щоб редагувати шари",subtext:"Натисніть 'Скасувати', щоб повернутися"}},remove:{tooltip:{text:"Клацніть на шари, щоб видалити їх"}}}}};function we(o){return o?o.type==="Polygon"?{type:"MultiPolygon",coordinates:[o.coordinates]}:o.type==="Feature"?{...o,geometry:we(o.geometry)}:o.type==="FeatureCollection"?{...o,features:(o.features||[]).map(t=>we(t)).filter(Boolean)}:o:null}function nr(o){return o?o.type==="FeatureCollection"||o.type==="Feature"?we(o):o.geom?{type:"Feature",geometry:we({type:o.geom.type,coordinates:o.geom.coordinates}),properties:{}}:o.type&&o.coordinates?{type:"Feature",geometry:we(o),properties:{}}:null:null}const lr={},ar={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",stroke:"currentColor",fill:"none","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-map-pin"};function rr(o,t){return e.openBlock(),e.createElementBlock("svg",ar,t[0]||(t[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M9 11a3 3 0 1 0 6 0a3 3 0 0 0 -6 0"},null,-1),e.createElementVNode("path",{d:"M17.657 16.657l-4.243 4.243a2 2 0 0 1 -2.827 0l-4.244 -4.243a8 8 0 1 1 11.314 0z"},null,-1)]))}const or=T(lr,[["render",rr]]),ir={},dr={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none","stroke-width":"2",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-line"};function ur(o,t){return e.openBlock(),e.createElementBlock("svg",dr,t[0]||(t[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M6 18m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"},null,-1),e.createElementVNode("path",{d:"M18 6m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"},null,-1),e.createElementVNode("path",{d:"M7.5 16.5l9 -9"},null,-1)]))}const cr=T(ir,[["render",ur]]),pr={},hr={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-polygon"};function mr(o,t){return e.openBlock(),e.createElementBlock("svg",hr,t[0]||(t[0]=[e.createStaticVNode('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M12 5m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M19 8m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M5 11m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M15 19m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M6.5 9.5l3.5 -3"></path><path d="M14 5.5l3 1.5"></path><path d="M18.5 10l-2.5 7"></path><path d="M13.5 17.5l-7 -5"></path>',9)]))}const fr=T(pr,[["render",mr]]),gr={},kr={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-topology-ring-3"};function br(o,t){return e.openBlock(),e.createElementBlock("svg",kr,t[0]||(t[0]=[e.createStaticVNode('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M8 18a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M20 18a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M20 6a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M8 6a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M6 8v8"></path><path d="M18 16v-8"></path><path d="M8 6h8"></path><path d="M16 18h-8"></path>',9)]))}const yr=T(gr,[["render",br]]),xr={},_r={version:"1.1",viewBox:"0 0 14 14",xmlns:"http://www.w3.org/2000/svg","xmlns:sketch":"http://www.bohemiancoding.com/sketch/ns","xmlns:xlink":"http://www.w3.org/1999/xlink",class:"fullscreen-icon"};function wr(o,t){return e.openBlock(),e.createElementBlock("svg",_r,t[0]||(t[0]=[e.createElementVNode("title",null,null,-1),e.createElementVNode("desc",null,null,-1),e.createElementVNode("defs",null,null,-1),e.createElementVNode("g",{fill:"none","fill-rule":"evenodd",id:"Page-1",stroke:"none","stroke-width":"1"},[e.createElementVNode("g",{fill:"#000000",id:"Core",transform:"translate(-215.000000, -257.000000)"},[e.createElementVNode("g",{id:"fullscreen",transform:"translate(215.000000, 257.000000)"},[e.createElementVNode("path",{d:"M2,9 L0,9 L0,14 L5,14 L5,12 L2,12 L2,9 L2,9 Z M0,5 L2,5 L2,2 L5,2 L5,0 L0,0 L0,5 L0,5 Z M12,12 L9,12 L9,14 L14,14 L14,9 L12,9 L12,12 L12,12 Z M9,0 L9,2 L12,2 L12,5 L14,5 L14,0 L9,0 L9,0 Z",id:"Shape"})])])],-1)]))}const Er=T(xr,[["render",wr]]),Vr={class:"form-geom__search"},Cr={class:"map-search__input"},vr={class:"flex flex-nowrap relative"},Br={class:"form-autocomplete relative min-w-[6rem] vsTailwind map-search__select hidden"},Nr={class:"flex items-center w-full"},Sr={class:"max-w-[90%] truncate"},Mr={key:0,class:"absolute z-[3100] mt-0.5 left-0 right-0"},Fr={class:"form-autocomplete__wrapper mt-[10px] z-50 w-full min-w-36 max-h-72 p-0 space-y-0.5 bg-white rounded-xl shadow-[0_10px_40px_10px_rgba(0,0,0,0.08)] dark:bg-neutral-900 top-full opened"},Ar={class:"form-autocomplete__list vsTailwind px-2 pb-2 pt-0 max-h-200 relative [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500 dark:bg-neutral-900"},$r=["onClick"],Dr={class:"flex justify-between items-center w-full"},Ir={class:"flex items-center"},Lr={key:0,class:"flex-shrink-0 w-3.5 h-3.5 text-blue-600",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Tr={class:"relative w-full"},Rr={class:"vs-form-text relative bg-white rounded-lg"},Or={key:1,class:"absolute left-0 right-0 top-full z-[3200] bg-white border border-gray-200 rounded-b-lg shadow-lg max-h-72 overflow-auto"},zr={key:0},jr=["onClick"],Ur={key:1,class:"px-3 py-2 text-xs text-gray-500"},Pr={key:2,class:"px-3 py-2 text-xs text-gray-400"},Hr=e.defineComponent({__name:"map-search",props:{placeholder:{default:"50, 30"}},emits:["goToCoordinates"],setup(o,{emit:t}){const s=t,n=e.ref(!1),l=e.ref("coordinates"),a=e.ref(""),r=e.ref([]),i=e.ref(!1),d=e.ref(!1);let u;const c=[{value:"coordinates",label:"Пошук по кординатам"},{value:"atu",label:"АТУ"},{value:"address",label:"Адресса"},{value:"search_here",label:"Пошук HERE"}],p=e.computed(()=>c.find(N=>N.value===l.value)?.label??"АТУ");function m(N){l.value=N.value,n.value=!1,a.value="",a.value&&D()}function x(N){N.target.closest(".map-search__input")||(n.value=!1)}e.onMounted(()=>document.addEventListener("click",x)),e.onUnmounted(()=>document.removeEventListener("click",x));async function B(N){let b;l.value==="atu"?b="/api/suggest/atu.nsdi.ato_level":l.value==="address"?b="/api/suggest/map.address_id":l.value==="search_here"&&(b="/api/gis-url-proxy");const h=new URL(b||"");return l.value==="search_here"?h.searchParams.set("searchtext",N):(l.value==="atu"||l.value==="address")&&h.searchParams.set("key",N),h.searchParams.set("limit","20"),h.searchParams.set("q",N),(await fetch(h.toString())).json()}function D(){if(i.value=!0,d.value=!0,l.value==="coordinates"){const N=a.value.trim().split(",");if(N.length===2){const b=parseFloat(N[0]),h=parseFloat(N[1]);!Number.isNaN(b)&&!Number.isNaN(h)&&s("goToCoordinates",[b,h])}return}u&&window.clearTimeout(u),u=window.setTimeout(async()=>{const N=a.value.trim();if(!N){r.value=[],d.value=!1;return}try{const b=await B(N);r.value=Array.isArray(b.features)?b.features:[]}catch{r.value=[]}finally{d.value=!1}},300)}function V(){a.value="",r.value=[],i.value=!1,d.value=!1}function M(N){s("goToCoordinates",N),i.value=!1,d.value=!1,r.value=[]}return(N,b)=>(e.openBlock(),e.createElementBlock("div",Vr,[e.createElementVNode("div",Cr,[e.createElementVNode("div",vr,[e.createElementVNode("div",Br,[e.createElementVNode("button",{type:"button",onClick:b[0]||(b[0]=h=>n.value=!n.value),class:"h-[40px] relative px-4 pe-9 flex text-nowrap w-full cursor-pointer bg-white border border-solid border-stone-200 rounded-lg text-start text-sm text-stone-800 focus:outline-none focus:ring-1 focus:ring-blue-600 dark:bg-neutral-800 dark:border-neutral-700 dark:text-neutral-200"},[e.createElementVNode("div",Nr,[e.createElementVNode("span",Sr,e.toDisplayString(p.value),1)]),b[3]||(b[3]=e.createElementVNode("svg",{class:"stroke-gray-500 absolute right-3 translate-y-1/2 bottom-1/2",width:"15",height:"15",viewBox:"0 0 24 24",fill:"none"},[e.createElementVNode("path",{d:"M6 9l6 6 6-6","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"})],-1))]),n.value?(e.openBlock(),e.createElementBlock("div",Mr,[e.createElementVNode("div",Fr,[e.createElementVNode("div",Ar,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(c,h=>e.createElementVNode("div",{onClick:j=>m(h),key:h.value,class:"form-autocomplete__item cursor-pointer hs-selected:bg-stone-100 dark:hs-selected:bg-neutral-800 py-2 px-4 w-full text-sm text-gray-800 hover:bg-gray-100 rounded-lg focus:outline-none focus:bg-stone-100 dark:bg-neutral-900 dark:hover:bg-neutral-800 dark:text-neutral-200 dark:focus:bg-neutral-800 cursor-default"},[e.createElementVNode("div",Dr,[e.createElementVNode("div",Ir,[e.createElementVNode("div",null,e.toDisplayString(h.label),1)]),h.value===l.value?(e.openBlock(),e.createElementBlock("svg",Lr,b[4]||(b[4]=[e.createElementVNode("polyline",{points:"20 6 9 17 4 12"},null,-1)]))):e.createCommentVNode("",!0)])],8,$r)),64))])])])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Tr,[e.createElementVNode("div",Rr,[b[6]||(b[6]=e.createElementVNode("i",{class:"absolute bottom-1/2 translate-y-1/2 left-3 text-gray-500"},[e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor"},[e.createElementVNode("circle",{cx:"11",cy:"11",r:"8","stroke-width":"2"}),e.createElementVNode("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65","stroke-width":"2"})])],-1)),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":b[1]||(b[1]=h=>a.value=h),onInput:D,onFocus:b[2]||(b[2]=h=>i.value=!0),placeholder:"lat, lng ex. 50, 30",class:"bg-white h-[38px] text-sm py-2 px-3 ps-9 pe-8 block w-full border border-solid placeholder:text-nowrap border-stone-200 rounded-lg text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,544),[[e.vModelText,a.value]]),a.value?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:V,class:"absolute right-2 bottom-1/2 translate-y-1/2 text-gray-500 hover:text-red-500","aria-label":"Очистити",type:"button"},b[5]||(b[5]=[e.createElementVNode("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{d:"M18 6L6 18M6 6l12 12","stroke-linecap":"round","stroke-linejoin":"round"})],-1)]))):e.createCommentVNode("",!0),i.value&&l.value!=="coordinates"?(e.openBlock(),e.createElementBlock("div",Or,[r.value.length?(e.openBlock(),e.createElementBlock("ul",zr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,h=>(e.openBlock(),e.createElementBlock("li",{key:h.properties.place_id,onClick:j=>M(h),class:"px-3 py-2 text-sm cursor-pointer hover:bg-gray-100"},e.toDisplayString(h.properties.display_name),9,jr))),128))])):d.value?(e.openBlock(),e.createElementBlock("div",Ur,"Шукаю…")):(e.openBlock(),e.createElementBlock("div",Pr,"Нічого не знайдено"))])):e.createCommentVNode("",!0)])])])])]))}}),Gr={class:"bg-white/95 p-2 rounded-xl shadow border border-gray-200"},qr={class:"flex gap-2"},Kr=["onClick","title"],Zr=["src"],Yr=e.defineComponent({__name:"map-layers",props:{basemaps:{}},emits:["onLayerChange"],setup(o,{emit:t}){const s=o,n=e.ref(Object.keys(s.basemaps)[0]),l=t;function a(r){l("onLayerChange",r),n.value=r}return(r,i)=>(e.openBlock(),e.createElementBlock("div",Gr,[e.createElementVNode("div",qr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.basemaps,(d,u)=>(e.openBlock(),e.createElementBlock("div",{key:u,class:e.normalizeClass(["cursor-pointer border rounded-lg overflow-hidden hover:shadow-sm",{"ring-2 ring-blue-500 border-blue-300":n.value===u}]),onClick:c=>a(u),title:d.name||u,role:"button",tabindex:"0"},[e.createElementVNode("img",{src:d.preview,alt:"",class:"w-14 h-14 object-cover"},null,8,Zr)],10,Kr))),128))])]))}}),Jr={class:"absolute top-4 left-4 z-[1000] w-[calc(100%-20px)] sm:w-[350px]"},Wr={class:"form-geom__panel flex gap-1 items-start mt-2"},Xr={class:"flex items-center gap-1"},Qr=["disabled"],eo={class:"absolute top-4 right-4 z-[1000]"},to={class:"flex flex-col gap-[2px]"},so=["aria-pressed"],no=["aria-pressed"],lo=["aria-pressed"],ao=["aria-pressed"],ro={class:"absolute bottom-0 left-0 right-0 z-[1000] bg-white/95 border-t border-gray-200 text-xs text-gray-700 flex items-center gap-4 pt-1"},oo={key:0,class:"form-geom__feature flex items-center text-xs transition-all gap-2 w-full"},io={class:"mr-auto"},uo={class:"font-bold"},co={class:"flex items-center"},po={class:"text-xs mr-2"},ho={key:0,class:"text-xs"},mo={key:1,class:"text-xs"},ut=T(e.defineComponent({__name:"vs-input-map",props:{tools:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{}},emits:["update:modelValue"],setup(o,{emit:t}){const s=e.getCurrentInstance(),n=o,l=t,a=e.ref(null);let r,i,d;const u=e.ref(null),c=e.ref(null),p=e.ref(6),m=e.ref(0),x=e.ref(s?.appContext.config.globalProperties.$settings?.center||[50,30]),B=e.ref(null),D=he();let V;const M=e.ref("topo100");function N(g){return g?g.type==="Polygon"?{type:"MultiPolygon",coordinates:[g.coordinates]}:(g.type==="MultiPolygon",g):null}function b(){return new Promise((g,y)=>{window.L&&window.L.Draw&&g(0);const $=H=>{if(Array.from(document.styleSheets).some(fe=>fe?.href?.includes(H)))return;const ne=document.createElement("link");ne.rel="stylesheet",ne.href=H,document.head.appendChild(ne)},z=H=>new Promise((oe,ne)=>{const fe=Array.from(document.scripts).find(ke=>ke.src===H);if(fe){fe.addEventListener("load",()=>oe()),fe.addEventListener("error",ke=>ne(ke));return}const ge=document.createElement("script");ge.src=H,ge.async=!0,ge.onload=()=>oe(),ge.onerror=ke=>ne(ke),document.body.appendChild(ge)});$("https://unpkg.com/leaflet@1.9.4/dist/leaflet.css"),$("https://unpkg.com/leaflet-draw@1.0.4/dist/leaflet.draw.css"),z("https://unpkg.com/leaflet@1.9.4/dist/leaflet.js").then(()=>z("https://unpkg.com/leaflet-draw@1.0.4/dist/leaflet.draw.js")).then(()=>g(0)).catch(y)})}function h(){const g=i.toGeoJSON(),y=[],$=H=>{if(H)switch(H.type){case"Polygon":y.push(H.coordinates);break;case"MultiPolygon":y.push(...H.coordinates);break;case"GeometryCollection":(H.geometries||[]).forEach($);break}};(g?.features||[]).forEach(H=>$(H.geometry));const z=y.length?{type:"MultiPolygon",coordinates:y}:null;l("update:modelValue",z?N(z):null),m.value=i.getLayers().length}function j(g=30){const y=i.getLayers();if(!y.length)return;const z=L.featureGroup(y).getBounds();z&&z.isValid()&&r.fitBounds(z,{padding:[g,g]})}function U(){u.value?.click()}const _=e.ref("");function J(g){return g instanceof L.Circle?"Circle":g instanceof L.Rectangle?"Rectangle":g instanceof L.Polygon&&!(g instanceof L.Rectangle)?"Polygon":g instanceof L.Polyline&&!(g instanceof L.Polygon)?"Polyline":g instanceof L.Marker?"Point":"Feature"}function Z(g){if(g instanceof L.Circle){const y=g.getRadius();return Math.PI*(y*y)/1e6}if(g instanceof L.Polygon||g instanceof L.Rectangle)try{const y=g.getLatLngs(),$=Array.isArray(y[0])?y[0]:y,z=L.GeometryUtil?.geodesicArea?L.GeometryUtil.geodesicArea($):0;return z?z/1e6:0}catch{return null}return null}function W(g){return g instanceof L.Circle?g.getLatLng():g.getBounds?g.getBounds().getCenter():g.getLatLng?g.getLatLng():r.getCenter()}function se(){const g=i.getLayers();if(!g.length){B.value=null,m.value=0;return}const y=g[g.length-1],$=J(y),z=W(y),H=Z(y);B.value={type:$,center:z,areaKm2:H,layer:y},m.value=g.length}function ie(){const g=B.value?.layer;g&&(g instanceof L.Circle&&g.getBounds?r.fitBounds(g.getBounds(),{padding:[30,30]}):g.getBounds?r.fitBounds(g.getBounds(),{padding:[30,30]}):g.getLatLng&&r.setView(g.getLatLng(),Math.max(p.value,14)))}function pe(){const g=B.value?.layer;g&&(i.removeLayer(g),h(),se())}e.onMounted(async()=>{await b(),L.drawLocal=sr,r=L.map(a.value,{zoomControl:!1}).setView(x.value,10),L.control.zoom({position:"bottomright"}).addTo(r),M.value=Object.keys(D)[0],V=L.tileLayer(D[M.value].url,{maxZoom:19,minZoom:6}).addTo(r),i=new L.FeatureGroup().addTo(r),r.on(L.Draw.Event.CREATED,$=>{const{layer:z}=$;i.clearLayers(),i.addLayer(z),h(),se(),j(),_.value=""}),r.on(L.Draw.Event.EDITED,()=>{h(),se(),j()}),r.on(L.Draw.Event.DELETED,()=>{h(),se(),j()});let g=!1;r.on("mousemove",$=>{g||(r.invalidateSize(),g=!0),c.value=$.latlng}),r.on("zoomend",()=>{p.value=r.getZoom()});const y=nr(n.modelValue);if(y){const $=[];L.geoJSON(y).eachLayer(z=>$.push(z)),$.length&&i.addLayer($[0]),h(),se(),j()}});function F(g){if(r){switch(d&&d.disable(),g){case"marker":d=new L.Draw.Marker(r);break;case"polyline":d=new L.Draw.Polyline(r);break;case"polygon":d=new L.Draw.Polygon(r);break;case"rectangle":d=new L.Draw.Rectangle(r);break;default:d=new L.Draw.Rectangle(r);break}d&&(d.enable(),_.value=g)}}function C(){const g=i.toGeoJSON(),y=new Blob([JSON.stringify(g,null,2)],{type:"application/json"}),$=URL.createObjectURL(y),z=document.createElement("a");z.href=$,z.download="data.geojson",z.click(),URL.revokeObjectURL($)}function v(g){const y=g.target.files?.[0];if(!y)return;const $=new FileReader;$.onload=()=>{if(typeof $.result=="string")try{const z=JSON.parse($.result);i.clearLayers(),z&&L.geoJSON({type:"Feature",geometry:z}).eachLayer(H=>{i.addLayer(H)}),h(),se(),j()}finally{g.target.value=""}},$.readAsText(y)}function O(g){r&&(V&&r.removeLayer(V),V=L.tileLayer(D[g].url,{maxZoom:19,minZoom:6}).addTo(r),M.value=g)}function P(g){const y=L.latLng(g[0],g[1]);r.setView(y,13)}e.watch(()=>n.modelValue,g=>{console.log("update map");const y=N(g);if(g&&y!==g){l("update:modelValue",y);return}i.clearLayers(),y&&L.geoJSON({type:"Feature",geometry:y}).eachLayer($=>{i.addLayer($),$.dragging?.enable(),$.dragging?.enabled(),$.on("dragend",z=>{const oe=z.target.getLatLng();l("update:modelValue",{type:"Point",coordinates:[oe.lng,oe.lat]})})}),m.value=i.getLayers().length,se(),j()});function he(){return s?.appContext.config.globalProperties.$settings?.basemaps?s?.appContext.config.globalProperties.$settings?.basemaps.map((g,y)=>Object.assign(g,{key:`b${y}`,preview:g.preview||g.url.replace("{z}/{x}/{y}.png","13/4790/2762.png")})).reduce((g,y)=>({...g,[y.key]:y}),{}):{topo100:{url:"https://data.gki.com.ua/api-user/rtile/voyager/ua/{z}/{x}/{y}.png",preview:"https://data.gki.com.ua/api-user/rtile/voyager/ua/13/4790/2762.png"},orto10:{url:"https://data.gki.com.ua/api-user/rtile/orto10/ua/{z}/{x}/{y}.png",preview:"https://data.gki.com.ua/api-user/rtile/orto10/ua/13/4790/2762.png"},osmb:{url:"https://tile.openstreetmap.org.ua/styles/osm-bright/{z}/{x}/{y}.png",preview:"https://tile.openstreetmap.org.ua/styles/osm-bright/13/4790/2762.png"}}}const de=e.ref(!1);return e.watch(de,()=>{setTimeout(()=>{r.invalidateSize()},50)}),(g,y)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["leaflet-map-wrapper relative w-full h-[400px]",{fullscreen:de.value}])},[e.createElementVNode("div",{ref_key:"mapContainer",ref:a,class:"w-full h-full"},null,512),e.createElementVNode("div",Jr,[e.createVNode(Hr,{onGoToCoordinates:P}),e.createElementVNode("div",Wr,[e.createElementVNode("div",Xr,[e.createElementVNode("button",{type:"button",class:"vs-btn-row",onClick:U},"Import"),e.createElementVNode("button",{type:"button",class:"vs-btn-row",onClick:C,disabled:m.value===0},"Export ",8,Qr)]),e.createElementVNode("input",{ref_key:"importRef",ref:u,type:"file",onChange:v,accept:".json,.geojson",class:"hidden"},null,544)])]),e.createElementVNode("div",eo,[e.createElementVNode("div",to,[e.createElementVNode("button",{class:e.normalizeClass(["vs-btn",{"vs-active":_.value==="marker"}]),"aria-pressed":_.value==="marker",title:"Point (P)","aria-label":"Draw point",onClick:y[0]||(y[0]=$=>F("marker"))},[e.createVNode(or)],10,so),e.createElementVNode("button",{class:e.normalizeClass(["vs-btn",{"vs-active":_.value==="polyline"}]),"aria-pressed":_.value==="polyline",title:"Line (L)","aria-label":"Draw polyline",onClick:y[1]||(y[1]=$=>F("polyline"))},[e.createVNode(cr)],10,no),e.createElementVNode("button",{class:e.normalizeClass(["vs-btn",{"vs-active":_.value==="polygon"}]),"aria-pressed":_.value==="polygon",title:"Polygon (G)","aria-label":"Draw polygon",onClick:y[2]||(y[2]=$=>F("polygon"))},[e.createVNode(fr)],10,lo),e.createElementVNode("button",{class:e.normalizeClass(["vs-btn",{"vs-active":_.value==="rectangle"}]),"aria-pressed":_.value==="rectangle",title:"Rectangle (R)","aria-label":"Draw rectangle",onClick:y[3]||(y[3]=$=>F("rectangle"))},[e.createVNode(yr)],10,ao),e.createElementVNode("button",{class:"vs-btn mt-5",onClick:y[4]||(y[4]=$=>{de.value=!de.value}),title:"Full Screen","aria-label":"Full Screen"},[e.createVNode(Er,{style:{width:"12px",height:"12px"}})])])]),e.createElementVNode("div",{class:e.normalizeClass(["absolute left-4 z-[1000]",B.value?"bottom-8":"bottom-4"])},[e.createVNode(Yr,{basemaps:e.unref(D),onOnLayerChange:O},null,8,["basemaps"])],2),e.createElementVNode("div",ro,[B.value?(e.openBlock(),e.createElementBlock("div",oo,[e.createElementVNode("div",io,[y[7]||(y[7]=e.createTextVNode(" Тип: ",-1)),e.createElementVNode("span",uo,e.toDisplayString(B.value.type),1)]),e.createElementVNode("div",co,[e.createElementVNode("div",po,[y[8]||(y[8]=e.createTextVNode(" Центр: ",-1)),e.createElementVNode("b",null,e.toDisplayString(B.value.center.lat.toFixed(5))+", "+e.toDisplayString(B.value.center.lng.toFixed(5)),1)]),B.value.areaKm2!==null?(e.openBlock(),e.createElementBlock("div",ho,[y[9]||(y[9]=e.createTextVNode(" Площа: ",-1)),e.createElementVNode("b",null,e.toDisplayString(B.value.areaKm2.toFixed(1))+"км²",1)])):(e.openBlock(),e.createElementBlock("div",mo,y[10]||(y[10]=[e.createTextVNode(" Площа: ",-1),e.createElementVNode("b",null,"—",-1)]))),e.createElementVNode("button",{class:"tool bg-gray-100 py-1.5 px-2 rounded-lg text-md mr-1 cursor-pointer hover:bg-blue-500 hover:text-white transition-all",title:"Наблизити",onClick:y[5]||(y[5]=$=>ie())},y[11]||(y[11]=[e.createStaticVNode('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-3 h-3" data-v-44f47a6f><path d="M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0" data-v-44f47a6f></path><path d="M7 10l6 0" data-v-44f47a6f></path><path d="M10 7l0 6" data-v-44f47a6f></path><path d="M21 21l-6 -6" data-v-44f47a6f></path></svg>',1)])),e.createElementVNode("button",{class:"tool bg-gray-100 py-1.5 px-2 rounded-lg text-md cursor-pointer hover:bg-blue-500 hover:text-white transition-all",title:"Видалити",onClick:y[6]||(y[6]=$=>pe())},[e.createVNode(Se,{class:"w-3 h-3"})])])])):e.createCommentVNode("",!0)])],2))}}),[["__scopeId","data-v-44f47a6f"]]),fo=["data-focus"],go={class:"flex items-center"},ko={class:"overflow-hidden text-ellipsis whitespace-nowrap rounded-sm text-[#333] text-[85%] px-0.5 py-[3px] pl-1.5 box-border"},bo=["onClick","aria-label"],yo={key:0,class:"absolute text-gray-500 truncate pl-2"},xo={class:"flex-1 min-w-[2px]"},_o=["placeholder"],wo={class:"flex items-center shrink-0"},Eo=["disabled"],ct=e.defineComponent({__name:"vs-input-tag",props:e.mergeModels({unique:{type:Boolean,default:!0},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:"Введіть тег"}},{modelValue:{default:[]},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue"],["update:modelValue"]),setup(o,{emit:t}){const s=o,n=t;te(s.style);const l=e.ref(null),a=e.ref(null),r=e.ref(null),i=e.ref(!1),d=e.ref(""),u=e.useModel(o,"modelValue"),c=e.computed(()=>s.placeholder||"Add tag…"),p=e.computed(()=>u.value?.length===0&&d.value===""),m=e.computed(()=>!s.disabled&&u.value?.length>0),x=e.computed(()=>s.disabled),B=async()=>{x.value||await e.nextTick(()=>r.value?.focus())},D=U=>{const _=U.trim();_!==""&&(!u.value||!Array.isArray(u.value)?u.value=[_]:s.unique?u.value.includes(_)||(u.value=[...u.value,_]):u.value=[...u.value,_],d.value="")},V=()=>{const U=d.value;U.trim()!==""&&D(U),d.value=""},M=U=>{const _=u.value.slice();_.splice(U,1),n("update:modelValue",_)},N=()=>{n("update:modelValue",[])},b=()=>{x.value||(i.value=!0)},h=()=>{i.value=!1},j=U=>{const{key:_}=U;_==="Enter"?(U.preventDefault(),V()):_==="Backspace"&&d.value===""&&u.value.length>0&&M(u.value.length-1)};return(U,_)=>(e.openBlock(),e.createElementBlock("div",{class:"flex gap-1 w-full",ref_key:"root",ref:l,onClick:_[1]||(_[1]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",s.customClass]),role:"group","aria-label":"Tag input"},[e.createElementVNode("div",{class:e.normalizeClass(["flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white","border-gray-300 hover:border-gray-400",i.value?"border-blue-500 ring-1 ring-blue-500":"",x.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),"data-focus":i.value?"true":"false",onClick:B},[e.createElementVNode("div",{class:"flex flex-1 flex-wrap items-center gap-1 py-0.5 pl-2 pr-0 overflow-hidden",ref_key:"chipsRef",ref:a},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,(J,Z)=>(e.openBlock(),e.createElementBlock("div",{key:Z,class:"flex min-w-0 bg-[#e6e6e6] rounded-sm m-0.5 box-border"},[e.createElementVNode("div",go,[e.createElementVNode("div",ko,e.toDisplayString(J),1)]),e.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border hover:bg-[#ffbdad] hover:text-[#de350b]",onClick:e.withModifiers(W=>M(Z),["stop"]),"aria-label":`Remove ${J}`},_[2]||(_[2]=[e.createElementVNode("svg",{height:"14",width:"14",viewBox:"0 0 20 20","aria-hidden":"true",focusable:"false",class:"inline-block fill-current stroke-current leading-none stroke-0"},[e.createElementVNode("path",{d:"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z"})],-1)]),8,bo)]))),128)),p.value?(e.openBlock(),e.createElementBlock("div",yo,e.toDisplayString(c.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",xo,[x.value?e.createCommentVNode("",!0):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"inputRef",ref:r,class:"pl-2 w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-label":"Add tag","onUpdate:modelValue":_[0]||(_[0]=J=>d.value=J),onFocus:b,onBlur:h,onKeydown:j,placeholder:u.value&&u.value.length?"":void 0},null,40,_o)),[[e.vModelText,d.value]])])],512),e.createElementVNode("div",wo,[m.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-label":"Clear all tags",disabled:x.value,onClick:e.withModifiers(N,["stop"])},_[3]||(_[3]=[e.createElementVNode("svg",{height:"20",width:"20",viewBox:"0 0 20 20",class:"fill-current"},[e.createElementVNode("path",{d:"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z"})],-1)]),8,Eo)):e.createCommentVNode("",!0)])],10,fo)],2)],512))}}),Vo={class:"relative flex gap-1 bg-white w-full"},Co=["disabled","placeholder"],pt=T(e.defineComponent({__name:"vs-input-slug",props:e.mergeModels({disabled:{type:Boolean},placeholder:{},parent:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=e.inject("values"),s=o,n=e.useModel(o,"modelValue");function l(r){const i={а:"a",б:"b",в:"v",г:"g",д:"d",е:"e",ё:"e",ж:"zh",з:"z",и:"i",й:"y",к:"k",л:"l",м:"m",н:"n",о:"o",п:"p",р:"r",с:"s",т:"t",у:"u",ф:"f",х:"kh",ц:"ts",ч:"ch",ш:"sh",щ:"shch",ы:"y",э:"e",ю:"yu",я:"ya",ь:"",ъ:"",є:"ye",і:"i",ї:"yi",ґ:"g"};return r.toLowerCase().split("").map(d=>i[d]||d).join("").replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}const a=()=>{const r=t?.value?.[s.parent||""]?.toString(),i=l(r);n.value=i.toString()};return(r,i)=>(e.openBlock(),e.createElementBlock("div",Vo,[e.withDirectives(e.createElementVNode("input",{ref:"vsText",disabled:r.disabled,placeholder:r.placeholder,"onUpdate:modelValue":i[0]||(i[0]=d=>n.value=d),class:"block w-full px-3 py-2 text-sm border border-solid rounded-lg placeholder:text-nowrap border-stone-200 text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,8,Co),[[e.vModelText,n.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200",onClick:a}," Gen ")]))}}),[["__scopeId","data-v-b0eba370"]]),vo={class:"w-full"},Bo={ref:"sortableContainer",class:"flex flex-col gap-1"},No=["onDragstart","onDrop"],So={class:"w-1/3"},Mo={class:"w-2/3"},Fo=["onClick"],Ao={key:0,class:"text-[14px] text-gray-700"},$o={class:"mt-2 w-full flex items-center"},Do=["disabled"],ht=T(e.defineComponent({__name:"vs-input-key-value",props:{parent:{},ignore:{},addButtonText:{},modelValue:{}},emits:["update:modelValue"],setup(o,{emit:t}){const s=V=>`${V}-${Math.random().toString(36).substring(2,15)}`,n=e.inject("values"),l=o,a=t,r=l.addButtonText??"Додати",i=l.ignore??[],d=e.ref([]),u=e.ref(null);(()=>{const V=l.parent&&n?.value?.[l.parent]||l.modelValue||{};d.value=Object.entries(V).filter(([M])=>!i.includes(M)).map(([M,N])=>({id:s("key-value-"),key:M,value:N}))})();function p(V){u.value=V}function m(V){if(u.value===null||u.value===V)return;const M=d.value.splice(u.value,1)[0];d.value.splice(V,0,M),u.value=null}const x=e.computed(()=>d.value.some(V=>V.key&&!V.value||!V.key&&V.value)),B=()=>{d.value.push({id:s("key-value-"),key:"",value:""})},D=V=>{d.value=d.value.filter(M=>M.id!==V)};return e.watch(d,V=>{const M={};V.forEach(b=>{b.key&&b.value!==void 0&&(M[b.key]=b.value)});const N={};i.length&&i.forEach(b=>{N[b]=l.parent?n?.value?.[l.parent]?.[b]:void 0}),n?.value&&l.parent&&(n.value[l.parent]={...N,...M}),a("update:modelValue",M)},{deep:!0}),(V,M)=>(e.openBlock(),e.createElementBlock("div",vo,[e.createElementVNode("div",Bo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(N,b)=>(e.openBlock(),e.createElementBlock("div",{key:N.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":u.value===b}]),draggable:"true",onDragstart:h=>p(b),onDragover:M[0]||(M[0]=e.withModifiers(()=>{},["prevent"])),onDrop:h=>m(b)},[M[1]||(M[1]=e.createStaticVNode('<button class="cursor-move" data-v-a0f7fbfc><svg fill="#000000" width="20" height="20" viewBox="0 0 36 36" data-v-a0f7fbfc><circle cx="15" cy="12" r="1.5" data-v-a0f7fbfc></circle><circle cx="15" cy="24" r="1.5" data-v-a0f7fbfc></circle><circle cx="21" cy="12" r="1.5" data-v-a0f7fbfc></circle><circle cx="21" cy="24" r="1.5" data-v-a0f7fbfc></circle><circle cx="21" cy="18" r="1.5" data-v-a0f7fbfc></circle><circle cx="15" cy="18" r="1.5" data-v-a0f7fbfc></circle></svg></button>',1)),e.createElementVNode("div",So,[e.createVNode(xe,{modelValue:N.key,"onUpdate:modelValue":h=>N.key=h,placeholder:"Ключ"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",Mo,[e.createVNode(xe,{modelValue:N.value,"onUpdate:modelValue":h=>N.value=h,placeholder:"Значення"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("button",{onClick:h=>D(N.id),class:"shrink-0 w-[30px] text-gray-600 h-[30px] rounded-full flex items-center justify-center bg-gray-100 hover:bg-gray-200"},[e.createVNode(e.unref(Ts),{height:"16",width:"16"})],8,Fo)],42,No))),128))],512),d.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Ao," Дані для відображення відсутні ")),e.createElementVNode("div",$o,[e.createElementVNode("button",{type:"button",onClick:B,disabled:x.value,class:"py-1.5 px-2 flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"},[e.createVNode(_e,{height:"14",width:"14"}),e.createTextVNode(" "+e.toDisplayString(e.unref(r)),1)],8,Do)])]))}}),[["__scopeId","data-v-a0f7fbfc"]]),Io={class:"flex items-center gap-2 w-full"},Lo=["disabled"],mt=e.defineComponent({__name:"vs-input-color",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""}},emits:["update:modelValue"],setup(o,{emit:t}){const s=o,{inputClass:n}=te(s.style),l=t,a=e.computed({get:()=>s.modelValue||"#000000",set:r=>l("update:modelValue",r)});return(r,i)=>(e.openBlock(),e.createElementBlock("div",Io,[e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":i[0]||(i[0]=d=>a.value=d),disabled:r.disabled,ref:"color",class:e.normalizeClass(["py-1.5 px-1 block w-full bg-white cursor-pointer max-w-[50px]",[r.modelValue?"":"text-opacity-50",e.unref(n)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,Lo),[[e.vModelText,a.value]]),e.withDirectives(e.createElementVNode("input",{class:"text-sm text-gray-600 border border-solid border-stone-200 rounded-md p-2","onUpdate:modelValue":i[1]||(i[1]=d=>a.value=d)},null,512),[[e.vModelText,a.value]])]))}}),To={class:"flex items-center gap-2 w-full"},Ro=["min","max","step","disabled"],ft=e.defineComponent({__name:"vs-input-range",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},min:{default:0},max:{default:100},step:{default:1}},emits:["update:modelValue"],setup(o,{emit:t}){const s=o,{inputClass:n}=te(s.style),l=t,a=e.computed({get:()=>Number(s.modelValue??s.min),set:r=>l("update:modelValue",Number(r))});return(r,i)=>(e.openBlock(),e.createElementBlock("div",To,[e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":i[0]||(i[0]=d=>a.value=d),min:r.min,max:r.max,step:r.step,disabled:r.disabled,ref:"range",class:e.normalizeClass(["w-full cursor-pointer accent-blue-500",[r.modelValue?"":"text-opacity-50",e.unref(n)].join(" ")])},null,10,Ro),[[e.vModelText,a.value]]),e.withDirectives(e.createElementVNode("input",{class:"text-sm text-gray-600 border border-solid border-stone-200 rounded-md p-2 max-w-[100px]",type:"number","onUpdate:modelValue":i[1]||(i[1]=d=>a.value=d)},null,512),[[e.vModelText,a.value]])]))}}),gt={VsInputText:xe,VsInputRadio:Re,"vs-input-text":xe,"vs-input-password":ps,"vs-input-textarea":ot,"vs-input-mask":Ye,"vs-input-number":Ke,"vs-input-radio":Re,"vs-input-select":Oe,"vs-input-switcher":Le,"vs-input-static":Te,"vs-input-container":rt,"vs-input-date":Xe,"vs-input-checkbox":We,"vs-input-file":nt,"vs-input-html":Te,"vs-input-email":Je,"vs-input-datatable":dt,"vs-input-map":ut,"vs-input-file-list":lt,"vs-input-tag":ct,"vs-input-slug":pt,"vs-input-key-value":ht,"vs-input-range":ft,"vs-input-color":mt,"vs-input-native-select":Oe},Oo=e.defineComponent({__name:"behavior",props:{api:{},set:{},button:{},error:{},value:{}},setup(o){const t=o,s=e.inject("values");async function n(){try{if(!t.api)return;const l=t.api.replace("{{value}}",t.value),a=await fetch(l);if(!a.ok){G.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const r=await a.json();if(!t.set||!s)return;for(const[i,d]of Object.entries(t.set))s.value[i]=r.result[d]}catch(l){console.error(t.error,l)}}return(l,a)=>(e.openBlock(),e.createElementBlock("button",{onClick:n,class:"vs-button relative inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-blue-500 hover:border-blue-500 hover:bg-blue-500 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 ml-0 md:ml-2 mt-2 md:mt-0 py-[8px] md:w-2/4 whitespace-nowrap w-full"},e.toDisplayString(l.button),1))}}),kt=e.defineComponent({__name:"vs-compact-form-layout",props:e.mergeModels({item:{default:{}},layout:{default:"default"},style:{default:{}},type:{default:""},error:{type:[String,Boolean]}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,s=e.useModel(o,"modelValue"),n=e.computed(()=>us[`${t.layout}`]),l=e.computed(()=>gt?.[`vs-input-${t.item.type}`]),a=e.computed(()=>{const i=e.unref(l);if(!i)return new Set;const d=i.props??i.__vccOpts?.props;if(!d)return new Set;const u=Array.isArray(d)?d:Object.keys(d);return new Set(u)}),r=e.computed(()=>{const i=t.item??{},d=a.value;return d.size?Object.fromEntries(Object.entries(i).filter(([u])=>d.has(u))):{}});return(i,d)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.value),{ua:t.item.ua,error:t.error||"",item:i.item,label:t.item.label},{default:e.withCtx(()=>[d[1]||(d[1]=e.createTextVNode(' v-show="!item.hidden" > ',-1)),e.createElementVNode("div",{class:e.normalizeClass(["flex w-full",`${t.item.type}-component`])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),e.mergeProps(r.value,{modelValue:s.value,"onUpdate:modelValue":d[0]||(d[0]=u=>s.value=u)}),null,16,["modelValue"])),i.item.behavior?.api&&i.item.behavior?.button?(e.openBlock(),e.createBlock(Oo,e.mergeProps({key:0},i.item.behavior,{value:s.value}),null,16,["value"])):e.createCommentVNode("",!0)],2)]),_:1,__:[1]},8,["ua","error","item","label"]))}}),bt={required:"Це поле є обов’язковим",email:"Неправильний email"},zo=o=>o?!1:bt.required,jo=o=>!o&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(o)?bt.email:!1,Uo=(o,t)=>{const s=t.pattern??t.regexp;return!(typeof s=="string"?new RegExp(s):s).test(o)&&o?t.message:!1},Po=(o,t)=>!1,Ho=(o,t)=>{switch(typeof t=="string"?t:t.type){case"required":return zo(o);case"email":return jo(o);case"regexp":return Uo(o,t);case"custom":return Po();default:return!1}},Go={autocomplete:"select",combobox:"select",datepicker:"date",markedtext:"mask",html:"static",geom:"map",filelist:"file-list",datalist:"datatable",file:"file"};function yt(o){const t=o.toLowerCase();return Go[t]||t}function qo(o,t=!1){if(Array.isArray(o)){const n=[];return o.forEach(l=>{const a={...l};a.name=(l.name||l.id||l.key||"").toString(),a.type=yt(l.type),a.label=l.label||l.ua,a.rules=l.rules||l.validators,l.data&&(a.api=`/api/suggest/${l.data}`),a.disabled=t,n.push(a)}),n}const s=[];return Object.entries(o).forEach(n=>{const l={name:n[0],...n[1],type:yt(n[1].type),label:n[1].label||n[1].ua,rules:n[1].rules||n[1].validators,disabled:t};n[1].type.includes("list")&&(l.multiple=!0),!l.api&&n[1].data&&(l.api=`/api/suggest/${n[1].data}`),s.push(l)}),s}function Ko(o,t,s=!1){const n=e.computed(()=>qo((Array.isArray(t),t),typeof s=="boolean"?s:s.value)),l=e.ref({});function a(u){const c=u?.conditions;if(!c)return!0;const p=Array.isArray(c)?c[0]:c,m=o?.value?.[p];return at(m,c)}const r=(u=n.value,c=!0)=>(u.forEach(p=>{if(p.rules){if(!a(p)){delete l.value[p.name];return}p.rules.forEach(m=>{const x=Ho(o.value[p.name],m);x?l.value[p.name]=x:delete l.value[p.name]})}p.schema&&r(p.schema,!1)}),c&&Object.values(l.value).some(Boolean)?l.value:null),i=e.computed(()=>n.value?.filter(u=>a(u)));return{errors:l,validate:r,reset:()=>{o.value={},l.value={}},visibleSchema:i}}const Zo={key:0,"data-orientation":"horizontal",role:"none",class:"mt-1 shrink-0 h-[1px] w-full bg-slate-100 dark:bg-slate-600"},me=e.defineComponent({__name:"vs-compact-form",props:e.mergeModels({schema:{default:()=>[]},style:{default:()=>({})},modelValue:{},layout:{default:()=>"default"},formId:{default:()=>""},disabled:{type:Boolean,default:!1}},{form:{default:()=>({})},formModifiers:{},values:{default:()=>({})},valuesModifiers:{}}),emits:e.mergeModels(["handle-submit","update:modelValue"],["update:form","update:values"]),setup(o,{expose:t,emit:s}){const n=s,l=o,a=e.useModel(o,"form"),r=e.useModel(o,"values"),{errors:i,validate:d,reset:u,visibleSchema:c}=Ko(r,l.schema,e.toRef(l,"disabled")),p=()=>{n("update:modelValue",r.value),d(),n("handle-submit",r.value)};t({validate:d,reset:u,errors:i}),e.onMounted(()=>{l.modelValue&&(r.value=l.modelValue),a.value.value=r.value,a.value.errors=i.value,a.value.reset=u,a.value.validate=d,a.value.formId=l.formId});function m(x,B){if(x===B)return!0;if(typeof x!="object"||typeof B!="object"||!x||!B)return!1;const D=Object.keys(x),V=Object.keys(B);return D.length!==V.length?!1:D.every(M=>x[M]===B[M])}return e.provide("form",a),e.provide("values",r),e.watch(a.value,x=>{console.log("form",x)}),(x,B)=>(e.openBlock(),e.createElementBlock("form",{onSubmit:e.withModifiers(p,["prevent"]),class:e.normalizeClass(["grid grid-cols-12",x.layout==="default"?"gap-6":"gap-4"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(c),(D,V)=>(e.openBlock(),e.createElementBlock("div",{key:D.name,class:e.normalizeClass(x.layout==="horizontal"?"col-span-12":`col-span-${D.col||12}`)},[e.createVNode(kt,{style:e.normalizeStyle(x.style),item:D,layout:x.layout,"model-value":r.value[D.name],"onUpdate:modelValue":M=>{const N=r.value[D.name];m(N,M)||(r.value[D.name]=M)},error:e.unref(i)[D.name]},null,8,["style","item","layout","model-value","onUpdate:modelValue","error"]),x.layout==="settings"&&V+1!==e.unref(c).length?(e.openBlock(),e.createElementBlock("div",Zo)):e.createCommentVNode("",!0)],2))),128))],34))}}),Yo={class:"relative"},Jo={class:"w-full h-full fixed top-0 start-0 z-[1000] bg-black bg-opacity-50"},Wo={class:"m-[10px] fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 min-h-0 h-fit max-h-[80vh] overflow-hidden opacity-1 flex flex-col bg-white dark:bg-[#1A1A1A] border dark:border-[#454545] pointer-events-auto shadow-[0_10px_40px_10px_rgba(0,0,0,0.08)] rounded-xl lg:w-7/12 w-11/12"},Xo={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},Qo={class:"font-medium text-gray-800 dark:text-[#ffffff]"},ei={class:"p-4 mim-h-0 h-full overflow-auto"},xt=e.defineComponent({__name:"modal-edit",props:{schema:{},defaultValue:{},mode:{},token:{},form:{}},emits:["close","save","edit"],setup(o,{emit:t}){const s=o,n=t,l=e.ref(s.schema),a=e.ref(s.defaultValue?JSON.parse(JSON.stringify(s.defaultValue)):{}),r=e.ref({}),i=e.ref(),d=e.ref(s.mode);async function u(){const p=r.value.validate();if(p){G.notify({type:"warning",title:"Помилка валідації",message:Object.entries(p).map(([m,x])=>`${m}: ${x}`).join(`
3
3
  `)});return}if(i.value)try{const m=await fetch(`/api/table/${i.value}`,{method:d.value==="add"?"POST":"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a.value)});if(m.ok)await m.json(),G.notify({type:"success",title:"Успішно",message:`Дані успішно ${d.value==="add"?"збережено":"оновлено"}`}),n("save",a.value);else if(m.status===400){const x=await m.json().catch(()=>({}));G.notify({type:"warning",title:"Помилка валідації",message:x.message||"Некоректні дані (400)"})}else m.status===500?G.notify({type:"error",title:"Серверна помилка",message:"Виникла помилка на сервері (500)"}):G.notify({type:"error",title:"Помилка",message:`Статус: ${m.status}`})}catch(m){G.notify({type:"error",title:"Помилка з’єднання",message:m.message||"Не вдалося виконати запит"})}}function c(){n("close")}return e.onMounted(async()=>{try{if(s.form){const p=await fetch(`/api/template/form/${s.form}`);if(!p.ok){G.notify({type:p.status>=400&&p.status<500?"warning":"error",title:"Error",message:`Error code: ${p.status}`});return}const m=await p.json();l.value=m.schema,i.value=m.token}else if(s.token){i.value=s.token;const p=await fetch(`/api/form/${i.value}`);if(!p.ok){G.notify({type:p.status>=400&&p.status<500?"warning":"error",title:"Error",message:`Error code: ${p.status}`});return}const m=await p.json();l.value=m.schema,m.data?a.value=m.data:d.value="add"}}catch(p){G.notify({type:"error",title:"Error",message:p.message||"Unexpected error"}),console.error(p)}}),(p,m)=>(e.openBlock(),e.createElementBlock("div",Yo,[e.createElementVNode("div",Jo,[e.createElementVNode("div",Wo,[e.createElementVNode("div",Xo,[e.createElementVNode("h3",Qo,e.toDisplayString(d.value==="add"?"Додати":"Змінити"),1),e.createElementVNode("button",{onClick:c,type:"button",class:"size-8 inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:hover:bg-neutral-600 dark:text-neutral-400 dark:focus:bg-neutral-600"},m[2]||(m[2]=[e.createElementVNode("span",{class:"sr-only"},"Close",-1),e.createElementVNode("svg",{class:"flex-shrink-0 w-4 h-4",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("path",{d:"M18 6 6 18"}),e.createElementVNode("path",{d:"m6 6 12 12"})],-1)]))]),e.createElementVNode("div",ei,[l.value?(e.openBlock(),e.createBlock(me,{key:0,schema:l.value,values:a.value,"onUpdate:values":m[0]||(m[0]=x=>a.value=x),form:r.value,"onUpdate:form":m[1]||(m[1]=x=>r.value=x)},null,8,["schema","values","form"])):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:"vs-form__head mr-5 mb-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},[e.createElementVNode("button",{type:"button",onClick:c,class:"vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-red-500 hover:border-red-500 hover:bg-red-500 focus:ring-red-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 mr-2"}," Скасувати "),e.createElementVNode("button",{onClick:u,type:"button",class:"vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border-1 border-transparent text-white bg-blue-500 hover:bg-blue-600 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1"}," Зберегти ")])])])]))}}),_t=(o={mode:"edit",schema:null})=>new Promise(t=>{const{close:s}=G.modal({title:o.mode==="add"?"Додати":"Редагувати",template:"",visible:!0,size:"medium",closeClickBack:!0,content:xt,contentProps:{...o,onClose:()=>{t(null),s()},onSave:n=>{t(n),s()}}})});me.install=function(t){t.component("VForm",me),Object.assign(t.config.globalProperties,{$form:_t}),t.provide("form",_t),window.v3plugin||(window.v3plugin={})};function ue(o){return typeof o=="string"||o instanceof String}function wt(o){var t;return typeof o=="object"&&o!=null&&(o==null||(t=o.constructor)==null?void 0:t.name)==="Object"}function Et(o,t){return Array.isArray(t)?Et(o,(s,n)=>t.includes(n)):Object.entries(o).reduce((s,n)=>{let[l,a]=n;return t(a,l)&&(s[l]=a),s},{})}const E={NONE:"NONE",LEFT:"LEFT",FORCE_LEFT:"FORCE_LEFT",RIGHT:"RIGHT",FORCE_RIGHT:"FORCE_RIGHT"};function Vt(o){switch(o){case E.LEFT:return E.FORCE_LEFT;case E.RIGHT:return E.FORCE_RIGHT;default:return o}}function ze(o){return o.replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1")}function Fe(o,t){if(t===o)return!0;const s=Array.isArray(t),n=Array.isArray(o);let l;if(s&&n){if(t.length!=o.length)return!1;for(l=0;l<t.length;l++)if(!Fe(t[l],o[l]))return!1;return!0}if(s!=n)return!1;if(t&&o&&typeof t=="object"&&typeof o=="object"){const a=t instanceof Date,r=o instanceof Date;if(a&&r)return t.getTime()==o.getTime();if(a!=r)return!1;const i=t instanceof RegExp,d=o instanceof RegExp;if(i&&d)return t.toString()==o.toString();if(i!=d)return!1;const u=Object.keys(t);for(l=0;l<u.length;l++)if(!Object.prototype.hasOwnProperty.call(o,u[l]))return!1;for(l=0;l<u.length;l++)if(!Fe(o[u[l]],t[u[l]]))return!1;return!0}else if(t&&o&&typeof t=="function"&&typeof o=="function")return t.toString()===o.toString();return!1}class ti{constructor(t){for(Object.assign(this,t);this.value.slice(0,this.startChangePos)!==this.oldValue.slice(0,this.startChangePos);)--this.oldSelection.start;if(this.insertedCount)for(;this.value.slice(this.cursorPos)!==this.oldValue.slice(this.oldSelection.end);)this.value.length-this.cursorPos<this.oldValue.length-this.oldSelection.end?++this.oldSelection.end:++this.cursorPos}get startChangePos(){return Math.min(this.cursorPos,this.oldSelection.start)}get insertedCount(){return this.cursorPos-this.startChangePos}get inserted(){return this.value.substr(this.startChangePos,this.insertedCount)}get removedCount(){return Math.max(this.oldSelection.end-this.startChangePos||this.oldValue.length-this.value.length,0)}get removed(){return this.oldValue.substr(this.startChangePos,this.removedCount)}get head(){return this.value.substring(0,this.startChangePos)}get tail(){return this.value.substring(this.startChangePos+this.insertedCount)}get removeDirection(){return!this.removedCount||this.insertedCount?E.NONE:(this.oldSelection.end===this.cursorPos||this.oldSelection.start===this.cursorPos)&&this.oldSelection.end===this.oldSelection.start?E.RIGHT:E.LEFT}}function S(o,t){return new S.InputMask(o,t)}function Ct(o){if(o==null)throw new Error("mask property should be defined");return o instanceof RegExp?S.MaskedRegExp:ue(o)?S.MaskedPattern:o===Date?S.MaskedDate:o===Number?S.MaskedNumber:Array.isArray(o)||o===Array?S.MaskedDynamic:S.Masked&&o.prototype instanceof S.Masked?o:S.Masked&&o instanceof S.Masked?o.constructor:o instanceof Function?S.MaskedFunction:(console.warn("Mask not found for mask",o),S.Masked)}function be(o){if(!o)throw new Error("Options in not defined");if(S.Masked){if(o.prototype instanceof S.Masked)return{mask:o};const{mask:t=void 0,...s}=o instanceof S.Masked?{mask:o}:wt(o)&&o.mask instanceof S.Masked?o:{};if(t){const n=t.mask;return{...Et(t,(l,a)=>!a.startsWith("_")),mask:t.constructor,_mask:n,...s}}}return wt(o)?{...o}:{mask:o}}function le(o){if(S.Masked&&o instanceof S.Masked)return o;const t=be(o),s=Ct(t.mask);if(!s)throw new Error("Masked class is not found for provided mask "+t.mask+", appropriate module needs to be imported manually before creating mask.");return t.mask===s&&delete t.mask,t._mask&&(t.mask=t._mask,delete t._mask),new s(t)}S.createMask=le;class Ae{get selectionStart(){let t;try{t=this._unsafeSelectionStart}catch{}return t??this.value.length}get selectionEnd(){let t;try{t=this._unsafeSelectionEnd}catch{}return t??this.value.length}select(t,s){if(!(t==null||s==null||t===this.selectionStart&&s===this.selectionEnd))try{this._unsafeSelect(t,s)}catch{}}get isActive(){return!1}}S.MaskElement=Ae;const vt=90,si=89;class Ee extends Ae{constructor(t){super(),this.input=t,this._onKeydown=this._onKeydown.bind(this),this._onInput=this._onInput.bind(this),this._onBeforeinput=this._onBeforeinput.bind(this),this._onCompositionEnd=this._onCompositionEnd.bind(this)}get rootElement(){var t,s,n;return(t=(s=(n=this.input).getRootNode)==null?void 0:s.call(n))!=null?t:document}get isActive(){return this.input===this.rootElement.activeElement}bindEvents(t){this.input.addEventListener("keydown",this._onKeydown),this.input.addEventListener("input",this._onInput),this.input.addEventListener("beforeinput",this._onBeforeinput),this.input.addEventListener("compositionend",this._onCompositionEnd),this.input.addEventListener("drop",t.drop),this.input.addEventListener("click",t.click),this.input.addEventListener("focus",t.focus),this.input.addEventListener("blur",t.commit),this._handlers=t}_onKeydown(t){if(this._handlers.redo&&(t.keyCode===vt&&t.shiftKey&&(t.metaKey||t.ctrlKey)||t.keyCode===si&&t.ctrlKey))return t.preventDefault(),this._handlers.redo(t);if(this._handlers.undo&&t.keyCode===vt&&(t.metaKey||t.ctrlKey))return t.preventDefault(),this._handlers.undo(t);t.isComposing||this._handlers.selectionChange(t)}_onBeforeinput(t){if(t.inputType==="historyUndo"&&this._handlers.undo)return t.preventDefault(),this._handlers.undo(t);if(t.inputType==="historyRedo"&&this._handlers.redo)return t.preventDefault(),this._handlers.redo(t)}_onCompositionEnd(t){this._handlers.input(t)}_onInput(t){t.isComposing||this._handlers.input(t)}unbindEvents(){this.input.removeEventListener("keydown",this._onKeydown),this.input.removeEventListener("input",this._onInput),this.input.removeEventListener("beforeinput",this._onBeforeinput),this.input.removeEventListener("compositionend",this._onCompositionEnd),this.input.removeEventListener("drop",this._handlers.drop),this.input.removeEventListener("click",this._handlers.click),this.input.removeEventListener("focus",this._handlers.focus),this.input.removeEventListener("blur",this._handlers.commit),this._handlers={}}}S.HTMLMaskElement=Ee;class Bt extends Ee{constructor(t){super(t),this.input=t}get _unsafeSelectionStart(){return this.input.selectionStart!=null?this.input.selectionStart:this.value.length}get _unsafeSelectionEnd(){return this.input.selectionEnd}_unsafeSelect(t,s){this.input.setSelectionRange(t,s)}get value(){return this.input.value}set value(t){this.input.value=t}}S.HTMLMaskElement=Ee;class je extends Ee{get _unsafeSelectionStart(){const t=this.rootElement,s=t.getSelection&&t.getSelection(),n=s&&s.anchorOffset,l=s&&s.focusOffset;return l==null||n==null||n<l?n:l}get _unsafeSelectionEnd(){const t=this.rootElement,s=t.getSelection&&t.getSelection(),n=s&&s.anchorOffset,l=s&&s.focusOffset;return l==null||n==null||n>l?n:l}_unsafeSelect(t,s){if(!this.rootElement.createRange)return;const n=this.rootElement.createRange();n.setStart(this.input.firstChild||this.input,t),n.setEnd(this.input.lastChild||this.input,s);const l=this.rootElement,a=l.getSelection&&l.getSelection();a&&(a.removeAllRanges(),a.addRange(n))}get value(){return this.input.textContent||""}set value(t){this.input.textContent=t}}S.HTMLContenteditableMaskElement=je;class $e{constructor(){this.states=[],this.currentIndex=0}get currentState(){return this.states[this.currentIndex]}get isEmpty(){return this.states.length===0}push(t){this.currentIndex<this.states.length-1&&(this.states.length=this.currentIndex+1),this.states.push(t),this.states.length>$e.MAX_LENGTH&&this.states.shift(),this.currentIndex=this.states.length-1}go(t){return this.currentIndex=Math.min(Math.max(this.currentIndex+t,0),this.states.length-1),this.currentState}undo(){return this.go(-1)}redo(){return this.go(1)}clear(){this.states.length=0,this.currentIndex=0}}$e.MAX_LENGTH=100;class Nt{constructor(t,s){this.el=t instanceof Ae?t:t.isContentEditable&&t.tagName!=="INPUT"&&t.tagName!=="TEXTAREA"?new je(t):new Bt(t),this.masked=le(s),this._listeners={},this._value="",this._unmaskedValue="",this._rawInputValue="",this.history=new $e,this._saveSelection=this._saveSelection.bind(this),this._onInput=this._onInput.bind(this),this._onChange=this._onChange.bind(this),this._onDrop=this._onDrop.bind(this),this._onFocus=this._onFocus.bind(this),this._onClick=this._onClick.bind(this),this._onUndo=this._onUndo.bind(this),this._onRedo=this._onRedo.bind(this),this.alignCursor=this.alignCursor.bind(this),this.alignCursorFriendly=this.alignCursorFriendly.bind(this),this._bindEvents(),this.updateValue(),this._onChange()}maskEquals(t){var s;return t==null||((s=this.masked)==null?void 0:s.maskEquals(t))}get mask(){return this.masked.mask}set mask(t){if(this.maskEquals(t))return;if(!(t instanceof S.Masked)&&this.masked.constructor===Ct(t)){this.masked.updateOptions({mask:t});return}const s=t instanceof S.Masked?t:le({mask:t});s.unmaskedValue=this.masked.unmaskedValue,this.masked=s}get value(){return this._value}set value(t){this.value!==t&&(this.masked.value=t,this.updateControl("auto"))}get unmaskedValue(){return this._unmaskedValue}set unmaskedValue(t){this.unmaskedValue!==t&&(this.masked.unmaskedValue=t,this.updateControl("auto"))}get rawInputValue(){return this._rawInputValue}set rawInputValue(t){this.rawInputValue!==t&&(this.masked.rawInputValue=t,this.updateControl(),this.alignCursor())}get typedValue(){return this.masked.typedValue}set typedValue(t){this.masked.typedValueEquals(t)||(this.masked.typedValue=t,this.updateControl("auto"))}get displayValue(){return this.masked.displayValue}_bindEvents(){this.el.bindEvents({selectionChange:this._saveSelection,input:this._onInput,drop:this._onDrop,click:this._onClick,focus:this._onFocus,commit:this._onChange,undo:this._onUndo,redo:this._onRedo})}_unbindEvents(){this.el&&this.el.unbindEvents()}_fireEvent(t,s){const n=this._listeners[t];n&&n.forEach(l=>l(s))}get selectionStart(){return this._cursorChanging?this._changingCursorPos:this.el.selectionStart}get cursorPos(){return this._cursorChanging?this._changingCursorPos:this.el.selectionEnd}set cursorPos(t){!this.el||!this.el.isActive||(this.el.select(t,t),this._saveSelection())}_saveSelection(){this.displayValue!==this.el.value&&console.warn("Element value was changed outside of mask. Syncronize mask using `mask.updateValue()` to work properly."),this._selection={start:this.selectionStart,end:this.cursorPos}}updateValue(){this.masked.value=this.el.value,this._value=this.masked.value,this._unmaskedValue=this.masked.unmaskedValue,this._rawInputValue=this.masked.rawInputValue}updateControl(t){const s=this.masked.unmaskedValue,n=this.masked.value,l=this.masked.rawInputValue,a=this.displayValue,r=this.unmaskedValue!==s||this.value!==n||this._rawInputValue!==l;this._unmaskedValue=s,this._value=n,this._rawInputValue=l,this.el.value!==a&&(this.el.value=a),t==="auto"?this.alignCursor():t!=null&&(this.cursorPos=t),r&&this._fireChangeEvents(),!this._historyChanging&&(r||this.history.isEmpty)&&this.history.push({unmaskedValue:s,selection:{start:this.selectionStart,end:this.cursorPos}})}updateOptions(t){const{mask:s,...n}=t,l=!this.maskEquals(s),a=this.masked.optionsIsChanged(n);l&&(this.mask=s),a&&this.masked.updateOptions(n),(l||a)&&this.updateControl()}updateCursor(t){t!=null&&(this.cursorPos=t,this._delayUpdateCursor(t))}_delayUpdateCursor(t){this._abortUpdateCursor(),this._changingCursorPos=t,this._cursorChanging=setTimeout(()=>{this.el&&(this.cursorPos=this._changingCursorPos,this._abortUpdateCursor())},10)}_fireChangeEvents(){this._fireEvent("accept",this._inputEvent),this.masked.isComplete&&this._fireEvent("complete",this._inputEvent)}_abortUpdateCursor(){this._cursorChanging&&(clearTimeout(this._cursorChanging),delete this._cursorChanging)}alignCursor(){this.cursorPos=this.masked.nearestInputPos(this.masked.nearestInputPos(this.cursorPos,E.LEFT))}alignCursorFriendly(){this.selectionStart===this.cursorPos&&this.alignCursor()}on(t,s){return this._listeners[t]||(this._listeners[t]=[]),this._listeners[t].push(s),this}off(t,s){if(!this._listeners[t])return this;if(!s)return delete this._listeners[t],this;const n=this._listeners[t].indexOf(s);return n>=0&&this._listeners[t].splice(n,1),this}_onInput(t){this._inputEvent=t,this._abortUpdateCursor();const s=new ti({value:this.el.value,cursorPos:this.cursorPos,oldValue:this.displayValue,oldSelection:this._selection}),n=this.masked.rawInputValue,l=this.masked.splice(s.startChangePos,s.removed.length,s.inserted,s.removeDirection,{input:!0,raw:!0}).offset,a=n===this.masked.rawInputValue?s.removeDirection:E.NONE;let r=this.masked.nearestInputPos(s.startChangePos+l,a);a!==E.NONE&&(r=this.masked.nearestInputPos(r,E.NONE)),this.updateControl(r),delete this._inputEvent}_onChange(){this.displayValue!==this.el.value&&this.updateValue(),this.masked.doCommit(),this.updateControl(),this._saveSelection()}_onDrop(t){t.preventDefault(),t.stopPropagation()}_onFocus(t){this.alignCursorFriendly()}_onClick(t){this.alignCursorFriendly()}_onUndo(){this._applyHistoryState(this.history.undo())}_onRedo(){this._applyHistoryState(this.history.redo())}_applyHistoryState(t){t&&(this._historyChanging=!0,this.unmaskedValue=t.unmaskedValue,this.el.select(t.selection.start,t.selection.end),this._saveSelection(),this._historyChanging=!1)}destroy(){this._unbindEvents(),this._listeners.length=0,delete this.el}}S.InputMask=Nt;class A{static normalize(t){return Array.isArray(t)?t:[t,new A]}constructor(t){Object.assign(this,{inserted:"",rawInserted:"",tailShift:0,skip:!1},t)}aggregate(t){return this.inserted+=t.inserted,this.rawInserted+=t.rawInserted,this.tailShift+=t.tailShift,this.skip=this.skip||t.skip,this}get offset(){return this.tailShift+this.inserted.length}get consumed(){return!!this.rawInserted||this.skip}equals(t){return this.inserted===t.inserted&&this.tailShift===t.tailShift&&this.rawInserted===t.rawInserted&&this.skip===t.skip}}S.ChangeDetails=A;class ae{constructor(t,s,n){t===void 0&&(t=""),s===void 0&&(s=0),this.value=t,this.from=s,this.stop=n}toString(){return this.value}extend(t){this.value+=String(t)}appendTo(t){return t.append(this.toString(),{tail:!0}).aggregate(t._appendPlaceholder())}get state(){return{value:this.value,from:this.from,stop:this.stop}}set state(t){Object.assign(this,t)}unshift(t){if(!this.value.length||t!=null&&this.from>=t)return"";const s=this.value[0];return this.value=this.value.slice(1),s}shift(){if(!this.value.length)return"";const t=this.value[this.value.length-1];return this.value=this.value.slice(0,-1),t}}class q{constructor(t){this._value="",this._update({...q.DEFAULTS,...t}),this._initialized=!0}updateOptions(t){this.optionsIsChanged(t)&&this.withValueRefresh(this._update.bind(this,t))}_update(t){Object.assign(this,t)}get state(){return{_value:this.value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value}reset(){this._value=""}get value(){return this._value}set value(t){this.resolve(t,{input:!0})}resolve(t,s){s===void 0&&(s={input:!0}),this.reset(),this.append(t,s,""),this.doCommit()}get unmaskedValue(){return this.value}set unmaskedValue(t){this.resolve(t,{})}get typedValue(){return this.parse?this.parse(this.value,this):this.unmaskedValue}set typedValue(t){this.format?this.value=this.format(t,this):this.unmaskedValue=String(t)}get rawInputValue(){return this.extractInput(0,this.displayValue.length,{raw:!0})}set rawInputValue(t){this.resolve(t,{raw:!0})}get displayValue(){return this.value}get isComplete(){return!0}get isFilled(){return this.isComplete}nearestInputPos(t,s){return t}totalInputPositions(t,s){return t===void 0&&(t=0),s===void 0&&(s=this.displayValue.length),Math.min(this.displayValue.length,s-t)}extractInput(t,s,n){return t===void 0&&(t=0),s===void 0&&(s=this.displayValue.length),this.displayValue.slice(t,s)}extractTail(t,s){return t===void 0&&(t=0),s===void 0&&(s=this.displayValue.length),new ae(this.extractInput(t,s),t)}appendTail(t){return ue(t)&&(t=new ae(String(t))),t.appendTo(this)}_appendCharRaw(t,s){return t?(this._value+=t,new A({inserted:t,rawInserted:t})):new A}_appendChar(t,s,n){s===void 0&&(s={});const l=this.state;let a;if([t,a]=this.doPrepareChar(t,s),t&&(a=a.aggregate(this._appendCharRaw(t,s)),!a.rawInserted&&this.autofix==="pad")){const r=this.state;this.state=l;let i=this.pad(s);const d=this._appendCharRaw(t,s);i=i.aggregate(d),d.rawInserted||i.equals(a)?a=i:this.state=r}if(a.inserted){let r,i=this.doValidate(s)!==!1;if(i&&n!=null){const d=this.state;if(this.overwrite===!0){r=n.state;for(let c=0;c<a.rawInserted.length;++c)n.unshift(this.displayValue.length-a.tailShift)}let u=this.appendTail(n);if(i=u.rawInserted.length===n.toString().length,!(i&&u.inserted)&&this.overwrite==="shift"){this.state=d,r=n.state;for(let c=0;c<a.rawInserted.length;++c)n.shift();u=this.appendTail(n),i=u.rawInserted.length===n.toString().length}i&&u.inserted&&(this.state=d)}i||(a=new A,this.state=l,n&&r&&(n.state=r))}return a}_appendPlaceholder(){return new A}_appendEager(){return new A}append(t,s,n){if(!ue(t))throw new Error("value should be string");const l=ue(n)?new ae(String(n)):n;s!=null&&s.tail&&(s._beforeTailState=this.state);let a;[t,a]=this.doPrepare(t,s);for(let r=0;r<t.length;++r){const i=this._appendChar(t[r],s,l);if(!i.rawInserted&&!this.doSkipInvalid(t[r],s,l))break;a.aggregate(i)}return(this.eager===!0||this.eager==="append")&&s!=null&&s.input&&t&&a.aggregate(this._appendEager()),l!=null&&(a.tailShift+=this.appendTail(l).tailShift),a}remove(t,s){return t===void 0&&(t=0),s===void 0&&(s=this.displayValue.length),this._value=this.displayValue.slice(0,t)+this.displayValue.slice(s),new A}withValueRefresh(t){if(this._refreshing||!this._initialized)return t();this._refreshing=!0;const s=this.rawInputValue,n=this.value,l=t();return this.rawInputValue=s,this.value&&this.value!==n&&n.indexOf(this.value)===0&&(this.append(n.slice(this.displayValue.length),{},""),this.doCommit()),delete this._refreshing,l}runIsolated(t){if(this._isolated||!this._initialized)return t(this);this._isolated=!0;const s=this.state,n=t(this);return this.state=s,delete this._isolated,n}doSkipInvalid(t,s,n){return!!this.skipInvalid}doPrepare(t,s){return s===void 0&&(s={}),A.normalize(this.prepare?this.prepare(t,this,s):t)}doPrepareChar(t,s){return s===void 0&&(s={}),A.normalize(this.prepareChar?this.prepareChar(t,this,s):t)}doValidate(t){return(!this.validate||this.validate(this.value,this,t))&&(!this.parent||this.parent.doValidate(t))}doCommit(){this.commit&&this.commit(this.value,this)}splice(t,s,n,l,a){n===void 0&&(n=""),l===void 0&&(l=E.NONE),a===void 0&&(a={input:!0});const r=t+s,i=this.extractTail(r),d=this.eager===!0||this.eager==="remove";let u;d&&(l=Vt(l),u=this.extractInput(0,r,{raw:!0}));let c=t;const p=new A;if(l!==E.NONE&&(c=this.nearestInputPos(t,s>1&&t!==0&&!d?E.NONE:l),p.tailShift=c-t),p.aggregate(this.remove(c)),d&&l!==E.NONE&&u===this.rawInputValue)if(l===E.FORCE_LEFT){let m;for(;u===this.rawInputValue&&(m=this.displayValue.length);)p.aggregate(new A({tailShift:-1})).aggregate(this.remove(m-1))}else l===E.FORCE_RIGHT&&i.unshift();return p.aggregate(this.append(n,a,i))}maskEquals(t){return this.mask===t}optionsIsChanged(t){return!Fe(this,t)}typedValueEquals(t){const s=this.typedValue;return t===s||q.EMPTY_VALUES.includes(t)&&q.EMPTY_VALUES.includes(s)||(this.format?this.format(t,this)===this.format(this.typedValue,this):!1)}pad(t){return new A}}q.DEFAULTS={skipInvalid:!0},q.EMPTY_VALUES=[void 0,null,""],S.Masked=q;class ce{constructor(t,s){t===void 0&&(t=[]),s===void 0&&(s=0),this.chunks=t,this.from=s}toString(){return this.chunks.map(String).join("")}extend(t){if(!String(t))return;t=ue(t)?new ae(String(t)):t;const s=this.chunks[this.chunks.length-1],n=s&&(s.stop===t.stop||t.stop==null)&&t.from===s.from+s.toString().length;if(t instanceof ae)n?s.extend(t.toString()):this.chunks.push(t);else if(t instanceof ce){if(t.stop==null){let l;for(;t.chunks.length&&t.chunks[0].stop==null;)l=t.chunks.shift(),l.from+=t.from,this.extend(l)}t.toString()&&(t.stop=t.blockIndex,this.chunks.push(t))}}appendTo(t){if(!(t instanceof S.MaskedPattern))return new ae(this.toString()).appendTo(t);const s=new A;for(let n=0;n<this.chunks.length;++n){const l=this.chunks[n],a=t._mapPosToBlock(t.displayValue.length),r=l.stop;let i;if(r!=null&&(!a||a.index<=r)&&((l instanceof ce||t._stops.indexOf(r)>=0)&&s.aggregate(t._appendPlaceholder(r)),i=l instanceof ce&&t._blocks[r]),i){const d=i.appendTail(l);s.aggregate(d);const u=l.toString().slice(d.rawInserted.length);u&&s.aggregate(t.append(u,{tail:!0}))}else s.aggregate(t.append(l.toString(),{tail:!0}))}return s}get state(){return{chunks:this.chunks.map(t=>t.state),from:this.from,stop:this.stop,blockIndex:this.blockIndex}}set state(t){const{chunks:s,...n}=t;Object.assign(this,n),this.chunks=s.map(l=>{const a="chunks"in l?new ce:new ae;return a.state=l,a})}unshift(t){if(!this.chunks.length||t!=null&&this.from>=t)return"";const s=t!=null?t-this.from:t;let n=0;for(;n<this.chunks.length;){const l=this.chunks[n],a=l.unshift(s);if(l.toString()){if(!a)break;++n}else this.chunks.splice(n,1);if(a)return a}return""}shift(){if(!this.chunks.length)return"";let t=this.chunks.length-1;for(;0<=t;){const s=this.chunks[t],n=s.shift();if(s.toString()){if(!n)break;--t}else this.chunks.splice(t,1);if(n)return n}return""}}class ni{constructor(t,s){this.masked=t,this._log=[];const{offset:n,index:l}=t._mapPosToBlock(s)||(s<0?{index:0,offset:0}:{index:this.masked._blocks.length,offset:0});this.offset=n,this.index=l,this.ok=!1}get block(){return this.masked._blocks[this.index]}get pos(){return this.masked._blockStartPos(this.index)+this.offset}get state(){return{index:this.index,offset:this.offset,ok:this.ok}}set state(t){Object.assign(this,t)}pushState(){this._log.push(this.state)}popState(){const t=this._log.pop();return t&&(this.state=t),t}bindBlock(){this.block||(this.index<0&&(this.index=0,this.offset=0),this.index>=this.masked._blocks.length&&(this.index=this.masked._blocks.length-1,this.offset=this.block.displayValue.length))}_pushLeft(t){for(this.pushState(),this.bindBlock();0<=this.index;--this.index,this.offset=((s=this.block)==null?void 0:s.displayValue.length)||0){var s;if(t())return this.ok=!0}return this.ok=!1}_pushRight(t){for(this.pushState(),this.bindBlock();this.index<this.masked._blocks.length;++this.index,this.offset=0)if(t())return this.ok=!0;return this.ok=!1}pushLeftBeforeFilled(){return this._pushLeft(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,E.FORCE_LEFT),this.offset!==0))return!0})}pushLeftBeforeInput(){return this._pushLeft(()=>{if(!this.block.isFixed)return this.offset=this.block.nearestInputPos(this.offset,E.LEFT),!0})}pushLeftBeforeRequired(){return this._pushLeft(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,E.LEFT),!0})}pushRightBeforeFilled(){return this._pushRight(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,E.FORCE_RIGHT),this.offset!==this.block.value.length))return!0})}pushRightBeforeInput(){return this._pushRight(()=>{if(!this.block.isFixed)return this.offset=this.block.nearestInputPos(this.offset,E.NONE),!0})}pushRightBeforeRequired(){return this._pushRight(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,E.NONE),!0})}}class Ue{constructor(t){Object.assign(this,t),this._value="",this.isFixed=!0}get value(){return this._value}get unmaskedValue(){return this.isUnmasking?this.value:""}get rawInputValue(){return this._isRawInput?this.value:""}get displayValue(){return this.value}reset(){this._isRawInput=!1,this._value=""}remove(t,s){return t===void 0&&(t=0),s===void 0&&(s=this._value.length),this._value=this._value.slice(0,t)+this._value.slice(s),this._value||(this._isRawInput=!1),new A}nearestInputPos(t,s){s===void 0&&(s=E.NONE);const n=0,l=this._value.length;switch(s){case E.LEFT:case E.FORCE_LEFT:return n;case E.NONE:case E.RIGHT:case E.FORCE_RIGHT:default:return l}}totalInputPositions(t,s){return t===void 0&&(t=0),s===void 0&&(s=this._value.length),this._isRawInput?s-t:0}extractInput(t,s,n){return t===void 0&&(t=0),s===void 0&&(s=this._value.length),n===void 0&&(n={}),n.raw&&this._isRawInput&&this._value.slice(t,s)||""}get isComplete(){return!0}get isFilled(){return!!this._value}_appendChar(t,s){if(s===void 0&&(s={}),this.isFilled)return new A;const n=this.eager===!0||this.eager==="append",a=this.char===t&&(this.isUnmasking||s.input||s.raw)&&(!s.raw||!n)&&!s.tail,r=new A({inserted:this.char,rawInserted:a?this.char:""});return this._value=this.char,this._isRawInput=a&&(s.raw||s.input),r}_appendEager(){return this._appendChar(this.char,{tail:!0})}_appendPlaceholder(){const t=new A;return this.isFilled||(this._value=t.inserted=this.char),t}extractTail(){return new ae("")}appendTail(t){return ue(t)&&(t=new ae(String(t))),t.appendTo(this)}append(t,s,n){const l=this._appendChar(t[0],s);return n!=null&&(l.tailShift+=this.appendTail(n).tailShift),l}doCommit(){}get state(){return{_value:this._value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value,this._isRawInput=!!t._rawInputValue}pad(t){return this._appendPlaceholder()}}class Ve{constructor(t){const{parent:s,isOptional:n,placeholderChar:l,displayChar:a,lazy:r,eager:i,...d}=t;this.masked=le(d),Object.assign(this,{parent:s,isOptional:n,placeholderChar:l,displayChar:a,lazy:r,eager:i})}reset(){this.isFilled=!1,this.masked.reset()}remove(t,s){return t===void 0&&(t=0),s===void 0&&(s=this.value.length),t===0&&s>=1?(this.isFilled=!1,this.masked.remove(t,s)):new A}get value(){return this.masked.value||(this.isFilled&&!this.isOptional?this.placeholderChar:"")}get unmaskedValue(){return this.masked.unmaskedValue}get rawInputValue(){return this.masked.rawInputValue}get displayValue(){return this.masked.value&&this.displayChar||this.value}get isComplete(){return!!this.masked.value||this.isOptional}_appendChar(t,s){if(s===void 0&&(s={}),this.isFilled)return new A;const n=this.masked.state;let l=this.masked._appendChar(t,this.currentMaskFlags(s));return l.inserted&&this.doValidate(s)===!1&&(l=new A,this.masked.state=n),!l.inserted&&!this.isOptional&&!this.lazy&&!s.input&&(l.inserted=this.placeholderChar),l.skip=!l.inserted&&!this.isOptional,this.isFilled=!!l.inserted,l}append(t,s,n){return this.masked.append(t,this.currentMaskFlags(s),n)}_appendPlaceholder(){return this.isFilled||this.isOptional?new A:(this.isFilled=!0,new A({inserted:this.placeholderChar}))}_appendEager(){return new A}extractTail(t,s){return this.masked.extractTail(t,s)}appendTail(t){return this.masked.appendTail(t)}extractInput(t,s,n){return t===void 0&&(t=0),s===void 0&&(s=this.value.length),this.masked.extractInput(t,s,n)}nearestInputPos(t,s){s===void 0&&(s=E.NONE);const n=0,l=this.value.length,a=Math.min(Math.max(t,n),l);switch(s){case E.LEFT:case E.FORCE_LEFT:return this.isComplete?a:n;case E.RIGHT:case E.FORCE_RIGHT:return this.isComplete?a:l;case E.NONE:default:return a}}totalInputPositions(t,s){return t===void 0&&(t=0),s===void 0&&(s=this.value.length),this.value.slice(t,s).length}doValidate(t){return this.masked.doValidate(this.currentMaskFlags(t))&&(!this.parent||this.parent.doValidate(this.currentMaskFlags(t)))}doCommit(){this.masked.doCommit()}get state(){return{_value:this.value,_rawInputValue:this.rawInputValue,masked:this.masked.state,isFilled:this.isFilled}}set state(t){this.masked.state=t.masked,this.isFilled=t.isFilled}currentMaskFlags(t){var s;return{...t,_beforeTailState:(t==null||(s=t._beforeTailState)==null?void 0:s.masked)||t?._beforeTailState}}pad(t){return new A}}Ve.DEFAULT_DEFINITIONS={0:/\d/,a:/[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,"*":/./};class St extends q{updateOptions(t){super.updateOptions(t)}_update(t){const s=t.mask;s&&(t.validate=n=>n.search(s)>=0),super._update(t)}}S.MaskedRegExp=St;class K extends q{constructor(t){super({...K.DEFAULTS,...t,definitions:Object.assign({},Ve.DEFAULT_DEFINITIONS,t?.definitions)})}updateOptions(t){super.updateOptions(t)}_update(t){t.definitions=Object.assign({},this.definitions,t.definitions),super._update(t),this._rebuildMask()}_rebuildMask(){const t=this.definitions;this._blocks=[],this.exposeBlock=void 0,this._stops=[],this._maskedBlocks={};const s=this.mask;if(!s||!t)return;let n=!1,l=!1;for(let a=0;a<s.length;++a){if(this.blocks){const u=s.slice(a),c=Object.keys(this.blocks).filter(m=>u.indexOf(m)===0);c.sort((m,x)=>x.length-m.length);const p=c[0];if(p){const{expose:m,repeat:x,...B}=be(this.blocks[p]),D={lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,overwrite:this.overwrite,autofix:this.autofix,...B,repeat:x,parent:this},V=x!=null?new S.RepeatBlock(D):le(D);V&&(this._blocks.push(V),m&&(this.exposeBlock=V),this._maskedBlocks[p]||(this._maskedBlocks[p]=[]),this._maskedBlocks[p].push(this._blocks.length-1)),a+=p.length-1;continue}}let r=s[a],i=r in t;if(r===K.STOP_CHAR){this._stops.push(this._blocks.length);continue}if(r==="{"||r==="}"){n=!n;continue}if(r==="["||r==="]"){l=!l;continue}if(r===K.ESCAPE_CHAR){if(++a,r=s[a],!r)break;i=!1}const d=i?new Ve({isOptional:l,lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,...be(t[r]),parent:this}):new Ue({char:r,eager:this.eager,isUnmasking:n});this._blocks.push(d)}}get state(){return{...super.state,_blocks:this._blocks.map(t=>t.state)}}set state(t){if(!t){this.reset();return}const{_blocks:s,...n}=t;this._blocks.forEach((l,a)=>l.state=s[a]),super.state=n}reset(){super.reset(),this._blocks.forEach(t=>t.reset())}get isComplete(){return this.exposeBlock?this.exposeBlock.isComplete:this._blocks.every(t=>t.isComplete)}get isFilled(){return this._blocks.every(t=>t.isFilled)}get isFixed(){return this._blocks.every(t=>t.isFixed)}get isOptional(){return this._blocks.every(t=>t.isOptional)}doCommit(){this._blocks.forEach(t=>t.doCommit()),super.doCommit()}get unmaskedValue(){return this.exposeBlock?this.exposeBlock.unmaskedValue:this._blocks.reduce((t,s)=>t+=s.unmaskedValue,"")}set unmaskedValue(t){if(this.exposeBlock){const s=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.unmaskedValue=t,this.appendTail(s),this.doCommit()}else super.unmaskedValue=t}get value(){return this.exposeBlock?this.exposeBlock.value:this._blocks.reduce((t,s)=>t+=s.value,"")}set value(t){if(this.exposeBlock){const s=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.value=t,this.appendTail(s),this.doCommit()}else super.value=t}get typedValue(){return this.exposeBlock?this.exposeBlock.typedValue:super.typedValue}set typedValue(t){if(this.exposeBlock){const s=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.typedValue=t,this.appendTail(s),this.doCommit()}else super.typedValue=t}get displayValue(){return this._blocks.reduce((t,s)=>t+=s.displayValue,"")}appendTail(t){return super.appendTail(t).aggregate(this._appendPlaceholder())}_appendEager(){var t;const s=new A;let n=(t=this._mapPosToBlock(this.displayValue.length))==null?void 0:t.index;if(n==null)return s;this._blocks[n].isFilled&&++n;for(let l=n;l<this._blocks.length;++l){const a=this._blocks[l]._appendEager();if(!a.inserted)break;s.aggregate(a)}return s}_appendCharRaw(t,s){s===void 0&&(s={});const n=this._mapPosToBlock(this.displayValue.length),l=new A;if(!n)return l;for(let r=n.index,i;i=this._blocks[r];++r){var a;const d=i._appendChar(t,{...s,_beforeTailState:(a=s._beforeTailState)==null||(a=a._blocks)==null?void 0:a[r]});if(l.aggregate(d),d.consumed)break}return l}extractTail(t,s){t===void 0&&(t=0),s===void 0&&(s=this.displayValue.length);const n=new ce;return t===s||this._forEachBlocksInRange(t,s,(l,a,r,i)=>{const d=l.extractTail(r,i);d.stop=this._findStopBefore(a),d.from=this._blockStartPos(a),d instanceof ce&&(d.blockIndex=a),n.extend(d)}),n}extractInput(t,s,n){if(t===void 0&&(t=0),s===void 0&&(s=this.displayValue.length),n===void 0&&(n={}),t===s)return"";let l="";return this._forEachBlocksInRange(t,s,(a,r,i,d)=>{l+=a.extractInput(i,d,n)}),l}_findStopBefore(t){let s;for(let n=0;n<this._stops.length;++n){const l=this._stops[n];if(l<=t)s=l;else break}return s}_appendPlaceholder(t){const s=new A;if(this.lazy&&t==null)return s;const n=this._mapPosToBlock(this.displayValue.length);if(!n)return s;const l=n.index,a=t??this._blocks.length;return this._blocks.slice(l,a).forEach(r=>{if(!r.lazy||t!=null){var i;s.aggregate(r._appendPlaceholder((i=r._blocks)==null?void 0:i.length))}}),s}_mapPosToBlock(t){let s="";for(let n=0;n<this._blocks.length;++n){const l=this._blocks[n],a=s.length;if(s+=l.displayValue,t<=s.length)return{index:n,offset:t-a}}}_blockStartPos(t){return this._blocks.slice(0,t).reduce((s,n)=>s+=n.displayValue.length,0)}_forEachBlocksInRange(t,s,n){s===void 0&&(s=this.displayValue.length);const l=this._mapPosToBlock(t);if(l){const a=this._mapPosToBlock(s),r=a&&l.index===a.index,i=l.offset,d=a&&r?a.offset:this._blocks[l.index].displayValue.length;if(n(this._blocks[l.index],l.index,i,d),a&&!r){for(let u=l.index+1;u<a.index;++u)n(this._blocks[u],u,0,this._blocks[u].displayValue.length);n(this._blocks[a.index],a.index,0,a.offset)}}}remove(t,s){t===void 0&&(t=0),s===void 0&&(s=this.displayValue.length);const n=super.remove(t,s);return this._forEachBlocksInRange(t,s,(l,a,r,i)=>{n.aggregate(l.remove(r,i))}),n}nearestInputPos(t,s){if(s===void 0&&(s=E.NONE),!this._blocks.length)return 0;const n=new ni(this,t);if(s===E.NONE)return n.pushRightBeforeInput()||(n.popState(),n.pushLeftBeforeInput())?n.pos:this.displayValue.length;if(s===E.LEFT||s===E.FORCE_LEFT){if(s===E.LEFT){if(n.pushRightBeforeFilled(),n.ok&&n.pos===t)return t;n.popState()}if(n.pushLeftBeforeInput(),n.pushLeftBeforeRequired(),n.pushLeftBeforeFilled(),s===E.LEFT){if(n.pushRightBeforeInput(),n.pushRightBeforeRequired(),n.ok&&n.pos<=t||(n.popState(),n.ok&&n.pos<=t))return n.pos;n.popState()}return n.ok?n.pos:s===E.FORCE_LEFT?0:(n.popState(),n.ok||(n.popState(),n.ok)?n.pos:0)}return s===E.RIGHT||s===E.FORCE_RIGHT?(n.pushRightBeforeInput(),n.pushRightBeforeRequired(),n.pushRightBeforeFilled()?n.pos:s===E.FORCE_RIGHT?this.displayValue.length:(n.popState(),n.ok||(n.popState(),n.ok)?n.pos:this.nearestInputPos(t,E.LEFT))):t}totalInputPositions(t,s){t===void 0&&(t=0),s===void 0&&(s=this.displayValue.length);let n=0;return this._forEachBlocksInRange(t,s,(l,a,r,i)=>{n+=l.totalInputPositions(r,i)}),n}maskedBlock(t){return this.maskedBlocks(t)[0]}maskedBlocks(t){const s=this._maskedBlocks[t];return s?s.map(n=>this._blocks[n]):[]}pad(t){const s=new A;return this._forEachBlocksInRange(0,this.displayValue.length,n=>s.aggregate(n.pad(t))),s}}K.DEFAULTS={...q.DEFAULTS,lazy:!0,placeholderChar:"_"},K.STOP_CHAR="`",K.ESCAPE_CHAR="\\",K.InputDefinition=Ve,K.FixedDefinition=Ue,S.MaskedPattern=K;class Ce extends K{get _matchFrom(){return this.maxLength-String(this.from).length}constructor(t){super(t)}updateOptions(t){super.updateOptions(t)}_update(t){const{to:s=this.to||0,from:n=this.from||0,maxLength:l=this.maxLength||0,autofix:a=this.autofix,...r}=t;this.to=s,this.from=n,this.maxLength=Math.max(String(s).length,l),this.autofix=a;const i=String(this.from).padStart(this.maxLength,"0"),d=String(this.to).padStart(this.maxLength,"0");let u=0;for(;u<d.length&&d[u]===i[u];)++u;r.mask=d.slice(0,u).replace(/0/g,"\\0")+"0".repeat(this.maxLength-u),super._update(r)}get isComplete(){return super.isComplete&&!!this.value}boundaries(t){let s="",n="";const[,l,a]=t.match(/^(\D*)(\d*)(\D*)/)||[];return a&&(s="0".repeat(l.length)+a,n="9".repeat(l.length)+a),s=s.padEnd(this.maxLength,"0"),n=n.padEnd(this.maxLength,"9"),[s,n]}doPrepareChar(t,s){s===void 0&&(s={});let n;return[t,n]=super.doPrepareChar(t.replace(/\D/g,""),s),t||(n.skip=!this.isComplete),[t,n]}_appendCharRaw(t,s){if(s===void 0&&(s={}),!this.autofix||this.value.length+1>this.maxLength)return super._appendCharRaw(t,s);const n=String(this.from).padStart(this.maxLength,"0"),l=String(this.to).padStart(this.maxLength,"0"),[a,r]=this.boundaries(this.value+t);return Number(r)<this.from?super._appendCharRaw(n[this.value.length],s):Number(a)>this.to?!s.tail&&this.autofix==="pad"&&this.value.length+1<this.maxLength?super._appendCharRaw(n[this.value.length],s).aggregate(this._appendCharRaw(t,s)):super._appendCharRaw(l[this.value.length],s):super._appendCharRaw(t,s)}doValidate(t){const s=this.value;if(s.search(/[^0]/)===-1&&s.length<=this._matchFrom)return!0;const[l,a]=this.boundaries(s);return this.from<=Number(a)&&Number(l)<=this.to&&super.doValidate(t)}pad(t){const s=new A;if(this.value.length===this.maxLength)return s;const n=this.value,l=this.maxLength-this.value.length;if(l){this.reset();for(let a=0;a<l;++a)s.aggregate(super._appendCharRaw("0",t));n.split("").forEach(a=>this._appendCharRaw(a))}return s}}S.MaskedRange=Ce;const li="d{.}`m{.}`Y";class re extends K{static extractPatternOptions(t){const{mask:s,pattern:n,...l}=t;return{...l,mask:ue(s)?s:n}}constructor(t){super(re.extractPatternOptions({...re.DEFAULTS,...t}))}updateOptions(t){super.updateOptions(t)}_update(t){const{mask:s,pattern:n,blocks:l,...a}={...re.DEFAULTS,...t},r=Object.assign({},re.GET_DEFAULT_BLOCKS());t.min&&(r.Y.from=t.min.getFullYear()),t.max&&(r.Y.to=t.max.getFullYear()),t.min&&t.max&&r.Y.from===r.Y.to&&(r.m.from=t.min.getMonth()+1,r.m.to=t.max.getMonth()+1,r.m.from===r.m.to&&(r.d.from=t.min.getDate(),r.d.to=t.max.getDate())),Object.assign(r,this.blocks,l),super._update({...a,mask:ue(s)?s:n,blocks:r})}doValidate(t){const s=this.date;return super.doValidate(t)&&(!this.isComplete||this.isDateExist(this.value)&&s!=null&&(this.min==null||this.min<=s)&&(this.max==null||s<=this.max))}isDateExist(t){return this.format(this.parse(t,this),this).indexOf(t)>=0}get date(){return this.typedValue}set date(t){this.typedValue=t}get typedValue(){return this.isComplete?super.typedValue:null}set typedValue(t){super.typedValue=t}maskEquals(t){return t===Date||super.maskEquals(t)}optionsIsChanged(t){return super.optionsIsChanged(re.extractPatternOptions(t))}}re.GET_DEFAULT_BLOCKS=()=>({d:{mask:Ce,from:1,to:31,maxLength:2},m:{mask:Ce,from:1,to:12,maxLength:2},Y:{mask:Ce,from:1900,to:9999}}),re.DEFAULTS={...K.DEFAULTS,mask:Date,pattern:li,format:(o,t)=>{if(!o)return"";const s=String(o.getDate()).padStart(2,"0"),n=String(o.getMonth()+1).padStart(2,"0"),l=o.getFullYear();return[s,n,l].join(".")},parse:(o,t)=>{const[s,n,l]=o.split(".").map(Number);return new Date(l,n-1,s)}},S.MaskedDate=re;class ve extends q{constructor(t){super({...ve.DEFAULTS,...t}),this.currentMask=void 0}updateOptions(t){super.updateOptions(t)}_update(t){super._update(t),"mask"in t&&(this.exposeMask=void 0,this.compiledMasks=Array.isArray(t.mask)?t.mask.map(s=>{const{expose:n,...l}=be(s),a=le({overwrite:this._overwrite,eager:this._eager,skipInvalid:this._skipInvalid,...l});return n&&(this.exposeMask=a),a}):[])}_appendCharRaw(t,s){s===void 0&&(s={});const n=this._applyDispatch(t,s);return this.currentMask&&n.aggregate(this.currentMask._appendChar(t,this.currentMaskFlags(s))),n}_applyDispatch(t,s,n){t===void 0&&(t=""),s===void 0&&(s={}),n===void 0&&(n="");const l=s.tail&&s._beforeTailState!=null?s._beforeTailState._value:this.value,a=this.rawInputValue,r=s.tail&&s._beforeTailState!=null?s._beforeTailState._rawInputValue:a,i=a.slice(r.length),d=this.currentMask,u=new A,c=d?.state;return this.currentMask=this.doDispatch(t,{...s},n),this.currentMask&&(this.currentMask!==d?(this.currentMask.reset(),r&&(this.currentMask.append(r,{raw:!0}),u.tailShift=this.currentMask.value.length-l.length),i&&(u.tailShift+=this.currentMask.append(i,{raw:!0,tail:!0}).tailShift)):c&&(this.currentMask.state=c)),u}_appendPlaceholder(){const t=this._applyDispatch();return this.currentMask&&t.aggregate(this.currentMask._appendPlaceholder()),t}_appendEager(){const t=this._applyDispatch();return this.currentMask&&t.aggregate(this.currentMask._appendEager()),t}appendTail(t){const s=new A;return t&&s.aggregate(this._applyDispatch("",{},t)),s.aggregate(this.currentMask?this.currentMask.appendTail(t):super.appendTail(t))}currentMaskFlags(t){var s,n;return{...t,_beforeTailState:((s=t._beforeTailState)==null?void 0:s.currentMaskRef)===this.currentMask&&((n=t._beforeTailState)==null?void 0:n.currentMask)||t._beforeTailState}}doDispatch(t,s,n){return s===void 0&&(s={}),n===void 0&&(n=""),this.dispatch(t,this,s,n)}doValidate(t){return super.doValidate(t)&&(!this.currentMask||this.currentMask.doValidate(this.currentMaskFlags(t)))}doPrepare(t,s){s===void 0&&(s={});let[n,l]=super.doPrepare(t,s);if(this.currentMask){let a;[n,a]=super.doPrepare(n,this.currentMaskFlags(s)),l=l.aggregate(a)}return[n,l]}doPrepareChar(t,s){s===void 0&&(s={});let[n,l]=super.doPrepareChar(t,s);if(this.currentMask){let a;[n,a]=super.doPrepareChar(n,this.currentMaskFlags(s)),l=l.aggregate(a)}return[n,l]}reset(){var t;(t=this.currentMask)==null||t.reset(),this.compiledMasks.forEach(s=>s.reset())}get value(){return this.exposeMask?this.exposeMask.value:this.currentMask?this.currentMask.value:""}set value(t){this.exposeMask?(this.exposeMask.value=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.value=t}get unmaskedValue(){return this.exposeMask?this.exposeMask.unmaskedValue:this.currentMask?this.currentMask.unmaskedValue:""}set unmaskedValue(t){this.exposeMask?(this.exposeMask.unmaskedValue=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.unmaskedValue=t}get typedValue(){return this.exposeMask?this.exposeMask.typedValue:this.currentMask?this.currentMask.typedValue:""}set typedValue(t){if(this.exposeMask){this.exposeMask.typedValue=t,this.currentMask=this.exposeMask,this._applyDispatch();return}let s=String(t);this.currentMask&&(this.currentMask.typedValue=t,s=this.currentMask.unmaskedValue),this.unmaskedValue=s}get displayValue(){return this.currentMask?this.currentMask.displayValue:""}get isComplete(){var t;return!!((t=this.currentMask)!=null&&t.isComplete)}get isFilled(){var t;return!!((t=this.currentMask)!=null&&t.isFilled)}remove(t,s){const n=new A;return this.currentMask&&n.aggregate(this.currentMask.remove(t,s)).aggregate(this._applyDispatch()),n}get state(){var t;return{...super.state,_rawInputValue:this.rawInputValue,compiledMasks:this.compiledMasks.map(s=>s.state),currentMaskRef:this.currentMask,currentMask:(t=this.currentMask)==null?void 0:t.state}}set state(t){const{compiledMasks:s,currentMaskRef:n,currentMask:l,...a}=t;s&&this.compiledMasks.forEach((r,i)=>r.state=s[i]),n!=null&&(this.currentMask=n,this.currentMask.state=l),super.state=a}extractInput(t,s,n){return this.currentMask?this.currentMask.extractInput(t,s,n):""}extractTail(t,s){return this.currentMask?this.currentMask.extractTail(t,s):super.extractTail(t,s)}doCommit(){this.currentMask&&this.currentMask.doCommit(),super.doCommit()}nearestInputPos(t,s){return this.currentMask?this.currentMask.nearestInputPos(t,s):super.nearestInputPos(t,s)}get overwrite(){return this.currentMask?this.currentMask.overwrite:this._overwrite}set overwrite(t){this._overwrite=t}get eager(){return this.currentMask?this.currentMask.eager:this._eager}set eager(t){this._eager=t}get skipInvalid(){return this.currentMask?this.currentMask.skipInvalid:this._skipInvalid}set skipInvalid(t){this._skipInvalid=t}get autofix(){return this.currentMask?this.currentMask.autofix:this._autofix}set autofix(t){this._autofix=t}maskEquals(t){return Array.isArray(t)?this.compiledMasks.every((s,n)=>{if(!t[n])return;const{mask:l,...a}=t[n];return Fe(s,a)&&s.maskEquals(l)}):super.maskEquals(t)}typedValueEquals(t){var s;return!!((s=this.currentMask)!=null&&s.typedValueEquals(t))}}ve.DEFAULTS={...q.DEFAULTS,dispatch:(o,t,s,n)=>{if(!t.compiledMasks.length)return;const l=t.rawInputValue,a=t.compiledMasks.map((r,i)=>{const d=t.currentMask===r,u=d?r.displayValue.length:r.nearestInputPos(r.displayValue.length,E.FORCE_LEFT);return r.rawInputValue!==l?(r.reset(),r.append(l,{raw:!0})):d||r.remove(u),r.append(o,t.currentMaskFlags(s)),r.appendTail(n),{index:i,weight:r.rawInputValue.length,totalInputPositions:r.totalInputPositions(0,Math.max(u,r.nearestInputPos(r.displayValue.length,E.FORCE_LEFT)))}});return a.sort((r,i)=>i.weight-r.weight||i.totalInputPositions-r.totalInputPositions),t.compiledMasks[a[0].index]}},S.MaskedDynamic=ve;class Be extends K{constructor(t){super({...Be.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){const{enum:s,...n}=t;if(s){const l=s.map(i=>i.length),a=Math.min(...l),r=Math.max(...l)-a;n.mask="*".repeat(a),r&&(n.mask+="["+"*".repeat(r)+"]"),this.enum=s}super._update(n)}_appendCharRaw(t,s){s===void 0&&(s={});const n=Math.min(this.nearestInputPos(0,E.FORCE_RIGHT),this.value.length),l=this.enum.filter(a=>this.matchValue(a,this.unmaskedValue+t,n));if(l.length){l.length===1&&this._forEachBlocksInRange(0,this.value.length,(r,i)=>{const d=l[0][i];i>=this.value.length||d===r.value||(r.reset(),r._appendChar(d,s))});const a=super._appendCharRaw(l[0][this.value.length],s);return l.length===1&&l[0].slice(this.unmaskedValue.length).split("").forEach(r=>a.aggregate(super._appendCharRaw(r))),a}return new A({skip:!this.isComplete})}extractTail(t,s){return t===void 0&&(t=0),s===void 0&&(s=this.displayValue.length),new ae("",t)}remove(t,s){if(t===void 0&&(t=0),s===void 0&&(s=this.displayValue.length),t===s)return new A;const n=Math.min(super.nearestInputPos(0,E.FORCE_RIGHT),this.value.length);let l;for(l=t;l>=0&&!(this.enum.filter(i=>this.matchValue(i,this.value.slice(n,l),n)).length>1);--l);const a=super.remove(l,s);return a.tailShift+=l-t,a}get isComplete(){return this.enum.indexOf(this.value)>=0}}Be.DEFAULTS={...K.DEFAULTS,matchValue:(o,t,s)=>o.indexOf(t,s)===s},S.MaskedEnum=Be;class Mt extends q{updateOptions(t){super.updateOptions(t)}_update(t){super._update({...t,validate:t.mask})}}S.MaskedFunction=Mt;var Ft;class X extends q{constructor(t){super({...X.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){super._update(t),this._updateRegExps()}_updateRegExps(){const t="^"+(this.allowNegative?"[+|\\-]?":""),s="\\d*",n=(this.scale?"("+ze(this.radix)+"\\d{0,"+this.scale+"})?":"")+"$";this._numberRegExp=new RegExp(t+s+n),this._mapToRadixRegExp=new RegExp("["+this.mapToRadix.map(ze).join("")+"]","g"),this._thousandsSeparatorRegExp=new RegExp(ze(this.thousandsSeparator),"g")}_removeThousandsSeparators(t){return t.replace(this._thousandsSeparatorRegExp,"")}_insertThousandsSeparators(t){const s=t.split(this.radix);return s[0]=s[0].replace(/\B(?=(\d{3})+(?!\d))/g,this.thousandsSeparator),s.join(this.radix)}doPrepareChar(t,s){s===void 0&&(s={});const[n,l]=super.doPrepareChar(this._removeThousandsSeparators(this.scale&&this.mapToRadix.length&&(s.input&&s.raw||!s.input&&!s.raw)?t.replace(this._mapToRadixRegExp,this.radix):t),s);return t&&!n&&(l.skip=!0),n&&!this.allowPositive&&!this.value&&n!=="-"&&l.aggregate(this._appendChar("-")),[n,l]}_separatorsCount(t,s){s===void 0&&(s=!1);let n=0;for(let l=0;l<t;++l)this._value.indexOf(this.thousandsSeparator,l)===l&&(++n,s&&(t+=this.thousandsSeparator.length));return n}_separatorsCountFromSlice(t){return t===void 0&&(t=this._value),this._separatorsCount(this._removeThousandsSeparators(t).length,!0)}extractInput(t,s,n){return t===void 0&&(t=0),s===void 0&&(s=this.displayValue.length),[t,s]=this._adjustRangeWithSeparators(t,s),this._removeThousandsSeparators(super.extractInput(t,s,n))}_appendCharRaw(t,s){s===void 0&&(s={});const n=s.tail&&s._beforeTailState?s._beforeTailState._value:this._value,l=this._separatorsCountFromSlice(n);this._value=this._removeThousandsSeparators(this.value);const a=this._value;this._value+=t;const r=this.number;let i=!isNaN(r),d=!1;if(i){let m;this.min!=null&&this.min<0&&this.number<this.min&&(m=this.min),this.max!=null&&this.max>0&&this.number>this.max&&(m=this.max),m!=null&&(this.autofix?(this._value=this.format(m,this).replace(X.UNMASKED_RADIX,this.radix),d||(d=a===this._value&&!s.tail)):i=!1),i&&(i=!!this._value.match(this._numberRegExp))}let u;i?u=new A({inserted:this._value.slice(a.length),rawInserted:d?"":t,skip:d}):(this._value=a,u=new A),this._value=this._insertThousandsSeparators(this._value);const c=s.tail&&s._beforeTailState?s._beforeTailState._value:this._value,p=this._separatorsCountFromSlice(c);return u.tailShift+=(p-l)*this.thousandsSeparator.length,u}_findSeparatorAround(t){if(this.thousandsSeparator){const s=t-this.thousandsSeparator.length+1,n=this.value.indexOf(this.thousandsSeparator,s);if(n<=t)return n}return-1}_adjustRangeWithSeparators(t,s){const n=this._findSeparatorAround(t);n>=0&&(t=n);const l=this._findSeparatorAround(s);return l>=0&&(s=l+this.thousandsSeparator.length),[t,s]}remove(t,s){t===void 0&&(t=0),s===void 0&&(s=this.displayValue.length),[t,s]=this._adjustRangeWithSeparators(t,s);const n=this.value.slice(0,t),l=this.value.slice(s),a=this._separatorsCount(n.length);this._value=this._insertThousandsSeparators(this._removeThousandsSeparators(n+l));const r=this._separatorsCountFromSlice(n);return new A({tailShift:(r-a)*this.thousandsSeparator.length})}nearestInputPos(t,s){if(!this.thousandsSeparator)return t;switch(s){case E.NONE:case E.LEFT:case E.FORCE_LEFT:{const n=this._findSeparatorAround(t-1);if(n>=0){const l=n+this.thousandsSeparator.length;if(t<l||this.value.length<=l||s===E.FORCE_LEFT)return n}break}case E.RIGHT:case E.FORCE_RIGHT:{const n=this._findSeparatorAround(t);if(n>=0)return n+this.thousandsSeparator.length}}return t}doCommit(){if(this.value){const t=this.number;let s=t;this.min!=null&&(s=Math.max(s,this.min)),this.max!=null&&(s=Math.min(s,this.max)),s!==t&&(this.unmaskedValue=this.format(s,this));let n=this.value;this.normalizeZeros&&(n=this._normalizeZeros(n)),this.padFractionalZeros&&this.scale>0&&(n=this._padFractionalZeros(n)),this._value=n}super.doCommit()}_normalizeZeros(t){const s=this._removeThousandsSeparators(t).split(this.radix);return s[0]=s[0].replace(/^(\D*)(0*)(\d*)/,(n,l,a,r)=>l+r),t.length&&!/\d$/.test(s[0])&&(s[0]=s[0]+"0"),s.length>1&&(s[1]=s[1].replace(/0*$/,""),s[1].length||(s.length=1)),this._insertThousandsSeparators(s.join(this.radix))}_padFractionalZeros(t){if(!t)return t;const s=t.split(this.radix);return s.length<2&&s.push(""),s[1]=s[1].padEnd(this.scale,"0"),s.join(this.radix)}doSkipInvalid(t,s,n){s===void 0&&(s={});const l=this.scale===0&&t!==this.thousandsSeparator&&(t===this.radix||t===X.UNMASKED_RADIX||this.mapToRadix.includes(t));return super.doSkipInvalid(t,s,n)&&!l}get unmaskedValue(){return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix,X.UNMASKED_RADIX)}set unmaskedValue(t){super.unmaskedValue=t}get typedValue(){return this.parse(this.unmaskedValue,this)}set typedValue(t){this.rawInputValue=this.format(t,this).replace(X.UNMASKED_RADIX,this.radix)}get number(){return this.typedValue}set number(t){this.typedValue=t}get allowNegative(){return this.min!=null&&this.min<0||this.max!=null&&this.max<0}get allowPositive(){return this.min!=null&&this.min>0||this.max!=null&&this.max>0}typedValueEquals(t){return(super.typedValueEquals(t)||X.EMPTY_VALUES.includes(t)&&X.EMPTY_VALUES.includes(this.typedValue))&&!(t===0&&this.value==="")}}Ft=X,X.UNMASKED_RADIX=".",X.EMPTY_VALUES=[...q.EMPTY_VALUES,0],X.DEFAULTS={...q.DEFAULTS,mask:Number,radix:",",thousandsSeparator:"",mapToRadix:[Ft.UNMASKED_RADIX],min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER,scale:2,normalizeZeros:!0,padFractionalZeros:!1,parse:Number,format:o=>o.toLocaleString("en-US",{useGrouping:!1,maximumFractionDigits:20})},S.MaskedNumber=X;const De={MASKED:"value",UNMASKED:"unmaskedValue",TYPED:"typedValue"};function Pe(o,t,s){t===void 0&&(t=De.MASKED),s===void 0&&(s=De.MASKED);const n=le(o);return l=>n.runIsolated(a=>(a[t]=l,a[s]))}function At(o,t,s,n){return Pe(t,s,n)(o)}S.PIPE_TYPE=De,S.createPipe=Pe,S.pipe=At;class $t extends K{get repeatFrom(){var t;return(t=Array.isArray(this.repeat)?this.repeat[0]:this.repeat===1/0?0:this.repeat)!=null?t:0}get repeatTo(){var t;return(t=Array.isArray(this.repeat)?this.repeat[1]:this.repeat)!=null?t:1/0}constructor(t){super(t)}updateOptions(t){super.updateOptions(t)}_update(t){var s,n,l;const{repeat:a,...r}=be(t);this._blockOpts=Object.assign({},this._blockOpts,r);const i=le(this._blockOpts);this.repeat=(s=(n=a??i.repeat)!=null?n:this.repeat)!=null?s:1/0,super._update({mask:"m".repeat(Math.max(this.repeatTo===1/0&&((l=this._blocks)==null?void 0:l.length)||0,this.repeatFrom)),blocks:{m:i},eager:i.eager,overwrite:i.overwrite,skipInvalid:i.skipInvalid,lazy:i.lazy,placeholderChar:i.placeholderChar,displayChar:i.displayChar})}_allocateBlock(t){if(t<this._blocks.length)return this._blocks[t];if(this.repeatTo===1/0||this._blocks.length<this.repeatTo)return this._blocks.push(le(this._blockOpts)),this.mask+="m",this._blocks[this._blocks.length-1]}_appendCharRaw(t,s){s===void 0&&(s={});const n=new A;for(let d=(l=(a=this._mapPosToBlock(this.displayValue.length))==null?void 0:a.index)!=null?l:Math.max(this._blocks.length-1,0),u,c;u=(r=this._blocks[d])!=null?r:c=!c&&this._allocateBlock(d);++d){var l,a,r,i;const p=u._appendChar(t,{...s,_beforeTailState:(i=s._beforeTailState)==null||(i=i._blocks)==null?void 0:i[d]});if(p.skip&&c){this._blocks.pop(),this.mask=this.mask.slice(1);break}if(n.aggregate(p),p.consumed)break}return n}_trimEmptyTail(t,s){var n,l;t===void 0&&(t=0);const a=Math.max(((n=this._mapPosToBlock(t))==null?void 0:n.index)||0,this.repeatFrom,0);let r;s!=null&&(r=(l=this._mapPosToBlock(s))==null?void 0:l.index),r==null&&(r=this._blocks.length-1);let i=0;for(let d=r;a<=d&&!this._blocks[d].unmaskedValue;--d,++i);i&&(this._blocks.splice(r-i+1,i),this.mask=this.mask.slice(i))}reset(){super.reset(),this._trimEmptyTail()}remove(t,s){t===void 0&&(t=0),s===void 0&&(s=this.displayValue.length);const n=super.remove(t,s);return this._trimEmptyTail(t,s),n}totalInputPositions(t,s){return t===void 0&&(t=0),s==null&&this.repeatTo===1/0?1/0:super.totalInputPositions(t,s)}get state(){return super.state}set state(t){this._blocks.length=t._blocks.length,this.mask=this.mask.slice(0,this._blocks.length),super.state=t}}S.RepeatBlock=$t;try{globalThis.IMask=S}catch{}const ai=Object.freeze(Object.defineProperty({__proto__:null,ChangeDetails:A,ChunksTailDetails:ce,DIRECTION:E,HTMLContenteditableMaskElement:je,HTMLInputMaskElement:Bt,HTMLMaskElement:Ee,InputMask:Nt,MaskElement:Ae,Masked:q,MaskedDate:re,MaskedDynamic:ve,MaskedEnum:Be,MaskedFunction:Mt,MaskedNumber:X,MaskedPattern:K,MaskedRange:Ce,MaskedRegExp:St,PIPE_TYPE:De,PatternFixedDefinition:Ue,PatternInputDefinition:Ve,RepeatBlock:$t,createMask:le,createPipe:Pe,default:S,forceDirection:Vt,normalizeOpts:be,pipe:At},Symbol.toStringTag,{value:"Module"}));I.ModalEdit=xt,I.VForm=me,I.VsInputCheckbox=We,I.VsInputColor=mt,I.VsInputContainer=rt,I.VsInputDate=Xe,I.VsInputEmail=Je,I.VsInputFile=nt,I.VsInputFileList=lt,I.VsInputKeyValue=ht,I.VsInputMask=Ye,I.VsInputNumber=Ke,I.VsInputRadio=Re,I.VsInputRange=ft,I.VsInputSelect=Oe,I.VsInputSlug=pt,I.VsInputStatic=Te,I.VsInputSwitcher=Le,I.VsInputTag=ct,I.VsInputText=xe,I.VsInputTextarea=ot,I.default=me,I.inputs=gt,I.vsInputDatatable=dt,I.vsInputMap=ut,Object.defineProperties(I,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
package/package.json CHANGED
@@ -1,68 +1,68 @@
1
- {
2
- "name": "@opengis/form",
3
- "private": false,
4
- "version": "0.0.37",
5
- "type": "module",
6
- "main": "./dist/index.js",
7
- "types": "./dist/index.d.ts",
8
- "description": "A flexible and extensible Vue form library",
9
- "homepage": "https://form.opengis.info/",
10
- "author": {
11
- "name": "OpenGIS",
12
- "url": "https://opengis.info/"
13
- },
14
- "files": [
15
- "dist"
16
- ],
17
- "keywords": [
18
- "vuejs",
19
- "vue",
20
- "forms",
21
- "form",
22
- "form-builder",
23
- "form-generator",
24
- "vue-form",
25
- "vue-form-generator",
26
- "vue3",
27
- "forms-builder",
28
- "vueforms",
29
- "vueform",
30
- "form-generator-vue3"
31
- ],
32
- "scripts": {
33
- "dev": "vite",
34
- "build": "vue-tsc -b && vite build && npm run build:types",
35
- "type-check": "vue-tsc --noEmit -p tsconfig.app.json",
36
- "build:types": "vue-tsc --declaration --emitDeclarationOnly -p tsconfig.app.json",
37
- "build:only": "vite build",
38
- "build:app": "app=true vite build",
39
- "prepublishOnly": "bun run build",
40
- "preview": "vite preview",
41
- "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore"
42
- },
43
- "devDependencies": {
44
- "@opengis/core": "^0.0.25",
45
- "@tsconfig/node22": "^22.0.2",
46
- "@types/node": "^24.2.1",
47
- "@typescript-eslint/parser": "^6.21.0",
48
- "@vitejs/plugin-vue": "^6.0.0",
49
- "@vue/eslint-config-typescript": "^12.0.0",
50
- "@vue/tsconfig": "^0.7.0",
51
- "eslint": "^8.2.0",
52
- "eslint-config-airbnb": "^19.0.4",
53
- "eslint-plugin-import": "^2.25.3",
54
- "eslint-plugin-vue": "^9.33.0",
55
- "globals": "^16.0.0",
56
- "imask": "^7.6.1",
57
- "mitt": "^3.0.1",
58
- "moment": "^2.30.1",
59
- "prettier": "^3.2.5",
60
- "sass": "^1.72.0",
61
- "typescript": "~5.8.3",
62
- "vite": "^7.0.0",
63
- "vue-tsc": "^2.2.10"
64
- },
65
- "peerDependencies": {
66
- "vue": "^3.5.17"
67
- }
1
+ {
2
+ "name": "@opengis/form",
3
+ "private": false,
4
+ "version": "0.0.38",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "description": "A flexible and extensible Vue form library",
9
+ "homepage": "https://form.opengis.info/",
10
+ "author": {
11
+ "name": "OpenGIS",
12
+ "url": "https://opengis.info/"
13
+ },
14
+ "files": [
15
+ "dist"
16
+ ],
17
+ "keywords": [
18
+ "vuejs",
19
+ "vue",
20
+ "forms",
21
+ "form",
22
+ "form-builder",
23
+ "form-generator",
24
+ "vue-form",
25
+ "vue-form-generator",
26
+ "vue3",
27
+ "forms-builder",
28
+ "vueforms",
29
+ "vueform",
30
+ "form-generator-vue3"
31
+ ],
32
+ "scripts": {
33
+ "dev": "vite",
34
+ "build": "vue-tsc -b && vite build && npm run build:types",
35
+ "type-check": "vue-tsc --noEmit -p tsconfig.app.json",
36
+ "build:types": "vue-tsc --declaration --emitDeclarationOnly -p tsconfig.app.json",
37
+ "build:only": "vite build",
38
+ "build:app": "app=true vite build",
39
+ "prepublishOnly": "bun run build",
40
+ "preview": "vite preview",
41
+ "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore"
42
+ },
43
+ "devDependencies": {
44
+ "@opengis/core": "^0.0.25",
45
+ "@tsconfig/node22": "^22.0.2",
46
+ "@types/node": "^24.2.1",
47
+ "@typescript-eslint/parser": "^6.21.0",
48
+ "@vitejs/plugin-vue": "^6.0.0",
49
+ "@vue/eslint-config-typescript": "^12.0.0",
50
+ "@vue/tsconfig": "^0.7.0",
51
+ "eslint": "^8.2.0",
52
+ "eslint-config-airbnb": "^19.0.4",
53
+ "eslint-plugin-import": "^2.25.3",
54
+ "eslint-plugin-vue": "^9.33.0",
55
+ "globals": "^16.0.0",
56
+ "imask": "^7.6.1",
57
+ "mitt": "^3.0.1",
58
+ "moment": "^2.30.1",
59
+ "prettier": "^3.2.5",
60
+ "sass": "^1.72.0",
61
+ "typescript": "~5.8.3",
62
+ "vite": "^7.0.0",
63
+ "vue-tsc": "^2.2.10"
64
+ },
65
+ "peerDependencies": {
66
+ "vue": "^3.5.17"
67
+ }
68
68
  }