@opengis/gis 0.2.19 → 0.2.21

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,97 +1,97 @@
1
- (function(te,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("vue-router"),require("@opengis/core")):typeof define=="function"&&define.amd?define(["exports","vue","vue-router","@opengis/core"],e):(te=typeof globalThis<"u"?globalThis:te||self,e(te.MapCustom={},te.Vue,te.vueRouter,te.openGIScore))})(this,(function(te,e,me,ne){"use strict";/**
1
+ (function(ie,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("vue-router"),require("@opengis/core")):typeof define=="function"&&define.amd?define(["exports","vue","vue-router","@opengis/core"],e):(ie=typeof globalThis<"u"?globalThis:ie||self,e(ie.MapCustom={},ie.Vue,ie.vueRouter,ie.openGIScore))})(this,(function(ie,e,Be,ce){"use strict";/**
2
2
  * @license lucide-vue-next v0.514.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
5
5
  * See the LICENSE file in the root directory of this source tree.
6
- */const Bt=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),jn=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(n,o,r)=>r?r.toUpperCase():o.toLowerCase()),On=t=>{const n=jn(t);return n.charAt(0).toUpperCase()+n.slice(1)},zn=(...t)=>t.filter((n,o,r)=>!!n&&n.trim()!==""&&r.indexOf(n)===o).join(" ").trim();/**
6
+ */const Qt=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),ko=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(n,o,r)=>r?r.toUpperCase():o.toLowerCase()),bo=t=>{const n=ko(t);return n.charAt(0).toUpperCase()+n.slice(1)},wo=(...t)=>t.filter((n,o,r)=>!!n&&n.trim()!==""&&r.indexOf(n)===o).join(" ").trim();/**
7
7
  * @license lucide-vue-next v0.514.0 - ISC
8
8
  *
9
9
  * This source code is licensed under the ISC license.
10
10
  * See the LICENSE file in the root directory of this source tree.
11
- */var Ye={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"};/**
11
+ */var mt={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"};/**
12
12
  * @license lucide-vue-next v0.514.0 - ISC
13
13
  *
14
14
  * This source code is licensed under the ISC license.
15
15
  * See the LICENSE file in the root directory of this source tree.
16
- */const Pn=({size:t,strokeWidth:n=2,absoluteStrokeWidth:o,color:r,iconNode:i,name:l,class:a,...c},{slots:p})=>e.h("svg",{...Ye,width:t||Ye.width,height:t||Ye.height,stroke:r||Ye.stroke,"stroke-width":o?Number(n)*24/Number(t):n,class:zn("lucide",...l?[`lucide-${Bt(On(l))}-icon`,`lucide-${Bt(l)}`]:["lucide-icon"]),...c},[...i.map(d=>e.h(...d)),...p.default?[p.default()]:[]]);/**
16
+ */const _o=({size:t,strokeWidth:n=2,absoluteStrokeWidth:o,color:r,iconNode:l,name:i,class:a,...c},{slots:p})=>e.h("svg",{...mt,width:t||mt.width,height:t||mt.height,stroke:r||mt.stroke,"stroke-width":o?Number(n)*24/Number(t):n,class:wo("lucide",...i?[`lucide-${Qt(bo(i))}-icon`,`lucide-${Qt(i)}`]:["lucide-icon"]),...c},[...l.map(u=>e.h(...u)),...p.default?[p.default()]:[]]);/**
17
17
  * @license lucide-vue-next v0.514.0 - ISC
18
18
  *
19
19
  * This source code is licensed under the ISC license.
20
20
  * See the LICENSE file in the root directory of this source tree.
21
- */const _e=(t,n)=>(o,{slots:r})=>e.h(Pn,{...o,iconNode:n,name:t},r);/**
21
+ */const Ie=(t,n)=>(o,{slots:r})=>e.h(_o,{...o,iconNode:n,name:t},r);/**
22
22
  * @license lucide-vue-next v0.514.0 - ISC
23
23
  *
24
24
  * This source code is licensed under the ISC license.
25
25
  * See the LICENSE file in the root directory of this source tree.
26
- */const Rn=_e("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/**
26
+ */const Jt=Ie("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/**
27
27
  * @license lucide-vue-next v0.514.0 - ISC
28
28
  *
29
29
  * This source code is licensed under the ISC license.
30
30
  * See the LICENSE file in the root directory of this source tree.
31
- */const Un=_e("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/**
31
+ */const en=Ie("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/**
32
32
  * @license lucide-vue-next v0.514.0 - ISC
33
33
  *
34
34
  * This source code is licensed under the ISC license.
35
35
  * See the LICENSE file in the root directory of this source tree.
36
- */const qn=_e("arrow-up-left",[["path",{d:"M7 17V7h10",key:"11bw93"}],["path",{d:"M17 17 7 7",key:"2786uv"}]]);/**
36
+ */const Eo=Ie("arrow-up-left",[["path",{d:"M7 17V7h10",key:"11bw93"}],["path",{d:"M17 17 7 7",key:"2786uv"}]]);/**
37
37
  * @license lucide-vue-next v0.514.0 - ISC
38
38
  *
39
39
  * This source code is licensed under the ISC license.
40
40
  * See the LICENSE file in the root directory of this source tree.
41
- */const Yn=_e("contrast",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 18a6 6 0 0 0 0-12v12z",key:"j4l70d"}]]);/**
41
+ */const Bo=Ie("contrast",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 18a6 6 0 0 0 0-12v12z",key:"j4l70d"}]]);/**
42
42
  * @license lucide-vue-next v0.514.0 - ISC
43
43
  *
44
44
  * This source code is licensed under the ISC license.
45
45
  * See the LICENSE file in the root directory of this source tree.
46
- */const Hn=_e("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"1d0kgt"}]]);/**
46
+ */const No=Ie("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"1d0kgt"}]]);/**
47
47
  * @license lucide-vue-next v0.514.0 - ISC
48
48
  *
49
49
  * This source code is licensed under the ISC license.
50
50
  * See the LICENSE file in the root directory of this source tree.
51
- */const Wn=_e("square-pen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]);/**
51
+ */const vo=Ie("square-pen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]);/**
52
52
  * @license lucide-vue-next v0.514.0 - ISC
53
53
  *
54
54
  * This source code is licensed under the ISC license.
55
55
  * See the LICENSE file in the root directory of this source tree.
56
- */const Kn=_e("trash",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}]]);/**
56
+ */const Co=Ie("trash",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}]]);/**
57
57
  * @license lucide-vue-next v0.514.0 - ISC
58
58
  *
59
59
  * This source code is licensed under the ISC license.
60
60
  * See the LICENSE file in the root directory of this source tree.
61
- */const Zn=_e("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),Gn={class:"flex items-center justify-end col-span-3 gap-2"},Xn={class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},Qn=e.defineComponent({__name:"vs-datatable-controls",props:e.mergeModels({index:{},data:{},scheme:{}},{columns:{type:Array,default:()=>[]},columnsModifiers:{}}),emits:["update:columns"],setup(t){const n=e.defineAsyncComponent(()=>import("@opengis/form")),o=e.defineAsyncComponent(()=>import("@opengis/core").then(g=>g.VsModal)),r=t,i=e.useModel(t,"columns"),l=e.ref(!1),a=e.ref({}),c=e.ref({...r.data||{}}),p=()=>i.value=i.value.filter((g,s)=>s!==r.index),d=async()=>{const g=a.value.validate();if(g){ne.notify({type:"warning",title:"Validation",message:Object.entries(g).map(([s,f])=>`${s}: ${f}`).join(`
62
- `)});return}i.value[r.index]=c.value,l.value=!1};return(g,s)=>(e.openBlock(),e.createElementBlock("div",Gn,[e.createElementVNode("button",{onClick:s[0]||(s[0]=f=>{l.value=!0}),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:text-accent-foreground h-8 w-8 rounded-full hover:bg-gray-100"},[e.createVNode(e.unref(Wn),{class:"w-4 h-4"})]),e.createElementVNode("button",{onClick:p,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 h-8 w-8 rounded-full hover:bg-red-100 text-red-600 hover:text-red-700"},[e.createVNode(e.unref(Kn),{class:"w-4 h-4"})]),e.createVNode(e.unref(o),{size:"lg",visible:l.value,"onUpdate:visible":s[4]||(s[4]=f=>l.value=f),title:"Редагувати поле"},{footer:e.withCtx(()=>[e.createElementVNode("div",Xn,[e.createElementVNode("button",{type:"button",class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm whitespace-nowrap text-black border border-gray-200 rounded-lg hover:bg-gray-100 duration-300",onClick:s[3]||(s[3]=f=>l.value=!1)}," Скасувати "),e.createElementVNode("button",{class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm whitespace-nowrap text-white bg-blue-500 rounded-lg !border-gray-200 hover:bg-blue-700 duration-300",onClick:d}," Зберегти ")])]),default:e.withCtx(()=>[e.createVNode(e.unref(n),{values:c.value,"onUpdate:values":s[1]||(s[1]=f=>c.value=f),schema:t.scheme,form:a.value,"onUpdate:form":s[2]||(s[2]=f=>a.value=f)},null,8,["values","schema","form"])]),_:1},8,["visible"])]))}}),Jn={mounted(t){setTimeout(()=>{t.scrollWidth>t.clientWidth?t.setAttribute("title",t.textContent):t.removeAttribute("title")})},updated(t){setTimeout(()=>{t.scrollWidth>t.clientWidth?t.setAttribute("title",t.textContent):t.removeAttribute("title")})}},eo={array:"purple",boolean:"red",date:"red",datetime:"purple",number:"green",text:"blue",file:"yellow",select:"yellow",slug:"green",image:"blue",badge:"orange",title:"blue",features:"green",status:"red",tags:"yellow",category:"purple",check:"green",range:"orange",autocomplete:"yellow",other:"gray","yes/no":"green"},Nt=t=>eo[t==null?void 0:t.toLowerCase()]||"gray",to=["array","boolean","date","datetime","number","text","file","select","slug","image","badge","title","features","status","tags","category","check","range","autocomplete"],vt=t=>{var n;return to.includes((n=t||"")==null?void 0:n.toLowerCase())},W=(t,n)=>{const o=t.__vccOpts||t;for(const[r,i]of n)o[r]=i;return o},no={},oo={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:"w-4 h-4 text-gray-700 lucide lucide-type",__v0_r:"0,5361,5384"};function ro(t,n){return e.openBlock(),e.createElementBlock("svg",oo,[...n[0]||(n[0]=[e.createElementVNode("polyline",{points:"4 7 4 4 20 4 20 7"},null,-1),e.createElementVNode("line",{x1:"9",x2:"15",y1:"20",y2:"20"},null,-1),e.createElementVNode("line",{x1:"12",x2:"12",y1:"4",y2:"20"},null,-1)])])}const lo=W(no,[["render",ro]]),io={},ao={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:"w-4 h-4 text-gray-700 lucide lucide-hash",__v0_r:"0,5361,5384"};function so(t,n){return e.openBlock(),e.createElementBlock("svg",ao,[...n[0]||(n[0]=[e.createElementVNode("line",{x1:"4",x2:"20",y1:"9",y2:"9"},null,-1),e.createElementVNode("line",{x1:"4",x2:"20",y1:"15",y2:"15"},null,-1),e.createElementVNode("line",{x1:"10",x2:"8",y1:"3",y2:"21"},null,-1),e.createElementVNode("line",{x1:"16",x2:"14",y1:"3",y2:"21"},null,-1)])])}const co=W(io,[["render",so]]),uo={},po={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:"w-4 h-4 text-gray-700 lucide lucide-calendar",__v0_r:"0,5361,5384"};function mo(t,n){return e.openBlock(),e.createElementBlock("svg",po,[...n[0]||(n[0]=[e.createElementVNode("path",{d:"M8 2v4"},null,-1),e.createElementVNode("path",{d:"M16 2v4"},null,-1),e.createElementVNode("rect",{width:"18",height:"18",x:"3",y:"4",rx:"2"},null,-1),e.createElementVNode("path",{d:"M3 10h18"},null,-1)])])}const fo=W(uo,[["render",mo]]),go={},ho={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:"w-4 h-4 text-gray-700 lucide lucide-calendar",__v0_r:"0,5361,5384"};function yo(t,n){return e.openBlock(),e.createElementBlock("svg",ho,[...n[0]||(n[0]=[e.createElementVNode("path",{d:"M8 2v4"},null,-1),e.createElementVNode("path",{d:"M16 2v4"},null,-1),e.createElementVNode("rect",{width:"18",height:"18",x:"3",y:"4",rx:"2"},null,-1),e.createElementVNode("path",{d:"M3 10h18"},null,-1)])])}const xo=W(go,[["render",yo]]),ko={},bo={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:"w-4 h-4 text-gray-700 lucide lucide-code",__v0_r:"0,5361,5384"};function _o(t,n){return e.openBlock(),e.createElementBlock("svg",bo,[...n[0]||(n[0]=[e.createElementVNode("polyline",{points:"16 18 22 12 16 6"},null,-1),e.createElementVNode("polyline",{points:"8 6 2 12 8 18"},null,-1)])])}const wo=W(ko,[["render",_o]]),Eo={},Bo={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:"w-4 h-4 text-gray-700 lucide lucide-toggle-left",__v0_r:"0,5361,5384"};function No(t,n){return e.openBlock(),e.createElementBlock("svg",Bo,[...n[0]||(n[0]=[e.createElementVNode("rect",{width:"20",height:"12",x:"2",y:"6",rx:"6",ry:"6"},null,-1),e.createElementVNode("circle",{cx:"8",cy:"12",r:"2"},null,-1)])])}const vo=W(Eo,[["render",No]]),Co={},Vo={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:"w-4 h-4 text-gray-700 lucide lucide-file-text",__v0_r:"0,5361,5384"};function $o(t,n){return e.openBlock(),e.createElementBlock("svg",Vo,[...n[0]||(n[0]=[e.createStaticVNode('<path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path>',5)])])}const Ao=W(Co,[["render",$o]]),So={},Lo={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:"w-4 h-4 text-gray-700 lucide lucide-image",__v0_r:"0,5361,5384"};function Fo(t,n){return e.openBlock(),e.createElementBlock("svg",Lo,[...n[0]||(n[0]=[e.createElementVNode("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2"},null,-1),e.createElementVNode("circle",{cx:"9",cy:"9",r:"2"},null,-1),e.createElementVNode("path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"},null,-1)])])}const Mo=W(So,[["render",Fo]]),To={},Io={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:"w-4 h-4 text-gray-700 lucide lucide-list",__v0_r:"0,5361,5384"};function Do(t,n){return e.openBlock(),e.createElementBlock("svg",Io,[...n[0]||(n[0]=[e.createStaticVNode('<line x1="8" x2="21" y1="6" y2="6"></line><line x1="8" x2="21" y1="12" y2="12"></line><line x1="8" x2="21" y1="18" y2="18"></line><line x1="3" x2="3.01" y1="6" y2="6"></line><line x1="3" x2="3.01" y1="12" y2="12"></line><line x1="3" x2="3.01" y1="18" y2="18"></line>',6)])])}const jo=W(To,[["render",Do]]),Oo={},zo={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:"w-4 h-4 text-gray-700 lucide lucide-list",__v0_r:"0,5361,5384"};function Po(t,n){return e.openBlock(),e.createElementBlock("svg",zo,[...n[0]||(n[0]=[e.createStaticVNode('<line x1="8" x2="21" y1="6" y2="6"></line><line x1="8" x2="21" y1="12" y2="12"></line><line x1="8" x2="21" y1="18" y2="18"></line><line x1="3" x2="3.01" y1="6" y2="6"></line><line x1="3" x2="3.01" y1="12" y2="12"></line><line x1="3" x2="3.01" y1="18" y2="18"></line>',6)])])}const Ro=W(Oo,[["render",Po]]),Uo={},qo={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:"w-4 h-4 text-gray-700 lucide lucide-link2",__v0_r:"0,5361,5384"};function Yo(t,n){return e.openBlock(),e.createElementBlock("svg",qo,[...n[0]||(n[0]=[e.createElementVNode("path",{d:"M9 17H7A5 5 0 0 1 7 7h2"},null,-1),e.createElementVNode("path",{d:"M15 7h2a5 5 0 1 1 0 10h-2"},null,-1),e.createElementVNode("line",{x1:"8",x2:"16",y1:"12",y2:"12"},null,-1)])])}const Ho=W(Uo,[["render",Yo]]),Wo={},Ko={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:"w-4 h-4 text-gray-700 lucide lucide-list",__v0_r:"0,5361,5384"};function Zo(t,n){return e.openBlock(),e.createElementBlock("svg",Ko,[...n[0]||(n[0]=[e.createStaticVNode('<line x1="8" x2="21" y1="6" y2="6"></line><line x1="8" x2="21" y1="12" y2="12"></line><line x1="8" x2="21" y1="18" y2="18"></line><line x1="3" x2="3.01" y1="6" y2="6"></line><line x1="3" x2="3.01" y1="12" y2="12"></line><line x1="3" x2="3.01" y1="18" y2="18"></line>',6)])])}const Go=W(Wo,[["render",Zo]]),Xo={},Qo={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:"w-4 h-4 text-gray-700 lucide lucide-link2",__v0_r:"0,5361,5384"};function Jo(t,n){return e.openBlock(),e.createElementBlock("svg",Qo,[...n[0]||(n[0]=[e.createElementVNode("path",{d:"M9 17H7A5 5 0 0 1 7 7h2"},null,-1),e.createElementVNode("path",{d:"M15 7h2a5 5 0 1 1 0 10h-2"},null,-1),e.createElementVNode("line",{x1:"8",x2:"16",y1:"12",y2:"12"},null,-1)])])}const er=W(Xo,[["render",Jo]]),tr={},nr={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:"w-4 h-4 text-gray-700 lucide lucide-list",__v0_r:"0,5361,5384"};function or(t,n){return e.openBlock(),e.createElementBlock("svg",nr,[...n[0]||(n[0]=[e.createStaticVNode('<line x1="8" x2="21" y1="6" y2="6"></line><line x1="8" x2="21" y1="12" y2="12"></line><line x1="8" x2="21" y1="18" y2="18"></line><line x1="3" x2="3.01" y1="6" y2="6"></line><line x1="3" x2="3.01" y1="12" y2="12"></line><line x1="3" x2="3.01" y1="18" y2="18"></line>',6)])])}const rr=W(tr,[["render",or]]),lr={},ir={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",height:"800px",width:"800px",version:"1.1",id:"_x32_",viewBox:"0 0 512 512","xml:space":"preserve"};function ar(t,n){return e.openBlock(),e.createElementBlock("svg",ir,[...n[0]||(n[0]=[e.createElementVNode("g",null,[e.createElementVNode("path",{class:"st0",d:"M511.989,292.396c0.021-16.486-6.344-33.136-18.945-45.703L273.605,27.242 C262.3,15.936,247.175,9.22,231.184,8.407L66.821,0.032l1.184,0.066C66.974,0.044,65.866,0,64.67,0 C47.58,0,31.105,6.783,18.944,18.955C6.783,31.106-0.001,47.58,0.011,64.67c0,1.076,0.034,2.172,0.078,3.27l8.297,163.254 c0.835,15.981,7.54,31.106,18.857,42.421l219.451,219.451c12.578,12.589,29.217,18.955,45.703,18.934 c16.496,0.021,33.124-6.356,45.703-18.934l154.956-154.945l-11.92-11.92l11.932,11.909 C505.645,325.521,512.011,308.881,511.989,292.396z M314.26,469.216c-6.08,6.08-13.895,9.044-21.864,9.067 c-7.969-0.023-15.783-2.986-21.864-9.067L51.082,249.765c-5.4-5.4-8.616-12.633-9.023-20.305L33.762,66.238l-0.034-1.569 c0-8.188,3.238-16.048,9.055-21.875c5.839-5.839,13.697-9.077,21.886-9.077l1.502,0.044l163.288,8.319 c7.683,0.396,14.904,3.6,20.305,9.012l219.45,219.45c6.059,6.069,9.033,13.884,9.056,21.853 c-0.023,7.968-2.986,15.794-9.067,21.886h0.011L314.26,469.216z"}),e.createElementVNode("path",{class:"st0",d:"M105.632,105.642c-15.366,15.378-15.366,40.27,0,55.636c15.366,15.366,40.259,15.366,55.625,0 c15.366-15.366,15.366-40.259,0-55.636C145.891,90.276,120.998,90.276,105.632,105.642z"})],-1)])])}const sr=W(lr,[["render",ar]]),cr={},dr={xmlns:"http://www.w3.org/2000/svg",width:"800px",height:"800px",viewBox:"0 0 24 24",fill:"none"};function ur(t,n){return e.openBlock(),e.createElementBlock("svg",dr,[...n[0]||(n[0]=[e.createElementVNode("path",{d:"M3 12C3 4.5885 4.5885 3 12 3C19.4115 3 21 4.5885 21 12C21 19.4115 19.4115 21 12 21C4.5885 21 3 19.4115 3 12Z",stroke:"#323232","stroke-width":"2"},null,-1),e.createElementVNode("path",{d:"M9 12L10.6828 13.6828V13.6828C10.858 13.858 11.142 13.858 11.3172 13.6828V13.6828L15 10",stroke:"#323232","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])])}const Ct={IconText:lo,IconNumber:co,IconDate:fo,IconDatetime:xo,IconRichtext:wo,IconBoolean:vo,IconFile:Ao,IconImage:Mo,IconArray:jo,IconSelect:Ro,IconSlug:Ho,IconDatalist:Go,IconReference:er,IconReferenceList:rr,IconBadge:sr,IconCheck:W(cr,[["render",ur]])},pr={key:0,class:"flex items-center justify-between mb-6"},mr={class:"flex justify-end w-full"},fr={class:"overflow-hidden bg-white border border-gray-200 shadow-sm rounded-xl flex flex-col flex-1 min-h-0"},gr={class:"table-scroll-wrapper flex-1 overflow-y-auto min-h-0"},hr={class:"table-fixed w-full text-[13px]"},yr={class:"bg-gray-50 border-b border-gray-200"},xr={key:0},kr=["onDragstart","onDragover","onDrop"],br={key:0,class:"flex w-fit items-center gap-2 text-left"},_r={class:"flex-1 min-w-0"},wr={class:"font-medium text-gray-900 truncate"},Er={class:"text-xs text-gray-500"},Br={key:0,class:"flex items-center justify-center"},Nr={key:0,class:"inline-flex items-center px-2 py-1 h-fit text-[13px] font-medium rounded-md ring-1 ring-inset ring-gray-500/10 bg-gray-100"},vr={key:1,class:"text-gray-500 text-sm"},Cr={key:2},Vr={class:"px-6 py-4"},$r={key:1},Ar=["colspan"],ve=W(e.defineComponent({__name:"vs-datatable",props:e.mergeModels({columnsScheme:{},formScheme:{},addButton:{type:Boolean,default:!0},mainColWidth:{default:""}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(t,{expose:n}){function o(V){return V.charAt(0).toUpperCase()+V.slice(1)}const r=e.defineAsyncComponent(()=>import("@opengis/core").then(V=>V.VsModal)),i=e.defineAsyncComponent(()=>import("@opengis/form")),l=e.useModel(t,"modelValue"),a=t,c=e.ref({}),p=e.ref(!1),d=e.ref({}),g=e.ref(null);n({openCreateDialog:()=>{p.value=!0}});const s=e.computed({get(){return Array.isArray(l.value)?l.value:l.value&&Array.isArray(l.value.columns)?l.value.columns:[]},set(V){Array.isArray(l.value)?l.value=V:l.value&&Array.isArray(l.value.columns)&&(l.value.columns=V)}}),f=e.computed(()=>{const V=a.columnsScheme.map(A=>A.key);return V.includes("name")&&V.includes("label")||V.includes("id")&&V.includes("label")?[{key:"main",label:"Назва",type:"main",width:"100%"},...a.columnsScheme.filter(A=>!["name","id","label"].includes(A.key))]:a.columnsScheme});function y(){p.value=!1,d.value={},g.value=null}async function u(){const V=c.value.validate();if(V){ne.notify({type:"warning",title:"Validation",message:Object.entries(V).map(([A,h])=>`${A}: ${h}`).join(`
63
- `)});return}if(g.value===null)s.value=[...s.value,{...d.value}];else{const A=[...s.value];A[g.value]={...d.value},s.value=A}y()}const m=e.ref(null),x=e.ref(null),v=V=>{m.value=V},k=V=>{x.value=V},_=V=>{if(m.value===null||m.value===V){m.value=null,x.value=null;return}const A=[...s.value],[h]=A.splice(m.value,1);A.splice(V,0,h),s.value=A,m.value=null,x.value=null};return(V,A)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[t.addButton?(e.openBlock(),e.createElementBlock("div",pr,[e.createElementVNode("div",mr,[e.createElementVNode("button",{onClick:A[0]||(A[0]=h=>p.value=!0),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring [&_svg]:shrink-0 bg-primary hover:bg-primary/90 h-10 px-4 py-2 bg-gradient-to-r from-blue-600 to-blue-500 hover:from-blue-700 hover:to-blue-600 text-white"},[...A[4]||(A[4]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-4 h-4 mr-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 4v16m8-8H4"})],-1),e.createTextVNode(" Додати поле ",-1)])])])])):e.createCommentVNode("",!0),e.createElementVNode("div",fr,[e.createElementVNode("div",gr,[e.createElementVNode("table",hr,[e.createElementVNode("colgroup",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,h=>(e.openBlock(),e.createElementBlock("col",{key:h.key,style:e.normalizeStyle(h.type==="main"?`width: ${t.mainColWidth}`:h.width?`width: ${h.width}`:"auto")},null,4))),128)),A[5]||(A[5]=e.createElementVNode("col",null,null,-1))]),e.createElementVNode("thead",null,[e.createElementVNode("tr",yr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,h=>(e.openBlock(),e.createElementBlock("th",{key:h.key,class:"px-6 py-4"},e.toDisplayString(h.label),1))),128)),A[6]||(A[6]=e.createElementVNode("th",{class:"px-6 py-4"},"Дії",-1))])]),s.value.length?(e.openBlock(),e.createElementBlock("tbody",xr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(h,$)=>(e.openBlock(),e.createElementBlock("tr",{key:h.id||h.name||$,class:e.normalizeClass(["transition-colors hover:bg-gray-50/50 cursor-move",{"opacity-50":m.value===$,"border-t-2 border-b-2 border-blue-500 bg-blue-50":x.value===$}]),draggable:"true",onDragstart:B=>v($),onDragover:e.withModifiers(B=>k($),["prevent"]),onDrop:B=>_($)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,B=>(e.openBlock(),e.createElementBlock("td",{key:B.key,class:"px-6 py-4 align-middle text-center"},[B.type==="main"?(e.openBlock(),e.createElementBlock("div",br,[A[7]||(A[7]=e.createElementVNode("span",{class:"drag-handle cursor-move mr-2 text-gray-400"},"☰",-1)),e.unref(vt)(h.format==="yes/no"?"check":h.format||h.type)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["flex items-center justify-center p-1 rounded",`bg-${e.unref(Nt)(h.format==="yes/no"?"check":h.format||h.type)}-100`])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.format==="yes/no"?"icon-check":e.unref(Ct)["Icon"+o(h.format||h.type)]||e.unref(Ct).IconText),{class:"w-4 h-4"}))],2)):e.createCommentVNode("",!0),e.createElementVNode("div",_r,[e.withDirectives((e.openBlock(),e.createElementBlock("p",wr,[e.createTextVNode(e.toDisplayString(h.name||h.id),1)])),[[e.unref(Jn)]]),e.createElementVNode("p",Er,e.toDisplayString(h.label||h.ua||h.name||h.id),1)])])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[B.type==="color"?(e.openBlock(),e.createElementBlock("div",Br,[e.createElementVNode("div",{class:e.normalizeClass(["w-4 h-4 rounded-full align-middle",`bg-[${h[B.key]}]`])},null,2)])):["format","type","meta"].includes(B.key)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[h[B.key]?(e.openBlock(),e.createElementBlock("span",Nr,e.toDisplayString(h[B.key]),1)):(e.openBlock(),e.createElementBlock("span",vr,"Не вказано"))],64)):(e.openBlock(),e.createElementBlock("span",Cr,e.toDisplayString(h[B.key]),1))],64))]))),128)),e.createElementVNode("td",Vr,[e.createVNode(Qn,{columns:s.value,"onUpdate:columns":A[1]||(A[1]=B=>s.value=B),data:h,index:$,scheme:t.formScheme},null,8,["columns","data","index","scheme"])])],42,kr))),128))])):(e.openBlock(),e.createElementBlock("tr",$r,[e.createElementVNode("td",{colspan:f.value.length+1,class:"text-gray-500 text-center py-4"}," Поля не знайдені ",8,Ar)]))])])]),e.createVNode(e.unref(r),{title:"Створити поле",size:"lg",visible:p.value,"onUpdate:visible":A[3]||(A[3]=h=>p.value=h)},{footer:e.withCtx(()=>[e.createElementVNode("div",{class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},[e.createElementVNode("button",{type:"button",onClick:y,class:"px-4 py-2 rounded bg-gray-100 text-gray-700"}," Скасувати "),e.createElementVNode("button",{type:"button",onClick:u,class:"px-4 py-2 rounded bg-blue-600 text-white"}," Зберегти1 ")])]),default:e.withCtx(()=>[e.createVNode(e.unref(i),{ref_key:"form",ref:c,modelValue:d.value,"onUpdate:modelValue":A[2]||(A[2]=h=>d.value=h),schema:t.formScheme},null,8,["modelValue","schema"])]),_:1},8,["visible"])],64))}}),[["__scopeId","data-v-1754fddd"]]),Sr={class:"p-4 text-[13px]"},Lr={class:"grid grid-cols-2 gap-x-6 gap-y-2"},Fr=["id","checked","onChange"],Mr={class:"ml-2 flex-1 min-w-0 flex items-center gap-2"},Tr={class:"font-medium text-gray-900 truncate"},Ir={class:"text-xs text-gray-500"},Dr={class:"flex justify-end gap-2 p-4 border-t w-full"},Ve=e.defineComponent({__name:"import-fields-dialog",props:e.mergeModels({fields:{default:()=>[]},title:{},idPrefix:{default:"import"},confirmText:{default:"Імпортувати"},cancelText:{default:"Скасувати"}},{visible:{type:Boolean,default:!1},visibleModifiers:{},selection:{default:[]},selectionModifiers:{}}),emits:e.mergeModels(["confirm","cancel"],["update:visible","update:selection"]),setup(t,{emit:n}){const o=e.useModel(t,"visible"),r=e.useModel(t,"selection"),i=t,l=n,a=e.defineAsyncComponent(()=>import("@opengis/core").then(k=>k.VsModal)),c=e.computed(()=>Array.isArray(i.fields)?i.fields.filter(Boolean):[]),p=k=>(k==null?void 0:k.name)??(k==null?void 0:k.id)??(k==null?void 0:k.key)??(k==null?void 0:k.code)??(k==null?void 0:k.field)??(k==null?void 0:k.value)??"",d=k=>String(p(k)??"").trim(),g=k=>(k==null?void 0:k.title)??(k==null?void 0:k.label)??d(k),s=e.computed(()=>new Set(r.value.map(k=>String(k??"").trim()))),f=k=>s.value.has(d(k)),y=k=>{const _=d(k);if(!_)return;const V=new Set(s.value);V.has(_)?V.delete(_):V.add(_),r.value=Array.from(V)},u=e.computed(()=>i.confirmText||"Імпортувати"),m=e.computed(()=>i.cancelText||"Скасувати"),x=()=>{o.value=!1,l("cancel")},v=()=>{l("confirm"),o.value=!1};return(k,_)=>(e.openBlock(),e.createBlock(e.unref(a),{visible:o.value,"onUpdate:visible":_[0]||(_[0]=V=>o.value=V),teleport:"#modal",title:t.title,size:"lg"},{footer:e.withCtx(()=>[e.createElementVNode("div",Dr,[e.createElementVNode("button",{onClick:x,class:"px-4 py-2 rounded bg-gray-100 text-gray-700"},e.toDisplayString(m.value),1),e.createElementVNode("button",{onClick:v,class:"px-4 py-2 rounded bg-blue-600 text-white"},e.toDisplayString(u.value),1)])]),default:e.withCtx(()=>[e.createElementVNode("div",Sr,[e.createElementVNode("div",Lr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,V=>(e.openBlock(),e.createElementBlock("label",{key:d(V),class:"flex items-center hover:bg-gray-100 rounded p-2 cursor-pointer"},[e.createElementVNode("input",{type:"checkbox",id:`${t.idPrefix}-${d(V)}`,checked:f(V),onChange:A=>y(V)},null,40,Fr),e.createElementVNode("div",Mr,[e.unref(vt)(V.type)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(`bg-${e.unref(Nt)(V.type)}-100 p-1 rounded`)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(`icon-${V.type}`),{class:"w-4 h-4"}))],2)):e.createCommentVNode("",!0),e.createElementVNode("div",null,[e.createElementVNode("p",Tr,e.toDisplayString(d(V)),1),e.createElementVNode("p",Ir,e.toDisplayString(g(V)),1)])])]))),128))])])]),_:1},8,["visible","title"]))}});function $e(t){return t==null?"":String(t).trim()}function we(t){return $e((t==null?void 0:t.name)??(t==null?void 0:t.id)??(t==null?void 0:t.key)??(t==null?void 0:t.code)??(t==null?void 0:t.field)??(t==null?void 0:t.value)??"")}function Ae(t,n,o){const r=Array.isArray(t)?[...t]:[],i=Array.isArray(n)?n:[],{selectedKeys:l,resolveKey:a}=o,c=new Set;for(const s of l){const f=$e(s);f&&c.add(f)}if(c.size===0)return[];const p=s=>$e(a(s)),d=[],g=new Set;for(const s of r){const f=p(s);!f||!c.has(f)||(d.push(s),g.add(f))}for(const s of i){const f=p(s);!f||g.has(f)||!c.has(f)||(d.push(s),g.add(f))}return d}const jr={class:"vs-form"},Or={class:"vs-form__body auto-rows-max container"},zr={class:"flex flex-wrap"},Pr={class:"h-fit w-full mb-6 px-2"},Rr={class:"h-fit w-full flex flex-wrap"},Ur={class:"w-full"},qr=e.defineComponent({__name:"list-tab",props:e.mergeModels({fields:{}},{data:{default:{}},dataModifiers:{},form:{},formModifiers:{}}),emits:["update:data","update:form"],setup(t){const n=e.useModel(t,"data"),o=e.useModel(t,"form"),r=t,i=e.computed(()=>Array.isArray(r.fields)?r.fields:[]),l=k=>we(k||{}),a=e.defineAsyncComponent(()=>import("@opengis/form")),c=e.ref(),p=e.ref(!1),d=e.ref([]),g=()=>{const k=f.value.map(_=>l(_)).filter(_=>_.length>0);d.value=[...k],p.value=!0},s=e.computed(()=>{var k,_;return((k=n.value)==null?void 0:k.token)||((_=n.value)==null?void 0:_.id)||"register-form"}),f=e.computed({get:()=>(n.value||(n.value={}),Array.isArray(n.value.columns)||(n.value.columns=[]),n.value.columns),set:k=>{n.value||(n.value={}),n.value.columns=Array.isArray(k)?k:[]}}),y=e.computed({get:()=>n.value||{},set:k=>{var V;const _=Array.isArray((V=n.value)==null?void 0:V.columns)?n.value.columns:[];n.value={...n.value,...k,columns:_}}});e.watch(()=>c.value,k=>{o.value=k||null},{immediate:!0}),e.watch(p,k=>{k||(d.value=[])});const u=()=>{const k=new Set(d.value.map(A=>$e(A)).filter(A=>A.length>0)),_=Array.isArray(f.value)?[...f.value]:[],V=i.value.filter(A=>k.has(l(A))).map(A=>{const h=l(A),$=A.title??A.label??h;return{...A,name:h,label:$,type:A.type||"text",meta:A.meta??"features"}});f.value=Ae(_,V,{selectedKeys:d.value,resolveKey:l}),p.value=!1,d.value=[]},m={table_name:{type:"text",label:"Table",required:!0,placeholder:"Table",validators:["required"],col:6},name:{type:"text",label:"Name",required:!0,placeholder:"Name",validators:["required"],col:6},query:{type:"text",label:"Query",placeholder:"Query",col:6},order:{type:"text",label:"Order",placeholder:"Order",col:6},description:{type:"text",label:"Description",placeholder:"Description",col:12}},x=[{key:"name",label:"Name",type:"text"},{key:"label",label:"Label",type:"text"},{key:"meta",label:"Мета",type:"text"}],v={name:{type:"text",label:"Name",required:!0},label:{type:"text",label:"Label",required:!0},format:{type:"radio",label:"Format",position:"horizontal",required:!0,options:[{text:"Text",id:"text"},{text:"Number",id:"number"},{text:"Date",id:"date"},{text:"File",id:"file"},{text:"Select",id:"select"}]},meta:{type:"combobox",label:"Мета",mode:"combo",required:!0,options:[{text:"Title",id:"title"},{text:"Features",id:"features"},{text:"Status",id:"status"},{text:"Tags",id:"tags"},{text:"Category",id:"category"},{text:"Image",id:"image"}]},data:{type:"text",label:"Класифікатор"}};return e.onBeforeUnmount(()=>{o.value=null}),(k,_)=>(e.openBlock(),e.createElementBlock("div",jr,[e.createElementVNode("div",Or,[e.createElementVNode("div",zr,[e.createElementVNode("div",Pr,[(e.openBlock(),e.createBlock(e.unref(a),{ref_key:"formEl",ref:c,key:s.value,schema:m,modelValue:y.value,"onUpdate:modelValue":_[0]||(_[0]=V=>y.value=V)},null,8,["modelValue"]))]),e.createElementVNode("div",Rr,[e.createElementVNode("div",{class:"flex justify-end mb-3 gap-2 w-full"},[e.createElementVNode("button",{onClick:g,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary hover:bg-primary/90 h-10 px-4 py-2 bg-gradient-to-r from-blue-600 to-blue-500 hover:from-blue-700 hover:to-blue-600 text-white"},[..._[4]||(_[4]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2",class:"mr-1"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 4v16m8-8H4"})],-1),e.createTextVNode(" Імпорт ",-1)])])]),e.createElementVNode("div",Ur,[e.createVNode(ve,{modelValue:f.value,"onUpdate:modelValue":_[1]||(_[1]=V=>f.value=V),"columns-scheme":x,"form-scheme":v,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])])])])]),e.createVNode(Ve,{visible:p.value,"onUpdate:visible":_[2]||(_[2]=V=>p.value=V),selection:d.value,"onUpdate:selection":_[3]||(_[3]=V=>d.value=V),fields:i.value,title:"Імпорт колонок","id-prefix":"import-column",onConfirm:u},null,8,["visible","selection","fields"])]))}}),Yr={class:"vs-form"},Hr={class:"vs-form__body auto-rows-max container"},Wr={class:"flex flex-wrap"},Kr={class:"h-fit w-full flex flex-wrap"},Zr={class:"w-full"},Gr=e.defineComponent({__name:"filter-tab",props:e.mergeModels({fields:{}},{data:{default:{}},dataModifiers:{},form:{},formModifiers:{}}),emits:["update:data","update:form"],setup(t){const n=e.useModel(t,"data"),o=e.useModel(t,"form"),r=t,i=e.computed(()=>Array.isArray(r.fields)?r.fields:[]),l=y=>we(y||{}),a=e.ref(!1),c=e.ref([]),p=()=>{const y=d.value.map(u=>l(u)).filter(u=>u.length>0);c.value=[...y],a.value=!0},d=e.computed({get:()=>(n.value||(n.value={}),Array.isArray(n.value.filters)||(n.value.filters=[]),n.value.filters),set:y=>{n.value||(n.value={}),n.value.filters=Array.isArray(y)?y:[]}});e.watch(a,y=>{y||(c.value=[])});const g=()=>{const y=new Set(c.value.map(x=>$e(x)).filter(x=>x.length>0)),u=Array.isArray(d.value)?[...d.value]:[],m=i.value.filter(x=>y.has(l(x))).map(x=>({name:l(x),label:x.title??x.label??l(x),type:x.type||"text"}));d.value=Ae(u,m,{selectedKeys:c.value,resolveKey:l}),a.value=!1,c.value=[]},s=[{key:"id",label:"Name"},{key:"label",label:"UA"},{key:"type",label:"Тип"}],f={name:{type:"text",label:"Name",required:!0,disabled:!0},label:{type:"text",label:"Label",required:!0},type:{type:"radio",label:"Тип",required:!0,position:"horizontal",options:[{text:"Check",id:"check"},{text:"Range",id:"range"},{text:"Date",id:"date"},{text:"Text",id:"text"},{text:"Select",id:"select"}]},hidden:{label:"Приховати",type:"Switcher"},data:{type:"text",label:"Класифікатор",conditions:["type","in",["select","autocomplete","check"]]}};return e.onBeforeUnmount(()=>{o.value=null}),(y,u)=>(e.openBlock(),e.createElementBlock("div",Yr,[e.createElementVNode("div",Hr,[e.createElementVNode("div",Wr,[u[4]||(u[4]=e.createElementVNode("div",{class:"h-fit w-full flex flex-wrap mb-6 px-2"},[e.createElementVNode("p",{class:"text-sm text-gray-600"}," Налаштуйте фільтри реєстру. Оберіть поля для імпорту або відредагуйте властивості вручну. ")],-1)),e.createElementVNode("div",Kr,[e.createElementVNode("div",{class:"flex justify-end mb-3 gap-2 w-full"},[e.createElementVNode("button",{onClick:p,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary hover:bg-primary/90 h-10 px-4 py-2 bg-gradient-to-r from-blue-600 to-blue-500 hover:from-blue-700 hover:to-blue-600 text-white"},[...u[3]||(u[3]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2",class:"mr-1"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 4v16m8-8H4"})],-1),e.createTextVNode(" Імпорт ",-1)])])]),e.createElementVNode("div",Zr,[e.createVNode(ve,{modelValue:d.value,"onUpdate:modelValue":u[0]||(u[0]=m=>d.value=m),"columns-scheme":s,"form-scheme":f,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])])])])]),e.createVNode(Ve,{visible:a.value,"onUpdate:visible":u[1]||(u[1]=m=>a.value=m),selection:c.value,"onUpdate:selection":u[2]||(u[2]=m=>c.value=m),fields:i.value,title:"Імпорт фільтрів","id-prefix":"import-filter",onConfirm:g},null,8,["visible","selection","fields"])]))}}),Xr={class:"vs-form"},Qr={class:"vs-form__body auto-rows-max container"},Jr={class:"flex flex-wrap"},el={class:"h-fit w-full flex flex-wrap"},tl={class:"w-full"},nl=e.defineComponent({__name:"card-tab",props:e.mergeModels({fields:{}},{data:{default:{}},dataModifiers:{},form:{},formModifiers:{}}),emits:["update:data","update:form"],setup(t){const n=e.useModel(t,"data"),o=e.useModel(t,"form"),r=t,i=e.computed(()=>Array.isArray(r.fields)?r.fields:[]),l=y=>we(y||{}),a=e.ref(!1),c=e.ref([]),p=()=>{const y=d.value.map(u=>l(u)).filter(u=>u.length>0);c.value=[...y],a.value=!0},d=e.computed({get:()=>n.value.card,set:y=>{n.value||(n.value={}),n.value.card=Array.isArray(y)?y:[]}});e.watch(a,y=>{var u;if(y){const m=((u=d.value)==null?void 0:u.map(x=>x.name))||[];c.value=[...m]}});const g=()=>{const y=new Set(c.value.map(x=>$e(x)).filter(x=>x.length>0)),u=Array.isArray(d.value)?[...d.value]:[],m=i.value.filter(x=>y.has(l(x))).map(x=>{const v=l(x),k=x.title??x.label??v;return{...x,name:v,label:k,format:x.format||x.type||"text",meta:x.meta||"title"}});d.value=Ae(u,m,{selectedKeys:c.value,resolveKey:l}),a.value=!1,c.value=[]},s=[{key:"name",label:"Name",type:"text"},{key:"label",label:"Label",type:"text"},{key:"format",label:"Format",type:"text"}],f={name:{type:"text",label:"Name",required:!0,disabled:!0},label:{type:"text",label:"Label",required:!0},format:{type:"radio",label:"Format",position:"horizontal",required:!0,options:[{text:"Text",id:"text"},{text:"Number",id:"number"},{text:"Date",id:"date"},{text:"File",id:"file"},{text:"Select",id:"select"}]},data:{type:"text",label:"Data"}};return e.onBeforeUnmount(()=>{o.value=null}),(y,u)=>(e.openBlock(),e.createElementBlock("div",Xr,[e.createElementVNode("div",Qr,[e.createElementVNode("div",Jr,[u[4]||(u[4]=e.createElementVNode("div",{class:"h-fit w-full flex flex-wrap mb-6 px-2"},[e.createElementVNode("p",{class:"text-sm text-gray-600"}," Налаштуйте відображення картки. Оберіть потрібні поля та відредагуйте їхні властивості. ")],-1)),e.createElementVNode("div",el,[e.createElementVNode("div",{class:"flex justify-end mb-3 gap-2 w-full"},[e.createElementVNode("button",{onClick:p,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary hover:bg-primary/90 h-10 px-4 py-2 bg-gradient-to-r from-blue-600 to-blue-500 hover:from-blue-700 hover:to-blue-600 text-white"},[...u[3]||(u[3]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2",class:"mr-1"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 4v16m8-8H4"})],-1),e.createTextVNode(" Імпорт ",-1)])])]),e.createElementVNode("div",tl,[e.createVNode(ve,{modelValue:d.value,"onUpdate:modelValue":u[0]||(u[0]=m=>d.value=m),"columns-scheme":s,"form-scheme":f,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])])])])]),e.createVNode(Ve,{visible:a.value,"onUpdate:visible":u[1]||(u[1]=m=>a.value=m),selection:c.value,"onUpdate:selection":u[2]||(u[2]=m=>c.value=m),fields:i.value,title:"Імпорт полів картки","id-prefix":"import-card",onConfirm:g},null,8,["visible","selection","fields"])]))}}),ol=["","січня","лютого","березня","квітня","травня","червня","липня","серпня","вересня","жовтня","листопада","грудня"];function Ie(t){if(!t)return"";const[n,o]=t.split(" ");if(!n)return t;const[r,i,l]=n.split("-");if(!r||!i||!l)return t;const a=parseInt(i,10),c=ol[a]||i;let p=`${parseInt(l,10)} ${c} ${r}`;if(o){const d=o.split(".")[0],[g,s,f]=d.split(":");g&&s&&f?p+=`, ${g}:${s}:${f}`:g&&s?p+=`, ${g}:${s}`:g&&(p+=`, ${g}`)}return p}const rl={class:"flex justify-between p-4 pb-2 bg-slate-50 gap-4"},ll={class:"flex items-center justify-between"},il={class:"text-lg font-bold line-clamp-2"},al={key:0,class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 text-foreground ml-2 whitespace-nowrap","data-v0-t":"badge"},sl={key:0,class:"flex"},cl={key:0,class:"h-fit inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 text-foreground ml-2 whitespace-nowrap"},dl={class:"p-4 pt-2"},ul={class:"grid grid-cols-2 gap-3 text-sm"},pl={class:"text-gray-500"},ml={class:"font-medium"},fl={class:"items-center p-3 bg-slate-50 flex justify-end"},gl=["href"],Vt=e.defineComponent({__name:"template-1",props:{items:{},item:{},columns:{},path:{},id_key:{default:"id"},query_params:{default:()=>[]}},setup(t){const n=t,o=e.computed(()=>n.items&&n.items.length||n.items?n.items:n.item!=null?[n.item]:[]),r=e.computed(()=>n.columns.find(d=>d.meta==="title")),i=e.computed(()=>n.columns.filter(d=>d.meta==="category")),l=e.computed(()=>n.columns.filter(d=>d.meta==="tags")),a=e.computed(()=>n.columns.filter(d=>d.meta!=="title")),c=(d,g)=>{if(g)return d[g]},p=d=>{const g=c(d,n.id_key);return`${n.path}?id=${g}`};return(d,g)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,s=>{var f,y,u;return e.openBlock(),e.createElementBlock("div",{key:s.id,class:"rounded-lg border bg-card text-card-foreground overflow-hidden border-none shadow-md relative","data-v0-t":"card"},[e.createElementVNode("div",rl,[e.createElementVNode("div",ll,[e.createElementVNode("h2",il,e.toDisplayString(s[`${(f=r.value)==null?void 0:f.name}_text`]||s[(y=r.value)==null?void 0:y.name]||s[(u=r.value)==null?void 0:u.label]||"Не вказано"),1),Array.isArray(i.value)&&i.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(i.value,m=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:m.name},[s[m.name]?(e.openBlock(),e.createElementBlock("div",al,e.toDisplayString(s[`${m.name}_text`]||s[m.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0)]),Array.isArray(l.value)&&l.value.length?(e.openBlock(),e.createElementBlock("div",sl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,m=>(e.openBlock(),e.createElementBlock("div",{key:m.name,class:"mt-2 flex flex-wrap gap-1"},[s[m.name]?(e.openBlock(),e.createElementBlock("span",cl,e.toDisplayString(s[`${m.name}_text`]||s[m.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",dl,[e.createElementVNode("div",ul,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,m=>{var x;return e.openBlock(),e.createElementBlock("div",{key:m.name,class:"flex items-center gap-1.5"},[e.createElementVNode("span",pl,e.toDisplayString(m.ua||m.label)+": ",1),e.createElementVNode("span",ml,[Array.isArray(s[m==null?void 0:m.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(s[(m==null?void 0:m.name)+"_text"]||s[m==null?void 0:m.name],(v,k)=>(e.openBlock(),e.createElementBlock("span",{key:k,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(v),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[m.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(Ie)(s[m==null?void 0:m.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(((x=s[(m==null?void 0:m.name)+"_data"])==null?void 0:x.text)||s[(m==null?void 0:m.name)+"_text"]||s[m==null?void 0:m.name]||"Немає даних"),1)],64))],64))])])}),128))])]),e.createElementVNode("div",fl,[e.createElementVNode("a",{href:p(s),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-9 rounded-md px-3"},[...g[0]||(g[0]=[e.createTextVNode(" Детальніше ",-1),e.createElementVNode("svg",{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:"lucide lucide-arrow-right ml-1 h-3.5 w-3.5"},[e.createElementVNode("path",{d:"M5 12h14"}),e.createElementVNode("path",{d:"m12 5 7 7-7 7"})],-1)])],8,gl)])])}),128))}}),hl={class:"p-0"},yl={class:"border-l-4 border-l-slate-400"},xl={class:"p-4"},kl={class:"flex flex-wrap items-center gap-2 mb-3"},bl={class:"text-lg font-bold"},_l={key:0,class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-green-100 text-green-800 hover:bg-green-100","data-v0-t":"badge"},wl={key:1,class:"flex"},El={key:0,class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold border-transparent bg-gray-100 text-gray-800"},Bl={class:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-4 gap-3 text-sm border-t pt-3"},Nl={class:"text-xs text-gray-500 mb-1"},vl={class:"font-medium"},Cl={class:"flex justify-end mt-3 border-t pt-3"},Vl=["href"],$t=e.defineComponent({__name:"template-2",props:{items:{},item:{},columns:{},path:{},id_key:{default:"id"},query_params:{default:()=>[]}},setup(t){const n=t,o=e.computed(()=>n.items&&n.items.length||n.items?n.items:n.item!=null?[n.item]:[]),r=e.computed(()=>n.columns.find(d=>d.meta==="title")),i=e.computed(()=>n.columns.filter(d=>d.meta==="category")),l=e.computed(()=>n.columns.filter(d=>d.meta==="tags")),a=e.computed(()=>n.columns.filter(d=>d.meta!=="title")),c=(d,g)=>{if(g)return d[g]},p=d=>{const g=c(d,n.id_key);return`${n.path}?id=${g}`};return(d,g)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,s=>{var f,y;return e.openBlock(),e.createElementBlock("div",{key:s.id,class:"rounded-lg border bg-card text-card-foreground shadow-sm overflow-hidden","data-v0-t":"card"},[e.createElementVNode("div",hl,[e.createElementVNode("div",yl,[e.createElementVNode("div",xl,[e.createElementVNode("div",kl,[e.createElementVNode("h2",bl,e.toDisplayString(s[`${(f=r.value)==null?void 0:f.name}_text`]||s[(y=r.value)==null?void 0:y.name]||"Не вказано"),1),Array.isArray(i.value)&&i.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(i.value,u=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u.name},[s[u.name]?(e.openBlock(),e.createElementBlock("div",_l,e.toDisplayString(s[`${u.name}_text`]||s[u.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0),Array.isArray(l.value)&&l.value.length?(e.openBlock(),e.createElementBlock("div",wl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,u=>(e.openBlock(),e.createElementBlock("div",{key:u.name,class:"flex flex-wrap gap-1 ml-2"},[s[u.name]?(e.openBlock(),e.createElementBlock("span",El,e.toDisplayString(s[`${u.name}_text`]||s[u.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Bl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,u=>{var m;return e.openBlock(),e.createElementBlock("div",{key:u.name},[e.createElementVNode("p",Nl,e.toDisplayString(u.ua),1),e.createElementVNode("p",vl,[Array.isArray(s[u==null?void 0:u.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(s[u==null?void 0:u.name],(x,v)=>(e.openBlock(),e.createElementBlock("span",{key:v,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(x),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[u.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(Ie)(s[u==null?void 0:u.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(((m=s[(u==null?void 0:u.name)+"_data"])==null?void 0:m.text)||s[(u==null?void 0:u.name)+"_text"]||s[u==null?void 0:u.name]||"Немає даних"),1)],64))],64))])])}),128))]),e.createElementVNode("div",Cl,[e.createElementVNode("a",{href:p(s),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 hover:bg-accent hover:text-accent-foreground h-9 rounded-md px-3"},[...g[0]||(g[0]=[e.createTextVNode(" Детальніше ",-1),e.createElementVNode("svg",{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:"lucide lucide-external-link ml-1 h-3.5 w-3.5"},[e.createElementVNode("path",{d:"M15 3h6v6"}),e.createElementVNode("path",{d:"M10 14 21 3"}),e.createElementVNode("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"})],-1)])],8,Vl)])])])])])}),128))}}),$l={class:"space-y-4"},Al={class:"flex items-center py-2 px-3"},Sl={class:"flex-1"},Ll={class:"grid grid-cols-12 gap-2 w-full text-xs"},Fl={class:"col-span-5"},Ml={key:0,class:"inline-flex items-center rounded-full border transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 mt-1 text-[10px] font-normal px-1.5 py-0","data-v0-t":"badge"},Tl={key:1,class:"flex flex-wrap gap-1 mt-1"},Il={key:0,class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold border-transparent bg-gray-100 text-gray-800"},Dl={class:"col-span-7"},jl={class:"grid grid-cols-3 gap-3"},Ol={class:"text-[10px] text-gray-500 mb-1"},zl={class:"truncate font-medium"},Pl=["href"],At=e.defineComponent({__name:"template-3",props:{items:{},item:{},columns:{},path:{},id_key:{},query_params:{default:()=>[]}},setup(t){const n=t,o=e.computed(()=>n.items&&n.items.length||n.items?n.items:n.item!=null?[n.item]:[]),r=e.computed(()=>n.columns.find(g=>g.meta==="title")),i=e.computed(()=>n.columns.filter(g=>g.meta==="category")),l=e.computed(()=>n.columns.filter(g=>g.meta==="tags")),a=e.computed(()=>n.columns.filter(g=>g.meta!=="title")),c=e.computed(()=>"bg-blue-500"),p=(g,s)=>{if(s)return g[s]},d=g=>{const s=p(g,n.id_key);return`${n.path}?id=${s}`};return(g,s)=>(e.openBlock(),e.createElementBlock("div",$l,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,f=>{var y,u;return e.openBlock(),e.createElementBlock("div",{key:f.id,class:"border-b border-slate-200 hover:bg-slate-50 transition-colors"},[e.createElementVNode("div",Al,[e.createElementVNode("div",{class:e.normalizeClass(["w-1 h-8 rounded-full mr-3",c.value])},null,2),e.createElementVNode("div",Sl,[e.createElementVNode("div",Ll,[e.createElementVNode("div",Fl,[e.createElementVNode("p",{class:e.normalizeClass(["font-bold text-sm text-left",{"w-full h-full flex items-center":!Array.isArray(l.value)||!l.value.length}])},e.toDisplayString(f[`${(y=r.value)==null?void 0:y.name}_text`]||f[(u=r.value)==null?void 0:u.name]||f[Object.keys(f)[0]]||"Не вказано"),3),Array.isArray(i.value)&&i.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(i.value,m=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:m.name},[f[m.name]?(e.openBlock(),e.createElementBlock("div",Ml,e.toDisplayString(f[`${m.name}_text`]||f[m.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0),Array.isArray(l.value)&&l.value.length?(e.openBlock(),e.createElementBlock("div",Tl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,m=>(e.openBlock(),e.createElementBlock("div",{key:m.name,class:"flex flex-wrap gap-1 mt-1"},[f[m.name]?(e.openBlock(),e.createElementBlock("span",Il,e.toDisplayString(f[`${m.name}_text`]||f[m.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Dl,[e.createElementVNode("div",jl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,m=>{var x;return e.openBlock(),e.createElementBlock("div",{key:m.name},[e.createElementVNode("p",Ol,e.toDisplayString(m.ua),1),e.createElementVNode("p",zl,[Array.isArray(f[m==null?void 0:m.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(f[m==null?void 0:m.name],(v,k)=>(e.openBlock(),e.createElementBlock("span",{key:k,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(v),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[m.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(Ie)(f[m==null?void 0:m.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(((x=f[(m==null?void 0:m.name)+"_data"])==null?void 0:x.text)||f[(m==null?void 0:m.name)+"_text"]||f[m==null?void 0:m.name]||"Немає даних"),1)],64))],64))])])}),128))])])])]),e.createElementVNode("a",{href:d(f),class:"ml-auto flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 hover:bg-accent hover:text-accent-foreground rounded-md h-7 w-7 p-0",style:{"min-width":"2.5rem"}},[...s[0]||(s[0]=[e.createElementVNode("svg",{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:"lucide lucide-chevron-right h-4 w-4"},[e.createElementVNode("path",{d:"m9 18 6-6-6-6"})],-1)])],8,Pl)])])}),128))]))}}),Rl={class:"flex flex-col space-y-1.5 p-6 pb-2"},Ul={class:"flex items-center gap-2"},ql={class:"tracking-tight text-lg font-medium"},Yl={key:0,class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-blue-100 text-blue-800 ml-2","data-v0-t":"badge"},Hl={key:1,class:"flex"},Wl={key:0,class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold border-transparent bg-gray-100 text-gray-800"},Kl={class:"p-6 pt-0 pb-4"},Zl={class:"grid grid-cols-2 gap-4"},Gl={class:"text-sm text-gray-500"},Xl={class:"font-medium"},Ql={class:"flex items-center p-6 pt-0"},Jl=["href"],St=e.defineComponent({__name:"template-4",props:{items:{},item:{},columns:{},path:{},id_key:{},query_params:{default:()=>[]}},setup(t){const n=t,o=e.computed(()=>n.items&&n.items.length||n.items?n.items:n.item!=null?[n.item]:[]),r=e.computed(()=>n.columns.find(d=>d.meta==="title")),i=e.computed(()=>n.columns.filter(d=>d.meta==="category")),l=e.computed(()=>n.columns.filter(d=>d.meta==="tags")),a=e.computed(()=>n.columns.filter(d=>d.meta!=="title")),c=(d,g)=>{if(g)return d[g]},p=d=>{const g=c(d,n.id_key);return`${n.path}?id=${g}`};return(d,g)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,s=>{var f,y;return e.openBlock(),e.createElementBlock("div",{key:s.id,class:"rounded-lg border bg-card text-card-foreground shadow-sm border-l-4 border-l-blue-600","data-v0-t":"card"},[e.createElementVNode("div",Rl,[e.createElementVNode("div",Ul,[e.createElementVNode("h3",ql,e.toDisplayString(s[`${(f=r.value)==null?void 0:f.name}_text`]||s[(y=r.value)==null?void 0:y.name]||Object.keys(s)[0]||"Не вказано"),1),Array.isArray(i.value)&&i.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(i.value,u=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u.name},[s[u.name]?(e.openBlock(),e.createElementBlock("div",Yl,e.toDisplayString(s[`${u.name}_text`]||s[u.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0),Array.isArray(l.value)&&l.value.length?(e.openBlock(),e.createElementBlock("div",Hl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,u=>(e.openBlock(),e.createElementBlock("div",{key:u.name,class:"flex flex-wrap gap-1 ml-2"},[s[u.name]?(e.openBlock(),e.createElementBlock("span",Wl,e.toDisplayString(s[`${u.name}_text`]||s[u.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)])]),e.createElementVNode("div",Kl,[e.createElementVNode("div",Zl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,u=>{var m;return e.openBlock(),e.createElementBlock("div",{key:u.name},[e.createElementVNode("p",Gl,e.toDisplayString(u.ua),1),e.createElementVNode("p",Xl,[Array.isArray(s[u==null?void 0:u.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(s[u==null?void 0:u.name],(x,v)=>(e.openBlock(),e.createElementBlock("span",{key:v,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(x),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[u.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(Ie)(s[u==null?void 0:u.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(((m=s[(u==null?void 0:u.name)+"_data"])==null?void 0:m.text)||s[(u==null?void 0:u.name)+"_text"]||s[u==null?void 0:u.name]||"Немає даних"),1)],64))],64))])])}),128))])]),e.createElementVNode("div",Ql,[e.createElementVNode("a",{href:p(s),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 border bg-background h-10 px-4 py-2 rounded-md text-black border-black hover:bg-gray-100 hover:text-black"}," Детальніше ",8,Jl)])])}),128))}}),ei={class:"grid grid-cols-12 divide-x divide-gray-100"},ti={key:0},ni=["src"],oi={key:1,class:"col-span-1 flex items-center justify-center"},ri={class:"col-span-7 p-4"},li={class:"flex items-center mb-1 col-span-7 p-4"},ii={class:"text-base font-bold text-gray-900 mr-2"},ai={key:0,class:"inline-flex items-center rounded-full px-2.5 py-0.5 font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-primary/80 bg-blue-100 text-blue-800 border-0 text-xs ml-2"},si={class:"text-sm text-gray-600 line-clamp-1 mb-2"},ci={class:"grid grid-cols-2 gap-x-4 gap-y-1 text-sm"},di={class:"text-gray-500 mr-1"},ui=["innerHTML"],pi={class:"text-gray-600 truncate"},mi={class:"col-span-2 p-3 bg-gray-50 flex flex-col justify-center"},fi={class:"text-xs text-gray-500 mb-1.5"},gi={key:0,class:"flex flex-wrap gap-1"},hi={key:0,class:"inline-flex items-center rounded-full font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 hover:bg-secondary/80 bg-white border border-gray-200 text-gray-700 text-xs px-1.5 py-0"},yi={class:"col-span-2 flex flex-col justify-center items-center bg-gray-50 border-l p-2"},xi={class:"w-full space-y-2"},ki=["href"],Lt=e.defineComponent({__name:"template-5",props:{items:{},item:{},columns:{},path:{},id_key:{},query_params:{default:()=>[]}},setup(t){const n=t,o=e.computed(()=>n.items&&n.items.length||n.items?n.items:n.item!=null?[n.item]:[]),r=e.computed(()=>n.columns.find(s=>s.meta==="title")),i=e.computed(()=>n.columns.filter(s=>s.meta==="category")),l=e.computed(()=>n.columns.filter(s=>s.meta==="tags")),a=e.computed(()=>n.columns.filter(s=>s.meta==="features")),c=e.computed(()=>n.columns.find(s=>s.meta==="image")),p=e.computed(()=>n.columns.find(s=>s.meta==="desc")||n.columns.find(s=>s.name==="description")),d=(s,f)=>{if(f)return s[f]},g=s=>{const f=d(s,n.id_key);return`${n.path}?id=${f}`};return(s,f)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,y=>{var u,m,x,v,k;return e.openBlock(),e.createElementBlock("div",{key:y.id,class:"bg-white border border-gray-200 rounded-lg overflow-hidden transition-all duration-200 hover:shadow-md"},[e.createElementVNode("div",ei,[c.value?(e.openBlock(),e.createElementBlock("div",ti,[y[(u=c.value)==null?void 0:u.name]?(e.openBlock(),e.createElementBlock("img",{key:0,src:y[(m=c.value)==null?void 0:m.name],alt:"image",class:"object-cover h-full"},null,8,ni)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",oi,[...f[0]||(f[0]=[e.createElementVNode("div",{class:"w-3 h-12 rounded-sm bg-blue-500",title:"Пріоритет: Високий","aria-hidden":"true"},null,-1)])])),e.createElementVNode("div",ri,[e.createElementVNode("div",li,[e.createElementVNode("h3",ii,e.toDisplayString(y[`${(x=r.value)==null?void 0:x.name}_text`]||y[(v=r.value)==null?void 0:v.name]||Object.keys(y)[0]||"Не вказано"),1),Array.isArray(i.value)&&i.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(i.value,_=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:_.name},[y[_.name]?(e.openBlock(),e.createElementBlock("div",ai,e.toDisplayString(y[`${_.name}_text`]||y[_.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0)]),e.createElementVNode("p",si,e.toDisplayString(y[(k=p.value)==null?void 0:k.name]),1),e.createElementVNode("div",ci,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,_=>{var V;return e.openBlock(),e.createElementBlock("div",{key:_.name,class:"flex items-center"},[e.createElementVNode("span",di,e.toDisplayString((_==null?void 0:_.ua)||_.label||_.name)+":",1),_.icon?(e.openBlock(),e.createElementBlock("span",{key:0,class:"mr-1 flex-shrink-0",innerHTML:_.icon},null,8,ui)):e.createCommentVNode("",!0),e.createElementVNode("span",pi,[Array.isArray(y[_==null?void 0:_.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(y[_==null?void 0:_.name],(A,h)=>(e.openBlock(),e.createElementBlock("span",{key:h,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(A),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[_.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(Ie)(y[_==null?void 0:_.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(((V=y[(_==null?void 0:_.name)+"_data"])==null?void 0:V.text)||y[_==null?void 0:_.name]||"Немає даних"),1)],64))],64))])])}),128))])]),e.createElementVNode("div",mi,[e.createElementVNode("p",fi," Теги: "+e.toDisplayString(l.value.length&&y[l.value[0].name]?"":"відсутні"),1),Array.isArray(l.value)&&l.value.length?(e.openBlock(),e.createElementBlock("div",gi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,_=>(e.openBlock(),e.createElementBlock("div",{key:_.name,class:"flex flex-wrap gap-1"},[y[_.name]?(e.openBlock(),e.createElementBlock("span",hi,e.toDisplayString(y[`${_.name}_text`]||y[_.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",yi,[e.createElementVNode("div",xi,[e.createElementVNode("a",{href:g(y),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 rounded-md px-3 w-full bg-blue-600 hover:bg-blue-700 text-white text-xs h-8"}," Детальніше ",8,ki)])])])])}),128))}}),Ft={template1:Vt,template2:$t,template3:At,template4:St,template5:Lt},bi={class:"space-y-4"},_i={class:"flex items-center gap-4"},wi={class:"text-lg font-semibold mb-4"},Ei={key:1,class:"text-gray-400 text-center py-12"},Bi={key:2,class:"text-gray-400 text-center py-12"},Ni=e.defineComponent({__name:"preview-tab",props:{data:{default:{}},dataModifiers:{}},emits:["update:data"],setup(t){const n=e.defineAsyncComponent(()=>import("@opengis/form")),o=e.useModel(t,"data"),r=[{text:"template1",id:"template1"},{text:"template2",id:"template2"},{text:"template3",id:"template3"},{text:"template4",id:"template4"},{text:"template5",id:"template5"}],i={view:{type:"radio",label:"Вигляд",position:"horizontal",required:!0,options:r,col:12}},l=e.computed(()=>{var g;return Array.isArray((g=o.value)==null?void 0:g.columns)?o.value.columns:[]}),a=e.computed(()=>{var g;return((g=o.value)==null?void 0:g.view)||"template1"}),c=e.computed(()=>Ft[a.value]||Ft.template1),p=e.computed(()=>{var f;const g=(f=o.value)==null?void 0:f.view;if(!g)return"template1";const s=r.find(y=>y.id===g);return(s==null?void 0:s.text)||g}),d=e.computed(()=>(Array.isArray(o.value.tableData)?o.value.tableData:[]).slice(0,5));return(g,s)=>(e.openBlock(),e.createElementBlock("div",bi,[e.createElementVNode("div",_i,[(e.openBlock(),e.createBlock(e.unref(n),{key:o.value.id,schema:i,modelValue:o.value,"onUpdate:modelValue":s[0]||(s[0]=f=>o.value=f)},null,8,["modelValue"]))]),e.createElementVNode("h2",wi," Превʼю таблиці ("+e.toDisplayString(p.value)+") ",1),c.value&&d.value.length&&l.value.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(c.value),{items:d.value,columns:l.value,path:"#",id_key:"id",key:a.value},null,8,["items","columns"])):d.value.length?(e.openBlock(),e.createElementBlock("div",Bi," Додайте колонки та виберіть вигляд для перегляду ")):(e.openBlock(),e.createElementBlock("div",Ei," Немає даних для превʼю "))]))}}),vi={class:"relative h-screen flex flex-col bg-white p-8"},Ci={class:"flex-1 flex flex-col min-h-0 overflow-hidden"},Vi={class:"max-w-6xl mx-auto flex-1 flex flex-col min-h-0 w-full"},$i={class:"flex items-center justify-between mb-6 flex-shrink-0"},Ai={class:"flex items-center gap-2"},Si=["href"],Li={class:"w-full flex-shrink-0 mb-6"},Fi={class:"flex items-center w-full h-10 max-w-md grid-cols-3 p-1 bg-white border border-gray-200 rounded-md text-muted-foreground"},Mi=["onClick"],Ti={class:"flex-1 min-h-0 overflow-y-auto"},Ii=e.defineComponent({__name:"register",setup(t){const n=me.useRoute(),o=me.useRouter(),r=e.ref("list"),i=e.ref(""),l=[{name:"Список",id:"list"},{name:"Фільтри",id:"filters"},{name:"Картка",id:"card"},{name:"Перегляд",id:"preview"}],a={list:qr,filters:Gr,card:nl,preview:Ni},c=l.map(y=>y.id),p=e.ref({columns:[],filters:[],card:[],tableData:[]}),d=e.ref([]),g=async()=>{var u;if(!((u=p.value)==null?void 0:u.token)){ne.notify({type:"error",title:"Помилка",message:"Відсутній токен для збереження"});return}try{const m=await fetch(`/api/gis-registry/${n.params.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(p.value)});if(!m.ok)throw new Error(`Failed to save content: ${m.status}`);ne.notify({type:"success",title:"Успіх",message:"Контент збережено"})}catch(m){ne.notify({type:"error",title:"Помилка",message:"Не вдалося зберегти контент"}),console.error(m)}},s=async y=>{try{const m=await(await fetch(`/api/gis-registry/${y}`)).json(),x=Array.isArray(m==null?void 0:m.rows)?m.rows:[];p.value.tableData=x.slice(0,3)}catch(u){console.error("Помилка завантаження превʼю:",u)}},f=async()=>{var y,u;try{const x=await(await fetch(`/api/data/gis.registers.table/${n.params.id}`)).json(),v=((y=x==null?void 0:x.rows)==null?void 0:y[0])||{};i.value=v.register_key||"",p.value={...v,columns:Array.isArray(v.columns)?v.columns:[],filters:Array.isArray(v.filters)?v.filters:[],card:Array.isArray(v.card)?v.card:[],tableData:Array.isArray(v.tableData)?v.tableData:[]},(u=x==null?void 0:x.tokens)!=null&&u.edit&&(p.value.token=x.tokens.edit),d.value=Array.isArray(x==null?void 0:x.fields)?x.fields:[]}catch(m){console.error("Помилка завантаження даних:",m)}};return e.onMounted(async()=>{const y=n.query.tab;typeof y=="string"&&c.includes(y)&&(r.value=y),await f(),i.value&&await s(i.value)}),e.watch(r,y=>{n.query.tab!==y&&o.replace({query:{...n.query,tab:y}})}),e.watch(()=>n.query.tab,y=>{typeof y=="string"&&c.includes(y)&&r.value!==y&&(r.value=y)}),(y,u)=>(e.openBlock(),e.createElementBlock("main",vi,[e.createElementVNode("div",Ci,[e.createElementVNode("div",Vi,[e.createElementVNode("div",$i,[u[1]||(u[1]=e.createElementVNode("div",null,[e.createElementVNode("h1",{class:"mb-2 text-2xl font-semibold text-gray-900"},"Створити контент"),e.createElementVNode("p",{class:"text-gray-600"},"Створити контент для вашого сайту")],-1)),e.createElementVNode("div",Ai,[e.createElementVNode("a",{href:`/${e.unref(n).path.split("/")[1]}`,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border bg-background hover:text-accent-foreground h-10 px-4 py-2 border-gray-300 text-gray-700 hover:bg-gray-50"}," Повернутися ",8,Si),e.createElementVNode("button",{onClick:g,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-white rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 text-primary-foreground h-10 px-4 py-2 bg-blue-600 hover:bg-blue-700"}," Зберегти ")])]),e.createElementVNode("div",Li,[e.createElementVNode("div",Fi,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(l,m=>e.createElementVNode("button",{key:m.id,onClick:x=>r.value=m.id,class:e.normalizeClass(["inline-flex flex-1 items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm data-[state=active]:bg-blue-50 data-[state=active]:text-blue-700 data-[state=active]:border-blue-200",m.id===r.value?"bg-blue-50 text-blue-700 border-blue-200":""])},e.toDisplayString(m.name),11,Mi)),64))])]),e.createElementVNode("div",Ti,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a[r.value]),{data:p.value,"onUpdate:data":u[0]||(u[0]=m=>p.value=m),fields:d.value,key:r.value},null,40,["data","fields"]))])])])]))}}),Di={},ji={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:"lucide lucide-settings"};function Oi(t,n){return e.openBlock(),e.createElementBlock("svg",ji,[...n[0]||(n[0]=[e.createElementVNode("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"},null,-1),e.createElementVNode("circle",{cx:"12",cy:"12",r:"3"},null,-1)])])}const zi=W(Di,[["render",Oi]]),Pi={},Ri={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:"lucide lucide-layers"};function Ui(t,n){return e.openBlock(),e.createElementBlock("svg",Ri,[...n[0]||(n[0]=[e.createElementVNode("path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"},null,-1),e.createElementVNode("path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"},null,-1),e.createElementVNode("path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"},null,-1)])])}const qi=W(Pi,[["render",Ui]]),Yi={},Hi={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:"lucide lucide-eye"};function Wi(t,n){return e.openBlock(),e.createElementBlock("svg",Hi,[...n[0]||(n[0]=[e.createElementVNode("path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z"},null,-1),e.createElementVNode("circle",{cx:"12",cy:"12",r:"3"},null,-1)])])}const Ki=W(Yi,[["render",Wi]]),Zi={},Gi={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:"lucide lucide-map"};function Xi(t,n){return e.openBlock(),e.createElementBlock("svg",Gi,[...n[0]||(n[0]=[e.createElementVNode("path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z"},null,-1),e.createElementVNode("path",{d:"M15 5.764v15"},null,-1),e.createElementVNode("path",{d:"M9 3.236v15"},null,-1)])])}const Qi=W(Zi,[["render",Xi]]),Ji={},ea={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:"lucide lucide-filter"};function ta(t,n){return e.openBlock(),e.createElementBlock("svg",ea,[...n[0]||(n[0]=[e.createElementVNode("polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"},null,-1)])])}const na=W(Ji,[["render",ta]]),Mt=e.defineComponent({__name:"MonacoEditor",props:{modelValue:{},language:{},theme:{}},emits:["update:modelValue","load"],setup(t,{emit:n}){const o=t,r=n,i=e.ref(null);let l=null,a=null,c=!1;function p(){return new Promise((g,s)=>{if(a)return g(a);if(window.monaco)return a=window.monaco,g(a);const f=u=>{if([...document.styleSheets].some(x=>{var v;return(v=x==null?void 0:x.href)==null?void 0:v.includes(u)}))return;const m=document.createElement("link");m.rel="stylesheet",m.href=u,document.head.appendChild(m)},y=u=>new Promise((m,x)=>{const v=document.createElement("script");v.src=u,v.onload=()=>m(!0),v.onerror=x,document.body.appendChild(v)});f("https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs/editor/editor.main.min.css"),y("https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs/loader.min.js").then(()=>{window.require.config({paths:{vs:"https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs"}}),window.require(["vs/editor/editor.main"],()=>{a=window.monaco,g(a)})}).catch(s)})}function d(){!i.value||!a||(l&&l.dispose(),l=a.editor.create(i.value,{value:o.modelValue||"",language:o.language||"yaml",theme:o.theme||"vs-light",automaticLayout:!0,minimap:{enabled:!1}}),l.onDidChangeModelContent(()=>{c||r("update:modelValue",l.getValue())}))}return e.watch(()=>o.modelValue,g=>{if(!l)return;const s=l.getValue();g!==s&&(c=!0,l.setValue(g||""),c=!1)}),e.watch(()=>o.language,g=>{l&&a&&a.editor.setModelLanguage(l.getModel(),g||"yaml")}),e.watch(()=>o.theme,g=>{l&&a&&a.editor.setTheme(g||"vs-light")}),e.onMounted(async()=>{await p(),d()}),e.onBeforeUnmount(()=>{l&&l.dispose()}),(g,s)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"editorContainer",ref:i,class:"w-full h-full"},null,512))}});/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function Tt(t){return typeof t>"u"||t===null}function oa(t){return typeof t=="object"&&t!==null}function ra(t){return Array.isArray(t)?t:Tt(t)?[]:[t]}function la(t,n){var o,r,i,l;if(n)for(l=Object.keys(n),o=0,r=l.length;o<r;o+=1)i=l[o],t[i]=n[i];return t}function ia(t,n){var o="",r;for(r=0;r<n;r+=1)o+=t;return o}function aa(t){return t===0&&Number.NEGATIVE_INFINITY===1/t}var sa=Tt,ca=oa,da=ra,ua=ia,pa=aa,ma=la,ee={isNothing:sa,isObject:ca,toArray:da,repeat:ua,isNegativeZero:pa,extend:ma};function It(t,n){var o="",r=t.reason||"(unknown reason)";return t.mark?(t.mark.name&&(o+='in "'+t.mark.name+'" '),o+="("+(t.mark.line+1)+":"+(t.mark.column+1)+")",!n&&t.mark.snippet&&(o+=`
61
+ */const Vo=Ie("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),$o={class:"flex items-center justify-end col-span-3 gap-2"},Ao={class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},So=e.defineComponent({__name:"vs-datatable-controls",props:e.mergeModels({index:{},data:{},scheme:{}},{columns:{type:Array,default:()=>[]},columnsModifiers:{}}),emits:["update:columns"],setup(t){const n=e.defineAsyncComponent(()=>import("@opengis/form")),o=e.defineAsyncComponent(()=>import("@opengis/core").then(h=>h.VsModal)),r=t,l=e.useModel(t,"columns"),i=e.ref(!1),a=e.ref({}),c=e.ref({...r.data||{}}),p=()=>l.value=l.value.filter((h,s)=>s!==r.index),u=async()=>{const h=a.value.validate();if(h){ce.notify({type:"warning",title:"Validation",message:Object.entries(h).map(([s,m])=>`${s}: ${m}`).join(`
62
+ `)});return}l.value[r.index]=c.value,i.value=!1};return(h,s)=>(e.openBlock(),e.createElementBlock("div",$o,[e.createElementVNode("button",{onClick:s[0]||(s[0]=m=>{i.value=!0}),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:text-accent-foreground h-8 w-8 rounded-full hover:bg-gray-100"},[e.createVNode(e.unref(vo),{class:"w-4 h-4"})]),e.createElementVNode("button",{onClick:p,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 h-8 w-8 rounded-full hover:bg-red-100 text-red-600 hover:text-red-700"},[e.createVNode(e.unref(Co),{class:"w-4 h-4"})]),e.createVNode(e.unref(o),{teleport:"#modal",size:"lg",visible:i.value,"onUpdate:visible":s[4]||(s[4]=m=>i.value=m),title:"Редагувати поле"},{footer:e.withCtx(()=>[e.createElementVNode("div",Ao,[e.createElementVNode("button",{type:"button",class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm whitespace-nowrap text-black border border-gray-200 rounded-lg hover:bg-gray-100 duration-300",onClick:s[3]||(s[3]=m=>i.value=!1)}," Скасувати "),e.createElementVNode("button",{class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm whitespace-nowrap text-white bg-blue-500 rounded-lg !border-gray-200 hover:bg-blue-700 duration-300",onClick:u}," Зберегти ")])]),default:e.withCtx(()=>[e.createVNode(e.unref(n),{values:c.value,"onUpdate:values":s[1]||(s[1]=m=>c.value=m),schema:t.scheme,form:a.value,"onUpdate:form":s[2]||(s[2]=m=>a.value=m)},null,8,["values","schema","form"])]),_:1},8,["visible"])]))}}),Lo={mounted(t){setTimeout(()=>{t.scrollWidth>t.clientWidth?t.setAttribute("title",t.textContent):t.removeAttribute("title")})},updated(t){setTimeout(()=>{t.scrollWidth>t.clientWidth?t.setAttribute("title",t.textContent):t.removeAttribute("title")})}},Fo={array:"purple",boolean:"red",date:"red",datetime:"purple",number:"green",text:"blue",file:"yellow",select:"yellow",slug:"green",image:"blue",badge:"orange",title:"blue",features:"green",status:"red",tags:"yellow",category:"purple",check:"green",range:"orange",autocomplete:"yellow",other:"gray","yes/no":"green"},tn=t=>Fo[t==null?void 0:t.toLowerCase()]||"gray",To=["array","boolean","date","datetime","number","text","file","select","slug","image","badge","title","features","status","tags","category","check","range","autocomplete"],nn=t=>{var n;return To.includes((n=t||"")==null?void 0:n.toLowerCase())},X=(t,n)=>{const o=t.__vccOpts||t;for(const[r,l]of n)o[r]=l;return o},Mo={},Io={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:"w-4 h-4 text-gray-700 lucide lucide-type",__v0_r:"0,5361,5384"};function Do(t,n){return e.openBlock(),e.createElementBlock("svg",Io,[...n[0]||(n[0]=[e.createElementVNode("polyline",{points:"4 7 4 4 20 4 20 7"},null,-1),e.createElementVNode("line",{x1:"9",x2:"15",y1:"20",y2:"20"},null,-1),e.createElementVNode("line",{x1:"12",x2:"12",y1:"4",y2:"20"},null,-1)])])}const jo=X(Mo,[["render",Do]]),Oo={},zo={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:"w-4 h-4 text-gray-700 lucide lucide-hash",__v0_r:"0,5361,5384"};function Po(t,n){return e.openBlock(),e.createElementBlock("svg",zo,[...n[0]||(n[0]=[e.createElementVNode("line",{x1:"4",x2:"20",y1:"9",y2:"9"},null,-1),e.createElementVNode("line",{x1:"4",x2:"20",y1:"15",y2:"15"},null,-1),e.createElementVNode("line",{x1:"10",x2:"8",y1:"3",y2:"21"},null,-1),e.createElementVNode("line",{x1:"16",x2:"14",y1:"3",y2:"21"},null,-1)])])}const Ro=X(Oo,[["render",Po]]),Uo={},qo={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:"w-4 h-4 text-gray-700 lucide lucide-calendar",__v0_r:"0,5361,5384"};function Ho(t,n){return e.openBlock(),e.createElementBlock("svg",qo,[...n[0]||(n[0]=[e.createElementVNode("path",{d:"M8 2v4"},null,-1),e.createElementVNode("path",{d:"M16 2v4"},null,-1),e.createElementVNode("rect",{width:"18",height:"18",x:"3",y:"4",rx:"2"},null,-1),e.createElementVNode("path",{d:"M3 10h18"},null,-1)])])}const Yo=X(Uo,[["render",Ho]]),Zo={},Wo={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:"w-4 h-4 text-gray-700 lucide lucide-calendar",__v0_r:"0,5361,5384"};function Ko(t,n){return e.openBlock(),e.createElementBlock("svg",Wo,[...n[0]||(n[0]=[e.createElementVNode("path",{d:"M8 2v4"},null,-1),e.createElementVNode("path",{d:"M16 2v4"},null,-1),e.createElementVNode("rect",{width:"18",height:"18",x:"3",y:"4",rx:"2"},null,-1),e.createElementVNode("path",{d:"M3 10h18"},null,-1)])])}const Go=X(Zo,[["render",Ko]]),Xo={},Qo={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:"w-4 h-4 text-gray-700 lucide lucide-code",__v0_r:"0,5361,5384"};function Jo(t,n){return e.openBlock(),e.createElementBlock("svg",Qo,[...n[0]||(n[0]=[e.createElementVNode("polyline",{points:"16 18 22 12 16 6"},null,-1),e.createElementVNode("polyline",{points:"8 6 2 12 8 18"},null,-1)])])}const er=X(Xo,[["render",Jo]]),tr={},nr={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:"w-4 h-4 text-gray-700 lucide lucide-toggle-left",__v0_r:"0,5361,5384"};function or(t,n){return e.openBlock(),e.createElementBlock("svg",nr,[...n[0]||(n[0]=[e.createElementVNode("rect",{width:"20",height:"12",x:"2",y:"6",rx:"6",ry:"6"},null,-1),e.createElementVNode("circle",{cx:"8",cy:"12",r:"2"},null,-1)])])}const rr=X(tr,[["render",or]]),lr={},ir={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:"w-4 h-4 text-gray-700 lucide lucide-file-text",__v0_r:"0,5361,5384"};function ar(t,n){return e.openBlock(),e.createElementBlock("svg",ir,[...n[0]||(n[0]=[e.createStaticVNode('<path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path>',5)])])}const sr=X(lr,[["render",ar]]),cr={},dr={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:"w-4 h-4 text-gray-700 lucide lucide-image",__v0_r:"0,5361,5384"};function ur(t,n){return e.openBlock(),e.createElementBlock("svg",dr,[...n[0]||(n[0]=[e.createElementVNode("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2"},null,-1),e.createElementVNode("circle",{cx:"9",cy:"9",r:"2"},null,-1),e.createElementVNode("path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"},null,-1)])])}const pr=X(cr,[["render",ur]]),mr={},fr={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:"w-4 h-4 text-gray-700 lucide lucide-list",__v0_r:"0,5361,5384"};function gr(t,n){return e.openBlock(),e.createElementBlock("svg",fr,[...n[0]||(n[0]=[e.createStaticVNode('<line x1="8" x2="21" y1="6" y2="6"></line><line x1="8" x2="21" y1="12" y2="12"></line><line x1="8" x2="21" y1="18" y2="18"></line><line x1="3" x2="3.01" y1="6" y2="6"></line><line x1="3" x2="3.01" y1="12" y2="12"></line><line x1="3" x2="3.01" y1="18" y2="18"></line>',6)])])}const hr=X(mr,[["render",gr]]),yr={},xr={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:"w-4 h-4 text-gray-700 lucide lucide-list",__v0_r:"0,5361,5384"};function kr(t,n){return e.openBlock(),e.createElementBlock("svg",xr,[...n[0]||(n[0]=[e.createStaticVNode('<line x1="8" x2="21" y1="6" y2="6"></line><line x1="8" x2="21" y1="12" y2="12"></line><line x1="8" x2="21" y1="18" y2="18"></line><line x1="3" x2="3.01" y1="6" y2="6"></line><line x1="3" x2="3.01" y1="12" y2="12"></line><line x1="3" x2="3.01" y1="18" y2="18"></line>',6)])])}const br=X(yr,[["render",kr]]),wr={},_r={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:"w-4 h-4 text-gray-700 lucide lucide-link2",__v0_r:"0,5361,5384"};function Er(t,n){return e.openBlock(),e.createElementBlock("svg",_r,[...n[0]||(n[0]=[e.createElementVNode("path",{d:"M9 17H7A5 5 0 0 1 7 7h2"},null,-1),e.createElementVNode("path",{d:"M15 7h2a5 5 0 1 1 0 10h-2"},null,-1),e.createElementVNode("line",{x1:"8",x2:"16",y1:"12",y2:"12"},null,-1)])])}const Br=X(wr,[["render",Er]]),Nr={},vr={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:"w-4 h-4 text-gray-700 lucide lucide-list",__v0_r:"0,5361,5384"};function Cr(t,n){return e.openBlock(),e.createElementBlock("svg",vr,[...n[0]||(n[0]=[e.createStaticVNode('<line x1="8" x2="21" y1="6" y2="6"></line><line x1="8" x2="21" y1="12" y2="12"></line><line x1="8" x2="21" y1="18" y2="18"></line><line x1="3" x2="3.01" y1="6" y2="6"></line><line x1="3" x2="3.01" y1="12" y2="12"></line><line x1="3" x2="3.01" y1="18" y2="18"></line>',6)])])}const Vr=X(Nr,[["render",Cr]]),$r={},Ar={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:"w-4 h-4 text-gray-700 lucide lucide-link2",__v0_r:"0,5361,5384"};function Sr(t,n){return e.openBlock(),e.createElementBlock("svg",Ar,[...n[0]||(n[0]=[e.createElementVNode("path",{d:"M9 17H7A5 5 0 0 1 7 7h2"},null,-1),e.createElementVNode("path",{d:"M15 7h2a5 5 0 1 1 0 10h-2"},null,-1),e.createElementVNode("line",{x1:"8",x2:"16",y1:"12",y2:"12"},null,-1)])])}const Lr=X($r,[["render",Sr]]),Fr={},Tr={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:"w-4 h-4 text-gray-700 lucide lucide-list",__v0_r:"0,5361,5384"};function Mr(t,n){return e.openBlock(),e.createElementBlock("svg",Tr,[...n[0]||(n[0]=[e.createStaticVNode('<line x1="8" x2="21" y1="6" y2="6"></line><line x1="8" x2="21" y1="12" y2="12"></line><line x1="8" x2="21" y1="18" y2="18"></line><line x1="3" x2="3.01" y1="6" y2="6"></line><line x1="3" x2="3.01" y1="12" y2="12"></line><line x1="3" x2="3.01" y1="18" y2="18"></line>',6)])])}const Ir=X(Fr,[["render",Mr]]),Dr={},jr={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",height:"800px",width:"800px",version:"1.1",id:"_x32_",viewBox:"0 0 512 512","xml:space":"preserve"};function Or(t,n){return e.openBlock(),e.createElementBlock("svg",jr,[...n[0]||(n[0]=[e.createElementVNode("g",null,[e.createElementVNode("path",{class:"st0",d:"M511.989,292.396c0.021-16.486-6.344-33.136-18.945-45.703L273.605,27.242 C262.3,15.936,247.175,9.22,231.184,8.407L66.821,0.032l1.184,0.066C66.974,0.044,65.866,0,64.67,0 C47.58,0,31.105,6.783,18.944,18.955C6.783,31.106-0.001,47.58,0.011,64.67c0,1.076,0.034,2.172,0.078,3.27l8.297,163.254 c0.835,15.981,7.54,31.106,18.857,42.421l219.451,219.451c12.578,12.589,29.217,18.955,45.703,18.934 c16.496,0.021,33.124-6.356,45.703-18.934l154.956-154.945l-11.92-11.92l11.932,11.909 C505.645,325.521,512.011,308.881,511.989,292.396z M314.26,469.216c-6.08,6.08-13.895,9.044-21.864,9.067 c-7.969-0.023-15.783-2.986-21.864-9.067L51.082,249.765c-5.4-5.4-8.616-12.633-9.023-20.305L33.762,66.238l-0.034-1.569 c0-8.188,3.238-16.048,9.055-21.875c5.839-5.839,13.697-9.077,21.886-9.077l1.502,0.044l163.288,8.319 c7.683,0.396,14.904,3.6,20.305,9.012l219.45,219.45c6.059,6.069,9.033,13.884,9.056,21.853 c-0.023,7.968-2.986,15.794-9.067,21.886h0.011L314.26,469.216z"}),e.createElementVNode("path",{class:"st0",d:"M105.632,105.642c-15.366,15.378-15.366,40.27,0,55.636c15.366,15.366,40.259,15.366,55.625,0 c15.366-15.366,15.366-40.259,0-55.636C145.891,90.276,120.998,90.276,105.632,105.642z"})],-1)])])}const zr=X(Dr,[["render",Or]]),Pr={},Rr={xmlns:"http://www.w3.org/2000/svg",width:"800px",height:"800px",viewBox:"0 0 24 24",fill:"none"};function Ur(t,n){return e.openBlock(),e.createElementBlock("svg",Rr,[...n[0]||(n[0]=[e.createElementVNode("path",{d:"M3 12C3 4.5885 4.5885 3 12 3C19.4115 3 21 4.5885 21 12C21 19.4115 19.4115 21 12 21C4.5885 21 3 19.4115 3 12Z",stroke:"#323232","stroke-width":"2"},null,-1),e.createElementVNode("path",{d:"M9 12L10.6828 13.6828V13.6828C10.858 13.858 11.142 13.858 11.3172 13.6828V13.6828L15 10",stroke:"#323232","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])])}const on={IconText:jo,IconNumber:Ro,IconDate:Yo,IconDatetime:Go,IconRichtext:er,IconBoolean:rr,IconFile:sr,IconImage:pr,IconArray:hr,IconSelect:br,IconSlug:Br,IconDatalist:Vr,IconReference:Lr,IconReferenceList:Ir,IconBadge:zr,IconCheck:X(Pr,[["render",Ur]])},qr={key:0,class:"flex items-center justify-between mb-6"},Hr={class:"flex justify-end w-full"},Yr={class:"overflow-hidden bg-white border border-gray-200 shadow-sm rounded-xl flex flex-col flex-1 min-h-0"},Zr={class:"table-scroll-wrapper flex-1 overflow-y-auto min-h-0"},Wr={class:"table-fixed w-full text-[13px]"},Kr={class:"bg-gray-50 border-b border-gray-200"},Gr={key:0},Xr=["onDragstart","onDragover","onDrop"],Qr={key:0,class:"flex w-fit items-center gap-2 text-left"},Jr={class:"flex-1 min-w-0"},el={class:"font-medium text-gray-900 truncate"},tl={class:"text-xs text-gray-500"},nl={key:0,class:"flex items-center justify-center"},ol={key:0,class:"inline-flex items-center px-2 py-1 h-fit text-[13px] font-medium rounded-md ring-1 ring-inset ring-gray-500/10 bg-gray-100"},rl={key:1,class:"text-gray-500 text-sm"},ll={key:2},il={class:"px-6 py-4"},al={key:1},sl=["colspan"],Re=X(e.defineComponent({__name:"vs-datatable",props:e.mergeModels({columnsScheme:{},formScheme:{},addButton:{type:Boolean,default:!0},mainColWidth:{default:""}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(t,{expose:n}){function o(N){return N.charAt(0).toUpperCase()+N.slice(1)}const r=e.defineAsyncComponent(()=>import("@opengis/core").then(N=>N.VsModal)),l=e.defineAsyncComponent(()=>import("@opengis/form")),i=e.useModel(t,"modelValue"),a=t,c=e.ref({}),p=e.ref(!1),u=e.ref({}),h=e.ref(null);n({openCreateDialog:()=>{p.value=!0}});const s=e.computed({get(){return Array.isArray(i.value)?i.value:i.value&&Array.isArray(i.value.columns)?i.value.columns:[]},set(N){Array.isArray(i.value)?i.value=N:i.value&&Array.isArray(i.value.columns)&&(i.value.columns=N)}}),m=e.computed(()=>{const N=a.columnsScheme.map(A=>A.key);return N.includes("name")&&N.includes("label")||N.includes("id")&&N.includes("label")?[{key:"main",label:"Назва",type:"main",width:"100%"},...a.columnsScheme.filter(A=>!["name","id","label"].includes(A.key))]:a.columnsScheme});function y(){p.value=!1,u.value={},h.value=null}async function d(){const N=c.value.validate();if(N){ce.notify({type:"warning",title:"Validation",message:Object.entries(N).map(([A,x])=>`${A}: ${x}`).join(`
63
+ `)});return}if(h.value===null)s.value=[...s.value,{...u.value}];else{const A=[...s.value];A[h.value]={...u.value},s.value=A}y()}const f=e.ref(null),g=e.ref(null),V=N=>{f.value=N},b=N=>{g.value=N},w=N=>{if(f.value===null||f.value===N){f.value=null,g.value=null;return}const A=[...s.value],[x]=A.splice(f.value,1);A.splice(N,0,x),s.value=A,f.value=null,g.value=null};return(N,A)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[t.addButton?(e.openBlock(),e.createElementBlock("div",qr,[e.createElementVNode("div",Hr,[e.createElementVNode("button",{onClick:A[0]||(A[0]=x=>p.value=!0),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring [&_svg]:shrink-0 bg-primary hover:bg-primary/90 h-10 px-4 py-2 bg-gradient-to-r from-blue-600 to-blue-500 hover:from-blue-700 hover:to-blue-600 text-white"},[...A[4]||(A[4]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-4 h-4 mr-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 4v16m8-8H4"})],-1),e.createTextVNode(" Додати поле ",-1)])])])])):e.createCommentVNode("",!0),e.createElementVNode("div",Yr,[e.createElementVNode("div",Zr,[e.createElementVNode("table",Wr,[e.createElementVNode("colgroup",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,x=>(e.openBlock(),e.createElementBlock("col",{key:x.key,style:e.normalizeStyle(x.type==="main"?`width: ${t.mainColWidth}`:x.width?`width: ${x.width}`:"auto")},null,4))),128)),A[5]||(A[5]=e.createElementVNode("col",null,null,-1))]),e.createElementVNode("thead",null,[e.createElementVNode("tr",Kr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,x=>(e.openBlock(),e.createElementBlock("th",{key:x.key,class:"px-6 py-4"},e.toDisplayString(x.label),1))),128)),A[6]||(A[6]=e.createElementVNode("th",{class:"px-6 py-4"},"Дії",-1))])]),s.value.length?(e.openBlock(),e.createElementBlock("tbody",Gr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(x,T)=>(e.openBlock(),e.createElementBlock("tr",{key:x.id||x.name||T,class:e.normalizeClass(["transition-colors hover:bg-gray-50/50 cursor-move",{"opacity-50":f.value===T,"border-t-2 border-b-2 border-blue-500 bg-blue-50":g.value===T}]),draggable:"true",onDragstart:$=>V(T),onDragover:e.withModifiers($=>b(T),["prevent"]),onDrop:$=>w(T)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,$=>(e.openBlock(),e.createElementBlock("td",{key:$.key,class:"px-6 py-4 align-middle text-center"},[$.type==="main"?(e.openBlock(),e.createElementBlock("div",Qr,[A[7]||(A[7]=e.createElementVNode("span",{class:"drag-handle cursor-move mr-2 text-gray-400"},"☰",-1)),e.unref(nn)(x.format==="yes/no"?"check":x.format||x.type)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["flex items-center justify-center p-1 rounded",`bg-${e.unref(tn)(x.format==="yes/no"?"check":x.format||x.type)}-100`])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(x.format==="yes/no"?"icon-check":e.unref(on)["Icon"+o(x.format||x.type)]||e.unref(on).IconText),{class:"w-4 h-4"}))],2)):e.createCommentVNode("",!0),e.createElementVNode("div",Jr,[e.withDirectives((e.openBlock(),e.createElementBlock("p",el,[e.createTextVNode(e.toDisplayString(x.name||x.id),1)])),[[e.unref(Lo)]]),e.createElementVNode("p",tl,e.toDisplayString(x.label||x.ua||x.name||x.id),1)])])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[$.type==="color"?(e.openBlock(),e.createElementBlock("div",nl,[e.createElementVNode("div",{class:e.normalizeClass(["w-4 h-4 rounded-full align-middle",`bg-[${x[$.key]}]`])},null,2)])):["format","type","meta"].includes($.key)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[x[$.key]?(e.openBlock(),e.createElementBlock("span",ol,e.toDisplayString(x[$.key]),1)):(e.openBlock(),e.createElementBlock("span",rl,"Не вказано"))],64)):(e.openBlock(),e.createElementBlock("span",ll,e.toDisplayString(x[$.key]),1))],64))]))),128)),e.createElementVNode("td",il,[e.createVNode(So,{columns:s.value,"onUpdate:columns":A[1]||(A[1]=$=>s.value=$),data:x,index:T,scheme:t.formScheme},null,8,["columns","data","index","scheme"])])],42,Xr))),128))])):(e.openBlock(),e.createElementBlock("tr",al,[e.createElementVNode("td",{colspan:m.value.length+1,class:"text-gray-500 text-center py-4"}," Поля не знайдені ",8,sl)]))])])]),e.createVNode(e.unref(r),{teleport:"#modal",title:"Створити поле",size:"lg",visible:p.value,"onUpdate:visible":A[3]||(A[3]=x=>p.value=x)},{footer:e.withCtx(()=>[e.createElementVNode("div",{class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},[e.createElementVNode("button",{type:"button",onClick:y,class:"px-4 py-2 rounded bg-gray-100 text-gray-700"}," Скасувати "),e.createElementVNode("button",{type:"button",onClick:d,class:"px-4 py-2 rounded bg-blue-600 text-white"}," Зберегти1 ")])]),default:e.withCtx(()=>[e.createVNode(e.unref(l),{ref_key:"form",ref:c,modelValue:u.value,"onUpdate:modelValue":A[2]||(A[2]=x=>u.value=x),schema:t.formScheme},null,8,["modelValue","schema"])]),_:1},8,["visible"])],64))}}),[["__scopeId","data-v-49c96add"]]),cl={class:"p-4 text-[13px]"},dl={class:"grid grid-cols-2 gap-x-6 gap-y-2"},ul=["id","checked","onChange"],pl={class:"ml-2 flex-1 min-w-0 flex items-center gap-2"},ml={class:"font-medium text-gray-900 truncate"},fl={class:"text-xs text-gray-500"},gl={class:"flex justify-end gap-2 p-4 border-t w-full"},We=e.defineComponent({__name:"import-fields-dialog",props:e.mergeModels({fields:{default:()=>[]},title:{},idPrefix:{default:"import"},confirmText:{default:"Імпортувати"},cancelText:{default:"Скасувати"}},{visible:{type:Boolean,default:!1},visibleModifiers:{},selection:{default:[]},selectionModifiers:{}}),emits:e.mergeModels(["confirm","cancel"],["update:visible","update:selection"]),setup(t,{emit:n}){const o=e.useModel(t,"visible"),r=e.useModel(t,"selection"),l=t,i=n,a=e.defineAsyncComponent(()=>import("@opengis/core").then(b=>b.VsModal)),c=e.computed(()=>Array.isArray(l.fields)?l.fields.filter(Boolean):[]),p=b=>(b==null?void 0:b.name)??(b==null?void 0:b.id)??(b==null?void 0:b.key)??(b==null?void 0:b.code)??(b==null?void 0:b.field)??(b==null?void 0:b.value)??"",u=b=>String(p(b)??"").trim(),h=b=>(b==null?void 0:b.title)??(b==null?void 0:b.label)??u(b),s=e.computed(()=>new Set(r.value.map(b=>String(b??"").trim()))),m=b=>s.value.has(u(b)),y=b=>{const w=u(b);if(!w)return;const N=new Set(s.value);N.has(w)?N.delete(w):N.add(w),r.value=Array.from(N)},d=e.computed(()=>l.confirmText||"Імпортувати"),f=e.computed(()=>l.cancelText||"Скасувати"),g=()=>{o.value=!1,i("cancel")},V=()=>{i("confirm"),o.value=!1};return(b,w)=>(e.openBlock(),e.createBlock(e.unref(a),{visible:o.value,"onUpdate:visible":w[0]||(w[0]=N=>o.value=N),teleport:"#modal",title:t.title,size:"lg"},{footer:e.withCtx(()=>[e.createElementVNode("div",gl,[e.createElementVNode("button",{onClick:g,class:"px-4 py-2 rounded bg-gray-100 text-gray-700"},e.toDisplayString(f.value),1),e.createElementVNode("button",{onClick:V,class:"px-4 py-2 rounded bg-blue-600 text-white"},e.toDisplayString(d.value),1)])]),default:e.withCtx(()=>[e.createElementVNode("div",cl,[e.createElementVNode("div",dl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,N=>(e.openBlock(),e.createElementBlock("label",{key:u(N),class:"flex items-center hover:bg-gray-100 rounded p-2 cursor-pointer"},[e.createElementVNode("input",{type:"checkbox",id:`${t.idPrefix}-${u(N)}`,checked:m(N),onChange:A=>y(N)},null,40,ul),e.createElementVNode("div",pl,[e.unref(nn)(N.type)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(`bg-${e.unref(tn)(N.type)}-100 p-1 rounded`)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(`icon-${N.type}`),{class:"w-4 h-4"}))],2)):e.createCommentVNode("",!0),e.createElementVNode("div",null,[e.createElementVNode("p",ml,e.toDisplayString(u(N)),1),e.createElementVNode("p",fl,e.toDisplayString(h(N)),1)])])]))),128))])])]),_:1},8,["visible","title"]))}});function Ke(t){return t==null?"":String(t).trim()}function De(t){return Ke((t==null?void 0:t.name)??(t==null?void 0:t.id)??(t==null?void 0:t.key)??(t==null?void 0:t.code)??(t==null?void 0:t.field)??(t==null?void 0:t.value)??"")}function Ge(t,n,o){const r=Array.isArray(t)?[...t]:[],l=Array.isArray(n)?n:[],{selectedKeys:i,resolveKey:a}=o,c=new Set;for(const s of i){const m=Ke(s);m&&c.add(m)}if(c.size===0)return[];const p=s=>Ke(a(s)),u=[],h=new Set;for(const s of r){const m=p(s);!m||!c.has(m)||(u.push(s),h.add(m))}for(const s of l){const m=p(s);!m||h.has(m)||!c.has(m)||(u.push(s),h.add(m))}return u}const hl={class:"vs-form"},yl={class:"vs-form__body auto-rows-max container"},xl={class:"flex flex-wrap"},kl={class:"h-fit w-full mb-6 px-2"},bl={class:"h-fit w-full flex flex-wrap"},wl={class:"w-full"},_l=e.defineComponent({__name:"list-tab",props:e.mergeModels({fields:{}},{data:{default:{}},dataModifiers:{},form:{},formModifiers:{}}),emits:["update:data","update:form"],setup(t){const n=e.useModel(t,"data"),o=e.useModel(t,"form"),r=t,l=e.computed(()=>Array.isArray(r.fields)?r.fields:[]),i=b=>De(b||{}),a=e.defineAsyncComponent(()=>import("@opengis/form")),c=e.ref(),p=e.ref(!1),u=e.ref([]),h=()=>{const b=m.value.map(w=>i(w)).filter(w=>w.length>0);u.value=[...b],p.value=!0},s=e.computed(()=>{var b,w;return((b=n.value)==null?void 0:b.token)||((w=n.value)==null?void 0:w.id)||"register-form"}),m=e.computed({get:()=>(n.value||(n.value={}),Array.isArray(n.value.columns)||(n.value.columns=[]),n.value.columns),set:b=>{n.value||(n.value={}),n.value.columns=Array.isArray(b)?b:[]}}),y=e.computed({get:()=>n.value||{},set:b=>{var N;const w=Array.isArray((N=n.value)==null?void 0:N.columns)?n.value.columns:[];n.value={...n.value,...b,columns:w}}});e.watch(()=>c.value,b=>{o.value=b||null},{immediate:!0}),e.watch(p,b=>{b||(u.value=[])});const d=()=>{const b=new Set(u.value.map(A=>Ke(A)).filter(A=>A.length>0)),w=Array.isArray(m.value)?[...m.value]:[],N=l.value.filter(A=>b.has(i(A))).map(A=>{const x=i(A),T=A.title??A.label??x;return{...A,name:x,label:T,type:A.type||"text",meta:A.meta??"features"}});m.value=Ge(w,N,{selectedKeys:u.value,resolveKey:i}),p.value=!1,u.value=[]},f={table_name:{type:"text",label:"Table",required:!0,placeholder:"Table",validators:["required"],col:6},name:{type:"text",label:"Name",required:!0,placeholder:"Name",validators:["required"],col:6},query:{type:"text",label:"Query",placeholder:"Query",col:6},order:{type:"text",label:"Order",placeholder:"Order",col:6},description:{type:"text",label:"Description",placeholder:"Description",col:12}},g=[{key:"name",label:"Name",type:"text"},{key:"label",label:"Label",type:"text"},{key:"meta",label:"Мета",type:"text"}],V={name:{type:"text",label:"Name",required:!0},label:{type:"text",label:"Label",required:!0},format:{type:"radio",label:"Format",position:"horizontal",required:!0,options:[{text:"Text",id:"text"},{text:"Number",id:"number"},{text:"Date",id:"date"},{text:"File",id:"file"},{text:"Select",id:"select"}]},meta:{type:"combobox",label:"Мета",mode:"combo",required:!0,options:[{text:"Title",id:"title"},{text:"Features",id:"features"},{text:"Status",id:"status"},{text:"Tags",id:"tags"},{text:"Category",id:"category"},{text:"Image",id:"image"}]},data:{type:"text",label:"Класифікатор"}};return e.onBeforeUnmount(()=>{o.value=null}),(b,w)=>(e.openBlock(),e.createElementBlock("div",hl,[e.createElementVNode("div",yl,[e.createElementVNode("div",xl,[e.createElementVNode("div",kl,[(e.openBlock(),e.createBlock(e.unref(a),{ref_key:"formEl",ref:c,key:s.value,schema:f,modelValue:y.value,"onUpdate:modelValue":w[0]||(w[0]=N=>y.value=N)},null,8,["modelValue"]))]),e.createElementVNode("div",bl,[e.createElementVNode("div",{class:"flex justify-end mb-3 gap-2 w-full"},[e.createElementVNode("button",{onClick:h,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary hover:bg-primary/90 h-10 px-4 py-2 bg-gradient-to-r from-blue-600 to-blue-500 hover:from-blue-700 hover:to-blue-600 text-white"},[...w[4]||(w[4]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2",class:"mr-1"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 4v16m8-8H4"})],-1),e.createTextVNode(" Імпорт ",-1)])])]),e.createElementVNode("div",wl,[e.createVNode(Re,{modelValue:m.value,"onUpdate:modelValue":w[1]||(w[1]=N=>m.value=N),"columns-scheme":g,"form-scheme":V,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])])])])]),e.createVNode(We,{visible:p.value,"onUpdate:visible":w[2]||(w[2]=N=>p.value=N),selection:u.value,"onUpdate:selection":w[3]||(w[3]=N=>u.value=N),fields:l.value,title:"Імпорт колонок","id-prefix":"import-column",onConfirm:d},null,8,["visible","selection","fields"])]))}}),El={class:"vs-form"},Bl={class:"vs-form__body auto-rows-max container"},Nl={class:"flex flex-wrap"},vl={class:"h-fit w-full flex flex-wrap"},Cl={class:"w-full"},Vl=e.defineComponent({__name:"filter-tab",props:e.mergeModels({fields:{}},{data:{default:{}},dataModifiers:{},form:{},formModifiers:{}}),emits:["update:data","update:form"],setup(t){const n=e.useModel(t,"data"),o=e.useModel(t,"form"),r=t,l=e.computed(()=>Array.isArray(r.fields)?r.fields:[]),i=y=>De(y||{}),a=e.ref(!1),c=e.ref([]),p=()=>{const y=u.value.map(d=>i(d)).filter(d=>d.length>0);c.value=[...y],a.value=!0},u=e.computed({get:()=>(n.value||(n.value={}),Array.isArray(n.value.filters)||(n.value.filters=[]),n.value.filters),set:y=>{n.value||(n.value={}),n.value.filters=Array.isArray(y)?y:[]}});e.watch(a,y=>{y||(c.value=[])});const h=()=>{const y=new Set(c.value.map(g=>Ke(g)).filter(g=>g.length>0)),d=Array.isArray(u.value)?[...u.value]:[],f=l.value.filter(g=>y.has(i(g))).map(g=>({name:i(g),label:g.title??g.label??i(g),type:g.type||"text"}));u.value=Ge(d,f,{selectedKeys:c.value,resolveKey:i}),a.value=!1,c.value=[]},s=[{key:"id",label:"Name"},{key:"label",label:"UA"},{key:"type",label:"Тип"}],m={name:{type:"text",label:"Name",required:!0,disabled:!0},label:{type:"text",label:"Label",required:!0},type:{type:"radio",label:"Тип",required:!0,position:"horizontal",options:[{text:"Check",id:"check"},{text:"Range",id:"range"},{text:"Date",id:"date"},{text:"Text",id:"text"},{text:"Select",id:"select"}]},hidden:{label:"Приховати",type:"Switcher"},data:{type:"text",label:"Класифікатор",conditions:["type","in",["select","autocomplete","check"]]}};return e.onBeforeUnmount(()=>{o.value=null}),(y,d)=>(e.openBlock(),e.createElementBlock("div",El,[e.createElementVNode("div",Bl,[e.createElementVNode("div",Nl,[d[4]||(d[4]=e.createElementVNode("div",{class:"h-fit w-full flex flex-wrap mb-6 px-2"},[e.createElementVNode("p",{class:"text-sm text-gray-600"}," Налаштуйте фільтри реєстру. Оберіть поля для імпорту або відредагуйте властивості вручну. ")],-1)),e.createElementVNode("div",vl,[e.createElementVNode("div",{class:"flex justify-end mb-3 gap-2 w-full"},[e.createElementVNode("button",{onClick:p,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary hover:bg-primary/90 h-10 px-4 py-2 bg-gradient-to-r from-blue-600 to-blue-500 hover:from-blue-700 hover:to-blue-600 text-white"},[...d[3]||(d[3]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2",class:"mr-1"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 4v16m8-8H4"})],-1),e.createTextVNode(" Імпорт ",-1)])])]),e.createElementVNode("div",Cl,[e.createVNode(Re,{modelValue:u.value,"onUpdate:modelValue":d[0]||(d[0]=f=>u.value=f),"columns-scheme":s,"form-scheme":m,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])])])])]),e.createVNode(We,{visible:a.value,"onUpdate:visible":d[1]||(d[1]=f=>a.value=f),selection:c.value,"onUpdate:selection":d[2]||(d[2]=f=>c.value=f),fields:l.value,title:"Імпорт фільтрів","id-prefix":"import-filter",onConfirm:h},null,8,["visible","selection","fields"])]))}}),$l={class:"vs-form"},Al={class:"vs-form__body auto-rows-max container"},Sl={class:"flex flex-wrap"},Ll={class:"h-fit w-full flex flex-wrap"},Fl={class:"w-full"},Tl=e.defineComponent({__name:"card-tab",props:e.mergeModels({fields:{}},{data:{default:{}},dataModifiers:{},form:{},formModifiers:{}}),emits:["update:data","update:form"],setup(t){const n=e.useModel(t,"data"),o=e.useModel(t,"form"),r=t,l=e.computed(()=>Array.isArray(r.fields)?r.fields:[]),i=y=>De(y||{}),a=e.ref(!1),c=e.ref([]),p=()=>{const y=u.value.map(d=>i(d)).filter(d=>d.length>0);c.value=[...y],a.value=!0},u=e.computed({get:()=>n.value.card,set:y=>{n.value||(n.value={}),n.value.card=Array.isArray(y)?y:[]}});e.watch(a,y=>{var d;if(y){const f=((d=u.value)==null?void 0:d.map(g=>g.name))||[];c.value=[...f]}});const h=()=>{const y=new Set(c.value.map(g=>Ke(g)).filter(g=>g.length>0)),d=Array.isArray(u.value)?[...u.value]:[],f=l.value.filter(g=>y.has(i(g))).map(g=>{const V=i(g),b=g.title??g.label??V;return{...g,name:V,label:b,format:g.format||g.type||"text",meta:g.meta||"title"}});u.value=Ge(d,f,{selectedKeys:c.value,resolveKey:i}),a.value=!1,c.value=[]},s=[{key:"name",label:"Name",type:"text"},{key:"label",label:"Label",type:"text"},{key:"format",label:"Format",type:"text"}],m={name:{type:"text",label:"Name",required:!0,disabled:!0},label:{type:"text",label:"Label",required:!0},format:{type:"radio",label:"Format",position:"horizontal",required:!0,options:[{text:"Text",id:"text"},{text:"Number",id:"number"},{text:"Date",id:"date"},{text:"File",id:"file"},{text:"Select",id:"select"}]},data:{type:"text",label:"Data"}};return e.onBeforeUnmount(()=>{o.value=null}),(y,d)=>(e.openBlock(),e.createElementBlock("div",$l,[e.createElementVNode("div",Al,[e.createElementVNode("div",Sl,[d[4]||(d[4]=e.createElementVNode("div",{class:"h-fit w-full flex flex-wrap mb-6 px-2"},[e.createElementVNode("p",{class:"text-sm text-gray-600"}," Налаштуйте відображення картки. Оберіть потрібні поля та відредагуйте їхні властивості. ")],-1)),e.createElementVNode("div",Ll,[e.createElementVNode("div",{class:"flex justify-end mb-3 gap-2 w-full"},[e.createElementVNode("button",{onClick:p,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary hover:bg-primary/90 h-10 px-4 py-2 bg-gradient-to-r from-blue-600 to-blue-500 hover:from-blue-700 hover:to-blue-600 text-white"},[...d[3]||(d[3]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2",class:"mr-1"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 4v16m8-8H4"})],-1),e.createTextVNode(" Імпорт ",-1)])])]),e.createElementVNode("div",Fl,[e.createVNode(Re,{modelValue:u.value,"onUpdate:modelValue":d[0]||(d[0]=f=>u.value=f),"columns-scheme":s,"form-scheme":m,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])])])])]),e.createVNode(We,{visible:a.value,"onUpdate:visible":d[1]||(d[1]=f=>a.value=f),selection:c.value,"onUpdate:selection":d[2]||(d[2]=f=>c.value=f),fields:l.value,title:"Імпорт полів картки","id-prefix":"import-card",onConfirm:h},null,8,["visible","selection","fields"])]))}}),Ml=["","січня","лютого","березня","квітня","травня","червня","липня","серпня","вересня","жовтня","листопада","грудня"];function nt(t){if(!t)return"";const[n,o]=t.split(" ");if(!n)return t;const[r,l,i]=n.split("-");if(!r||!l||!i)return t;const a=parseInt(l,10),c=Ml[a]||l;let p=`${parseInt(i,10)} ${c} ${r}`;if(o){const u=o.split(".")[0],[h,s,m]=u.split(":");h&&s&&m?p+=`, ${h}:${s}:${m}`:h&&s?p+=`, ${h}:${s}`:h&&(p+=`, ${h}`)}return p}const Il={class:"flex justify-between p-4 pb-2 bg-slate-50 gap-4"},Dl={class:"flex items-center justify-between"},jl={class:"text-lg font-bold line-clamp-2"},Ol={key:0,class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 text-foreground ml-2 whitespace-nowrap","data-v0-t":"badge"},zl={key:0,class:"flex"},Pl={key:0,class:"h-fit inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 text-foreground ml-2 whitespace-nowrap"},Rl={class:"p-4 pt-2"},Ul={class:"grid grid-cols-2 gap-3 text-sm"},ql={class:"text-gray-500"},Hl={class:"font-medium"},Yl={class:"items-center p-3 bg-slate-50 flex justify-end gap-2"},Zl=["href"],Wl=["href"],rn=e.defineComponent({__name:"template-1",props:{items:{},item:{},columns:{},path:{},id_key:{default:"id"},query_params:{default:()=>[]}},setup(t){const n=t,o=e.computed(()=>n.items&&n.items.length||n.items?n.items:n.item!=null?[n.item]:[]),r=e.computed(()=>n.columns.find(h=>h.meta==="title")),l=e.computed(()=>n.columns.filter(h=>h.meta==="category")),i=e.computed(()=>n.columns.filter(h=>h.meta==="tags")),a=e.computed(()=>n.columns.filter(h=>h.meta!=="title")),c=(h,s)=>{if(s)return h[s]},p=h=>{const s=c(h,n.id_key);return`${n.path}?id=${s}`},u=h=>{const s=h.service_id,m=c(h,n.id_key);return`/map?layers=${s}&info=${s},${m}`};return(h,s)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,m=>{var y,d,f;return e.openBlock(),e.createElementBlock("div",{key:m.id,class:"rounded-lg border bg-card text-card-foreground overflow-hidden border-none shadow-md relative","data-v0-t":"card"},[e.createElementVNode("div",Il,[e.createElementVNode("div",Dl,[e.createElementVNode("h2",jl,e.toDisplayString(m[`${(y=r.value)==null?void 0:y.name}_text`]||m[(d=r.value)==null?void 0:d.name]||m[(f=r.value)==null?void 0:f.label]||"Не вказано"),1),Array.isArray(l.value)&&l.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(l.value,g=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:g.name},[m[g.name]?(e.openBlock(),e.createElementBlock("div",Ol,e.toDisplayString(m[`${g.name}_text`]||m[g.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0)]),Array.isArray(i.value)&&i.value.length?(e.openBlock(),e.createElementBlock("div",zl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,g=>(e.openBlock(),e.createElementBlock("div",{key:g.name,class:"mt-2 flex flex-wrap gap-1"},[m[g.name]?(e.openBlock(),e.createElementBlock("span",Pl,e.toDisplayString(m[`${g.name}_text`]||m[g.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Rl,[e.createElementVNode("div",Ul,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,g=>{var V;return e.openBlock(),e.createElementBlock("div",{key:g.name,class:"flex items-center gap-1.5"},[e.createElementVNode("span",ql,e.toDisplayString(g.ua||g.label)+": ",1),e.createElementVNode("span",Hl,[Array.isArray(m[g==null?void 0:g.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(m[(g==null?void 0:g.name)+"_text"]||m[g==null?void 0:g.name],(b,w)=>(e.openBlock(),e.createElementBlock("span",{key:w,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(b),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[g.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(nt)(m[g==null?void 0:g.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(((V=m[(g==null?void 0:g.name)+"_data"])==null?void 0:V.text)||m[(g==null?void 0:g.name)+"_text"]||m[g==null?void 0:g.name]||"Немає даних"),1)],64))],64))])])}),128))])]),e.createElementVNode("div",Yl,[m.service_id?(e.openBlock(),e.createElementBlock("a",{key:0,href:u(m),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-9 rounded-md px-3"},[...s[0]||(s[0]=[e.createTextVNode(" На карті ",-1),e.createElementVNode("svg",{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:"lucide lucide-map-pin-check-inside ml-1 h-3.5 w-3.5"},[e.createElementVNode("path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0"}),e.createElementVNode("path",{d:"m9 10 2 2 4-4"})],-1)])],8,Zl)):e.createCommentVNode("",!0),e.createElementVNode("a",{href:p(m),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-9 rounded-md px-3"},[...s[1]||(s[1]=[e.createTextVNode(" Детальніше ",-1),e.createElementVNode("svg",{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:"lucide lucide-arrow-right ml-1 h-3.5 w-3.5"},[e.createElementVNode("path",{d:"M5 12h14"}),e.createElementVNode("path",{d:"m12 5 7 7-7 7"})],-1)])],8,Wl)])])}),128))}}),Kl={class:"p-0"},Gl={class:"border-l-4 border-l-slate-400"},Xl={class:"p-4"},Ql={class:"flex flex-wrap items-center gap-2 mb-3"},Jl={class:"text-lg font-bold"},ei={key:0,class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-green-100 text-green-800 hover:bg-green-100","data-v0-t":"badge"},ti={key:1,class:"flex"},ni={key:0,class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold border-transparent bg-gray-100 text-gray-800"},oi={class:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-4 gap-3 text-sm border-t pt-3"},ri={class:"text-xs text-gray-500 mb-1"},li={class:"font-medium"},ii={class:"flex justify-end mt-3 border-t pt-3"},ai=["href"],ln=e.defineComponent({__name:"template-2",props:{items:{},item:{},columns:{},path:{},id_key:{default:"id"},query_params:{default:()=>[]}},setup(t){const n=t,o=e.computed(()=>n.items&&n.items.length||n.items?n.items:n.item!=null?[n.item]:[]),r=e.computed(()=>n.columns.find(u=>u.meta==="title")),l=e.computed(()=>n.columns.filter(u=>u.meta==="category")),i=e.computed(()=>n.columns.filter(u=>u.meta==="tags")),a=e.computed(()=>n.columns.filter(u=>u.meta!=="title")),c=(u,h)=>{if(h)return u[h]},p=u=>{const h=c(u,n.id_key);return`${n.path}?id=${h}`};return(u,h)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,s=>{var m,y;return e.openBlock(),e.createElementBlock("div",{key:s.id,class:"rounded-lg border bg-card text-card-foreground shadow-sm overflow-hidden","data-v0-t":"card"},[e.createElementVNode("div",Kl,[e.createElementVNode("div",Gl,[e.createElementVNode("div",Xl,[e.createElementVNode("div",Ql,[e.createElementVNode("h2",Jl,e.toDisplayString(s[`${(m=r.value)==null?void 0:m.name}_text`]||s[(y=r.value)==null?void 0:y.name]||"Не вказано"),1),Array.isArray(l.value)&&l.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(l.value,d=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:d.name},[s[d.name]?(e.openBlock(),e.createElementBlock("div",ei,e.toDisplayString(s[`${d.name}_text`]||s[d.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0),Array.isArray(i.value)&&i.value.length?(e.openBlock(),e.createElementBlock("div",ti,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,d=>(e.openBlock(),e.createElementBlock("div",{key:d.name,class:"flex flex-wrap gap-1 ml-2"},[s[d.name]?(e.openBlock(),e.createElementBlock("span",ni,e.toDisplayString(s[`${d.name}_text`]||s[d.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",oi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,d=>{var f;return e.openBlock(),e.createElementBlock("div",{key:d.name},[e.createElementVNode("p",ri,e.toDisplayString(d.ua),1),e.createElementVNode("p",li,[Array.isArray(s[d==null?void 0:d.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(s[d==null?void 0:d.name],(g,V)=>(e.openBlock(),e.createElementBlock("span",{key:V,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(g),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[d.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(nt)(s[d==null?void 0:d.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(((f=s[(d==null?void 0:d.name)+"_data"])==null?void 0:f.text)||s[(d==null?void 0:d.name)+"_text"]||s[d==null?void 0:d.name]||"Немає даних"),1)],64))],64))])])}),128))]),e.createElementVNode("div",ii,[e.createElementVNode("a",{href:p(s),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 hover:bg-accent hover:text-accent-foreground h-9 rounded-md px-3"},[...h[0]||(h[0]=[e.createTextVNode(" Детальніше ",-1),e.createElementVNode("svg",{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:"lucide lucide-external-link ml-1 h-3.5 w-3.5"},[e.createElementVNode("path",{d:"M15 3h6v6"}),e.createElementVNode("path",{d:"M10 14 21 3"}),e.createElementVNode("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"})],-1)])],8,ai)])])])])])}),128))}}),si={class:"space-y-4"},ci={class:"flex items-center py-2 px-3"},di={class:"flex-1"},ui={class:"grid grid-cols-12 gap-2 w-full text-xs"},pi={class:"col-span-5"},mi={key:0,class:"inline-flex items-center rounded-full border transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 mt-1 text-[10px] font-normal px-1.5 py-0","data-v0-t":"badge"},fi={key:1,class:"flex flex-wrap gap-1 mt-1"},gi={key:0,class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold border-transparent bg-gray-100 text-gray-800"},hi={class:"col-span-7"},yi={class:"grid grid-cols-3 gap-3"},xi={class:"text-[10px] text-gray-500 mb-1"},ki={class:"truncate font-medium"},bi=["href"],an=e.defineComponent({__name:"template-3",props:{items:{},item:{},columns:{},path:{},id_key:{},query_params:{default:()=>[]}},setup(t){const n=t,o=e.computed(()=>n.items&&n.items.length||n.items?n.items:n.item!=null?[n.item]:[]),r=e.computed(()=>n.columns.find(h=>h.meta==="title")),l=e.computed(()=>n.columns.filter(h=>h.meta==="category")),i=e.computed(()=>n.columns.filter(h=>h.meta==="tags")),a=e.computed(()=>n.columns.filter(h=>h.meta!=="title")),c=e.computed(()=>"bg-blue-500"),p=(h,s)=>{if(s)return h[s]},u=h=>{const s=p(h,n.id_key);return`${n.path}?id=${s}`};return(h,s)=>(e.openBlock(),e.createElementBlock("div",si,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,m=>{var y,d;return e.openBlock(),e.createElementBlock("div",{key:m.id,class:"border-b border-slate-200 hover:bg-slate-50 transition-colors"},[e.createElementVNode("div",ci,[e.createElementVNode("div",{class:e.normalizeClass(["w-1 h-8 rounded-full mr-3",c.value])},null,2),e.createElementVNode("div",di,[e.createElementVNode("div",ui,[e.createElementVNode("div",pi,[e.createElementVNode("p",{class:e.normalizeClass(["font-bold text-sm text-left",{"w-full h-full flex items-center":!Array.isArray(i.value)||!i.value.length}])},e.toDisplayString(m[`${(y=r.value)==null?void 0:y.name}_text`]||m[(d=r.value)==null?void 0:d.name]||m[Object.keys(m)[0]]||"Не вказано"),3),Array.isArray(l.value)&&l.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(l.value,f=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:f.name},[m[f.name]?(e.openBlock(),e.createElementBlock("div",mi,e.toDisplayString(m[`${f.name}_text`]||m[f.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0),Array.isArray(i.value)&&i.value.length?(e.openBlock(),e.createElementBlock("div",fi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,f=>(e.openBlock(),e.createElementBlock("div",{key:f.name,class:"flex flex-wrap gap-1 mt-1"},[m[f.name]?(e.openBlock(),e.createElementBlock("span",gi,e.toDisplayString(m[`${f.name}_text`]||m[f.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",hi,[e.createElementVNode("div",yi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,f=>{var g;return e.openBlock(),e.createElementBlock("div",{key:f.name},[e.createElementVNode("p",xi,e.toDisplayString(f.ua),1),e.createElementVNode("p",ki,[Array.isArray(m[f==null?void 0:f.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(m[f==null?void 0:f.name],(V,b)=>(e.openBlock(),e.createElementBlock("span",{key:b,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(V),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[f.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(nt)(m[f==null?void 0:f.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(((g=m[(f==null?void 0:f.name)+"_data"])==null?void 0:g.text)||m[(f==null?void 0:f.name)+"_text"]||m[f==null?void 0:f.name]||"Немає даних"),1)],64))],64))])])}),128))])])])]),e.createElementVNode("a",{href:u(m),class:"ml-auto flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 hover:bg-accent hover:text-accent-foreground rounded-md h-7 w-7 p-0",style:{"min-width":"2.5rem"}},[...s[0]||(s[0]=[e.createElementVNode("svg",{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:"lucide lucide-chevron-right h-4 w-4"},[e.createElementVNode("path",{d:"m9 18 6-6-6-6"})],-1)])],8,bi)])])}),128))]))}}),wi={class:"flex flex-col space-y-1.5 p-6 pb-2"},_i={class:"flex items-center gap-2"},Ei={class:"tracking-tight text-lg font-medium"},Bi={key:0,class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-blue-100 text-blue-800 ml-2","data-v0-t":"badge"},Ni={key:1,class:"flex"},vi={key:0,class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold border-transparent bg-gray-100 text-gray-800"},Ci={class:"p-6 pt-0 pb-4"},Vi={class:"grid grid-cols-2 gap-4"},$i={class:"text-sm text-gray-500"},Ai={class:"font-medium"},Si={class:"flex items-center p-6 pt-0"},Li=["href"],sn=e.defineComponent({__name:"template-4",props:{items:{},item:{},columns:{},path:{},id_key:{},query_params:{default:()=>[]}},setup(t){const n=t,o=e.computed(()=>n.items&&n.items.length||n.items?n.items:n.item!=null?[n.item]:[]),r=e.computed(()=>n.columns.find(u=>u.meta==="title")),l=e.computed(()=>n.columns.filter(u=>u.meta==="category")),i=e.computed(()=>n.columns.filter(u=>u.meta==="tags")),a=e.computed(()=>n.columns.filter(u=>u.meta!=="title")),c=(u,h)=>{if(h)return u[h]},p=u=>{const h=c(u,n.id_key);return`${n.path}?id=${h}`};return(u,h)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,s=>{var m,y;return e.openBlock(),e.createElementBlock("div",{key:s.id,class:"rounded-lg border bg-card text-card-foreground shadow-sm border-l-4 border-l-blue-600","data-v0-t":"card"},[e.createElementVNode("div",wi,[e.createElementVNode("div",_i,[e.createElementVNode("h3",Ei,e.toDisplayString(s[`${(m=r.value)==null?void 0:m.name}_text`]||s[(y=r.value)==null?void 0:y.name]||Object.keys(s)[0]||"Не вказано"),1),Array.isArray(l.value)&&l.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(l.value,d=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:d.name},[s[d.name]?(e.openBlock(),e.createElementBlock("div",Bi,e.toDisplayString(s[`${d.name}_text`]||s[d.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0),Array.isArray(i.value)&&i.value.length?(e.openBlock(),e.createElementBlock("div",Ni,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,d=>(e.openBlock(),e.createElementBlock("div",{key:d.name,class:"flex flex-wrap gap-1 ml-2"},[s[d.name]?(e.openBlock(),e.createElementBlock("span",vi,e.toDisplayString(s[`${d.name}_text`]||s[d.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)])]),e.createElementVNode("div",Ci,[e.createElementVNode("div",Vi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,d=>{var f;return e.openBlock(),e.createElementBlock("div",{key:d.name},[e.createElementVNode("p",$i,e.toDisplayString(d.ua),1),e.createElementVNode("p",Ai,[Array.isArray(s[d==null?void 0:d.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(s[d==null?void 0:d.name],(g,V)=>(e.openBlock(),e.createElementBlock("span",{key:V,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(g),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[d.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(nt)(s[d==null?void 0:d.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(((f=s[(d==null?void 0:d.name)+"_data"])==null?void 0:f.text)||s[(d==null?void 0:d.name)+"_text"]||s[d==null?void 0:d.name]||"Немає даних"),1)],64))],64))])])}),128))])]),e.createElementVNode("div",Si,[e.createElementVNode("a",{href:p(s),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 border bg-background h-10 px-4 py-2 rounded-md text-black border-black hover:bg-gray-100 hover:text-black"}," Детальніше ",8,Li)])])}),128))}}),Fi={class:"grid grid-cols-12 divide-x divide-gray-100"},Ti={key:0},Mi=["src"],Ii={key:1,class:"col-span-1 flex items-center justify-center"},Di={class:"col-span-7 p-4"},ji={class:"flex items-center mb-1 col-span-7 p-4"},Oi={class:"text-base font-bold text-gray-900 mr-2"},zi={key:0,class:"inline-flex items-center rounded-full px-2.5 py-0.5 font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-primary/80 bg-blue-100 text-blue-800 border-0 text-xs ml-2"},Pi={class:"text-sm text-gray-600 line-clamp-1 mb-2"},Ri={class:"grid grid-cols-2 gap-x-4 gap-y-1 text-sm"},Ui={class:"text-gray-500 mr-1"},qi=["innerHTML"],Hi={class:"text-gray-600 truncate"},Yi={class:"col-span-2 p-3 bg-gray-50 flex flex-col justify-center"},Zi={class:"text-xs text-gray-500 mb-1.5"},Wi={key:0,class:"flex flex-wrap gap-1"},Ki={key:0,class:"inline-flex items-center rounded-full font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 hover:bg-secondary/80 bg-white border border-gray-200 text-gray-700 text-xs px-1.5 py-0"},Gi={class:"col-span-2 flex flex-col justify-center items-center bg-gray-50 border-l p-2"},Xi={class:"w-full space-y-2"},Qi=["href"],cn=e.defineComponent({__name:"template-5",props:{items:{},item:{},columns:{},path:{},id_key:{},query_params:{default:()=>[]}},setup(t){const n=t,o=e.computed(()=>n.items&&n.items.length||n.items?n.items:n.item!=null?[n.item]:[]),r=e.computed(()=>n.columns.find(s=>s.meta==="title")),l=e.computed(()=>n.columns.filter(s=>s.meta==="category")),i=e.computed(()=>n.columns.filter(s=>s.meta==="tags")),a=e.computed(()=>n.columns.filter(s=>s.meta==="features")),c=e.computed(()=>n.columns.find(s=>s.meta==="image")),p=e.computed(()=>n.columns.find(s=>s.meta==="desc")||n.columns.find(s=>s.name==="description")),u=(s,m)=>{if(m)return s[m]},h=s=>{const m=u(s,n.id_key);return`${n.path}?id=${m}`};return(s,m)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,y=>{var d,f,g,V,b;return e.openBlock(),e.createElementBlock("div",{key:y.id,class:"bg-white border border-gray-200 rounded-lg overflow-hidden transition-all duration-200 hover:shadow-md"},[e.createElementVNode("div",Fi,[c.value?(e.openBlock(),e.createElementBlock("div",Ti,[y[(d=c.value)==null?void 0:d.name]?(e.openBlock(),e.createElementBlock("img",{key:0,src:y[(f=c.value)==null?void 0:f.name],alt:"image",class:"object-cover h-full"},null,8,Mi)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",Ii,[...m[0]||(m[0]=[e.createElementVNode("div",{class:"w-3 h-12 rounded-sm bg-blue-500",title:"Пріоритет: Високий","aria-hidden":"true"},null,-1)])])),e.createElementVNode("div",Di,[e.createElementVNode("div",ji,[e.createElementVNode("h3",Oi,e.toDisplayString(y[`${(g=r.value)==null?void 0:g.name}_text`]||y[(V=r.value)==null?void 0:V.name]||Object.keys(y)[0]||"Не вказано"),1),Array.isArray(l.value)&&l.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(l.value,w=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:w.name},[y[w.name]?(e.openBlock(),e.createElementBlock("div",zi,e.toDisplayString(y[`${w.name}_text`]||y[w.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0)]),e.createElementVNode("p",Pi,e.toDisplayString(y[(b=p.value)==null?void 0:b.name]),1),e.createElementVNode("div",Ri,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,w=>{var N;return e.openBlock(),e.createElementBlock("div",{key:w.name,class:"flex items-center"},[e.createElementVNode("span",Ui,e.toDisplayString((w==null?void 0:w.ua)||w.label||w.name)+":",1),w.icon?(e.openBlock(),e.createElementBlock("span",{key:0,class:"mr-1 flex-shrink-0",innerHTML:w.icon},null,8,qi)):e.createCommentVNode("",!0),e.createElementVNode("span",Hi,[Array.isArray(y[w==null?void 0:w.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(y[w==null?void 0:w.name],(A,x)=>(e.openBlock(),e.createElementBlock("span",{key:x,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(A),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[w.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(nt)(y[w==null?void 0:w.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(((N=y[(w==null?void 0:w.name)+"_data"])==null?void 0:N.text)||y[w==null?void 0:w.name]||"Немає даних"),1)],64))],64))])])}),128))])]),e.createElementVNode("div",Yi,[e.createElementVNode("p",Zi," Теги: "+e.toDisplayString(i.value.length&&y[i.value[0].name]?"":"відсутні"),1),Array.isArray(i.value)&&i.value.length?(e.openBlock(),e.createElementBlock("div",Wi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,w=>(e.openBlock(),e.createElementBlock("div",{key:w.name,class:"flex flex-wrap gap-1"},[y[w.name]?(e.openBlock(),e.createElementBlock("span",Ki,e.toDisplayString(y[`${w.name}_text`]||y[w.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Gi,[e.createElementVNode("div",Xi,[e.createElementVNode("a",{href:h(y),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 rounded-md px-3 w-full bg-blue-600 hover:bg-blue-700 text-white text-xs h-8"}," Детальніше ",8,Qi)])])])])}),128))}}),dn={template1:rn,template2:ln,template3:an,template4:sn,template5:cn},Ji={class:"space-y-4"},ea={class:"flex items-center gap-4"},ta={class:"text-lg font-semibold mb-4"},na={key:1,class:"text-gray-400 text-center py-12"},oa={key:2,class:"text-gray-400 text-center py-12"},ra=e.defineComponent({__name:"preview-tab",props:{data:{default:{}},dataModifiers:{}},emits:["update:data"],setup(t){const n=e.defineAsyncComponent(()=>import("@opengis/form")),o=e.useModel(t,"data"),r=[{text:"template1",id:"template1"},{text:"template2",id:"template2"},{text:"template3",id:"template3"},{text:"template4",id:"template4"},{text:"template5",id:"template5"}],l={view:{type:"radio",label:"Вигляд",position:"horizontal",required:!0,options:r,col:12}},i=e.computed(()=>{var h;return Array.isArray((h=o.value)==null?void 0:h.columns)?o.value.columns:[]}),a=e.computed(()=>{var h;return((h=o.value)==null?void 0:h.view)||"template1"}),c=e.computed(()=>dn[a.value]||dn.template1),p=e.computed(()=>{var m;const h=(m=o.value)==null?void 0:m.view;if(!h)return"template1";const s=r.find(y=>y.id===h);return(s==null?void 0:s.text)||h}),u=e.computed(()=>(Array.isArray(o.value.tableData)?o.value.tableData:[]).slice(0,5));return(h,s)=>(e.openBlock(),e.createElementBlock("div",Ji,[e.createElementVNode("div",ea,[(e.openBlock(),e.createBlock(e.unref(n),{key:o.value.id,schema:l,modelValue:o.value,"onUpdate:modelValue":s[0]||(s[0]=m=>o.value=m)},null,8,["modelValue"]))]),e.createElementVNode("h2",ta," Превʼю таблиці ("+e.toDisplayString(p.value)+") ",1),c.value&&u.value.length&&i.value.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(c.value),{items:u.value,columns:i.value,path:"#",id_key:"id",key:a.value},null,8,["items","columns"])):u.value.length?(e.openBlock(),e.createElementBlock("div",oa," Додайте колонки та виберіть вигляд для перегляду ")):(e.openBlock(),e.createElementBlock("div",na," Немає даних для превʼю "))]))}}),la={class:"relative h-screen flex flex-col bg-white p-8"},ia={class:"flex-1 flex flex-col min-h-0 overflow-hidden"},aa={class:"max-w-6xl mx-auto flex-1 flex flex-col min-h-0 w-full"},sa={class:"flex items-center justify-between mb-6 flex-shrink-0"},ca={class:"flex items-center gap-2"},da={class:"w-full flex-shrink-0 mb-6"},ua={class:"flex items-center w-full h-10 max-w-md grid-cols-3 p-1 bg-white border border-gray-200 rounded-md text-muted-foreground"},pa=["onClick"],ma={class:"flex-1 min-h-0 overflow-y-auto"},fa=e.defineComponent({__name:"register",setup(t){const n=Be.useRoute(),o=Be.useRouter(),r=e.ref("list"),l=e.ref(""),i=[{name:"Список",id:"list"},{name:"Фільтри",id:"filters"},{name:"Картка",id:"card"},{name:"Перегляд",id:"preview"}],a={list:_l,filters:Vl,card:Tl,preview:ra},c=i.map(y=>y.id),p=e.ref({columns:[],filters:[],card:[],tableData:[]}),u=e.ref([]),h=async()=>{var d;if(!((d=p.value)==null?void 0:d.token)){ce.notify({type:"error",title:"Помилка",message:"Відсутній токен для збереження"});return}try{const f=await fetch(`/api/gis-registry/${n.params.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(p.value)});if(!f.ok)throw new Error(`Failed to save content: ${f.status}`);ce.notify({type:"success",title:"Успіх",message:"Контент збережено"})}catch(f){ce.notify({type:"error",title:"Помилка",message:"Не вдалося зберегти контент"}),console.error(f)}},s=async y=>{try{const f=await(await fetch(`/api/gis-registry/${y}`)).json(),g=Array.isArray(f==null?void 0:f.rows)?f.rows:[];p.value.tableData=g.slice(0,3)}catch(d){console.error("Помилка завантаження превʼю:",d)}},m=async()=>{var y,d;try{const g=await(await fetch(`/api/data/gis.registers.table/${n.params.id}`)).json(),V=((y=g==null?void 0:g.rows)==null?void 0:y[0])||{};l.value=V.register_key||"",p.value={...V,columns:Array.isArray(V.columns)?V.columns:[],filters:Array.isArray(V.filters)?V.filters:[],card:Array.isArray(V.card)?V.card:[],tableData:Array.isArray(V.tableData)?V.tableData:[]},(d=g==null?void 0:g.tokens)!=null&&d.edit&&(p.value.token=g.tokens.edit),u.value=Array.isArray(g==null?void 0:g.fields)?g.fields:[]}catch(f){console.error("Помилка завантаження даних:",f)}};return e.onMounted(async()=>{const y=n.query.tab;typeof y=="string"&&c.includes(y)&&(r.value=y),await m(),l.value&&await s(l.value)}),e.watch(r,y=>{n.query.tab!==y&&o.replace({query:{...n.query,tab:y}})}),e.watch(()=>n.query.tab,y=>{typeof y=="string"&&c.includes(y)&&r.value!==y&&(r.value=y)}),(y,d)=>(e.openBlock(),e.createElementBlock("main",la,[e.createElementVNode("div",ia,[e.createElementVNode("div",aa,[e.createElementVNode("div",sa,[d[2]||(d[2]=e.createElementVNode("div",null,[e.createElementVNode("h1",{class:"mb-2 text-2xl font-semibold text-gray-900"},"Створити контент"),e.createElementVNode("p",{class:"text-gray-600"},"Створити контент для вашого сайту")],-1)),e.createElementVNode("div",ca,[e.createElementVNode("button",{onClick:d[0]||(d[0]=f=>e.unref(o).back()),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border bg-background hover:text-accent-foreground h-10 px-4 py-2 border-gray-300 text-gray-700 hover:bg-gray-50"}," Повернутися "),e.createElementVNode("button",{onClick:h,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-white rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 text-primary-foreground h-10 px-4 py-2 bg-blue-600 hover:bg-blue-700"}," Зберегти ")])]),e.createElementVNode("div",da,[e.createElementVNode("div",ua,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(i,f=>e.createElementVNode("button",{key:f.id,onClick:g=>r.value=f.id,class:e.normalizeClass(["inline-flex flex-1 items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm data-[state=active]:bg-blue-50 data-[state=active]:text-blue-700 data-[state=active]:border-blue-200",f.id===r.value?"bg-blue-50 text-blue-700 border-blue-200":""])},e.toDisplayString(f.name),11,pa)),64))])]),e.createElementVNode("div",ma,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a[r.value]),{data:p.value,"onUpdate:data":d[1]||(d[1]=f=>p.value=f),fields:u.value,key:r.value},null,40,["data","fields"]))])])])]))}}),ga={},ha={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:"lucide lucide-settings"};function ya(t,n){return e.openBlock(),e.createElementBlock("svg",ha,[...n[0]||(n[0]=[e.createElementVNode("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"},null,-1),e.createElementVNode("circle",{cx:"12",cy:"12",r:"3"},null,-1)])])}const xa=X(ga,[["render",ya]]),ka={},ba={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:"lucide lucide-layers"};function wa(t,n){return e.openBlock(),e.createElementBlock("svg",ba,[...n[0]||(n[0]=[e.createElementVNode("path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"},null,-1),e.createElementVNode("path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"},null,-1),e.createElementVNode("path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"},null,-1)])])}const _a=X(ka,[["render",wa]]),Ea={},Ba={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:"lucide lucide-eye"};function Na(t,n){return e.openBlock(),e.createElementBlock("svg",Ba,[...n[0]||(n[0]=[e.createElementVNode("path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z"},null,-1),e.createElementVNode("circle",{cx:"12",cy:"12",r:"3"},null,-1)])])}const va=X(Ea,[["render",Na]]),Ca={},Va={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:"lucide lucide-map"};function $a(t,n){return e.openBlock(),e.createElementBlock("svg",Va,[...n[0]||(n[0]=[e.createElementVNode("path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z"},null,-1),e.createElementVNode("path",{d:"M15 5.764v15"},null,-1),e.createElementVNode("path",{d:"M9 3.236v15"},null,-1)])])}const Aa=X(Ca,[["render",$a]]),Sa={},La={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:"lucide lucide-filter"};function Fa(t,n){return e.openBlock(),e.createElementBlock("svg",La,[...n[0]||(n[0]=[e.createElementVNode("polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"},null,-1)])])}const Ta=X(Sa,[["render",Fa]]),un=e.defineComponent({__name:"MonacoEditor",props:{modelValue:{},language:{},theme:{}},emits:["update:modelValue","load"],setup(t,{emit:n}){const o=t,r=n,l=e.ref(null);let i=null,a=null,c=!1;function p(){return new Promise((h,s)=>{if(a)return h(a);if(window.monaco)return a=window.monaco,h(a);const m=d=>{if([...document.styleSheets].some(g=>{var V;return(V=g==null?void 0:g.href)==null?void 0:V.includes(d)}))return;const f=document.createElement("link");f.rel="stylesheet",f.href=d,document.head.appendChild(f)},y=d=>new Promise((f,g)=>{const V=document.createElement("script");V.src=d,V.onload=()=>f(!0),V.onerror=g,document.body.appendChild(V)});m("https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs/editor/editor.main.min.css"),y("https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs/loader.min.js").then(()=>{window.require.config({paths:{vs:"https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs"}}),window.require(["vs/editor/editor.main"],()=>{a=window.monaco,h(a)})}).catch(s)})}function u(){!l.value||!a||(i&&i.dispose(),i=a.editor.create(l.value,{value:o.modelValue||"",language:o.language||"yaml",theme:o.theme||"vs-light",automaticLayout:!0,minimap:{enabled:!1}}),i.onDidChangeModelContent(()=>{c||r("update:modelValue",i.getValue())}))}return e.watch(()=>o.modelValue,h=>{if(!i)return;const s=i.getValue();h!==s&&(c=!0,i.setValue(h||""),c=!1)}),e.watch(()=>o.language,h=>{i&&a&&a.editor.setModelLanguage(i.getModel(),h||"yaml")}),e.watch(()=>o.theme,h=>{i&&a&&a.editor.setTheme(h||"vs-light")}),e.onMounted(async()=>{await p(),u()}),e.onBeforeUnmount(()=>{i&&i.dispose()}),(h,s)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"editorContainer",ref:l,class:"w-full h-full"},null,512))}});/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function pn(t){return typeof t>"u"||t===null}function Ma(t){return typeof t=="object"&&t!==null}function Ia(t){return Array.isArray(t)?t:pn(t)?[]:[t]}function Da(t,n){var o,r,l,i;if(n)for(i=Object.keys(n),o=0,r=i.length;o<r;o+=1)l=i[o],t[l]=n[l];return t}function ja(t,n){var o="",r;for(r=0;r<n;r+=1)o+=t;return o}function Oa(t){return t===0&&Number.NEGATIVE_INFINITY===1/t}var za=pn,Pa=Ma,Ra=Ia,Ua=ja,qa=Oa,Ha=Da,re={isNothing:za,isObject:Pa,toArray:Ra,repeat:Ua,isNegativeZero:qa,extend:Ha};function mn(t,n){var o="",r=t.reason||"(unknown reason)";return t.mark?(t.mark.name&&(o+='in "'+t.mark.name+'" '),o+="("+(t.mark.line+1)+":"+(t.mark.column+1)+")",!n&&t.mark.snippet&&(o+=`
64
64
 
65
- `+t.mark.snippet),r+" "+o):r}function De(t,n){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=n,this.message=It(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}De.prototype=Object.create(Error.prototype),De.prototype.constructor=De,De.prototype.toString=function(n){return this.name+": "+It(this,n)};var le=De;function et(t,n,o,r,i){var l="",a="",c=Math.floor(i/2)-1;return r-n>c&&(l=" ... ",n=r-c+l.length),o-r>c&&(a=" ...",o=r+c-a.length),{str:l+t.slice(n,o).replace(/\t/g,"→")+a,pos:r-n+l.length}}function tt(t,n){return ee.repeat(" ",n-t.length)+t}function fa(t,n){if(n=Object.create(n||null),!t.buffer)return null;n.maxLength||(n.maxLength=79),typeof n.indent!="number"&&(n.indent=1),typeof n.linesBefore!="number"&&(n.linesBefore=3),typeof n.linesAfter!="number"&&(n.linesAfter=2);for(var o=/\r?\n|\r|\0/g,r=[0],i=[],l,a=-1;l=o.exec(t.buffer);)i.push(l.index),r.push(l.index+l[0].length),t.position<=l.index&&a<0&&(a=r.length-2);a<0&&(a=r.length-1);var c="",p,d,g=Math.min(t.line+n.linesAfter,i.length).toString().length,s=n.maxLength-(n.indent+g+3);for(p=1;p<=n.linesBefore&&!(a-p<0);p++)d=et(t.buffer,r[a-p],i[a-p],t.position-(r[a]-r[a-p]),s),c=ee.repeat(" ",n.indent)+tt((t.line-p+1).toString(),g)+" | "+d.str+`
66
- `+c;for(d=et(t.buffer,r[a],i[a],t.position,s),c+=ee.repeat(" ",n.indent)+tt((t.line+1).toString(),g)+" | "+d.str+`
67
- `,c+=ee.repeat("-",n.indent+g+3+d.pos)+`^
68
- `,p=1;p<=n.linesAfter&&!(a+p>=i.length);p++)d=et(t.buffer,r[a+p],i[a+p],t.position-(r[a]-r[a+p]),s),c+=ee.repeat(" ",n.indent)+tt((t.line+p+1).toString(),g)+" | "+d.str+`
69
- `;return c.replace(/\n$/,"")}var ga=fa,ha=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],ya=["scalar","sequence","mapping"];function xa(t){var n={};return t!==null&&Object.keys(t).forEach(function(o){t[o].forEach(function(r){n[String(r)]=o})}),n}function ka(t,n){if(n=n||{},Object.keys(n).forEach(function(o){if(ha.indexOf(o)===-1)throw new le('Unknown option "'+o+'" is met in definition of "'+t+'" YAML type.')}),this.options=n,this.tag=t,this.kind=n.kind||null,this.resolve=n.resolve||function(){return!0},this.construct=n.construct||function(o){return o},this.instanceOf=n.instanceOf||null,this.predicate=n.predicate||null,this.represent=n.represent||null,this.representName=n.representName||null,this.defaultStyle=n.defaultStyle||null,this.multi=n.multi||!1,this.styleAliases=xa(n.styleAliases||null),ya.indexOf(this.kind)===-1)throw new le('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}var oe=ka;function Dt(t,n){var o=[];return t[n].forEach(function(r){var i=o.length;o.forEach(function(l,a){l.tag===r.tag&&l.kind===r.kind&&l.multi===r.multi&&(i=a)}),o[i]=r}),o}function ba(){var t={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},n,o;function r(i){i.multi?(t.multi[i.kind].push(i),t.multi.fallback.push(i)):t[i.kind][i.tag]=t.fallback[i.tag]=i}for(n=0,o=arguments.length;n<o;n+=1)arguments[n].forEach(r);return t}function nt(t){return this.extend(t)}nt.prototype.extend=function(n){var o=[],r=[];if(n instanceof oe)r.push(n);else if(Array.isArray(n))r=r.concat(n);else if(n&&(Array.isArray(n.implicit)||Array.isArray(n.explicit)))n.implicit&&(o=o.concat(n.implicit)),n.explicit&&(r=r.concat(n.explicit));else throw new le("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");o.forEach(function(l){if(!(l instanceof oe))throw new le("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(l.loadKind&&l.loadKind!=="scalar")throw new le("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(l.multi)throw new le("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),r.forEach(function(l){if(!(l instanceof oe))throw new le("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var i=Object.create(nt.prototype);return i.implicit=(this.implicit||[]).concat(o),i.explicit=(this.explicit||[]).concat(r),i.compiledImplicit=Dt(i,"implicit"),i.compiledExplicit=Dt(i,"explicit"),i.compiledTypeMap=ba(i.compiledImplicit,i.compiledExplicit),i};var _a=nt,wa=new oe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return t!==null?t:""}}),Ea=new oe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return t!==null?t:[]}}),Ba=new oe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return t!==null?t:{}}}),Na=new _a({explicit:[wa,Ea,Ba]});function va(t){if(t===null)return!0;var n=t.length;return n===1&&t==="~"||n===4&&(t==="null"||t==="Null"||t==="NULL")}function Ca(){return null}function Va(t){return t===null}var $a=new oe("tag:yaml.org,2002:null",{kind:"scalar",resolve:va,construct:Ca,predicate:Va,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"});function Aa(t){if(t===null)return!1;var n=t.length;return n===4&&(t==="true"||t==="True"||t==="TRUE")||n===5&&(t==="false"||t==="False"||t==="FALSE")}function Sa(t){return t==="true"||t==="True"||t==="TRUE"}function La(t){return Object.prototype.toString.call(t)==="[object Boolean]"}var Fa=new oe("tag:yaml.org,2002:bool",{kind:"scalar",resolve:Aa,construct:Sa,predicate:La,represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"});function Ma(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function Ta(t){return 48<=t&&t<=55}function Ia(t){return 48<=t&&t<=57}function Da(t){if(t===null)return!1;var n=t.length,o=0,r=!1,i;if(!n)return!1;if(i=t[o],(i==="-"||i==="+")&&(i=t[++o]),i==="0"){if(o+1===n)return!0;if(i=t[++o],i==="b"){for(o++;o<n;o++)if(i=t[o],i!=="_"){if(i!=="0"&&i!=="1")return!1;r=!0}return r&&i!=="_"}if(i==="x"){for(o++;o<n;o++)if(i=t[o],i!=="_"){if(!Ma(t.charCodeAt(o)))return!1;r=!0}return r&&i!=="_"}if(i==="o"){for(o++;o<n;o++)if(i=t[o],i!=="_"){if(!Ta(t.charCodeAt(o)))return!1;r=!0}return r&&i!=="_"}}if(i==="_")return!1;for(;o<n;o++)if(i=t[o],i!=="_"){if(!Ia(t.charCodeAt(o)))return!1;r=!0}return!(!r||i==="_")}function ja(t){var n=t,o=1,r;if(n.indexOf("_")!==-1&&(n=n.replace(/_/g,"")),r=n[0],(r==="-"||r==="+")&&(r==="-"&&(o=-1),n=n.slice(1),r=n[0]),n==="0")return 0;if(r==="0"){if(n[1]==="b")return o*parseInt(n.slice(2),2);if(n[1]==="x")return o*parseInt(n.slice(2),16);if(n[1]==="o")return o*parseInt(n.slice(2),8)}return o*parseInt(n,10)}function Oa(t){return Object.prototype.toString.call(t)==="[object Number]"&&t%1===0&&!ee.isNegativeZero(t)}var za=new oe("tag:yaml.org,2002:int",{kind:"scalar",resolve:Da,construct:ja,predicate:Oa,represent:{binary:function(t){return t>=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0o"+t.toString(8):"-0o"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),Pa=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Ra(t){return!(t===null||!Pa.test(t)||t[t.length-1]==="_")}function Ua(t){var n,o;return n=t.replace(/_/g,"").toLowerCase(),o=n[0]==="-"?-1:1,"+-".indexOf(n[0])>=0&&(n=n.slice(1)),n===".inf"?o===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:n===".nan"?NaN:o*parseFloat(n,10)}var qa=/^[-+]?[0-9]+e/;function Ya(t,n){var o;if(isNaN(t))switch(n){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(n){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(n){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(ee.isNegativeZero(t))return"-0.0";return o=t.toString(10),qa.test(o)?o.replace("e",".e"):o}function Ha(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||ee.isNegativeZero(t))}var Wa=new oe("tag:yaml.org,2002:float",{kind:"scalar",resolve:Ra,construct:Ua,predicate:Ha,represent:Ya,defaultStyle:"lowercase"}),Ka=Na.extend({implicit:[$a,Fa,za,Wa]}),Za=Ka,jt=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Ot=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function Ga(t){return t===null?!1:jt.exec(t)!==null||Ot.exec(t)!==null}function Xa(t){var n,o,r,i,l,a,c,p=0,d=null,g,s,f;if(n=jt.exec(t),n===null&&(n=Ot.exec(t)),n===null)throw new Error("Date resolve error");if(o=+n[1],r=+n[2]-1,i=+n[3],!n[4])return new Date(Date.UTC(o,r,i));if(l=+n[4],a=+n[5],c=+n[6],n[7]){for(p=n[7].slice(0,3);p.length<3;)p+="0";p=+p}return n[9]&&(g=+n[10],s=+(n[11]||0),d=(g*60+s)*6e4,n[9]==="-"&&(d=-d)),f=new Date(Date.UTC(o,r,i,l,a,c,p)),d&&f.setTime(f.getTime()-d),f}function Qa(t){return t.toISOString()}var Ja=new oe("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:Ga,construct:Xa,instanceOf:Date,represent:Qa});function es(t){return t==="<<"||t===null}var ts=new oe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:es}),ot=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
70
- \r`;function ns(t){if(t===null)return!1;var n,o,r=0,i=t.length,l=ot;for(o=0;o<i;o++)if(n=l.indexOf(t.charAt(o)),!(n>64)){if(n<0)return!1;r+=6}return r%8===0}function os(t){var n,o,r=t.replace(/[\r\n=]/g,""),i=r.length,l=ot,a=0,c=[];for(n=0;n<i;n++)n%4===0&&n&&(c.push(a>>16&255),c.push(a>>8&255),c.push(a&255)),a=a<<6|l.indexOf(r.charAt(n));return o=i%4*6,o===0?(c.push(a>>16&255),c.push(a>>8&255),c.push(a&255)):o===18?(c.push(a>>10&255),c.push(a>>2&255)):o===12&&c.push(a>>4&255),new Uint8Array(c)}function rs(t){var n="",o=0,r,i,l=t.length,a=ot;for(r=0;r<l;r++)r%3===0&&r&&(n+=a[o>>18&63],n+=a[o>>12&63],n+=a[o>>6&63],n+=a[o&63]),o=(o<<8)+t[r];return i=l%3,i===0?(n+=a[o>>18&63],n+=a[o>>12&63],n+=a[o>>6&63],n+=a[o&63]):i===2?(n+=a[o>>10&63],n+=a[o>>4&63],n+=a[o<<2&63],n+=a[64]):i===1&&(n+=a[o>>2&63],n+=a[o<<4&63],n+=a[64],n+=a[64]),n}function ls(t){return Object.prototype.toString.call(t)==="[object Uint8Array]"}var is=new oe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:ns,construct:os,predicate:ls,represent:rs}),as=Object.prototype.hasOwnProperty,ss=Object.prototype.toString;function cs(t){if(t===null)return!0;var n=[],o,r,i,l,a,c=t;for(o=0,r=c.length;o<r;o+=1){if(i=c[o],a=!1,ss.call(i)!=="[object Object]")return!1;for(l in i)if(as.call(i,l))if(!a)a=!0;else return!1;if(!a)return!1;if(n.indexOf(l)===-1)n.push(l);else return!1}return!0}function ds(t){return t!==null?t:[]}var us=new oe("tag:yaml.org,2002:omap",{kind:"sequence",resolve:cs,construct:ds}),ps=Object.prototype.toString;function ms(t){if(t===null)return!0;var n,o,r,i,l,a=t;for(l=new Array(a.length),n=0,o=a.length;n<o;n+=1){if(r=a[n],ps.call(r)!=="[object Object]"||(i=Object.keys(r),i.length!==1))return!1;l[n]=[i[0],r[i[0]]]}return!0}function fs(t){if(t===null)return[];var n,o,r,i,l,a=t;for(l=new Array(a.length),n=0,o=a.length;n<o;n+=1)r=a[n],i=Object.keys(r),l[n]=[i[0],r[i[0]]];return l}var gs=new oe("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:ms,construct:fs}),hs=Object.prototype.hasOwnProperty;function ys(t){if(t===null)return!0;var n,o=t;for(n in o)if(hs.call(o,n)&&o[n]!==null)return!1;return!0}function xs(t){return t!==null?t:{}}var ks=new oe("tag:yaml.org,2002:set",{kind:"mapping",resolve:ys,construct:xs}),zt=Za.extend({implicit:[Ja,ts],explicit:[is,us,gs,ks]}),Ee=Object.prototype.hasOwnProperty,He=1,Pt=2,Rt=3,We=4,rt=1,bs=2,Ut=3,_s=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,ws=/[\x85\u2028\u2029]/,Es=/[,\[\]\{\}]/,qt=/^(?:!|!!|![a-z\-]+!)$/i,Yt=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Ht(t){return Object.prototype.toString.call(t)}function he(t){return t===10||t===13}function Ce(t){return t===9||t===32}function ie(t){return t===9||t===32||t===10||t===13}function Se(t){return t===44||t===91||t===93||t===123||t===125}function Bs(t){var n;return 48<=t&&t<=57?t-48:(n=t|32,97<=n&&n<=102?n-97+10:-1)}function Ns(t){return t===120?2:t===117?4:t===85?8:0}function vs(t){return 48<=t&&t<=57?t-48:-1}function Wt(t){return t===48?"\0":t===97?"\x07":t===98?"\b":t===116||t===9?" ":t===110?`
71
- `:t===118?"\v":t===102?"\f":t===114?"\r":t===101?"\x1B":t===32?" ":t===34?'"':t===47?"/":t===92?"\\":t===78?"…":t===95?" ":t===76?"\u2028":t===80?"\u2029":""}function Cs(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}for(var Kt=new Array(256),Zt=new Array(256),Le=0;Le<256;Le++)Kt[Le]=Wt(Le)?1:0,Zt[Le]=Wt(Le);function Vs(t,n){this.input=t,this.filename=n.filename||null,this.schema=n.schema||zt,this.onWarning=n.onWarning||null,this.legacy=n.legacy||!1,this.json=n.json||!1,this.listener=n.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function Gt(t,n){var o={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return o.snippet=ga(o),new le(n,o)}function R(t,n){throw Gt(t,n)}function Ke(t,n){t.onWarning&&t.onWarning.call(null,Gt(t,n))}var Xt={YAML:function(n,o,r){var i,l,a;n.version!==null&&R(n,"duplication of %YAML directive"),r.length!==1&&R(n,"YAML directive accepts exactly one argument"),i=/^([0-9]+)\.([0-9]+)$/.exec(r[0]),i===null&&R(n,"ill-formed argument of the YAML directive"),l=parseInt(i[1],10),a=parseInt(i[2],10),l!==1&&R(n,"unacceptable YAML version of the document"),n.version=r[0],n.checkLineBreaks=a<2,a!==1&&a!==2&&Ke(n,"unsupported YAML version of the document")},TAG:function(n,o,r){var i,l;r.length!==2&&R(n,"TAG directive accepts exactly two arguments"),i=r[0],l=r[1],qt.test(i)||R(n,"ill-formed tag handle (first argument) of the TAG directive"),Ee.call(n.tagMap,i)&&R(n,'there is a previously declared suffix for "'+i+'" tag handle'),Yt.test(l)||R(n,"ill-formed tag prefix (second argument) of the TAG directive");try{l=decodeURIComponent(l)}catch{R(n,"tag prefix is malformed: "+l)}n.tagMap[i]=l}};function Be(t,n,o,r){var i,l,a,c;if(n<o){if(c=t.input.slice(n,o),r)for(i=0,l=c.length;i<l;i+=1)a=c.charCodeAt(i),a===9||32<=a&&a<=1114111||R(t,"expected valid JSON character");else _s.test(c)&&R(t,"the stream contains non-printable characters");t.result+=c}}function Qt(t,n,o,r){var i,l,a,c;for(ee.isObject(o)||R(t,"cannot merge mappings; the provided source object is unacceptable"),i=Object.keys(o),a=0,c=i.length;a<c;a+=1)l=i[a],Ee.call(n,l)||(n[l]=o[l],r[l]=!0)}function Fe(t,n,o,r,i,l,a,c,p){var d,g;if(Array.isArray(i))for(i=Array.prototype.slice.call(i),d=0,g=i.length;d<g;d+=1)Array.isArray(i[d])&&R(t,"nested arrays are not supported inside keys"),typeof i=="object"&&Ht(i[d])==="[object Object]"&&(i[d]="[object Object]");if(typeof i=="object"&&Ht(i)==="[object Object]"&&(i="[object Object]"),i=String(i),n===null&&(n={}),r==="tag:yaml.org,2002:merge")if(Array.isArray(l))for(d=0,g=l.length;d<g;d+=1)Qt(t,n,l[d],o);else Qt(t,n,l,o);else!t.json&&!Ee.call(o,i)&&Ee.call(n,i)&&(t.line=a||t.line,t.lineStart=c||t.lineStart,t.position=p||t.position,R(t,"duplicated mapping key")),i==="__proto__"?Object.defineProperty(n,i,{configurable:!0,enumerable:!0,writable:!0,value:l}):n[i]=l,delete o[i];return n}function lt(t){var n;n=t.input.charCodeAt(t.position),n===10?t.position++:n===13?(t.position++,t.input.charCodeAt(t.position)===10&&t.position++):R(t,"a line break is expected"),t.line+=1,t.lineStart=t.position,t.firstTabInLine=-1}function Q(t,n,o){for(var r=0,i=t.input.charCodeAt(t.position);i!==0;){for(;Ce(i);)i===9&&t.firstTabInLine===-1&&(t.firstTabInLine=t.position),i=t.input.charCodeAt(++t.position);if(n&&i===35)do i=t.input.charCodeAt(++t.position);while(i!==10&&i!==13&&i!==0);if(he(i))for(lt(t),i=t.input.charCodeAt(t.position),r++,t.lineIndent=0;i===32;)t.lineIndent++,i=t.input.charCodeAt(++t.position);else break}return o!==-1&&r!==0&&t.lineIndent<o&&Ke(t,"deficient indentation"),r}function Ze(t){var n=t.position,o;return o=t.input.charCodeAt(n),!!((o===45||o===46)&&o===t.input.charCodeAt(n+1)&&o===t.input.charCodeAt(n+2)&&(n+=3,o=t.input.charCodeAt(n),o===0||ie(o)))}function it(t,n){n===1?t.result+=" ":n>1&&(t.result+=ee.repeat(`
72
- `,n-1))}function $s(t,n,o){var r,i,l,a,c,p,d,g,s=t.kind,f=t.result,y;if(y=t.input.charCodeAt(t.position),ie(y)||Se(y)||y===35||y===38||y===42||y===33||y===124||y===62||y===39||y===34||y===37||y===64||y===96||(y===63||y===45)&&(i=t.input.charCodeAt(t.position+1),ie(i)||o&&Se(i)))return!1;for(t.kind="scalar",t.result="",l=a=t.position,c=!1;y!==0;){if(y===58){if(i=t.input.charCodeAt(t.position+1),ie(i)||o&&Se(i))break}else if(y===35){if(r=t.input.charCodeAt(t.position-1),ie(r))break}else{if(t.position===t.lineStart&&Ze(t)||o&&Se(y))break;if(he(y))if(p=t.line,d=t.lineStart,g=t.lineIndent,Q(t,!1,-1),t.lineIndent>=n){c=!0,y=t.input.charCodeAt(t.position);continue}else{t.position=a,t.line=p,t.lineStart=d,t.lineIndent=g;break}}c&&(Be(t,l,a,!1),it(t,t.line-p),l=a=t.position,c=!1),Ce(y)||(a=t.position+1),y=t.input.charCodeAt(++t.position)}return Be(t,l,a,!1),t.result?!0:(t.kind=s,t.result=f,!1)}function As(t,n){var o,r,i;if(o=t.input.charCodeAt(t.position),o!==39)return!1;for(t.kind="scalar",t.result="",t.position++,r=i=t.position;(o=t.input.charCodeAt(t.position))!==0;)if(o===39)if(Be(t,r,t.position,!0),o=t.input.charCodeAt(++t.position),o===39)r=t.position,t.position++,i=t.position;else return!0;else he(o)?(Be(t,r,i,!0),it(t,Q(t,!1,n)),r=i=t.position):t.position===t.lineStart&&Ze(t)?R(t,"unexpected end of the document within a single quoted scalar"):(t.position++,i=t.position);R(t,"unexpected end of the stream within a single quoted scalar")}function Ss(t,n){var o,r,i,l,a,c;if(c=t.input.charCodeAt(t.position),c!==34)return!1;for(t.kind="scalar",t.result="",t.position++,o=r=t.position;(c=t.input.charCodeAt(t.position))!==0;){if(c===34)return Be(t,o,t.position,!0),t.position++,!0;if(c===92){if(Be(t,o,t.position,!0),c=t.input.charCodeAt(++t.position),he(c))Q(t,!1,n);else if(c<256&&Kt[c])t.result+=Zt[c],t.position++;else if((a=Ns(c))>0){for(i=a,l=0;i>0;i--)c=t.input.charCodeAt(++t.position),(a=Bs(c))>=0?l=(l<<4)+a:R(t,"expected hexadecimal character");t.result+=Cs(l),t.position++}else R(t,"unknown escape sequence");o=r=t.position}else he(c)?(Be(t,o,r,!0),it(t,Q(t,!1,n)),o=r=t.position):t.position===t.lineStart&&Ze(t)?R(t,"unexpected end of the document within a double quoted scalar"):(t.position++,r=t.position)}R(t,"unexpected end of the stream within a double quoted scalar")}function Ls(t,n){var o=!0,r,i,l,a=t.tag,c,p=t.anchor,d,g,s,f,y,u=Object.create(null),m,x,v,k;if(k=t.input.charCodeAt(t.position),k===91)g=93,y=!1,c=[];else if(k===123)g=125,y=!0,c={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=c),k=t.input.charCodeAt(++t.position);k!==0;){if(Q(t,!0,n),k=t.input.charCodeAt(t.position),k===g)return t.position++,t.tag=a,t.anchor=p,t.kind=y?"mapping":"sequence",t.result=c,!0;o?k===44&&R(t,"expected the node content, but found ','"):R(t,"missed comma between flow collection entries"),x=m=v=null,s=f=!1,k===63&&(d=t.input.charCodeAt(t.position+1),ie(d)&&(s=f=!0,t.position++,Q(t,!0,n))),r=t.line,i=t.lineStart,l=t.position,Me(t,n,He,!1,!0),x=t.tag,m=t.result,Q(t,!0,n),k=t.input.charCodeAt(t.position),(f||t.line===r)&&k===58&&(s=!0,k=t.input.charCodeAt(++t.position),Q(t,!0,n),Me(t,n,He,!1,!0),v=t.result),y?Fe(t,c,u,x,m,v,r,i,l):s?c.push(Fe(t,null,u,x,m,v,r,i,l)):c.push(m),Q(t,!0,n),k=t.input.charCodeAt(t.position),k===44?(o=!0,k=t.input.charCodeAt(++t.position)):o=!1}R(t,"unexpected end of the stream within a flow collection")}function Fs(t,n){var o,r,i=rt,l=!1,a=!1,c=n,p=0,d=!1,g,s;if(s=t.input.charCodeAt(t.position),s===124)r=!1;else if(s===62)r=!0;else return!1;for(t.kind="scalar",t.result="";s!==0;)if(s=t.input.charCodeAt(++t.position),s===43||s===45)rt===i?i=s===43?Ut:bs:R(t,"repeat of a chomping mode identifier");else if((g=vs(s))>=0)g===0?R(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):a?R(t,"repeat of an indentation width identifier"):(c=n+g-1,a=!0);else break;if(Ce(s)){do s=t.input.charCodeAt(++t.position);while(Ce(s));if(s===35)do s=t.input.charCodeAt(++t.position);while(!he(s)&&s!==0)}for(;s!==0;){for(lt(t),t.lineIndent=0,s=t.input.charCodeAt(t.position);(!a||t.lineIndent<c)&&s===32;)t.lineIndent++,s=t.input.charCodeAt(++t.position);if(!a&&t.lineIndent>c&&(c=t.lineIndent),he(s)){p++;continue}if(t.lineIndent<c){i===Ut?t.result+=ee.repeat(`
73
- `,l?1+p:p):i===rt&&l&&(t.result+=`
74
- `);break}for(r?Ce(s)?(d=!0,t.result+=ee.repeat(`
75
- `,l?1+p:p)):d?(d=!1,t.result+=ee.repeat(`
76
- `,p+1)):p===0?l&&(t.result+=" "):t.result+=ee.repeat(`
77
- `,p):t.result+=ee.repeat(`
78
- `,l?1+p:p),l=!0,a=!0,p=0,o=t.position;!he(s)&&s!==0;)s=t.input.charCodeAt(++t.position);Be(t,o,t.position,!1)}return!0}function Jt(t,n){var o,r=t.tag,i=t.anchor,l=[],a,c=!1,p;if(t.firstTabInLine!==-1)return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=l),p=t.input.charCodeAt(t.position);p!==0&&(t.firstTabInLine!==-1&&(t.position=t.firstTabInLine,R(t,"tab characters must not be used in indentation")),!(p!==45||(a=t.input.charCodeAt(t.position+1),!ie(a))));){if(c=!0,t.position++,Q(t,!0,-1)&&t.lineIndent<=n){l.push(null),p=t.input.charCodeAt(t.position);continue}if(o=t.line,Me(t,n,Rt,!1,!0),l.push(t.result),Q(t,!0,-1),p=t.input.charCodeAt(t.position),(t.line===o||t.lineIndent>n)&&p!==0)R(t,"bad indentation of a sequence entry");else if(t.lineIndent<n)break}return c?(t.tag=r,t.anchor=i,t.kind="sequence",t.result=l,!0):!1}function Ms(t,n,o){var r,i,l,a,c,p,d=t.tag,g=t.anchor,s={},f=Object.create(null),y=null,u=null,m=null,x=!1,v=!1,k;if(t.firstTabInLine!==-1)return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=s),k=t.input.charCodeAt(t.position);k!==0;){if(!x&&t.firstTabInLine!==-1&&(t.position=t.firstTabInLine,R(t,"tab characters must not be used in indentation")),r=t.input.charCodeAt(t.position+1),l=t.line,(k===63||k===58)&&ie(r))k===63?(x&&(Fe(t,s,f,y,u,null,a,c,p),y=u=m=null),v=!0,x=!0,i=!0):x?(x=!1,i=!0):R(t,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),t.position+=1,k=r;else{if(a=t.line,c=t.lineStart,p=t.position,!Me(t,o,Pt,!1,!0))break;if(t.line===l){for(k=t.input.charCodeAt(t.position);Ce(k);)k=t.input.charCodeAt(++t.position);if(k===58)k=t.input.charCodeAt(++t.position),ie(k)||R(t,"a whitespace character is expected after the key-value separator within a block mapping"),x&&(Fe(t,s,f,y,u,null,a,c,p),y=u=m=null),v=!0,x=!1,i=!1,y=t.tag,u=t.result;else if(v)R(t,"can not read an implicit mapping pair; a colon is missed");else return t.tag=d,t.anchor=g,!0}else if(v)R(t,"can not read a block mapping entry; a multiline key may not be an implicit key");else return t.tag=d,t.anchor=g,!0}if((t.line===l||t.lineIndent>n)&&(x&&(a=t.line,c=t.lineStart,p=t.position),Me(t,n,We,!0,i)&&(x?u=t.result:m=t.result),x||(Fe(t,s,f,y,u,m,a,c,p),y=u=m=null),Q(t,!0,-1),k=t.input.charCodeAt(t.position)),(t.line===l||t.lineIndent>n)&&k!==0)R(t,"bad indentation of a mapping entry");else if(t.lineIndent<n)break}return x&&Fe(t,s,f,y,u,null,a,c,p),v&&(t.tag=d,t.anchor=g,t.kind="mapping",t.result=s),v}function Ts(t){var n,o=!1,r=!1,i,l,a;if(a=t.input.charCodeAt(t.position),a!==33)return!1;if(t.tag!==null&&R(t,"duplication of a tag property"),a=t.input.charCodeAt(++t.position),a===60?(o=!0,a=t.input.charCodeAt(++t.position)):a===33?(r=!0,i="!!",a=t.input.charCodeAt(++t.position)):i="!",n=t.position,o){do a=t.input.charCodeAt(++t.position);while(a!==0&&a!==62);t.position<t.length?(l=t.input.slice(n,t.position),a=t.input.charCodeAt(++t.position)):R(t,"unexpected end of the stream within a verbatim tag")}else{for(;a!==0&&!ie(a);)a===33&&(r?R(t,"tag suffix cannot contain exclamation marks"):(i=t.input.slice(n-1,t.position+1),qt.test(i)||R(t,"named tag handle cannot contain such characters"),r=!0,n=t.position+1)),a=t.input.charCodeAt(++t.position);l=t.input.slice(n,t.position),Es.test(l)&&R(t,"tag suffix cannot contain flow indicator characters")}l&&!Yt.test(l)&&R(t,"tag name cannot contain such characters: "+l);try{l=decodeURIComponent(l)}catch{R(t,"tag name is malformed: "+l)}return o?t.tag=l:Ee.call(t.tagMap,i)?t.tag=t.tagMap[i]+l:i==="!"?t.tag="!"+l:i==="!!"?t.tag="tag:yaml.org,2002:"+l:R(t,'undeclared tag handle "'+i+'"'),!0}function Is(t){var n,o;if(o=t.input.charCodeAt(t.position),o!==38)return!1;for(t.anchor!==null&&R(t,"duplication of an anchor property"),o=t.input.charCodeAt(++t.position),n=t.position;o!==0&&!ie(o)&&!Se(o);)o=t.input.charCodeAt(++t.position);return t.position===n&&R(t,"name of an anchor node must contain at least one character"),t.anchor=t.input.slice(n,t.position),!0}function Ds(t){var n,o,r;if(r=t.input.charCodeAt(t.position),r!==42)return!1;for(r=t.input.charCodeAt(++t.position),n=t.position;r!==0&&!ie(r)&&!Se(r);)r=t.input.charCodeAt(++t.position);return t.position===n&&R(t,"name of an alias node must contain at least one character"),o=t.input.slice(n,t.position),Ee.call(t.anchorMap,o)||R(t,'unidentified alias "'+o+'"'),t.result=t.anchorMap[o],Q(t,!0,-1),!0}function Me(t,n,o,r,i){var l,a,c,p=1,d=!1,g=!1,s,f,y,u,m,x;if(t.listener!==null&&t.listener("open",t),t.tag=null,t.anchor=null,t.kind=null,t.result=null,l=a=c=We===o||Rt===o,r&&Q(t,!0,-1)&&(d=!0,t.lineIndent>n?p=1:t.lineIndent===n?p=0:t.lineIndent<n&&(p=-1)),p===1)for(;Ts(t)||Is(t);)Q(t,!0,-1)?(d=!0,c=l,t.lineIndent>n?p=1:t.lineIndent===n?p=0:t.lineIndent<n&&(p=-1)):c=!1;if(c&&(c=d||i),(p===1||We===o)&&(He===o||Pt===o?m=n:m=n+1,x=t.position-t.lineStart,p===1?c&&(Jt(t,x)||Ms(t,x,m))||Ls(t,m)?g=!0:(a&&Fs(t,m)||As(t,m)||Ss(t,m)?g=!0:Ds(t)?(g=!0,(t.tag!==null||t.anchor!==null)&&R(t,"alias node should not have any properties")):$s(t,m,He===o)&&(g=!0,t.tag===null&&(t.tag="?")),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):p===0&&(g=c&&Jt(t,x))),t.tag===null)t.anchor!==null&&(t.anchorMap[t.anchor]=t.result);else if(t.tag==="?"){for(t.result!==null&&t.kind!=="scalar"&&R(t,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+t.kind+'"'),s=0,f=t.implicitTypes.length;s<f;s+=1)if(u=t.implicitTypes[s],u.resolve(t.result)){t.result=u.construct(t.result),t.tag=u.tag,t.anchor!==null&&(t.anchorMap[t.anchor]=t.result);break}}else if(t.tag!=="!"){if(Ee.call(t.typeMap[t.kind||"fallback"],t.tag))u=t.typeMap[t.kind||"fallback"][t.tag];else for(u=null,y=t.typeMap.multi[t.kind||"fallback"],s=0,f=y.length;s<f;s+=1)if(t.tag.slice(0,y[s].tag.length)===y[s].tag){u=y[s];break}u||R(t,"unknown tag !<"+t.tag+">"),t.result!==null&&u.kind!==t.kind&&R(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+u.kind+'", not "'+t.kind+'"'),u.resolve(t.result,t.tag)?(t.result=u.construct(t.result,t.tag),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):R(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||g}function js(t){var n=t.position,o,r,i,l=!1,a;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);(a=t.input.charCodeAt(t.position))!==0&&(Q(t,!0,-1),a=t.input.charCodeAt(t.position),!(t.lineIndent>0||a!==37));){for(l=!0,a=t.input.charCodeAt(++t.position),o=t.position;a!==0&&!ie(a);)a=t.input.charCodeAt(++t.position);for(r=t.input.slice(o,t.position),i=[],r.length<1&&R(t,"directive name must not be less than one character in length");a!==0;){for(;Ce(a);)a=t.input.charCodeAt(++t.position);if(a===35){do a=t.input.charCodeAt(++t.position);while(a!==0&&!he(a));break}if(he(a))break;for(o=t.position;a!==0&&!ie(a);)a=t.input.charCodeAt(++t.position);i.push(t.input.slice(o,t.position))}a!==0&&lt(t),Ee.call(Xt,r)?Xt[r](t,r,i):Ke(t,'unknown document directive "'+r+'"')}if(Q(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,Q(t,!0,-1)):l&&R(t,"directives end mark is expected"),Me(t,t.lineIndent-1,We,!1,!0),Q(t,!0,-1),t.checkLineBreaks&&ws.test(t.input.slice(n,t.position))&&Ke(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&Ze(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,Q(t,!0,-1));return}if(t.position<t.length-1)R(t,"end of the stream or a document separator is expected");else return}function en(t,n){t=String(t),n=n||{},t.length!==0&&(t.charCodeAt(t.length-1)!==10&&t.charCodeAt(t.length-1)!==13&&(t+=`
79
- `),t.charCodeAt(0)===65279&&(t=t.slice(1)));var o=new Vs(t,n),r=t.indexOf("\0");for(r!==-1&&(o.position=r,R(o,"null byte is not allowed in input")),o.input+="\0";o.input.charCodeAt(o.position)===32;)o.lineIndent+=1,o.position+=1;for(;o.position<o.length-1;)js(o);return o.documents}function Os(t,n,o){n!==null&&typeof n=="object"&&typeof o>"u"&&(o=n,n=null);var r=en(t,o);if(typeof n!="function")return r;for(var i=0,l=r.length;i<l;i+=1)n(r[i])}function zs(t,n){var o=en(t,n);if(o.length!==0){if(o.length===1)return o[0];throw new le("expected a single document in the stream, but found more")}}var Ps=Os,Rs=zs,Us={loadAll:Ps,load:Rs},tn=Object.prototype.toString,nn=Object.prototype.hasOwnProperty,at=65279,qs=9,je=10,Ys=13,Hs=32,Ws=33,Ks=34,st=35,Zs=37,Gs=38,Xs=39,Qs=42,on=44,Js=45,Ge=58,ec=61,tc=62,nc=63,oc=64,rn=91,ln=93,rc=96,an=123,lc=124,sn=125,re={};re[0]="\\0",re[7]="\\a",re[8]="\\b",re[9]="\\t",re[10]="\\n",re[11]="\\v",re[12]="\\f",re[13]="\\r",re[27]="\\e",re[34]='\\"',re[92]="\\\\",re[133]="\\N",re[160]="\\_",re[8232]="\\L",re[8233]="\\P";var ic=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],ac=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;function sc(t,n){var o,r,i,l,a,c,p;if(n===null)return{};for(o={},r=Object.keys(n),i=0,l=r.length;i<l;i+=1)a=r[i],c=String(n[a]),a.slice(0,2)==="!!"&&(a="tag:yaml.org,2002:"+a.slice(2)),p=t.compiledTypeMap.fallback[a],p&&nn.call(p.styleAliases,c)&&(c=p.styleAliases[c]),o[a]=c;return o}function cc(t){var n,o,r;if(n=t.toString(16).toUpperCase(),t<=255)o="x",r=2;else if(t<=65535)o="u",r=4;else if(t<=4294967295)o="U",r=8;else throw new le("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+o+ee.repeat("0",r-n.length)+n}var dc=1,Oe=2;function uc(t){this.schema=t.schema||zt,this.indent=Math.max(1,t.indent||2),this.noArrayIndent=t.noArrayIndent||!1,this.skipInvalid=t.skipInvalid||!1,this.flowLevel=ee.isNothing(t.flowLevel)?-1:t.flowLevel,this.styleMap=sc(this.schema,t.styles||null),this.sortKeys=t.sortKeys||!1,this.lineWidth=t.lineWidth||80,this.noRefs=t.noRefs||!1,this.noCompatMode=t.noCompatMode||!1,this.condenseFlow=t.condenseFlow||!1,this.quotingType=t.quotingType==='"'?Oe:dc,this.forceQuotes=t.forceQuotes||!1,this.replacer=typeof t.replacer=="function"?t.replacer:null,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function cn(t,n){for(var o=ee.repeat(" ",n),r=0,i=-1,l="",a,c=t.length;r<c;)i=t.indexOf(`
80
- `,r),i===-1?(a=t.slice(r),r=c):(a=t.slice(r,i+1),r=i+1),a.length&&a!==`
81
- `&&(l+=o),l+=a;return l}function ct(t,n){return`
82
- `+ee.repeat(" ",t.indent*n)}function pc(t,n){var o,r,i;for(o=0,r=t.implicitTypes.length;o<r;o+=1)if(i=t.implicitTypes[o],i.resolve(n))return!0;return!1}function Xe(t){return t===Hs||t===qs}function ze(t){return 32<=t&&t<=126||161<=t&&t<=55295&&t!==8232&&t!==8233||57344<=t&&t<=65533&&t!==at||65536<=t&&t<=1114111}function dn(t){return ze(t)&&t!==at&&t!==Ys&&t!==je}function un(t,n,o){var r=dn(t),i=r&&!Xe(t);return(o?r:r&&t!==on&&t!==rn&&t!==ln&&t!==an&&t!==sn)&&t!==st&&!(n===Ge&&!i)||dn(n)&&!Xe(n)&&t===st||n===Ge&&i}function mc(t){return ze(t)&&t!==at&&!Xe(t)&&t!==Js&&t!==nc&&t!==Ge&&t!==on&&t!==rn&&t!==ln&&t!==an&&t!==sn&&t!==st&&t!==Gs&&t!==Qs&&t!==Ws&&t!==lc&&t!==ec&&t!==tc&&t!==Xs&&t!==Ks&&t!==Zs&&t!==oc&&t!==rc}function fc(t){return!Xe(t)&&t!==Ge}function Pe(t,n){var o=t.charCodeAt(n),r;return o>=55296&&o<=56319&&n+1<t.length&&(r=t.charCodeAt(n+1),r>=56320&&r<=57343)?(o-55296)*1024+r-56320+65536:o}function pn(t){var n=/^\n* /;return n.test(t)}var mn=1,dt=2,fn=3,gn=4,Te=5;function gc(t,n,o,r,i,l,a,c){var p,d=0,g=null,s=!1,f=!1,y=r!==-1,u=-1,m=mc(Pe(t,0))&&fc(Pe(t,t.length-1));if(n||a)for(p=0;p<t.length;d>=65536?p+=2:p++){if(d=Pe(t,p),!ze(d))return Te;m=m&&un(d,g,c),g=d}else{for(p=0;p<t.length;d>=65536?p+=2:p++){if(d=Pe(t,p),d===je)s=!0,y&&(f=f||p-u-1>r&&t[u+1]!==" ",u=p);else if(!ze(d))return Te;m=m&&un(d,g,c),g=d}f=f||y&&p-u-1>r&&t[u+1]!==" "}return!s&&!f?m&&!a&&!i(t)?mn:l===Oe?Te:dt:o>9&&pn(t)?Te:a?l===Oe?Te:dt:f?gn:fn}function hc(t,n,o,r,i){t.dump=(function(){if(n.length===0)return t.quotingType===Oe?'""':"''";if(!t.noCompatMode&&(ic.indexOf(n)!==-1||ac.test(n)))return t.quotingType===Oe?'"'+n+'"':"'"+n+"'";var l=t.indent*Math.max(1,o),a=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-l),c=r||t.flowLevel>-1&&o>=t.flowLevel;function p(d){return pc(t,d)}switch(gc(n,c,t.indent,a,p,t.quotingType,t.forceQuotes&&!r,i)){case mn:return n;case dt:return"'"+n.replace(/'/g,"''")+"'";case fn:return"|"+hn(n,t.indent)+yn(cn(n,l));case gn:return">"+hn(n,t.indent)+yn(cn(yc(n,a),l));case Te:return'"'+xc(n)+'"';default:throw new le("impossible error: invalid scalar style")}})()}function hn(t,n){var o=pn(t)?String(n):"",r=t[t.length-1]===`
83
- `,i=r&&(t[t.length-2]===`
65
+ `+t.mark.snippet),r+" "+o):r}function ot(t,n){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=n,this.message=mn(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}ot.prototype=Object.create(Error.prototype),ot.prototype.constructor=ot,ot.prototype.toString=function(n){return this.name+": "+mn(this,n)};var he=ot;function vt(t,n,o,r,l){var i="",a="",c=Math.floor(l/2)-1;return r-n>c&&(i=" ... ",n=r-c+i.length),o-r>c&&(a=" ...",o=r+c-a.length),{str:i+t.slice(n,o).replace(/\t/g,"→")+a,pos:r-n+i.length}}function Ct(t,n){return re.repeat(" ",n-t.length)+t}function Ya(t,n){if(n=Object.create(n||null),!t.buffer)return null;n.maxLength||(n.maxLength=79),typeof n.indent!="number"&&(n.indent=1),typeof n.linesBefore!="number"&&(n.linesBefore=3),typeof n.linesAfter!="number"&&(n.linesAfter=2);for(var o=/\r?\n|\r|\0/g,r=[0],l=[],i,a=-1;i=o.exec(t.buffer);)l.push(i.index),r.push(i.index+i[0].length),t.position<=i.index&&a<0&&(a=r.length-2);a<0&&(a=r.length-1);var c="",p,u,h=Math.min(t.line+n.linesAfter,l.length).toString().length,s=n.maxLength-(n.indent+h+3);for(p=1;p<=n.linesBefore&&!(a-p<0);p++)u=vt(t.buffer,r[a-p],l[a-p],t.position-(r[a]-r[a-p]),s),c=re.repeat(" ",n.indent)+Ct((t.line-p+1).toString(),h)+" | "+u.str+`
66
+ `+c;for(u=vt(t.buffer,r[a],l[a],t.position,s),c+=re.repeat(" ",n.indent)+Ct((t.line+1).toString(),h)+" | "+u.str+`
67
+ `,c+=re.repeat("-",n.indent+h+3+u.pos)+`^
68
+ `,p=1;p<=n.linesAfter&&!(a+p>=l.length);p++)u=vt(t.buffer,r[a+p],l[a+p],t.position-(r[a]-r[a+p]),s),c+=re.repeat(" ",n.indent)+Ct((t.line+p+1).toString(),h)+" | "+u.str+`
69
+ `;return c.replace(/\n$/,"")}var Za=Ya,Wa=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],Ka=["scalar","sequence","mapping"];function Ga(t){var n={};return t!==null&&Object.keys(t).forEach(function(o){t[o].forEach(function(r){n[String(r)]=o})}),n}function Xa(t,n){if(n=n||{},Object.keys(n).forEach(function(o){if(Wa.indexOf(o)===-1)throw new he('Unknown option "'+o+'" is met in definition of "'+t+'" YAML type.')}),this.options=n,this.tag=t,this.kind=n.kind||null,this.resolve=n.resolve||function(){return!0},this.construct=n.construct||function(o){return o},this.instanceOf=n.instanceOf||null,this.predicate=n.predicate||null,this.represent=n.represent||null,this.representName=n.representName||null,this.defaultStyle=n.defaultStyle||null,this.multi=n.multi||!1,this.styleAliases=Ga(n.styleAliases||null),Ka.indexOf(this.kind)===-1)throw new he('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}var de=Xa;function fn(t,n){var o=[];return t[n].forEach(function(r){var l=o.length;o.forEach(function(i,a){i.tag===r.tag&&i.kind===r.kind&&i.multi===r.multi&&(l=a)}),o[l]=r}),o}function Qa(){var t={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},n,o;function r(l){l.multi?(t.multi[l.kind].push(l),t.multi.fallback.push(l)):t[l.kind][l.tag]=t.fallback[l.tag]=l}for(n=0,o=arguments.length;n<o;n+=1)arguments[n].forEach(r);return t}function Vt(t){return this.extend(t)}Vt.prototype.extend=function(n){var o=[],r=[];if(n instanceof de)r.push(n);else if(Array.isArray(n))r=r.concat(n);else if(n&&(Array.isArray(n.implicit)||Array.isArray(n.explicit)))n.implicit&&(o=o.concat(n.implicit)),n.explicit&&(r=r.concat(n.explicit));else throw new he("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");o.forEach(function(i){if(!(i instanceof de))throw new he("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(i.loadKind&&i.loadKind!=="scalar")throw new he("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(i.multi)throw new he("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),r.forEach(function(i){if(!(i instanceof de))throw new he("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var l=Object.create(Vt.prototype);return l.implicit=(this.implicit||[]).concat(o),l.explicit=(this.explicit||[]).concat(r),l.compiledImplicit=fn(l,"implicit"),l.compiledExplicit=fn(l,"explicit"),l.compiledTypeMap=Qa(l.compiledImplicit,l.compiledExplicit),l};var Ja=Vt,es=new de("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return t!==null?t:""}}),ts=new de("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return t!==null?t:[]}}),ns=new de("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return t!==null?t:{}}}),os=new Ja({explicit:[es,ts,ns]});function rs(t){if(t===null)return!0;var n=t.length;return n===1&&t==="~"||n===4&&(t==="null"||t==="Null"||t==="NULL")}function ls(){return null}function is(t){return t===null}var as=new de("tag:yaml.org,2002:null",{kind:"scalar",resolve:rs,construct:ls,predicate:is,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"});function ss(t){if(t===null)return!1;var n=t.length;return n===4&&(t==="true"||t==="True"||t==="TRUE")||n===5&&(t==="false"||t==="False"||t==="FALSE")}function cs(t){return t==="true"||t==="True"||t==="TRUE"}function ds(t){return Object.prototype.toString.call(t)==="[object Boolean]"}var us=new de("tag:yaml.org,2002:bool",{kind:"scalar",resolve:ss,construct:cs,predicate:ds,represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"});function ps(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function ms(t){return 48<=t&&t<=55}function fs(t){return 48<=t&&t<=57}function gs(t){if(t===null)return!1;var n=t.length,o=0,r=!1,l;if(!n)return!1;if(l=t[o],(l==="-"||l==="+")&&(l=t[++o]),l==="0"){if(o+1===n)return!0;if(l=t[++o],l==="b"){for(o++;o<n;o++)if(l=t[o],l!=="_"){if(l!=="0"&&l!=="1")return!1;r=!0}return r&&l!=="_"}if(l==="x"){for(o++;o<n;o++)if(l=t[o],l!=="_"){if(!ps(t.charCodeAt(o)))return!1;r=!0}return r&&l!=="_"}if(l==="o"){for(o++;o<n;o++)if(l=t[o],l!=="_"){if(!ms(t.charCodeAt(o)))return!1;r=!0}return r&&l!=="_"}}if(l==="_")return!1;for(;o<n;o++)if(l=t[o],l!=="_"){if(!fs(t.charCodeAt(o)))return!1;r=!0}return!(!r||l==="_")}function hs(t){var n=t,o=1,r;if(n.indexOf("_")!==-1&&(n=n.replace(/_/g,"")),r=n[0],(r==="-"||r==="+")&&(r==="-"&&(o=-1),n=n.slice(1),r=n[0]),n==="0")return 0;if(r==="0"){if(n[1]==="b")return o*parseInt(n.slice(2),2);if(n[1]==="x")return o*parseInt(n.slice(2),16);if(n[1]==="o")return o*parseInt(n.slice(2),8)}return o*parseInt(n,10)}function ys(t){return Object.prototype.toString.call(t)==="[object Number]"&&t%1===0&&!re.isNegativeZero(t)}var xs=new de("tag:yaml.org,2002:int",{kind:"scalar",resolve:gs,construct:hs,predicate:ys,represent:{binary:function(t){return t>=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0o"+t.toString(8):"-0o"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),ks=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function bs(t){return!(t===null||!ks.test(t)||t[t.length-1]==="_")}function ws(t){var n,o;return n=t.replace(/_/g,"").toLowerCase(),o=n[0]==="-"?-1:1,"+-".indexOf(n[0])>=0&&(n=n.slice(1)),n===".inf"?o===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:n===".nan"?NaN:o*parseFloat(n,10)}var _s=/^[-+]?[0-9]+e/;function Es(t,n){var o;if(isNaN(t))switch(n){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(n){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(n){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(re.isNegativeZero(t))return"-0.0";return o=t.toString(10),_s.test(o)?o.replace("e",".e"):o}function Bs(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||re.isNegativeZero(t))}var Ns=new de("tag:yaml.org,2002:float",{kind:"scalar",resolve:bs,construct:ws,predicate:Bs,represent:Es,defaultStyle:"lowercase"}),vs=os.extend({implicit:[as,us,xs,Ns]}),Cs=vs,gn=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),hn=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function Vs(t){return t===null?!1:gn.exec(t)!==null||hn.exec(t)!==null}function $s(t){var n,o,r,l,i,a,c,p=0,u=null,h,s,m;if(n=gn.exec(t),n===null&&(n=hn.exec(t)),n===null)throw new Error("Date resolve error");if(o=+n[1],r=+n[2]-1,l=+n[3],!n[4])return new Date(Date.UTC(o,r,l));if(i=+n[4],a=+n[5],c=+n[6],n[7]){for(p=n[7].slice(0,3);p.length<3;)p+="0";p=+p}return n[9]&&(h=+n[10],s=+(n[11]||0),u=(h*60+s)*6e4,n[9]==="-"&&(u=-u)),m=new Date(Date.UTC(o,r,l,i,a,c,p)),u&&m.setTime(m.getTime()-u),m}function As(t){return t.toISOString()}var Ss=new de("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:Vs,construct:$s,instanceOf:Date,represent:As});function Ls(t){return t==="<<"||t===null}var Fs=new de("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Ls}),$t=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
70
+ \r`;function Ts(t){if(t===null)return!1;var n,o,r=0,l=t.length,i=$t;for(o=0;o<l;o++)if(n=i.indexOf(t.charAt(o)),!(n>64)){if(n<0)return!1;r+=6}return r%8===0}function Ms(t){var n,o,r=t.replace(/[\r\n=]/g,""),l=r.length,i=$t,a=0,c=[];for(n=0;n<l;n++)n%4===0&&n&&(c.push(a>>16&255),c.push(a>>8&255),c.push(a&255)),a=a<<6|i.indexOf(r.charAt(n));return o=l%4*6,o===0?(c.push(a>>16&255),c.push(a>>8&255),c.push(a&255)):o===18?(c.push(a>>10&255),c.push(a>>2&255)):o===12&&c.push(a>>4&255),new Uint8Array(c)}function Is(t){var n="",o=0,r,l,i=t.length,a=$t;for(r=0;r<i;r++)r%3===0&&r&&(n+=a[o>>18&63],n+=a[o>>12&63],n+=a[o>>6&63],n+=a[o&63]),o=(o<<8)+t[r];return l=i%3,l===0?(n+=a[o>>18&63],n+=a[o>>12&63],n+=a[o>>6&63],n+=a[o&63]):l===2?(n+=a[o>>10&63],n+=a[o>>4&63],n+=a[o<<2&63],n+=a[64]):l===1&&(n+=a[o>>2&63],n+=a[o<<4&63],n+=a[64],n+=a[64]),n}function Ds(t){return Object.prototype.toString.call(t)==="[object Uint8Array]"}var js=new de("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Ts,construct:Ms,predicate:Ds,represent:Is}),Os=Object.prototype.hasOwnProperty,zs=Object.prototype.toString;function Ps(t){if(t===null)return!0;var n=[],o,r,l,i,a,c=t;for(o=0,r=c.length;o<r;o+=1){if(l=c[o],a=!1,zs.call(l)!=="[object Object]")return!1;for(i in l)if(Os.call(l,i))if(!a)a=!0;else return!1;if(!a)return!1;if(n.indexOf(i)===-1)n.push(i);else return!1}return!0}function Rs(t){return t!==null?t:[]}var Us=new de("tag:yaml.org,2002:omap",{kind:"sequence",resolve:Ps,construct:Rs}),qs=Object.prototype.toString;function Hs(t){if(t===null)return!0;var n,o,r,l,i,a=t;for(i=new Array(a.length),n=0,o=a.length;n<o;n+=1){if(r=a[n],qs.call(r)!=="[object Object]"||(l=Object.keys(r),l.length!==1))return!1;i[n]=[l[0],r[l[0]]]}return!0}function Ys(t){if(t===null)return[];var n,o,r,l,i,a=t;for(i=new Array(a.length),n=0,o=a.length;n<o;n+=1)r=a[n],l=Object.keys(r),i[n]=[l[0],r[l[0]]];return i}var Zs=new de("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:Hs,construct:Ys}),Ws=Object.prototype.hasOwnProperty;function Ks(t){if(t===null)return!0;var n,o=t;for(n in o)if(Ws.call(o,n)&&o[n]!==null)return!1;return!0}function Gs(t){return t!==null?t:{}}var Xs=new de("tag:yaml.org,2002:set",{kind:"mapping",resolve:Ks,construct:Gs}),yn=Cs.extend({implicit:[Ss,Fs],explicit:[js,Us,Zs,Xs]}),je=Object.prototype.hasOwnProperty,ft=1,xn=2,kn=3,gt=4,At=1,Qs=2,bn=3,Js=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,ec=/[\x85\u2028\u2029]/,tc=/[,\[\]\{\}]/,wn=/^(?:!|!!|![a-z\-]+!)$/i,_n=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function En(t){return Object.prototype.toString.call(t)}function Le(t){return t===10||t===13}function Ue(t){return t===9||t===32}function ye(t){return t===9||t===32||t===10||t===13}function Xe(t){return t===44||t===91||t===93||t===123||t===125}function nc(t){var n;return 48<=t&&t<=57?t-48:(n=t|32,97<=n&&n<=102?n-97+10:-1)}function oc(t){return t===120?2:t===117?4:t===85?8:0}function rc(t){return 48<=t&&t<=57?t-48:-1}function Bn(t){return t===48?"\0":t===97?"\x07":t===98?"\b":t===116||t===9?" ":t===110?`
71
+ `:t===118?"\v":t===102?"\f":t===114?"\r":t===101?"\x1B":t===32?" ":t===34?'"':t===47?"/":t===92?"\\":t===78?"…":t===95?" ":t===76?"\u2028":t===80?"\u2029":""}function lc(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}for(var Nn=new Array(256),vn=new Array(256),Qe=0;Qe<256;Qe++)Nn[Qe]=Bn(Qe)?1:0,vn[Qe]=Bn(Qe);function ic(t,n){this.input=t,this.filename=n.filename||null,this.schema=n.schema||yn,this.onWarning=n.onWarning||null,this.legacy=n.legacy||!1,this.json=n.json||!1,this.listener=n.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function Cn(t,n){var o={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return o.snippet=Za(o),new he(n,o)}function W(t,n){throw Cn(t,n)}function ht(t,n){t.onWarning&&t.onWarning.call(null,Cn(t,n))}var Vn={YAML:function(n,o,r){var l,i,a;n.version!==null&&W(n,"duplication of %YAML directive"),r.length!==1&&W(n,"YAML directive accepts exactly one argument"),l=/^([0-9]+)\.([0-9]+)$/.exec(r[0]),l===null&&W(n,"ill-formed argument of the YAML directive"),i=parseInt(l[1],10),a=parseInt(l[2],10),i!==1&&W(n,"unacceptable YAML version of the document"),n.version=r[0],n.checkLineBreaks=a<2,a!==1&&a!==2&&ht(n,"unsupported YAML version of the document")},TAG:function(n,o,r){var l,i;r.length!==2&&W(n,"TAG directive accepts exactly two arguments"),l=r[0],i=r[1],wn.test(l)||W(n,"ill-formed tag handle (first argument) of the TAG directive"),je.call(n.tagMap,l)&&W(n,'there is a previously declared suffix for "'+l+'" tag handle'),_n.test(i)||W(n,"ill-formed tag prefix (second argument) of the TAG directive");try{i=decodeURIComponent(i)}catch{W(n,"tag prefix is malformed: "+i)}n.tagMap[l]=i}};function Oe(t,n,o,r){var l,i,a,c;if(n<o){if(c=t.input.slice(n,o),r)for(l=0,i=c.length;l<i;l+=1)a=c.charCodeAt(l),a===9||32<=a&&a<=1114111||W(t,"expected valid JSON character");else Js.test(c)&&W(t,"the stream contains non-printable characters");t.result+=c}}function $n(t,n,o,r){var l,i,a,c;for(re.isObject(o)||W(t,"cannot merge mappings; the provided source object is unacceptable"),l=Object.keys(o),a=0,c=l.length;a<c;a+=1)i=l[a],je.call(n,i)||(n[i]=o[i],r[i]=!0)}function Je(t,n,o,r,l,i,a,c,p){var u,h;if(Array.isArray(l))for(l=Array.prototype.slice.call(l),u=0,h=l.length;u<h;u+=1)Array.isArray(l[u])&&W(t,"nested arrays are not supported inside keys"),typeof l=="object"&&En(l[u])==="[object Object]"&&(l[u]="[object Object]");if(typeof l=="object"&&En(l)==="[object Object]"&&(l="[object Object]"),l=String(l),n===null&&(n={}),r==="tag:yaml.org,2002:merge")if(Array.isArray(i))for(u=0,h=i.length;u<h;u+=1)$n(t,n,i[u],o);else $n(t,n,i,o);else!t.json&&!je.call(o,l)&&je.call(n,l)&&(t.line=a||t.line,t.lineStart=c||t.lineStart,t.position=p||t.position,W(t,"duplicated mapping key")),l==="__proto__"?Object.defineProperty(n,l,{configurable:!0,enumerable:!0,writable:!0,value:i}):n[l]=i,delete o[l];return n}function St(t){var n;n=t.input.charCodeAt(t.position),n===10?t.position++:n===13?(t.position++,t.input.charCodeAt(t.position)===10&&t.position++):W(t,"a line break is expected"),t.line+=1,t.lineStart=t.position,t.firstTabInLine=-1}function oe(t,n,o){for(var r=0,l=t.input.charCodeAt(t.position);l!==0;){for(;Ue(l);)l===9&&t.firstTabInLine===-1&&(t.firstTabInLine=t.position),l=t.input.charCodeAt(++t.position);if(n&&l===35)do l=t.input.charCodeAt(++t.position);while(l!==10&&l!==13&&l!==0);if(Le(l))for(St(t),l=t.input.charCodeAt(t.position),r++,t.lineIndent=0;l===32;)t.lineIndent++,l=t.input.charCodeAt(++t.position);else break}return o!==-1&&r!==0&&t.lineIndent<o&&ht(t,"deficient indentation"),r}function yt(t){var n=t.position,o;return o=t.input.charCodeAt(n),!!((o===45||o===46)&&o===t.input.charCodeAt(n+1)&&o===t.input.charCodeAt(n+2)&&(n+=3,o=t.input.charCodeAt(n),o===0||ye(o)))}function Lt(t,n){n===1?t.result+=" ":n>1&&(t.result+=re.repeat(`
72
+ `,n-1))}function ac(t,n,o){var r,l,i,a,c,p,u,h,s=t.kind,m=t.result,y;if(y=t.input.charCodeAt(t.position),ye(y)||Xe(y)||y===35||y===38||y===42||y===33||y===124||y===62||y===39||y===34||y===37||y===64||y===96||(y===63||y===45)&&(l=t.input.charCodeAt(t.position+1),ye(l)||o&&Xe(l)))return!1;for(t.kind="scalar",t.result="",i=a=t.position,c=!1;y!==0;){if(y===58){if(l=t.input.charCodeAt(t.position+1),ye(l)||o&&Xe(l))break}else if(y===35){if(r=t.input.charCodeAt(t.position-1),ye(r))break}else{if(t.position===t.lineStart&&yt(t)||o&&Xe(y))break;if(Le(y))if(p=t.line,u=t.lineStart,h=t.lineIndent,oe(t,!1,-1),t.lineIndent>=n){c=!0,y=t.input.charCodeAt(t.position);continue}else{t.position=a,t.line=p,t.lineStart=u,t.lineIndent=h;break}}c&&(Oe(t,i,a,!1),Lt(t,t.line-p),i=a=t.position,c=!1),Ue(y)||(a=t.position+1),y=t.input.charCodeAt(++t.position)}return Oe(t,i,a,!1),t.result?!0:(t.kind=s,t.result=m,!1)}function sc(t,n){var o,r,l;if(o=t.input.charCodeAt(t.position),o!==39)return!1;for(t.kind="scalar",t.result="",t.position++,r=l=t.position;(o=t.input.charCodeAt(t.position))!==0;)if(o===39)if(Oe(t,r,t.position,!0),o=t.input.charCodeAt(++t.position),o===39)r=t.position,t.position++,l=t.position;else return!0;else Le(o)?(Oe(t,r,l,!0),Lt(t,oe(t,!1,n)),r=l=t.position):t.position===t.lineStart&&yt(t)?W(t,"unexpected end of the document within a single quoted scalar"):(t.position++,l=t.position);W(t,"unexpected end of the stream within a single quoted scalar")}function cc(t,n){var o,r,l,i,a,c;if(c=t.input.charCodeAt(t.position),c!==34)return!1;for(t.kind="scalar",t.result="",t.position++,o=r=t.position;(c=t.input.charCodeAt(t.position))!==0;){if(c===34)return Oe(t,o,t.position,!0),t.position++,!0;if(c===92){if(Oe(t,o,t.position,!0),c=t.input.charCodeAt(++t.position),Le(c))oe(t,!1,n);else if(c<256&&Nn[c])t.result+=vn[c],t.position++;else if((a=oc(c))>0){for(l=a,i=0;l>0;l--)c=t.input.charCodeAt(++t.position),(a=nc(c))>=0?i=(i<<4)+a:W(t,"expected hexadecimal character");t.result+=lc(i),t.position++}else W(t,"unknown escape sequence");o=r=t.position}else Le(c)?(Oe(t,o,r,!0),Lt(t,oe(t,!1,n)),o=r=t.position):t.position===t.lineStart&&yt(t)?W(t,"unexpected end of the document within a double quoted scalar"):(t.position++,r=t.position)}W(t,"unexpected end of the stream within a double quoted scalar")}function dc(t,n){var o=!0,r,l,i,a=t.tag,c,p=t.anchor,u,h,s,m,y,d=Object.create(null),f,g,V,b;if(b=t.input.charCodeAt(t.position),b===91)h=93,y=!1,c=[];else if(b===123)h=125,y=!0,c={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=c),b=t.input.charCodeAt(++t.position);b!==0;){if(oe(t,!0,n),b=t.input.charCodeAt(t.position),b===h)return t.position++,t.tag=a,t.anchor=p,t.kind=y?"mapping":"sequence",t.result=c,!0;o?b===44&&W(t,"expected the node content, but found ','"):W(t,"missed comma between flow collection entries"),g=f=V=null,s=m=!1,b===63&&(u=t.input.charCodeAt(t.position+1),ye(u)&&(s=m=!0,t.position++,oe(t,!0,n))),r=t.line,l=t.lineStart,i=t.position,et(t,n,ft,!1,!0),g=t.tag,f=t.result,oe(t,!0,n),b=t.input.charCodeAt(t.position),(m||t.line===r)&&b===58&&(s=!0,b=t.input.charCodeAt(++t.position),oe(t,!0,n),et(t,n,ft,!1,!0),V=t.result),y?Je(t,c,d,g,f,V,r,l,i):s?c.push(Je(t,null,d,g,f,V,r,l,i)):c.push(f),oe(t,!0,n),b=t.input.charCodeAt(t.position),b===44?(o=!0,b=t.input.charCodeAt(++t.position)):o=!1}W(t,"unexpected end of the stream within a flow collection")}function uc(t,n){var o,r,l=At,i=!1,a=!1,c=n,p=0,u=!1,h,s;if(s=t.input.charCodeAt(t.position),s===124)r=!1;else if(s===62)r=!0;else return!1;for(t.kind="scalar",t.result="";s!==0;)if(s=t.input.charCodeAt(++t.position),s===43||s===45)At===l?l=s===43?bn:Qs:W(t,"repeat of a chomping mode identifier");else if((h=rc(s))>=0)h===0?W(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):a?W(t,"repeat of an indentation width identifier"):(c=n+h-1,a=!0);else break;if(Ue(s)){do s=t.input.charCodeAt(++t.position);while(Ue(s));if(s===35)do s=t.input.charCodeAt(++t.position);while(!Le(s)&&s!==0)}for(;s!==0;){for(St(t),t.lineIndent=0,s=t.input.charCodeAt(t.position);(!a||t.lineIndent<c)&&s===32;)t.lineIndent++,s=t.input.charCodeAt(++t.position);if(!a&&t.lineIndent>c&&(c=t.lineIndent),Le(s)){p++;continue}if(t.lineIndent<c){l===bn?t.result+=re.repeat(`
73
+ `,i?1+p:p):l===At&&i&&(t.result+=`
74
+ `);break}for(r?Ue(s)?(u=!0,t.result+=re.repeat(`
75
+ `,i?1+p:p)):u?(u=!1,t.result+=re.repeat(`
76
+ `,p+1)):p===0?i&&(t.result+=" "):t.result+=re.repeat(`
77
+ `,p):t.result+=re.repeat(`
78
+ `,i?1+p:p),i=!0,a=!0,p=0,o=t.position;!Le(s)&&s!==0;)s=t.input.charCodeAt(++t.position);Oe(t,o,t.position,!1)}return!0}function An(t,n){var o,r=t.tag,l=t.anchor,i=[],a,c=!1,p;if(t.firstTabInLine!==-1)return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=i),p=t.input.charCodeAt(t.position);p!==0&&(t.firstTabInLine!==-1&&(t.position=t.firstTabInLine,W(t,"tab characters must not be used in indentation")),!(p!==45||(a=t.input.charCodeAt(t.position+1),!ye(a))));){if(c=!0,t.position++,oe(t,!0,-1)&&t.lineIndent<=n){i.push(null),p=t.input.charCodeAt(t.position);continue}if(o=t.line,et(t,n,kn,!1,!0),i.push(t.result),oe(t,!0,-1),p=t.input.charCodeAt(t.position),(t.line===o||t.lineIndent>n)&&p!==0)W(t,"bad indentation of a sequence entry");else if(t.lineIndent<n)break}return c?(t.tag=r,t.anchor=l,t.kind="sequence",t.result=i,!0):!1}function pc(t,n,o){var r,l,i,a,c,p,u=t.tag,h=t.anchor,s={},m=Object.create(null),y=null,d=null,f=null,g=!1,V=!1,b;if(t.firstTabInLine!==-1)return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=s),b=t.input.charCodeAt(t.position);b!==0;){if(!g&&t.firstTabInLine!==-1&&(t.position=t.firstTabInLine,W(t,"tab characters must not be used in indentation")),r=t.input.charCodeAt(t.position+1),i=t.line,(b===63||b===58)&&ye(r))b===63?(g&&(Je(t,s,m,y,d,null,a,c,p),y=d=f=null),V=!0,g=!0,l=!0):g?(g=!1,l=!0):W(t,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),t.position+=1,b=r;else{if(a=t.line,c=t.lineStart,p=t.position,!et(t,o,xn,!1,!0))break;if(t.line===i){for(b=t.input.charCodeAt(t.position);Ue(b);)b=t.input.charCodeAt(++t.position);if(b===58)b=t.input.charCodeAt(++t.position),ye(b)||W(t,"a whitespace character is expected after the key-value separator within a block mapping"),g&&(Je(t,s,m,y,d,null,a,c,p),y=d=f=null),V=!0,g=!1,l=!1,y=t.tag,d=t.result;else if(V)W(t,"can not read an implicit mapping pair; a colon is missed");else return t.tag=u,t.anchor=h,!0}else if(V)W(t,"can not read a block mapping entry; a multiline key may not be an implicit key");else return t.tag=u,t.anchor=h,!0}if((t.line===i||t.lineIndent>n)&&(g&&(a=t.line,c=t.lineStart,p=t.position),et(t,n,gt,!0,l)&&(g?d=t.result:f=t.result),g||(Je(t,s,m,y,d,f,a,c,p),y=d=f=null),oe(t,!0,-1),b=t.input.charCodeAt(t.position)),(t.line===i||t.lineIndent>n)&&b!==0)W(t,"bad indentation of a mapping entry");else if(t.lineIndent<n)break}return g&&Je(t,s,m,y,d,null,a,c,p),V&&(t.tag=u,t.anchor=h,t.kind="mapping",t.result=s),V}function mc(t){var n,o=!1,r=!1,l,i,a;if(a=t.input.charCodeAt(t.position),a!==33)return!1;if(t.tag!==null&&W(t,"duplication of a tag property"),a=t.input.charCodeAt(++t.position),a===60?(o=!0,a=t.input.charCodeAt(++t.position)):a===33?(r=!0,l="!!",a=t.input.charCodeAt(++t.position)):l="!",n=t.position,o){do a=t.input.charCodeAt(++t.position);while(a!==0&&a!==62);t.position<t.length?(i=t.input.slice(n,t.position),a=t.input.charCodeAt(++t.position)):W(t,"unexpected end of the stream within a verbatim tag")}else{for(;a!==0&&!ye(a);)a===33&&(r?W(t,"tag suffix cannot contain exclamation marks"):(l=t.input.slice(n-1,t.position+1),wn.test(l)||W(t,"named tag handle cannot contain such characters"),r=!0,n=t.position+1)),a=t.input.charCodeAt(++t.position);i=t.input.slice(n,t.position),tc.test(i)&&W(t,"tag suffix cannot contain flow indicator characters")}i&&!_n.test(i)&&W(t,"tag name cannot contain such characters: "+i);try{i=decodeURIComponent(i)}catch{W(t,"tag name is malformed: "+i)}return o?t.tag=i:je.call(t.tagMap,l)?t.tag=t.tagMap[l]+i:l==="!"?t.tag="!"+i:l==="!!"?t.tag="tag:yaml.org,2002:"+i:W(t,'undeclared tag handle "'+l+'"'),!0}function fc(t){var n,o;if(o=t.input.charCodeAt(t.position),o!==38)return!1;for(t.anchor!==null&&W(t,"duplication of an anchor property"),o=t.input.charCodeAt(++t.position),n=t.position;o!==0&&!ye(o)&&!Xe(o);)o=t.input.charCodeAt(++t.position);return t.position===n&&W(t,"name of an anchor node must contain at least one character"),t.anchor=t.input.slice(n,t.position),!0}function gc(t){var n,o,r;if(r=t.input.charCodeAt(t.position),r!==42)return!1;for(r=t.input.charCodeAt(++t.position),n=t.position;r!==0&&!ye(r)&&!Xe(r);)r=t.input.charCodeAt(++t.position);return t.position===n&&W(t,"name of an alias node must contain at least one character"),o=t.input.slice(n,t.position),je.call(t.anchorMap,o)||W(t,'unidentified alias "'+o+'"'),t.result=t.anchorMap[o],oe(t,!0,-1),!0}function et(t,n,o,r,l){var i,a,c,p=1,u=!1,h=!1,s,m,y,d,f,g;if(t.listener!==null&&t.listener("open",t),t.tag=null,t.anchor=null,t.kind=null,t.result=null,i=a=c=gt===o||kn===o,r&&oe(t,!0,-1)&&(u=!0,t.lineIndent>n?p=1:t.lineIndent===n?p=0:t.lineIndent<n&&(p=-1)),p===1)for(;mc(t)||fc(t);)oe(t,!0,-1)?(u=!0,c=i,t.lineIndent>n?p=1:t.lineIndent===n?p=0:t.lineIndent<n&&(p=-1)):c=!1;if(c&&(c=u||l),(p===1||gt===o)&&(ft===o||xn===o?f=n:f=n+1,g=t.position-t.lineStart,p===1?c&&(An(t,g)||pc(t,g,f))||dc(t,f)?h=!0:(a&&uc(t,f)||sc(t,f)||cc(t,f)?h=!0:gc(t)?(h=!0,(t.tag!==null||t.anchor!==null)&&W(t,"alias node should not have any properties")):ac(t,f,ft===o)&&(h=!0,t.tag===null&&(t.tag="?")),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):p===0&&(h=c&&An(t,g))),t.tag===null)t.anchor!==null&&(t.anchorMap[t.anchor]=t.result);else if(t.tag==="?"){for(t.result!==null&&t.kind!=="scalar"&&W(t,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+t.kind+'"'),s=0,m=t.implicitTypes.length;s<m;s+=1)if(d=t.implicitTypes[s],d.resolve(t.result)){t.result=d.construct(t.result),t.tag=d.tag,t.anchor!==null&&(t.anchorMap[t.anchor]=t.result);break}}else if(t.tag!=="!"){if(je.call(t.typeMap[t.kind||"fallback"],t.tag))d=t.typeMap[t.kind||"fallback"][t.tag];else for(d=null,y=t.typeMap.multi[t.kind||"fallback"],s=0,m=y.length;s<m;s+=1)if(t.tag.slice(0,y[s].tag.length)===y[s].tag){d=y[s];break}d||W(t,"unknown tag !<"+t.tag+">"),t.result!==null&&d.kind!==t.kind&&W(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+d.kind+'", not "'+t.kind+'"'),d.resolve(t.result,t.tag)?(t.result=d.construct(t.result,t.tag),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):W(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||h}function hc(t){var n=t.position,o,r,l,i=!1,a;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);(a=t.input.charCodeAt(t.position))!==0&&(oe(t,!0,-1),a=t.input.charCodeAt(t.position),!(t.lineIndent>0||a!==37));){for(i=!0,a=t.input.charCodeAt(++t.position),o=t.position;a!==0&&!ye(a);)a=t.input.charCodeAt(++t.position);for(r=t.input.slice(o,t.position),l=[],r.length<1&&W(t,"directive name must not be less than one character in length");a!==0;){for(;Ue(a);)a=t.input.charCodeAt(++t.position);if(a===35){do a=t.input.charCodeAt(++t.position);while(a!==0&&!Le(a));break}if(Le(a))break;for(o=t.position;a!==0&&!ye(a);)a=t.input.charCodeAt(++t.position);l.push(t.input.slice(o,t.position))}a!==0&&St(t),je.call(Vn,r)?Vn[r](t,r,l):ht(t,'unknown document directive "'+r+'"')}if(oe(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,oe(t,!0,-1)):i&&W(t,"directives end mark is expected"),et(t,t.lineIndent-1,gt,!1,!0),oe(t,!0,-1),t.checkLineBreaks&&ec.test(t.input.slice(n,t.position))&&ht(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&yt(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,oe(t,!0,-1));return}if(t.position<t.length-1)W(t,"end of the stream or a document separator is expected");else return}function Sn(t,n){t=String(t),n=n||{},t.length!==0&&(t.charCodeAt(t.length-1)!==10&&t.charCodeAt(t.length-1)!==13&&(t+=`
79
+ `),t.charCodeAt(0)===65279&&(t=t.slice(1)));var o=new ic(t,n),r=t.indexOf("\0");for(r!==-1&&(o.position=r,W(o,"null byte is not allowed in input")),o.input+="\0";o.input.charCodeAt(o.position)===32;)o.lineIndent+=1,o.position+=1;for(;o.position<o.length-1;)hc(o);return o.documents}function yc(t,n,o){n!==null&&typeof n=="object"&&typeof o>"u"&&(o=n,n=null);var r=Sn(t,o);if(typeof n!="function")return r;for(var l=0,i=r.length;l<i;l+=1)n(r[l])}function xc(t,n){var o=Sn(t,n);if(o.length!==0){if(o.length===1)return o[0];throw new he("expected a single document in the stream, but found more")}}var kc=yc,bc=xc,wc={loadAll:kc,load:bc},Ln=Object.prototype.toString,Fn=Object.prototype.hasOwnProperty,Ft=65279,_c=9,rt=10,Ec=13,Bc=32,Nc=33,vc=34,Tt=35,Cc=37,Vc=38,$c=39,Ac=42,Tn=44,Sc=45,xt=58,Lc=61,Fc=62,Tc=63,Mc=64,Mn=91,In=93,Ic=96,Dn=123,Dc=124,jn=125,ue={};ue[0]="\\0",ue[7]="\\a",ue[8]="\\b",ue[9]="\\t",ue[10]="\\n",ue[11]="\\v",ue[12]="\\f",ue[13]="\\r",ue[27]="\\e",ue[34]='\\"',ue[92]="\\\\",ue[133]="\\N",ue[160]="\\_",ue[8232]="\\L",ue[8233]="\\P";var jc=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],Oc=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;function zc(t,n){var o,r,l,i,a,c,p;if(n===null)return{};for(o={},r=Object.keys(n),l=0,i=r.length;l<i;l+=1)a=r[l],c=String(n[a]),a.slice(0,2)==="!!"&&(a="tag:yaml.org,2002:"+a.slice(2)),p=t.compiledTypeMap.fallback[a],p&&Fn.call(p.styleAliases,c)&&(c=p.styleAliases[c]),o[a]=c;return o}function Pc(t){var n,o,r;if(n=t.toString(16).toUpperCase(),t<=255)o="x",r=2;else if(t<=65535)o="u",r=4;else if(t<=4294967295)o="U",r=8;else throw new he("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+o+re.repeat("0",r-n.length)+n}var Rc=1,lt=2;function Uc(t){this.schema=t.schema||yn,this.indent=Math.max(1,t.indent||2),this.noArrayIndent=t.noArrayIndent||!1,this.skipInvalid=t.skipInvalid||!1,this.flowLevel=re.isNothing(t.flowLevel)?-1:t.flowLevel,this.styleMap=zc(this.schema,t.styles||null),this.sortKeys=t.sortKeys||!1,this.lineWidth=t.lineWidth||80,this.noRefs=t.noRefs||!1,this.noCompatMode=t.noCompatMode||!1,this.condenseFlow=t.condenseFlow||!1,this.quotingType=t.quotingType==='"'?lt:Rc,this.forceQuotes=t.forceQuotes||!1,this.replacer=typeof t.replacer=="function"?t.replacer:null,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function On(t,n){for(var o=re.repeat(" ",n),r=0,l=-1,i="",a,c=t.length;r<c;)l=t.indexOf(`
80
+ `,r),l===-1?(a=t.slice(r),r=c):(a=t.slice(r,l+1),r=l+1),a.length&&a!==`
81
+ `&&(i+=o),i+=a;return i}function Mt(t,n){return`
82
+ `+re.repeat(" ",t.indent*n)}function qc(t,n){var o,r,l;for(o=0,r=t.implicitTypes.length;o<r;o+=1)if(l=t.implicitTypes[o],l.resolve(n))return!0;return!1}function kt(t){return t===Bc||t===_c}function it(t){return 32<=t&&t<=126||161<=t&&t<=55295&&t!==8232&&t!==8233||57344<=t&&t<=65533&&t!==Ft||65536<=t&&t<=1114111}function zn(t){return it(t)&&t!==Ft&&t!==Ec&&t!==rt}function Pn(t,n,o){var r=zn(t),l=r&&!kt(t);return(o?r:r&&t!==Tn&&t!==Mn&&t!==In&&t!==Dn&&t!==jn)&&t!==Tt&&!(n===xt&&!l)||zn(n)&&!kt(n)&&t===Tt||n===xt&&l}function Hc(t){return it(t)&&t!==Ft&&!kt(t)&&t!==Sc&&t!==Tc&&t!==xt&&t!==Tn&&t!==Mn&&t!==In&&t!==Dn&&t!==jn&&t!==Tt&&t!==Vc&&t!==Ac&&t!==Nc&&t!==Dc&&t!==Lc&&t!==Fc&&t!==$c&&t!==vc&&t!==Cc&&t!==Mc&&t!==Ic}function Yc(t){return!kt(t)&&t!==xt}function at(t,n){var o=t.charCodeAt(n),r;return o>=55296&&o<=56319&&n+1<t.length&&(r=t.charCodeAt(n+1),r>=56320&&r<=57343)?(o-55296)*1024+r-56320+65536:o}function Rn(t){var n=/^\n* /;return n.test(t)}var Un=1,It=2,qn=3,Hn=4,tt=5;function Zc(t,n,o,r,l,i,a,c){var p,u=0,h=null,s=!1,m=!1,y=r!==-1,d=-1,f=Hc(at(t,0))&&Yc(at(t,t.length-1));if(n||a)for(p=0;p<t.length;u>=65536?p+=2:p++){if(u=at(t,p),!it(u))return tt;f=f&&Pn(u,h,c),h=u}else{for(p=0;p<t.length;u>=65536?p+=2:p++){if(u=at(t,p),u===rt)s=!0,y&&(m=m||p-d-1>r&&t[d+1]!==" ",d=p);else if(!it(u))return tt;f=f&&Pn(u,h,c),h=u}m=m||y&&p-d-1>r&&t[d+1]!==" "}return!s&&!m?f&&!a&&!l(t)?Un:i===lt?tt:It:o>9&&Rn(t)?tt:a?i===lt?tt:It:m?Hn:qn}function Wc(t,n,o,r,l){t.dump=(function(){if(n.length===0)return t.quotingType===lt?'""':"''";if(!t.noCompatMode&&(jc.indexOf(n)!==-1||Oc.test(n)))return t.quotingType===lt?'"'+n+'"':"'"+n+"'";var i=t.indent*Math.max(1,o),a=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-i),c=r||t.flowLevel>-1&&o>=t.flowLevel;function p(u){return qc(t,u)}switch(Zc(n,c,t.indent,a,p,t.quotingType,t.forceQuotes&&!r,l)){case Un:return n;case It:return"'"+n.replace(/'/g,"''")+"'";case qn:return"|"+Yn(n,t.indent)+Zn(On(n,i));case Hn:return">"+Yn(n,t.indent)+Zn(On(Kc(n,a),i));case tt:return'"'+Gc(n)+'"';default:throw new he("impossible error: invalid scalar style")}})()}function Yn(t,n){var o=Rn(t)?String(n):"",r=t[t.length-1]===`
83
+ `,l=r&&(t[t.length-2]===`
84
84
  `||t===`
85
- `),l=i?"+":r?"":"-";return o+l+`
86
- `}function yn(t){return t[t.length-1]===`
87
- `?t.slice(0,-1):t}function yc(t,n){for(var o=/(\n+)([^\n]*)/g,r=(function(){var d=t.indexOf(`
88
- `);return d=d!==-1?d:t.length,o.lastIndex=d,xn(t.slice(0,d),n)})(),i=t[0]===`
89
- `||t[0]===" ",l,a;a=o.exec(t);){var c=a[1],p=a[2];l=p[0]===" ",r+=c+(!i&&!l&&p!==""?`
90
- `:"")+xn(p,n),i=l}return r}function xn(t,n){if(t===""||t[0]===" ")return t;for(var o=/ [^ ]/g,r,i=0,l,a=0,c=0,p="";r=o.exec(t);)c=r.index,c-i>n&&(l=a>i?a:c,p+=`
91
- `+t.slice(i,l),i=l+1),a=c;return p+=`
92
- `,t.length-i>n&&a>i?p+=t.slice(i,a)+`
93
- `+t.slice(a+1):p+=t.slice(i),p.slice(1)}function xc(t){for(var n="",o=0,r,i=0;i<t.length;o>=65536?i+=2:i++)o=Pe(t,i),r=re[o],!r&&ze(o)?(n+=t[i],o>=65536&&(n+=t[i+1])):n+=r||cc(o);return n}function kc(t,n,o){var r="",i=t.tag,l,a,c;for(l=0,a=o.length;l<a;l+=1)c=o[l],t.replacer&&(c=t.replacer.call(o,String(l),c)),(ke(t,n,c,!1,!1)||typeof c>"u"&&ke(t,n,null,!1,!1))&&(r!==""&&(r+=","+(t.condenseFlow?"":" ")),r+=t.dump);t.tag=i,t.dump="["+r+"]"}function kn(t,n,o,r){var i="",l=t.tag,a,c,p;for(a=0,c=o.length;a<c;a+=1)p=o[a],t.replacer&&(p=t.replacer.call(o,String(a),p)),(ke(t,n+1,p,!0,!0,!1,!0)||typeof p>"u"&&ke(t,n+1,null,!0,!0,!1,!0))&&((!r||i!=="")&&(i+=ct(t,n)),t.dump&&je===t.dump.charCodeAt(0)?i+="-":i+="- ",i+=t.dump);t.tag=l,t.dump=i||"[]"}function bc(t,n,o){var r="",i=t.tag,l=Object.keys(o),a,c,p,d,g;for(a=0,c=l.length;a<c;a+=1)g="",r!==""&&(g+=", "),t.condenseFlow&&(g+='"'),p=l[a],d=o[p],t.replacer&&(d=t.replacer.call(o,p,d)),ke(t,n,p,!1,!1)&&(t.dump.length>1024&&(g+="? "),g+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),ke(t,n,d,!1,!1)&&(g+=t.dump,r+=g));t.tag=i,t.dump="{"+r+"}"}function _c(t,n,o,r){var i="",l=t.tag,a=Object.keys(o),c,p,d,g,s,f;if(t.sortKeys===!0)a.sort();else if(typeof t.sortKeys=="function")a.sort(t.sortKeys);else if(t.sortKeys)throw new le("sortKeys must be a boolean or a function");for(c=0,p=a.length;c<p;c+=1)f="",(!r||i!=="")&&(f+=ct(t,n)),d=a[c],g=o[d],t.replacer&&(g=t.replacer.call(o,d,g)),ke(t,n+1,d,!0,!0,!0)&&(s=t.tag!==null&&t.tag!=="?"||t.dump&&t.dump.length>1024,s&&(t.dump&&je===t.dump.charCodeAt(0)?f+="?":f+="? "),f+=t.dump,s&&(f+=ct(t,n)),ke(t,n+1,g,!0,s)&&(t.dump&&je===t.dump.charCodeAt(0)?f+=":":f+=": ",f+=t.dump,i+=f));t.tag=l,t.dump=i||"{}"}function bn(t,n,o){var r,i,l,a,c,p;for(i=o?t.explicitTypes:t.implicitTypes,l=0,a=i.length;l<a;l+=1)if(c=i[l],(c.instanceOf||c.predicate)&&(!c.instanceOf||typeof n=="object"&&n instanceof c.instanceOf)&&(!c.predicate||c.predicate(n))){if(o?c.multi&&c.representName?t.tag=c.representName(n):t.tag=c.tag:t.tag="?",c.represent){if(p=t.styleMap[c.tag]||c.defaultStyle,tn.call(c.represent)==="[object Function]")r=c.represent(n,p);else if(nn.call(c.represent,p))r=c.represent[p](n,p);else throw new le("!<"+c.tag+'> tag resolver accepts not "'+p+'" style');t.dump=r}return!0}return!1}function ke(t,n,o,r,i,l,a){t.tag=null,t.dump=o,bn(t,o,!1)||bn(t,o,!0);var c=tn.call(t.dump),p=r,d;r&&(r=t.flowLevel<0||t.flowLevel>n);var g=c==="[object Object]"||c==="[object Array]",s,f;if(g&&(s=t.duplicates.indexOf(o),f=s!==-1),(t.tag!==null&&t.tag!=="?"||f||t.indent!==2&&n>0)&&(i=!1),f&&t.usedDuplicates[s])t.dump="*ref_"+s;else{if(g&&f&&!t.usedDuplicates[s]&&(t.usedDuplicates[s]=!0),c==="[object Object]")r&&Object.keys(t.dump).length!==0?(_c(t,n,t.dump,i),f&&(t.dump="&ref_"+s+t.dump)):(bc(t,n,t.dump),f&&(t.dump="&ref_"+s+" "+t.dump));else if(c==="[object Array]")r&&t.dump.length!==0?(t.noArrayIndent&&!a&&n>0?kn(t,n-1,t.dump,i):kn(t,n,t.dump,i),f&&(t.dump="&ref_"+s+t.dump)):(kc(t,n,t.dump),f&&(t.dump="&ref_"+s+" "+t.dump));else if(c==="[object String]")t.tag!=="?"&&hc(t,t.dump,n,l,p);else{if(c==="[object Undefined]")return!1;if(t.skipInvalid)return!1;throw new le("unacceptable kind of an object to dump "+c)}t.tag!==null&&t.tag!=="?"&&(d=encodeURI(t.tag[0]==="!"?t.tag.slice(1):t.tag).replace(/!/g,"%21"),t.tag[0]==="!"?d="!"+d:d.slice(0,18)==="tag:yaml.org,2002:"?d="!!"+d.slice(18):d="!<"+d+">",t.dump=d+" "+t.dump)}return!0}function wc(t,n){var o=[],r=[],i,l;for(ut(t,o,r),i=0,l=r.length;i<l;i+=1)n.duplicates.push(o[r[i]]);n.usedDuplicates=new Array(l)}function ut(t,n,o){var r,i,l;if(t!==null&&typeof t=="object")if(i=n.indexOf(t),i!==-1)o.indexOf(i)===-1&&o.push(i);else if(n.push(t),Array.isArray(t))for(i=0,l=t.length;i<l;i+=1)ut(t[i],n,o);else for(r=Object.keys(t),i=0,l=r.length;i<l;i+=1)ut(t[r[i]],n,o)}function Ec(t,n){n=n||{};var o=new uc(n);o.noRefs||wc(t,o);var r=t;return o.replacer&&(r=o.replacer.call({"":r},"",r)),ke(o,0,r,!0,!0)?o.dump+`
94
- `:""}var Bc=Ec,Nc={dump:Bc},vc=Us.load,_n=Nc.dump;const Cc={class:"flex flex-col flex-1 overflow-hidden"},Vc={class:"flex justify-end gap-2"},$c={class:"w-20 gap-2 whitespace-nowrap rounded-md font-medium ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary hover:bg-primary/90 px-4 py-2 h-9 text-xs bg-gradient-to-r from-sky-400 to-blue-400 hover:from-sky-500 hover:to-blue-500 text-white shadow-sm transition-all duration-300 hover:shadow-md hover:scale-[1.02] relative overflow-hidden"},Ac=["href"],Sc={class:"flex flex-col flex-1 overflow-hidden"},Lc={class:"bg-white rounded-xl border border-gray-200 shadow-sm overflow-hidden mt-3 flex flex-col flex-1"},Fc={class:"relative bg-gradient-to-br from-slate-50 to-white flex-1"},Mc=e.defineComponent({__name:"vs-tab-style",props:{token:{},styleYaml:{}},emits:["update:styleYaml","update"],setup(t,{emit:n}){const o=t,r=n,i=e.ref("");e.watch(()=>o.styleYaml,p=>{try{const d=p?_n(p):"";!i.value&&d!==i.value&&(i.value=d)}catch{i.value=""}},{immediate:!0,deep:!0}),e.watch(i,async p=>{var d,g;try{const s=p?vc(p):null;if((d=s==null?void 0:s.colorAttr)!=null&&d.length&&((g=o.styleYaml)==null?void 0:g.colorAttr)!==s.colorAttr){const f=await l(s.colorAttr);s.colors=f.reduce((u,m,x)=>({...u,[m.id.toString()]:a[x]}),{});const y=_n(s);y!==i.value&&(i.value=y)}JSON.stringify(s)!==JSON.stringify(o.styleYaml)&&r("update:styleYaml",s)}catch{}});async function l(p){return(await fetch(`/api/gis-service/${o.token}/${p}`).then(g=>g.json())).rows}const a=["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd"],c=async()=>{try{await fetch(`/api/gis-service/${o.token}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({style:i.value})}),r("update"),ne.notify({type:"success",title:"Успіх",message:"Стилі збережено"})}catch(p){ne.notify({type:"error",title:"Помилка",message:"Не вдалося зберегти стилі"}),console.log(p)}};return(p,d)=>(e.openBlock(),e.createElementBlock("div",Cc,[e.createElementVNode("div",Vc,[e.createElementVNode("button",$c,[e.createElementVNode("a",{target:"_blank",href:"/api/gis-service/"+o.token+"/col"},"Attr",8,Ac)]),e.createElementVNode("button",{onClick:c,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary hover:bg-primary/90 px-4 py-2 h-9 text-xs bg-gradient-to-r from-sky-400 to-blue-400 hover:from-sky-500 hover:to-blue-500 text-white shadow-sm transition-all duration-300 hover:shadow-md hover:scale-[1.02] relative overflow-hidden"},[...d[1]||(d[1]=[e.createElementVNode("svg",{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:"lucide lucide-save h-3 w-3 mr-1"},[e.createElementVNode("path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z"}),e.createElementVNode("path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7"}),e.createElementVNode("path",{d:"M7 3v4a1 1 0 0 0 1 1h7"})],-1),e.createTextVNode(" Зберегти стилі ",-1)])])]),e.createElementVNode("div",Sc,[e.createElementVNode("div",Lc,[d[2]||(d[2]=e.createElementVNode("div",{class:"bg-gradient-to-r from-gray-50 to-gray-100 px-4 py-2 border-b border-gray-200 flex items-center justify-between"},[e.createElementVNode("div",{class:"text-xs text-gray-400"},"YAML")],-1)),e.createElementVNode("div",Fc,[e.createVNode(Mt,{modelValue:i.value,"onUpdate:modelValue":d[0]||(d[0]=g=>i.value=g),language:"yaml",theme:"vs-light"},null,8,["modelValue"])])])])]))}}),wn=Symbol("MapContext");function Tc(t){const n=e.shallowRef(null),o=e.ref(!1);let r=!1;const i=[],l=()=>{r=!0,i.length&&i.forEach(s=>s())},a=()=>{const s=t.container;return typeof s=="string"?document.getElementById(s):(s==null?void 0:s.value)!==void 0?s.value:s},c=()=>r?Promise.resolve():new Promise(s=>i.push(s)),p=async()=>{var f,y,u,m;if(typeof window>"u"||n.value)return;const s=a();if(!s)throw new Error("Map container not found");n.value=new maplibregl.Map({...t.mapOptions||{},attributionControl:!1,center:[30,50],zoom:7,container:s}),(f=t.controls)!=null&&f.navigation&&n.value.addControl(new maplibregl.NavigationControl(typeof t.controls.navigation=="object"?t.controls.navigation:{}),"top-right"),(y=t.controls)!=null&&y.scale&&n.value.addControl(new maplibregl.ScaleControl(typeof t.controls.scale=="object"?t.controls.scale:{}),"bottom-left"),(u=t.controls)!=null&&u.fullscreen&&n.value.addControl(new maplibregl.FullscreenControl,"top-right"),(m=t.controls)!=null&&m.geolocate&&n.value.addControl(new maplibregl.GeolocateControl(typeof t.controls.geolocate=="object"?t.controls.geolocate:{}),"top-right"),n.value.once("load",()=>{o.value=!0,l()})},d=()=>{n.value&&(n.value.remove(),n.value=null,o.value=!1)};e.onMounted(p),e.onUnmounted(d);const g={map:n,ready:c,flyTo:s=>{var f;return(f=n.value)==null?void 0:f.flyTo(s)},fitBounds:(s,f)=>{var y;return(y=n.value)==null?void 0:y.fitBounds(s,f)},setCenter:s=>{var f;return(f=n.value)==null?void 0:f.setCenter(s)},setZoom:s=>{var f;return(f=n.value)==null?void 0:f.setZoom(s)},addControl:(s,f)=>{var y;return(y=n.value)==null?void 0:y.addControl(s,f)},removeControl:s=>{var f;return(f=n.value)==null?void 0:f.removeControl(s)},on:(s,f,y)=>{var u,m;return typeof f=="string"?((u=n.value)==null||u.on(s,f,y),()=>{var x;return(x=n.value)==null?void 0:x.off(s,f,y)}):((m=n.value)==null||m.on(s,f),()=>{var x;return(x=n.value)==null?void 0:x.off(s,f)})},off:(s,f,y)=>{var u,m;typeof f=="string"?(u=n.value)==null||u.off(s,f,y):(m=n.value)==null||m.off(s,f)},project:s=>{var f;return(f=n.value)==null?void 0:f.project(s)},unproject:s=>{var f;return(f=n.value)==null?void 0:f.unproject(s)}};return e.provide(wn,g),g}function se(t){if(t)return{map:t,flyTo:t.value.flyTo,fitBounds:t.value.fitBounds};const n=e.inject(wn);if(!n)throw new Error("useMap() called outside of a Map provider");return n}const pt=new Map,mt={};function ft(t){if(t.colorAttr&&t.colors){const n=Object.entries(t.colors).flat();return["match",["get",t.colorAttr],...n,"#94a3b8"]}return null}function Ic(t){if(!t.icon||!t.colors)return null;const n=[],o=t.icon.split("+")[0];return Object.values(t.colors).forEach(r=>{n.push(`${o}+${r.replace("#","")}.png`)}),["match",["get",t.colorAttr],...Object.entries(t.colors).reduce((r,[i,l],a)=>r.concat([i,n[a]]),[]),t.icon]}function En(t,n){const o=ft(t);if(!(t.icon&&!t.iconZoom))return{type:"circle",maxzoom:n||t.iconZoom||22,paint:{"circle-stroke-color":(t==null?void 0:t.stroke)||"#fff","circle-opacity":t.opacity||1,"circle-color":o||t.color,"circle-stroke-width":t.width||1,"circle-radius":t.radius||5}}}function Dc(t){const n=ft(t);return{type:"fill",minzoom:t.pointZoom||0,paint:{"fill-color":n||t.color,"fill-opacity":t.opacity||.3,"fill-outline-color":t.stroke}}}function jc(t){return{type:"line",paint:{"line-color":ft(t)||t.color,"line-opacity":t.opacity||1,"line-width":t.width||1.5}}}function Oc(t){const n=Ic(t);return{type:"symbol",minzoom:t.iconZoom||0,layout:{"icon-image":n||t.icon,"icon-size":1,"icon-allow-overlap":!0,"icon-ignore-placement":!0}}}function Bn(t){if(!t)return[];const n=[];return t.icon&&n.push(Oc(t)),t.pointZoom&&n.push(En(t,t.pointZoom)),t.type==="polygon"?n.push(Dc(t)):t.type==="line"?n.push(jc(t)):n.push(En(t)),n.filter(Boolean)}function zc(t){return{type:"geojson",data:{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"Point",coordinates:t}}]}}}async function Nn(t,n,o){const r=[n],i=n.split("+")[0];Object.values(o||{}).forEach(l=>{r.push(`${i}+${l.replace("#","")}.png`)});for(const l of r){if(t.getImage(l))continue;const a=await t.loadImage(`/api/gis-icon/${l}`);t.addImage(l,a.data)}}function G(t,n,o){var N,w;if(!t)return mt;if(!n)return mt[t];const{map:r,ready:i=()=>Promise.resolve()}=se(o),l=t||((N=n.layer)==null?void 0:N.id),a=n.sourceId??t,c={...n};c.point&&(c.source=zc(c.point)),!c.layer&&((w=c.source)==null?void 0:w.type)==="raster"&&(c.layer={id:a,type:"raster",source:a}),c.layer&&!c.layer.source&&Object.assign(c.layer,{source:a});let p=!1,d=!1;const g=()=>{var S,T,I,E;if(!(d||!r.value)){if(c.source&&!r.value.getSource(a)&&r.value.addSource(a,c.source),!r.value.getLayer(l)){const b=c.beforeId===0?(T=(S=r.value.getStyle().layers)==null?void 0:S[0])==null?void 0:T.id:c.beforeId;(E=(I=c.layer)==null?void 0:I.style)!=null&&E.icon&&Nn(r.value,c.layer.style.icon,c.layer.style.colors);const C=Bn(c.style||c.layer.style);if(!C.length){r.value.addLayer(c.layer,b);return}C.forEach((L,j)=>{var O;const D={...L,id:`${l}${j||""}`,source:a};((O=c.source)==null?void 0:O.type)==="vector"&&(D["source-layer"]=a),r.value.addLayer(D,b)})}p=!0}};i().then(g);const s=(S,T)=>r.value?(r.value.on(S,l,T),()=>{var I;return(I=r.value)==null?void 0:I.off(S,l,T)}):()=>{},f=S=>{r.value&&r.value.getStyle().layers.filter(T=>T.source===l).forEach(T=>{r.value.setLayoutProperty(T.id,"visibility",S?"visible":"none")})},y=(S=!0)=>{r.value&&(r.value.getStyle().layers.filter(T=>T.source===l).forEach(T=>{r.value.removeLayer(T.id)}),d=!0,c.source&&S&&r.value.getSource(a)&&r.value.removeSource(a))},$={ids:{layerId:l,sourceId:a},isMounted:()=>{var S;return p&&!!((S=r.value)!=null&&S.getLayer(l))},setVisible:f,updatePaint:S=>{r.value&&Object.entries(S).forEach(([T,I])=>{r.value.setPaintProperty(l,T,I)})},updateLayout:S=>{r.value&&Object.entries(S).forEach(([T,I])=>{r.value.setLayoutProperty(l,T,I)})},updateFilter:S=>{r.value&&r.value.setFilter(l,S)},setData:S=>{if(!r.value)return;const T=r.value.getSource(a);T&&"setData"in T&&T.setData(S)},setTiles:S=>{if(!r.value)return;const T=r.value.getSource(a);T&&"setTiles"in T&&T.setTiles(S)},setStyle:async S=>{if(!r.value)return;S.icon&&Nn(r.value,S.icon,S.colors);const T=Bn(S);y(!1),T.forEach((I,E)=>{const b={...I,id:`${l}${E}`,source:c.layer.source,"source-layer":c.layer.source};r.value.addLayer(b)})},setFilter:S=>{var I,E;if(!r.value)return;const T=r.value.getSource(a);if(T&&"setTiles"in T&&((E=(I=c.source)==null?void 0:I.tiles)!=null&&E[0])){const b=c.source.tiles[0];T.setTiles([`${b}${b.includes("?")?"&":"?"}filter=${S}`])}},setFeatureState:(S,T)=>{r.value&&r.value.setFeatureState({source:a,...S},T)},removeFeatureState:(S,T)=>{r.value&&r.value.removeFeatureState({source:a,...S},T?{key:T}:void 0)},remove:y,card:c.card,popup:c.popup,opts:c,getSource:()=>{var S;return(S=r.value)==null?void 0:S.getSource(a)},getLayer:()=>{var S;return(S=r.value)==null?void 0:S.getLayer(l)},on:s};pt.set(l,$);const B=()=>{pt.get(l)===$&&pt.delete(l)},F=$.remove;return $.remove=()=>{B(),F()},e.onBeforeUnmount($.remove),mt[t]=$,$}const Pc={class:"flex flex-col flex-1 min-h-0"},Rc={class:"flex flex-col flex-1 min-h-0"},Uc=e.defineComponent({__name:"vs-tab-popup",props:{token:{},fields:{},columns:{}},emits:["update:columns","save"],setup(t,{emit:n}){const o=t,r=n,i=e.ref(o.columns||[]);e.watch(()=>o.columns,u=>i.value=u||[],{immediate:!0}),e.watch(i,u=>{const m=G(o.token);m&&(m.popup=u),r("update:columns",u)});const l=e.ref("list"),a=e.ref(!1),c=e.ref([]),p=[{key:"name",label:"Name",type:"main"},{key:"meta",label:"Meta"}],d={name:{type:"text",label:"Name",disabled:!0,validators:["required"]},label:{type:"text",label:"Label",validators:["required"]},meta:{type:"radio",label:"Meta",mode:"combo",options:[{text:"Title",id:"title"},{text:"Feature",id:"feature"},{text:"Badge",id:"badge"}]},data:{type:"text",label:"Data"}};function g(){c.value=i.value.map(u=>u.name||u.id),a.value=!0}function s(){var v;const u=[...i.value],m=((v=o.fields)==null?void 0:v.filter(k=>c.value.includes(k.name)))||[],x=Ae(u,m,{selectedKeys:c.value,resolveKey:k=>we(k)});i.value=x,a.value=!1,c.value=[]}function f(){a.value=!1,c.value=[]}function y(){let u=[];l.value==="all"?u=o.fields||[]:l.value==="none"?u=[]:u=i.value,u.filter(m=>!m.label).forEach(m=>m.label=m.ua),r("save",u)}return(u,m)=>(e.openBlock(),e.createElementBlock("div",Pc,[e.createElementVNode("div",{class:"flex justify-between mb-3 gap-2"},[e.createElementVNode("button",{onClick:g,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium bg-gradient-to-r from-gray-500 to-gray-400 text-white h-9 px-4 py-2 hover:from-gray-600 hover:to-gray-500"}," Імпорт "),e.createElementVNode("button",{onClick:y,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium bg-gradient-to-r from-sky-400 to-blue-400 hover:from-sky-500 hover:to-blue-500 text-white shadow-sm px-4 py-2 h-9 text-xs transition-all duration-300"}," Зберегти popup ")]),e.createElementVNode("div",Rc,[l.value==="list"?(e.openBlock(),e.createBlock(ve,{key:0,modelValue:i.value,"onUpdate:modelValue":m[0]||(m[0]=x=>i.value=x),"columns-scheme":p,"form-scheme":d,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])):e.createCommentVNode("",!0)]),e.createVNode(Ve,{visible:a.value,"onUpdate:visible":m[1]||(m[1]=x=>a.value=x),selection:c.value,"onUpdate:selection":m[2]||(m[2]=x=>c.value=x),fields:t.fields,title:"Імпорт полів","id-prefix":"import-popup",onConfirm:s,onCancel:f},null,8,["visible","selection","fields"])]))}}),qc={class:"flex flex-col flex-1 min-h-0"},Yc={class:"flex justify-between mb-3 gap-2"},Hc={class:"p-4 space-y-4 text-sm"},Wc={class:"space-y-1"},Kc={class:"space-y-1"},Zc={class:"flex items-center gap-3"},Gc={class:"flex justify-end gap-2 p-4 border-t"},Xc=e.defineComponent({__name:"vs-tab-legend",props:{mapInfo:{},token:{},columns:{}},emits:["update:columns","save"],setup(t,{emit:n}){const o=t,r=n,i=e.ref(o.columns||[]);e.watch(()=>o.columns,u=>{i.value=u||[]}),e.watch(i,u=>{r("update:columns",u)});const l=e.ref(!1),a=e.ref({name:"",color:"#2E86DE"}),c=e.defineAsyncComponent(()=>import("@opengis/core").then(u=>u.VsModal)),p=[{key:"name",label:"Назва"},{key:"color",label:"Колір",type:"color"}],d={name:{type:"text",label:"Назва",validators:["required"]},color:{type:"color",label:"Колір",validators:["required"]}};function g(u){u&&s(),l.value=u}function s(){a.value={name:"",color:"#2E86DE"}}function f(){var v,k;const u=(v=a.value.name)==null?void 0:v.trim();if(!u){ne.notify({type:"warning",title:"Перевірка",message:"Вкажіть назву елементу легенди"});return}const m=((k=a.value.color)==null?void 0:k.trim())||"#2E86DE";if(i.value.some(_=>we(_)===we({name:u}))){ne.notify({type:"warning",title:"Дубль",message:"Такий елемент легенди вже існує"});return}i.value=[...i.value,{name:u,color:m}],s(),l.value=!1}function y(){r("save",i.value)}return(u,m)=>(e.openBlock(),e.createElementBlock("div",qc,[e.createElementVNode("div",Yc,[e.createElementVNode("button",{onClick:m[0]||(m[0]=x=>l.value=!0),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium bg-gradient-to-r from-gray-500 to-gray-400 text-white h-9 px-4 py-2 hover:from-gray-600 hover:to-gray-500"}," Додати "),e.createElementVNode("button",{onClick:y,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium bg-gradient-to-r from-sky-400 to-blue-400 hover:from-sky-500 hover:to-blue-500 text-white shadow-sm px-4 py-2 h-9 text-xs transition-all duration-300"}," Зберегти легенду ")]),e.createVNode(ve,{modelValue:i.value,"onUpdate:modelValue":m[1]||(m[1]=x=>i.value=x),"columns-scheme":p,"form-scheme":d,"main-col-width":"250px","add-button":!1},null,8,["modelValue"]),e.createVNode(e.unref(c),{visible:l.value,title:"Новий елемент легенди","onUpdate:visible":g},{footer:e.withCtx(()=>[e.createElementVNode("div",Gc,[e.createElementVNode("button",{type:"button",class:"px-4 py-2 rounded bg-gray-100 text-gray-700",onClick:m[5]||(m[5]=x=>g(!1))}," Скасувати "),e.createElementVNode("button",{type:"button",class:"px-4 py-2 rounded bg-blue-600 text-white",onClick:f}," Додати ")])]),default:e.withCtx(()=>[e.createElementVNode("div",Hc,[e.createElementVNode("div",Wc,[m[6]||(m[6]=e.createElementVNode("label",{class:"block text-xs font-medium text-gray-500 uppercase tracking-wide"}," Назва ",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":m[2]||(m[2]=x=>a.value.name=x),type:"text",class:"w-full rounded-md border border-gray-300 px-3 py-2 text-sm focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-200",placeholder:"Наприклад, Житлова зона"},null,512),[[e.vModelText,a.value.name]])]),e.createElementVNode("div",Kc,[m[7]||(m[7]=e.createElementVNode("label",{class:"block text-xs font-medium text-gray-500 uppercase tracking-wide"}," Колір ",-1)),e.createElementVNode("div",Zc,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":m[3]||(m[3]=x=>a.value.color=x),type:"color",class:"h-10 w-16 rounded border border-gray-300"},null,512),[[e.vModelText,a.value.color]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":m[4]||(m[4]=x=>a.value.color=x),type:"text",class:"flex-1 rounded-md border border-gray-300 px-3 py-2 text-sm focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-200",placeholder:"#FFFFFF"},null,512),[[e.vModelText,a.value.color]])])])])]),_:1},8,["visible"])]))}}),Qc={class:"space-y-3 bg-gradient-to-br from-sky-50 to-blue-50 p-4 rounded-xl border border-sky-100 shadow-sm"},Jc=["onClick"],ed=["aria-checked","value"],td={key:0},nd=e.defineComponent({__name:"view-mode-toggle",props:{modelValue:{},options:{},showHtml:{type:Boolean}},emits:["update:modelValue"],setup(t,{emit:n}){const o=t,r=n,i=a=>r("update:modelValue",a),l=o.options||[{value:"all",label:"All"},{value:"list",label:"List"},{value:"none",label:"None"}];return(a,c)=>(e.openBlock(),e.createElementBlock("div",Qc,[c[1]||(c[1]=e.createElementVNode("label",{class:"text-sm font-medium text-gray-600"},"Режим відображення",-1)),e.createElementVNode("div",{role:"radiogroup",class:e.normalizeClass(["grid gap-2",`grid-cols-${e.unref(l).length}`])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l),p=>(e.openBlock(),e.createElementBlock("div",{key:p.value,onClick:d=>i(p.value),class:e.normalizeClass(["flex items-center justify-center space-x-2 rounded-lg p-2 border transition-all duration-300 cursor-pointer",[t.modelValue===p.value?"bg-gradient-to-r from-sky-200 to-blue-200 border-transparent shadow-sm":"bg-white border-gray-100 hover:border-sky-200 hover:shadow-sm"]])},[e.createElementVNode("button",{type:"button",role:"radio","aria-checked":t.modelValue===p.value,value:p.value,class:"aspect-square rounded-full border border-primary h-4 w-4 flex items-center justify-center text-sky-500"},[t.modelValue===p.value?(e.openBlock(),e.createElementBlock("span",td,[...c[0]||(c[0]=[e.createElementVNode("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:"lucide lucide-circle h-2.5 w-2.5 fill-current text-current"},[e.createElementVNode("circle",{cx:"12",cy:"12",r:"10"})],-1)])])):e.createCommentVNode("",!0)],8,ed),e.createElementVNode("label",{class:e.normalizeClass(["text-xs font-medium cursor-pointer",t.modelValue===p.value?"text-gray-700":"text-gray-600"])},e.toDisplayString(p.label),3)],10,Jc))),128))],2)]))}}),od={class:"flex flex-col flex-1 min-h-0"},rd={class:"flex flex-col flex-1 min-h-0"},ld=e.defineComponent({__name:"vs-tab-card",props:{fields:{},columns:{},viewMode:{},html:{}},emits:["update:columns","save"],setup(t,{emit:n}){const o=t,r=n,i=e.ref(o.columns||[]);e.watch(()=>o.columns,x=>i.value=x||[],{immediate:!0}),e.watch(i,x=>r("update:columns",x));const l=e.ref(o.viewMode??"list");e.watch(()=>o.viewMode,x=>{x&&x!==l.value&&(l.value=x)});const a=e.ref(o.html??"");e.watch(()=>o.html,x=>{typeof x=="string"&&x!==a.value&&(a.value=x)},{immediate:!0});const c=e.ref(!1),p=e.ref([]),d=[{key:"name",label:"Name",type:"main"},{key:"format",label:"Format"}],g={name:{type:"text",label:"Name",validators:["required"],disabled:!0},label:{type:"text",label:"Label",validators:["required"]},format:{type:"radio",label:"Format",mode:"inline",validators:["required"],options:[{text:"Text",id:"text"},{text:"Number",id:"number"},{text:"Date",id:"date"},{text:"File",id:"file"},{text:"Select",id:"select"}]},data:{type:"text",label:"Data"}};function s(){p.value=l.value==="html"?[]:i.value.map(x=>x.name||x.id),c.value=!0}function f(){var _;const x=[...i.value],v=((_=o.fields)==null?void 0:_.filter(V=>p.value.includes(V.name)).map(V=>{const{type:A,format:h,...$}=V;return{...$,format:h??A??"text"}}))||[],k=Ae(x,v,{selectedKeys:p.value,resolveKey:V=>we(V)});if(i.value=k,l.value==="html"&&v.length){const V=v.map($=>{const B=$.label??"",F=$.name??$.id??"";return`<dd>${B}</dd>
95
- <dt>{{ ${F} }}</dt>`}).join(`
96
- `),h=(a.value??"").trimEnd();a.value=h?`${h}
97
- ${V}`:V}c.value=!1,p.value=[]}function y(){c.value=!1,p.value=[]}function u(){const x=l.value==="html"?"html":"list",v={card_mode:x};x==="html"?v.html=a.value:x==="list"&&(v.list=i.value),r("save","card",v)}const m=[{value:"all",label:"All"},{value:"list",label:"List"},{value:"none",label:"None"},{value:"html",label:"HTML"}];return(x,v)=>(e.openBlock(),e.createElementBlock("div",od,[e.createElementVNode("div",{class:"flex justify-between mb-3 gap-2"},[e.createElementVNode("button",{onClick:s,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium bg-gradient-to-r from-gray-500 to-gray-400 text-white h-9 px-4 py-2 hover:from-gray-600 hover:to-gray-500"}," Імпорт "),e.createElementVNode("button",{onClick:u,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium bg-gradient-to-r from-sky-400 to-blue-400 hover:from-sky-500 hover:to-blue-500 text-white shadow-sm px-4 py-2 h-9 text-xs transition-all duration-300"}," Зберегти ")]),e.createVNode(nd,{modelValue:l.value,"onUpdate:modelValue":v[0]||(v[0]=k=>l.value=k),options:m},null,8,["modelValue"]),e.createElementVNode("div",rd,[l.value==="list"?(e.openBlock(),e.createBlock(ve,{key:0,modelValue:i.value,"onUpdate:modelValue":v[1]||(v[1]=k=>i.value=k),"columns-scheme":d,"form-scheme":g,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])):l.value==="html"?(e.openBlock(),e.createBlock(Mt,{key:1,modelValue:a.value,"onUpdate:modelValue":v[2]||(v[2]=k=>a.value=k),language:"html",theme:"vs-light",class:"flex-1 min-h-0"},null,8,["modelValue"])):e.createCommentVNode("",!0)]),e.createVNode(Ve,{visible:c.value,"onUpdate:visible":v[3]||(v[3]=k=>c.value=k),selection:p.value,"onUpdate:selection":v[4]||(v[4]=k=>p.value=k),fields:t.fields,title:"Імпорт полів для картки","id-prefix":"import-card",onConfirm:f,onCancel:y},null,8,["visible","selection","fields"])]))}}),id={class:"flex flex-col flex-1 min-h-0"},ad=e.defineComponent({__name:"vs-tab-filter",props:{fields:{},columns:{}},emits:["update:columns","save"],setup(t,{emit:n}){const o=t,r=n;console.log(o.columns);const i=e.ref(o.columns||[]);e.watch(()=>o.columns,u=>i.value=u||[],{immediate:!0}),e.watch(i,u=>r("update:columns",u),{deep:!0,immediate:!0});const l=e.ref("list"),a=e.ref(!1),c=e.ref([]),p=[{key:"id",label:"Name"},{key:"label",label:"UA"},{key:"type",label:"Тип"}],d={name:{type:"text",label:"Name",disabled:!0,validators:["required"]},label:{type:"text",label:"UA",validators:["required"]},type:{type:"radio",label:"Тип",position:"horizontal",validators:["required"],options:[{text:"Check",id:"check"},{text:"Range",id:"range"},{text:"Date",id:"date"},{text:"Text",id:"text"},{text:"Select",id:"select"}]},hidden:{label:"Приховати",type:"Switcher"},data:{type:"text",label:"Класифікатор",conditions:["type","in",["autocomplete","select","check"]],validators:["required"]}};function g(){c.value=i.value.map(u=>u.name||u.id),a.value=!0}function s(){var v;const u=[...i.value],m=((v=o.fields)==null?void 0:v.filter(k=>c.value.includes(k.name)))||[],x=Ae(u,m,{selectedKeys:c.value,resolveKey:k=>we(k)});i.value=x,a.value=!1,c.value=[]}function f(){a.value=!1,c.value=[]}function y(){let u=[];l.value==="all"?u=o.fields||[]:l.value==="none"?u=[]:u=i.value,r("save",u)}return(u,m)=>(e.openBlock(),e.createElementBlock("div",id,[e.createElementVNode("div",{class:"flex justify-between mb-3 gap-2"},[e.createElementVNode("button",{onClick:g,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium bg-gradient-to-r from-gray-500 to-gray-400 text-white h-9 px-4 py-2 hover:from-gray-600 hover:to-gray-500"}," Імпорт "),e.createElementVNode("button",{onClick:y,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium bg-gradient-to-r from-sky-400 to-blue-400 hover:from-sky-500 hover:to-blue-500 text-white shadow-sm px-4 py-2 h-9 text-xs transition-all duration-300"}," Зберегти фільтр ")]),l.value==="list"?(e.openBlock(),e.createBlock(ve,{key:0,modelValue:i.value,"onUpdate:modelValue":m[0]||(m[0]=x=>i.value=x),"columns-scheme":p,"form-scheme":d,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])):e.createCommentVNode("",!0),e.createVNode(Ve,{visible:a.value,"onUpdate:visible":m[1]||(m[1]=x=>a.value=x),selection:c.value,"onUpdate:selection":m[2]||(m[2]=x=>c.value=x),fields:t.fields,title:"Імпорт полів","id-prefix":"import-filter",onConfirm:s,onCancel:f},null,8,["visible","selection","fields"])]))}}),vn=e.defineComponent({__name:"MapView",setup(t,{expose:n}){const o=e.ref(null),r=e.ref(null),i=Tc({container:o,mapOptions:{style:{version:8,sources:{},layers:[]},center:[30.5234,50.4501],zoom:9,minZoom:4,maxZoom:14,doubleClickZoom:!1},controls:{navigation:!0,scale:!0}});async function l(){var d;await e.nextTick();const p=(d=i.map)==null?void 0:d.value;p!=null&&p.resize&&p.resize()}function a(){typeof ResizeObserver>"u"||r.value||!o.value||(r.value=new ResizeObserver(()=>{l()}),r.value.observe(o.value))}function c(){var p;(p=r.value)==null||p.disconnect(),r.value=null}return e.onMounted(()=>{l(),a(),window.addEventListener("resize",l)}),e.onBeforeUnmount(()=>{window.removeEventListener("resize",l),c()}),n({ctx:i}),(p,d)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"el",ref:o,class:"w-full h-full rounded-xl overflow-hidden"},[e.renderSlot(p.$slots,"default")],512))}}),sd=e.defineComponent({__name:"MapDataLayer",props:{id:{},layer:{},styleYaml:{}},setup(t,{expose:n}){var f;const{map:o,flyTo:r,setZoom:i}=se(),l=t,a=l.id;String(l.id);const c=`${location.origin}/api/vtile/${l.id}/ua/{z}/{x}/{y}.vmt?all=1`,p=G(a,{source:{type:"vector",tiles:[c],minzoom:0,maxzoom:14},popup:l.layer.popup,layer:{style:(f=l.layer)==null?void 0:f.style}});n({layerHandle:p}),r({center:l.layer.center||[30,50],animate:!1}),i(11),G("point",{point:l.layer.center,style:{color:"orange"}});let d=null;function g(){d&&clearTimeout(d),d=setTimeout(()=>{d=null,s().catch(y=>console.error("Failed to update map layer",y))},300)}async function s(){o.value&&p.setStyle(l.styleYaml)}return e.watch(()=>l.styleYaml,g),e.onBeforeUnmount(()=>{p.remove()}),(y,u)=>null}}),Re=e.ref(null);function cd(){Re.value=null}function dd(t){const n=e.ref(!1),o=()=>typeof t=="string"?t:t.value;e.watch(Re,a=>{a!==o()&&n.value&&(n.value=!1)});function r(){Re.value=o(),n.value=!0}function i(){Re.value===o()&&(Re.value=null),n.value=!1}function l(){n.value?i():r()}return{isOpen:n,open:r,close:i,toggle:l}}const ud={class:"map-filter"},pd={class:"map-filter__header"},md={class:"map-filter__title"},fd={"aria-hidden":"true"},gt="#map-filter-popover-host",Qe=W(e.defineComponent({__name:"MapFilterPopover",props:{count:{},layer:{},catalogAnchor:{},disabled:{type:Boolean}},setup(t){const n=e.defineAsyncComponent(()=>import("@opengis/filter")),o=t,r=e.computed(()=>{var D;return((D=o.layer)==null?void 0:D.id)??""}),i=e.computed(()=>`filter-popover-${r.value}`),{isOpen:l,close:a,toggle:c}=dd(i),p=e.reactive({top:0,left:0,transform:"translateX(-50%)"}),d=e.ref(null),g=e.ref(null);let s=null;const f=e.ref({}),y=e.reactive({visible:!1,text:"Спочатку активуйте шар, щоб застосувати фільтр",top:0,left:0}),u=e.computed(()=>l.value),m=e.computed(()=>{var D;return Array.isArray((D=o.layer)==null?void 0:D.filters)?o.layer.filters:[]}),x=e.computed(()=>m.value.length>0),v=e.computed(()=>{var D;return((D=o.layer)==null?void 0:D.name)??""}),k=e.computed(()=>m.value),_=e.ref(null),V=e.computed(()=>m.value.length),A=e.computed(()=>V.value<=2),h=e.computed(()=>A.value?"body":typeof window>"u"||_.value?gt:"body"),$=e.computed(()=>!u.value||!A.value?{}:{position:"absolute",top:`${p.top}px`,left:`${p.left}px`,transform:p.transform,zIndex:1e3,width:"280px"});function B(){a()}function F(D,O,P=8){const Y=window.scrollY+P,J=window.scrollY+window.innerHeight-P;let K=D;return K+O>J&&(K=J-O),K<Y&&(K=Y),K}function N(){var ae,de,be;if(!d.value||!A.value)return;const D=d.value.getBoundingClientRect(),O=window.scrollX+8,P=window.scrollX+window.innerWidth-8,Y=((ae=g.value)==null?void 0:ae.offsetWidth)||280,J=((de=g.value)==null?void 0:de.offsetHeight)||0;let K=0,X=0;if((be=o.catalogAnchor)!=null&&be.value){const fe=o.catalogAnchor.value.getBoundingClientRect(),M=fe.top+window.scrollY;K=F(M,J,8);const U=fe.right+window.scrollX+12,H=P-Y,Z=O;X=Math.min(Math.max(U,Z),Math.max(Z,H))}else{const fe=D.bottom+window.scrollY+8;K=F(fe,J,8);let M=D.left+window.scrollX;M<O&&(M=O),M+Y>P&&(M=Math.max(O,P-Y)),X=M}p.left=X,p.top=K,p.transform="none"}function w(){A.value||j(),c(),l.value&&A.value&&e.nextTick(()=>{N(),C(),requestAnimationFrame(()=>N())})}function S(){o.disabled||w()}e.watch(u,D=>{D&&A.value?e.nextTick(()=>{N(),C(),requestAnimationFrame(()=>N())}):(L(),A.value||j())}),e.watch(k,()=>{!u.value||!A.value||e.nextTick(()=>N())},{deep:!0}),e.watch(A,D=>{u.value&&(D?e.nextTick(()=>{N(),C()}):(L(),j()))}),e.watch(()=>o.disabled,D=>{D&&(a(),f.value={})});function T(){!u.value||!A.value||N()}function I(D){const O=r.value;if(!O)return;const P=G(O);if(!(P!=null&&P.setFilter))return;f.value=D;const Y=Object.entries(D).map(([J,K])=>`${J}=${K}`).join("|");P.setFilter(Y)}function E(D){if(!o.disabled)return;const O=D.currentTarget;if(!O)return;const P=O.getBoundingClientRect();y.left=P.left+P.width/2+window.scrollX,y.top=P.bottom+8+window.scrollY,y.visible=!0}function b(){y.visible=!1}e.onMounted(()=>{j(),window.addEventListener("resize",T),window.addEventListener("scroll",T,!0)}),e.onBeforeUnmount(()=>{window.removeEventListener("resize",T),window.removeEventListener("scroll",T,!0),L()});function C(){L(),!(!g.value||!A.value)&&(s=new ResizeObserver(()=>{!u.value||!A.value||N()}),s.observe(g.value))}function L(){s&&(s.disconnect(),s=null)}function j(){typeof window>"u"||typeof document>"u"||(_.value=document.querySelector(gt))}return(D,O)=>x.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mapLayer-filter",ref_key:"anchor",ref:d},[e.createElementVNode("a",{class:e.normalizeClass(["mapLayer-filter__trigger",{"mapLayer-filter__trigger--disabled":o.disabled}]),href:"#",onClick:e.withModifiers(S,["prevent","stop"]),onMouseenter:E,onMouseleave:b,onFocus:E,onBlur:b},[...O[2]||(O[2]=[e.createElementVNode("div",{class:"mapLayer-filter__icon"},[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("path",{d:"M3 4h18l-7 8v6l-4 2v-8z"})])],-1)])],34),u.value?(e.openBlock(),e.createBlock(e.Teleport,{key:0,to:h.value},[e.createElementVNode("div",{class:e.normalizeClass(["vst-popover__content inline-block z-50 rounded-[16px] bg-white text-sm text-gray-500 rounded-md shadow-lg bottom mapLayer-filter__popover",{"mapLayer-filter__popover--static":!A.value}]),style:e.normalizeStyle($.value),ref_key:"panel",ref:g,onClick:O[1]||(O[1]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",ud,[e.createElementVNode("div",pd,[e.createElementVNode("h3",md,e.toDisplayString(v.value||"Фільтр"),1),e.createElementVNode("button",{type:"button",class:"map-filter__close",onClick:B},[e.createElementVNode("span",fd,[e.createVNode(e.unref(Zn),{class:"h-4 w-4"})]),O[3]||(O[3]=e.createElementVNode("span",{class:"sr-only"},"Закрити",-1))])]),e.createVNode(e.unref(n),{view:"inline",schema:k.value,value:f.value,limit:10,onChange:O[0]||(O[0]=P=>I(P.data)),width:250},null,8,["schema","value"])])],6)],8,["to"])):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[y.visible?(e.openBlock(),e.createElementBlock("div",{key:0,class:"filter-badge__hint",style:e.normalizeStyle({top:`${y.top}px`,left:`${y.left}px`})},e.toDisplayString(y.text),5)):e.createCommentVNode("",!0)]))],512)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-e46ae0d6"]]),gd={class:"flex justify-center items-center h-[40px] w-[40px] bg-white text-sm border border-gray-200 text-gray-600 hover:bg-gray-100 rounded-full"},ht=W(e.defineComponent({__name:"MapFilterWidget",props:{filters:{},title:{},layerId:{}},setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",gd,[e.createVNode(Qe,{layer:{filters:t.filters,id:t.layerId},count:t.filters.length},null,8,["layer","count"])])]))}}),[["__scopeId","data-v-2bd0fbac"]]),hd={class:"flex flex-row gap-x-3 z-10 relative widget"},yd=["onClick"],xd=["src","alt"],yt=e.defineComponent({__name:"BaseMaps",setup(t){const n={gki:{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/12/2422/1400.png",title:"Базова карта (voyager)"},arcgisonline:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}.png",preview:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/7/47/69.png",title:"ESRI Online Imagery(2022-2023)"},none:{}},o=e.ref("gki"),r=G("base",{source:{type:"raster",tiles:[n[o.value].url]},beforeId:0});function i(l){if(o.value=l,!n[l].url)return r.setVisible(!1);r.setVisible(!0),r.setTiles([n[l].url])}return(l,a)=>(e.openBlock(),e.createElementBlock("div",hd,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(n,(c,p)=>e.createElementVNode("div",{key:p,onClick:d=>i(p)},[e.createElementVNode("div",{class:e.normalizeClass(["w-14 h-14 flex items-center justify-center bg-gray-200 rounded-xl shadow-2xs cursor-pointer transition-all border-4",o.value===p?"border-blue-500":"border-gray-200"])},[c.preview?(e.openBlock(),e.createElementBlock("img",{key:0,src:c.preview,alt:c.title,class:"object-cover rounded-lg w-12 h-12"},null,8,xd)):e.createCommentVNode("",!0)],2)],8,yd)),64))]))}}),kd={key:0,class:"legend-widget flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative widget",style:{width:"100%"}},bd={class:"flex flex-col gap-1 p-5"},_d={class:"flex items-center justify-between w-full text-sm text-gray-800 ml-2"},xt=e.defineComponent({__name:"MapLegendWidget",props:{items:{}},setup(t){const n=t,{map:o,ready:r}=se(),i=e.ref([]);let l=null;function a(g){return g?g.map((s,f)=>{var m;const y=(s==null?void 0:s.name)||(s==null?void 0:s.label)||(s==null?void 0:s.title)||(s==null?void 0:s.id)||`Layer ${f+1}`,u=(s==null?void 0:s.color)||(s==null?void 0:s.fill)||((m=s==null?void 0:s.paint)==null?void 0:m.color)||"#3388ff";return{id:`${y}-${f}`,label:y,color:u}}):[]}function c(g){return g!=null&&g.layers?g.layers.filter(s=>{const f=s.paint||{};return f["fill-color"]||f["line-color"]||f["circle-color"]}).map((s,f)=>{var m;const y=s.paint||{},u=y["fill-color"]||y["line-color"]||y["circle-color"]||"#3388ff";return{id:s.id||`layer-${f}`,label:((m=s.metadata)==null?void 0:m.title)||s.id||`Layer ${f+1}`,color:u}}):[]}async function p(){var f;await r();const g=o.value;if(!g)return;const s=(f=g.getStyle)==null?void 0:f.call(g);i.value=c(s)}function d(){const g=o.value;if(!g)return;l==null||l();const s=()=>p();g.on("styledata",s),l=()=>g.off("styledata",s)}return e.watch(()=>n.items,async g=>{g!=null?(i.value=a(g),l==null||l()):(await r(),d(),p())},{immediate:!0,deep:!0}),e.onMounted(async()=>{(n.items===void 0||n.items===null)&&(await r(),d(),p())}),e.onBeforeUnmount(()=>{l==null||l(),l=null}),(g,s)=>i.value.length?(e.openBlock(),e.createElementBlock("div",kd,[e.createElementVNode("div",bd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,f=>(e.openBlock(),e.createElementBlock("div",{key:f.id,class:"flex items-center"},[e.createElementVNode("span",{class:"shrink-0 size-2.5 inline-block me-2.5 h-[10px] w-[10px] rounded-full",style:e.normalizeStyle({background:f.color})},null,4),e.createElementVNode("span",_d,[e.createElementVNode("span",null,e.toDisplayString(f.label),1)])]))),128))])])):e.createCommentVNode("",!0)}});function wd(){const{map:t,ready:n}=se(),o=e.ref(null),r=e.ref(null),i=e.ref(null),l=e.ref(null);let a=[];function c(){a.forEach(f=>f()),a=[]}const p=f=>{var m;o.value=[f.point.x,f.point.y];const y=t.value.queryRenderedFeatures(f.point);if(!(y!=null&&y.length)){d();return}const u=G(y[0].source)||G(y[0].layer.id);u!=null&&u.popup&&(r.value=((m=u.popup)==null?void 0:m.fields)||u.popup,l.value=y[0].properties)},d=()=>{r.value=null,l.value=null,o.value=null};async function g(){await n(),t.value&&(c(),t.value.on("mousemove",p),t.value.on("mouseleave",d))}function s(){c(),r.value=null,l.value=null,o.value=null}return n().then(g),{popupCoords:o,popupFields:r,popupValues:l,disable:s,title:i}}const Ed={class:"min-w-[200px] max-w-[280px] rounded-lg border border-slate-200 bg-white/90 p-3 text-xs shadow-lg backdrop-blur"},Bd={class:"space-y-1.5"},Nd={class:"font-bold text-slate-700"},vd={class:"text-slate-700"},Cn=e.defineComponent({__name:"MapPopup",setup(t){const{popupCoords:n,popupFields:o,popupValues:r,disable:i}=wd(),l=e.ref(null),a=e.ref({left:"-9999px",top:"-9999px"}),c=e.computed(()=>{const f=o.value||[],y=r.value||{};return f.filter(u=>(u==null?void 0:u.meta)!=="title").map((u,m)=>g(u,y,m)).filter(u=>u.label)}),p=e.computed(()=>{const f=o.value||[],y=r.value||{},u=f.find(m=>(m==null?void 0:m.meta)==="title");return u?g(u,y,0):null}),d=e.computed(()=>{var y;const f=c.value;return(y=p.value)!=null&&y.value?[{...p.value,key:`${p.value.key}-title`,label:"Назва"},...f]:f});function g(f,y,u){const m=f.name||f.label||f.title||`field-${u}`,x=f.label||f.title||f.name||m,v=f.name?y[f.name]:void 0,k=f.name?y[`${f.name}_text`]:void 0;return{key:m,label:x,value:k??v??f.value??null}}function s(){if(!d.value.length||!n.value||!l.value){a.value={left:"-9999px",top:"-9999px"};return}const[f,y]=n.value;a.value={left:`${f+18}px`,top:`${y+18}px`}}return e.watch([n,d],()=>{e.nextTick(()=>s())}),e.onBeforeUnmount(()=>{i()}),(f,y)=>d.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"popupRef",ref:l,class:"absolute pointer-events-none z-20",style:e.normalizeStyle(a.value)},[e.createElementVNode("div",Ed,[e.createElementVNode("div",Bd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,u=>(e.openBlock(),e.createElementBlock("div",{key:u.key,class:"flex flex-col"},[e.createElementVNode("span",Nd,e.toDisplayString(u.label),1),e.createElementVNode("span",vd,e.toDisplayString(u.value??"—"),1)]))),128))])])],4)):e.createCommentVNode("",!0)}});function Cd(){const{map:t,ready:n}=se(),o=me.useRoute(),r=me.useRouter(),i=e.ref(null),l=e.ref(null),a=e.ref(null),c=e.ref(!1),p=e.computed(()=>c.value||!!i.value||!!a.value);let d=null,g=!1;function s(){i.value=null,l.value=null,a.value=null,c.value=!1}function f(){if(d){try{d()}catch{}d=null}}async function y(){await n();const h=t.value;h&&(f(),s(),h.on("click",u),d=()=>h.off("click",u),A(k()))}function u(h){const $=t.value;if(!$)return;const F=$.queryRenderedFeatures(h.point)[0];if(!F){s(),V(null);return}const N=G(F.source);m(F,N==null?void 0:N.card)}async function m(h,$){var F,N;if(!((F=h==null?void 0:h.properties)!=null&&F.id))return;const B=new URLSearchParams;B.set("layer",h.source),B.set("id",String((N=h.properties)==null?void 0:N.id)),c.value=!0,a.value=null,i.value=null,l.value=h||null;try{const w=await fetch(`/api/map-format?${B.toString()}`);if(!w.ok)throw new Error(`Failed (${w.status})`);const S=await w.json();i.value={rows:S.rows||{},fields:$||[],html:S.html||null},g||V(l.value)}catch{a.value="Не вдалося завантажити дані",i.value=null,ne.notify({type:"error",title:"Помилка",message:"Не вдалося завантажити дані"})}finally{c.value=!1}}function x(){s(),V(null)}function v(){f(),s()}n().then(y),e.onBeforeUnmount(()=>v());function k(){const h=Array.isArray(o.query.info)?o.query.info[0]:o.query.info;return typeof h!="string"?null:h.trim()||null}function _(h){var N,w;const $=(h==null?void 0:h.source)??((N=h==null?void 0:h.layer)==null?void 0:N.id),B=(w=h==null?void 0:h.properties)==null?void 0:w.id;return!$||B===void 0||B===null?null:`${$},${B}`.trim()||null}function V(h){const $=_(h),B=k();if($===B)return;const F={...o.query};$?F.info=$:delete F.info,r.push({query:F}).catch(()=>{})}async function A(h){if(!h){s();return}if(h===_(l.value))return;const[$,B]=h.split(","),F=$==null?void 0:$.trim(),N=B==null?void 0:B.trim();if(!F||!N){s(),V(null);return}g=!0;try{const w=G(F);await m({source:F,properties:{id:N}},w==null?void 0:w.card)}finally{g=!1}}return e.watch(()=>k(),h=>{h!==_(l.value)&&(g=!0,A(h).finally(()=>{g=!1}))}),{card:i,cardFeature:l,cardError:a,cardLoading:c,isOpen:p,close:x}}function Vd(){const{map:t,ready:n}=se(),o=e.ref([]),r=e.ref(0),i=e.ref(0),l=e.ref(!1),a=e.ref(null),c=e.ref({}),p=e.ref(null),d=e.ref([]),g=e.computed(()=>o.value[i.value]||null),s=e.computed(()=>o.value.length>0);let f=null;const y=()=>{f==null||f.remove(),f=null},u=B=>B?B.type==="FeatureCollection"?B:B.type==="Feature"?{type:"FeatureCollection",features:[B]}:B.type&&Array.isArray(B.coordinates)?{type:"FeatureCollection",features:[{type:"Feature",geometry:B,properties:{}}]}:Array.isArray(B.features)?{type:"FeatureCollection",features:B.features}:B.geometry?u(B.geometry):null:null,m=()=>({type:"line",color:"#0a57ff",width:4,opacity:.95}),x=B=>Number(B.toFixed(5)),v=async B=>{if(await n(),!t.value)return;const F=u(B);F&&(y(),f=G("feature-highlight",{source:{type:"geojson",data:F},style:m()},t))},k=async(B,F,N)=>{var T,I;const[w,S]=[x(B),x(F)];p.value={x:w,y:S},d.value=N,l.value=!0,a.value=null,o.value=[],c.value={},i.value=0;try{const E=N.map(async D=>{const O=`/api/map-info-point?x=${w}&y=${S}&layers=${D}`,P=await fetch(O);if(!P.ok)return null;const Y=await P.json();if(!Y.count)return null;const K=await(await fetch(`${O}&index=0`)).json();return{layerId:D,data:K,count:Y.count}}),C=(await Promise.all(E)).filter(Boolean);if(C.length===0){r.value=0;return}o.value=C.map(D=>D.data);const[L]=o.value;r.value=C.reduce((D,O)=>D+(O.count||0),0),c.value[0]=L;const j=((T=L==null?void 0:L.data)==null?void 0:T.geom_4326)??((I=L==null?void 0:L.data)==null?void 0:I.geom);await v(j)}catch(E){a.value=E.message}finally{l.value=!1}},_=async B=>{if(!p.value||!d.value.length)return;if(c.value[B]){o.value[B]=c.value[B];return}const{x:F,y:N}=p.value,w=d.value.join(","),S=`/api/map-info-point?x=${F}&y=${N}&index=${B}&layers=${w}`;try{l.value=!0;const T=await fetch(S);if(!T.ok)throw new Error("Failed to fetch feature by index");const I=await T.json();o.value[B]=I,c.value[B]=I}catch(T){a.value=T.message}finally{l.value=!1}},V=async()=>{i.value<r.value-1&&(i.value+=1,c.value[i.value]||await _(i.value))},A=async()=>{i.value>0&&(i.value-=1,c.value[i.value]||await _(i.value))},h=()=>{o.value=[],r.value=0,i.value=0,c.value={},p.value=null,d.value=[],y()};e.watch(i,async()=>{var F,N;const B=g.value;if(B){const w=((F=B==null?void 0:B.data)==null?void 0:F.geom_4326)??((N=B==null?void 0:B.data)==null?void 0:N.geom);await v(w)}});let $=null;return e.onMounted(async()=>{await n(),t.value&&($=async B=>{const{lng:F,lat:N}=B.lngLat,w=G(),T=Object.entries(w).map(([I,E])=>{var b,C,L,j;return{id:I,service:((b=E==null?void 0:E.opts)==null?void 0:b.service)??((L=(C=E==null?void 0:E.opts)==null?void 0:C.source)==null?void 0:L.service)??null,count:((j=E==null?void 0:E.opts)==null?void 0:j.count)??null,visible:(()=>{var D;try{return((D=t.value)==null?void 0:D.getLayer(I))?t.value.getLayoutProperty(I,"visibility")!=="none":!0}catch{return!0}})()}}).filter(I=>I.service==="ogc"&&I.visible).map(I=>I.id);T.length>0&&await k(F,N,T)},t.value.on("dblclick",$))}),e.onBeforeUnmount(()=>{t.value&&$&&t.value.off("dblclick",$),y()}),{features:o,count:r,index:i,current:g,loading:l,error:a,active:s,next:V,prev:A,close:h}}const $d=e.defineComponent({__name:"LayerSwitcher",props:{title:{},url:{},id:{},buttonText:{}},emits:["activate"],setup(t,{emit:n}){const o=t,r=n;function i(d){const g=d.normalize("NFKD").replace(/[\u0300-\u036f]/g,"").replace(/[^a-zA-Z0-9]+/g,"-").replace(/^-+|-+$/g,"").toLowerCase();if(g)return g;const s=Array.from(d).map(f=>f.charCodeAt(0).toString(16)).join("").slice(0,8);return s?`layer-${s}`:"layer-temp"}const l=e.computed(()=>{var d;return((d=o.id)==null?void 0:d.trim())||i(o.title)}),a=e.computed(()=>o.buttonText||"Показати шар");function c(){return{id:l.value,title:o.title,url:o.url}}function p(){r("activate",c())}return(d,g)=>(e.openBlock(),e.createElementBlock("button",{type:"button",class:"flex items-center justify-center bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded w-full",onClick:p},[e.renderSlot(d.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(a.value),1)])]))}}),ce=e.ref([]);function Ad(t,n){return typeof t!="string"?"":t.includes("{{")?t.replace(/\{\{\s*([a-zA-Z0-9_]+)\s*}}/g,(o,r)=>{const i=String(r||"").trim();if(!i)return"";const l=n[i];return l!=null?String(l):""}):t}function kt(t){return t==null?"":String(t).trim()}function bt(t){var n,o;(o=(n=t==null?void 0:t.handle)==null?void 0:n.remove)==null||o.call(n)}function Vn(t){function n(l,a={},c,p){var x,v;const d=kt(l==null?void 0:l.id),g=((x=l==null?void 0:l.title)==null?void 0:x.trim())||d,s=((v=l==null?void 0:l.url)==null?void 0:v.trim())||"";if(!d||!s)return;const f=Ad(s,a);if(!f)return;const y=p??t;if(!y)return;const u=ce.value.findIndex(k=>k.id===d);u!==-1&&(bt(ce.value[u]),ce.value.splice(u,1));let m=null;try{m=G(d,{source:{type:"raster",tiles:[f],tileSize:l.tileSize??256,minzoom:l.minzoom??0,maxzoom:l.maxzoom??19},layer:{id:d,type:"raster",source:d,paint:{"raster-opacity":l.opacity??.85}}},y)}catch(k){const _=(k==null?void 0:k.message)??"";if(!(typeof _=="string"&&_.includes("Map provider")))throw k;return}ce.value=[...ce.value,{id:d,title:g,originalUrl:s,resolvedUrl:f,owner:c??null,handle:m??null}]}function o(l,a){const c=kt(l);if(!c)return;const p=ce.value.findIndex(g=>g.id===c&&(!a||g.owner===a));if(p===-1)return;const[d]=ce.value.splice(p,1);bt(d)}function r(l){if(!ce.value.length)return;const a=[];ce.value.forEach(c=>{(l?c.owner===l:!0)?bt(c):a.push(c)}),ce.value=a}function i(l,a){const c=kt(l);return c?ce.value.some(p=>p.id===c&&(!a||p.owner===a)):!1}return{temporaryLayers:ce,activateTemporaryLayer:n,deactivateTemporaryLayer:o,clearTemporaryLayers:r,isTemporaryLayerActive:i}}const Sd={key:0,class:"card absolute top-4 right-11 z-30 w-[400px] max-h-[80%] overflow-hidden rounded-2xl border border-slate-200 bg-white/95 shadow-2xl backdrop-blur-md flex flex-col"},Ld={class:"flex items-start justify-between gap-3 border-b border-slate-200 px-4 py-3"},Fd={class:"min-w-0 flex-1"},Md={class:"text-base font-semibold text-slate-900 truncate"},Td={key:0,class:"flex gap-1 mt-1"},Id=["disabled"],Dd=["disabled"],jd={class:"flex-1 overflow-y-auto px-4 py-3 space-y-3 text-sm text-slate-700"},Od={key:0,class:"text-center text-xs text-slate-500"},zd={key:1,class:"text-center text-xs text-red-500"},Pd={key:2,class:"prose prose-sm max-w-none space-y-3"},Rd=["innerHTML"],Ud=["innerHTML"],qd={key:3,class:"space-y-2"},Yd={class:"text-xs font-semibold text-slate-500 uppercase tracking-wide"},Hd={key:0,class:"inline-block rounded px-2 py-0.5 text-xs font-semibold text-yellow-800",style:{"background-color":"rgba(250,204,21,0.25)"}},Wd={key:1,class:"text-sm text-right text-slate-800 whitespace-pre-wrap"},Kd={key:4,class:"text-center text-xs text-slate-400"},Zd="map:temporary-layer-request",$n=W(e.defineComponent({__name:"MapCardWidget",setup(t){const n=Cd(),o=Vd(),r=e.computed(()=>o.active.value),i=e.computed(()=>r.value||n.isOpen.value),l=e.computed(()=>r.value?o.loading.value:n.cardLoading.value),a=e.computed(()=>r.value?o.error.value:n.cardError.value),c=e.computed(()=>{var E,b;return r.value?((E=o.current.value)==null?void 0:E.html)||null:((b=n.card.value)==null?void 0:b.html)||null}),{isTemporaryLayerActive:p}=Vn();function d(E){window.dispatchEvent(new CustomEvent(Zd,{detail:E}))}const g=e.computed(()=>{var E;return((E=n.cardFeature.value)==null?void 0:E.source)??null}),s=e.computed(()=>g.value?`map-card:${g.value}`:"map-card"),f=e.ref(null),y=e.ref(null),u=new Map;function m(E){const b=E.normalize("NFKD").replace(/[\u0300-\u036f]/g,"").replace(/[^a-zA-Z0-9]+/g,"-").replace(/^-+|-+$/g,"").toLowerCase();if(b)return b;const C=Array.from(E).map(L=>L.charCodeAt(0).toString(16)).join("").slice(0,8);return C?`layer-${C}`:`layer-${Math.random().toString(36).slice(2,8)}`}function x(E){const b={},C=/([:@\w-]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>]+)))?/g;let L;for(;(L=C.exec(E))!==null;){const j=L[1],D=L[2]??L[3]??L[4]??"";j&&(b[j]=D)}return b}function v(E,b){for(const C of b)if(E[C]!=null&&String(E[C]).trim().length)return String(E[C]).trim();return""}function k(E){if(!(E!=null&&E.length))return;const b=Number(E);return Number.isFinite(b)?b:void 0}function _(E){if(typeof E!="string"||!E.length)return[];const b=[],C=/<LayerSwitcher\b([^>]*)>([\s\S]*?)<\/LayerSwitcher>/gi;let L=0,j;const D=new Set,O=P=>{let Y=P,J=2;for(;D.has(Y);)Y=`${P}-${J}`,J+=1;return D.add(Y),Y};for(;(j=C.exec(E))!==null;){const[P,Y="",J=""]=j,K=j.index;if(K>L){const Ne=E.slice(L,K);Ne.trim().length&&b.push({type:"html",content:Ne})}const X=x(Y),ae=v(X,["title"])||"Тимчасовий шар",de=v(X,["url"]);if(!de){b.push({type:"html",content:P}),L=K+P.length;continue}const be=v(X,["id"]),fe=v(X,["button-text","buttonText","show","show-label","showLabel"]),M=k(v(X,["tile-size","tileSize"])),U=k(v(X,["minzoom","minZoom"])),H=k(v(X,["maxzoom","maxZoom"])),Z=k(v(X,["opacity"])),q=be||m(`${ae}-${de}`)||m(ae),z=O(q||`layer-${b.length+1}`),ue=J.trim(),ge=/<[^>]+>/.test(ue),ye=ge?ue:null,pe=ge?null:ue,xe=fe&&fe.trim().length?fe.trim():pe&&pe.trim().length?pe.trim():void 0;b.push({type:"layer",spec:{id:z,title:ae,url:de,tileSize:M,minzoom:U,maxzoom:H,opacity:Z},componentProps:{title:ae,url:de,id:z,buttonText:xe},slotText:ye}),L=K+P.length}if(L<E.length){const P=E.slice(L);P.trim().length&&b.push({type:"html",content:P})}return!b.length&&E.trim().length&&b.push({type:"html",content:E}),b}const V=e.computed(()=>{if(r.value&&o.current.value){const L=o.current.value.data??{};return(o.current.value.fields??[]).map(D=>({key:D.name,label:D.label||D.title||D.name,value:L[D.name]??"—",format:D.format||"text"}))}const E=n.card.value;if(!E)return[];const b=E.rows??{};return(E.fields??[]).map(L=>({key:L.name,label:L.ua||L.label||L.title||L.name,value:b[L.name]??"—",format:L.format||"text"}))}),A=e.computed(()=>_(c.value)),h=e.computed(()=>A.value.filter(E=>E.type==="layer"));function $(){const E={},b=f.value;if(b&&typeof b=="object"&&Object.entries(b).forEach(([C,L])=>{typeof L=="string"&&(E[C]=L)}),g.value&&(E.layer=g.value),!E.geohub){const C=typeof(b==null?void 0:b.geohub)=="string"?b.geohub:null,L=typeof(b==null?void 0:b.geohub_key)=="string"?b.geohub_key:null,j=typeof(b==null?void 0:b.geohubId)=="string"?b.geohubId:null;E.geohub=C||L||j||E.layer||""}return E}async function B(){const E=g.value;if(!E)return f.value=null,y.value=null,null;if(y.value===E&&f.value)return f.value;if(u.has(E)){const b=u.get(E);return f.value=b,y.value=E,b}try{const b=await fetch(`/api/gis-service/${encodeURIComponent(E)}`);if(!b.ok)return null;const C=await b.json();return u.set(E,C),f.value=C,y.value=E,C}catch{return null}}async function F(E){if(!(E!=null&&E.id))return;await B();const b=$(),C=h.value.find(j=>j.spec.id===E.id),L=C==null?void 0:C.spec;L&&(p(L.id,s.value)||d({action:"activate",owner:s.value||void 0,spec:L,context:b}))}e.watch(g,(E,b)=>{E!==b&&(f.value=null,y.value=null)});const{next:N,prev:w,count:S,index:T}=o;function I(){n.close(),o.close()}return e.onBeforeUnmount(()=>{const E=s.value;d({action:"clear",owner:E||void 0})}),(E,b)=>(e.openBlock(),e.createBlock(e.Transition,{name:"fade"},{default:e.withCtx(()=>[i.value?(e.openBlock(),e.createElementBlock("div",Sd,[e.createElementVNode("div",Ld,[e.createElementVNode("div",Fd,[e.createElementVNode("p",Md,[r.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(" Об’єкт "+e.toDisplayString(e.unref(T)+1)+" / "+e.toDisplayString(e.unref(S)),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(" Інформація про об’єкт ")],64))])]),r.value&&e.unref(S)>1?(e.openBlock(),e.createElementBlock("div",Td,[e.createElementVNode("button",{onClick:b[0]||(b[0]=(...C)=>e.unref(w)&&e.unref(w)(...C)),disabled:e.unref(T)===0,class:"border p-1 rounded text-xs disabled:opacity-40"},[e.createVNode(e.unref(Rn),{class:"h-4 w-4"})],8,Id),e.createElementVNode("button",{onClick:b[1]||(b[1]=(...C)=>e.unref(N)&&e.unref(N)(...C)),disabled:e.unref(T)===e.unref(S)-1,class:"border p-1 rounded text-xs disabled:opacity-40"},[e.createVNode(e.unref(Un),{class:"h-4 w-4"})],8,Dd)])):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"inline-flex h-7 w-7 items-center justify-center rounded-full bg-slate-100 text-slate-500 hover:bg-slate-200 hover:text-slate-700 ml-1",onClick:I}," ✕ ")]),e.createElementVNode("div",jd,[l.value?(e.openBlock(),e.createElementBlock("div",Od," Завантаження даних… ")):a.value?(e.openBlock(),e.createElementBlock("div",zd,e.toDisplayString(a.value),1)):A.value.length?(e.openBlock(),e.createElementBlock("div",Pd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(A.value,(C,L)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:L},[C.type==="html"?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:C.content},null,8,Rd)):(e.openBlock(),e.createBlock($d,{key:1,title:C.componentProps.title,url:C.componentProps.url,id:C.componentProps.id,"button-text":C.componentProps.buttonText,onActivate:F},e.createSlots({_:2},[C.slotText?{name:"default",fn:e.withCtx(()=>[e.createElementVNode("span",{innerHTML:C.slotText},null,8,Ud)]),key:"0"}:void 0]),1032,["title","url","id","button-text"]))],64))),128))])):V.value.length?(e.openBlock(),e.createElementBlock("div",qd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V.value,C=>(e.openBlock(),e.createElementBlock("div",{key:C.key,class:"flex items-start justify-between gap-3 border-b border-slate-100 pb-2"},[e.createElementVNode("span",Yd,e.toDisplayString(C.label),1),C.format==="badge"?(e.openBlock(),e.createElementBlock("span",Hd,e.toDisplayString(C.value),1)):(e.openBlock(),e.createElementBlock("span",Wd,e.toDisplayString(C.value),1))]))),128))])):(e.openBlock(),e.createElementBlock("div",Kd," Даних не знайдено. "))])])):e.createCommentVNode("",!0)]),_:1}))}}),[["__scopeId","data-v-e51a6a31"]]),An=e.defineComponent({__name:"MapBoundaryLayer",props:{layerId:{},boundary:{},katottg:{},settingsMap:{}},setup(t){var f,y;const n=t,o=((y=(f=e.getCurrentInstance())==null?void 0:f.appContext.config.globalProperties)==null?void 0:y.$settings)||null,{map:r,ready:i}=se();let l=null;function a(){l==null||l.remove(),l=null}function c(u){if(!u)return null;if(typeof u=="string")try{u=JSON.parse(u)}catch{return null}return u.type==="FeatureCollection"?u:u.type==="Feature"?{type:"FeatureCollection",features:[u]}:u.type&&Array.isArray(u.coordinates)?{type:"FeatureCollection",features:[{type:"Feature",geometry:u,properties:{}}]}:Array.isArray(u.features)?{type:"FeatureCollection",features:u.features}:u.geometry?c(u.geometry):null}function p(u){var v,k,_;return{type:"line",color:"#8e4484",width:2,opacity:((((_=(k=(v=u==null?void 0:u.features)==null?void 0:v[0])==null?void 0:k.geometry)==null?void 0:_.type)||"").includes("Polygon"),.95)}}async function d(u){const m=await fetch(u);if(!m.ok)throw new Error(String(m.status));return m.json()}async function g(u,m){if(u){const x=/^https?:\/\//.test(u)?u:new URL(u,location.origin).toString(),v=await d(x).catch(()=>null),k=c(v);if(k)return k}if(m){const x=await d(`https://data.gki.com.ua/api-user/atu/${encodeURIComponent(m)}`).catch(()=>null),v=c(x);if(v)return v}return null}async function s(){var v,k,_,V;if(!n.layerId||!r.value){a();return}typeof i=="function"&&await i().catch(()=>{});const u=n.boundary??((v=n.settingsMap)==null?void 0:v.boundary)??((k=o==null?void 0:o.map)==null?void 0:k.boundary)??null,m=n.katottg??((_=n.settingsMap)==null?void 0:_.katottg)??((V=o==null?void 0:o.map)==null?void 0:V.katottg)??null;if(!u&&!m){a();return}const x=await g(u,m);if(!x){a();return}a(),l=G(`${n.layerId}-boundary`,{source:{type:"geojson",data:x},style:p(x)},r)}return e.watch(()=>{var u,m;return[n.layerId,n.boundary,n.katottg,(u=n.settingsMap)==null?void 0:u.boundary,(m=n.settingsMap)==null?void 0:m.katottg,r.value]},()=>{s()},{immediate:!0}),e.onBeforeUnmount(a),(u,m)=>null}}),Gd={class:"flex h-screen bg-gradient-to-br from-slate-50 to-white"},Xd={class:"flex-1 relative overflow-hidden"},Qd={class:"absolute top-0 left-0 w-full z-20"},Jd={class:"flex items-center justify-between bg-white/80 backdrop-blur border-b border-gray-200 px-6 py-3 shadow-sm gap-4"},eu={class:"flex items-center gap-3"},tu={class:"font-semibold text-lg text-gray-800 line-clamp-1"},nu={class:"text-xs text-gray-500 truncate"},ou=["title"],ru={class:"w-full h-full bg-gradient-to-br from-sky-50 via-white to-blue-50 flex items-center justify-center relative pt-[64px]"},lu={class:"relative w-full h-full"},iu={style:{top:"10px",left:"230px",position:"absolute","z-index":"1"}},au={class:"absolute top-4 left-4 z-20"},su={class:"absolute bottom-4 left-4 z-20"},cu={class:"w-[650px] bg-white border-l border-gray-100 flex flex-col overflow-hidden shadow-lg"},du={class:"flex-1 flex flex-col h-full"},uu={class:"px-3 pt-3 pb-2 border-b border-gray-100"},pu={class:"items-center justify-center text-muted-foreground grid w-full grid-cols-6 h-12 p-1 bg-gray-50 rounded-xl shadow-sm"},mu=["aria-selected","onClick"],fu={class:"leading-none"},gu={class:"flex flex-col flex-1 overflow-y-hidden p-3"},hu=e.defineComponent({__name:"service",setup(t){var B,F;const n=me.useRoute(),o=me.useRouter(),{id:r}=n.params,i=e.ref(null),l=e.ref({}),a=e.ref(null),c=((F=(B=e.getCurrentInstance())==null?void 0:B.appContext.config.globalProperties)==null?void 0:F.$settings)||null,p=e.ref(""),d=e.ref([]),g=e.ref([]),s=e.ref([]),f=e.ref("list"),y=e.ref(""),u=e.ref([]),m=e.computed(()=>{var N,w;return((N=a.value)==null?void 0:N.id)??((w=a.value)==null?void 0:w.service_id)??null}),x=e.computed(()=>{const N=(c==null?void 0:c.map)||null,w=(N==null?void 0:N.boundary)??null,S=(N==null?void 0:N.katottg)??null;return!w&&!S?null:{boundary:w,katottg:S}}),v=[{key:"style",label:"Style",icon:zi},{key:"popup",label:"Popup",icon:Qi},{key:"filter",label:"Filter",icon:na},{key:"legend",label:"Legend",icon:qi},{key:"card",label:"Card",icon:Ki}],k=v.map(N=>N.key),_=e.ref("style");e.onMounted(async()=>{const N=n.query.tab;N&&k.includes(N)&&(_.value=N),await V()}),e.watch(_,N=>{n.query.tab!==N&&o.replace({query:{...n.query,tab:N}})}),e.watch(()=>n.query.tab,N=>{N&&k.includes(N)&&_.value!==N&&(_.value=N)});const V=async()=>{try{const N=await fetch(`/api/gis-service/${r}`);if(!N.ok)throw new Error(`${N.status}`);const w=await N.json();l.value=w||{},i.value=r,a.value=w||null,p.value=w.style||"",g.value=(w==null?void 0:w.popup)||[],f.value=w.card_mode==="html"?"html":"list",s.value=w.card,y.value=w.html,d.value=(w==null?void 0:w.legend)||[],u.value=(w==null?void 0:w.filters)||[]}catch(N){console.error("Failed to fetch map info",N)}};e.watch(()=>{var N;return(N=a.value)==null?void 0:N.style},N=>{N?typeof N=="string"?p.value=N:p.value=JSON.parse(JSON.stringify(N)):p.value=""},{deep:!0});async function A(N,w){await h({[N]:w},N)}async function h(N,w){if(a.value={...a.value||{},...N},typeof N.html<"u"&&(l.value={...l.value||{},html:N.html}),!!m.value)try{if(!(await fetch(`/api/gis-service/${m.value}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(N)})).ok)throw new Error("Save failed");ne.notify({type:"success",title:"Успіх",message:`${w} saved`}),await V()}catch(S){ne.notify({type:"error",title:"Помилка",message:`Failed to save ${w}`}),console.error(S)}}async function $(N,w){if(N!=="card"){await A(N,w);return}const S=(w==null?void 0:w.card_mode)==="html"?"html":"list",T=S==="html"&&typeof(w==null?void 0:w.html)=="string"?w.html:"",I=(S==="html"?[]:null)||(Array.isArray(w==null?void 0:w.list)?w.list:[]);s.value=I,f.value=S,y.value=T;const E={card_mode:S};S==="html"&&(E.html=T),S==="list"&&(E.card=I),await h(E,"card")}return(N,w)=>{var S,T,I,E;return e.openBlock(),e.createElementBlock("div",Gd,[e.createElementVNode("div",Xd,[e.createElementVNode("div",Qd,[e.createElementVNode("div",Jd,[e.createElementVNode("div",eu,[e.createElementVNode("button",{onClick:w[0]||(w[0]=b=>N.$router.back()),class:"inline-flex items-center px-3 py-1.5 rounded-md bg-sky-100 hover:bg-sky-200 text-sky-700 font-medium text-sm transition"},[...w[10]||(w[10]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4 mr-1",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1),e.createTextVNode(" Назад ",-1)])]),e.createElementVNode("div",null,[e.createElementVNode("div",tu,e.toDisplayString((S=a.value)==null?void 0:S.name),1),e.createElementVNode("div",nu," Сервіс: "+e.toDisplayString((T=a.value)==null?void 0:T.service_key),1)])]),e.createElementVNode("div",{class:"max-w-xl text-xs text-gray-600 truncate",title:(I=a.value)==null?void 0:I.description},e.toDisplayString((E=a.value)==null?void 0:E.description),9,ou)])]),e.createElementVNode("div",ru,[e.createElementVNode("div",lu,[e.createVNode(vn,null,{default:e.withCtx(()=>{var b,C,L,j,D,O,P;return[(b=a.value)!=null&&b.service_id?(e.openBlock(),e.createBlock(sd,{key:0,id:(C=a.value)==null?void 0:C.service_id,layer:a.value,"style-yaml":p.value},null,8,["id","layer","style-yaml"])):e.createCommentVNode("",!0),m.value?(e.openBlock(),e.createBlock(An,{key:1,"layer-id":m.value,boundary:((L=a.value)==null?void 0:L.boundary)||((j=x.value)==null?void 0:j.boundary)||null,katottg:((D=a.value)==null?void 0:D.katottg)||((O=x.value)==null?void 0:O.katottg)||null},null,8,["layer-id","boundary","katottg"])):e.createCommentVNode("",!0),e.createElementVNode("div",iu,[m.value?(e.openBlock(),e.createBlock(ht,{key:0,"layer-id":m.value,filters:u.value},null,8,["layer-id","filters"])):e.createCommentVNode("",!0)]),e.createElementVNode("div",au,[e.createVNode(yt)]),e.createElementVNode("div",su,[e.createVNode(xt,{items:((P=a.value)==null?void 0:P.legend)||null},null,8,["items"])]),e.createVNode(Cn),e.createVNode($n,{html:l.value.html},null,8,["html"])]}),_:1})])])]),e.createElementVNode("div",cu,[e.createElementVNode("div",du,[e.createElementVNode("div",uu,[e.createElementVNode("div",pu,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(v,b=>e.createElementVNode("button",{key:b.key,type:"button",role:"tab","aria-selected":_.value===b.key,class:e.normalizeClass(["whitespace-nowrap flex flex-col items-center justify-center gap-0.5 py-1 px-1 text-[9px] font-medium transition-all duration-300 hover:bg-white/70 rounded-lg group",_.value===b.key?"bg-white shadow-sm text-gray-700":""]),onClick:C=>_.value=b.key},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(b.icon),{class:"h-3.5 w-3.5 mb-0.5"})),e.createElementVNode("span",fu,e.toDisplayString(b.label),1)],10,mu)),64))])]),e.createElementVNode("div",gu,[_.value==="style"?(e.openBlock(),e.createBlock(Mc,{key:0,token:m.value,"style-yaml":p.value,"onUpdate:styleYaml":w[1]||(w[1]=b=>p.value=b),onSave:w[2]||(w[2]=b=>A("style",b))},null,8,["token","style-yaml"])):_.value==="legend"?(e.openBlock(),e.createBlock(Xc,{key:1,token:m.value,columns:d.value,"onUpdate:columns":w[3]||(w[3]=b=>d.value=b),onSave:w[4]||(w[4]=b=>A("legend",b))},null,8,["token","columns"])):_.value==="popup"?(e.openBlock(),e.createBlock(Uc,{key:2,token:m.value,columns:g.value,fields:l.value.fields,"onUpdate:columns":w[5]||(w[5]=b=>g.value=b),onSave:w[6]||(w[6]=b=>A("popup",b))},null,8,["token","columns","fields"])):_.value==="card"?(e.openBlock(),e.createBlock(ld,{key:3,token:m.value,columns:s.value,fields:l.value.fields,"view-mode":f.value,html:y.value,"onUpdate:columns":w[7]||(w[7]=b=>s.value=b),onSave:$},null,8,["token","columns","fields","view-mode","html"])):_.value==="filter"?(e.openBlock(),e.createBlock(ad,{key:4,token:m.value,fields:l.value.fields,columns:u.value,"onUpdate:columns":w[8]||(w[8]=b=>u.value=b),onSave:w[9]||(w[9]=b=>A("filters",b))},null,8,["token","fields","columns"])):e.createCommentVNode("",!0)])])])])}}}),yu={class:"mapLayer-info__inner"},xu={class:"mapLayer-info__item-label"},_t=W(e.defineComponent({__name:"MapLayerInfoPopover",props:{items:{}},setup(t,{expose:n}){const o=t,r=e.reactive({open:!1,top:0,left:0,transform:"translateX(-50%)"}),i=e.ref(null),l=e.ref(null);let a=null;const c=e.computed(()=>r.open?{position:"absolute",width:"460px",top:`${r.top}px`,left:`${r.left}px`,transform:r.transform,display:"block"}:{display:"none"});function p(m){if(r.open){f();return}const x=m.currentTarget,v=x==null?void 0:x.closest(".mapLayer-info");if(!v){f();return}i.value=v,r.open=!0,e.nextTick(()=>{d(),y(),requestAnimationFrame(()=>{d()})})}function d(){var F,N;if(!r.open||!i.value)return;const m=i.value.getBoundingClientRect(),x=8,v=window.scrollX+x,k=window.scrollX+window.innerWidth-x,_=window.scrollY+x,V=window.scrollY+window.innerHeight-x,A=((F=l.value)==null?void 0:F.offsetWidth)||460,h=((N=l.value)==null?void 0:N.offsetHeight)||0;let $=m.left+window.scrollX+(m.width-A)/2;$<v&&($=v),$+A>k&&($=Math.max(v,k-A)),r.left=$;let B=m.bottom+window.scrollY+x;B+h>V&&(B=m.top+window.scrollY-h-x,B<_&&(B=Math.max(_,V-h))),r.top=B,r.transform="none"}function g(m){var v,k;if(!r.open)return;const x=m.target;(v=i.value)!=null&&v.contains(x)||(k=l.value)!=null&&k.contains(x)||f()}function s(m){m.key==="Escape"&&f()}function f(){u(),r.open=!1,i.value=null,l.value=null}function y(){u(),l.value&&(a=new ResizeObserver(()=>{d()}),a.observe(l.value))}function u(){a&&(a.disconnect(),a=null)}return e.onMounted(()=>{document.addEventListener("click",g,!0),document.addEventListener("keydown",s),window.addEventListener("scroll",d,!0),window.addEventListener("resize",d)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",g,!0),document.removeEventListener("keydown",s),window.removeEventListener("scroll",d,!0),window.removeEventListener("resize",d),u()}),e.watch(()=>o.items,()=>{r.open&&e.nextTick(()=>d())},{deep:!0}),n({close:f}),(m,x)=>(e.openBlock(),e.createElementBlock("div",{class:"mapLayer-info",ref_key:"anchorEl",ref:i},[e.createElementVNode("a",{class:"mapLayer-info__trigger",href:"#",onClick:e.withModifiers(p,["prevent","stop"])},[...x[1]||(x[1]=[e.createStaticVNode('<div class="mapLayer-info__icon" data-v-e7d532ad><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" data-v-e7d532ad><circle cx="12" cy="12" r="10" data-v-e7d532ad></circle><line x1="12" y1="16" x2="12" y2="12" data-v-e7d532ad></line><line x1="12" y1="8" x2="12.01" y2="8" data-v-e7d532ad></line></svg></div>',1)])]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[r.open?(e.openBlock(),e.createElementBlock("div",{key:0,class:"vst-popover__content inline-block z-50 py-3 px-4 bg-white text-sm text-gray-500 rounded-md shadow-lg bottom mapLayer-info__popover",style:e.normalizeStyle(c.value),ref_key:"popoverEl",ref:l,onClick:x[0]||(x[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",yu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,v=>(e.openBlock(),e.createElementBlock("div",{key:v.label,class:"mapLayer-info__item"},[e.createElementVNode("div",xu,e.toDisplayString(v.label),1),e.createElementVNode("div",{class:e.normalizeClass(["mapLayer-info__item-value",{"mapLayer-info__item-value--break-all":v.breakLine}])},e.toDisplayString(v.value??"—"),3)]))),128))])],4)):e.createCommentVNode("",!0)]))],512))}}),[["__scopeId","data-v-e7d532ad"]]),ku={key:0,class:"map-info__header"},bu={key:0,class:"map-info__title"},_u={class:"map-info__actions"},wu={key:0,class:"map-info__menu"},Eu=["onClick"],Bu=["innerHTML"],Sn=W(e.defineComponent({__name:"MapInfoWidget",props:{title:{},content:{},links:{},mapName:{},mapDescription:{}},setup(t){const n=t,o=e.ref(null),r=e.ref(!1),i=e.ref(null),l=e.ref({top:0,left:0}),a=me.useRouter(),c=e.computed(()=>Array.isArray(n.links)?n.links.filter(u=>(u==null?void 0:u.name)&&(u==null?void 0:u.slug)):[]),p=e.computed(()=>({top:`${l.value.top}px`,left:`${l.value.left}px`})),d=e.computed(()=>{const u=[];return n.mapName&&u.push({label:"Назва карти",value:n.mapName}),n.mapDescription&&u.push({label:"Опис",value:n.mapDescription,breakLine:!0}),u});function g(u){u.stopPropagation(),r.value=!r.value}function s(){const u=i.value;if(!u)return;const{bottom:m,left:x}=u.getBoundingClientRect();l.value={top:m+window.scrollY+8,left:x+window.scrollX}}function f(u){if(!r.value)return;const m=o.value;if(!m){r.value=!1;return}m.contains(u.target)||(r.value=!1)}e.onMounted(()=>{document.addEventListener("click",f,!0)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",f,!0),window.removeEventListener("scroll",s,!0),window.removeEventListener("resize",s)}),e.watch(r,u=>{u?e.nextTick(()=>{s(),window.addEventListener("scroll",s,!0),window.addEventListener("resize",s)}):(window.removeEventListener("scroll",s,!0),window.removeEventListener("resize",s))});function y(u){r.value=!1,a.push(`/maps/${u}`)}return(u,m)=>(e.openBlock(),e.createElementBlock("div",{class:"map-info legend-widget flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative widget",ref_key:"container",ref:o},[t.title||c.value.length||d.value.length?(e.openBlock(),e.createElementBlock("div",ku,[t.title?(e.openBlock(),e.createElementBlock("h2",bu,e.toDisplayString(t.title),1)):e.createCommentVNode("",!0),e.createElementVNode("div",_u,[c.value.length?(e.openBlock(),e.createElementBlock("div",wu,[e.createElementVNode("button",{ref_key:"menuButton",ref:i,type:"button",class:"map-info__menu-button",onClick:g,"aria-label":"Показати посилання"},[...m[1]||(m[1]=[e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[e.createElementVNode("path",{d:"M4 12H20",stroke:"#000000","stroke-linecap":"round","stroke-linejoin":"round"}),e.createElementVNode("path",{d:"M4 6H20",stroke:"#000000","stroke-linecap":"round","stroke-linejoin":"round"}),e.createElementVNode("path",{d:"M4 18H20",stroke:"#000000","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],512),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[r.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"vsTailwind vs-popover__content right map-info__popover",style:e.normalizeStyle(p.value),onClick:m[0]||(m[0]=e.withModifiers(()=>{},["stop"]))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,x=>(e.openBlock(),e.createElementBlock("button",{key:x.slug||x.name,type:"button",class:"map-info__popover-link",onClick:v=>y(x.slug)},e.toDisplayString(x.name),9,Eu))),128))],4)):e.createCommentVNode("",!0)]))])):e.createCommentVNode("",!0),d.value.length?(e.openBlock(),e.createBlock(_t,{key:1,items:d.value},null,8,["items"])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),t.content?(e.openBlock(),e.createElementBlock("div",{key:1,class:"map-info__content",innerHTML:t.content},null,8,Bu)):e.createCommentVNode("",!0)],512))}}),[["__scopeId","data-v-2b3e43a7"]]),Nu={class:"opacity-popover__content"},vu={class:"opacity-popover__value"},Ln=W(e.defineComponent({__name:"LayerOpacityPopover",props:{layerId:{}},setup(t){const n=t,o=e.ref(!1),r=e.ref(100),i=e.ref(null),l=e.ref(null),a=e.reactive({top:0,left:0});function c(){var y;const s=(y=l.value)==null?void 0:y.querySelector("button");if(!s)return;const f=s.getBoundingClientRect();a.top=f.bottom+8+window.scrollY,a.left=f.left+window.scrollX}function p(){o.value=!o.value,o.value&&e.nextTick(c)}function d(){var u;const s=G(n.layerId),f=(r.value??100)/100,y=(u=s==null?void 0:s.getLayer)==null?void 0:u.call(s);if(y)switch(y.type){case"raster":s.updatePaint({"raster-opacity":f});break;case"fill":s.updatePaint({"fill-opacity":f});break;case"line":s.updatePaint({"line-opacity":f});break;case"circle":s.updatePaint({"circle-opacity":f});break;case"symbol":s.updatePaint({"icon-opacity":f});break}}function g(s){var y,u;if(!o.value)return;const f=s.target;(y=i.value)!=null&&y.contains(f)||(u=l.value)!=null&&u.contains(f)||(o.value=!1)}return e.onMounted(()=>{document.addEventListener("click",g),window.addEventListener("scroll",c,!0),window.addEventListener("resize",c)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",g),window.removeEventListener("scroll",c,!0),window.removeEventListener("resize",c)}),(s,f)=>(e.openBlock(),e.createElementBlock("div",{class:"opacity-wrapper",ref_key:"wrapper",ref:l},[e.renderSlot(s.$slots,"trigger",{toggle:p,opacity:r.value},()=>[e.createElementVNode("button",{type:"button",class:"opacity-btn",onClick:e.withModifiers(p,["stop"])},e.toDisplayString(r.value)+"% ",1)],!0),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[o.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"popoverEl",ref:i,class:"opacity-popover",style:e.normalizeStyle({top:a.top+"px",left:a.left+"px"})},[e.createElementVNode("div",Nu,[f[1]||(f[1]=e.createElementVNode("label",{class:"opacity-popover__label"},"Прозорість:",-1)),e.withDirectives(e.createElementVNode("input",{type:"range",min:"0",max:"100",step:"1","onUpdate:modelValue":f[0]||(f[0]=y=>r.value=y),class:"opacity-popover__range",onInput:d},null,544),[[e.vModelText,r.value]]),e.createElementVNode("span",vu,e.toDisplayString(r.value)+"%",1)])],4)):e.createCommentVNode("",!0)]))],512))}}),[["__scopeId","data-v-b2bb0bb0"]]),Cu={class:"layers-panel"},Vu={class:"layers-panel__header"},$u={class:"layers-panel__heading"},Au={class:"layers-panel__title"},Su={key:0,class:"layers-panel__description"},Lu={class:"layers-panel__label"},Fu=["checked","onChange"],Mu={class:"layers-panel__name"},Tu={class:"layers-panel__meta text-slate-500"},Iu=["onClick"],Du={class:"inline-flex items-center justify-center w-[18px] h-[18px] text-slate-500 transition-colors duration-200 hover:text-blue-700"},ju={key:0,class:"layers-panel__actions"},Ou=["innerHTML","onClick"],Fn="map:temporary-layer-request",Mn=W(e.defineComponent({__name:"MapDataLayersWidget",props:{layers:{},config:{}},emits:["action"],setup(t,{emit:n}){const o=t,r=e.ref({}),i=se(),{temporaryLayers:l,activateTemporaryLayer:a,deactivateTemporaryLayer:c,clearTemporaryLayers:p}=Vn(i.map),d=e.computed(()=>{const h=o.layers.map(B=>({...B,isTemporary:!1,owner:null,visible:B.visible!==!1})),$=l.value.map(B=>({id:B.id,name:B.title,visible:r.value[B.id]??!0,actions:[],filters:null,isTemporary:!0,owner:B.owner??null,handle:B.handle??null,card:B.card??null,popup:B.popup??null,style:B.style??null,group_name:null,count:null,holder:null}));return[...h,...$]}),g=e.computed(()=>l.value.length>0),s=n;function f(){var h;for(let $=0;$<o.layers.length;$++){const B=o.layers[$],F=y(B);if(!F)continue;const N=G(B.id,F),w=B.visible!==!1;r.value[B.id]=w,w||(h=N==null?void 0:N.setVisible)==null||h.call(N,!1)}}function y(h){const $=h.id;if(!$)return null;const B=(h.service||h.service_type||h.type||"").toString().toLowerCase(),F=h.service_url||h.url||null;if(!!F&&(B==="tms"||B==="wmts"||B==="wms"||B==="ogc")){const S=u(F);return S?{sourceId:$,source:{type:"raster",tiles:[S],tileSize:h.tileSize||256,minzoom:h.minzoom??0,maxzoom:h.maxzoom??22,scheme:h.scheme||"xyz"},layer:{id:$,type:"raster",source:$},card:h.card,popup:h.popup}:null}const w=`${location.origin}/api/vtile/${$}/ua/{z}/{x}/{y}.vmt`;return{sourceId:$,source:{type:"vector",tiles:[w],minZoom:4,maxZoom:14},layer:{id:$,source:$,"source-layer":$,style:h.style},card:h.card,popup:h.popup}}function u(h){return h?/^https?:\/\//i.test(h)?h:h.startsWith("//")?`${window.location.protocol}${h}`:h.startsWith("/")?`${location.origin}${h}`:`${location.origin}/${h}`:null}function m(h){const $=r.value[h];return $??!0}function x(h){var F,N;if(!(h!=null&&h.id))return null;const $=(F=h.title)==null?void 0:F.trim(),B=(N=h.url)==null?void 0:N.trim();return!$||!B?null:{id:h.id,title:$,url:B,tileSize:h.tileSize,minzoom:h.minzoom,maxzoom:h.maxzoom,opacity:h.opacity}}function v(h){if(!h)return;const $=h.owner;if(h.action==="clear"){const F=l.value.filter(N=>!$||N.owner===$).map(N=>N.id);p($),F.forEach(N=>{N in r.value&&delete r.value[N]});return}const B=x(h.spec);if(B){if(h.action==="activate"){a(B,h.context||{},$),r.value[B.id]=!0;return}h.action==="deactivate"&&(c(B.id,$),delete r.value[B.id])}}function k(h){h instanceof CustomEvent&&v(h.detail)}e.watch(()=>l.value.map(h=>h.id),(h,$)=>{const B=new Set($||[]),F=new Set(h);h.forEach(N=>{N in r.value||(r.value[N]=!0)}),B.forEach(N=>{F.has(N)||delete r.value[N]})},{immediate:!0}),e.onMounted(()=>{f(),window.addEventListener(Fn,k)}),e.onBeforeUnmount(()=>{window.removeEventListener(Fn,k)});function _(h,$){var w,S,T;const F=$.target.checked;if(r.value[h.id]=F,h.isTemporary){if(!F){c(h.id,h.owner||void 0),delete r.value[h.id];return}const I=h.handle||((w=l.value.find(E=>E.id===h.id))==null?void 0:w.handle);(S=I==null?void 0:I.setVisible)==null||S.call(I,!0);return}const N=G(h.id);(T=N==null?void 0:N.setVisible)==null||T.call(N,F)}function V(h){return h.isTemporary?[{label:"Назва",value:h.name??null},{label:"Тип",value:"Тимчасовий шар"},h.owner?{label:"Джерело",value:h.owner}:null].filter(Boolean):[{label:"Назва",value:h.name??null},{label:"Назва групи",value:h.group_name||null},{label:"Кількість",value:h.count??null},{label:"Балансоутримувач",value:h.holder??null}]}function A(){if(!l.value.length)return;const h=l.value.map($=>$.id);p(),h.forEach($=>delete r.value[$])}return(h,$)=>{var B,F;return e.openBlock(),e.createElementBlock("div",Cu,[e.createElementVNode("div",Vu,[e.createElementVNode("div",$u,[e.createElementVNode("h2",Au,e.toDisplayString(((B=t.config)==null?void 0:B.title)||"Шари"),1),(F=t.config)!=null&&F.description?(e.openBlock(),e.createElementBlock("div",Su,[e.createElementVNode("p",null,e.toDisplayString(t.config.description),1)])):e.createCommentVNode("",!0)]),g.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"layers-panel__clear",onClick:A}," Очистити тимчасові шари ")):e.createCommentVNode("",!0)]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,N=>{var w;return e.openBlock(),e.createElementBlock("div",{key:N.id,class:"layers-panel__item"},[e.createElementVNode("label",Lu,[e.createElementVNode("input",{type:"checkbox",class:"layers-panel__checkbox",checked:m(N.id),onChange:S=>_(N,S)},null,40,Fu),e.createElementVNode("span",Mu,e.toDisplayString(N.name),1),e.createElementVNode("div",Tu,[m(N.id)&&!N.isTemporary?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(Ln,{"layer-id":N.id,class:"flex"},{trigger:e.withCtx(({toggle:S})=>[e.createElementVNode("button",{class:"inline-flex items-center justify-center p-0 text-inherit no-underline cursor-pointer",onClick:e.withModifiers(S,["prevent","stop"])},[e.createElementVNode("div",Du,[e.createVNode(e.unref(Yn))])],8,Iu)]),_:1},8,["layer-id"]),e.createVNode(Qe,{count:Array.isArray(N.filters)?N.filters.length:0,layer:N},null,8,["count","layer"])],64)):e.createCommentVNode("",!0),e.createVNode(_t,{items:V(N)},null,8,["items"])])]),(w=N.actions)!=null&&w.length?(e.openBlock(),e.createElementBlock("div",ju,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.actions,S=>(e.openBlock(),e.createElementBlock("button",{key:S.widget||S.id||S.icon,type:"button",class:"layers-panel__action",innerHTML:S.icon,onClick:T=>s("action",{layerId:S.widget})},null,8,Ou))),128))])):e.createCommentVNode("",!0)])}),128))])}}}),[["__scopeId","data-v-108d6706"]]),zu={class:"catalog-tab__search relative mt-[10px]"},Pu={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"absolute top-[40%] left-[8px] w-[16px] h-[16px]",style:{transform:"translate(0, -50%)"}},Ru={key:0,class:"text-sm text-gray-400 text-center mt-6"},Uu=["onClick"],qu={class:"flex items-center gap-x-3"},Yu={class:"max-w-[260px] text-[14px] text-[#4b5563]"},Hu={class:"text-xs opacity-60 text-[#4b5563]"},Wu={class:"flex items-center cursor-pointer gap-2 flex-1"},Ku=["checked","onChange"],Zu={class:"text-[13px] text-gray-600 truncate max-w-[260px]"},Gu={class:"flex items-center gap-2"},Xu=W(e.defineComponent({__name:"LayersCatalogTab",props:{catalog:{},selected:{},search:{}},emits:["toggle-layer","update:search","open-filter"],setup(t,{emit:n}){const o=t,r=n,i=e.reactive({}),l=e.ref(null),a=e.reactive({visible:!1,text:"Спочатку активуйте шар, щоб застосувати фільтр",top:0,left:0,layerId:null}),c=e.computed(()=>{const x=o.search.trim().toLowerCase();return o.catalog.groups.map(v=>{const k=x?v.layers.filter(_=>(typeof _.name=="string"?_.name:"").toLowerCase().includes(x)):v.layers;return{...v,layers:k}}).filter(v=>v.layers.length>0)}),p=e.computed({get:()=>o.search,set:x=>r("update:search",x)});function d(x){i[x]=!i[x],cd()}function g(x){return!!i[x]}function s(x,v){if(o.selected.includes(v)){a.visible=!1,a.layerId=null;return}const k=x.currentTarget;if(!k)return;const _=k.getBoundingClientRect(),V=typeof window<"u"?window.scrollX:0,A=typeof window<"u"?window.scrollY:0;a.left=_.left+_.width/2+V,a.top=_.bottom+8+A,a.layerId=v,a.visible=!0}function f(){a.visible=!1,a.layerId=null}function y(x){return[{label:"Назва",value:u(x.name)},{label:"Сервіс",value:u(x.service)},{label:"Посилання",value:u(x.url),breakLine:!0},{label:"Джерело",value:u(x.source_path),breakLine:!0},{label:"Popup",value:m(x.popup,"полів")},{label:"Картка",value:m(x.card,"полів")},{label:"Фільтри",value:m(x.filters,"фільтрів")}]}function u(x){return x==null||x===""?null:String(x)}function m(x,v){return!Array.isArray(x)||x.length===0?null:`${x.length} ${v}`}return e.watch(()=>o.selected?o.selected.slice():[],x=>{!a.visible||!a.layerId||x.includes(a.layerId)&&(a.visible=!1,a.layerId=null)}),(x,v)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"catalogRef",ref:l,class:"catalog-tab"},[e.createElementVNode("div",zu,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":v[0]||(v[0]=k=>p.value=k),type:"text",placeholder:"Введіть назву шару...",class:"py-[7px] pl-8 pe-8 block w-full bg-gray-100 border-transparent rounded-lg text-sm focus:bg-white focus:border-blue-500 focus:ring-blue-500"},null,512),[[e.vModelText,p.value]]),(e.openBlock(),e.createElementBlock("svg",Pu,[...v[1]||(v[1]=[e.createElementVNode("path",{d:"M11 19C15.4183 19 19 15.4183 19 11C19 6.5817 15.4183 3 11 3C6.5817 3 3 6.5817 3 11C3 15.4183 6.5817 19 11 19Z",stroke:"black","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),e.createElementVNode("path",{d:"M21 21L16.7 16.7",stroke:"black","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])]))]),c.value.length===0?(e.openBlock(),e.createElementBlock("div",Ru," Нічого не знайдено ")):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,k=>(e.openBlock(),e.createElementBlock("div",{key:k.id,class:"mt-2"},[e.createElementVNode("div",{class:"hover:bg-gray-100 cursor-pointer p-[8px] rounded-lg flex justify-between items-center",onClick:_=>d(k.id)},[e.createElementVNode("div",qu,[(e.openBlock(),e.createElementBlock("svg",{width:"6",height:"10",viewBox:"0 0 6 10",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:e.normalizeClass(["transition-transform",g(k.id)?"rotate-90":""])},[...v[2]||(v[2]=[e.createElementVNode("path",{d:"M1 9L5 5L1 1",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])],2)),e.createElementVNode("div",Yu,e.toDisplayString(k.name),1)]),e.createElementVNode("div",Hu,e.toDisplayString(k.layers.length),1)],8,Uu),e.createVNode(e.Transition,{name:"out-in"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.layers,_=>(e.openBlock(),e.createElementBlock("div",{key:_.id,class:"hover:bg-gray-100 rounded-lg flex items-center justify-between ml-[20px] py-[8px] px-[8px] gap-3"},[e.createElementVNode("label",Wu,[e.createElementVNode("input",{type:"checkbox",class:"peer hidden",checked:t.selected.includes(_.id),onChange:V=>x.$emit("toggle-layer",_.id,V.target.checked,_)},null,40,Ku),v[3]||(v[3]=e.createElementVNode("div",{class:"w-4 h-4 rounded border border-blue-800 flex items-center justify-center peer-checked:bg-blue-600 peer-checked:border-blue-600"},[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"8",viewBox:"0 0 12 8",fill:"none"},[e.createElementVNode("path",{d:"M10.6663 1L4.24967 7.41667L1.33301 4.5",stroke:"#fff","stroke-linecap":"round","stroke-linejoin":"round"})])],-1)),e.createElementVNode("span",Zu,e.toDisplayString(_.name),1)]),e.createElementVNode("div",Gu,[Array.isArray(_.filters)&&_.filters.length?(e.openBlock(),e.createBlock(Qe,{key:0,count:_.filters.length,layer:_,disabled:!t.selected.includes(_.id),onMouseenter:V=>s(V,_.id),onMouseleave:f,onFocus:V=>s(V,_.id),onBlur:f},null,8,["count","layer","disabled","onMouseenter","onFocus"])):e.createCommentVNode("",!0),e.createVNode(_t,{items:y(_)},null,8,["items"])])]))),128))],512),[[e.vShow,g(k.id)]])]),_:2},1024)]))),128)),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[a.visible?(e.openBlock(),e.createElementBlock("div",{key:0,class:"filter-badge__hint",style:e.normalizeStyle({top:`${a.top}px`,left:`${a.left}px`})},e.toDisplayString(a.text),5)):e.createCommentVNode("",!0)]))],512))}}),[["__scopeId","data-v-1df2b104"]]),Qu={class:"selected-tab"},Ju={class:"selected-tab__actions"},ep={key:0,class:"selected-tab__scroll"},tp=["onDragstart","onDragover","onDrop"],np={class:"selected-tab__item-header"},op={class:"selected-tab__item-info"},rp=["checked","onChange"],lp={class:"selected-tab__item-name"},ip={class:"selected-tab__item-controls"},ap=["onClick"],sp={class:"selected-tab__menu-inner"},cp=W(e.defineComponent({__name:"LayersSelectedTab",props:{catalog:{},selected:{}},emits:["select-layer","reorder","remove","toggle-layer"],setup(t,{emit:n}){const o=t,r=n,i=e.reactive({}),l=e.ref(null),a=e.ref(null),c=new Map,p=e.reactive({top:0,left:0}),d=e.ref(null),g=e.reactive({top:0,left:0}),s=e.ref(null),f=new Map,y=e.reactive({});function u(I){var E;for(const b of((E=o.catalog)==null?void 0:E.groups)??[]){const C=b.layers.find(L=>L.id===I);if(C)return C}return null}e.watch(()=>o.selected,I=>{I.forEach(E=>{i[E]==null&&(i[E]=100)})},{immediate:!0});function m(){if(!l.value)return;const I=c.get(l.value);if(!I)return;const E=I.getBoundingClientRect();p.top=E.bottom+8+window.scrollY,p.left=E.left+window.scrollX}e.watch(()=>o.selected,I=>{I.forEach(E=>{y[E]==null&&(y[E]=!0)})},{immediate:!0});function x(I,E){y[I]=E;const b=G(I);b&&b.setVisible(E);const C=u(I);r("toggle-layer",I,E,C)}function v(I,E){E?f.set(I,E):f.delete(I)}function k(I){d.value=d.value===I?null:I,d.value&&e.nextTick(()=>_(I))}function _(I){const E=f.get(I);if(!E)return;const b=E.getBoundingClientRect();g.top=b.bottom+6+window.scrollY,g.left=b.left+window.scrollX}function V(I){const E=G(I);E&&E.remove(),r("remove",I),d.value=null}function A(I){const E=I.target,b=l.value,C=d.value;if(b){const L=a.value,j=c.get(b);if(L&&L.contains(E)||j&&j.contains(E))return;l.value=null}if(C){const L=s.value,j=f.get(C);if(L&&L.contains(E)||j&&j.contains(E))return;d.value=null}}function h(){l.value&&m(),d.value&&_(d.value)}e.onMounted(()=>{document.addEventListener("click",A),window.addEventListener("resize",h),window.addEventListener("scroll",h,!0)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",A),window.removeEventListener("resize",h),window.removeEventListener("scroll",h,!0)});const{map:$}=se();function B(I){var L,j,D;if(!I)return;const E=G(I),b=u(I);if(!E&&!b)return;if(((L=b==null?void 0:b.extent)==null?void 0:L.length)===4&&((j=$.value)!=null&&j.fitBounds)){const O=b.extent.map(P=>Number(P));if(O.every(P=>Number.isFinite(P))){const[P,Y,J,K]=O;$.value.fitBounds([[P,Y],[J,K]],{padding:40}),d.value=null;return}}(D=E==null?void 0:E.getSource)!=null&&D.call(E)&&(d.value=null)}const F=e.ref(null),N=e.ref(null);function w(I){F.value=I}function S(I){N.value=I}function T(I){if(F.value===null||F.value===I){F.value=null,N.value=null;return}const E=[...o.selected],[b]=E.splice(F.value,1);E.splice(I,0,b),r("reorder",E),F.value=null,N.value=null}return(I,E)=>(e.openBlock(),e.createElementBlock("div",Qu,[e.createElementVNode("div",Ju,[e.createElementVNode("button",{class:"selected-tab__add",onClick:E[0]||(E[0]=b=>r("select-layer"))},[...E[3]||(E[3]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-plus"},[e.createElementVNode("path",{d:"M5 12h14"}),e.createElementVNode("path",{d:"M12 5v14"})],-1),e.createElementVNode("span",null,"Вибрати шар",-1)])])]),t.selected.length?(e.openBlock(),e.createElementBlock("div",ep,[e.createElementVNode("div",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.selected,(b,C)=>{var L;return e.openBlock(),e.createElementBlock("div",{key:b,class:e.normalizeClass(["selected-tab__item",{"selected-tab__item--dragging":F.value===C,"selected-tab__item--over":N.value===C}]),draggable:"true",onDragstart:j=>w(C),onDragover:e.withModifiers(j=>S(C),["prevent"]),onDrop:j=>T(C)},[e.createElementVNode("div",np,[e.createElementVNode("div",op,[E[4]||(E[4]=e.createElementVNode("span",{class:"selected-tab__item-handle"},"☰",-1)),e.createElementVNode("input",{type:"checkbox",class:"selected-tab__item-checkbox",checked:y[b]??!0,onChange:j=>x(b,j.target.checked)},null,40,rp),e.createElementVNode("span",lp,e.toDisplayString(((L=u(b))==null?void 0:L.name)||"Шар"),1)]),e.createElementVNode("div",ip,[e.createVNode(Ln,{"layer-id":b},null,8,["layer-id"]),e.createElementVNode("button",{type:"button",class:"selected-tab__item-menu",ref_for:!0,ref:j=>v(b,j),onClick:e.withModifiers(j=>k(b),["stop"])},[...E[5]||(E[5]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-more-vertical"},[e.createElementVNode("circle",{cx:"12",cy:"12",r:"1"}),e.createElementVNode("circle",{cx:"12",cy:"5",r:"1"}),e.createElementVNode("circle",{cx:"12",cy:"19",r:"1"})],-1)])],8,ap)])])],42,tp)}),128))])])):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[d.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"menuEl",ref:s,class:"selected-tab__menu",style:e.normalizeStyle({top:g.top+"px",left:g.left+"px"})},[e.createElementVNode("div",sp,[e.createElementVNode("button",{class:"selected-tab__menu-item",onClick:E[1]||(E[1]=b=>B(d.value))},[...E[6]||(E[6]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-zoom-in"},[e.createElementVNode("circle",{cx:"11",cy:"11",r:"8"}),e.createElementVNode("line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65"}),e.createElementVNode("line",{x1:"11",x2:"11",y1:"8",y2:"14"}),e.createElementVNode("line",{x1:"8",x2:"14",y1:"11",y2:"11"})],-1),e.createTextVNode(" Збільшити до шару ",-1)])]),E[8]||(E[8]=e.createElementVNode("button",{disabled:"",class:"selected-tab__menu-item selected-tab__menu-item--disabled"},[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-info"},[e.createElementVNode("circle",{cx:"12",cy:"12",r:"10"}),e.createElementVNode("path",{d:"M12 16v-4"}),e.createElementVNode("path",{d:"M12 8h.01"})]),e.createTextVNode(" Інформація про шар ")],-1)),E[9]||(E[9]=e.createElementVNode("button",{disabled:"",class:"selected-tab__menu-item selected-tab__menu-item--disabled"},[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-table"},[e.createElementVNode("path",{d:"M12 3v18"}),e.createElementVNode("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"}),e.createElementVNode("path",{d:"M3 9h18"}),e.createElementVNode("path",{d:"M3 15h18"})]),e.createTextVNode(" Таблиця шару ")],-1)),E[10]||(E[10]=e.createElementVNode("hr",null,null,-1)),e.createElementVNode("button",{class:"selected-tab__menu-item selected-tab__menu-item--danger",onClick:E[2]||(E[2]=b=>V(d.value))},[...E[7]||(E[7]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-trash2"},[e.createElementVNode("path",{d:"M3 6h18"}),e.createElementVNode("path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"}),e.createElementVNode("path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"}),e.createElementVNode("line",{x1:"10",x2:"10",y1:"11",y2:"17"}),e.createElementVNode("line",{x1:"14",x2:"14",y1:"11",y2:"17"})],-1),e.createTextVNode(" Видалити шар ",-1)])])])],4)):e.createCommentVNode("",!0)]))]))}}),[["__scopeId","data-v-e336e847"]]),dp={class:"filter-tab"},up={key:0,class:"filter-tab__header"},pp={class:"filter-tab__title"},mp={key:1,class:"filter-tab__content rounded-md"},fp={class:"filter-tab__scroll"},gp={key:2,class:"filter-tab__empty"},hp=W(e.defineComponent({__name:"LayersFilterTab",props:{layer:{},value:{}},emits:["change"],setup(t,{emit:n}){const o=e.defineAsyncComponent(()=>import("@opengis/filter")),r=t,i=n,l=e.computed(()=>{var p;return((p=r.layer)==null?void 0:p.filters)??[]}),a=e.computed(()=>l.value.length>0);function c(p){i("change",p.data)}return(p,d)=>(e.openBlock(),e.createElementBlock("div",dp,[t.layer&&a.value?(e.openBlock(),e.createElementBlock("div",up,[e.createElementVNode("div",null,[e.createElementVNode("p",pp,e.toDisplayString(t.layer.name),1)])])):e.createCommentVNode("",!0),t.layer&&a.value?(e.openBlock(),e.createElementBlock("div",mp,[e.createElementVNode("div",fp,[e.createVNode(e.unref(o),{view:"vertical",schema:l.value,value:t.value,limit:5,class:"rounded-md pb-0",onChange:d[0]||(d[0]=g=>c(g))},null,8,["schema","value"])])])):(e.openBlock(),e.createElementBlock("div",gp,[...d[1]||(d[1]=[e.createElementVNode("p",{class:"filter-tab__empty-title"},"Немає доступних фільтрів",-1),e.createElementVNode("p",{class:"filter-tab__empty-text"}," Оберіть шар із фільтрами у каталозі, щоб налаштувати відбір даних. ",-1)])]))]))}}),[["__scopeId","data-v-c6632fbd"]]),yp={class:"map-catalog-widget w-full max-w-md mx-auto p-4 bg-white border border-gray-200 rounded-lg shadow-sm widget"},xp={class:"flex items-center justify-between mb-4"},kp={class:"flex items-center gap-2"},bp={class:"text-lg font-semibold text-gray-800"},_p={key:0},wp={key:1,class:"block text-sm font-normal text-gray-500"},Ep={class:"flex mb-4 border-b border-gray-200"},Bp={class:"map-catalog-widget__body"},Tn=W(e.defineComponent({__name:"MapCatalogWidget",setup(t){const n=e.ref("catalog"),o=e.ref({groups:[]}),r=e.ref([]),i=e.ref(""),{map:l}=se(),a=me.useRoute(),c=me.useRouter(),p=e.reactive({}),d=e.ref(null);function g(w){return o.value.groups.map(S=>S.layers.find(T=>T.id===w)).find(Boolean)||null}function s(){const w=d.value;if(!w)return;delete p[w];const S=G(w);S!=null&&S.setFilter&&S.setFilter("")}function f(w,S){const T=G(w);if(p[w]={...S},!(T!=null&&T.setFilter))return;const I=Object.entries(S).filter(([,E])=>E!=null&&E!=="").map(([E,b])=>`${E}=${b}`);T.setFilter(I.join("|"))}function y(w){const S=d.value;S&&f(S,w)}function u(w){const S=w.url;let T=null;if(S&&(T=S.startsWith("http")?S:`${window.location.origin}${S}`),!T)return null;const I=(w.service||"").toString().toLowerCase(),E=w.count??null;return I&&I!=="vtile"?{service:I,count:E,source:{type:"raster",tiles:[T],tileSize:256,minzoom:0,maxzoom:20}}:{service:I,count:E,source:{type:"vector",tiles:[T],minzoom:0,maxzoom:14},layer:{style:w.style},card:w.card,popup:w.popup}}function m(w,S,T){var C;const I=T??g(w);if(!I)return;const E=u(I);if(!E)return;const b=G(I.id,E,l);if(b)if(b.setVisible(S),S){if(!r.value.includes(w)&&(r.value.push(w),(C=l.value)!=null&&C.getLayer(w)))try{l.value.moveLayer(w)}catch(L){console.warn("Cannot move new layer",w,L)}}else r.value=r.value.filter(L=>L!==w),d.value===w&&(s(),d.value=null)}function x(){r.value.forEach(w=>{const S=G(w);S&&S.setVisible(!1)}),r.value=[]}function v(w){r.value=w,e.nextTick(()=>{var S;for(let T=w.length-1;T>=0;T-=1){const I=w[T];if((S=l.value)!=null&&S.getLayer(I))try{l.value.moveLayer(I)}catch(E){console.warn("Cannot move layer",I,E)}}})}function k(w){!w||!Array.isArray(w.filters)||w.filters.length===0||r.value.includes(w.id)&&(d.value=w.id,p[w.id]||(p[w.id]={}),n.value="filter")}function _(){n.value="catalog"}const V=e.computed(()=>d.value?g(d.value):null),A=e.computed(()=>{const w=d.value;return w?p[w]??{}:{}}),h=e.computed(()=>o.value.groups.reduce((w,S)=>w+S.layers.length,0)),$=e.computed(()=>n.value==="selected"?"Вибрані шари":n.value==="filter"?"Фільтр шарів":"Каталог"),B=e.computed(()=>n.value==="selected"?r.value.length:n.value==="catalog"?h.value:null),F=e.computed(()=>{var w;return n.value==="filter"?((w=V.value)==null?void 0:w.name)??"":""});async function N(){const S=await(await fetch("/api/gis-layer-list")).json(),T=new Map;S.forEach(b=>{const C=b.group_id??"other";T.has(C)||T.set(C,{id:C,name:b.group_name||"Інші шари",layers:[]}),T.get(C).layers.push(b)}),o.value={groups:Array.from(T.values())};const I=a.query.layers;if(!I)return;const E=Array.isArray(I)?I[0]:I;typeof E=="string"&&E.split(",").forEach(b=>{const C=b.trim();if(!C)return;const L=g(C);L&&m(C,!0,L)})}return e.watch(d,w=>{!w&&n.value==="filter"&&(n.value="catalog")}),e.watch(V,w=>{!w&&d.value&&(d.value=null)}),e.watch(r,w=>{const S={...a.query};w.length?S.layers=w.join(","):delete S.layers,c.replace({query:S}).catch(()=>{})},{deep:!0}),e.onMounted(N),(w,S)=>(e.openBlock(),e.createElementBlock("div",yp,[e.createElementVNode("div",xp,[e.createElementVNode("div",kp,[S[5]||(S[5]=e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-layers text-blue-600"},[e.createElementVNode("path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"}),e.createElementVNode("path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"}),e.createElementVNode("path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"})],-1)),e.createElementVNode("h2",bp,[e.createTextVNode(e.toDisplayString($.value)+" ",1),B.value!==null?(e.openBlock(),e.createElementBlock("span",_p,"("+e.toDisplayString(B.value)+")",1)):e.createCommentVNode("",!0),F.value?(e.openBlock(),e.createElementBlock("span",wp,e.toDisplayString(F.value),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("button",{onClick:x,class:"p-1 rounded-full hover:bg-gray-200 transition-colors","aria-label":"Reset layers"},[...S[6]||(S[6]=[e.createStaticVNode('<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-refresh-cw text-gray-600" data-v-c75de067><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8" data-v-c75de067></path><path d="M21 3v5h-5" data-v-c75de067></path><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16" data-v-c75de067></path><path d="M8 16H3v5" data-v-c75de067></path></svg>',1)])])]),e.createElementVNode("div",Ep,[e.createElementVNode("button",{onClick:S[0]||(S[0]=T=>n.value="catalog"),class:e.normalizeClass(["px-4 py-2 text-sm font-medium",n.value==="catalog"?"text-blue-600 border-b-2 border-blue-600":"text-gray-600 hover:text-gray-800"])}," Каталог ",2),e.createElementVNode("button",{onClick:S[1]||(S[1]=T=>n.value="selected"),class:e.normalizeClass(["px-4 py-2 text-sm font-medium",n.value==="selected"?"text-blue-600 border-b-2 border-blue-600":"text-gray-600 hover:text-gray-800"])}," Вибрані шари ",2)]),e.createElementVNode("div",Bp,[n.value==="catalog"?(e.openBlock(),e.createBlock(Xu,{key:0,class:"map-catalog-widget__scroll",catalog:o.value,selected:r.value,search:i.value,"onUpdate:search":S[2]||(S[2]=T=>i.value=T),onToggleLayer:m,onOpenFilter:k},null,8,["catalog","selected","search"])):n.value==="selected"?(e.openBlock(),e.createBlock(cp,{key:1,catalog:o.value,selected:r.value,onToggleLayer:m,onSelectLayer:S[3]||(S[3]=T=>n.value="catalog"),onReorder:v,onRemove:S[4]||(S[4]=T=>r.value=r.value.filter(I=>I!==T))},null,8,["catalog","selected"])):(e.openBlock(),e.createBlock(hp,{key:2,layer:V.value,value:A.value,onChange:y,onClose:_},null,8,["layer","value"]))])]))}}),[["__scopeId","data-v-c75de067"]]),Np={key:1,class:"flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative widget"},vp={class:"flex items-start justify-between gap-3 p-5 pb-3"},Cp={class:"inline-block text-xl font-semibold text-gray-800"},Vp={key:0,class:"mt-1 text-sm text-gray-500"},$p={class:"flex items-center gap-[6px]"},Ap={class:"px-5 pb-5 space-y-6"},Sp={key:0,class:"space-y-2"},Lp={class:"flex flex-wrap gap-4"},Fp=["value"],Mp={key:1,class:"text-sm text-gray-500"},Tp={key:2,class:"text-sm text-gray-500"},Ip={class:"text-4xl font-medium text-gray-800"},Dp={class:"space-y-[14px]"},jp={class:"flex items-center gap-[10px] text-gray-600"},Op={class:"font-medium text-gray-700"},zp={class:"flex items-center justify-end text-end gap-3"},Pp={class:"font-medium text-gray-800"},Rp={class:"min-w-[40px] font-medium text-[#3C3C4399]"},In=W(e.defineComponent({__name:"MapAttributeWidget",props:{config:{}},setup(t){const n=["#3a7a57","#d970d5","#8e997b","#b4c039","#a855f7","#71823a","#f79d92","#8b5cf6","#a6514e","#6b7280"],o=t,r=e.ref(!0),i=e.ref(!1),l=e.ref([]),a=e.ref(null),c=e.ref(null),p=e.ref(null),d=e.ref(null),g=e.ref(null),s=e.ref({}),f=e.ref(null);function y(b){return b&&JSON.parse(JSON.stringify(b))}const u=e.computed(()=>{const b=o.config.layer;if(typeof b!="string")throw new Error("MapAttributeWidget: `layer` must be a string");const C=b.trim();if(!C)throw new Error("MapAttributeWidget: `layer` must be non-empty");return C}),m=e.computed(()=>{const{list:b,attribute:C}=o.config;if(Array.isArray(b)&&b.length)return b.map(L=>({id:(L==null?void 0:L.id)!=null?String(L.id).trim():"",text:(L==null?void 0:L.text)!=null&&String(L.text).trim()||null})).filter(L=>L.id.length);if(Array.isArray(C))return C.map(L=>L!=null?String(L).trim():"").filter(L=>L.length).map(L=>({id:L,text:null}));if(typeof C=="string"){const L=C.trim();if(!L)throw new Error("MapAttributeWidget: `attribute` must be non-empty");return[{id:L,text:null}]}throw new Error("MapAttributeWidget: `attribute` or `list` must be provided")}),x=e.computed(()=>m.value.map(b=>({id:b.id,label:b.text||s.value[b.id]||b.id})));e.watch(m,b=>{if(!b.length){f.value=null,l.value=[];return}(!f.value||!b.some(C=>C.id===f.value))&&(f.value=b[0].id)},{immediate:!0});const v=e.computed(()=>{var b;return f.value||((b=m.value[0])==null?void 0:b.id)||null});e.watch(u,()=>{var b,C;(C=(b=c.value)==null?void 0:b.remove)==null||C.call(b),c.value=null,p.value=null,d.value=null,g.value=null,s.value={}});const k=e.computed(()=>{var b;return(b=d.value)!=null&&b.length?{id:u.value,name:p.value,filters:d.value}:null}),_=e.computed(()=>{var b,C;return((C=(b=k.value)==null?void 0:b.filters)==null?void 0:C.length)||0});async function V(b){var j;const C=await fetch(`/api/gis-service/${encodeURIComponent(b)}`);if(!C.ok){let D="Не вдалося завантажити налаштування шару";try{const O=await C.json();D=((j=O==null?void 0:O.message)==null?void 0:j.error)||(O==null?void 0:O.message)||D}catch{}throw new Error(D)}const L=await C.json();return p.value=(L==null?void 0:L.name)||null,d.value=Array.isArray(L==null?void 0:L.filters)?L.filters:null,g.value=y((L==null?void 0:L.style)||{}),s.value=((L==null?void 0:L.attributes)||[]).reduce((D,O)=>{const P=typeof(O==null?void 0:O.name)=="string"?O.name.trim():"",Y=typeof(O==null?void 0:O.ua)=="string"?O.ua.trim():"";return P&&(D[P]=Y||P),D},{}),L}function A(b,C){let L=G(b);if(!L){const j=`${location.origin}/api/vtile/${b}/ua/{z}/{x}/{y}.vmt`;L=G(b,{source:{type:"vector",tiles:[j],minzoom:0,maxzoom:14},layer:{id:b,source:b,"source-layer":b,style:(C==null?void 0:C.style)||{}},card:C==null?void 0:C.card,popup:C==null?void 0:C.popup})}return c.value=L,L}async function h(b,C){var D;const L=`/api/gis-service/${encodeURIComponent(b)}/${encodeURIComponent(C)}`,j=await fetch(L);if(!j.ok){let O="Не вдалося отримати статистику";try{const P=await j.json();O=((D=P==null?void 0:P.message)==null?void 0:D.error)||(P==null?void 0:P.message)||O}catch{}throw new Error(O)}return j.json()}function $(b){const C=new Map;return b&&(b.rules||[]).forEach(j=>{const D=(j==null?void 0:j.value)??(j==null?void 0:j.id);D!=null&&C.set(String(D),j)}),C}function B(b,C,L,j,D){if(typeof(C==null?void 0:C.color)=="string"&&C.color.trim())return C.color.trim();const O=o.config.colors||{};if(O[b])return O[b];const Y=$(L==null?void 0:L.style).get(b);return typeof(Y==null?void 0:Y.color)=="string"&&Y.color.trim()?Y.color.trim():n[D%n.length]}function F(b,C,L,j){var D;return(C==null?void 0:C.text)||(C==null?void 0:C.label)||(C==null?void 0:C.name)||(C==null?void 0:C[`${j}_text`])||((D=$(L==null?void 0:L.style).get(b))==null?void 0:D.label)||b}function N(b,C,L,j){if(!b)return;const D=y((C==null?void 0:C.style)||g.value)||{},O=j.trim();if(!O)return;const P={...D.colors||{},...o.config.colors||{}};O===j&&L.forEach(Y=>{Y.color.trim()&&(P[Y.id]=Y.color)}),b.setStyle({...D,type:D.type||"polygon",colorAttr:O,opacity:.8,colors:P})}async function w(){var O,P;l.value=[],a.value=null;const b=u.value,C=v.value;if(!C)return;i.value=!0;const L=await V(b);A(b,L);const j=await h(b,C),D=Array.isArray(j==null?void 0:j.rows)?j.rows.map((Y,J)=>{const K=(Y==null?void 0:Y.id)??(Y==null?void 0:Y.value),X=K!=null?String(K):"";if(!X)return null;const ae=F(X,Y,L,C),de=Number((Y==null?void 0:Y.count)??0)||0,be=B(X,Y,L,C,J);return{id:X,label:ae,count:de,color:be}}).filter(Boolean):[];l.value=D,a.value=((O=j==null?void 0:j.field)==null?void 0:O.label)||((P=j==null?void 0:j.field)==null?void 0:P.name)||null,N(c.value,L,D,C),i.value=!1}e.watch(()=>[u.value,v.value],()=>{w()},{immediate:!0});const S=e.computed(()=>"Набори даних"),T=e.computed(()=>l.value.reduce((b,C)=>b+C.count,0)),I=e.computed(()=>{var L;const b=v.value;return((L=x.value.find(j=>j.id===b))==null?void 0:L.label)||null||a.value||b||null});function E(b){return T.value?`${(b/T.value*100).toFixed(2)}%`:"0.00%"}return e.onBeforeUnmount(()=>{var b,C;(C=(b=c.value)==null?void 0:b.remove)==null||C.call(b)}),(b,C)=>r.value?(e.openBlock(),e.createElementBlock("div",Np,[e.createElementVNode("div",vp,[e.createElementVNode("div",null,[e.createElementVNode("h2",Cp,e.toDisplayString(S.value),1),I.value&&x.value.length===1?(e.openBlock(),e.createElementBlock("p",Vp,e.toDisplayString(I.value),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",$p,[k.value?(e.openBlock(),e.createBlock(Qe,{key:0,class:"flex justify-center items-center h-[36px] w-[36px] text-sm border border-gray-200 text-gray-600 hover:bg-gray-100 rounded-full",count:_.value,layer:k.value},null,8,["count","layer"])):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"flex justify-center items-center h-[36px] w-[36px] text-sm border border-gray-200 text-gray-600 hover:bg-gray-100 rounded-full",onClick:C[1]||(C[1]=L=>r.value=!1)},[...C[3]||(C[3]=[e.createElementVNode("svg",{class:"w-4 h-4",xmlns:"http://www.w3.org/2000/svg",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",viewBox:"0 0 24 24"},[e.createElementVNode("path",{d:"M18 6 6 18"}),e.createElementVNode("path",{d:"m6 6 12 12"})],-1)])])])]),e.createElementVNode("div",Ap,[x.value.length>1?(e.openBlock(),e.createElementBlock("div",Sp,[e.createElementVNode("div",Lp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.value,L=>(e.openBlock(),e.createElementBlock("label",{key:L.id,class:"inline-flex items-center gap-2 text-sm text-gray-700"},[e.withDirectives(e.createElementVNode("input",{type:"radio",class:"text-sky-600 focus:ring-sky-500",value:L.id,"onUpdate:modelValue":C[2]||(C[2]=j=>f.value=j)},null,8,Fp),[[e.vModelRadio,f.value]]),e.createElementVNode("span",null,e.toDisplayString(L.label),1)]))),128))])])):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("div",Mp,"Завантаження…")):l.value.length?(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createElementVNode("h4",Ip,e.toDisplayString(T.value),1),e.createElementVNode("ul",Dp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,L=>(e.openBlock(),e.createElementBlock("li",{key:L.id,class:"flex flex-wrap items-center justify-between gap-x-2"},[e.createElementVNode("div",jp,[e.createElementVNode("span",{class:"block w-[16px] h-[16px] rounded",style:e.normalizeStyle({backgroundColor:L.color})},null,4),e.createElementVNode("span",Op,e.toDisplayString(L.label),1)]),e.createElementVNode("div",zp,[e.createElementVNode("span",Pp,e.toDisplayString(L.count),1),e.createElementVNode("span",Rp,e.toDisplayString(E(L.count)),1)])]))),128))])],64)):(e.openBlock(),e.createElementBlock("div",Tp,"Дані відсутні"))])])):(e.openBlock(),e.createElementBlock("button",{key:0,class:"py-2 px-2.5 max-h-[38px] inline-flex items-center gap-x-1.5 text-sm font-medium rounded-lg border border-gray-200 bg-white text-gray-800 shadow-sm hover:bg-gray-50",onClick:C[0]||(C[0]=L=>r.value=!0)}," Набори даних "))}}),[["__scopeId","data-v-9686ce7b"]]),Up={class:"map-search-widget flex flex-col gap-2 bg-white border border-stone-200 shadow-2xs rounded-xl widget p-3 min-w-[200px]"},qp={key:0,class:"vs-select__options absolute z-50 mt-1 w-full bg-white border border-gray-300 shadow-lg rounded-lg text-sm"},Yp=["onClick"],Hp={class:"relative flex-1 min-w-[140px]"},Wp=["placeholder"],Kp="https://data.softpro.ua/api-user/gis-url-proxy",Zp="https://geo.rv.ua/api-user/dzk.api",Dn=W(e.defineComponent({__name:"MapSearchWidget",props:{config:{}},setup(t){const n=t,o=se(),r=["xy","parcel"],i=e.computed(()=>{var V,A;const _=(A=(V=n.config)==null?void 0:V.tools)==null?void 0:A.filter(h=>r.includes(h));return _&&_.length?_:r}),l=e.computed(()=>{var _,V;return((V=(_=n.config)==null?void 0:_.placeholder)==null?void 0:V.trim())||"Пошук…"}),a=e.ref(i.value[0]);e.watch(i,_=>{_.includes(a.value)||(a.value=_[0])});const c=e.ref(""),p=e.ref(!1),d=e.ref(null);e.watch(a,()=>{c.value="",p.value=!1});function g(_){a.value=_}function s(_){if(!p.value)return;const V=d.value;V&&!V.contains(_.target)&&(p.value=!1)}e.onMounted(()=>{window.addEventListener("click",s,!0)}),e.onBeforeUnmount(()=>{window.removeEventListener("click",s,!0)});function f(_){return _==="xy"?"Координати":_==="parcel"?"Кадастр":"Адреси"}function y(_){const V=_.replace(/[,]+/g," ").trim();if(!V)return null;const A=V.split(/\s+/).filter(Boolean);if(A.length<2)return null;const h=A.slice(0,2).map(Number);if(!h.every(T=>Number.isFinite(T)))return null;let[$,B]=h,F=$,N=B;const w=T=>Math.abs(T)<=90,S=T=>Math.abs(T)<=180;if(!w(F)||!S(N))if(w(N)&&S(F))F=B,N=$;else return null;return{lat:F,lng:N}}function u(_){return((_==null?void 0:_.items)||[]).map((A,h)=>{var $,B,F;return{id:String((A==null?void 0:A.id)??h),title:(A==null?void 0:A.title)||(($=A==null?void 0:A.address)==null?void 0:$.label)||"Знайдений обʼєкт",lat:Number((B=A==null?void 0:A.position)==null?void 0:B.lat),lng:Number((F=A==null?void 0:A.position)==null?void 0:F.lng)}})}function m(_){const V=(_==null?void 0:_.result)||(_==null?void 0:_.data)||_;if(!V)return[];const A=V.geom_centroid;if(!A||!Array.isArray(A.coordinates))return[];const[h,$]=A.coordinates;return!Number.isFinite($)||!Number.isFinite(h)?[]:[{id:"parcel",title:V.cadnum||V.cad_num||"Земельна ділянка",lat:$,lng:h}]}function x(_){const A=_.replace(/\s+/g,"").split(":");if(console.log(A),A.length!==4)return!1;const h=[10,2,3,4];return A.every(($,B)=>$.length===h[B]&&/^\d+$/.test($))}function v(_){var A,h;const V=((A=n.config)==null?void 0:A.zoom)??17;(h=o.flyTo)==null||h.call(o,{center:[_.lng,_.lat],zoom:V})}async function k(){const _=c.value.trim();if(_){if(a.value==="xy"){const V=y(_);if(!V){ne.notify({type:"warning",title:"Пошук координат",message:"Не знайдено або невірний формат координат"});return}v({id:"xy",title:"Точка на мапі",...V}),c.value="";return}try{const V=new URL(a.value==="here"?Kp:Zp);if(a.value==="here")V.searchParams.set("searchtext",_);else{if(!x(_)){ne.notify({type:"warning",title:"Пошук кадастру",message:"Кадастровий номер має формат ХХХХХХХХХХ:ХХ:ХХХ:ХХХХ"});return}V.searchParams.set("cad_num",_)}const A=await fetch(V.toString());if(!A.ok)throw new Error(`HTTP ${A.status}`);const h=await A.json(),$=a.value==="here"?u(h):m(h);if(!$.length)ne.notify({type:"warning",title:"Пошук",message:"Не знайдено результатів"});else{const B=$[0];v(B),c.value=""}}catch(V){const A=(V==null?void 0:V.message)||"Помилка пошуку";ne.notify({type:"error",title:"Пошук",message:A})}}}return(_,V)=>(e.openBlock(),e.createElementBlock("div",Up,[e.createElementVNode("form",{class:"flex gap-2",onSubmit:e.withModifiers(k,["prevent"])},[i.value.length>1?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:d,class:"relative search-type w-[140px]"},[e.createElementVNode("button",{type:"button",class:"vstSelect-input transition-all text-left bg-white border border-gray-200 text-gray-900 rounded-lg focus:ring-blue-500 focus:border-blue-100 block w-full py-1.5 px-3 text-sm cursor-pointer flex items-center justify-between gap-2",onClick:V[0]||(V[0]=A=>p.value=!p.value)},[e.createElementVNode("span",null,e.toDisplayString(f(a.value)),1),(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(["w-4 h-4 text-gray-500 transition-transform",{"rotate-180":p.value}]),viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[...V[2]||(V[2]=[e.createElementVNode("path",{d:"M6 9l6 6 6-6",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])],2))]),p.value?(e.openBlock(),e.createElementBlock("div",qp,[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,A=>(e.openBlock(),e.createElementBlock("li",{key:A,class:"px-3 py-2 cursor-pointer hover:bg-gray-100",onClick:h=>g(A)},e.toDisplayString(f(A)),9,Yp))),128))])])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),e.createElementVNode("div",Hp,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":V[1]||(V[1]=A=>c.value=A),placeholder:l.value,type:"text",class:"vs-input transition-all border block w-full border-gray-200 rounded-md focus:border-blue-100 border-solid !pr-8 py-1.5 pl-3 text-sm"},null,8,Wp),[[e.vModelText,c.value,void 0,{trim:!0}]]),V[3]||(V[3]=e.createElementVNode("button",{type:"submit",class:"absolute inset-y-0 right-2 flex items-center text-gray-400 hover:text-gray-600","aria-label":"Пошук"},[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m21 21-4.35-4.35m0 0A7.5 7.5 0 1 0 5 5a7.5 7.5 0 0 0 11.65 11.65Z"})])],-1))])],32)]))}}),[["__scopeId","data-v-85962cbc"]]),Gp="https://watergis.github.io/mapbox-gl-export/mapbox-gl-export.css",Xp="https://watergis.github.io/mapbox-gl-export/mapbox-gl-export.js",Qp=W(e.defineComponent({__name:"MapPrintControl",setup(t){const{map:n,ready:o,addControl:r,removeControl:i}=se(),l=e.ref(null),a=e.ref(null),c=e.ref(null),p=e.ref(null);let d=null;function g(){!window.mapboxgl&&window.maplibregl&&(window.mapboxgl=window.maplibregl)}function s(h){if(Array.from(document.styleSheets).some(F=>{var N;return(N=F==null?void 0:F.href)==null?void 0:N.includes(h)}))return;const B=document.createElement("link");B.rel="stylesheet",B.href=h,document.head.appendChild(B)}function f(h){return new Promise(($,B)=>{const F=Array.from(document.scripts).find(w=>w.src===h);if(F){if(F._loaded)return $();F.addEventListener("load",()=>$()),F.addEventListener("error",()=>B(new Error(`Failed ${h}`)));return}const N=document.createElement("script");N.src=h,N.async=!0,N.onload=()=>{N._loaded=!0,$()},N.onerror=()=>B(new Error(`Failed ${h}`)),document.head.appendChild(N)})}function y(){var $,B,F;const h=window;return h.MapboxExportControl||(($=h.mapboxgl)==null?void 0:$.MapboxExportControl)||((B=h.mapboxglExport)==null?void 0:B.MapboxExportControl)||((F=h.mapboxglExport)==null?void 0:F.default)||null}function u(){const h=document.createElementNS("http://www.w3.org/2000/svg","svg");return h.setAttribute("xmlns","http://www.w3.org/2000/svg"),h.setAttribute("viewBox","0 0 24 24"),h.setAttribute("width","18"),h.setAttribute("height","18"),h.setAttribute("fill","none"),h.setAttribute("stroke","currentColor"),h.setAttribute("stroke-width","2"),h.setAttribute("stroke-linecap","round"),h.setAttribute("stroke-linejoin","round"),h.classList.add("map-control-button__icon"),[{d:"M0 0h24v24H0z",stroke:"none",fill:"none"},{d:"M17 17h2a2 2 0 0 0 2 -2v-4a2 2 0 0 0 -2 -2h-14a2 2 0 0 0 -2 2v4a2 2 0 0 0 2 2h2"},{d:"M17 9v-4a2 2 0 0 0 -2 -2h-6a2 2 0 0 0 -2 2v4"},{d:"M7 13m0 2a2 2 0 0 1 2 -2h6a2 2 0 0 1 2 2v4a2 2 0 0 1 -2 2h-6a2 2 0 0 1 -2 -2z"}].forEach((B,F)=>{const N=document.createElementNS("http://www.w3.org/2000/svg","path");Object.entries(B).forEach(([w,S])=>{N.setAttribute(w,S)}),h.appendChild(N)}),h}function m(){const h=document.createElement("button");h.id="print-btn",h.type="button",h.className=["group relative flex items-center justify-center","w-9 h-9 rounded-xl shadow-lg transition-transform transition-shadow duration-200","bg-white text-gray-700 hover:bg-gray-50 hover:scale-105","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-400/60 focus-visible:ring-offset-2"].join(" "),h.setAttribute("aria-label","Друк");const $=u(),B=document.createElement("span");return B.className=["absolute left-full ml-3 px-3 py-1.5","bg-gray-900 text-white text-sm font-medium rounded-md","opacity-0 group-hover:opacity-100 group-focus-visible:opacity-100","pointer-events-none transition-opacity duration-200 whitespace-nowrap"].join(" "),B.textContent="Друк",B.setAttribute("aria-hidden","true"),h.appendChild($),h.appendChild(B),h.addEventListener("click",F=>{F.stopPropagation(),x()}),p.value=h,h}function x(){if(!c.value)return;c.value.style.display==="block"?k():v()}function v(){var h,$,B;c.value&&(c.value.style.display="block",(h=p.value)==null||h.classList.add("scale-105","shadow-xl"),($=a.value)==null||$.toggleCrosshair(!0),(B=a.value)==null||B.togglePrintableArea(!0),document.addEventListener("click",_))}function k(){var h,$,B;c.value&&(c.value.style.display="none",(h=p.value)==null||h.classList.remove("scale-105","shadow-xl"),($=a.value)==null||$.toggleCrosshair(!1),(B=a.value)==null||B.togglePrintableArea(!1),document.removeEventListener("click",_))}function _(h){const $=l.value;$&&(h.target&&$.contains(h.target)||k())}function V(h){const $={Size:"Розмір",Orientation:"Орієнтація",Format:"Формат",DPI:"DPI",Landscape:"Горизонтальна",Portrait:"Вертикальна",PNG:"PNG",JPEG:"JPEG",SVG:"SVG",PDF:"PDF","Page Size":"Розмір","Page Orientation":"Орієнтація"};h.querySelectorAll("label, option").forEach(F=>{var w;const N=(w=F.textContent)==null?void 0:w.trim();N&&$[N]&&(F.textContent=$[N])});const B=h.querySelector("button");B&&(B.textContent="Друкувати")}function A(h){const $=h.querySelector(".mapboxgl-export-list");if(!$||!l.value)return;c.value=$;const B=h.querySelector("button");if(B&&(B.style.display="none"),h.style.display="none",!p.value){const N=m();l.value.appendChild(N)}$.style.display="none";const F="_printControlBound";if(!$[F]){const N=w=>w.stopPropagation();$.addEventListener("click",N),$.addEventListener("mousedown",N),$[F]=!0}l.value.appendChild($),V($)}return e.onMounted(async()=>{await(o==null?void 0:o());const h=n.value;if(!h)return;s(Gp),g();try{await f(Xp)}catch(F){console.warn("[MapPrintControl] load error",F);return}const $=y();if(!$)return;const B=new $({PageSize:"A4",PageOrientation:"landscape",Format:"pdf",DPI:300,Crosshair:!0,PrintableArea:!0});if(a.value=B,typeof B.onAdd=="function"){const F=B.onAdd.bind(B);B.onAdd=N=>{const w=F(N);return setTimeout(()=>w&&A(w),50),w}}r?r(B,"top-right"):h.addControl(B,"top-right"),d=F=>{F.key==="Escape"&&k()},document.addEventListener("keyup",d)}),e.onBeforeUnmount(()=>{k(),d&&(document.removeEventListener("keyup",d),d=null);const h=n.value;if(a.value)try{i?i(a.value):h==null||h.removeControl(a.value)}catch{}a.value=null}),(h,$)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"root",ref:l,class:"map-print-control"},null,512))}}),[["__scopeId","data-v-89156246"]]),Jp={class:"map-center-control"},em=W(e.defineComponent({__name:"MapCenterControl",props:{center:{},zoom:{}},setup(t){const n=t,{map:o,ready:r}=se(),i=e.ref(null),l=e.ref(null);function a(p){if(Array.isArray(p)&&p.length>=2){const[d,g]=p.slice(0,2).map(s=>Number(s));return Number.isNaN(d)||Number.isNaN(g)?null:[d,g]}if(p&&typeof p=="object"){const d=p,g=d.lng??d.lon??d.long??d.x,s=d.lat??d.y;if(g!=null&&s!=null){const f=Number(g),y=Number(s);if(!Number.isNaN(f)&&!Number.isNaN(y))return[f,y]}}if(typeof p=="string"){const d=p.split(",").map(g=>Number(g.trim()));if(d.length>=2&&d.every(g=>!Number.isNaN(g)))return[d[0],d[1]]}return null}e.watch(()=>n.center,p=>{const d=a(p);d&&(i.value=d)},{immediate:!0}),e.watch(()=>n.zoom,p=>{const d=Number(p);Number.isNaN(d)||(l.value=d)},{immediate:!0}),e.onMounted(async()=>{await(r==null?void 0:r());const p=o.value;if(p){if(!i.value){const d=p.getCenter();i.value=[d.lng,d.lat]}l.value==null&&(l.value=p.getZoom())}});function c(){const p=o.value;if(!p)return;const d=i.value||(()=>{const s=p.getCenter();return[s.lng,s.lat]})(),g=l.value??p.getZoom();p.flyTo({center:d,zoom:g})}return(p,d)=>(e.openBlock(),e.createElementBlock("div",Jp,[e.createElementVNode("button",{id:"center-btn",type:"button",class:"group relative flex items-center justify-center w-9 h-9 rounded-xl shadow-lg transition-transform transition-shadow duration-200 bg-white text-gray-700 hover:bg-gray-50 hover:scale-105 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-400/60 focus-visible:ring-offset-2","aria-label":"Повернути центр",onClick:e.withModifiers(c,["stop"])},[e.createVNode(e.unref(Hn),{class:"w-4 h-4"}),d[0]||(d[0]=e.createElementVNode("span",{class:"absolute left-full ml-3 px-3 py-1.5 bg-gray-900 text-white text-sm font-medium rounded-md opacity-0 group-hover:opacity-100 group-focus-visible:opacity-100 pointer-events-none transition-opacity duration-200 whitespace-nowrap","aria-hidden":"true"}," Центрувати ",-1))])]))}}),[["__scopeId","data-v-d21bee3d"]]),tm={class:"cursor-coordinates"},nm={class:"cursor-coordinates__text"},om=W(e.defineComponent({__name:"MapCursorCoordinates",props:{coordinates:{}},setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("div",tm,[e.createElementVNode("span",nm,e.toDisplayString(t.coordinates),1)]))}}),[["__scopeId","data-v-334315d9"]]),rm={class:"minimap__wrapper"},Je="minimap-viewport",lm="minimap-viewport-layer",im=W(e.defineComponent({__name:"MapMiniMap",props:{mapContext:{},width:{},height:{},options:{}},setup(t){var v;const n=t,o=e.ref(null),r=e.shallowRef(null),i=(v=n.options)==null?void 0:v.active,l=e.ref(i===void 0?!1:!!i);function a(k,_){return typeof k=="number"&&Number.isFinite(k)?k:_}const c=e.computed(()=>{var h,$;const k=(h=n.options)==null?void 0:h.width,_=($=n.options)==null?void 0:$.height,V=a(n.width??k,210),A=a(n.height??_,150);return{width:`${V}px`,height:`${A}px`}});function p(){var _,V;const k=(V=(_=n.mapContext)==null?void 0:_.map)==null?void 0:V.value;if(!k||typeof k.getStyle!="function")return null;try{const A=k.getStyle();return A?JSON.parse(JSON.stringify(A)):null}catch{return null}}let d=null;function g(){var h;if(typeof window>"u"||r.value||!o.value)return;const k=p(),_=[30,50],V={container:o.value,style:k??{version:8,sources:{voyager:{type:"raster",tiles:["https://tile.openstreetmap.org/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"voyager",type:"raster",source:"voyager"}]},center:_,zoom:((h=n.options)==null?void 0:h.zoom)??3,interactive:!1,attributionControl:!1},A={...V,...n.options??{}};A.container=V.container,r.value=new maplibregl.Map(A),r.value.on("load",()=>{f(),u()})}function s(){if(!r.value)return;const k=p();k&&(r.value.once("styledata",()=>{f(),u()}),r.value.setStyle(k))}function f(){if(r.value){if(typeof r.value.isStyleLoaded=="function"&&!r.value.isStyleLoaded()){r.value.once("styledata",()=>{f(),u()});return}r.value.getSource(Je)||(r.value.addSource(Je,{type:"geojson",data:{type:"Feature",geometry:{type:"Polygon",coordinates:[[[0,0],[0,0],[0,0],[0,0],[0,0]]]},properties:{}}}),r.value.addLayer({id:lm,type:"fill",source:Je,paint:{"fill-color":"#3b82f6","fill-opacity":.2,"fill-outline-color":"#1d4ed8"}}))}}function y(){l.value=!l.value,l.value&&e.nextTick(()=>{var k;return(k=r.value)==null?void 0:k.resize()})}function u(){var B,F;const k=(F=(B=n.mapContext)==null?void 0:B.map)==null?void 0:F.value;if(!r.value||!k||!k.getBounds)return;if(typeof r.value.isStyleLoaded=="function"&&!r.value.isStyleLoaded()){r.value.once("styledata",()=>{u()});return}const _=k.getBounds();if(!_)return;const V=_.getNorthEast(),A=_.getSouthWest();if(!V||!A)return;const h=[[A.lng,V.lat],[V.lng,V.lat],[V.lng,A.lat],[A.lng,A.lat],[A.lng,V.lat]],$=r.value.getSource(Je);if(!$){f();return}$.setData({type:"Feature",geometry:{type:"Polygon",coordinates:[h]},properties:{}})}function m(){var V;const k=n.mapContext,_=(V=k==null?void 0:k.map)==null?void 0:V.value;!(k!=null&&k.on)||!_||(d==null||d(),d=k.on("move",u),u())}async function x(){const k=n.mapContext;if(k){if(typeof k.ready=="function")try{await k.ready()}catch{return}m()}}return e.onMounted(()=>{g(),x()}),e.watch(()=>n.mapContext,()=>{x(),u()}),e.watch(()=>{var k,_;return(_=(k=n.mapContext)==null?void 0:k.map)==null?void 0:_.value},()=>{r.value&&(s(),x())}),e.watch(c,()=>{r.value&&e.nextTick(()=>{var k;return(k=r.value)==null?void 0:k.resize()})}),e.watch(()=>n.options,()=>{var _;d==null||d(),d=null,r.value&&(r.value.remove(),r.value=null);const k=(_=n.options)==null?void 0:_.active;typeof k=="boolean"&&(l.value=k),e.nextTick(()=>{g(),x()})},{deep:!0}),e.onBeforeUnmount(()=>{d==null||d(),d=null,r.value&&(r.value.remove(),r.value=null)}),(k,_)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["minimap",{"minimap--open":l.value}])},[e.createElementVNode("button",{type:"button",class:"minimap__button",onClick:y},[e.createVNode(e.unref(qn))]),e.createVNode(e.Transition,{name:"minimap-slide"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",rm,[e.createElementVNode("div",{ref_key:"minimapRoot",ref:o,class:"mapboxgl-ctrl-minimap mapboxgl-ctrl mapboxgl-map",style:e.normalizeStyle(c.value),id:"mapboxgl-minimap"},null,4)],512),[[e.vShow,l.value]])]),_:1})],2))}}),[["__scopeId","data-v-3ce09bde"]]),am={key:1,class:"absolute bottom-4 right-4 z-[80] flex items-end gap-2"},sm={class:"absolute top-[103px] right-[6.5px] z-[80] flex flex-col items-end gap-1"},cm={class:"map-widget__overlay-grid"},dm={key:0,id:"map-filter-popover-host",class:"map-widget__filter-host"},um={key:1,class:"map-widget__stack-wrapper map-widget__stack-wrapper--top"},pm={class:"map-widget__stack"},mm={key:2,class:"map-widget__stack-wrapper map-widget__stack-wrapper--bottom mb-5"},fm={class:"map-widget__stack map-widget__stack--bottom"},gm={key:0,class:"map-widget__state"},hm={key:1,class:"map-widget__state map-widget__state--error"},wt=W(e.defineComponent({__name:"MapWidget",props:{id:{},height:{},minZoom:{},maxZoom:{}},setup(t){var be,fe;const n=t,o=me.useRoute(),r=me.useRouter(),i=e.ref(null),l=e.ref({}),a=e.ref(!1),c=e.ref(null),p=e.ref(!1),d=e.ref([]),g=e.computed(()=>n.id||"main"),s=e.computed(()=>{var M,U;return{height:((M=n.height)==null?void 0:M.trim())||((U=l.value)==null?void 0:U.height)||"calc(100vh - 65px)"}}),f=e.computed(()=>{var M;return((M=l.value)==null?void 0:M.name)??null}),y=e.computed(()=>{var M;return((M=l.value)==null?void 0:M.description)??null}),u=e.computed(()=>{var M;return B((M=l.value)==null?void 0:M.maps)}),m=e.computed(()=>{var U,H;const M=((U=l.value)==null?void 0:U.minZoom)??((H=l.value)==null?void 0:H.minzoom)??null;return typeof M=="number"?M:null}),x=e.computed(()=>{var U,H;const M=((U=l.value)==null?void 0:U.maxZoom)??((H=l.value)==null?void 0:H.maxzoom)??null;return typeof M=="number"?M:typeof n.maxZoom=="number"?n.maxZoom:20}),v=e.ref(null),k=e.computed(()=>{if(!v.value)return null;const{lng:M,lat:U}=v.value;return`${U.toFixed(6)}, ${M.toFixed(6)}`}),_=e.computed(()=>{var M;return((M=i.value)==null?void 0:M.ctx)??null}),V=e.computed(()=>{var M;return((M=l.value)==null?void 0:M.minimap)??null}),A=((fe=(be=e.getCurrentInstance())==null?void 0:be.appContext.config.globalProperties)==null?void 0:fe.$settings)||null,h=e.computed(()=>{const M=(A==null?void 0:A.map)||null,U=(M==null?void 0:M.boundary)??null,H=(M==null?void 0:M.katottg)??null;return!U&&!H?null:{boundary:U,katottg:H}});function $(M){return typeof M=="string"&&M.trim()?M.trim().toLowerCase():"top-left"}function B(M){return Array.isArray(M)?M:M&&typeof M=="object"?Object.values(M).filter(Boolean):[]}const F=e.computed(()=>{var M;return B((M=l.value)==null?void 0:M.widgets)}),N=["left","right"],w=e.computed(()=>{const M={left:{top:[],bottom:[]},right:{top:[],bottom:[]}},U={"top-left":{side:"left",align:"top"},"bottom-left":{side:"left",align:"bottom"},"top-right":{side:"right",align:"top"},"bottom-right":{side:"right",align:"bottom"}};return F.value.forEach(H=>{const Z=$(H.position),q=U[Z]??{side:"left",align:"top"};M[q.side][q.align].push(H)}),M});function S(M){return Array.isArray(M)?M[0]??null:typeof M=="string"?M:null}async function T(){var U;await e.nextTick();const M=(U=i.value)==null?void 0:U.ctx;return M?(M.ready&&await M.ready(),M):null}function I(){var M,U,H;return((H=(U=(M=i.value)==null?void 0:M.ctx)==null?void 0:U.map)==null?void 0:H.value)??null}function E(){const M=I();if(!M)return null;const U=M.getCenter(),H=M.getZoom();return{x:U.lng.toFixed(5),y:U.lat.toFixed(5),z:H.toFixed(2)}}async function b(){var H;const M=await T(),U=(H=M==null?void 0:M.map)==null?void 0:H.value;U&&(typeof m.value=="number"&&U.setMinZoom(m.value),typeof x.value=="number"&&U.setMaxZoom(x.value))}function C(){const M=E();if(!M)return;const U=S(o.query.x),H=S(o.query.y),Z=S(o.query.z);U===M.x&&H===M.y&&Z===M.z||r.replace({query:{...o.query,...M}}).catch(()=>{})}function L(M,U,H=1e-6){return Math.abs(M-U)<=H}async function j(){var pe;const M=await T(),U=(pe=M==null?void 0:M.map)==null?void 0:pe.value;if(!M||!U)return;const H=parseFloat(S(o.query.x)??""),Z=parseFloat(S(o.query.y)??""),q=parseFloat(S(o.query.z)??""),z=!Number.isNaN(H),ue=!Number.isNaN(Z),ge=!Number.isNaN(q);let ye=!1;if(z&&ue){const xe=U.getCenter();(!L(xe.lng,H)||!L(xe.lat,Z))&&(U.setCenter([H,Z]),ye=!0)}ge&&U.setZoom(q),(!z||!ue||!ge||ye)&&C()}let D=null,O=null;function P(M){const U=M==null?void 0:M.lngLat;U&&(v.value={lng:U.lng,lat:U.lat})}async function Y(){const M=await T();M!=null&&M.on&&(D==null||D(),D=M.on("moveend",C),O==null||O(),O=M.on("mousemove",P))}e.onUnmounted(()=>{D==null||D(),D=null,O==null||O(),O=null});async function J(){var M,U;p.value=!1,a.value=!0,c.value=null,v.value=null;try{const H=await fetch(`/api/gis-map/${encodeURIComponent(g.value)}`);if(!H.ok)throw new Error(`Помилка завантаження (${H.status})`);const Z=await H.json();l.value=Z,l.value.widgets=Z.widgets,d.value=Z.tools||["home","print"];const q=await T();q&&(Z.center&&((M=q.setCenter)==null||M.call(q,Z.center)),Z.zoom&&((U=q.setZoom)==null||U.call(q,Z.zoom))),await b(),await j(),await Y(),p.value=!0}catch(H){c.value=(H==null?void 0:H.message)||"Не вдалося завантажити карту"}finally{a.value=!1}}const K=e.computed(()=>{var Z;const M=new Map;return B((Z=l.value)==null?void 0:Z.layers).forEach(q=>{q!=null&&q.id&&M.set(q.id,{...q})}),F.value.filter(q=>(q==null?void 0:q.type)==="layers").flatMap(q=>{var z;return B((z=q==null?void 0:q.config)==null?void 0:z.layers)}).forEach(q=>{if(!(q!=null&&q.id))return;const z=M.get(q.id)||{};M.set(q.id,{...z,...q,actions:q.actions||z.actions||null,name:z.name||q.name||q.title||z.title||q.id,title:z.title||q.title||z.name||null,visible:z.visible??q.visible??!0})}),Array.from(M.values())}),X=e.ref([]);function ae(M){X.value.includes(M)?X.value=X.value.filter(U=>U!==M):X.value.push(M)}const de=e.computed(()=>M=>X.value.includes(M.id));return e.watch([m,x],()=>{b()},{immediate:!0}),e.watch(g,()=>{J()}),e.onMounted(()=>{J()}),e.watch(()=>[o.query.x,o.query.y,o.query.z],()=>{j()}),(M,U)=>(e.openBlock(),e.createElementBlock("div",{class:"map-widget",style:e.normalizeStyle(s.value)},[e.createVNode(vn,{ref_key:"mapViewRef",ref:i,class:"map-widget__view"},{default:e.withCtx(()=>{var H,Z;return[h.value?(e.openBlock(),e.createBlock(An,{key:0,"layer-id":"app-boundary",boundary:h.value.boundary,katottg:h.value.katottg},null,8,["boundary","katottg"])):e.createCommentVNode("",!0),_.value?(e.openBlock(),e.createElementBlock("div",am,[k.value?(e.openBlock(),e.createBlock(om,{key:0,coordinates:k.value},null,8,["coordinates"])):e.createCommentVNode("",!0),e.createVNode(im,{"map-context":_.value,options:V.value},null,8,["map-context","options"])])):e.createCommentVNode("",!0),e.createElementVNode("div",sm,[d.value.includes("home")?(e.openBlock(),e.createBlock(em,{key:0,center:((H=l.value)==null?void 0:H.center)||null,zoom:((Z=l.value)==null?void 0:Z.zoom)??null},null,8,["center","zoom"])):e.createCommentVNode("",!0),d.value.includes("print")?(e.openBlock(),e.createBlock(Qp,{key:1})):e.createCommentVNode("",!0)]),p.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("div",cm,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(N,q=>e.createElementVNode("div",{key:q,class:e.normalizeClass(["map-widget__side",`map-widget__side--${q}`])},[q==="left"?(e.openBlock(),e.createElementBlock("div",dm)):e.createCommentVNode("",!0),w.value[q].top.length?(e.openBlock(),e.createElementBlock("div",um,[e.createElementVNode("div",pm,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value[q].top,z=>{var ue,ge,ye,pe,xe,Ne,Ue,qe;return e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:z.id||z.type,class:"map-overlay__item"},[z.type==="info"?(e.openBlock(),e.createBlock(Sn,{key:0,title:((ue=z.config)==null?void 0:ue.title)||z.title||null,content:((ge=z.config)==null?void 0:ge.content)||"",links:u.value,"map-name":f.value,"map-description":y.value},null,8,["title","content","links","map-name","map-description"])):z.type==="catalog"?(e.openBlock(),e.createBlock(Tn,{key:1,api:((ye=z.config)==null?void 0:ye.api)||null},null,8,["api"])):z.type==="layers"?(e.openBlock(),e.createBlock(Mn,{key:2,layers:K.value,onAction:U[0]||(U[0]=Et=>ae(Et.layerId)),config:z.config},null,8,["layers","config"])):z.type==="basemaps"?(e.openBlock(),e.createBlock(yt,{key:3,layers:((pe=z.config)==null?void 0:pe.layers)||null,"default-layer":((xe=z.config)==null?void 0:xe.default)||null,title:z.title||((Ne=z.config)==null?void 0:Ne.title)||null},null,8,["layers","default-layer","title"])):z.type==="legend"?(e.openBlock(),e.createBlock(xt,{key:4,items:((Ue=z.config)==null?void 0:Ue.items)||[]},null,8,["items"])):z.type==="filters"&&de.value(z)?(e.openBlock(),e.createBlock(ht,{key:5,"layer-id":(qe=z.config)==null?void 0:qe.layer,onClose:ae},null,8,["layer-id"])):z.type==="dataset"||z.type==="attribute"?(e.openBlock(),e.createBlock(In,{key:6,config:z.config},null,8,["config"])):z.type==="search"?(e.openBlock(),e.createBlock(Dn,{key:7,config:z.config},null,8,["config"])):e.createCommentVNode("",!0)])),[[e.vShow,z.visible!==!1]])}),128))])])):e.createCommentVNode("",!0),w.value[q].bottom.length?(e.openBlock(),e.createElementBlock("div",mm,[e.createElementVNode("div",fm,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value[q].bottom,z=>{var ue,ge,ye,pe,xe,Ne,Ue,qe;return e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:z.id||z.type,class:"map-overlay__item"},[z.type==="info"?(e.openBlock(),e.createBlock(Sn,{key:0,title:((ue=z.config)==null?void 0:ue.title)||z.title||null,content:((ge=z.config)==null?void 0:ge.content)||"",links:u.value,"map-name":f.value,"map-description":y.value},null,8,["title","content","links","map-name","map-description"])):z.type==="catalog"?(e.openBlock(),e.createBlock(Tn,{key:1,api:((ye=z.config)==null?void 0:ye.api)||null},null,8,["api"])):z.type==="layers"?(e.openBlock(),e.createBlock(Mn,{key:2,layers:K.value,onAction:U[1]||(U[1]=Et=>ae(Et.layerId)),config:z.config},null,8,["layers","config"])):z.type==="basemaps"?(e.openBlock(),e.createBlock(yt,{key:3,layers:((pe=z.config)==null?void 0:pe.layers)||null,"default-layer":((xe=z.config)==null?void 0:xe.default)||null,title:z.title||((Ne=z.config)==null?void 0:Ne.title)||null},null,8,["layers","default-layer","title"])):z.type==="legend"?(e.openBlock(),e.createBlock(xt,{key:4,items:((Ue=z.config)==null?void 0:Ue.items)||[]},null,8,["items"])):z.type==="filters"&&de.value(z)?(e.openBlock(),e.createBlock(ht,{key:5,"layer-id":(qe=z.config)==null?void 0:qe.layer,onClose:ae},null,8,["layer-id"])):z.type==="dataset"||z.type==="attribute"?(e.openBlock(),e.createBlock(In,{key:6,config:z.config},null,8,["config"])):z.type==="search"?(e.openBlock(),e.createBlock(Dn,{key:7,config:z.config},null,8,["config"])):e.createCommentVNode("",!0)])),[[e.vShow,z.visible!==!1]])}),128))])])):e.createCommentVNode("",!0)],2)),64))]),e.createVNode(Cn),e.createVNode($n)],64)):e.createCommentVNode("",!0)]}),_:1},512),a.value?(e.openBlock(),e.createElementBlock("div",gm,"Завантаження карти…")):c.value?(e.openBlock(),e.createElementBlock("div",hm,e.toDisplayString(c.value),1)):e.createCommentVNode("",!0)],4))}}),[["__scopeId","data-v-6e34dcde"]]);function ym(t){t.component("MapCustom",wt)}te.MapWidget=wt,te.Register=Ii,te.Service=hu,te.default=wt,te.install=ym,te.template1=Vt,te.template2=$t,te.template3=At,te.template4=St,te.template5=Lt,Object.defineProperties(te,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
85
+ `),i=l?"+":r?"":"-";return o+i+`
86
+ `}function Zn(t){return t[t.length-1]===`
87
+ `?t.slice(0,-1):t}function Kc(t,n){for(var o=/(\n+)([^\n]*)/g,r=(function(){var u=t.indexOf(`
88
+ `);return u=u!==-1?u:t.length,o.lastIndex=u,Wn(t.slice(0,u),n)})(),l=t[0]===`
89
+ `||t[0]===" ",i,a;a=o.exec(t);){var c=a[1],p=a[2];i=p[0]===" ",r+=c+(!l&&!i&&p!==""?`
90
+ `:"")+Wn(p,n),l=i}return r}function Wn(t,n){if(t===""||t[0]===" ")return t;for(var o=/ [^ ]/g,r,l=0,i,a=0,c=0,p="";r=o.exec(t);)c=r.index,c-l>n&&(i=a>l?a:c,p+=`
91
+ `+t.slice(l,i),l=i+1),a=c;return p+=`
92
+ `,t.length-l>n&&a>l?p+=t.slice(l,a)+`
93
+ `+t.slice(a+1):p+=t.slice(l),p.slice(1)}function Gc(t){for(var n="",o=0,r,l=0;l<t.length;o>=65536?l+=2:l++)o=at(t,l),r=ue[o],!r&&it(o)?(n+=t[l],o>=65536&&(n+=t[l+1])):n+=r||Pc(o);return n}function Xc(t,n,o){var r="",l=t.tag,i,a,c;for(i=0,a=o.length;i<a;i+=1)c=o[i],t.replacer&&(c=t.replacer.call(o,String(i),c)),(Te(t,n,c,!1,!1)||typeof c>"u"&&Te(t,n,null,!1,!1))&&(r!==""&&(r+=","+(t.condenseFlow?"":" ")),r+=t.dump);t.tag=l,t.dump="["+r+"]"}function Kn(t,n,o,r){var l="",i=t.tag,a,c,p;for(a=0,c=o.length;a<c;a+=1)p=o[a],t.replacer&&(p=t.replacer.call(o,String(a),p)),(Te(t,n+1,p,!0,!0,!1,!0)||typeof p>"u"&&Te(t,n+1,null,!0,!0,!1,!0))&&((!r||l!=="")&&(l+=Mt(t,n)),t.dump&&rt===t.dump.charCodeAt(0)?l+="-":l+="- ",l+=t.dump);t.tag=i,t.dump=l||"[]"}function Qc(t,n,o){var r="",l=t.tag,i=Object.keys(o),a,c,p,u,h;for(a=0,c=i.length;a<c;a+=1)h="",r!==""&&(h+=", "),t.condenseFlow&&(h+='"'),p=i[a],u=o[p],t.replacer&&(u=t.replacer.call(o,p,u)),Te(t,n,p,!1,!1)&&(t.dump.length>1024&&(h+="? "),h+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),Te(t,n,u,!1,!1)&&(h+=t.dump,r+=h));t.tag=l,t.dump="{"+r+"}"}function Jc(t,n,o,r){var l="",i=t.tag,a=Object.keys(o),c,p,u,h,s,m;if(t.sortKeys===!0)a.sort();else if(typeof t.sortKeys=="function")a.sort(t.sortKeys);else if(t.sortKeys)throw new he("sortKeys must be a boolean or a function");for(c=0,p=a.length;c<p;c+=1)m="",(!r||l!=="")&&(m+=Mt(t,n)),u=a[c],h=o[u],t.replacer&&(h=t.replacer.call(o,u,h)),Te(t,n+1,u,!0,!0,!0)&&(s=t.tag!==null&&t.tag!=="?"||t.dump&&t.dump.length>1024,s&&(t.dump&&rt===t.dump.charCodeAt(0)?m+="?":m+="? "),m+=t.dump,s&&(m+=Mt(t,n)),Te(t,n+1,h,!0,s)&&(t.dump&&rt===t.dump.charCodeAt(0)?m+=":":m+=": ",m+=t.dump,l+=m));t.tag=i,t.dump=l||"{}"}function Gn(t,n,o){var r,l,i,a,c,p;for(l=o?t.explicitTypes:t.implicitTypes,i=0,a=l.length;i<a;i+=1)if(c=l[i],(c.instanceOf||c.predicate)&&(!c.instanceOf||typeof n=="object"&&n instanceof c.instanceOf)&&(!c.predicate||c.predicate(n))){if(o?c.multi&&c.representName?t.tag=c.representName(n):t.tag=c.tag:t.tag="?",c.represent){if(p=t.styleMap[c.tag]||c.defaultStyle,Ln.call(c.represent)==="[object Function]")r=c.represent(n,p);else if(Fn.call(c.represent,p))r=c.represent[p](n,p);else throw new he("!<"+c.tag+'> tag resolver accepts not "'+p+'" style');t.dump=r}return!0}return!1}function Te(t,n,o,r,l,i,a){t.tag=null,t.dump=o,Gn(t,o,!1)||Gn(t,o,!0);var c=Ln.call(t.dump),p=r,u;r&&(r=t.flowLevel<0||t.flowLevel>n);var h=c==="[object Object]"||c==="[object Array]",s,m;if(h&&(s=t.duplicates.indexOf(o),m=s!==-1),(t.tag!==null&&t.tag!=="?"||m||t.indent!==2&&n>0)&&(l=!1),m&&t.usedDuplicates[s])t.dump="*ref_"+s;else{if(h&&m&&!t.usedDuplicates[s]&&(t.usedDuplicates[s]=!0),c==="[object Object]")r&&Object.keys(t.dump).length!==0?(Jc(t,n,t.dump,l),m&&(t.dump="&ref_"+s+t.dump)):(Qc(t,n,t.dump),m&&(t.dump="&ref_"+s+" "+t.dump));else if(c==="[object Array]")r&&t.dump.length!==0?(t.noArrayIndent&&!a&&n>0?Kn(t,n-1,t.dump,l):Kn(t,n,t.dump,l),m&&(t.dump="&ref_"+s+t.dump)):(Xc(t,n,t.dump),m&&(t.dump="&ref_"+s+" "+t.dump));else if(c==="[object String]")t.tag!=="?"&&Wc(t,t.dump,n,i,p);else{if(c==="[object Undefined]")return!1;if(t.skipInvalid)return!1;throw new he("unacceptable kind of an object to dump "+c)}t.tag!==null&&t.tag!=="?"&&(u=encodeURI(t.tag[0]==="!"?t.tag.slice(1):t.tag).replace(/!/g,"%21"),t.tag[0]==="!"?u="!"+u:u.slice(0,18)==="tag:yaml.org,2002:"?u="!!"+u.slice(18):u="!<"+u+">",t.dump=u+" "+t.dump)}return!0}function ed(t,n){var o=[],r=[],l,i;for(Dt(t,o,r),l=0,i=r.length;l<i;l+=1)n.duplicates.push(o[r[l]]);n.usedDuplicates=new Array(i)}function Dt(t,n,o){var r,l,i;if(t!==null&&typeof t=="object")if(l=n.indexOf(t),l!==-1)o.indexOf(l)===-1&&o.push(l);else if(n.push(t),Array.isArray(t))for(l=0,i=t.length;l<i;l+=1)Dt(t[l],n,o);else for(r=Object.keys(t),l=0,i=r.length;l<i;l+=1)Dt(t[r[l]],n,o)}function td(t,n){n=n||{};var o=new Uc(n);o.noRefs||ed(t,o);var r=t;return o.replacer&&(r=o.replacer.call({"":r},"",r)),Te(o,0,r,!0,!0)?o.dump+`
94
+ `:""}var nd=td,od={dump:nd},rd=wc.load,Xn=od.dump;const ld={class:"flex flex-col flex-1 overflow-hidden"},id={class:"flex justify-end gap-2"},ad={class:"w-min-20 gap-2 whitespace-nowrap rounded-md font-medium ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary hover:bg-primary/90 px-4 py-2 h-9 text-xs bg-gradient-to-r from-sky-400 to-blue-400 hover:from-sky-500 hover:to-blue-500 text-white shadow-sm transition-all duration-300 hover:shadow-md hover:scale-[1.02] relative overflow-hidden"},sd=["href"],cd={class:"flex flex-col flex-1 overflow-hidden"},dd={class:"bg-white rounded-xl border border-gray-200 shadow-sm overflow-hidden mt-3 flex flex-col flex-1"},ud={class:"relative bg-gradient-to-br from-slate-50 to-white flex-1"},pd=e.defineComponent({__name:"vs-tab-style",props:{token:{},styleYaml:{}},emits:["update:styleYaml","update"],setup(t,{emit:n}){const o=t,r=n,l=e.ref("");e.watch(()=>o.styleYaml,p=>{try{const u=p?Xn(p):"";!l.value&&u!==l.value&&(l.value=u)}catch{l.value=""}},{immediate:!0,deep:!0}),e.watch(l,async p=>{var u,h;try{const s=p?rd(p):null;if((u=s==null?void 0:s.colorAttr)!=null&&u.length&&((h=o.styleYaml)==null?void 0:h.colorAttr)!==s.colorAttr){const m=await i(s.colorAttr);s.colors=m.reduce((d,f,g)=>({...d,[f.id.toString()]:a[g]}),{});const y=Xn(s);y!==l.value&&(l.value=y)}JSON.stringify(s)!==JSON.stringify(o.styleYaml)&&r("update:styleYaml",s)}catch{}});async function i(p){return(await fetch(`/api/gis-service/${o.token}/${p}`).then(h=>h.json())).rows}const a=["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd"],c=async()=>{try{await fetch(`/api/gis-service/${o.token}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({style:l.value})}),r("update"),ce.notify({type:"success",title:"Успіх",message:"Стилі збережено"})}catch(p){ce.notify({type:"error",title:"Помилка",message:"Не вдалося зберегти стилі"}),console.log(p)}};return(p,u)=>(e.openBlock(),e.createElementBlock("div",ld,[e.createElementVNode("div",id,[e.createElementVNode("button",ad,[e.createElementVNode("a",{target:"_blank",href:"/api/gis-service/"+o.token+"/col"},"Атрибути",8,sd)]),e.createElementVNode("button",{onClick:c,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary hover:bg-primary/90 px-4 py-2 h-9 text-xs bg-gradient-to-r from-sky-400 to-blue-400 hover:from-sky-500 hover:to-blue-500 text-white shadow-sm transition-all duration-300 hover:shadow-md hover:scale-[1.02] relative overflow-hidden"},[...u[1]||(u[1]=[e.createElementVNode("svg",{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:"lucide lucide-save h-3 w-3 mr-1"},[e.createElementVNode("path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z"}),e.createElementVNode("path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7"}),e.createElementVNode("path",{d:"M7 3v4a1 1 0 0 0 1 1h7"})],-1),e.createTextVNode(" Зберегти стилі ",-1)])])]),e.createElementVNode("div",cd,[e.createElementVNode("div",dd,[u[2]||(u[2]=e.createElementVNode("div",{class:"bg-gradient-to-r from-gray-50 to-gray-100 px-4 py-2 border-b border-gray-200 flex items-center justify-between"},[e.createElementVNode("div",{class:"text-xs text-gray-400"},"YAML")],-1)),e.createElementVNode("div",ud,[e.createVNode(un,{modelValue:l.value,"onUpdate:modelValue":u[0]||(u[0]=h=>l.value=h),language:"yaml",theme:"vs-light"},null,8,["modelValue"])])])])]))}}),Qn=Symbol("MapContext");function md(t){const n=e.shallowRef(null),o=e.ref(!1);let r=!1;const l=[],i=()=>{r=!0,l.length&&l.forEach(s=>s())},a=()=>{const s=t.container;return typeof s=="string"?document.getElementById(s):(s==null?void 0:s.value)!==void 0?s.value:s},c=()=>r?Promise.resolve():new Promise(s=>l.push(s)),p=async()=>{var m,y,d,f;if(typeof window>"u"||n.value)return;const s=a();if(!s)throw new Error("Map container not found");n.value=new maplibregl.Map({...t.mapOptions||{},attributionControl:!1,center:[30,50],zoom:7,container:s}),(m=t.controls)!=null&&m.navigation&&n.value.addControl(new maplibregl.NavigationControl(typeof t.controls.navigation=="object"?t.controls.navigation:{}),"top-right"),(y=t.controls)!=null&&y.scale&&n.value.addControl(new maplibregl.ScaleControl(typeof t.controls.scale=="object"?t.controls.scale:{}),"bottom-left"),(d=t.controls)!=null&&d.fullscreen&&n.value.addControl(new maplibregl.FullscreenControl,"top-right"),(f=t.controls)!=null&&f.geolocate&&n.value.addControl(new maplibregl.GeolocateControl(typeof t.controls.geolocate=="object"?t.controls.geolocate:{}),"top-right"),n.value.once("load",()=>{o.value=!0,i()})},u=()=>{n.value&&(n.value.remove(),n.value=null,o.value=!1)};e.onMounted(p),e.onUnmounted(u);const h={map:n,ready:c,flyTo:s=>{var m;return(m=n.value)==null?void 0:m.flyTo(s)},fitBounds:(s,m)=>{var y;return(y=n.value)==null?void 0:y.fitBounds(s,m)},setCenter:s=>{var m;return(m=n.value)==null?void 0:m.setCenter(s)},setZoom:s=>{var m;return(m=n.value)==null?void 0:m.setZoom(s)},addControl:(s,m)=>{var y;return(y=n.value)==null?void 0:y.addControl(s,m)},removeControl:s=>{var m;return(m=n.value)==null?void 0:m.removeControl(s)},on:(s,m,y)=>{var d,f;return typeof m=="string"?((d=n.value)==null||d.on(s,m,y),()=>{var g;return(g=n.value)==null?void 0:g.off(s,m,y)}):((f=n.value)==null||f.on(s,m),()=>{var g;return(g=n.value)==null?void 0:g.off(s,m)})},off:(s,m,y)=>{var d,f;typeof m=="string"?(d=n.value)==null||d.off(s,m,y):(f=n.value)==null||f.off(s,m)},project:s=>{var m;return(m=n.value)==null?void 0:m.project(s)},unproject:s=>{var m;return(m=n.value)==null?void 0:m.unproject(s)}};return e.provide(Qn,h),h}function xe(t){if(t)return{map:t,flyTo:t.value.flyTo,fitBounds:t.value.fitBounds};const n=e.inject(Qn);if(!n)throw new Error("useMap() called outside of a Map provider");return n}const jt=new Map,Ot={};function zt(t){if(t.colorAttr&&t.colors){const n=Object.entries(t.colors).flat();return["match",["get",t.colorAttr],...n,"#94a3b8"]}return null}function fd(t){if(!t.icon||!t.colors)return null;const n=[],o=t.icon.split("+")[0];return Object.values(t.colors).forEach(r=>{n.push(`${o}+${r.replace("#","")}.png`)}),["match",["get",t.colorAttr],...Object.entries(t.colors).reduce((r,[l,i],a)=>r.concat([l,n[a]]),[]),t.icon]}function st(t,n){n&&(Array.isArray(n)?t.push(...n):t.push(n))}function gd(t,n){var s;const o=(t==null?void 0:t.clusterZoom)??(t==null?void 0:t.pointZoom)??(t==null?void 0:t.iconZoom)??12,r=Number(o);if(!Number.isFinite(r))return null;const l=["coalesce",["get","point_count"],["get","pointCount"],["get","cluster_count"],["get","clusterCount"],0],i=["any",["has","point_count"],["has","pointCount"],["has","cluster_count"],["has","clusterCount"]],a=["!",i],c=((s=n.paint)==null?void 0:s["circle-color"])||t.color||"#f97316",p={type:"circle",maxzoom:r,filter:i,paint:{"circle-color":c,"circle-radius":["step",l,20,20,30,50,40],"circle-stroke-color":"#fff","circle-stroke-width":1}},u={type:"symbol",maxzoom:r,filter:i,layout:{"text-field":["to-string",["coalesce",["get","point_count_abbreviated"],["get","cluster_count_abbreviated"],["get","clusterCountAbbreviated"],l]],"text-font":["Noto Sans Regular"],"text-size":12,"text-allow-overlap":!0},paint:{"text-color":"#172554"}},h={...n,filter:["all",a,n.filter||!0]};return[p,u,h]}function Jn(t,n){const o=zt(t);if(t.icon&&!t.iconZoom&&!t.clusterZoom)return;const r={type:"circle",maxzoom:n||t.iconZoom||22,paint:{"circle-stroke-color":(t==null?void 0:t.stroke)||"#fff","circle-opacity":t.opacity||1,"circle-color":o||t.color,"circle-stroke-width":t.width||1,"circle-radius":t.radius||5}},l=gd(t,r);return l||r}function hd(t){const n=zt(t);return{type:"fill",minzoom:t.pointZoom||0,paint:{"fill-color":n||t.color,"fill-opacity":t.opacity||.3,"fill-outline-color":t.stroke}}}function yd(t){return{type:"line",paint:{"line-color":zt(t)||t.color,"line-opacity":t.opacity||1,"line-width":t.width||1.5}}}function xd(t){const n=fd(t);return{type:"symbol",minzoom:t.iconZoom||0,layout:{"icon-image":n||t.icon,"icon-size":1,"icon-allow-overlap":!0,"icon-ignore-placement":!0}}}function eo(t){if(!t)return[];const n=[];return t.icon&&st(n,xd(t)),t.pointZoom&&st(n,Jn(t,t.pointZoom)),t.type==="polygon"?st(n,hd(t)):t.type==="line"?st(n,yd(t)):st(n,Jn(t)),n.filter(Boolean)}function kd(t){return{type:"geojson",data:{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"Point",coordinates:t}}]}}}async function to(t,n,o){const r=[n],l=n.split("+")[0];Object.values(o||{}).forEach(i=>{r.push(`${l}+${i.replace("#","")}.png`)});for(const i of r){if(t.getImage(i))continue;const a=await t.loadImage(`/api/gis-icon/${i}`);t.addImage(i,a.data)}}function ee(t,n,o){var F,j;if(!t)return Ot;if(!n)return Ot[t];const{map:r,ready:l=()=>Promise.resolve()}=xe(o),i=t||((F=n.layer)==null?void 0:F.id),a=n.sourceId??t,c={...n};c.point&&(c.source=kd(c.point)),!c.layer&&((j=c.source)==null?void 0:j.type)==="raster"&&(c.layer={id:a,type:"raster",source:a}),c.layer&&!c.layer.source&&Object.assign(c.layer,{source:a});let p=!1,u=!1;const h=()=>{var M,S,k,E;if(!(u||!r.value)){if(c.source&&!r.value.getSource(a)&&r.value.addSource(a,c.source),!r.value.getLayer(i)){const L=c.beforeId===0?(S=(M=r.value.getStyle().layers)==null?void 0:M[0])==null?void 0:S.id:c.beforeId;(E=(k=c.layer)==null?void 0:k.style)!=null&&E.icon&&to(r.value,c.layer.style.icon,c.layer.style.colors);const P=eo(c.style||c.layer.style);if(!P.length){r.value.addLayer(c.layer,L);return}P.forEach((O,R)=>{var Z;const U={...O,id:`${i}${R||""}`,source:a};((Z=c.source)==null?void 0:Z.type)==="vector"&&(U["source-layer"]=a),r.value.addLayer(U,L)})}p=!0}};l().then(h);const s=(M,S)=>r.value?(r.value.on(M,i,S),()=>{var k;return(k=r.value)==null?void 0:k.off(M,i,S)}):()=>{},m=M=>{r.value&&r.value.getStyle().layers.filter(S=>S.source===i).forEach(S=>{r.value.setLayoutProperty(S.id,"visibility",M?"visible":"none")})},y=(M=!0)=>{r.value&&(r.value.getStyle().layers.filter(S=>S.source===i).forEach(S=>{r.value.removeLayer(S.id)}),u=!0,c.source&&M&&r.value.getSource(a)&&r.value.removeSource(a))},d=async M=>{if(!r.value)return;M.icon&&to(r.value,M.icon,M.colors);const S=eo(M);y(!1),S.forEach((k,E)=>{const L={...k,id:`${i}${E}`,source:c.layer.source,"source-layer":c.layer.source};r.value.addLayer(L)})},f=M=>{r.value&&Object.entries(M).forEach(([S,k])=>{r.value.setPaintProperty(i,S,k)})},g=(M,S,k)=>{const E=r.value;if(E)switch(S){case"raster":E.setPaintProperty(M,"raster-opacity",k);break;case"fill":E.setPaintProperty(M,"fill-opacity",k);break;case"line":E.setPaintProperty(M,"line-opacity",k);break;case"circle":E.setPaintProperty(M,"circle-opacity",k);break;case"symbol":E.setPaintProperty(M,"icon-opacity",k),E.setPaintProperty(M,"text-opacity",k);break}},I={ids:{layerId:i,sourceId:a},isMounted:()=>{var M;return p&&!!((M=r.value)!=null&&M.getLayer(i))},setVisible:m,updatePaint:f,updateLayout:M=>{r.value&&Object.entries(M).forEach(([S,k])=>{r.value.setLayoutProperty(i,S,k)})},updateFilter:M=>{r.value&&r.value.setFilter(i,M)},setOpacity:M=>{var E;if(!r.value)return;const k=(((E=r.value.getStyle())==null?void 0:E.layers)||[]).filter(L=>L.source===a);if(!k.length){const L=r.value.getLayer(i);L&&g(i,L.type,M);return}k.forEach(L=>g(L.id,L.type,M))},setData:M=>{if(!r.value)return;const S=r.value.getSource(a);S&&"setData"in S&&S.setData(M)},setTiles:M=>{if(!r.value)return;const S=r.value.getSource(a);S&&"setTiles"in S&&S.setTiles(M)},setStyle:d,setFilter:M=>{var k,E;if(!r.value)return;const S=r.value.getSource(a);if(S&&"setTiles"in S&&((E=(k=c.source)==null?void 0:k.tiles)!=null&&E[0])){const L=c.source.tiles[0];S.setTiles([`${L}${L.includes("?")?"&":"?"}filter=${M}`])}},setFeatureState:(M,S)=>{r.value&&r.value.setFeatureState({source:a,...M},S)},removeFeatureState:(M,S)=>{r.value&&r.value.removeFeatureState({source:a,...M},S?{key:S}:void 0)},remove:y,card:c.card,popup:c.popup,opts:c,getSource:()=>{var M;return(M=r.value)==null?void 0:M.getSource(a)},getLayer:()=>{var M;return(M=r.value)==null?void 0:M.getLayer(i)},on:s};jt.set(i,I);const C=()=>{jt.get(i)===I&&jt.delete(i)},v=I.remove;return I.remove=()=>{C(),v()},e.onBeforeUnmount(I.remove),Ot[t]=I,I}const bd={class:"flex flex-col flex-1 min-h-0"},wd={class:"flex flex-col flex-1 min-h-0"},_d=e.defineComponent({__name:"vs-tab-popup",props:{token:{},fields:{},columns:{}},emits:["update:columns","save"],setup(t,{emit:n}){const o=t,r=n,l=e.ref(o.columns||[]);e.watch(()=>o.columns,d=>l.value=d||[],{immediate:!0}),e.watch(l,d=>{const f=ee(o.token);f&&(f.popup=d),r("update:columns",d)});const i=e.ref("list"),a=e.ref(!1),c=e.ref([]),p=[{key:"name",label:"Name",type:"main"},{key:"meta",label:"Meta"}],u={name:{type:"text",label:"Name",disabled:!0,validators:["required"]},label:{type:"text",label:"Label",validators:["required"]},meta:{type:"radio",label:"Meta",mode:"combo",options:[{text:"Title",id:"title"},{text:"Feature",id:"feature"},{text:"Badge",id:"badge"}]},data:{type:"text",label:"Data"}};function h(){c.value=l.value.map(d=>d.name||d.id),a.value=!0}function s(){var V;const d=[...l.value],f=((V=o.fields)==null?void 0:V.filter(b=>c.value.includes(b.name)))||[],g=Ge(d,f,{selectedKeys:c.value,resolveKey:b=>De(b)});l.value=g,a.value=!1,c.value=[]}function m(){a.value=!1,c.value=[]}function y(){let d=[];i.value==="all"?d=o.fields||[]:i.value==="none"?d=[]:d=l.value,d.filter(f=>!f.label).forEach(f=>f.label=f.ua),r("save",d)}return(d,f)=>(e.openBlock(),e.createElementBlock("div",bd,[e.createElementVNode("div",{class:"flex justify-between mb-3 gap-2"},[e.createElementVNode("button",{onClick:h,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium bg-gradient-to-r from-gray-500 to-gray-400 text-white h-9 px-4 py-2 hover:from-gray-600 hover:to-gray-500"}," Імпорт "),e.createElementVNode("button",{onClick:y,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium bg-gradient-to-r from-sky-400 to-blue-400 hover:from-sky-500 hover:to-blue-500 text-white shadow-sm px-4 py-2 h-9 text-xs transition-all duration-300"}," Зберегти попап ")]),e.createElementVNode("div",wd,[i.value==="list"?(e.openBlock(),e.createBlock(Re,{key:0,modelValue:l.value,"onUpdate:modelValue":f[0]||(f[0]=g=>l.value=g),"columns-scheme":p,"form-scheme":u,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])):e.createCommentVNode("",!0)]),e.createVNode(We,{visible:a.value,"onUpdate:visible":f[1]||(f[1]=g=>a.value=g),selection:c.value,"onUpdate:selection":f[2]||(f[2]=g=>c.value=g),fields:t.fields,title:"Імпорт полів","id-prefix":"import-popup",onConfirm:s,onCancel:m},null,8,["visible","selection","fields"])]))}}),Ed={class:"flex flex-col flex-1 min-h-0"},Bd={class:"flex justify-between mb-3 gap-2"},Nd={class:"p-4 space-y-4 text-sm"},vd={class:"space-y-1"},Cd={class:"space-y-1"},Vd={class:"flex items-center gap-3"},$d={class:"flex justify-end gap-2 p-4 border-t"},Ad=e.defineComponent({__name:"vs-tab-legend",props:{mapInfo:{},token:{},columns:{}},emits:["update:columns","save"],setup(t,{emit:n}){const o=t,r=n,l=e.ref(o.columns||[]);e.watch(()=>o.columns,d=>{l.value=d||[]}),e.watch(l,d=>{r("update:columns",d)});const i=e.ref(!1),a=e.ref({name:"",color:"#2E86DE"}),c=e.defineAsyncComponent(()=>import("@opengis/core").then(d=>d.VsModal)),p=[{key:"name",label:"Назва"},{key:"color",label:"Колір",type:"color"}],u={name:{type:"text",label:"Назва",validators:["required"]},color:{type:"color",label:"Колір",validators:["required"]}};function h(d){d&&s(),i.value=d}function s(){a.value={name:"",color:"#2E86DE"}}function m(){var V,b;const d=(V=a.value.name)==null?void 0:V.trim();if(!d){ce.notify({type:"warning",title:"Перевірка",message:"Вкажіть назву елементу легенди"});return}const f=((b=a.value.color)==null?void 0:b.trim())||"#2E86DE";if(l.value.some(w=>De(w)===De({name:d}))){ce.notify({type:"warning",title:"Дубль",message:"Такий елемент легенди вже існує"});return}l.value=[...l.value,{name:d,color:f}],s(),i.value=!1}function y(){r("save",l.value)}return(d,f)=>(e.openBlock(),e.createElementBlock("div",Ed,[e.createElementVNode("div",Bd,[e.createElementVNode("button",{onClick:f[0]||(f[0]=g=>i.value=!0),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium bg-gradient-to-r from-gray-500 to-gray-400 text-white h-9 px-4 py-2 hover:from-gray-600 hover:to-gray-500"}," Додати "),e.createElementVNode("button",{onClick:y,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium bg-gradient-to-r from-sky-400 to-blue-400 hover:from-sky-500 hover:to-blue-500 text-white shadow-sm px-4 py-2 h-9 text-xs transition-all duration-300"}," Зберегти легенду ")]),e.createVNode(Re,{modelValue:l.value,"onUpdate:modelValue":f[1]||(f[1]=g=>l.value=g),"columns-scheme":p,"form-scheme":u,"main-col-width":"250px","add-button":!1},null,8,["modelValue"]),e.createVNode(e.unref(c),{teleport:"#modal",visible:i.value,title:"Новий елемент легенди","onUpdate:visible":h},{footer:e.withCtx(()=>[e.createElementVNode("div",$d,[e.createElementVNode("button",{type:"button",class:"px-4 py-2 rounded bg-gray-100 text-gray-700",onClick:f[5]||(f[5]=g=>h(!1))}," Скасувати "),e.createElementVNode("button",{type:"button",class:"px-4 py-2 rounded bg-blue-600 text-white",onClick:m}," Додати ")])]),default:e.withCtx(()=>[e.createElementVNode("div",Nd,[e.createElementVNode("div",vd,[f[6]||(f[6]=e.createElementVNode("label",{class:"block text-xs font-medium text-gray-500 uppercase tracking-wide"}," Назва ",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":f[2]||(f[2]=g=>a.value.name=g),type:"text",class:"w-full rounded-md border border-gray-300 px-3 py-2 text-sm focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-200",placeholder:"Наприклад, Житлова зона"},null,512),[[e.vModelText,a.value.name]])]),e.createElementVNode("div",Cd,[f[7]||(f[7]=e.createElementVNode("label",{class:"block text-xs font-medium text-gray-500 uppercase tracking-wide"}," Колір ",-1)),e.createElementVNode("div",Vd,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":f[3]||(f[3]=g=>a.value.color=g),type:"color",class:"h-10 w-16 rounded border border-gray-300"},null,512),[[e.vModelText,a.value.color]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":f[4]||(f[4]=g=>a.value.color=g),type:"text",class:"flex-1 rounded-md border border-gray-300 px-3 py-2 text-sm focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-200",placeholder:"#FFFFFF"},null,512),[[e.vModelText,a.value.color]])])])])]),_:1},8,["visible"])]))}}),Sd={class:"space-y-3 bg-gradient-to-br from-sky-50 to-blue-50 p-4 rounded-xl border border-sky-100 shadow-sm"},Ld=["onClick"],Fd=["aria-checked","value"],Td={key:0},Md=e.defineComponent({__name:"view-mode-toggle",props:{modelValue:{},options:{},showHtml:{type:Boolean}},emits:["update:modelValue"],setup(t,{emit:n}){const o=t,r=n,l=a=>r("update:modelValue",a),i=o.options||[{value:"all",label:"All"},{value:"list",label:"List"},{value:"none",label:"None"}];return(a,c)=>(e.openBlock(),e.createElementBlock("div",Sd,[c[1]||(c[1]=e.createElementVNode("label",{class:"text-sm font-medium text-gray-600"},"Режим відображення",-1)),e.createElementVNode("div",{role:"radiogroup",class:e.normalizeClass(["grid gap-2",`grid-cols-${e.unref(i).length}`])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(i),p=>(e.openBlock(),e.createElementBlock("div",{key:p.value,onClick:u=>l(p.value),class:e.normalizeClass(["flex items-center justify-center space-x-2 rounded-lg p-2 border transition-all duration-300 cursor-pointer",[t.modelValue===p.value?"bg-gradient-to-r from-sky-200 to-blue-200 border-transparent shadow-sm":"bg-white border-gray-100 hover:border-sky-200 hover:shadow-sm"]])},[e.createElementVNode("button",{type:"button",role:"radio","aria-checked":t.modelValue===p.value,value:p.value,class:"aspect-square rounded-full border border-primary h-4 w-4 flex items-center justify-center text-sky-500"},[t.modelValue===p.value?(e.openBlock(),e.createElementBlock("span",Td,[...c[0]||(c[0]=[e.createElementVNode("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:"lucide lucide-circle h-2.5 w-2.5 fill-current text-current"},[e.createElementVNode("circle",{cx:"12",cy:"12",r:"10"})],-1)])])):e.createCommentVNode("",!0)],8,Fd),e.createElementVNode("label",{class:e.normalizeClass(["text-xs font-medium cursor-pointer",t.modelValue===p.value?"text-gray-700":"text-gray-600"])},e.toDisplayString(p.label),3)],10,Ld))),128))],2)]))}}),Id={class:"flex flex-col flex-1 min-h-0"},Dd={class:"flex flex-col flex-1 min-h-0"},jd=e.defineComponent({__name:"vs-tab-card",props:{fields:{},columns:{},viewMode:{},html:{}},emits:["update:columns","save"],setup(t,{emit:n}){const o=t,r=n,l=e.ref(o.columns||[]);e.watch(()=>o.columns,g=>l.value=g||[],{immediate:!0}),e.watch(l,g=>r("update:columns",g));const i=e.ref(o.viewMode??"list");e.watch(()=>o.viewMode,g=>{g&&g!==i.value&&(i.value=g)});const a=e.ref(o.html??"");e.watch(()=>o.html,g=>{typeof g=="string"&&g!==a.value&&(a.value=g)},{immediate:!0});const c=e.ref(!1),p=e.ref([]),u=[{key:"name",label:"Name",type:"main"},{key:"format",label:"Format"}],h={name:{type:"text",label:"Name",validators:["required"],disabled:!0},label:{type:"text",label:"Label",validators:["required"]},format:{type:"radio",label:"Format",mode:"inline",validators:["required"],options:[{text:"Text",id:"text"},{text:"Number",id:"number"},{text:"Date",id:"date"},{text:"File",id:"file"},{text:"Select",id:"select"}]},data:{type:"text",label:"Data"}};function s(){p.value=i.value==="html"?[]:l.value.map(g=>g.name||g.id),c.value=!0}function m(){var w;const g=[...l.value],V=((w=o.fields)==null?void 0:w.filter(N=>p.value.includes(N.name)).map(N=>{const{type:A,format:x,...T}=N;return{...T,format:x??A??"text"}}))||[],b=Ge(g,V,{selectedKeys:p.value,resolveKey:N=>De(N)});if(l.value=b,i.value==="html"&&V.length){const N=V.map(T=>{const $=T.label??"",I=T.name??T.id??"";return`<dd>${$}</dd>
95
+ <dt>{{ ${I} }}</dt>`}).join(`
96
+ `),x=(a.value??"").trimEnd();a.value=x?`${x}
97
+ ${N}`:N}c.value=!1,p.value=[]}function y(){c.value=!1,p.value=[]}function d(){const g=i.value==="html"?"html":"list",V={card_mode:g};g==="html"?V.html=a.value:g==="list"&&(V.list=l.value),r("save","card",V)}const f=[{value:"all",label:"Всі"},{value:"list",label:"Список"},{value:"none",label:"Жодне"},{value:"html",label:"HTML"}];return(g,V)=>(e.openBlock(),e.createElementBlock("div",Id,[e.createElementVNode("div",{class:"flex justify-between mb-3 gap-2"},[e.createElementVNode("button",{onClick:s,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium bg-gradient-to-r from-gray-500 to-gray-400 text-white h-9 px-4 py-2 hover:from-gray-600 hover:to-gray-500"}," Імпорт "),e.createElementVNode("button",{onClick:d,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium bg-gradient-to-r from-sky-400 to-blue-400 hover:from-sky-500 hover:to-blue-500 text-white shadow-sm px-4 py-2 h-9 text-xs transition-all duration-300"}," Зберегти ")]),e.createVNode(Md,{modelValue:i.value,"onUpdate:modelValue":V[0]||(V[0]=b=>i.value=b),options:f},null,8,["modelValue"]),e.createElementVNode("div",Dd,[i.value==="list"?(e.openBlock(),e.createBlock(Re,{key:0,modelValue:l.value,"onUpdate:modelValue":V[1]||(V[1]=b=>l.value=b),"columns-scheme":u,"form-scheme":h,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])):i.value==="html"?(e.openBlock(),e.createBlock(un,{key:1,modelValue:a.value,"onUpdate:modelValue":V[2]||(V[2]=b=>a.value=b),language:"html",theme:"vs-light",class:"flex-1 min-h-0"},null,8,["modelValue"])):e.createCommentVNode("",!0)]),e.createVNode(We,{visible:c.value,"onUpdate:visible":V[3]||(V[3]=b=>c.value=b),selection:p.value,"onUpdate:selection":V[4]||(V[4]=b=>p.value=b),fields:t.fields,title:"Імпорт полів для картки","id-prefix":"import-card",onConfirm:m,onCancel:y},null,8,["visible","selection","fields"])]))}}),Od={class:"flex flex-col flex-1 min-h-0"},zd=e.defineComponent({__name:"vs-tab-filter",props:{fields:{},columns:{}},emits:["update:columns","save"],setup(t,{emit:n}){const o=t,r=n;console.log(o.columns);const l=e.ref(o.columns||[]);e.watch(()=>o.columns,d=>l.value=d||[],{immediate:!0}),e.watch(l,d=>r("update:columns",d),{deep:!0,immediate:!0});const i=e.ref("list"),a=e.ref(!1),c=e.ref([]),p=[{key:"id",label:"Name"},{key:"label",label:"UA"},{key:"type",label:"Тип"}],u={name:{type:"text",label:"Name",disabled:!0,validators:["required"]},label:{type:"text",label:"UA",validators:["required"]},type:{type:"radio",label:"Тип",position:"horizontal",validators:["required"],options:[{text:"Check",id:"check"},{text:"Range",id:"range"},{text:"Date",id:"date"},{text:"Text",id:"text"},{text:"Select",id:"select"}]},hidden:{label:"Приховати",type:"Switcher"},data:{type:"text",label:"Класифікатор",conditions:["type","in",["autocomplete","select","check"]],validators:["required"]}};function h(){c.value=l.value.map(d=>d.name||d.id),a.value=!0}function s(){var V;const d=[...l.value],f=((V=o.fields)==null?void 0:V.filter(b=>c.value.includes(b.name)))||[],g=Ge(d,f,{selectedKeys:c.value,resolveKey:b=>De(b)});l.value=g,a.value=!1,c.value=[]}function m(){a.value=!1,c.value=[]}function y(){let d=[];i.value==="all"?d=o.fields||[]:i.value==="none"?d=[]:d=l.value,r("save",d)}return(d,f)=>(e.openBlock(),e.createElementBlock("div",Od,[e.createElementVNode("div",{class:"flex justify-between mb-3 gap-2"},[e.createElementVNode("button",{onClick:h,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium bg-gradient-to-r from-gray-500 to-gray-400 text-white h-9 px-4 py-2 hover:from-gray-600 hover:to-gray-500"}," Імпорт "),e.createElementVNode("button",{onClick:y,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium bg-gradient-to-r from-sky-400 to-blue-400 hover:from-sky-500 hover:to-blue-500 text-white shadow-sm px-4 py-2 h-9 text-xs transition-all duration-300"}," Зберегти фільтр ")]),i.value==="list"?(e.openBlock(),e.createBlock(Re,{key:0,modelValue:l.value,"onUpdate:modelValue":f[0]||(f[0]=g=>l.value=g),"columns-scheme":p,"form-scheme":u,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])):e.createCommentVNode("",!0),e.createVNode(We,{visible:a.value,"onUpdate:visible":f[1]||(f[1]=g=>a.value=g),selection:c.value,"onUpdate:selection":f[2]||(f[2]=g=>c.value=g),fields:t.fields,title:"Імпорт полів","id-prefix":"import-filter",onConfirm:s,onCancel:m},null,8,["visible","selection","fields"])]))}}),no=e.defineComponent({__name:"MapView",setup(t,{expose:n}){const o=e.ref(null),r=e.ref(null),l=md({container:o,mapOptions:{style:{version:8,sources:{},layers:[]},center:[30.5234,50.4501],zoom:9,minZoom:4,maxZoom:14,doubleClickZoom:!1},controls:{navigation:!0,scale:!0}});async function i(){var u;await e.nextTick();const p=(u=l.map)==null?void 0:u.value;p!=null&&p.resize&&p.resize()}function a(){typeof ResizeObserver>"u"||r.value||!o.value||(r.value=new ResizeObserver(()=>{i()}),r.value.observe(o.value))}function c(){var p;(p=r.value)==null||p.disconnect(),r.value=null}return e.onMounted(()=>{i(),a(),window.addEventListener("resize",i)}),e.onBeforeUnmount(()=>{window.removeEventListener("resize",i),c()}),n({ctx:l}),(p,u)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"el",ref:o,class:"w-full h-full rounded-xl overflow-hidden"},[e.renderSlot(p.$slots,"default")],512))}}),Pd=12,Rd=12;function ct(t){if(t==null)return null;const n=Number(t);return Number.isFinite(n)?n:null}function bt(t){var n;return t?"clusterZoom"in t&&t.clusterZoom!=null?ct(t.clusterZoom):((n=t.style)==null?void 0:n.clusterZoom)!=null?ct(t.style.clusterZoom):null:null}function wt(t){var n,o;return t?"pointZoom"in t&&t.pointZoom!=null?ct(t.pointZoom):((n=t.style)==null?void 0:n.pointZoom)!=null?ct(t.style.pointZoom):((o=t.style)==null?void 0:o.iconZoom)!=null?ct(t.style.iconZoom):null:null}function oo(t,n,o){if(o==null||o==="")return t;const r=t.includes("?")?"&":"?";return`${t}${r}${n}=${o}`}function _t(t,n={}){const o=n.clusterZoom??Pd,r=n.pointZoom??Rd;let l=t;return l=oo(l,"clusterZoom",o),l=oo(l,"pointZoom",r),l}const Ud=e.defineComponent({__name:"MapDataLayer",props:{id:{},layer:{},styleYaml:{}},setup(t,{expose:n}){var d;const{map:o,flyTo:r,setZoom:l}=xe(),i=t,a=i.id;String(i.id);const c=bt(i.layer),p=wt(i.layer),u=_t(`${location.origin}/api/vtile/${i.id}/ua/{z}/{x}/{y}.vmt?all=1`,{clusterZoom:c,pointZoom:p}),h=ee(a,{source:{type:"vector",tiles:[u],minzoom:0,maxzoom:14},popup:i.layer.popup,layer:{style:(d=i.layer)==null?void 0:d.style}});n({layerHandle:h}),r({center:i.layer.center||[30,50],animate:!1}),l(11),ee("point",{point:i.layer.center,style:{color:"orange"}});let s=null;function m(){s&&clearTimeout(s),s=setTimeout(()=>{s=null,y().catch(f=>console.error("Failed to update map layer",f))},300)}async function y(){o.value&&h.setStyle(i.styleYaml)}return e.watch(()=>i.styleYaml,m),e.onBeforeUnmount(()=>{h.remove()}),(f,g)=>null}}),dt=e.ref(null);function qd(){dt.value=null}function Hd(t){const n=e.ref(!1),o=()=>typeof t=="string"?t:t.value;e.watch(dt,a=>{a!==o()&&n.value&&(n.value=!1)});function r(){dt.value=o(),n.value=!0}function l(){dt.value===o()&&(dt.value=null),n.value=!1}function i(){n.value?l():r()}return{isOpen:n,open:r,close:l,toggle:i}}const Yd={class:"map-filter"},Zd={class:"map-filter__header"},Wd={class:"map-filter__title"},Kd={"aria-hidden":"true"},Pt="#map-filter-popover-host",Et=X(e.defineComponent({__name:"MapFilterPopover",props:{count:{},layer:{},catalogAnchor:{},disabled:{type:Boolean}},setup(t){const n=e.defineAsyncComponent(()=>import("@opengis/filter")),o=t,r=e.computed(()=>{var O;return((O=o.layer)==null?void 0:O.id)??""}),l=e.computed(()=>`filter-popover-${r.value}`),{isOpen:i,close:a,toggle:c}=Hd(l),p=e.reactive({top:0,left:0,transform:"translateX(-50%)"}),u=e.ref(null),h=e.ref(null);let s=null;const m=e.ref({}),y=e.reactive({visible:!1,text:"Спочатку активуйте шар, щоб застосувати фільтр",top:0,left:0}),d=e.computed(()=>i.value),f=e.computed(()=>{var O;return Array.isArray((O=o.layer)==null?void 0:O.filters)?o.layer.filters:[]}),g=e.computed(()=>f.value.length>0),V=e.computed(()=>{var O;return((O=o.layer)==null?void 0:O.name)??""}),b=e.computed(()=>f.value),w=e.ref(null),N=e.computed(()=>f.value.length),A=e.computed(()=>N.value<=2),x=e.computed(()=>A.value?"body":typeof window>"u"||w.value?Pt:"body"),T=e.computed(()=>!d.value||!A.value?{}:{position:"absolute",top:`${p.top}px`,left:`${p.left}px`,transform:p.transform,zIndex:1e3,width:"280px"});function $(){a()}function I(O,R,U=8){const Z=window.scrollY+U,pe=window.scrollY+window.innerHeight-U;let ne=O;return ne+R>pe&&(ne=pe-R),ne<Z&&(ne=Z),ne}function C(){var Fe,ve,Ve;if(!u.value||!A.value)return;const O=u.value.getBoundingClientRect(),R=window.scrollX+8,U=window.scrollX+window.innerWidth-8,Z=((Fe=h.value)==null?void 0:Fe.offsetWidth)||280,pe=((ve=h.value)==null?void 0:ve.offsetHeight)||0;let ne=0,ge=0;if((Ve=o.catalogAnchor)!=null&&Ve.value){const Me=o.catalogAnchor.value.getBoundingClientRect(),ke=Me.top+window.scrollY;ne=I(ke,pe,8);const qe=Me.right+window.scrollX+12,D=U-Z,q=R;ge=Math.min(Math.max(qe,q),Math.max(q,D))}else{const Me=O.bottom+window.scrollY+8;ne=I(Me,pe,8);let ke=O.left+window.scrollX;ke<R&&(ke=R),ke+Z>U&&(ke=Math.max(R,U-Z)),ge=ke}p.left=ge,p.top=ne,p.transform="none"}function v(){A.value||P(),c(),i.value&&A.value&&e.nextTick(()=>{C(),E(),requestAnimationFrame(()=>C())})}function F(){o.disabled||v()}e.watch(d,O=>{O&&A.value?e.nextTick(()=>{C(),E(),requestAnimationFrame(()=>C())}):(L(),A.value||P())}),e.watch(b,()=>{!d.value||!A.value||e.nextTick(()=>C())},{deep:!0}),e.watch(A,O=>{d.value&&(O?e.nextTick(()=>{C(),E()}):(L(),P()))}),e.watch(()=>o.disabled,O=>{O&&(a(),m.value={})});function j(){!d.value||!A.value||C()}function M(O){const R=r.value;if(!R)return;const U=ee(R);if(!(U!=null&&U.setFilter))return;m.value=O;const Z=Object.entries(O).map(([pe,ne])=>`${pe}=${ne}`).join("|");U.setFilter(Z)}function S(O){if(!o.disabled)return;const R=O.currentTarget;if(!R)return;const U=R.getBoundingClientRect();y.left=U.left+U.width/2+window.scrollX,y.top=U.bottom+8+window.scrollY,y.visible=!0}function k(){y.visible=!1}e.onMounted(()=>{P(),window.addEventListener("resize",j),window.addEventListener("scroll",j,!0)}),e.onBeforeUnmount(()=>{window.removeEventListener("resize",j),window.removeEventListener("scroll",j,!0),L()});function E(){L(),!(!h.value||!A.value)&&(s=new ResizeObserver(()=>{!d.value||!A.value||C()}),s.observe(h.value))}function L(){s&&(s.disconnect(),s=null)}function P(){typeof window>"u"||typeof document>"u"||(w.value=document.querySelector(Pt))}return(O,R)=>g.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mapLayer-filter",ref_key:"anchor",ref:u},[e.createElementVNode("a",{class:e.normalizeClass(["mapLayer-filter__trigger",{"mapLayer-filter__trigger--disabled":o.disabled}]),href:"#",onClick:e.withModifiers(F,["prevent","stop"]),onMouseenter:S,onMouseleave:k,onFocus:S,onBlur:k},[...R[2]||(R[2]=[e.createElementVNode("div",{class:"mapLayer-filter__icon"},[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("path",{d:"M3 4h18l-7 8v6l-4 2v-8z"})])],-1)])],34),d.value?(e.openBlock(),e.createBlock(e.Teleport,{key:0,to:x.value},[e.createElementVNode("div",{class:e.normalizeClass(["vst-popover__content inline-block z-50 rounded-[16px] bg-white text-sm text-gray-500 rounded-md shadow-lg bottom mapLayer-filter__popover",{"mapLayer-filter__popover--static":!A.value}]),style:e.normalizeStyle(T.value),ref_key:"panel",ref:h,onClick:R[1]||(R[1]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",Yd,[e.createElementVNode("div",Zd,[e.createElementVNode("h3",Wd,e.toDisplayString(V.value||"Фільтр"),1),e.createElementVNode("button",{type:"button",class:"map-filter__close",onClick:$},[e.createElementVNode("span",Kd,[e.createVNode(e.unref(Vo),{class:"h-4 w-4"})]),R[3]||(R[3]=e.createElementVNode("span",{class:"sr-only"},"Закрити",-1))])]),e.createVNode(e.unref(n),{view:"inline",schema:b.value,value:m.value,limit:10,onChange:R[0]||(R[0]=U=>M(U.data)),width:250},null,8,["schema","value"])])],6)],8,["to"])):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[y.visible?(e.openBlock(),e.createElementBlock("div",{key:0,class:"filter-badge__hint",style:e.normalizeStyle({top:`${y.top}px`,left:`${y.left}px`})},e.toDisplayString(y.text),5)):e.createCommentVNode("",!0)]))],512)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-e46ae0d6"]]),Gd={class:"flex justify-center items-center h-[40px] w-[40px] bg-white text-sm border border-gray-200 text-gray-600 hover:bg-gray-100 rounded-full"},Rt=X(e.defineComponent({__name:"MapFilterWidget",props:{filters:{},title:{},layerId:{}},setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",Gd,[e.createVNode(Et,{layer:{filters:t.filters,id:t.layerId},count:t.filters.length},null,8,["layer","count"])])]))}}),[["__scopeId","data-v-5db0f90a"]]),Xd={class:"flex flex-row gap-x-3 z-10 relative widget"},Qd=["onClick"],Jd=["src","alt"],Ut=e.defineComponent({__name:"BaseMaps",setup(t){const n={gki:{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/12/2422/1400.png",title:"Базова карта (voyager)"},arcgisonline:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}.png",preview:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/7/47/69.png",title:"ESRI Online Imagery(2022-2023)"},none:{}},o=e.ref("gki"),r=ee("base",{source:{type:"raster",tiles:[n[o.value].url]},beforeId:0});function l(i){if(o.value=i,!n[i].url)return r.setVisible(!1);r.setVisible(!0),r.setTiles([n[i].url])}return(i,a)=>(e.openBlock(),e.createElementBlock("div",Xd,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(n,(c,p)=>e.createElementVNode("div",{key:p,onClick:u=>l(p)},[e.createElementVNode("div",{class:e.normalizeClass(["w-14 h-14 flex items-center justify-center bg-gray-200 rounded-xl shadow-2xs cursor-pointer transition-all border-4",o.value===p?"border-blue-500":"border-gray-200"])},[c.preview?(e.openBlock(),e.createElementBlock("img",{key:0,src:c.preview,alt:c.title,class:"object-cover rounded-lg w-12 h-12"},null,8,Jd)):e.createCommentVNode("",!0)],2)],8,Qd)),64))]))}}),eu={key:0,class:"legend-widget flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative widget",style:{width:"100%"}},tu={class:"flex flex-col gap-1 p-5"},nu={class:"flex items-center justify-between w-full text-sm text-gray-800 ml-2"},qt=e.defineComponent({__name:"MapLegendWidget",props:{items:{}},setup(t){const n=t,{map:o,ready:r}=xe(),l=e.ref([]);let i=null;function a(h){return h?h.map((s,m)=>{var f;const y=(s==null?void 0:s.name)||(s==null?void 0:s.label)||(s==null?void 0:s.title)||(s==null?void 0:s.id)||`Layer ${m+1}`,d=(s==null?void 0:s.color)||(s==null?void 0:s.fill)||((f=s==null?void 0:s.paint)==null?void 0:f.color)||"#3388ff";return{id:`${y}-${m}`,label:y,color:d}}):[]}function c(h){return h!=null&&h.layers?h.layers.filter(s=>{const m=s.paint||{};return m["fill-color"]||m["line-color"]||m["circle-color"]}).map((s,m)=>{var f;const y=s.paint||{},d=y["fill-color"]||y["line-color"]||y["circle-color"]||"#3388ff";return{id:s.id||`layer-${m}`,label:((f=s.metadata)==null?void 0:f.title)||s.id||`Layer ${m+1}`,color:d}}):[]}async function p(){var m;await r();const h=o.value;if(!h)return;const s=(m=h.getStyle)==null?void 0:m.call(h);l.value=c(s)}function u(){const h=o.value;if(!h)return;i==null||i();const s=()=>p();h.on("styledata",s),i=()=>h.off("styledata",s)}return e.watch(()=>n.items,async h=>{h!=null?(l.value=a(h),i==null||i()):(await r(),u(),p())},{immediate:!0,deep:!0}),e.onMounted(async()=>{(n.items===void 0||n.items===null)&&(await r(),u(),p())}),e.onBeforeUnmount(()=>{i==null||i(),i=null}),(h,s)=>l.value.length?(e.openBlock(),e.createElementBlock("div",eu,[e.createElementVNode("div",tu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,m=>(e.openBlock(),e.createElementBlock("div",{key:m.id,class:"flex items-center"},[e.createElementVNode("span",{class:"shrink-0 size-2.5 inline-block me-2.5 h-[10px] w-[10px] rounded-full",style:e.normalizeStyle({background:m.color})},null,4),e.createElementVNode("span",nu,[e.createElementVNode("span",null,e.toDisplayString(m.label),1)])]))),128))])])):e.createCommentVNode("",!0)}});function ou(){const{map:t,ready:n}=xe(),o=e.ref(null),r=e.ref(null),l=e.ref(null),i=e.ref(null);let a=[];function c(){a.forEach(m=>m()),a=[]}const p=m=>{var f;o.value=[m.point.x,m.point.y];const y=t.value.queryRenderedFeatures(m.point);if(!(y!=null&&y.length)){u();return}const d=ee(y[0].source)||ee(y[0].layer.id);d!=null&&d.popup&&(r.value=((f=d.popup)==null?void 0:f.fields)||d.popup,i.value=y[0].properties)},u=()=>{r.value=null,i.value=null,o.value=null};async function h(){await n(),t.value&&(c(),t.value.on("mousemove",p),t.value.on("mouseleave",u))}function s(){c(),r.value=null,i.value=null,o.value=null}return n().then(h),{popupCoords:o,popupFields:r,popupValues:i,disable:s,title:l}}const ru={class:"min-w-[200px] max-w-[280px] rounded-lg border border-slate-200 bg-white/90 p-3 text-xs shadow-lg backdrop-blur"},lu={class:"space-y-1.5"},iu={class:"font-bold text-slate-700"},au={class:"text-slate-700"},ro=e.defineComponent({__name:"MapPopup",setup(t){const{popupCoords:n,popupFields:o,popupValues:r,disable:l}=ou(),i=e.ref(null),a=e.ref({left:"-9999px",top:"-9999px"}),c=e.computed(()=>{const m=o.value||[],y=r.value||{};return m.filter(d=>(d==null?void 0:d.meta)!=="title").map((d,f)=>h(d,y,f)).filter(d=>d.label)}),p=e.computed(()=>{const m=o.value||[],y=r.value||{},d=m.find(f=>(f==null?void 0:f.meta)==="title");return d?h(d,y,0):null}),u=e.computed(()=>{var y;const m=c.value;return(y=p.value)!=null&&y.value?[{...p.value,key:`${p.value.key}-title`,label:"Назва"},...m]:m});function h(m,y,d){const f=m.name||m.label||m.title||`field-${d}`,g=m.label||m.title||m.name||f,V=m.name?y[m.name]:void 0,b=m.name?y[`${m.name}_text`]:void 0;return{key:f,label:g,value:b??V??m.value??null}}function s(){if(!u.value.length||!n.value||!i.value){a.value={left:"-9999px",top:"-9999px"};return}const[m,y]=n.value;a.value={left:`${m+18}px`,top:`${y+18}px`}}return e.watch([n,u],()=>{e.nextTick(()=>s())}),e.onBeforeUnmount(()=>{l()}),(m,y)=>u.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"popupRef",ref:i,class:"absolute pointer-events-none z-20",style:e.normalizeStyle(a.value)},[e.createElementVNode("div",ru,[e.createElementVNode("div",lu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,d=>(e.openBlock(),e.createElementBlock("div",{key:d.key,class:"flex flex-col"},[e.createElementVNode("span",iu,e.toDisplayString(d.label),1),e.createElementVNode("span",au,e.toDisplayString(d.value??"—"),1)]))),128))])])],4)):e.createCommentVNode("",!0)}});function su(){const{map:t,ready:n}=xe(),o=Be.useRoute(),r=Be.useRouter(),l=e.ref(null),i=e.ref(null),a=e.ref(null),c=e.ref(!1),p=e.ref([]),u=e.ref(0),h=e.computed(()=>p.value.length),s=e.computed(()=>c.value||!!l.value||!!a.value);let m=null,y=!1;function d(){l.value=null,i.value=null,a.value=null,c.value=!1,p.value=[],u.value=0}function f(){if(m){try{m()}catch{}m=null}}async function g(){await n();const F=t.value;F&&(f(),d(),F.on("click",V),m=()=>F.off("click",V),v($()))}function V(F){const j=t.value;if(!j)return;const M=(j.queryRenderedFeatures(F.point)||[]).filter(S=>{var k;return(k=S==null?void 0:S.properties)==null?void 0:k.id});if(!M.length){d(),C(null);return}p.value=M,u.value=0,b(u.value)}function b(F){const j=p.value[F];if(!j)return;u.value=F;const M=ee(j.source);A(j,M==null?void 0:M.card)}function w(){u.value>=p.value.length-1||b(u.value+1)}function N(){u.value<=0||b(u.value-1)}async function A(F,j){var S,k,E,L;if(!((S=F==null?void 0:F.properties)!=null&&S.id))return;const M=new URLSearchParams;M.set("layer",F.source),M.set("id",String((k=F.properties)==null?void 0:k.id)),c.value=!0,a.value=null,l.value=null,i.value=F||null;try{const P=await fetch(`/api/map-format?${M.toString()}`);if(!P.ok)throw new Error(`Failed (${P.status})`);const O=await P.json();l.value={rows:O.rows||{},fields:j||[],html:O.html||null},y||C(i.value);const R=(E=O.rows)==null?void 0:E.geom;if(R){const U=typeof R=="string"?JSON.parse(R):R;U&&(i.value={...i.value,geometry:U,properties:{...((L=i.value)==null?void 0:L.properties)||{},geom:U,geom_4326:U}})}}catch{a.value="Не вдалося завантажити дані",l.value=null,ce.notify({type:"error",title:"Помилка",message:"Не вдалося завантажити дані"})}finally{c.value=!1}}function x(){d(),C(null)}function T(){f(),d()}n().then(g),e.onBeforeUnmount(()=>T());function $(){const F=Array.isArray(o.query.info)?o.query.info[0]:o.query.info;return typeof F!="string"?null:F.trim()||null}function I(F){var k,E;const j=(F==null?void 0:F.source)??((k=F==null?void 0:F.layer)==null?void 0:k.id),M=(E=F==null?void 0:F.properties)==null?void 0:E.id;return!j||M===void 0||M===null?null:`${j},${M}`.trim()||null}function C(F){const j=I(F),M=$();if(j===M)return;const S={...o.query};j?S.info=j:delete S.info,r.push({query:S}).catch(()=>{})}async function v(F){if(!F){d();return}if(F===I(i.value))return;const[j,M]=F.split(","),S=j==null?void 0:j.trim(),k=M==null?void 0:M.trim();if(!S||!k){d(),C(null);return}y=!0;try{const E={source:S,properties:{id:k}};p.value=[E],u.value=0;const L=ee(S);await A(E,L==null?void 0:L.card)}finally{y=!1}}return e.watch(()=>$(),F=>{F!==I(i.value)&&(y=!0,v(F).finally(()=>{y=!1}))}),{card:l,cardFeature:i,cardError:a,cardLoading:c,isOpen:s,close:x,next:w,prev:N,count:h,index:u}}function cu(){const{map:t,ready:n}=xe(),o=e.ref([]),r=e.ref(0),l=e.ref(0),i=e.ref(!1),a=e.ref(null),c=e.ref({}),p=e.ref(null),u=e.ref([]),h=e.computed(()=>o.value[l.value]||null),s=e.computed(()=>o.value.length>0);let m=null;const y=()=>{m==null||m.remove(),m=null},d=$=>$?$.type==="FeatureCollection"?$:$.type==="Feature"?{type:"FeatureCollection",features:[$]}:$.type&&Array.isArray($.coordinates)?{type:"FeatureCollection",features:[{type:"Feature",geometry:$,properties:{}}]}:Array.isArray($.features)?{type:"FeatureCollection",features:$.features}:$.geometry?d($.geometry):null:null,f=()=>({type:"line",color:"#0a57ff",width:4,opacity:.95}),g=$=>Number($.toFixed(5)),V=async $=>{if(await n(),!t.value)return;const I=d($);I&&(y(),m=ee("feature-highlight",{source:{type:"geojson",data:I},style:f()},t))},b=async($,I,C)=>{var j,M;const[v,F]=[g($),g(I)];p.value={x:v,y:F},u.value=C,i.value=!0,a.value=null,o.value=[],c.value={},l.value=0;try{const S=C.map(async O=>{const R=`/api/map-info-point?x=${v}&y=${F}&layers=${O}`,U=await fetch(R);if(!U.ok)return null;const Z=await U.json();if(!Z.count)return null;const ne=await(await fetch(`${R}&index=0`)).json();return{layerId:O,data:ne,count:Z.count}}),E=(await Promise.all(S)).filter(Boolean);if(E.length===0){r.value=0;return}o.value=E.map(O=>O.data);const[L]=o.value;r.value=E.reduce((O,R)=>O+(R.count||0),0),c.value[0]=L;const P=((j=L==null?void 0:L.data)==null?void 0:j.geom_4326)??((M=L==null?void 0:L.data)==null?void 0:M.geom);await V(P)}catch(S){a.value=S.message}finally{i.value=!1}},w=async $=>{if(!p.value||!u.value.length)return;if(c.value[$]){o.value[$]=c.value[$];return}const{x:I,y:C}=p.value,v=u.value.join(","),F=`/api/map-info-point?x=${I}&y=${C}&index=${$}&layers=${v}`;try{i.value=!0;const j=await fetch(F);if(!j.ok)throw new Error("Failed to fetch feature by index");const M=await j.json();o.value[$]=M,c.value[$]=M}catch(j){a.value=j.message}finally{i.value=!1}},N=async()=>{l.value<r.value-1&&(l.value+=1,c.value[l.value]||await w(l.value))},A=async()=>{l.value>0&&(l.value-=1,c.value[l.value]||await w(l.value))},x=()=>{o.value=[],r.value=0,l.value=0,c.value={},p.value=null,u.value=[],y()};e.watch(l,async()=>{var I,C;const $=h.value;if($){const v=((I=$==null?void 0:$.data)==null?void 0:I.geom_4326)??((C=$==null?void 0:$.data)==null?void 0:C.geom);await V(v)}});let T=null;return e.onMounted(async()=>{await n(),t.value&&(T=async $=>{const{lng:I,lat:C}=$.lngLat,v=ee(),j=Object.entries(v).map(([M,S])=>{var k,E,L,P;return{id:M,service:((k=S==null?void 0:S.opts)==null?void 0:k.service)??((L=(E=S==null?void 0:S.opts)==null?void 0:E.source)==null?void 0:L.service)??null,count:((P=S==null?void 0:S.opts)==null?void 0:P.count)??null,visible:(()=>{var O;try{return((O=t.value)==null?void 0:O.getLayer(M))?t.value.getLayoutProperty(M,"visibility")!=="none":!0}catch{return!0}})()}}).filter(M=>M.service==="ogc"&&M.visible).map(M=>M.id);j.length>0&&await b(I,C,j)},t.value.on("dblclick",T))}),e.onBeforeUnmount(()=>{t.value&&T&&t.value.off("dblclick",T),y()}),{features:o,count:r,index:l,current:h,loading:i,error:a,active:s,next:N,prev:A,close:x}}const du=e.defineComponent({__name:"LayerSwitcher",props:{title:{},url:{},id:{},buttonText:{}},emits:["activate"],setup(t,{emit:n}){const o=t,r=n;function l(u){const h=u.normalize("NFKD").replace(/[\u0300-\u036f]/g,"").replace(/[^a-zA-Z0-9]+/g,"-").replace(/^-+|-+$/g,"").toLowerCase();if(h)return h;const s=Array.from(u).map(m=>m.charCodeAt(0).toString(16)).join("").slice(0,8);return s?`layer-${s}`:"layer-temp"}const i=e.computed(()=>{var u;return((u=o.id)==null?void 0:u.trim())||l(o.title)}),a=e.computed(()=>o.buttonText||"Показати шар");function c(){return{id:i.value,title:o.title,url:o.url}}function p(){r("activate",c())}return(u,h)=>(e.openBlock(),e.createElementBlock("button",{type:"button",class:"flex items-center justify-center bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded w-full",onClick:p},[e.renderSlot(u.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(a.value),1)])]))}}),Ne=e.ref([]);function uu(t,n){return typeof t!="string"?"":t.includes("{{")?t.replace(/\{\{\s*([a-zA-Z0-9_]+)\s*}}/g,(o,r)=>{const l=String(r||"").trim();if(!l)return"";const i=n[l];return i!=null?String(i):""}):t}function Ht(t){return t==null?"":String(t).trim()}function Yt(t){var n,o;(o=(n=t==null?void 0:t.handle)==null?void 0:n.remove)==null||o.call(n)}function pu(t){return t?typeof(t==null?void 0:t.value)<"u"?t.value:t:null}function mu(t){var o;if(!(t!=null&&t.getStyle))return;const n=((o=t.getStyle())==null?void 0:o.layers)||[];for(let r=0;r<n.length;r+=1){const l=n[r];if(!(!l||typeof l.id!="string")&&l.type&&l.type!=="background"&&l.type!=="raster")return l.id}}function lo(t){function n(i,a={},c,p){var b,w;const u=Ht(i==null?void 0:i.id),h=((b=i==null?void 0:i.title)==null?void 0:b.trim())||u,s=((w=i==null?void 0:i.url)==null?void 0:w.trim())||"";if(!u||!s)return;const m=uu(s,a);if(!m)return;const y=p??t;if(!y)return;const d=pu(y);if(!d)return;const f=Ne.value.findIndex(N=>N.id===u);f!==-1&&(Yt(Ne.value[f]),Ne.value.splice(f,1));let g=null;const V=i.beforeId??mu(d);try{g=ee(u,{source:{type:"raster",tiles:[m],tileSize:i.tileSize??256,minzoom:i.minzoom??0,maxzoom:i.maxzoom??19},layer:{id:u,type:"raster",source:u,paint:{"raster-opacity":i.opacity??.85}},beforeId:V},y)}catch(N){const A=(N==null?void 0:N.message)??"";if(!(typeof A=="string"&&A.includes("Map provider")))throw N;return}Ne.value=[...Ne.value,{id:u,title:h,originalUrl:s,resolvedUrl:m,owner:c??null,handle:g??null}]}function o(i,a){const c=Ht(i);if(!c)return;const p=Ne.value.findIndex(h=>h.id===c&&(!a||h.owner===a));if(p===-1)return;const[u]=Ne.value.splice(p,1);Yt(u)}function r(i){if(!Ne.value.length)return;const a=[];Ne.value.forEach(c=>{(i?c.owner===i:!0)?Yt(c):a.push(c)}),Ne.value=a}function l(i,a){const c=Ht(i);return c?Ne.value.some(p=>p.id===c&&(!a||p.owner===a)):!1}return{temporaryLayers:Ne,activateTemporaryLayer:n,deactivateTemporaryLayer:o,clearTemporaryLayers:r,isTemporaryLayerActive:l}}const fu={key:0,class:"card absolute top-4 right-11 z-30 w-[400px] max-h-[80%] overflow-hidden rounded-2xl border border-slate-200 bg-white/95 shadow-2xl backdrop-blur-md flex flex-col"},gu={class:"flex items-start justify-between gap-3 border-b border-slate-200 px-4 py-3"},hu={class:"min-w-0 flex-1"},yu={class:"text-base font-semibold text-slate-900 truncate"},xu={key:0,class:"flex gap-1 mt-1"},ku=["disabled"],bu=["disabled"],wu={key:1,class:"flex gap-1 mt-1"},_u=["disabled"],Eu=["disabled"],Bu={class:"flex-1 overflow-y-auto px-4 py-3 space-y-4 text-sm text-slate-700"},Nu={key:0,class:"text-center text-xs text-slate-500"},vu={key:1,class:"text-center text-xs text-red-500"},Cu={key:0,class:"prose prose-sm max-w-none space-y-3 border-slate-200"},Vu=["innerHTML"],$u=["innerHTML"],Au={key:1,class:"space-y-2"},Su={class:"text-xs font-semibold text-slate-500 uppercase tracking-wide"},Lu={key:0,class:"inline-block rounded px-2 py-0.5 text-xs font-semibold text-yellow-800",style:{"background-color":"rgba(250,204,21,0.25)"}},Fu={key:1,class:"text-sm text-right text-slate-800 whitespace-pre-wrap"},Tu={key:2,class:"space-y-3 border-t border-slate-200 pt-3"},Mu={class:"space-y-1"},Iu={class:"flex items-center cursor-pointer gap-2 flex-1"},Du=["checked","onChange"],ju={class:"text-[13px] text-gray-600 truncate"},Ou={key:0,class:"text-right text-xs text-gray-400 truncate max-w-[40%]"},zu={key:3,class:"text-center text-xs text-slate-400"},Pu="map:temporary-layer-request",io=X(e.defineComponent({__name:"MapCardWidget",props:{mapId:{}},setup(t){const n=t,o=su(),r=cu(),l=e.computed(()=>r.active.value),i=e.computed(()=>l.value||o.isOpen.value),a=e.computed(()=>l.value?r.loading.value:o.cardLoading.value),c=e.computed(()=>l.value?r.error.value:o.cardError.value),p=e.computed(()=>{var B,_;return l.value?((B=r.current.value)==null?void 0:B.html)||null:((_=o.card.value)==null?void 0:_.html)||null}),u=xe(),h=Be.useRoute(),{activateTemporaryLayer:s,deactivateTemporaryLayer:m,clearTemporaryLayers:y,isTemporaryLayerActive:d}=lo(u.map);function f(B){window.dispatchEvent(new CustomEvent(Pu,{detail:B}))}const g=e.computed(()=>{var B;return((B=o.cardFeature.value)==null?void 0:B.source)??null}),V=e.computed(()=>g.value?`map-card:${g.value}`:"map-card"),b=e.computed(()=>{var H,Q;const B=o.cardFeature.value,_=(B==null?void 0:B.source)||((H=B==null?void 0:B.layer)==null?void 0:H.id),z=((Q=B==null?void 0:B.properties)==null?void 0:Q.id)??(B==null?void 0:B.id);return _&&z!=null?`${_}:${z}`:null}),w=e.ref(null),N=e.ref(null),A=e.ref(0),x=new Map;function T(){if(typeof window>"u")return null;const _=(window.location.pathname||"").match(/\/maps?\/([^/]+)/i);return _&&_[1]?_[1]:null}const $=e.computed(()=>{const B=typeof n.mapId=="string"?n.mapId.trim():"";if(B.length)return B;const _=typeof h.params.slug=="string"?h.params.slug.trim():"";if(_.length)return _;const z=typeof h.query.slug=="string"?h.query.slug.trim():"";return z.length?z:T()}),I=e.ref(null),C=e.ref(null),v=new Map;function F(B){const _=B.normalize("NFKD").replace(/[\u0300-\u036f]/g,"").replace(/[^a-zA-Z0-9]+/g,"-").replace(/^-+|-+$/g,"").toLowerCase();if(_)return _;const z=Array.from(B).map(H=>H.charCodeAt(0).toString(16)).join("").slice(0,8);return z?`layer-${z}`:`layer-${Math.random().toString(36).slice(2,8)}`}function j(B){if(typeof B!="string")return"";const _=B.trim();if(!_)return"";if(/^https?:\/\//i.test(_))return _;if(_.startsWith("//"))return typeof window>"u"?`https:${_}`:`${window.location.protocol}${_}`;const z=typeof window<"u"?window.location.origin:"";return _.startsWith("/")?z?`${z}${_}`:_:z?`${z}/${_}`:_}function M(B){const _={},z=/([:@\w-]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>]+)))?/g;let H;for(;(H=z.exec(B))!==null;){const Q=H[1],te=H[2]??H[3]??H[4]??"";Q&&(_[Q]=te)}return _}function S(B,_){for(const z of _)if(B[z]!=null&&String(B[z]).trim().length)return String(B[z]).trim();return""}function k(B){if(!(B!=null&&B.length))return;const _=Number(B);return Number.isFinite(_)?_:void 0}function E(B){if(typeof B!="string"||!B.length)return[];const _=[],z=/<LayerSwitcher\b([^>]*)>([\s\S]*?)<\/LayerSwitcher>/gi;let H=0,Q;const te=new Set,ae=se=>{let be=se,Se=2;for(;te.has(be);)be=`${se}-${Se}`,Se+=1;return te.add(be),be};for(;(Q=z.exec(B))!==null;){const[se,be="",Se=""]=Q,fe=Q.index;if(fe>H){const xo=B.slice(H,fe);xo.trim().length&&_.push({type:"html",content:xo})}const Ce=M(be),we=S(Ce,["title"])||"Тимчасовий шар",Pe=j(S(Ce,["url"]));if(!Pe){_.push({type:"html",content:se}),H=fe+se.length;continue}const pt=S(Ce,["id"]),Kt=S(Ce,["button-text","buttonText","show","show-label","showLabel"]),mf=k(S(Ce,["tile-size","tileSize"])),ff=k(S(Ce,["minzoom","minZoom"])),gf=k(S(Ce,["maxzoom","maxZoom"])),hf=k(S(Ce,["opacity"])),yf=pt||F(`${we}-${Pe}`)||F(we),ho=ae(yf||`layer-${_.length+1}`),Gt=Se.trim(),yo=/<[^>]+>/.test(Gt),xf=yo?Gt:null,Xt=yo?null:Gt,kf=Kt&&Kt.trim().length?Kt.trim():Xt&&Xt.trim().length?Xt.trim():void 0;_.push({type:"layer",spec:{id:ho,title:we,url:Pe,tileSize:mf,minzoom:ff,maxzoom:gf,opacity:hf},componentProps:{title:we,url:Pe,id:ho,buttonText:kf},slotText:xf}),H=fe+se.length}if(H<B.length){const se=B.slice(H);se.trim().length&&_.push({type:"html",content:se})}return!_.length&&B.trim().length&&_.push({type:"html",content:B}),_}function L(B){if(!B)return null;const _=typeof B.id=="string"?B.id.trim():"",z=typeof B.title=="string"?B.title.trim():"",H=j(typeof B.url=="string"?B.url:"");return!_||!H?null:{id:_,title:z||_,url:H,tileSize:B.tileSize,minzoom:B.minzoom,maxzoom:B.maxzoom,opacity:B.opacity}}const P=e.computed(()=>{if(l.value&&r.current.value){const H=r.current.value.data??{};return(r.current.value.fields??[]).map(te=>({key:te.name,label:te.label||te.title||te.name,value:H[te.name]??"—",format:te.format||"text"}))}const B=o.card.value;if(!B)return[];const _=B.rows??{};return(B.fields??[]).map(H=>({key:H.name,label:H.ua||H.label||H.title||H.name,value:_[H.name]??"—",format:H.format||"text"}))}),O=e.computed(()=>E(p.value)),R=e.computed(()=>O.value.filter(B=>B.type==="layer"));function U(B){return Array.isArray(B)?B.map((_,z)=>{const H=j(typeof(_==null?void 0:_.url)=="string"?_.url:""),Q=typeof(_==null?void 0:_.geohub)=="string"&&_.geohub.trim().length?`/api-hub/tms/${_.geohub.trim()}/ua/{z}/{x}/{y}.png`:"",te=((_==null?void 0:_.name)||(_==null?void 0:_.title)||(_==null?void 0:_.label)||`Шар ${z+1}`).toString(),ae=(_==null?void 0:_.id)!=null?String(_.id):F(`${te}-${z+1}`),se=(_==null?void 0:_.buttonText)||(_==null?void 0:_.button_text)||null,be=(_==null?void 0:_.description)||(_==null?void 0:_.subtitle)||null,Se=H||j(Q)||"";if(!Se)return null;const fe={id:ae,title:te,url:Se,subtitle:be,buttonText:se||void 0};return typeof(_==null?void 0:_.tileSize)=="number"&&(fe.tileSize=_.tileSize),typeof(_==null?void 0:_.tile_size)=="number"&&(fe.tileSize=_.tile_size),typeof(_==null?void 0:_.minzoom)=="number"&&(fe.minzoom=_.minzoom),typeof(_==null?void 0:_.maxzoom)=="number"&&(fe.maxzoom=_.maxzoom),typeof(_==null?void 0:_.opacity)=="number"&&(fe.opacity=_.opacity),fe}).filter(Boolean):[]}const Z=e.computed(()=>{var H,Q;const B=o.card.value,_=r.current.value,z=[(H=B==null?void 0:B.rows)==null?void 0:H.layers,B==null?void 0:B.layers,(Q=_==null?void 0:_.data)==null?void 0:Q.layers,_==null?void 0:_.layers];for(const te of z){const ae=U(te);if(ae.length)return ae}return[]}),pe=e.computed(()=>O.value.length>0||P.value.length>0||Z.value.length>0);function ne(){const B={},_=I.value;if(_&&typeof _=="object"&&Object.entries(_).forEach(([z,H])=>{typeof H=="string"&&(B[z]=H)}),g.value&&(B.layer=g.value),!B.geohub){const z=typeof(_==null?void 0:_.geohub)=="string"?_.geohub:null,H=typeof(_==null?void 0:_.geohub_key)=="string"?_.geohub_key:null,Q=typeof(_==null?void 0:_.geohubId)=="string"?_.geohubId:null;B.geohub=z||H||Q||B.layer||""}return B}async function ge(){const B=g.value;if(!B)return I.value=null,C.value=null,null;if(C.value===B&&I.value)return I.value;if(v.has(B)){const _=v.get(B);return I.value=_,C.value=B,_}try{const _=await fetch(`/api/gis-service/${encodeURIComponent(B)}`);if(!_.ok)return null;const z=await _.json();return v.set(B,z),I.value=z,C.value=B,z}catch{return null}}async function Fe(B){if(!(B!=null&&B.id))return;await ge();const _=ne(),z=R.value.find(ae=>ae.spec.id===B.id),H=Z.value.find(ae=>ae.id===B.id),Q=(z==null?void 0:z.spec)||L(H)||L(B);if(!Q||d(Q.id,V.value))return;const te=V.value||void 0;w.value=te??null,s(Q,_,te),f({action:"activate",owner:te,spec:Q,context:_})}function ve(B){if(!B)return;const _=ke()||void 0;m(B,_),f({action:"deactivate",owner:_,spec:{id:B}})}function Ve(B){return d(B,ke())}function Me(B,_){const z=_.target;!!(z!=null&&z.checked)?Fe(B):ve(B.id)}function ke(){return w.value||V.value||null}e.watch(g,(B,_)=>{B!==_&&(I.value=null,C.value=null)});const{next:qe,prev:D,count:q,index:G}=r,J=e.computed(()=>o.count.value),K=e.computed(()=>o.index.value),le=e.computed(()=>J.value>1),_e=e.computed(()=>l.value?q.value:J.value),Y=e.computed(()=>l.value?G.value:K.value),$e=o.next,Ae=o.prev;function me(){const B=ke();B&&(y(B),f({action:"clear",owner:B}),w.value=null)}function He(){o.close(),r.close(),me()}e.watch(i,(B,_)=>{!B&&_&&(me(),Ee())});function ze(){!o.isOpen.value&&!r.active.value&&me()}e.watch(()=>o.isOpen.value,()=>{ze()}),e.watch(()=>r.active.value,()=>{ze()}),e.watch(g,(B,_)=>{B&&_&&B!==_&&me()}),e.watch(G,(B,_)=>{B!==_&&me()}),e.watch(b,(B,_)=>{B&&_&&B!==_&&me()});function Ye(B){if(!B)return null;if(B.geometry)return B.geometry;const _=(B==null?void 0:B.data)??(B==null?void 0:B.properties);return _!=null&&_.geom_4326?_.geom_4326:_!=null&&_.geom?_.geom:null}function Ee(){var B,_;(_=(B=N.value)==null?void 0:B.remove)==null||_.call(B),N.value=null}function Ze(B){var z,H,Q;const _=(B==null?void 0:B.type)||((Q=(H=(z=B==null?void 0:B.features)==null?void 0:z[0])==null?void 0:H.geometry)==null?void 0:Q.type)||"";return _.includes("Polygon")?{type:"fill",paint:{"fill-color":"#0a57ff","fill-opacity":.2,"fill-outline-color":"#0a57ff"}}:_.includes("LineString")?{type:"line",paint:{"line-color":"#0a57ff","line-width":3,"line-opacity":.9}}:{type:"circle",paint:{"circle-color":"#0a57ff","circle-opacity":.9,"circle-radius":8,"circle-stroke-color":"#ffffff","circle-stroke-width":2}}}function ut(B){var Q;if(!B){Ee();return}const _=(Q=u.map)==null?void 0:Q.value,z={type:"FeatureCollection",features:[{type:"Feature",geometry:B,properties:{}}]};Ee();const H=Ze(B);if(N.value=ee("feature-card-highlight",{source:{type:"geojson",data:z},layer:{id:"feature-card-highlight",type:H.type,source:"feature-card-highlight",paint:H.paint}},u.map),_!=null&&_.moveLayer){const te=()=>{try{_.moveLayer("feature-card-highlight")}catch{}},ae=()=>{typeof window<"u"&&window.requestAnimationFrame?window.requestAnimationFrame(()=>{window.requestAnimationFrame(te)}):setTimeout(te,0)};ae();const se=()=>ae();_.once("styledata",se);const be=()=>{ae(),_.off("styledata",se),_.off("idle",be)};_.on("idle",be)}}function uf(B){var H,Q;const _=(B==null?void 0:B.source)||((H=B==null?void 0:B.layer)==null?void 0:H.id)||"unknown",z=((Q=B==null?void 0:B.properties)==null?void 0:Q.id)??(B==null?void 0:B.id)??"unknown";return`${_}:${z}`}async function pf(B){var te,ae,se,be,Se;if(!B)return null;const _=Ye(B);if(_)return _;const z=((te=B==null?void 0:B.properties)==null?void 0:te.id)??(B==null?void 0:B.id);if(!z)return null;const H=uf(B);if(x.has(H))return x.get(H);const Q=[$.value,B==null?void 0:B.source,(ae=B==null?void 0:B.layer)==null?void 0:ae.id].map(fe=>typeof fe=="string"?fe.trim():"").filter(Boolean);for(const fe of Q)try{const Ce=await fetch(`/api/map-features/${encodeURIComponent(fe)}/${encodeURIComponent(String(z))}`);if(!Ce.ok)continue;const we=await Ce.json(),Pe=((se=we==null?void 0:we.data)==null?void 0:se.geom)||((be=we==null?void 0:we.data)==null?void 0:be.geometry)||((Se=we==null?void 0:we.data)==null?void 0:Se.geom_4326)||null,pt=typeof Pe=="string"?JSON.parse(Pe):Pe;if(pt)return x.set(H,pt),pt}catch{continue}return null}async function Nt(B){A.value+=1;const _=A.value;if(!B||l.value){Ee();return}const z=await pf(B);if(_===A.value){if(!z){Ee();return}ut(z)}}return e.watch(()=>o.cardFeature.value,B=>{Nt(B)},{immediate:!0}),e.watch(()=>o.index.value,()=>{l.value||Nt(o.cardFeature.value)}),e.watch(l,B=>{B?Ee():Nt(o.cardFeature.value)}),e.watch($,()=>{!l.value&&o.cardFeature.value&&Nt(o.cardFeature.value)}),e.onBeforeUnmount(()=>{me(),Ee()}),(B,_)=>(e.openBlock(),e.createBlock(e.Transition,{name:"fade"},{default:e.withCtx(()=>[i.value?(e.openBlock(),e.createElementBlock("div",fu,[e.createElementVNode("div",gu,[e.createElementVNode("div",hu,[e.createElementVNode("p",yu,[l.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(" Об’єкт "+e.toDisplayString(Y.value+1)+" / "+e.toDisplayString(_e.value),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[le.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(" Об’єкт "+e.toDisplayString(Y.value+1)+" / "+e.toDisplayString(_e.value),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(" Інформація про об’єкт ")],64))],64))])]),l.value&&e.unref(q)>1?(e.openBlock(),e.createElementBlock("div",xu,[e.createElementVNode("button",{onClick:_[0]||(_[0]=(...z)=>e.unref(D)&&e.unref(D)(...z)),disabled:e.unref(G)===0,class:"border p-1 rounded text-xs disabled:opacity-40"},[e.createVNode(e.unref(Jt),{class:"h-4 w-4"})],8,ku),e.createElementVNode("button",{onClick:_[1]||(_[1]=(...z)=>e.unref(qe)&&e.unref(qe)(...z)),disabled:e.unref(G)===e.unref(q)-1,class:"border p-1 rounded text-xs disabled:opacity-40"},[e.createVNode(e.unref(en),{class:"h-4 w-4"})],8,bu)])):!l.value&&le.value?(e.openBlock(),e.createElementBlock("div",wu,[e.createElementVNode("button",{onClick:_[2]||(_[2]=(...z)=>e.unref(Ae)&&e.unref(Ae)(...z)),disabled:K.value===0,class:"border p-1 rounded text-xs disabled:opacity-40"},[e.createVNode(e.unref(Jt),{class:"h-4 w-4"})],8,_u),e.createElementVNode("button",{onClick:_[3]||(_[3]=(...z)=>e.unref($e)&&e.unref($e)(...z)),disabled:K.value===J.value-1,class:"border p-1 rounded text-xs disabled:opacity-40"},[e.createVNode(e.unref(en),{class:"h-4 w-4"})],8,Eu)])):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"inline-flex h-7 w-7 items-center justify-center rounded-full bg-slate-100 text-slate-500 hover:bg-slate-200 hover:text-slate-700 ml-1",onClick:He}," ✕ ")]),e.createElementVNode("div",Bu,[a.value?(e.openBlock(),e.createElementBlock("div",Nu," Завантаження даних… ")):c.value?(e.openBlock(),e.createElementBlock("div",vu,e.toDisplayString(c.value),1)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[O.value.length?(e.openBlock(),e.createElementBlock("div",Cu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(O.value,(z,H)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:H},[z.type==="html"?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:z.content},null,8,Vu)):(e.openBlock(),e.createBlock(du,{key:1,title:z.componentProps.title,url:z.componentProps.url,id:z.componentProps.id,"button-text":z.componentProps.buttonText,onActivate:Fe},e.createSlots({_:2},[z.slotText?{name:"default",fn:e.withCtx(()=>[e.createElementVNode("span",{innerHTML:z.slotText},null,8,$u)]),key:"0"}:void 0]),1032,["title","url","id","button-text"]))],64))),128))])):P.value.length?(e.openBlock(),e.createElementBlock("div",Au,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(P.value,z=>(e.openBlock(),e.createElementBlock("div",{key:z.key,class:"flex items-start justify-between gap-3 border-b border-slate-100 pb-2"},[e.createElementVNode("span",Su,e.toDisplayString(z.label),1),z.format==="badge"?(e.openBlock(),e.createElementBlock("span",Lu,e.toDisplayString(z.value),1)):(e.openBlock(),e.createElementBlock("span",Fu,e.toDisplayString(z.value),1))]))),128))])):e.createCommentVNode("",!0),Z.value.length?(e.openBlock(),e.createElementBlock("div",Tu,[_[5]||(_[5]=e.createElementVNode("p",{class:"text-xs font-semibold uppercase tracking-wide text-slate-500"},"Шари",-1)),e.createElementVNode("div",Mu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Z.value,z=>(e.openBlock(),e.createElementBlock("div",{key:z.id,class:"hover:bg-gray-100 rounded-lg flex items-center justify-between py-[8px] px-[8px] gap-3"},[e.createElementVNode("label",Iu,[e.createElementVNode("input",{type:"checkbox",class:"peer hidden",checked:Ve(z.id),onChange:H=>Me(z,H)},null,40,Du),_[4]||(_[4]=e.createElementVNode("div",{class:"w-4 h-4 rounded border border-blue-800 flex items-center justify-center peer-checked:bg-blue-600 peer-checked:border-blue-600"},[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"8",viewBox:"0 0 12 8",fill:"none"},[e.createElementVNode("path",{d:"M10.6663 1L4.24967 7.41667L1.33301 4.5",stroke:"#fff","stroke-width":"1.4","stroke-linecap":"round","stroke-linejoin":"round"})])],-1)),e.createElementVNode("span",ju,e.toDisplayString(z.title),1)]),z.subtitle?(e.openBlock(),e.createElementBlock("div",Ou,e.toDisplayString(z.subtitle),1)):e.createCommentVNode("",!0)]))),128))])])):e.createCommentVNode("",!0),pe.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",zu," Даних не знайдено. "))],64))])])):e.createCommentVNode("",!0)]),_:1}))}}),[["__scopeId","data-v-0fa76782"]]),ao=e.defineComponent({__name:"MapBoundaryLayer",props:{layerId:{},boundary:{},katottg:{},settingsMap:{}},setup(t){var m,y;const n=t,o=((y=(m=e.getCurrentInstance())==null?void 0:m.appContext.config.globalProperties)==null?void 0:y.$settings)||null,{map:r,ready:l}=xe();let i=null;function a(){i==null||i.remove(),i=null}function c(d){if(!d)return null;if(typeof d=="string")try{d=JSON.parse(d)}catch{return null}return d.type==="FeatureCollection"?d:d.type==="Feature"?{type:"FeatureCollection",features:[d]}:d.type&&Array.isArray(d.coordinates)?{type:"FeatureCollection",features:[{type:"Feature",geometry:d,properties:{}}]}:Array.isArray(d.features)?{type:"FeatureCollection",features:d.features}:d.geometry?c(d.geometry):null}function p(d){var V,b,w;return{type:"line",color:"#8e4484",width:2,opacity:((((w=(b=(V=d==null?void 0:d.features)==null?void 0:V[0])==null?void 0:b.geometry)==null?void 0:w.type)||"").includes("Polygon"),.95)}}async function u(d){const f=await fetch(d);if(!f.ok)throw new Error(String(f.status));return f.json()}async function h(d,f){if(d){const g=/^https?:\/\//.test(d)?d:new URL(d,location.origin).toString(),V=await u(g).catch(()=>null),b=c(V);if(b)return b}if(f){const g=await u(`https://data.gki.com.ua/api-user/atu/${encodeURIComponent(f)}`).catch(()=>null),V=c(g);if(V)return V}return null}async function s(){var V,b,w,N;if(!n.layerId||!r.value){a();return}typeof l=="function"&&await l().catch(()=>{});const d=n.boundary??((V=n.settingsMap)==null?void 0:V.boundary)??((b=o==null?void 0:o.map)==null?void 0:b.boundary)??null,f=n.katottg??((w=n.settingsMap)==null?void 0:w.katottg)??((N=o==null?void 0:o.map)==null?void 0:N.katottg)??null;if(!d&&!f){a();return}const g=await h(d,f);if(!g){a();return}a(),i=ee(`${n.layerId}-boundary`,{source:{type:"geojson",data:g},style:p(g)},r)}return e.watch(()=>{var d,f;return[n.layerId,n.boundary,n.katottg,(d=n.settingsMap)==null?void 0:d.boundary,(f=n.settingsMap)==null?void 0:f.katottg,r.value]},()=>{s()},{immediate:!0}),e.onBeforeUnmount(a),(d,f)=>null}}),Ru={class:"flex h-screen bg-gradient-to-br from-slate-50 to-white"},Uu={class:"flex-1 relative overflow-hidden"},qu={class:"absolute top-0 left-0 w-full z-20"},Hu={class:"flex items-center justify-between bg-white/80 backdrop-blur border-b border-gray-200 px-6 py-3 shadow-sm gap-4"},Yu={class:"flex items-center gap-3"},Zu={class:"font-semibold text-lg text-gray-800 line-clamp-1"},Wu={class:"text-xs text-gray-500 truncate"},Ku=["title"],Gu={class:"w-full h-full bg-gradient-to-br from-sky-50 via-white to-blue-50 flex items-center justify-center relative pt-[64px]"},Xu={class:"relative w-full h-full"},Qu={style:{top:"17px",left:"230px",position:"absolute","z-index":"1"}},Ju={class:"absolute top-4 left-4 z-20"},ep={class:"absolute bottom-4 left-4 z-20"},tp={class:"w-[650px] bg-white border-l border-gray-100 flex flex-col overflow-hidden shadow-lg"},np={class:"flex-1 flex flex-col h-full"},op={class:"px-3 pt-3 pb-2 border-b border-gray-100"},rp={class:"items-center justify-center text-muted-foreground grid w-full grid-cols-6 h-12 p-1 bg-gray-50 rounded-xl shadow-sm"},lp=["aria-selected","onClick"],ip={class:"leading-none"},ap={class:"flex flex-col flex-1 overflow-y-hidden p-3"},sp=e.defineComponent({__name:"service",setup(t){var $,I;const n=Be.useRoute(),o=Be.useRouter(),{id:r}=n.params,l=e.ref(null),i=e.ref({}),a=e.ref(null),c=((I=($=e.getCurrentInstance())==null?void 0:$.appContext.config.globalProperties)==null?void 0:I.$settings)||null,p=e.ref(""),u=e.ref([]),h=e.ref([]),s=e.ref([]),m=e.ref("list"),y=e.ref(""),d=e.ref([]),f=e.computed(()=>{var C,v;return((C=a.value)==null?void 0:C.id)??((v=a.value)==null?void 0:v.service_id)??null}),g=e.computed(()=>{const C=(c==null?void 0:c.map)||null,v=(C==null?void 0:C.boundary)??null,F=(C==null?void 0:C.katottg)??null;return!v&&!F?null:{boundary:v,katottg:F}}),V=[{key:"style",label:"Стиль",icon:xa},{key:"popup",label:"Попап",icon:Aa},{key:"filter",label:"Фільтр",icon:Ta},{key:"legend",label:"Легенда",icon:_a},{key:"card",label:"Картка",icon:va}],b=V.map(C=>C.key),w=e.ref("style");e.onMounted(async()=>{const C=n.query.tab;C&&b.includes(C)&&(w.value=C),await N()}),e.watch(w,C=>{n.query.tab!==C&&o.replace({query:{...n.query,tab:C}})}),e.watch(()=>n.query.tab,C=>{C&&b.includes(C)&&w.value!==C&&(w.value=C)});const N=async()=>{try{const C=await fetch(`/api/gis-service/${r}`);if(!C.ok)throw new Error(`${C.status}`);const v=await C.json();i.value=v||{},l.value=r,a.value=v||null,p.value=v.style||"",h.value=(v==null?void 0:v.popup)||[],m.value=v.card_mode==="html"?"html":"list",s.value=v.card,y.value=v.html,u.value=(v==null?void 0:v.legend)||[],d.value=(v==null?void 0:v.filters)||[]}catch(C){console.error("Failed to fetch map info",C)}};e.watch(()=>{var C;return(C=a.value)==null?void 0:C.style},C=>{C?typeof C=="string"?p.value=C:p.value=JSON.parse(JSON.stringify(C)):p.value=""},{deep:!0});async function A(C,v){await x({[C]:v},C)}async function x(C,v){if(a.value={...a.value||{},...C},typeof C.html<"u"&&(i.value={...i.value||{},html:C.html}),!!f.value)try{if(!(await fetch(`/api/gis-service/${f.value}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(C)})).ok)throw new Error("Save failed");ce.notify({type:"success",title:"Успіх",message:`${v} saved`}),await N()}catch(F){ce.notify({type:"error",title:"Помилка",message:`Failed to save ${v}`}),console.error(F)}}async function T(C,v){if(C!=="card"){await A(C,v);return}const F=(v==null?void 0:v.card_mode)==="html"?"html":"list",j=F==="html"&&typeof(v==null?void 0:v.html)=="string"?v.html:"",M=(F==="html"?[]:null)||(Array.isArray(v==null?void 0:v.list)?v.list:[]);s.value=M,m.value=F,y.value=j;const S={card_mode:F};F==="html"&&(S.html=j),F==="list"&&(S.card=M),await x(S,"card")}return(C,v)=>{var F,j,M,S;return e.openBlock(),e.createElementBlock("div",Ru,[e.createElementVNode("div",Uu,[e.createElementVNode("div",qu,[e.createElementVNode("div",Hu,[e.createElementVNode("div",Yu,[e.createElementVNode("button",{onClick:v[0]||(v[0]=k=>C.$router.back()),class:"inline-flex items-center px-3 py-1.5 rounded-md bg-sky-100 hover:bg-sky-200 text-sky-700 font-medium text-sm transition"},[...v[10]||(v[10]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4 mr-1",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1),e.createTextVNode(" Назад ",-1)])]),e.createElementVNode("div",null,[e.createElementVNode("div",Zu,e.toDisplayString((F=a.value)==null?void 0:F.name),1),e.createElementVNode("div",Wu," Сервіс: "+e.toDisplayString((j=a.value)==null?void 0:j.service_key),1)])]),e.createElementVNode("div",{class:"max-w-xl text-xs text-gray-600 truncate",title:(M=a.value)==null?void 0:M.description},e.toDisplayString((S=a.value)==null?void 0:S.description),9,Ku)])]),e.createElementVNode("div",Gu,[e.createElementVNode("div",Xu,[e.createVNode(no,null,{default:e.withCtx(()=>{var k,E,L,P,O,R,U;return[(k=a.value)!=null&&k.service_id?(e.openBlock(),e.createBlock(Ud,{key:0,id:(E=a.value)==null?void 0:E.service_id,layer:a.value,"style-yaml":p.value},null,8,["id","layer","style-yaml"])):e.createCommentVNode("",!0),f.value?(e.openBlock(),e.createBlock(ao,{key:1,"layer-id":f.value,boundary:((L=a.value)==null?void 0:L.boundary)||((P=g.value)==null?void 0:P.boundary)||null,katottg:((O=a.value)==null?void 0:O.katottg)||((R=g.value)==null?void 0:R.katottg)||null},null,8,["layer-id","boundary","katottg"])):e.createCommentVNode("",!0),e.createElementVNode("div",Qu,[f.value?(e.openBlock(),e.createBlock(Rt,{key:0,"layer-id":f.value,filters:d.value},null,8,["layer-id","filters"])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Ju,[e.createVNode(Ut)]),e.createElementVNode("div",ep,[e.createVNode(qt,{items:((U=a.value)==null?void 0:U.legend)||null},null,8,["items"])]),e.createVNode(ro),e.createVNode(io,{html:i.value.html},null,8,["html"])]}),_:1})])])]),e.createElementVNode("div",tp,[e.createElementVNode("div",np,[e.createElementVNode("div",op,[e.createElementVNode("div",rp,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(V,k=>e.createElementVNode("button",{key:k.key,type:"button",role:"tab","aria-selected":w.value===k.key,class:e.normalizeClass(["whitespace-nowrap flex flex-col items-center justify-center gap-0.5 py-1 px-1 text-[9px] font-medium transition-all duration-300 hover:bg-white/70 rounded-lg group",w.value===k.key?"bg-white shadow-sm text-gray-700":""]),onClick:E=>w.value=k.key},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(k.icon),{class:"h-3.5 w-3.5 mb-0.5"})),e.createElementVNode("span",ip,e.toDisplayString(k.label),1)],10,lp)),64))])]),e.createElementVNode("div",ap,[w.value==="style"?(e.openBlock(),e.createBlock(pd,{key:0,token:f.value,"style-yaml":p.value,"onUpdate:styleYaml":v[1]||(v[1]=k=>p.value=k),onSave:v[2]||(v[2]=k=>A("style",k))},null,8,["token","style-yaml"])):w.value==="legend"?(e.openBlock(),e.createBlock(Ad,{key:1,token:f.value,columns:u.value,"onUpdate:columns":v[3]||(v[3]=k=>u.value=k),onSave:v[4]||(v[4]=k=>A("legend",k))},null,8,["token","columns"])):w.value==="popup"?(e.openBlock(),e.createBlock(_d,{key:2,token:f.value,columns:h.value,fields:i.value.fields,"onUpdate:columns":v[5]||(v[5]=k=>h.value=k),onSave:v[6]||(v[6]=k=>A("popup",k))},null,8,["token","columns","fields"])):w.value==="card"?(e.openBlock(),e.createBlock(jd,{key:3,token:f.value,columns:s.value,fields:i.value.fields,"view-mode":m.value,html:y.value,"onUpdate:columns":v[7]||(v[7]=k=>s.value=k),onSave:T},null,8,["token","columns","fields","view-mode","html"])):w.value==="filter"?(e.openBlock(),e.createBlock(zd,{key:4,token:f.value,fields:i.value.fields,columns:d.value,"onUpdate:columns":v[8]||(v[8]=k=>d.value=k),onSave:v[9]||(v[9]=k=>A("filters",k))},null,8,["token","fields","columns"])):e.createCommentVNode("",!0)])])])])}}}),cp={class:"mapLayer-info__inner"},dp={class:"mapLayer-info__item-label"},Zt=X(e.defineComponent({__name:"MapLayerInfoPopover",props:{items:{}},setup(t,{expose:n}){const o=t,r=e.reactive({open:!1,top:0,left:0,transform:"translateX(-50%)"}),l=e.ref(null),i=e.ref(null);let a=null;const c=e.computed(()=>r.open?{position:"absolute",width:"460px",top:`${r.top}px`,left:`${r.left}px`,transform:r.transform,display:"block"}:{display:"none"});function p(f){if(r.open){m();return}const g=f.currentTarget,V=g==null?void 0:g.closest(".mapLayer-info");if(!V){m();return}l.value=V,r.open=!0,e.nextTick(()=>{u(),y(),requestAnimationFrame(()=>{u()})})}function u(){var I,C;if(!r.open||!l.value)return;const f=l.value.getBoundingClientRect(),g=8,V=window.scrollX+g,b=window.scrollX+window.innerWidth-g,w=window.scrollY+g,N=window.scrollY+window.innerHeight-g,A=((I=i.value)==null?void 0:I.offsetWidth)||460,x=((C=i.value)==null?void 0:C.offsetHeight)||0;let T=f.left+window.scrollX+(f.width-A)/2;T<V&&(T=V),T+A>b&&(T=Math.max(V,b-A)),r.left=T;let $=f.bottom+window.scrollY+g;$+x>N&&($=f.top+window.scrollY-x-g,$<w&&($=Math.max(w,N-x))),r.top=$,r.transform="none"}function h(f){var V,b;if(!r.open)return;const g=f.target;(V=l.value)!=null&&V.contains(g)||(b=i.value)!=null&&b.contains(g)||m()}function s(f){f.key==="Escape"&&m()}function m(){d(),r.open=!1,l.value=null,i.value=null}function y(){d(),i.value&&(a=new ResizeObserver(()=>{u()}),a.observe(i.value))}function d(){a&&(a.disconnect(),a=null)}return e.onMounted(()=>{document.addEventListener("click",h,!0),document.addEventListener("keydown",s),window.addEventListener("scroll",u,!0),window.addEventListener("resize",u)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",h,!0),document.removeEventListener("keydown",s),window.removeEventListener("scroll",u,!0),window.removeEventListener("resize",u),d()}),e.watch(()=>o.items,()=>{r.open&&e.nextTick(()=>u())},{deep:!0}),n({close:m}),(f,g)=>(e.openBlock(),e.createElementBlock("div",{class:"mapLayer-info",ref_key:"anchorEl",ref:l},[e.createElementVNode("a",{class:"mapLayer-info__trigger",href:"#",onClick:e.withModifiers(p,["prevent","stop"])},[...g[1]||(g[1]=[e.createStaticVNode('<div class="mapLayer-info__icon" data-v-e7d532ad><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" data-v-e7d532ad><circle cx="12" cy="12" r="10" data-v-e7d532ad></circle><line x1="12" y1="16" x2="12" y2="12" data-v-e7d532ad></line><line x1="12" y1="8" x2="12.01" y2="8" data-v-e7d532ad></line></svg></div>',1)])]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[r.open?(e.openBlock(),e.createElementBlock("div",{key:0,class:"vst-popover__content inline-block z-50 py-3 px-4 bg-white text-sm text-gray-500 rounded-md shadow-lg bottom mapLayer-info__popover",style:e.normalizeStyle(c.value),ref_key:"popoverEl",ref:i,onClick:g[0]||(g[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",cp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,V=>(e.openBlock(),e.createElementBlock("div",{key:V.label,class:"mapLayer-info__item"},[e.createElementVNode("div",dp,e.toDisplayString(V.label),1),e.createElementVNode("div",{class:e.normalizeClass(["mapLayer-info__item-value",{"mapLayer-info__item-value--break-all":V.breakLine}])},e.toDisplayString(V.value??"—"),3)]))),128))])],4)):e.createCommentVNode("",!0)]))],512))}}),[["__scopeId","data-v-e7d532ad"]]),up={key:0,class:"map-info__header"},pp={key:0,class:"map-info__title"},mp={class:"map-info__actions"},fp={key:0,class:"map-info__menu"},gp=["onClick"],hp=["innerHTML"],so=X(e.defineComponent({__name:"MapInfoWidget",props:{title:{},content:{},links:{},mapName:{},mapDescription:{}},setup(t){const n=t,o=e.ref(null),r=e.ref(!1),l=e.ref(null),i=e.ref({top:0,left:0}),a=Be.useRouter(),c=e.computed(()=>Array.isArray(n.links)?n.links.filter(d=>(d==null?void 0:d.name)&&(d==null?void 0:d.slug)):[]),p=e.computed(()=>({top:`${i.value.top}px`,left:`${i.value.left}px`})),u=e.computed(()=>{const d=[];return n.mapName&&d.push({label:"Назва карти",value:n.mapName}),n.mapDescription&&d.push({label:"Опис",value:n.mapDescription,breakLine:!0}),d});function h(d){d.stopPropagation(),r.value=!r.value}function s(){const d=l.value;if(!d)return;const{bottom:f,left:g}=d.getBoundingClientRect();i.value={top:f+window.scrollY+8,left:g+window.scrollX}}function m(d){if(!r.value)return;const f=o.value;if(!f){r.value=!1;return}f.contains(d.target)||(r.value=!1)}e.onMounted(()=>{document.addEventListener("click",m,!0)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",m,!0),window.removeEventListener("scroll",s,!0),window.removeEventListener("resize",s)}),e.watch(r,d=>{d?e.nextTick(()=>{s(),window.addEventListener("scroll",s,!0),window.addEventListener("resize",s)}):(window.removeEventListener("scroll",s,!0),window.removeEventListener("resize",s))});function y(d){r.value=!1,a.push(`/maps/${d}`)}return(d,f)=>(e.openBlock(),e.createElementBlock("div",{class:"map-info legend-widget flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative widget",ref_key:"container",ref:o},[t.title||c.value.length||u.value.length?(e.openBlock(),e.createElementBlock("div",up,[t.title?(e.openBlock(),e.createElementBlock("h2",pp,e.toDisplayString(t.title),1)):e.createCommentVNode("",!0),e.createElementVNode("div",mp,[c.value.length?(e.openBlock(),e.createElementBlock("div",fp,[e.createElementVNode("button",{ref_key:"menuButton",ref:l,type:"button",class:"map-info__menu-button",onClick:h,"aria-label":"Показати посилання"},[...f[1]||(f[1]=[e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[e.createElementVNode("path",{d:"M4 12H20",stroke:"#000000","stroke-linecap":"round","stroke-linejoin":"round"}),e.createElementVNode("path",{d:"M4 6H20",stroke:"#000000","stroke-linecap":"round","stroke-linejoin":"round"}),e.createElementVNode("path",{d:"M4 18H20",stroke:"#000000","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],512),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[r.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"vsTailwind vs-popover__content right map-info__popover",style:e.normalizeStyle(p.value),onClick:f[0]||(f[0]=e.withModifiers(()=>{},["stop"]))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,g=>(e.openBlock(),e.createElementBlock("button",{key:g.slug||g.name,type:"button",class:"map-info__popover-link",onClick:V=>y(g.slug)},e.toDisplayString(g.name),9,gp))),128))],4)):e.createCommentVNode("",!0)]))])):e.createCommentVNode("",!0),u.value.length?(e.openBlock(),e.createBlock(Zt,{key:1,items:u.value},null,8,["items"])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),t.content?(e.openBlock(),e.createElementBlock("div",{key:1,class:"map-info__content",innerHTML:t.content},null,8,hp)):e.createCommentVNode("",!0)],512))}}),[["__scopeId","data-v-2b3e43a7"]]),yp={class:"opacity-popover__content"},xp={class:"opacity-popover__value"},co=X(e.defineComponent({__name:"LayerOpacityPopover",props:{layerId:{}},setup(t){const n=t,o=e.ref(!1),r=e.ref(100),l=e.ref(null),i=e.ref(null),a=e.reactive({top:0,left:0});function c(){var y;const s=(y=i.value)==null?void 0:y.querySelector("button");if(!s)return;const m=s.getBoundingClientRect();a.top=m.bottom+8+window.scrollY,a.left=m.left+window.scrollX}function p(){o.value=!o.value,o.value&&e.nextTick(c)}function u(){var d;const s=ee(n.layerId),m=(r.value??100)/100;if(s!=null&&s.setOpacity){s.setOpacity(m);return}const y=(d=s==null?void 0:s.getLayer)==null?void 0:d.call(s);if(y)switch(y.type){case"raster":s.updatePaint({"raster-opacity":m});break;case"fill":s.updatePaint({"fill-opacity":m});break;case"line":s.updatePaint({"line-opacity":m});break;case"circle":s.updatePaint({"circle-opacity":m});break;case"symbol":s.updatePaint({"icon-opacity":m});break}}function h(s){var y,d;if(!o.value)return;const m=s.target;(y=l.value)!=null&&y.contains(m)||(d=i.value)!=null&&d.contains(m)||(o.value=!1)}return e.onMounted(()=>{document.addEventListener("click",h),window.addEventListener("scroll",c,!0),window.addEventListener("resize",c)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",h),window.removeEventListener("scroll",c,!0),window.removeEventListener("resize",c)}),(s,m)=>(e.openBlock(),e.createElementBlock("div",{class:"opacity-wrapper",ref_key:"wrapper",ref:i},[e.renderSlot(s.$slots,"trigger",{toggle:p,opacity:r.value},()=>[e.createElementVNode("button",{type:"button",class:"opacity-btn",onClick:e.withModifiers(p,["stop"])},e.toDisplayString(r.value)+"% ",1)],!0),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[o.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"popoverEl",ref:l,class:"opacity-popover",style:e.normalizeStyle({top:a.top+"px",left:a.left+"px"})},[e.createElementVNode("div",yp,[m[1]||(m[1]=e.createElementVNode("label",{class:"opacity-popover__label"},"Прозорість:",-1)),e.withDirectives(e.createElementVNode("input",{type:"range",min:"0",max:"100",step:"1","onUpdate:modelValue":m[0]||(m[0]=y=>r.value=y),class:"opacity-popover__range",onInput:u},null,544),[[e.vModelText,r.value]]),e.createElementVNode("span",xp,e.toDisplayString(r.value)+"%",1)])],4)):e.createCommentVNode("",!0)]))],512))}}),[["__scopeId","data-v-80d5be35"]]),kp={class:"layers-panel"},bp={class:"layers-panel__header"},wp={class:"layers-panel__heading"},_p={class:"layers-panel__title"},Ep={key:0,class:"layers-panel__description"},Bp={class:"layers-panel__label"},Np=["checked","onChange"],vp={class:"layers-panel__name"},Cp={class:"layers-panel__meta text-slate-500"},Vp=["onClick"],$p={class:"inline-flex items-center justify-center w-[18px] h-[18px] text-slate-500 transition-colors duration-200 hover:text-blue-700"},Ap={key:0,class:"layers-panel__actions"},Sp=["innerHTML","onClick"],uo="map:temporary-layer-request",po=X(e.defineComponent({__name:"MapDataLayersWidget",props:{layers:{},config:{}},emits:["action"],setup(t,{emit:n}){const o=t,r=e.ref({}),l=xe(),{temporaryLayers:i,activateTemporaryLayer:a,deactivateTemporaryLayer:c,clearTemporaryLayers:p}=lo(l.map),u=e.computed(()=>{const x=o.layers.map($=>({...$,isTemporary:!1,owner:null,visible:$.visible!==!1})),T=i.value.map($=>({id:$.id,name:$.title,visible:r.value[$.id]??!0,actions:[],filters:null,isTemporary:!0,owner:$.owner??null,handle:$.handle??null,card:$.card??null,popup:$.popup??null,style:$.style??null,group_name:null,count:null,holder:null}));return[...x,...T]}),h=e.computed(()=>i.value.length>0),s=n;function m(){var x;for(let T=0;T<o.layers.length;T++){const $=o.layers[T],I=y($);if(!I)continue;const C=ee($.id,I),v=$.visible!==!1;r.value[$.id]=v,v||(x=C==null?void 0:C.setVisible)==null||x.call(C,!1)}}function y(x){const T=x.id;if(!T)return null;const $=(x.service||x.service_type||x.type||"").toString().toLowerCase(),I=x.service_url||x.url||null;if(!!I&&($==="tms"||$==="wmts"||$==="wms"||$==="ogc")){const M=d(I);return M?{sourceId:T,source:{type:"raster",tiles:[M],tileSize:x.tileSize||256,minzoom:x.minzoom??0,maxzoom:x.maxzoom??22,scheme:x.scheme||"xyz"},layer:{id:T,type:"raster",source:T},card:x.card,popup:x.popup}:null}const v=bt(x),F=wt(x),j=_t(`${location.origin}/api/vtile/${T}/ua/{z}/{x}/{y}.vmt`,{clusterZoom:v,pointZoom:F});return{sourceId:T,source:{type:"vector",tiles:[j],minZoom:4,maxZoom:14},layer:{id:T,source:T,"source-layer":T,style:x.style},card:x.card,popup:x.popup}}function d(x){return x?/^https?:\/\//i.test(x)?x:x.startsWith("//")?`${window.location.protocol}${x}`:x.startsWith("/")?`${location.origin}${x}`:`${location.origin}/${x}`:null}function f(x){const T=r.value[x];return T??!0}function g(x){var I,C;if(!(x!=null&&x.id))return null;const T=(I=x.title)==null?void 0:I.trim(),$=(C=x.url)==null?void 0:C.trim();return!T||!$?null:{id:x.id,title:T,url:$,tileSize:x.tileSize,minzoom:x.minzoom,maxzoom:x.maxzoom,opacity:x.opacity}}function V(x){if(!x)return;const T=x.owner;if(x.action==="clear"){const I=i.value.filter(C=>!T||C.owner===T).map(C=>C.id);p(T),I.forEach(C=>{C in r.value&&delete r.value[C]});return}const $=g(x.spec);if($){if(x.action==="activate"){a($,x.context||{},T),r.value[$.id]=!0;return}x.action==="deactivate"&&(c($.id,T),delete r.value[$.id])}}function b(x){x instanceof CustomEvent&&V(x.detail)}e.watch(()=>i.value.map(x=>x.id),(x,T)=>{const $=new Set(T||[]),I=new Set(x);x.forEach(C=>{C in r.value||(r.value[C]=!0)}),$.forEach(C=>{I.has(C)||delete r.value[C]})},{immediate:!0}),e.onMounted(()=>{m(),window.addEventListener(uo,b)}),e.onBeforeUnmount(()=>{window.removeEventListener(uo,b)});function w(x,T){var v,F,j;const I=T.target.checked;if(r.value[x.id]=I,x.isTemporary){if(!I){c(x.id,x.owner||void 0),delete r.value[x.id];return}const M=x.handle||((v=i.value.find(S=>S.id===x.id))==null?void 0:v.handle);(F=M==null?void 0:M.setVisible)==null||F.call(M,!0);return}const C=ee(x.id);(j=C==null?void 0:C.setVisible)==null||j.call(C,I)}function N(x){return x.isTemporary?[{label:"Назва",value:x.name??null},{label:"Тип",value:"Тимчасовий шар"},x.owner?{label:"Джерело",value:x.owner}:null].filter(Boolean):[{label:"Назва",value:x.name??null},{label:"Назва групи",value:x.group_name||null},{label:"Кількість",value:x.count??null},{label:"Балансоутримувач",value:x.holder??null}]}function A(){if(!i.value.length)return;const x=i.value.map(T=>T.id);p(),x.forEach(T=>delete r.value[T])}return(x,T)=>{var $,I;return e.openBlock(),e.createElementBlock("div",kp,[e.createElementVNode("div",bp,[e.createElementVNode("div",wp,[e.createElementVNode("h2",_p,e.toDisplayString((($=t.config)==null?void 0:$.title)||"Шари"),1),(I=t.config)!=null&&I.description?(e.openBlock(),e.createElementBlock("div",Ep,[e.createElementVNode("p",null,e.toDisplayString(t.config.description),1)])):e.createCommentVNode("",!0)]),h.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"layers-panel__clear",onClick:A}," Очистити тимчасові шари ")):e.createCommentVNode("",!0)]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,C=>{var v;return e.openBlock(),e.createElementBlock("div",{key:C.id,class:"layers-panel__item"},[e.createElementVNode("label",Bp,[e.createElementVNode("input",{type:"checkbox",class:"layers-panel__checkbox",checked:f(C.id),onChange:F=>w(C,F)},null,40,Np),e.createElementVNode("span",vp,e.toDisplayString(C.name),1),e.createElementVNode("div",Cp,[f(C.id)&&!C.isTemporary?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(co,{"layer-id":C.id,class:"flex"},{trigger:e.withCtx(({toggle:F})=>[e.createElementVNode("button",{class:"inline-flex items-center justify-center p-0 text-inherit no-underline cursor-pointer",onClick:e.withModifiers(F,["prevent","stop"])},[e.createElementVNode("div",$p,[e.createVNode(e.unref(Bo))])],8,Vp)]),_:1},8,["layer-id"]),e.createVNode(Et,{count:Array.isArray(C.filters)?C.filters.length:0,layer:C},null,8,["count","layer"])],64)):e.createCommentVNode("",!0),e.createVNode(Zt,{items:N(C)},null,8,["items"])])]),(v=C.actions)!=null&&v.length?(e.openBlock(),e.createElementBlock("div",Ap,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.actions,F=>(e.openBlock(),e.createElementBlock("button",{key:F.widget||F.id||F.icon,type:"button",class:"layers-panel__action",innerHTML:F.icon,onClick:j=>s("action",{layerId:F.widget})},null,8,Sp))),128))])):e.createCommentVNode("",!0)])}),128))])}}}),[["__scopeId","data-v-dce0e26f"]]),Lp={class:"catalog-tab__search relative mt-[10px]"},Fp={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"absolute top-[40%] left-[8px] w-[16px] h-[16px]",style:{transform:"translate(0, -50%)"}},Tp={key:0,class:"text-sm text-gray-400 text-center mt-6"},Mp=["onClick"],Ip={class:"flex items-center gap-x-3"},Dp={class:"max-w-[260px] text-[14px] text-[#4b5563]"},jp={class:"text-xs opacity-60 text-[#4b5563]"},Op={class:"flex items-center cursor-pointer gap-2 flex-1"},zp=["checked","onChange"],Pp={class:"text-[13px] text-gray-600 truncate max-w-[260px]"},Rp={class:"flex items-center gap-2"},Up=X(e.defineComponent({__name:"LayersCatalogTab",props:{catalog:{},selected:{},search:{}},emits:["toggle-layer","update:search","open-filter"],setup(t,{emit:n}){const o=t,r=n,l=e.reactive({}),i=e.ref(null),a=e.reactive({visible:!1,text:"Спочатку активуйте шар, щоб застосувати фільтр",top:0,left:0,layerId:null}),c=e.computed(()=>{const g=o.search.trim().toLowerCase();return o.catalog.groups.map(V=>{const b=g?V.layers.filter(w=>(typeof w.name=="string"?w.name:"").toLowerCase().includes(g)):V.layers;return{...V,layers:b}}).filter(V=>V.layers.length>0)}),p=e.computed({get:()=>o.search,set:g=>r("update:search",g)});function u(g){l[g]=!l[g],qd()}function h(g){return!!l[g]}function s(g,V){if(o.selected.includes(V)){a.visible=!1,a.layerId=null;return}const b=g.currentTarget;if(!b)return;const w=b.getBoundingClientRect(),N=typeof window<"u"?window.scrollX:0,A=typeof window<"u"?window.scrollY:0;a.left=w.left+w.width/2+N,a.top=w.bottom+8+A,a.layerId=V,a.visible=!0}function m(){a.visible=!1,a.layerId=null}function y(g){return[{label:"Назва",value:d(g.name)},{label:"Сервіс",value:d(g.service)},{label:"Посилання",value:d(g.url),breakLine:!0},{label:"Джерело",value:d(g.source_path),breakLine:!0},{label:"Popup",value:f(g.popup,"полів")},{label:"Картка",value:f(g.card,"полів")},{label:"Фільтри",value:f(g.filters,"фільтрів")}]}function d(g){return g==null||g===""?null:String(g)}function f(g,V){return!Array.isArray(g)||g.length===0?null:`${g.length} ${V}`}return e.watch(()=>o.selected?o.selected.slice():[],g=>{!a.visible||!a.layerId||g.includes(a.layerId)&&(a.visible=!1,a.layerId=null)}),(g,V)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"catalogRef",ref:i,class:"catalog-tab"},[e.createElementVNode("div",Lp,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":V[0]||(V[0]=b=>p.value=b),type:"text",placeholder:"Введіть назву шару...",class:"py-[7px] pl-8 pe-8 block w-full bg-gray-100 border-transparent rounded-lg text-sm focus:bg-white focus:border-blue-500 focus:ring-blue-500"},null,512),[[e.vModelText,p.value]]),(e.openBlock(),e.createElementBlock("svg",Fp,[...V[1]||(V[1]=[e.createElementVNode("path",{d:"M11 19C15.4183 19 19 15.4183 19 11C19 6.5817 15.4183 3 11 3C6.5817 3 3 6.5817 3 11C3 15.4183 6.5817 19 11 19Z",stroke:"black","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),e.createElementVNode("path",{d:"M21 21L16.7 16.7",stroke:"black","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])]))]),c.value.length===0?(e.openBlock(),e.createElementBlock("div",Tp," Нічого не знайдено ")):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,b=>(e.openBlock(),e.createElementBlock("div",{key:b.id,class:"mt-2"},[e.createElementVNode("div",{class:"hover:bg-gray-100 cursor-pointer p-[8px] rounded-lg flex justify-between items-center",onClick:w=>u(b.id)},[e.createElementVNode("div",Ip,[(e.openBlock(),e.createElementBlock("svg",{width:"6",height:"10",viewBox:"0 0 6 10",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:e.normalizeClass(["transition-transform",h(b.id)?"rotate-90":""])},[...V[2]||(V[2]=[e.createElementVNode("path",{d:"M1 9L5 5L1 1",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])],2)),e.createElementVNode("div",Dp,e.toDisplayString(b.name),1)]),e.createElementVNode("div",jp,e.toDisplayString(b.layers.length),1)],8,Mp),e.createVNode(e.Transition,{name:"out-in"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.layers,w=>(e.openBlock(),e.createElementBlock("div",{key:w.id,class:"hover:bg-gray-100 rounded-lg flex items-center justify-between ml-[20px] py-[8px] px-[8px] gap-3"},[e.createElementVNode("label",Op,[e.createElementVNode("input",{type:"checkbox",class:"peer hidden",checked:t.selected.includes(w.id),onChange:N=>g.$emit("toggle-layer",w.id,N.target.checked,w)},null,40,zp),V[3]||(V[3]=e.createElementVNode("div",{class:"w-4 h-4 rounded border border-blue-800 flex items-center justify-center peer-checked:bg-blue-600 peer-checked:border-blue-600"},[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"8",viewBox:"0 0 12 8",fill:"none"},[e.createElementVNode("path",{d:"M10.6663 1L4.24967 7.41667L1.33301 4.5",stroke:"#fff","stroke-linecap":"round","stroke-linejoin":"round"})])],-1)),e.createElementVNode("span",Pp,e.toDisplayString(w.name),1)]),e.createElementVNode("div",Rp,[Array.isArray(w.filters)&&w.filters.length?(e.openBlock(),e.createBlock(Et,{key:0,count:w.filters.length,layer:w,disabled:!t.selected.includes(w.id),onMouseenter:N=>s(N,w.id),onMouseleave:m,onFocus:N=>s(N,w.id),onBlur:m},null,8,["count","layer","disabled","onMouseenter","onFocus"])):e.createCommentVNode("",!0),e.createVNode(Zt,{items:y(w)},null,8,["items"])])]))),128))],512),[[e.vShow,h(b.id)]])]),_:2},1024)]))),128)),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[a.visible?(e.openBlock(),e.createElementBlock("div",{key:0,class:"filter-badge__hint",style:e.normalizeStyle({top:`${a.top}px`,left:`${a.left}px`})},e.toDisplayString(a.text),5)):e.createCommentVNode("",!0)]))],512))}}),[["__scopeId","data-v-1df2b104"]]),qp={class:"selected-tab"},Hp={class:"selected-tab__actions"},Yp={key:0,class:"selected-tab__scroll"},Zp=["onDragstart","onDragover","onDrop"],Wp={class:"selected-tab__item-header"},Kp={class:"selected-tab__item-info"},Gp=["checked","onChange"],Xp={class:"selected-tab__item-name"},Qp={class:"selected-tab__item-controls"},Jp=["onClick"],em={class:"selected-tab__menu-inner"},tm=X(e.defineComponent({__name:"LayersSelectedTab",props:{catalog:{},selected:{}},emits:["select-layer","reorder","remove","toggle-layer"],setup(t,{emit:n}){const o=t,r=n,l=e.reactive({}),i=e.ref(null),a=e.ref(null),c=new Map,p=e.reactive({top:0,left:0}),u=e.ref(null),h=e.reactive({top:0,left:0}),s=e.ref(null),m=new Map,y=e.reactive({});function d(S){var k;for(const E of((k=o.catalog)==null?void 0:k.groups)??[]){const L=E.layers.find(P=>P.id===S);if(L)return L}return null}e.watch(()=>o.selected,S=>{S.forEach(k=>{l[k]==null&&(l[k]=100)})},{immediate:!0});function f(){if(!i.value)return;const S=c.get(i.value);if(!S)return;const k=S.getBoundingClientRect();p.top=k.bottom+8+window.scrollY,p.left=k.left+window.scrollX}e.watch(()=>o.selected,S=>{S.forEach(k=>{y[k]==null&&(y[k]=!0)})},{immediate:!0});function g(S,k){y[S]=k;const E=ee(S);E&&E.setVisible(k);const L=d(S);r("toggle-layer",S,k,L)}function V(S,k){k?m.set(S,k):m.delete(S)}function b(S){u.value=u.value===S?null:S,u.value&&e.nextTick(()=>w(S))}function w(S){const k=m.get(S);if(!k)return;const E=k.getBoundingClientRect();h.top=E.bottom+6+window.scrollY,h.left=E.left+window.scrollX}function N(S){const k=ee(S);k&&k.remove(),r("remove",S),u.value=null}function A(S){const k=S.target,E=i.value,L=u.value;if(E){const P=a.value,O=c.get(E);if(P&&P.contains(k)||O&&O.contains(k))return;i.value=null}if(L){const P=s.value,O=m.get(L);if(P&&P.contains(k)||O&&O.contains(k))return;u.value=null}}function x(){i.value&&f(),u.value&&w(u.value)}e.onMounted(()=>{document.addEventListener("click",A),window.addEventListener("resize",x),window.addEventListener("scroll",x,!0)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",A),window.removeEventListener("resize",x),window.removeEventListener("scroll",x,!0)});const{map:T}=xe();function $(S){var P,O,R;if(!S)return;const k=ee(S),E=d(S);if(!k&&!E)return;if(((P=E==null?void 0:E.extent)==null?void 0:P.length)===4&&((O=T.value)!=null&&O.fitBounds)){const U=E.extent.map(Z=>Number(Z));if(U.every(Z=>Number.isFinite(Z))){const[Z,pe,ne,ge]=U;T.value.fitBounds([[Z,pe],[ne,ge]],{padding:40}),u.value=null;return}}(R=k==null?void 0:k.getSource)!=null&&R.call(k)&&(u.value=null)}const I=e.ref(null),C=e.ref(null);function v(S,k){I.value=k,C.value=k,S.dataTransfer&&(S.dataTransfer.effectAllowed="move",S.dataTransfer.setData("text/plain",String(k)))}function F(S){C.value=S}function j(S,k){if(S.preventDefault(),I.value===null||I.value===k){I.value=null,C.value=null;return}const E=[...o.selected],[L]=E.splice(I.value,1);E.splice(k,0,L),r("reorder",E),I.value=null,C.value=null}function M(){I.value=null,C.value=null}return(S,k)=>(e.openBlock(),e.createElementBlock("div",qp,[e.createElementVNode("div",Hp,[e.createElementVNode("button",{class:"selected-tab__add",onClick:k[0]||(k[0]=E=>r("select-layer"))},[...k[3]||(k[3]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-plus"},[e.createElementVNode("path",{d:"M5 12h14"}),e.createElementVNode("path",{d:"M12 5v14"})],-1),e.createElementVNode("span",null,"Вибрати шар",-1)])])]),t.selected.length?(e.openBlock(),e.createElementBlock("div",Yp,[e.createElementVNode("div",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.selected,(E,L)=>{var P;return e.openBlock(),e.createElementBlock("div",{key:E,class:e.normalizeClass(["selected-tab__item",{"selected-tab__item--dragging":I.value===L,"selected-tab__item--over":C.value===L}]),draggable:"true",onDragstart:O=>v(O,L),onDragover:e.withModifiers(O=>F(L),["prevent"]),onDrop:O=>j(O,L),onDragend:M},[e.createElementVNode("div",Wp,[e.createElementVNode("div",Kp,[k[4]||(k[4]=e.createElementVNode("span",{class:"selected-tab__item-handle"},"☰",-1)),e.createElementVNode("input",{type:"checkbox",class:"selected-tab__item-checkbox",checked:y[E]??!0,onChange:O=>g(E,O.target.checked)},null,40,Gp),e.createElementVNode("span",Xp,e.toDisplayString(((P=d(E))==null?void 0:P.name)||"Шар"),1)]),e.createElementVNode("div",Qp,[e.createVNode(co,{"layer-id":E},null,8,["layer-id"]),e.createElementVNode("button",{type:"button",class:"selected-tab__item-menu",ref_for:!0,ref:O=>V(E,O),onClick:e.withModifiers(O=>b(E),["stop"])},[...k[5]||(k[5]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-more-vertical"},[e.createElementVNode("circle",{cx:"12",cy:"12",r:"1"}),e.createElementVNode("circle",{cx:"12",cy:"5",r:"1"}),e.createElementVNode("circle",{cx:"12",cy:"19",r:"1"})],-1)])],8,Jp)])])],42,Zp)}),128))])])):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[u.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"menuEl",ref:s,class:"selected-tab__menu",style:e.normalizeStyle({top:h.top+"px",left:h.left+"px"})},[e.createElementVNode("div",em,[e.createElementVNode("button",{class:"selected-tab__menu-item",onClick:k[1]||(k[1]=E=>$(u.value))},[...k[6]||(k[6]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-zoom-in"},[e.createElementVNode("circle",{cx:"11",cy:"11",r:"8"}),e.createElementVNode("line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65"}),e.createElementVNode("line",{x1:"11",x2:"11",y1:"8",y2:"14"}),e.createElementVNode("line",{x1:"8",x2:"14",y1:"11",y2:"11"})],-1),e.createTextVNode(" Збільшити до шару ",-1)])]),k[8]||(k[8]=e.createElementVNode("button",{disabled:"",class:"selected-tab__menu-item selected-tab__menu-item--disabled"},[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-info"},[e.createElementVNode("circle",{cx:"12",cy:"12",r:"10"}),e.createElementVNode("path",{d:"M12 16v-4"}),e.createElementVNode("path",{d:"M12 8h.01"})]),e.createTextVNode(" Інформація про шар ")],-1)),k[9]||(k[9]=e.createElementVNode("button",{disabled:"",class:"selected-tab__menu-item selected-tab__menu-item--disabled"},[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-table"},[e.createElementVNode("path",{d:"M12 3v18"}),e.createElementVNode("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"}),e.createElementVNode("path",{d:"M3 9h18"}),e.createElementVNode("path",{d:"M3 15h18"})]),e.createTextVNode(" Таблиця шару ")],-1)),k[10]||(k[10]=e.createElementVNode("hr",null,null,-1)),e.createElementVNode("button",{class:"selected-tab__menu-item selected-tab__menu-item--danger",onClick:k[2]||(k[2]=E=>N(u.value))},[...k[7]||(k[7]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-trash2"},[e.createElementVNode("path",{d:"M3 6h18"}),e.createElementVNode("path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"}),e.createElementVNode("path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"}),e.createElementVNode("line",{x1:"10",x2:"10",y1:"11",y2:"17"}),e.createElementVNode("line",{x1:"14",x2:"14",y1:"11",y2:"17"})],-1),e.createTextVNode(" Видалити шар ",-1)])])])],4)):e.createCommentVNode("",!0)]))]))}}),[["__scopeId","data-v-b78ae229"]]),nm={class:"filter-tab"},om={key:0,class:"filter-tab__header"},rm={class:"filter-tab__title"},lm={key:1,class:"filter-tab__content rounded-md"},im={class:"filter-tab__scroll"},am={key:2,class:"filter-tab__empty"},sm=X(e.defineComponent({__name:"LayersFilterTab",props:{layer:{},value:{}},emits:["change"],setup(t,{emit:n}){const o=e.defineAsyncComponent(()=>import("@opengis/filter")),r=t,l=n,i=e.computed(()=>{var p;return((p=r.layer)==null?void 0:p.filters)??[]}),a=e.computed(()=>i.value.length>0);function c(p){l("change",p.data)}return(p,u)=>(e.openBlock(),e.createElementBlock("div",nm,[t.layer&&a.value?(e.openBlock(),e.createElementBlock("div",om,[e.createElementVNode("div",null,[e.createElementVNode("p",rm,e.toDisplayString(t.layer.name),1)])])):e.createCommentVNode("",!0),t.layer&&a.value?(e.openBlock(),e.createElementBlock("div",lm,[e.createElementVNode("div",im,[e.createVNode(e.unref(o),{view:"vertical",schema:i.value,value:t.value,limit:5,class:"rounded-md pb-0",onChange:u[0]||(u[0]=h=>c(h))},null,8,["schema","value"])])])):(e.openBlock(),e.createElementBlock("div",am,[...u[1]||(u[1]=[e.createElementVNode("p",{class:"filter-tab__empty-title"},"Немає доступних фільтрів",-1),e.createElementVNode("p",{class:"filter-tab__empty-text"}," Оберіть шар із фільтрами у каталозі, щоб налаштувати відбір даних. ",-1)])]))]))}}),[["__scopeId","data-v-c6632fbd"]]),cm={class:"map-catalog-widget w-full max-w-md mx-auto p-4 bg-white border border-gray-200 rounded-lg shadow-sm widget"},dm={class:"flex items-center justify-between mb-4"},um={class:"flex items-center gap-2"},pm={class:"text-lg font-semibold text-gray-800"},mm={key:0},fm={key:1,class:"block text-sm font-normal text-gray-500"},gm={class:"flex mb-4 border-b border-gray-200"},hm={class:"map-catalog-widget__body"},mo=X(e.defineComponent({__name:"MapCatalogWidget",setup(t){const n=e.ref("catalog"),o=e.ref({groups:[]}),r=e.ref([]),l=e.ref(""),{map:i}=xe(),a=Be.useRoute(),c=Be.useRouter(),p=e.reactive({}),u=e.ref(null);function h(v){return o.value.groups.map(F=>F.layers.find(j=>j.id===v)).find(Boolean)||null}function s(){const v=u.value;if(!v)return;delete p[v];const F=ee(v);F!=null&&F.setFilter&&F.setFilter("")}function m(v,F){const j=ee(v);if(p[v]={...F},!(j!=null&&j.setFilter))return;const M=Object.entries(F).filter(([,S])=>S!=null&&S!=="").map(([S,k])=>`${S}=${k}`);j.setFilter(M.join("|"))}function y(v){const F=u.value;F&&m(F,v)}function d(v){const F=v.url;let j=null;if(F&&(j=F.startsWith("http")?F:`${window.location.origin}${F}`),!j)return null;const M=(v.service||"").toString().toLowerCase(),S=v.count??null;if(M&&M!=="vtile")return{service:M,count:S,source:{type:"raster",tiles:[j],tileSize:256,minzoom:0,maxzoom:20}};const k=bt(v),E=wt(v);return{service:M,count:S,source:{type:"vector",tiles:[_t(j,{clusterZoom:k,pointZoom:E})],minzoom:0,maxzoom:14},layer:{style:v.style},card:v.card,popup:v.popup}}function f(v,F,j){var E;const M=j??h(v);if(!M)return;const S=d(M);if(!S)return;const k=ee(M.id,S,i);if(k)if(k.setVisible(F),F){if(!r.value.includes(v)&&(r.value.push(v),(E=i.value)!=null&&E.getLayer(v)))try{i.value.moveLayer(v)}catch(L){console.warn("Cannot move new layer",v,L)}}else r.value=r.value.filter(L=>L!==v),u.value===v&&(s(),u.value=null)}function g(){r.value.forEach(v=>{const F=ee(v);F&&F.setVisible(!1)}),r.value=[]}function V(v){r.value=[...v],e.nextTick(()=>{var S;if(!i.value)return;const F=((S=i.value.getStyle())==null?void 0:S.layers)??[];let j;const M=k=>F.filter(E=>{var L,P;return(E==null?void 0:E.source)===k||(E==null?void 0:E.id)===k||((P=(L=E==null?void 0:E.id)==null?void 0:L.startsWith)==null?void 0:P.call(L,`${k}`))}).map(E=>E.id);for(let k=v.length-1;k>=0;k-=1){const E=v[k],L=M(E);L.length&&(L.forEach(P=>{var O;if((O=i.value)!=null&&O.getLayer(P))try{i.value.moveLayer(P,j)}catch(R){console.warn("Cannot move layer",P,R)}}),j=L[0])}})}function b(v){!v||!Array.isArray(v.filters)||v.filters.length===0||r.value.includes(v.id)&&(u.value=v.id,p[v.id]||(p[v.id]={}),n.value="filter")}function w(){n.value="catalog"}const N=e.computed(()=>u.value?h(u.value):null),A=e.computed(()=>{const v=u.value;return v?p[v]??{}:{}}),x=e.computed(()=>o.value.groups.reduce((v,F)=>v+F.layers.length,0)),T=e.computed(()=>n.value==="selected"?"Вибрані шари":n.value==="filter"?"Фільтр шарів":"Каталог"),$=e.computed(()=>n.value==="selected"?r.value.length:n.value==="catalog"?x.value:null),I=e.computed(()=>{var v;return n.value==="filter"?((v=N.value)==null?void 0:v.name)??"":""});async function C(){const F=await(await fetch("/api/gis-layer-list")).json(),j=new Map;F.forEach(k=>{const E=k.group_id??"other";j.has(E)||j.set(E,{id:E,name:k.group_name||"Інші шари",layers:[]}),j.get(E).layers.push(k)}),o.value={groups:Array.from(j.values())};const M=a.query.layers;if(!M)return;const S=Array.isArray(M)?M[0]:M;typeof S=="string"&&S.split(",").forEach(k=>{const E=k.trim();if(!E)return;const L=h(E);L&&f(E,!0,L)})}return e.watch(u,v=>{!v&&n.value==="filter"&&(n.value="catalog")}),e.watch(N,v=>{!v&&u.value&&(u.value=null)}),e.watch(r,v=>{const F={...a.query};v.length?F.layers=v.join(","):delete F.layers,c.replace({query:F}).catch(()=>{})},{deep:!0}),e.onMounted(C),(v,F)=>(e.openBlock(),e.createElementBlock("div",cm,[e.createElementVNode("div",dm,[e.createElementVNode("div",um,[F[5]||(F[5]=e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-layers text-blue-600"},[e.createElementVNode("path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"}),e.createElementVNode("path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"}),e.createElementVNode("path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"})],-1)),e.createElementVNode("h2",pm,[e.createTextVNode(e.toDisplayString(T.value)+" ",1),$.value!==null?(e.openBlock(),e.createElementBlock("span",mm,"("+e.toDisplayString($.value)+")",1)):e.createCommentVNode("",!0),I.value?(e.openBlock(),e.createElementBlock("span",fm,e.toDisplayString(I.value),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("button",{onClick:g,class:"p-1 rounded-full hover:bg-gray-200 transition-colors","aria-label":"Reset layers"},[...F[6]||(F[6]=[e.createStaticVNode('<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-refresh-cw text-gray-600" data-v-d0e7b5b3><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8" data-v-d0e7b5b3></path><path d="M21 3v5h-5" data-v-d0e7b5b3></path><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16" data-v-d0e7b5b3></path><path d="M8 16H3v5" data-v-d0e7b5b3></path></svg>',1)])])]),e.createElementVNode("div",gm,[e.createElementVNode("button",{onClick:F[0]||(F[0]=j=>n.value="catalog"),class:e.normalizeClass(["px-4 py-2 text-sm font-medium",n.value==="catalog"?"text-blue-600 border-b-2 border-blue-600":"text-gray-600 hover:text-gray-800"])}," Каталог ",2),e.createElementVNode("button",{onClick:F[1]||(F[1]=j=>n.value="selected"),class:e.normalizeClass(["px-4 py-2 text-sm font-medium",n.value==="selected"?"text-blue-600 border-b-2 border-blue-600":"text-gray-600 hover:text-gray-800"])}," Вибрані шари ",2)]),e.createElementVNode("div",hm,[n.value==="catalog"?(e.openBlock(),e.createBlock(Up,{key:0,class:"map-catalog-widget__scroll",catalog:o.value,selected:r.value,search:l.value,"onUpdate:search":F[2]||(F[2]=j=>l.value=j),onToggleLayer:f,onOpenFilter:b},null,8,["catalog","selected","search"])):n.value==="selected"?(e.openBlock(),e.createBlock(tm,{key:1,catalog:o.value,selected:r.value,onToggleLayer:f,onSelectLayer:F[3]||(F[3]=j=>n.value="catalog"),onReorder:V,onRemove:F[4]||(F[4]=j=>r.value=r.value.filter(M=>M!==j))},null,8,["catalog","selected"])):(e.openBlock(),e.createBlock(sm,{key:2,layer:N.value,value:A.value,onChange:y,onClose:w},null,8,["layer","value"]))])]))}}),[["__scopeId","data-v-d0e7b5b3"]]),ym={key:1,class:"flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative widget"},xm={class:"flex items-start justify-between gap-3 p-5 pb-3"},km={class:"inline-block text-xl font-semibold text-gray-800"},bm={key:0,class:"mt-1 text-sm text-gray-500"},wm={class:"flex items-center gap-[6px]"},_m={class:"px-5 pb-5 space-y-6"},Em={key:0,class:"space-y-2"},Bm={class:"flex flex-wrap gap-4"},Nm=["value"],vm={key:1,class:"text-sm text-gray-500"},Cm={key:2,class:"text-sm text-gray-500"},Vm={class:"text-4xl font-medium text-gray-800"},$m={class:"space-y-[14px]"},Am={class:"flex items-center gap-[10px] text-gray-600"},Sm={class:"font-medium text-gray-700"},Lm={class:"flex items-center justify-end text-end gap-3"},Fm={class:"font-medium text-gray-800"},Tm={class:"min-w-[40px] font-medium text-[#3C3C4399]"},fo=X(e.defineComponent({__name:"MapAttributeWidget",props:{config:{}},setup(t){const n=["#3a7a57","#d970d5","#8e997b","#b4c039","#a855f7","#71823a","#f79d92","#8b5cf6","#a6514e","#6b7280"],o=t,r=e.ref(!0),l=e.ref(!1),i=e.ref([]),a=e.ref(null),c=e.ref(null),p=e.ref(null),u=e.ref(null),h=e.ref(null),s=e.ref({}),m=e.ref(null);function y(k){return k&&JSON.parse(JSON.stringify(k))}const d=e.computed(()=>{const k=o.config.layer;if(typeof k!="string")throw new Error("MapAttributeWidget: `layer` must be a string");const E=k.trim();if(!E)throw new Error("MapAttributeWidget: `layer` must be non-empty");return E}),f=e.computed(()=>{const{list:k,attribute:E}=o.config;if(Array.isArray(k)&&k.length)return k.map(L=>({id:(L==null?void 0:L.id)!=null?String(L.id).trim():"",text:(L==null?void 0:L.text)!=null&&String(L.text).trim()||null})).filter(L=>L.id.length);if(Array.isArray(E))return E.map(L=>L!=null?String(L).trim():"").filter(L=>L.length).map(L=>({id:L,text:null}));if(typeof E=="string"){const L=E.trim();if(!L)throw new Error("MapAttributeWidget: `attribute` must be non-empty");return[{id:L,text:null}]}throw new Error("MapAttributeWidget: `attribute` or `list` must be provided")}),g=e.computed(()=>f.value.map(k=>({id:k.id,label:k.text||s.value[k.id]||k.id})));e.watch(f,k=>{if(!k.length){m.value=null,i.value=[];return}(!m.value||!k.some(E=>E.id===m.value))&&(m.value=k[0].id)},{immediate:!0});const V=e.computed(()=>{var k;return m.value||((k=f.value[0])==null?void 0:k.id)||null});e.watch(d,()=>{var k,E;(E=(k=c.value)==null?void 0:k.remove)==null||E.call(k),c.value=null,p.value=null,u.value=null,h.value=null,s.value={}});const b=e.computed(()=>{var k;return(k=u.value)!=null&&k.length?{id:d.value,name:p.value,filters:u.value}:null}),w=e.computed(()=>{var k,E;return((E=(k=b.value)==null?void 0:k.filters)==null?void 0:E.length)||0});async function N(k){var P;const E=await fetch(`/api/gis-service/${encodeURIComponent(k)}`);if(!E.ok){let O="Не вдалося завантажити налаштування шару";try{const R=await E.json();O=((P=R==null?void 0:R.message)==null?void 0:P.error)||(R==null?void 0:R.message)||O}catch{}throw new Error(O)}const L=await E.json();return p.value=(L==null?void 0:L.name)||null,u.value=Array.isArray(L==null?void 0:L.filters)?L.filters:null,h.value=y((L==null?void 0:L.style)||{}),s.value=((L==null?void 0:L.attributes)||[]).reduce((O,R)=>{const U=typeof(R==null?void 0:R.name)=="string"?R.name.trim():"",Z=typeof(R==null?void 0:R.ua)=="string"?R.ua.trim():"";return U&&(O[U]=Z||U),O},{}),L}function A(k,E){let L=ee(k);if(!L){const P=bt(E),O=wt(E),R=_t(`${location.origin}/api/vtile/${k}/ua/{z}/{x}/{y}.vmt`,{clusterZoom:P,pointZoom:O});L=ee(k,{source:{type:"vector",tiles:[R],minzoom:0,maxzoom:14},layer:{id:k,source:k,"source-layer":k,style:(E==null?void 0:E.style)||{}},card:E==null?void 0:E.card,popup:E==null?void 0:E.popup})}return c.value=L,L}async function x(k,E){var O;const L=`/api/gis-service/${encodeURIComponent(k)}/${encodeURIComponent(E)}`,P=await fetch(L);if(!P.ok){let R="Не вдалося отримати статистику";try{const U=await P.json();R=((O=U==null?void 0:U.message)==null?void 0:O.error)||(U==null?void 0:U.message)||R}catch{}throw new Error(R)}return P.json()}function T(k){const E=new Map;return k&&(k.rules||[]).forEach(P=>{const O=(P==null?void 0:P.value)??(P==null?void 0:P.id);O!=null&&E.set(String(O),P)}),E}function $(k,E,L,P,O){if(typeof(E==null?void 0:E.color)=="string"&&E.color.trim())return E.color.trim();const R=o.config.colors||{};if(R[k])return R[k];const Z=T(L==null?void 0:L.style).get(k);return typeof(Z==null?void 0:Z.color)=="string"&&Z.color.trim()?Z.color.trim():n[O%n.length]}function I(k,E,L,P){var O;return(E==null?void 0:E.text)||(E==null?void 0:E.label)||(E==null?void 0:E.name)||(E==null?void 0:E[`${P}_text`])||((O=T(L==null?void 0:L.style).get(k))==null?void 0:O.label)||k}function C(k,E,L,P){if(!k)return;const O=y((E==null?void 0:E.style)||h.value)||{},R=P.trim();if(!R)return;const U={...O.colors||{},...o.config.colors||{}};R===P&&L.forEach(Z=>{Z.color.trim()&&(U[Z.id]=Z.color)}),k.setStyle({...O,type:O.type||"polygon",colorAttr:R,opacity:.8,colors:U})}async function v(){var R,U;i.value=[],a.value=null;const k=d.value,E=V.value;if(!E)return;l.value=!0;const L=await N(k);A(k,L);const P=await x(k,E),O=Array.isArray(P==null?void 0:P.rows)?P.rows.map((Z,pe)=>{const ne=(Z==null?void 0:Z.id)??(Z==null?void 0:Z.value),ge=ne!=null?String(ne):"";if(!ge)return null;const Fe=I(ge,Z,L,E),ve=Number((Z==null?void 0:Z.count)??0)||0,Ve=$(ge,Z,L,E,pe);return{id:ge,label:Fe,count:ve,color:Ve}}).filter(Boolean):[];i.value=O,a.value=((R=P==null?void 0:P.field)==null?void 0:R.label)||((U=P==null?void 0:P.field)==null?void 0:U.name)||null,C(c.value,L,O,E),l.value=!1}e.watch(()=>[d.value,V.value],()=>{v()},{immediate:!0});const F=e.computed(()=>"Набори даних"),j=e.computed(()=>i.value.reduce((k,E)=>k+E.count,0)),M=e.computed(()=>{var L;const k=V.value;return((L=g.value.find(P=>P.id===k))==null?void 0:L.label)||null||a.value||k||null});function S(k){return j.value?`${(k/j.value*100).toFixed(2)}%`:"0.00%"}return e.onBeforeUnmount(()=>{var k,E;(E=(k=c.value)==null?void 0:k.remove)==null||E.call(k)}),(k,E)=>r.value?(e.openBlock(),e.createElementBlock("div",ym,[e.createElementVNode("div",xm,[e.createElementVNode("div",null,[e.createElementVNode("h2",km,e.toDisplayString(F.value),1),M.value&&g.value.length===1?(e.openBlock(),e.createElementBlock("p",bm,e.toDisplayString(M.value),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",wm,[b.value?(e.openBlock(),e.createBlock(Et,{key:0,class:"flex justify-center items-center h-[36px] w-[36px] text-sm border border-gray-200 text-gray-600 hover:bg-gray-100 rounded-full",count:w.value,layer:b.value},null,8,["count","layer"])):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"flex justify-center items-center h-[36px] w-[36px] text-sm border border-gray-200 text-gray-600 hover:bg-gray-100 rounded-full",onClick:E[1]||(E[1]=L=>r.value=!1)},[...E[3]||(E[3]=[e.createElementVNode("svg",{class:"w-4 h-4",xmlns:"http://www.w3.org/2000/svg",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",viewBox:"0 0 24 24"},[e.createElementVNode("path",{d:"M18 6 6 18"}),e.createElementVNode("path",{d:"m6 6 12 12"})],-1)])])])]),e.createElementVNode("div",_m,[g.value.length>1?(e.openBlock(),e.createElementBlock("div",Em,[e.createElementVNode("div",Bm,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,L=>(e.openBlock(),e.createElementBlock("label",{key:L.id,class:"inline-flex items-center gap-2 text-sm text-gray-700"},[e.withDirectives(e.createElementVNode("input",{type:"radio",class:"text-sky-600 focus:ring-sky-500",value:L.id,"onUpdate:modelValue":E[2]||(E[2]=P=>m.value=P)},null,8,Nm),[[e.vModelRadio,m.value]]),e.createElementVNode("span",null,e.toDisplayString(L.label),1)]))),128))])])):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createElementBlock("div",vm,"Завантаження…")):i.value.length?(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createElementVNode("h4",Vm,e.toDisplayString(j.value),1),e.createElementVNode("ul",$m,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,L=>(e.openBlock(),e.createElementBlock("li",{key:L.id,class:"flex flex-wrap items-center justify-between gap-x-2"},[e.createElementVNode("div",Am,[e.createElementVNode("span",{class:"block w-[16px] h-[16px] rounded",style:e.normalizeStyle({backgroundColor:L.color})},null,4),e.createElementVNode("span",Sm,e.toDisplayString(L.label),1)]),e.createElementVNode("div",Lm,[e.createElementVNode("span",Fm,e.toDisplayString(L.count),1),e.createElementVNode("span",Tm,e.toDisplayString(S(L.count)),1)])]))),128))])],64)):(e.openBlock(),e.createElementBlock("div",Cm,"Дані відсутні"))])])):(e.openBlock(),e.createElementBlock("button",{key:0,class:"py-2 px-2.5 max-h-[38px] inline-flex items-center gap-x-1.5 text-sm font-medium rounded-lg border border-gray-200 bg-white text-gray-800 shadow-sm hover:bg-gray-50",onClick:E[0]||(E[0]=L=>r.value=!0)}," Набори даних "))}}),[["__scopeId","data-v-b2be2dff"]]),Mm={class:"map-search-widget flex flex-col gap-2 bg-white border border-stone-200 shadow-2xs rounded-xl widget p-3 min-w-[200px]"},Im={key:0,class:"vs-select__options absolute z-50 mt-1 w-full bg-white border border-gray-300 shadow-lg rounded-lg text-sm"},Dm=["onClick"],jm={class:"relative flex-1 min-w-[140px]"},Om=["placeholder"],zm="https://data.softpro.ua/api-user/gis-url-proxy",Pm="https://geo.rv.ua/api-user/dzk.api",go=X(e.defineComponent({__name:"MapSearchWidget",props:{config:{}},setup(t){const n=t,o=xe(),r=["xy","parcel"],l=e.computed(()=>{var N,A;const w=(A=(N=n.config)==null?void 0:N.tools)==null?void 0:A.filter(x=>r.includes(x));return w&&w.length?w:r}),i=e.computed(()=>{var w,N;return((N=(w=n.config)==null?void 0:w.placeholder)==null?void 0:N.trim())||"Пошук…"}),a=e.ref(l.value[0]);e.watch(l,w=>{w.includes(a.value)||(a.value=w[0])});const c=e.ref(""),p=e.ref(!1),u=e.ref(null);e.watch(a,()=>{c.value="",p.value=!1});function h(w){a.value=w}function s(w){if(!p.value)return;const N=u.value;N&&!N.contains(w.target)&&(p.value=!1)}e.onMounted(()=>{window.addEventListener("click",s,!0)}),e.onBeforeUnmount(()=>{window.removeEventListener("click",s,!0)});function m(w){return w==="xy"?"Координати":w==="parcel"?"Кадастр":"Адреси"}function y(w){const N=w.replace(/[,]+/g," ").trim();if(!N)return null;const A=N.split(/\s+/).filter(Boolean);if(A.length<2)return null;const x=A.slice(0,2).map(Number);if(!x.every(j=>Number.isFinite(j)))return null;let[T,$]=x,I=T,C=$;const v=j=>Math.abs(j)<=90,F=j=>Math.abs(j)<=180;if(!v(I)||!F(C))if(v(C)&&F(I))I=$,C=T;else return null;return{lat:I,lng:C}}function d(w){return((w==null?void 0:w.items)||[]).map((A,x)=>{var T,$,I;return{id:String((A==null?void 0:A.id)??x),title:(A==null?void 0:A.title)||((T=A==null?void 0:A.address)==null?void 0:T.label)||"Знайдений обʼєкт",lat:Number(($=A==null?void 0:A.position)==null?void 0:$.lat),lng:Number((I=A==null?void 0:A.position)==null?void 0:I.lng)}})}function f(w){const N=(w==null?void 0:w.result)||(w==null?void 0:w.data)||w;if(!N)return[];const A=N.geom_centroid;if(!A||!Array.isArray(A.coordinates))return[];const[x,T]=A.coordinates;return!Number.isFinite(T)||!Number.isFinite(x)?[]:[{id:"parcel",title:N.cadnum||N.cad_num||"Земельна ділянка",lat:T,lng:x}]}function g(w){const A=w.replace(/\s+/g,"").split(":");if(console.log(A),A.length!==4)return!1;const x=[10,2,3,4];return A.every((T,$)=>T.length===x[$]&&/^\d+$/.test(T))}function V(w){var A,x;const N=((A=n.config)==null?void 0:A.zoom)??17;(x=o.flyTo)==null||x.call(o,{center:[w.lng,w.lat],zoom:N})}async function b(){const w=c.value.trim();if(w){if(a.value==="xy"){const N=y(w);if(!N){ce.notify({type:"warning",title:"Пошук координат",message:"Не знайдено або невірний формат координат"});return}V({id:"xy",title:"Точка на мапі",...N}),c.value="";return}try{const N=new URL(a.value==="here"?zm:Pm);if(a.value==="here")N.searchParams.set("searchtext",w);else{if(!g(w)){ce.notify({type:"warning",title:"Пошук кадастру",message:"Кадастровий номер має формат ХХХХХХХХХХ:ХХ:ХХХ:ХХХХ"});return}N.searchParams.set("cad_num",w)}const A=await fetch(N.toString());if(!A.ok)throw new Error(`HTTP ${A.status}`);const x=await A.json(),T=a.value==="here"?d(x):f(x);if(!T.length)ce.notify({type:"warning",title:"Пошук",message:"Не знайдено результатів"});else{const $=T[0];V($),c.value=""}}catch(N){const A=(N==null?void 0:N.message)||"Помилка пошуку";ce.notify({type:"error",title:"Пошук",message:A})}}}return(w,N)=>(e.openBlock(),e.createElementBlock("div",Mm,[e.createElementVNode("form",{class:"flex gap-2",onSubmit:e.withModifiers(b,["prevent"])},[l.value.length>1?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:u,class:"relative search-type w-[140px]"},[e.createElementVNode("button",{type:"button",class:"vstSelect-input transition-all text-left bg-white border border-gray-200 text-gray-900 rounded-lg focus:ring-blue-500 focus:border-blue-100 block w-full py-1.5 px-3 text-sm cursor-pointer flex items-center justify-between gap-2",onClick:N[0]||(N[0]=A=>p.value=!p.value)},[e.createElementVNode("span",null,e.toDisplayString(m(a.value)),1),(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(["w-4 h-4 text-gray-500 transition-transform",{"rotate-180":p.value}]),viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[...N[2]||(N[2]=[e.createElementVNode("path",{d:"M6 9l6 6 6-6",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])],2))]),p.value?(e.openBlock(),e.createElementBlock("div",Im,[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,A=>(e.openBlock(),e.createElementBlock("li",{key:A,class:"px-3 py-2 cursor-pointer hover:bg-gray-100",onClick:x=>h(A)},e.toDisplayString(m(A)),9,Dm))),128))])])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),e.createElementVNode("div",jm,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":N[1]||(N[1]=A=>c.value=A),placeholder:i.value,type:"text",class:"vs-input transition-all border block w-full border-gray-200 rounded-md focus:border-blue-100 border-solid !pr-8 py-1.5 pl-3 text-sm"},null,8,Om),[[e.vModelText,c.value,void 0,{trim:!0}]]),N[3]||(N[3]=e.createElementVNode("button",{type:"submit",class:"absolute inset-y-0 right-2 flex items-center text-gray-400 hover:text-gray-600","aria-label":"Пошук"},[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m21 21-4.35-4.35m0 0A7.5 7.5 0 1 0 5 5a7.5 7.5 0 0 0 11.65 11.65Z"})])],-1))])],32)]))}}),[["__scopeId","data-v-85962cbc"]]),Rm="https://watergis.github.io/mapbox-gl-export/mapbox-gl-export.css",Um="https://watergis.github.io/mapbox-gl-export/mapbox-gl-export.js",qm=X(e.defineComponent({__name:"MapPrintControl",setup(t){const{map:n,ready:o,addControl:r,removeControl:l}=xe(),i=e.ref(null),a=e.ref(null),c=e.ref(null),p=e.ref(null);let u=null;function h(){!window.mapboxgl&&window.maplibregl&&(window.mapboxgl=window.maplibregl)}function s(x){if(Array.from(document.styleSheets).some(I=>{var C;return(C=I==null?void 0:I.href)==null?void 0:C.includes(x)}))return;const $=document.createElement("link");$.rel="stylesheet",$.href=x,document.head.appendChild($)}function m(x){return new Promise((T,$)=>{const I=Array.from(document.scripts).find(v=>v.src===x);if(I){if(I._loaded)return T();I.addEventListener("load",()=>T()),I.addEventListener("error",()=>$(new Error(`Failed ${x}`)));return}const C=document.createElement("script");C.src=x,C.async=!0,C.onload=()=>{C._loaded=!0,T()},C.onerror=()=>$(new Error(`Failed ${x}`)),document.head.appendChild(C)})}function y(){var T,$,I;const x=window;return x.MapboxExportControl||((T=x.mapboxgl)==null?void 0:T.MapboxExportControl)||(($=x.mapboxglExport)==null?void 0:$.MapboxExportControl)||((I=x.mapboxglExport)==null?void 0:I.default)||null}function d(){const x=document.createElementNS("http://www.w3.org/2000/svg","svg");return x.setAttribute("xmlns","http://www.w3.org/2000/svg"),x.setAttribute("viewBox","0 0 24 24"),x.setAttribute("width","18"),x.setAttribute("height","18"),x.setAttribute("fill","none"),x.setAttribute("stroke","currentColor"),x.setAttribute("stroke-width","2"),x.setAttribute("stroke-linecap","round"),x.setAttribute("stroke-linejoin","round"),x.classList.add("map-control-button__icon"),[{d:"M0 0h24v24H0z",stroke:"none",fill:"none"},{d:"M17 17h2a2 2 0 0 0 2 -2v-4a2 2 0 0 0 -2 -2h-14a2 2 0 0 0 -2 2v4a2 2 0 0 0 2 2h2"},{d:"M17 9v-4a2 2 0 0 0 -2 -2h-6a2 2 0 0 0 -2 2v4"},{d:"M7 13m0 2a2 2 0 0 1 2 -2h6a2 2 0 0 1 2 2v4a2 2 0 0 1 -2 2h-6a2 2 0 0 1 -2 -2z"}].forEach(($,I)=>{const C=document.createElementNS("http://www.w3.org/2000/svg","path");Object.entries($).forEach(([v,F])=>{C.setAttribute(v,F)}),x.appendChild(C)}),x}function f(){const x=document.createElement("button");x.id="print-btn",x.type="button",x.className=["group relative flex items-center justify-center","w-9 h-9 rounded-xl shadow-lg transition-transform transition-shadow duration-200","bg-white text-gray-700 hover:bg-gray-50 hover:scale-105","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-400/60 focus-visible:ring-offset-2"].join(" "),x.setAttribute("aria-label","Друк");const T=d(),$=document.createElement("span");return $.className=["absolute left-full ml-3 px-3 py-1.5","bg-gray-900 text-white text-sm font-medium rounded-md","opacity-0 group-hover:opacity-100 group-focus-visible:opacity-100","pointer-events-none transition-opacity duration-200 whitespace-nowrap"].join(" "),$.textContent="Друк",$.setAttribute("aria-hidden","true"),x.appendChild(T),x.appendChild($),x.addEventListener("click",I=>{I.stopPropagation(),g()}),p.value=x,x}function g(){if(!c.value)return;c.value.style.display==="block"?b():V()}function V(){var x,T,$;c.value&&(c.value.style.display="block",(x=p.value)==null||x.classList.add("scale-105","shadow-xl"),(T=a.value)==null||T.toggleCrosshair(!0),($=a.value)==null||$.togglePrintableArea(!0),document.addEventListener("click",w))}function b(){var x,T,$;c.value&&(c.value.style.display="none",(x=p.value)==null||x.classList.remove("scale-105","shadow-xl"),(T=a.value)==null||T.toggleCrosshair(!1),($=a.value)==null||$.togglePrintableArea(!1),document.removeEventListener("click",w))}function w(x){const T=i.value;T&&(x.target&&T.contains(x.target)||b())}function N(x){const T={Size:"Розмір",Orientation:"Орієнтація",Format:"Формат",DPI:"DPI",Landscape:"Горизонтальна",Portrait:"Вертикальна",PNG:"PNG",JPEG:"JPEG",SVG:"SVG",PDF:"PDF","Page Size":"Розмір","Page Orientation":"Орієнтація"};x.querySelectorAll("label, option").forEach(I=>{var v;const C=(v=I.textContent)==null?void 0:v.trim();C&&T[C]&&(I.textContent=T[C])});const $=x.querySelector("button");$&&($.textContent="Друкувати")}function A(x){const T=x.querySelector(".mapboxgl-export-list");if(!T||!i.value)return;c.value=T;const $=x.querySelector("button");if($&&($.style.display="none"),x.style.display="none",!p.value){const C=f();i.value.appendChild(C)}T.style.display="none";const I="_printControlBound";if(!T[I]){const C=v=>v.stopPropagation();T.addEventListener("click",C),T.addEventListener("mousedown",C),T[I]=!0}i.value.appendChild(T),N(T)}return e.onMounted(async()=>{await(o==null?void 0:o());const x=n.value;if(!x)return;s(Rm),h();try{await m(Um)}catch(I){console.warn("[MapPrintControl] load error",I);return}const T=y();if(!T)return;const $=new T({PageSize:"A4",PageOrientation:"landscape",Format:"pdf",DPI:300,Crosshair:!0,PrintableArea:!0});if(a.value=$,typeof $.onAdd=="function"){const I=$.onAdd.bind($);$.onAdd=C=>{const v=I(C);return setTimeout(()=>v&&A(v),50),v}}r?r($,"top-right"):x.addControl($,"top-right"),u=I=>{I.key==="Escape"&&b()},document.addEventListener("keyup",u)}),e.onBeforeUnmount(()=>{b(),u&&(document.removeEventListener("keyup",u),u=null);const x=n.value;if(a.value)try{l?l(a.value):x==null||x.removeControl(a.value)}catch{}a.value=null}),(x,T)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"root",ref:i,class:"map-print-control"},null,512))}}),[["__scopeId","data-v-89156246"]]),Hm={class:"map-center-control"},Ym=X(e.defineComponent({__name:"MapCenterControl",props:{center:{},zoom:{}},setup(t){const n=t,{map:o,ready:r}=xe(),l=e.ref(null),i=e.ref(null);function a(p){if(Array.isArray(p)&&p.length>=2){const[u,h]=p.slice(0,2).map(s=>Number(s));return Number.isNaN(u)||Number.isNaN(h)?null:[u,h]}if(p&&typeof p=="object"){const u=p,h=u.lng??u.lon??u.long??u.x,s=u.lat??u.y;if(h!=null&&s!=null){const m=Number(h),y=Number(s);if(!Number.isNaN(m)&&!Number.isNaN(y))return[m,y]}}if(typeof p=="string"){const u=p.split(",").map(h=>Number(h.trim()));if(u.length>=2&&u.every(h=>!Number.isNaN(h)))return[u[0],u[1]]}return null}e.watch(()=>n.center,p=>{const u=a(p);u&&(l.value=u)},{immediate:!0}),e.watch(()=>n.zoom,p=>{const u=Number(p);Number.isNaN(u)||(i.value=u)},{immediate:!0}),e.onMounted(async()=>{await(r==null?void 0:r());const p=o.value;if(p){if(!l.value){const u=p.getCenter();l.value=[u.lng,u.lat]}i.value==null&&(i.value=p.getZoom())}});function c(){const p=o.value;if(!p)return;const u=l.value||(()=>{const s=p.getCenter();return[s.lng,s.lat]})(),h=i.value??p.getZoom();p.flyTo({center:u,zoom:h})}return(p,u)=>(e.openBlock(),e.createElementBlock("div",Hm,[e.createElementVNode("button",{id:"center-btn",type:"button",class:"group relative flex items-center justify-center w-9 h-9 rounded-xl shadow-lg transition-transform transition-shadow duration-200 bg-white text-gray-700 hover:bg-gray-50 hover:scale-105 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-400/60 focus-visible:ring-offset-2","aria-label":"Повернути центр",onClick:e.withModifiers(c,["stop"])},[e.createVNode(e.unref(No),{class:"w-4 h-4"}),u[0]||(u[0]=e.createElementVNode("span",{class:"absolute left-full ml-3 px-3 py-1.5 bg-gray-900 text-white text-sm font-medium rounded-md opacity-0 group-hover:opacity-100 group-focus-visible:opacity-100 pointer-events-none transition-opacity duration-200 whitespace-nowrap","aria-hidden":"true"}," Центрувати ",-1))])]))}}),[["__scopeId","data-v-d21bee3d"]]),Zm={class:"cursor-coordinates"},Wm={class:"cursor-coordinates__text"},Km=X(e.defineComponent({__name:"MapCursorCoordinates",props:{coordinates:{}},setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("div",Zm,[e.createElementVNode("span",Wm,e.toDisplayString(t.coordinates),1)]))}}),[["__scopeId","data-v-334315d9"]]),Gm={class:"minimap__wrapper"},Bt="minimap-viewport",Xm="minimap-viewport-layer",Qm=X(e.defineComponent({__name:"MapMiniMap",props:{mapContext:{},width:{},height:{},options:{}},setup(t){var V;const n=t,o=e.ref(null),r=e.shallowRef(null),l=(V=n.options)==null?void 0:V.active,i=e.ref(l===void 0?!1:!!l);function a(b,w){return typeof b=="number"&&Number.isFinite(b)?b:w}const c=e.computed(()=>{var x,T;const b=(x=n.options)==null?void 0:x.width,w=(T=n.options)==null?void 0:T.height,N=a(n.width??b,210),A=a(n.height??w,150);return{width:`${N}px`,height:`${A}px`}});function p(){var w,N;const b=(N=(w=n.mapContext)==null?void 0:w.map)==null?void 0:N.value;if(!b||typeof b.getStyle!="function")return null;try{const A=b.getStyle();return A?JSON.parse(JSON.stringify(A)):null}catch{return null}}let u=null;function h(){var x;if(typeof window>"u"||r.value||!o.value)return;const b=p(),w=[30,50],N={container:o.value,style:b??{version:8,sources:{voyager:{type:"raster",tiles:["https://tile.openstreetmap.org/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"voyager",type:"raster",source:"voyager"}]},center:w,zoom:((x=n.options)==null?void 0:x.zoom)??3,interactive:!1,attributionControl:!1},A={...N,...n.options??{}};A.container=N.container,r.value=new maplibregl.Map(A),r.value.on("load",()=>{m(),d()})}function s(){if(!r.value)return;const b=p();b&&(r.value.once("styledata",()=>{m(),d()}),r.value.setStyle(b))}function m(){if(r.value){if(typeof r.value.isStyleLoaded=="function"&&!r.value.isStyleLoaded()){r.value.once("styledata",()=>{m(),d()});return}r.value.getSource(Bt)||(r.value.addSource(Bt,{type:"geojson",data:{type:"Feature",geometry:{type:"Polygon",coordinates:[[[0,0],[0,0],[0,0],[0,0],[0,0]]]},properties:{}}}),r.value.addLayer({id:Xm,type:"fill",source:Bt,paint:{"fill-color":"#3b82f6","fill-opacity":.2,"fill-outline-color":"#1d4ed8"}}))}}function y(){i.value=!i.value,i.value&&e.nextTick(()=>{var b;return(b=r.value)==null?void 0:b.resize()})}function d(){var $,I;const b=(I=($=n.mapContext)==null?void 0:$.map)==null?void 0:I.value;if(!r.value||!b||!b.getBounds)return;if(typeof r.value.isStyleLoaded=="function"&&!r.value.isStyleLoaded()){r.value.once("styledata",()=>{d()});return}const w=b.getBounds();if(!w)return;const N=w.getNorthEast(),A=w.getSouthWest();if(!N||!A)return;const x=[[A.lng,N.lat],[N.lng,N.lat],[N.lng,A.lat],[A.lng,A.lat],[A.lng,N.lat]],T=r.value.getSource(Bt);if(!T){m();return}T.setData({type:"Feature",geometry:{type:"Polygon",coordinates:[x]},properties:{}})}function f(){var N;const b=n.mapContext,w=(N=b==null?void 0:b.map)==null?void 0:N.value;!(b!=null&&b.on)||!w||(u==null||u(),u=b.on("move",d),d())}async function g(){const b=n.mapContext;if(b){if(typeof b.ready=="function")try{await b.ready()}catch{return}f()}}return e.onMounted(()=>{h(),g()}),e.watch(()=>n.mapContext,()=>{g(),d()}),e.watch(()=>{var b,w;return(w=(b=n.mapContext)==null?void 0:b.map)==null?void 0:w.value},()=>{r.value&&(s(),g())}),e.watch(c,()=>{r.value&&e.nextTick(()=>{var b;return(b=r.value)==null?void 0:b.resize()})}),e.watch(()=>n.options,()=>{var w;u==null||u(),u=null,r.value&&(r.value.remove(),r.value=null);const b=(w=n.options)==null?void 0:w.active;typeof b=="boolean"&&(i.value=b),e.nextTick(()=>{h(),g()})},{deep:!0}),e.onBeforeUnmount(()=>{u==null||u(),u=null,r.value&&(r.value.remove(),r.value=null)}),(b,w)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["minimap",{"minimap--open":i.value}])},[e.createElementVNode("button",{type:"button",class:"minimap__button",onClick:y},[e.createVNode(e.unref(Eo))]),e.createVNode(e.Transition,{name:"minimap-slide"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",Gm,[e.createElementVNode("div",{ref_key:"minimapRoot",ref:o,class:"mapboxgl-ctrl-minimap mapboxgl-ctrl mapboxgl-map",style:e.normalizeStyle(c.value),id:"mapboxgl-minimap"},null,4)],512),[[e.vShow,i.value]])]),_:1})],2))}}),[["__scopeId","data-v-3ce09bde"]]),Jm={key:1,class:"absolute bottom-4 right-4 z-[80] flex items-end gap-2"},ef={class:"absolute top-[103px] right-[6.5px] z-[80] flex flex-col items-end gap-1"},tf={class:"map-widget__overlay-grid"},nf={key:0,id:"map-filter-popover-host",class:"map-widget__filter-host"},of={key:1,class:"map-widget__stack-wrapper map-widget__stack-wrapper--top"},rf={class:"map-widget__stack"},lf={key:2,class:"map-widget__stack-wrapper map-widget__stack-wrapper--bottom mb-5"},af={class:"map-widget__stack map-widget__stack--bottom"},sf={key:0,class:"map-widget__state"},cf={key:1,class:"map-widget__state map-widget__state--error"},Wt=X(e.defineComponent({__name:"MapWidget",props:{id:{},height:{},minZoom:{},maxZoom:{}},setup(t){var ke,qe;const n=t,o=Be.useRoute(),r=Be.useRouter(),l=e.ref(null),i=e.ref({}),a=e.ref(null),c=e.ref(!1),p=e.ref(null),u=e.ref(!1),h=e.ref([]),s=e.computed(()=>n.id||"main"),m=e.computed(()=>{var D,q;return{height:((D=n.height)==null?void 0:D.trim())||((q=i.value)==null?void 0:q.height)||"calc(100vh - 65px)"}}),y=e.computed(()=>{var D;return((D=i.value)==null?void 0:D.name)??null}),d=e.computed(()=>{var D;return((D=i.value)==null?void 0:D.description)??null}),f=e.computed(()=>{var D;return I((D=i.value)==null?void 0:D.maps)}),g=e.computed(()=>{var q,G;const D=((q=i.value)==null?void 0:q.minZoom)??((G=i.value)==null?void 0:G.minzoom)??null;return typeof D=="number"?D:null}),V=e.computed(()=>{var q,G;const D=((q=i.value)==null?void 0:q.maxZoom)??((G=i.value)==null?void 0:G.maxzoom)??null;return typeof D=="number"?D:typeof n.maxZoom=="number"?n.maxZoom:20}),b=e.ref(null),w=e.computed(()=>{if(!b.value)return null;const{lng:D,lat:q}=b.value;return`${q.toFixed(6)}, ${D.toFixed(6)}`}),N=e.computed(()=>{var D;return((D=l.value)==null?void 0:D.ctx)??null}),A=e.computed(()=>{var D;return((D=i.value)==null?void 0:D.minimap)??null}),x=((qe=(ke=e.getCurrentInstance())==null?void 0:ke.appContext.config.globalProperties)==null?void 0:qe.$settings)||null,T=e.computed(()=>{const D=(x==null?void 0:x.map)||null,q=(D==null?void 0:D.boundary)??null,G=(D==null?void 0:D.katottg)??null;return!q&&!G?null:{boundary:q,katottg:G}});function $(D){return typeof D=="string"&&D.trim()?D.trim().toLowerCase():"top-left"}function I(D){return Array.isArray(D)?D:D&&typeof D=="object"?Object.values(D).filter(Boolean):[]}const C=e.computed(()=>{var D;return I((D=i.value)==null?void 0:D.widgets)}),v=["left","right"],F=e.computed(()=>{const D={left:{top:[],bottom:[]},right:{top:[],bottom:[]}},q={"top-left":{side:"left",align:"top"},"bottom-left":{side:"left",align:"bottom"},"top-right":{side:"right",align:"top"},"bottom-right":{side:"right",align:"bottom"}};return C.value.forEach(G=>{const J=$(G.position),K=q[J]??{side:"left",align:"top"};D[K.side][K.align].push(G)}),D});function j(D){return Array.isArray(D)?D[0]??null:typeof D=="string"?D:null}async function M(){var q;await e.nextTick();const D=(q=l.value)==null?void 0:q.ctx;return D?(D.ready&&await D.ready(),D):null}function S(){var D,q,G;return((G=(q=(D=l.value)==null?void 0:D.ctx)==null?void 0:q.map)==null?void 0:G.value)??null}function k(){const D=S();if(!D)return null;const q=D.getCenter(),G=D.getZoom();return{x:q.lng.toFixed(5),y:q.lat.toFixed(5),z:G.toFixed(2)}}async function E(){var G;const D=await M(),q=(G=D==null?void 0:D.map)==null?void 0:G.value;q&&(typeof g.value=="number"&&q.setMinZoom(g.value),typeof V.value=="number"&&q.setMaxZoom(V.value))}async function L(){var K;if(a.value)return;const D=await M(),q=(K=D==null?void 0:D.map)==null?void 0:K.value;if(!q)return;const G=q.getCenter(),J=q.getZoom();a.value={center:[G.lng,G.lat],zoom:J}}function P(){const D=k();if(!D)return;const q=j(o.query.x),G=j(o.query.y),J=j(o.query.z);q===D.x&&G===D.y&&J===D.z||r.replace({query:{...o.query,...D}}).catch(()=>{})}function O(D,q,G=1e-6){return Math.abs(D-q)<=G}async function R(){var Ae;const D=await M(),q=(Ae=D==null?void 0:D.map)==null?void 0:Ae.value;if(!D||!q)return;const G=parseFloat(j(o.query.x)??""),J=parseFloat(j(o.query.y)??""),K=parseFloat(j(o.query.z)??""),le=!Number.isNaN(G),_e=!Number.isNaN(J),Y=!Number.isNaN(K);let $e=!1;if(le&&_e){const me=q.getCenter();(!O(me.lng,G)||!O(me.lat,J))&&(q.setCenter([G,J]),$e=!0)}Y&&q.setZoom(K),(!le||!_e||!Y||$e)&&P()}let U=null,Z=null;function pe(D){const q=D==null?void 0:D.lngLat;q&&(b.value={lng:q.lng,lat:q.lat})}async function ne(){const D=await M();D!=null&&D.on&&(U==null||U(),U=D.on("moveend",P),Z==null||Z(),Z=D.on("mousemove",pe))}e.onUnmounted(()=>{U==null||U(),U=null,Z==null||Z(),Z=null});async function ge(){var D,q;u.value=!1,c.value=!0,p.value=null,b.value=null;try{const G=await fetch(`/api/gis-map/${encodeURIComponent(s.value)}`);if(!G.ok)throw new Error(`Помилка завантаження (${G.status})`);const J=await G.json();i.value=J,i.value.widgets=J.widgets,h.value=J.tools||["home","print"];const K=await M();K&&(J.center&&((D=K.setCenter)==null||D.call(K,J.center)),J.zoom&&((q=K.setZoom)==null||q.call(K,J.zoom)),a.value||await L()),await E(),await R(),await ne(),u.value=!0}catch(G){p.value=(G==null?void 0:G.message)||"Не вдалося завантажити карту"}finally{c.value=!1}}const Fe=e.computed(()=>{var J;const D=new Map;return I((J=i.value)==null?void 0:J.layers).forEach(K=>{K!=null&&K.id&&D.set(K.id,{...K})}),C.value.filter(K=>(K==null?void 0:K.type)==="layers").flatMap(K=>{var le;return I((le=K==null?void 0:K.config)==null?void 0:le.layers)}).forEach(K=>{if(!(K!=null&&K.id))return;const le=D.get(K.id)||{};D.set(K.id,{...le,...K,actions:K.actions||le.actions||null,name:le.name||K.name||K.title||le.title||K.id,title:le.title||K.title||le.name||null,visible:le.visible??K.visible??!0})}),Array.from(D.values())}),ve=e.ref([]);function Ve(D){ve.value.includes(D)?ve.value=ve.value.filter(q=>q!==D):ve.value.push(D)}const Me=e.computed(()=>D=>ve.value.includes(D.id));return e.watch([g,V],()=>{E()},{immediate:!0}),e.watch(s,()=>{ge()}),e.onMounted(()=>{ge()}),e.watch(()=>[o.query.x,o.query.y,o.query.z],()=>{R()}),(D,q)=>(e.openBlock(),e.createElementBlock("div",{class:"map-widget",style:e.normalizeStyle(m.value)},[e.createVNode(no,{ref_key:"mapViewRef",ref:l,class:"map-widget__view"},{default:e.withCtx(()=>{var G,J,K,le;return[T.value?(e.openBlock(),e.createBlock(ao,{key:0,"layer-id":"app-boundary",boundary:T.value.boundary,katottg:T.value.katottg},null,8,["boundary","katottg"])):e.createCommentVNode("",!0),N.value?(e.openBlock(),e.createElementBlock("div",Jm,[w.value?(e.openBlock(),e.createBlock(Km,{key:0,coordinates:w.value},null,8,["coordinates"])):e.createCommentVNode("",!0),e.createVNode(Qm,{"map-context":N.value,options:A.value},null,8,["map-context","options"])])):e.createCommentVNode("",!0),e.createElementVNode("div",ef,[h.value.includes("home")?(e.openBlock(),e.createBlock(Ym,{key:0,center:((G=i.value)==null?void 0:G.center)||((J=a.value)==null?void 0:J.center)||null,zoom:((K=i.value)==null?void 0:K.zoom)??((le=a.value)==null?void 0:le.zoom)??null},null,8,["center","zoom"])):e.createCommentVNode("",!0),h.value.includes("print")?(e.openBlock(),e.createBlock(qm,{key:1})):e.createCommentVNode("",!0)]),u.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("div",tf,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(v,_e=>e.createElementVNode("div",{key:_e,class:e.normalizeClass(["map-widget__side",`map-widget__side--${_e}`])},[_e==="left"?(e.openBlock(),e.createElementBlock("div",nf)):e.createCommentVNode("",!0),F.value[_e].top.length?(e.openBlock(),e.createElementBlock("div",of,[e.createElementVNode("div",rf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(F.value[_e].top,Y=>{var $e,Ae,me,He,ze,Ye,Ee,Ze;return e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:Y.id||Y.type,class:"map-overlay__item"},[Y.type==="info"?(e.openBlock(),e.createBlock(so,{key:0,title:(($e=Y.config)==null?void 0:$e.title)||Y.title||null,content:((Ae=Y.config)==null?void 0:Ae.content)||"",links:f.value,"map-name":y.value,"map-description":d.value},null,8,["title","content","links","map-name","map-description"])):Y.type==="catalog"?(e.openBlock(),e.createBlock(mo,{key:1,api:((me=Y.config)==null?void 0:me.api)||null},null,8,["api"])):Y.type==="layers"?(e.openBlock(),e.createBlock(po,{key:2,layers:Fe.value,onAction:q[0]||(q[0]=ut=>Ve(ut.layerId)),config:Y.config},null,8,["layers","config"])):Y.type==="basemaps"?(e.openBlock(),e.createBlock(Ut,{key:3,layers:((He=Y.config)==null?void 0:He.layers)||null,"default-layer":((ze=Y.config)==null?void 0:ze.default)||null,title:Y.title||((Ye=Y.config)==null?void 0:Ye.title)||null},null,8,["layers","default-layer","title"])):Y.type==="legend"?(e.openBlock(),e.createBlock(qt,{key:4,items:((Ee=Y.config)==null?void 0:Ee.items)||[]},null,8,["items"])):Y.type==="filters"&&Me.value(Y)?(e.openBlock(),e.createBlock(Rt,{key:5,"layer-id":(Ze=Y.config)==null?void 0:Ze.layer,onClose:Ve},null,8,["layer-id"])):Y.type==="dataset"||Y.type==="attribute"?(e.openBlock(),e.createBlock(fo,{key:6,config:Y.config},null,8,["config"])):Y.type==="search"?(e.openBlock(),e.createBlock(go,{key:7,config:Y.config},null,8,["config"])):e.createCommentVNode("",!0)])),[[e.vShow,Y.visible!==!1]])}),128))])])):e.createCommentVNode("",!0),F.value[_e].bottom.length?(e.openBlock(),e.createElementBlock("div",lf,[e.createElementVNode("div",af,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(F.value[_e].bottom,Y=>{var $e,Ae,me,He,ze,Ye,Ee,Ze;return e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:Y.id||Y.type,class:"map-overlay__item"},[Y.type==="info"?(e.openBlock(),e.createBlock(so,{key:0,title:(($e=Y.config)==null?void 0:$e.title)||Y.title||null,content:((Ae=Y.config)==null?void 0:Ae.content)||"",links:f.value,"map-name":y.value,"map-description":d.value},null,8,["title","content","links","map-name","map-description"])):Y.type==="catalog"?(e.openBlock(),e.createBlock(mo,{key:1,api:((me=Y.config)==null?void 0:me.api)||null},null,8,["api"])):Y.type==="layers"?(e.openBlock(),e.createBlock(po,{key:2,layers:Fe.value,onAction:q[1]||(q[1]=ut=>Ve(ut.layerId)),config:Y.config},null,8,["layers","config"])):Y.type==="basemaps"?(e.openBlock(),e.createBlock(Ut,{key:3,layers:((He=Y.config)==null?void 0:He.layers)||null,"default-layer":((ze=Y.config)==null?void 0:ze.default)||null,title:Y.title||((Ye=Y.config)==null?void 0:Ye.title)||null},null,8,["layers","default-layer","title"])):Y.type==="legend"?(e.openBlock(),e.createBlock(qt,{key:4,items:((Ee=Y.config)==null?void 0:Ee.items)||[]},null,8,["items"])):Y.type==="filters"&&Me.value(Y)?(e.openBlock(),e.createBlock(Rt,{key:5,"layer-id":(Ze=Y.config)==null?void 0:Ze.layer,onClose:Ve},null,8,["layer-id"])):Y.type==="dataset"||Y.type==="attribute"?(e.openBlock(),e.createBlock(fo,{key:6,config:Y.config},null,8,["config"])):Y.type==="search"?(e.openBlock(),e.createBlock(go,{key:7,config:Y.config},null,8,["config"])):e.createCommentVNode("",!0)])),[[e.vShow,Y.visible!==!1]])}),128))])])):e.createCommentVNode("",!0)],2)),64))]),e.createVNode(ro),e.createVNode(io,{"map-id":s.value},null,8,["map-id"])],64)):e.createCommentVNode("",!0)]}),_:1},512),c.value?(e.openBlock(),e.createElementBlock("div",sf,"Завантаження карти…")):p.value?(e.openBlock(),e.createElementBlock("div",cf,e.toDisplayString(p.value),1)):e.createCommentVNode("",!0)],4))}}),[["__scopeId","data-v-8a5bc566"]]);function df(t){t.component("MapCustom",Wt)}ie.MapWidget=Wt,ie.Register=fa,ie.Service=sp,ie.default=Wt,ie.install=df,ie.template1=rn,ie.template2=ln,ie.template3=an,ie.template4=sn,ie.template5=cn,Object.defineProperties(ie,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));