@opengis/form 0.0.175 → 0.0.176

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,7 +1,7 @@
1
- (function(_e,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):(_e=typeof globalThis<"u"?globalThis:_e||self,e(_e.FormBuilder={},_e.Vue,_e.OpenGISCore,_e.lucide))})(this,(function(_e,e,ge,H){"use strict";const Lo=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))}}),Gn={form:{autofillFrom:"Filled from",richtext:{paragraph:"Paragraph",heading1:"Heading 1",heading2:"Heading 2",heading3:"Heading 3",heading4:"Heading 4",heading5:"Heading 5",heading6:"Heading 6",createTable:"Create Table",addColumn:"Add Column",addRow:"Add Row",deleteColumn:"Delete Column",deleteRow:"Delete Row",deleteTable:"Delete Table",mergeCells:"Merge Cells",splitCells:"Split Cells",linkTitle:"Enter Link",link:"Link",linkUrl:"Enter URL",editLink:"Edit Link",openLink:"Open Link",removeLink:"Remove Link",openInNewTab:"Open in New Tab",editor:"Editor",html:"HTML",markdown:"Markdown",create:"Create",update:"Update",cancel:"Cancel"}}},Yn={form:{autofillFrom:"Підставлено з",richtext:{paragraph:"Звичайний текст",heading1:"Заголовок 1",heading2:"Заголовок 2",heading3:"Заголовок 3",heading4:"Заголовок 4",heading5:"Заголовок 5",heading6:"Заголовок 6",createTable:"Створити таблицю",addColumn:"Додати колонку",addRow:"Додати рядок",deleteColumn:"Видалити колонку",deleteRow:"Видалити рядок",deleteTable:"Видалити таблицю",mergeCells:"Об'єднати комірки",splitCells:"Розділити комірки",linkTitle:"Додати посилання",link:"Посилання",linkUrl:"Введіть URL",editLink:"Редагувати посилання",openLink:"Відкрити посилання",removeLink:"Видалити посилання",openInNewTab:"Відкривати в новій вкладці",editor:"Редактор",html:"HTML",markdown:"Markdown",create:"Створити",update:"Оновити",cancel:"Скасувати"}}},bl={class:"w-full relative"},kl={key:0,class:"text-[14px] font-medium text-gray-900 mb-2 flex items-center gap-1"},xl={class:"opacity-100"},wl={key:0,class:"text-red-500 text-[14px]"},_l={key:2,class:"text-[11px] text-slate-500 font-normal"},vl={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Cl=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||""),s=e.inject("schema-by-name"),i={en:Gn?.form?.autofillFrom,uk:Yn?.form?.autofillFrom},c=e.computed(()=>{const d=t.item?.__autoMeta;if(!d||d?.source!=="parent-auto"||!d?.parentField)return"";const m=String(t.item?.__locale||"uk"),p=String(d.parentField),h=s?.value?.[p],y=h?.[`label:${m}`]||(m!=="uk"?h?.[m]:void 0)||h?.label||h?.ua||h?.en||p;return`${i[m]||i.uk}: ${y}`});return(d,m)=>(e.openBlock(),e.createElementBlock("div",bl,[r.value?(e.openBlock(),e.createElementBlock("div",kl,[e.createElementVNode("span",xl,e.toDisplayString(n.value),1),l.value?(e.openBlock(),e.createElementBlock("span",wl,"*")):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createBlock(Lo,{key:1,text:a.value},null,8,["text"])):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("span",_l," ("+e.toDisplayString(c.value)+") ",1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(d.$slots,"default",e.mergeProps(d.$attrs,{class:{"opacity-60":d.item.disabled}})),d.error?(e.openBlock(),e.createElementBlock("span",vl,e.toDisplayString(d.error),1)):e.createCommentVNode("",!0)]))}}),El={class:"w-full relative flex flex-row items-center gap-2"},Bl={key:0,class:"text-red-500 text-[14px]"},Vl={key:2,class:"text-[11px] text-slate-500 font-normal"},Sl={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},$l=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.inject("schema-by-name"),a={en:Gn?.form?.autofillFrom,uk:Yn?.form?.autofillFrom},s=e.computed(()=>{const h=t.item?.__autoMeta;if(!h||h?.source!=="parent-auto"||!h?.parentField)return"";const y=String(t.item?.__locale||"uk"),f=String(h.parentField),k=l?.value?.[f],b=k?.[`label:${y}`]||(y!=="uk"?k?.[y]:void 0)||k?.label||k?.ua||k?.en||f;return`${a[y]||a.uk}: ${b}`}),i=e.computed(()=>t.columns??{container:12,label:3}),c=e.computed(()=>{const{container:h,label:y}=i.value;return!h||h<=0?0:Math.min(Math.max(y??0,0),h)/h}),d=e.computed(()=>t.item?.type==="html"||c.value<=0?!1:!!n.value),m=e.computed(()=>{if(!d.value)return{};const h=`${c.value*100}%`;return{flexBasis:h,maxWidth:h}}),p=e.computed(()=>{const{container:h,label:y}=i.value;if(!h||h<=0)return{};if(t.item?.type==="html")return{flexBasis:"100%",maxWidth:"100%"};if(!d.value)return{flexBasis:"100%",maxWidth:"100%"};const f=Math.max(h-Math.max(y??0,0),0)/h;if(!f)return{};const k=`${f*100}%`;return{flexBasis:k,maxWidth:k}});return(h,y)=>(e.openBlock(),e.createElementBlock("div",El,[d.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(m.value)},[e.createTextVNode(e.toDisplayString(n.value)+" ",1),h.item?.rules?.includes("required")&&n.value?(e.openBlock(),e.createElementBlock("span",Bl,"*")):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createBlock(Lo,{key:1,text:r.value},null,8,["text"])):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock("span",Vl," ("+e.toDisplayString(s.value)+") ",1)):e.createCommentVNode("",!0)],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"flex-1 min-w-0",style:e.normalizeStyle(p.value)},[e.renderSlot(h.$slots,"default",e.normalizeProps(e.guardReactiveProps(h.$attrs)))],4),h.error?(e.openBlock(),e.createElementBlock("span",Sl,e.toDisplayString(h.error),1)):e.createCommentVNode("",!0)]))}}),Nl={class:"w-full relative"},Al={key:0,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Ml=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",Nl,[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(t.$attrs))),t.error?(e.openBlock(),e.createElementBlock("span",Al,e.toDisplayString(t.error),1)):e.createCommentVNode("",!0)]))}}),Fl={class:"flex-1 min-w-0"},Dl={key:0,class:"text-sm font-medium text-slate-700 dark:text-slate-200 flex items-center gap-1"},Tl={class:"truncate"},Ll={key:0,class:"text-red-500 text-[14px]"},Il=["innerHTML"],Ol={key:0,class:"mt-1 text-xs text-red-500"},Rl={default:Cl,horizontal:$l,inline:Ml,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",Fl,[i.ua||i.label?(e.openBlock(),e.createElementBlock("p",Dl,[e.createElementVNode("span",Tl,e.toDisplayString(i.item[n.value]||i.ua||i.label),1),l.value?(e.openBlock(),e.createElementBlock("span",Ll,"*")):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,Il)):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",Ol,e.toDisplayString(a.value),1)):e.createCommentVNode("",!0)],2))}})};function et(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 Pl=["placeholder","disabled"],zl=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}=et(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,Pl)),[[e.vModelText,r.value]])}}),jl=["placeholder","disabled","maxlength","minlength"],Ht=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}=et(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,m)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"text","onUpdate:modelValue":m[0]||(m[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,jl)),[[e.vModelText,r.value]])}}),Ul=["step","placeholder","disabled","min","max"],Io=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}=et(t.style),r=e.useAttrs(),l=e.useModel(o,"modelValue"),a=e.computed(()=>!!t.disabled),s=m=>{if(m==null||m==="")return;const p=typeof m=="string"?m.trim().replace(",","."):m,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 m=r.step;return typeof m=="number"||typeof m=="string"?m:"any"});return(m,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,Ul)),[[e.vModelText,l.value]])}}),fn=o=>!!String(o??"").trim(),Vt=o=>o?.color?String(o.color):"",Yt=o=>{const t=o?.icon;if(typeof t=="string")return t;const n=o?.imgUrl;return typeof n=="string"?n:""},Xt=o=>{const t=o?.icon;return t&&typeof t!="string"?t:null},Hl={class:"flex items-center gap-[4px]"},ql=["value","id","disabled"],Kl=["for"],Wl=["innerHTML"],Gl={key:1,class:"text-[14px] text-gray-700 flex items-center gap-2 dark:text-neutral-400"},Yl=["src"],Xl=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:y=>n("update:modelValue",y)}),a=e.computed(()=>!!r.disabled),s=e.computed(()=>Yt(r.option)),i=e.computed(()=>Xt(r.option)),c=e.computed(()=>Vt(r.option)),d=e.computed(()=>!!(c.value&&!s.value&&!i.value)),m=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(y,f)=>(e.openBlock(),e.createElementBlock("div",Hl,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",value:y.value,"onUpdate:modelValue":f[0]||(f[0]=k=>l.value=k),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:y.id,disabled:a.value},null,10,ql),[[e.vModelCheckbox,l.value]]),e.createElementVNode("label",{for:y.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",y.error?"border-red-600":""]])},[e.createVNode(e.unref(H.Check),{class:"h-4 w-4"})],2),y.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:y.html},null,8,Wl)):(e.openBlock(),e.createElementBlock("span",Gl,[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),m.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,Yl)):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(y.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(y.label),1)])]))],10,Kl)]))}}),Zl=["name","value","disabled"],Jl=["innerHTML"],Ql={key:1,class:"flex items-center gap-[6px] text-[14px]"},ea={key:2,class:"text-[16px] inline-flex items-center justify-center"},ta=["src"],na=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:k=>{r("update:modelValue",k)}}),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(()=>Yt(i.value)),d=e.computed(()=>Xt(i.value)),m=e.computed(()=>Vt(i.value)),p=e.computed(()=>!!(m.value&&!c.value&&!d.value)),h=e.computed(()=>!!(c.value&&m.value)),y=e.computed(()=>m.value?{color:m.value}:void 0),f=e.computed(()=>{if(!(!c.value||!m.value))return{backgroundColor:m.value,WebkitMaskImage:`url(${c.value})`,maskImage:`url(${c.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(k,b)=>(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:k.id,value:k.value,"onUpdate:modelValue":b[0]||(b[0]=C=>l.value=C),disabled:k.disabled},null,8,Zl),[[e.vModelCheckbox,l.value]]),k.html?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-full",innerHTML:k.html},null,8,Jl)):(e.openBlock(),e.createElementBlock("span",Ql,[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:m.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(f.value)},null,4)):c.value||d.value?(e.openBlock(),e.createElementBlock("span",ea,[c.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:c.value,width:"16",height:"16",alt:"icon"},null,8,ta)):d.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),{key:1,class:"h-4 w-4",style:e.normalizeStyle(y.value)},null,8,["style"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(k.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(k.label),1)])]))],2))}}),oa={class:"flex items-center"},Xn=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",oa,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value==="vs-checkbox-buttons"?e.unref(na):e.unref(Xl)),{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"]))]))}}),ra={key:0,class:"flex items-start gap-x-1"},la={key:0,class:"text-red-500 text-[14px]"},aa=["title"],sa=["disabled"],Zn=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",ra,[e.createVNode(Xn,{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",la,"*")):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,aa)):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,sa))}}),ia=["id","innerHTML"],Jn=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,ia))}}),ca=["placeholder","disabled","name"],hn=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}=et(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 m=!1;for(let h=0;h<i.length;h+=1){const y=i[h];y==="{"?m=!0:y==="}"?m=!1:m&&d.add(y)}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,ca))}}),da={class:"relative w-full bg-white rounded-lg"},ua={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},pa=["placeholder","disabled"],Qn=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}=et(t.style),r=e.useModel(o,"modelValue");return(l,a)=>(e.openBlock(),e.createElementBlock("div",da,[e.createElementVNode("div",ua,[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,pa),[[e.vModelText,r.value]])]))}}),_t="+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 ma={class:"relative w-full bg-white rounded-lg"},fa={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] pointer-events-none"},ha=["name","placeholder","disabled","pattern"],eo=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:_t}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.computed(()=>`^\\+[1-9]\\d{${(St(t.mask||_t)||St(_t))-1}}$`),{inputClass:r}=et(t.style),l=e.useModel(o,"modelValue"),a=e.ref(null);let s=null;function i(m){const p={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},h=new Set;let y=!1;for(let k=0;k<m.length;k+=1){const b=m[k];b==="{"?y=!0:b==="}"?y=!1:y&&h.add(b)}const f={};return Object.keys(p).forEach(k=>{h.has(k)||(f[k]=p[k])}),{mask:m,definitions:f,lazy:!1,disabled:t.disabled}}function c(m){if(m==null||m==="")return"";const p=String(m).trim();return p?p.replace(/\D/g,""):""}function d(){if(!s)return;const m=s.unmaskedValue??"";l.value=m?`+${m}`:""}return e.onMounted(async()=>{if(!a.value)return;const{default:m}=await Promise.resolve().then(()=>Pn),p=i(t.mask||"");s=m(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,m=>{s&&s.updateOptions(i(m||""))}),e.watch(()=>t.disabled,m=>{s&&s.updateOptions({disabled:m})}),e.watch(l,m=>{if(!s)return;const p=c(m);s.unmaskedValue!==p&&(s.unmaskedValue=p)}),(m,p)=>(e.openBlock(),e.createElementBlock("div",ma,[e.createElementVNode("div",fa,[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:m.name,placeholder:m.placeholder,disabled:m.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":m.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,ha)]))}}),ga=["value","disabled"],ya=["innerHTML"],ba={key:1,class:"flex items-center gap-2"},ka=["src"],xa={class:"text-[13px] text-gray-700"},wa=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(()=>Yt(t.option)),a=e.computed(()=>Xt(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),m=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]=y=>n.value=y),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,ga),[[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,ya)):(e.openBlock(),e.createElementBlock("div",ba,[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(m.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,ka)):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",xa,e.toDisplayString(t.text),1)]))],2))}}),_a=["value","disabled"],va=["innerHTML"],Ca={key:1,class:"flex items-center gap-2"},Ea=["src"],Ba={class:"text-[13px] text-gray-700"},Va={"vs-input-radio-default":wa,"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(()=>Yt(t.option)),a=e.computed(()=>Xt(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),m=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]=y=>n.value=y),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,_a),[[e.vModelRadio,n.value]]),t.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:t.html},null,8,va)):(e.openBlock(),e.createElementBlock("div",Ca,[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(m.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,Ea)):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",Ba,e.toDisplayString(t.text),1)]))],2))}})},Oo=o=>Array.isArray(o)?o:Array.isArray(o?.data)?o.data:[],Ro=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(`${Ro(l)}?${a.toString()}`)).json();return Oo(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(`${Ro(l)}?${a.toString()}`)).json();return Oo(i)[0]??null}catch{return null}}}),gn=({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}},$a=/\{\{\s*([^}]+?)\s*\}\}/g,Na=o=>(o?String(o):"").replace(/<[^>]*>/g,"").trim(),Aa=(o,t)=>t.split(".").reduce((n,r)=>n==null?n:n[r.trim()],o),yn=(o,t)=>{if(!o)return"";const n=(t??"").trim();return n?n.replace($a,(r,l)=>{const a=String(l).trim(),s=o,c=(a.includes(".")?Aa(s,a):void 0)??s[a];return c!=null?String(c):""}):o.text??""},bn=(o,t)=>{if(!o)return"";const n=yn(o,t);return Na(n)||o.text||""},to=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(()=>Va[`vs-input-radio-${t.view}`]),l=e.computed(()=>t.slot??t?.optionTemplate??""),a=e.computed(()=>fn(l.value)),s=y=>yn(y,l.value),i=y=>bn(y,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)"}}),m=e.inject("values",null),{optionsList:p,loadOptions:h}=gn({props:t,formValues:m});return e.onMounted(async()=>{await h()}),(y,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(c.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(p),k=>(e.openBlock(),e.createElementBlock("div",{key:k?.id,class:e.normalizeClass(["flex items-stretch",y.position==="horizontal"?t.customClass:""]),style:e.normalizeStyle(d.value)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value),e.mergeProps({text:i(k),html:a.value?s(k):"",option:k,value:k.id.toString(),checked:n.value?.toString?.()===k.id?.toString?.(),"custom-class":y.position==="horizontal"?"":t.customClass,modelValue:n.value,"onUpdate:modelValue":f[0]||(f[0]=b=>n.value=b)},{ref_for:!0},y.$attrs),null,16,["text","html","option","value","checked","custom-class","modelValue"]))],6))),128))],2))}}),Ma={key:1,class:"w-full flex flex-col gap-4"},Fa={key:0,class:"text-sm font-medium text-muted-foreground my-2"},Da="Без категорії",Ta=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}=gn({props:{...n,options:n.options},formValues:a}),c=e.computed(()=>s.value),d=x=>x?.value||x?.id||x?.text||x,m=e.computed(()=>n.slot??n?.optionTemplate??""),p=e.computed(()=>fn(m.value)),h=x=>yn(x,m.value),y=x=>bn(x,m.value),f=x=>`lg:col-span-${x||12}`,k=e.computed(()=>[n.position==="vertical"?"flex flex-col":"",n.colSpan?"grid":"flex justify-start"]),b=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],V=b(E);x.has(V)||x.set(V,[]),x.get(V)?.push(L)});const _=[];n.values?.length&&n.values.forEach(L=>{const E=b(L);_.push(E)});const N=new Set,U=L=>{const E=x.get(L)||[];if(!E.length)return null;const V=L===null?"group-null":`group-${String(L)}`,S=L===null?Da:String(L);return N.add(L),{key:V,label:S,options:E}},Y=[];return _.forEach(L=>{const E=U(L);E&&Y.push(E)}),x.forEach((L,E)=>{if(N.has(E))return;const V=U(E);V&&Y.push(V)}),Y});return e.watch(()=>n.modelValue,x=>{if(typeof x=="boolean"&&c.value.length===1){const _=d(c.value[0]);l[_]=x}else if(Array.isArray(x)){const _=new Set(x);c.value.forEach(N=>{if(!N.disabled){const U=d(N);l[U]=_.has(U)}})}},{immediate:!0}),e.watch(l,()=>{if(!c.value.length){r("update:modelValue",null);return}const x=Object.entries(l).filter(([,_])=>_).map(([_])=>_);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(_=>{if(!_.disabled){const N=d(_);l[N]=x.has(N)}})}}),(x,_)=>n.group?(e.openBlock(),e.createElementBlock("div",Ma,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.value,N=>(e.openBlock(),e.createElementBlock("div",{key:N.key,class:"flex flex-col gap-2"},[N.label?(e.openBlock(),e.createElementBlock("span",Fa,e.toDisplayString(N.label),1)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-0 w-full gap-[12px]",k.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.options,U=>(e.openBlock(),e.createBlock(Xn,{modelValue:l[d(U)],"onUpdate:modelValue":Y=>l[d(U)]=Y,value:d(U),class:e.normalizeClass(f(x.colSpan)),disabled:n.disabled||U.disabled,label:y(U),labelHtml:p.value?h(U):"",key:`${N.key}-${d(U)}`,icon:U?.icon,imgUrl:U?.imgUrl,option:U,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]",k.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,N=>(e.openBlock(),e.createBlock(Xn,{modelValue:l[d(N)],"onUpdate:modelValue":U=>l[d(N)]=U,value:d(N),class:e.normalizeClass(f(x.colSpan)),disabled:n.disabled||N.disabled,label:y(N),labelHtml:p.value?h(N):"",key:d(N),icon:N?.icon,imgUrl:N?.imgUrl,option:N,view:x.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2))}}),ve=(o,t)=>{const n=o.__vccOpts||o;for(const[r,l]of t)n[r]=l;return n},Po=ve(Ta,[["__scopeId","data-v-9056e0ec"]]),La=1440*60*1e3,Ia=["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"],Oa=["січ","лют","бер","квіт","трав","черв","лип","серп","вер","жовт","лист","груд"],Ra=["нд","пн","вт","ср","чт","пт","сб"];function Xe(o){return o instanceof Date&&!Number.isNaN(o.getTime())}const qt=o=>new Date(o.getTime());function Ot(o){const t=qt(o);return t.setHours(0,0,0,0),t}function Zt(o){const t=qt(o);return t.setHours(23,59,59,999),t}function no(o){return Ot(new Date(o.getFullYear(),o.getMonth(),1))}function oo(o){return Zt(new Date(o.getFullYear(),o.getMonth()+1,0))}function ro(o,t){const n=new Date(o),r=n.getDate();n.setDate(1),n.setMonth(n.getMonth()+t);const l=new Date(n.getFullYear(),n.getMonth()+1,0).getDate();return n.setDate(Math.min(r,l)),n}function Pa(o,t){return ro(o,-1)}function kn(o,t){const n=new Date(o);return n.setFullYear(n.getFullYear()+t),n}function zo(o,t){return kn(o,-t)}function jo(o){return Ot(new Date(o.getFullYear(),0,1))}function Uo(o){return Zt(new Date(o.getFullYear(),11,31))}function za(o){const t=Math.floor(o.getFullYear()/10)*10;return Ot(new Date(t,0,1))}function ja(o){const t=Math.floor(o.getFullYear()/10)*10+9;return Zt(new Date(t,11,31))}const ft=o=>o.getFullYear(),xn=o=>Math.floor(o.getFullYear()/10)*10;function Ua(o){const t=[];let n=Ot(o.start);const r=Ot(o.end);for(;n<=r;)t.push(qt(n)),n=new Date(n.getTime()+La);return t}function Ha(o){const t=[];let n=no(o.start);const r=oo(o.end);for(;n<=r;)t.push(qt(n)),n=ro(n,1);return t}function qa(o){const t=[];let n=jo(o.start);const r=Uo(o.end);for(;n<=r;)t.push(qt(n)),n=kn(n,1);return t}function lo(o,t=1){const n=Ot(o),r=(n.getDay()-t+7)%7;return n.setDate(n.getDate()-r),n}function Ka(o,t=1){const n=lo(o,t);return n.setDate(n.getDate()+6),Zt(n)}function Wa(o,t,n=0){const r=lo(o,n),l=(t-n+7)%7;return r.setDate(r.getDate()+l),r}const wn=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear()&&o.getMonth()===t.getMonth()&&o.getDate()===t.getDate(),ao=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear()&&o.getMonth()===t.getMonth(),Ho=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear(),qo=(o,t)=>!!o&&!!t&&wn(o,t)&&o.getHours()===t.getHours(),Ga=(o,t)=>!!o&&!!t&&qo(o,t)&&o.getMinutes()===t.getMinutes();function Ya(o,t){const n=o.getTime();return n>=t.start.getTime()&&n<=t.end.getTime()}const Jt=(o,t)=>!!o&&!!t&&o.getTime()<t.getTime(),Qt=(o,t)=>!!o&&!!t&&o.getTime()>t.getTime();function Xa(o){const t=o.filter(n=>Xe(n));if(t.length)return t.reduce((n,r)=>n.getTime()>=r.getTime()?n:r)}function Za(o){const t=o.filter(n=>Xe(n));if(t.length)return t.reduce((n,r)=>n.getTime()<=r.getTime()?n:r)}function Ja(o,t){const n=qt(o);return typeof t.year=="number"&&n.setFullYear(t.year),typeof t.month=="number"&&n.setMonth(t.month),typeof t.date=="number"&&n.setDate(t.date),typeof t.hours=="number"&&n.setHours(t.hours),typeof t.minutes=="number"&&n.setMinutes(t.minutes),typeof t.seconds=="number"&&n.setSeconds(t.seconds),typeof t.milliseconds=="number"&&n.setMilliseconds(t.milliseconds),n}const _n=(o,t=2)=>String(o).padStart(t,"0");function Ko(o,t){return t==="wide"?Ia[o]:Oa[o]}function Qa(o){return Ra[o]}const es=[{token:"LLLL",format:o=>Ko(o.getMonth(),"wide")},{token:"LLL",format:o=>Ko(o.getMonth(),"abbreviated")},{token:"EE",format:o=>Qa(o.getDay())},{token:"yyyy",format:o=>String(o.getFullYear())},{token:"MM",format:o=>_n(o.getMonth()+1)},{token:"dd",format:o=>_n(o.getDate())},{token:"HH",format:o=>_n(o.getHours())},{token:"mm",format:o=>_n(o.getMinutes())}];function en(o,t){if(!Xe(o))return"";let n="",r=0;for(;r<t.length;){const l=es.find(a=>t.startsWith(a.token,r));l?(n+=l.format(o),r+=l.token.length):(n+=t[r],r+=1)}return n}const ts={"yyyy-MM-dd":/^(\d{4})-(\d{2})-(\d{2})$/,"dd.MM.yyyy":/^(\d{2})\.(\d{2})\.(\d{4})$/,"dd.MM.yyyy HH:mm":/^(\d{2})\.(\d{2})\.(\d{4}) (\d{2}):(\d{2})$/,"HH:mm":/^(\d{2}):(\d{2})$/,"MM.yyyy":/^(\d{2})\.(\d{4})$/,yyyy:/^(\d{4})$/};function Wo(o,t){const n=ts[t];if(!n){const l=new Date(o);return Xe(l)?l:null}const r=o.match(n);if(!r)return null;switch(t){case"yyyy-MM-dd":{const[,l,a,s]=r,i=new Date(Number(l),Number(a)-1,Number(s));return Xe(i)?i:null}case"dd.MM.yyyy":{const[,l,a,s]=r,i=new Date(Number(s),Number(a)-1,Number(l));return Xe(i)?i:null}case"dd.MM.yyyy HH:mm":{const[,l,a,s,i,c]=r,d=new Date(Number(s),Number(a)-1,Number(l),Number(i),Number(c));return Xe(d)?d:null}case"HH:mm":{const[,l,a]=r,s=new Date;return s.setHours(Number(l),Number(a),0,0),s}case"MM.yyyy":{const[,l,a]=r;return new Date(Number(a),Number(l)-1,1)}case"yyyy":{const[,l]=r;return new Date(Number(l),0,1)}default:return null}}const ns=["year","month","day","time","custom"],os=e.defineComponent({components:{ChevronLeft:H.ChevronLeft,ChevronRight:H.ChevronRight},emits:{elementClick:o=>Xe(o),left:()=>!0,right:()=>!0,heading:()=>!0,today:()=>!0,clear:()=>!0},props:{headingClickable:{type:Boolean,default:!1},leftDisabled:{type:Boolean,default:!1},rightDisabled:{type:Boolean,default:!1},columnCount:{type:Number,default:7},items:{type:Array,default:()=>[]},viewMode:{type:String,required:!0,validate:o=>typeof o=="string"&&ns.includes(o)},showButtonBar:{type:Boolean,default:!1},hideHeader:{type:Boolean,default:!1}},setup(){const t=e.getCurrentInstance()?.appContext?.config?.globalProperties?.$t,n=e.computed(()=>{const l=t?.("form.date.today");return l&&l!=="form.date.today"?l:"Сьогодні"}),r=e.computed(()=>{const l=t?.("form.date.clear");return l&&l!=="form.date.clear"?l:"Очистити"});return{todayLabel:n,clearLabel:r}}}),rs={key:0,class:"p-datepicker-header flex items-center justify-between mb-1.5"},ls=["disabled"],as=["disabled"],ss={key:0,class:"p-datepicker-weekheader grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-400 font-medium mb-1.5"},is=["disabled","onClick"],cs={key:1,class:"p-datepicker-buttonbar mt-2 pt-2 border-t border-slate-200 flex items-center justify-between"};function ds(o,t,n,r,l,a){const s=e.resolveComponent("ChevronLeft"),i=e.resolveComponent("ChevronRight");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["p-datepicker-panel p-component text-center text-slate-700 overflow-x-hidden bg-white border border-slate-200 rounded-xl shadow-[0_4px_12px_rgba(0,0,0,0.1)] p-2",o.viewMode==="month"||o.viewMode==="year"?"w-[182px] min-w-[182px]":"w-[268px] min-w-[182px]"]),style:e.normalizeStyle({"--popout-column-definition":`repeat(${o.columnCount}, 1fr)`}),onMousedown:t[5]||(t[5]=e.withModifiers(()=>{},["prevent"]))},[o.hideHeader?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",rs,[e.createElementVNode("button",{class:"p-datepicker-prev-button inline-flex items-center justify-center size-8 rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300 disabled:hover:bg-transparent",disabled:o.leftDisabled,onClick:t[0]||(t[0]=e.withModifiers(c=>o.$emit("left"),["stop","prevent"]))},[e.renderSlot(o.$slots,"arrow-left",{},()=>[e.createVNode(s,{class:"h-3.5 w-3.5"})])],8,ls),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.headingClickable?"button":"span"),{class:e.normalizeClass(["p-datepicker-title min-w-0 rounded-md px-2 py-1 text-sm font-semibold leading-snug text-slate-700",o.headingClickable?"hover:bg-slate-100":"",o.viewMode==="month"?"p-datepicker-select-year":"",o.viewMode==="year"?"p-datepicker-decade whitespace-nowrap text-xs px-1":""]),onClick:t[1]||(t[1]=e.withModifiers(c=>o.$emit("heading"),["stop","prevent"]))},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"heading")]),_:3},8,["class"])),e.createElementVNode("button",{class:"p-datepicker-next-button inline-flex items-center justify-center size-8 rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300 disabled:hover:bg-transparent",disabled:o.rightDisabled,onClick:t[2]||(t[2]=e.withModifiers(c=>o.$emit("right"),["stop","prevent"]))},[e.renderSlot(o.$slots,"arrow-right",{},()=>[e.createVNode(i,{class:"h-3.5 w-3.5"})])],8,as)])),e.createElementVNode("div",null,["subheading"in o.$slots?(e.openBlock(),e.createElementBlock("div",ss,[e.renderSlot(o.$slots,"subheading")])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-datepicker-calendar grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-700",o.viewMode==="month"?"p-datepicker-month-view":"",o.viewMode==="year"?"p-datepicker-year-view":"",o.viewMode==="month"?"gap-y-1":""])},[e.renderSlot(o.$slots,"body",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.items,c=>(e.openBlock(),e.createElementBlock("button",{key:c.key,disabled:c.disabled,class:e.normalizeClass(["p-[2px] disabled:text-slate-300"]),onClick:e.withModifiers(d=>o.$emit("elementClick",c.value),["stop","prevent"])},[e.createElementVNode("span",{class:e.normalizeClass([o.viewMode==="month"||o.viewMode==="year"?"inline-flex w-full h-8 items-center justify-center rounded-md text-[13px] font-normal transition-colors":"inline-flex w-8 h-8 items-center justify-center rounded-full text-[13px] font-normal transition-colors",o.viewMode==="month"?"p-datepicker-month":"",o.viewMode==="year"?"p-datepicker-year":"",o.viewMode==="day"?"p-datepicker-day":"",c.selected?"bg-blue-500 text-white font-semibold":"",c.current&&!c.selected&&o.viewMode!=="month"&&o.viewMode!=="year"?"border border-slate-300 font-medium":"",!c.disabled&&!c.selected?"hover:bg-slate-100 hover:text-slate-700":"",!c.current&&!c.selected&&c.disabled?"text-slate-300":""])},e.toDisplayString(c.display),3)],8,is))),128))])],2),e.renderSlot(o.$slots,"after-calendar"),o.showButtonBar?(e.openBlock(),e.createElementBlock("div",cs,[e.createElementVNode("button",{type:"button",class:"p-datepicker-today-button text-xs font-medium text-slate-500 hover:text-slate-700 transition-colors px-1.5 py-1 rounded-md hover:bg-slate-100",onClick:t[3]||(t[3]=e.withModifiers(c=>o.$emit("today"),["stop","prevent"]))},e.toDisplayString(o.todayLabel),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-clear-button text-xs font-medium text-slate-500 hover:text-slate-700 transition-colors px-1.5 py-1 rounded-md hover:bg-slate-100",onClick:t[4]||(t[4]=e.withModifiers(c=>o.$emit("clear"),["stop","prevent"]))},e.toDisplayString(o.clearLabel),1)])):e.createCommentVNode("",!0)])],38)}const vn=ve(os,[["render",ds]]),us=e.defineComponent({components:{PickerPopup:vn},emits:{"update:pageDate":o=>Xe(o),select:o=>Xe(o)},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(o,{emit:t}){const n=e.computed(()=>za(o.pageDate)),r=e.computed(()=>ja(o.pageDate)),l=(p,h,y)=>!h&&!y?!0:!(h&&ft(p)<ft(h)||y&&ft(p)>ft(y)),a=e.computed(()=>qa({start:n.value,end:r.value}).map(p=>({value:p,key:String(ft(p)),display:ft(p),selected:!!o.selected&&ft(p)===ft(o.selected),disabled:!l(p,o.lowerLimit,o.upperLimit)}))),s=e.computed(()=>{const p=ft(n.value),h=ft(r.value);return`${p} - ${h}`}),i=e.computed(()=>o.lowerLimit&&(xn(o.lowerLimit)===xn(o.pageDate)||Jt(o.pageDate,o.lowerLimit))),c=e.computed(()=>o.upperLimit&&(xn(o.upperLimit)===xn(o.pageDate)||Qt(o.pageDate,o.upperLimit)));return{years:a,heading:s,leftDisabled:i,rightDisabled:c,previousPage:()=>t("update:pageDate",zo(o.pageDate,10)),nextPage:()=>t("update:pageDate",kn(o.pageDate,10))}}});function ps(o,t,n,r,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{columnCount:2,leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,items:o.years,viewMode:"year",onLeft:o.previousPage,onRight:o.nextPage,onElementClick:t[0]||(t[0]=i=>o.$emit("select",i))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const ms=ve(us,[["render",ps]]),fs=e.defineComponent({components:{PickerPopup:vn},emits:{"update:pageDate":o=>Xe(o),select:o=>Xe(o),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},format:{type:String,required:!1,default:"LLL"},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(o,{emit:t}){const n=e.computed(()=>jo(o.pageDate)),r=e.computed(()=>Uo(o.pageDate)),l=e.computed(()=>h=>en(h,o.format)),a=(h,y,f)=>!y&&!f?!0:!(y&&Jt(h,no(y))||f&&Qt(h,oo(f))),s=e.computed(()=>Ha({start:n.value,end:r.value}).map(h=>({value:h,display:l.value(h),key:l.value(h),selected:!!o.selected&&ao(o.selected,h),disabled:!a(h,o.lowerLimit,o.upperLimit)}))),i=e.computed(()=>ft(n.value)),c=e.computed(()=>o.lowerLimit&&(Ho(o.lowerLimit,o.pageDate)||Jt(o.pageDate,o.lowerLimit))),d=e.computed(()=>o.upperLimit&&(Ho(o.upperLimit,o.pageDate)||Qt(o.pageDate,o.upperLimit)));return{months:s,heading:i,leftDisabled:c,rightDisabled:d,previousPage:()=>t("update:pageDate",zo(o.pageDate,1)),nextPage:()=>t("update:pageDate",kn(o.pageDate,1))}}});function hs(o,t,n,r,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",columnCount:3,items:o.months,leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,viewMode:"month",onLeft:o.previousPage,onRight:o.nextPage,onHeading:t[0]||(t[0]=i=>o.$emit("back")),onElementClick:t[1]||(t[1]=i=>o.$emit("select",i))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),_:1},8,["items","leftDisabled","rightDisabled","onLeft","onRight"])}const gs=ve(fs,[["render",hs]]),ys=e.defineComponent({components:{PickerPopup:vn},emits:{"update:pageDate":o=>Xe(o),select:o=>Xe(o),back:()=>!0,today:()=>!0,clear:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},format:{type:String,required:!1,default:"dd"},headingFormat:{type:String,required:!1,default:"LLLL yyyy"},weekdayFormat:{type:String,required:!1,default:"EE"},weekStartsOn:{type:Number,required:!1,default:1,validator:o=>typeof o=="number"&&Number.isInteger(o)&&o>=0&&o<=6},customWeekdays:{type:Array,required:!1},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1},disabledDates:{type:Object,required:!1},allowOutsideInterval:{type:Boolean,required:!1,default:!1}},setup(o,{emit:t}){const n=e.computed(()=>b=>C=>en(C,b)),r=e.computed(()=>no(o.pageDate)),l=e.computed(()=>oo(o.pageDate)),a=e.computed(()=>({start:r.value,end:l.value})),s=e.computed(()=>({start:lo(r.value,o.weekStartsOn),end:Ka(l.value,o.weekStartsOn)})),i=e.computed(()=>o.customWeekdays?.length===7?o.customWeekdays:null),c=e.computed(()=>{const b=o.weekStartsOn,C=i.value;if(C)return Array.from({length:7}).map((_,N)=>C[(b+N)%7]);const x=n.value(o.weekdayFormat);return Array.from(Array(7)).map((_,N)=>(b+N)%7).map(_=>Wa(new Date,_,o.weekStartsOn)).map(x)}),d=(b,C,x,_)=>_?.dates?.some(N=>wn(b,N))||_?.predicate?.(b)?!1:!C&&!x?!0:!(C&&Jt(b,Ot(C))||x&&Qt(b,Zt(x))),m=e.computed(()=>{const b=new Date,C=n.value(o.format);return Ua(s.value).map(x=>({value:x,display:C(x),selected:!!o.selected&&wn(o.selected,x),current:wn(b,x),disabled:!o.allowOutsideInterval&&!Ya(x,a.value)||!d(x,o.lowerLimit,o.upperLimit,o.disabledDates),key:n.value("yyyy-MM-dd")(x)}))}),p=e.computed(()=>n.value(o.headingFormat)(o.pageDate)),h=e.computed(()=>o.lowerLimit&&(ao(o.lowerLimit,o.pageDate)||Jt(o.pageDate,o.lowerLimit))),y=e.computed(()=>o.upperLimit&&(ao(o.upperLimit,o.pageDate)||Qt(o.pageDate,o.upperLimit)));return{weekDays:c,days:m,heading:p,leftDisabled:h,rightDisabled:y,previousPage:()=>t("update:pageDate",Pa(o.pageDate)),nextPage:()=>t("update:pageDate",ro(o.pageDate,1))}}});function bs(o,t,n,r,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,items:o.days,showButtonBar:!0,viewMode:"day",onLeft:o.previousPage,onRight:o.nextPage,onHeading:t[0]||(t[0]=i=>o.$emit("back")),onElementClick:t[1]||(t[1]=i=>o.$emit("select",i)),onToday:t[2]||(t[2]=i=>o.$emit("today")),onClear:t[3]||(t[3]=i=>o.$emit("clear"))},e.createSlots({heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),subheading:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.weekDays,(i,c)=>(e.openBlock(),e.createElementBlock("span",{key:i,class:e.normalizeClass(`v3dp__subheading__weekday__${c}`)},e.toDisplayString(i),3))),128))]),_:2},[o.$slots["after-calendar"]?{name:"after-calendar",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"after-calendar")]),key:"0"}:void 0]),1032,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const ks=ve(ys,[["render",bs]]),xs=e.defineComponent({components:{PickerPopup:vn,ChevronUp:H.ChevronUp,ChevronDown:H.ChevronDown},emits:{select:o=>Xe(o),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},visible:{type:Boolean,required:!0},disabledTime:{type:Object,required:!1},embedded:{type:Boolean,default:!1}},setup(o,{emit:t}){const n=e.computed(()=>o.pageDate??o.selected),r=e.ref(n.value.getHours()),l=e.ref(n.value.getMinutes());e.watch(()=>o.selected,y=>{let f=0,k=0;y&&(f=y.getHours(),k=y.getMinutes()),r.value=f,l.value=k});const a=(y,f)=>{const k=Ja(new Date(n.value.getTime()),{hours:y,minutes:f,seconds:0});p(k)&&(r.value=y,l.value=f,t("select",k))},s=(y,f)=>y<0?f:y>f?0:y,i=()=>a(s(r.value+1,23),l.value),c=()=>a(s(r.value-1,23),l.value),d=()=>a(r.value,s(l.value+1,59)),m=()=>a(r.value,s(l.value-1,59)),p=y=>!(o.disabledTime?.dates?.some(f=>qo(y,f)&&Ga(y,f))||o.disabledTime?.predicate?.(y));return{hours:r,minutes:l,padStartZero:y=>`0${y}`.substr(-2),isEnabled:p,incrementHours:i,decrementHours:c,incrementMinutes:d,decrementMinutes:m}}}),ws={key:0,class:"p-datepicker-time-picker mt-2 pt-2 border-t border-slate-200 flex items-center justify-center gap-2 py-1"},_s={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},vs={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Cs={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},Es={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Bs={class:"col-span-2"},Vs={class:"p-datepicker-time-picker flex items-center justify-center gap-2 py-1"},Ss={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},$s={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Ns={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},As={class:"min-w-8 text-center text-sm font-medium text-slate-700"};function Ms(o,t,n,r,l,a){const s=e.resolveComponent("ChevronUp"),i=e.resolveComponent("ChevronDown"),c=e.resolveComponent("picker-popup");return o.embedded?(e.openBlock(),e.createElementBlock("div",ws,[e.createElementVNode("div",_s,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[0]||(t[0]=e.withModifiers((...d)=>o.incrementHours&&o.incrementHours(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",vs,e.toDisplayString(o.padStartZero(o.hours)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[1]||(t[1]=e.withModifiers((...d)=>o.decrementHours&&o.decrementHours(...d),["stop","prevent"]))},[e.createVNode(i,{class:"h-3.5 w-3.5"})])]),t[8]||(t[8]=e.createElementVNode("div",{class:"text-base font-medium text-slate-500"},":",-1)),e.createElementVNode("div",Cs,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[2]||(t[2]=e.withModifiers((...d)=>o.incrementMinutes&&o.incrementMinutes(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",Es,e.toDisplayString(o.padStartZero(o.minutes)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[3]||(t[3]=e.withModifiers((...d)=>o.decrementMinutes&&o.decrementMinutes(...d),["stop","prevent"]))},[e.createVNode(i,{class:"h-3.5 w-3.5"})])])])):(e.openBlock(),e.createBlock(c,{key:1,hideHeader:!0,columnCount:2,viewMode:"time"},{body:e.withCtx(()=>[e.createElementVNode("div",Bs,[e.createElementVNode("div",Vs,[e.createElementVNode("div",Ss,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[4]||(t[4]=e.withModifiers((...d)=>o.incrementHours&&o.incrementHours(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",$s,e.toDisplayString(o.padStartZero(o.hours)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[5]||(t[5]=e.withModifiers((...d)=>o.decrementHours&&o.decrementHours(...d),["stop","prevent"]))},[e.createVNode(i,{class:"h-3.5 w-3.5"})])]),t[9]||(t[9]=e.createElementVNode("div",{class:"text-base font-medium text-slate-500"},":",-1)),e.createElementVNode("div",Ns,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[6]||(t[6]=e.withModifiers((...d)=>o.incrementMinutes&&o.incrementMinutes(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",As,e.toDisplayString(o.padStartZero(o.minutes)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[7]||(t[7]=e.withModifiers((...d)=>o.decrementMinutes&&o.decrementMinutes(...d),["stop","prevent"]))},[e.createVNode(i,{class:"h-3.5 w-3.5"})])])])])]),_:1}))}const Fs=ve(xs,[["render",Ms]]),Cn=["time","day","month","year"],Ds=(o,t,n=void 0)=>{let r=n||new Date;const l=Xa([o,r]);l&&(r=l);const a=Za([t,r]);return a&&(r=a),r},Ts=e.defineComponent({components:{YearPicker:ms,MonthPicker:gs,DayPicker:ks,TimePicker:Fs,CalendarDays:H.CalendarDays,Clock3:H.Clock3,X:H.X},inheritAttrs:!1,props:{placeholder:{type:String,default:""},modelValue:{type:Date,required:!1},disabledDates:{type:Object,required:!1},allowOutsideInterval:{type:Boolean,required:!1,default:!1},disabledTime:{type:Object,required:!1},upperLimit:{type:Date,required:!1},lowerLimit:{type:Date,required:!1},startingView:{type:String,required:!1,default:"day",validate:o=>typeof o=="string"&&Cn.includes(o)},startingViewDate:{type:Date,required:!1,default:()=>new Date},dayPickerHeadingFormat:{type:String,required:!1,default:"LLLL yyyy"},monthListFormat:{type:String,required:!1,default:"LLL"},weekdayFormat:{type:String,required:!1,default:"EE"},dayFormat:{type:String,required:!1,default:"dd"},inputFormat:{type:String,required:!1,default:"yyyy-MM-dd"},weekDayNames:{type:Array,required:!1},weekStartsOn:{type:Number,required:!1,default:1,validator:o=>[0,1,2,3,4,5,6].includes(o)},disabled:{type:Boolean,required:!1,default:!1},clearable:{type:Boolean,required:!1,default:!1},typeable:{type:Boolean,required:!1,default:!1},minimumView:{type:String,required:!1,default:"day",validate:o=>typeof o=="string"&&Cn.includes(o)}},emits:{"update:modelValue":o=>o==null||Xe(o),decadePageChanged:o=>!0,yearPageChanged:o=>!0,monthPageChanged:o=>!0,opened:()=>!0,closed:()=>!0},setup(o,{emit:t}){const n=e.ref("none"),r=e.ref(o.startingViewDate),l=e.ref(null),a=e.ref(null),s=e.ref(null),i=e.ref({}),c=e.ref(!1),d=e.ref(!1);let m=null;const p=e.ref(""),h=ne=>{const le=ne.replace(/[a-zA-Z]/g,"0");return/0/.test(le)?le:""},y=e.computed(()=>h(o.inputFormat));let f=null,k=null;const b=()=>{f?.destroy(),f=null},C=async()=>{if(!k){const{default:ne}=await Promise.resolve().then(()=>Pn);k=ne}return k},x=()=>{f&&f.value!==p.value&&(f.value=p.value??"")},_=ne=>{const le=ne&&Xe(ne)?en(ne,o.inputFormat):"";p.value!==le&&(p.value=le),x()},N=async()=>{if(b(),!a.value||!y.value)return;f=(await C())(a.value,{mask:y.value,lazy:!0,overwrite:!1}),x()};e.watch(()=>o.modelValue,ne=>{d.value&&o.typeable||_(ne)},{immediate:!0}),e.watch(()=>o.inputFormat,()=>{d.value&&o.typeable||_(o.modelValue)}),e.onMounted(()=>{y.value&&e.nextTick(()=>{N()})}),e.onBeforeUnmount(()=>{b()}),e.watch(y,ne=>{ne?e.nextTick(()=>{N()}):b()});const U=e.computed(()=>n.value!=="none"),Y=e.computed(()=>o.startingView==="time"&&o.minimumView==="time"),L=e.computed(()=>o.startingView==="day"&&o.minimumView==="time"),E=ne=>{o.disabled||(U.value||(r.value=o.modelValue||Ds(o.lowerLimit,o.upperLimit,r.value),t("opened")),n.value=ne,e.nextTick(()=>Oe()))},V=()=>{U.value&&(m!==null&&(cancelAnimationFrame(m),m=null),n.value="none",t("closed"))},S=(ne="none")=>{ne==="none"?V():E(ne)};e.watchEffect(()=>{o.disabled&&V()});const O=(ne,le)=>{r.value=le,ne==="year"?t("decadePageChanged",le):ne==="month"?t("yearPageChanged",le):ne==="day"&&t("monthPageChanged",le)},B=ne=>{r.value=ne,o.minimumView==="year"?(V(),_(ne),t("update:modelValue",ne)):E("month")},T=ne=>{r.value=ne,o.minimumView==="month"?(V(),_(ne),t("update:modelValue",ne)):E("day")},A=ne=>{const le=L.value?(()=>{const be=o.modelValue||r.value||new Date,Ee=new Date(ne);return Ee.setHours(be.getHours(),be.getMinutes(),0,0),Ee})():ne;r.value=le,o.minimumView==="day"?(V(),_(le),t("update:modelValue",le)):L.value?(_(le),t("update:modelValue",le),E("day")):E("time")},W=ne=>{_(ne),t("update:modelValue",ne)},X=()=>{A(new Date)},ee=()=>{o.clearable&&(V(),_(null),t("update:modelValue",null),r.value=o.startingViewDate)},q=()=>{U.value||E(se.value)},Q=()=>{d.value=!0,c.value=!1,E(se.value)},F=()=>{d.value=!1,o.typeable&&te({closeOnSuccess:!1,revertOnInvalid:!0})},j=ne=>{const le=ne.target;if(p.value=le?.value??"",!o.typeable)return;const be=Wo(p.value,o.inputFormat);be&&p.value===en(be,o.inputFormat)&&(r.value=be)},te=({closeOnSuccess:ne,revertOnInvalid:le})=>{const be=a.value?.value??p.value,Ee=Wo(be,o.inputFormat);return!!Ee&&be===en(Ee,o.inputFormat)&&Ee?(r.value=Ee,_(Ee),t("update:modelValue",Ee),ne&&V(),!0):(_(o.modelValue),!1)},Z=ne=>{const le=ne.keyCode?ne.keyCode:ne.which,be=le===27,Ee=le===13;if(be){V(),a.value?.blur();return}o.typeable&&Ee&&(te({closeOnSuccess:!0,revertOnInvalid:!0})||a.value?.focus())},se=e.computed(()=>{const ne=Cn.indexOf(o.startingView),le=Cn.indexOf(o.minimumView);return ne<le?o.minimumView:o.startingView}),ke=e.computed(()=>o.weekDayNames?.length===7?o.weekDayNames:void 0),oe=()=>o.startingView==="time"&&o.minimumView==="time"?null:E("day"),ye=()=>{if(!a.value||!s.value)return;const ne=4,le=8,be=a.value.getBoundingClientRect(),Ee=s.value.getBoundingClientRect(),We=s.value.firstElementChild?.getBoundingClientRect(),I=window.innerWidth,J=window.innerHeight,ae=window.scrollX||window.pageXOffset,ue=window.scrollY||window.pageYOffset,he=Math.max(160,J-le*2),Ae=Math.min(Ee.height||0,he),Te=J-be.bottom-ne-le,Fe=be.top-ne-le,P=Te<Ae&&Fe>Te;let v=P?be.top-ne-Ae:be.bottom+ne;v=Math.max(le,Math.min(v,J-le-Ae));const M=We?.width||Ee.width||268;let R=be.left;R+M>I-le&&(R=I-le-M),R<le&&(R=le);const ie=P?Math.max(120,be.top-ne-le):Math.max(120,J-be.bottom-ne-le);i.value={position:"absolute",top:`${Math.round(v+ue)}px`,left:`${Math.round(R+ae)}px`,maxHeight:`${Math.round(Math.min(he,ie))}px`,overflowX:"hidden",overflowY:"auto",zIndex:"2147483000"},L.value&&n.value==="day"&&(i.value.minWidth="345px")},Ve=(ne,le)=>ne.bottom>le.top&&ne.top<le.bottom&&ne.right>le.left&&ne.left<le.right,xe=ne=>{const le=[];let be=ne.parentElement;for(;be;){const Ee=window.getComputedStyle(be),ze=Ee.overflowY,We=Ee.overflowX,I=["auto","scroll","hidden","clip"].includes(ze),J=["auto","scroll","hidden","clip"].includes(We);(I||J)&&le.push(be),be=be.parentElement}return le},Le=()=>{if(!a.value)return!1;const ne=a.value.getBoundingClientRect(),le=new DOMRect(0,0,window.innerWidth,window.innerHeight);return Ve(ne,le)?xe(a.value).every(Ee=>Ve(ne,Ee.getBoundingClientRect())):!1},Ne=()=>{if(U.value){if(!Le()){c.value=!0,V();return}Oe();return}c.value&&document.activeElement===a.value&&Le()&&(c.value=!1,E(se.value))};e.watch(n,()=>{U.value&&e.nextTick(()=>Oe())});const Oe=()=>{ye(),m!==null&&cancelAnimationFrame(m),m=requestAnimationFrame(()=>{ye(),m=null})};e.onMounted(()=>{window.addEventListener("resize",Ne),window.addEventListener("scroll",Ne,!0),document.addEventListener("pointerdown",$e,!0)}),e.onBeforeUnmount(()=>{m!==null&&(cancelAnimationFrame(m),m=null),window.removeEventListener("resize",Ne),window.removeEventListener("scroll",Ne,!0),document.removeEventListener("pointerdown",$e,!0)});const $e=ne=>{if(n.value==="none")return;const le=ne.target;if(!le)return;const be=!!l.value?.contains(le),Ee=!!s.value?.contains(le);!be&&!Ee&&(c.value=!1,V())};return{rootRef:l,blur:F,focus:Q,click:q,input:p,inputRef:a,pageDate:r,renderView:S,updatePageDate:O,selectYear:B,selectMonth:T,selectDay:A,selectToday:X,selectTime:W,keyUp:Z,onInput:j,isTimeOnlyMode:Y,isDateTimeMode:L,normalizedWeekdayNames:ke,viewShown:n,goBackFromTimepicker:oe,clearModelValue:ee,initialView:se,log:ne=>console.log(ne),popupAnchorStyle:i,popupRef:s}}}),Ls={ref:"rootRef",class:"relative"},Is={class:"p-datepicker p-component p-inputwrapper relative"},Os=["readonly","value","placeholder","disabled","tabindex"],Rs={class:"p-datepicker-input-icon-container absolute right-2 top-1/2 -translate-y-1/2 pointer-events-none text-slate-400"},Ps={class:"absolute right-8 top-1/2 -translate-y-1/2"};function zs(o,t,n,r,l,a){const s=e.resolveComponent("Clock3"),i=e.resolveComponent("CalendarDays"),c=e.resolveComponent("X"),d=e.resolveComponent("year-picker"),m=e.resolveComponent("month-picker"),p=e.resolveComponent("time-picker"),h=e.resolveComponent("day-picker");return e.openBlock(),e.createElementBlock("div",Ls,[e.createElementVNode("div",Is,[e.createElementVNode("input",e.mergeProps({type:"text",ref:"inputRef",class:"p-inputtext p-component p-datepicker-input",readonly:!o.typeable,value:o.input},o.$attrs,{placeholder:o.placeholder,disabled:o.disabled,tabindex:o.disabled?-1:0,onInput:t[0]||(t[0]=(...y)=>o.onInput&&o.onInput(...y)),onKeyup:t[1]||(t[1]=(...y)=>o.keyUp&&o.keyUp(...y)),onBlur:t[2]||(t[2]=(...y)=>o.blur&&o.blur(...y)),onFocus:t[3]||(t[3]=(...y)=>o.focus&&o.focus(...y)),onClick:t[4]||(t[4]=(...y)=>o.click&&o.click(...y))}),null,16,Os),e.createElementVNode("span",Rs,[o.isTimeOnlyMode?(e.openBlock(),e.createBlock(s,{key:0,class:"h-4 w-4"})):(e.openBlock(),e.createBlock(i,{key:1,class:"h-4 w-4"}))]),e.withDirectives(e.createElementVNode("div",Ps,[e.renderSlot(o.$slots,"clear",{onClear:o.clearModelValue},()=>[e.createElementVNode("button",{type:"button",class:"inline-flex h-5 w-5 items-center justify-center rounded-full text-slate-400 transition-colors hover:bg-slate-100 hover:text-slate-600 focus:outline-none focus:ring-2 focus:ring-blue-500/30","aria-label":"Очистити дату",onClick:t[5]||(t[5]=y=>o.clearModelValue())},[e.createVNode(c,{class:"h-3 w-3"})])])],512),[[e.vShow,o.clearable&&o.modelValue]])]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.withDirectives(e.createElementVNode("div",{ref:"popupRef",style:e.normalizeStyle(o.popupAnchorStyle)},[e.withDirectives(e.createVNode(d,{pageDate:o.pageDate,"onUpdate:pageDate":t[6]||(t[6]=y=>o.updatePageDate("year",y)),selected:o.modelValue,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,onSelect:o.selectYear},null,8,["pageDate","selected","lowerLimit","upperLimit","onSelect"]),[[e.vShow,o.viewShown==="year"]]),e.withDirectives(e.createVNode(m,{pageDate:o.pageDate,"onUpdate:pageDate":t[7]||(t[7]=y=>o.updatePageDate("month",y)),selected:o.modelValue,onSelect:o.selectMonth,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,format:o.monthListFormat,onBack:t[8]||(t[8]=y=>o.viewShown="year")},null,8,["pageDate","selected","onSelect","lowerLimit","upperLimit","format"]),[[e.vShow,o.viewShown==="month"]]),e.withDirectives(e.createVNode(h,{pageDate:o.pageDate,"onUpdate:pageDate":t[9]||(t[9]=y=>o.updatePageDate("day",y)),selected:o.modelValue,weekStartsOn:o.weekStartsOn,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,headingFormat:o.dayPickerHeadingFormat,disabledDates:o.disabledDates,weekdayFormat:o.weekdayFormat,"allow-outside-interval":o.allowOutsideInterval,format:o.dayFormat,"custom-weekdays":o.normalizedWeekdayNames,onSelect:o.selectDay,onToday:o.selectToday,onClear:o.clearModelValue,onBack:t[10]||(t[10]=y=>o.viewShown="month")},e.createSlots({_:2},[o.isDateTimeMode?{name:"after-calendar",fn:e.withCtx(()=>[e.createVNode(p,{embedded:!0,pageDate:o.pageDate,visible:o.viewShown==="day"&&o.isDateTimeMode,selected:o.modelValue,disabledTime:o.disabledTime,onSelect:o.selectTime,onBack:o.goBackFromTimepicker},null,8,["pageDate","visible","selected","disabledTime","onSelect","onBack"])]),key:"0"}:void 0]),1032,["pageDate","selected","weekStartsOn","lowerLimit","upperLimit","headingFormat","disabledDates","weekdayFormat","allow-outside-interval","format","custom-weekdays","onSelect","onToday","onClear"]),[[e.vShow,o.viewShown==="day"]]),e.withDirectives(e.createVNode(p,{pageDate:o.pageDate,visible:o.viewShown==="time",selected:o.modelValue,disabledTime:o.disabledTime,onSelect:o.selectTime,onBack:o.goBackFromTimepicker},null,8,["pageDate","visible","selected","disabledTime","onSelect","onBack"]),[[e.vShow,o.viewShown==="time"&&!o.isDateTimeMode]])],4),[[e.vShow,o.viewShown!=="none"]])]))],512)}const js=ve(Ts,[["render",zs]]),Go=ve(e.defineComponent({__name:"vs-input-date2",props:{clearable:{type:Boolean,default:!0},now:{type:Boolean},editable:{type:Boolean,default:!0},time:{type:Boolean},isInfinity:{type:Boolean},dateFormat:{},mode:{default:"date"},weekStart:{},dayNames:{},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,{inputClass:l}=et(n.style),a=e.getCurrentInstance(),s=e.computed(()=>n.mode?n.mode:n.time?"datetime":"date"),i=e.computed(()=>["py-1.5 px-3 block w-full placeholder:text-[#767f8f] bg-white",l.value,n.customClass,{"!border-red-600":n.error}]),c=e.computed(()=>!n.modelValue&&n.now?new Date:null),d=e.computed({get:()=>L(n.modelValue??c.value,s.value)||void 0,set:F=>r("update:modelValue",E(F,s.value))}),m=["Пн","Вт","Ср","Чт","Пт","Сб","Нд"],p=e.computed(()=>{if(n.dayNames?.length)return n.dayNames.length===7?n.dayNames:m}),h=e.computed(()=>{const F=n.weekStart,j=typeof F=="string"?Number(F):F;return j===void 0||Number.isNaN(j)?1:Math.min(6,Math.max(0,j))}),y=e.computed(()=>{switch(s.value){case"time":return{startingView:"time",minimumView:"time"};case"month":return{startingView:"month",minimumView:"month"};case"year":return{startingView:"year",minimumView:"year"};case"datetime":return{startingView:"day",minimumView:"time"};default:return{startingView:"day",minimumView:"day"}}}),f={date:"dd.MM.yyyy",datetime:"dd.MM.yyyy HH:mm",month:"MM.yyyy",time:"HH:mm",week:"dd.MM.yyyy",year:"yyyy"};function k(){const F=a?.appContext?.config?.globalProperties?.$i18n?.locale;if(typeof F=="string"&&F)return F;if(F&&typeof F=="object"&&"value"in F&&F.value)return String(F.value);if(typeof localStorage<"u"){const j=localStorage.getItem("locale")||localStorage.getItem("language");if(j)return j}return"uk"}function b(){const j=a?.appContext?.config?.globalProperties?.$settings?.dateFormat;if(!j)return"";if(typeof j=="string")return j;if(typeof j=="object"){const te=k();return j[te]||j[te.split("-")[0]]||j.uk||j.en||""}return""}function C(F){return F?F.replaceAll("dd","__DAY2__").replaceAll("d","__DAY1__").replaceAll("mm","__MONTH2__").replaceAll("m","__MONTH1__").replaceAll("yy","__YEAR2__").replaceAll("y","__YEAR1__").replaceAll("__DAY2__","dd").replaceAll("__DAY1__","d").replaceAll("__MONTH2__","MM").replaceAll("__MONTH1__","M").replaceAll("__YEAR2__","yy").replaceAll("__YEAR1__","yyyy"):""}const x=e.computed(()=>{const F=f[s.value]||"dd.MM.yyyy";if(s.value==="time")return F;const j=n.dateFormat||b();if(!j)return F;const te=C(j);return te?s.value==="datetime"?`${te} HH:mm`:te:F});function _(F,j){return F?j==="week"?"рррр-тиждень":F.replaceAll("yyyy","рррр").replaceAll("yy","рр").replaceAll("MM","мм").replaceAll("M","м").replaceAll("dd","дд").replaceAll("d","д").replaceAll("HH","гг").replaceAll("H","г").replaceAll("mm",j==="time"||j==="datetime"?"хх":"мм"):""}const N={date:"дд.мм.рррр",datetime:"дд.мм.рррр гг:хх",month:"мм.рррр",week:"рррр-тиждень",time:"гг:хх",year:"рррр"},U=e.computed(()=>{if(n.placeholder)return n.placeholder;const F=s.value;return _(x.value,F)||N[F]||""}),Y=e.ref(!1);e.watch(()=>n.modelValue,F=>{F?Y.value=!0:n.now||(Y.value=!1)},{immediate:!0}),e.watchEffect(()=>{n.now&&!n.modelValue&&!Y.value&&(r("update:modelValue",E(new Date,s.value)),Y.value=!0)}),e.watch(x,()=>{r("update:modelValue",E(d.value,s.value))});function L(F,j){if(!F)return null;if(F instanceof Date&&!Number.isNaN(F.getTime()))return F;if(typeof F!="string")return null;switch(j){case"datetime":return B(F);case"time":return W(F);case"month":return T(F);case"year":return A(F);case"week":return X(F);case"date":default:return O(F)}}function E(F,j){if(!F)return null;const te=F instanceof Date?F:L(F,j);if(!te)return null;switch(j){case"datetime":return`${V(te)}T${S(te)}`;case"time":return S(te);case"month":return`${te.getFullYear()}-${Q(te.getMonth()+1)}`;case"year":return`${te.getFullYear()}`;case"week":{const{year:Z,week:se}=ee(te);return`${Z}-W${Q(se)}`}case"date":default:return V(te)}}function V(F){return`${F.getFullYear()}-${Q(F.getMonth()+1)}-${Q(F.getDate())}`}function S(F){return`${Q(F.getHours())}:${Q(F.getMinutes())}`}function O(F){const j=F.split("-");if(j.length<3)return null;const[te,Z,se]=j.map(Number);return!te||!Z||!se?null:new Date(te,Z-1,se)}function B(F){const j=F.includes("T")?F:F.replace(" ","T"),te=new Date(j);return Number.isNaN(te.getTime())?null:te}function T(F){const[j,te]=F.split("-").map(Number);return!j||Number.isNaN(te)?null:new Date(j,(te||1)-1,1)}function A(F){const j=Number(F);return j?new Date(j,0,1):null}function W(F){const j=F.match(/^(\d{1,2}):(\d{2})$/);if(!j)return null;const[,te,Z]=j,se=new Date;return se.setHours(Number(te),Number(Z),0,0),se}function X(F){const j=F.match(/^(\d{4})-W(\d{2})$/);if(!j)return null;const[,te,Z]=j,se=Number(Z);return q(Number(te),se)}function ee(F){const j=new Date(Date.UTC(F.getFullYear(),F.getMonth(),F.getDate())),te=j.getUTCDay()||7;j.setUTCDate(j.getUTCDate()+4-te);const Z=new Date(Date.UTC(j.getUTCFullYear(),0,1)),se=Math.ceil(((j.getTime()-Z.getTime())/864e5+1)/7);return{year:j.getUTCFullYear(),week:se}}function q(F,j){if(!F||!j)return null;const te=new Date(F,0,1+(j-1)*7),Z=te.getDay(),se=te;return Z<=4?se.setDate(te.getDate()-te.getDay()+1):se.setDate(te.getDate()+8-te.getDay()),se}function Q(F){return String(F).padStart(2,"0")}return(F,j)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-date-picker",n.customClass])},[e.createVNode(js,{modelValue:d.value,"onUpdate:modelValue":j[0]||(j[0]=te=>d.value=te),placeholder:U.value,disabled:n.disabled,clearable:n.clearable,typeable:n.editable,"week-day-names":p.value,"week-starts-on":h.value,"starting-view":y.value.startingView,"minimum-view":y.value.minimumView,"input-format":x.value,name:n.name,class:e.normalizeClass(i.value)},null,8,["modelValue","placeholder","disabled","clearable","typeable","week-day-names","week-starts-on","starting-view","minimum-view","input-format","name","class"])],2))}}),[["__scopeId","data-v-77e949dd"]]),Us=(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},Yo=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=Us(c,i);return(await fetch(d,{method:"POST",body:n}).then(p=>p.json()))?.result}catch(n){return ge.notify({type:"error",title:"Помилка!",message:"Сталась помилка під час завантаження файлу",position:"right-bottom"}),console.error("Сталась помилка завантаження файлу",n),null}},Hs=async o=>{try{return await fetch(`file/delete${o}`),!0}catch(t){return console.error(t),!1}},Xo=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)}},qs=o=>{if(!o)return"";const t=o?.split(".");return t[t.length-1]},Ks=o=>{const t=qs(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},Ws=["title"],Gs={class:"absolute hidden top-0 right-0 flex items-center gap-x-2 w-full h-full justify-center"},so=ve(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;Hs(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(Ks)(l.value)),{src:l.value,alt:"file",class:"w-full h-full object-cover cursor-pointer",onClick:d[0]||(d[0]=m=>e.unref(Xo)(l.value))},null,8,["src"])),e.createElementVNode("div",Gs,[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]=m=>e.unref(Xo)(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,Ws))}}),[["__scopeId","data-v-89357cbb"]]),Ys={class:"flex items-center gap-x-2"},Xs=["accept","multiple","disabled"],Zs={key:1,class:"flex items-center flex-wrap gap-2"},Js={key:1,class:"loader"},Qs={key:1,class:"loader"},Zo=ve(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):[]),m=x=>{if(n.max_size&&x.size>n.max_size*1024*1024){const _=(x.size/1048576).toFixed(2);return ge.notify({type:"error",title:"Помилка!",message:`Файл "${x.name}" занадто великий. Максимальний розмір: ${n.max_size} МБ, розмір файлу: ${_} МБ`,position:"right-bottom"}),!1}return!0},p=x=>{if(!d.value.length)return!0;const _=`.${x.name.split(".").pop()?.toLowerCase()||""}`,N=d.value.includes(_);return N||ge.notify({type:"error",title:"Помилка!",message:`Неприпустимий формат файлу "${x.name}". Дозволені формати: ${d.value.join(", ")}`,position:"right-bottom"}),N},h=e.computed(()=>{const x={},_=[];if(!n.customParams?.length)return{params:x,missingSources:_};const N=c?.value??{};return n.customParams.forEach(U=>{if(!U)return;const[Y,L]=U.split("="),E=Y?.trim(),V=L?.trim();if(!E||!V)return;const S=N[V];if(S==null||S===""){_.push(V);return}x[E]=S}),{params:x,missingSources:_}}),y=()=>{const{params:x}=h.value;return{api:n.api,customParams:Object.keys(x).length?x:void 0}},f=()=>{const x=h.value.missingSources;if(!x.length)return!0;const _=x.join(", ");return ge.notify({type:"warning",title:"Заповніть поля",message:`Поля (${_}) необхідні для завантаження файлу`,position:"right-bottom"}),!1},k=x=>{ge.notify({type:"error",title:"Помилка завантаження",message:x||"Не вдалося завантажити файл. Спробуйте ще раз.",position:"right-bottom"})},b=()=>{n.disabled||i.value||f()&&s.value?.click()},C=async x=>{const{files:_}=x.target;if(!_||_.length===0)return;if(!f()){s.value&&(s.value.value="");return}const N=Array.from(_);if(n.max_size&&N.filter(L=>!m(L)).length>0){s.value&&(s.value.value="");return}if(N.filter(Y=>!p(Y)).length>0){s.value&&(s.value.value="");return}i.value=!0;try{if(n.multiple){const Y=Array.from(_).map(async O=>await Yo(O,y())),L=await Promise.all(Y),E=L.filter(O=>O?.file_path);if(E.length===0){k();return}E.length<L.length&&k("Деякі файли не вдалося завантажити. Перевірте їх та спробуйте знову.");const V=E.map(O=>O.file_path),S=Array.isArray(r.value)?r.value:[];r.value=[...S,...V],l("change",r.value)}else{const Y=_[0],L=await Yo(Y,y());if(!L?.file_path){k();return}const E=L.file_path;r.value=E,l("change",E)}}catch(Y){const L=Y?.message||void 0;k(L)}finally{i.value=!1,s.value&&(s.value.value="")}};return(x,_)=>(e.openBlock(),e.createElementBlock("div",Ys,[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,Xs),!x.multiple&&r.value&&!Array.isArray(r.value)?(e.openBlock(),e.createBlock(so,{key:0,item:r.value,value:r.value,"onUpdate:value":_[0]||(_[0]=N=>r.value=N)},null,8,["item","value"])):x.multiple?(e.openBlock(),e.createElementBlock("div",Zs,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(N,U)=>(e.openBlock(),e.createBlock(so,{multiple:x.multiple,key:U,value:r.value,"onUpdate:value":_[1]||(_[1]=Y=>r.value=Y),item:N},null,8,["multiple","value","item"]))),128)),e.createElementVNode("div",{onClick:b,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",Js)):(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:b,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",Qs)):(e.openBlock(),e.createBlock(e.unref(H.Plus),{key:0,class:"h-4 w-4"}))],2))]))}}),[["__scopeId","data-v-dda91e05"]]),ei={class:"vs-input-file2 flex flex-col gap-4"},ti={class:"flex items-center gap-x-2"},ni=["accept","disabled"],oi={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"},ri={key:0,class:"rounded-lg border border-[#CFD9E0] bg-white p-4 shadow-sm"},li={class:"flex items-center justify-between text-sm"},ai={class:"truncate pr-4"},si={class:"font-medium text-slate-800 truncate"},ii={class:"text-slate-500"},ci={class:"text-slate-500 whitespace-nowrap"},di={class:"mt-3 h-2 rounded-full bg-slate-100 overflow-hidden"},ui={class:"mt-3 flex flex-wrap gap-2 text-sm"},pi={key:0,class:"mt-2 text-sm text-rose-600"},mi=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),m=e.inject("values"),p=e.computed(()=>t.format?t.format.split(",").map(B=>B.trim().toLowerCase()).filter(Boolean):[]),h=e.computed(()=>!l.value||!l.value.size?0:Math.min(100,Math.round(s.value/l.value.size*100))),y=e.computed(()=>l.value?`${b(s.value)} / ${b(l.value.size)}`:""),f=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"),k=()=>{t.disabled||i.value||N()&&r.value?.click()},b=B=>{if(!Number.isFinite(B))return"0 B";const T=["B","KB","MB","GB"];let A=0,W=B;for(;W>=1024&&A<T.length-1;)W/=1024,A+=1;return`${W.toFixed(A===0?0:1)} ${T[A]}`},C=B=>{if(!t.max_size)return!0;const T=t.max_size*1024*1024;return B.size>T?(ge.notify({type:"error",title:"Файл занадто великий",message:`Максимальний розмір ${t.max_size} МБ`,position:"right-bottom"}),!1):!0},x=B=>{if(!p.value.length)return!0;const T=`.${B.name.split(".").pop()?.toLowerCase()||""}`;return p.value.includes(T)?!0:(ge.notify({type:"error",title:"Непідтримуваний формат",message:`Дозволені формати: ${p.value.join(", ")}`,position:"right-bottom"}),!1)},_=e.computed(()=>{const B={},T=[];if(!t.customParams?.length)return{params:B,missing:T};const A=m?.value??{};return t.customParams.forEach(W=>{if(!W)return;const[X,ee]=W.split("="),q=X?.trim(),Q=ee?.trim();if(!q||!Q)return;const F=A[Q];F==null||F===""?T.push(Q):B[q]=F}),{params:B,missing:T}}),N=()=>_.value.missing.length?(ge.notify({type:"warning",title:"Заповніть поля",message:`Потрібні значення: ${_.value.missing.join(", ")}`,position:"right-bottom"}),!1):!0,U=B=>{const T=B.target,A=T.files?.[0];if(A){if(!N()){T.value="";return}if(!C(A)||!x(A)){T.value="";return}l.value=A,s.value=0,a.value="",c.value=""}},Y=async()=>{if(!l.value){k();return}try{c.value="";const B={id:a.value||"",fileName:l.value.name,subdir:t.subdir,size:l.value.size,..._.value.params},T=await fetch("/api/file/upload2/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(B)});if(!T.ok)throw new Error("Не вдалося ініціалізувати завантаження");const A=await T.json();a.value=A.id||a.value,s.value=A.uploaded||0,await L()}catch(B){c.value=B?.message||"Помилка при старті завантаження"}},L=async()=>{if(!(!l.value||!a.value)){i.value=!0;try{for(;s.value<l.value.size;){const B=s.value,T=Math.min(B+t.chunkSize,l.value.size),A=l.value.slice(B,T);d.value=new AbortController;const W=await fetch(`/api/file/upload2/${a.value}`,{method:"PATCH",headers:{"Content-Range":`bytes ${B}-${T-1}/${l.value.size}`},body:A,signal:d.value.signal});if(!W.ok)throw new Error("Помилка завантаження частини");const X=await W.json().catch(()=>({}));if(X.uploaded!=null?s.value=Number(X.uploaded):s.value=T,X.finished||s.value>=l.value.size){i.value=!1;const ee=X.file_path||X.url||a.value;n.value={file_id:X.file_id??a.value??ee,file_path:ee},ge.notify({type:"success",title:"Файл завантажено",message:l.value.name,position:"right-bottom"}),O();return}}}catch(B){if(B?.name==="AbortError")return;c.value=B?.message||"Помилка при завантаженні",i.value=!1}finally{d.value=null,i.value=!1}}},E=()=>{i.value&&(d.value?.abort(),d.value=null,i.value=!1)},V=async()=>{if(l.value){if(!a.value){await Y();return}await L()}},S=()=>{d.value?.abort(),d.value=null,O()},O=()=>{const B=r.value;B&&(B.value=""),l.value=null,a.value="",s.value=0,c.value=""};return(B,T)=>(e.openBlock(),e.createElementBlock("div",ei,[e.createElementVNode("div",ti,[e.createElementVNode("input",{ref_key:"fileInput",ref:r,type:"file",class:"hidden",accept:t.format,disabled:i.value||t.disabled,onChange:U},null,40,ni),n.value?(e.openBlock(),e.createBlock(so,{key:0,item:n.value,"onUpdate:item":T[0]||(T[0]=A=>n.value=A),value:n.value,"onUpdate:value":T[1]||(T[1]=A=>n.value=A)},null,8,["item","value"])):(e.openBlock(),e.createElementBlock("div",{key:1,onClick:k,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",f.value])},[i.value?(e.openBlock(),e.createElementBlock("div",oi,[T[2]||(T[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",ri,[e.createElementVNode("div",li,[e.createElementVNode("div",ai,[e.createElementVNode("div",si,e.toDisplayString(l.value.name),1),e.createElementVNode("div",ii,e.toDisplayString(b(l.value.size)),1)]),e.createElementVNode("div",ci,e.toDisplayString(y.value),1)]),e.createElementVNode("div",di,[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",ui,[!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:V}," 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:Y}," Upload ")):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"rounded border border-rose-200 px-3 py-1 text-rose-600",onClick:S}," Cancel ")]),c.value?(e.openBlock(),e.createElementBlock("p",pi,e.toDisplayString(c.value),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]))}}),io=ve(mi,[["__scopeId","data-v-62ba7299"]]),fi={class:"flex items-center justify-center h-[30px] w-[30px]"},hi={class:"max-w-[55vw]"},gi={class:"text-sm font-semibold text-gray-800 truncate dark:text-neutral-200"},yi={class:"flex items-center text-xs text-gray-500 truncate dark:text-neutral-500"},bi={class:"px-[5px]"},ki={class:""},En=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",fi,[e.createVNode(e.unref(H.FileText),{class:"icon icon-tabler icons-tabler-outline icon-tabler-file h-4 w-4"})]),e.createElementVNode("div",hi,[e.createElementVNode("p",gi,e.toDisplayString(l.item?.uploaded_name),1),e.createElementVNode("p",yi,[e.createElementVNode("span",null,e.toDisplayString(l.item?.username),1),e.withDirectives(e.createElementVNode("span",bi,"|",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",ki,e.toDisplayString(r(l.item?.size)),1)])])],64))}}),xi={class:"p-3 relative group flex items-center gap-x-3 border border-gray-200 bg-white rounded-md w-full"},wi={key:0,class:"flex w-full gap-x-3 items-center"},_i={key:1,class:"flex gap-x-3 w-full items-center"},vi={key:2,class:"flex gap-x-3 w-full items-center"},Ci=["href"],Ei={key:3,class:"flex gap-x-3 w-full items-center"},Bi={class:"lg:absolute lg:top-3 lg:end-1 opacity-100"},Vi={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"},Si={class:"inline-block"},$i={class:"inline-block"},Ni={class:"inline-block"},Ai=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 m(p){(n.item.ext==="jpg"||n.item.ext==="png")&&r("openLightbox",{item:n.item,index:p})}return(p,h)=>(e.openBlock(),e.createElementBlock("div",xi,[p.item.ext==="jpg"||p.item.ext==="png"?(e.openBlock(),e.createElementBlock("div",wi,[e.createElementVNode("div",{class:"max-w-[55vw] cursor-pointer flex gap-x-3 w-full items-center",onClick:h[0]||(h[0]=y=>m(p.index))},[e.createVNode(En,{item:p.item},null,8,["item"])])])):l(p.item)?(e.openBlock(),e.createElementBlock("div",_i,[e.createVNode(En,{item:p.item},null,8,["item"])])):a(p.item)?(e.openBlock(),e.createElementBlock("div",vi,[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(En,{item:p.item},null,8,["item"])],8,Ci)])):(e.openBlock(),e.createElementBlock("div",Ei,[e.createVNode(En,{item:p.item},null,8,["item"])])),e.createElementVNode("div",Bi,[e.createElementVNode("div",Vi,[e.createElementVNode("div",Si,[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]=y=>i(p.item))},[e.createVNode(e.unref(H.Eye),{class:"h-4 w-4"})])]),e.createElementVNode("div",$i,[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]=y=>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",Ni,[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]=y=>d())},[e.createVNode(e.unref(H.Trash2),{class:"h-4 w-4"})])])])])]))}}),Mi={class:"flex flex-col widget-file xl:bg-white xl:rounded-xl dark:xl:bg-neutral-800 dark:xl:border-neutral-700 w-full"},Fi={class:"flex w-full mb-[12px] items-center gap-x-2"},Di={class:"font-semibold text-gray-800 dark:text-neutral-200 text-[14px]"},Ti={class1:"ml-auto"},Li={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"},Ii={key:0,class:"py-4 mb-4 space-y-4 border-gray-200 border-y dark:border-neutral-700"},Oi={class:"relative"},Ri={class:"absolute inset-y-0 start-0 flex items-center pointer-events-none z-[1] ps-3.5"},Pi={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"},zi={key:0},Jo=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({}),m=e.ref([]),p=e.ref(""),h=e.computed(()=>Array.isArray(m.value)?m.value.filter(_=>_.ext==="jpg"||_.ext==="png").map(_=>_?.file_path):[]),y=e.computed(()=>p.value===""?m.value:m.value.filter(_=>_?.uploaded_name?.includes(p.value))),f=_=>{const N=h.value.findIndex(U=>U===_.item.file_path);N!==-1&&(a.value=!0,s.value=N)},k=async()=>{try{const _=await fetch(`${n.prefix}/widget/file/${l.value}`).then(N=>N.json());m.value=_?.rows}catch(_){console.error(_)}},b=async _=>{await Promise.all(Array.from(_.target.files).map(async N=>{const U=new FormData;U.append("file",N);try{const Y=`${n.prefix}/widget/file/${l.value}`,L=await fetch(Y,{method:"POST",body:U});return L.ok?(i("update","file-list"),N):(ge.notify({type:L.status>=400&&L.status<500?"warning":"error",title:"Error",message:`Error code: ${L.status}`}),null)}catch(Y){return ge.notify({type:"error",title:"Error",message:Y.message||"Unknown error"}),console.error(Y),null}})),await k()},C=_=>{const N={..._};return _.cancel||(N.cancel=()=>{c.value=!1}),_.updateListOnConfirm&&(N.confirm=async()=>{await _.confirm(),c.value=!1,k()}),N},x=_=>{d.value=C(_),c.value=!0};return e.watch(l,_=>{_&&k()}),e.onMounted(()=>{l.value&&k()}),(_,N)=>{const U=e.resolveComponent("Lightbox"),Y=e.resolveComponent("MessageBox");return e.openBlock(),e.createElementBlock("div",Mi,[e.createElementVNode("div",Fi,[e.createElementVNode("h2",Di," Файлів: "+e.toDisplayString(m.value?.length),1),e.createElementVNode("div",Ti,[e.createElementVNode("label",null,[e.createElementVNode("input",{type:"file",class:"hidden",onChange:N[0]||(N[0]=L=>b(L))},null,32),e.createElementVNode("div",Li,[e.createVNode(e.unref(H.Upload),{class:"h-4 w-4"})])])])]),m.value?.length>4?(e.openBlock(),e.createElementBlock("div",Ii,[e.createElementVNode("div",null,[e.createElementVNode("div",Oi,[e.createElementVNode("div",Ri,[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":N[1]||(N[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),m.value?.length?(e.openBlock(),e.createElementBlock("div",Pi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,(L,E)=>(e.openBlock(),e.createBlock(Ai,{key:E,prefix:_.prefix,item:L,index:E,onUpdate:N[2]||(N[2]=V=>_.$emit("update","file-list")),onOpenModal:N[3]||(N[3]=V=>x(V)),onOpenLightbox:N[4]||(N[4]=V=>f(V))},null,8,["prefix","item","index"]))),128)),y.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",zi,N[8]||(N[8]=[e.createElementVNode("p",{class:"text-sm text-gray-600 font-sm"}," Файлів з такою назвою не існує, введіть інше пошукове слово ",-1)])))])):e.createCommentVNode("",!0),e.createVNode(U,{modelValue:a.value,"onUpdate:modelValue":N[5]||(N[5]=L=>a.value=L),startIndex:s.value,"onUpdate:index":N[6]||(N[6]=L=>s.value=L),images:h.value},null,8,["modelValue","startIndex","images"]),e.createVNode(Y,e.mergeProps({modelValue:c.value,"onUpdate:modelValue":N[7]||(N[7]=L=>c.value=L),onConfirm:d.value.confirm},d.value),null,16,["modelValue","onConfirm"])])}}}),ji={class:"flex items-center justify-between"},Ui={class:"text-[16px] text-gray-900 font-medium"},Hi={class:"grid gap-3"},qi=ve(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",ji,[e.createElementVNode("p",Ui,e.toDisplayString(o.title),1),e.createVNode(Zn,{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",Hi,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-90320b87"]]),Ki={class:"text-[16px] text-gray-900 font-medium"},Wi={class:"grid gap-3"},Gi=ve(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",Ki,e.toDisplayString(o.title),1)]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",Wi,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-0c825d65"]]),Yi={class:"flex items-center justify-between"},Xi={switcher:qi,accordion:Gi,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",Yi,[e.createElementVNode("p",null,e.toDisplayString(o.title),1)]),e.renderSlot(t.$slots,"default")]))}})},it={Equal:"==",Inequal:"!=",Higer:">",HigerOrEqual:">=",Lower:"<",LowerOrEqual:"<=",Between:"between",StartWith:"^",EndWith:"$",Contain:"*",In:"in",NotIn:"not_in"},Zi=(o,t)=>String(o)===String(t),Ji=(o,t)=>String(o)!==String(t),Qi=(o,t)=>o>t,ec=(o,t)=>o>=t,tc=(o,t)=>o<t,nc=(o,t)=>o<=t,oc=(o,t)=>Array.isArray(t)&&t.length===2?o>=t[0]&&o<=t[1]:!1,rc=(o,t)=>String(o).startsWith(String(t)),lc=(o,t)=>String(o).endsWith(String(t)),ac=(o,t)=>String(o).includes(String(t)),sc=(o,t)=>Array.isArray(t)?t.includes(o):!1,ic=(o,t)=>Array.isArray(t)?!t.includes(o):!0,cc=(o,t)=>{if(!t)return!0;switch(t?.[1]){case it.Equal:return Zi(o,t?.[2]);case it.Inequal:return Ji(o,t?.[2]);case it.Higer:return Qi(o,t?.[2]);case it.HigerOrEqual:return ec(o,t?.[2]);case it.Lower:return tc(o,t?.[2]);case it.LowerOrEqual:return nc(o,t?.[2]);case it.Between:return oc(o,t?.[2]);case it.StartWith:return rc(o,t?.[2]);case it.EndWith:return lc(o,t?.[2]);case it.Contain:return ac(o,t?.[2]);case it.In:return sc(o,t?.[2]);case it.NotIn:return ic(o,t?.[2]);default:return!0}};function Qo(o,t,n){return t==null||!Array.isArray(t)||t.length===0?!0:(Array.isArray(t[0])?t:[t]).every(l=>{if(!Array.isArray(l)||l.length<2)return!0;const a=l[0],s=n?o?.[n]?.[a]??o?.[a]:o?.[a];return cc(s,l)})}const er=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=>Qo(n.value,i?.conditions,t.name||void 0))),a=e.computed(()=>Xi[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(Br,e.mergeProps({key:d.name},{ref_for:!0},d,{item:d,modelValue:s.value[d.name],"onUpdate:modelValue":m=>s.value[d.name]=m,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)}}),tr=({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),m=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:m,addOption:async()=>{if(!(!p.value||d?.value.validate()))try{const b=o.add?.api??`/api/table/${p.value}`,C=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i.value)}),x=await C.json().catch(()=>({})),_=x?.error||x?.message,N=Number(x?.code)>=400;if(!C.ok||N){ge.notify({title:"Помилка",type:"error",message:_||`Код помилки: ${x?.code||C.status}`});return}const U=x?.[h.value]??x?.id;if(!U){ge.notify({title:"Помилка",type:"error",message:"Обʼєкт створено, але в відповіді відсутній ID."});return}const Y=await t(U);Y&&(n.value.some(E=>String(E?.id)===String(Y.id))||n.value.push(Y)),a?await a(Y,U):Y&&(r.value=Y,l.value=U),s.value=!1,ge.notify({title:"Успіх",message:"Обʼєкт успішно створено."})}catch(b){ge.notify({title:"Помилка",type:"error",message:b?.message||"Не вдалося створити обʼєкт."})}},onAddValue:async()=>{if(!o.add)return null;const k=await fetch(`/api/template/form/${o.add.form}`).then(b=>b.json());return c.value=k.schema,i.value={},s.value=!0,null}}},dc=["aria-expanded","data-focus"],uc={class:"relative flex flex-1 items-center gap-1 py-0.5 pl-1 pr-0 overflow-hidden h-full min-w-0"},pc={key:0,class:"flex flex-nowrap items-center gap-1 overflow-x-auto overflow-y-hidden min-w-0 flex-1 py-0.5"},mc={class:"flex items-center gap-1 min-w-0"},fc=["title"],hc=["innerHTML"],gc=["onClick"],yc={class:"flex-1 min-w-[2px]"},bc=["placeholder"],kc=["title"],xc=["innerHTML"],wc={key:3,class:"truncate flex-1 min-w-0"},_c={key:2,class:"flex-1 min-w-[2px]"},vc=["placeholder"],Cc={key:3,class:"flex-1 flex items-center min-h-[30px] py-0.5 pl-2 text-sm truncate text-inherit"},Ec={class:"flex items-center shrink-0"},Bc=["disabled"],Vc={key:1,class:"self-stretch w-px bg-[#ccc] my-[1px]"},Sc=["disabled","title"],$c=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",uc,[a.isMulti?(e.openBlock(),e.createElementBlock("div",pc,[(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",mc,[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,hc)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(i.text),1)],64))],8,fc)]),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,gc)]))),128)),e.createElementVNode("div",yc,[!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,bc)),[[e.vModelText,l.value]]):e.createCommentVNode("",!0)])])):!a.isMulti&&a.selectedOptionLabel&&l.value===""?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["truncate flex items-center gap-1 min-w-0 pl-2",a.disabled||!a.search?"relative z-0 flex-1 min-h-[30px] py-0.5 text-inherit":"absolute inset-x-0 top-0 bottom-0 z-[1] text-gray-900"]),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,xc)):(e.openBlock(),e.createElementBlock("span",wc,e.toDisplayString(a.selectedOption?.text),1))],10,kc)):e.createCommentVNode("",!0),!a.isMulti&&!a.disabled&&a.search?(e.openBlock(),e.createElementBlock("div",_c,[e.withDirectives(e.createElementVNode("input",{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,vc),[[e.vModelText,l.value]])])):!a.isMulti&&a.disabled&&(!a.selectedOptionLabel||l.value!=="")?(e.openBlock(),e.createElementBlock("div",Cc,e.toDisplayString(a.placeholder),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Ec,[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,Bc)):e.createCommentVNode("",!0),a.showClear?(e.openBlock(),e.createElementBlock("div",Vc)):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,Sc)])],42,dc))}}),Nc=["aria-disabled","onMousedown"],Ac={class:"leading-[19px]"},Mc=["innerHTML"],Fc={key:1,class:"px-3 py-2 text-center text-gray-500"},Dc=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",Ac,[t.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:t.renderTemplate(r)},null,8,Mc)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(r.text),1)],64))])],42,Nc))),128)):(e.openBlock(),e.createElementBlock("div",Fc," No options "))],4)],4)):e.createCommentVNode("",!0)]))}}),Tc=["disabled"],Lc="__autoMeta",nr="w-[16px] h-[16px] flex items-center justify-center flex-shrink-0 text-current",co=ve(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);et(n.style);const i=e.computed({get:()=>n.modelValue,set:z=>r("update:modelValue",z)});!i.value&&n.defaultValue&&(i.value=n.defaultValue);const c=e.ref(null),d=e.ref(null),m=e.ref(null),p=e.ref(null),h=e.ref(!1),y=e.ref(!1),f=e.ref(null),k=e.ref(-1),b=e.ref([]),C=e.ref(""),x=e.ref(null),_=z=>{d.value=z},N=z=>{x.value=z},U=z=>{p.value=z},Y=z=>{m.value=z},L=(z,re)=>{b.value[re]=z},E=e.ref({}),V=e.ref([]),S=e.computed(()=>{if(!V.value.length)return[];const z=xe.value,re=new Map(z.map(me=>[me.id?.toString(),me]));return V.value.map(me=>re.get(me?.toString())).filter(me=>!!me)}),O=e.computed(()=>n.placeholder||"Select..."),B=e.computed(()=>F(f.value)),T=e.computed(()=>a.value?!1:l.value?V.value.length>0:!!i.value),A=z=>l.value?V.value.some(re=>re?.toString()===z?.toString()):i.value?.toString()===z?.toString(),W=e.computed(()=>{let z=xe.value??[];if(!n.data&&C.value.trim()!==""){const re=C.value.toLowerCase();z=z.filter(me=>{const Me=F(me).toLowerCase(),Re=me.text?.toLowerCase?.()||"";return Me.includes(re)||Re.includes(re)})}if(l.value&&V.value.length){const re=new Set(V.value.map(me=>me?.toString()));z=z.filter(me=>!re.has(me.id?.toString()))}return z}),X=e.inject("values"),ee=e.inject("field-props"),q=e.computed(()=>n.slot??n?.optionTemplate??""),Q=z=>yn(z,q.value),F=z=>bn(z,q.value),j=e.computed(()=>fn(q.value)),te=z=>Xt(z),Z=z=>!!(!j.value&&Vt(z)&&!te(z)),se=z=>{const re=Vt(z);return re?{color:re}:void 0},ke=z=>!!(!j.value&&(Yt(z)||te(z))),oe=(z,re,me)=>{if(!ee)return!1;const Me=ee.value?.[z]??{},Re=(He,st,kt)=>{if(!st.length)return He;const[ut,...xt]=st,qe={...He};if(!xt.length)return qe[ut]=kt,qe;const un=typeof He[ut]=="object"&&He[ut]!==null?He[ut]:{};return qe[ut]=Re(un,xt,kt),qe},Ue=Re(Me,re,me);return ee.value={...ee.value||{},[z]:Ue},!0},ye=z=>{if(!ee||!n.name)return;const re=ee.value?.[n.name]??{};ee.value={...ee.value||{},[n.name]:{...re,[Lc]:z}}},Ve=z=>{if(!n.set)return;const re=X?.value;!re&&!ee||Object.entries(n.set).forEach(([me,Me])=>{if(!me)return;const Re=z?z[Me]:null,Ue=me.split(".").map(kt=>kt.trim()).filter(Boolean);if(!Ue.length)return;const[He,...st]=Ue;st.length&&oe(He,st,Re??null)||re&&(re[He]=Re??null)})},{optionsList:xe,parentValue:Le,fetchOptions:Ne,fetchOptionByValue:Oe,loadOptions:$e}=gn({props:n,formValues:X,watchParent:!1}),ne=z=>z==null?"":String(z),le=z=>{if(l.value){if(!V.value.length){xe.value=z;return}}else if(!f.value){xe.value=z;return}const re=new Set(z.map(Me=>ne(Me.id)).filter(Boolean));if(l.value){const Me=new Set(V.value.map(Ue=>ne(Ue)).filter(Boolean)),Re=(xe.value??[]).filter(Ue=>{const He=ne(Ue.id);return!He||!Me.has(He)?!1:!re.has(He)});xe.value=[...Re,...z];return}const me=ne(f.value?.id);if(me&&!re.has(me)){xe.value=[f.value,...z];return}xe.value=z},be=e.ref(0),Ee=async z=>{const re=++be.value,me=await Ne(z);return re!==be.value?null:me},ze=async()=>{if(n.data){const z=await Ee(C.value);return z&&le(z),xe.value}return $e()},We=async z=>{if(z==null||z==="")return null;const re=xe.value?.find(me=>me?.id?.toString()===String(z));return re||Oe(z)},I=async z=>{const re=new Set(xe.value.map(Me=>Me.id?.toString())),me=z.filter(Me=>!re.has(Me?.toString()));me.length&&await me.reduce(async(Me,Re)=>{await Me;const Ue=await We(Re);Ue&&xe.value.push(Ue)},Promise.resolve())},J=()=>{if(!W.value.length){k.value=-1;return}let z=0;if(!l.value&&f.value){const re=f.value.id?.toString(),me=W.value.findIndex(Me=>Me.id?.toString()===re);me>=0&&(z=me)}k.value=z,e.nextTick(()=>{R(b.value[z],m.value)})},ae=async()=>{a.value||(h.value=!0,await e.nextTick(()=>{we()}),await ze(),await e.nextTick(()=>{we(),x.value?.focus()}),J())},ue=()=>{h.value=!1,k.value=-1,e.nextTick(()=>{x.value?.blur()})},he=async z=>{if(a.value)return;(z!==void 0?z:!h.value)?await ae():ue()},Ae=async()=>{if(!a.value){if(h.value){ue();return}await ae()}},Te=()=>{l.value?(V.value=[],i.value=[],r("change",[]),P(null,[])):(f.value=null,i.value=null,r("change",null),P(null,null)),Ve(null),C.value="",e.nextTick(()=>{x.value?.focus(),h.value||ae()})},Fe=z=>{l.value&&(V.value=V.value.filter(re=>re?.toString()!==z?.toString()),i.value=[...V.value],r("change",i.value),P(null),e.nextTick(()=>x.value?.focus()))},P=(z,re)=>{const me=re??(l.value?[...V.value]:z?.id??null);r("value-selected",{name:n.name,value:me,option:z})},v=(z,re="manual")=>{l.value?(A(z.id)||(V.value=[...V.value,z.id],i.value=[...V.value],r("change",i.value),P(z)),C.value="",e.nextTick(()=>{x.value?.focus(),k.value=Math.min(k.value,W.value.length-1)}),Ve(null)):(f.value=z,i.value=z.id,r("change",i.value),P(z),C.value="",ue(),Ve(z),re==="parent-auto"&&ye({source:re,parentField:n.parent??null,parentValue:Le.value??null}))},M=z=>{if(A(z.id)){l.value||ue();return}v(z)},R=(z,re)=>{if(!z||!re)return;const me=z.offsetTop,Me=me+z.offsetHeight,Re=re.scrollTop,Ue=Re+re.clientHeight;let He=re.scrollTop;me<Re?He=me-80:Me>Ue&&(He=Me-re.clientHeight+4);const st=re;st.scrollTop=He},ie=z=>{let re=z.parentElement;for(;re;){if(re.classList.contains("ui-dialog__content"))return re;const me=window.getComputedStyle(re),Me=me.overflow+me.overflowY+me.overflowX;if(Me.includes("auto")||Me.includes("scroll")||re===document.body||re===document.documentElement)return re;re=re.parentElement}return document.body},we=()=>{if(!d.value)return;const z=d.value.getBoundingClientRect(),re=window.innerHeight||document.documentElement.clientHeight,me=window.innerWidth||document.documentElement.clientWidth,Me=8,Re=8,Ue=n.maxHeight||300,He=re-z.bottom-Re-Me,st=z.top-Re-Me,kt=He>=st,ut=Math.max(me-Me*2,0);let{width:xt}=z;ut>0&&xt>ut&&(xt=ut);let{left:qe}=z;qe+xt+Me>me&&(qe=me-xt-Me),qe=Math.max(qe,Me);const un=Math.min(Ue,Math.max(kt?He:st,50));E.value={position:"fixed",left:`${qe}px`,width:`${xt}px`,maxHeight:`${un}px`,transform:kt?"none":"translateY(-100%)",top:kt?`${z.bottom+Re}px`:`${z.top-Re}px`}},Pe=async z=>{a.value||!h.value&&(z.key==="ArrowDown"||z.key==="ArrowUp")&&(z.preventDefault(),await ae())},De=z=>{if(!h.value)return;const{key:re}=z;if(re==="ArrowDown")z.preventDefault(),k.value+1<W.value.length&&(k.value+=1,R(b.value[k.value],m.value));else if(re==="ArrowUp")z.preventDefault(),k.value>0&&(k.value-=1,R(b.value[k.value],m.value));else if(re==="Enter"){z.preventDefault();const me=W.value[k.value];me&&v(me),x.value?.blur()}else re==="Escape"?(z.preventDefault(),ue()):re==="Backspace"?l.value&&C.value===""&&V.value.length&&(V.value=V.value.slice(0,-1),i.value=[...V.value],r("change",i.value)):re==="Home"?(k.value=0,R(b.value[0],m.value)):re==="End"?(k.value=W.value.length-1,R(b.value[k.value],m.value)):re==="Tab"&&ue()},Ge=()=>{a.value||(y.value=!0)},K=()=>{y.value=!1,C.value=""},de=z=>{z.key==="Escape"&&h.value&&ue()},Ie=z=>{const re=z.target;c.value?.contains(re)||p.value?.contains(re)||ue()},Qe=z=>{h.value&&m.value&&!m.value.contains(z.target)&&we()},dt=()=>{h.value&&we()},Ye=()=>{h.value&&we()};async function Ft(){if(l.value)Array.isArray(i.value)?V.value=[...i.value]:(V.value=i.value==null?[]:[i.value],i.value=[...V.value]),n.data&&V.value.length&&(await I(V.value),await e.nextTick());else{if(Array.isArray(i.value)){const z=i.value[0]??null;i.value=z??null}i.value!=null&&(f.value=await We(i.value)),Ve(f.value??null)}}e.watch(i,()=>{Ft()}),e.onMounted(async()=>{if(addEventListener("keydown",de),addEventListener("scroll",Qe,!0),addEventListener("resize",dt),document.addEventListener("click",Ie,!0),d.value&&ie(d.value).addEventListener("scroll",Ye,!0),n.options?.length&&!n.data)xe.value=[...n.options];else if(n.data){const z=await Ee("");z&&le(z)}await Ft(),Hn.value=!1}),e.onUnmounted(()=>{removeEventListener("keydown",de),removeEventListener("scroll",Qe,!0),removeEventListener("resize",dt),document.removeEventListener("click",Ie,!0),d.value&&ie(d.value).removeEventListener("scroll",Ye,!0)});const{isOpenAdd:Dt,addData:jt,addSchema:Tt,addForm:Eo,addTitle:Bo,addOption:jn,onAddValue:Un}=tr({props:n,fetchOptionByValue:Oe,optionsList:xe,selectedOption:f,modelValue:i});function Vo(z,re=200){let me;return(...Me)=>{me&&clearTimeout(me),me=window.setTimeout(()=>z(...Me),re)}}const Lt=Vo(async z=>{const re=await Ee(z);re&&le(re)},200);e.watch(C,z=>{n.data&&Lt(z.trim())}),e.watch(()=>n.options,z=>{!n.data&&z?.length&&(xe.value=[...z],Ft())},{immediate:!0});const Hn=e.ref(!0);return e.watch(Le,async()=>{if(n.data&&(Hn.value||(l.value?(V.value=[],i.value=[],r("change",[])):(f.value=null,i.value=null,r("change",null))),await ze(),n.auto===1&&Le.value&&xe.value.length>0)){const z=xe.value[0];z&&v(z,"parent-auto")}}),(z,re)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(ge.VsModal),{visible:e.unref(Dt),"onUpdate:visible":re[1]||(re[1]=me=>e.isRef(Dt)?Dt.value=me:null),class:"z-[1000]",title:e.unref(Bo),buttonText:"Додати",onDone:e.unref(jn),teleport:z.teleport},{default:e.withCtx(()=>[e.createVNode(ct,{schema:e.unref(Tt),modelValue:e.unref(jt),"onUpdate:modelValue":re[0]||(re[0]=me=>e.isRef(jt)?jt.value=me:null),ref_key:"addForm",ref:Eo},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:re[4]||(re[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass])},[re[5]||(re[5]=e.createElementVNode("span",{id:"react-select-live-region",class:"sr-only"},null,-1)),re[6]||(re[6]=e.createElementVNode("span",{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text",role:"log",class:"sr-only"},null,-1)),e.createVNode($c,{keyWord:C.value,"onUpdate:keyWord":re[2]||(re[2]=me=>C.value=me),disabled:a.value,"is-open":h.value,"input-focus":y.value,"is-multi":l.value,"selected-options":S.value,"selected-ids":V.value,placeholder:O.value,search:s.value,"option-template":q.value,"icon-wrapper-class":nr,"selected-option-label":B.value,"selected-option":f.value,"show-clear":T.value,"set-trigger-ref":_,"set-input-ref":N,"should-show-color-dot":Z,"option-has-icon":ke,"get-icon-color-style":se,"resolve-option-icon":te,"render-template":Q,"get-label":F,"on-control-keydown":Pe,"on-control-click":Ae,"on-input-focus":Ge,"on-input-blur":K,"on-input-keydown":De,"on-remove-selected":Fe,"on-clear-selected":Te,"on-toggle-select":he},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(Dc,{"is-open":h.value,"dropdown-style":E.value,"filtered-options-list":W.value,"selected-nav-index":k.value,"option-template":q.value,"icon-wrapper-class":nr,"set-dropdown-ref":U,"set-list-ref":Y,"set-item-ref":L,"is-selected":A,"on-option-click":M,"should-show-color-dot":Z,"option-has-icon":ke,"get-icon-color-style":se,"resolve-option-icon":te,"render-template":Q},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:re[3]||(re[3]=(...me)=>e.unref(Un)&&e.unref(Un)(...me)),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"}),re[7]||(re[7]=e.createElementVNode("span",null,"Додати",-1))],8,Tc)):e.createCommentVNode("",!0)],512)],64))}}),[["__scopeId","data-v-3a63d47f"]]),uo=(o="")=>`${o}${Math.floor(Math.random()*1e4)}`,Ic=["disabled","aria-expanded"],Oc={class:"truncate"},Rc={class:"py-2 px-4"},Pc={class:"block font-medium text-[13px] text-foreground"},zc={class:"truncate"},jc={class:"p-1 border-t border-gray-200"},Uc={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"},Hc=["onClick"],qc=["checked"],Kc={class:"shrink-0 size-3.5 flex justify-center items-center"},Wc={key:1,class:"shrink-0 size-2 block mx-auto rounded-full bg-secondary/60"},Gc={class:"truncate"},Yc={key:0,class:"px-3 py-2 text-xs text-stone-500"},Bn=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;et(n.style);const l=e.computed({get:()=>Array.isArray(n.modelValue)?n.modelValue[0]??null:n.modelValue??null,set:oe=>r("update:modelValue",oe)});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),m=e.ref(null),p=e.ref(null),h=e.ref(null),y=e.ref({}),f=`vs-input-inline-select-${uo()}`,k=e.computed(()=>n.placeholder||"Оберіть значення"),b=e.computed(()=>U(c.value)||n.placeholder||"Оберіть значення"),C=e.computed(()=>n.slot??""),x=e.computed(()=>fn(C.value)),_=e.computed(()=>n.teleport||"body"),N=/^#(?:[\da-fA-F]{3}|[\da-fA-F]{6}|[\da-fA-F]{8})$/,U=oe=>bn(oe,C.value),Y=oe=>!!(!x.value&&Vt(oe)),L=e.computed(()=>{const oe=Vt(c.value).trim();return oe?N.test(oe)?`bg-[${oe}] border-[${oe}]`:`bg-${oe.toLowerCase()}-500 border-${oe.toLowerCase()}-500`:""}),{optionsList:E,parentValue:V,fetchOptions:S,fetchOptionByValue:O,loadOptions:B}=gn({props:n,formValues:a,watchParent:!1}),T=(oe,ye,Ve)=>{if(!s)return!1;const xe=s.value?.[oe]??{},Le=(Oe,$e,ne)=>{if(!$e.length)return Oe;const[le,...be]=$e,Ee={...Oe};if(!be.length)return Ee[le]=ne,Ee;const ze=typeof Oe[le]=="object"&&Oe[le]!==null?Oe[le]:{};return Ee[le]=Le(ze,be,ne),Ee},Ne=Le(xe,ye,Ve);return s.value={...s.value||{},[oe]:Ne},!0},A=oe=>{if(!n.set)return;const ye=a?.value;!ye&&!s||Object.entries(n.set).forEach(([Ve,xe])=>{if(!Ve)return;const Le=oe?oe[xe]:null,Ne=Ve.split(".").map(ne=>ne.trim()).filter(Boolean);if(!Ne.length)return;const[Oe,...$e]=Ne;$e.length&&T(Oe,$e,Le??null)||ye&&(ye[Oe]=Le??null)})},W=oe=>l.value?.toString?.()===oe?.toString?.(),X=()=>{if(!p.value||typeof window>"u")return;const oe=p.value.getBoundingClientRect(),ye=8,Ve=8,xe=window.innerHeight||document.documentElement.clientHeight,Le=window.innerWidth||document.documentElement.clientWidth,Ne=h.value?.offsetHeight||260,Oe=Math.max(oe.width,176),$e=Math.max(Le-ye*2,120),ne=Math.min(Oe,$e);let le=oe.left;le+ne+ye>Le&&(le=Le-ne-ye),le=Math.max(le,ye);const be=xe-oe.bottom-Ve-ye,Ee=oe.top-Ve-ye,ze=be<Math.min(Ne,260)&&Ee>be,We=Math.max(120,Math.min(320,ze?Ee:be));y.value={position:"fixed",left:`${le}px`,top:ze?`${oe.top-Ve}px`:`${oe.bottom+Ve}px`,transform:ze?"translateY(-100%)":"none",width:`${ne}px`,maxHeight:`${We}px`}},ee=async()=>{if(n.data){E.value=await S("");return}await B()},q=async()=>{if(l.value==null||l.value===""){c.value=null,A(null);return}const oe=E.value.find(ye=>ye.id?.toString()===String(l.value));if(oe){c.value=oe,A(oe);return}c.value=await O(l.value),A(c.value??null)},Q=async()=>{i.value||(d.value=!0,await e.nextTick(),X(),await ee(),await e.nextTick(),X())},F=()=>{d.value=!1},j=async()=>{if(d.value){F();return}await Q()},te=oe=>{r("value-selected",{name:n.name,value:oe?.id??null,option:oe})},Z=oe=>{c.value=oe,l.value=oe.id,r("change",oe.id),te(oe),A(oe),F()},se=oe=>{const ye=oe.target;m.value?.contains(ye)||h.value?.contains(ye)||F()},ke=()=>{d.value&&X()};return e.watch(()=>n.options,oe=>{n.data||(E.value=oe?[...oe]:[],q())},{immediate:!0,deep:!0}),e.watch(l,()=>{q()}),e.watch(V,async()=>{n.data&&(await ee(),c.value&&!E.value.some(oe=>oe.id?.toString()===c.value?.id?.toString())&&(c.value=null,l.value=null,r("change",null),te(null),A(null)))}),e.onMounted(async()=>{document.addEventListener("click",se,!0),window.addEventListener("resize",ke),window.addEventListener("scroll",ke,!0),await ee(),await q()}),e.onUnmounted(()=>{document.removeEventListener("click",se,!0),window.removeEventListener("resize",ke),window.removeEventListener("scroll",ke,!0)}),(oe,ye)=>(e.openBlock(),e.createElementBlock("div",{class:"relative inline-flex w-full max-w-full",ref_key:"rootRef",ref:m,onClick:ye[0]||(ye[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:j},[e.createElementVNode("span",Oc,e.toDisplayString(b.value),1)],10,Ic),(e.openBlock(),e.createBlock(e.Teleport,{to:_.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(y.value),role:"menu","aria-orientation":"vertical"},[e.createElementVNode("div",Rc,[e.createElementVNode("span",Pc,[e.createElementVNode("span",zc,e.toDisplayString(k.value),1)])]),e.createElementVNode("div",jc,[e.createElementVNode("div",Uc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(E),Ve=>(e.openBlock(),e.createElementBlock("label",{key:Ve.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(xe=>Z(Ve),["prevent"])},[e.createElementVNode("input",{type:"radio",class:"hidden",name:f,checked:W(Ve.id),tabindex:"-1"},null,8,qc),e.createElementVNode("span",Kc,[Y(Ve)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"shrink-0 size-2 block mx-auto rounded-full",style:e.normalizeStyle({backgroundColor:Ve.color})},null,4)):(e.openBlock(),e.createElementBlock("span",Wc))]),e.createElementVNode("span",Gc,e.toDisplayString(U(Ve)),1),e.createVNode(e.unref(H.Check),{class:e.normalizeClass(["shrink-0 size-3.5 ms-auto transition-opacity",W(Ve.id)?"opacity-100":"opacity-0"])},null,8,["class"])],8,Hc))),128))]),e.unref(E).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",Yc,"Немає варіантів"))])],4)):e.createCommentVNode("",!0)],8,["to"]))],512))}}),Xc=["placeholder","disabled"],or=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}=et(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,Xc)),[[e.vModelText,r.value]])}}),rr=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(()=>uy)),n=o,{inputClass:r}=et(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]=m=>l.value=m),placeholder:s.value},i.value),null,16,["modelValue","placeholder"])],6))}}),Zc={},Jc={viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Qc(o,t){return e.openBlock(),e.createElementBlock("svg",Jc,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 ed=ve(Zc,[["render",Qc]]),td={class:"bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden flex flex-col"},nd={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"},od={key:0,class:"relative flex-1 min-w-0"},rd={class:"flex flex-nowrap items-center justify-end gap-2 shrink-0"},ld={class:"w-full overflow-x-auto"},ad={class:"w-full min-w-[640px] table-auto divide-y divide-gray-200"},sd={class:"bg-gray-50"},id={class:"border-b border-gray-200"},cd={class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 w-12 text-center"},dd=["onClick"],ud={key:0,class:"text-gray-400"},pd={key:0,colspan:"100%",class:"text-center"},md={class:"w-full"},fd={class:"p-5 min-h-[200px] flex flex-col justify-center items-center text-center"},hd=["data-row-index","onDragstart","onDragover","onDrop"],gd=["onPointerdown"],yd={class:"flex items-center justify-center"},bd=["innerHTML"],kd={key:0,class:"flex items-center gap-3 text-sm text-gray-700"},xd={key:0},wd=["src"],_d={key:1,class:"rounded-md max-w-[45px] w-[45px] max-h-[45px] h-[45px] bg-gray-200 flex items-center justify-center"},vd={key:1,class:"flex items-center justify-center"},Cd={key:2,class:"text-sm font-medium text-gray-900"},Ed={class:"px-4 py-3 text-right whitespace-nowrap"},Bd={class:"flex items-center justify-end gap-2"},Vd=["onClick"],Sd=["onClick"],$d={class:"vs-form__head mr-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},lr=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=I=>t.actions===void 0?!0:t.actions.includes(I),l=["search","import","export","add"],a=e.computed(()=>l.some(I=>r(I))),s=e.useModel(o,"modelValue"),i=e.ref({}),c=e.ref(""),d=e.ref(null),m=e.ref("asc"),p=e.computed(()=>{const I=s.value??[],J=c.value?I.filter(he=>h.value?.some(Ae=>{const Te=Ae.key||Ae.name;if(!Te)return!1;const Fe=he[Te];return Fe?Array.isArray(Fe)?Fe.join(", ").toLowerCase().includes(c.value.toLowerCase()):String(Fe).toLowerCase().includes(c.value.toLowerCase()):!1})):I;if(!d.value)return J;const ae=d.value,ue=[...J].sort((he,Ae)=>{const Te=Le(he?.[ae]),Fe=Le(Ae?.[ae]);return typeof Te=="number"&&typeof Fe=="number"?Te-Fe:String(Te).localeCompare(String(Fe))});return m.value==="asc"?ue:ue.reverse()}),h=e.computed(()=>(t.colModel??[]).filter(I=>!I.tableHidden)),y=e.ref(null),f=e.ref(null),k=e.ref(null);function b(I){return I.pointerType==="touch"||I.pointerType==="pen"}function C(I,J){const ue=document.elementFromPoint(I,J)?.closest?.("[data-row-index]")??null;if(!ue)return null;const he=ue.getAttribute("data-row-index");if(he==null)return null;const Ae=Number.parseInt(he,10);return Number.isNaN(Ae)?null:Ae}function x(I,J){b(I)&&(I.preventDefault(),I.currentTarget.setPointerCapture(I.pointerId),y.value=J,f.value=J)}function _(I){if(y.value===null||!b(I))return;I.preventDefault();const J=C(I.clientX,I.clientY);J!==null&&(f.value=J)}function N(I){if(y.value===null||!b(I))return;I.preventDefault();const J=C(I.clientX,I.clientY);E(J??y.value);try{I.currentTarget.releasePointerCapture(I.pointerId)}catch{}}function U(I){if(b(I)){y.value=null,f.value=null;try{I.currentTarget.releasePointerCapture(I.pointerId)}catch{}}}const Y=I=>{y.value=I},L=I=>{f.value=I},E=I=>{if(y.value===null||y.value===I){y.value=null,f.value=null;return}const J=[...s.value],[ae]=J.splice(y.value,1);J.splice(I,0,ae),s.value=J,y.value=null,f.value=null},V=()=>{k.value&&k.value.click()},S=I=>{const J=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".ico",".tiff",".tif"],ae=I.toLowerCase();return J.some(ue=>ae.endsWith(ue))},O=I=>{const ae=I.target.files?.[0];if(!ae)return;const ue=new FileReader;ue.onload=he=>{try{const Ae=he.target?.result;if(typeof Ae=="string"){const Te=JSON.parse(Ae);Array.isArray(Te)&&s.value.push(...Te)}}catch(Ae){console.error("Error parsing file:",Ae)}},ue.readAsText(ae)},B=()=>{const I=JSON.stringify(s.value,null,2),J=new Blob([I],{type:"application/json"}),ae=URL.createObjectURL(J),ue=document.createElement("a");ue.href=ae,ue.download="data.json",ue.click(),URL.revokeObjectURL(ae)},T=new Set(["autocomplete","select","radio","checkbox","combobox"]),A=new Map,W=(I,J)=>{const ae=`/api/suggest/${I}`,ue=ae.includes("?")?"&":"?",he=J?`&val=${J}`:"";return`${ae}${ue}json=1${he}`},X=I=>I==null||I===""?null:typeof I=="object"?I?.id!==void 0&&I.id!==null&&I.id!==""?I.id:null:I,ee=I=>{const J=new Set;return Array.isArray(s.value)&&s.value.forEach(ae=>{const ue=ae?.[I];if(ue==null||ue==="")return;if(Array.isArray(ue)){ue.forEach(Ae=>{const Te=X(Ae);Te!==null&&J.add(Te)});return}const he=X(ue);he!==null&&J.add(he)}),J},q=async()=>{if(!t.colModel?.length)return;const I=t.colModel.filter(J=>J.data&&T.has(J.type?.toLowerCase()||""));I.length&&await Promise.all(I.map(async J=>{const ae=J.key||J.name;if(!ae)return;const ue=ee(ae),he=Array.from(ue).map(Fe=>String(Fe)).sort(),Ae=he.join(",");if(!he.length||A.get(ae)===Ae)return;A.set(ae,Ae);const Te=he.map(encodeURIComponent).join(",");try{const P=await(await fetch(W(J.data,Te))).json();i.value[ae]=P?.data??P}catch(Fe){console.error("Failed to fetch column values",Fe)}}))};e.watch([()=>t.colModel,()=>s.value],()=>{q()},{immediate:!0,deep:!0});const Q=e.ref(""),F=e.ref(!1);let j="edit",te=0;const Z=I=>(I?.format||I?.type||"").toString().toLowerCase(),se=e.computed(()=>(t.colModel?.filter(J=>Z(J)!=="slot")??[]).map(J=>{const ae=J.key||J.name;return ae?{...J,name:ae,key:ae}:J})),ke=e.ref({}),oe=e.ref({}),ye=I=>typeof I!="string"?!1:!!n[I],Ve=(I,J)=>J?J.split(".").reduce((ae,ue)=>ae==null?ae:ae[ue.trim()],I):I,xe=(I,J)=>typeof I!="string"?"":I.replace(/{{\s*([^}]+)\s*}}/g,(ae,ue)=>{const he=Ve(J,ue.trim());return he??""}),Le=I=>{if(I==null||I==="")return"";if(typeof I=="number")return I;if(typeof I=="boolean")return I?1:0;if(typeof I=="string")return I.toLowerCase();if(Array.isArray(I))return I.map(J=>Le(J)).join(", ");if(typeof I=="object"){if(I.text!==void 0)return String(I.text).toLowerCase();if(I.label!==void 0)return String(I.label).toLowerCase();if(I.id!==void 0)return String(I.id).toLowerCase()}return String(I).toLowerCase()},Ne=I=>{const J=I.key||I.name;if(J){if(d.value===J){m.value=m.value==="asc"?"desc":"asc";return}d.value=J,m.value="asc"}};async function Oe(){Q.value="Додати",F.value=!0,j="add",ke.value={}}function $e(I,J){if(!I?.length)return null;const ae=typeof J=="object"?J?.id:J;return ae==null||ae===""?null:I.find(ue=>ue?.id?.toString()===ae.toString())?.text??null}function ne(I){return I==null||I===""?"-":Array.isArray(I)?I.map(J=>typeof J=="object"?J?.text??J?.id??"-":J).join(", "):typeof I=="object"?I?.text??I?.id??"-":I}function le(I,J){const ae=J.key||J.name,ue=I?.[ae],he=i.value[ae];if(!ue)return"-";if(Array.isArray(ue)){const Te=ue.map(Fe=>$e(he,Fe)).filter(Boolean);return Te.length?Te.join(", "):ne(ue)}const Ae=$e(he,ue);return Ae||ne(ue)}async function be(I,J){Q.value="Редагувати",F.value=!0,j="edit",te=J,ke.value={...I}}function Ee(){const I=oe.value.validate();if(I){ge.notify({type:"warning",title:"Помилка валідації",message:Object.entries(I).map(([J,ae])=>`${J}: ${ae}`).join(`
1
+ (function(_e,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):(_e=typeof globalThis<"u"?globalThis:_e||self,e(_e.FormBuilder={},_e.Vue,_e.OpenGISCore,_e.lucide))})(this,(function(_e,e,ge,H){"use strict";const Lo=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))}}),Gn={form:{autofillFrom:"Filled from",richtext:{paragraph:"Paragraph",heading1:"Heading 1",heading2:"Heading 2",heading3:"Heading 3",heading4:"Heading 4",heading5:"Heading 5",heading6:"Heading 6",createTable:"Create Table",addColumn:"Add Column",addRow:"Add Row",deleteColumn:"Delete Column",deleteRow:"Delete Row",deleteTable:"Delete Table",mergeCells:"Merge Cells",splitCells:"Split Cells",linkTitle:"Enter Link",link:"Link",linkUrl:"Enter URL",editLink:"Edit Link",openLink:"Open Link",removeLink:"Remove Link",openInNewTab:"Open in New Tab",editor:"Editor",html:"HTML",markdown:"Markdown",create:"Create",update:"Update",cancel:"Cancel"}}},Yn={form:{autofillFrom:"Підставлено з",richtext:{paragraph:"Звичайний текст",heading1:"Заголовок 1",heading2:"Заголовок 2",heading3:"Заголовок 3",heading4:"Заголовок 4",heading5:"Заголовок 5",heading6:"Заголовок 6",createTable:"Створити таблицю",addColumn:"Додати колонку",addRow:"Додати рядок",deleteColumn:"Видалити колонку",deleteRow:"Видалити рядок",deleteTable:"Видалити таблицю",mergeCells:"Об'єднати комірки",splitCells:"Розділити комірки",linkTitle:"Додати посилання",link:"Посилання",linkUrl:"Введіть URL",editLink:"Редагувати посилання",openLink:"Відкрити посилання",removeLink:"Видалити посилання",openInNewTab:"Відкривати в новій вкладці",editor:"Редактор",html:"HTML",markdown:"Markdown",create:"Створити",update:"Оновити",cancel:"Скасувати"}}},bl={class:"w-full relative"},kl={key:0,class:"text-[14px] font-medium text-gray-900 mb-2 flex items-center gap-1"},xl={class:"opacity-100"},wl={key:0,class:"text-red-500 text-[14px]"},_l={key:2,class:"text-[11px] text-slate-500 font-normal"},vl={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Cl=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||""),s=e.inject("schema-by-name"),i={en:Gn?.form?.autofillFrom,uk:Yn?.form?.autofillFrom},c=e.computed(()=>{const d=t.item?.__autoMeta;if(!d||d?.source!=="parent-auto"||!d?.parentField)return"";const m=String(t.item?.__locale||"uk"),p=String(d.parentField),h=s?.value?.[p],y=h?.[`label:${m}`]||(m!=="uk"?h?.[m]:void 0)||h?.label||h?.ua||h?.en||p;return`${i[m]||i.uk}: ${y}`});return(d,m)=>(e.openBlock(),e.createElementBlock("div",bl,[r.value?(e.openBlock(),e.createElementBlock("div",kl,[e.createElementVNode("span",xl,e.toDisplayString(n.value),1),l.value?(e.openBlock(),e.createElementBlock("span",wl,"*")):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createBlock(Lo,{key:1,text:a.value},null,8,["text"])):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("span",_l," ("+e.toDisplayString(c.value)+") ",1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(d.$slots,"default",e.mergeProps(d.$attrs,{class:{"opacity-60":d.item.disabled}})),d.error?(e.openBlock(),e.createElementBlock("span",vl,e.toDisplayString(d.error),1)):e.createCommentVNode("",!0)]))}}),El={class:"w-full relative flex flex-row items-center gap-2"},Bl={key:0,class:"text-red-500 text-[14px]"},Vl={key:2,class:"text-[11px] text-slate-500 font-normal"},Sl={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},$l=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.inject("schema-by-name"),a={en:Gn?.form?.autofillFrom,uk:Yn?.form?.autofillFrom},s=e.computed(()=>{const h=t.item?.__autoMeta;if(!h||h?.source!=="parent-auto"||!h?.parentField)return"";const y=String(t.item?.__locale||"uk"),f=String(h.parentField),k=l?.value?.[f],b=k?.[`label:${y}`]||(y!=="uk"?k?.[y]:void 0)||k?.label||k?.ua||k?.en||f;return`${a[y]||a.uk}: ${b}`}),i=e.computed(()=>t.columns??{container:12,label:3}),c=e.computed(()=>{const{container:h,label:y}=i.value;return!h||h<=0?0:Math.min(Math.max(y??0,0),h)/h}),d=e.computed(()=>t.item?.type==="html"||c.value<=0?!1:!!n.value),m=e.computed(()=>{if(!d.value)return{};const h=`${c.value*100}%`;return{flexBasis:h,maxWidth:h}}),p=e.computed(()=>{const{container:h,label:y}=i.value;if(!h||h<=0)return{};if(t.item?.type==="html")return{flexBasis:"100%",maxWidth:"100%"};if(!d.value)return{flexBasis:"100%",maxWidth:"100%"};const f=Math.max(h-Math.max(y??0,0),0)/h;if(!f)return{};const k=`${f*100}%`;return{flexBasis:k,maxWidth:k}});return(h,y)=>(e.openBlock(),e.createElementBlock("div",El,[d.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(m.value)},[e.createTextVNode(e.toDisplayString(n.value)+" ",1),h.item?.rules?.includes("required")&&n.value?(e.openBlock(),e.createElementBlock("span",Bl,"*")):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createBlock(Lo,{key:1,text:r.value},null,8,["text"])):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock("span",Vl," ("+e.toDisplayString(s.value)+") ",1)):e.createCommentVNode("",!0)],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"flex-1 min-w-0",style:e.normalizeStyle(p.value)},[e.renderSlot(h.$slots,"default",e.normalizeProps(e.guardReactiveProps(h.$attrs)))],4),h.error?(e.openBlock(),e.createElementBlock("span",Sl,e.toDisplayString(h.error),1)):e.createCommentVNode("",!0)]))}}),Nl={class:"w-full relative"},Al={key:0,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Ml=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",Nl,[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(t.$attrs))),t.error?(e.openBlock(),e.createElementBlock("span",Al,e.toDisplayString(t.error),1)):e.createCommentVNode("",!0)]))}}),Fl={class:"flex-1 min-w-0"},Dl={key:0,class:"text-sm font-medium text-slate-700 dark:text-slate-200 flex items-center gap-1"},Tl={class:"truncate"},Ll={key:0,class:"text-red-500 text-[14px]"},Il=["innerHTML"],Ol={key:0,class:"mt-1 text-xs text-red-500"},Rl={default:Cl,horizontal:$l,inline:Ml,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",Fl,[i.ua||i.label?(e.openBlock(),e.createElementBlock("p",Dl,[e.createElementVNode("span",Tl,e.toDisplayString(i.item[n.value]||i.ua||i.label),1),l.value?(e.openBlock(),e.createElementBlock("span",Ll,"*")):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,Il)):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",Ol,e.toDisplayString(a.value),1)):e.createCommentVNode("",!0)],2))}})};function et(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 Pl=["placeholder","disabled"],zl=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}=et(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,Pl)),[[e.vModelText,r.value]])}}),jl=["placeholder","disabled","maxlength","minlength"],Ht=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}=et(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,m)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"text","onUpdate:modelValue":m[0]||(m[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,jl)),[[e.vModelText,r.value]])}}),Ul=["step","placeholder","disabled","min","max"],Io=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}=et(t.style),r=e.useAttrs(),l=e.useModel(o,"modelValue"),a=e.computed(()=>!!t.disabled),s=m=>{if(m==null||m==="")return;const p=typeof m=="string"?m.trim().replace(",","."):m,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 m=r.step;return typeof m=="number"||typeof m=="string"?m:"any"});return(m,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,Ul)),[[e.vModelText,l.value]])}}),fn=o=>!!String(o??"").trim(),Vt=o=>o?.color?String(o.color):"",Yt=o=>{const t=o?.icon;if(typeof t=="string")return t;const n=o?.imgUrl;return typeof n=="string"?n:""},Xt=o=>{const t=o?.icon;return t&&typeof t!="string"?t:null},Hl={class:"flex items-center gap-[4px]"},ql=["value","id","disabled"],Kl=["for"],Wl=["innerHTML"],Gl={key:1,class:"text-[14px] text-gray-700 flex items-center gap-2 dark:text-neutral-400"},Yl=["src"],Xl=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:y=>n("update:modelValue",y)}),a=e.computed(()=>!!r.disabled),s=e.computed(()=>Yt(r.option)),i=e.computed(()=>Xt(r.option)),c=e.computed(()=>Vt(r.option)),d=e.computed(()=>!!(c.value&&!s.value&&!i.value)),m=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(y,f)=>(e.openBlock(),e.createElementBlock("div",Hl,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",value:y.value,"onUpdate:modelValue":f[0]||(f[0]=k=>l.value=k),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:y.id,disabled:a.value},null,10,ql),[[e.vModelCheckbox,l.value]]),e.createElementVNode("label",{for:y.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",y.error?"border-red-600":""]])},[e.createVNode(e.unref(H.Check),{class:"h-4 w-4"})],2),y.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:y.html},null,8,Wl)):(e.openBlock(),e.createElementBlock("span",Gl,[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),m.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,Yl)):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(y.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(y.label),1)])]))],10,Kl)]))}}),Zl=["name","value","disabled"],Jl=["innerHTML"],Ql={key:1,class:"flex items-center gap-[6px] text-[14px]"},ea={key:2,class:"text-[16px] inline-flex items-center justify-center"},ta=["src"],na=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:k=>{r("update:modelValue",k)}}),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(()=>Yt(i.value)),d=e.computed(()=>Xt(i.value)),m=e.computed(()=>Vt(i.value)),p=e.computed(()=>!!(m.value&&!c.value&&!d.value)),h=e.computed(()=>!!(c.value&&m.value)),y=e.computed(()=>m.value?{color:m.value}:void 0),f=e.computed(()=>{if(!(!c.value||!m.value))return{backgroundColor:m.value,WebkitMaskImage:`url(${c.value})`,maskImage:`url(${c.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(k,b)=>(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:k.id,value:k.value,"onUpdate:modelValue":b[0]||(b[0]=C=>l.value=C),disabled:k.disabled},null,8,Zl),[[e.vModelCheckbox,l.value]]),k.html?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-full",innerHTML:k.html},null,8,Jl)):(e.openBlock(),e.createElementBlock("span",Ql,[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:m.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(f.value)},null,4)):c.value||d.value?(e.openBlock(),e.createElementBlock("span",ea,[c.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:c.value,width:"16",height:"16",alt:"icon"},null,8,ta)):d.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),{key:1,class:"h-4 w-4",style:e.normalizeStyle(y.value)},null,8,["style"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(k.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(k.label),1)])]))],2))}}),oa={class:"flex items-center"},Xn=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",oa,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value==="vs-checkbox-buttons"?e.unref(na):e.unref(Xl)),{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"]))]))}}),ra={key:0,class:"flex items-start gap-x-1"},la={key:0,class:"text-red-500 text-[14px]"},aa=["title"],sa=["disabled"],Zn=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",ra,[e.createVNode(Xn,{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",la,"*")):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,aa)):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,sa))}}),ia=["id","innerHTML"],Jn=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,ia))}}),ca=["placeholder","disabled","name"],hn=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}=et(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 m=!1;for(let h=0;h<i.length;h+=1){const y=i[h];y==="{"?m=!0:y==="}"?m=!1:m&&d.add(y)}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,ca))}}),da={class:"relative w-full bg-white rounded-lg"},ua={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},pa=["placeholder","disabled"],Qn=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}=et(t.style),r=e.useModel(o,"modelValue");return(l,a)=>(e.openBlock(),e.createElementBlock("div",da,[e.createElementVNode("div",ua,[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,pa),[[e.vModelText,r.value]])]))}}),_t="+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 ma={class:"relative w-full bg-white rounded-lg"},fa={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] pointer-events-none"},ha=["name","placeholder","disabled","pattern"],eo=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:_t}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.computed(()=>`^\\+[1-9]\\d{${(St(t.mask||_t)||St(_t))-1}}$`),{inputClass:r}=et(t.style),l=e.useModel(o,"modelValue"),a=e.ref(null);let s=null;function i(m){const p={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},h=new Set;let y=!1;for(let k=0;k<m.length;k+=1){const b=m[k];b==="{"?y=!0:b==="}"?y=!1:y&&h.add(b)}const f={};return Object.keys(p).forEach(k=>{h.has(k)||(f[k]=p[k])}),{mask:m,definitions:f,lazy:!1,disabled:t.disabled}}function c(m){if(m==null||m==="")return"";const p=String(m).trim();return p?p.replace(/\D/g,""):""}function d(){if(!s)return;const m=s.unmaskedValue??"";l.value=m?`+${m}`:""}return e.onMounted(async()=>{if(!a.value)return;const{default:m}=await Promise.resolve().then(()=>Pn),p=i(t.mask||"");s=m(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,m=>{s&&s.updateOptions(i(m||""))}),e.watch(()=>t.disabled,m=>{s&&s.updateOptions({disabled:m})}),e.watch(l,m=>{if(!s)return;const p=c(m);s.unmaskedValue!==p&&(s.unmaskedValue=p)}),(m,p)=>(e.openBlock(),e.createElementBlock("div",ma,[e.createElementVNode("div",fa,[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:m.name,placeholder:m.placeholder,disabled:m.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":m.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,ha)]))}}),ga=["value","disabled"],ya=["innerHTML"],ba={key:1,class:"flex items-center gap-2"},ka=["src"],xa={class:"text-[13px] text-gray-700"},wa=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(()=>Yt(t.option)),a=e.computed(()=>Xt(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),m=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]=y=>n.value=y),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,ga),[[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,ya)):(e.openBlock(),e.createElementBlock("div",ba,[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(m.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,ka)):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",xa,e.toDisplayString(t.text),1)]))],2))}}),_a=["value","disabled"],va=["innerHTML"],Ca={key:1,class:"flex items-center gap-2"},Ea=["src"],Ba={class:"text-[13px] text-gray-700"},Va={"vs-input-radio-default":wa,"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(()=>Yt(t.option)),a=e.computed(()=>Xt(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),m=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]=y=>n.value=y),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,_a),[[e.vModelRadio,n.value]]),t.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:t.html},null,8,va)):(e.openBlock(),e.createElementBlock("div",Ca,[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(m.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,Ea)):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",Ba,e.toDisplayString(t.text),1)]))],2))}})},Oo=o=>Array.isArray(o)?o:Array.isArray(o?.data)?o.data:[],Ro=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(`${Ro(l)}?${a.toString()}`)).json();return Oo(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(`${Ro(l)}?${a.toString()}`)).json();return Oo(i)[0]??null}catch{return null}}}),gn=({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}},$a=/\{\{\s*([^}]+?)\s*\}\}/g,Na=o=>(o?String(o):"").replace(/<[^>]*>/g,"").trim(),Aa=(o,t)=>t.split(".").reduce((n,r)=>n==null?n:n[r.trim()],o),yn=(o,t)=>{if(!o)return"";const n=(t??"").trim();return n?n.replace($a,(r,l)=>{const a=String(l).trim(),s=o,c=(a.includes(".")?Aa(s,a):void 0)??s[a];return c!=null?String(c):""}):o.text??""},bn=(o,t)=>{if(!o)return"";const n=yn(o,t);return Na(n)||o.text||""},to=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(()=>Va[`vs-input-radio-${t.view}`]),l=e.computed(()=>t.slot??t?.optionTemplate??""),a=e.computed(()=>fn(l.value)),s=y=>yn(y,l.value),i=y=>bn(y,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)"}}),m=e.inject("values",null),{optionsList:p,loadOptions:h}=gn({props:t,formValues:m});return e.onMounted(async()=>{await h()}),(y,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(c.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(p),k=>(e.openBlock(),e.createElementBlock("div",{key:k?.id,class:e.normalizeClass(["flex items-stretch",y.position==="horizontal"?t.customClass:""]),style:e.normalizeStyle(d.value)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value),e.mergeProps({text:i(k),html:a.value?s(k):"",option:k,value:k.id.toString(),checked:n.value?.toString?.()===k.id?.toString?.(),"custom-class":y.position==="horizontal"?"":t.customClass,modelValue:n.value,"onUpdate:modelValue":f[0]||(f[0]=b=>n.value=b)},{ref_for:!0},y.$attrs),null,16,["text","html","option","value","checked","custom-class","modelValue"]))],6))),128))],2))}}),Ma={key:1,class:"w-full flex flex-col gap-4"},Fa={key:0,class:"text-sm font-medium text-muted-foreground my-2"},Da="Без категорії",Ta=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}=gn({props:{...n,options:n.options},formValues:a}),c=e.computed(()=>s.value),d=x=>x?.value||x?.id||x?.text||x,m=e.computed(()=>n.slot??n?.optionTemplate??""),p=e.computed(()=>fn(m.value)),h=x=>yn(x,m.value),y=x=>bn(x,m.value),f=x=>`lg:col-span-${x||12}`,k=e.computed(()=>[n.position==="vertical"?"flex flex-col":"",n.colSpan?"grid":"flex justify-start"]),b=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],V=b(E);x.has(V)||x.set(V,[]),x.get(V)?.push(L)});const _=[];n.values?.length&&n.values.forEach(L=>{const E=b(L);_.push(E)});const N=new Set,U=L=>{const E=x.get(L)||[];if(!E.length)return null;const V=L===null?"group-null":`group-${String(L)}`,S=L===null?Da:String(L);return N.add(L),{key:V,label:S,options:E}},Y=[];return _.forEach(L=>{const E=U(L);E&&Y.push(E)}),x.forEach((L,E)=>{if(N.has(E))return;const V=U(E);V&&Y.push(V)}),Y});return e.watch(()=>n.modelValue,x=>{if(typeof x=="boolean"&&c.value.length===1){const _=d(c.value[0]);l[_]=x}else if(Array.isArray(x)){const _=new Set(x);c.value.forEach(N=>{if(!N.disabled){const U=d(N);l[U]=_.has(U)}})}},{immediate:!0}),e.watch(l,()=>{if(!c.value.length){r("update:modelValue",null);return}const x=Object.entries(l).filter(([,_])=>_).map(([_])=>_);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(_=>{if(!_.disabled){const N=d(_);l[N]=x.has(N)}})}}),(x,_)=>n.group?(e.openBlock(),e.createElementBlock("div",Ma,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.value,N=>(e.openBlock(),e.createElementBlock("div",{key:N.key,class:"flex flex-col gap-2"},[N.label?(e.openBlock(),e.createElementBlock("span",Fa,e.toDisplayString(N.label),1)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-0 w-full gap-[12px]",k.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.options,U=>(e.openBlock(),e.createBlock(Xn,{modelValue:l[d(U)],"onUpdate:modelValue":Y=>l[d(U)]=Y,value:d(U),class:e.normalizeClass(f(x.colSpan)),disabled:n.disabled||U.disabled,label:y(U),labelHtml:p.value?h(U):"",key:`${N.key}-${d(U)}`,icon:U?.icon,imgUrl:U?.imgUrl,option:U,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]",k.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,N=>(e.openBlock(),e.createBlock(Xn,{modelValue:l[d(N)],"onUpdate:modelValue":U=>l[d(N)]=U,value:d(N),class:e.normalizeClass(f(x.colSpan)),disabled:n.disabled||N.disabled,label:y(N),labelHtml:p.value?h(N):"",key:d(N),icon:N?.icon,imgUrl:N?.imgUrl,option:N,view:x.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2))}}),ve=(o,t)=>{const n=o.__vccOpts||o;for(const[r,l]of t)n[r]=l;return n},Po=ve(Ta,[["__scopeId","data-v-9056e0ec"]]),La=1440*60*1e3,Ia=["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"],Oa=["січ","лют","бер","квіт","трав","черв","лип","серп","вер","жовт","лист","груд"],Ra=["нд","пн","вт","ср","чт","пт","сб"];function Xe(o){return o instanceof Date&&!Number.isNaN(o.getTime())}const qt=o=>new Date(o.getTime());function Ot(o){const t=qt(o);return t.setHours(0,0,0,0),t}function Zt(o){const t=qt(o);return t.setHours(23,59,59,999),t}function no(o){return Ot(new Date(o.getFullYear(),o.getMonth(),1))}function oo(o){return Zt(new Date(o.getFullYear(),o.getMonth()+1,0))}function ro(o,t){const n=new Date(o),r=n.getDate();n.setDate(1),n.setMonth(n.getMonth()+t);const l=new Date(n.getFullYear(),n.getMonth()+1,0).getDate();return n.setDate(Math.min(r,l)),n}function Pa(o,t){return ro(o,-1)}function kn(o,t){const n=new Date(o);return n.setFullYear(n.getFullYear()+t),n}function zo(o,t){return kn(o,-t)}function jo(o){return Ot(new Date(o.getFullYear(),0,1))}function Uo(o){return Zt(new Date(o.getFullYear(),11,31))}function za(o){const t=Math.floor(o.getFullYear()/10)*10;return Ot(new Date(t,0,1))}function ja(o){const t=Math.floor(o.getFullYear()/10)*10+9;return Zt(new Date(t,11,31))}const ft=o=>o.getFullYear(),xn=o=>Math.floor(o.getFullYear()/10)*10;function Ua(o){const t=[];let n=Ot(o.start);const r=Ot(o.end);for(;n<=r;)t.push(qt(n)),n=new Date(n.getTime()+La);return t}function Ha(o){const t=[];let n=no(o.start);const r=oo(o.end);for(;n<=r;)t.push(qt(n)),n=ro(n,1);return t}function qa(o){const t=[];let n=jo(o.start);const r=Uo(o.end);for(;n<=r;)t.push(qt(n)),n=kn(n,1);return t}function lo(o,t=1){const n=Ot(o),r=(n.getDay()-t+7)%7;return n.setDate(n.getDate()-r),n}function Ka(o,t=1){const n=lo(o,t);return n.setDate(n.getDate()+6),Zt(n)}function Wa(o,t,n=0){const r=lo(o,n),l=(t-n+7)%7;return r.setDate(r.getDate()+l),r}const wn=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear()&&o.getMonth()===t.getMonth()&&o.getDate()===t.getDate(),ao=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear()&&o.getMonth()===t.getMonth(),Ho=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear(),qo=(o,t)=>!!o&&!!t&&wn(o,t)&&o.getHours()===t.getHours(),Ga=(o,t)=>!!o&&!!t&&qo(o,t)&&o.getMinutes()===t.getMinutes();function Ya(o,t){const n=o.getTime();return n>=t.start.getTime()&&n<=t.end.getTime()}const Jt=(o,t)=>!!o&&!!t&&o.getTime()<t.getTime(),Qt=(o,t)=>!!o&&!!t&&o.getTime()>t.getTime();function Xa(o){const t=o.filter(n=>Xe(n));if(t.length)return t.reduce((n,r)=>n.getTime()>=r.getTime()?n:r)}function Za(o){const t=o.filter(n=>Xe(n));if(t.length)return t.reduce((n,r)=>n.getTime()<=r.getTime()?n:r)}function Ja(o,t){const n=qt(o);return typeof t.year=="number"&&n.setFullYear(t.year),typeof t.month=="number"&&n.setMonth(t.month),typeof t.date=="number"&&n.setDate(t.date),typeof t.hours=="number"&&n.setHours(t.hours),typeof t.minutes=="number"&&n.setMinutes(t.minutes),typeof t.seconds=="number"&&n.setSeconds(t.seconds),typeof t.milliseconds=="number"&&n.setMilliseconds(t.milliseconds),n}const _n=(o,t=2)=>String(o).padStart(t,"0");function Ko(o,t){return t==="wide"?Ia[o]:Oa[o]}function Qa(o){return Ra[o]}const es=[{token:"LLLL",format:o=>Ko(o.getMonth(),"wide")},{token:"LLL",format:o=>Ko(o.getMonth(),"abbreviated")},{token:"EE",format:o=>Qa(o.getDay())},{token:"yyyy",format:o=>String(o.getFullYear())},{token:"MM",format:o=>_n(o.getMonth()+1)},{token:"dd",format:o=>_n(o.getDate())},{token:"HH",format:o=>_n(o.getHours())},{token:"mm",format:o=>_n(o.getMinutes())}];function en(o,t){if(!Xe(o))return"";let n="",r=0;for(;r<t.length;){const l=es.find(a=>t.startsWith(a.token,r));l?(n+=l.format(o),r+=l.token.length):(n+=t[r],r+=1)}return n}const ts={"yyyy-MM-dd":/^(\d{4})-(\d{2})-(\d{2})$/,"dd.MM.yyyy":/^(\d{2})\.(\d{2})\.(\d{4})$/,"dd.MM.yyyy HH:mm":/^(\d{2})\.(\d{2})\.(\d{4}) (\d{2}):(\d{2})$/,"HH:mm":/^(\d{2}):(\d{2})$/,"MM.yyyy":/^(\d{2})\.(\d{4})$/,yyyy:/^(\d{4})$/};function Wo(o,t){const n=ts[t];if(!n){const l=new Date(o);return Xe(l)?l:null}const r=o.match(n);if(!r)return null;switch(t){case"yyyy-MM-dd":{const[,l,a,s]=r,i=new Date(Number(l),Number(a)-1,Number(s));return Xe(i)?i:null}case"dd.MM.yyyy":{const[,l,a,s]=r,i=new Date(Number(s),Number(a)-1,Number(l));return Xe(i)?i:null}case"dd.MM.yyyy HH:mm":{const[,l,a,s,i,c]=r,d=new Date(Number(s),Number(a)-1,Number(l),Number(i),Number(c));return Xe(d)?d:null}case"HH:mm":{const[,l,a]=r,s=new Date;return s.setHours(Number(l),Number(a),0,0),s}case"MM.yyyy":{const[,l,a]=r;return new Date(Number(a),Number(l)-1,1)}case"yyyy":{const[,l]=r;return new Date(Number(l),0,1)}default:return null}}const ns=["year","month","day","time","custom"],os=e.defineComponent({components:{ChevronLeft:H.ChevronLeft,ChevronRight:H.ChevronRight},emits:{elementClick:o=>Xe(o),left:()=>!0,right:()=>!0,heading:()=>!0,today:()=>!0,clear:()=>!0},props:{headingClickable:{type:Boolean,default:!1},leftDisabled:{type:Boolean,default:!1},rightDisabled:{type:Boolean,default:!1},columnCount:{type:Number,default:7},items:{type:Array,default:()=>[]},viewMode:{type:String,required:!0,validate:o=>typeof o=="string"&&ns.includes(o)},showButtonBar:{type:Boolean,default:!1},hideHeader:{type:Boolean,default:!1}},setup(){const t=e.getCurrentInstance()?.appContext?.config?.globalProperties?.$t,n=e.computed(()=>{const l=t?.("form.date.today");return l&&l!=="form.date.today"?l:"Сьогодні"}),r=e.computed(()=>{const l=t?.("form.date.clear");return l&&l!=="form.date.clear"?l:"Очистити"});return{todayLabel:n,clearLabel:r}}}),rs={key:0,class:"p-datepicker-header flex items-center justify-between mb-1.5"},ls=["disabled"],as=["disabled"],ss={key:0,class:"p-datepicker-weekheader grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-400 font-medium mb-1.5"},is=["disabled","onClick"],cs={key:1,class:"p-datepicker-buttonbar mt-2 pt-2 border-t border-slate-200 flex items-center justify-between"};function ds(o,t,n,r,l,a){const s=e.resolveComponent("ChevronLeft"),i=e.resolveComponent("ChevronRight");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["p-datepicker-panel p-component text-center text-slate-700 overflow-x-hidden bg-white border border-slate-200 rounded-xl shadow-[0_4px_12px_rgba(0,0,0,0.1)] p-2",o.viewMode==="month"||o.viewMode==="year"?"w-[182px] min-w-[182px]":"w-[268px] min-w-[182px]"]),style:e.normalizeStyle({"--popout-column-definition":`repeat(${o.columnCount}, 1fr)`}),onMousedown:t[5]||(t[5]=e.withModifiers(()=>{},["prevent"]))},[o.hideHeader?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",rs,[e.createElementVNode("button",{class:"p-datepicker-prev-button inline-flex items-center justify-center size-8 rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300 disabled:hover:bg-transparent",disabled:o.leftDisabled,onClick:t[0]||(t[0]=e.withModifiers(c=>o.$emit("left"),["stop","prevent"]))},[e.renderSlot(o.$slots,"arrow-left",{},()=>[e.createVNode(s,{class:"h-3.5 w-3.5"})])],8,ls),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.headingClickable?"button":"span"),{class:e.normalizeClass(["p-datepicker-title min-w-0 rounded-md px-2 py-1 text-sm font-semibold leading-snug text-slate-700",o.headingClickable?"hover:bg-slate-100":"",o.viewMode==="month"?"p-datepicker-select-year":"",o.viewMode==="year"?"p-datepicker-decade whitespace-nowrap text-xs px-1":""]),onClick:t[1]||(t[1]=e.withModifiers(c=>o.$emit("heading"),["stop","prevent"]))},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"heading")]),_:3},8,["class"])),e.createElementVNode("button",{class:"p-datepicker-next-button inline-flex items-center justify-center size-8 rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300 disabled:hover:bg-transparent",disabled:o.rightDisabled,onClick:t[2]||(t[2]=e.withModifiers(c=>o.$emit("right"),["stop","prevent"]))},[e.renderSlot(o.$slots,"arrow-right",{},()=>[e.createVNode(i,{class:"h-3.5 w-3.5"})])],8,as)])),e.createElementVNode("div",null,["subheading"in o.$slots?(e.openBlock(),e.createElementBlock("div",ss,[e.renderSlot(o.$slots,"subheading")])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-datepicker-calendar grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-700",o.viewMode==="month"?"p-datepicker-month-view":"",o.viewMode==="year"?"p-datepicker-year-view":"",o.viewMode==="month"?"gap-y-1":""])},[e.renderSlot(o.$slots,"body",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.items,c=>(e.openBlock(),e.createElementBlock("button",{key:c.key,disabled:c.disabled,class:e.normalizeClass(["p-[2px] disabled:text-slate-300"]),onClick:e.withModifiers(d=>o.$emit("elementClick",c.value),["stop","prevent"])},[e.createElementVNode("span",{class:e.normalizeClass([o.viewMode==="month"||o.viewMode==="year"?"inline-flex w-full h-8 items-center justify-center rounded-md text-[13px] font-normal transition-colors":"inline-flex w-8 h-8 items-center justify-center rounded-full text-[13px] font-normal transition-colors",o.viewMode==="month"?"p-datepicker-month":"",o.viewMode==="year"?"p-datepicker-year":"",o.viewMode==="day"?"p-datepicker-day":"",c.selected?"bg-blue-500 text-white font-semibold":"",c.current&&!c.selected&&o.viewMode!=="month"&&o.viewMode!=="year"?"border border-slate-300 font-medium":"",!c.disabled&&!c.selected?"hover:bg-slate-100 hover:text-slate-700":"",!c.current&&!c.selected&&c.disabled?"text-slate-300":""])},e.toDisplayString(c.display),3)],8,is))),128))])],2),e.renderSlot(o.$slots,"after-calendar"),o.showButtonBar?(e.openBlock(),e.createElementBlock("div",cs,[e.createElementVNode("button",{type:"button",class:"p-datepicker-today-button text-xs font-medium text-slate-500 hover:text-slate-700 transition-colors px-1.5 py-1 rounded-md hover:bg-slate-100",onClick:t[3]||(t[3]=e.withModifiers(c=>o.$emit("today"),["stop","prevent"]))},e.toDisplayString(o.todayLabel),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-clear-button text-xs font-medium text-slate-500 hover:text-slate-700 transition-colors px-1.5 py-1 rounded-md hover:bg-slate-100",onClick:t[4]||(t[4]=e.withModifiers(c=>o.$emit("clear"),["stop","prevent"]))},e.toDisplayString(o.clearLabel),1)])):e.createCommentVNode("",!0)])],38)}const vn=ve(os,[["render",ds]]),us=e.defineComponent({components:{PickerPopup:vn},emits:{"update:pageDate":o=>Xe(o),select:o=>Xe(o)},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(o,{emit:t}){const n=e.computed(()=>za(o.pageDate)),r=e.computed(()=>ja(o.pageDate)),l=(p,h,y)=>!h&&!y?!0:!(h&&ft(p)<ft(h)||y&&ft(p)>ft(y)),a=e.computed(()=>qa({start:n.value,end:r.value}).map(p=>({value:p,key:String(ft(p)),display:ft(p),selected:!!o.selected&&ft(p)===ft(o.selected),disabled:!l(p,o.lowerLimit,o.upperLimit)}))),s=e.computed(()=>{const p=ft(n.value),h=ft(r.value);return`${p} - ${h}`}),i=e.computed(()=>o.lowerLimit&&(xn(o.lowerLimit)===xn(o.pageDate)||Jt(o.pageDate,o.lowerLimit))),c=e.computed(()=>o.upperLimit&&(xn(o.upperLimit)===xn(o.pageDate)||Qt(o.pageDate,o.upperLimit)));return{years:a,heading:s,leftDisabled:i,rightDisabled:c,previousPage:()=>t("update:pageDate",zo(o.pageDate,10)),nextPage:()=>t("update:pageDate",kn(o.pageDate,10))}}});function ps(o,t,n,r,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{columnCount:2,leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,items:o.years,viewMode:"year",onLeft:o.previousPage,onRight:o.nextPage,onElementClick:t[0]||(t[0]=i=>o.$emit("select",i))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const ms=ve(us,[["render",ps]]),fs=e.defineComponent({components:{PickerPopup:vn},emits:{"update:pageDate":o=>Xe(o),select:o=>Xe(o),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},format:{type:String,required:!1,default:"LLL"},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(o,{emit:t}){const n=e.computed(()=>jo(o.pageDate)),r=e.computed(()=>Uo(o.pageDate)),l=e.computed(()=>h=>en(h,o.format)),a=(h,y,f)=>!y&&!f?!0:!(y&&Jt(h,no(y))||f&&Qt(h,oo(f))),s=e.computed(()=>Ha({start:n.value,end:r.value}).map(h=>({value:h,display:l.value(h),key:l.value(h),selected:!!o.selected&&ao(o.selected,h),disabled:!a(h,o.lowerLimit,o.upperLimit)}))),i=e.computed(()=>ft(n.value)),c=e.computed(()=>o.lowerLimit&&(Ho(o.lowerLimit,o.pageDate)||Jt(o.pageDate,o.lowerLimit))),d=e.computed(()=>o.upperLimit&&(Ho(o.upperLimit,o.pageDate)||Qt(o.pageDate,o.upperLimit)));return{months:s,heading:i,leftDisabled:c,rightDisabled:d,previousPage:()=>t("update:pageDate",zo(o.pageDate,1)),nextPage:()=>t("update:pageDate",kn(o.pageDate,1))}}});function hs(o,t,n,r,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",columnCount:3,items:o.months,leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,viewMode:"month",onLeft:o.previousPage,onRight:o.nextPage,onHeading:t[0]||(t[0]=i=>o.$emit("back")),onElementClick:t[1]||(t[1]=i=>o.$emit("select",i))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),_:1},8,["items","leftDisabled","rightDisabled","onLeft","onRight"])}const gs=ve(fs,[["render",hs]]),ys=e.defineComponent({components:{PickerPopup:vn},emits:{"update:pageDate":o=>Xe(o),select:o=>Xe(o),back:()=>!0,today:()=>!0,clear:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},format:{type:String,required:!1,default:"dd"},headingFormat:{type:String,required:!1,default:"LLLL yyyy"},weekdayFormat:{type:String,required:!1,default:"EE"},weekStartsOn:{type:Number,required:!1,default:1,validator:o=>typeof o=="number"&&Number.isInteger(o)&&o>=0&&o<=6},customWeekdays:{type:Array,required:!1},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1},disabledDates:{type:Object,required:!1},allowOutsideInterval:{type:Boolean,required:!1,default:!1}},setup(o,{emit:t}){const n=e.computed(()=>b=>C=>en(C,b)),r=e.computed(()=>no(o.pageDate)),l=e.computed(()=>oo(o.pageDate)),a=e.computed(()=>({start:r.value,end:l.value})),s=e.computed(()=>({start:lo(r.value,o.weekStartsOn),end:Ka(l.value,o.weekStartsOn)})),i=e.computed(()=>o.customWeekdays?.length===7?o.customWeekdays:null),c=e.computed(()=>{const b=o.weekStartsOn,C=i.value;if(C)return Array.from({length:7}).map((_,N)=>C[(b+N)%7]);const x=n.value(o.weekdayFormat);return Array.from(Array(7)).map((_,N)=>(b+N)%7).map(_=>Wa(new Date,_,o.weekStartsOn)).map(x)}),d=(b,C,x,_)=>_?.dates?.some(N=>wn(b,N))||_?.predicate?.(b)?!1:!C&&!x?!0:!(C&&Jt(b,Ot(C))||x&&Qt(b,Zt(x))),m=e.computed(()=>{const b=new Date,C=n.value(o.format);return Ua(s.value).map(x=>({value:x,display:C(x),selected:!!o.selected&&wn(o.selected,x),current:wn(b,x),disabled:!o.allowOutsideInterval&&!Ya(x,a.value)||!d(x,o.lowerLimit,o.upperLimit,o.disabledDates),key:n.value("yyyy-MM-dd")(x)}))}),p=e.computed(()=>n.value(o.headingFormat)(o.pageDate)),h=e.computed(()=>o.lowerLimit&&(ao(o.lowerLimit,o.pageDate)||Jt(o.pageDate,o.lowerLimit))),y=e.computed(()=>o.upperLimit&&(ao(o.upperLimit,o.pageDate)||Qt(o.pageDate,o.upperLimit)));return{weekDays:c,days:m,heading:p,leftDisabled:h,rightDisabled:y,previousPage:()=>t("update:pageDate",Pa(o.pageDate)),nextPage:()=>t("update:pageDate",ro(o.pageDate,1))}}});function bs(o,t,n,r,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,items:o.days,showButtonBar:!0,viewMode:"day",onLeft:o.previousPage,onRight:o.nextPage,onHeading:t[0]||(t[0]=i=>o.$emit("back")),onElementClick:t[1]||(t[1]=i=>o.$emit("select",i)),onToday:t[2]||(t[2]=i=>o.$emit("today")),onClear:t[3]||(t[3]=i=>o.$emit("clear"))},e.createSlots({heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),subheading:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.weekDays,(i,c)=>(e.openBlock(),e.createElementBlock("span",{key:i,class:e.normalizeClass(`v3dp__subheading__weekday__${c}`)},e.toDisplayString(i),3))),128))]),_:2},[o.$slots["after-calendar"]?{name:"after-calendar",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"after-calendar")]),key:"0"}:void 0]),1032,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const ks=ve(ys,[["render",bs]]),xs=e.defineComponent({components:{PickerPopup:vn,ChevronUp:H.ChevronUp,ChevronDown:H.ChevronDown},emits:{select:o=>Xe(o),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},visible:{type:Boolean,required:!0},disabledTime:{type:Object,required:!1},embedded:{type:Boolean,default:!1}},setup(o,{emit:t}){const n=e.computed(()=>o.pageDate??o.selected),r=e.ref(n.value.getHours()),l=e.ref(n.value.getMinutes());e.watch(()=>o.selected,y=>{let f=0,k=0;y&&(f=y.getHours(),k=y.getMinutes()),r.value=f,l.value=k});const a=(y,f)=>{const k=Ja(new Date(n.value.getTime()),{hours:y,minutes:f,seconds:0});p(k)&&(r.value=y,l.value=f,t("select",k))},s=(y,f)=>y<0?f:y>f?0:y,i=()=>a(s(r.value+1,23),l.value),c=()=>a(s(r.value-1,23),l.value),d=()=>a(r.value,s(l.value+1,59)),m=()=>a(r.value,s(l.value-1,59)),p=y=>!(o.disabledTime?.dates?.some(f=>qo(y,f)&&Ga(y,f))||o.disabledTime?.predicate?.(y));return{hours:r,minutes:l,padStartZero:y=>`0${y}`.substr(-2),isEnabled:p,incrementHours:i,decrementHours:c,incrementMinutes:d,decrementMinutes:m}}}),ws={key:0,class:"p-datepicker-time-picker mt-2 pt-2 border-t border-slate-200 flex items-center justify-center gap-2 py-1"},_s={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},vs={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Cs={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},Es={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Bs={class:"col-span-2"},Vs={class:"p-datepicker-time-picker flex items-center justify-center gap-2 py-1"},Ss={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},$s={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Ns={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},As={class:"min-w-8 text-center text-sm font-medium text-slate-700"};function Ms(o,t,n,r,l,a){const s=e.resolveComponent("ChevronUp"),i=e.resolveComponent("ChevronDown"),c=e.resolveComponent("picker-popup");return o.embedded?(e.openBlock(),e.createElementBlock("div",ws,[e.createElementVNode("div",_s,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[0]||(t[0]=e.withModifiers((...d)=>o.incrementHours&&o.incrementHours(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",vs,e.toDisplayString(o.padStartZero(o.hours)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[1]||(t[1]=e.withModifiers((...d)=>o.decrementHours&&o.decrementHours(...d),["stop","prevent"]))},[e.createVNode(i,{class:"h-3.5 w-3.5"})])]),t[8]||(t[8]=e.createElementVNode("div",{class:"text-base font-medium text-slate-500"},":",-1)),e.createElementVNode("div",Cs,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[2]||(t[2]=e.withModifiers((...d)=>o.incrementMinutes&&o.incrementMinutes(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",Es,e.toDisplayString(o.padStartZero(o.minutes)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[3]||(t[3]=e.withModifiers((...d)=>o.decrementMinutes&&o.decrementMinutes(...d),["stop","prevent"]))},[e.createVNode(i,{class:"h-3.5 w-3.5"})])])])):(e.openBlock(),e.createBlock(c,{key:1,hideHeader:!0,columnCount:2,viewMode:"time"},{body:e.withCtx(()=>[e.createElementVNode("div",Bs,[e.createElementVNode("div",Vs,[e.createElementVNode("div",Ss,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[4]||(t[4]=e.withModifiers((...d)=>o.incrementHours&&o.incrementHours(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",$s,e.toDisplayString(o.padStartZero(o.hours)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[5]||(t[5]=e.withModifiers((...d)=>o.decrementHours&&o.decrementHours(...d),["stop","prevent"]))},[e.createVNode(i,{class:"h-3.5 w-3.5"})])]),t[9]||(t[9]=e.createElementVNode("div",{class:"text-base font-medium text-slate-500"},":",-1)),e.createElementVNode("div",Ns,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[6]||(t[6]=e.withModifiers((...d)=>o.incrementMinutes&&o.incrementMinutes(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",As,e.toDisplayString(o.padStartZero(o.minutes)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[7]||(t[7]=e.withModifiers((...d)=>o.decrementMinutes&&o.decrementMinutes(...d),["stop","prevent"]))},[e.createVNode(i,{class:"h-3.5 w-3.5"})])])])])]),_:1}))}const Fs=ve(xs,[["render",Ms]]),Cn=["time","day","month","year"],Ds=(o,t,n=void 0)=>{let r=n||new Date;const l=Xa([o,r]);l&&(r=l);const a=Za([t,r]);return a&&(r=a),r},Ts=e.defineComponent({components:{YearPicker:ms,MonthPicker:gs,DayPicker:ks,TimePicker:Fs,CalendarDays:H.CalendarDays,Clock3:H.Clock3,X:H.X},inheritAttrs:!1,props:{placeholder:{type:String,default:""},modelValue:{type:Date,required:!1},disabledDates:{type:Object,required:!1},allowOutsideInterval:{type:Boolean,required:!1,default:!1},disabledTime:{type:Object,required:!1},upperLimit:{type:Date,required:!1},lowerLimit:{type:Date,required:!1},startingView:{type:String,required:!1,default:"day",validate:o=>typeof o=="string"&&Cn.includes(o)},startingViewDate:{type:Date,required:!1,default:()=>new Date},dayPickerHeadingFormat:{type:String,required:!1,default:"LLLL yyyy"},monthListFormat:{type:String,required:!1,default:"LLL"},weekdayFormat:{type:String,required:!1,default:"EE"},dayFormat:{type:String,required:!1,default:"dd"},inputFormat:{type:String,required:!1,default:"yyyy-MM-dd"},weekDayNames:{type:Array,required:!1},weekStartsOn:{type:Number,required:!1,default:1,validator:o=>[0,1,2,3,4,5,6].includes(o)},disabled:{type:Boolean,required:!1,default:!1},clearable:{type:Boolean,required:!1,default:!1},typeable:{type:Boolean,required:!1,default:!1},minimumView:{type:String,required:!1,default:"day",validate:o=>typeof o=="string"&&Cn.includes(o)}},emits:{"update:modelValue":o=>o==null||Xe(o),decadePageChanged:o=>!0,yearPageChanged:o=>!0,monthPageChanged:o=>!0,opened:()=>!0,closed:()=>!0},setup(o,{emit:t}){const n=e.ref("none"),r=e.ref(o.startingViewDate),l=e.ref(null),a=e.ref(null),s=e.ref(null),i=e.ref({}),c=e.ref(!1),d=e.ref(!1);let m=null;const p=e.ref(""),h=ne=>{const le=ne.replace(/[a-zA-Z]/g,"0");return/0/.test(le)?le:""},y=e.computed(()=>h(o.inputFormat));let f=null,k=null;const b=()=>{f?.destroy(),f=null},C=async()=>{if(!k){const{default:ne}=await Promise.resolve().then(()=>Pn);k=ne}return k},x=()=>{f&&f.value!==p.value&&(f.value=p.value??"")},_=ne=>{const le=ne&&Xe(ne)?en(ne,o.inputFormat):"";p.value!==le&&(p.value=le),x()},N=async()=>{if(b(),!a.value||!y.value)return;f=(await C())(a.value,{mask:y.value,lazy:!0,overwrite:!1}),x()};e.watch(()=>o.modelValue,ne=>{d.value&&o.typeable||_(ne)},{immediate:!0}),e.watch(()=>o.inputFormat,()=>{d.value&&o.typeable||_(o.modelValue)}),e.onMounted(()=>{y.value&&e.nextTick(()=>{N()})}),e.onBeforeUnmount(()=>{b()}),e.watch(y,ne=>{ne?e.nextTick(()=>{N()}):b()});const U=e.computed(()=>n.value!=="none"),Y=e.computed(()=>o.startingView==="time"&&o.minimumView==="time"),L=e.computed(()=>o.startingView==="day"&&o.minimumView==="time"),E=ne=>{o.disabled||(U.value||(r.value=o.modelValue||Ds(o.lowerLimit,o.upperLimit,r.value),t("opened")),n.value=ne,e.nextTick(()=>Oe()))},V=()=>{U.value&&(m!==null&&(cancelAnimationFrame(m),m=null),n.value="none",t("closed"))},S=(ne="none")=>{ne==="none"?V():E(ne)};e.watchEffect(()=>{o.disabled&&V()});const O=(ne,le)=>{r.value=le,ne==="year"?t("decadePageChanged",le):ne==="month"?t("yearPageChanged",le):ne==="day"&&t("monthPageChanged",le)},B=ne=>{r.value=ne,o.minimumView==="year"?(V(),_(ne),t("update:modelValue",ne)):E("month")},T=ne=>{r.value=ne,o.minimumView==="month"?(V(),_(ne),t("update:modelValue",ne)):E("day")},A=ne=>{const le=L.value?(()=>{const be=o.modelValue||r.value||new Date,Ee=new Date(ne);return Ee.setHours(be.getHours(),be.getMinutes(),0,0),Ee})():ne;r.value=le,o.minimumView==="day"?(V(),_(le),t("update:modelValue",le)):L.value?(_(le),t("update:modelValue",le),E("day")):E("time")},W=ne=>{_(ne),t("update:modelValue",ne)},X=()=>{A(new Date)},ee=()=>{o.clearable&&(V(),_(null),t("update:modelValue",null),r.value=o.startingViewDate)},q=()=>{U.value||E(se.value)},Q=()=>{d.value=!0,c.value=!1,E(se.value)},F=()=>{d.value=!1,o.typeable&&te({closeOnSuccess:!1,revertOnInvalid:!0})},j=ne=>{const le=ne.target;if(p.value=le?.value??"",!o.typeable)return;const be=Wo(p.value,o.inputFormat);be&&p.value===en(be,o.inputFormat)&&(r.value=be)},te=({closeOnSuccess:ne,revertOnInvalid:le})=>{const be=a.value?.value??p.value,Ee=Wo(be,o.inputFormat);return!!Ee&&be===en(Ee,o.inputFormat)&&Ee?(r.value=Ee,_(Ee),t("update:modelValue",Ee),ne&&V(),!0):(_(o.modelValue),!1)},Z=ne=>{const le=ne.keyCode?ne.keyCode:ne.which,be=le===27,Ee=le===13;if(be){V(),a.value?.blur();return}o.typeable&&Ee&&(te({closeOnSuccess:!0,revertOnInvalid:!0})||a.value?.focus())},se=e.computed(()=>{const ne=Cn.indexOf(o.startingView),le=Cn.indexOf(o.minimumView);return ne<le?o.minimumView:o.startingView}),ke=e.computed(()=>o.weekDayNames?.length===7?o.weekDayNames:void 0),oe=()=>o.startingView==="time"&&o.minimumView==="time"?null:E("day"),ye=()=>{if(!a.value||!s.value)return;const ne=4,le=8,be=a.value.getBoundingClientRect(),Ee=s.value.getBoundingClientRect(),We=s.value.firstElementChild?.getBoundingClientRect(),I=window.innerWidth,J=window.innerHeight,ae=window.scrollX||window.pageXOffset,ue=window.scrollY||window.pageYOffset,he=Math.max(160,J-le*2),Ae=Math.min(Ee.height||0,he),Te=J-be.bottom-ne-le,Fe=be.top-ne-le,P=Te<Ae&&Fe>Te;let v=P?be.top-ne-Ae:be.bottom+ne;v=Math.max(le,Math.min(v,J-le-Ae));const M=We?.width||Ee.width||268;let R=be.left;R+M>I-le&&(R=I-le-M),R<le&&(R=le);const ie=P?Math.max(120,be.top-ne-le):Math.max(120,J-be.bottom-ne-le);i.value={position:"absolute",top:`${Math.round(v+ue)}px`,left:`${Math.round(R+ae)}px`,maxHeight:`${Math.round(Math.min(he,ie))}px`,overflowX:"hidden",overflowY:"auto",zIndex:"2147483000"},L.value&&n.value==="day"&&(i.value.minWidth="345px")},Ve=(ne,le)=>ne.bottom>le.top&&ne.top<le.bottom&&ne.right>le.left&&ne.left<le.right,xe=ne=>{const le=[];let be=ne.parentElement;for(;be;){const Ee=window.getComputedStyle(be),ze=Ee.overflowY,We=Ee.overflowX,I=["auto","scroll","hidden","clip"].includes(ze),J=["auto","scroll","hidden","clip"].includes(We);(I||J)&&le.push(be),be=be.parentElement}return le},Le=()=>{if(!a.value)return!1;const ne=a.value.getBoundingClientRect(),le=new DOMRect(0,0,window.innerWidth,window.innerHeight);return Ve(ne,le)?xe(a.value).every(Ee=>Ve(ne,Ee.getBoundingClientRect())):!1},Ne=()=>{if(U.value){if(!Le()){c.value=!0,V();return}Oe();return}c.value&&document.activeElement===a.value&&Le()&&(c.value=!1,E(se.value))};e.watch(n,()=>{U.value&&e.nextTick(()=>Oe())});const Oe=()=>{ye(),m!==null&&cancelAnimationFrame(m),m=requestAnimationFrame(()=>{ye(),m=null})};e.onMounted(()=>{window.addEventListener("resize",Ne),window.addEventListener("scroll",Ne,!0),document.addEventListener("pointerdown",$e,!0)}),e.onBeforeUnmount(()=>{m!==null&&(cancelAnimationFrame(m),m=null),window.removeEventListener("resize",Ne),window.removeEventListener("scroll",Ne,!0),document.removeEventListener("pointerdown",$e,!0)});const $e=ne=>{if(n.value==="none")return;const le=ne.target;if(!le)return;const be=!!l.value?.contains(le),Ee=!!s.value?.contains(le);!be&&!Ee&&(c.value=!1,V())};return{rootRef:l,blur:F,focus:Q,click:q,input:p,inputRef:a,pageDate:r,renderView:S,updatePageDate:O,selectYear:B,selectMonth:T,selectDay:A,selectToday:X,selectTime:W,keyUp:Z,onInput:j,isTimeOnlyMode:Y,isDateTimeMode:L,normalizedWeekdayNames:ke,viewShown:n,goBackFromTimepicker:oe,clearModelValue:ee,initialView:se,log:ne=>console.log(ne),popupAnchorStyle:i,popupRef:s}}}),Ls={ref:"rootRef",class:"relative"},Is={class:"p-datepicker p-component p-inputwrapper relative"},Os=["readonly","value","placeholder","disabled","tabindex"],Rs={class:"p-datepicker-input-icon-container absolute right-2 top-1/2 -translate-y-1/2 pointer-events-none text-slate-400"},Ps={class:"absolute right-8 top-1/2 -translate-y-1/2"};function zs(o,t,n,r,l,a){const s=e.resolveComponent("Clock3"),i=e.resolveComponent("CalendarDays"),c=e.resolveComponent("X"),d=e.resolveComponent("year-picker"),m=e.resolveComponent("month-picker"),p=e.resolveComponent("time-picker"),h=e.resolveComponent("day-picker");return e.openBlock(),e.createElementBlock("div",Ls,[e.createElementVNode("div",Is,[e.createElementVNode("input",e.mergeProps({type:"text",ref:"inputRef",class:"p-inputtext p-component p-datepicker-input",readonly:!o.typeable,value:o.input},o.$attrs,{placeholder:o.placeholder,disabled:o.disabled,tabindex:o.disabled?-1:0,onInput:t[0]||(t[0]=(...y)=>o.onInput&&o.onInput(...y)),onKeyup:t[1]||(t[1]=(...y)=>o.keyUp&&o.keyUp(...y)),onBlur:t[2]||(t[2]=(...y)=>o.blur&&o.blur(...y)),onFocus:t[3]||(t[3]=(...y)=>o.focus&&o.focus(...y)),onClick:t[4]||(t[4]=(...y)=>o.click&&o.click(...y))}),null,16,Os),e.createElementVNode("span",Rs,[o.isTimeOnlyMode?(e.openBlock(),e.createBlock(s,{key:0,class:"h-4 w-4"})):(e.openBlock(),e.createBlock(i,{key:1,class:"h-4 w-4"}))]),e.withDirectives(e.createElementVNode("div",Ps,[e.renderSlot(o.$slots,"clear",{onClear:o.clearModelValue},()=>[e.createElementVNode("button",{type:"button",class:"inline-flex h-5 w-5 items-center justify-center rounded-full text-slate-400 transition-colors hover:bg-slate-100 hover:text-slate-600 focus:outline-none focus:ring-2 focus:ring-blue-500/30","aria-label":"Очистити дату",onClick:t[5]||(t[5]=y=>o.clearModelValue())},[e.createVNode(c,{class:"h-3 w-3"})])])],512),[[e.vShow,o.clearable&&o.modelValue]])]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.withDirectives(e.createElementVNode("div",{ref:"popupRef",style:e.normalizeStyle(o.popupAnchorStyle)},[e.withDirectives(e.createVNode(d,{pageDate:o.pageDate,"onUpdate:pageDate":t[6]||(t[6]=y=>o.updatePageDate("year",y)),selected:o.modelValue,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,onSelect:o.selectYear},null,8,["pageDate","selected","lowerLimit","upperLimit","onSelect"]),[[e.vShow,o.viewShown==="year"]]),e.withDirectives(e.createVNode(m,{pageDate:o.pageDate,"onUpdate:pageDate":t[7]||(t[7]=y=>o.updatePageDate("month",y)),selected:o.modelValue,onSelect:o.selectMonth,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,format:o.monthListFormat,onBack:t[8]||(t[8]=y=>o.viewShown="year")},null,8,["pageDate","selected","onSelect","lowerLimit","upperLimit","format"]),[[e.vShow,o.viewShown==="month"]]),e.withDirectives(e.createVNode(h,{pageDate:o.pageDate,"onUpdate:pageDate":t[9]||(t[9]=y=>o.updatePageDate("day",y)),selected:o.modelValue,weekStartsOn:o.weekStartsOn,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,headingFormat:o.dayPickerHeadingFormat,disabledDates:o.disabledDates,weekdayFormat:o.weekdayFormat,"allow-outside-interval":o.allowOutsideInterval,format:o.dayFormat,"custom-weekdays":o.normalizedWeekdayNames,onSelect:o.selectDay,onToday:o.selectToday,onClear:o.clearModelValue,onBack:t[10]||(t[10]=y=>o.viewShown="month")},e.createSlots({_:2},[o.isDateTimeMode?{name:"after-calendar",fn:e.withCtx(()=>[e.createVNode(p,{embedded:!0,pageDate:o.pageDate,visible:o.viewShown==="day"&&o.isDateTimeMode,selected:o.modelValue,disabledTime:o.disabledTime,onSelect:o.selectTime,onBack:o.goBackFromTimepicker},null,8,["pageDate","visible","selected","disabledTime","onSelect","onBack"])]),key:"0"}:void 0]),1032,["pageDate","selected","weekStartsOn","lowerLimit","upperLimit","headingFormat","disabledDates","weekdayFormat","allow-outside-interval","format","custom-weekdays","onSelect","onToday","onClear"]),[[e.vShow,o.viewShown==="day"]]),e.withDirectives(e.createVNode(p,{pageDate:o.pageDate,visible:o.viewShown==="time",selected:o.modelValue,disabledTime:o.disabledTime,onSelect:o.selectTime,onBack:o.goBackFromTimepicker},null,8,["pageDate","visible","selected","disabledTime","onSelect","onBack"]),[[e.vShow,o.viewShown==="time"&&!o.isDateTimeMode]])],4),[[e.vShow,o.viewShown!=="none"]])]))],512)}const js=ve(Ts,[["render",zs]]),Go=ve(e.defineComponent({__name:"vs-input-date2",props:{clearable:{type:Boolean,default:!0},now:{type:Boolean},editable:{type:Boolean,default:!0},time:{type:Boolean},isInfinity:{type:Boolean},dateFormat:{},mode:{default:"date"},weekStart:{},dayNames:{},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,{inputClass:l}=et(n.style),a=e.getCurrentInstance(),s=e.computed(()=>n.mode?n.mode:n.time?"datetime":"date"),i=e.computed(()=>["py-1.5 px-3 block w-full placeholder:text-[#767f8f] bg-white",l.value,n.customClass,{"!border-red-600":n.error}]),c=e.computed(()=>!n.modelValue&&n.now?new Date:null),d=e.computed({get:()=>L(n.modelValue??c.value,s.value)||void 0,set:F=>r("update:modelValue",E(F,s.value))}),m=["Пн","Вт","Ср","Чт","Пт","Сб","Нд"],p=e.computed(()=>{if(n.dayNames?.length)return n.dayNames.length===7?n.dayNames:m}),h=e.computed(()=>{const F=n.weekStart,j=typeof F=="string"?Number(F):F;return j===void 0||Number.isNaN(j)?1:Math.min(6,Math.max(0,j))}),y=e.computed(()=>{switch(s.value){case"time":return{startingView:"time",minimumView:"time"};case"month":return{startingView:"month",minimumView:"month"};case"year":return{startingView:"year",minimumView:"year"};case"datetime":return{startingView:"day",minimumView:"time"};default:return{startingView:"day",minimumView:"day"}}}),f={date:"dd.MM.yyyy",datetime:"dd.MM.yyyy HH:mm",month:"MM.yyyy",time:"HH:mm",week:"dd.MM.yyyy",year:"yyyy"};function k(){const F=a?.appContext?.config?.globalProperties?.$i18n?.locale;if(typeof F=="string"&&F)return F;if(F&&typeof F=="object"&&"value"in F&&F.value)return String(F.value);if(typeof localStorage<"u"){const j=localStorage.getItem("locale")||localStorage.getItem("language");if(j)return j}return"uk"}function b(){const j=a?.appContext?.config?.globalProperties?.$settings?.dateFormat;if(!j)return"";if(typeof j=="string")return j;if(typeof j=="object"){const te=k();return j[te]||j[te.split("-")[0]]||j.uk||j.en||""}return""}function C(F){return F?F.replaceAll("dd","__DAY2__").replaceAll("d","__DAY1__").replaceAll("mm","__MONTH2__").replaceAll("m","__MONTH1__").replaceAll("yy","__YEAR2__").replaceAll("y","__YEAR1__").replaceAll("__DAY2__","dd").replaceAll("__DAY1__","d").replaceAll("__MONTH2__","MM").replaceAll("__MONTH1__","M").replaceAll("__YEAR2__","yy").replaceAll("__YEAR1__","yyyy"):""}const x=e.computed(()=>{const F=f[s.value]||"dd.MM.yyyy";if(s.value==="time")return F;const j=n.dateFormat||b();if(!j)return F;const te=C(j);return te?s.value==="datetime"?`${te} HH:mm`:te:F});function _(F,j){return F?j==="week"?"рррр-тиждень":F.replaceAll("yyyy","рррр").replaceAll("yy","рр").replaceAll("MM","мм").replaceAll("M","м").replaceAll("dd","дд").replaceAll("d","д").replaceAll("HH","гг").replaceAll("H","г").replaceAll("mm",j==="time"||j==="datetime"?"хх":"мм"):""}const N={date:"дд.мм.рррр",datetime:"дд.мм.рррр гг:хх",month:"мм.рррр",week:"рррр-тиждень",time:"гг:хх",year:"рррр"},U=e.computed(()=>{if(n.placeholder)return n.placeholder;const F=s.value;return _(x.value,F)||N[F]||""}),Y=e.ref(!1);e.watch(()=>n.modelValue,F=>{F?Y.value=!0:n.now||(Y.value=!1)},{immediate:!0}),e.watchEffect(()=>{n.now&&!n.modelValue&&!Y.value&&(r("update:modelValue",E(new Date,s.value)),Y.value=!0)}),e.watch(x,()=>{r("update:modelValue",E(d.value,s.value))});function L(F,j){if(!F)return null;if(F instanceof Date&&!Number.isNaN(F.getTime()))return F;if(typeof F!="string")return null;switch(j){case"datetime":return B(F);case"time":return W(F);case"month":return T(F);case"year":return A(F);case"week":return X(F);case"date":default:return O(F)}}function E(F,j){if(!F)return null;const te=F instanceof Date?F:L(F,j);if(!te)return null;switch(j){case"datetime":return`${V(te)}T${S(te)}`;case"time":return S(te);case"month":return`${te.getFullYear()}-${Q(te.getMonth()+1)}`;case"year":return`${te.getFullYear()}`;case"week":{const{year:Z,week:se}=ee(te);return`${Z}-W${Q(se)}`}case"date":default:return V(te)}}function V(F){return`${F.getFullYear()}-${Q(F.getMonth()+1)}-${Q(F.getDate())}`}function S(F){return`${Q(F.getHours())}:${Q(F.getMinutes())}`}function O(F){const j=F.split("-");if(j.length<3)return null;const[te,Z,se]=j.map(Number);return!te||!Z||!se?null:new Date(te,Z-1,se)}function B(F){const j=F.includes("T")?F:F.replace(" ","T"),te=new Date(j);return Number.isNaN(te.getTime())?null:te}function T(F){const[j,te]=F.split("-").map(Number);return!j||Number.isNaN(te)?null:new Date(j,(te||1)-1,1)}function A(F){const j=Number(F);return j?new Date(j,0,1):null}function W(F){const j=F.match(/^(\d{1,2}):(\d{2})$/);if(!j)return null;const[,te,Z]=j,se=new Date;return se.setHours(Number(te),Number(Z),0,0),se}function X(F){const j=F.match(/^(\d{4})-W(\d{2})$/);if(!j)return null;const[,te,Z]=j,se=Number(Z);return q(Number(te),se)}function ee(F){const j=new Date(Date.UTC(F.getFullYear(),F.getMonth(),F.getDate())),te=j.getUTCDay()||7;j.setUTCDate(j.getUTCDate()+4-te);const Z=new Date(Date.UTC(j.getUTCFullYear(),0,1)),se=Math.ceil(((j.getTime()-Z.getTime())/864e5+1)/7);return{year:j.getUTCFullYear(),week:se}}function q(F,j){if(!F||!j)return null;const te=new Date(F,0,1+(j-1)*7),Z=te.getDay(),se=te;return Z<=4?se.setDate(te.getDate()-te.getDay()+1):se.setDate(te.getDate()+8-te.getDay()),se}function Q(F){return String(F).padStart(2,"0")}return(F,j)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-date-picker",n.customClass])},[e.createVNode(js,{modelValue:d.value,"onUpdate:modelValue":j[0]||(j[0]=te=>d.value=te),placeholder:U.value,disabled:n.disabled,clearable:n.clearable,typeable:n.editable,"week-day-names":p.value,"week-starts-on":h.value,"starting-view":y.value.startingView,"minimum-view":y.value.minimumView,"input-format":x.value,name:n.name,class:e.normalizeClass(i.value)},null,8,["modelValue","placeholder","disabled","clearable","typeable","week-day-names","week-starts-on","starting-view","minimum-view","input-format","name","class"])],2))}}),[["__scopeId","data-v-77e949dd"]]),Us=(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},Yo=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=Us(c,i);return(await fetch(d,{method:"POST",body:n}).then(p=>p.json()))?.result}catch(n){return ge.notify({type:"error",title:"Помилка!",message:"Сталась помилка під час завантаження файлу",position:"right-bottom"}),console.error("Сталась помилка завантаження файлу",n),null}},Hs=async o=>{try{return await fetch(`file/delete${o}`),!0}catch(t){return console.error(t),!1}},Xo=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)}},qs=o=>{if(!o)return"";const t=o?.split(".");return t[t.length-1]},Ks=o=>{const t=qs(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},Ws=["title"],Gs={class:"absolute hidden top-0 right-0 flex items-center gap-x-2 w-full h-full justify-center"},so=ve(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;Hs(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(Ks)(l.value)),{src:l.value,alt:"file",class:"w-full h-full object-cover cursor-pointer",onClick:d[0]||(d[0]=m=>e.unref(Xo)(l.value))},null,8,["src"])),e.createElementVNode("div",Gs,[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]=m=>e.unref(Xo)(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,Ws))}}),[["__scopeId","data-v-89357cbb"]]),Ys={class:"flex items-center gap-x-2"},Xs=["accept","multiple","disabled"],Zs={key:1,class:"flex items-center flex-wrap gap-2"},Js={key:1,class:"loader"},Qs={key:1,class:"loader"},Zo=ve(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):[]),m=x=>{if(n.max_size&&x.size>n.max_size*1024*1024){const _=(x.size/1048576).toFixed(2);return ge.notify({type:"error",title:"Помилка!",message:`Файл "${x.name}" занадто великий. Максимальний розмір: ${n.max_size} МБ, розмір файлу: ${_} МБ`,position:"right-bottom"}),!1}return!0},p=x=>{if(!d.value.length)return!0;const _=`.${x.name.split(".").pop()?.toLowerCase()||""}`,N=d.value.includes(_);return N||ge.notify({type:"error",title:"Помилка!",message:`Неприпустимий формат файлу "${x.name}". Дозволені формати: ${d.value.join(", ")}`,position:"right-bottom"}),N},h=e.computed(()=>{const x={},_=[];if(!n.customParams?.length)return{params:x,missingSources:_};const N=c?.value??{};return n.customParams.forEach(U=>{if(!U)return;const[Y,L]=U.split("="),E=Y?.trim(),V=L?.trim();if(!E||!V)return;const S=N[V];if(S==null||S===""){_.push(V);return}x[E]=S}),{params:x,missingSources:_}}),y=()=>{const{params:x}=h.value;return{api:n.api,customParams:Object.keys(x).length?x:void 0}},f=()=>{const x=h.value.missingSources;if(!x.length)return!0;const _=x.join(", ");return ge.notify({type:"warning",title:"Заповніть поля",message:`Поля (${_}) необхідні для завантаження файлу`,position:"right-bottom"}),!1},k=x=>{ge.notify({type:"error",title:"Помилка завантаження",message:x||"Не вдалося завантажити файл. Спробуйте ще раз.",position:"right-bottom"})},b=()=>{n.disabled||i.value||f()&&s.value?.click()},C=async x=>{const{files:_}=x.target;if(!_||_.length===0)return;if(!f()){s.value&&(s.value.value="");return}const N=Array.from(_);if(n.max_size&&N.filter(L=>!m(L)).length>0){s.value&&(s.value.value="");return}if(N.filter(Y=>!p(Y)).length>0){s.value&&(s.value.value="");return}i.value=!0;try{if(n.multiple){const Y=Array.from(_).map(async O=>await Yo(O,y())),L=await Promise.all(Y),E=L.filter(O=>O?.file_path);if(E.length===0){k();return}E.length<L.length&&k("Деякі файли не вдалося завантажити. Перевірте їх та спробуйте знову.");const V=E.map(O=>O.file_path),S=Array.isArray(r.value)?r.value:[];r.value=[...S,...V],l("change",r.value)}else{const Y=_[0],L=await Yo(Y,y());if(!L?.file_path){k();return}const E=L.file_path;r.value=E,l("change",E)}}catch(Y){const L=Y?.message||void 0;k(L)}finally{i.value=!1,s.value&&(s.value.value="")}};return(x,_)=>(e.openBlock(),e.createElementBlock("div",Ys,[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,Xs),!x.multiple&&r.value&&!Array.isArray(r.value)?(e.openBlock(),e.createBlock(so,{key:0,item:r.value,value:r.value,"onUpdate:value":_[0]||(_[0]=N=>r.value=N)},null,8,["item","value"])):x.multiple?(e.openBlock(),e.createElementBlock("div",Zs,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(N,U)=>(e.openBlock(),e.createBlock(so,{multiple:x.multiple,key:U,value:r.value,"onUpdate:value":_[1]||(_[1]=Y=>r.value=Y),item:N},null,8,["multiple","value","item"]))),128)),e.createElementVNode("div",{onClick:b,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",Js)):(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:b,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",Qs)):(e.openBlock(),e.createBlock(e.unref(H.Plus),{key:0,class:"h-4 w-4"}))],2))]))}}),[["__scopeId","data-v-dda91e05"]]),ei={class:"vs-input-file2 flex flex-col gap-4"},ti={class:"flex items-center gap-x-2"},ni=["accept","disabled"],oi={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"},ri={key:0,class:"rounded-lg border border-[#CFD9E0] bg-white p-4 shadow-sm"},li={class:"flex items-center justify-between text-sm"},ai={class:"truncate pr-4"},si={class:"font-medium text-slate-800 truncate"},ii={class:"text-slate-500"},ci={class:"text-slate-500 whitespace-nowrap"},di={class:"mt-3 h-2 rounded-full bg-slate-100 overflow-hidden"},ui={class:"mt-3 flex flex-wrap gap-2 text-sm"},pi={key:0,class:"mt-2 text-sm text-rose-600"},mi=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),m=e.inject("values"),p=e.computed(()=>t.format?t.format.split(",").map(B=>B.trim().toLowerCase()).filter(Boolean):[]),h=e.computed(()=>!l.value||!l.value.size?0:Math.min(100,Math.round(s.value/l.value.size*100))),y=e.computed(()=>l.value?`${b(s.value)} / ${b(l.value.size)}`:""),f=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"),k=()=>{t.disabled||i.value||N()&&r.value?.click()},b=B=>{if(!Number.isFinite(B))return"0 B";const T=["B","KB","MB","GB"];let A=0,W=B;for(;W>=1024&&A<T.length-1;)W/=1024,A+=1;return`${W.toFixed(A===0?0:1)} ${T[A]}`},C=B=>{if(!t.max_size)return!0;const T=t.max_size*1024*1024;return B.size>T?(ge.notify({type:"error",title:"Файл занадто великий",message:`Максимальний розмір ${t.max_size} МБ`,position:"right-bottom"}),!1):!0},x=B=>{if(!p.value.length)return!0;const T=`.${B.name.split(".").pop()?.toLowerCase()||""}`;return p.value.includes(T)?!0:(ge.notify({type:"error",title:"Непідтримуваний формат",message:`Дозволені формати: ${p.value.join(", ")}`,position:"right-bottom"}),!1)},_=e.computed(()=>{const B={},T=[];if(!t.customParams?.length)return{params:B,missing:T};const A=m?.value??{};return t.customParams.forEach(W=>{if(!W)return;const[X,ee]=W.split("="),q=X?.trim(),Q=ee?.trim();if(!q||!Q)return;const F=A[Q];F==null||F===""?T.push(Q):B[q]=F}),{params:B,missing:T}}),N=()=>_.value.missing.length?(ge.notify({type:"warning",title:"Заповніть поля",message:`Потрібні значення: ${_.value.missing.join(", ")}`,position:"right-bottom"}),!1):!0,U=B=>{const T=B.target,A=T.files?.[0];if(A){if(!N()){T.value="";return}if(!C(A)||!x(A)){T.value="";return}l.value=A,s.value=0,a.value="",c.value=""}},Y=async()=>{if(!l.value){k();return}try{c.value="";const B={id:a.value||"",fileName:l.value.name,subdir:t.subdir,size:l.value.size,..._.value.params},T=await fetch("/api/file/upload2/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(B)});if(!T.ok)throw new Error("Не вдалося ініціалізувати завантаження");const A=await T.json();a.value=A.id||a.value,s.value=A.uploaded||0,await L()}catch(B){c.value=B?.message||"Помилка при старті завантаження"}},L=async()=>{if(!(!l.value||!a.value)){i.value=!0;try{for(;s.value<l.value.size;){const B=s.value,T=Math.min(B+t.chunkSize,l.value.size),A=l.value.slice(B,T);d.value=new AbortController;const W=await fetch(`/api/file/upload2/${a.value}`,{method:"PATCH",headers:{"Content-Range":`bytes ${B}-${T-1}/${l.value.size}`},body:A,signal:d.value.signal});if(!W.ok)throw new Error("Помилка завантаження частини");const X=await W.json().catch(()=>({}));if(X.uploaded!=null?s.value=Number(X.uploaded):s.value=T,X.finished||s.value>=l.value.size){i.value=!1;const ee=X.file_path||X.url||a.value;n.value={file_id:X.file_id??a.value??ee,file_path:ee},ge.notify({type:"success",title:"Файл завантажено",message:l.value.name,position:"right-bottom"}),O();return}}}catch(B){if(B?.name==="AbortError")return;c.value=B?.message||"Помилка при завантаженні",i.value=!1}finally{d.value=null,i.value=!1}}},E=()=>{i.value&&(d.value?.abort(),d.value=null,i.value=!1)},V=async()=>{if(l.value){if(!a.value){await Y();return}await L()}},S=()=>{d.value?.abort(),d.value=null,O()},O=()=>{const B=r.value;B&&(B.value=""),l.value=null,a.value="",s.value=0,c.value=""};return(B,T)=>(e.openBlock(),e.createElementBlock("div",ei,[e.createElementVNode("div",ti,[e.createElementVNode("input",{ref_key:"fileInput",ref:r,type:"file",class:"hidden",accept:t.format,disabled:i.value||t.disabled,onChange:U},null,40,ni),n.value?(e.openBlock(),e.createBlock(so,{key:0,item:n.value,"onUpdate:item":T[0]||(T[0]=A=>n.value=A),value:n.value,"onUpdate:value":T[1]||(T[1]=A=>n.value=A)},null,8,["item","value"])):(e.openBlock(),e.createElementBlock("div",{key:1,onClick:k,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",f.value])},[i.value?(e.openBlock(),e.createElementBlock("div",oi,[T[2]||(T[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",ri,[e.createElementVNode("div",li,[e.createElementVNode("div",ai,[e.createElementVNode("div",si,e.toDisplayString(l.value.name),1),e.createElementVNode("div",ii,e.toDisplayString(b(l.value.size)),1)]),e.createElementVNode("div",ci,e.toDisplayString(y.value),1)]),e.createElementVNode("div",di,[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",ui,[!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:V}," 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:Y}," Upload ")):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"rounded border border-rose-200 px-3 py-1 text-rose-600",onClick:S}," Cancel ")]),c.value?(e.openBlock(),e.createElementBlock("p",pi,e.toDisplayString(c.value),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]))}}),io=ve(mi,[["__scopeId","data-v-62ba7299"]]),fi={class:"flex items-center justify-center h-[30px] w-[30px]"},hi={class:"max-w-[55vw]"},gi={class:"text-sm font-semibold text-gray-800 truncate dark:text-neutral-200"},yi={class:"flex items-center text-xs text-gray-500 truncate dark:text-neutral-500"},bi={class:"px-[5px]"},ki={class:""},En=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",fi,[e.createVNode(e.unref(H.FileText),{class:"icon icon-tabler icons-tabler-outline icon-tabler-file h-4 w-4"})]),e.createElementVNode("div",hi,[e.createElementVNode("p",gi,e.toDisplayString(l.item?.uploaded_name),1),e.createElementVNode("p",yi,[e.createElementVNode("span",null,e.toDisplayString(l.item?.username),1),e.withDirectives(e.createElementVNode("span",bi,"|",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",ki,e.toDisplayString(r(l.item?.size)),1)])])],64))}}),xi={class:"p-3 relative group flex items-center gap-x-3 border border-gray-200 bg-white rounded-md w-full"},wi={key:0,class:"flex w-full gap-x-3 items-center"},_i={key:1,class:"flex gap-x-3 w-full items-center"},vi={key:2,class:"flex gap-x-3 w-full items-center"},Ci=["href"],Ei={key:3,class:"flex gap-x-3 w-full items-center"},Bi={class:"lg:absolute lg:top-3 lg:end-1 opacity-100"},Vi={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"},Si={class:"inline-block"},$i={class:"inline-block"},Ni={class:"inline-block"},Ai=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 m(p){(n.item.ext==="jpg"||n.item.ext==="png")&&r("openLightbox",{item:n.item,index:p})}return(p,h)=>(e.openBlock(),e.createElementBlock("div",xi,[p.item.ext==="jpg"||p.item.ext==="png"?(e.openBlock(),e.createElementBlock("div",wi,[e.createElementVNode("div",{class:"max-w-[55vw] cursor-pointer flex gap-x-3 w-full items-center",onClick:h[0]||(h[0]=y=>m(p.index))},[e.createVNode(En,{item:p.item},null,8,["item"])])])):l(p.item)?(e.openBlock(),e.createElementBlock("div",_i,[e.createVNode(En,{item:p.item},null,8,["item"])])):a(p.item)?(e.openBlock(),e.createElementBlock("div",vi,[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(En,{item:p.item},null,8,["item"])],8,Ci)])):(e.openBlock(),e.createElementBlock("div",Ei,[e.createVNode(En,{item:p.item},null,8,["item"])])),e.createElementVNode("div",Bi,[e.createElementVNode("div",Vi,[e.createElementVNode("div",Si,[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]=y=>i(p.item))},[e.createVNode(e.unref(H.Eye),{class:"h-4 w-4"})])]),e.createElementVNode("div",$i,[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]=y=>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",Ni,[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]=y=>d())},[e.createVNode(e.unref(H.Trash2),{class:"h-4 w-4"})])])])])]))}}),Mi={class:"flex flex-col widget-file xl:bg-white xl:rounded-xl dark:xl:bg-neutral-800 dark:xl:border-neutral-700 w-full"},Fi={class:"flex w-full mb-[12px] items-center gap-x-2"},Di={class:"font-semibold text-gray-800 dark:text-neutral-200 text-[14px]"},Ti={class1:"ml-auto"},Li={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"},Ii={key:0,class:"py-4 mb-4 space-y-4 border-gray-200 border-y dark:border-neutral-700"},Oi={class:"relative"},Ri={class:"absolute inset-y-0 start-0 flex items-center pointer-events-none z-[1] ps-3.5"},Pi={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"},zi={key:0},Jo=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({}),m=e.ref([]),p=e.ref(""),h=e.computed(()=>Array.isArray(m.value)?m.value.filter(_=>_.ext==="jpg"||_.ext==="png").map(_=>_?.file_path):[]),y=e.computed(()=>p.value===""?m.value:m.value.filter(_=>_?.uploaded_name?.includes(p.value))),f=_=>{const N=h.value.findIndex(U=>U===_.item.file_path);N!==-1&&(a.value=!0,s.value=N)},k=async()=>{try{const _=await fetch(`${n.prefix}/widget/file/${l.value}`).then(N=>N.json());m.value=_?.rows}catch(_){console.error(_)}},b=async _=>{await Promise.all(Array.from(_.target.files).map(async N=>{const U=new FormData;U.append("file",N);try{const Y=`${n.prefix}/widget/file/${l.value}`,L=await fetch(Y,{method:"POST",body:U});return L.ok?(i("update","file-list"),N):(ge.notify({type:L.status>=400&&L.status<500?"warning":"error",title:"Error",message:`Error code: ${L.status}`}),null)}catch(Y){return ge.notify({type:"error",title:"Error",message:Y.message||"Unknown error"}),console.error(Y),null}})),await k()},C=_=>{const N={..._};return _.cancel||(N.cancel=()=>{c.value=!1}),_.updateListOnConfirm&&(N.confirm=async()=>{await _.confirm(),c.value=!1,k()}),N},x=_=>{d.value=C(_),c.value=!0};return e.watch(l,_=>{_&&k()}),e.onMounted(()=>{l.value&&k()}),(_,N)=>{const U=e.resolveComponent("Lightbox"),Y=e.resolveComponent("MessageBox");return e.openBlock(),e.createElementBlock("div",Mi,[e.createElementVNode("div",Fi,[e.createElementVNode("h2",Di," Файлів: "+e.toDisplayString(m.value?.length),1),e.createElementVNode("div",Ti,[e.createElementVNode("label",null,[e.createElementVNode("input",{type:"file",class:"hidden",onChange:N[0]||(N[0]=L=>b(L))},null,32),e.createElementVNode("div",Li,[e.createVNode(e.unref(H.Upload),{class:"h-4 w-4"})])])])]),m.value?.length>4?(e.openBlock(),e.createElementBlock("div",Ii,[e.createElementVNode("div",null,[e.createElementVNode("div",Oi,[e.createElementVNode("div",Ri,[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":N[1]||(N[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),m.value?.length?(e.openBlock(),e.createElementBlock("div",Pi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,(L,E)=>(e.openBlock(),e.createBlock(Ai,{key:E,prefix:_.prefix,item:L,index:E,onUpdate:N[2]||(N[2]=V=>_.$emit("update","file-list")),onOpenModal:N[3]||(N[3]=V=>x(V)),onOpenLightbox:N[4]||(N[4]=V=>f(V))},null,8,["prefix","item","index"]))),128)),y.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",zi,N[8]||(N[8]=[e.createElementVNode("p",{class:"text-sm text-gray-600 font-sm"}," Файлів з такою назвою не існує, введіть інше пошукове слово ",-1)])))])):e.createCommentVNode("",!0),e.createVNode(U,{modelValue:a.value,"onUpdate:modelValue":N[5]||(N[5]=L=>a.value=L),startIndex:s.value,"onUpdate:index":N[6]||(N[6]=L=>s.value=L),images:h.value},null,8,["modelValue","startIndex","images"]),e.createVNode(Y,e.mergeProps({modelValue:c.value,"onUpdate:modelValue":N[7]||(N[7]=L=>c.value=L),onConfirm:d.value.confirm},d.value),null,16,["modelValue","onConfirm"])])}}}),ji={class:"flex items-center justify-between"},Ui={class:"text-[16px] text-gray-900 font-medium"},Hi={class:"grid gap-3"},qi=ve(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",ji,[e.createElementVNode("p",Ui,e.toDisplayString(o.title),1),e.createVNode(Zn,{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",Hi,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-90320b87"]]),Ki={class:"text-[16px] text-gray-900 font-medium"},Wi={class:"grid gap-3"},Gi=ve(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",Ki,e.toDisplayString(o.title),1)]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",Wi,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-0c825d65"]]),Yi={class:"flex items-center justify-between"},Xi={switcher:qi,accordion:Gi,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",Yi,[e.createElementVNode("p",null,e.toDisplayString(o.title),1)]),e.renderSlot(t.$slots,"default")]))}})},it={Equal:"==",Inequal:"!=",Higer:">",HigerOrEqual:">=",Lower:"<",LowerOrEqual:"<=",Between:"between",StartWith:"^",EndWith:"$",Contain:"*",In:"in",NotIn:"not_in"},Zi=(o,t)=>String(o)===String(t),Ji=(o,t)=>String(o)!==String(t),Qi=(o,t)=>o>t,ec=(o,t)=>o>=t,tc=(o,t)=>o<t,nc=(o,t)=>o<=t,oc=(o,t)=>Array.isArray(t)&&t.length===2?o>=t[0]&&o<=t[1]:!1,rc=(o,t)=>String(o).startsWith(String(t)),lc=(o,t)=>String(o).endsWith(String(t)),ac=(o,t)=>String(o).includes(String(t)),sc=(o,t)=>Array.isArray(t)?t.includes(o):!1,ic=(o,t)=>Array.isArray(t)?!t.includes(o):!0,cc=(o,t)=>{if(!t)return!0;switch(t?.[1]){case it.Equal:return Zi(o,t?.[2]);case it.Inequal:return Ji(o,t?.[2]);case it.Higer:return Qi(o,t?.[2]);case it.HigerOrEqual:return ec(o,t?.[2]);case it.Lower:return tc(o,t?.[2]);case it.LowerOrEqual:return nc(o,t?.[2]);case it.Between:return oc(o,t?.[2]);case it.StartWith:return rc(o,t?.[2]);case it.EndWith:return lc(o,t?.[2]);case it.Contain:return ac(o,t?.[2]);case it.In:return sc(o,t?.[2]);case it.NotIn:return ic(o,t?.[2]);default:return!0}};function Qo(o,t,n){return t==null||!Array.isArray(t)||t.length===0?!0:(Array.isArray(t[0])?t:[t]).every(l=>{if(!Array.isArray(l)||l.length<2)return!0;const a=l[0],s=n?o?.[n]?.[a]??o?.[a]:o?.[a];return cc(s,l)})}const er=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=>Qo(n.value,i?.conditions,t.name||void 0))),a=e.computed(()=>Xi[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(Br,e.mergeProps({key:d.name},{ref_for:!0},d,{item:d,modelValue:s.value[d.name],"onUpdate:modelValue":m=>s.value[d.name]=m,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)}}),tr=({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),m=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:m,addOption:async()=>{if(!(!p.value||d?.value.validate()))try{const b=o.add?.api??`/api/table/${p.value}`,C=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i.value)}),x=await C.json().catch(()=>({})),_=x?.error||x?.message,N=Number(x?.code)>=400;if(!C.ok||N){ge.notify({title:"Помилка",type:"error",message:_||`Код помилки: ${x?.code||C.status}`});return}const U=x?.[h.value]??x?.id;if(!U){ge.notify({title:"Помилка",type:"error",message:"Обʼєкт створено, але в відповіді відсутній ID."});return}const Y=await t(U);Y&&(n.value.some(E=>String(E?.id)===String(Y.id))||n.value.push(Y)),a?await a(Y,U):Y&&(r.value=Y,l.value=U),s.value=!1,ge.notify({title:"Успіх",message:"Обʼєкт успішно створено."})}catch(b){ge.notify({title:"Помилка",type:"error",message:b?.message||"Не вдалося створити обʼєкт."})}},onAddValue:async()=>{if(!o.add)return null;const k=await fetch(`/api/template/form/${o.add.form}`).then(b=>b.json());return c.value=k.schema,i.value={},s.value=!0,null}}},dc=["aria-expanded","data-focus"],uc={class:"relative flex flex-1 items-center gap-1 py-0.5 pl-1 pr-0 overflow-hidden h-full min-w-0"},pc={key:0,class:"flex flex-nowrap items-center gap-1 overflow-x-auto overflow-y-hidden min-w-0 flex-1 py-0.5"},mc={class:"flex items-center gap-1 min-w-0"},fc=["title"],hc=["innerHTML"],gc=["onClick"],yc={class:"flex-1 min-w-[2px]"},bc=["placeholder"],kc=["title"],xc=["innerHTML"],wc={key:3,class:"truncate flex-1 min-w-0"},_c={key:2,class:"flex-1 min-w-[2px]"},vc=["placeholder"],Cc={key:3,class:"flex-1 flex items-center min-h-[30px] py-0.5 pl-2 text-sm truncate text-inherit"},Ec={class:"flex items-center shrink-0"},Bc=["disabled"],Vc={key:1,class:"self-stretch w-px bg-[#ccc] my-[1px]"},Sc=["disabled","title"],$c=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",uc,[a.isMulti?(e.openBlock(),e.createElementBlock("div",pc,[(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",mc,[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,hc)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(i.text),1)],64))],8,fc)]),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,gc)]))),128)),e.createElementVNode("div",yc,[!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,bc)),[[e.vModelText,l.value]]):e.createCommentVNode("",!0)])])):!a.isMulti&&a.selectedOptionLabel&&l.value===""?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["truncate flex items-center gap-1 min-w-0 pl-2",a.disabled||!a.search?"relative z-0 flex-1 min-h-[30px] py-0.5 text-inherit":"absolute inset-x-0 top-0 bottom-0 z-[1] text-gray-900"]),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,xc)):(e.openBlock(),e.createElementBlock("span",wc,e.toDisplayString(a.selectedOption?.text),1))],10,kc)):e.createCommentVNode("",!0),!a.isMulti&&!a.disabled&&a.search?(e.openBlock(),e.createElementBlock("div",_c,[e.withDirectives(e.createElementVNode("input",{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,vc),[[e.vModelText,l.value]])])):!a.isMulti&&a.disabled&&(!a.selectedOptionLabel||l.value!=="")?(e.openBlock(),e.createElementBlock("div",Cc,e.toDisplayString(a.placeholder),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Ec,[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,Bc)):e.createCommentVNode("",!0),a.showClear?(e.openBlock(),e.createElementBlock("div",Vc)):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,Sc)])],42,dc))}}),Nc=["aria-disabled","onMousedown"],Ac={class:"leading-[19px]"},Mc=["innerHTML"],Fc={key:1,class:"px-3 py-2 text-center text-gray-500"},Dc=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",Ac,[t.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:t.renderTemplate(r)},null,8,Mc)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(r.text),1)],64))])],42,Nc))),128)):(e.openBlock(),e.createElementBlock("div",Fc," No options "))],4)],4)):e.createCommentVNode("",!0)]))}}),Tc=["disabled"],Lc="__autoMeta",nr="w-[16px] h-[16px] flex items-center justify-center flex-shrink-0 text-current",co=ve(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);et(n.style);const i=e.computed({get:()=>n.modelValue,set:z=>r("update:modelValue",z)});!i.value&&n.defaultValue&&(i.value=n.defaultValue);const c=e.ref(null),d=e.ref(null),m=e.ref(null),p=e.ref(null),h=e.ref(!1),y=e.ref(!1),f=e.ref(null),k=e.ref(-1),b=e.ref([]),C=e.ref(""),x=e.ref(null),_=z=>{d.value=z},N=z=>{x.value=z},U=z=>{p.value=z},Y=z=>{m.value=z},L=(z,re)=>{b.value[re]=z},E=e.ref({}),V=e.ref([]),S=e.computed(()=>{if(!V.value.length)return[];const z=xe.value,re=new Map(z.map(me=>[me.id?.toString(),me]));return V.value.map(me=>re.get(me?.toString())).filter(me=>!!me)}),O=e.computed(()=>n.placeholder||"Select..."),B=e.computed(()=>F(f.value)),T=e.computed(()=>a.value?!1:l.value?V.value.length>0:!!i.value),A=z=>l.value?V.value.some(re=>re?.toString()===z?.toString()):i.value?.toString()===z?.toString(),W=e.computed(()=>{let z=xe.value??[];if(!n.data&&C.value.trim()!==""){const re=C.value.toLowerCase();z=z.filter(me=>{const Me=F(me).toLowerCase(),Re=me.text?.toLowerCase?.()||"";return Me.includes(re)||Re.includes(re)})}if(l.value&&V.value.length){const re=new Set(V.value.map(me=>me?.toString()));z=z.filter(me=>!re.has(me.id?.toString()))}return z}),X=e.inject("values"),ee=e.inject("field-props"),q=e.computed(()=>n.slot??n?.optionTemplate??""),Q=z=>yn(z,q.value),F=z=>bn(z,q.value),j=e.computed(()=>fn(q.value)),te=z=>Xt(z),Z=z=>!!(!j.value&&Vt(z)&&!te(z)),se=z=>{const re=Vt(z);return re?{color:re}:void 0},ke=z=>!!(!j.value&&(Yt(z)||te(z))),oe=(z,re,me)=>{if(!ee)return!1;const Me=ee.value?.[z]??{},Re=(He,st,kt)=>{if(!st.length)return He;const[ut,...xt]=st,qe={...He};if(!xt.length)return qe[ut]=kt,qe;const un=typeof He[ut]=="object"&&He[ut]!==null?He[ut]:{};return qe[ut]=Re(un,xt,kt),qe},Ue=Re(Me,re,me);return ee.value={...ee.value||{},[z]:Ue},!0},ye=z=>{if(!ee||!n.name)return;const re=ee.value?.[n.name]??{};ee.value={...ee.value||{},[n.name]:{...re,[Lc]:z}}},Ve=z=>{if(!n.set)return;const re=X?.value;!re&&!ee||Object.entries(n.set).forEach(([me,Me])=>{if(!me)return;const Re=z?z[Me]:null,Ue=me.split(".").map(kt=>kt.trim()).filter(Boolean);if(!Ue.length)return;const[He,...st]=Ue;st.length&&oe(He,st,Re??null)||re&&(re[He]=Re??null)})},{optionsList:xe,parentValue:Le,fetchOptions:Ne,fetchOptionByValue:Oe,loadOptions:$e}=gn({props:n,formValues:X,watchParent:!1}),ne=z=>z==null?"":String(z),le=z=>{if(l.value){if(!V.value.length){xe.value=z;return}}else if(!f.value){xe.value=z;return}const re=new Set(z.map(Me=>ne(Me.id)).filter(Boolean));if(l.value){const Me=new Set(V.value.map(Ue=>ne(Ue)).filter(Boolean)),Re=(xe.value??[]).filter(Ue=>{const He=ne(Ue.id);return!He||!Me.has(He)?!1:!re.has(He)});xe.value=[...Re,...z];return}const me=ne(f.value?.id);if(me&&!re.has(me)){xe.value=[f.value,...z];return}xe.value=z},be=e.ref(0),Ee=async z=>{const re=++be.value,me=await Ne(z);return re!==be.value?null:me},ze=async()=>{if(n.data){const z=await Ee(C.value);return z&&le(z),xe.value}return $e()},We=async z=>{if(z==null||z==="")return null;const re=xe.value?.find(me=>me?.id?.toString()===String(z));return re||Oe(z)},I=async z=>{const re=new Set(xe.value.map(Me=>Me.id?.toString())),me=z.filter(Me=>!re.has(Me?.toString()));me.length&&await me.reduce(async(Me,Re)=>{await Me;const Ue=await We(Re);Ue&&xe.value.push(Ue)},Promise.resolve())},J=()=>{if(!W.value.length){k.value=-1;return}let z=0;if(!l.value&&f.value){const re=f.value.id?.toString(),me=W.value.findIndex(Me=>Me.id?.toString()===re);me>=0&&(z=me)}k.value=z,e.nextTick(()=>{R(b.value[z],m.value)})},ae=async()=>{a.value||(h.value=!0,await e.nextTick(()=>{we()}),await ze(),await e.nextTick(()=>{we(),x.value?.focus()}),J())},ue=()=>{h.value=!1,k.value=-1,e.nextTick(()=>{x.value?.blur()})},he=async z=>{if(a.value)return;(z!==void 0?z:!h.value)?await ae():ue()},Ae=async()=>{if(!a.value){if(h.value){ue();return}await ae()}},Te=()=>{l.value?(V.value=[],i.value=[],r("change",[]),P(null,[])):(f.value=null,i.value=null,r("change",null),P(null,null)),Ve(null),C.value="",e.nextTick(()=>{x.value?.focus(),h.value||ae()})},Fe=z=>{l.value&&(V.value=V.value.filter(re=>re?.toString()!==z?.toString()),i.value=[...V.value],r("change",i.value),P(null),e.nextTick(()=>x.value?.focus()))},P=(z,re)=>{const me=re??(l.value?[...V.value]:z?.id??null);r("value-selected",{name:n.name,value:me,option:z})},v=(z,re="manual")=>{l.value?(A(z.id)||(V.value=[...V.value,z.id],i.value=[...V.value],r("change",i.value),P(z)),C.value="",e.nextTick(()=>{x.value?.focus(),k.value=Math.min(k.value,W.value.length-1)}),Ve(null)):(f.value=z,i.value=z.id,r("change",i.value),P(z),C.value="",ue(),Ve(z),re==="parent-auto"&&ye({source:re,parentField:n.parent??null,parentValue:Le.value??null}))},M=z=>{if(A(z.id)){l.value||ue();return}v(z)},R=(z,re)=>{if(!z||!re)return;const me=z.offsetTop,Me=me+z.offsetHeight,Re=re.scrollTop,Ue=Re+re.clientHeight;let He=re.scrollTop;me<Re?He=me-80:Me>Ue&&(He=Me-re.clientHeight+4);const st=re;st.scrollTop=He},ie=z=>{let re=z.parentElement;for(;re;){if(re.classList.contains("ui-dialog__content"))return re;const me=window.getComputedStyle(re),Me=me.overflow+me.overflowY+me.overflowX;if(Me.includes("auto")||Me.includes("scroll")||re===document.body||re===document.documentElement)return re;re=re.parentElement}return document.body},we=()=>{if(!d.value)return;const z=d.value.getBoundingClientRect(),re=window.innerHeight||document.documentElement.clientHeight,me=window.innerWidth||document.documentElement.clientWidth,Me=8,Re=8,Ue=n.maxHeight||300,He=re-z.bottom-Re-Me,st=z.top-Re-Me,kt=He>=st,ut=Math.max(me-Me*2,0);let{width:xt}=z;ut>0&&xt>ut&&(xt=ut);let{left:qe}=z;qe+xt+Me>me&&(qe=me-xt-Me),qe=Math.max(qe,Me);const un=Math.min(Ue,Math.max(kt?He:st,50));E.value={position:"fixed",left:`${qe}px`,width:`${xt}px`,maxHeight:`${un}px`,transform:kt?"none":"translateY(-100%)",top:kt?`${z.bottom+Re}px`:`${z.top-Re}px`}},Pe=async z=>{a.value||!h.value&&(z.key==="ArrowDown"||z.key==="ArrowUp")&&(z.preventDefault(),await ae())},De=z=>{if(!h.value)return;const{key:re}=z;if(re==="ArrowDown")z.preventDefault(),k.value+1<W.value.length&&(k.value+=1,R(b.value[k.value],m.value));else if(re==="ArrowUp")z.preventDefault(),k.value>0&&(k.value-=1,R(b.value[k.value],m.value));else if(re==="Enter"){z.preventDefault();const me=W.value[k.value];me&&v(me),x.value?.blur()}else re==="Escape"?(z.preventDefault(),ue()):re==="Backspace"?l.value&&C.value===""&&V.value.length&&(V.value=V.value.slice(0,-1),i.value=[...V.value],r("change",i.value)):re==="Home"?(k.value=0,R(b.value[0],m.value)):re==="End"?(k.value=W.value.length-1,R(b.value[k.value],m.value)):re==="Tab"&&ue()},Ge=()=>{a.value||(y.value=!0)},K=()=>{y.value=!1,C.value=""},de=z=>{z.key==="Escape"&&h.value&&ue()},Ie=z=>{const re=z.target;c.value?.contains(re)||p.value?.contains(re)||ue()},Qe=z=>{h.value&&m.value&&!m.value.contains(z.target)&&we()},dt=()=>{h.value&&we()},Ye=()=>{h.value&&we()};async function Ft(){if(l.value)Array.isArray(i.value)?V.value=[...i.value]:(V.value=i.value==null?[]:[i.value],i.value=[...V.value]),n.data&&V.value.length&&(await I(V.value),await e.nextTick());else{if(Array.isArray(i.value)){const z=i.value[0]??null;i.value=z??null}i.value!=null&&(f.value=await We(i.value)),Ve(f.value??null)}}e.watch(i,()=>{Ft()}),e.onMounted(async()=>{if(addEventListener("keydown",de),addEventListener("scroll",Qe,!0),addEventListener("resize",dt),document.addEventListener("click",Ie,!0),d.value&&ie(d.value).addEventListener("scroll",Ye,!0),n.options?.length&&!n.data)xe.value=[...n.options];else if(n.data){const z=await Ee("");z&&le(z)}await Ft(),Hn.value=!1}),e.onUnmounted(()=>{removeEventListener("keydown",de),removeEventListener("scroll",Qe,!0),removeEventListener("resize",dt),document.removeEventListener("click",Ie,!0),d.value&&ie(d.value).removeEventListener("scroll",Ye,!0)});const{isOpenAdd:Dt,addData:jt,addSchema:Tt,addForm:Eo,addTitle:Bo,addOption:jn,onAddValue:Un}=tr({props:n,fetchOptionByValue:Oe,optionsList:xe,selectedOption:f,modelValue:i});function Vo(z,re=200){let me;return(...Me)=>{me&&clearTimeout(me),me=window.setTimeout(()=>z(...Me),re)}}const Lt=Vo(async z=>{const re=await Ee(z);re&&le(re)},200);e.watch(C,z=>{n.data&&Lt(z.trim())}),e.watch(()=>n.options,z=>{!n.data&&z?.length&&(xe.value=[...z],Ft())},{immediate:!0});const Hn=e.ref(!0);return e.watch(Le,async()=>{if(n.data&&(Hn.value||(l.value?(V.value=[],i.value=[],r("change",[])):(f.value=null,i.value=null,r("change",null))),await ze(),n.auto===1&&Le.value&&xe.value.length>0)){const z=xe.value[0];z&&v(z,"parent-auto")}}),(z,re)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(ge.VsModal),{visible:e.unref(Dt),"onUpdate:visible":re[1]||(re[1]=me=>e.isRef(Dt)?Dt.value=me:null),class:"z-[1000]",title:e.unref(Bo),buttonText:"Додати",onDone:e.unref(jn),teleport:z.teleport},{default:e.withCtx(()=>[e.createVNode(ct,{schema:e.unref(Tt),modelValue:e.unref(jt),"onUpdate:modelValue":re[0]||(re[0]=me=>e.isRef(jt)?jt.value=me:null),ref_key:"addForm",ref:Eo},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:re[4]||(re[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass])},[re[5]||(re[5]=e.createElementVNode("span",{id:"react-select-live-region",class:"sr-only"},null,-1)),re[6]||(re[6]=e.createElementVNode("span",{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text",role:"log",class:"sr-only"},null,-1)),e.createVNode($c,{keyWord:C.value,"onUpdate:keyWord":re[2]||(re[2]=me=>C.value=me),disabled:a.value,"is-open":h.value,"input-focus":y.value,"is-multi":l.value,"selected-options":S.value,"selected-ids":V.value,placeholder:O.value,search:s.value,"option-template":q.value,"icon-wrapper-class":nr,"selected-option-label":B.value,"selected-option":f.value,"show-clear":T.value,"set-trigger-ref":_,"set-input-ref":N,"should-show-color-dot":Z,"option-has-icon":ke,"get-icon-color-style":se,"resolve-option-icon":te,"render-template":Q,"get-label":F,"on-control-keydown":Pe,"on-control-click":Ae,"on-input-focus":Ge,"on-input-blur":K,"on-input-keydown":De,"on-remove-selected":Fe,"on-clear-selected":Te,"on-toggle-select":he},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(Dc,{"is-open":h.value,"dropdown-style":E.value,"filtered-options-list":W.value,"selected-nav-index":k.value,"option-template":q.value,"icon-wrapper-class":nr,"set-dropdown-ref":U,"set-list-ref":Y,"set-item-ref":L,"is-selected":A,"on-option-click":M,"should-show-color-dot":Z,"option-has-icon":ke,"get-icon-color-style":se,"resolve-option-icon":te,"render-template":Q},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:re[3]||(re[3]=(...me)=>e.unref(Un)&&e.unref(Un)(...me)),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"}),re[7]||(re[7]=e.createElementVNode("span",null,"Додати",-1))],8,Tc)):e.createCommentVNode("",!0)],512)],64))}}),[["__scopeId","data-v-3a63d47f"]]),uo=(o="")=>`${o}${Math.floor(Math.random()*1e4)}`,Ic=["disabled","aria-expanded"],Oc={class:"truncate"},Rc={class:"py-2 px-4"},Pc={class:"block font-medium text-[13px] text-foreground"},zc={class:"truncate"},jc={class:"p-1 border-t border-gray-200"},Uc={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"},Hc=["onClick"],qc=["checked"],Kc={class:"shrink-0 size-3.5 flex justify-center items-center"},Wc={key:1,class:"shrink-0 size-2 block mx-auto rounded-full bg-secondary/60"},Gc={class:"truncate"},Yc={key:0,class:"px-3 py-2 text-xs text-stone-500"},Bn=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;et(n.style);const l=e.computed({get:()=>Array.isArray(n.modelValue)?n.modelValue[0]??null:n.modelValue??null,set:oe=>r("update:modelValue",oe)});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),m=e.ref(null),p=e.ref(null),h=e.ref(null),y=e.ref({}),f=`vs-input-inline-select-${uo()}`,k=e.computed(()=>n.placeholder||"Оберіть значення"),b=e.computed(()=>U(c.value)||n.placeholder||"Оберіть значення"),C=e.computed(()=>n.slot??""),x=e.computed(()=>fn(C.value)),_=e.computed(()=>n.teleport||"body"),N=/^#(?:[\da-fA-F]{3}|[\da-fA-F]{6}|[\da-fA-F]{8})$/,U=oe=>bn(oe,C.value),Y=oe=>!!(!x.value&&Vt(oe)),L=e.computed(()=>{const oe=Vt(c.value).trim();return oe?N.test(oe)?`bg-[${oe}] border-[${oe}]`:`bg-${oe.toLowerCase()}-500 border-${oe.toLowerCase()}-500`:""}),{optionsList:E,parentValue:V,fetchOptions:S,fetchOptionByValue:O,loadOptions:B}=gn({props:n,formValues:a,watchParent:!1}),T=(oe,ye,Ve)=>{if(!s)return!1;const xe=s.value?.[oe]??{},Le=(Oe,$e,ne)=>{if(!$e.length)return Oe;const[le,...be]=$e,Ee={...Oe};if(!be.length)return Ee[le]=ne,Ee;const ze=typeof Oe[le]=="object"&&Oe[le]!==null?Oe[le]:{};return Ee[le]=Le(ze,be,ne),Ee},Ne=Le(xe,ye,Ve);return s.value={...s.value||{},[oe]:Ne},!0},A=oe=>{if(!n.set)return;const ye=a?.value;!ye&&!s||Object.entries(n.set).forEach(([Ve,xe])=>{if(!Ve)return;const Le=oe?oe[xe]:null,Ne=Ve.split(".").map(ne=>ne.trim()).filter(Boolean);if(!Ne.length)return;const[Oe,...$e]=Ne;$e.length&&T(Oe,$e,Le??null)||ye&&(ye[Oe]=Le??null)})},W=oe=>l.value?.toString?.()===oe?.toString?.(),X=()=>{if(!p.value||typeof window>"u")return;const oe=p.value.getBoundingClientRect(),ye=8,Ve=8,xe=window.innerHeight||document.documentElement.clientHeight,Le=window.innerWidth||document.documentElement.clientWidth,Ne=h.value?.offsetHeight||260,Oe=Math.max(oe.width,176),$e=Math.max(Le-ye*2,120),ne=Math.min(Oe,$e);let le=oe.left;le+ne+ye>Le&&(le=Le-ne-ye),le=Math.max(le,ye);const be=xe-oe.bottom-Ve-ye,Ee=oe.top-Ve-ye,ze=be<Math.min(Ne,260)&&Ee>be,We=Math.max(120,Math.min(320,ze?Ee:be));y.value={position:"fixed",left:`${le}px`,top:ze?`${oe.top-Ve}px`:`${oe.bottom+Ve}px`,transform:ze?"translateY(-100%)":"none",width:`${ne}px`,maxHeight:`${We}px`}},ee=async()=>{if(n.data){E.value=await S("");return}await B()},q=async()=>{if(l.value==null||l.value===""){c.value=null,A(null);return}const oe=E.value.find(ye=>ye.id?.toString()===String(l.value));if(oe){c.value=oe,A(oe);return}c.value=await O(l.value),A(c.value??null)},Q=async()=>{i.value||(d.value=!0,await e.nextTick(),X(),await ee(),await e.nextTick(),X())},F=()=>{d.value=!1},j=async()=>{if(d.value){F();return}await Q()},te=oe=>{r("value-selected",{name:n.name,value:oe?.id??null,option:oe})},Z=oe=>{c.value=oe,l.value=oe.id,r("change",oe.id),te(oe),A(oe),F()},se=oe=>{const ye=oe.target;m.value?.contains(ye)||h.value?.contains(ye)||F()},ke=()=>{d.value&&X()};return e.watch(()=>n.options,oe=>{n.data||(E.value=oe?[...oe]:[],q())},{immediate:!0,deep:!0}),e.watch(l,()=>{q()}),e.watch(V,async()=>{n.data&&(await ee(),c.value&&!E.value.some(oe=>oe.id?.toString()===c.value?.id?.toString())&&(c.value=null,l.value=null,r("change",null),te(null),A(null)))}),e.onMounted(async()=>{document.addEventListener("click",se,!0),window.addEventListener("resize",ke),window.addEventListener("scroll",ke,!0),await ee(),await q()}),e.onUnmounted(()=>{document.removeEventListener("click",se,!0),window.removeEventListener("resize",ke),window.removeEventListener("scroll",ke,!0)}),(oe,ye)=>(e.openBlock(),e.createElementBlock("div",{class:"relative inline-flex w-full max-w-full",ref_key:"rootRef",ref:m,onClick:ye[0]||(ye[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:j},[e.createElementVNode("span",Oc,e.toDisplayString(b.value),1)],10,Ic),(e.openBlock(),e.createBlock(e.Teleport,{to:_.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(y.value),role:"menu","aria-orientation":"vertical"},[e.createElementVNode("div",Rc,[e.createElementVNode("span",Pc,[e.createElementVNode("span",zc,e.toDisplayString(k.value),1)])]),e.createElementVNode("div",jc,[e.createElementVNode("div",Uc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(E),Ve=>(e.openBlock(),e.createElementBlock("label",{key:Ve.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(xe=>Z(Ve),["prevent"])},[e.createElementVNode("input",{type:"radio",class:"hidden",name:f,checked:W(Ve.id),tabindex:"-1"},null,8,qc),e.createElementVNode("span",Kc,[Y(Ve)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"shrink-0 size-2 block mx-auto rounded-full",style:e.normalizeStyle({backgroundColor:Ve.color})},null,4)):(e.openBlock(),e.createElementBlock("span",Wc))]),e.createElementVNode("span",Gc,e.toDisplayString(U(Ve)),1),e.createVNode(e.unref(H.Check),{class:e.normalizeClass(["shrink-0 size-3.5 ms-auto transition-opacity",W(Ve.id)?"opacity-100":"opacity-0"])},null,8,["class"])],8,Hc))),128))]),e.unref(E).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",Yc,"Немає варіантів"))])],4)):e.createCommentVNode("",!0)],8,["to"]))],512))}}),Xc=["placeholder","disabled"],or=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}=et(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,Xc)),[[e.vModelText,r.value]])}}),rr=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(()=>uy)),n=o,{inputClass:r}=et(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]=m=>l.value=m),placeholder:s.value},i.value),null,16,["modelValue","placeholder"])],6))}}),Zc={},Jc={viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Qc(o,t){return e.openBlock(),e.createElementBlock("svg",Jc,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 ed=ve(Zc,[["render",Qc]]),td={class:"bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden flex flex-col"},nd={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"},od={key:0,class:"relative flex-1 min-w-0"},rd={class:"flex md:flex-nowrap flex-wrap items-center justify-end gap-2 shrink-0"},ld={class:"w-full overflow-x-auto"},ad={class:"w-full min-w-[640px] table-auto divide-y divide-gray-200"},sd={class:"bg-gray-50"},id={class:"border-b border-gray-200"},cd={class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 w-12 text-center"},dd=["onClick"],ud={key:0,class:"text-gray-400"},pd={key:0,colspan:"100%",class:"text-center"},md={class:"w-full"},fd={class:"p-5 min-h-[200px] flex flex-col justify-center items-center text-center"},hd=["data-row-index","onDragstart","onDragover","onDrop"],gd=["onPointerdown"],yd={class:"flex items-center justify-center"},bd=["innerHTML"],kd={key:0,class:"flex items-center gap-3 text-sm text-gray-700"},xd={key:0},wd=["src"],_d={key:1,class:"rounded-md max-w-[45px] w-[45px] max-h-[45px] h-[45px] bg-gray-200 flex items-center justify-center"},vd={key:1,class:"flex items-center justify-center"},Cd={key:2,class:"text-sm font-medium text-gray-900"},Ed={class:"px-4 py-3 text-right whitespace-nowrap"},Bd={class:"flex items-center justify-end gap-2"},Vd=["onClick"],Sd=["onClick"],$d={class:"vs-form__head mr-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},lr=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=I=>t.actions===void 0?!0:t.actions.includes(I),l=["search","import","export","add"],a=e.computed(()=>l.some(I=>r(I))),s=e.useModel(o,"modelValue"),i=e.ref({}),c=e.ref(""),d=e.ref(null),m=e.ref("asc"),p=e.computed(()=>{const I=s.value??[],J=c.value?I.filter(he=>h.value?.some(Ae=>{const Te=Ae.key||Ae.name;if(!Te)return!1;const Fe=he[Te];return Fe?Array.isArray(Fe)?Fe.join(", ").toLowerCase().includes(c.value.toLowerCase()):String(Fe).toLowerCase().includes(c.value.toLowerCase()):!1})):I;if(!d.value)return J;const ae=d.value,ue=[...J].sort((he,Ae)=>{const Te=Le(he?.[ae]),Fe=Le(Ae?.[ae]);return typeof Te=="number"&&typeof Fe=="number"?Te-Fe:String(Te).localeCompare(String(Fe))});return m.value==="asc"?ue:ue.reverse()}),h=e.computed(()=>(t.colModel??[]).filter(I=>!I.tableHidden)),y=e.ref(null),f=e.ref(null),k=e.ref(null);function b(I){return I.pointerType==="touch"||I.pointerType==="pen"}function C(I,J){const ue=document.elementFromPoint(I,J)?.closest?.("[data-row-index]")??null;if(!ue)return null;const he=ue.getAttribute("data-row-index");if(he==null)return null;const Ae=Number.parseInt(he,10);return Number.isNaN(Ae)?null:Ae}function x(I,J){b(I)&&(I.preventDefault(),I.currentTarget.setPointerCapture(I.pointerId),y.value=J,f.value=J)}function _(I){if(y.value===null||!b(I))return;I.preventDefault();const J=C(I.clientX,I.clientY);J!==null&&(f.value=J)}function N(I){if(y.value===null||!b(I))return;I.preventDefault();const J=C(I.clientX,I.clientY);E(J??y.value);try{I.currentTarget.releasePointerCapture(I.pointerId)}catch{}}function U(I){if(b(I)){y.value=null,f.value=null;try{I.currentTarget.releasePointerCapture(I.pointerId)}catch{}}}const Y=I=>{y.value=I},L=I=>{f.value=I},E=I=>{if(y.value===null||y.value===I){y.value=null,f.value=null;return}const J=[...s.value],[ae]=J.splice(y.value,1);J.splice(I,0,ae),s.value=J,y.value=null,f.value=null},V=()=>{k.value&&k.value.click()},S=I=>{const J=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".ico",".tiff",".tif"],ae=I.toLowerCase();return J.some(ue=>ae.endsWith(ue))},O=I=>{const ae=I.target.files?.[0];if(!ae)return;const ue=new FileReader;ue.onload=he=>{try{const Ae=he.target?.result;if(typeof Ae=="string"){const Te=JSON.parse(Ae);Array.isArray(Te)&&s.value.push(...Te)}}catch(Ae){console.error("Error parsing file:",Ae)}},ue.readAsText(ae)},B=()=>{const I=JSON.stringify(s.value,null,2),J=new Blob([I],{type:"application/json"}),ae=URL.createObjectURL(J),ue=document.createElement("a");ue.href=ae,ue.download="data.json",ue.click(),URL.revokeObjectURL(ae)},T=new Set(["autocomplete","select","radio","checkbox","combobox"]),A=new Map,W=(I,J)=>{const ae=`/api/suggest/${I}`,ue=ae.includes("?")?"&":"?",he=J?`&val=${J}`:"";return`${ae}${ue}json=1${he}`},X=I=>I==null||I===""?null:typeof I=="object"?I?.id!==void 0&&I.id!==null&&I.id!==""?I.id:null:I,ee=I=>{const J=new Set;return Array.isArray(s.value)&&s.value.forEach(ae=>{const ue=ae?.[I];if(ue==null||ue==="")return;if(Array.isArray(ue)){ue.forEach(Ae=>{const Te=X(Ae);Te!==null&&J.add(Te)});return}const he=X(ue);he!==null&&J.add(he)}),J},q=async()=>{if(!t.colModel?.length)return;const I=t.colModel.filter(J=>J.data&&T.has(J.type?.toLowerCase()||""));I.length&&await Promise.all(I.map(async J=>{const ae=J.key||J.name;if(!ae)return;const ue=ee(ae),he=Array.from(ue).map(Fe=>String(Fe)).sort(),Ae=he.join(",");if(!he.length||A.get(ae)===Ae)return;A.set(ae,Ae);const Te=he.map(encodeURIComponent).join(",");try{const P=await(await fetch(W(J.data,Te))).json();i.value[ae]=P?.data??P}catch(Fe){console.error("Failed to fetch column values",Fe)}}))};e.watch([()=>t.colModel,()=>s.value],()=>{q()},{immediate:!0,deep:!0});const Q=e.ref(""),F=e.ref(!1);let j="edit",te=0;const Z=I=>(I?.format||I?.type||"").toString().toLowerCase(),se=e.computed(()=>(t.colModel?.filter(J=>Z(J)!=="slot")??[]).map(J=>{const ae=J.key||J.name;return ae?{...J,name:ae,key:ae}:J})),ke=e.ref({}),oe=e.ref({}),ye=I=>typeof I!="string"?!1:!!n[I],Ve=(I,J)=>J?J.split(".").reduce((ae,ue)=>ae==null?ae:ae[ue.trim()],I):I,xe=(I,J)=>typeof I!="string"?"":I.replace(/{{\s*([^}]+)\s*}}/g,(ae,ue)=>{const he=Ve(J,ue.trim());return he??""}),Le=I=>{if(I==null||I==="")return"";if(typeof I=="number")return I;if(typeof I=="boolean")return I?1:0;if(typeof I=="string")return I.toLowerCase();if(Array.isArray(I))return I.map(J=>Le(J)).join(", ");if(typeof I=="object"){if(I.text!==void 0)return String(I.text).toLowerCase();if(I.label!==void 0)return String(I.label).toLowerCase();if(I.id!==void 0)return String(I.id).toLowerCase()}return String(I).toLowerCase()},Ne=I=>{const J=I.key||I.name;if(J){if(d.value===J){m.value=m.value==="asc"?"desc":"asc";return}d.value=J,m.value="asc"}};async function Oe(){Q.value="Додати",F.value=!0,j="add",ke.value={}}function $e(I,J){if(!I?.length)return null;const ae=typeof J=="object"?J?.id:J;return ae==null||ae===""?null:I.find(ue=>ue?.id?.toString()===ae.toString())?.text??null}function ne(I){return I==null||I===""?"-":Array.isArray(I)?I.map(J=>typeof J=="object"?J?.text??J?.id??"-":J).join(", "):typeof I=="object"?I?.text??I?.id??"-":I}function le(I,J){const ae=J.key||J.name,ue=I?.[ae],he=i.value[ae];if(!ue)return"-";if(Array.isArray(ue)){const Te=ue.map(Fe=>$e(he,Fe)).filter(Boolean);return Te.length?Te.join(", "):ne(ue)}const Ae=$e(he,ue);return Ae||ne(ue)}async function be(I,J){Q.value="Редагувати",F.value=!0,j="edit",te=J,ke.value={...I}}function Ee(){const I=oe.value.validate();if(I){ge.notify({type:"warning",title:"Помилка валідації",message:Object.entries(I).map(([J,ae])=>`${J}: ${ae}`).join(`
2
2
  `)});return}j==="add"?Array.isArray(s.value)?s.value=[...s.value,ke.value]:s.value=[ke.value]:s.value=s.value.map((J,ae)=>ae===te?ke.value:J),F.value=!1}function ze(I){s.value=s.value.filter((J,ae)=>ae!==I)}function We(){F.value=!1}return(I,J)=>(e.openBlock(),e.createElementBlock("div",td,[a.value?(e.openBlock(),e.createElementBlock("div",nd,[r("search")?(e.openBlock(),e.createElementBlock("div",od,[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]=ae=>c.value=ae),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",rd,[r("import")?(e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"fileInput",ref:k,onChange:O,class:"hidden",accept:".json",type:"file"},null,544)):e.createCommentVNode("",!0),r("import")?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",onClick:V,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:B,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:Oe,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",ld,[e.createElementVNode("table",ad,[e.createElementVNode("thead",sd,[e.createElementVNode("tr",id,[e.createElementVNode("th",cd,[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,ae=>(e.openBlock(),e.createElementBlock("th",{key:ae.key,class:"px-4 py-3 text-left text-xs font-semibold text-gray-900"},[e.createElementVNode("button",{type:"button",onClick:ue=>Ne(ae),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(ae.ua||ae.label),1),d.value===(ae.key||ae.name)?(e.openBlock(),e.createElementBlock("span",ud,e.toDisplayString(m.value==="asc"?"▲":"▼"),1)):e.createCommentVNode("",!0)],8,dd)]))),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":!f.value}])},[p.value.length===0?(e.openBlock(),e.createElementBlock("td",pd,[e.createElementVNode("div",md,[e.createElementVNode("div",fd,[e.createVNode(ed,{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,(ae,ue)=>(e.openBlock(),e.createElementBlock("tr",{key:ae.id,"data-row-index":ue,class:e.normalizeClass(["border-b transition-colors hover:bg-gray-50 cursor-move text-sm text-gray-700",{"opacity-50":y.value===ue,"border-t-2 border-b-2 border-blue-500 bg-blue-50 dark:bg-blue-900/20":f.value===ue}]),draggable:"true",onDragstart:he=>Y(ue),onDragover:e.withModifiers(he=>L(ue),["prevent"]),onDrop:he=>E(ue)},[e.createElementVNode("td",{class:"px-4 py-3 text-center align-middle touch-none select-none",onPointerdown:he=>x(he,ue),onPointermove:_,onPointerup:N,onPointercancel:U},[e.createElementVNode("div",yd,[e.createVNode(e.unref(H.GripVertical),{class:"mx-auto h-4 w-4 text-slate-400 dark:text-slate-500"})])],40,gd),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,he=>(e.openBlock(),e.createElementBlock("td",{key:he.key,class:"px-4 py-3 align-middle"},[Z(he)==="slot"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[ye(he.slot)?e.renderSlot(I.$slots,he.slot,{key:0,row:ae,value:ae[he.key],column:he}):(e.openBlock(),e.createElementBlock("div",{key:1,class:"text-sm text-gray-900",innerHTML:xe(he.slot,ae)},null,8,bd))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[Z(he)==="file"?(e.openBlock(),e.createElementBlock("div",kd,[S(le(ae,he))?(e.openBlock(),e.createElementBlock("div",xd,[e.createElementVNode("img",{src:le(ae,he),alt:"alt",width:"45",class:"rounded-md max-w-[45px] h-[45px] object-cover"},null,8,wd)])):(e.openBlock(),e.createElementBlock("div",_d,[e.createVNode(e.unref(H.FileText),{class:"h-4 w-4 min-w-4"})]))])):Z(he)==="color"?(e.openBlock(),e.createElementBlock("div",vd,[e.createElementVNode("span",{class:"inline-flex h-6 w-6 rounded border border-gray-200",style:e.normalizeStyle({backgroundColor:le(ae,he)||"#ffffff"})},null,4)])):(e.openBlock(),e.createElementBlock("div",Cd,e.toDisplayString(le(ae,he)),1))],64))]))),128)),e.createElementVNode("td",Ed,[e.createElementVNode("div",Bd,[e.createElementVNode("button",{onClick:he=>be(ae,ue),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,Vd),e.createElementVNode("button",{onClick:he=>ze(ue),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,Sd)])])],42,hd))),128))],2)])]),e.createVNode(e.unref(ge.VsModal),{visible:F.value,title:Q.value,size:"lg",onClose:We,teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(ct,{schema:se.value,"allow-id-field":"",values:ke.value,"onUpdate:values":J[1]||(J[1]=ae=>ke.value=ae),form:oe.value,"onUpdate:form":J[2]||(J[2]=ae=>oe.value=ae)},null,8,["schema","values","form"]),e.createElementVNode("div",$d,[e.createElementVNode("button",{type:"button",onClick:J[3]||(J[3]=ae=>F.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:Ee,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"])]))}}),Nd={},Ad={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 Md(o,t){return e.openBlock(),e.createElementBlock("svg",Ad,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 Fd=ve(Nd,[["render",Md]]),Dd={},Td={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 Ld(o,t){return e.openBlock(),e.createElementBlock("svg",Td,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 Id=ve(Dd,[["render",Ld]]),Od={},Rd={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 Pd(o,t){return e.openBlock(),e.createElementBlock("svg",Rd,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 zd=ve(Od,[["render",Pd]]);function jd(o,t,n){const r=Math.max(0,Math.min(22,Math.floor(n))),l=2**r,a=Math.floor((o+180)/360*l),s=t*Math.PI/180,i=Math.floor((1-Math.log(Math.tan(s)+1/Math.cos(s))/Math.PI)/2*l);return{z:r,x:a,y:i}}function Ud(o,t){if(typeof o!="string"||!o.trim()||!/\{z\}/i.test(o))return;const n={"{z}":t.z,"{x}":t.x,"{y}":t.y,"{-y}":2**t.z-t.y-1,"{s}":"a"};let r=o;return Object.entries(n).forEach(([l,a])=>{r=r.replace(new RegExp(l.replace(/[{}-]/g,"\\$&"),"gi"),String(a))}),r}const ar=/\/(\d+)\/(\d+)\/(\d+)(\.(?:png|jpe?g|webp))(?:\?.*)?$/i;function sr(o,t){if(typeof o!="string"||!o.trim()||!ar.test(o))return;const n=o.replace(ar,`/${t.z}/${t.x}/${t.y}$4`);return n!==o?n:void 0}function Hd(o,t){if(o?.url){const n=Ud(o.url,t);if(n)return n;const r=sr(o.url,t);if(r)return r}if(o?.preview){const n=sr(o.preview,t);return n||o.preview}}const qd=["title","aria-expanded"],Kd=["src"],Wd={class:"map-layers__header"},Gd={class:"map-layers__body"},Yd={key:0,class:"map-layers__section"},Xd={class:"map-layers__grid map-layers__grid--4"},Zd=["disabled","title","onClick"],Jd={class:"map-layers__thumb"},Qd=["src"],eu={class:"map-layers__option-label"},tu={key:1,class:"map-layers__section"},nu={class:"map-layers__grid map-layers__grid--4"},ou=["title","onClick"],ru={class:"map-layers__thumb"},lu=["src"],au={class:"map-layers__option-label"},su={key:2,class:"map-layers__section map-layers__section--vector"},iu={class:"map-layers__vector-list"},cu=["checked","disabled","onChange"],Vn=.8,du=ve(e.defineComponent({__name:"map-layers",props:{basemaps:{},activeBaseKey:{},tileOverlays:{},activeTileOverlayKeys:{},vectorOverlays:{},previewTile:{},disabled:{type:Boolean},compact:{type:Boolean}},emits:["onLayerChange","onOverlayToggle","onVectorOverlayToggle"],setup(o,{emit:t}){const n=o,r=t,l=10*Vn,a=400*Vn,s=400*Vn,i=320*Vn,c=e.ref(null),d=e.ref(null),m=e.ref(null),p=e.ref(!1),h=e.ref({}),y=e.computed(()=>Object.keys(n.basemaps||{}).length>0),f=e.computed(()=>Object.keys(n.tileOverlays||{}).length>0),k=e.computed(()=>n.vectorOverlays??[]),b=e.computed(()=>k.value.length>0),C=e.computed(()=>y.value||f.value||b.value),x=e.computed(()=>n.basemaps?.[n.activeBaseKey]?.name||n.activeBaseKey||"Шари"),_=e.computed(()=>U(n.basemaps)),N=e.computed(()=>U(n.tileOverlays||{}));function U(q){const Q=n.previewTile;return Q?Object.fromEntries(Object.entries(q).map(([F,j])=>[String(F),Hd(j,Q)??j.preview??""])):{}}function Y(q){return _.value[q]||n.basemaps?.[q]?.preview||""}function L(q){return N.value[q]||n.tileOverlays?.[q]?.preview||""}const E=e.computed(()=>Y(n.activeBaseKey));function V(q){return Array.isArray(n.activeTileOverlayKeys)&&n.activeTileOverlayKeys.includes(q)}function S(){const q=d.value;if(!q)return;const Q=q.getBoundingClientRect(),F=Math.min(a,window.innerWidth-16);let j=Q.left;j+F>window.innerWidth-8&&(j=window.innerWidth-F-8),j=Math.max(8,j);const te=Q.top-l-8,Z=n.compact?i:s,se=Math.min(Z,Math.max(96,te));h.value={position:"fixed",left:`${j}px`,bottom:`${window.innerHeight-Q.top+l}px`,width:`${F}px`,maxHeight:`${se}px`,zIndex:"10050"}}async function O(){p.value=!p.value,p.value&&(await e.nextTick(),S())}function B(){p.value=!1}function T(q){q!==n.activeBaseKey&&r("onLayerChange",q)}function A(q){n.disabled||r("onOverlayToggle",q)}function W(q){n.disabled||r("onVectorOverlayToggle",q)}function X(q){if(!p.value)return;const Q=q.target;c.value?.contains(Q)||m.value?.contains(Q)||B()}function ee(q){q.key==="Escape"&&B()}return e.watch(p,async q=>{q&&(await e.nextTick(),S())}),e.onMounted(()=>{document.addEventListener("click",X),document.addEventListener("keydown",ee),window.addEventListener("resize",S),window.addEventListener("scroll",S,!0)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",X),document.removeEventListener("keydown",ee),window.removeEventListener("resize",S),window.removeEventListener("scroll",S,!0)}),(q,Q)=>C.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"rootRef",ref:c,class:e.normalizeClass(["map-layers relative",{"map-layers--compact":q.compact}])},[e.createElementVNode("button",{ref_key:"triggerRef",ref:d,type:"button",class:"map-layers__trigger",title:x.value,"aria-haspopup":"dialog","aria-expanded":p.value,onClick:e.withModifiers(O,["stop"])},[E.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:E.value,alt:"",class:"map-layers__trigger-img"},null,8,Kd)):e.createCommentVNode("",!0)],8,qd),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"map-layers-panel"},{default:e.withCtx(()=>[p.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"panelRef",ref:m,class:"map-layers__panel",style:e.normalizeStyle(h.value),role:"dialog","aria-label":"Шари карти"},[e.createElementVNode("header",Wd,[Q[0]||(Q[0]=e.createElementVNode("h3",{class:"map-layers__title"},"Шари карти",-1)),e.createElementVNode("button",{type:"button",class:"map-layers__close","aria-label":"Закрити",onClick:B},[e.createVNode(e.unref(H.X),{class:"map-layers__close-icon"})])]),e.createElementVNode("div",Gd,[f.value?(e.openBlock(),e.createElementBlock("section",Yd,[Q[1]||(Q[1]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Додаткові шари",-1)),e.createElementVNode("div",Xd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(q.tileOverlays,(F,j)=>(e.openBlock(),e.createElementBlock("button",{key:`tile-${j}`,type:"button",class:e.normalizeClass(["map-layers__option",{"map-layers__option--active":V(String(j))}]),disabled:q.disabled,title:F.name||String(j),onClick:te=>A(String(j))},[e.createElementVNode("span",Jd,[e.createElementVNode("img",{src:L(String(j)),alt:""},null,8,Qd)]),e.createElementVNode("span",eu,e.toDisplayString(F.name||j),1)],10,Zd))),128))])])):e.createCommentVNode("",!0),y.value?(e.openBlock(),e.createElementBlock("section",tu,[Q[2]||(Q[2]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Базові шари",-1)),e.createElementVNode("div",nu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(q.basemaps,(F,j)=>(e.openBlock(),e.createElementBlock("button",{key:`base-${j}`,type:"button",class:e.normalizeClass(["map-layers__option",{"map-layers__option--active":q.activeBaseKey===String(j)}]),title:F.name||String(j),onClick:te=>T(String(j))},[e.createElementVNode("span",ru,[e.createElementVNode("img",{src:Y(String(j)),alt:""},null,8,lu)]),e.createElementVNode("span",au,e.toDisplayString(F.name||j),1)],10,ou))),128))])])):e.createCommentVNode("",!0),b.value?(e.openBlock(),e.createElementBlock("section",su,[Q[3]||(Q[3]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Дані",-1)),e.createElementVNode("div",iu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,F=>(e.openBlock(),e.createElementBlock("label",{key:F.id,class:"map-layers__vector-item"},[e.createElementVNode("input",{type:"checkbox",class:"map-layers__checkbox",checked:F.visible,disabled:q.disabled,onChange:j=>W(F.id)},null,40,cu),e.createElementVNode("span",null,e.toDisplayString(F.label),1)]))),128))])])):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))],2)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-c1206d48"]]),Rt=1e-10,Sn=/([+-]?\d{1,3})\s*[°º˚]\s*(\d{1,2})\s*['’′`]\s*(\d{1,2}(?:\.\d+)?)\s*["”″]\s*([NSEW])/gi,uu=/^[+-]?\d+(?:\.\d+)?$/;function pu(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,m)=>{const p=m+1,h=t==="decimal"?mu(d,p,n):cr(d,p,n);if(!h.ok){l.push(...h.errors);return}const y=a[a.length-1];if(y&&ur(y,h.point)){l.push({line:p,message:"Послідовні точки не повинні дублюватися."});return}a.push(h.point)}),l.length)return{ok:!1,errors:l};if(new Set(a.map(hu)).size<3)return{ok:!1,errors:[{line:0,message:"Полігон повинен містити мінімум 3 унікальні точки."}]};const i=[...a];let c=!1;return ur(i[0],i[i.length-1])||(i.push(i[0]),c=!0),gu(i)?{ok:!1,errors:[{line:0,message:"Полігон має самоперетин."}]}:{ok:!0,ring:i,wasClosedAutomatically:c}}function mu(o,t,n){return ir(o,"decimal",n,t)}function ir(o,t,n,r=1){return t==="decimal"?fu(o,r,n):cr(o,r,n)}function fu(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=>uu.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 cr(o,t,n){Sn.lastIndex=0;const r=[...o.matchAll(Sn)];if(r.length<2)return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати DMS-координати."}]};if(r.length>2)return{ok:!1,errors:[{line:t,message:"У рядку дозволено лише одну пару координат."}]};if(Sn.lastIndex=0,o.replace(Sn," ").replace(/[\s,;]+/g,"").trim().length)return{ok:!1,errors:[{line:t,message:"У рядку виявлено зайві символи або значення."}]};const a=dr(r[0],t,n==="lat-lon"?"lat":"lon"),s=dr(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 dr(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),m=n==="lat"?90:180;if(d>m)return{ok:!1,error:{line:t,message:n==="lat"?"Градуси широти повинні бути в діапазоні 0..90.":"Градуси довготи повинні бути в діапазоні 0..180."}};if(d===m&&(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 hu(o){return`${o[0].toFixed(12)}:${o[1].toFixed(12)}`}function ur(o,t){return Math.abs(o[0]-t[0])<Rt&&Math.abs(o[1]-t[1])<Rt}function gu(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(yu(n,r,a,s))return!0}}return!1}function yu(o,t,n,r){const l=$n(o,t,n),a=$n(o,t,r),s=$n(n,r,o),i=$n(n,r,t);return!!(l!==a&&s!==i||l===0&&Nn(o,n,t)||a===0&&Nn(o,r,t)||s===0&&Nn(n,o,r)||i===0&&Nn(n,t,r))}function $n(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)<Rt?0:r>0?1:2}function Nn(o,t,n){return t[0]<=Math.max(o[0],n[0])+Rt&&t[0]+Rt>=Math.min(o[0],n[0])&&t[1]<=Math.max(o[1],n[1])+Rt&&t[1]+Rt>=Math.min(o[1],n[1])}const bu=["title"],ku={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"},xu=["onClick"],wu=["placeholder"],_u={class:"absolute inset-y-0 right-2 flex items-center gap-1"},vu={class:"flex items-center justify-between gap-2 px-3 py-2 border-b border-gray-100"},Cu={class:"text-xs font-semibold uppercase tracking-wide text-gray-500"},Eu={class:"max-h-[260px] overflow-auto"},Bu={key:0,class:"divide-y divide-gray-100"},Vu=["onClick"],Su={key:1,class:"px-3 py-3 text-xs text-gray-500"},pr="formMapSearchAddressHistory",$u=12,Nu="https://geo.rv.ua/api-user/dzk.api",Au="https://nominatim.openstreetmap.org/search",Mu=ve(e.defineComponent({__name:"map-search",props:{config:{}},emits:["goToCoordinates"],setup(o,{emit:t}){const n={mounted(P,v){if(typeof document>"u")return;let M=null;const R=8,ie=()=>{const Pe=String(v?.value??"");if(!Pe)return;M=document.createElement("div"),M.textContent=Pe,Object.assign(M.style,{position:"absolute",background:"#333",color:"#fff",padding:"4px 8px",borderRadius:"4px",fontSize:"12px",whiteSpace:"nowrap",pointerEvents:"none",zIndex:"9999"}),document.body.appendChild(M);const De=P.getBoundingClientRect();M.style.left=`${De.right+window.scrollX+R}px`,M.style.top=`${De.top+window.scrollY+(De.height-M.offsetHeight)/2}px`},we=()=>{M?.parentNode&&M.parentNode.removeChild(M),M=null};P.addEventListener("mouseenter",ie),P.addEventListener("mouseleave",we),Object.assign(P,{tooltipRightHandlers:{show:ie,hide:we}})},unmounted(P){if(typeof document>"u")return;const v=P.tooltipRightHandlers;v&&(P.removeEventListener("mouseenter",v.show),P.removeEventListener("mouseleave",v.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 v=a?.appContext.config.globalProperties?.$settings?.map?.searchViewbox;if(v)return Array.isArray(v)?v.join(","):String(v);const R=s()?.map?.searchViewbox;if(R)return Array.isArray(R)?R.join(","):String(R)}function c(){const v=a?.appContext.config.globalProperties?.$settings?.map?.addressSuggest;if(typeof v=="string"&&v.trim())return v.trim();const R=s()?.map?.addressSuggest;if(typeof R=="string"&&R.trim())return R.trim()}function d(){if(typeof r.config?.cadastreSuggest=="string"&&r.config.cadastreSuggest.trim())return r.config.cadastreSuggest.trim();const P=a?.appContext.config.globalProperties?.$settings,v=P?.map?.cadastreSuggest??P?.map?.parcelSuggest??P?.map?.parcelSearch;if(typeof v=="string"&&v.trim())return v.trim();const M=s(),R=M?.map?.cadastreSuggest??M?.map?.parcelSuggest??M?.map?.parcelSearch;if(typeof R=="string"&&R.trim())return R.trim()}const m=!!c(),p=!!i(),h=e.computed(()=>{const P=["nominatim","xy","parcel"];return m&&P.unshift("address"),p?P:P.filter(v=>v!=="nominatim")}),y=e.computed(()=>{const P=h.value,v=r.config?.tools?.filter(M=>P.includes(M));return v&&v.length?v:P}),f=e.computed(()=>r.config?.placeholder?.trim()||"Пошук…"),k=e.ref(y.value[0]);e.watch(y,P=>{P.includes(k.value)||(k.value=P[0])});const b=e.ref(""),C=e.ref(!1),x=e.ref(null),_=e.ref(null),N=e.ref(null),U=e.ref(null),Y=e.ref([]),L=e.ref(null),E=e.ref(!1),V=e.ref([]),S=e.computed(()=>(k.value==="address"||k.value==="nominatim")&&E.value),O=e.computed(()=>r.config?.addressDebounceMs??1e3);let B=null;const T=e.ref(!1),A=e.computed(()=>b.value.trim().length>0?Y.value:V.value),W=e.computed(()=>b.value.trim().length?`Знайдено ${Y.value.length}`:"Історія пошуку"),X=e.computed(()=>b.value.trim().length?"Нічого не знайдено":"Історія порожня");function ee(){if(typeof window>"u")return[];try{const P=window.localStorage?.getItem?.(pr);if(!P)return[];const v=JSON.parse(P);return Array.isArray(v)?v:[]}catch{return[]}}function q(P){typeof window>"u"||window.localStorage?.setItem?.(pr,JSON.stringify(P))}function Q(P){const M=[P,...V.value.filter(R=>R.id!==P.id)].slice(0,10);V.value=M,q(M)}const F=e.reactive({position:"absolute",left:"0px",top:"0px",width:"100%",display:"none"});function j(){if(!U.value)return;const P=U.value.getBoundingClientRect(),v=N.value?.getBoundingClientRect(),M=v?.width??P.width,R=(v?.left??P.left)+window.scrollX,ie=P.bottom+window.scrollY+$u;F.left=`${R}px`,F.top=`${ie}px`,F.width=`${M}px`,F.display="block"}const te=()=>{S.value&&j()};function Z(){B&&(clearTimeout(B),B=null)}e.watch(k,()=>{b.value="",C.value=!1,Y.value=[],E.value=!1,Z(),T.value=!1}),e.watch(S,P=>{P?e.nextTick(()=>{j()}):F.display="none"}),e.watch(b,P=>{if(k.value!=="address"&&k.value!=="nominatim"){Y.value=[],Z();return}if(!P.trim()){Y.value=[],E.value=V.value.length>0,Z();return}Z(),E.value=!0,B=window.setTimeout(()=>{ae(P).catch(v=>{const M=v?.message||"Помилка пошуку адреси";ge.notify({type:"error",title:"Пошук адреси",message:M})})},O.value)});function se(P){const v=[];_.value&&v.push(_.value),P instanceof HTMLElement&&v.push(P),x.value?.querySelectorAll("li")?.forEach(R=>{v.push(R)}),v.forEach(R=>{R.dispatchEvent(new MouseEvent("mouseleave",{bubbles:!0}))})}function ke(P){C.value&&se(P.target),C.value=!C.value}function oe(P,v){se(v?.target),k.value=P}function ye(){b.value="",Y.value=[],E.value=!1,T.value=!1}function Ve(P){const v=P.target;if(C.value){const M=x.value;M&&!M.contains(v)&&(se(v),C.value=!1)}if(S.value){const M=L.value,R=U.value;M&&!M.contains(v)&&(!R||!R.contains(v))&&(E.value=!1)}}e.onMounted(()=>{V.value=ee(),window.addEventListener("click",Ve,!0),window.addEventListener("scroll",te,!0),window.addEventListener("resize",te)}),e.onBeforeUnmount(()=>{window.removeEventListener("click",Ve,!0),window.removeEventListener("scroll",te,!0),window.removeEventListener("resize",te),Z()});function xe(P){return P==="xy"?"Координати":P==="parcel"?"Кадастр":P==="nominatim"?"Адреса":"Адресний"}function Le(P){switch(P){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 Ne(P){const v=ir(P.trim(),"dms","lat-lon");if(v.ok){const[Ie,Qe]=v.point;return{lat:Qe,lng:Ie}}const M=P.replace(/[,]+/g," ").trim();if(!M)return null;const R=M.split(/\s+/).filter(Boolean);if(R.length<2)return null;const ie=R.slice(0,2).map(Number);if(!ie.every(Ie=>Number.isFinite(Ie)))return null;let[we,Pe]=ie,De=we,Ge=Pe;const K=Ie=>Math.abs(Ie)<=90,de=Ie=>Math.abs(Ie)<=180;if(!K(De)||!de(Ge))if(K(Ge)&&de(De))De=Pe,Ge=we;else return null;return{lat:De,lng:Ge}}function Oe(P){const v=P?.result||P?.data||P;return(Array.isArray(v)?v:v?[v]:[]).map((R,ie)=>{const we=R?.geom_centroid,Pe=Array.isArray(we?.coordinates)?we.coordinates:null;if(!Pe||Pe.length<2)return null;const De=Number(Pe[0]),Ge=Number(Pe[1]);return!Number.isFinite(Ge)||!Number.isFinite(De)?null:{id:String(R?.parcel_id??R?.cad_num??ie),title:R?.cadnum||R?.cad_num||"Земельна ділянка",lat:Ge,lng:De}}).filter(R=>!!R)}function $e(P){return(Array.isArray(P?.features)?P.features:[]).map((M,R)=>{const ie=M?.geometry?.coordinates,we=Number(ie?.[0]),Pe=Number(ie?.[1]);if(!Number.isFinite(Pe)||!Number.isFinite(we))return null;const De=M?.properties||{},Ge=De?.geocoding?.label||De?.display_name||De?.label||"Адреса";return{id:String(De?.geocoding?.place_id||De?.place_id||R),title:Ge,lat:Pe,lng:we}}).filter(M=>!!M)}function ne(P){return Number.isFinite(P.lat)&&Number.isFinite(P.lng)}function le(P){if(P==null||typeof P=="string"&&!P.trim())return null;const v=Number(P);return Number.isFinite(v)?v:null}function be(P){const v=le(P.lng)??le(P.lon)??le(P.longitude)??le(P.x),M=le(P.lat)??le(P.latitude)??le(P.y);if(v!=null&&M!=null)return{lat:M,lng:v};const R=P?.geometry?.coordinates??P?.geom_centroid?.coordinates??P?.centroid?.coordinates??P?.geojson?.geometry?.coordinates??P?.geom?.coordinates;if(Array.isArray(R)&&R.length>=2){const ie=le(R[0]),we=le(R[1]);if(ie!=null&&we!=null)return{lat:we,lng:ie}}return null}function Ee(P){return(Array.isArray(P?.data)?P.data:[]).map((M,R)=>{const ie=be(M),we=String(M.text??M.title??M.label??M.name??M.address??M.display_name??M.id??"Адреса"),Pe=String(M.id??M.code??M.value??R);return ie?{id:Pe,title:we,...ie}:{id:Pe,title:we}}).filter(M=>!!M?.title)}function ze(P){const v=d()||Nu;if(v.includes(":id"))return v.replace(":id",encodeURIComponent(P));if(v.includes(":name"))return v.replace(":name",encodeURIComponent(P));try{const M=new URL(v,window.location.origin),R=r.config?.parcelQueryParam?.trim()||"cad_num";return M.searchParams.set(R,P),M.toString()}catch{return v}}function We(P){const v=c();if(!v)return null;if(v.includes(":name"))return v.replace(":name",encodeURIComponent(P));try{const M=new URL(v,window.location.origin);return P.trim()&&M.searchParams.set("q",P),M.toString()}catch{return v}}async function I(P){const v=We(P);if(!v)return[];const M=await fetch(v);if(!M.ok)throw new Error(`HTTP ${M.status}`);const R=await M.json();return Ee(R)}async function J(P){const v=new URL(Au);v.searchParams.set("format","geojson"),v.searchParams.set("q",P),v.searchParams.set("addressdetails","1"),v.searchParams.set("bounded","1");const M=i();M&&v.searchParams.set("viewbox",M);const R=await fetch(v.toString());if(!R.ok)throw new Error(`HTTP ${R.status}`);const ie=await R.json();return $e(ie)}async function ae(P){if(Y.value=[],Z(),k.value==="address"){if(!c()){ge.notify({type:"warning",title:"Пошук адреси",message:"Не налаштовано addressSuggest"});return}const R=await I(P);if(!R.length){ge.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}Y.value=R;return}const v=await J(P);if(!v.length){ge.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}Y.value=v}async function ue(P){if(ne(P)){Te(P),Q(P);return}ge.notify({type:"warning",title:"Пошук адреси",message:"Геометрія для обраної адреси відсутня"})}function he(){k.value!=="address"&&k.value!=="nominatim"||(E.value=!0,e.nextTick(()=>{j()}))}function Ae(P){const M=P.replace(/\s+/g,"").split(":");if(M.length!==4)return!1;const R=[10,2,3,4];return M.every((ie,we)=>ie.length===R[we]&&/^\d+$/.test(ie))}function Te(P){l("goToCoordinates",[P.lat,P.lng]),T.value=!0}async function Fe(){const P=b.value.trim();if(P){if(k.value==="xy"){const v=Ne(P);if(!v){ge.notify({type:"warning",title:"Пошук координат",message:"Використайте `lat lon` або DMS у форматі `50°27'00\"N 30°31'24\"E`."});return}Te(v);return}if(k.value==="address"||k.value==="nominatim"){try{await ae(P)}catch(v){const M=v?.message||"Помилка пошуку адреси";ge.notify({type:"error",title:"Пошук адреси",message:M})}return}try{if(!Ae(P)){ge.notify({type:"warning",title:"Пошук кадастру",message:"Кадастровий номер має формат ХХХХХХХХХХ:ХХ:ХХХ:ХХХХ"});return}const v=await fetch(ze(P));if(!v.ok)throw new Error(`HTTP ${v.status}`);const M=await v.json(),R=Oe(M);if(!R.length)ge.notify({type:"warning",title:"Пошук",message:"Не знайдено результатів"});else{const ie=R.find(ne);if(!ie){ge.notify({type:"warning",title:"Пошук",message:"Геометрія ділянки відсутня"});return}Te(ie)}}catch(v){const M=v?.message||"Помилка пошуку";ge.notify({type:"error",title:"Пошук",message:M})}}}return(P,v)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"widgetRef",ref:N,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(Fe,["prevent"])},[y.value.length>1?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:x,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:ke},[e.withDirectives((e.openBlock(),e.createElementBlock("span",{ref_key:"selectedToolLabelRef",ref:_,class:"block w-full truncate",title:xe(k.value)},[e.createTextVNode(e.toDisplayString(xe(k.value)),1)],8,bu)),[[n,Le(k.value)]]),(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(["w-4 h-4 text-gray-500 transition-transform",{"rotate-180":C.value}]),viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},v[3]||(v[3]=[e.createElementVNode("path",{d:"M6 9l6 6 6-6",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]),2))]),C.value?(e.openBlock(),e.createElementBlock("div",ku,[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,M=>e.withDirectives((e.openBlock(),e.createElementBlock("li",{key:M,class:"px-3 py-2 cursor-pointer hover:bg-gray-100 text-gray-900",onClick:R=>oe(M,R)},[e.createTextVNode(e.toDisplayString(xe(M)),1)],8,xu)),[[n,Le(M)]])),128))])])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"searchWrapperRef",ref:U,class:"relative flex-1 min-w-[140px]"},[k.value==="parcel"?(e.openBlock(),e.createBlock(hn,{key:0,modelValue:b.value,"onUpdate:modelValue":v[0]||(v[0]=M=>b.value=M),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",T.value?"!pr-14":"!pr-8"])},null,8,["modelValue","class"])):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,"onUpdate:modelValue":v[1]||(v[1]=M=>b.value=M),placeholder:f.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",T.value?"!pr-14":"!pr-8"]),onFocus:he},null,42,wu)),[[e.vModelText,b.value,void 0,{trim:!0}]]),e.createElementVNode("div",_u,[T.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"flex items-center text-gray-400 hover:text-gray-600","aria-label":"Очистити",onClick:ye},v[4]||(v[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),v[5]||(v[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:L,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(F)},[e.createElementVNode("div",vu,[e.createElementVNode("span",Cu,e.toDisplayString(W.value),1),e.createElementVNode("button",{type:"button",class:"text-gray-400 hover:text-gray-600","aria-label":"Закрити",onClick:v[2]||(v[2]=M=>E.value=!1)}," ✕ ")]),e.createElementVNode("div",Eu,[A.value.length?(e.openBlock(),e.createElementBlock("ul",Bu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(A.value,M=>(e.openBlock(),e.createElementBlock("li",{key:M.id,class:"px-3 py-2 cursor-pointer hover:bg-gray-50",onClick:R=>ue(M)},e.toDisplayString(M.title),9,Vu))),128))])):(e.openBlock(),e.createElementBlock("div",Su,e.toDisplayString(X.value),1))])],4)])):e.createCommentVNode("",!0)],512)],32)],512))}}),[["__scopeId","data-v-4d528cf7"]]),Fu={class:"pt-1 border-t border-gray-100"},Du={class:"space-y-1"},Tu=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,m)=>Math.min(Math.max(c,d),m),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",Fu,[d[2]||(d[2]=e.createElementVNode("p",{class:"text-xs text-gray-600 mb-1"},"Додати точку за координатами:",-1)),e.createElementVNode("div",Du,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[0]||(d[0]=m=>r.value=m),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]=m=>l.value=m),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}," Скасувати ")])])]))}}),Lu=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))]))}}),Iu=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))]))}}),Ou=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))]))}}),Ru=new Intl.NumberFormat("uk-UA",{minimumFractionDigits:2,maximumFractionDigits:2});function Pt(o){return Ru.format(o)}function mr(o){return o>=1e3?`${Pt(o/1e3)} км`:`${Pt(o)} м`}const Pu={class:"flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"},zu={key:0,class:"flex-1 flex gap-1"},ju={key:1,class:"flex-1 font-mono text-gray-700"},Uu=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,y,f)=>Math.min(Math.max(h,y),f),d=()=>{a.value=!0},m=()=>{if(!Number.isFinite(s.value)||!Number.isFinite(i.value))return;const h=c(s.value,-90,90),y=c(i.value,-180,180);r("update",{id:n.id,coords:{lat:h,lng:y}}),a.value=!1},p=()=>{r("delete",n.id)};return(h,y)=>(e.openBlock(),e.createElementBlock("div",Pu,[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",zu,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":y[0]||(y[0]=f=>s.value=f),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":y[1]||(y[1]=f=>i.value=f),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:m}," ✓ ")])):(e.openBlock(),e.createElementBlock("span",ju,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}," ✕ ")]))}}),Hu={class:"ruler-control px-3 py-2.5 space-y-2"},qu={type:"button",class:"ruler-row w-full flex items-center gap-2 cursor-pointer group text-left"},Ku={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"},Wu={class:"text-sm font-semibold text-slate-700"},Gu={class:"ruler-row"},Yu={type:"button",class:"w-full flex items-center gap-2 cursor-pointer group text-left"},Xu={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"},Zu={class:"inline-flex rounded-md overflow-hidden border border-gray-200 bg-gray-100"},Ju=["onClick"],Qu={class:"flex items-center gap-2 mt-0.5 pl-7"},ep={key:0,class:"text-base font-semibold text-green-600"},tp={key:1,class:"text-xs text-gray-400"},np={class:"ruler-row flex items-center gap-2 cursor-pointer"},op={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"},rp={class:"text-xs font-medium text-gray-600 flex-1"},lp={key:0,class:"pt-1.5 border-t border-gray-100 max-h-32 overflow-y-auto space-y-1"},ap=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=(f,k)=>{const b=V=>V*Math.PI/180,C=b(k.lat-f.lat),x=b(k.lng-f.lng),_=b(f.lat),N=b(k.lat),U=Math.sin(C/2),Y=Math.sin(x/2);return 6371e3*(2*Math.asin(Math.sqrt(U*U+Math.cos(_)*Math.cos(N)*Y*Y)))},i=e.computed(()=>{if(t.points.length<2)return 0;let f=0;for(let k=1;k<t.points.length;k+=1)f+=s(t.points[k-1].coords,t.points[k].coords);return t.isShapeClosed&&t.points.length>=2&&(f+=s(t.points[t.points.length-1].coords,t.points[0].coords)),f}),c=e.computed(()=>i.value>=1e3?`${Pt(i.value/1e3)} км`:`${Pt(i.value)} м`);function d(f){if(f.length<3)return 0;const k=f[0].lat,b=f[0].lng,C=(_,N)=>{const U=(_-k)*110574;return{x:(N-b)*111320*Math.cos(k*Math.PI/180),y:U}};let x=0;for(let _=0;_<f.length;_++){const N=(_+1)%f.length,U=C(f[_].lat,f[_].lng),Y=C(f[N].lat,f[N].lng);x+=U.x*Y.y-U.y*Y.x}return Math.abs(x)*.5}const m=e.computed(()=>{if(!t.isShapeClosed||t.points.length<3)return 0;const f=t.points.map(k=>k.coords);return d(f)}),p=e.computed(()=>m.value>0),h=e.computed(()=>{const f=m.value;if(f===0)return"—";if(r.value==="km2"){const b=f/1e6;return`${Pt(b)} км²`}if(r.value==="ha"){const b=f/1e4;return`${Pt(b)} га`}const k=f>=1?Math.round(f):f;return`${Pt(k)} м²`}),y=e.computed(()=>{const f=t.points.length;return f===1?"1 точка":f>=2&&f<=4?`${f} точки`:`${f} точок`});return e.watch(()=>t.points.length,()=>{t.points.length===0&&(n.value=!1)}),(f,k)=>(e.openBlock(),e.createElementBlock("div",Hu,[e.createElementVNode("button",qu,[e.createElementVNode("span",Ku,[e.createVNode(e.unref(H.Info),{size:12,"stroke-width":2.5})]),k[1]||(k[1]=e.createElementVNode("span",{class:"text-xs font-medium text-gray-600 flex-1"},"Загальна відстань",-1)),e.createElementVNode("span",Wu,e.toDisplayString(c.value),1)]),e.createElementVNode("div",Gu,[e.createElementVNode("button",Yu,[e.createElementVNode("span",Xu,[e.createVNode(e.unref(H.Info),{size:12,"stroke-width":2.5})]),k[2]||(k[2]=e.createElementVNode("span",{class:"text-xs font-medium text-gray-600 flex-1"},"Площа",-1)),e.createElementVNode("div",Zu,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(l,(b,C)=>e.createElementVNode("button",{key:b.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===b.id?"bg-white text-green-600 font-semibold shadow-sm":"text-gray-600 hover:bg-gray-50"]),onClick:e.withModifiers(x=>r.value=b.id,["stop"])},e.toDisplayString(b.label),11,Ju)),64))])]),e.createElementVNode("div",Qu,[p.value?(e.openBlock(),e.createElementBlock("span",ep,e.toDisplayString(h.value),1)):(e.openBlock(),e.createElementBlock("span",tp,"—"))])]),e.createElementVNode("div",np,[e.createElementVNode("span",op,[e.createVNode(e.unref(H.Info),{size:12,"stroke-width":2.5})]),e.createElementVNode("span",rp,e.toDisplayString(y.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",lp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.points,(b,C)=>(e.openBlock(),e.createBlock(Uu,{key:b.id,id:b.id,index:C+1,coords:b.coords,onUpdate:k[0]||(k[0]=x=>f.$emit("update-point",x)),onDelete:x=>f.$emit("delete-point",b.id)},null,8,["id","index","coords","onDelete"]))),128))])):e.createCommentVNode("",!0)]))}}),sp={class:"px-3 py-3 bg-blue-50/50 border-b border-blue-100"},ip={class:"flex items-start gap-2"},cp=e.defineComponent({__name:"InfoHint",setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",sp,[e.createElementVNode("div",ip,[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))])]))}}),dp={class:"space-y-1.5"},up={class:"space-y-1 max-h-40 overflow-y-auto"},pp={class:"text-gray-700"},mp={class:"font-semibold text-slate-800"},fp=e.defineComponent({__name:"ToPointList",props:{points:{},isShapeClosed:{type:Boolean}},setup(o){const t=o;function n(a,s){const i=y=>y*Math.PI/180,c=i(s.lat-a.lat),d=i(s.lng-a.lng),m=i(a.lat),p=i(s.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(c/2)**2+Math.cos(m)*Math.cos(p)*Math.sin(d/2)**2)))}function r(a){return mr(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",dp,[s[0]||(s[0]=e.createElementVNode("p",{class:"text-xs font-medium text-gray-600 mb-1.5"},"Відстань між точками:",-1)),e.createElementVNode("div",up,[(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",pp,"Точка "+e.toDisplayString(i.from)+" → Точка "+e.toDisplayString(i.to),1),e.createElementVNode("span",mp,e.toDisplayString(i.label),1)]))),128))])]))}}),hp={class:"ruler-panel-wrap absolute bottom-12 right-4 z-[1001] animate-slide-up"},gp={class:"bg-white rounded-xl shadow-2xl border border-gray-200 overflow-hidden w-72"},yp={class:"bg-gradient-to-r from-blue-400 to-blue-500 px-3 py-2 flex items-center justify-between"},bp={class:"flex items-center gap-2"},kp={class:"w-6 h-6 bg-white/20 rounded-lg flex items-center justify-center"},xp={class:"flex border-b border-gray-200"},wp={key:1,class:"px-3 py-2.5"},_p={key:1,class:"text-xs text-gray-500"},vp={class:"px-2.5 py-1.5 bg-gray-50 border-t border-gray-200 space-y-1.5"},Cp={class:"flex gap-1.5"},Ep=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(S){c.value=S,r("tab-change",S)}e.onMounted(()=>{r("tab-change",c.value)});const m=e.computed(()=>l.value.length>=3&&!i.value);let p=1;const h=()=>l.value.map(S=>({id:S.id,coords:{...S.coords}})),y=()=>{l.value.length<3&&i.value&&(i.value=!1,r("shape-closed-change",!1)),r("points-change",h())},f=()=>{const S=p;return p+=1,S},k=S=>{l.value=[...l.value,{id:f(),coords:{lat:S.lat,lng:S.lng}}],y()},b=({id:S,coords:O})=>{const B=l.value.findIndex(A=>A.id===S);if(B===-1)return;const T=[...l.value];T[B]={id:S,coords:{...O}},l.value=T,y()},C=S=>{l.value=l.value.filter(O=>O.id!==S),y()},x=()=>{l.value=[],i.value&&(i.value=!1,r("shape-closed-change",!1)),y()},_=S=>{b(S)},N=S=>{C(S)},U=()=>{s.value=!0,r("add-request")},Y=S=>{k(S),s.value=!1},L=()=>{s.value=!1},E=()=>{m.value&&(i.value=!0,r("complete"),r("shape-closed-change",!0))},V=()=>{x(),s.value=!1,r("close")};return t({addPoint:k,clearPoints:x}),(S,O)=>(e.openBlock(),e.createElementBlock("div",hp,[e.createElementVNode("div",gp,[e.createElementVNode("div",yp,[e.createElementVNode("div",bp,[e.createElementVNode("div",kp,[e.createVNode(e.unref(H.Ruler),{size:14,"stroke-width":2,class:"text-white"})]),O[2]||(O[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:V},[e.createVNode(e.unref(H.X),{size:14,"stroke-width":2,class:"text-white"})])]),e.createElementVNode("div",xp,[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:O[0]||(O[0]=B=>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:O[1]||(O[1]=B=>d("topoint"))}," До точки ",2)]),c.value==="general"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[a.value?(e.openBlock(),e.createBlock(ap,{key:1,points:l.value,"is-shape-closed":i.value,onUpdatePoint:_,onDeletePoint:N},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createBlock(cp,{key:0}))],64)):(e.openBlock(),e.createElementBlock("div",wp,[a.value?(e.openBlock(),e.createBlock(fp,{key:0,points:l.value,"is-shape-closed":i.value},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createElementBlock("p",_p,"Додайте точки на карті, щоб бачити відстані між ними."))])),e.createElementVNode("div",vp,[e.createElementVNode("div",Cp,[s.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(Lu,{key:0,onClick:U})),m.value?(e.openBlock(),e.createBlock(Ou,{key:1,onClick:E})):e.createCommentVNode("",!0)]),s.value?(e.openBlock(),e.createBlock(Tu,{key:0,onSubmit:Y,onCancel:L})):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createBlock(Iu,{key:1,onClick:x})):e.createCommentVNode("",!0)])])]))}}),nt="ruler-points",vt="ruler-line",Ct="ruler-polygon",Et="ruler-segments",Bp=e.defineComponent({__name:"RulerLayer",props:{map:{},points:{},isShapeClosed:{type:Boolean},labelMode:{}},setup(o){function t(f,k){const b=Y=>Y*Math.PI/180,C=b(k.lat-f.lat),x=b(k.lng-f.lng),_=b(f.lat),N=b(k.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(C/2)**2+Math.cos(_)*Math.cos(N)*Math.sin(x/2)**2)))}function n(f){return mr(f)}const r=o;function l(){return{type:"FeatureCollection",features:[]}}function a(f,k,b){const C=b??"general",x=[];let _=0;x.push(0);for(let N=1;N<f.length;N++)_+=t(f[N-1].coords,f[N].coords),x.push(_);return k&&f.length>=2&&(_+=t(f[f.length-1].coords,f[0].coords)),{type:"FeatureCollection",features:f.map((N,U)=>{const Y=C==="general"?U===0?"0":n(x[U]):U===0?"0":n(t(f[U-1].coords,f[U].coords));return{type:"Feature",geometry:{type:"Point",coordinates:[N.coords.lng,N.coords.lat]},properties:{id:N.id,index:U+1,label:Y}}})}}function s(f,k){if(f.length<2)return l();const b=[];for(let C=0;C<f.length;C++){const x=C===f.length-1&&k?0:C+1;if(x>=f.length)break;const _=f[C].coords,N=f[x].coords,U=t(_,N);b.push({type:"Feature",geometry:{type:"LineString",coordinates:[[_.lng,_.lat],[N.lng,N.lat]]},properties:{distance:n(U)}})}return{type:"FeatureCollection",features:b}}function i(f,k){if(f.length<2)return l();const b=f.map(C=>[C.coords.lng,C.coords.lat]);return k&&b.push(b[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"LineString",coordinates:b},properties:{}}]}}function c(f){if(f.length<3)return l();const k=f.map(b=>[b.coords.lng,b.coords.lat]);return k.push(k[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"Polygon",coordinates:[k]},properties:{}}]}}let d=!1;function m(f){f.getSource(nt)||(f.addSource(nt,{type:"geojson",data:l()}),f.addLayer({id:`${nt}-circle`,type:"circle",source:nt,paint:{"circle-radius":5,"circle-color":"#1e293b","circle-stroke-width":2,"circle-stroke-color":"#ffffff"}}),f.addLayer({id:`${nt}-labels`,type:"symbol",source:nt,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}})),f.getSource(Et)||(f.addSource(Et,{type:"geojson",data:l()}),f.addLayer({id:`${Et}-labels`,type:"symbol",source:Et,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}})),f.getSource(vt)||(f.addSource(vt,{type:"geojson",data:l()}),f.addLayer({id:`${vt}-layer`,type:"line",source:vt,paint:{"line-color":"#3b82f6","line-width":2}})),f.getSource(Ct)||(f.addSource(Ct,{type:"geojson",data:l()}),f.addLayer({id:`${Ct}-layer`,type:"fill",source:Ct,paint:{"fill-color":"#93c5fd","fill-opacity":.25}})),d=!0}function p(f){if(f){try{f.getLayer(`${Ct}-layer`)&&f.removeLayer(`${Ct}-layer`),f.getSource(Ct)&&f.removeSource(Ct),f.getLayer(`${vt}-layer`)&&f.removeLayer(`${vt}-layer`),f.getSource(vt)&&f.removeSource(vt),f.getLayer(`${Et}-labels`)&&f.removeLayer(`${Et}-labels`),f.getSource(Et)&&f.removeSource(Et),f.getLayer(`${nt}-labels`)&&f.removeLayer(`${nt}-labels`),f.getLayer(`${nt}-circle`)&&f.removeLayer(`${nt}-circle`),f.getSource(nt)&&f.removeSource(nt)}catch{}d=!1}}function h(f){if(!f)return;const k=f.getSource(nt),b=f.getSource(vt),C=f.getSource(Ct),x=f.getSource(Et),_=r.points,N=r.labelMode??"general";k&&k.setData(a(_,r.isShapeClosed,N)),b&&b.setData(i(_,r.isShapeClosed)),C&&C.setData(c(_)),x&&x.setData(N==="topoint"?s(_,r.isShapeClosed):l())}function y(){const f=r.map;f&&(d||m(f),h(f))}return e.watch(()=>[r.points,r.isShapeClosed,r.labelMode],()=>y(),{deep:!0,immediate:!0}),e.watch(()=>r.map,()=>y(),{immediate:!0}),e.onBeforeUnmount(()=>{p(r.map)}),(f,k)=>null}});function Vp(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(y){n.value=y}function d(y){l.value=y}function m(y){r.value=y}function p(y){t.value&&a.value?.addPoint({lat:y.lat,lng:y.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:m,handleRulerMapClick:p}}const Sp={class:"vs-map-body"},$p={key:0,class:"absolute top-2 left-2 z-[1000] w-[calc(100%-16px)] sm:w-[320px]"},Np={key:1,class:"form-geom__panel flex items-center gap-1 mt-1"},Ap={class:"flex items-center gap-1"},Mp=["disabled"],Fp={key:0,class:"absolute z-[1600] left-0 top-full mt-1 w-full min-w-[140px] bg-white border border-gray-200 shadow-lg rounded-lg text-sm overflow-hidden"},Dp=["disabled"],Tp=["disabled"],Lp={class:"mt-4 flex justify-end gap-2"},Ip=["disabled"],Op={class:"vs-map-controls vs-map-controls--tr"},Rp={class:"vs-map-toolbar"},Pp=["disabled"],zp=["disabled"],jp=["disabled"],Up=["disabled"],Hp={key:1,class:"vs-map-toolbar__divider"},qp={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"},Kp={class:"space-y-0.5"},Wp={class:"text-gray-500"},Gp={class:"text-gray-900 text-right break-all"},Yp={class:"absolute left-2 bottom-2 z-[1000]"},Xp={key:0,class:"vs-map-status"},Zp={class:"form-geom__feature vs-map-status__inner"},Jp={class:"vs-map-status__type"},Qp={class:"vs-map-status__values"},em=["onClick","disabled"],tm={key:1,class:"vs-map-status__chip"},nm={key:2,class:"vs-map-status__sep"},om={key:1,class:"vs-map-status__chip"},rm={class:"vs-map-status__meta"},lm={class:"vs-map-status__coords"},am={key:0,class:"vs-map-status__value"},sm={key:1,class:"vs-map-status__value"},im={key:0,class:"vs-map-status__area"},cm={class:"vs-map-status__value"},dm={class:"vs-map-status__actions"},um=["disabled"],pm=["disabled"],mm=11,fm=15,hm=.7,gm="vs-tile-ov-src-",ym="vs-tile-ov-raster-",An="__vs_form_maplibre_loader__",Mn="vs-global-bounds-src",Kt="vs-global-bounds-line",fr="rasterLayer",hr=ve(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 u=l?.multiple,g=l?.multi,w=$=>$===""||$===!0||$==="true"||$===1||$==="1";return!!n.multi||!!n.multiple||w(g)||w(u)}),s=e.computed(()=>!!n.disabled),i=e.ref(!1),c=e.ref(null),d=e.ref(0),m=e.ref(""),p=e.ref(null),h=e.ref([]),y=e.ref(null),f=e.ref(null),k=Vp({onActivate(){if(de)try{de.changeMode("simple_select",{featureIds:[]})}catch{}m.value=""},onDeactivate(){}});function b(){k.toggleRuler()}const C=e.getCurrentInstance(),x=C?.appContext?.config?.globalProperties?.$settings??{},_=x?.map??{},N=C?.vnode?.props??{};function U(u){return Object.prototype.hasOwnProperty.call(N,u)||Object.prototype.hasOwnProperty.call(N,u.replace(/[A-Z]/g,g=>`-${g.toLowerCase()}`))}const Y=Array.isArray(_.center)&&_.center.length===2?_.center:Array.isArray(x.center)&&x.center.length===2?x.center:[30,50],L=typeof _.zoom=="number"?_.zoom:typeof x.zoom=="number"?x.zoom:typeof x.defaultZoom=="number"?x.defaultZoom:10;function E(u){if(u!=null){if(Array.isArray(u)&&u.length>=2){const g=Number(u[0]),w=Number(u[1]);return!Number.isFinite(g)||!Number.isFinite(w)?void 0:[g,w]}if(typeof u=="object"){const g=u,w=g.geom;if(g.type==="Point"&&Array.isArray(g.coordinates)){const G=g.coordinates,ce=Number(G[0]),pe=Number(G[1]);if(Number.isFinite(ce)&&Number.isFinite(pe))return[ce,pe]}if(w?.type==="Point"&&Array.isArray(w.coordinates)){const G=w.coordinates,ce=Number(G[0]),pe=Number(G[1]);if(Number.isFinite(ce)&&Number.isFinite(pe))return[ce,pe]}const $=Number(g.lat),D=Number(g.lng??g.lon);if(Number.isFinite($)&&Number.isFinite(D))return[D,$]}}}const V=e.computed(()=>{const u=E(n.center);if(u)return u;if(!U("center"))return E(_.center)??E(x.center)}),S=e.computed(()=>U("zoom")?n.zoom:_.zoom??n.zoom),O=e.computed(()=>U("katottg")?String(n.katottg??""):String(_.katottg??n.katottg??"")),B=e.computed(()=>U("layers")?n.layers??[]:_.layers??n.layers??[]),T=e.computed(()=>U("bounds")?n.bounds:_.bounds??n.bounds),A=e.ref(Array.isArray(V.value)&&V.value.length===2?[...V.value]:Y),W=e.ref(typeof S.value=="number"?S.value:L),X=e.ref(null);let ee=null;function q(u){const g=typeof u=="number"&&Number.isFinite(u)?u:W.value;return Math.min(fm,Math.max(mm,Math.round(g)))}function Q(u,g,w){if(!Number.isFinite(u)||!Number.isFinite(g))return;const $=jd(u,g,q(w)),D=X.value;D&&D.z===$.z&&D.x===$.x&&D.y===$.y||(X.value=$)}function F(){if(K){const u=K.getCenter?.(),g=K.getZoom?.();if(u&&Number.isFinite(g)){Q(u.lng,u.lat,g);return}}Array.isArray(A.value)&&A.value.length===2&&Q(A.value[0],A.value[1])}function j(){ee&&clearTimeout(ee),ee=setTimeout(()=>{ee=null,F()},120)}Q(A.value[0],A.value[1]);const te=e.ref(n.modelValue),Z=e.ref(null),se=e.ref(null),ke=e.ref([]),oe=e.ref(!1),ye=e.ref(!1),Ve=e.ref([]),xe=e.ref({coordinates:"",format:"decimal",order:"lat-lon"}),Le={coordinates:{type:"Textarea",label:"Координати вершин полігону (3-100 точок)",placeholder:`50.4501, 30.5234
3
3
  50.4510, 30.5242
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 Ne=!1,Oe=!1;const $e=e.reactive({}),ne=e.ref([]),le=e.computed(()=>ne.value.map(u=>$e[u]).filter(Boolean)),be=e.ref(null),Ee=e.computed(()=>be.value?.entries??[]),ze=e.computed(()=>{if(be.value)return{left:`${be.value.point.x+12}px`,top:`${be.value.point.y+12}px`}}),We=e.computed(()=>{if(Array.isArray(n.tools)&&n.tools.length)return n.tools;const u=l?.tools;return Array.isArray(u)?u.map(g=>String(g)):typeof u=="string"?u.split(",").map(g=>g.trim()).filter(Boolean):[]}),I=e.computed(()=>{const u={search:!1,import:!1,export:!1,point:!1,line:!1,polygon:!1,rectangle:!1,ruler:!1};if(!We.value.length)return{...u,import:!0,export:!0,point:!0,line:!0,polygon:!0,rectangle:!0};const g=new Set(We.value.map(w=>w.toLowerCase()));return{search:g.has("search"),import:g.has("import"),export:g.has("export"),point:g.has("point"),line:g.has("line"),polygon:g.has("polygon"),rectangle:g.has("rectangle"),ruler:g.has("ruler")}});function J(u){if(typeof u!="string"||!u.trim())return"";if(/^https?:\/\//i.test(u))return u;const g=window?.location?.origin??"",w=u.replace(/^\/+/,"");return w?g?`${g}/${w}`:`/${w}`:g}function ae(){const u=Array.isArray(_.basemaps)&&_.basemaps.length?_.basemaps:x.basemaps;if(Array.isArray(u)&&u.length){const w=u.map(($,D)=>{const G=String($?.key??$?.id??$?.name??`b${D}`),ce=J(String($?.url??""));if(!ce)return null;const pe=typeof $?.preview=="string"&&$.preview?J($.preview):"";return[G,{...$,url:ce,preview:pe}]}).filter($=>Array.isArray($)&&$.length===2).reduce(($,[D,G])=>($[D]=G,$),{});if(Object.keys(w).length)return w}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 ue=ae(),he=Object.keys(ue),Ae=e.ref(he.length?he[0]:"");function Te(){const u=Array.isArray(_.overlays)&&_.overlays.length?_.overlays:x.overlays;return!Array.isArray(u)||!u.length?{}:u.map((w,$)=>{const G=(typeof w?.name=="string"?w.name.trim():"")||`o${$}`,ce=J(String(w?.url??""));if(!ce)return null;const pe=typeof w?.preview=="string"&&w.preview?J(w.preview):"";return[G,{...w,name:G,url:ce,preview:pe}]}).filter(w=>Array.isArray(w)&&w.length===2).reduce((w,[$,D])=>(w[$]=D,w),{})}const Fe=Te(),P=e.ref(Object.keys(Fe).filter(u=>!!Fe[u]?.visible)),v=e.computed(()=>I.value.point||I.value.line||I.value.polygon||I.value.rectangle),M=e.computed(()=>le.value.map(u=>({id:u.id,label:String(u.config.title||u.config.name||u.id),visible:u.visible})));function R(u){return`${gm}${u}`}function ie(u){return`${ym}${u}`}async function we(){if(typeof window>"u")return null;const u=window;if(u[An])return u[An];const g=G=>{if(Array.from(document.styleSheets).some(Se=>Se?.href?.includes(G)))return;const pe=document.createElement("link");pe.rel="stylesheet",pe.href=G,document.head.appendChild(pe)},w=async()=>{const G=new Function("u","return import(u)"),ce=await G("https://esm.sh/maplibre-gl@3.6.2"),pe=ce?.default??ce;if(!pe)throw new Error("maplibre esm fallback failed");window.maplibregl=pe,window.mapboxgl=pe;const Se=await G("https://esm.sh/@mapbox/mapbox-gl-draw@1.5.0"),je=Se?.default??Se;if(!je)throw new Error("mapbox draw esm fallback failed");window.MapboxDraw=je},D=(async()=>{g("https://unpkg.com/maplibre-gl@3.6.2/dist/maplibre-gl.css"),g("https://unpkg.com/@mapbox/mapbox-gl-draw@1.5.0/dist/mapbox-gl-draw.css"),(!window.maplibregl||!window.MapboxDraw)&&await w();const G=window.maplibregl,ce=window.MapboxDraw;if(!G)throw new Error("maplibregl not available after load");if(!ce)throw new Error("MapboxDraw not available after load");return{maplibregl:G,MapboxDraw:ce}})().catch(G=>{throw delete u[An],G});return u[An]=D,D}function Pe(u){return{version:8,sources:{rasterSource:{type:"raster",tiles:[u],tileSize:256}},layers:[{id:"rasterLayer",type:"raster",source:"rasterSource"}]}}let De=null,Ge=null,K=null,de=null,Ie=[],Qe=null,dt=null,Ye=null,Ft=!1,Dt=!1,jt=!1,Tt=null;function Eo(){return{onSetup(){const u=this.newFeature({type:"Feature",properties:{},geometry:{type:"Polygon",coordinates:[[[0,0],[0,0],[0,0],[0,0],[0,0]]]}});return this.addFeature(u),this.clearSelectedFeatures(),this.updateUIClasses({mouse:"add"}),this.setActionableState({trash:!0}),{rectangle:u,startPoint:null,hasCoordinates:!1}},onMouseMove(u,g){if(!u.startPoint)return;const[w,$]=u.startPoint,D=g.lngLat.lng,G=g.lngLat.lat;u.rectangle.setCoordinates([[[w,$],[D,$],[D,G],[w,G],[w,$]]])},onClick(u,g){if(!u.startPoint){u.startPoint=[g.lngLat.lng,g.lngLat.lat],u.hasCoordinates=!0,u.rectangle.setCoordinates([[[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat]]]);return}const[w,$]=u.startPoint,D=g.lngLat.lng,G=g.lngLat.lat;return Math.abs(w-D)>0&&Math.abs($-G)>0?(u.rectangle.setCoordinates([[[w,$],[D,$],[D,G],[w,G],[w,$]]]),this.map.fire("draw.create",{features:[u.rectangle.toGeoJSON()]}),this.changeMode("simple_select",{featureIds:[u.rectangle.id]})):(this.deleteFeature([u.rectangle.id],{silent:!0}),u.hasCoordinates=!1,this.changeMode("simple_select"))},onStop(){},onTrash(u){this.deleteFeature([u.rectangle.id],{silent:!0}),this.changeMode("simple_select")},toDisplayFeatures(u,g,w){const $=g.properties.id===u.rectangle.id;$&&!u.hasCoordinates||(g.properties.active=$?"true":"false",w(g))}}}const Bo=[{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 jn(){const u=Ae.value;return!u||!ue[u]?.url?"":ue[u].url}function Un(u,g){return u?.id?String(u.id):u?.url?`${u.url}-${g}`:`layer-${g}`}function Vo(u){const g=String(u?.url??"").trim();if(!g)return"";if(/^https?:\/\//i.test(g))return g;const w=window.location?.origin??"",$=g.replace(/^\/+/,"");return`${w}/${$}`}function Lt(u){u&&be.value?.layerId!==u||(be.value=null)}function Hn(u,g={}){return u.popup===!1?[]:Array.isArray(u.popup)?u.popup.length?u.popup.map(w=>{const $=w?.field||w?.name;if(!$)return null;const D=g[$];return D==null||D===""?null:{key:w.label||$,value:String(D)}}).filter(Boolean):[]:Object.entries(g).slice(0,5).map(([w,$])=>({key:w,value:$==null?"—":String($)}))}function z(u){if(!Array.isArray(u))return[];const g=$=>Array.isArray($)&&$.length>=2&&Number.isFinite(Number($[0]))&&Number.isFinite(Number($[1])),w=$=>{if(!$.length)return $;const D=$[0],G=$[$.length-1];return!G||D[0]!==G[0]||D[1]!==G[1]?[...$,D]:$};if(u.length&&g(u[0])){const $=u.map(D=>[Number(D[0]),Number(D[1])]).filter(g);return $.length?[w($)]:[]}return u.length&&Array.isArray(u[0])&&g(u[0][0])?u.map(D=>Array.isArray(D)?D.map(G=>[Number(G[0]),Number(G[1])]):[]).filter(D=>D.length).map(w):u.length&&Array.isArray(u[0])&&Array.isArray(u[0][0])&&g(u[0][0][0])?u.flatMap(D=>Array.isArray(D)?D:[]).map(D=>Array.isArray(D)?D.map(G=>[Number(G[0]),Number(G[1])]):[]).filter(D=>D.length).map(w):[]}function re(u){const g=u.style??{},w=g.color??"#3b82f6";if(!g.colorAttr||!g.colorSet)return w;const $=Object.keys(g.colorSet);if(!$.length)return w;const D=["match",["to-string",["get",g.colorAttr]]];return $.forEach(G=>{D.push(String(G),g.colorSet?.[G]??w)}),D.push(w),D}function me(u){if(!K)return;u.handlers.forEach(w=>{try{K.off(w.type,w.layerId,w.handler)}catch{}}),u.handlers=[],[...u.layerIds,...u.boundsIds].forEach(w=>{K.getLayer(w)&&K.removeLayer(w)}),K.getSource(u.sourceId)&&K.removeSource(u.sourceId);const g=`vs-ov-bounds-src-${u.id}`;K.getSource(g)&&K.removeSource(g),Lt(u.id)}function Me(u,g){if(!K)return[];const w=`vs-ov-bounds-src-${g}`,$=`vs-ov-bounds-line-${g}`,D=u.bounds??T.value??ke.value,G=z(D);if(!G.length)return[];const ce={type:"FeatureCollection",features:G.map(pe=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:pe}}))};return K.getSource(w)&&K.removeSource(w),K.addSource(w,{type:"geojson",data:ce}),K.addLayer({id:$,type:"line",source:w,paint:{"line-color":u.style?.stroke??u.style?.color??"#2563eb","line-width":u.style?.width??2,"line-opacity":u.style?.opacity??.8,"line-dasharray":[2,2]}}),[$]}function Re(u){if(!K)return;me(u);const g=u.config,w=Vo(g);if(!w)return;const $=[],D=[];if(/\.v(?:m)?t(?:\?|$)/i.test(w)||/\.pbf(?:\?|$)/i.test(w)){const pe=g.sourceLayer||g.layer||g.service_layer||g.dataset?.layer||g.id;K.addSource(u.sourceId,{type:"vector",tiles:[w]});const Se=String(g.style?.type??"polygon").toLowerCase(),je=re(g),pt=g.style?.opacity??.5;if(Se==="point"){const mt=`vs-ov-point-${u.id}`;K.addLayer({id:mt,type:"circle",source:u.sourceId,"source-layer":pe,paint:{"circle-color":je,"circle-radius":5,"circle-opacity":pt}}),$.push(mt)}else if(Se==="polyline"||Se==="line"){const mt=`vs-ov-line-${u.id}`;K.addLayer({id:mt,type:"line",source:u.sourceId,"source-layer":pe,layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":je,"line-width":g.style?.width??2,"line-opacity":pt}}),$.push(mt)}else{const mt=`vs-ov-fill-${u.id}`,Ut=`vs-ov-border-${u.id}`;K.addLayer({id:mt,type:"fill",source:u.sourceId,"source-layer":pe,paint:{"fill-color":je,"fill-opacity":pt}}),K.addLayer({id:Ut,type:"line",source:u.sourceId,"source-layer":pe,paint:{"line-color":g.style?.stroke??g.style?.color??"#2563eb","line-width":g.style?.width??1,"line-opacity":pt}}),$.push(mt,Ut)}}else{K.addSource(u.sourceId,{type:"raster",tiles:[w],tileSize:256});const pe=`vs-ov-raster-${u.id}`;K.addLayer({id:pe,type:"raster",source:u.sourceId,paint:{"raster-opacity":g.style?.opacity??1}}),$.push(pe)}$.forEach(pe=>{const Se=pt=>{if(!pt?.features?.length){Lt(u.id);return}const mt=pt.features[0]?.properties??{},Ut=Hn(u.config,mt);if(!Ut.length){Lt(u.id);return}be.value={layerId:u.id,entries:Ut,point:{x:pt.point.x,y:pt.point.y}}},je=()=>Lt(u.id);K.on("mousemove",pe,Se),K.on("mouseleave",pe,je),D.push({layerId:pe,type:"mousemove",handler:Se},{layerId:pe,type:"mouseleave",handler:je})}),u.layerIds=$,u.boundsIds=Me(u.config,u.id),u.handlers=D;const ce=u.visible?"visible":"none";[...u.layerIds,...u.boundsIds].forEach(pe=>{K.getLayer(pe)&&K.setLayoutProperty(pe,"visibility",ce)})}function Ue(){if(!K)return;const g={type:"FeatureCollection",features:z(T.value??ke.value).map(w=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:w}}))};K.getSource(Mn)?K.getSource(Mn).setData(g):K.addSource(Mn,{type:"geojson",data:g}),K.getLayer(Kt)||K.addLayer({id:Kt,type:"line",source:Mn,paint:{"line-color":"#2563eb","line-width":2,"line-opacity":.8,"line-dasharray":[2,2]}})}function He(u){if(!K||s.value)return;const g=$e[u];if(!g)return;g.visible=!g.visible;const w=g.visible?"visible":"none";[...g.layerIds,...g.boundsIds].forEach($=>{K.getLayer($)&&K.setLayoutProperty($,"visibility",w)}),qe(),g.visible||Lt(u)}function st(u){if(!K)return;const g=Fe[u];if(!g?.url)return;const w=R(u),$=ie(u);K.getLayer($)&&K.removeLayer($),K.getSource(w)&&K.removeSource(w),K.addSource(w,{type:"raster",tiles:[g.url],tileSize:256});const D=g?.opacity??g?.style?.opacity,G=typeof D=="number"?D:hm;K.addLayer({id:$,type:"raster",source:w,paint:{"raster-opacity":G}})}function kt(u){if(!K)return;const g=R(u),w=ie(u);K.getLayer(w)&&K.removeLayer(w),K.getSource(g)&&K.removeSource(g)}function ut(){K&&P.value.forEach(u=>st(u))}function xt(u){if(!K||s.value||!Fe[u])return;P.value.includes(u)?(P.value=P.value.filter(w=>w!==u),kt(u)):(P.value=[...P.value,u],st(u)),qe()}function qe(){if(!K)return;const u=P.value.map(Se=>ie(Se)).filter(Se=>K.getLayer(Se)),g=[],w=[],$=[],D=[];ne.value.forEach(Se=>{const je=$e[Se];if(!je)return;const pt=String(je.config?.url??""),mt=/\.v(?:m)?t(?:\?|$)/i.test(pt),Ut=/\.png(?:\?|$)/i.test(pt);mt?$.push(...je.layerIds):Ut?g.push(...je.layerIds):w.push(...je.layerIds),D.push(...je.boundsIds)});const G=[...u,...g,...w,...$,...D];G.forEach(Se=>{K.getLayer(Se)&&K.moveLayer(Se)}),K.getLayer(Kt)&&K.moveLayer(Kt);const pe=(K.getStyle?.()?.layers??[]).map(Se=>String(Se?.id??"")).filter(Se=>Se.startsWith("gl-draw-"));if(pe.forEach(Se=>{K.getLayer(Se)&&K.moveLayer(Se)}),K.getLayer(fr)){const Se=G.find(je=>K.getLayer(je))??(K.getLayer(Kt)?Kt:null)??pe.find(je=>K.getLayer(je));Se&&K.moveLayer(fr,Se)}}function un(u){if(!ue[u]||(Ae.value=u,!K))return;const g=jn();if(!g)return;const w=K.getSource("rasterSource");if(w&&typeof w.setTiles=="function"){w.setTiles([g]),qe();return}const $=K.getCenter?.(),D=K.getZoom?.(),G=de?.getAll?.();K.setStyle(Pe(g)),K.once("style.load",()=>{if(K&&($&&Number.isFinite(D)&&K.jumpTo({center:[$.lng,$.lat],zoom:D}),Ue(),ut(),ne.value.forEach(ce=>{const pe=$e[ce];pe&&Re(pe)}),qe(),G?.features?.length&&de))try{G.features.forEach(ce=>de.add(ce)),d.value=G.features.length}catch{d.value=0}})}function So(u){return{type:"Feature",properties:{},geometry:u}}function wt(u){if(!u)return null;try{return JSON.parse(JSON.stringify(u))}catch{return null}}function $o(u){if(!u)return null;const g=wt(u.geometry);return g?{...u.id!==void 0?{id:u.id}:{},type:"Feature",properties:{...u.properties??{}},geometry:g}:null}function pn(u){if(!u)return[];const g=(D,G)=>{if(!D?.type)return[];const ce={...G??{}};return D.type==="MultiPoint"&&Array.isArray(D.coordinates)?D.coordinates.map(pe=>So({type:"Point",coordinates:pe})).map(pe=>({...pe,properties:ce})):D.type==="MultiLineString"&&Array.isArray(D.coordinates)?D.coordinates.map(pe=>So({type:"LineString",coordinates:pe})).map(pe=>({...pe,properties:ce})):D.type==="MultiPolygon"&&Array.isArray(D.coordinates)?D.coordinates.map(pe=>So({type:"Polygon",coordinates:pe})).map(pe=>({...pe,properties:ce})):D.type==="GeometryCollection"&&Array.isArray(D.geometries)?D.geometries.flatMap(pe=>g(pe,ce)):[{type:"Feature",properties:ce,geometry:wt(D)}]},w=D=>{if(!D)return null;if(D.type==="Feature"){const G=$o(D);return G?g(G.geometry,G.properties):null}return D.geom?.type&&Array.isArray(D.geom.coordinates)?g({type:D.geom.type,coordinates:D.geom.coordinates},D.properties??{}):D.type==="GeometryCollection"&&Array.isArray(D.geometries)?g(D,D.properties??{}):typeof D.type=="string"&&Array.isArray(D.coordinates)?g(wt(D),D.properties??{}):null};if(u.type==="FeatureCollection")return(u.features??[]).flatMap(w).filter(Boolean);if(Array.isArray(u))return u.flatMap(D=>D?.type==="FeatureCollection"?pn(D):[w(D)]).flat().filter(Boolean);const $=w(u);return $?Array.isArray($)?$:[$]:[]}function ll(u){if(!u.length)return null;if(!a.value)return wt(u[0]?.geometry??null);const g=u.map(G=>wt(G?.geometry)).filter(Boolean);return g.every(G=>G?.type==="Point")?{type:"MultiPoint",coordinates:g.map(G=>G.coordinates)}:g.every(G=>G?.type==="LineString")?{type:"MultiLineString",coordinates:g.map(G=>G.coordinates)}:g.every(G=>G?.type==="Polygon")?{type:"MultiPolygon",coordinates:g.map(G=>G.coordinates)}:{type:"GeometryCollection",geometries:g}}function al(u){if(!u)return"__null__";try{return JSON.stringify(u)}catch{return"__invalid__"}}function py(u,g){if(!Array.isArray(u)||!Array.isArray(g)||u.length<2||g.length<2)return!1;const w=1e-12;return Math.abs(Number(u[0])-Number(g[0]))<w&&Math.abs(Number(u[1])-Number(g[1]))<w}function sl(u,g){if(!Array.isArray(u)||u.length<4)return null;const $=py(u[0],u[u.length-1])?u.slice(0,-1):u.slice();return!Number.isInteger(g)||g<0||g>=$.length||$.length<=3||($.splice(g,1),$.length<3)?null:[...$,[...$[0]]]}function il(u,g){if(!Array.isArray(u)||u.length<2||!Number.isInteger(g)||g<0||g>=u.length||u.length<=2)return null;const w=u.slice();return w.splice(g,1),w.length<2?null:w}function my(u,g){const w=wt(u);if(!w||!Array.isArray(g))return null;if(w.type==="LineString"){const[$]=g,D=il(w.coordinates,$);return D?(w.coordinates=D,w):null}if(w.type==="MultiLineString"){const[$,D]=g,G=w.coordinates?.[$],ce=il(G,D);return ce?(w.coordinates[$]=ce,w):null}if(w.type==="Polygon"){const[$,D]=g,G=w.coordinates?.[$],ce=sl(G,D);return ce?(w.coordinates[$]=ce,w):null}if(w.type==="MultiPolygon"){const[$,D,G]=g,ce=w.coordinates?.[$]?.[D],pe=sl(ce,G);return pe?(w.coordinates[$][D]=pe,w):null}return null}function fy(u){return u?u.split(".").map(g=>Number(g)).filter(g=>Number.isInteger(g)&&g>=0):[]}function cl(u){return!de||!u?null:typeof de.get=="function"?de.get(u)??null:de.getAll?.()?.features?.find(w=>String(w?.id??"")===u)??null}function dl(u){const g=u?.properties?.id??u?.id;return g==null||g===""?null:String(g)}function hy(u){if(!K||!u)return null;const g=[[u.x-8,u.y-8],[u.x+8,u.y+8]],$=K.queryRenderedFeatures(g).find(D=>{const G=String(D?.properties?.meta??"");return G&&G!=="feature"?!1:!!dl(D)});return dl($)}function gy(u,g){if(!de||!u||!g.length)return;const w=cl(u);if(!w?.geometry)return;const $=my(w.geometry,g);if(!$)return;const D={...w,id:w.id??u,geometry:$};Oe=!0,Ne=!0;try{de.delete(u),de.add(D)}finally{Ne=!1,Oe=!1}It(),Bt()}function yy(u){if(!K||!de||s.value||k.isRulerActive.value||m.value!=="edit")return;const g=u?.point;if(!g)return;const w=[[g.x-8,g.y-8],[g.x+8,g.y+8]],D=K.queryRenderedFeatures(w).find(ce=>ce?.properties?.meta==="vertex"&&ce?.properties?.parent&&ce?.properties?.coord_path);if(!D)return;u?.originalEvent?.preventDefault?.(),u?.originalEvent?.stopPropagation?.();const G=fy(String(D.properties.coord_path));G.length&&gy(String(D.properties.parent),G)}function by(u){const g=ml(u);if(!g)return null;const[[w,$],[D,G]]=g;return{lat:($+G)/2,lng:(w+D)/2}}function ul(u){if(!Array.isArray(u)||u.length<3)return 0;const g=($,D)=>{const G=$*2003750834e-2/180,ce=Math.log(Math.tan((90+D)*Math.PI/360))/(Math.PI/180);return[G,ce*2003750834e-2/180]};let w=0;for(let $=0;$<u.length-1;$+=1){const[D,G]=g(Number(u[$][0]),Number(u[$][1])),[ce,pe]=g(Number(u[$+1][0]),Number(u[$+1][1]));w+=D*pe-ce*G}return Math.abs(w/2)/1e6}function ky(u){if(!u?.type||!u?.coordinates)return null;if(u.type==="Polygon"){const g=u.coordinates?.[0];return Array.isArray(g)?ul(g):null}return u.type==="MultiPolygon"?u.coordinates.reduce((g,w)=>{const $=w?.[0];return Array.isArray($)?g+ul($):g},0):null}function No(u){if(!u){p.value=null;return}const g=by(u);if(!g){p.value=null;return}p.value={type:String(u.type??"Feature"),center:g,areaKm2:ky(u)}}function Ao(u){if(!u){const $=Ie[Ie.length-1],D=wt($?.geometry??null);Qe=D,No(D);return}const g=Ie.find($=>String($?.id??"")===String(u))??null,w=wt(g?.geometry??null);Qe=w,No(w)}function Mo(u){h.value=(u??[]).map((g,w)=>{const $=String(g?.id??`feature-${w+1}`),D=Fo(String(g?.geometry?.type??"Feature"));return{id:$,label:`${D} ${w+1}`}})}function Fo(u){switch(String(u)){case"Point":return"Точка";case"MultiPoint":return"Мультиточка";case"LineString":return"Лінія";case"MultiLineString":return"Мультилінія";case"Polygon":return"Полігон";case"MultiPolygon":return"Мультиполігон";case"GeometryCollection":return"Колекція геометрій";default:return String(u||"Невідомо")}}function pl(u,g){if(!Array.isArray(u)||!Array.isArray(g)||u.length!==2||g.length!==2)return!1;const w=1e-9;return Math.abs(Number(u[0])-Number(g[0]))<w&&Math.abs(Number(u[1])-Number(g[1]))<w}function ml(u){if(!u)return null;let g=1/0,w=1/0,$=-1/0,D=-1/0;const G=ce=>{if(Array.isArray(ce)){if(ce.length>=2&&Number.isFinite(ce[0])&&Number.isFinite(ce[1])){const pe=Number(ce[0]),Se=Number(ce[1]);g=Math.min(g,pe),w=Math.min(w,Se),$=Math.max($,pe),D=Math.max(D,Se);return}ce.forEach(G)}};return G(u.coordinates),!Number.isFinite(g)||!Number.isFinite(w)?null:[[g,w],[$,D]]}function fl(u){if(!K||!u)return;const g=ml(u);if(!g)return;const[[w,$],[D,G]]=g;if(w===D&&$===G){K.easeTo({center:[w,$],zoom:Math.max(W.value,14)}),j();return}K.fitBounds(g,{padding:30,duration:250,maxZoom:18}),j()}function Do(){if(!de){d.value=0;return}const u=de.getAll();d.value=u?.features?.length??0}function mn(){if(!de)return null;const g=de.getAll?.()?.features??[],w=G=>!!G&&g.some(ce=>String(ce?.id??"")===String(G??"")),$=de.getSelectedIds?.();if(Array.isArray($)&&$.length>0){const G=$[0];return G!=null?String(G):null}if(w(Ye))return String(Ye);if(!g.length)return null;const D=a.value?g[g.length-1]:g[0];return D?.id!==void 0&&D?.id!==null?String(D.id):null}function It(){if(!de)return;const u=de.getAll();if(d.value=u?.features?.length??0,!u?.features?.length){Ie=[],h.value=[],Qe=null,Ye=null,p.value=null,Ne||(dt="__null__",r("update:modelValue",null));return}const g=(u.features??[]).map($o).filter(Boolean);if(Ie=g,Mo(g),Ye=mn(),Ao(Ye),!Ne){const w=ll(g);dt=al(w),r("update:modelValue",w)}}function qn(){if(!de)return;(de.getAll()?.features||[]).forEach(g=>de.delete(g.id)),h.value=[],Do()}function Kn(u){if(!de)return;const g=pn(u),w=a.value?g:g.slice(0,1);Ne=!0,qn(),w.forEach(G=>{try{de.add(G)}catch{}}),Ne=!1,Ie=(de.getAll?.()?.features??w).map($o).filter(Boolean),Mo(Ie),Ye=null;const D=wt(Ie[Ie.length-1]?.geometry??null);Qe=wt(D),Do(),No(D),D&&(fl(D),s.value||Bt())}function xy(){de&&(Ne=!0,qn(),Ie.forEach(u=>{try{de.add(u)}catch{}}),Ne=!1,Mo(Ie),Do(),Ao(Ye))}function Gt(){if(de){try{de.changeMode("simple_select",{featureIds:[]})}catch{}m.value=""}}function Wn(u){if(s.value||!de)return;k.isRulerActive.value&&k.closeRuler(),jt=!0,Gt(),m.value=u;const g=u==="marker"?"draw_point":u==="polyline"?"draw_line_string":u==="rectangle"?"draw_rectangle":"draw_polygon";a.value||(Ne=!0,qn(),Ne=!1);try{de.changeMode(g)}catch{m.value=""}finally{requestAnimationFrame(()=>{jt=!1})}}function Bt(u){if(s.value||!de||!de.getAll()?.features?.length)return;const w=u||mn();if(w)try{de.changeMode("direct_select",{featureId:w}),Ye=w,Ao(Ye),m.value="edit"}catch{m.value=""}}function wy(u){s.value||!de||!u||Bt(u)}function _y(){if(!(s.value||!de)){if(a.value){const u=mn();if(u)try{Ft=!0,de.delete(u),Ft=!1,It();const g=mn();g?Bt(g):Gt();return}catch{Ft=!1}}Gt(),qn(),Ie=[],h.value=[],Ye=null,dt="__null__",p.value=null,r("update:modelValue",null)}}function vy(){s.value||!Qe||fl(Qe)}function Cy(u){if(!K||!De)return;const g=[u[1],u[0]];Tt||(Tt=new De.Marker({color:"#2563eb"})),Tt.setLngLat(g).addTo(K),K.easeTo({center:g,zoom:13,duration:250})}function Ey(){s.value||Z.value?.click()}function By(){s.value||(oe.value=!oe.value)}function hl(u){if(!oe.value)return;const g=se.value;g&&!g.contains(u.target)&&(oe.value=!1)}function Vy(){oe.value=!1,Ey()}function Sy(){s.value||(Ve.value=[],oe.value=!1,ye.value=!0)}function $y(){ye.value=!1,Ve.value=[]}function Ny(){if(s.value||!de)return;const u=pu(xe.value.coordinates??"",xe.value.format||"decimal",xe.value.order||"lat-lon");if(!u.ok){Ve.value=u.errors,Ay(u.errors);return}Ve.value=[],Kn({type:"Polygon",coordinates:[u.ring]}),It(),ye.value=!1,u.wasClosedAutomatically&&ge.notify({type:"info",title:"Імпорт координат",message:"Полігон був автоматично замкнений (перша і остання точки різнилися)."})}function Ay(u){if(!u.length)return;const g=5;u.slice(0,g).forEach(w=>{const $=w.line>0?`Рядок ${w.line}`:"Загальна помилка";ge.notify({type:"warning",title:"Імпорт координат",message:`${$} — ${w.message}`})}),u.length>g&&ge.notify({type:"warning",title:"Імпорт координат",message:`Ще помилок: ${u.length-g}`})}function My(u){if(s.value||!de)return;oe.value=!1;const g=u.target,w=g.files?.[0];if(!w)return;const $=new FileReader;$.onload=()=>{try{const D=JSON.parse(String($.result));if(!pn(D).length){ge.notify({type:"warning",title:"Імпорт файлу",message:"Файл не містить коректний GeoJSON-обʼєкт."});return}Kn(D),It()}catch{ge.notify({type:"error",title:"Імпорт файлу",message:"Не вдалося прочитати файл. Перевірте формат GeoJSON/JSON."})}finally{g.value=""}},$.onerror=()=>{ge.notify({type:"error",title:"Імпорт файлу",message:"Помилка читання файлу."}),g.value=""},$.readAsText(w)}function Fy(){if(s.value||!de)return;const u=de.getAll(),g=new Blob([JSON.stringify(u,null,2)],{type:"application/json"}),w=URL.createObjectURL(g),$=document.createElement("a");$.href=w,$.download="data.geojson",$.click(),URL.revokeObjectURL(w)}e.onMounted(async()=>{if(window.addEventListener("click",hl,!0),!c.value)return;const u=await we();De=u.maplibregl,Ge=u.MapboxDraw;const g=jn();g&&(K=new De.Map({container:c.value,style:Pe(g),center:[A.value[0],A.value[1]],zoom:W.value,attributionControl:!1}),y.value=K,K.addControl(new De.NavigationControl({showCompass:!0}),"bottom-right"),K.on("load",()=>{if(!(!Ge||!K)){if(de=new Ge({displayControlsDefault:!1,modes:{...Ge.modes,draw_rectangle:Eo()},controls:{point:!1,line_string:!1,polygon:!1,trash:!1},styles:Bo}),K.addControl(de),K.on("click",w=>{if(k.isRulerActive.value){const D=w?.lngLat;if(!D)return;f.value?.addPoint?.({lat:D.lat,lng:D.lng});return}if(!de||s.value||m.value!=="edit")return;const $=hy(w?.point);!$||$===Ye||requestAnimationFrame(()=>{!de||s.value||Bt($)})}),K.on("draw.create",()=>{if(de&&!k.isRulerActive.value){if(!a.value){const w=de.getAll();if(w.features.length>1){const $=w.features[w.features.length-1];Ne=!0,w.features.slice(0,-1).forEach(D=>de.delete(D.id)),Ne=!1,$&&(Ne=!0,de.add($),Ne=!1)}}It(),Bt()}}),K.on("draw.update",w=>{if(Dt||k.isRulerActive.value)return;const $=Array.isArray(w?.features)?w.features:[],D=w?.action==="move"&&$.length>0&&$.every(G=>G?.geometry?.type==="Point");if(w?.action==="move"){if(D){It();return}if(Dt=!0,xy(),Dt=!1,m.value==="edit"){const G=mn(),ce=G?cl(G):de?.getAll?.()?.features?.[0];if(ce?.id)try{de.changeMode("direct_select",{featureId:ce.id}),Ye=String(ce.id)}catch{m.value=""}}return}It()}),K.on("draw.delete",()=>{Oe||Ft||k.isRulerActive.value||m.value==="marker"||m.value==="polyline"||m.value==="polygon"||m.value==="rectangle"||(It(),de?.getAll?.()?.features?.length||(Ye=null),m.value="",Gt())}),K.on("draw.selectionchange",w=>{if(!de||Dt||k.isRulerActive.value||m.value==="marker"||m.value==="polyline"||m.value==="polygon"||m.value==="rectangle")return;const $=w?.features?.[0]?.id!==void 0&&w?.features?.[0]?.id!==null?String(w.features[0].id):null;if(!s.value&&$){if(m.value==="edit"&&Ye===$)return;requestAnimationFrame(()=>{!de||s.value||Bt($)});return}const D=de.getSelectedIds?.(),G=Array.isArray(D)&&D.length>0?String(D[0]):null;if(!s.value&&G){if(m.value==="edit"&&Ye===G)return;requestAnimationFrame(()=>{!de||s.value||Bt(G)});return}try{de.changeMode("simple_select",{featureIds:[]})}catch{}}),te.value!==void 0){const w=te.value;te.value=void 0,requestAnimationFrame(()=>{de&&Kn(w)})}Ue(),ut(),ne.value.forEach(w=>{const $=$e[w];$&&Re($)}),qe(),F()}}),K.on("contextmenu",yy),K.on("moveend",j),K.on("zoomend",()=>{K&&(W.value=K.getZoom())}))}),e.onUnmounted(()=>{ee&&(clearTimeout(ee),ee=null),k.isRulerActive.value&&k.closeRuler(),window.removeEventListener("click",hl,!0),Object.values($e).forEach(u=>{K&&me(u)}),Lt(),Tt?.remove&&Tt.remove(),Tt=null,K?.remove&&K.remove(),K=null,de=null,y.value=null}),e.watch(()=>n.modelValue,u=>{if(!de){te.value=u;return}const g=ll((a.value?pn(u):pn(u).slice(0,1))||[]),w=al(g);if(dt&&w===dt){dt=null;return}dt=null,Kn(u)},{deep:!0}),e.watch(()=>B.value,u=>{const g=Array.isArray(u)?u:[],w=[],$=new Set;g.forEach((D,G)=>{if(!D)return;const ce=Un(D,G);w.push(ce),$.add(ce);const pe={...D,id:ce},Se=$e[ce],je=Se?.visible??!!pe.visible;Se&&K&&me(Se),$e[ce]={id:ce,config:pe,visible:je,sourceId:`vs-ov-src-${ce}`,layerIds:[],boundsIds:[],handlers:[]}}),Object.keys($e).forEach(D=>{if($.has(D))return;const G=$e[D];G&&K&&me(G),delete $e[D]}),ne.value=w,K&&(ne.value.forEach(D=>{const G=$e[D];G&&Re(G)}),qe())},{immediate:!0,deep:!0}),e.watch(()=>T.value,()=>{K&&(Ue(),ne.value.forEach(u=>{const g=$e[u];g&&Re(g)}),qe())},{deep:!0}),e.watch(()=>O.value,async u=>{if(ke.value=[],!u){K&&(Ue(),ne.value.forEach(g=>{const w=$e[g];w&&Re(w)}),qe());return}try{const g=await fetch(`https://data.gki.com.ua/api-user/atu/${u}`);if(!g?.ok)return;const $=(await g.json())?.geometry?.coordinates;Array.isArray($)&&$.length&&(ke.value=$)}catch(g){console.error("Failed to fetch KATOTTG bounds",g)}finally{if(!K)return;Ue(),ne.value.forEach(g=>{const w=$e[g];w&&Re(w)}),qe()}},{immediate:!0}),e.watch(()=>V.value,u=>{if(!Array.isArray(u)||u.length!==2)return;const g=[Number(u[0]),Number(u[1])];if(pl(A.value,g)||(A.value=[...g],!K))return;const w=K.getCenter?.();w&&pl([w.lng,w.lat],A.value)||K.easeTo({center:[A.value[0],A.value[1]]})},{deep:!0}),e.watch(()=>S.value,u=>{typeof u=="number"&&(W.value=u,K&&K.setZoom(u))}),e.watch(()=>p.value?.center,u=>{u&&Q(u.lng,u.lat,K?.getZoom?.())},{deep:!0}),e.watch(s,u=>{u&&Gt()}),e.watch(d,u=>{if(u>0){s.value||Bt();return}jt||Gt()});const gl=e.computed(()=>h.value.length>0||!!p.value),To=e.computed(()=>{const u=h.value,g=u.length>1;return u.length?u.map(w=>({id:w.id,label:g?w.label:p.value?.type?Fo(p.value.type):w.label,interactive:g})):p.value?.type?[{id:"__feature",label:Fo(p.value.type),interactive:!1}]:[]});function yl(){setTimeout(()=>{K?.resize&&K.resize()},50)}return e.watch(i,yl),e.watch(gl,yl),(u,g)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body",disabled:!i.value},[e.createElementVNode("div",{class:e.normalizeClass(["vs-map-wrapper w-full",{fullscreen:i.value}])},[e.createElementVNode("div",Sp,[e.createElementVNode("div",{ref_key:"mapContainer",ref:c,class:"vs-map-canvas"},null,512),I.value.search||I.value.import||I.value.export?(e.openBlock(),e.createElementBlock("div",$p,[I.value.search?(e.openBlock(),e.createBlock(Mu,{key:0,onGoToCoordinates:Cy})):e.createCommentVNode("",!0),I.value.import||I.value.export?(e.openBlock(),e.createElementBlock("div",Np,[e.createElementVNode("div",Ap,[I.value.import?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"importMenuRef",ref:se,class:"relative"},[e.createElementVNode("button",{type:"button",class:"vs-map-action-btn",onClick:By,disabled:s.value},[g[8]||(g[8]=e.createTextVNode(" Імпорт ",-1)),e.createVNode(e.unref(H.ChevronDown),{class:e.normalizeClass(["h-3.5 w-3.5 shrink-0 transition-transform",{"rotate-180":oe.value}])},null,8,["class"])],8,Mp),oe.value?(e.openBlock(),e.createElementBlock("div",Fp,[I.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:Vy}," З файлу ")):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:Sy}," З координат ")])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),I.value.export?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"vs-map-action-btn",onClick:Fy,disabled:s.value||d.value===0}," Експорт ",8,Dp)):e.createCommentVNode("",!0)]),e.createElementVNode("input",{ref_key:"importRef",ref:Z,type:"file",onChange:My,accept:".json,.geojson",class:"hidden",disabled:s.value},null,40,Tp)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createVNode(e.unref(ge.VsModal),{visible:ye.value,"onUpdate:visible":g[1]||(g[1]=w=>ye.value=w),title:"Імпорт координат полігону",size:"lg",teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(ct,{schema:Le,values:xe.value,"onUpdate:values":g[0]||(g[0]=w=>xe.value=w)},null,8,["values"]),e.createElementVNode("div",Lp,[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:$y}," Скасувати "),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:Ny,disabled:s.value}," Побудувати ",8,Ip)])]),_:1},8,["visible"]),e.createElementVNode("div",Op,[e.createElementVNode("div",Rp,[v.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[I.value.point?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(["vs-btn",{"vs-active":m.value==="marker"}]),title:"Точка",onClick:g[2]||(g[2]=w=>Wn("marker")),disabled:s.value},[e.createVNode(e.unref(H.MapPin),{class:"vs-btn-icon"})],10,Pp)):e.createCommentVNode("",!0),I.value.line?(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(["vs-btn",{"vs-active":m.value==="polyline"}]),title:"Лінія",onClick:g[3]||(g[3]=w=>Wn("polyline")),disabled:s.value},[e.createVNode(Fd,{class:"vs-btn-icon"})],10,zp)):e.createCommentVNode("",!0),I.value.polygon?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":m.value==="polygon"}]),title:"Полігон",onClick:g[4]||(g[4]=w=>Wn("polygon")),disabled:s.value},[e.createVNode(Id,{class:"vs-btn-icon"})],10,jp)):e.createCommentVNode("",!0),I.value.rectangle?(e.openBlock(),e.createElementBlock("button",{key:3,class:e.normalizeClass(["vs-btn",{"vs-active":m.value==="rectangle"}]),title:"Прямокутник",onClick:g[5]||(g[5]=w=>Wn("rectangle")),disabled:s.value},[e.createVNode(zd,{class:"vs-btn-icon"})],10,Up)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),v.value?(e.openBlock(),e.createElementBlock("div",Hp)):e.createCommentVNode("",!0),I.value.ruler?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":e.unref(k).isRulerActive.value}]),title:"Лінійка",onClick:b},[e.createVNode(e.unref(H.Ruler),{class:"vs-btn-icon"})],2)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"vs-btn",onClick:g[6]||(g[6]=w=>i.value=!i.value),title:"На весь екран"},[e.createVNode(e.unref(H.Maximize),{class:"vs-btn-icon"})])])]),I.value.ruler&&e.unref(k).isRulerActive.value?(e.openBlock(),e.createBlock(Ep,{key:1,ref_key:"rulerPanelRefEl",ref:f,onClose:g[7]||(g[7]=w=>e.unref(k).closeRuler()),onTabChange:e.unref(k).onRulerTabChange,onPointsChange:e.unref(k).onRulerPointsChange,onShapeClosedChange:e.unref(k).onRulerShapeClosedChange},null,8,["onTabChange","onPointsChange","onShapeClosedChange"])):e.createCommentVNode("",!0),I.value.ruler&&e.unref(k).isRulerActive.value&&e.unref(k).hasRulerPoints.value?(e.openBlock(),e.createBlock(Bp,{key:2,map:y.value,points:e.unref(k).rulerPoints.value,"is-shape-closed":e.unref(k).rulerShapeClosed.value,"label-mode":e.unref(k).rulerActiveTab.value},null,8,["map","points","is-shape-closed","label-mode"])):e.createCommentVNode("",!0),Ee.value.length?(e.openBlock(),e.createElementBlock("div",{key:3,class:"absolute z-[1500] pointer-events-none",style:e.normalizeStyle(ze.value)},[e.createElementVNode("div",qp,[e.createElementVNode("dl",Kp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Ee.value,w=>(e.openBlock(),e.createElementBlock("div",{key:`${w.key}-${w.value}`,class:"flex justify-between gap-2"},[e.createElementVNode("dt",Wp,e.toDisplayString(w.key),1),e.createElementVNode("dd",Gp,e.toDisplayString(w.value),1)]))),128))])])],4)):e.createCommentVNode("",!0),e.createElementVNode("div",Yp,[e.createVNode(du,{compact:"",basemaps:e.unref(ue),"active-base-key":Ae.value,"tile-overlays":e.unref(Fe),"active-tile-overlay-keys":P.value,"vector-overlays":M.value,"preview-tile":X.value,disabled:s.value,onOnLayerChange:un,onOnOverlayToggle:xt,onOnVectorOverlayToggle:He},null,8,["basemaps","active-base-key","tile-overlays","active-tile-overlay-keys","vector-overlays","preview-tile","disabled"])])]),gl.value?(e.openBlock(),e.createElementBlock("div",Xp,[e.createElementVNode("div",Zp,[e.createElementVNode("div",Jp,[g[9]||(g[9]=e.createElementVNode("span",{class:"vs-map-status__label"},"Тип:",-1)),e.createElementVNode("div",Qp,[To.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(To.value,(w,$)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:w.id},[w.interactive?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:e.normalizeClass(["vs-map-status__chip",{"vs-map-status__chip--active":w.id===e.unref(Ye)}]),onClick:D=>wy(w.id),disabled:s.value},e.toDisplayString(w.label),11,em)):(e.openBlock(),e.createElementBlock("span",tm,e.toDisplayString(w.label),1)),$<To.value.length-1?(e.openBlock(),e.createElementBlock("span",nm,", ")):e.createCommentVNode("",!0)],64))),128)):(e.openBlock(),e.createElementBlock("span",om,"—"))])]),e.createElementVNode("div",rm,[e.createElementVNode("span",lm,[g[10]||(g[10]=e.createElementVNode("span",{class:"vs-map-status__label"},"Центр:",-1)),p.value?(e.openBlock(),e.createElementBlock("span",am,e.toDisplayString(p.value.center.lng.toFixed(5))+", "+e.toDisplayString(p.value.center.lat.toFixed(5)),1)):(e.openBlock(),e.createElementBlock("span",sm,"—"))]),p.value&&p.value.areaKm2!==null?(e.openBlock(),e.createElementBlock("span",im,[g[11]||(g[11]=e.createElementVNode("span",{class:"vs-map-status__label"},"Площа:",-1)),e.createElementVNode("span",cm,e.toDisplayString(p.value.areaKm2.toFixed(1))+" km²",1)])):e.createCommentVNode("",!0),e.createElementVNode("div",dm,[e.createElementVNode("button",{type:"button",class:"vs-status-btn vs-status-btn--zoom",title:"Масштаб до об'єкта",onClick:vy,disabled:s.value},[e.createVNode(e.unref(H.ZoomIn),{class:"vs-status-btn__icon"})],8,um),e.createElementVNode("button",{type:"button",class:"vs-status-btn vs-status-btn--delete",title:"Видалити об'єкт",onClick:_y,disabled:s.value},[e.createVNode(e.unref(H.Trash2),{class:"vs-status-btn__icon"})],8,pm)])])])])):e.createCommentVNode("",!0)],2)],8,["disabled"]))}}),[["__scopeId","data-v-4d649995"]]),bm=["data-focus"],km={class:"flex items-center"},xm={class:"overflow-hidden text-ellipsis whitespace-nowrap rounded-sm text-[#333] text-[85%] px-0.5 py-[3px] pl-1.5 box-border"},wm=["onClick","aria-label"],_m={key:0,class:"absolute text-gray-500 truncate pl-2"},vm={class:"flex-1 min-w-[2px]"},Cm=["placeholder"],Em={class:"flex items-center shrink-0"},Bm=["disabled"],gr=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;et(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"),m=e.computed(()=>n.placeholder||"Add tag…"),p=e.computed(()=>d.value?.length===0&&c.value===""),h=e.computed(()=>!n.disabled&&d.value?.length>0),y=e.computed(()=>n.disabled),f=async()=>{y.value||await e.nextTick(()=>s.value?.focus())},k=Y=>{const L=Y.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="")},b=()=>{const Y=c.value;Y.trim()!==""&&k(Y),c.value=""},C=Y=>{const L=d.value.slice();L.splice(Y,1),r("update:modelValue",L)},x=()=>{r("update:modelValue",[])},_=()=>{y.value||(i.value=!0)},N=()=>{i.value=!1,!y.value&&b()},U=Y=>{const{key:L}=Y;L==="Enter"?(Y.preventDefault(),b()):L==="Backspace"&&c.value===""&&d.value.length>0&&C(d.value.length-1)};return(Y,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":"",y.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),"data-focus":i.value?"true":"false",onClick:f},[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,V)=>(e.openBlock(),e.createElementBlock("div",{key:V,class:"flex min-w-0 bg-[#e6e6e6] rounded-sm m-0.5 box-border"},[e.createElementVNode("div",km,[e.createElementVNode("div",xm,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(S=>C(V),["stop"]),"aria-label":`Remove ${E}`},[e.createVNode(e.unref(H.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,wm)]))),128)),p.value?(e.openBlock(),e.createElementBlock("div",_m,e.toDisplayString(m.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",vm,[y.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:_,onBlur:N,onKeydown:U,placeholder:d.value&&d.value.length?"":void 0},null,40,Cm)),[[e.vModelText,c.value]])])],512),e.createElementVNode("div",Em,[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:y.value,onClick:e.withModifiers(x,["stop"])},[e.createVNode(e.unref(H.X),{class:"h-4 w-4"})],8,Bm)):e.createCommentVNode("",!0)])],10,bm)],2)],512))}}),Vm={class:"relative flex gap-1 bg-white w-full"},Sm=["disabled","placeholder"],yr=ve(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",Vm,[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,Sm),[[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"]]),$m={class:"relative flex gap-1 bg-white w-full"},Nm=["disabled","placeholder"],Am=["disabled"],Mm={key:0},Fm={key:1},br=ve(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)),m=encodeURIComponent(String(t.code));return`/api/code-gen/${d}/${m}`},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,m)=>(e.openBlock(),e.createElementBlock("div",$m,[e.withDirectives(e.createElementVNode("input",{disabled:d.disabled,placeholder:d.placeholder,"onUpdate:modelValue":m[0]||(m[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,Nm),[[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",Fm,"...")):(e.openBlock(),e.createElementBlock("span",Mm,"Gen"))],8,Am)]))}}),[["__scopeId","data-v-6ee5237d"]]),Dm={class:"w-full"},Tm={ref:"sortableContainer",class:"flex flex-col gap-1"},Lm=["onDragstart","onDrop"],Im={class:"cursor-move",type:"button"},Om={class:"w-1/3"},Rm={class:"w-2/3"},Pm=["onClick"],zm={key:0,class:"text-[14px] text-gray-700"},jm={class:"mt-2 w-full flex items-center"},Um=["disabled"],kr=ve(e.defineComponent({__name:"vs-input-key-value",props:{parent:{},ignore:{},addButtonText:{},modelValue:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=b=>`${b}-${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 b=l.parent&&r?.value?.[l.parent]||l.modelValue||{};c.value=Object.entries(b).filter(([C])=>!i.includes(C)).map(([C,x])=>({id:n("key-value-"),key:C,value:x}))})();function p(b){d.value=b}function h(b){if(d.value===null||d.value===b)return;const C=c.value.splice(d.value,1)[0];c.value.splice(b,0,C),d.value=null}const y=e.computed(()=>c.value.some(b=>b.key&&!b.value||!b.key&&b.value)),f=()=>{c.value.push({id:n("key-value-"),key:"",value:""})},k=b=>{c.value=c.value.filter(C=>C.id!==b)};return e.watch(c,b=>{const C={};b.forEach(_=>{_.key&&_.value!==void 0&&(C[_.key]=_.value)});const x={};i.length&&i.forEach(_=>{x[_]=l.parent?r?.value?.[l.parent]?.[_]:void 0}),r?.value&&l.parent&&(r.value[l.parent]={...x,...C}),a("update:modelValue",C)},{deep:!0}),(b,C)=>(e.openBlock(),e.createElementBlock("div",Dm,[e.createElementVNode("div",Tm,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,(x,_)=>(e.openBlock(),e.createElementBlock("div",{key:x.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":d.value===_}]),draggable:"true",onDragstart:N=>p(_),onDragover:C[0]||(C[0]=e.withModifiers(()=>{},["prevent"])),onDrop:N=>h(_)},[e.createElementVNode("button",Im,[e.createVNode(e.unref(H.GripVertical),{class:"h-4 w-4"})]),e.createElementVNode("div",Om,[e.createVNode(Ht,{modelValue:x.key,"onUpdate:modelValue":N=>x.key=N,placeholder:"Ключ"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",Rm,[e.createVNode(Ht,{modelValue:x.value,"onUpdate:modelValue":N=>x.value=N,placeholder:"Значення"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("button",{onClick:N=>k(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,Pm)],42,Lm))),128))],512),c.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",zm," Дані для відображення відсутні ")),e.createElementVNode("div",jm,[e.createElementVNode("button",{type:"button",onClick:f,disabled:y.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,Um)])]))}}),[["__scopeId","data-v-d8c3f9d6"]]),Hm={class:"w-full"},qm={ref:"sortableContainer",class:"flex flex-col gap-1"},Km=["onDragstart","onDrop"],Wm=["disabled"],Gm={class:"flex-1"},Ym=["onClick","disabled"],Xm={key:0,class:"text-[14px] text-gray-700"},Zm={class:"mt-2 w-full flex items-center"},Jm=["disabled"],xr=ve(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=b=>`${b}-${Math.random().toString(36).substring(2,15)}`,m=b=>{const C=b??n.value??[];r.value=C.map((x,_)=>({id:r.value[_]?.id??d("text-array"),value:x??""}))};m(),e.watch(()=>n.value,b=>{if(c){c=!1;return}m(b||[])},{deep:!0}),e.watch(r,b=>{c=!0,n.value=b.map(C=>C.value).filter(C=>C!=null&&C!=="")},{deep:!0});const p=e.computed(()=>a.value||r.value.some(b=>!b.value));function h(){p.value||(r.value=[...r.value,{id:d("text-array"),value:""}])}function y(b){a.value||(r.value=r.value.filter(C=>C.id!==b))}function f(b){a.value||(l.value=b)}function k(b){if(a.value||l.value===null||l.value===b)return;const C=[...r.value],[x]=C.splice(l.value,1);C.splice(b,0,x),r.value=C,l.value=null}return(b,C)=>(e.openBlock(),e.createElementBlock("div",Hm,[e.createElementVNode("div",qm,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(x,_)=>(e.openBlock(),e.createElementBlock("div",{key:x.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":l.value===_}]),draggable:"true",onDragstart:N=>f(_),onDragover:C[0]||(C[0]=e.withModifiers(()=>{},["prevent"])),onDrop:N=>k(_)},[e.createElementVNode("button",{class:"cursor-move",type:"button",disabled:a.value},[e.createVNode(e.unref(H.GripVertical),{class:"h-4 w-4"})],8,Wm),e.createElementVNode("div",Gm,[b.inputType==="text"?(e.openBlock(),e.createBlock(Ht,{key:0,modelValue:x.value,"onUpdate:modelValue":N=>x.value=N,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),b.inputType==="tel"?(e.openBlock(),e.createBlock(eo,{key:1,modelValue:x.value,"onUpdate:modelValue":N=>x.value=N,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),b.inputType==="email"?(e.openBlock(),e.createBlock(Qn,{key:2,modelValue:x.value,"onUpdate:modelValue":N=>x.value=N,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),b.inputType==="mask"?(e.openBlock(),e.createBlock(hn,{key:3,modelValue:x.value,"onUpdate:modelValue":N=>x.value=N,mask:b.mask,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","mask","disabled","placeholder"])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:N=>y(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,Ym)],42,Km))),128))],512),r.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Xm," Дані для відображення відсутні ")),e.createElementVNode("div",Zm,[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,Jm)])]))}}),[["__scopeId","data-v-2c229b1f"]]),Qm={class:"flex items-center gap-2 w-full"},ef=["disabled"],tf=["disabled"],wr=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}=et(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",Qm,[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,ef),[[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,tf),[[e.vModelText,a.value]])]))}}),nf={class:"flex items-center gap-2 w-full"},of=["min","max","step","disabled"],rf=["value","min","max","step","disabled"],_r=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}=et(n.style),l=t,a=m=>{const p=Number(m),h=Number(n.min),y=Number(n.max);return Number.isNaN(p)?h:Math.min(y,Math.max(h,p))},s=e.computed({get:()=>a(n.modelValue??n.min),set:m=>l("update:modelValue",a(m))}),i=m=>{const p=m.target,h=a(p.value);p.value=String(h),l("update:modelValue",h)},c=m=>{Number(n.min)>=0&&m.key==="-"&&m.preventDefault()},d=e.computed(()=>!!n.disabled);return(m,p)=>(e.openBlock(),e.createElementBlock("div",nf,[e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":p[0]||(p[0]=h=>s.value=h),min:m.min,max:m.max,step:m.step,disabled:d.value,ref:"range",class:e.normalizeClass(["w-full cursor-pointer accent-blue-500",[m.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")])},null,10,of),[[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:m.min,max:m.max,step:m.step,onInput:i,onKeydown:c,disabled:d.value},null,40,rf)]))}}),lf=["placeholder","disabled","name"],af=["type","value","onInput","placeholder","disabled"],sf=["onClick"],vr=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}=et(t.style),a=e.useModel(o,"modelValue"),s=e.computed(()=>!!t.disabled),i=e.computed(()=>t.placeholder??"");e.watchEffect(()=>{const k=a.value?.length??0;k<n.value&&(a.value=[...a.value??[],...Array(n.value-k)])});const c=e.ref({}),d=e.ref({});function m(k,b){k&&(c.value[b]=k)}async function p(k,b){if(!k||t.inputType!=="mask")return;const{default:C}=await Promise.resolve().then(()=>Pn);d.value[b]&&d.value[b].destroy(),d.value[b]=C(k,{mask:t.mask||"",definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},lazy:!1}),d.value[b].on("accept",()=>{const x=[...a.value||[]];x[b]=t.unmask?d.value[b].unmaskedValue:d.value[b].value,a.value=x}),d.value[b].on("complete",()=>{const x=[...a.value||[]];x[b]=t.unmask?d.value[b].unmaskedValue:d.value[b].value,a.value=x}),a.value?.[b]&&(d.value[b].value=a.value[b])}function h(k,b){if(s.value)return;const C=k.target.value??null,x=[...a.value];x[b]=t.inputType==="text"?C:Number(C),a.value=x}function y(){n.value+=1;const k=t.inputType==="text"||t.inputType==="mask"?null:0;a.value=[...a.value,k],t.inputType==="mask"&&setTimeout(()=>{const b=n.value-1;c.value[b]&&p(c.value[b],b)},0)}function f(k){if(n.value>1){d.value[k]&&(d.value[k].destroy(),delete d.value[k]),n.value-=1,a.value=a.value.filter((C,x)=>x!==k);const b={};Object.keys(d.value).forEach(C=>{const x=parseInt(C,10);x>k?b[x-1]=d.value[x]:x<k&&(b[x]=d.value[x])}),d.value=b}}return e.onMounted(()=>{if(t.inputType==="mask")for(let k=0;k<n.value;k+=1)c.value[k]&&p(c.value[k],k)}),e.onBeforeUnmount(()=>{Object.values(d.value).forEach(k=>{k&&k.destroy()})}),e.watch(()=>t.mask,k=>{t.inputType==="mask"&&Object.values(d.value).forEach(b=>{b&&b.updateOptions({mask:k,definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/}})})}),e.watch(a,k=>{t.inputType==="mask"&&k&&k.forEach((b,C)=>{d.value[C]&&d.value[C].value!==b&&(d.value[C].value=b||"")})},{deep:!0}),(k,b)=>(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"},[k.inputType==="mask"?(e.openBlock(),e.createElementBlock("input",{key:0,type:"text",ref_for:!0,ref:x=>m(x,C-1),placeholder:k.placeholder,disabled:k.disabled,name:`${k.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":k.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,lf)):(e.openBlock(),e.createElementBlock("input",{key:1,type:k.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":k.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,af)),!k.disabled&&C===n.value&&k.isAdded?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:e.withModifiers(y,["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),!k.disabled&&n.value>1&&k.isAdded?(e.openBlock(),e.createElementBlock("button",{key:3,type:"button",onClick:e.withModifiers(x=>f(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,sf)):e.createCommentVNode("",!0)]))),128))],2))}}),cf={class:"flex gap-1 w-full"},df=["aria-expanded","data-focus"],uf=["placeholder","disabled","readonly"],pf={class:"max-h-full"},mf=["onClick","disabled"],ff={key:0,class:"px-3 py-2 text-sm text-stone-500"},hf=["disabled"],gf={class:"flex flex-col gap-1"},yf=["onDragstart","onDrop"],bf=["disabled"],kf=["title"],xf=["disabled","onClick","aria-label"],wf={key:0,class:"text-xs text-stone-500"},Fn=ve(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}),m=e.ref(""),p=e.ref(!1),h=e.ref(null),y=e.ref(null),f=e.ref(null),k=e.ref(null),b=e.ref(null),C=e.ref({});let x=!1,_=!1;const N=e.inject("values"),U=e.computed(()=>!!n.disabled),Y=e.computed(()=>n.placeholder??"Оберіть значення"),L=e.computed(()=>n.search!==!1),E=e.computed(()=>{const v=n.parent??n.parentValue;return v?String(v):""}),V=e.computed(()=>E.value?N?.value?.[E.value]??null:null),S=v=>v==null?"__null__":String(v),O=v=>{if(!v)return"";const M=v.label??v.text??v.name??v.ua??v.en;return M?String(M):v.id!==void 0&&v.id!==null?String(v.id):""},B=v=>{const M=S(v);return c.value[M]||(c.value[M]=`array-select-${M}-${Math.random().toString(36).slice(2,8)}`),c.value[M]},T=e.computed(()=>new Set(a.value.map(v=>S(v.id)))),A=e.computed(()=>{const v=T.value;let M=[...s.value];if(!n.data&&m.value.trim()){const R=m.value.toLowerCase();M=M.filter(ie=>O(ie).toLowerCase().includes(R))}return M.filter(R=>!v.has(S(R.id)))}),W=()=>{if(!n.data)return"";const v=n.prefix??"api",M=n.api??`/${v}/suggest/${n.data}`;return`${n.host??""}${M}`},X=()=>{a.value.length&&(x=!0,a.value=a.value.map(v=>({...v,text:i.value[S(v.id)]??v.text})))},ee=v=>{const M=S(v.id),R=O(v);R&&(i.value[M]=R)},q=v=>{s.value=v?[...v]:[],v?.forEach(ee),X()},Q=v=>{if(!v.length)return;const M=new Map(s.value.map(R=>[S(R.id),R]));v.forEach(R=>{const ie=S(R.id);M.set(ie,R),ee(R)}),s.value=Array.from(M.values()),X()},F=async(v="")=>{if(!n.data)return[];const M=W();if(!M)return[];const R=new URLSearchParams;R.set("json","1"),v&&R.set("key",v),n.start===1&&R.set("start","1"),V.value!==null&&V.value!==void 0&&V.value!==""&&R.set("parent",String(V.value));try{return(await(await fetch(`${M}?${R.toString()}`)).json())?.data??[]}catch{return[]}},j=async v=>{if(!n.data||!v.length)return[];const M=W();if(!M)return[];const R=Array.from(new Set(v.map(we=>S(we)))),ie=new URLSearchParams;ie.set("json","1"),ie.set("val",R.join(",")),n.start===1&&ie.set("start","1"),V.value!==null&&V.value!==void 0&&V.value!==""&&ie.set("parent",String(V.value));try{const De=(await(await fetch(`${M}?${ie.toString()}`)).json())?.data??[];return Q(De),De}catch{return[]}},te=async v=>{if(v==null||v==="")return null;const M=S(v),R=s.value.find(we=>S(we.id)===M);if(R)return R;const[ie]=await j([v]);return ie??null},Z=async(v="",{force:M=!1}={})=>{if(!n.data)return;const R=V.value??null;if(!M&&d.value.keyword===v&&d.value.parent===R&&s.value.length>0)return;d.value={keyword:v,parent:R};const we=await F(v);q(we)},ke=((v,M=200)=>{let R;return(...ie)=>{R&&clearTimeout(R),R=setTimeout(()=>v(...ie),M)}})(async v=>{n.data&&await Z(v,{force:!0})},250),oe=e.ref(null),ye=()=>{if(!f.value)return;const v=f.value.getBoundingClientRect(),M=window.innerHeight??document.documentElement.clientHeight,R=window.innerWidth??document.documentElement.clientWidth,ie=8,we=8,Pe=n.maxHeight??280,De=M-v.bottom-we-ie,Ge=v.top-we-ie,K=De>=Ge,de=Math.max(R-ie*2,0);let{width:Ie}=v;de>0&&Ie>de&&(Ie=de);let{left:Qe}=v;Qe+Ie+ie>R&&(Qe=R-Ie-ie),Qe=Math.max(Qe,ie);const dt=Math.min(Pe,Math.max(K?De:Ge,50));C.value={position:"fixed",left:`${Qe}px`,width:`${Ie}px`,maxHeight:`${dt}px`,transform:K?"none":"translateY(-100%)",top:K?`${v.bottom+we}px`:`${v.top-we}px`}},Ve=async(v="click")=>{U.value||p.value||(oe.value=v,await Z(m.value.trim()),p.value=!0,await e.nextTick(),ye(),b.value?.focus())},xe=()=>{p.value=!1,oe.value=null,e.nextTick(()=>{b.value?.blur()})},Le=async v=>{if(v.stopPropagation(),!U.value){if(p.value){if(oe.value==="focus"){oe.value=null;return}xe();return}await Ve("click")}},Ne=v=>{v.key==="Escape"&&xe()},Oe=v=>{if(!p.value)return;const M=v.target;k.value?.contains(M)||xe()},$e=v=>{const M=v.target;y.value?.contains(M)||k.value?.contains(M)||xe()},ne=v=>{if(v.key==="Escape"){v.preventDefault(),xe();return}if(v.key==="Enter"){v.preventDefault();const M=A.value[0];M&&le(M)}},le=v=>{if(!v)return;const M=S(v.id);if(T.value.has(M))return;ee(v);const R={id:v.id,text:O(v)||String(v.id??""),key:B(v.id)};a.value=[...a.value,R],be(v),m.value="",e.nextTick(()=>{b.value?.focus()})},be=v=>{const M=a.value.map(R=>R.id);r("value-selected",{name:n.name,value:M,option:v})},Ee=v=>{if(U.value)return;const M=a.value.filter(R=>S(R.id)!==S(v));a.value=M},{isOpenAdd:ze,addData:We,addSchema:I,addForm:J,addTitle:ae,addOption:ue,onAddValue:he}=tr({props:n,fetchOptionByValue:te,optionsList:s,selectedOption:e.ref(null),modelValue:l,onCreated:async(v,M)=>{const R=v??await te(M),ie=R?.id??M;T.value.has(S(ie))||(R&&ee(R),a.value=[...a.value,{id:ie,text:R?O(R):String(ie),key:B(ie)}],be(R??null))}}),Ae=v=>{U.value||(h.value=v)},Te=v=>{if(U.value||h.value===null||h.value===v)return;const M=[...a.value],[R]=M.splice(h.value,1);M.splice(v,0,R),h.value=null,a.value=M},Fe=async()=>{const M=(Array.isArray(l.value)?[...l.value]:[]).filter(ie=>ie!=null);if(n.data&&M.length){const ie=M.filter(we=>!i.value[S(we)]);ie.length&&await j(ie)}const R=M.map(ie=>({id:ie,text:i.value[S(ie)]??String(ie),key:B(ie)}));x=!0,a.value=R};e.watch(a,v=>{if(x){x=!1;return}const M=v.map(R=>R.id);_=!0,l.value=M,r("change",M)},{deep:!0}),e.watch(l,()=>{if(_){_=!1;return}Fe()},{deep:!0}),e.watch(m,v=>{!n.data||!p.value||ke(v.trim())}),e.watch(U,v=>{v&&xe()}),e.watch(()=>n.options,async v=>{n.data||(q(v??[]),await Fe())},{immediate:!0,deep:!0}),e.watch(()=>n.data,async v=>{v&&(await Z(m.value.trim()),await Fe())},{immediate:!0});const P=e.ref(!1);return e.watch(V,async()=>{if(n.data){if(!P.value){P.value=!0;return}a.value=[],await Z(m.value.trim()),await Fe()}}),e.onMounted(async()=>{document.addEventListener("click",$e,!0),window.addEventListener("keydown",Ne),window.addEventListener("scroll",Oe,!0),await Fe()}),e.onUnmounted(()=>{document.removeEventListener("click",$e,!0),window.removeEventListener("keydown",Ne),window.removeEventListener("scroll",Oe,!0)}),(v,M)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(ge.VsModal),{visible:e.unref(ze),"onUpdate:visible":M[1]||(M[1]=R=>e.isRef(ze)?ze.value=R:null),class:"z-[1000]",title:e.unref(ae),buttonText:"Додати",onDone:e.unref(ue)},{default:e.withCtx(()=>[e.createVNode(ct,{schema:e.unref(I),modelValue:e.unref(We),"onUpdate:modelValue":M[0]||(M[0]=R=>e.isRef(We)?We.value=R: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:y},[e.createElementVNode("div",cf,[e.createElementVNode("div",{class:"relative flex-1",onClick:M[4]||(M[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{ref_key:"triggerRef",ref:f,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)]":"",U.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:Le},[e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:b,"onUpdate:modelValue":M[2]||(M[2]=R=>m.value=R),placeholder:Y.value,disabled:U.value,readonly:!L.value,onFocus:M[3]||(M[3]=()=>Ve("focus")),onKeydown:ne,class:"flex-1 bg-transparent border-0 outline-none px-0 py-1 text-sm text-stone-900 placeholder:text-stone-400"},null,40,uf),[[e.vModelText,m.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,df),(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:k,class:"fixed z-[3000] rounded-md border border-stone-200 bg-white shadow-lg overflow-auto",style:e.normalizeStyle(C.value)},[e.createElementVNode("div",pf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(A.value,R=>(e.openBlock(),e.createElementBlock("button",{key:S(R.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(ie=>le(R),["stop"]),disabled:U.value},e.toDisplayString(O(R)),9,mf))),128)),A.value.length===0?(e.openBlock(),e.createElementBlock("p",ff," Немає варіантів ")):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))]),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:M[5]||(M[5]=(...R)=>e.unref(he)&&e.unref(he)(...R)),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:U.value,type:"button"},[e.createVNode(e.unref(H.Plus),{class:"h-4 w-4"}),M[8]||(M[8]=e.createElementVNode("span",null,"Додати",-1))],8,hf)):e.createCommentVNode("",!0)]),e.createElementVNode("div",gf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(R,ie)=>(e.openBlock(),e.createElementBlock("div",{key:R.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===ie}]),draggable:"true",onDragstart:we=>Ae(ie),onDragover:M[6]||(M[6]=e.withModifiers(()=>{},["prevent"])),onDrop:we=>Te(ie),onDragend:M[7]||(M[7]=we=>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:U.value,"aria-label":"Перетягнути"},[e.createVNode(e.unref(H.GripVertical),{class:"h-4 w-4"})],8,bf),e.createElementVNode("div",{class:"flex-1 text-sm text-stone-900",title:R.text},e.toDisplayString(R.text),9,kf),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:U.value,onClick:e.withModifiers(we=>Ee(R.id),["stop"]),"aria-label":`Видалити ${R.text}`},[e.createVNode(e.unref(H.X),{class:"h-4 w-4"})],8,xf)],42,yf))),128)),a.value.length===0?(e.openBlock(),e.createElementBlock("p",wf,"Немає вибраних значень")):e.createCommentVNode("",!0)])],512)],64))}}),[["__scopeId","data-v-da4b4da7"]]),_f={class:"flex items-center gap-2 w-full"},vf={class:"relative flex-1"},Cf=["placeholder","disabled","onKeydown"],Ef=["disabled"],Bf={key:0,class:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/50"},Vf={class:"bg-white text-gray-900 rounded-lg shadow-lg w-[480px] max-h-[80vh] overflow-y-auto"},Sf={class:"p-3 border-b font-semibold text-gray-900 flex justify-between items-center"},$f=["onClick"],Nf={key:0,class:"p-4 text-sm text-gray-500"},Cr=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}=et(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([]),m=e.ref(!1),p=e.ref(null);e.watch(m,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??""),y=e.computed(()=>!!r.disabled),f=L=>{if(!L)return null;if(Array.isArray(L))return L;if(typeof L=="string"){const E=L.split(",").map(V=>V.trim()).filter(Boolean);return E.length!==4?null:E.map(Number)}return null},k=e.computed(()=>{const L=f(r.bbox);if(!L||L.length!==4)return null;const E=L.map(Number);return E.some(V=>Number.isNaN(V))?null:E}),b=e.computed(()=>{const L=k.value;if(!L)return"";const[E,V,S,O]=L;return`${E},${Math.max(V,O)},${S},${Math.min(V,O)}`});e.computed(()=>b.value?"1":"0");const C=e.inject("values");function x(){!y.value&&i.value.trim()&&_()}async function _(){const L=(i.value||"").trim();if(!L)return;let E=L;if(r.includes?.length&&C?.value){const S=r.includes.map(O=>C.value?.[O]).filter(Boolean);S.length&&(E=`${S.join(", ")}, ${L}`)}const V=Y(E);if(V){c.value=!0;try{const O=await(await fetch(V)).json();d.value=Array.isArray(O)?O:[],m.value=!0}catch(S){console.error("Address search error:",S)}finally{c.value=!1}}}function N(){m.value=!m.value}function U(L){if(!L)return;m.value=!1;const E=parseFloat(L.lat),S={type:"Point",coordinates:[parseFloat(L.lon),E]};r.geom&&C?.value&&(C.value[r.geom]=S),l("update:geom",S)}function Y(L){if(!r.api)return"";const E={value:encodeURIComponent(L),bbox:k.value?k.value.join(","):""};return r.api.replace(n,(V,S)=>E[S.trim()]??"")}return(L,E)=>(e.openBlock(),e.createElementBlock("div",_f,[e.createElementVNode("div",vf,[e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":E[0]||(E[0]=V=>i.value=V),placeholder:h.value,disabled:y.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,Cf),[[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:N,title:"Show search results"},[e.createVNode(e.unref(H.Info),{class:"h-4 w-4"})])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:_,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,Ef),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[m.value?(e.openBlock(),e.createElementBlock("div",Bf,[e.createElementVNode("div",Vf,[e.createElementVNode("div",Sf,[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]=V=>m.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,(V,S)=>(e.openBlock(),e.createElementBlock("li",{key:S,onClick:O=>U(V),class:"px-3 py-2 cursor-pointer hover:bg-gray-100 border-b text-sm"},e.toDisplayString(V.display_name),9,$f))),128))]),d.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Nf," Не знайдено результатів "))])])):e.createCommentVNode("",!0)]))]))}}),Af={class:"vs-datalist space-y-3"},Mf={class:"space-y-3"},Ff=["onClick","disabled"],Df={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},Tf=["disabled"],Lf=ve(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(b=>({...b,disabled:t.disabled||b.disabled}))??[]),s=e.computed(()=>a.value.map(b=>k(b))),i=e.computed(()=>a.value.reduce((C,x)=>{const _=Number(x?.col??12);return C+(Number.isFinite(_)&&_>0?_:12)},0)>12),c=e.computed(()=>t.disabled?!1:t.maxItems?r.value.length<t.maxItems:!0),d=e.computed(()=>t.disabled||r.value.length<=(t.minItems||0));e.watch(()=>r.value.length,()=>{m(),p()},{immediate:!0}),e.watch(()=>t.schema,p,{immediate:!0,deep:!0});function m(){const b=r.value.length;l.value.length<b?l.value=[...l.value,...Array.from({length:b-l.value.length},()=>uo())]:l.value.length>b&&l.value.splice(b)}function p(){if(!t.minItems||r.value.length>=t.minItems)return;const b=t.minItems-r.value.length,C=Array.from({length:b},h);n.value=[...r.value,...C]}function h(){const b={};return a.value.forEach(C=>{b[C.name]=C?.default??null}),b}function y(){c.value&&(n.value=[...r.value,h()],m())}function f(b){d.value||(n.value=r.value.filter((C,x)=>x!==b),m(),p())}function k(b){return{...b}}return(b,C)=>(e.openBlock(),e.createElementBlock("div",Af,[e.createElementVNode("div",Mf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(x,_)=>(e.openBlock(),e.createElementBlock("div",{key:l.value[_],class:e.normalizeClass(["flex items-center gap-3 rounded-lg transition-colors",{"border border-gray-300 p-2":i.value}])},[e.createVNode(ct,{schema:s.value,layout:"inline",navigation:!1,values:r.value[_],"onUpdate:values":N=>r.value[_]=N,"form-id":l.value[_]},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:N=>f(_),disabled:d.value},[e.createVNode(e.unref(H.Trash2),{class:"h-4 w-4"})],8,Ff)],2))),128)),r.value.length===0?(e.openBlock(),e.createElementBlock("div",Df,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:y,disabled:!c.value},[e.createVNode(e.unref(H.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,Tf)]))}}),[["__scopeId","data-v-d0065868"]]),If={class:"vs-dataform space-y-4"},Of=["draggable","onDragstart","onDragover","onDragenter","onDrop"],Rf={class:"flex items-center gap-2"},Pf=["onClick"],zf={class:"text-sm font-medium text-gray-700"},jf={class:"flex items-center gap-2"},Uf=["title","onClick","disabled"],Hf=["title","onClick","disabled"],qf={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},Kf=["disabled"],Wf=ve(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"),m=e.computed(()=>t.emptyLabel??"Ще немає груп"),p=e.computed(()=>t.schema?.map(Z=>({...Z,disabled:t.disabled||Z.disabled}))??[]),h=e.computed(()=>p.value.map(Z=>V(Z))),y=e.computed(()=>t.view==="accordion"),f=e.computed(()=>!!(t.collapsible||y.value)),k=e.computed(()=>t.draggable!==!1),b=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(),_(),N()},{immediate:!0}),e.watch(()=>t.schema,N,{immediate:!0,deep:!0}),e.watch(()=>t.view,()=>{_()},{immediate:!0});function x(){const Z=n.value.length;r.value.length<Z?r.value=[...r.value,...Array.from({length:Z-r.value.length},()=>uo())]:r.value.length>Z&&r.value.splice(Z)}function _(){const Z=n.value.length;y.value?Z===0?a.value=-1:a.value>=Z?a.value=Z-1:a.value<0&&(a.value=0):l.value.length<Z?l.value=[...l.value,...Array.from({length:Z-l.value.length},()=>!1)]:l.value.length>Z&&l.value.splice(Z)}function N(){if(!t.minGroups||n.value.length>=t.minGroups)return;const Z=t.minGroups-n.value.length,se=Array.from({length:Z},U);n.value=[...n.value,...se],_()}function U(){const Z={};return p.value.forEach(se=>{Z[se.name]=se?.default??null}),Z}function Y(){b.value&&(n.value=[...n.value,U()],x(),_())}function L(Z){C.value||(n.value=n.value.filter((se,ke)=>ke!==Z),x(),y.value?a.value>=n.value.length&&(a.value=n.value.length-1):l.value.splice(Z,1),N())}function E(Z){if(t.disabled)return;const se=JSON.parse(JSON.stringify(n.value[Z]??{}));n.value=[...n.value.slice(0,Z+1),se,...n.value.slice(Z+1)],x(),y.value?a.value>Z&&(a.value+=1):l.value.splice(Z+1,0,l.value[Z]??!1)}function V(Z){return{...Z}}function S(Z){return y.value?a.value===-1&&Z===0?!1:a.value!==Z:!!l.value[Z]}function O(Z){if(f.value){if(y.value){a.value=Z;return}l.value[Z]=!l.value[Z]}}function B(Z,se){if(!k.value||t.disabled){se.preventDefault();return}s.value=Z,i.value=Z,c.value={groups:JSON.parse(JSON.stringify(n.value)),keys:[...r.value],states:[...l.value]},se.dataTransfer?.setData("text/plain",String(Z)),se.dataTransfer?.setDragImage?.(se.currentTarget,0,0)}function T(Z,se){!k.value||t.disabled||s.value!==null&&Q(Z,se)}function A(Z,se){Q(Z,se)}function W(Z){!k.value||t.disabled||te()}function X(){c.value&&q(),s.value=null,i.value=null,c.value=null}function ee(Z,se){const ke=[...n.value],[oe]=ke.splice(Z,1);ke.splice(se,0,oe),n.value=ke;const ye=[...r.value],[Ve]=ye.splice(Z,1);if(ye.splice(se,0,Ve),r.value=ye,y.value)a.value===Z&&(a.value=se);else{const xe=[...l.value],[Le]=xe.splice(Z,1);xe.splice(se,0,Le),l.value=xe}}function q(){c.value&&(n.value=c.value.groups,r.value=c.value.keys,l.value=c.value.states,c.value=null,i.value=null)}function Q(Z,se){if(s.value===null)return;const ke=F(Z,se);i.value=ke,j(ke)}function F(Z,se){if(!se?.currentTarget)return Z;const ke=se.currentTarget.getBoundingClientRect(),ye=se.clientY-ke.top>ke.height/2?Z+1:Z;return Math.max(0,Math.min(ye,n.value.length))}function j(Z){const se=s.value;if(se===null)return;let ke=Z;if(ke>n.value.length&&(ke=n.value.length),ke===se||ke===se+1)return;const oe=ke>se?ke-1:ke;ee(se,oe),s.value=oe,i.value=ke>se?oe+1:oe}function te(){c.value=null,s.value=null,i.value=null}return(Z,se)=>(e.openBlock(),e.createElementBlock("div",If,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(ke,oe)=>(e.openBlock(),e.createElementBlock("div",{key:r.value[oe],class:e.normalizeClass(["relative border border-gray-200 rounded-lg bg-white transition vs-dataform__group",[t.view==="accordion"?"overflow-hidden":S(oe)?"pt-6 px-6":"p-6"]]),draggable:k.value&&!t.disabled,onDragstart:ye=>B(oe,ye),onDragend:X,onDragover:e.withModifiers(ye=>T(oe,ye),["prevent"]),onDragenter:e.withModifiers(ye=>A(oe,ye),["prevent"]),onDrop:e.withModifiers(ye=>W(),["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"&&!S(oe)?"rounded-t-lg":"rounded-lg"]])},[e.createElementVNode("div",Rf,[k.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),f.value?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"rounded-full p-1 text-gray-500 transition hover:bg-gray-100",onClick:ye=>O(oe)},[e.createVNode(e.unref(H.ChevronDown),{class:e.normalizeClass(["h-4 w-4 transition",S(oe)?"-rotate-90":"rotate-0"])},null,8,["class"])],8,Pf)):e.createCommentVNode("",!0),e.createElementVNode("div",zf,e.toDisplayString(`${d.value} (${oe+1})`),1)]),e.createElementVNode("div",jf,[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:ye=>E(oe),disabled:t.disabled,draggable:"false"},[e.createVNode(e.unref(H.Copy),{class:"h-4 w-4"})],8,Uf),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:ye=>L(oe),disabled:C.value,draggable:"false"},[e.createVNode(e.unref(H.Trash2),{class:"h-4 w-4"})],8,Hf)])],2),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(t.view==="accordion"?"p-6":"pt-6")},[e.createVNode(ct,{class:"vs-dataform__form",schema:h.value,layout:"inline",navigation:!1,values:n.value[oe],"onUpdate:values":ye=>n.value[oe]=ye,"form-id":r.value[oe],disabled:t.disabled},null,8,["schema","values","onUpdate:values","form-id","disabled"])],2),[[e.vShow,!S(oe)]])],42,Of))),128)),n.value.length===0?(e.openBlock(),e.createElementBlock("div",qf,e.toDisplayString(m.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:Y,disabled:!b.value},[e.createVNode(e.unref(H.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,Kf)]))}}),[["__scopeId","data-v-cfbcfed8"]]),Dn="__vs_form_monaco_loader__",zt="__vs_form_monaco_script_loader__",Tn="__vs_form_monaco_editor_loader__",po=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 f=window;if(f.monaco?.editor?.create)return i=f.monaco,Promise.resolve(i);if(f[Dn])return f[Dn];const b=(async()=>{const C=N=>{if(Array.from(document.styleSheets||[]).some(L=>L?.href?.includes(N)))return;const Y=document.createElement("link");Y.rel="stylesheet",Y.href=N,document.head.appendChild(Y)},x=N=>{if(f[zt]?.[N])return f[zt][N];f[zt]||={};const U=Array.from(document.scripts).find(Y=>Y.src===N);return U?(f[zt][N]=new Promise((Y,L)=>{const E=U.readyState;if(U.dataset.loaded==="true"||E==="loaded"||E==="complete"){Y();return}U.addEventListener("load",()=>{U.dataset.loaded="true",Y()},{once:!0}),U.addEventListener("error",V=>L(V),{once:!0})}),f[zt][N]):(f[zt][N]=new Promise((Y,L)=>{const E=document.createElement("script");E.src=N,E.async=!0,E.onload=()=>{E.dataset.loaded="true",Y()},E.onerror=V=>L(V),document.body.appendChild(E)}),f[zt][N])},_="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs";return C(`${_}/editor/editor.main.min.css`),await x(`${_}/loader.min.js`),f[Tn]||(f[Tn]=new Promise((N,U)=>{window.require.config({paths:{vs:_}}),window.require(["vs/editor/editor.main"],()=>{i=window.monaco,f.monaco=i,N(i)},Y=>U(Y))}).catch(N=>{throw delete f[Tn],N})),f[Tn]})().catch(C=>{throw delete f[Dn],C});return f[Dn]=b,b},m=()=>{!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,y=()=>i;return e.watch(()=>r.value,f=>{if(!s)return;const k=s.getValue();f!==k&&(c=!0,s.setValue(f||""),c=!1)}),e.watch(()=>n.syntax,f=>{!s||!i||i.editor.setModelLanguage(s.getModel(),f||"xml")}),e.watch(()=>n.theme,f=>{i&&i.editor.setTheme(f||"vs-light")}),e.watch(()=>n.disabled,f=>{s&&s.updateOptions({readOnly:!!f})}),e.watch(()=>n.minimap,f=>{s&&s.updateOptions({minimap:{enabled:!!f}})}),e.onMounted(async()=>{try{const f=await d();if(!f||!f.editor)return;i=f,m()}catch(f){console.error("Failed to load Monaco editor",f)}}),e.onBeforeUnmount(()=>{s&&(s.dispose(),s=null)}),t({focus:p,getEditor:h,getMonaco:y}),(f,k)=>(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))}}),Er={VsInputText:Ht,VsInputRadio:to,VsInputInlineSelect:Bn,"vs-input-text":Ht,"vs-input-password":zl,"vs-input-textarea":or,"vs-input-richtext":rr,"vs-input-mask":hn,"vs-input-number":Io,"vs-input-radio":to,"vs-input-select":co,"vs-input-inline-select":Bn,"inline-select":Bn,"vs-input-switcher":Zn,"vs-input-static":Jn,"vs-input-container":er,"vs-input-date":Go,"vs-input-checkbox":Po,"vs-input-file":Zo,"vs-input-file2":io,file2:io,File2:io,"vs-input-html":Jn,"vs-input-email":Qn,"vs-input-tel":eo,"vs-input-datatable":lr,"vs-input-map":hr,"vs-input-file-list":Jo,"vs-input-tags":gr,"vs-input-slug":yr,"vs-input-codegen":br,"vs-input-key-value":kr,"vs-input-text[]":xr,"vs-input-range":_r,"vs-input-color":wr,"vs-input-native-select":co,VsInputArraySelect:Fn,"vs-input-array":vr,"vs-input-array-select":Fn,"array-select":Fn,"vs-input-address":Cr,"vs-input-datalist":Lf,"vs-input-dataform":Wf,"vs-input-monaco":po},Gf=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){ge.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))}}),Yf={class:"flex flex-col gap-1 w-full"},Xf={class:"w-full"},Zf=["disabled"],Jf=["innerHTML"],Qf=2e3,eh=10,Br=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(()=>Rl[`${n.layout}`]),s=["label","placeholder","info","description","text","html"],i=e.ref(S()),c=e.computed(()=>L(n.item,i.value)),d=e.computed(()=>{const B={...c.value??{}},T=n.item?.name;return T&&p?.value?.[T]&&Object.assign(B,p.value[T]),B.__locale=i.value,B}),m=e.computed(()=>Er?.[`vs-input-${n.item.type}`]),p=e.inject("field-props"),h=e.computed(()=>{const B=e.unref(m);if(!B)return new Set;const T=B.props??B.__vccOpts?.props;if(!T)return new Set;const A=Array.isArray(T)?T:Object.keys(T);return new Set(A)}),f=[...["min","max","step"],"api","set","mask"],k=e.computed(()=>{const B={...c.value??{}},T=n.item?.name;T&&p?.value?.[T]&&Object.assign(B,p.value[T]);const A=h.value;let W;return A.size?W=Object.fromEntries(Object.entries(B).filter(([X])=>A.has(X))):W=B,f.forEach(X=>{const ee=B[X];ee!=null&&(W[X]=ee)}),W}),b=B=>{const T=typeof B=="object"&&B!==null?B:{value:B};l("value-selected",{...T,name:T.name??n.item?.name})},C=/{{\s*([^}]+?)\s*}}/g,x=e.inject("values"),_=e.ref(!1),N=e.computed(()=>{const B=n.item?.api,T=n.item?.type?.toLowerCase();return typeof B=="string"&&B.trim().length>0&&(T==="text"||T==="mask")});function U(B,T){if(!(B==null||!T))return T.split(".").reduce((A,W)=>A?.[W.trim()],B)}async function Y(){const B=String(r.value??"").trim();if(!B)return;const T=(n.item?.api??"").trim();if(!T)return;const A=T.replace(C,(W,X)=>X.trim()==="value"?encodeURIComponent(B):"");_.value=!0;try{let W=await fetch(A),X=0;for(;W.status===202&&X<eh;)X+=1,await new Promise(j=>{setTimeout(j,Qf)}),W=await fetch(A);if(W.status===202){ge.notify({type:"warning",title:"Validation",message:"Сервер ще обробляє запит. Спробуйте пізніше."});return}if(!W.ok){ge.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const ee=await W.json(),q=ee?.result!==void 0?ee.result:ee,Q=n.item?.set;if(!Q||!x?.value)return;const F=n.item?.name;Object.entries(Q).forEach(([j,te])=>{if(!j)return;let Z=te;F&&Z.startsWith(`${F}.`)&&(Z=Z.slice(F.length+1));const se=U(q,Z);x.value[j]=se??null})}catch(W){console.error("API lookup error:",W),ge.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."})}finally{_.value=!1}}e.onMounted(()=>{i.value=S(),window.addEventListener("storage",O)}),e.onUnmounted(()=>{window.removeEventListener("storage",O)});function L(B,T){if(!B)return{};const A={...B};return s.forEach(W=>{const X=V(B,W,T);X!=null&&(A[W]=X)}),Array.isArray(B.options)&&(A.options=B.options.map(W=>E(W,T))),A}function E(B,T){if(!B)return B;const A={...B},W=V(B,"label",T),X=V(B,"text",T);return W!=null&&(A.label=W),X!=null?A.text=X:W!=null&&(A.text=W),A}function V(B,T,A){const W=`${T}:${A}`;if(B?.[W]!=null)return B[W];if(T==="label"&&B?.[A]!=null)return B[A];if(B?.[T]!=null)return B[T];if(T==="label"){if(B?.ua!=null)return B.ua;if(B?.en!=null)return B.en}if(T==="text"||T==="html"){if(B?.ua!=null)return B.ua;if(B?.en!=null)return B.en}return null}function S(){return typeof window>"u"?"uk":localStorage.getItem("locale")||"uk"}function O(){i.value=S()}return(B,T)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{ua:d.value.ua,error:n.error||"",item:d.value,columns:n.columns,label:d.value.label},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["flex w-full",`${n.item.type}-component`])},[e.createElementVNode("div",Yf,[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center gap-2 w-full",{"flex-1":N.value}])},[e.createElementVNode("div",Xf,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(m.value),e.mergeProps(k.value,{modelValue:r.value,"onUpdate:modelValue":T[0]||(T[0]=A=>r.value=A),onValueSelected:b}),null,16,["modelValue"]))]),N.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:_.value||!r.value?.toString().trim(),onClick:Y},[_.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,Zf)):e.createCommentVNode("",!0)],2),d.value.description&&n.layout!=="settings"?(e.openBlock(),e.createElementBlock("p",{key:0,class:"text-sm text-gray-500",innerHTML:d.value.description},null,8,Jf)):e.createCommentVNode("",!0)]),d.value.behavior?.api&&d.value.behavior?.button?(e.openBlock(),e.createBlock(Gf,e.mergeProps({key:0},d.value.behavior,{value:r.value}),null,16,["value"])):e.createCommentVNode("",!0)],2)]),_:1},8,["ua","error","item","columns","label"]))}}),th={class:"text-sm text-gray-800 mb-[4px] font-medium dark:text-neutral-300"},nh={class:"vs-compact-form-navigation__rail mt-[6px]"},oh=["onClick"],rh=ve(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 O=n.width;if(O==null)return{};const B=typeof O=="number"?`${O}px`:`${O}`;return{width:B,minWidth:B}});let d=null,m=0,p=0,h=null,y=null,f=null;const k=()=>V(),b=()=>x();e.watch(()=>n.target,async O=>{if(Y(),!O){h=null,r.value=[],l.value="";return}h=O,s.value&&(await e.nextTick(),U(O),x())},{immediate:!0}),e.watch(()=>n.scrollContainer,O=>{if(!s.value){y=O??null;return}C(O??null),e.nextTick(()=>x())},{immediate:!0}),e.onMounted(()=>{n.scrollContainer||C(null),x()}),e.onBeforeUnmount(()=>{Y(),C(null,!0),h=null,typeof window<"u"&&(m&&window.cancelAnimationFrame(m),p&&window.cancelAnimationFrame(p))});function C(O,B=!1){if(f&&(f(),f=null),B){y=null;return}if(y=O??null,typeof window>"u")return;const T=O??window,A=window;T.addEventListener("scroll",k,{passive:!0}),A.addEventListener("resize",b),f=()=>{T.removeEventListener("scroll",k),A.removeEventListener("resize",b)}}function x(){if(!s.value||!h)return;m&&typeof window<"u"&&window.cancelAnimationFrame(m);const O=()=>{_(),m=0};typeof window>"u"?O():m=window.requestAnimationFrame(O)}function _(){if(!s.value||!h)return;const O=Array.from(h.querySelectorAll("h1, h2")),B=new Set,T=[];O.forEach((A,W)=>{const X=A.textContent?.trim()??"";if(!X)return;let ee=(A.getAttribute("id")??"").trim();ee||(ee=N(X)||`heading-${W+1}`);let q=ee,Q=1;for(;B.has(q);)q=`${ee}-${Q+=1}`;A.id!==q&&Object.assign(A,{id:q}),B.add(q),T.push({id:q,text:X,level:A.tagName.toLowerCase()==="h1"?1:2})}),r.value=T,T.length||(l.value=""),E()}function N(O){return O.toLowerCase().replace(/[^a-z0-9\s-]/g,"").trim().replace(/\s+/g,"-")}function U(O){!O||!s.value||typeof MutationObserver>"u"||(Y(),d=new MutationObserver(()=>x()),d.observe(O,{childList:!0,subtree:!0}))}function Y(){d&&(d.disconnect(),d=null)}function L(O){const B=y;if(!B)return typeof window>"u"?O.offsetTop:O.getBoundingClientRect().top+window.scrollY;const T=O.getBoundingClientRect(),A=B.getBoundingClientRect();return T.top-A.top+B.scrollTop}function E(){if(!s.value||!r.value.length)return;const O=y,B=(O?O.scrollTop:null)||(typeof window<"u"?window.scrollY:0),T=(O?O.clientHeight:null)||(typeof window<"u"?window.innerHeight:0),A=B+T;let W=null;for(let ee=0;ee<r.value.length;ee+=1){const q=r.value[ee],Q=document.getElementById(q.id);if(Q){const F=L(Q);F+Q.offsetHeight>B&&F<A&&(W=q.id)}}!W&&a.value&&(W=a.value),W&&(a.value=W);const X=O?O.scrollHeight-O.clientHeight:document.documentElement.scrollHeight-window.innerHeight;B+5>=X&&(W=r.value[r.value.length-1].id),W&&(l.value=W)}function V(){s.value&&(p&&window.cancelAnimationFrame(p),p=window.requestAnimationFrame(()=>{E(),p=0}))}function S(O){if(!s.value)return;const B=document.getElementById(O);if(!B)return;const T=y,A=Math.max(0,L(B));T?T.scrollTo({top:A,behavior:"smooth"}):typeof window<"u"&&window.scrollTo({top:A,behavior:"smooth"})}return t({refresh:x}),(O,B)=>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",th,e.toDisplayString(O.title),1),e.createElementVNode("div",nh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,T=>(e.openBlock(),e.createElementBlock("div",{key:T.id,class:e.normalizeClass(["vs-compact-form-navigation__item relative",T.level===2?"vs-compact-form-navigation__item--nested":"",T.id===l.value?"vs-compact-form-navigation__item--active":""])},[e.createElementVNode("button",{type:"button",onClick:A=>S(T.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",T.level===2?"pl-[15px]":"pl-[18px]",T.id===l.value?"text-gray-800":"text-gray-500"])},[e.createElementVNode("span",null,e.toDisplayString(T.text),1)],10,oh)],2))),128))])],6)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-1584a562"]]),ht={required:"Це поле є обов’язковим",email:"Неправильний email",tel:"Неправильний телефон",minlength:o=>`Мінімальна довжина — ${o} символів`,maxlength:o=>`Максимальна довжина — ${o} символів`,min:o=>`Значення має бути не менше ${o}`,max:o=>`Значення має бути не більше ${o}`},lh=o=>typeof o=="string"?o.trim()?!1:ht.required:Array.isArray(o)?o.map(n=>typeof n=="string"?n.trim():n).filter(n=>n!=null&&n!=="").length?!1:ht.required:typeof o=="number"?Number?.isNaN(o)?ht?.required:!1:o?!1:ht.required,ah=o=>{const t=/^[\p{L}\p{N}!#$%&'*+/=?^_`{|}~.-]+@(?:[\p{L}\p{N}](?:[\p{L}\p{N}-]{0,61}[\p{L}\p{N}])?\.)+[\p{L}\p{N}](?:[\p{L}\p{N}-]{0,61}[\p{L}\p{N}])?$/u;return o?t.test(o)?!1:ht.email:!1},sh=(o,t)=>{if(!o)return!1;const n=String(o).trim();if(!/^\+[1-9]\d{1,14}$/.test(n))return ht.tel;const a=(typeof t?.digits=="number"&&Number.isFinite(t.digits)&&t.digits>0?t.digits:St(_t))||St(_t);return n.length-1!==a?ht.tel:!1},Vr=o=>o==null?0:typeof o=="string"?o.trim().length:Array.isArray(o)?o.length:typeof o=="number"?o.toString().length:String(o).length,ih=(o,t)=>{if(o==null)return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&Vr(o)<n?t?.message||ht.minlength(n):!1},ch=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&Vr(o)>n?t?.message||ht.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)},dh=(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||ht.min(n):!1},uh=(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||ht.max(n):!1},ph=(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},mh=(o,t)=>!1,fh=(o,t)=>{switch(typeof t=="string"?t:t.type){case"required":return lh(o);case"email":return ah(o);case"tel":return sh(o,typeof t=="object"?t:void 0);case"regexp":return ph(o,t);case"minlength":return ih(o,t);case"maxlength":return ch(o,t);case"min":return dh(o,t);case"max":return uh(o,t);case"custom":return mh();default:return!1}},hh={autocomplete:"select",combobox:"select",datepicker:"date",markedtext:"mask",html:"static",geom:"map",filelist:"file-list",file:"file",dropzone:"file",inlineselect:"inline-select"};function $r(o){const t=o?.toLowerCase();return hh[t]||t}function mo(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=$r(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||_t,i=St(s)||St(_t);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=mo(a.schema,a.disabled)),r.push(a)}),r}const n=[];return Object.entries(o).forEach(r=>{const l={name:r[0],...r[1],type:$r(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||_t,s=St(a)||St(_t);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=mo(l.schema,l.disabled)),n.push(l)}),n}function gh(o,t,n=!1){const r=e.computed(()=>mo((Array.isArray(t),t),typeof n=="boolean"?n:n.value)),l=e.ref({});function a(d){return Qo(o?.value,d?.conditions)}const s=(d=r.value,m=!0)=>(d.forEach(p=>{const h=[],y=Number(p?.minlength),f=Number(p?.maxlength),k=Number(p?.min),b=Number(p?.max);!Number.isNaN(y)&&Number.isFinite(y)&&h.push({type:"minlength",value:y}),!Number.isNaN(f)&&Number.isFinite(f)&&h.push({type:"maxlength",value:f}),!Number.isNaN(k)&&Number.isFinite(k)&&h.push({type:"min",value:k}),!Number.isNaN(b)&&Number.isFinite(b)&&h.push({type:"max",value:b});const C=[...h,...p.rules||[]];if(C.length){if(!a(p)){delete l.value[p.name];return}let x=!1,_=null;C.forEach(N=>{const U=fh(o.value[p.name],N);U&&(x=!0,!_&&typeof U=="string"&&(_=U))}),x&&_?l.value[p.name]=_:delete l.value[p.name]}p.schema&&s(p.schema,!1)}),m&&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 yh={class:"flex w-full h-full min-h-0 gap-6"},bh={key:0,"data-orientation":"horizontal",role:"none",class:"mt-1 shrink-0 h-[1px] w-full bg-slate-100 dark:bg-slate-600"},ct=e.defineComponent({__name:"vs-compact-form",props:e.mergeModels({schema:{default:()=>[]},style:{default:()=>({})},modelValue:{},layout:{default:()=>"default"},formId:{default:()=>""},allowIdField:{type:Boolean,default:!1},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.computed(()=>!!l.formId||l.allowIdField),s=e.useModel(o,"form"),i=e.useModel(o,"modelValue"),c=e.useModel(o,"values"),d=e.computed({get:()=>c.value??i.value,set:X=>{i.value=X,c.value=X}}),{errors:m,validate:p,reset:h,visibleSchema:y}=gh(d,l.schema,e.toRef(l,"disabled")),f=e.ref(null),k=e.ref(null),b=e.ref({}),C=e.computed(()=>l.navigation),x=e.computed(()=>l.navWidth),_=e.computed(()=>l.style?.columns),N=Object.freeze({container:12,label:3}),U=e.computed(()=>l.columns??_.value??N),Y=e.computed(()=>l.columns!=null||_.value!=null),L=e.computed(()=>Y.value?"horizontal":l.layout),E=X=>X?.columns?"horizontal":L.value,V=X=>X?.columns??U.value,S=e.computed(()=>{const X={},ee=q=>{if(!q)return;(Array.isArray(q)?q.map((F,j)=>({key:String(j),entry:F})):typeof q=="object"?Object.entries(q).map(([F,j])=>({key:F,entry:j})):[]).forEach(({key:F,entry:j})=>{if(!j||typeof j!="object")return;const te=j.name?String(j.name):F;te&&(X[te]={...j,name:te}),Array.isArray(j.schema)&&ee(j.schema)})};return ee(l.schema),X}),O=()=>{!a.value&&d.value&&delete d.value.id,r("update:modelValue",d.value),p(),r("handle-submit",d.value)},B=X=>{r("value-selected",X)};t({validate:p,reset:h,errors:m}),e.onMounted(()=>{s.value={value:d.value,errors:m.value,reset:h,validate:p,formId:l.formId}});function T(X,ee){if(X===ee)return!0;if(typeof X!="object"||typeof ee!="object"||!X||!ee)return!1;const q=Object.keys(X),Q=Object.keys(ee);return q.length!==Q.length?!1:q.every(F=>X[F]===ee[F])}function A(X){return Array.isArray(X)?[...X]:X&&typeof X=="object"?{...X}:X}function W(X){Array.isArray(X)&&X.forEach(ee=>{if(!ee)return;const q=ee.name,Q=ee.default!==void 0;q&&Q&&d.value[q]===void 0&&(d.value[q]=A(ee.default)),Array.isArray(ee.schema)&&W(ee.schema)})}return e.watch(y,X=>{W(X)},{immediate:!0,deep:!0}),e.provide("form",s),e.provide("values",d),e.provide("field-props",b),e.provide("schema-by-name",S),(X,ee)=>(e.openBlock(),e.createElementBlock("div",yh,[e.createElementVNode("div",{class:"flex-1 min-h-0 overflow-y-auto overflow-x-visible",ref_key:"formScrollContainer",ref:k},[e.createElementVNode("form",{ref_key:"formRef",ref:f,onSubmit:e.withModifiers(O,["prevent"]),class:e.normalizeClass(["grid grid-cols-12 p-1",L.value==="default"?"gap-6":"gap-4"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(y),(q,Q)=>(e.openBlock(),e.createElementBlock("div",{key:q.name,class:e.normalizeClass(E(q)==="horizontal"?"col-span-12":`col-span-${q.col||12}`)},[e.createVNode(Br,{style:e.normalizeStyle(X.style),item:q,layout:E(q),columns:V(q),"model-value":d.value[q.name],"onUpdate:modelValue":F=>{if(q.name==="id"&&!a.value)return;const j=d.value[q.name];T(j,F)||(d.value[q.name]=F)},error:e.unref(m)[q.name],onValueSelected:B},null,8,["style","item","layout","columns","model-value","onUpdate:modelValue","error"]),E(q)==="settings"&&Q+1!==e.unref(y).length?(e.openBlock(),e.createElementBlock("div",bh)):e.createCommentVNode("",!0)],2))),128))],34)],512),e.createVNode(rh,{target:f.value,"scroll-container":k.value,enabled:C.value,width:x.value},null,8,["target","scroll-container","enabled","width"])]))}}),kh={class:"relative"},xh={class:"w-full h-full fixed top-0 start-0 bg-black bg-opacity-50"},wh={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"},_h={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},vh={class:"font-medium text-gray-800 dark:text-[#ffffff]"},Ch={class:"p-4 mim-h-0 h-full overflow-auto"},Nr=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),m=()=>{const b=n.method?.trim().toUpperCase();return b==="GET"||b==="POST"||b==="PUT"?b:d.value==="add"?"POST":"PUT"},p=()=>{ge.notify({type:"success",title:"Успішно",message:`Дані успішно ${d.value==="add"?"збережено":"оновлено"}`})},h=b=>{const C={};b.id!==void 0&&b.id!==null&&(C.id=b.id,c.value=b.id.toString()),b.obj&&typeof b.obj=="object"&&Object.assign(C,b.obj),Object.keys(C).length&&(a.value={...a.value,...C})},y=async b=>{if(console.log(b),b.ok){await b.json().catch(()=>({})),p(),r("save",a.value);return}const C=await b.json().catch(()=>({})),x=C.message||C.error;if(b.status===400){ge.notify({type:"warning",title:"Помилка валідації",message:x||"Некоректні дані (400)"});return}if(b.status===500){ge.notify({type:"error",title:"Серверна помилка",message:x||"Виникла помилка на сервері (500)"});return}ge.notify({type:"error",title:"Помилка",message:`Статус: ${b.status}`})};async function f(){const b=s.value.validate();if(b){ge.notify({type:"warning",title:"Помилка валідації",message:Object.entries(b).map(([x,_])=>`${x}: ${_}`).join(`
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 Ne=!1,Oe=!1;const $e=e.reactive({}),ne=e.ref([]),le=e.computed(()=>ne.value.map(u=>$e[u]).filter(Boolean)),be=e.ref(null),Ee=e.computed(()=>be.value?.entries??[]),ze=e.computed(()=>{if(be.value)return{left:`${be.value.point.x+12}px`,top:`${be.value.point.y+12}px`}}),We=e.computed(()=>{if(Array.isArray(n.tools)&&n.tools.length)return n.tools;const u=l?.tools;return Array.isArray(u)?u.map(g=>String(g)):typeof u=="string"?u.split(",").map(g=>g.trim()).filter(Boolean):[]}),I=e.computed(()=>{const u={search:!1,import:!1,export:!1,point:!1,line:!1,polygon:!1,rectangle:!1,ruler:!1};if(!We.value.length)return{...u,import:!0,export:!0,point:!0,line:!0,polygon:!0,rectangle:!0};const g=new Set(We.value.map(w=>w.toLowerCase()));return{search:g.has("search"),import:g.has("import"),export:g.has("export"),point:g.has("point"),line:g.has("line"),polygon:g.has("polygon"),rectangle:g.has("rectangle"),ruler:g.has("ruler")}});function J(u){if(typeof u!="string"||!u.trim())return"";if(/^https?:\/\//i.test(u))return u;const g=window?.location?.origin??"",w=u.replace(/^\/+/,"");return w?g?`${g}/${w}`:`/${w}`:g}function ae(){const u=Array.isArray(_.basemaps)&&_.basemaps.length?_.basemaps:x.basemaps;if(Array.isArray(u)&&u.length){const w=u.map(($,D)=>{const G=String($?.key??$?.id??$?.name??`b${D}`),ce=J(String($?.url??""));if(!ce)return null;const pe=typeof $?.preview=="string"&&$.preview?J($.preview):"";return[G,{...$,url:ce,preview:pe}]}).filter($=>Array.isArray($)&&$.length===2).reduce(($,[D,G])=>($[D]=G,$),{});if(Object.keys(w).length)return w}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 ue=ae(),he=Object.keys(ue),Ae=e.ref(he.length?he[0]:"");function Te(){const u=Array.isArray(_.overlays)&&_.overlays.length?_.overlays:x.overlays;return!Array.isArray(u)||!u.length?{}:u.map((w,$)=>{const G=(typeof w?.name=="string"?w.name.trim():"")||`o${$}`,ce=J(String(w?.url??""));if(!ce)return null;const pe=typeof w?.preview=="string"&&w.preview?J(w.preview):"";return[G,{...w,name:G,url:ce,preview:pe}]}).filter(w=>Array.isArray(w)&&w.length===2).reduce((w,[$,D])=>(w[$]=D,w),{})}const Fe=Te(),P=e.ref(Object.keys(Fe).filter(u=>!!Fe[u]?.visible)),v=e.computed(()=>I.value.point||I.value.line||I.value.polygon||I.value.rectangle),M=e.computed(()=>le.value.map(u=>({id:u.id,label:String(u.config.title||u.config.name||u.id),visible:u.visible})));function R(u){return`${gm}${u}`}function ie(u){return`${ym}${u}`}async function we(){if(typeof window>"u")return null;const u=window;if(u[An])return u[An];const g=G=>{if(Array.from(document.styleSheets).some(Se=>Se?.href?.includes(G)))return;const pe=document.createElement("link");pe.rel="stylesheet",pe.href=G,document.head.appendChild(pe)},w=async()=>{const G=new Function("u","return import(u)"),ce=await G("https://esm.sh/maplibre-gl@3.6.2"),pe=ce?.default??ce;if(!pe)throw new Error("maplibre esm fallback failed");window.maplibregl=pe,window.mapboxgl=pe;const Se=await G("https://esm.sh/@mapbox/mapbox-gl-draw@1.5.0"),je=Se?.default??Se;if(!je)throw new Error("mapbox draw esm fallback failed");window.MapboxDraw=je},D=(async()=>{g("https://unpkg.com/maplibre-gl@3.6.2/dist/maplibre-gl.css"),g("https://unpkg.com/@mapbox/mapbox-gl-draw@1.5.0/dist/mapbox-gl-draw.css"),(!window.maplibregl||!window.MapboxDraw)&&await w();const G=window.maplibregl,ce=window.MapboxDraw;if(!G)throw new Error("maplibregl not available after load");if(!ce)throw new Error("MapboxDraw not available after load");return{maplibregl:G,MapboxDraw:ce}})().catch(G=>{throw delete u[An],G});return u[An]=D,D}function Pe(u){return{version:8,sources:{rasterSource:{type:"raster",tiles:[u],tileSize:256}},layers:[{id:"rasterLayer",type:"raster",source:"rasterSource"}]}}let De=null,Ge=null,K=null,de=null,Ie=[],Qe=null,dt=null,Ye=null,Ft=!1,Dt=!1,jt=!1,Tt=null;function Eo(){return{onSetup(){const u=this.newFeature({type:"Feature",properties:{},geometry:{type:"Polygon",coordinates:[[[0,0],[0,0],[0,0],[0,0],[0,0]]]}});return this.addFeature(u),this.clearSelectedFeatures(),this.updateUIClasses({mouse:"add"}),this.setActionableState({trash:!0}),{rectangle:u,startPoint:null,hasCoordinates:!1}},onMouseMove(u,g){if(!u.startPoint)return;const[w,$]=u.startPoint,D=g.lngLat.lng,G=g.lngLat.lat;u.rectangle.setCoordinates([[[w,$],[D,$],[D,G],[w,G],[w,$]]])},onClick(u,g){if(!u.startPoint){u.startPoint=[g.lngLat.lng,g.lngLat.lat],u.hasCoordinates=!0,u.rectangle.setCoordinates([[[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat]]]);return}const[w,$]=u.startPoint,D=g.lngLat.lng,G=g.lngLat.lat;return Math.abs(w-D)>0&&Math.abs($-G)>0?(u.rectangle.setCoordinates([[[w,$],[D,$],[D,G],[w,G],[w,$]]]),this.map.fire("draw.create",{features:[u.rectangle.toGeoJSON()]}),this.changeMode("simple_select",{featureIds:[u.rectangle.id]})):(this.deleteFeature([u.rectangle.id],{silent:!0}),u.hasCoordinates=!1,this.changeMode("simple_select"))},onStop(){},onTrash(u){this.deleteFeature([u.rectangle.id],{silent:!0}),this.changeMode("simple_select")},toDisplayFeatures(u,g,w){const $=g.properties.id===u.rectangle.id;$&&!u.hasCoordinates||(g.properties.active=$?"true":"false",w(g))}}}const Bo=[{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 jn(){const u=Ae.value;return!u||!ue[u]?.url?"":ue[u].url}function Un(u,g){return u?.id?String(u.id):u?.url?`${u.url}-${g}`:`layer-${g}`}function Vo(u){const g=String(u?.url??"").trim();if(!g)return"";if(/^https?:\/\//i.test(g))return g;const w=window.location?.origin??"",$=g.replace(/^\/+/,"");return`${w}/${$}`}function Lt(u){u&&be.value?.layerId!==u||(be.value=null)}function Hn(u,g={}){return u.popup===!1?[]:Array.isArray(u.popup)?u.popup.length?u.popup.map(w=>{const $=w?.field||w?.name;if(!$)return null;const D=g[$];return D==null||D===""?null:{key:w.label||$,value:String(D)}}).filter(Boolean):[]:Object.entries(g).slice(0,5).map(([w,$])=>({key:w,value:$==null?"—":String($)}))}function z(u){if(!Array.isArray(u))return[];const g=$=>Array.isArray($)&&$.length>=2&&Number.isFinite(Number($[0]))&&Number.isFinite(Number($[1])),w=$=>{if(!$.length)return $;const D=$[0],G=$[$.length-1];return!G||D[0]!==G[0]||D[1]!==G[1]?[...$,D]:$};if(u.length&&g(u[0])){const $=u.map(D=>[Number(D[0]),Number(D[1])]).filter(g);return $.length?[w($)]:[]}return u.length&&Array.isArray(u[0])&&g(u[0][0])?u.map(D=>Array.isArray(D)?D.map(G=>[Number(G[0]),Number(G[1])]):[]).filter(D=>D.length).map(w):u.length&&Array.isArray(u[0])&&Array.isArray(u[0][0])&&g(u[0][0][0])?u.flatMap(D=>Array.isArray(D)?D:[]).map(D=>Array.isArray(D)?D.map(G=>[Number(G[0]),Number(G[1])]):[]).filter(D=>D.length).map(w):[]}function re(u){const g=u.style??{},w=g.color??"#3b82f6";if(!g.colorAttr||!g.colorSet)return w;const $=Object.keys(g.colorSet);if(!$.length)return w;const D=["match",["to-string",["get",g.colorAttr]]];return $.forEach(G=>{D.push(String(G),g.colorSet?.[G]??w)}),D.push(w),D}function me(u){if(!K)return;u.handlers.forEach(w=>{try{K.off(w.type,w.layerId,w.handler)}catch{}}),u.handlers=[],[...u.layerIds,...u.boundsIds].forEach(w=>{K.getLayer(w)&&K.removeLayer(w)}),K.getSource(u.sourceId)&&K.removeSource(u.sourceId);const g=`vs-ov-bounds-src-${u.id}`;K.getSource(g)&&K.removeSource(g),Lt(u.id)}function Me(u,g){if(!K)return[];const w=`vs-ov-bounds-src-${g}`,$=`vs-ov-bounds-line-${g}`,D=u.bounds??T.value??ke.value,G=z(D);if(!G.length)return[];const ce={type:"FeatureCollection",features:G.map(pe=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:pe}}))};return K.getSource(w)&&K.removeSource(w),K.addSource(w,{type:"geojson",data:ce}),K.addLayer({id:$,type:"line",source:w,paint:{"line-color":u.style?.stroke??u.style?.color??"#2563eb","line-width":u.style?.width??2,"line-opacity":u.style?.opacity??.8,"line-dasharray":[2,2]}}),[$]}function Re(u){if(!K)return;me(u);const g=u.config,w=Vo(g);if(!w)return;const $=[],D=[];if(/\.v(?:m)?t(?:\?|$)/i.test(w)||/\.pbf(?:\?|$)/i.test(w)){const pe=g.sourceLayer||g.layer||g.service_layer||g.dataset?.layer||g.id;K.addSource(u.sourceId,{type:"vector",tiles:[w]});const Se=String(g.style?.type??"polygon").toLowerCase(),je=re(g),pt=g.style?.opacity??.5;if(Se==="point"){const mt=`vs-ov-point-${u.id}`;K.addLayer({id:mt,type:"circle",source:u.sourceId,"source-layer":pe,paint:{"circle-color":je,"circle-radius":5,"circle-opacity":pt}}),$.push(mt)}else if(Se==="polyline"||Se==="line"){const mt=`vs-ov-line-${u.id}`;K.addLayer({id:mt,type:"line",source:u.sourceId,"source-layer":pe,layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":je,"line-width":g.style?.width??2,"line-opacity":pt}}),$.push(mt)}else{const mt=`vs-ov-fill-${u.id}`,Ut=`vs-ov-border-${u.id}`;K.addLayer({id:mt,type:"fill",source:u.sourceId,"source-layer":pe,paint:{"fill-color":je,"fill-opacity":pt}}),K.addLayer({id:Ut,type:"line",source:u.sourceId,"source-layer":pe,paint:{"line-color":g.style?.stroke??g.style?.color??"#2563eb","line-width":g.style?.width??1,"line-opacity":pt}}),$.push(mt,Ut)}}else{K.addSource(u.sourceId,{type:"raster",tiles:[w],tileSize:256});const pe=`vs-ov-raster-${u.id}`;K.addLayer({id:pe,type:"raster",source:u.sourceId,paint:{"raster-opacity":g.style?.opacity??1}}),$.push(pe)}$.forEach(pe=>{const Se=pt=>{if(!pt?.features?.length){Lt(u.id);return}const mt=pt.features[0]?.properties??{},Ut=Hn(u.config,mt);if(!Ut.length){Lt(u.id);return}be.value={layerId:u.id,entries:Ut,point:{x:pt.point.x,y:pt.point.y}}},je=()=>Lt(u.id);K.on("mousemove",pe,Se),K.on("mouseleave",pe,je),D.push({layerId:pe,type:"mousemove",handler:Se},{layerId:pe,type:"mouseleave",handler:je})}),u.layerIds=$,u.boundsIds=Me(u.config,u.id),u.handlers=D;const ce=u.visible?"visible":"none";[...u.layerIds,...u.boundsIds].forEach(pe=>{K.getLayer(pe)&&K.setLayoutProperty(pe,"visibility",ce)})}function Ue(){if(!K)return;const g={type:"FeatureCollection",features:z(T.value??ke.value).map(w=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:w}}))};K.getSource(Mn)?K.getSource(Mn).setData(g):K.addSource(Mn,{type:"geojson",data:g}),K.getLayer(Kt)||K.addLayer({id:Kt,type:"line",source:Mn,paint:{"line-color":"#2563eb","line-width":2,"line-opacity":.8,"line-dasharray":[2,2]}})}function He(u){if(!K||s.value)return;const g=$e[u];if(!g)return;g.visible=!g.visible;const w=g.visible?"visible":"none";[...g.layerIds,...g.boundsIds].forEach($=>{K.getLayer($)&&K.setLayoutProperty($,"visibility",w)}),qe(),g.visible||Lt(u)}function st(u){if(!K)return;const g=Fe[u];if(!g?.url)return;const w=R(u),$=ie(u);K.getLayer($)&&K.removeLayer($),K.getSource(w)&&K.removeSource(w),K.addSource(w,{type:"raster",tiles:[g.url],tileSize:256});const D=g?.opacity??g?.style?.opacity,G=typeof D=="number"?D:hm;K.addLayer({id:$,type:"raster",source:w,paint:{"raster-opacity":G}})}function kt(u){if(!K)return;const g=R(u),w=ie(u);K.getLayer(w)&&K.removeLayer(w),K.getSource(g)&&K.removeSource(g)}function ut(){K&&P.value.forEach(u=>st(u))}function xt(u){if(!K||s.value||!Fe[u])return;P.value.includes(u)?(P.value=P.value.filter(w=>w!==u),kt(u)):(P.value=[...P.value,u],st(u)),qe()}function qe(){if(!K)return;const u=P.value.map(Se=>ie(Se)).filter(Se=>K.getLayer(Se)),g=[],w=[],$=[],D=[];ne.value.forEach(Se=>{const je=$e[Se];if(!je)return;const pt=String(je.config?.url??""),mt=/\.v(?:m)?t(?:\?|$)/i.test(pt),Ut=/\.png(?:\?|$)/i.test(pt);mt?$.push(...je.layerIds):Ut?g.push(...je.layerIds):w.push(...je.layerIds),D.push(...je.boundsIds)});const G=[...u,...g,...w,...$,...D];G.forEach(Se=>{K.getLayer(Se)&&K.moveLayer(Se)}),K.getLayer(Kt)&&K.moveLayer(Kt);const pe=(K.getStyle?.()?.layers??[]).map(Se=>String(Se?.id??"")).filter(Se=>Se.startsWith("gl-draw-"));if(pe.forEach(Se=>{K.getLayer(Se)&&K.moveLayer(Se)}),K.getLayer(fr)){const Se=G.find(je=>K.getLayer(je))??(K.getLayer(Kt)?Kt:null)??pe.find(je=>K.getLayer(je));Se&&K.moveLayer(fr,Se)}}function un(u){if(!ue[u]||(Ae.value=u,!K))return;const g=jn();if(!g)return;const w=K.getSource("rasterSource");if(w&&typeof w.setTiles=="function"){w.setTiles([g]),qe();return}const $=K.getCenter?.(),D=K.getZoom?.(),G=de?.getAll?.();K.setStyle(Pe(g)),K.once("style.load",()=>{if(K&&($&&Number.isFinite(D)&&K.jumpTo({center:[$.lng,$.lat],zoom:D}),Ue(),ut(),ne.value.forEach(ce=>{const pe=$e[ce];pe&&Re(pe)}),qe(),G?.features?.length&&de))try{G.features.forEach(ce=>de.add(ce)),d.value=G.features.length}catch{d.value=0}})}function So(u){return{type:"Feature",properties:{},geometry:u}}function wt(u){if(!u)return null;try{return JSON.parse(JSON.stringify(u))}catch{return null}}function $o(u){if(!u)return null;const g=wt(u.geometry);return g?{...u.id!==void 0?{id:u.id}:{},type:"Feature",properties:{...u.properties??{}},geometry:g}:null}function pn(u){if(!u)return[];const g=(D,G)=>{if(!D?.type)return[];const ce={...G??{}};return D.type==="MultiPoint"&&Array.isArray(D.coordinates)?D.coordinates.map(pe=>So({type:"Point",coordinates:pe})).map(pe=>({...pe,properties:ce})):D.type==="MultiLineString"&&Array.isArray(D.coordinates)?D.coordinates.map(pe=>So({type:"LineString",coordinates:pe})).map(pe=>({...pe,properties:ce})):D.type==="MultiPolygon"&&Array.isArray(D.coordinates)?D.coordinates.map(pe=>So({type:"Polygon",coordinates:pe})).map(pe=>({...pe,properties:ce})):D.type==="GeometryCollection"&&Array.isArray(D.geometries)?D.geometries.flatMap(pe=>g(pe,ce)):[{type:"Feature",properties:ce,geometry:wt(D)}]},w=D=>{if(!D)return null;if(D.type==="Feature"){const G=$o(D);return G?g(G.geometry,G.properties):null}return D.geom?.type&&Array.isArray(D.geom.coordinates)?g({type:D.geom.type,coordinates:D.geom.coordinates},D.properties??{}):D.type==="GeometryCollection"&&Array.isArray(D.geometries)?g(D,D.properties??{}):typeof D.type=="string"&&Array.isArray(D.coordinates)?g(wt(D),D.properties??{}):null};if(u.type==="FeatureCollection")return(u.features??[]).flatMap(w).filter(Boolean);if(Array.isArray(u))return u.flatMap(D=>D?.type==="FeatureCollection"?pn(D):[w(D)]).flat().filter(Boolean);const $=w(u);return $?Array.isArray($)?$:[$]:[]}function ll(u){if(!u.length)return null;if(!a.value)return wt(u[0]?.geometry??null);const g=u.map(G=>wt(G?.geometry)).filter(Boolean);return g.every(G=>G?.type==="Point")?{type:"MultiPoint",coordinates:g.map(G=>G.coordinates)}:g.every(G=>G?.type==="LineString")?{type:"MultiLineString",coordinates:g.map(G=>G.coordinates)}:g.every(G=>G?.type==="Polygon")?{type:"MultiPolygon",coordinates:g.map(G=>G.coordinates)}:{type:"GeometryCollection",geometries:g}}function al(u){if(!u)return"__null__";try{return JSON.stringify(u)}catch{return"__invalid__"}}function py(u,g){if(!Array.isArray(u)||!Array.isArray(g)||u.length<2||g.length<2)return!1;const w=1e-12;return Math.abs(Number(u[0])-Number(g[0]))<w&&Math.abs(Number(u[1])-Number(g[1]))<w}function sl(u,g){if(!Array.isArray(u)||u.length<4)return null;const $=py(u[0],u[u.length-1])?u.slice(0,-1):u.slice();return!Number.isInteger(g)||g<0||g>=$.length||$.length<=3||($.splice(g,1),$.length<3)?null:[...$,[...$[0]]]}function il(u,g){if(!Array.isArray(u)||u.length<2||!Number.isInteger(g)||g<0||g>=u.length||u.length<=2)return null;const w=u.slice();return w.splice(g,1),w.length<2?null:w}function my(u,g){const w=wt(u);if(!w||!Array.isArray(g))return null;if(w.type==="LineString"){const[$]=g,D=il(w.coordinates,$);return D?(w.coordinates=D,w):null}if(w.type==="MultiLineString"){const[$,D]=g,G=w.coordinates?.[$],ce=il(G,D);return ce?(w.coordinates[$]=ce,w):null}if(w.type==="Polygon"){const[$,D]=g,G=w.coordinates?.[$],ce=sl(G,D);return ce?(w.coordinates[$]=ce,w):null}if(w.type==="MultiPolygon"){const[$,D,G]=g,ce=w.coordinates?.[$]?.[D],pe=sl(ce,G);return pe?(w.coordinates[$][D]=pe,w):null}return null}function fy(u){return u?u.split(".").map(g=>Number(g)).filter(g=>Number.isInteger(g)&&g>=0):[]}function cl(u){return!de||!u?null:typeof de.get=="function"?de.get(u)??null:de.getAll?.()?.features?.find(w=>String(w?.id??"")===u)??null}function dl(u){const g=u?.properties?.id??u?.id;return g==null||g===""?null:String(g)}function hy(u){if(!K||!u)return null;const g=[[u.x-8,u.y-8],[u.x+8,u.y+8]],$=K.queryRenderedFeatures(g).find(D=>{const G=String(D?.properties?.meta??"");return G&&G!=="feature"?!1:!!dl(D)});return dl($)}function gy(u,g){if(!de||!u||!g.length)return;const w=cl(u);if(!w?.geometry)return;const $=my(w.geometry,g);if(!$)return;const D={...w,id:w.id??u,geometry:$};Oe=!0,Ne=!0;try{de.delete(u),de.add(D)}finally{Ne=!1,Oe=!1}It(),Bt()}function yy(u){if(!K||!de||s.value||k.isRulerActive.value||m.value!=="edit")return;const g=u?.point;if(!g)return;const w=[[g.x-8,g.y-8],[g.x+8,g.y+8]],D=K.queryRenderedFeatures(w).find(ce=>ce?.properties?.meta==="vertex"&&ce?.properties?.parent&&ce?.properties?.coord_path);if(!D)return;u?.originalEvent?.preventDefault?.(),u?.originalEvent?.stopPropagation?.();const G=fy(String(D.properties.coord_path));G.length&&gy(String(D.properties.parent),G)}function by(u){const g=ml(u);if(!g)return null;const[[w,$],[D,G]]=g;return{lat:($+G)/2,lng:(w+D)/2}}function ul(u){if(!Array.isArray(u)||u.length<3)return 0;const g=($,D)=>{const G=$*2003750834e-2/180,ce=Math.log(Math.tan((90+D)*Math.PI/360))/(Math.PI/180);return[G,ce*2003750834e-2/180]};let w=0;for(let $=0;$<u.length-1;$+=1){const[D,G]=g(Number(u[$][0]),Number(u[$][1])),[ce,pe]=g(Number(u[$+1][0]),Number(u[$+1][1]));w+=D*pe-ce*G}return Math.abs(w/2)/1e6}function ky(u){if(!u?.type||!u?.coordinates)return null;if(u.type==="Polygon"){const g=u.coordinates?.[0];return Array.isArray(g)?ul(g):null}return u.type==="MultiPolygon"?u.coordinates.reduce((g,w)=>{const $=w?.[0];return Array.isArray($)?g+ul($):g},0):null}function No(u){if(!u){p.value=null;return}const g=by(u);if(!g){p.value=null;return}p.value={type:String(u.type??"Feature"),center:g,areaKm2:ky(u)}}function Ao(u){if(!u){const $=Ie[Ie.length-1],D=wt($?.geometry??null);Qe=D,No(D);return}const g=Ie.find($=>String($?.id??"")===String(u))??null,w=wt(g?.geometry??null);Qe=w,No(w)}function Mo(u){h.value=(u??[]).map((g,w)=>{const $=String(g?.id??`feature-${w+1}`),D=Fo(String(g?.geometry?.type??"Feature"));return{id:$,label:`${D} ${w+1}`}})}function Fo(u){switch(String(u)){case"Point":return"Точка";case"MultiPoint":return"Мультиточка";case"LineString":return"Лінія";case"MultiLineString":return"Мультилінія";case"Polygon":return"Полігон";case"MultiPolygon":return"Мультиполігон";case"GeometryCollection":return"Колекція геометрій";default:return String(u||"Невідомо")}}function pl(u,g){if(!Array.isArray(u)||!Array.isArray(g)||u.length!==2||g.length!==2)return!1;const w=1e-9;return Math.abs(Number(u[0])-Number(g[0]))<w&&Math.abs(Number(u[1])-Number(g[1]))<w}function ml(u){if(!u)return null;let g=1/0,w=1/0,$=-1/0,D=-1/0;const G=ce=>{if(Array.isArray(ce)){if(ce.length>=2&&Number.isFinite(ce[0])&&Number.isFinite(ce[1])){const pe=Number(ce[0]),Se=Number(ce[1]);g=Math.min(g,pe),w=Math.min(w,Se),$=Math.max($,pe),D=Math.max(D,Se);return}ce.forEach(G)}};return G(u.coordinates),!Number.isFinite(g)||!Number.isFinite(w)?null:[[g,w],[$,D]]}function fl(u){if(!K||!u)return;const g=ml(u);if(!g)return;const[[w,$],[D,G]]=g;if(w===D&&$===G){K.easeTo({center:[w,$],zoom:Math.max(W.value,14)}),j();return}K.fitBounds(g,{padding:30,duration:250,maxZoom:18}),j()}function Do(){if(!de){d.value=0;return}const u=de.getAll();d.value=u?.features?.length??0}function mn(){if(!de)return null;const g=de.getAll?.()?.features??[],w=G=>!!G&&g.some(ce=>String(ce?.id??"")===String(G??"")),$=de.getSelectedIds?.();if(Array.isArray($)&&$.length>0){const G=$[0];return G!=null?String(G):null}if(w(Ye))return String(Ye);if(!g.length)return null;const D=a.value?g[g.length-1]:g[0];return D?.id!==void 0&&D?.id!==null?String(D.id):null}function It(){if(!de)return;const u=de.getAll();if(d.value=u?.features?.length??0,!u?.features?.length){Ie=[],h.value=[],Qe=null,Ye=null,p.value=null,Ne||(dt="__null__",r("update:modelValue",null));return}const g=(u.features??[]).map($o).filter(Boolean);if(Ie=g,Mo(g),Ye=mn(),Ao(Ye),!Ne){const w=ll(g);dt=al(w),r("update:modelValue",w)}}function qn(){if(!de)return;(de.getAll()?.features||[]).forEach(g=>de.delete(g.id)),h.value=[],Do()}function Kn(u){if(!de)return;const g=pn(u),w=a.value?g:g.slice(0,1);Ne=!0,qn(),w.forEach(G=>{try{de.add(G)}catch{}}),Ne=!1,Ie=(de.getAll?.()?.features??w).map($o).filter(Boolean),Mo(Ie),Ye=null;const D=wt(Ie[Ie.length-1]?.geometry??null);Qe=wt(D),Do(),No(D),D&&(fl(D),s.value||Bt())}function xy(){de&&(Ne=!0,qn(),Ie.forEach(u=>{try{de.add(u)}catch{}}),Ne=!1,Mo(Ie),Do(),Ao(Ye))}function Gt(){if(de){try{de.changeMode("simple_select",{featureIds:[]})}catch{}m.value=""}}function Wn(u){if(s.value||!de)return;k.isRulerActive.value&&k.closeRuler(),jt=!0,Gt(),m.value=u;const g=u==="marker"?"draw_point":u==="polyline"?"draw_line_string":u==="rectangle"?"draw_rectangle":"draw_polygon";a.value||(Ne=!0,qn(),Ne=!1);try{de.changeMode(g)}catch{m.value=""}finally{requestAnimationFrame(()=>{jt=!1})}}function Bt(u){if(s.value||!de||!de.getAll()?.features?.length)return;const w=u||mn();if(w)try{de.changeMode("direct_select",{featureId:w}),Ye=w,Ao(Ye),m.value="edit"}catch{m.value=""}}function wy(u){s.value||!de||!u||Bt(u)}function _y(){if(!(s.value||!de)){if(a.value){const u=mn();if(u)try{Ft=!0,de.delete(u),Ft=!1,It();const g=mn();g?Bt(g):Gt();return}catch{Ft=!1}}Gt(),qn(),Ie=[],h.value=[],Ye=null,dt="__null__",p.value=null,r("update:modelValue",null)}}function vy(){s.value||!Qe||fl(Qe)}function Cy(u){if(!K||!De)return;const g=[u[1],u[0]];Tt||(Tt=new De.Marker({color:"#2563eb"})),Tt.setLngLat(g).addTo(K),K.easeTo({center:g,zoom:13,duration:250})}function Ey(){s.value||Z.value?.click()}function By(){s.value||(oe.value=!oe.value)}function hl(u){if(!oe.value)return;const g=se.value;g&&!g.contains(u.target)&&(oe.value=!1)}function Vy(){oe.value=!1,Ey()}function Sy(){s.value||(Ve.value=[],oe.value=!1,ye.value=!0)}function $y(){ye.value=!1,Ve.value=[]}function Ny(){if(s.value||!de)return;const u=pu(xe.value.coordinates??"",xe.value.format||"decimal",xe.value.order||"lat-lon");if(!u.ok){Ve.value=u.errors,Ay(u.errors);return}Ve.value=[],Kn({type:"Polygon",coordinates:[u.ring]}),It(),ye.value=!1,u.wasClosedAutomatically&&ge.notify({type:"info",title:"Імпорт координат",message:"Полігон був автоматично замкнений (перша і остання точки різнилися)."})}function Ay(u){if(!u.length)return;const g=5;u.slice(0,g).forEach(w=>{const $=w.line>0?`Рядок ${w.line}`:"Загальна помилка";ge.notify({type:"warning",title:"Імпорт координат",message:`${$} — ${w.message}`})}),u.length>g&&ge.notify({type:"warning",title:"Імпорт координат",message:`Ще помилок: ${u.length-g}`})}function My(u){if(s.value||!de)return;oe.value=!1;const g=u.target,w=g.files?.[0];if(!w)return;const $=new FileReader;$.onload=()=>{try{const D=JSON.parse(String($.result));if(!pn(D).length){ge.notify({type:"warning",title:"Імпорт файлу",message:"Файл не містить коректний GeoJSON-обʼєкт."});return}Kn(D),It()}catch{ge.notify({type:"error",title:"Імпорт файлу",message:"Не вдалося прочитати файл. Перевірте формат GeoJSON/JSON."})}finally{g.value=""}},$.onerror=()=>{ge.notify({type:"error",title:"Імпорт файлу",message:"Помилка читання файлу."}),g.value=""},$.readAsText(w)}function Fy(){if(s.value||!de)return;const u=de.getAll(),g=new Blob([JSON.stringify(u,null,2)],{type:"application/json"}),w=URL.createObjectURL(g),$=document.createElement("a");$.href=w,$.download="data.geojson",$.click(),URL.revokeObjectURL(w)}e.onMounted(async()=>{if(window.addEventListener("click",hl,!0),!c.value)return;const u=await we();De=u.maplibregl,Ge=u.MapboxDraw;const g=jn();g&&(K=new De.Map({container:c.value,style:Pe(g),center:[A.value[0],A.value[1]],zoom:W.value,attributionControl:!1}),y.value=K,K.addControl(new De.NavigationControl({showCompass:!0}),"bottom-right"),K.on("load",()=>{if(!(!Ge||!K)){if(de=new Ge({displayControlsDefault:!1,modes:{...Ge.modes,draw_rectangle:Eo()},controls:{point:!1,line_string:!1,polygon:!1,trash:!1},styles:Bo}),K.addControl(de),K.on("click",w=>{if(k.isRulerActive.value){const D=w?.lngLat;if(!D)return;f.value?.addPoint?.({lat:D.lat,lng:D.lng});return}if(!de||s.value||m.value!=="edit")return;const $=hy(w?.point);!$||$===Ye||requestAnimationFrame(()=>{!de||s.value||Bt($)})}),K.on("draw.create",()=>{if(de&&!k.isRulerActive.value){if(!a.value){const w=de.getAll();if(w.features.length>1){const $=w.features[w.features.length-1];Ne=!0,w.features.slice(0,-1).forEach(D=>de.delete(D.id)),Ne=!1,$&&(Ne=!0,de.add($),Ne=!1)}}It(),Bt()}}),K.on("draw.update",w=>{if(Dt||k.isRulerActive.value)return;const $=Array.isArray(w?.features)?w.features:[],D=w?.action==="move"&&$.length>0&&$.every(G=>G?.geometry?.type==="Point");if(w?.action==="move"){if(D){It();return}if(Dt=!0,xy(),Dt=!1,m.value==="edit"){const G=mn(),ce=G?cl(G):de?.getAll?.()?.features?.[0];if(ce?.id)try{de.changeMode("direct_select",{featureId:ce.id}),Ye=String(ce.id)}catch{m.value=""}}return}It()}),K.on("draw.delete",()=>{Oe||Ft||k.isRulerActive.value||m.value==="marker"||m.value==="polyline"||m.value==="polygon"||m.value==="rectangle"||(It(),de?.getAll?.()?.features?.length||(Ye=null),m.value="",Gt())}),K.on("draw.selectionchange",w=>{if(!de||Dt||k.isRulerActive.value||m.value==="marker"||m.value==="polyline"||m.value==="polygon"||m.value==="rectangle")return;const $=w?.features?.[0]?.id!==void 0&&w?.features?.[0]?.id!==null?String(w.features[0].id):null;if(!s.value&&$){if(m.value==="edit"&&Ye===$)return;requestAnimationFrame(()=>{!de||s.value||Bt($)});return}const D=de.getSelectedIds?.(),G=Array.isArray(D)&&D.length>0?String(D[0]):null;if(!s.value&&G){if(m.value==="edit"&&Ye===G)return;requestAnimationFrame(()=>{!de||s.value||Bt(G)});return}try{de.changeMode("simple_select",{featureIds:[]})}catch{}}),te.value!==void 0){const w=te.value;te.value=void 0,requestAnimationFrame(()=>{de&&Kn(w)})}Ue(),ut(),ne.value.forEach(w=>{const $=$e[w];$&&Re($)}),qe(),F()}}),K.on("contextmenu",yy),K.on("moveend",j),K.on("zoomend",()=>{K&&(W.value=K.getZoom())}))}),e.onUnmounted(()=>{ee&&(clearTimeout(ee),ee=null),k.isRulerActive.value&&k.closeRuler(),window.removeEventListener("click",hl,!0),Object.values($e).forEach(u=>{K&&me(u)}),Lt(),Tt?.remove&&Tt.remove(),Tt=null,K?.remove&&K.remove(),K=null,de=null,y.value=null}),e.watch(()=>n.modelValue,u=>{if(!de){te.value=u;return}const g=ll((a.value?pn(u):pn(u).slice(0,1))||[]),w=al(g);if(dt&&w===dt){dt=null;return}dt=null,Kn(u)},{deep:!0}),e.watch(()=>B.value,u=>{const g=Array.isArray(u)?u:[],w=[],$=new Set;g.forEach((D,G)=>{if(!D)return;const ce=Un(D,G);w.push(ce),$.add(ce);const pe={...D,id:ce},Se=$e[ce],je=Se?.visible??!!pe.visible;Se&&K&&me(Se),$e[ce]={id:ce,config:pe,visible:je,sourceId:`vs-ov-src-${ce}`,layerIds:[],boundsIds:[],handlers:[]}}),Object.keys($e).forEach(D=>{if($.has(D))return;const G=$e[D];G&&K&&me(G),delete $e[D]}),ne.value=w,K&&(ne.value.forEach(D=>{const G=$e[D];G&&Re(G)}),qe())},{immediate:!0,deep:!0}),e.watch(()=>T.value,()=>{K&&(Ue(),ne.value.forEach(u=>{const g=$e[u];g&&Re(g)}),qe())},{deep:!0}),e.watch(()=>O.value,async u=>{if(ke.value=[],!u){K&&(Ue(),ne.value.forEach(g=>{const w=$e[g];w&&Re(w)}),qe());return}try{const g=await fetch(`https://data.gki.com.ua/api-user/atu/${u}`);if(!g?.ok)return;const $=(await g.json())?.geometry?.coordinates;Array.isArray($)&&$.length&&(ke.value=$)}catch(g){console.error("Failed to fetch KATOTTG bounds",g)}finally{if(!K)return;Ue(),ne.value.forEach(g=>{const w=$e[g];w&&Re(w)}),qe()}},{immediate:!0}),e.watch(()=>V.value,u=>{if(!Array.isArray(u)||u.length!==2)return;const g=[Number(u[0]),Number(u[1])];if(pl(A.value,g)||(A.value=[...g],!K))return;const w=K.getCenter?.();w&&pl([w.lng,w.lat],A.value)||K.easeTo({center:[A.value[0],A.value[1]]})},{deep:!0}),e.watch(()=>S.value,u=>{typeof u=="number"&&(W.value=u,K&&K.setZoom(u))}),e.watch(()=>p.value?.center,u=>{u&&Q(u.lng,u.lat,K?.getZoom?.())},{deep:!0}),e.watch(s,u=>{u&&Gt()}),e.watch(d,u=>{if(u>0){s.value||Bt();return}jt||Gt()});const gl=e.computed(()=>h.value.length>0||!!p.value),To=e.computed(()=>{const u=h.value,g=u.length>1;return u.length?u.map(w=>({id:w.id,label:g?w.label:p.value?.type?Fo(p.value.type):w.label,interactive:g})):p.value?.type?[{id:"__feature",label:Fo(p.value.type),interactive:!1}]:[]});function yl(){setTimeout(()=>{K?.resize&&K.resize()},50)}return e.watch(i,yl),e.watch(gl,yl),(u,g)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body",disabled:!i.value},[e.createElementVNode("div",{class:e.normalizeClass(["vs-map-wrapper w-full",{fullscreen:i.value}])},[e.createElementVNode("div",Sp,[e.createElementVNode("div",{ref_key:"mapContainer",ref:c,class:"vs-map-canvas"},null,512),I.value.search||I.value.import||I.value.export?(e.openBlock(),e.createElementBlock("div",$p,[I.value.search?(e.openBlock(),e.createBlock(Mu,{key:0,onGoToCoordinates:Cy})):e.createCommentVNode("",!0),I.value.import||I.value.export?(e.openBlock(),e.createElementBlock("div",Np,[e.createElementVNode("div",Ap,[I.value.import?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"importMenuRef",ref:se,class:"relative"},[e.createElementVNode("button",{type:"button",class:"vs-map-action-btn",onClick:By,disabled:s.value},[g[8]||(g[8]=e.createTextVNode(" Імпорт ",-1)),e.createVNode(e.unref(H.ChevronDown),{class:e.normalizeClass(["h-3.5 w-3.5 shrink-0 transition-transform",{"rotate-180":oe.value}])},null,8,["class"])],8,Mp),oe.value?(e.openBlock(),e.createElementBlock("div",Fp,[I.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:Vy}," З файлу ")):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:Sy}," З координат ")])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),I.value.export?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"vs-map-action-btn",onClick:Fy,disabled:s.value||d.value===0}," Експорт ",8,Dp)):e.createCommentVNode("",!0)]),e.createElementVNode("input",{ref_key:"importRef",ref:Z,type:"file",onChange:My,accept:".json,.geojson",class:"hidden",disabled:s.value},null,40,Tp)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createVNode(e.unref(ge.VsModal),{visible:ye.value,"onUpdate:visible":g[1]||(g[1]=w=>ye.value=w),title:"Імпорт координат полігону",size:"lg",teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(ct,{schema:Le,values:xe.value,"onUpdate:values":g[0]||(g[0]=w=>xe.value=w)},null,8,["values"]),e.createElementVNode("div",Lp,[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:$y}," Скасувати "),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:Ny,disabled:s.value}," Побудувати ",8,Ip)])]),_:1},8,["visible"]),e.createElementVNode("div",Op,[e.createElementVNode("div",Rp,[v.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[I.value.point?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(["vs-btn",{"vs-active":m.value==="marker"}]),title:"Точка",onClick:g[2]||(g[2]=w=>Wn("marker")),disabled:s.value},[e.createVNode(e.unref(H.MapPin),{class:"vs-btn-icon"})],10,Pp)):e.createCommentVNode("",!0),I.value.line?(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(["vs-btn",{"vs-active":m.value==="polyline"}]),title:"Лінія",onClick:g[3]||(g[3]=w=>Wn("polyline")),disabled:s.value},[e.createVNode(Fd,{class:"vs-btn-icon"})],10,zp)):e.createCommentVNode("",!0),I.value.polygon?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":m.value==="polygon"}]),title:"Полігон",onClick:g[4]||(g[4]=w=>Wn("polygon")),disabled:s.value},[e.createVNode(Id,{class:"vs-btn-icon"})],10,jp)):e.createCommentVNode("",!0),I.value.rectangle?(e.openBlock(),e.createElementBlock("button",{key:3,class:e.normalizeClass(["vs-btn",{"vs-active":m.value==="rectangle"}]),title:"Прямокутник",onClick:g[5]||(g[5]=w=>Wn("rectangle")),disabled:s.value},[e.createVNode(zd,{class:"vs-btn-icon"})],10,Up)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),v.value?(e.openBlock(),e.createElementBlock("div",Hp)):e.createCommentVNode("",!0),I.value.ruler?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":e.unref(k).isRulerActive.value}]),title:"Лінійка",onClick:b},[e.createVNode(e.unref(H.Ruler),{class:"vs-btn-icon"})],2)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"vs-btn",onClick:g[6]||(g[6]=w=>i.value=!i.value),title:"На весь екран"},[e.createVNode(e.unref(H.Maximize),{class:"vs-btn-icon"})])])]),I.value.ruler&&e.unref(k).isRulerActive.value?(e.openBlock(),e.createBlock(Ep,{key:1,ref_key:"rulerPanelRefEl",ref:f,onClose:g[7]||(g[7]=w=>e.unref(k).closeRuler()),onTabChange:e.unref(k).onRulerTabChange,onPointsChange:e.unref(k).onRulerPointsChange,onShapeClosedChange:e.unref(k).onRulerShapeClosedChange},null,8,["onTabChange","onPointsChange","onShapeClosedChange"])):e.createCommentVNode("",!0),I.value.ruler&&e.unref(k).isRulerActive.value&&e.unref(k).hasRulerPoints.value?(e.openBlock(),e.createBlock(Bp,{key:2,map:y.value,points:e.unref(k).rulerPoints.value,"is-shape-closed":e.unref(k).rulerShapeClosed.value,"label-mode":e.unref(k).rulerActiveTab.value},null,8,["map","points","is-shape-closed","label-mode"])):e.createCommentVNode("",!0),Ee.value.length?(e.openBlock(),e.createElementBlock("div",{key:3,class:"absolute z-[1500] pointer-events-none",style:e.normalizeStyle(ze.value)},[e.createElementVNode("div",qp,[e.createElementVNode("dl",Kp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Ee.value,w=>(e.openBlock(),e.createElementBlock("div",{key:`${w.key}-${w.value}`,class:"flex justify-between gap-2"},[e.createElementVNode("dt",Wp,e.toDisplayString(w.key),1),e.createElementVNode("dd",Gp,e.toDisplayString(w.value),1)]))),128))])])],4)):e.createCommentVNode("",!0),e.createElementVNode("div",Yp,[e.createVNode(du,{compact:"",basemaps:e.unref(ue),"active-base-key":Ae.value,"tile-overlays":e.unref(Fe),"active-tile-overlay-keys":P.value,"vector-overlays":M.value,"preview-tile":X.value,disabled:s.value,onOnLayerChange:un,onOnOverlayToggle:xt,onOnVectorOverlayToggle:He},null,8,["basemaps","active-base-key","tile-overlays","active-tile-overlay-keys","vector-overlays","preview-tile","disabled"])])]),gl.value?(e.openBlock(),e.createElementBlock("div",Xp,[e.createElementVNode("div",Zp,[e.createElementVNode("div",Jp,[g[9]||(g[9]=e.createElementVNode("span",{class:"vs-map-status__label"},"Тип:",-1)),e.createElementVNode("div",Qp,[To.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(To.value,(w,$)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:w.id},[w.interactive?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:e.normalizeClass(["vs-map-status__chip",{"vs-map-status__chip--active":w.id===e.unref(Ye)}]),onClick:D=>wy(w.id),disabled:s.value},e.toDisplayString(w.label),11,em)):(e.openBlock(),e.createElementBlock("span",tm,e.toDisplayString(w.label),1)),$<To.value.length-1?(e.openBlock(),e.createElementBlock("span",nm,", ")):e.createCommentVNode("",!0)],64))),128)):(e.openBlock(),e.createElementBlock("span",om,"—"))])]),e.createElementVNode("div",rm,[e.createElementVNode("span",lm,[g[10]||(g[10]=e.createElementVNode("span",{class:"vs-map-status__label"},"Центр:",-1)),p.value?(e.openBlock(),e.createElementBlock("span",am,e.toDisplayString(p.value.center.lng.toFixed(5))+", "+e.toDisplayString(p.value.center.lat.toFixed(5)),1)):(e.openBlock(),e.createElementBlock("span",sm,"—"))]),p.value&&p.value.areaKm2!==null?(e.openBlock(),e.createElementBlock("span",im,[g[11]||(g[11]=e.createElementVNode("span",{class:"vs-map-status__label"},"Площа:",-1)),e.createElementVNode("span",cm,e.toDisplayString(p.value.areaKm2.toFixed(1))+" km²",1)])):e.createCommentVNode("",!0),e.createElementVNode("div",dm,[e.createElementVNode("button",{type:"button",class:"vs-status-btn vs-status-btn--zoom",title:"Масштаб до об'єкта",onClick:vy,disabled:s.value},[e.createVNode(e.unref(H.ZoomIn),{class:"vs-status-btn__icon"})],8,um),e.createElementVNode("button",{type:"button",class:"vs-status-btn vs-status-btn--delete",title:"Видалити об'єкт",onClick:_y,disabled:s.value},[e.createVNode(e.unref(H.Trash2),{class:"vs-status-btn__icon"})],8,pm)])])])])):e.createCommentVNode("",!0)],2)],8,["disabled"]))}}),[["__scopeId","data-v-4d649995"]]),bm=["data-focus"],km={class:"flex items-center"},xm={class:"overflow-hidden text-ellipsis whitespace-nowrap rounded-sm text-[#333] text-[85%] px-0.5 py-[3px] pl-1.5 box-border"},wm=["onClick","aria-label"],_m={key:0,class:"absolute text-gray-500 truncate pl-2"},vm={class:"flex-1 min-w-[2px]"},Cm=["placeholder"],Em={class:"flex items-center shrink-0"},Bm=["disabled"],gr=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;et(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"),m=e.computed(()=>n.placeholder||"Add tag…"),p=e.computed(()=>d.value?.length===0&&c.value===""),h=e.computed(()=>!n.disabled&&d.value?.length>0),y=e.computed(()=>n.disabled),f=async()=>{y.value||await e.nextTick(()=>s.value?.focus())},k=Y=>{const L=Y.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="")},b=()=>{const Y=c.value;Y.trim()!==""&&k(Y),c.value=""},C=Y=>{const L=d.value.slice();L.splice(Y,1),r("update:modelValue",L)},x=()=>{r("update:modelValue",[])},_=()=>{y.value||(i.value=!0)},N=()=>{i.value=!1,!y.value&&b()},U=Y=>{const{key:L}=Y;L==="Enter"?(Y.preventDefault(),b()):L==="Backspace"&&c.value===""&&d.value.length>0&&C(d.value.length-1)};return(Y,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":"",y.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),"data-focus":i.value?"true":"false",onClick:f},[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,V)=>(e.openBlock(),e.createElementBlock("div",{key:V,class:"flex min-w-0 bg-[#e6e6e6] rounded-sm m-0.5 box-border"},[e.createElementVNode("div",km,[e.createElementVNode("div",xm,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(S=>C(V),["stop"]),"aria-label":`Remove ${E}`},[e.createVNode(e.unref(H.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,wm)]))),128)),p.value?(e.openBlock(),e.createElementBlock("div",_m,e.toDisplayString(m.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",vm,[y.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:_,onBlur:N,onKeydown:U,placeholder:d.value&&d.value.length?"":void 0},null,40,Cm)),[[e.vModelText,c.value]])])],512),e.createElementVNode("div",Em,[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:y.value,onClick:e.withModifiers(x,["stop"])},[e.createVNode(e.unref(H.X),{class:"h-4 w-4"})],8,Bm)):e.createCommentVNode("",!0)])],10,bm)],2)],512))}}),Vm={class:"relative flex gap-1 bg-white w-full"},Sm=["disabled","placeholder"],yr=ve(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",Vm,[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,Sm),[[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"]]),$m={class:"relative flex gap-1 bg-white w-full"},Nm=["disabled","placeholder"],Am=["disabled"],Mm={key:0},Fm={key:1},br=ve(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)),m=encodeURIComponent(String(t.code));return`/api/code-gen/${d}/${m}`},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,m)=>(e.openBlock(),e.createElementBlock("div",$m,[e.withDirectives(e.createElementVNode("input",{disabled:d.disabled,placeholder:d.placeholder,"onUpdate:modelValue":m[0]||(m[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,Nm),[[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",Fm,"...")):(e.openBlock(),e.createElementBlock("span",Mm,"Gen"))],8,Am)]))}}),[["__scopeId","data-v-6ee5237d"]]),Dm={class:"w-full"},Tm={ref:"sortableContainer",class:"flex flex-col gap-1"},Lm=["onDragstart","onDrop"],Im={class:"cursor-move",type:"button"},Om={class:"w-1/3"},Rm={class:"w-2/3"},Pm=["onClick"],zm={key:0,class:"text-[14px] text-gray-700"},jm={class:"mt-2 w-full flex items-center"},Um=["disabled"],kr=ve(e.defineComponent({__name:"vs-input-key-value",props:{parent:{},ignore:{},addButtonText:{},modelValue:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=b=>`${b}-${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 b=l.parent&&r?.value?.[l.parent]||l.modelValue||{};c.value=Object.entries(b).filter(([C])=>!i.includes(C)).map(([C,x])=>({id:n("key-value-"),key:C,value:x}))})();function p(b){d.value=b}function h(b){if(d.value===null||d.value===b)return;const C=c.value.splice(d.value,1)[0];c.value.splice(b,0,C),d.value=null}const y=e.computed(()=>c.value.some(b=>b.key&&!b.value||!b.key&&b.value)),f=()=>{c.value.push({id:n("key-value-"),key:"",value:""})},k=b=>{c.value=c.value.filter(C=>C.id!==b)};return e.watch(c,b=>{const C={};b.forEach(_=>{_.key&&_.value!==void 0&&(C[_.key]=_.value)});const x={};i.length&&i.forEach(_=>{x[_]=l.parent?r?.value?.[l.parent]?.[_]:void 0}),r?.value&&l.parent&&(r.value[l.parent]={...x,...C}),a("update:modelValue",C)},{deep:!0}),(b,C)=>(e.openBlock(),e.createElementBlock("div",Dm,[e.createElementVNode("div",Tm,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,(x,_)=>(e.openBlock(),e.createElementBlock("div",{key:x.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":d.value===_}]),draggable:"true",onDragstart:N=>p(_),onDragover:C[0]||(C[0]=e.withModifiers(()=>{},["prevent"])),onDrop:N=>h(_)},[e.createElementVNode("button",Im,[e.createVNode(e.unref(H.GripVertical),{class:"h-4 w-4"})]),e.createElementVNode("div",Om,[e.createVNode(Ht,{modelValue:x.key,"onUpdate:modelValue":N=>x.key=N,placeholder:"Ключ"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",Rm,[e.createVNode(Ht,{modelValue:x.value,"onUpdate:modelValue":N=>x.value=N,placeholder:"Значення"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("button",{onClick:N=>k(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,Pm)],42,Lm))),128))],512),c.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",zm," Дані для відображення відсутні ")),e.createElementVNode("div",jm,[e.createElementVNode("button",{type:"button",onClick:f,disabled:y.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,Um)])]))}}),[["__scopeId","data-v-d8c3f9d6"]]),Hm={class:"w-full"},qm={ref:"sortableContainer",class:"flex flex-col gap-1"},Km=["onDragstart","onDrop"],Wm=["disabled"],Gm={class:"flex-1"},Ym=["onClick","disabled"],Xm={key:0,class:"text-[14px] text-gray-700"},Zm={class:"mt-2 w-full flex items-center"},Jm=["disabled"],xr=ve(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=b=>`${b}-${Math.random().toString(36).substring(2,15)}`,m=b=>{const C=b??n.value??[];r.value=C.map((x,_)=>({id:r.value[_]?.id??d("text-array"),value:x??""}))};m(),e.watch(()=>n.value,b=>{if(c){c=!1;return}m(b||[])},{deep:!0}),e.watch(r,b=>{c=!0,n.value=b.map(C=>C.value).filter(C=>C!=null&&C!=="")},{deep:!0});const p=e.computed(()=>a.value||r.value.some(b=>!b.value));function h(){p.value||(r.value=[...r.value,{id:d("text-array"),value:""}])}function y(b){a.value||(r.value=r.value.filter(C=>C.id!==b))}function f(b){a.value||(l.value=b)}function k(b){if(a.value||l.value===null||l.value===b)return;const C=[...r.value],[x]=C.splice(l.value,1);C.splice(b,0,x),r.value=C,l.value=null}return(b,C)=>(e.openBlock(),e.createElementBlock("div",Hm,[e.createElementVNode("div",qm,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(x,_)=>(e.openBlock(),e.createElementBlock("div",{key:x.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":l.value===_}]),draggable:"true",onDragstart:N=>f(_),onDragover:C[0]||(C[0]=e.withModifiers(()=>{},["prevent"])),onDrop:N=>k(_)},[e.createElementVNode("button",{class:"cursor-move",type:"button",disabled:a.value},[e.createVNode(e.unref(H.GripVertical),{class:"h-4 w-4"})],8,Wm),e.createElementVNode("div",Gm,[b.inputType==="text"?(e.openBlock(),e.createBlock(Ht,{key:0,modelValue:x.value,"onUpdate:modelValue":N=>x.value=N,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),b.inputType==="tel"?(e.openBlock(),e.createBlock(eo,{key:1,modelValue:x.value,"onUpdate:modelValue":N=>x.value=N,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),b.inputType==="email"?(e.openBlock(),e.createBlock(Qn,{key:2,modelValue:x.value,"onUpdate:modelValue":N=>x.value=N,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),b.inputType==="mask"?(e.openBlock(),e.createBlock(hn,{key:3,modelValue:x.value,"onUpdate:modelValue":N=>x.value=N,mask:b.mask,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","mask","disabled","placeholder"])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:N=>y(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,Ym)],42,Km))),128))],512),r.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Xm," Дані для відображення відсутні ")),e.createElementVNode("div",Zm,[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,Jm)])]))}}),[["__scopeId","data-v-2c229b1f"]]),Qm={class:"flex items-center gap-2 w-full"},ef=["disabled"],tf=["disabled"],wr=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}=et(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",Qm,[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,ef),[[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,tf),[[e.vModelText,a.value]])]))}}),nf={class:"flex items-center gap-2 w-full"},of=["min","max","step","disabled"],rf=["value","min","max","step","disabled"],_r=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}=et(n.style),l=t,a=m=>{const p=Number(m),h=Number(n.min),y=Number(n.max);return Number.isNaN(p)?h:Math.min(y,Math.max(h,p))},s=e.computed({get:()=>a(n.modelValue??n.min),set:m=>l("update:modelValue",a(m))}),i=m=>{const p=m.target,h=a(p.value);p.value=String(h),l("update:modelValue",h)},c=m=>{Number(n.min)>=0&&m.key==="-"&&m.preventDefault()},d=e.computed(()=>!!n.disabled);return(m,p)=>(e.openBlock(),e.createElementBlock("div",nf,[e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":p[0]||(p[0]=h=>s.value=h),min:m.min,max:m.max,step:m.step,disabled:d.value,ref:"range",class:e.normalizeClass(["w-full cursor-pointer accent-blue-500",[m.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")])},null,10,of),[[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:m.min,max:m.max,step:m.step,onInput:i,onKeydown:c,disabled:d.value},null,40,rf)]))}}),lf=["placeholder","disabled","name"],af=["type","value","onInput","placeholder","disabled"],sf=["onClick"],vr=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}=et(t.style),a=e.useModel(o,"modelValue"),s=e.computed(()=>!!t.disabled),i=e.computed(()=>t.placeholder??"");e.watchEffect(()=>{const k=a.value?.length??0;k<n.value&&(a.value=[...a.value??[],...Array(n.value-k)])});const c=e.ref({}),d=e.ref({});function m(k,b){k&&(c.value[b]=k)}async function p(k,b){if(!k||t.inputType!=="mask")return;const{default:C}=await Promise.resolve().then(()=>Pn);d.value[b]&&d.value[b].destroy(),d.value[b]=C(k,{mask:t.mask||"",definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},lazy:!1}),d.value[b].on("accept",()=>{const x=[...a.value||[]];x[b]=t.unmask?d.value[b].unmaskedValue:d.value[b].value,a.value=x}),d.value[b].on("complete",()=>{const x=[...a.value||[]];x[b]=t.unmask?d.value[b].unmaskedValue:d.value[b].value,a.value=x}),a.value?.[b]&&(d.value[b].value=a.value[b])}function h(k,b){if(s.value)return;const C=k.target.value??null,x=[...a.value];x[b]=t.inputType==="text"?C:Number(C),a.value=x}function y(){n.value+=1;const k=t.inputType==="text"||t.inputType==="mask"?null:0;a.value=[...a.value,k],t.inputType==="mask"&&setTimeout(()=>{const b=n.value-1;c.value[b]&&p(c.value[b],b)},0)}function f(k){if(n.value>1){d.value[k]&&(d.value[k].destroy(),delete d.value[k]),n.value-=1,a.value=a.value.filter((C,x)=>x!==k);const b={};Object.keys(d.value).forEach(C=>{const x=parseInt(C,10);x>k?b[x-1]=d.value[x]:x<k&&(b[x]=d.value[x])}),d.value=b}}return e.onMounted(()=>{if(t.inputType==="mask")for(let k=0;k<n.value;k+=1)c.value[k]&&p(c.value[k],k)}),e.onBeforeUnmount(()=>{Object.values(d.value).forEach(k=>{k&&k.destroy()})}),e.watch(()=>t.mask,k=>{t.inputType==="mask"&&Object.values(d.value).forEach(b=>{b&&b.updateOptions({mask:k,definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/}})})}),e.watch(a,k=>{t.inputType==="mask"&&k&&k.forEach((b,C)=>{d.value[C]&&d.value[C].value!==b&&(d.value[C].value=b||"")})},{deep:!0}),(k,b)=>(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"},[k.inputType==="mask"?(e.openBlock(),e.createElementBlock("input",{key:0,type:"text",ref_for:!0,ref:x=>m(x,C-1),placeholder:k.placeholder,disabled:k.disabled,name:`${k.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":k.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,lf)):(e.openBlock(),e.createElementBlock("input",{key:1,type:k.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":k.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,af)),!k.disabled&&C===n.value&&k.isAdded?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:e.withModifiers(y,["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),!k.disabled&&n.value>1&&k.isAdded?(e.openBlock(),e.createElementBlock("button",{key:3,type:"button",onClick:e.withModifiers(x=>f(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,sf)):e.createCommentVNode("",!0)]))),128))],2))}}),cf={class:"flex gap-1 w-full"},df=["aria-expanded","data-focus"],uf=["placeholder","disabled","readonly"],pf={class:"max-h-full"},mf=["onClick","disabled"],ff={key:0,class:"px-3 py-2 text-sm text-stone-500"},hf=["disabled"],gf={class:"flex flex-col gap-1"},yf=["onDragstart","onDrop"],bf=["disabled"],kf=["title"],xf=["disabled","onClick","aria-label"],wf={key:0,class:"text-xs text-stone-500"},Fn=ve(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}),m=e.ref(""),p=e.ref(!1),h=e.ref(null),y=e.ref(null),f=e.ref(null),k=e.ref(null),b=e.ref(null),C=e.ref({});let x=!1,_=!1;const N=e.inject("values"),U=e.computed(()=>!!n.disabled),Y=e.computed(()=>n.placeholder??"Оберіть значення"),L=e.computed(()=>n.search!==!1),E=e.computed(()=>{const v=n.parent??n.parentValue;return v?String(v):""}),V=e.computed(()=>E.value?N?.value?.[E.value]??null:null),S=v=>v==null?"__null__":String(v),O=v=>{if(!v)return"";const M=v.label??v.text??v.name??v.ua??v.en;return M?String(M):v.id!==void 0&&v.id!==null?String(v.id):""},B=v=>{const M=S(v);return c.value[M]||(c.value[M]=`array-select-${M}-${Math.random().toString(36).slice(2,8)}`),c.value[M]},T=e.computed(()=>new Set(a.value.map(v=>S(v.id)))),A=e.computed(()=>{const v=T.value;let M=[...s.value];if(!n.data&&m.value.trim()){const R=m.value.toLowerCase();M=M.filter(ie=>O(ie).toLowerCase().includes(R))}return M.filter(R=>!v.has(S(R.id)))}),W=()=>{if(!n.data)return"";const v=n.prefix??"api",M=n.api??`/${v}/suggest/${n.data}`;return`${n.host??""}${M}`},X=()=>{a.value.length&&(x=!0,a.value=a.value.map(v=>({...v,text:i.value[S(v.id)]??v.text})))},ee=v=>{const M=S(v.id),R=O(v);R&&(i.value[M]=R)},q=v=>{s.value=v?[...v]:[],v?.forEach(ee),X()},Q=v=>{if(!v.length)return;const M=new Map(s.value.map(R=>[S(R.id),R]));v.forEach(R=>{const ie=S(R.id);M.set(ie,R),ee(R)}),s.value=Array.from(M.values()),X()},F=async(v="")=>{if(!n.data)return[];const M=W();if(!M)return[];const R=new URLSearchParams;R.set("json","1"),v&&R.set("key",v),n.start===1&&R.set("start","1"),V.value!==null&&V.value!==void 0&&V.value!==""&&R.set("parent",String(V.value));try{return(await(await fetch(`${M}?${R.toString()}`)).json())?.data??[]}catch{return[]}},j=async v=>{if(!n.data||!v.length)return[];const M=W();if(!M)return[];const R=Array.from(new Set(v.map(we=>S(we)))),ie=new URLSearchParams;ie.set("json","1"),ie.set("val",R.join(",")),n.start===1&&ie.set("start","1"),V.value!==null&&V.value!==void 0&&V.value!==""&&ie.set("parent",String(V.value));try{const De=(await(await fetch(`${M}?${ie.toString()}`)).json())?.data??[];return Q(De),De}catch{return[]}},te=async v=>{if(v==null||v==="")return null;const M=S(v),R=s.value.find(we=>S(we.id)===M);if(R)return R;const[ie]=await j([v]);return ie??null},Z=async(v="",{force:M=!1}={})=>{if(!n.data)return;const R=V.value??null;if(!M&&d.value.keyword===v&&d.value.parent===R&&s.value.length>0)return;d.value={keyword:v,parent:R};const we=await F(v);q(we)},ke=((v,M=200)=>{let R;return(...ie)=>{R&&clearTimeout(R),R=setTimeout(()=>v(...ie),M)}})(async v=>{n.data&&await Z(v,{force:!0})},250),oe=e.ref(null),ye=()=>{if(!f.value)return;const v=f.value.getBoundingClientRect(),M=window.innerHeight??document.documentElement.clientHeight,R=window.innerWidth??document.documentElement.clientWidth,ie=8,we=8,Pe=n.maxHeight??280,De=M-v.bottom-we-ie,Ge=v.top-we-ie,K=De>=Ge,de=Math.max(R-ie*2,0);let{width:Ie}=v;de>0&&Ie>de&&(Ie=de);let{left:Qe}=v;Qe+Ie+ie>R&&(Qe=R-Ie-ie),Qe=Math.max(Qe,ie);const dt=Math.min(Pe,Math.max(K?De:Ge,50));C.value={position:"fixed",left:`${Qe}px`,width:`${Ie}px`,maxHeight:`${dt}px`,transform:K?"none":"translateY(-100%)",top:K?`${v.bottom+we}px`:`${v.top-we}px`}},Ve=async(v="click")=>{U.value||p.value||(oe.value=v,await Z(m.value.trim()),p.value=!0,await e.nextTick(),ye(),b.value?.focus())},xe=()=>{p.value=!1,oe.value=null,e.nextTick(()=>{b.value?.blur()})},Le=async v=>{if(v.stopPropagation(),!U.value){if(p.value){if(oe.value==="focus"){oe.value=null;return}xe();return}await Ve("click")}},Ne=v=>{v.key==="Escape"&&xe()},Oe=v=>{if(!p.value)return;const M=v.target;k.value?.contains(M)||xe()},$e=v=>{const M=v.target;y.value?.contains(M)||k.value?.contains(M)||xe()},ne=v=>{if(v.key==="Escape"){v.preventDefault(),xe();return}if(v.key==="Enter"){v.preventDefault();const M=A.value[0];M&&le(M)}},le=v=>{if(!v)return;const M=S(v.id);if(T.value.has(M))return;ee(v);const R={id:v.id,text:O(v)||String(v.id??""),key:B(v.id)};a.value=[...a.value,R],be(v),m.value="",e.nextTick(()=>{b.value?.focus()})},be=v=>{const M=a.value.map(R=>R.id);r("value-selected",{name:n.name,value:M,option:v})},Ee=v=>{if(U.value)return;const M=a.value.filter(R=>S(R.id)!==S(v));a.value=M},{isOpenAdd:ze,addData:We,addSchema:I,addForm:J,addTitle:ae,addOption:ue,onAddValue:he}=tr({props:n,fetchOptionByValue:te,optionsList:s,selectedOption:e.ref(null),modelValue:l,onCreated:async(v,M)=>{const R=v??await te(M),ie=R?.id??M;T.value.has(S(ie))||(R&&ee(R),a.value=[...a.value,{id:ie,text:R?O(R):String(ie),key:B(ie)}],be(R??null))}}),Ae=v=>{U.value||(h.value=v)},Te=v=>{if(U.value||h.value===null||h.value===v)return;const M=[...a.value],[R]=M.splice(h.value,1);M.splice(v,0,R),h.value=null,a.value=M},Fe=async()=>{const M=(Array.isArray(l.value)?[...l.value]:[]).filter(ie=>ie!=null);if(n.data&&M.length){const ie=M.filter(we=>!i.value[S(we)]);ie.length&&await j(ie)}const R=M.map(ie=>({id:ie,text:i.value[S(ie)]??String(ie),key:B(ie)}));x=!0,a.value=R};e.watch(a,v=>{if(x){x=!1;return}const M=v.map(R=>R.id);_=!0,l.value=M,r("change",M)},{deep:!0}),e.watch(l,()=>{if(_){_=!1;return}Fe()},{deep:!0}),e.watch(m,v=>{!n.data||!p.value||ke(v.trim())}),e.watch(U,v=>{v&&xe()}),e.watch(()=>n.options,async v=>{n.data||(q(v??[]),await Fe())},{immediate:!0,deep:!0}),e.watch(()=>n.data,async v=>{v&&(await Z(m.value.trim()),await Fe())},{immediate:!0});const P=e.ref(!1);return e.watch(V,async()=>{if(n.data){if(!P.value){P.value=!0;return}a.value=[],await Z(m.value.trim()),await Fe()}}),e.onMounted(async()=>{document.addEventListener("click",$e,!0),window.addEventListener("keydown",Ne),window.addEventListener("scroll",Oe,!0),await Fe()}),e.onUnmounted(()=>{document.removeEventListener("click",$e,!0),window.removeEventListener("keydown",Ne),window.removeEventListener("scroll",Oe,!0)}),(v,M)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(ge.VsModal),{visible:e.unref(ze),"onUpdate:visible":M[1]||(M[1]=R=>e.isRef(ze)?ze.value=R:null),class:"z-[1000]",title:e.unref(ae),buttonText:"Додати",onDone:e.unref(ue)},{default:e.withCtx(()=>[e.createVNode(ct,{schema:e.unref(I),modelValue:e.unref(We),"onUpdate:modelValue":M[0]||(M[0]=R=>e.isRef(We)?We.value=R: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:y},[e.createElementVNode("div",cf,[e.createElementVNode("div",{class:"relative flex-1",onClick:M[4]||(M[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{ref_key:"triggerRef",ref:f,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)]":"",U.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:Le},[e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:b,"onUpdate:modelValue":M[2]||(M[2]=R=>m.value=R),placeholder:Y.value,disabled:U.value,readonly:!L.value,onFocus:M[3]||(M[3]=()=>Ve("focus")),onKeydown:ne,class:"flex-1 bg-transparent border-0 outline-none px-0 py-1 text-sm text-stone-900 placeholder:text-stone-400"},null,40,uf),[[e.vModelText,m.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,df),(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:k,class:"fixed z-[3000] rounded-md border border-stone-200 bg-white shadow-lg overflow-auto",style:e.normalizeStyle(C.value)},[e.createElementVNode("div",pf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(A.value,R=>(e.openBlock(),e.createElementBlock("button",{key:S(R.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(ie=>le(R),["stop"]),disabled:U.value},e.toDisplayString(O(R)),9,mf))),128)),A.value.length===0?(e.openBlock(),e.createElementBlock("p",ff," Немає варіантів ")):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))]),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:M[5]||(M[5]=(...R)=>e.unref(he)&&e.unref(he)(...R)),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:U.value,type:"button"},[e.createVNode(e.unref(H.Plus),{class:"h-4 w-4"}),M[8]||(M[8]=e.createElementVNode("span",null,"Додати",-1))],8,hf)):e.createCommentVNode("",!0)]),e.createElementVNode("div",gf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(R,ie)=>(e.openBlock(),e.createElementBlock("div",{key:R.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===ie}]),draggable:"true",onDragstart:we=>Ae(ie),onDragover:M[6]||(M[6]=e.withModifiers(()=>{},["prevent"])),onDrop:we=>Te(ie),onDragend:M[7]||(M[7]=we=>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:U.value,"aria-label":"Перетягнути"},[e.createVNode(e.unref(H.GripVertical),{class:"h-4 w-4"})],8,bf),e.createElementVNode("div",{class:"flex-1 text-sm text-stone-900",title:R.text},e.toDisplayString(R.text),9,kf),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:U.value,onClick:e.withModifiers(we=>Ee(R.id),["stop"]),"aria-label":`Видалити ${R.text}`},[e.createVNode(e.unref(H.X),{class:"h-4 w-4"})],8,xf)],42,yf))),128)),a.value.length===0?(e.openBlock(),e.createElementBlock("p",wf,"Немає вибраних значень")):e.createCommentVNode("",!0)])],512)],64))}}),[["__scopeId","data-v-da4b4da7"]]),_f={class:"flex items-center gap-2 w-full"},vf={class:"relative flex-1"},Cf=["placeholder","disabled","onKeydown"],Ef=["disabled"],Bf={key:0,class:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/50"},Vf={class:"bg-white text-gray-900 rounded-lg shadow-lg w-[480px] max-h-[80vh] overflow-y-auto"},Sf={class:"p-3 border-b font-semibold text-gray-900 flex justify-between items-center"},$f=["onClick"],Nf={key:0,class:"p-4 text-sm text-gray-500"},Cr=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}=et(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([]),m=e.ref(!1),p=e.ref(null);e.watch(m,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??""),y=e.computed(()=>!!r.disabled),f=L=>{if(!L)return null;if(Array.isArray(L))return L;if(typeof L=="string"){const E=L.split(",").map(V=>V.trim()).filter(Boolean);return E.length!==4?null:E.map(Number)}return null},k=e.computed(()=>{const L=f(r.bbox);if(!L||L.length!==4)return null;const E=L.map(Number);return E.some(V=>Number.isNaN(V))?null:E}),b=e.computed(()=>{const L=k.value;if(!L)return"";const[E,V,S,O]=L;return`${E},${Math.max(V,O)},${S},${Math.min(V,O)}`});e.computed(()=>b.value?"1":"0");const C=e.inject("values");function x(){!y.value&&i.value.trim()&&_()}async function _(){const L=(i.value||"").trim();if(!L)return;let E=L;if(r.includes?.length&&C?.value){const S=r.includes.map(O=>C.value?.[O]).filter(Boolean);S.length&&(E=`${S.join(", ")}, ${L}`)}const V=Y(E);if(V){c.value=!0;try{const O=await(await fetch(V)).json();d.value=Array.isArray(O)?O:[],m.value=!0}catch(S){console.error("Address search error:",S)}finally{c.value=!1}}}function N(){m.value=!m.value}function U(L){if(!L)return;m.value=!1;const E=parseFloat(L.lat),S={type:"Point",coordinates:[parseFloat(L.lon),E]};r.geom&&C?.value&&(C.value[r.geom]=S),l("update:geom",S)}function Y(L){if(!r.api)return"";const E={value:encodeURIComponent(L),bbox:k.value?k.value.join(","):""};return r.api.replace(n,(V,S)=>E[S.trim()]??"")}return(L,E)=>(e.openBlock(),e.createElementBlock("div",_f,[e.createElementVNode("div",vf,[e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":E[0]||(E[0]=V=>i.value=V),placeholder:h.value,disabled:y.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,Cf),[[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:N,title:"Show search results"},[e.createVNode(e.unref(H.Info),{class:"h-4 w-4"})])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:_,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,Ef),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[m.value?(e.openBlock(),e.createElementBlock("div",Bf,[e.createElementVNode("div",Vf,[e.createElementVNode("div",Sf,[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]=V=>m.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,(V,S)=>(e.openBlock(),e.createElementBlock("li",{key:S,onClick:O=>U(V),class:"px-3 py-2 cursor-pointer hover:bg-gray-100 border-b text-sm"},e.toDisplayString(V.display_name),9,$f))),128))]),d.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Nf," Не знайдено результатів "))])])):e.createCommentVNode("",!0)]))]))}}),Af={class:"vs-datalist space-y-3"},Mf={class:"space-y-3"},Ff=["onClick","disabled"],Df={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},Tf=["disabled"],Lf=ve(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(b=>({...b,disabled:t.disabled||b.disabled}))??[]),s=e.computed(()=>a.value.map(b=>k(b))),i=e.computed(()=>a.value.reduce((C,x)=>{const _=Number(x?.col??12);return C+(Number.isFinite(_)&&_>0?_:12)},0)>12),c=e.computed(()=>t.disabled?!1:t.maxItems?r.value.length<t.maxItems:!0),d=e.computed(()=>t.disabled||r.value.length<=(t.minItems||0));e.watch(()=>r.value.length,()=>{m(),p()},{immediate:!0}),e.watch(()=>t.schema,p,{immediate:!0,deep:!0});function m(){const b=r.value.length;l.value.length<b?l.value=[...l.value,...Array.from({length:b-l.value.length},()=>uo())]:l.value.length>b&&l.value.splice(b)}function p(){if(!t.minItems||r.value.length>=t.minItems)return;const b=t.minItems-r.value.length,C=Array.from({length:b},h);n.value=[...r.value,...C]}function h(){const b={};return a.value.forEach(C=>{b[C.name]=C?.default??null}),b}function y(){c.value&&(n.value=[...r.value,h()],m())}function f(b){d.value||(n.value=r.value.filter((C,x)=>x!==b),m(),p())}function k(b){return{...b}}return(b,C)=>(e.openBlock(),e.createElementBlock("div",Af,[e.createElementVNode("div",Mf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(x,_)=>(e.openBlock(),e.createElementBlock("div",{key:l.value[_],class:e.normalizeClass(["flex items-center gap-3 rounded-lg transition-colors",{"border border-gray-300 p-2":i.value}])},[e.createVNode(ct,{schema:s.value,layout:"inline",navigation:!1,values:r.value[_],"onUpdate:values":N=>r.value[_]=N,"form-id":l.value[_]},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:N=>f(_),disabled:d.value},[e.createVNode(e.unref(H.Trash2),{class:"h-4 w-4"})],8,Ff)],2))),128)),r.value.length===0?(e.openBlock(),e.createElementBlock("div",Df,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:y,disabled:!c.value},[e.createVNode(e.unref(H.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,Tf)]))}}),[["__scopeId","data-v-d0065868"]]),If={class:"vs-dataform space-y-4"},Of=["draggable","onDragstart","onDragover","onDragenter","onDrop"],Rf={class:"flex items-center gap-2"},Pf=["onClick"],zf={class:"text-sm font-medium text-gray-700"},jf={class:"flex items-center gap-2"},Uf=["title","onClick","disabled"],Hf=["title","onClick","disabled"],qf={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},Kf=["disabled"],Wf=ve(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"),m=e.computed(()=>t.emptyLabel??"Ще немає груп"),p=e.computed(()=>t.schema?.map(Z=>({...Z,disabled:t.disabled||Z.disabled}))??[]),h=e.computed(()=>p.value.map(Z=>V(Z))),y=e.computed(()=>t.view==="accordion"),f=e.computed(()=>!!(t.collapsible||y.value)),k=e.computed(()=>t.draggable!==!1),b=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(),_(),N()},{immediate:!0}),e.watch(()=>t.schema,N,{immediate:!0,deep:!0}),e.watch(()=>t.view,()=>{_()},{immediate:!0});function x(){const Z=n.value.length;r.value.length<Z?r.value=[...r.value,...Array.from({length:Z-r.value.length},()=>uo())]:r.value.length>Z&&r.value.splice(Z)}function _(){const Z=n.value.length;y.value?Z===0?a.value=-1:a.value>=Z?a.value=Z-1:a.value<0&&(a.value=0):l.value.length<Z?l.value=[...l.value,...Array.from({length:Z-l.value.length},()=>!1)]:l.value.length>Z&&l.value.splice(Z)}function N(){if(!t.minGroups||n.value.length>=t.minGroups)return;const Z=t.minGroups-n.value.length,se=Array.from({length:Z},U);n.value=[...n.value,...se],_()}function U(){const Z={};return p.value.forEach(se=>{Z[se.name]=se?.default??null}),Z}function Y(){b.value&&(n.value=[...n.value,U()],x(),_())}function L(Z){C.value||(n.value=n.value.filter((se,ke)=>ke!==Z),x(),y.value?a.value>=n.value.length&&(a.value=n.value.length-1):l.value.splice(Z,1),N())}function E(Z){if(t.disabled)return;const se=JSON.parse(JSON.stringify(n.value[Z]??{}));n.value=[...n.value.slice(0,Z+1),se,...n.value.slice(Z+1)],x(),y.value?a.value>Z&&(a.value+=1):l.value.splice(Z+1,0,l.value[Z]??!1)}function V(Z){return{...Z}}function S(Z){return y.value?a.value===-1&&Z===0?!1:a.value!==Z:!!l.value[Z]}function O(Z){if(f.value){if(y.value){a.value=Z;return}l.value[Z]=!l.value[Z]}}function B(Z,se){if(!k.value||t.disabled){se.preventDefault();return}s.value=Z,i.value=Z,c.value={groups:JSON.parse(JSON.stringify(n.value)),keys:[...r.value],states:[...l.value]},se.dataTransfer?.setData("text/plain",String(Z)),se.dataTransfer?.setDragImage?.(se.currentTarget,0,0)}function T(Z,se){!k.value||t.disabled||s.value!==null&&Q(Z,se)}function A(Z,se){Q(Z,se)}function W(Z){!k.value||t.disabled||te()}function X(){c.value&&q(),s.value=null,i.value=null,c.value=null}function ee(Z,se){const ke=[...n.value],[oe]=ke.splice(Z,1);ke.splice(se,0,oe),n.value=ke;const ye=[...r.value],[Ve]=ye.splice(Z,1);if(ye.splice(se,0,Ve),r.value=ye,y.value)a.value===Z&&(a.value=se);else{const xe=[...l.value],[Le]=xe.splice(Z,1);xe.splice(se,0,Le),l.value=xe}}function q(){c.value&&(n.value=c.value.groups,r.value=c.value.keys,l.value=c.value.states,c.value=null,i.value=null)}function Q(Z,se){if(s.value===null)return;const ke=F(Z,se);i.value=ke,j(ke)}function F(Z,se){if(!se?.currentTarget)return Z;const ke=se.currentTarget.getBoundingClientRect(),ye=se.clientY-ke.top>ke.height/2?Z+1:Z;return Math.max(0,Math.min(ye,n.value.length))}function j(Z){const se=s.value;if(se===null)return;let ke=Z;if(ke>n.value.length&&(ke=n.value.length),ke===se||ke===se+1)return;const oe=ke>se?ke-1:ke;ee(se,oe),s.value=oe,i.value=ke>se?oe+1:oe}function te(){c.value=null,s.value=null,i.value=null}return(Z,se)=>(e.openBlock(),e.createElementBlock("div",If,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(ke,oe)=>(e.openBlock(),e.createElementBlock("div",{key:r.value[oe],class:e.normalizeClass(["relative border border-gray-200 rounded-lg bg-white transition vs-dataform__group",[t.view==="accordion"?"overflow-hidden":S(oe)?"pt-6 px-6":"p-6"]]),draggable:k.value&&!t.disabled,onDragstart:ye=>B(oe,ye),onDragend:X,onDragover:e.withModifiers(ye=>T(oe,ye),["prevent"]),onDragenter:e.withModifiers(ye=>A(oe,ye),["prevent"]),onDrop:e.withModifiers(ye=>W(),["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"&&!S(oe)?"rounded-t-lg":"rounded-lg"]])},[e.createElementVNode("div",Rf,[k.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),f.value?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"rounded-full p-1 text-gray-500 transition hover:bg-gray-100",onClick:ye=>O(oe)},[e.createVNode(e.unref(H.ChevronDown),{class:e.normalizeClass(["h-4 w-4 transition",S(oe)?"-rotate-90":"rotate-0"])},null,8,["class"])],8,Pf)):e.createCommentVNode("",!0),e.createElementVNode("div",zf,e.toDisplayString(`${d.value} (${oe+1})`),1)]),e.createElementVNode("div",jf,[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:ye=>E(oe),disabled:t.disabled,draggable:"false"},[e.createVNode(e.unref(H.Copy),{class:"h-4 w-4"})],8,Uf),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:ye=>L(oe),disabled:C.value,draggable:"false"},[e.createVNode(e.unref(H.Trash2),{class:"h-4 w-4"})],8,Hf)])],2),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(t.view==="accordion"?"p-6":"pt-6")},[e.createVNode(ct,{class:"vs-dataform__form",schema:h.value,layout:"inline",navigation:!1,values:n.value[oe],"onUpdate:values":ye=>n.value[oe]=ye,"form-id":r.value[oe],disabled:t.disabled},null,8,["schema","values","onUpdate:values","form-id","disabled"])],2),[[e.vShow,!S(oe)]])],42,Of))),128)),n.value.length===0?(e.openBlock(),e.createElementBlock("div",qf,e.toDisplayString(m.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:Y,disabled:!b.value},[e.createVNode(e.unref(H.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,Kf)]))}}),[["__scopeId","data-v-cfbcfed8"]]),Dn="__vs_form_monaco_loader__",zt="__vs_form_monaco_script_loader__",Tn="__vs_form_monaco_editor_loader__",po=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 f=window;if(f.monaco?.editor?.create)return i=f.monaco,Promise.resolve(i);if(f[Dn])return f[Dn];const b=(async()=>{const C=N=>{if(Array.from(document.styleSheets||[]).some(L=>L?.href?.includes(N)))return;const Y=document.createElement("link");Y.rel="stylesheet",Y.href=N,document.head.appendChild(Y)},x=N=>{if(f[zt]?.[N])return f[zt][N];f[zt]||={};const U=Array.from(document.scripts).find(Y=>Y.src===N);return U?(f[zt][N]=new Promise((Y,L)=>{const E=U.readyState;if(U.dataset.loaded==="true"||E==="loaded"||E==="complete"){Y();return}U.addEventListener("load",()=>{U.dataset.loaded="true",Y()},{once:!0}),U.addEventListener("error",V=>L(V),{once:!0})}),f[zt][N]):(f[zt][N]=new Promise((Y,L)=>{const E=document.createElement("script");E.src=N,E.async=!0,E.onload=()=>{E.dataset.loaded="true",Y()},E.onerror=V=>L(V),document.body.appendChild(E)}),f[zt][N])},_="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs";return C(`${_}/editor/editor.main.min.css`),await x(`${_}/loader.min.js`),f[Tn]||(f[Tn]=new Promise((N,U)=>{window.require.config({paths:{vs:_}}),window.require(["vs/editor/editor.main"],()=>{i=window.monaco,f.monaco=i,N(i)},Y=>U(Y))}).catch(N=>{throw delete f[Tn],N})),f[Tn]})().catch(C=>{throw delete f[Dn],C});return f[Dn]=b,b},m=()=>{!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,y=()=>i;return e.watch(()=>r.value,f=>{if(!s)return;const k=s.getValue();f!==k&&(c=!0,s.setValue(f||""),c=!1)}),e.watch(()=>n.syntax,f=>{!s||!i||i.editor.setModelLanguage(s.getModel(),f||"xml")}),e.watch(()=>n.theme,f=>{i&&i.editor.setTheme(f||"vs-light")}),e.watch(()=>n.disabled,f=>{s&&s.updateOptions({readOnly:!!f})}),e.watch(()=>n.minimap,f=>{s&&s.updateOptions({minimap:{enabled:!!f}})}),e.onMounted(async()=>{try{const f=await d();if(!f||!f.editor)return;i=f,m()}catch(f){console.error("Failed to load Monaco editor",f)}}),e.onBeforeUnmount(()=>{s&&(s.dispose(),s=null)}),t({focus:p,getEditor:h,getMonaco:y}),(f,k)=>(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))}}),Er={VsInputText:Ht,VsInputRadio:to,VsInputInlineSelect:Bn,"vs-input-text":Ht,"vs-input-password":zl,"vs-input-textarea":or,"vs-input-richtext":rr,"vs-input-mask":hn,"vs-input-number":Io,"vs-input-radio":to,"vs-input-select":co,"vs-input-inline-select":Bn,"inline-select":Bn,"vs-input-switcher":Zn,"vs-input-static":Jn,"vs-input-container":er,"vs-input-date":Go,"vs-input-checkbox":Po,"vs-input-file":Zo,"vs-input-file2":io,file2:io,File2:io,"vs-input-html":Jn,"vs-input-email":Qn,"vs-input-tel":eo,"vs-input-datatable":lr,"vs-input-map":hr,"vs-input-file-list":Jo,"vs-input-tags":gr,"vs-input-slug":yr,"vs-input-codegen":br,"vs-input-key-value":kr,"vs-input-text[]":xr,"vs-input-range":_r,"vs-input-color":wr,"vs-input-native-select":co,VsInputArraySelect:Fn,"vs-input-array":vr,"vs-input-array-select":Fn,"array-select":Fn,"vs-input-address":Cr,"vs-input-datalist":Lf,"vs-input-dataform":Wf,"vs-input-monaco":po},Gf=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){ge.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))}}),Yf={class:"flex flex-col gap-1 w-full"},Xf={class:"w-full"},Zf=["disabled"],Jf=["innerHTML"],Qf=2e3,eh=10,Br=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(()=>Rl[`${n.layout}`]),s=["label","placeholder","info","description","text","html"],i=e.ref(S()),c=e.computed(()=>L(n.item,i.value)),d=e.computed(()=>{const B={...c.value??{}},T=n.item?.name;return T&&p?.value?.[T]&&Object.assign(B,p.value[T]),B.__locale=i.value,B}),m=e.computed(()=>Er?.[`vs-input-${n.item.type}`]),p=e.inject("field-props"),h=e.computed(()=>{const B=e.unref(m);if(!B)return new Set;const T=B.props??B.__vccOpts?.props;if(!T)return new Set;const A=Array.isArray(T)?T:Object.keys(T);return new Set(A)}),f=[...["min","max","step"],"api","set","mask"],k=e.computed(()=>{const B={...c.value??{}},T=n.item?.name;T&&p?.value?.[T]&&Object.assign(B,p.value[T]);const A=h.value;let W;return A.size?W=Object.fromEntries(Object.entries(B).filter(([X])=>A.has(X))):W=B,f.forEach(X=>{const ee=B[X];ee!=null&&(W[X]=ee)}),W}),b=B=>{const T=typeof B=="object"&&B!==null?B:{value:B};l("value-selected",{...T,name:T.name??n.item?.name})},C=/{{\s*([^}]+?)\s*}}/g,x=e.inject("values"),_=e.ref(!1),N=e.computed(()=>{const B=n.item?.api,T=n.item?.type?.toLowerCase();return typeof B=="string"&&B.trim().length>0&&(T==="text"||T==="mask")});function U(B,T){if(!(B==null||!T))return T.split(".").reduce((A,W)=>A?.[W.trim()],B)}async function Y(){const B=String(r.value??"").trim();if(!B)return;const T=(n.item?.api??"").trim();if(!T)return;const A=T.replace(C,(W,X)=>X.trim()==="value"?encodeURIComponent(B):"");_.value=!0;try{let W=await fetch(A),X=0;for(;W.status===202&&X<eh;)X+=1,await new Promise(j=>{setTimeout(j,Qf)}),W=await fetch(A);if(W.status===202){ge.notify({type:"warning",title:"Validation",message:"Сервер ще обробляє запит. Спробуйте пізніше."});return}if(!W.ok){ge.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const ee=await W.json(),q=ee?.result!==void 0?ee.result:ee,Q=n.item?.set;if(!Q||!x?.value)return;const F=n.item?.name;Object.entries(Q).forEach(([j,te])=>{if(!j)return;let Z=te;F&&Z.startsWith(`${F}.`)&&(Z=Z.slice(F.length+1));const se=U(q,Z);x.value[j]=se??null})}catch(W){console.error("API lookup error:",W),ge.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."})}finally{_.value=!1}}e.onMounted(()=>{i.value=S(),window.addEventListener("storage",O)}),e.onUnmounted(()=>{window.removeEventListener("storage",O)});function L(B,T){if(!B)return{};const A={...B};return s.forEach(W=>{const X=V(B,W,T);X!=null&&(A[W]=X)}),Array.isArray(B.options)&&(A.options=B.options.map(W=>E(W,T))),A}function E(B,T){if(!B)return B;const A={...B},W=V(B,"label",T),X=V(B,"text",T);return W!=null&&(A.label=W),X!=null?A.text=X:W!=null&&(A.text=W),A}function V(B,T,A){const W=`${T}:${A}`;if(B?.[W]!=null)return B[W];if(T==="label"&&B?.[A]!=null)return B[A];if(B?.[T]!=null)return B[T];if(T==="label"){if(B?.ua!=null)return B.ua;if(B?.en!=null)return B.en}if(T==="text"||T==="html"){if(B?.ua!=null)return B.ua;if(B?.en!=null)return B.en}return null}function S(){return typeof window>"u"?"uk":localStorage.getItem("locale")||"uk"}function O(){i.value=S()}return(B,T)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{ua:d.value.ua,error:n.error||"",item:d.value,columns:n.columns,label:d.value.label},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["flex w-full",`${n.item.type}-component`])},[e.createElementVNode("div",Yf,[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center gap-2 w-full",{"flex-1":N.value}])},[e.createElementVNode("div",Xf,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(m.value),e.mergeProps(k.value,{modelValue:r.value,"onUpdate:modelValue":T[0]||(T[0]=A=>r.value=A),onValueSelected:b}),null,16,["modelValue"]))]),N.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:_.value||!r.value?.toString().trim(),onClick:Y},[_.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,Zf)):e.createCommentVNode("",!0)],2),d.value.description&&n.layout!=="settings"?(e.openBlock(),e.createElementBlock("p",{key:0,class:"text-sm text-gray-500",innerHTML:d.value.description},null,8,Jf)):e.createCommentVNode("",!0)]),d.value.behavior?.api&&d.value.behavior?.button?(e.openBlock(),e.createBlock(Gf,e.mergeProps({key:0},d.value.behavior,{value:r.value}),null,16,["value"])):e.createCommentVNode("",!0)],2)]),_:1},8,["ua","error","item","columns","label"]))}}),th={class:"text-sm text-gray-800 mb-[4px] font-medium dark:text-neutral-300"},nh={class:"vs-compact-form-navigation__rail mt-[6px]"},oh=["onClick"],rh=ve(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 O=n.width;if(O==null)return{};const B=typeof O=="number"?`${O}px`:`${O}`;return{width:B,minWidth:B}});let d=null,m=0,p=0,h=null,y=null,f=null;const k=()=>V(),b=()=>x();e.watch(()=>n.target,async O=>{if(Y(),!O){h=null,r.value=[],l.value="";return}h=O,s.value&&(await e.nextTick(),U(O),x())},{immediate:!0}),e.watch(()=>n.scrollContainer,O=>{if(!s.value){y=O??null;return}C(O??null),e.nextTick(()=>x())},{immediate:!0}),e.onMounted(()=>{n.scrollContainer||C(null),x()}),e.onBeforeUnmount(()=>{Y(),C(null,!0),h=null,typeof window<"u"&&(m&&window.cancelAnimationFrame(m),p&&window.cancelAnimationFrame(p))});function C(O,B=!1){if(f&&(f(),f=null),B){y=null;return}if(y=O??null,typeof window>"u")return;const T=O??window,A=window;T.addEventListener("scroll",k,{passive:!0}),A.addEventListener("resize",b),f=()=>{T.removeEventListener("scroll",k),A.removeEventListener("resize",b)}}function x(){if(!s.value||!h)return;m&&typeof window<"u"&&window.cancelAnimationFrame(m);const O=()=>{_(),m=0};typeof window>"u"?O():m=window.requestAnimationFrame(O)}function _(){if(!s.value||!h)return;const O=Array.from(h.querySelectorAll("h1, h2")),B=new Set,T=[];O.forEach((A,W)=>{const X=A.textContent?.trim()??"";if(!X)return;let ee=(A.getAttribute("id")??"").trim();ee||(ee=N(X)||`heading-${W+1}`);let q=ee,Q=1;for(;B.has(q);)q=`${ee}-${Q+=1}`;A.id!==q&&Object.assign(A,{id:q}),B.add(q),T.push({id:q,text:X,level:A.tagName.toLowerCase()==="h1"?1:2})}),r.value=T,T.length||(l.value=""),E()}function N(O){return O.toLowerCase().replace(/[^a-z0-9\s-]/g,"").trim().replace(/\s+/g,"-")}function U(O){!O||!s.value||typeof MutationObserver>"u"||(Y(),d=new MutationObserver(()=>x()),d.observe(O,{childList:!0,subtree:!0}))}function Y(){d&&(d.disconnect(),d=null)}function L(O){const B=y;if(!B)return typeof window>"u"?O.offsetTop:O.getBoundingClientRect().top+window.scrollY;const T=O.getBoundingClientRect(),A=B.getBoundingClientRect();return T.top-A.top+B.scrollTop}function E(){if(!s.value||!r.value.length)return;const O=y,B=(O?O.scrollTop:null)||(typeof window<"u"?window.scrollY:0),T=(O?O.clientHeight:null)||(typeof window<"u"?window.innerHeight:0),A=B+T;let W=null;for(let ee=0;ee<r.value.length;ee+=1){const q=r.value[ee],Q=document.getElementById(q.id);if(Q){const F=L(Q);F+Q.offsetHeight>B&&F<A&&(W=q.id)}}!W&&a.value&&(W=a.value),W&&(a.value=W);const X=O?O.scrollHeight-O.clientHeight:document.documentElement.scrollHeight-window.innerHeight;B+5>=X&&(W=r.value[r.value.length-1].id),W&&(l.value=W)}function V(){s.value&&(p&&window.cancelAnimationFrame(p),p=window.requestAnimationFrame(()=>{E(),p=0}))}function S(O){if(!s.value)return;const B=document.getElementById(O);if(!B)return;const T=y,A=Math.max(0,L(B));T?T.scrollTo({top:A,behavior:"smooth"}):typeof window<"u"&&window.scrollTo({top:A,behavior:"smooth"})}return t({refresh:x}),(O,B)=>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",th,e.toDisplayString(O.title),1),e.createElementVNode("div",nh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,T=>(e.openBlock(),e.createElementBlock("div",{key:T.id,class:e.normalizeClass(["vs-compact-form-navigation__item relative",T.level===2?"vs-compact-form-navigation__item--nested":"",T.id===l.value?"vs-compact-form-navigation__item--active":""])},[e.createElementVNode("button",{type:"button",onClick:A=>S(T.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",T.level===2?"pl-[15px]":"pl-[18px]",T.id===l.value?"text-gray-800":"text-gray-500"])},[e.createElementVNode("span",null,e.toDisplayString(T.text),1)],10,oh)],2))),128))])],6)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-1584a562"]]),ht={required:"Це поле є обов’язковим",email:"Неправильний email",tel:"Неправильний телефон",minlength:o=>`Мінімальна довжина — ${o} символів`,maxlength:o=>`Максимальна довжина — ${o} символів`,min:o=>`Значення має бути не менше ${o}`,max:o=>`Значення має бути не більше ${o}`},lh=o=>typeof o=="string"?o.trim()?!1:ht.required:Array.isArray(o)?o.map(n=>typeof n=="string"?n.trim():n).filter(n=>n!=null&&n!=="").length?!1:ht.required:typeof o=="number"?Number?.isNaN(o)?ht?.required:!1:o?!1:ht.required,ah=o=>{const t=/^[\p{L}\p{N}!#$%&'*+/=?^_`{|}~.-]+@(?:[\p{L}\p{N}](?:[\p{L}\p{N}-]{0,61}[\p{L}\p{N}])?\.)+[\p{L}\p{N}](?:[\p{L}\p{N}-]{0,61}[\p{L}\p{N}])?$/u;return o?t.test(o)?!1:ht.email:!1},sh=(o,t)=>{if(!o)return!1;const n=String(o).trim();if(!/^\+[1-9]\d{1,14}$/.test(n))return ht.tel;const a=(typeof t?.digits=="number"&&Number.isFinite(t.digits)&&t.digits>0?t.digits:St(_t))||St(_t);return n.length-1!==a?ht.tel:!1},Vr=o=>o==null?0:typeof o=="string"?o.trim().length:Array.isArray(o)?o.length:typeof o=="number"?o.toString().length:String(o).length,ih=(o,t)=>{if(o==null)return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&Vr(o)<n?t?.message||ht.minlength(n):!1},ch=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&Vr(o)>n?t?.message||ht.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)},dh=(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||ht.min(n):!1},uh=(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||ht.max(n):!1},ph=(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},mh=(o,t)=>!1,fh=(o,t)=>{switch(typeof t=="string"?t:t.type){case"required":return lh(o);case"email":return ah(o);case"tel":return sh(o,typeof t=="object"?t:void 0);case"regexp":return ph(o,t);case"minlength":return ih(o,t);case"maxlength":return ch(o,t);case"min":return dh(o,t);case"max":return uh(o,t);case"custom":return mh();default:return!1}},hh={autocomplete:"select",combobox:"select",datepicker:"date",markedtext:"mask",html:"static",geom:"map",filelist:"file-list",file:"file",dropzone:"file",inlineselect:"inline-select"};function $r(o){const t=o?.toLowerCase();return hh[t]||t}function mo(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=$r(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||_t,i=St(s)||St(_t);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=mo(a.schema,a.disabled)),r.push(a)}),r}const n=[];return Object.entries(o).forEach(r=>{const l={name:r[0],...r[1],type:$r(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||_t,s=St(a)||St(_t);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=mo(l.schema,l.disabled)),n.push(l)}),n}function gh(o,t,n=!1){const r=e.computed(()=>mo((Array.isArray(t),t),typeof n=="boolean"?n:n.value)),l=e.ref({});function a(d){return Qo(o?.value,d?.conditions)}const s=(d=r.value,m=!0)=>(d.forEach(p=>{const h=[],y=Number(p?.minlength),f=Number(p?.maxlength),k=Number(p?.min),b=Number(p?.max);!Number.isNaN(y)&&Number.isFinite(y)&&h.push({type:"minlength",value:y}),!Number.isNaN(f)&&Number.isFinite(f)&&h.push({type:"maxlength",value:f}),!Number.isNaN(k)&&Number.isFinite(k)&&h.push({type:"min",value:k}),!Number.isNaN(b)&&Number.isFinite(b)&&h.push({type:"max",value:b});const C=[...h,...p.rules||[]];if(C.length){if(!a(p)){delete l.value[p.name];return}let x=!1,_=null;C.forEach(N=>{const U=fh(o.value[p.name],N);U&&(x=!0,!_&&typeof U=="string"&&(_=U))}),x&&_?l.value[p.name]=_:delete l.value[p.name]}p.schema&&s(p.schema,!1)}),m&&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 yh={class:"flex w-full h-full min-h-0 gap-6"},bh={key:0,"data-orientation":"horizontal",role:"none",class:"mt-1 shrink-0 h-[1px] w-full bg-slate-100 dark:bg-slate-600"},ct=e.defineComponent({__name:"vs-compact-form",props:e.mergeModels({schema:{default:()=>[]},style:{default:()=>({})},modelValue:{},layout:{default:()=>"default"},formId:{default:()=>""},allowIdField:{type:Boolean,default:!1},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.computed(()=>!!l.formId||l.allowIdField),s=e.useModel(o,"form"),i=e.useModel(o,"modelValue"),c=e.useModel(o,"values"),d=e.computed({get:()=>c.value??i.value,set:X=>{i.value=X,c.value=X}}),{errors:m,validate:p,reset:h,visibleSchema:y}=gh(d,l.schema,e.toRef(l,"disabled")),f=e.ref(null),k=e.ref(null),b=e.ref({}),C=e.computed(()=>l.navigation),x=e.computed(()=>l.navWidth),_=e.computed(()=>l.style?.columns),N=Object.freeze({container:12,label:3}),U=e.computed(()=>l.columns??_.value??N),Y=e.computed(()=>l.columns!=null||_.value!=null),L=e.computed(()=>Y.value?"horizontal":l.layout),E=X=>X?.columns?"horizontal":L.value,V=X=>X?.columns??U.value,S=e.computed(()=>{const X={},ee=q=>{if(!q)return;(Array.isArray(q)?q.map((F,j)=>({key:String(j),entry:F})):typeof q=="object"?Object.entries(q).map(([F,j])=>({key:F,entry:j})):[]).forEach(({key:F,entry:j})=>{if(!j||typeof j!="object")return;const te=j.name?String(j.name):F;te&&(X[te]={...j,name:te}),Array.isArray(j.schema)&&ee(j.schema)})};return ee(l.schema),X}),O=()=>{!a.value&&d.value&&delete d.value.id,r("update:modelValue",d.value),p(),r("handle-submit",d.value)},B=X=>{r("value-selected",X)};t({validate:p,reset:h,errors:m}),e.onMounted(()=>{s.value={value:d.value,errors:m.value,reset:h,validate:p,formId:l.formId}});function T(X,ee){if(X===ee)return!0;if(typeof X!="object"||typeof ee!="object"||!X||!ee)return!1;const q=Object.keys(X),Q=Object.keys(ee);return q.length!==Q.length?!1:q.every(F=>X[F]===ee[F])}function A(X){return Array.isArray(X)?[...X]:X&&typeof X=="object"?{...X}:X}function W(X){Array.isArray(X)&&X.forEach(ee=>{if(!ee)return;const q=ee.name,Q=ee.default!==void 0;q&&Q&&d.value[q]===void 0&&(d.value[q]=A(ee.default)),Array.isArray(ee.schema)&&W(ee.schema)})}return e.watch(y,X=>{W(X)},{immediate:!0,deep:!0}),e.provide("form",s),e.provide("values",d),e.provide("field-props",b),e.provide("schema-by-name",S),(X,ee)=>(e.openBlock(),e.createElementBlock("div",yh,[e.createElementVNode("div",{class:"flex-1 min-h-0 overflow-y-auto overflow-x-visible",ref_key:"formScrollContainer",ref:k},[e.createElementVNode("form",{ref_key:"formRef",ref:f,onSubmit:e.withModifiers(O,["prevent"]),class:e.normalizeClass(["grid grid-cols-12 p-1",L.value==="default"?"gap-6":"gap-4"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(y),(q,Q)=>(e.openBlock(),e.createElementBlock("div",{key:q.name,class:e.normalizeClass(E(q)==="horizontal"?"col-span-12":`col-span-12 md:col-span-${q.col||12}`)},[e.createVNode(Br,{style:e.normalizeStyle(X.style),item:q,layout:E(q),columns:V(q),"model-value":d.value[q.name],"onUpdate:modelValue":F=>{if(q.name==="id"&&!a.value)return;const j=d.value[q.name];T(j,F)||(d.value[q.name]=F)},error:e.unref(m)[q.name],onValueSelected:B},null,8,["style","item","layout","columns","model-value","onUpdate:modelValue","error"]),E(q)==="settings"&&Q+1!==e.unref(y).length?(e.openBlock(),e.createElementBlock("div",bh)):e.createCommentVNode("",!0)],2))),128))],34)],512),e.createVNode(rh,{target:f.value,"scroll-container":k.value,enabled:C.value,width:x.value},null,8,["target","scroll-container","enabled","width"])]))}}),kh={class:"relative"},xh={class:"w-full h-full fixed top-0 start-0 bg-black bg-opacity-50"},wh={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"},_h={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},vh={class:"font-medium text-gray-800 dark:text-[#ffffff]"},Ch={class:"p-4 mim-h-0 h-full overflow-auto"},Nr=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),m=()=>{const b=n.method?.trim().toUpperCase();return b==="GET"||b==="POST"||b==="PUT"?b:d.value==="add"?"POST":"PUT"},p=()=>{ge.notify({type:"success",title:"Успішно",message:`Дані успішно ${d.value==="add"?"збережено":"оновлено"}`})},h=b=>{const C={};b.id!==void 0&&b.id!==null&&(C.id=b.id,c.value=b.id.toString()),b.obj&&typeof b.obj=="object"&&Object.assign(C,b.obj),Object.keys(C).length&&(a.value={...a.value,...C})},y=async b=>{if(console.log(b),b.ok){await b.json().catch(()=>({})),p(),r("save",a.value);return}const C=await b.json().catch(()=>({})),x=C.message||C.error;if(b.status===400){ge.notify({type:"warning",title:"Помилка валідації",message:x||"Некоректні дані (400)"});return}if(b.status===500){ge.notify({type:"error",title:"Серверна помилка",message:x||"Виникла помилка на сервері (500)"});return}ge.notify({type:"error",title:"Помилка",message:`Статус: ${b.status}`})};async function f(){const b=s.value.validate();if(b){ge.notify({type:"warning",title:"Помилка валідації",message:Object.entries(b).map(([x,_])=>`${x}: ${_}`).join(`
5
5
  `)});return}d.value==="add"&&a.value&&delete a.value.id;const C=n.api?.trim();if(C){const x=m();try{const _=await fetch(C,{method:x,headers:x==="GET"?void 0:{"Content-Type":"application/json"},body:x==="GET"?void 0:JSON.stringify(a.value)});await y(_)}catch(_){ge.notify({type:"error",title:"Помилка з’єднання",message:_.message||"Не вдалося виконати запит"})}return}if(i.value)try{const x=await fetch(`/api/table/${i.value}`,{method:d.value==="add"?"POST":"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a.value)});await y(x)}catch(x){ge.notify({type:"error",title:"Помилка з’єднання",message:x.message||"Не вдалося виконати запит"})}else r("edit",a.value),k()}function k(){r("close")}return e.onMounted(async()=>{try{if(n.form&&!n.schema){const b=await fetch(`/api/template/form/${n.form}`);if(!b.ok){ge.notify({type:b.status>=400&&b.status<500?"warning":"error",title:"Error",message:`Error code: ${b.status}`});return}const C=await b.json();l.value=C.schema,C.id&&(c.value=C.id),C.token&&(i.value=C.token,c.value||(c.value=C.token))}else if(n.token&&!n.defaultValue){i.value=n.token;const b=await fetch(`/api/form/${i.value}`);if(!b.ok){ge.notify({type:b.status>=400&&b.status<500?"warning":"error",title:"Error",message:`Error code: ${b.status}`});return}const C=await b.json();l.value=C.schema,C.data?a.value=C.data:d.value="add",h({id:C.id,obj:C.obj})}}catch(b){ge.notify({type:"error",title:"Error",message:b.message||"Unexpected error"}),console.error(b)}}),(b,C)=>(e.openBlock(),e.createElementBlock("div",kh,[e.createElementVNode("div",xh,[e.createElementVNode("div",wh,[e.createElementVNode("div",_h,[e.createElementVNode("h3",vh,e.toDisplayString(d.value==="add"?"Додати":"Змінити"),1),e.createElementVNode("button",{onClick:k,type:"button",class:"size-8 inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:hover:bg-neutral-600 dark:text-neutral-400 dark:focus:bg-neutral-600"},[C[2]||(C[2]=e.createElementVNode("span",{class:"sr-only"},"Close",-1)),e.createVNode(e.unref(H.X),{class:"h-4 w-4 flex-shrink-0"})])]),e.createElementVNode("div",Ch,[l.value?(e.openBlock(),e.createBlock(ct,{key:0,schema:l.value,values:a.value,"onUpdate:values":C[0]||(C[0]=x=>a.value=x),form:s.value,"onUpdate:form":C[1]||(C[1]=x=>s.value=x),formId:c.value},null,8,["schema","values","form","formId"])):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:"vs-form__head mr-5 mb-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},[e.createElementVNode("button",{type:"button",onClick:k,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:f,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"}," Зберегти ")])])])]))}}),Ar=Gn.form.richtext,Mr=Yn.form.richtext,fo={en:{form:{richtext:Ar}},uk:{form:{richtext:Mr}}},Fr=(o={mode:"edit",schema:null})=>new Promise(t=>{const{close:n}=ge.modal({title:o.mode==="add"?"Додати":"Редагувати",template:"",visible:!0,size:"medium",closeClickBack:!0,content:Nr,contentProps:{...o,onClose:()=>{t(null),n()},onSave:r=>{t(r),n()}}})});ct.install=function(t){t.component("VForm",ct),Object.assign(t.config.globalProperties,{$form:Fr}),t.provide("form",Fr),window.v3plugin||(window.v3plugin={})};function $t(o){return typeof o=="string"||o instanceof String}function Dr(o){var t;return typeof o=="object"&&o!=null&&(o==null||(t=o.constructor)==null?void 0:t.name)==="Object"}function Tr(o,t){return Array.isArray(t)?Tr(o,(n,r)=>t.includes(r)):Object.entries(o).reduce((n,r)=>{let[l,a]=r;return t(a,l)&&(n[l]=a),n},{})}const fe={NONE:"NONE",LEFT:"LEFT",FORCE_LEFT:"FORCE_LEFT",RIGHT:"RIGHT",FORCE_RIGHT:"FORCE_RIGHT"};function Lr(o){switch(o){case fe.LEFT:return fe.FORCE_LEFT;case fe.RIGHT:return fe.FORCE_RIGHT;default:return o}}function ho(o){return o.replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1")}function Ln(o,t){if(t===o)return!0;const n=Array.isArray(t),r=Array.isArray(o);let l;if(n&&r){if(t.length!=o.length)return!1;for(l=0;l<t.length;l++)if(!Ln(t[l],o[l]))return!1;return!0}if(n!=r)return!1;if(t&&o&&typeof t=="object"&&typeof o=="object"){const a=t instanceof Date,s=o instanceof Date;if(a&&s)return t.getTime()==o.getTime();if(a!=s)return!1;const i=t instanceof RegExp,c=o instanceof RegExp;if(i&&c)return t.toString()==o.toString();if(i!=c)return!1;const d=Object.keys(t);for(l=0;l<d.length;l++)if(!Object.prototype.hasOwnProperty.call(o,d[l]))return!1;for(l=0;l<d.length;l++)if(!Ln(o[d[l]],t[d[l]]))return!1;return!0}else if(t&&o&&typeof t=="function"&&typeof o=="function")return t.toString()===o.toString();return!1}class Eh{constructor(t){for(Object.assign(this,t);this.value.slice(0,this.startChangePos)!==this.oldValue.slice(0,this.startChangePos);)--this.oldSelection.start;if(this.insertedCount)for(;this.value.slice(this.cursorPos)!==this.oldValue.slice(this.oldSelection.end);)this.value.length-this.cursorPos<this.oldValue.length-this.oldSelection.end?++this.oldSelection.end:++this.cursorPos}get startChangePos(){return Math.min(this.cursorPos,this.oldSelection.start)}get insertedCount(){return this.cursorPos-this.startChangePos}get inserted(){return this.value.substr(this.startChangePos,this.insertedCount)}get removedCount(){return Math.max(this.oldSelection.end-this.startChangePos||this.oldValue.length-this.value.length,0)}get removed(){return this.oldValue.substr(this.startChangePos,this.removedCount)}get head(){return this.value.substring(0,this.startChangePos)}get tail(){return this.value.substring(this.startChangePos+this.insertedCount)}get removeDirection(){return!this.removedCount||this.insertedCount?fe.NONE:(this.oldSelection.end===this.cursorPos||this.oldSelection.start===this.cursorPos)&&this.oldSelection.end===this.oldSelection.start?fe.RIGHT:fe.LEFT}}function Ce(o,t){return new Ce.InputMask(o,t)}function Ir(o){if(o==null)throw new Error("mask property should be defined");return o instanceof RegExp?Ce.MaskedRegExp:$t(o)?Ce.MaskedPattern:o===Date?Ce.MaskedDate:o===Number?Ce.MaskedNumber:Array.isArray(o)||o===Array?Ce.MaskedDynamic:Ce.Masked&&o.prototype instanceof Ce.Masked?o:Ce.Masked&&o instanceof Ce.Masked?o.constructor:o instanceof Function?Ce.MaskedFunction:(console.warn("Mask not found for mask",o),Ce.Masked)}function Wt(o){if(!o)throw new Error("Options in not defined");if(Ce.Masked){if(o.prototype instanceof Ce.Masked)return{mask:o};const{mask:t=void 0,...n}=o instanceof Ce.Masked?{mask:o}:Dr(o)&&o.mask instanceof Ce.Masked?o:{};if(t){const r=t.mask;return{...Tr(t,(l,a)=>!a.startsWith("_")),mask:t.constructor,_mask:r,...n}}}return Dr(o)?{...o}:{mask:o}}function gt(o){if(Ce.Masked&&o instanceof Ce.Masked)return o;const t=Wt(o),n=Ir(t.mask);if(!n)throw new Error("Masked class is not found for provided mask "+t.mask+", appropriate module needs to be imported manually before creating mask.");return t.mask===n&&delete t.mask,t._mask&&(t.mask=t._mask,delete t._mask),new n(t)}Ce.createMask=gt;class In{get selectionStart(){let t;try{t=this._unsafeSelectionStart}catch{}return t??this.value.length}get selectionEnd(){let t;try{t=this._unsafeSelectionEnd}catch{}return t??this.value.length}select(t,n){if(!(t==null||n==null||t===this.selectionStart&&n===this.selectionEnd))try{this._unsafeSelect(t,n)}catch{}}get isActive(){return!1}}Ce.MaskElement=In;const Or=90,Bh=89;class tn extends In{constructor(t){super(),this.input=t,this._onKeydown=this._onKeydown.bind(this),this._onInput=this._onInput.bind(this),this._onBeforeinput=this._onBeforeinput.bind(this),this._onCompositionEnd=this._onCompositionEnd.bind(this)}get rootElement(){var t,n,r;return(t=(n=(r=this.input).getRootNode)==null?void 0:n.call(r))!=null?t:document}get isActive(){return this.input===this.rootElement.activeElement}bindEvents(t){this.input.addEventListener("keydown",this._onKeydown),this.input.addEventListener("input",this._onInput),this.input.addEventListener("beforeinput",this._onBeforeinput),this.input.addEventListener("compositionend",this._onCompositionEnd),this.input.addEventListener("drop",t.drop),this.input.addEventListener("click",t.click),this.input.addEventListener("focus",t.focus),this.input.addEventListener("blur",t.commit),this._handlers=t}_onKeydown(t){if(this._handlers.redo&&(t.keyCode===Or&&t.shiftKey&&(t.metaKey||t.ctrlKey)||t.keyCode===Bh&&t.ctrlKey))return t.preventDefault(),this._handlers.redo(t);if(this._handlers.undo&&t.keyCode===Or&&(t.metaKey||t.ctrlKey))return t.preventDefault(),this._handlers.undo(t);t.isComposing||this._handlers.selectionChange(t)}_onBeforeinput(t){if(t.inputType==="historyUndo"&&this._handlers.undo)return t.preventDefault(),this._handlers.undo(t);if(t.inputType==="historyRedo"&&this._handlers.redo)return t.preventDefault(),this._handlers.redo(t)}_onCompositionEnd(t){this._handlers.input(t)}_onInput(t){t.isComposing||this._handlers.input(t)}unbindEvents(){this.input.removeEventListener("keydown",this._onKeydown),this.input.removeEventListener("input",this._onInput),this.input.removeEventListener("beforeinput",this._onBeforeinput),this.input.removeEventListener("compositionend",this._onCompositionEnd),this.input.removeEventListener("drop",this._handlers.drop),this.input.removeEventListener("click",this._handlers.click),this.input.removeEventListener("focus",this._handlers.focus),this.input.removeEventListener("blur",this._handlers.commit),this._handlers={}}}Ce.HTMLMaskElement=tn;class Rr extends tn{constructor(t){super(t),this.input=t}get _unsafeSelectionStart(){return this.input.selectionStart!=null?this.input.selectionStart:this.value.length}get _unsafeSelectionEnd(){return this.input.selectionEnd}_unsafeSelect(t,n){this.input.setSelectionRange(t,n)}get value(){return this.input.value}set value(t){this.input.value=t}}Ce.HTMLMaskElement=tn;class go extends tn{get _unsafeSelectionStart(){const t=this.rootElement,n=t.getSelection&&t.getSelection(),r=n&&n.anchorOffset,l=n&&n.focusOffset;return l==null||r==null||r<l?r:l}get _unsafeSelectionEnd(){const t=this.rootElement,n=t.getSelection&&t.getSelection(),r=n&&n.anchorOffset,l=n&&n.focusOffset;return l==null||r==null||r>l?r:l}_unsafeSelect(t,n){if(!this.rootElement.createRange)return;const r=this.rootElement.createRange();r.setStart(this.input.firstChild||this.input,t),r.setEnd(this.input.lastChild||this.input,n);const l=this.rootElement,a=l.getSelection&&l.getSelection();a&&(a.removeAllRanges(),a.addRange(r))}get value(){return this.input.textContent||""}set value(t){this.input.textContent=t}}Ce.HTMLContenteditableMaskElement=go;class On{constructor(){this.states=[],this.currentIndex=0}get currentState(){return this.states[this.currentIndex]}get isEmpty(){return this.states.length===0}push(t){this.currentIndex<this.states.length-1&&(this.states.length=this.currentIndex+1),this.states.push(t),this.states.length>On.MAX_LENGTH&&this.states.shift(),this.currentIndex=this.states.length-1}go(t){return this.currentIndex=Math.min(Math.max(this.currentIndex+t,0),this.states.length-1),this.currentState}undo(){return this.go(-1)}redo(){return this.go(1)}clear(){this.states.length=0,this.currentIndex=0}}On.MAX_LENGTH=100;class Pr{constructor(t,n){this.el=t instanceof In?t:t.isContentEditable&&t.tagName!=="INPUT"&&t.tagName!=="TEXTAREA"?new go(t):new Rr(t),this.masked=gt(n),this._listeners={},this._value="",this._unmaskedValue="",this._rawInputValue="",this.history=new On,this._saveSelection=this._saveSelection.bind(this),this._onInput=this._onInput.bind(this),this._onChange=this._onChange.bind(this),this._onDrop=this._onDrop.bind(this),this._onFocus=this._onFocus.bind(this),this._onClick=this._onClick.bind(this),this._onUndo=this._onUndo.bind(this),this._onRedo=this._onRedo.bind(this),this.alignCursor=this.alignCursor.bind(this),this.alignCursorFriendly=this.alignCursorFriendly.bind(this),this._bindEvents(),this.updateValue(),this._onChange()}maskEquals(t){var n;return t==null||((n=this.masked)==null?void 0:n.maskEquals(t))}get mask(){return this.masked.mask}set mask(t){if(this.maskEquals(t))return;if(!(t instanceof Ce.Masked)&&this.masked.constructor===Ir(t)){this.masked.updateOptions({mask:t});return}const n=t instanceof Ce.Masked?t:gt({mask:t});n.unmaskedValue=this.masked.unmaskedValue,this.masked=n}get value(){return this._value}set value(t){this.value!==t&&(this.masked.value=t,this.updateControl("auto"))}get unmaskedValue(){return this._unmaskedValue}set unmaskedValue(t){this.unmaskedValue!==t&&(this.masked.unmaskedValue=t,this.updateControl("auto"))}get rawInputValue(){return this._rawInputValue}set rawInputValue(t){this.rawInputValue!==t&&(this.masked.rawInputValue=t,this.updateControl(),this.alignCursor())}get typedValue(){return this.masked.typedValue}set typedValue(t){this.masked.typedValueEquals(t)||(this.masked.typedValue=t,this.updateControl("auto"))}get displayValue(){return this.masked.displayValue}_bindEvents(){this.el.bindEvents({selectionChange:this._saveSelection,input:this._onInput,drop:this._onDrop,click:this._onClick,focus:this._onFocus,commit:this._onChange,undo:this._onUndo,redo:this._onRedo})}_unbindEvents(){this.el&&this.el.unbindEvents()}_fireEvent(t,n){const r=this._listeners[t];r&&r.forEach(l=>l(n))}get selectionStart(){return this._cursorChanging?this._changingCursorPos:this.el.selectionStart}get cursorPos(){return this._cursorChanging?this._changingCursorPos:this.el.selectionEnd}set cursorPos(t){!this.el||!this.el.isActive||(this.el.select(t,t),this._saveSelection())}_saveSelection(){this.displayValue!==this.el.value&&console.warn("Element value was changed outside of mask. Syncronize mask using `mask.updateValue()` to work properly."),this._selection={start:this.selectionStart,end:this.cursorPos}}updateValue(){this.masked.value=this.el.value,this._value=this.masked.value,this._unmaskedValue=this.masked.unmaskedValue,this._rawInputValue=this.masked.rawInputValue}updateControl(t){const n=this.masked.unmaskedValue,r=this.masked.value,l=this.masked.rawInputValue,a=this.displayValue,s=this.unmaskedValue!==n||this.value!==r||this._rawInputValue!==l;this._unmaskedValue=n,this._value=r,this._rawInputValue=l,this.el.value!==a&&(this.el.value=a),t==="auto"?this.alignCursor():t!=null&&(this.cursorPos=t),s&&this._fireChangeEvents(),!this._historyChanging&&(s||this.history.isEmpty)&&this.history.push({unmaskedValue:n,selection:{start:this.selectionStart,end:this.cursorPos}})}updateOptions(t){const{mask:n,...r}=t,l=!this.maskEquals(n),a=this.masked.optionsIsChanged(r);l&&(this.mask=n),a&&this.masked.updateOptions(r),(l||a)&&this.updateControl()}updateCursor(t){t!=null&&(this.cursorPos=t,this._delayUpdateCursor(t))}_delayUpdateCursor(t){this._abortUpdateCursor(),this._changingCursorPos=t,this._cursorChanging=setTimeout(()=>{this.el&&(this.cursorPos=this._changingCursorPos,this._abortUpdateCursor())},10)}_fireChangeEvents(){this._fireEvent("accept",this._inputEvent),this.masked.isComplete&&this._fireEvent("complete",this._inputEvent)}_abortUpdateCursor(){this._cursorChanging&&(clearTimeout(this._cursorChanging),delete this._cursorChanging)}alignCursor(){this.cursorPos=this.masked.nearestInputPos(this.masked.nearestInputPos(this.cursorPos,fe.LEFT))}alignCursorFriendly(){this.selectionStart===this.cursorPos&&this.alignCursor()}on(t,n){return this._listeners[t]||(this._listeners[t]=[]),this._listeners[t].push(n),this}off(t,n){if(!this._listeners[t])return this;if(!n)return delete this._listeners[t],this;const r=this._listeners[t].indexOf(n);return r>=0&&this._listeners[t].splice(r,1),this}_onInput(t){this._inputEvent=t,this._abortUpdateCursor();const n=new Eh({value:this.el.value,cursorPos:this.cursorPos,oldValue:this.displayValue,oldSelection:this._selection}),r=this.masked.rawInputValue,l=this.masked.splice(n.startChangePos,n.removed.length,n.inserted,n.removeDirection,{input:!0,raw:!0}).offset,a=r===this.masked.rawInputValue?n.removeDirection:fe.NONE;let s=this.masked.nearestInputPos(n.startChangePos+l,a);a!==fe.NONE&&(s=this.masked.nearestInputPos(s,fe.NONE)),this.updateControl(s),delete this._inputEvent}_onChange(){this.displayValue!==this.el.value&&this.updateValue(),this.masked.doCommit(),this.updateControl(),this._saveSelection()}_onDrop(t){t.preventDefault(),t.stopPropagation()}_onFocus(t){this.alignCursorFriendly()}_onClick(t){this.alignCursorFriendly()}_onUndo(){this._applyHistoryState(this.history.undo())}_onRedo(){this._applyHistoryState(this.history.redo())}_applyHistoryState(t){t&&(this._historyChanging=!0,this.unmaskedValue=t.unmaskedValue,this.el.select(t.selection.start,t.selection.end),this._saveSelection(),this._historyChanging=!1)}destroy(){this._unbindEvents(),this._listeners.length=0,delete this.el}}Ce.InputMask=Pr;class Be{static normalize(t){return Array.isArray(t)?t:[t,new Be]}constructor(t){Object.assign(this,{inserted:"",rawInserted:"",tailShift:0,skip:!1},t)}aggregate(t){return this.inserted+=t.inserted,this.rawInserted+=t.rawInserted,this.tailShift+=t.tailShift,this.skip=this.skip||t.skip,this}get offset(){return this.tailShift+this.inserted.length}get consumed(){return!!this.rawInserted||this.skip}equals(t){return this.inserted===t.inserted&&this.tailShift===t.tailShift&&this.rawInserted===t.rawInserted&&this.skip===t.skip}}Ce.ChangeDetails=Be;class yt{constructor(t,n,r){t===void 0&&(t=""),n===void 0&&(n=0),this.value=t,this.from=n,this.stop=r}toString(){return this.value}extend(t){this.value+=String(t)}appendTo(t){return t.append(this.toString(),{tail:!0}).aggregate(t._appendPlaceholder())}get state(){return{value:this.value,from:this.from,stop:this.stop}}set state(t){Object.assign(this,t)}unshift(t){if(!this.value.length||t!=null&&this.from>=t)return"";const n=this.value[0];return this.value=this.value.slice(1),n}shift(){if(!this.value.length)return"";const t=this.value[this.value.length-1];return this.value=this.value.slice(0,-1),t}}class Ze{constructor(t){this._value="",this._update({...Ze.DEFAULTS,...t}),this._initialized=!0}updateOptions(t){this.optionsIsChanged(t)&&this.withValueRefresh(this._update.bind(this,t))}_update(t){Object.assign(this,t)}get state(){return{_value:this.value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value}reset(){this._value=""}get value(){return this._value}set value(t){this.resolve(t,{input:!0})}resolve(t,n){n===void 0&&(n={input:!0}),this.reset(),this.append(t,n,""),this.doCommit()}get unmaskedValue(){return this.value}set unmaskedValue(t){this.resolve(t,{})}get typedValue(){return this.parse?this.parse(this.value,this):this.unmaskedValue}set typedValue(t){this.format?this.value=this.format(t,this):this.unmaskedValue=String(t)}get rawInputValue(){return this.extractInput(0,this.displayValue.length,{raw:!0})}set rawInputValue(t){this.resolve(t,{raw:!0})}get displayValue(){return this.value}get isComplete(){return!0}get isFilled(){return this.isComplete}nearestInputPos(t,n){return t}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),Math.min(this.displayValue.length,n-t)}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),this.displayValue.slice(t,n)}extractTail(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),new yt(this.extractInput(t,n),t)}appendTail(t){return $t(t)&&(t=new yt(String(t))),t.appendTo(this)}_appendCharRaw(t,n){return t?(this._value+=t,new Be({inserted:t,rawInserted:t})):new Be}_appendChar(t,n,r){n===void 0&&(n={});const l=this.state;let a;if([t,a]=this.doPrepareChar(t,n),t&&(a=a.aggregate(this._appendCharRaw(t,n)),!a.rawInserted&&this.autofix==="pad")){const s=this.state;this.state=l;let i=this.pad(n);const c=this._appendCharRaw(t,n);i=i.aggregate(c),c.rawInserted||i.equals(a)?a=i:this.state=s}if(a.inserted){let s,i=this.doValidate(n)!==!1;if(i&&r!=null){const c=this.state;if(this.overwrite===!0){s=r.state;for(let m=0;m<a.rawInserted.length;++m)r.unshift(this.displayValue.length-a.tailShift)}let d=this.appendTail(r);if(i=d.rawInserted.length===r.toString().length,!(i&&d.inserted)&&this.overwrite==="shift"){this.state=c,s=r.state;for(let m=0;m<a.rawInserted.length;++m)r.shift();d=this.appendTail(r),i=d.rawInserted.length===r.toString().length}i&&d.inserted&&(this.state=c)}i||(a=new Be,this.state=l,r&&s&&(r.state=s))}return a}_appendPlaceholder(){return new Be}_appendEager(){return new Be}append(t,n,r){if(!$t(t))throw new Error("value should be string");const l=$t(r)?new yt(String(r)):r;n!=null&&n.tail&&(n._beforeTailState=this.state);let a;[t,a]=this.doPrepare(t,n);for(let s=0;s<t.length;++s){const i=this._appendChar(t[s],n,l);if(!i.rawInserted&&!this.doSkipInvalid(t[s],n,l))break;a.aggregate(i)}return(this.eager===!0||this.eager==="append")&&n!=null&&n.input&&t&&a.aggregate(this._appendEager()),l!=null&&(a.tailShift+=this.appendTail(l).tailShift),a}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),this._value=this.displayValue.slice(0,t)+this.displayValue.slice(n),new Be}withValueRefresh(t){if(this._refreshing||!this._initialized)return t();this._refreshing=!0;const n=this.rawInputValue,r=this.value,l=t();return this.rawInputValue=n,this.value&&this.value!==r&&r.indexOf(this.value)===0&&(this.append(r.slice(this.displayValue.length),{},""),this.doCommit()),delete this._refreshing,l}runIsolated(t){if(this._isolated||!this._initialized)return t(this);this._isolated=!0;const n=this.state,r=t(this);return this.state=n,delete this._isolated,r}doSkipInvalid(t,n,r){return!!this.skipInvalid}doPrepare(t,n){return n===void 0&&(n={}),Be.normalize(this.prepare?this.prepare(t,this,n):t)}doPrepareChar(t,n){return n===void 0&&(n={}),Be.normalize(this.prepareChar?this.prepareChar(t,this,n):t)}doValidate(t){return(!this.validate||this.validate(this.value,this,t))&&(!this.parent||this.parent.doValidate(t))}doCommit(){this.commit&&this.commit(this.value,this)}splice(t,n,r,l,a){r===void 0&&(r=""),l===void 0&&(l=fe.NONE),a===void 0&&(a={input:!0});const s=t+n,i=this.extractTail(s),c=this.eager===!0||this.eager==="remove";let d;c&&(l=Lr(l),d=this.extractInput(0,s,{raw:!0}));let m=t;const p=new Be;if(l!==fe.NONE&&(m=this.nearestInputPos(t,n>1&&t!==0&&!c?fe.NONE:l),p.tailShift=m-t),p.aggregate(this.remove(m)),c&&l!==fe.NONE&&d===this.rawInputValue)if(l===fe.FORCE_LEFT){let h;for(;d===this.rawInputValue&&(h=this.displayValue.length);)p.aggregate(new Be({tailShift:-1})).aggregate(this.remove(h-1))}else l===fe.FORCE_RIGHT&&i.unshift();return p.aggregate(this.append(r,a,i))}maskEquals(t){return this.mask===t}optionsIsChanged(t){return!Ln(this,t)}typedValueEquals(t){const n=this.typedValue;return t===n||Ze.EMPTY_VALUES.includes(t)&&Ze.EMPTY_VALUES.includes(n)||(this.format?this.format(t,this)===this.format(this.typedValue,this):!1)}pad(t){return new Be}}Ze.DEFAULTS={skipInvalid:!0},Ze.EMPTY_VALUES=[void 0,null,""],Ce.Masked=Ze;class Nt{constructor(t,n){t===void 0&&(t=[]),n===void 0&&(n=0),this.chunks=t,this.from=n}toString(){return this.chunks.map(String).join("")}extend(t){if(!String(t))return;t=$t(t)?new yt(String(t)):t;const n=this.chunks[this.chunks.length-1],r=n&&(n.stop===t.stop||t.stop==null)&&t.from===n.from+n.toString().length;if(t instanceof yt)r?n.extend(t.toString()):this.chunks.push(t);else if(t instanceof Nt){if(t.stop==null){let l;for(;t.chunks.length&&t.chunks[0].stop==null;)l=t.chunks.shift(),l.from+=t.from,this.extend(l)}t.toString()&&(t.stop=t.blockIndex,this.chunks.push(t))}}appendTo(t){if(!(t instanceof Ce.MaskedPattern))return new yt(this.toString()).appendTo(t);const n=new Be;for(let r=0;r<this.chunks.length;++r){const l=this.chunks[r],a=t._mapPosToBlock(t.displayValue.length),s=l.stop;let i;if(s!=null&&(!a||a.index<=s)&&((l instanceof Nt||t._stops.indexOf(s)>=0)&&n.aggregate(t._appendPlaceholder(s)),i=l instanceof Nt&&t._blocks[s]),i){const c=i.appendTail(l);n.aggregate(c);const d=l.toString().slice(c.rawInserted.length);d&&n.aggregate(t.append(d,{tail:!0}))}else n.aggregate(t.append(l.toString(),{tail:!0}))}return n}get state(){return{chunks:this.chunks.map(t=>t.state),from:this.from,stop:this.stop,blockIndex:this.blockIndex}}set state(t){const{chunks:n,...r}=t;Object.assign(this,r),this.chunks=n.map(l=>{const a="chunks"in l?new Nt:new yt;return a.state=l,a})}unshift(t){if(!this.chunks.length||t!=null&&this.from>=t)return"";const n=t!=null?t-this.from:t;let r=0;for(;r<this.chunks.length;){const l=this.chunks[r],a=l.unshift(n);if(l.toString()){if(!a)break;++r}else this.chunks.splice(r,1);if(a)return a}return""}shift(){if(!this.chunks.length)return"";let t=this.chunks.length-1;for(;0<=t;){const n=this.chunks[t],r=n.shift();if(n.toString()){if(!r)break;--t}else this.chunks.splice(t,1);if(r)return r}return""}}class Vh{constructor(t,n){this.masked=t,this._log=[];const{offset:r,index:l}=t._mapPosToBlock(n)||(n<0?{index:0,offset:0}:{index:this.masked._blocks.length,offset:0});this.offset=r,this.index=l,this.ok=!1}get block(){return this.masked._blocks[this.index]}get pos(){return this.masked._blockStartPos(this.index)+this.offset}get state(){return{index:this.index,offset:this.offset,ok:this.ok}}set state(t){Object.assign(this,t)}pushState(){this._log.push(this.state)}popState(){const t=this._log.pop();return t&&(this.state=t),t}bindBlock(){this.block||(this.index<0&&(this.index=0,this.offset=0),this.index>=this.masked._blocks.length&&(this.index=this.masked._blocks.length-1,this.offset=this.block.displayValue.length))}_pushLeft(t){for(this.pushState(),this.bindBlock();0<=this.index;--this.index,this.offset=((n=this.block)==null?void 0:n.displayValue.length)||0){var n;if(t())return this.ok=!0}return this.ok=!1}_pushRight(t){for(this.pushState(),this.bindBlock();this.index<this.masked._blocks.length;++this.index,this.offset=0)if(t())return this.ok=!0;return this.ok=!1}pushLeftBeforeFilled(){return this._pushLeft(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,fe.FORCE_LEFT),this.offset!==0))return!0})}pushLeftBeforeInput(){return this._pushLeft(()=>{if(!this.block.isFixed)return this.offset=this.block.nearestInputPos(this.offset,fe.LEFT),!0})}pushLeftBeforeRequired(){return this._pushLeft(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,fe.LEFT),!0})}pushRightBeforeFilled(){return this._pushRight(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,fe.FORCE_RIGHT),this.offset!==this.block.value.length))return!0})}pushRightBeforeInput(){return this._pushRight(()=>{if(!this.block.isFixed)return this.offset=this.block.nearestInputPos(this.offset,fe.NONE),!0})}pushRightBeforeRequired(){return this._pushRight(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,fe.NONE),!0})}}class yo{constructor(t){Object.assign(this,t),this._value="",this.isFixed=!0}get value(){return this._value}get unmaskedValue(){return this.isUnmasking?this.value:""}get rawInputValue(){return this._isRawInput?this.value:""}get displayValue(){return this.value}reset(){this._isRawInput=!1,this._value=""}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),this._value=this._value.slice(0,t)+this._value.slice(n),this._value||(this._isRawInput=!1),new Be}nearestInputPos(t,n){n===void 0&&(n=fe.NONE);const r=0,l=this._value.length;switch(n){case fe.LEFT:case fe.FORCE_LEFT:return r;case fe.NONE:case fe.RIGHT:case fe.FORCE_RIGHT:default:return l}}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),this._isRawInput?n-t:0}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),r===void 0&&(r={}),r.raw&&this._isRawInput&&this._value.slice(t,n)||""}get isComplete(){return!0}get isFilled(){return!!this._value}_appendChar(t,n){if(n===void 0&&(n={}),this.isFilled)return new Be;const r=this.eager===!0||this.eager==="append",a=this.char===t&&(this.isUnmasking||n.input||n.raw)&&(!n.raw||!r)&&!n.tail,s=new Be({inserted:this.char,rawInserted:a?this.char:""});return this._value=this.char,this._isRawInput=a&&(n.raw||n.input),s}_appendEager(){return this._appendChar(this.char,{tail:!0})}_appendPlaceholder(){const t=new Be;return this.isFilled||(this._value=t.inserted=this.char),t}extractTail(){return new yt("")}appendTail(t){return $t(t)&&(t=new yt(String(t))),t.appendTo(this)}append(t,n,r){const l=this._appendChar(t[0],n);return r!=null&&(l.tailShift+=this.appendTail(r).tailShift),l}doCommit(){}get state(){return{_value:this._value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value,this._isRawInput=!!t._rawInputValue}pad(t){return this._appendPlaceholder()}}class nn{constructor(t){const{parent:n,isOptional:r,placeholderChar:l,displayChar:a,lazy:s,eager:i,...c}=t;this.masked=gt(c),Object.assign(this,{parent:n,isOptional:r,placeholderChar:l,displayChar:a,lazy:s,eager:i})}reset(){this.isFilled=!1,this.masked.reset()}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),t===0&&n>=1?(this.isFilled=!1,this.masked.remove(t,n)):new Be}get value(){return this.masked.value||(this.isFilled&&!this.isOptional?this.placeholderChar:"")}get unmaskedValue(){return this.masked.unmaskedValue}get rawInputValue(){return this.masked.rawInputValue}get displayValue(){return this.masked.value&&this.displayChar||this.value}get isComplete(){return!!this.masked.value||this.isOptional}_appendChar(t,n){if(n===void 0&&(n={}),this.isFilled)return new Be;const r=this.masked.state;let l=this.masked._appendChar(t,this.currentMaskFlags(n));return l.inserted&&this.doValidate(n)===!1&&(l=new Be,this.masked.state=r),!l.inserted&&!this.isOptional&&!this.lazy&&!n.input&&(l.inserted=this.placeholderChar),l.skip=!l.inserted&&!this.isOptional,this.isFilled=!!l.inserted,l}append(t,n,r){return this.masked.append(t,this.currentMaskFlags(n),r)}_appendPlaceholder(){return this.isFilled||this.isOptional?new Be:(this.isFilled=!0,new Be({inserted:this.placeholderChar}))}_appendEager(){return new Be}extractTail(t,n){return this.masked.extractTail(t,n)}appendTail(t){return this.masked.appendTail(t)}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),this.masked.extractInput(t,n,r)}nearestInputPos(t,n){n===void 0&&(n=fe.NONE);const r=0,l=this.value.length,a=Math.min(Math.max(t,r),l);switch(n){case fe.LEFT:case fe.FORCE_LEFT:return this.isComplete?a:r;case fe.RIGHT:case fe.FORCE_RIGHT:return this.isComplete?a:l;case fe.NONE:default:return a}}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),this.value.slice(t,n).length}doValidate(t){return this.masked.doValidate(this.currentMaskFlags(t))&&(!this.parent||this.parent.doValidate(this.currentMaskFlags(t)))}doCommit(){this.masked.doCommit()}get state(){return{_value:this.value,_rawInputValue:this.rawInputValue,masked:this.masked.state,isFilled:this.isFilled}}set state(t){this.masked.state=t.masked,this.isFilled=t.isFilled}currentMaskFlags(t){var n;return{...t,_beforeTailState:(t==null||(n=t._beforeTailState)==null?void 0:n.masked)||t?._beforeTailState}}pad(t){return new Be}}nn.DEFAULT_DEFINITIONS={0:/\d/,a:/[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,"*":/./};class zr extends Ze{updateOptions(t){super.updateOptions(t)}_update(t){const n=t.mask;n&&(t.validate=r=>r.search(n)>=0),super._update(t)}}Ce.MaskedRegExp=zr;class Je extends Ze{constructor(t){super({...Je.DEFAULTS,...t,definitions:Object.assign({},nn.DEFAULT_DEFINITIONS,t?.definitions)})}updateOptions(t){super.updateOptions(t)}_update(t){t.definitions=Object.assign({},this.definitions,t.definitions),super._update(t),this._rebuildMask()}_rebuildMask(){const t=this.definitions;this._blocks=[],this.exposeBlock=void 0,this._stops=[],this._maskedBlocks={};const n=this.mask;if(!n||!t)return;let r=!1,l=!1;for(let a=0;a<n.length;++a){if(this.blocks){const d=n.slice(a),m=Object.keys(this.blocks).filter(h=>d.indexOf(h)===0);m.sort((h,y)=>y.length-h.length);const p=m[0];if(p){const{expose:h,repeat:y,...f}=Wt(this.blocks[p]),k={lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,overwrite:this.overwrite,autofix:this.autofix,...f,repeat:y,parent:this},b=y!=null?new Ce.RepeatBlock(k):gt(k);b&&(this._blocks.push(b),h&&(this.exposeBlock=b),this._maskedBlocks[p]||(this._maskedBlocks[p]=[]),this._maskedBlocks[p].push(this._blocks.length-1)),a+=p.length-1;continue}}let s=n[a],i=s in t;if(s===Je.STOP_CHAR){this._stops.push(this._blocks.length);continue}if(s==="{"||s==="}"){r=!r;continue}if(s==="["||s==="]"){l=!l;continue}if(s===Je.ESCAPE_CHAR){if(++a,s=n[a],!s)break;i=!1}const c=i?new nn({isOptional:l,lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,...Wt(t[s]),parent:this}):new yo({char:s,eager:this.eager,isUnmasking:r});this._blocks.push(c)}}get state(){return{...super.state,_blocks:this._blocks.map(t=>t.state)}}set state(t){if(!t){this.reset();return}const{_blocks:n,...r}=t;this._blocks.forEach((l,a)=>l.state=n[a]),super.state=r}reset(){super.reset(),this._blocks.forEach(t=>t.reset())}get isComplete(){return this.exposeBlock?this.exposeBlock.isComplete:this._blocks.every(t=>t.isComplete)}get isFilled(){return this._blocks.every(t=>t.isFilled)}get isFixed(){return this._blocks.every(t=>t.isFixed)}get isOptional(){return this._blocks.every(t=>t.isOptional)}doCommit(){this._blocks.forEach(t=>t.doCommit()),super.doCommit()}get unmaskedValue(){return this.exposeBlock?this.exposeBlock.unmaskedValue:this._blocks.reduce((t,n)=>t+=n.unmaskedValue,"")}set unmaskedValue(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.unmaskedValue=t,this.appendTail(n),this.doCommit()}else super.unmaskedValue=t}get value(){return this.exposeBlock?this.exposeBlock.value:this._blocks.reduce((t,n)=>t+=n.value,"")}set value(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.value=t,this.appendTail(n),this.doCommit()}else super.value=t}get typedValue(){return this.exposeBlock?this.exposeBlock.typedValue:super.typedValue}set typedValue(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.typedValue=t,this.appendTail(n),this.doCommit()}else super.typedValue=t}get displayValue(){return this._blocks.reduce((t,n)=>t+=n.displayValue,"")}appendTail(t){return super.appendTail(t).aggregate(this._appendPlaceholder())}_appendEager(){var t;const n=new Be;let r=(t=this._mapPosToBlock(this.displayValue.length))==null?void 0:t.index;if(r==null)return n;this._blocks[r].isFilled&&++r;for(let l=r;l<this._blocks.length;++l){const a=this._blocks[l]._appendEager();if(!a.inserted)break;n.aggregate(a)}return n}_appendCharRaw(t,n){n===void 0&&(n={});const r=this._mapPosToBlock(this.displayValue.length),l=new Be;if(!r)return l;for(let s=r.index,i;i=this._blocks[s];++s){var a;const c=i._appendChar(t,{...n,_beforeTailState:(a=n._beforeTailState)==null||(a=a._blocks)==null?void 0:a[s]});if(l.aggregate(c),c.consumed)break}return l}extractTail(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const r=new Nt;return t===n||this._forEachBlocksInRange(t,n,(l,a,s,i)=>{const c=l.extractTail(s,i);c.stop=this._findStopBefore(a),c.from=this._blockStartPos(a),c instanceof Nt&&(c.blockIndex=a),r.extend(c)}),r}extractInput(t,n,r){if(t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),r===void 0&&(r={}),t===n)return"";let l="";return this._forEachBlocksInRange(t,n,(a,s,i,c)=>{l+=a.extractInput(i,c,r)}),l}_findStopBefore(t){let n;for(let r=0;r<this._stops.length;++r){const l=this._stops[r];if(l<=t)n=l;else break}return n}_appendPlaceholder(t){const n=new Be;if(this.lazy&&t==null)return n;const r=this._mapPosToBlock(this.displayValue.length);if(!r)return n;const l=r.index,a=t??this._blocks.length;return this._blocks.slice(l,a).forEach(s=>{if(!s.lazy||t!=null){var i;n.aggregate(s._appendPlaceholder((i=s._blocks)==null?void 0:i.length))}}),n}_mapPosToBlock(t){let n="";for(let r=0;r<this._blocks.length;++r){const l=this._blocks[r],a=n.length;if(n+=l.displayValue,t<=n.length)return{index:r,offset:t-a}}}_blockStartPos(t){return this._blocks.slice(0,t).reduce((n,r)=>n+=r.displayValue.length,0)}_forEachBlocksInRange(t,n,r){n===void 0&&(n=this.displayValue.length);const l=this._mapPosToBlock(t);if(l){const a=this._mapPosToBlock(n),s=a&&l.index===a.index,i=l.offset,c=a&&s?a.offset:this._blocks[l.index].displayValue.length;if(r(this._blocks[l.index],l.index,i,c),a&&!s){for(let d=l.index+1;d<a.index;++d)r(this._blocks[d],d,0,this._blocks[d].displayValue.length);r(this._blocks[a.index],a.index,0,a.offset)}}}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const r=super.remove(t,n);return this._forEachBlocksInRange(t,n,(l,a,s,i)=>{r.aggregate(l.remove(s,i))}),r}nearestInputPos(t,n){if(n===void 0&&(n=fe.NONE),!this._blocks.length)return 0;const r=new Vh(this,t);if(n===fe.NONE)return r.pushRightBeforeInput()||(r.popState(),r.pushLeftBeforeInput())?r.pos:this.displayValue.length;if(n===fe.LEFT||n===fe.FORCE_LEFT){if(n===fe.LEFT){if(r.pushRightBeforeFilled(),r.ok&&r.pos===t)return t;r.popState()}if(r.pushLeftBeforeInput(),r.pushLeftBeforeRequired(),r.pushLeftBeforeFilled(),n===fe.LEFT){if(r.pushRightBeforeInput(),r.pushRightBeforeRequired(),r.ok&&r.pos<=t||(r.popState(),r.ok&&r.pos<=t))return r.pos;r.popState()}return r.ok?r.pos:n===fe.FORCE_LEFT?0:(r.popState(),r.ok||(r.popState(),r.ok)?r.pos:0)}return n===fe.RIGHT||n===fe.FORCE_RIGHT?(r.pushRightBeforeInput(),r.pushRightBeforeRequired(),r.pushRightBeforeFilled()?r.pos:n===fe.FORCE_RIGHT?this.displayValue.length:(r.popState(),r.ok||(r.popState(),r.ok)?r.pos:this.nearestInputPos(t,fe.LEFT))):t}totalInputPositions(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);let r=0;return this._forEachBlocksInRange(t,n,(l,a,s,i)=>{r+=l.totalInputPositions(s,i)}),r}maskedBlock(t){return this.maskedBlocks(t)[0]}maskedBlocks(t){const n=this._maskedBlocks[t];return n?n.map(r=>this._blocks[r]):[]}pad(t){const n=new Be;return this._forEachBlocksInRange(0,this.displayValue.length,r=>n.aggregate(r.pad(t))),n}}Je.DEFAULTS={...Ze.DEFAULTS,lazy:!0,placeholderChar:"_"},Je.STOP_CHAR="`",Je.ESCAPE_CHAR="\\",Je.InputDefinition=nn,Je.FixedDefinition=yo,Ce.MaskedPattern=Je;class on extends Je{get _matchFrom(){return this.maxLength-String(this.from).length}constructor(t){super(t)}updateOptions(t){super.updateOptions(t)}_update(t){const{to:n=this.to||0,from:r=this.from||0,maxLength:l=this.maxLength||0,autofix:a=this.autofix,...s}=t;this.to=n,this.from=r,this.maxLength=Math.max(String(n).length,l),this.autofix=a;const i=String(this.from).padStart(this.maxLength,"0"),c=String(this.to).padStart(this.maxLength,"0");let d=0;for(;d<c.length&&c[d]===i[d];)++d;s.mask=c.slice(0,d).replace(/0/g,"\\0")+"0".repeat(this.maxLength-d),super._update(s)}get isComplete(){return super.isComplete&&!!this.value}boundaries(t){let n="",r="";const[,l,a]=t.match(/^(\D*)(\d*)(\D*)/)||[];return a&&(n="0".repeat(l.length)+a,r="9".repeat(l.length)+a),n=n.padEnd(this.maxLength,"0"),r=r.padEnd(this.maxLength,"9"),[n,r]}doPrepareChar(t,n){n===void 0&&(n={});let r;return[t,r]=super.doPrepareChar(t.replace(/\D/g,""),n),t||(r.skip=!this.isComplete),[t,r]}_appendCharRaw(t,n){if(n===void 0&&(n={}),!this.autofix||this.value.length+1>this.maxLength)return super._appendCharRaw(t,n);const r=String(this.from).padStart(this.maxLength,"0"),l=String(this.to).padStart(this.maxLength,"0"),[a,s]=this.boundaries(this.value+t);return Number(s)<this.from?super._appendCharRaw(r[this.value.length],n):Number(a)>this.to?!n.tail&&this.autofix==="pad"&&this.value.length+1<this.maxLength?super._appendCharRaw(r[this.value.length],n).aggregate(this._appendCharRaw(t,n)):super._appendCharRaw(l[this.value.length],n):super._appendCharRaw(t,n)}doValidate(t){const n=this.value;if(n.search(/[^0]/)===-1&&n.length<=this._matchFrom)return!0;const[l,a]=this.boundaries(n);return this.from<=Number(a)&&Number(l)<=this.to&&super.doValidate(t)}pad(t){const n=new Be;if(this.value.length===this.maxLength)return n;const r=this.value,l=this.maxLength-this.value.length;if(l){this.reset();for(let a=0;a<l;++a)n.aggregate(super._appendCharRaw("0",t));r.split("").forEach(a=>this._appendCharRaw(a))}return n}}Ce.MaskedRange=on;const Sh="d{.}`m{.}`Y";class bt extends Je{static extractPatternOptions(t){const{mask:n,pattern:r,...l}=t;return{...l,mask:$t(n)?n:r}}constructor(t){super(bt.extractPatternOptions({...bt.DEFAULTS,...t}))}updateOptions(t){super.updateOptions(t)}_update(t){const{mask:n,pattern:r,blocks:l,...a}={...bt.DEFAULTS,...t},s=Object.assign({},bt.GET_DEFAULT_BLOCKS());t.min&&(s.Y.from=t.min.getFullYear()),t.max&&(s.Y.to=t.max.getFullYear()),t.min&&t.max&&s.Y.from===s.Y.to&&(s.m.from=t.min.getMonth()+1,s.m.to=t.max.getMonth()+1,s.m.from===s.m.to&&(s.d.from=t.min.getDate(),s.d.to=t.max.getDate())),Object.assign(s,this.blocks,l),super._update({...a,mask:$t(n)?n:r,blocks:s})}doValidate(t){const n=this.date;return super.doValidate(t)&&(!this.isComplete||this.isDateExist(this.value)&&n!=null&&(this.min==null||this.min<=n)&&(this.max==null||n<=this.max))}isDateExist(t){return this.format(this.parse(t,this),this).indexOf(t)>=0}get date(){return this.typedValue}set date(t){this.typedValue=t}get typedValue(){return this.isComplete?super.typedValue:null}set typedValue(t){super.typedValue=t}maskEquals(t){return t===Date||super.maskEquals(t)}optionsIsChanged(t){return super.optionsIsChanged(bt.extractPatternOptions(t))}}bt.GET_DEFAULT_BLOCKS=()=>({d:{mask:on,from:1,to:31,maxLength:2},m:{mask:on,from:1,to:12,maxLength:2},Y:{mask:on,from:1900,to:9999}}),bt.DEFAULTS={...Je.DEFAULTS,mask:Date,pattern:Sh,format:(o,t)=>{if(!o)return"";const n=String(o.getDate()).padStart(2,"0"),r=String(o.getMonth()+1).padStart(2,"0"),l=o.getFullYear();return[n,r,l].join(".")},parse:(o,t)=>{const[n,r,l]=o.split(".").map(Number);return new Date(l,r-1,n)}},Ce.MaskedDate=bt;class rn extends Ze{constructor(t){super({...rn.DEFAULTS,...t}),this.currentMask=void 0}updateOptions(t){super.updateOptions(t)}_update(t){super._update(t),"mask"in t&&(this.exposeMask=void 0,this.compiledMasks=Array.isArray(t.mask)?t.mask.map(n=>{const{expose:r,...l}=Wt(n),a=gt({overwrite:this._overwrite,eager:this._eager,skipInvalid:this._skipInvalid,...l});return r&&(this.exposeMask=a),a}):[])}_appendCharRaw(t,n){n===void 0&&(n={});const r=this._applyDispatch(t,n);return this.currentMask&&r.aggregate(this.currentMask._appendChar(t,this.currentMaskFlags(n))),r}_applyDispatch(t,n,r){t===void 0&&(t=""),n===void 0&&(n={}),r===void 0&&(r="");const l=n.tail&&n._beforeTailState!=null?n._beforeTailState._value:this.value,a=this.rawInputValue,s=n.tail&&n._beforeTailState!=null?n._beforeTailState._rawInputValue:a,i=a.slice(s.length),c=this.currentMask,d=new Be,m=c?.state;return this.currentMask=this.doDispatch(t,{...n},r),this.currentMask&&(this.currentMask!==c?(this.currentMask.reset(),s&&(this.currentMask.append(s,{raw:!0}),d.tailShift=this.currentMask.value.length-l.length),i&&(d.tailShift+=this.currentMask.append(i,{raw:!0,tail:!0}).tailShift)):m&&(this.currentMask.state=m)),d}_appendPlaceholder(){const t=this._applyDispatch();return this.currentMask&&t.aggregate(this.currentMask._appendPlaceholder()),t}_appendEager(){const t=this._applyDispatch();return this.currentMask&&t.aggregate(this.currentMask._appendEager()),t}appendTail(t){const n=new Be;return t&&n.aggregate(this._applyDispatch("",{},t)),n.aggregate(this.currentMask?this.currentMask.appendTail(t):super.appendTail(t))}currentMaskFlags(t){var n,r;return{...t,_beforeTailState:((n=t._beforeTailState)==null?void 0:n.currentMaskRef)===this.currentMask&&((r=t._beforeTailState)==null?void 0:r.currentMask)||t._beforeTailState}}doDispatch(t,n,r){return n===void 0&&(n={}),r===void 0&&(r=""),this.dispatch(t,this,n,r)}doValidate(t){return super.doValidate(t)&&(!this.currentMask||this.currentMask.doValidate(this.currentMaskFlags(t)))}doPrepare(t,n){n===void 0&&(n={});let[r,l]=super.doPrepare(t,n);if(this.currentMask){let a;[r,a]=super.doPrepare(r,this.currentMaskFlags(n)),l=l.aggregate(a)}return[r,l]}doPrepareChar(t,n){n===void 0&&(n={});let[r,l]=super.doPrepareChar(t,n);if(this.currentMask){let a;[r,a]=super.doPrepareChar(r,this.currentMaskFlags(n)),l=l.aggregate(a)}return[r,l]}reset(){var t;(t=this.currentMask)==null||t.reset(),this.compiledMasks.forEach(n=>n.reset())}get value(){return this.exposeMask?this.exposeMask.value:this.currentMask?this.currentMask.value:""}set value(t){this.exposeMask?(this.exposeMask.value=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.value=t}get unmaskedValue(){return this.exposeMask?this.exposeMask.unmaskedValue:this.currentMask?this.currentMask.unmaskedValue:""}set unmaskedValue(t){this.exposeMask?(this.exposeMask.unmaskedValue=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.unmaskedValue=t}get typedValue(){return this.exposeMask?this.exposeMask.typedValue:this.currentMask?this.currentMask.typedValue:""}set typedValue(t){if(this.exposeMask){this.exposeMask.typedValue=t,this.currentMask=this.exposeMask,this._applyDispatch();return}let n=String(t);this.currentMask&&(this.currentMask.typedValue=t,n=this.currentMask.unmaskedValue),this.unmaskedValue=n}get displayValue(){return this.currentMask?this.currentMask.displayValue:""}get isComplete(){var t;return!!((t=this.currentMask)!=null&&t.isComplete)}get isFilled(){var t;return!!((t=this.currentMask)!=null&&t.isFilled)}remove(t,n){const r=new Be;return this.currentMask&&r.aggregate(this.currentMask.remove(t,n)).aggregate(this._applyDispatch()),r}get state(){var t;return{...super.state,_rawInputValue:this.rawInputValue,compiledMasks:this.compiledMasks.map(n=>n.state),currentMaskRef:this.currentMask,currentMask:(t=this.currentMask)==null?void 0:t.state}}set state(t){const{compiledMasks:n,currentMaskRef:r,currentMask:l,...a}=t;n&&this.compiledMasks.forEach((s,i)=>s.state=n[i]),r!=null&&(this.currentMask=r,this.currentMask.state=l),super.state=a}extractInput(t,n,r){return this.currentMask?this.currentMask.extractInput(t,n,r):""}extractTail(t,n){return this.currentMask?this.currentMask.extractTail(t,n):super.extractTail(t,n)}doCommit(){this.currentMask&&this.currentMask.doCommit(),super.doCommit()}nearestInputPos(t,n){return this.currentMask?this.currentMask.nearestInputPos(t,n):super.nearestInputPos(t,n)}get overwrite(){return this.currentMask?this.currentMask.overwrite:this._overwrite}set overwrite(t){this._overwrite=t}get eager(){return this.currentMask?this.currentMask.eager:this._eager}set eager(t){this._eager=t}get skipInvalid(){return this.currentMask?this.currentMask.skipInvalid:this._skipInvalid}set skipInvalid(t){this._skipInvalid=t}get autofix(){return this.currentMask?this.currentMask.autofix:this._autofix}set autofix(t){this._autofix=t}maskEquals(t){return Array.isArray(t)?this.compiledMasks.every((n,r)=>{if(!t[r])return;const{mask:l,...a}=t[r];return Ln(n,a)&&n.maskEquals(l)}):super.maskEquals(t)}typedValueEquals(t){var n;return!!((n=this.currentMask)!=null&&n.typedValueEquals(t))}}rn.DEFAULTS={...Ze.DEFAULTS,dispatch:(o,t,n,r)=>{if(!t.compiledMasks.length)return;const l=t.rawInputValue,a=t.compiledMasks.map((s,i)=>{const c=t.currentMask===s,d=c?s.displayValue.length:s.nearestInputPos(s.displayValue.length,fe.FORCE_LEFT);return s.rawInputValue!==l?(s.reset(),s.append(l,{raw:!0})):c||s.remove(d),s.append(o,t.currentMaskFlags(n)),s.appendTail(r),{index:i,weight:s.rawInputValue.length,totalInputPositions:s.totalInputPositions(0,Math.max(d,s.nearestInputPos(s.displayValue.length,fe.FORCE_LEFT)))}});return a.sort((s,i)=>i.weight-s.weight||i.totalInputPositions-s.totalInputPositions),t.compiledMasks[a[0].index]}},Ce.MaskedDynamic=rn;class ln extends Je{constructor(t){super({...ln.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){const{enum:n,...r}=t;if(n){const l=n.map(i=>i.length),a=Math.min(...l),s=Math.max(...l)-a;r.mask="*".repeat(a),s&&(r.mask+="["+"*".repeat(s)+"]"),this.enum=n}super._update(r)}_appendCharRaw(t,n){n===void 0&&(n={});const r=Math.min(this.nearestInputPos(0,fe.FORCE_RIGHT),this.value.length),l=this.enum.filter(a=>this.matchValue(a,this.unmaskedValue+t,r));if(l.length){l.length===1&&this._forEachBlocksInRange(0,this.value.length,(s,i)=>{const c=l[0][i];i>=this.value.length||c===s.value||(s.reset(),s._appendChar(c,n))});const a=super._appendCharRaw(l[0][this.value.length],n);return l.length===1&&l[0].slice(this.unmaskedValue.length).split("").forEach(s=>a.aggregate(super._appendCharRaw(s))),a}return new Be({skip:!this.isComplete})}extractTail(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),new yt("",t)}remove(t,n){if(t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),t===n)return new Be;const r=Math.min(super.nearestInputPos(0,fe.FORCE_RIGHT),this.value.length);let l;for(l=t;l>=0&&!(this.enum.filter(i=>this.matchValue(i,this.value.slice(r,l),r)).length>1);--l);const a=super.remove(l,n);return a.tailShift+=l-t,a}get isComplete(){return this.enum.indexOf(this.value)>=0}}ln.DEFAULTS={...Je.DEFAULTS,matchValue:(o,t,n)=>o.indexOf(t,n)===n},Ce.MaskedEnum=ln;class jr extends Ze{updateOptions(t){super.updateOptions(t)}_update(t){super._update({...t,validate:t.mask})}}Ce.MaskedFunction=jr;var Ur;class tt extends Ze{constructor(t){super({...tt.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){super._update(t),this._updateRegExps()}_updateRegExps(){const t="^"+(this.allowNegative?"[+|\\-]?":""),n="\\d*",r=(this.scale?"("+ho(this.radix)+"\\d{0,"+this.scale+"})?":"")+"$";this._numberRegExp=new RegExp(t+n+r),this._mapToRadixRegExp=new RegExp("["+this.mapToRadix.map(ho).join("")+"]","g"),this._thousandsSeparatorRegExp=new RegExp(ho(this.thousandsSeparator),"g")}_removeThousandsSeparators(t){return t.replace(this._thousandsSeparatorRegExp,"")}_insertThousandsSeparators(t){const n=t.split(this.radix);return n[0]=n[0].replace(/\B(?=(\d{3})+(?!\d))/g,this.thousandsSeparator),n.join(this.radix)}doPrepareChar(t,n){n===void 0&&(n={});const[r,l]=super.doPrepareChar(this._removeThousandsSeparators(this.scale&&this.mapToRadix.length&&(n.input&&n.raw||!n.input&&!n.raw)?t.replace(this._mapToRadixRegExp,this.radix):t),n);return t&&!r&&(l.skip=!0),r&&!this.allowPositive&&!this.value&&r!=="-"&&l.aggregate(this._appendChar("-")),[r,l]}_separatorsCount(t,n){n===void 0&&(n=!1);let r=0;for(let l=0;l<t;++l)this._value.indexOf(this.thousandsSeparator,l)===l&&(++r,n&&(t+=this.thousandsSeparator.length));return r}_separatorsCountFromSlice(t){return t===void 0&&(t=this._value),this._separatorsCount(this._removeThousandsSeparators(t).length,!0)}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),[t,n]=this._adjustRangeWithSeparators(t,n),this._removeThousandsSeparators(super.extractInput(t,n,r))}_appendCharRaw(t,n){n===void 0&&(n={});const r=n.tail&&n._beforeTailState?n._beforeTailState._value:this._value,l=this._separatorsCountFromSlice(r);this._value=this._removeThousandsSeparators(this.value);const a=this._value;this._value+=t;const s=this.number;let i=!isNaN(s),c=!1;if(i){let h;this.min!=null&&this.min<0&&this.number<this.min&&(h=this.min),this.max!=null&&this.max>0&&this.number>this.max&&(h=this.max),h!=null&&(this.autofix?(this._value=this.format(h,this).replace(tt.UNMASKED_RADIX,this.radix),c||(c=a===this._value&&!n.tail)):i=!1),i&&(i=!!this._value.match(this._numberRegExp))}let d;i?d=new Be({inserted:this._value.slice(a.length),rawInserted:c?"":t,skip:c}):(this._value=a,d=new Be),this._value=this._insertThousandsSeparators(this._value);const m=n.tail&&n._beforeTailState?n._beforeTailState._value:this._value,p=this._separatorsCountFromSlice(m);return d.tailShift+=(p-l)*this.thousandsSeparator.length,d}_findSeparatorAround(t){if(this.thousandsSeparator){const n=t-this.thousandsSeparator.length+1,r=this.value.indexOf(this.thousandsSeparator,n);if(r<=t)return r}return-1}_adjustRangeWithSeparators(t,n){const r=this._findSeparatorAround(t);r>=0&&(t=r);const l=this._findSeparatorAround(n);return l>=0&&(n=l+this.thousandsSeparator.length),[t,n]}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),[t,n]=this._adjustRangeWithSeparators(t,n);const r=this.value.slice(0,t),l=this.value.slice(n),a=this._separatorsCount(r.length);this._value=this._insertThousandsSeparators(this._removeThousandsSeparators(r+l));const s=this._separatorsCountFromSlice(r);return new Be({tailShift:(s-a)*this.thousandsSeparator.length})}nearestInputPos(t,n){if(!this.thousandsSeparator)return t;switch(n){case fe.NONE:case fe.LEFT:case fe.FORCE_LEFT:{const r=this._findSeparatorAround(t-1);if(r>=0){const l=r+this.thousandsSeparator.length;if(t<l||this.value.length<=l||n===fe.FORCE_LEFT)return r}break}case fe.RIGHT:case fe.FORCE_RIGHT:{const r=this._findSeparatorAround(t);if(r>=0)return r+this.thousandsSeparator.length}}return t}doCommit(){if(this.value){const t=this.number;let n=t;this.min!=null&&(n=Math.max(n,this.min)),this.max!=null&&(n=Math.min(n,this.max)),n!==t&&(this.unmaskedValue=this.format(n,this));let r=this.value;this.normalizeZeros&&(r=this._normalizeZeros(r)),this.padFractionalZeros&&this.scale>0&&(r=this._padFractionalZeros(r)),this._value=r}super.doCommit()}_normalizeZeros(t){const n=this._removeThousandsSeparators(t).split(this.radix);return n[0]=n[0].replace(/^(\D*)(0*)(\d*)/,(r,l,a,s)=>l+s),t.length&&!/\d$/.test(n[0])&&(n[0]=n[0]+"0"),n.length>1&&(n[1]=n[1].replace(/0*$/,""),n[1].length||(n.length=1)),this._insertThousandsSeparators(n.join(this.radix))}_padFractionalZeros(t){if(!t)return t;const n=t.split(this.radix);return n.length<2&&n.push(""),n[1]=n[1].padEnd(this.scale,"0"),n.join(this.radix)}doSkipInvalid(t,n,r){n===void 0&&(n={});const l=this.scale===0&&t!==this.thousandsSeparator&&(t===this.radix||t===tt.UNMASKED_RADIX||this.mapToRadix.includes(t));return super.doSkipInvalid(t,n,r)&&!l}get unmaskedValue(){return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix,tt.UNMASKED_RADIX)}set unmaskedValue(t){super.unmaskedValue=t}get typedValue(){return this.parse(this.unmaskedValue,this)}set typedValue(t){this.rawInputValue=this.format(t,this).replace(tt.UNMASKED_RADIX,this.radix)}get number(){return this.typedValue}set number(t){this.typedValue=t}get allowNegative(){return this.min!=null&&this.min<0||this.max!=null&&this.max<0}get allowPositive(){return this.min!=null&&this.min>0||this.max!=null&&this.max>0}typedValueEquals(t){return(super.typedValueEquals(t)||tt.EMPTY_VALUES.includes(t)&&tt.EMPTY_VALUES.includes(this.typedValue))&&!(t===0&&this.value==="")}}Ur=tt,tt.UNMASKED_RADIX=".",tt.EMPTY_VALUES=[...Ze.EMPTY_VALUES,0],tt.DEFAULTS={...Ze.DEFAULTS,mask:Number,radix:",",thousandsSeparator:"",mapToRadix:[Ur.UNMASKED_RADIX],min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER,scale:2,normalizeZeros:!0,padFractionalZeros:!1,parse:Number,format:o=>o.toLocaleString("en-US",{useGrouping:!1,maximumFractionDigits:20})},Ce.MaskedNumber=tt;const Rn={MASKED:"value",UNMASKED:"unmaskedValue",TYPED:"typedValue"};function bo(o,t,n){t===void 0&&(t=Rn.MASKED),n===void 0&&(n=Rn.MASKED);const r=gt(o);return l=>r.runIsolated(a=>(a[t]=l,a[n]))}function Hr(o,t,n,r){return bo(t,n,r)(o)}Ce.PIPE_TYPE=Rn,Ce.createPipe=bo,Ce.pipe=Hr;class qr extends Je{get repeatFrom(){var t;return(t=Array.isArray(this.repeat)?this.repeat[0]:this.repeat===1/0?0:this.repeat)!=null?t:0}get repeatTo(){var t;return(t=Array.isArray(this.repeat)?this.repeat[1]:this.repeat)!=null?t:1/0}constructor(t){super(t)}updateOptions(t){super.updateOptions(t)}_update(t){var n,r,l;const{repeat:a,...s}=Wt(t);this._blockOpts=Object.assign({},this._blockOpts,s);const i=gt(this._blockOpts);this.repeat=(n=(r=a??i.repeat)!=null?r:this.repeat)!=null?n:1/0,super._update({mask:"m".repeat(Math.max(this.repeatTo===1/0&&((l=this._blocks)==null?void 0:l.length)||0,this.repeatFrom)),blocks:{m:i},eager:i.eager,overwrite:i.overwrite,skipInvalid:i.skipInvalid,lazy:i.lazy,placeholderChar:i.placeholderChar,displayChar:i.displayChar})}_allocateBlock(t){if(t<this._blocks.length)return this._blocks[t];if(this.repeatTo===1/0||this._blocks.length<this.repeatTo)return this._blocks.push(gt(this._blockOpts)),this.mask+="m",this._blocks[this._blocks.length-1]}_appendCharRaw(t,n){n===void 0&&(n={});const r=new Be;for(let c=(l=(a=this._mapPosToBlock(this.displayValue.length))==null?void 0:a.index)!=null?l:Math.max(this._blocks.length-1,0),d,m;d=(s=this._blocks[c])!=null?s:m=!m&&this._allocateBlock(c);++c){var l,a,s,i;const p=d._appendChar(t,{...n,_beforeTailState:(i=n._beforeTailState)==null||(i=i._blocks)==null?void 0:i[c]});if(p.skip&&m){this._blocks.pop(),this.mask=this.mask.slice(1);break}if(r.aggregate(p),p.consumed)break}return r}_trimEmptyTail(t,n){var r,l;t===void 0&&(t=0);const a=Math.max(((r=this._mapPosToBlock(t))==null?void 0:r.index)||0,this.repeatFrom,0);let s;n!=null&&(s=(l=this._mapPosToBlock(n))==null?void 0:l.index),s==null&&(s=this._blocks.length-1);let i=0;for(let c=s;a<=c&&!this._blocks[c].unmaskedValue;--c,++i);i&&(this._blocks.splice(s-i+1,i),this.mask=this.mask.slice(i))}reset(){super.reset(),this._trimEmptyTail()}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const r=super.remove(t,n);return this._trimEmptyTail(t,n),r}totalInputPositions(t,n){return t===void 0&&(t=0),n==null&&this.repeatTo===1/0?1/0:super.totalInputPositions(t,n)}get state(){return super.state}set state(t){this._blocks.length=t._blocks.length,this.mask=this.mask.slice(0,this._blocks.length),super.state=t}}Ce.RepeatBlock=qr;try{globalThis.IMask=Ce}catch{}const Pn=Object.freeze(Object.defineProperty({__proto__:null,ChangeDetails:Be,ChunksTailDetails:Nt,DIRECTION:fe,HTMLContenteditableMaskElement:go,HTMLInputMaskElement:Rr,HTMLMaskElement:tn,InputMask:Pr,MaskElement:In,Masked:Ze,MaskedDate:bt,MaskedDynamic:rn,MaskedEnum:ln,MaskedFunction:jr,MaskedNumber:tt,MaskedPattern:Je,MaskedRange:on,MaskedRegExp:zr,PIPE_TYPE:Rn,PatternFixedDefinition:yo,PatternInputDefinition:nn,RepeatBlock:qr,createMask:gt,createPipe:bo,default:Ce,forceDirection:Lr,normalizeOpts:Wt,pipe:Hr},Symbol.toStringTag,{value:"Module"})),$h=async o=>{try{const t=new FormData;return t.append("unique","true"),t.append("file",o),(await(await fetch("/file/upload/uploads?id=&form=&table=",{method:"POST",body:t})).json())?.result}catch(t){console.error(t)}},Nh=async(o,t,n)=>{const r=t.clipboardData?.items;if(r){const l=t.clipboardData?.getData("text/html"),a=t.clipboardData?.getData("text/plain");if(l){const{state:s,dispatch:i}=o,{tr:c}=s,d=n.fromSchema(o.state.schema),m=new DOMParser().parseFromString(l,"text/html").body,p=d.parse(m),h=c.replaceSelectionWith(p);return i(h),t.preventDefault(),!0}if(a){const{state:s,dispatch:i}=o,{tr:c}=s,d=c.insertText(a,s.selection.from,s.selection.to);return i(d),t.preventDefault(),!0}for(let s=0;s<r.length;s++){const i=r[s];if(i.type.startsWith("image/")){const c=i.getAsFile();if(c){const d=await $h(c),{schema:m}=o.state,p=m.nodes.image.create({src:d?.file_path}),h=o.state.tr.replaceSelectionWith(p);return o.dispatch(h),t.preventDefault(),!0}}}}return!1},Ah="https://esm.sh",ot="3.7.2",Kr="3.7.2",Mh=`?deps=@tiptap/core@${ot},@tiptap/pm@${Kr}`,rt=o=>`${Ah}/${o}${Mh}`,lt={core:rt(`@tiptap/core@${ot}`),starterKit:rt(`@tiptap/starter-kit@${ot}`),textStyle:rt(`@tiptap/extension-text-style@${ot}`),table:rt(`@tiptap/extension-table@${ot}`),highlight:rt(`@tiptap/extension-highlight@${ot}`),subscript:rt(`@tiptap/extension-subscript@${ot}`),superscript:rt(`@tiptap/extension-superscript@${ot}`),link:rt(`@tiptap/extension-link@${ot}`),image:rt(`@tiptap/extension-image@${ot}`),textAlign:rt(`@tiptap/extension-text-align@${ot}`),heading:rt(`@tiptap/extension-heading@${ot}`),paragraph:rt(`@tiptap/extension-paragraph@${ot}`),pmModel:rt(`@tiptap/pm@${Kr}/model`)},an="__vs_form_tiptap_loader__",at=o=>import(o),Ke=(o,t)=>o?.[t]||o?.default?.[t]||o?.default?.default?.[t]||o?.default||o,Wr={1:"font-weight:700; font-size:30px;",2:"font-weight:700; font-size:26px;",3:"font-weight:700; font-size:22px;",4:"font-weight:700; font-size:18px;",5:"font-weight:500; font-size:16px;",6:"font-weight:400; font-size:14px;"},Fh=o=>o.extend({addOptions(){return{...this.parent?.(),levels:[1,2,3,4,5,6]}}}).extend({addAttributes(){return{...this.parent?.(),level:{default:1,renderHTML:t=>{const n=t.level||1;return{class:`heading-level-${n}`,style:Wr[n]||Wr[1]}}}}}}),Dh=o=>o.configure({HTMLAttributes:{style:"min-height: 1rem;"}}),Th=(o,t,n,r,l)=>{const a=t.extend({renderHTML({HTMLAttributes:s}){return["div",{style:"overflow-x: auto;"},["table",s,0]]},parseHTML(){return[{tag:"div.table-wrapper table",priority:100},{tag:"table"}]}});return o.extend({addExtensions(){return[a.configure({HTMLAttributes:{class:"editor-content"},resizable:!0}),n,r,l]}})},Lh=o=>o.extend({addAttributes(){return{...this.parent?.(),fontFamily:{default:null,parseHTML:t=>t.style.fontFamily?.replace(/['"]/g,""),renderHTML:t=>t.fontFamily?{style:`font-family: ${t.fontFamily}`}:{}},fontSize:{default:null,parseHTML:t=>t.style.fontSize?.replace(/['"]/g,""),renderHTML:t=>t.fontSize?{style:`font-size: ${t.fontSize}`}:{}},color:{default:null,parseHTML:t=>t.style.color?.replace(/['"]/g,""),renderHTML:t=>t.color?{style:`color: ${t.color}`}:{}},backgroundColor:{default:null,parseHTML:t=>t.style.backgroundColor?.replace(/['"]/g,""),renderHTML:t=>!t.backgroundColor||t.backgroundColor==="transparent"?{}:{style:`background-color: ${t.backgroundColor}`}}}},addCommands(){return{setFontFamily:t=>({chain:n})=>n().setMark("textStyle",{fontFamily:t}).run(),unsetFontFamily:()=>({chain:t})=>t().setMark("textStyle",{fontFamily:null}).removeEmptyTextStyle().run(),setFontSize:t=>({chain:n})=>n().setMark("textStyle",{fontSize:t}).run(),unsetFontSize:()=>({chain:t})=>t().setMark("textStyle",{fontSize:null}).removeEmptyTextStyle().run(),setColor:t=>({chain:n})=>n().setMark("textStyle",{color:t}).run(),unsetColor:()=>({chain:t})=>t().setMark("textStyle",{color:null}).removeEmptyTextStyle().run(),setBackgroundColor:t=>({chain:n})=>n().setMark("textStyle",{backgroundColor:t}).run(),unsetBackgroundColor:()=>({chain:t})=>t().setMark("textStyle",{backgroundColor:null}).removeEmptyTextStyle().run()}}}),Ih=o=>o.create({name:"iframe",group:"block",inline:!1,atom:!0,selectable:!0,addAttributes(){return{src:{default:null},width:{default:"100%"},height:{default:"280"},frameborder:{default:"0"},allow:{default:null},allowfullscreen:{default:null},referrerpolicy:{default:null},loading:{default:null},class:{default:null},title:{default:null},style:{default:null}}},parseHTML(){return[{tag:"iframe"}]},renderHTML({HTMLAttributes:t}){return["iframe",t]}});async function Oh(){if(typeof window>"u")return null;const o=window;return o[an]||(o[an]=Promise.all([at(lt.core),at(lt.starterKit),at(lt.textStyle),at(lt.table),at(lt.highlight),at(lt.subscript),at(lt.superscript),at(lt.link),at(lt.image),at(lt.textAlign),at(lt.heading),at(lt.paragraph),at(lt.pmModel)]).then(([t,n,r,l,a,s,i,c,d,m,p,h,y])=>{const f=Ke(t,"Editor"),k=Ke(t,"Node"),b=Ke(t,"Extension"),C=Ke(n,"StarterKit"),x=Ke(r,"TextStyle"),_=Ke(l,"TableKit"),N=Ke(l,"Table"),U=Ke(l,"TableRow"),Y=Ke(l,"TableCell"),L=Ke(l,"TableHeader"),E=Ke(a,"Highlight"),V=Ke(s,"Subscript"),S=Ke(i,"Superscript"),O=Ke(c,"Link"),B=Ke(d,"Image"),T=Ke(m,"TextAlign"),A=Ke(p,"Heading"),W=Ke(h,"Paragraph"),X=Ke(y,"DOMParser");if(!f||!k||!C||!x||!_||!N||!U||!Y||!L||!E||!V||!S||!O||!B||!T||!A||!W||!X)throw new Error("Failed to resolve one or more Tiptap modules");return{Editor:f,Extension:b,ProseMirrorDOMParser:X,StarterKit:C,ExtendedTextStyle:Lh(x),Highlight:E,Subscript:V,Superscript:S,Link:O,Image:B,TextAlign:T,CustomHeading:Fh(A),CustomParagraph:Dh(W),CustomTableKit:Th(_,N,U,Y,L),Iframe:Ih(k)}}).catch(t=>{throw delete o[an],t})),o[an]}function Rh(o){let t=!1;const n=e.shallowRef(null),r=e.ref(!1),l=e.ref(""),a=async(d,m="")=>{if(!d)return null;r.value=!0,l.value="";try{const p=await Oh();if(!p)return null;const h=new p.Editor({element:d,content:m,extensions:[p.StarterKit.configure({history:{depth:100,newGroupDelay:500},code:{HTMLAttributes:{class:"editor-code"}},codeBlock:{HTMLAttributes:{class:"editor-codeblock"}},paragraph:!1,heading:!1,link:!1}),p.Superscript,p.Subscript,p.ExtendedTextStyle,p.CustomParagraph,p.CustomHeading,p.Highlight,p.Image.configure({inline:!0,allowBase64:!0,HTMLAttributes:{class:"editor-image"}}),p.TextAlign.configure({types:["heading","paragraph"]}),p.Link.configure({HTMLAttributes:{class:"editor-link"},openOnClick:!1,autolink:!0}),p.CustomTableKit,p.Iframe],editorProps:{handlePaste:(y,f)=>Nh(y,f,p.ProseMirrorDOMParser),handleKeyDown:(y,f)=>{if(f.key==="Tab"){const k=y.state,{$anchor:b}=k.selection;let C=!1;for(let x=b.depth;x>0;x--){const _=b.node(x);if(_&&(_.type.name==="bulletList"||_.type.name==="orderedList")){C=!0;break}}return C?!1:(f.preventDefault(),!0)}return!1}}});return n.value=e.markRaw(h),h}catch(p){return l.value="Failed to load rich text editor dependencies.",console.error("Failed to initialize rich text editor",p),null}finally{r.value=!1}},s=e.computed(()=>n.value||null);return e.watch(n,d=>{d&&n.value.on("update",m=>{if(!t){t=!0;const p=m.editor.getHTML();o.modelValue,setTimeout(()=>{t=!1},10)}})}),{editor:n,editorInstance:s,focusEditor:()=>{n.value&&!n.value.isFocused&&n.value.commands.focus()},createEditor:a,destroyEditor:()=>{n.value&&(n.value.destroy(),n.value=null)},isLoading:r,loadError:l}}function Ph(o,t,n,{toEditorContent:r,toSourceContent:l}={}){const a=e.ref(!1),s=e.ref(""),i=e.ref(null);return{isHtmlMode:a,htmlContent:s,htmlTextarea:i,toggleHtmlMode:async m=>{if(a.value=m,m)o.value&&(s.value=l?await l(o.value.getHTML(),t):o.value.getHTML()),e.nextTick(()=>{i.value&&i.value.focus?.()});else if(o.value){const p=r?await r(s.value,t):s.value;o.value.commands.setContent(p,!0),e.nextTick(()=>{o.value?.commands?.focus?.()})}},onHtmlInput:m=>{s.value=m,n&&n("update:modelValue",m)}}}function zh(){const o=e.ref(!1);return{isFullscreen:o,toggleFullscreen:()=>{o.value=!o.value}}}const At=o=>o.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;"),sn=o=>{let t=At(o||"");return t=t.replace(/!\[([^\]]*)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(n,r,l,a)=>{const s=a?` title="${At(a)}"`:"";return`<img src="${At(l)}" alt="${At(r)}"${s}>`}),t=t.replace(/\[([^\]]+)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(n,r,l,a)=>{const s=a?` title="${At(a)}"`:"";return`<a href="${At(l)}"${s} target="_blank" rel="noopener noreferrer">${r}</a>`}),t=t.replace(/`([^`]+)`/g,"<code>$1</code>"),t=t.replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>"),t=t.replace(/__([^_]+)__/g,"<strong>$1</strong>"),t=t.replace(/~~([^~]+)~~/g,"<del>$1</del>"),t=t.replace(/\*([^*\n]+)\*/g,"<em>$1</em>"),t=t.replace(/_([^_\n]+)_/g,"<em>$1</em>"),t},cn=o=>/^\s*\d+\.\s+/.test(o),ko=o=>/^\s*[-*+]\s+/.test(o),Gr=o=>/^\s*[-*+]\s+\[[ xX]\]\s+/.test(o),xo=o=>/^\s*>\s?/.test(o),wo=o=>/^\s*\|?(?:\s*:?-{3,}:?\s*\|)+\s*:?-{3,}:?\s*\|?\s*$/.test(o),Yr=o=>o.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(t=>sn(t.trim())),jh=(o,t)=>{const n=o[t],r=o[t+1];if(!n||!r||!n.includes("|")||!wo(r))return null;const l=Yr(n),a=[];let s=t+2;for(;s<o.length&&o[s].includes("|")&&o[s].trim()!=="";){const d=Yr(o[s]);a.push(`<tr>${d.map(m=>`<td>${m}</td>`).join("")}</tr>`),s+=1}const i=`<thead><tr>${l.map(d=>`<th>${d}</th>`).join("")}</tr></thead>`,c=a.length?`<tbody>${a.join("")}</tbody>`:"";return{html:`<table>${i}${c}</table>`,nextIndex:s}},Uh=(o,t)=>{const n=cn(o[t]),r=n?"ol":"ul",l=[];let a=t;for(;a<o.length;){const s=o[a];if(s.trim()===""||!(n?cn(s):(ko(s)||Gr(s))&&!cn(s)))break;const c=s.match(/^\s*[-*+]\s+\[([ xX])\]\s+(.*)$/);if(c){const d=c[1].toLowerCase()==="x";l.push(`<li><input type="checkbox" disabled${d?" checked":""}> ${sn(c[2])}</li>`)}else{const d=s.replace(/^\s*(?:[-*+]|\d+\.)\s+/,"");l.push(`<li>${sn(d)}</li>`)}a+=1}return{html:`<${r}>${l.join("")}</${r}>`,nextIndex:a}},Hh=(o,t)=>{const r=o[t].replace(/^```/,"").trim(),l=[];let a=t+1;for(;a<o.length&&!o[a].startsWith("```");)l.push(o[a]),a+=1;return{html:`<pre><code${r?` class="language-${At(r)}"`:""}>${At(l.join(`
6
6
  `))}</code></pre>`,nextIndex:a<o.length?a+1:a}},qh=(o,t)=>{const n=[];let r=t;for(;r<o.length;){const l=o[r];if(l.trim()===""||l.startsWith("```")||/^#{1,6}\s+/.test(l)||/^---+$/.test(l.trim())||/^\*\*\*+$/.test(l.trim())||xo(l)||cn(l)||ko(l)||r+1<o.length&&l.includes("|")&&wo(o[r+1]))break;n.push(l.trim()),r+=1}return{html:`<p>${sn(n.join(" "))}</p>`,nextIndex:r}},Xr=o=>{const n=(o||"").replace(/\r\n/g,`
7
7
  `).split(`