@opengis/gis 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.js +4018 -2967
  3. package/dist/index.umd.cjs +48 -38
  4. package/module/cls.json +2 -1
  5. package/module/gis/form/gis.maps.form.json +2 -2
  6. package/module/gis/form/gis.registers.form.json +8 -199
  7. package/module/gis/form/gis.services.form.json +11 -200
  8. package/module/gis/table/gis.maps.table.json +5 -7
  9. package/module/gis/table/gis.ogc_service.table.json +14 -3
  10. package/module/gis/table/gis.registers.table.json +2 -3
  11. package/module/gis/table/gis.services.table.json +19 -6
  12. package/module/test/cls/ts.temp_status.json +18 -0
  13. package/module/test/cls/ts.temp_type.json +10 -0
  14. package/module/test/map/bp_myo.json +10 -6
  15. package/module/test/select/address_id.json +3 -0
  16. package/module/test/select/address_id.sql +8 -0
  17. package/module/test/table/data_bp_myo.bp.table.json +123 -0
  18. package/package.json +4 -4
  19. package/server/migrations/ogc.sql +107 -0
  20. package/server/routes/gis/index.mjs +16 -2
  21. package/server/routes/gis/ogc/map.info.point.js +120 -0
  22. package/server/routes/gis/registers/funcs/classifiers.js +6 -3
  23. package/server/routes/gis/registers/funcs/handleRegistryRequest.js +15 -22
  24. package/server/routes/gis/registers/gis.registry.js +3 -2
  25. package/server/routes/gis/services/add.service.js +5 -5
  26. package/server/routes/gis/services/get.services.col.js +19 -11
  27. package/server/routes/gis/services/get.services.js +25 -12
  28. package/server/routes/map/controllers/layerList.js +14 -2
  29. package/server/routes/map/controllers/mapFeatures.js +11 -2
  30. package/server/routes/map/controllers/mapFormat.js +13 -16
  31. package/server/routes/map/controllers/vtile.js +1 -1
  32. package/server/routes/map/maps/get.map.js +13 -11
  33. package/server/routes/map/vtile1.js +30 -2
@@ -1,64 +1,74 @@
1
- (function(Y,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):(Y=typeof globalThis<"u"?globalThis:Y||self,e(Y.MapCustom={},Y.Vue,Y.vueRouter,Y.openGIScore))})(this,(function(Y,e,pe,K){"use strict";/**
1
+ (function(J,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):(J=typeof globalThis<"u"?globalThis:J||self,e(J.MapCustom={},J.Vue,J.vueRouter,J.openGIScore))})(this,(function(J,e,te,K){"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 Pe=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),qt=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(n,r,l)=>l?l.toUpperCase():r.toLowerCase()),Ht=t=>{const n=qt(t);return n.charAt(0).toUpperCase()+n.slice(1)},Yt=(...t)=>t.filter((n,r,l)=>!!n&&n.trim()!==""&&l.indexOf(n)===r).join(" ").trim();/**
6
+ */const tt=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),sn=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(n,o,r)=>r?r.toUpperCase():o.toLowerCase()),cn=t=>{const n=sn(t);return n.charAt(0).toUpperCase()+n.slice(1)},dn=(...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 ke={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 Ae={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 Kt=({size:t,strokeWidth:n=2,absoluteStrokeWidth:r,color:l,iconNode:o,name:i,class:a,...s},{slots:d})=>e.h("svg",{...ke,width:t||ke.width,height:t||ke.height,stroke:l||ke.stroke,"stroke-width":r?Number(n)*24/Number(t):n,class:Yt("lucide",...i?[`lucide-${Pe(Ht(i))}-icon`,`lucide-${Pe(i)}`]:["lucide-icon"]),...s},[...o.map(c=>e.h(...c)),...d.default?[d.default()]:[]]);/**
16
+ */const pn=({size:t,strokeWidth:n=2,absoluteStrokeWidth:o,color:r,iconNode:l,name:i,class:a,...d},{slots:c})=>e.h("svg",{...Ae,width:t||Ae.width,height:t||Ae.height,stroke:r||Ae.stroke,"stroke-width":o?Number(n)*24/Number(t):n,class:dn("lucide",...i?[`lucide-${tt(cn(i))}-icon`,`lucide-${tt(i)}`]:["lucide-icon"]),...d},[...l.map(s=>e.h(...s)),...c.default?[c.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 ze=(t,n)=>(r,{slots:l})=>e.h(Kt,{...r,iconNode:n,name:t},l);/**
21
+ */const $e=(t,n)=>(o,{slots:r})=>e.h(pn,{...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 Wt=ze("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"}]]);/**
26
+ */const un=$e("arrow-up-left",[["path",{d:"M7 17V7h10",key:"11bw93"}],["path",{d:"M17 17 7 7",key:"2786uv"}]]);/**
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 Gt=ze("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"}]]),Zt={class:"flex items-center justify-end col-span-3 gap-2"},Qt={class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},Xt=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")),r=e.defineAsyncComponent(()=>import("@opengis/core").then(f=>f.VsModal)),l=t,o=e.useModel(t,"columns"),i=e.ref(!1),a=e.ref({}),s=e.ref({...l.data||{}}),d=()=>o.value=o.value.filter((f,m)=>m!==l.index),c=async()=>{const f=a.value.validate();if(f){K.notify({type:"warning",title:"Validation",message:Object.entries(f).map(([m,p])=>`${m}: ${p}`).join(`
32
- `)});return}o.value[l.index]=s.value,i.value=!1};return(f,m)=>(e.openBlock(),e.createElementBlock("div",Zt,[e.createElementVNode("button",{onClick:m[0]||(m[0]=p=>{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(Wt),{class:"w-4 h-4"})]),e.createElementVNode("button",{onClick:d,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(Gt),{class:"w-4 h-4"})]),e.createVNode(e.unref(r),{size:"lg",visible:i.value,"onUpdate:visible":m[4]||(m[4]=p=>i.value=p),title:"Редагувати поле"},{footer:e.withCtx(()=>[e.createElementVNode("div",Qt,[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:m[3]||(m[3]=p=>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:c}," Зберегти ")])]),default:e.withCtx(()=>[e.createVNode(e.unref(n),{values:s.value,"onUpdate:values":m[1]||(m[1]=p=>s.value=p),schema:f.scheme,form:a.value,"onUpdate:form":m[2]||(m[2]=p=>a.value=p)},null,8,["values","schema","form"])]),_:1},8,["visible"])]))}}),Jt={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")})}},en={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"},qe=t=>en[t==null?void 0:t.toLowerCase()]||"gray",tn=["array","boolean","date","datetime","number","text","file","select","slug","image","badge","title","features","status","tags","category","check","range","autocomplete"],He=t=>{var n;return tn.includes((n=t||"")==null?void 0:n.toLowerCase())},nn={key:0,class:"flex items-center justify-between mb-6"},rn={class:"flex justify-end w-full"},on={class:"overflow-hidden bg-white border border-gray-200 shadow-sm rounded-xl flex flex-col"},ln={class:"table-scroll-wrapper flex-1 overflow-y-auto"},an={class:"table-fixed w-full text-[13px]"},sn={class:"bg-gray-50 border-b border-gray-200"},cn={key:0},dn=["onDragstart","onDragover","onDrop"],mn={key:0,class:"flex w-fit items-center gap-2 text-left"},pn={class:"flex-1 min-w-0"},fn={class:"font-medium text-gray-900 truncate"},un={class:"text-xs text-gray-500"},gn={key:0,class:"flex items-center justify-center"},hn={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"},yn={key:1,class:"text-gray-500 text-sm"},xn={key:2},kn={class:"px-6 py-4"},bn={key:1},wn=["colspan"],_n=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}){const r=e.defineAsyncComponent(()=>import("@opengis/core").then(k=>k.VsModal)),l=e.defineAsyncComponent(()=>import("@opengis/form")),o=e.useModel(t,"modelValue");n({openCreateDialog:()=>{s.value=!0}});const i=t,a=e.ref({}),s=e.ref(!1),d=e.ref({}),c=e.ref(null),f=e.computed({get(){return Array.isArray(o.value)?o.value:o.value&&Array.isArray(o.value.columns)?o.value.columns:[]},set(k){Array.isArray(o.value)?o.value=k:o.value&&Array.isArray(o.value.columns)&&(o.value.columns=k)}}),m=e.computed(()=>{const k=i.columnsScheme.map(w=>w.key);return k.includes("name")&&k.includes("ua")||k.includes("id")&&k.includes("label")?[{key:"main",label:"Назва",type:"main",width:"100%"},...i.columnsScheme.filter(w=>!["name","ua","id","label"].includes(w.key))]:i.columnsScheme});function p(){s.value=!1,d.value={},c.value=null}async function g(){const k=a.value.validate();if(k){K.notify({type:"warning",title:"Validation",message:Object.entries(k).map(([w,b])=>`${w}: ${b}`).join(`
33
- `)});return}if(c.value===null)f.value=[...f.value,{...d.value}];else{const w=[...f.value];w[c.value]={...d.value},f.value=w}p()}const u=e.ref(null),h=e.ref(null),x=k=>{u.value=k},E=k=>{h.value=k},y=k=>{if(u.value===null||u.value===k){u.value=null,h.value=null;return}const w=[...f.value],[b]=w.splice(u.value,1);w.splice(k,0,b),f.value=w,u.value=null,h.value=null};return(k,w)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[k.addButton?(e.openBlock(),e.createElementBlock("div",nn,[e.createElementVNode("div",rn,[e.createElementVNode("button",{onClick:w[0]||(w[0]=b=>s.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"},[...w[5]||(w[5]=[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",on,[e.createElementVNode("div",ln,[e.createElementVNode("table",an,[e.createElementVNode("colgroup",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,b=>(e.openBlock(),e.createElementBlock("col",{key:b.key,style:e.normalizeStyle(b.type==="main"?`width: ${k.mainColWidth}`:b.width?`width: ${b.width}`:"auto")},null,4))),128)),w[6]||(w[6]=e.createElementVNode("col",null,null,-1))]),e.createElementVNode("thead",null,[e.createElementVNode("tr",sn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,b=>(e.openBlock(),e.createElementBlock("th",{key:b.key,class:"px-6 py-4"},e.toDisplayString(b.label),1))),128)),w[7]||(w[7]=e.createElementVNode("th",{class:"px-6 py-4"},"Дії",-1))])]),f.value.length?(e.openBlock(),e.createElementBlock("tbody",cn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,(b,v)=>(e.openBlock(),e.createElementBlock("tr",{key:b.id||b.name||v,class:e.normalizeClass(["transition-colors hover:bg-gray-50/50 cursor-move",{"opacity-50":u.value===v,"border-t-2 border-b-2 border-blue-500 bg-blue-50":h.value===v}]),draggable:"true",onDragstart:S=>x(v),onDragover:e.withModifiers(S=>E(v),["prevent"]),onDrop:S=>y(v)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,S=>(e.openBlock(),e.createElementBlock("td",{key:S.key,class:"px-6 py-4 align-middle text-center"},[S.type==="main"?(e.openBlock(),e.createElementBlock("div",mn,[w[8]||(w[8]=e.createElementVNode("span",{class:"drag-handle cursor-move mr-2 text-gray-400"},"☰",-1)),e.unref(He)(b.format==="yes/no"?"check":b.format||b.type)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["flex items-center justify-center p-1 rounded",`bg-${e.unref(qe)(b.format==="yes/no"?"check":b.format||b.type)}-100`])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(b.format==="yes/no"?"icon-check":`icon-${b.format||b.type}`),{class:"w-4 h-4"}))],2)):e.createCommentVNode("",!0),e.createElementVNode("div",pn,[e.withDirectives((e.openBlock(),e.createElementBlock("p",fn,[e.createTextVNode(e.toDisplayString(b.name||b.id),1)])),[[e.unref(Jt)]]),e.createElementVNode("p",un,e.toDisplayString(b.ua||b.label),1)])])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[S.type==="color"?(e.openBlock(),e.createElementBlock("div",gn,[e.createElementVNode("div",{class:e.normalizeClass(["w-4 h-4 rounded-full align-middle",`bg-[${b[S.key]}]`])},null,2)])):["format","type","meta"].includes(S.key)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[b[S.key]?(e.openBlock(),e.createElementBlock("span",hn,e.toDisplayString(b[S.key]),1)):(e.openBlock(),e.createElementBlock("span",yn,"Не вказано"))],64)):(e.openBlock(),e.createElementBlock("span",xn,e.toDisplayString(b[S.key]),1))],64))]))),128)),e.createElementVNode("td",kn,[e.createVNode(Xt,{columns:f.value,"onUpdate:columns":w[1]||(w[1]=S=>f.value=S),data:b,index:v,scheme:k.formScheme},null,8,["columns","data","index","scheme"])])],42,dn))),128))])):(e.openBlock(),e.createElementBlock("tr",bn,[e.createElementVNode("td",{colspan:m.value.length+1,class:"text-gray-500 text-center py-4"}," Поля не знайдені ",8,wn)]))])])]),e.createVNode(e.unref(r),{title:"Створити поле",size:"lg",visible:s.value,"onUpdate:visible":w[4]||(w[4]=b=>s.value=b)},{footer:e.withCtx(()=>[e.createElementVNode("div",{class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},[e.createElementVNode("button",{type:"button",onClick:p,class:"px-4 py-2 rounded bg-gray-100 text-gray-700"}," Скасувати "),e.createElementVNode("button",{type:"button",onClick:g,class:"px-4 py-2 rounded bg-blue-600 text-white"}," Зберегти1 ")])]),default:e.withCtx(()=>[e.createVNode(e.unref(l),{ref_key:"form",ref:a,modelValue:d.value,"onUpdate:modelValue":w[2]||(w[2]=b=>d.value=b),schema:k.formScheme,form:a.value,"onUpdate:form":w[3]||(w[3]=b=>a.value=b)},null,8,["modelValue","schema","form"])]),_:1},8,["visible"])],64))}}),D=(t,n)=>{const r=t.__vccOpts||t;for(const[l,o]of n)r[l]=o;return r},te=D(_n,[["__scopeId","data-v-c5e2c5b4"]]),En={class:"p-4 text-[13px]"},Nn={class:"grid grid-cols-2 gap-x-6 gap-y-2"},Cn=["id","checked","onChange"],Bn={class:"ml-2 flex-1 min-w-0 flex items-center gap-2"},Vn={class:"font-medium text-gray-900 truncate"},An={class:"text-xs text-gray-500"},$n={class:"flex justify-end gap-2 p-4 border-t w-full"},oe=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 r=e.useModel(t,"visible"),l=e.useModel(t,"selection"),o=t,i=n,a=e.defineAsyncComponent(()=>import("@opengis/core").then(y=>y.VsModal)),s=e.computed(()=>Array.isArray(o.fields)?o.fields.filter(Boolean):[]),d=y=>(y==null?void 0:y.name)??(y==null?void 0:y.id)??(y==null?void 0:y.key)??(y==null?void 0:y.code)??(y==null?void 0:y.field)??(y==null?void 0:y.value)??"",c=y=>String(d(y)??"").trim(),f=y=>(y==null?void 0:y.title)??(y==null?void 0:y.label)??c(y),m=e.computed(()=>new Set(l.value.map(y=>String(y??"").trim()))),p=y=>m.value.has(c(y)),g=y=>{const k=c(y);if(!k)return;const w=new Set(m.value);w.has(k)?w.delete(k):w.add(k),l.value=Array.from(w)},u=e.computed(()=>o.confirmText||"Імпортувати"),h=e.computed(()=>o.cancelText||"Скасувати"),x=()=>{r.value=!1,i("cancel")},E=()=>{i("confirm"),r.value=!1};return(y,k)=>(e.openBlock(),e.createBlock(e.unref(a),{visible:r.value,"onUpdate:visible":k[0]||(k[0]=w=>r.value=w),title:y.title,size:"lg"},{footer:e.withCtx(()=>[e.createElementVNode("div",$n,[e.createElementVNode("button",{onClick:x,class:"px-4 py-2 rounded bg-gray-100 text-gray-700"},e.toDisplayString(h.value),1),e.createElementVNode("button",{onClick:E,class:"px-4 py-2 rounded bg-blue-600 text-white"},e.toDisplayString(u.value),1)])]),default:e.withCtx(()=>[e.createElementVNode("div",En,[e.createElementVNode("div",Nn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,w=>(e.openBlock(),e.createElementBlock("label",{key:c(w),class:"flex items-center hover:bg-gray-100 rounded p-2 cursor-pointer"},[e.createElementVNode("input",{type:"checkbox",id:`${y.idPrefix}-${c(w)}`,checked:p(w),onChange:b=>g(w)},null,40,Cn),e.createElementVNode("div",Bn,[e.unref(He)(w.type)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(`bg-${e.unref(qe)(w.type)}-100 p-1 rounded`)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(`icon-${w.type}`),{class:"w-4 h-4"}))],2)):e.createCommentVNode("",!0),e.createElementVNode("div",null,[e.createElementVNode("p",Vn,e.toDisplayString(c(w)),1),e.createElementVNode("p",An,e.toDisplayString(f(w)),1)])])]))),128))])])]),_:1},8,["visible","title"]))}});function le(t){return t==null?"":String(t).trim()}function Q(t){return le((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,r){const l=Array.isArray(t)?[...t]:[],o=Array.isArray(n)?n:[],{selectedKeys:i,resolveKey:a}=r,s=new Set;for(const m of i){const p=le(m);p&&s.add(p)}if(s.size===0)return[];const d=m=>le(a(m)),c=[],f=new Set;for(const m of l){const p=d(m);!p||!s.has(p)||(c.push(m),f.add(p))}for(const m of o){const p=d(m);!p||f.has(p)||!s.has(p)||(c.push(m),f.add(p))}return c}const vn={class:"vs-form"},Sn={class:"vs-form__body auto-rows-max container"},Fn={class:"flex flex-wrap"},Ln={class:"h-fit w-full mb-6 px-2"},Tn={class:"h-fit w-full flex flex-wrap"},Mn={class:"w-full"},Dn=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"),r=e.useModel(t,"form"),l=t,o=e.computed(()=>Array.isArray(l.fields)?l.fields:[]),i=y=>Q(y||{}),a=e.defineAsyncComponent(()=>import("@opengis/form")),s=e.ref(),d=e.ref(!1),c=e.ref([]),f=()=>{const y=p.value.map(k=>i(k)).filter(k=>k.length>0);c.value=[...y],d.value=!0},m=e.computed(()=>{var y,k;return((y=n.value)==null?void 0:y.token)||((k=n.value)==null?void 0:k.id)||"register-form"}),p=e.computed({get:()=>(n.value||(n.value={}),Array.isArray(n.value.columns)||(n.value.columns=[]),n.value.columns),set:y=>{n.value||(n.value={}),n.value.columns=Array.isArray(y)?y:[]}}),g=e.computed({get:()=>n.value||{},set:y=>{var w;const k=Array.isArray((w=n.value)==null?void 0:w.columns)?n.value.columns:[];n.value={...n.value,...y,columns:k}}});e.watch(()=>s.value,y=>{r.value=y||null},{immediate:!0}),e.watch(d,y=>{y||(c.value=[])});const u=()=>{const y=new Set(c.value.map(b=>le(b)).filter(b=>b.length>0)),k=Array.isArray(p.value)?[...p.value]:[],w=o.value.filter(b=>y.has(i(b))).map(b=>{const v=i(b);return{...b,name:v,ua:b.title??b.label??v,type:b.type||"text",meta:b.meta??"features"}});p.value=ae(k,w,{selectedKeys:c.value,resolveKey:i}),d.value=!1,c.value=[]},h={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},description:{type:"text",label:"Description",placeholder:"Description",col:12}},x=[{key:"name",label:"Name",type:"text"},{key:"ua",label:"UA",type:"text"},{key:"meta",label:"Мета",type:"text"}],E={name:{type:"text",label:"Name",required:!0},ua:{type:"text",label:"UA",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(()=>{r.value=null}),(y,k)=>(e.openBlock(),e.createElementBlock("div",vn,[e.createElementVNode("div",Sn,[e.createElementVNode("div",Fn,[e.createElementVNode("div",Ln,[(e.openBlock(),e.createBlock(e.unref(a),{ref_key:"formEl",ref:s,key:m.value,schema:h,modelValue:g.value,"onUpdate:modelValue":k[0]||(k[0]=w=>g.value=w)},null,8,["modelValue"]))]),e.createElementVNode("div",Tn,[e.createElementVNode("div",{class:"flex justify-end mb-3 gap-2 w-full"},[e.createElementVNode("button",{onClick:f,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"},[...k[4]||(k[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",Mn,[e.createVNode(te,{modelValue:p.value,"onUpdate:modelValue":k[1]||(k[1]=w=>p.value=w),"columns-scheme":x,"form-scheme":E,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])])])])]),e.createVNode(oe,{visible:d.value,"onUpdate:visible":k[2]||(k[2]=w=>d.value=w),selection:c.value,"onUpdate:selection":k[3]||(k[3]=w=>c.value=w),fields:o.value,title:"Імпорт колонок","id-prefix":"import-column",onConfirm:u},null,8,["visible","selection","fields"])]))}}),In={class:"vs-form"},jn={class:"vs-form__body auto-rows-max container"},On={class:"flex flex-wrap"},Rn={class:"h-fit w-full flex flex-wrap"},Un={class:"w-full"},Pn=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"),r=e.useModel(t,"form"),l=t,o=e.computed(()=>Array.isArray(l.fields)?l.fields:[]),i=g=>Q(g||{}),a=e.ref(!1),s=e.ref([]),d=()=>{const g=c.value.map(u=>i(u)).filter(u=>u.length>0);s.value=[...g],a.value=!0},c=e.computed({get:()=>(n.value||(n.value={}),Array.isArray(n.value.filters)||(n.value.filters=[]),n.value.filters),set:g=>{n.value||(n.value={}),n.value.filters=Array.isArray(g)?g:[]}});e.watch(a,g=>{g||(s.value=[])});const f=()=>{const g=new Set(s.value.map(x=>le(x)).filter(x=>x.length>0)),u=Array.isArray(c.value)?[...c.value]:[],h=o.value.filter(x=>g.has(i(x))).map(x=>({name:i(x),label:x.title??x.label??i(x),type:x.type||"text"}));c.value=ae(u,h,{selectedKeys:s.value,resolveKey:i}),a.value=!1,s.value=[]},m=[{key:"name",label:"Name",type:"text"},{key:"label",label:"UA",type:"text"},{key:"type",label:"Тип",type:"text"},{key:"data",label:"Класифікатор",type:"text"}],p={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:"Autocomplete",id:"autocomplete"}]},data:{type:"text",label:"Класифікатор",conditions:["type","in",["autocomplete"]]}};return e.onBeforeUnmount(()=>{r.value=null}),(g,u)=>(e.openBlock(),e.createElementBlock("div",In,[e.createElementVNode("div",jn,[e.createElementVNode("div",On,[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",Rn,[e.createElementVNode("div",{class:"flex justify-end mb-3 gap-2 w-full"},[e.createElementVNode("button",{onClick:d,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",Un,[e.createVNode(te,{modelValue:c.value,"onUpdate:modelValue":u[0]||(u[0]=h=>c.value=h),"columns-scheme":m,"form-scheme":p,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])])])])]),e.createVNode(oe,{visible:a.value,"onUpdate:visible":u[1]||(u[1]=h=>a.value=h),selection:s.value,"onUpdate:selection":u[2]||(u[2]=h=>s.value=h),fields:o.value,title:"Імпорт фільтрів","id-prefix":"import-filter",onConfirm:f},null,8,["visible","selection","fields"])]))}}),zn={class:"vs-form"},qn={class:"vs-form__body auto-rows-max container"},Hn={class:"flex flex-wrap"},Yn={class:"h-fit w-full flex flex-wrap"},Kn={class:"w-full"},Wn=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"),r=e.useModel(t,"form"),l=t,o=e.computed(()=>Array.isArray(l.fields)?l.fields:[]),i=g=>Q(g||{}),a=e.ref(!1),s=e.ref([]),d=()=>{const g=c.value.map(u=>i(u)).filter(u=>u.length>0);s.value=[...g],a.value=!0},c=e.computed({get:()=>n.value.card,set:g=>{n.value||(n.value={}),n.value.card=Array.isArray(g)?g:[]}});e.watch(a,g=>{var u;if(g){const h=((u=c.value)==null?void 0:u.map(x=>x.name))||[];s.value=[...h]}});const f=()=>{const g=new Set(s.value.map(x=>le(x)).filter(x=>x.length>0)),u=Array.isArray(c.value)?[...c.value]:[],h=o.value.filter(x=>g.has(i(x))).map(x=>{const E=i(x);return{...x,name:E,ua:x.title??x.label??E,format:x.format||x.type||"text",meta:x.meta||"title"}});c.value=ae(u,h,{selectedKeys:s.value,resolveKey:i}),a.value=!1,s.value=[]},m=[{key:"name",label:"Name",type:"text"},{key:"ua",label:"UA",type:"text"},{key:"format",label:"Format",type:"text"}],p={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(()=>{r.value=null}),(g,u)=>(e.openBlock(),e.createElementBlock("div",zn,[e.createElementVNode("div",qn,[e.createElementVNode("div",Hn,[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",Yn,[e.createElementVNode("div",{class:"flex justify-end mb-3 gap-2 w-full"},[e.createElementVNode("button",{onClick:d,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",Kn,[e.createVNode(te,{modelValue:c.value,"onUpdate:modelValue":u[0]||(u[0]=h=>c.value=h),"columns-scheme":m,"form-scheme":p,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])])])])]),e.createVNode(oe,{visible:a.value,"onUpdate:visible":u[1]||(u[1]=h=>a.value=h),selection:s.value,"onUpdate:selection":u[2]||(u[2]=h=>s.value=h),fields:o.value,title:"Імпорт полів картки","id-prefix":"import-card",onConfirm:f},null,8,["visible","selection","fields"])]))}}),Gn=["","січня","лютого","березня","квітня","травня","червня","липня","серпня","вересня","жовтня","листопада","грудня"];function fe(t){if(!t)return"";const[n,r]=t.split(" ");if(!n)return t;const[l,o,i]=n.split("-");if(!l||!o||!i)return t;const a=parseInt(o,10),s=Gn[a]||o;let d=`${parseInt(i,10)} ${s} ${l}`;if(r){const c=r.split(".")[0],[f,m,p]=c.split(":");f&&m&&p?d+=`, ${f}:${m}:${p}`:f&&m?d+=`, ${f}:${m}`:f&&(d+=`, ${f}`)}return d}const Zn={name:"Template1",props:{items:Array,columns:Array,path:String,id_key:String,query_params:{type:Array,default:()=>[]}},computed:{titleCol(){return this.columns.find(t=>t.meta==="title")},categoryCol(){return this.columns.filter(t=>t.meta==="category")},tagsCol(){return this.columns.filter(t=>t.meta==="tags")},featuresCols(){return this.columns.filter(t=>t.meta==="features")}},methods:{getItemLink(t){if(!this.id_key||!t[this.id_key]){if(!this.query_params||!this.query_params.length)return this.path;const r=this.query_params.map(l=>{const o=Object.keys(l)[0],i=l[o];return`${o}=${encodeURIComponent(t[i])}`}).join("&");return`${this.path}?${r}`}if(!this.query_params||!this.query_params.length)return`${this.path}/${t[this.id_key]}`;const n=this.query_params.map(r=>{const l=Object.keys(r)[0],o=r[l];return`${l}=${encodeURIComponent(t[o])}`}).join("&");return`${this.path}/${t[this.id_key]}?${n}`},formatDate:fe}},Qn={class:"flex justify-between p-4 pb-2 bg-slate-50 gap-4"},Xn={class:"flex items-center justify-between"},Jn={class:"text-lg font-bold line-clamp-2"},er={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"},tr={key:0,class:"flex"},nr={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"},rr={class:"p-4 pt-2"},or={class:"grid grid-cols-2 gap-3 text-sm"},lr={class:"text-gray-500"},ar={class:"font-medium"},ir={class:"items-center p-3 bg-slate-50 flex justify-end"},sr=["href"];function cr(t,n,r,l,o,i){return e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.items,a=>{var s,d,c;return e.openBlock(),e.createElementBlock("div",{key:a.id,class:"rounded-lg border bg-card text-card-foreground overflow-hidden border-none shadow-md relative","data-v0-t":"card"},[e.createElementVNode("div",Qn,[e.createElementVNode("div",Xn,[e.createElementVNode("h2",Jn,e.toDisplayString(a[`${(s=i.titleCol)==null?void 0:s.name}_text`]||a[(d=i.titleCol)==null?void 0:d.name]||a[(c=i.titleCol)==null?void 0:c.label]||"Не вказано"),1),Array.isArray(i.categoryCol)&&i.categoryCol.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(i.categoryCol,f=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:f.name},[a[f.name]?(e.openBlock(),e.createElementBlock("div",er,e.toDisplayString(a[`${f.name}_text`]||a[f.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0)]),Array.isArray(i.tagsCol)&&i.tagsCol.length?(e.openBlock(),e.createElementBlock("div",tr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.tagsCol,f=>(e.openBlock(),e.createElementBlock("div",{key:f.name,class:"mt-2 flex flex-wrap gap-1"},[a[f.name]?(e.openBlock(),e.createElementBlock("span",nr,e.toDisplayString(a[`${f.name}_text`]||a[f.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",rr,[e.createElementVNode("div",or,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.featuresCols,f=>(e.openBlock(),e.createElementBlock("div",{key:f.name,class:"flex items-center gap-1.5"},[e.createElementVNode("span",lr,e.toDisplayString(f.ua||f.label)+": ",1),e.createElementVNode("span",ar,[Array.isArray(a[f==null?void 0:f.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(a[f==null?void 0:f.name],(m,p)=>(e.openBlock(),e.createElementBlock("span",{key:p,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(m),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(i.formatDate(a[f==null?void 0:f.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(a[f==null?void 0:f.name]||"Немає даних"),1)],64))],64))])]))),128))])]),e.createElementVNode("div",ir,[e.createElementVNode("a",{href:i.getItemLink(a),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"},[...n[0]||(n[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,sr)])])}),128)}const dr=D(Zn,[["render",cr]]),mr={name:"Template2",props:{items:Array,columns:Array,path:String,id_key:String,query_params:{type:Array,default:()=>[]}},computed:{titleCol(){return this.columns.find(t=>t.meta==="title")},categoryCol(){return this.columns?this.columns.filter(t=>t.meta==="category"):[]},tagsCol(){return this.columns?this.columns.filter(t=>t.meta==="tags"):[]},featuresCols(){return this.columns.filter(t=>t.meta==="features")}},methods:{getItemLink(t){if(!this.id_key||!t[this.id_key]){if(!this.query_params||!this.query_params.length)return this.path;const r=this.query_params.map(l=>{const o=Object.keys(l)[0],i=l[o];return`${o}=${encodeURIComponent(t[i])}`}).join("&");return`${this.path}?${r}`}if(!this.query_params||!this.query_params.length)return`${this.path}/${t[this.id_key]}`;const n=this.query_params.map(r=>{const l=Object.keys(r)[0],o=r[l];return`${l}=${encodeURIComponent(t[o])}`}).join("&");return`${this.path}/${t[this.id_key]}?${n}`},formatDate:fe}},pr={class:"p-0"},fr={class:"border-l-4 border-l-slate-400"},ur={class:"p-4"},gr={class:"flex flex-wrap items-center gap-2 mb-3"},hr={class:"text-lg font-bold"},yr={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"},xr={key:1,class:"flex"},kr={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"},br={class:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-4 gap-3 text-sm border-t pt-3"},wr={class:"text-xs text-gray-500 mb-1"},_r={class:"font-medium"},Er={class:"flex justify-end mt-3 border-t pt-3"},Nr=["href"];function Cr(t,n,r,l,o,i){return e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.items,a=>{var s,d;return e.openBlock(),e.createElementBlock("div",{key:a.id,class:"rounded-lg border bg-card text-card-foreground shadow-sm overflow-hidden","data-v0-t":"card"},[e.createElementVNode("div",pr,[e.createElementVNode("div",fr,[e.createElementVNode("div",ur,[e.createElementVNode("div",gr,[e.createElementVNode("h2",hr,e.toDisplayString(a[`${(s=i.titleCol)==null?void 0:s.name}_text`]||a[(d=i.titleCol)==null?void 0:d.name]||"Не вказано"),1),Array.isArray(i.categoryCol)&&i.categoryCol.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(i.categoryCol,c=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:c.name},[a[c.name]?(e.openBlock(),e.createElementBlock("div",yr,e.toDisplayString(a[`${c.name}_text`]||a[c.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0),Array.isArray(i.tagsCol)&&i.tagsCol.length?(e.openBlock(),e.createElementBlock("div",xr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.tagsCol,c=>(e.openBlock(),e.createElementBlock("div",{key:c.name,class:"flex flex-wrap gap-1 ml-2"},[a[c.name]?(e.openBlock(),e.createElementBlock("span",kr,e.toDisplayString(a[`${c.name}_text`]||a[c.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",br,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.featuresCols,c=>(e.openBlock(),e.createElementBlock("div",{key:c.name},[e.createElementVNode("p",wr,e.toDisplayString(c.ua),1),e.createElementVNode("p",_r,[Array.isArray(a[c==null?void 0:c.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(a[c==null?void 0:c.name],(f,m)=>(e.openBlock(),e.createElementBlock("span",{key:m,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(f),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[c.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(i.formatDate(a[c==null?void 0:c.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(a[c==null?void 0:c.name]||"Немає даних"),1)],64))],64))])]))),128))]),e.createElementVNode("div",Er,[e.createElementVNode("a",{href:i.getItemLink(a),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"},[...n[0]||(n[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,Nr)])])])])])}),128)}const Br=D(mr,[["render",Cr]]),Vr={name:"Template3",props:{items:Array,columns:Array,path:String,id_key:String,query_params:{type:Array,default:()=>[]}},computed:{categoryCol(){return this.columns?this.columns.filter(t=>t.meta==="category"):[]},tagsCol(){return this.columns?this.columns.filter(t=>t.meta==="tags"):[]},featuresCols(){return this.columns.filter(t=>t.meta==="features")},colorClass(){return"bg-blue-500"},titleCol(){return this.columns.find(t=>t.meta==="title")}},methods:{featureColClass(t,n){return"col-span-2"},getItemLink(t){if(!this.id_key||!t[this.id_key]){if(!this.query_params||!this.query_params.length)return this.path;const r=this.query_params.map(l=>{const o=Object.keys(l)[0],i=l[o];return`${o}=${encodeURIComponent(t[i])}`}).join("&");return`${this.path}?${r}`}if(!this.query_params||!this.query_params.length)return`${this.path}/${t[this.id_key]}`;const n=this.query_params.map(r=>{const l=Object.keys(r)[0],o=r[l];return`${l}=${encodeURIComponent(t[o])}`}).join("&");return`${this.path}/${t[this.id_key]}?${n}`},formatDate:fe}},Ar={class:"space-y-4"},$r={class:"flex items-center py-2 px-3"},vr={class:"flex-1"},Sr={class:"grid grid-cols-12 gap-2 w-full text-xs"},Fr={class:"col-span-5"},Lr={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"},Tr={key:1,class:"flex flex-wrap gap-1 mt-1"},Mr={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"},Dr={class:"col-span-7"},Ir={class:"grid grid-cols-3 gap-3"},jr={class:"text-[10px] text-gray-500 mb-1"},Or={class:"truncate font-medium"},Rr=["href"];function Ur(t,n,r,l,o,i){return e.openBlock(),e.createElementBlock("div",Ar,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.items,a=>{var s,d;return e.openBlock(),e.createElementBlock("div",{key:a.id,class:"border-b border-slate-200 hover:bg-slate-50 transition-colors"},[e.createElementVNode("div",$r,[e.createElementVNode("div",{class:e.normalizeClass(["w-1 h-8 rounded-full mr-3",i.colorClass])},null,2),e.createElementVNode("div",vr,[e.createElementVNode("div",Sr,[e.createElementVNode("div",Fr,[e.createElementVNode("p",{class:e.normalizeClass(["font-bold text-sm text-left",{"w-full h-full flex items-center":!Array.isArray(i.tagsCol)||!i.tagsCol.length}])},e.toDisplayString(a[`${(s=i.titleCol)==null?void 0:s.name}_text`]||a[(d=i.titleCol)==null?void 0:d.name]||a[Object.keys(a)[0]]||"Не вказано"),3),Array.isArray(i.categoryCol)&&i.categoryCol.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(i.categoryCol,c=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:c.name},[a[c.name]?(e.openBlock(),e.createElementBlock("div",Lr,e.toDisplayString(a[`${c.name}_text`]||a[c.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0),Array.isArray(i.tagsCol)&&i.tagsCol.length?(e.openBlock(),e.createElementBlock("div",Tr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.tagsCol,c=>(e.openBlock(),e.createElementBlock("div",{key:c.name,class:"flex flex-wrap gap-1 mt-1"},[a[c.name]?(e.openBlock(),e.createElementBlock("span",Mr,e.toDisplayString(a[`${c.name}_text`]||a[c.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Dr,[e.createElementVNode("div",Ir,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.featuresCols,c=>(e.openBlock(),e.createElementBlock("div",{key:c.name},[e.createElementVNode("p",jr,e.toDisplayString(c.ua),1),e.createElementVNode("p",Or,[Array.isArray(a[c==null?void 0:c.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(a[c==null?void 0:c.name],(f,m)=>(e.openBlock(),e.createElementBlock("span",{key:m,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(f),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[c.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(i.formatDate(a[c==null?void 0:c.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(a[c==null?void 0:c.name]||"Немає даних"),1)],64))],64))])]))),128))])])])]),e.createElementVNode("a",{href:i.getItemLink(a),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"}},[...n[0]||(n[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,Rr)])])}),128))])}const Pr=D(Vr,[["render",Ur]]),zr={name:"Template4",props:{items:Array,columns:Array,path:String,id_key:String,query_params:{type:Array,default:()=>[]}},computed:{featuresCols(){return this.columns.filter(t=>t.meta==="features")},titleCol(){return this.columns.find(t=>t.meta==="title")},categoryCol(){return this.columns?this.columns.filter(t=>t.meta==="category"):[]},tagsCol(){return this.columns?this.columns.filter(t=>t.meta==="tags"):[]}},methods:{getItemLink(t){if(!this.id_key||!t[this.id_key]){if(!this.query_params||!this.query_params.length)return this.path;const r=this.query_params.map(l=>{const o=Object.keys(l)[0],i=l[o];return`${o}=${encodeURIComponent(t[i])}`}).join("&");return`${this.path}?${r}`}if(!this.query_params||!this.query_params.length)return`${this.path}/${t[this.id_key]}`;const n=this.query_params.map(r=>{const l=Object.keys(r)[0],o=r[l];return`${l}=${encodeURIComponent(t[o])}`}).join("&");return`${this.path}/${t[this.id_key]}?${n}`},formatDate:fe}},qr={class:"flex flex-col space-y-1.5 p-6 pb-2"},Hr={class:"flex items-center gap-2"},Yr={class:"tracking-tight text-lg font-medium"},Kr={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"},Wr={key:1,class:"flex"},Gr={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"},Zr={class:"p-6 pt-0 pb-4"},Qr={class:"grid grid-cols-2 gap-4"},Xr={class:"text-sm text-gray-500"},Jr={class:"font-medium"},eo={class:"flex items-center p-6 pt-0"},to=["href"];function no(t,n,r,l,o,i){return e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.items,a=>{var s,d;return e.openBlock(),e.createElementBlock("div",{key:a.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",qr,[e.createElementVNode("div",Hr,[e.createElementVNode("h3",Yr,e.toDisplayString(a[`${(s=i.titleCol)==null?void 0:s.name}_text`]||a[(d=i.titleCol)==null?void 0:d.name]||Object.keys(a)[0]||"Не вказано"),1),Array.isArray(i.categoryCol)&&i.categoryCol.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(i.categoryCol,c=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:c.name},[a[c.name]?(e.openBlock(),e.createElementBlock("div",Kr,e.toDisplayString(a[`${c.name}_text`]||a[c.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0),Array.isArray(i.tagsCol)&&i.tagsCol.length?(e.openBlock(),e.createElementBlock("div",Wr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.tagsCol,c=>(e.openBlock(),e.createElementBlock("div",{key:c.name,class:"flex flex-wrap gap-1 ml-2"},[a[c.name]?(e.openBlock(),e.createElementBlock("span",Gr,e.toDisplayString(a[`${c.name}_text`]||a[c.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)])]),e.createElementVNode("div",Zr,[e.createElementVNode("div",Qr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.featuresCols,c=>(e.openBlock(),e.createElementBlock("div",{key:c.name},[e.createElementVNode("p",Xr,e.toDisplayString(c.ua),1),e.createElementVNode("p",Jr,[Array.isArray(a[c==null?void 0:c.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(a[c==null?void 0:c.name],(f,m)=>(e.openBlock(),e.createElementBlock("span",{key:m,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(f),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[c.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(i.formatDate(a[c==null?void 0:c.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(a[c==null?void 0:c.name]||"Немає даних"),1)],64))],64))])]))),128))])]),e.createElementVNode("div",eo,[e.createElementVNode("a",{href:i.getItemLink(a),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,to)])])}),128)}const ro=D(zr,[["render",no]]),oo={name:"Template5",props:{items:Array,columns:Array,path:String,id_key:String,query_params:{type:Array,default:()=>[]}},computed:{imageCol(){return this.columns.find(t=>t.meta==="image")},descCol(){return this.columns.find(t=>t.meta==="desc")||this.columns.find(t=>t.name==="description")},categoryCol(){return this.columns?this.columns.filter(t=>t.meta==="category"):[]},tagsCol(){return this.columns?this.columns.filter(t=>t.meta==="tags"):[]},featuresCols(){return this.columns.filter(t=>t.meta==="features")},titleCol(){return this.columns.find(t=>t.meta==="title")}},methods:{getItemLink(t){if(!this.id_key||!t[this.id_key]){if(!this.query_params||!this.query_params.length)return this.path;const r=this.query_params.map(l=>{const o=Object.keys(l)[0],i=l[o];return`${o}=${encodeURIComponent(t[i])}`}).join("&");return`${this.path}?${r}`}if(!this.query_params||!this.query_params.length)return`${this.path}/${t[this.id_key]}`;const n=this.query_params.map(r=>{const l=Object.keys(r)[0],o=r[l];return`${l}=${encodeURIComponent(t[o])}`}).join("&");return`${this.path}/${t[this.id_key]}?${n}`},formatDate:fe}},lo={class:"grid grid-cols-12 divide-x divide-gray-100"},ao={key:0},io=["src"],so={key:1,class:"col-span-1 flex items-center justify-center"},co={class:"col-span-7 p-4"},mo={class:"flex items-center mb-1 col-span-7 p-4"},po={class:"text-base font-bold text-gray-900 mr-2"},fo={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"},uo={class:"text-sm text-gray-600 line-clamp-1 mb-2"},go={class:"grid grid-cols-2 gap-x-4 gap-y-1 text-sm"},ho={class:"text-gray-500 mr-1"},yo=["innerHTML"],xo={class:"text-gray-600 truncate"},ko={class:"col-span-2 p-3 bg-gray-50 flex flex-col justify-center"},bo={class:"text-xs text-gray-500 mb-1.5"},wo={key:0,class:"flex flex-wrap gap-1"},_o={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"},Eo={class:"col-span-2 flex flex-col justify-center items-center bg-gray-50 border-l p-2"},No={class:"w-full space-y-2"},Co=["href"];function Bo(t,n,r,l,o,i){return e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.items,a=>{var s,d,c,f,m;return e.openBlock(),e.createElementBlock("div",{key:a.id,class:"bg-white border border-gray-200 rounded-lg overflow-hidden transition-all duration-200 hover:shadow-md"},[e.createElementVNode("div",lo,[i.imageCol?(e.openBlock(),e.createElementBlock("div",ao,[a[(s=i.imageCol)==null?void 0:s.name]?(e.openBlock(),e.createElementBlock("img",{key:0,src:a[(d=i.imageCol)==null?void 0:d.name],alt:"image",class:"object-cover h-full"},null,8,io)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",so,[...n[0]||(n[0]=[e.createElementVNode("div",{class:"w-3 h-12 rounded-sm bg-blue-500",title:"Пріоритет: Високий","aria-hidden":"true"},null,-1)])])),e.createElementVNode("div",co,[e.createElementVNode("div",mo,[e.createElementVNode("h3",po,e.toDisplayString(a[`${(c=i.titleCol)==null?void 0:c.name}_text`]||a[(f=i.titleCol)==null?void 0:f.name]||Object.keys(a)[0]||"Не вказано"),1),Array.isArray(i.categoryCol)&&i.categoryCol.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(i.categoryCol,p=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:p.name},[a[p.name]?(e.openBlock(),e.createElementBlock("div",fo,e.toDisplayString(a[`${p.name}_text`]||a[p.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0)]),e.createElementVNode("p",uo,e.toDisplayString(a[(m=i.descCol)==null?void 0:m.name]),1),e.createElementVNode("div",go,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.featuresCols,p=>(e.openBlock(),e.createElementBlock("div",{key:p.name,class:"flex items-center"},[e.createElementVNode("span",ho,e.toDisplayString((p==null?void 0:p.ua)||p.label||p.name)+":",1),p.icon?(e.openBlock(),e.createElementBlock("span",{key:0,class:"mr-1 flex-shrink-0",innerHTML:p.icon},null,8,yo)):e.createCommentVNode("",!0),e.createElementVNode("span",xo,[Array.isArray(a[p==null?void 0:p.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(a[p==null?void 0:p.name],(g,u)=>(e.openBlock(),e.createElementBlock("span",{key:u,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},[p.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(i.formatDate(a[p==null?void 0:p.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(a[p==null?void 0:p.name]||"Немає даних"),1)],64))],64))])]))),128))])]),e.createElementVNode("div",ko,[e.createElementVNode("p",bo," Теги: "+e.toDisplayString(i.tagsCol.length&&a[i.tagsCol[0].name]?"":"відсутні"),1),Array.isArray(i.tagsCol)&&i.tagsCol.length?(e.openBlock(),e.createElementBlock("div",wo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.tagsCol,p=>(e.openBlock(),e.createElementBlock("div",{key:p.name,class:"flex flex-wrap gap-1"},[a[p.name]?(e.openBlock(),e.createElementBlock("span",_o,e.toDisplayString(a[`${p.name}_text`]||a[p.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Eo,[e.createElementVNode("div",No,[e.createElementVNode("a",{href:i.getItemLink(a),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,Co)])])])])}),128)}const Ye={template1:dr,template2:Br,template3:Pr,template4:ro,template5:D(oo,[["render",Bo]])},Vo={class:"space-y-4"},Ao={class:"flex items-center gap-4 mb-2"},$o={class:"text-lg font-semibold mb-4"},vo={key:1,class:"text-gray-400 text-center py-12"},So={key:2,class:"text-gray-400 text-center py-12"},Fo=e.defineComponent({__name:"preview-tab",props:{data:{default:{}},dataModifiers:{}},emits:["update:data"],setup(t){const n=e.defineAsyncComponent(()=>import("@opengis/form")),r=e.useModel(t,"data"),l=[{text:"template1",id:"template1"},{text:"template2",id:"template2"},{text:"template3",id:"template3"},{text:"template4",id:"template4"},{text:"template5",id:"template5"}],o={view:{type:"select",label:"Вигляд",required:!0,options:l,col:12}},i=e.computed(()=>{var f;return Array.isArray((f=r.value)==null?void 0:f.columns)?r.value.columns:[]}),a=e.computed(()=>{var f;return((f=r.value)==null?void 0:f.view)||"template1"}),s=e.computed(()=>Ye[a.value]||Ye.template1),d=e.computed(()=>{var p;const f=(p=r.value)==null?void 0:p.view;if(!f)return"template1";const m=l.find(g=>g.id===f);return(m==null?void 0:m.text)||f}),c=e.computed(()=>(Array.isArray(r.value.tableData)?r.value.tableData:[]).slice(0,5));return(f,m)=>(e.openBlock(),e.createElementBlock("div",Vo,[e.createElementVNode("div",Ao,[(e.openBlock(),e.createBlock(e.unref(n),{key:r.value.id,schema:o,modelValue:r.value,"onUpdate:modelValue":m[0]||(m[0]=p=>r.value=p),class:"w-[220px]"},null,8,["modelValue"]))]),e.createElementVNode("h2",$o," Превʼю таблиці ("+e.toDisplayString(d.value)+") ",1),s.value&&c.value.length&&i.value.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value),{items:c.value,columns:i.value,path:"#",id_key:"id",key:a.value},null,8,["items","columns"])):c.value.length?(e.openBlock(),e.createElementBlock("div",So," Додайте колонки та виберіть вигляд для перегляду ")):(e.openBlock(),e.createElementBlock("div",vo," Немає даних для превʼю "))]))}}),Lo={class:"relative min-h-svh flex-1 flex-col flex gap-4 bg-white p-8 overflow-y-auto"},To={class:"max-w-6xl mx-auto"},Mo={class:"flex items-center justify-between mb-6"},Do={class:"flex items-center gap-2"},Io=["href"],jo={class:"w-full"},Oo={class:"flex items-center w-full h-10 max-w-md grid-cols-3 p-1 mb-6 bg-white border border-gray-200 rounded-md text-muted-foreground"},Ro=["onClick"],Uo=e.defineComponent({__name:"register",setup(t){const n=pe.useRoute(),r=pe.useRouter(),l=e.ref("list"),o=e.ref(""),i=[{name:"List",id:"list"},{name:"Filters",id:"filters"},{name:"Card",id:"card"},{name:"Preview",id:"preview"}],a={list:Dn,filters:Pn,card:Wn,preview:Fo},s=i.map(g=>g.id),d=e.ref({columns:[],filters:[],card:[],tableData:[]}),c=e.ref([]),f=async()=>{var u;if(!((u=d.value)==null?void 0:u.token)){K.notify({type:"error",title:"Помилка",message:"Відсутній токен для збереження"});return}try{const h=await fetch(`/api/gis-registry/${n.params.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(d.value)});if(!h.ok)throw new Error(`Failed to save content: ${h.status}`);K.notify({type:"success",title:"Успіх",message:"Контент збережено"})}catch(h){K.notify({type:"error",title:"Помилка",message:"Не вдалося зберегти контент"}),console.error(h)}},m=async g=>{try{const h=await(await fetch(`/api/gis-registry/${g}`)).json(),x=Array.isArray(h==null?void 0:h.rows)?h.rows:[];d.value.tableData=x.slice(0,3)}catch(u){console.error("Помилка завантаження превʼю:",u)}},p=async()=>{var g,u;try{const x=await(await fetch(`/api/data/gis.registers.table/${n.params.id}`)).json(),E=((g=x==null?void 0:x.rows)==null?void 0:g[0])||{};o.value=E.register_key||"",d.value={...E,columns:Array.isArray(E.columns)?E.columns:[],filters:Array.isArray(E.filters)?E.filters:[],card:Array.isArray(E.card)?E.card:[],tableData:Array.isArray(E.tableData)?E.tableData:[]},(u=x==null?void 0:x.tokens)!=null&&u.edit&&(d.value.token=x.tokens.edit),c.value=Array.isArray(x==null?void 0:x.fields)?x.fields:[]}catch(h){console.error("Помилка завантаження даних:",h)}};return e.onMounted(async()=>{const g=n.query.tab;typeof g=="string"&&s.includes(g)&&(l.value=g),await p(),o.value&&await m(o.value)}),e.watch(l,g=>{n.query.tab!==g&&r.replace({query:{...n.query,tab:g}})}),e.watch(()=>n.query.tab,g=>{typeof g=="string"&&s.includes(g)&&l.value!==g&&(l.value=g)}),(g,u)=>(e.openBlock(),e.createElementBlock("main",Lo,[e.createElementVNode("div",null,[e.createElementVNode("div",To,[e.createElementVNode("div",Mo,[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",Do,[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,Io),e.createElementVNode("button",{onClick:f,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",jo,[e.createElementVNode("div",Oo,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(i,h=>e.createElementVNode("button",{key:h.id,onClick:x=>l.value=h.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",h.id===l.value?"bg-blue-50 text-blue-700 border-blue-200":""])},e.toDisplayString(h.name),11,Ro)),64))])]),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a[l.value]),{data:d.value,"onUpdate:data":u[0]||(u[0]=h=>d.value=h),fields:c.value,key:l.value},null,40,["data","fields"]))])])]))}}),Po={},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:"lucide lucide-settings"};function qo(t,n){return e.openBlock(),e.createElementBlock("svg",zo,[...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 Ho=D(Po,[["render",qo]]),Yo={},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:"lucide lucide-layers"};function Wo(t,n){return e.openBlock(),e.createElementBlock("svg",Ko,[...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 Go=D(Yo,[["render",Wo]]),Zo={},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:"lucide lucide-eye"};function Xo(t,n){return e.openBlock(),e.createElementBlock("svg",Qo,[...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 Jo=D(Zo,[["render",Xo]]),el={},tl={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 nl(t,n){return e.openBlock(),e.createElementBlock("svg",tl,[...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 rl=D(el,[["render",nl]]),ol={},ll={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 al(t,n){return e.openBlock(),e.createElementBlock("svg",ll,[...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 il=D(ol,[["render",al]]),Ke=e.defineComponent({__name:"MonacoEditor",props:{modelValue:{},language:{},theme:{}},emits:["update:modelValue","load"],setup(t,{emit:n}){const r=t,l=n,o=e.ref(null);let i=null,a=null,s=!1;function d(){return new Promise((f,m)=>{if(a)return f(a);if(window.monaco)return a=window.monaco,f(a);const p=u=>{if([...document.styleSheets].some(x=>{var E;return(E=x==null?void 0:x.href)==null?void 0:E.includes(u)}))return;const h=document.createElement("link");h.rel="stylesheet",h.href=u,document.head.appendChild(h)},g=u=>new Promise((h,x)=>{const E=document.createElement("script");E.src=u,E.onload=()=>h(!0),E.onerror=x,document.body.appendChild(E)});p("https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs/editor/editor.main.min.css"),g("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,f(a)})}).catch(m)})}function c(){!o.value||!a||(i&&i.dispose(),i=a.editor.create(o.value,{value:r.modelValue||"",language:r.language||"yaml",theme:r.theme||"vs-light",automaticLayout:!0,minimap:{enabled:!1}}),i.onDidChangeModelContent(()=>{s||l("update:modelValue",i.getValue())}))}return e.watch(()=>r.modelValue,f=>{if(!i)return;const m=i.getValue();f!==m&&(s=!0,i.setValue(f||""),s=!1)}),e.watch(()=>r.language,f=>{i&&a&&a.editor.setModelLanguage(i.getModel(),f||"yaml")}),e.watch(()=>r.theme,f=>{i&&a&&a.editor.setTheme(f||"vs-light")}),e.onMounted(async()=>{await d(),c()}),e.onBeforeUnmount(()=>{i&&i.dispose()}),(f,m)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"editorContainer",ref:o,class:"w-full h-full"},null,512))}});/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function We(t){return typeof t>"u"||t===null}function sl(t){return typeof t=="object"&&t!==null}function cl(t){return Array.isArray(t)?t:We(t)?[]:[t]}function dl(t,n){var r,l,o,i;if(n)for(i=Object.keys(n),r=0,l=i.length;r<l;r+=1)o=i[r],t[o]=n[o];return t}function ml(t,n){var r="",l;for(l=0;l<n;l+=1)r+=t;return r}function pl(t){return t===0&&Number.NEGATIVE_INFINITY===1/t}var fl=We,ul=sl,gl=cl,hl=ml,yl=pl,xl=dl,T={isNothing:fl,isObject:ul,toArray:gl,repeat:hl,isNegativeZero:yl,extend:xl};function Ge(t,n){var r="",l=t.reason||"(unknown reason)";return t.mark?(t.mark.name&&(r+='in "'+t.mark.name+'" '),r+="("+(t.mark.line+1)+":"+(t.mark.column+1)+")",!n&&t.mark.snippet&&(r+=`
31
+ */const mn=$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"}]]);/**
32
+ * @license lucide-vue-next v0.514.0 - ISC
33
+ *
34
+ * This source code is licensed under the ISC license.
35
+ * See the LICENSE file in the root directory of this source tree.
36
+ */const fn=$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"}]]);/**
37
+ * @license lucide-vue-next v0.514.0 - ISC
38
+ *
39
+ * This source code is licensed under the ISC license.
40
+ * See the LICENSE file in the root directory of this source tree.
41
+ */const gn=$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"}]]),hn={class:"flex items-center justify-end col-span-3 gap-2"},yn={class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},xn=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(u=>u.VsModal)),r=t,l=e.useModel(t,"columns"),i=e.ref(!1),a=e.ref({}),d=e.ref({...r.data||{}}),c=()=>l.value=l.value.filter((u,p)=>p!==r.index),s=async()=>{const u=a.value.validate();if(u){K.notify({type:"warning",title:"Validation",message:Object.entries(u).map(([p,m])=>`${p}: ${m}`).join(`
42
+ `)});return}l.value[r.index]=d.value,i.value=!1};return(u,p)=>(e.openBlock(),e.createElementBlock("div",hn,[e.createElementVNode("button",{onClick:p[0]||(p[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(fn),{class:"w-4 h-4"})]),e.createElementVNode("button",{onClick:c,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(gn),{class:"w-4 h-4"})]),e.createVNode(e.unref(o),{size:"lg",visible:i.value,"onUpdate:visible":p[4]||(p[4]=m=>i.value=m),title:"Редагувати поле"},{footer:e.withCtx(()=>[e.createElementVNode("div",yn,[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:p[3]||(p[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:s}," Зберегти ")])]),default:e.withCtx(()=>[e.createVNode(e.unref(n),{values:d.value,"onUpdate:values":p[1]||(p[1]=m=>d.value=m),schema:u.scheme,form:a.value,"onUpdate:form":p[2]||(p[2]=m=>a.value=m)},null,8,["values","schema","form"])]),_:1},8,["visible"])]))}}),bn={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")})}},kn={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=>kn[t==null?void 0:t.toLowerCase()]||"gray",wn=["array","boolean","date","datetime","number","text","file","select","slug","image","badge","title","features","status","tags","category","check","range","autocomplete"],ot=t=>{var n;return wn.includes((n=t||"")==null?void 0:n.toLowerCase())},_n={key:0,class:"flex items-center justify-between mb-6"},En={class:"flex justify-end w-full"},Nn={class:"overflow-hidden bg-white border border-gray-200 shadow-sm rounded-xl flex flex-col flex-1 min-h-0"},Cn={class:"table-scroll-wrapper flex-1 overflow-y-auto min-h-0"},Bn={class:"table-fixed w-full text-[13px]"},Vn={class:"bg-gray-50 border-b border-gray-200"},vn={key:0},An=["onDragstart","onDragover","onDrop"],$n={key:0,class:"flex w-fit items-center gap-2 text-left"},Sn={class:"flex-1 min-w-0"},Ln={class:"font-medium text-gray-900 truncate"},Fn={class:"text-xs text-gray-500"},Mn={key:0,class:"flex items-center justify-center"},Tn={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"},In={key:1,class:"text-gray-500 text-sm"},Dn={key:2},jn={class:"px-6 py-4"},On={key:1},Pn=["colspan"],Rn=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}){const o=e.defineAsyncComponent(()=>import("@opengis/core").then(x=>x.VsModal)),r=e.defineAsyncComponent(()=>import("@opengis/form")),l=e.useModel(t,"modelValue");n({openCreateDialog:()=>{d.value=!0}});const i=t,a=e.ref({}),d=e.ref(!1),c=e.ref({}),s=e.ref(null),u=e.computed({get(){return Array.isArray(l.value)?l.value:l.value&&Array.isArray(l.value.columns)?l.value.columns:[]},set(x){Array.isArray(l.value)?l.value=x:l.value&&Array.isArray(l.value.columns)&&(l.value.columns=x)}}),p=e.computed(()=>{const x=i.columnsScheme.map(w=>w.key);return x.includes("name")&&x.includes("label")||x.includes("id")&&x.includes("label")?[{key:"main",label:"Назва",type:"main",width:"100%"},...i.columnsScheme.filter(w=>!["name","id","label"].includes(w.key))]:i.columnsScheme});function m(){d.value=!1,c.value={},s.value=null}async function g(){const x=a.value.validate();if(x){K.notify({type:"warning",title:"Validation",message:Object.entries(x).map(([w,_])=>`${w}: ${_}`).join(`
43
+ `)});return}if(s.value===null)u.value=[...u.value,{...c.value}];else{const w=[...u.value];w[s.value]={...c.value},u.value=w}m()}const h=e.ref(null),y=e.ref(null),b=x=>{h.value=x},E=x=>{y.value=x},f=x=>{if(h.value===null||h.value===x){h.value=null,y.value=null;return}const w=[...u.value],[_]=w.splice(h.value,1);w.splice(x,0,_),u.value=w,h.value=null,y.value=null};return(x,w)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[x.addButton?(e.openBlock(),e.createElementBlock("div",_n,[e.createElementVNode("div",En,[e.createElementVNode("button",{onClick:w[0]||(w[0]=_=>d.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"},[...w[5]||(w[5]=[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",Nn,[e.createElementVNode("div",Cn,[e.createElementVNode("table",Bn,[e.createElementVNode("colgroup",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,_=>(e.openBlock(),e.createElementBlock("col",{key:_.key,style:e.normalizeStyle(_.type==="main"?`width: ${x.mainColWidth}`:_.width?`width: ${_.width}`:"auto")},null,4))),128)),w[6]||(w[6]=e.createElementVNode("col",null,null,-1))]),e.createElementVNode("thead",null,[e.createElementVNode("tr",Vn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,_=>(e.openBlock(),e.createElementBlock("th",{key:_.key,class:"px-6 py-4"},e.toDisplayString(_.label),1))),128)),w[7]||(w[7]=e.createElementVNode("th",{class:"px-6 py-4"},"Дії",-1))])]),u.value.length?(e.openBlock(),e.createElementBlock("tbody",vn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,(_,k)=>(e.openBlock(),e.createElementBlock("tr",{key:_.id||_.name||k,class:e.normalizeClass(["transition-colors hover:bg-gray-50/50 cursor-move",{"opacity-50":h.value===k,"border-t-2 border-b-2 border-blue-500 bg-blue-50":y.value===k}]),draggable:"true",onDragstart:C=>b(k),onDragover:e.withModifiers(C=>E(k),["prevent"]),onDrop:C=>f(k)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,C=>(e.openBlock(),e.createElementBlock("td",{key:C.key,class:"px-6 py-4 align-middle text-center"},[C.type==="main"?(e.openBlock(),e.createElementBlock("div",$n,[w[8]||(w[8]=e.createElementVNode("span",{class:"drag-handle cursor-move mr-2 text-gray-400"},"☰",-1)),e.unref(ot)(_.format==="yes/no"?"check":_.format||_.type)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["flex items-center justify-center p-1 rounded",`bg-${e.unref(nt)(_.format==="yes/no"?"check":_.format||_.type)}-100`])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(_.format==="yes/no"?"icon-check":`icon-${_.format||_.type}`),{class:"w-4 h-4"}))],2)):e.createCommentVNode("",!0),e.createElementVNode("div",Sn,[e.withDirectives((e.openBlock(),e.createElementBlock("p",Ln,[e.createTextVNode(e.toDisplayString(_.name||_.id),1)])),[[e.unref(bn)]]),e.createElementVNode("p",Fn,e.toDisplayString(_.label||_.ua||_.name||_.id),1)])])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[C.type==="color"?(e.openBlock(),e.createElementBlock("div",Mn,[e.createElementVNode("div",{class:e.normalizeClass(["w-4 h-4 rounded-full align-middle",`bg-[${_[C.key]}]`])},null,2)])):["format","type","meta"].includes(C.key)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[_[C.key]?(e.openBlock(),e.createElementBlock("span",Tn,e.toDisplayString(_[C.key]),1)):(e.openBlock(),e.createElementBlock("span",In,"Не вказано"))],64)):(e.openBlock(),e.createElementBlock("span",Dn,e.toDisplayString(_[C.key]),1))],64))]))),128)),e.createElementVNode("td",jn,[e.createVNode(xn,{columns:u.value,"onUpdate:columns":w[1]||(w[1]=C=>u.value=C),data:_,index:k,scheme:x.formScheme},null,8,["columns","data","index","scheme"])])],42,An))),128))])):(e.openBlock(),e.createElementBlock("tr",On,[e.createElementVNode("td",{colspan:p.value.length+1,class:"text-gray-500 text-center py-4"}," Поля не знайдені ",8,Pn)]))])])]),e.createVNode(e.unref(o),{title:"Створити поле",size:"lg",visible:d.value,"onUpdate:visible":w[4]||(w[4]=_=>d.value=_)},{footer:e.withCtx(()=>[e.createElementVNode("div",{class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},[e.createElementVNode("button",{type:"button",onClick:m,class:"px-4 py-2 rounded bg-gray-100 text-gray-700"}," Скасувати "),e.createElementVNode("button",{type:"button",onClick:g,class:"px-4 py-2 rounded bg-blue-600 text-white"}," Зберегти1 ")])]),default:e.withCtx(()=>[e.createVNode(e.unref(r),{ref_key:"form",ref:a,modelValue:c.value,"onUpdate:modelValue":w[2]||(w[2]=_=>c.value=_),schema:x.formScheme,form:a.value,"onUpdate:form":w[3]||(w[3]=_=>a.value=_)},null,8,["modelValue","schema","form"])]),_:1},8,["visible"])],64))}}),O=(t,n)=>{const o=t.__vccOpts||t;for(const[r,l]of n)o[r]=l;return o},de=O(Rn,[["__scopeId","data-v-55fd5d4c"]]),zn={class:"p-4 text-[13px]"},Un={class:"grid grid-cols-2 gap-x-6 gap-y-2"},qn=["id","checked","onChange"],Hn={class:"ml-2 flex-1 min-w-0 flex items-center gap-2"},Yn={class:"font-medium text-gray-900 truncate"},Kn={class:"text-xs text-gray-500"},Wn={class:"flex justify-end gap-2 p-4 border-t w-full"},me=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(f=>f.VsModal)),d=e.computed(()=>Array.isArray(l.fields)?l.fields.filter(Boolean):[]),c=f=>(f==null?void 0:f.name)??(f==null?void 0:f.id)??(f==null?void 0:f.key)??(f==null?void 0:f.code)??(f==null?void 0:f.field)??(f==null?void 0:f.value)??"",s=f=>String(c(f)??"").trim(),u=f=>(f==null?void 0:f.title)??(f==null?void 0:f.label)??s(f),p=e.computed(()=>new Set(r.value.map(f=>String(f??"").trim()))),m=f=>p.value.has(s(f)),g=f=>{const x=s(f);if(!x)return;const w=new Set(p.value);w.has(x)?w.delete(x):w.add(x),r.value=Array.from(w)},h=e.computed(()=>l.confirmText||"Імпортувати"),y=e.computed(()=>l.cancelText||"Скасувати"),b=()=>{o.value=!1,i("cancel")},E=()=>{i("confirm"),o.value=!1};return(f,x)=>(e.openBlock(),e.createBlock(e.unref(a),{visible:o.value,"onUpdate:visible":x[0]||(x[0]=w=>o.value=w),title:f.title,size:"lg"},{footer:e.withCtx(()=>[e.createElementVNode("div",Wn,[e.createElementVNode("button",{onClick:b,class:"px-4 py-2 rounded bg-gray-100 text-gray-700"},e.toDisplayString(y.value),1),e.createElementVNode("button",{onClick:E,class:"px-4 py-2 rounded bg-blue-600 text-white"},e.toDisplayString(h.value),1)])]),default:e.withCtx(()=>[e.createElementVNode("div",zn,[e.createElementVNode("div",Un,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,w=>(e.openBlock(),e.createElementBlock("label",{key:s(w),class:"flex items-center hover:bg-gray-100 rounded p-2 cursor-pointer"},[e.createElementVNode("input",{type:"checkbox",id:`${f.idPrefix}-${s(w)}`,checked:m(w),onChange:_=>g(w)},null,40,qn),e.createElementVNode("div",Hn,[e.unref(ot)(w.type)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(`bg-${e.unref(nt)(w.type)}-100 p-1 rounded`)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(`icon-${w.type}`),{class:"w-4 h-4"}))],2)):e.createCommentVNode("",!0),e.createElementVNode("div",null,[e.createElementVNode("p",Yn,e.toDisplayString(s(w)),1),e.createElementVNode("p",Kn,e.toDisplayString(u(w)),1)])])]))),128))])])]),_:1},8,["visible","title"]))}});function fe(t){return t==null?"":String(t).trim()}function ae(t){return fe((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,d=new Set;for(const p of i){const m=fe(p);m&&d.add(m)}if(d.size===0)return[];const c=p=>fe(a(p)),s=[],u=new Set;for(const p of r){const m=c(p);!m||!d.has(m)||(s.push(p),u.add(m))}for(const p of l){const m=c(p);!m||u.has(m)||!d.has(m)||(s.push(p),u.add(m))}return s}const Gn={class:"vs-form"},Zn={class:"vs-form__body auto-rows-max container"},Qn={class:"flex flex-wrap"},Xn={class:"h-fit w-full mb-6 px-2"},Jn={class:"h-fit w-full flex flex-wrap"},eo={class:"w-full"},to=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=f=>ae(f||{}),a=e.defineAsyncComponent(()=>import("@opengis/form")),d=e.ref(),c=e.ref(!1),s=e.ref([]),u=()=>{const f=m.value.map(x=>i(x)).filter(x=>x.length>0);s.value=[...f],c.value=!0},p=e.computed(()=>{var f,x;return((f=n.value)==null?void 0:f.token)||((x=n.value)==null?void 0:x.id)||"register-form"}),m=e.computed({get:()=>(n.value||(n.value={}),Array.isArray(n.value.columns)||(n.value.columns=[]),n.value.columns),set:f=>{n.value||(n.value={}),n.value.columns=Array.isArray(f)?f:[]}}),g=e.computed({get:()=>n.value||{},set:f=>{var w;const x=Array.isArray((w=n.value)==null?void 0:w.columns)?n.value.columns:[];n.value={...n.value,...f,columns:x}}});e.watch(()=>d.value,f=>{o.value=f||null},{immediate:!0}),e.watch(c,f=>{f||(s.value=[])});const h=()=>{const f=new Set(s.value.map(_=>fe(_)).filter(_=>_.length>0)),x=Array.isArray(m.value)?[...m.value]:[],w=l.value.filter(_=>f.has(i(_))).map(_=>{const k=i(_),C=_.title??_.label??k;return{..._,name:k,label:C,type:_.type||"text",meta:_.meta??"features"}});m.value=ge(x,w,{selectedKeys:s.value,resolveKey:i}),c.value=!1,s.value=[]},y={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},description:{type:"text",label:"Description",placeholder:"Description",col:12}},b=[{key:"name",label:"Name",type:"text"},{key:"label",label:"Label",type:"text"},{key:"meta",label:"Мета",type:"text"}],E={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}),(f,x)=>(e.openBlock(),e.createElementBlock("div",Gn,[e.createElementVNode("div",Zn,[e.createElementVNode("div",Qn,[e.createElementVNode("div",Xn,[(e.openBlock(),e.createBlock(e.unref(a),{ref_key:"formEl",ref:d,key:p.value,schema:y,modelValue:g.value,"onUpdate:modelValue":x[0]||(x[0]=w=>g.value=w)},null,8,["modelValue"]))]),e.createElementVNode("div",Jn,[e.createElementVNode("div",{class:"flex justify-end mb-3 gap-2 w-full"},[e.createElementVNode("button",{onClick:u,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"},[...x[4]||(x[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",eo,[e.createVNode(de,{modelValue:m.value,"onUpdate:modelValue":x[1]||(x[1]=w=>m.value=w),"columns-scheme":b,"form-scheme":E,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])])])])]),e.createVNode(me,{visible:c.value,"onUpdate:visible":x[2]||(x[2]=w=>c.value=w),selection:s.value,"onUpdate:selection":x[3]||(x[3]=w=>s.value=w),fields:l.value,title:"Імпорт колонок","id-prefix":"import-column",onConfirm:h},null,8,["visible","selection","fields"])]))}}),no={class:"vs-form"},oo={class:"vs-form__body auto-rows-max container"},ro={class:"flex flex-wrap"},lo={class:"h-fit w-full flex flex-wrap"},ao={class:"w-full"},io=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=g=>ae(g||{}),a=e.ref(!1),d=e.ref([]),c=()=>{const g=s.value.map(h=>i(h)).filter(h=>h.length>0);d.value=[...g],a.value=!0},s=e.computed({get:()=>(n.value||(n.value={}),Array.isArray(n.value.filters)||(n.value.filters=[]),n.value.filters),set:g=>{n.value||(n.value={}),n.value.filters=Array.isArray(g)?g:[]}});e.watch(a,g=>{g||(d.value=[])});const u=()=>{const g=new Set(d.value.map(b=>fe(b)).filter(b=>b.length>0)),h=Array.isArray(s.value)?[...s.value]:[],y=l.value.filter(b=>g.has(i(b))).map(b=>({name:i(b),label:b.title??b.label??i(b),type:b.type||"text"}));s.value=ge(h,y,{selectedKeys:d.value,resolveKey:i}),a.value=!1,d.value=[]},p=[{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}),(g,h)=>(e.openBlock(),e.createElementBlock("div",no,[e.createElementVNode("div",oo,[e.createElementVNode("div",ro,[h[4]||(h[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",lo,[e.createElementVNode("div",{class:"flex justify-end mb-3 gap-2 w-full"},[e.createElementVNode("button",{onClick:c,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"},[...h[3]||(h[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",ao,[e.createVNode(de,{modelValue:s.value,"onUpdate:modelValue":h[0]||(h[0]=y=>s.value=y),"columns-scheme":p,"form-scheme":m,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])])])])]),e.createVNode(me,{visible:a.value,"onUpdate:visible":h[1]||(h[1]=y=>a.value=y),selection:d.value,"onUpdate:selection":h[2]||(h[2]=y=>d.value=y),fields:l.value,title:"Імпорт фільтрів","id-prefix":"import-filter",onConfirm:u},null,8,["visible","selection","fields"])]))}}),so={class:"vs-form"},co={class:"vs-form__body auto-rows-max container"},po={class:"flex flex-wrap"},uo={class:"h-fit w-full flex flex-wrap"},mo={class:"w-full"},fo=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=g=>ae(g||{}),a=e.ref(!1),d=e.ref([]),c=()=>{const g=s.value.map(h=>i(h)).filter(h=>h.length>0);d.value=[...g],a.value=!0},s=e.computed({get:()=>n.value.card,set:g=>{n.value||(n.value={}),n.value.card=Array.isArray(g)?g:[]}});e.watch(a,g=>{var h;if(g){const y=((h=s.value)==null?void 0:h.map(b=>b.name))||[];d.value=[...y]}});const u=()=>{const g=new Set(d.value.map(b=>fe(b)).filter(b=>b.length>0)),h=Array.isArray(s.value)?[...s.value]:[],y=l.value.filter(b=>g.has(i(b))).map(b=>{const E=i(b),f=b.title??b.label??E;return{...b,name:E,label:f,format:b.format||b.type||"text",meta:b.meta||"title"}});s.value=ge(h,y,{selectedKeys:d.value,resolveKey:i}),a.value=!1,d.value=[]},p=[{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}),(g,h)=>(e.openBlock(),e.createElementBlock("div",so,[e.createElementVNode("div",co,[e.createElementVNode("div",po,[h[4]||(h[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",uo,[e.createElementVNode("div",{class:"flex justify-end mb-3 gap-2 w-full"},[e.createElementVNode("button",{onClick:c,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"},[...h[3]||(h[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",mo,[e.createVNode(de,{modelValue:s.value,"onUpdate:modelValue":h[0]||(h[0]=y=>s.value=y),"columns-scheme":p,"form-scheme":m,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])])])])]),e.createVNode(me,{visible:a.value,"onUpdate:visible":h[1]||(h[1]=y=>a.value=y),selection:d.value,"onUpdate:selection":h[2]||(h[2]=y=>d.value=y),fields:l.value,title:"Імпорт полів картки","id-prefix":"import-card",onConfirm:u},null,8,["visible","selection","fields"])]))}}),go=["","січня","лютого","березня","квітня","травня","червня","липня","серпня","вересня","жовтня","листопада","грудня"];function we(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),d=go[a]||l;let c=`${parseInt(i,10)} ${d} ${r}`;if(o){const s=o.split(".")[0],[u,p,m]=s.split(":");u&&p&&m?c+=`, ${u}:${p}:${m}`:u&&p?c+=`, ${u}:${p}`:u&&(c+=`, ${u}`)}return c}const ho={name:"Template1",props:{items:Array,columns:Array,path:String,id_key:String,query_params:{type:Array,default:()=>[]}},computed:{titleCol(){return this.columns.find(t=>t.meta==="title")},categoryCol(){return this.columns.filter(t=>t.meta==="category")},tagsCol(){return this.columns.filter(t=>t.meta==="tags")},featuresCols(){return this.columns.filter(t=>t.meta==="features")}},methods:{getItemLink(t){if(!this.id_key||!t[this.id_key]){if(!this.query_params||!this.query_params.length)return this.path;const o=this.query_params.map(r=>{const l=Object.keys(r)[0],i=r[l];return`${l}=${encodeURIComponent(t[i])}`}).join("&");return`${this.path}?${o}`}if(!this.query_params||!this.query_params.length)return`${this.path}/${t[this.id_key]}`;const n=this.query_params.map(o=>{const r=Object.keys(o)[0],l=o[r];return`${r}=${encodeURIComponent(t[l])}`}).join("&");return`${this.path}/${t[this.id_key]}?${n}`},formatDate:we}},yo={class:"flex justify-between p-4 pb-2 bg-slate-50 gap-4"},xo={class:"flex items-center justify-between"},bo={class:"text-lg font-bold line-clamp-2"},ko={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"},wo={key:0,class:"flex"},_o={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"},Eo={class:"p-4 pt-2"},No={class:"grid grid-cols-2 gap-3 text-sm"},Co={class:"text-gray-500"},Bo={class:"font-medium"},Vo={class:"items-center p-3 bg-slate-50 flex justify-end"},vo=["href"];function Ao(t,n,o,r,l,i){return e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.items,a=>{var d,c,s;return e.openBlock(),e.createElementBlock("div",{key:a.id,class:"rounded-lg border bg-card text-card-foreground overflow-hidden border-none shadow-md relative","data-v0-t":"card"},[e.createElementVNode("div",yo,[e.createElementVNode("div",xo,[e.createElementVNode("h2",bo,e.toDisplayString(a[`${(d=i.titleCol)==null?void 0:d.name}_text`]||a[(c=i.titleCol)==null?void 0:c.name]||a[(s=i.titleCol)==null?void 0:s.label]||"Не вказано"),1),Array.isArray(i.categoryCol)&&i.categoryCol.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(i.categoryCol,u=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u.name},[a[u.name]?(e.openBlock(),e.createElementBlock("div",ko,e.toDisplayString(a[`${u.name}_text`]||a[u.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0)]),Array.isArray(i.tagsCol)&&i.tagsCol.length?(e.openBlock(),e.createElementBlock("div",wo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.tagsCol,u=>(e.openBlock(),e.createElementBlock("div",{key:u.name,class:"mt-2 flex flex-wrap gap-1"},[a[u.name]?(e.openBlock(),e.createElementBlock("span",_o,e.toDisplayString(a[`${u.name}_text`]||a[u.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Eo,[e.createElementVNode("div",No,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.featuresCols,u=>(e.openBlock(),e.createElementBlock("div",{key:u.name,class:"flex items-center gap-1.5"},[e.createElementVNode("span",Co,e.toDisplayString(u.ua||u.label)+": ",1),e.createElementVNode("span",Bo,[Array.isArray(a[u==null?void 0:u.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(a[u==null?void 0:u.name],(p,m)=>(e.openBlock(),e.createElementBlock("span",{key:m,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(p),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(i.formatDate(a[u==null?void 0:u.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(a[u==null?void 0:u.name]||"Немає даних"),1)],64))],64))])]))),128))])]),e.createElementVNode("div",Vo,[e.createElementVNode("a",{href:i.getItemLink(a),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"},[...n[0]||(n[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,vo)])])}),128)}const $o=O(ho,[["render",Ao]]),So={name:"Template2",props:{items:Array,columns:Array,path:String,id_key:String,query_params:{type:Array,default:()=>[]}},computed:{titleCol(){return this.columns.find(t=>t.meta==="title")},categoryCol(){return this.columns?this.columns.filter(t=>t.meta==="category"):[]},tagsCol(){return this.columns?this.columns.filter(t=>t.meta==="tags"):[]},featuresCols(){return this.columns.filter(t=>t.meta==="features")}},methods:{getItemLink(t){if(!this.id_key||!t[this.id_key]){if(!this.query_params||!this.query_params.length)return this.path;const o=this.query_params.map(r=>{const l=Object.keys(r)[0],i=r[l];return`${l}=${encodeURIComponent(t[i])}`}).join("&");return`${this.path}?${o}`}if(!this.query_params||!this.query_params.length)return`${this.path}/${t[this.id_key]}`;const n=this.query_params.map(o=>{const r=Object.keys(o)[0],l=o[r];return`${r}=${encodeURIComponent(t[l])}`}).join("&");return`${this.path}/${t[this.id_key]}?${n}`},formatDate:we}},Lo={class:"p-0"},Fo={class:"border-l-4 border-l-slate-400"},Mo={class:"p-4"},To={class:"flex flex-wrap items-center gap-2 mb-3"},Io={class:"text-lg font-bold"},Do={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"},jo={key:1,class:"flex"},Oo={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"},Po={class:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-4 gap-3 text-sm border-t pt-3"},Ro={class:"text-xs text-gray-500 mb-1"},zo={class:"font-medium"},Uo={class:"flex justify-end mt-3 border-t pt-3"},qo=["href"];function Ho(t,n,o,r,l,i){return e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.items,a=>{var d,c;return e.openBlock(),e.createElementBlock("div",{key:a.id,class:"rounded-lg border bg-card text-card-foreground shadow-sm overflow-hidden","data-v0-t":"card"},[e.createElementVNode("div",Lo,[e.createElementVNode("div",Fo,[e.createElementVNode("div",Mo,[e.createElementVNode("div",To,[e.createElementVNode("h2",Io,e.toDisplayString(a[`${(d=i.titleCol)==null?void 0:d.name}_text`]||a[(c=i.titleCol)==null?void 0:c.name]||"Не вказано"),1),Array.isArray(i.categoryCol)&&i.categoryCol.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(i.categoryCol,s=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:s.name},[a[s.name]?(e.openBlock(),e.createElementBlock("div",Do,e.toDisplayString(a[`${s.name}_text`]||a[s.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0),Array.isArray(i.tagsCol)&&i.tagsCol.length?(e.openBlock(),e.createElementBlock("div",jo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.tagsCol,s=>(e.openBlock(),e.createElementBlock("div",{key:s.name,class:"flex flex-wrap gap-1 ml-2"},[a[s.name]?(e.openBlock(),e.createElementBlock("span",Oo,e.toDisplayString(a[`${s.name}_text`]||a[s.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Po,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.featuresCols,s=>(e.openBlock(),e.createElementBlock("div",{key:s.name},[e.createElementVNode("p",Ro,e.toDisplayString(s.ua),1),e.createElementVNode("p",zo,[Array.isArray(a[s==null?void 0:s.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(a[s==null?void 0:s.name],(u,p)=>(e.openBlock(),e.createElementBlock("span",{key:p,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(u),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[s.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(i.formatDate(a[s==null?void 0:s.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(a[s==null?void 0:s.name]||"Немає даних"),1)],64))],64))])]))),128))]),e.createElementVNode("div",Uo,[e.createElementVNode("a",{href:i.getItemLink(a),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"},[...n[0]||(n[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,qo)])])])])])}),128)}const Yo=O(So,[["render",Ho]]),Ko={name:"Template3",props:{items:Array,columns:Array,path:String,id_key:String,query_params:{type:Array,default:()=>[]}},computed:{categoryCol(){return this.columns?this.columns.filter(t=>t.meta==="category"):[]},tagsCol(){return this.columns?this.columns.filter(t=>t.meta==="tags"):[]},featuresCols(){return this.columns.filter(t=>t.meta==="features")},colorClass(){return"bg-blue-500"},titleCol(){return this.columns.find(t=>t.meta==="title")}},methods:{featureColClass(t,n){return"col-span-2"},getItemLink(t){if(!this.id_key||!t[this.id_key]){if(!this.query_params||!this.query_params.length)return this.path;const o=this.query_params.map(r=>{const l=Object.keys(r)[0],i=r[l];return`${l}=${encodeURIComponent(t[i])}`}).join("&");return`${this.path}?${o}`}if(!this.query_params||!this.query_params.length)return`${this.path}/${t[this.id_key]}`;const n=this.query_params.map(o=>{const r=Object.keys(o)[0],l=o[r];return`${r}=${encodeURIComponent(t[l])}`}).join("&");return`${this.path}/${t[this.id_key]}?${n}`},formatDate:we}},Wo={class:"space-y-4"},Go={class:"flex items-center py-2 px-3"},Zo={class:"flex-1"},Qo={class:"grid grid-cols-12 gap-2 w-full text-xs"},Xo={class:"col-span-5"},Jo={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"},er={key:1,class:"flex flex-wrap gap-1 mt-1"},tr={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"},nr={class:"col-span-7"},or={class:"grid grid-cols-3 gap-3"},rr={class:"text-[10px] text-gray-500 mb-1"},lr={class:"truncate font-medium"},ar=["href"];function ir(t,n,o,r,l,i){return e.openBlock(),e.createElementBlock("div",Wo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.items,a=>{var d,c;return e.openBlock(),e.createElementBlock("div",{key:a.id,class:"border-b border-slate-200 hover:bg-slate-50 transition-colors"},[e.createElementVNode("div",Go,[e.createElementVNode("div",{class:e.normalizeClass(["w-1 h-8 rounded-full mr-3",i.colorClass])},null,2),e.createElementVNode("div",Zo,[e.createElementVNode("div",Qo,[e.createElementVNode("div",Xo,[e.createElementVNode("p",{class:e.normalizeClass(["font-bold text-sm text-left",{"w-full h-full flex items-center":!Array.isArray(i.tagsCol)||!i.tagsCol.length}])},e.toDisplayString(a[`${(d=i.titleCol)==null?void 0:d.name}_text`]||a[(c=i.titleCol)==null?void 0:c.name]||a[Object.keys(a)[0]]||"Не вказано"),3),Array.isArray(i.categoryCol)&&i.categoryCol.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(i.categoryCol,s=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:s.name},[a[s.name]?(e.openBlock(),e.createElementBlock("div",Jo,e.toDisplayString(a[`${s.name}_text`]||a[s.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0),Array.isArray(i.tagsCol)&&i.tagsCol.length?(e.openBlock(),e.createElementBlock("div",er,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.tagsCol,s=>(e.openBlock(),e.createElementBlock("div",{key:s.name,class:"flex flex-wrap gap-1 mt-1"},[a[s.name]?(e.openBlock(),e.createElementBlock("span",tr,e.toDisplayString(a[`${s.name}_text`]||a[s.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",nr,[e.createElementVNode("div",or,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.featuresCols,s=>(e.openBlock(),e.createElementBlock("div",{key:s.name},[e.createElementVNode("p",rr,e.toDisplayString(s.ua),1),e.createElementVNode("p",lr,[Array.isArray(a[s==null?void 0:s.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(a[s==null?void 0:s.name],(u,p)=>(e.openBlock(),e.createElementBlock("span",{key:p,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(u),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[s.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(i.formatDate(a[s==null?void 0:s.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(a[s==null?void 0:s.name]||"Немає даних"),1)],64))],64))])]))),128))])])])]),e.createElementVNode("a",{href:i.getItemLink(a),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"}},[...n[0]||(n[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,ar)])])}),128))])}const sr=O(Ko,[["render",ir]]),cr={name:"Template4",props:{items:Array,columns:Array,path:String,id_key:String,query_params:{type:Array,default:()=>[]}},computed:{featuresCols(){return this.columns.filter(t=>t.meta==="features")},titleCol(){return this.columns.find(t=>t.meta==="title")},categoryCol(){return this.columns?this.columns.filter(t=>t.meta==="category"):[]},tagsCol(){return this.columns?this.columns.filter(t=>t.meta==="tags"):[]}},methods:{getItemLink(t){if(!this.id_key||!t[this.id_key]){if(!this.query_params||!this.query_params.length)return this.path;const o=this.query_params.map(r=>{const l=Object.keys(r)[0],i=r[l];return`${l}=${encodeURIComponent(t[i])}`}).join("&");return`${this.path}?${o}`}if(!this.query_params||!this.query_params.length)return`${this.path}/${t[this.id_key]}`;const n=this.query_params.map(o=>{const r=Object.keys(o)[0],l=o[r];return`${r}=${encodeURIComponent(t[l])}`}).join("&");return`${this.path}/${t[this.id_key]}?${n}`},formatDate:we}},dr={class:"flex flex-col space-y-1.5 p-6 pb-2"},pr={class:"flex items-center gap-2"},ur={class:"tracking-tight text-lg font-medium"},mr={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"},fr={key:1,class:"flex"},gr={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"},hr={class:"p-6 pt-0 pb-4"},yr={class:"grid grid-cols-2 gap-4"},xr={class:"text-sm text-gray-500"},br={class:"font-medium"},kr={class:"flex items-center p-6 pt-0"},wr=["href"];function _r(t,n,o,r,l,i){return e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.items,a=>{var d,c;return e.openBlock(),e.createElementBlock("div",{key:a.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",dr,[e.createElementVNode("div",pr,[e.createElementVNode("h3",ur,e.toDisplayString(a[`${(d=i.titleCol)==null?void 0:d.name}_text`]||a[(c=i.titleCol)==null?void 0:c.name]||Object.keys(a)[0]||"Не вказано"),1),Array.isArray(i.categoryCol)&&i.categoryCol.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(i.categoryCol,s=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:s.name},[a[s.name]?(e.openBlock(),e.createElementBlock("div",mr,e.toDisplayString(a[`${s.name}_text`]||a[s.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0),Array.isArray(i.tagsCol)&&i.tagsCol.length?(e.openBlock(),e.createElementBlock("div",fr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.tagsCol,s=>(e.openBlock(),e.createElementBlock("div",{key:s.name,class:"flex flex-wrap gap-1 ml-2"},[a[s.name]?(e.openBlock(),e.createElementBlock("span",gr,e.toDisplayString(a[`${s.name}_text`]||a[s.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)])]),e.createElementVNode("div",hr,[e.createElementVNode("div",yr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.featuresCols,s=>(e.openBlock(),e.createElementBlock("div",{key:s.name},[e.createElementVNode("p",xr,e.toDisplayString(s.ua),1),e.createElementVNode("p",br,[Array.isArray(a[s==null?void 0:s.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(a[s==null?void 0:s.name],(u,p)=>(e.openBlock(),e.createElementBlock("span",{key:p,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(u),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[s.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(i.formatDate(a[s==null?void 0:s.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(a[s==null?void 0:s.name]||"Немає даних"),1)],64))],64))])]))),128))])]),e.createElementVNode("div",kr,[e.createElementVNode("a",{href:i.getItemLink(a),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,wr)])])}),128)}const Er=O(cr,[["render",_r]]),Nr={name:"Template5",props:{items:Array,columns:Array,path:String,id_key:String,query_params:{type:Array,default:()=>[]}},computed:{imageCol(){return this.columns.find(t=>t.meta==="image")},descCol(){return this.columns.find(t=>t.meta==="desc")||this.columns.find(t=>t.name==="description")},categoryCol(){return this.columns?this.columns.filter(t=>t.meta==="category"):[]},tagsCol(){return this.columns?this.columns.filter(t=>t.meta==="tags"):[]},featuresCols(){return this.columns.filter(t=>t.meta==="features")},titleCol(){return this.columns.find(t=>t.meta==="title")}},methods:{getItemLink(t){if(!this.id_key||!t[this.id_key]){if(!this.query_params||!this.query_params.length)return this.path;const o=this.query_params.map(r=>{const l=Object.keys(r)[0],i=r[l];return`${l}=${encodeURIComponent(t[i])}`}).join("&");return`${this.path}?${o}`}if(!this.query_params||!this.query_params.length)return`${this.path}/${t[this.id_key]}`;const n=this.query_params.map(o=>{const r=Object.keys(o)[0],l=o[r];return`${r}=${encodeURIComponent(t[l])}`}).join("&");return`${this.path}/${t[this.id_key]}?${n}`},formatDate:we}},Cr={class:"grid grid-cols-12 divide-x divide-gray-100"},Br={key:0},Vr=["src"],vr={key:1,class:"col-span-1 flex items-center justify-center"},Ar={class:"col-span-7 p-4"},$r={class:"flex items-center mb-1 col-span-7 p-4"},Sr={class:"text-base font-bold text-gray-900 mr-2"},Lr={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"},Fr={class:"text-sm text-gray-600 line-clamp-1 mb-2"},Mr={class:"grid grid-cols-2 gap-x-4 gap-y-1 text-sm"},Tr={class:"text-gray-500 mr-1"},Ir=["innerHTML"],Dr={class:"text-gray-600 truncate"},jr={class:"col-span-2 p-3 bg-gray-50 flex flex-col justify-center"},Or={class:"text-xs text-gray-500 mb-1.5"},Pr={key:0,class:"flex flex-wrap gap-1"},Rr={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"},zr={class:"col-span-2 flex flex-col justify-center items-center bg-gray-50 border-l p-2"},Ur={class:"w-full space-y-2"},qr=["href"];function Hr(t,n,o,r,l,i){return e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.items,a=>{var d,c,s,u,p;return e.openBlock(),e.createElementBlock("div",{key:a.id,class:"bg-white border border-gray-200 rounded-lg overflow-hidden transition-all duration-200 hover:shadow-md"},[e.createElementVNode("div",Cr,[i.imageCol?(e.openBlock(),e.createElementBlock("div",Br,[a[(d=i.imageCol)==null?void 0:d.name]?(e.openBlock(),e.createElementBlock("img",{key:0,src:a[(c=i.imageCol)==null?void 0:c.name],alt:"image",class:"object-cover h-full"},null,8,Vr)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",vr,[...n[0]||(n[0]=[e.createElementVNode("div",{class:"w-3 h-12 rounded-sm bg-blue-500",title:"Пріоритет: Високий","aria-hidden":"true"},null,-1)])])),e.createElementVNode("div",Ar,[e.createElementVNode("div",$r,[e.createElementVNode("h3",Sr,e.toDisplayString(a[`${(s=i.titleCol)==null?void 0:s.name}_text`]||a[(u=i.titleCol)==null?void 0:u.name]||Object.keys(a)[0]||"Не вказано"),1),Array.isArray(i.categoryCol)&&i.categoryCol.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(i.categoryCol,m=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:m.name},[a[m.name]?(e.openBlock(),e.createElementBlock("div",Lr,e.toDisplayString(a[`${m.name}_text`]||a[m.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0)]),e.createElementVNode("p",Fr,e.toDisplayString(a[(p=i.descCol)==null?void 0:p.name]),1),e.createElementVNode("div",Mr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.featuresCols,m=>(e.openBlock(),e.createElementBlock("div",{key:m.name,class:"flex items-center"},[e.createElementVNode("span",Tr,e.toDisplayString((m==null?void 0:m.ua)||m.label||m.name)+":",1),m.icon?(e.openBlock(),e.createElementBlock("span",{key:0,class:"mr-1 flex-shrink-0",innerHTML:m.icon},null,8,Ir)):e.createCommentVNode("",!0),e.createElementVNode("span",Dr,[Array.isArray(a[m==null?void 0:m.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(a[m==null?void 0:m.name],(g,h)=>(e.openBlock(),e.createElementBlock("span",{key:h,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},[m.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(i.formatDate(a[m==null?void 0:m.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(a[m==null?void 0:m.name]||"Немає даних"),1)],64))],64))])]))),128))])]),e.createElementVNode("div",jr,[e.createElementVNode("p",Or," Теги: "+e.toDisplayString(i.tagsCol.length&&a[i.tagsCol[0].name]?"":"відсутні"),1),Array.isArray(i.tagsCol)&&i.tagsCol.length?(e.openBlock(),e.createElementBlock("div",Pr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.tagsCol,m=>(e.openBlock(),e.createElementBlock("div",{key:m.name,class:"flex flex-wrap gap-1"},[a[m.name]?(e.openBlock(),e.createElementBlock("span",Rr,e.toDisplayString(a[`${m.name}_text`]||a[m.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",zr,[e.createElementVNode("div",Ur,[e.createElementVNode("a",{href:i.getItemLink(a),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,qr)])])])])}),128)}const rt={template1:$o,template2:Yo,template3:sr,template4:Er,template5:O(Nr,[["render",Hr]])},Yr={class:"space-y-4"},Kr={class:"flex items-center gap-4"},Wr={class:"text-lg font-semibold mb-4"},Gr={key:1,class:"text-gray-400 text-center py-12"},Zr={key:2,class:"text-gray-400 text-center py-12"},Qr=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 u;return Array.isArray((u=o.value)==null?void 0:u.columns)?o.value.columns:[]}),a=e.computed(()=>{var u;return((u=o.value)==null?void 0:u.view)||"template1"}),d=e.computed(()=>rt[a.value]||rt.template1),c=e.computed(()=>{var m;const u=(m=o.value)==null?void 0:m.view;if(!u)return"template1";const p=r.find(g=>g.id===u);return(p==null?void 0:p.text)||u}),s=e.computed(()=>(Array.isArray(o.value.tableData)?o.value.tableData:[]).slice(0,5));return(u,p)=>(e.openBlock(),e.createElementBlock("div",Yr,[e.createElementVNode("div",Kr,[(e.openBlock(),e.createBlock(e.unref(n),{key:o.value.id,schema:l,modelValue:o.value,"onUpdate:modelValue":p[0]||(p[0]=m=>o.value=m)},null,8,["modelValue"]))]),e.createElementVNode("h2",Wr," Превʼю таблиці ("+e.toDisplayString(c.value)+") ",1),d.value&&s.value.length&&i.value.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),{items:s.value,columns:i.value,path:"#",id_key:"id",key:a.value},null,8,["items","columns"])):s.value.length?(e.openBlock(),e.createElementBlock("div",Zr," Додайте колонки та виберіть вигляд для перегляду ")):(e.openBlock(),e.createElementBlock("div",Gr," Немає даних для превʼю "))]))}}),Xr={class:"relative min-h-svh flex-1 flex-col flex gap-4 bg-white p-8 overflow-y-auto"},Jr={class:"max-w-6xl mx-auto"},el={class:"flex items-center justify-between mb-6"},tl={class:"flex items-center gap-2"},nl=["href"],ol={class:"w-full"},rl={class:"flex items-center w-full h-10 max-w-md grid-cols-3 p-1 mb-6 bg-white border border-gray-200 rounded-md text-muted-foreground"},ll=["onClick"],al=e.defineComponent({__name:"register",setup(t){const n=te.useRoute(),o=te.useRouter(),r=e.ref("list"),l=e.ref(""),i=[{name:"List",id:"list"},{name:"Filters",id:"filters"},{name:"Card",id:"card"},{name:"Preview",id:"preview"}],a={list:to,filters:io,card:fo,preview:Qr},d=i.map(g=>g.id),c=e.ref({columns:[],filters:[],card:[],tableData:[]}),s=e.ref([]),u=async()=>{var h;if(!((h=c.value)==null?void 0:h.token)){K.notify({type:"error",title:"Помилка",message:"Відсутній токен для збереження"});return}try{const y=await fetch(`/api/gis-registry/${n.params.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(c.value)});if(!y.ok)throw new Error(`Failed to save content: ${y.status}`);K.notify({type:"success",title:"Успіх",message:"Контент збережено"})}catch(y){K.notify({type:"error",title:"Помилка",message:"Не вдалося зберегти контент"}),console.error(y)}},p=async g=>{try{const y=await(await fetch(`/api/gis-registry/${g}`)).json(),b=Array.isArray(y==null?void 0:y.rows)?y.rows:[];c.value.tableData=b.slice(0,3)}catch(h){console.error("Помилка завантаження превʼю:",h)}},m=async()=>{var g,h;try{const b=await(await fetch(`/api/data/gis.registers.table/${n.params.id}`)).json(),E=((g=b==null?void 0:b.rows)==null?void 0:g[0])||{};l.value=E.register_key||"",c.value={...E,columns:Array.isArray(E.columns)?E.columns:[],filters:Array.isArray(E.filters)?E.filters:[],card:Array.isArray(E.card)?E.card:[],tableData:Array.isArray(E.tableData)?E.tableData:[]},(h=b==null?void 0:b.tokens)!=null&&h.edit&&(c.value.token=b.tokens.edit),s.value=Array.isArray(b==null?void 0:b.fields)?b.fields:[]}catch(y){console.error("Помилка завантаження даних:",y)}};return e.onMounted(async()=>{const g=n.query.tab;typeof g=="string"&&d.includes(g)&&(r.value=g),await m(),l.value&&await p(l.value)}),e.watch(r,g=>{n.query.tab!==g&&o.replace({query:{...n.query,tab:g}})}),e.watch(()=>n.query.tab,g=>{typeof g=="string"&&d.includes(g)&&r.value!==g&&(r.value=g)}),(g,h)=>(e.openBlock(),e.createElementBlock("main",Xr,[e.createElementVNode("div",null,[e.createElementVNode("div",Jr,[e.createElementVNode("div",el,[h[1]||(h[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",tl,[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,nl),e.createElementVNode("button",{onClick:u,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",ol,[e.createElementVNode("div",rl,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(i,y=>e.createElementVNode("button",{key:y.id,onClick:b=>r.value=y.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",y.id===r.value?"bg-blue-50 text-blue-700 border-blue-200":""])},e.toDisplayString(y.name),11,ll)),64))])]),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a[r.value]),{data:c.value,"onUpdate:data":h[0]||(h[0]=y=>c.value=y),fields:s.value,key:r.value},null,40,["data","fields"]))])])]))}}),il={},sl={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 cl(t,n){return e.openBlock(),e.createElementBlock("svg",sl,[...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 dl=O(il,[["render",cl]]),pl={},ul={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 ml(t,n){return e.openBlock(),e.createElementBlock("svg",ul,[...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 fl=O(pl,[["render",ml]]),gl={},hl={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 yl(t,n){return e.openBlock(),e.createElementBlock("svg",hl,[...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 xl=O(gl,[["render",yl]]),bl={},kl={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 wl(t,n){return e.openBlock(),e.createElementBlock("svg",kl,[...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 _l=O(bl,[["render",wl]]),El={},Nl={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-filter"};function Cl(t,n){return e.openBlock(),e.createElementBlock("svg",Nl,[...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 Bl=O(El,[["render",Cl]]),lt=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,d=!1;function c(){return new Promise((u,p)=>{if(a)return u(a);if(window.monaco)return a=window.monaco,u(a);const m=h=>{if([...document.styleSheets].some(b=>{var E;return(E=b==null?void 0:b.href)==null?void 0:E.includes(h)}))return;const y=document.createElement("link");y.rel="stylesheet",y.href=h,document.head.appendChild(y)},g=h=>new Promise((y,b)=>{const E=document.createElement("script");E.src=h,E.onload=()=>y(!0),E.onerror=b,document.body.appendChild(E)});m("https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs/editor/editor.main.min.css"),g("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,u(a)})}).catch(p)})}function s(){!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(()=>{d||r("update:modelValue",i.getValue())}))}return e.watch(()=>o.modelValue,u=>{if(!i)return;const p=i.getValue();u!==p&&(d=!0,i.setValue(u||""),d=!1)}),e.watch(()=>o.language,u=>{i&&a&&a.editor.setModelLanguage(i.getModel(),u||"yaml")}),e.watch(()=>o.theme,u=>{i&&a&&a.editor.setTheme(u||"vs-light")}),e.onMounted(async()=>{await c(),s()}),e.onBeforeUnmount(()=>{i&&i.dispose()}),(u,p)=>(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 at(t){return typeof t>"u"||t===null}function Vl(t){return typeof t=="object"&&t!==null}function vl(t){return Array.isArray(t)?t:at(t)?[]:[t]}function Al(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 $l(t,n){var o="",r;for(r=0;r<n;r+=1)o+=t;return o}function Sl(t){return t===0&&Number.NEGATIVE_INFINITY===1/t}var Ll=at,Fl=Vl,Ml=vl,Tl=$l,Il=Sl,Dl=Al,U={isNothing:Ll,isObject:Fl,toArray:Ml,repeat:Tl,isNegativeZero:Il,extend:Dl};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+=`
34
44
 
35
- `+t.mark.snippet),l+" "+r):l}function ue(t,n){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=n,this.message=Ge(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}ue.prototype=Object.create(Error.prototype),ue.prototype.constructor=ue,ue.prototype.toString=function(n){return this.name+": "+Ge(this,n)};var P=ue;function Be(t,n,r,l,o){var i="",a="",s=Math.floor(o/2)-1;return l-n>s&&(i=" ... ",n=l-s+i.length),r-l>s&&(a=" ...",r=l+s-a.length),{str:i+t.slice(n,r).replace(/\t/g,"→")+a,pos:l-n+i.length}}function Ve(t,n){return T.repeat(" ",n-t.length)+t}function kl(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 r=/\r?\n|\r|\0/g,l=[0],o=[],i,a=-1;i=r.exec(t.buffer);)o.push(i.index),l.push(i.index+i[0].length),t.position<=i.index&&a<0&&(a=l.length-2);a<0&&(a=l.length-1);var s="",d,c,f=Math.min(t.line+n.linesAfter,o.length).toString().length,m=n.maxLength-(n.indent+f+3);for(d=1;d<=n.linesBefore&&!(a-d<0);d++)c=Be(t.buffer,l[a-d],o[a-d],t.position-(l[a]-l[a-d]),m),s=T.repeat(" ",n.indent)+Ve((t.line-d+1).toString(),f)+" | "+c.str+`
36
- `+s;for(c=Be(t.buffer,l[a],o[a],t.position,m),s+=T.repeat(" ",n.indent)+Ve((t.line+1).toString(),f)+" | "+c.str+`
37
- `,s+=T.repeat("-",n.indent+f+3+c.pos)+`^
38
- `,d=1;d<=n.linesAfter&&!(a+d>=o.length);d++)c=Be(t.buffer,l[a+d],o[a+d],t.position-(l[a]-l[a+d]),m),s+=T.repeat(" ",n.indent)+Ve((t.line+d+1).toString(),f)+" | "+c.str+`
39
- `;return s.replace(/\n$/,"")}var bl=kl,wl=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],_l=["scalar","sequence","mapping"];function El(t){var n={};return t!==null&&Object.keys(t).forEach(function(r){t[r].forEach(function(l){n[String(l)]=r})}),n}function Nl(t,n){if(n=n||{},Object.keys(n).forEach(function(r){if(wl.indexOf(r)===-1)throw new P('Unknown option "'+r+'" 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(r){return r},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=El(n.styleAliases||null),_l.indexOf(this.kind)===-1)throw new P('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}var j=Nl;function Ze(t,n){var r=[];return t[n].forEach(function(l){var o=r.length;r.forEach(function(i,a){i.tag===l.tag&&i.kind===l.kind&&i.multi===l.multi&&(o=a)}),r[o]=l}),r}function Cl(){var t={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},n,r;function l(o){o.multi?(t.multi[o.kind].push(o),t.multi.fallback.push(o)):t[o.kind][o.tag]=t.fallback[o.tag]=o}for(n=0,r=arguments.length;n<r;n+=1)arguments[n].forEach(l);return t}function Ae(t){return this.extend(t)}Ae.prototype.extend=function(n){var r=[],l=[];if(n instanceof j)l.push(n);else if(Array.isArray(n))l=l.concat(n);else if(n&&(Array.isArray(n.implicit)||Array.isArray(n.explicit)))n.implicit&&(r=r.concat(n.implicit)),n.explicit&&(l=l.concat(n.explicit));else throw new P("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");r.forEach(function(i){if(!(i instanceof j))throw new P("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(i.loadKind&&i.loadKind!=="scalar")throw new P("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 P("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),l.forEach(function(i){if(!(i instanceof j))throw new P("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var o=Object.create(Ae.prototype);return o.implicit=(this.implicit||[]).concat(r),o.explicit=(this.explicit||[]).concat(l),o.compiledImplicit=Ze(o,"implicit"),o.compiledExplicit=Ze(o,"explicit"),o.compiledTypeMap=Cl(o.compiledImplicit,o.compiledExplicit),o};var Bl=Ae,Vl=new j("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return t!==null?t:""}}),Al=new j("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return t!==null?t:[]}}),$l=new j("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return t!==null?t:{}}}),vl=new Bl({explicit:[Vl,Al,$l]});function Sl(t){if(t===null)return!0;var n=t.length;return n===1&&t==="~"||n===4&&(t==="null"||t==="Null"||t==="NULL")}function Fl(){return null}function Ll(t){return t===null}var Tl=new j("tag:yaml.org,2002:null",{kind:"scalar",resolve:Sl,construct:Fl,predicate:Ll,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"});function Ml(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 Dl(t){return t==="true"||t==="True"||t==="TRUE"}function Il(t){return Object.prototype.toString.call(t)==="[object Boolean]"}var jl=new j("tag:yaml.org,2002:bool",{kind:"scalar",resolve:Ml,construct:Dl,predicate:Il,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 Ol(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function Rl(t){return 48<=t&&t<=55}function Ul(t){return 48<=t&&t<=57}function Pl(t){if(t===null)return!1;var n=t.length,r=0,l=!1,o;if(!n)return!1;if(o=t[r],(o==="-"||o==="+")&&(o=t[++r]),o==="0"){if(r+1===n)return!0;if(o=t[++r],o==="b"){for(r++;r<n;r++)if(o=t[r],o!=="_"){if(o!=="0"&&o!=="1")return!1;l=!0}return l&&o!=="_"}if(o==="x"){for(r++;r<n;r++)if(o=t[r],o!=="_"){if(!Ol(t.charCodeAt(r)))return!1;l=!0}return l&&o!=="_"}if(o==="o"){for(r++;r<n;r++)if(o=t[r],o!=="_"){if(!Rl(t.charCodeAt(r)))return!1;l=!0}return l&&o!=="_"}}if(o==="_")return!1;for(;r<n;r++)if(o=t[r],o!=="_"){if(!Ul(t.charCodeAt(r)))return!1;l=!0}return!(!l||o==="_")}function zl(t){var n=t,r=1,l;if(n.indexOf("_")!==-1&&(n=n.replace(/_/g,"")),l=n[0],(l==="-"||l==="+")&&(l==="-"&&(r=-1),n=n.slice(1),l=n[0]),n==="0")return 0;if(l==="0"){if(n[1]==="b")return r*parseInt(n.slice(2),2);if(n[1]==="x")return r*parseInt(n.slice(2),16);if(n[1]==="o")return r*parseInt(n.slice(2),8)}return r*parseInt(n,10)}function ql(t){return Object.prototype.toString.call(t)==="[object Number]"&&t%1===0&&!T.isNegativeZero(t)}var Hl=new j("tag:yaml.org,2002:int",{kind:"scalar",resolve:Pl,construct:zl,predicate:ql,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"]}}),Yl=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Kl(t){return!(t===null||!Yl.test(t)||t[t.length-1]==="_")}function Wl(t){var n,r;return n=t.replace(/_/g,"").toLowerCase(),r=n[0]==="-"?-1:1,"+-".indexOf(n[0])>=0&&(n=n.slice(1)),n===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:n===".nan"?NaN:r*parseFloat(n,10)}var Gl=/^[-+]?[0-9]+e/;function Zl(t,n){var r;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(T.isNegativeZero(t))return"-0.0";return r=t.toString(10),Gl.test(r)?r.replace("e",".e"):r}function Ql(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||T.isNegativeZero(t))}var Xl=new j("tag:yaml.org,2002:float",{kind:"scalar",resolve:Kl,construct:Wl,predicate:Ql,represent:Zl,defaultStyle:"lowercase"}),Jl=vl.extend({implicit:[Tl,jl,Hl,Xl]}),ea=Jl,Qe=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Xe=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 ta(t){return t===null?!1:Qe.exec(t)!==null||Xe.exec(t)!==null}function na(t){var n,r,l,o,i,a,s,d=0,c=null,f,m,p;if(n=Qe.exec(t),n===null&&(n=Xe.exec(t)),n===null)throw new Error("Date resolve error");if(r=+n[1],l=+n[2]-1,o=+n[3],!n[4])return new Date(Date.UTC(r,l,o));if(i=+n[4],a=+n[5],s=+n[6],n[7]){for(d=n[7].slice(0,3);d.length<3;)d+="0";d=+d}return n[9]&&(f=+n[10],m=+(n[11]||0),c=(f*60+m)*6e4,n[9]==="-"&&(c=-c)),p=new Date(Date.UTC(r,l,o,i,a,s,d)),c&&p.setTime(p.getTime()-c),p}function ra(t){return t.toISOString()}var oa=new j("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:ta,construct:na,instanceOf:Date,represent:ra});function la(t){return t==="<<"||t===null}var aa=new j("tag:yaml.org,2002:merge",{kind:"scalar",resolve:la}),$e=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
40
- \r`;function ia(t){if(t===null)return!1;var n,r,l=0,o=t.length,i=$e;for(r=0;r<o;r++)if(n=i.indexOf(t.charAt(r)),!(n>64)){if(n<0)return!1;l+=6}return l%8===0}function sa(t){var n,r,l=t.replace(/[\r\n=]/g,""),o=l.length,i=$e,a=0,s=[];for(n=0;n<o;n++)n%4===0&&n&&(s.push(a>>16&255),s.push(a>>8&255),s.push(a&255)),a=a<<6|i.indexOf(l.charAt(n));return r=o%4*6,r===0?(s.push(a>>16&255),s.push(a>>8&255),s.push(a&255)):r===18?(s.push(a>>10&255),s.push(a>>2&255)):r===12&&s.push(a>>4&255),new Uint8Array(s)}function ca(t){var n="",r=0,l,o,i=t.length,a=$e;for(l=0;l<i;l++)l%3===0&&l&&(n+=a[r>>18&63],n+=a[r>>12&63],n+=a[r>>6&63],n+=a[r&63]),r=(r<<8)+t[l];return o=i%3,o===0?(n+=a[r>>18&63],n+=a[r>>12&63],n+=a[r>>6&63],n+=a[r&63]):o===2?(n+=a[r>>10&63],n+=a[r>>4&63],n+=a[r<<2&63],n+=a[64]):o===1&&(n+=a[r>>2&63],n+=a[r<<4&63],n+=a[64],n+=a[64]),n}function da(t){return Object.prototype.toString.call(t)==="[object Uint8Array]"}var ma=new j("tag:yaml.org,2002:binary",{kind:"scalar",resolve:ia,construct:sa,predicate:da,represent:ca}),pa=Object.prototype.hasOwnProperty,fa=Object.prototype.toString;function ua(t){if(t===null)return!0;var n=[],r,l,o,i,a,s=t;for(r=0,l=s.length;r<l;r+=1){if(o=s[r],a=!1,fa.call(o)!=="[object Object]")return!1;for(i in o)if(pa.call(o,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 ga(t){return t!==null?t:[]}var ha=new j("tag:yaml.org,2002:omap",{kind:"sequence",resolve:ua,construct:ga}),ya=Object.prototype.toString;function xa(t){if(t===null)return!0;var n,r,l,o,i,a=t;for(i=new Array(a.length),n=0,r=a.length;n<r;n+=1){if(l=a[n],ya.call(l)!=="[object Object]"||(o=Object.keys(l),o.length!==1))return!1;i[n]=[o[0],l[o[0]]]}return!0}function ka(t){if(t===null)return[];var n,r,l,o,i,a=t;for(i=new Array(a.length),n=0,r=a.length;n<r;n+=1)l=a[n],o=Object.keys(l),i[n]=[o[0],l[o[0]]];return i}var ba=new j("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:xa,construct:ka}),wa=Object.prototype.hasOwnProperty;function _a(t){if(t===null)return!0;var n,r=t;for(n in r)if(wa.call(r,n)&&r[n]!==null)return!1;return!0}function Ea(t){return t!==null?t:{}}var Na=new j("tag:yaml.org,2002:set",{kind:"mapping",resolve:_a,construct:Ea}),Je=ea.extend({implicit:[oa,aa],explicit:[ma,ha,ba,Na]}),X=Object.prototype.hasOwnProperty,be=1,et=2,tt=3,we=4,ve=1,Ca=2,nt=3,Ba=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Va=/[\x85\u2028\u2029]/,Aa=/[,\[\]\{\}]/,rt=/^(?:!|!!|![a-z\-]+!)$/i,ot=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function lt(t){return Object.prototype.toString.call(t)}function W(t){return t===10||t===13}function ne(t){return t===9||t===32}function z(t){return t===9||t===32||t===10||t===13}function ie(t){return t===44||t===91||t===93||t===123||t===125}function $a(t){var n;return 48<=t&&t<=57?t-48:(n=t|32,97<=n&&n<=102?n-97+10:-1)}function va(t){return t===120?2:t===117?4:t===85?8:0}function Sa(t){return 48<=t&&t<=57?t-48:-1}function at(t){return t===48?"\0":t===97?"\x07":t===98?"\b":t===116||t===9?" ":t===110?`
41
- `: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 Fa(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}for(var it=new Array(256),st=new Array(256),se=0;se<256;se++)it[se]=at(se)?1:0,st[se]=at(se);function La(t,n){this.input=t,this.filename=n.filename||null,this.schema=n.schema||Je,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 ct(t,n){var r={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return r.snippet=bl(r),new P(n,r)}function N(t,n){throw ct(t,n)}function _e(t,n){t.onWarning&&t.onWarning.call(null,ct(t,n))}var dt={YAML:function(n,r,l){var o,i,a;n.version!==null&&N(n,"duplication of %YAML directive"),l.length!==1&&N(n,"YAML directive accepts exactly one argument"),o=/^([0-9]+)\.([0-9]+)$/.exec(l[0]),o===null&&N(n,"ill-formed argument of the YAML directive"),i=parseInt(o[1],10),a=parseInt(o[2],10),i!==1&&N(n,"unacceptable YAML version of the document"),n.version=l[0],n.checkLineBreaks=a<2,a!==1&&a!==2&&_e(n,"unsupported YAML version of the document")},TAG:function(n,r,l){var o,i;l.length!==2&&N(n,"TAG directive accepts exactly two arguments"),o=l[0],i=l[1],rt.test(o)||N(n,"ill-formed tag handle (first argument) of the TAG directive"),X.call(n.tagMap,o)&&N(n,'there is a previously declared suffix for "'+o+'" tag handle'),ot.test(i)||N(n,"ill-formed tag prefix (second argument) of the TAG directive");try{i=decodeURIComponent(i)}catch{N(n,"tag prefix is malformed: "+i)}n.tagMap[o]=i}};function J(t,n,r,l){var o,i,a,s;if(n<r){if(s=t.input.slice(n,r),l)for(o=0,i=s.length;o<i;o+=1)a=s.charCodeAt(o),a===9||32<=a&&a<=1114111||N(t,"expected valid JSON character");else Ba.test(s)&&N(t,"the stream contains non-printable characters");t.result+=s}}function mt(t,n,r,l){var o,i,a,s;for(T.isObject(r)||N(t,"cannot merge mappings; the provided source object is unacceptable"),o=Object.keys(r),a=0,s=o.length;a<s;a+=1)i=o[a],X.call(n,i)||(n[i]=r[i],l[i]=!0)}function ce(t,n,r,l,o,i,a,s,d){var c,f;if(Array.isArray(o))for(o=Array.prototype.slice.call(o),c=0,f=o.length;c<f;c+=1)Array.isArray(o[c])&&N(t,"nested arrays are not supported inside keys"),typeof o=="object"&&lt(o[c])==="[object Object]"&&(o[c]="[object Object]");if(typeof o=="object"&&lt(o)==="[object Object]"&&(o="[object Object]"),o=String(o),n===null&&(n={}),l==="tag:yaml.org,2002:merge")if(Array.isArray(i))for(c=0,f=i.length;c<f;c+=1)mt(t,n,i[c],r);else mt(t,n,i,r);else!t.json&&!X.call(r,o)&&X.call(n,o)&&(t.line=a||t.line,t.lineStart=s||t.lineStart,t.position=d||t.position,N(t,"duplicated mapping key")),o==="__proto__"?Object.defineProperty(n,o,{configurable:!0,enumerable:!0,writable:!0,value:i}):n[o]=i,delete r[o];return n}function Se(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++):N(t,"a line break is expected"),t.line+=1,t.lineStart=t.position,t.firstTabInLine=-1}function F(t,n,r){for(var l=0,o=t.input.charCodeAt(t.position);o!==0;){for(;ne(o);)o===9&&t.firstTabInLine===-1&&(t.firstTabInLine=t.position),o=t.input.charCodeAt(++t.position);if(n&&o===35)do o=t.input.charCodeAt(++t.position);while(o!==10&&o!==13&&o!==0);if(W(o))for(Se(t),o=t.input.charCodeAt(t.position),l++,t.lineIndent=0;o===32;)t.lineIndent++,o=t.input.charCodeAt(++t.position);else break}return r!==-1&&l!==0&&t.lineIndent<r&&_e(t,"deficient indentation"),l}function Ee(t){var n=t.position,r;return r=t.input.charCodeAt(n),!!((r===45||r===46)&&r===t.input.charCodeAt(n+1)&&r===t.input.charCodeAt(n+2)&&(n+=3,r=t.input.charCodeAt(n),r===0||z(r)))}function Fe(t,n){n===1?t.result+=" ":n>1&&(t.result+=T.repeat(`
42
- `,n-1))}function Ta(t,n,r){var l,o,i,a,s,d,c,f,m=t.kind,p=t.result,g;if(g=t.input.charCodeAt(t.position),z(g)||ie(g)||g===35||g===38||g===42||g===33||g===124||g===62||g===39||g===34||g===37||g===64||g===96||(g===63||g===45)&&(o=t.input.charCodeAt(t.position+1),z(o)||r&&ie(o)))return!1;for(t.kind="scalar",t.result="",i=a=t.position,s=!1;g!==0;){if(g===58){if(o=t.input.charCodeAt(t.position+1),z(o)||r&&ie(o))break}else if(g===35){if(l=t.input.charCodeAt(t.position-1),z(l))break}else{if(t.position===t.lineStart&&Ee(t)||r&&ie(g))break;if(W(g))if(d=t.line,c=t.lineStart,f=t.lineIndent,F(t,!1,-1),t.lineIndent>=n){s=!0,g=t.input.charCodeAt(t.position);continue}else{t.position=a,t.line=d,t.lineStart=c,t.lineIndent=f;break}}s&&(J(t,i,a,!1),Fe(t,t.line-d),i=a=t.position,s=!1),ne(g)||(a=t.position+1),g=t.input.charCodeAt(++t.position)}return J(t,i,a,!1),t.result?!0:(t.kind=m,t.result=p,!1)}function Ma(t,n){var r,l,o;if(r=t.input.charCodeAt(t.position),r!==39)return!1;for(t.kind="scalar",t.result="",t.position++,l=o=t.position;(r=t.input.charCodeAt(t.position))!==0;)if(r===39)if(J(t,l,t.position,!0),r=t.input.charCodeAt(++t.position),r===39)l=t.position,t.position++,o=t.position;else return!0;else W(r)?(J(t,l,o,!0),Fe(t,F(t,!1,n)),l=o=t.position):t.position===t.lineStart&&Ee(t)?N(t,"unexpected end of the document within a single quoted scalar"):(t.position++,o=t.position);N(t,"unexpected end of the stream within a single quoted scalar")}function Da(t,n){var r,l,o,i,a,s;if(s=t.input.charCodeAt(t.position),s!==34)return!1;for(t.kind="scalar",t.result="",t.position++,r=l=t.position;(s=t.input.charCodeAt(t.position))!==0;){if(s===34)return J(t,r,t.position,!0),t.position++,!0;if(s===92){if(J(t,r,t.position,!0),s=t.input.charCodeAt(++t.position),W(s))F(t,!1,n);else if(s<256&&it[s])t.result+=st[s],t.position++;else if((a=va(s))>0){for(o=a,i=0;o>0;o--)s=t.input.charCodeAt(++t.position),(a=$a(s))>=0?i=(i<<4)+a:N(t,"expected hexadecimal character");t.result+=Fa(i),t.position++}else N(t,"unknown escape sequence");r=l=t.position}else W(s)?(J(t,r,l,!0),Fe(t,F(t,!1,n)),r=l=t.position):t.position===t.lineStart&&Ee(t)?N(t,"unexpected end of the document within a double quoted scalar"):(t.position++,l=t.position)}N(t,"unexpected end of the stream within a double quoted scalar")}function Ia(t,n){var r=!0,l,o,i,a=t.tag,s,d=t.anchor,c,f,m,p,g,u=Object.create(null),h,x,E,y;if(y=t.input.charCodeAt(t.position),y===91)f=93,g=!1,s=[];else if(y===123)f=125,g=!0,s={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=s),y=t.input.charCodeAt(++t.position);y!==0;){if(F(t,!0,n),y=t.input.charCodeAt(t.position),y===f)return t.position++,t.tag=a,t.anchor=d,t.kind=g?"mapping":"sequence",t.result=s,!0;r?y===44&&N(t,"expected the node content, but found ','"):N(t,"missed comma between flow collection entries"),x=h=E=null,m=p=!1,y===63&&(c=t.input.charCodeAt(t.position+1),z(c)&&(m=p=!0,t.position++,F(t,!0,n))),l=t.line,o=t.lineStart,i=t.position,de(t,n,be,!1,!0),x=t.tag,h=t.result,F(t,!0,n),y=t.input.charCodeAt(t.position),(p||t.line===l)&&y===58&&(m=!0,y=t.input.charCodeAt(++t.position),F(t,!0,n),de(t,n,be,!1,!0),E=t.result),g?ce(t,s,u,x,h,E,l,o,i):m?s.push(ce(t,null,u,x,h,E,l,o,i)):s.push(h),F(t,!0,n),y=t.input.charCodeAt(t.position),y===44?(r=!0,y=t.input.charCodeAt(++t.position)):r=!1}N(t,"unexpected end of the stream within a flow collection")}function ja(t,n){var r,l,o=ve,i=!1,a=!1,s=n,d=0,c=!1,f,m;if(m=t.input.charCodeAt(t.position),m===124)l=!1;else if(m===62)l=!0;else return!1;for(t.kind="scalar",t.result="";m!==0;)if(m=t.input.charCodeAt(++t.position),m===43||m===45)ve===o?o=m===43?nt:Ca:N(t,"repeat of a chomping mode identifier");else if((f=Sa(m))>=0)f===0?N(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):a?N(t,"repeat of an indentation width identifier"):(s=n+f-1,a=!0);else break;if(ne(m)){do m=t.input.charCodeAt(++t.position);while(ne(m));if(m===35)do m=t.input.charCodeAt(++t.position);while(!W(m)&&m!==0)}for(;m!==0;){for(Se(t),t.lineIndent=0,m=t.input.charCodeAt(t.position);(!a||t.lineIndent<s)&&m===32;)t.lineIndent++,m=t.input.charCodeAt(++t.position);if(!a&&t.lineIndent>s&&(s=t.lineIndent),W(m)){d++;continue}if(t.lineIndent<s){o===nt?t.result+=T.repeat(`
43
- `,i?1+d:d):o===ve&&i&&(t.result+=`
44
- `);break}for(l?ne(m)?(c=!0,t.result+=T.repeat(`
45
- `,i?1+d:d)):c?(c=!1,t.result+=T.repeat(`
46
- `,d+1)):d===0?i&&(t.result+=" "):t.result+=T.repeat(`
47
- `,d):t.result+=T.repeat(`
48
- `,i?1+d:d),i=!0,a=!0,d=0,r=t.position;!W(m)&&m!==0;)m=t.input.charCodeAt(++t.position);J(t,r,t.position,!1)}return!0}function pt(t,n){var r,l=t.tag,o=t.anchor,i=[],a,s=!1,d;if(t.firstTabInLine!==-1)return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=i),d=t.input.charCodeAt(t.position);d!==0&&(t.firstTabInLine!==-1&&(t.position=t.firstTabInLine,N(t,"tab characters must not be used in indentation")),!(d!==45||(a=t.input.charCodeAt(t.position+1),!z(a))));){if(s=!0,t.position++,F(t,!0,-1)&&t.lineIndent<=n){i.push(null),d=t.input.charCodeAt(t.position);continue}if(r=t.line,de(t,n,tt,!1,!0),i.push(t.result),F(t,!0,-1),d=t.input.charCodeAt(t.position),(t.line===r||t.lineIndent>n)&&d!==0)N(t,"bad indentation of a sequence entry");else if(t.lineIndent<n)break}return s?(t.tag=l,t.anchor=o,t.kind="sequence",t.result=i,!0):!1}function Oa(t,n,r){var l,o,i,a,s,d,c=t.tag,f=t.anchor,m={},p=Object.create(null),g=null,u=null,h=null,x=!1,E=!1,y;if(t.firstTabInLine!==-1)return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=m),y=t.input.charCodeAt(t.position);y!==0;){if(!x&&t.firstTabInLine!==-1&&(t.position=t.firstTabInLine,N(t,"tab characters must not be used in indentation")),l=t.input.charCodeAt(t.position+1),i=t.line,(y===63||y===58)&&z(l))y===63?(x&&(ce(t,m,p,g,u,null,a,s,d),g=u=h=null),E=!0,x=!0,o=!0):x?(x=!1,o=!0):N(t,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),t.position+=1,y=l;else{if(a=t.line,s=t.lineStart,d=t.position,!de(t,r,et,!1,!0))break;if(t.line===i){for(y=t.input.charCodeAt(t.position);ne(y);)y=t.input.charCodeAt(++t.position);if(y===58)y=t.input.charCodeAt(++t.position),z(y)||N(t,"a whitespace character is expected after the key-value separator within a block mapping"),x&&(ce(t,m,p,g,u,null,a,s,d),g=u=h=null),E=!0,x=!1,o=!1,g=t.tag,u=t.result;else if(E)N(t,"can not read an implicit mapping pair; a colon is missed");else return t.tag=c,t.anchor=f,!0}else if(E)N(t,"can not read a block mapping entry; a multiline key may not be an implicit key");else return t.tag=c,t.anchor=f,!0}if((t.line===i||t.lineIndent>n)&&(x&&(a=t.line,s=t.lineStart,d=t.position),de(t,n,we,!0,o)&&(x?u=t.result:h=t.result),x||(ce(t,m,p,g,u,h,a,s,d),g=u=h=null),F(t,!0,-1),y=t.input.charCodeAt(t.position)),(t.line===i||t.lineIndent>n)&&y!==0)N(t,"bad indentation of a mapping entry");else if(t.lineIndent<n)break}return x&&ce(t,m,p,g,u,null,a,s,d),E&&(t.tag=c,t.anchor=f,t.kind="mapping",t.result=m),E}function Ra(t){var n,r=!1,l=!1,o,i,a;if(a=t.input.charCodeAt(t.position),a!==33)return!1;if(t.tag!==null&&N(t,"duplication of a tag property"),a=t.input.charCodeAt(++t.position),a===60?(r=!0,a=t.input.charCodeAt(++t.position)):a===33?(l=!0,o="!!",a=t.input.charCodeAt(++t.position)):o="!",n=t.position,r){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)):N(t,"unexpected end of the stream within a verbatim tag")}else{for(;a!==0&&!z(a);)a===33&&(l?N(t,"tag suffix cannot contain exclamation marks"):(o=t.input.slice(n-1,t.position+1),rt.test(o)||N(t,"named tag handle cannot contain such characters"),l=!0,n=t.position+1)),a=t.input.charCodeAt(++t.position);i=t.input.slice(n,t.position),Aa.test(i)&&N(t,"tag suffix cannot contain flow indicator characters")}i&&!ot.test(i)&&N(t,"tag name cannot contain such characters: "+i);try{i=decodeURIComponent(i)}catch{N(t,"tag name is malformed: "+i)}return r?t.tag=i:X.call(t.tagMap,o)?t.tag=t.tagMap[o]+i:o==="!"?t.tag="!"+i:o==="!!"?t.tag="tag:yaml.org,2002:"+i:N(t,'undeclared tag handle "'+o+'"'),!0}function Ua(t){var n,r;if(r=t.input.charCodeAt(t.position),r!==38)return!1;for(t.anchor!==null&&N(t,"duplication of an anchor property"),r=t.input.charCodeAt(++t.position),n=t.position;r!==0&&!z(r)&&!ie(r);)r=t.input.charCodeAt(++t.position);return t.position===n&&N(t,"name of an anchor node must contain at least one character"),t.anchor=t.input.slice(n,t.position),!0}function Pa(t){var n,r,l;if(l=t.input.charCodeAt(t.position),l!==42)return!1;for(l=t.input.charCodeAt(++t.position),n=t.position;l!==0&&!z(l)&&!ie(l);)l=t.input.charCodeAt(++t.position);return t.position===n&&N(t,"name of an alias node must contain at least one character"),r=t.input.slice(n,t.position),X.call(t.anchorMap,r)||N(t,'unidentified alias "'+r+'"'),t.result=t.anchorMap[r],F(t,!0,-1),!0}function de(t,n,r,l,o){var i,a,s,d=1,c=!1,f=!1,m,p,g,u,h,x;if(t.listener!==null&&t.listener("open",t),t.tag=null,t.anchor=null,t.kind=null,t.result=null,i=a=s=we===r||tt===r,l&&F(t,!0,-1)&&(c=!0,t.lineIndent>n?d=1:t.lineIndent===n?d=0:t.lineIndent<n&&(d=-1)),d===1)for(;Ra(t)||Ua(t);)F(t,!0,-1)?(c=!0,s=i,t.lineIndent>n?d=1:t.lineIndent===n?d=0:t.lineIndent<n&&(d=-1)):s=!1;if(s&&(s=c||o),(d===1||we===r)&&(be===r||et===r?h=n:h=n+1,x=t.position-t.lineStart,d===1?s&&(pt(t,x)||Oa(t,x,h))||Ia(t,h)?f=!0:(a&&ja(t,h)||Ma(t,h)||Da(t,h)?f=!0:Pa(t)?(f=!0,(t.tag!==null||t.anchor!==null)&&N(t,"alias node should not have any properties")):Ta(t,h,be===r)&&(f=!0,t.tag===null&&(t.tag="?")),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):d===0&&(f=s&&pt(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"&&N(t,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+t.kind+'"'),m=0,p=t.implicitTypes.length;m<p;m+=1)if(u=t.implicitTypes[m],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(X.call(t.typeMap[t.kind||"fallback"],t.tag))u=t.typeMap[t.kind||"fallback"][t.tag];else for(u=null,g=t.typeMap.multi[t.kind||"fallback"],m=0,p=g.length;m<p;m+=1)if(t.tag.slice(0,g[m].tag.length)===g[m].tag){u=g[m];break}u||N(t,"unknown tag !<"+t.tag+">"),t.result!==null&&u.kind!==t.kind&&N(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)):N(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||f}function za(t){var n=t.position,r,l,o,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&&(F(t,!0,-1),a=t.input.charCodeAt(t.position),!(t.lineIndent>0||a!==37));){for(i=!0,a=t.input.charCodeAt(++t.position),r=t.position;a!==0&&!z(a);)a=t.input.charCodeAt(++t.position);for(l=t.input.slice(r,t.position),o=[],l.length<1&&N(t,"directive name must not be less than one character in length");a!==0;){for(;ne(a);)a=t.input.charCodeAt(++t.position);if(a===35){do a=t.input.charCodeAt(++t.position);while(a!==0&&!W(a));break}if(W(a))break;for(r=t.position;a!==0&&!z(a);)a=t.input.charCodeAt(++t.position);o.push(t.input.slice(r,t.position))}a!==0&&Se(t),X.call(dt,l)?dt[l](t,l,o):_e(t,'unknown document directive "'+l+'"')}if(F(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,F(t,!0,-1)):i&&N(t,"directives end mark is expected"),de(t,t.lineIndent-1,we,!1,!0),F(t,!0,-1),t.checkLineBreaks&&Va.test(t.input.slice(n,t.position))&&_e(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&Ee(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,F(t,!0,-1));return}if(t.position<t.length-1)N(t,"end of the stream or a document separator is expected");else return}function ft(t,n){t=String(t),n=n||{},t.length!==0&&(t.charCodeAt(t.length-1)!==10&&t.charCodeAt(t.length-1)!==13&&(t+=`
49
- `),t.charCodeAt(0)===65279&&(t=t.slice(1)));var r=new La(t,n),l=t.indexOf("\0");for(l!==-1&&(r.position=l,N(r,"null byte is not allowed in input")),r.input+="\0";r.input.charCodeAt(r.position)===32;)r.lineIndent+=1,r.position+=1;for(;r.position<r.length-1;)za(r);return r.documents}function qa(t,n,r){n!==null&&typeof n=="object"&&typeof r>"u"&&(r=n,n=null);var l=ft(t,r);if(typeof n!="function")return l;for(var o=0,i=l.length;o<i;o+=1)n(l[o])}function Ha(t,n){var r=ft(t,n);if(r.length!==0){if(r.length===1)return r[0];throw new P("expected a single document in the stream, but found more")}}var Ya=qa,Ka=Ha,Wa={loadAll:Ya,load:Ka},ut=Object.prototype.toString,gt=Object.prototype.hasOwnProperty,Le=65279,Ga=9,ge=10,Za=13,Qa=32,Xa=33,Ja=34,Te=35,ei=37,ti=38,ni=39,ri=42,ht=44,oi=45,Ne=58,li=61,ai=62,ii=63,si=64,yt=91,xt=93,ci=96,kt=123,di=124,bt=125,O={};O[0]="\\0",O[7]="\\a",O[8]="\\b",O[9]="\\t",O[10]="\\n",O[11]="\\v",O[12]="\\f",O[13]="\\r",O[27]="\\e",O[34]='\\"',O[92]="\\\\",O[133]="\\N",O[160]="\\_",O[8232]="\\L",O[8233]="\\P";var mi=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],pi=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;function fi(t,n){var r,l,o,i,a,s,d;if(n===null)return{};for(r={},l=Object.keys(n),o=0,i=l.length;o<i;o+=1)a=l[o],s=String(n[a]),a.slice(0,2)==="!!"&&(a="tag:yaml.org,2002:"+a.slice(2)),d=t.compiledTypeMap.fallback[a],d&&gt.call(d.styleAliases,s)&&(s=d.styleAliases[s]),r[a]=s;return r}function ui(t){var n,r,l;if(n=t.toString(16).toUpperCase(),t<=255)r="x",l=2;else if(t<=65535)r="u",l=4;else if(t<=4294967295)r="U",l=8;else throw new P("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+r+T.repeat("0",l-n.length)+n}var gi=1,he=2;function hi(t){this.schema=t.schema||Je,this.indent=Math.max(1,t.indent||2),this.noArrayIndent=t.noArrayIndent||!1,this.skipInvalid=t.skipInvalid||!1,this.flowLevel=T.isNothing(t.flowLevel)?-1:t.flowLevel,this.styleMap=fi(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==='"'?he:gi,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 wt(t,n){for(var r=T.repeat(" ",n),l=0,o=-1,i="",a,s=t.length;l<s;)o=t.indexOf(`
50
- `,l),o===-1?(a=t.slice(l),l=s):(a=t.slice(l,o+1),l=o+1),a.length&&a!==`
51
- `&&(i+=r),i+=a;return i}function Me(t,n){return`
52
- `+T.repeat(" ",t.indent*n)}function yi(t,n){var r,l,o;for(r=0,l=t.implicitTypes.length;r<l;r+=1)if(o=t.implicitTypes[r],o.resolve(n))return!0;return!1}function Ce(t){return t===Qa||t===Ga}function ye(t){return 32<=t&&t<=126||161<=t&&t<=55295&&t!==8232&&t!==8233||57344<=t&&t<=65533&&t!==Le||65536<=t&&t<=1114111}function _t(t){return ye(t)&&t!==Le&&t!==Za&&t!==ge}function Et(t,n,r){var l=_t(t),o=l&&!Ce(t);return(r?l:l&&t!==ht&&t!==yt&&t!==xt&&t!==kt&&t!==bt)&&t!==Te&&!(n===Ne&&!o)||_t(n)&&!Ce(n)&&t===Te||n===Ne&&o}function xi(t){return ye(t)&&t!==Le&&!Ce(t)&&t!==oi&&t!==ii&&t!==Ne&&t!==ht&&t!==yt&&t!==xt&&t!==kt&&t!==bt&&t!==Te&&t!==ti&&t!==ri&&t!==Xa&&t!==di&&t!==li&&t!==ai&&t!==ni&&t!==Ja&&t!==ei&&t!==si&&t!==ci}function ki(t){return!Ce(t)&&t!==Ne}function xe(t,n){var r=t.charCodeAt(n),l;return r>=55296&&r<=56319&&n+1<t.length&&(l=t.charCodeAt(n+1),l>=56320&&l<=57343)?(r-55296)*1024+l-56320+65536:r}function Nt(t){var n=/^\n* /;return n.test(t)}var Ct=1,De=2,Bt=3,Vt=4,me=5;function bi(t,n,r,l,o,i,a,s){var d,c=0,f=null,m=!1,p=!1,g=l!==-1,u=-1,h=xi(xe(t,0))&&ki(xe(t,t.length-1));if(n||a)for(d=0;d<t.length;c>=65536?d+=2:d++){if(c=xe(t,d),!ye(c))return me;h=h&&Et(c,f,s),f=c}else{for(d=0;d<t.length;c>=65536?d+=2:d++){if(c=xe(t,d),c===ge)m=!0,g&&(p=p||d-u-1>l&&t[u+1]!==" ",u=d);else if(!ye(c))return me;h=h&&Et(c,f,s),f=c}p=p||g&&d-u-1>l&&t[u+1]!==" "}return!m&&!p?h&&!a&&!o(t)?Ct:i===he?me:De:r>9&&Nt(t)?me:a?i===he?me:De:p?Vt:Bt}function wi(t,n,r,l,o){t.dump=(function(){if(n.length===0)return t.quotingType===he?'""':"''";if(!t.noCompatMode&&(mi.indexOf(n)!==-1||pi.test(n)))return t.quotingType===he?'"'+n+'"':"'"+n+"'";var i=t.indent*Math.max(1,r),a=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-i),s=l||t.flowLevel>-1&&r>=t.flowLevel;function d(c){return yi(t,c)}switch(bi(n,s,t.indent,a,d,t.quotingType,t.forceQuotes&&!l,o)){case Ct:return n;case De:return"'"+n.replace(/'/g,"''")+"'";case Bt:return"|"+At(n,t.indent)+$t(wt(n,i));case Vt:return">"+At(n,t.indent)+$t(wt(_i(n,a),i));case me:return'"'+Ei(n)+'"';default:throw new P("impossible error: invalid scalar style")}})()}function At(t,n){var r=Nt(t)?String(n):"",l=t[t.length-1]===`
53
- `,o=l&&(t[t.length-2]===`
45
+ `+t.mark.snippet),r+" "+o):r}function _e(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||""}_e.prototype=Object.create(Error.prototype),_e.prototype.constructor=_e,_e.prototype.toString=function(n){return this.name+": "+it(this,n)};var Q=_e;function je(t,n,o,r,l){var i="",a="",d=Math.floor(l/2)-1;return r-n>d&&(i=" ... ",n=r-d+i.length),o-r>d&&(a=" ...",o=r+d-a.length),{str:i+t.slice(n,o).replace(/\t/g,"→")+a,pos:r-n+i.length}}function Oe(t,n){return U.repeat(" ",n-t.length)+t}function jl(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 d="",c,s,u=Math.min(t.line+n.linesAfter,l.length).toString().length,p=n.maxLength-(n.indent+u+3);for(c=1;c<=n.linesBefore&&!(a-c<0);c++)s=je(t.buffer,r[a-c],l[a-c],t.position-(r[a]-r[a-c]),p),d=U.repeat(" ",n.indent)+Oe((t.line-c+1).toString(),u)+" | "+s.str+`
46
+ `+d;for(s=je(t.buffer,r[a],l[a],t.position,p),d+=U.repeat(" ",n.indent)+Oe((t.line+1).toString(),u)+" | "+s.str+`
47
+ `,d+=U.repeat("-",n.indent+u+3+s.pos)+`^
48
+ `,c=1;c<=n.linesAfter&&!(a+c>=l.length);c++)s=je(t.buffer,r[a+c],l[a+c],t.position-(r[a]-r[a+c]),p),d+=U.repeat(" ",n.indent)+Oe((t.line+c+1).toString(),u)+" | "+s.str+`
49
+ `;return d.replace(/\n$/,"")}var Ol=jl,Pl=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],Rl=["scalar","sequence","mapping"];function zl(t){var n={};return t!==null&&Object.keys(t).forEach(function(o){t[o].forEach(function(r){n[String(r)]=o})}),n}function Ul(t,n){if(n=n||{},Object.keys(n).forEach(function(o){if(Pl.indexOf(o)===-1)throw new Q('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=zl(n.styleAliases||null),Rl.indexOf(this.kind)===-1)throw new Q('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}var W=Ul;function st(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 ql(){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 Pe(t){return this.extend(t)}Pe.prototype.extend=function(n){var o=[],r=[];if(n instanceof W)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 Q("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");o.forEach(function(i){if(!(i instanceof W))throw new Q("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(i.loadKind&&i.loadKind!=="scalar")throw new Q("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 Q("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 W))throw new Q("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var l=Object.create(Pe.prototype);return l.implicit=(this.implicit||[]).concat(o),l.explicit=(this.explicit||[]).concat(r),l.compiledImplicit=st(l,"implicit"),l.compiledExplicit=st(l,"explicit"),l.compiledTypeMap=ql(l.compiledImplicit,l.compiledExplicit),l};var Hl=Pe,Yl=new W("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return t!==null?t:""}}),Kl=new W("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return t!==null?t:[]}}),Wl=new W("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return t!==null?t:{}}}),Gl=new Hl({explicit:[Yl,Kl,Wl]});function Zl(t){if(t===null)return!0;var n=t.length;return n===1&&t==="~"||n===4&&(t==="null"||t==="Null"||t==="NULL")}function Ql(){return null}function Xl(t){return t===null}var Jl=new W("tag:yaml.org,2002:null",{kind:"scalar",resolve:Zl,construct:Ql,predicate:Xl,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"});function ea(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 ta(t){return t==="true"||t==="True"||t==="TRUE"}function na(t){return Object.prototype.toString.call(t)==="[object Boolean]"}var oa=new W("tag:yaml.org,2002:bool",{kind:"scalar",resolve:ea,construct:ta,predicate:na,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 ra(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function la(t){return 48<=t&&t<=55}function aa(t){return 48<=t&&t<=57}function ia(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(!ra(t.charCodeAt(o)))return!1;r=!0}return r&&l!=="_"}if(l==="o"){for(o++;o<n;o++)if(l=t[o],l!=="_"){if(!la(t.charCodeAt(o)))return!1;r=!0}return r&&l!=="_"}}if(l==="_")return!1;for(;o<n;o++)if(l=t[o],l!=="_"){if(!aa(t.charCodeAt(o)))return!1;r=!0}return!(!r||l==="_")}function sa(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 ca(t){return Object.prototype.toString.call(t)==="[object Number]"&&t%1===0&&!U.isNegativeZero(t)}var da=new W("tag:yaml.org,2002:int",{kind:"scalar",resolve:ia,construct:sa,predicate:ca,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 ua(t){return!(t===null||!pa.test(t)||t[t.length-1]==="_")}function ma(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 fa=/^[-+]?[0-9]+e/;function ga(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(U.isNegativeZero(t))return"-0.0";return o=t.toString(10),fa.test(o)?o.replace("e",".e"):o}function ha(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||U.isNegativeZero(t))}var ya=new W("tag:yaml.org,2002:float",{kind:"scalar",resolve:ua,construct:ma,predicate:ha,represent:ga,defaultStyle:"lowercase"}),xa=Gl.extend({implicit:[Jl,oa,da,ya]}),ba=xa,ct=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),dt=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 ka(t){return t===null?!1:ct.exec(t)!==null||dt.exec(t)!==null}function wa(t){var n,o,r,l,i,a,d,c=0,s=null,u,p,m;if(n=ct.exec(t),n===null&&(n=dt.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],d=+n[6],n[7]){for(c=n[7].slice(0,3);c.length<3;)c+="0";c=+c}return n[9]&&(u=+n[10],p=+(n[11]||0),s=(u*60+p)*6e4,n[9]==="-"&&(s=-s)),m=new Date(Date.UTC(o,r,l,i,a,d,c)),s&&m.setTime(m.getTime()-s),m}function _a(t){return t.toISOString()}var Ea=new W("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:ka,construct:wa,instanceOf:Date,represent:_a});function Na(t){return t==="<<"||t===null}var Ca=new W("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Na}),Re=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
50
+ \r`;function Ba(t){if(t===null)return!1;var n,o,r=0,l=t.length,i=Re;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 Va(t){var n,o,r=t.replace(/[\r\n=]/g,""),l=r.length,i=Re,a=0,d=[];for(n=0;n<l;n++)n%4===0&&n&&(d.push(a>>16&255),d.push(a>>8&255),d.push(a&255)),a=a<<6|i.indexOf(r.charAt(n));return o=l%4*6,o===0?(d.push(a>>16&255),d.push(a>>8&255),d.push(a&255)):o===18?(d.push(a>>10&255),d.push(a>>2&255)):o===12&&d.push(a>>4&255),new Uint8Array(d)}function va(t){var n="",o=0,r,l,i=t.length,a=Re;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 Aa(t){return Object.prototype.toString.call(t)==="[object Uint8Array]"}var $a=new W("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Ba,construct:Va,predicate:Aa,represent:va}),Sa=Object.prototype.hasOwnProperty,La=Object.prototype.toString;function Fa(t){if(t===null)return!0;var n=[],o,r,l,i,a,d=t;for(o=0,r=d.length;o<r;o+=1){if(l=d[o],a=!1,La.call(l)!=="[object Object]")return!1;for(i in l)if(Sa.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 Ma(t){return t!==null?t:[]}var Ta=new W("tag:yaml.org,2002:omap",{kind:"sequence",resolve:Fa,construct:Ma}),Ia=Object.prototype.toString;function Da(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],Ia.call(r)!=="[object Object]"||(l=Object.keys(r),l.length!==1))return!1;i[n]=[l[0],r[l[0]]]}return!0}function ja(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 Oa=new W("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:Da,construct:ja}),Pa=Object.prototype.hasOwnProperty;function Ra(t){if(t===null)return!0;var n,o=t;for(n in o)if(Pa.call(o,n)&&o[n]!==null)return!1;return!0}function za(t){return t!==null?t:{}}var Ua=new W("tag:yaml.org,2002:set",{kind:"mapping",resolve:Ra,construct:za}),pt=ba.extend({implicit:[Ea,Ca],explicit:[$a,Ta,Oa,Ua]}),ie=Object.prototype.hasOwnProperty,Se=1,ut=2,mt=3,Le=4,ze=1,qa=2,ft=3,Ha=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Ya=/[\x85\u2028\u2029]/,Ka=/[,\[\]\{\}]/,gt=/^(?:!|!!|![a-z\-]+!)$/i,ht=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function yt(t){return Object.prototype.toString.call(t)}function ne(t){return t===10||t===13}function pe(t){return t===9||t===32}function X(t){return t===9||t===32||t===10||t===13}function he(t){return t===44||t===91||t===93||t===123||t===125}function Wa(t){var n;return 48<=t&&t<=57?t-48:(n=t|32,97<=n&&n<=102?n-97+10:-1)}function Ga(t){return t===120?2:t===117?4:t===85?8:0}function Za(t){return 48<=t&&t<=57?t-48:-1}function xt(t){return t===48?"\0":t===97?"\x07":t===98?"\b":t===116||t===9?" ":t===110?`
51
+ `: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 Qa(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}for(var bt=new Array(256),kt=new Array(256),ye=0;ye<256;ye++)bt[ye]=xt(ye)?1:0,kt[ye]=xt(ye);function Xa(t,n){this.input=t,this.filename=n.filename||null,this.schema=n.schema||pt,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 wt(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=Ol(o),new Q(n,o)}function S(t,n){throw wt(t,n)}function Fe(t,n){t.onWarning&&t.onWarning.call(null,wt(t,n))}var _t={YAML:function(n,o,r){var l,i,a;n.version!==null&&S(n,"duplication of %YAML directive"),r.length!==1&&S(n,"YAML directive accepts exactly one argument"),l=/^([0-9]+)\.([0-9]+)$/.exec(r[0]),l===null&&S(n,"ill-formed argument of the YAML directive"),i=parseInt(l[1],10),a=parseInt(l[2],10),i!==1&&S(n,"unacceptable YAML version of the document"),n.version=r[0],n.checkLineBreaks=a<2,a!==1&&a!==2&&Fe(n,"unsupported YAML version of the document")},TAG:function(n,o,r){var l,i;r.length!==2&&S(n,"TAG directive accepts exactly two arguments"),l=r[0],i=r[1],gt.test(l)||S(n,"ill-formed tag handle (first argument) of the TAG directive"),ie.call(n.tagMap,l)&&S(n,'there is a previously declared suffix for "'+l+'" tag handle'),ht.test(i)||S(n,"ill-formed tag prefix (second argument) of the TAG directive");try{i=decodeURIComponent(i)}catch{S(n,"tag prefix is malformed: "+i)}n.tagMap[l]=i}};function se(t,n,o,r){var l,i,a,d;if(n<o){if(d=t.input.slice(n,o),r)for(l=0,i=d.length;l<i;l+=1)a=d.charCodeAt(l),a===9||32<=a&&a<=1114111||S(t,"expected valid JSON character");else Ha.test(d)&&S(t,"the stream contains non-printable characters");t.result+=d}}function Et(t,n,o,r){var l,i,a,d;for(U.isObject(o)||S(t,"cannot merge mappings; the provided source object is unacceptable"),l=Object.keys(o),a=0,d=l.length;a<d;a+=1)i=l[a],ie.call(n,i)||(n[i]=o[i],r[i]=!0)}function xe(t,n,o,r,l,i,a,d,c){var s,u;if(Array.isArray(l))for(l=Array.prototype.slice.call(l),s=0,u=l.length;s<u;s+=1)Array.isArray(l[s])&&S(t,"nested arrays are not supported inside keys"),typeof l=="object"&&yt(l[s])==="[object Object]"&&(l[s]="[object Object]");if(typeof l=="object"&&yt(l)==="[object Object]"&&(l="[object Object]"),l=String(l),n===null&&(n={}),r==="tag:yaml.org,2002:merge")if(Array.isArray(i))for(s=0,u=i.length;s<u;s+=1)Et(t,n,i[s],o);else Et(t,n,i,o);else!t.json&&!ie.call(o,l)&&ie.call(n,l)&&(t.line=a||t.line,t.lineStart=d||t.lineStart,t.position=c||t.position,S(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 Ue(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++):S(t,"a line break is expected"),t.line+=1,t.lineStart=t.position,t.firstTabInLine=-1}function z(t,n,o){for(var r=0,l=t.input.charCodeAt(t.position);l!==0;){for(;pe(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(ne(l))for(Ue(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&&Fe(t,"deficient indentation"),r}function Me(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||X(o)))}function qe(t,n){n===1?t.result+=" ":n>1&&(t.result+=U.repeat(`
52
+ `,n-1))}function Ja(t,n,o){var r,l,i,a,d,c,s,u,p=t.kind,m=t.result,g;if(g=t.input.charCodeAt(t.position),X(g)||he(g)||g===35||g===38||g===42||g===33||g===124||g===62||g===39||g===34||g===37||g===64||g===96||(g===63||g===45)&&(l=t.input.charCodeAt(t.position+1),X(l)||o&&he(l)))return!1;for(t.kind="scalar",t.result="",i=a=t.position,d=!1;g!==0;){if(g===58){if(l=t.input.charCodeAt(t.position+1),X(l)||o&&he(l))break}else if(g===35){if(r=t.input.charCodeAt(t.position-1),X(r))break}else{if(t.position===t.lineStart&&Me(t)||o&&he(g))break;if(ne(g))if(c=t.line,s=t.lineStart,u=t.lineIndent,z(t,!1,-1),t.lineIndent>=n){d=!0,g=t.input.charCodeAt(t.position);continue}else{t.position=a,t.line=c,t.lineStart=s,t.lineIndent=u;break}}d&&(se(t,i,a,!1),qe(t,t.line-c),i=a=t.position,d=!1),pe(g)||(a=t.position+1),g=t.input.charCodeAt(++t.position)}return se(t,i,a,!1),t.result?!0:(t.kind=p,t.result=m,!1)}function ei(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(se(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 ne(o)?(se(t,r,l,!0),qe(t,z(t,!1,n)),r=l=t.position):t.position===t.lineStart&&Me(t)?S(t,"unexpected end of the document within a single quoted scalar"):(t.position++,l=t.position);S(t,"unexpected end of the stream within a single quoted scalar")}function ti(t,n){var o,r,l,i,a,d;if(d=t.input.charCodeAt(t.position),d!==34)return!1;for(t.kind="scalar",t.result="",t.position++,o=r=t.position;(d=t.input.charCodeAt(t.position))!==0;){if(d===34)return se(t,o,t.position,!0),t.position++,!0;if(d===92){if(se(t,o,t.position,!0),d=t.input.charCodeAt(++t.position),ne(d))z(t,!1,n);else if(d<256&&bt[d])t.result+=kt[d],t.position++;else if((a=Ga(d))>0){for(l=a,i=0;l>0;l--)d=t.input.charCodeAt(++t.position),(a=Wa(d))>=0?i=(i<<4)+a:S(t,"expected hexadecimal character");t.result+=Qa(i),t.position++}else S(t,"unknown escape sequence");o=r=t.position}else ne(d)?(se(t,o,r,!0),qe(t,z(t,!1,n)),o=r=t.position):t.position===t.lineStart&&Me(t)?S(t,"unexpected end of the document within a double quoted scalar"):(t.position++,r=t.position)}S(t,"unexpected end of the stream within a double quoted scalar")}function ni(t,n){var o=!0,r,l,i,a=t.tag,d,c=t.anchor,s,u,p,m,g,h=Object.create(null),y,b,E,f;if(f=t.input.charCodeAt(t.position),f===91)u=93,g=!1,d=[];else if(f===123)u=125,g=!0,d={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=d),f=t.input.charCodeAt(++t.position);f!==0;){if(z(t,!0,n),f=t.input.charCodeAt(t.position),f===u)return t.position++,t.tag=a,t.anchor=c,t.kind=g?"mapping":"sequence",t.result=d,!0;o?f===44&&S(t,"expected the node content, but found ','"):S(t,"missed comma between flow collection entries"),b=y=E=null,p=m=!1,f===63&&(s=t.input.charCodeAt(t.position+1),X(s)&&(p=m=!0,t.position++,z(t,!0,n))),r=t.line,l=t.lineStart,i=t.position,be(t,n,Se,!1,!0),b=t.tag,y=t.result,z(t,!0,n),f=t.input.charCodeAt(t.position),(m||t.line===r)&&f===58&&(p=!0,f=t.input.charCodeAt(++t.position),z(t,!0,n),be(t,n,Se,!1,!0),E=t.result),g?xe(t,d,h,b,y,E,r,l,i):p?d.push(xe(t,null,h,b,y,E,r,l,i)):d.push(y),z(t,!0,n),f=t.input.charCodeAt(t.position),f===44?(o=!0,f=t.input.charCodeAt(++t.position)):o=!1}S(t,"unexpected end of the stream within a flow collection")}function oi(t,n){var o,r,l=ze,i=!1,a=!1,d=n,c=0,s=!1,u,p;if(p=t.input.charCodeAt(t.position),p===124)r=!1;else if(p===62)r=!0;else return!1;for(t.kind="scalar",t.result="";p!==0;)if(p=t.input.charCodeAt(++t.position),p===43||p===45)ze===l?l=p===43?ft:qa:S(t,"repeat of a chomping mode identifier");else if((u=Za(p))>=0)u===0?S(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):a?S(t,"repeat of an indentation width identifier"):(d=n+u-1,a=!0);else break;if(pe(p)){do p=t.input.charCodeAt(++t.position);while(pe(p));if(p===35)do p=t.input.charCodeAt(++t.position);while(!ne(p)&&p!==0)}for(;p!==0;){for(Ue(t),t.lineIndent=0,p=t.input.charCodeAt(t.position);(!a||t.lineIndent<d)&&p===32;)t.lineIndent++,p=t.input.charCodeAt(++t.position);if(!a&&t.lineIndent>d&&(d=t.lineIndent),ne(p)){c++;continue}if(t.lineIndent<d){l===ft?t.result+=U.repeat(`
53
+ `,i?1+c:c):l===ze&&i&&(t.result+=`
54
+ `);break}for(r?pe(p)?(s=!0,t.result+=U.repeat(`
55
+ `,i?1+c:c)):s?(s=!1,t.result+=U.repeat(`
56
+ `,c+1)):c===0?i&&(t.result+=" "):t.result+=U.repeat(`
57
+ `,c):t.result+=U.repeat(`
58
+ `,i?1+c:c),i=!0,a=!0,c=0,o=t.position;!ne(p)&&p!==0;)p=t.input.charCodeAt(++t.position);se(t,o,t.position,!1)}return!0}function Nt(t,n){var o,r=t.tag,l=t.anchor,i=[],a,d=!1,c;if(t.firstTabInLine!==-1)return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=i),c=t.input.charCodeAt(t.position);c!==0&&(t.firstTabInLine!==-1&&(t.position=t.firstTabInLine,S(t,"tab characters must not be used in indentation")),!(c!==45||(a=t.input.charCodeAt(t.position+1),!X(a))));){if(d=!0,t.position++,z(t,!0,-1)&&t.lineIndent<=n){i.push(null),c=t.input.charCodeAt(t.position);continue}if(o=t.line,be(t,n,mt,!1,!0),i.push(t.result),z(t,!0,-1),c=t.input.charCodeAt(t.position),(t.line===o||t.lineIndent>n)&&c!==0)S(t,"bad indentation of a sequence entry");else if(t.lineIndent<n)break}return d?(t.tag=r,t.anchor=l,t.kind="sequence",t.result=i,!0):!1}function ri(t,n,o){var r,l,i,a,d,c,s=t.tag,u=t.anchor,p={},m=Object.create(null),g=null,h=null,y=null,b=!1,E=!1,f;if(t.firstTabInLine!==-1)return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=p),f=t.input.charCodeAt(t.position);f!==0;){if(!b&&t.firstTabInLine!==-1&&(t.position=t.firstTabInLine,S(t,"tab characters must not be used in indentation")),r=t.input.charCodeAt(t.position+1),i=t.line,(f===63||f===58)&&X(r))f===63?(b&&(xe(t,p,m,g,h,null,a,d,c),g=h=y=null),E=!0,b=!0,l=!0):b?(b=!1,l=!0):S(t,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),t.position+=1,f=r;else{if(a=t.line,d=t.lineStart,c=t.position,!be(t,o,ut,!1,!0))break;if(t.line===i){for(f=t.input.charCodeAt(t.position);pe(f);)f=t.input.charCodeAt(++t.position);if(f===58)f=t.input.charCodeAt(++t.position),X(f)||S(t,"a whitespace character is expected after the key-value separator within a block mapping"),b&&(xe(t,p,m,g,h,null,a,d,c),g=h=y=null),E=!0,b=!1,l=!1,g=t.tag,h=t.result;else if(E)S(t,"can not read an implicit mapping pair; a colon is missed");else return t.tag=s,t.anchor=u,!0}else if(E)S(t,"can not read a block mapping entry; a multiline key may not be an implicit key");else return t.tag=s,t.anchor=u,!0}if((t.line===i||t.lineIndent>n)&&(b&&(a=t.line,d=t.lineStart,c=t.position),be(t,n,Le,!0,l)&&(b?h=t.result:y=t.result),b||(xe(t,p,m,g,h,y,a,d,c),g=h=y=null),z(t,!0,-1),f=t.input.charCodeAt(t.position)),(t.line===i||t.lineIndent>n)&&f!==0)S(t,"bad indentation of a mapping entry");else if(t.lineIndent<n)break}return b&&xe(t,p,m,g,h,null,a,d,c),E&&(t.tag=s,t.anchor=u,t.kind="mapping",t.result=p),E}function li(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&&S(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)):S(t,"unexpected end of the stream within a verbatim tag")}else{for(;a!==0&&!X(a);)a===33&&(r?S(t,"tag suffix cannot contain exclamation marks"):(l=t.input.slice(n-1,t.position+1),gt.test(l)||S(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),Ka.test(i)&&S(t,"tag suffix cannot contain flow indicator characters")}i&&!ht.test(i)&&S(t,"tag name cannot contain such characters: "+i);try{i=decodeURIComponent(i)}catch{S(t,"tag name is malformed: "+i)}return o?t.tag=i:ie.call(t.tagMap,l)?t.tag=t.tagMap[l]+i:l==="!"?t.tag="!"+i:l==="!!"?t.tag="tag:yaml.org,2002:"+i:S(t,'undeclared tag handle "'+l+'"'),!0}function ai(t){var n,o;if(o=t.input.charCodeAt(t.position),o!==38)return!1;for(t.anchor!==null&&S(t,"duplication of an anchor property"),o=t.input.charCodeAt(++t.position),n=t.position;o!==0&&!X(o)&&!he(o);)o=t.input.charCodeAt(++t.position);return t.position===n&&S(t,"name of an anchor node must contain at least one character"),t.anchor=t.input.slice(n,t.position),!0}function ii(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&&!X(r)&&!he(r);)r=t.input.charCodeAt(++t.position);return t.position===n&&S(t,"name of an alias node must contain at least one character"),o=t.input.slice(n,t.position),ie.call(t.anchorMap,o)||S(t,'unidentified alias "'+o+'"'),t.result=t.anchorMap[o],z(t,!0,-1),!0}function be(t,n,o,r,l){var i,a,d,c=1,s=!1,u=!1,p,m,g,h,y,b;if(t.listener!==null&&t.listener("open",t),t.tag=null,t.anchor=null,t.kind=null,t.result=null,i=a=d=Le===o||mt===o,r&&z(t,!0,-1)&&(s=!0,t.lineIndent>n?c=1:t.lineIndent===n?c=0:t.lineIndent<n&&(c=-1)),c===1)for(;li(t)||ai(t);)z(t,!0,-1)?(s=!0,d=i,t.lineIndent>n?c=1:t.lineIndent===n?c=0:t.lineIndent<n&&(c=-1)):d=!1;if(d&&(d=s||l),(c===1||Le===o)&&(Se===o||ut===o?y=n:y=n+1,b=t.position-t.lineStart,c===1?d&&(Nt(t,b)||ri(t,b,y))||ni(t,y)?u=!0:(a&&oi(t,y)||ei(t,y)||ti(t,y)?u=!0:ii(t)?(u=!0,(t.tag!==null||t.anchor!==null)&&S(t,"alias node should not have any properties")):Ja(t,y,Se===o)&&(u=!0,t.tag===null&&(t.tag="?")),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):c===0&&(u=d&&Nt(t,b))),t.tag===null)t.anchor!==null&&(t.anchorMap[t.anchor]=t.result);else if(t.tag==="?"){for(t.result!==null&&t.kind!=="scalar"&&S(t,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+t.kind+'"'),p=0,m=t.implicitTypes.length;p<m;p+=1)if(h=t.implicitTypes[p],h.resolve(t.result)){t.result=h.construct(t.result),t.tag=h.tag,t.anchor!==null&&(t.anchorMap[t.anchor]=t.result);break}}else if(t.tag!=="!"){if(ie.call(t.typeMap[t.kind||"fallback"],t.tag))h=t.typeMap[t.kind||"fallback"][t.tag];else for(h=null,g=t.typeMap.multi[t.kind||"fallback"],p=0,m=g.length;p<m;p+=1)if(t.tag.slice(0,g[p].tag.length)===g[p].tag){h=g[p];break}h||S(t,"unknown tag !<"+t.tag+">"),t.result!==null&&h.kind!==t.kind&&S(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+h.kind+'", not "'+t.kind+'"'),h.resolve(t.result,t.tag)?(t.result=h.construct(t.result,t.tag),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):S(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||u}function si(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&&(z(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&&!X(a);)a=t.input.charCodeAt(++t.position);for(r=t.input.slice(o,t.position),l=[],r.length<1&&S(t,"directive name must not be less than one character in length");a!==0;){for(;pe(a);)a=t.input.charCodeAt(++t.position);if(a===35){do a=t.input.charCodeAt(++t.position);while(a!==0&&!ne(a));break}if(ne(a))break;for(o=t.position;a!==0&&!X(a);)a=t.input.charCodeAt(++t.position);l.push(t.input.slice(o,t.position))}a!==0&&Ue(t),ie.call(_t,r)?_t[r](t,r,l):Fe(t,'unknown document directive "'+r+'"')}if(z(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,z(t,!0,-1)):i&&S(t,"directives end mark is expected"),be(t,t.lineIndent-1,Le,!1,!0),z(t,!0,-1),t.checkLineBreaks&&Ya.test(t.input.slice(n,t.position))&&Fe(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&Me(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,z(t,!0,-1));return}if(t.position<t.length-1)S(t,"end of the stream or a document separator is expected");else return}function Ct(t,n){t=String(t),n=n||{},t.length!==0&&(t.charCodeAt(t.length-1)!==10&&t.charCodeAt(t.length-1)!==13&&(t+=`
59
+ `),t.charCodeAt(0)===65279&&(t=t.slice(1)));var o=new Xa(t,n),r=t.indexOf("\0");for(r!==-1&&(o.position=r,S(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;)si(o);return o.documents}function ci(t,n,o){n!==null&&typeof n=="object"&&typeof o>"u"&&(o=n,n=null);var r=Ct(t,o);if(typeof n!="function")return r;for(var l=0,i=r.length;l<i;l+=1)n(r[l])}function di(t,n){var o=Ct(t,n);if(o.length!==0){if(o.length===1)return o[0];throw new Q("expected a single document in the stream, but found more")}}var pi=ci,ui=di,mi={loadAll:pi,load:ui},Bt=Object.prototype.toString,Vt=Object.prototype.hasOwnProperty,He=65279,fi=9,Ee=10,gi=13,hi=32,yi=33,xi=34,Ye=35,bi=37,ki=38,wi=39,_i=42,vt=44,Ei=45,Te=58,Ni=61,Ci=62,Bi=63,Vi=64,At=91,$t=93,vi=96,St=123,Ai=124,Lt=125,G={};G[0]="\\0",G[7]="\\a",G[8]="\\b",G[9]="\\t",G[10]="\\n",G[11]="\\v",G[12]="\\f",G[13]="\\r",G[27]="\\e",G[34]='\\"',G[92]="\\\\",G[133]="\\N",G[160]="\\_",G[8232]="\\L",G[8233]="\\P";var $i=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],Si=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;function Li(t,n){var o,r,l,i,a,d,c;if(n===null)return{};for(o={},r=Object.keys(n),l=0,i=r.length;l<i;l+=1)a=r[l],d=String(n[a]),a.slice(0,2)==="!!"&&(a="tag:yaml.org,2002:"+a.slice(2)),c=t.compiledTypeMap.fallback[a],c&&Vt.call(c.styleAliases,d)&&(d=c.styleAliases[d]),o[a]=d;return o}function Fi(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 Q("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+o+U.repeat("0",r-n.length)+n}var Mi=1,Ne=2;function Ti(t){this.schema=t.schema||pt,this.indent=Math.max(1,t.indent||2),this.noArrayIndent=t.noArrayIndent||!1,this.skipInvalid=t.skipInvalid||!1,this.flowLevel=U.isNothing(t.flowLevel)?-1:t.flowLevel,this.styleMap=Li(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==='"'?Ne:Mi,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 Ft(t,n){for(var o=U.repeat(" ",n),r=0,l=-1,i="",a,d=t.length;r<d;)l=t.indexOf(`
60
+ `,r),l===-1?(a=t.slice(r),r=d):(a=t.slice(r,l+1),r=l+1),a.length&&a!==`
61
+ `&&(i+=o),i+=a;return i}function Ke(t,n){return`
62
+ `+U.repeat(" ",t.indent*n)}function Ii(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 Ie(t){return t===hi||t===fi}function Ce(t){return 32<=t&&t<=126||161<=t&&t<=55295&&t!==8232&&t!==8233||57344<=t&&t<=65533&&t!==He||65536<=t&&t<=1114111}function Mt(t){return Ce(t)&&t!==He&&t!==gi&&t!==Ee}function Tt(t,n,o){var r=Mt(t),l=r&&!Ie(t);return(o?r:r&&t!==vt&&t!==At&&t!==$t&&t!==St&&t!==Lt)&&t!==Ye&&!(n===Te&&!l)||Mt(n)&&!Ie(n)&&t===Ye||n===Te&&l}function Di(t){return Ce(t)&&t!==He&&!Ie(t)&&t!==Ei&&t!==Bi&&t!==Te&&t!==vt&&t!==At&&t!==$t&&t!==St&&t!==Lt&&t!==Ye&&t!==ki&&t!==_i&&t!==yi&&t!==Ai&&t!==Ni&&t!==Ci&&t!==wi&&t!==xi&&t!==bi&&t!==Vi&&t!==vi}function ji(t){return!Ie(t)&&t!==Te}function Be(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 It(t){var n=/^\n* /;return n.test(t)}var Dt=1,We=2,jt=3,Ot=4,ke=5;function Oi(t,n,o,r,l,i,a,d){var c,s=0,u=null,p=!1,m=!1,g=r!==-1,h=-1,y=Di(Be(t,0))&&ji(Be(t,t.length-1));if(n||a)for(c=0;c<t.length;s>=65536?c+=2:c++){if(s=Be(t,c),!Ce(s))return ke;y=y&&Tt(s,u,d),u=s}else{for(c=0;c<t.length;s>=65536?c+=2:c++){if(s=Be(t,c),s===Ee)p=!0,g&&(m=m||c-h-1>r&&t[h+1]!==" ",h=c);else if(!Ce(s))return ke;y=y&&Tt(s,u,d),u=s}m=m||g&&c-h-1>r&&t[h+1]!==" "}return!p&&!m?y&&!a&&!l(t)?Dt:i===Ne?ke:We:o>9&&It(t)?ke:a?i===Ne?ke:We:m?Ot:jt}function Pi(t,n,o,r,l){t.dump=(function(){if(n.length===0)return t.quotingType===Ne?'""':"''";if(!t.noCompatMode&&($i.indexOf(n)!==-1||Si.test(n)))return t.quotingType===Ne?'"'+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),d=r||t.flowLevel>-1&&o>=t.flowLevel;function c(s){return Ii(t,s)}switch(Oi(n,d,t.indent,a,c,t.quotingType,t.forceQuotes&&!r,l)){case Dt:return n;case We:return"'"+n.replace(/'/g,"''")+"'";case jt:return"|"+Pt(n,t.indent)+Rt(Ft(n,i));case Ot:return">"+Pt(n,t.indent)+Rt(Ft(Ri(n,a),i));case ke:return'"'+zi(n)+'"';default:throw new Q("impossible error: invalid scalar style")}})()}function Pt(t,n){var o=It(t)?String(n):"",r=t[t.length-1]===`
63
+ `,l=r&&(t[t.length-2]===`
54
64
  `||t===`
55
- `),i=o?"+":l?"":"-";return r+i+`
56
- `}function $t(t){return t[t.length-1]===`
57
- `?t.slice(0,-1):t}function _i(t,n){for(var r=/(\n+)([^\n]*)/g,l=(function(){var c=t.indexOf(`
58
- `);return c=c!==-1?c:t.length,r.lastIndex=c,vt(t.slice(0,c),n)})(),o=t[0]===`
59
- `||t[0]===" ",i,a;a=r.exec(t);){var s=a[1],d=a[2];i=d[0]===" ",l+=s+(!o&&!i&&d!==""?`
60
- `:"")+vt(d,n),o=i}return l}function vt(t,n){if(t===""||t[0]===" ")return t;for(var r=/ [^ ]/g,l,o=0,i,a=0,s=0,d="";l=r.exec(t);)s=l.index,s-o>n&&(i=a>o?a:s,d+=`
61
- `+t.slice(o,i),o=i+1),a=s;return d+=`
62
- `,t.length-o>n&&a>o?d+=t.slice(o,a)+`
63
- `+t.slice(a+1):d+=t.slice(o),d.slice(1)}function Ei(t){for(var n="",r=0,l,o=0;o<t.length;r>=65536?o+=2:o++)r=xe(t,o),l=O[r],!l&&ye(r)?(n+=t[o],r>=65536&&(n+=t[o+1])):n+=l||ui(r);return n}function Ni(t,n,r){var l="",o=t.tag,i,a,s;for(i=0,a=r.length;i<a;i+=1)s=r[i],t.replacer&&(s=t.replacer.call(r,String(i),s)),(Z(t,n,s,!1,!1)||typeof s>"u"&&Z(t,n,null,!1,!1))&&(l!==""&&(l+=","+(t.condenseFlow?"":" ")),l+=t.dump);t.tag=o,t.dump="["+l+"]"}function St(t,n,r,l){var o="",i=t.tag,a,s,d;for(a=0,s=r.length;a<s;a+=1)d=r[a],t.replacer&&(d=t.replacer.call(r,String(a),d)),(Z(t,n+1,d,!0,!0,!1,!0)||typeof d>"u"&&Z(t,n+1,null,!0,!0,!1,!0))&&((!l||o!=="")&&(o+=Me(t,n)),t.dump&&ge===t.dump.charCodeAt(0)?o+="-":o+="- ",o+=t.dump);t.tag=i,t.dump=o||"[]"}function Ci(t,n,r){var l="",o=t.tag,i=Object.keys(r),a,s,d,c,f;for(a=0,s=i.length;a<s;a+=1)f="",l!==""&&(f+=", "),t.condenseFlow&&(f+='"'),d=i[a],c=r[d],t.replacer&&(c=t.replacer.call(r,d,c)),Z(t,n,d,!1,!1)&&(t.dump.length>1024&&(f+="? "),f+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),Z(t,n,c,!1,!1)&&(f+=t.dump,l+=f));t.tag=o,t.dump="{"+l+"}"}function Bi(t,n,r,l){var o="",i=t.tag,a=Object.keys(r),s,d,c,f,m,p;if(t.sortKeys===!0)a.sort();else if(typeof t.sortKeys=="function")a.sort(t.sortKeys);else if(t.sortKeys)throw new P("sortKeys must be a boolean or a function");for(s=0,d=a.length;s<d;s+=1)p="",(!l||o!=="")&&(p+=Me(t,n)),c=a[s],f=r[c],t.replacer&&(f=t.replacer.call(r,c,f)),Z(t,n+1,c,!0,!0,!0)&&(m=t.tag!==null&&t.tag!=="?"||t.dump&&t.dump.length>1024,m&&(t.dump&&ge===t.dump.charCodeAt(0)?p+="?":p+="? "),p+=t.dump,m&&(p+=Me(t,n)),Z(t,n+1,f,!0,m)&&(t.dump&&ge===t.dump.charCodeAt(0)?p+=":":p+=": ",p+=t.dump,o+=p));t.tag=i,t.dump=o||"{}"}function Ft(t,n,r){var l,o,i,a,s,d;for(o=r?t.explicitTypes:t.implicitTypes,i=0,a=o.length;i<a;i+=1)if(s=o[i],(s.instanceOf||s.predicate)&&(!s.instanceOf||typeof n=="object"&&n instanceof s.instanceOf)&&(!s.predicate||s.predicate(n))){if(r?s.multi&&s.representName?t.tag=s.representName(n):t.tag=s.tag:t.tag="?",s.represent){if(d=t.styleMap[s.tag]||s.defaultStyle,ut.call(s.represent)==="[object Function]")l=s.represent(n,d);else if(gt.call(s.represent,d))l=s.represent[d](n,d);else throw new P("!<"+s.tag+'> tag resolver accepts not "'+d+'" style');t.dump=l}return!0}return!1}function Z(t,n,r,l,o,i,a){t.tag=null,t.dump=r,Ft(t,r,!1)||Ft(t,r,!0);var s=ut.call(t.dump),d=l,c;l&&(l=t.flowLevel<0||t.flowLevel>n);var f=s==="[object Object]"||s==="[object Array]",m,p;if(f&&(m=t.duplicates.indexOf(r),p=m!==-1),(t.tag!==null&&t.tag!=="?"||p||t.indent!==2&&n>0)&&(o=!1),p&&t.usedDuplicates[m])t.dump="*ref_"+m;else{if(f&&p&&!t.usedDuplicates[m]&&(t.usedDuplicates[m]=!0),s==="[object Object]")l&&Object.keys(t.dump).length!==0?(Bi(t,n,t.dump,o),p&&(t.dump="&ref_"+m+t.dump)):(Ci(t,n,t.dump),p&&(t.dump="&ref_"+m+" "+t.dump));else if(s==="[object Array]")l&&t.dump.length!==0?(t.noArrayIndent&&!a&&n>0?St(t,n-1,t.dump,o):St(t,n,t.dump,o),p&&(t.dump="&ref_"+m+t.dump)):(Ni(t,n,t.dump),p&&(t.dump="&ref_"+m+" "+t.dump));else if(s==="[object String]")t.tag!=="?"&&wi(t,t.dump,n,i,d);else{if(s==="[object Undefined]")return!1;if(t.skipInvalid)return!1;throw new P("unacceptable kind of an object to dump "+s)}t.tag!==null&&t.tag!=="?"&&(c=encodeURI(t.tag[0]==="!"?t.tag.slice(1):t.tag).replace(/!/g,"%21"),t.tag[0]==="!"?c="!"+c:c.slice(0,18)==="tag:yaml.org,2002:"?c="!!"+c.slice(18):c="!<"+c+">",t.dump=c+" "+t.dump)}return!0}function Vi(t,n){var r=[],l=[],o,i;for(Ie(t,r,l),o=0,i=l.length;o<i;o+=1)n.duplicates.push(r[l[o]]);n.usedDuplicates=new Array(i)}function Ie(t,n,r){var l,o,i;if(t!==null&&typeof t=="object")if(o=n.indexOf(t),o!==-1)r.indexOf(o)===-1&&r.push(o);else if(n.push(t),Array.isArray(t))for(o=0,i=t.length;o<i;o+=1)Ie(t[o],n,r);else for(l=Object.keys(t),o=0,i=l.length;o<i;o+=1)Ie(t[l[o]],n,r)}function Ai(t,n){n=n||{};var r=new hi(n);r.noRefs||Vi(t,r);var l=t;return r.replacer&&(l=r.replacer.call({"":l},"",l)),Z(r,0,l,!0,!0)?r.dump+`
64
- `:""}var $i=Ai,vi={dump:$i},Si=Wa.load,Lt=vi.dump;const Fi={class:"flex flex-col flex-1 overflow-hidden"},Li={class:"flex justify-end gap-2"},Ti={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"},Mi=["href"],Di={class:"flex flex-col flex-1 overflow-hidden"},Ii={class:"bg-white rounded-xl border border-gray-200 shadow-sm overflow-hidden mt-3 flex flex-col flex-1"},ji={class:"relative bg-gradient-to-br from-slate-50 to-white flex-1"},Oi=e.defineComponent({__name:"vs-tab-style",props:{token:{},styleYaml:{}},emits:["update:styleYaml","update"],setup(t,{emit:n}){const r=t,l=n,o=e.ref("");e.watch(()=>r.styleYaml,d=>{try{const c=d?Lt(d):"";!o.value&&c!==o.value&&(o.value=c)}catch{o.value=""}},{immediate:!0,deep:!0}),e.watch(o,async d=>{var c,f;try{const m=d?Si(d):null;if((c=m==null?void 0:m.colorAttr)!=null&&c.length&&((f=r.styleYaml)==null?void 0:f.colorAttr)!==m.colorAttr){const p=await i(m.colorAttr);m.colors=p.reduce((u,h,x)=>({...u,[h.id.toString()]:a[x]}),{});const g=Lt(m);g!==o.value&&(o.value=g)}JSON.stringify(m)!==JSON.stringify(r.styleYaml)&&l("update:styleYaml",m)}catch{}});async function i(d){return(await fetch(`/api/gis-service/${r.token}/${d}`).then(f=>f.json())).rows}const a=["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd"],s=async()=>{try{await fetch(`/api/gis-service/${r.token}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({style:o.value})}),l("update"),K.notify({type:"success",title:"Успіх",message:"Стилі збережено"})}catch(d){K.notify({type:"error",title:"Помилка",message:"Не вдалося зберегти стилі"}),console.log(d)}};return(d,c)=>(e.openBlock(),e.createElementBlock("div",Fi,[e.createElementVNode("div",Li,[e.createElementVNode("button",Ti,[e.createElementVNode("a",{target:"_blank",href:"/api/gis-service/"+r.token+"/col"},"Attr",8,Mi)]),e.createElementVNode("button",{onClick:s,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"},[...c[1]||(c[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",Di,[e.createElementVNode("div",Ii,[c[2]||(c[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",ji,[e.createVNode(Ke,{modelValue:o.value,"onUpdate:modelValue":c[0]||(c[0]=f=>o.value=f),language:"yaml",theme:"vs-light"},null,8,["modelValue"])])])])]))}}),Tt=Symbol("MapContext");function Ri(t){const n=e.shallowRef(null),r=e.ref(!1);let l=!1;const o=[],i=()=>{l=!0,o.length&&o.forEach(m=>m())},a=()=>{const m=t.container;return typeof m=="string"?document.getElementById(m):(m==null?void 0:m.value)!==void 0?m.value:m},s=()=>l?Promise.resolve():new Promise(m=>o.push(m)),d=async()=>{var p,g,u,h;if(typeof window>"u"||n.value)return;const m=a();if(!m)throw new Error("Map container not found");n.value=new maplibregl.Map({...t.mapOptions||{},center:[30,50],zoom:7,container:m}),(p=t.controls)!=null&&p.navigation&&n.value.addControl(new maplibregl.NavigationControl(typeof t.controls.navigation=="object"?t.controls.navigation:{}),"top-right"),(g=t.controls)!=null&&g.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"),(h=t.controls)!=null&&h.geolocate&&n.value.addControl(new maplibregl.GeolocateControl(typeof t.controls.geolocate=="object"?t.controls.geolocate:{}),"top-right"),n.value.once("load",()=>{r.value=!0,i()})},c=()=>{n.value&&(n.value.remove(),n.value=null,r.value=!1)};e.onMounted(d),e.onUnmounted(c);const f={map:n,ready:s,flyTo:m=>{var p;return(p=n.value)==null?void 0:p.flyTo(m)},fitBounds:(m,p)=>{var g;return(g=n.value)==null?void 0:g.fitBounds(m,p)},setCenter:m=>{var p;return(p=n.value)==null?void 0:p.setCenter(m)},setZoom:m=>{var p;return(p=n.value)==null?void 0:p.setZoom(m)},addControl:(m,p)=>{var g;return(g=n.value)==null?void 0:g.addControl(m,p)},removeControl:m=>{var p;return(p=n.value)==null?void 0:p.removeControl(m)},on:(m,p,g)=>{var u,h;return typeof p=="string"?((u=n.value)==null||u.on(m,p,g),()=>{var x;return(x=n.value)==null?void 0:x.off(m,p,g)}):((h=n.value)==null||h.on(m,p),()=>{var x;return(x=n.value)==null?void 0:x.off(m,p)})},off:(m,p,g)=>{var u,h;typeof p=="string"?(u=n.value)==null||u.off(m,p,g):(h=n.value)==null||h.off(m,p)},project:m=>{var p;return(p=n.value)==null?void 0:p.project(m)},unproject:m=>{var p;return(p=n.value)==null?void 0:p.unproject(m)}};return e.provide(Tt,f),f}function re(t){if(t)return{map:t,flyTo:t.value.flyTo,fitBounds:t.value.fitBounds};const n=e.inject(Tt);if(!n)throw new Error("useMap() called outside of a Map provider");return n}const je=new Map;function Oe(t){return t.colorAttr&&t.colors?["match",["get",t.colorAttr],...Object.entries(t.colors).reduce((n,r)=>n.concat(r),[]),"#94a3b8"]:null}function Ui(t){var l;if(!t.icon||!t.colors)return null;const n=[],r=(l=t.icon)==null?void 0:l.split("+")[0];return Object.values(t.colors||{}).forEach(o=>{n.push(`${r}+${o.replace("#","")}.png`)}),["match",["get",t.colorAttr],...Object.entries(t.colors).reduce((o,i,a)=>o.concat([i[0],n[a]]),[]),t.icon]}async function Mt(t,n,r){const l=[n],o=n.split("+")[0];Object.values(r||{}).forEach(i=>{l.push(`${o}+${i.replace("#","")}.png`)});for(let i=0;i<l.length;i+=1){const a=l[i];if(t.getImage(a))continue;const s=await t.loadImage("/api/gis-icon/"+a);t.addImage(a,s.data)}}function Dt(t,n){const r=Oe(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":r||t.color,"circle-stroke-width":t.width||1,"circle-radius":t.radius||5}}}function Pi(t){const n=Oe(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 zi(t){return{type:"line",paint:{"line-color":Oe(t)||t.color,"line-opacity":t.opacity||1,"line-width":t.width||1.5}}}function qi(t){const n=Ui(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 It(t){const n=[];return t?(t.icon&&n.push(qi(t)),t.pointZoom&&n.push(Dt(t,t.pointZoom)),t.type==="polygon"&&n.push(Pi(t)),t.type==="line"&&n.push(zi(t)),t.type==="point"&&n.push(Dt(t)),n.filter(r=>r)):[]}const Re={};function R(t,n,r){var M,I,G;if(!t)return Re;if(!n)return Re[t];const{map:l,ready:o=()=>Promise.resolve()}=re(r),i=t||n.layer.id,a=n.sourceId??t;!n.layer&&((M=n.source)==null?void 0:M.type)==="raster"&&(n.layer={id:a,type:"raster",source:a}),(I=n.layer)!=null&&I.source||(n.layer.source=a),!n.layer["source-layer"]&&((G=n.source)==null?void 0:G.type)==="vector"&&(n.layer["source-layer"]=a);let s=!1,d=!1;const c=()=>{var V,A,L;if(!(d||!l.value)){if(n.source&&!l.value.getSource(a)&&l.value.addSource(a,n.source),!l.value.getLayer(i)){const C=n.beforeId===0?(A=(V=l.value.getStyle().layers)==null?void 0:V[0])==null?void 0:A.id:n.beforeId;(L=n.layer.style)!=null&&L.icon&&Mt(l.value,n.layer.style.icon,n.layer.style.colors);const _=It(n.layer.style);if(!_.length)return l.value.addLayer(n.layer,C);_.forEach(($,U)=>{Object.assign($,{id:i+(U||"")}),["source","source-layer"].forEach(q=>{$[q]=n.layer[q]}),l.value.addLayer($,C)})}s=!0}};o().then(c);const f=(V,A)=>l.value?(l.value.on(V,i,A),()=>{var L;return(L=l.value)==null?void 0:L.off(V,i,A)}):()=>{};function m(V){l.value&&l.value.getStyle().layers.filter(A=>A.source==i).forEach(A=>{l.value.setLayoutProperty(A.id,"visibility",V?"visible":"none")})}async function p(V){if(!l.value)return;V.icon&&Mt(l.value,V.icon,V.colors);const A=It(V);b(!1),A.forEach((L,C)=>{L.id=i+C,["source","source-layer"].forEach(_=>{L[_]=n==null?void 0:n.layer[_]}),l.value.addLayer(L)})}function g(V){l.value&&Object.entries(V).forEach(([A,L])=>l.value.setPaintProperty(i,A,L))}function u(V){l.value&&Object.entries(V).forEach(([A,L])=>l.value.setLayoutProperty(i,A,L))}function h(V){l.value&&l.value.setFilter(i,V)}function x(V){if(!l.value)return;const A=l.value.getSource(a);if(A&&"setTiles"in A&&n.source.tiles[0]){const L=n.source.tiles[0];A.setTiles([L+"?filter="+V])}}function E(V){if(!l.value)return;const A=l.value.getSource(a);A&&"setTiles"in A&&A.setTiles(V)}function y(V){if(!l.value)return;const A=l.value.getSource(a);A&&"setData"in A&&A.setData(V)}function k(V,A){l.value&&l.value.setFeatureState({source:a,...V},A)}function w(V,A){l.value&&l.value.removeFeatureState({source:a,...V},A?{key:A}:void 0)}function b(V=!0){l.value&&(l.value.getStyle().layers.filter(A=>A.source==i).forEach(A=>{l.value.removeLayer(A.id)}),d=!0,n!=null&&n.source&&V&&l.value.getSource(a)&&l.value.removeSource(a))}const v={ids:{layerId:i,sourceId:a},isMounted:()=>{var V;return s&&!!((V=l.value)!=null&&V.getLayer(i))},setVisible:m,updatePaint:g,updateLayout:u,updateFilter:h,setData:y,setTiles:E,setStyle:p,setFilter:x,setFeatureState:k,removeFeatureState:w,remove:b,card:n.card,popup:n.popup,getSource:()=>{var V;return(V=l.value)==null?void 0:V.getSource(a)},getLayer:()=>{var V;return(V=l.value)==null?void 0:V.getLayer(i)},on:f};je.set(i,v);const S=()=>{je.get(i)===v&&je.delete(i)},B=v.remove;return v.remove=()=>{S(),B()},e.onBeforeUnmount(v.remove),Re[t]=v,v}const Hi={class:"flex flex-col flex-1"},Yi=e.defineComponent({__name:"vs-tab-popup",props:{token:{},fields:{},columns:{}},emits:["update:columns","save"],setup(t,{emit:n}){const r=t,l=n,o=e.ref(r.columns||[]);e.watch(()=>r.columns,u=>o.value=u||[],{immediate:!0}),e.watch(o,u=>{const h=R(r.token);h&&(h.popup=u),l("update:columns",u)});const i=e.ref("list"),a=e.ref(!1),s=e.ref([]),d=[{key:"name",label:"Name"},{key:"ua",label:"UA"},{key:"meta",label:"Meta"}],c={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 f(){s.value=o.value.map(u=>u.name||u.id),a.value=!0}function m(){var E;const u=[...o.value],h=((E=r.fields)==null?void 0:E.filter(y=>s.value.includes(y.name)))||[],x=ae(u,h,{selectedKeys:s.value,resolveKey:y=>Q(y)});o.value=x,a.value=!1,s.value=[]}function p(){a.value=!1,s.value=[]}function g(){let u=[];i.value==="all"?u=r.fields||[]:i.value==="none"?u=[]:u=o.value,u.filter(h=>!h.label).forEach(h=>h.label=h.ua),l("save",u)}return(u,h)=>(e.openBlock(),e.createElementBlock("div",Hi,[e.createElementVNode("div",{class:"flex justify-between mb-3 gap-2"},[e.createElementVNode("button",{onClick:f,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:g,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 ")]),i.value==="list"?(e.openBlock(),e.createBlock(te,{key:0,modelValue:o.value,"onUpdate:modelValue":h[0]||(h[0]=x=>o.value=x),"columns-scheme":d,"form-scheme":c,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])):e.createCommentVNode("",!0),e.createVNode(oe,{visible:a.value,"onUpdate:visible":h[1]||(h[1]=x=>a.value=x),selection:s.value,"onUpdate:selection":h[2]||(h[2]=x=>s.value=x),fields:u.fields,title:"Імпорт полів","id-prefix":"import-popup",onConfirm:m,onCancel:p},null,8,["visible","selection","fields"])]))}}),Ki={class:"flex flex-col flex-1"},Wi={class:"flex justify-between mb-3 gap-2"},Gi={class:"p-4 space-y-4 text-sm"},Zi={class:"space-y-1"},Qi={class:"space-y-1"},Xi={class:"flex items-center gap-3"},Ji={class:"flex justify-end gap-2 p-4 border-t"},es=e.defineComponent({__name:"vs-tab-legend",props:{mapInfo:{},token:{},columns:{}},emits:["update:columns","save"],setup(t,{emit:n}){const r=t,l=n,o=e.ref(r.columns||[]);e.watch(()=>r.columns,u=>{o.value=u||[]}),e.watch(o,u=>{l("update:columns",u)});const i=e.ref(!1),a=e.ref({name:"",color:"#2E86DE"}),s=e.defineAsyncComponent(()=>import("@opengis/core").then(u=>u.VsModal)),d=[{key:"name",label:"Назва"},{key:"color",label:"Колір",type:"color"}],c={name:{type:"text",label:"Назва",validators:["required"]},color:{type:"color",label:"Колір",validators:["required"]}};function f(u){u&&m(),i.value=u}function m(){a.value={name:"",color:"#2E86DE"}}function p(){var E,y;const u=(E=a.value.name)==null?void 0:E.trim();if(!u){K.notify({type:"warning",title:"Перевірка",message:"Вкажіть назву елементу легенди"});return}const h=((y=a.value.color)==null?void 0:y.trim())||"#2E86DE";if(o.value.some(k=>Q(k)===Q({name:u}))){K.notify({type:"warning",title:"Дубль",message:"Такий елемент легенди вже існує"});return}o.value=[...o.value,{name:u,color:h}],m(),i.value=!1}function g(){l("save",o.value)}return(u,h)=>(e.openBlock(),e.createElementBlock("div",Ki,[e.createElementVNode("div",Wi,[e.createElementVNode("button",{onClick:h[0]||(h[0]=x=>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:g,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(te,{modelValue:o.value,"onUpdate:modelValue":h[1]||(h[1]=x=>o.value=x),"columns-scheme":d,"form-scheme":c,"main-col-width":"250px","add-button":!1},null,8,["modelValue"]),e.createVNode(e.unref(s),{visible:i.value,title:"Новий елемент легенди","onUpdate:visible":f},{footer:e.withCtx(()=>[e.createElementVNode("div",Ji,[e.createElementVNode("button",{type:"button",class:"px-4 py-2 rounded bg-gray-100 text-gray-700",onClick:h[5]||(h[5]=x=>f(!1))}," Скасувати "),e.createElementVNode("button",{type:"button",class:"px-4 py-2 rounded bg-blue-600 text-white",onClick:p}," Додати ")])]),default:e.withCtx(()=>[e.createElementVNode("div",Gi,[e.createElementVNode("div",Zi,[h[6]||(h[6]=e.createElementVNode("label",{class:"block text-xs font-medium text-gray-500 uppercase tracking-wide"}," Назва ",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[2]||(h[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",Qi,[h[7]||(h[7]=e.createElementVNode("label",{class:"block text-xs font-medium text-gray-500 uppercase tracking-wide"}," Колір ",-1)),e.createElementVNode("div",Xi,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[3]||(h[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":h[4]||(h[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"])]))}}),ts={class:"space-y-3 bg-gradient-to-br from-sky-50 to-blue-50 p-4 rounded-xl border border-sky-100 shadow-sm"},ns=["onClick"],rs=["aria-checked","value"],os={key:0},ls=e.defineComponent({__name:"view-mode-toggle",props:{modelValue:{},options:{},showHtml:{type:Boolean}},emits:["update:modelValue"],setup(t,{emit:n}){const r=t,l=n,o=a=>l("update:modelValue",a),i=r.options||[{value:"all",label:"All"},{value:"list",label:"List"},{value:"none",label:"None"}];return(a,s)=>(e.openBlock(),e.createElementBlock("div",ts,[s[1]||(s[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),d=>(e.openBlock(),e.createElementBlock("div",{key:d.value,onClick:c=>o(d.value),class:e.normalizeClass(["flex items-center justify-center space-x-2 rounded-lg p-2 border transition-all duration-300 cursor-pointer",[a.modelValue===d.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":a.modelValue===d.value,value:d.value,class:"aspect-square rounded-full border border-primary h-4 w-4 flex items-center justify-center text-sky-500"},[a.modelValue===d.value?(e.openBlock(),e.createElementBlock("span",os,[...s[0]||(s[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,rs),e.createElementVNode("label",{class:e.normalizeClass(["text-xs font-medium cursor-pointer",a.modelValue===d.value?"text-gray-700":"text-gray-600"])},e.toDisplayString(d.label),3)],10,ns))),128))],2)]))}}),as={class:"flex flex-col flex-1"},is=e.defineComponent({__name:"vs-tab-card",props:{fields:{},columns:{}},emits:["update:columns","save"],setup(t,{emit:n}){const r=t,l=n,o=e.ref(r.columns||[]);e.watch(()=>r.columns,x=>o.value=x||[],{immediate:!0}),e.watch(o,x=>l("update:columns",x));const i=e.ref("list"),a=e.ref("<div>Hello HTML</div>"),s=e.ref(!1),d=e.ref([]),c=[{key:"name",label:"Name"},{key:"ua",label:"UA"},{key:"format",label:"Format"}],f={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 m(){d.value=o.value.map(x=>x.name||x.id),s.value=!0}function p(){var k;const x=[...o.value],E=((k=r.fields)==null?void 0:k.filter(w=>d.value.includes(w.name)))||[],y=ae(x,E,{selectedKeys:d.value,resolveKey:w=>Q(w)});o.value=y,s.value=!1,d.value=[]}function g(){s.value=!1,d.value=[]}function u(){i.value==="html"?l("save","html",a.value):l("save","card",o.value)}const h=[{value:"all",label:"All"},{value:"list",label:"List"},{value:"none",label:"None"},{value:"html",label:"HTML"}];return(x,E)=>(e.openBlock(),e.createElementBlock("div",as,[e.createElementVNode("div",{class:"flex justify-between mb-3 gap-2"},[e.createElementVNode("button",{onClick:m,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(ls,{modelValue:i.value,"onUpdate:modelValue":E[0]||(E[0]=y=>i.value=y),options:h},null,8,["modelValue"]),i.value==="list"?(e.openBlock(),e.createBlock(te,{key:0,modelValue:o.value,"onUpdate:modelValue":E[1]||(E[1]=y=>o.value=y),"columns-scheme":c,"form-scheme":f,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])):e.createCommentVNode("",!0),i.value==="html"?(e.openBlock(),e.createBlock(Ke,{key:1,modelValue:a.value,"onUpdate:modelValue":E[2]||(E[2]=y=>a.value=y),language:"html",theme:"vs-light"},null,8,["modelValue"])):e.createCommentVNode("",!0),e.createVNode(oe,{visible:s.value,"onUpdate:visible":E[3]||(E[3]=y=>s.value=y),selection:d.value,"onUpdate:selection":E[4]||(E[4]=y=>d.value=y),fields:x.fields,title:"Імпорт полів для картки","id-prefix":"import-card",onConfirm:p,onCancel:g},null,8,["visible","selection","fields"])]))}}),ss={class:"flex flex-col flex-1"},cs=e.defineComponent({__name:"vs-tab-filter",props:{fields:{},columns:{}},emits:["update:columns","save"],setup(t,{emit:n}){const r=t,l=n;console.log(r.columns);const o=e.ref(r.columns||[]);e.watch(()=>r.columns,u=>o.value=u||[],{immediate:!0}),e.watch(o,u=>l("update:columns",u));const i=e.ref("list"),a=e.ref(!1),s=e.ref([]),d=[{key:"id",label:"Name"},{key:"label",label:"UA"},{key:"type",label:"Тип"}],c={name:{type:"text",label:"Name",disabled:!0,validators:["required"]},label:{type:"text",label:"UA",validators:["required"]},type:{type:"radio",label:"Тип",validators:["required"],options:[{text:"Check",id:"check"},{text:"Range",id:"range"},{text:"Date",id:"date"},{text:"Text",id:"text"},{text:"Autocomplete",id:"autocomplete"}]},data:{type:"text",label:"Класифікатор",conditions:["type","in",["autocomplete"]],validators:["required"]}};function f(){s.value=o.value.map(u=>u.name||u.id),a.value=!0}function m(){var E;const u=[...o.value],h=((E=r.fields)==null?void 0:E.filter(y=>s.value.includes(y.name)))||[],x=ae(u,h,{selectedKeys:s.value,resolveKey:y=>Q(y)});o.value=x,a.value=!1,s.value=[]}function p(){a.value=!1,s.value=[]}function g(){let u=[];i.value==="all"?u=r.fields||[]:i.value==="none"?u=[]:u=o.value,l("save",u)}return(u,h)=>(e.openBlock(),e.createElementBlock("div",ss,[e.createElementVNode("div",{class:"flex justify-between mb-3 gap-2"},[e.createElementVNode("button",{onClick:f,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:g,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(te,{key:0,modelValue:o.value,"onUpdate:modelValue":h[0]||(h[0]=x=>o.value=x),"columns-scheme":d,"form-scheme":c,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])):e.createCommentVNode("",!0),e.createVNode(oe,{visible:a.value,"onUpdate:visible":h[1]||(h[1]=x=>a.value=x),selection:s.value,"onUpdate:selection":h[2]||(h[2]=x=>s.value=x),fields:u.fields,title:"Імпорт полів","id-prefix":"import-filter",onConfirm:m,onCancel:p},null,8,["visible","selection","fields"])]))}}),jt=e.defineComponent({__name:"MapView",setup(t,{expose:n}){const r=e.ref(null),l=Ri({container:r,mapOptions:{style:{version:8,sources:{},layers:[]},center:[30.5234,50.4501],zoom:9},controls:{navigation:!0,scale:!0}});return n({ctx:l}),(o,i)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"el",ref:r,class:"w-full h-full rounded-xl overflow-hidden"},[e.renderSlot(o.$slots,"default")],512))}}),ds=e.defineComponent({__name:"MapDataLayer",props:{id:{},layer:{},styleYaml:{}},setup(t,{expose:n}){var p;const{map:r,flyTo:l}=re(),o=t,i=o.id,a=String(o.id),s=`${location.origin}/api/vtile/${o.id}/ua/{z}/{x}/{y}.vmt`,d=R(i,{sourceId:a,source:{type:"vector",tiles:[s],minzoom:0,maxzoom:14},popup:o.layer.popup,layer:{style:(p=o.layer)==null?void 0:p.style}});n({layerHandle:d}),l({center:[34.4924,48.45658],animate:!1});let c=null;function f(){c&&clearTimeout(c),c=setTimeout(()=>{c=null,m().catch(g=>console.error("Failed to update map layer",g))},300)}async function m(){r.value&&d.setStyle(o.styleYaml)}return e.watch(()=>o.styleYaml,f),e.onBeforeUnmount(()=>{d.remove()}),(g,u)=>null}}),ms={class:"map-filter"},ps={key:0,class:"map-filter__header"},fs={class:"map-filter__title"},Ot=D(e.defineComponent({__name:"MapFilterWidget",props:{filters:{},title:{},layerId:{}},setup(t){const n=e.defineAsyncComponent(()=>import("@opengis/filter")),r=e.ref({}),l=t;function o(i){const a=l.layerId,s=Object.entries(i).map(([c,f])=>`${c}=${f}`).join("|");R(a).setFilter(s)}return(i,a)=>(e.openBlock(),e.createElementBlock("div",ms,[i.title?(e.openBlock(),e.createElementBlock("div",ps,[e.createElementVNode("h3",fs,e.toDisplayString(i.title),1)])):e.createCommentVNode("",!0),e.createVNode(e.unref(n),{view:"inline",schema:i.filters,value:r.value,limit:5,onChange:a[0]||(a[0]=s=>o(s.data))},null,8,["schema","value"])]))}}),[["__scopeId","data-v-f7cd08a9"]]),us={class:"flex flex-row gap-x-3 z-10 relative widget"},gs=["onClick"],hs=["src","alt"],Rt=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:{}},r=e.ref("gki"),l=R("base",{source:{type:"raster",tiles:[n[r.value].url]},beforeId:0});function o(i){if(r.value=i,!n[i].url)return l.setVisible(!1);l.setVisible(!0),l.setTiles([n[i].url])}return(i,a)=>(e.openBlock(),e.createElementBlock("div",us,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(n,(s,d)=>e.createElementVNode("div",{key:d,onClick:c=>o(d)},[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",r.value===d?"border-blue-500":"border-gray-200"])},[s.preview?(e.openBlock(),e.createElementBlock("img",{key:0,src:s.preview,alt:s.title,class:"object-cover rounded-lg w-12 h-12"},null,8,hs)):e.createCommentVNode("",!0)],2)],8,gs)),64))]))}}),ys={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%"}},xs={class:"flex flex-col gap-1 p-5"},ks={class:"flex items-center justify-between w-full text-sm text-gray-800 ml-2"},Ut=e.defineComponent({__name:"MapLegendWidget",props:{items:{}},setup(t){const n=t,{map:r,ready:l}=re(),o=e.ref([]);let i=null;function a(f){return f?f.map((m,p)=>{var h;const g=(m==null?void 0:m.name)||(m==null?void 0:m.label)||(m==null?void 0:m.title)||(m==null?void 0:m.id)||`Layer ${p+1}`,u=(m==null?void 0:m.color)||(m==null?void 0:m.fill)||((h=m==null?void 0:m.paint)==null?void 0:h.color)||"#3388ff";return{id:`${g}-${p}`,label:g,color:u}}):[]}function s(f){return f!=null&&f.layers?f.layers.filter(m=>{const p=m.paint||{};return p["fill-color"]||p["line-color"]||p["circle-color"]}).map((m,p)=>{var h;const g=m.paint||{},u=g["fill-color"]||g["line-color"]||g["circle-color"]||"#3388ff";return{id:m.id||`layer-${p}`,label:((h=m.metadata)==null?void 0:h.title)||m.id||`Layer ${p+1}`,color:u}}):[]}async function d(){var p;await l();const f=r.value;if(!f)return;const m=(p=f.getStyle)==null?void 0:p.call(f);o.value=s(m)}function c(){const f=r.value;if(!f)return;i==null||i();const m=()=>d();f.on("styledata",m),i=()=>f.off("styledata",m)}return e.watch(()=>n.items,async f=>{f!=null?(o.value=a(f),i==null||i()):(await l(),c(),d())},{immediate:!0,deep:!0}),e.onMounted(async()=>{(n.items===void 0||n.items===null)&&(await l(),c(),d())}),e.onBeforeUnmount(()=>{i==null||i(),i=null}),(f,m)=>o.value.length?(e.openBlock(),e.createElementBlock("div",ys,[e.createElementVNode("div",xs,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,p=>(e.openBlock(),e.createElementBlock("div",{key:p.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:p.color})},null,4),e.createElementVNode("span",ks,[e.createElementVNode("span",null,e.toDisplayString(p.label),1)])]))),128))])])):e.createCommentVNode("",!0)}});function bs(){const{map:t,ready:n}=re(),r=e.ref(null),l=e.ref(null),o=e.ref(null),i=e.ref(null);let a=[];function s(){a.forEach(p=>p()),a=[]}const d=p=>{var h;r.value=[p.point.x,p.point.y];const g=t.value.queryRenderedFeatures(p.point);if(!(g!=null&&g.length)){c();return}const u=R(g[0].source)||R(g[0].layer.id);u!=null&&u.popup&&(l.value=((h=u.popup)==null?void 0:h.fields)||u.popup,i.value=g[0].properties)},c=()=>{l.value=null,i.value=null,r.value=null};async function f(){await n(),t.value&&(s(),t.value.on("mousemove",d),t.value.on("mouseleave",c))}function m(){s(),l.value=null,i.value=null,r.value=null}return n().then(f),{popupCoords:r,popupFields:l,popupValues:i,disable:m,title:o}}const ws={class:"popup-card relative w-full overflow-hidden rounded-2xl border border-blue-100 bg-white/95 shadow-2xl backdrop-blur-sm"},_s={key:0,class:"border-b border-gray-200 px-3 py-2 text-sm font-semibold text-gray-800"},Es={class:"px-3 py-2 text-xs text-gray-600"},Ns={class:"w-full border-collapse"},Cs={class:"w-1/2 break-words pb-1 pr-2 font-medium text-gray-700"},Bs={class:"w-1/2 break-words pb-1 pl-2 text-right"},Vs={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)"}},As={key:1},Pt=D(e.defineComponent({__name:"MapPopup",setup(t){const{popupCoords:n,disable:r,popupFields:l,popupValues:o,title:i}=bs(),a=e.ref(null),s=e.ref({left:"-9999px",top:"-9999px"}),d=e.computed(()=>{var m;return((m=l.value)==null?void 0:m.length)>0&&Object.keys(o.value||{}).length>0}),c=e.computed(()=>{const m=l.value.find(p=>p.meta==="title");return o.value[m.name]});function f(){if(!d.value||!n.value||!a.value){s.value={left:"-9999px",top:"-9999px"};return}const[m,p]=n.value;a.value;const g=m+18,u=p+18;s.value={left:`${g}px`,top:`${u}px`}}return e.watch([n],()=>{e.nextTick(()=>f())}),e.onBeforeUnmount(()=>{r()}),(m,p)=>d.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"popupRef",ref:a,class:"absolute z-30 w-[280px] pointer-events-none text-gray-800",style:e.normalizeStyle(s.value)},[e.createElementVNode("div",ws,[c.value?(e.openBlock(),e.createElementBlock("div",_s,e.toDisplayString(c.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Es,[e.createElementVNode("table",Ns,[e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l).filter(g=>g.meta!=="title"),g=>(e.openBlock(),e.createElementBlock("tr",{key:g.value,class:"align-top"},[e.createElementVNode("td",Cs,e.toDisplayString(g.label||g.title),1),e.createElementVNode("td",Bs,[g.meta==="badge"?(e.openBlock(),e.createElementBlock("span",Vs,e.toDisplayString(e.unref(o)[g.name]),1)):(e.openBlock(),e.createElementBlock("span",As,e.toDisplayString(e.unref(o)[g.name]),1))])]))),128))])])])])],4)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-c630c3c0"]]);function $s(){const{map:t,ready:n}=re(),r=e.ref(null),l=e.ref(null),o=e.ref(null),i=e.ref(!1),a=e.computed(()=>i.value||!!r.value||!!o.value);let s=null;function d(){r.value=null,l.value=null,o.value=null,i.value=!1}function c(){if(s){try{s()}catch{}s=null}}async function f(){await n();const h=t.value;h&&(c(),d(),h.on("click",m),s=()=>h.off("click",m))}function m(h){const x=t.value;if(!x)return;const y=x.queryRenderedFeatures(h.point)[0];if(!y){d();return}const k=R(y.source);p(y,k==null?void 0:k.card)}async function p(h,x){var y,k;if(!((y=h==null?void 0:h.properties)!=null&&y.id))return;const E=new URLSearchParams;E.set("layer",h.source),E.set("id",String((k=h.properties)==null?void 0:k.id)),i.value=!0,o.value=null,r.value=null,l.value=h||null;try{const w=await fetch(`/api/map-format?${E.toString()}`);if(!w.ok)throw new Error(`Failed (${w.status})`);const b=await w.json();r.value={rows:b.rows||{},fields:x||[],html:b.html||null}}catch{o.value="Не вдалося завантажити дані",r.value=null,K.notify({type:"error",title:"Помилка",message:"Не вдалося завантажити дані"})}finally{i.value=!1}}function g(){d()}function u(){c(),d()}return n().then(f),e.onBeforeUnmount(()=>u()),{card:r,cardFeature:l,cardError:o,cardLoading:i,isOpen:a,close:g}}const vs={key:0,class:"absolute top-4 right-4 z-30 w-[320px] max-h-[80%] overflow-hidden rounded-2xl border border-slate-200 bg-white/95 shadow-2xl backdrop-blur-md flex flex-col"},Ss={class:"flex items-start justify-between gap-3 border-b border-slate-200 px-4 py-3"},Fs={class:"flex-1 overflow-y-auto px-4 py-3 space-y-3 text-sm text-slate-700"},Ls={key:0,class:"text-center text-xs text-slate-500"},Ts={key:1,class:"text-center text-xs text-red-500"},Ms=["innerHTML"],Ds={key:1,class:"space-y-2"},Is={class:"text-xs font-semibold text-slate-500 uppercase tracking-wide"},js={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)"}},Os={key:1,class:"text-sm text-right text-slate-800 whitespace-pre-wrap"},Rs={key:2,class:"text-center text-xs text-slate-400"},zt=D(e.defineComponent({__name:"MapCardWidget",setup(t){const{card:n,cardError:r,cardLoading:l,isOpen:o,close:i}=$s(),a=e.computed(()=>{var d,c;const s=((d=n.value)==null?void 0:d.rows)??{};return(((c=n.value)==null?void 0:c.fields)??[]).map(f=>({key:f.name,label:f.ua||f.label||f.title||f.name,value:(s==null?void 0:s[f.name])??"—",format:f.format||"text"}))});return(s,d)=>(e.openBlock(),e.createBlock(e.Transition,{name:"fade"},{default:e.withCtx(()=>[e.unref(o)?(e.openBlock(),e.createElementBlock("div",vs,[e.createElementVNode("div",Ss,[d[2]||(d[2]=e.createElementVNode("div",{class:"min-w-0"},[e.createElementVNode("p",{class:"text-base font-semibold text-slate-900 truncate"}," Інформація про об'єкт ")],-1)),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",onClick:d[0]||(d[0]=(...c)=>e.unref(i)&&e.unref(i)(...c))},[...d[1]||(d[1]=[e.createElementVNode("span",{class:"sr-only"},"Close",-1),e.createTextVNode(" ✕ ",-1)])])]),e.createElementVNode("div",Fs,[e.unref(l)?(e.openBlock(),e.createElementBlock("div",Ls," Завантаження даних… ")):e.unref(r)?(e.openBlock(),e.createElementBlock("div",Ts,e.toDisplayString(e.unref(r)),1)):e.unref(n)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.unref(n).html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"prose prose-sm max-w-none",innerHTML:e.unref(n).html},null,8,Ms)):a.value.length?(e.openBlock(),e.createElementBlock("div",Ds,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.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",Is,e.toDisplayString(c.label),1),c.format==="badge"?(e.openBlock(),e.createElementBlock("span",js,e.toDisplayString(c.value),1)):(e.openBlock(),e.createElementBlock("span",Os,e.toDisplayString(c.value),1))]))),128))])):(e.openBlock(),e.createElementBlock("div",Rs,"Даних не знайдено."))],64)):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)]),_:1}))}}),[["__scopeId","data-v-7264c08d"]]),Us={class:"flex h-screen bg-gradient-to-br from-slate-50 to-white"},Ps={class:"flex-1 relative overflow-hidden"},zs={class:"absolute top-0 left-0 w-full z-20"},qs={class:"flex items-center justify-between bg-white/80 backdrop-blur border-b border-gray-200 px-6 py-3 shadow-sm gap-4"},Hs={class:"flex items-center gap-3"},Ys={class:"font-semibold text-lg text-gray-800 line-clamp-1"},Ks={class:"text-xs text-gray-500 truncate"},Ws=["title"],Gs={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]"},Zs={class:"relative w-full h-full"},Qs={style:{top:"10px",left:"230px",position:"absolute","z-index":"1"}},Xs={class:"absolute top-4 left-4 z-20"},Js={class:"absolute bottom-4 left-4 z-20"},ec={class:"w-[650px] bg-white border-l border-gray-100 flex flex-col overflow-hidden shadow-lg"},tc={class:"flex-1 flex flex-col h-full"},nc={class:"px-3 pt-3 pb-2 border-b border-gray-100"},rc={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"},oc=["aria-selected","onClick"],lc={class:"leading-none"},ac={class:"flex flex-col flex-1 overflow-y-hidden p-3"},ic=e.defineComponent({__name:"service",setup(t){const n=pe.useRoute(),r=pe.useRouter(),l=n.params.id,o=e.ref(null),i=e.ref({}),a=e.ref(null),s=e.ref(""),d=e.ref([]),c=e.ref([]),f=e.ref([]),m=e.ref([]),p=e.computed(()=>{var y,k;return((y=a.value)==null?void 0:y.id)??((k=a.value)==null?void 0:k.service_id)??null}),g=[{key:"style",label:"Style",icon:Ho},{key:"popup",label:"Popup",icon:rl},{key:"filter",label:"Filter",icon:il},{key:"legend",label:"Legend",icon:Go},{key:"card",label:"Card",icon:Jo}],u=g.map(y=>y.key),h=e.ref("style");e.onMounted(async()=>{const y=n.query.tab;y&&u.includes(y)&&(h.value=y),await x()}),e.watch(h,y=>{n.query.tab!==y&&r.replace({query:{...n.query,tab:y}})}),e.watch(()=>n.query.tab,y=>{y&&u.includes(y)&&h.value!==y&&(h.value=y)});const x=async()=>{try{const y=await fetch(`/api/gis-service/${l}`);if(!y.ok)throw new Error(`${y.status}`);const k=await y.json();i.value=k||{},o.value=l,a.value=k||null,s.value=k.style||"",c.value=(k==null?void 0:k.popup)||[],f.value=(k==null?void 0:k.card)||[],d.value=(k==null?void 0:k.legend)||[],m.value=(k==null?void 0:k.filters)||[]}catch(y){console.error("Failed to fetch map info",y)}};e.watch(()=>{var y;return(y=a.value)==null?void 0:y.style},y=>{y?typeof y=="string"?s.value=y:s.value=JSON.parse(JSON.stringify(y)):s.value=""},{deep:!0});async function E(y,k){if(a[y]=k,!!p.value)try{if(!(await fetch(`/api/gis-service/${p.value}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({[y]:k})})).ok)throw new Error("Save failed");K.notify({type:"success",title:"Успіх",message:`${y} saved`}),await x()}catch(w){K.notify({type:"error",title:"Помилка",message:`Failed to save ${y}`}),console.error(w)}}return(y,k)=>{var w,b,v,S;return e.openBlock(),e.createElementBlock("div",Us,[e.createElementVNode("div",Ps,[e.createElementVNode("div",zs,[e.createElementVNode("div",qs,[e.createElementVNode("div",Hs,[e.createElementVNode("button",{onClick:k[0]||(k[0]=B=>y.$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"},[...k[11]||(k[11]=[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",Ys,e.toDisplayString((w=a.value)==null?void 0:w.name),1),e.createElementVNode("div",Ks," Сервіс: "+e.toDisplayString((b=a.value)==null?void 0:b.service_key),1)])]),e.createElementVNode("div",{class:"max-w-xl text-xs text-gray-600 truncate",title:(v=a.value)==null?void 0:v.description},e.toDisplayString((S=a.value)==null?void 0:S.description),9,Ws)])]),e.createElementVNode("div",Gs,[e.createElementVNode("div",Zs,[e.createVNode(jt,null,{default:e.withCtx(()=>{var B,M,I;return[(B=a.value)!=null&&B.service_id?(e.openBlock(),e.createBlock(ds,{key:0,id:(M=a.value)==null?void 0:M.service_id,layer:a.value,"style-yaml":s.value},null,8,["id","layer","style-yaml"])):e.createCommentVNode("",!0),e.createElementVNode("div",Qs,[p.value?(e.openBlock(),e.createBlock(Ot,{key:0,"layer-id":p.value,filters:a.value.filters},null,8,["layer-id","filters"])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Xs,[e.createVNode(Rt)]),e.createElementVNode("div",Js,[e.createVNode(Ut,{items:((I=a.value)==null?void 0:I.legend)||null},null,8,["items"])]),e.createVNode(Pt),e.createVNode(zt)]}),_:1})])])]),e.createElementVNode("div",ec,[e.createElementVNode("div",tc,[e.createElementVNode("div",nc,[e.createElementVNode("div",rc,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(g,B=>e.createElementVNode("button",{key:B.key,type:"button",role:"tab","aria-selected":h.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",h.value===B.key?"bg-white shadow-sm text-gray-700":""]),onClick:M=>h.value=B.key},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(B.icon),{class:"h-3.5 w-3.5 mb-0.5"})),e.createElementVNode("span",lc,e.toDisplayString(B.label),1)],10,oc)),64))])]),e.createElementVNode("div",ac,[h.value==="style"?(e.openBlock(),e.createBlock(Oi,{key:0,token:p.value,"style-yaml":s.value,"onUpdate:styleYaml":k[1]||(k[1]=B=>s.value=B),onSave:k[2]||(k[2]=B=>E("style",B))},null,8,["token","style-yaml"])):h.value==="legend"?(e.openBlock(),e.createBlock(es,{key:1,token:p.value,columns:d.value,"onUpdate:columns":k[3]||(k[3]=B=>d.value=B),onSave:k[4]||(k[4]=B=>E("legend",B))},null,8,["token","columns"])):h.value==="popup"?(e.openBlock(),e.createBlock(Yi,{key:2,token:p.value,columns:c.value,fields:i.value.fields,"onUpdate:columns":k[5]||(k[5]=B=>c.value=B),onSave:k[6]||(k[6]=B=>E("popup",B))},null,8,["token","columns","fields"])):h.value==="card"?(e.openBlock(),e.createBlock(is,{key:3,token:p.value,columns:f.value,fields:i.value.fields,"onUpdate:columns":k[7]||(k[7]=B=>f.value=B),onSave:k[8]||(k[8]=(B,M)=>E(B,M))},null,8,["token","columns","fields"])):h.value==="filter"?(e.openBlock(),e.createBlock(cs,{key:4,token:p.value,fields:i.value.fields,columns:m.value,"onUpdate:columns":k[9]||(k[9]=B=>m.value=B),onSave:k[10]||(k[10]=B=>E("filters",B))},null,8,["token","fields","columns"])):e.createCommentVNode("",!0)])])])])}}}),sc={key:0,class:"map-info__header"},cc={key:0,class:"map-info__title"},dc={key:1,class:"map-info__menu"},mc=["href"],pc=["innerHTML"],fc=D(e.defineComponent({__name:"MapInfoWidget",props:{title:{},content:{},links:{}},setup(t){const n=t,r=e.ref(null),l=e.ref(!1),o=e.computed(()=>Array.isArray(n.links)?n.links.filter(s=>(s==null?void 0:s.label)&&(s==null?void 0:s.url)):[]);function i(s){s.stopPropagation(),l.value=!l.value}function a(s){if(!l.value)return;const d=r.value;if(!d){l.value=!1;return}d.contains(s.target)||(l.value=!1)}return e.onMounted(()=>{document.addEventListener("click",a,!0)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",a,!0)}),(s,d)=>(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:r},[s.title||o.value.length?(e.openBlock(),e.createElementBlock("div",sc,[s.title?(e.openBlock(),e.createElementBlock("h2",cc,e.toDisplayString(s.title),1)):e.createCommentVNode("",!0),o.value.length?(e.openBlock(),e.createElementBlock("div",dc,[e.createElementVNode("button",{type:"button",class:"map-info__menu-button",onClick:i,"aria-label":"Показати посилання"},[...d[1]||(d[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)])]),e.createElementVNode("div",{class:e.normalizeClass(["vsTailwind vs-popover__content right map-info__popover",{"map-info__popover--open":l.value}]),onClick:d[0]||(d[0]=e.withModifiers(()=>{},["stop"]))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,c=>(e.openBlock(),e.createElementBlock("a",{key:c.url||c.label,class:"map-info__popover-link",href:c.url},e.toDisplayString(c.label),9,mc))),128))],2)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),s.content?(e.openBlock(),e.createElementBlock("div",{key:1,class:"map-info__content",innerHTML:s.content},null,8,pc)):e.createCommentVNode("",!0)],512))}}),[["__scopeId","data-v-e9128963"]]),uc={class:"layers-panel"},gc={key:0,class:"layers-panel__title"},hc={class:"layers-panel__label"},yc=["checked","onChange"],xc={key:0,class:"layers-panel__actions"},kc=["innerHTML","onClick"],bc=D(e.defineComponent({__name:"MapDataLayersWidget",props:{layers:{},title:{}},emits:["action"],setup(t,{emit:n}){const r=t,l=n,o=e.computed(()=>{if(typeof r.title=="string"){const s=r.title.trim();return s||null}return null});function i(){for(let s=0;s<r.layers.length;s++){const d=r.layers[s],c=d.id,f=`${location.origin}/api/vtile/${d.id}/ua/{z}/{x}/{y}.vmt`,m={sourceId:c,source:{type:"vector",tiles:[f],minzoom:0,maxzoom:14},layer:{id:c,source:c,"source-layer":c,style:d.style},card:d.card,popup:d.popup};R(d.id,m)}}e.onMounted(()=>{console.log("mount"),i()});function a(s,d){const c=R(s.id),f=d.target;c.setVisible(f.checked)}return(s,d)=>(e.openBlock(),e.createElementBlock("div",uc,[o.value?(e.openBlock(),e.createElementBlock("h3",gc,e.toDisplayString(o.value),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.layers,c=>{var f;return e.openBlock(),e.createElementBlock("div",{key:c.id,class:"layers-panel__item"},[e.createElementVNode("label",hc,[e.createElementVNode("input",{type:"checkbox",checked:c.visible,onChange:m=>a(c,m)},null,40,yc),e.createElementVNode("span",null,e.toDisplayString(c.name),1)]),(f=c.actions)!=null&&f.length?(e.openBlock(),e.createElementBlock("div",xc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.actions,m=>(e.openBlock(),e.createElementBlock("button",{key:m.widget||m.id||m.icon,type:"button",class:"layers-panel__action",innerHTML:m.icon,onClick:p=>l("action",{layerId:m.widget})},null,8,kc))),128))])):e.createCommentVNode("",!0)])}),128))]))}}),[["__scopeId","data-v-3558e518"]]),wc={class:"relative mt-[10px]"},_c={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"absolute top-1/2 left-[8px] w-[16px] h-[16px]",style:{transform:"translate(0, -50%)"}},Ec={class:"mt-2"},Nc={class:"flex items-center gap-x-3"},Cc={class:"text-xs opacity-60 text-[#4b5563]"},Bc={class:"flex items-center w-full cursor-pointer gap-2"},Vc=["checked","onChange"],Ac={class:"text-[13px] text-gray-600 truncate max-w-[260px]"},$c={class:"mt-2"},vc={class:"flex items-center gap-x-3"},Sc={class:"text-xs opacity-60 text-[#4b5563]"},Fc={class:"flex items-center w-full cursor-pointer gap-2"},Lc=["checked","onChange"],Tc={class:"text-[13px] text-gray-600 truncate max-w-[260px]"},Mc=D(e.defineComponent({__name:"LayersCatalogTab",props:{catalog:{},selected:{}},emits:["toggle-layer"],setup(t,{emit:n}){const r=t,l=e.ref(!1),o=e.ref(!1),i=e.ref(""),a=e.computed(()=>i.value?r.catalog.services.filter(d=>d.name.toLowerCase().includes(i.value.toLowerCase())):r.catalog.services),s=e.computed(()=>i.value?r.catalog.rasters.filter(d=>d.name.toLowerCase().includes(i.value.toLowerCase())):r.catalog.rasters);return(d,c)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",wc,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":c[0]||(c[0]=f=>i.value=f),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,i.value]]),(e.openBlock(),e.createElementBlock("svg",_c,[...c[3]||(c[3]=[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)])]))]),e.createElementVNode("div",Ec,[e.createElementVNode("div",{class:"hover:bg-gray-100 cursor-pointer p-[8px] rounded-lg flex justify-between items-center",onClick:c[1]||(c[1]=f=>l.value=!l.value)},[e.createElementVNode("div",Nc,[(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",l.value?"rotate-90":""])},[...c[4]||(c[4]=[e.createElementVNode("path",{d:"M1 9L5 5L1 1",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])],2)),c[5]||(c[5]=e.createElementVNode("div",{class:"max-w-[260px] text-[14px] text-[#4b5563]"},"Сервіси",-1))]),e.createElementVNode("div",Cc,e.toDisplayString(a.value.length),1)]),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(a.value,f=>(e.openBlock(),e.createElementBlock("div",{key:f.id,class:"hover:bg-gray-100 rounded-lg flex items-center ml-[20px] py-[8px] px-[8px]"},[e.createElementVNode("label",Bc,[e.createElementVNode("input",{type:"checkbox",class:"peer hidden",checked:d.selected.includes(f.id),onChange:m=>d.$emit("toggle-layer",f.id,m.target.checked,f)},null,40,Vc),c[6]||(c[6]=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",{"data-v-b96f3537":"",xmlns:"http://www.w3.org/2000/svg",width:"12",height:"8",viewBox:"0 0 12 8",fill:"none"},[e.createElementVNode("path",{"data-v-b96f3537":"",d:"M10.6663 1L4.24967 7.41667L1.33301 4.5",stroke:"#fff","stroke-linecap":"round","stroke-linejoin":"round"})])],-1)),e.createElementVNode("span",Ac,e.toDisplayString(f.name),1)])]))),128))],512),[[e.vShow,l.value]])]),_:1})]),e.createElementVNode("div",$c,[e.createElementVNode("div",{class:"hover:bg-gray-100 cursor-pointer p-[8px] rounded-lg flex justify-between items-center",onClick:c[2]||(c[2]=f=>o.value=!o.value)},[e.createElementVNode("div",vc,[(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",o.value?"rotate-90":""])},[...c[7]||(c[7]=[e.createElementVNode("path",{d:"M1 9L5 5L1 1",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])],2)),c[8]||(c[8]=e.createElementVNode("div",{class:"max-w-[260px] text-[14px] text-[#4b5563]"},"Растри",-1))]),e.createElementVNode("div",Sc,e.toDisplayString(s.value.length),1)]),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(s.value,f=>(e.openBlock(),e.createElementBlock("div",{key:f.id,class:"hover:bg-gray-100 rounded-lg flex items-center ml-[20px] py-[8px] px-[8px]"},[e.createElementVNode("label",Fc,[e.createElementVNode("input",{type:"checkbox",class:"peer hidden",checked:d.selected.includes(f.id),onChange:m=>d.$emit("toggle-layer",f.id,m.target.checked,f)},null,40,Lc),c[9]||(c[9]=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",class:"opacity-0 peer-checked:opacity-100 transition"},[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",Tc,e.toDisplayString(f.name),1)])]))),128))],512),[[e.vShow,o.value]])]),_:1})])]))}}),[["__scopeId","data-v-9c9e6edf"]]),Dc={class:"mb-4"},Ic={class:"space-y-2 max-h-[400px] overflow-y-auto pr-1 [&::-webkit-scrollbar]:h-1.5 [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-gray-300 [&::-webkit-scrollbar-track]:bg-transparent"},jc=["onDragstart","onDragover","onDrop"],Oc={class:"flex items-center justify-between"},Rc={class:"flex items-center gap-2 cursor-move"},Uc=["checked","onChange"],Pc={class:"text-gray-800"},zc={class:"flex items-center gap-2"},qc=["onClick"],Hc=["onClick"],Yc={class:"flex items-center gap-2"},Kc={class:"text-xs text-gray-600"},Wc={class:"w-48"},Gc=e.defineComponent({__name:"LayersSelectedTab",props:{catalog:{},selected:{}},emits:["selectLayer","reorder","remove"],setup(t,{emit:n}){const r=t,l=n,o=e.reactive({}),i=e.ref(null),a=e.ref(null),s=new Map,d=e.reactive({top:0,left:0}),c=e.ref(null),f=e.reactive({top:0,left:0}),m=e.ref(null),p=new Map,g=e.reactive({});e.watch(()=>r.selected,C=>{C.forEach(_=>{o[_]==null&&(o[_]=100)})},{immediate:!0});function u(C,_){_?s.set(C,_):s.delete(C)}function h(C){var q;const _=R(C);if(!_)return;const $=(o[C]??100)/100,U=(q=_.getLayer)==null?void 0:q.call(_);if(U)switch(U.type){case"raster":_.updatePaint({"raster-opacity":$});break;case"fill":_.updatePaint({"fill-opacity":$});break;case"line":_.updatePaint({"line-opacity":$});break;case"circle":_.updatePaint({"circle-opacity":$});break;case"symbol":_.updatePaint({"icon-opacity":$});break}}function x(){if(!i.value)return;const C=s.get(i.value);if(!C)return;const _=C.getBoundingClientRect();d.top=_.bottom+8+window.scrollY,d.left=_.left+window.scrollX}function E(C){i.value=i.value===C?null:C,i.value&&(o[C]==null&&(o[C]=100),e.nextTick(x))}e.watch(()=>r.selected,C=>{C.forEach(_=>{g[_]==null&&(g[_]=!0)})},{immediate:!0});function y(C,_){g[C]=_;const $=R(C);$&&$.setVisible(_)}function k(C,_){_?p.set(C,_):p.delete(C)}function w(C){c.value=c.value===C?null:C,c.value&&e.nextTick(()=>b(C))}function b(C){const _=p.get(C);if(!_)return;const $=_.getBoundingClientRect();f.top=$.bottom+6+window.scrollY,f.left=$.left+window.scrollX}function v(C){const _=R(C);_&&_.remove(),l("remove",C),c.value=null}function S(C){const _=C.target,$=i.value,U=c.value;if($){const q=a.value,ee=s.get($);if(q&&q.contains(_)||ee&&ee.contains(_))return;i.value=null}if(U){const q=m.value,ee=p.get(U);if(q&&q.contains(_)||ee&&ee.contains(_))return;c.value=null}}function B(){i.value&&x(),c.value&&b(c.value)}e.onMounted(()=>{document.addEventListener("click",S),window.addEventListener("resize",B),window.addEventListener("scroll",B,!0)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",S),window.removeEventListener("resize",B),window.removeEventListener("scroll",B,!0)}),re();function M(C){var U;if(!C)return;const _=R(C);!_||!((U=_.getSource)!=null&&U.call(_))||(c.value=null)}const I=e.ref(null),G=e.ref(null);function V(C){I.value=C}function A(C){G.value=C}function L(C){if(I.value===null||I.value===C){I.value=null,G.value=null;return}const _=[...r.selected],[$]=_.splice(I.value,1);_.splice(C,0,$),l("reorder",_),I.value=null,G.value=null}return(C,_)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",Dc,[e.createElementVNode("button",{class:"flex items-center gap-2 text-blue-600 hover:text-blue-700 transition-colors px-3 py-2 rounded-md bg-blue-50 hover:bg-blue-100 w-full justify-center",onClick:_[0]||(_[0]=$=>l("selectLayer"))},[..._[5]||(_[5]=[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)])])]),e.createElementVNode("div",Ic,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.selected,($,U)=>{var q,ee;return e.openBlock(),e.createElementBlock("div",{key:$,class:e.normalizeClass(["border border-gray-200 rounded-md p-3 bg-white shadow-sm text-[13px] text-[#4b5563] transition-colors hover:bg-gray-50/50 cursor-move",{"opacity-50":I.value===U,"border-t-2 border-b-2 border-blue-500 bg-blue-50":G.value===U}]),draggable:"true",onDragstart:H=>V(U),onDragover:e.withModifiers(H=>A(U),["prevent"]),onDrop:H=>L(U)},[e.createElementVNode("div",Oc,[e.createElementVNode("div",Rc,[_[6]||(_[6]=e.createElementVNode("span",{class:"drag-handle cursor-move mr-2 text-gray-400"},"☰",-1)),e.createElementVNode("input",{type:"checkbox",class:"w-4 h-4 text-blue-600 rounded focus:ring-blue-500",checked:g[$]??!0,onChange:H=>y($,H.target.checked)},null,40,Uc),e.createElementVNode("span",Pc,e.toDisplayString(((q=C.catalog.services.find(H=>H.id===$))==null?void 0:q.name)||((ee=C.catalog.rasters.find(H=>H.id===$))==null?void 0:ee.name)),1)]),e.createElementVNode("div",zc,[e.createElementVNode("div",{ref_for:!0,ref:H=>u($,H),onClick:e.withModifiers(H=>E($),["stop"]),class:"text-sm text-gray-600 hover:text-gray-800 transition-colors px-2 py-1 rounded hover:bg-gray-100 cursor-pointer"},e.toDisplayString(o[$]??100)+"% ",9,qc),e.createElementVNode("div",{ref_for:!0,ref:H=>k($,H),onClick:e.withModifiers(H=>w($),["stop"]),class:"p-1 rounded-full hover:bg-gray-100 transition-colors cursor-pointer"},[..._[7]||(_[7]=[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 text-gray-600"},[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,Hc)])])],42,jc)}),128))]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[i.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"popoverEl",ref:a,class:"fixed z-[10002] py-2 px-3 w-56 text-sm bg-white shadow-lg rounded-lg",style:e.normalizeStyle({top:d.top+"px",left:d.left+"px"})},[e.createElementVNode("div",Yc,[_[8]||(_[8]=e.createElementVNode("label",{class:"text-gray-600 text-xs"},"Прозорість:",-1)),e.withDirectives(e.createElementVNode("input",{type:"range",min:"0",max:"100",step:"1","onUpdate:modelValue":_[1]||(_[1]=$=>o[i.value]=$),onInput:_[2]||(_[2]=$=>h(i.value)),class:"h-2 w-full accent-blue-600 rounded-lg cursor-pointer bg-gray-200"},null,544),[[e.vModelText,o[i.value]]]),e.createElementVNode("span",Kc,e.toDisplayString(o[i.value])+"%",1)])],4)):e.createCommentVNode("",!0)])),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[c.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"menuEl",ref:m,class:"fixed z-[10002] py-2 px-4 w-full max-w-[14rem] text-sm text-stone-800 bg-white shadow-[0_10px_40px_10px_rgba(0,0,0,0.08)] rounded-lg focus:outline-none focus:bg-stone-100 after:h-4 after:absolute after:-bottom-4 after:start-0 after:w-full before:h-4 before:absolute before:-top-4 before:start-0 before:w-full",style:e.normalizeStyle({top:f.top+"px",left:f.left+"px"})},[e.createElementVNode("div",Wc,[e.createElementVNode("button",{class:"w-full p-2 text-left text-sm flex items-center gap-2 text-gray-700 hover:bg-gray-100",onClick:_[3]||(_[3]=$=>M(c.value))},[..._[9]||(_[9]=[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)])]),_[11]||(_[11]=e.createElementVNode("button",{disabled:"",class:"w-full p-2 text-left text-sm flex items-center gap-2 text-gray-700 hover:bg-gray-100 opacity-50 cursor-not-allowed"},[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)),_[12]||(_[12]=e.createElementVNode("button",{disabled:"",class:"w-full p-2 text-left text-sm flex items-center gap-2 text-gray-700 hover:bg-gray-100 opacity-50 cursor-not-allowed"},[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)),_[13]||(_[13]=e.createElementVNode("hr",{class:"my-1 border-gray-200"},null,-1)),e.createElementVNode("button",{onClick:_[4]||(_[4]=$=>v(c.value)),class:"w-full p-2 text-left text-sm flex items-center gap-2 text-red-600 hover:bg-red-50"},[..._[10]||(_[10]=[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)]))]))}}),Zc={class:"w-full max-w-md mx-auto p-4 bg-white border border-gray-200 rounded-lg shadow-sm widget"},Qc={class:"flex items-center justify-between mb-4"},Xc={class:"flex items-center gap-2"},Jc={class:"text-lg font-semibold text-gray-800"},ed={class:"flex mb-4 border-b border-gray-200"},td=e.defineComponent({__name:"MapCatalogWidget",setup(t){const n=e.ref("catalog"),r=e.ref({services:[],rasters:[]}),l=e.ref([]),o=e.ref(""),{map:i}=re();async function a(){console.log("loadCatalog");const m=await fetch("/api/map-catalog");r.value=await m.json()}function s(m){return m.source_type==="raster"?{source:{type:"raster",tiles:[m.url],minzoom:0,maxzoom:20}}:{source:{type:"vector",tiles:[`${location.origin}/api/vtile/${m.id}/ua/{z}/{x}/{y}.vmt`],minzoom:0,maxzoom:14},layer:{style:m.style},card:m.card,popup:m.popup}}function d(m,p,g){var x;const u=s(g),h=R(g.id,u,i);if(h)if(h.setVisible(p),p){if(!l.value.includes(m)&&(l.value.push(m),(x=i.value)!=null&&x.getLayer(m)))try{i.value.moveLayer(m)}catch(E){console.warn("Cannot move new layer",m,E)}}else l.value=l.value.filter(E=>E!==m)}function c(){l.value.forEach(m=>{const p=R(m);p&&p.setVisible(!1)}),l.value=[]}function f(m){l.value=m,e.nextTick(()=>{var p;for(let g=m.length-1;g>=0;g--){const u=m[g];if((p=i.value)!=null&&p.getLayer(u))try{i.value.moveLayer(u)}catch(h){console.warn("Cannot move layer",u,h)}}})}return e.onMounted(a),(m,p)=>(e.openBlock(),e.createElementBlock("div",Zc,[e.createElementVNode("div",Qc,[e.createElementVNode("div",Xc,[p[5]||(p[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",Jc,[e.createTextVNode(e.toDisplayString(n.value==="catalog"?"Каталог":"Вибрані шари")+" ",1),e.createElementVNode("span",null," ("+e.toDisplayString(n.value==="catalog"?r.value.services.length+r.value.rasters.length:l.value.length)+") ",1)])]),e.createElementVNode("button",{onClick:c,class:"p-1 rounded-full hover:bg-gray-200 transition-colors","aria-label":"Reset layers"},[...p[6]||(p[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"><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"></path><path d="M8 16H3v5"></path></svg>',1)])])]),e.createElementVNode("div",ed,[e.createElementVNode("button",{onClick:p[0]||(p[0]=g=>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:p[1]||(p[1]=g=>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)]),n.value==="catalog"?(e.openBlock(),e.createBlock(Mc,{key:0,catalog:r.value,selected:l.value,onToggleLayer:d,search:o.value,"onUpdate:search":p[2]||(p[2]=g=>o.value=g)},null,8,["catalog","selected","search"])):(e.openBlock(),e.createBlock(Gc,{key:1,catalog:r.value,selected:l.value,onToggleLayer:d,onSelectLayer:p[3]||(p[3]=g=>n.value="catalog"),onReorder:f,onRemove:p[4]||(p[4]=g=>l.value=l.value.filter(u=>u!==g))},null,8,["catalog","selected"]))]))}}),nd={key:1,class:"flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative widget"},rd={class:"flex items-center justify-between p-5 pb-3"},od={class:"flex gap-[6px]"},ld={class:"h-full px-5 pb-5 space-y-8"},ad={class:"text-4xl font-medium text-gray-800 dark:text-neutral-200"},id={class:"space-y-[14px]"},sd={class:"flex items-center gap-[10px] text-gray-500"},cd={class:"flex items-center justify-end text-end"},dd={class:"font-medium text-gray-800 dark:text-neutral-200"},md={class:"ms-3 min-w-[40px] font-medium inline-block text-[#3C3C4399] dark:text-neutral-400"},pd=e.defineComponent({__name:"MapAttributeWidget",props:{config:{}},setup(t){const n=t;function r(s){return{"data_bp_myo.bp":"3c95e341465d","data_bp_myo.myo":"dbcb186818e3","data_mbd.mbd":"9587e69d35fd"}[s]||"3c95e341465d"}const l=e.ref({}),o=e.ref(!0);e.onMounted(async()=>{var p;const s=n.config.layer,d=r(s.id),c=`${location.origin}/api/vtile/${d}/ua/{z}/{x}/{y}.vmt`;R(d,{sourceId:d,source:{type:"vector",tiles:[c],minzoom:0,maxzoom:14},layer:{id:d,source:d,"source-layer":d,style:s.style},card:s.style.card,popup:(p=s.style)==null?void 0:p.popup});const m=await(await fetch(`/api/gis-service/${d}/${s.style.attribute}`)).json();l.value=Object.fromEntries(m.rows.map(g=>[g.id,Number(g.count)]))});const i=e.computed(()=>n.config.layer.style.rules.map(s=>({...s,count:l.value[s.value]??0}))),a=e.computed(()=>i.value.reduce((s,d)=>s+d.count,0));return(s,d)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[o.value?e.createCommentVNode("",!0):(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:d[0]||(d[0]=c=>o.value=!0)}," Набори даних ")),o.value?(e.openBlock(),e.createElementBlock("div",nd,[e.createElementVNode("div",rd,[d[4]||(d[4]=e.createElementVNode("h2",{class:"inline-block text-xl font-semibold text-gray-800 dark:text-neutral-200"}," Набори даних ",-1)),e.createElementVNode("div",od,[d[3]||(d[3]=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"},[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"14",viewBox:"0 0 16 14",fill:"none"},[e.createElementVNode("path",{d:"M2.04 0.58h11.92c.13.05.25.13.35.23.1.1.18.22.22.36.04.13.05.27.03.41a.9.9 0 0 1-.15.39L9.83 7v6.42L6.17 10.67V7L1.58 1.96a.9.9 0 0 1-.15-.39c-.02-.14 0-.28.04-.41.04-.14.12-.26.21-.36.1-.1.22-.18.36-.22Z",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"})])],-1)),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:d[1]||(d[1]=c=>o.value=!1)},[...d[2]||(d[2]=[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",ld,[e.createElementVNode("h4",ad,e.toDisplayString(a.value),1),e.createElementVNode("ul",id,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,c=>(e.openBlock(),e.createElementBlock("li",{key:c.label,class:"flex flex-wrap items-center justify-between gap-x-2"},[e.createElementVNode("div",null,[e.createElementVNode("label",sd,[e.createElementVNode("div",{class:"w-[16px] h-[16px] rounded",style:e.normalizeStyle({backgroundColor:c.color})},null,4),e.createTextVNode(" "+e.toDisplayString(c.label),1)])]),e.createElementVNode("div",cd,[e.createElementVNode("span",dd,e.toDisplayString(c.count),1),e.createElementVNode("span",md,e.toDisplayString(a.value>0?(c.count/a.value*100).toFixed(2):"0.00")+"% ",1)])]))),128))])])])):e.createCommentVNode("",!0)],64))}}),fd={key:0,class:"map-widget__state"},ud={key:1,class:"map-widget__state map-widget__state--error"},Ue=D(e.defineComponent({__name:"MapWidget",props:{id:{},height:{}},setup(t){const n=t;pe.useRoute();const r=e.ref(null),l=e.ref({}),o=e.ref(!1),i=e.ref(null),a=e.ref(!1),s=e.computed(()=>n.id||"main"),d=e.computed(()=>{var y,k;return{height:((y=n.height)==null?void 0:y.trim())||((k=l.value)==null?void 0:k.height)||"calc(100vh - 65px)"}});function c(y){return typeof y=="string"&&y.trim()?y.trim().toLowerCase():"top-left"}const f=e.computed(()=>l.value.widgets||[]),m=e.computed(()=>{var k;const y=(k=l.value.widgets)==null?void 0:k.map(w=>w.position);return[...new Set(y)]});function p(y){const k={"top-left":"absolute top-4 left-4 z-20","top-right":"absolute top-4 right-4 z-20","bottom-left":"absolute bottom-4 left-4 z-20","bottom-right":"absolute bottom-4 right-4 z-20"},w=c(y);return k[w]||k["top-left"]}async function g(){a.value=!1,o.value=!0,i.value=null;const y=await fetch(`/api/gis-map/${encodeURIComponent(s.value)}`);if(!y.ok)throw new Error(`Помилка завантаження (${y.status})`);const k=await y.json();l.value=k,a.value=!0,o.value=!1,k.center&&r.value.ctx.setCenter(k.center,{animate:!1}),k.zoom&&r.value.ctx.setZoom(k.zoom,{animate:!1})}const u=e.computed(()=>{var b,v,S;const y=((b=l.value)==null?void 0:b.layers)||[],k=((S=(v=l.value)==null?void 0:v.widgets)==null?void 0:S.filter(B=>B.type==="layers").flatMap(B=>{var M;return((M=B.config)==null?void 0:M.layers)||[]}))||[],w=[];return y.forEach(B=>{const M=k.find(I=>I.id===B.id);M&&(B.actions=M.actions),w.push(B)}),w}),h=e.ref([]);function x(y){h.value.includes(y)?h.value=h.value.filter(k=>k!==y):h.value.push(y)}const E=e.computed(()=>y=>h.value.includes(y.id));return e.watch(s,()=>{g()}),e.onMounted(()=>{g()}),(y,k)=>(e.openBlock(),e.createElementBlock("div",{class:"map-widget",style:e.normalizeStyle(d.value)},[e.createVNode(jt,{ref_key:"mapViewRef",ref:r,class:"map-widget__view"},{default:e.withCtx(()=>[a.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,w=>(e.openBlock(),e.createElementBlock("div",{key:w,class:e.normalizeClass(["map-overlay overflow-y-auto",p(w)])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value.filter(b=>b.position===w),b=>{var v,S,B,M,I,G,V,A,L,C;return e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:b.id||b.type,class:"map-overlay__item"},[b.type==="info"?(e.openBlock(),e.createBlock(fc,{key:0,title:((v=b.config)==null?void 0:v.title)||b.title||null,content:((S=b.config)==null?void 0:S.content)||"",links:((B=b.config)==null?void 0:B.goTo)||[]},null,8,["title","content","links"])):b.type==="catalog"?(e.openBlock(),e.createBlock(td,{key:1,api:((M=b.config)==null?void 0:M.api)||null},null,8,["api"])):b.type==="layers"?(e.openBlock(),e.createBlock(bc,{key:2,title:b.title||((I=b.config)==null?void 0:I.title)||"Шари",layers:u.value,onAction:k[0]||(k[0]=_=>x(_.layerId))},null,8,["title","layers"])):b.type==="basemaps"?(e.openBlock(),e.createBlock(Rt,{key:3,layers:((G=b.config)==null?void 0:G.layers)||null,"default-layer":((V=b.config)==null?void 0:V.default)||null,title:b.title||((A=b.config)==null?void 0:A.title)||null},null,8,["layers","default-layer","title"])):b.type==="legend"?(e.openBlock(),e.createBlock(Ut,{key:4,items:((L=b.config)==null?void 0:L.items)||[]},null,8,["items"])):b.type==="filters"&&E.value(b)?(e.openBlock(),e.createBlock(Ot,{key:5,"layer-id":(C=b.config)==null?void 0:C.layer,onClose:x},null,8,["layer-id"])):b.type==="attribute"?(e.openBlock(),e.createBlock(pd,{key:6,config:b.config},null,8,["config"])):e.createCommentVNode("",!0)])),[[e.vShow,b.visible!==!1]])}),128))],2))),128)),e.createVNode(Pt),e.createVNode(zt)],64)):e.createCommentVNode("",!0)]),_:1},512),o.value?(e.openBlock(),e.createElementBlock("div",fd,"Завантаження карти…")):i.value?(e.openBlock(),e.createElementBlock("div",ud,e.toDisplayString(i.value),1)):e.createCommentVNode("",!0)],4))}}),[["__scopeId","data-v-03a9fa12"]]);function gd(t){t.component("MapCustom",Ue)}Y.MapWidget=Ue,Y.Register=Uo,Y.Service=ic,Y.default=Ue,Y.install=gd,Object.defineProperties(Y,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
65
+ `),i=l?"+":r?"":"-";return o+i+`
66
+ `}function Rt(t){return t[t.length-1]===`
67
+ `?t.slice(0,-1):t}function Ri(t,n){for(var o=/(\n+)([^\n]*)/g,r=(function(){var s=t.indexOf(`
68
+ `);return s=s!==-1?s:t.length,o.lastIndex=s,zt(t.slice(0,s),n)})(),l=t[0]===`
69
+ `||t[0]===" ",i,a;a=o.exec(t);){var d=a[1],c=a[2];i=c[0]===" ",r+=d+(!l&&!i&&c!==""?`
70
+ `:"")+zt(c,n),l=i}return r}function zt(t,n){if(t===""||t[0]===" ")return t;for(var o=/ [^ ]/g,r,l=0,i,a=0,d=0,c="";r=o.exec(t);)d=r.index,d-l>n&&(i=a>l?a:d,c+=`
71
+ `+t.slice(l,i),l=i+1),a=d;return c+=`
72
+ `,t.length-l>n&&a>l?c+=t.slice(l,a)+`
73
+ `+t.slice(a+1):c+=t.slice(l),c.slice(1)}function zi(t){for(var n="",o=0,r,l=0;l<t.length;o>=65536?l+=2:l++)o=Be(t,l),r=G[o],!r&&Ce(o)?(n+=t[l],o>=65536&&(n+=t[l+1])):n+=r||Fi(o);return n}function Ui(t,n,o){var r="",l=t.tag,i,a,d;for(i=0,a=o.length;i<a;i+=1)d=o[i],t.replacer&&(d=t.replacer.call(o,String(i),d)),(le(t,n,d,!1,!1)||typeof d>"u"&&le(t,n,null,!1,!1))&&(r!==""&&(r+=","+(t.condenseFlow?"":" ")),r+=t.dump);t.tag=l,t.dump="["+r+"]"}function Ut(t,n,o,r){var l="",i=t.tag,a,d,c;for(a=0,d=o.length;a<d;a+=1)c=o[a],t.replacer&&(c=t.replacer.call(o,String(a),c)),(le(t,n+1,c,!0,!0,!1,!0)||typeof c>"u"&&le(t,n+1,null,!0,!0,!1,!0))&&((!r||l!=="")&&(l+=Ke(t,n)),t.dump&&Ee===t.dump.charCodeAt(0)?l+="-":l+="- ",l+=t.dump);t.tag=i,t.dump=l||"[]"}function qi(t,n,o){var r="",l=t.tag,i=Object.keys(o),a,d,c,s,u;for(a=0,d=i.length;a<d;a+=1)u="",r!==""&&(u+=", "),t.condenseFlow&&(u+='"'),c=i[a],s=o[c],t.replacer&&(s=t.replacer.call(o,c,s)),le(t,n,c,!1,!1)&&(t.dump.length>1024&&(u+="? "),u+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),le(t,n,s,!1,!1)&&(u+=t.dump,r+=u));t.tag=l,t.dump="{"+r+"}"}function Hi(t,n,o,r){var l="",i=t.tag,a=Object.keys(o),d,c,s,u,p,m;if(t.sortKeys===!0)a.sort();else if(typeof t.sortKeys=="function")a.sort(t.sortKeys);else if(t.sortKeys)throw new Q("sortKeys must be a boolean or a function");for(d=0,c=a.length;d<c;d+=1)m="",(!r||l!=="")&&(m+=Ke(t,n)),s=a[d],u=o[s],t.replacer&&(u=t.replacer.call(o,s,u)),le(t,n+1,s,!0,!0,!0)&&(p=t.tag!==null&&t.tag!=="?"||t.dump&&t.dump.length>1024,p&&(t.dump&&Ee===t.dump.charCodeAt(0)?m+="?":m+="? "),m+=t.dump,p&&(m+=Ke(t,n)),le(t,n+1,u,!0,p)&&(t.dump&&Ee===t.dump.charCodeAt(0)?m+=":":m+=": ",m+=t.dump,l+=m));t.tag=i,t.dump=l||"{}"}function qt(t,n,o){var r,l,i,a,d,c;for(l=o?t.explicitTypes:t.implicitTypes,i=0,a=l.length;i<a;i+=1)if(d=l[i],(d.instanceOf||d.predicate)&&(!d.instanceOf||typeof n=="object"&&n instanceof d.instanceOf)&&(!d.predicate||d.predicate(n))){if(o?d.multi&&d.representName?t.tag=d.representName(n):t.tag=d.tag:t.tag="?",d.represent){if(c=t.styleMap[d.tag]||d.defaultStyle,Bt.call(d.represent)==="[object Function]")r=d.represent(n,c);else if(Vt.call(d.represent,c))r=d.represent[c](n,c);else throw new Q("!<"+d.tag+'> tag resolver accepts not "'+c+'" style');t.dump=r}return!0}return!1}function le(t,n,o,r,l,i,a){t.tag=null,t.dump=o,qt(t,o,!1)||qt(t,o,!0);var d=Bt.call(t.dump),c=r,s;r&&(r=t.flowLevel<0||t.flowLevel>n);var u=d==="[object Object]"||d==="[object Array]",p,m;if(u&&(p=t.duplicates.indexOf(o),m=p!==-1),(t.tag!==null&&t.tag!=="?"||m||t.indent!==2&&n>0)&&(l=!1),m&&t.usedDuplicates[p])t.dump="*ref_"+p;else{if(u&&m&&!t.usedDuplicates[p]&&(t.usedDuplicates[p]=!0),d==="[object Object]")r&&Object.keys(t.dump).length!==0?(Hi(t,n,t.dump,l),m&&(t.dump="&ref_"+p+t.dump)):(qi(t,n,t.dump),m&&(t.dump="&ref_"+p+" "+t.dump));else if(d==="[object Array]")r&&t.dump.length!==0?(t.noArrayIndent&&!a&&n>0?Ut(t,n-1,t.dump,l):Ut(t,n,t.dump,l),m&&(t.dump="&ref_"+p+t.dump)):(Ui(t,n,t.dump),m&&(t.dump="&ref_"+p+" "+t.dump));else if(d==="[object String]")t.tag!=="?"&&Pi(t,t.dump,n,i,c);else{if(d==="[object Undefined]")return!1;if(t.skipInvalid)return!1;throw new Q("unacceptable kind of an object to dump "+d)}t.tag!==null&&t.tag!=="?"&&(s=encodeURI(t.tag[0]==="!"?t.tag.slice(1):t.tag).replace(/!/g,"%21"),t.tag[0]==="!"?s="!"+s:s.slice(0,18)==="tag:yaml.org,2002:"?s="!!"+s.slice(18):s="!<"+s+">",t.dump=s+" "+t.dump)}return!0}function Yi(t,n){var o=[],r=[],l,i;for(Ge(t,o,r),l=0,i=r.length;l<i;l+=1)n.duplicates.push(o[r[l]]);n.usedDuplicates=new Array(i)}function Ge(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)Ge(t[l],n,o);else for(r=Object.keys(t),l=0,i=r.length;l<i;l+=1)Ge(t[r[l]],n,o)}function Ki(t,n){n=n||{};var o=new Ti(n);o.noRefs||Yi(t,o);var r=t;return o.replacer&&(r=o.replacer.call({"":r},"",r)),le(o,0,r,!0,!0)?o.dump+`
74
+ `:""}var Wi=Ki,Gi={dump:Wi},Zi=mi.load,Ht=Gi.dump;const Qi={class:"flex flex-col flex-1 overflow-hidden"},Xi={class:"flex justify-end gap-2"},Ji={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"},es=["href"],ts={class:"flex flex-col flex-1 overflow-hidden"},ns={class:"bg-white rounded-xl border border-gray-200 shadow-sm overflow-hidden mt-3 flex flex-col flex-1"},os={class:"relative bg-gradient-to-br from-slate-50 to-white flex-1"},rs=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,c=>{try{const s=c?Ht(c):"";!l.value&&s!==l.value&&(l.value=s)}catch{l.value=""}},{immediate:!0,deep:!0}),e.watch(l,async c=>{var s,u;try{const p=c?Zi(c):null;if((s=p==null?void 0:p.colorAttr)!=null&&s.length&&((u=o.styleYaml)==null?void 0:u.colorAttr)!==p.colorAttr){const m=await i(p.colorAttr);p.colors=m.reduce((h,y,b)=>({...h,[y.id.toString()]:a[b]}),{});const g=Ht(p);g!==l.value&&(l.value=g)}JSON.stringify(p)!==JSON.stringify(o.styleYaml)&&r("update:styleYaml",p)}catch{}});async function i(c){return(await fetch(`/api/gis-service/${o.token}/${c}`).then(u=>u.json())).rows}const a=["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd"],d=async()=>{try{await fetch(`/api/gis-service/${o.token}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({style:l.value})}),r("update"),K.notify({type:"success",title:"Успіх",message:"Стилі збережено"})}catch(c){K.notify({type:"error",title:"Помилка",message:"Не вдалося зберегти стилі"}),console.log(c)}};return(c,s)=>(e.openBlock(),e.createElementBlock("div",Qi,[e.createElementVNode("div",Xi,[e.createElementVNode("button",Ji,[e.createElementVNode("a",{target:"_blank",href:"/api/gis-service/"+o.token+"/col"},"Attr",8,es)]),e.createElementVNode("button",{onClick:d,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"},[...s[1]||(s[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",ts,[e.createElementVNode("div",ns,[s[2]||(s[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",os,[e.createVNode(lt,{modelValue:l.value,"onUpdate:modelValue":s[0]||(s[0]=u=>l.value=u),language:"yaml",theme:"vs-light"},null,8,["modelValue"])])])])]))}}),Yt=Symbol("MapContext");function ls(t){const n=e.shallowRef(null),o=e.ref(!1);let r=!1;const l=[],i=()=>{r=!0,l.length&&l.forEach(p=>p())},a=()=>{const p=t.container;return typeof p=="string"?document.getElementById(p):(p==null?void 0:p.value)!==void 0?p.value:p},d=()=>r?Promise.resolve():new Promise(p=>l.push(p)),c=async()=>{var m,g,h,y;if(typeof window>"u"||n.value)return;const p=a();if(!p)throw new Error("Map container not found");n.value=new maplibregl.Map({...t.mapOptions||{},attributionControl:!1,center:[30,50],zoom:7,container:p}),(m=t.controls)!=null&&m.navigation&&n.value.addControl(new maplibregl.NavigationControl(typeof t.controls.navigation=="object"?t.controls.navigation:{}),"top-right"),(g=t.controls)!=null&&g.scale&&n.value.addControl(new maplibregl.ScaleControl(typeof t.controls.scale=="object"?t.controls.scale:{}),"bottom-left"),(h=t.controls)!=null&&h.fullscreen&&n.value.addControl(new maplibregl.FullscreenControl,"top-right"),(y=t.controls)!=null&&y.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()})},s=()=>{n.value&&(n.value.remove(),n.value=null,o.value=!1)};e.onMounted(c),e.onUnmounted(s);const u={map:n,ready:d,flyTo:p=>{var m;return(m=n.value)==null?void 0:m.flyTo(p)},fitBounds:(p,m)=>{var g;return(g=n.value)==null?void 0:g.fitBounds(p,m)},setCenter:p=>{var m;return(m=n.value)==null?void 0:m.setCenter(p)},setZoom:p=>{var m;return(m=n.value)==null?void 0:m.setZoom(p)},addControl:(p,m)=>{var g;return(g=n.value)==null?void 0:g.addControl(p,m)},removeControl:p=>{var m;return(m=n.value)==null?void 0:m.removeControl(p)},on:(p,m,g)=>{var h,y;return typeof m=="string"?((h=n.value)==null||h.on(p,m,g),()=>{var b;return(b=n.value)==null?void 0:b.off(p,m,g)}):((y=n.value)==null||y.on(p,m),()=>{var b;return(b=n.value)==null?void 0:b.off(p,m)})},off:(p,m,g)=>{var h,y;typeof m=="string"?(h=n.value)==null||h.off(p,m,g):(y=n.value)==null||y.off(p,m)},project:p=>{var m;return(m=n.value)==null?void 0:m.project(p)},unproject:p=>{var m;return(m=n.value)==null?void 0:m.unproject(p)}};return e.provide(Yt,u),u}function oe(t){if(t)return{map:t,flyTo:t.value.flyTo,fitBounds:t.value.fitBounds};const n=e.inject(Yt);if(!n)throw new Error("useMap() called outside of a Map provider");return n}const Ze=new Map;function Qe(t){return t.colorAttr&&t.colors?["match",["get",t.colorAttr],...Object.entries(t.colors).reduce((n,o)=>n.concat(o),[]),"#94a3b8"]:null}function as(t){var r;if(!t.icon||!t.colors)return null;const n=[],o=(r=t.icon)==null?void 0:r.split("+")[0];return Object.values(t.colors||{}).forEach(l=>{n.push(`${o}+${l.replace("#","")}.png`)}),["match",["get",t.colorAttr],...Object.entries(t.colors).reduce((l,i,a)=>l.concat([i[0],n[a]]),[]),t.icon]}async function Kt(t,n,o){const r=[n],l=n.split("+")[0];Object.values(o||{}).forEach(i=>{r.push(`${l}+${i.replace("#","")}.png`)});for(let i=0;i<r.length;i+=1){const a=r[i];if(t.getImage(a))continue;const d=await t.loadImage("/api/gis-icon/"+a);t.addImage(a,d.data)}}function Wt(t,n){const o=Qe(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 is(t){const n=Qe(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 ss(t){return{type:"line",paint:{"line-color":Qe(t)||t.color,"line-opacity":t.opacity||1,"line-width":t.width||1.5}}}function cs(t){const n=as(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 Gt(t){const n=[];return t?(t.icon&&n.push(cs(t)),t.pointZoom&&n.push(Wt(t,t.pointZoom)),t.type==="polygon"&&n.push(is(t)),t.type==="line"&&n.push(ss(t)),t.type==="point"&&n.push(Wt(t)),n.filter(o=>o)):[]}const Xe={};function H(t,n,o){var v,M,D;if(!t)return Xe;if(!n)return Xe[t];const{map:r,ready:l=()=>Promise.resolve()}=oe(o),i=t||n.layer.id,a=n.sourceId??t;!n.layer&&((v=n.source)==null?void 0:v.type)==="raster"&&(n.layer={id:a,type:"raster",source:a}),(M=n.layer)!=null&&M.source||(n.layer.source=a),!n.layer["source-layer"]&&((D=n.source)==null?void 0:D.type)==="vector"&&(n.layer["source-layer"]=a);let d=!1,c=!1;const s=()=>{var A,L,q;if(!(c||!r.value)){if(n.source&&!r.value.getSource(a)&&r.value.addSource(a,n.source),!r.value.getLayer(i)){const ce=n.beforeId===0?(L=(A=r.value.getStyle().layers)==null?void 0:A[0])==null?void 0:L.id:n.beforeId;(q=n.layer.style)!=null&&q.icon&&Kt(r.value,n.layer.style.icon,n.layer.style.colors);const re=Gt(n.layer.style);if(!re.length)return r.value.addLayer(n.layer,ce);re.forEach((F,V)=>{Object.assign(F,{id:i+(V||"")}),["source","source-layer"].forEach(T=>{F[T]=n.layer[T]}),r.value.addLayer(F,ce)})}d=!0}};l().then(s);const u=(A,L)=>r.value?(r.value.on(A,i,L),()=>{var q;return(q=r.value)==null?void 0:q.off(A,i,L)}):()=>{};function p(A){r.value&&r.value.getStyle().layers.filter(L=>L.source==i).forEach(L=>{r.value.setLayoutProperty(L.id,"visibility",A?"visible":"none")})}async function m(A){if(!r.value)return;A.icon&&Kt(r.value,A.icon,A.colors);const L=Gt(A);_(!1),L.forEach((q,ce)=>{q.id=i+ce,["source","source-layer"].forEach(re=>{q[re]=n==null?void 0:n.layer[re]}),r.value.addLayer(q)})}function g(A){r.value&&Object.entries(A).forEach(([L,q])=>r.value.setPaintProperty(i,L,q))}function h(A){r.value&&Object.entries(A).forEach(([L,q])=>r.value.setLayoutProperty(i,L,q))}function y(A){r.value&&r.value.setFilter(i,A)}function b(A){if(!r.value)return;const L=r.value.getSource(a);if(L&&"setTiles"in L&&n.source.tiles[0]){const q=n.source.tiles[0];L.setTiles([q+"?filter="+A])}}function E(A){if(!r.value)return;const L=r.value.getSource(a);L&&"setTiles"in L&&L.setTiles(A)}function f(A){if(!r.value)return;const L=r.value.getSource(a);L&&"setData"in L&&L.setData(A)}function x(A,L){r.value&&r.value.setFeatureState({source:a,...A},L)}function w(A,L){r.value&&r.value.removeFeatureState({source:a,...A},L?{key:L}:void 0)}function _(A=!0){r.value&&(r.value.getStyle().layers.filter(L=>L.source==i).forEach(L=>{r.value.removeLayer(L.id)}),c=!0,n!=null&&n.source&&A&&r.value.getSource(a)&&r.value.removeSource(a))}const k={ids:{layerId:i,sourceId:a},isMounted:()=>{var A;return d&&!!((A=r.value)!=null&&A.getLayer(i))},setVisible:p,updatePaint:g,updateLayout:h,updateFilter:y,setData:f,setTiles:E,setStyle:m,setFilter:b,setFeatureState:x,removeFeatureState:w,remove:_,card:n.card,popup:n.popup,getSource:()=>{var A;return(A=r.value)==null?void 0:A.getSource(a)},getLayer:()=>{var A;return(A=r.value)==null?void 0:A.getLayer(i)},on:u};Ze.set(i,k);const C=()=>{Ze.get(i)===k&&Ze.delete(i)},N=k.remove;return k.remove=()=>{C(),N()},e.onBeforeUnmount(k.remove),Xe[t]=k,k}const ds={class:"flex flex-col flex-1 min-h-0"},ps={class:"flex flex-col flex-1 min-h-0"},us=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,h=>l.value=h||[],{immediate:!0}),e.watch(l,h=>{const y=H(o.token);y&&(y.popup=h),r("update:columns",h)});const i=e.ref("list"),a=e.ref(!1),d=e.ref([]),c=[{key:"name",label:"Name",type:"main"},{key:"meta",label:"Meta"}],s={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 u(){d.value=l.value.map(h=>h.name||h.id),a.value=!0}function p(){var E;const h=[...l.value],y=((E=o.fields)==null?void 0:E.filter(f=>d.value.includes(f.name)))||[],b=ge(h,y,{selectedKeys:d.value,resolveKey:f=>ae(f)});l.value=b,a.value=!1,d.value=[]}function m(){a.value=!1,d.value=[]}function g(){let h=[];i.value==="all"?h=o.fields||[]:i.value==="none"?h=[]:h=l.value,h.filter(y=>!y.label).forEach(y=>y.label=y.ua),r("save",h)}return(h,y)=>(e.openBlock(),e.createElementBlock("div",ds,[e.createElementVNode("div",{class:"flex justify-between mb-3 gap-2"},[e.createElementVNode("button",{onClick:u,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:g,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",ps,[i.value==="list"?(e.openBlock(),e.createBlock(de,{key:0,modelValue:l.value,"onUpdate:modelValue":y[0]||(y[0]=b=>l.value=b),"columns-scheme":c,"form-scheme":s,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])):e.createCommentVNode("",!0)]),e.createVNode(me,{visible:a.value,"onUpdate:visible":y[1]||(y[1]=b=>a.value=b),selection:d.value,"onUpdate:selection":y[2]||(y[2]=b=>d.value=b),fields:h.fields,title:"Імпорт полів","id-prefix":"import-popup",onConfirm:p,onCancel:m},null,8,["visible","selection","fields"])]))}}),ms={class:"flex flex-col flex-1 min-h-0"},fs={class:"flex justify-between mb-3 gap-2"},gs={class:"p-4 space-y-4 text-sm"},hs={class:"space-y-1"},ys={class:"space-y-1"},xs={class:"flex items-center gap-3"},bs={class:"flex justify-end gap-2 p-4 border-t"},ks=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,h=>{l.value=h||[]}),e.watch(l,h=>{r("update:columns",h)});const i=e.ref(!1),a=e.ref({name:"",color:"#2E86DE"}),d=e.defineAsyncComponent(()=>import("@opengis/core").then(h=>h.VsModal)),c=[{key:"name",label:"Назва"},{key:"color",label:"Колір",type:"color"}],s={name:{type:"text",label:"Назва",validators:["required"]},color:{type:"color",label:"Колір",validators:["required"]}};function u(h){h&&p(),i.value=h}function p(){a.value={name:"",color:"#2E86DE"}}function m(){var E,f;const h=(E=a.value.name)==null?void 0:E.trim();if(!h){K.notify({type:"warning",title:"Перевірка",message:"Вкажіть назву елементу легенди"});return}const y=((f=a.value.color)==null?void 0:f.trim())||"#2E86DE";if(l.value.some(x=>ae(x)===ae({name:h}))){K.notify({type:"warning",title:"Дубль",message:"Такий елемент легенди вже існує"});return}l.value=[...l.value,{name:h,color:y}],p(),i.value=!1}function g(){r("save",l.value)}return(h,y)=>(e.openBlock(),e.createElementBlock("div",ms,[e.createElementVNode("div",fs,[e.createElementVNode("button",{onClick:y[0]||(y[0]=b=>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:g,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(de,{modelValue:l.value,"onUpdate:modelValue":y[1]||(y[1]=b=>l.value=b),"columns-scheme":c,"form-scheme":s,"main-col-width":"250px","add-button":!1},null,8,["modelValue"]),e.createVNode(e.unref(d),{visible:i.value,title:"Новий елемент легенди","onUpdate:visible":u},{footer:e.withCtx(()=>[e.createElementVNode("div",bs,[e.createElementVNode("button",{type:"button",class:"px-4 py-2 rounded bg-gray-100 text-gray-700",onClick:y[5]||(y[5]=b=>u(!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",gs,[e.createElementVNode("div",hs,[y[6]||(y[6]=e.createElementVNode("label",{class:"block text-xs font-medium text-gray-500 uppercase tracking-wide"}," Назва ",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":y[2]||(y[2]=b=>a.value.name=b),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",ys,[y[7]||(y[7]=e.createElementVNode("label",{class:"block text-xs font-medium text-gray-500 uppercase tracking-wide"}," Колір ",-1)),e.createElementVNode("div",xs,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":y[3]||(y[3]=b=>a.value.color=b),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":y[4]||(y[4]=b=>a.value.color=b),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"])]))}}),ws={class:"space-y-3 bg-gradient-to-br from-sky-50 to-blue-50 p-4 rounded-xl border border-sky-100 shadow-sm"},_s=["onClick"],Es=["aria-checked","value"],Ns={key:0},Cs=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,d)=>(e.openBlock(),e.createElementBlock("div",ws,[d[1]||(d[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),c=>(e.openBlock(),e.createElementBlock("div",{key:c.value,onClick:s=>l(c.value),class:e.normalizeClass(["flex items-center justify-center space-x-2 rounded-lg p-2 border transition-all duration-300 cursor-pointer",[a.modelValue===c.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":a.modelValue===c.value,value:c.value,class:"aspect-square rounded-full border border-primary h-4 w-4 flex items-center justify-center text-sky-500"},[a.modelValue===c.value?(e.openBlock(),e.createElementBlock("span",Ns,[...d[0]||(d[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,Es),e.createElementVNode("label",{class:e.normalizeClass(["text-xs font-medium cursor-pointer",a.modelValue===c.value?"text-gray-700":"text-gray-600"])},e.toDisplayString(c.label),3)],10,_s))),128))],2)]))}}),Bs={class:"flex flex-col flex-1 min-h-0"},Vs={class:"flex flex-col flex-1 min-h-0"},vs=e.defineComponent({__name:"vs-tab-card",props:{fields:{},columns:{}},emits:["update:columns","save"],setup(t,{emit:n}){const o=t,r=n,l=e.ref(o.columns||[]);e.watch(()=>o.columns,b=>l.value=b||[],{immediate:!0}),e.watch(l,b=>r("update:columns",b));const i=e.ref("list"),a=e.ref("<div>Hello HTML</div>"),d=e.ref(!1),c=e.ref([]),s=[{key:"name",label:"Name",type:"main"},{key:"format",label:"Format"}],u={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 p(){c.value=l.value.map(b=>b.name||b.id),d.value=!0}function m(){var x;const b=[...l.value],E=((x=o.fields)==null?void 0:x.filter(w=>c.value.includes(w.name)).map(w=>{const{type:_,format:k,...C}=w;return{...C,format:k??_??"text"}}))||[],f=ge(b,E,{selectedKeys:c.value,resolveKey:w=>ae(w)});l.value=f,d.value=!1,c.value=[]}function g(){d.value=!1,c.value=[]}function h(){i.value==="html"?r("save","html",a.value):r("save","card",l.value)}const y=[{value:"all",label:"All"},{value:"list",label:"List"},{value:"none",label:"None"},{value:"html",label:"HTML"}];return(b,E)=>(e.openBlock(),e.createElementBlock("div",Bs,[e.createElementVNode("div",{class:"flex justify-between mb-3 gap-2"},[e.createElementVNode("button",{onClick:p,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:h,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(Cs,{modelValue:i.value,"onUpdate:modelValue":E[0]||(E[0]=f=>i.value=f),options:y},null,8,["modelValue"]),e.createElementVNode("div",Vs,[i.value==="list"?(e.openBlock(),e.createBlock(de,{key:0,modelValue:l.value,"onUpdate:modelValue":E[1]||(E[1]=f=>l.value=f),"columns-scheme":s,"form-scheme":u,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])):i.value==="html"?(e.openBlock(),e.createBlock(lt,{key:1,modelValue:a.value,"onUpdate:modelValue":E[2]||(E[2]=f=>a.value=f),language:"html",theme:"vs-light",class:"flex-1 min-h-0"},null,8,["modelValue"])):e.createCommentVNode("",!0)]),e.createVNode(me,{visible:d.value,"onUpdate:visible":E[3]||(E[3]=f=>d.value=f),selection:c.value,"onUpdate:selection":E[4]||(E[4]=f=>c.value=f),fields:b.fields,title:"Імпорт полів для картки","id-prefix":"import-card",onConfirm:m,onCancel:g},null,8,["visible","selection","fields"])]))}}),As={class:"flex flex-col flex-1 min-h-0"},$s=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,h=>l.value=h||[],{immediate:!0}),e.watch(l,h=>r("update:columns",h),{deep:!0,immediate:!0});const i=e.ref("list"),a=e.ref(!1),d=e.ref([]),c=[{key:"id",label:"Name"},{key:"label",label:"UA"},{key:"type",label:"Тип"}],s={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 u(){d.value=l.value.map(h=>h.name||h.id),a.value=!0}function p(){var E;const h=[...l.value],y=((E=o.fields)==null?void 0:E.filter(f=>d.value.includes(f.name)))||[],b=ge(h,y,{selectedKeys:d.value,resolveKey:f=>ae(f)});l.value=b,a.value=!1,d.value=[]}function m(){a.value=!1,d.value=[]}function g(){let h=[];i.value==="all"?h=o.fields||[]:i.value==="none"?h=[]:h=l.value,r("save",h)}return(h,y)=>(e.openBlock(),e.createElementBlock("div",As,[e.createElementVNode("div",{class:"flex justify-between mb-3 gap-2"},[e.createElementVNode("button",{onClick:u,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:g,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(de,{key:0,modelValue:l.value,"onUpdate:modelValue":y[0]||(y[0]=b=>l.value=b),"columns-scheme":c,"form-scheme":s,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])):e.createCommentVNode("",!0),e.createVNode(me,{visible:a.value,"onUpdate:visible":y[1]||(y[1]=b=>a.value=b),selection:d.value,"onUpdate:selection":y[2]||(y[2]=b=>d.value=b),fields:h.fields,title:"Імпорт полів","id-prefix":"import-filter",onConfirm:p,onCancel:m},null,8,["visible","selection","fields"])]))}}),Zt=e.defineComponent({__name:"MapView",setup(t,{expose:n}){const o=e.ref(null),r=ls({container:o,mapOptions:{style:{version:8,sources:{},layers:[]},center:[30.5234,50.4501],zoom:9,minZoom:4,maxZoom:14},controls:{navigation:!0,scale:!0}});return n({ctx:r}),(l,i)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"el",ref:o,class:"w-full h-full rounded-xl overflow-hidden"},[e.renderSlot(l.$slots,"default")],512))}}),Ss=e.defineComponent({__name:"MapDataLayer",props:{id:{},layer:{},styleYaml:{}},setup(t,{expose:n}){var m;const{map:o,flyTo:r}=oe(),l=t,i=l.id,a=String(l.id),d=`${location.origin}/api/vtile/${l.id}/ua/{z}/{x}/{y}.vmt`,c=H(i,{sourceId:a,source:{type:"vector",tiles:[d],minzoom:0,maxzoom:14},popup:l.layer.popup,layer:{style:(m=l.layer)==null?void 0:m.style}});n({layerHandle:c}),r({center:[34.4924,48.45658],animate:!1});let s=null;function u(){s&&clearTimeout(s),s=setTimeout(()=>{s=null,p().catch(g=>console.error("Failed to update map layer",g))},300)}async function p(){o.value&&c.setStyle(l.styleYaml)}return e.watch(()=>l.styleYaml,u),e.onBeforeUnmount(()=>{c.remove()}),(g,h)=>null}}),Ls={class:"map-filter"},Fs={key:0,class:"map-filter__header"},Ms={class:"map-filter__title"},Qt=O(e.defineComponent({__name:"MapFilterWidget",props:{filters:{},title:{},layerId:{}},setup(t){const n=e.defineAsyncComponent(()=>import("@opengis/filter")),o=e.ref({}),r=t;function l(i){const a=r.layerId,d=Object.entries(i).map(([s,u])=>`${s}=${u}`).join("|");H(a).setFilter(d)}return(i,a)=>(e.openBlock(),e.createElementBlock("div",Ls,[i.title?(e.openBlock(),e.createElementBlock("div",Fs,[e.createElementVNode("h3",Ms,e.toDisplayString(i.title),1)])):e.createCommentVNode("",!0),e.createVNode(e.unref(n),{view:"inline",schema:i.filters,value:o.value,limit:5,onChange:a[0]||(a[0]=d=>l(d.data))},null,8,["schema","value"])]))}}),[["__scopeId","data-v-f7cd08a9"]]),Ts={class:"flex flex-row gap-x-3 z-10 relative widget"},Is=["onClick"],Ds=["src","alt"],Xt=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=H("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",Ts,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(n,(d,c)=>e.createElementVNode("div",{key:c,onClick:s=>l(c)},[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===c?"border-blue-500":"border-gray-200"])},[d.preview?(e.openBlock(),e.createElementBlock("img",{key:0,src:d.preview,alt:d.title,class:"object-cover rounded-lg w-12 h-12"},null,8,Ds)):e.createCommentVNode("",!0)],2)],8,Is)),64))]))}}),js={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%"}},Os={class:"flex flex-col gap-1 p-5"},Ps={class:"flex items-center justify-between w-full text-sm text-gray-800 ml-2"},Jt=e.defineComponent({__name:"MapLegendWidget",props:{items:{}},setup(t){const n=t,{map:o,ready:r}=oe(),l=e.ref([]);let i=null;function a(u){return u?u.map((p,m)=>{var y;const g=(p==null?void 0:p.name)||(p==null?void 0:p.label)||(p==null?void 0:p.title)||(p==null?void 0:p.id)||`Layer ${m+1}`,h=(p==null?void 0:p.color)||(p==null?void 0:p.fill)||((y=p==null?void 0:p.paint)==null?void 0:y.color)||"#3388ff";return{id:`${g}-${m}`,label:g,color:h}}):[]}function d(u){return u!=null&&u.layers?u.layers.filter(p=>{const m=p.paint||{};return m["fill-color"]||m["line-color"]||m["circle-color"]}).map((p,m)=>{var y;const g=p.paint||{},h=g["fill-color"]||g["line-color"]||g["circle-color"]||"#3388ff";return{id:p.id||`layer-${m}`,label:((y=p.metadata)==null?void 0:y.title)||p.id||`Layer ${m+1}`,color:h}}):[]}async function c(){var m;await r();const u=o.value;if(!u)return;const p=(m=u.getStyle)==null?void 0:m.call(u);l.value=d(p)}function s(){const u=o.value;if(!u)return;i==null||i();const p=()=>c();u.on("styledata",p),i=()=>u.off("styledata",p)}return e.watch(()=>n.items,async u=>{u!=null?(l.value=a(u),i==null||i()):(await r(),s(),c())},{immediate:!0,deep:!0}),e.onMounted(async()=>{(n.items===void 0||n.items===null)&&(await r(),s(),c())}),e.onBeforeUnmount(()=>{i==null||i(),i=null}),(u,p)=>l.value.length?(e.openBlock(),e.createElementBlock("div",js,[e.createElementVNode("div",Os,[(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",Ps,[e.createElementVNode("span",null,e.toDisplayString(m.label),1)])]))),128))])])):e.createCommentVNode("",!0)}});function Rs(){const{map:t,ready:n}=oe(),o=e.ref(null),r=e.ref(null),l=e.ref(null),i=e.ref(null);let a=[];function d(){a.forEach(m=>m()),a=[]}const c=m=>{var y;o.value=[m.point.x,m.point.y];const g=t.value.queryRenderedFeatures(m.point);if(!(g!=null&&g.length)){s();return}const h=H(g[0].source)||H(g[0].layer.id);h!=null&&h.popup&&(r.value=((y=h.popup)==null?void 0:y.fields)||h.popup,i.value=g[0].properties)},s=()=>{r.value=null,i.value=null,o.value=null};async function u(){await n(),t.value&&(d(),t.value.on("mousemove",c),t.value.on("mouseleave",s))}function p(){d(),r.value=null,i.value=null,o.value=null}return n().then(u),{popupCoords:o,popupFields:r,popupValues:i,disable:p,title:l}}const zs={class:"popup-card relative w-full overflow-hidden rounded-2xl border border-blue-100 bg-white/95 shadow-2xl backdrop-blur-sm"},Us={key:0,class:"border-b border-gray-200 px-3 py-2 text-sm font-semibold text-gray-800"},qs={class:"px-3 py-2 text-xs text-gray-600"},Hs={class:"w-full border-collapse"},Ys={class:"w-1/2 break-words pb-1 pr-2 font-medium text-gray-700"},Ks={class:"w-1/2 break-words pb-1 pl-2 text-right"},Ws={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)"}},Gs={key:1},en=O(e.defineComponent({__name:"MapPopup",setup(t){const{popupCoords:n,disable:o,popupFields:r,popupValues:l,title:i}=Rs(),a=e.ref(null),d=e.ref({left:"-9999px",top:"-9999px"}),c=e.computed(()=>{var p;return((p=r.value)==null?void 0:p.length)>0&&Object.keys(l.value||{}).length>0}),s=e.computed(()=>{const p=r.value.find(m=>m.meta==="title");return l.value[p.name]});function u(){if(!c.value||!n.value||!a.value){d.value={left:"-9999px",top:"-9999px"};return}const[p,m]=n.value;a.value;const g=p+18,h=m+18;d.value={left:`${g}px`,top:`${h}px`}}return e.watch([n],()=>{e.nextTick(()=>u())}),e.onBeforeUnmount(()=>{o()}),(p,m)=>c.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"popupRef",ref:a,class:"absolute z-30 w-[280px] pointer-events-none text-gray-800",style:e.normalizeStyle(d.value)},[e.createElementVNode("div",zs,[s.value?(e.openBlock(),e.createElementBlock("div",Us,e.toDisplayString(s.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",qs,[e.createElementVNode("table",Hs,[e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(r).filter(g=>g.meta!=="title"),g=>(e.openBlock(),e.createElementBlock("tr",{key:g.value,class:"align-top"},[e.createElementVNode("td",Ys,e.toDisplayString(g.label||g.title),1),e.createElementVNode("td",Ks,[g.meta==="badge"?(e.openBlock(),e.createElementBlock("span",Ws,e.toDisplayString(e.unref(l)[g.name+"_text"]||e.unref(l)[g.name]),1)):(e.openBlock(),e.createElementBlock("span",Gs,e.toDisplayString(e.unref(l)[g.name+"_text"]||e.unref(l)[g.name]),1))])]))),128))])])])])],4)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-c6cdbd42"]]);function Zs(){const{map:t,ready:n}=oe(),o=te.useRoute(),r=te.useRouter(),l=e.ref(null),i=e.ref(null),a=e.ref(null),d=e.ref(!1),c=e.computed(()=>d.value||!!l.value||!!a.value);let s=null,u=!1;function p(){l.value=null,i.value=null,a.value=null,d.value=!1}function m(){if(s){try{s()}catch{}s=null}}async function g(){await n();const k=t.value;k&&(m(),p(),k.on("click",h),s=()=>k.off("click",h),_(f()))}function h(k){const C=t.value;if(!C)return;const v=C.queryRenderedFeatures(k.point)[0];if(!v){p(),w(null);return}const M=H(v.source);y(v,M==null?void 0:M.card)}async function y(k,C){var v,M;if(!((v=k==null?void 0:k.properties)!=null&&v.id))return;const N=new URLSearchParams;N.set("layer",k.source),N.set("id",String((M=k.properties)==null?void 0:M.id)),d.value=!0,a.value=null,l.value=null,i.value=k||null;try{const D=await fetch(`/api/map-format?${N.toString()}`);if(!D.ok)throw new Error(`Failed (${D.status})`);const A=await D.json();l.value={rows:A.rows||{},fields:C||[],html:A.html||null},u||w(i.value)}catch{a.value="Не вдалося завантажити дані",l.value=null,K.notify({type:"error",title:"Помилка",message:"Не вдалося завантажити дані"})}finally{d.value=!1}}function b(){p(),w(null)}function E(){m(),p()}n().then(g),e.onBeforeUnmount(()=>E());function f(){const k=Array.isArray(o.query.info)?o.query.info[0]:o.query.info;return typeof k!="string"?null:k.trim()||null}function x(k){var M,D;const C=(k==null?void 0:k.source)??((M=k==null?void 0:k.layer)==null?void 0:M.id),N=(D=k==null?void 0:k.properties)==null?void 0:D.id;return!C||N===void 0||N===null?null:`${C},${N}`.trim()||null}function w(k){const C=x(k),N=f();if(C===N)return;const v={...o.query};C?v.info=C:delete v.info,r.push({query:v}).catch(()=>{})}async function _(k){if(!k){p();return}if(k===x(i.value))return;const[C,N]=k.split(","),v=C==null?void 0:C.trim(),M=N==null?void 0:N.trim();if(!v||!M){p(),w(null);return}u=!0;try{const D=H(v);await y({source:v,properties:{id:M}},D==null?void 0:D.card)}finally{u=!1}}return e.watch(()=>f(),k=>{k!==x(i.value)&&(u=!0,_(k).finally(()=>{u=!1}))}),{card:l,cardFeature:i,cardError:a,cardLoading:d,isOpen:c,close:b}}const Qs={key:0,class:"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"},Xs={class:"flex items-start justify-between gap-3 border-b border-slate-200 px-4 py-3"},Js={class:"flex-1 overflow-y-auto px-4 py-3 space-y-3 text-sm text-slate-700"},ec={key:0,class:"text-center text-xs text-slate-500"},tc={key:1,class:"text-center text-xs text-red-500"},nc=["innerHTML"],oc={key:1,class:"space-y-2"},rc={class:"text-xs font-semibold text-slate-500 uppercase tracking-wide"},lc={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)"}},ac={key:1,class:"text-sm text-right text-slate-800 whitespace-pre-wrap"},ic={key:2,class:"text-center text-xs text-slate-400"},tn=O(e.defineComponent({__name:"MapCardWidget",props:{html:{}},setup(t){const{card:n,cardError:o,cardLoading:r,isOpen:l,close:i}=Zs(),a=e.computed(()=>{var c,s;const d=((c=n.value)==null?void 0:c.rows)??{};return(((s=n.value)==null?void 0:s.fields)??[]).map(u=>({key:u.name,label:u.ua||u.label||u.title||u.name,value:(d==null?void 0:d[u.name])??"—",format:u.format||"text"}))});return(d,c)=>(e.openBlock(),e.createBlock(e.Transition,{name:"fade"},{default:e.withCtx(()=>[e.unref(l)?(e.openBlock(),e.createElementBlock("div",Qs,[e.createElementVNode("div",Xs,[c[2]||(c[2]=e.createElementVNode("div",{class:"min-w-0"},[e.createElementVNode("p",{class:"text-base font-semibold text-slate-900 truncate"}," Інформація про об'єкт ")],-1)),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",onClick:c[0]||(c[0]=(...s)=>e.unref(i)&&e.unref(i)(...s))},[...c[1]||(c[1]=[e.createElementVNode("span",{class:"sr-only"},"Close",-1),e.createTextVNode(" ✕ ",-1)])])]),e.createElementVNode("div",Js,[e.unref(r)?(e.openBlock(),e.createElementBlock("div",ec," Завантаження даних… ")):e.unref(o)?(e.openBlock(),e.createElementBlock("div",tc,e.toDisplayString(e.unref(o)),1)):e.unref(n)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[d.html||e.unref(n).html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"prose prose-sm max-w-none",innerHTML:d.html||e.unref(n).html},null,8,nc)):a.value.length?(e.openBlock(),e.createElementBlock("div",oc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,s=>(e.openBlock(),e.createElementBlock("div",{key:s.key,class:"flex items-start justify-between gap-3 border-b border-slate-100 pb-2"},[e.createElementVNode("span",rc,e.toDisplayString(s.label),1),s.format==="badge"?(e.openBlock(),e.createElementBlock("span",lc,e.toDisplayString(s.value),1)):(e.openBlock(),e.createElementBlock("span",ac,e.toDisplayString(s.value),1))]))),128))])):(e.openBlock(),e.createElementBlock("div",ic,"Даних не знайдено."))],64)):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)]),_:1}))}}),[["__scopeId","data-v-ebec1420"]]),sc={class:"flex h-screen bg-gradient-to-br from-slate-50 to-white"},cc={class:"flex-1 relative overflow-hidden"},dc={class:"absolute top-0 left-0 w-full z-20"},pc={class:"flex items-center justify-between bg-white/80 backdrop-blur border-b border-gray-200 px-6 py-3 shadow-sm gap-4"},uc={class:"flex items-center gap-3"},mc={class:"font-semibold text-lg text-gray-800 line-clamp-1"},fc={class:"text-xs text-gray-500 truncate"},gc=["title"],hc={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]"},yc={class:"relative w-full h-full"},xc={style:{top:"10px",left:"230px",position:"absolute","z-index":"1"}},bc={class:"absolute top-4 left-4 z-20"},kc={class:"absolute bottom-4 left-4 z-20"},wc={class:"w-[650px] bg-white border-l border-gray-100 flex flex-col overflow-hidden shadow-lg"},_c={class:"flex-1 flex flex-col h-full"},Ec={class:"px-3 pt-3 pb-2 border-b border-gray-100"},Nc={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"},Cc=["aria-selected","onClick"],Bc={class:"leading-none"},Vc={class:"flex flex-col flex-1 overflow-y-hidden p-3"},vc=e.defineComponent({__name:"service",setup(t){const n=te.useRoute(),o=te.useRouter(),r=n.params.id,l=e.ref(null),i=e.ref({}),a=e.ref(null),d=e.ref(""),c=e.ref([]),s=e.ref([]),u=e.ref([]),p=e.ref([]),m=e.computed(()=>{var f,x;return((f=a.value)==null?void 0:f.id)??((x=a.value)==null?void 0:x.service_id)??null}),g=[{key:"style",label:"Style",icon:dl},{key:"popup",label:"Popup",icon:_l},{key:"filter",label:"Filter",icon:Bl},{key:"legend",label:"Legend",icon:fl},{key:"card",label:"Card",icon:xl}],h=g.map(f=>f.key),y=e.ref("style");e.onMounted(async()=>{const f=n.query.tab;f&&h.includes(f)&&(y.value=f),await b()}),e.watch(y,f=>{n.query.tab!==f&&o.replace({query:{...n.query,tab:f}})}),e.watch(()=>n.query.tab,f=>{f&&h.includes(f)&&y.value!==f&&(y.value=f)});const b=async()=>{try{const f=await fetch(`/api/gis-service/${r}`);if(!f.ok)throw new Error(`${f.status}`);const x=await f.json();i.value=x||{},l.value=r,a.value=x||null,d.value=x.style||"",s.value=(x==null?void 0:x.popup)||[],u.value=(x==null?void 0:x.card)||[],c.value=(x==null?void 0:x.legend)||[],p.value=(x==null?void 0:x.filters)||[]}catch(f){console.error("Failed to fetch map info",f)}};e.watch(()=>{var f;return(f=a.value)==null?void 0:f.style},f=>{f?typeof f=="string"?d.value=f:d.value=JSON.parse(JSON.stringify(f)):d.value=""},{deep:!0});async function E(f,x){if(a[f]=x,!!m.value)try{if(!(await fetch(`/api/gis-service/${m.value}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({[f]:x})})).ok)throw new Error("Save failed");K.notify({type:"success",title:"Успіх",message:`${f} saved`}),await b()}catch(w){K.notify({type:"error",title:"Помилка",message:`Failed to save ${f}`}),console.error(w)}}return(f,x)=>{var w,_,k,C;return e.openBlock(),e.createElementBlock("div",sc,[e.createElementVNode("div",cc,[e.createElementVNode("div",dc,[e.createElementVNode("div",pc,[e.createElementVNode("div",uc,[e.createElementVNode("button",{onClick:x[0]||(x[0]=N=>f.$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"},[...x[11]||(x[11]=[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",mc,e.toDisplayString((w=a.value)==null?void 0:w.name),1),e.createElementVNode("div",fc," Сервіс: "+e.toDisplayString((_=a.value)==null?void 0:_.service_key),1)])]),e.createElementVNode("div",{class:"max-w-xl text-xs text-gray-600 truncate",title:(k=a.value)==null?void 0:k.description},e.toDisplayString((C=a.value)==null?void 0:C.description),9,gc)])]),e.createElementVNode("div",hc,[e.createElementVNode("div",yc,[e.createVNode(Zt,null,{default:e.withCtx(()=>{var N,v,M;return[(N=a.value)!=null&&N.service_id?(e.openBlock(),e.createBlock(Ss,{key:0,id:(v=a.value)==null?void 0:v.service_id,layer:a.value,"style-yaml":d.value},null,8,["id","layer","style-yaml"])):e.createCommentVNode("",!0),e.createElementVNode("div",xc,[m.value?(e.openBlock(),e.createBlock(Qt,{key:0,"layer-id":m.value,filters:p.value},null,8,["layer-id","filters"])):e.createCommentVNode("",!0)]),e.createElementVNode("div",bc,[e.createVNode(Xt)]),e.createElementVNode("div",kc,[e.createVNode(Jt,{items:((M=a.value)==null?void 0:M.legend)||null},null,8,["items"])]),e.createVNode(en),e.createVNode(tn,{html:i.value.html},null,8,["html"])]}),_:1})])])]),e.createElementVNode("div",wc,[e.createElementVNode("div",_c,[e.createElementVNode("div",Ec,[e.createElementVNode("div",Nc,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(g,N=>e.createElementVNode("button",{key:N.key,type:"button",role:"tab","aria-selected":y.value===N.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",y.value===N.key?"bg-white shadow-sm text-gray-700":""]),onClick:v=>y.value=N.key},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(N.icon),{class:"h-3.5 w-3.5 mb-0.5"})),e.createElementVNode("span",Bc,e.toDisplayString(N.label),1)],10,Cc)),64))])]),e.createElementVNode("div",Vc,[y.value==="style"?(e.openBlock(),e.createBlock(rs,{key:0,token:m.value,"style-yaml":d.value,"onUpdate:styleYaml":x[1]||(x[1]=N=>d.value=N),onSave:x[2]||(x[2]=N=>E("style",N))},null,8,["token","style-yaml"])):y.value==="legend"?(e.openBlock(),e.createBlock(ks,{key:1,token:m.value,columns:c.value,"onUpdate:columns":x[3]||(x[3]=N=>c.value=N),onSave:x[4]||(x[4]=N=>E("legend",N))},null,8,["token","columns"])):y.value==="popup"?(e.openBlock(),e.createBlock(us,{key:2,token:m.value,columns:s.value,fields:i.value.fields,"onUpdate:columns":x[5]||(x[5]=N=>s.value=N),onSave:x[6]||(x[6]=N=>E("popup",N))},null,8,["token","columns","fields"])):y.value==="card"?(e.openBlock(),e.createBlock(vs,{key:3,token:m.value,columns:u.value,fields:i.value.fields,"onUpdate:columns":x[7]||(x[7]=N=>u.value=N),onSave:x[8]||(x[8]=(N,v)=>E(N,v))},null,8,["token","columns","fields"])):y.value==="filter"?(e.openBlock(),e.createBlock($s,{key:4,token:m.value,fields:i.value.fields,columns:p.value,"onUpdate:columns":x[9]||(x[9]=N=>p.value=N),onSave:x[10]||(x[10]=N=>E("filters",N))},null,8,["token","fields","columns"])):e.createCommentVNode("",!0)])])])])}}}),Ac={class:"mapLayer-info__inner"},$c={class:"mapLayer-info__item-label"},Je=O(e.defineComponent({__name:"MapLayerInfoPopover",props:{items:{}},setup(t,{expose:n}){const o=e.reactive({open:!1,top:0,left:0}),r=e.ref(null),l=e.ref(null),i=e.computed(()=>o.open?{position:"absolute",width:"460px",top:`${o.top}px`,left:`${o.left}px`,transform:"translateX(-50%)",display:"block"}:{display:"none"});function a(p){if(o.open){u();return}const m=p.currentTarget,g=m==null?void 0:m.closest(".mapLayer-info");if(!g){u();return}r.value=g,o.open=!0,e.nextTick(d)}function d(){if(!o.open||!r.value)return;const p=r.value.getBoundingClientRect();o.top=p.bottom+window.scrollY+8,o.left=p.left+p.width/2+window.scrollX}function c(p){var g,h;if(!o.open)return;const m=p.target;(g=r.value)!=null&&g.contains(m)||(h=l.value)!=null&&h.contains(m)||u()}function s(p){p.key==="Escape"&&u()}function u(){o.open=!1,r.value=null,l.value=null}return e.onMounted(()=>{document.addEventListener("click",c,!0),document.addEventListener("keydown",s),window.addEventListener("scroll",d,!0),window.addEventListener("resize",d)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",c,!0),document.removeEventListener("keydown",s),window.removeEventListener("scroll",d,!0),window.removeEventListener("resize",d)}),n({close:u}),(p,m)=>(e.openBlock(),e.createElementBlock("div",{class:"mapLayer-info",ref_key:"anchorEl",ref:r},[e.createElementVNode("a",{class:"mapLayer-info__trigger",href:"#",onClick:e.withModifiers(a,["prevent","stop"])},[...m[1]||(m[1]=[e.createStaticVNode('<div class="mapLayer-info__icon" data-v-582ed64c><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-582ed64c><circle cx="12" cy="12" r="10" data-v-582ed64c></circle><line x1="12" y1="16" x2="12" y2="12" data-v-582ed64c></line><line x1="12" y1="8" x2="12.01" y2="8" data-v-582ed64c></line></svg></div>',1)])]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[o.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-600 rounded-md shadow-lg bottom mapLayer-info__popover",style:e.normalizeStyle(i.value),ref_key:"popoverEl",ref:l,onClick:m[0]||(m[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",Ac,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.items,g=>(e.openBlock(),e.createElementBlock("div",{key:g.label,class:"mapLayer-info__item"},[e.createElementVNode("div",$c,e.toDisplayString(g.label),1),e.createElementVNode("div",{class:e.normalizeClass(["mapLayer-info__item-value",{"mapLayer-info__item-value--break-all":g.breakLine}])},e.toDisplayString(g.value??"—"),3)]))),128))])],4)):e.createCommentVNode("",!0)]))],512))}}),[["__scopeId","data-v-582ed64c"]]),Sc={key:0,class:"map-info__header"},Lc={key:0,class:"map-info__title"},Fc={class:"map-info__actions"},Mc={key:1,class:"map-info__menu"},Tc=["href"],Ic=["innerHTML"],Dc=O(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.computed(()=>Array.isArray(n.links)?n.links.filter(c=>(c==null?void 0:c.label)&&(c==null?void 0:c.url)):[]),i=e.computed(()=>{const c=[];return n.mapName&&c.push({label:"Назва карти",value:n.mapName}),n.mapDescription&&c.push({label:"Опис",value:n.mapDescription,breakLine:!0}),c});function a(c){c.stopPropagation(),r.value=!r.value}function d(c){if(!r.value)return;const s=o.value;if(!s){r.value=!1;return}s.contains(c.target)||(r.value=!1)}return e.onMounted(()=>{document.addEventListener("click",d,!0)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",d,!0)}),(c,s)=>(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},[c.title||l.value.length||i.value.length?(e.openBlock(),e.createElementBlock("div",Sc,[c.title?(e.openBlock(),e.createElementBlock("h2",Lc,e.toDisplayString(c.title),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Fc,[i.value.length?(e.openBlock(),e.createBlock(Je,{key:0,items:i.value},null,8,["items"])):e.createCommentVNode("",!0),l.value.length?(e.openBlock(),e.createElementBlock("div",Mc,[e.createElementVNode("button",{type:"button",class:"map-info__menu-button",onClick:a,"aria-label":"Показати посилання"},[...s[1]||(s[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)])]),e.createElementVNode("div",{class:e.normalizeClass(["vsTailwind vs-popover__content right map-info__popover",{"map-info__popover--open":r.value}]),onClick:s[0]||(s[0]=e.withModifiers(()=>{},["stop"]))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,u=>(e.openBlock(),e.createElementBlock("a",{key:u.url||u.label,class:"map-info__popover-link",href:u.url},e.toDisplayString(u.label),9,Tc))),128))],2)])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),c.content?(e.openBlock(),e.createElementBlock("div",{key:1,class:"map-info__content",innerHTML:c.content},null,8,Ic)):e.createCommentVNode("",!0)],512))}}),[["__scopeId","data-v-9316bf24"]]),jc={class:"layers-panel"},Oc={key:0,class:"layers-panel__title"},Pc={class:"layers-panel__label"},Rc=["checked","onChange"],zc={class:"layers-panel__name"},Uc={class:"layers-panel__meta"},qc={key:0,class:"layers-panel__actions"},Hc=["innerHTML","onClick"],Yc=O(e.defineComponent({__name:"MapDataLayersWidget",props:{layers:{},title:{}},emits:["action"],setup(t,{emit:n}){const o=t,r=n,l=e.computed(()=>{if(typeof o.title=="string"){const c=o.title.trim();return c||null}return null});function i(){for(let c=0;c<o.layers.length;c++){const s=o.layers[c],u=s.id,p=`${location.origin}/api/vtile/${s.id}/ua/{z}/{x}/{y}.vmt`,m={sourceId:u,source:{type:"vector",tiles:[p],minZoom:4,maxZoom:14},layer:{id:u,source:u,"source-layer":u,style:s.style},card:s.card,popup:s.popup};H(s.id,m)}}e.onMounted(()=>{i()});function a(c,s){const u=H(c.id),p=s.target;u.setVisible(p.checked)}function d(c){return[{label:"Назва",value:c.name??null},{label:"Назва групи",value:c.group_name||null},{label:"Кількість",value:c.count??null},{label:"Балансоутримувач",value:c.holder??null}]}return(c,s)=>(e.openBlock(),e.createElementBlock("div",jc,[l.value?(e.openBlock(),e.createElementBlock("h3",Oc,e.toDisplayString(l.value),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.layers,u=>{var p;return e.openBlock(),e.createElementBlock("div",{key:u.id,class:"layers-panel__item"},[e.createElementVNode("label",Pc,[e.createElementVNode("input",{type:"checkbox",class:"layers-panel__checkbox",checked:u.visible,onChange:m=>a(u,m)},null,40,Rc),e.createElementVNode("span",zc,e.toDisplayString(u.name),1),e.createElementVNode("div",Uc,[e.createVNode(Je,{items:d(u)},null,8,["items"])])]),(p=u.actions)!=null&&p.length?(e.openBlock(),e.createElementBlock("div",qc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.actions,m=>(e.openBlock(),e.createElementBlock("button",{key:m.widget||m.id||m.icon,type:"button",class:"layers-panel__action",innerHTML:m.icon,onClick:g=>r("action",{layerId:m.widget})},null,8,Hc))),128))])):e.createCommentVNode("",!0)])}),128))]))}}),[["__scopeId","data-v-701cbcdb"]]),Kc={class:"relative mt-[10px]"},Wc={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"absolute top-1/2 left-[8px] w-[16px] h-[16px]",style:{transform:"translate(0, -50%)"}},Gc=["onClick"],Zc={class:"flex items-center gap-x-3"},Qc={class:"max-w-[260px] text-[14px] text-[#4b5563]"},Xc={class:"text-xs opacity-60 text-[#4b5563]"},Jc={class:"flex items-center cursor-pointer gap-2 flex-1"},ed=["checked","onChange"],td={class:"text-[13px] text-gray-600 truncate max-w-[260px]"},nd={class:"flex items-center gap-2"},od=O(e.defineComponent({__name:"LayersCatalogTab",props:{catalog:{},selected:{},search:{}},emits:["toggle-layer","update:search"],setup(t,{emit:n}){const o=t,r=n,l=e.reactive({}),i=e.ref(null),a=e.computed(()=>{const g=o.search.trim().toLowerCase();return o.catalog.groups.map(h=>{const y=g?h.layers.filter(b=>b.name.toLowerCase().includes(g)):h.layers;return{...h,layers:y}}).filter(h=>h.layers.length>0)}),d=e.computed({get:()=>o.search,set:g=>r("update:search",g)});function c(g){l[g]=!l[g]}function s(g){return!!l[g]}function u(g){return[{label:"Назва",value:p(g.name)},{label:"Сервіс",value:p(g.service)},{label:"Посилання",value:p(g.url),breakLine:!0},{label:"Джерело",value:p(g.source_path),breakLine:!0},{label:"Popup",value:m(g.popup,"полів")},{label:"Картка",value:m(g.card,"полів")},{label:"Фільтри",value:m(g.filters,"фільтрів")}]}function p(g){return g==null||g===""?null:String(g)}function m(g,h){return!Array.isArray(g)||g.length===0?null:`${g.length} ${h}`}return(g,h)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"catalogRef",ref:i},[e.createElementVNode("div",Kc,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[0]||(h[0]=y=>d.value=y),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,d.value]]),(e.openBlock(),e.createElementBlock("svg",Wc,[...h[1]||(h[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)])]))]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,y=>(e.openBlock(),e.createElementBlock("div",{key:y.id,class:"mt-2"},[e.createElementVNode("div",{class:"hover:bg-gray-100 cursor-pointer p-[8px] rounded-lg flex justify-between items-center",onClick:b=>c(y.id)},[e.createElementVNode("div",Zc,[(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",s(y.id)?"rotate-90":""])},[...h[2]||(h[2]=[e.createElementVNode("path",{d:"M1 9L5 5L1 1",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])],2)),e.createElementVNode("div",Qc,e.toDisplayString(y.name),1)]),e.createElementVNode("div",Xc,e.toDisplayString(y.layers.length),1)],8,Gc),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(y.layers,b=>(e.openBlock(),e.createElementBlock("div",{key:b.id,class:"hover:bg-gray-100 rounded-lg flex items-center justify-between ml-[20px] py-[8px] px-[8px] gap-3"},[e.createElementVNode("label",Jc,[e.createElementVNode("input",{type:"checkbox",class:"peer hidden",checked:g.selected.includes(b.id),onChange:E=>g.$emit("toggle-layer",b.id,E.target.checked,b)},null,40,ed),h[3]||(h[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",td,e.toDisplayString(b.name),1)]),e.createElementVNode("div",nd,[e.createVNode(Je,{items:u(b)},null,8,["items"])])]))),128))],512),[[e.vShow,s(y.id)]])]),_:2},1024)]))),128))],512))}}),[["__scopeId","data-v-55e38126"]]),rd={class:"mb-4"},ld={class:"space-y-2 max-h-[400px] overflow-y-auto pr-1 [&::-webkit-scrollbar]:h-1.5 [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-gray-300 [&::-webkit-scrollbar-track]:bg-transparent"},ad=["onDragstart","onDragover","onDrop"],id={class:"flex items-center justify-between"},sd={class:"flex items-center gap-2 cursor-move"},cd=["checked","onChange"],dd={class:"text-gray-800"},pd={class:"flex items-center gap-2"},ud=["onClick"],md=["onClick"],fd={class:"flex items-center gap-2"},gd={class:"text-xs text-gray-600"},hd={class:"w-48"},yd=e.defineComponent({__name:"LayersSelectedTab",props:{catalog:{},selected:{}},emits:["selectLayer","reorder","remove"],setup(t,{emit:n}){const o=t,r=n,l=e.reactive({}),i=e.ref(null),a=e.ref(null),d=new Map,c=e.reactive({top:0,left:0}),s=e.ref(null),u=e.reactive({top:0,left:0}),p=e.ref(null),m=new Map,g=e.reactive({});function h(F){var V;for(const T of((V=o.catalog)==null?void 0:V.groups)??[]){const Y=T.layers.find(B=>B.id===F);if(Y)return Y}return null}e.watch(()=>o.selected,F=>{F.forEach(V=>{l[V]==null&&(l[V]=100)})},{immediate:!0});function y(F,V){V?d.set(F,V):d.delete(F)}function b(F){var B;const V=H(F);if(!V)return;const T=(l[F]??100)/100,Y=(B=V.getLayer)==null?void 0:B.call(V);if(Y)switch(Y.type){case"raster":V.updatePaint({"raster-opacity":T});break;case"fill":V.updatePaint({"fill-opacity":T});break;case"line":V.updatePaint({"line-opacity":T});break;case"circle":V.updatePaint({"circle-opacity":T});break;case"symbol":V.updatePaint({"icon-opacity":T});break}}function E(){if(!i.value)return;const F=d.get(i.value);if(!F)return;const V=F.getBoundingClientRect();c.top=V.bottom+8+window.scrollY,c.left=V.left+window.scrollX}function f(F){i.value=i.value===F?null:F,i.value&&(l[F]==null&&(l[F]=100),e.nextTick(E))}e.watch(()=>o.selected,F=>{F.forEach(V=>{g[V]==null&&(g[V]=!0)})},{immediate:!0});function x(F,V){g[F]=V;const T=H(F);T&&T.setVisible(V)}function w(F,V){V?m.set(F,V):m.delete(F)}function _(F){s.value=s.value===F?null:F,s.value&&e.nextTick(()=>k(F))}function k(F){const V=m.get(F);if(!V)return;const T=V.getBoundingClientRect();u.top=T.bottom+6+window.scrollY,u.left=T.left+window.scrollX}function C(F){const V=H(F);V&&V.remove(),r("remove",F),s.value=null}function N(F){const V=F.target,T=i.value,Y=s.value;if(T){const B=a.value,$=d.get(T);if(B&&B.contains(V)||$&&$.contains(V))return;i.value=null}if(Y){const B=p.value,$=m.get(Y);if(B&&B.contains(V)||$&&$.contains(V))return;s.value=null}}function v(){i.value&&E(),s.value&&k(s.value)}e.onMounted(()=>{document.addEventListener("click",N),window.addEventListener("resize",v),window.addEventListener("scroll",v,!0)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",N),window.removeEventListener("resize",v),window.removeEventListener("scroll",v,!0)});const{map:M}=oe();function D(F){var B,$,j;if(!F)return;const V=H(F),T=h(F);if(!V&&!T)return;if(((B=T==null?void 0:T.extent)==null?void 0:B.length)===4&&(($=M.value)!=null&&$.fitBounds)){const R=T.extent.map(P=>Number(P));if(R.every(P=>Number.isFinite(P))){const[P,I,Z,ee]=R;M.value.fitBounds([[P,I],[Z,ee]],{padding:40}),s.value=null;return}}(j=V==null?void 0:V.getSource)!=null&&j.call(V)&&(s.value=null)}const A=e.ref(null),L=e.ref(null);function q(F){A.value=F}function ce(F){L.value=F}function re(F){if(A.value===null||A.value===F){A.value=null,L.value=null;return}const V=[...o.selected],[T]=V.splice(A.value,1);V.splice(F,0,T),r("reorder",V),A.value=null,L.value=null}return(F,V)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",rd,[e.createElementVNode("button",{class:"flex items-center gap-2 text-blue-600 hover:text-blue-700 transition-colors px-3 py-2 rounded-md bg-blue-50 hover:bg-blue-100 w-full justify-center",onClick:V[0]||(V[0]=T=>r("selectLayer"))},[...V[5]||(V[5]=[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)])])]),e.createElementVNode("div",ld,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(F.selected,(T,Y)=>{var B;return e.openBlock(),e.createElementBlock("div",{key:T,class:e.normalizeClass(["border border-gray-200 rounded-md p-3 bg-white shadow-sm text-[13px] text-[#4b5563] transition-colors hover:bg-gray-50/50 cursor-move",{"opacity-50":A.value===Y,"border-t-2 border-b-2 border-blue-500 bg-blue-50":L.value===Y}]),draggable:"true",onDragstart:$=>q(Y),onDragover:e.withModifiers($=>ce(Y),["prevent"]),onDrop:$=>re(Y)},[e.createElementVNode("div",id,[e.createElementVNode("div",sd,[V[6]||(V[6]=e.createElementVNode("span",{class:"drag-handle cursor-move mr-2 text-gray-400"},"☰",-1)),e.createElementVNode("input",{type:"checkbox",class:"w-4 h-4 text-blue-600 rounded focus:ring-blue-500",checked:g[T]??!0,onChange:$=>x(T,$.target.checked)},null,40,cd),e.createElementVNode("span",dd,e.toDisplayString(((B=h(T))==null?void 0:B.name)||"Шар"),1)]),e.createElementVNode("div",pd,[e.createElementVNode("div",{ref_for:!0,ref:$=>y(T,$),onClick:e.withModifiers($=>f(T),["stop"]),class:"text-sm text-gray-600 hover:text-gray-800 transition-colors px-2 py-1 rounded hover:bg-gray-100 cursor-pointer"},e.toDisplayString(l[T]??100)+"% ",9,ud),e.createElementVNode("div",{ref_for:!0,ref:$=>w(T,$),onClick:e.withModifiers($=>_(T),["stop"]),class:"p-1 rounded-full hover:bg-gray-100 transition-colors cursor-pointer"},[...V[7]||(V[7]=[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 text-gray-600"},[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,md)])])],42,ad)}),128))]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[i.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"popoverEl",ref:a,class:"fixed z-[10002] py-2 px-3 w-56 text-sm bg-white shadow-lg rounded-lg",style:e.normalizeStyle({top:c.top+"px",left:c.left+"px"})},[e.createElementVNode("div",fd,[V[8]||(V[8]=e.createElementVNode("label",{class:"text-gray-600 text-xs"},"Прозорість:",-1)),e.withDirectives(e.createElementVNode("input",{type:"range",min:"0",max:"100",step:"1","onUpdate:modelValue":V[1]||(V[1]=T=>l[i.value]=T),onInput:V[2]||(V[2]=T=>b(i.value)),class:"h-2 w-full accent-blue-600 rounded-lg cursor-pointer bg-gray-200"},null,544),[[e.vModelText,l[i.value]]]),e.createElementVNode("span",gd,e.toDisplayString(l[i.value])+"%",1)])],4)):e.createCommentVNode("",!0)])),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[s.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"menuEl",ref:p,class:"fixed z-[10002] py-2 px-4 w-full max-w-[14rem] text-sm text-stone-800 bg-white shadow-[0_10px_40px_10px_rgba(0,0,0,0.08)] rounded-lg focus:outline-none focus:bg-stone-100 after:h-4 after:absolute after:-bottom-4 after:start-0 after:w-full before:h-4 before:absolute before:-top-4 before:start-0 before:w-full",style:e.normalizeStyle({top:u.top+"px",left:u.left+"px"})},[e.createElementVNode("div",hd,[e.createElementVNode("button",{class:"w-full p-2 text-left text-sm flex items-center gap-2 text-gray-700 hover:bg-gray-100",onClick:V[3]||(V[3]=T=>D(s.value))},[...V[9]||(V[9]=[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)])]),V[11]||(V[11]=e.createElementVNode("button",{disabled:"",class:"w-full p-2 text-left text-sm flex items-center gap-2 text-gray-700 hover:bg-gray-100 opacity-50 cursor-not-allowed"},[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)),V[12]||(V[12]=e.createElementVNode("button",{disabled:"",class:"w-full p-2 text-left text-sm flex items-center gap-2 text-gray-700 hover:bg-gray-100 opacity-50 cursor-not-allowed"},[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)),V[13]||(V[13]=e.createElementVNode("hr",{class:"my-1 border-gray-200"},null,-1)),e.createElementVNode("button",{onClick:V[4]||(V[4]=T=>C(s.value)),class:"w-full p-2 text-left text-sm flex items-center gap-2 text-red-600 hover:bg-red-50"},[...V[10]||(V[10]=[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)]))]))}}),xd={class:"w-full max-w-md mx-auto p-4 bg-white border border-gray-200 rounded-lg shadow-sm widget"},bd={class:"flex items-center justify-between mb-4"},kd={class:"flex items-center gap-2"},wd={class:"text-lg font-semibold text-gray-800"},_d={class:"flex mb-4 border-b border-gray-200"},Ed=e.defineComponent({__name:"MapCatalogWidget",setup(t){const n=e.ref("catalog"),o=e.ref({groups:[]}),r=e.ref([]),l=e.ref(""),{map:i}=oe(),a=te.useRoute(),d=te.useRouter();function c(y){for(const b of o.value.groups){const E=b.layers.find(f=>f.id===y);if(E)return E}return null}async function s(){const b=await(await fetch("/api/gis-layer-list")).json(),E=new Map;b.forEach(w=>{const _=w.group_id??"other";E.has(_)||E.set(_,{id:_,name:w.group_name||"Інші шари",layers:[]}),E.get(_).layers.push(w)}),o.value={groups:Array.from(E.values())};const f=a.query.layers;if(!f)return;const x=Array.isArray(f)?f[0]:f;typeof x=="string"&&x.split(",").forEach(w=>{const _=w.trim();if(!_)return;const k=c(_);k&&p(_,!0,k)})}function u(y){const b=y.url,E=b?b.startsWith("http")?b:`${location.origin}${b}`:null;if(!E)return null;const f=(y.service||"").toString().toLowerCase();return f&&f!=="vtile"?{source:{type:"raster",tiles:[E],tileSize:256,minzoom:0,maxzoom:20}}:{source:{type:"vector",tiles:[E],minzoom:0,maxzoom:14},layer:{style:y.style},card:y.card,popup:y.popup}}function p(y,b,E){var _;const f=E??c(y);if(!f)return;const x=u(f);if(!x)return;const w=H(f.id,x,i);if(w)if(w.setVisible(b),b){if(!r.value.includes(y)&&(r.value.push(y),(_=i.value)!=null&&_.getLayer(y)))try{i.value.moveLayer(y)}catch(k){console.warn("Cannot move new layer",y,k)}}else r.value=r.value.filter(k=>k!==y)}function m(){r.value.forEach(y=>{const b=H(y);b&&b.setVisible(!1)}),r.value=[]}function g(y){r.value=y,e.nextTick(()=>{var b;for(let E=y.length-1;E>=0;E--){const f=y[E];if((b=i.value)!=null&&b.getLayer(f))try{i.value.moveLayer(f)}catch(x){console.warn("Cannot move layer",f,x)}}})}e.watch(r,y=>{const b={...a.query};y.length?b.layers=y.join(","):delete b.layers,d.replace({query:b}).catch(()=>{})},{deep:!0});const h=e.computed(()=>o.value.groups.reduce((y,b)=>y+b.layers.length,0));return e.onMounted(s),(y,b)=>(e.openBlock(),e.createElementBlock("div",xd,[e.createElementVNode("div",bd,[e.createElementVNode("div",kd,[b[5]||(b[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",wd,[e.createTextVNode(e.toDisplayString(n.value==="catalog"?"Каталог":"Вибрані шари")+" ",1),e.createElementVNode("span",null," ("+e.toDisplayString(n.value==="catalog"?h.value:r.value.length)+") ",1)])]),e.createElementVNode("button",{onClick:m,class:"p-1 rounded-full hover:bg-gray-200 transition-colors","aria-label":"Reset layers"},[...b[6]||(b[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"><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"></path><path d="M8 16H3v5"></path></svg>',1)])])]),e.createElementVNode("div",_d,[e.createElementVNode("button",{onClick:b[0]||(b[0]=E=>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:b[1]||(b[1]=E=>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)]),n.value==="catalog"?(e.openBlock(),e.createBlock(od,{key:0,catalog:o.value,selected:r.value,onToggleLayer:p,search:l.value,"onUpdate:search":b[2]||(b[2]=E=>l.value=E)},null,8,["catalog","selected","search"])):(e.openBlock(),e.createBlock(yd,{key:1,catalog:o.value,selected:r.value,onToggleLayer:p,onSelectLayer:b[3]||(b[3]=E=>n.value="catalog"),onReorder:g,onRemove:b[4]||(b[4]=E=>r.value=r.value.filter(f=>f!==E))},null,8,["catalog","selected"]))]))}}),Nd={key:1,class:"flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative widget"},Cd={class:"flex items-center justify-between p-5 pb-3"},Bd={class:"flex gap-[6px]"},Vd={class:"h-full px-5 pb-5 space-y-8"},vd={class:"text-4xl font-medium text-gray-800 dark:text-neutral-200"},Ad={class:"space-y-[14px]"},$d={class:"flex items-center gap-[10px] text-gray-500"},Sd={class:"flex items-center justify-end text-end"},Ld={class:"font-medium text-gray-800 dark:text-neutral-200"},Fd={class:"ms-3 min-w-[40px] font-medium inline-block text-[#3C3C4399] dark:text-neutral-400"},Md=e.defineComponent({__name:"MapAttributeWidget",props:{config:{}},setup(t){const n=t;function o(d){return{"data_bp_myo.bp":"3c95e341465d","data_bp_myo.myo":"dbcb186818e3","data_mbd.mbd":"9587e69d35fd"}[d]||"3c95e341465d"}const r=e.ref({}),l=e.ref(!0);e.onMounted(async()=>{var m;const d=n.config.layer,c=o(d.id),s=`${location.origin}/api/vtile/${c}/ua/{z}/{x}/{y}.vmt`;H(c,{sourceId:c,source:{type:"vector",tiles:[s],minzoom:0,maxzoom:14},layer:{id:c,source:c,"source-layer":c,style:d.style},card:d.style.card,popup:(m=d.style)==null?void 0:m.popup});const p=await(await fetch(`/api/gis-service/${c}/${d.style.attribute}`)).json();r.value=Object.fromEntries(p.rows.map(g=>[g.id,Number(g.count)]))});const i=e.computed(()=>n.config.layer.style.rules.map(d=>({...d,count:r.value[d.value]??0}))),a=e.computed(()=>i.value.reduce((d,c)=>d+c.count,0));return(d,c)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[l.value?e.createCommentVNode("",!0):(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]=s=>l.value=!0)}," Набори даних ")),l.value?(e.openBlock(),e.createElementBlock("div",Nd,[e.createElementVNode("div",Cd,[c[4]||(c[4]=e.createElementVNode("h2",{class:"inline-block text-xl font-semibold text-gray-800 dark:text-neutral-200"}," Набори даних ",-1)),e.createElementVNode("div",Bd,[c[3]||(c[3]=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"},[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"14",viewBox:"0 0 16 14",fill:"none"},[e.createElementVNode("path",{d:"M2.04 0.58h11.92c.13.05.25.13.35.23.1.1.18.22.22.36.04.13.05.27.03.41a.9.9 0 0 1-.15.39L9.83 7v6.42L6.17 10.67V7L1.58 1.96a.9.9 0 0 1-.15-.39c-.02-.14 0-.28.04-.41.04-.14.12-.26.21-.36.1-.1.22-.18.36-.22Z",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"})])],-1)),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]=s=>l.value=!1)},[...c[2]||(c[2]=[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",Vd,[e.createElementVNode("h4",vd,e.toDisplayString(a.value),1),e.createElementVNode("ul",Ad,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,s=>(e.openBlock(),e.createElementBlock("li",{key:s.label,class:"flex flex-wrap items-center justify-between gap-x-2"},[e.createElementVNode("div",null,[e.createElementVNode("label",$d,[e.createElementVNode("div",{class:"w-[16px] h-[16px] rounded",style:e.normalizeStyle({backgroundColor:s.color})},null,4),e.createTextVNode(" "+e.toDisplayString(s.label),1)])]),e.createElementVNode("div",Sd,[e.createElementVNode("span",Ld,e.toDisplayString(s.count),1),e.createElementVNode("span",Fd,e.toDisplayString(a.value>0?(s.count/a.value*100).toFixed(2):"0.00")+"% ",1)])]))),128))])])])):e.createCommentVNode("",!0)],64))}}),Td={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]"},Id={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"},Dd=["onClick"],jd={class:"relative flex-1 min-w-[140px]"},Od=["placeholder"],Pd="https://data.softpro.ua/api-user/gis-url-proxy",Rd="https://geo.rv.ua/api-user/dzk.api",zd=O(e.defineComponent({__name:"MapSearchWidget",props:{config:{}},setup(t){const n=t,o=oe(),r=["xy","parcel"],l=e.computed(()=>{var w,_;const x=(_=(w=n.config)==null?void 0:w.tools)==null?void 0:_.filter(k=>r.includes(k));return x&&x.length?x:r}),i=e.computed(()=>{var x,w;return((w=(x=n.config)==null?void 0:x.placeholder)==null?void 0:w.trim())||"Пошук…"}),a=e.ref(l.value[0]);e.watch(l,x=>{x.includes(a.value)||(a.value=x[0])});const d=e.ref(""),c=e.ref(!1),s=e.ref(null);e.watch(a,()=>{d.value="",c.value=!1});function u(x){a.value=x}function p(x){if(!c.value)return;const w=s.value;w&&!w.contains(x.target)&&(c.value=!1)}e.onMounted(()=>{window.addEventListener("click",p,!0)}),e.onBeforeUnmount(()=>{window.removeEventListener("click",p,!0)});function m(x){return x==="xy"?"Координати":x==="parcel"?"Кадастр":"Адреси"}function g(x){const w=x.replace(/[,]+/g," ").trim();if(!w)return null;const _=w.split(/\s+/).filter(Boolean);if(_.length<2)return null;const k=_.slice(0,2).map(Number);if(!k.every(L=>Number.isFinite(L)))return null;let[C,N]=k,v=C,M=N;const D=L=>Math.abs(L)<=90,A=L=>Math.abs(L)<=180;if(!D(v)||!A(M))if(D(M)&&A(v))v=N,M=C;else return null;return{lat:v,lng:M}}function h(x){return((x==null?void 0:x.items)||[]).map((_,k)=>{var C,N,v;return{id:String((_==null?void 0:_.id)??k),title:(_==null?void 0:_.title)||((C=_==null?void 0:_.address)==null?void 0:C.label)||"Знайдений обʼєкт",lat:Number((N=_==null?void 0:_.position)==null?void 0:N.lat),lng:Number((v=_==null?void 0:_.position)==null?void 0:v.lng)}})}function y(x){const w=(x==null?void 0:x.result)||(x==null?void 0:x.data)||x;if(!w)return[];const _=w.geom_centroid;if(!_||!Array.isArray(_.coordinates))return[];const[k,C]=_.coordinates;return!Number.isFinite(C)||!Number.isFinite(k)?[]:[{id:"parcel",title:w.cadnum||w.cad_num||"Земельна ділянка",lat:C,lng:k}]}function b(x){const _=x.replace(/\s+/g,"").split(":");if(console.log(_),_.length!==4)return!1;const k=[10,2,3,4];return _.every((C,N)=>C.length===k[N]&&/^\d+$/.test(C))}function E(x){var _,k;const w=((_=n.config)==null?void 0:_.zoom)??17;(k=o.flyTo)==null||k.call(o,{center:[x.lng,x.lat],zoom:w})}async function f(){const x=d.value.trim();if(x){if(a.value==="xy"){const w=g(x);if(!w){K.notify({type:"warning",title:"Пошук координат",message:"Не знайдено або невірний формат координат"});return}E({id:"xy",title:"Точка на мапі",...w}),d.value="";return}try{const w=new URL(a.value==="here"?Pd:Rd);if(a.value==="here")w.searchParams.set("searchtext",x);else{if(!b(x)){K.notify({type:"warning",title:"Пошук кадастру",message:"Кадастровий номер має формат ХХХХХХХХХХ:ХХ:ХХХ:ХХХХ"});return}w.searchParams.set("cad_num",x)}const _=await fetch(w.toString());if(!_.ok)throw new Error(`HTTP ${_.status}`);const k=await _.json(),C=a.value==="here"?h(k):y(k);if(!C.length)K.notify({type:"warning",title:"Пошук",message:"Не знайдено результатів"});else{const N=C[0];E(N),d.value=""}}catch(w){const _=(w==null?void 0:w.message)||"Помилка пошуку";K.notify({type:"error",title:"Пошук",message:_})}}}return(x,w)=>(e.openBlock(),e.createElementBlock("div",Td,[e.createElementVNode("form",{class:"flex gap-2",onSubmit:e.withModifiers(f,["prevent"])},[l.value.length>1?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:s,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:w[0]||(w[0]=_=>c.value=!c.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":c.value}]),viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[...w[2]||(w[2]=[e.createElementVNode("path",{d:"M6 9l6 6 6-6",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])],2))]),c.value?(e.openBlock(),e.createElementBlock("div",Id,[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,_=>(e.openBlock(),e.createElementBlock("li",{key:_,class:"px-3 py-2 cursor-pointer hover:bg-gray-100",onClick:k=>u(_)},e.toDisplayString(m(_)),9,Dd))),128))])])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),e.createElementVNode("div",jd,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":w[1]||(w[1]=_=>d.value=_),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,Od),[[e.vModelText,d.value,void 0,{trim:!0}]]),w[3]||(w[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"]]),Ud="https://watergis.github.io/mapbox-gl-export/mapbox-gl-export.css",qd="https://watergis.github.io/mapbox-gl-export/mapbox-gl-export.js",Hd=O(e.defineComponent({__name:"MapPrintControl",setup(t){const{map:n,ready:o,addControl:r,removeControl:l}=oe(),i=e.ref(null),a=e.ref(null),d=e.ref(null),c=e.ref(null);let s=null;function u(){!window.mapboxgl&&window.maplibregl&&(window.mapboxgl=window.maplibregl)}function p(k){if(Array.from(document.styleSheets).some(v=>{var M;return(M=v==null?void 0:v.href)==null?void 0:M.includes(k)}))return;const N=document.createElement("link");N.rel="stylesheet",N.href=k,document.head.appendChild(N)}function m(k){return new Promise((C,N)=>{const v=Array.from(document.scripts).find(D=>D.src===k);if(v){if(v._loaded)return C();v.addEventListener("load",()=>C()),v.addEventListener("error",()=>N(new Error(`Failed ${k}`)));return}const M=document.createElement("script");M.src=k,M.async=!0,M.onload=()=>{M._loaded=!0,C()},M.onerror=()=>N(new Error(`Failed ${k}`)),document.head.appendChild(M)})}function g(){var C,N,v;const k=window;return k.MapboxExportControl||((C=k.mapboxgl)==null?void 0:C.MapboxExportControl)||((N=k.mapboxglExport)==null?void 0:N.MapboxExportControl)||((v=k.mapboxglExport)==null?void 0:v.default)||null}function h(){const k=document.createElementNS("http://www.w3.org/2000/svg","svg");return k.setAttribute("xmlns","http://www.w3.org/2000/svg"),k.setAttribute("viewBox","0 0 24 24"),k.setAttribute("width","18"),k.setAttribute("height","18"),k.setAttribute("fill","none"),k.setAttribute("stroke","currentColor"),k.setAttribute("stroke-width","2"),k.setAttribute("stroke-linecap","round"),k.setAttribute("stroke-linejoin","round"),k.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((N,v)=>{const M=document.createElementNS("http://www.w3.org/2000/svg","path");Object.entries(N).forEach(([D,A])=>{M.setAttribute(D,A)}),k.appendChild(M)}),k}function y(){const k=document.createElement("button");k.id="print-btn",k.type="button",k.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(" "),k.setAttribute("aria-label","Друк");const C=h(),N=document.createElement("span");return N.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(" "),N.textContent="Друк",N.setAttribute("aria-hidden","true"),k.appendChild(C),k.appendChild(N),k.addEventListener("click",v=>{v.stopPropagation(),b()}),c.value=k,k}function b(){if(!d.value)return;d.value.style.display==="block"?f():E()}function E(){var k,C,N;d.value&&(d.value.style.display="block",(k=c.value)==null||k.classList.add("scale-105","shadow-xl"),(C=a.value)==null||C.toggleCrosshair(!0),(N=a.value)==null||N.togglePrintableArea(!0),document.addEventListener("click",x))}function f(){var k,C,N;d.value&&(d.value.style.display="none",(k=c.value)==null||k.classList.remove("scale-105","shadow-xl"),(C=a.value)==null||C.toggleCrosshair(!1),(N=a.value)==null||N.togglePrintableArea(!1),document.removeEventListener("click",x))}function x(k){const C=i.value;C&&(k.target&&C.contains(k.target)||f())}function w(k){const C={Size:"Розмір",Orientation:"Орієнтація",Format:"Формат",DPI:"DPI",Landscape:"Горизонтальна",Portrait:"Вертикальна",PNG:"PNG",JPEG:"JPEG",SVG:"SVG",PDF:"PDF","Page Size":"Розмір","Page Orientation":"Орієнтація"};k.querySelectorAll("label, option").forEach(v=>{var D;const M=(D=v.textContent)==null?void 0:D.trim();M&&C[M]&&(v.textContent=C[M])});const N=k.querySelector("button");N&&(N.textContent="Друкувати")}function _(k){const C=k.querySelector(".mapboxgl-export-list");if(!C||!i.value)return;d.value=C;const N=k.querySelector("button");if(N&&(N.style.display="none"),k.style.display="none",!c.value){const M=y();i.value.appendChild(M)}C.style.display="none";const v="_printControlBound";if(!C[v]){const M=D=>D.stopPropagation();C.addEventListener("click",M),C.addEventListener("mousedown",M),C[v]=!0}i.value.appendChild(C),w(C)}return e.onMounted(async()=>{await(o==null?void 0:o());const k=n.value;if(!k)return;p(Ud),u();try{await m(qd)}catch(v){console.warn("[MapPrintControl] load error",v);return}const C=g();if(!C)return;const N=new C({PageSize:"A4",PageOrientation:"landscape",Format:"pdf",DPI:300,Crosshair:!0,PrintableArea:!0});if(a.value=N,typeof N.onAdd=="function"){const v=N.onAdd.bind(N);N.onAdd=M=>{const D=v(M);return setTimeout(()=>D&&_(D),50),D}}r?r(N,"top-right"):k.addControl(N,"top-right"),s=v=>{v.key==="Escape"&&f()},document.addEventListener("keyup",s)}),e.onBeforeUnmount(()=>{f(),s&&(document.removeEventListener("keyup",s),s=null);const k=n.value;if(a.value)try{l?l(a.value):k==null||k.removeControl(a.value)}catch{}a.value=null}),(k,C)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"root",ref:i,class:"map-print-control"},null,512))}}),[["__scopeId","data-v-89156246"]]),Yd={class:"map-center-control"},Kd=O(e.defineComponent({__name:"MapCenterControl",props:{center:{},zoom:{}},setup(t){const n=t,{map:o,ready:r}=oe(),l=e.ref(null),i=e.ref(null);function a(c){if(Array.isArray(c)&&c.length>=2){const[s,u]=c.slice(0,2).map(p=>Number(p));return Number.isNaN(s)||Number.isNaN(u)?null:[s,u]}if(c&&typeof c=="object"){const s=c,u=s.lng??s.lon??s.long??s.x,p=s.lat??s.y;if(u!=null&&p!=null){const m=Number(u),g=Number(p);if(!Number.isNaN(m)&&!Number.isNaN(g))return[m,g]}}if(typeof c=="string"){const s=c.split(",").map(u=>Number(u.trim()));if(s.length>=2&&s.every(u=>!Number.isNaN(u)))return[s[0],s[1]]}return null}e.watch(()=>n.center,c=>{const s=a(c);s&&(l.value=s)},{immediate:!0}),e.watch(()=>n.zoom,c=>{const s=Number(c);Number.isNaN(s)||(i.value=s)},{immediate:!0}),e.onMounted(async()=>{await(r==null?void 0:r());const c=o.value;if(c){if(!l.value){const s=c.getCenter();l.value=[s.lng,s.lat]}i.value==null&&(i.value=c.getZoom())}});function d(){const c=o.value;if(!c)return;const s=l.value||(()=>{const p=c.getCenter();return[p.lng,p.lat]})(),u=i.value??c.getZoom();c.flyTo({center:s,zoom:u})}return(c,s)=>(e.openBlock(),e.createElementBlock("div",Yd,[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(d,["stop"])},[e.createVNode(e.unref(mn),{class:"w-4 h-4"}),s[0]||(s[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"]]),Wd={class:"cursor-coordinates"},Gd={class:"cursor-coordinates__text"},Zd=O(e.defineComponent({__name:"MapCursorCoordinates",props:{coordinates:{}},setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("div",Wd,[e.createElementVNode("span",Gd,e.toDisplayString(n.coordinates),1)]))}}),[["__scopeId","data-v-334315d9"]]),Qd={class:"minimap__wrapper"},De="minimap-viewport",Xd="minimap-viewport-layer",Jd=O(e.defineComponent({__name:"MapMiniMap",props:{mapContext:{},width:{},height:{},options:{}},setup(t){var E;const n=t,o=e.ref(null),r=e.shallowRef(null),l=(E=n.options)==null?void 0:E.active,i=e.ref(l===void 0?!1:!!l);function a(f,x){return typeof f=="number"&&Number.isFinite(f)?f:x}const d=e.computed(()=>{var k,C;const f=(k=n.options)==null?void 0:k.width,x=(C=n.options)==null?void 0:C.height,w=a(n.width??f,210),_=a(n.height??x,150);return{width:`${w}px`,height:`${_}px`}});function c(){var x,w;const f=(w=(x=n.mapContext)==null?void 0:x.map)==null?void 0:w.value;if(!f||typeof f.getStyle!="function")return null;try{const _=f.getStyle();return _?JSON.parse(JSON.stringify(_)):null}catch{return null}}let s=null;function u(){var k;if(typeof window>"u"||r.value||!o.value)return;const f=c(),x=[30,50],w={container:o.value,style:f??{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:x,zoom:((k=n.options)==null?void 0:k.zoom)??3,interactive:!1,attributionControl:!1},_={...w,...n.options??{}};_.container=w.container,r.value=new maplibregl.Map(_),r.value.on("load",()=>{m(),h()})}function p(){if(!r.value)return;const f=c();f&&(r.value.once("styledata",()=>{m(),h()}),r.value.setStyle(f))}function m(){if(r.value){if(typeof r.value.isStyleLoaded=="function"&&!r.value.isStyleLoaded()){r.value.once("styledata",()=>{m(),h()});return}r.value.getSource(De)||(r.value.addSource(De,{type:"geojson",data:{type:"Feature",geometry:{type:"Polygon",coordinates:[[[0,0],[0,0],[0,0],[0,0],[0,0]]]},properties:{}}}),r.value.addLayer({id:Xd,type:"fill",source:De,paint:{"fill-color":"#3b82f6","fill-opacity":.2,"fill-outline-color":"#1d4ed8"}}))}}function g(){i.value=!i.value,i.value&&e.nextTick(()=>{var f;return(f=r.value)==null?void 0:f.resize()})}function h(){var N,v;const f=(v=(N=n.mapContext)==null?void 0:N.map)==null?void 0:v.value;if(!r.value||!f||!f.getBounds)return;if(typeof r.value.isStyleLoaded=="function"&&!r.value.isStyleLoaded()){r.value.once("styledata",()=>{h()});return}const x=f.getBounds();if(!x)return;const w=x.getNorthEast(),_=x.getSouthWest();if(!w||!_)return;const k=[[_.lng,w.lat],[w.lng,w.lat],[w.lng,_.lat],[_.lng,_.lat],[_.lng,w.lat]],C=r.value.getSource(De);if(!C){m();return}C.setData({type:"Feature",geometry:{type:"Polygon",coordinates:[k]},properties:{}})}function y(){var w;const f=n.mapContext,x=(w=f==null?void 0:f.map)==null?void 0:w.value;!(f!=null&&f.on)||!x||(s==null||s(),s=f.on("move",h),h())}async function b(){const f=n.mapContext;if(f){if(typeof f.ready=="function")try{await f.ready()}catch{return}y()}}return e.onMounted(()=>{u(),b()}),e.watch(()=>n.mapContext,()=>{b(),h()}),e.watch(()=>{var f,x;return(x=(f=n.mapContext)==null?void 0:f.map)==null?void 0:x.value},()=>{r.value&&(p(),b())}),e.watch(d,()=>{r.value&&e.nextTick(()=>{var f;return(f=r.value)==null?void 0:f.resize()})}),e.watch(()=>n.options,()=>{var x;s==null||s(),s=null,r.value&&(r.value.remove(),r.value=null);const f=(x=n.options)==null?void 0:x.active;typeof f=="boolean"&&(i.value=f),e.nextTick(()=>{u(),b()})},{deep:!0}),e.onBeforeUnmount(()=>{s==null||s(),s=null,r.value&&(r.value.remove(),r.value=null)}),(f,x)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["minimap",{"minimap--open":i.value}])},[e.createElementVNode("button",{type:"button",class:"minimap__button",onClick:g},[e.createVNode(e.unref(un))]),e.createVNode(e.Transition,{name:"minimap-slide"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",Qd,[e.createElementVNode("div",{ref_key:"minimapRoot",ref:o,class:"mapboxgl-ctrl-minimap mapboxgl-ctrl mapboxgl-map",style:e.normalizeStyle(d.value),id:"mapboxgl-minimap"},null,4)],512),[[e.vShow,i.value]])]),_:1})],2))}}),[["__scopeId","data-v-3ce09bde"]]),ep={key:0,class:"absolute bottom-4 right-4 z-30 flex items-end gap-2"},tp={class:"absolute top-[103px] right-[6.5px] z-20 flex flex-col items-end gap-1"},np={key:0,class:"map-widget__state"},op={key:1,class:"map-widget__state map-widget__state--error"},et=O(e.defineComponent({__name:"MapWidget",props:{id:{},height:{}},setup(t){const n=t,o=te.useRoute(),r=te.useRouter(),l=e.ref(null),i=e.ref({}),a=e.ref(!1),d=e.ref(null),c=e.ref(!1),s=e.computed(()=>n.id||"main"),u=e.computed(()=>{var B,$;return{height:((B=n.height)==null?void 0:B.trim())||(($=i.value)==null?void 0:$.height)||"calc(100vh - 65px)"}}),p=e.computed(()=>{var B;return((B=i.value)==null?void 0:B.name)??null}),m=e.computed(()=>{var B;return((B=i.value)==null?void 0:B.description)??null}),g=e.ref(null),h=e.computed(()=>{if(!g.value)return null;const{lng:B,lat:$}=g.value;return`${$.toFixed(6)}, ${B.toFixed(6)}`}),y=e.computed(()=>{var B;return((B=l.value)==null?void 0:B.ctx)??null}),b=e.computed(()=>{var B;return((B=i.value)==null?void 0:B.minimap)??null});function E(B){return typeof B=="string"&&B.trim()?B.trim().toLowerCase():"top-left"}const f=e.computed(()=>i.value.widgets||[]),x=e.computed(()=>{var $;const B=($=i.value.widgets)==null?void 0:$.map(j=>j.position);return[...new Set(B)]});function w(B){const $={"top-left":"absolute top-4 left-4 z-20","top-right":"absolute top-4 right-11 z-20","bottom-left":"absolute bottom-9 left-4 z-20","bottom-right":"absolute bottom-9 right-11 z-20"},j=E(B);return $[j]||$["top-left"]}function _(B){return Array.isArray(B)?B[0]??null:typeof B=="string"?B:null}async function k(){var $;await e.nextTick();const B=($=l.value)==null?void 0:$.ctx;return B?(B.ready&&await B.ready(),B):null}function C(){var B,$,j;return((j=($=(B=l.value)==null?void 0:B.ctx)==null?void 0:$.map)==null?void 0:j.value)??null}function N(){const B=C();if(!B)return null;const $=B.getCenter(),j=B.getZoom();return{x:$.lng.toFixed(5),y:$.lat.toFixed(5),z:j.toFixed(2)}}function v(){const B=N();if(!B)return;const $=_(o.query.x),j=_(o.query.y),R=_(o.query.z);$===B.x&&j===B.y&&R===B.z||r.replace({query:{...o.query,...B}}).catch(()=>{})}function M(B,$,j=1e-6){return Math.abs(B-$)<=j}async function D(){var Ve;const B=await k(),$=(Ve=B==null?void 0:B.map)==null?void 0:Ve.value;if(!B||!$)return;const j=parseFloat(_(o.query.x)??""),R=parseFloat(_(o.query.y)??""),P=parseFloat(_(o.query.z)??""),I=!Number.isNaN(j),Z=!Number.isNaN(R),ee=!Number.isNaN(P);let ue=!1;if(I&&Z){const ve=$.getCenter();(!M(ve.lng,j)||!M(ve.lat,R))&&($.setCenter([j,R]),ue=!0)}ee&&$.setZoom(P),(!I||!Z||!ee||ue)&&v()}let A=null,L=null;function q(B){const $=B==null?void 0:B.lngLat;$&&(g.value={lng:$.lng,lat:$.lat})}async function ce(){const B=await k();B!=null&&B.on&&(A==null||A(),A=B.on("moveend",v),L==null||L(),L=B.on("mousemove",q))}e.onUnmounted(()=>{A==null||A(),A=null,L==null||L(),L=null});async function re(){var B,$;c.value=!1,a.value=!0,d.value=null,g.value=null;try{const j=await fetch(`/api/gis-map/${encodeURIComponent(s.value)}`);if(!j.ok)throw new Error(`Помилка завантаження (${j.status})`);const R=await j.json();i.value=R,i.value.widgets=R.widgets;const P=await k();P&&(R.center&&((B=P.setCenter)==null||B.call(P,R.center)),R.zoom&&(($=P.setZoom)==null||$.call(P,R.zoom))),await D(),await ce(),c.value=!0}catch(j){d.value=(j==null?void 0:j.message)||"Не вдалося завантажити карту"}finally{a.value=!1}}const F=e.computed(()=>{var R,P,I;const B=((R=i.value)==null?void 0:R.layers)||[],$=((I=(P=i.value)==null?void 0:P.widgets)==null?void 0:I.filter(Z=>Z.type==="layers").flatMap(Z=>{var ee;return((ee=Z.config)==null?void 0:ee.layers)||[]}))||[],j=[];return B.forEach(Z=>{const ee=$.find(ue=>ue.id===Z.id);ee&&(Z.actions=ee.actions),j.push(Z)}),j}),V=e.ref([]);function T(B){V.value.includes(B)?V.value=V.value.filter($=>$!==B):V.value.push(B)}const Y=e.computed(()=>B=>V.value.includes(B.id));return e.watch(s,()=>{re()}),e.onMounted(()=>{re()}),e.watch(()=>[o.query.x,o.query.y,o.query.z],()=>{D()}),(B,$)=>(e.openBlock(),e.createElementBlock("div",{class:"map-widget",style:e.normalizeStyle(u.value)},[e.createVNode(Zt,{ref_key:"mapViewRef",ref:l,class:"map-widget__view"},{default:e.withCtx(()=>{var j,R;return[y.value?(e.openBlock(),e.createElementBlock("div",ep,[h.value?(e.openBlock(),e.createBlock(Zd,{key:0,coordinates:h.value},null,8,["coordinates"])):e.createCommentVNode("",!0),e.createVNode(Jd,{"map-context":y.value,options:b.value},null,8,["map-context","options"])])):e.createCommentVNode("",!0),e.createElementVNode("div",tp,[e.createVNode(Kd,{center:((j=i.value)==null?void 0:j.center)||null,zoom:((R=i.value)==null?void 0:R.zoom)??null},null,8,["center","zoom"]),e.createVNode(Hd)]),c.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.value,P=>(e.openBlock(),e.createElementBlock("div",{key:P,class:e.normalizeClass(["map-overlay overflow-y-auto",w(P)])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value.filter(I=>I.position===P),I=>{var Z,ee,ue,Ve,ve,nn,on,rn,ln,an;return e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:I.id||I.type,class:"map-overlay__item"},[I.type==="info"?(e.openBlock(),e.createBlock(Dc,{key:0,title:((Z=I.config)==null?void 0:Z.title)||I.title||null,content:((ee=I.config)==null?void 0:ee.content)||"",links:((ue=I.config)==null?void 0:ue.goTo)||[],"map-name":p.value,"map-description":m.value},null,8,["title","content","links","map-name","map-description"])):I.type==="catalog"?(e.openBlock(),e.createBlock(Ed,{key:1,api:((Ve=I.config)==null?void 0:Ve.api)||null},null,8,["api"])):I.type==="layers"?(e.openBlock(),e.createBlock(Yc,{key:2,title:I.title||((ve=I.config)==null?void 0:ve.title)||"Шари",layers:F.value,onAction:$[0]||($[0]=lp=>T(lp.layerId))},null,8,["title","layers"])):I.type==="basemaps"?(e.openBlock(),e.createBlock(Xt,{key:3,layers:((nn=I.config)==null?void 0:nn.layers)||null,"default-layer":((on=I.config)==null?void 0:on.default)||null,title:I.title||((rn=I.config)==null?void 0:rn.title)||null},null,8,["layers","default-layer","title"])):I.type==="legend"?(e.openBlock(),e.createBlock(Jt,{key:4,items:((ln=I.config)==null?void 0:ln.items)||[]},null,8,["items"])):I.type==="filters"&&Y.value(I)?(e.openBlock(),e.createBlock(Qt,{key:5,"layer-id":(an=I.config)==null?void 0:an.layer,onClose:T},null,8,["layer-id"])):I.type==="attribute"?(e.openBlock(),e.createBlock(Md,{key:6,config:I.config},null,8,["config"])):I.type==="search"?(e.openBlock(),e.createBlock(zd,{key:7,config:I.config},null,8,["config"])):e.createCommentVNode("",!0)])),[[e.vShow,I.visible!==!1]])}),128))],2))),128)),e.createVNode(en),e.createVNode(tn)],64)):e.createCommentVNode("",!0)]}),_:1},512),a.value?(e.openBlock(),e.createElementBlock("div",np,"Завантаження карти…")):d.value?(e.openBlock(),e.createElementBlock("div",op,e.toDisplayString(d.value),1)):e.createCommentVNode("",!0)],4))}}),[["__scopeId","data-v-b322dc23"]]);function rp(t){t.component("MapCustom",et)}J.MapWidget=et,J.Register=al,J.Service=vc,J.default=et,J.install=rp,Object.defineProperties(J,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));