@opengis/gis 0.1.80 → 0.1.81

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.
@@ -77,4 +77,4 @@
77
77
  * See the LICENSE file in the root directory of this source tree.
78
78
  */const ml=Ae("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"}]]),pl={class:"flex items-center justify-end col-span-3 gap-2"},fl={class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},ul=e.defineComponent({__name:"vs-datatable-controls",props:e.mergeModels({index:{},data:{},scheme:{}},{columns:{type:Array,default:()=>[]},columnsModifiers:{}}),emits:["update:columns"],setup(t){const o=e.defineAsyncComponent(()=>import("@opengis/form")),n=e.defineAsyncComponent(()=>import("@opengis/core").then(d=>d.VsModal)),r=t,m=e.useModel(t,"columns"),s=e.ref(!1),i=e.ref({}),p=e.ref({...r.data||{}}),f=()=>m.value=m.value.filter((d,a)=>a!==r.index),c=async()=>{const d=i.value.validate();if(d){Z.notify({type:"warning",title:"Validation",message:Object.entries(d).map(([a,l])=>`${a}: ${l}`).join(`
79
79
  `)});return}m.value[r.index]=p.value,s.value=!1};return(d,a)=>(e.openBlock(),e.createElementBlock("div",pl,[e.createElementVNode("button",{onClick:a[0]||(a[0]=l=>{s.value=!0,console.log(d.scheme)}),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(dl),{class:"w-4 h-4"})]),e.createElementVNode("button",{onClick:f,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(ml),{class:"w-4 h-4"})]),e.createVNode(e.unref(n),{size:"lg",visible:s.value,"onUpdate:visible":a[4]||(a[4]=l=>s.value=l),title:"Редагувати поле"},{footer:e.withCtx(()=>[e.createElementVNode("div",fl,[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:a[3]||(a[3]=l=>s.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(o),{values:p.value,"onUpdate:values":a[1]||(a[1]=l=>p.value=l),schema:d.scheme,form:i.value,"onUpdate:form":a[2]||(a[2]=l=>i.value=l)},null,8,["values","schema","form"])]),_:1},8,["visible"])]))}}),gl={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")})}},hl={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"},pe=t=>hl[t==null?void 0:t.toLowerCase()]||"gray",yl=["array","boolean","date","datetime","number","text","file","select","slug","image","badge","title","features","status","tags","category","check","range","autocomplete"],fe=t=>{var o;return yl.includes((o=t||"")==null?void 0:o.toLowerCase())},bl={key:0,class:"flex items-center justify-between mb-6"},kl={class:"flex justify-end w-full"},xl={class:"overflow-hidden bg-white border border-gray-200 shadow-sm rounded-xl flex flex-col"},wl={class:"table-scroll-wrapper flex-1 overflow-y-auto"},_l={class:"table-fixed w-full text-[13px]"},Vl={class:"bg-gray-50 border-b border-gray-200"},El={class:"transition-colors hover:bg-gray-50/50"},Bl={key:0,class:"flex w-fit items-center gap-2 text-left"},Nl={class:"flex-1 min-w-0"},Cl={class:"font-medium text-gray-900 truncate"},$l={class:"text-xs text-gray-500"},Ll={key:0,class:"flex items-center justify-center"},Sl={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"},Fl={key:1,class:"text-gray-500 text-sm"},jl={key:2},Il={class:"px-6 py-4"},vl={key:1},Dl=["colspan"],xe=F(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:o}){const n=e.defineAsyncComponent(()=>import("@opengis/core").then(u=>u.VsModal)),r=e.defineAsyncComponent(()=>import("@opengis/form")),m=e.useModel(t,"modelValue");o({openCreateDialog:()=>{p.value=!0}});const s=t,i=e.ref({}),p=e.ref(!1),f=e.ref({}),c=e.ref(null),d=e.computed({get(){return Array.isArray(m.value)?m.value:m.value&&Array.isArray(m.value.columns)?m.value.columns:[]},set(u){Array.isArray(m.value)?m.value=u:m.value&&Array.isArray(m.value.columns)&&(m.value.columns=u)}}),a=e.computed(()=>{const u=s.columnsScheme.map(y=>y.key);return u.includes("name")&&u.includes("ua")||u.includes("id")&&u.includes("label")?[{key:"main",label:"Назва",type:"main",width:"100%"},...s.columnsScheme.filter(y=>!["name","ua","format","id","label"].includes(y.key))]:s.columnsScheme});function l(){p.value=!1,f.value={},c.value=null}async function h(){const u=i.value.validate();if(u){Z.notify({type:"warning",title:"Validation",message:Object.entries(u).map(([y,g])=>`${y}: ${g}`).join(`
80
- `)});return}if(c.value===null)d.value=[...d.value,{...f.value}];else{const y=[...d.value];y[c.value]={...f.value},d.value=y}l()}return(u,y)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[u.addButton?(e.openBlock(),e.createElementBlock("div",bl,[e.createElementVNode("div",kl,[e.createElementVNode("button",{onClick:y[0]||(y[0]=g=>p.value=!0),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring [&_svg]:shrink-0 bg-primary hover:bg-primary/90 h-10 px-4 py-2 bg-gradient-to-r from-blue-600 to-blue-500 hover:from-blue-700 hover:to-blue-600 text-white"},[...y[5]||(y[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",xl,[e.createElementVNode("div",wl,[e.createElementVNode("table",_l,[e.createElementVNode("colgroup",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,g=>(e.openBlock(),e.createElementBlock("col",{key:g.key,style:e.normalizeStyle(g.type==="main"?`width: ${u.mainColWidth}`:g.width?`width: ${g.width}`:"auto")},null,4))),128)),y[6]||(y[6]=e.createElementVNode("col",null,null,-1))]),e.createElementVNode("thead",null,[e.createElementVNode("tr",Vl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,g=>(e.openBlock(),e.createElementBlock("th",{key:g.key,class:"px-6 py-4"},e.toDisplayString(g.label),1))),128)),y[7]||(y[7]=e.createElementVNode("th",{class:"px-6 py-4"},"Дії",-1))])]),d.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(d.value,g=>(e.openBlock(),e.createElementBlock("tr",El,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,b=>(e.openBlock(),e.createElementBlock("td",{key:b.key,class:"px-6 py-4 align-middle text-center"},[b.type==="main"?(e.openBlock(),e.createElementBlock("div",Bl,[y[8]||(y[8]=e.createElementVNode("span",{class:"drag-handle cursor-move mr-2 text-gray-400"},"☰",-1)),e.unref(fe)(g.format==="yes/no"?"check":g.format||g.type)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["flex items-center justify-center p-1 rounded",`bg-${e.unref(pe)(g.format==="yes/no"?"check":g.format||g.type)}-100`])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(g.format==="yes/no"?"icon-check":`icon-${g.format||g.type}`),{class:"w-4 h-4"}))],2)):e.createCommentVNode("",!0),e.createElementVNode("div",Nl,[e.withDirectives((e.openBlock(),e.createElementBlock("p",Cl,[e.createTextVNode(e.toDisplayString(g.name||g.id),1)])),[[e.unref(gl)]]),e.createElementVNode("p",$l,e.toDisplayString(g.ua||g.label),1)])])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[b.type==="color"?(e.openBlock(),e.createElementBlock("div",Ll,[e.createElementVNode("div",{class:e.normalizeClass(["w-4 h-4 rounded-full align-middle",`bg-[${g[b.key]}]`])},null,2)])):["format","type","meta"].includes(b.key)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[g[b.key]?(e.openBlock(),e.createElementBlock("span",Sl,e.toDisplayString(g[b.key]),1)):(e.openBlock(),e.createElementBlock("span",Fl,"Не вказано"))],64)):(e.openBlock(),e.createElementBlock("span",jl,e.toDisplayString(g[b.key]),1))],64))]))),128)),e.createElementVNode("td",Il,[e.createVNode(ul,{columns:d.value,"onUpdate:columns":y[1]||(y[1]=b=>d.value=b),data:g,index:u.rowIndex,scheme:u.formScheme},null,8,["columns","data","index","scheme"])])]))),256)):(e.openBlock(),e.createElementBlock("tr",vl,[e.createElementVNode("td",{colspan:a.value.length+1,class:"text-gray-500 text-center py-4"}," Поля не знайдені ",8,Dl)]))])])]),e.createVNode(e.unref(n),{title:"Створити поле",size:"lg",visible:p.value,"onUpdate:visible":y[4]||(y[4]=g=>p.value=g)},{footer:e.withCtx(()=>[e.createElementVNode("div",{class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},[e.createElementVNode("button",{type:"button",onClick:l,class:"px-4 py-2 rounded bg-gray-100 text-gray-700"}," Скасувати "),e.createElementVNode("button",{type:"button",onClick:h,class:"px-4 py-2 rounded bg-blue-600 text-white"}," Зберегти ")])]),default:e.withCtx(()=>[e.createVNode(e.unref(r),{ref_key:"form",ref:i,modelValue:f.value,"onUpdate:modelValue":y[2]||(y[2]=g=>f.value=g),schema:u.formScheme,form:i.value,"onUpdate:form":y[3]||(y[3]=g=>i.value=g)},null,8,["modelValue","schema","form"])]),_:1},8,["visible"])],64))}}),[["__scopeId","data-v-619014d7"]]),Al={class:"vs-form"},Ml={class:"vs-form__body auto-rows-max container"},Tl={class:"flex flex-wrap"},zl={class:"h-fit w-full mb-6 px-2"},Pl={class:"h-fit w-full flex flex-wrap"},Ul={class:"flex justify-end mb-3 gap-2 w-full"},Ol={class:"w-full"},ql={class:"p-4 text-[13px]"},Rl={class:"grid grid-cols-2 gap-x-6 gap-y-2"},Hl=["id","value"],Wl={class:"ml-2 flex-1 min-w-0 flex items-center gap-2"},Zl={class:"font-medium text-gray-900 truncate"},Yl={class:"text-xs text-gray-500"},Gl={class:"flex justify-end gap-2 p-4 border-t w-full"},Jl=e.defineComponent({__name:"list-tab",props:{data:{default:{}},dataModifiers:{}},emits:["update:data"],setup(t){const o=e.useModel(t,"data"),n=e.computed(()=>Array.isArray(o.value.fields)?o.value.fields:[]),r=e.defineAsyncComponent(()=>import("@opengis/form")),m=e.defineAsyncComponent(()=>import("@opengis/core").then(y=>y.VsModal)),s=e.ref(),i=e.ref(!1),p=e.ref([]),f=e.computed(()=>{var y,g;return((y=o.value)==null?void 0:y.token)||((g=o.value)==null?void 0:g.id)||"register-form"}),c=e.computed({get:()=>(o.value||(o.value={}),Array.isArray(o.value.columns)||(o.value.columns=[]),o.value.columns),set:y=>{o.value||(o.value={}),o.value.columns=Array.isArray(y)?y:[]}}),d=e.computed({get:()=>o.value||{},set:y=>{var b;const g=Array.isArray((b=o.value)==null?void 0:b.columns)?o.value.columns:[];o.value={...o.value,...y,columns:g}}});e.watch(i,y=>{if(y){const g=c.value.map(b=>b.name||b.id);p.value=[...g]}});const a=()=>{const y=new Set(p.value);c.value;const g=n.value.filter(b=>y.has(b.name));c.value=g,i.value=!1,p.value=[]},l={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}},h=[{key:"name",label:"Name",type:"text"},{key:"ua",label:"UA",type:"text"},{key:"format",label:"Format",type:"text"},{key:"meta",label:"Мета",type:"text"},{key:"data",label:"Класифікатор",type:"text"}],u={name:{type:"text",label:"Name",required:!0},ua:{type:"text",label:"UA",required:!0},format:{type:"combobox",label:"Format",mode:"combo",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(y,g)=>(e.openBlock(),e.createElementBlock("div",Al,[e.createElementVNode("div",Ml,[e.createElementVNode("div",Tl,[e.createElementVNode("div",zl,[(e.openBlock(),e.createBlock(e.unref(r),{ref_key:"formEl",ref:s,key:f.value,schema:l,modelValue:d.value,"onUpdate:modelValue":g[0]||(g[0]=b=>d.value=b)},null,8,["modelValue"]))]),e.createElementVNode("div",Pl,[e.createElementVNode("div",Ul,[e.createElementVNode("button",{onClick:g[1]||(g[1]=b=>i.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 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"},[...g[6]||(g[6]=[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",Ol,[e.createVNode(xe,{modelValue:c.value,"onUpdate:modelValue":g[2]||(g[2]=b=>c.value=b),"columns-scheme":h,"form-scheme":u,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])])])])]),e.createVNode(e.unref(m),{visible:i.value,"onUpdate:visible":g[5]||(g[5]=b=>i.value=b),title:"Імпорт колонок",size:"lg"},{footer:e.withCtx(()=>[e.createElementVNode("div",Gl,[e.createElementVNode("button",{onClick:g[4]||(g[4]=b=>i.value=!1),class:"px-4 py-2 rounded bg-gray-100 text-gray-700"}," Скасувати "),e.createElementVNode("button",{onClick:a,class:"px-4 py-2 rounded bg-blue-600 text-white"}," Імпортувати ")])]),default:e.withCtx(()=>[e.createElementVNode("div",ql,[e.createElementVNode("div",Rl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,b=>(e.openBlock(),e.createElementBlock("label",{key:b.name,class:"flex items-center hover:bg-gray-100 rounded p-2 cursor-pointer"},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",id:"import-"+b.name,"onUpdate:modelValue":g[3]||(g[3]=k=>p.value=k),value:b.name},null,8,Hl),[[e.vModelCheckbox,p.value]]),e.createElementVNode("div",Wl,[e.unref(fe)(b.type)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(`bg-${e.unref(pe)(b.type)}-100 p-1 rounded`)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(`icon-${b.type}`),{class:"w-4 h-4"}))],2)):e.createCommentVNode("",!0),e.createElementVNode("div",null,[e.createElementVNode("p",Zl,e.toDisplayString(b.name),1),e.createElementVNode("p",Yl,e.toDisplayString(b.title||b.label),1)])])]))),128))])])]),_:1},8,["visible"])]))}}),Kl={class:"vs-form"},Ql={class:"vs-form__body auto-rows-max container"},Xl={class:"flex flex-wrap"},ea={class:"h-fit w-full flex flex-wrap"},ta={class:"flex justify-end mb-3 gap-2 w-full"},oa={class:"w-full"},na={class:"p-4 text-[13px]"},ra={class:"grid grid-cols-2 gap-x-6 gap-y-2"},la=["id","value"],aa={class:"flex-1 min-w-0 flex items-center gap-2"},sa={class:"font-medium text-gray-900 truncate"},ia={class:"text-xs text-gray-500"},ca={class:"flex justify-end gap-2 p-4 border-t w-full"},da=e.defineComponent({__name:"filter-tab",props:{data:{default:{}},dataModifiers:{}},emits:["update:data"],setup(t){const o=e.useModel(t,"data"),n=e.computed(()=>Array.isArray(o.value.fields)?o.value.fields:[]),r=e.defineAsyncComponent(()=>import("@opengis/core").then(d=>d.VsModal)),m=e.ref(!1),s=e.ref([]),i=e.computed({get:()=>(o.value||(o.value={}),Array.isArray(o.value.filters)||(o.value.filters=[]),o.value.filters),set:d=>{o.value||(o.value={}),o.value.filters=Array.isArray(d)?d:[]}});e.watch(m,d=>{if(d){const a=i.value.map(l=>l.id||l.name);s.value=[...a]}});const p=()=>{const d=new Set(s.value),a=n.value.filter(l=>d.has(l.name));i.value=a,m.value=!1,s.value=[]},f=[{key:"id",label:"Name",type:"text"},{key:"label",label:"UA",type:"text"},{key:"type",label:"Тип",type:"text"}],c={id:{type:"text",label:"Name",required:!0,disabled:!0},label:{type:"text",label:"UA",required:!0},type:{type:"combobox",label:"Тип",required:!0,mode:"combo",options:[{text:"Check",id:"check"},{text:"Range",id:"range"},{text:"Date",id:"date"},{text:"Text",id:"text"},{text:"Autocomplete",id:"autocomplete"}]}};return(d,a)=>(e.openBlock(),e.createElementBlock("div",Kl,[e.createElementVNode("div",Ql,[e.createElementVNode("div",Xl,[a[6]||(a[6]=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",ea,[e.createElementVNode("div",ta,[e.createElementVNode("button",{onClick:a[0]||(a[0]=l=>m.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 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"},[...a[5]||(a[5]=[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",oa,[e.createVNode(xe,{modelValue:i.value,"onUpdate:modelValue":a[1]||(a[1]=l=>i.value=l),"columns-scheme":f,"form-scheme":c,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])])])])]),e.createVNode(e.unref(r),{visible:m.value,"onUpdate:visible":a[4]||(a[4]=l=>m.value=l),title:"Імпорт фільтрів",size:"lg"},{footer:e.withCtx(()=>[e.createElementVNode("div",ca,[e.createElementVNode("button",{onClick:a[3]||(a[3]=l=>m.value=!1),class:"px-4 py-2 rounded bg-gray-100 text-gray-700"}," Скасувати "),e.createElementVNode("button",{onClick:p,class:"px-4 py-2 rounded bg-blue-600 text-white"}," Імпортувати ")])]),default:e.withCtx(()=>[e.createElementVNode("div",na,[e.createElementVNode("div",ra,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,l=>(e.openBlock(),e.createElementBlock("label",{key:l.name,class:"flex items-center hover:bg-gray-100 rounded p-2 cursor-pointer"},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",id:"import-filter-"+l.name,"onUpdate:modelValue":a[2]||(a[2]=h=>s.value=h),value:l.name},null,8,la),[[e.vModelCheckbox,s.value]]),e.createElementVNode("div",aa,[e.unref(fe)(l.type)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(`bg-${e.unref(pe)(l.type)}-100 p-1 rounded`)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(`icon-${l.type}`),{class:"w-4 h-4"}))],2)):e.createCommentVNode("",!0),e.createElementVNode("div",null,[e.createElementVNode("p",sa,e.toDisplayString(l.name),1),e.createElementVNode("p",ia,e.toDisplayString(l.title||l.label),1)])])]))),128))])])]),_:1},8,["visible"])]))}}),ma={class:"vs-form"},pa={class:"vs-form__body auto-rows-max container"},fa={class:"flex flex-wrap"},ua={class:"h-fit w-full flex flex-wrap"},ga={class:"flex justify-end mb-3 gap-2 w-full"},ha={class:"w-full"},ya={class:"p-4 text-[13px]"},ba={class:"grid grid-cols-2 gap-x-6 gap-y-2"},ka=["id","value"],xa={class:"flex-1 min-w-0 flex items-center gap-2"},wa={class:"font-medium text-gray-900 truncate"},_a={class:"text-xs text-gray-500"},Va={class:"flex justify-end gap-2 p-4 border-t w-full"},Ea=e.defineComponent({__name:"card-tab",props:{data:{default:{}},dataModifiers:{}},emits:["update:data"],setup(t){const o=e.useModel(t,"data"),n=e.computed(()=>Array.isArray(o.value.fields)?o.value.fields:[]),r=e.defineAsyncComponent(()=>import("@opengis/core").then(d=>d.VsModal)),m=e.ref(!1),s=e.ref([]),i=e.computed({get:()=>o.value.card,set:d=>{o.value||(o.value={}),o.value.card=Array.isArray(d)?d:[]}});e.watch(m,d=>{var a;if(d){const l=((a=i.value)==null?void 0:a.map(h=>h.name))||[];s.value=[...l]}});const p=()=>{const d=new Set(s.value),a=n.value.filter(l=>d.has(l.name));i.value=a,m.value=!1,s.value=[]},f=[{key:"name",label:"Name",type:"text"},{key:"ua",label:"UA",type:"text"},{key:"format",label:"Format",type:"text"},{key:"meta",label:"Мета",type:"text"}],c={name:{type:"text",label:"Name",required:!0,disabled:!0},ua:{type:"text",label:"UA",required:!0},format:{type:"combobox",label:"Format",mode:"combo",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"}]}};return(d,a)=>(e.openBlock(),e.createElementBlock("div",ma,[e.createElementVNode("div",pa,[e.createElementVNode("div",fa,[a[6]||(a[6]=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",ua,[e.createElementVNode("div",ga,[e.createElementVNode("button",{onClick:a[0]||(a[0]=l=>m.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 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"},[...a[5]||(a[5]=[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",ha,[e.createVNode(xe,{modelValue:i.value,"onUpdate:modelValue":a[1]||(a[1]=l=>i.value=l),"columns-scheme":f,"form-scheme":c,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])])])])]),e.createVNode(e.unref(r),{visible:m.value,"onUpdate:visible":a[4]||(a[4]=l=>m.value=l),title:"Імпорт полів картки",size:"lg"},{footer:e.withCtx(()=>[e.createElementVNode("div",Va,[e.createElementVNode("button",{onClick:a[3]||(a[3]=l=>m.value=!1),class:"px-4 py-2 rounded bg-gray-100 text-gray-700"}," Скасувати "),e.createElementVNode("button",{onClick:p,class:"px-4 py-2 rounded bg-blue-600 text-white"}," Імпортувати ")])]),default:e.withCtx(()=>[e.createElementVNode("div",ya,[e.createElementVNode("div",ba,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,l=>(e.openBlock(),e.createElementBlock("label",{key:l.name,class:"flex items-center hover:bg-gray-100 rounded p-2 cursor-pointer"},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",id:"import-card-"+l.name,"onUpdate:modelValue":a[2]||(a[2]=h=>s.value=h),value:l.name},null,8,ka),[[e.vModelCheckbox,s.value]]),e.createElementVNode("div",xa,[e.unref(fe)(l.type)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(`bg-${e.unref(pe)(l.type)}-100 p-1 rounded`)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(`icon-${l.type}`),{class:"w-4 h-4"}))],2)):e.createCommentVNode("",!0),e.createElementVNode("div",null,[e.createElementVNode("p",wa,e.toDisplayString(l.name),1),e.createElementVNode("p",_a,e.toDisplayString(l.title||l.label),1)])])]))),128))])])]),_:1},8,["visible"])]))}}),Ba=["","січня","лютого","березня","квітня","травня","червня","липня","серпня","вересня","жовтня","листопада","грудня"];function ue(t){if(!t)return"";const[o,n]=t.split(" ");if(!o)return t;const[r,m,s]=o.split("-");if(!r||!m||!s)return t;const i=parseInt(m,10),p=Ba[i]||m;let f=`${parseInt(s,10)} ${p} ${r}`;if(n){const c=n.split(".")[0],[d,a,l]=c.split(":");d&&a&&l?f+=`, ${d}:${a}:${l}`:d&&a?f+=`, ${d}:${a}`:d&&(f+=`, ${d}`)}return f}const Na={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 n=this.query_params.map(r=>{const m=Object.keys(r)[0],s=r[m];return`${m}=${encodeURIComponent(t[s])}`}).join("&");return`${this.path}?${n}`}if(!this.query_params||!this.query_params.length)return`${this.path}/${t[this.id_key]}`;const o=this.query_params.map(n=>{const r=Object.keys(n)[0],m=n[r];return`${r}=${encodeURIComponent(t[m])}`}).join("&");return`${this.path}/${t[this.id_key]}?${o}`},formatDate:ue}},Ca={class:"flex justify-between p-4 pb-2 bg-slate-50 gap-4"},$a={class:"flex items-center justify-between"},La={class:"text-lg font-bold line-clamp-2"},Sa={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"},Fa={key:0,class:"flex"},ja={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"},Ia={class:"p-4 pt-2"},va={class:"grid grid-cols-2 gap-3 text-sm"},Da={class:"text-gray-500"},Aa={class:"font-medium"},Ma={class:"items-center p-3 bg-slate-50 flex justify-end"},Ta=["href"];function za(t,o,n,r,m,s){return e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.items,i=>{var p,f,c;return e.openBlock(),e.createElementBlock("div",{key:i.id,class:"rounded-lg border bg-card text-card-foreground overflow-hidden border-none shadow-md relative","data-v0-t":"card"},[e.createElementVNode("div",Ca,[e.createElementVNode("div",$a,[e.createElementVNode("h2",La,e.toDisplayString(i[`${(p=s.titleCol)==null?void 0:p.name}_text`]||i[(f=s.titleCol)==null?void 0:f.name]||i[(c=s.titleCol)==null?void 0:c.label]||"Не вказано"),1),Array.isArray(s.categoryCol)&&s.categoryCol.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(s.categoryCol,d=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:d.name},[i[d.name]?(e.openBlock(),e.createElementBlock("div",Sa,e.toDisplayString(i[`${d.name}_text`]||i[d.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0)]),Array.isArray(s.tagsCol)&&s.tagsCol.length?(e.openBlock(),e.createElementBlock("div",Fa,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.tagsCol,d=>(e.openBlock(),e.createElementBlock("div",{key:d.name,class:"mt-2 flex flex-wrap gap-1"},[i[d.name]?(e.openBlock(),e.createElementBlock("span",ja,e.toDisplayString(i[`${d.name}_text`]||i[d.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Ia,[e.createElementVNode("div",va,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.featuresCols,d=>(e.openBlock(),e.createElementBlock("div",{key:d.name,class:"flex items-center gap-1.5"},[e.createElementVNode("span",Da,e.toDisplayString(d.ua||d.label)+": ",1),e.createElementVNode("span",Aa,[Array.isArray(i[d==null?void 0:d.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(i[d==null?void 0:d.name],(a,l)=>(e.openBlock(),e.createElementBlock("span",{key:l,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(a),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[d.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(s.formatDate(i[d==null?void 0:d.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(i[d==null?void 0:d.name]||"Немає даних"),1)],64))],64))])]))),128))])]),e.createElementVNode("div",Ma,[e.createElementVNode("a",{href:s.getItemLink(i),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"},[...o[0]||(o[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,Ta)])])}),128)}const Pa=F(Na,[["render",za]]),Ua={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 n=this.query_params.map(r=>{const m=Object.keys(r)[0],s=r[m];return`${m}=${encodeURIComponent(t[s])}`}).join("&");return`${this.path}?${n}`}if(!this.query_params||!this.query_params.length)return`${this.path}/${t[this.id_key]}`;const o=this.query_params.map(n=>{const r=Object.keys(n)[0],m=n[r];return`${r}=${encodeURIComponent(t[m])}`}).join("&");return`${this.path}/${t[this.id_key]}?${o}`},formatDate:ue}},Oa={class:"p-0"},qa={class:"border-l-4 border-l-slate-400"},Ra={class:"p-4"},Ha={class:"flex flex-wrap items-center gap-2 mb-3"},Wa={class:"text-lg font-bold"},Za={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"},Ya={key:1,class:"flex"},Ga={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"},Ja={class:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-4 gap-3 text-sm border-t pt-3"},Ka={class:"text-xs text-gray-500 mb-1"},Qa={class:"font-medium"},Xa={class:"flex justify-end mt-3 border-t pt-3"},es=["href"];function ts(t,o,n,r,m,s){return e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.items,i=>{var p,f;return e.openBlock(),e.createElementBlock("div",{key:i.id,class:"rounded-lg border bg-card text-card-foreground shadow-sm overflow-hidden","data-v0-t":"card"},[e.createElementVNode("div",Oa,[e.createElementVNode("div",qa,[e.createElementVNode("div",Ra,[e.createElementVNode("div",Ha,[e.createElementVNode("h2",Wa,e.toDisplayString(i[`${(p=s.titleCol)==null?void 0:p.name}_text`]||i[(f=s.titleCol)==null?void 0:f.name]||"Не вказано"),1),Array.isArray(s.categoryCol)&&s.categoryCol.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(s.categoryCol,c=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:c.name},[i[c.name]?(e.openBlock(),e.createElementBlock("div",Za,e.toDisplayString(i[`${c.name}_text`]||i[c.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0),Array.isArray(s.tagsCol)&&s.tagsCol.length?(e.openBlock(),e.createElementBlock("div",Ya,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.tagsCol,c=>(e.openBlock(),e.createElementBlock("div",{key:c.name,class:"flex flex-wrap gap-1 ml-2"},[i[c.name]?(e.openBlock(),e.createElementBlock("span",Ga,e.toDisplayString(i[`${c.name}_text`]||i[c.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Ja,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.featuresCols,c=>(e.openBlock(),e.createElementBlock("div",{key:c.name},[e.createElementVNode("p",Ka,e.toDisplayString(c.ua),1),e.createElementVNode("p",Qa,[Array.isArray(i[c==null?void 0:c.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(i[c==null?void 0:c.name],(d,a)=>(e.openBlock(),e.createElementBlock("span",{key:a,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(d),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(s.formatDate(i[c==null?void 0:c.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(i[c==null?void 0:c.name]||"Немає даних"),1)],64))],64))])]))),128))]),e.createElementVNode("div",Xa,[e.createElementVNode("a",{href:s.getItemLink(i),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"},[...o[0]||(o[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,es)])])])])])}),128)}const os=F(Ua,[["render",ts]]),ns={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,o){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 n=this.query_params.map(r=>{const m=Object.keys(r)[0],s=r[m];return`${m}=${encodeURIComponent(t[s])}`}).join("&");return`${this.path}?${n}`}if(!this.query_params||!this.query_params.length)return`${this.path}/${t[this.id_key]}`;const o=this.query_params.map(n=>{const r=Object.keys(n)[0],m=n[r];return`${r}=${encodeURIComponent(t[m])}`}).join("&");return`${this.path}/${t[this.id_key]}?${o}`},formatDate:ue}},rs={class:"space-y-4"},ls={class:"flex items-center py-2 px-3"},as={class:"flex-1"},ss={class:"grid grid-cols-12 gap-2 w-full text-xs"},is={class:"col-span-5"},cs={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"},ds={key:1,class:"flex flex-wrap gap-1 mt-1"},ms={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"},ps={class:"col-span-7"},fs={class:"grid grid-cols-3 gap-3"},us={class:"text-[10px] text-gray-500 mb-1"},gs={class:"truncate font-medium"},hs=["href"];function ys(t,o,n,r,m,s){return e.openBlock(),e.createElementBlock("div",rs,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.items,i=>{var p,f;return e.openBlock(),e.createElementBlock("div",{key:i.id,class:"border-b border-slate-200 hover:bg-slate-50 transition-colors"},[e.createElementVNode("div",ls,[e.createElementVNode("div",{class:e.normalizeClass(["w-1 h-8 rounded-full mr-3",s.colorClass])},null,2),e.createElementVNode("div",as,[e.createElementVNode("div",ss,[e.createElementVNode("div",is,[e.createElementVNode("p",{class:e.normalizeClass(["font-bold text-sm text-left",{"w-full h-full flex items-center":!Array.isArray(s.tagsCol)||!s.tagsCol.length}])},e.toDisplayString(i[`${(p=s.titleCol)==null?void 0:p.name}_text`]||i[(f=s.titleCol)==null?void 0:f.name]||i[Object.keys(i)[0]]||"Не вказано"),3),Array.isArray(s.categoryCol)&&s.categoryCol.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(s.categoryCol,c=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:c.name},[i[c.name]?(e.openBlock(),e.createElementBlock("div",cs,e.toDisplayString(i[`${c.name}_text`]||i[c.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0),Array.isArray(s.tagsCol)&&s.tagsCol.length?(e.openBlock(),e.createElementBlock("div",ds,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.tagsCol,c=>(e.openBlock(),e.createElementBlock("div",{key:c.name,class:"flex flex-wrap gap-1 mt-1"},[i[c.name]?(e.openBlock(),e.createElementBlock("span",ms,e.toDisplayString(i[`${c.name}_text`]||i[c.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",ps,[e.createElementVNode("div",fs,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.featuresCols,c=>(e.openBlock(),e.createElementBlock("div",{key:c.name},[e.createElementVNode("p",us,e.toDisplayString(c.ua),1),e.createElementVNode("p",gs,[Array.isArray(i[c==null?void 0:c.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(i[c==null?void 0:c.name],(d,a)=>(e.openBlock(),e.createElementBlock("span",{key:a,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(d),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(s.formatDate(i[c==null?void 0:c.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(i[c==null?void 0:c.name]||"Немає даних"),1)],64))],64))])]))),128))])])])]),e.createElementVNode("a",{href:s.getItemLink(i),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"}},[...o[0]||(o[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,hs)])])}),128))])}const bs=F(ns,[["render",ys]]),ks={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 n=this.query_params.map(r=>{const m=Object.keys(r)[0],s=r[m];return`${m}=${encodeURIComponent(t[s])}`}).join("&");return`${this.path}?${n}`}if(!this.query_params||!this.query_params.length)return`${this.path}/${t[this.id_key]}`;const o=this.query_params.map(n=>{const r=Object.keys(n)[0],m=n[r];return`${r}=${encodeURIComponent(t[m])}`}).join("&");return`${this.path}/${t[this.id_key]}?${o}`},formatDate:ue}},xs={class:"flex flex-col space-y-1.5 p-6 pb-2"},ws={class:"flex items-center gap-2"},_s={class:"tracking-tight text-lg font-medium"},Vs={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"},Es={key:1,class:"flex"},Bs={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"},Ns={class:"p-6 pt-0 pb-4"},Cs={class:"grid grid-cols-2 gap-4"},$s={class:"text-sm text-gray-500"},Ls={class:"font-medium"},Ss={class:"flex items-center p-6 pt-0"},Fs=["href"];function js(t,o,n,r,m,s){return e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.items,i=>{var p,f;return e.openBlock(),e.createElementBlock("div",{key:i.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",xs,[e.createElementVNode("div",ws,[e.createElementVNode("h3",_s,e.toDisplayString(i[`${(p=s.titleCol)==null?void 0:p.name}_text`]||i[(f=s.titleCol)==null?void 0:f.name]||Object.keys(i)[0]||"Не вказано"),1),Array.isArray(s.categoryCol)&&s.categoryCol.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(s.categoryCol,c=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:c.name},[i[c.name]?(e.openBlock(),e.createElementBlock("div",Vs,e.toDisplayString(i[`${c.name}_text`]||i[c.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0),Array.isArray(s.tagsCol)&&s.tagsCol.length?(e.openBlock(),e.createElementBlock("div",Es,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.tagsCol,c=>(e.openBlock(),e.createElementBlock("div",{key:c.name,class:"flex flex-wrap gap-1 ml-2"},[i[c.name]?(e.openBlock(),e.createElementBlock("span",Bs,e.toDisplayString(i[`${c.name}_text`]||i[c.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)])]),e.createElementVNode("div",Ns,[e.createElementVNode("div",Cs,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.featuresCols,c=>(e.openBlock(),e.createElementBlock("div",{key:c.name},[e.createElementVNode("p",$s,e.toDisplayString(c.ua),1),e.createElementVNode("p",Ls,[Array.isArray(i[c==null?void 0:c.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(i[c==null?void 0:c.name],(d,a)=>(e.openBlock(),e.createElementBlock("span",{key:a,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(d),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(s.formatDate(i[c==null?void 0:c.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(i[c==null?void 0:c.name]||"Немає даних"),1)],64))],64))])]))),128))])]),e.createElementVNode("div",Ss,[e.createElementVNode("a",{href:s.getItemLink(i),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,Fs)])])}),128)}const Is=F(ks,[["render",js]]),vs={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 n=this.query_params.map(r=>{const m=Object.keys(r)[0],s=r[m];return`${m}=${encodeURIComponent(t[s])}`}).join("&");return`${this.path}?${n}`}if(!this.query_params||!this.query_params.length)return`${this.path}/${t[this.id_key]}`;const o=this.query_params.map(n=>{const r=Object.keys(n)[0],m=n[r];return`${r}=${encodeURIComponent(t[m])}`}).join("&");return`${this.path}/${t[this.id_key]}?${o}`},formatDate:ue}},Ds={class:"grid grid-cols-12 divide-x divide-gray-100"},As={key:0},Ms=["src"],Ts={key:1,class:"col-span-1 flex items-center justify-center"},zs={class:"col-span-7 p-4"},Ps={class:"flex items-center mb-1 col-span-7 p-4"},Us={class:"text-base font-bold text-gray-900 mr-2"},Os={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"},qs={class:"text-sm text-gray-600 line-clamp-1 mb-2"},Rs={class:"grid grid-cols-2 gap-x-4 gap-y-1 text-sm"},Hs={class:"text-gray-500 mr-1"},Ws=["innerHTML"],Zs={class:"text-gray-600 truncate"},Ys={class:"col-span-2 p-3 bg-gray-50 flex flex-col justify-center"},Gs={class:"text-xs text-gray-500 mb-1.5"},Js={key:0,class:"flex flex-wrap gap-1"},Ks={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"},Qs={class:"col-span-2 flex flex-col justify-center items-center bg-gray-50 border-l p-2"},Xs={class:"w-full space-y-2"},ei=["href"];function ti(t,o,n,r,m,s){return e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.items,i=>{var p,f,c,d,a;return e.openBlock(),e.createElementBlock("div",{key:i.id,class:"bg-white border border-gray-200 rounded-lg overflow-hidden transition-all duration-200 hover:shadow-md"},[e.createElementVNode("div",Ds,[s.imageCol?(e.openBlock(),e.createElementBlock("div",As,[i[(p=s.imageCol)==null?void 0:p.name]?(e.openBlock(),e.createElementBlock("img",{key:0,src:i[(f=s.imageCol)==null?void 0:f.name],alt:"image",class:"object-cover h-full"},null,8,Ms)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",Ts,[...o[0]||(o[0]=[e.createElementVNode("div",{class:"w-3 h-12 rounded-sm bg-blue-500",title:"Пріоритет: Високий","aria-hidden":"true"},null,-1)])])),e.createElementVNode("div",zs,[e.createElementVNode("div",Ps,[e.createElementVNode("h3",Us,e.toDisplayString(i[`${(c=s.titleCol)==null?void 0:c.name}_text`]||i[(d=s.titleCol)==null?void 0:d.name]||Object.keys(i)[0]||"Не вказано"),1),Array.isArray(s.categoryCol)&&s.categoryCol.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(s.categoryCol,l=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:l.name},[i[l.name]?(e.openBlock(),e.createElementBlock("div",Os,e.toDisplayString(i[`${l.name}_text`]||i[l.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0)]),e.createElementVNode("p",qs,e.toDisplayString(i[(a=s.descCol)==null?void 0:a.name]),1),e.createElementVNode("div",Rs,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.featuresCols,l=>(e.openBlock(),e.createElementBlock("div",{key:l.name,class:"flex items-center"},[e.createElementVNode("span",Hs,e.toDisplayString((l==null?void 0:l.ua)||l.label||l.name)+":",1),l.icon?(e.openBlock(),e.createElementBlock("span",{key:0,class:"mr-1 flex-shrink-0",innerHTML:l.icon},null,8,Ws)):e.createCommentVNode("",!0),e.createElementVNode("span",Zs,[Array.isArray(i[l==null?void 0:l.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(i[l==null?void 0:l.name],(h,u)=>(e.openBlock(),e.createElementBlock("span",{key:u,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(h),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[l.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(s.formatDate(i[l==null?void 0:l.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(i[l==null?void 0:l.name]||"Немає даних"),1)],64))],64))])]))),128))])]),e.createElementVNode("div",Ys,[e.createElementVNode("p",Gs," Теги: "+e.toDisplayString(s.tagsCol.length&&i[s.tagsCol[0].name]?"":"відсутні"),1),Array.isArray(s.tagsCol)&&s.tagsCol.length?(e.openBlock(),e.createElementBlock("div",Js,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.tagsCol,l=>(e.openBlock(),e.createElementBlock("div",{key:l.name,class:"flex flex-wrap gap-1"},[i[l.name]?(e.openBlock(),e.createElementBlock("span",Ks,e.toDisplayString(i[`${l.name}_text`]||i[l.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Qs,[e.createElementVNode("div",Xs,[e.createElementVNode("a",{href:s.getItemLink(i),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,ei)])])])])}),128)}const Me={template1:Pa,template2:os,template3:bs,template4:Is,template5:F(vs,[["render",ti]])},oi={class:"space-y-4"},ni={class:"flex items-center gap-4 mb-2"},ri={class:"text-lg font-semibold mb-4"},li={key:1,class:"text-gray-400 text-center py-12"},ai={key:2,class:"text-gray-400 text-center py-12"},si=e.defineComponent({__name:"preview-tab",props:{data:{default:{}},dataModifiers:{}},emits:["update:data"],setup(t){const o=e.defineAsyncComponent(()=>import("@opengis/form")),n=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"}],m={view:{type:"select",label:"Вигляд",required:!0,options:r,col:12}},s=e.computed(()=>{var d;return Array.isArray((d=n.value)==null?void 0:d.columns)?n.value.columns:[]}),i=e.computed(()=>{var d;return console.log(n.value),((d=n.value)==null?void 0:d.view)||"template1"}),p=e.computed(()=>Me[i.value]||Me.template1),f=e.computed(()=>{var l;const d=(l=n.value)==null?void 0:l.view;if(!d)return"template1";const a=r.find(h=>h.id===d);return(a==null?void 0:a.text)||d}),c=e.computed(()=>(Array.isArray(n.value.rows)?n.value.rows:[]).slice(0,5));return(d,a)=>(e.openBlock(),e.createElementBlock("div",oi,[e.createElementVNode("div",ni,[e.createVNode(e.unref(o),{schema:m,modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=l=>n.value=l),class:"w-[220px]"},null,8,["modelValue"])]),e.createElementVNode("h2",ri," Превʼю таблиці ("+e.toDisplayString(f.value)+") ",1),p.value&&c.value.length&&s.value.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(p.value),{items:c.value,columns:s.value,path:"#",id_key:"id",key:i.value},null,8,["items","columns"])):c.value.length?(e.openBlock(),e.createElementBlock("div",ai," Додайте колонки та виберіть вигляд для перегляду ")):(e.openBlock(),e.createElementBlock("div",li," Немає даних для превʼю "))]))}}),ii={class:"relative min-h-svh flex-1 flex-col flex gap-4 bg-white p-8 overflow-y-auto"},ci={class:"max-w-6xl mx-auto"},di={class:"flex items-center justify-between mb-6"},mi={class:"flex items-center gap-2"},pi=["href"],fi={class:"w-full"},ui={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"},gi=["onClick"],hi={__name:"register",setup(t){const o=ye.useRoute(),n=ye.useRouter(),r=e.ref("list"),m=e.ref(""),s=[{name:"List",id:"list"},{name:"Filters",id:"filters"},{name:"Card",id:"card"},{name:"Preview",id:"preview"}],i={list:Jl,filters:da,card:Ea,preview:si},p=s.map(a=>a.id),f=e.ref({}),c=async()=>{console.log(f.value);try{const a=await fetch(`/api/gis-registry/${o.params.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(f.value)});if(!a.ok)throw new Error(`Failed to save content: ${a.status}`);Z.notify({type:"success",title:"Успіх",message:"Контент збережено"})}catch(a){Z.notify({type:"error",title:"Помилка",message:"Не вдалося зберегти контент"}),console.error(a)}},d=async()=>{try{const l=await(await fetch(`/api/gis-registry/${o.params.id}`)).json(),h=l;m.value=h.register_key||"",f.value=h,f.value.fields=Array.isArray(l==null?void 0:l.fields)?l.fields:[]}catch(a){console.error("Помилка завантаження даних:",a)}};return e.onMounted(async()=>{const a=o.query.tab;typeof a=="string"&&p.includes(a)&&(r.value=a),await d()}),e.watch(r,a=>{o.query.tab!==a&&n.replace({query:{...o.query,tab:a}})}),e.watch(()=>o.query.tab,a=>{typeof a=="string"&&p.includes(a)&&r.value!==a&&(r.value=a)}),(a,l)=>(e.openBlock(),e.createElementBlock("main",ii,[e.createElementVNode("div",null,[e.createElementVNode("div",ci,[e.createElementVNode("div",di,[l[1]||(l[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",mi,[e.createElementVNode("a",{href:`/${e.unref(o).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,pi),e.createElementVNode("button",{onClick:c,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",fi,[e.createElementVNode("div",ui,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(s,h=>e.createElementVNode("button",{key:h.id,onClick:u=>r.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===r.value?"bg-blue-50 text-blue-700 border-blue-200":""])},e.toDisplayString(h.name),11,gi)),64))])]),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i[r.value]),{data:f.value,"onUpdate:data":l[0]||(l[0]=h=>f.value=h),key:r.value+"-"+(f.value.id||f.value.register_id||"")},null,40,["data"]))])])]))}},yi={},bi={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 ki(t,o){return e.openBlock(),e.createElementBlock("svg",bi,[...o[0]||(o[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 xi=F(yi,[["render",ki]]),wi={},_i={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 Vi(t,o){return e.openBlock(),e.createElementBlock("svg",_i,[...o[0]||(o[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 Ei=F(wi,[["render",Vi]]),Bi={},Ni={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 Ci(t,o){return e.openBlock(),e.createElementBlock("svg",Ni,[...o[0]||(o[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 $i=F(Bi,[["render",Ci]]),Li={},Si={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 Fi(t,o){return e.openBlock(),e.createElementBlock("svg",Si,[...o[0]||(o[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 ji=F(Li,[["render",Fi]]),Ii={},vi={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 Di(t,o){return e.openBlock(),e.createElementBlock("svg",vi,[...o[0]||(o[0]=[e.createElementVNode("polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"},null,-1)])])}const Ai=F(Ii,[["render",Di]]),Mi={class:"flex flex-col flex-1 overflow-hidden"},Ti={class:"flex flex-col flex-1 overflow-hidden"},zi={class:"bg-white rounded-xl border border-gray-200 shadow-sm overflow-hidden mt-3 flex flex-col flex-1"},Pi={class:"relative bg-gradient-to-br from-slate-50 to-white flex-1"},Ui=F(e.defineComponent({__name:"vs-tab-style",props:{token:{},styleYaml:{}},emits:["update:styleYaml","update"],setup(t,{emit:o}){const n=t,r=o;function m(u){if(!u)return"";if(typeof u=="string")return u;try{return jsyaml.dump(u)}catch(y){return console.warn("Failed to stringify style YAML",y),""}}const s=e.ref(m(n.styleYaml)),i=e.ref("vs-light"),p=e.ref(null);let f=null,c=null;function d(){const u=m(n.styleYaml);u!==s.value&&(s.value=u,f&&u!==f.getValue()&&f.setValue(u))}e.watch(()=>n.token,()=>{d()}),e.watch(s,u=>{try{const y=u?jsyaml.load(u):null;JSON.stringify(y)!==JSON.stringify(n.styleYaml)&&r("update:styleYaml",y)}catch(y){console.warn("Invalid YAML:",y)}});function a(){return new Promise((u,y)=>{if(c)return u(c);if(window.monaco)return c=window.monaco,u(c);const g=k=>{if(Array.from(document.styleSheets).some(N=>{var V;return(V=N==null?void 0:N.href)==null?void 0:V.includes(k)}))return;const j=document.createElement("link");j.rel="stylesheet",j.href=k,document.head.appendChild(j)},b=k=>new Promise((B,j)=>{const N=document.createElement("script");N.src=k,N.onload=()=>B(),N.onerror=j,document.body.appendChild(N)});g("https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs/editor/editor.main.min.css"),b("https://cdn.jsdelivr.net/npm/js-yaml@4.1.0/dist/js-yaml.min.js"),b("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"],()=>{c=window.monaco,u(c)})}).catch(y)})}function l(){!p.value||!c||(f&&f.dispose(),f=c.editor.create(p.value,{value:s.value,language:"yaml",theme:i.value,automaticLayout:!0,minimap:{enabled:!1}}),d(),f.onDidChangeModelContent(()=>{s.value=f.getValue()}))}e.onMounted(async()=>{await a(),l()});const h=async()=>{try{await fetch(`/api/gis-service/${n.token}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({style:s.value})}),r("update"),Z.notify({type:"success",title:"Успіх",message:"Стилі збережено"})}catch(u){Z.notify({type:"error",title:"Помилка",message:"Не вдалося зберегти стилі"}),console.log(u)}};return(u,y)=>(e.openBlock(),e.createElementBlock("div",Mi,[e.createElementVNode("div",{class:"flex justify-end"},[e.createElementVNode("button",{onClick:h,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"},[...y[0]||(y[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-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",Ti,[e.createElementVNode("div",zi,[y[1]||(y[1]=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",Pi,[e.createElementVNode("div",{ref_key:"editorContainer",ref:p,class:"w-full h-full"},null,512)])])])]))}}),[["__scopeId","data-v-c9bb6aaa"]]),Oi={class:"space-y-3 bg-gradient-to-br from-sky-50 to-blue-50 p-4 rounded-xl border border-sky-100 shadow-sm"},qi={role:"radiogroup",class:"grid grid-cols-3 gap-2"},Ri=["onClick"],Hi=["aria-checked","value"],Wi={key:0},Zi=e.defineComponent({__name:"view-mode-toggle",props:{modelValue:{},options:{}},emits:["update:modelValue"],setup(t,{emit:o}){const n=t,r=o,m=i=>r("update:modelValue",i),s=n.options||[{value:"all",label:"All"},{value:"list",label:"List"},{value:"none",label:"None"}];return(i,p)=>(e.openBlock(),e.createElementBlock("div",Oi,[p[1]||(p[1]=e.createElementVNode("label",{class:"text-sm font-medium text-gray-600"},"Режим відображення",-1)),e.createElementVNode("div",qi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(s),f=>(e.openBlock(),e.createElementBlock("div",{key:f.value,onClick:c=>m(f.value),class:e.normalizeClass(["flex items-center justify-center space-x-2 rounded-lg p-2 border transition-all duration-300 cursor-pointer",[i.modelValue===f.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":i.modelValue===f.value,value:f.value,class:"aspect-square rounded-full border border-primary h-4 w-4 flex items-center justify-center text-sky-500"},[i.modelValue===f.value?(e.openBlock(),e.createElementBlock("span",Wi,[...p[0]||(p[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,Hi),e.createElementVNode("label",{class:e.normalizeClass(["text-xs font-medium cursor-pointer",i.modelValue===f.value?"text-gray-700":"text-gray-600"])},e.toDisplayString(f.label),3)],10,Ri))),128))])]))}}),Yi={class:"flex justify-between mb-3 gap-2"},Gi=["disabled"],Ji={class:"p-4 text-[13px]"},Ki={class:"grid grid-cols-2 gap-x-6 gap-y-2"},Qi=["id","value"],Xi={class:"flex-1 min-w-0 flex items-center gap-2"},ec={class:"font-medium text-gray-900 truncate"},tc={class:"text-xs text-gray-500"},oc={class:"flex justify-end gap-2 p-4 border-t w-full"},we=e.defineComponent({__name:"vs-tab-manager",props:{mapInfo:{},token:{},fields:{},sectionKey:{},columnsScheme:{},formScheme:{},dialogTitle:{},saveButtonLabel:{},importMapper:{type:Function},withViewMode:{type:Boolean}},emits:["update","update:columns"],setup(t,{emit:o}){const n=e.defineAsyncComponent(()=>import("@opengis/core").then(a=>a.VsModal)),r=e.ref("list"),m=t,s=o,i=e.ref([]),p=e.ref(!1),f=e.ref([]);e.watch(()=>{var a;return(a=m.mapInfo)==null?void 0:a[m.sectionKey]},a=>{i.value=Array.isArray(a)?[...a]:[],s("update:columns",i.value)},{immediate:!0}),e.watch(p,a=>{if(a){const l=i.value.map(h=>h.name||h.id);f.value=[...l]}});function c(){i.value=m.importMapper(m.fields,f.value,i.value),s("update:columns",i.value),p.value=!1,f.value=[]}async function d(){if(m.token)try{let a=[];if(r.value==="all"?a=[...m.fields]:r.value==="none"?a=[]:a=i.value,!(await fetch(`/api/table/${m.token}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({[m.sectionKey]:a})})).ok)throw new Error("Save failed");s("update"),Z.notify({type:"success",title:"Успіх",message:`${m.sectionKey} saved`})}catch(a){Z.notify({type:"error",title:"Помилка",message:`Failed to save ${m.sectionKey}`}),console.error(a)}}return(a,l)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",Yi,[e.createElementVNode("button",{onClick:l[0]||(l[0]=h=>p.value=!0),disabled:a.withViewMode&&r.value!=="list",class:e.normalizeClass([a.withViewMode&&r.value!=="list"?"":"hover:from-gray-600 hover:to-gray-500","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 disabled:bg-gray-300 disabled:text-gray-500 disabled:cursor-not-allowed disabled:opacity-70"])},[...l[6]||(l[6]=[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)])],10,Gi),e.createElementVNode("button",{onClick:d,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium bg-gradient-to-r from-sky-400 to-blue-400 hover:from-sky-500 hover:to-blue-500 text-white shadow-sm px-4 py-2 h-9 text-xs transition-all duration-300"},[l[7]||(l[7]=e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"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(" "+e.toDisplayString(a.saveButtonLabel),1)])]),a.withViewMode?(e.openBlock(),e.createBlock(Zi,{key:0,modelValue:r.value,"onUpdate:modelValue":l[1]||(l[1]=h=>r.value=h),class:"mb-2"},null,8,["modelValue"])):e.createCommentVNode("",!0),!a.withViewMode||r.value==="list"?(e.openBlock(),e.createBlock(xe,{key:1,modelValue:i.value,"onUpdate:modelValue":l[2]||(l[2]=h=>i.value=h),"columns-scheme":a.columnsScheme,"form-scheme":a.formScheme,"main-col-width":"250px","add-button":!1},null,8,["modelValue","columns-scheme","form-scheme"])):e.createCommentVNode("",!0),e.createVNode(e.unref(n),{visible:p.value,"onUpdate:visible":l[5]||(l[5]=h=>p.value=h),title:a.dialogTitle,size:"lg"},{footer:e.withCtx(()=>[e.createElementVNode("div",oc,[e.createElementVNode("button",{onClick:l[4]||(l[4]=h=>p.value=!1),class:"px-4 py-2 rounded bg-gray-100 text-gray-700"}," Скасувати "),e.createElementVNode("button",{onClick:c,class:"px-4 py-2 rounded bg-blue-600 text-white"}," Імпортувати ")])]),default:e.withCtx(()=>[e.createElementVNode("div",Ji,[e.createElementVNode("div",Ki,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.fields,h=>(e.openBlock(),e.createElementBlock("label",{key:h.name,class:"flex items-center hover:bg-gray-100 rounded p-2 cursor-pointer"},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",id:"import-"+h.name,"onUpdate:modelValue":l[3]||(l[3]=u=>f.value=u),value:h.name},null,8,Qi),[[e.vModelCheckbox,f.value]]),e.createElementVNode("div",Xi,[e.unref(fe)(h.type)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(`bg-${e.unref(pe)(h.type)}-100 p-1 rounded`)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(`icon-${h.type}`),{class:"w-4 h-4"}))],2)):e.createCommentVNode("",!0),e.createElementVNode("div",null,[e.createElementVNode("p",ec,e.toDisplayString(h.name),1),e.createElementVNode("p",tc,e.toDisplayString(h.title),1)])])]))),128))])])]),_:1},8,["visible","title"])],64))}}),nc=e.defineComponent({__name:"vs-tab-popup",props:{mapInfo:{},token:{},fields:{},filters:{},filterFields:{},styleYaml:{},popupFields:{},filterScheme:{}},emits:["update","update:styleYaml","update:popupFields","update:filterScheme","update:cardFields","update:legend"],setup(t,{emit:o}){const n=o,r=[{key:"name",label:"Name"},{key:"ua",label:"UA"},{key:"format",label:"Format"},{key:"meta",label:"Meta"}],m={name:{type:"text",label:"Name",disabled:!0,validators:["required"]},ua:{type:"text",label:"UA",validators:["required"]},format:{type:"text",label:"Format",disabled:!0},meta:{type:"combobox",label:"Meta",mode:"combo",options:[{text:"Title",id:"title"},{text:"Image",id:"image"},{text:"Badge",id:"badge"}]}};function s(i,p,f){return i.filter(c=>p.includes(c.name)).map(c=>{const d=f.find(a=>a.name===c.name);return{name:c.name,ua:c.title,format:c.format||"text",meta:(d==null?void 0:d.meta)||c.meta,...c}})}return(i,p)=>(e.openBlock(),e.createBlock(we,{"map-info":i.mapInfo,token:i.token,fields:i.fields,"section-key":"popup","columns-scheme":r,"form-scheme":m,"dialog-title":"Імпорт колонок","save-button-label":"Зберегти попап","import-mapper":s,onUpdate:p[0]||(p[0]=f=>n("update")),"onUpdate:columns":p[1]||(p[1]=f=>n("update:popupFields",f)),"with-view-mode":""},null,8,["map-info","token","fields"]))}}),rc=e.defineComponent({__name:"vs-tab-legend",props:{mapInfo:{},token:{},fields:{},filters:{},filterFields:{},styleYaml:{},popupFields:{},filterScheme:{}},emits:["update","update:styleYaml","update:popupFields","update:filterScheme","update:cardFields","update:legend"],setup(t,{emit:o}){const n=o;let r=[];const m=[{key:"name",label:"Назва"},{key:"color",label:"Колір",type:"color"}],s={name:{type:"text",label:"Назва",validators:["required"]},color:{type:"color",label:"Колір",validators:["required"]}};function i(p,f,c){return c}return(p,f)=>(e.openBlock(),e.createBlock(we,{"map-info":p.mapInfo,token:p.token,fields:[],"section-key":"legend","columns-scheme":m,"form-scheme":s,"dialog-title":"Імпорт легенди","save-button-label":"Зберегти легенду","import-mapper":i,onUpdate:f[0]||(f[0]=c=>n("update")),"onUpdate:columns":f[1]||(f[1]=c=>e.isRef(r)?r.value=c:r=c)},null,8,["map-info","token"]))}}),lc=e.defineComponent({__name:"vs-tab-card",props:{mapInfo:{},token:{},fields:{},filters:{},filterFields:{},styleYaml:{},popupFields:{},filterScheme:{}},emits:["update","update:styleYaml","update:popupFields","update:filterScheme","update:cardFields","update:legend"],setup(t,{emit:o}){const n=o;let r=[];const m=[{key:"name",label:"Name"},{key:"ua",label:"UA"},{key:"format",label:"Format"},{key:"meta",label:"Мета"}],s={name:{type:"text",label:"Name",validators:["required"],disabled:!0},ua:{type:"text",label:"UA",validators:["required"]},format:{type:"combobox",label:"Format",mode:"combo",validators:["required"],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:"Мета",validators:["required"],mode:"combo",options:[{text:"Title",id:"title"},{text:"Features",id:"features"},{text:"Status",id:"status"},{text:"Tags",id:"tags"},{text:"Category",id:"category"}]}};function i(p,f,c){return p.filter(d=>f.includes(d.name)).map(d=>({name:d.name,ua:d.title,format:d.format||"text",meta:d.meta||"title"}))}return(p,f)=>(e.openBlock(),e.createBlock(we,{"map-info":p.mapInfo,token:p.token,fields:p.fields,"section-key":"card","columns-scheme":m,"form-scheme":s,"dialog-title":"Імпорт полів картки","save-button-label":"Зберегти картку","import-mapper":i,onUpdate:f[0]||(f[0]=c=>n("update")),"onUpdate:columns":f[1]||(f[1]=c=>e.isRef(r)?r.value=c:r=c),"with-view-mode":""},null,8,["map-info","token","fields"]))}}),ac=e.defineComponent({__name:"vs-tab-filter",props:{mapInfo:{},token:{},fields:{},filters:{},filterFields:{},styleYaml:{},popupFields:{},filterScheme:{}},emits:["update","update:styleYaml","update:popupFields","update:filterScheme","update:cardFields","update:legend"],setup(t,{emit:o}){const n=o,r=[{key:"id",label:"Name"},{key:"label",label:"UA"},{key:"type",label:"Тип"}],m={id:{type:"text",label:"Name",disabled:!0,validators:["required"]},label:{type:"text",label:"UA",validators:["required"]},type:{type:"combobox",label:"Тип",validators:["required"],mode:"combo",options:[{text:"Check",id:"check"},{text:"Range",id:"range"},{text:"Date",id:"date"},{text:"Text",id:"text"},{text:"Autocomplete",id:"autocomplete"}]}};function s(i,p,f){return i.filter(c=>p.includes(c.name)).map(c=>({id:c.name,label:c.title,type:c.type||"text"}))}return(i,p)=>(e.openBlock(),e.createBlock(we,{"map-info":i.mapInfo,token:i.token,fields:i.fields,"section-key":"filters","columns-scheme":r,"form-scheme":m,"dialog-title":"Імпорт фільтрів","save-button-label":"Зберегти фільтри","import-mapper":s,onUpdate:p[0]||(p[0]=f=>n("update")),"onUpdate:columns":p[1]||(p[1]=f=>n("update:filterFields",f))},null,8,["map-info","token","fields"]))}}),Te=Symbol("MapContext");function sc(t){const o=e.shallowRef(null),n=e.ref(!1);let r=!1;const m=[],s=()=>{r=!0,m.length&&m.forEach(a=>a())},i=()=>{const a=t.container;return typeof a=="string"?document.getElementById(a):(a==null?void 0:a.value)!==void 0?a.value:a},p=()=>r?Promise.resolve():new Promise(a=>m.push(a)),f=async()=>{var l,h,u,y;if(typeof window>"u"||o.value)return;const a=i();if(!a)throw new Error("Map container not found");o.value=new maplibregl.Map({...t.mapOptions||{},center:[30,50],zoom:7,container:a}),(l=t.controls)!=null&&l.navigation&&o.value.addControl(new maplibregl.NavigationControl(typeof t.controls.navigation=="object"?t.controls.navigation:{}),"top-right"),(h=t.controls)!=null&&h.scale&&o.value.addControl(new maplibregl.ScaleControl(typeof t.controls.scale=="object"?t.controls.scale:{}),"bottom-left"),(u=t.controls)!=null&&u.fullscreen&&o.value.addControl(new maplibregl.FullscreenControl,"top-right"),(y=t.controls)!=null&&y.geolocate&&o.value.addControl(new maplibregl.GeolocateControl(typeof t.controls.geolocate=="object"?t.controls.geolocate:{}),"top-right"),o.value.once("load",()=>{n.value=!0,s()})},c=()=>{o.value&&(o.value.remove(),o.value=null,n.value=!1)};e.onMounted(f),e.onUnmounted(c);const d={map:o,ready:p,flyTo:a=>{var l;return(l=o.value)==null?void 0:l.flyTo(a)},fitBounds:(a,l)=>{var h;return(h=o.value)==null?void 0:h.fitBounds(a,l)},setCenter:a=>{var l;return(l=o.value)==null?void 0:l.setCenter(a)},setZoom:a=>{var l;return(l=o.value)==null?void 0:l.setZoom(a)},addControl:(a,l)=>{var h;return(h=o.value)==null?void 0:h.addControl(a,l)},removeControl:a=>{var l;return(l=o.value)==null?void 0:l.removeControl(a)},on:(a,l,h)=>{var u,y;return typeof l=="string"?((u=o.value)==null||u.on(a,l,h),()=>{var g;return(g=o.value)==null?void 0:g.off(a,l,h)}):((y=o.value)==null||y.on(a,l),()=>{var g;return(g=o.value)==null?void 0:g.off(a,l)})},off:(a,l,h)=>{var u,y;typeof l=="string"?(u=o.value)==null||u.off(a,l,h):(y=o.value)==null||y.off(a,l)},project:a=>{var l;return(l=o.value)==null?void 0:l.project(a)},unproject:a=>{var l;return(l=o.value)==null?void 0:l.unproject(a)}};return e.provide(Te,d),d}function ge(){const t=e.inject(Te);if(!t)throw new Error("useMap() called outside of a Map provider");return t}const ic=e.defineComponent({__name:"MapView",setup(t,{expose:o}){const n=e.ref(null),r=sc({container:n,mapOptions:{style:{version:8,sources:{},layers:[]},center:[30.5234,50.4501],zoom:9},controls:{navigation:!0,scale:!0}});return o({ctx:r}),(m,s)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",{ref_key:"el",ref:n,class:"w-full h-full rounded-xl overflow-hidden"},null,512),e.renderSlot(m.$slots,"default")],64))}});function cc(t){const o=t.colorAttr&&t.colors?["match",["get",t.colorAttr],...Object.entries(t.colors).reduce((n,r)=>n.concat(r),[]),"#94a3b8"]:null;return{type:"circle",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,"circle-radius":t.radius||5}}}function dc(t){return{type:"fill",paint:{"fill-color":t.color,"fill-opacity":t.opacity||.3,"fill-outline-color":t.stroke}}}function mc(t){return{type:"line",paint:{"line-color":t.color,"line-opacity":t.opacity||.3,"line-width":t.width||1.5}}}function ze(t){return t?t.type==="polygon"?dc(t):t.type==="line"?mc(t):cc(t):{}}function Pe(t,o){const{map:n,ready:r,on:m}=ge(),s=o.layer.id||t,i=o.sourceId??(typeof o.layer.source=="string"?o.layer.source:t);o.source&&(!o.layer.source||typeof o.layer.source!="string")&&(o.layer.source=i);let p=!1,f=!1;const c=()=>{var N,V;if(!(f||!n.value)){if(o.source&&!n.value.getSource(i)&&n.value.addSource(i,o.source),!n.value.getLayer(s)){const z=o.beforeId===0?(V=(N=n.value.getStyle().layers)==null?void 0:N[0])==null?void 0:V.id:o.beforeId,O=ze(o.layer.style);Object.assign(o.layer,O),n.value.addLayer(o.layer,z)}p=!0}};r().then(c);const d=m("style.load",c);function a(N){n.value&&n.value.setLayoutProperty(s,"visibility",N?"visible":"none")}function l(N){var O;if(!n.value)return;const V=ze(N),z=(O=n.value.getLayer(s))==null?void 0:O.type;if(V.type!==z){n.value.removeLayer(s),n.value.addLayer({...o.layer,...V});return}V.paint&&h(V.paint)}function h(N){n.value&&Object.entries(N).forEach(([V,z])=>n.value.setPaintProperty(s,V,z))}function u(N){n.value&&Object.entries(N).forEach(([V,z])=>n.value.setLayoutProperty(s,V,z))}function y(N){n.value&&n.value.setFilter(s,N)}function g(N){if(!n.value)return;const V=n.value.getSource(i);V&&"setTiles"in V&&V.setTiles(N)}function b(N){if(!n.value)return;const V=n.value.getSource(i);V&&"setData"in V&&V.setData(N)}function k(N,V){n.value&&n.value.setFeatureState({source:i,...N},V)}function B(N,V){n.value&&n.value.removeFeatureState({source:i,...N},V?{key:V}:void 0)}function j(){!n.value||f||(n.value.getLayer(s)&&n.value.removeLayer(s),o.source&&n.value.getSource(i)&&n.value.removeSource(i),f=!0,d())}return e.onBeforeUnmount(j),{ids:{layerId:s,sourceId:i},isMounted:()=>{var N;return p&&!!((N=n.value)!=null&&N.getLayer(s))},setVisible:a,updatePaint:h,updateLayout:u,updateFilter:y,setData:b,setTiles:g,setStyle:l,setFeatureState:k,removeFeatureState:B,remove:j,getSource:()=>{var N;return(N=n.value)==null?void 0:N.getSource(i)},getLayer:()=>{var N;return(N=n.value)==null?void 0:N.getLayer(s)}}}const pc={class:"flex flex-row gap-x-3 z-10 relative widget"},fc=["onClick"],uc=["src","alt"],gc=e.defineComponent({__name:"MapLayersPanel",setup(t){const o={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:{}},n=e.ref("gki"),r=Pe("base",{source:{type:"raster",tiles:[o[n.value].url]},layer:{id:"base",type:"raster",source:"base"},beforeId:0});function m(s){if(n.value=s,!o[s].url)return r.setVisible(!1);r.setVisible(!0),r.setTiles([o[s].url])}return(s,i)=>(e.openBlock(),e.createElementBlock("div",pc,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(o,(p,f)=>e.createElementVNode("div",{key:f,onClick:c=>m(f)},[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",n.value===f?"border-blue-500":"border-gray-200"])},[p.preview?(e.openBlock(),e.createElementBlock("img",{key:0,src:p.preview,alt:p.title,class:"object-cover rounded-lg w-12 h-12"},null,8,uc)):e.createCommentVNode("",!0)],2)],8,fc)),64))]))}}),hc={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%"}},yc={class:"flex flex-col gap-1 p-5"},bc={class:"flex items-center justify-between w-full text-sm text-gray-800 ml-2"},kc=e.defineComponent({__name:"MapLegend",props:{items:{}},setup(t){const o=t,{map:n,ready:r}=ge(),m=e.ref([]);let s=null;function i(d){return d?d.map((a,l)=>{var y;const h=(a==null?void 0:a.name)||(a==null?void 0:a.label)||(a==null?void 0:a.title)||(a==null?void 0:a.id)||`Layer ${l+1}`,u=(a==null?void 0:a.color)||(a==null?void 0:a.fill)||((y=a==null?void 0:a.paint)==null?void 0:y.color)||"#3388ff";return{id:`${h}-${l}`,label:h,color:u}}):[]}function p(d){return d!=null&&d.layers?d.layers.filter(a=>{const l=a.paint||{};return l["fill-color"]||l["line-color"]||l["circle-color"]}).map((a,l)=>{var y;const h=a.paint||{},u=h["fill-color"]||h["line-color"]||h["circle-color"]||"#3388ff";return{id:a.id||`layer-${l}`,label:((y=a.metadata)==null?void 0:y.title)||a.id||`Layer ${l+1}`,color:u}}):[]}async function f(){var l;await r();const d=n.value;if(!d)return;const a=(l=d.getStyle)==null?void 0:l.call(d);m.value=p(a)}function c(){const d=n.value;if(!d)return;s==null||s();const a=()=>f();d.on("styledata",a),s=()=>d.off("styledata",a)}return e.watch(()=>o.items,async d=>{d!=null?(m.value=i(d),s==null||s()):(await r(),c(),f())},{immediate:!0,deep:!0}),e.onMounted(async()=>{(o.items===void 0||o.items===null)&&(await r(),c(),f())}),e.onBeforeUnmount(()=>{s==null||s(),s=null}),(d,a)=>m.value.length?(e.openBlock(),e.createElementBlock("div",hc,[e.createElementVNode("div",yc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,l=>(e.openBlock(),e.createElementBlock("div",{key:l.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:l.color})},null,4),e.createElementVNode("span",bc,[e.createElementVNode("span",null,e.toDisplayString(l.label),1)])]))),128))])])):e.createCommentVNode("",!0)}});function xc(){const{map:t,ready:o}=ge(),n=e.ref(null),r=e.ref(null),m=e.ref(null);let s=null,i=null,p=null;function f(u){return u.map(y=>{if(typeof y=="string")return{key:y,label:y};const g=(y==null?void 0:y.name)||(y==null?void 0:y.field);if(!g)return null;const b=(y==null?void 0:y.label)||(y==null?void 0:y.ua)||(y==null?void 0:y.title)||g;return{key:g,label:b}}).filter(y=>!!(y&&y.key))}function c(u,y){var b;const g=(b=u==null?void 0:u.getCanvas)==null?void 0:b.call(u);g&&(g.style.cursor=y??"")}function d(u){s&&(u==null||u.off("mousemove",s),s=null),i&&(u==null||u.off("mouseleave",i),u==null||u.off("mouseout",i),i=null),c(u,null)}function a(u){if(!u.length)return null;if(!p)return u[0];const y=g=>{var b;if(p!=null&&p.layerIds&&p.layerIds.length){const k=(b=g.layer)==null?void 0:b.id;if(!k||!p.layerIds.includes(String(k)))return!1}return!(p!=null&&p.sourceId&&String(g.source)!==p.sourceId)};return u.find(y)||null}async function l(u,y){var k;await o();const g=t.value;if(!g)return;const b=f(u);if(d(g),p=y?{...y,sourceId:y.sourceId!==void 0?String(y.sourceId):void 0,layerIds:(k=y.layerIds)==null?void 0:k.map(B=>String(B))}:null,!b.length){n.value=null,r.value=null;return}s=B=>{var z;if((z=B==null?void 0:B.originalEvent)!=null&&z.buttons)return;const j=g.queryRenderedFeatures(B.point),N=a(j);if(!N){n.value=null,r.value=null,m.value=null,c(g,null);return}const V=N.properties||{};r.value=[B.point.x,B.point.y],n.value=b.map(O=>({field:O.label,value:V[O.key]})),m.value=N,c(g,"default")},i=()=>{n.value=null,r.value=null,m.value=null,c(g,null)},g.on("mousemove",s),g.on("mouseleave",i),g.on("mouseout",i)}function h(){const u=t.value;u&&d(u),p=null,n.value=null,r.value=null,m.value=null}return{popupContent:n,popupCoords:r,popupFeature:m,enable:l,disable:h}}const wc={class:"popup-card relative w-full overflow-hidden rounded-2xl border border-blue-100 bg-white/95 shadow-2xl backdrop-blur-sm"},_c={key:0,class:"popup-image-single overflow-hidden"},Vc=["src"],Ec={key:1,class:"border-b border-gray-200 px-3 py-2 text-sm font-semibold text-gray-800"},Bc={class:"px-3 py-2 text-xs text-gray-600"},Nc={class:"w-full border-collapse"},Cc={class:"w-1/2 break-words pb-1 pr-2 font-medium text-gray-700"},$c={class:"w-1/2 break-words pb-1 pl-2 text-right"},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)"}},Sc={key:1},Fc=F(e.defineComponent({__name:"MapPopup",props:{fields:{},sourceId:{}},setup(t){const o=t,{popupContent:n,popupCoords:r,popupFeature:m,enable:s,disable:i}=xc(),p=e.ref(null),f=e.ref({left:"-9999px",top:"-9999px"}),c=e.computed(()=>o.fields??[]),d=e.computed(()=>!!(n.value&&n.value.length)),a=e.computed(()=>{var g;return((g=m.value)==null?void 0:g.properties)??{}}),l=e.computed(()=>c.value.filter(g=>g.meta==="image").map(g=>{var b;return(b=a.value)==null?void 0:b[g.name||g.field||""]}).filter(g=>!!g)),h=e.computed(()=>{var B;const g=c.value.find(j=>j.meta==="title");if(!g)return"";const b=g.name||g.field;return(b?(B=a.value)==null?void 0:B[b]:void 0)??""}),u=e.computed(()=>c.value.filter(g=>g.meta!=="image").filter(g=>g.meta!=="title").map(g=>{var j;const b=g.name||g.field,B=(b?(j=a.value)==null?void 0:j[b]:void 0)??"—";return{key:b||String(g.label||g.ua||Math.random()),label:g.ua||g.label||g.title||b||"",display:B,meta:g.meta}}).filter(g=>g.label));function y(){if(!d.value||!r.value||!p.value){f.value={left:"-9999px",top:"-9999px"};return}const g=p.value;g.offsetWidth,g.offsetHeight;const b=r.value[0]+18,k=r.value[1]+18;f.value={left:`${b}px`,top:`${k}px`}}return e.watch(()=>({fields:o.fields,sourceId:o.sourceId}),({fields:g,sourceId:b})=>{const k=typeof b=="number"?String(b):b||void 0;g&&g.length?s(g,{sourceId:k}).catch(B=>console.error("Failed to enable popup",B)):i()},{immediate:!0,deep:!0}),e.watch([r,n],()=>{e.nextTick(()=>y())}),e.onBeforeUnmount(()=>{i()}),(g,b)=>d.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"popupRef",ref:p,class:"absolute z-30 w-[280px] pointer-events-none text-gray-800",style:e.normalizeStyle(f.value)},[e.createElementVNode("div",wc,[l.value.length?(e.openBlock(),e.createElementBlock("div",_c,[e.createElementVNode("img",{src:l.value[0],alt:"popup preview",class:"h-40 w-full object-cover"},null,8,Vc)])):e.createCommentVNode("",!0),h.value?(e.openBlock(),e.createElementBlock("div",Ec,e.toDisplayString(h.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Bc,[e.createElementVNode("table",Nc,[e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,k=>(e.openBlock(),e.createElementBlock("tr",{key:k.key,class:"align-top"},[e.createElementVNode("td",Cc,e.toDisplayString(k.label),1),e.createElementVNode("td",$c,[k.meta==="badge"?(e.openBlock(),e.createElementBlock("span",Lc,e.toDisplayString(k.display),1)):(e.openBlock(),e.createElementBlock("span",Sc,e.toDisplayString(k.display),1))])]))),128))])])])])],4)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-fc0a86c1"]]),jc=e.defineComponent({__name:"MapDataLayer",props:{id:{},layer:{},styleYaml:{}},setup(t){var a;const{map:o,flyTo:n}=ge(),r=t,m=`${location.origin}/api/vtile/${r.id}/ua/{z}/{x}/{y}.vmt`,s=Pe("pois",{source:{type:"vector",tiles:[m],minzoom:0,maxzoom:14},layer:{id:"pois",source:"pois","source-layer":r.id,style:(a=r.layer)==null?void 0:a.style}});n({center:[34.4924,48.45658],animate:!1});let i=null;function p(){i&&clearTimeout(i),i=setTimeout(()=>{i=null,d().catch(l=>console.error("Failed to update map layer",l))},300)}async function f(l){return(await fetch(`/api/gis-service/${r.id}/${l}`).then(u=>u.json())).rows}const c=["#440154","#482878","#3e4989","#31688e","#26828e","#1f9e89","#35b779","#6ece58","#b5de2b","#fde725"];async function d(){if(o.value){if(r.styleYaml.colorAttr){const h=await f(r.styleYaml.colorAttr);r.styleYaml.colors=h.reduce((u,y,g)=>({...u,[y.id.toString()]:c[g]}),{})}s.setStyle(r.styleYaml)}}return e.watch(()=>r.styleYaml,p),e.onBeforeUnmount(()=>{s.remove()}),(l,h)=>null}});function Ic(t,o){return t||o||null}function vc(t){const{map:o,ready:n}=ge(),r=e.ref(""),m=e.computed(()=>typeof t=="function"?t()??null:t??null);async function s(f,c){return f.getSource(c)?f.getSource(c):new Promise(d=>{const a=l=>{if(l.sourceId===c){const h=f.getSource(c);h&&(f.off("sourcedata",a),d(h))}};f.on("sourcedata",a)})}async function i(f,c){var g,b,k;const d=Ic(c,m.value);if(!d)return;await n();const a=o.value;if(!a)return;const l=a.getSource(d)??await s(a,d);if(!l)return;const h=Array.isArray(l.tiles)?l.tiles:Array.isArray((g=l.options)==null?void 0:g.tiles)?l.options.tiles:void 0;if(!h||h.length===0)return;const u=String(h[0]).split("?filter=")[0];if(!u)return;const y=f?`${u}?filter=${encodeURIComponent(f)}`:u;typeof l.setTiles=="function"?l.setTiles([y]):Array.isArray(l.tiles)?l.tiles=[y]:Array.isArray((b=l.options)==null?void 0:b.tiles)&&(l.options.tiles=[y]),r.value=f,(k=a.triggerRepaint)==null||k.call(a)}async function p(f){await i("",f)}return{filter:r,setFilter:i,clearFilter:p}}const Dc=F(e.defineComponent({__name:"MapFilter",props:{layerId:{},position:{},class:{}},emits:["change"],setup(t,{expose:o,emit:n}){const r=t,m=n,s=e.computed(()=>r.position??"top-right"),i=e.computed(()=>{if(s.value==="custom")return"";const u="absolute pointer-events-none z-30";switch(s.value){case"top-left":return`${u} top-4 left-4`;case"bottom-left":return`${u} bottom-4 left-4`;case"bottom-right":return`${u} bottom-4 right-4`;default:return`${u} top-4 right-4`}}),p=e.computed(()=>[i.value,r.class].filter(Boolean).join(" ")),f=()=>r.layerId??null,{setFilter:c,clearFilter:d,filter:a}=vc(f);async function l(u){await c(u),m("change",u)}async function h(u){await d(u),m("change","")}return e.watch(()=>r.layerId,u=>{u&&(a.value?c(a.value,u):d(u))}),o({apply:l,clear:h,filter:a}),(u,y)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(p.value)},[e.renderSlot(u.$slots,"default",{applyFilter:l,clearFilter:h,filter:e.unref(a)})],2))}}),[["__scopeId","data-v-54fdbad9"]]),Ac={class:"flex h-screen bg-gradient-to-br from-slate-50 to-white"},Mc={class:"flex-1 relative overflow-hidden"},Tc={class:"absolute top-0 left-0 w-full z-20"},zc={class:"flex items-center justify-between bg-white/80 backdrop-blur border-b border-gray-200 px-6 py-3 shadow-sm gap-4"},Pc={class:"flex items-center gap-3"},Uc={class:"font-semibold text-lg text-gray-800 line-clamp-1"},Oc={class:"text-xs text-gray-500 truncate"},qc=["title"],Rc={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]"},Hc={class:"relative w-full h-full"},Wc={class:"absolute top-4 left-4 z-20"},Zc={class:"absolute bottom-4 left-4 z-20"},Yc={class:"w-[650px] bg-white border-l border-gray-100 flex flex-col overflow-hidden shadow-lg"},Gc={class:"flex-1 flex flex-col h-full"},Jc={class:"px-3 pt-3 pb-2 border-b border-gray-100"},Kc={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"},Qc=["aria-selected","aria-controls","id","tabindex","onClick"],Xc={class:"leading-none"},ed={class:"flex flex-col flex-1 overflow-y-hidden p-3"},td={__name:"service",setup(t){const o=ye.useRoute(),n=ye.useRouter(),r=o.params.id,m=e.ref(null),s=e.ref([]),i=e.ref(null),p=e.ref(""),f=e.ref([]),c=e.ref([]),d=e.computed(()=>{var g,b;return((g=i.value)==null?void 0:g.id)??((b=i.value)==null?void 0:b.service_id)??null}),a=[{key:"style",label:"Style",icon:xi},{key:"popup",label:"Popup",icon:ji},{key:"filter",label:"Filter",icon:Ai},{key:"legend",label:"Legend",icon:Ei},{key:"card",label:"Card",icon:$i}],l=a.map(g=>g.key),h=e.ref("style");e.onMounted(async()=>{const g=o.query.tab;g&&l.includes(g)&&(h.value=g),await u()}),e.watch(h,g=>{o.query.tab!==g&&n.replace({query:{...o.query,tab:g}})}),e.watch(()=>o.query.tab,g=>{g&&l.includes(g)&&h.value!==g&&(h.value=g)});const u=async()=>{var g,b;try{const k=await fetch(`/api/gis-service/${r}`);if(!k.ok)throw new Error(`${k.status}`);const B=await k.json();s.value=B||{},f.value=[...B.popup],m.value=((g=B==null?void 0:B.tokens)==null?void 0:g.edit)||null,i.value=B||null,p.value=B.style||"",f.value=Array.isArray((b=i.value)==null?void 0:b.popup)?[...i.value.popup]:[]}catch(k){console.error("Failed to fetch map info",k)}try{const B=await(await fetch(`/api/data/gis.services.table/${r}`)).json()}catch(k){console.error("Failed to fetch map info",k)}};e.watch(()=>{var g;return(g=i.value)==null?void 0:g.style},g=>{g?typeof g=="string"?p.value=g:p.value=JSON.parse(JSON.stringify(g)):p.value=""},{deep:!0});const y={style:Ui,popup:nc,legend:rc,card:lc,filter:ac};return(g,b)=>{var k,B,j,N;return e.openBlock(),e.createElementBlock("div",Ac,[e.createElementVNode("div",Mc,[e.createElementVNode("div",Tc,[e.createElementVNode("div",zc,[e.createElementVNode("div",Pc,[e.createElementVNode("button",{onClick:b[0]||(b[0]=V=>g.$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"},[...b[4]||(b[4]=[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",Uc,e.toDisplayString((k=i.value)==null?void 0:k.name),1),e.createElementVNode("div",Oc," Сервіс: "+e.toDisplayString((B=i.value)==null?void 0:B.service_key),1)])]),e.createElementVNode("div",{class:"max-w-xl text-xs text-gray-600 truncate",title:(j=i.value)==null?void 0:j.description},e.toDisplayString((N=i.value)==null?void 0:N.description),9,qc)])]),e.createElementVNode("div",Rc,[e.createElementVNode("div",Hc,[e.createVNode(ic,null,{default:e.withCtx(()=>{var V,z,O;return[(V=i.value)!=null&&V.service_id?(e.openBlock(),e.createBlock(jc,{key:0,id:(z=i.value)==null?void 0:z.service_id,layer:i.value,"style-yaml":p.value},null,8,["id","layer","style-yaml"])):e.createCommentVNode("",!0),d.value?(e.openBlock(),e.createBlock(Dc,{key:1,"layer-id":d.value},null,8,["layer-id"])):e.createCommentVNode("",!0),e.createElementVNode("div",Wc,[e.createVNode(gc)]),e.createElementVNode("div",Zc,[e.createVNode(kc,{items:((O=i.value)==null?void 0:O.legend)||null},null,8,["items"])]),e.createVNode(Fc,{fields:f.value,"source-id":d.value},null,8,["fields","source-id"])]}),_:1})])])]),e.createElementVNode("div",Yc,[e.createElementVNode("div",Gc,[e.createElementVNode("div",Jc,[e.createElementVNode("div",Kc,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(a,V=>e.createElementVNode("button",{key:V.key,type:"button",role:"tab","aria-selected":h.value===V.key,"aria-controls":`radix-r0-content-${V.key}`,id:`radix-r0-trigger-${V.key}`,class:e.normalizeClass(["whitespace-nowrap 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 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===V.key?"bg-white shadow-sm text-gray-700":""]),tabindex:h.value===V.key?0:-1,onClick:z=>h.value=V.key},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(V.icon),{class:"h-3.5 w-3.5 mb-0.5"})),e.createElementVNode("span",Xc,e.toDisplayString(V.label),1)],10,Qc)),64))])]),e.createElementVNode("div",ed,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(y[h.value]),{"map-info":i.value,token:d.value,fields:s.value.fields,"filter-fields":s.value.filters,"style-yaml":p.value,"onUpdate:styleYaml":b[1]||(b[1]=V=>p.value=V),"popup-fields":f.value,"onUpdate:popupFields":b[2]||(b[2]=V=>f.value=V),"filter-scheme":c.value,"onUpdate:filterScheme":b[3]||(b[3]=V=>c.value=V),onUpdate:u},null,40,["map-info","token","fields","filter-fields","style-yaml","popup-fields","filter-scheme"]))])])])])}}};function od(t){t.component("MapCustom",Be)}W.MapCustom=Be,W.Register=hi,W.Service=td,W.default=Be,W.install=od,Object.defineProperties(W,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
80
+ `)});return}if(c.value===null)d.value=[...d.value,{...f.value}];else{const y=[...d.value];y[c.value]={...f.value},d.value=y}l()}return(u,y)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[u.addButton?(e.openBlock(),e.createElementBlock("div",bl,[e.createElementVNode("div",kl,[e.createElementVNode("button",{onClick:y[0]||(y[0]=g=>p.value=!0),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring [&_svg]:shrink-0 bg-primary hover:bg-primary/90 h-10 px-4 py-2 bg-gradient-to-r from-blue-600 to-blue-500 hover:from-blue-700 hover:to-blue-600 text-white"},[...y[5]||(y[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",xl,[e.createElementVNode("div",wl,[e.createElementVNode("table",_l,[e.createElementVNode("colgroup",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,g=>(e.openBlock(),e.createElementBlock("col",{key:g.key,style:e.normalizeStyle(g.type==="main"?`width: ${u.mainColWidth}`:g.width?`width: ${g.width}`:"auto")},null,4))),128)),y[6]||(y[6]=e.createElementVNode("col",null,null,-1))]),e.createElementVNode("thead",null,[e.createElementVNode("tr",Vl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,g=>(e.openBlock(),e.createElementBlock("th",{key:g.key,class:"px-6 py-4"},e.toDisplayString(g.label),1))),128)),y[7]||(y[7]=e.createElementVNode("th",{class:"px-6 py-4"},"Дії",-1))])]),d.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(d.value,(g,b)=>(e.openBlock(),e.createElementBlock("tr",El,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,k=>(e.openBlock(),e.createElementBlock("td",{key:k.key,class:"px-6 py-4 align-middle text-center"},[k.type==="main"?(e.openBlock(),e.createElementBlock("div",Bl,[y[8]||(y[8]=e.createElementVNode("span",{class:"drag-handle cursor-move mr-2 text-gray-400"},"☰",-1)),e.unref(fe)(g.format==="yes/no"?"check":g.format||g.type)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["flex items-center justify-center p-1 rounded",`bg-${e.unref(pe)(g.format==="yes/no"?"check":g.format||g.type)}-100`])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(g.format==="yes/no"?"icon-check":`icon-${g.format||g.type}`),{class:"w-4 h-4"}))],2)):e.createCommentVNode("",!0),e.createElementVNode("div",Nl,[e.withDirectives((e.openBlock(),e.createElementBlock("p",Cl,[e.createTextVNode(e.toDisplayString(g.name||g.id),1)])),[[e.unref(gl)]]),e.createElementVNode("p",$l,e.toDisplayString(g.ua||g.label),1)])])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[k.type==="color"?(e.openBlock(),e.createElementBlock("div",Ll,[e.createElementVNode("div",{class:e.normalizeClass(["w-4 h-4 rounded-full align-middle",`bg-[${g[k.key]}]`])},null,2)])):["format","type","meta"].includes(k.key)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[g[k.key]?(e.openBlock(),e.createElementBlock("span",Sl,e.toDisplayString(g[k.key]),1)):(e.openBlock(),e.createElementBlock("span",Fl,"Не вказано"))],64)):(e.openBlock(),e.createElementBlock("span",jl,e.toDisplayString(g[k.key]),1))],64))]))),128)),e.createElementVNode("td",Il,[e.createVNode(ul,{columns:d.value,"onUpdate:columns":y[1]||(y[1]=k=>d.value=k),data:g,index:b,scheme:u.formScheme},null,8,["columns","data","index","scheme"])])]))),256)):(e.openBlock(),e.createElementBlock("tr",vl,[e.createElementVNode("td",{colspan:a.value.length+1,class:"text-gray-500 text-center py-4"}," Поля не знайдені ",8,Dl)]))])])]),e.createVNode(e.unref(n),{title:"Створити поле",size:"lg",visible:p.value,"onUpdate:visible":y[4]||(y[4]=g=>p.value=g)},{footer:e.withCtx(()=>[e.createElementVNode("div",{class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},[e.createElementVNode("button",{type:"button",onClick:l,class:"px-4 py-2 rounded bg-gray-100 text-gray-700"}," Скасувати "),e.createElementVNode("button",{type:"button",onClick:h,class:"px-4 py-2 rounded bg-blue-600 text-white"}," Зберегти1 ")])]),default:e.withCtx(()=>[e.createVNode(e.unref(r),{ref_key:"form",ref:i,modelValue:f.value,"onUpdate:modelValue":y[2]||(y[2]=g=>f.value=g),schema:u.formScheme,form:i.value,"onUpdate:form":y[3]||(y[3]=g=>i.value=g)},null,8,["modelValue","schema","form"])]),_:1},8,["visible"])],64))}}),[["__scopeId","data-v-51284468"]]),Al={class:"vs-form"},Ml={class:"vs-form__body auto-rows-max container"},Tl={class:"flex flex-wrap"},zl={class:"h-fit w-full mb-6 px-2"},Pl={class:"h-fit w-full flex flex-wrap"},Ul={class:"flex justify-end mb-3 gap-2 w-full"},Ol={class:"w-full"},ql={class:"p-4 text-[13px]"},Rl={class:"grid grid-cols-2 gap-x-6 gap-y-2"},Hl=["id","value"],Wl={class:"ml-2 flex-1 min-w-0 flex items-center gap-2"},Zl={class:"font-medium text-gray-900 truncate"},Yl={class:"text-xs text-gray-500"},Gl={class:"flex justify-end gap-2 p-4 border-t w-full"},Jl=e.defineComponent({__name:"list-tab",props:{data:{default:{}},dataModifiers:{}},emits:["update:data"],setup(t){const o=e.useModel(t,"data"),n=e.computed(()=>Array.isArray(o.value.fields)?o.value.fields:[]),r=e.defineAsyncComponent(()=>import("@opengis/form")),m=e.defineAsyncComponent(()=>import("@opengis/core").then(y=>y.VsModal)),s=e.ref(),i=e.ref(!1),p=e.ref([]),f=e.computed(()=>{var y,g;return((y=o.value)==null?void 0:y.token)||((g=o.value)==null?void 0:g.id)||"register-form"}),c=e.computed({get:()=>(o.value||(o.value={}),Array.isArray(o.value.columns)||(o.value.columns=[]),o.value.columns),set:y=>{o.value||(o.value={}),o.value.columns=Array.isArray(y)?y:[]}}),d=e.computed({get:()=>o.value||{},set:y=>{var b;const g=Array.isArray((b=o.value)==null?void 0:b.columns)?o.value.columns:[];o.value={...o.value,...y,columns:g}}});e.watch(i,y=>{if(y){const g=c.value.map(b=>b.name||b.id);p.value=[...g]}});const a=()=>{const y=new Set(p.value);c.value;const g=n.value.filter(b=>y.has(b.name));c.value=g,i.value=!1,p.value=[]},l={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}},h=[{key:"name",label:"Name",type:"text"},{key:"ua",label:"UA",type:"text"},{key:"format",label:"Format",type:"text"},{key:"meta",label:"Мета",type:"text"},{key:"data",label:"Класифікатор",type:"text"}],u={name:{type:"text",label:"Name",required:!0},ua:{type:"text",label:"UA",required:!0},format:{type:"combobox",label:"Format",mode:"combo",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(y,g)=>(e.openBlock(),e.createElementBlock("div",Al,[e.createElementVNode("div",Ml,[e.createElementVNode("div",Tl,[e.createElementVNode("div",zl,[(e.openBlock(),e.createBlock(e.unref(r),{ref_key:"formEl",ref:s,key:f.value,schema:l,modelValue:d.value,"onUpdate:modelValue":g[0]||(g[0]=b=>d.value=b)},null,8,["modelValue"]))]),e.createElementVNode("div",Pl,[e.createElementVNode("div",Ul,[e.createElementVNode("button",{onClick:g[1]||(g[1]=b=>i.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 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"},[...g[6]||(g[6]=[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",Ol,[e.createVNode(xe,{modelValue:c.value,"onUpdate:modelValue":g[2]||(g[2]=b=>c.value=b),"columns-scheme":h,"form-scheme":u,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])])])])]),e.createVNode(e.unref(m),{visible:i.value,"onUpdate:visible":g[5]||(g[5]=b=>i.value=b),title:"Імпорт колонок",size:"lg"},{footer:e.withCtx(()=>[e.createElementVNode("div",Gl,[e.createElementVNode("button",{onClick:g[4]||(g[4]=b=>i.value=!1),class:"px-4 py-2 rounded bg-gray-100 text-gray-700"}," Скасувати "),e.createElementVNode("button",{onClick:a,class:"px-4 py-2 rounded bg-blue-600 text-white"}," Імпортувати ")])]),default:e.withCtx(()=>[e.createElementVNode("div",ql,[e.createElementVNode("div",Rl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,b=>(e.openBlock(),e.createElementBlock("label",{key:b.name,class:"flex items-center hover:bg-gray-100 rounded p-2 cursor-pointer"},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",id:"import-"+b.name,"onUpdate:modelValue":g[3]||(g[3]=k=>p.value=k),value:b.name},null,8,Hl),[[e.vModelCheckbox,p.value]]),e.createElementVNode("div",Wl,[e.unref(fe)(b.type)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(`bg-${e.unref(pe)(b.type)}-100 p-1 rounded`)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(`icon-${b.type}`),{class:"w-4 h-4"}))],2)):e.createCommentVNode("",!0),e.createElementVNode("div",null,[e.createElementVNode("p",Zl,e.toDisplayString(b.name),1),e.createElementVNode("p",Yl,e.toDisplayString(b.title||b.label),1)])])]))),128))])])]),_:1},8,["visible"])]))}}),Kl={class:"vs-form"},Ql={class:"vs-form__body auto-rows-max container"},Xl={class:"flex flex-wrap"},ea={class:"h-fit w-full flex flex-wrap"},ta={class:"flex justify-end mb-3 gap-2 w-full"},oa={class:"w-full"},na={class:"p-4 text-[13px]"},ra={class:"grid grid-cols-2 gap-x-6 gap-y-2"},la=["id","value"],aa={class:"flex-1 min-w-0 flex items-center gap-2"},sa={class:"font-medium text-gray-900 truncate"},ia={class:"text-xs text-gray-500"},ca={class:"flex justify-end gap-2 p-4 border-t w-full"},da=e.defineComponent({__name:"filter-tab",props:{data:{default:{}},dataModifiers:{}},emits:["update:data"],setup(t){const o=e.useModel(t,"data"),n=e.computed(()=>Array.isArray(o.value.fields)?o.value.fields:[]),r=e.defineAsyncComponent(()=>import("@opengis/core").then(d=>d.VsModal)),m=e.ref(!1),s=e.ref([]),i=e.computed({get:()=>(o.value||(o.value={}),Array.isArray(o.value.filters)||(o.value.filters=[]),o.value.filters),set:d=>{o.value||(o.value={}),o.value.filters=Array.isArray(d)?d:[]}});e.watch(m,d=>{if(d){const a=i.value.map(l=>l.id||l.name);s.value=[...a]}});const p=()=>{const d=new Set(s.value),a=n.value.filter(l=>d.has(l.name));i.value=a,m.value=!1,s.value=[]},f=[{key:"id",label:"Name",type:"text"},{key:"label",label:"UA",type:"text"},{key:"type",label:"Тип",type:"text"}],c={id:{type:"text",label:"Name",required:!0,disabled:!0},label:{type:"text",label:"UA",required:!0},type:{type:"combobox",label:"Тип",required:!0,mode:"combo",options:[{text:"Check",id:"check"},{text:"Range",id:"range"},{text:"Date",id:"date"},{text:"Text",id:"text"},{text:"Autocomplete",id:"autocomplete"}]}};return(d,a)=>(e.openBlock(),e.createElementBlock("div",Kl,[e.createElementVNode("div",Ql,[e.createElementVNode("div",Xl,[a[6]||(a[6]=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",ea,[e.createElementVNode("div",ta,[e.createElementVNode("button",{onClick:a[0]||(a[0]=l=>m.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 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"},[...a[5]||(a[5]=[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",oa,[e.createVNode(xe,{modelValue:i.value,"onUpdate:modelValue":a[1]||(a[1]=l=>i.value=l),"columns-scheme":f,"form-scheme":c,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])])])])]),e.createVNode(e.unref(r),{visible:m.value,"onUpdate:visible":a[4]||(a[4]=l=>m.value=l),title:"Імпорт фільтрів",size:"lg"},{footer:e.withCtx(()=>[e.createElementVNode("div",ca,[e.createElementVNode("button",{onClick:a[3]||(a[3]=l=>m.value=!1),class:"px-4 py-2 rounded bg-gray-100 text-gray-700"}," Скасувати "),e.createElementVNode("button",{onClick:p,class:"px-4 py-2 rounded bg-blue-600 text-white"}," Імпортувати ")])]),default:e.withCtx(()=>[e.createElementVNode("div",na,[e.createElementVNode("div",ra,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,l=>(e.openBlock(),e.createElementBlock("label",{key:l.name,class:"flex items-center hover:bg-gray-100 rounded p-2 cursor-pointer"},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",id:"import-filter-"+l.name,"onUpdate:modelValue":a[2]||(a[2]=h=>s.value=h),value:l.name},null,8,la),[[e.vModelCheckbox,s.value]]),e.createElementVNode("div",aa,[e.unref(fe)(l.type)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(`bg-${e.unref(pe)(l.type)}-100 p-1 rounded`)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(`icon-${l.type}`),{class:"w-4 h-4"}))],2)):e.createCommentVNode("",!0),e.createElementVNode("div",null,[e.createElementVNode("p",sa,e.toDisplayString(l.name),1),e.createElementVNode("p",ia,e.toDisplayString(l.title||l.label),1)])])]))),128))])])]),_:1},8,["visible"])]))}}),ma={class:"vs-form"},pa={class:"vs-form__body auto-rows-max container"},fa={class:"flex flex-wrap"},ua={class:"h-fit w-full flex flex-wrap"},ga={class:"flex justify-end mb-3 gap-2 w-full"},ha={class:"w-full"},ya={class:"p-4 text-[13px]"},ba={class:"grid grid-cols-2 gap-x-6 gap-y-2"},ka=["id","value"],xa={class:"flex-1 min-w-0 flex items-center gap-2"},wa={class:"font-medium text-gray-900 truncate"},_a={class:"text-xs text-gray-500"},Va={class:"flex justify-end gap-2 p-4 border-t w-full"},Ea=e.defineComponent({__name:"card-tab",props:{data:{default:{}},dataModifiers:{}},emits:["update:data"],setup(t){const o=e.useModel(t,"data"),n=e.computed(()=>Array.isArray(o.value.fields)?o.value.fields:[]),r=e.defineAsyncComponent(()=>import("@opengis/core").then(d=>d.VsModal)),m=e.ref(!1),s=e.ref([]),i=e.computed({get:()=>o.value.card,set:d=>{o.value||(o.value={}),o.value.card=Array.isArray(d)?d:[]}});e.watch(m,d=>{var a;if(d){const l=((a=i.value)==null?void 0:a.map(h=>h.name))||[];s.value=[...l]}});const p=()=>{const d=new Set(s.value),a=n.value.filter(l=>d.has(l.name));i.value=a,m.value=!1,s.value=[]},f=[{key:"name",label:"Name",type:"text"},{key:"ua",label:"UA",type:"text"},{key:"format",label:"Format",type:"text"},{key:"meta",label:"Мета",type:"text"}],c={name:{type:"text",label:"Name",required:!0,disabled:!0},ua:{type:"text",label:"UA",required:!0},format:{type:"combobox",label:"Format",mode:"combo",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"}]}};return(d,a)=>(e.openBlock(),e.createElementBlock("div",ma,[e.createElementVNode("div",pa,[e.createElementVNode("div",fa,[a[6]||(a[6]=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",ua,[e.createElementVNode("div",ga,[e.createElementVNode("button",{onClick:a[0]||(a[0]=l=>m.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 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"},[...a[5]||(a[5]=[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",ha,[e.createVNode(xe,{modelValue:i.value,"onUpdate:modelValue":a[1]||(a[1]=l=>i.value=l),"columns-scheme":f,"form-scheme":c,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])])])])]),e.createVNode(e.unref(r),{visible:m.value,"onUpdate:visible":a[4]||(a[4]=l=>m.value=l),title:"Імпорт полів картки",size:"lg"},{footer:e.withCtx(()=>[e.createElementVNode("div",Va,[e.createElementVNode("button",{onClick:a[3]||(a[3]=l=>m.value=!1),class:"px-4 py-2 rounded bg-gray-100 text-gray-700"}," Скасувати "),e.createElementVNode("button",{onClick:p,class:"px-4 py-2 rounded bg-blue-600 text-white"}," Імпортувати ")])]),default:e.withCtx(()=>[e.createElementVNode("div",ya,[e.createElementVNode("div",ba,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,l=>(e.openBlock(),e.createElementBlock("label",{key:l.name,class:"flex items-center hover:bg-gray-100 rounded p-2 cursor-pointer"},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",id:"import-card-"+l.name,"onUpdate:modelValue":a[2]||(a[2]=h=>s.value=h),value:l.name},null,8,ka),[[e.vModelCheckbox,s.value]]),e.createElementVNode("div",xa,[e.unref(fe)(l.type)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(`bg-${e.unref(pe)(l.type)}-100 p-1 rounded`)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(`icon-${l.type}`),{class:"w-4 h-4"}))],2)):e.createCommentVNode("",!0),e.createElementVNode("div",null,[e.createElementVNode("p",wa,e.toDisplayString(l.name),1),e.createElementVNode("p",_a,e.toDisplayString(l.title||l.label),1)])])]))),128))])])]),_:1},8,["visible"])]))}}),Ba=["","січня","лютого","березня","квітня","травня","червня","липня","серпня","вересня","жовтня","листопада","грудня"];function ue(t){if(!t)return"";const[o,n]=t.split(" ");if(!o)return t;const[r,m,s]=o.split("-");if(!r||!m||!s)return t;const i=parseInt(m,10),p=Ba[i]||m;let f=`${parseInt(s,10)} ${p} ${r}`;if(n){const c=n.split(".")[0],[d,a,l]=c.split(":");d&&a&&l?f+=`, ${d}:${a}:${l}`:d&&a?f+=`, ${d}:${a}`:d&&(f+=`, ${d}`)}return f}const Na={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 n=this.query_params.map(r=>{const m=Object.keys(r)[0],s=r[m];return`${m}=${encodeURIComponent(t[s])}`}).join("&");return`${this.path}?${n}`}if(!this.query_params||!this.query_params.length)return`${this.path}/${t[this.id_key]}`;const o=this.query_params.map(n=>{const r=Object.keys(n)[0],m=n[r];return`${r}=${encodeURIComponent(t[m])}`}).join("&");return`${this.path}/${t[this.id_key]}?${o}`},formatDate:ue}},Ca={class:"flex justify-between p-4 pb-2 bg-slate-50 gap-4"},$a={class:"flex items-center justify-between"},La={class:"text-lg font-bold line-clamp-2"},Sa={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"},Fa={key:0,class:"flex"},ja={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"},Ia={class:"p-4 pt-2"},va={class:"grid grid-cols-2 gap-3 text-sm"},Da={class:"text-gray-500"},Aa={class:"font-medium"},Ma={class:"items-center p-3 bg-slate-50 flex justify-end"},Ta=["href"];function za(t,o,n,r,m,s){return e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.items,i=>{var p,f,c;return e.openBlock(),e.createElementBlock("div",{key:i.id,class:"rounded-lg border bg-card text-card-foreground overflow-hidden border-none shadow-md relative","data-v0-t":"card"},[e.createElementVNode("div",Ca,[e.createElementVNode("div",$a,[e.createElementVNode("h2",La,e.toDisplayString(i[`${(p=s.titleCol)==null?void 0:p.name}_text`]||i[(f=s.titleCol)==null?void 0:f.name]||i[(c=s.titleCol)==null?void 0:c.label]||"Не вказано"),1),Array.isArray(s.categoryCol)&&s.categoryCol.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(s.categoryCol,d=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:d.name},[i[d.name]?(e.openBlock(),e.createElementBlock("div",Sa,e.toDisplayString(i[`${d.name}_text`]||i[d.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0)]),Array.isArray(s.tagsCol)&&s.tagsCol.length?(e.openBlock(),e.createElementBlock("div",Fa,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.tagsCol,d=>(e.openBlock(),e.createElementBlock("div",{key:d.name,class:"mt-2 flex flex-wrap gap-1"},[i[d.name]?(e.openBlock(),e.createElementBlock("span",ja,e.toDisplayString(i[`${d.name}_text`]||i[d.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Ia,[e.createElementVNode("div",va,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.featuresCols,d=>(e.openBlock(),e.createElementBlock("div",{key:d.name,class:"flex items-center gap-1.5"},[e.createElementVNode("span",Da,e.toDisplayString(d.ua||d.label)+": ",1),e.createElementVNode("span",Aa,[Array.isArray(i[d==null?void 0:d.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(i[d==null?void 0:d.name],(a,l)=>(e.openBlock(),e.createElementBlock("span",{key:l,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(a),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[d.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(s.formatDate(i[d==null?void 0:d.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(i[d==null?void 0:d.name]||"Немає даних"),1)],64))],64))])]))),128))])]),e.createElementVNode("div",Ma,[e.createElementVNode("a",{href:s.getItemLink(i),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"},[...o[0]||(o[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,Ta)])])}),128)}const Pa=F(Na,[["render",za]]),Ua={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 n=this.query_params.map(r=>{const m=Object.keys(r)[0],s=r[m];return`${m}=${encodeURIComponent(t[s])}`}).join("&");return`${this.path}?${n}`}if(!this.query_params||!this.query_params.length)return`${this.path}/${t[this.id_key]}`;const o=this.query_params.map(n=>{const r=Object.keys(n)[0],m=n[r];return`${r}=${encodeURIComponent(t[m])}`}).join("&");return`${this.path}/${t[this.id_key]}?${o}`},formatDate:ue}},Oa={class:"p-0"},qa={class:"border-l-4 border-l-slate-400"},Ra={class:"p-4"},Ha={class:"flex flex-wrap items-center gap-2 mb-3"},Wa={class:"text-lg font-bold"},Za={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"},Ya={key:1,class:"flex"},Ga={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"},Ja={class:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-4 gap-3 text-sm border-t pt-3"},Ka={class:"text-xs text-gray-500 mb-1"},Qa={class:"font-medium"},Xa={class:"flex justify-end mt-3 border-t pt-3"},es=["href"];function ts(t,o,n,r,m,s){return e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.items,i=>{var p,f;return e.openBlock(),e.createElementBlock("div",{key:i.id,class:"rounded-lg border bg-card text-card-foreground shadow-sm overflow-hidden","data-v0-t":"card"},[e.createElementVNode("div",Oa,[e.createElementVNode("div",qa,[e.createElementVNode("div",Ra,[e.createElementVNode("div",Ha,[e.createElementVNode("h2",Wa,e.toDisplayString(i[`${(p=s.titleCol)==null?void 0:p.name}_text`]||i[(f=s.titleCol)==null?void 0:f.name]||"Не вказано"),1),Array.isArray(s.categoryCol)&&s.categoryCol.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(s.categoryCol,c=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:c.name},[i[c.name]?(e.openBlock(),e.createElementBlock("div",Za,e.toDisplayString(i[`${c.name}_text`]||i[c.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0),Array.isArray(s.tagsCol)&&s.tagsCol.length?(e.openBlock(),e.createElementBlock("div",Ya,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.tagsCol,c=>(e.openBlock(),e.createElementBlock("div",{key:c.name,class:"flex flex-wrap gap-1 ml-2"},[i[c.name]?(e.openBlock(),e.createElementBlock("span",Ga,e.toDisplayString(i[`${c.name}_text`]||i[c.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Ja,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.featuresCols,c=>(e.openBlock(),e.createElementBlock("div",{key:c.name},[e.createElementVNode("p",Ka,e.toDisplayString(c.ua),1),e.createElementVNode("p",Qa,[Array.isArray(i[c==null?void 0:c.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(i[c==null?void 0:c.name],(d,a)=>(e.openBlock(),e.createElementBlock("span",{key:a,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(d),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(s.formatDate(i[c==null?void 0:c.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(i[c==null?void 0:c.name]||"Немає даних"),1)],64))],64))])]))),128))]),e.createElementVNode("div",Xa,[e.createElementVNode("a",{href:s.getItemLink(i),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"},[...o[0]||(o[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,es)])])])])])}),128)}const os=F(Ua,[["render",ts]]),ns={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,o){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 n=this.query_params.map(r=>{const m=Object.keys(r)[0],s=r[m];return`${m}=${encodeURIComponent(t[s])}`}).join("&");return`${this.path}?${n}`}if(!this.query_params||!this.query_params.length)return`${this.path}/${t[this.id_key]}`;const o=this.query_params.map(n=>{const r=Object.keys(n)[0],m=n[r];return`${r}=${encodeURIComponent(t[m])}`}).join("&");return`${this.path}/${t[this.id_key]}?${o}`},formatDate:ue}},rs={class:"space-y-4"},ls={class:"flex items-center py-2 px-3"},as={class:"flex-1"},ss={class:"grid grid-cols-12 gap-2 w-full text-xs"},is={class:"col-span-5"},cs={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"},ds={key:1,class:"flex flex-wrap gap-1 mt-1"},ms={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"},ps={class:"col-span-7"},fs={class:"grid grid-cols-3 gap-3"},us={class:"text-[10px] text-gray-500 mb-1"},gs={class:"truncate font-medium"},hs=["href"];function ys(t,o,n,r,m,s){return e.openBlock(),e.createElementBlock("div",rs,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.items,i=>{var p,f;return e.openBlock(),e.createElementBlock("div",{key:i.id,class:"border-b border-slate-200 hover:bg-slate-50 transition-colors"},[e.createElementVNode("div",ls,[e.createElementVNode("div",{class:e.normalizeClass(["w-1 h-8 rounded-full mr-3",s.colorClass])},null,2),e.createElementVNode("div",as,[e.createElementVNode("div",ss,[e.createElementVNode("div",is,[e.createElementVNode("p",{class:e.normalizeClass(["font-bold text-sm text-left",{"w-full h-full flex items-center":!Array.isArray(s.tagsCol)||!s.tagsCol.length}])},e.toDisplayString(i[`${(p=s.titleCol)==null?void 0:p.name}_text`]||i[(f=s.titleCol)==null?void 0:f.name]||i[Object.keys(i)[0]]||"Не вказано"),3),Array.isArray(s.categoryCol)&&s.categoryCol.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(s.categoryCol,c=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:c.name},[i[c.name]?(e.openBlock(),e.createElementBlock("div",cs,e.toDisplayString(i[`${c.name}_text`]||i[c.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0),Array.isArray(s.tagsCol)&&s.tagsCol.length?(e.openBlock(),e.createElementBlock("div",ds,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.tagsCol,c=>(e.openBlock(),e.createElementBlock("div",{key:c.name,class:"flex flex-wrap gap-1 mt-1"},[i[c.name]?(e.openBlock(),e.createElementBlock("span",ms,e.toDisplayString(i[`${c.name}_text`]||i[c.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",ps,[e.createElementVNode("div",fs,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.featuresCols,c=>(e.openBlock(),e.createElementBlock("div",{key:c.name},[e.createElementVNode("p",us,e.toDisplayString(c.ua),1),e.createElementVNode("p",gs,[Array.isArray(i[c==null?void 0:c.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(i[c==null?void 0:c.name],(d,a)=>(e.openBlock(),e.createElementBlock("span",{key:a,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(d),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(s.formatDate(i[c==null?void 0:c.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(i[c==null?void 0:c.name]||"Немає даних"),1)],64))],64))])]))),128))])])])]),e.createElementVNode("a",{href:s.getItemLink(i),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"}},[...o[0]||(o[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,hs)])])}),128))])}const bs=F(ns,[["render",ys]]),ks={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 n=this.query_params.map(r=>{const m=Object.keys(r)[0],s=r[m];return`${m}=${encodeURIComponent(t[s])}`}).join("&");return`${this.path}?${n}`}if(!this.query_params||!this.query_params.length)return`${this.path}/${t[this.id_key]}`;const o=this.query_params.map(n=>{const r=Object.keys(n)[0],m=n[r];return`${r}=${encodeURIComponent(t[m])}`}).join("&");return`${this.path}/${t[this.id_key]}?${o}`},formatDate:ue}},xs={class:"flex flex-col space-y-1.5 p-6 pb-2"},ws={class:"flex items-center gap-2"},_s={class:"tracking-tight text-lg font-medium"},Vs={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"},Es={key:1,class:"flex"},Bs={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"},Ns={class:"p-6 pt-0 pb-4"},Cs={class:"grid grid-cols-2 gap-4"},$s={class:"text-sm text-gray-500"},Ls={class:"font-medium"},Ss={class:"flex items-center p-6 pt-0"},Fs=["href"];function js(t,o,n,r,m,s){return e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.items,i=>{var p,f;return e.openBlock(),e.createElementBlock("div",{key:i.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",xs,[e.createElementVNode("div",ws,[e.createElementVNode("h3",_s,e.toDisplayString(i[`${(p=s.titleCol)==null?void 0:p.name}_text`]||i[(f=s.titleCol)==null?void 0:f.name]||Object.keys(i)[0]||"Не вказано"),1),Array.isArray(s.categoryCol)&&s.categoryCol.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(s.categoryCol,c=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:c.name},[i[c.name]?(e.openBlock(),e.createElementBlock("div",Vs,e.toDisplayString(i[`${c.name}_text`]||i[c.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0),Array.isArray(s.tagsCol)&&s.tagsCol.length?(e.openBlock(),e.createElementBlock("div",Es,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.tagsCol,c=>(e.openBlock(),e.createElementBlock("div",{key:c.name,class:"flex flex-wrap gap-1 ml-2"},[i[c.name]?(e.openBlock(),e.createElementBlock("span",Bs,e.toDisplayString(i[`${c.name}_text`]||i[c.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)])]),e.createElementVNode("div",Ns,[e.createElementVNode("div",Cs,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.featuresCols,c=>(e.openBlock(),e.createElementBlock("div",{key:c.name},[e.createElementVNode("p",$s,e.toDisplayString(c.ua),1),e.createElementVNode("p",Ls,[Array.isArray(i[c==null?void 0:c.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(i[c==null?void 0:c.name],(d,a)=>(e.openBlock(),e.createElementBlock("span",{key:a,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(d),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(s.formatDate(i[c==null?void 0:c.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(i[c==null?void 0:c.name]||"Немає даних"),1)],64))],64))])]))),128))])]),e.createElementVNode("div",Ss,[e.createElementVNode("a",{href:s.getItemLink(i),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,Fs)])])}),128)}const Is=F(ks,[["render",js]]),vs={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 n=this.query_params.map(r=>{const m=Object.keys(r)[0],s=r[m];return`${m}=${encodeURIComponent(t[s])}`}).join("&");return`${this.path}?${n}`}if(!this.query_params||!this.query_params.length)return`${this.path}/${t[this.id_key]}`;const o=this.query_params.map(n=>{const r=Object.keys(n)[0],m=n[r];return`${r}=${encodeURIComponent(t[m])}`}).join("&");return`${this.path}/${t[this.id_key]}?${o}`},formatDate:ue}},Ds={class:"grid grid-cols-12 divide-x divide-gray-100"},As={key:0},Ms=["src"],Ts={key:1,class:"col-span-1 flex items-center justify-center"},zs={class:"col-span-7 p-4"},Ps={class:"flex items-center mb-1 col-span-7 p-4"},Us={class:"text-base font-bold text-gray-900 mr-2"},Os={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"},qs={class:"text-sm text-gray-600 line-clamp-1 mb-2"},Rs={class:"grid grid-cols-2 gap-x-4 gap-y-1 text-sm"},Hs={class:"text-gray-500 mr-1"},Ws=["innerHTML"],Zs={class:"text-gray-600 truncate"},Ys={class:"col-span-2 p-3 bg-gray-50 flex flex-col justify-center"},Gs={class:"text-xs text-gray-500 mb-1.5"},Js={key:0,class:"flex flex-wrap gap-1"},Ks={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"},Qs={class:"col-span-2 flex flex-col justify-center items-center bg-gray-50 border-l p-2"},Xs={class:"w-full space-y-2"},ei=["href"];function ti(t,o,n,r,m,s){return e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.items,i=>{var p,f,c,d,a;return e.openBlock(),e.createElementBlock("div",{key:i.id,class:"bg-white border border-gray-200 rounded-lg overflow-hidden transition-all duration-200 hover:shadow-md"},[e.createElementVNode("div",Ds,[s.imageCol?(e.openBlock(),e.createElementBlock("div",As,[i[(p=s.imageCol)==null?void 0:p.name]?(e.openBlock(),e.createElementBlock("img",{key:0,src:i[(f=s.imageCol)==null?void 0:f.name],alt:"image",class:"object-cover h-full"},null,8,Ms)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",Ts,[...o[0]||(o[0]=[e.createElementVNode("div",{class:"w-3 h-12 rounded-sm bg-blue-500",title:"Пріоритет: Високий","aria-hidden":"true"},null,-1)])])),e.createElementVNode("div",zs,[e.createElementVNode("div",Ps,[e.createElementVNode("h3",Us,e.toDisplayString(i[`${(c=s.titleCol)==null?void 0:c.name}_text`]||i[(d=s.titleCol)==null?void 0:d.name]||Object.keys(i)[0]||"Не вказано"),1),Array.isArray(s.categoryCol)&&s.categoryCol.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(s.categoryCol,l=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:l.name},[i[l.name]?(e.openBlock(),e.createElementBlock("div",Os,e.toDisplayString(i[`${l.name}_text`]||i[l.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0)]),e.createElementVNode("p",qs,e.toDisplayString(i[(a=s.descCol)==null?void 0:a.name]),1),e.createElementVNode("div",Rs,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.featuresCols,l=>(e.openBlock(),e.createElementBlock("div",{key:l.name,class:"flex items-center"},[e.createElementVNode("span",Hs,e.toDisplayString((l==null?void 0:l.ua)||l.label||l.name)+":",1),l.icon?(e.openBlock(),e.createElementBlock("span",{key:0,class:"mr-1 flex-shrink-0",innerHTML:l.icon},null,8,Ws)):e.createCommentVNode("",!0),e.createElementVNode("span",Zs,[Array.isArray(i[l==null?void 0:l.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(i[l==null?void 0:l.name],(h,u)=>(e.openBlock(),e.createElementBlock("span",{key:u,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(h),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[l.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(s.formatDate(i[l==null?void 0:l.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(i[l==null?void 0:l.name]||"Немає даних"),1)],64))],64))])]))),128))])]),e.createElementVNode("div",Ys,[e.createElementVNode("p",Gs," Теги: "+e.toDisplayString(s.tagsCol.length&&i[s.tagsCol[0].name]?"":"відсутні"),1),Array.isArray(s.tagsCol)&&s.tagsCol.length?(e.openBlock(),e.createElementBlock("div",Js,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.tagsCol,l=>(e.openBlock(),e.createElementBlock("div",{key:l.name,class:"flex flex-wrap gap-1"},[i[l.name]?(e.openBlock(),e.createElementBlock("span",Ks,e.toDisplayString(i[`${l.name}_text`]||i[l.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Qs,[e.createElementVNode("div",Xs,[e.createElementVNode("a",{href:s.getItemLink(i),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,ei)])])])])}),128)}const Me={template1:Pa,template2:os,template3:bs,template4:Is,template5:F(vs,[["render",ti]])},oi={class:"space-y-4"},ni={class:"flex items-center gap-4 mb-2"},ri={class:"text-lg font-semibold mb-4"},li={key:1,class:"text-gray-400 text-center py-12"},ai={key:2,class:"text-gray-400 text-center py-12"},si=e.defineComponent({__name:"preview-tab",props:{data:{default:{}},dataModifiers:{}},emits:["update:data"],setup(t){const o=e.defineAsyncComponent(()=>import("@opengis/form")),n=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"}],m={view:{type:"select",label:"Вигляд",required:!0,options:r,col:12}},s=e.computed(()=>{var d;return Array.isArray((d=n.value)==null?void 0:d.columns)?n.value.columns:[]}),i=e.computed(()=>{var d;return console.log(n.value),((d=n.value)==null?void 0:d.view)||"template1"}),p=e.computed(()=>Me[i.value]||Me.template1),f=e.computed(()=>{var l;const d=(l=n.value)==null?void 0:l.view;if(!d)return"template1";const a=r.find(h=>h.id===d);return(a==null?void 0:a.text)||d}),c=e.computed(()=>(Array.isArray(n.value.rows)?n.value.rows:[]).slice(0,5));return(d,a)=>(e.openBlock(),e.createElementBlock("div",oi,[e.createElementVNode("div",ni,[e.createVNode(e.unref(o),{schema:m,modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=l=>n.value=l),class:"w-[220px]"},null,8,["modelValue"])]),e.createElementVNode("h2",ri," Превʼю таблиці ("+e.toDisplayString(f.value)+") ",1),p.value&&c.value.length&&s.value.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(p.value),{items:c.value,columns:s.value,path:"#",id_key:"id",key:i.value},null,8,["items","columns"])):c.value.length?(e.openBlock(),e.createElementBlock("div",ai," Додайте колонки та виберіть вигляд для перегляду ")):(e.openBlock(),e.createElementBlock("div",li," Немає даних для превʼю "))]))}}),ii={class:"relative min-h-svh flex-1 flex-col flex gap-4 bg-white p-8 overflow-y-auto"},ci={class:"max-w-6xl mx-auto"},di={class:"flex items-center justify-between mb-6"},mi={class:"flex items-center gap-2"},pi=["href"],fi={class:"w-full"},ui={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"},gi=["onClick"],hi={__name:"register",setup(t){const o=ye.useRoute(),n=ye.useRouter(),r=e.ref("list"),m=e.ref(""),s=[{name:"List",id:"list"},{name:"Filters",id:"filters"},{name:"Card",id:"card"},{name:"Preview",id:"preview"}],i={list:Jl,filters:da,card:Ea,preview:si},p=s.map(a=>a.id),f=e.ref({}),c=async()=>{console.log(f.value);try{const a=await fetch(`/api/gis-registry/${o.params.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(f.value)});if(!a.ok)throw new Error(`Failed to save content: ${a.status}`);Z.notify({type:"success",title:"Успіх",message:"Контент збережено"})}catch(a){Z.notify({type:"error",title:"Помилка",message:"Не вдалося зберегти контент"}),console.error(a)}},d=async()=>{try{const l=await(await fetch(`/api/gis-registry/${o.params.id}`)).json(),h=l;m.value=h.register_key||"",f.value=h,f.value.fields=Array.isArray(l==null?void 0:l.fields)?l.fields:[]}catch(a){console.error("Помилка завантаження даних:",a)}};return e.onMounted(async()=>{const a=o.query.tab;typeof a=="string"&&p.includes(a)&&(r.value=a),await d()}),e.watch(r,a=>{o.query.tab!==a&&n.replace({query:{...o.query,tab:a}})}),e.watch(()=>o.query.tab,a=>{typeof a=="string"&&p.includes(a)&&r.value!==a&&(r.value=a)}),(a,l)=>(e.openBlock(),e.createElementBlock("main",ii,[e.createElementVNode("div",null,[e.createElementVNode("div",ci,[e.createElementVNode("div",di,[l[1]||(l[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",mi,[e.createElementVNode("a",{href:`/${e.unref(o).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,pi),e.createElementVNode("button",{onClick:c,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",fi,[e.createElementVNode("div",ui,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(s,h=>e.createElementVNode("button",{key:h.id,onClick:u=>r.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===r.value?"bg-blue-50 text-blue-700 border-blue-200":""])},e.toDisplayString(h.name),11,gi)),64))])]),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i[r.value]),{data:f.value,"onUpdate:data":l[0]||(l[0]=h=>f.value=h),key:r.value+"-"+(f.value.id||f.value.register_id||"")},null,40,["data"]))])])]))}},yi={},bi={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 ki(t,o){return e.openBlock(),e.createElementBlock("svg",bi,[...o[0]||(o[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 xi=F(yi,[["render",ki]]),wi={},_i={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 Vi(t,o){return e.openBlock(),e.createElementBlock("svg",_i,[...o[0]||(o[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 Ei=F(wi,[["render",Vi]]),Bi={},Ni={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 Ci(t,o){return e.openBlock(),e.createElementBlock("svg",Ni,[...o[0]||(o[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 $i=F(Bi,[["render",Ci]]),Li={},Si={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 Fi(t,o){return e.openBlock(),e.createElementBlock("svg",Si,[...o[0]||(o[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 ji=F(Li,[["render",Fi]]),Ii={},vi={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 Di(t,o){return e.openBlock(),e.createElementBlock("svg",vi,[...o[0]||(o[0]=[e.createElementVNode("polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"},null,-1)])])}const Ai=F(Ii,[["render",Di]]),Mi={class:"flex flex-col flex-1 overflow-hidden"},Ti={class:"flex flex-col flex-1 overflow-hidden"},zi={class:"bg-white rounded-xl border border-gray-200 shadow-sm overflow-hidden mt-3 flex flex-col flex-1"},Pi={class:"relative bg-gradient-to-br from-slate-50 to-white flex-1"},Ui=F(e.defineComponent({__name:"vs-tab-style",props:{token:{},styleYaml:{}},emits:["update:styleYaml","update"],setup(t,{emit:o}){const n=t,r=o;function m(u){if(!u)return"";if(typeof u=="string")return u;try{return jsyaml.dump(u)}catch(y){return console.warn("Failed to stringify style YAML",y),""}}const s=e.ref(m(n.styleYaml)),i=e.ref("vs-light"),p=e.ref(null);let f=null,c=null;function d(){const u=m(n.styleYaml);u!==s.value&&(s.value=u,f&&u!==f.getValue()&&f.setValue(u))}e.watch(()=>n.token,()=>{d()}),e.watch(s,u=>{try{const y=u?jsyaml.load(u):null;JSON.stringify(y)!==JSON.stringify(n.styleYaml)&&r("update:styleYaml",y)}catch(y){console.warn("Invalid YAML:",y)}});function a(){return new Promise((u,y)=>{if(c)return u(c);if(window.monaco)return c=window.monaco,u(c);const g=k=>{if(Array.from(document.styleSheets).some(N=>{var V;return(V=N==null?void 0:N.href)==null?void 0:V.includes(k)}))return;const j=document.createElement("link");j.rel="stylesheet",j.href=k,document.head.appendChild(j)},b=k=>new Promise((B,j)=>{const N=document.createElement("script");N.src=k,N.onload=()=>B(),N.onerror=j,document.body.appendChild(N)});g("https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs/editor/editor.main.min.css"),b("https://cdn.jsdelivr.net/npm/js-yaml@4.1.0/dist/js-yaml.min.js"),b("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"],()=>{c=window.monaco,u(c)})}).catch(y)})}function l(){!p.value||!c||(f&&f.dispose(),f=c.editor.create(p.value,{value:s.value,language:"yaml",theme:i.value,automaticLayout:!0,minimap:{enabled:!1}}),d(),f.onDidChangeModelContent(()=>{s.value=f.getValue()}))}e.onMounted(async()=>{await a(),l()});const h=async()=>{try{await fetch(`/api/gis-service/${n.token}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({style:s.value})}),r("update"),Z.notify({type:"success",title:"Успіх",message:"Стилі збережено"})}catch(u){Z.notify({type:"error",title:"Помилка",message:"Не вдалося зберегти стилі"}),console.log(u)}};return(u,y)=>(e.openBlock(),e.createElementBlock("div",Mi,[e.createElementVNode("div",{class:"flex justify-end"},[e.createElementVNode("button",{onClick:h,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"},[...y[0]||(y[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-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",Ti,[e.createElementVNode("div",zi,[y[1]||(y[1]=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",Pi,[e.createElementVNode("div",{ref_key:"editorContainer",ref:p,class:"w-full h-full"},null,512)])])])]))}}),[["__scopeId","data-v-c9bb6aaa"]]),Oi={class:"space-y-3 bg-gradient-to-br from-sky-50 to-blue-50 p-4 rounded-xl border border-sky-100 shadow-sm"},qi={role:"radiogroup",class:"grid grid-cols-3 gap-2"},Ri=["onClick"],Hi=["aria-checked","value"],Wi={key:0},Zi=e.defineComponent({__name:"view-mode-toggle",props:{modelValue:{},options:{}},emits:["update:modelValue"],setup(t,{emit:o}){const n=t,r=o,m=i=>r("update:modelValue",i),s=n.options||[{value:"all",label:"All"},{value:"list",label:"List"},{value:"none",label:"None"}];return(i,p)=>(e.openBlock(),e.createElementBlock("div",Oi,[p[1]||(p[1]=e.createElementVNode("label",{class:"text-sm font-medium text-gray-600"},"Режим відображення",-1)),e.createElementVNode("div",qi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(s),f=>(e.openBlock(),e.createElementBlock("div",{key:f.value,onClick:c=>m(f.value),class:e.normalizeClass(["flex items-center justify-center space-x-2 rounded-lg p-2 border transition-all duration-300 cursor-pointer",[i.modelValue===f.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":i.modelValue===f.value,value:f.value,class:"aspect-square rounded-full border border-primary h-4 w-4 flex items-center justify-center text-sky-500"},[i.modelValue===f.value?(e.openBlock(),e.createElementBlock("span",Wi,[...p[0]||(p[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,Hi),e.createElementVNode("label",{class:e.normalizeClass(["text-xs font-medium cursor-pointer",i.modelValue===f.value?"text-gray-700":"text-gray-600"])},e.toDisplayString(f.label),3)],10,Ri))),128))])]))}}),Yi={class:"flex justify-between mb-3 gap-2"},Gi=["disabled"],Ji={class:"p-4 text-[13px]"},Ki={class:"grid grid-cols-2 gap-x-6 gap-y-2"},Qi=["id","value"],Xi={class:"flex-1 min-w-0 flex items-center gap-2"},ec={class:"font-medium text-gray-900 truncate"},tc={class:"text-xs text-gray-500"},oc={class:"flex justify-end gap-2 p-4 border-t w-full"},we=e.defineComponent({__name:"vs-tab-manager",props:{mapInfo:{},token:{},fields:{},sectionKey:{},columnsScheme:{},formScheme:{},dialogTitle:{},saveButtonLabel:{},importMapper:{type:Function},withViewMode:{type:Boolean}},emits:["update","update:columns"],setup(t,{emit:o}){const n=e.defineAsyncComponent(()=>import("@opengis/core").then(a=>a.VsModal)),r=e.ref("list"),m=t,s=o,i=e.ref([]),p=e.ref(!1),f=e.ref([]);e.watch(()=>{var a;return(a=m.mapInfo)==null?void 0:a[m.sectionKey]},a=>{i.value=Array.isArray(a)?[...a]:[],s("update:columns",i.value)},{immediate:!0}),e.watch(p,a=>{if(a){const l=i.value.map(h=>h.name||h.id);f.value=[...l]}});function c(){i.value=m.importMapper(m.fields,f.value,i.value),s("update:columns",i.value),p.value=!1,f.value=[]}async function d(){if(m.token)try{let a=[];if(r.value==="all"?a=[...m.fields]:r.value==="none"?a=[]:a=i.value,!(await fetch(`/api/table/${m.token}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({[m.sectionKey]:a})})).ok)throw new Error("Save failed");s("update"),Z.notify({type:"success",title:"Успіх",message:`${m.sectionKey} saved`})}catch(a){Z.notify({type:"error",title:"Помилка",message:`Failed to save ${m.sectionKey}`}),console.error(a)}}return(a,l)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",Yi,[e.createElementVNode("button",{onClick:l[0]||(l[0]=h=>p.value=!0),disabled:a.withViewMode&&r.value!=="list",class:e.normalizeClass([a.withViewMode&&r.value!=="list"?"":"hover:from-gray-600 hover:to-gray-500","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 disabled:bg-gray-300 disabled:text-gray-500 disabled:cursor-not-allowed disabled:opacity-70"])},[...l[6]||(l[6]=[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)])],10,Gi),e.createElementVNode("button",{onClick:d,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium bg-gradient-to-r from-sky-400 to-blue-400 hover:from-sky-500 hover:to-blue-500 text-white shadow-sm px-4 py-2 h-9 text-xs transition-all duration-300"},[l[7]||(l[7]=e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"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(" "+e.toDisplayString(a.saveButtonLabel),1)])]),a.withViewMode?(e.openBlock(),e.createBlock(Zi,{key:0,modelValue:r.value,"onUpdate:modelValue":l[1]||(l[1]=h=>r.value=h),class:"mb-2"},null,8,["modelValue"])):e.createCommentVNode("",!0),!a.withViewMode||r.value==="list"?(e.openBlock(),e.createBlock(xe,{key:1,modelValue:i.value,"onUpdate:modelValue":l[2]||(l[2]=h=>i.value=h),"columns-scheme":a.columnsScheme,"form-scheme":a.formScheme,"main-col-width":"250px","add-button":!1},null,8,["modelValue","columns-scheme","form-scheme"])):e.createCommentVNode("",!0),e.createVNode(e.unref(n),{visible:p.value,"onUpdate:visible":l[5]||(l[5]=h=>p.value=h),title:a.dialogTitle,size:"lg"},{footer:e.withCtx(()=>[e.createElementVNode("div",oc,[e.createElementVNode("button",{onClick:l[4]||(l[4]=h=>p.value=!1),class:"px-4 py-2 rounded bg-gray-100 text-gray-700"}," Скасувати "),e.createElementVNode("button",{onClick:c,class:"px-4 py-2 rounded bg-blue-600 text-white"}," Імпортувати ")])]),default:e.withCtx(()=>[e.createElementVNode("div",Ji,[e.createElementVNode("div",Ki,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.fields,h=>(e.openBlock(),e.createElementBlock("label",{key:h.name,class:"flex items-center hover:bg-gray-100 rounded p-2 cursor-pointer"},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",id:"import-"+h.name,"onUpdate:modelValue":l[3]||(l[3]=u=>f.value=u),value:h.name},null,8,Qi),[[e.vModelCheckbox,f.value]]),e.createElementVNode("div",Xi,[e.unref(fe)(h.type)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(`bg-${e.unref(pe)(h.type)}-100 p-1 rounded`)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(`icon-${h.type}`),{class:"w-4 h-4"}))],2)):e.createCommentVNode("",!0),e.createElementVNode("div",null,[e.createElementVNode("p",ec,e.toDisplayString(h.name),1),e.createElementVNode("p",tc,e.toDisplayString(h.title),1)])])]))),128))])])]),_:1},8,["visible","title"])],64))}}),nc=e.defineComponent({__name:"vs-tab-popup",props:{mapInfo:{},token:{},fields:{},filters:{},filterFields:{},styleYaml:{},popupFields:{},filterScheme:{}},emits:["update","update:styleYaml","update:popupFields","update:filterScheme","update:cardFields","update:legend"],setup(t,{emit:o}){const n=o,r=[{key:"name",label:"Name"},{key:"ua",label:"UA"},{key:"format",label:"Format"},{key:"meta",label:"Meta"}],m={name:{type:"text",label:"Name",disabled:!0,validators:["required"]},ua:{type:"text",label:"UA",validators:["required"]},format:{type:"text",label:"Format",disabled:!0},meta:{type:"combobox",label:"Meta",mode:"combo",options:[{text:"Title",id:"title"},{text:"Image",id:"image"},{text:"Badge",id:"badge"}]}};function s(i,p,f){return i.filter(c=>p.includes(c.name)).map(c=>{const d=f.find(a=>a.name===c.name);return{name:c.name,ua:c.title,format:c.format||"text",meta:(d==null?void 0:d.meta)||c.meta,...c}})}return(i,p)=>(e.openBlock(),e.createBlock(we,{"map-info":i.mapInfo,token:i.token,fields:i.fields,"section-key":"popup","columns-scheme":r,"form-scheme":m,"dialog-title":"Імпорт колонок","save-button-label":"Зберегти попап","import-mapper":s,onUpdate:p[0]||(p[0]=f=>n("update")),"onUpdate:columns":p[1]||(p[1]=f=>n("update:popupFields",f)),"with-view-mode":""},null,8,["map-info","token","fields"]))}}),rc=e.defineComponent({__name:"vs-tab-legend",props:{mapInfo:{},token:{},fields:{},filters:{},filterFields:{},styleYaml:{},popupFields:{},filterScheme:{}},emits:["update","update:styleYaml","update:popupFields","update:filterScheme","update:cardFields","update:legend"],setup(t,{emit:o}){const n=o;let r=[];const m=[{key:"name",label:"Назва"},{key:"color",label:"Колір",type:"color"}],s={name:{type:"text",label:"Назва",validators:["required"]},color:{type:"color",label:"Колір",validators:["required"]}};function i(p,f,c){return c}return(p,f)=>(e.openBlock(),e.createBlock(we,{"map-info":p.mapInfo,token:p.token,fields:[],"section-key":"legend","columns-scheme":m,"form-scheme":s,"dialog-title":"Імпорт легенди","save-button-label":"Зберегти легенду","import-mapper":i,onUpdate:f[0]||(f[0]=c=>n("update")),"onUpdate:columns":f[1]||(f[1]=c=>e.isRef(r)?r.value=c:r=c)},null,8,["map-info","token"]))}}),lc=e.defineComponent({__name:"vs-tab-card",props:{mapInfo:{},token:{},fields:{},filters:{},filterFields:{},styleYaml:{},popupFields:{},filterScheme:{}},emits:["update","update:styleYaml","update:popupFields","update:filterScheme","update:cardFields","update:legend"],setup(t,{emit:o}){const n=o;let r=[];const m=[{key:"name",label:"Name"},{key:"ua",label:"UA"},{key:"format",label:"Format"},{key:"meta",label:"Мета"}],s={name:{type:"text",label:"Name",validators:["required"],disabled:!0},ua:{type:"text",label:"UA",validators:["required"]},format:{type:"combobox",label:"Format",mode:"combo",validators:["required"],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:"Мета",validators:["required"],mode:"combo",options:[{text:"Title",id:"title"},{text:"Features",id:"features"},{text:"Status",id:"status"},{text:"Tags",id:"tags"},{text:"Category",id:"category"}]}};function i(p,f,c){return p.filter(d=>f.includes(d.name)).map(d=>({name:d.name,ua:d.title,format:d.format||"text",meta:d.meta||"title"}))}return(p,f)=>(e.openBlock(),e.createBlock(we,{"map-info":p.mapInfo,token:p.token,fields:p.fields,"section-key":"card","columns-scheme":m,"form-scheme":s,"dialog-title":"Імпорт полів картки","save-button-label":"Зберегти картку","import-mapper":i,onUpdate:f[0]||(f[0]=c=>n("update")),"onUpdate:columns":f[1]||(f[1]=c=>e.isRef(r)?r.value=c:r=c),"with-view-mode":""},null,8,["map-info","token","fields"]))}}),ac=e.defineComponent({__name:"vs-tab-filter",props:{mapInfo:{},token:{},fields:{},filters:{},filterFields:{},styleYaml:{},popupFields:{},filterScheme:{}},emits:["update","update:styleYaml","update:popupFields","update:filterScheme","update:cardFields","update:legend"],setup(t,{emit:o}){const n=o,r=[{key:"id",label:"Name"},{key:"label",label:"UA"},{key:"type",label:"Тип"}],m={id:{type:"text",label:"Name",disabled:!0,validators:["required"]},label:{type:"text",label:"UA",validators:["required"]},type:{type:"combobox",label:"Тип",validators:["required"],mode:"combo",options:[{text:"Check",id:"check"},{text:"Range",id:"range"},{text:"Date",id:"date"},{text:"Text",id:"text"},{text:"Autocomplete",id:"autocomplete"}]}};function s(i,p,f){return i.filter(c=>p.includes(c.name)).map(c=>({id:c.name,label:c.title,type:c.type||"text"}))}return(i,p)=>(e.openBlock(),e.createBlock(we,{"map-info":i.mapInfo,token:i.token,fields:i.fields,"section-key":"filters","columns-scheme":r,"form-scheme":m,"dialog-title":"Імпорт фільтрів","save-button-label":"Зберегти фільтри","import-mapper":s,onUpdate:p[0]||(p[0]=f=>n("update")),"onUpdate:columns":p[1]||(p[1]=f=>n("update:filterFields",f))},null,8,["map-info","token","fields"]))}}),Te=Symbol("MapContext");function sc(t){const o=e.shallowRef(null),n=e.ref(!1);let r=!1;const m=[],s=()=>{r=!0,m.length&&m.forEach(a=>a())},i=()=>{const a=t.container;return typeof a=="string"?document.getElementById(a):(a==null?void 0:a.value)!==void 0?a.value:a},p=()=>r?Promise.resolve():new Promise(a=>m.push(a)),f=async()=>{var l,h,u,y;if(typeof window>"u"||o.value)return;const a=i();if(!a)throw new Error("Map container not found");o.value=new maplibregl.Map({...t.mapOptions||{},center:[30,50],zoom:7,container:a}),(l=t.controls)!=null&&l.navigation&&o.value.addControl(new maplibregl.NavigationControl(typeof t.controls.navigation=="object"?t.controls.navigation:{}),"top-right"),(h=t.controls)!=null&&h.scale&&o.value.addControl(new maplibregl.ScaleControl(typeof t.controls.scale=="object"?t.controls.scale:{}),"bottom-left"),(u=t.controls)!=null&&u.fullscreen&&o.value.addControl(new maplibregl.FullscreenControl,"top-right"),(y=t.controls)!=null&&y.geolocate&&o.value.addControl(new maplibregl.GeolocateControl(typeof t.controls.geolocate=="object"?t.controls.geolocate:{}),"top-right"),o.value.once("load",()=>{n.value=!0,s()})},c=()=>{o.value&&(o.value.remove(),o.value=null,n.value=!1)};e.onMounted(f),e.onUnmounted(c);const d={map:o,ready:p,flyTo:a=>{var l;return(l=o.value)==null?void 0:l.flyTo(a)},fitBounds:(a,l)=>{var h;return(h=o.value)==null?void 0:h.fitBounds(a,l)},setCenter:a=>{var l;return(l=o.value)==null?void 0:l.setCenter(a)},setZoom:a=>{var l;return(l=o.value)==null?void 0:l.setZoom(a)},addControl:(a,l)=>{var h;return(h=o.value)==null?void 0:h.addControl(a,l)},removeControl:a=>{var l;return(l=o.value)==null?void 0:l.removeControl(a)},on:(a,l,h)=>{var u,y;return typeof l=="string"?((u=o.value)==null||u.on(a,l,h),()=>{var g;return(g=o.value)==null?void 0:g.off(a,l,h)}):((y=o.value)==null||y.on(a,l),()=>{var g;return(g=o.value)==null?void 0:g.off(a,l)})},off:(a,l,h)=>{var u,y;typeof l=="string"?(u=o.value)==null||u.off(a,l,h):(y=o.value)==null||y.off(a,l)},project:a=>{var l;return(l=o.value)==null?void 0:l.project(a)},unproject:a=>{var l;return(l=o.value)==null?void 0:l.unproject(a)}};return e.provide(Te,d),d}function ge(){const t=e.inject(Te);if(!t)throw new Error("useMap() called outside of a Map provider");return t}const ic=e.defineComponent({__name:"MapView",setup(t,{expose:o}){const n=e.ref(null),r=sc({container:n,mapOptions:{style:{version:8,sources:{},layers:[]},center:[30.5234,50.4501],zoom:9},controls:{navigation:!0,scale:!0}});return o({ctx:r}),(m,s)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",{ref_key:"el",ref:n,class:"w-full h-full rounded-xl overflow-hidden"},null,512),e.renderSlot(m.$slots,"default")],64))}});function cc(t){const o=t.colorAttr&&t.colors?["match",["get",t.colorAttr],...Object.entries(t.colors).reduce((n,r)=>n.concat(r),[]),"#94a3b8"]:null;return{type:"circle",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,"circle-radius":t.radius||5}}}function dc(t){return{type:"fill",paint:{"fill-color":t.color,"fill-opacity":t.opacity||.3,"fill-outline-color":t.stroke}}}function mc(t){return{type:"line",paint:{"line-color":t.color,"line-opacity":t.opacity||.3,"line-width":t.width||1.5}}}function ze(t){return t?t.type==="polygon"?dc(t):t.type==="line"?mc(t):cc(t):{}}function Pe(t,o){const{map:n,ready:r,on:m}=ge(),s=o.layer.id||t,i=o.sourceId??(typeof o.layer.source=="string"?o.layer.source:t);o.source&&(!o.layer.source||typeof o.layer.source!="string")&&(o.layer.source=i);let p=!1,f=!1;const c=()=>{var N,V;if(!(f||!n.value)){if(o.source&&!n.value.getSource(i)&&n.value.addSource(i,o.source),!n.value.getLayer(s)){const z=o.beforeId===0?(V=(N=n.value.getStyle().layers)==null?void 0:N[0])==null?void 0:V.id:o.beforeId,O=ze(o.layer.style);Object.assign(o.layer,O),n.value.addLayer(o.layer,z)}p=!0}};r().then(c);const d=m("style.load",c);function a(N){n.value&&n.value.setLayoutProperty(s,"visibility",N?"visible":"none")}function l(N){var O;if(!n.value)return;const V=ze(N),z=(O=n.value.getLayer(s))==null?void 0:O.type;if(V.type!==z){n.value.removeLayer(s),n.value.addLayer({...o.layer,...V});return}V.paint&&h(V.paint)}function h(N){n.value&&Object.entries(N).forEach(([V,z])=>n.value.setPaintProperty(s,V,z))}function u(N){n.value&&Object.entries(N).forEach(([V,z])=>n.value.setLayoutProperty(s,V,z))}function y(N){n.value&&n.value.setFilter(s,N)}function g(N){if(!n.value)return;const V=n.value.getSource(i);V&&"setTiles"in V&&V.setTiles(N)}function b(N){if(!n.value)return;const V=n.value.getSource(i);V&&"setData"in V&&V.setData(N)}function k(N,V){n.value&&n.value.setFeatureState({source:i,...N},V)}function B(N,V){n.value&&n.value.removeFeatureState({source:i,...N},V?{key:V}:void 0)}function j(){!n.value||f||(n.value.getLayer(s)&&n.value.removeLayer(s),o.source&&n.value.getSource(i)&&n.value.removeSource(i),f=!0,d())}return e.onBeforeUnmount(j),{ids:{layerId:s,sourceId:i},isMounted:()=>{var N;return p&&!!((N=n.value)!=null&&N.getLayer(s))},setVisible:a,updatePaint:h,updateLayout:u,updateFilter:y,setData:b,setTiles:g,setStyle:l,setFeatureState:k,removeFeatureState:B,remove:j,getSource:()=>{var N;return(N=n.value)==null?void 0:N.getSource(i)},getLayer:()=>{var N;return(N=n.value)==null?void 0:N.getLayer(s)}}}const pc={class:"flex flex-row gap-x-3 z-10 relative widget"},fc=["onClick"],uc=["src","alt"],gc=e.defineComponent({__name:"MapLayersPanel",setup(t){const o={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:{}},n=e.ref("gki"),r=Pe("base",{source:{type:"raster",tiles:[o[n.value].url]},layer:{id:"base",type:"raster",source:"base"},beforeId:0});function m(s){if(n.value=s,!o[s].url)return r.setVisible(!1);r.setVisible(!0),r.setTiles([o[s].url])}return(s,i)=>(e.openBlock(),e.createElementBlock("div",pc,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(o,(p,f)=>e.createElementVNode("div",{key:f,onClick:c=>m(f)},[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",n.value===f?"border-blue-500":"border-gray-200"])},[p.preview?(e.openBlock(),e.createElementBlock("img",{key:0,src:p.preview,alt:p.title,class:"object-cover rounded-lg w-12 h-12"},null,8,uc)):e.createCommentVNode("",!0)],2)],8,fc)),64))]))}}),hc={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%"}},yc={class:"flex flex-col gap-1 p-5"},bc={class:"flex items-center justify-between w-full text-sm text-gray-800 ml-2"},kc=e.defineComponent({__name:"MapLegend",props:{items:{}},setup(t){const o=t,{map:n,ready:r}=ge(),m=e.ref([]);let s=null;function i(d){return d?d.map((a,l)=>{var y;const h=(a==null?void 0:a.name)||(a==null?void 0:a.label)||(a==null?void 0:a.title)||(a==null?void 0:a.id)||`Layer ${l+1}`,u=(a==null?void 0:a.color)||(a==null?void 0:a.fill)||((y=a==null?void 0:a.paint)==null?void 0:y.color)||"#3388ff";return{id:`${h}-${l}`,label:h,color:u}}):[]}function p(d){return d!=null&&d.layers?d.layers.filter(a=>{const l=a.paint||{};return l["fill-color"]||l["line-color"]||l["circle-color"]}).map((a,l)=>{var y;const h=a.paint||{},u=h["fill-color"]||h["line-color"]||h["circle-color"]||"#3388ff";return{id:a.id||`layer-${l}`,label:((y=a.metadata)==null?void 0:y.title)||a.id||`Layer ${l+1}`,color:u}}):[]}async function f(){var l;await r();const d=n.value;if(!d)return;const a=(l=d.getStyle)==null?void 0:l.call(d);m.value=p(a)}function c(){const d=n.value;if(!d)return;s==null||s();const a=()=>f();d.on("styledata",a),s=()=>d.off("styledata",a)}return e.watch(()=>o.items,async d=>{d!=null?(m.value=i(d),s==null||s()):(await r(),c(),f())},{immediate:!0,deep:!0}),e.onMounted(async()=>{(o.items===void 0||o.items===null)&&(await r(),c(),f())}),e.onBeforeUnmount(()=>{s==null||s(),s=null}),(d,a)=>m.value.length?(e.openBlock(),e.createElementBlock("div",hc,[e.createElementVNode("div",yc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,l=>(e.openBlock(),e.createElementBlock("div",{key:l.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:l.color})},null,4),e.createElementVNode("span",bc,[e.createElementVNode("span",null,e.toDisplayString(l.label),1)])]))),128))])])):e.createCommentVNode("",!0)}});function xc(){const{map:t,ready:o}=ge(),n=e.ref(null),r=e.ref(null),m=e.ref(null);let s=null,i=null,p=null;function f(u){return u.map(y=>{if(typeof y=="string")return{key:y,label:y};const g=(y==null?void 0:y.name)||(y==null?void 0:y.field);if(!g)return null;const b=(y==null?void 0:y.label)||(y==null?void 0:y.ua)||(y==null?void 0:y.title)||g;return{key:g,label:b}}).filter(y=>!!(y&&y.key))}function c(u,y){var b;const g=(b=u==null?void 0:u.getCanvas)==null?void 0:b.call(u);g&&(g.style.cursor=y??"")}function d(u){s&&(u==null||u.off("mousemove",s),s=null),i&&(u==null||u.off("mouseleave",i),u==null||u.off("mouseout",i),i=null),c(u,null)}function a(u){if(!u.length)return null;if(!p)return u[0];const y=g=>{var b;if(p!=null&&p.layerIds&&p.layerIds.length){const k=(b=g.layer)==null?void 0:b.id;if(!k||!p.layerIds.includes(String(k)))return!1}return!(p!=null&&p.sourceId&&String(g.source)!==p.sourceId)};return u.find(y)||null}async function l(u,y){var k;await o();const g=t.value;if(!g)return;const b=f(u);if(d(g),p=y?{...y,sourceId:y.sourceId!==void 0?String(y.sourceId):void 0,layerIds:(k=y.layerIds)==null?void 0:k.map(B=>String(B))}:null,!b.length){n.value=null,r.value=null;return}s=B=>{var z;if((z=B==null?void 0:B.originalEvent)!=null&&z.buttons)return;const j=g.queryRenderedFeatures(B.point),N=a(j);if(!N){n.value=null,r.value=null,m.value=null,c(g,null);return}const V=N.properties||{};r.value=[B.point.x,B.point.y],n.value=b.map(O=>({field:O.label,value:V[O.key]})),m.value=N,c(g,"default")},i=()=>{n.value=null,r.value=null,m.value=null,c(g,null)},g.on("mousemove",s),g.on("mouseleave",i),g.on("mouseout",i)}function h(){const u=t.value;u&&d(u),p=null,n.value=null,r.value=null,m.value=null}return{popupContent:n,popupCoords:r,popupFeature:m,enable:l,disable:h}}const wc={class:"popup-card relative w-full overflow-hidden rounded-2xl border border-blue-100 bg-white/95 shadow-2xl backdrop-blur-sm"},_c={key:0,class:"popup-image-single overflow-hidden"},Vc=["src"],Ec={key:1,class:"border-b border-gray-200 px-3 py-2 text-sm font-semibold text-gray-800"},Bc={class:"px-3 py-2 text-xs text-gray-600"},Nc={class:"w-full border-collapse"},Cc={class:"w-1/2 break-words pb-1 pr-2 font-medium text-gray-700"},$c={class:"w-1/2 break-words pb-1 pl-2 text-right"},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)"}},Sc={key:1},Fc=F(e.defineComponent({__name:"MapPopup",props:{fields:{},sourceId:{}},setup(t){const o=t,{popupContent:n,popupCoords:r,popupFeature:m,enable:s,disable:i}=xc(),p=e.ref(null),f=e.ref({left:"-9999px",top:"-9999px"}),c=e.computed(()=>o.fields??[]),d=e.computed(()=>!!(n.value&&n.value.length)),a=e.computed(()=>{var g;return((g=m.value)==null?void 0:g.properties)??{}}),l=e.computed(()=>c.value.filter(g=>g.meta==="image").map(g=>{var b;return(b=a.value)==null?void 0:b[g.name||g.field||""]}).filter(g=>!!g)),h=e.computed(()=>{var B;const g=c.value.find(j=>j.meta==="title");if(!g)return"";const b=g.name||g.field;return(b?(B=a.value)==null?void 0:B[b]:void 0)??""}),u=e.computed(()=>c.value.filter(g=>g.meta!=="image").filter(g=>g.meta!=="title").map(g=>{var j;const b=g.name||g.field,B=(b?(j=a.value)==null?void 0:j[b]:void 0)??"—";return{key:b||String(g.label||g.ua||Math.random()),label:g.ua||g.label||g.title||b||"",display:B,meta:g.meta}}).filter(g=>g.label));function y(){if(!d.value||!r.value||!p.value){f.value={left:"-9999px",top:"-9999px"};return}const g=p.value;g.offsetWidth,g.offsetHeight;const b=r.value[0]+18,k=r.value[1]+18;f.value={left:`${b}px`,top:`${k}px`}}return e.watch(()=>({fields:o.fields,sourceId:o.sourceId}),({fields:g,sourceId:b})=>{const k=typeof b=="number"?String(b):b||void 0;g&&g.length?s(g,{sourceId:k}).catch(B=>console.error("Failed to enable popup",B)):i()},{immediate:!0,deep:!0}),e.watch([r,n],()=>{e.nextTick(()=>y())}),e.onBeforeUnmount(()=>{i()}),(g,b)=>d.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"popupRef",ref:p,class:"absolute z-30 w-[280px] pointer-events-none text-gray-800",style:e.normalizeStyle(f.value)},[e.createElementVNode("div",wc,[l.value.length?(e.openBlock(),e.createElementBlock("div",_c,[e.createElementVNode("img",{src:l.value[0],alt:"popup preview",class:"h-40 w-full object-cover"},null,8,Vc)])):e.createCommentVNode("",!0),h.value?(e.openBlock(),e.createElementBlock("div",Ec,e.toDisplayString(h.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Bc,[e.createElementVNode("table",Nc,[e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,k=>(e.openBlock(),e.createElementBlock("tr",{key:k.key,class:"align-top"},[e.createElementVNode("td",Cc,e.toDisplayString(k.label),1),e.createElementVNode("td",$c,[k.meta==="badge"?(e.openBlock(),e.createElementBlock("span",Lc,e.toDisplayString(k.display),1)):(e.openBlock(),e.createElementBlock("span",Sc,e.toDisplayString(k.display),1))])]))),128))])])])])],4)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-fc0a86c1"]]),jc=e.defineComponent({__name:"MapDataLayer",props:{id:{},layer:{},styleYaml:{}},setup(t){var a;const{map:o,flyTo:n}=ge(),r=t,m=`${location.origin}/api/vtile/${r.id}/ua/{z}/{x}/{y}.vmt`,s=Pe("pois",{source:{type:"vector",tiles:[m],minzoom:0,maxzoom:14},layer:{id:"pois",source:"pois","source-layer":r.id,style:(a=r.layer)==null?void 0:a.style}});n({center:[34.4924,48.45658],animate:!1});let i=null;function p(){i&&clearTimeout(i),i=setTimeout(()=>{i=null,d().catch(l=>console.error("Failed to update map layer",l))},300)}async function f(l){return(await fetch(`/api/gis-service/${r.id}/${l}`).then(u=>u.json())).rows}const c=["#440154","#482878","#3e4989","#31688e","#26828e","#1f9e89","#35b779","#6ece58","#b5de2b","#fde725"];async function d(){if(o.value){if(r.styleYaml.colorAttr){const h=await f(r.styleYaml.colorAttr);r.styleYaml.colors=h.reduce((u,y,g)=>({...u,[y.id.toString()]:c[g]}),{})}s.setStyle(r.styleYaml)}}return e.watch(()=>r.styleYaml,p),e.onBeforeUnmount(()=>{s.remove()}),(l,h)=>null}});function Ic(t,o){return t||o||null}function vc(t){const{map:o,ready:n}=ge(),r=e.ref(""),m=e.computed(()=>typeof t=="function"?t()??null:t??null);async function s(f,c){return f.getSource(c)?f.getSource(c):new Promise(d=>{const a=l=>{if(l.sourceId===c){const h=f.getSource(c);h&&(f.off("sourcedata",a),d(h))}};f.on("sourcedata",a)})}async function i(f,c){var g,b,k;const d=Ic(c,m.value);if(!d)return;await n();const a=o.value;if(!a)return;const l=a.getSource(d)??await s(a,d);if(!l)return;const h=Array.isArray(l.tiles)?l.tiles:Array.isArray((g=l.options)==null?void 0:g.tiles)?l.options.tiles:void 0;if(!h||h.length===0)return;const u=String(h[0]).split("?filter=")[0];if(!u)return;const y=f?`${u}?filter=${encodeURIComponent(f)}`:u;typeof l.setTiles=="function"?l.setTiles([y]):Array.isArray(l.tiles)?l.tiles=[y]:Array.isArray((b=l.options)==null?void 0:b.tiles)&&(l.options.tiles=[y]),r.value=f,(k=a.triggerRepaint)==null||k.call(a)}async function p(f){await i("",f)}return{filter:r,setFilter:i,clearFilter:p}}const Dc=F(e.defineComponent({__name:"MapFilter",props:{layerId:{},position:{},class:{}},emits:["change"],setup(t,{expose:o,emit:n}){const r=t,m=n,s=e.computed(()=>r.position??"top-right"),i=e.computed(()=>{if(s.value==="custom")return"";const u="absolute pointer-events-none z-30";switch(s.value){case"top-left":return`${u} top-4 left-4`;case"bottom-left":return`${u} bottom-4 left-4`;case"bottom-right":return`${u} bottom-4 right-4`;default:return`${u} top-4 right-4`}}),p=e.computed(()=>[i.value,r.class].filter(Boolean).join(" ")),f=()=>r.layerId??null,{setFilter:c,clearFilter:d,filter:a}=vc(f);async function l(u){await c(u),m("change",u)}async function h(u){await d(u),m("change","")}return e.watch(()=>r.layerId,u=>{u&&(a.value?c(a.value,u):d(u))}),o({apply:l,clear:h,filter:a}),(u,y)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(p.value)},[e.renderSlot(u.$slots,"default",{applyFilter:l,clearFilter:h,filter:e.unref(a)})],2))}}),[["__scopeId","data-v-54fdbad9"]]),Ac={class:"flex h-screen bg-gradient-to-br from-slate-50 to-white"},Mc={class:"flex-1 relative overflow-hidden"},Tc={class:"absolute top-0 left-0 w-full z-20"},zc={class:"flex items-center justify-between bg-white/80 backdrop-blur border-b border-gray-200 px-6 py-3 shadow-sm gap-4"},Pc={class:"flex items-center gap-3"},Uc={class:"font-semibold text-lg text-gray-800 line-clamp-1"},Oc={class:"text-xs text-gray-500 truncate"},qc=["title"],Rc={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]"},Hc={class:"relative w-full h-full"},Wc={class:"absolute top-4 left-4 z-20"},Zc={class:"absolute bottom-4 left-4 z-20"},Yc={class:"w-[650px] bg-white border-l border-gray-100 flex flex-col overflow-hidden shadow-lg"},Gc={class:"flex-1 flex flex-col h-full"},Jc={class:"px-3 pt-3 pb-2 border-b border-gray-100"},Kc={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"},Qc=["aria-selected","aria-controls","id","tabindex","onClick"],Xc={class:"leading-none"},ed={class:"flex flex-col flex-1 overflow-y-hidden p-3"},td={__name:"service",setup(t){const o=ye.useRoute(),n=ye.useRouter(),r=o.params.id,m=e.ref(null),s=e.ref([]),i=e.ref(null),p=e.ref(""),f=e.ref([]),c=e.ref([]),d=e.computed(()=>{var g,b;return((g=i.value)==null?void 0:g.id)??((b=i.value)==null?void 0:b.service_id)??null}),a=[{key:"style",label:"Style",icon:xi},{key:"popup",label:"Popup",icon:ji},{key:"filter",label:"Filter",icon:Ai},{key:"legend",label:"Legend",icon:Ei},{key:"card",label:"Card",icon:$i}],l=a.map(g=>g.key),h=e.ref("style");e.onMounted(async()=>{const g=o.query.tab;g&&l.includes(g)&&(h.value=g),await u()}),e.watch(h,g=>{o.query.tab!==g&&n.replace({query:{...o.query,tab:g}})}),e.watch(()=>o.query.tab,g=>{g&&l.includes(g)&&h.value!==g&&(h.value=g)});const u=async()=>{var g,b;try{const k=await fetch(`/api/gis-service/${r}`);if(!k.ok)throw new Error(`${k.status}`);const B=await k.json();s.value=B||{},f.value=[...B.popup],m.value=((g=B==null?void 0:B.tokens)==null?void 0:g.edit)||null,i.value=B||null,p.value=B.style||"",f.value=Array.isArray((b=i.value)==null?void 0:b.popup)?[...i.value.popup]:[]}catch(k){console.error("Failed to fetch map info",k)}try{const B=await(await fetch(`/api/data/gis.services.table/${r}`)).json()}catch(k){console.error("Failed to fetch map info",k)}};e.watch(()=>{var g;return(g=i.value)==null?void 0:g.style},g=>{g?typeof g=="string"?p.value=g:p.value=JSON.parse(JSON.stringify(g)):p.value=""},{deep:!0});const y={style:Ui,popup:nc,legend:rc,card:lc,filter:ac};return(g,b)=>{var k,B,j,N;return e.openBlock(),e.createElementBlock("div",Ac,[e.createElementVNode("div",Mc,[e.createElementVNode("div",Tc,[e.createElementVNode("div",zc,[e.createElementVNode("div",Pc,[e.createElementVNode("button",{onClick:b[0]||(b[0]=V=>g.$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"},[...b[4]||(b[4]=[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",Uc,e.toDisplayString((k=i.value)==null?void 0:k.name),1),e.createElementVNode("div",Oc," Сервіс: "+e.toDisplayString((B=i.value)==null?void 0:B.service_key),1)])]),e.createElementVNode("div",{class:"max-w-xl text-xs text-gray-600 truncate",title:(j=i.value)==null?void 0:j.description},e.toDisplayString((N=i.value)==null?void 0:N.description),9,qc)])]),e.createElementVNode("div",Rc,[e.createElementVNode("div",Hc,[e.createVNode(ic,null,{default:e.withCtx(()=>{var V,z,O;return[(V=i.value)!=null&&V.service_id?(e.openBlock(),e.createBlock(jc,{key:0,id:(z=i.value)==null?void 0:z.service_id,layer:i.value,"style-yaml":p.value},null,8,["id","layer","style-yaml"])):e.createCommentVNode("",!0),d.value?(e.openBlock(),e.createBlock(Dc,{key:1,"layer-id":d.value},null,8,["layer-id"])):e.createCommentVNode("",!0),e.createElementVNode("div",Wc,[e.createVNode(gc)]),e.createElementVNode("div",Zc,[e.createVNode(kc,{items:((O=i.value)==null?void 0:O.legend)||null},null,8,["items"])]),e.createVNode(Fc,{fields:f.value,"source-id":d.value},null,8,["fields","source-id"])]}),_:1})])])]),e.createElementVNode("div",Yc,[e.createElementVNode("div",Gc,[e.createElementVNode("div",Jc,[e.createElementVNode("div",Kc,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(a,V=>e.createElementVNode("button",{key:V.key,type:"button",role:"tab","aria-selected":h.value===V.key,"aria-controls":`radix-r0-content-${V.key}`,id:`radix-r0-trigger-${V.key}`,class:e.normalizeClass(["whitespace-nowrap 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 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===V.key?"bg-white shadow-sm text-gray-700":""]),tabindex:h.value===V.key?0:-1,onClick:z=>h.value=V.key},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(V.icon),{class:"h-3.5 w-3.5 mb-0.5"})),e.createElementVNode("span",Xc,e.toDisplayString(V.label),1)],10,Qc)),64))])]),e.createElementVNode("div",ed,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(y[h.value]),{"map-info":i.value,token:d.value,fields:s.value.fields,"filter-fields":s.value.filters,"style-yaml":p.value,"onUpdate:styleYaml":b[1]||(b[1]=V=>p.value=V),"popup-fields":f.value,"onUpdate:popupFields":b[2]||(b[2]=V=>f.value=V),"filter-scheme":c.value,"onUpdate:filterScheme":b[3]||(b[3]=V=>c.value=V),onUpdate:u},null,40,["map-info","token","fields","filter-fields","style-yaml","popup-fields","filter-scheme"]))])])])])}}};function od(t){t.component("MapCustom",Be)}W.MapCustom=Be,W.Register=hi,W.Service=td,W.default=Be,W.install=od,Object.defineProperties(W,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengis/gis",
3
- "version": "0.1.80",
3
+ "version": "0.1.81",
4
4
  "type": "module",
5
5
  "author": "Softpro",
6
6
  "main": "./dist/index.js",