@opengis/form 0.0.162 → 0.0.163

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- (function(ye,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@opengis/core"),require("lucide-vue-next")):typeof define=="function"&&define.amd?define(["exports","vue","@opengis/core","lucide-vue-next"],e):(ye=typeof globalThis<"u"?globalThis:ye||self,e(ye.FormBuilder={},ye.Vue,ye.OpenGISCore,ye.lucide))})(this,function(ye,e,fe,H){"use strict";const Bo=e.defineComponent({__name:"vs-info-tooltip",props:{text:{}},setup(o){const t=o,n=e.ref(!1),r=e.ref({top:"0px",left:"0px"});function l(s){if(!t.text)return;const i=s.currentTarget.getBoundingClientRect();r.value={top:`${i.bottom+4}px`,left:`${Math.min(i.left,window.innerWidth-230)}px`},n.value=!0}function a(){n.value=!1}return(s,i)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("span",{class:"inline-flex items-center",onMouseenter:l,onMouseleave:a},[e.renderSlot(s.$slots,"default",{},()=>[e.createVNode(e.unref(H.Info),{class:"h-4 w-4 text-gray-400 cursor-help"})])],32),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[n.value&&s.text?(e.openBlock(),e.createElementBlock("div",{key:0,style:e.normalizeStyle(r.value),class:"fixed z-[9999] max-w-xs p-2 bg-gray-900 text-white text-xs rounded-lg shadow-lg pointer-events-none"},e.toDisplayString(s.text),5)):e.createCommentVNode("",!0)]))],64))}}),Qr={class:"w-full relative"},el={key:0,class:"text-[14px] font-medium text-gray-900 mb-2 flex items-center gap-1"},tl={class:"opacity-100"},nl={key:0,class:"text-red-500 text-[14px]"},ol={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},rl=e.defineComponent({__name:"vs-layout-default",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(o){const t=o,n=e.computed(()=>typeof t.item?.label=="string"&&t.item.label?t.item.label:t.item?.ua||t.label||t.ua),r=e.computed(()=>!!n.value),l=e.computed(()=>!!t.item?.rules?.includes("required")),a=e.computed(()=>t.item?.info||"");return(s,i)=>(e.openBlock(),e.createElementBlock("div",Qr,[r.value?(e.openBlock(),e.createElementBlock("div",el,[e.createElementVNode("span",tl,e.toDisplayString(n.value),1),l.value?(e.openBlock(),e.createElementBlock("span",nl,"*")):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createBlock(Bo,{key:1,text:a.value},null,8,["text"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(s.$slots,"default",e.mergeProps(s.$attrs,{class:{"opacity-60":s.item.disabled}})),s.error?(e.openBlock(),e.createElementBlock("span",ol,e.toDisplayString(s.error),1)):e.createCommentVNode("",!0)]))}}),ll={class:"w-full relative flex flex-row items-center gap-2"},al={key:0,class:"text-red-500 text-[14px]"},sl={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},il=e.defineComponent({__name:"vs-layout-horizontal",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{default:()=>({container:12,label:3})}},setup(o){const t=o,n=e.computed(()=>t.item?.label||t.label||t.ua),r=e.computed(()=>t.item?.info||""),l=e.computed(()=>t.columns??{container:12,label:3}),a=e.computed(()=>{const{container:d,label:u}=l.value;return!d||d<=0?0:Math.min(Math.max(u??0,0),d)/d}),s=e.computed(()=>t.item?.type==="html"||a.value<=0?!1:!!n.value),i=e.computed(()=>{if(!s.value)return{};const d=`${a.value*100}%`;return{flexBasis:d,maxWidth:d}}),c=e.computed(()=>{const{container:d,label:u}=l.value;if(!d||d<=0)return{};if(t.item?.type==="html")return{flexBasis:"100%",maxWidth:"100%"};if(!s.value)return{flexBasis:"100%",maxWidth:"100%"};const p=Math.max(d-Math.max(u??0,0),0)/d;if(!p)return{};const h=`${p*100}%`;return{flexBasis:h,maxWidth:h}});return(d,u)=>(e.openBlock(),e.createElementBlock("div",ll,[s.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"text-sm text-gray-900 font-medium flex shrink-0 items-center gap-1",style:e.normalizeStyle(i.value)},[e.createTextVNode(e.toDisplayString(n.value)+" ",1),d.item?.rules?.includes("required")&&n.value?(e.openBlock(),e.createElementBlock("span",al,"*")):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createBlock(Bo,{key:1,text:r.value},null,8,["text"])):e.createCommentVNode("",!0)],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"flex-1 min-w-0",style:e.normalizeStyle(c.value)},[e.renderSlot(d.$slots,"default",e.normalizeProps(e.guardReactiveProps(d.$attrs)))],4),d.error?(e.openBlock(),e.createElementBlock("span",sl,e.toDisplayString(d.error),1)):e.createCommentVNode("",!0)]))}}),cl={class:"w-full relative"},dl={key:0,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},ul=e.defineComponent({__name:"vs-layout-inline",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",cl,[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(t.$attrs))),t.error?(e.openBlock(),e.createElementBlock("span",dl,e.toDisplayString(t.error),1)):e.createCommentVNode("",!0)]))}}),pl={class:"flex-1 min-w-0"},fl={key:0,class:"text-sm font-medium text-slate-700 dark:text-slate-200 flex items-center gap-1"},ml={class:"truncate"},hl={key:0,class:"text-red-500 text-[14px]"},gl=["innerHTML"],yl={key:0,class:"mt-1 text-xs text-red-500"},bl={default:rl,horizontal:il,inline:ul,settings:e.defineComponent({__name:"vs-layout-settings",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(o){const t=o,n=e.ref("uk");e.computed(()=>(t.item??{})?.[n.value]??t.ua??t.label??"");const r=e.computed(()=>t.item?.description??""),l=e.computed(()=>Array.isArray(t.item?.rules)&&t.item.rules.includes("required")),a=e.computed(()=>(typeof t.error=="string"?t.error:"")??""),s=()=>{const i=typeof localStorage<"u"?localStorage.getItem("locale"):null;n.value=i||"uk"};return e.onMounted(()=>{try{typeof localStorage<"u"&&localStorage.locale&&(n.value=localStorage.locale)}catch{}window.addEventListener("storage",s)}),e.onUnmounted(()=>{window.removeEventListener("storage",s)}),(i,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["w-full relative",{"opacity-60":i.item?.disabled}])},[e.createElementVNode("div",{class:e.normalizeClass(["gap-2 md:flex-row md:items-center md:justify-between",[["switcher","native-select"].includes(i.item.type)?"flex flex-col":""]])},[e.createElementVNode("div",pl,[i.ua||i.label?(e.openBlock(),e.createElementBlock("p",fl,[e.createElementVNode("span",ml,e.toDisplayString(i.item[n.value]||i.ua||i.label),1),l.value?(e.openBlock(),e.createElementBlock("span",hl,"*")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createElementBlock("p",{key:1,class:"text-xs text-slate-500 dark:text-slate-400",innerHTML:r.value},null,8,gl)):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:e.normalizeClass(["w-full",["select","native-select"].includes(i.item.type)?"md:w-[30%]":"md:w-auto"])},[e.renderSlot(i.$slots,"default",e.normalizeProps(e.guardReactiveProps(i.$attrs)))],2)],2),a.value?(e.openBlock(),e.createElementBlock("p",yl,e.toDisplayString(a.value),1)):e.createCommentVNode("",!0)],2))}})};function Oe(o){return{inputClass:e.computed(()=>{const n=`disabled:opacity-50 disabled:cursor-not-allowed outline-none focus:ring-2 focus:ring-ring focus:ring-${o?.primaryColor||"blue"}-500 border border-solid border-stone-200 rounded-md text-sm text-stone-800 placeholder:text-stone-400 `;return o?.size==="sm"?`${n}h-[32px]`:`${n}h-[38px]`})}}const kl=["placeholder","disabled"],xl=e.defineComponent({__name:"vs-input-password",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=Oe(t.style),r=e.useModel(o,"modelValue"),l=e.computed(()=>!!t.disabled),a=e.computed(()=>t.placeholder??"");return(s,i)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"password","onUpdate:modelValue":i[0]||(i[0]=c=>r.value=c),placeholder:a.value,disabled:l.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n),{"!border-red-600":s.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,kl)),[[e.vModelText,r.value]])}}),wl=["placeholder","disabled","maxlength","minlength"],zt=e.defineComponent({__name:"vs-input-text",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=Oe(t.style),r=e.useModel(o,"modelValue"),l=e.computed(()=>!!t.disabled),a=e.computed(()=>t.placeholder??""),s=e.computed(()=>t.maxlength??void 0),i=e.computed(()=>t.minlength??void 0);function c(){typeof r.value=="string"&&(r.value=r.value.trim())}return(d,u)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"text","onUpdate:modelValue":u[0]||(u[0]=p=>r.value=p),placeholder:a.value,disabled:l.value,maxlength:s.value,minlength:i.value,onBlur:c,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[d.customClass,e.unref(n),{"!border-red-600":d.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,wl)),[[e.vModelText,r.value]])}}),_l=["step","placeholder","disabled","min","max"],Vo=e.defineComponent({__name:"vs-input-number",props:e.mergeModels({style:{type:Object,default:()=>({})},placeholder:{type:String,default:""},disabled:{type:Boolean,default:!1},min:{type:Number,default:void 0},max:{type:Number,default:void 0},step:{type:[Number,String],default:void 0}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=Oe(t.style),r=e.useAttrs(),l=e.useModel(o,"modelValue"),a=e.computed(()=>!!t.disabled),s=u=>{if(u==null||u==="")return;const p=typeof u=="string"?u.trim().replace(",","."):u,h=Number(p);return Number.isFinite(h)?h:void 0},i=e.computed(()=>s(t.min??r.min)),c=e.computed(()=>s(t.max??r.max)),d=e.computed(()=>{if(t.step!==void 0&&t.step!==null&&t.step!=="")return t.step;const u=r.step;return typeof u=="number"||typeof u=="string"?u:"any"});return(u,p)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"number",step:d.value,"onUpdate:modelValue":p[0]||(p[0]=h=>l.value=h),placeholder:o.placeholder,disabled:a.value,class:e.normalizeClass(["py-1.5 px-3 block w-full bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"},min:i.value,max:c.value},null,10,_l)),[[e.vModelText,l.value]])}}),fn=o=>!!String(o??"").trim(),Vt=o=>o?.color?String(o.color):"",Wt=o=>{const t=o?.icon;if(typeof t=="string")return t;const n=o?.imgUrl;return typeof n=="string"?n:""},Gt=o=>{const t=o?.icon;return t&&typeof t!="string"?t:null},Cl={class:"flex items-center gap-[4px]"},vl=["value","id","disabled"],El=["for"],Bl=["innerHTML"],Vl={key:1,class:"text-[14px] text-gray-700 flex items-center gap-2 dark:text-neutral-400"},Sl=["src"],$l=e.defineComponent({__name:"vs-checkbox-default",props:{value:{default:""},label:{default:""},html:{default:""},disabled:{type:Boolean,default:!1},id:{},modelValue:{default:""},info:{},error:{},option:{default:null}},emits:["update:modelValue"],setup(o,{emit:t}){const n=t,r=o,l=e.computed({get:()=>r.modelValue,set:k=>n("update:modelValue",k)}),a=e.computed(()=>!!r.disabled),s=e.computed(()=>Wt(r.option)),i=e.computed(()=>Gt(r.option)),c=e.computed(()=>Vt(r.option)),d=e.computed(()=>!!(c.value&&!s.value&&!i.value)),u=e.computed(()=>!!(s.value&&c.value)),p=e.computed(()=>c.value?{color:c.value}:void 0),h=e.computed(()=>{if(!(!s.value||!c.value))return{backgroundColor:c.value,WebkitMaskImage:`url(${s.value})`,maskImage:`url(${s.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(k,m)=>(e.openBlock(),e.createElementBlock("div",Cl,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",value:k.value,"onUpdate:modelValue":m[0]||(m[0]=g=>l.value=g),class:e.normalizeClass(["shrink-0 border border-solid hidden border-gray-700 w-3.5 h-3.5 rounded text-blue-600 focus:ring-offset-0 dark:bg-neutral-800 dark:border-neutral-700 cursor-pointer",{"!cursor-not-allowed":a.value}]),id:k.id,disabled:a.value},null,10,vl),[[e.vModelCheckbox,l.value]]),e.createElementVNode("label",{for:k.id,class:e.normalizeClass(["flex flex-1 checkbox-label items-center gap-x-2 cursor-pointer text-sm text-gray-800 dark:text-neutral-300",{"!cursor-not-allowed":a.value}])},[e.createElementVNode("div",{class:e.normalizeClass(["h-[16px] text-white w-[16px] flex items-center justify-center shrink-0 border rounded",[l.value?"bg-blue-600 border-blue-600":"bg-white border-gray-600",k.error?"border-red-600":""]])},[e.createVNode(e.unref(H.Check),{class:"h-4 w-4"})],2),k.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:k.html},null,8,Bl)):(e.openBlock(),e.createElementBlock("span",Vl,[d.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:c.value})},null,4)):e.createCommentVNode("",!0),u.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(h.value)},null,4)):s.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:s.value,alt:"icon"},null,8,Sl)):i.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(p.value)},null,8,["style"])):e.createCommentVNode("",!0),e.renderSlot(k.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(k.label),1)])]))],10,El)]))}}),Nl=["name","value","disabled"],Al=["innerHTML"],Ml={key:1,class:"flex items-center gap-[6px] text-[14px]"},Fl={key:2,class:"text-[16px] inline-flex items-center justify-center"},Dl=["src"],Tl=e.defineComponent({__name:"vs-checkbox-buttons",props:{value:{type:[String,Number,Boolean],default:""},label:{default:""},html:{default:""},modelValue:{default:""},disabled:{type:Boolean},id:{},icon:{},imgUrl:{},style:{},option:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,l=e.computed({get:()=>n.modelValue,set:g=>{r("update:modelValue",g)}}),a=e.computed(()=>Array.isArray(l.value)?l.value.includes(n.value):l.value===!0||l.value===n.value),s=e.computed(()=>n.style?.size==="xs"?"p-1.5 text-xs":n.style?.size==="lg"?"p-3.5 text-[20px]":"p-2.5 text-xs"),i=e.computed(()=>({...n.option??{},icon:n.option?.icon??n.icon,imgUrl:n.option?.imgUrl??n.imgUrl,color:n.option?.color})),c=e.computed(()=>Wt(i.value)),d=e.computed(()=>Gt(i.value)),u=e.computed(()=>Vt(i.value)),p=e.computed(()=>!!(u.value&&!c.value&&!d.value)),h=e.computed(()=>!!(c.value&&u.value)),k=e.computed(()=>u.value?{color:u.value}:void 0),m=e.computed(()=>{if(!(!c.value||!u.value))return{backgroundColor:u.value,WebkitMaskImage:`url(${c.value})`,maskImage:`url(${c.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(g,y)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["group relative flex justify-center items-center gap-x-3 text-center bg-white text-gray-800 ring-ring ring-2 cursor-pointer rounded-lg",[s.value,a.value?"ring-blue-500":"border border-gray-200 ring-transparent"]])},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",class:"hidden",name:g.id,value:g.value,"onUpdate:modelValue":y[0]||(y[0]=C=>l.value=C),disabled:g.disabled},null,8,Nl),[[e.vModelCheckbox,l.value]]),g.html?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-full",innerHTML:g.html},null,8,Al)):(e.openBlock(),e.createElementBlock("span",Ml,[p.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:u.value})},null,4)):e.createCommentVNode("",!0),h.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(m.value)},null,4)):c.value||d.value?(e.openBlock(),e.createElementBlock("span",Fl,[c.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:c.value,width:"16",height:"16",alt:"icon"},null,8,Dl)):d.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),{key:1,class:"h-4 w-4",style:e.normalizeStyle(k.value)},null,8,["style"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(g.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(g.label),1)])]))],2))}}),Ll={class:"flex items-center"},qn=e.defineComponent({__name:"vs-input-checkbox-item",props:{value:{default:""},label:{default:""},labelHtml:{default:""},disabled:{type:Boolean,default:!1},view:{default:"default"},modelValue:{type:[Boolean,Array],default:!1},icon:{},imgUrl:{},slots:{},option:{},style:{},error:{default:""}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,l=`radio-${Math.floor(Math.random()*1e4)}`,a=e.computed({get:()=>Array.isArray(n.modelValue)?Array.isArray(n.modelValue)&&n.modelValue.includes(n.value):n.modelValue,set:i=>{if(Array.isArray(n.modelValue)){let c=[...n.modelValue];i?c.includes(n.value)||c.push(n.value):c=c.filter(d=>d!==n.value),r("update:modelValue",c)}else r("update:modelValue",i)}}),s=e.ref(`vs-checkbox-${n.view||"default"}`);return(i,c)=>(e.openBlock(),e.createElementBlock("div",Ll,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value==="vs-checkbox-buttons"?e.unref(Tl):e.unref($l)),{value:i.value,label:i.label,html:i.labelHtml,info:i.option?.info,disabled:i.disabled,modelValue:a.value,"onUpdate:modelValue":c[0]||(c[0]=d=>a.value=d),id:l,icon:i.icon,imgUrl:i.imgUrl,option:i.option,style:e.normalizeStyle(i.style),error:i.error},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.label),1)]),_:1},8,["value","label","html","info","disabled","modelValue","icon","imgUrl","option","style","error"]))]))}}),Il={key:0,class:"flex items-start gap-x-1"},Rl={key:0,class:"text-red-500 text-[14px]"},Ol=["title"],Pl=["disabled"],Kn=e.defineComponent({__name:"vs-input-switcher",props:e.mergeModels({rules:{default:()=>[]},view:{default:"checkbox"},label:{default:""},i:{default:""},text:{default:""},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue");return(r,l)=>t.view==="checkbox"?(e.openBlock(),e.createElementBlock("div",Il,[e.createVNode(qn,{modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=a=>n.value=a),error:r.error||""},null,8,["modelValue","error"]),r.rules?.includes("required")?(e.openBlock(),e.createElementBlock("span",Rl,"*")):e.createCommentVNode("",!0),r.i?(e.openBlock(),e.createElementBlock("button",{key:1,class:"cursor-pointer",title:r.i,onClick:l[1]||(l[1]=e.withModifiers(()=>{},["prevent"]))},[e.createVNode(e.unref(H.Info),{class:"h-4 w-4 text-gray-500"})],8,Ol)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:e.normalizeClass(["inline-flex h-5 w-9 shrink-0 px-[2px] cursor-pointer items-center rounded-full shadow-sm disabled:cursor-not-allowed disabled:opacity-50",[n.value?`bg-${r.style?.primaryColor||"blue"}-500`:"bg-stone-200",r.customClass]]),disabled:r.disabled,onClick:l[2]||(l[2]=a=>n.value=!n.value)},[e.createElementVNode("span",{"data-state":"checked",class:e.normalizeClass(["pointer-events-none block h-4 w-4 rounded-full bg-white shadow-lg ring-0 transition-transform",[n.value?"translate-x-4":"translate-x-0"]])},null,2)],10,Pl))}}),zl=["id","innerHTML"],Wn=e.defineComponent({__name:"vs-input-static",props:{text:{default:""},html:{default:""},style:{},customClass:{default:""},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",{id:t.name,class:e.normalizeClass(["text-gray-900",t.customClass]),innerHTML:t.html?t.html:t.text},null,10,zl))}}),jl=["placeholder","disabled","name"],mn=e.defineComponent({__name:"vs-input-mask",props:e.mergeModels({name:{},mask:{default:""},unmask:{type:Boolean,default:!1},placeholder:{default:"_"},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=Oe(t.style),r=e.useModel(o,"modelValue"),l=e.ref(null);let a=null;function s(i){const c={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},d=new Set;let u=!1;for(let h=0;h<i.length;h+=1){const k=i[h];k==="{"?u=!0:k==="}"?u=!1:u&&d.add(k)}const p={};return Object.keys(c).forEach(h=>{d.has(h)||(p[h]=c[h])}),{mask:i,definitions:p,lazy:!1}}return e.onMounted(async()=>{if(l.value){const{default:i}=await Promise.resolve().then(()=>Pn),c=s(t.mask||"");a=i(l.value,c),a.on("accept",()=>{r.value=t.unmask?a.unmaskedValue:a.value}),a.on("complete",()=>{r.value=t.unmask?a.unmaskedValue:a.value}),a.value=r.value!=null?String(r.value):""}}),e.onBeforeUnmount(()=>{a?.destroy()}),e.watch(()=>t.mask,i=>{if(a){const c=s(i||"");a.updateOptions(c)}}),e.watch(r,i=>{a&&a.unmaskedValue!==i&&(a.value=i!=null?String(i):"")}),(i,c)=>(e.openBlock(),e.createElementBlock("input",{type:"text",ref_key:"inputEl",ref:l,placeholder:i.placeholder,disabled:i.disabled,name:i.name,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"}},null,10,jl))}}),Ul={class:"relative w-full bg-white rounded-lg"},Hl={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},ql=["placeholder","disabled"],Gn=e.defineComponent({__name:"vs-input-email",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=Oe(t.style),r=e.useModel(o,"modelValue");return(l,a)=>(e.openBlock(),e.createElementBlock("div",Ul,[e.createElementVNode("div",Hl,[e.createVNode(e.unref(H.Mail),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.withDirectives(e.createElementVNode("input",{type:"email","onUpdate:modelValue":a[0]||(a[0]=s=>r.value=s),placeholder:l.placeholder,disabled:l.disabled,class:e.normalizeClass(["!pl-8 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n),{"!border-red-600":l.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,ql),[[e.vModelText,r.value]])]))}}),xt="+99(999)-999-99-99";function St(o){if(!o?.trim())return 0;const t=new Set(["9","0","a","A","*"]);let n=!1,r=0;for(let l=0;l<o.length;l+=1){const a=o[l];if(a==="{"){n=!0;continue}if(a==="}"){n=!1;continue}!n&&t.has(a)&&(r+=1)}return r}const Kl={class:"relative w-full bg-white rounded-lg"},Wl={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] pointer-events-none"},Gl=["name","placeholder","disabled","pattern"],Yn=e.defineComponent({__name:"vs-input-tel",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{},mask:{default:xt}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.computed(()=>`^\\+[1-9]\\d{${(St(t.mask||xt)||St(xt))-1}}$`),{inputClass:r}=Oe(t.style),l=e.useModel(o,"modelValue"),a=e.ref(null);let s=null;function i(u){const p={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},h=new Set;let k=!1;for(let g=0;g<u.length;g+=1){const y=u[g];y==="{"?k=!0:y==="}"?k=!1:k&&h.add(y)}const m={};return Object.keys(p).forEach(g=>{h.has(g)||(m[g]=p[g])}),{mask:u,definitions:m,lazy:!1,disabled:t.disabled}}function c(u){if(u==null||u==="")return"";const p=String(u).trim();return p?p.replace(/\D/g,""):""}function d(){if(!s)return;const u=s.unmaskedValue??"";l.value=u?`+${u}`:""}return e.onMounted(async()=>{if(!a.value)return;const{default:u}=await Promise.resolve().then(()=>Pn),p=i(t.mask||"");s=u(a.value,p),s.on("accept",d),s.on("complete",d);const h=c(l.value);s.unmaskedValue=h}),e.onBeforeUnmount(()=>{s?.destroy(),s=null}),e.watch(()=>t.mask,u=>{s&&s.updateOptions(i(u||""))}),e.watch(()=>t.disabled,u=>{s&&s.updateOptions({disabled:u})}),e.watch(l,u=>{if(!s)return;const p=c(u);s.unmaskedValue!==p&&(s.unmaskedValue=p)}),(u,p)=>(e.openBlock(),e.createElementBlock("div",Kl,[e.createElementVNode("div",Wl,[e.createVNode(e.unref(H.Phone),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.createElementVNode("input",{ref_key:"inputEl",ref:a,type:"tel",name:u.name,placeholder:u.placeholder,disabled:u.disabled,pattern:n.value,title:"Міжнародний номер (E.164), наприклад +380XXXXXXXXX",autocomplete:"tel",class:e.normalizeClass(["!pl-10 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(r),{"!border-red-600":u.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Gl)]))}}),Yl=["value","disabled"],Xl=["innerHTML"],Zl={key:1,class:"flex items-center gap-2"},Jl=["src"],Ql={class:"text-[13px] text-gray-700"},ea=e.defineComponent({__name:"vs-input-radio-default",props:e.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{},html:{default:""},option:{default:null}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>!!t.disabled),l=e.computed(()=>Wt(t.option)),a=e.computed(()=>Gt(t.option)),s=e.computed(()=>Vt(t.option)),i=e.computed(()=>!!(s.value&&!l.value&&!a.value)),c=e.computed(()=>!!(l.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),u=e.computed(()=>{if(!(!l.value||!s.value))return{backgroundColor:s.value,WebkitMaskImage:`url(${l.value})`,maskImage:`url(${l.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(p,h)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex items-center gap-0",[t.customClass,r.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[0]||(h[0]=k=>n.value=k),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,Yl),[[e.vModelRadio,n.value]]),e.createElementVNode("span",{class:e.normalizeClass(["w-[16px] shrink-0 h-[16px] border rounded-full flex items-center justify-center mr-[10px]",[`border-${t.style?.primaryColor||"blue"}-500`,r.value?"opacity-50 cursor-not-allowed":""]])},[n.value==t.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["w-[12px] h-[12px] shrink-0 rounded-full",[`bg-${t.style?.primaryColor||"blue"}-500`]])},null,2)):e.createCommentVNode("",!0)],2),t.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:t.html},null,8,Xl)):(e.openBlock(),e.createElementBlock("div",Zl,[i.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:s.value})},null,4)):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(u.value)},null,4)):l.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:l.value,alt:"icon"},null,8,Jl)):a.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(d.value)},null,8,["style"])):e.createCommentVNode("",!0),e.createElementVNode("span",Ql,e.toDisplayString(t.text),1)]))],2))}}),ta=["value","disabled"],na=["innerHTML"],oa={key:1,class:"flex items-center gap-2"},ra=["src"],la={class:"text-[13px] text-gray-700"},aa={"vs-input-radio-default":ea,"vs-input-radio-buttons":e.defineComponent({__name:"vs-input-radio-buttons",props:e.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{},html:{default:""},option:{default:null}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>!!t.disabled),l=e.computed(()=>Wt(t.option)),a=e.computed(()=>Gt(t.option)),s=e.computed(()=>Vt(t.option)),i=e.computed(()=>!!(s.value&&!l.value&&!a.value)),c=e.computed(()=>!!(l.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),u=e.computed(()=>{if(!(!l.value||!s.value))return{backgroundColor:s.value,WebkitMaskImage:`url(${l.value})`,maskImage:`url(${l.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(p,h)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex h-full w-full items-center border rounded-lg px-2 py-1",[n.value==t.value?`ring-2 ring-ring ring-${t.style?.primaryColor||"blue"}-500`:"",t.customClass,r.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[0]||(h[0]=k=>n.value=k),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,ta),[[e.vModelRadio,n.value]]),t.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:t.html},null,8,na)):(e.openBlock(),e.createElementBlock("div",oa,[i.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:s.value})},null,4)):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(u.value)},null,4)):l.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:l.value,alt:"icon"},null,8,ra)):a.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(d.value)},null,8,["style"])):e.createCommentVNode("",!0),e.createElementVNode("span",la,e.toDisplayString(t.text),1)]))],2))}})},So=o=>Array.isArray(o)?o:Array.isArray(o?.data)?o.data:[],$o=o=>{const t=o.host??"",n=o.prefix??"api",r=o.api??`/${n}/suggest/${o.data}`;return`${t}${r}`},sa=o=>({fetchOptions:async(r="")=>{const l=o();if(!l.data)return l.options?[...l.options]:[];try{const a=new URLSearchParams;a.set("json","1"),r&&a.set("key",r),l.parentValue!==void 0&&l.parentValue!==null&&l.parentValue!==""&&a.set("parent",String(l.parentValue)),l.start===1&&a.set("start","1");const i=await(await fetch(`${$o(l)}?${a.toString()}`)).json();return So(i)}catch{return[]}},fetchOptionByValue:async r=>{if(r==null||r==="")return null;const l=o();if(!l.data)return(l.options??[]).find(s=>s?.id?.toString()===String(r))??null;try{const a=new URLSearchParams;a.set("json","1"),a.set("val",String(r)),l.parentValue!==void 0&&l.parentValue!==null&&l.parentValue!==""&&a.set("parent",String(l.parentValue)),l.start===1&&a.set("start","1");const i=await(await fetch(`${$o(l)}?${a.toString()}`)).json();return So(i)[0]??null}catch{return null}}}),hn=({props:o,formValues:t=null,watchParent:n=!0})=>{const r=e.ref([]),l=e.computed(()=>o.parent?t?.value?.[o.parent]?.toString?.()??null:null),{fetchOptions:a,fetchOptionByValue:s}=sa(()=>({data:o.data,options:o.options,api:o.api,prefix:o.prefix,host:o.host,start:o.start,parentValue:l.value})),i=async(c="")=>{const d=o.data?await a(c):o.options?[...o.options]:[];return r.value=d,r.value};return e.watch(()=>o.options,()=>{o.data||(r.value=o.options?[...o.options]:[])},{immediate:!0,deep:!0}),n&&e.watch(l,async()=>{o.data&&(r.value=await a())},{immediate:!1}),{optionsList:r,parentValue:l,fetchOptions:a,fetchOptionByValue:s,loadOptions:i}},ia=/\{\{\s*([^}]+?)\s*\}\}/g,ca=o=>(o?String(o):"").replace(/<[^>]*>/g,"").trim(),da=(o,t)=>t.split(".").reduce((n,r)=>n==null?n:n[r.trim()],o),gn=(o,t)=>{if(!o)return"";const n=(t??"").trim();return n?n.replace(ia,(r,l)=>{const a=String(l).trim(),s=o,c=(a.includes(".")?da(s,a):void 0)??s[a];return c!=null?String(c):""}):o.text??""},yn=(o,t)=>{if(!o)return"";const n=gn(o,t);return ca(n)||o.text||""},Xn=e.defineComponent({__name:"vs-input-radio",props:e.mergeModels({options:{},slot:{},data:{},api:{},prefix:{},host:{},start:{},parent:{},position:{default:"vertical"},view:{default:"default"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>aa[`vs-input-radio-${t.view}`]),l=e.computed(()=>t.slot??t?.optionTemplate??""),a=e.computed(()=>fn(l.value)),s=k=>gn(k,l.value),i=k=>yn(k,l.value),c=e.computed(()=>t.position==="horizontal"?"flex w-full flex-row flex-wrap gap-[10px]":"flex w-full flex-col gap-2"),d=e.computed(()=>{if(t.position==="horizontal"&&t.customClass?.includes("50%"))return{flex:"0 0 calc(50% - 5px)"}}),u=e.inject("values",null),{optionsList:p,loadOptions:h}=hn({props:t,formValues:u});return e.onMounted(async()=>{await h()}),(k,m)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(c.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(p),g=>(e.openBlock(),e.createElementBlock("div",{key:g?.id,class:e.normalizeClass(["flex items-stretch",k.position==="horizontal"?t.customClass:""]),style:e.normalizeStyle(d.value)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value),e.mergeProps({text:i(g),html:a.value?s(g):"",option:g,value:g.id.toString(),checked:n.value?.toString?.()===g.id?.toString?.(),"custom-class":k.position==="horizontal"?"":t.customClass,modelValue:n.value,"onUpdate:modelValue":m[0]||(m[0]=y=>n.value=y)},{ref_for:!0},k.$attrs),null,16,["text","html","option","value","checked","custom-class","modelValue"]))],6))),128))],2))}}),ua={key:1,class:"w-full flex flex-col gap-4"},pa={key:0,class:"text-sm font-medium text-muted-foreground my-2"},fa="Без категорії",ma=e.defineComponent({__name:"vs-input-checkbox",props:{options:{default:()=>[]},position:{default:"vertical"},slots:{default:null},slot:{},colSpan:{default:0},data:{},api:{},prefix:{},host:{},start:{},parent:{},view:{},group:{default:void 0},values:{default:()=>[]},style:{},customClass:{},disabled:{type:Boolean},modelValue:{default:!1},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,l=e.reactive({}),a=e.inject("values",null),{optionsList:s,loadOptions:i}=hn({props:{...n,options:n.options},formValues:a}),c=e.computed(()=>s.value),d=x=>x?.value||x?.id||x?.text||x,u=e.computed(()=>n.slot??n?.optionTemplate??""),p=e.computed(()=>fn(u.value)),h=x=>gn(x,u.value),k=x=>yn(x,u.value),m=x=>`lg:col-span-${x||12}`,g=e.computed(()=>[n.position==="vertical"?"flex flex-col":"",n.colSpan?"grid":"flex justify-start"]),y=x=>x==null||x===""?null:typeof x=="string"||typeof x=="number"?x:String(x),C=e.computed(()=>{if(!n.group)return[];const x=new Map;c.value.forEach(L=>{const E=L[n.group],S=y(E);x.has(S)||x.set(S,[]),x.get(S)?.push(L)});const w=[];n.values?.length&&n.values.forEach(L=>{const E=y(L);w.push(E)});const V=new Set,z=L=>{const E=x.get(L)||[];if(!E.length)return null;const S=L===null?"group-null":`group-${String(L)}`,N=L===null?fa:String(L);return V.add(L),{key:S,label:N,options:E}},X=[];return w.forEach(L=>{const E=z(L);E&&X.push(E)}),x.forEach((L,E)=>{if(V.has(E))return;const S=z(E);S&&X.push(S)}),X});return e.watch(()=>n.modelValue,x=>{if(typeof x=="boolean"&&c.value.length===1){const w=d(c.value[0]);l[w]=x}else if(Array.isArray(x)){const w=new Set(x);c.value.forEach(V=>{if(!V.disabled){const z=d(V);l[z]=w.has(z)}})}},{immediate:!0}),e.watch(l,()=>{if(!c.value.length){r("update:modelValue",null);return}const x=Object.entries(l).filter(([,w])=>w).map(([w])=>w);r("update:modelValue",x.length===0?[]:x)},{deep:!0}),e.onMounted(async()=>{if(await i(),typeof n.modelValue=="boolean"&&c.value.length===1){const x=d(c.value[0]);l[x]=n.modelValue}else if(Array.isArray(n.modelValue)){const x=new Set(n.modelValue);c.value.forEach(w=>{if(!w.disabled){const V=d(w);l[V]=x.has(V)}})}}),(x,w)=>n.group?(e.openBlock(),e.createElementBlock("div",ua,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.value,V=>(e.openBlock(),e.createElementBlock("div",{key:V.key,class:"flex flex-col gap-2"},[V.label?(e.openBlock(),e.createElementBlock("span",pa,e.toDisplayString(V.label),1)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-0 w-full gap-[12px]",g.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V.options,z=>(e.openBlock(),e.createBlock(qn,{modelValue:l[d(z)],"onUpdate:modelValue":X=>l[d(z)]=X,value:d(z),class:e.normalizeClass(m(x.colSpan)),disabled:n.disabled||z.disabled,label:k(z),labelHtml:p.value?h(z):"",key:`${V.key}-${d(z)}`,icon:z?.icon,imgUrl:z?.imgUrl,option:z,view:x.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2)]))),128))])):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["p-0 w-full gap-[10px]",g.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,V=>(e.openBlock(),e.createBlock(qn,{modelValue:l[d(V)],"onUpdate:modelValue":z=>l[d(V)]=z,value:d(V),class:e.normalizeClass(m(x.colSpan)),disabled:n.disabled||V.disabled,label:k(V),labelHtml:p.value?h(V):"",key:d(V),icon:V?.icon,imgUrl:V?.imgUrl,option:V,view:x.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2))}}),ke=(o,t)=>{const n=o.__vccOpts||o;for(const[r,l]of t)n[r]=l;return n},No=ke(ma,[["__scopeId","data-v-9056e0ec"]]),ha=["type","placeholder","disabled"],ga=e.defineComponent({__name:"vs-input-date1",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{},mode:{default:"date"}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o;function r(u){return u?n.mode==="datetime"?(u.includes("T")?u:null)||u+(u.includes(" ")?"":"T00:00"):u?.split(" ")[0]:null}const{inputClass:l}=Oe(n.style),a=t,s=e.computed({get:()=>r(n.modelValue),set:u=>a("update:modelValue",u)}),i=e.computed(()=>n.mode==="datetime"?"datetime-local":n.mode),c=e.computed(()=>!!n.disabled),d=e.computed(()=>n.placeholder??"");return(u,p)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:i.value,"onUpdate:modelValue":p[0]||(p[0]=h=>s.value=h),placeholder:d.value,disabled:c.value,ref:"date",class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[u.modelValue?"":"text-opacity-50",e.unref(l)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,ha)),[[e.vModelDynamic,s.value]])}}),ya=(o,t)=>{if(!t||!Object.keys(t).length)return o;const[n,r=""]=o.split("?"),l=new URLSearchParams(r);Object.entries(t).forEach(([s,i])=>{i==null||i===""||l.set(s,String(i))});const a=l.toString();return a?`${n}?${a}`:n},Ao=async(o,t={})=>{try{const n=new FormData;n.append("unique","true"),n.append("file",o);const{api:r,id:l="1",form:a="form",table:s="table",customParams:i}=t,c=r||`/file/upload/uploads?id=${l||""}&form=${a||""}&table=${s||""}`,d=ya(c,i);return(await fetch(d,{method:"POST",body:n}).then(p=>p.json()))?.result}catch(n){return fe.notify({type:"error",title:"Помилка!",message:"Сталась помилка під час завантаження файлу",position:"right-bottom"}),console.error("Сталась помилка завантаження файлу",n),null}},ba=async o=>{try{return await fetch(`file/delete${o}`),!0}catch(t){return console.error(t),!1}},Mo=async o=>{try{const t=await fetch(`/file/download${o}`);if(!t.ok)throw new Error(`Download failed with status ${t.status}`);const n=await t.blob(),l=(t.headers.get("content-disposition")||"").match(/filename\*?=(?:UTF-8''|")?([^\";]+)/i),a=l?.[1]?decodeURIComponent(l[1].replace(/"/g,"").trim()):"",s=o.split("/").filter(Boolean).pop()||"download",i=a||s,c=document.createElement("a");c.setAttribute("download",i),c.href=window.URL.createObjectURL(n),c.click(),window.URL.revokeObjectURL(c.href)}catch(t){console.error(t.message)}},ka=o=>{if(!o)return"";const t=o?.split(".");return t[t.length-1]},xa=o=>{const t=ka(o),n={imageFormat:["tiff","jpg","jpeg","png","svg","ico","webp"],sheetsFormat:["xls","csv","xlsx"],archivesFormat:["zip","rar"],textsFormat:["json","geojson","txt","yml","yaml","shp"],documentsFormat:["pdf"]};return n.imageFormat.includes(t)?"img":n.sheetsFormat.includes(t)?H.Table:n.textsFormat.includes(t)?H.FileCode:n.documentsFormat.includes(t)?H.FileText:n.archivesFormat.includes(t)?H.FileArchive:H.FileText},wa=["title"],_a={class:"absolute hidden top-0 right-0 flex items-center gap-x-2 w-full h-full justify-center"},Zn=ke(e.defineComponent({__name:"vs-input-file-list-item",props:e.mergeModels({format:{},multiple:{type:Boolean},max_size:{},api:{},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{value:{},valueModifiers:{},item:{},itemModifiers:{}}),emits:["update:value","update:item"],setup(o){const t=e.useModel(o,"value"),n=e.useModel(o,"item"),r=o,l=e.computed(()=>n.value?typeof n.value=="string"?n.value:n.value.file_path:""),a=c=>typeof c=="string"?c:c?.file_path||"",s=()=>{const c=l.value;ba(c),r.multiple&&Array.isArray(t.value)?t.value=t.value.filter(d=>a(d)!==c):t.value=""},i=()=>{l.value&&window.open(l.value,"_blank")};return(c,d)=>(e.openBlock(),e.createElementBlock("div",{title:l.value,class:"h-[120px] w-[120px] border text-gray-300 border-dashed border-[#CFD9E0] rounded-lg overflow-hidden relative item-file"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(xa)(l.value)),{src:l.value,alt:"file",class:"w-full h-full object-cover cursor-pointer",onClick:d[0]||(d[0]=u=>e.unref(Mo)(l.value))},null,8,["src"])),e.createElementVNode("div",_a,[e.createElementVNode("button",{type:"button",onClick:s,class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-red-500"},[e.createVNode(e.unref(H.Trash2),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:i,class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-emerald-600"},[e.createVNode(e.unref(H.Eye),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:d[1]||(d[1]=u=>e.unref(Mo)(l.value)),class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-blue-500"},[e.createVNode(e.unref(H.Download),{class:"w-4 h-4"})])])],8,wa))}}),[["__scopeId","data-v-89357cbb"]]),Ca={class:"flex items-center gap-x-2"},va=["accept","multiple","disabled"],Ea={key:1,class:"flex items-center flex-wrap gap-2"},Ba={key:1,class:"loader"},Va={key:1,class:"loader"},Fo=ke(e.defineComponent({__name:"vs-input-file",props:e.mergeModels({format:{},multiple:{type:Boolean},max_size:{},api:{},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["change"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=e.useModel(o,"modelValue"),l=t,a=e.computed(()=>{const x=r.value;return!n.multiple||!Array.isArray(x)?[]:x}),s=e.ref(null),i=e.ref(!1),c=e.inject("values"),d=e.computed(()=>n.format?n.format.split(",").map(x=>x.trim().toLowerCase()).filter(Boolean):[]),u=x=>{if(n.max_size&&x.size>n.max_size*1024*1024){const w=(x.size/1048576).toFixed(2);return fe.notify({type:"error",title:"Помилка!",message:`Файл "${x.name}" занадто великий. Максимальний розмір: ${n.max_size} МБ, розмір файлу: ${w} МБ`,position:"right-bottom"}),!1}return!0},p=x=>{if(!d.value.length)return!0;const w=`.${x.name.split(".").pop()?.toLowerCase()||""}`,V=d.value.includes(w);return V||fe.notify({type:"error",title:"Помилка!",message:`Неприпустимий формат файлу "${x.name}". Дозволені формати: ${d.value.join(", ")}`,position:"right-bottom"}),V},h=e.computed(()=>{const x={},w=[];if(!n.customParams?.length)return{params:x,missingSources:w};const V=c?.value??{};return n.customParams.forEach(z=>{if(!z)return;const[X,L]=z.split("="),E=X?.trim(),S=L?.trim();if(!E||!S)return;const N=V[S];if(N==null||N===""){w.push(S);return}x[E]=N}),{params:x,missingSources:w}}),k=()=>{const{params:x}=h.value;return{api:n.api,customParams:Object.keys(x).length?x:void 0}},m=()=>{const x=h.value.missingSources;if(!x.length)return!0;const w=x.join(", ");return fe.notify({type:"warning",title:"Заповніть поля",message:`Поля (${w}) необхідні для завантаження файлу`,position:"right-bottom"}),!1},g=x=>{fe.notify({type:"error",title:"Помилка завантаження",message:x||"Не вдалося завантажити файл. Спробуйте ще раз.",position:"right-bottom"})},y=()=>{n.disabled||i.value||m()&&s.value?.click()},C=async x=>{const{files:w}=x.target;if(!w||w.length===0)return;if(!m()){s.value&&(s.value.value="");return}const V=Array.from(w);if(n.max_size&&V.filter(L=>!u(L)).length>0){s.value&&(s.value.value="");return}if(V.filter(X=>!p(X)).length>0){s.value&&(s.value.value="");return}i.value=!0;try{if(n.multiple){const X=Array.from(w).map(async v=>await Ao(v,k())),L=await Promise.all(X),E=L.filter(v=>v?.file_path);if(E.length===0){g();return}E.length<L.length&&g("Деякі файли не вдалося завантажити. Перевірте їх та спробуйте знову.");const S=E.map(v=>v.file_path),N=Array.isArray(r.value)?r.value:[];r.value=[...N,...S],l("change",r.value)}else{const X=w[0],L=await Ao(X,k());if(!L?.file_path){g();return}const E=L.file_path;r.value=E,l("change",E)}}catch(X){const L=X?.message||void 0;g(L)}finally{i.value=!1,s.value&&(s.value.value="")}};return(x,w)=>(e.openBlock(),e.createElementBlock("div",Ca,[e.createElementVNode("input",{class:"hidden",ref_key:"fileInput",ref:s,type:"file",accept:n.format,multiple:x.multiple,onChange:C,disabled:i.value||x.disabled},null,40,va),!x.multiple&&r.value&&!Array.isArray(r.value)?(e.openBlock(),e.createBlock(Zn,{key:0,item:r.value,value:r.value,"onUpdate:value":w[0]||(w[0]=V=>r.value=V)},null,8,["item","value"])):x.multiple?(e.openBlock(),e.createElementBlock("div",Ea,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(V,z)=>(e.openBlock(),e.createBlock(Zn,{multiple:x.multiple,key:z,value:r.value,"onUpdate:value":w[1]||(w[1]=X=>r.value=X),item:V},null,8,["multiple","value","item"]))),128)),e.createElementVNode("div",{onClick:y,class:e.normalizeClass(["relative h-[120px] w-[120px] border text-gray-300 hover:text-blue-500 border-dashed border-[#CFD9E0] rounded-lg flex items-center justify-center transition-all duration-300",x.disabled||i.value?"opacity-50 cursor-not-allowed":"cursor-pointer hover:border-blue-500 hover:bg-blue-50"])},[i.value?(e.openBlock(),e.createElementBlock("div",Ba)):(e.openBlock(),e.createBlock(e.unref(H.Plus),{key:0,class:"h-4 w-4"}))],2)])):e.createCommentVNode("",!0),x.multiple?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:2,onClick:y,class:e.normalizeClass([x.disabled||i.value?"opacity-50 cursor-not-allowed":"cursor-pointer hover:border-blue-500","relative h-[120px] w-[120px] border text-gray-300 hover:text-blue-500 border-dashed border-gray-300 rounded-lg flex items-center justify-center cursor-pointer hover:border-blue-500 transition-all duration-300 hover:bg-blue-50"])},[i.value?(e.openBlock(),e.createElementBlock("div",Va)):(e.openBlock(),e.createBlock(e.unref(H.Plus),{key:0,class:"h-4 w-4"}))],2))]))}}),[["__scopeId","data-v-dda91e05"]]),Sa={class:"vs-input-file2 flex flex-col gap-4"},$a={class:"flex items-center gap-x-2"},Na=["accept","disabled"],Aa={key:0,class:"absolute inset-0 flex flex-col items-center justify-center gap-1 rounded-lg bg-white/90 text-xs font-medium text-slate-600"},Ma={key:0,class:"rounded-lg border border-[#CFD9E0] bg-white p-4 shadow-sm"},Fa={class:"flex items-center justify-between text-sm"},Da={class:"truncate pr-4"},Ta={class:"font-medium text-slate-800 truncate"},La={class:"text-slate-500"},Ia={class:"text-slate-500 whitespace-nowrap"},Ra={class:"mt-3 h-2 rounded-full bg-slate-100 overflow-hidden"},Oa={class:"mt-3 flex flex-wrap gap-2 text-sm"},Pa={key:0,class:"mt-2 text-sm text-rose-600"},za=e.defineComponent({__name:"vs-input-file2",props:e.mergeModels({format:{},max_size:{},api:{},chunkSize:{default:5*1024*1024},subdir:{default:""},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref(null),l=e.ref(null),a=e.ref(""),s=e.ref(0),i=e.ref(!1),c=e.ref(""),d=e.ref(null),u=e.inject("values"),p=e.computed(()=>t.format?t.format.split(",").map($=>$.trim().toLowerCase()).filter(Boolean):[]),h=e.computed(()=>!l.value||!l.value.size?0:Math.min(100,Math.round(s.value/l.value.size*100))),k=e.computed(()=>l.value?`${y(s.value)} / ${y(l.value.size)}`:""),m=e.computed(()=>t.disabled?"opacity-50 cursor-not-allowed":i.value?"cursor-default text-blue-500":"cursor-pointer hover:border-blue-500 hover:bg-blue-50 hover:text-blue-500"),g=()=>{t.disabled||i.value||V()&&r.value?.click()},y=$=>{if(!Number.isFinite($))return"0 B";const R=["B","KB","MB","GB"];let B=0,F=$;for(;F>=1024&&B<R.length-1;)F/=1024,B+=1;return`${F.toFixed(B===0?0:1)} ${R[B]}`},C=$=>{if(!t.max_size)return!0;const R=t.max_size*1024*1024;return $.size>R?(fe.notify({type:"error",title:"Файл занадто великий",message:`Максимальний розмір ${t.max_size} МБ`,position:"right-bottom"}),!1):!0},x=$=>{if(!p.value.length)return!0;const R=`.${$.name.split(".").pop()?.toLowerCase()||""}`;return p.value.includes(R)?!0:(fe.notify({type:"error",title:"Непідтримуваний формат",message:`Дозволені формати: ${p.value.join(", ")}`,position:"right-bottom"}),!1)},w=e.computed(()=>{const $={},R=[];if(!t.customParams?.length)return{params:$,missing:R};const B=u?.value??{};return t.customParams.forEach(F=>{if(!F)return;const[D,Z]=F.split("="),G=D?.trim(),ee=Z?.trim();if(!G||!ee)return;const le=B[ee];le==null||le===""?R.push(ee):$[G]=le}),{params:$,missing:R}}),V=()=>w.value.missing.length?(fe.notify({type:"warning",title:"Заповніть поля",message:`Потрібні значення: ${w.value.missing.join(", ")}`,position:"right-bottom"}),!1):!0,z=$=>{const R=$.target,B=R.files?.[0];if(B){if(!V()){R.value="";return}if(!C(B)||!x(B)){R.value="";return}l.value=B,s.value=0,a.value="",c.value=""}},X=async()=>{if(!l.value){g();return}try{c.value="";const $={id:a.value||"",fileName:l.value.name,subdir:t.subdir,size:l.value.size,...w.value.params},R=await fetch("/api/file/upload2/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify($)});if(!R.ok)throw new Error("Не вдалося ініціалізувати завантаження");const B=await R.json();a.value=B.id||a.value,s.value=B.uploaded||0,await L()}catch($){c.value=$?.message||"Помилка при старті завантаження"}},L=async()=>{if(!(!l.value||!a.value)){i.value=!0;try{for(;s.value<l.value.size;){const $=s.value,R=Math.min($+t.chunkSize,l.value.size),B=l.value.slice($,R);d.value=new AbortController;const F=await fetch(`/api/file/upload2/${a.value}`,{method:"PATCH",headers:{"Content-Range":`bytes ${$}-${R-1}/${l.value.size}`},body:B,signal:d.value.signal});if(!F.ok)throw new Error("Помилка завантаження частини");const D=await F.json().catch(()=>({}));if(D.uploaded!=null?s.value=Number(D.uploaded):s.value=R,D.finished||s.value>=l.value.size){i.value=!1;const Z=D.file_path||D.url||a.value;n.value={file_id:D.file_id??a.value??Z,file_path:Z},fe.notify({type:"success",title:"Файл завантажено",message:l.value.name,position:"right-bottom"}),v();return}}}catch($){if($?.name==="AbortError")return;c.value=$?.message||"Помилка при завантаженні",i.value=!1}finally{d.value=null,i.value=!1}}},E=()=>{i.value&&(d.value?.abort(),d.value=null,i.value=!1)},S=async()=>{if(l.value){if(!a.value){await X();return}await L()}},N=()=>{d.value?.abort(),d.value=null,v()},v=()=>{const $=r.value;$&&($.value=""),l.value=null,a.value="",s.value=0,c.value=""};return($,R)=>(e.openBlock(),e.createElementBlock("div",Sa,[e.createElementVNode("div",$a,[e.createElementVNode("input",{ref_key:"fileInput",ref:r,type:"file",class:"hidden",accept:t.format,disabled:i.value||t.disabled,onChange:z},null,40,Na),n.value?(e.openBlock(),e.createBlock(Zn,{key:0,item:n.value,"onUpdate:item":R[0]||(R[0]=B=>n.value=B),value:n.value,"onUpdate:value":R[1]||(R[1]=B=>n.value=B)},null,8,["item","value"])):(e.openBlock(),e.createElementBlock("div",{key:1,onClick:g,class:e.normalizeClass(["relative h-[120px] w-[120px] border text-gray-300 border-dashed border-[#CFD9E0] rounded-lg flex items-center justify-center transition-all duration-300",m.value])},[i.value?(e.openBlock(),e.createElementBlock("div",Aa,[R[2]||(R[2]=e.createElementVNode("div",{class:"loader"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(h.value)+"%",1)])):(e.openBlock(),e.createBlock(e.unref(H.Plus),{key:1,class:"h-4 w-4"}))],2))]),l.value&&!n.value?(e.openBlock(),e.createElementBlock("div",Ma,[e.createElementVNode("div",Fa,[e.createElementVNode("div",Da,[e.createElementVNode("div",Ta,e.toDisplayString(l.value.name),1),e.createElementVNode("div",La,e.toDisplayString(y(l.value.size)),1)]),e.createElementVNode("div",Ia,e.toDisplayString(k.value),1)]),e.createElementVNode("div",Ra,[e.createElementVNode("div",{class:"h-full rounded-full bg-blue-500 transition-all duration-300",style:e.normalizeStyle({width:`${h.value}%`})},null,4)]),e.createElementVNode("div",Oa,[!i.value&&s.value>0&&s.value<(l.value?.size||0)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"rounded border border-slate-300 px-3 py-1",onClick:S}," Resume ")):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"rounded border border-slate-300 px-3 py-1",onClick:E}," Pause ")):e.createCommentVNode("",!0),!i.value&&s.value===0?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",class:"rounded border border-slate-300 px-3 py-1",onClick:X}," Upload ")):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"rounded border border-rose-200 px-3 py-1 text-rose-600",onClick:N}," Cancel ")]),c.value?(e.openBlock(),e.createElementBlock("p",Pa,e.toDisplayString(c.value),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]))}}),Jn=ke(za,[["__scopeId","data-v-19ea2129"]]),ja={class:"flex items-center justify-center h-[30px] w-[30px]"},Ua={class:"max-w-[55vw]"},Ha={class:"text-sm font-semibold text-gray-800 truncate dark:text-neutral-200"},qa={class:"flex items-center text-xs text-gray-500 truncate dark:text-neutral-500"},Ka={class:"px-[5px]"},Wa={class:""},bn=e.defineComponent({__name:"vs-widget-file-info",props:{item:{default:null}},setup(o){const t=o,n=e.computed(()=>{try{return new Date(t.item.cdate).toLocaleDateString("uk-UA",{day:"2-digit",month:"long",year:"numeric"})}catch{return""}});function r(l){if(l<1024)return`${l} B`;const a=l/1024;return a<1024?`${a.toFixed(2)} KB`:`${(a/1024).toFixed(2)} MB`}return(l,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",ja,[e.createVNode(e.unref(H.FileText),{class:"icon icon-tabler icons-tabler-outline icon-tabler-file h-4 w-4"})]),e.createElementVNode("div",Ua,[e.createElementVNode("p",Ha,e.toDisplayString(l.item?.uploaded_name),1),e.createElementVNode("p",qa,[e.createElementVNode("span",null,e.toDisplayString(l.item?.username),1),e.withDirectives(e.createElementVNode("span",Ka,"|",512),[[e.vShow,l.item?.username]]),e.createElementVNode("span",null,e.toDisplayString(n.value),1),a[0]||(a[0]=e.createElementVNode("span",{class:"px-[5px]"},"|",-1)),e.createElementVNode("span",Wa,e.toDisplayString(r(l.item?.size)),1)])])],64))}}),Ga={class:"p-3 relative group flex items-center gap-x-3 border border-gray-200 bg-white rounded-md w-full"},Ya={key:0,class:"flex w-full gap-x-3 items-center"},Xa={key:1,class:"flex gap-x-3 w-full items-center"},Za={key:2,class:"flex gap-x-3 w-full items-center"},Ja=["href"],Qa={key:3,class:"flex gap-x-3 w-full items-center"},es={class:"lg:absolute lg:top-3 lg:end-1 opacity-100"},ts={class:"p-0.5 sm:p-1 inline-flex items-center gap-0.5 bg-white rounded-lg dark:bg-neutral-800 dark:border-neutral-700"},ns={class:"inline-block"},os={class:"inline-block"},rs={class:"inline-block"},ls=e.defineComponent({__name:"vs-widget-file-item",props:{item:{default:null},index:{default:0},prefix:{default:"/api"}},emits:["update","openModal","openLightbox"],setup(o,{emit:t}){const n=o,r=t;function l(p){return["pdf","json"].includes(p.ext)}function a(p){return["ppt","pptx","doc","docx","xls","xlsx"].includes(p.ext)}function s(p){const h=document.createElement("a");h.setAttribute("download",p?.uploaded_name),h.href=p?.file_path,h.click()}function i(p){p?.file_path&&window.open(p.file_path,"_blank")}async function c(){try{await fetch(`${n.prefix}/widget/file/${n.item.entity_id}/${n.item.file_id}`),r("update")}catch(p){console.error(p)}}function d(){r("openModal",{title:"Ви впевнені?",message:"Ви впевнені, що хочете видалити цей файл?",confirmButtonText:"Так, я впевнена/ий",cancelButtonText:"Скасувати",confirm:c,updateListOnConfirm:!0})}function u(p){(n.item.ext==="jpg"||n.item.ext==="png")&&r("openLightbox",{item:n.item,index:p})}return(p,h)=>(e.openBlock(),e.createElementBlock("div",Ga,[p.item.ext==="jpg"||p.item.ext==="png"?(e.openBlock(),e.createElementBlock("div",Ya,[e.createElementVNode("div",{class:"max-w-[55vw] cursor-pointer flex gap-x-3 w-full items-center",onClick:h[0]||(h[0]=k=>u(p.index))},[e.createVNode(bn,{item:p.item},null,8,["item"])])])):l(p.item)?(e.openBlock(),e.createElementBlock("div",Xa,[e.createVNode(bn,{item:p.item},null,8,["item"])])):a(p.item)?(e.openBlock(),e.createElementBlock("div",Za,[e.createElementVNode("a",{href:`/api/file-preview?id=${p.item.file_id}`,target:"_blank",class:"flex gap-x-3 w-full items-center"},[e.createVNode(bn,{item:p.item},null,8,["item"])],8,Ja)])):(e.openBlock(),e.createElementBlock("div",Qa,[e.createVNode(bn,{item:p.item},null,8,["item"])])),e.createElementVNode("div",es,[e.createElementVNode("div",ts,[e.createElementVNode("div",ns,[e.createElementVNode("button",{class:"inline-flex p-[6px] justify-center items-center gap-x-2 rounded-lg border border-transparent text-gray-500 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none dark:text-neutral-400 focus:outline-none focus:bg-gray-100 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",onClick:h[1]||(h[1]=k=>i(p.item))},[e.createVNode(e.unref(H.Eye),{class:"h-4 w-4"})])]),e.createElementVNode("div",os,[e.createElementVNode("button",{class:"inline-flex p-[6px] justify-center items-center gap-x-2 rounded-lg border border-transparent text-gray-500 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none dark:text-neutral-400 focus:outline-none focus:bg-gray-100 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",onClick:h[2]||(h[2]=k=>s(p.item))},[e.createVNode(e.unref(H.Download),{class:"h-4 w-4"})])]),h[4]||(h[4]=e.createElementVNode("div",{class:"w-px h-5 mx-1 bg-gray-200 dark:bg-neutral-700"},null,-1)),e.createElementVNode("div",rs,[e.createElementVNode("button",{type:"button",class:"size-[30px] inline-flex justify-center items-center gap-x-2 rounded-lg border border-transparent text-red-600 hover:bg-red-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-red-100 dark:text-red-500 dark:hover:bg-red-500/20 dark:focus:bg-red-500/20",onClick:h[3]||(h[3]=k=>d())},[e.createVNode(e.unref(H.Trash2),{class:"h-4 w-4"})])])])])]))}}),as={class:"flex flex-col widget-file xl:bg-white xl:rounded-xl dark:xl:bg-neutral-800 dark:xl:border-neutral-700 w-full"},ss={class:"flex w-full mb-[12px] items-center gap-x-2"},is={class:"font-semibold text-gray-800 dark:text-neutral-200 text-[14px]"},cs={class1:"ml-auto"},ds={class:"py-1.5 px-4 inline-flex items-center gap-x-2 text-sm font-medium rounded-lg bg-gray-100 cursor-pointer hover:bg-gray-200 text-gray-800 shadow-2xs hover:bg-gray-50 focus:outline-hidden focus:bg-gray-50 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-800 dark:border-neutral-700 dark:text-white dark:hover:bg-neutral-700 dark:focus:bg-neutral-700"},us={key:0,class:"py-4 mb-4 space-y-4 border-gray-200 border-y dark:border-neutral-700"},ps={class:"relative"},fs={class:"absolute inset-y-0 start-0 flex items-center pointer-events-none z-[1] ps-3.5"},ms={key:1,class:"space-y-3 max-h-[300px] overflow-y-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500"},hs={key:0},Do=e.defineComponent({__name:"vs-input-file-list",props:{id:{default:""},prefix:{default:"/api"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update"],setup(o,{emit:t}){const n=o,r=e.inject("form"),l=e.computed(()=>r.value.formId),a=e.ref(!1),s=e.ref(0),i=t,c=e.ref(!1),d=e.ref({}),u=e.ref([]),p=e.ref(""),h=e.computed(()=>Array.isArray(u.value)?u.value.filter(w=>w.ext==="jpg"||w.ext==="png").map(w=>w?.file_path):[]),k=e.computed(()=>p.value===""?u.value:u.value.filter(w=>w?.uploaded_name?.includes(p.value))),m=w=>{const V=h.value.findIndex(z=>z===w.item.file_path);V!==-1&&(a.value=!0,s.value=V)},g=async()=>{try{const w=await fetch(`${n.prefix}/widget/file/${l.value}`).then(V=>V.json());u.value=w?.rows}catch(w){console.error(w)}},y=async w=>{await Promise.all(Array.from(w.target.files).map(async V=>{const z=new FormData;z.append("file",V);try{const X=`${n.prefix}/widget/file/${l.value}`,L=await fetch(X,{method:"POST",body:z});return L.ok?(i("update","file-list"),V):(fe.notify({type:L.status>=400&&L.status<500?"warning":"error",title:"Error",message:`Error code: ${L.status}`}),null)}catch(X){return fe.notify({type:"error",title:"Error",message:X.message||"Unknown error"}),console.error(X),null}})),await g()},C=w=>{const V={...w};return w.cancel||(V.cancel=()=>{c.value=!1}),w.updateListOnConfirm&&(V.confirm=async()=>{await w.confirm(),c.value=!1,g()}),V},x=w=>{d.value=C(w),c.value=!0};return e.watch(l,w=>{w&&g()}),e.onMounted(()=>{l.value&&g()}),(w,V)=>{const z=e.resolveComponent("Lightbox"),X=e.resolveComponent("MessageBox");return e.openBlock(),e.createElementBlock("div",as,[e.createElementVNode("div",ss,[e.createElementVNode("h2",is," Файлів: "+e.toDisplayString(u.value?.length),1),e.createElementVNode("div",cs,[e.createElementVNode("label",null,[e.createElementVNode("input",{type:"file",class:"hidden",onChange:V[0]||(V[0]=L=>y(L))},null,32),e.createElementVNode("div",ds,[e.createVNode(e.unref(H.Upload),{class:"h-4 w-4"})])])])]),u.value?.length>4?(e.openBlock(),e.createElementBlock("div",us,[e.createElementVNode("div",null,[e.createElementVNode("div",ps,[e.createElementVNode("div",fs,[e.createVNode(e.unref(H.Search),{class:"flex-shrink-0 text-gray-500 size-4 dark:text-neutral-400"})]),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":V[1]||(V[1]=L=>p.value=L),class:"py-2 px-3 ps-10 pe-16 block w-full bg-gray-200 xl:bg-gray-100 rounded-lg text-sm focus:border-blue-500 h-[40px] focus:border-2 focus:outline-none disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:border-transparent dark:text-neutral-400 dark:placeholder:text-neutral-400 dark:focus:ring-neutral-600",placeholder:"Введіть назву файлу"},null,512),[[e.vModelText,p.value,void 0,{trim:!0}]])])])])):e.createCommentVNode("",!0),u.value?.length?(e.openBlock(),e.createElementBlock("div",ms,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,(L,E)=>(e.openBlock(),e.createBlock(ls,{key:E,prefix:w.prefix,item:L,index:E,onUpdate:V[2]||(V[2]=S=>w.$emit("update","file-list")),onOpenModal:V[3]||(V[3]=S=>x(S)),onOpenLightbox:V[4]||(V[4]=S=>m(S))},null,8,["prefix","item","index"]))),128)),k.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",hs,V[8]||(V[8]=[e.createElementVNode("p",{class:"text-sm text-gray-600 font-sm"}," Файлів з такою назвою не існує, введіть інше пошукове слово ",-1)])))])):e.createCommentVNode("",!0),e.createVNode(z,{modelValue:a.value,"onUpdate:modelValue":V[5]||(V[5]=L=>a.value=L),startIndex:s.value,"onUpdate:index":V[6]||(V[6]=L=>s.value=L),images:h.value},null,8,["modelValue","startIndex","images"]),e.createVNode(X,e.mergeProps({modelValue:c.value,"onUpdate:modelValue":V[7]||(V[7]=L=>c.value=L),onConfirm:d.value.confirm},d.value),null,16,["modelValue","onConfirm"])])}}}),gs={class:"flex items-center justify-between"},ys={class:"text-[16px] text-gray-900 font-medium"},bs={class:"grid gap-3"},ks=ke(e.defineComponent({__name:"vs-container-switcher",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(o){const t=o,n=e.ref(t.isOpen);return e.watch(()=>t.isOpen,r=>{n.value=r}),(r,l)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",gs,[e.createElementVNode("p",ys,e.toDisplayString(o.title),1),e.createVNode(Kn,{modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=a=>n.value=a),style:e.normalizeStyle(o.style)},null,8,["modelValue","style"])]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",bs,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-90320b87"]]),xs={class:"text-[16px] text-gray-900 font-medium"},ws={class:"grid gap-3"},_s=ke(e.defineComponent({__name:"vs-container-accordion",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(o){const t=o,n=e.ref(t.isOpen);return e.watch(()=>t.isOpen,r=>{n.value=r}),(r,l)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("button",{type:"button",onClick:l[0]||(l[0]=a=>n.value=!n.value),class:"flex items-center gap-2"},[e.createVNode(e.unref(H.ChevronDown),{class:e.normalizeClass(["h-4 w-4 duration-300",[n.value?"-rotate-180":""]])},null,8,["class"]),e.createElementVNode("span",xs,e.toDisplayString(o.title),1)]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",ws,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-0c825d65"]]),Cs={class:"flex items-center justify-between"},vs={switcher:ks,accordion:_s,default:e.defineComponent({__name:"vs-container-default",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})}},setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",Cs,[e.createElementVNode("p",null,e.toDisplayString(o.title),1)]),e.renderSlot(t.$slots,"default")]))}})},ot={Equal:"==",Inequal:"!=",Higer:">",HigerOrEqual:">=",Lower:"<",LowerOrEqual:"<=",Between:"between",StartWith:"^",EndWith:"$",Contain:"*",In:"in",NotIn:"not_in"},Es=(o,t)=>String(o)===String(t),Bs=(o,t)=>String(o)!==String(t),Vs=(o,t)=>o>t,Ss=(o,t)=>o>=t,$s=(o,t)=>o<t,Ns=(o,t)=>o<=t,As=(o,t)=>Array.isArray(t)&&t.length===2?o>=t[0]&&o<=t[1]:!1,Ms=(o,t)=>String(o).startsWith(String(t)),Fs=(o,t)=>String(o).endsWith(String(t)),Ds=(o,t)=>String(o).includes(String(t)),Ts=(o,t)=>Array.isArray(t)?t.includes(o):!1,Ls=(o,t)=>Array.isArray(t)?!t.includes(o):!0,To=(o,t)=>{if(!t)return!0;switch(t?.[1]){case ot.Equal:return Es(o,t?.[2]);case ot.Inequal:return Bs(o,t?.[2]);case ot.Higer:return Vs(o,t?.[2]);case ot.HigerOrEqual:return Ss(o,t?.[2]);case ot.Lower:return $s(o,t?.[2]);case ot.LowerOrEqual:return Ns(o,t?.[2]);case ot.Between:return As(o,t?.[2]);case ot.StartWith:return Ms(o,t?.[2]);case ot.EndWith:return Fs(o,t?.[2]);case ot.Contain:return Ds(o,t?.[2]);case ot.In:return Ts(o,t?.[2]);case ot.NotIn:return Ls(o,t?.[2]);default:return!0}},Lo=e.defineComponent({__name:"vs-input-container",props:{style:{type:Object,default:()=>({})},title:{type:String,default:""},view:{type:String,default:"default"},name:{type:String,default:""},schema:{type:Array,default:()=>[]}},setup(o){const t=o,n=e.inject("values",e.ref({})),r=e.inject("form"),l=e.computed(()=>t.schema?.filter(i=>{const c=i?.conditions;if(!c)return!0;const d=Array.isArray(c)?c[0]:c,u=t.name?n.value?.[t.name]?.[d]??n.value?.[d]:n.value?.[d];return To(u,c)})),a=e.computed(()=>vs[t.view]),s=e.computed(()=>{if(n.value||(n.value={}),!t.name)return n.value;const i=n.value[t.name];if(i)return i;const c={};return n.value={...n.value,[t.name]:c},c});return(i,c)=>o.schema?.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{key:0,title:o.title,style:e.normalizeStyle(o.style)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,d=>(e.openBlock(),e.createBlock(lr,e.mergeProps({key:d.name},{ref_for:!0},d,{item:d,modelValue:s.value[d.name],"onUpdate:modelValue":u=>s.value[d.name]=u,style:o.style,error:e.unref(r)?.errors?.[d.name]}),null,16,["item","modelValue","onUpdate:modelValue","style","error"]))),128))]),_:1},8,["title","style"])):e.createCommentVNode("",!0)}}),Io=({props:o,fetchOptionByValue:t,optionsList:n,selectedOption:r,modelValue:l,onCreated:a})=>{const s=e.ref(!1),i=e.ref({}),c=e.ref([]),d=e.ref(null),u=e.computed(()=>o.add?.title||"Додати"),p=e.computed(()=>o.add?.token||o.add?.model||""),h=e.computed(()=>o.add?.pk||"id");return{isOpenAdd:s,addData:i,addSchema:c,addForm:d,addTitle:u,addOption:async()=>{if(!(!p.value||d?.value.validate()))try{const y=o.add?.api??`/api/table/${p.value}`,C=await fetch(y,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i.value)}),x=await C.json().catch(()=>({})),w=x?.error||x?.message,V=Number(x?.code)>=400;if(!C.ok||V){fe.notify({title:"Помилка",type:"error",message:w||`Код помилки: ${x?.code||C.status}`});return}const z=x?.[h.value]??x?.id;if(!z){fe.notify({title:"Помилка",type:"error",message:"Обʼєкт створено, але в відповіді відсутній ID."});return}const X=await t(z);X&&(n.value.some(E=>String(E?.id)===String(X.id))||n.value.push(X)),a?await a(X,z):X&&(r.value=X,l.value=z),s.value=!1,fe.notify({title:"Успіх",message:"Обʼєкт успішно створено."})}catch(y){fe.notify({title:"Помилка",type:"error",message:y?.message||"Не вдалося створити обʼєкт."})}},onAddValue:async()=>{if(!o.add)return null;const g=await fetch(`/api/template/form/${o.add.form}`).then(y=>y.json());return c.value=g.schema,i.value={},s.value=!0,null}}},Is=["aria-expanded","data-focus"],Rs={class:"relative flex flex-1 items-center gap-1 py-0.5 pl-1 pr-0 overflow-hidden h-full min-w-0"},Os={key:0,class:"flex flex-nowrap items-center gap-1 overflow-x-auto overflow-y-hidden min-w-0 flex-1 py-0.5"},Ps={class:"flex items-center gap-1 min-w-0"},zs=["title"],js=["innerHTML"],Us=["onClick"],Hs={class:"flex-1 min-w-[2px]"},qs=["placeholder"],Ks=["title"],Ws=["innerHTML"],Gs={key:3,class:"truncate flex-1 min-w-0"},Ys={key:2,class:"flex-1 min-w-[2px]"},Xs=["placeholder"],Zs={class:"flex items-center shrink-0"},Js=["disabled"],Qs={key:1,class:"self-stretch w-px bg-[#ccc] my-[1px]"},ei=["disabled","title"],ti=e.defineComponent({__name:"vs-select-control",props:{disabled:{type:Boolean},isOpen:{type:Boolean},inputFocus:{type:Boolean},isMulti:{type:Boolean},selectedOptions:{},selectedIds:{},placeholder:{},search:{type:Boolean},optionTemplate:{default:""},iconWrapperClass:{},selectedOptionLabel:{},selectedOption:{},showClear:{type:Boolean},keyWord:{default:""},setTriggerRef:{},setInputRef:{},shouldShowColorDot:{},optionHasIcon:{},getIconColorStyle:{},resolveOptionIcon:{},renderTemplate:{},getLabel:{},onControlKeydown:{},onControlClick:{},onInputFocus:{},onInputBlur:{},onInputKeydown:{},onRemoveSelected:{},onClearSelected:{},onToggleSelect:{}},emits:["update:keyWord"],setup(o,{emit:t}){const n=o,r=t,l=e.computed({get:()=>n.keyWord,set:a=>r("update:keyWord",a)});return(a,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-input-select__control flex min-h-[38px] items-center justify-between rounded transition-colors bg-white",a.disabled?"bg-gray-100 text-gray-400 cursor-not-allowed":""]),role:"combobox","aria-expanded":a.isOpen,"aria-haspopup":"listbox",onKeydown:s[10]||(s[10]=(...i)=>a.onControlKeydown&&a.onControlKeydown(...i)),onClick:s[11]||(s[11]=(...i)=>a.onControlClick&&a.onControlClick(...i)),"data-focus":a.isOpen||a.inputFocus?"true":"false",ref:a.setTriggerRef},[e.createElementVNode("div",Rs,[a.isMulti?(e.openBlock(),e.createElementBlock("div",Os,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.selectedOptions,i=>(e.openBlock(),e.createElementBlock("div",{key:i.id,class:"flex min-w-0 bg-[rgb(230,230,230)] rounded-[2px] m-[2px] box-border max-w-full"},[e.createElementVNode("div",Ps,[a.shouldShowColorDot(i)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[16px] h-[16px] rounded-md block ml-1.5 flex-shrink-0",style:e.normalizeStyle({backgroundColor:i?.color})},null,4)):e.createCommentVNode("",!0),!a.optionTemplate&&a.optionHasIcon(i)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(a.iconWrapperClass),style:e.normalizeStyle(a.getIconColorStyle(i)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.resolveOptionIcon(i)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"truncate text-[#172b4d] overflow-hidden max-w-[200px] px-0.5 pl-1.5",title:a.getLabel(i)},[a.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:a.renderTemplate(i)},null,8,js)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(i.text),1)],64))],8,zs)]),e.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border text-[#172b4d] hover:bg-[rgb(255,189,173)] hover:text-[rgb(222,53,11)] flex-shrink-0",onClick:e.withModifiers(c=>a.onRemoveSelected(i.id),["stop"])},[e.createVNode(e.unref(H.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,Us)]))),128)),e.createElementVNode("div",Hs,[!a.disabled&&a.search?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref:a.setInputRef,class:"w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900 hover:cursor-pointer",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:a.selectedIds.length?" ":a.placeholder,"onUpdate:modelValue":s[0]||(s[0]=i=>l.value=i),onFocus:s[1]||(s[1]=(...i)=>a.onInputFocus&&a.onInputFocus(...i)),onBlur:s[2]||(s[2]=(...i)=>a.onInputBlur&&a.onInputBlur(...i)),onKeydown:s[3]||(s[3]=(...i)=>a.onInputKeydown&&a.onInputKeydown(...i))},null,40,qs)),[[e.vModelText,l.value]]):e.createCommentVNode("",!0)])])):!a.isMulti&&a.selectedOptionLabel&&l.value===""?(e.openBlock(),e.createElementBlock("div",{key:1,class:"truncate text-gray-900 absolute inset-x-0 pl-2 flex items-center gap-1 min-w-0",title:a.selectedOptionLabel},[a.shouldShowColorDot(a.selectedOption)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[14px] h-[14px] rounded-md block flex-shrink-0",style:e.normalizeStyle({backgroundColor:a.selectedOption?.color})},null,4)):e.createCommentVNode("",!0),!a.optionTemplate&&a.optionHasIcon(a.selectedOption)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(a.iconWrapperClass),style:e.normalizeStyle(a.getIconColorStyle(a.selectedOption)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.resolveOptionIcon(a.selectedOption)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),a.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:2,class:"truncate flex-1 min-w-0",innerHTML:a.renderTemplate(a.selectedOption)},null,8,Ws)):(e.openBlock(),e.createElementBlock("span",Gs,e.toDisplayString(a.selectedOption?.text),1))],8,Ks)):e.createCommentVNode("",!0),a.isMulti?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Ys,[!a.disabled&&a.search?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref:a.setInputRef,class:"w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900 hover:cursor-pointer",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:a.selectedOptionLabel?" ":a.placeholder,"onUpdate:modelValue":s[4]||(s[4]=i=>l.value=i),onFocus:s[5]||(s[5]=(...i)=>a.onInputFocus&&a.onInputFocus(...i)),onBlur:s[6]||(s[6]=(...i)=>a.onInputBlur&&a.onInputBlur(...i)),onKeydown:s[7]||(s[7]=(...i)=>a.onInputKeydown&&a.onInputKeydown(...i))},null,40,Xs)),[[e.vModelText,l.value]]):e.createCommentVNode("",!0)]))]),e.createElementVNode("div",Zs,[a.showClear?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:a.disabled,onClick:s[8]||(s[8]=e.withModifiers((...i)=>a.onClearSelected&&a.onClearSelected(...i),["stop"]))},[e.createVNode(e.unref(H.X),{class:"h-4 w-4"})],8,Js)):e.createCommentVNode("",!0),a.showClear?(e.openBlock(),e.createElementBlock("div",Qs)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:a.disabled,onClick:s[9]||(s[9]=e.withModifiers((...i)=>a.onToggleSelect&&a.onToggleSelect(...i),["stop"])),title:a.isOpen?"Закрити список":"Відкрити список"},[e.createVNode(e.unref(H.ChevronDown),{class:"h-4 w-4"})],8,ei)])],42,Is))}}),ni=["aria-disabled","onMousedown"],oi={class:"leading-[19px]"},ri=["innerHTML"],li={key:1,class:"px-3 py-2 text-center text-gray-500"},ai=e.defineComponent({__name:"vs-select-dropdown",props:{isOpen:{type:Boolean},dropdownStyle:{},filteredOptionsList:{},selectedNavIndex:{},optionTemplate:{},iconWrapperClass:{},setDropdownRef:{type:Function},setListRef:{type:Function},setItemRef:{type:Function},isSelected:{type:Function},onOptionClick:{type:Function},shouldShowColorDot:{type:Function},optionHasIcon:{type:Function},getIconColorStyle:{type:Function},resolveOptionIcon:{type:Function},renderTemplate:{type:Function}},setup(o){return(t,n)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[t.isOpen?(e.openBlock(),e.createElementBlock("div",{key:0,ref:t.setDropdownRef,class:"fixed z-[3000] rounded bg-white shadow-[0_0_0_1px_rgba(0,0,0,0.1),0_4px_11px_rgba(0,0,0,0.1)]",style:e.normalizeStyle(t.dropdownStyle),role:"listbox"},[e.createElementVNode("div",{class:"overflow-y-auto py-1",style:e.normalizeStyle({maxHeight:t.dropdownStyle.maxHeight||"300px"}),ref:t.setListRef},[t.filteredOptionsList.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.filteredOptionsList,(r,l)=>(e.openBlock(),e.createElementBlock("div",{key:r.id,ref_for:!0,ref:a=>t.setItemRef(a,l),class:e.normalizeClass(["flex px-3 py-2 gap-2 cursor-pointer select-none text-gray-900",t.isSelected(r.id)?"bg-[#2684ff] text-white":"bg-white hover:bg-[#deebff] hover:text-[#172b4d]",t.selectedNavIndex===l&&!t.isSelected(r.id)?"bg-[#deebff] text-[#172b4d]":""]),"aria-disabled":t.isSelected(r.id)?"true":"false",role:"option",tabindex:"-1",onMousedown:e.withModifiers(a=>t.onOptionClick(r),["prevent","stop"])},[t.shouldShowColorDot(r)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[11px] h-[11px] rounded-full block flex-shrink-0",style:e.normalizeStyle({backgroundColor:r?.color})},null,4)):e.createCommentVNode("",!0),!t.optionTemplate&&t.optionHasIcon(r)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(t.iconWrapperClass),style:e.normalizeStyle(t.getIconColorStyle(r)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.resolveOptionIcon(r)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),e.createElementVNode("div",oi,[t.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:t.renderTemplate(r)},null,8,ri)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(r.text),1)],64))])],42,ni))),128)):(e.openBlock(),e.createElementBlock("div",li," No options "))],4)],4)):e.createCommentVNode("",!0)]))}}),si=["disabled"],Ro="w-[16px] h-[16px] flex items-center justify-center flex-shrink-0 text-current",Qn=ke(e.defineComponent({__name:"vs-input-select",props:{multiple:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},mode:{},defaultValue:{},search:{type:Boolean,default:!0},placeholder:{default:"Оберіть значення"},prefix:{default:"api"},host:{default:""},data:{default:""},options:{default:()=>[]},api:{default:null},maxHeight:{default:400},parent:{},set:{},slot:{},add:{},teleport:{default:"body"},auto:{default:0},start:{default:0},style:{default:()=>({})},customClass:{default:""},modelValue:{},error:{default:null},name:{},maxlength:{},minlength:{}},emits:["change","update:modelValue","value-selected"],setup(o,{emit:t}){const n=o,r=t,l=e.computed(()=>n.multiple),a=e.computed(()=>n.disabled),s=e.computed(()=>n.search);Oe(n.style);const i=e.computed({get:()=>n.modelValue,set:P=>r("update:modelValue",P)});!i.value&&n.defaultValue&&(i.value=n.defaultValue);const c=e.ref(null),d=e.ref(null),u=e.ref(null),p=e.ref(null),h=e.ref(!1),k=e.ref(!1),m=e.ref(null),g=e.ref(-1),y=e.ref([]),C=e.ref(""),x=e.ref(null),w=P=>{d.value=P},V=P=>{x.value=P},z=P=>{p.value=P},X=P=>{u.value=P},L=(P,oe)=>{y.value[oe]=P},E=e.ref({}),S=e.ref([]),N=e.computed(()=>{if(!S.value.length)return[];const P=he.value,oe=new Map(P.map(ce=>[ce.id?.toString(),ce]));return S.value.map(ce=>oe.get(ce?.toString())).filter(ce=>!!ce)}),v=e.computed(()=>n.placeholder||"Select..."),$=e.computed(()=>le(m.value)),R=e.computed(()=>a.value?!1:l.value?S.value.length>0:!!i.value),B=P=>l.value?S.value.some(oe=>oe?.toString()===P?.toString()):i.value?.toString()===P?.toString(),F=e.computed(()=>{let P=he.value??[];if(!n.data&&C.value.trim()!==""){const oe=C.value.toLowerCase();P=P.filter(ce=>{const Ee=le(ce).toLowerCase(),Me=ce.text?.toLowerCase?.()||"";return Ee.includes(oe)||Me.includes(oe)})}if(l.value&&S.value.length){const oe=new Set(S.value.map(ce=>ce?.toString()));P=P.filter(ce=>!oe.has(ce.id?.toString()))}return P}),D=e.inject("values"),Z=e.inject("field-props"),G=e.computed(()=>n.slot??n?.optionTemplate??""),ee=P=>gn(P,G.value),le=P=>yn(P,G.value),we=e.computed(()=>fn(G.value)),me=P=>Gt(P),ne=P=>!!(!we.value&&Vt(P)&&!me(P)),ie=P=>{const oe=Vt(P);return oe?{color:oe}:void 0},ge=P=>!!(!we.value&&(Wt(P)||me(P))),Q=(P,oe,ce)=>{if(!Z)return!1;const Ee=Z.value?.[P]??{},Me=(Fe,tt,dt)=>{if(!tt.length)return Fe;const[ut,...bt]=tt,at={...Fe};if(!bt.length)return at[ut]=dt,at;const dn=typeof Fe[ut]=="object"&&Fe[ut]!==null?Fe[ut]:{};return at[ut]=Me(dn,bt,dt),at},Ue=Me(Ee,oe,ce);return Z.value={...Z.value||{},[P]:Ue},!0},de=P=>{if(!n.set)return;const oe=D?.value;!oe&&!Z||Object.entries(n.set).forEach(([ce,Ee])=>{if(!ce)return;const Me=P?P[Ee]:null,Ue=ce.split(".").map(dt=>dt.trim()).filter(Boolean);if(!Ue.length)return;const[Fe,...tt]=Ue;tt.length&&Q(Fe,tt,Me??null)||oe&&(oe[Fe]=Me??null)})},{optionsList:he,parentValue:Be,fetchOptions:$e,fetchOptionByValue:Re,loadOptions:Ae}=hn({props:n,formValues:D,watchParent:!1}),Ce=P=>P==null?"":String(P),Ve=P=>{if(l.value){if(!S.value.length){he.value=P;return}}else if(!m.value){he.value=P;return}const oe=new Set(P.map(Ee=>Ce(Ee.id)).filter(Boolean));if(l.value){const Ee=new Set(S.value.map(Ue=>Ce(Ue)).filter(Boolean)),Me=(he.value??[]).filter(Ue=>{const Fe=Ce(Ue.id);return!Fe||!Ee.has(Fe)?!1:!oe.has(Fe)});he.value=[...Me,...P];return}const ce=Ce(m.value?.id);if(ce&&!oe.has(ce)){he.value=[m.value,...P];return}he.value=P},Se=e.ref(0),Ne=async P=>{const oe=++Se.value,ce=await $e(P);return oe!==Se.value?null:ce},Le=async()=>{if(n.data){const P=await Ne(C.value);return P&&Ve(P),he.value}return Ae()},Ie=async P=>{if(P==null||P==="")return null;const oe=he.value?.find(ce=>ce?.id?.toString()===String(P));return oe||Re(P)},Qe=async P=>{const oe=new Set(he.value.map(Ee=>Ee.id?.toString())),ce=P.filter(Ee=>!oe.has(Ee?.toString()));ce.length&&await ce.reduce(async(Ee,Me)=>{await Ee;const Ue=await Ie(Me);Ue&&he.value.push(Ue)},Promise.resolve())},U=()=>{if(!F.value.length){g.value=-1;return}let P=0;if(!l.value&&m.value){const oe=m.value.id?.toString(),ce=F.value.findIndex(Ee=>Ee.id?.toString()===oe);ce>=0&&(P=ce)}g.value=P,e.nextTick(()=>{K(y.value[P],u.value)})},J=async()=>{a.value||(h.value=!0,await Le(),await e.nextTick(()=>{se(),x.value?.focus()}),U())},re=()=>{h.value=!1,g.value=-1,e.nextTick(()=>{x.value?.blur()})},I=async P=>{if(a.value)return;(P!==void 0?P:!h.value)?await J():re()},W=async()=>{if(!a.value){if(h.value){re();return}await J()}},_e=()=>{l.value?(S.value=[],i.value=[],r("change",[]),j(null,[])):(m.value=null,i.value=null,r("change",null),j(null,null)),de(null),C.value="",e.nextTick(()=>{x.value?.focus(),h.value||J()})},O=P=>{l.value&&(S.value=S.value.filter(oe=>oe?.toString()!==P?.toString()),i.value=[...S.value],r("change",i.value),j(null),e.nextTick(()=>x.value?.focus()))},j=(P,oe)=>{const ce=oe??(l.value?[...S.value]:P?.id??null);r("value-selected",{name:n.name,value:ce,option:P})},q=P=>{l.value?(B(P.id)||(S.value=[...S.value,P.id],i.value=[...S.value],r("change",i.value),j(P)),C.value="",e.nextTick(()=>{x.value?.focus(),g.value=Math.min(g.value,F.value.length-1)}),de(null)):(m.value=P,i.value=P.id,r("change",i.value),j(P),C.value="",re(),de(P))},M=P=>{if(B(P.id)){l.value||re();return}q(P)},K=(P,oe)=>{if(!P||!oe)return;const ce=P.offsetTop,Ee=ce+P.offsetHeight,Me=oe.scrollTop,Ue=Me+oe.clientHeight;let Fe=oe.scrollTop;ce<Me?Fe=ce-80:Ee>Ue&&(Fe=Ee-oe.clientHeight+4);const tt=oe;tt.scrollTop=Fe},te=P=>{let oe=P.parentElement;for(;oe;){if(oe.classList.contains("ui-dialog__content"))return oe;const ce=window.getComputedStyle(oe),Ee=ce.overflow+ce.overflowY+ce.overflowX;if(Ee.includes("auto")||Ee.includes("scroll")||oe===document.body||oe===document.documentElement)return oe;oe=oe.parentElement}return document.body},se=()=>{if(!d.value)return;const P=d.value.getBoundingClientRect(),oe=window.innerHeight||document.documentElement.clientHeight,ce=window.innerWidth||document.documentElement.clientWidth,Ee=8,Me=8,Ue=n.maxHeight||300,Fe=oe-P.bottom-Me-Ee,tt=P.top-Me-Ee,dt=Fe>=tt,ut=Math.max(ce-Ee*2,0);let{width:bt}=P;ut>0&&bt>ut&&(bt=ut);let{left:at}=P;at+bt+Ee>ce&&(at=ce-bt-Ee),at=Math.max(at,Ee);const dn=Math.min(Ue,Math.max(dt?Fe:tt,50));E.value={position:"fixed",left:`${at}px`,width:`${bt}px`,maxHeight:`${dn}px`,transform:dt?"none":"translateY(-100%)",top:dt?`${P.bottom+Me}px`:`${P.top-Me}px`}},ve=async P=>{a.value||!h.value&&(P.key==="ArrowDown"||P.key==="ArrowUp")&&(P.preventDefault(),await J())},et=P=>{if(!h.value)return;const{key:oe}=P;if(oe==="ArrowDown")P.preventDefault(),g.value+1<F.value.length&&(g.value+=1,K(y.value[g.value],u.value));else if(oe==="ArrowUp")P.preventDefault(),g.value>0&&(g.value-=1,K(y.value[g.value],u.value));else if(oe==="Enter"){P.preventDefault();const ce=F.value[g.value];ce&&q(ce),x.value?.blur()}else oe==="Escape"?(P.preventDefault(),re()):oe==="Backspace"?l.value&&C.value===""&&S.value.length&&(S.value=S.value.slice(0,-1),i.value=[...S.value],r("change",i.value)):oe==="Home"?(g.value=0,K(y.value[0],u.value)):oe==="End"?(g.value=F.value.length-1,K(y.value[g.value],u.value)):oe==="Tab"&&re()},We=()=>{a.value||(k.value=!0)},vt=()=>{k.value=!1,C.value=""},He=P=>{P.key==="Escape"&&h.value&&re()},qe=P=>{const oe=P.target;c.value?.contains(oe)||p.value?.contains(oe)||re()},gt=P=>{h.value&&u.value&&!u.value.contains(P.target)&&se()},ct=()=>{h.value&&se()},Ht=()=>{h.value&&se()};async function Ft(){if(l.value)Array.isArray(i.value)?S.value=[...i.value]:(S.value=i.value==null?[]:[i.value],i.value=[...S.value]),n.data&&S.value.length&&(await Qe(S.value),await e.nextTick());else{if(Array.isArray(i.value)){const P=i.value[0]??null;i.value=P??null}i.value!=null&&(m.value=await Ie(i.value)),de(m.value??null)}}e.watch(i,()=>{Ft()}),e.onMounted(async()=>{if(addEventListener("keydown",He),addEventListener("scroll",gt,!0),addEventListener("resize",ct),document.addEventListener("click",qe,!0),d.value&&te(d.value).addEventListener("scroll",Ht,!0),n.options?.length&&!n.data)he.value=[...n.options];else if(n.data){const P=await Ne("");P&&Ve(P)}await Ft(),Dt.value=!1}),e.onUnmounted(()=>{removeEventListener("keydown",He),removeEventListener("scroll",gt,!0),removeEventListener("resize",ct),document.removeEventListener("click",qe,!0),d.value&&te(d.value).removeEventListener("scroll",Ht,!0)});const{isOpenAdd:sn,addData:yt,addSchema:Pt,addForm:xo,addTitle:Et,addOption:wo,onAddValue:qt}=Io({props:n,fetchOptionByValue:Re,optionsList:he,selectedOption:m,modelValue:i});function lt(P,oe=200){let ce;return(...Ee)=>{ce&&clearTimeout(ce),ce=window.setTimeout(()=>P(...Ee),oe)}}const cn=lt(async P=>{const oe=await Ne(P);oe&&Ve(oe)},200);e.watch(C,P=>{n.data&&cn(P.trim())}),e.watch(()=>n.options,P=>{!n.data&&P?.length&&(he.value=[...P],Ft())},{immediate:!0});const Dt=e.ref(!0);return e.watch(Be,async()=>{if(n.data&&(Dt.value||(l.value?(S.value=[],i.value=[],r("change",[])):(m.value=null,i.value=null,r("change",null))),await Le(),n.auto===1&&Be.value&&he.value.length>0)){const P=he.value[0];P&&q(P)}}),(P,oe)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(fe.VsModal),{visible:e.unref(sn),"onUpdate:visible":oe[1]||(oe[1]=ce=>e.isRef(sn)?sn.value=ce:null),class:"z-[1000]",title:e.unref(Et),buttonText:"Додати",onDone:e.unref(wo),teleport:P.teleport},{default:e.withCtx(()=>[e.createVNode(rt,{schema:e.unref(Pt),modelValue:e.unref(yt),"onUpdate:modelValue":oe[0]||(oe[0]=ce=>e.isRef(yt)?yt.value=ce:null),ref_key:"addForm",ref:xo},null,8,["schema","modelValue"])]),_:1},8,["visible","title","onDone","teleport"]),e.createElementVNode("div",{class:"flex gap-1 w-full",ref_key:"selectRoot",ref:c,onClick:oe[4]||(oe[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass])},[oe[5]||(oe[5]=e.createElementVNode("span",{id:"react-select-live-region",class:"sr-only"},null,-1)),oe[6]||(oe[6]=e.createElementVNode("span",{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text",role:"log",class:"sr-only"},null,-1)),e.createVNode(ti,{keyWord:C.value,"onUpdate:keyWord":oe[2]||(oe[2]=ce=>C.value=ce),disabled:a.value,"is-open":h.value,"input-focus":k.value,"is-multi":l.value,"selected-options":N.value,"selected-ids":S.value,placeholder:v.value,search:s.value,"option-template":G.value,"icon-wrapper-class":Ro,"selected-option-label":$.value,"selected-option":m.value,"show-clear":R.value,"set-trigger-ref":w,"set-input-ref":V,"should-show-color-dot":ne,"option-has-icon":ge,"get-icon-color-style":ie,"resolve-option-icon":me,"render-template":ee,"get-label":le,"on-control-keydown":ve,"on-control-click":W,"on-input-focus":We,"on-input-blur":vt,"on-input-keydown":et,"on-remove-selected":O,"on-clear-selected":_e,"on-toggle-select":I},null,8,["keyWord","disabled","is-open","input-focus","is-multi","selected-options","selected-ids","placeholder","search","option-template","selected-option-label","selected-option","show-clear"]),e.createVNode(ai,{"is-open":h.value,"dropdown-style":E.value,"filtered-options-list":F.value,"selected-nav-index":g.value,"option-template":G.value,"icon-wrapper-class":Ro,"set-dropdown-ref":z,"set-list-ref":X,"set-item-ref":L,"is-selected":B,"on-option-click":M,"should-show-color-dot":ne,"option-has-icon":ge,"get-icon-color-style":ie,"resolve-option-icon":me,"render-template":ee},null,8,["is-open","dropdown-style","filtered-options-list","selected-nav-index","option-template"])],2),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:oe[3]||(oe[3]=(...ce)=>e.unref(qt)&&e.unref(qt)(...ce)),class:"bg-white hover:bg-gray-100 text-sm text-gray-900 py-[10px] px-3 border border-stone-200 rounded-md h-[38px] flex items-center gap-2",disabled:a.value,type:"button"},[e.createVNode(e.unref(H.Plus),{class:"h-4 w-4"}),oe[7]||(oe[7]=e.createElementVNode("span",null,"Додати",-1))],8,si)):e.createCommentVNode("",!0)],512)],64))}}),[["__scopeId","data-v-8a2f9b30"]]),eo=(o="")=>`${o}${Math.floor(Math.random()*1e4)}`,ii=["disabled","aria-expanded"],ci={class:"truncate"},di={class:"py-2 px-4"},ui={class:"block font-medium text-[13px] text-foreground"},pi={class:"truncate"},fi={class:"p-1 border-t border-gray-200"},mi={class:"space-y-0.5 max-h-48 overflow-y-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-none [&::-webkit-scrollbar-track]:bg-scrollbar-track [&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb"},hi=["onClick"],gi=["checked"],yi={class:"shrink-0 size-3.5 flex justify-center items-center"},bi={key:1,class:"shrink-0 size-2 block mx-auto rounded-full bg-secondary/60"},ki={class:"truncate"},xi={key:0,class:"px-3 py-2 text-xs text-stone-500"},kn=e.defineComponent({__name:"vs-input-inline-select",props:{multiple:{type:Boolean},disabled:{type:Boolean,default:!1},mode:{},defaultValue:{},search:{type:Boolean},placeholder:{default:"Оберіть значення"},prefix:{default:"api"},host:{default:""},data:{default:""},options:{default:()=>[]},api:{default:null},maxHeight:{},parent:{},set:{},slot:{},add:{},teleport:{default:"body"},auto:{},start:{default:0},style:{default:()=>({})},customClass:{default:""},modelValue:{},error:{default:null},name:{},maxlength:{},minlength:{}},emits:["change","update:modelValue","value-selected"],setup(o,{emit:t}){const n=o,r=t;Oe(n.style);const l=e.computed({get:()=>Array.isArray(n.modelValue)?n.modelValue[0]??null:n.modelValue??null,set:Q=>r("update:modelValue",Q)});l.value==null&&n.defaultValue!=null&&(l.value=n.defaultValue);const a=e.inject("values"),s=e.inject("field-props"),i=e.computed(()=>!!n.disabled),c=e.ref(null),d=e.ref(!1),u=e.ref(null),p=e.ref(null),h=e.ref(null),k=e.ref({}),m=`vs-input-inline-select-${eo()}`,g=e.computed(()=>n.placeholder||"Оберіть значення"),y=e.computed(()=>z(c.value)||n.placeholder||"Оберіть значення"),C=e.computed(()=>n.slot??""),x=e.computed(()=>fn(C.value)),w=e.computed(()=>n.teleport||"body"),V=/^#(?:[\da-fA-F]{3}|[\da-fA-F]{6}|[\da-fA-F]{8})$/,z=Q=>yn(Q,C.value),X=Q=>!!(!x.value&&Vt(Q)),L=e.computed(()=>{const Q=Vt(c.value).trim();return Q?V.test(Q)?`bg-[${Q}] border-[${Q}]`:`bg-${Q.toLowerCase()}-500 border-${Q.toLowerCase()}-500`:""}),{optionsList:E,parentValue:S,fetchOptions:N,fetchOptionByValue:v,loadOptions:$}=hn({props:n,formValues:a,watchParent:!1}),R=(Q,de,he)=>{if(!s)return!1;const Be=s.value?.[Q]??{},$e=(Ae,Ce,Ve)=>{if(!Ce.length)return Ae;const[Se,...Ne]=Ce,Le={...Ae};if(!Ne.length)return Le[Se]=Ve,Le;const Ie=typeof Ae[Se]=="object"&&Ae[Se]!==null?Ae[Se]:{};return Le[Se]=$e(Ie,Ne,Ve),Le},Re=$e(Be,de,he);return s.value={...s.value||{},[Q]:Re},!0},B=Q=>{if(!n.set)return;const de=a?.value;!de&&!s||Object.entries(n.set).forEach(([he,Be])=>{if(!he)return;const $e=Q?Q[Be]:null,Re=he.split(".").map(Ve=>Ve.trim()).filter(Boolean);if(!Re.length)return;const[Ae,...Ce]=Re;Ce.length&&R(Ae,Ce,$e??null)||de&&(de[Ae]=$e??null)})},F=Q=>l.value?.toString?.()===Q?.toString?.(),D=()=>{if(!p.value||typeof window>"u")return;const Q=p.value.getBoundingClientRect(),de=8,he=8,Be=window.innerHeight||document.documentElement.clientHeight,$e=window.innerWidth||document.documentElement.clientWidth,Re=h.value?.offsetHeight||260,Ae=Math.max(Q.width,176),Ce=Math.max($e-de*2,120),Ve=Math.min(Ae,Ce);let Se=Q.left;Se+Ve+de>$e&&(Se=$e-Ve-de),Se=Math.max(Se,de);const Ne=Be-Q.bottom-he-de,Le=Q.top-he-de,Ie=Ne<Math.min(Re,260)&&Le>Ne,Qe=Math.max(120,Math.min(320,Ie?Le:Ne));k.value={position:"fixed",left:`${Se}px`,top:Ie?`${Q.top-he}px`:`${Q.bottom+he}px`,transform:Ie?"translateY(-100%)":"none",width:`${Ve}px`,maxHeight:`${Qe}px`}},Z=async()=>{if(n.data){E.value=await N("");return}await $()},G=async()=>{if(l.value==null||l.value===""){c.value=null,B(null);return}const Q=E.value.find(de=>de.id?.toString()===String(l.value));if(Q){c.value=Q,B(Q);return}c.value=await v(l.value),B(c.value??null)},ee=async()=>{i.value||(d.value=!0,await Z(),await e.nextTick(),D())},le=()=>{d.value=!1},we=async()=>{if(d.value){le();return}await ee()},me=Q=>{r("value-selected",{name:n.name,value:Q?.id??null,option:Q})},ne=Q=>{c.value=Q,l.value=Q.id,r("change",Q.id),me(Q),B(Q),le()},ie=Q=>{const de=Q.target;u.value?.contains(de)||h.value?.contains(de)||le()},ge=()=>{d.value&&D()};return e.watch(()=>n.options,Q=>{n.data||(E.value=Q?[...Q]:[],G())},{immediate:!0,deep:!0}),e.watch(l,()=>{G()}),e.watch(S,async()=>{n.data&&(await Z(),c.value&&!E.value.some(Q=>Q.id?.toString()===c.value?.id?.toString())&&(c.value=null,l.value=null,r("change",null),me(null),B(null)))}),e.onMounted(async()=>{document.addEventListener("click",ie,!0),window.addEventListener("resize",ge),window.addEventListener("scroll",ge,!0),await Z(),await G()}),e.onUnmounted(()=>{document.removeEventListener("click",ie,!0),window.removeEventListener("resize",ge),window.removeEventListener("scroll",ge,!0)}),(Q,de)=>(e.openBlock(),e.createElementBlock("div",{class:"relative inline-flex w-full max-w-full",ref_key:"rootRef",ref:u,onClick:de[0]||(de[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("button",{ref_key:"triggerRef",ref:p,type:"button",disabled:i.value,"aria-expanded":d.value?"true":"false","aria-haspopup":"menu",class:e.normalizeClass(["py-1.5 px-2.5 inline-flex items-center gap-2 text-nowrap text-xs sm:text-[13px] rounded-lg focus:outline-hidden disabled:opacity-50 disabled:pointer-events-none max-w-full border",L.value?`${L.value} text-white`:"bg-secondary text-secondary-foreground hover:bg-secondary-hover focus:bg-secondary-focus border-gray-300 hover:border-gray-400"]),onClick:we},[e.createElementVNode("span",ci,e.toDisplayString(y.value),1)],10,ii),(e.openBlock(),e.createBlock(e.Teleport,{to:w.value},[d.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:h,class:"z-[3000] w-44 transition-[opacity,margin] duration-150 bg-white text-gray-900 border border-gray-200 rounded-xl shadow-lg",style:e.normalizeStyle(k.value),role:"menu","aria-orientation":"vertical"},[e.createElementVNode("div",di,[e.createElementVNode("span",ui,[e.createElementVNode("span",pi,e.toDisplayString(g.value),1)])]),e.createElementVNode("div",fi,[e.createElementVNode("div",mi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(E),he=>(e.openBlock(),e.createElementBlock("label",{key:he.id,class:"py-1.5 px-3 group flex items-center gap-x-3 rounded-lg cursor-pointer text-[13px] text-gray-800 hover:bg-gray-100",onClick:e.withModifiers(Be=>ne(he),["prevent"])},[e.createElementVNode("input",{type:"radio",class:"hidden",name:m,checked:F(he.id),tabindex:"-1"},null,8,gi),e.createElementVNode("span",yi,[X(he)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"shrink-0 size-2 block mx-auto rounded-full",style:e.normalizeStyle({backgroundColor:he.color})},null,4)):(e.openBlock(),e.createElementBlock("span",bi))]),e.createElementVNode("span",ki,e.toDisplayString(z(he)),1),e.createVNode(e.unref(H.Check),{class:e.normalizeClass(["shrink-0 size-3.5 ms-auto transition-opacity",F(he.id)?"opacity-100":"opacity-0"])},null,8,["class"])],8,hi))),128))]),e.unref(E).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",xi,"Немає варіантів"))])],4)):e.createCommentVNode("",!0)],8,["to"]))],512))}}),wi=["placeholder","disabled"],Oo=e.defineComponent({__name:"vs-input-textarea",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=Oe(t.style),r=e.useModel(o,"modelValue"),l=e.computed(()=>!!t.disabled),a=e.computed(()=>t.placeholder??"");function s(){typeof r.value=="string"&&(r.value=r.value.trim())}return(i,c)=>e.withDirectives((e.openBlock(),e.createElementBlock("textarea",{"onUpdate:modelValue":c[0]||(c[0]=d=>r.value=d),placeholder:a.value,disabled:l.value,row:"2",onBlur:s,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] h-auto bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"}},null,42,wi)),[[e.vModelText,r.value]])}}),Po=e.defineComponent({__name:"vs-input-richtext",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{},format:{default:"html"},richtextProps:{default:()=>({})}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=e.defineAsyncComponent(()=>Promise.resolve().then(()=>h0)),n=o,{inputClass:r}=Oe(n.style),l=e.useModel(o,"modelValue"),a=e.computed(()=>!!n.disabled),s=e.computed(()=>n.placeholder??""),i=e.computed(()=>({height:n.richtextProps.height||"300px",format:n.format,...n.richtextProps}));return(c,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["!h-full",[c.customClass,e.unref(r)]]),style:e.normalizeStyle(a.value?{pointerEvents:"none",opacity:.6}:{})},[e.createVNode(e.unref(t),e.mergeProps({modelValue:l.value,"onUpdate:modelValue":d[0]||(d[0]=u=>l.value=u),placeholder:s.value},i.value),null,16,["modelValue","placeholder"])],6))}}),_i={},Ci={viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function vi(o,t){return e.openBlock(),e.createElementBlock("svg",Ci,t[0]||(t[0]=[e.createStaticVNode('<rect x="27" y="50.5" width="124" height="39" rx="7.5" fill="currentColor" class="fill-white dark:fill-neutral-800"></rect><rect x="27" y="50.5" width="124" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-50 dark:stroke-neutral-700/10"></rect><rect x="34.5" y="58" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="66.5" y="61" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="66.5" y="73" width="77" height="6" rx="3" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="19.5" y="28.5" width="139" height="39" rx="7.5" fill="currentColor" class="fill-white dark:fill-neutral-800"></rect><rect x="19.5" y="28.5" width="139" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-100 dark:stroke-neutral-700/30"></rect><rect x="27" y="36" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><rect x="59" y="39" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><rect x="59" y="51" width="92" height="6" rx="3" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><g filter="url(#filter1)"><rect x="12" y="6" width="154" height="40" rx="8" fill="currentColor" class="fill-white dark:fill-neutral-800" shape-rendering="crispEdges"></rect><rect x="12.5" y="6.5" width="153" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-100 dark:stroke-neutral-700/60" shape-rendering="crispEdges"></rect><rect x="20" y="14" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect><rect x="52" y="17" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect><rect x="52" y="29" width="106" height="6" rx="3" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect></g><defs><filter id="filter1" x="0" y="0" width="178" height="64" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"></feColorMatrix><feOffset dy="6"></feOffset><feGaussianBlur stdDeviation="6"></feGaussianBlur><feComposite in2="hardAlpha" operator="out"></feComposite><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03 0"></feColorMatrix><feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1187_14810"></feBlend><feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1187_14810" result="shape"></feBlend></filter></defs>',12)]))}const Ei=ke(_i,[["render",vi]]),Bi={class:"bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden flex flex-col"},Vi={key:0,class:"flex flex-col gap-2 !p-4 border-b border-gray-200 md:flex-row md:items-center md:justify-between bg-gray-50"},Si={key:0,class:"relative flex-1 min-w-0"},$i={class:"flex flex-nowrap items-center justify-end gap-2 shrink-0"},Ni={class:"w-full overflow-x-auto"},Ai={class:"w-full min-w-[640px] table-auto divide-y divide-gray-200"},Mi={class:"bg-gray-50"},Fi={class:"border-b border-gray-200"},Di={class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 w-12 text-center"},Ti=["onClick"],Li={key:0,class:"text-gray-400"},Ii={key:0,colspan:"100%",class:"text-center"},Ri={class:"w-full"},Oi={class:"p-5 min-h-[200px] flex flex-col justify-center items-center text-center"},Pi=["data-row-index","onDragstart","onDragover","onDrop"],zi=["onPointerdown"],ji={class:"flex items-center justify-center"},Ui=["innerHTML"],Hi={key:0,class:"flex items-center gap-3 text-sm text-gray-700"},qi={key:0},Ki=["src"],Wi={key:1,class:"rounded-md max-w-[45px] w-[45px] max-h-[45px] h-[45px] bg-gray-200 flex items-center justify-center"},Gi={key:1,class:"flex items-center justify-center"},Yi={key:2,class:"text-sm font-medium text-gray-900"},Xi={class:"px-4 py-3 text-right whitespace-nowrap"},Zi={class:"flex items-center justify-end gap-2"},Ji=["onClick"],Qi=["onClick"],ec={class:"vs-form__head mr-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},zo=e.defineComponent({__name:"vs-input-datatable",props:e.mergeModels({actions:{},colModel:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useSlots(),r=U=>t.actions===void 0?!0:t.actions.includes(U),l=["search","import","export","add"],a=e.computed(()=>l.some(U=>r(U))),s=e.useModel(o,"modelValue"),i=e.ref({}),c=e.ref(""),d=e.ref(null),u=e.ref("asc"),p=e.computed(()=>{const U=s.value??[],J=c.value?U.filter(W=>h.value?.some(_e=>{const O=_e.key||_e.name;if(!O)return!1;const j=W[O];return j?Array.isArray(j)?j.join(", ").toLowerCase().includes(c.value.toLowerCase()):String(j).toLowerCase().includes(c.value.toLowerCase()):!1})):U;if(!d.value)return J;const re=d.value,I=[...J].sort((W,_e)=>{const O=$e(W?.[re]),j=$e(_e?.[re]);return typeof O=="number"&&typeof j=="number"?O-j:String(O).localeCompare(String(j))});return u.value==="asc"?I:I.reverse()}),h=e.computed(()=>(t.colModel??[]).filter(U=>!U.tableHidden)),k=e.ref(null),m=e.ref(null),g=e.ref(null);function y(U){return U.pointerType==="touch"||U.pointerType==="pen"}function C(U,J){const I=document.elementFromPoint(U,J)?.closest?.("[data-row-index]")??null;if(!I)return null;const W=I.getAttribute("data-row-index");if(W==null)return null;const _e=Number.parseInt(W,10);return Number.isNaN(_e)?null:_e}function x(U,J){y(U)&&(U.preventDefault(),U.currentTarget.setPointerCapture(U.pointerId),k.value=J,m.value=J)}function w(U){if(k.value===null||!y(U))return;U.preventDefault();const J=C(U.clientX,U.clientY);J!==null&&(m.value=J)}function V(U){if(k.value===null||!y(U))return;U.preventDefault();const J=C(U.clientX,U.clientY);E(J??k.value);try{U.currentTarget.releasePointerCapture(U.pointerId)}catch{}}function z(U){if(y(U)){k.value=null,m.value=null;try{U.currentTarget.releasePointerCapture(U.pointerId)}catch{}}}const X=U=>{k.value=U},L=U=>{m.value=U},E=U=>{if(k.value===null||k.value===U){k.value=null,m.value=null;return}const J=[...s.value],[re]=J.splice(k.value,1);J.splice(U,0,re),s.value=J,k.value=null,m.value=null},S=()=>{g.value&&g.value.click()},N=U=>{const J=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".ico",".tiff",".tif"],re=U.toLowerCase();return J.some(I=>re.endsWith(I))},v=U=>{const re=U.target.files?.[0];if(!re)return;const I=new FileReader;I.onload=W=>{try{const _e=W.target?.result;if(typeof _e=="string"){const O=JSON.parse(_e);Array.isArray(O)&&s.value.push(...O)}}catch(_e){console.error("Error parsing file:",_e)}},I.readAsText(re)},$=()=>{const U=JSON.stringify(s.value,null,2),J=new Blob([U],{type:"application/json"}),re=URL.createObjectURL(J),I=document.createElement("a");I.href=re,I.download="data.json",I.click(),URL.revokeObjectURL(re)},R=new Set(["autocomplete","select","radio","checkbox","combobox"]),B=new Map,F=(U,J)=>{const re=`/api/suggest/${U}`,I=re.includes("?")?"&":"?",W=J?`&val=${J}`:"";return`${re}${I}json=1${W}`},D=U=>U==null||U===""?null:typeof U=="object"?U?.id!==void 0&&U.id!==null&&U.id!==""?U.id:null:U,Z=U=>{const J=new Set;return Array.isArray(s.value)&&s.value.forEach(re=>{const I=re?.[U];if(I==null||I==="")return;if(Array.isArray(I)){I.forEach(_e=>{const O=D(_e);O!==null&&J.add(O)});return}const W=D(I);W!==null&&J.add(W)}),J},G=async()=>{if(!t.colModel?.length)return;const U=t.colModel.filter(J=>J.data&&R.has(J.type?.toLowerCase()||""));U.length&&await Promise.all(U.map(async J=>{const re=J.key||J.name;if(!re)return;const I=Z(re),W=Array.from(I).map(j=>String(j)).sort(),_e=W.join(",");if(!W.length||B.get(re)===_e)return;B.set(re,_e);const O=W.map(encodeURIComponent).join(",");try{const q=await(await fetch(F(J.data,O))).json();i.value[re]=q?.data??q}catch(j){console.error("Failed to fetch column values",j)}}))};e.watch([()=>t.colModel,()=>s.value],()=>{G()},{immediate:!0,deep:!0});const ee=e.ref(""),le=e.ref(!1);let we="edit",me=0;const ne=U=>(U?.format||U?.type||"").toString().toLowerCase(),ie=e.computed(()=>(t.colModel?.filter(J=>ne(J)!=="slot")??[]).map(J=>{const re=J.key||J.name;return re?{...J,name:re,key:re}:J})),ge=e.ref({}),Q=e.ref({}),de=U=>typeof U!="string"?!1:!!n[U],he=(U,J)=>J?J.split(".").reduce((re,I)=>re==null?re:re[I.trim()],U):U,Be=(U,J)=>typeof U!="string"?"":U.replace(/{{\s*([^}]+)\s*}}/g,(re,I)=>{const W=he(J,I.trim());return W??""}),$e=U=>{if(U==null||U==="")return"";if(typeof U=="number")return U;if(typeof U=="boolean")return U?1:0;if(typeof U=="string")return U.toLowerCase();if(Array.isArray(U))return U.map(J=>$e(J)).join(", ");if(typeof U=="object"){if(U.text!==void 0)return String(U.text).toLowerCase();if(U.label!==void 0)return String(U.label).toLowerCase();if(U.id!==void 0)return String(U.id).toLowerCase()}return String(U).toLowerCase()},Re=U=>{const J=U.key||U.name;if(J){if(d.value===J){u.value=u.value==="asc"?"desc":"asc";return}d.value=J,u.value="asc"}};async function Ae(){ee.value="Додати",le.value=!0,we="add",ge.value={}}function Ce(U,J){if(!U?.length)return null;const re=typeof J=="object"?J?.id:J;return re==null||re===""?null:U.find(I=>I?.id?.toString()===re.toString())?.text??null}function Ve(U){return U==null||U===""?"-":Array.isArray(U)?U.map(J=>typeof J=="object"?J?.text??J?.id??"-":J).join(", "):typeof U=="object"?U?.text??U?.id??"-":U}function Se(U,J){const re=J.key||J.name,I=U?.[re],W=i.value[re];if(!I)return"-";if(Array.isArray(I)){const O=I.map(j=>Ce(W,j)).filter(Boolean);return O.length?O.join(", "):Ve(I)}const _e=Ce(W,I);return _e||Ve(I)}async function Ne(U,J){ee.value="Редагувати",le.value=!0,we="edit",me=J,ge.value={...U}}function Le(){const U=Q.value.validate();if(U){fe.notify({type:"warning",title:"Помилка валідації",message:Object.entries(U).map(([J,re])=>`${J}: ${re}`).join(`
1
+ (function(ye,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@opengis/core"),require("lucide-vue-next")):typeof define=="function"&&define.amd?define(["exports","vue","@opengis/core","lucide-vue-next"],e):(ye=typeof globalThis<"u"?globalThis:ye||self,e(ye.FormBuilder={},ye.Vue,ye.OpenGISCore,ye.lucide))})(this,function(ye,e,fe,H){"use strict";const Bo=e.defineComponent({__name:"vs-info-tooltip",props:{text:{}},setup(o){const t=o,n=e.ref(!1),r=e.ref({top:"0px",left:"0px"});function l(s){if(!t.text)return;const i=s.currentTarget.getBoundingClientRect();r.value={top:`${i.bottom+4}px`,left:`${Math.min(i.left,window.innerWidth-230)}px`},n.value=!0}function a(){n.value=!1}return(s,i)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("span",{class:"inline-flex items-center",onMouseenter:l,onMouseleave:a},[e.renderSlot(s.$slots,"default",{},()=>[e.createVNode(e.unref(H.Info),{class:"h-4 w-4 text-gray-400 cursor-help"})])],32),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[n.value&&s.text?(e.openBlock(),e.createElementBlock("div",{key:0,style:e.normalizeStyle(r.value),class:"fixed z-[9999] max-w-xs p-2 bg-gray-900 text-white text-xs rounded-lg shadow-lg pointer-events-none"},e.toDisplayString(s.text),5)):e.createCommentVNode("",!0)]))],64))}}),Qr={class:"w-full relative"},el={key:0,class:"text-[14px] font-medium text-gray-900 mb-2 flex items-center gap-1"},tl={class:"opacity-100"},nl={key:0,class:"text-red-500 text-[14px]"},ol={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},rl=e.defineComponent({__name:"vs-layout-default",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(o){const t=o,n=e.computed(()=>typeof t.item?.label=="string"&&t.item.label?t.item.label:t.item?.ua||t.label||t.ua),r=e.computed(()=>!!n.value),l=e.computed(()=>!!t.item?.rules?.includes("required")),a=e.computed(()=>t.item?.info||"");return(s,i)=>(e.openBlock(),e.createElementBlock("div",Qr,[r.value?(e.openBlock(),e.createElementBlock("div",el,[e.createElementVNode("span",tl,e.toDisplayString(n.value),1),l.value?(e.openBlock(),e.createElementBlock("span",nl,"*")):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createBlock(Bo,{key:1,text:a.value},null,8,["text"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(s.$slots,"default",e.mergeProps(s.$attrs,{class:{"opacity-60":s.item.disabled}})),s.error?(e.openBlock(),e.createElementBlock("span",ol,e.toDisplayString(s.error),1)):e.createCommentVNode("",!0)]))}}),ll={class:"w-full relative flex flex-row items-center gap-2"},al={key:0,class:"text-red-500 text-[14px]"},sl={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},il=e.defineComponent({__name:"vs-layout-horizontal",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{default:()=>({container:12,label:3})}},setup(o){const t=o,n=e.computed(()=>t.item?.label||t.label||t.ua),r=e.computed(()=>t.item?.info||""),l=e.computed(()=>t.columns??{container:12,label:3}),a=e.computed(()=>{const{container:d,label:u}=l.value;return!d||d<=0?0:Math.min(Math.max(u??0,0),d)/d}),s=e.computed(()=>t.item?.type==="html"||a.value<=0?!1:!!n.value),i=e.computed(()=>{if(!s.value)return{};const d=`${a.value*100}%`;return{flexBasis:d,maxWidth:d}}),c=e.computed(()=>{const{container:d,label:u}=l.value;if(!d||d<=0)return{};if(t.item?.type==="html")return{flexBasis:"100%",maxWidth:"100%"};if(!s.value)return{flexBasis:"100%",maxWidth:"100%"};const p=Math.max(d-Math.max(u??0,0),0)/d;if(!p)return{};const h=`${p*100}%`;return{flexBasis:h,maxWidth:h}});return(d,u)=>(e.openBlock(),e.createElementBlock("div",ll,[s.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"text-sm text-gray-900 font-medium flex shrink-0 items-center gap-1",style:e.normalizeStyle(i.value)},[e.createTextVNode(e.toDisplayString(n.value)+" ",1),d.item?.rules?.includes("required")&&n.value?(e.openBlock(),e.createElementBlock("span",al,"*")):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createBlock(Bo,{key:1,text:r.value},null,8,["text"])):e.createCommentVNode("",!0)],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"flex-1 min-w-0",style:e.normalizeStyle(c.value)},[e.renderSlot(d.$slots,"default",e.normalizeProps(e.guardReactiveProps(d.$attrs)))],4),d.error?(e.openBlock(),e.createElementBlock("span",sl,e.toDisplayString(d.error),1)):e.createCommentVNode("",!0)]))}}),cl={class:"w-full relative"},dl={key:0,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},ul=e.defineComponent({__name:"vs-layout-inline",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",cl,[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(t.$attrs))),t.error?(e.openBlock(),e.createElementBlock("span",dl,e.toDisplayString(t.error),1)):e.createCommentVNode("",!0)]))}}),pl={class:"flex-1 min-w-0"},fl={key:0,class:"text-sm font-medium text-slate-700 dark:text-slate-200 flex items-center gap-1"},ml={class:"truncate"},hl={key:0,class:"text-red-500 text-[14px]"},gl=["innerHTML"],yl={key:0,class:"mt-1 text-xs text-red-500"},bl={default:rl,horizontal:il,inline:ul,settings:e.defineComponent({__name:"vs-layout-settings",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(o){const t=o,n=e.ref("uk");e.computed(()=>(t.item??{})?.[n.value]??t.ua??t.label??"");const r=e.computed(()=>t.item?.description??""),l=e.computed(()=>Array.isArray(t.item?.rules)&&t.item.rules.includes("required")),a=e.computed(()=>(typeof t.error=="string"?t.error:"")??""),s=()=>{const i=typeof localStorage<"u"?localStorage.getItem("locale"):null;n.value=i||"uk"};return e.onMounted(()=>{try{typeof localStorage<"u"&&localStorage.locale&&(n.value=localStorage.locale)}catch{}window.addEventListener("storage",s)}),e.onUnmounted(()=>{window.removeEventListener("storage",s)}),(i,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["w-full relative",{"opacity-60":i.item?.disabled}])},[e.createElementVNode("div",{class:e.normalizeClass(["gap-2 md:flex-row md:items-center md:justify-between",[["switcher","native-select"].includes(i.item.type)?"flex flex-col":""]])},[e.createElementVNode("div",pl,[i.ua||i.label?(e.openBlock(),e.createElementBlock("p",fl,[e.createElementVNode("span",ml,e.toDisplayString(i.item[n.value]||i.ua||i.label),1),l.value?(e.openBlock(),e.createElementBlock("span",hl,"*")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createElementBlock("p",{key:1,class:"text-xs text-slate-500 dark:text-slate-400",innerHTML:r.value},null,8,gl)):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:e.normalizeClass(["w-full",["select","native-select"].includes(i.item.type)?"md:w-[30%]":"md:w-auto"])},[e.renderSlot(i.$slots,"default",e.normalizeProps(e.guardReactiveProps(i.$attrs)))],2)],2),a.value?(e.openBlock(),e.createElementBlock("p",yl,e.toDisplayString(a.value),1)):e.createCommentVNode("",!0)],2))}})};function Oe(o){return{inputClass:e.computed(()=>{const n=`disabled:opacity-50 disabled:cursor-not-allowed outline-none focus:ring-2 focus:ring-ring focus:ring-${o?.primaryColor||"blue"}-500 border border-solid border-stone-200 rounded-md text-sm text-stone-800 placeholder:text-stone-400 `;return o?.size==="sm"?`${n}h-[32px]`:`${n}h-[38px]`})}}const kl=["placeholder","disabled"],xl=e.defineComponent({__name:"vs-input-password",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=Oe(t.style),r=e.useModel(o,"modelValue"),l=e.computed(()=>!!t.disabled),a=e.computed(()=>t.placeholder??"");return(s,i)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"password","onUpdate:modelValue":i[0]||(i[0]=c=>r.value=c),placeholder:a.value,disabled:l.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n),{"!border-red-600":s.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,kl)),[[e.vModelText,r.value]])}}),wl=["placeholder","disabled","maxlength","minlength"],zt=e.defineComponent({__name:"vs-input-text",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=Oe(t.style),r=e.useModel(o,"modelValue"),l=e.computed(()=>!!t.disabled),a=e.computed(()=>t.placeholder??""),s=e.computed(()=>t.maxlength??void 0),i=e.computed(()=>t.minlength??void 0);function c(){typeof r.value=="string"&&(r.value=r.value.trim())}return(d,u)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"text","onUpdate:modelValue":u[0]||(u[0]=p=>r.value=p),placeholder:a.value,disabled:l.value,maxlength:s.value,minlength:i.value,onBlur:c,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[d.customClass,e.unref(n),{"!border-red-600":d.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,wl)),[[e.vModelText,r.value]])}}),_l=["step","placeholder","disabled","min","max"],Vo=e.defineComponent({__name:"vs-input-number",props:e.mergeModels({style:{type:Object,default:()=>({})},placeholder:{type:String,default:""},disabled:{type:Boolean,default:!1},min:{type:Number,default:void 0},max:{type:Number,default:void 0},step:{type:[Number,String],default:void 0}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=Oe(t.style),r=e.useAttrs(),l=e.useModel(o,"modelValue"),a=e.computed(()=>!!t.disabled),s=u=>{if(u==null||u==="")return;const p=typeof u=="string"?u.trim().replace(",","."):u,h=Number(p);return Number.isFinite(h)?h:void 0},i=e.computed(()=>s(t.min??r.min)),c=e.computed(()=>s(t.max??r.max)),d=e.computed(()=>{if(t.step!==void 0&&t.step!==null&&t.step!=="")return t.step;const u=r.step;return typeof u=="number"||typeof u=="string"?u:"any"});return(u,p)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"number",step:d.value,"onUpdate:modelValue":p[0]||(p[0]=h=>l.value=h),placeholder:o.placeholder,disabled:a.value,class:e.normalizeClass(["py-1.5 px-3 block w-full bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"},min:i.value,max:c.value},null,10,_l)),[[e.vModelText,l.value]])}}),fn=o=>!!String(o??"").trim(),Vt=o=>o?.color?String(o.color):"",Wt=o=>{const t=o?.icon;if(typeof t=="string")return t;const n=o?.imgUrl;return typeof n=="string"?n:""},Gt=o=>{const t=o?.icon;return t&&typeof t!="string"?t:null},Cl={class:"flex items-center gap-[4px]"},vl=["value","id","disabled"],El=["for"],Bl=["innerHTML"],Vl={key:1,class:"text-[14px] text-gray-700 flex items-center gap-2 dark:text-neutral-400"},Sl=["src"],$l=e.defineComponent({__name:"vs-checkbox-default",props:{value:{default:""},label:{default:""},html:{default:""},disabled:{type:Boolean,default:!1},id:{},modelValue:{default:""},info:{},error:{},option:{default:null}},emits:["update:modelValue"],setup(o,{emit:t}){const n=t,r=o,l=e.computed({get:()=>r.modelValue,set:k=>n("update:modelValue",k)}),a=e.computed(()=>!!r.disabled),s=e.computed(()=>Wt(r.option)),i=e.computed(()=>Gt(r.option)),c=e.computed(()=>Vt(r.option)),d=e.computed(()=>!!(c.value&&!s.value&&!i.value)),u=e.computed(()=>!!(s.value&&c.value)),p=e.computed(()=>c.value?{color:c.value}:void 0),h=e.computed(()=>{if(!(!s.value||!c.value))return{backgroundColor:c.value,WebkitMaskImage:`url(${s.value})`,maskImage:`url(${s.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(k,m)=>(e.openBlock(),e.createElementBlock("div",Cl,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",value:k.value,"onUpdate:modelValue":m[0]||(m[0]=g=>l.value=g),class:e.normalizeClass(["shrink-0 border border-solid hidden border-gray-700 w-3.5 h-3.5 rounded text-blue-600 focus:ring-offset-0 dark:bg-neutral-800 dark:border-neutral-700 cursor-pointer",{"!cursor-not-allowed":a.value}]),id:k.id,disabled:a.value},null,10,vl),[[e.vModelCheckbox,l.value]]),e.createElementVNode("label",{for:k.id,class:e.normalizeClass(["flex flex-1 checkbox-label items-center gap-x-2 cursor-pointer text-sm text-gray-800 dark:text-neutral-300",{"!cursor-not-allowed":a.value}])},[e.createElementVNode("div",{class:e.normalizeClass(["h-[16px] text-white w-[16px] flex items-center justify-center shrink-0 border rounded",[l.value?"bg-blue-600 border-blue-600":"bg-white border-gray-600",k.error?"border-red-600":""]])},[e.createVNode(e.unref(H.Check),{class:"h-4 w-4"})],2),k.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:k.html},null,8,Bl)):(e.openBlock(),e.createElementBlock("span",Vl,[d.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:c.value})},null,4)):e.createCommentVNode("",!0),u.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(h.value)},null,4)):s.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:s.value,alt:"icon"},null,8,Sl)):i.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(p.value)},null,8,["style"])):e.createCommentVNode("",!0),e.renderSlot(k.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(k.label),1)])]))],10,El)]))}}),Nl=["name","value","disabled"],Al=["innerHTML"],Ml={key:1,class:"flex items-center gap-[6px] text-[14px]"},Fl={key:2,class:"text-[16px] inline-flex items-center justify-center"},Dl=["src"],Tl=e.defineComponent({__name:"vs-checkbox-buttons",props:{value:{type:[String,Number,Boolean],default:""},label:{default:""},html:{default:""},modelValue:{default:""},disabled:{type:Boolean},id:{},icon:{},imgUrl:{},style:{},option:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,l=e.computed({get:()=>n.modelValue,set:g=>{r("update:modelValue",g)}}),a=e.computed(()=>Array.isArray(l.value)?l.value.includes(n.value):l.value===!0||l.value===n.value),s=e.computed(()=>n.style?.size==="xs"?"p-1.5 text-xs":n.style?.size==="lg"?"p-3.5 text-[20px]":"p-2.5 text-xs"),i=e.computed(()=>({...n.option??{},icon:n.option?.icon??n.icon,imgUrl:n.option?.imgUrl??n.imgUrl,color:n.option?.color})),c=e.computed(()=>Wt(i.value)),d=e.computed(()=>Gt(i.value)),u=e.computed(()=>Vt(i.value)),p=e.computed(()=>!!(u.value&&!c.value&&!d.value)),h=e.computed(()=>!!(c.value&&u.value)),k=e.computed(()=>u.value?{color:u.value}:void 0),m=e.computed(()=>{if(!(!c.value||!u.value))return{backgroundColor:u.value,WebkitMaskImage:`url(${c.value})`,maskImage:`url(${c.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(g,y)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["group relative flex justify-center items-center gap-x-3 text-center bg-white text-gray-800 ring-ring ring-2 cursor-pointer rounded-lg",[s.value,a.value?"ring-blue-500":"border border-gray-200 ring-transparent"]])},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",class:"hidden",name:g.id,value:g.value,"onUpdate:modelValue":y[0]||(y[0]=C=>l.value=C),disabled:g.disabled},null,8,Nl),[[e.vModelCheckbox,l.value]]),g.html?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-full",innerHTML:g.html},null,8,Al)):(e.openBlock(),e.createElementBlock("span",Ml,[p.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:u.value})},null,4)):e.createCommentVNode("",!0),h.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(m.value)},null,4)):c.value||d.value?(e.openBlock(),e.createElementBlock("span",Fl,[c.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:c.value,width:"16",height:"16",alt:"icon"},null,8,Dl)):d.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),{key:1,class:"h-4 w-4",style:e.normalizeStyle(k.value)},null,8,["style"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(g.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(g.label),1)])]))],2))}}),Ll={class:"flex items-center"},qn=e.defineComponent({__name:"vs-input-checkbox-item",props:{value:{default:""},label:{default:""},labelHtml:{default:""},disabled:{type:Boolean,default:!1},view:{default:"default"},modelValue:{type:[Boolean,Array],default:!1},icon:{},imgUrl:{},slots:{},option:{},style:{},error:{default:""}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,l=`radio-${Math.floor(Math.random()*1e4)}`,a=e.computed({get:()=>Array.isArray(n.modelValue)?Array.isArray(n.modelValue)&&n.modelValue.includes(n.value):n.modelValue,set:i=>{if(Array.isArray(n.modelValue)){let c=[...n.modelValue];i?c.includes(n.value)||c.push(n.value):c=c.filter(d=>d!==n.value),r("update:modelValue",c)}else r("update:modelValue",i)}}),s=e.ref(`vs-checkbox-${n.view||"default"}`);return(i,c)=>(e.openBlock(),e.createElementBlock("div",Ll,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value==="vs-checkbox-buttons"?e.unref(Tl):e.unref($l)),{value:i.value,label:i.label,html:i.labelHtml,info:i.option?.info,disabled:i.disabled,modelValue:a.value,"onUpdate:modelValue":c[0]||(c[0]=d=>a.value=d),id:l,icon:i.icon,imgUrl:i.imgUrl,option:i.option,style:e.normalizeStyle(i.style),error:i.error},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.label),1)]),_:1},8,["value","label","html","info","disabled","modelValue","icon","imgUrl","option","style","error"]))]))}}),Il={key:0,class:"flex items-start gap-x-1"},Rl={key:0,class:"text-red-500 text-[14px]"},Ol=["title"],Pl=["disabled"],Kn=e.defineComponent({__name:"vs-input-switcher",props:e.mergeModels({rules:{default:()=>[]},view:{default:"checkbox"},label:{default:""},i:{default:""},text:{default:""},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue");return(r,l)=>t.view==="checkbox"?(e.openBlock(),e.createElementBlock("div",Il,[e.createVNode(qn,{modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=a=>n.value=a),error:r.error||""},null,8,["modelValue","error"]),r.rules?.includes("required")?(e.openBlock(),e.createElementBlock("span",Rl,"*")):e.createCommentVNode("",!0),r.i?(e.openBlock(),e.createElementBlock("button",{key:1,class:"cursor-pointer",title:r.i,onClick:l[1]||(l[1]=e.withModifiers(()=>{},["prevent"]))},[e.createVNode(e.unref(H.Info),{class:"h-4 w-4 text-gray-500"})],8,Ol)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:e.normalizeClass(["inline-flex h-5 w-9 shrink-0 px-[2px] cursor-pointer items-center rounded-full shadow-sm disabled:cursor-not-allowed disabled:opacity-50",[n.value?`bg-${r.style?.primaryColor||"blue"}-500`:"bg-stone-200",r.customClass]]),disabled:r.disabled,onClick:l[2]||(l[2]=a=>n.value=!n.value)},[e.createElementVNode("span",{"data-state":"checked",class:e.normalizeClass(["pointer-events-none block h-4 w-4 rounded-full bg-white shadow-lg ring-0 transition-transform",[n.value?"translate-x-4":"translate-x-0"]])},null,2)],10,Pl))}}),zl=["id","innerHTML"],Wn=e.defineComponent({__name:"vs-input-static",props:{text:{default:""},html:{default:""},style:{},customClass:{default:""},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",{id:t.name,class:e.normalizeClass(["text-gray-900",t.customClass]),innerHTML:t.html?t.html:t.text},null,10,zl))}}),jl=["placeholder","disabled","name"],mn=e.defineComponent({__name:"vs-input-mask",props:e.mergeModels({name:{},mask:{default:""},unmask:{type:Boolean,default:!1},placeholder:{default:"_"},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=Oe(t.style),r=e.useModel(o,"modelValue"),l=e.ref(null);let a=null;function s(i){const c={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},d=new Set;let u=!1;for(let h=0;h<i.length;h+=1){const k=i[h];k==="{"?u=!0:k==="}"?u=!1:u&&d.add(k)}const p={};return Object.keys(c).forEach(h=>{d.has(h)||(p[h]=c[h])}),{mask:i,definitions:p,lazy:!1}}return e.onMounted(async()=>{if(l.value){const{default:i}=await Promise.resolve().then(()=>Pn),c=s(t.mask||"");a=i(l.value,c),a.on("accept",()=>{r.value=t.unmask?a.unmaskedValue:a.value}),a.on("complete",()=>{r.value=t.unmask?a.unmaskedValue:a.value}),a.value=r.value!=null?String(r.value):""}}),e.onBeforeUnmount(()=>{a?.destroy()}),e.watch(()=>t.mask,i=>{if(a){const c=s(i||"");a.updateOptions(c)}}),e.watch(r,i=>{a&&a.unmaskedValue!==i&&(a.value=i!=null?String(i):"")}),(i,c)=>(e.openBlock(),e.createElementBlock("input",{type:"text",ref_key:"inputEl",ref:l,placeholder:i.placeholder,disabled:i.disabled,name:i.name,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"}},null,10,jl))}}),Ul={class:"relative w-full bg-white rounded-lg"},Hl={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},ql=["placeholder","disabled"],Gn=e.defineComponent({__name:"vs-input-email",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=Oe(t.style),r=e.useModel(o,"modelValue");return(l,a)=>(e.openBlock(),e.createElementBlock("div",Ul,[e.createElementVNode("div",Hl,[e.createVNode(e.unref(H.Mail),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.withDirectives(e.createElementVNode("input",{type:"email","onUpdate:modelValue":a[0]||(a[0]=s=>r.value=s),placeholder:l.placeholder,disabled:l.disabled,class:e.normalizeClass(["!pl-8 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n),{"!border-red-600":l.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,ql),[[e.vModelText,r.value]])]))}}),xt="+99(999)-999-99-99";function St(o){if(!o?.trim())return 0;const t=new Set(["9","0","a","A","*"]);let n=!1,r=0;for(let l=0;l<o.length;l+=1){const a=o[l];if(a==="{"){n=!0;continue}if(a==="}"){n=!1;continue}!n&&t.has(a)&&(r+=1)}return r}const Kl={class:"relative w-full bg-white rounded-lg"},Wl={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] pointer-events-none"},Gl=["name","placeholder","disabled","pattern"],Yn=e.defineComponent({__name:"vs-input-tel",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{},mask:{default:xt}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.computed(()=>`^\\+[1-9]\\d{${(St(t.mask||xt)||St(xt))-1}}$`),{inputClass:r}=Oe(t.style),l=e.useModel(o,"modelValue"),a=e.ref(null);let s=null;function i(u){const p={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},h=new Set;let k=!1;for(let g=0;g<u.length;g+=1){const y=u[g];y==="{"?k=!0:y==="}"?k=!1:k&&h.add(y)}const m={};return Object.keys(p).forEach(g=>{h.has(g)||(m[g]=p[g])}),{mask:u,definitions:m,lazy:!1,disabled:t.disabled}}function c(u){if(u==null||u==="")return"";const p=String(u).trim();return p?p.replace(/\D/g,""):""}function d(){if(!s)return;const u=s.unmaskedValue??"";l.value=u?`+${u}`:""}return e.onMounted(async()=>{if(!a.value)return;const{default:u}=await Promise.resolve().then(()=>Pn),p=i(t.mask||"");s=u(a.value,p),s.on("accept",d),s.on("complete",d);const h=c(l.value);s.unmaskedValue=h}),e.onBeforeUnmount(()=>{s?.destroy(),s=null}),e.watch(()=>t.mask,u=>{s&&s.updateOptions(i(u||""))}),e.watch(()=>t.disabled,u=>{s&&s.updateOptions({disabled:u})}),e.watch(l,u=>{if(!s)return;const p=c(u);s.unmaskedValue!==p&&(s.unmaskedValue=p)}),(u,p)=>(e.openBlock(),e.createElementBlock("div",Kl,[e.createElementVNode("div",Wl,[e.createVNode(e.unref(H.Phone),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.createElementVNode("input",{ref_key:"inputEl",ref:a,type:"tel",name:u.name,placeholder:u.placeholder,disabled:u.disabled,pattern:n.value,title:"Міжнародний номер (E.164), наприклад +380XXXXXXXXX",autocomplete:"tel",class:e.normalizeClass(["!pl-10 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(r),{"!border-red-600":u.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Gl)]))}}),Yl=["value","disabled"],Xl=["innerHTML"],Zl={key:1,class:"flex items-center gap-2"},Jl=["src"],Ql={class:"text-[13px] text-gray-700"},ea=e.defineComponent({__name:"vs-input-radio-default",props:e.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{},html:{default:""},option:{default:null}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>!!t.disabled),l=e.computed(()=>Wt(t.option)),a=e.computed(()=>Gt(t.option)),s=e.computed(()=>Vt(t.option)),i=e.computed(()=>!!(s.value&&!l.value&&!a.value)),c=e.computed(()=>!!(l.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),u=e.computed(()=>{if(!(!l.value||!s.value))return{backgroundColor:s.value,WebkitMaskImage:`url(${l.value})`,maskImage:`url(${l.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(p,h)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex items-center gap-0",[t.customClass,r.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[0]||(h[0]=k=>n.value=k),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,Yl),[[e.vModelRadio,n.value]]),e.createElementVNode("span",{class:e.normalizeClass(["w-[16px] shrink-0 h-[16px] border rounded-full flex items-center justify-center mr-[10px]",[`border-${t.style?.primaryColor||"blue"}-500`,r.value?"opacity-50 cursor-not-allowed":""]])},[n.value==t.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["w-[12px] h-[12px] shrink-0 rounded-full",[`bg-${t.style?.primaryColor||"blue"}-500`]])},null,2)):e.createCommentVNode("",!0)],2),t.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:t.html},null,8,Xl)):(e.openBlock(),e.createElementBlock("div",Zl,[i.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:s.value})},null,4)):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(u.value)},null,4)):l.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:l.value,alt:"icon"},null,8,Jl)):a.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(d.value)},null,8,["style"])):e.createCommentVNode("",!0),e.createElementVNode("span",Ql,e.toDisplayString(t.text),1)]))],2))}}),ta=["value","disabled"],na=["innerHTML"],oa={key:1,class:"flex items-center gap-2"},ra=["src"],la={class:"text-[13px] text-gray-700"},aa={"vs-input-radio-default":ea,"vs-input-radio-buttons":e.defineComponent({__name:"vs-input-radio-buttons",props:e.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{},html:{default:""},option:{default:null}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>!!t.disabled),l=e.computed(()=>Wt(t.option)),a=e.computed(()=>Gt(t.option)),s=e.computed(()=>Vt(t.option)),i=e.computed(()=>!!(s.value&&!l.value&&!a.value)),c=e.computed(()=>!!(l.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),u=e.computed(()=>{if(!(!l.value||!s.value))return{backgroundColor:s.value,WebkitMaskImage:`url(${l.value})`,maskImage:`url(${l.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(p,h)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex h-full w-full items-center border rounded-lg px-2 py-1",[n.value==t.value?`ring-2 ring-ring ring-${t.style?.primaryColor||"blue"}-500`:"",t.customClass,r.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[0]||(h[0]=k=>n.value=k),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,ta),[[e.vModelRadio,n.value]]),t.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:t.html},null,8,na)):(e.openBlock(),e.createElementBlock("div",oa,[i.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:s.value})},null,4)):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(u.value)},null,4)):l.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:l.value,alt:"icon"},null,8,ra)):a.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(d.value)},null,8,["style"])):e.createCommentVNode("",!0),e.createElementVNode("span",la,e.toDisplayString(t.text),1)]))],2))}})},So=o=>Array.isArray(o)?o:Array.isArray(o?.data)?o.data:[],$o=o=>{const t=o.host??"",n=o.prefix??"api",r=o.api??`/${n}/suggest/${o.data}`;return`${t}${r}`},sa=o=>({fetchOptions:async(r="")=>{const l=o();if(!l.data)return l.options?[...l.options]:[];try{const a=new URLSearchParams;a.set("json","1"),r&&a.set("key",r),l.parentValue!==void 0&&l.parentValue!==null&&l.parentValue!==""&&a.set("parent",String(l.parentValue)),l.start===1&&a.set("start","1");const i=await(await fetch(`${$o(l)}?${a.toString()}`)).json();return So(i)}catch{return[]}},fetchOptionByValue:async r=>{if(r==null||r==="")return null;const l=o();if(!l.data)return(l.options??[]).find(s=>s?.id?.toString()===String(r))??null;try{const a=new URLSearchParams;a.set("json","1"),a.set("val",String(r)),l.parentValue!==void 0&&l.parentValue!==null&&l.parentValue!==""&&a.set("parent",String(l.parentValue)),l.start===1&&a.set("start","1");const i=await(await fetch(`${$o(l)}?${a.toString()}`)).json();return So(i)[0]??null}catch{return null}}}),hn=({props:o,formValues:t=null,watchParent:n=!0})=>{const r=e.ref([]),l=e.computed(()=>o.parent?t?.value?.[o.parent]?.toString?.()??null:null),{fetchOptions:a,fetchOptionByValue:s}=sa(()=>({data:o.data,options:o.options,api:o.api,prefix:o.prefix,host:o.host,start:o.start,parentValue:l.value})),i=async(c="")=>{const d=o.data?await a(c):o.options?[...o.options]:[];return r.value=d,r.value};return e.watch(()=>o.options,()=>{o.data||(r.value=o.options?[...o.options]:[])},{immediate:!0,deep:!0}),n&&e.watch(l,async()=>{o.data&&(r.value=await a())},{immediate:!1}),{optionsList:r,parentValue:l,fetchOptions:a,fetchOptionByValue:s,loadOptions:i}},ia=/\{\{\s*([^}]+?)\s*\}\}/g,ca=o=>(o?String(o):"").replace(/<[^>]*>/g,"").trim(),da=(o,t)=>t.split(".").reduce((n,r)=>n==null?n:n[r.trim()],o),gn=(o,t)=>{if(!o)return"";const n=(t??"").trim();return n?n.replace(ia,(r,l)=>{const a=String(l).trim(),s=o,c=(a.includes(".")?da(s,a):void 0)??s[a];return c!=null?String(c):""}):o.text??""},yn=(o,t)=>{if(!o)return"";const n=gn(o,t);return ca(n)||o.text||""},Xn=e.defineComponent({__name:"vs-input-radio",props:e.mergeModels({options:{},slot:{},data:{},api:{},prefix:{},host:{},start:{},parent:{},position:{default:"vertical"},view:{default:"default"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>aa[`vs-input-radio-${t.view}`]),l=e.computed(()=>t.slot??t?.optionTemplate??""),a=e.computed(()=>fn(l.value)),s=k=>gn(k,l.value),i=k=>yn(k,l.value),c=e.computed(()=>t.position==="horizontal"?"flex w-full flex-row flex-wrap gap-[10px]":"flex w-full flex-col gap-2"),d=e.computed(()=>{if(t.position==="horizontal"&&t.customClass?.includes("50%"))return{flex:"0 0 calc(50% - 5px)"}}),u=e.inject("values",null),{optionsList:p,loadOptions:h}=hn({props:t,formValues:u});return e.onMounted(async()=>{await h()}),(k,m)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(c.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(p),g=>(e.openBlock(),e.createElementBlock("div",{key:g?.id,class:e.normalizeClass(["flex items-stretch",k.position==="horizontal"?t.customClass:""]),style:e.normalizeStyle(d.value)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value),e.mergeProps({text:i(g),html:a.value?s(g):"",option:g,value:g.id.toString(),checked:n.value?.toString?.()===g.id?.toString?.(),"custom-class":k.position==="horizontal"?"":t.customClass,modelValue:n.value,"onUpdate:modelValue":m[0]||(m[0]=y=>n.value=y)},{ref_for:!0},k.$attrs),null,16,["text","html","option","value","checked","custom-class","modelValue"]))],6))),128))],2))}}),ua={key:1,class:"w-full flex flex-col gap-4"},pa={key:0,class:"text-sm font-medium text-muted-foreground my-2"},fa="Без категорії",ma=e.defineComponent({__name:"vs-input-checkbox",props:{options:{default:()=>[]},position:{default:"vertical"},slots:{default:null},slot:{},colSpan:{default:0},data:{},api:{},prefix:{},host:{},start:{},parent:{},view:{},group:{default:void 0},values:{default:()=>[]},style:{},customClass:{},disabled:{type:Boolean},modelValue:{default:!1},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,l=e.reactive({}),a=e.inject("values",null),{optionsList:s,loadOptions:i}=hn({props:{...n,options:n.options},formValues:a}),c=e.computed(()=>s.value),d=x=>x?.value||x?.id||x?.text||x,u=e.computed(()=>n.slot??n?.optionTemplate??""),p=e.computed(()=>fn(u.value)),h=x=>gn(x,u.value),k=x=>yn(x,u.value),m=x=>`lg:col-span-${x||12}`,g=e.computed(()=>[n.position==="vertical"?"flex flex-col":"",n.colSpan?"grid":"flex justify-start"]),y=x=>x==null||x===""?null:typeof x=="string"||typeof x=="number"?x:String(x),C=e.computed(()=>{if(!n.group)return[];const x=new Map;c.value.forEach(L=>{const E=L[n.group],S=y(E);x.has(S)||x.set(S,[]),x.get(S)?.push(L)});const w=[];n.values?.length&&n.values.forEach(L=>{const E=y(L);w.push(E)});const V=new Set,z=L=>{const E=x.get(L)||[];if(!E.length)return null;const S=L===null?"group-null":`group-${String(L)}`,N=L===null?fa:String(L);return V.add(L),{key:S,label:N,options:E}},X=[];return w.forEach(L=>{const E=z(L);E&&X.push(E)}),x.forEach((L,E)=>{if(V.has(E))return;const S=z(E);S&&X.push(S)}),X});return e.watch(()=>n.modelValue,x=>{if(typeof x=="boolean"&&c.value.length===1){const w=d(c.value[0]);l[w]=x}else if(Array.isArray(x)){const w=new Set(x);c.value.forEach(V=>{if(!V.disabled){const z=d(V);l[z]=w.has(z)}})}},{immediate:!0}),e.watch(l,()=>{if(!c.value.length){r("update:modelValue",null);return}const x=Object.entries(l).filter(([,w])=>w).map(([w])=>w);r("update:modelValue",x.length===0?[]:x)},{deep:!0}),e.onMounted(async()=>{if(await i(),typeof n.modelValue=="boolean"&&c.value.length===1){const x=d(c.value[0]);l[x]=n.modelValue}else if(Array.isArray(n.modelValue)){const x=new Set(n.modelValue);c.value.forEach(w=>{if(!w.disabled){const V=d(w);l[V]=x.has(V)}})}}),(x,w)=>n.group?(e.openBlock(),e.createElementBlock("div",ua,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.value,V=>(e.openBlock(),e.createElementBlock("div",{key:V.key,class:"flex flex-col gap-2"},[V.label?(e.openBlock(),e.createElementBlock("span",pa,e.toDisplayString(V.label),1)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-0 w-full gap-[12px]",g.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V.options,z=>(e.openBlock(),e.createBlock(qn,{modelValue:l[d(z)],"onUpdate:modelValue":X=>l[d(z)]=X,value:d(z),class:e.normalizeClass(m(x.colSpan)),disabled:n.disabled||z.disabled,label:k(z),labelHtml:p.value?h(z):"",key:`${V.key}-${d(z)}`,icon:z?.icon,imgUrl:z?.imgUrl,option:z,view:x.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2)]))),128))])):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["p-0 w-full gap-[10px]",g.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,V=>(e.openBlock(),e.createBlock(qn,{modelValue:l[d(V)],"onUpdate:modelValue":z=>l[d(V)]=z,value:d(V),class:e.normalizeClass(m(x.colSpan)),disabled:n.disabled||V.disabled,label:k(V),labelHtml:p.value?h(V):"",key:d(V),icon:V?.icon,imgUrl:V?.imgUrl,option:V,view:x.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2))}}),ke=(o,t)=>{const n=o.__vccOpts||o;for(const[r,l]of t)n[r]=l;return n},No=ke(ma,[["__scopeId","data-v-9056e0ec"]]),ha=["type","placeholder","disabled"],ga=e.defineComponent({__name:"vs-input-date1",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{},mode:{default:"date"}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o;function r(u){return u?n.mode==="datetime"?(u.includes("T")?u:null)||u+(u.includes(" ")?"":"T00:00"):u?.split(" ")[0]:null}const{inputClass:l}=Oe(n.style),a=t,s=e.computed({get:()=>r(n.modelValue),set:u=>a("update:modelValue",u)}),i=e.computed(()=>n.mode==="datetime"?"datetime-local":n.mode),c=e.computed(()=>!!n.disabled),d=e.computed(()=>n.placeholder??"");return(u,p)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:i.value,"onUpdate:modelValue":p[0]||(p[0]=h=>s.value=h),placeholder:d.value,disabled:c.value,ref:"date",class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[u.modelValue?"":"text-opacity-50",e.unref(l)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,ha)),[[e.vModelDynamic,s.value]])}}),ya=(o,t)=>{if(!t||!Object.keys(t).length)return o;const[n,r=""]=o.split("?"),l=new URLSearchParams(r);Object.entries(t).forEach(([s,i])=>{i==null||i===""||l.set(s,String(i))});const a=l.toString();return a?`${n}?${a}`:n},Ao=async(o,t={})=>{try{const n=new FormData;n.append("unique","true"),n.append("file",o);const{api:r,id:l="1",form:a="form",table:s="table",customParams:i}=t,c=r||`/file/upload/uploads?id=${l||""}&form=${a||""}&table=${s||""}`,d=ya(c,i);return(await fetch(d,{method:"POST",body:n}).then(p=>p.json()))?.result}catch(n){return fe.notify({type:"error",title:"Помилка!",message:"Сталась помилка під час завантаження файлу",position:"right-bottom"}),console.error("Сталась помилка завантаження файлу",n),null}},ba=async o=>{try{return await fetch(`file/delete${o}`),!0}catch(t){return console.error(t),!1}},Mo=async o=>{try{const t=await fetch(`/file/download${o}`);if(!t.ok)throw new Error(`Download failed with status ${t.status}`);const n=await t.blob(),l=(t.headers.get("content-disposition")||"").match(/filename\*?=(?:UTF-8''|")?([^\";]+)/i),a=l?.[1]?decodeURIComponent(l[1].replace(/"/g,"").trim()):"",s=o.split("/").filter(Boolean).pop()||"download",i=a||s,c=document.createElement("a");c.setAttribute("download",i),c.href=window.URL.createObjectURL(n),c.click(),window.URL.revokeObjectURL(c.href)}catch(t){console.error(t.message)}},ka=o=>{if(!o)return"";const t=o?.split(".");return t[t.length-1]},xa=o=>{const t=ka(o),n={imageFormat:["tiff","jpg","jpeg","png","svg","ico","webp"],sheetsFormat:["xls","csv","xlsx"],archivesFormat:["zip","rar"],textsFormat:["json","geojson","txt","yml","yaml","shp"],documentsFormat:["pdf"]};return n.imageFormat.includes(t)?"img":n.sheetsFormat.includes(t)?H.Table:n.textsFormat.includes(t)?H.FileCode:n.documentsFormat.includes(t)?H.FileText:n.archivesFormat.includes(t)?H.FileArchive:H.FileText},wa=["title"],_a={class:"absolute hidden top-0 right-0 flex items-center gap-x-2 w-full h-full justify-center"},Zn=ke(e.defineComponent({__name:"vs-input-file-list-item",props:e.mergeModels({format:{},multiple:{type:Boolean},max_size:{},api:{},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{value:{},valueModifiers:{},item:{},itemModifiers:{}}),emits:["update:value","update:item"],setup(o){const t=e.useModel(o,"value"),n=e.useModel(o,"item"),r=o,l=e.computed(()=>n.value?typeof n.value=="string"?n.value:n.value.file_path:""),a=c=>typeof c=="string"?c:c?.file_path||"",s=()=>{const c=l.value;ba(c),r.multiple&&Array.isArray(t.value)?t.value=t.value.filter(d=>a(d)!==c):t.value=""},i=()=>{l.value&&window.open(l.value,"_blank")};return(c,d)=>(e.openBlock(),e.createElementBlock("div",{title:l.value,class:"h-[120px] w-[120px] border text-gray-300 border-dashed border-[#CFD9E0] rounded-lg overflow-hidden relative item-file"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(xa)(l.value)),{src:l.value,alt:"file",class:"w-full h-full object-cover cursor-pointer",onClick:d[0]||(d[0]=u=>e.unref(Mo)(l.value))},null,8,["src"])),e.createElementVNode("div",_a,[e.createElementVNode("button",{type:"button",onClick:s,class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-red-500"},[e.createVNode(e.unref(H.Trash2),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:i,class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-emerald-600"},[e.createVNode(e.unref(H.Eye),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:d[1]||(d[1]=u=>e.unref(Mo)(l.value)),class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-blue-500"},[e.createVNode(e.unref(H.Download),{class:"w-4 h-4"})])])],8,wa))}}),[["__scopeId","data-v-89357cbb"]]),Ca={class:"flex items-center gap-x-2"},va=["accept","multiple","disabled"],Ea={key:1,class:"flex items-center flex-wrap gap-2"},Ba={key:1,class:"loader"},Va={key:1,class:"loader"},Fo=ke(e.defineComponent({__name:"vs-input-file",props:e.mergeModels({format:{},multiple:{type:Boolean},max_size:{},api:{},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["change"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=e.useModel(o,"modelValue"),l=t,a=e.computed(()=>{const x=r.value;return!n.multiple||!Array.isArray(x)?[]:x}),s=e.ref(null),i=e.ref(!1),c=e.inject("values"),d=e.computed(()=>n.format?n.format.split(",").map(x=>x.trim().toLowerCase()).filter(Boolean):[]),u=x=>{if(n.max_size&&x.size>n.max_size*1024*1024){const w=(x.size/1048576).toFixed(2);return fe.notify({type:"error",title:"Помилка!",message:`Файл "${x.name}" занадто великий. Максимальний розмір: ${n.max_size} МБ, розмір файлу: ${w} МБ`,position:"right-bottom"}),!1}return!0},p=x=>{if(!d.value.length)return!0;const w=`.${x.name.split(".").pop()?.toLowerCase()||""}`,V=d.value.includes(w);return V||fe.notify({type:"error",title:"Помилка!",message:`Неприпустимий формат файлу "${x.name}". Дозволені формати: ${d.value.join(", ")}`,position:"right-bottom"}),V},h=e.computed(()=>{const x={},w=[];if(!n.customParams?.length)return{params:x,missingSources:w};const V=c?.value??{};return n.customParams.forEach(z=>{if(!z)return;const[X,L]=z.split("="),E=X?.trim(),S=L?.trim();if(!E||!S)return;const N=V[S];if(N==null||N===""){w.push(S);return}x[E]=N}),{params:x,missingSources:w}}),k=()=>{const{params:x}=h.value;return{api:n.api,customParams:Object.keys(x).length?x:void 0}},m=()=>{const x=h.value.missingSources;if(!x.length)return!0;const w=x.join(", ");return fe.notify({type:"warning",title:"Заповніть поля",message:`Поля (${w}) необхідні для завантаження файлу`,position:"right-bottom"}),!1},g=x=>{fe.notify({type:"error",title:"Помилка завантаження",message:x||"Не вдалося завантажити файл. Спробуйте ще раз.",position:"right-bottom"})},y=()=>{n.disabled||i.value||m()&&s.value?.click()},C=async x=>{const{files:w}=x.target;if(!w||w.length===0)return;if(!m()){s.value&&(s.value.value="");return}const V=Array.from(w);if(n.max_size&&V.filter(L=>!u(L)).length>0){s.value&&(s.value.value="");return}if(V.filter(X=>!p(X)).length>0){s.value&&(s.value.value="");return}i.value=!0;try{if(n.multiple){const X=Array.from(w).map(async v=>await Ao(v,k())),L=await Promise.all(X),E=L.filter(v=>v?.file_path);if(E.length===0){g();return}E.length<L.length&&g("Деякі файли не вдалося завантажити. Перевірте їх та спробуйте знову.");const S=E.map(v=>v.file_path),N=Array.isArray(r.value)?r.value:[];r.value=[...N,...S],l("change",r.value)}else{const X=w[0],L=await Ao(X,k());if(!L?.file_path){g();return}const E=L.file_path;r.value=E,l("change",E)}}catch(X){const L=X?.message||void 0;g(L)}finally{i.value=!1,s.value&&(s.value.value="")}};return(x,w)=>(e.openBlock(),e.createElementBlock("div",Ca,[e.createElementVNode("input",{class:"hidden",ref_key:"fileInput",ref:s,type:"file",accept:n.format,multiple:x.multiple,onChange:C,disabled:i.value||x.disabled},null,40,va),!x.multiple&&r.value&&!Array.isArray(r.value)?(e.openBlock(),e.createBlock(Zn,{key:0,item:r.value,value:r.value,"onUpdate:value":w[0]||(w[0]=V=>r.value=V)},null,8,["item","value"])):x.multiple?(e.openBlock(),e.createElementBlock("div",Ea,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(V,z)=>(e.openBlock(),e.createBlock(Zn,{multiple:x.multiple,key:z,value:r.value,"onUpdate:value":w[1]||(w[1]=X=>r.value=X),item:V},null,8,["multiple","value","item"]))),128)),e.createElementVNode("div",{onClick:y,class:e.normalizeClass(["relative h-[120px] w-[120px] border text-gray-300 hover:text-blue-500 border-dashed border-[#CFD9E0] rounded-lg flex items-center justify-center transition-all duration-300",x.disabled||i.value?"opacity-50 cursor-not-allowed":"cursor-pointer hover:border-blue-500 hover:bg-blue-50"])},[i.value?(e.openBlock(),e.createElementBlock("div",Ba)):(e.openBlock(),e.createBlock(e.unref(H.Plus),{key:0,class:"h-4 w-4"}))],2)])):e.createCommentVNode("",!0),x.multiple?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:2,onClick:y,class:e.normalizeClass([x.disabled||i.value?"opacity-50 cursor-not-allowed":"cursor-pointer hover:border-blue-500","relative h-[120px] w-[120px] border text-gray-300 hover:text-blue-500 border-dashed border-gray-300 rounded-lg flex items-center justify-center cursor-pointer hover:border-blue-500 transition-all duration-300 hover:bg-blue-50"])},[i.value?(e.openBlock(),e.createElementBlock("div",Va)):(e.openBlock(),e.createBlock(e.unref(H.Plus),{key:0,class:"h-4 w-4"}))],2))]))}}),[["__scopeId","data-v-dda91e05"]]),Sa={class:"vs-input-file2 flex flex-col gap-4"},$a={class:"flex items-center gap-x-2"},Na=["accept","disabled"],Aa={key:0,class:"absolute inset-0 flex flex-col items-center justify-center gap-1 rounded-lg bg-white/90 text-xs font-medium text-slate-600"},Ma={key:0,class:"rounded-lg border border-[#CFD9E0] bg-white p-4 shadow-sm"},Fa={class:"flex items-center justify-between text-sm"},Da={class:"truncate pr-4"},Ta={class:"font-medium text-slate-800 truncate"},La={class:"text-slate-500"},Ia={class:"text-slate-500 whitespace-nowrap"},Ra={class:"mt-3 h-2 rounded-full bg-slate-100 overflow-hidden"},Oa={class:"mt-3 flex flex-wrap gap-2 text-sm"},Pa={key:0,class:"mt-2 text-sm text-rose-600"},za=e.defineComponent({__name:"vs-input-file2",props:e.mergeModels({format:{},max_size:{},api:{},chunkSize:{default:5*1024*1024},subdir:{default:""},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref(null),l=e.ref(null),a=e.ref(""),s=e.ref(0),i=e.ref(!1),c=e.ref(""),d=e.ref(null),u=e.inject("values"),p=e.computed(()=>t.format?t.format.split(",").map($=>$.trim().toLowerCase()).filter(Boolean):[]),h=e.computed(()=>!l.value||!l.value.size?0:Math.min(100,Math.round(s.value/l.value.size*100))),k=e.computed(()=>l.value?`${y(s.value)} / ${y(l.value.size)}`:""),m=e.computed(()=>t.disabled?"opacity-50 cursor-not-allowed":i.value?"cursor-default text-blue-500":"cursor-pointer hover:border-blue-500 hover:bg-blue-50 hover:text-blue-500"),g=()=>{t.disabled||i.value||V()&&r.value?.click()},y=$=>{if(!Number.isFinite($))return"0 B";const R=["B","KB","MB","GB"];let B=0,F=$;for(;F>=1024&&B<R.length-1;)F/=1024,B+=1;return`${F.toFixed(B===0?0:1)} ${R[B]}`},C=$=>{if(!t.max_size)return!0;const R=t.max_size*1024*1024;return $.size>R?(fe.notify({type:"error",title:"Файл занадто великий",message:`Максимальний розмір ${t.max_size} МБ`,position:"right-bottom"}),!1):!0},x=$=>{if(!p.value.length)return!0;const R=`.${$.name.split(".").pop()?.toLowerCase()||""}`;return p.value.includes(R)?!0:(fe.notify({type:"error",title:"Непідтримуваний формат",message:`Дозволені формати: ${p.value.join(", ")}`,position:"right-bottom"}),!1)},w=e.computed(()=>{const $={},R=[];if(!t.customParams?.length)return{params:$,missing:R};const B=u?.value??{};return t.customParams.forEach(F=>{if(!F)return;const[D,Z]=F.split("="),G=D?.trim(),ee=Z?.trim();if(!G||!ee)return;const le=B[ee];le==null||le===""?R.push(ee):$[G]=le}),{params:$,missing:R}}),V=()=>w.value.missing.length?(fe.notify({type:"warning",title:"Заповніть поля",message:`Потрібні значення: ${w.value.missing.join(", ")}`,position:"right-bottom"}),!1):!0,z=$=>{const R=$.target,B=R.files?.[0];if(B){if(!V()){R.value="";return}if(!C(B)||!x(B)){R.value="";return}l.value=B,s.value=0,a.value="",c.value=""}},X=async()=>{if(!l.value){g();return}try{c.value="";const $={id:a.value||"",fileName:l.value.name,subdir:t.subdir,size:l.value.size,...w.value.params},R=await fetch("/api/file/upload2/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify($)});if(!R.ok)throw new Error("Не вдалося ініціалізувати завантаження");const B=await R.json();a.value=B.id||a.value,s.value=B.uploaded||0,await L()}catch($){c.value=$?.message||"Помилка при старті завантаження"}},L=async()=>{if(!(!l.value||!a.value)){i.value=!0;try{for(;s.value<l.value.size;){const $=s.value,R=Math.min($+t.chunkSize,l.value.size),B=l.value.slice($,R);d.value=new AbortController;const F=await fetch(`/api/file/upload2/${a.value}`,{method:"PATCH",headers:{"Content-Range":`bytes ${$}-${R-1}/${l.value.size}`},body:B,signal:d.value.signal});if(!F.ok)throw new Error("Помилка завантаження частини");const D=await F.json().catch(()=>({}));if(D.uploaded!=null?s.value=Number(D.uploaded):s.value=R,D.finished||s.value>=l.value.size){i.value=!1;const Z=D.file_path||D.url||a.value;n.value={file_id:D.file_id??a.value??Z,file_path:Z},fe.notify({type:"success",title:"Файл завантажено",message:l.value.name,position:"right-bottom"}),v();return}}}catch($){if($?.name==="AbortError")return;c.value=$?.message||"Помилка при завантаженні",i.value=!1}finally{d.value=null,i.value=!1}}},E=()=>{i.value&&(d.value?.abort(),d.value=null,i.value=!1)},S=async()=>{if(l.value){if(!a.value){await X();return}await L()}},N=()=>{d.value?.abort(),d.value=null,v()},v=()=>{const $=r.value;$&&($.value=""),l.value=null,a.value="",s.value=0,c.value=""};return($,R)=>(e.openBlock(),e.createElementBlock("div",Sa,[e.createElementVNode("div",$a,[e.createElementVNode("input",{ref_key:"fileInput",ref:r,type:"file",class:"hidden",accept:t.format,disabled:i.value||t.disabled,onChange:z},null,40,Na),n.value?(e.openBlock(),e.createBlock(Zn,{key:0,item:n.value,"onUpdate:item":R[0]||(R[0]=B=>n.value=B),value:n.value,"onUpdate:value":R[1]||(R[1]=B=>n.value=B)},null,8,["item","value"])):(e.openBlock(),e.createElementBlock("div",{key:1,onClick:g,class:e.normalizeClass(["relative h-[120px] w-[120px] border text-gray-300 border-dashed border-[#CFD9E0] rounded-lg flex items-center justify-center transition-all duration-300",m.value])},[i.value?(e.openBlock(),e.createElementBlock("div",Aa,[R[2]||(R[2]=e.createElementVNode("div",{class:"loader"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(h.value)+"%",1)])):(e.openBlock(),e.createBlock(e.unref(H.Plus),{key:1,class:"h-4 w-4"}))],2))]),l.value&&!n.value?(e.openBlock(),e.createElementBlock("div",Ma,[e.createElementVNode("div",Fa,[e.createElementVNode("div",Da,[e.createElementVNode("div",Ta,e.toDisplayString(l.value.name),1),e.createElementVNode("div",La,e.toDisplayString(y(l.value.size)),1)]),e.createElementVNode("div",Ia,e.toDisplayString(k.value),1)]),e.createElementVNode("div",Ra,[e.createElementVNode("div",{class:"h-full rounded-full bg-blue-500 transition-all duration-300",style:e.normalizeStyle({width:`${h.value}%`})},null,4)]),e.createElementVNode("div",Oa,[!i.value&&s.value>0&&s.value<(l.value?.size||0)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"rounded border border-slate-300 px-3 py-1",onClick:S}," Resume ")):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"rounded border border-slate-300 px-3 py-1",onClick:E}," Pause ")):e.createCommentVNode("",!0),!i.value&&s.value===0?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",class:"rounded border border-slate-300 px-3 py-1",onClick:X}," Upload ")):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"rounded border border-rose-200 px-3 py-1 text-rose-600",onClick:N}," Cancel ")]),c.value?(e.openBlock(),e.createElementBlock("p",Pa,e.toDisplayString(c.value),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]))}}),Jn=ke(za,[["__scopeId","data-v-19ea2129"]]),ja={class:"flex items-center justify-center h-[30px] w-[30px]"},Ua={class:"max-w-[55vw]"},Ha={class:"text-sm font-semibold text-gray-800 truncate dark:text-neutral-200"},qa={class:"flex items-center text-xs text-gray-500 truncate dark:text-neutral-500"},Ka={class:"px-[5px]"},Wa={class:""},bn=e.defineComponent({__name:"vs-widget-file-info",props:{item:{default:null}},setup(o){const t=o,n=e.computed(()=>{try{return new Date(t.item.cdate).toLocaleDateString("uk-UA",{day:"2-digit",month:"long",year:"numeric"})}catch{return""}});function r(l){if(l<1024)return`${l} B`;const a=l/1024;return a<1024?`${a.toFixed(2)} KB`:`${(a/1024).toFixed(2)} MB`}return(l,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",ja,[e.createVNode(e.unref(H.FileText),{class:"icon icon-tabler icons-tabler-outline icon-tabler-file h-4 w-4"})]),e.createElementVNode("div",Ua,[e.createElementVNode("p",Ha,e.toDisplayString(l.item?.uploaded_name),1),e.createElementVNode("p",qa,[e.createElementVNode("span",null,e.toDisplayString(l.item?.username),1),e.withDirectives(e.createElementVNode("span",Ka,"|",512),[[e.vShow,l.item?.username]]),e.createElementVNode("span",null,e.toDisplayString(n.value),1),a[0]||(a[0]=e.createElementVNode("span",{class:"px-[5px]"},"|",-1)),e.createElementVNode("span",Wa,e.toDisplayString(r(l.item?.size)),1)])])],64))}}),Ga={class:"p-3 relative group flex items-center gap-x-3 border border-gray-200 bg-white rounded-md w-full"},Ya={key:0,class:"flex w-full gap-x-3 items-center"},Xa={key:1,class:"flex gap-x-3 w-full items-center"},Za={key:2,class:"flex gap-x-3 w-full items-center"},Ja=["href"],Qa={key:3,class:"flex gap-x-3 w-full items-center"},es={class:"lg:absolute lg:top-3 lg:end-1 opacity-100"},ts={class:"p-0.5 sm:p-1 inline-flex items-center gap-0.5 bg-white rounded-lg dark:bg-neutral-800 dark:border-neutral-700"},ns={class:"inline-block"},os={class:"inline-block"},rs={class:"inline-block"},ls=e.defineComponent({__name:"vs-widget-file-item",props:{item:{default:null},index:{default:0},prefix:{default:"/api"}},emits:["update","openModal","openLightbox"],setup(o,{emit:t}){const n=o,r=t;function l(p){return["pdf","json"].includes(p.ext)}function a(p){return["ppt","pptx","doc","docx","xls","xlsx"].includes(p.ext)}function s(p){const h=document.createElement("a");h.setAttribute("download",p?.uploaded_name),h.href=p?.file_path,h.click()}function i(p){p?.file_path&&window.open(p.file_path,"_blank")}async function c(){try{await fetch(`${n.prefix}/widget/file/${n.item.entity_id}/${n.item.file_id}`),r("update")}catch(p){console.error(p)}}function d(){r("openModal",{title:"Ви впевнені?",message:"Ви впевнені, що хочете видалити цей файл?",confirmButtonText:"Так, я впевнена/ий",cancelButtonText:"Скасувати",confirm:c,updateListOnConfirm:!0})}function u(p){(n.item.ext==="jpg"||n.item.ext==="png")&&r("openLightbox",{item:n.item,index:p})}return(p,h)=>(e.openBlock(),e.createElementBlock("div",Ga,[p.item.ext==="jpg"||p.item.ext==="png"?(e.openBlock(),e.createElementBlock("div",Ya,[e.createElementVNode("div",{class:"max-w-[55vw] cursor-pointer flex gap-x-3 w-full items-center",onClick:h[0]||(h[0]=k=>u(p.index))},[e.createVNode(bn,{item:p.item},null,8,["item"])])])):l(p.item)?(e.openBlock(),e.createElementBlock("div",Xa,[e.createVNode(bn,{item:p.item},null,8,["item"])])):a(p.item)?(e.openBlock(),e.createElementBlock("div",Za,[e.createElementVNode("a",{href:`/api/file-preview?id=${p.item.file_id}`,target:"_blank",class:"flex gap-x-3 w-full items-center"},[e.createVNode(bn,{item:p.item},null,8,["item"])],8,Ja)])):(e.openBlock(),e.createElementBlock("div",Qa,[e.createVNode(bn,{item:p.item},null,8,["item"])])),e.createElementVNode("div",es,[e.createElementVNode("div",ts,[e.createElementVNode("div",ns,[e.createElementVNode("button",{class:"inline-flex p-[6px] justify-center items-center gap-x-2 rounded-lg border border-transparent text-gray-500 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none dark:text-neutral-400 focus:outline-none focus:bg-gray-100 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",onClick:h[1]||(h[1]=k=>i(p.item))},[e.createVNode(e.unref(H.Eye),{class:"h-4 w-4"})])]),e.createElementVNode("div",os,[e.createElementVNode("button",{class:"inline-flex p-[6px] justify-center items-center gap-x-2 rounded-lg border border-transparent text-gray-500 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none dark:text-neutral-400 focus:outline-none focus:bg-gray-100 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",onClick:h[2]||(h[2]=k=>s(p.item))},[e.createVNode(e.unref(H.Download),{class:"h-4 w-4"})])]),h[4]||(h[4]=e.createElementVNode("div",{class:"w-px h-5 mx-1 bg-gray-200 dark:bg-neutral-700"},null,-1)),e.createElementVNode("div",rs,[e.createElementVNode("button",{type:"button",class:"size-[30px] inline-flex justify-center items-center gap-x-2 rounded-lg border border-transparent text-red-600 hover:bg-red-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-red-100 dark:text-red-500 dark:hover:bg-red-500/20 dark:focus:bg-red-500/20",onClick:h[3]||(h[3]=k=>d())},[e.createVNode(e.unref(H.Trash2),{class:"h-4 w-4"})])])])])]))}}),as={class:"flex flex-col widget-file xl:bg-white xl:rounded-xl dark:xl:bg-neutral-800 dark:xl:border-neutral-700 w-full"},ss={class:"flex w-full mb-[12px] items-center gap-x-2"},is={class:"font-semibold text-gray-800 dark:text-neutral-200 text-[14px]"},cs={class1:"ml-auto"},ds={class:"py-1.5 px-4 inline-flex items-center gap-x-2 text-sm font-medium rounded-lg bg-gray-100 cursor-pointer hover:bg-gray-200 text-gray-800 shadow-2xs hover:bg-gray-50 focus:outline-hidden focus:bg-gray-50 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-800 dark:border-neutral-700 dark:text-white dark:hover:bg-neutral-700 dark:focus:bg-neutral-700"},us={key:0,class:"py-4 mb-4 space-y-4 border-gray-200 border-y dark:border-neutral-700"},ps={class:"relative"},fs={class:"absolute inset-y-0 start-0 flex items-center pointer-events-none z-[1] ps-3.5"},ms={key:1,class:"space-y-3 max-h-[300px] overflow-y-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500"},hs={key:0},Do=e.defineComponent({__name:"vs-input-file-list",props:{id:{default:""},prefix:{default:"/api"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update"],setup(o,{emit:t}){const n=o,r=e.inject("form"),l=e.computed(()=>r.value.formId),a=e.ref(!1),s=e.ref(0),i=t,c=e.ref(!1),d=e.ref({}),u=e.ref([]),p=e.ref(""),h=e.computed(()=>Array.isArray(u.value)?u.value.filter(w=>w.ext==="jpg"||w.ext==="png").map(w=>w?.file_path):[]),k=e.computed(()=>p.value===""?u.value:u.value.filter(w=>w?.uploaded_name?.includes(p.value))),m=w=>{const V=h.value.findIndex(z=>z===w.item.file_path);V!==-1&&(a.value=!0,s.value=V)},g=async()=>{try{const w=await fetch(`${n.prefix}/widget/file/${l.value}`).then(V=>V.json());u.value=w?.rows}catch(w){console.error(w)}},y=async w=>{await Promise.all(Array.from(w.target.files).map(async V=>{const z=new FormData;z.append("file",V);try{const X=`${n.prefix}/widget/file/${l.value}`,L=await fetch(X,{method:"POST",body:z});return L.ok?(i("update","file-list"),V):(fe.notify({type:L.status>=400&&L.status<500?"warning":"error",title:"Error",message:`Error code: ${L.status}`}),null)}catch(X){return fe.notify({type:"error",title:"Error",message:X.message||"Unknown error"}),console.error(X),null}})),await g()},C=w=>{const V={...w};return w.cancel||(V.cancel=()=>{c.value=!1}),w.updateListOnConfirm&&(V.confirm=async()=>{await w.confirm(),c.value=!1,g()}),V},x=w=>{d.value=C(w),c.value=!0};return e.watch(l,w=>{w&&g()}),e.onMounted(()=>{l.value&&g()}),(w,V)=>{const z=e.resolveComponent("Lightbox"),X=e.resolveComponent("MessageBox");return e.openBlock(),e.createElementBlock("div",as,[e.createElementVNode("div",ss,[e.createElementVNode("h2",is," Файлів: "+e.toDisplayString(u.value?.length),1),e.createElementVNode("div",cs,[e.createElementVNode("label",null,[e.createElementVNode("input",{type:"file",class:"hidden",onChange:V[0]||(V[0]=L=>y(L))},null,32),e.createElementVNode("div",ds,[e.createVNode(e.unref(H.Upload),{class:"h-4 w-4"})])])])]),u.value?.length>4?(e.openBlock(),e.createElementBlock("div",us,[e.createElementVNode("div",null,[e.createElementVNode("div",ps,[e.createElementVNode("div",fs,[e.createVNode(e.unref(H.Search),{class:"flex-shrink-0 text-gray-500 size-4 dark:text-neutral-400"})]),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":V[1]||(V[1]=L=>p.value=L),class:"py-2 px-3 ps-10 pe-16 block w-full bg-gray-200 xl:bg-gray-100 rounded-lg text-sm focus:border-blue-500 h-[40px] focus:border-2 focus:outline-none disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:border-transparent dark:text-neutral-400 dark:placeholder:text-neutral-400 dark:focus:ring-neutral-600",placeholder:"Введіть назву файлу"},null,512),[[e.vModelText,p.value,void 0,{trim:!0}]])])])])):e.createCommentVNode("",!0),u.value?.length?(e.openBlock(),e.createElementBlock("div",ms,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,(L,E)=>(e.openBlock(),e.createBlock(ls,{key:E,prefix:w.prefix,item:L,index:E,onUpdate:V[2]||(V[2]=S=>w.$emit("update","file-list")),onOpenModal:V[3]||(V[3]=S=>x(S)),onOpenLightbox:V[4]||(V[4]=S=>m(S))},null,8,["prefix","item","index"]))),128)),k.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",hs,V[8]||(V[8]=[e.createElementVNode("p",{class:"text-sm text-gray-600 font-sm"}," Файлів з такою назвою не існує, введіть інше пошукове слово ",-1)])))])):e.createCommentVNode("",!0),e.createVNode(z,{modelValue:a.value,"onUpdate:modelValue":V[5]||(V[5]=L=>a.value=L),startIndex:s.value,"onUpdate:index":V[6]||(V[6]=L=>s.value=L),images:h.value},null,8,["modelValue","startIndex","images"]),e.createVNode(X,e.mergeProps({modelValue:c.value,"onUpdate:modelValue":V[7]||(V[7]=L=>c.value=L),onConfirm:d.value.confirm},d.value),null,16,["modelValue","onConfirm"])])}}}),gs={class:"flex items-center justify-between"},ys={class:"text-[16px] text-gray-900 font-medium"},bs={class:"grid gap-3"},ks=ke(e.defineComponent({__name:"vs-container-switcher",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(o){const t=o,n=e.ref(t.isOpen);return e.watch(()=>t.isOpen,r=>{n.value=r}),(r,l)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",gs,[e.createElementVNode("p",ys,e.toDisplayString(o.title),1),e.createVNode(Kn,{modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=a=>n.value=a),style:e.normalizeStyle(o.style)},null,8,["modelValue","style"])]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",bs,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-90320b87"]]),xs={class:"text-[16px] text-gray-900 font-medium"},ws={class:"grid gap-3"},_s=ke(e.defineComponent({__name:"vs-container-accordion",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(o){const t=o,n=e.ref(t.isOpen);return e.watch(()=>t.isOpen,r=>{n.value=r}),(r,l)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("button",{type:"button",onClick:l[0]||(l[0]=a=>n.value=!n.value),class:"flex items-center gap-2"},[e.createVNode(e.unref(H.ChevronDown),{class:e.normalizeClass(["h-4 w-4 duration-300",[n.value?"-rotate-180":""]])},null,8,["class"]),e.createElementVNode("span",xs,e.toDisplayString(o.title),1)]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",ws,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-0c825d65"]]),Cs={class:"flex items-center justify-between"},vs={switcher:ks,accordion:_s,default:e.defineComponent({__name:"vs-container-default",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})}},setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",Cs,[e.createElementVNode("p",null,e.toDisplayString(o.title),1)]),e.renderSlot(t.$slots,"default")]))}})},ot={Equal:"==",Inequal:"!=",Higer:">",HigerOrEqual:">=",Lower:"<",LowerOrEqual:"<=",Between:"between",StartWith:"^",EndWith:"$",Contain:"*",In:"in",NotIn:"not_in"},Es=(o,t)=>String(o)===String(t),Bs=(o,t)=>String(o)!==String(t),Vs=(o,t)=>o>t,Ss=(o,t)=>o>=t,$s=(o,t)=>o<t,Ns=(o,t)=>o<=t,As=(o,t)=>Array.isArray(t)&&t.length===2?o>=t[0]&&o<=t[1]:!1,Ms=(o,t)=>String(o).startsWith(String(t)),Fs=(o,t)=>String(o).endsWith(String(t)),Ds=(o,t)=>String(o).includes(String(t)),Ts=(o,t)=>Array.isArray(t)?t.includes(o):!1,Ls=(o,t)=>Array.isArray(t)?!t.includes(o):!0,To=(o,t)=>{if(!t)return!0;switch(t?.[1]){case ot.Equal:return Es(o,t?.[2]);case ot.Inequal:return Bs(o,t?.[2]);case ot.Higer:return Vs(o,t?.[2]);case ot.HigerOrEqual:return Ss(o,t?.[2]);case ot.Lower:return $s(o,t?.[2]);case ot.LowerOrEqual:return Ns(o,t?.[2]);case ot.Between:return As(o,t?.[2]);case ot.StartWith:return Ms(o,t?.[2]);case ot.EndWith:return Fs(o,t?.[2]);case ot.Contain:return Ds(o,t?.[2]);case ot.In:return Ts(o,t?.[2]);case ot.NotIn:return Ls(o,t?.[2]);default:return!0}},Lo=e.defineComponent({__name:"vs-input-container",props:{style:{type:Object,default:()=>({})},title:{type:String,default:""},view:{type:String,default:"default"},name:{type:String,default:""},schema:{type:Array,default:()=>[]}},setup(o){const t=o,n=e.inject("values",e.ref({})),r=e.inject("form"),l=e.computed(()=>t.schema?.filter(i=>{const c=i?.conditions;if(!c)return!0;const d=Array.isArray(c)?c[0]:c,u=t.name?n.value?.[t.name]?.[d]??n.value?.[d]:n.value?.[d];return To(u,c)})),a=e.computed(()=>vs[t.view]),s=e.computed(()=>{if(n.value||(n.value={}),!t.name)return n.value;const i=n.value[t.name];if(i)return i;const c={};return n.value={...n.value,[t.name]:c},c});return(i,c)=>o.schema?.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{key:0,title:o.title,style:e.normalizeStyle(o.style)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,d=>(e.openBlock(),e.createBlock(lr,e.mergeProps({key:d.name},{ref_for:!0},d,{item:d,modelValue:s.value[d.name],"onUpdate:modelValue":u=>s.value[d.name]=u,style:o.style,error:e.unref(r)?.errors?.[d.name]}),null,16,["item","modelValue","onUpdate:modelValue","style","error"]))),128))]),_:1},8,["title","style"])):e.createCommentVNode("",!0)}}),Io=({props:o,fetchOptionByValue:t,optionsList:n,selectedOption:r,modelValue:l,onCreated:a})=>{const s=e.ref(!1),i=e.ref({}),c=e.ref([]),d=e.ref(null),u=e.computed(()=>o.add?.title||"Додати"),p=e.computed(()=>o.add?.token||o.add?.model||""),h=e.computed(()=>o.add?.pk||"id");return{isOpenAdd:s,addData:i,addSchema:c,addForm:d,addTitle:u,addOption:async()=>{if(!(!p.value||d?.value.validate()))try{const y=o.add?.api??`/api/table/${p.value}`,C=await fetch(y,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i.value)}),x=await C.json().catch(()=>({})),w=x?.error||x?.message,V=Number(x?.code)>=400;if(!C.ok||V){fe.notify({title:"Помилка",type:"error",message:w||`Код помилки: ${x?.code||C.status}`});return}const z=x?.[h.value]??x?.id;if(!z){fe.notify({title:"Помилка",type:"error",message:"Обʼєкт створено, але в відповіді відсутній ID."});return}const X=await t(z);X&&(n.value.some(E=>String(E?.id)===String(X.id))||n.value.push(X)),a?await a(X,z):X&&(r.value=X,l.value=z),s.value=!1,fe.notify({title:"Успіх",message:"Обʼєкт успішно створено."})}catch(y){fe.notify({title:"Помилка",type:"error",message:y?.message||"Не вдалося створити обʼєкт."})}},onAddValue:async()=>{if(!o.add)return null;const g=await fetch(`/api/template/form/${o.add.form}`).then(y=>y.json());return c.value=g.schema,i.value={},s.value=!0,null}}},Is=["aria-expanded","data-focus"],Rs={class:"relative flex flex-1 items-center gap-1 py-0.5 pl-1 pr-0 overflow-hidden h-full min-w-0"},Os={key:0,class:"flex flex-nowrap items-center gap-1 overflow-x-auto overflow-y-hidden min-w-0 flex-1 py-0.5"},Ps={class:"flex items-center gap-1 min-w-0"},zs=["title"],js=["innerHTML"],Us=["onClick"],Hs={class:"flex-1 min-w-[2px]"},qs=["placeholder"],Ks=["title"],Ws=["innerHTML"],Gs={key:3,class:"truncate flex-1 min-w-0"},Ys={key:2,class:"flex-1 min-w-[2px]"},Xs=["placeholder"],Zs={class:"flex items-center shrink-0"},Js=["disabled"],Qs={key:1,class:"self-stretch w-px bg-[#ccc] my-[1px]"},ei=["disabled","title"],ti=e.defineComponent({__name:"vs-select-control",props:{disabled:{type:Boolean},isOpen:{type:Boolean},inputFocus:{type:Boolean},isMulti:{type:Boolean},selectedOptions:{},selectedIds:{},placeholder:{},search:{type:Boolean},optionTemplate:{default:""},iconWrapperClass:{},selectedOptionLabel:{},selectedOption:{},showClear:{type:Boolean},keyWord:{default:""},setTriggerRef:{},setInputRef:{},shouldShowColorDot:{},optionHasIcon:{},getIconColorStyle:{},resolveOptionIcon:{},renderTemplate:{},getLabel:{},onControlKeydown:{},onControlClick:{},onInputFocus:{},onInputBlur:{},onInputKeydown:{},onRemoveSelected:{},onClearSelected:{},onToggleSelect:{}},emits:["update:keyWord"],setup(o,{emit:t}){const n=o,r=t,l=e.computed({get:()=>n.keyWord,set:a=>r("update:keyWord",a)});return(a,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-input-select__control flex min-h-[38px] items-center justify-between rounded transition-colors bg-white",a.disabled?"bg-gray-100 text-gray-400 cursor-not-allowed":""]),role:"combobox","aria-expanded":a.isOpen,"aria-haspopup":"listbox",onKeydown:s[10]||(s[10]=(...i)=>a.onControlKeydown&&a.onControlKeydown(...i)),onClick:s[11]||(s[11]=(...i)=>a.onControlClick&&a.onControlClick(...i)),"data-focus":a.isOpen||a.inputFocus?"true":"false",ref:a.setTriggerRef},[e.createElementVNode("div",Rs,[a.isMulti?(e.openBlock(),e.createElementBlock("div",Os,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.selectedOptions,i=>(e.openBlock(),e.createElementBlock("div",{key:i.id,class:"flex min-w-0 bg-[rgb(230,230,230)] rounded-[2px] m-[2px] box-border max-w-full"},[e.createElementVNode("div",Ps,[a.shouldShowColorDot(i)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[16px] h-[16px] rounded-md block ml-1.5 flex-shrink-0",style:e.normalizeStyle({backgroundColor:i?.color})},null,4)):e.createCommentVNode("",!0),!a.optionTemplate&&a.optionHasIcon(i)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(a.iconWrapperClass),style:e.normalizeStyle(a.getIconColorStyle(i)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.resolveOptionIcon(i)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"truncate text-[#172b4d] overflow-hidden max-w-[200px] px-0.5 pl-1.5",title:a.getLabel(i)},[a.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:a.renderTemplate(i)},null,8,js)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(i.text),1)],64))],8,zs)]),e.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border text-[#172b4d] hover:bg-[rgb(255,189,173)] hover:text-[rgb(222,53,11)] flex-shrink-0",onClick:e.withModifiers(c=>a.onRemoveSelected(i.id),["stop"])},[e.createVNode(e.unref(H.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,Us)]))),128)),e.createElementVNode("div",Hs,[!a.disabled&&a.search?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref:a.setInputRef,class:"w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900 hover:cursor-pointer",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:a.selectedIds.length?" ":a.placeholder,"onUpdate:modelValue":s[0]||(s[0]=i=>l.value=i),onFocus:s[1]||(s[1]=(...i)=>a.onInputFocus&&a.onInputFocus(...i)),onBlur:s[2]||(s[2]=(...i)=>a.onInputBlur&&a.onInputBlur(...i)),onKeydown:s[3]||(s[3]=(...i)=>a.onInputKeydown&&a.onInputKeydown(...i))},null,40,qs)),[[e.vModelText,l.value]]):e.createCommentVNode("",!0)])])):!a.isMulti&&a.selectedOptionLabel&&l.value===""?(e.openBlock(),e.createElementBlock("div",{key:1,class:"truncate text-gray-900 absolute inset-x-0 pl-2 flex items-center gap-1 min-w-0",title:a.selectedOptionLabel},[a.shouldShowColorDot(a.selectedOption)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[14px] h-[14px] rounded-md block flex-shrink-0",style:e.normalizeStyle({backgroundColor:a.selectedOption?.color})},null,4)):e.createCommentVNode("",!0),!a.optionTemplate&&a.optionHasIcon(a.selectedOption)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(a.iconWrapperClass),style:e.normalizeStyle(a.getIconColorStyle(a.selectedOption)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.resolveOptionIcon(a.selectedOption)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),a.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:2,class:"truncate flex-1 min-w-0",innerHTML:a.renderTemplate(a.selectedOption)},null,8,Ws)):(e.openBlock(),e.createElementBlock("span",Gs,e.toDisplayString(a.selectedOption?.text),1))],8,Ks)):e.createCommentVNode("",!0),a.isMulti?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Ys,[!a.disabled&&a.search?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref:a.setInputRef,class:"w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900 hover:cursor-pointer",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:a.selectedOptionLabel?" ":a.placeholder,"onUpdate:modelValue":s[4]||(s[4]=i=>l.value=i),onFocus:s[5]||(s[5]=(...i)=>a.onInputFocus&&a.onInputFocus(...i)),onBlur:s[6]||(s[6]=(...i)=>a.onInputBlur&&a.onInputBlur(...i)),onKeydown:s[7]||(s[7]=(...i)=>a.onInputKeydown&&a.onInputKeydown(...i))},null,40,Xs)),[[e.vModelText,l.value]]):e.createCommentVNode("",!0)]))]),e.createElementVNode("div",Zs,[a.showClear?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:a.disabled,onClick:s[8]||(s[8]=e.withModifiers((...i)=>a.onClearSelected&&a.onClearSelected(...i),["stop"]))},[e.createVNode(e.unref(H.X),{class:"h-4 w-4"})],8,Js)):e.createCommentVNode("",!0),a.showClear?(e.openBlock(),e.createElementBlock("div",Qs)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:a.disabled,onClick:s[9]||(s[9]=e.withModifiers((...i)=>a.onToggleSelect&&a.onToggleSelect(...i),["stop"])),title:a.isOpen?"Закрити список":"Відкрити список"},[e.createVNode(e.unref(H.ChevronDown),{class:"h-4 w-4"})],8,ei)])],42,Is))}}),ni=["aria-disabled","onMousedown"],oi={class:"leading-[19px]"},ri=["innerHTML"],li={key:1,class:"px-3 py-2 text-center text-gray-500"},ai=e.defineComponent({__name:"vs-select-dropdown",props:{isOpen:{type:Boolean},dropdownStyle:{},filteredOptionsList:{},selectedNavIndex:{},optionTemplate:{},iconWrapperClass:{},setDropdownRef:{type:Function},setListRef:{type:Function},setItemRef:{type:Function},isSelected:{type:Function},onOptionClick:{type:Function},shouldShowColorDot:{type:Function},optionHasIcon:{type:Function},getIconColorStyle:{type:Function},resolveOptionIcon:{type:Function},renderTemplate:{type:Function}},setup(o){return(t,n)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[t.isOpen?(e.openBlock(),e.createElementBlock("div",{key:0,ref:t.setDropdownRef,class:"fixed z-[3000] rounded bg-white shadow-[0_0_0_1px_rgba(0,0,0,0.1),0_4px_11px_rgba(0,0,0,0.1)]",style:e.normalizeStyle(t.dropdownStyle),role:"listbox"},[e.createElementVNode("div",{class:"overflow-y-auto py-1",style:e.normalizeStyle({maxHeight:t.dropdownStyle.maxHeight||"300px"}),ref:t.setListRef},[t.filteredOptionsList.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.filteredOptionsList,(r,l)=>(e.openBlock(),e.createElementBlock("div",{key:r.id,ref_for:!0,ref:a=>t.setItemRef(a,l),class:e.normalizeClass(["flex px-3 py-2 gap-2 cursor-pointer select-none text-gray-900",t.isSelected(r.id)?"bg-[#2684ff] text-white":"bg-white hover:bg-[#deebff] hover:text-[#172b4d]",t.selectedNavIndex===l&&!t.isSelected(r.id)?"bg-[#deebff] text-[#172b4d]":""]),"aria-disabled":t.isSelected(r.id)?"true":"false",role:"option",tabindex:"-1",onMousedown:e.withModifiers(a=>t.onOptionClick(r),["prevent","stop"])},[t.shouldShowColorDot(r)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[11px] h-[11px] rounded-full block flex-shrink-0",style:e.normalizeStyle({backgroundColor:r?.color})},null,4)):e.createCommentVNode("",!0),!t.optionTemplate&&t.optionHasIcon(r)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(t.iconWrapperClass),style:e.normalizeStyle(t.getIconColorStyle(r)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.resolveOptionIcon(r)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),e.createElementVNode("div",oi,[t.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:t.renderTemplate(r)},null,8,ri)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(r.text),1)],64))])],42,ni))),128)):(e.openBlock(),e.createElementBlock("div",li," No options "))],4)],4)):e.createCommentVNode("",!0)]))}}),si=["disabled"],Ro="w-[16px] h-[16px] flex items-center justify-center flex-shrink-0 text-current",Qn=ke(e.defineComponent({__name:"vs-input-select",props:{multiple:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},mode:{},defaultValue:{},search:{type:Boolean,default:!0},placeholder:{default:"Оберіть значення"},prefix:{default:"api"},host:{default:""},data:{default:""},options:{default:()=>[]},api:{default:null},maxHeight:{default:400},parent:{},set:{},slot:{},add:{},teleport:{default:"body"},auto:{default:0},start:{default:0},style:{default:()=>({})},customClass:{default:""},modelValue:{},error:{default:null},name:{},maxlength:{},minlength:{}},emits:["change","update:modelValue","value-selected"],setup(o,{emit:t}){const n=o,r=t,l=e.computed(()=>n.multiple),a=e.computed(()=>n.disabled),s=e.computed(()=>n.search);Oe(n.style);const i=e.computed({get:()=>n.modelValue,set:P=>r("update:modelValue",P)});!i.value&&n.defaultValue&&(i.value=n.defaultValue);const c=e.ref(null),d=e.ref(null),u=e.ref(null),p=e.ref(null),h=e.ref(!1),k=e.ref(!1),m=e.ref(null),g=e.ref(-1),y=e.ref([]),C=e.ref(""),x=e.ref(null),w=P=>{d.value=P},V=P=>{x.value=P},z=P=>{p.value=P},X=P=>{u.value=P},L=(P,oe)=>{y.value[oe]=P},E=e.ref({}),S=e.ref([]),N=e.computed(()=>{if(!S.value.length)return[];const P=he.value,oe=new Map(P.map(ce=>[ce.id?.toString(),ce]));return S.value.map(ce=>oe.get(ce?.toString())).filter(ce=>!!ce)}),v=e.computed(()=>n.placeholder||"Select..."),$=e.computed(()=>le(m.value)),R=e.computed(()=>a.value?!1:l.value?S.value.length>0:!!i.value),B=P=>l.value?S.value.some(oe=>oe?.toString()===P?.toString()):i.value?.toString()===P?.toString(),F=e.computed(()=>{let P=he.value??[];if(!n.data&&C.value.trim()!==""){const oe=C.value.toLowerCase();P=P.filter(ce=>{const Ee=le(ce).toLowerCase(),Me=ce.text?.toLowerCase?.()||"";return Ee.includes(oe)||Me.includes(oe)})}if(l.value&&S.value.length){const oe=new Set(S.value.map(ce=>ce?.toString()));P=P.filter(ce=>!oe.has(ce.id?.toString()))}return P}),D=e.inject("values"),Z=e.inject("field-props"),G=e.computed(()=>n.slot??n?.optionTemplate??""),ee=P=>gn(P,G.value),le=P=>yn(P,G.value),we=e.computed(()=>fn(G.value)),me=P=>Gt(P),ne=P=>!!(!we.value&&Vt(P)&&!me(P)),ie=P=>{const oe=Vt(P);return oe?{color:oe}:void 0},ge=P=>!!(!we.value&&(Wt(P)||me(P))),Q=(P,oe,ce)=>{if(!Z)return!1;const Ee=Z.value?.[P]??{},Me=(Fe,tt,dt)=>{if(!tt.length)return Fe;const[ut,...bt]=tt,at={...Fe};if(!bt.length)return at[ut]=dt,at;const dn=typeof Fe[ut]=="object"&&Fe[ut]!==null?Fe[ut]:{};return at[ut]=Me(dn,bt,dt),at},Ue=Me(Ee,oe,ce);return Z.value={...Z.value||{},[P]:Ue},!0},de=P=>{if(!n.set)return;const oe=D?.value;!oe&&!Z||Object.entries(n.set).forEach(([ce,Ee])=>{if(!ce)return;const Me=P?P[Ee]:null,Ue=ce.split(".").map(dt=>dt.trim()).filter(Boolean);if(!Ue.length)return;const[Fe,...tt]=Ue;tt.length&&Q(Fe,tt,Me??null)||oe&&(oe[Fe]=Me??null)})},{optionsList:he,parentValue:Be,fetchOptions:$e,fetchOptionByValue:Re,loadOptions:Ae}=hn({props:n,formValues:D,watchParent:!1}),Ce=P=>P==null?"":String(P),Ve=P=>{if(l.value){if(!S.value.length){he.value=P;return}}else if(!m.value){he.value=P;return}const oe=new Set(P.map(Ee=>Ce(Ee.id)).filter(Boolean));if(l.value){const Ee=new Set(S.value.map(Ue=>Ce(Ue)).filter(Boolean)),Me=(he.value??[]).filter(Ue=>{const Fe=Ce(Ue.id);return!Fe||!Ee.has(Fe)?!1:!oe.has(Fe)});he.value=[...Me,...P];return}const ce=Ce(m.value?.id);if(ce&&!oe.has(ce)){he.value=[m.value,...P];return}he.value=P},Se=e.ref(0),Ne=async P=>{const oe=++Se.value,ce=await $e(P);return oe!==Se.value?null:ce},Le=async()=>{if(n.data){const P=await Ne(C.value);return P&&Ve(P),he.value}return Ae()},Ie=async P=>{if(P==null||P==="")return null;const oe=he.value?.find(ce=>ce?.id?.toString()===String(P));return oe||Re(P)},Qe=async P=>{const oe=new Set(he.value.map(Ee=>Ee.id?.toString())),ce=P.filter(Ee=>!oe.has(Ee?.toString()));ce.length&&await ce.reduce(async(Ee,Me)=>{await Ee;const Ue=await Ie(Me);Ue&&he.value.push(Ue)},Promise.resolve())},U=()=>{if(!F.value.length){g.value=-1;return}let P=0;if(!l.value&&m.value){const oe=m.value.id?.toString(),ce=F.value.findIndex(Ee=>Ee.id?.toString()===oe);ce>=0&&(P=ce)}g.value=P,e.nextTick(()=>{K(y.value[P],u.value)})},J=async()=>{a.value||(h.value=!0,await e.nextTick(()=>{se()}),await Le(),await e.nextTick(()=>{se(),x.value?.focus()}),U())},re=()=>{h.value=!1,g.value=-1,e.nextTick(()=>{x.value?.blur()})},I=async P=>{if(a.value)return;(P!==void 0?P:!h.value)?await J():re()},W=async()=>{if(!a.value){if(h.value){re();return}await J()}},_e=()=>{l.value?(S.value=[],i.value=[],r("change",[]),j(null,[])):(m.value=null,i.value=null,r("change",null),j(null,null)),de(null),C.value="",e.nextTick(()=>{x.value?.focus(),h.value||J()})},O=P=>{l.value&&(S.value=S.value.filter(oe=>oe?.toString()!==P?.toString()),i.value=[...S.value],r("change",i.value),j(null),e.nextTick(()=>x.value?.focus()))},j=(P,oe)=>{const ce=oe??(l.value?[...S.value]:P?.id??null);r("value-selected",{name:n.name,value:ce,option:P})},q=P=>{l.value?(B(P.id)||(S.value=[...S.value,P.id],i.value=[...S.value],r("change",i.value),j(P)),C.value="",e.nextTick(()=>{x.value?.focus(),g.value=Math.min(g.value,F.value.length-1)}),de(null)):(m.value=P,i.value=P.id,r("change",i.value),j(P),C.value="",re(),de(P))},M=P=>{if(B(P.id)){l.value||re();return}q(P)},K=(P,oe)=>{if(!P||!oe)return;const ce=P.offsetTop,Ee=ce+P.offsetHeight,Me=oe.scrollTop,Ue=Me+oe.clientHeight;let Fe=oe.scrollTop;ce<Me?Fe=ce-80:Ee>Ue&&(Fe=Ee-oe.clientHeight+4);const tt=oe;tt.scrollTop=Fe},te=P=>{let oe=P.parentElement;for(;oe;){if(oe.classList.contains("ui-dialog__content"))return oe;const ce=window.getComputedStyle(oe),Ee=ce.overflow+ce.overflowY+ce.overflowX;if(Ee.includes("auto")||Ee.includes("scroll")||oe===document.body||oe===document.documentElement)return oe;oe=oe.parentElement}return document.body},se=()=>{if(!d.value)return;const P=d.value.getBoundingClientRect(),oe=window.innerHeight||document.documentElement.clientHeight,ce=window.innerWidth||document.documentElement.clientWidth,Ee=8,Me=8,Ue=n.maxHeight||300,Fe=oe-P.bottom-Me-Ee,tt=P.top-Me-Ee,dt=Fe>=tt,ut=Math.max(ce-Ee*2,0);let{width:bt}=P;ut>0&&bt>ut&&(bt=ut);let{left:at}=P;at+bt+Ee>ce&&(at=ce-bt-Ee),at=Math.max(at,Ee);const dn=Math.min(Ue,Math.max(dt?Fe:tt,50));E.value={position:"fixed",left:`${at}px`,width:`${bt}px`,maxHeight:`${dn}px`,transform:dt?"none":"translateY(-100%)",top:dt?`${P.bottom+Me}px`:`${P.top-Me}px`}},ve=async P=>{a.value||!h.value&&(P.key==="ArrowDown"||P.key==="ArrowUp")&&(P.preventDefault(),await J())},et=P=>{if(!h.value)return;const{key:oe}=P;if(oe==="ArrowDown")P.preventDefault(),g.value+1<F.value.length&&(g.value+=1,K(y.value[g.value],u.value));else if(oe==="ArrowUp")P.preventDefault(),g.value>0&&(g.value-=1,K(y.value[g.value],u.value));else if(oe==="Enter"){P.preventDefault();const ce=F.value[g.value];ce&&q(ce),x.value?.blur()}else oe==="Escape"?(P.preventDefault(),re()):oe==="Backspace"?l.value&&C.value===""&&S.value.length&&(S.value=S.value.slice(0,-1),i.value=[...S.value],r("change",i.value)):oe==="Home"?(g.value=0,K(y.value[0],u.value)):oe==="End"?(g.value=F.value.length-1,K(y.value[g.value],u.value)):oe==="Tab"&&re()},We=()=>{a.value||(k.value=!0)},vt=()=>{k.value=!1,C.value=""},He=P=>{P.key==="Escape"&&h.value&&re()},qe=P=>{const oe=P.target;c.value?.contains(oe)||p.value?.contains(oe)||re()},gt=P=>{h.value&&u.value&&!u.value.contains(P.target)&&se()},ct=()=>{h.value&&se()},Ht=()=>{h.value&&se()};async function Ft(){if(l.value)Array.isArray(i.value)?S.value=[...i.value]:(S.value=i.value==null?[]:[i.value],i.value=[...S.value]),n.data&&S.value.length&&(await Qe(S.value),await e.nextTick());else{if(Array.isArray(i.value)){const P=i.value[0]??null;i.value=P??null}i.value!=null&&(m.value=await Ie(i.value)),de(m.value??null)}}e.watch(i,()=>{Ft()}),e.onMounted(async()=>{if(addEventListener("keydown",He),addEventListener("scroll",gt,!0),addEventListener("resize",ct),document.addEventListener("click",qe,!0),d.value&&te(d.value).addEventListener("scroll",Ht,!0),n.options?.length&&!n.data)he.value=[...n.options];else if(n.data){const P=await Ne("");P&&Ve(P)}await Ft(),Dt.value=!1}),e.onUnmounted(()=>{removeEventListener("keydown",He),removeEventListener("scroll",gt,!0),removeEventListener("resize",ct),document.removeEventListener("click",qe,!0),d.value&&te(d.value).removeEventListener("scroll",Ht,!0)});const{isOpenAdd:sn,addData:yt,addSchema:Pt,addForm:xo,addTitle:Et,addOption:wo,onAddValue:qt}=Io({props:n,fetchOptionByValue:Re,optionsList:he,selectedOption:m,modelValue:i});function lt(P,oe=200){let ce;return(...Ee)=>{ce&&clearTimeout(ce),ce=window.setTimeout(()=>P(...Ee),oe)}}const cn=lt(async P=>{const oe=await Ne(P);oe&&Ve(oe)},200);e.watch(C,P=>{n.data&&cn(P.trim())}),e.watch(()=>n.options,P=>{!n.data&&P?.length&&(he.value=[...P],Ft())},{immediate:!0});const Dt=e.ref(!0);return e.watch(Be,async()=>{if(n.data&&(Dt.value||(l.value?(S.value=[],i.value=[],r("change",[])):(m.value=null,i.value=null,r("change",null))),await Le(),n.auto===1&&Be.value&&he.value.length>0)){const P=he.value[0];P&&q(P)}}),(P,oe)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(fe.VsModal),{visible:e.unref(sn),"onUpdate:visible":oe[1]||(oe[1]=ce=>e.isRef(sn)?sn.value=ce:null),class:"z-[1000]",title:e.unref(Et),buttonText:"Додати",onDone:e.unref(wo),teleport:P.teleport},{default:e.withCtx(()=>[e.createVNode(rt,{schema:e.unref(Pt),modelValue:e.unref(yt),"onUpdate:modelValue":oe[0]||(oe[0]=ce=>e.isRef(yt)?yt.value=ce:null),ref_key:"addForm",ref:xo},null,8,["schema","modelValue"])]),_:1},8,["visible","title","onDone","teleport"]),e.createElementVNode("div",{class:"flex gap-1 w-full",ref_key:"selectRoot",ref:c,onClick:oe[4]||(oe[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass])},[oe[5]||(oe[5]=e.createElementVNode("span",{id:"react-select-live-region",class:"sr-only"},null,-1)),oe[6]||(oe[6]=e.createElementVNode("span",{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text",role:"log",class:"sr-only"},null,-1)),e.createVNode(ti,{keyWord:C.value,"onUpdate:keyWord":oe[2]||(oe[2]=ce=>C.value=ce),disabled:a.value,"is-open":h.value,"input-focus":k.value,"is-multi":l.value,"selected-options":N.value,"selected-ids":S.value,placeholder:v.value,search:s.value,"option-template":G.value,"icon-wrapper-class":Ro,"selected-option-label":$.value,"selected-option":m.value,"show-clear":R.value,"set-trigger-ref":w,"set-input-ref":V,"should-show-color-dot":ne,"option-has-icon":ge,"get-icon-color-style":ie,"resolve-option-icon":me,"render-template":ee,"get-label":le,"on-control-keydown":ve,"on-control-click":W,"on-input-focus":We,"on-input-blur":vt,"on-input-keydown":et,"on-remove-selected":O,"on-clear-selected":_e,"on-toggle-select":I},null,8,["keyWord","disabled","is-open","input-focus","is-multi","selected-options","selected-ids","placeholder","search","option-template","selected-option-label","selected-option","show-clear"]),e.createVNode(ai,{"is-open":h.value,"dropdown-style":E.value,"filtered-options-list":F.value,"selected-nav-index":g.value,"option-template":G.value,"icon-wrapper-class":Ro,"set-dropdown-ref":z,"set-list-ref":X,"set-item-ref":L,"is-selected":B,"on-option-click":M,"should-show-color-dot":ne,"option-has-icon":ge,"get-icon-color-style":ie,"resolve-option-icon":me,"render-template":ee},null,8,["is-open","dropdown-style","filtered-options-list","selected-nav-index","option-template"])],2),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:oe[3]||(oe[3]=(...ce)=>e.unref(qt)&&e.unref(qt)(...ce)),class:"bg-white hover:bg-gray-100 text-sm text-gray-900 py-[10px] px-3 border border-stone-200 rounded-md h-[38px] flex items-center gap-2",disabled:a.value,type:"button"},[e.createVNode(e.unref(H.Plus),{class:"h-4 w-4"}),oe[7]||(oe[7]=e.createElementVNode("span",null,"Додати",-1))],8,si)):e.createCommentVNode("",!0)],512)],64))}}),[["__scopeId","data-v-47aa1c50"]]),eo=(o="")=>`${o}${Math.floor(Math.random()*1e4)}`,ii=["disabled","aria-expanded"],ci={class:"truncate"},di={class:"py-2 px-4"},ui={class:"block font-medium text-[13px] text-foreground"},pi={class:"truncate"},fi={class:"p-1 border-t border-gray-200"},mi={class:"space-y-0.5 max-h-48 overflow-y-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-none [&::-webkit-scrollbar-track]:bg-scrollbar-track [&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb"},hi=["onClick"],gi=["checked"],yi={class:"shrink-0 size-3.5 flex justify-center items-center"},bi={key:1,class:"shrink-0 size-2 block mx-auto rounded-full bg-secondary/60"},ki={class:"truncate"},xi={key:0,class:"px-3 py-2 text-xs text-stone-500"},kn=e.defineComponent({__name:"vs-input-inline-select",props:{multiple:{type:Boolean},disabled:{type:Boolean,default:!1},mode:{},defaultValue:{},search:{type:Boolean},placeholder:{default:"Оберіть значення"},prefix:{default:"api"},host:{default:""},data:{default:""},options:{default:()=>[]},api:{default:null},maxHeight:{},parent:{},set:{},slot:{},add:{},teleport:{default:"body"},auto:{},start:{default:0},style:{default:()=>({})},customClass:{default:""},modelValue:{},error:{default:null},name:{},maxlength:{},minlength:{}},emits:["change","update:modelValue","value-selected"],setup(o,{emit:t}){const n=o,r=t;Oe(n.style);const l=e.computed({get:()=>Array.isArray(n.modelValue)?n.modelValue[0]??null:n.modelValue??null,set:Q=>r("update:modelValue",Q)});l.value==null&&n.defaultValue!=null&&(l.value=n.defaultValue);const a=e.inject("values"),s=e.inject("field-props"),i=e.computed(()=>!!n.disabled),c=e.ref(null),d=e.ref(!1),u=e.ref(null),p=e.ref(null),h=e.ref(null),k=e.ref({}),m=`vs-input-inline-select-${eo()}`,g=e.computed(()=>n.placeholder||"Оберіть значення"),y=e.computed(()=>z(c.value)||n.placeholder||"Оберіть значення"),C=e.computed(()=>n.slot??""),x=e.computed(()=>fn(C.value)),w=e.computed(()=>n.teleport||"body"),V=/^#(?:[\da-fA-F]{3}|[\da-fA-F]{6}|[\da-fA-F]{8})$/,z=Q=>yn(Q,C.value),X=Q=>!!(!x.value&&Vt(Q)),L=e.computed(()=>{const Q=Vt(c.value).trim();return Q?V.test(Q)?`bg-[${Q}] border-[${Q}]`:`bg-${Q.toLowerCase()}-500 border-${Q.toLowerCase()}-500`:""}),{optionsList:E,parentValue:S,fetchOptions:N,fetchOptionByValue:v,loadOptions:$}=hn({props:n,formValues:a,watchParent:!1}),R=(Q,de,he)=>{if(!s)return!1;const Be=s.value?.[Q]??{},$e=(Ae,Ce,Ve)=>{if(!Ce.length)return Ae;const[Se,...Ne]=Ce,Le={...Ae};if(!Ne.length)return Le[Se]=Ve,Le;const Ie=typeof Ae[Se]=="object"&&Ae[Se]!==null?Ae[Se]:{};return Le[Se]=$e(Ie,Ne,Ve),Le},Re=$e(Be,de,he);return s.value={...s.value||{},[Q]:Re},!0},B=Q=>{if(!n.set)return;const de=a?.value;!de&&!s||Object.entries(n.set).forEach(([he,Be])=>{if(!he)return;const $e=Q?Q[Be]:null,Re=he.split(".").map(Ve=>Ve.trim()).filter(Boolean);if(!Re.length)return;const[Ae,...Ce]=Re;Ce.length&&R(Ae,Ce,$e??null)||de&&(de[Ae]=$e??null)})},F=Q=>l.value?.toString?.()===Q?.toString?.(),D=()=>{if(!p.value||typeof window>"u")return;const Q=p.value.getBoundingClientRect(),de=8,he=8,Be=window.innerHeight||document.documentElement.clientHeight,$e=window.innerWidth||document.documentElement.clientWidth,Re=h.value?.offsetHeight||260,Ae=Math.max(Q.width,176),Ce=Math.max($e-de*2,120),Ve=Math.min(Ae,Ce);let Se=Q.left;Se+Ve+de>$e&&(Se=$e-Ve-de),Se=Math.max(Se,de);const Ne=Be-Q.bottom-he-de,Le=Q.top-he-de,Ie=Ne<Math.min(Re,260)&&Le>Ne,Qe=Math.max(120,Math.min(320,Ie?Le:Ne));k.value={position:"fixed",left:`${Se}px`,top:Ie?`${Q.top-he}px`:`${Q.bottom+he}px`,transform:Ie?"translateY(-100%)":"none",width:`${Ve}px`,maxHeight:`${Qe}px`}},Z=async()=>{if(n.data){E.value=await N("");return}await $()},G=async()=>{if(l.value==null||l.value===""){c.value=null,B(null);return}const Q=E.value.find(de=>de.id?.toString()===String(l.value));if(Q){c.value=Q,B(Q);return}c.value=await v(l.value),B(c.value??null)},ee=async()=>{i.value||(d.value=!0,await e.nextTick(),D(),await Z(),await e.nextTick(),D())},le=()=>{d.value=!1},we=async()=>{if(d.value){le();return}await ee()},me=Q=>{r("value-selected",{name:n.name,value:Q?.id??null,option:Q})},ne=Q=>{c.value=Q,l.value=Q.id,r("change",Q.id),me(Q),B(Q),le()},ie=Q=>{const de=Q.target;u.value?.contains(de)||h.value?.contains(de)||le()},ge=()=>{d.value&&D()};return e.watch(()=>n.options,Q=>{n.data||(E.value=Q?[...Q]:[],G())},{immediate:!0,deep:!0}),e.watch(l,()=>{G()}),e.watch(S,async()=>{n.data&&(await Z(),c.value&&!E.value.some(Q=>Q.id?.toString()===c.value?.id?.toString())&&(c.value=null,l.value=null,r("change",null),me(null),B(null)))}),e.onMounted(async()=>{document.addEventListener("click",ie,!0),window.addEventListener("resize",ge),window.addEventListener("scroll",ge,!0),await Z(),await G()}),e.onUnmounted(()=>{document.removeEventListener("click",ie,!0),window.removeEventListener("resize",ge),window.removeEventListener("scroll",ge,!0)}),(Q,de)=>(e.openBlock(),e.createElementBlock("div",{class:"relative inline-flex w-full max-w-full",ref_key:"rootRef",ref:u,onClick:de[0]||(de[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("button",{ref_key:"triggerRef",ref:p,type:"button",disabled:i.value,"aria-expanded":d.value?"true":"false","aria-haspopup":"menu",class:e.normalizeClass(["py-1.5 px-2.5 inline-flex items-center gap-2 text-nowrap text-xs sm:text-[13px] rounded-lg focus:outline-hidden disabled:opacity-50 disabled:pointer-events-none max-w-full border",L.value?`${L.value} text-white`:"bg-secondary text-secondary-foreground hover:bg-secondary-hover focus:bg-secondary-focus border-gray-300 hover:border-gray-400"]),onClick:we},[e.createElementVNode("span",ci,e.toDisplayString(y.value),1)],10,ii),(e.openBlock(),e.createBlock(e.Teleport,{to:w.value},[d.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:h,class:"z-[3000] w-44 transition-[opacity,margin] duration-150 bg-white text-gray-900 border border-gray-200 rounded-xl shadow-lg",style:e.normalizeStyle(k.value),role:"menu","aria-orientation":"vertical"},[e.createElementVNode("div",di,[e.createElementVNode("span",ui,[e.createElementVNode("span",pi,e.toDisplayString(g.value),1)])]),e.createElementVNode("div",fi,[e.createElementVNode("div",mi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(E),he=>(e.openBlock(),e.createElementBlock("label",{key:he.id,class:"py-1.5 px-3 group flex items-center gap-x-3 rounded-lg cursor-pointer text-[13px] text-gray-800 hover:bg-gray-100",onClick:e.withModifiers(Be=>ne(he),["prevent"])},[e.createElementVNode("input",{type:"radio",class:"hidden",name:m,checked:F(he.id),tabindex:"-1"},null,8,gi),e.createElementVNode("span",yi,[X(he)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"shrink-0 size-2 block mx-auto rounded-full",style:e.normalizeStyle({backgroundColor:he.color})},null,4)):(e.openBlock(),e.createElementBlock("span",bi))]),e.createElementVNode("span",ki,e.toDisplayString(z(he)),1),e.createVNode(e.unref(H.Check),{class:e.normalizeClass(["shrink-0 size-3.5 ms-auto transition-opacity",F(he.id)?"opacity-100":"opacity-0"])},null,8,["class"])],8,hi))),128))]),e.unref(E).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",xi,"Немає варіантів"))])],4)):e.createCommentVNode("",!0)],8,["to"]))],512))}}),wi=["placeholder","disabled"],Oo=e.defineComponent({__name:"vs-input-textarea",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=Oe(t.style),r=e.useModel(o,"modelValue"),l=e.computed(()=>!!t.disabled),a=e.computed(()=>t.placeholder??"");function s(){typeof r.value=="string"&&(r.value=r.value.trim())}return(i,c)=>e.withDirectives((e.openBlock(),e.createElementBlock("textarea",{"onUpdate:modelValue":c[0]||(c[0]=d=>r.value=d),placeholder:a.value,disabled:l.value,row:"2",onBlur:s,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] h-auto bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"}},null,42,wi)),[[e.vModelText,r.value]])}}),Po=e.defineComponent({__name:"vs-input-richtext",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{},format:{default:"html"},richtextProps:{default:()=>({})}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=e.defineAsyncComponent(()=>Promise.resolve().then(()=>h0)),n=o,{inputClass:r}=Oe(n.style),l=e.useModel(o,"modelValue"),a=e.computed(()=>!!n.disabled),s=e.computed(()=>n.placeholder??""),i=e.computed(()=>({height:n.richtextProps.height||"300px",format:n.format,...n.richtextProps}));return(c,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["!h-full",[c.customClass,e.unref(r)]]),style:e.normalizeStyle(a.value?{pointerEvents:"none",opacity:.6}:{})},[e.createVNode(e.unref(t),e.mergeProps({modelValue:l.value,"onUpdate:modelValue":d[0]||(d[0]=u=>l.value=u),placeholder:s.value},i.value),null,16,["modelValue","placeholder"])],6))}}),_i={},Ci={viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function vi(o,t){return e.openBlock(),e.createElementBlock("svg",Ci,t[0]||(t[0]=[e.createStaticVNode('<rect x="27" y="50.5" width="124" height="39" rx="7.5" fill="currentColor" class="fill-white dark:fill-neutral-800"></rect><rect x="27" y="50.5" width="124" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-50 dark:stroke-neutral-700/10"></rect><rect x="34.5" y="58" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="66.5" y="61" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="66.5" y="73" width="77" height="6" rx="3" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="19.5" y="28.5" width="139" height="39" rx="7.5" fill="currentColor" class="fill-white dark:fill-neutral-800"></rect><rect x="19.5" y="28.5" width="139" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-100 dark:stroke-neutral-700/30"></rect><rect x="27" y="36" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><rect x="59" y="39" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><rect x="59" y="51" width="92" height="6" rx="3" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><g filter="url(#filter1)"><rect x="12" y="6" width="154" height="40" rx="8" fill="currentColor" class="fill-white dark:fill-neutral-800" shape-rendering="crispEdges"></rect><rect x="12.5" y="6.5" width="153" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-100 dark:stroke-neutral-700/60" shape-rendering="crispEdges"></rect><rect x="20" y="14" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect><rect x="52" y="17" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect><rect x="52" y="29" width="106" height="6" rx="3" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect></g><defs><filter id="filter1" x="0" y="0" width="178" height="64" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"></feColorMatrix><feOffset dy="6"></feOffset><feGaussianBlur stdDeviation="6"></feGaussianBlur><feComposite in2="hardAlpha" operator="out"></feComposite><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03 0"></feColorMatrix><feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1187_14810"></feBlend><feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1187_14810" result="shape"></feBlend></filter></defs>',12)]))}const Ei=ke(_i,[["render",vi]]),Bi={class:"bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden flex flex-col"},Vi={key:0,class:"flex flex-col gap-2 !p-4 border-b border-gray-200 md:flex-row md:items-center md:justify-between bg-gray-50"},Si={key:0,class:"relative flex-1 min-w-0"},$i={class:"flex flex-nowrap items-center justify-end gap-2 shrink-0"},Ni={class:"w-full overflow-x-auto"},Ai={class:"w-full min-w-[640px] table-auto divide-y divide-gray-200"},Mi={class:"bg-gray-50"},Fi={class:"border-b border-gray-200"},Di={class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 w-12 text-center"},Ti=["onClick"],Li={key:0,class:"text-gray-400"},Ii={key:0,colspan:"100%",class:"text-center"},Ri={class:"w-full"},Oi={class:"p-5 min-h-[200px] flex flex-col justify-center items-center text-center"},Pi=["data-row-index","onDragstart","onDragover","onDrop"],zi=["onPointerdown"],ji={class:"flex items-center justify-center"},Ui=["innerHTML"],Hi={key:0,class:"flex items-center gap-3 text-sm text-gray-700"},qi={key:0},Ki=["src"],Wi={key:1,class:"rounded-md max-w-[45px] w-[45px] max-h-[45px] h-[45px] bg-gray-200 flex items-center justify-center"},Gi={key:1,class:"flex items-center justify-center"},Yi={key:2,class:"text-sm font-medium text-gray-900"},Xi={class:"px-4 py-3 text-right whitespace-nowrap"},Zi={class:"flex items-center justify-end gap-2"},Ji=["onClick"],Qi=["onClick"],ec={class:"vs-form__head mr-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},zo=e.defineComponent({__name:"vs-input-datatable",props:e.mergeModels({actions:{},colModel:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useSlots(),r=U=>t.actions===void 0?!0:t.actions.includes(U),l=["search","import","export","add"],a=e.computed(()=>l.some(U=>r(U))),s=e.useModel(o,"modelValue"),i=e.ref({}),c=e.ref(""),d=e.ref(null),u=e.ref("asc"),p=e.computed(()=>{const U=s.value??[],J=c.value?U.filter(W=>h.value?.some(_e=>{const O=_e.key||_e.name;if(!O)return!1;const j=W[O];return j?Array.isArray(j)?j.join(", ").toLowerCase().includes(c.value.toLowerCase()):String(j).toLowerCase().includes(c.value.toLowerCase()):!1})):U;if(!d.value)return J;const re=d.value,I=[...J].sort((W,_e)=>{const O=$e(W?.[re]),j=$e(_e?.[re]);return typeof O=="number"&&typeof j=="number"?O-j:String(O).localeCompare(String(j))});return u.value==="asc"?I:I.reverse()}),h=e.computed(()=>(t.colModel??[]).filter(U=>!U.tableHidden)),k=e.ref(null),m=e.ref(null),g=e.ref(null);function y(U){return U.pointerType==="touch"||U.pointerType==="pen"}function C(U,J){const I=document.elementFromPoint(U,J)?.closest?.("[data-row-index]")??null;if(!I)return null;const W=I.getAttribute("data-row-index");if(W==null)return null;const _e=Number.parseInt(W,10);return Number.isNaN(_e)?null:_e}function x(U,J){y(U)&&(U.preventDefault(),U.currentTarget.setPointerCapture(U.pointerId),k.value=J,m.value=J)}function w(U){if(k.value===null||!y(U))return;U.preventDefault();const J=C(U.clientX,U.clientY);J!==null&&(m.value=J)}function V(U){if(k.value===null||!y(U))return;U.preventDefault();const J=C(U.clientX,U.clientY);E(J??k.value);try{U.currentTarget.releasePointerCapture(U.pointerId)}catch{}}function z(U){if(y(U)){k.value=null,m.value=null;try{U.currentTarget.releasePointerCapture(U.pointerId)}catch{}}}const X=U=>{k.value=U},L=U=>{m.value=U},E=U=>{if(k.value===null||k.value===U){k.value=null,m.value=null;return}const J=[...s.value],[re]=J.splice(k.value,1);J.splice(U,0,re),s.value=J,k.value=null,m.value=null},S=()=>{g.value&&g.value.click()},N=U=>{const J=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".ico",".tiff",".tif"],re=U.toLowerCase();return J.some(I=>re.endsWith(I))},v=U=>{const re=U.target.files?.[0];if(!re)return;const I=new FileReader;I.onload=W=>{try{const _e=W.target?.result;if(typeof _e=="string"){const O=JSON.parse(_e);Array.isArray(O)&&s.value.push(...O)}}catch(_e){console.error("Error parsing file:",_e)}},I.readAsText(re)},$=()=>{const U=JSON.stringify(s.value,null,2),J=new Blob([U],{type:"application/json"}),re=URL.createObjectURL(J),I=document.createElement("a");I.href=re,I.download="data.json",I.click(),URL.revokeObjectURL(re)},R=new Set(["autocomplete","select","radio","checkbox","combobox"]),B=new Map,F=(U,J)=>{const re=`/api/suggest/${U}`,I=re.includes("?")?"&":"?",W=J?`&val=${J}`:"";return`${re}${I}json=1${W}`},D=U=>U==null||U===""?null:typeof U=="object"?U?.id!==void 0&&U.id!==null&&U.id!==""?U.id:null:U,Z=U=>{const J=new Set;return Array.isArray(s.value)&&s.value.forEach(re=>{const I=re?.[U];if(I==null||I==="")return;if(Array.isArray(I)){I.forEach(_e=>{const O=D(_e);O!==null&&J.add(O)});return}const W=D(I);W!==null&&J.add(W)}),J},G=async()=>{if(!t.colModel?.length)return;const U=t.colModel.filter(J=>J.data&&R.has(J.type?.toLowerCase()||""));U.length&&await Promise.all(U.map(async J=>{const re=J.key||J.name;if(!re)return;const I=Z(re),W=Array.from(I).map(j=>String(j)).sort(),_e=W.join(",");if(!W.length||B.get(re)===_e)return;B.set(re,_e);const O=W.map(encodeURIComponent).join(",");try{const q=await(await fetch(F(J.data,O))).json();i.value[re]=q?.data??q}catch(j){console.error("Failed to fetch column values",j)}}))};e.watch([()=>t.colModel,()=>s.value],()=>{G()},{immediate:!0,deep:!0});const ee=e.ref(""),le=e.ref(!1);let we="edit",me=0;const ne=U=>(U?.format||U?.type||"").toString().toLowerCase(),ie=e.computed(()=>(t.colModel?.filter(J=>ne(J)!=="slot")??[]).map(J=>{const re=J.key||J.name;return re?{...J,name:re,key:re}:J})),ge=e.ref({}),Q=e.ref({}),de=U=>typeof U!="string"?!1:!!n[U],he=(U,J)=>J?J.split(".").reduce((re,I)=>re==null?re:re[I.trim()],U):U,Be=(U,J)=>typeof U!="string"?"":U.replace(/{{\s*([^}]+)\s*}}/g,(re,I)=>{const W=he(J,I.trim());return W??""}),$e=U=>{if(U==null||U==="")return"";if(typeof U=="number")return U;if(typeof U=="boolean")return U?1:0;if(typeof U=="string")return U.toLowerCase();if(Array.isArray(U))return U.map(J=>$e(J)).join(", ");if(typeof U=="object"){if(U.text!==void 0)return String(U.text).toLowerCase();if(U.label!==void 0)return String(U.label).toLowerCase();if(U.id!==void 0)return String(U.id).toLowerCase()}return String(U).toLowerCase()},Re=U=>{const J=U.key||U.name;if(J){if(d.value===J){u.value=u.value==="asc"?"desc":"asc";return}d.value=J,u.value="asc"}};async function Ae(){ee.value="Додати",le.value=!0,we="add",ge.value={}}function Ce(U,J){if(!U?.length)return null;const re=typeof J=="object"?J?.id:J;return re==null||re===""?null:U.find(I=>I?.id?.toString()===re.toString())?.text??null}function Ve(U){return U==null||U===""?"-":Array.isArray(U)?U.map(J=>typeof J=="object"?J?.text??J?.id??"-":J).join(", "):typeof U=="object"?U?.text??U?.id??"-":U}function Se(U,J){const re=J.key||J.name,I=U?.[re],W=i.value[re];if(!I)return"-";if(Array.isArray(I)){const O=I.map(j=>Ce(W,j)).filter(Boolean);return O.length?O.join(", "):Ve(I)}const _e=Ce(W,I);return _e||Ve(I)}async function Ne(U,J){ee.value="Редагувати",le.value=!0,we="edit",me=J,ge.value={...U}}function Le(){const U=Q.value.validate();if(U){fe.notify({type:"warning",title:"Помилка валідації",message:Object.entries(U).map(([J,re])=>`${J}: ${re}`).join(`
2
2
  `)});return}we==="add"?Array.isArray(s.value)?s.value=[...s.value,ge.value]:s.value=[ge.value]:s.value=s.value.map((J,re)=>re===me?ge.value:J),le.value=!1}function Ie(U){s.value=s.value.filter((J,re)=>re!==U)}function Qe(){le.value=!1}return(U,J)=>(e.openBlock(),e.createElementBlock("div",Bi,[a.value?(e.openBlock(),e.createElementBlock("div",Vi,[r("search")?(e.openBlock(),e.createElementBlock("div",Si,[e.createVNode(e.unref(H.Search),{class:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-gray-400"}),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":J[0]||(J[0]=re=>c.value=re),placeholder:"Пошук",class:"w-full rounded-md border border-gray-200 bg-white pl-10 pr-3 py-2 text-sm text-gray-900 placeholder:text-gray-400 focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-100"},null,512),[[e.vModelText,c.value]])])):e.createCommentVNode("",!0),e.createElementVNode("div",$i,[r("import")?(e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"fileInput",ref:g,onChange:v,class:"hidden",accept:".json",type:"file"},null,544)):e.createCommentVNode("",!0),r("import")?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",onClick:S,class:"inline-flex items-center gap-2 rounded-md border border-gray-200 bg-white px-3 py-2 text-sm font-medium text-gray-700 hover:border-gray-300 hover:bg-gray-50 transition-colors"},[e.createVNode(e.unref(H.Upload),{class:"h-4 w-4 text-gray-700"}),J[4]||(J[4]=e.createTextVNode(" Імпорт ",-1))])):e.createCommentVNode("",!0),r("export")?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:$,class:"inline-flex items-center gap-2 rounded-md border border-gray-200 bg-white px-3 py-2 text-sm font-medium text-gray-700 hover:border-gray-300 hover:bg-gray-50 transition-colors"},[e.createVNode(e.unref(H.Download),{class:"h-4 w-4 text-gray-700"}),J[5]||(J[5]=e.createTextVNode(" Експорт ",-1))])):e.createCommentVNode("",!0),r("add")?(e.openBlock(),e.createElementBlock("button",{key:3,onClick:Ae,type:"button",class:"inline-flex items-center gap-2 rounded-md bg-blue-500 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-blue-600 transition-colors"},[e.createVNode(e.unref(H.Plus),{class:"h-4 w-4 text-white"}),J[6]||(J[6]=e.createTextVNode(" Додати ",-1))])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),e.createElementVNode("div",Ni,[e.createElementVNode("table",Ai,[e.createElementVNode("thead",Mi,[e.createElementVNode("tr",Fi,[e.createElementVNode("th",Di,[e.createVNode(e.unref(H.GripVertical),{class:"mx-auto h-4 w-4 text-gray-400"})]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,re=>(e.openBlock(),e.createElementBlock("th",{key:re.key,class:"px-4 py-3 text-left text-xs font-semibold text-gray-900"},[e.createElementVNode("button",{type:"button",onClick:I=>Re(re),class:"flex items-center gap-1 text-xs font-semibold text-gray-700 hover:text-gray-900 transition-colors"},[e.createElementVNode("span",null,e.toDisplayString(re.ua||re.label),1),d.value===(re.key||re.name)?(e.openBlock(),e.createElementBlock("span",Li,e.toDisplayString(u.value==="asc"?"▲":"▼"),1)):e.createCommentVNode("",!0)],8,Ti)]))),128)),J[7]||(J[7]=e.createElementVNode("th",{class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 text-center w-[1%] whitespace-nowrap"}," Дії ",-1))])]),e.createElementVNode("tbody",{class:e.normalizeClass(["divide-y divide-gray-200",{"[&_tr:last-child]:border-0":!m.value}])},[p.value.length===0?(e.openBlock(),e.createElementBlock("td",Ii,[e.createElementVNode("div",Ri,[e.createElementVNode("div",Oi,[e.createVNode(Ei,{class:"w-48 mx-auto"}),J[8]||(J[8]=e.createElementVNode("div",{class:"max-w-sm mx-auto mt-6"},[e.createElementVNode("p",{class:"font-medium text-gray-800 dark:text-neutral-200"},"Нічого не знайдено"),e.createElementVNode("p",{class:"mt-2 text-sm text-gray-500 dark:text-neutral-500"})],-1))])])])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,(re,I)=>(e.openBlock(),e.createElementBlock("tr",{key:re.id,"data-row-index":I,class:e.normalizeClass(["border-b transition-colors hover:bg-gray-50 cursor-move text-sm text-gray-700",{"opacity-50":k.value===I,"border-t-2 border-b-2 border-blue-500 bg-blue-50 dark:bg-blue-900/20":m.value===I}]),draggable:"true",onDragstart:W=>X(I),onDragover:e.withModifiers(W=>L(I),["prevent"]),onDrop:W=>E(I)},[e.createElementVNode("td",{class:"px-4 py-3 text-center align-middle touch-none select-none",onPointerdown:W=>x(W,I),onPointermove:w,onPointerup:V,onPointercancel:z},[e.createElementVNode("div",ji,[e.createVNode(e.unref(H.GripVertical),{class:"mx-auto h-4 w-4 text-slate-400 dark:text-slate-500"})])],40,zi),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,W=>(e.openBlock(),e.createElementBlock("td",{key:W.key,class:"px-4 py-3 align-middle"},[ne(W)==="slot"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[de(W.slot)?e.renderSlot(U.$slots,W.slot,{key:0,row:re,value:re[W.key],column:W}):(e.openBlock(),e.createElementBlock("div",{key:1,class:"text-sm text-gray-900",innerHTML:Be(W.slot,re)},null,8,Ui))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[ne(W)==="file"?(e.openBlock(),e.createElementBlock("div",Hi,[N(Se(re,W))?(e.openBlock(),e.createElementBlock("div",qi,[e.createElementVNode("img",{src:Se(re,W),alt:"alt",width:"45",class:"rounded-md max-w-[45px] h-[45px] object-cover"},null,8,Ki)])):(e.openBlock(),e.createElementBlock("div",Wi,[e.createVNode(e.unref(H.FileText),{class:"h-4 w-4 min-w-4"})]))])):ne(W)==="color"?(e.openBlock(),e.createElementBlock("div",Gi,[e.createElementVNode("span",{class:"inline-flex h-6 w-6 rounded border border-gray-200",style:e.normalizeStyle({backgroundColor:Se(re,W)||"#ffffff"})},null,4)])):(e.openBlock(),e.createElementBlock("div",Yi,e.toDisplayString(Se(re,W)),1))],64))]))),128)),e.createElementVNode("td",Xi,[e.createElementVNode("div",Zi,[e.createElementVNode("button",{onClick:W=>Ne(re,I),class:"p-1.5 text-gray-600 hover:text-blue-600 hover:bg-blue-50 rounded transition-colors"},[e.createVNode(e.unref(H.Pencil),{class:"h-4 w-4"})],8,Ji),e.createElementVNode("button",{onClick:W=>Ie(I),class:"p-1.5 text-gray-600 hover:text-red-600 hover:bg-red-50 rounded transition-colors"},[e.createVNode(e.unref(H.Trash2),{class:"h-4 w-4"})],8,Qi)])])],42,Pi))),128))],2)])]),e.createVNode(e.unref(fe.VsModal),{visible:le.value,title:ee.value,size:"lg",onClose:Qe,teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(rt,{schema:ie.value,"form-id":"datatable-row",values:ge.value,"onUpdate:values":J[1]||(J[1]=re=>ge.value=re),form:Q.value,"onUpdate:form":J[2]||(J[2]=re=>Q.value=re)},null,8,["schema","values","form"]),e.createElementVNode("div",ec,[e.createElementVNode("button",{type:"button",onClick:J[3]||(J[3]=re=>le.value=!1),class:"vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-red-500 hover:border-red-500 hover:bg-red-500 focus:ring-red-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 mr-2"}," Скасувати "),e.createElementVNode("button",{onClick:Le,type:"button",class:"vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border-1 border-transparent text-white bg-blue-500 hover:bg-blue-600 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1"}," Зберегти ")])]),_:1},8,["visible","title"])]))}}),tc={},nc={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none","stroke-width":"2",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-line"};function oc(o,t){return e.openBlock(),e.createElementBlock("svg",nc,t[0]||(t[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M6 18m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"},null,-1),e.createElementVNode("path",{d:"M18 6m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"},null,-1),e.createElementVNode("path",{d:"M7.5 16.5l9 -9"},null,-1)]))}const rc=ke(tc,[["render",oc]]),lc={},ac={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-polygon"};function sc(o,t){return e.openBlock(),e.createElementBlock("svg",ac,t[0]||(t[0]=[e.createStaticVNode('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M12 5m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M19 8m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M5 11m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M15 19m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M6.5 9.5l3.5 -3"></path><path d="M14 5.5l3 1.5"></path><path d="M18.5 10l-2.5 7"></path><path d="M13.5 17.5l-7 -5"></path>',9)]))}const ic=ke(lc,[["render",sc]]),cc={},dc={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-topology-ring-3"};function uc(o,t){return e.openBlock(),e.createElementBlock("svg",dc,t[0]||(t[0]=[e.createStaticVNode('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M8 18a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M20 18a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M20 6a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M8 6a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M6 8v8"></path><path d="M18 16v-8"></path><path d="M8 6h8"></path><path d="M16 18h-8"></path>',9)]))}const pc=ke(cc,[["render",uc]]),fc={class:"bg-white/30 p-1 rounded-md shadow w-fit"},mc={class:"flex gap-2"},hc=["onClick","title"],gc=["src"],yc=e.defineComponent({__name:"map-layers",props:{basemaps:{}},emits:["onLayerChange"],setup(o,{emit:t}){const n=o,r=e.ref(Object.keys(n.basemaps)[0]),l=t;function a(c){l("onLayerChange",c),r.value=c}const s={z:13,x:4790,y:2762};function i(c){if(c?.preview)return c.preview;if(!c?.url)return;const d={"{z}":s.z,"{x}":s.x,"{y}":s.y};let u=c.url;return Object.entries(d).forEach(([p,h])=>{u=u.replace(new RegExp(p,"gi"),String(h))}),u}return(c,d)=>(e.openBlock(),e.createElementBlock("div",fc,[e.createElementVNode("div",mc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.basemaps,(u,p)=>(e.openBlock(),e.createElementBlock("div",{key:p,class:e.normalizeClass(["cursor-pointer border rounded-lg overflow-hidden hover:shadow-sm",{"ring-2 ring-blue-500 border-blue-300":r.value===p}]),onClick:h=>a(p),title:u.name||p,role:"button",tabindex:"0"},[e.createElementVNode("img",{src:i(u),alt:"",class:"w-10 h-10 object-cover"},null,8,gc)],10,hc))),128))])]))}}),Lt=1e-10,xn=/([+-]?\d{1,3})\s*[°º˚]\s*(\d{1,2})\s*['’′`]\s*(\d{1,2}(?:\.\d+)?)\s*["”″]\s*([NSEW])/gi,bc=/^[+-]?\d+(?:\.\d+)?$/;function kc(o,t,n){const r=o.split(/\r?\n/).map(d=>d.trim()).filter(Boolean);if(r.length<3)return{ok:!1,errors:[{line:0,message:"Має бути щонайменше 3 рядки координат."}]};if(r.length>100)return{ok:!1,errors:[{line:0,message:"Допускається не більше 100 рядків координат."}]};const l=[],a=[];if(r.forEach((d,u)=>{const p=u+1,h=t==="decimal"?xc(d,p,n):Uo(d,p,n);if(!h.ok){l.push(...h.errors);return}const k=a[a.length-1];if(k&&qo(k,h.point)){l.push({line:p,message:"Послідовні точки не повинні дублюватися."});return}a.push(h.point)}),l.length)return{ok:!1,errors:l};if(new Set(a.map(_c)).size<3)return{ok:!1,errors:[{line:0,message:"Полігон повинен містити мінімум 3 унікальні точки."}]};const i=[...a];let c=!1;return qo(i[0],i[i.length-1])||(i.push(i[0]),c=!0),Cc(i)?{ok:!1,errors:[{line:0,message:"Полігон має самоперетин."}]}:{ok:!0,ring:i,wasClosedAutomatically:c}}function xc(o,t,n){return jo(o,"decimal",n,t)}function jo(o,t,n,r=1){return t==="decimal"?wc(o,r,n):Uo(o,r,n)}function wc(o,t,n){const r=[];if(/[A-Za-zА-Яа-яІіЇїЄєҐґ]/.test(o))return{ok:!1,errors:[{line:t,message:"У десятковому форматі не допускаються літери."}]};const l=o.split(/[\s,;]+/).filter(Boolean);if(l.length<2)return{ok:!1,errors:[{line:t,message:"Кожен рядок має містити дві координати."}]};if(l.length>2)return{ok:!1,errors:[{line:t,message:"У рядку дозволено лише одну пару координат."}]};if(!l.every(d=>bc.test(d)))return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати десяткові координати."}]};const a=Number(l[0]),s=Number(l[1]);if(!Number.isFinite(a)||!Number.isFinite(s))return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати десяткові координати."}]};const i=n==="lat-lon"?a:s,c=n==="lat-lon"?s:a;return(i<-90||i>90)&&r.push({line:t,message:"Широта поза діапазоном (-90..90)."}),(c<-180||c>180)&&r.push({line:t,message:"Довгота поза діапазоном (-180..180)."}),r.length?{ok:!1,errors:r}:{ok:!0,point:[c,i]}}function Uo(o,t,n){xn.lastIndex=0;const r=[...o.matchAll(xn)];if(r.length<2)return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати DMS-координати."}]};if(r.length>2)return{ok:!1,errors:[{line:t,message:"У рядку дозволено лише одну пару координат."}]};if(xn.lastIndex=0,o.replace(xn," ").replace(/[\s,;]+/g,"").trim().length)return{ok:!1,errors:[{line:t,message:"У рядку виявлено зайві символи або значення."}]};const a=Ho(r[0],t,n==="lat-lon"?"lat":"lon"),s=Ho(r[1],t,n==="lat-lon"?"lon":"lat"),i=[];if(a.ok||i.push(a.error),s.ok||i.push(s.error),i.length)return{ok:!1,errors:i};const c=n==="lat-lon"?a.value:s.value;return{ok:!0,point:[n==="lat-lon"?s.value:a.value,c]}}function Ho(o,t,n){const r=Number(o[1]),l=Number(o[2]),a=Number(o[3]),s=String(o[4]).toUpperCase();if(!Number.isFinite(r)||!Number.isFinite(l)||!Number.isFinite(a))return{ok:!1,error:{line:t,message:"Невірні значення DMS-координат."}};if(n==="lat"&&!(s==="N"||s==="S")||n==="lon"&&!(s==="E"||s==="W"))return{ok:!1,error:{line:t,message:n==="lat"?"Для широти напрям повинен бути N або S.":"Для довготи напрям повинен бути E або W."}};if(l<0||l>59)return{ok:!1,error:{line:t,message:"Хвилини повинні бути в діапазоні 0..59."}};if(a<0||a>60)return{ok:!1,error:{line:t,message:"Секунди повинні бути в діапазоні 0..60."}};const d=Math.abs(r),u=n==="lat"?90:180;if(d>u)return{ok:!1,error:{line:t,message:n==="lat"?"Градуси широти повинні бути в діапазоні 0..90.":"Градуси довготи повинні бути в діапазоні 0..180."}};if(d===u&&(l!==0||a!==0))return{ok:!1,error:{line:t,message:n==="lat"?"Для 90° широти хвилини й секунди мають бути 0.":"Для 180° довготи хвилини й секунди мають бути 0."}};const p=d+l/60+a/3600;return{ok:!0,value:s==="S"||s==="W"?-p:p}}function _c(o){return`${o[0].toFixed(12)}:${o[1].toFixed(12)}`}function qo(o,t){return Math.abs(o[0]-t[0])<Lt&&Math.abs(o[1]-t[1])<Lt}function Cc(o){if(o.length<4)return!1;for(let t=0;t<o.length-1;t+=1){const n=o[t],r=o[t+1];for(let l=t+1;l<o.length-1;l+=1){if(Math.abs(t-l)<=1||t===0&&l===o.length-2)continue;const a=o[l],s=o[l+1];if(vc(n,r,a,s))return!0}}return!1}function vc(o,t,n,r){const l=wn(o,t,n),a=wn(o,t,r),s=wn(n,r,o),i=wn(n,r,t);return!!(l!==a&&s!==i||l===0&&_n(o,n,t)||a===0&&_n(o,r,t)||s===0&&_n(n,o,r)||i===0&&_n(n,t,r))}function wn(o,t,n){const r=(t[1]-o[1])*(n[0]-t[0])-(t[0]-o[0])*(n[1]-t[1]);return Math.abs(r)<Lt?0:r>0?1:2}function _n(o,t,n){return t[0]<=Math.max(o[0],n[0])+Lt&&t[0]+Lt>=Math.min(o[0],n[0])&&t[1]<=Math.max(o[1],n[1])+Lt&&t[1]+Lt>=Math.min(o[1],n[1])}const Ec=["title"],Bc={key:0,class:"vs-select__options absolute z-50 mt-1 w-auto min-w-full bg-white border border-gray-300 shadow-lg rounded-lg text-sm text-gray-900"},Vc=["onClick"],Sc=["placeholder"],$c={class:"absolute inset-y-0 right-2 flex items-center gap-1"},Nc={class:"flex items-center justify-between gap-2 px-3 py-2 border-b border-gray-100"},Ac={class:"text-xs font-semibold uppercase tracking-wide text-gray-500"},Mc={class:"max-h-[260px] overflow-auto"},Fc={key:0,class:"divide-y divide-gray-100"},Dc=["onClick"],Tc={key:1,class:"px-3 py-3 text-xs text-gray-500"},Ko="formMapSearchAddressHistory",Lc=12,Ic="https://geo.rv.ua/api-user/dzk.api",Rc="https://nominatim.openstreetmap.org/search",Oc=ke(e.defineComponent({__name:"map-search",props:{config:{}},emits:["goToCoordinates"],setup(o,{emit:t}){const n={mounted(O,j){if(typeof document>"u")return;let q=null;const M=8,K=()=>{const se=String(j?.value??"");if(!se)return;q=document.createElement("div"),q.textContent=se,Object.assign(q.style,{position:"absolute",background:"#333",color:"#fff",padding:"4px 8px",borderRadius:"4px",fontSize:"12px",whiteSpace:"nowrap",pointerEvents:"none",zIndex:"9999"}),document.body.appendChild(q);const ve=O.getBoundingClientRect();q.style.left=`${ve.right+window.scrollX+M}px`,q.style.top=`${ve.top+window.scrollY+(ve.height-q.offsetHeight)/2}px`},te=()=>{q?.parentNode&&q.parentNode.removeChild(q),q=null};O.addEventListener("mouseenter",K),O.addEventListener("mouseleave",te),Object.assign(O,{tooltipRightHandlers:{show:K,hide:te}})},unmounted(O){if(typeof document>"u")return;const j=O.tooltipRightHandlers;j&&(O.removeEventListener("mouseenter",j.show),O.removeEventListener("mouseleave",j.hide))}},r=o,l=t,a=e.getCurrentInstance();function s(){return typeof globalThis<"u"&&globalThis.proxy?globalThis.proxy:typeof window<"u"&&window.proxy?window.proxy:null}function i(){const j=a?.appContext.config.globalProperties?.$settings?.map?.searchViewbox;if(j)return Array.isArray(j)?j.join(","):String(j);const M=s()?.map?.searchViewbox;if(M)return Array.isArray(M)?M.join(","):String(M)}function c(){const j=a?.appContext.config.globalProperties?.$settings?.map?.addressSuggest;if(typeof j=="string"&&j.trim())return j.trim();const M=s()?.map?.addressSuggest;if(typeof M=="string"&&M.trim())return M.trim()}const d=!!c(),u=!!i(),p=e.computed(()=>{const O=["nominatim","xy","parcel"];return d&&O.unshift("address"),u?O:O.filter(j=>j!=="nominatim")}),h=e.computed(()=>{const O=p.value,j=r.config?.tools?.filter(q=>O.includes(q));return j&&j.length?j:O}),k=e.computed(()=>r.config?.placeholder?.trim()||"Пошук…"),m=e.ref(h.value[0]);e.watch(h,O=>{O.includes(m.value)||(m.value=O[0])});const g=e.ref(""),y=e.ref(!1),C=e.ref(null),x=e.ref(null),w=e.ref(null),V=e.ref(null),z=e.ref([]),X=e.ref(null),L=e.ref(!1),E=e.ref([]),S=e.computed(()=>(m.value==="address"||m.value==="nominatim")&&L.value),N=e.computed(()=>r.config?.addressDebounceMs??1e3);let v=null;const $=e.ref(!1),R=e.computed(()=>g.value.trim().length>0?z.value:E.value),B=e.computed(()=>g.value.trim().length?`Знайдено ${z.value.length}`:"Історія пошуку"),F=e.computed(()=>g.value.trim().length?"Нічого не знайдено":"Історія порожня");function D(){if(typeof window>"u")return[];try{const O=window.localStorage?.getItem?.(Ko);if(!O)return[];const j=JSON.parse(O);return Array.isArray(j)?j:[]}catch{return[]}}function Z(O){typeof window>"u"||window.localStorage?.setItem?.(Ko,JSON.stringify(O))}function G(O){const q=[O,...E.value.filter(M=>M.id!==O.id)].slice(0,10);E.value=q,Z(q)}const ee=e.reactive({position:"absolute",left:"0px",top:"0px",width:"100%",display:"none"});function le(){if(!V.value)return;const O=V.value.getBoundingClientRect(),j=w.value?.getBoundingClientRect(),q=j?.width??O.width,M=(j?.left??O.left)+window.scrollX,K=O.bottom+window.scrollY+Lc;ee.left=`${M}px`,ee.top=`${K}px`,ee.width=`${q}px`,ee.display="block"}const we=()=>{S.value&&le()};function me(){v&&(clearTimeout(v),v=null)}e.watch(m,()=>{g.value="",y.value=!1,z.value=[],L.value=!1,me(),$.value=!1}),e.watch(S,O=>{O?e.nextTick(()=>{le()}):ee.display="none"}),e.watch(g,O=>{if(m.value!=="address"&&m.value!=="nominatim"){z.value=[],me();return}if(!O.trim()){z.value=[],L.value=E.value.length>0,me();return}me(),L.value=!0,v=window.setTimeout(()=>{U(O).catch(j=>{const q=j?.message||"Помилка пошуку адреси";fe.notify({type:"error",title:"Пошук адреси",message:q})})},N.value)});function ne(O){const j=[];x.value&&j.push(x.value),O instanceof HTMLElement&&j.push(O),C.value?.querySelectorAll("li")?.forEach(M=>{j.push(M)}),j.forEach(M=>{M.dispatchEvent(new MouseEvent("mouseleave",{bubbles:!0}))})}function ie(O){y.value&&ne(O.target),y.value=!y.value}function ge(O,j){ne(j?.target),m.value=O}function Q(){g.value="",z.value=[],L.value=!1,$.value=!1}function de(O){const j=O.target;if(y.value){const q=C.value;q&&!q.contains(j)&&(ne(j),y.value=!1)}if(S.value){const q=X.value,M=V.value;q&&!q.contains(j)&&(!M||!M.contains(j))&&(L.value=!1)}}e.onMounted(()=>{E.value=D(),window.addEventListener("click",de,!0),window.addEventListener("scroll",we,!0),window.addEventListener("resize",we)}),e.onBeforeUnmount(()=>{window.removeEventListener("click",de,!0),window.removeEventListener("scroll",we,!0),window.removeEventListener("resize",we),me()});function he(O){return O==="xy"?"Координати":O==="parcel"?"Кадастр":O==="nominatim"?"Адреса":"Адресний"}function Be(O){switch(O){case"xy":return"Пошук за географічними координатами. Введіть широту і довготу через пробіл або кому (lat lng або lng lat).";case"parcel":return"Пошук земельної ділянки за кадастровим номером у форматі 0000000000:00:000:0000.";case"nominatim":return"Пошук адрес та обʼєктів через Nominatim.";case"address":return"Пошук адрес через локальний сервіс addressSuggest.";default:return""}}function $e(O){const j=jo(O.trim(),"dms","lat-lon");if(j.ok){const[He,qe]=j.point;return{lat:qe,lng:He}}const q=O.replace(/[,]+/g," ").trim();if(!q)return null;const M=q.split(/\s+/).filter(Boolean);if(M.length<2)return null;const K=M.slice(0,2).map(Number);if(!K.every(He=>Number.isFinite(He)))return null;let[te,se]=K,ve=te,et=se;const We=He=>Math.abs(He)<=90,vt=He=>Math.abs(He)<=180;if(!We(ve)||!vt(et))if(We(et)&&vt(ve))ve=se,et=te;else return null;return{lat:ve,lng:et}}function Re(O){const j=O?.result||O?.data||O;if(!j)return[];const q=j.geom_centroid;if(!q||!Array.isArray(q.coordinates))return[];const[M,K]=q.coordinates;return!Number.isFinite(K)||!Number.isFinite(M)?[]:[{id:"parcel",title:j.cadnum||j.cad_num||"Земельна ділянка",lat:K,lng:M}]}function Ae(O){return(Array.isArray(O?.features)?O.features:[]).map((q,M)=>{const K=q?.geometry?.coordinates,te=Number(K?.[0]),se=Number(K?.[1]);if(!Number.isFinite(se)||!Number.isFinite(te))return null;const ve=q?.properties||{},et=ve?.geocoding?.label||ve?.display_name||ve?.label||"Адреса";return{id:String(ve?.geocoding?.place_id||ve?.place_id||M),title:et,lat:se,lng:te}}).filter(q=>!!q)}function Ce(O){return Number.isFinite(O.lat)&&Number.isFinite(O.lng)}function Ve(O){if(O==null||typeof O=="string"&&!O.trim())return null;const j=Number(O);return Number.isFinite(j)?j:null}function Se(O){const j=Ve(O.lng)??Ve(O.lon)??Ve(O.longitude)??Ve(O.x),q=Ve(O.lat)??Ve(O.latitude)??Ve(O.y);if(j!=null&&q!=null)return{lat:q,lng:j};const M=O?.geometry?.coordinates??O?.geom_centroid?.coordinates??O?.centroid?.coordinates??O?.geojson?.geometry?.coordinates??O?.geom?.coordinates;if(Array.isArray(M)&&M.length>=2){const K=Ve(M[0]),te=Ve(M[1]);if(K!=null&&te!=null)return{lat:te,lng:K}}return null}function Ne(O){return(Array.isArray(O?.data)?O.data:[]).map((q,M)=>{const K=Se(q),te=String(q.text??q.title??q.label??q.name??q.address??q.display_name??q.id??"Адреса"),se=String(q.id??q.code??q.value??M);return K?{id:se,title:te,...K}:{id:se,title:te}}).filter(q=>!!q?.title)}function Le(O){const j=c();if(!j)return null;if(j.includes(":name"))return j.replace(":name",encodeURIComponent(O));try{const q=new URL(j,window.location.origin);return O.trim()&&q.searchParams.set("q",O),q.toString()}catch{return j}}async function Ie(O){const j=Le(O);if(!j)return[];const q=await fetch(j);if(!q.ok)throw new Error(`HTTP ${q.status}`);const M=await q.json();return Ne(M)}async function Qe(O){const j=new URL(Rc);j.searchParams.set("format","geojson"),j.searchParams.set("q",O),j.searchParams.set("addressdetails","1"),j.searchParams.set("bounded","1");const q=i();q&&j.searchParams.set("viewbox",q);const M=await fetch(j.toString());if(!M.ok)throw new Error(`HTTP ${M.status}`);const K=await M.json();return Ae(K)}async function U(O){if(z.value=[],me(),m.value==="address"){if(!c()){fe.notify({type:"warning",title:"Пошук адреси",message:"Не налаштовано addressSuggest"});return}const M=await Ie(O);if(!M.length){fe.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}z.value=M;return}const j=await Qe(O);if(!j.length){fe.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}z.value=j}async function J(O){if(Ce(O)){W(O),G(O);return}fe.notify({type:"warning",title:"Пошук адреси",message:"Геометрія для обраної адреси відсутня"})}function re(){m.value!=="address"&&m.value!=="nominatim"||(L.value=!0,e.nextTick(()=>{le()}))}function I(O){const q=O.replace(/\s+/g,"").split(":");if(q.length!==4)return!1;const M=[10,2,3,4];return q.every((K,te)=>K.length===M[te]&&/^\d+$/.test(K))}function W(O){l("goToCoordinates",[O.lat,O.lng]),$.value=!0}async function _e(){const O=g.value.trim();if(O){if(m.value==="xy"){const j=$e(O);if(!j){fe.notify({type:"warning",title:"Пошук координат",message:"Використайте `lat lon` або DMS у форматі `50°27'00\"N 30°31'24\"E`."});return}W(j);return}if(m.value==="address"||m.value==="nominatim"){try{await U(O)}catch(j){const q=j?.message||"Помилка пошуку адреси";fe.notify({type:"error",title:"Пошук адреси",message:q})}return}try{if(!I(O)){fe.notify({type:"warning",title:"Пошук кадастру",message:"Кадастровий номер має формат ХХХХХХХХХХ:ХХ:ХХХ:ХХХХ"});return}const j=new URL(Ic);j.searchParams.set("cad_num",O);const q=await fetch(j.toString());if(!q.ok)throw new Error(`HTTP ${q.status}`);const M=await q.json(),K=Re(M);if(!K.length)fe.notify({type:"warning",title:"Пошук",message:"Не знайдено результатів"});else{const te=K[0];W(te)}}catch(j){const q=j?.message||"Помилка пошуку";fe.notify({type:"error",title:"Пошук",message:q})}}}return(O,j)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"widgetRef",ref:w,class:"map-search-widget flex flex-col gap-2 rounded-xl widget min-w-[200px]"},[e.createElementVNode("form",{class:"flex gap-2 text-gray-900",onSubmit:e.withModifiers(_e,["prevent"])},[h.value.length>1?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:C,class:"relative search-type w-[100px]"},[e.createElementVNode("button",{type:"button",class:"vstSelect-input transition-all text-left bg-white border border-gray-200 text-gray-900 rounded-lg focus:ring-blue-500 focus:border-blue-100 block w-full py-1.5 px-3 text-sm cursor-pointer flex items-center justify-between gap-2",onClick:ie},[e.withDirectives((e.openBlock(),e.createElementBlock("span",{ref_key:"selectedToolLabelRef",ref:x,class:"block w-full truncate",title:he(m.value)},[e.createTextVNode(e.toDisplayString(he(m.value)),1)],8,Ec)),[[n,Be(m.value)]]),(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(["w-4 h-4 text-gray-500 transition-transform",{"rotate-180":y.value}]),viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},j[3]||(j[3]=[e.createElementVNode("path",{d:"M6 9l6 6 6-6",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]),2))]),y.value?(e.openBlock(),e.createElementBlock("div",Bc,[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,q=>e.withDirectives((e.openBlock(),e.createElementBlock("li",{key:q,class:"px-3 py-2 cursor-pointer hover:bg-gray-100 text-gray-900",onClick:M=>ge(q,M)},[e.createTextVNode(e.toDisplayString(he(q)),1)],8,Vc)),[[n,Be(q)]])),128))])])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"searchWrapperRef",ref:V,class:"relative flex-1 min-w-[140px]"},[m.value==="parcel"?(e.openBlock(),e.createBlock(mn,{key:0,modelValue:g.value,"onUpdate:modelValue":j[0]||(j[0]=q=>g.value=q),mask:"0000000000:00:000:0000",class:e.normalizeClass(["vs-input !h-[34px] transition-all border block w-full border-gray-200 rounded-md focus:border-blue-100 border-solid py-1.5 pl-3 text-sm",$.value?"!pr-14":"!pr-8"])},null,8,["modelValue","class"])):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,"onUpdate:modelValue":j[1]||(j[1]=q=>g.value=q),placeholder:k.value,type:"text",class:e.normalizeClass(["vs-input transition-all border block w-full border-gray-200 rounded-md focus:border-blue-100 border-solid py-1.5 pl-3 text-sm",$.value?"!pr-14":"!pr-8"]),onFocus:re},null,42,Sc)),[[e.vModelText,g.value,void 0,{trim:!0}]]),e.createElementVNode("div",$c,[$.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"flex items-center text-gray-400 hover:text-gray-600","aria-label":"Очистити",onClick:Q},j[4]||(j[4]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)]))):e.createCommentVNode("",!0),j[5]||(j[5]=e.createElementVNode("button",{type:"submit",class:"flex items-center text-gray-400 hover:text-gray-600","aria-label":"Пошук"},[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m21 21-4.35-4.35m0 0A7.5 7.5 0 1 0 5 5a7.5 7.5 0 0 0 11.65 11.65Z"})])],-1))]),S.value?(e.openBlock(),e.createBlock(e.Teleport,{key:2,to:"body"},[e.createElementVNode("div",{ref_key:"addressResultsRef",ref:X,class:"vs-select__options mt-1 bg-white border border-gray-300 rounded-lg shadow-lg text-sm text-gray-900 z-50",style:e.normalizeStyle(ee)},[e.createElementVNode("div",Nc,[e.createElementVNode("span",Ac,e.toDisplayString(B.value),1),e.createElementVNode("button",{type:"button",class:"text-gray-400 hover:text-gray-600","aria-label":"Закрити",onClick:j[2]||(j[2]=q=>L.value=!1)}," ✕ ")]),e.createElementVNode("div",Mc,[R.value.length?(e.openBlock(),e.createElementBlock("ul",Fc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(R.value,q=>(e.openBlock(),e.createElementBlock("li",{key:q.id,class:"px-3 py-2 cursor-pointer hover:bg-gray-50",onClick:M=>J(q)},e.toDisplayString(q.title),9,Dc))),128))])):(e.openBlock(),e.createElementBlock("div",Tc,e.toDisplayString(F.value),1))])],4)])):e.createCommentVNode("",!0)],512)],32)],512))}}),[["__scopeId","data-v-64b5dcb8"]]),Pc={class:"pt-1 border-t border-gray-100"},zc={class:"space-y-1"},jc=e.defineComponent({__name:"AddCoordinates",emits:["submit","cancel"],setup(o,{emit:t}){const n=t,r=e.ref(null),l=e.ref(null),a=(c,d,u)=>Math.min(Math.max(c,d),u),s=()=>{if(r.value===null||l.value===null||!Number.isFinite(r.value)||!Number.isFinite(l.value))return;const c=a(r.value,-90,90),d=a(l.value,-180,180);n("submit",{lat:c,lng:d}),r.value=null,l.value=null},i=()=>{r.value=null,l.value=null,n("cancel")};return(c,d)=>(e.openBlock(),e.createElementBlock("div",Pc,[d[2]||(d[2]=e.createElementVNode("p",{class:"text-xs text-gray-600 mb-1"},"Додати точку за координатами:",-1)),e.createElementVNode("div",zc,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[0]||(d[0]=u=>r.value=u),type:"number",step:"0.0001",class:"w-full px-2 py-1 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Широта (50.4501)"},null,512),[[e.vModelText,r.value,void 0,{number:!0}]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[1]||(d[1]=u=>l.value=u),type:"number",step:"0.0001",class:"w-full px-2 py-1 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Довгота (30.5234)"},null,512),[[e.vModelText,l.value,void 0,{number:!0}]]),e.createElementVNode("div",{class:"flex gap-1.5"},[e.createElementVNode("button",{class:"flex-1 px-2 py-1 bg-blue-500 hover:bg-blue-600 text-white text-xs font-medium rounded transition-colors",type:"button",onClick:s}," Додати "),e.createElementVNode("button",{class:"px-2 py-1 bg-gray-200 hover:bg-gray-300 text-gray-700 text-xs font-medium rounded transition-colors",type:"button",onClick:i}," Скасувати ")])])]))}}),Uc=e.defineComponent({__name:"BtnAdd",emits:["click"],setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"flex-1 px-2 py-1.5 bg-blue-500 hover:bg-blue-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(H.Plus),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode(" Додати ",-1))]))}}),Hc=e.defineComponent({__name:"BtnClear",emits:["click"],setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"w-full px-2 py-1.5 bg-rose-500 hover:bg-rose-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(H.Trash2),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode(" Очистити ",-1))]))}}),qc=e.defineComponent({__name:"BtnComplete",emits:["click"],setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"flex-1 px-2 py-1.5 bg-emerald-500 hover:bg-emerald-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(H.Circle),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode("Замкнути ",-1))]))}}),Kc=new Intl.NumberFormat("uk-UA",{minimumFractionDigits:2,maximumFractionDigits:2});function It(o){return Kc.format(o)}function Wo(o){return o>=1e3?`${It(o/1e3)} км`:`${It(o)} м`}const Wc={class:"flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"},Gc={key:0,class:"flex-1 flex gap-1"},Yc={key:1,class:"flex-1 font-mono text-gray-700"},Xc=e.defineComponent({__name:"DotListItem",props:{id:{},index:{},coords:{}},emits:["update","delete"],setup(o,{emit:t}){const n=o,r=t,l=e.computed(()=>`${n.coords.lat.toFixed(4)}°, ${n.coords.lng.toFixed(4)}°`),a=e.ref(!1),s=e.ref(n.coords.lat),i=e.ref(n.coords.lng);e.watch(()=>n.coords,h=>{s.value=h.lat,i.value=h.lng},{deep:!0,immediate:!0});const c=(h,k,m)=>Math.min(Math.max(h,k),m),d=()=>{a.value=!0},u=()=>{if(!Number.isFinite(s.value)||!Number.isFinite(i.value))return;const h=c(s.value,-90,90),k=c(i.value,-180,180);r("update",{id:n.id,coords:{lat:h,lng:k}}),a.value=!1},p=()=>{r("delete",n.id)};return(h,k)=>(e.openBlock(),e.createElementBlock("div",Wc,[e.createVNode(e.unref(H.MapPin),{size:12,"stroke-width":2,class:"text-gray-400 flex-shrink-0"}),a.value?(e.openBlock(),e.createElementBlock("div",Gc,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":k[0]||(k[0]=m=>s.value=m),type:"number",step:"0.0001",min:"-90",max:"90",class:"flex-1 px-1.5 py-0.5 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Широта"},null,512),[[e.vModelText,s.value,void 0,{number:!0}]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":k[1]||(k[1]=m=>i.value=m),type:"number",step:"0.0001",min:"-180",max:"180",class:"flex-1 px-1.5 py-0.5 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Довгота"},null,512),[[e.vModelText,i.value,void 0,{number:!0}]]),e.createElementVNode("button",{class:"px-1.5 py-0.5 bg-emerald-500 text-white rounded hover:bg-emerald-600 text-xs",type:"button",onClick:u}," ✓ ")])):(e.openBlock(),e.createElementBlock("span",Yc,e.toDisplayString(l.value),1)),a.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:2,class:"text-blue-500 hover:text-blue-600 px-0.5",type:"button",onClick:d}," ✎ ")),e.createElementVNode("button",{class:"text-rose-500 hover:text-rose-600 px-0.5",type:"button",onClick:p}," ✕ ")]))}}),Zc={class:"ruler-control px-3 py-2.5 space-y-2"},Jc={type:"button",class:"ruler-row w-full flex items-center gap-2 cursor-pointer group text-left"},Qc={class:e.normalizeClass(["flex items-center justify-center w-5 h-5 rounded-full shrink-0 transition-colors pointer-events-none"]),title:"Сумарна довжина всіх відрізків","aria-hidden":"true"},ed={class:"text-sm font-semibold text-slate-700"},td={class:"ruler-row"},nd={type:"button",class:"w-full flex items-center gap-2 cursor-pointer group text-left"},od={class:e.normalizeClass(["flex items-center justify-center w-5 h-5 rounded-full shrink-0 transition-colors pointer-events-none"]),title:"Площа замкнутого контуру","aria-hidden":"true"},rd={class:"inline-flex rounded-md overflow-hidden border border-gray-200 bg-gray-100"},ld=["onClick"],ad={class:"flex items-center gap-2 mt-0.5 pl-7"},sd={key:0,class:"text-base font-semibold text-green-600"},id={key:1,class:"text-xs text-gray-400"},cd={class:"ruler-row flex items-center gap-2 cursor-pointer"},dd={class:e.normalizeClass(["flex items-center justify-center w-5 h-5 rounded-full shrink-0 transition-colors pointer-events-none"]),title:"Список точок","aria-hidden":"true"},ud={class:"text-xs font-medium text-gray-600 flex-1"},pd={key:0,class:"pt-1.5 border-t border-gray-100 max-h-32 overflow-y-auto space-y-1"},fd=e.defineComponent({__name:"ControlPanel",props:{points:{},isShapeClosed:{type:Boolean}},emits:["update-point","delete-point"],setup(o){const t=o,n=e.ref(!1),r=e.ref("km2"),l=[{id:"km2",label:"км²"},{id:"ha",label:"га"},{id:"m2",label:"м²"}],a=()=>{n.value=!n.value},s=(m,g)=>{const y=S=>S*Math.PI/180,C=y(g.lat-m.lat),x=y(g.lng-m.lng),w=y(m.lat),V=y(g.lat),z=Math.sin(C/2),X=Math.sin(x/2);return 6371e3*(2*Math.asin(Math.sqrt(z*z+Math.cos(w)*Math.cos(V)*X*X)))},i=e.computed(()=>{if(t.points.length<2)return 0;let m=0;for(let g=1;g<t.points.length;g+=1)m+=s(t.points[g-1].coords,t.points[g].coords);return t.isShapeClosed&&t.points.length>=2&&(m+=s(t.points[t.points.length-1].coords,t.points[0].coords)),m}),c=e.computed(()=>i.value>=1e3?`${It(i.value/1e3)} км`:`${It(i.value)} м`);function d(m){if(m.length<3)return 0;const g=m[0].lat,y=m[0].lng,C=(w,V)=>{const z=(w-g)*110574;return{x:(V-y)*111320*Math.cos(g*Math.PI/180),y:z}};let x=0;for(let w=0;w<m.length;w++){const V=(w+1)%m.length,z=C(m[w].lat,m[w].lng),X=C(m[V].lat,m[V].lng);x+=z.x*X.y-z.y*X.x}return Math.abs(x)*.5}const u=e.computed(()=>{if(!t.isShapeClosed||t.points.length<3)return 0;const m=t.points.map(g=>g.coords);return d(m)}),p=e.computed(()=>u.value>0),h=e.computed(()=>{const m=u.value;if(m===0)return"—";if(r.value==="km2"){const y=m/1e6;return`${It(y)} км²`}if(r.value==="ha"){const y=m/1e4;return`${It(y)} га`}const g=m>=1?Math.round(m):m;return`${It(g)} м²`}),k=e.computed(()=>{const m=t.points.length;return m===1?"1 точка":m>=2&&m<=4?`${m} точки`:`${m} точок`});return e.watch(()=>t.points.length,()=>{t.points.length===0&&(n.value=!1)}),(m,g)=>(e.openBlock(),e.createElementBlock("div",Zc,[e.createElementVNode("button",Jc,[e.createElementVNode("span",Qc,[e.createVNode(e.unref(H.Info),{size:12,"stroke-width":2.5})]),g[1]||(g[1]=e.createElementVNode("span",{class:"text-xs font-medium text-gray-600 flex-1"},"Загальна відстань",-1)),e.createElementVNode("span",ed,e.toDisplayString(c.value),1)]),e.createElementVNode("div",td,[e.createElementVNode("button",nd,[e.createElementVNode("span",od,[e.createVNode(e.unref(H.Info),{size:12,"stroke-width":2.5})]),g[2]||(g[2]=e.createElementVNode("span",{class:"text-xs font-medium text-gray-600 flex-1"},"Площа",-1)),e.createElementVNode("div",rd,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(l,(y,C)=>e.createElementVNode("button",{key:y.id,type:"button",class:e.normalizeClass(["px-2.5 py-1 text-xs font-medium transition-colors border-r border-gray-200 last:border-r-0",C===0&&"rounded-l-md",C===l.length-1&&"rounded-r-md",r.value===y.id?"bg-white text-green-600 font-semibold shadow-sm":"text-gray-600 hover:bg-gray-50"]),onClick:e.withModifiers(x=>r.value=y.id,["stop"])},e.toDisplayString(y.label),11,ld)),64))])]),e.createElementVNode("div",ad,[p.value?(e.openBlock(),e.createElementBlock("span",sd,e.toDisplayString(h.value),1)):(e.openBlock(),e.createElementBlock("span",id,"—"))])]),e.createElementVNode("div",cd,[e.createElementVNode("span",dd,[e.createVNode(e.unref(H.Info),{size:12,"stroke-width":2.5})]),e.createElementVNode("span",ud,e.toDisplayString(k.value),1),e.createElementVNode("button",{type:"button",class:"text-xs text-blue-500 hover:text-blue-600 font-medium transition-colors",onClick:e.withModifiers(a,["stop"])}," Координати ")]),n.value?(e.openBlock(),e.createElementBlock("div",pd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.points,(y,C)=>(e.openBlock(),e.createBlock(Xc,{key:y.id,id:y.id,index:C+1,coords:y.coords,onUpdate:g[0]||(g[0]=x=>m.$emit("update-point",x)),onDelete:x=>m.$emit("delete-point",y.id)},null,8,["id","index","coords","onDelete"]))),128))])):e.createCommentVNode("",!0)]))}}),md={class:"px-3 py-3 bg-blue-50/50 border-b border-blue-100"},hd={class:"flex items-start gap-2"},gd=e.defineComponent({__name:"InfoHint",setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",md,[e.createElementVNode("div",hd,[e.createVNode(e.unref(H.Info),{size:16,"stroke-width":2,class:"text-blue-600 flex-shrink-0 mt-0.5"}),n[0]||(n[0]=e.createElementVNode("div",{class:"space-y-1"},[e.createElementVNode("p",{class:"text-xs font-medium text-blue-900"}," Натискайте на карту, щоб додати точки вимірювання "),e.createElementVNode("p",{class:"text-[10px] text-blue-700"},' Або скористайтесь кнопкою "Додати" внизу для введення координат вручну ')],-1))])]))}}),yd={class:"space-y-1.5"},bd={class:"space-y-1 max-h-40 overflow-y-auto"},kd={class:"text-gray-700"},xd={class:"font-semibold text-slate-800"},wd=e.defineComponent({__name:"ToPointList",props:{points:{},isShapeClosed:{type:Boolean}},setup(o){const t=o;function n(a,s){const i=k=>k*Math.PI/180,c=i(s.lat-a.lat),d=i(s.lng-a.lng),u=i(a.lat),p=i(s.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(c/2)**2+Math.cos(u)*Math.cos(p)*Math.sin(d/2)**2)))}function r(a){return Wo(a)}const l=e.computed(()=>{const a=[],s=t.points;if(s.length<2)return a;for(let i=0;i<s.length;i++){const c=i===s.length-1&&t.isShapeClosed?0:i+1;if(c>=s.length)break;const d=n(s[i].coords,s[c].coords);a.push({from:i+1,to:c+1,label:r(d)})}return a});return(a,s)=>(e.openBlock(),e.createElementBlock("div",yd,[s[0]||(s[0]=e.createElementVNode("p",{class:"text-xs font-medium text-gray-600 mb-1.5"},"Відстань між точками:",-1)),e.createElementVNode("div",bd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(i,c)=>(e.openBlock(),e.createElementBlock("div",{key:c,class:"flex items-center justify-between text-xs py-1 px-2 rounded bg-gray-50"},[e.createElementVNode("span",kd,"Точка "+e.toDisplayString(i.from)+" → Точка "+e.toDisplayString(i.to),1),e.createElementVNode("span",xd,e.toDisplayString(i.label),1)]))),128))])]))}}),_d={class:"ruler-panel-wrap absolute bottom-12 right-4 z-[1001] animate-slide-up"},Cd={class:"bg-white rounded-xl shadow-2xl border border-gray-200 overflow-hidden w-72"},vd={class:"bg-gradient-to-r from-blue-400 to-blue-500 px-3 py-2 flex items-center justify-between"},Ed={class:"flex items-center gap-2"},Bd={class:"w-6 h-6 bg-white/20 rounded-lg flex items-center justify-center"},Vd={class:"flex border-b border-gray-200"},Sd={key:1,class:"px-3 py-2.5"},$d={key:1,class:"text-xs text-gray-500"},Nd={class:"px-2.5 py-1.5 bg-gray-50 border-t border-gray-200 space-y-1.5"},Ad={class:"flex gap-1.5"},Md=e.defineComponent({name:"RulerPanel",__name:"RulerPanel",emits:["close","tab-change","points-change","add-request","complete","shape-closed-change"],setup(o,{expose:t,emit:n}){const r=n,l=e.ref([]),a=e.computed(()=>l.value.length>0),s=e.ref(!1),i=e.ref(!1),c=e.ref("general");function d(N){c.value=N,r("tab-change",N)}e.onMounted(()=>{r("tab-change",c.value)});const u=e.computed(()=>l.value.length>=3&&!i.value);let p=1;const h=()=>l.value.map(N=>({id:N.id,coords:{...N.coords}})),k=()=>{l.value.length<3&&i.value&&(i.value=!1,r("shape-closed-change",!1)),r("points-change",h())},m=()=>{const N=p;return p+=1,N},g=N=>{l.value=[...l.value,{id:m(),coords:{lat:N.lat,lng:N.lng}}],k()},y=({id:N,coords:v})=>{const $=l.value.findIndex(B=>B.id===N);if($===-1)return;const R=[...l.value];R[$]={id:N,coords:{...v}},l.value=R,k()},C=N=>{l.value=l.value.filter(v=>v.id!==N),k()},x=()=>{l.value=[],i.value&&(i.value=!1,r("shape-closed-change",!1)),k()},w=N=>{y(N)},V=N=>{C(N)},z=()=>{s.value=!0,r("add-request")},X=N=>{g(N),s.value=!1},L=()=>{s.value=!1},E=()=>{u.value&&(i.value=!0,r("complete"),r("shape-closed-change",!0))},S=()=>{x(),s.value=!1,r("close")};return t({addPoint:g,clearPoints:x}),(N,v)=>(e.openBlock(),e.createElementBlock("div",_d,[e.createElementVNode("div",Cd,[e.createElementVNode("div",vd,[e.createElementVNode("div",Ed,[e.createElementVNode("div",Bd,[e.createVNode(e.unref(H.Ruler),{size:14,"stroke-width":2,class:"text-white"})]),v[2]||(v[2]=e.createElementVNode("h3",{class:"text-white font-semibold text-xs"},"Вимірювання",-1))]),e.createElementVNode("button",{class:"w-5 h-5 flex items-center justify-center rounded hover:bg-white/20 transition-colors","aria-label":"Закрити",onClick:S},[e.createVNode(e.unref(H.X),{size:14,"stroke-width":2,class:"text-white"})])]),e.createElementVNode("div",Vd,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors",c.value==="general"?"text-blue-600 border-b-2 border-blue-500 bg-blue-50/50":"text-gray-500 hover:text-gray-700"]),onClick:v[0]||(v[0]=$=>d("general"))}," Загальна ",2),e.createElementVNode("button",{type:"button",class:e.normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors",c.value==="topoint"?"text-blue-600 border-b-2 border-blue-500 bg-blue-50/50":"text-gray-500 hover:text-gray-700"]),onClick:v[1]||(v[1]=$=>d("topoint"))}," До точки ",2)]),c.value==="general"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[a.value?(e.openBlock(),e.createBlock(fd,{key:1,points:l.value,"is-shape-closed":i.value,onUpdatePoint:w,onDeletePoint:V},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createBlock(gd,{key:0}))],64)):(e.openBlock(),e.createElementBlock("div",Sd,[a.value?(e.openBlock(),e.createBlock(wd,{key:0,points:l.value,"is-shape-closed":i.value},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createElementBlock("p",$d,"Додайте точки на карті, щоб бачити відстані між ними."))])),e.createElementVNode("div",Nd,[e.createElementVNode("div",Ad,[s.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(Uc,{key:0,onClick:z})),u.value?(e.openBlock(),e.createBlock(qc,{key:1,onClick:E})):e.createCommentVNode("",!0)]),s.value?(e.openBlock(),e.createBlock(jc,{key:0,onSubmit:X,onCancel:L})):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createBlock(Hc,{key:1,onClick:x})):e.createCommentVNode("",!0)])])]))}}),Ge="ruler-points",wt="ruler-line",_t="ruler-polygon",Ct="ruler-segments",Fd=e.defineComponent({__name:"RulerLayer",props:{map:{},points:{},isShapeClosed:{type:Boolean},labelMode:{}},setup(o){function t(m,g){const y=X=>X*Math.PI/180,C=y(g.lat-m.lat),x=y(g.lng-m.lng),w=y(m.lat),V=y(g.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(C/2)**2+Math.cos(w)*Math.cos(V)*Math.sin(x/2)**2)))}function n(m){return Wo(m)}const r=o;function l(){return{type:"FeatureCollection",features:[]}}function a(m,g,y){const C=y??"general",x=[];let w=0;x.push(0);for(let V=1;V<m.length;V++)w+=t(m[V-1].coords,m[V].coords),x.push(w);return g&&m.length>=2&&(w+=t(m[m.length-1].coords,m[0].coords)),{type:"FeatureCollection",features:m.map((V,z)=>{const X=C==="general"?z===0?"0":n(x[z]):z===0?"0":n(t(m[z-1].coords,m[z].coords));return{type:"Feature",geometry:{type:"Point",coordinates:[V.coords.lng,V.coords.lat]},properties:{id:V.id,index:z+1,label:X}}})}}function s(m,g){if(m.length<2)return l();const y=[];for(let C=0;C<m.length;C++){const x=C===m.length-1&&g?0:C+1;if(x>=m.length)break;const w=m[C].coords,V=m[x].coords,z=t(w,V);y.push({type:"Feature",geometry:{type:"LineString",coordinates:[[w.lng,w.lat],[V.lng,V.lat]]},properties:{distance:n(z)}})}return{type:"FeatureCollection",features:y}}function i(m,g){if(m.length<2)return l();const y=m.map(C=>[C.coords.lng,C.coords.lat]);return g&&y.push(y[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"LineString",coordinates:y},properties:{}}]}}function c(m){if(m.length<3)return l();const g=m.map(y=>[y.coords.lng,y.coords.lat]);return g.push(g[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"Polygon",coordinates:[g]},properties:{}}]}}let d=!1;function u(m){m.getSource(Ge)||(m.addSource(Ge,{type:"geojson",data:l()}),m.addLayer({id:`${Ge}-circle`,type:"circle",source:Ge,paint:{"circle-radius":5,"circle-color":"#1e293b","circle-stroke-width":2,"circle-stroke-color":"#ffffff"}}),m.addLayer({id:`${Ge}-labels`,type:"symbol",source:Ge,layout:{"text-field":["get","label"],"text-size":14,"text-offset":[0,1.3]},paint:{"text-color":"#0f172a","text-halo-color":"#ffffff","text-halo-width":1}})),m.getSource(Ct)||(m.addSource(Ct,{type:"geojson",data:l()}),m.addLayer({id:`${Ct}-labels`,type:"symbol",source:Ct,layout:{"text-field":["get","distance"],"text-size":13,"symbol-placement":"line-center","text-rotation-alignment":"map","text-pitch-alignment":"map"},paint:{"text-color":"#1e293b","text-halo-color":"#ffffff","text-halo-width":1.5}})),m.getSource(wt)||(m.addSource(wt,{type:"geojson",data:l()}),m.addLayer({id:`${wt}-layer`,type:"line",source:wt,paint:{"line-color":"#3b82f6","line-width":2}})),m.getSource(_t)||(m.addSource(_t,{type:"geojson",data:l()}),m.addLayer({id:`${_t}-layer`,type:"fill",source:_t,paint:{"fill-color":"#93c5fd","fill-opacity":.25}})),d=!0}function p(m){if(m){try{m.getLayer(`${_t}-layer`)&&m.removeLayer(`${_t}-layer`),m.getSource(_t)&&m.removeSource(_t),m.getLayer(`${wt}-layer`)&&m.removeLayer(`${wt}-layer`),m.getSource(wt)&&m.removeSource(wt),m.getLayer(`${Ct}-labels`)&&m.removeLayer(`${Ct}-labels`),m.getSource(Ct)&&m.removeSource(Ct),m.getLayer(`${Ge}-labels`)&&m.removeLayer(`${Ge}-labels`),m.getLayer(`${Ge}-circle`)&&m.removeLayer(`${Ge}-circle`),m.getSource(Ge)&&m.removeSource(Ge)}catch{}d=!1}}function h(m){if(!m)return;const g=m.getSource(Ge),y=m.getSource(wt),C=m.getSource(_t),x=m.getSource(Ct),w=r.points,V=r.labelMode??"general";g&&g.setData(a(w,r.isShapeClosed,V)),y&&y.setData(i(w,r.isShapeClosed)),C&&C.setData(c(w)),x&&x.setData(V==="topoint"?s(w,r.isShapeClosed):l())}function k(){const m=r.map;m&&(d||u(m),h(m))}return e.watch(()=>[r.points,r.isShapeClosed,r.labelMode],()=>k(),{deep:!0,immediate:!0}),e.watch(()=>r.map,()=>k(),{immediate:!0}),e.onBeforeUnmount(()=>{p(r.map)}),(m,g)=>null}});function Dd(o={}){const t=e.ref(!1),n=e.ref([]),r=e.ref(!1),l=e.ref("general"),a=e.ref(null);function s(){t.value?i():(t.value=!0,o.onActivate?.())}function i(){t.value=!1,n.value=[],r.value=!1,a.value?.clearPoints(),o.onDeactivate?.()}function c(k){n.value=k}function d(k){l.value=k}function u(k){r.value=k}function p(k){t.value&&a.value?.addPoint({lat:k.lat,lng:k.lng})}const h=e.computed(()=>n.value.length>0);return{isRulerActive:t,rulerPoints:n,rulerShapeClosed:r,rulerActiveTab:l,rulerPanelRef:a,hasRulerPoints:h,toggleRuler:s,closeRuler:i,onRulerPointsChange:c,onRulerTabChange:d,onRulerShapeClosedChange:u,handleRulerMapClick:p}}const Td={key:0,class:"absolute top-4 left-4 z-[1000] w-[calc(100%-20px)] sm:w-[350px]"},Ld={key:1,class:"form-geom__panel flex gap-1 items-start mt-2"},Id={class:"flex items-center gap-1"},Rd=["disabled"],Od={key:0,class:"absolute z-[1600] mt-1 min-w-[120px] bg-white border border-gray-300 shadow-lg rounded-lg text-sm overflow-hidden"},Pd=["disabled"],zd=["disabled"],jd={class:"mt-4 flex justify-end gap-2"},Ud=["disabled"],Hd={class:"absolute top-4 right-4 z-[1000]"},qd={class:"flex flex-col gap-[2px]"},Kd=["disabled"],Wd=["disabled"],Gd=["disabled"],Yd=["disabled"],Xd={class:"bg-white/95 border border-gray-200 rounded-md shadow-xl px-3 py-2 max-w-[240px] text-[11px] sm:text-xs text-gray-900"},Zd={class:"space-y-0.5"},Jd={class:"text-gray-500"},Qd={class:"text-gray-900 text-right break-all"},eu={class:"absolute left-4 bottom-[36px] z-[1000]"},tu={class:"flex flex-col gap-2"},nu={key:0,class:"bg-white/95 border border-gray-200 rounded-md shadow-sm px-3 py-2 text-xs text-gray-700 min-w-[200px]"},ou={class:"flex flex-col gap-1"},ru=["checked","disabled","onChange"],lu={class:"text-gray-700 text-xs font-medium"},au={class:"absolute bottom-0 left-0 right-0 z-[1000] min-h-[28px] bg-white/95 border-t border-gray-200 text-xs text-gray-700 flex items-center gap-4 pt-1"},su={key:0,class:"form-geom__feature flex items-center text-xs transition-all gap-2 w-full px-2 pb-1"},iu={class:"mr-auto flex items-center gap-2 min-w-0 relative"},cu={class:"shrink-0"},du={key:0,class:"font-bold"},uu=["onClick","disabled"],pu={key:0},fu={class:"flex items-center"},mu={class:"text-xs mr-2"},hu={key:0},gu={key:1},yu={key:0,class:"text-xs mr-2"},bu={key:1,class:"text-xs mr-2"},ku=["disabled"],xu=["disabled"],Cn="__vs_form_maplibre_loader__",vn="vs-global-bounds-src",En="vs-global-bounds-line",Go=ke(e.defineComponent({__name:"vs-input-map",props:{tools:{},multi:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},handleZoom:{type:Boolean,default:!0},ctrlZoom:{type:Boolean,default:!0},geomType:{default:()=>[]},prefix:{default:""},katottg:{default:""},layers:{default:()=>[]},bounds:{},api:{},center:{default:void 0},zoom:{default:void 0},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update:modelValue","valueSelected"],setup(o,{emit:t}){const n=o,r=t,l=e.useAttrs(),a=e.computed(()=>{const f=l?.multiple,b=l?.multi,_=A=>A===""||A===!0||A==="true"||A===1||A==="1";return!!n.multi||!!n.multiple||_(b)||_(f)}),s=e.computed(()=>!!n.disabled),i=e.ref(!1),c=e.ref(null),d=e.ref(0),u=e.ref(""),p=e.ref(null),h=e.ref([]),k=e.ref(null),m=e.ref(null),g=Dd({onActivate(){if(W)try{W.changeMode("simple_select",{featureIds:[]})}catch{}u.value=""},onDeactivate(){}});function y(){g.toggleRuler()}const C=e.getCurrentInstance(),x=C?.appContext?.config?.globalProperties?.$settings??{},w=x?.map??{},V=C?.vnode?.props??{};function z(f){return Object.prototype.hasOwnProperty.call(V,f)||Object.prototype.hasOwnProperty.call(V,f.replace(/[A-Z]/g,b=>`-${b.toLowerCase()}`))}const X=Array.isArray(w.center)&&w.center.length===2?w.center:Array.isArray(x.center)&&x.center.length===2?x.center:[30,50],L=typeof w.zoom=="number"?w.zoom:typeof x.zoom=="number"?x.zoom:typeof x.defaultZoom=="number"?x.defaultZoom:10,E=e.computed(()=>z("center")?n.center:w.center??n.center),S=e.computed(()=>z("zoom")?n.zoom:w.zoom??n.zoom),N=e.computed(()=>z("katottg")?String(n.katottg??""):String(w.katottg??n.katottg??"")),v=e.computed(()=>z("layers")?n.layers??[]:w.layers??n.layers??[]),$=e.computed(()=>z("bounds")?n.bounds:w.bounds??n.bounds),R=e.ref(Array.isArray(E.value)&&E.value.length===2?[...E.value]:X),B=e.ref(typeof S.value=="number"?S.value:L),F=e.ref(n.modelValue),D=e.ref(null),Z=e.ref(null),G=e.ref([]),ee=e.ref(!1),le=e.ref(!1),we=e.ref([]),me=e.ref({coordinates:"",format:"decimal",order:"lat-lon"}),ne={coordinates:{type:"Textarea",label:"Координати вершин полігону (3-100 точок)",placeholder:`50.4501, 30.5234
3
3
  50.4510, 30.5242
4
4
  50.4494, 30.5260`},format:{type:"Radio",label:"Формат координат",options:[{id:"decimal",text:"Десяткові (Decimal)"},{id:"dms",text:"Градуси-хвилини-секунди (DMS)"}]},order:{type:"Radio",label:"Порядок координат",options:[{id:"lat-lon",text:"lat, lon"},{id:"lon-lat",text:"lon, lat"}]}};let ie=!1,ge=!1;const Q=e.reactive({}),de=e.ref([]),he=e.computed(()=>de.value.map(f=>Q[f]).filter(Boolean)),Be=e.ref(null),$e=e.computed(()=>Be.value?.entries??[]),Re=e.computed(()=>{if(Be.value)return{left:`${Be.value.point.x+12}px`,top:`${Be.value.point.y+12}px`}}),Ae=e.computed(()=>{if(Array.isArray(n.tools)&&n.tools.length)return n.tools;const f=l?.tools;return Array.isArray(f)?f.map(b=>String(b)):typeof f=="string"?f.split(",").map(b=>b.trim()).filter(Boolean):[]}),Ce=e.computed(()=>{const f={search:!1,import:!1,export:!1,point:!1,line:!1,polygon:!1,rectangle:!1,ruler:!1};if(!Ae.value.length)return{...f,import:!0,export:!0,point:!0,line:!0,polygon:!0,rectangle:!0};const b=new Set(Ae.value.map(_=>_.toLowerCase()));return{search:b.has("search"),import:b.has("import"),export:b.has("export"),point:b.has("point"),line:b.has("line"),polygon:b.has("polygon"),rectangle:b.has("rectangle"),ruler:b.has("ruler")}});function Ve(f){if(typeof f!="string"||!f.trim())return"";if(/^https?:\/\//i.test(f))return f;const b=window?.location?.origin??"",_=f.replace(/^\/+/,"");return _?b?`${b}/${_}`:`/${_}`:b}function Se(){const f=Array.isArray(w.basemaps)&&w.basemaps.length?w.basemaps:x.basemaps;if(Array.isArray(f)&&f.length){const _=f.map((A,T)=>{const Y=String(A?.key??A?.id??A?.name??`b${T}`),ae=Ve(String(A?.url??""));if(!ae)return null;const ue=typeof A?.preview=="string"&&A.preview?Ve(A.preview):"";return[Y,{...A,url:ae,preview:ue}]}).filter(A=>Array.isArray(A)&&A.length===2).reduce((A,[T,Y])=>(A[T]=Y,A),{});if(Object.keys(_).length)return _}return{voyager:{name:"Оглядова карта",url:"https://data.gki.com.ua/api-user/rtile/voyager/ua/{z}/{x}/{y}.png",preview:"https://data.gki.com.ua/api-user/rtile/voyager/ua/13/4790/2762.png"},orto10:{name:"Ортофото 1:10K",url:"https://data.gki.com.ua/api-user/rtile/orto10/ua/{z}/{x}/{y}.png",preview:"https://data.gki.com.ua/api-user/rtile/orto10/ua/13/4790/2762.png"},osmb:{name:"Open Street Maps",url:"https://tile.openstreetmap.org.ua/styles/osm-bright/{z}/{x}/{y}.png",preview:"https://tile.openstreetmap.org.ua/styles/osm-bright/13/4790/2762.png"}}}const Ne=Se(),Le=Object.keys(Ne),Ie=e.ref(Le.length?Le[0]:"");async function Qe(){if(typeof window>"u")return null;const f=window;if(f[Cn])return f[Cn];const b=Y=>{if(Array.from(document.styleSheets).some(De=>De?.href?.includes(Y)))return;const ue=document.createElement("link");ue.rel="stylesheet",ue.href=Y,document.head.appendChild(ue)},_=async()=>{const Y=new Function("u","return import(u)"),ae=await Y("https://esm.sh/maplibre-gl@3.6.2"),ue=ae?.default??ae;if(!ue)throw new Error("maplibre esm fallback failed");window.maplibregl=ue,window.mapboxgl=ue;const De=await Y("https://esm.sh/@mapbox/mapbox-gl-draw@1.5.0"),nt=De?.default??De;if(!nt)throw new Error("mapbox draw esm fallback failed");window.MapboxDraw=nt},T=(async()=>{b("https://unpkg.com/maplibre-gl@3.6.2/dist/maplibre-gl.css"),b("https://unpkg.com/@mapbox/mapbox-gl-draw@1.5.0/dist/mapbox-gl-draw.css"),(!window.maplibregl||!window.MapboxDraw)&&await _();const Y=window.maplibregl,ae=window.MapboxDraw;if(!Y)throw new Error("maplibregl not available after load");if(!ae)throw new Error("MapboxDraw not available after load");return{maplibregl:Y,MapboxDraw:ae}})().catch(Y=>{throw delete f[Cn],Y});return f[Cn]=T,T}function U(f){return{version:8,sources:{rasterSource:{type:"raster",tiles:[f],tileSize:256}},layers:[{id:"rasterLayer",type:"raster",source:"rasterSource"}]}}let J=null,re=null,I=null,W=null,_e=[],O=null,j=null,q=null,M=!1,K=!1,te=!1,se=null;function ve(){return{onSetup(){const f=this.newFeature({type:"Feature",properties:{},geometry:{type:"Polygon",coordinates:[[[0,0],[0,0],[0,0],[0,0],[0,0]]]}});return this.addFeature(f),this.clearSelectedFeatures(),this.updateUIClasses({mouse:"add"}),this.setActionableState({trash:!0}),{rectangle:f,startPoint:null,hasCoordinates:!1}},onMouseMove(f,b){if(!f.startPoint)return;const[_,A]=f.startPoint,T=b.lngLat.lng,Y=b.lngLat.lat;f.rectangle.setCoordinates([[[_,A],[T,A],[T,Y],[_,Y],[_,A]]])},onClick(f,b){if(!f.startPoint){f.startPoint=[b.lngLat.lng,b.lngLat.lat],f.hasCoordinates=!0,f.rectangle.setCoordinates([[[b.lngLat.lng,b.lngLat.lat],[b.lngLat.lng,b.lngLat.lat],[b.lngLat.lng,b.lngLat.lat],[b.lngLat.lng,b.lngLat.lat],[b.lngLat.lng,b.lngLat.lat]]]);return}const[_,A]=f.startPoint,T=b.lngLat.lng,Y=b.lngLat.lat;return Math.abs(_-T)>0&&Math.abs(A-Y)>0?(f.rectangle.setCoordinates([[[_,A],[T,A],[T,Y],[_,Y],[_,A]]]),this.map.fire("draw.create",{features:[f.rectangle.toGeoJSON()]}),this.changeMode("simple_select",{featureIds:[f.rectangle.id]})):(this.deleteFeature([f.rectangle.id],{silent:!0}),f.hasCoordinates=!1,this.changeMode("simple_select"))},onStop(){},onTrash(f){this.deleteFeature([f.rectangle.id],{silent:!0}),this.changeMode("simple_select")},toDisplayFeatures(f,b,_){const A=b.properties.id===f.rectangle.id;A&&!f.hasCoordinates||(b.properties.active=A?"true":"false",_(b))}}}const et=[{id:"gl-draw-polygon-fill-inactive",type:"fill",filter:["all",["==","$type","Polygon"],["!=","active","true"]],paint:{"fill-color":"#3b82f6","fill-outline-color":"#3b82f6","fill-opacity":.1}},{id:"gl-draw-polygon-fill-active",type:"fill",filter:["all",["==","$type","Polygon"],["==","active","true"]],paint:{"fill-color":"#2563eb","fill-outline-color":"#2563eb","fill-opacity":.2}},{id:"gl-draw-polygon-stroke-inactive",type:"line",filter:["all",["==","$type","Polygon"],["!=","active","true"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#3b82f6","line-width":2}},{id:"gl-draw-polygon-stroke-active",type:"line",filter:["all",["==","$type","Polygon"],["==","active","true"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#2563eb","line-width":2}},{id:"gl-draw-lines-inactive",type:"line",filter:["all",["==","$type","LineString"],["!=","active","true"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#3b82f6","line-width":2}},{id:"gl-draw-lines-active",type:"line",filter:["all",["==","$type","LineString"],["==","active","true"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#2563eb","line-width":2}},{id:"gl-draw-point-inactive",type:"circle",filter:["all",["==","$type","Point"],["!=","meta","midpoint"],["!=","active","true"]],paint:{"circle-radius":5,"circle-color":"#3b82f6"}},{id:"gl-draw-point-active",type:"circle",filter:["all",["==","$type","Point"],["!=","meta","midpoint"],["==","active","true"]],paint:{"circle-radius":6,"circle-color":"#2563eb"}},{id:"gl-draw-polygon-and-line-vertex-halo-active",type:"circle",filter:["all",["==","meta","vertex"],["==","$type","Point"]],paint:{"circle-radius":7,"circle-color":"#fff"}},{id:"gl-draw-polygon-and-line-vertex-active",type:"circle",filter:["all",["==","meta","vertex"],["==","$type","Point"]],paint:{"circle-radius":5,"circle-color":"#2563eb"}},{id:"gl-draw-polygon-midpoint",type:"circle",filter:["all",["==","meta","midpoint"],["==","$type","Point"]],paint:{"circle-radius":4,"circle-color":"#1d4ed8"}}];function We(){const f=Ie.value;return!f||!Ne[f]?.url?"":Ne[f].url}function vt(f,b){return f?.id?String(f.id):f?.url?`${f.url}-${b}`:`layer-${b}`}function He(f){const b=String(f?.url??"").trim();if(!b)return"";if(/^https?:\/\//i.test(b))return b;const _=window.location?.origin??"",A=b.replace(/^\/+/,"");return`${_}/${A}`}function qe(f){f&&Be.value?.layerId!==f||(Be.value=null)}function gt(f,b={}){return f.popup===!1?[]:Array.isArray(f.popup)?f.popup.length?f.popup.map(_=>{const A=_?.field||_?.name;if(!A)return null;const T=b[A];return T==null||T===""?null:{key:_.label||A,value:String(T)}}).filter(Boolean):[]:Object.entries(b).slice(0,5).map(([_,A])=>({key:_,value:A==null?"—":String(A)}))}function ct(f){if(!Array.isArray(f))return[];const b=A=>Array.isArray(A)&&A.length>=2&&Number.isFinite(Number(A[0]))&&Number.isFinite(Number(A[1])),_=A=>{if(!A.length)return A;const T=A[0],Y=A[A.length-1];return!Y||T[0]!==Y[0]||T[1]!==Y[1]?[...A,T]:A};if(f.length&&b(f[0])){const A=f.map(T=>[Number(T[0]),Number(T[1])]).filter(b);return A.length?[_(A)]:[]}return f.length&&Array.isArray(f[0])&&b(f[0][0])?f.map(T=>Array.isArray(T)?T.map(Y=>[Number(Y[0]),Number(Y[1])]):[]).filter(T=>T.length).map(_):f.length&&Array.isArray(f[0])&&Array.isArray(f[0][0])&&b(f[0][0][0])?f.flatMap(T=>Array.isArray(T)?T:[]).map(T=>Array.isArray(T)?T.map(Y=>[Number(Y[0]),Number(Y[1])]):[]).filter(T=>T.length).map(_):[]}function Ht(f){const b=f.style??{},_=b.color??"#3b82f6";if(!b.colorAttr||!b.colorSet)return _;const A=Object.keys(b.colorSet);if(!A.length)return _;const T=["match",["to-string",["get",b.colorAttr]]];return A.forEach(Y=>{T.push(String(Y),b.colorSet?.[Y]??_)}),T.push(_),T}function Ft(f){if(!I)return;f.handlers.forEach(_=>{try{I.off(_.type,_.layerId,_.handler)}catch{}}),f.handlers=[],[...f.layerIds,...f.boundsIds].forEach(_=>{I.getLayer(_)&&I.removeLayer(_)}),I.getSource(f.sourceId)&&I.removeSource(f.sourceId);const b=`vs-ov-bounds-src-${f.id}`;I.getSource(b)&&I.removeSource(b),qe(f.id)}function sn(f,b){if(!I)return[];const _=`vs-ov-bounds-src-${b}`,A=`vs-ov-bounds-line-${b}`,T=f.bounds??$.value??G.value,Y=ct(T);if(!Y.length)return[];const ae={type:"FeatureCollection",features:Y.map(ue=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:ue}}))};return I.getSource(_)&&I.removeSource(_),I.addSource(_,{type:"geojson",data:ae}),I.addLayer({id:A,type:"line",source:_,paint:{"line-color":f.style?.stroke??f.style?.color??"#2563eb","line-width":f.style?.width??2,"line-opacity":f.style?.opacity??.8,"line-dasharray":[2,2]}}),[A]}function yt(f){if(!I)return;Ft(f);const b=f.config,_=He(b);if(!_)return;const A=[],T=[];if(/\.v(?:m)?t(?:\?|$)/i.test(_)||/\.pbf(?:\?|$)/i.test(_)){const ue=b.sourceLayer||b.layer||b.service_layer||b.dataset?.layer||b.id;I.addSource(f.sourceId,{type:"vector",tiles:[_]});const De=String(b.style?.type??"polygon").toLowerCase(),nt=Ht(b),pt=b.style?.opacity??.5;if(De==="point"){const kt=`vs-ov-point-${f.id}`;I.addLayer({id:kt,type:"circle",source:f.sourceId,"source-layer":ue,paint:{"circle-color":nt,"circle-radius":5,"circle-opacity":pt}}),A.push(kt)}else if(De==="polyline"||De==="line"){const kt=`vs-ov-line-${f.id}`;I.addLayer({id:kt,type:"line",source:f.sourceId,"source-layer":ue,layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":nt,"line-width":b.style?.width??2,"line-opacity":pt}}),A.push(kt)}else{const kt=`vs-ov-fill-${f.id}`,pn=`vs-ov-border-${f.id}`;I.addLayer({id:kt,type:"fill",source:f.sourceId,"source-layer":ue,paint:{"fill-color":nt,"fill-opacity":pt}}),I.addLayer({id:pn,type:"line",source:f.sourceId,"source-layer":ue,paint:{"line-color":b.style?.stroke??b.style?.color??"#2563eb","line-width":b.style?.width??1,"line-opacity":pt}}),A.push(kt,pn)}}else{I.addSource(f.sourceId,{type:"raster",tiles:[_],tileSize:256});const ue=`vs-ov-raster-${f.id}`;I.addLayer({id:ue,type:"raster",source:f.sourceId,paint:{"raster-opacity":b.style?.opacity??1}}),A.push(ue)}A.forEach(ue=>{const De=pt=>{if(!pt?.features?.length){qe(f.id);return}const kt=pt.features[0]?.properties??{},pn=gt(f.config,kt);if(!pn.length){qe(f.id);return}Be.value={layerId:f.id,entries:pn,point:{x:pt.point.x,y:pt.point.y}}},nt=()=>qe(f.id);I.on("mousemove",ue,De),I.on("mouseleave",ue,nt),T.push({layerId:ue,type:"mousemove",handler:De},{layerId:ue,type:"mouseleave",handler:nt})}),f.layerIds=A,f.boundsIds=sn(f.config,f.id),f.handlers=T;const ae=f.visible?"visible":"none";[...f.layerIds,...f.boundsIds].forEach(ue=>{I.getLayer(ue)&&I.setLayoutProperty(ue,"visibility",ae)})}function Pt(){if(!I)return;const b={type:"FeatureCollection",features:ct($.value??G.value).map(_=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:_}}))};I.getSource(vn)?I.getSource(vn).setData(b):I.addSource(vn,{type:"geojson",data:b}),I.getLayer(En)||I.addLayer({id:En,type:"line",source:vn,paint:{"line-color":"#2563eb","line-width":2,"line-opacity":.8,"line-dasharray":[2,2]}})}function xo(f){if(!I||s.value)return;const b=Q[f];if(!b)return;b.visible=!b.visible;const _=b.visible?"visible":"none";[...b.layerIds,...b.boundsIds].forEach(A=>{I.getLayer(A)&&I.setLayoutProperty(A,"visibility",_)}),Et(),b.visible||qe(f)}function Et(){if(!I)return;const f=[],b=[],_=[],A=[];de.value.forEach(ae=>{const ue=Q[ae];if(!ue)return;const De=String(ue.config?.url??""),nt=/\.v(?:m)?t(?:\?|$)/i.test(De),pt=/\.png(?:\?|$)/i.test(De);nt?_.push(...ue.layerIds):pt?f.push(...ue.layerIds):b.push(...ue.layerIds),A.push(...ue.boundsIds)}),[...f,...b,..._,...A].forEach(ae=>{I.getLayer(ae)&&I.moveLayer(ae)}),I.getLayer(En)&&I.moveLayer(En),(I.getStyle?.()?.layers??[]).map(ae=>String(ae?.id??"")).filter(ae=>ae.startsWith("gl-draw-")).forEach(ae=>{I.getLayer(ae)&&I.moveLayer(ae)})}function wo(f){if(!Ne[f]||(Ie.value=f,!I))return;const b=We();if(!b)return;const _=I.getCenter?.(),A=I.getZoom?.(),T=W?.getAll?.();I.setStyle(U(b)),I.once("style.load",()=>{if(I&&(_&&Number.isFinite(A)&&I.jumpTo({center:[_.lng,_.lat],zoom:A}),Pt(),de.value.forEach(Y=>{const ae=Q[Y];ae&&yt(ae)}),Et(),T?.features?.length&&W))try{T.features.forEach(Y=>W.add(Y)),d.value=T.features.length}catch{d.value=0}})}function qt(f){return{type:"Feature",properties:{},geometry:f}}function lt(f){if(!f)return null;try{return JSON.parse(JSON.stringify(f))}catch{return null}}function cn(f){if(!f)return null;const b=lt(f.geometry);return b?{...f.id!==void 0?{id:f.id}:{},type:"Feature",properties:{...f.properties??{}},geometry:b}:null}function Dt(f){if(!f)return[];const b=(T,Y)=>{if(!T?.type)return[];const ae={...Y??{}};return T.type==="MultiPoint"&&Array.isArray(T.coordinates)?T.coordinates.map(ue=>qt({type:"Point",coordinates:ue})).map(ue=>({...ue,properties:ae})):T.type==="MultiLineString"&&Array.isArray(T.coordinates)?T.coordinates.map(ue=>qt({type:"LineString",coordinates:ue})).map(ue=>({...ue,properties:ae})):T.type==="MultiPolygon"&&Array.isArray(T.coordinates)?T.coordinates.map(ue=>qt({type:"Polygon",coordinates:ue})).map(ue=>({...ue,properties:ae})):T.type==="GeometryCollection"&&Array.isArray(T.geometries)?T.geometries.flatMap(ue=>b(ue,ae)):[{type:"Feature",properties:ae,geometry:lt(T)}]},_=T=>{if(!T)return null;if(T.type==="Feature"){const Y=cn(T);return Y?b(Y.geometry,Y.properties):null}return T.geom?.type&&Array.isArray(T.geom.coordinates)?b({type:T.geom.type,coordinates:T.geom.coordinates},T.properties??{}):T.type==="GeometryCollection"&&Array.isArray(T.geometries)?b(T,T.properties??{}):typeof T.type=="string"&&Array.isArray(T.coordinates)?b(lt(T),T.properties??{}):null};if(f.type==="FeatureCollection")return(f.features??[]).flatMap(_).filter(Boolean);if(Array.isArray(f))return f.flatMap(T=>T?.type==="FeatureCollection"?Dt(T):[_(T)]).flat().filter(Boolean);const A=_(f);return A?Array.isArray(A)?A:[A]:[]}function P(f){if(!f.length)return null;if(!a.value)return lt(f[0]?.geometry??null);const b=f.map(Y=>lt(Y?.geometry)).filter(Boolean);return b.every(Y=>Y?.type==="Point")?{type:"MultiPoint",coordinates:b.map(Y=>Y.coordinates)}:b.every(Y=>Y?.type==="LineString")?{type:"MultiLineString",coordinates:b.map(Y=>Y.coordinates)}:b.every(Y=>Y?.type==="Polygon")?{type:"MultiPolygon",coordinates:b.map(Y=>Y.coordinates)}:{type:"GeometryCollection",geometries:b}}function oe(f){if(!f)return"__null__";try{return JSON.stringify(f)}catch{return"__invalid__"}}function ce(f,b){if(!Array.isArray(f)||!Array.isArray(b)||f.length<2||b.length<2)return!1;const _=1e-12;return Math.abs(Number(f[0])-Number(b[0]))<_&&Math.abs(Number(f[1])-Number(b[1]))<_}function Ee(f,b){if(!Array.isArray(f)||f.length<4)return null;const A=ce(f[0],f[f.length-1])?f.slice(0,-1):f.slice();return!Number.isInteger(b)||b<0||b>=A.length||A.length<=3||(A.splice(b,1),A.length<3)?null:[...A,[...A[0]]]}function Me(f,b){if(!Array.isArray(f)||f.length<2||!Number.isInteger(b)||b<0||b>=f.length||f.length<=2)return null;const _=f.slice();return _.splice(b,1),_.length<2?null:_}function Ue(f,b){const _=lt(f);if(!_||!Array.isArray(b))return null;if(_.type==="LineString"){const[A]=b,T=Me(_.coordinates,A);return T?(_.coordinates=T,_):null}if(_.type==="MultiLineString"){const[A,T]=b,Y=_.coordinates?.[A],ae=Me(Y,T);return ae?(_.coordinates[A]=ae,_):null}if(_.type==="Polygon"){const[A,T]=b,Y=_.coordinates?.[A],ae=Ee(Y,T);return ae?(_.coordinates[A]=ae,_):null}if(_.type==="MultiPolygon"){const[A,T,Y]=b,ae=_.coordinates?.[A]?.[T],ue=Ee(ae,Y);return ue?(_.coordinates[A][T]=ue,_):null}return null}function Fe(f){return f?f.split(".").map(b=>Number(b)).filter(b=>Number.isInteger(b)&&b>=0):[]}function tt(f){return!W||!f?null:typeof W.get=="function"?W.get(f)??null:W.getAll?.()?.features?.find(_=>String(_?.id??"")===f)??null}function dt(f){const b=f?.properties?.id??f?.id;return b==null||b===""?null:String(b)}function ut(f){if(!I||!f)return null;const b=[[f.x-8,f.y-8],[f.x+8,f.y+8]],A=I.queryRenderedFeatures(b).find(T=>{const Y=String(T?.properties?.meta??"");return Y&&Y!=="feature"?!1:!!dt(T)});return dt(A)}function bt(f,b){if(!W||!f||!b.length)return;const _=tt(f);if(!_?.geometry)return;const A=Ue(_.geometry,b);if(!A)return;const T={..._,id:_.id??f,geometry:A};ge=!0,ie=!0;try{W.delete(f),W.add(T)}finally{ie=!1,ge=!1}Tt(),Bt()}function at(f){if(!I||!W||s.value||g.isRulerActive.value||u.value!=="edit")return;const b=f?.point;if(!b)return;const _=[[b.x-8,b.y-8],[b.x+8,b.y+8]],T=I.queryRenderedFeatures(_).find(ae=>ae?.properties?.meta==="vertex"&&ae?.properties?.parent&&ae?.properties?.coord_path);if(!T)return;f?.originalEvent?.preventDefault?.(),f?.originalEvent?.stopPropagation?.();const Y=Fe(String(T.properties.coord_path));Y.length&&bt(String(T.properties.parent),Y)}function dn(f){const b=Xr(f);if(!b)return null;const[[_,A],[T,Y]]=b;return{lat:(A+Y)/2,lng:(_+T)/2}}function Wr(f){if(!Array.isArray(f)||f.length<3)return 0;const b=(A,T)=>{const Y=A*2003750834e-2/180,ae=Math.log(Math.tan((90+T)*Math.PI/360))/(Math.PI/180);return[Y,ae*2003750834e-2/180]};let _=0;for(let A=0;A<f.length-1;A+=1){const[T,Y]=b(Number(f[A][0]),Number(f[A][1])),[ae,ue]=b(Number(f[A+1][0]),Number(f[A+1][1]));_+=T*ue-ae*Y}return Math.abs(_/2)/1e6}function g0(f){if(!f?.type||!f?.coordinates)return null;if(f.type==="Polygon"){const b=f.coordinates?.[0];return Array.isArray(b)?Wr(b):null}return f.type==="MultiPolygon"?f.coordinates.reduce((b,_)=>{const A=_?.[0];return Array.isArray(A)?b+Wr(A):b},0):null}function _o(f){if(!f){p.value=null;return}const b=dn(f);if(!b){p.value=null;return}p.value={type:String(f.type??"Feature"),center:b,areaKm2:g0(f)}}function Co(f){if(!f){const A=_e[_e.length-1],T=lt(A?.geometry??null);O=T,_o(T);return}const b=_e.find(A=>String(A?.id??"")===String(f))??null,_=lt(b?.geometry??null);O=_,_o(_)}function vo(f){h.value=(f??[]).map((b,_)=>{const A=String(b?.id??`feature-${_+1}`),T=Gr(String(b?.geometry?.type??"Feature"));return{id:A,label:`${T} ${_+1}`}})}function Gr(f){switch(String(f)){case"Point":return"Точка";case"MultiPoint":return"Мультиточка";case"LineString":return"Лінія";case"MultiLineString":return"Мультилінія";case"Polygon":return"Полігон";case"MultiPolygon":return"Мультиполігон";case"GeometryCollection":return"Колекція геометрій";default:return String(f||"Невідомо")}}function Yr(f,b){if(!Array.isArray(f)||!Array.isArray(b)||f.length!==2||b.length!==2)return!1;const _=1e-9;return Math.abs(Number(f[0])-Number(b[0]))<_&&Math.abs(Number(f[1])-Number(b[1]))<_}function Xr(f){if(!f)return null;let b=1/0,_=1/0,A=-1/0,T=-1/0;const Y=ae=>{if(Array.isArray(ae)){if(ae.length>=2&&Number.isFinite(ae[0])&&Number.isFinite(ae[1])){const ue=Number(ae[0]),De=Number(ae[1]);b=Math.min(b,ue),_=Math.min(_,De),A=Math.max(A,ue),T=Math.max(T,De);return}ae.forEach(Y)}};return Y(f.coordinates),!Number.isFinite(b)||!Number.isFinite(_)?null:[[b,_],[A,T]]}function Zr(f){if(!I||!f)return;const b=Xr(f);if(!b)return;const[[_,A],[T,Y]]=b;if(_===T&&A===Y){I.easeTo({center:[_,A],zoom:Math.max(B.value,14)});return}I.fitBounds(b,{padding:30,duration:250,maxZoom:18})}function Eo(){if(!W){d.value=0;return}const f=W.getAll();d.value=f?.features?.length??0}function un(){if(!W)return null;const b=W.getAll?.()?.features??[],_=Y=>!!Y&&b.some(ae=>String(ae?.id??"")===String(Y??"")),A=W.getSelectedIds?.();if(Array.isArray(A)&&A.length>0){const Y=A[0];return Y!=null?String(Y):null}if(_(q))return String(q);if(!b.length)return null;const T=a.value?b[b.length-1]:b[0];return T?.id!==void 0&&T?.id!==null?String(T.id):null}function Tt(){if(!W)return;const f=W.getAll();if(d.value=f?.features?.length??0,!f?.features?.length){_e=[],h.value=[],O=null,q=null,p.value=null,ie||(j="__null__",r("update:modelValue",null));return}const b=(f.features??[]).map(cn).filter(Boolean);if(_e=b,vo(b),q=un(),Co(q),!ie){const _=P(b);j=oe(_),r("update:modelValue",_)}}function jn(){if(!W)return;(W.getAll()?.features||[]).forEach(b=>W.delete(b.id)),h.value=[],Eo()}function Un(f){if(!W)return;const b=Dt(f),_=a.value?b:b.slice(0,1);ie=!0,jn(),_.forEach(Y=>{try{W.add(Y)}catch{}}),ie=!1,_e=(W.getAll?.()?.features??_).map(cn).filter(Boolean),vo(_e),q=null;const T=lt(_e[_e.length-1]?.geometry??null);O=lt(T),Eo(),_o(T),T&&(Zr(T),s.value||Bt())}function y0(){W&&(ie=!0,jn(),_e.forEach(f=>{try{W.add(f)}catch{}}),ie=!1,vo(_e),Eo(),Co(q))}function Kt(){if(W){try{W.changeMode("simple_select",{featureIds:[]})}catch{}u.value=""}}function Hn(f){if(s.value||!W)return;g.isRulerActive.value&&g.closeRuler(),te=!0,Kt(),u.value=f;const b=f==="marker"?"draw_point":f==="polyline"?"draw_line_string":f==="rectangle"?"draw_rectangle":"draw_polygon";a.value||(ie=!0,jn(),ie=!1);try{W.changeMode(b)}catch{u.value=""}finally{requestAnimationFrame(()=>{te=!1})}}function Bt(f){if(s.value||!W||!W.getAll()?.features?.length)return;const _=f||un();if(_)try{W.changeMode("direct_select",{featureId:_}),q=_,Co(q),u.value="edit"}catch{u.value=""}}function b0(f){s.value||!W||!f||Bt(f)}function k0(){if(!(s.value||!W)){if(a.value){const f=un();if(f)try{M=!0,W.delete(f),M=!1,Tt();const b=un();b?Bt(b):Kt();return}catch{M=!1}}Kt(),jn(),_e=[],h.value=[],q=null,j="__null__",p.value=null,r("update:modelValue",null)}}function x0(){s.value||!O||Zr(O)}function w0(f){if(!I||!J)return;const b=[f[1],f[0]];se||(se=new J.Marker({color:"#2563eb"})),se.setLngLat(b).addTo(I),I.easeTo({center:b,zoom:13,duration:250})}function _0(){s.value||D.value?.click()}function C0(){s.value||(ee.value=!ee.value)}function Jr(f){if(!ee.value)return;const b=Z.value;b&&!b.contains(f.target)&&(ee.value=!1)}function v0(){ee.value=!1,_0()}function E0(){s.value||(we.value=[],ee.value=!1,le.value=!0)}function B0(){le.value=!1,we.value=[]}function V0(){if(s.value||!W)return;const f=kc(me.value.coordinates??"",me.value.format||"decimal",me.value.order||"lat-lon");if(!f.ok){we.value=f.errors,S0(f.errors);return}we.value=[],Un({type:"Polygon",coordinates:[f.ring]}),Tt(),le.value=!1,f.wasClosedAutomatically&&fe.notify({type:"info",title:"Імпорт координат",message:"Полігон був автоматично замкнений (перша і остання точки різнилися)."})}function S0(f){if(!f.length)return;const b=5;f.slice(0,b).forEach(_=>{const A=_.line>0?`Рядок ${_.line}`:"Загальна помилка";fe.notify({type:"warning",title:"Імпорт координат",message:`${A} — ${_.message}`})}),f.length>b&&fe.notify({type:"warning",title:"Імпорт координат",message:`Ще помилок: ${f.length-b}`})}function $0(f){if(s.value||!W)return;ee.value=!1;const b=f.target,_=b.files?.[0];if(!_)return;const A=new FileReader;A.onload=()=>{try{const T=JSON.parse(String(A.result));if(!Dt(T).length){fe.notify({type:"warning",title:"Імпорт файлу",message:"Файл не містить коректний GeoJSON-обʼєкт."});return}Un(T),Tt()}catch{fe.notify({type:"error",title:"Імпорт файлу",message:"Не вдалося прочитати файл. Перевірте формат GeoJSON/JSON."})}finally{b.value=""}},A.onerror=()=>{fe.notify({type:"error",title:"Імпорт файлу",message:"Помилка читання файлу."}),b.value=""},A.readAsText(_)}function N0(){if(s.value||!W)return;const f=W.getAll(),b=new Blob([JSON.stringify(f,null,2)],{type:"application/json"}),_=URL.createObjectURL(b),A=document.createElement("a");A.href=_,A.download="data.geojson",A.click(),URL.revokeObjectURL(_)}return e.onMounted(async()=>{if(window.addEventListener("click",Jr,!0),!c.value)return;const f=await Qe();J=f.maplibregl,re=f.MapboxDraw;const b=We();b&&(I=new J.Map({container:c.value,style:U(b),center:[R.value[0],R.value[1]],zoom:B.value,attributionControl:!1}),k.value=I,I.addControl(new J.NavigationControl({showCompass:!0}),"bottom-right"),I.on("load",()=>{if(!(!re||!I)){if(W=new re({displayControlsDefault:!1,modes:{...re.modes,draw_rectangle:ve()},controls:{point:!1,line_string:!1,polygon:!1,trash:!1},styles:et}),I.addControl(W),I.on("click",_=>{if(g.isRulerActive.value){const T=_?.lngLat;if(!T)return;m.value?.addPoint?.({lat:T.lat,lng:T.lng});return}if(!W||s.value||u.value!=="edit")return;const A=ut(_?.point);!A||A===q||requestAnimationFrame(()=>{!W||s.value||Bt(A)})}),I.on("draw.create",()=>{if(W&&!g.isRulerActive.value){if(!a.value){const _=W.getAll();if(_.features.length>1){const A=_.features[_.features.length-1];ie=!0,_.features.slice(0,-1).forEach(T=>W.delete(T.id)),ie=!1,A&&(ie=!0,W.add(A),ie=!1)}}Tt(),Bt()}}),I.on("draw.update",_=>{if(K||g.isRulerActive.value)return;const A=Array.isArray(_?.features)?_.features:[],T=_?.action==="move"&&A.length>0&&A.every(Y=>Y?.geometry?.type==="Point");if(_?.action==="move"){if(T){Tt();return}if(K=!0,y0(),K=!1,u.value==="edit"){const Y=un(),ae=Y?tt(Y):W?.getAll?.()?.features?.[0];if(ae?.id)try{W.changeMode("direct_select",{featureId:ae.id}),q=String(ae.id)}catch{u.value=""}}return}Tt()}),I.on("draw.delete",()=>{ge||M||g.isRulerActive.value||u.value==="marker"||u.value==="polyline"||u.value==="polygon"||u.value==="rectangle"||(Tt(),W?.getAll?.()?.features?.length||(q=null),u.value="",Kt())}),I.on("draw.selectionchange",_=>{if(!W||K||g.isRulerActive.value||u.value==="marker"||u.value==="polyline"||u.value==="polygon"||u.value==="rectangle")return;const A=_?.features?.[0]?.id!==void 0&&_?.features?.[0]?.id!==null?String(_.features[0].id):null;if(!s.value&&A){if(u.value==="edit"&&q===A)return;requestAnimationFrame(()=>{!W||s.value||Bt(A)});return}const T=W.getSelectedIds?.(),Y=Array.isArray(T)&&T.length>0?String(T[0]):null;if(!s.value&&Y){if(u.value==="edit"&&q===Y)return;requestAnimationFrame(()=>{!W||s.value||Bt(Y)});return}try{W.changeMode("simple_select",{featureIds:[]})}catch{}}),F.value!==void 0){const _=F.value;F.value=void 0,requestAnimationFrame(()=>{W&&Un(_)})}Pt(),de.value.forEach(_=>{const A=Q[_];A&&yt(A)}),Et()}}),I.on("contextmenu",at),I.on("zoomend",()=>{I&&(B.value=I.getZoom())}))}),e.onUnmounted(()=>{g.isRulerActive.value&&g.closeRuler(),window.removeEventListener("click",Jr,!0),Object.values(Q).forEach(f=>{I&&Ft(f)}),qe(),se?.remove&&se.remove(),se=null,I?.remove&&I.remove(),I=null,W=null,k.value=null}),e.watch(()=>n.modelValue,f=>{if(!W){F.value=f;return}const b=P((a.value?Dt(f):Dt(f).slice(0,1))||[]),_=oe(b);if(j&&_===j){j=null;return}j=null,Un(f)},{deep:!0}),e.watch(()=>v.value,f=>{const b=Array.isArray(f)?f:[],_=[],A=new Set;b.forEach((T,Y)=>{if(!T)return;const ae=vt(T,Y);_.push(ae),A.add(ae);const ue={...T,id:ae},De=Q[ae],nt=De?.visible??!!ue.visible;De&&I&&Ft(De),Q[ae]={id:ae,config:ue,visible:nt,sourceId:`vs-ov-src-${ae}`,layerIds:[],boundsIds:[],handlers:[]}}),Object.keys(Q).forEach(T=>{if(A.has(T))return;const Y=Q[T];Y&&I&&Ft(Y),delete Q[T]}),de.value=_,I&&(de.value.forEach(T=>{const Y=Q[T];Y&&yt(Y)}),Et())},{immediate:!0,deep:!0}),e.watch(()=>$.value,()=>{I&&(Pt(),de.value.forEach(f=>{const b=Q[f];b&&yt(b)}),Et())},{deep:!0}),e.watch(()=>N.value,async f=>{if(G.value=[],!f){I&&(Pt(),de.value.forEach(b=>{const _=Q[b];_&&yt(_)}),Et());return}try{const b=await fetch(`https://data.gki.com.ua/api-user/atu/${f}`);if(!b?.ok)return;const A=(await b.json())?.geometry?.coordinates;Array.isArray(A)&&A.length&&(G.value=A)}catch(b){console.error("Failed to fetch KATOTTG bounds",b)}finally{if(!I)return;Pt(),de.value.forEach(b=>{const _=Q[b];_&&yt(_)}),Et()}},{immediate:!0}),e.watch(()=>E.value,f=>{if(!Array.isArray(f)||f.length!==2)return;const b=[Number(f[0]),Number(f[1])];if(Yr(R.value,b)||(R.value=[...b],!I))return;const _=I.getCenter?.();_&&Yr([_.lng,_.lat],R.value)||I.easeTo({center:[R.value[0],R.value[1]]})},{deep:!0}),e.watch(()=>S.value,f=>{typeof f=="number"&&(B.value=f,I&&I.setZoom(f))}),e.watch(s,f=>{f&&Kt()}),e.watch(d,f=>{if(f>0){s.value||Bt();return}te||Kt()}),e.watch(i,()=>{setTimeout(()=>{I?.resize&&I.resize()},50)}),(f,b)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body",disabled:!i.value},[e.createElementVNode("div",{class:e.normalizeClass(["vs-map-wrapper relative w-full h-[400px]",{fullscreen:i.value}])},[e.createElementVNode("div",{ref_key:"mapContainer",ref:c,class:"w-full h-[calc(100%-28px)]"},null,512),Ce.value.search||Ce.value.import||Ce.value.export?(e.openBlock(),e.createElementBlock("div",Td,[Ce.value.search?(e.openBlock(),e.createBlock(Oc,{key:0,onGoToCoordinates:w0})):e.createCommentVNode("",!0),Ce.value.import||Ce.value.export?(e.openBlock(),e.createElementBlock("div",Ld,[e.createElementVNode("div",Id,[Ce.value.import?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"importMenuRef",ref:Z,class:"relative"},[e.createElementVNode("button",{type:"button",class:"inline-flex items-center gap-2 text-sm font-medium border rounded-md px-3 py-2 bg-white text-blue-600 border-stone-200 hover:bg-blue-500 hover:text-white transition",onClick:C0,disabled:s.value},[b[8]||(b[8]=e.createTextVNode(" Імпорт ",-1)),e.createVNode(e.unref(H.ChevronDown),{class:e.normalizeClass(["h-4 w-4 transition-transform",{"rotate-180":ee.value}])},null,8,["class"])],8,Rd),ee.value?(e.openBlock(),e.createElementBlock("div",Od,[Ce.value.import?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"block w-full text-left px-3 py-2 hover:bg-gray-100 text-gray-900",onClick:v0}," З файлу ")):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"block w-full text-left px-3 py-2 hover:bg-gray-100 text-gray-900",onClick:E0}," З координат ")])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),Ce.value.export?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"inline-flex items-center gap-2 text-sm font-medium border rounded-md px-3 py-2 bg-white text-blue-600 border-stone-200 hover:bg-blue-500 hover:text-white transition",onClick:N0,disabled:s.value||d.value===0}," Експорт ",8,Pd)):e.createCommentVNode("",!0)]),e.createElementVNode("input",{ref_key:"importRef",ref:D,type:"file",onChange:$0,accept:".json,.geojson",class:"hidden",disabled:s.value},null,40,zd)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createVNode(e.unref(fe.VsModal),{visible:le.value,"onUpdate:visible":b[1]||(b[1]=_=>le.value=_),title:"Імпорт координат полігону",size:"lg",teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(rt,{schema:ne,values:me.value,"onUpdate:values":b[0]||(b[0]=_=>me.value=_)},null,8,["values"]),e.createElementVNode("div",jd,[e.createElementVNode("button",{type:"button",class:"px-3 py-2 rounded-md border border-gray-300 text-gray-700 text-sm hover:bg-gray-100",onClick:B0}," Скасувати "),e.createElementVNode("button",{type:"button",class:"px-3 py-2 rounded-md bg-blue-600 text-white text-sm hover:bg-blue-700 disabled:opacity-50 disabled:cursor-not-allowed",onClick:V0,disabled:s.value}," Побудувати ",8,Ud)])]),_:1},8,["visible"]),e.createElementVNode("div",Hd,[e.createElementVNode("div",qd,[Ce.value.point?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(["vs-btn",{"vs-active":u.value==="marker"}]),title:"Point",onClick:b[2]||(b[2]=_=>Hn("marker")),disabled:s.value},[e.createVNode(e.unref(H.MapPin),{class:"h-4 w-4"})],10,Kd)):e.createCommentVNode("",!0),Ce.value.line?(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(["vs-btn",{"vs-active":u.value==="polyline"}]),title:"Line",onClick:b[3]||(b[3]=_=>Hn("polyline")),disabled:s.value},[e.createVNode(rc)],10,Wd)):e.createCommentVNode("",!0),Ce.value.polygon?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":u.value==="polygon"}]),title:"Polygon",onClick:b[4]||(b[4]=_=>Hn("polygon")),disabled:s.value},[e.createVNode(ic)],10,Gd)):e.createCommentVNode("",!0),Ce.value.rectangle?(e.openBlock(),e.createElementBlock("button",{key:3,class:e.normalizeClass(["vs-btn",{"vs-active":u.value==="rectangle"}]),title:"Rectangle",onClick:b[5]||(b[5]=_=>Hn("rectangle")),disabled:s.value},[e.createVNode(pc)],10,Yd)):e.createCommentVNode("",!0),Ce.value.ruler?(e.openBlock(),e.createElementBlock("button",{key:4,class:e.normalizeClass(["vs-btn mt-3",{"vs-active":e.unref(g).isRulerActive.value}]),title:"Ruler",onClick:y},[e.createVNode(e.unref(H.Ruler),{class:"h-4 w-4"})],2)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"vs-btn mt-5",onClick:b[6]||(b[6]=_=>i.value=!i.value),title:"Full Screen"},[e.createVNode(e.unref(H.Maximize),{class:"h-4 w-4"})])])]),Ce.value.ruler&&e.unref(g).isRulerActive.value?(e.openBlock(),e.createBlock(Md,{key:1,ref_key:"rulerPanelRefEl",ref:m,onClose:b[7]||(b[7]=_=>e.unref(g).closeRuler()),onTabChange:e.unref(g).onRulerTabChange,onPointsChange:e.unref(g).onRulerPointsChange,onShapeClosedChange:e.unref(g).onRulerShapeClosedChange},null,8,["onTabChange","onPointsChange","onShapeClosedChange"])):e.createCommentVNode("",!0),Ce.value.ruler&&e.unref(g).isRulerActive.value&&e.unref(g).hasRulerPoints.value?(e.openBlock(),e.createBlock(Fd,{key:2,map:k.value,points:e.unref(g).rulerPoints.value,"is-shape-closed":e.unref(g).rulerShapeClosed.value,"label-mode":e.unref(g).rulerActiveTab.value},null,8,["map","points","is-shape-closed","label-mode"])):e.createCommentVNode("",!0),$e.value.length?(e.openBlock(),e.createElementBlock("div",{key:3,class:"absolute z-[1500] pointer-events-none",style:e.normalizeStyle(Re.value)},[e.createElementVNode("div",Xd,[e.createElementVNode("dl",Zd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList($e.value,_=>(e.openBlock(),e.createElementBlock("div",{key:`${_.key}-${_.value}`,class:"flex justify-between gap-2"},[e.createElementVNode("dt",Jd,e.toDisplayString(_.key),1),e.createElementVNode("dd",Qd,e.toDisplayString(_.value),1)]))),128))])])],4)):e.createCommentVNode("",!0),e.createElementVNode("div",eu,[e.createElementVNode("div",tu,[e.createVNode(yc,{basemaps:e.unref(Ne),onOnLayerChange:wo},null,8,["basemaps"]),he.value.length?(e.openBlock(),e.createElementBlock("div",nu,[b[9]||(b[9]=e.createElementVNode("p",{class:"font-semibold text-[11px] uppercase tracking-wide text-gray-500 mb-2"},"Шари",-1)),e.createElementVNode("div",ou,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(he.value,_=>(e.openBlock(),e.createElementBlock("label",{key:_.id,class:"flex items-center gap-2 cursor-pointer select-none"},[e.createElementVNode("input",{type:"checkbox",class:"rounded border-gray-300 text-blue-600 focus:ring-blue-500",checked:_.visible,disabled:s.value,onChange:A=>xo(_.id)},null,40,ru),e.createElementVNode("span",lu,e.toDisplayString(_.config.title||_.config.name||_.id),1)]))),128))])])):e.createCommentVNode("",!0)])]),e.createElementVNode("div",au,[h.value.length||p.value?(e.openBlock(),e.createElementBlock("div",su,[e.createElementVNode("div",iu,[e.createElementVNode("div",cu,[b[10]||(b[10]=e.createTextVNode(" Тип: ",-1)),h.value.length<=1?(e.openBlock(),e.createElementBlock("span",du,e.toDisplayString(p.value?Gr(p.value.type):h.value[0]?.label||"—"),1)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(h.value,(_,A)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:_.id},[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["font-bold underline-offset-2",_.id===e.unref(q)?"text-blue-700 underline":"text-gray-700 hover:text-blue-700 hover:underline"]),onClick:T=>b0(_.id),disabled:s.value},e.toDisplayString(_.label),11,uu),A<h.value.length-1?(e.openBlock(),e.createElementBlock("span",pu,", ")):e.createCommentVNode("",!0)],64))),128))])]),e.createElementVNode("div",fu,[e.createElementVNode("div",mu,[b[11]||(b[11]=e.createTextVNode(" Центр: ",-1)),p.value?(e.openBlock(),e.createElementBlock("b",hu,e.toDisplayString(p.value.center.lng.toFixed(5))+", "+e.toDisplayString(p.value.center.lat.toFixed(5)),1)):(e.openBlock(),e.createElementBlock("b",gu,"—"))]),p.value&&p.value.areaKm2!==null?(e.openBlock(),e.createElementBlock("div",yu,[b[12]||(b[12]=e.createTextVNode(" Площа: ",-1)),e.createElementVNode("b",null,e.toDisplayString(p.value.areaKm2.toFixed(1))+" km²",1)])):(e.openBlock(),e.createElementBlock("div",bu,b[13]||(b[13]=[e.createTextVNode("Площа: ",-1),e.createElementVNode("b",null,"—",-1)]))),e.createElementVNode("button",{class:"tool bg-gray-100 py-1.5 px-2 rounded-lg text-md mr-1 cursor-pointer hover:bg-blue-500 hover:text-white transition-all",title:"Zoom to feature",onClick:x0,disabled:s.value},[e.createVNode(e.unref(H.ZoomIn),{class:"h-3 w-3"})],8,ku),e.createElementVNode("button",{class:"tool bg-gray-100 py-1.5 px-2 rounded-lg text-md cursor-pointer hover:bg-blue-500 hover:text-white transition-all",title:"Delete feature",onClick:k0,disabled:s.value},[e.createVNode(e.unref(H.Trash2),{class:"h-4 w-4"})],8,xu)])])):e.createCommentVNode("",!0)])],2)],8,["disabled"]))}}),[["__scopeId","data-v-33669cd5"]]),wu=["data-focus"],_u={class:"flex items-center"},Cu={class:"overflow-hidden text-ellipsis whitespace-nowrap rounded-sm text-[#333] text-[85%] px-0.5 py-[3px] pl-1.5 box-border"},vu=["onClick","aria-label"],Eu={key:0,class:"absolute text-gray-500 truncate pl-2"},Bu={class:"flex-1 min-w-[2px]"},Vu=["placeholder"],Su={class:"flex items-center shrink-0"},$u=["disabled"],Yo=e.defineComponent({__name:"vs-input-tag",props:e.mergeModels({unique:{type:Boolean,default:!0},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:"Введіть тег"},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=t;Oe(n.style);const l=e.ref(null),a=e.ref(null),s=e.ref(null),i=e.ref(!1),c=e.ref(""),d=e.useModel(o,"modelValue"),u=e.computed(()=>n.placeholder||"Add tag…"),p=e.computed(()=>d.value?.length===0&&c.value===""),h=e.computed(()=>!n.disabled&&d.value?.length>0),k=e.computed(()=>n.disabled),m=async()=>{k.value||await e.nextTick(()=>s.value?.focus())},g=X=>{const L=X.trim();L!==""&&(!d.value||!Array.isArray(d.value)?d.value=[L]:n.unique?d.value.includes(L)||(d.value=[...d.value,L]):d.value=[...d.value,L],c.value="")},y=()=>{const X=c.value;X.trim()!==""&&g(X),c.value=""},C=X=>{const L=d.value.slice();L.splice(X,1),r("update:modelValue",L)},x=()=>{r("update:modelValue",[])},w=()=>{k.value||(i.value=!0)},V=()=>{i.value=!1,!k.value&&y()},z=X=>{const{key:L}=X;L==="Enter"?(X.preventDefault(),y()):L==="Backspace"&&c.value===""&&d.value.length>0&&C(d.value.length-1)};return(X,L)=>(e.openBlock(),e.createElementBlock("div",{class:"flex gap-1 w-full",ref_key:"root",ref:l,onClick:L[1]||(L[1]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass]),role:"group","aria-label":"Tag input"},[e.createElementVNode("div",{class:e.normalizeClass(["flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white","border-gray-300 hover:border-gray-400",i.value?"border-blue-500 ring-1 ring-blue-500":"",k.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),"data-focus":i.value?"true":"false",onClick:m},[e.createElementVNode("div",{class:"flex flex-1 flex-wrap items-center gap-1 py-0.5 pl-2 pr-0 overflow-hidden",ref_key:"chipsRef",ref:a},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(E,S)=>(e.openBlock(),e.createElementBlock("div",{key:S,class:"flex min-w-0 bg-[#e6e6e6] rounded-sm m-0.5 box-border"},[e.createElementVNode("div",_u,[e.createElementVNode("div",Cu,e.toDisplayString(E),1)]),e.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border hover:bg-[#ffbdad] hover:text-[#de350b]",onClick:e.withModifiers(N=>C(S),["stop"]),"aria-label":`Remove ${E}`},[e.createVNode(e.unref(H.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,vu)]))),128)),p.value?(e.openBlock(),e.createElementBlock("div",Eu,e.toDisplayString(u.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Bu,[k.value?e.createCommentVNode("",!0):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"inputRef",ref:s,class:"pl-2 w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-label":"Add tag","onUpdate:modelValue":L[0]||(L[0]=E=>c.value=E),onFocus:w,onBlur:V,onKeydown:z,placeholder:d.value&&d.value.length?"":void 0},null,40,Vu)),[[e.vModelText,c.value]])])],512),e.createElementVNode("div",Su,[h.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-label":"Clear all tags",disabled:k.value,onClick:e.withModifiers(x,["stop"])},[e.createVNode(e.unref(H.X),{class:"h-4 w-4"})],8,$u)):e.createCommentVNode("",!0)])],10,wu)],2)],512))}}),Nu={class:"relative flex gap-1 bg-white w-full"},Au=["disabled","placeholder"],Xo=ke(e.defineComponent({__name:"vs-input-slug",props:e.mergeModels({disabled:{type:Boolean},placeholder:{},parent:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=e.inject("values"),n=o,r=e.useModel(o,"modelValue");function l(s){const i={а:"a",б:"b",в:"v",г:"g",д:"d",е:"e",ё:"e",ж:"zh",з:"z",и:"i",й:"y",к:"k",л:"l",м:"m",н:"n",о:"o",п:"p",р:"r",с:"s",т:"t",у:"u",ф:"f",х:"kh",ц:"ts",ч:"ch",ш:"sh",щ:"shch",ы:"y",э:"e",ю:"yu",я:"ya",ь:"",ъ:"",є:"ye",і:"i",ї:"yi",ґ:"g"};return s.toLowerCase().split("").map(c=>i[c]||c).join("").replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}const a=()=>{const s=t?.value?.[n.parent||""]?.toString(),i=l(s);r.value=i.toString()};return(s,i)=>(e.openBlock(),e.createElementBlock("div",Nu,[e.withDirectives(e.createElementVNode("input",{ref:"vsText",disabled:s.disabled,placeholder:s.placeholder,"onUpdate:modelValue":i[0]||(i[0]=c=>r.value=c),class:"block w-full px-3 py-2 text-sm border border-solid rounded-lg placeholder:text-nowrap border-stone-200 text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,8,Au),[[e.vModelText,r.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200",onClick:a}," Gen ")]))}}),[["__scopeId","data-v-b0eba370"]]),Mu={class:"relative flex gap-1 bg-white w-full"},Fu=["disabled","placeholder"],Du=["disabled"],Tu={key:0},Lu={key:1},Zo=ke(e.defineComponent({__name:"vs-input-codegen",props:e.mergeModels({table:{},code:{},init:{type:Boolean},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref(!1),l=e.computed(()=>t.init!==!1),a=e.computed(()=>!!t.table&&!!t.code),s=()=>{if(!a.value)return"";const d=encodeURIComponent(String(t.table)),u=encodeURIComponent(String(t.code));return`/api/code-gen/${d}/${u}`},i=async()=>{if(!a.value||r.value)return;const d=s();if(d){r.value=!0;try{const p=await(await fetch(d)).text();n.value=p}finally{r.value=!1}}},c=()=>{l.value&&(n.value||i())};return e.onMounted(()=>{c()}),e.watch(()=>[t.table,t.code,t.init],()=>{c()}),(d,u)=>(e.openBlock(),e.createElementBlock("div",Mu,[e.withDirectives(e.createElementVNode("input",{disabled:d.disabled,placeholder:d.placeholder,"onUpdate:modelValue":u[0]||(u[0]=p=>n.value=p),class:"block w-full px-3 py-2 text-sm border border-solid rounded-lg placeholder:text-nowrap border-stone-200 text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,8,Fu),[[e.vModelText,n.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200 disabled:opacity-50 disabled:cursor-not-allowed",disabled:r.value||d.disabled||!a.value,onClick:i},[r.value?(e.openBlock(),e.createElementBlock("span",Lu,"...")):(e.openBlock(),e.createElementBlock("span",Tu,"Gen"))],8,Du)]))}}),[["__scopeId","data-v-6ee5237d"]]),Iu={class:"w-full"},Ru={ref:"sortableContainer",class:"flex flex-col gap-1"},Ou=["onDragstart","onDrop"],Pu={class:"cursor-move",type:"button"},zu={class:"w-1/3"},ju={class:"w-2/3"},Uu=["onClick"],Hu={key:0,class:"text-[14px] text-gray-700"},qu={class:"mt-2 w-full flex items-center"},Ku=["disabled"],Jo=ke(e.defineComponent({__name:"vs-input-key-value",props:{parent:{},ignore:{},addButtonText:{},modelValue:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=y=>`${y}-${Math.random().toString(36).substring(2,15)}`,r=e.inject("values"),l=o,a=t,s=l.addButtonText??"Додати",i=l.ignore??[],c=e.ref([]),d=e.ref(null);(()=>{const y=l.parent&&r?.value?.[l.parent]||l.modelValue||{};c.value=Object.entries(y).filter(([C])=>!i.includes(C)).map(([C,x])=>({id:n("key-value-"),key:C,value:x}))})();function p(y){d.value=y}function h(y){if(d.value===null||d.value===y)return;const C=c.value.splice(d.value,1)[0];c.value.splice(y,0,C),d.value=null}const k=e.computed(()=>c.value.some(y=>y.key&&!y.value||!y.key&&y.value)),m=()=>{c.value.push({id:n("key-value-"),key:"",value:""})},g=y=>{c.value=c.value.filter(C=>C.id!==y)};return e.watch(c,y=>{const C={};y.forEach(w=>{w.key&&w.value!==void 0&&(C[w.key]=w.value)});const x={};i.length&&i.forEach(w=>{x[w]=l.parent?r?.value?.[l.parent]?.[w]:void 0}),r?.value&&l.parent&&(r.value[l.parent]={...x,...C}),a("update:modelValue",C)},{deep:!0}),(y,C)=>(e.openBlock(),e.createElementBlock("div",Iu,[e.createElementVNode("div",Ru,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,(x,w)=>(e.openBlock(),e.createElementBlock("div",{key:x.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":d.value===w}]),draggable:"true",onDragstart:V=>p(w),onDragover:C[0]||(C[0]=e.withModifiers(()=>{},["prevent"])),onDrop:V=>h(w)},[e.createElementVNode("button",Pu,[e.createVNode(e.unref(H.GripVertical),{class:"h-4 w-4"})]),e.createElementVNode("div",zu,[e.createVNode(zt,{modelValue:x.key,"onUpdate:modelValue":V=>x.key=V,placeholder:"Ключ"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",ju,[e.createVNode(zt,{modelValue:x.value,"onUpdate:modelValue":V=>x.value=V,placeholder:"Значення"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("button",{onClick:V=>g(x.id),class:"shrink-0 w-[30px] text-gray-600 h-[30px] rounded-full flex items-center justify-center bg-gray-100 hover:bg-gray-200"},[e.createVNode(e.unref(H.X),{class:"h-4 w-4"})],8,Uu)],42,Ou))),128))],512),c.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Hu," Дані для відображення відсутні ")),e.createElementVNode("div",qu,[e.createElementVNode("button",{type:"button",onClick:m,disabled:k.value,class:"py-1.5 px-2 flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"},[e.createVNode(e.unref(H.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(e.unref(s)),1)],8,Ku)])]))}}),[["__scopeId","data-v-d8c3f9d6"]]),Wu={class:"w-full"},Gu={ref:"sortableContainer",class:"flex flex-col gap-1"},Yu=["onDragstart","onDrop"],Xu=["disabled"],Zu={class:"flex-1"},Ju=["onClick","disabled"],Qu={key:0,class:"text-[14px] text-gray-700"},ep={class:"mt-2 w-full flex items-center"},tp=["disabled"],Qo=ke(e.defineComponent({__name:"vs-input-text-array",props:e.mergeModels({addButtonText:{default:"Додати"},inputType:{default:"text"},placeholder:{default:"Значення"},mask:{default:""},disabled:{type:Boolean,default:!1}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref([]),l=e.ref(null),a=e.computed(()=>!!t.disabled),s=e.computed(()=>t.placeholder??""),i=e.computed(()=>t.addButtonText??"Додати");let c=!1;const d=y=>`${y}-${Math.random().toString(36).substring(2,15)}`,u=y=>{const C=y??n.value??[];r.value=C.map((x,w)=>({id:r.value[w]?.id??d("text-array"),value:x??""}))};u(),e.watch(()=>n.value,y=>{if(c){c=!1;return}u(y||[])},{deep:!0}),e.watch(r,y=>{c=!0,n.value=y.map(C=>C.value).filter(C=>C!=null&&C!=="")},{deep:!0});const p=e.computed(()=>a.value||r.value.some(y=>!y.value));function h(){p.value||(r.value=[...r.value,{id:d("text-array"),value:""}])}function k(y){a.value||(r.value=r.value.filter(C=>C.id!==y))}function m(y){a.value||(l.value=y)}function g(y){if(a.value||l.value===null||l.value===y)return;const C=[...r.value],[x]=C.splice(l.value,1);C.splice(y,0,x),r.value=C,l.value=null}return(y,C)=>(e.openBlock(),e.createElementBlock("div",Wu,[e.createElementVNode("div",Gu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(x,w)=>(e.openBlock(),e.createElementBlock("div",{key:x.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":l.value===w}]),draggable:"true",onDragstart:V=>m(w),onDragover:C[0]||(C[0]=e.withModifiers(()=>{},["prevent"])),onDrop:V=>g(w)},[e.createElementVNode("button",{class:"cursor-move",type:"button",disabled:a.value},[e.createVNode(e.unref(H.GripVertical),{class:"h-4 w-4"})],8,Xu),e.createElementVNode("div",Zu,[y.inputType==="text"?(e.openBlock(),e.createBlock(zt,{key:0,modelValue:x.value,"onUpdate:modelValue":V=>x.value=V,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),y.inputType==="tel"?(e.openBlock(),e.createBlock(Yn,{key:1,modelValue:x.value,"onUpdate:modelValue":V=>x.value=V,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),y.inputType==="email"?(e.openBlock(),e.createBlock(Gn,{key:2,modelValue:x.value,"onUpdate:modelValue":V=>x.value=V,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),y.inputType==="mask"?(e.openBlock(),e.createBlock(mn,{key:3,modelValue:x.value,"onUpdate:modelValue":V=>x.value=V,mask:y.mask,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","mask","disabled","placeholder"])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:V=>k(x.id),disabled:a.value,class:"shrink-0 w-[30px] text-gray-600 h-[30px] rounded-full flex items-center justify-center bg-gray-100 hover:bg-gray-200 disabled:opacity-50"},[e.createVNode(e.unref(H.X),{class:"h-4 w-4"})],8,Ju)],42,Yu))),128))],512),r.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Qu," Дані для відображення відсутні ")),e.createElementVNode("div",ep,[e.createElementVNode("button",{type:"button",onClick:h,disabled:p.value,class:"py-1.5 px-2 flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"},[e.createVNode(e.unref(H.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(i.value),1)],8,tp)])]))}}),[["__scopeId","data-v-2c229b1f"]]),np={class:"flex items-center gap-2 w-full"},op=["disabled"],rp=["disabled"],er=e.defineComponent({__name:"vs-input-color",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,{inputClass:r}=Oe(n.style),l=t,a=e.computed({get:()=>n.modelValue||"#000000",set:i=>l("update:modelValue",i)}),s=e.computed(()=>!!n.disabled);return(i,c)=>(e.openBlock(),e.createElementBlock("div",np,[e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":c[0]||(c[0]=d=>a.value=d),disabled:s.value,ref:"color",class:e.normalizeClass(["py-1.5 px-1 block w-full bg-white cursor-pointer max-w-[50px]",[i.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,op),[[e.vModelText,a.value]]),e.withDirectives(e.createElementVNode("input",{class:"text-sm text-gray-600 border border-solid border-stone-200 rounded-md p-2","onUpdate:modelValue":c[1]||(c[1]=d=>a.value=d),disabled:s.value},null,8,rp),[[e.vModelText,a.value]])]))}}),lp={class:"flex items-center gap-2 w-full"},ap=["min","max","step","disabled"],sp=["value","min","max","step","disabled"],tr=e.defineComponent({__name:"vs-input-range",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{},min:{default:0},max:{default:100},step:{default:1}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,{inputClass:r}=Oe(n.style),l=t,a=u=>{const p=Number(u),h=Number(n.min),k=Number(n.max);return Number.isNaN(p)?h:Math.min(k,Math.max(h,p))},s=e.computed({get:()=>a(n.modelValue??n.min),set:u=>l("update:modelValue",a(u))}),i=u=>{const p=u.target,h=a(p.value);p.value=String(h),l("update:modelValue",h)},c=u=>{Number(n.min)>=0&&u.key==="-"&&u.preventDefault()},d=e.computed(()=>!!n.disabled);return(u,p)=>(e.openBlock(),e.createElementBlock("div",lp,[e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":p[0]||(p[0]=h=>s.value=h),min:u.min,max:u.max,step:u.step,disabled:d.value,ref:"range",class:e.normalizeClass(["w-full cursor-pointer accent-blue-500",[u.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")])},null,10,ap),[[e.vModelText,s.value]]),e.createElementVNode("input",{class:"text-sm text-gray-600 border border-solid border-stone-200 rounded-md p-2 max-w-[100px]",type:"number",value:s.value,min:u.min,max:u.max,step:u.step,onInput:i,onKeydown:c,disabled:d.value},null,40,sp)]))}}),ip=["placeholder","disabled","name"],cp=["type","value","onInput","placeholder","disabled"],dp=["onClick"],nr=e.defineComponent({__name:"vs-input-array",props:e.mergeModels({count:{default:1},limit:{default:1},mask:{default:""},unmask:{type:Boolean,default:!1},inputType:{default:"text"},isAdded:{type:Boolean,default:!1},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.ref(t.count),r=e.computed(()=>t.limit),{inputClass:l}=Oe(t.style),a=e.useModel(o,"modelValue"),s=e.computed(()=>!!t.disabled),i=e.computed(()=>t.placeholder??"");e.watchEffect(()=>{const g=a.value?.length??0;g<n.value&&(a.value=[...a.value??[],...Array(n.value-g)])});const c=e.ref({}),d=e.ref({});function u(g,y){g&&(c.value[y]=g)}async function p(g,y){if(!g||t.inputType!=="mask")return;const{default:C}=await Promise.resolve().then(()=>Pn);d.value[y]&&d.value[y].destroy(),d.value[y]=C(g,{mask:t.mask||"",definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},lazy:!1}),d.value[y].on("accept",()=>{const x=[...a.value||[]];x[y]=t.unmask?d.value[y].unmaskedValue:d.value[y].value,a.value=x}),d.value[y].on("complete",()=>{const x=[...a.value||[]];x[y]=t.unmask?d.value[y].unmaskedValue:d.value[y].value,a.value=x}),a.value?.[y]&&(d.value[y].value=a.value[y])}function h(g,y){if(s.value)return;const C=g.target.value??null,x=[...a.value];x[y]=t.inputType==="text"?C:Number(C),a.value=x}function k(){n.value+=1;const g=t.inputType==="text"||t.inputType==="mask"?null:0;a.value=[...a.value,g],t.inputType==="mask"&&setTimeout(()=>{const y=n.value-1;c.value[y]&&p(c.value[y],y)},0)}function m(g){if(n.value>1){d.value[g]&&(d.value[g].destroy(),delete d.value[g]),n.value-=1,a.value=a.value.filter((C,x)=>x!==g);const y={};Object.keys(d.value).forEach(C=>{const x=parseInt(C,10);x>g?y[x-1]=d.value[x]:x<g&&(y[x]=d.value[x])}),d.value=y}}return e.onMounted(()=>{if(t.inputType==="mask")for(let g=0;g<n.value;g+=1)c.value[g]&&p(c.value[g],g)}),e.onBeforeUnmount(()=>{Object.values(d.value).forEach(g=>{g&&g.destroy()})}),e.watch(()=>t.mask,g=>{t.inputType==="mask"&&Object.values(d.value).forEach(y=>{y&&y.updateOptions({mask:g,definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/}})})}),e.watch(a,g=>{t.inputType==="mask"&&g&&g.forEach((y,C)=>{d.value[C]&&d.value[C].value!==y&&(d.value[C].value=y||"")})},{deep:!0}),(g,y)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["grid gap-2",`grid-cols-${r.value}`])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,C=>(e.openBlock(),e.createElementBlock("div",{key:C,class:"flex items-center gap-2 w-full"},[g.inputType==="mask"?(e.openBlock(),e.createElementBlock("input",{key:0,type:"text",ref_for:!0,ref:x=>u(x,C-1),placeholder:g.placeholder,disabled:g.disabled,name:`${g.name}[${C-1}]`,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(l),{"!border-red-600":g.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,ip)):(e.openBlock(),e.createElementBlock("input",{key:1,type:g.inputType,value:a.value?.[C-1],onInput:x=>h(x,C-1),placeholder:i.value,disabled:s.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(l),{"!border-red-600":g.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,cp)),!g.disabled&&C===n.value&&g.isAdded?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:e.withModifiers(k,["stop"]),class:"cursor-pointer shrink-0 w-[38px] text-green-600 h-[38px] rounded-md flex items-center justify-center border border-stone-200 hover:bg-stone-100"},[e.createVNode(e.unref(H.Plus),{class:"h-4 w-4"})])):e.createCommentVNode("",!0),!g.disabled&&n.value>1&&g.isAdded?(e.openBlock(),e.createElementBlock("button",{key:3,type:"button",onClick:e.withModifiers(x=>m(C-1),["stop"]),class:"cursor-pointer shrink-0 w-[38px] text-red-600 h-[38px] rounded-md flex items-center justify-center border border-stone-200 hover:bg-stone-100"},[e.createVNode(e.unref(H.X),{class:"h-4 w-4"})],8,dp)):e.createCommentVNode("",!0)]))),128))],2))}}),up={class:"flex gap-1 w-full"},pp=["aria-expanded","data-focus"],fp=["placeholder","disabled","readonly"],mp={class:"max-h-full"},hp=["onClick","disabled"],gp={key:0,class:"px-3 py-2 text-sm text-stone-500"},yp=["disabled"],bp={class:"flex flex-col gap-1"},kp=["onDragstart","onDrop"],xp=["disabled"],wp=["title"],_p=["disabled","onClick","aria-label"],Cp={key:0,class:"text-xs text-stone-500"},Bn=ke(e.defineComponent({__name:"vs-input-array-select",props:e.mergeModels({options:{default:()=>[]},data:{default:""},api:{default:""},prefix:{default:"api"},host:{default:""},parent:{},search:{type:Boolean,default:!0},maxHeight:{default:280},start:{default:0},slot:{},disabled:{type:Boolean,default:!1},add:{},style:{},customClass:{},modelValue:{},error:{},name:{},placeholder:{default:"Оберіть значення"},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:e.mergeModels(["change","update:modelValue","value-selected"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=t,l=e.useModel(o,"modelValue"),a=e.ref([]),s=e.ref(n.options??[]),i=e.ref({}),c=e.ref({}),d=e.ref({keyword:"",parent:null}),u=e.ref(""),p=e.ref(!1),h=e.ref(null),k=e.ref(null),m=e.ref(null),g=e.ref(null),y=e.ref(null),C=e.ref({});let x=!1,w=!1;const V=e.inject("values"),z=e.computed(()=>!!n.disabled),X=e.computed(()=>n.placeholder??"Оберіть значення"),L=e.computed(()=>n.search!==!1),E=e.computed(()=>{const M=n.parent??n.parentValue;return M?String(M):""}),S=e.computed(()=>E.value?V?.value?.[E.value]??null:null),N=M=>M==null?"__null__":String(M),v=M=>{if(!M)return"";const K=M.label??M.text??M.name??M.ua??M.en;return K?String(K):M.id!==void 0&&M.id!==null?String(M.id):""},$=M=>{const K=N(M);return c.value[K]||(c.value[K]=`array-select-${K}-${Math.random().toString(36).slice(2,8)}`),c.value[K]},R=e.computed(()=>new Set(a.value.map(M=>N(M.id)))),B=e.computed(()=>{const M=R.value;let K=[...s.value];if(!n.data&&u.value.trim()){const te=u.value.toLowerCase();K=K.filter(se=>v(se).toLowerCase().includes(te))}return K.filter(te=>!M.has(N(te.id)))}),F=()=>{if(!n.data)return"";const M=n.prefix??"api",K=n.api??`/${M}/suggest/${n.data}`;return`${n.host??""}${K}`},D=()=>{a.value.length&&(x=!0,a.value=a.value.map(M=>({...M,text:i.value[N(M.id)]??M.text})))},Z=M=>{const K=N(M.id),te=v(M);te&&(i.value[K]=te)},G=M=>{s.value=M?[...M]:[],M?.forEach(Z),D()},ee=M=>{if(!M.length)return;const K=new Map(s.value.map(te=>[N(te.id),te]));M.forEach(te=>{const se=N(te.id);K.set(se,te),Z(te)}),s.value=Array.from(K.values()),D()},le=async(M="")=>{if(!n.data)return[];const K=F();if(!K)return[];const te=new URLSearchParams;te.set("json","1"),M&&te.set("key",M),n.start===1&&te.set("start","1"),S.value!==null&&S.value!==void 0&&S.value!==""&&te.set("parent",String(S.value));try{return(await(await fetch(`${K}?${te.toString()}`)).json())?.data??[]}catch{return[]}},we=async M=>{if(!n.data||!M.length)return[];const K=F();if(!K)return[];const te=Array.from(new Set(M.map(ve=>N(ve)))),se=new URLSearchParams;se.set("json","1"),se.set("val",te.join(",")),n.start===1&&se.set("start","1"),S.value!==null&&S.value!==void 0&&S.value!==""&&se.set("parent",String(S.value));try{const We=(await(await fetch(`${K}?${se.toString()}`)).json())?.data??[];return ee(We),We}catch{return[]}},me=async M=>{if(M==null||M==="")return null;const K=N(M),te=s.value.find(ve=>N(ve.id)===K);if(te)return te;const[se]=await we([M]);return se??null},ne=async(M="",{force:K=!1}={})=>{if(!n.data)return;const te=S.value??null;if(!K&&d.value.keyword===M&&d.value.parent===te&&s.value.length>0)return;d.value={keyword:M,parent:te};const ve=await le(M);G(ve)},ge=((M,K=200)=>{let te;return(...se)=>{te&&clearTimeout(te),te=setTimeout(()=>M(...se),K)}})(async M=>{n.data&&await ne(M,{force:!0})},250),Q=e.ref(null),de=()=>{if(!m.value)return;const M=m.value.getBoundingClientRect(),K=window.innerHeight??document.documentElement.clientHeight,te=window.innerWidth??document.documentElement.clientWidth,se=8,ve=8,et=n.maxHeight??280,We=K-M.bottom-ve-se,vt=M.top-ve-se,He=We>=vt,qe=Math.max(te-se*2,0);let{width:gt}=M;qe>0&&gt>qe&&(gt=qe);let{left:ct}=M;ct+gt+se>te&&(ct=te-gt-se),ct=Math.max(ct,se);const Ht=Math.min(et,Math.max(He?We:vt,50));C.value={position:"fixed",left:`${ct}px`,width:`${gt}px`,maxHeight:`${Ht}px`,transform:He?"none":"translateY(-100%)",top:He?`${M.bottom+ve}px`:`${M.top-ve}px`}},he=async(M="click")=>{z.value||p.value||(Q.value=M,await ne(u.value.trim()),p.value=!0,await e.nextTick(),de(),y.value?.focus())},Be=()=>{p.value=!1,Q.value=null,e.nextTick(()=>{y.value?.blur()})},$e=async M=>{if(M.stopPropagation(),!z.value){if(p.value){if(Q.value==="focus"){Q.value=null;return}Be();return}await he("click")}},Re=M=>{M.key==="Escape"&&Be()},Ae=M=>{if(!p.value)return;const K=M.target;g.value?.contains(K)||Be()},Ce=M=>{const K=M.target;k.value?.contains(K)||g.value?.contains(K)||Be()},Ve=M=>{if(M.key==="Escape"){M.preventDefault(),Be();return}if(M.key==="Enter"){M.preventDefault();const K=B.value[0];K&&Se(K)}},Se=M=>{if(!M)return;const K=N(M.id);if(R.value.has(K))return;Z(M);const te={id:M.id,text:v(M)||String(M.id??""),key:$(M.id)};a.value=[...a.value,te],Ne(M),u.value="",e.nextTick(()=>{y.value?.focus()})},Ne=M=>{const K=a.value.map(te=>te.id);r("value-selected",{name:n.name,value:K,option:M})},Le=M=>{if(z.value)return;const K=a.value.filter(te=>N(te.id)!==N(M));a.value=K},{isOpenAdd:Ie,addData:Qe,addSchema:U,addForm:J,addTitle:re,addOption:I,onAddValue:W}=Io({props:n,fetchOptionByValue:me,optionsList:s,selectedOption:e.ref(null),modelValue:l,onCreated:async(M,K)=>{const te=M??await me(K),se=te?.id??K;R.value.has(N(se))||(te&&Z(te),a.value=[...a.value,{id:se,text:te?v(te):String(se),key:$(se)}],Ne(te??null))}}),_e=M=>{z.value||(h.value=M)},O=M=>{if(z.value||h.value===null||h.value===M)return;const K=[...a.value],[te]=K.splice(h.value,1);K.splice(M,0,te),h.value=null,a.value=K},j=async()=>{const K=(Array.isArray(l.value)?[...l.value]:[]).filter(se=>se!=null);if(n.data&&K.length){const se=K.filter(ve=>!i.value[N(ve)]);se.length&&await we(se)}const te=K.map(se=>({id:se,text:i.value[N(se)]??String(se),key:$(se)}));x=!0,a.value=te};e.watch(a,M=>{if(x){x=!1;return}const K=M.map(te=>te.id);w=!0,l.value=K,r("change",K)},{deep:!0}),e.watch(l,()=>{if(w){w=!1;return}j()},{deep:!0}),e.watch(u,M=>{!n.data||!p.value||ge(M.trim())}),e.watch(z,M=>{M&&Be()}),e.watch(()=>n.options,async M=>{n.data||(G(M??[]),await j())},{immediate:!0,deep:!0}),e.watch(()=>n.data,async M=>{M&&(await ne(u.value.trim()),await j())},{immediate:!0});const q=e.ref(!1);return e.watch(S,async()=>{if(n.data){if(!q.value){q.value=!0;return}a.value=[],await ne(u.value.trim()),await j()}}),e.onMounted(async()=>{document.addEventListener("click",Ce,!0),window.addEventListener("keydown",Re),window.addEventListener("scroll",Ae,!0),await j()}),e.onUnmounted(()=>{document.removeEventListener("click",Ce,!0),window.removeEventListener("keydown",Re),window.removeEventListener("scroll",Ae,!0)}),(M,K)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(fe.VsModal),{visible:e.unref(Ie),"onUpdate:visible":K[1]||(K[1]=te=>e.isRef(Ie)?Ie.value=te:null),class:"z-[1000]",title:e.unref(re),buttonText:"Додати",onDone:e.unref(I)},{default:e.withCtx(()=>[e.createVNode(rt,{schema:e.unref(U),modelValue:e.unref(Qe),"onUpdate:modelValue":K[0]||(K[0]=te=>e.isRef(Qe)?Qe.value=te:null),ref_key:"addForm",ref:J},null,8,["schema","modelValue"])]),_:1},8,["visible","title","onDone"]),e.createElementVNode("div",{class:"flex flex-col gap-2 w-full",ref_key:"rootRef",ref:k},[e.createElementVNode("div",up,[e.createElementVNode("div",{class:"relative flex-1",onClick:K[4]||(K[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{ref_key:"triggerRef",ref:m,class:e.normalizeClass(["flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white px-3","border-gray-300 hover:border-[#b3d4ff]",p.value?"border-[#2684ff] ring-1 ring-[#2684ff] shadow-[0_0_0_1px_rgba(38,132,255,0.5)]":"",z.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),role:"combobox","aria-expanded":p.value,"aria-haspopup":"listbox","data-focus":p.value?"true":"false",onClick:$e},[e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:y,"onUpdate:modelValue":K[2]||(K[2]=te=>u.value=te),placeholder:X.value,disabled:z.value,readonly:!L.value,onFocus:K[3]||(K[3]=()=>he("focus")),onKeydown:Ve,class:"flex-1 bg-transparent border-0 outline-none px-0 py-1 text-sm text-stone-900 placeholder:text-stone-400"},null,40,fp),[[e.vModelText,u.value]]),e.createElementVNode("span",{class:e.normalizeClass(["text-stone-400 transition-transform duration-150",p.value?"rotate-180":""]),"aria-hidden":"true"},[e.createVNode(e.unref(H.ChevronDown),{class:"h-4 w-4"})],2)],10,pp),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[p.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:g,class:"fixed z-[3000] rounded-md border border-stone-200 bg-white shadow-lg overflow-auto",style:e.normalizeStyle(C.value)},[e.createElementVNode("div",mp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B.value,te=>(e.openBlock(),e.createElementBlock("button",{key:N(te.id),type:"button",class:"w-full px-3 py-2 text-left text-sm text-stone-900 hover:bg-stone-100 disabled:opacity-50",onClick:e.withModifiers(se=>Se(te),["stop"]),disabled:z.value},e.toDisplayString(v(te)),9,hp))),128)),B.value.length===0?(e.openBlock(),e.createElementBlock("p",gp," Немає варіантів ")):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))]),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:K[5]||(K[5]=(...te)=>e.unref(W)&&e.unref(W)(...te)),class:"bg-white hover:bg-gray-100 text-sm text-gray-900 py-[10px] px-3 border border-stone-200 rounded-md h-[38px] flex items-center gap-2",disabled:z.value,type:"button"},[e.createVNode(e.unref(H.Plus),{class:"h-4 w-4"}),K[8]||(K[8]=e.createElementVNode("span",null,"Додати",-1))],8,yp)):e.createCommentVNode("",!0)]),e.createElementVNode("div",bp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(te,se)=>(e.openBlock(),e.createElementBlock("div",{key:te.key,class:e.normalizeClass(["flex items-center gap-2 rounded-md border border-stone-200 bg-white px-2 py-2",{"opacity-60":h.value===se}]),draggable:"true",onDragstart:ve=>_e(se),onDragover:K[6]||(K[6]=e.withModifiers(()=>{},["prevent"])),onDrop:ve=>O(se),onDragend:K[7]||(K[7]=ve=>h.value=null)},[e.createElementVNode("button",{type:"button",class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-stone-500 hover:text-stone-900",disabled:z.value,"aria-label":"Перетягнути"},[e.createVNode(e.unref(H.GripVertical),{class:"h-4 w-4"})],8,xp),e.createElementVNode("div",{class:"flex-1 text-sm text-stone-900",title:te.text},e.toDisplayString(te.text),9,wp),e.createElementVNode("button",{type:"button",class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-stone-400 hover:text-stone-900",disabled:z.value,onClick:e.withModifiers(ve=>Le(te.id),["stop"]),"aria-label":`Видалити ${te.text}`},[e.createVNode(e.unref(H.X),{class:"h-4 w-4"})],8,_p)],42,kp))),128)),a.value.length===0?(e.openBlock(),e.createElementBlock("p",Cp,"Немає вибраних значень")):e.createCommentVNode("",!0)])],512)],64))}}),[["__scopeId","data-v-da4b4da7"]]),vp={class:"flex items-center gap-2 w-full"},Ep={class:"relative flex-1"},Bp=["placeholder","disabled","onKeydown"],Vp=["disabled"],Sp={key:0,class:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/50"},$p={class:"bg-white text-gray-900 rounded-lg shadow-lg w-[480px] max-h-[80vh] overflow-y-auto"},Np={class:"p-3 border-b font-semibold text-gray-900 flex justify-between items-center"},Ap=["onClick"],Mp={key:0,class:"p-4 text-sm text-gray-500"},or=e.defineComponent({__name:"vs-input-address",props:e.mergeModels({api:{default:""},geom:{default:""},includes:{default:()=>[]},bbox:{},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","update:geom"],["update:modelValue"]),setup(o,{emit:t}){const n=/{{\s*([^}]+?)\s*}}/g,r=o,l=t,{inputClass:a}=Oe(r.style),s=e.useModel(o,"modelValue"),i=e.computed({get:()=>s.value,set:L=>{s.value=L}}),c=e.ref(!1),d=e.ref([]),u=e.ref(!1),p=e.ref(null);e.watch(u,L=>{typeof document>"u"||(L?(p.value=document.body.style.overflow,document.body.style.overflow="hidden"):p.value!=null?(document.body.style.overflow=p.value,p.value=null):document.body.style.removeProperty("overflow"))}),e.onBeforeUnmount(()=>{typeof document>"u"||(p.value!=null?document.body.style.overflow=p.value:document.body.style.removeProperty("overflow"))});const h=e.computed(()=>r.placeholder??""),k=e.computed(()=>!!r.disabled),m=L=>{if(!L)return null;if(Array.isArray(L))return L;if(typeof L=="string"){const E=L.split(",").map(S=>S.trim()).filter(Boolean);return E.length!==4?null:E.map(Number)}return null},g=e.computed(()=>{const L=m(r.bbox);if(!L||L.length!==4)return null;const E=L.map(Number);return E.some(S=>Number.isNaN(S))?null:E}),y=e.computed(()=>{const L=g.value;if(!L)return"";const[E,S,N,v]=L;return`${E},${Math.max(S,v)},${N},${Math.min(S,v)}`});e.computed(()=>y.value?"1":"0");const C=e.inject("values");function x(){!k.value&&i.value.trim()&&w()}async function w(){const L=(i.value||"").trim();if(!L)return;let E=L;if(r.includes?.length&&C?.value){const N=r.includes.map(v=>C.value?.[v]).filter(Boolean);N.length&&(E=`${N.join(", ")}, ${L}`)}const S=X(E);if(S){c.value=!0;try{const v=await(await fetch(S)).json();d.value=Array.isArray(v)?v:[],u.value=!0}catch(N){console.error("Address search error:",N)}finally{c.value=!1}}}function V(){u.value=!u.value}function z(L){if(!L)return;u.value=!1;const E=parseFloat(L.lat),N={type:"Point",coordinates:[parseFloat(L.lon),E]};r.geom&&C?.value&&(C.value[r.geom]=N),l("update:geom",N)}function X(L){if(!r.api)return"";const E={value:encodeURIComponent(L),bbox:g.value?g.value.join(","):""};return r.api.replace(n,(S,N)=>E[N.trim()]??"")}return(L,E)=>(e.openBlock(),e.createElementBlock("div",vp,[e.createElementVNode("div",Ep,[e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":E[0]||(E[0]=S=>i.value=S),placeholder:h.value,disabled:k.value,class:e.normalizeClass(["py-1.5 px-3 block w-full bg-white border rounded-md placeholder:text-gray-400 focus:ring-2 focus:ring-blue-500",[e.unref(a),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"},onKeydown:e.withKeys(e.withModifiers(x,["prevent"]),["enter"])},null,42,Bp),[[e.vModelText,i.value]]),d.value.length?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"absolute right-2 top-1/2 -translate-y-1/2 text-gray-500 hover:text-blue-600",onClick:V,title:"Show search results"},[e.createVNode(e.unref(H.Info),{class:"h-4 w-4"})])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:w,class:"flex items-center justify-center px-2 py-2 border rounded-md bg-white hover:bg-gray-50 text-gray-600 hover:text-blue-600 disabled:opacity-50 h-[38px]",disabled:c.value||!i.value?.trim()},[c.value?(e.openBlock(),e.createBlock(e.unref(H.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(e.openBlock(),e.createBlock(e.unref(H.Search),{key:0,class:"h-4 w-4"}))],8,Vp),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[u.value?(e.openBlock(),e.createElementBlock("div",Sp,[e.createElementVNode("div",$p,[e.createElementVNode("div",Np,[E[2]||(E[2]=e.createElementVNode("span",null,"Результати пошуку",-1)),e.createElementVNode("button",{class:"text-gray-500 hover:text-blue-600",onClick:E[1]||(E[1]=S=>u.value=!1),title:"Close"},[e.createVNode(e.unref(H.X),{class:"h-4 w-4"})])]),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(S,N)=>(e.openBlock(),e.createElementBlock("li",{key:N,onClick:v=>z(S),class:"px-3 py-2 cursor-pointer hover:bg-gray-100 border-b text-sm"},e.toDisplayString(S.display_name),9,Ap))),128))]),d.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Mp," Не знайдено результатів "))])])):e.createCommentVNode("",!0)]))]))}}),Fp={class:"vs-datalist space-y-3"},Dp={class:"space-y-3"},Tp=["onClick","disabled"],Lp={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},Ip=["disabled"],Rp=ke(e.defineComponent({__name:"vs-input-datalist",props:e.mergeModels({schema:{default:()=>[]},minItems:{default:0},maxItems:{default:void 0},addButtonText:{default:"Додати позицію"},emptyLabel:{default:"Немає рядків"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>Array.isArray(n.value)?n.value:[]),l=e.ref([]),a=e.computed(()=>t.schema?.map(g=>({...g,disabled:t.disabled||g.disabled}))??[]),s=e.computed(()=>a.value.map(g=>m(g))),i=e.computed(()=>t.disabled?!1:t.maxItems?r.value.length<t.maxItems:!0),c=e.computed(()=>t.disabled||r.value.length<=(t.minItems||0));e.watch(()=>r.value.length,()=>{d(),u()},{immediate:!0}),e.watch(()=>t.schema,u,{immediate:!0,deep:!0});function d(){const g=r.value.length;l.value.length<g?l.value=[...l.value,...Array.from({length:g-l.value.length},()=>eo())]:l.value.length>g&&l.value.splice(g)}function u(){if(!t.minItems||r.value.length>=t.minItems)return;const g=t.minItems-r.value.length,y=Array.from({length:g},p);n.value=[...r.value,...y]}function p(){const g={};return a.value.forEach(y=>{g[y.name]=y?.default??null}),g}function h(){i.value&&(n.value=[...r.value,p()],d())}function k(g){c.value||(n.value=r.value.filter((y,C)=>C!==g),d(),u())}function m(g){return{...g}}return(g,y)=>(e.openBlock(),e.createElementBlock("div",Fp,[e.createElementVNode("div",Dp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(C,x)=>(e.openBlock(),e.createElementBlock("div",{key:l.value[x],class:"flex items-center gap-3"},[e.createVNode(rt,{schema:s.value,layout:"inline",navigation:!1,values:r.value[x],"onUpdate:values":w=>r.value[x]=w,"form-id":l.value[x]},null,8,["schema","values","onUpdate:values","form-id"]),e.createElementVNode("button",{type:"button",class:"h-[38px] w-[38px] flex items-center justify-center text-gray-400 hover:text-gray-600 hover:bg-gray-50 rounded-lg transition-all disabled:opacity-40",onClick:w=>k(x),disabled:c.value},[e.createVNode(e.unref(H.Trash2),{class:"h-4 w-4"})],8,Tp)]))),128)),r.value.length===0?(e.openBlock(),e.createElementBlock("div",Lp,e.toDisplayString(t.emptyLabel),1)):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",class:"flex items-center gap-2 text-gray-600 hover:text-gray-900 font-medium transition-colors text-sm",onClick:h,disabled:!i.value},[e.createVNode(e.unref(H.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,Ip)]))}}),[["__scopeId","data-v-260e3e66"]]),Op={class:"vs-dataform space-y-4"},Pp=["draggable","onDragstart","onDragover","onDragenter","onDrop"],zp={class:"flex items-center gap-2"},jp=["onClick"],Up={class:"text-sm font-medium text-gray-700"},Hp={class:"flex items-center gap-2"},qp=["title","onClick","disabled"],Kp=["title","onClick","disabled"],Wp={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},Gp=["disabled"],Yp=ke(e.defineComponent({__name:"vs-input-dataform",props:e.mergeModels({schema:{default:()=>[]},minGroups:{default:0},maxGroups:{default:void 0},addButtonText:{default:"Додати групу фільтрів"},groupLabel:{default:void 0},duplicateTitle:{default:"Дублювати групу"},removeTitle:{default:"Видалити групу"},emptyLabel:{},view:{default:"default"},collapsible:{type:Boolean,default:!1},draggable:{type:Boolean,default:!0},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref([]),l=e.ref([]),a=e.ref(0),s=e.ref(null),i=e.ref(null),c=e.ref(null),d=e.computed(()=>t.groupLabel??"Group"),u=e.computed(()=>t.emptyLabel??"Ще немає груп"),p=e.computed(()=>t.schema?.map(ne=>({...ne,disabled:t.disabled||ne.disabled}))??[]),h=e.computed(()=>p.value.map(ne=>S(ne))),k=e.computed(()=>t.view==="accordion"),m=e.computed(()=>!!(t.collapsible||k.value)),g=e.computed(()=>t.draggable!==!1),y=e.computed(()=>t.disabled?!1:t.maxGroups?n.value.length<t.maxGroups:!0),C=e.computed(()=>t.disabled||n.value.length<=(t.minGroups||0));e.watch(()=>n.value.length,()=>{x(),w(),V()},{immediate:!0}),e.watch(()=>t.schema,V,{immediate:!0,deep:!0}),e.watch(()=>t.view,()=>{w()},{immediate:!0});function x(){const ne=n.value.length;r.value.length<ne?r.value=[...r.value,...Array.from({length:ne-r.value.length},()=>eo())]:r.value.length>ne&&r.value.splice(ne)}function w(){const ne=n.value.length;k.value?ne===0?a.value=-1:a.value>=ne?a.value=ne-1:a.value<0&&(a.value=0):l.value.length<ne?l.value=[...l.value,...Array.from({length:ne-l.value.length},()=>!1)]:l.value.length>ne&&l.value.splice(ne)}function V(){if(!t.minGroups||n.value.length>=t.minGroups)return;const ne=t.minGroups-n.value.length,ie=Array.from({length:ne},z);n.value=[...n.value,...ie],w()}function z(){const ne={};return p.value.forEach(ie=>{ne[ie.name]=ie?.default??null}),ne}function X(){y.value&&(n.value=[...n.value,z()],x(),w())}function L(ne){C.value||(n.value=n.value.filter((ie,ge)=>ge!==ne),x(),k.value?a.value>=n.value.length&&(a.value=n.value.length-1):l.value.splice(ne,1),V())}function E(ne){if(t.disabled)return;const ie=JSON.parse(JSON.stringify(n.value[ne]??{}));n.value=[...n.value.slice(0,ne+1),ie,...n.value.slice(ne+1)],x(),k.value?a.value>ne&&(a.value+=1):l.value.splice(ne+1,0,l.value[ne]??!1)}function S(ne){return{...ne}}function N(ne){return k.value?a.value===-1&&ne===0?!1:a.value!==ne:!!l.value[ne]}function v(ne){if(m.value){if(k.value){a.value=ne;return}l.value[ne]=!l.value[ne]}}function $(ne,ie){if(!g.value||t.disabled){ie.preventDefault();return}s.value=ne,i.value=ne,c.value={groups:JSON.parse(JSON.stringify(n.value)),keys:[...r.value],states:[...l.value]},ie.dataTransfer?.setData("text/plain",String(ne)),ie.dataTransfer?.setDragImage?.(ie.currentTarget,0,0)}function R(ne,ie){!g.value||t.disabled||s.value!==null&&ee(ne,ie)}function B(ne,ie){ee(ne,ie)}function F(ne){!g.value||t.disabled||me()}function D(){c.value&&G(),s.value=null,i.value=null,c.value=null}function Z(ne,ie){const ge=[...n.value],[Q]=ge.splice(ne,1);ge.splice(ie,0,Q),n.value=ge;const de=[...r.value],[he]=de.splice(ne,1);if(de.splice(ie,0,he),r.value=de,k.value)a.value===ne&&(a.value=ie);else{const Be=[...l.value],[$e]=Be.splice(ne,1);Be.splice(ie,0,$e),l.value=Be}}function G(){c.value&&(n.value=c.value.groups,r.value=c.value.keys,l.value=c.value.states,c.value=null,i.value=null)}function ee(ne,ie){if(s.value===null)return;const ge=le(ne,ie);i.value=ge,we(ge)}function le(ne,ie){if(!ie?.currentTarget)return ne;const ge=ie.currentTarget.getBoundingClientRect(),de=ie.clientY-ge.top>ge.height/2?ne+1:ne;return Math.max(0,Math.min(de,n.value.length))}function we(ne){const ie=s.value;if(ie===null)return;let ge=ne;if(ge>n.value.length&&(ge=n.value.length),ge===ie||ge===ie+1)return;const Q=ge>ie?ge-1:ge;Z(ie,Q),s.value=Q,i.value=ge>ie?Q+1:Q}function me(){c.value=null,s.value=null,i.value=null}return(ne,ie)=>(e.openBlock(),e.createElementBlock("div",Op,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(ge,Q)=>(e.openBlock(),e.createElementBlock("div",{key:r.value[Q],class:e.normalizeClass(["relative border border-gray-200 rounded-lg bg-white transition vs-dataform__group",[t.view==="accordion"?"overflow-hidden":N(Q)?"pt-6 px-6":"p-6"]]),draggable:g.value&&!t.disabled,onDragstart:de=>$(Q,de),onDragend:D,onDragover:e.withModifiers(de=>R(Q,de),["prevent"]),onDragenter:e.withModifiers(de=>B(Q,de),["prevent"]),onDrop:e.withModifiers(de=>F(),["prevent"])},[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center justify-between gap-2 border-b border-gray-100 px-4 py-3",[t.view!=="accordion"?"-mx-6 -mt-6 px-6":"",t.view!=="accordion"&&!N(Q)?"rounded-t-lg":"rounded-lg"]])},[e.createElementVNode("div",zp,[g.value?(e.openBlock(),e.createBlock(e.unref(H.GripVertical),{key:0,class:"h-4 w-4 text-gray-400","aria-hidden":"true"})):e.createCommentVNode("",!0),m.value?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"rounded-full p-1 text-gray-500 transition hover:bg-gray-100",onClick:de=>v(Q)},[e.createVNode(e.unref(H.ChevronDown),{class:e.normalizeClass(["h-4 w-4 transition",N(Q)?"-rotate-90":"rotate-0"])},null,8,["class"])],8,jp)):e.createCommentVNode("",!0),e.createElementVNode("div",Up,e.toDisplayString(`${d.value} (${Q+1})`),1)]),e.createElementVNode("div",Hp,[e.createElementVNode("button",{type:"button",class:"p-2 text-gray-400 hover:text-gray-600 hover:bg-gray-50 rounded-lg transition-all disabled:opacity-40",title:t.duplicateTitle,onClick:de=>E(Q),disabled:t.disabled,draggable:"false"},[e.createVNode(e.unref(H.Copy),{class:"h-4 w-4"})],8,qp),e.createElementVNode("button",{type:"button",class:"p-2 text-gray-400 hover:text-gray-600 hover:bg-gray-50 rounded-lg transition-all disabled:opacity-40",title:t.removeTitle,onClick:de=>L(Q),disabled:C.value,draggable:"false"},[e.createVNode(e.unref(H.Trash2),{class:"h-4 w-4"})],8,Kp)])],2),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(t.view==="accordion"?"p-6":"pt-6")},[e.createVNode(rt,{class:"vs-dataform__form",schema:h.value,layout:"inline",navigation:!1,values:n.value[Q],"onUpdate:values":de=>n.value[Q]=de,"form-id":r.value[Q],disabled:t.disabled},null,8,["schema","values","onUpdate:values","form-id","disabled"])],2),[[e.vShow,!N(Q)]])],42,Pp))),128)),n.value.length===0?(e.openBlock(),e.createElementBlock("div",Wp,e.toDisplayString(u.value),1)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"flex items-center gap-2 text-gray-600 hover:text-gray-900 font-medium transition-colors text-sm",onClick:X,disabled:!y.value},[e.createVNode(e.unref(H.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,Gp)]))}}),[["__scopeId","data-v-cfbcfed8"]]),Vn="__vs_form_monaco_loader__",Rt="__vs_form_monaco_script_loader__",Sn="__vs_form_monaco_editor_loader__",to=e.defineComponent({__name:"vs-input-monaco",props:e.mergeModels({syntax:{default:"xml"},theme:{default:"vs-light"},height:{default:280},minimap:{type:Boolean,default:!1},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:t}){const n=o,r=e.useModel(o,"modelValue"),l=e.ref(null),a=e.computed(()=>typeof n.height=="number"?`${n.height}px`:n.height||"280px");let s=null,i=null,c=!1;const d=()=>{if(i)return Promise.resolve(i);if(typeof window>"u")return Promise.resolve(null);const m=window;if(m.monaco?.editor?.create)return i=m.monaco,Promise.resolve(i);if(m[Vn])return m[Vn];const y=(async()=>{const C=V=>{if(Array.from(document.styleSheets||[]).some(L=>L?.href?.includes(V)))return;const X=document.createElement("link");X.rel="stylesheet",X.href=V,document.head.appendChild(X)},x=V=>{if(m[Rt]?.[V])return m[Rt][V];m[Rt]||={};const z=Array.from(document.scripts).find(X=>X.src===V);return z?(m[Rt][V]=new Promise((X,L)=>{const E=z.readyState;if(z.dataset.loaded==="true"||E==="loaded"||E==="complete"){X();return}z.addEventListener("load",()=>{z.dataset.loaded="true",X()},{once:!0}),z.addEventListener("error",S=>L(S),{once:!0})}),m[Rt][V]):(m[Rt][V]=new Promise((X,L)=>{const E=document.createElement("script");E.src=V,E.async=!0,E.onload=()=>{E.dataset.loaded="true",X()},E.onerror=S=>L(S),document.body.appendChild(E)}),m[Rt][V])},w="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs";return C(`${w}/editor/editor.main.min.css`),await x(`${w}/loader.min.js`),m[Sn]||(m[Sn]=new Promise((V,z)=>{window.require.config({paths:{vs:w}}),window.require(["vs/editor/editor.main"],()=>{i=window.monaco,m.monaco=i,V(i)},X=>z(X))}).catch(V=>{throw delete m[Sn],V})),m[Sn]})().catch(C=>{throw delete m[Vn],C});return m[Vn]=y,y},u=()=>{!l.value||!i||(s&&(s.dispose(),s=null),s=i.editor.create(l.value,{value:r.value||"",language:n.syntax,theme:n.theme,automaticLayout:!0,minimap:{enabled:!!n.minimap},readOnly:!!n.disabled}),s.onDidChangeModelContent(()=>{c||(r.value=s.getValue())}))},p=()=>{s?.focus()},h=()=>s,k=()=>i;return e.watch(()=>r.value,m=>{if(!s)return;const g=s.getValue();m!==g&&(c=!0,s.setValue(m||""),c=!1)}),e.watch(()=>n.syntax,m=>{!s||!i||i.editor.setModelLanguage(s.getModel(),m||"xml")}),e.watch(()=>n.theme,m=>{i&&i.editor.setTheme(m||"vs-light")}),e.watch(()=>n.disabled,m=>{s&&s.updateOptions({readOnly:!!m})}),e.watch(()=>n.minimap,m=>{s&&s.updateOptions({minimap:{enabled:!!m}})}),e.onMounted(async()=>{try{const m=await d();if(!m||!m.editor)return;i=m,u()}catch(m){console.error("Failed to load Monaco editor",m)}}),e.onBeforeUnmount(()=>{s&&(s.dispose(),s=null)}),t({focus:p,getEditor:h,getMonaco:k}),(m,g)=>(e.openBlock(),e.createElementBlock("div",{class:"w-full",style:e.normalizeStyle({height:a.value})},[e.createElementVNode("div",{ref_key:"editorContainer",ref:l,class:"w-full h-full overflow-hidden border border-[#CFD9E0] rounded"},null,512)],4))}}),rr={VsInputText:zt,VsInputRadio:Xn,VsInputInlineSelect:kn,"vs-input-text":zt,"vs-input-password":xl,"vs-input-textarea":Oo,"vs-input-richtext":Po,"vs-input-mask":mn,"vs-input-number":Vo,"vs-input-radio":Xn,"vs-input-select":Qn,"vs-input-inline-select":kn,"inline-select":kn,"vs-input-switcher":Kn,"vs-input-static":Wn,"vs-input-container":Lo,"vs-input-date":ga,"vs-input-checkbox":No,"vs-input-file":Fo,"vs-input-file2":Jn,file2:Jn,File2:Jn,"vs-input-html":Wn,"vs-input-email":Gn,"vs-input-tel":Yn,"vs-input-datatable":zo,"vs-input-map":Go,"vs-input-file-list":Do,"vs-input-tags":Yo,"vs-input-slug":Xo,"vs-input-codegen":Zo,"vs-input-key-value":Jo,"vs-input-text[]":Qo,"vs-input-range":tr,"vs-input-color":er,"vs-input-native-select":Qn,VsInputArraySelect:Bn,"vs-input-array":nr,"vs-input-array-select":Bn,"array-select":Bn,"vs-input-address":or,"vs-input-datalist":Rp,"vs-input-dataform":Yp,"vs-input-monaco":to},Xp=e.defineComponent({__name:"behavior",props:{api:{},set:{},button:{},error:{},value:{}},setup(o){const t=o,n=e.inject("values");async function r(){try{if(!t.api)return;const l=t.api.replace("{{value}}",t.value),a=await fetch(l);if(!a.ok){fe.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const s=await a.json();if(!t.set||!n)return;for(const[i,c]of Object.entries(t.set))n.value[i]=s.result[c]}catch(l){console.error(t.error,l)}}return(l,a)=>(e.openBlock(),e.createElementBlock("button",{onClick:r,class:"vs-button relative inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-blue-500 hover:border-blue-500 hover:bg-blue-500 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 ml-0 md:ml-2 mt-2 md:mt-0 py-[8px] md:w-2/4 whitespace-nowrap w-full"},e.toDisplayString(l.button),1))}}),Zp={class:"flex flex-col gap-1 w-full"},Jp={class:"w-full"},Qp=["disabled"],ef=["innerHTML"],tf=2e3,nf=10,lr=e.defineComponent({__name:"vs-compact-form-layout",props:e.mergeModels({item:{default:{}},layout:{default:"default"},style:{default:{}},type:{default:""},error:{type:[String,Boolean]},columns:{default:()=>({container:12,label:3})}},{modelValue:{default:null},modelModifiers:{}}),emits:e.mergeModels(["value-selected"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=e.useModel(o,"modelValue"),l=t,a=e.computed(()=>bl[`${n.layout}`]),s=["label","placeholder","info","description","text","html"],i=e.ref(S()),c=e.computed(()=>X(n.item,i.value)),d=e.computed(()=>rr?.[`vs-input-${n.item.type}`]),u=e.inject("field-props"),p=e.computed(()=>{const v=e.unref(d);if(!v)return new Set;const $=v.props??v.__vccOpts?.props;if(!$)return new Set;const R=Array.isArray($)?$:Object.keys($);return new Set(R)}),k=[...["min","max","step"],"api","set","mask"],m=e.computed(()=>{const v={...c.value??{}},$=n.item?.name;$&&u?.value?.[$]&&Object.assign(v,u.value[$]);const R=p.value;let B;return R.size?B=Object.fromEntries(Object.entries(v).filter(([F])=>R.has(F))):B=v,k.forEach(F=>{const D=v[F];D!=null&&(B[F]=D)}),B}),g=v=>{const $=typeof v=="object"&&v!==null?v:{value:v};l("value-selected",{...$,name:$.name??n.item?.name})},y=/{{\s*([^}]+?)\s*}}/g,C=e.inject("values"),x=e.ref(!1),w=e.computed(()=>{const v=n.item?.api,$=n.item?.type?.toLowerCase();return typeof v=="string"&&v.trim().length>0&&($==="text"||$==="mask")});function V(v,$){if(!(v==null||!$))return $.split(".").reduce((R,B)=>R?.[B.trim()],v)}async function z(){const v=String(r.value??"").trim();if(!v)return;const $=(n.item?.api??"").trim();if(!$)return;const R=$.replace(y,(B,F)=>F.trim()==="value"?encodeURIComponent(v):"");x.value=!0;try{let B=await fetch(R),F=0;for(;B.status===202&&F<nf;)F+=1,await new Promise(le=>{setTimeout(le,tf)}),B=await fetch(R);if(B.status===202){fe.notify({type:"warning",title:"Validation",message:"Сервер ще обробляє запит. Спробуйте пізніше."});return}if(!B.ok){fe.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const D=await B.json(),Z=D?.result!==void 0?D.result:D,G=n.item?.set;if(!G||!C?.value)return;const ee=n.item?.name;Object.entries(G).forEach(([le,we])=>{if(!le)return;let me=we;ee&&me.startsWith(`${ee}.`)&&(me=me.slice(ee.length+1));const ne=V(Z,me);C.value[le]=ne??null})}catch(B){console.error("API lookup error:",B),fe.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."})}finally{x.value=!1}}e.onMounted(()=>{i.value=S(),window.addEventListener("storage",N)}),e.onUnmounted(()=>{window.removeEventListener("storage",N)});function X(v,$){if(!v)return{};const R={...v};return s.forEach(B=>{const F=E(v,B,$);F!=null&&(R[B]=F)}),Array.isArray(v.options)&&(R.options=v.options.map(B=>L(B,$))),R}function L(v,$){if(!v)return v;const R={...v},B=E(v,"label",$),F=E(v,"text",$);return B!=null&&(R.label=B),F!=null?R.text=F:B!=null&&(R.text=B),R}function E(v,$,R){const B=`${$}:${R}`;if(v?.[B]!=null)return v[B];if($==="label"&&v?.[R]!=null)return v[R];if(v?.[$]!=null)return v[$];if($==="label"){if(v?.ua!=null)return v.ua;if(v?.en!=null)return v.en}if($==="text"||$==="html"){if(v?.ua!=null)return v.ua;if(v?.en!=null)return v.en}return null}function S(){return typeof window>"u"?"uk":localStorage.getItem("locale")||"uk"}function N(){i.value=S()}return(v,$)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{ua:c.value.ua,error:n.error||"",item:c.value,columns:n.columns,label:c.value.label},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["flex w-full",`${n.item.type}-component`])},[e.createElementVNode("div",Zp,[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center gap-2 w-full",{"flex-1":w.value}])},[e.createElementVNode("div",Jp,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),e.mergeProps(m.value,{modelValue:r.value,"onUpdate:modelValue":$[0]||($[0]=R=>r.value=R),onValueSelected:g}),null,16,["modelValue"]))]),w.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"flex items-center justify-center px-2 py-2 border rounded-md bg-white hover:bg-gray-50 text-gray-600 hover:text-blue-600 disabled:opacity-50 h-[38px] shrink-0",disabled:x.value||!r.value?.toString().trim(),onClick:z},[x.value?(e.openBlock(),e.createBlock(e.unref(H.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(e.openBlock(),e.createBlock(e.unref(H.Search),{key:0,class:"h-4 w-4"}))],8,Qp)):e.createCommentVNode("",!0)],2),c.value.description&&n.layout!=="settings"?(e.openBlock(),e.createElementBlock("p",{key:0,class:"text-sm text-gray-500",innerHTML:c.value.description},null,8,ef)):e.createCommentVNode("",!0)]),c.value.behavior?.api&&c.value.behavior?.button?(e.openBlock(),e.createBlock(Xp,e.mergeProps({key:0},c.value.behavior,{value:r.value}),null,16,["value"])):e.createCommentVNode("",!0)],2)]),_:1},8,["ua","error","item","columns","label"]))}}),of={class:"text-sm text-gray-800 mb-[4px] font-medium dark:text-neutral-300"},rf={class:"vs-compact-form-navigation__rail mt-[6px]"},lf=["onClick"],af=ke(e.defineComponent({__name:"vs-compact-form-navigation",props:{target:{},scrollContainer:{},title:{default:"Навігація"},enabled:{type:Boolean,default:!0},width:{default:400}},setup(o,{expose:t}){const n=o,r=e.ref([]),l=e.ref(""),a=e.ref(""),s=e.computed(()=>!!n.enabled),i=e.computed(()=>["vs-compact-form-navigation flex flex-col pl-[6px] pt-[8px] pr-[8px]","sticky top-0 self-start shrink-0","max-h-full min-h-0 overflow-y-auto"]),c=e.computed(()=>{const v=n.width;if(v==null)return{};const $=typeof v=="number"?`${v}px`:`${v}`;return{width:$,minWidth:$}});let d=null,u=0,p=0,h=null,k=null,m=null;const g=()=>S(),y=()=>x();e.watch(()=>n.target,async v=>{if(X(),!v){h=null,r.value=[],l.value="";return}h=v,s.value&&(await e.nextTick(),z(v),x())},{immediate:!0}),e.watch(()=>n.scrollContainer,v=>{if(!s.value){k=v??null;return}C(v??null),e.nextTick(()=>x())},{immediate:!0}),e.onMounted(()=>{n.scrollContainer||C(null),x()}),e.onBeforeUnmount(()=>{X(),C(null,!0),h=null,typeof window<"u"&&(u&&window.cancelAnimationFrame(u),p&&window.cancelAnimationFrame(p))});function C(v,$=!1){if(m&&(m(),m=null),$){k=null;return}if(k=v??null,typeof window>"u")return;const R=v??window,B=window;R.addEventListener("scroll",g,{passive:!0}),B.addEventListener("resize",y),m=()=>{R.removeEventListener("scroll",g),B.removeEventListener("resize",y)}}function x(){if(!s.value||!h)return;u&&typeof window<"u"&&window.cancelAnimationFrame(u);const v=()=>{w(),u=0};typeof window>"u"?v():u=window.requestAnimationFrame(v)}function w(){if(!s.value||!h)return;const v=Array.from(h.querySelectorAll("h1, h2")),$=new Set,R=[];v.forEach((B,F)=>{const D=B.textContent?.trim()??"";if(!D)return;let Z=(B.getAttribute("id")??"").trim();Z||(Z=V(D)||`heading-${F+1}`);let G=Z,ee=1;for(;$.has(G);)G=`${Z}-${ee+=1}`;B.id!==G&&Object.assign(B,{id:G}),$.add(G),R.push({id:G,text:D,level:B.tagName.toLowerCase()==="h1"?1:2})}),r.value=R,R.length||(l.value=""),E()}function V(v){return v.toLowerCase().replace(/[^a-z0-9\s-]/g,"").trim().replace(/\s+/g,"-")}function z(v){!v||!s.value||typeof MutationObserver>"u"||(X(),d=new MutationObserver(()=>x()),d.observe(v,{childList:!0,subtree:!0}))}function X(){d&&(d.disconnect(),d=null)}function L(v){const $=k;if(!$)return typeof window>"u"?v.offsetTop:v.getBoundingClientRect().top+window.scrollY;const R=v.getBoundingClientRect(),B=$.getBoundingClientRect();return R.top-B.top+$.scrollTop}function E(){if(!s.value||!r.value.length)return;const v=k,$=(v?v.scrollTop:null)||(typeof window<"u"?window.scrollY:0),R=(v?v.clientHeight:null)||(typeof window<"u"?window.innerHeight:0),B=$+R;let F=null;for(let Z=0;Z<r.value.length;Z+=1){const G=r.value[Z],ee=document.getElementById(G.id);if(ee){const le=L(ee);le+ee.offsetHeight>$&&le<B&&(F=G.id)}}!F&&a.value&&(F=a.value),F&&(a.value=F);const D=v?v.scrollHeight-v.clientHeight:document.documentElement.scrollHeight-window.innerHeight;$+5>=D&&(F=r.value[r.value.length-1].id),F&&(l.value=F)}function S(){s.value&&(p&&window.cancelAnimationFrame(p),p=window.requestAnimationFrame(()=>{E(),p=0}))}function N(v){if(!s.value)return;const $=document.getElementById(v);if(!$)return;const R=k,B=Math.max(0,L($));R?R.scrollTo({top:B,behavior:"smooth"}):typeof window<"u"&&window.scrollTo({top:B,behavior:"smooth"})}return t({refresh:x}),(v,$)=>s.value&&r.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(i.value),style:e.normalizeStyle(c.value)},[e.createElementVNode("h2",of,e.toDisplayString(v.title),1),e.createElementVNode("div",rf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,R=>(e.openBlock(),e.createElementBlock("div",{key:R.id,class:e.normalizeClass(["vs-compact-form-navigation__item relative",R.level===2?"vs-compact-form-navigation__item--nested":"",R.id===l.value?"vs-compact-form-navigation__item--active":""])},[e.createElementVNode("button",{type:"button",onClick:B=>N(R.id),class:e.normalizeClass(["vs-compact-form-navigation__button flex gap-x-3 py-[6px] pr-3 text-sm duration-200 hover:text-gray-800",R.level===2?"pl-[15px]":"pl-[18px]",R.id===l.value?"text-gray-800":"text-gray-500"])},[e.createElementVNode("span",null,e.toDisplayString(R.text),1)],10,lf)],2))),128))])],6)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-1584a562"]]),st={required:"Це поле є обов’язковим",email:"Неправильний email",tel:"Неправильний телефон",minlength:o=>`Мінімальна довжина — ${o} символів`,maxlength:o=>`Максимальна довжина — ${o} символів`,min:o=>`Значення має бути не менше ${o}`,max:o=>`Значення має бути не більше ${o}`},sf=o=>typeof o=="string"?o.trim()?!1:st.required:Array.isArray(o)?o.map(n=>typeof n=="string"?n.trim():n).filter(n=>n!=null&&n!=="").length?!1:st.required:typeof o=="number"?Number?.isNaN(o)?st?.required:!1:o?!1:st.required,cf=o=>{const t=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;return o?t.test(o)?!1:st.email:!1},df=(o,t)=>{if(!o)return!1;const n=String(o).trim();if(!/^\+[1-9]\d{1,14}$/.test(n))return st.tel;const a=(typeof t?.digits=="number"&&Number.isFinite(t.digits)&&t.digits>0?t.digits:St(xt))||St(xt);return n.length-1!==a?st.tel:!1},ar=o=>o==null?0:typeof o=="string"?o.trim().length:Array.isArray(o)?o.length:typeof o=="number"?o.toString().length:String(o).length,uf=(o,t)=>{if(o==null)return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&ar(o)<n?t?.message||st.minlength(n):!1},pf=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&ar(o)>n?t?.message||st.maxlength(n):!1},sr=o=>{if(typeof o=="number")return o;if(typeof o=="string"){const t=o.trim().replace(",",".");return t?Number(t):Number.NaN}return Number(o)},ff=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value);if(!Number.isFinite(n))return!1;const r=sr(o);return Number.isFinite(r)&&r<n?t?.message||st.min(n):!1},mf=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value);if(!Number.isFinite(n))return!1;const r=sr(o);return Number.isFinite(r)&&r>n?t?.message||st.max(n):!1},hf=(o,t)=>{const n=t.pattern??t.regexp,r=typeof n=="string"?new RegExp(n):n;if(Array.isArray(o)){const l=o.filter(Boolean);return l.length===0||l.every(a=>r.test(a))?!1:t.message}return!r.test(o)&&o?t.message:!1},gf=(o,t)=>!1,yf=(o,t)=>{switch(typeof t=="string"?t:t.type){case"required":return sf(o);case"email":return cf(o);case"tel":return df(o,typeof t=="object"?t:void 0);case"regexp":return hf(o,t);case"minlength":return uf(o,t);case"maxlength":return pf(o,t);case"min":return ff(o,t);case"max":return mf(o,t);case"custom":return gf();default:return!1}},bf={autocomplete:"select",combobox:"select",datepicker:"date",markedtext:"mask",html:"static",geom:"map",filelist:"file-list",file:"file",dropzone:"file",inlineselect:"inline-select"};function ir(o){const t=o?.toLowerCase();return bf[t]||t}function no(o,t=!1){if(Array.isArray(o)){const r=[];return o.forEach(l=>{const a={...l};if(a.name=(l.name||l.id||l.key||"").toString(),a.type=ir(l.type),a.label=l.label||l.ua,a.rules=l.rules||l.validators,a.type==="email"&&!a.rules&&(a.rules=["email"]),a.type==="tel"&&!a.rules){const s=a.mask||xt,i=St(s)||St(xt);a.rules=[{type:"tel",digits:i}]}l.data&&(a.api=`/api/suggest/${l.data}`),a.disabled=a.disabled??t,Array.isArray(a.schema)&&(a.schema=no(a.schema,a.disabled)),r.push(a)}),r}const n=[];return Object.entries(o).forEach(r=>{const l={name:r[0],...r[1],type:ir(r[1].type),label:r[1].label||r[1].ua,rules:r[1].rules||r[1].validators,disabled:r[1].disabled??t};if(l.type==="email"&&!l.rules&&(l.rules=["email"]),l.type==="tel"&&!l.rules){const a=l.mask||xt,s=St(a)||St(xt);l.rules=[{type:"tel",digits:s}]}r[1].type?.includes("list")&&(l.multiple=!0),!l.api&&r[1].data&&(l.api=`/api/suggest/${r[1].data}`),Array.isArray(l.schema)&&(l.schema=no(l.schema,l.disabled)),n.push(l)}),n}function kf(o,t,n=!1){const r=e.computed(()=>no((Array.isArray(t),t),typeof n=="boolean"?n:n.value)),l=e.ref({});function a(d){const u=d?.conditions;if(!u)return!0;const p=Array.isArray(u)?u[0]:u,h=o?.value?.[p];return To(h,u)}const s=(d=r.value,u=!0)=>(d.forEach(p=>{const h=[],k=Number(p?.minlength),m=Number(p?.maxlength),g=Number(p?.min),y=Number(p?.max);!Number.isNaN(k)&&Number.isFinite(k)&&h.push({type:"minlength",value:k}),!Number.isNaN(m)&&Number.isFinite(m)&&h.push({type:"maxlength",value:m}),!Number.isNaN(g)&&Number.isFinite(g)&&h.push({type:"min",value:g}),!Number.isNaN(y)&&Number.isFinite(y)&&h.push({type:"max",value:y});const C=[...h,...p.rules||[]];if(C.length){if(!a(p)){delete l.value[p.name];return}let x=!1,w=null;C.forEach(V=>{const z=yf(o.value[p.name],V);z&&(x=!0,!w&&typeof z=="string"&&(w=z))}),x&&w?l.value[p.name]=w:delete l.value[p.name]}p.schema&&s(p.schema,!1)}),u&&Object.values(l.value).some(Boolean)?l.value:null),i=e.computed(()=>r.value?.filter(d=>d.hidden!==!0&&a(d)));return{errors:l,validate:s,reset:()=>{o.value={},l.value={}},visibleSchema:i}}const xf={class:"flex w-full h-full min-h-0 gap-6"},wf={key:0,"data-orientation":"horizontal",role:"none",class:"mt-1 shrink-0 h-[1px] w-full bg-slate-100 dark:bg-slate-600"},rt=e.defineComponent({__name:"vs-compact-form",props:e.mergeModels({schema:{default:()=>[]},style:{default:()=>({})},modelValue:{},layout:{default:()=>"default"},formId:{default:()=>""},disabled:{type:Boolean,default:!1},navigation:{type:Boolean,default:!1},navWidth:{default:400},columns:{}},{form:{default:()=>({})},formModifiers:{},modelValue:{default:()=>({})},modelModifiers:{},values:{default:void 0},valuesModifiers:{}}),emits:e.mergeModels(["handle-submit","update:modelValue","value-selected"],["update:form","update:modelValue","update:values"]),setup(o,{expose:t,emit:n}){const r=n,l=o,a=e.useModel(o,"form"),s=e.useModel(o,"modelValue"),i=e.useModel(o,"values"),c=e.computed({get:()=>i.value??s.value,set:B=>{s.value=B,i.value=B}}),{errors:d,validate:u,reset:p,visibleSchema:h}=kf(c,l.schema,e.toRef(l,"disabled")),k=e.ref(null),m=e.ref(null),g=e.ref({}),y=e.computed(()=>l.navigation),C=e.computed(()=>l.navWidth),x=e.computed(()=>l.style?.columns),w=Object.freeze({container:12,label:3}),V=e.computed(()=>l.columns??x.value??w),z=e.computed(()=>l.columns!=null||x.value!=null),X=e.computed(()=>z.value?"horizontal":l.layout),L=B=>B?.columns?"horizontal":X.value,E=B=>B?.columns??V.value,S=()=>{!l.formId&&c.value&&delete c.value.id,r("update:modelValue",c.value),u(),r("handle-submit",c.value)},N=B=>{r("value-selected",B)};t({validate:u,reset:p,errors:d}),e.onMounted(()=>{a.value={value:c.value,errors:d.value,reset:p,validate:u,formId:l.formId}});function v(B,F){if(B===F)return!0;if(typeof B!="object"||typeof F!="object"||!B||!F)return!1;const D=Object.keys(B),Z=Object.keys(F);return D.length!==Z.length?!1:D.every(G=>B[G]===F[G])}function $(B){return Array.isArray(B)?[...B]:B&&typeof B=="object"?{...B}:B}function R(B){Array.isArray(B)&&B.forEach(F=>{if(!F)return;const D=F.name,Z=F.default!==void 0;D&&Z&&c.value[D]===void 0&&(c.value[D]=$(F.default)),Array.isArray(F.schema)&&R(F.schema)})}return e.watch(h,B=>{R(B)},{immediate:!0,deep:!0}),e.provide("form",a),e.provide("values",c),e.provide("field-props",g),(B,F)=>(e.openBlock(),e.createElementBlock("div",xf,[e.createElementVNode("div",{class:"flex-1 min-h-0 overflow-y-auto overflow-x-visible",ref_key:"formScrollContainer",ref:m},[e.createElementVNode("form",{ref_key:"formRef",ref:k,onSubmit:e.withModifiers(S,["prevent"]),class:e.normalizeClass(["grid grid-cols-12 p-1",X.value==="default"?"gap-6":"gap-4"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(h),(D,Z)=>(e.openBlock(),e.createElementBlock("div",{key:D.name,class:e.normalizeClass(L(D)==="horizontal"?"col-span-12":`col-span-${D.col||12}`)},[e.createVNode(lr,{style:e.normalizeStyle(B.style),item:D,layout:L(D),columns:E(D),"model-value":c.value[D.name],"onUpdate:modelValue":G=>{if(D.name==="id"&&!B.formId)return;const ee=c.value[D.name];v(ee,G)||(c.value[D.name]=G)},error:e.unref(d)[D.name],onValueSelected:N},null,8,["style","item","layout","columns","model-value","onUpdate:modelValue","error"]),L(D)==="settings"&&Z+1!==e.unref(h).length?(e.openBlock(),e.createElementBlock("div",wf)):e.createCommentVNode("",!0)],2))),128))],34)],512),e.createVNode(af,{target:k.value,"scroll-container":m.value,enabled:y.value,width:C.value},null,8,["target","scroll-container","enabled","width"])]))}}),_f={class:"relative"},Cf={class:"w-full h-full fixed top-0 start-0 bg-black bg-opacity-50"},vf={class:"m-[10px] fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 min-h-0 h-fit max-h-[80vh] overflow-hidden opacity-1 flex flex-col bg-white dark:bg-[#1A1A1A] border dark:border-[#454545] pointer-events-auto shadow-[0_10px_40px_10px_rgba(0,0,0,0.08)] rounded-xl lg:w-7/12 w-11/12"},Ef={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},Bf={class:"font-medium text-gray-800 dark:text-[#ffffff]"},Vf={class:"p-4 mim-h-0 h-full overflow-auto"},cr=e.defineComponent({__name:"modal-edit",props:{schema:{},defaultValue:{},mode:{},token:{},form:{},api:{},method:{}},emits:["close","save","edit"],setup(o,{emit:t}){const n=o,r=t,l=e.ref(n.schema),a=e.ref(n.defaultValue?JSON.parse(JSON.stringify(n.defaultValue)):{}),s=e.ref({}),i=e.ref(n.token||""),c=e.ref(n.token||""),d=e.ref(n.mode),u=()=>{const y=n.method?.trim().toUpperCase();return y==="GET"||y==="POST"||y==="PUT"?y:d.value==="add"?"POST":"PUT"},p=()=>{fe.notify({type:"success",title:"Успішно",message:`Дані успішно ${d.value==="add"?"збережено":"оновлено"}`})},h=y=>{const C={};y.id!==void 0&&y.id!==null&&(C.id=y.id,c.value=y.id.toString()),y.obj&&typeof y.obj=="object"&&Object.assign(C,y.obj),Object.keys(C).length&&(a.value={...a.value,...C})},k=async y=>{if(console.log(y),y.ok){await y.json().catch(()=>({})),p(),r("save",a.value);return}const C=await y.json().catch(()=>({})),x=C.message||C.error;if(y.status===400){fe.notify({type:"warning",title:"Помилка валідації",message:x||"Некоректні дані (400)"});return}if(y.status===500){fe.notify({type:"error",title:"Серверна помилка",message:x||"Виникла помилка на сервері (500)"});return}fe.notify({type:"error",title:"Помилка",message:`Статус: ${y.status}`})};async function m(){const y=s.value.validate();if(y){fe.notify({type:"warning",title:"Помилка валідації",message:Object.entries(y).map(([x,w])=>`${x}: ${w}`).join(`