@opengis/form 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- (function(xe,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):(xe=typeof globalThis<"u"?globalThis:xe||self,e(xe.FormBuilder={},xe.Vue,xe.OpenGISCore,xe.lucide))})(this,(function(xe,e,ge,X){"use strict";function _n(o,t,n){if(!Array.isArray(n)||!n.length)return null;const r=String(o?.preset??o?.renderer??"").trim().toLowerCase();if(r){const a=n.find(l=>String(l.id).trim().toLowerCase()===r);if(a)return a}return n.find(a=>typeof a.match=="function"&&a.match(o,t))??null}function Yo(o,t,n){return!!_n(o,t,n)}const Xo=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 a(s){if(!t.text)return;const c=s.currentTarget.getBoundingClientRect();r.value={top:`${c.bottom+4}px`,left:`${Math.min(c.left,window.innerWidth-230)}px`},n.value=!0}function l(){n.value=!1}return(s,c)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("span",{class:"inline-flex items-center",onMouseenter:a,onMouseleave:l},[e.renderSlot(s.$slots,"default",{},()=>[e.createVNode(e.unref(X.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))}}),lo={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"}}},ao={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:"Скасувати"}}},Wl={class:"w-full relative"},Kl={key:0,class:"text-[14px] font-medium text-gray-900 mb-2 flex items-center gap-1"},Gl={class:"opacity-100"},Yl={key:0,class:"text-red-500 text-[14px]"},Xl={key:2,class:"text-[11px] text-slate-500 font-normal"},Zl={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Jl=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),a=e.computed(()=>!!t.item?.rules?.includes("required")),l=e.computed(()=>t.item?.info||""),s=e.inject("schema-by-name"),c={en:lo?.form?.autofillFrom,uk:ao?.form?.autofillFrom},i=e.computed(()=>{const d=t.item?.__autoMeta;if(!d||d?.source!=="parent-auto"||!d?.parentField)return"";const h=String(t.item?.__locale||"uk"),y=String(d.parentField),p=s?.value?.[y],m=p?.[`label:${h}`]||(h!=="uk"?p?.[h]:void 0)||p?.label||p?.ua||p?.en||y;return`${c[h]||c.uk}: ${m}`});return(d,h)=>(e.openBlock(),e.createElementBlock("div",Wl,[r.value?(e.openBlock(),e.createElementBlock("div",Kl,[e.createElementVNode("span",Gl,e.toDisplayString(n.value),1),a.value?(e.openBlock(),e.createElementBlock("span",Yl,"*")):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createBlock(Xo,{key:1,text:l.value},null,8,["text"])):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("span",Xl," ("+e.toDisplayString(i.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",Zl,e.toDisplayString(d.error),1)):e.createCommentVNode("",!0)]))}}),Ql={class:"w-full relative flex flex-row items-center gap-2"},ea={key:0,class:"text-red-500 text-[14px]"},ta={key:2,class:"text-[11px] text-slate-500 font-normal"},na={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},oa=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||""),a=e.inject("schema-by-name"),l={en:lo?.form?.autofillFrom,uk:ao?.form?.autofillFrom},s=e.computed(()=>{const p=t.item?.__autoMeta;if(!p||p?.source!=="parent-auto"||!p?.parentField)return"";const m=String(t.item?.__locale||"uk"),f=String(p.parentField),w=a?.value?.[f],b=w?.[`label:${m}`]||(m!=="uk"?w?.[m]:void 0)||w?.label||w?.ua||w?.en||f;return`${l[m]||l.uk}: ${b}`}),c=e.computed(()=>t.columns??{container:12,label:3}),i=e.computed(()=>{const{container:p,label:m}=c.value;return!p||p<=0?0:Math.min(Math.max(m??0,0),p)/p}),d=e.computed(()=>t.item?.type==="html"||i.value<=0?!1:!!n.value),h=e.computed(()=>{if(!d.value)return{};const p=`${i.value*100}%`;return{flexBasis:p,maxWidth:p}}),y=e.computed(()=>{const{container:p,label:m}=c.value;if(!p||p<=0)return{};if(t.item?.type==="html")return{flexBasis:"100%",maxWidth:"100%"};if(!d.value)return{flexBasis:"100%",maxWidth:"100%"};const f=Math.max(p-Math.max(m??0,0),0)/p;if(!f)return{};const w=`${f*100}%`;return{flexBasis:w,maxWidth:w}});return(p,m)=>(e.openBlock(),e.createElementBlock("div",Ql,[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(h.value)},[e.createTextVNode(e.toDisplayString(n.value)+" ",1),p.item?.rules?.includes("required")&&n.value?(e.openBlock(),e.createElementBlock("span",ea,"*")):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createBlock(Xo,{key:1,text:r.value},null,8,["text"])):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock("span",ta," ("+e.toDisplayString(s.value)+") ",1)):e.createCommentVNode("",!0)],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"flex-1 min-w-0",style:e.normalizeStyle(y.value)},[e.renderSlot(p.$slots,"default",e.normalizeProps(e.guardReactiveProps(p.$attrs)))],4),p.error?(e.openBlock(),e.createElementBlock("span",na,e.toDisplayString(p.error),1)):e.createCommentVNode("",!0)]))}}),ra={class:"w-full relative"},la={key:0,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},aa=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",ra,[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(t.$attrs))),t.error?(e.openBlock(),e.createElementBlock("span",la,e.toDisplayString(t.error),1)):e.createCommentVNode("",!0)]))}}),sa={class:"flex-1 min-w-0"},ia={key:0,class:"text-sm font-medium text-slate-700 dark:text-slate-200 flex items-center gap-1"},ca={class:"truncate"},da={key:0,class:"text-red-500 text-[14px]"},ua=["innerHTML"],pa={key:0,class:"mt-1 text-xs text-red-500"},ma={default:Jl,horizontal:oa,inline:aa,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??""),a=e.computed(()=>Array.isArray(t.item?.rules)&&t.item.rules.includes("required")),l=e.computed(()=>(typeof t.error=="string"?t.error:"")??""),s=()=>{const c=typeof localStorage<"u"?localStorage.getItem("locale"):null;n.value=c||"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)}),(c,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["w-full relative",{"opacity-60":c.item?.disabled}])},[e.createElementVNode("div",{class:e.normalizeClass(["gap-2 md:flex-row md:items-center md:justify-between",[["switcher","native-select"].includes(c.item.type)?"flex flex-col":""]])},[e.createElementVNode("div",sa,[c.ua||c.label?(e.openBlock(),e.createElementBlock("p",ia,[e.createElementVNode("span",ca,e.toDisplayString(c.item[n.value]||c.ua||c.label),1),a.value?(e.openBlock(),e.createElementBlock("span",da,"*")):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,ua)):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:e.normalizeClass(["w-full",["select","native-select"].includes(c.item.type)?"md:w-[30%]":"md:w-auto"])},[e.renderSlot(c.$slots,"default",e.normalizeProps(e.guardReactiveProps(c.$attrs)))],2)],2),l.value?(e.openBlock(),e.createElementBlock("p",pa,e.toDisplayString(l.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 fa=["placeholder","disabled"],ha=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"),a=e.computed(()=>!!t.disabled),l=e.computed(()=>t.placeholder??"");return(s,c)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"password","onUpdate:modelValue":c[0]||(c[0]=i=>r.value=i),placeholder:l.value,disabled:a.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,fa)),[[e.vModelText,r.value]])}}),ga=["placeholder","disabled","maxlength","minlength"],Yt=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"),a=e.computed(()=>!!t.disabled),l=e.computed(()=>t.placeholder??""),s=e.computed(()=>t.maxlength??void 0),c=e.computed(()=>t.minlength??void 0);function i(){typeof r.value=="string"&&(r.value=r.value.trim())}return(d,h)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"text","onUpdate:modelValue":h[0]||(h[0]=y=>r.value=y),placeholder:l.value,disabled:a.value,maxlength:s.value,minlength:c.value,onBlur:i,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,ga)),[[e.vModelText,r.value]])}}),ya=["step","placeholder","disabled","min","max"],Zo=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(),a=e.useModel(o,"modelValue"),l=e.computed(()=>!!t.disabled),s=h=>{if(h==null||h==="")return;const y=typeof h=="string"?h.trim().replace(",","."):h,p=Number(y);return Number.isFinite(p)?p:void 0},c=e.computed(()=>s(t.min??r.min)),i=e.computed(()=>s(t.max??r.max)),d=e.computed(()=>{if(t.step!==void 0&&t.step!==null&&t.step!=="")return t.step;const h=r.step;return typeof h=="number"||typeof h=="string"?h:"any"});return(h,y)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"number",step:d.value,"onUpdate:modelValue":y[0]||(y[0]=p=>a.value=p),placeholder:o.placeholder,disabled:l.value,class:e.normalizeClass(["py-1.5 px-3 block w-full bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"},min:c.value,max:i.value},null,10,ya)),[[e.vModelText,a.value]])}}),Cn=o=>!!String(o??"").trim(),Dt=o=>o?.color?String(o.color):"",on=o=>{const t=o?.icon;if(typeof t=="string")return t;const n=o?.imgUrl;return typeof n=="string"?n:""},rn=o=>{const t=o?.icon;return t&&typeof t!="string"?t:null},ba={class:"flex items-center gap-[4px]"},ka=["value","id","disabled"],wa=["for"],xa=["innerHTML"],va={key:1,class:"text-[14px] text-gray-700 flex items-center gap-2 dark:text-neutral-400"},_a=["src"],Ca=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,a=e.computed({get:()=>r.modelValue,set:m=>n("update:modelValue",m)}),l=e.computed(()=>!!r.disabled),s=e.computed(()=>on(r.option)),c=e.computed(()=>rn(r.option)),i=e.computed(()=>Dt(r.option)),d=e.computed(()=>!!(i.value&&!s.value&&!c.value)),h=e.computed(()=>!!(s.value&&i.value)),y=e.computed(()=>i.value?{color:i.value}:void 0),p=e.computed(()=>{if(!(!s.value||!i.value))return{backgroundColor:i.value,WebkitMaskImage:`url(${s.value})`,maskImage:`url(${s.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(m,f)=>(e.openBlock(),e.createElementBlock("div",ba,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",value:m.value,"onUpdate:modelValue":f[0]||(f[0]=w=>a.value=w),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":l.value}]),id:m.id,disabled:l.value},null,10,ka),[[e.vModelCheckbox,a.value]]),e.createElementVNode("label",{for:m.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":l.value}])},[e.createElementVNode("div",{class:e.normalizeClass(["h-[16px] text-white w-[16px] flex items-center justify-center shrink-0 border rounded",[a.value?"bg-blue-600 border-blue-600":"bg-white border-gray-600",m.error?"border-red-600":""]])},[e.createVNode(e.unref(X.Check),{class:"h-4 w-4"})],2),m.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:m.html},null,8,xa)):(e.openBlock(),e.createElementBlock("span",va,[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:i.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(p.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,_a)):c.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(c.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(y.value)},null,8,["style"])):e.createCommentVNode("",!0),e.renderSlot(m.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(m.label),1)])]))],10,wa)]))}}),Ea=["name","value","disabled"],Ba=["innerHTML"],Va={key:1,class:"flex items-center gap-[6px] text-[14px]"},Sa={key:2,class:"text-[16px] inline-flex items-center justify-center"},$a=["src"],Aa=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,a=e.computed({get:()=>n.modelValue,set:w=>{r("update:modelValue",w)}}),l=e.computed(()=>Array.isArray(a.value)?a.value.includes(n.value):a.value===!0||a.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"),c=e.computed(()=>({...n.option??{},icon:n.option?.icon??n.icon,imgUrl:n.option?.imgUrl??n.imgUrl,color:n.option?.color})),i=e.computed(()=>on(c.value)),d=e.computed(()=>rn(c.value)),h=e.computed(()=>Dt(c.value)),y=e.computed(()=>!!(h.value&&!i.value&&!d.value)),p=e.computed(()=>!!(i.value&&h.value)),m=e.computed(()=>h.value?{color:h.value}:void 0),f=e.computed(()=>{if(!(!i.value||!h.value))return{backgroundColor:h.value,WebkitMaskImage:`url(${i.value})`,maskImage:`url(${i.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(w,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,l.value?"ring-blue-500":"border border-gray-200 ring-transparent"]])},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",class:"hidden",name:w.id,value:w.value,"onUpdate:modelValue":b[0]||(b[0]=v=>a.value=v),disabled:w.disabled},null,8,Ea),[[e.vModelCheckbox,a.value]]),w.html?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-full",innerHTML:w.html},null,8,Ba)):(e.openBlock(),e.createElementBlock("span",Va,[y.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:h.value})},null,4)):e.createCommentVNode("",!0),p.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(f.value)},null,4)):i.value||d.value?(e.openBlock(),e.createElementBlock("span",Sa,[i.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:i.value,width:"16",height:"16",alt:"icon"},null,8,$a)):d.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),{key:1,class:"h-4 w-4",style:e.normalizeStyle(m.value)},null,8,["style"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(w.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(w.label),1)])]))],2))}}),Na={class:"flex items-center"},so=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,a=`radio-${Math.floor(Math.random()*1e4)}`,l=e.computed({get:()=>Array.isArray(n.modelValue)?Array.isArray(n.modelValue)&&n.modelValue.includes(n.value):n.modelValue,set:c=>{if(Array.isArray(n.modelValue)){let i=[...n.modelValue];c?i.includes(n.value)||i.push(n.value):i=i.filter(d=>d!==n.value),r("update:modelValue",i)}else r("update:modelValue",c)}}),s=e.ref(`vs-checkbox-${n.view||"default"}`);return(c,i)=>(e.openBlock(),e.createElementBlock("div",Na,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value==="vs-checkbox-buttons"?e.unref(Aa):e.unref(Ca)),{value:c.value,label:c.label,html:c.labelHtml,info:c.option?.info,disabled:c.disabled,modelValue:l.value,"onUpdate:modelValue":i[0]||(i[0]=d=>l.value=d),id:a,icon:c.icon,imgUrl:c.imgUrl,option:c.option,style:e.normalizeStyle(c.style),error:c.error},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.label),1)]),_:1},8,["value","label","html","info","disabled","modelValue","icon","imgUrl","option","style","error"]))]))}}),Ma={key:0,class:"flex items-start gap-x-1"},Fa={key:0,class:"text-red-500 text-[14px]"},Da=["title"],Ta=["disabled"],io=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,a)=>t.view==="checkbox"?(e.openBlock(),e.createElementBlock("div",Ma,[e.createVNode(so,{modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=l=>n.value=l),error:r.error||""},null,8,["modelValue","error"]),r.rules?.includes("required")?(e.openBlock(),e.createElementBlock("span",Fa,"*")):e.createCommentVNode("",!0),r.i?(e.openBlock(),e.createElementBlock("button",{key:1,class:"cursor-pointer",title:r.i,onClick:a[1]||(a[1]=e.withModifiers(()=>{},["prevent"]))},[e.createVNode(e.unref(X.Info),{class:"h-4 w-4 text-gray-500"})],8,Da)):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:a[2]||(a[2]=l=>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,Ta))}}),La=["id","innerHTML"],co=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,La))}}),Ia=["placeholder","disabled","name"],En=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"),a=e.ref(null);let l=null;function s(c){const i=c==null?"":String(c),d={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},h=new Set;let y=!1;for(let m=0;m<i.length;m+=1){const f=i[m];f==="{"?y=!0:f==="}"?y=!1:y&&h.add(f)}const p={};return Object.keys(d).forEach(m=>{h.has(m)||(p[m]=d[m])}),{mask:i,definitions:p,lazy:!1}}return e.onMounted(async()=>{if(a.value){const{default:c}=await Promise.resolve().then(()=>Jn),i=s(t.mask||"");l=c(a.value,i),l.on("accept",()=>{r.value=t.unmask?l.unmaskedValue:l.value}),l.on("complete",()=>{r.value=t.unmask?l.unmaskedValue:l.value}),l.value=r.value!=null?String(r.value):""}}),e.onBeforeUnmount(()=>{l?.destroy()}),e.watch(()=>t.mask,c=>{if(l){const i=s(c||"");l.updateOptions(i)}}),e.watch(r,c=>{l&&l.unmaskedValue!==c&&(l.value=c!=null?String(c):"")}),(c,i)=>(e.openBlock(),e.createElementBlock("input",{type:"text",ref_key:"inputEl",ref:a,placeholder:c.placeholder,disabled:c.disabled,name:c.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,Ia))}}),Oa={class:"relative w-full bg-white rounded-lg"},Pa={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},Ra=["placeholder","disabled"],uo=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(a,l)=>(e.openBlock(),e.createElementBlock("div",Oa,[e.createElementVNode("div",Pa,[e.createVNode(e.unref(X.Mail),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.withDirectives(e.createElementVNode("input",{type:"email","onUpdate:modelValue":l[0]||(l[0]=s=>r.value=s),placeholder:a.placeholder,disabled:a.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":a.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Ra),[[e.vModelText,r.value]])]))}}),Et="+99(999)-999-99-99";function Tt(o){if(!o?.trim())return 0;const t=new Set(["9","0","a","A","*"]);let n=!1,r=0;for(let a=0;a<o.length;a+=1){const l=o[a];if(l==="{"){n=!0;continue}if(l==="}"){n=!1;continue}!n&&t.has(l)&&(r+=1)}return r}const za={class:"relative w-full bg-white rounded-lg"},ja={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] pointer-events-none"},Ua=["name","placeholder","disabled","pattern"],po=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:Et}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.computed(()=>`^\\+[1-9]\\d{${(Tt(t.mask||Et)||Tt(Et))-1}}$`),{inputClass:r}=et(t.style),a=e.useModel(o,"modelValue"),l=e.ref(null);let s=null;function c(h){const y={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},p=new Set;let m=!1;for(let w=0;w<h.length;w+=1){const b=h[w];b==="{"?m=!0:b==="}"?m=!1:m&&p.add(b)}const f={};return Object.keys(y).forEach(w=>{p.has(w)||(f[w]=y[w])}),{mask:h,definitions:f,lazy:!1,disabled:t.disabled}}function i(h){if(h==null||h==="")return"";const y=String(h).trim();return y?y.replace(/\D/g,""):""}function d(){if(!s)return;const h=s.unmaskedValue??"";a.value=h?`+${h}`:""}return e.onMounted(async()=>{if(!l.value)return;const{default:h}=await Promise.resolve().then(()=>Jn),y=c(t.mask||"");s=h(l.value,y),s.on("accept",d),s.on("complete",d);const p=i(a.value);s.unmaskedValue=p}),e.onBeforeUnmount(()=>{s?.destroy(),s=null}),e.watch(()=>t.mask,h=>{s&&s.updateOptions(c(h||""))}),e.watch(()=>t.disabled,h=>{s&&s.updateOptions({disabled:h})}),e.watch(a,h=>{if(!s)return;const y=i(h);s.unmaskedValue!==y&&(s.unmaskedValue=y)}),(h,y)=>(e.openBlock(),e.createElementBlock("div",za,[e.createElementVNode("div",ja,[e.createVNode(e.unref(X.Phone),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.createElementVNode("input",{ref_key:"inputEl",ref:l,type:"tel",name:h.name,placeholder:h.placeholder,disabled:h.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":h.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Ua)]))}}),Ha=["value","disabled"],qa=["innerHTML"],Wa={key:1,class:"flex items-center gap-2"},Ka=["src"],Ga={class:"text-[13px] text-gray-700"},Ya=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),a=e.computed(()=>on(t.option)),l=e.computed(()=>rn(t.option)),s=e.computed(()=>Dt(t.option)),c=e.computed(()=>!!(s.value&&!a.value&&!l.value)),i=e.computed(()=>!!(a.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),h=e.computed(()=>{if(!(!a.value||!s.value))return{backgroundColor:s.value,WebkitMaskImage:`url(${a.value})`,maskImage:`url(${a.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(y,p)=>(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":p[0]||(p[0]=m=>n.value=m),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,Ha),[[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,qa)):(e.openBlock(),e.createElementBlock("div",Wa,[c.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),i.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(h.value)},null,4)):a.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:a.value,alt:"icon"},null,8,Ka)):l.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(d.value)},null,8,["style"])):e.createCommentVNode("",!0),e.createElementVNode("span",Ga,e.toDisplayString(t.text),1)]))],2))}}),Xa=["value","disabled"],Za=["innerHTML"],Ja={key:1,class:"flex items-center gap-2"},Qa=["src"],es={class:"text-[13px] text-gray-700"},ts={"vs-input-radio-default":Ya,"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),a=e.computed(()=>on(t.option)),l=e.computed(()=>rn(t.option)),s=e.computed(()=>Dt(t.option)),c=e.computed(()=>!!(s.value&&!a.value&&!l.value)),i=e.computed(()=>!!(a.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),h=e.computed(()=>{if(!(!a.value||!s.value))return{backgroundColor:s.value,WebkitMaskImage:`url(${a.value})`,maskImage:`url(${a.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(y,p)=>(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":p[0]||(p[0]=m=>n.value=m),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,Xa),[[e.vModelRadio,n.value]]),t.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:t.html},null,8,Za)):(e.openBlock(),e.createElementBlock("div",Ja,[c.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),i.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(h.value)},null,4)):a.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:a.value,alt:"icon"},null,8,Qa)):l.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(d.value)},null,8,["style"])):e.createCommentVNode("",!0),e.createElementVNode("span",es,e.toDisplayString(t.text),1)]))],2))}})},Jo=o=>Array.isArray(o)?o:Array.isArray(o?.data)?o.data:[],Qo=o=>{const t=o.host??"",n=o.prefix??"api",r=o.api??`/${n}/suggest/${o.data}`;return`${t}${r}`},ns=o=>({fetchOptions:async(r="")=>{const a=o();if(!a.data)return a.options?[...a.options]:[];try{const l=new URLSearchParams;l.set("json","1"),r&&l.set("key",r),a.parentValue!==void 0&&a.parentValue!==null&&a.parentValue!==""&&l.set("parent",String(a.parentValue)),a.start===1&&l.set("start","1");const c=await(await fetch(`${Qo(a)}?${l.toString()}`)).json();return Jo(c)}catch{return[]}},fetchOptionByValue:async r=>{if(r==null||r==="")return null;const a=o();if(!a.data)return(a.options??[]).find(s=>s?.id?.toString()===String(r))??null;try{const l=new URLSearchParams;l.set("json","1"),l.set("val",String(r)),a.parentValue!==void 0&&a.parentValue!==null&&a.parentValue!==""&&l.set("parent",String(a.parentValue)),a.start===1&&l.set("start","1");const c=await(await fetch(`${Qo(a)}?${l.toString()}`)).json();return Jo(c)[0]??null}catch{return null}}}),Bn=({props:o,formValues:t=null,watchParent:n=!0})=>{const r=e.ref([]),a=e.computed(()=>o.parent?t?.value?.[o.parent]?.toString?.()??null:null),{fetchOptions:l,fetchOptionByValue:s}=ns(()=>({data:o.data,options:o.options,api:o.api,prefix:o.prefix,host:o.host,start:o.start,parentValue:a.value})),c=async(i="")=>{const d=o.data?await l(i):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(a,async()=>{o.data&&(r.value=await l())},{immediate:!1}),{optionsList:r,parentValue:a,fetchOptions:l,fetchOptionByValue:s,loadOptions:c}},os=/\{\{\s*([^}]+?)\s*\}\}/g,rs=o=>(o?String(o):"").replace(/<[^>]*>/g,"").trim(),ls=(o,t)=>t.split(".").reduce((n,r)=>n==null?n:n[r.trim()],o),Vn=(o,t)=>{if(!o)return"";const n=(t??"").trim();return n?n.replace(os,(r,a)=>{const l=String(a).trim(),s=o,i=(l.includes(".")?ls(s,l):void 0)??s[l];return i!=null?String(i):""}):o.text??""},Sn=(o,t)=>{if(!o)return"";const n=Vn(o,t);return rs(n)||o.text||""},mo=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(()=>ts[`vs-input-radio-${t.view}`]),a=e.computed(()=>t.slot??t?.optionTemplate??""),l=e.computed(()=>Cn(a.value)),s=m=>Vn(m,a.value),c=m=>Sn(m,a.value),i=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)"}}),h=e.inject("values",null),{optionsList:y,loadOptions:p}=Bn({props:t,formValues:h});return e.onMounted(async()=>{await p()}),(m,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(y),w=>(e.openBlock(),e.createElementBlock("div",{key:w?.id,class:e.normalizeClass(["flex items-stretch",m.position==="horizontal"?t.customClass:""]),style:e.normalizeStyle(d.value)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value),e.mergeProps({text:c(w),html:l.value?s(w):"",option:w,value:w.id.toString(),checked:n.value?.toString?.()===w.id?.toString?.(),"custom-class":m.position==="horizontal"?"":t.customClass,modelValue:n.value,"onUpdate:modelValue":f[0]||(f[0]=b=>n.value=b)},{ref_for:!0},m.$attrs),null,16,["text","html","option","value","checked","custom-class","modelValue"]))],6))),128))],2))}}),as={key:1,class:"w-full flex flex-col gap-4"},ss={key:0,class:"text-sm font-medium text-muted-foreground my-2"},is="Без категорії",cs=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,a=e.reactive({}),l=e.inject("values",null),{optionsList:s,loadOptions:c}=Bn({props:{...n,options:n.options},formValues:l}),i=e.computed(()=>s.value),d=C=>C?.value||C?.id||C?.text||C,h=e.computed(()=>n.slot??n?.optionTemplate??""),y=e.computed(()=>Cn(h.value)),p=C=>Vn(C,h.value),m=C=>Sn(C,h.value),f=C=>`lg:col-span-${C||12}`,w=e.computed(()=>[n.position==="vertical"?"flex flex-col":"",n.colSpan?"grid":"flex justify-start"]),b=C=>C==null||C===""?null:typeof C=="string"||typeof C=="number"?C:String(C),v=e.computed(()=>{if(!n.group)return[];const C=new Map;i.value.forEach(O=>{const E=O[n.group],S=b(E);C.has(S)||C.set(S,[]),C.get(S)?.push(O)});const V=[];n.values?.length&&n.values.forEach(O=>{const E=b(O);V.push(E)});const $=new Set,U=O=>{const E=C.get(O)||[];if(!E.length)return null;const S=O===null?"group-null":`group-${String(O)}`,_=O===null?is:String(O);return $.add(O),{key:S,label:_,options:E}},Z=[];return V.forEach(O=>{const E=U(O);E&&Z.push(E)}),C.forEach((O,E)=>{if($.has(E))return;const S=U(E);S&&Z.push(S)}),Z});return e.watch(()=>n.modelValue,C=>{if(typeof C=="boolean"&&i.value.length===1){const V=d(i.value[0]);a[V]=C}else if(Array.isArray(C)){const V=new Set(C);i.value.forEach($=>{if(!$.disabled){const U=d($);a[U]=V.has(U)}})}},{immediate:!0}),e.watch(a,()=>{if(!i.value.length){r("update:modelValue",null);return}const C=Object.entries(a).filter(([,V])=>V).map(([V])=>V);r("update:modelValue",C.length===0?[]:C)},{deep:!0}),e.onMounted(async()=>{if(await c(),typeof n.modelValue=="boolean"&&i.value.length===1){const C=d(i.value[0]);a[C]=n.modelValue}else if(Array.isArray(n.modelValue)){const C=new Set(n.modelValue);i.value.forEach(V=>{if(!V.disabled){const $=d(V);a[$]=C.has($)}})}}),(C,V)=>n.group?(e.openBlock(),e.createElementBlock("div",as,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,$=>(e.openBlock(),e.createElementBlock("div",{key:$.key,class:"flex flex-col gap-2"},[$.label?(e.openBlock(),e.createElementBlock("span",ss,e.toDisplayString($.label),1)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-0 w-full gap-[12px]",w.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList($.options,U=>(e.openBlock(),e.createBlock(so,{modelValue:a[d(U)],"onUpdate:modelValue":Z=>a[d(U)]=Z,value:d(U),class:e.normalizeClass(f(C.colSpan)),disabled:n.disabled||U.disabled,label:m(U),labelHtml:y.value?p(U):"",key:`${$.key}-${d(U)}`,icon:U?.icon,imgUrl:U?.imgUrl,option:U,view:C.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]",w.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,$=>(e.openBlock(),e.createBlock(so,{modelValue:a[d($)],"onUpdate:modelValue":U=>a[d($)]=U,value:d($),class:e.normalizeClass(f(C.colSpan)),disabled:n.disabled||$.disabled,label:m($),labelHtml:y.value?p($):"",key:d($),icon:$?.icon,imgUrl:$?.imgUrl,option:$,view:C.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2))}}),Be=(o,t)=>{const n=o.__vccOpts||o;for(const[r,a]of t)n[r]=a;return n},er=Be(cs,[["__scopeId","data-v-9056e0ec"]]),ds=1440*60*1e3,us=["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"],ps=["січ","лют","бер","квіт","трав","черв","лип","серп","вер","жовт","лист","груд"],ms=["нд","пн","вт","ср","чт","пт","сб"];function Ye(o){return o instanceof Date&&!Number.isNaN(o.getTime())}const Xt=o=>new Date(o.getTime());function Ut(o){const t=Xt(o);return t.setHours(0,0,0,0),t}function ln(o){const t=Xt(o);return t.setHours(23,59,59,999),t}function fo(o){return Ut(new Date(o.getFullYear(),o.getMonth(),1))}function ho(o){return ln(new Date(o.getFullYear(),o.getMonth()+1,0))}function go(o,t){const n=new Date(o),r=n.getDate();n.setDate(1),n.setMonth(n.getMonth()+t);const a=new Date(n.getFullYear(),n.getMonth()+1,0).getDate();return n.setDate(Math.min(r,a)),n}function fs(o,t){return go(o,-1)}function $n(o,t){const n=new Date(o);return n.setFullYear(n.getFullYear()+t),n}function tr(o,t){return $n(o,-t)}function nr(o){return Ut(new Date(o.getFullYear(),0,1))}function or(o){return ln(new Date(o.getFullYear(),11,31))}function hs(o){const t=Math.floor(o.getFullYear()/10)*10;return Ut(new Date(t,0,1))}function gs(o){const t=Math.floor(o.getFullYear()/10)*10+9;return ln(new Date(t,11,31))}const ft=o=>o.getFullYear(),An=o=>Math.floor(o.getFullYear()/10)*10;function ys(o){const t=[];let n=Ut(o.start);const r=Ut(o.end);for(;n<=r;)t.push(Xt(n)),n=new Date(n.getTime()+ds);return t}function bs(o){const t=[];let n=fo(o.start);const r=ho(o.end);for(;n<=r;)t.push(Xt(n)),n=go(n,1);return t}function ks(o){const t=[];let n=nr(o.start);const r=or(o.end);for(;n<=r;)t.push(Xt(n)),n=$n(n,1);return t}function yo(o,t=1){const n=Ut(o),r=(n.getDay()-t+7)%7;return n.setDate(n.getDate()-r),n}function ws(o,t=1){const n=yo(o,t);return n.setDate(n.getDate()+6),ln(n)}function xs(o,t,n=0){const r=yo(o,n),a=(t-n+7)%7;return r.setDate(r.getDate()+a),r}const Nn=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear()&&o.getMonth()===t.getMonth()&&o.getDate()===t.getDate(),bo=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear()&&o.getMonth()===t.getMonth(),rr=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear(),lr=(o,t)=>!!o&&!!t&&Nn(o,t)&&o.getHours()===t.getHours(),vs=(o,t)=>!!o&&!!t&&lr(o,t)&&o.getMinutes()===t.getMinutes();function _s(o,t){const n=o.getTime();return n>=t.start.getTime()&&n<=t.end.getTime()}const an=(o,t)=>!!o&&!!t&&o.getTime()<t.getTime(),sn=(o,t)=>!!o&&!!t&&o.getTime()>t.getTime();function Cs(o){const t=o.filter(n=>Ye(n));if(t.length)return t.reduce((n,r)=>n.getTime()>=r.getTime()?n:r)}function Es(o){const t=o.filter(n=>Ye(n));if(t.length)return t.reduce((n,r)=>n.getTime()<=r.getTime()?n:r)}function Bs(o,t){const n=Xt(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 Mn=(o,t=2)=>String(o).padStart(t,"0");function ar(o,t){return t==="wide"?us[o]:ps[o]}function Vs(o){return ms[o]}const Ss=[{token:"LLLL",format:o=>ar(o.getMonth(),"wide")},{token:"LLL",format:o=>ar(o.getMonth(),"abbreviated")},{token:"EE",format:o=>Vs(o.getDay())},{token:"yyyy",format:o=>String(o.getFullYear())},{token:"MM",format:o=>Mn(o.getMonth()+1)},{token:"dd",format:o=>Mn(o.getDate())},{token:"HH",format:o=>Mn(o.getHours())},{token:"mm",format:o=>Mn(o.getMinutes())}];function cn(o,t){if(!Ye(o))return"";let n="",r=0;for(;r<t.length;){const a=Ss.find(l=>t.startsWith(l.token,r));a?(n+=a.format(o),r+=a.token.length):(n+=t[r],r+=1)}return n}const $s={"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{1,2}):(\d{2})(?::(\d{2}))?$/,"HH:mm":/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/,"MM.yyyy":/^(\d{2})\.(\d{4})$/,yyyy:/^(\d{4})$/};function sr(o,t){const n=$s[t];if(!n){const a=new Date(o);return Ye(a)?a:null}const r=o.match(n);if(!r)return null;switch(t){case"yyyy-MM-dd":{const[,a,l,s]=r,c=new Date(Number(a),Number(l)-1,Number(s));return Ye(c)?c:null}case"dd.MM.yyyy":{const[,a,l,s]=r,c=new Date(Number(s),Number(l)-1,Number(a));return Ye(c)?c:null}case"dd.MM.yyyy HH:mm":{const[,a,l,s,c,i,d]=r,h=new Date(Number(s),Number(l)-1,Number(a),Number(c),Number(i),Number(d||0));return Ye(h)?h:null}case"HH:mm":{const[,a,l,s]=r,c=new Date;return c.setHours(Number(a),Number(l),Number(s||0),0),c}case"MM.yyyy":{const[,a,l]=r;return new Date(Number(l),Number(a)-1,1)}case"yyyy":{const[,a]=r;return new Date(Number(a),0,1)}default:return null}}const As=["year","month","day","time","custom"],Ns=e.defineComponent({components:{ChevronLeft:X.ChevronLeft,ChevronRight:X.ChevronRight},emits:{elementClick:o=>Ye(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"&&As.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 a=t?.("form.date.today");return a&&a!=="form.date.today"?a:"Сьогодні"}),r=e.computed(()=>{const a=t?.("form.date.clear");return a&&a!=="form.date.clear"?a:"Очистити"});return{todayLabel:n,clearLabel:r}}}),Ms={key:0,class:"p-datepicker-header flex items-center justify-between mb-1.5"},Fs=["disabled"],Ds=["disabled"],Ts={key:0,class:"p-datepicker-weekheader grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-400 font-medium mb-1.5"},Ls=["disabled","onClick"],Is={key:1,class:"p-datepicker-buttonbar mt-2 pt-2 border-t border-slate-200 flex items-center justify-between"};function Os(o,t,n,r,a,l){const s=e.resolveComponent("ChevronLeft"),c=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",Ms,[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(i=>o.$emit("left"),["stop","prevent"]))},[e.renderSlot(o.$slots,"arrow-left",{},()=>[e.createVNode(s,{class:"h-3.5 w-3.5"})])],8,Fs),(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(i=>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(i=>o.$emit("right"),["stop","prevent"]))},[e.renderSlot(o.$slots,"arrow-right",{},()=>[e.createVNode(c,{class:"h-3.5 w-3.5"})])],8,Ds)])),e.createElementVNode("div",null,["subheading"in o.$slots?(e.openBlock(),e.createElementBlock("div",Ts,[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,i=>(e.openBlock(),e.createElementBlock("button",{key:i.key,disabled:i.disabled,class:e.normalizeClass(["p-[2px] disabled:text-slate-300"]),onClick:e.withModifiers(d=>o.$emit("elementClick",i.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":"",i.selected?"bg-blue-500 text-white font-semibold":"",i.current&&!i.selected&&o.viewMode!=="month"&&o.viewMode!=="year"?"border border-slate-300 font-medium":"",!i.disabled&&!i.selected?"hover:bg-slate-100 hover:text-slate-700":"",!i.current&&!i.selected&&i.disabled?"text-slate-300":""])},e.toDisplayString(i.display),3)],8,Ls))),128))])],2),e.renderSlot(o.$slots,"after-calendar"),o.showButtonBar?(e.openBlock(),e.createElementBlock("div",Is,[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(i=>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(i=>o.$emit("clear"),["stop","prevent"]))},e.toDisplayString(o.clearLabel),1)])):e.createCommentVNode("",!0)])],38)}const Fn=Be(Ns,[["render",Os]]),Ps=e.defineComponent({components:{PickerPopup:Fn},emits:{"update:pageDate":o=>Ye(o),select:o=>Ye(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(()=>hs(o.pageDate)),r=e.computed(()=>gs(o.pageDate)),a=(y,p,m)=>!p&&!m?!0:!(p&&ft(y)<ft(p)||m&&ft(y)>ft(m)),l=e.computed(()=>ks({start:n.value,end:r.value}).map(y=>({value:y,key:String(ft(y)),display:ft(y),selected:!!o.selected&&ft(y)===ft(o.selected),disabled:!a(y,o.lowerLimit,o.upperLimit)}))),s=e.computed(()=>{const y=ft(n.value),p=ft(r.value);return`${y} - ${p}`}),c=e.computed(()=>o.lowerLimit&&(An(o.lowerLimit)===An(o.pageDate)||an(o.pageDate,o.lowerLimit))),i=e.computed(()=>o.upperLimit&&(An(o.upperLimit)===An(o.pageDate)||sn(o.pageDate,o.upperLimit)));return{years:l,heading:s,leftDisabled:c,rightDisabled:i,previousPage:()=>t("update:pageDate",tr(o.pageDate,10)),nextPage:()=>t("update:pageDate",$n(o.pageDate,10))}}});function Rs(o,t,n,r,a,l){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]=c=>o.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const zs=Be(Ps,[["render",Rs]]),js=e.defineComponent({components:{PickerPopup:Fn},emits:{"update:pageDate":o=>Ye(o),select:o=>Ye(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(()=>nr(o.pageDate)),r=e.computed(()=>or(o.pageDate)),a=e.computed(()=>p=>cn(p,o.format)),l=(p,m,f)=>!m&&!f?!0:!(m&&an(p,fo(m))||f&&sn(p,ho(f))),s=e.computed(()=>bs({start:n.value,end:r.value}).map(p=>({value:p,display:a.value(p),key:a.value(p),selected:!!o.selected&&bo(o.selected,p),disabled:!l(p,o.lowerLimit,o.upperLimit)}))),c=e.computed(()=>ft(n.value)),i=e.computed(()=>o.lowerLimit&&(rr(o.lowerLimit,o.pageDate)||an(o.pageDate,o.lowerLimit))),d=e.computed(()=>o.upperLimit&&(rr(o.upperLimit,o.pageDate)||sn(o.pageDate,o.upperLimit)));return{months:s,heading:c,leftDisabled:i,rightDisabled:d,previousPage:()=>t("update:pageDate",tr(o.pageDate,1)),nextPage:()=>t("update:pageDate",$n(o.pageDate,1))}}});function Us(o,t,n,r,a,l){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]=c=>o.$emit("back")),onElementClick:t[1]||(t[1]=c=>o.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),_:1},8,["items","leftDisabled","rightDisabled","onLeft","onRight"])}const Hs=Be(js,[["render",Us]]),qs=e.defineComponent({components:{PickerPopup:Fn},emits:{"update:pageDate":o=>Ye(o),select:o=>Ye(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=>v=>cn(v,b)),r=e.computed(()=>fo(o.pageDate)),a=e.computed(()=>ho(o.pageDate)),l=e.computed(()=>({start:r.value,end:a.value})),s=e.computed(()=>({start:yo(r.value,o.weekStartsOn),end:ws(a.value,o.weekStartsOn)})),c=e.computed(()=>o.customWeekdays?.length===7?o.customWeekdays:null),i=e.computed(()=>{const b=o.weekStartsOn,v=c.value;if(v)return Array.from({length:7}).map((V,$)=>v[(b+$)%7]);const C=n.value(o.weekdayFormat);return Array.from(Array(7)).map((V,$)=>(b+$)%7).map(V=>xs(new Date,V,o.weekStartsOn)).map(C)}),d=(b,v,C,V)=>V?.dates?.some($=>Nn(b,$))||V?.predicate?.(b)?!1:!v&&!C?!0:!(v&&an(b,Ut(v))||C&&sn(b,ln(C))),h=e.computed(()=>{const b=new Date,v=n.value(o.format);return ys(s.value).map(C=>({value:C,display:v(C),selected:!!o.selected&&Nn(o.selected,C),current:Nn(b,C),disabled:!o.allowOutsideInterval&&!_s(C,l.value)||!d(C,o.lowerLimit,o.upperLimit,o.disabledDates),key:n.value("yyyy-MM-dd")(C)}))}),y=e.computed(()=>n.value(o.headingFormat)(o.pageDate)),p=e.computed(()=>o.lowerLimit&&(bo(o.lowerLimit,o.pageDate)||an(o.pageDate,o.lowerLimit))),m=e.computed(()=>o.upperLimit&&(bo(o.upperLimit,o.pageDate)||sn(o.pageDate,o.upperLimit)));return{weekDays:i,days:h,heading:y,leftDisabled:p,rightDisabled:m,previousPage:()=>t("update:pageDate",fs(o.pageDate)),nextPage:()=>t("update:pageDate",go(o.pageDate,1))}}});function Ws(o,t,n,r,a,l){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]=c=>o.$emit("back")),onElementClick:t[1]||(t[1]=c=>o.$emit("select",c)),onToday:t[2]||(t[2]=c=>o.$emit("today")),onClear:t[3]||(t[3]=c=>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,(c,i)=>(e.openBlock(),e.createElementBlock("span",{key:c,class:e.normalizeClass(`v3dp__subheading__weekday__${i}`)},e.toDisplayString(c),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=Be(qs,[["render",Ws]]),Gs=e.defineComponent({components:{PickerPopup:Fn,ChevronUp:X.ChevronUp,ChevronDown:X.ChevronDown},emits:{select:o=>Ye(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()),a=e.ref(n.value.getMinutes());e.watch(()=>o.selected,m=>{let f=0,w=0;m&&(f=m.getHours(),w=m.getMinutes()),r.value=f,a.value=w});const l=(m,f)=>{const w=Bs(new Date(n.value.getTime()),{hours:m,minutes:f,seconds:0});y(w)&&(r.value=m,a.value=f,t("select",w))},s=(m,f)=>m<0?f:m>f?0:m,c=()=>l(s(r.value+1,23),a.value),i=()=>l(s(r.value-1,23),a.value),d=()=>l(r.value,s(a.value+1,59)),h=()=>l(r.value,s(a.value-1,59)),y=m=>!(o.disabledTime?.dates?.some(f=>lr(m,f)&&vs(m,f))||o.disabledTime?.predicate?.(m));return{hours:r,minutes:a,padStartZero:m=>`0${m}`.substr(-2),isEnabled:y,incrementHours:c,decrementHours:i,incrementMinutes:d,decrementMinutes:h}}}),Ys={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"},Xs={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},Zs={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Js={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},Qs={class:"min-w-8 text-center text-sm font-medium text-slate-700"},ei={class:"col-span-2"},ti={class:"p-datepicker-time-picker flex items-center justify-center gap-2 py-1"},ni={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},oi={class:"min-w-8 text-center text-sm font-medium text-slate-700"},ri={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},li={class:"min-w-8 text-center text-sm font-medium text-slate-700"};function ai(o,t,n,r,a,l){const s=e.resolveComponent("ChevronUp"),c=e.resolveComponent("ChevronDown"),i=e.resolveComponent("picker-popup");return o.embedded?(e.openBlock(),e.createElementBlock("div",Ys,[e.createElementVNode("div",Xs,[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",Zs,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(c,{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",Js,[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",Qs,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(c,{class:"h-3.5 w-3.5"})])])])):(e.openBlock(),e.createBlock(i,{key:1,hideHeader:!0,columnCount:2,viewMode:"time"},{body:e.withCtx(()=>[e.createElementVNode("div",ei,[e.createElementVNode("div",ti,[e.createElementVNode("div",ni,[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",oi,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(c,{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",ri,[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",li,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(c,{class:"h-3.5 w-3.5"})])])])])]),_:1}))}const si=Be(Gs,[["render",ai]]),Dn=["time","day","month","year"],ii=(o,t,n=void 0)=>{let r=n||new Date;const a=Cs([o,r]);a&&(r=a);const l=Es([t,r]);return l&&(r=l),r},ci=e.defineComponent({components:{YearPicker:zs,MonthPicker:Hs,DayPicker:Ks,TimePicker:si,CalendarDays:X.CalendarDays,Clock3:X.Clock3,X:X.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"&&Dn.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"&&Dn.includes(o)}},emits:{"update:modelValue":o=>o==null||Ye(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),a=e.ref(null),l=e.ref(null),s=e.ref(null),c=e.ref({}),i=e.ref(!1),d=e.ref(!1);let h=null;const y=e.ref(""),p=se=>{const ie=se.replace(/[a-zA-Z]/g,"0");return/0/.test(ie)?ie:""},m=e.computed(()=>p(o.inputFormat));let f=null,w=null;const b=()=>{f?.destroy(),f=null},v=async()=>{if(!w){const{default:se}=await Promise.resolve().then(()=>Jn);w=se}return w},C=()=>{f&&f.value!==y.value&&(f.value=y.value??"")},V=se=>{const ie=se&&Ye(se)?cn(se,o.inputFormat):"";y.value!==ie&&(y.value=ie),C()},$=async()=>{if(b(),!l.value||!m.value)return;f=(await v())(l.value,{mask:m.value,lazy:!0,overwrite:!1}),C()};e.watch(()=>o.modelValue,se=>{d.value&&o.typeable||V(se)},{immediate:!0}),e.watch(()=>o.inputFormat,()=>{d.value&&o.typeable||V(o.modelValue)}),e.onMounted(()=>{m.value&&e.nextTick(()=>{$()})}),e.onBeforeUnmount(()=>{b()}),e.watch(m,se=>{se?e.nextTick(()=>{$()}):b()});const U=e.computed(()=>n.value!=="none"),Z=e.computed(()=>o.startingView==="time"&&o.minimumView==="time"),O=e.computed(()=>o.startingView==="day"&&o.minimumView==="time"),E=se=>{o.disabled||(U.value||(r.value=o.modelValue||ii(o.lowerLimit,o.upperLimit,r.value),t("opened")),n.value=se,e.nextTick(()=>Fe()))},S=()=>{U.value&&(h!==null&&(cancelAnimationFrame(h),h=null),n.value="none",t("closed"))},_=(se="none")=>{se==="none"?S():E(se)};e.watchEffect(()=>{o.disabled&&S()});const T=(se,ie)=>{r.value=ie,se==="year"?t("decadePageChanged",ie):se==="month"?t("yearPageChanged",ie):se==="day"&&t("monthPageChanged",ie)},j=se=>{r.value=se,o.minimumView==="year"?(S(),V(se),t("update:modelValue",se)):E("month")},oe=se=>{r.value=se,o.minimumView==="month"?(S(),V(se),t("update:modelValue",se)):E("day")},A=se=>{const ie=O.value?(()=>{const ve=o.modelValue||r.value||new Date,Se=new Date(se);return Se.setHours(ve.getHours(),ve.getMinutes(),0,0),Se})():se;r.value=ie,o.minimumView==="day"?(S(),V(ie),t("update:modelValue",ie)):O.value?(V(ie),t("update:modelValue",ie),E("day")):E("time")},P=se=>{V(se),t("update:modelValue",se)},Y=()=>{A(new Date)},q=()=>{o.clearable&&(S(),V(null),t("update:modelValue",null),r.value=o.startingViewDate)},I=()=>{U.value||E(Q.value)},J=()=>{d.value=!0,i.value=!1,E(Q.value)},te=()=>{d.value=!1,o.typeable&&M({closeOnSuccess:!1,revertOnInvalid:!0})},L=se=>{const ie=se.target;if(y.value=ie?.value??"",!o.typeable)return;const ve=sr(y.value,o.inputFormat);ve&&y.value===cn(ve,o.inputFormat)&&(r.value=ve)},M=({closeOnSuccess:se,revertOnInvalid:ie})=>{const ve=l.value?.value??y.value,Se=sr(ve,o.inputFormat);return!!Se&&ve===cn(Se,o.inputFormat)&&Se?(r.value=Se,V(Se),t("update:modelValue",Se),se&&S(),!0):(V(o.modelValue),!1)},N=se=>{const ie=se.keyCode?se.keyCode:se.which,ve=ie===27,Se=ie===13;if(ve){S(),l.value?.blur();return}o.typeable&&Se&&(M({closeOnSuccess:!0,revertOnInvalid:!0})||l.value?.focus())},Q=e.computed(()=>{const se=Dn.indexOf(o.startingView),ie=Dn.indexOf(o.minimumView);return se<ie?o.minimumView:o.startingView}),ae=e.computed(()=>o.weekDayNames?.length===7?o.weekDayNames:void 0),ee=()=>o.startingView==="time"&&o.minimumView==="time"?null:E("day"),he=()=>{if(!l.value||!s.value)return;const se=4,ie=8,ve=l.value.getBoundingClientRect(),Se=s.value.getBoundingClientRect(),qe=s.value.firstElementChild?.getBoundingClientRect(),z=window.innerWidth,ne=window.innerHeight,le=window.scrollX||window.pageXOffset,ue=window.scrollY||window.pageYOffset,ke=Math.max(160,ne-ie*2),Ae=Math.min(Se.height||0,ke),De=ne-ve.bottom-se-ie,Te=ve.top-se-ie,W=De<Ae&&Te>De;let x=W?ve.top-se-Ae:ve.bottom+se;x=Math.max(ie,Math.min(x,ne-ie-Ae));const D=qe?.width||Se.width||268;let R=ve.left;R+D>z-ie&&(R=z-ie-D),R<ie&&(R=ie);const de=W?Math.max(120,ve.top-se-ie):Math.max(120,ne-ve.bottom-se-ie);c.value={position:"absolute",top:`${Math.round(x+ue)}px`,left:`${Math.round(R+le)}px`,maxHeight:`${Math.round(Math.min(ke,de))}px`,overflowX:"hidden",overflowY:"auto",zIndex:"2147483000"},O.value&&n.value==="day"&&(c.value.minWidth="345px")},we=(se,ie)=>se.bottom>ie.top&&se.top<ie.bottom&&se.right>ie.left&&se.left<ie.right,be=se=>{const ie=[];let ve=se.parentElement;for(;ve;){const Se=window.getComputedStyle(ve),Le=Se.overflowY,qe=Se.overflowX,z=["auto","scroll","hidden","clip"].includes(Le),ne=["auto","scroll","hidden","clip"].includes(qe);(z||ne)&&ie.push(ve),ve=ve.parentElement}return ie},$e=()=>{if(!l.value)return!1;const se=l.value.getBoundingClientRect(),ie=new DOMRect(0,0,window.innerWidth,window.innerHeight);return we(se,ie)?be(l.value).every(Se=>we(se,Se.getBoundingClientRect())):!1},Me=()=>{if(U.value){if(!$e()){i.value=!0,S();return}Fe();return}i.value&&document.activeElement===l.value&&$e()&&(i.value=!1,E(Q.value))};e.watch(n,()=>{U.value&&e.nextTick(()=>Fe())});const Fe=()=>{he(),h!==null&&cancelAnimationFrame(h),h=requestAnimationFrame(()=>{he(),h=null})};e.onMounted(()=>{window.addEventListener("resize",Me),window.addEventListener("scroll",Me,!0),document.addEventListener("pointerdown",Re,!0)}),e.onBeforeUnmount(()=>{h!==null&&(cancelAnimationFrame(h),h=null),window.removeEventListener("resize",Me),window.removeEventListener("scroll",Me,!0),document.removeEventListener("pointerdown",Re,!0)});const Re=se=>{if(n.value==="none")return;const ie=se.target;if(!ie)return;const ve=!!a.value?.contains(ie),Se=!!s.value?.contains(ie);!ve&&!Se&&(i.value=!1,S())};return{rootRef:a,blur:te,focus:J,click:I,input:y,inputRef:l,pageDate:r,renderView:_,updatePageDate:T,selectYear:j,selectMonth:oe,selectDay:A,selectToday:Y,selectTime:P,keyUp:N,onInput:L,isTimeOnlyMode:Z,isDateTimeMode:O,normalizedWeekdayNames:ae,viewShown:n,goBackFromTimepicker:ee,clearModelValue:q,initialView:Q,log:se=>console.log(se),popupAnchorStyle:c,popupRef:s}}}),di={ref:"rootRef",class:"relative"},ui={class:"p-datepicker p-component p-inputwrapper relative"},pi=["readonly","value","placeholder","disabled","tabindex"],mi={class:"p-datepicker-input-icon-container absolute right-2 top-1/2 -translate-y-1/2 pointer-events-none text-slate-400"},fi={class:"absolute right-8 top-1/2 -translate-y-1/2"};function hi(o,t,n,r,a,l){const s=e.resolveComponent("Clock3"),c=e.resolveComponent("CalendarDays"),i=e.resolveComponent("X"),d=e.resolveComponent("year-picker"),h=e.resolveComponent("month-picker"),y=e.resolveComponent("time-picker"),p=e.resolveComponent("day-picker");return e.openBlock(),e.createElementBlock("div",di,[e.createElementVNode("div",ui,[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]=(...m)=>o.onInput&&o.onInput(...m)),onKeyup:t[1]||(t[1]=(...m)=>o.keyUp&&o.keyUp(...m)),onBlur:t[2]||(t[2]=(...m)=>o.blur&&o.blur(...m)),onFocus:t[3]||(t[3]=(...m)=>o.focus&&o.focus(...m)),onClick:t[4]||(t[4]=(...m)=>o.click&&o.click(...m))}),null,16,pi),e.createElementVNode("span",mi,[o.isTimeOnlyMode?(e.openBlock(),e.createBlock(s,{key:0,class:"h-4 w-4"})):(e.openBlock(),e.createBlock(c,{key:1,class:"h-4 w-4"}))]),e.withDirectives(e.createElementVNode("div",fi,[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]=m=>o.clearModelValue())},[e.createVNode(i,{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]=m=>o.updatePageDate("year",m)),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(h,{pageDate:o.pageDate,"onUpdate:pageDate":t[7]||(t[7]=m=>o.updatePageDate("month",m)),selected:o.modelValue,onSelect:o.selectMonth,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,format:o.monthListFormat,onBack:t[8]||(t[8]=m=>o.viewShown="year")},null,8,["pageDate","selected","onSelect","lowerLimit","upperLimit","format"]),[[e.vShow,o.viewShown==="month"]]),e.withDirectives(e.createVNode(p,{pageDate:o.pageDate,"onUpdate:pageDate":t[9]||(t[9]=m=>o.updatePageDate("day",m)),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]=m=>o.viewShown="month")},e.createSlots({_:2},[o.isDateTimeMode?{name:"after-calendar",fn:e.withCtx(()=>[e.createVNode(y,{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(y,{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 gi=Be(ci,[["render",hi]]),ir=Be(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:{},maxDaysFromNow:{},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:a}=et(n.style),l=e.getCurrentInstance(),s=e.computed(()=>n.mode?n.mode:n.time?"datetime":"date"),c=e.computed(()=>["py-1.5 px-3 block w-full placeholder:text-[#767f8f] bg-white",a.value,n.customClass,{"!border-red-600":n.error}]),i=e.computed(()=>!n.modelValue&&n.now?new Date:null),d=e.computed({get:()=>E(n.modelValue??i.value,s.value)||void 0,set:L=>r("update:modelValue",S(L,s.value))}),h=["Пн","Вт","Ср","Чт","Пт","Сб","Нд"],y=e.computed(()=>{if(n.dayNames?.length)return n.dayNames.length===7?n.dayNames:h}),p=e.computed(()=>{const L=n.weekStart,M=typeof L=="string"?Number(L):L;return M===void 0||Number.isNaN(M)?1:Math.min(6,Math.max(0,M))}),m=e.computed(()=>{const L=n.maxDaysFromNow;if(L==null||L==="")return;const M=typeof L=="string"?Number(L):L;if(!Number.isFinite(M)||M<0)return;const N=new Date;return N.setHours(0,0,0,0),N.setDate(N.getDate()+M),N.setHours(23,59,59,999),N}),f=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"}}}),w={date:"dd.MM.yyyy",datetime:"dd.MM.yyyy HH:mm",month:"MM.yyyy",time:"HH:mm",week:"dd.MM.yyyy",year:"yyyy"};function b(){const L=l?.appContext?.config?.globalProperties?.$i18n?.locale;if(typeof L=="string"&&L)return L;if(L&&typeof L=="object"&&"value"in L&&L.value)return String(L.value);if(typeof localStorage<"u"){const M=localStorage.getItem("locale")||localStorage.getItem("language");if(M)return M}return"uk"}function v(){const M=l?.appContext?.config?.globalProperties?.$settings?.dateFormat;if(!M)return"";if(typeof M=="string")return M;if(typeof M=="object"){const N=b();return M[N]||M[N.split("-")[0]]||M.uk||M.en||""}return""}function C(L){return L?L.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 V=e.computed(()=>{const L=w[s.value]||"dd.MM.yyyy";if(s.value==="time")return L;const M=n.dateFormat||v();if(!M)return L;const N=C(M);return N?s.value==="datetime"?`${N} HH:mm`:N:L});function $(L,M){return L?M==="week"?"рррр-тиждень":L.replaceAll("yyyy","рррр").replaceAll("yy","рр").replaceAll("MM","мм").replaceAll("M","м").replaceAll("dd","дд").replaceAll("d","д").replaceAll("HH","гг").replaceAll("H","г").replaceAll("mm",M==="time"||M==="datetime"?"хх":"мм"):""}const U={date:"дд.мм.рррр",datetime:"дд.мм.рррр гг:хх",month:"мм.рррр",week:"рррр-тиждень",time:"гг:хх",year:"рррр"},Z=e.computed(()=>{if(n.placeholder)return n.placeholder;const L=s.value;return $(V.value,L)||U[L]||""}),O=e.ref(!1);e.watch(()=>n.modelValue,L=>{L?O.value=!0:n.now||(O.value=!1)},{immediate:!0}),e.watchEffect(()=>{n.now&&!n.modelValue&&!O.value&&(r("update:modelValue",S(new Date,s.value)),O.value=!0)}),e.watch(V,()=>{r("update:modelValue",S(d.value,s.value))});function E(L,M){if(!L)return null;if(L instanceof Date&&!Number.isNaN(L.getTime()))return L;if(typeof L!="string")return null;switch(M){case"datetime":return oe(L);case"time":return Y(L);case"month":return A(L);case"year":return P(L);case"week":return q(L);case"date":default:return j(L)}}function S(L,M){if(!L)return null;const N=L instanceof Date?L:E(L,M);if(!N)return null;switch(M){case"datetime":return`${_(N)}T${T(N)}`;case"time":return T(N);case"month":return`${N.getFullYear()}-${te(N.getMonth()+1)}`;case"year":return`${N.getFullYear()}`;case"week":{const{year:Q,week:ae}=I(N);return`${Q}-W${te(ae)}`}case"date":default:return _(N)}}function _(L){return`${L.getFullYear()}-${te(L.getMonth()+1)}-${te(L.getDate())}`}function T(L){return`${te(L.getHours())}:${te(L.getMinutes())}`}function j(L){const M=L.split("-");if(M.length<3)return null;const[N,Q,ae]=M.map(Number);return!N||!Q||!ae?null:new Date(N,Q-1,ae)}function oe(L){const M=L.includes("T")?L:L.replace(" ","T"),N=new Date(M);return Number.isNaN(N.getTime())?null:N}function A(L){const[M,N]=L.split("-").map(Number);return!M||Number.isNaN(N)?null:new Date(M,(N||1)-1,1)}function P(L){const M=Number(L);return M?new Date(M,0,1):null}function Y(L){const M=L.trim().match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/);if(!M)return null;const[,N,Q,ae]=M,ee=new Date;return ee.setHours(Number(N),Number(Q),Number(ae||0),0),ee}function q(L){const M=L.match(/^(\d{4})-W(\d{2})$/);if(!M)return null;const[,N,Q]=M,ae=Number(Q);return J(Number(N),ae)}function I(L){const M=new Date(Date.UTC(L.getFullYear(),L.getMonth(),L.getDate())),N=M.getUTCDay()||7;M.setUTCDate(M.getUTCDate()+4-N);const Q=new Date(Date.UTC(M.getUTCFullYear(),0,1)),ae=Math.ceil(((M.getTime()-Q.getTime())/864e5+1)/7);return{year:M.getUTCFullYear(),week:ae}}function J(L,M){if(!L||!M)return null;const N=new Date(L,0,1+(M-1)*7),Q=N.getDay(),ae=N;return Q<=4?ae.setDate(N.getDate()-N.getDay()+1):ae.setDate(N.getDate()+8-N.getDay()),ae}function te(L){return String(L).padStart(2,"0")}return(L,M)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-date-picker",n.customClass])},[e.createVNode(gi,{modelValue:d.value,"onUpdate:modelValue":M[0]||(M[0]=N=>d.value=N),placeholder:Z.value,disabled:n.disabled,clearable:n.clearable,typeable:n.editable,"week-day-names":y.value,"week-starts-on":p.value,"starting-view":f.value.startingView,"minimum-view":f.value.minimumView,"input-format":V.value,"upper-limit":m.value,name:n.name,class:e.normalizeClass(c.value)},null,8,["modelValue","placeholder","disabled","clearable","typeable","week-day-names","week-starts-on","starting-view","minimum-view","input-format","upper-limit","name","class"])],2))}}),[["__scopeId","data-v-fb3e8176"]]),yi=(o,t)=>{if(!t||!Object.keys(t).length)return o;const[n,r=""]=o.split("?"),a=new URLSearchParams(r);Object.entries(t).forEach(([s,c])=>{c==null||c===""||a.set(s,String(c))});const l=a.toString();return l?`${n}?${l}`:n},bi=(o,t,n)=>new Promise((r,a)=>{const l=new FormData;l.append("unique","true"),l.append("file",o);const s=new XMLHttpRequest;s.open("POST",t),s.upload.addEventListener("progress",c=>{if(n){if(c.lengthComputable&&c.total>0){n(Math.min(100,Math.round(c.loaded/c.total*100)));return}n(0)}}),s.addEventListener("load",()=>{try{const c=s.responseText?JSON.parse(s.responseText):{};if(s.status>=200&&s.status<300){r(c?.result??null);return}a(new Error(c?.message||c?.error||`Код помилки: ${s.status}`))}catch(c){a(c)}}),s.addEventListener("error",()=>a(new Error("Помилка мережі під час завантаження файлу"))),s.addEventListener("abort",()=>a(new Error("Завантаження файлу скасовано"))),s.send(l)}),ki=async(o,t={})=>{try{const{api:n,id:r="1",form:a="form",table:l="table",customParams:s,onProgress:c}=t,i=n||`/file/upload/uploads?id=${r||""}&form=${a||""}&table=${l||""}`,d=yi(i,s);if(o instanceof File)return await bi(o,d,c);const h=new FormData;return h.append("unique","true"),h.append("file",o),(await fetch(d,{method:"POST",body:h}).then(p=>p.json()))?.result}catch(n){return ge.notify({type:"error",title:"Помилка!",message:"Сталась помилка під час завантаження файлу",position:"right-bottom"}),console.error("Сталась помилка завантаження файлу",n),null}},wi=async o=>{try{return await fetch(`file/delete/${o}`),!0}catch(t){return console.error(t),!1}},cr=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(),a=(t.headers.get("content-disposition")||"").match(/filename\*?=(?:UTF-8''|")?([^\";]+)/i),l=a?.[1]?decodeURIComponent(a[1].replace(/"/g,"").trim()):"",s=o.split("/").filter(Boolean).pop()||"download",c=l||s,i=document.createElement("a");i.setAttribute("download",c),i.href=window.URL.createObjectURL(n),i.click(),window.URL.revokeObjectURL(i.href)}catch(t){console.error(t.message)}},xi=o=>{if(!o)return"";const t=o?.split(".");return t[t.length-1]},dr=o=>{const t=xi(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)?X.Table:n.textsFormat.includes(t)?X.FileCode:n.documentsFormat.includes(t)?X.FileText:n.archivesFormat.includes(t)?X.FileArchive:X.FileText},vi=["title"],_i={key:0,class:"absolute inset-0 flex flex-col items-center justify-center gap-1 rounded-lg bg-white/90 px-2 text-center text-xs font-medium text-slate-600"},Ci=["title"],Ei={class:"absolute hidden top-0 right-0 flex items-center gap-x-2 w-full h-full justify-center"},ht=Be(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:{},action:{type:Boolean,default:!1},isUploading:{type:Boolean,default:!1},progressPercent:{default:0},title:{default:""}},{value:{},valueModifiers:{},item:{},itemModifiers:{}}),emits:e.mergeModels(["click"],["update:value","update:item"]),setup(o,{emit:t}){const n=e.useModel(o,"value"),r=e.useModel(o,"item"),a=t,l=o,s=e.computed(()=>l.action),c=e.computed(()=>r.value?typeof r.value=="string"?r.value:r.value.file_path:""),i=e.computed(()=>l.disabled?"opacity-50 cursor-not-allowed":l.isUploading?"cursor-default text-blue-500":"cursor-pointer hover:border-blue-500 hover:bg-blue-50 hover:text-blue-500"),d=e.computed(()=>l.progressPercent>0?`${l.progressPercent}%`:"Завантаження..."),h=f=>typeof f=="string"?f:f?.file_path||"",y=()=>{const f=c.value;wi(f),l.multiple&&Array.isArray(n.value)?n.value=n.value.filter(w=>h(w)!==f):n.value=""},p=()=>{c.value&&window.open(c.value,"_blank")},m=()=>{l.disabled||l.isUploading||a("click")};return(f,w)=>s.value?(e.openBlock(),e.createElementBlock("div",{key:0,title:f.title,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",i.value]),onClick:m},[f.isUploading?(e.openBlock(),e.createElementBlock("div",_i,[w[2]||(w[2]=e.createElementVNode("div",{class:"loader"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(d.value),1)])):(e.openBlock(),e.createBlock(e.unref(X.Plus),{key:1,class:"h-4 w-4"}))],10,vi)):(e.openBlock(),e.createElementBlock("div",{key:1,title:c.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(dr)(c.value)),{src:`${e.unref(dr)(c.value)} === 'img'`?`/file/resize?filepath=${c.value}&format=webp`:c.value,alt:"file",class:"w-full h-full object-cover cursor-pointer",onClick:w[0]||(w[0]=b=>e.unref(cr)(c.value))},null,8,["src"])),e.createElementVNode("div",Ei,[e.createElementVNode("button",{type:"button",onClick:y,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(X.Trash2),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:p,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(X.Eye),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:w[1]||(w[1]=b=>e.unref(cr)(c.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(X.Download),{class:"w-4 h-4"})])])],8,Ci))}}),[["__scopeId","data-v-b03cac5c"]]),ur=o=>o?o.split(",").map(t=>t.trim().toLowerCase()).filter(Boolean).map(t=>t.startsWith(".")?t.slice(1):t):[],pr=(o,t)=>!t||o.size<=t*1024*1024?!0:(ge.notify({type:"error",title:"Помилка!",message:`Файл "${o.name}" занадто великий. Максимальний розмір: ${t} МБ`,position:"right-bottom"}),!1),mr=(o,t)=>{if(!t.length)return!0;const n=o.name.split(".").pop()?.toLowerCase()||"";return t.includes(n)?!0:(ge.notify({type:"error",title:"Помилка!",message:`Неприпустимий формат файлу "${o.name}". Дозволені формати: ${t.map(r=>`.${r}`).join(", ")}`,position:"right-bottom"}),!1)},fr=(o,t)=>{const n={},r=[];if(!o?.length)return{ok:!0,params:n,missingSources:r};const a=t?.value??{};return o.forEach(l=>{if(!l)return;const[s,c]=l.split("="),i=s?.trim(),d=c?.trim();if(!i||!d)return;const h=a[d];if(h==null||h===""){r.push(d);return}n[i]=h}),r.length?(ge.notify({type:"warning",title:"Заповніть поля",message:`Поля (${r.join(", ")}) необхідні для завантаження файлу`,position:"right-bottom"}),{ok:!1,params:n,missingSources:r}):{ok:!0,params:n,missingSources:r}},hr=(o,t)=>!t||!Array.isArray(o)?[]:o,gr=(o,t)=>t||Array.isArray(o)?null:o,yr=o=>{if(!o)return"";const t=o.split(/[/\\]/).pop()||"",n=t.lastIndexOf(".");return n<=0||n===t.length-1?"":t.slice(n+1).toLowerCase()},Bi={class:"flex items-center flex-wrap gap-2"},Vi=["accept","multiple","disabled"],br=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"),a=t,l=e.ref(null),s=e.ref(!1),c=e.ref([]),i=e.inject("values"),d=e.inject("map-file-import-uploading",null),h=e.computed(()=>hr(r.value,!!n.multiple)),y=e.computed(()=>gr(r.value,!!n.multiple)),p=e.computed(()=>ur(n.format)),m=e.computed(()=>fr(n.customParams,i)),f=Z=>{ge.notify({type:"error",title:"Помилка завантаження",message:Z||"Не вдалося завантажити файл. Спробуйте ще раз.",position:"right-bottom"})},w=()=>{n.disabled||s.value||m.value.ok&&l.value?.click()},b=async(Z,O)=>{const E={api:n.api,customParams:Object.keys(m.value.params).length?m.value.params:void 0,onProgress:_=>{O&&(O.status="uploading",O.progressPercent=_)}},S=await ki(Z,E);return S?.file_path?S.file_path:null};e.watch(s,Z=>{d&&(d.value=Z)},{immediate:!0});const v=e.computed(()=>c.value.filter(Z=>Z.status!=="done")),C=e.computed(()=>v.value[0]||null),V=Z=>typeof Z=="string"?Z:Z?.file_path||"",$=(Z,O)=>({key:`${Date.now()}-${O}-${Z.name}`,file:Z,size:Z.size,uploaded:0,status:"pending",error:null,path:null,progressPercent:0}),U=async Z=>{const{files:O}=Z.target;if(!O||O.length===0)return;if(!m.value.ok){l.value&&(l.value.value="");return}const E=Array.from(O);if(n.max_size&&E.filter(T=>!pr(T,n.max_size)).length>0){l.value&&(l.value.value="");return}if(E.filter(_=>!mr(_,p.value)).length>0){l.value&&(l.value.value="");return}s.value=!0,c.value=E.map((_,T)=>$(_,T));try{if(n.multiple){const oe=await Promise.all(E.map(async(q,I)=>{const J=c.value[I];J.status="uploading",J.progressPercent=0;const te=await b(q,J);return te?(J.status="done",J.path=te,J.uploaded=J.size,J.progressPercent=100):(J.status="error",J.error="Помилка при завантаженні"),te})),A=oe.filter(q=>!!q);if(A.length===0){f();return}A.length<oe.length&&f("Деякі файли не вдалося завантажити. Перевірте їх та спробуйте знову.");const P=A,Y=Array.isArray(r.value)?r.value:r.value?[r.value]:[];r.value=[...Y,...P],a("change",r.value);return}const _=E[0],T=c.value[0];T.status="uploading",T.progressPercent=0;const j=await b(_,T);if(!j){T.status="error",T.error="Помилка при завантаженні",f();return}T.status="done",T.path=j,T.uploaded=T.size,T.progressPercent=100,r.value=j,a("change",j)}catch(_){f(_?.message||void 0)}finally{s.value=!1,c.value=[],l.value&&(l.value.value="")}};return(Z,O)=>(e.openBlock(),e.createElementBlock("div",Bi,[e.createElementVNode("input",{class:"hidden",ref_key:"fileInput",ref:l,type:"file",accept:n.format,multiple:n.multiple,onChange:U,disabled:s.value||Z.disabled},null,40,Vi),y.value?(e.openBlock(),e.createBlock(ht,{key:0,item:y.value,value:r.value,"onUpdate:value":O[0]||(O[0]=E=>r.value=E)},null,8,["item","value"])):e.createCommentVNode("",!0),n.multiple?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,(E,S)=>(e.openBlock(),e.createBlock(ht,{key:`${S}-${V(E)}`,multiple:!0,item:E,value:r.value,"onUpdate:value":O[1]||(O[1]=_=>r.value=_)},null,8,["item","value"]))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,E=>(e.openBlock(),e.createBlock(ht,{key:E.key,action:"","is-uploading":!0,disabled:!0,"progress-percent":E.progressPercent,title:E.file.name},null,8,["progress-percent","title"]))),128)),e.createVNode(ht,{action:"","is-uploading":!1,disabled:Z.disabled||s.value,title:"Добавить файлы",onClick:w},null,8,["disabled"])],64)):!n.multiple&&!C.value?(e.openBlock(),e.createBlock(ht,{key:2,action:"","is-uploading":!1,disabled:Z.disabled||s.value,title:"Обновить файл",onClick:w},null,8,["disabled"])):C.value?(e.openBlock(),e.createBlock(ht,{key:3,action:"","is-uploading":!0,disabled:!0,"progress-percent":C.value.progressPercent,title:C.value.file.name},null,8,["progress-percent","title"])):e.createCommentVNode("",!0)]))}}),Si={class:"vs-input-file2 flex flex-col gap-4"},$i={class:"flex items-center flex-wrap gap-2"},Ai=["multiple","accept","disabled"],Ni={key:0,class:"text-sm text-rose-600"},Tn=e.defineComponent({__name:"vs-input-file2",props:e.mergeModels({format:{},max_size:{},api:{},multiple:{type:Boolean,default:!1},chunkSize:{default:5*1024*1024},subdir:{default:""},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref(null),a=e.ref(!1),l=e.ref(""),s=e.ref([]),c=e.inject("values"),i=e.computed(()=>!!t.multiple),d=e.computed(()=>ur(t.format)),h=e.computed(()=>{if(d.value.length)return d.value.map(E=>`.${E}`).join(",")}),y=e.computed(()=>hr(n.value,i.value)),p=e.computed(()=>gr(n.value,i.value)),m=e.computed(()=>fr(t.customParams,c)),f=e.computed(()=>s.value.filter(E=>E.status!=="done")),w=e.computed(()=>i.value?null:f.value[0]||null),b=e.computed(()=>{const E=f.value,S=E.reduce((T,j)=>T+j.size,0);if(!S)return 0;const _=E.reduce((T,j)=>T+Math.min(j.uploaded,j.size),0);return Math.min(100,Math.round(_/S*100))}),v=()=>{t.disabled||a.value||m.value.ok&&r.value?.click()},C=async(E,S)=>{const _=S||Z(E,0);try{_.status="uploading";const T={id:"",fileName:_.file.name,subdir:t.subdir,size:_.file.size,...m.value.params},j=await fetch(`${t.api||"/file/upload2"}/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(T)});if(!j.ok)throw new Error("Не вдалося ініціалізувати завантаження");const oe=await j.json().catch(()=>({}));_.uploadId=oe.id||"",_.uploaded=Number(oe.uploaded)||0,_.progressPercent=_.size?Math.min(100,Math.round(_.uploaded/_.size*100)):0;const A=t.chunkSize??5*1024*1024;for(;_.uploaded<_.size;){const q=_.uploaded,I=Math.min(q+A,_.size),te=await _.file.slice(q,I).arrayBuffer(),L=await fetch(`${t.api||"/file/upload2"}/${_.uploadId}`,{method:"PATCH",headers:{"Content-Range":`bytes ${q}-${I-1}/${_.size}`,"Content-Type":"application/octet-stream"},body:te});if(!L.ok)throw new Error("Помилка завантаження частини");const M=await L.json().catch(()=>({})),N=M.uploaded!=null?Number(M.uploaded):I;if(_.uploaded=N,_.progressPercent=_.size?Math.min(100,Math.round(_.uploaded/_.size*100)):0,M.finished||N>=_.size){const Q=yr(_.file.name),ae=M.file_path||M.filepath||M.url||(Q?`/files/uploads/${_.uploadId}.${Q}`:`/files/uploads/${_.uploadId}`);return _.path=ae,_.status="done",U(ae),ae}}const P=yr(_.file.name),Y=`/files/uploads/${_.uploadId}${P?`.${P}`:""}`;return _.path=Y,_.status="done",U(Y),Y}catch(T){return _.status="error",_.error=T?.message||"Помилка при завантаженні",l.value=T?.message||"Помилка при завантаженні",null}},V=E=>typeof E=="string"?E:E?.file_path||"",$=E=>!E||E.length===0?[]:Array.from(E),U=E=>{if(i.value){const S=Array.isArray(n.value)?[...n.value]:n.value?[n.value]:[];S.push(E),n.value=S;return}n.value=E},Z=(E,S)=>({key:`${Date.now()}-${S}-${E.name}`,file:E,size:E.size,uploaded:0,uploadId:"",status:"pending",error:null,path:null,progressPercent:0}),O=async E=>{const S=E.target,_=$(S.files);if(!_.length)return;if(!m.value.ok){S.value="";return}const T=_.filter(j=>pr(j,t.max_size)&&mr(j,d.value));if(!T.length){S.value="";return}try{a.value=!0,l.value="",s.value=T.map((P,Y)=>Z(P,Y));const oe=(await Promise.allSettled(s.value.map(P=>C(P.file,P)))).filter(P=>P.status==="fulfilled").map(P=>P.value).filter(P=>!!P),A=s.value.filter(P=>P.status==="error").map(P=>P.file.name);if(oe.length===0){l.value="Не вдалося завантажити файл";return}A.length>0?ge.notify({type:"warning",title:"Частина файлів не завантажилась",message:A.join(", "),position:"right-bottom"}):ge.notify({type:"success",title:"Файл завантажено",message:T.length>1?`Завантажено ${oe.length} файлів`:T[0].name,position:"right-bottom"})}finally{a.value=!1,s.value=[],S.value=""}};return(E,S)=>(e.openBlock(),e.createElementBlock("div",Si,[e.createElementVNode("div",$i,[e.createElementVNode("input",{ref_key:"fileInput",ref:r,type:"file",class:"hidden",multiple:i.value,accept:h.value,disabled:a.value||t.disabled,onChange:O},null,40,Ai),i.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(y.value,(_,T)=>(e.openBlock(),e.createBlock(ht,{key:`${T}-${V(_)}`,multiple:!0,item:_,value:n.value,"onUpdate:value":S[0]||(S[0]=j=>n.value=j)},null,8,["item","value"]))),128)):p.value?(e.openBlock(),e.createBlock(ht,{key:1,item:p.value,value:n.value,"onUpdate:value":S[1]||(S[1]=_=>n.value=_)},null,8,["item","value"])):e.createCommentVNode("",!0),i.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(f.value,_=>(e.openBlock(),e.createBlock(ht,{key:_.key,action:"","is-uploading":!0,disabled:!0,"progress-percent":_.progressPercent,title:_.file.name},null,8,["progress-percent","title"]))),128)):w.value?(e.openBlock(),e.createBlock(ht,{key:3,action:"","is-uploading":!0,disabled:!0,"progress-percent":w.value.progressPercent,title:w.value.file.name},null,8,["progress-percent","title"])):e.createCommentVNode("",!0),e.createVNode(ht,{action:"","is-uploading":!1,disabled:t.disabled||a.value,"progress-percent":b.value,title:i.value?"Добавить файлы":"Обновить файл",onClick:v},null,8,["disabled","progress-percent","title"])]),l.value?(e.openBlock(),e.createElementBlock("p",Ni,e.toDisplayString(l.value),1)):e.createCommentVNode("",!0)]))}}),Mi={class:"flex items-center justify-center h-[30px] w-[30px]"},Fi={class:"max-w-[55vw]"},Di={class:"text-sm font-semibold text-gray-800 truncate dark:text-neutral-200"},Ti={class:"flex items-center text-xs text-gray-500 truncate dark:text-neutral-500"},Li={class:"px-[5px]"},Ii={class:""},Ln=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(a){if(a<1024)return`${a} B`;const l=a/1024;return l<1024?`${l.toFixed(2)} KB`:`${(l/1024).toFixed(2)} MB`}return(a,l)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",Mi,[e.createVNode(e.unref(X.FileText),{class:"icon icon-tabler icons-tabler-outline icon-tabler-file h-4 w-4"})]),e.createElementVNode("div",Fi,[e.createElementVNode("p",Di,e.toDisplayString(a.item?.uploaded_name),1),e.createElementVNode("p",Ti,[e.createElementVNode("span",null,e.toDisplayString(a.item?.username),1),e.withDirectives(e.createElementVNode("span",Li,"|",512),[[e.vShow,a.item?.username]]),e.createElementVNode("span",null,e.toDisplayString(n.value),1),l[0]||(l[0]=e.createElementVNode("span",{class:"px-[5px]"},"|",-1)),e.createElementVNode("span",Ii,e.toDisplayString(r(a.item?.size)),1)])])],64))}}),Oi={class:"p-3 relative group flex items-center gap-x-3 border border-gray-200 bg-white rounded-md w-full"},Pi={key:0,class:"flex w-full gap-x-3 items-center"},Ri={key:1,class:"flex gap-x-3 w-full items-center"},zi={key:2,class:"flex gap-x-3 w-full items-center"},ji=["href"],Ui={key:3,class:"flex gap-x-3 w-full items-center"},Hi={class:"lg:absolute lg:top-3 lg:end-1 opacity-100"},qi={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"},Wi={class:"inline-block"},Ki={class:"inline-block"},Gi={class:"inline-block"},Yi=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 a(y){return["pdf","json"].includes(y.ext)}function l(y){return["ppt","pptx","doc","docx","xls","xlsx"].includes(y.ext)}function s(y){const p=document.createElement("a");p.setAttribute("download",y?.uploaded_name),p.href=y?.file_path,p.click()}function c(y){y?.file_path&&window.open(y.file_path,"_blank")}async function i(){try{await fetch(`${n.prefix}/widget/file/${n.item.entity_id}/${n.item.file_id}`),r("update")}catch(y){console.error(y)}}function d(){r("openModal",{title:"Ви впевнені?",message:"Ви впевнені, що хочете видалити цей файл?",confirmButtonText:"Так, я впевнена/ий",cancelButtonText:"Скасувати",confirm:i,updateListOnConfirm:!0})}function h(y){(n.item.ext==="jpg"||n.item.ext==="png")&&r("openLightbox",{item:n.item,index:y})}return(y,p)=>(e.openBlock(),e.createElementBlock("div",Oi,[y.item.ext==="jpg"||y.item.ext==="png"?(e.openBlock(),e.createElementBlock("div",Pi,[e.createElementVNode("div",{class:"max-w-[55vw] cursor-pointer flex gap-x-3 w-full items-center",onClick:p[0]||(p[0]=m=>h(y.index))},[e.createVNode(Ln,{item:y.item},null,8,["item"])])])):a(y.item)?(e.openBlock(),e.createElementBlock("div",Ri,[e.createVNode(Ln,{item:y.item},null,8,["item"])])):l(y.item)?(e.openBlock(),e.createElementBlock("div",zi,[e.createElementVNode("a",{href:`/api/file-preview?id=${y.item.file_id}`,target:"_blank",class:"flex gap-x-3 w-full items-center"},[e.createVNode(Ln,{item:y.item},null,8,["item"])],8,ji)])):(e.openBlock(),e.createElementBlock("div",Ui,[e.createVNode(Ln,{item:y.item},null,8,["item"])])),e.createElementVNode("div",Hi,[e.createElementVNode("div",qi,[e.createElementVNode("div",Wi,[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:p[1]||(p[1]=m=>c(y.item))},[e.createVNode(e.unref(X.Eye),{class:"h-4 w-4"})])]),e.createElementVNode("div",Ki,[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:p[2]||(p[2]=m=>s(y.item))},[e.createVNode(e.unref(X.Download),{class:"h-4 w-4"})])]),p[4]||(p[4]=e.createElementVNode("div",{class:"w-px h-5 mx-1 bg-gray-200 dark:bg-neutral-700"},null,-1)),e.createElementVNode("div",Gi,[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:p[3]||(p[3]=m=>d())},[e.createVNode(e.unref(X.Trash2),{class:"h-4 w-4"})])])])])]))}}),Xi={class:"flex flex-col widget-file xl:bg-white xl:rounded-xl dark:xl:bg-neutral-800 dark:xl:border-neutral-700 w-full"},Zi={class:"flex w-full mb-[12px] items-center gap-x-2"},Ji={class:"font-semibold text-gray-800 dark:text-neutral-200 text-[14px]"},Qi={class1:"ml-auto"},ec={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"},tc={key:0,class:"py-4 mb-4 space-y-4 border-gray-200 border-y dark:border-neutral-700"},nc={class:"relative"},oc={class:"absolute inset-y-0 start-0 flex items-center pointer-events-none z-[1] ps-3.5"},rc={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"},lc={key:0},kr=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"),a=e.computed(()=>r.value.formId),l=e.ref(!1),s=e.ref(0),c=t,i=e.ref(!1),d=e.ref({}),h=e.ref([]),y=e.ref(""),p=e.computed(()=>Array.isArray(h.value)?h.value.filter(V=>V.ext==="jpg"||V.ext==="png").map(V=>V?.file_path):[]),m=e.computed(()=>y.value===""?h.value:h.value.filter(V=>V?.uploaded_name?.includes(y.value))),f=V=>{const $=p.value.findIndex(U=>U===V.item.file_path);$!==-1&&(l.value=!0,s.value=$)},w=async()=>{try{const V=await fetch(`${n.prefix}/widget/file/${a.value}`).then($=>$.json());h.value=V?.rows}catch(V){console.error(V)}},b=async V=>{await Promise.all(Array.from(V.target.files).map(async $=>{const U=new FormData;U.append("file",$);try{const Z=`${n.prefix}/widget/file/${a.value}`,O=await fetch(Z,{method:"POST",body:U});return O.ok?(c("update","file-list"),$):(ge.notify({type:O.status>=400&&O.status<500?"warning":"error",title:"Error",message:`Error code: ${O.status}`}),null)}catch(Z){return ge.notify({type:"error",title:"Error",message:Z.message||"Unknown error"}),console.error(Z),null}})),await w()},v=V=>{const $={...V};return V.cancel||($.cancel=()=>{i.value=!1}),V.updateListOnConfirm&&($.confirm=async()=>{await V.confirm(),i.value=!1,w()}),$},C=V=>{d.value=v(V),i.value=!0};return e.watch(a,V=>{V&&w()}),e.onMounted(()=>{a.value&&w()}),(V,$)=>{const U=e.resolveComponent("Lightbox"),Z=e.resolveComponent("MessageBox");return e.openBlock(),e.createElementBlock("div",Xi,[e.createElementVNode("div",Zi,[e.createElementVNode("h2",Ji," Файлів: "+e.toDisplayString(h.value?.length),1),e.createElementVNode("div",Qi,[e.createElementVNode("label",null,[e.createElementVNode("input",{type:"file",class:"hidden",onChange:$[0]||($[0]=O=>b(O))},null,32),e.createElementVNode("div",ec,[e.createVNode(e.unref(X.Upload),{class:"h-4 w-4"})])])])]),h.value?.length>4?(e.openBlock(),e.createElementBlock("div",tc,[e.createElementVNode("div",null,[e.createElementVNode("div",nc,[e.createElementVNode("div",oc,[e.createVNode(e.unref(X.Search),{class:"flex-shrink-0 text-gray-500 size-4 dark:text-neutral-400"})]),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":$[1]||($[1]=O=>y.value=O),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,y.value,void 0,{trim:!0}]])])])])):e.createCommentVNode("",!0),h.value?.length?(e.openBlock(),e.createElementBlock("div",rc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(O,E)=>(e.openBlock(),e.createBlock(Yi,{key:E,prefix:V.prefix,item:O,index:E,onUpdate:$[2]||($[2]=S=>V.$emit("update","file-list")),onOpenModal:$[3]||($[3]=S=>C(S)),onOpenLightbox:$[4]||($[4]=S=>f(S))},null,8,["prefix","item","index"]))),128)),m.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",lc,$[8]||($[8]=[e.createElementVNode("p",{class:"text-sm text-gray-600 font-sm"}," Файлів з такою назвою не існує, введіть інше пошукове слово ",-1)])))])):e.createCommentVNode("",!0),e.createVNode(U,{modelValue:l.value,"onUpdate:modelValue":$[5]||($[5]=O=>l.value=O),startIndex:s.value,"onUpdate:index":$[6]||($[6]=O=>s.value=O),images:p.value},null,8,["modelValue","startIndex","images"]),e.createVNode(Z,e.mergeProps({modelValue:i.value,"onUpdate:modelValue":$[7]||($[7]=O=>i.value=O),onConfirm:d.value.confirm},d.value),null,16,["modelValue","onConfirm"])])}}}),ac={class:"flex items-center justify-between"},sc={class:"text-[16px] text-gray-900 font-medium"},ic={class:"grid gap-3"},cc=Be(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,a)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",ac,[e.createElementVNode("p",sc,e.toDisplayString(o.title),1),e.createVNode(io,{modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=l=>n.value=l),style:e.normalizeStyle(o.style)},null,8,["modelValue","style"])]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",ic,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-90320b87"]]),dc={class:"text-[16px] text-gray-900 font-medium"},uc={class:"grid gap-3"},pc=Be(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,a)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("button",{type:"button",onClick:a[0]||(a[0]=l=>n.value=!n.value),class:"flex items-center gap-2"},[e.createVNode(e.unref(X.ChevronDown),{class:e.normalizeClass(["h-4 w-4 duration-300",[n.value?"-rotate-180":""]])},null,8,["class"]),e.createElementVNode("span",dc,e.toDisplayString(o.title),1)]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",uc,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-0c825d65"]]),mc={class:"flex items-center justify-between"},fc={switcher:cc,accordion:pc,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",mc,[e.createElementVNode("p",null,e.toDisplayString(o.title),1)]),e.renderSlot(t.$slots,"default")]))}})},dt={Equal:"==",Inequal:"!=",Higer:">",HigerOrEqual:">=",Lower:"<",LowerOrEqual:"<=",Between:"between",StartWith:"^",EndWith:"$",Contain:"*",In:"in",NotIn:"not_in"},hc=(o,t)=>String(o)===String(t),gc=(o,t)=>String(o)!==String(t),yc=(o,t)=>o>t,bc=(o,t)=>o>=t,kc=(o,t)=>o<t,wc=(o,t)=>o<=t,xc=(o,t)=>Array.isArray(t)&&t.length===2?o>=t[0]&&o<=t[1]:!1,vc=(o,t)=>String(o).startsWith(String(t)),_c=(o,t)=>String(o).endsWith(String(t)),Cc=(o,t)=>String(o).includes(String(t)),Ec=(o,t)=>Array.isArray(t)?t.includes(o):!1,Bc=(o,t)=>Array.isArray(t)?!t.includes(o):!0,Vc=(o,t)=>{if(!t)return!0;switch(t?.[1]){case dt.Equal:return hc(o,t?.[2]);case dt.Inequal:return gc(o,t?.[2]);case dt.Higer:return yc(o,t?.[2]);case dt.HigerOrEqual:return bc(o,t?.[2]);case dt.Lower:return kc(o,t?.[2]);case dt.LowerOrEqual:return wc(o,t?.[2]);case dt.Between:return xc(o,t?.[2]);case dt.StartWith:return vc(o,t?.[2]);case dt.EndWith:return _c(o,t?.[2]);case dt.Contain:return Cc(o,t?.[2]);case dt.In:return Ec(o,t?.[2]);case dt.NotIn:return Bc(o,t?.[2]);default:return!0}};function wr(o,t,n){return t==null||!Array.isArray(t)||t.length===0?!0:(Array.isArray(t[0])?t:[t]).every(a=>{if(!Array.isArray(a)||a.length<2)return!0;const l=a[0],s=n?o?.[n]?.[l]??o?.[l]:o?.[l];return Vc(s,a)})}const xr=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"),a=e.computed(()=>t.schema?.filter(c=>wr(n.value,c?.conditions,t.name||void 0))),l=e.computed(()=>fc[t.view]),s=e.computed(()=>{if(n.value||(n.value={}),!t.name)return n.value;const c=n.value[t.name];if(c)return c;const i={};return n.value={...n.value,[t.name]:i},i});return(c,i)=>o.schema?.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{key:0,title:o.title,style:e.normalizeStyle(o.style)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,d=>(e.openBlock(),e.createBlock(Kr,e.mergeProps({key:d.name},{ref_for:!0},d,{item:d,modelValue:s.value[d.name],"onUpdate:modelValue":h=>s.value[d.name]=h,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)}}),vr=({props:o,fetchOptionByValue:t,optionsList:n,selectedOption:r,modelValue:a,onCreated:l})=>{const s=e.ref(!1),c=e.ref({}),i=e.ref([]),d=e.ref(null),h=e.computed(()=>o.add?.title||"Додати"),y=e.computed(()=>o.add?.token||o.add?.model||""),p=e.computed(()=>o.add?.pk||"id");return{isOpenAdd:s,addData:c,addSchema:i,addForm:d,addTitle:h,addOption:async()=>{if(!(!y.value||d?.value.validate()))try{const b=o.add?.api??`/api/table/${y.value}`,v=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c.value)}),C=await v.json().catch(()=>({})),V=C?.error||C?.message,$=Number(C?.code)>=400;if(!v.ok||$){ge.notify({title:"Помилка",type:"error",message:V||`Код помилки: ${C?.code||v.status}`});return}const U=C?.rows?.[0],Z=C?.[p.value]??C?.id??U?.[p.value]??U?.id;if(!Z){ge.notify({title:"Помилка",type:"error",message:"Обʼєкт створено, але в відповіді відсутній ID."});return}const O=await t(Z);O&&(n.value.some(S=>String(S?.id)===String(O.id))||n.value.push(O)),l?await l(O,Z):O&&(r.value=O,a.value=Z),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 w=await fetch(`/api/template/form/${o.add.form}`).then(b=>b.json());return i.value=w.schema,c.value={},s.value=!0,null}}},Sc=["aria-expanded","data-focus"],$c={class:"vs-input-select__value-area relative flex flex-1 items-center gap-1 py-0.5 pl-1 pr-0 overflow-hidden h-full min-w-0"},Ac={key:0,class:"flex flex-nowrap items-center gap-1 overflow-x-auto overflow-y-hidden min-w-0 flex-1 py-0.5"},Nc={class:"flex items-center gap-1 min-w-0"},Mc=["title"],Fc=["innerHTML"],Dc=["onClick"],Tc={class:"flex-1 min-w-[2px]"},Lc=["placeholder"],Ic=["title"],Oc=["innerHTML"],Pc={key:3,class:"truncate flex-1 min-w-0"},Rc={key:2,class:"flex-1 min-w-[2px]"},zc=["placeholder"],jc={key:3,class:"flex-1 flex items-center min-h-[30px] py-0.5 pl-2 text-sm truncate text-inherit"},Uc={class:"vs-input-select__actions relative z-10 flex items-center shrink-0 bg-white"},Hc=["disabled"],qc={key:1,class:"self-stretch w-px bg-[#ccc] my-[1px]"},Wc=["disabled","title"],Kc=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,a=e.computed({get:()=>n.keyWord,set:l=>r("update:keyWord",l)});return(l,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",l.disabled?"bg-gray-100 text-gray-400 cursor-not-allowed":""]),role:"combobox","aria-expanded":l.isOpen,"aria-haspopup":"listbox",onKeydown:s[10]||(s[10]=(...c)=>l.onControlKeydown&&l.onControlKeydown(...c)),onClick:s[11]||(s[11]=(...c)=>l.onControlClick&&l.onControlClick(...c)),"data-focus":l.isOpen||l.inputFocus?"true":"false",ref:l.setTriggerRef},[e.createElementVNode("div",$c,[l.isMulti?(e.openBlock(),e.createElementBlock("div",Ac,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.selectedOptions,c=>(e.openBlock(),e.createElementBlock("div",{key:c.id,class:"flex min-w-0 bg-[rgb(230,230,230)] rounded-[2px] m-[2px] box-border max-w-full"},[e.createElementVNode("div",Nc,[l.shouldShowColorDot(c)?(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:c?.color})},null,4)):e.createCommentVNode("",!0),!l.optionTemplate&&l.optionHasIcon(c)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(l.iconWrapperClass),style:e.normalizeStyle(l.getIconColorStyle(c)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.resolveOptionIcon(c)),{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:l.getLabel(c)},[l.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:l.renderTemplate(c)},null,8,Fc)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(c.text),1)],64))],8,Mc)]),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(i=>l.onRemoveSelected(c.id),["stop"])},[e.createVNode(e.unref(X.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,Dc)]))),128)),e.createElementVNode("div",Tc,[!l.disabled&&l.search?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref:l.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:l.selectedIds.length?" ":l.placeholder,"onUpdate:modelValue":s[0]||(s[0]=c=>a.value=c),onFocus:s[1]||(s[1]=(...c)=>l.onInputFocus&&l.onInputFocus(...c)),onBlur:s[2]||(s[2]=(...c)=>l.onInputBlur&&l.onInputBlur(...c)),onKeydown:s[3]||(s[3]=(...c)=>l.onInputKeydown&&l.onInputKeydown(...c))},null,40,Lc)),[[e.vModelText,a.value]]):e.createCommentVNode("",!0)])])):!l.isMulti&&l.selectedOptionLabel&&a.value===""?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["truncate flex items-center gap-1 min-w-0 pl-2",l.disabled||!l.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 pointer-events-none"]),title:l.selectedOptionLabel},[l.shouldShowColorDot(l.selectedOption)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[14px] h-[14px] rounded-md block flex-shrink-0",style:e.normalizeStyle({backgroundColor:l.selectedOption?.color})},null,4)):e.createCommentVNode("",!0),!l.optionTemplate&&l.optionHasIcon(l.selectedOption)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(l.iconWrapperClass),style:e.normalizeStyle(l.getIconColorStyle(l.selectedOption)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.resolveOptionIcon(l.selectedOption)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),l.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:2,class:"truncate flex-1 min-w-0",innerHTML:l.renderTemplate(l.selectedOption)},null,8,Oc)):(e.openBlock(),e.createElementBlock("span",Pc,e.toDisplayString(l.selectedOption?.text),1))],10,Ic)):e.createCommentVNode("",!0),!l.isMulti&&!l.disabled&&l.search?(e.openBlock(),e.createElementBlock("div",Rc,[e.withDirectives(e.createElementVNode("input",{ref:l.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:l.selectedOptionLabel?" ":l.placeholder,"onUpdate:modelValue":s[4]||(s[4]=c=>a.value=c),onFocus:s[5]||(s[5]=(...c)=>l.onInputFocus&&l.onInputFocus(...c)),onBlur:s[6]||(s[6]=(...c)=>l.onInputBlur&&l.onInputBlur(...c)),onKeydown:s[7]||(s[7]=(...c)=>l.onInputKeydown&&l.onInputKeydown(...c))},null,40,zc),[[e.vModelText,a.value]])])):!l.isMulti&&l.disabled&&(!l.selectedOptionLabel||a.value!=="")?(e.openBlock(),e.createElementBlock("div",jc,e.toDisplayString(l.placeholder),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Uc,[l.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:l.disabled,onClick:s[8]||(s[8]=e.withModifiers((...c)=>l.onClearSelected&&l.onClearSelected(...c),["stop"]))},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,Hc)):e.createCommentVNode("",!0),l.showClear?(e.openBlock(),e.createElementBlock("div",qc)):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:l.disabled,onClick:s[9]||(s[9]=e.withModifiers((...c)=>l.onToggleSelect&&l.onToggleSelect(...c),["stop"])),title:l.isOpen?"Закрити список":"Відкрити список"},[e.createVNode(e.unref(X.ChevronDown),{class:"h-4 w-4"})],8,Wc)])],42,Sc))}}),Gc=["aria-disabled","onMousedown"],Yc={class:"leading-[19px]"},Xc=["innerHTML"],Zc={key:1,class:"px-3 py-2 text-center text-gray-500"},Jc=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,a)=>(e.openBlock(),e.createElementBlock("div",{key:r.id,ref_for:!0,ref:l=>t.setItemRef(l,a),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===a&&!t.isSelected(r.id)?"bg-[#deebff] text-[#172b4d]":""]),"aria-disabled":t.isSelected(r.id)?"true":"false",role:"option",tabindex:"-1",onMousedown:e.withModifiers(l=>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",Yc,[t.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:t.renderTemplate(r)},null,8,Xc)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(r.text),1)],64))])],42,Gc))),128)):(e.openBlock(),e.createElementBlock("div",Zc," No options "))],4)],4)):e.createCommentVNode("",!0)]))}}),Qc={class:"flex justify-end items-center gap-x-2 py-3 px-4 border-t border-gray-200 w-full"},ed=["onClick"],td=["disabled"],nd="__autoMeta",_r="w-[16px] h-[16px] flex items-center justify-center flex-shrink-0 text-current",ko=Be(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,a=e.computed(()=>n.multiple),l=e.computed(()=>n.disabled),s=e.computed(()=>n.search);et(n.style);const c=e.computed({get:()=>n.modelValue,set:H=>r("update:modelValue",H)});!c.value&&n.defaultValue&&(c.value=n.defaultValue);const i=e.ref(null),d=e.ref(null),h=e.ref(null),y=e.ref(null),p=e.ref(!1),m=e.ref(!1),f=e.ref(null),w=e.ref(-1),b=e.ref([]),v=e.ref(""),C=e.ref(null),V=H=>{d.value=H},$=H=>{C.value=H},U=H=>{y.value=H},Z=H=>{h.value=H},O=(H,re)=>{b.value[re]=H},E=e.ref({}),S=e.ref([]),_=e.computed(()=>{if(!S.value.length)return[];const H=be.value,re=new Map(H.map(me=>[me.id?.toString(),me]));return S.value.map(me=>re.get(me?.toString())).filter(me=>!!me)}),T=e.computed(()=>n.placeholder||"Select..."),j=e.computed(()=>te(f.value)),oe=e.computed(()=>l.value?!1:a.value?S.value.length>0:!!c.value),A=H=>a.value?S.value.some(re=>re?.toString()===H?.toString()):c.value?.toString()===H?.toString(),P=e.computed(()=>{let H=be.value??[];if(!n.data&&v.value.trim()!==""){const re=v.value.toLowerCase();H=H.filter(me=>{const Ne=te(me).toLowerCase(),ze=me.text?.toLowerCase?.()||"";return Ne.includes(re)||ze.includes(re)})}if(a.value&&S.value.length){const re=new Set(S.value.map(me=>me?.toString()));H=H.filter(me=>!re.has(me.id?.toString()))}return H}),Y=e.inject("values"),q=e.inject("field-props"),I=e.computed(()=>n.slot??n?.optionTemplate??""),J=H=>Vn(H,I.value),te=H=>Sn(H,I.value),L=e.computed(()=>Cn(I.value)),M=H=>rn(H),N=H=>!!(!L.value&&Dt(H)&&!M(H)),Q=H=>{const re=Dt(H);return re?{color:re}:void 0},ae=H=>!!(!L.value&&(on(H)||M(H))),ee=(H,re,me)=>{if(!q)return!1;const Ne=q.value?.[H]??{},ze=(je,Qe,xt)=>{if(!Qe.length)return je;const[pt,...vt]=Qe,mt={...je};if(!vt.length)return mt[pt]=xt,mt;const zt=typeof je[pt]=="object"&&je[pt]!==null?je[pt]:{};return mt[pt]=ze(zt,vt,xt),mt},Je=ze(Ne,re,me);return q.value={...q.value||{},[H]:Je},!0},he=H=>{if(!q||!n.name)return;const re=q.value?.[n.name]??{};q.value={...q.value||{},[n.name]:{...re,[nd]:H}}},we=H=>{if(!n.set)return;const re=Y?.value;!re&&!q||Object.entries(n.set).forEach(([me,Ne])=>{if(!me)return;const ze=H?H[Ne]:null,Je=me.split(".").map(xt=>xt.trim()).filter(Boolean);if(!Je.length)return;const[je,...Qe]=Je;Qe.length&&ee(je,Qe,ze??null)||re&&(re[je]=ze??null)})},{optionsList:be,parentValue:$e,fetchOptions:Me,fetchOptionByValue:Fe,loadOptions:Re}=Bn({props:n,formValues:Y,watchParent:!1}),se=H=>H==null?"":String(H),ie=H=>{if(a.value){if(!S.value.length){be.value=H;return}}else if(!f.value){be.value=H;return}const re=new Set(H.map(Ne=>se(Ne.id)).filter(Boolean));if(a.value){const Ne=new Set(S.value.map(Je=>se(Je)).filter(Boolean)),ze=(be.value??[]).filter(Je=>{const je=se(Je.id);return!je||!Ne.has(je)?!1:!re.has(je)});be.value=[...ze,...H];return}const me=se(f.value?.id);if(me&&!re.has(me)){be.value=[f.value,...H];return}be.value=H},ve=e.ref(0),Se=async H=>{const re=++ve.value,me=await Me(H);return re!==ve.value?null:me},Le=async()=>{if(n.data){const H=await Se(v.value);return H&&ie(H),be.value}return Re()},qe=async H=>{if(H==null||H==="")return null;const re=be.value?.find(me=>me?.id?.toString()===String(H));return re||Fe(H)},z=async H=>{const re=new Set(be.value.map(Ne=>Ne.id?.toString())),me=H.filter(Ne=>!re.has(Ne?.toString()));me.length&&await me.reduce(async(Ne,ze)=>{await Ne;const Je=await qe(ze);Je&&be.value.push(Je)},Promise.resolve())},ne=()=>{if(!P.value.length){w.value=-1;return}let H=0;if(!a.value&&f.value){const re=f.value.id?.toString(),me=P.value.findIndex(Ne=>Ne.id?.toString()===re);me>=0&&(H=me)}w.value=H,e.nextTick(()=>{R(b.value[H],h.value)})},le=async()=>{l.value||(p.value=!0,await e.nextTick(()=>{_e()}),await Le(),await e.nextTick(()=>{_e(),C.value?.focus()}),ne())},ue=()=>{p.value=!1,w.value=-1,e.nextTick(()=>{C.value?.blur()})},ke=async H=>{if(l.value)return;(H!==void 0?H:!p.value)?await le():ue()},Ae=async()=>{if(!l.value){if(p.value){ue();return}await le()}},De=()=>{a.value?(S.value=[],c.value=[],r("change",[]),W(null,[])):(f.value=null,c.value=null,r("change",null),W(null,null)),we(null),he(null),v.value="",ue(),e.nextTick(()=>{C.value?.focus()})},Te=H=>{a.value&&(S.value=S.value.filter(re=>re?.toString()!==H?.toString()),c.value=[...S.value],r("change",c.value),W(null),e.nextTick(()=>C.value?.focus()))},W=(H,re)=>{const me=re??(a.value?[...S.value]:H?.id??null);r("value-selected",{name:n.name,value:me,option:H})},x=(H,re="manual")=>{a.value?(A(H.id)||(S.value=[...S.value,H.id],c.value=[...S.value],r("change",c.value),W(H)),v.value="",e.nextTick(()=>{C.value?.focus(),w.value=Math.min(w.value,P.value.length-1)}),we(null)):(f.value=H,c.value=H.id,r("change",c.value),W(H),v.value="",ue(),we(H),re==="parent-auto"&&he({source:re,parentField:n.parent??null,parentValue:$e.value??null}))},D=H=>{if(A(H.id)){a.value||ue();return}x(H)},R=(H,re)=>{if(!H||!re)return;const me=H.offsetTop,Ne=me+H.offsetHeight,ze=re.scrollTop,Je=ze+re.clientHeight;let je=re.scrollTop;me<ze?je=me-80:Ne>Je&&(je=Ne-re.clientHeight+4);const Qe=re;Qe.scrollTop=je},de=H=>{let re=H.parentElement;for(;re;){if(re.classList.contains("ui-dialog__content"))return re;const me=window.getComputedStyle(re),Ne=me.overflow+me.overflowY+me.overflowX;if(Ne.includes("auto")||Ne.includes("scroll")||re===document.body||re===document.documentElement)return re;re=re.parentElement}return document.body},_e=()=>{if(!d.value)return;const H=d.value.getBoundingClientRect(),re=window.innerHeight||document.documentElement.clientHeight,me=window.innerWidth||document.documentElement.clientWidth,Ne=8,ze=8,Je=n.maxHeight||300,je=re-H.bottom-ze-Ne,Qe=H.top-ze-Ne,xt=je>=Qe,pt=Math.max(me-Ne*2,0);let{width:vt}=H;pt>0&&vt>pt&&(vt=pt);let{left:mt}=H;mt+vt+Ne>me&&(mt=me-vt-Ne),mt=Math.max(mt,Ne);const zt=Math.min(Je,Math.max(xt?je:Qe,50));E.value={position:"fixed",left:`${mt}px`,width:`${vt}px`,maxHeight:`${zt}px`,transform:xt?"none":"translateY(-100%)",top:xt?`${H.bottom+ze}px`:`${H.top-ze}px`}},Oe=async H=>{l.value||!p.value&&(H.key==="ArrowDown"||H.key==="ArrowUp")&&(H.preventDefault(),await le())},Ie=H=>{if(!p.value)return;const{key:re}=H;if(re==="ArrowDown")H.preventDefault(),w.value+1<P.value.length&&(w.value+=1,R(b.value[w.value],h.value));else if(re==="ArrowUp")H.preventDefault(),w.value>0&&(w.value-=1,R(b.value[w.value],h.value));else if(re==="Enter"){H.preventDefault();const me=P.value[w.value];me&&x(me),C.value?.blur()}else re==="Escape"?(H.preventDefault(),ue()):re==="Backspace"?a.value&&v.value===""&&S.value.length&&(S.value=S.value.slice(0,-1),c.value=[...S.value],r("change",c.value)):re==="Home"?(w.value=0,R(b.value[0],h.value)):re==="End"?(w.value=P.value.length-1,R(b.value[w.value],h.value)):re==="Tab"&&ue()},Ue=()=>{l.value||(m.value=!0)},We=()=>{m.value=!1,v.value=""},ut=H=>{H.key==="Escape"&&p.value&&ue()},Ke=H=>{const re=H.target;i.value?.contains(re)||y.value?.contains(re)||ue()},ct=H=>{p.value&&h.value&&!h.value.contains(H.target)&&_e()},Pt=()=>{p.value&&_e()},eo=()=>{p.value&&_e()};async function Qt(){if(a.value)Array.isArray(c.value)?S.value=[...c.value]:(S.value=c.value==null?[]:[c.value],c.value=[...S.value]),n.data&&S.value.length&&(await z(S.value),await e.nextTick());else{if(Array.isArray(c.value)){const H=c.value[0]??null;c.value=H??null}c.value!=null&&c.value!==""?f.value=await qe(c.value):f.value=null,we(f.value??null)}}e.watch(c,()=>{Qt()}),e.onMounted(async()=>{if(addEventListener("keydown",ut),addEventListener("scroll",ct,!0),addEventListener("resize",Pt),document.addEventListener("click",Ke,!0),d.value&&de(d.value).addEventListener("scroll",eo,!0),n.options?.length&&!n.data)be.value=[...n.options];else if(n.data){const H=await Se("");H&&ie(H)}await Qt(),Gt.value=!1}),e.onUnmounted(()=>{removeEventListener("keydown",ut),removeEventListener("scroll",ct,!0),removeEventListener("resize",Pt),document.removeEventListener("click",Ke,!0),d.value&&de(d.value).removeEventListener("scroll",eo,!0)});const{isOpenAdd:$t,addData:Rt,addSchema:K,addForm:fe,addTitle:nt,addOption:At,onAddValue:wt}=vr({props:n,fetchOptionByValue:Fe,optionsList:be,selectedOption:f,modelValue:c});function Ge(H,re=200){let me;return(...Ne)=>{me&&clearTimeout(me),me=window.setTimeout(()=>H(...Ne),re)}}const en=Ge(async H=>{const re=await Se(H);re&&ie(re)},200);e.watch(v,H=>{n.data&&en(H.trim())}),e.watch(()=>n.options,H=>{!n.data&&H?.length&&(be.value=[...H],Qt())},{immediate:!0});const Gt=e.ref(!0);return e.watch($e,async()=>{if(n.data&&(Gt.value||(a.value?(S.value=[],c.value=[],r("change",[])):(f.value=null,c.value=null,r("change",null))),await Le(),n.auto===1&&$e.value&&be.value.length>0)){const H=be.value[0];H&&x(H,"parent-auto")}}),(H,re)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(ge.VsModal),{visible:e.unref($t),"onUpdate:visible":re[2]||(re[2]=me=>e.isRef($t)?$t.value=me:null),class:"z-[1000]",title:e.unref(nt),teleport:H.teleport},{footer:e.withCtx(({handleClose:me})=>[e.createElementVNode("div",Qc,[e.createElementVNode("button",{type:"button",class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm font-medium rounded-lg border border-gray-200 bg-white text-gray-800 hover:bg-gray-50",onClick:me}," Скасувати ",8,ed),e.createElementVNode("button",{type:"button",class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm font-medium rounded-lg border border-transparent bg-blue-600 text-white hover:bg-blue-700",onClick:re[1]||(re[1]=(...Ne)=>e.unref(At)&&e.unref(At)(...Ne))}," Додати ")])]),default:e.withCtx(()=>[e.createVNode(rt,{schema:e.unref(K),modelValue:e.unref(Rt),"onUpdate:modelValue":re[0]||(re[0]=me=>e.isRef(Rt)?Rt.value=me:null),ref_key:"addForm",ref:fe},null,8,["schema","modelValue"])]),_:1},8,["visible","title","teleport"]),e.createElementVNode("div",{class:"flex gap-1 w-full",ref_key:"selectRoot",ref:i,onClick:re[5]||(re[5]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass])},[re[6]||(re[6]=e.createElementVNode("span",{id:"react-select-live-region",class:"sr-only"},null,-1)),re[7]||(re[7]=e.createElementVNode("span",{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text",role:"log",class:"sr-only"},null,-1)),e.createVNode(Kc,{keyWord:v.value,"onUpdate:keyWord":re[3]||(re[3]=me=>v.value=me),disabled:l.value,"is-open":p.value,"input-focus":m.value,"is-multi":a.value,"selected-options":_.value,"selected-ids":S.value,placeholder:T.value,search:s.value,"option-template":I.value,"icon-wrapper-class":_r,"selected-option-label":j.value,"selected-option":f.value,"show-clear":oe.value,"set-trigger-ref":V,"set-input-ref":$,"should-show-color-dot":N,"option-has-icon":ae,"get-icon-color-style":Q,"resolve-option-icon":M,"render-template":J,"get-label":te,"on-control-keydown":Oe,"on-control-click":Ae,"on-input-focus":Ue,"on-input-blur":We,"on-input-keydown":Ie,"on-remove-selected":Te,"on-clear-selected":De,"on-toggle-select":ke},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(Jc,{"is-open":p.value,"dropdown-style":E.value,"filtered-options-list":P.value,"selected-nav-index":w.value,"option-template":I.value,"icon-wrapper-class":_r,"set-dropdown-ref":U,"set-list-ref":Z,"set-item-ref":O,"is-selected":A,"on-option-click":D,"should-show-color-dot":N,"option-has-icon":ae,"get-icon-color-style":Q,"resolve-option-icon":M,"render-template":J},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[4]||(re[4]=(...me)=>e.unref(wt)&&e.unref(wt)(...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:l.value,type:"button"},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),re[8]||(re[8]=e.createElementVNode("span",null,"Додати",-1))],8,td)):e.createCommentVNode("",!0)],512)],64))}}),[["__scopeId","data-v-49a64961"]]),wo=(o="")=>`${o}${Math.floor(Math.random()*1e4)}`,od=["disabled","aria-expanded"],rd={class:"truncate"},ld={class:"py-2 px-4"},ad={class:"block font-medium text-[13px] text-foreground"},sd={class:"truncate"},id={class:"p-1 border-t border-gray-200"},cd={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"},dd=["onClick"],ud=["checked"],pd={class:"shrink-0 size-3.5 flex justify-center items-center"},md={key:1,class:"shrink-0 size-2 block mx-auto rounded-full bg-secondary/60"},fd={class:"truncate"},hd={key:0,class:"px-3 py-2 text-xs text-stone-500"},In=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 a=e.computed({get:()=>Array.isArray(n.modelValue)?n.modelValue[0]??null:n.modelValue??null,set:ee=>r("update:modelValue",ee)});a.value==null&&n.defaultValue!=null&&(a.value=n.defaultValue);const l=e.inject("values"),s=e.inject("field-props"),c=e.computed(()=>!!n.disabled),i=e.ref(null),d=e.ref(!1),h=e.ref(null),y=e.ref(null),p=e.ref(null),m=e.ref({}),f=`vs-input-inline-select-${wo()}`,w=e.computed(()=>n.placeholder||"Оберіть значення"),b=e.computed(()=>U(i.value)||n.placeholder||"Оберіть значення"),v=e.computed(()=>n.slot??""),C=e.computed(()=>Cn(v.value)),V=e.computed(()=>n.teleport||"body"),$=/^#(?:[\da-fA-F]{3}|[\da-fA-F]{6}|[\da-fA-F]{8})$/,U=ee=>Sn(ee,v.value),Z=ee=>!!(!C.value&&Dt(ee)),O=e.computed(()=>{const ee=Dt(i.value).trim();return ee?$.test(ee)?`bg-[${ee}] border-[${ee}]`:`bg-${ee.toLowerCase()}-500 border-${ee.toLowerCase()}-500`:""}),{optionsList:E,parentValue:S,fetchOptions:_,fetchOptionByValue:T,loadOptions:j}=Bn({props:n,formValues:l,watchParent:!1}),oe=(ee,he,we)=>{if(!s)return!1;const be=s.value?.[ee]??{},$e=(Fe,Re,se)=>{if(!Re.length)return Fe;const[ie,...ve]=Re,Se={...Fe};if(!ve.length)return Se[ie]=se,Se;const Le=typeof Fe[ie]=="object"&&Fe[ie]!==null?Fe[ie]:{};return Se[ie]=$e(Le,ve,se),Se},Me=$e(be,he,we);return s.value={...s.value||{},[ee]:Me},!0},A=ee=>{if(!n.set)return;const he=l?.value;!he&&!s||Object.entries(n.set).forEach(([we,be])=>{if(!we)return;const $e=ee?ee[be]:null,Me=we.split(".").map(se=>se.trim()).filter(Boolean);if(!Me.length)return;const[Fe,...Re]=Me;Re.length&&oe(Fe,Re,$e??null)||he&&(he[Fe]=$e??null)})},P=ee=>a.value?.toString?.()===ee?.toString?.(),Y=()=>{if(!y.value||typeof window>"u")return;const ee=y.value.getBoundingClientRect(),he=8,we=8,be=window.innerHeight||document.documentElement.clientHeight,$e=window.innerWidth||document.documentElement.clientWidth,Me=p.value?.offsetHeight||260,Fe=Math.max(ee.width,176),Re=Math.max($e-he*2,120),se=Math.min(Fe,Re);let ie=ee.left;ie+se+he>$e&&(ie=$e-se-he),ie=Math.max(ie,he);const ve=be-ee.bottom-we-he,Se=ee.top-we-he,Le=ve<Math.min(Me,260)&&Se>ve,qe=Math.max(120,Math.min(320,Le?Se:ve));m.value={position:"fixed",left:`${ie}px`,top:Le?`${ee.top-we}px`:`${ee.bottom+we}px`,transform:Le?"translateY(-100%)":"none",width:`${se}px`,maxHeight:`${qe}px`}},q=async()=>{if(n.data){E.value=await _("");return}await j()},I=async()=>{if(a.value==null||a.value===""){i.value=null,A(null);return}const ee=E.value.find(he=>he.id?.toString()===String(a.value));if(ee){i.value=ee,A(ee);return}i.value=await T(a.value),A(i.value??null)},J=async()=>{c.value||(d.value=!0,await e.nextTick(),Y(),await q(),await e.nextTick(),Y())},te=()=>{d.value=!1},L=async()=>{if(d.value){te();return}await J()},M=ee=>{r("value-selected",{name:n.name,value:ee?.id??null,option:ee})},N=ee=>{i.value=ee,a.value=ee.id,r("change",ee.id),M(ee),A(ee),te()},Q=ee=>{const he=ee.target;h.value?.contains(he)||p.value?.contains(he)||te()},ae=()=>{d.value&&Y()};return e.watch(()=>n.options,ee=>{n.data||(E.value=ee?[...ee]:[],I())},{immediate:!0,deep:!0}),e.watch(a,()=>{I()}),e.watch(S,async()=>{n.data&&(await q(),i.value&&!E.value.some(ee=>ee.id?.toString()===i.value?.id?.toString())&&(i.value=null,a.value=null,r("change",null),M(null),A(null)))}),e.onMounted(async()=>{document.addEventListener("click",Q,!0),window.addEventListener("resize",ae),window.addEventListener("scroll",ae,!0),await q(),await I()}),e.onUnmounted(()=>{document.removeEventListener("click",Q,!0),window.removeEventListener("resize",ae),window.removeEventListener("scroll",ae,!0)}),(ee,he)=>(e.openBlock(),e.createElementBlock("div",{class:"relative inline-flex w-full max-w-full",ref_key:"rootRef",ref:h,onClick:he[0]||(he[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("button",{ref_key:"triggerRef",ref:y,type:"button",disabled:c.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",O.value?`${O.value} text-white`:"bg-secondary text-secondary-foreground hover:bg-secondary-hover focus:bg-secondary-focus border-gray-300 hover:border-gray-400"]),onClick:L},[e.createElementVNode("span",rd,e.toDisplayString(b.value),1)],10,od),(e.openBlock(),e.createBlock(e.Teleport,{to:V.value},[d.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:p,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(m.value),role:"menu","aria-orientation":"vertical"},[e.createElementVNode("div",ld,[e.createElementVNode("span",ad,[e.createElementVNode("span",sd,e.toDisplayString(w.value),1)])]),e.createElementVNode("div",id,[e.createElementVNode("div",cd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(E),we=>(e.openBlock(),e.createElementBlock("label",{key:we.id,class:"py-1.5 px-3 group flex items-center gap-x-3 rounded-lg cursor-pointer text-[13px] text-gray-800 hover:bg-gray-100",onClick:e.withModifiers(be=>N(we),["prevent"])},[e.createElementVNode("input",{type:"radio",class:"hidden",name:f,checked:P(we.id),tabindex:"-1"},null,8,ud),e.createElementVNode("span",pd,[Z(we)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"shrink-0 size-2 block mx-auto rounded-full",style:e.normalizeStyle({backgroundColor:we.color})},null,4)):(e.openBlock(),e.createElementBlock("span",md))]),e.createElementVNode("span",fd,e.toDisplayString(U(we)),1),e.createVNode(e.unref(X.Check),{class:e.normalizeClass(["shrink-0 size-3.5 ms-auto transition-opacity",P(we.id)?"opacity-100":"opacity-0"])},null,8,["class"])],8,dd))),128))]),e.unref(E).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",hd,"Немає варіантів"))])],4)):e.createCommentVNode("",!0)],8,["to"]))],512))}}),gd=["placeholder","disabled"],Cr=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"),a=e.computed(()=>!!t.disabled),l=e.computed(()=>t.placeholder??"");function s(){typeof r.value=="string"&&(r.value=r.value.trim())}return(c,i)=>e.withDirectives((e.openBlock(),e.createElementBlock("textarea",{"onUpdate:modelValue":i[0]||(i[0]=d=>r.value=d),placeholder:l.value,disabled:a.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,gd)),[[e.vModelText,r.value]])}}),Er=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(()=>j0)),n=o,r=e.useModel(o,"modelValue"),a=e.computed(()=>!!n.disabled),l=e.computed(()=>n.placeholder??""),s=e.computed(()=>({height:n.richtextProps.height||"300px",format:n.format,...n.richtextProps}));return(c,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["!h-full overflow-hidden rounded-md border border-solid border-stone-200 disabled:opacity-50 disabled:cursor-not-allowed",c.customClass]),style:e.normalizeStyle(a.value?{pointerEvents:"none",opacity:.6}:{})},[e.createVNode(e.unref(t),e.mergeProps({modelValue:r.value,"onUpdate:modelValue":i[0]||(i[0]=d=>r.value=d),placeholder:l.value},s.value),null,16,["modelValue","placeholder"])],6))}}),yd={},bd={viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function kd(o,t){return e.openBlock(),e.createElementBlock("svg",bd,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 wd=Be(yd,[["render",kd]]),xd={class:"bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden flex flex-col"},vd={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"},_d={key:0,class:"relative flex-1 min-w-0"},Cd={class:"flex md:flex-nowrap flex-wrap items-center md:justify-end justify-start gap-2 shrink-0"},Ed={class:"w-full overflow-x-auto"},Bd={class:"w-full min-w-[640px] table-auto divide-y divide-gray-200"},Vd={class:"bg-gray-50"},Sd={class:"border-b border-gray-200"},$d={class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 w-12 text-center"},Ad=["onClick"],Nd={key:0,class:"text-gray-400"},Md={key:0,colspan:"100%",class:"text-center"},Fd={class:"w-full"},Dd={class:"p-5 min-h-[200px] flex flex-col justify-center items-center text-center"},Td=["data-row-index","onDragstart","onDragover","onDrop"],Ld=["onPointerdown"],Id={class:"flex items-center justify-center"},Od=["innerHTML"],Pd={key:0,class:"flex items-center gap-3 text-sm text-gray-700"},Rd={key:0},zd=["src"],jd={key:1,class:"rounded-md max-w-[45px] w-[45px] max-h-[45px] h-[45px] bg-gray-200 flex items-center justify-center"},Ud={key:1,class:"flex items-center justify-center"},Hd={key:2,class:"text-sm font-medium text-gray-900"},qd={class:"px-4 py-3 text-right whitespace-nowrap"},Wd={class:"flex items-center justify-end gap-2"},Kd=["onClick"],Gd=["onClick"],Yd={class:"vs-form__head mr-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},Br=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=z=>t.actions===void 0?!0:t.actions.includes(z),a=["search","import","export","add"],l=e.computed(()=>a.some(z=>r(z))),s=e.useModel(o,"modelValue"),c=e.ref({}),i=e.ref(""),d=e.ref(null),h=e.ref("asc"),y=e.computed(()=>{const z=s.value??[],ne=i.value?z.filter(ke=>p.value?.some(Ae=>{const De=Ae.key||Ae.name;if(!De)return!1;const Te=ke[De];return Te?Array.isArray(Te)?Te.join(", ").toLowerCase().includes(i.value.toLowerCase()):String(Te).toLowerCase().includes(i.value.toLowerCase()):!1})):z;if(!d.value)return ne;const le=d.value,ue=[...ne].sort((ke,Ae)=>{const De=$e(ke?.[le]),Te=$e(Ae?.[le]);return typeof De=="number"&&typeof Te=="number"?De-Te:String(De).localeCompare(String(Te))});return h.value==="asc"?ue:ue.reverse()}),p=e.computed(()=>(t.colModel??[]).filter(z=>!z.tableHidden)),m=e.ref(null),f=e.ref(null),w=e.ref(null);function b(z){return z.pointerType==="touch"||z.pointerType==="pen"}function v(z,ne){const ue=document.elementFromPoint(z,ne)?.closest?.("[data-row-index]")??null;if(!ue)return null;const ke=ue.getAttribute("data-row-index");if(ke==null)return null;const Ae=Number.parseInt(ke,10);return Number.isNaN(Ae)?null:Ae}function C(z,ne){b(z)&&(z.preventDefault(),z.currentTarget.setPointerCapture(z.pointerId),m.value=ne,f.value=ne)}function V(z){if(m.value===null||!b(z))return;z.preventDefault();const ne=v(z.clientX,z.clientY);ne!==null&&(f.value=ne)}function $(z){if(m.value===null||!b(z))return;z.preventDefault();const ne=v(z.clientX,z.clientY);E(ne??m.value);try{z.currentTarget.releasePointerCapture(z.pointerId)}catch{}}function U(z){if(b(z)){m.value=null,f.value=null;try{z.currentTarget.releasePointerCapture(z.pointerId)}catch{}}}const Z=z=>{m.value=z},O=z=>{f.value=z},E=z=>{if(m.value===null||m.value===z){m.value=null,f.value=null;return}const ne=[...s.value],[le]=ne.splice(m.value,1);ne.splice(z,0,le),s.value=ne,m.value=null,f.value=null},S=()=>{w.value&&w.value.click()},_=z=>{const ne=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".ico",".tiff",".tif"],le=z.toLowerCase();return ne.some(ue=>le.endsWith(ue))},T=z=>{const le=z.target.files?.[0];if(!le)return;const ue=new FileReader;ue.onload=ke=>{try{const Ae=ke.target?.result;if(typeof Ae=="string"){const De=JSON.parse(Ae);Array.isArray(De)&&s.value.push(...De)}}catch(Ae){console.error("Error parsing file:",Ae)}},ue.readAsText(le)},j=()=>{const z=JSON.stringify(s.value,null,2),ne=new Blob([z],{type:"application/json"}),le=URL.createObjectURL(ne),ue=document.createElement("a");ue.href=le,ue.download="data.json",ue.click(),URL.revokeObjectURL(le)},oe=new Set(["autocomplete","select","radio","checkbox","combobox"]),A=new Map,P=(z,ne)=>{const le=`/api/suggest/${z}`,ue=le.includes("?")?"&":"?",ke=ne?`&val=${ne}`:"";return`${le}${ue}json=1${ke}`},Y=z=>z==null||z===""?null:typeof z=="object"?z?.id!==void 0&&z.id!==null&&z.id!==""?z.id:null:z,q=z=>{const ne=new Set;return Array.isArray(s.value)&&s.value.forEach(le=>{const ue=le?.[z];if(ue==null||ue==="")return;if(Array.isArray(ue)){ue.forEach(Ae=>{const De=Y(Ae);De!==null&&ne.add(De)});return}const ke=Y(ue);ke!==null&&ne.add(ke)}),ne},I=async()=>{if(!t.colModel?.length)return;const z=t.colModel.filter(ne=>ne.data&&oe.has(ne.type?.toLowerCase()||""));z.length&&await Promise.all(z.map(async ne=>{const le=ne.key||ne.name;if(!le)return;const ue=q(le),ke=Array.from(ue).map(Te=>String(Te)).sort(),Ae=ke.join(",");if(!ke.length||A.get(le)===Ae)return;A.set(le,Ae);const De=ke.map(encodeURIComponent).join(",");try{const W=await(await fetch(P(ne.data,De))).json();c.value[le]=W?.data??W}catch(Te){console.error("Failed to fetch column values",Te)}}))};e.watch([()=>t.colModel,()=>s.value],()=>{I()},{immediate:!0,deep:!0});const J=e.ref(""),te=e.ref(!1);let L="edit",M=0;const N=z=>(z?.format||z?.type||"").toString().toLowerCase(),Q=e.computed(()=>(t.colModel?.filter(ne=>N(ne)!=="slot")??[]).map(ne=>{const le=ne.key||ne.name;return le?{...ne,name:le,key:le}:ne})),ae=e.ref({}),ee=e.ref({}),he=z=>typeof z!="string"?!1:!!n[z],we=(z,ne)=>ne?ne.split(".").reduce((le,ue)=>le==null?le:le[ue.trim()],z):z,be=(z,ne)=>typeof z!="string"?"":z.replace(/{{\s*([^}]+)\s*}}/g,(le,ue)=>{const ke=we(ne,ue.trim());return ke??""}),$e=z=>{if(z==null||z==="")return"";if(typeof z=="number")return z;if(typeof z=="boolean")return z?1:0;if(typeof z=="string")return z.toLowerCase();if(Array.isArray(z))return z.map(ne=>$e(ne)).join(", ");if(typeof z=="object"){if(z.text!==void 0)return String(z.text).toLowerCase();if(z.label!==void 0)return String(z.label).toLowerCase();if(z.id!==void 0)return String(z.id).toLowerCase()}return String(z).toLowerCase()},Me=z=>{const ne=z.key||z.name;if(ne){if(d.value===ne){h.value=h.value==="asc"?"desc":"asc";return}d.value=ne,h.value="asc"}};async function Fe(){J.value="Додати",te.value=!0,L="add",ae.value={}}function Re(z,ne){if(!z?.length)return null;const le=typeof ne=="object"?ne?.id:ne;return le==null||le===""?null:z.find(ue=>ue?.id?.toString()===le.toString())?.text??null}function se(z){return z==null||z===""?"-":Array.isArray(z)?z.map(ne=>typeof ne=="object"?ne?.text??ne?.id??"-":ne).join(", "):typeof z=="object"?z?.text??z?.id??"-":z}function ie(z,ne){const le=ne.key||ne.name,ue=z?.[le],ke=c.value[le];if(!ue)return"-";if(Array.isArray(ue)){const De=ue.map(Te=>Re(ke,Te)).filter(Boolean);return De.length?De.join(", "):se(ue)}const Ae=Re(ke,ue);return Ae||se(ue)}async function ve(z,ne){J.value="Редагувати",te.value=!0,L="edit",M=ne,ae.value={...z}}function Se(){const z=ee.value.validate();if(z){ge.notify({type:"warning",title:"Помилка валідації",message:Object.entries(z).map(([ne,le])=>`${ne}: ${le}`).join(`
1
+ (function(xe,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):(xe=typeof globalThis<"u"?globalThis:xe||self,e(xe.FormBuilder={},xe.Vue,xe.OpenGISCore,xe.lucide))})(this,(function(xe,e,ge,X){"use strict";function _n(o,t,n){if(!Array.isArray(n)||!n.length)return null;const r=String(o?.preset??o?.renderer??"").trim().toLowerCase();if(r){const a=n.find(l=>String(l.id).trim().toLowerCase()===r);if(a)return a}return n.find(a=>typeof a.match=="function"&&a.match(o,t))??null}function Yo(o,t,n){return!!_n(o,t,n)}const Xo=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 a(s){if(!t.text)return;const c=s.currentTarget.getBoundingClientRect();r.value={top:`${c.bottom+4}px`,left:`${Math.min(c.left,window.innerWidth-230)}px`},n.value=!0}function l(){n.value=!1}return(s,c)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("span",{class:"inline-flex items-center",onMouseenter:a,onMouseleave:l},[e.renderSlot(s.$slots,"default",{},()=>[e.createVNode(e.unref(X.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))}}),lo={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"}}},ao={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:"Скасувати"}}},Wl={class:"w-full relative"},Kl={key:0,class:"text-[14px] font-medium text-gray-900 mb-2 flex items-center gap-1"},Gl={class:"opacity-100"},Yl={key:0,class:"text-red-500 text-[14px]"},Xl={key:2,class:"text-[11px] text-slate-500 font-normal"},Zl={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Jl=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),a=e.computed(()=>!!t.item?.rules?.includes("required")),l=e.computed(()=>t.item?.info||""),s=e.inject("schema-by-name"),c={en:lo?.form?.autofillFrom,uk:ao?.form?.autofillFrom},i=e.computed(()=>{const d=t.item?.__autoMeta;if(!d||d?.source!=="parent-auto"||!d?.parentField)return"";const h=String(t.item?.__locale||"uk"),y=String(d.parentField),p=s?.value?.[y],m=p?.[`label:${h}`]||(h!=="uk"?p?.[h]:void 0)||p?.label||p?.ua||p?.en||y;return`${c[h]||c.uk}: ${m}`});return(d,h)=>(e.openBlock(),e.createElementBlock("div",Wl,[r.value?(e.openBlock(),e.createElementBlock("div",Kl,[e.createElementVNode("span",Gl,e.toDisplayString(n.value),1),a.value?(e.openBlock(),e.createElementBlock("span",Yl,"*")):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createBlock(Xo,{key:1,text:l.value},null,8,["text"])):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("span",Xl," ("+e.toDisplayString(i.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",Zl,e.toDisplayString(d.error),1)):e.createCommentVNode("",!0)]))}}),Ql={class:"w-full relative flex flex-row items-center gap-2"},ea={key:0,class:"text-red-500 text-[14px]"},ta={key:2,class:"text-[11px] text-slate-500 font-normal"},na={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},oa=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||""),a=e.inject("schema-by-name"),l={en:lo?.form?.autofillFrom,uk:ao?.form?.autofillFrom},s=e.computed(()=>{const p=t.item?.__autoMeta;if(!p||p?.source!=="parent-auto"||!p?.parentField)return"";const m=String(t.item?.__locale||"uk"),f=String(p.parentField),w=a?.value?.[f],b=w?.[`label:${m}`]||(m!=="uk"?w?.[m]:void 0)||w?.label||w?.ua||w?.en||f;return`${l[m]||l.uk}: ${b}`}),c=e.computed(()=>t.columns??{container:12,label:3}),i=e.computed(()=>{const{container:p,label:m}=c.value;return!p||p<=0?0:Math.min(Math.max(m??0,0),p)/p}),d=e.computed(()=>t.item?.type==="html"||i.value<=0?!1:!!n.value),h=e.computed(()=>{if(!d.value)return{};const p=`${i.value*100}%`;return{flexBasis:p,maxWidth:p}}),y=e.computed(()=>{const{container:p,label:m}=c.value;if(!p||p<=0)return{};if(t.item?.type==="html")return{flexBasis:"100%",maxWidth:"100%"};if(!d.value)return{flexBasis:"100%",maxWidth:"100%"};const f=Math.max(p-Math.max(m??0,0),0)/p;if(!f)return{};const w=`${f*100}%`;return{flexBasis:w,maxWidth:w}});return(p,m)=>(e.openBlock(),e.createElementBlock("div",Ql,[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(h.value)},[e.createTextVNode(e.toDisplayString(n.value)+" ",1),p.item?.rules?.includes("required")&&n.value?(e.openBlock(),e.createElementBlock("span",ea,"*")):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createBlock(Xo,{key:1,text:r.value},null,8,["text"])):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock("span",ta," ("+e.toDisplayString(s.value)+") ",1)):e.createCommentVNode("",!0)],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"flex-1 min-w-0",style:e.normalizeStyle(y.value)},[e.renderSlot(p.$slots,"default",e.normalizeProps(e.guardReactiveProps(p.$attrs)))],4),p.error?(e.openBlock(),e.createElementBlock("span",na,e.toDisplayString(p.error),1)):e.createCommentVNode("",!0)]))}}),ra={class:"w-full relative"},la={key:0,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},aa=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",ra,[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(t.$attrs))),t.error?(e.openBlock(),e.createElementBlock("span",la,e.toDisplayString(t.error),1)):e.createCommentVNode("",!0)]))}}),sa={class:"flex-1 min-w-0"},ia={key:0,class:"text-sm font-medium text-slate-700 dark:text-slate-200 flex items-center gap-1"},ca={class:"truncate"},da={key:0,class:"text-red-500 text-[14px]"},ua=["innerHTML"],pa={key:0,class:"mt-1 text-xs text-red-500"},ma={default:Jl,horizontal:oa,inline:aa,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??""),a=e.computed(()=>Array.isArray(t.item?.rules)&&t.item.rules.includes("required")),l=e.computed(()=>(typeof t.error=="string"?t.error:"")??""),s=()=>{const c=typeof localStorage<"u"?localStorage.getItem("locale"):null;n.value=c||"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)}),(c,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["w-full relative",{"opacity-60":c.item?.disabled}])},[e.createElementVNode("div",{class:e.normalizeClass(["gap-2 md:flex-row md:items-center md:justify-between",[["switcher","native-select"].includes(c.item.type)?"flex flex-col":""]])},[e.createElementVNode("div",sa,[c.ua||c.label?(e.openBlock(),e.createElementBlock("p",ia,[e.createElementVNode("span",ca,e.toDisplayString(c.item[n.value]||c.ua||c.label),1),a.value?(e.openBlock(),e.createElementBlock("span",da,"*")):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,ua)):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:e.normalizeClass(["w-full",["select","native-select"].includes(c.item.type)?"md:w-[30%]":"md:w-auto"])},[e.renderSlot(c.$slots,"default",e.normalizeProps(e.guardReactiveProps(c.$attrs)))],2)],2),l.value?(e.openBlock(),e.createElementBlock("p",pa,e.toDisplayString(l.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 fa=["placeholder","disabled"],ha=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"),a=e.computed(()=>!!t.disabled),l=e.computed(()=>t.placeholder??"");return(s,c)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"password","onUpdate:modelValue":c[0]||(c[0]=i=>r.value=i),placeholder:l.value,disabled:a.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,fa)),[[e.vModelText,r.value]])}}),ga=["placeholder","disabled","maxlength","minlength"],Yt=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"),a=e.computed(()=>!!t.disabled),l=e.computed(()=>t.placeholder??""),s=e.computed(()=>t.maxlength??void 0),c=e.computed(()=>t.minlength??void 0);function i(){typeof r.value=="string"&&(r.value=r.value.trim())}return(d,h)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"text","onUpdate:modelValue":h[0]||(h[0]=y=>r.value=y),placeholder:l.value,disabled:a.value,maxlength:s.value,minlength:c.value,onBlur:i,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,ga)),[[e.vModelText,r.value]])}}),ya=["step","placeholder","disabled","min","max"],Zo=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(),a=e.useModel(o,"modelValue"),l=e.computed(()=>!!t.disabled),s=h=>{if(h==null||h==="")return;const y=typeof h=="string"?h.trim().replace(",","."):h,p=Number(y);return Number.isFinite(p)?p:void 0},c=e.computed(()=>s(t.min??r.min)),i=e.computed(()=>s(t.max??r.max)),d=e.computed(()=>{if(t.step!==void 0&&t.step!==null&&t.step!=="")return t.step;const h=r.step;return typeof h=="number"||typeof h=="string"?h:"any"});return(h,y)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"number",step:d.value,"onUpdate:modelValue":y[0]||(y[0]=p=>a.value=p),placeholder:o.placeholder,disabled:l.value,class:e.normalizeClass(["py-1.5 px-3 block w-full bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"},min:c.value,max:i.value},null,10,ya)),[[e.vModelText,a.value]])}}),Cn=o=>!!String(o??"").trim(),Dt=o=>o?.color?String(o.color):"",on=o=>{const t=o?.icon;if(typeof t=="string")return t;const n=o?.imgUrl;return typeof n=="string"?n:""},rn=o=>{const t=o?.icon;return t&&typeof t!="string"?t:null},ba={class:"flex items-center gap-[4px]"},ka=["value","id","disabled"],wa=["for"],xa=["innerHTML"],va={key:1,class:"text-[14px] text-gray-700 flex items-center gap-2 dark:text-neutral-400"},_a=["src"],Ca=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,a=e.computed({get:()=>r.modelValue,set:m=>n("update:modelValue",m)}),l=e.computed(()=>!!r.disabled),s=e.computed(()=>on(r.option)),c=e.computed(()=>rn(r.option)),i=e.computed(()=>Dt(r.option)),d=e.computed(()=>!!(i.value&&!s.value&&!c.value)),h=e.computed(()=>!!(s.value&&i.value)),y=e.computed(()=>i.value?{color:i.value}:void 0),p=e.computed(()=>{if(!(!s.value||!i.value))return{backgroundColor:i.value,WebkitMaskImage:`url(${s.value})`,maskImage:`url(${s.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(m,f)=>(e.openBlock(),e.createElementBlock("div",ba,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",value:m.value,"onUpdate:modelValue":f[0]||(f[0]=w=>a.value=w),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":l.value}]),id:m.id,disabled:l.value},null,10,ka),[[e.vModelCheckbox,a.value]]),e.createElementVNode("label",{for:m.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":l.value}])},[e.createElementVNode("div",{class:e.normalizeClass(["h-[16px] text-white w-[16px] flex items-center justify-center shrink-0 border rounded",[a.value?"bg-blue-600 border-blue-600":"bg-white border-gray-600",m.error?"border-red-600":""]])},[e.createVNode(e.unref(X.Check),{class:"h-4 w-4"})],2),m.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:m.html},null,8,xa)):(e.openBlock(),e.createElementBlock("span",va,[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:i.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(p.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,_a)):c.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(c.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(y.value)},null,8,["style"])):e.createCommentVNode("",!0),e.renderSlot(m.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(m.label),1)])]))],10,wa)]))}}),Ea=["name","value","disabled"],Ba=["innerHTML"],Va={key:1,class:"flex items-center gap-[6px] text-[14px]"},Sa={key:2,class:"text-[16px] inline-flex items-center justify-center"},$a=["src"],Aa=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,a=e.computed({get:()=>n.modelValue,set:w=>{r("update:modelValue",w)}}),l=e.computed(()=>Array.isArray(a.value)?a.value.includes(n.value):a.value===!0||a.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"),c=e.computed(()=>({...n.option??{},icon:n.option?.icon??n.icon,imgUrl:n.option?.imgUrl??n.imgUrl,color:n.option?.color})),i=e.computed(()=>on(c.value)),d=e.computed(()=>rn(c.value)),h=e.computed(()=>Dt(c.value)),y=e.computed(()=>!!(h.value&&!i.value&&!d.value)),p=e.computed(()=>!!(i.value&&h.value)),m=e.computed(()=>h.value?{color:h.value}:void 0),f=e.computed(()=>{if(!(!i.value||!h.value))return{backgroundColor:h.value,WebkitMaskImage:`url(${i.value})`,maskImage:`url(${i.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(w,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,l.value?"ring-blue-500":"border border-gray-200 ring-transparent"]])},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",class:"hidden",name:w.id,value:w.value,"onUpdate:modelValue":b[0]||(b[0]=v=>a.value=v),disabled:w.disabled},null,8,Ea),[[e.vModelCheckbox,a.value]]),w.html?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-full",innerHTML:w.html},null,8,Ba)):(e.openBlock(),e.createElementBlock("span",Va,[y.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:h.value})},null,4)):e.createCommentVNode("",!0),p.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(f.value)},null,4)):i.value||d.value?(e.openBlock(),e.createElementBlock("span",Sa,[i.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:i.value,width:"16",height:"16",alt:"icon"},null,8,$a)):d.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),{key:1,class:"h-4 w-4",style:e.normalizeStyle(m.value)},null,8,["style"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(w.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(w.label),1)])]))],2))}}),Na={class:"flex items-center"},so=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,a=`radio-${Math.floor(Math.random()*1e4)}`,l=e.computed({get:()=>Array.isArray(n.modelValue)?Array.isArray(n.modelValue)&&n.modelValue.includes(n.value):n.modelValue,set:c=>{if(Array.isArray(n.modelValue)){let i=[...n.modelValue];c?i.includes(n.value)||i.push(n.value):i=i.filter(d=>d!==n.value),r("update:modelValue",i)}else r("update:modelValue",c)}}),s=e.ref(`vs-checkbox-${n.view||"default"}`);return(c,i)=>(e.openBlock(),e.createElementBlock("div",Na,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value==="vs-checkbox-buttons"?e.unref(Aa):e.unref(Ca)),{value:c.value,label:c.label,html:c.labelHtml,info:c.option?.info,disabled:c.disabled,modelValue:l.value,"onUpdate:modelValue":i[0]||(i[0]=d=>l.value=d),id:a,icon:c.icon,imgUrl:c.imgUrl,option:c.option,style:e.normalizeStyle(c.style),error:c.error},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.label),1)]),_:1},8,["value","label","html","info","disabled","modelValue","icon","imgUrl","option","style","error"]))]))}}),Ma={key:0,class:"flex items-start gap-x-1"},Fa={key:0,class:"text-red-500 text-[14px]"},Da=["title"],Ta=["disabled"],io=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,a)=>t.view==="checkbox"?(e.openBlock(),e.createElementBlock("div",Ma,[e.createVNode(so,{modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=l=>n.value=l),error:r.error||""},null,8,["modelValue","error"]),r.rules?.includes("required")?(e.openBlock(),e.createElementBlock("span",Fa,"*")):e.createCommentVNode("",!0),r.i?(e.openBlock(),e.createElementBlock("button",{key:1,class:"cursor-pointer",title:r.i,onClick:a[1]||(a[1]=e.withModifiers(()=>{},["prevent"]))},[e.createVNode(e.unref(X.Info),{class:"h-4 w-4 text-gray-500"})],8,Da)):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:a[2]||(a[2]=l=>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,Ta))}}),La=["id","innerHTML"],co=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,La))}}),Ia=["placeholder","disabled","name"],En=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"),a=e.ref(null);let l=null;function s(c){const i=c==null?"":String(c),d={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},h=new Set;let y=!1;for(let m=0;m<i.length;m+=1){const f=i[m];f==="{"?y=!0:f==="}"?y=!1:y&&h.add(f)}const p={};return Object.keys(d).forEach(m=>{h.has(m)||(p[m]=d[m])}),{mask:i,definitions:p,lazy:!1}}return e.onMounted(async()=>{if(a.value){const{default:c}=await Promise.resolve().then(()=>Jn),i=s(t.mask||"");l=c(a.value,i),l.on("accept",()=>{r.value=t.unmask?l.unmaskedValue:l.value}),l.on("complete",()=>{r.value=t.unmask?l.unmaskedValue:l.value}),l.value=r.value!=null?String(r.value):""}}),e.onBeforeUnmount(()=>{l?.destroy()}),e.watch(()=>t.mask,c=>{if(l){const i=s(c||"");l.updateOptions(i)}}),e.watch(r,c=>{l&&l.unmaskedValue!==c&&(l.value=c!=null?String(c):"")}),(c,i)=>(e.openBlock(),e.createElementBlock("input",{type:"text",ref_key:"inputEl",ref:a,placeholder:c.placeholder,disabled:c.disabled,name:c.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,Ia))}}),Oa={class:"relative w-full bg-white rounded-lg"},Pa={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},Ra=["placeholder","disabled"],uo=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(a,l)=>(e.openBlock(),e.createElementBlock("div",Oa,[e.createElementVNode("div",Pa,[e.createVNode(e.unref(X.Mail),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.withDirectives(e.createElementVNode("input",{type:"email","onUpdate:modelValue":l[0]||(l[0]=s=>r.value=s),placeholder:a.placeholder,disabled:a.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":a.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Ra),[[e.vModelText,r.value]])]))}}),Et="+99(999)-999-99-99";function Tt(o){if(!o?.trim())return 0;const t=new Set(["9","0","a","A","*"]);let n=!1,r=0;for(let a=0;a<o.length;a+=1){const l=o[a];if(l==="{"){n=!0;continue}if(l==="}"){n=!1;continue}!n&&t.has(l)&&(r+=1)}return r}const za={class:"relative w-full bg-white rounded-lg"},ja={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] pointer-events-none"},Ua=["name","placeholder","disabled","pattern"],po=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:Et}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.computed(()=>`^\\+[1-9]\\d{${(Tt(t.mask||Et)||Tt(Et))-1}}$`),{inputClass:r}=et(t.style),a=e.useModel(o,"modelValue"),l=e.ref(null);let s=null;function c(h){const y={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},p=new Set;let m=!1;for(let w=0;w<h.length;w+=1){const b=h[w];b==="{"?m=!0:b==="}"?m=!1:m&&p.add(b)}const f={};return Object.keys(y).forEach(w=>{p.has(w)||(f[w]=y[w])}),{mask:h,definitions:f,lazy:!1,disabled:t.disabled}}function i(h){if(h==null||h==="")return"";const y=String(h).trim();return y?y.replace(/\D/g,""):""}function d(){if(!s)return;const h=s.unmaskedValue??"";a.value=h?`+${h}`:""}return e.onMounted(async()=>{if(!l.value)return;const{default:h}=await Promise.resolve().then(()=>Jn),y=c(t.mask||"");s=h(l.value,y),s.on("accept",d),s.on("complete",d);const p=i(a.value);s.unmaskedValue=p}),e.onBeforeUnmount(()=>{s?.destroy(),s=null}),e.watch(()=>t.mask,h=>{s&&s.updateOptions(c(h||""))}),e.watch(()=>t.disabled,h=>{s&&s.updateOptions({disabled:h})}),e.watch(a,h=>{if(!s)return;const y=i(h);s.unmaskedValue!==y&&(s.unmaskedValue=y)}),(h,y)=>(e.openBlock(),e.createElementBlock("div",za,[e.createElementVNode("div",ja,[e.createVNode(e.unref(X.Phone),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.createElementVNode("input",{ref_key:"inputEl",ref:l,type:"tel",name:h.name,placeholder:h.placeholder,disabled:h.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":h.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Ua)]))}}),Ha=["value","disabled"],qa=["innerHTML"],Wa={key:1,class:"flex items-center gap-2"},Ka=["src"],Ga={class:"text-[13px] text-gray-700"},Ya=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),a=e.computed(()=>on(t.option)),l=e.computed(()=>rn(t.option)),s=e.computed(()=>Dt(t.option)),c=e.computed(()=>!!(s.value&&!a.value&&!l.value)),i=e.computed(()=>!!(a.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),h=e.computed(()=>{if(!(!a.value||!s.value))return{backgroundColor:s.value,WebkitMaskImage:`url(${a.value})`,maskImage:`url(${a.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(y,p)=>(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":p[0]||(p[0]=m=>n.value=m),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,Ha),[[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,qa)):(e.openBlock(),e.createElementBlock("div",Wa,[c.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),i.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(h.value)},null,4)):a.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:a.value,alt:"icon"},null,8,Ka)):l.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(d.value)},null,8,["style"])):e.createCommentVNode("",!0),e.createElementVNode("span",Ga,e.toDisplayString(t.text),1)]))],2))}}),Xa=["value","disabled"],Za=["innerHTML"],Ja={key:1,class:"flex items-center gap-2"},Qa=["src"],es={class:"text-[13px] text-gray-700"},ts={"vs-input-radio-default":Ya,"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),a=e.computed(()=>on(t.option)),l=e.computed(()=>rn(t.option)),s=e.computed(()=>Dt(t.option)),c=e.computed(()=>!!(s.value&&!a.value&&!l.value)),i=e.computed(()=>!!(a.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),h=e.computed(()=>{if(!(!a.value||!s.value))return{backgroundColor:s.value,WebkitMaskImage:`url(${a.value})`,maskImage:`url(${a.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(y,p)=>(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":p[0]||(p[0]=m=>n.value=m),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,Xa),[[e.vModelRadio,n.value]]),t.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:t.html},null,8,Za)):(e.openBlock(),e.createElementBlock("div",Ja,[c.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),i.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(h.value)},null,4)):a.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:a.value,alt:"icon"},null,8,Qa)):l.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(d.value)},null,8,["style"])):e.createCommentVNode("",!0),e.createElementVNode("span",es,e.toDisplayString(t.text),1)]))],2))}})},Jo=o=>Array.isArray(o)?o:Array.isArray(o?.data)?o.data:[],Qo=o=>{const t=o.host??"",n=o.prefix??"api",r=o.api??`/${n}/suggest/${o.data}`;return`${t}${r}`},ns=o=>({fetchOptions:async(r="")=>{const a=o();if(!a.data)return a.options?[...a.options]:[];try{const l=new URLSearchParams;l.set("json","1"),r&&l.set("key",r),a.parentValue!==void 0&&a.parentValue!==null&&a.parentValue!==""&&l.set("parent",String(a.parentValue)),a.start===1&&l.set("start","1");const c=await(await fetch(`${Qo(a)}?${l.toString()}`)).json();return Jo(c)}catch{return[]}},fetchOptionByValue:async r=>{if(r==null||r==="")return null;const a=o();if(!a.data)return(a.options??[]).find(s=>s?.id?.toString()===String(r))??null;try{const l=new URLSearchParams;l.set("json","1"),l.set("val",String(r)),a.parentValue!==void 0&&a.parentValue!==null&&a.parentValue!==""&&l.set("parent",String(a.parentValue)),a.start===1&&l.set("start","1");const c=await(await fetch(`${Qo(a)}?${l.toString()}`)).json();return Jo(c)[0]??null}catch{return null}}}),Bn=({props:o,formValues:t=null,watchParent:n=!0})=>{const r=e.ref([]),a=e.computed(()=>o.parent?t?.value?.[o.parent]?.toString?.()??null:null),{fetchOptions:l,fetchOptionByValue:s}=ns(()=>({data:o.data,options:o.options,api:o.api,prefix:o.prefix,host:o.host,start:o.start,parentValue:a.value})),c=async(i="")=>{const d=o.data?await l(i):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(a,async()=>{o.data&&(r.value=await l())},{immediate:!1}),{optionsList:r,parentValue:a,fetchOptions:l,fetchOptionByValue:s,loadOptions:c}},os=/\{\{\s*([^}]+?)\s*\}\}/g,rs=o=>(o?String(o):"").replace(/<[^>]*>/g,"").trim(),ls=(o,t)=>t.split(".").reduce((n,r)=>n==null?n:n[r.trim()],o),Vn=(o,t)=>{if(!o)return"";const n=(t??"").trim();return n?n.replace(os,(r,a)=>{const l=String(a).trim(),s=o,i=(l.includes(".")?ls(s,l):void 0)??s[l];return i!=null?String(i):""}):o.text??""},Sn=(o,t)=>{if(!o)return"";const n=Vn(o,t);return rs(n)||o.text||""},mo=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(()=>ts[`vs-input-radio-${t.view}`]),a=e.computed(()=>t.slot??t?.optionTemplate??""),l=e.computed(()=>Cn(a.value)),s=m=>Vn(m,a.value),c=m=>Sn(m,a.value),i=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)"}}),h=e.inject("values",null),{optionsList:y,loadOptions:p}=Bn({props:t,formValues:h});return e.onMounted(async()=>{await p()}),(m,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(y),w=>(e.openBlock(),e.createElementBlock("div",{key:w?.id,class:e.normalizeClass(["flex items-stretch",m.position==="horizontal"?t.customClass:""]),style:e.normalizeStyle(d.value)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value),e.mergeProps({text:c(w),html:l.value?s(w):"",option:w,value:w.id.toString(),checked:n.value?.toString?.()===w.id?.toString?.(),"custom-class":m.position==="horizontal"?"":t.customClass,modelValue:n.value,"onUpdate:modelValue":f[0]||(f[0]=b=>n.value=b)},{ref_for:!0},m.$attrs),null,16,["text","html","option","value","checked","custom-class","modelValue"]))],6))),128))],2))}}),as={key:1,class:"w-full flex flex-col gap-4"},ss={key:0,class:"text-sm font-medium text-muted-foreground my-2"},is="Без категорії",cs=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,a=e.reactive({}),l=e.inject("values",null),{optionsList:s,loadOptions:c}=Bn({props:{...n,options:n.options},formValues:l}),i=e.computed(()=>s.value),d=C=>C?.value||C?.id||C?.text||C,h=e.computed(()=>n.slot??n?.optionTemplate??""),y=e.computed(()=>Cn(h.value)),p=C=>Vn(C,h.value),m=C=>Sn(C,h.value),f=C=>`lg:col-span-${C||12}`,w=e.computed(()=>[n.position==="vertical"?"flex flex-col":"",n.colSpan?"grid":"flex justify-start"]),b=C=>C==null||C===""?null:typeof C=="string"||typeof C=="number"?C:String(C),v=e.computed(()=>{if(!n.group)return[];const C=new Map;i.value.forEach(O=>{const E=O[n.group],S=b(E);C.has(S)||C.set(S,[]),C.get(S)?.push(O)});const V=[];n.values?.length&&n.values.forEach(O=>{const E=b(O);V.push(E)});const $=new Set,U=O=>{const E=C.get(O)||[];if(!E.length)return null;const S=O===null?"group-null":`group-${String(O)}`,_=O===null?is:String(O);return $.add(O),{key:S,label:_,options:E}},Z=[];return V.forEach(O=>{const E=U(O);E&&Z.push(E)}),C.forEach((O,E)=>{if($.has(E))return;const S=U(E);S&&Z.push(S)}),Z});return e.watch(()=>n.modelValue,C=>{if(typeof C=="boolean"&&i.value.length===1){const V=d(i.value[0]);a[V]=C}else if(Array.isArray(C)){const V=new Set(C);i.value.forEach($=>{if(!$.disabled){const U=d($);a[U]=V.has(U)}})}},{immediate:!0}),e.watch(a,()=>{if(!i.value.length){r("update:modelValue",null);return}const C=Object.entries(a).filter(([,V])=>V).map(([V])=>V);r("update:modelValue",C.length===0?[]:C)},{deep:!0}),e.onMounted(async()=>{if(await c(),typeof n.modelValue=="boolean"&&i.value.length===1){const C=d(i.value[0]);a[C]=n.modelValue}else if(Array.isArray(n.modelValue)){const C=new Set(n.modelValue);i.value.forEach(V=>{if(!V.disabled){const $=d(V);a[$]=C.has($)}})}}),(C,V)=>n.group?(e.openBlock(),e.createElementBlock("div",as,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,$=>(e.openBlock(),e.createElementBlock("div",{key:$.key,class:"flex flex-col gap-2"},[$.label?(e.openBlock(),e.createElementBlock("span",ss,e.toDisplayString($.label),1)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-0 w-full gap-[12px]",w.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList($.options,U=>(e.openBlock(),e.createBlock(so,{modelValue:a[d(U)],"onUpdate:modelValue":Z=>a[d(U)]=Z,value:d(U),class:e.normalizeClass(f(C.colSpan)),disabled:n.disabled||U.disabled,label:m(U),labelHtml:y.value?p(U):"",key:`${$.key}-${d(U)}`,icon:U?.icon,imgUrl:U?.imgUrl,option:U,view:C.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]",w.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,$=>(e.openBlock(),e.createBlock(so,{modelValue:a[d($)],"onUpdate:modelValue":U=>a[d($)]=U,value:d($),class:e.normalizeClass(f(C.colSpan)),disabled:n.disabled||$.disabled,label:m($),labelHtml:y.value?p($):"",key:d($),icon:$?.icon,imgUrl:$?.imgUrl,option:$,view:C.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2))}}),Be=(o,t)=>{const n=o.__vccOpts||o;for(const[r,a]of t)n[r]=a;return n},er=Be(cs,[["__scopeId","data-v-9056e0ec"]]),ds=1440*60*1e3,us=["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"],ps=["січ","лют","бер","квіт","трав","черв","лип","серп","вер","жовт","лист","груд"],ms=["нд","пн","вт","ср","чт","пт","сб"];function Ye(o){return o instanceof Date&&!Number.isNaN(o.getTime())}const Xt=o=>new Date(o.getTime());function Ut(o){const t=Xt(o);return t.setHours(0,0,0,0),t}function ln(o){const t=Xt(o);return t.setHours(23,59,59,999),t}function fo(o){return Ut(new Date(o.getFullYear(),o.getMonth(),1))}function ho(o){return ln(new Date(o.getFullYear(),o.getMonth()+1,0))}function go(o,t){const n=new Date(o),r=n.getDate();n.setDate(1),n.setMonth(n.getMonth()+t);const a=new Date(n.getFullYear(),n.getMonth()+1,0).getDate();return n.setDate(Math.min(r,a)),n}function fs(o,t){return go(o,-1)}function $n(o,t){const n=new Date(o);return n.setFullYear(n.getFullYear()+t),n}function tr(o,t){return $n(o,-t)}function nr(o){return Ut(new Date(o.getFullYear(),0,1))}function or(o){return ln(new Date(o.getFullYear(),11,31))}function hs(o){const t=Math.floor(o.getFullYear()/10)*10;return Ut(new Date(t,0,1))}function gs(o){const t=Math.floor(o.getFullYear()/10)*10+9;return ln(new Date(t,11,31))}const ft=o=>o.getFullYear(),An=o=>Math.floor(o.getFullYear()/10)*10;function ys(o){const t=[];let n=Ut(o.start);const r=Ut(o.end);for(;n<=r;)t.push(Xt(n)),n=new Date(n.getTime()+ds);return t}function bs(o){const t=[];let n=fo(o.start);const r=ho(o.end);for(;n<=r;)t.push(Xt(n)),n=go(n,1);return t}function ks(o){const t=[];let n=nr(o.start);const r=or(o.end);for(;n<=r;)t.push(Xt(n)),n=$n(n,1);return t}function yo(o,t=1){const n=Ut(o),r=(n.getDay()-t+7)%7;return n.setDate(n.getDate()-r),n}function ws(o,t=1){const n=yo(o,t);return n.setDate(n.getDate()+6),ln(n)}function xs(o,t,n=0){const r=yo(o,n),a=(t-n+7)%7;return r.setDate(r.getDate()+a),r}const Nn=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear()&&o.getMonth()===t.getMonth()&&o.getDate()===t.getDate(),bo=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear()&&o.getMonth()===t.getMonth(),rr=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear(),lr=(o,t)=>!!o&&!!t&&Nn(o,t)&&o.getHours()===t.getHours(),vs=(o,t)=>!!o&&!!t&&lr(o,t)&&o.getMinutes()===t.getMinutes();function _s(o,t){const n=o.getTime();return n>=t.start.getTime()&&n<=t.end.getTime()}const an=(o,t)=>!!o&&!!t&&o.getTime()<t.getTime(),sn=(o,t)=>!!o&&!!t&&o.getTime()>t.getTime();function Cs(o){const t=o.filter(n=>Ye(n));if(t.length)return t.reduce((n,r)=>n.getTime()>=r.getTime()?n:r)}function Es(o){const t=o.filter(n=>Ye(n));if(t.length)return t.reduce((n,r)=>n.getTime()<=r.getTime()?n:r)}function Bs(o,t){const n=Xt(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 Mn=(o,t=2)=>String(o).padStart(t,"0");function ar(o,t){return t==="wide"?us[o]:ps[o]}function Vs(o){return ms[o]}const Ss=[{token:"LLLL",format:o=>ar(o.getMonth(),"wide")},{token:"LLL",format:o=>ar(o.getMonth(),"abbreviated")},{token:"EE",format:o=>Vs(o.getDay())},{token:"yyyy",format:o=>String(o.getFullYear())},{token:"MM",format:o=>Mn(o.getMonth()+1)},{token:"dd",format:o=>Mn(o.getDate())},{token:"HH",format:o=>Mn(o.getHours())},{token:"mm",format:o=>Mn(o.getMinutes())}];function cn(o,t){if(!Ye(o))return"";let n="",r=0;for(;r<t.length;){const a=Ss.find(l=>t.startsWith(l.token,r));a?(n+=a.format(o),r+=a.token.length):(n+=t[r],r+=1)}return n}const $s={"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{1,2}):(\d{2})(?::(\d{2}))?$/,"HH:mm":/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/,"MM.yyyy":/^(\d{2})\.(\d{4})$/,yyyy:/^(\d{4})$/};function sr(o,t){const n=$s[t];if(!n){const a=new Date(o);return Ye(a)?a:null}const r=o.match(n);if(!r)return null;switch(t){case"yyyy-MM-dd":{const[,a,l,s]=r,c=new Date(Number(a),Number(l)-1,Number(s));return Ye(c)?c:null}case"dd.MM.yyyy":{const[,a,l,s]=r,c=new Date(Number(s),Number(l)-1,Number(a));return Ye(c)?c:null}case"dd.MM.yyyy HH:mm":{const[,a,l,s,c,i,d]=r,h=new Date(Number(s),Number(l)-1,Number(a),Number(c),Number(i),Number(d||0));return Ye(h)?h:null}case"HH:mm":{const[,a,l,s]=r,c=new Date;return c.setHours(Number(a),Number(l),Number(s||0),0),c}case"MM.yyyy":{const[,a,l]=r;return new Date(Number(l),Number(a)-1,1)}case"yyyy":{const[,a]=r;return new Date(Number(a),0,1)}default:return null}}const As=["year","month","day","time","custom"],Ns=e.defineComponent({components:{ChevronLeft:X.ChevronLeft,ChevronRight:X.ChevronRight},emits:{elementClick:o=>Ye(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"&&As.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 a=t?.("form.date.today");return a&&a!=="form.date.today"?a:"Сьогодні"}),r=e.computed(()=>{const a=t?.("form.date.clear");return a&&a!=="form.date.clear"?a:"Очистити"});return{todayLabel:n,clearLabel:r}}}),Ms={key:0,class:"p-datepicker-header flex items-center justify-between mb-1.5"},Fs=["disabled"],Ds=["disabled"],Ts={key:0,class:"p-datepicker-weekheader grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-400 font-medium mb-1.5"},Ls=["disabled","onClick"],Is={key:1,class:"p-datepicker-buttonbar mt-2 pt-2 border-t border-slate-200 flex items-center justify-between"};function Os(o,t,n,r,a,l){const s=e.resolveComponent("ChevronLeft"),c=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",Ms,[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(i=>o.$emit("left"),["stop","prevent"]))},[e.renderSlot(o.$slots,"arrow-left",{},()=>[e.createVNode(s,{class:"h-3.5 w-3.5"})])],8,Fs),(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(i=>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(i=>o.$emit("right"),["stop","prevent"]))},[e.renderSlot(o.$slots,"arrow-right",{},()=>[e.createVNode(c,{class:"h-3.5 w-3.5"})])],8,Ds)])),e.createElementVNode("div",null,["subheading"in o.$slots?(e.openBlock(),e.createElementBlock("div",Ts,[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,i=>(e.openBlock(),e.createElementBlock("button",{key:i.key,disabled:i.disabled,class:e.normalizeClass(["p-[2px] disabled:text-slate-300"]),onClick:e.withModifiers(d=>o.$emit("elementClick",i.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":"",i.selected?"bg-blue-500 text-white font-semibold":"",i.current&&!i.selected&&o.viewMode!=="month"&&o.viewMode!=="year"?"border border-slate-300 font-medium":"",!i.disabled&&!i.selected?"hover:bg-slate-100 hover:text-slate-700":"",!i.current&&!i.selected&&i.disabled?"text-slate-300":""])},e.toDisplayString(i.display),3)],8,Ls))),128))])],2),e.renderSlot(o.$slots,"after-calendar"),o.showButtonBar?(e.openBlock(),e.createElementBlock("div",Is,[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(i=>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(i=>o.$emit("clear"),["stop","prevent"]))},e.toDisplayString(o.clearLabel),1)])):e.createCommentVNode("",!0)])],38)}const Fn=Be(Ns,[["render",Os]]),Ps=e.defineComponent({components:{PickerPopup:Fn},emits:{"update:pageDate":o=>Ye(o),select:o=>Ye(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(()=>hs(o.pageDate)),r=e.computed(()=>gs(o.pageDate)),a=(y,p,m)=>!p&&!m?!0:!(p&&ft(y)<ft(p)||m&&ft(y)>ft(m)),l=e.computed(()=>ks({start:n.value,end:r.value}).map(y=>({value:y,key:String(ft(y)),display:ft(y),selected:!!o.selected&&ft(y)===ft(o.selected),disabled:!a(y,o.lowerLimit,o.upperLimit)}))),s=e.computed(()=>{const y=ft(n.value),p=ft(r.value);return`${y} - ${p}`}),c=e.computed(()=>o.lowerLimit&&(An(o.lowerLimit)===An(o.pageDate)||an(o.pageDate,o.lowerLimit))),i=e.computed(()=>o.upperLimit&&(An(o.upperLimit)===An(o.pageDate)||sn(o.pageDate,o.upperLimit)));return{years:l,heading:s,leftDisabled:c,rightDisabled:i,previousPage:()=>t("update:pageDate",tr(o.pageDate,10)),nextPage:()=>t("update:pageDate",$n(o.pageDate,10))}}});function Rs(o,t,n,r,a,l){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]=c=>o.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const zs=Be(Ps,[["render",Rs]]),js=e.defineComponent({components:{PickerPopup:Fn},emits:{"update:pageDate":o=>Ye(o),select:o=>Ye(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(()=>nr(o.pageDate)),r=e.computed(()=>or(o.pageDate)),a=e.computed(()=>p=>cn(p,o.format)),l=(p,m,f)=>!m&&!f?!0:!(m&&an(p,fo(m))||f&&sn(p,ho(f))),s=e.computed(()=>bs({start:n.value,end:r.value}).map(p=>({value:p,display:a.value(p),key:a.value(p),selected:!!o.selected&&bo(o.selected,p),disabled:!l(p,o.lowerLimit,o.upperLimit)}))),c=e.computed(()=>ft(n.value)),i=e.computed(()=>o.lowerLimit&&(rr(o.lowerLimit,o.pageDate)||an(o.pageDate,o.lowerLimit))),d=e.computed(()=>o.upperLimit&&(rr(o.upperLimit,o.pageDate)||sn(o.pageDate,o.upperLimit)));return{months:s,heading:c,leftDisabled:i,rightDisabled:d,previousPage:()=>t("update:pageDate",tr(o.pageDate,1)),nextPage:()=>t("update:pageDate",$n(o.pageDate,1))}}});function Us(o,t,n,r,a,l){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]=c=>o.$emit("back")),onElementClick:t[1]||(t[1]=c=>o.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),_:1},8,["items","leftDisabled","rightDisabled","onLeft","onRight"])}const Hs=Be(js,[["render",Us]]),qs=e.defineComponent({components:{PickerPopup:Fn},emits:{"update:pageDate":o=>Ye(o),select:o=>Ye(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=>v=>cn(v,b)),r=e.computed(()=>fo(o.pageDate)),a=e.computed(()=>ho(o.pageDate)),l=e.computed(()=>({start:r.value,end:a.value})),s=e.computed(()=>({start:yo(r.value,o.weekStartsOn),end:ws(a.value,o.weekStartsOn)})),c=e.computed(()=>o.customWeekdays?.length===7?o.customWeekdays:null),i=e.computed(()=>{const b=o.weekStartsOn,v=c.value;if(v)return Array.from({length:7}).map((V,$)=>v[(b+$)%7]);const C=n.value(o.weekdayFormat);return Array.from(Array(7)).map((V,$)=>(b+$)%7).map(V=>xs(new Date,V,o.weekStartsOn)).map(C)}),d=(b,v,C,V)=>V?.dates?.some($=>Nn(b,$))||V?.predicate?.(b)?!1:!v&&!C?!0:!(v&&an(b,Ut(v))||C&&sn(b,ln(C))),h=e.computed(()=>{const b=new Date,v=n.value(o.format);return ys(s.value).map(C=>({value:C,display:v(C),selected:!!o.selected&&Nn(o.selected,C),current:Nn(b,C),disabled:!o.allowOutsideInterval&&!_s(C,l.value)||!d(C,o.lowerLimit,o.upperLimit,o.disabledDates),key:n.value("yyyy-MM-dd")(C)}))}),y=e.computed(()=>n.value(o.headingFormat)(o.pageDate)),p=e.computed(()=>o.lowerLimit&&(bo(o.lowerLimit,o.pageDate)||an(o.pageDate,o.lowerLimit))),m=e.computed(()=>o.upperLimit&&(bo(o.upperLimit,o.pageDate)||sn(o.pageDate,o.upperLimit)));return{weekDays:i,days:h,heading:y,leftDisabled:p,rightDisabled:m,previousPage:()=>t("update:pageDate",fs(o.pageDate)),nextPage:()=>t("update:pageDate",go(o.pageDate,1))}}});function Ws(o,t,n,r,a,l){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]=c=>o.$emit("back")),onElementClick:t[1]||(t[1]=c=>o.$emit("select",c)),onToday:t[2]||(t[2]=c=>o.$emit("today")),onClear:t[3]||(t[3]=c=>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,(c,i)=>(e.openBlock(),e.createElementBlock("span",{key:c,class:e.normalizeClass(`v3dp__subheading__weekday__${i}`)},e.toDisplayString(c),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=Be(qs,[["render",Ws]]),Gs=e.defineComponent({components:{PickerPopup:Fn,ChevronUp:X.ChevronUp,ChevronDown:X.ChevronDown},emits:{select:o=>Ye(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()),a=e.ref(n.value.getMinutes());e.watch(()=>o.selected,m=>{let f=0,w=0;m&&(f=m.getHours(),w=m.getMinutes()),r.value=f,a.value=w});const l=(m,f)=>{const w=Bs(new Date(n.value.getTime()),{hours:m,minutes:f,seconds:0});y(w)&&(r.value=m,a.value=f,t("select",w))},s=(m,f)=>m<0?f:m>f?0:m,c=()=>l(s(r.value+1,23),a.value),i=()=>l(s(r.value-1,23),a.value),d=()=>l(r.value,s(a.value+1,59)),h=()=>l(r.value,s(a.value-1,59)),y=m=>!(o.disabledTime?.dates?.some(f=>lr(m,f)&&vs(m,f))||o.disabledTime?.predicate?.(m));return{hours:r,minutes:a,padStartZero:m=>`0${m}`.substr(-2),isEnabled:y,incrementHours:c,decrementHours:i,incrementMinutes:d,decrementMinutes:h}}}),Ys={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"},Xs={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},Zs={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Js={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},Qs={class:"min-w-8 text-center text-sm font-medium text-slate-700"},ei={class:"col-span-2"},ti={class:"p-datepicker-time-picker flex items-center justify-center gap-2 py-1"},ni={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},oi={class:"min-w-8 text-center text-sm font-medium text-slate-700"},ri={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},li={class:"min-w-8 text-center text-sm font-medium text-slate-700"};function ai(o,t,n,r,a,l){const s=e.resolveComponent("ChevronUp"),c=e.resolveComponent("ChevronDown"),i=e.resolveComponent("picker-popup");return o.embedded?(e.openBlock(),e.createElementBlock("div",Ys,[e.createElementVNode("div",Xs,[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",Zs,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(c,{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",Js,[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",Qs,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(c,{class:"h-3.5 w-3.5"})])])])):(e.openBlock(),e.createBlock(i,{key:1,hideHeader:!0,columnCount:2,viewMode:"time"},{body:e.withCtx(()=>[e.createElementVNode("div",ei,[e.createElementVNode("div",ti,[e.createElementVNode("div",ni,[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",oi,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(c,{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",ri,[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",li,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(c,{class:"h-3.5 w-3.5"})])])])])]),_:1}))}const si=Be(Gs,[["render",ai]]),Dn=["time","day","month","year"],ii=(o,t,n=void 0)=>{let r=n||new Date;const a=Cs([o,r]);a&&(r=a);const l=Es([t,r]);return l&&(r=l),r},ci=e.defineComponent({components:{YearPicker:zs,MonthPicker:Hs,DayPicker:Ks,TimePicker:si,CalendarDays:X.CalendarDays,Clock3:X.Clock3,X:X.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"&&Dn.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"&&Dn.includes(o)}},emits:{"update:modelValue":o=>o==null||Ye(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),a=e.ref(null),l=e.ref(null),s=e.ref(null),c=e.ref({}),i=e.ref(!1),d=e.ref(!1);let h=null;const y=e.ref(""),p=se=>{const ie=se.replace(/[a-zA-Z]/g,"0");return/0/.test(ie)?ie:""},m=e.computed(()=>p(o.inputFormat));let f=null,w=null;const b=()=>{f?.destroy(),f=null},v=async()=>{if(!w){const{default:se}=await Promise.resolve().then(()=>Jn);w=se}return w},C=()=>{f&&f.value!==y.value&&(f.value=y.value??"")},V=se=>{const ie=se&&Ye(se)?cn(se,o.inputFormat):"";y.value!==ie&&(y.value=ie),C()},$=async()=>{if(b(),!l.value||!m.value)return;f=(await v())(l.value,{mask:m.value,lazy:!0,overwrite:!1}),C()};e.watch(()=>o.modelValue,se=>{d.value&&o.typeable||V(se)},{immediate:!0}),e.watch(()=>o.inputFormat,()=>{d.value&&o.typeable||V(o.modelValue)}),e.onMounted(()=>{m.value&&e.nextTick(()=>{$()})}),e.onBeforeUnmount(()=>{b()}),e.watch(m,se=>{se?e.nextTick(()=>{$()}):b()});const U=e.computed(()=>n.value!=="none"),Z=e.computed(()=>o.startingView==="time"&&o.minimumView==="time"),O=e.computed(()=>o.startingView==="day"&&o.minimumView==="time"),E=se=>{o.disabled||(U.value||(r.value=o.modelValue||ii(o.lowerLimit,o.upperLimit,r.value),t("opened")),n.value=se,e.nextTick(()=>Fe()))},S=()=>{U.value&&(h!==null&&(cancelAnimationFrame(h),h=null),n.value="none",t("closed"))},_=(se="none")=>{se==="none"?S():E(se)};e.watchEffect(()=>{o.disabled&&S()});const T=(se,ie)=>{r.value=ie,se==="year"?t("decadePageChanged",ie):se==="month"?t("yearPageChanged",ie):se==="day"&&t("monthPageChanged",ie)},j=se=>{r.value=se,o.minimumView==="year"?(S(),V(se),t("update:modelValue",se)):E("month")},oe=se=>{r.value=se,o.minimumView==="month"?(S(),V(se),t("update:modelValue",se)):E("day")},A=se=>{const ie=O.value?(()=>{const ve=o.modelValue||r.value||new Date,Se=new Date(se);return Se.setHours(ve.getHours(),ve.getMinutes(),0,0),Se})():se;r.value=ie,o.minimumView==="day"?(S(),V(ie),t("update:modelValue",ie)):O.value?(V(ie),t("update:modelValue",ie),E("day")):E("time")},P=se=>{V(se),t("update:modelValue",se)},Y=()=>{A(new Date)},q=()=>{o.clearable&&(S(),V(null),t("update:modelValue",null),r.value=o.startingViewDate)},I=()=>{U.value||E(Q.value)},J=()=>{d.value=!0,i.value=!1,E(Q.value)},te=()=>{d.value=!1,o.typeable&&M({closeOnSuccess:!1,revertOnInvalid:!0})},L=se=>{const ie=se.target;if(y.value=ie?.value??"",!o.typeable)return;const ve=sr(y.value,o.inputFormat);ve&&y.value===cn(ve,o.inputFormat)&&(r.value=ve)},M=({closeOnSuccess:se,revertOnInvalid:ie})=>{const ve=l.value?.value??y.value,Se=sr(ve,o.inputFormat);return!!Se&&ve===cn(Se,o.inputFormat)&&Se?(r.value=Se,V(Se),t("update:modelValue",Se),se&&S(),!0):(V(o.modelValue),!1)},N=se=>{const ie=se.keyCode?se.keyCode:se.which,ve=ie===27,Se=ie===13;if(ve){S(),l.value?.blur();return}o.typeable&&Se&&(M({closeOnSuccess:!0,revertOnInvalid:!0})||l.value?.focus())},Q=e.computed(()=>{const se=Dn.indexOf(o.startingView),ie=Dn.indexOf(o.minimumView);return se<ie?o.minimumView:o.startingView}),ae=e.computed(()=>o.weekDayNames?.length===7?o.weekDayNames:void 0),ee=()=>o.startingView==="time"&&o.minimumView==="time"?null:E("day"),he=()=>{if(!l.value||!s.value)return;const se=4,ie=8,ve=l.value.getBoundingClientRect(),Se=s.value.getBoundingClientRect(),qe=s.value.firstElementChild?.getBoundingClientRect(),z=window.innerWidth,ne=window.innerHeight,le=window.scrollX||window.pageXOffset,ue=window.scrollY||window.pageYOffset,ke=Math.max(160,ne-ie*2),Ae=Math.min(Se.height||0,ke),De=ne-ve.bottom-se-ie,Te=ve.top-se-ie,W=De<Ae&&Te>De;let x=W?ve.top-se-Ae:ve.bottom+se;x=Math.max(ie,Math.min(x,ne-ie-Ae));const D=qe?.width||Se.width||268;let R=ve.left;R+D>z-ie&&(R=z-ie-D),R<ie&&(R=ie);const de=W?Math.max(120,ve.top-se-ie):Math.max(120,ne-ve.bottom-se-ie);c.value={position:"absolute",top:`${Math.round(x+ue)}px`,left:`${Math.round(R+le)}px`,maxHeight:`${Math.round(Math.min(ke,de))}px`,overflowX:"hidden",overflowY:"auto",zIndex:"2147483000"},O.value&&n.value==="day"&&(c.value.minWidth="345px")},we=(se,ie)=>se.bottom>ie.top&&se.top<ie.bottom&&se.right>ie.left&&se.left<ie.right,be=se=>{const ie=[];let ve=se.parentElement;for(;ve;){const Se=window.getComputedStyle(ve),Le=Se.overflowY,qe=Se.overflowX,z=["auto","scroll","hidden","clip"].includes(Le),ne=["auto","scroll","hidden","clip"].includes(qe);(z||ne)&&ie.push(ve),ve=ve.parentElement}return ie},$e=()=>{if(!l.value)return!1;const se=l.value.getBoundingClientRect(),ie=new DOMRect(0,0,window.innerWidth,window.innerHeight);return we(se,ie)?be(l.value).every(Se=>we(se,Se.getBoundingClientRect())):!1},Me=()=>{if(U.value){if(!$e()){i.value=!0,S();return}Fe();return}i.value&&document.activeElement===l.value&&$e()&&(i.value=!1,E(Q.value))};e.watch(n,()=>{U.value&&e.nextTick(()=>Fe())});const Fe=()=>{he(),h!==null&&cancelAnimationFrame(h),h=requestAnimationFrame(()=>{he(),h=null})};e.onMounted(()=>{window.addEventListener("resize",Me),window.addEventListener("scroll",Me,!0),document.addEventListener("pointerdown",Re,!0)}),e.onBeforeUnmount(()=>{h!==null&&(cancelAnimationFrame(h),h=null),window.removeEventListener("resize",Me),window.removeEventListener("scroll",Me,!0),document.removeEventListener("pointerdown",Re,!0)});const Re=se=>{if(n.value==="none")return;const ie=se.target;if(!ie)return;const ve=!!a.value?.contains(ie),Se=!!s.value?.contains(ie);!ve&&!Se&&(i.value=!1,S())};return{rootRef:a,blur:te,focus:J,click:I,input:y,inputRef:l,pageDate:r,renderView:_,updatePageDate:T,selectYear:j,selectMonth:oe,selectDay:A,selectToday:Y,selectTime:P,keyUp:N,onInput:L,isTimeOnlyMode:Z,isDateTimeMode:O,normalizedWeekdayNames:ae,viewShown:n,goBackFromTimepicker:ee,clearModelValue:q,initialView:Q,log:se=>console.log(se),popupAnchorStyle:c,popupRef:s}}}),di={ref:"rootRef",class:"relative"},ui={class:"p-datepicker p-component p-inputwrapper relative"},pi=["readonly","value","placeholder","disabled","tabindex"],mi={class:"p-datepicker-input-icon-container absolute right-2 top-1/2 -translate-y-1/2 pointer-events-none text-slate-400"},fi={class:"absolute right-8 top-1/2 -translate-y-1/2"};function hi(o,t,n,r,a,l){const s=e.resolveComponent("Clock3"),c=e.resolveComponent("CalendarDays"),i=e.resolveComponent("X"),d=e.resolveComponent("year-picker"),h=e.resolveComponent("month-picker"),y=e.resolveComponent("time-picker"),p=e.resolveComponent("day-picker");return e.openBlock(),e.createElementBlock("div",di,[e.createElementVNode("div",ui,[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]=(...m)=>o.onInput&&o.onInput(...m)),onKeyup:t[1]||(t[1]=(...m)=>o.keyUp&&o.keyUp(...m)),onBlur:t[2]||(t[2]=(...m)=>o.blur&&o.blur(...m)),onFocus:t[3]||(t[3]=(...m)=>o.focus&&o.focus(...m)),onClick:t[4]||(t[4]=(...m)=>o.click&&o.click(...m))}),null,16,pi),e.createElementVNode("span",mi,[o.isTimeOnlyMode?(e.openBlock(),e.createBlock(s,{key:0,class:"h-4 w-4"})):(e.openBlock(),e.createBlock(c,{key:1,class:"h-4 w-4"}))]),e.withDirectives(e.createElementVNode("div",fi,[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]=m=>o.clearModelValue())},[e.createVNode(i,{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]=m=>o.updatePageDate("year",m)),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(h,{pageDate:o.pageDate,"onUpdate:pageDate":t[7]||(t[7]=m=>o.updatePageDate("month",m)),selected:o.modelValue,onSelect:o.selectMonth,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,format:o.monthListFormat,onBack:t[8]||(t[8]=m=>o.viewShown="year")},null,8,["pageDate","selected","onSelect","lowerLimit","upperLimit","format"]),[[e.vShow,o.viewShown==="month"]]),e.withDirectives(e.createVNode(p,{pageDate:o.pageDate,"onUpdate:pageDate":t[9]||(t[9]=m=>o.updatePageDate("day",m)),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]=m=>o.viewShown="month")},e.createSlots({_:2},[o.isDateTimeMode?{name:"after-calendar",fn:e.withCtx(()=>[e.createVNode(y,{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(y,{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 gi=Be(ci,[["render",hi]]),ir=Be(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:{},maxDaysFromNow:{},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:a}=et(n.style),l=e.getCurrentInstance(),s=e.computed(()=>n.mode?n.mode:n.time?"datetime":"date"),c=e.computed(()=>["py-1.5 px-3 block w-full placeholder:text-[#767f8f] bg-white",a.value,n.customClass,{"!border-red-600":n.error}]),i=e.computed(()=>!n.modelValue&&n.now?new Date:null),d=e.computed({get:()=>E(n.modelValue??i.value,s.value)||void 0,set:L=>r("update:modelValue",S(L,s.value))}),h=["Пн","Вт","Ср","Чт","Пт","Сб","Нд"],y=e.computed(()=>{if(n.dayNames?.length)return n.dayNames.length===7?n.dayNames:h}),p=e.computed(()=>{const L=n.weekStart,M=typeof L=="string"?Number(L):L;return M===void 0||Number.isNaN(M)?1:Math.min(6,Math.max(0,M))}),m=e.computed(()=>{const L=n.maxDaysFromNow;if(L==null||L==="")return;const M=typeof L=="string"?Number(L):L;if(!Number.isFinite(M)||M<0)return;const N=new Date;return N.setHours(0,0,0,0),N.setDate(N.getDate()+M),N.setHours(23,59,59,999),N}),f=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"}}}),w={date:"dd.MM.yyyy",datetime:"dd.MM.yyyy HH:mm",month:"MM.yyyy",time:"HH:mm",week:"dd.MM.yyyy",year:"yyyy"};function b(){const L=l?.appContext?.config?.globalProperties?.$i18n?.locale;if(typeof L=="string"&&L)return L;if(L&&typeof L=="object"&&"value"in L&&L.value)return String(L.value);if(typeof localStorage<"u"){const M=localStorage.getItem("locale")||localStorage.getItem("language");if(M)return M}return"uk"}function v(){const M=l?.appContext?.config?.globalProperties?.$settings?.dateFormat;if(!M)return"";if(typeof M=="string")return M;if(typeof M=="object"){const N=b();return M[N]||M[N.split("-")[0]]||M.uk||M.en||""}return""}function C(L){return L?L.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 V=e.computed(()=>{const L=w[s.value]||"dd.MM.yyyy";if(s.value==="time")return L;const M=n.dateFormat||v();if(!M)return L;const N=C(M);return N?s.value==="datetime"?`${N} HH:mm`:N:L});function $(L,M){return L?M==="week"?"рррр-тиждень":L.replaceAll("yyyy","рррр").replaceAll("yy","рр").replaceAll("MM","мм").replaceAll("M","м").replaceAll("dd","дд").replaceAll("d","д").replaceAll("HH","гг").replaceAll("H","г").replaceAll("mm",M==="time"||M==="datetime"?"хх":"мм"):""}const U={date:"дд.мм.рррр",datetime:"дд.мм.рррр гг:хх",month:"мм.рррр",week:"рррр-тиждень",time:"гг:хх",year:"рррр"},Z=e.computed(()=>{if(n.placeholder)return n.placeholder;const L=s.value;return $(V.value,L)||U[L]||""}),O=e.ref(!1);e.watch(()=>n.modelValue,L=>{L?O.value=!0:n.now||(O.value=!1)},{immediate:!0}),e.watchEffect(()=>{n.now&&!n.modelValue&&!O.value&&(r("update:modelValue",S(new Date,s.value)),O.value=!0)}),e.watch(V,()=>{r("update:modelValue",S(d.value,s.value))});function E(L,M){if(!L)return null;if(L instanceof Date&&!Number.isNaN(L.getTime()))return L;if(typeof L!="string")return null;switch(M){case"datetime":return oe(L);case"time":return Y(L);case"month":return A(L);case"year":return P(L);case"week":return q(L);case"date":default:return j(L)}}function S(L,M){if(!L)return null;const N=L instanceof Date?L:E(L,M);if(!N)return null;switch(M){case"datetime":return`${_(N)}T${T(N)}`;case"time":return T(N);case"month":return`${N.getFullYear()}-${te(N.getMonth()+1)}`;case"year":return`${N.getFullYear()}`;case"week":{const{year:Q,week:ae}=I(N);return`${Q}-W${te(ae)}`}case"date":default:return _(N)}}function _(L){return`${L.getFullYear()}-${te(L.getMonth()+1)}-${te(L.getDate())}`}function T(L){return`${te(L.getHours())}:${te(L.getMinutes())}`}function j(L){const M=L.split("-");if(M.length<3)return null;const[N,Q,ae]=M.map(Number);return!N||!Q||!ae?null:new Date(N,Q-1,ae)}function oe(L){const M=L.includes("T")?L:L.replace(" ","T"),N=new Date(M);return Number.isNaN(N.getTime())?null:N}function A(L){const[M,N]=L.split("-").map(Number);return!M||Number.isNaN(N)?null:new Date(M,(N||1)-1,1)}function P(L){const M=Number(L);return M?new Date(M,0,1):null}function Y(L){const M=L.trim().match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/);if(!M)return null;const[,N,Q,ae]=M,ee=new Date;return ee.setHours(Number(N),Number(Q),Number(ae||0),0),ee}function q(L){const M=L.match(/^(\d{4})-W(\d{2})$/);if(!M)return null;const[,N,Q]=M,ae=Number(Q);return J(Number(N),ae)}function I(L){const M=new Date(Date.UTC(L.getFullYear(),L.getMonth(),L.getDate())),N=M.getUTCDay()||7;M.setUTCDate(M.getUTCDate()+4-N);const Q=new Date(Date.UTC(M.getUTCFullYear(),0,1)),ae=Math.ceil(((M.getTime()-Q.getTime())/864e5+1)/7);return{year:M.getUTCFullYear(),week:ae}}function J(L,M){if(!L||!M)return null;const N=new Date(L,0,1+(M-1)*7),Q=N.getDay(),ae=N;return Q<=4?ae.setDate(N.getDate()-N.getDay()+1):ae.setDate(N.getDate()+8-N.getDay()),ae}function te(L){return String(L).padStart(2,"0")}return(L,M)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-date-picker",n.customClass])},[e.createVNode(gi,{modelValue:d.value,"onUpdate:modelValue":M[0]||(M[0]=N=>d.value=N),placeholder:Z.value,disabled:n.disabled,clearable:n.clearable,typeable:n.editable,"week-day-names":y.value,"week-starts-on":p.value,"starting-view":f.value.startingView,"minimum-view":f.value.minimumView,"input-format":V.value,"upper-limit":m.value,name:n.name,class:e.normalizeClass(c.value)},null,8,["modelValue","placeholder","disabled","clearable","typeable","week-day-names","week-starts-on","starting-view","minimum-view","input-format","upper-limit","name","class"])],2))}}),[["__scopeId","data-v-fb3e8176"]]),yi=(o,t)=>{if(!t||!Object.keys(t).length)return o;const[n,r=""]=o.split("?"),a=new URLSearchParams(r);Object.entries(t).forEach(([s,c])=>{c==null||c===""||a.set(s,String(c))});const l=a.toString();return l?`${n}?${l}`:n},bi=(o,t,n)=>new Promise((r,a)=>{const l=new FormData;l.append("unique","true"),l.append("file",o);const s=new XMLHttpRequest;s.open("POST",t),s.upload.addEventListener("progress",c=>{if(n){if(c.lengthComputable&&c.total>0){n(Math.min(100,Math.round(c.loaded/c.total*100)));return}n(0)}}),s.addEventListener("load",()=>{try{const c=s.responseText?JSON.parse(s.responseText):{};if(s.status>=200&&s.status<300){r(c?.result??null);return}a(new Error(c?.message||c?.error||`Код помилки: ${s.status}`))}catch(c){a(c)}}),s.addEventListener("error",()=>a(new Error("Помилка мережі під час завантаження файлу"))),s.addEventListener("abort",()=>a(new Error("Завантаження файлу скасовано"))),s.send(l)}),ki=async(o,t={})=>{try{const{api:n,id:r="1",form:a="form",table:l="table",customParams:s,onProgress:c}=t,i=n||`/file/upload/uploads?id=${r||""}&form=${a||""}&table=${l||""}`,d=yi(i,s);if(o instanceof File)return await bi(o,d,c);const h=new FormData;return h.append("unique","true"),h.append("file",o),(await fetch(d,{method:"POST",body:h}).then(p=>p.json()))?.result}catch(n){return ge.notify({type:"error",title:"Помилка!",message:"Сталась помилка під час завантаження файлу",position:"right-bottom"}),console.error("Сталась помилка завантаження файлу",n),null}},wi=async o=>{try{return await fetch(`file/delete/${o}`),!0}catch(t){return console.error(t),!1}},cr=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(),a=(t.headers.get("content-disposition")||"").match(/filename\*?=(?:UTF-8''|")?([^\";]+)/i),l=a?.[1]?decodeURIComponent(a[1].replace(/"/g,"").trim()):"",s=o.split("/").filter(Boolean).pop()||"download",c=l||s,i=document.createElement("a");i.setAttribute("download",c),i.href=window.URL.createObjectURL(n),i.click(),window.URL.revokeObjectURL(i.href)}catch(t){console.error(t.message)}},xi=o=>{if(!o)return"";const t=o?.split(".");return t[t.length-1]},dr=o=>{const t=xi(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)?X.Table:n.textsFormat.includes(t)?X.FileCode:n.documentsFormat.includes(t)?X.FileText:n.archivesFormat.includes(t)?X.FileArchive:X.FileText},vi=["title"],_i={key:0,class:"absolute inset-0 flex flex-col items-center justify-center gap-1 rounded-lg bg-white/90 px-2 text-center text-xs font-medium text-slate-600"},Ci=["title"],Ei={class:"absolute hidden top-0 right-0 flex items-center gap-x-2 w-full h-full justify-center"},ht=Be(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:{},action:{type:Boolean,default:!1},isUploading:{type:Boolean,default:!1},progressPercent:{default:0},title:{default:""}},{value:{},valueModifiers:{},item:{},itemModifiers:{}}),emits:e.mergeModels(["click"],["update:value","update:item"]),setup(o,{emit:t}){const n=e.useModel(o,"value"),r=e.useModel(o,"item"),a=t,l=o,s=e.computed(()=>l.action),c=e.computed(()=>r.value?typeof r.value=="string"?r.value:r.value.file_path:""),i=e.computed(()=>l.disabled?"opacity-50 cursor-not-allowed":l.isUploading?"cursor-default text-blue-500":"cursor-pointer hover:border-blue-500 hover:bg-blue-50 hover:text-blue-500"),d=e.computed(()=>l.progressPercent>0?`${l.progressPercent}%`:"Завантаження..."),h=f=>typeof f=="string"?f:f?.file_path||"",y=()=>{const f=c.value;wi(f),l.multiple&&Array.isArray(n.value)?n.value=n.value.filter(w=>h(w)!==f):n.value=""},p=()=>{c.value&&window.open(c.value,"_blank")},m=()=>{l.disabled||l.isUploading||a("click")};return(f,w)=>s.value?(e.openBlock(),e.createElementBlock("div",{key:0,title:f.title,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",i.value]),onClick:m},[f.isUploading?(e.openBlock(),e.createElementBlock("div",_i,[w[2]||(w[2]=e.createElementVNode("div",{class:"loader"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(d.value),1)])):(e.openBlock(),e.createBlock(e.unref(X.Plus),{key:1,class:"h-4 w-4"}))],10,vi)):(e.openBlock(),e.createElementBlock("div",{key:1,title:c.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(dr)(c.value)),{src:`${e.unref(dr)(c.value)} === 'img'`?`/file/resize?filepath=${c.value}&format=webp`:c.value,alt:"file",class:"w-full h-full object-cover cursor-pointer",onClick:w[0]||(w[0]=b=>e.unref(cr)(c.value))},null,8,["src"])),e.createElementVNode("div",Ei,[e.createElementVNode("button",{type:"button",onClick:y,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(X.Trash2),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:p,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(X.Eye),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:w[1]||(w[1]=b=>e.unref(cr)(c.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(X.Download),{class:"w-4 h-4"})])])],8,Ci))}}),[["__scopeId","data-v-b03cac5c"]]),ur=o=>o?o.split(",").map(t=>t.trim().toLowerCase()).filter(Boolean).map(t=>t.startsWith(".")?t.slice(1):t):[],pr=(o,t)=>!t||o.size<=t*1024*1024?!0:(ge.notify({type:"error",title:"Помилка!",message:`Файл "${o.name}" занадто великий. Максимальний розмір: ${t} МБ`,position:"right-bottom"}),!1),mr=(o,t)=>{if(!t.length)return!0;const n=o.name.split(".").pop()?.toLowerCase()||"";return t.includes(n)?!0:(ge.notify({type:"error",title:"Помилка!",message:`Неприпустимий формат файлу "${o.name}". Дозволені формати: ${t.map(r=>`.${r}`).join(", ")}`,position:"right-bottom"}),!1)},fr=(o,t)=>{const n={},r=[];if(!o?.length)return{ok:!0,params:n,missingSources:r};const a=t?.value??{};return o.forEach(l=>{if(!l)return;const[s,c]=l.split("="),i=s?.trim(),d=c?.trim();if(!i||!d)return;const h=a[d];if(h==null||h===""){r.push(d);return}n[i]=h}),r.length?(ge.notify({type:"warning",title:"Заповніть поля",message:`Поля (${r.join(", ")}) необхідні для завантаження файлу`,position:"right-bottom"}),{ok:!1,params:n,missingSources:r}):{ok:!0,params:n,missingSources:r}},hr=(o,t)=>!t||!Array.isArray(o)?[]:o,gr=(o,t)=>t||Array.isArray(o)?null:o,yr=o=>{if(!o)return"";const t=o.split(/[/\\]/).pop()||"",n=t.lastIndexOf(".");return n<=0||n===t.length-1?"":t.slice(n+1).toLowerCase()},Bi={class:"flex items-center flex-wrap gap-2"},Vi=["accept","multiple","disabled"],br=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"),a=t,l=e.ref(null),s=e.ref(!1),c=e.ref([]),i=e.inject("values"),d=e.inject("map-file-import-uploading",null),h=e.computed(()=>hr(r.value,!!n.multiple)),y=e.computed(()=>gr(r.value,!!n.multiple)),p=e.computed(()=>ur(n.format)),m=e.computed(()=>fr(n.customParams,i)),f=Z=>{ge.notify({type:"error",title:"Помилка завантаження",message:Z||"Не вдалося завантажити файл. Спробуйте ще раз.",position:"right-bottom"})},w=()=>{n.disabled||s.value||m.value.ok&&l.value?.click()},b=async(Z,O)=>{const E={api:n.api,customParams:Object.keys(m.value.params).length?m.value.params:void 0,onProgress:_=>{O&&(O.status="uploading",O.progressPercent=_)}},S=await ki(Z,E);return S?.file_path?S.file_path:null};e.watch(s,Z=>{d&&(d.value=Z)},{immediate:!0});const v=e.computed(()=>c.value.filter(Z=>Z.status!=="done")),C=e.computed(()=>v.value[0]||null),V=Z=>typeof Z=="string"?Z:Z?.file_path||"",$=(Z,O)=>({key:`${Date.now()}-${O}-${Z.name}`,file:Z,size:Z.size,uploaded:0,status:"pending",error:null,path:null,progressPercent:0}),U=async Z=>{const{files:O}=Z.target;if(!O||O.length===0)return;if(!m.value.ok){l.value&&(l.value.value="");return}const E=Array.from(O);if(n.max_size&&E.filter(T=>!pr(T,n.max_size)).length>0){l.value&&(l.value.value="");return}if(E.filter(_=>!mr(_,p.value)).length>0){l.value&&(l.value.value="");return}s.value=!0,c.value=E.map((_,T)=>$(_,T));try{if(n.multiple){const oe=await Promise.all(E.map(async(q,I)=>{const J=c.value[I];J.status="uploading",J.progressPercent=0;const te=await b(q,J);return te?(J.status="done",J.path=te,J.uploaded=J.size,J.progressPercent=100):(J.status="error",J.error="Помилка при завантаженні"),te})),A=oe.filter(q=>!!q);if(A.length===0){f();return}A.length<oe.length&&f("Деякі файли не вдалося завантажити. Перевірте їх та спробуйте знову.");const P=A,Y=Array.isArray(r.value)?r.value:r.value?[r.value]:[];r.value=[...Y,...P],a("change",r.value);return}const _=E[0],T=c.value[0];T.status="uploading",T.progressPercent=0;const j=await b(_,T);if(!j){T.status="error",T.error="Помилка при завантаженні",f();return}T.status="done",T.path=j,T.uploaded=T.size,T.progressPercent=100,r.value=j,a("change",j)}catch(_){f(_?.message||void 0)}finally{s.value=!1,c.value=[],l.value&&(l.value.value="")}};return(Z,O)=>(e.openBlock(),e.createElementBlock("div",Bi,[e.createElementVNode("input",{class:"hidden",ref_key:"fileInput",ref:l,type:"file",accept:n.format,multiple:n.multiple,onChange:U,disabled:s.value||Z.disabled},null,40,Vi),y.value?(e.openBlock(),e.createBlock(ht,{key:0,item:y.value,value:r.value,"onUpdate:value":O[0]||(O[0]=E=>r.value=E)},null,8,["item","value"])):e.createCommentVNode("",!0),n.multiple?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,(E,S)=>(e.openBlock(),e.createBlock(ht,{key:`${S}-${V(E)}`,multiple:!0,item:E,value:r.value,"onUpdate:value":O[1]||(O[1]=_=>r.value=_)},null,8,["item","value"]))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,E=>(e.openBlock(),e.createBlock(ht,{key:E.key,action:"","is-uploading":!0,disabled:!0,"progress-percent":E.progressPercent,title:E.file.name},null,8,["progress-percent","title"]))),128)),e.createVNode(ht,{action:"","is-uploading":!1,disabled:Z.disabled||s.value,title:"Добавить файлы",onClick:w},null,8,["disabled"])],64)):!n.multiple&&!C.value?(e.openBlock(),e.createBlock(ht,{key:2,action:"","is-uploading":!1,disabled:Z.disabled||s.value,title:"Обновить файл",onClick:w},null,8,["disabled"])):C.value?(e.openBlock(),e.createBlock(ht,{key:3,action:"","is-uploading":!0,disabled:!0,"progress-percent":C.value.progressPercent,title:C.value.file.name},null,8,["progress-percent","title"])):e.createCommentVNode("",!0)]))}}),Si={class:"vs-input-file2 flex flex-col gap-4"},$i={class:"flex items-center flex-wrap gap-2"},Ai=["multiple","accept","disabled"],Ni={key:0,class:"text-sm text-rose-600"},Tn=e.defineComponent({__name:"vs-input-file2",props:e.mergeModels({format:{},max_size:{},api:{},multiple:{type:Boolean,default:!1},chunkSize:{default:5*1024*1024},subdir:{default:""},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref(null),a=e.ref(!1),l=e.ref(""),s=e.ref([]),c=e.inject("values"),i=e.computed(()=>!!t.multiple),d=e.computed(()=>ur(t.format)),h=e.computed(()=>{if(d.value.length)return d.value.map(E=>`.${E}`).join(",")}),y=e.computed(()=>hr(n.value,i.value)),p=e.computed(()=>gr(n.value,i.value)),m=e.computed(()=>fr(t.customParams,c)),f=e.computed(()=>s.value.filter(E=>E.status!=="done")),w=e.computed(()=>i.value?null:f.value[0]||null),b=e.computed(()=>{const E=f.value,S=E.reduce((T,j)=>T+j.size,0);if(!S)return 0;const _=E.reduce((T,j)=>T+Math.min(j.uploaded,j.size),0);return Math.min(100,Math.round(_/S*100))}),v=()=>{t.disabled||a.value||m.value.ok&&r.value?.click()},C=async(E,S)=>{const _=S||Z(E,0);try{_.status="uploading";const T={id:"",fileName:_.file.name,subdir:t.subdir,size:_.file.size,...m.value.params},j=await fetch(`${t.api||"/file/upload2"}/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(T)});if(!j.ok)throw new Error("Не вдалося ініціалізувати завантаження");const oe=await j.json().catch(()=>({}));_.uploadId=oe.id||"",_.uploaded=Number(oe.uploaded)||0,_.progressPercent=_.size?Math.min(100,Math.round(_.uploaded/_.size*100)):0;const A=t.chunkSize??5*1024*1024;for(;_.uploaded<_.size;){const q=_.uploaded,I=Math.min(q+A,_.size),te=await _.file.slice(q,I).arrayBuffer(),L=await fetch(`${t.api||"/file/upload2"}/${_.uploadId}`,{method:"PATCH",headers:{"Content-Range":`bytes ${q}-${I-1}/${_.size}`,"Content-Type":"application/octet-stream"},body:te});if(!L.ok)throw new Error("Помилка завантаження частини");const M=await L.json().catch(()=>({})),N=M.uploaded!=null?Number(M.uploaded):I;if(_.uploaded=N,_.progressPercent=_.size?Math.min(100,Math.round(_.uploaded/_.size*100)):0,M.finished||N>=_.size){const Q=yr(_.file.name),ae=M.file_path||M.filepath||M.url||(Q?`/files/uploads/${_.uploadId}.${Q}`:`/files/uploads/${_.uploadId}`);return _.path=ae,_.status="done",U(ae),ae}}const P=yr(_.file.name),Y=`/files/uploads/${_.uploadId}${P?`.${P}`:""}`;return _.path=Y,_.status="done",U(Y),Y}catch(T){return _.status="error",_.error=T?.message||"Помилка при завантаженні",l.value=T?.message||"Помилка при завантаженні",null}},V=E=>typeof E=="string"?E:E?.file_path||"",$=E=>!E||E.length===0?[]:Array.from(E),U=E=>{if(i.value){const S=Array.isArray(n.value)?[...n.value]:n.value?[n.value]:[];S.push(E),n.value=S;return}n.value=E},Z=(E,S)=>({key:`${Date.now()}-${S}-${E.name}`,file:E,size:E.size,uploaded:0,uploadId:"",status:"pending",error:null,path:null,progressPercent:0}),O=async E=>{const S=E.target,_=$(S.files);if(!_.length)return;if(!m.value.ok){S.value="";return}const T=_.filter(j=>pr(j,t.max_size)&&mr(j,d.value));if(!T.length){S.value="";return}try{a.value=!0,l.value="",s.value=T.map((P,Y)=>Z(P,Y));const oe=(await Promise.allSettled(s.value.map(P=>C(P.file,P)))).filter(P=>P.status==="fulfilled").map(P=>P.value).filter(P=>!!P),A=s.value.filter(P=>P.status==="error").map(P=>P.file.name);if(oe.length===0){l.value="Не вдалося завантажити файл";return}A.length>0?ge.notify({type:"warning",title:"Частина файлів не завантажилась",message:A.join(", "),position:"right-bottom"}):ge.notify({type:"success",title:"Файл завантажено",message:T.length>1?`Завантажено ${oe.length} файлів`:T[0].name,position:"right-bottom"})}finally{a.value=!1,s.value=[],S.value=""}};return(E,S)=>(e.openBlock(),e.createElementBlock("div",Si,[e.createElementVNode("div",$i,[e.createElementVNode("input",{ref_key:"fileInput",ref:r,type:"file",class:"hidden",multiple:i.value,accept:h.value,disabled:a.value||t.disabled,onChange:O},null,40,Ai),i.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(y.value,(_,T)=>(e.openBlock(),e.createBlock(ht,{key:`${T}-${V(_)}`,multiple:!0,item:_,value:n.value,"onUpdate:value":S[0]||(S[0]=j=>n.value=j)},null,8,["item","value"]))),128)):p.value?(e.openBlock(),e.createBlock(ht,{key:1,item:p.value,value:n.value,"onUpdate:value":S[1]||(S[1]=_=>n.value=_)},null,8,["item","value"])):e.createCommentVNode("",!0),i.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(f.value,_=>(e.openBlock(),e.createBlock(ht,{key:_.key,action:"","is-uploading":!0,disabled:!0,"progress-percent":_.progressPercent,title:_.file.name},null,8,["progress-percent","title"]))),128)):w.value?(e.openBlock(),e.createBlock(ht,{key:3,action:"","is-uploading":!0,disabled:!0,"progress-percent":w.value.progressPercent,title:w.value.file.name},null,8,["progress-percent","title"])):e.createCommentVNode("",!0),e.createVNode(ht,{action:"","is-uploading":!1,disabled:t.disabled||a.value,"progress-percent":b.value,title:i.value?"Добавить файлы":"Обновить файл",onClick:v},null,8,["disabled","progress-percent","title"])]),l.value?(e.openBlock(),e.createElementBlock("p",Ni,e.toDisplayString(l.value),1)):e.createCommentVNode("",!0)]))}}),Mi={class:"flex items-center justify-center h-[30px] w-[30px]"},Fi={class:"max-w-[55vw]"},Di={class:"text-sm font-semibold text-gray-800 truncate dark:text-neutral-200"},Ti={class:"flex items-center text-xs text-gray-500 truncate dark:text-neutral-500"},Li={class:"px-[5px]"},Ii={class:""},Ln=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(a){if(a<1024)return`${a} B`;const l=a/1024;return l<1024?`${l.toFixed(2)} KB`:`${(l/1024).toFixed(2)} MB`}return(a,l)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",Mi,[e.createVNode(e.unref(X.FileText),{class:"icon icon-tabler icons-tabler-outline icon-tabler-file h-4 w-4"})]),e.createElementVNode("div",Fi,[e.createElementVNode("p",Di,e.toDisplayString(a.item?.uploaded_name),1),e.createElementVNode("p",Ti,[e.createElementVNode("span",null,e.toDisplayString(a.item?.username),1),e.withDirectives(e.createElementVNode("span",Li,"|",512),[[e.vShow,a.item?.username]]),e.createElementVNode("span",null,e.toDisplayString(n.value),1),l[0]||(l[0]=e.createElementVNode("span",{class:"px-[5px]"},"|",-1)),e.createElementVNode("span",Ii,e.toDisplayString(r(a.item?.size)),1)])])],64))}}),Oi={class:"p-3 relative group flex items-center gap-x-3 border border-gray-200 bg-white rounded-md w-full"},Pi={key:0,class:"flex w-full gap-x-3 items-center"},Ri={key:1,class:"flex gap-x-3 w-full items-center"},zi={key:2,class:"flex gap-x-3 w-full items-center"},ji=["href"],Ui={key:3,class:"flex gap-x-3 w-full items-center"},Hi={class:"lg:absolute lg:top-3 lg:end-1 opacity-100"},qi={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"},Wi={class:"inline-block"},Ki={class:"inline-block"},Gi={class:"inline-block"},Yi=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 a(y){return["pdf","json"].includes(y.ext)}function l(y){return["ppt","pptx","doc","docx","xls","xlsx"].includes(y.ext)}function s(y){const p=document.createElement("a");p.setAttribute("download",y?.uploaded_name),p.href=y?.file_path,p.click()}function c(y){y?.file_path&&window.open(y.file_path,"_blank")}async function i(){try{await fetch(`${n.prefix}/widget/file/${n.item.entity_id}/${n.item.file_id}`,{method:"DELETE"}),r("update")}catch(y){console.error(y)}}function d(){r("openModal",{title:"Ви впевнені?",message:"Ви впевнені, що хочете видалити цей файл?",confirmButtonText:"Так, я впевнена/ий",cancelButtonText:"Скасувати",confirm:i,updateListOnConfirm:!0})}function h(y){(n.item.ext==="jpg"||n.item.ext==="png")&&r("openLightbox",{item:n.item,index:y})}return(y,p)=>(e.openBlock(),e.createElementBlock("div",Oi,[y.item.ext==="jpg"||y.item.ext==="png"?(e.openBlock(),e.createElementBlock("div",Pi,[e.createElementVNode("div",{class:"max-w-[55vw] cursor-pointer flex gap-x-3 w-full items-center",onClick:p[0]||(p[0]=m=>h(y.index))},[e.createVNode(Ln,{item:y.item},null,8,["item"])])])):a(y.item)?(e.openBlock(),e.createElementBlock("div",Ri,[e.createVNode(Ln,{item:y.item},null,8,["item"])])):l(y.item)?(e.openBlock(),e.createElementBlock("div",zi,[e.createElementVNode("a",{href:`/api/file-preview?id=${y.item.file_id}`,target:"_blank",class:"flex gap-x-3 w-full items-center"},[e.createVNode(Ln,{item:y.item},null,8,["item"])],8,ji)])):(e.openBlock(),e.createElementBlock("div",Ui,[e.createVNode(Ln,{item:y.item},null,8,["item"])])),e.createElementVNode("div",Hi,[e.createElementVNode("div",qi,[e.createElementVNode("div",Wi,[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:p[1]||(p[1]=m=>c(y.item))},[e.createVNode(e.unref(X.Eye),{class:"h-4 w-4"})])]),e.createElementVNode("div",Ki,[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:p[2]||(p[2]=m=>s(y.item))},[e.createVNode(e.unref(X.Download),{class:"h-4 w-4"})])]),p[4]||(p[4]=e.createElementVNode("div",{class:"w-px h-5 mx-1 bg-gray-200 dark:bg-neutral-700"},null,-1)),e.createElementVNode("div",Gi,[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:p[3]||(p[3]=m=>d())},[e.createVNode(e.unref(X.Trash2),{class:"h-4 w-4"})])])])])]))}}),Xi={class:"flex flex-col widget-file xl:bg-white xl:rounded-xl dark:xl:bg-neutral-800 dark:xl:border-neutral-700 w-full"},Zi={class:"flex w-full mb-[12px] items-center gap-x-2"},Ji={class:"font-semibold text-gray-800 dark:text-neutral-200 text-[14px]"},Qi={class1:"ml-auto"},ec={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"},tc={key:0,class:"py-4 mb-4 space-y-4 border-gray-200 border-y dark:border-neutral-700"},nc={class:"relative"},oc={class:"absolute inset-y-0 start-0 flex items-center pointer-events-none z-[1] ps-3.5"},rc={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"},lc={key:0},kr=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"),a=e.computed(()=>r.value.formId),l=e.ref(!1),s=e.ref(0),c=t,i=e.ref(!1),d=e.ref({}),h=e.ref([]),y=e.ref(""),p=e.computed(()=>Array.isArray(h.value)?h.value.filter(V=>V.ext==="jpg"||V.ext==="png").map(V=>V?.file_path):[]),m=e.computed(()=>y.value===""?h.value:h.value.filter(V=>V?.uploaded_name?.includes(y.value))),f=V=>{const $=p.value.findIndex(U=>U===V.item.file_path);$!==-1&&(l.value=!0,s.value=$)},w=async()=>{try{const V=await fetch(`${n.prefix}/widget/file/${a.value}`).then($=>$.json());h.value=V?.rows}catch(V){console.error(V)}},b=async V=>{await Promise.all(Array.from(V.target.files).map(async $=>{const U=new FormData;U.append("file",$);try{const Z=`${n.prefix}/widget/file/${a.value}`,O=await fetch(Z,{method:"POST",body:U});return O.ok?(c("update","file-list"),$):(ge.notify({type:O.status>=400&&O.status<500?"warning":"error",title:"Error",message:`Error code: ${O.status}`}),null)}catch(Z){return ge.notify({type:"error",title:"Error",message:Z.message||"Unknown error"}),console.error(Z),null}})),await w()},v=V=>{const $={...V};return V.cancel||($.cancel=()=>{i.value=!1}),V.updateListOnConfirm&&($.confirm=async()=>{await V.confirm(),i.value=!1,w()}),$},C=V=>{d.value=v(V),i.value=!0};return e.watch(a,V=>{V&&w()}),e.onMounted(()=>{a.value&&w()}),(V,$)=>{const U=e.resolveComponent("Lightbox"),Z=e.resolveComponent("MessageBox");return e.openBlock(),e.createElementBlock("div",Xi,[e.createElementVNode("div",Zi,[e.createElementVNode("h2",Ji," Файлів: "+e.toDisplayString(h.value?.length),1),e.createElementVNode("div",Qi,[e.createElementVNode("label",null,[e.createElementVNode("input",{type:"file",class:"hidden",onChange:$[0]||($[0]=O=>b(O))},null,32),e.createElementVNode("div",ec,[e.createVNode(e.unref(X.Upload),{class:"h-4 w-4"})])])])]),h.value?.length>4?(e.openBlock(),e.createElementBlock("div",tc,[e.createElementVNode("div",null,[e.createElementVNode("div",nc,[e.createElementVNode("div",oc,[e.createVNode(e.unref(X.Search),{class:"flex-shrink-0 text-gray-500 size-4 dark:text-neutral-400"})]),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":$[1]||($[1]=O=>y.value=O),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,y.value,void 0,{trim:!0}]])])])])):e.createCommentVNode("",!0),h.value?.length?(e.openBlock(),e.createElementBlock("div",rc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(O,E)=>(e.openBlock(),e.createBlock(Yi,{key:E,prefix:V.prefix,item:O,index:E,onUpdate:$[2]||($[2]=S=>V.$emit("update","file-list")),onOpenModal:$[3]||($[3]=S=>C(S)),onOpenLightbox:$[4]||($[4]=S=>f(S))},null,8,["prefix","item","index"]))),128)),m.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",lc,$[8]||($[8]=[e.createElementVNode("p",{class:"text-sm text-gray-600 font-sm"}," Файлів з такою назвою не існує, введіть інше пошукове слово ",-1)])))])):e.createCommentVNode("",!0),e.createVNode(U,{modelValue:l.value,"onUpdate:modelValue":$[5]||($[5]=O=>l.value=O),startIndex:s.value,"onUpdate:index":$[6]||($[6]=O=>s.value=O),images:p.value},null,8,["modelValue","startIndex","images"]),e.createVNode(Z,e.mergeProps({modelValue:i.value,"onUpdate:modelValue":$[7]||($[7]=O=>i.value=O),onConfirm:d.value.confirm},d.value),null,16,["modelValue","onConfirm"])])}}}),ac={class:"flex items-center justify-between"},sc={class:"text-[16px] text-gray-900 font-medium"},ic={class:"grid gap-3"},cc=Be(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,a)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",ac,[e.createElementVNode("p",sc,e.toDisplayString(o.title),1),e.createVNode(io,{modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=l=>n.value=l),style:e.normalizeStyle(o.style)},null,8,["modelValue","style"])]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",ic,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-90320b87"]]),dc={class:"text-[16px] text-gray-900 font-medium"},uc={class:"grid gap-3"},pc=Be(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,a)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("button",{type:"button",onClick:a[0]||(a[0]=l=>n.value=!n.value),class:"flex items-center gap-2"},[e.createVNode(e.unref(X.ChevronDown),{class:e.normalizeClass(["h-4 w-4 duration-300",[n.value?"-rotate-180":""]])},null,8,["class"]),e.createElementVNode("span",dc,e.toDisplayString(o.title),1)]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",uc,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-0c825d65"]]),mc={class:"flex items-center justify-between"},fc={switcher:cc,accordion:pc,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",mc,[e.createElementVNode("p",null,e.toDisplayString(o.title),1)]),e.renderSlot(t.$slots,"default")]))}})},dt={Equal:"==",Inequal:"!=",Higer:">",HigerOrEqual:">=",Lower:"<",LowerOrEqual:"<=",Between:"between",StartWith:"^",EndWith:"$",Contain:"*",In:"in",NotIn:"not_in"},hc=(o,t)=>String(o)===String(t),gc=(o,t)=>String(o)!==String(t),yc=(o,t)=>o>t,bc=(o,t)=>o>=t,kc=(o,t)=>o<t,wc=(o,t)=>o<=t,xc=(o,t)=>Array.isArray(t)&&t.length===2?o>=t[0]&&o<=t[1]:!1,vc=(o,t)=>String(o).startsWith(String(t)),_c=(o,t)=>String(o).endsWith(String(t)),Cc=(o,t)=>String(o).includes(String(t)),Ec=(o,t)=>Array.isArray(t)?t.includes(o):!1,Bc=(o,t)=>Array.isArray(t)?!t.includes(o):!0,Vc=(o,t)=>{if(!t)return!0;switch(t?.[1]){case dt.Equal:return hc(o,t?.[2]);case dt.Inequal:return gc(o,t?.[2]);case dt.Higer:return yc(o,t?.[2]);case dt.HigerOrEqual:return bc(o,t?.[2]);case dt.Lower:return kc(o,t?.[2]);case dt.LowerOrEqual:return wc(o,t?.[2]);case dt.Between:return xc(o,t?.[2]);case dt.StartWith:return vc(o,t?.[2]);case dt.EndWith:return _c(o,t?.[2]);case dt.Contain:return Cc(o,t?.[2]);case dt.In:return Ec(o,t?.[2]);case dt.NotIn:return Bc(o,t?.[2]);default:return!0}};function wr(o,t,n){return t==null||!Array.isArray(t)||t.length===0?!0:(Array.isArray(t[0])?t:[t]).every(a=>{if(!Array.isArray(a)||a.length<2)return!0;const l=a[0],s=n?o?.[n]?.[l]??o?.[l]:o?.[l];return Vc(s,a)})}const xr=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"),a=e.computed(()=>t.schema?.filter(c=>wr(n.value,c?.conditions,t.name||void 0))),l=e.computed(()=>fc[t.view]),s=e.computed(()=>{if(n.value||(n.value={}),!t.name)return n.value;const c=n.value[t.name];if(c)return c;const i={};return n.value={...n.value,[t.name]:i},i});return(c,i)=>o.schema?.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{key:0,title:o.title,style:e.normalizeStyle(o.style)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,d=>(e.openBlock(),e.createBlock(Kr,e.mergeProps({key:d.name},{ref_for:!0},d,{item:d,modelValue:s.value[d.name],"onUpdate:modelValue":h=>s.value[d.name]=h,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)}}),vr=({props:o,fetchOptionByValue:t,optionsList:n,selectedOption:r,modelValue:a,onCreated:l})=>{const s=e.ref(!1),c=e.ref({}),i=e.ref([]),d=e.ref(null),h=e.computed(()=>o.add?.title||"Додати"),y=e.computed(()=>o.add?.token||o.add?.model||""),p=e.computed(()=>o.add?.pk||"id");return{isOpenAdd:s,addData:c,addSchema:i,addForm:d,addTitle:h,addOption:async()=>{if(!(!y.value||d?.value.validate()))try{const b=o.add?.api??`/api/table/${y.value}`,v=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c.value)}),C=await v.json().catch(()=>({})),V=C?.error||C?.message,$=Number(C?.code)>=400;if(!v.ok||$){ge.notify({title:"Помилка",type:"error",message:V||`Код помилки: ${C?.code||v.status}`});return}const U=C?.rows?.[0],Z=C?.[p.value]??C?.id??U?.[p.value]??U?.id;if(!Z){ge.notify({title:"Помилка",type:"error",message:"Обʼєкт створено, але в відповіді відсутній ID."});return}const O=await t(Z);O&&(n.value.some(S=>String(S?.id)===String(O.id))||n.value.push(O)),l?await l(O,Z):O&&(r.value=O,a.value=Z),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 w=await fetch(`/api/template/form/${o.add.form}`).then(b=>b.json());return i.value=w.schema,c.value={},s.value=!0,null}}},Sc=["aria-expanded","data-focus"],$c={class:"vs-input-select__value-area relative flex flex-1 items-center gap-1 py-0.5 pl-1 pr-0 overflow-hidden h-full min-w-0"},Ac={key:0,class:"flex flex-nowrap items-center gap-1 overflow-x-auto overflow-y-hidden min-w-0 flex-1 py-0.5"},Nc={class:"flex items-center gap-1 min-w-0"},Mc=["title"],Fc=["innerHTML"],Dc=["onClick"],Tc={class:"flex-1 min-w-[2px]"},Lc=["placeholder"],Ic=["title"],Oc=["innerHTML"],Pc={key:3,class:"truncate flex-1 min-w-0"},Rc={key:2,class:"flex-1 min-w-[2px]"},zc=["placeholder"],jc={key:3,class:"flex-1 flex items-center min-h-[30px] py-0.5 pl-2 text-sm truncate text-inherit"},Uc={class:"vs-input-select__actions relative z-10 flex items-center shrink-0 bg-white"},Hc=["disabled"],qc={key:1,class:"self-stretch w-px bg-[#ccc] my-[1px]"},Wc=["disabled","title"],Kc=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,a=e.computed({get:()=>n.keyWord,set:l=>r("update:keyWord",l)});return(l,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",l.disabled?"bg-gray-100 text-gray-400 cursor-not-allowed":""]),role:"combobox","aria-expanded":l.isOpen,"aria-haspopup":"listbox",onKeydown:s[10]||(s[10]=(...c)=>l.onControlKeydown&&l.onControlKeydown(...c)),onClick:s[11]||(s[11]=(...c)=>l.onControlClick&&l.onControlClick(...c)),"data-focus":l.isOpen||l.inputFocus?"true":"false",ref:l.setTriggerRef},[e.createElementVNode("div",$c,[l.isMulti?(e.openBlock(),e.createElementBlock("div",Ac,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.selectedOptions,c=>(e.openBlock(),e.createElementBlock("div",{key:c.id,class:"flex min-w-0 bg-[rgb(230,230,230)] rounded-[2px] m-[2px] box-border max-w-full"},[e.createElementVNode("div",Nc,[l.shouldShowColorDot(c)?(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:c?.color})},null,4)):e.createCommentVNode("",!0),!l.optionTemplate&&l.optionHasIcon(c)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(l.iconWrapperClass),style:e.normalizeStyle(l.getIconColorStyle(c)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.resolveOptionIcon(c)),{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:l.getLabel(c)},[l.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:l.renderTemplate(c)},null,8,Fc)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(c.text),1)],64))],8,Mc)]),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(i=>l.onRemoveSelected(c.id),["stop"])},[e.createVNode(e.unref(X.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,Dc)]))),128)),e.createElementVNode("div",Tc,[!l.disabled&&l.search?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref:l.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:l.selectedIds.length?" ":l.placeholder,"onUpdate:modelValue":s[0]||(s[0]=c=>a.value=c),onFocus:s[1]||(s[1]=(...c)=>l.onInputFocus&&l.onInputFocus(...c)),onBlur:s[2]||(s[2]=(...c)=>l.onInputBlur&&l.onInputBlur(...c)),onKeydown:s[3]||(s[3]=(...c)=>l.onInputKeydown&&l.onInputKeydown(...c))},null,40,Lc)),[[e.vModelText,a.value]]):e.createCommentVNode("",!0)])])):!l.isMulti&&l.selectedOptionLabel&&a.value===""?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["truncate flex items-center gap-1 min-w-0 pl-2",l.disabled||!l.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 pointer-events-none"]),title:l.selectedOptionLabel},[l.shouldShowColorDot(l.selectedOption)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[14px] h-[14px] rounded-md block flex-shrink-0",style:e.normalizeStyle({backgroundColor:l.selectedOption?.color})},null,4)):e.createCommentVNode("",!0),!l.optionTemplate&&l.optionHasIcon(l.selectedOption)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(l.iconWrapperClass),style:e.normalizeStyle(l.getIconColorStyle(l.selectedOption)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.resolveOptionIcon(l.selectedOption)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),l.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:2,class:"truncate flex-1 min-w-0",innerHTML:l.renderTemplate(l.selectedOption)},null,8,Oc)):(e.openBlock(),e.createElementBlock("span",Pc,e.toDisplayString(l.selectedOption?.text),1))],10,Ic)):e.createCommentVNode("",!0),!l.isMulti&&!l.disabled&&l.search?(e.openBlock(),e.createElementBlock("div",Rc,[e.withDirectives(e.createElementVNode("input",{ref:l.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:l.selectedOptionLabel?" ":l.placeholder,"onUpdate:modelValue":s[4]||(s[4]=c=>a.value=c),onFocus:s[5]||(s[5]=(...c)=>l.onInputFocus&&l.onInputFocus(...c)),onBlur:s[6]||(s[6]=(...c)=>l.onInputBlur&&l.onInputBlur(...c)),onKeydown:s[7]||(s[7]=(...c)=>l.onInputKeydown&&l.onInputKeydown(...c))},null,40,zc),[[e.vModelText,a.value]])])):!l.isMulti&&l.disabled&&(!l.selectedOptionLabel||a.value!=="")?(e.openBlock(),e.createElementBlock("div",jc,e.toDisplayString(l.placeholder),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Uc,[l.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:l.disabled,onClick:s[8]||(s[8]=e.withModifiers((...c)=>l.onClearSelected&&l.onClearSelected(...c),["stop"]))},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,Hc)):e.createCommentVNode("",!0),l.showClear?(e.openBlock(),e.createElementBlock("div",qc)):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:l.disabled,onClick:s[9]||(s[9]=e.withModifiers((...c)=>l.onToggleSelect&&l.onToggleSelect(...c),["stop"])),title:l.isOpen?"Закрити список":"Відкрити список"},[e.createVNode(e.unref(X.ChevronDown),{class:"h-4 w-4"})],8,Wc)])],42,Sc))}}),Gc=["aria-disabled","onMousedown"],Yc={class:"leading-[19px]"},Xc=["innerHTML"],Zc={key:1,class:"px-3 py-2 text-center text-gray-500"},Jc=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,a)=>(e.openBlock(),e.createElementBlock("div",{key:r.id,ref_for:!0,ref:l=>t.setItemRef(l,a),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===a&&!t.isSelected(r.id)?"bg-[#deebff] text-[#172b4d]":""]),"aria-disabled":t.isSelected(r.id)?"true":"false",role:"option",tabindex:"-1",onMousedown:e.withModifiers(l=>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",Yc,[t.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:t.renderTemplate(r)},null,8,Xc)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(r.text),1)],64))])],42,Gc))),128)):(e.openBlock(),e.createElementBlock("div",Zc," No options "))],4)],4)):e.createCommentVNode("",!0)]))}}),Qc={class:"flex justify-end items-center gap-x-2 py-3 px-4 border-t border-gray-200 w-full"},ed=["onClick"],td=["disabled"],nd="__autoMeta",_r="w-[16px] h-[16px] flex items-center justify-center flex-shrink-0 text-current",ko=Be(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,a=e.computed(()=>n.multiple),l=e.computed(()=>n.disabled),s=e.computed(()=>n.search);et(n.style);const c=e.computed({get:()=>n.modelValue,set:H=>r("update:modelValue",H)});!c.value&&n.defaultValue&&(c.value=n.defaultValue);const i=e.ref(null),d=e.ref(null),h=e.ref(null),y=e.ref(null),p=e.ref(!1),m=e.ref(!1),f=e.ref(null),w=e.ref(-1),b=e.ref([]),v=e.ref(""),C=e.ref(null),V=H=>{d.value=H},$=H=>{C.value=H},U=H=>{y.value=H},Z=H=>{h.value=H},O=(H,re)=>{b.value[re]=H},E=e.ref({}),S=e.ref([]),_=e.computed(()=>{if(!S.value.length)return[];const H=be.value,re=new Map(H.map(me=>[me.id?.toString(),me]));return S.value.map(me=>re.get(me?.toString())).filter(me=>!!me)}),T=e.computed(()=>n.placeholder||"Select..."),j=e.computed(()=>te(f.value)),oe=e.computed(()=>l.value?!1:a.value?S.value.length>0:!!c.value),A=H=>a.value?S.value.some(re=>re?.toString()===H?.toString()):c.value?.toString()===H?.toString(),P=e.computed(()=>{let H=be.value??[];if(!n.data&&v.value.trim()!==""){const re=v.value.toLowerCase();H=H.filter(me=>{const Ne=te(me).toLowerCase(),ze=me.text?.toLowerCase?.()||"";return Ne.includes(re)||ze.includes(re)})}if(a.value&&S.value.length){const re=new Set(S.value.map(me=>me?.toString()));H=H.filter(me=>!re.has(me.id?.toString()))}return H}),Y=e.inject("values"),q=e.inject("field-props"),I=e.computed(()=>n.slot??n?.optionTemplate??""),J=H=>Vn(H,I.value),te=H=>Sn(H,I.value),L=e.computed(()=>Cn(I.value)),M=H=>rn(H),N=H=>!!(!L.value&&Dt(H)&&!M(H)),Q=H=>{const re=Dt(H);return re?{color:re}:void 0},ae=H=>!!(!L.value&&(on(H)||M(H))),ee=(H,re,me)=>{if(!q)return!1;const Ne=q.value?.[H]??{},ze=(je,Qe,xt)=>{if(!Qe.length)return je;const[pt,...vt]=Qe,mt={...je};if(!vt.length)return mt[pt]=xt,mt;const zt=typeof je[pt]=="object"&&je[pt]!==null?je[pt]:{};return mt[pt]=ze(zt,vt,xt),mt},Je=ze(Ne,re,me);return q.value={...q.value||{},[H]:Je},!0},he=H=>{if(!q||!n.name)return;const re=q.value?.[n.name]??{};q.value={...q.value||{},[n.name]:{...re,[nd]:H}}},we=H=>{if(!n.set)return;const re=Y?.value;!re&&!q||Object.entries(n.set).forEach(([me,Ne])=>{if(!me)return;const ze=H?H[Ne]:null,Je=me.split(".").map(xt=>xt.trim()).filter(Boolean);if(!Je.length)return;const[je,...Qe]=Je;Qe.length&&ee(je,Qe,ze??null)||re&&(re[je]=ze??null)})},{optionsList:be,parentValue:$e,fetchOptions:Me,fetchOptionByValue:Fe,loadOptions:Re}=Bn({props:n,formValues:Y,watchParent:!1}),se=H=>H==null?"":String(H),ie=H=>{if(a.value){if(!S.value.length){be.value=H;return}}else if(!f.value){be.value=H;return}const re=new Set(H.map(Ne=>se(Ne.id)).filter(Boolean));if(a.value){const Ne=new Set(S.value.map(Je=>se(Je)).filter(Boolean)),ze=(be.value??[]).filter(Je=>{const je=se(Je.id);return!je||!Ne.has(je)?!1:!re.has(je)});be.value=[...ze,...H];return}const me=se(f.value?.id);if(me&&!re.has(me)){be.value=[f.value,...H];return}be.value=H},ve=e.ref(0),Se=async H=>{const re=++ve.value,me=await Me(H);return re!==ve.value?null:me},Le=async()=>{if(n.data){const H=await Se(v.value);return H&&ie(H),be.value}return Re()},qe=async H=>{if(H==null||H==="")return null;const re=be.value?.find(me=>me?.id?.toString()===String(H));return re||Fe(H)},z=async H=>{const re=new Set(be.value.map(Ne=>Ne.id?.toString())),me=H.filter(Ne=>!re.has(Ne?.toString()));me.length&&await me.reduce(async(Ne,ze)=>{await Ne;const Je=await qe(ze);Je&&be.value.push(Je)},Promise.resolve())},ne=()=>{if(!P.value.length){w.value=-1;return}let H=0;if(!a.value&&f.value){const re=f.value.id?.toString(),me=P.value.findIndex(Ne=>Ne.id?.toString()===re);me>=0&&(H=me)}w.value=H,e.nextTick(()=>{R(b.value[H],h.value)})},le=async()=>{l.value||(p.value=!0,await e.nextTick(()=>{_e()}),await Le(),await e.nextTick(()=>{_e(),C.value?.focus()}),ne())},ue=()=>{p.value=!1,w.value=-1,e.nextTick(()=>{C.value?.blur()})},ke=async H=>{if(l.value)return;(H!==void 0?H:!p.value)?await le():ue()},Ae=async()=>{if(!l.value){if(p.value){ue();return}await le()}},De=()=>{a.value?(S.value=[],c.value=[],r("change",[]),W(null,[])):(f.value=null,c.value=null,r("change",null),W(null,null)),we(null),he(null),v.value="",ue(),e.nextTick(()=>{C.value?.focus()})},Te=H=>{a.value&&(S.value=S.value.filter(re=>re?.toString()!==H?.toString()),c.value=[...S.value],r("change",c.value),W(null),e.nextTick(()=>C.value?.focus()))},W=(H,re)=>{const me=re??(a.value?[...S.value]:H?.id??null);r("value-selected",{name:n.name,value:me,option:H})},x=(H,re="manual")=>{a.value?(A(H.id)||(S.value=[...S.value,H.id],c.value=[...S.value],r("change",c.value),W(H)),v.value="",e.nextTick(()=>{C.value?.focus(),w.value=Math.min(w.value,P.value.length-1)}),we(null)):(f.value=H,c.value=H.id,r("change",c.value),W(H),v.value="",ue(),we(H),re==="parent-auto"&&he({source:re,parentField:n.parent??null,parentValue:$e.value??null}))},D=H=>{if(A(H.id)){a.value||ue();return}x(H)},R=(H,re)=>{if(!H||!re)return;const me=H.offsetTop,Ne=me+H.offsetHeight,ze=re.scrollTop,Je=ze+re.clientHeight;let je=re.scrollTop;me<ze?je=me-80:Ne>Je&&(je=Ne-re.clientHeight+4);const Qe=re;Qe.scrollTop=je},de=H=>{let re=H.parentElement;for(;re;){if(re.classList.contains("ui-dialog__content"))return re;const me=window.getComputedStyle(re),Ne=me.overflow+me.overflowY+me.overflowX;if(Ne.includes("auto")||Ne.includes("scroll")||re===document.body||re===document.documentElement)return re;re=re.parentElement}return document.body},_e=()=>{if(!d.value)return;const H=d.value.getBoundingClientRect(),re=window.innerHeight||document.documentElement.clientHeight,me=window.innerWidth||document.documentElement.clientWidth,Ne=8,ze=8,Je=n.maxHeight||300,je=re-H.bottom-ze-Ne,Qe=H.top-ze-Ne,xt=je>=Qe,pt=Math.max(me-Ne*2,0);let{width:vt}=H;pt>0&&vt>pt&&(vt=pt);let{left:mt}=H;mt+vt+Ne>me&&(mt=me-vt-Ne),mt=Math.max(mt,Ne);const zt=Math.min(Je,Math.max(xt?je:Qe,50));E.value={position:"fixed",left:`${mt}px`,width:`${vt}px`,maxHeight:`${zt}px`,transform:xt?"none":"translateY(-100%)",top:xt?`${H.bottom+ze}px`:`${H.top-ze}px`}},Oe=async H=>{l.value||!p.value&&(H.key==="ArrowDown"||H.key==="ArrowUp")&&(H.preventDefault(),await le())},Ie=H=>{if(!p.value)return;const{key:re}=H;if(re==="ArrowDown")H.preventDefault(),w.value+1<P.value.length&&(w.value+=1,R(b.value[w.value],h.value));else if(re==="ArrowUp")H.preventDefault(),w.value>0&&(w.value-=1,R(b.value[w.value],h.value));else if(re==="Enter"){H.preventDefault();const me=P.value[w.value];me&&x(me),C.value?.blur()}else re==="Escape"?(H.preventDefault(),ue()):re==="Backspace"?a.value&&v.value===""&&S.value.length&&(S.value=S.value.slice(0,-1),c.value=[...S.value],r("change",c.value)):re==="Home"?(w.value=0,R(b.value[0],h.value)):re==="End"?(w.value=P.value.length-1,R(b.value[w.value],h.value)):re==="Tab"&&ue()},Ue=()=>{l.value||(m.value=!0)},We=()=>{m.value=!1,v.value=""},ut=H=>{H.key==="Escape"&&p.value&&ue()},Ke=H=>{const re=H.target;i.value?.contains(re)||y.value?.contains(re)||ue()},ct=H=>{p.value&&h.value&&!h.value.contains(H.target)&&_e()},Pt=()=>{p.value&&_e()},eo=()=>{p.value&&_e()};async function Qt(){if(a.value)Array.isArray(c.value)?S.value=[...c.value]:(S.value=c.value==null?[]:[c.value],c.value=[...S.value]),n.data&&S.value.length&&(await z(S.value),await e.nextTick());else{if(Array.isArray(c.value)){const H=c.value[0]??null;c.value=H??null}c.value!=null&&c.value!==""?f.value=await qe(c.value):f.value=null,we(f.value??null)}}e.watch(c,()=>{Qt()}),e.onMounted(async()=>{if(addEventListener("keydown",ut),addEventListener("scroll",ct,!0),addEventListener("resize",Pt),document.addEventListener("click",Ke,!0),d.value&&de(d.value).addEventListener("scroll",eo,!0),n.options?.length&&!n.data)be.value=[...n.options];else if(n.data){const H=await Se("");H&&ie(H)}await Qt(),Gt.value=!1}),e.onUnmounted(()=>{removeEventListener("keydown",ut),removeEventListener("scroll",ct,!0),removeEventListener("resize",Pt),document.removeEventListener("click",Ke,!0),d.value&&de(d.value).removeEventListener("scroll",eo,!0)});const{isOpenAdd:$t,addData:Rt,addSchema:K,addForm:fe,addTitle:nt,addOption:At,onAddValue:wt}=vr({props:n,fetchOptionByValue:Fe,optionsList:be,selectedOption:f,modelValue:c});function Ge(H,re=200){let me;return(...Ne)=>{me&&clearTimeout(me),me=window.setTimeout(()=>H(...Ne),re)}}const en=Ge(async H=>{const re=await Se(H);re&&ie(re)},200);e.watch(v,H=>{n.data&&en(H.trim())}),e.watch(()=>n.options,H=>{!n.data&&H?.length&&(be.value=[...H],Qt())},{immediate:!0});const Gt=e.ref(!0);return e.watch($e,async()=>{if(n.data&&(Gt.value||(a.value?(S.value=[],c.value=[],r("change",[])):(f.value=null,c.value=null,r("change",null))),await Le(),n.auto===1&&$e.value&&be.value.length>0)){const H=be.value[0];H&&x(H,"parent-auto")}}),(H,re)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(ge.VsModal),{visible:e.unref($t),"onUpdate:visible":re[2]||(re[2]=me=>e.isRef($t)?$t.value=me:null),class:"z-[1000]",title:e.unref(nt),teleport:H.teleport},{footer:e.withCtx(({handleClose:me})=>[e.createElementVNode("div",Qc,[e.createElementVNode("button",{type:"button",class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm font-medium rounded-lg border border-gray-200 bg-white text-gray-800 hover:bg-gray-50",onClick:me}," Скасувати ",8,ed),e.createElementVNode("button",{type:"button",class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm font-medium rounded-lg border border-transparent bg-blue-600 text-white hover:bg-blue-700",onClick:re[1]||(re[1]=(...Ne)=>e.unref(At)&&e.unref(At)(...Ne))}," Додати ")])]),default:e.withCtx(()=>[e.createVNode(rt,{schema:e.unref(K),modelValue:e.unref(Rt),"onUpdate:modelValue":re[0]||(re[0]=me=>e.isRef(Rt)?Rt.value=me:null),ref_key:"addForm",ref:fe},null,8,["schema","modelValue"])]),_:1},8,["visible","title","teleport"]),e.createElementVNode("div",{class:"flex gap-1 w-full",ref_key:"selectRoot",ref:i,onClick:re[5]||(re[5]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass])},[re[6]||(re[6]=e.createElementVNode("span",{id:"react-select-live-region",class:"sr-only"},null,-1)),re[7]||(re[7]=e.createElementVNode("span",{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text",role:"log",class:"sr-only"},null,-1)),e.createVNode(Kc,{keyWord:v.value,"onUpdate:keyWord":re[3]||(re[3]=me=>v.value=me),disabled:l.value,"is-open":p.value,"input-focus":m.value,"is-multi":a.value,"selected-options":_.value,"selected-ids":S.value,placeholder:T.value,search:s.value,"option-template":I.value,"icon-wrapper-class":_r,"selected-option-label":j.value,"selected-option":f.value,"show-clear":oe.value,"set-trigger-ref":V,"set-input-ref":$,"should-show-color-dot":N,"option-has-icon":ae,"get-icon-color-style":Q,"resolve-option-icon":M,"render-template":J,"get-label":te,"on-control-keydown":Oe,"on-control-click":Ae,"on-input-focus":Ue,"on-input-blur":We,"on-input-keydown":Ie,"on-remove-selected":Te,"on-clear-selected":De,"on-toggle-select":ke},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(Jc,{"is-open":p.value,"dropdown-style":E.value,"filtered-options-list":P.value,"selected-nav-index":w.value,"option-template":I.value,"icon-wrapper-class":_r,"set-dropdown-ref":U,"set-list-ref":Z,"set-item-ref":O,"is-selected":A,"on-option-click":D,"should-show-color-dot":N,"option-has-icon":ae,"get-icon-color-style":Q,"resolve-option-icon":M,"render-template":J},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[4]||(re[4]=(...me)=>e.unref(wt)&&e.unref(wt)(...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:l.value,type:"button"},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),re[8]||(re[8]=e.createElementVNode("span",null,"Додати",-1))],8,td)):e.createCommentVNode("",!0)],512)],64))}}),[["__scopeId","data-v-49a64961"]]),wo=(o="")=>`${o}${Math.floor(Math.random()*1e4)}`,od=["disabled","aria-expanded"],rd={class:"truncate"},ld={class:"py-2 px-4"},ad={class:"block font-medium text-[13px] text-foreground"},sd={class:"truncate"},id={class:"p-1 border-t border-gray-200"},cd={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"},dd=["onClick"],ud=["checked"],pd={class:"shrink-0 size-3.5 flex justify-center items-center"},md={key:1,class:"shrink-0 size-2 block mx-auto rounded-full bg-secondary/60"},fd={class:"truncate"},hd={key:0,class:"px-3 py-2 text-xs text-stone-500"},In=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 a=e.computed({get:()=>Array.isArray(n.modelValue)?n.modelValue[0]??null:n.modelValue??null,set:ee=>r("update:modelValue",ee)});a.value==null&&n.defaultValue!=null&&(a.value=n.defaultValue);const l=e.inject("values"),s=e.inject("field-props"),c=e.computed(()=>!!n.disabled),i=e.ref(null),d=e.ref(!1),h=e.ref(null),y=e.ref(null),p=e.ref(null),m=e.ref({}),f=`vs-input-inline-select-${wo()}`,w=e.computed(()=>n.placeholder||"Оберіть значення"),b=e.computed(()=>U(i.value)||n.placeholder||"Оберіть значення"),v=e.computed(()=>n.slot??""),C=e.computed(()=>Cn(v.value)),V=e.computed(()=>n.teleport||"body"),$=/^#(?:[\da-fA-F]{3}|[\da-fA-F]{6}|[\da-fA-F]{8})$/,U=ee=>Sn(ee,v.value),Z=ee=>!!(!C.value&&Dt(ee)),O=e.computed(()=>{const ee=Dt(i.value).trim();return ee?$.test(ee)?`bg-[${ee}] border-[${ee}]`:`bg-${ee.toLowerCase()}-500 border-${ee.toLowerCase()}-500`:""}),{optionsList:E,parentValue:S,fetchOptions:_,fetchOptionByValue:T,loadOptions:j}=Bn({props:n,formValues:l,watchParent:!1}),oe=(ee,he,we)=>{if(!s)return!1;const be=s.value?.[ee]??{},$e=(Fe,Re,se)=>{if(!Re.length)return Fe;const[ie,...ve]=Re,Se={...Fe};if(!ve.length)return Se[ie]=se,Se;const Le=typeof Fe[ie]=="object"&&Fe[ie]!==null?Fe[ie]:{};return Se[ie]=$e(Le,ve,se),Se},Me=$e(be,he,we);return s.value={...s.value||{},[ee]:Me},!0},A=ee=>{if(!n.set)return;const he=l?.value;!he&&!s||Object.entries(n.set).forEach(([we,be])=>{if(!we)return;const $e=ee?ee[be]:null,Me=we.split(".").map(se=>se.trim()).filter(Boolean);if(!Me.length)return;const[Fe,...Re]=Me;Re.length&&oe(Fe,Re,$e??null)||he&&(he[Fe]=$e??null)})},P=ee=>a.value?.toString?.()===ee?.toString?.(),Y=()=>{if(!y.value||typeof window>"u")return;const ee=y.value.getBoundingClientRect(),he=8,we=8,be=window.innerHeight||document.documentElement.clientHeight,$e=window.innerWidth||document.documentElement.clientWidth,Me=p.value?.offsetHeight||260,Fe=Math.max(ee.width,176),Re=Math.max($e-he*2,120),se=Math.min(Fe,Re);let ie=ee.left;ie+se+he>$e&&(ie=$e-se-he),ie=Math.max(ie,he);const ve=be-ee.bottom-we-he,Se=ee.top-we-he,Le=ve<Math.min(Me,260)&&Se>ve,qe=Math.max(120,Math.min(320,Le?Se:ve));m.value={position:"fixed",left:`${ie}px`,top:Le?`${ee.top-we}px`:`${ee.bottom+we}px`,transform:Le?"translateY(-100%)":"none",width:`${se}px`,maxHeight:`${qe}px`}},q=async()=>{if(n.data){E.value=await _("");return}await j()},I=async()=>{if(a.value==null||a.value===""){i.value=null,A(null);return}const ee=E.value.find(he=>he.id?.toString()===String(a.value));if(ee){i.value=ee,A(ee);return}i.value=await T(a.value),A(i.value??null)},J=async()=>{c.value||(d.value=!0,await e.nextTick(),Y(),await q(),await e.nextTick(),Y())},te=()=>{d.value=!1},L=async()=>{if(d.value){te();return}await J()},M=ee=>{r("value-selected",{name:n.name,value:ee?.id??null,option:ee})},N=ee=>{i.value=ee,a.value=ee.id,r("change",ee.id),M(ee),A(ee),te()},Q=ee=>{const he=ee.target;h.value?.contains(he)||p.value?.contains(he)||te()},ae=()=>{d.value&&Y()};return e.watch(()=>n.options,ee=>{n.data||(E.value=ee?[...ee]:[],I())},{immediate:!0,deep:!0}),e.watch(a,()=>{I()}),e.watch(S,async()=>{n.data&&(await q(),i.value&&!E.value.some(ee=>ee.id?.toString()===i.value?.id?.toString())&&(i.value=null,a.value=null,r("change",null),M(null),A(null)))}),e.onMounted(async()=>{document.addEventListener("click",Q,!0),window.addEventListener("resize",ae),window.addEventListener("scroll",ae,!0),await q(),await I()}),e.onUnmounted(()=>{document.removeEventListener("click",Q,!0),window.removeEventListener("resize",ae),window.removeEventListener("scroll",ae,!0)}),(ee,he)=>(e.openBlock(),e.createElementBlock("div",{class:"relative inline-flex w-full max-w-full",ref_key:"rootRef",ref:h,onClick:he[0]||(he[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("button",{ref_key:"triggerRef",ref:y,type:"button",disabled:c.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",O.value?`${O.value} text-white`:"bg-secondary text-secondary-foreground hover:bg-secondary-hover focus:bg-secondary-focus border-gray-300 hover:border-gray-400"]),onClick:L},[e.createElementVNode("span",rd,e.toDisplayString(b.value),1)],10,od),(e.openBlock(),e.createBlock(e.Teleport,{to:V.value},[d.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:p,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(m.value),role:"menu","aria-orientation":"vertical"},[e.createElementVNode("div",ld,[e.createElementVNode("span",ad,[e.createElementVNode("span",sd,e.toDisplayString(w.value),1)])]),e.createElementVNode("div",id,[e.createElementVNode("div",cd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(E),we=>(e.openBlock(),e.createElementBlock("label",{key:we.id,class:"py-1.5 px-3 group flex items-center gap-x-3 rounded-lg cursor-pointer text-[13px] text-gray-800 hover:bg-gray-100",onClick:e.withModifiers(be=>N(we),["prevent"])},[e.createElementVNode("input",{type:"radio",class:"hidden",name:f,checked:P(we.id),tabindex:"-1"},null,8,ud),e.createElementVNode("span",pd,[Z(we)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"shrink-0 size-2 block mx-auto rounded-full",style:e.normalizeStyle({backgroundColor:we.color})},null,4)):(e.openBlock(),e.createElementBlock("span",md))]),e.createElementVNode("span",fd,e.toDisplayString(U(we)),1),e.createVNode(e.unref(X.Check),{class:e.normalizeClass(["shrink-0 size-3.5 ms-auto transition-opacity",P(we.id)?"opacity-100":"opacity-0"])},null,8,["class"])],8,dd))),128))]),e.unref(E).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",hd,"Немає варіантів"))])],4)):e.createCommentVNode("",!0)],8,["to"]))],512))}}),gd=["placeholder","disabled"],Cr=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"),a=e.computed(()=>!!t.disabled),l=e.computed(()=>t.placeholder??"");function s(){typeof r.value=="string"&&(r.value=r.value.trim())}return(c,i)=>e.withDirectives((e.openBlock(),e.createElementBlock("textarea",{"onUpdate:modelValue":i[0]||(i[0]=d=>r.value=d),placeholder:l.value,disabled:a.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,gd)),[[e.vModelText,r.value]])}}),Er=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(()=>j0)),n=o,r=e.useModel(o,"modelValue"),a=e.computed(()=>!!n.disabled),l=e.computed(()=>n.placeholder??""),s=e.computed(()=>({height:n.richtextProps.height||"300px",format:n.format,...n.richtextProps}));return(c,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["!h-full overflow-hidden rounded-md border border-solid border-stone-200 disabled:opacity-50 disabled:cursor-not-allowed",c.customClass]),style:e.normalizeStyle(a.value?{pointerEvents:"none",opacity:.6}:{})},[e.createVNode(e.unref(t),e.mergeProps({modelValue:r.value,"onUpdate:modelValue":i[0]||(i[0]=d=>r.value=d),placeholder:l.value},s.value),null,16,["modelValue","placeholder"])],6))}}),yd={},bd={viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function kd(o,t){return e.openBlock(),e.createElementBlock("svg",bd,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 wd=Be(yd,[["render",kd]]),xd={class:"bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden flex flex-col"},vd={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"},_d={key:0,class:"relative flex-1 min-w-0"},Cd={class:"flex md:flex-nowrap flex-wrap items-center md:justify-end justify-start gap-2 shrink-0"},Ed={class:"w-full overflow-x-auto"},Bd={class:"w-full min-w-[640px] table-auto divide-y divide-gray-200"},Vd={class:"bg-gray-50"},Sd={class:"border-b border-gray-200"},$d={class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 w-12 text-center"},Ad=["onClick"],Nd={key:0,class:"text-gray-400"},Md={key:0,colspan:"100%",class:"text-center"},Fd={class:"w-full"},Dd={class:"p-5 min-h-[200px] flex flex-col justify-center items-center text-center"},Td=["data-row-index","onDragstart","onDragover","onDrop"],Ld=["onPointerdown"],Id={class:"flex items-center justify-center"},Od=["innerHTML"],Pd={key:0,class:"flex items-center gap-3 text-sm text-gray-700"},Rd={key:0},zd=["src"],jd={key:1,class:"rounded-md max-w-[45px] w-[45px] max-h-[45px] h-[45px] bg-gray-200 flex items-center justify-center"},Ud={key:1,class:"flex items-center justify-center"},Hd={key:2,class:"text-sm font-medium text-gray-900"},qd={class:"px-4 py-3 text-right whitespace-nowrap"},Wd={class:"flex items-center justify-end gap-2"},Kd=["onClick"],Gd=["onClick"],Yd={class:"vs-form__head mr-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},Br=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=z=>t.actions===void 0?!0:t.actions.includes(z),a=["search","import","export","add"],l=e.computed(()=>a.some(z=>r(z))),s=e.useModel(o,"modelValue"),c=e.ref({}),i=e.ref(""),d=e.ref(null),h=e.ref("asc"),y=e.computed(()=>{const z=s.value??[],ne=i.value?z.filter(ke=>p.value?.some(Ae=>{const De=Ae.key||Ae.name;if(!De)return!1;const Te=ke[De];return Te?Array.isArray(Te)?Te.join(", ").toLowerCase().includes(i.value.toLowerCase()):String(Te).toLowerCase().includes(i.value.toLowerCase()):!1})):z;if(!d.value)return ne;const le=d.value,ue=[...ne].sort((ke,Ae)=>{const De=$e(ke?.[le]),Te=$e(Ae?.[le]);return typeof De=="number"&&typeof Te=="number"?De-Te:String(De).localeCompare(String(Te))});return h.value==="asc"?ue:ue.reverse()}),p=e.computed(()=>(t.colModel??[]).filter(z=>!z.tableHidden)),m=e.ref(null),f=e.ref(null),w=e.ref(null);function b(z){return z.pointerType==="touch"||z.pointerType==="pen"}function v(z,ne){const ue=document.elementFromPoint(z,ne)?.closest?.("[data-row-index]")??null;if(!ue)return null;const ke=ue.getAttribute("data-row-index");if(ke==null)return null;const Ae=Number.parseInt(ke,10);return Number.isNaN(Ae)?null:Ae}function C(z,ne){b(z)&&(z.preventDefault(),z.currentTarget.setPointerCapture(z.pointerId),m.value=ne,f.value=ne)}function V(z){if(m.value===null||!b(z))return;z.preventDefault();const ne=v(z.clientX,z.clientY);ne!==null&&(f.value=ne)}function $(z){if(m.value===null||!b(z))return;z.preventDefault();const ne=v(z.clientX,z.clientY);E(ne??m.value);try{z.currentTarget.releasePointerCapture(z.pointerId)}catch{}}function U(z){if(b(z)){m.value=null,f.value=null;try{z.currentTarget.releasePointerCapture(z.pointerId)}catch{}}}const Z=z=>{m.value=z},O=z=>{f.value=z},E=z=>{if(m.value===null||m.value===z){m.value=null,f.value=null;return}const ne=[...s.value],[le]=ne.splice(m.value,1);ne.splice(z,0,le),s.value=ne,m.value=null,f.value=null},S=()=>{w.value&&w.value.click()},_=z=>{const ne=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".ico",".tiff",".tif"],le=z.toLowerCase();return ne.some(ue=>le.endsWith(ue))},T=z=>{const le=z.target.files?.[0];if(!le)return;const ue=new FileReader;ue.onload=ke=>{try{const Ae=ke.target?.result;if(typeof Ae=="string"){const De=JSON.parse(Ae);Array.isArray(De)&&s.value.push(...De)}}catch(Ae){console.error("Error parsing file:",Ae)}},ue.readAsText(le)},j=()=>{const z=JSON.stringify(s.value,null,2),ne=new Blob([z],{type:"application/json"}),le=URL.createObjectURL(ne),ue=document.createElement("a");ue.href=le,ue.download="data.json",ue.click(),URL.revokeObjectURL(le)},oe=new Set(["autocomplete","select","radio","checkbox","combobox"]),A=new Map,P=(z,ne)=>{const le=`/api/suggest/${z}`,ue=le.includes("?")?"&":"?",ke=ne?`&val=${ne}`:"";return`${le}${ue}json=1${ke}`},Y=z=>z==null||z===""?null:typeof z=="object"?z?.id!==void 0&&z.id!==null&&z.id!==""?z.id:null:z,q=z=>{const ne=new Set;return Array.isArray(s.value)&&s.value.forEach(le=>{const ue=le?.[z];if(ue==null||ue==="")return;if(Array.isArray(ue)){ue.forEach(Ae=>{const De=Y(Ae);De!==null&&ne.add(De)});return}const ke=Y(ue);ke!==null&&ne.add(ke)}),ne},I=async()=>{if(!t.colModel?.length)return;const z=t.colModel.filter(ne=>ne.data&&oe.has(ne.type?.toLowerCase()||""));z.length&&await Promise.all(z.map(async ne=>{const le=ne.key||ne.name;if(!le)return;const ue=q(le),ke=Array.from(ue).map(Te=>String(Te)).sort(),Ae=ke.join(",");if(!ke.length||A.get(le)===Ae)return;A.set(le,Ae);const De=ke.map(encodeURIComponent).join(",");try{const W=await(await fetch(P(ne.data,De))).json();c.value[le]=W?.data??W}catch(Te){console.error("Failed to fetch column values",Te)}}))};e.watch([()=>t.colModel,()=>s.value],()=>{I()},{immediate:!0,deep:!0});const J=e.ref(""),te=e.ref(!1);let L="edit",M=0;const N=z=>(z?.format||z?.type||"").toString().toLowerCase(),Q=e.computed(()=>(t.colModel?.filter(ne=>N(ne)!=="slot")??[]).map(ne=>{const le=ne.key||ne.name;return le?{...ne,name:le,key:le}:ne})),ae=e.ref({}),ee=e.ref({}),he=z=>typeof z!="string"?!1:!!n[z],we=(z,ne)=>ne?ne.split(".").reduce((le,ue)=>le==null?le:le[ue.trim()],z):z,be=(z,ne)=>typeof z!="string"?"":z.replace(/{{\s*([^}]+)\s*}}/g,(le,ue)=>{const ke=we(ne,ue.trim());return ke??""}),$e=z=>{if(z==null||z==="")return"";if(typeof z=="number")return z;if(typeof z=="boolean")return z?1:0;if(typeof z=="string")return z.toLowerCase();if(Array.isArray(z))return z.map(ne=>$e(ne)).join(", ");if(typeof z=="object"){if(z.text!==void 0)return String(z.text).toLowerCase();if(z.label!==void 0)return String(z.label).toLowerCase();if(z.id!==void 0)return String(z.id).toLowerCase()}return String(z).toLowerCase()},Me=z=>{const ne=z.key||z.name;if(ne){if(d.value===ne){h.value=h.value==="asc"?"desc":"asc";return}d.value=ne,h.value="asc"}};async function Fe(){J.value="Додати",te.value=!0,L="add",ae.value={}}function Re(z,ne){if(!z?.length)return null;const le=typeof ne=="object"?ne?.id:ne;return le==null||le===""?null:z.find(ue=>ue?.id?.toString()===le.toString())?.text??null}function se(z){return z==null||z===""?"-":Array.isArray(z)?z.map(ne=>typeof ne=="object"?ne?.text??ne?.id??"-":ne).join(", "):typeof z=="object"?z?.text??z?.id??"-":z}function ie(z,ne){const le=ne.key||ne.name,ue=z?.[le],ke=c.value[le];if(!ue)return"-";if(Array.isArray(ue)){const De=ue.map(Te=>Re(ke,Te)).filter(Boolean);return De.length?De.join(", "):se(ue)}const Ae=Re(ke,ue);return Ae||se(ue)}async function ve(z,ne){J.value="Редагувати",te.value=!0,L="edit",M=ne,ae.value={...z}}function Se(){const z=ee.value.validate();if(z){ge.notify({type:"warning",title:"Помилка валідації",message:Object.entries(z).map(([ne,le])=>`${ne}: ${le}`).join(`
2
2
  `)});return}L==="add"?Array.isArray(s.value)?s.value=[...s.value,ae.value]:s.value=[ae.value]:s.value=s.value.map((ne,le)=>le===M?ae.value:ne),te.value=!1}function Le(z){s.value=s.value.filter((ne,le)=>le!==z)}function qe(){te.value=!1}return(z,ne)=>(e.openBlock(),e.createElementBlock("div",xd,[l.value?(e.openBlock(),e.createElementBlock("div",vd,[r("search")?(e.openBlock(),e.createElementBlock("div",_d,[e.createVNode(e.unref(X.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":ne[0]||(ne[0]=le=>i.value=le),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,i.value]])])):e.createCommentVNode("",!0),e.createElementVNode("div",Cd,[r("import")?(e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"fileInput",ref:w,onChange:T,class:"hidden",accept:".json",type:"file"},null,544)):e.createCommentVNode("",!0),r("import")?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",onClick:S,class:"inline-flex items-center gap-2 rounded-md border border-gray-200 bg-white px-3 py-2 text-sm font-medium text-gray-700 hover:border-gray-300 hover:bg-gray-50 transition-colors"},[e.createVNode(e.unref(X.Upload),{class:"h-4 w-4 text-gray-700"}),ne[4]||(ne[4]=e.createTextVNode(" Імпорт ",-1))])):e.createCommentVNode("",!0),r("export")?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:j,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(X.Download),{class:"h-4 w-4 text-gray-700"}),ne[5]||(ne[5]=e.createTextVNode(" Експорт ",-1))])):e.createCommentVNode("",!0),r("add")?(e.openBlock(),e.createElementBlock("button",{key:3,onClick:Fe,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(X.Plus),{class:"h-4 w-4 text-white"}),ne[6]||(ne[6]=e.createTextVNode(" Додати ",-1))])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),e.createElementVNode("div",Ed,[e.createElementVNode("table",Bd,[e.createElementVNode("thead",Vd,[e.createElementVNode("tr",Sd,[e.createElementVNode("th",$d,[e.createVNode(e.unref(X.GripVertical),{class:"mx-auto h-4 w-4 text-gray-400"})]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,le=>(e.openBlock(),e.createElementBlock("th",{key:le.key,class:"px-4 py-3 text-left text-xs font-semibold text-gray-900"},[e.createElementVNode("button",{type:"button",onClick:ue=>Me(le),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(le.ua||le.label),1),d.value===(le.key||le.name)?(e.openBlock(),e.createElementBlock("span",Nd,e.toDisplayString(h.value==="asc"?"▲":"▼"),1)):e.createCommentVNode("",!0)],8,Ad)]))),128)),ne[7]||(ne[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}])},[y.value.length===0?(e.openBlock(),e.createElementBlock("td",Md,[e.createElementVNode("div",Fd,[e.createElementVNode("div",Dd,[e.createVNode(wd,{class:"w-48 mx-auto"}),ne[8]||(ne[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(y.value,(le,ue)=>(e.openBlock(),e.createElementBlock("tr",{key:le.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":m.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:ke=>Z(ue),onDragover:e.withModifiers(ke=>O(ue),["prevent"]),onDrop:ke=>E(ue)},[e.createElementVNode("td",{class:"px-4 py-3 text-center align-middle touch-none select-none",onPointerdown:ke=>C(ke,ue),onPointermove:V,onPointerup:$,onPointercancel:U},[e.createElementVNode("div",Id,[e.createVNode(e.unref(X.GripVertical),{class:"mx-auto h-4 w-4 text-slate-400 dark:text-slate-500"})])],40,Ld),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,ke=>(e.openBlock(),e.createElementBlock("td",{key:ke.key,class:"px-4 py-3 align-middle"},[N(ke)==="slot"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[he(ke.slot)?e.renderSlot(z.$slots,ke.slot,{key:0,row:le,value:le[ke.key],column:ke}):(e.openBlock(),e.createElementBlock("div",{key:1,class:"text-sm text-gray-900",innerHTML:be(ke.slot,le)},null,8,Od))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[N(ke)==="file"?(e.openBlock(),e.createElementBlock("div",Pd,[_(ie(le,ke))?(e.openBlock(),e.createElementBlock("div",Rd,[e.createElementVNode("img",{src:`/file/resize?filepath=${ie(le,ke)}&format=webp`,alt:"alt",width:"45",class:"rounded-md max-w-[45px] h-[45px] object-cover"},null,8,zd)])):(e.openBlock(),e.createElementBlock("div",jd,[e.createVNode(e.unref(X.FileText),{class:"h-4 w-4 min-w-4"})]))])):N(ke)==="color"?(e.openBlock(),e.createElementBlock("div",Ud,[e.createElementVNode("span",{class:"inline-flex h-6 w-6 rounded border border-gray-200",style:e.normalizeStyle({backgroundColor:ie(le,ke)||"#ffffff"})},null,4)])):(e.openBlock(),e.createElementBlock("div",Hd,e.toDisplayString(ie(le,ke)),1))],64))]))),128)),e.createElementVNode("td",qd,[e.createElementVNode("div",Wd,[e.createElementVNode("button",{onClick:ke=>ve(le,ue),class:"p-1.5 text-gray-600 hover:text-blue-600 hover:bg-blue-50 rounded transition-colors"},[e.createVNode(e.unref(X.Pencil),{class:"h-4 w-4"})],8,Kd),e.createElementVNode("button",{onClick:ke=>Le(ue),class:"p-1.5 text-gray-600 hover:text-red-600 hover:bg-red-50 rounded transition-colors"},[e.createVNode(e.unref(X.Trash2),{class:"h-4 w-4"})],8,Gd)])])],42,Td))),128))],2)])]),e.createVNode(e.unref(ge.VsModal),{visible:te.value,title:J.value,size:"lg",onClose:qe,teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(rt,{schema:Q.value,"allow-id-field":"",values:ae.value,"onUpdate:values":ne[1]||(ne[1]=le=>ae.value=le),form:ee.value,"onUpdate:form":ne[2]||(ne[2]=le=>ee.value=le)},null,8,["schema","values","form"]),e.createElementVNode("div",Yd,[e.createElementVNode("button",{type:"button",onClick:ne[3]||(ne[3]=le=>te.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:Se,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"])]))}}),Xd={},Zd={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 Jd(o,t){return e.openBlock(),e.createElementBlock("svg",Zd,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 Qd=Be(Xd,[["render",Jd]]),eu={},tu={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 nu(o,t){return e.openBlock(),e.createElementBlock("svg",tu,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 ou=Be(eu,[["render",nu]]),ru={},lu={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 au(o,t){return e.openBlock(),e.createElementBlock("svg",lu,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 su=Be(ru,[["render",au]]);function iu(o,t,n){const r=Math.max(0,Math.min(22,Math.floor(n))),a=2**r,l=Math.floor((o+180)/360*a),s=t*Math.PI/180,c=Math.floor((1-Math.log(Math.tan(s)+1/Math.cos(s))/Math.PI)/2*a);return{z:r,x:l,y:c}}function cu(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(([a,l])=>{r=r.replace(new RegExp(a.replace(/[{}-]/g,"\\$&"),"gi"),String(l))}),r}const Vr=/\/(\d+)\/(\d+)\/(\d+)(\.(?:png|jpe?g|webp))(?:\?.*)?$/i;function Sr(o,t){if(typeof o!="string"||!o.trim()||!Vr.test(o))return;const n=o.replace(Vr,`/${t.z}/${t.x}/${t.y}$4`);return n!==o?n:void 0}function du(o,t){if(o?.url){const n=cu(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 uu=["title","aria-expanded"],pu=["src"],mu={class:"map-layers__header"},fu={class:"map-layers__body"},hu={key:0,class:"map-layers__section"},gu={class:"map-layers__grid map-layers__grid--4"},yu=["disabled","title","onClick"],bu={class:"map-layers__thumb"},ku=["src"],wu={class:"map-layers__option-label"},xu={key:1,class:"map-layers__section"},vu={class:"map-layers__grid map-layers__grid--4"},_u=["title","onClick"],Cu={class:"map-layers__thumb"},Eu=["src"],Bu={class:"map-layers__option-label"},Vu={key:2,class:"map-layers__section map-layers__section--vector"},Su={class:"map-layers__vector-list"},$u=["checked","disabled","onChange"],On=.8,Au=Be(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,a=10*On,l=400*On,s=400*On,c=320*On,i=e.ref(null),d=e.ref(null),h=e.ref(null),y=e.ref(!1),p=e.ref({}),m=e.computed(()=>Object.keys(n.basemaps||{}).length>0),f=e.computed(()=>Object.keys(n.tileOverlays||{}).length>0),w=e.computed(()=>n.vectorOverlays??[]),b=e.computed(()=>w.value.length>0),v=e.computed(()=>m.value||f.value||b.value),C=e.computed(()=>n.basemaps?.[n.activeBaseKey]?.name||n.activeBaseKey||"Шари"),V=e.computed(()=>U(n.basemaps)),$=e.computed(()=>U(n.tileOverlays||{}));function U(I){const J=n.previewTile;return J?Object.fromEntries(Object.entries(I).map(([te,L])=>[String(te),du(L,J)??L.preview??""])):{}}function Z(I){return V.value[I]||n.basemaps?.[I]?.preview||""}function O(I){return $.value[I]||n.tileOverlays?.[I]?.preview||""}const E=e.computed(()=>Z(n.activeBaseKey));function S(I){return Array.isArray(n.activeTileOverlayKeys)&&n.activeTileOverlayKeys.includes(I)}function _(){const I=d.value;if(!I)return;const J=I.getBoundingClientRect(),te=Math.min(l,window.innerWidth-16);let L=J.left;L+te>window.innerWidth-8&&(L=window.innerWidth-te-8),L=Math.max(8,L);const M=J.top-a-8,N=n.compact?c:s,Q=Math.min(N,Math.max(96,M));p.value={position:"fixed",left:`${L}px`,bottom:`${window.innerHeight-J.top+a}px`,width:`${te}px`,maxHeight:`${Q}px`,zIndex:"10050"}}async function T(){y.value=!y.value,y.value&&(await e.nextTick(),_())}function j(){y.value=!1}function oe(I){I!==n.activeBaseKey&&r("onLayerChange",I)}function A(I){n.disabled||r("onOverlayToggle",I)}function P(I){n.disabled||r("onVectorOverlayToggle",I)}function Y(I){if(!y.value)return;const J=I.target;i.value?.contains(J)||h.value?.contains(J)||j()}function q(I){I.key==="Escape"&&j()}return e.watch(y,async I=>{I&&(await e.nextTick(),_())}),e.onMounted(()=>{document.addEventListener("click",Y),document.addEventListener("keydown",q),window.addEventListener("resize",_),window.addEventListener("scroll",_,!0)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",Y),document.removeEventListener("keydown",q),window.removeEventListener("resize",_),window.removeEventListener("scroll",_,!0)}),(I,J)=>v.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"rootRef",ref:i,class:e.normalizeClass(["map-layers relative",{"map-layers--compact":I.compact}])},[e.createElementVNode("button",{ref_key:"triggerRef",ref:d,type:"button",class:"map-layers__trigger",title:C.value,"aria-haspopup":"dialog","aria-expanded":y.value,onClick:e.withModifiers(T,["stop"])},[E.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:E.value,alt:"",class:"map-layers__trigger-img"},null,8,pu)):e.createCommentVNode("",!0)],8,uu),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"map-layers-panel"},{default:e.withCtx(()=>[y.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"panelRef",ref:h,class:"map-layers__panel",style:e.normalizeStyle(p.value),role:"dialog","aria-label":"Шари карти"},[e.createElementVNode("header",mu,[J[0]||(J[0]=e.createElementVNode("h3",{class:"map-layers__title"},"Шари карти",-1)),e.createElementVNode("button",{type:"button",class:"map-layers__close","aria-label":"Закрити",onClick:j},[e.createVNode(e.unref(X.X),{class:"map-layers__close-icon"})])]),e.createElementVNode("div",fu,[f.value?(e.openBlock(),e.createElementBlock("section",hu,[J[1]||(J[1]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Додаткові шари",-1)),e.createElementVNode("div",gu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(I.tileOverlays,(te,L)=>(e.openBlock(),e.createElementBlock("button",{key:`tile-${L}`,type:"button",class:e.normalizeClass(["map-layers__option",{"map-layers__option--active":S(String(L))}]),disabled:I.disabled,title:te.name||String(L),onClick:M=>A(String(L))},[e.createElementVNode("span",bu,[e.createElementVNode("img",{src:O(String(L)),alt:""},null,8,ku)]),e.createElementVNode("span",wu,e.toDisplayString(te.name||L),1)],10,yu))),128))])])):e.createCommentVNode("",!0),m.value?(e.openBlock(),e.createElementBlock("section",xu,[J[2]||(J[2]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Базові шари",-1)),e.createElementVNode("div",vu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(I.basemaps,(te,L)=>(e.openBlock(),e.createElementBlock("button",{key:`base-${L}`,type:"button",class:e.normalizeClass(["map-layers__option",{"map-layers__option--active":I.activeBaseKey===String(L)}]),title:te.name||String(L),onClick:M=>oe(String(L))},[e.createElementVNode("span",Cu,[e.createElementVNode("img",{src:Z(String(L)),alt:""},null,8,Eu)]),e.createElementVNode("span",Bu,e.toDisplayString(te.name||L),1)],10,_u))),128))])])):e.createCommentVNode("",!0),b.value?(e.openBlock(),e.createElementBlock("section",Vu,[J[3]||(J[3]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Дані",-1)),e.createElementVNode("div",Su,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value,te=>(e.openBlock(),e.createElementBlock("label",{key:te.id,class:"map-layers__vector-item"},[e.createElementVNode("input",{type:"checkbox",class:"map-layers__checkbox",checked:te.visible,disabled:I.disabled,onChange:L=>P(te.id)},null,40,$u),e.createElementVNode("span",null,e.toDisplayString(te.label),1)]))),128))])])):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))],2)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-c1206d48"]]),Ht=1e-10,Pn=/([+-]?\d{1,3})\s*[°º˚]\s*(\d{1,2})\s*['’′`]\s*(\d{1,2}(?:\.\d+)?)\s*["”″]\s*([NSEW])/gi,Nu=/^[+-]?\d+(?:\.\d+)?$/;function Mu(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 a=[],l=[];if(r.forEach((d,h)=>{const y=h+1,p=t==="decimal"?Fu(d,y,n):Ar(d,y,n);if(!p.ok){a.push(...p.errors);return}const m=l[l.length-1];if(m&&Mr(m,p.point)){a.push({line:y,message:"Послідовні точки не повинні дублюватися."});return}l.push(p.point)}),a.length)return{ok:!1,errors:a};if(new Set(l.map(Tu)).size<3)return{ok:!1,errors:[{line:0,message:"Полігон повинен містити мінімум 3 унікальні точки."}]};const c=[...l];let i=!1;return Mr(c[0],c[c.length-1])||(c.push(c[0]),i=!0),Lu(c)?{ok:!1,errors:[{line:0,message:"Полігон має самоперетин."}]}:{ok:!0,ring:c,wasClosedAutomatically:i}}function Fu(o,t,n){return $r(o,"decimal",n,t)}function $r(o,t,n,r=1){return t==="decimal"?Du(o,r,n):Ar(o,r,n)}function Du(o,t,n){const r=[];if(/[A-Za-zА-Яа-яІіЇїЄєҐґ]/.test(o))return{ok:!1,errors:[{line:t,message:"У десятковому форматі не допускаються літери."}]};const a=o.split(/[\s,;]+/).filter(Boolean);if(a.length<2)return{ok:!1,errors:[{line:t,message:"Кожен рядок має містити дві координати."}]};if(a.length>2)return{ok:!1,errors:[{line:t,message:"У рядку дозволено лише одну пару координат."}]};if(!a.every(d=>Nu.test(d)))return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати десяткові координати."}]};const l=Number(a[0]),s=Number(a[1]);if(!Number.isFinite(l)||!Number.isFinite(s))return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати десяткові координати."}]};const c=n==="lat-lon"?l:s,i=n==="lat-lon"?s:l;return(c<-90||c>90)&&r.push({line:t,message:"Широта поза діапазоном (-90..90)."}),(i<-180||i>180)&&r.push({line:t,message:"Довгота поза діапазоном (-180..180)."}),r.length?{ok:!1,errors:r}:{ok:!0,point:[i,c]}}function Ar(o,t,n){Pn.lastIndex=0;const r=[...o.matchAll(Pn)];if(r.length<2)return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати DMS-координати."}]};if(r.length>2)return{ok:!1,errors:[{line:t,message:"У рядку дозволено лише одну пару координат."}]};if(Pn.lastIndex=0,o.replace(Pn," ").replace(/[\s,;]+/g,"").trim().length)return{ok:!1,errors:[{line:t,message:"У рядку виявлено зайві символи або значення."}]};const l=Nr(r[0],t,n==="lat-lon"?"lat":"lon"),s=Nr(r[1],t,n==="lat-lon"?"lon":"lat"),c=[];if(l.ok||c.push(l.error),s.ok||c.push(s.error),c.length)return{ok:!1,errors:c};const i=n==="lat-lon"?l.value:s.value;return{ok:!0,point:[n==="lat-lon"?s.value:l.value,i]}}function Nr(o,t,n){const r=Number(o[1]),a=Number(o[2]),l=Number(o[3]),s=String(o[4]).toUpperCase();if(!Number.isFinite(r)||!Number.isFinite(a)||!Number.isFinite(l))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(a<0||a>59)return{ok:!1,error:{line:t,message:"Хвилини повинні бути в діапазоні 0..59."}};if(l<0||l>60)return{ok:!1,error:{line:t,message:"Секунди повинні бути в діапазоні 0..60."}};const d=Math.abs(r),h=n==="lat"?90:180;if(d>h)return{ok:!1,error:{line:t,message:n==="lat"?"Градуси широти повинні бути в діапазоні 0..90.":"Градуси довготи повинні бути в діапазоні 0..180."}};if(d===h&&(a!==0||l!==0))return{ok:!1,error:{line:t,message:n==="lat"?"Для 90° широти хвилини й секунди мають бути 0.":"Для 180° довготи хвилини й секунди мають бути 0."}};const y=d+a/60+l/3600;return{ok:!0,value:s==="S"||s==="W"?-y:y}}function Tu(o){return`${o[0].toFixed(12)}:${o[1].toFixed(12)}`}function Mr(o,t){return Math.abs(o[0]-t[0])<Ht&&Math.abs(o[1]-t[1])<Ht}function Lu(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 a=t+1;a<o.length-1;a+=1){if(Math.abs(t-a)<=1||t===0&&a===o.length-2)continue;const l=o[a],s=o[a+1];if(Iu(n,r,l,s))return!0}}return!1}function Iu(o,t,n,r){const a=Rn(o,t,n),l=Rn(o,t,r),s=Rn(n,r,o),c=Rn(n,r,t);return!!(a!==l&&s!==c||a===0&&zn(o,n,t)||l===0&&zn(o,r,t)||s===0&&zn(n,o,r)||c===0&&zn(n,t,r))}function Rn(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)<Ht?0:r>0?1:2}function zn(o,t,n){return t[0]<=Math.max(o[0],n[0])+Ht&&t[0]+Ht>=Math.min(o[0],n[0])&&t[1]<=Math.max(o[1],n[1])+Ht&&t[1]+Ht>=Math.min(o[1],n[1])}const Ou=["title"],Pu={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"},Ru=["onClick"],zu=["placeholder"],ju={class:"absolute inset-y-0 right-2 flex items-center gap-1"},Uu={class:"flex items-center justify-between gap-2 px-3 py-2 border-b border-gray-100"},Hu={class:"text-xs font-semibold uppercase tracking-wide text-gray-500"},qu={class:"max-h-[260px] overflow-auto"},Wu={key:0,class:"divide-y divide-gray-100"},Ku=["onClick"],Gu={key:1,class:"px-3 py-3 text-xs text-gray-500"},Fr="formMapSearchAddressHistory",Yu=12,Xu="https://geo.rv.ua/api-user/dzk.api",Zu="https://nominatim.openstreetmap.org/search",Ju=Be(e.defineComponent({__name:"map-search",props:{config:{}},emits:["goToCoordinates"],setup(o,{emit:t}){const n={mounted(W,x){if(typeof document>"u")return;let D=null;const R=8,de=()=>{const Oe=String(x?.value??"");if(!Oe)return;D=document.createElement("div"),D.textContent=Oe,Object.assign(D.style,{position:"absolute",background:"#333",color:"#fff",padding:"4px 8px",borderRadius:"4px",fontSize:"12px",whiteSpace:"nowrap",pointerEvents:"none",zIndex:"9999"}),document.body.appendChild(D);const Ie=W.getBoundingClientRect();D.style.left=`${Ie.right+window.scrollX+R}px`,D.style.top=`${Ie.top+window.scrollY+(Ie.height-D.offsetHeight)/2}px`},_e=()=>{D?.parentNode&&D.parentNode.removeChild(D),D=null};W.addEventListener("mouseenter",de),W.addEventListener("mouseleave",_e),Object.assign(W,{tooltipRightHandlers:{show:de,hide:_e}})},unmounted(W){if(typeof document>"u")return;const x=W.tooltipRightHandlers;x&&(W.removeEventListener("mouseenter",x.show),W.removeEventListener("mouseleave",x.hide))}},r=o,a=t,l=e.getCurrentInstance();function s(){return typeof globalThis<"u"&&globalThis.proxy?globalThis.proxy:typeof window<"u"&&window.proxy?window.proxy:null}function c(){const x=l?.appContext.config.globalProperties?.$settings?.map?.searchViewbox;if(x)return Array.isArray(x)?x.join(","):String(x);const R=s()?.map?.searchViewbox;if(R)return Array.isArray(R)?R.join(","):String(R)}function i(){const x=l?.appContext.config.globalProperties?.$settings?.map?.addressSuggest;if(typeof x=="string"&&x.trim())return x.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 W=l?.appContext.config.globalProperties?.$settings,x=W?.map?.cadastreSuggest??W?.map?.parcelSuggest??W?.map?.parcelSearch;if(typeof x=="string"&&x.trim())return x.trim();const D=s(),R=D?.map?.cadastreSuggest??D?.map?.parcelSuggest??D?.map?.parcelSearch;if(typeof R=="string"&&R.trim())return R.trim()}const h=!!i(),y=!!c(),p=e.computed(()=>{const W=["nominatim","xy","parcel"];return h&&W.unshift("address"),y?W:W.filter(x=>x!=="nominatim")}),m=e.computed(()=>{const W=p.value,x=r.config?.tools?.filter(D=>W.includes(D));return x&&x.length?x:W}),f=e.computed(()=>r.config?.placeholder?.trim()||"Пошук…"),w=e.ref(m.value[0]);e.watch(m,W=>{W.includes(w.value)||(w.value=W[0])});const b=e.ref(""),v=e.ref(!1),C=e.ref(null),V=e.ref(null),$=e.ref(null),U=e.ref(null),Z=e.ref([]),O=e.ref(null),E=e.ref(!1),S=e.ref([]),_=e.computed(()=>(w.value==="address"||w.value==="nominatim")&&E.value),T=e.computed(()=>r.config?.addressDebounceMs??1e3);let j=null;const oe=e.ref(!1),A=e.computed(()=>b.value.trim().length>0?Z.value:S.value),P=e.computed(()=>b.value.trim().length?`Знайдено ${Z.value.length}`:"Історія пошуку"),Y=e.computed(()=>b.value.trim().length?"Нічого не знайдено":"Історія порожня");function q(){if(typeof window>"u")return[];try{const W=window.localStorage?.getItem?.(Fr);if(!W)return[];const x=JSON.parse(W);return Array.isArray(x)?x:[]}catch{return[]}}function I(W){typeof window>"u"||window.localStorage?.setItem?.(Fr,JSON.stringify(W))}function J(W){const D=[W,...S.value.filter(R=>R.id!==W.id)].slice(0,10);S.value=D,I(D)}const te=e.reactive({position:"absolute",left:"0px",top:"0px",width:"100%",display:"none"});function L(){if(!U.value)return;const W=U.value.getBoundingClientRect(),x=$.value?.getBoundingClientRect(),D=x?.width??W.width,R=(x?.left??W.left)+window.scrollX,de=W.bottom+window.scrollY+Yu;te.left=`${R}px`,te.top=`${de}px`,te.width=`${D}px`,te.display="block"}const M=()=>{_.value&&L()};function N(){j&&(clearTimeout(j),j=null)}e.watch(w,()=>{b.value="",v.value=!1,Z.value=[],E.value=!1,N(),oe.value=!1}),e.watch(_,W=>{W?e.nextTick(()=>{L()}):te.display="none"}),e.watch(b,W=>{if(w.value!=="address"&&w.value!=="nominatim"){Z.value=[],N();return}if(!W.trim()){Z.value=[],E.value=S.value.length>0,N();return}N(),E.value=!0,j=window.setTimeout(()=>{le(W).catch(x=>{const D=x?.message||"Помилка пошуку адреси";ge.notify({type:"error",title:"Пошук адреси",message:D})})},T.value)});function Q(W){const x=[];V.value&&x.push(V.value),W instanceof HTMLElement&&x.push(W),C.value?.querySelectorAll("li")?.forEach(R=>{x.push(R)}),x.forEach(R=>{R.dispatchEvent(new MouseEvent("mouseleave",{bubbles:!0}))})}function ae(W){v.value&&Q(W.target),v.value=!v.value}function ee(W,x){Q(x?.target),w.value=W}function he(){b.value="",Z.value=[],E.value=!1,oe.value=!1}function we(W){const x=W.target;if(v.value){const D=C.value;D&&!D.contains(x)&&(Q(x),v.value=!1)}if(_.value){const D=O.value,R=U.value;D&&!D.contains(x)&&(!R||!R.contains(x))&&(E.value=!1)}}e.onMounted(()=>{S.value=q(),window.addEventListener("click",we,!0),window.addEventListener("scroll",M,!0),window.addEventListener("resize",M)}),e.onBeforeUnmount(()=>{window.removeEventListener("click",we,!0),window.removeEventListener("scroll",M,!0),window.removeEventListener("resize",M),N()});function be(W){return W==="xy"?"Координати":W==="parcel"?"Кадастр":W==="nominatim"?"Адреса":"Адресний"}function $e(W){switch(W){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 Me(W){const x=$r(W.trim(),"dms","lat-lon");if(x.ok){const[Ke,ct]=x.point;return{lat:ct,lng:Ke}}const D=W.replace(/[,]+/g," ").trim();if(!D)return null;const R=D.split(/\s+/).filter(Boolean);if(R.length<2)return null;const de=R.slice(0,2).map(Number);if(!de.every(Ke=>Number.isFinite(Ke)))return null;let[_e,Oe]=de,Ie=_e,Ue=Oe;const We=Ke=>Math.abs(Ke)<=90,ut=Ke=>Math.abs(Ke)<=180;if(!We(Ie)||!ut(Ue))if(We(Ue)&&ut(Ie))Ie=Oe,Ue=_e;else return null;return{lat:Ie,lng:Ue}}function Fe(W){const x=W?.result||W?.data||W;return(Array.isArray(x)?x:x?[x]:[]).map((R,de)=>{const _e=R?.geom_centroid,Oe=Array.isArray(_e?.coordinates)?_e.coordinates:null;if(!Oe||Oe.length<2)return null;const Ie=Number(Oe[0]),Ue=Number(Oe[1]);return!Number.isFinite(Ue)||!Number.isFinite(Ie)?null:{id:String(R?.parcel_id??R?.cad_num??de),title:R?.cadnum||R?.cad_num||"Земельна ділянка",lat:Ue,lng:Ie}}).filter(R=>!!R)}function Re(W){return(Array.isArray(W?.features)?W.features:[]).map((D,R)=>{const de=D?.geometry?.coordinates,_e=Number(de?.[0]),Oe=Number(de?.[1]);if(!Number.isFinite(Oe)||!Number.isFinite(_e))return null;const Ie=D?.properties||{},Ue=Ie?.geocoding?.label||Ie?.display_name||Ie?.label||"Адреса";return{id:String(Ie?.geocoding?.place_id||Ie?.place_id||R),title:Ue,lat:Oe,lng:_e}}).filter(D=>!!D)}function se(W){return Number.isFinite(W.lat)&&Number.isFinite(W.lng)}function ie(W){if(W==null||typeof W=="string"&&!W.trim())return null;const x=Number(W);return Number.isFinite(x)?x:null}function ve(W){const x=ie(W.lng)??ie(W.lon)??ie(W.longitude)??ie(W.x),D=ie(W.lat)??ie(W.latitude)??ie(W.y);if(x!=null&&D!=null)return{lat:D,lng:x};const R=W?.geometry?.coordinates??W?.geom_centroid?.coordinates??W?.centroid?.coordinates??W?.geojson?.geometry?.coordinates??W?.geom?.coordinates;if(Array.isArray(R)&&R.length>=2){const de=ie(R[0]),_e=ie(R[1]);if(de!=null&&_e!=null)return{lat:_e,lng:de}}return null}function Se(W){return(Array.isArray(W?.data)?W.data:[]).map((D,R)=>{const de=ve(D),_e=String(D.text??D.title??D.label??D.name??D.address??D.display_name??D.id??"Адреса"),Oe=String(D.id??D.code??D.value??R);return de?{id:Oe,title:_e,...de}:{id:Oe,title:_e}}).filter(D=>!!D?.title)}function Le(W){const x=d()||Xu;if(x.includes(":id"))return x.replace(":id",encodeURIComponent(W));if(x.includes(":name"))return x.replace(":name",encodeURIComponent(W));try{const D=new URL(x,window.location.origin),R=r.config?.parcelQueryParam?.trim()||"cad_num";return D.searchParams.set(R,W),D.toString()}catch{return x}}function qe(W){const x=i();if(!x)return null;if(x.includes(":name"))return x.replace(":name",encodeURIComponent(W));try{const D=new URL(x,window.location.origin);return W.trim()&&D.searchParams.set("q",W),D.toString()}catch{return x}}async function z(W){const x=qe(W);if(!x)return[];const D=await fetch(x);if(!D.ok)throw new Error(`HTTP ${D.status}`);const R=await D.json();return Se(R)}async function ne(W){const x=new URL(Zu);x.searchParams.set("format","geojson"),x.searchParams.set("q",W),x.searchParams.set("addressdetails","1"),x.searchParams.set("bounded","1");const D=c();D&&x.searchParams.set("viewbox",D);const R=await fetch(x.toString());if(!R.ok)throw new Error(`HTTP ${R.status}`);const de=await R.json();return Re(de)}async function le(W){if(Z.value=[],N(),w.value==="address"){if(!i()){ge.notify({type:"warning",title:"Пошук адреси",message:"Не налаштовано addressSuggest"});return}const R=await z(W);if(!R.length){ge.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}Z.value=R;return}const x=await ne(W);if(!x.length){ge.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}Z.value=x}async function ue(W){if(se(W)){De(W),J(W);return}ge.notify({type:"warning",title:"Пошук адреси",message:"Геометрія для обраної адреси відсутня"})}function ke(){w.value!=="address"&&w.value!=="nominatim"||(E.value=!0,e.nextTick(()=>{L()}))}function Ae(W){const D=W.replace(/\s+/g,"").split(":");if(D.length!==4)return!1;const R=[10,2,3,4];return D.every((de,_e)=>de.length===R[_e]&&/^\d+$/.test(de))}function De(W){a("goToCoordinates",[W.lat,W.lng]),oe.value=!0}async function Te(){const W=b.value.trim();if(W){if(w.value==="xy"){const x=Me(W);if(!x){ge.notify({type:"warning",title:"Пошук координат",message:"Використайте `lat lon` або DMS у форматі `50°27'00\"N 30°31'24\"E`."});return}De(x);return}if(w.value==="address"||w.value==="nominatim"){try{await le(W)}catch(x){const D=x?.message||"Помилка пошуку адреси";ge.notify({type:"error",title:"Пошук адреси",message:D})}return}try{if(!Ae(W)){ge.notify({type:"warning",title:"Пошук кадастру",message:"Кадастровий номер має формат ХХХХХХХХХХ:ХХ:ХХХ:ХХХХ"});return}const x=await fetch(Le(W));if(!x.ok)throw new Error(`HTTP ${x.status}`);const D=await x.json(),R=Fe(D);if(!R.length)ge.notify({type:"warning",title:"Пошук",message:"Не знайдено результатів"});else{const de=R.find(se);if(!de){ge.notify({type:"warning",title:"Пошук",message:"Геометрія ділянки відсутня"});return}De(de)}}catch(x){const D=x?.message||"Помилка пошуку";ge.notify({type:"error",title:"Пошук",message:D})}}}return(W,x)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"widgetRef",ref:$,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(Te,["prevent"])},[m.value.length>1?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:C,class:"relative search-type w-[100px]"},[e.createElementVNode("button",{type:"button",class:"vstSelect-input transition-all text-left bg-white border border-gray-200 text-gray-900 rounded-lg focus:ring-blue-500 focus:border-blue-100 block w-full py-1.5 px-3 text-sm cursor-pointer flex items-center justify-between gap-2",onClick:ae},[e.withDirectives((e.openBlock(),e.createElementBlock("span",{ref_key:"selectedToolLabelRef",ref:V,class:"block w-full truncate",title:be(w.value)},[e.createTextVNode(e.toDisplayString(be(w.value)),1)],8,Ou)),[[n,$e(w.value)]]),(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(["w-4 h-4 text-gray-500 transition-transform",{"rotate-180":v.value}]),viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},x[3]||(x[3]=[e.createElementVNode("path",{d:"M6 9l6 6 6-6",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]),2))]),v.value?(e.openBlock(),e.createElementBlock("div",Pu,[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,D=>e.withDirectives((e.openBlock(),e.createElementBlock("li",{key:D,class:"px-3 py-2 cursor-pointer hover:bg-gray-100 text-gray-900",onClick:R=>ee(D,R)},[e.createTextVNode(e.toDisplayString(be(D)),1)],8,Ru)),[[n,$e(D)]])),128))])])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"searchWrapperRef",ref:U,class:"relative flex-1 min-w-[140px]"},[w.value==="parcel"?(e.openBlock(),e.createBlock(En,{key:0,modelValue:b.value,"onUpdate:modelValue":x[0]||(x[0]=D=>b.value=D),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",oe.value?"!pr-14":"!pr-8"])},null,8,["modelValue","class"])):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,"onUpdate:modelValue":x[1]||(x[1]=D=>b.value=D),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",oe.value?"!pr-14":"!pr-8"]),onFocus:ke},null,42,zu)),[[e.vModelText,b.value,void 0,{trim:!0}]]),e.createElementVNode("div",ju,[oe.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"flex items-center text-gray-400 hover:text-gray-600","aria-label":"Очистити",onClick:he},x[4]||(x[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),x[5]||(x[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))]),_.value?(e.openBlock(),e.createBlock(e.Teleport,{key:2,to:"body"},[e.createElementVNode("div",{ref_key:"addressResultsRef",ref:O,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(te)},[e.createElementVNode("div",Uu,[e.createElementVNode("span",Hu,e.toDisplayString(P.value),1),e.createElementVNode("button",{type:"button",class:"text-gray-400 hover:text-gray-600","aria-label":"Закрити",onClick:x[2]||(x[2]=D=>E.value=!1)}," ✕ ")]),e.createElementVNode("div",qu,[A.value.length?(e.openBlock(),e.createElementBlock("ul",Wu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(A.value,D=>(e.openBlock(),e.createElementBlock("li",{key:D.id,class:"px-3 py-2 cursor-pointer hover:bg-gray-50",onClick:R=>ue(D)},e.toDisplayString(D.title),9,Ku))),128))])):(e.openBlock(),e.createElementBlock("div",Gu,e.toDisplayString(Y.value),1))])],4)])):e.createCommentVNode("",!0)],512)],32)],512))}}),[["__scopeId","data-v-4d528cf7"]]),Qu={class:"pt-1 border-t border-gray-100"},ep={class:"space-y-1"},tp=e.defineComponent({__name:"AddCoordinates",emits:["submit","cancel"],setup(o,{emit:t}){const n=t,r=e.ref(null),a=e.ref(null),l=(i,d,h)=>Math.min(Math.max(i,d),h),s=()=>{if(r.value===null||a.value===null||!Number.isFinite(r.value)||!Number.isFinite(a.value))return;const i=l(r.value,-90,90),d=l(a.value,-180,180);n("submit",{lat:i,lng:d}),r.value=null,a.value=null},c=()=>{r.value=null,a.value=null,n("cancel")};return(i,d)=>(e.openBlock(),e.createElementBlock("div",Qu,[d[2]||(d[2]=e.createElementVNode("p",{class:"text-xs text-gray-600 mb-1"},"Додати точку за координатами:",-1)),e.createElementVNode("div",ep,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[0]||(d[0]=h=>r.value=h),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]=h=>a.value=h),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,a.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:c}," Скасувати ")])])]))}}),np=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(X.Plus),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode(" Додати ",-1))]))}}),op=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(X.Trash2),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode(" Очистити ",-1))]))}}),rp=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(X.Circle),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode("Замкнути ",-1))]))}}),lp=new Intl.NumberFormat("uk-UA",{minimumFractionDigits:2,maximumFractionDigits:2});function qt(o){return lp.format(o)}function Dr(o){return o>=1e3?`${qt(o/1e3)} км`:`${qt(o)} м`}const ap={class:"flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"},sp={key:0,class:"flex-1 flex gap-1"},ip={key:1,class:"flex-1 font-mono text-gray-700"},cp=e.defineComponent({__name:"DotListItem",props:{id:{},index:{},coords:{}},emits:["update","delete"],setup(o,{emit:t}){const n=o,r=t,a=e.computed(()=>`${n.coords.lat.toFixed(4)}°, ${n.coords.lng.toFixed(4)}°`),l=e.ref(!1),s=e.ref(n.coords.lat),c=e.ref(n.coords.lng);e.watch(()=>n.coords,p=>{s.value=p.lat,c.value=p.lng},{deep:!0,immediate:!0});const i=(p,m,f)=>Math.min(Math.max(p,m),f),d=()=>{l.value=!0},h=()=>{if(!Number.isFinite(s.value)||!Number.isFinite(c.value))return;const p=i(s.value,-90,90),m=i(c.value,-180,180);r("update",{id:n.id,coords:{lat:p,lng:m}}),l.value=!1},y=()=>{r("delete",n.id)};return(p,m)=>(e.openBlock(),e.createElementBlock("div",ap,[e.createVNode(e.unref(X.MapPin),{size:12,"stroke-width":2,class:"text-gray-400 flex-shrink-0"}),l.value?(e.openBlock(),e.createElementBlock("div",sp,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":m[0]||(m[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":m[1]||(m[1]=f=>c.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,c.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:h}," ✓ ")])):(e.openBlock(),e.createElementBlock("span",ip,e.toDisplayString(a.value),1)),l.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:y}," ✕ ")]))}}),dp={class:"ruler-control px-3 py-2.5 space-y-2"},up={type:"button",class:"ruler-row w-full flex items-center gap-2 cursor-pointer group text-left"},pp={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"},mp={class:"text-sm font-semibold text-slate-700"},fp={class:"ruler-row"},hp={type:"button",class:"w-full flex items-center gap-2 cursor-pointer group text-left"},gp={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"},yp={class:"inline-flex rounded-md overflow-hidden border border-gray-200 bg-gray-100"},bp=["onClick"],kp={class:"flex items-center gap-2 mt-0.5 pl-7"},wp={key:0,class:"text-base font-semibold text-green-600"},xp={key:1,class:"text-xs text-gray-400"},vp={class:"ruler-row flex items-center gap-2 cursor-pointer"},_p={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"},Cp={class:"text-xs font-medium text-gray-600 flex-1"},Ep={key:0,class:"pt-1.5 border-t border-gray-100 max-h-32 overflow-y-auto space-y-1"},Bp=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"),a=[{id:"km2",label:"км²"},{id:"ha",label:"га"},{id:"m2",label:"м²"}],l=()=>{n.value=!n.value},s=(f,w)=>{const b=S=>S*Math.PI/180,v=b(w.lat-f.lat),C=b(w.lng-f.lng),V=b(f.lat),$=b(w.lat),U=Math.sin(v/2),Z=Math.sin(C/2);return 6371e3*(2*Math.asin(Math.sqrt(U*U+Math.cos(V)*Math.cos($)*Z*Z)))},c=e.computed(()=>{if(t.points.length<2)return 0;let f=0;for(let w=1;w<t.points.length;w+=1)f+=s(t.points[w-1].coords,t.points[w].coords);return t.isShapeClosed&&t.points.length>=2&&(f+=s(t.points[t.points.length-1].coords,t.points[0].coords)),f}),i=e.computed(()=>c.value>=1e3?`${qt(c.value/1e3)} км`:`${qt(c.value)} м`);function d(f){if(f.length<3)return 0;const w=f[0].lat,b=f[0].lng,v=(V,$)=>{const U=(V-w)*110574;return{x:($-b)*111320*Math.cos(w*Math.PI/180),y:U}};let C=0;for(let V=0;V<f.length;V++){const $=(V+1)%f.length,U=v(f[V].lat,f[V].lng),Z=v(f[$].lat,f[$].lng);C+=U.x*Z.y-U.y*Z.x}return Math.abs(C)*.5}const h=e.computed(()=>{if(!t.isShapeClosed||t.points.length<3)return 0;const f=t.points.map(w=>w.coords);return d(f)}),y=e.computed(()=>h.value>0),p=e.computed(()=>{const f=h.value;if(f===0)return"—";if(r.value==="km2"){const b=f/1e6;return`${qt(b)} км²`}if(r.value==="ha"){const b=f/1e4;return`${qt(b)} га`}const w=f>=1?Math.round(f):f;return`${qt(w)} м²`}),m=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,w)=>(e.openBlock(),e.createElementBlock("div",dp,[e.createElementVNode("button",up,[e.createElementVNode("span",pp,[e.createVNode(e.unref(X.Info),{size:12,"stroke-width":2.5})]),w[1]||(w[1]=e.createElementVNode("span",{class:"text-xs font-medium text-gray-600 flex-1"},"Загальна відстань",-1)),e.createElementVNode("span",mp,e.toDisplayString(i.value),1)]),e.createElementVNode("div",fp,[e.createElementVNode("button",hp,[e.createElementVNode("span",gp,[e.createVNode(e.unref(X.Info),{size:12,"stroke-width":2.5})]),w[2]||(w[2]=e.createElementVNode("span",{class:"text-xs font-medium text-gray-600 flex-1"},"Площа",-1)),e.createElementVNode("div",yp,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(a,(b,v)=>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",v===0&&"rounded-l-md",v===a.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(C=>r.value=b.id,["stop"])},e.toDisplayString(b.label),11,bp)),64))])]),e.createElementVNode("div",kp,[y.value?(e.openBlock(),e.createElementBlock("span",wp,e.toDisplayString(p.value),1)):(e.openBlock(),e.createElementBlock("span",xp,"—"))])]),e.createElementVNode("div",vp,[e.createElementVNode("span",_p,[e.createVNode(e.unref(X.Info),{size:12,"stroke-width":2.5})]),e.createElementVNode("span",Cp,e.toDisplayString(m.value),1),e.createElementVNode("button",{type:"button",class:"text-xs text-blue-500 hover:text-blue-600 font-medium transition-colors",onClick:e.withModifiers(l,["stop"])}," Координати ")]),n.value?(e.openBlock(),e.createElementBlock("div",Ep,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.points,(b,v)=>(e.openBlock(),e.createBlock(cp,{key:b.id,id:b.id,index:v+1,coords:b.coords,onUpdate:w[0]||(w[0]=C=>f.$emit("update-point",C)),onDelete:C=>f.$emit("delete-point",b.id)},null,8,["id","index","coords","onDelete"]))),128))])):e.createCommentVNode("",!0)]))}}),Vp={class:"px-3 py-3 bg-blue-50/50 border-b border-blue-100"},Sp={class:"flex items-start gap-2"},$p=e.defineComponent({__name:"InfoHint",setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",Vp,[e.createElementVNode("div",Sp,[e.createVNode(e.unref(X.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))])]))}}),Ap={class:"space-y-1.5"},Np={class:"space-y-1 max-h-40 overflow-y-auto"},Mp={class:"text-gray-700"},Fp={class:"font-semibold text-slate-800"},Dp=e.defineComponent({__name:"ToPointList",props:{points:{},isShapeClosed:{type:Boolean}},setup(o){const t=o;function n(l,s){const c=m=>m*Math.PI/180,i=c(s.lat-l.lat),d=c(s.lng-l.lng),h=c(l.lat),y=c(s.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(i/2)**2+Math.cos(h)*Math.cos(y)*Math.sin(d/2)**2)))}function r(l){return Dr(l)}const a=e.computed(()=>{const l=[],s=t.points;if(s.length<2)return l;for(let c=0;c<s.length;c++){const i=c===s.length-1&&t.isShapeClosed?0:c+1;if(i>=s.length)break;const d=n(s[c].coords,s[i].coords);l.push({from:c+1,to:i+1,label:r(d)})}return l});return(l,s)=>(e.openBlock(),e.createElementBlock("div",Ap,[s[0]||(s[0]=e.createElementVNode("p",{class:"text-xs font-medium text-gray-600 mb-1.5"},"Відстань між точками:",-1)),e.createElementVNode("div",Np,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(c,i)=>(e.openBlock(),e.createElementBlock("div",{key:i,class:"flex items-center justify-between text-xs py-1 px-2 rounded bg-gray-50"},[e.createElementVNode("span",Mp,"Точка "+e.toDisplayString(c.from)+" → Точка "+e.toDisplayString(c.to),1),e.createElementVNode("span",Fp,e.toDisplayString(c.label),1)]))),128))])]))}}),Tp={class:"ruler-panel-wrap absolute bottom-12 right-4 z-[1001] animate-slide-up"},Lp={class:"bg-white rounded-xl shadow-2xl border border-gray-200 overflow-hidden w-72"},Ip={class:"bg-gradient-to-r from-blue-400 to-blue-500 px-3 py-2 flex items-center justify-between"},Op={class:"flex items-center gap-2"},Pp={class:"w-6 h-6 bg-white/20 rounded-lg flex items-center justify-center"},Rp={class:"flex border-b border-gray-200"},zp={key:1,class:"px-3 py-2.5"},jp={key:1,class:"text-xs text-gray-500"},Up={class:"px-2.5 py-1.5 bg-gray-50 border-t border-gray-200 space-y-1.5"},Hp={class:"flex gap-1.5"},qp=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,a=e.ref([]),l=e.computed(()=>a.value.length>0),s=e.ref(!1),c=e.ref(!1),i=e.ref("general");function d(_){i.value=_,r("tab-change",_)}e.onMounted(()=>{r("tab-change",i.value)});const h=e.computed(()=>a.value.length>=3&&!c.value);let y=1;const p=()=>a.value.map(_=>({id:_.id,coords:{..._.coords}})),m=()=>{a.value.length<3&&c.value&&(c.value=!1,r("shape-closed-change",!1)),r("points-change",p())},f=()=>{const _=y;return y+=1,_},w=_=>{a.value=[...a.value,{id:f(),coords:{lat:_.lat,lng:_.lng}}],m()},b=({id:_,coords:T})=>{const j=a.value.findIndex(A=>A.id===_);if(j===-1)return;const oe=[...a.value];oe[j]={id:_,coords:{...T}},a.value=oe,m()},v=_=>{a.value=a.value.filter(T=>T.id!==_),m()},C=()=>{a.value=[],c.value&&(c.value=!1,r("shape-closed-change",!1)),m()},V=_=>{b(_)},$=_=>{v(_)},U=()=>{s.value=!0,r("add-request")},Z=_=>{w(_),s.value=!1},O=()=>{s.value=!1},E=()=>{h.value&&(c.value=!0,r("complete"),r("shape-closed-change",!0))},S=()=>{C(),s.value=!1,r("close")};return t({addPoint:w,clearPoints:C}),(_,T)=>(e.openBlock(),e.createElementBlock("div",Tp,[e.createElementVNode("div",Lp,[e.createElementVNode("div",Ip,[e.createElementVNode("div",Op,[e.createElementVNode("div",Pp,[e.createVNode(e.unref(X.Ruler),{size:14,"stroke-width":2,class:"text-white"})]),T[2]||(T[2]=e.createElementVNode("h3",{class:"text-white font-semibold text-xs"},"Вимірювання",-1))]),e.createElementVNode("button",{class:"w-5 h-5 flex items-center justify-center rounded hover:bg-white/20 transition-colors","aria-label":"Закрити",onClick:S},[e.createVNode(e.unref(X.X),{size:14,"stroke-width":2,class:"text-white"})])]),e.createElementVNode("div",Rp,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors",i.value==="general"?"text-blue-600 border-b-2 border-blue-500 bg-blue-50/50":"text-gray-500 hover:text-gray-700"]),onClick:T[0]||(T[0]=j=>d("general"))}," Загальна ",2),e.createElementVNode("button",{type:"button",class:e.normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors",i.value==="topoint"?"text-blue-600 border-b-2 border-blue-500 bg-blue-50/50":"text-gray-500 hover:text-gray-700"]),onClick:T[1]||(T[1]=j=>d("topoint"))}," До точки ",2)]),i.value==="general"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[l.value?(e.openBlock(),e.createBlock(Bp,{key:1,points:a.value,"is-shape-closed":c.value,onUpdatePoint:V,onDeletePoint:$},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createBlock($p,{key:0}))],64)):(e.openBlock(),e.createElementBlock("div",zp,[l.value?(e.openBlock(),e.createBlock(Dp,{key:0,points:a.value,"is-shape-closed":c.value},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createElementBlock("p",jp,"Додайте точки на карті, щоб бачити відстані між ними."))])),e.createElementVNode("div",Up,[e.createElementVNode("div",Hp,[s.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(np,{key:0,onClick:U})),h.value?(e.openBlock(),e.createBlock(rp,{key:1,onClick:E})):e.createCommentVNode("",!0)]),s.value?(e.openBlock(),e.createBlock(tp,{key:0,onSubmit:Z,onCancel:O})):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createBlock(op,{key:1,onClick:C})):e.createCommentVNode("",!0)])])]))}}),ot="ruler-points",Bt="ruler-line",Vt="ruler-polygon",St="ruler-segments",Wp=e.defineComponent({__name:"RulerLayer",props:{map:{},points:{},isShapeClosed:{type:Boolean},labelMode:{}},setup(o){function t(f,w){const b=Z=>Z*Math.PI/180,v=b(w.lat-f.lat),C=b(w.lng-f.lng),V=b(f.lat),$=b(w.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(v/2)**2+Math.cos(V)*Math.cos($)*Math.sin(C/2)**2)))}function n(f){return Dr(f)}const r=o;function a(){return{type:"FeatureCollection",features:[]}}function l(f,w,b){const v=b??"general",C=[];let V=0;C.push(0);for(let $=1;$<f.length;$++)V+=t(f[$-1].coords,f[$].coords),C.push(V);return w&&f.length>=2&&(V+=t(f[f.length-1].coords,f[0].coords)),{type:"FeatureCollection",features:f.map(($,U)=>{const Z=v==="general"?U===0?"0":n(C[U]):U===0?"0":n(t(f[U-1].coords,f[U].coords));return{type:"Feature",geometry:{type:"Point",coordinates:[$.coords.lng,$.coords.lat]},properties:{id:$.id,index:U+1,label:Z}}})}}function s(f,w){if(f.length<2)return a();const b=[];for(let v=0;v<f.length;v++){const C=v===f.length-1&&w?0:v+1;if(C>=f.length)break;const V=f[v].coords,$=f[C].coords,U=t(V,$);b.push({type:"Feature",geometry:{type:"LineString",coordinates:[[V.lng,V.lat],[$.lng,$.lat]]},properties:{distance:n(U)}})}return{type:"FeatureCollection",features:b}}function c(f,w){if(f.length<2)return a();const b=f.map(v=>[v.coords.lng,v.coords.lat]);return w&&b.push(b[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"LineString",coordinates:b},properties:{}}]}}function i(f){if(f.length<3)return a();const w=f.map(b=>[b.coords.lng,b.coords.lat]);return w.push(w[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"Polygon",coordinates:[w]},properties:{}}]}}let d=!1;function h(f){f.getSource(ot)||(f.addSource(ot,{type:"geojson",data:a()}),f.addLayer({id:`${ot}-circle`,type:"circle",source:ot,paint:{"circle-radius":5,"circle-color":"#1e293b","circle-stroke-width":2,"circle-stroke-color":"#ffffff"}}),f.addLayer({id:`${ot}-labels`,type:"symbol",source:ot,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(St)||(f.addSource(St,{type:"geojson",data:a()}),f.addLayer({id:`${St}-labels`,type:"symbol",source:St,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(Bt)||(f.addSource(Bt,{type:"geojson",data:a()}),f.addLayer({id:`${Bt}-layer`,type:"line",source:Bt,paint:{"line-color":"#3b82f6","line-width":2}})),f.getSource(Vt)||(f.addSource(Vt,{type:"geojson",data:a()}),f.addLayer({id:`${Vt}-layer`,type:"fill",source:Vt,paint:{"fill-color":"#93c5fd","fill-opacity":.25}})),d=!0}function y(f){if(f){try{f.getLayer(`${Vt}-layer`)&&f.removeLayer(`${Vt}-layer`),f.getSource(Vt)&&f.removeSource(Vt),f.getLayer(`${Bt}-layer`)&&f.removeLayer(`${Bt}-layer`),f.getSource(Bt)&&f.removeSource(Bt),f.getLayer(`${St}-labels`)&&f.removeLayer(`${St}-labels`),f.getSource(St)&&f.removeSource(St),f.getLayer(`${ot}-labels`)&&f.removeLayer(`${ot}-labels`),f.getLayer(`${ot}-circle`)&&f.removeLayer(`${ot}-circle`),f.getSource(ot)&&f.removeSource(ot)}catch{}d=!1}}function p(f){if(!f)return;const w=f.getSource(ot),b=f.getSource(Bt),v=f.getSource(Vt),C=f.getSource(St),V=r.points,$=r.labelMode??"general";w&&w.setData(l(V,r.isShapeClosed,$)),b&&b.setData(c(V,r.isShapeClosed)),v&&v.setData(i(V)),C&&C.setData($==="topoint"?s(V,r.isShapeClosed):a())}function m(){const f=r.map;f&&(d||h(f),p(f))}return e.watch(()=>[r.points,r.isShapeClosed,r.labelMode],()=>m(),{deep:!0,immediate:!0}),e.watch(()=>r.map,()=>m(),{immediate:!0}),e.onBeforeUnmount(()=>{y(r.map)}),(f,w)=>null}});function Kp(o={}){const t=e.ref(!1),n=e.ref([]),r=e.ref(!1),a=e.ref("general"),l=e.ref(null);function s(){t.value?c():(t.value=!0,o.onActivate?.())}function c(){t.value=!1,n.value=[],r.value=!1,l.value?.clearPoints(),o.onDeactivate?.()}function i(m){n.value=m}function d(m){a.value=m}function h(m){r.value=m}function y(m){t.value&&l.value?.addPoint({lat:m.lat,lng:m.lng})}const p=e.computed(()=>n.value.length>0);return{isRulerActive:t,rulerPoints:n,rulerShapeClosed:r,rulerActiveTab:a,rulerPanelRef:l,hasRulerPoints:p,toggleRuler:s,closeRuler:c,onRulerPointsChange:i,onRulerTabChange:d,onRulerShapeClosedChange:h,handleRulerMapClick:y}}const xo="vs-safe-raster",dn=new ArrayBuffer(0);let vo=!1;function Gp(o){const t=`${xo}://`;return typeof o!="string"||!o.startsWith(t)?o:o.slice(t.length)}function Yp(o){if(!o||o.byteLength<4)return!1;const t=new Uint8Array(o);return t[0]===137&&t[1]===80&&t[2]===78&&t[3]===71||t[0]===255&&t[1]===216&&t[2]===255||t[0]===82&&t[1]===73&&t[2]===70&&t[3]===70&&o.byteLength>=12&&String.fromCharCode(t[8],t[9],t[10],t[11])==="WEBP"}async function Xp(o,t){try{const n=await fetch(o,{signal:t});if(!n.ok||n.status===204)return dn;const r=await n.arrayBuffer();return!r.byteLength||!Yp(r)?dn:r}catch{return dn}}function Zp(o){vo||!o?.addProtocol||(vo=!0,o.addProtocol(xo,(t,n)=>{const r=Gp(String(t?.url??""));if(!r)return n(null,{data:dn}),{cancel:()=>{}};const a=new AbortController;return Xp(r,a.signal).then(l=>n(null,{data:l})).catch(()=>n(null,{data:dn})),{cancel:()=>a.abort()}}))}function Jp(o){const t=typeof o=="string"?o.trim():"";if(!t)return t;const n=`${xo}://`;return t.startsWith(n)?t:`${n}${t}`}function Qp(o,t){const n=typeof o=="string"?o.trim():"";return n?t&&vo?[Jp(n)]:[n]:[]}function _o(o,t,n){const r={type:"raster",tiles:Qp(o,!!n?.safe),tileSize:typeof t?.tileSize=="number"?t.tileSize:256};return typeof t?.minzoom=="number"&&(r.minzoom=t.minzoom),typeof t?.maxzoom=="number"&&(r.maxzoom=t.maxzoom),Array.isArray(t?.bounds)&&t.bounds.length===4&&(r.bounds=t.bounds),r}function em(o){const t=String(o??"").toLowerCase();return t.includes("could not be decoded")||t.includes("source image could not be decoded")||t.includes("unsupported image type")}const tm={class:"vs-map-body"},nm={key:0,class:"absolute top-2 left-2 z-[1000] w-[calc(100%-16px)] sm:w-[320px]"},om={key:1,class:"form-geom__panel flex items-center gap-1 mt-1"},rm={class:"flex items-center gap-1"},lm=["disabled"],am={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"},sm=["disabled"],im={key:0,class:"mb-3 flex items-center gap-2 rounded-md border border-blue-100 bg-blue-50 px-3 py-2 text-sm text-blue-700"},cm={class:"mt-4 flex justify-end gap-2"},dm=["disabled"],um=["disabled"],pm={class:"mt-4 flex justify-end gap-2"},mm=["disabled"],fm={class:"vs-map-controls vs-map-controls--tr"},hm={class:"vs-map-toolbar"},gm=["disabled"],ym=["disabled"],bm=["disabled"],km=["disabled"],wm={key:1,class:"vs-map-toolbar__divider"},xm=["title"],vm={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"},_m={class:"space-y-0.5"},Cm={class:"text-gray-500"},Em={class:"text-gray-900 text-right break-all"},Bm={class:"absolute left-2 bottom-2 z-[1000]"},Vm={key:0,class:"vs-map-status"},Sm={class:"form-geom__feature vs-map-status__inner"},$m={class:"vs-map-status__type"},Am={class:"vs-map-status__values"},Nm=["onClick","disabled"],Mm={key:1,class:"vs-map-status__chip"},Fm={key:2,class:"vs-map-status__sep"},Dm={key:1,class:"vs-map-status__chip"},Tm={class:"vs-map-status__meta"},Lm={class:"vs-map-status__coords"},Im={key:0,class:"vs-map-status__value"},Om={key:1,class:"vs-map-status__value"},Pm={key:0,class:"vs-map-status__area"},Rm={class:"vs-map-status__value"},zm={class:"vs-map-status__actions"},jm=["disabled"],Um=["disabled"],Hm=11,qm=15,Wm=.7,Km="vs-tile-ov-src-",Gm="vs-tile-ov-raster-",jn="__vs_form_maplibre_loader__",Ym="https://demotiles.maplibre.org/font/{fontstack}/{range}.pbf",Un="vs-global-bounds-src",Zt="vs-global-bounds-line",Tr="rasterLayer",Lr=Be(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,a=e.useAttrs(),l=e.inject("values",e.ref({})),s=typeof document<"u"&&document.querySelector("#modal")?"#modal":"body",c=e.computed(()=>{const u=a?.multiple,g=a?.multi,k=B=>B===""||B===!0||B==="true"||B===1||B==="1";return!!n.multi||!!n.multiple||k(g)||k(u)}),i=e.computed(()=>!!n.disabled),d=e.ref(!1),h=e.ref(null),y=e.ref(0),p=e.ref(""),m=e.ref(null),f=e.ref([]),w=e.ref(null),b=e.ref(null),v=Kp({onActivate(){if(fe)try{fe.changeMode("simple_select",{featureIds:[]})}catch{}p.value=""},onDeactivate(){}});function C(){v.toggleRuler()}const V=e.getCurrentInstance(),$=V?.appContext?.config?.globalProperties?.$settings??{},U=$?.map??{},Z=e.computed(()=>{const u=U.layerPresets;return Array.isArray(u)?u:[]}),O=V?.vnode?.props??{};function E(u){return Object.prototype.hasOwnProperty.call(O,u)||Object.prototype.hasOwnProperty.call(O,u.replace(/[A-Z]/g,g=>`-${g.toLowerCase()}`))}const S=Array.isArray(U.center)&&U.center.length===2?U.center:Array.isArray($.center)&&$.center.length===2?$.center:[30,50],_=typeof U.zoom=="number"?U.zoom:typeof $.zoom=="number"?$.zoom:typeof $.defaultZoom=="number"?$.defaultZoom:10;function T(u){if(u!=null){if(Array.isArray(u)&&u.length>=2){const g=Number(u[0]),k=Number(u[1]);return!Number.isFinite(g)||!Number.isFinite(k)?void 0:[g,k]}if(typeof u=="object"){const g=u,k=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(k?.type==="Point"&&Array.isArray(k.coordinates)){const G=k.coordinates,ce=Number(G[0]),pe=Number(G[1]);if(Number.isFinite(ce)&&Number.isFinite(pe))return[ce,pe]}const B=Number(g.lat),F=Number(g.lng??g.lon);if(Number.isFinite(B)&&Number.isFinite(F))return[F,B]}}}const j=e.computed(()=>{const u=T(n.center);if(u)return u;if(!E("center"))return T(U.center)??T($.center)}),oe=e.computed(()=>E("zoom")?n.zoom:U.zoom??n.zoom),A=e.computed(()=>E("katottg")?String(n.katottg??""):String(U.katottg??n.katottg??"")),P=e.computed(()=>E("layers")?n.layers??[]:U.layers??n.layers??[]),Y=e.computed(()=>E("bounds")?n.bounds:U.bounds??n.bounds),q=e.ref(Array.isArray(j.value)&&j.value.length===2?[...j.value]:S),I=e.ref(typeof oe.value=="number"?oe.value:_),J=e.ref(null);let te=null;function L(u){const g=typeof u=="number"&&Number.isFinite(u)?u:I.value;return Math.min(qm,Math.max(Hm,Math.round(g)))}function M(u,g,k){if(!Number.isFinite(u)||!Number.isFinite(g))return;const B=iu(u,g,L(k)),F=J.value;F&&F.z===B.z&&F.x===B.x&&F.y===B.y||(J.value=B)}function N(){if(K){const u=K.getCenter?.(),g=K.getZoom?.();if(u&&Number.isFinite(g)){M(u.lng,u.lat,g);return}}Array.isArray(q.value)&&q.value.length===2&&M(q.value[0],q.value[1])}function Q(){te&&clearTimeout(te),te=setTimeout(()=>{te=null,N()},120)}M(q.value[0],q.value[1]);const ae=e.ref(n.modelValue),ee=e.ref(null),he=e.ref([]),we=e.ref(!1),be=e.ref(!1),$e=e.ref(!1),Me=e.ref(!1),Fe=e.ref(!1);e.provide("map-file-import-uploading",Fe);const Re=e.computed(()=>Fe.value?"Завантаження файлу на сервер...":Me.value?"Конвертація геометрії...":""),se=e.ref([]),ie=e.ref({srid:"",encoding:"UTF-8",file:""}),ve=e.computed(()=>{const u=l.value??{},g=u.id??a.id??"1",k=a.form??u.form??"form",B=a.table??u.table??"table",F=n.name??a.field??"geom";return`/file/upload/temp?${new URLSearchParams({id:String(g),form:String(k),table:String(B),field:String(F)}).toString()}`}),Se=e.computed(()=>({srid:{type:"Autocomplete",label:"Система координат",info:"Оберіть одну із систем координат в якій знаходяться ваші геодані",data:"gis.srid_from_setting",placeholder:"Обрати",rules:["required"]},encoding:{type:"Select",label:"Кодування файлу",info:"Вкажіть кодування в якому зберігається інформація в ваших файлах. Зазвичай це UTF-8",options:[{id:"UTF-8",text:"UTF-8"},{id:"CP1251",text:"CP1251"},{id:"LATIN-1",text:"LATIN-1"}],default:"UTF-8",rules:["required"]},file:{type:"File",label:"Файл",info:"Завантажте файл із геоданими у форматі GeoJson або Zip (Shapefiles)",format:".geojson,.zip",api:ve.value,rules:["required"]}})),Le=e.ref({coordinates:"",format:"decimal",order:"lat-lon"}),qe={coordinates:{type:"Textarea",label:"Координати вершин полігону (3-100 точок)",placeholder:`50.4501, 30.5234
3
3
  50.4510, 30.5242
4
4
  50.4494, 30.5260`},format:{type:"Radio",label:"Формат координат",options:[{id:"decimal",text:"Десяткові (Decimal)"},{id:"dms",text:"Градуси-хвилини-секунди (DMS)"}]},order:{type:"Radio",label:"Порядок координат",options:[{id:"lat-lon",text:"lat, lon"},{id:"lon-lat",text:"lon, lat"}]}};let z=!1,ne=!1;const le=e.reactive({}),ue=e.ref([]),ke=e.computed(()=>ue.value.map(u=>le[u]).filter(Boolean)),Ae=e.ref(null),De=e.computed(()=>Ae.value?.entries??[]),Te=e.computed(()=>{if(Ae.value)return{left:`${Ae.value.point.x+12}px`,top:`${Ae.value.point.y+12}px`}}),W=e.computed(()=>{if(Array.isArray(n.tools)&&n.tools.length)return n.tools;const u=a?.tools;return Array.isArray(u)?u.map(g=>String(g)):typeof u=="string"?u.split(",").map(g=>g.trim()).filter(Boolean):[]}),x=e.computed(()=>{const u={search:!1,import:!1,export:!1,point:!1,line:!1,polygon:!1,rectangle:!1,ruler:!1};if(!W.value.length)return{...u,import:!0,export:!0,point:!0,line:!0,polygon:!0,rectangle:!0};const g=new Set(W.value.map(k=>k.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 D(u){const g=typeof u=="string"?u.trim():"";if(!g)return"";if(/^https?:\/\//i.test(g))return g;const k=window?.location?.origin??"",B=g.replace(/^\/+/,"");return B?k?`${k}/${B}`:`/${B}`:k}function R(){const u=Array.isArray(U.basemaps)&&U.basemaps.length?U.basemaps:$.basemaps;if(Array.isArray(u)&&u.length){const k=u.map((B,F)=>{const G=String(B?.key??B?.id??B?.name??`b${F}`),ce=D(String(B?.url??""));if(!ce)return null;const pe=typeof B?.preview=="string"&&B.preview?D(B.preview):"";return[G,{...B,url:ce,preview:pe}]}).filter(B=>Array.isArray(B)&&B.length===2).reduce((B,[F,G])=>(B[F]=G,B),{});if(Object.keys(k).length)return k}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 de=R(),_e=Object.keys(de),Oe=e.ref(_e.length?_e[0]:"");function Ie(){const u=Array.isArray(U.overlays)&&U.overlays.length?U.overlays:$.overlays;return!Array.isArray(u)||!u.length?{}:u.map((k,B)=>{const G=(typeof k?.name=="string"?k.name.trim():"")||`o${B}`,ce=D(String(k?.url??""));if(!ce)return null;const pe=typeof k?.preview=="string"&&k.preview?D(k.preview):"";return[G,{...k,name:G,url:ce,preview:pe}]}).filter(k=>Array.isArray(k)&&k.length===2).reduce((k,[B,F])=>(k[B]=F,k),{})}const Ue=Ie(),We=e.ref(Object.keys(Ue).filter(u=>!!Ue[u]?.visible)),ut=e.computed(()=>x.value.point||x.value.line||x.value.polygon||x.value.rectangle),Ke=e.computed(()=>ke.value.filter(u=>u.config?.overlay!==!1).map(u=>({id:u.id,label:String(u.config.title||u.config.name||u.id),visible:u.visible})));function ct(u){return`${Km}${u}`}function Pt(u){return`${Gm}${u}`}async function eo(){if(typeof window>"u")return null;const u=window;if(u[jn])return u[jn];const g=G=>{if(Array.from(document.styleSheets).some(Ee=>Ee?.href?.includes(G)))return;const pe=document.createElement("link");pe.rel="stylesheet",pe.href=G,document.head.appendChild(pe)},k=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 Ee=await G("https://esm.sh/@mapbox/mapbox-gl-draw@1.5.0"),Pe=Ee?.default??Ee;if(!Pe)throw new Error("mapbox draw esm fallback failed");window.MapboxDraw=Pe},F=(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 k();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 Zp(G),{maplibregl:G,MapboxDraw:ce}})().catch(G=>{throw delete u[jn],G});return u[jn]=F,F}function Qt(u){return{version:8,glyphs:Ym,sources:{rasterSource:_o(u,void 0,{safe:!1})},layers:[{id:"rasterLayer",type:"raster",source:"rasterSource"}]}}let $t=null,Rt=null,K=null,fe=null,nt=[],At=null,wt=null,Ge=null,en=!1,Gt=!1,H=!1,re=null;function me(){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[k,B]=u.startPoint,F=g.lngLat.lng,G=g.lngLat.lat;u.rectangle.setCoordinates([[[k,B],[F,B],[F,G],[k,G],[k,B]]])},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[k,B]=u.startPoint,F=g.lngLat.lng,G=g.lngLat.lat;return Math.abs(k-F)>0&&Math.abs(B-G)>0?(u.rectangle.setCoordinates([[[k,B],[F,B],[F,G],[k,G],[k,B]]]),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,k){const B=g.properties.id===u.rectangle.id;B&&!u.hasCoordinates||(g.properties.active=B?"true":"false",k(g))}}}const Ne=[{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 ze(){const u=Oe.value;return!u||!de[u]?.url?"":de[u].url}function Je(u,g){return u?.id?String(u.id):u?.url?`${u.url}-${g}`:`layer-${g}`}function je(u){const g=String(u?.url??"").trim();if(!g)return"";if(/^https?:\/\//i.test(g))return g;const k=window.location?.origin??"",B=g.replace(/^\/+/,"");return`${k}/${B}`}function Qe(u){u&&Ae.value?.layerId!==u||(Ae.value=null)}function xt(u,g={}){if(u.popup===!1)return[];const k=Number(g?.point_count);if(Number.isFinite(k)&&k>1)return[{key:"Об'єктів у кластері",value:String(k)}];const B=je(u),F=_n(u,B,Z.value);return Array.isArray(u.popup)?u.popup.length?u.popup.map(G=>{const ce=G?.field||G?.name;if(!ce)return null;const pe=g[ce];if(pe==null||pe==="")return null;const Ee=F?.formatPopupValue?F.formatPopupValue(ce,pe):String(pe);return{key:G.label||ce,value:Ee}}).filter(Boolean):[]:Object.entries(g).slice(0,5).map(([G,ce])=>({key:G,value:ce==null?"—":String(ce)}))}function pt(u){if(!Array.isArray(u))return[];const g=B=>Array.isArray(B)&&B.length>=2&&Number.isFinite(Number(B[0]))&&Number.isFinite(Number(B[1])),k=B=>{if(!B.length)return B;const F=B[0],G=B[B.length-1];return!G||F[0]!==G[0]||F[1]!==G[1]?[...B,F]:B};if(u.length&&g(u[0])){const B=u.map(F=>[Number(F[0]),Number(F[1])]).filter(g);return B.length?[k(B)]:[]}return u.length&&Array.isArray(u[0])&&g(u[0][0])?u.map(F=>Array.isArray(F)?F.map(G=>[Number(G[0]),Number(G[1])]):[]).filter(F=>F.length).map(k):u.length&&Array.isArray(u[0])&&Array.isArray(u[0][0])&&g(u[0][0][0])?u.flatMap(F=>Array.isArray(F)?F:[]).map(F=>Array.isArray(F)?F.map(G=>[Number(G[0]),Number(G[1])]):[]).filter(F=>F.length).map(k):[]}function vt(u){const g=u.style??{},k=g.color??"#3b82f6";if(!g.colorAttr||!g.colorSet)return k;const B=Object.keys(g.colorSet);if(!B.length)return k;const F=["match",["to-string",["get",g.colorAttr]]];return B.forEach(G=>{F.push(String(G),g.colorSet?.[G]??k)}),F.push(k),F}function mt(u){if(!K)return;const g=K.getStyle()?.layers;Array.isArray(g)&&[...g].reverse().forEach(k=>{k.source===u&&K.getLayer(k.id)&&K.removeLayer(k.id)})}function zt(u){if(!K)return;u.handlers.forEach(B=>{try{K.off(B.type,B.layerId,B.handler)}catch{}}),u.handlers=[],[...u.layerIds,...u.boundsIds].forEach(B=>{K.getLayer(B)&&K.removeLayer(B)}),mt(u.sourceId),K.getSource(u.sourceId)&&K.removeSource(u.sourceId);const g=`vs-ov-bounds-src-${u.id}`,k=`vs-ov-bounds-line-${u.id}`;K.getLayer(k)&&K.removeLayer(k),K.getSource(g)&&K.removeSource(g),Qe(u.id)}function U0(u,g){if(!K)return[];const k=`vs-ov-bounds-src-${g}`,B=`vs-ov-bounds-line-${g}`,F=u.bounds??Y.value??he.value,G=pt(F);if(!G.length)return[];const ce={type:"FeatureCollection",features:G.map(pe=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:pe}}))};return K.getLayer(B)&&K.removeLayer(B),K.getSource(k)&&K.removeSource(k),K.addSource(k,{type:"geojson",data:ce}),K.addLayer({id:B,type:"line",source:k,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]}}),[B]}function Io(){return H||p.value==="marker"||p.value==="polyline"||p.value==="polygon"||p.value==="rectangle"}function H0(u,g){if(!K)return;u.handlers.forEach(B=>{try{K.off(B.type,B.layerId,B.handler)}catch{}});const k=[];g.forEach(B=>{const F=ce=>{if(Io())return;if(!ce?.features?.length){Qe(u.id);return}const pe=ce.features[0]?.properties??{},Ee=xt(u.config,pe);if(!Ee.length){Qe(u.id);return}Ae.value={layerId:u.id,entries:Ee,point:{x:ce.point.x,y:ce.point.y}}},G=()=>Qe(u.id);K.on("mousemove",B,F),K.on("mouseleave",B,G),k.push({layerId:B,type:"mousemove",handler:F},{layerId:B,type:"mouseleave",handler:G})}),u.handlers=k}function Oo(u,g){if(!K)return;u.layerIds=g,u.boundsIds=U0(u.config,u.id),H0(u,g);const k=u.visible?"visible":"none";[...u.layerIds,...u.boundsIds].forEach(B=>{K.getLayer(B)&&K.setLayoutProperty(B,"visibility",k)}),_t()}function tn(u){if(!K)return;zt(u),u.renderToken=(u.renderToken??0)+1;const g=u.renderToken,k=u.config,B=je(k);if(!B)return;const F=[],G=/\.v(?:m)?t(?:\?|$|\/)/i.test(B)||/\.pbf(?:\?|$)/i.test(B)||/\/vtile(?:\/|\?|$)/i.test(B)||String(k?.service??"").toLowerCase()==="vector"||String(k?.format??"").toLowerCase()==="mvt",ce=_n(k,B,Z.value);if(G&&ce){const pe=k.sourceLayer||k.layer||k.service_layer||k.dataset?.layer||k.id;K.addSource(u.sourceId,{type:"vector",tiles:[B],minzoom:typeof k.minzoom=="number"?k.minzoom:0,maxzoom:typeof k.maxzoom=="number"?k.maxzoom:22}),(async()=>{try{if(!K||!K.getSource(u.sourceId)||u.renderToken!==g)return;const Ee=await ce.render({map:K,overlayId:u.id,sourceId:u.sourceId,sourceLayer:pe,url:B,config:k});if(!K||!K.getSource(u.sourceId)||u.renderToken!==g){Ee.forEach(Pe=>{K.getLayer(Pe)&&K.removeLayer(Pe)});return}Oo(u,Ee)}catch(Ee){u.renderToken===g&&console.error(`Failed to render map layer preset "${ce.id}"`,Ee)}})();return}if(G){const pe=k.sourceLayer||k.layer||k.service_layer||k.dataset?.layer||k.id;K.addSource(u.sourceId,{type:"vector",tiles:[B],minzoom:typeof k.minzoom=="number"?k.minzoom:0,maxzoom:typeof k.maxzoom=="number"?k.maxzoom:22});const Ee=Array.isArray(k.style?.types)?k.style.types.map(Ft=>String(Ft).toLowerCase()):[String(k.style?.type??"polygon").toLowerCase()],Pe=vt(k),Mt=k.style?.opacity??.5,Go=Ft=>{if(Ft==="point"){const vn=`vs-ov-point-${u.id}`;K.addLayer({id:vn,type:"circle",source:u.sourceId,"source-layer":pe,paint:{"circle-color":Pe,"circle-radius":k.style?.radius??5,"circle-opacity":Mt}}),F.push(vn);return}if(Ft==="polyline"||Ft==="line"){const vn=`vs-ov-line-${u.id}`;K.addLayer({id:vn,type:"line",source:u.sourceId,"source-layer":pe,layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":Pe,"line-width":k.style?.width??2,"line-opacity":Mt}}),F.push(vn);return}const Hl=`vs-ov-fill-${u.id}`,ql=`vs-ov-border-${u.id}`;K.addLayer({id:Hl,type:"fill",source:u.sourceId,"source-layer":pe,paint:{"fill-color":Pe,"fill-opacity":Mt}}),K.addLayer({id:ql,type:"line",source:u.sourceId,"source-layer":pe,paint:{"line-color":k.style?.stroke??k.style?.color??"#2563eb","line-width":k.style?.width??1,"line-opacity":Mt}}),F.push(Hl,ql)};[...new Set(Ee)].forEach(Ft=>Go(Ft)),Oo(u,F);return}else{K.addSource(u.sourceId,_o(B,k,{safe:!1}));const pe=`vs-ov-raster-${u.id}`;K.addLayer({id:pe,type:"raster",source:u.sourceId,paint:{"raster-opacity":k.style?.opacity??1}}),F.push(pe)}Oo(u,F)}function wn(){if(!K)return;const g={type:"FeatureCollection",features:pt(Y.value??he.value).map(k=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:k}}))};K.getSource(Un)?K.getSource(Un).setData(g):K.addSource(Un,{type:"geojson",data:g}),K.getLayer(Zt)||K.addLayer({id:Zt,type:"line",source:Un,paint:{"line-color":"#2563eb","line-width":2,"line-opacity":.8,"line-dasharray":[2,2]}})}function q0(u){if(!K||i.value)return;const g=le[u];if(!g)return;g.visible=!g.visible;const k=g.visible?"visible":"none";[...g.layerIds,...g.boundsIds].forEach(B=>{K.getLayer(B)&&K.setLayoutProperty(B,"visibility",k)}),_t(),g.visible||Qe(u)}function $l(u){if(!K)return;const g=Ue[u];if(!g?.url)return;const k=ct(u),B=Pt(u);K.getLayer(B)&&K.removeLayer(B),K.getSource(k)&&K.removeSource(k),K.addSource(k,_o(g.url,g,{safe:!0}));const F=g?.opacity??g?.style?.opacity,G=typeof F=="number"?F:Wm;K.addLayer({id:B,type:"raster",source:k,paint:{"raster-opacity":G}})}function W0(u){if(!K)return;const g=ct(u),k=Pt(u);K.getLayer(k)&&K.removeLayer(k),K.getSource(g)&&K.removeSource(g)}function Al(){K&&We.value.forEach(u=>$l(u))}function K0(u){if(!K||i.value||!Ue[u])return;We.value.includes(u)?(We.value=We.value.filter(k=>k!==u),W0(u)):(We.value=[...We.value,u],$l(u)),_t()}function _t(){if(!K)return;const u=We.value.map(Ee=>Pt(Ee)).filter(Ee=>K.getLayer(Ee)),g=[],k=[],B=[],F=[];ue.value.forEach(Ee=>{const Pe=le[Ee];if(!Pe)return;const Mt=String(Pe.config?.url??""),Go=/\.v(?:m)?t(?:\?|$|\/)/i.test(Mt)||/\/vtile(?:\/|\?|$)/i.test(Mt)||Yo(Pe.config,Mt,Z.value),Ft=/\.png(?:\?|$)/i.test(Mt);Go?B.push(...Pe.layerIds):Ft?g.push(...Pe.layerIds):k.push(...Pe.layerIds),F.push(...Pe.boundsIds)});const G=[...u,...g,...k,...B,...F];G.forEach(Ee=>{K.getLayer(Ee)&&K.moveLayer(Ee)}),K.getLayer(Zt)&&K.moveLayer(Zt);const pe=(K.getStyle?.()?.layers??[]).map(Ee=>String(Ee?.id??"")).filter(Ee=>Ee.startsWith("gl-draw-"));if(pe.forEach(Ee=>{K.getLayer(Ee)&&K.moveLayer(Ee)}),K.getLayer(Tr)){const Ee=G.find(Pe=>K.getLayer(Pe))??(K.getLayer(Zt)?Zt:null)??pe.find(Pe=>K.getLayer(Pe));Ee&&K.moveLayer(Tr,Ee)}}function G0(u){if(!de[u]||(Oe.value=u,!K))return;const g=ze();if(!g)return;const k=K.getSource("rasterSource");if(k&&typeof k.setTiles=="function"){k.setTiles([g]),_t();return}const B=K.getCenter?.(),F=K.getZoom?.(),G=fe?.getAll?.();K.setStyle(Qt(g)),K.once("style.load",()=>{if(K&&(B&&Number.isFinite(F)&&K.jumpTo({center:[B.lng,B.lat],zoom:F}),wn(),Al(),ue.value.forEach(ce=>{const pe=le[ce];pe&&tn(pe)}),_t(),G?.features?.length&&fe))try{G.features.forEach(ce=>fe.add(ce)),y.value=G.features.length}catch{y.value=0}})}function Po(u){return{type:"Feature",properties:{},geometry:u}}function Ct(u){if(!u)return null;try{return JSON.parse(JSON.stringify(u))}catch{return null}}function Ro(u){if(!u)return null;const g=Ct(u.geometry);return g?{...u.id!==void 0?{id:u.id}:{},type:"Feature",properties:{...u.properties??{}},geometry:g}:null}function to(u){if(!u)return[];const g=(F,G)=>{if(!F?.type)return[];const ce={...G??{}};return F.type==="MultiPoint"&&Array.isArray(F.coordinates)?F.coordinates.map(pe=>Po({type:"Point",coordinates:pe})).map(pe=>({...pe,properties:ce})):F.type==="MultiLineString"&&Array.isArray(F.coordinates)?F.coordinates.map(pe=>Po({type:"LineString",coordinates:pe})).map(pe=>({...pe,properties:ce})):F.type==="MultiPolygon"&&Array.isArray(F.coordinates)?F.coordinates.map(pe=>Po({type:"Polygon",coordinates:pe})).map(pe=>({...pe,properties:ce})):F.type==="GeometryCollection"&&Array.isArray(F.geometries)?F.geometries.flatMap(pe=>g(pe,ce)):[{type:"Feature",properties:ce,geometry:Ct(F)}]},k=F=>{if(!F)return null;if(F.type==="Feature"){const G=Ro(F);return G?g(G.geometry,G.properties):null}return F.geom?.type&&Array.isArray(F.geom.coordinates)?g({type:F.geom.type,coordinates:F.geom.coordinates},F.properties??{}):F.type==="GeometryCollection"&&Array.isArray(F.geometries)?g(F,F.properties??{}):typeof F.type=="string"&&Array.isArray(F.coordinates)?g(Ct(F),F.properties??{}):null};if(u.type==="FeatureCollection")return(u.features??[]).flatMap(k).filter(Boolean);if(Array.isArray(u))return u.flatMap(F=>F?.type==="FeatureCollection"?to(F):[k(F)]).flat().filter(Boolean);const B=k(u);return B?Array.isArray(B)?B:[B]:[]}function Nl(u){if(!u.length)return null;if(!c.value)return Ct(u[0]?.geometry??null);const g=u.map(G=>Ct(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 Ml(u){if(!u)return"__null__";try{return JSON.stringify(u)}catch{return"__invalid__"}}function Y0(u,g){if(!Array.isArray(u)||!Array.isArray(g)||u.length<2||g.length<2)return!1;const k=1e-12;return Math.abs(Number(u[0])-Number(g[0]))<k&&Math.abs(Number(u[1])-Number(g[1]))<k}function Fl(u,g){if(!Array.isArray(u)||u.length<4)return null;const B=Y0(u[0],u[u.length-1])?u.slice(0,-1):u.slice();return!Number.isInteger(g)||g<0||g>=B.length||B.length<=3||(B.splice(g,1),B.length<3)?null:[...B,[...B[0]]]}function Dl(u,g){if(!Array.isArray(u)||u.length<2||!Number.isInteger(g)||g<0||g>=u.length||u.length<=2)return null;const k=u.slice();return k.splice(g,1),k.length<2?null:k}function X0(u,g){const k=Ct(u);if(!k||!Array.isArray(g))return null;if(k.type==="LineString"){const[B]=g,F=Dl(k.coordinates,B);return F?(k.coordinates=F,k):null}if(k.type==="MultiLineString"){const[B,F]=g,G=k.coordinates?.[B],ce=Dl(G,F);return ce?(k.coordinates[B]=ce,k):null}if(k.type==="Polygon"){const[B,F]=g,G=k.coordinates?.[B],ce=Fl(G,F);return ce?(k.coordinates[B]=ce,k):null}if(k.type==="MultiPolygon"){const[B,F,G]=g,ce=k.coordinates?.[B]?.[F],pe=Fl(ce,G);return pe?(k.coordinates[B][F]=pe,k):null}return null}function Z0(u){return u?u.split(".").map(g=>Number(g)).filter(g=>Number.isInteger(g)&&g>=0):[]}function Tl(u){return!fe||!u?null:typeof fe.get=="function"?fe.get(u)??null:fe.getAll?.()?.features?.find(k=>String(k?.id??"")===u)??null}function Ll(u){const g=u?.properties?.id??u?.id;return g==null||g===""?null:String(g)}function J0(u){if(!K||!u)return null;const g=[[u.x-8,u.y-8],[u.x+8,u.y+8]],B=K.queryRenderedFeatures(g).find(F=>{const G=String(F?.properties?.meta??"");return G&&G!=="feature"?!1:!!Ll(F)});return Ll(B)}function Q0(u,g){if(!fe||!u||!g.length)return;const k=Tl(u);if(!k?.geometry)return;const B=X0(k.geometry,g);if(!B)return;const F={...k,id:k.id??u,geometry:B};ne=!0,z=!0;try{fe.delete(u),fe.add(F)}finally{z=!1,ne=!1}jt(),Nt()}function eb(u){if(!K||!fe||i.value||v.isRulerActive.value||p.value!=="edit")return;const g=u?.point;if(!g)return;const k=[[g.x-8,g.y-8],[g.x+8,g.y+8]],F=K.queryRenderedFeatures(k).find(ce=>ce?.properties?.meta==="vertex"&&ce?.properties?.parent&&ce?.properties?.coord_path);if(!F)return;u?.originalEvent?.preventDefault?.(),u?.originalEvent?.stopPropagation?.();const G=Z0(String(F.properties.coord_path));G.length&&Q0(String(F.properties.parent),G)}function tb(u){const g=Pl(u);if(!g)return null;const[[k,B],[F,G]]=g;return{lat:(B+G)/2,lng:(k+F)/2}}function Il(u){if(!Array.isArray(u)||u.length<3)return 0;const g=(B,F)=>{const G=B*2003750834e-2/180,ce=Math.log(Math.tan((90+F)*Math.PI/360))/(Math.PI/180);return[G,ce*2003750834e-2/180]};let k=0;for(let B=0;B<u.length-1;B+=1){const[F,G]=g(Number(u[B][0]),Number(u[B][1])),[ce,pe]=g(Number(u[B+1][0]),Number(u[B+1][1]));k+=F*pe-ce*G}return Math.abs(k/2)/1e6}function nb(u){if(!u?.type||!u?.coordinates)return null;if(u.type==="Polygon"){const g=u.coordinates?.[0];return Array.isArray(g)?Il(g):null}return u.type==="MultiPolygon"?u.coordinates.reduce((g,k)=>{const B=k?.[0];return Array.isArray(B)?g+Il(B):g},0):null}function zo(u){if(!u){m.value=null;return}const g=tb(u);if(!g){m.value=null;return}m.value={type:String(u.type??"Feature"),center:g,areaKm2:nb(u)}}function jo(u){if(!u){const B=nt[nt.length-1],F=Ct(B?.geometry??null);At=F,zo(F);return}const g=nt.find(B=>String(B?.id??"")===String(u))??null,k=Ct(g?.geometry??null);At=k,zo(k)}function Uo(u){f.value=(u??[]).map((g,k)=>{const B=String(g?.id??`feature-${k+1}`),F=Ho(String(g?.geometry?.type??"Feature"));return{id:B,label:`${F} ${k+1}`}})}function Ho(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 Ol(u,g){if(!Array.isArray(u)||!Array.isArray(g)||u.length!==2||g.length!==2)return!1;const k=1e-9;return Math.abs(Number(u[0])-Number(g[0]))<k&&Math.abs(Number(u[1])-Number(g[1]))<k}function Pl(u){if(!u)return null;let g=1/0,k=1/0,B=-1/0,F=-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]),Ee=Number(ce[1]);g=Math.min(g,pe),k=Math.min(k,Ee),B=Math.max(B,pe),F=Math.max(F,Ee);return}ce.forEach(G)}};return G(u.coordinates),!Number.isFinite(g)||!Number.isFinite(k)?null:[[g,k],[B,F]]}function Rl(u){if(!K||!u)return;const g=Pl(u);if(!g)return;const[[k,B],[F,G]]=g;if(k===F&&B===G){K.easeTo({center:[k,B],zoom:Math.max(I.value,14)}),Q();return}K.fitBounds(g,{padding:30,duration:250,maxZoom:18}),Q()}function qo(){if(!fe){y.value=0;return}const u=fe.getAll();y.value=u?.features?.length??0}function xn(){if(!fe)return null;const g=fe.getAll?.()?.features??[],k=G=>!!G&&g.some(ce=>String(ce?.id??"")===String(G??"")),B=fe.getSelectedIds?.();if(Array.isArray(B)&&B.length>0){const G=B[0];return G!=null?String(G):null}if(k(Ge))return String(Ge);if(!g.length)return null;const F=c.value?g[g.length-1]:g[0];return F?.id!==void 0&&F?.id!==null?String(F.id):null}function jt(){if(!fe)return;const u=fe.getAll();if(y.value=u?.features?.length??0,!u?.features?.length){nt=[],f.value=[],At=null,Ge=null,m.value=null,z||(wt="__null__",r("update:modelValue",null));return}const g=(u.features??[]).map(Ro).filter(Boolean);if(nt=g,Uo(g),Ge=xn(),jo(Ge),!z){const k=Nl(g);wt=Ml(k),r("update:modelValue",k)}}function no(){if(!fe)return;(fe.getAll()?.features||[]).forEach(g=>fe.delete(g.id)),f.value=[],qo()}function oo(u){if(!fe)return;const g=to(u),k=c.value?g:g.slice(0,1);z=!0,no(),k.forEach(G=>{try{fe.add(G)}catch{}}),z=!1,nt=(fe.getAll?.()?.features??k).map(Ro).filter(Boolean),Uo(nt),Ge=null;const F=Ct(nt[nt.length-1]?.geometry??null);At=Ct(F),qo(),zo(F),F&&(Rl(F),i.value||Nt())}function ob(){fe&&(z=!0,no(),nt.forEach(u=>{try{fe.add(u)}catch{}}),z=!1,Uo(nt),qo(),jo(Ge))}function nn(){if(fe){try{fe.changeMode("simple_select",{featureIds:[]})}catch{}p.value=""}}function ro(u){if(i.value||!fe)return;v.isRulerActive.value&&v.closeRuler(),H=!0,nn(),p.value=u;const g=u==="marker"?"draw_point":u==="polyline"?"draw_line_string":u==="rectangle"?"draw_rectangle":"draw_polygon";c.value||(z=!0,no(),z=!1);try{fe.changeMode(g)}catch{p.value=""}finally{requestAnimationFrame(()=>{H=!1})}}function Nt(u){if(i.value||!fe||!fe.getAll()?.features?.length)return;const k=u||xn();if(k)try{fe.changeMode("direct_select",{featureId:k}),Ge=k,jo(Ge),p.value="edit"}catch{p.value=""}}function rb(u){i.value||!fe||!u||Nt(u)}function lb(){if(!(i.value||!fe)){if(c.value){const u=xn();if(u)try{en=!0,fe.delete(u),en=!1,jt();const g=xn();g?Nt(g):nn();return}catch{en=!1}}nn(),no(),nt=[],f.value=[],Ge=null,wt="__null__",m.value=null,r("update:modelValue",null)}}function ab(){i.value||!At||Rl(At)}function sb(u){if(!K||!$t)return;const g=[u[1],u[0]];re||(re=new $t.Marker({color:"#2563eb"})),re.setLngLat(g).addTo(K),K.easeTo({center:g,zoom:13,duration:250})}function ib(){i.value||(we.value=!we.value)}function zl(u){if(!we.value)return;const g=ee.value;g&&!g.contains(u.target)&&(we.value=!1)}function cb(){db()}function db(){i.value||(we.value=!1,ie.value={srid:"",encoding:"UTF-8",file:""},$e.value=!0)}function ub(){$e.value=!1,Me.value=!1,Fe.value=!1}function pb(u){return u?typeof u=="string"?u:typeof u=="object"&&u&&"file_path"in u?String(u.file_path??""):"":""}function mb(u){const B=((Array.isArray(u)?u[0]:u)?.features??[]).map(F=>Array.isArray(F)?F[0]:F).filter(Boolean).map(F=>F?.type==="Feature"?F:{type:"Feature",properties:{},geometry:F});return B.length?{type:"FeatureCollection",features:B}:null}async function fb(){if(i.value||!fe||Me.value)return;const u=pb(ie.value.file);if(!u){ge.notify({type:"warning",title:"Імпорт геометрії",message:"Оберіть файл для імпорту."});return}Me.value=!0;try{const g=await fetch("/api/gis-convert",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({srid:ie.value.srid,encoding:ie.value.encoding||"UTF-8",filepath:u,limit:!0})}),k=await g.json().catch(()=>null);if(!g.ok)throw new Error(k?.message||k?.error||`Код помилки: ${g.status}`);const B=mb(k);if(!B){ge.notify({type:"warning",title:"Імпорт геометрії",message:"Файл не містить коректні геодані."});return}oo(B),jt(),$e.value=!1,ge.notify({type:"success",title:"Успіх",message:"Геометрію успішно імпортовано."})}catch(g){ge.notify({type:"error",title:"Помилка",message:g?.message||"Помилка імпорту файла геометрії"})}finally{Me.value=!1}}function hb(){i.value||(se.value=[],we.value=!1,be.value=!0)}function gb(){be.value=!1,se.value=[]}function yb(){if(i.value||!fe)return;const u=Mu(Le.value.coordinates??"",Le.value.format||"decimal",Le.value.order||"lat-lon");if(!u.ok){se.value=u.errors,bb(u.errors);return}se.value=[],oo({type:"Polygon",coordinates:[u.ring]}),jt(),be.value=!1,u.wasClosedAutomatically&&ge.notify({type:"info",title:"Імпорт координат",message:"Полігон був автоматично замкнений (перша і остання точки різнилися)."})}function bb(u){if(!u.length)return;const g=5;u.slice(0,g).forEach(k=>{const B=k.line>0?`Рядок ${k.line}`:"Загальна помилка";ge.notify({type:"warning",title:"Імпорт координат",message:`${B} — ${k.message}`})}),u.length>g&&ge.notify({type:"warning",title:"Імпорт координат",message:`Ще помилок: ${u.length-g}`})}function kb(){if(i.value||!fe)return;const u=fe.getAll(),g=new Blob([JSON.stringify(u,null,2)],{type:"application/json"}),k=URL.createObjectURL(g),B=document.createElement("a");B.href=k,B.download="data.geojson",B.click(),URL.revokeObjectURL(k)}e.onMounted(async()=>{if(window.addEventListener("click",zl,!0),!h.value)return;const u=await eo();$t=u.maplibregl,Rt=u.MapboxDraw;const g=ze();g&&(K=new $t.Map({container:h.value,style:Qt(g),center:[q.value[0],q.value[1]],zoom:I.value,attributionControl:!1}),w.value=K,K.addControl(new $t.NavigationControl({showCompass:!0}),"bottom-right"),K.on("error",k=>{const B=k?.error?.message??k?.message??"";em(B)}),K.on("load",()=>{if(!(!Rt||!K)){if(fe=new Rt({displayControlsDefault:!1,modes:{...Rt.modes,draw_rectangle:me()},controls:{point:!1,line_string:!1,polygon:!1,trash:!1},styles:Ne}),K.addControl(fe),K.on("click",k=>{if(v.isRulerActive.value){const F=k?.lngLat;if(!F)return;b.value?.addPoint?.({lat:F.lat,lng:F.lng});return}if(!fe||i.value||p.value!=="edit")return;const B=J0(k?.point);!B||B===Ge||requestAnimationFrame(()=>{!fe||i.value||Nt(B)})}),K.on("draw.create",()=>{if(fe&&!v.isRulerActive.value){if(!c.value){const k=fe.getAll();if(k.features.length>1){const B=k.features[k.features.length-1];z=!0,k.features.slice(0,-1).forEach(F=>fe.delete(F.id)),z=!1,B&&(z=!0,fe.add(B),z=!1)}}jt(),Nt()}}),K.on("draw.update",k=>{if(Gt||v.isRulerActive.value||Io())return;const B=Array.isArray(k?.features)?k.features:[],F=k?.action==="move"&&B.length>0&&B.every(G=>G?.geometry?.type==="Point");if(k?.action==="move"){if(F){jt();return}if(Gt=!0,ob(),Gt=!1,p.value==="edit"){const G=xn(),ce=G?Tl(G):fe?.getAll?.()?.features?.[0];if(ce?.id)try{fe.changeMode("direct_select",{featureId:ce.id}),Ge=String(ce.id)}catch{p.value=""}}return}jt()}),K.on("draw.delete",()=>{ne||en||v.isRulerActive.value||p.value==="marker"||p.value==="polyline"||p.value==="polygon"||p.value==="rectangle"||(jt(),fe?.getAll?.()?.features?.length||(Ge=null),p.value="",nn())}),K.on("draw.selectionchange",k=>{if(!fe||Gt||v.isRulerActive.value||p.value==="marker"||p.value==="polyline"||p.value==="polygon"||p.value==="rectangle")return;const B=k?.features?.[0]?.id!==void 0&&k?.features?.[0]?.id!==null?String(k.features[0].id):null;if(!i.value&&B){if(p.value==="edit"&&Ge===B)return;requestAnimationFrame(()=>{!fe||i.value||Nt(B)});return}const F=fe.getSelectedIds?.(),G=Array.isArray(F)&&F.length>0?String(F[0]):null;if(!i.value&&G){if(p.value==="edit"&&Ge===G)return;requestAnimationFrame(()=>{!fe||i.value||Nt(G)});return}try{fe.changeMode("simple_select",{featureIds:[]})}catch{}}),ae.value!==void 0){const k=ae.value;ae.value=void 0,requestAnimationFrame(()=>{fe&&oo(k)})}wn(),Al(),ue.value.forEach(k=>{const B=le[k];B&&tn(B)}),_t(),N()}}),K.on("contextmenu",eb),K.on("moveend",Q),K.on("zoomend",()=>{K&&(I.value=K.getZoom())}))}),e.onUnmounted(()=>{typeof document<"u"&&(document.body.style.overflow=""),typeof window<"u"&&window.removeEventListener("keydown",Ko),te&&(clearTimeout(te),te=null),v.isRulerActive.value&&v.closeRuler(),window.removeEventListener("click",zl,!0),Object.values(le).forEach(u=>{K&&zt(u)}),Qe(),re?.remove&&re.remove(),re=null,K?.remove&&K.remove(),K=null,fe=null,w.value=null}),e.watch(()=>n.modelValue,u=>{if(!fe){ae.value=u;return}if(Io())return;const g=Nl((c.value?to(u):to(u).slice(0,1))||[]),k=Ml(g);if(wt&&k===wt){wt=null;return}wt=null,oo(u)},{deep:!0}),e.watch(()=>P.value,u=>{const g=Array.isArray(u)?u:[],k=[],B=new Set;g.forEach((F,G)=>{if(!F)return;const ce=Je(F,G);k.push(ce),B.add(ce);const pe={...F,id:ce},Ee=le[ce],Pe=Ee?.visible??!!pe.visible;Ee&&K&&zt(Ee),le[ce]={id:ce,config:pe,visible:Pe,sourceId:`vs-ov-src-${ce}`,layerIds:[],boundsIds:[],handlers:[],renderToken:Ee?.renderToken??0}}),Object.keys(le).forEach(F=>{if(B.has(F))return;const G=le[F];G&&K&&zt(G),delete le[F]}),ue.value=k,K&&(ue.value.forEach(F=>{const G=le[F];G&&tn(G)}),_t())},{immediate:!0,deep:!0}),e.watch(()=>Y.value,()=>{K&&(wn(),ue.value.forEach(u=>{const g=le[u];g&&tn(g)}),_t())},{deep:!0}),e.watch(()=>A.value,async u=>{if(he.value=[],!u){K&&(wn(),ue.value.forEach(g=>{const k=le[g];k&&tn(k)}),_t());return}try{const g=await fetch(`https://data.gki.com.ua/api-user/atu/${u}`);if(!g?.ok)return;const B=(await g.json())?.geometry?.coordinates;Array.isArray(B)&&B.length&&(he.value=B)}catch(g){console.error("Failed to fetch KATOTTG bounds",g)}finally{if(!K)return;wn(),ue.value.forEach(g=>{const k=le[g];k&&tn(k)}),_t()}},{immediate:!0}),e.watch(()=>j.value,u=>{if(!Array.isArray(u)||u.length!==2)return;const g=[Number(u[0]),Number(u[1])];if(Ol(q.value,g)||(q.value=[...g],!K))return;const k=K.getCenter?.();k&&Ol([k.lng,k.lat],q.value)||K.easeTo({center:[q.value[0],q.value[1]]})},{deep:!0}),e.watch(()=>oe.value,u=>{typeof u=="number"&&(I.value=u,K&&K.setZoom(u))}),e.watch(()=>m.value?.center,u=>{u&&M(u.lng,u.lat,K?.getZoom?.())},{deep:!0}),e.watch(i,u=>{u&&nn()}),e.watch(y,u=>{if(u>0){i.value||Nt();return}H||nn()});const jl=e.computed(()=>f.value.length>0||!!m.value),Wo=e.computed(()=>{const u=f.value,g=u.length>1;return u.length?u.map(k=>({id:k.id,label:g?k.label:m.value?.type?Ho(m.value.type):k.label,interactive:g})):m.value?.type?[{id:"__feature",label:Ho(m.value.type),interactive:!1}]:[]});function Ul(){setTimeout(()=>{K?.resize&&K.resize()},50)}function Ko(u){u.key==="Escape"&&d.value&&(d.value=!1)}return e.watch(d,u=>{typeof document<"u"&&(document.body.style.overflow=u?"hidden":""),typeof window<"u"&&(u?window.addEventListener("keydown",Ko):window.removeEventListener("keydown",Ko)),Ul()}),e.watch(jl,Ul),(u,g)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body",disabled:!d.value},[e.createElementVNode("div",{class:e.normalizeClass(["vs-map-wrapper w-full",{fullscreen:d.value}])},[e.createElementVNode("div",tm,[e.createElementVNode("div",{ref_key:"mapContainer",ref:h,class:"vs-map-canvas"},null,512),x.value.search||x.value.import||x.value.export?(e.openBlock(),e.createElementBlock("div",nm,[x.value.search?(e.openBlock(),e.createBlock(Ju,{key:0,onGoToCoordinates:sb})):e.createCommentVNode("",!0),x.value.import||x.value.export?(e.openBlock(),e.createElementBlock("div",om,[e.createElementVNode("div",rm,[x.value.import?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"importMenuRef",ref:ee,class:"relative"},[e.createElementVNode("button",{type:"button",class:"vs-map-action-btn",onClick:ib,disabled:i.value},[g[10]||(g[10]=e.createTextVNode(" Імпорт ",-1)),e.createVNode(e.unref(X.ChevronDown),{class:e.normalizeClass(["h-3.5 w-3.5 shrink-0 transition-transform",{"rotate-180":we.value}])},null,8,["class"])],8,lm),we.value?(e.openBlock(),e.createElementBlock("div",am,[x.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:cb}," З файлу ")):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:hb}," З координат ")])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),x.value.export?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"vs-map-action-btn",onClick:kb,disabled:i.value||y.value===0}," Експорт ",8,sm)):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createVNode(e.unref(ge.VsModal),{visible:$e.value,"onUpdate:visible":g[1]||(g[1]=k=>$e.value=k),title:"Імпорт геометрії",size:"lg",teleport:e.unref(s)},{default:e.withCtx(()=>[Fe.value||Me.value?(e.openBlock(),e.createElementBlock("div",im,[e.createVNode(e.unref(X.LoaderCircle),{class:"h-4 w-4 shrink-0 animate-spin"}),e.createElementVNode("span",null,e.toDisplayString(Re.value),1)])):e.createCommentVNode("",!0),e.createVNode(rt,{schema:Se.value,values:ie.value,"onUpdate:values":g[0]||(g[0]=k=>ie.value=k)},null,8,["schema","values"]),e.createElementVNode("div",cm,[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:ub,disabled:Fe.value||Me.value}," Скасувати ",8,dm),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 inline-flex items-center gap-2",onClick:fb,disabled:i.value||Fe.value||Me.value||!ie.value.file},[Me.value?(e.openBlock(),e.createBlock(e.unref(X.LoaderCircle),{key:0,class:"h-4 w-4 animate-spin"})):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(Me.value?"Обробка...":"Додати"),1)],8,um)])]),_:1},8,["visible","teleport"]),e.createVNode(e.unref(ge.VsModal),{visible:be.value,"onUpdate:visible":g[3]||(g[3]=k=>be.value=k),title:"Імпорт координат полігону",size:"lg",teleport:e.unref(s)},{default:e.withCtx(()=>[e.createVNode(rt,{schema:qe,values:Le.value,"onUpdate:values":g[2]||(g[2]=k=>Le.value=k)},null,8,["values"]),e.createElementVNode("div",pm,[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:gb}," Скасувати "),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:yb,disabled:i.value}," Побудувати ",8,mm)])]),_:1},8,["visible","teleport"]),e.createElementVNode("div",fm,[e.createElementVNode("div",hm,[ut.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[x.value.point?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="marker"}]),title:"Точка",onClick:g[4]||(g[4]=k=>ro("marker")),disabled:i.value},[e.createVNode(e.unref(X.MapPin),{class:"vs-btn-icon"})],10,gm)):e.createCommentVNode("",!0),x.value.line?(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="polyline"}]),title:"Лінія",onClick:g[5]||(g[5]=k=>ro("polyline")),disabled:i.value},[e.createVNode(Qd,{class:"vs-btn-icon"})],10,ym)):e.createCommentVNode("",!0),x.value.polygon?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="polygon"}]),title:"Полігон",onClick:g[6]||(g[6]=k=>ro("polygon")),disabled:i.value},[e.createVNode(ou,{class:"vs-btn-icon"})],10,bm)):e.createCommentVNode("",!0),x.value.rectangle?(e.openBlock(),e.createElementBlock("button",{key:3,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="rectangle"}]),title:"Прямокутник",onClick:g[7]||(g[7]=k=>ro("rectangle")),disabled:i.value},[e.createVNode(su,{class:"vs-btn-icon"})],10,km)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),ut.value?(e.openBlock(),e.createElementBlock("div",wm)):e.createCommentVNode("",!0),x.value.ruler?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":e.unref(v).isRulerActive.value}]),title:"Лінійка",onClick:C},[e.createVNode(e.unref(X.Ruler),{class:"vs-btn-icon"})],2)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"vs-btn",onClick:g[8]||(g[8]=k=>d.value=!d.value),title:d.value?"Згорнути":"На весь екран"},[d.value?(e.openBlock(),e.createBlock(e.unref(X.Minimize),{key:0,class:"vs-btn-icon"})):(e.openBlock(),e.createBlock(e.unref(X.Maximize),{key:1,class:"vs-btn-icon"}))],8,xm)])]),x.value.ruler&&e.unref(v).isRulerActive.value?(e.openBlock(),e.createBlock(qp,{key:1,ref_key:"rulerPanelRefEl",ref:b,onClose:g[9]||(g[9]=k=>e.unref(v).closeRuler()),onTabChange:e.unref(v).onRulerTabChange,onPointsChange:e.unref(v).onRulerPointsChange,onShapeClosedChange:e.unref(v).onRulerShapeClosedChange},null,8,["onTabChange","onPointsChange","onShapeClosedChange"])):e.createCommentVNode("",!0),x.value.ruler&&e.unref(v).isRulerActive.value&&e.unref(v).hasRulerPoints.value?(e.openBlock(),e.createBlock(Wp,{key:2,map:w.value,points:e.unref(v).rulerPoints.value,"is-shape-closed":e.unref(v).rulerShapeClosed.value,"label-mode":e.unref(v).rulerActiveTab.value},null,8,["map","points","is-shape-closed","label-mode"])):e.createCommentVNode("",!0),De.value.length?(e.openBlock(),e.createElementBlock("div",{key:3,class:"absolute z-[1500] pointer-events-none",style:e.normalizeStyle(Te.value)},[e.createElementVNode("div",vm,[e.createElementVNode("dl",_m,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(De.value,k=>(e.openBlock(),e.createElementBlock("div",{key:`${k.key}-${k.value}`,class:"flex justify-between gap-2"},[e.createElementVNode("dt",Cm,e.toDisplayString(k.key),1),e.createElementVNode("dd",Em,e.toDisplayString(k.value),1)]))),128))])])],4)):e.createCommentVNode("",!0),e.createElementVNode("div",Bm,[e.createVNode(Au,{compact:"",basemaps:e.unref(de),"active-base-key":Oe.value,"tile-overlays":e.unref(Ue),"active-tile-overlay-keys":We.value,"vector-overlays":Ke.value,"preview-tile":J.value,disabled:i.value,onOnLayerChange:G0,onOnOverlayToggle:K0,onOnVectorOverlayToggle:q0},null,8,["basemaps","active-base-key","tile-overlays","active-tile-overlay-keys","vector-overlays","preview-tile","disabled"])])]),jl.value?(e.openBlock(),e.createElementBlock("div",Vm,[e.createElementVNode("div",Sm,[e.createElementVNode("div",$m,[g[11]||(g[11]=e.createElementVNode("span",{class:"vs-map-status__label"},"Тип:",-1)),e.createElementVNode("div",Am,[Wo.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(Wo.value,(k,B)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:k.id},[k.interactive?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:e.normalizeClass(["vs-map-status__chip",{"vs-map-status__chip--active":k.id===e.unref(Ge)}]),onClick:F=>rb(k.id),disabled:i.value},e.toDisplayString(k.label),11,Nm)):(e.openBlock(),e.createElementBlock("span",Mm,e.toDisplayString(k.label),1)),B<Wo.value.length-1?(e.openBlock(),e.createElementBlock("span",Fm,", ")):e.createCommentVNode("",!0)],64))),128)):(e.openBlock(),e.createElementBlock("span",Dm,"—"))])]),e.createElementVNode("div",Tm,[e.createElementVNode("span",Lm,[g[12]||(g[12]=e.createElementVNode("span",{class:"vs-map-status__label"},"Центр:",-1)),m.value?(e.openBlock(),e.createElementBlock("span",Im,e.toDisplayString(m.value.center.lng.toFixed(5))+", "+e.toDisplayString(m.value.center.lat.toFixed(5)),1)):(e.openBlock(),e.createElementBlock("span",Om,"—"))]),m.value&&m.value.areaKm2!==null?(e.openBlock(),e.createElementBlock("span",Pm,[g[13]||(g[13]=e.createElementVNode("span",{class:"vs-map-status__label"},"Площа:",-1)),e.createElementVNode("span",Rm,e.toDisplayString(m.value.areaKm2.toFixed(1))+" km²",1)])):e.createCommentVNode("",!0),e.createElementVNode("div",zm,[e.createElementVNode("button",{type:"button",class:"vs-status-btn vs-status-btn--zoom",title:"Масштаб до об'єкта",onClick:ab,disabled:i.value},[e.createVNode(e.unref(X.ZoomIn),{class:"vs-status-btn__icon"})],8,jm),e.createElementVNode("button",{type:"button",class:"vs-status-btn vs-status-btn--delete",title:"Видалити об'єкт",onClick:lb,disabled:i.value},[e.createVNode(e.unref(X.Trash2),{class:"vs-status-btn__icon"})],8,Um)])])])])):e.createCommentVNode("",!0)],2)],8,["disabled"]))}}),[["__scopeId","data-v-780ba2d7"]]),Xm=["data-focus"],Zm={class:"flex items-center"},Jm={class:"overflow-hidden text-ellipsis whitespace-nowrap rounded-sm text-[#333] text-[85%] px-0.5 py-[3px] pl-1.5 box-border"},Qm=["onClick","aria-label"],ef={key:0,class:"absolute text-gray-500 truncate pl-2"},tf={class:"flex-1 min-w-[2px]"},nf=["placeholder"],of={class:"flex items-center shrink-0"},rf=["disabled"],Ir=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 a=e.ref(null),l=e.ref(null),s=e.ref(null),c=e.ref(!1),i=e.ref(""),d=e.useModel(o,"modelValue"),h=e.computed(()=>n.placeholder||"Add tag…"),y=e.computed(()=>d.value?.length===0&&i.value===""),p=e.computed(()=>!n.disabled&&d.value?.length>0),m=e.computed(()=>n.disabled),f=async()=>{m.value||await e.nextTick(()=>s.value?.focus())},w=Z=>{const O=Z.trim();O!==""&&(!d.value||!Array.isArray(d.value)?d.value=[O]:n.unique?d.value.includes(O)||(d.value=[...d.value,O]):d.value=[...d.value,O],i.value="")},b=()=>{const Z=i.value;Z.trim()!==""&&w(Z),i.value=""},v=Z=>{const O=d.value.slice();O.splice(Z,1),r("update:modelValue",O)},C=()=>{r("update:modelValue",[])},V=()=>{m.value||(c.value=!0)},$=()=>{c.value=!1,!m.value&&b()},U=Z=>{const{key:O}=Z;O==="Enter"?(Z.preventDefault(),b()):O==="Backspace"&&i.value===""&&d.value.length>0&&v(d.value.length-1)};return(Z,O)=>(e.openBlock(),e.createElementBlock("div",{class:"flex gap-1 w-full",ref_key:"root",ref:a,onClick:O[1]||(O[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",c.value?"border-blue-500 ring-1 ring-blue-500":"",m.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),"data-focus":c.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:l},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(E,S)=>(e.openBlock(),e.createElementBlock("div",{key:S,class:"flex min-w-0 bg-[#e6e6e6] rounded-sm m-0.5 box-border"},[e.createElementVNode("div",Zm,[e.createElementVNode("div",Jm,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(_=>v(S),["stop"]),"aria-label":`Remove ${E}`},[e.createVNode(e.unref(X.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,Qm)]))),128)),y.value?(e.openBlock(),e.createElementBlock("div",ef,e.toDisplayString(h.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",tf,[m.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":O[0]||(O[0]=E=>i.value=E),onFocus:V,onBlur:$,onKeydown:U,placeholder:d.value&&d.value.length?"":void 0},null,40,nf)),[[e.vModelText,i.value]])])],512),e.createElementVNode("div",of,[p.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:m.value,onClick:e.withModifiers(C,["stop"])},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,rf)):e.createCommentVNode("",!0)])],10,Xm)],2)],512))}}),lf={class:"relative flex gap-1 bg-white w-full"},af=["disabled","placeholder"],Or=Be(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 a(s){const c={а:"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(i=>c[i]||i).join("").replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}const l=()=>{const s=t?.value?.[n.parent||""]?.toString(),c=a(s);r.value=c.toString()};return(s,c)=>(e.openBlock(),e.createElementBlock("div",lf,[e.withDirectives(e.createElementVNode("input",{ref:"vsText",disabled:s.disabled,placeholder:s.placeholder,"onUpdate:modelValue":c[0]||(c[0]=i=>r.value=i),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,af),[[e.vModelText,r.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200",onClick:l}," Gen ")]))}}),[["__scopeId","data-v-b0eba370"]]),sf={class:"relative flex gap-1 bg-white w-full"},cf=["disabled","placeholder"],df=["disabled"],uf={key:0},pf={key:1},Pr=Be(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),a=e.computed(()=>t.init!==!1),l=e.computed(()=>!!t.table&&!!t.code),s=()=>{if(!l.value)return"";const d=encodeURIComponent(String(t.table)),h=encodeURIComponent(String(t.code));return`/api/code-gen/${d}/${h}`},c=async()=>{if(!l.value||r.value)return;const d=s();if(d){r.value=!0;try{const y=await(await fetch(d)).text();n.value=y}finally{r.value=!1}}},i=()=>{a.value&&(n.value||c())};return e.onMounted(()=>{i()}),e.watch(()=>[t.table,t.code,t.init],()=>{i()}),(d,h)=>(e.openBlock(),e.createElementBlock("div",sf,[e.withDirectives(e.createElementVNode("input",{disabled:d.disabled,placeholder:d.placeholder,"onUpdate:modelValue":h[0]||(h[0]=y=>n.value=y),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,cf),[[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||!l.value,onClick:c},[r.value?(e.openBlock(),e.createElementBlock("span",pf,"...")):(e.openBlock(),e.createElementBlock("span",uf,"Gen"))],8,df)]))}}),[["__scopeId","data-v-6ee5237d"]]),mf={class:"w-full"},ff={ref:"sortableContainer",class:"flex flex-col gap-1"},hf=["onDragstart","onDrop"],gf={class:"cursor-move",type:"button"},yf={class:"w-1/3"},bf={class:"w-2/3"},kf=["onClick"],wf={key:0,class:"text-[14px] text-gray-700"},xf={class:"mt-2 w-full flex items-center"},vf=["disabled"],Rr=Be(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"),a=o,l=t,s=a.addButtonText??"Додати",c=a.ignore??[],i=e.ref([]),d=e.ref(null);(()=>{const b=a.parent&&r?.value?.[a.parent]||a.modelValue||{};i.value=Object.entries(b).filter(([v])=>!c.includes(v)).map(([v,C])=>({id:n("key-value-"),key:v,value:C}))})();function y(b){d.value=b}function p(b){if(d.value===null||d.value===b)return;const v=i.value.splice(d.value,1)[0];i.value.splice(b,0,v),d.value=null}const m=e.computed(()=>i.value.some(b=>b.key&&!b.value||!b.key&&b.value)),f=()=>{i.value.push({id:n("key-value-"),key:"",value:""})},w=b=>{i.value=i.value.filter(v=>v.id!==b)};return e.watch(i,b=>{const v={};b.forEach(V=>{V.key&&V.value!==void 0&&(v[V.key]=V.value)});const C={};c.length&&c.forEach(V=>{C[V]=a.parent?r?.value?.[a.parent]?.[V]:void 0}),r?.value&&a.parent&&(r.value[a.parent]={...C,...v}),l("update:modelValue",v)},{deep:!0}),(b,v)=>(e.openBlock(),e.createElementBlock("div",mf,[e.createElementVNode("div",ff,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(C,V)=>(e.openBlock(),e.createElementBlock("div",{key:C.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":d.value===V}]),draggable:"true",onDragstart:$=>y(V),onDragover:v[0]||(v[0]=e.withModifiers(()=>{},["prevent"])),onDrop:$=>p(V)},[e.createElementVNode("button",gf,[e.createVNode(e.unref(X.GripVertical),{class:"h-4 w-4"})]),e.createElementVNode("div",yf,[e.createVNode(Yt,{modelValue:C.key,"onUpdate:modelValue":$=>C.key=$,placeholder:"Ключ"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",bf,[e.createVNode(Yt,{modelValue:C.value,"onUpdate:modelValue":$=>C.value=$,placeholder:"Значення"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("button",{onClick:$=>w(C.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(X.X),{class:"h-4 w-4"})],8,kf)],42,hf))),128))],512),i.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",wf," Дані для відображення відсутні ")),e.createElementVNode("div",xf,[e.createElementVNode("button",{type:"button",onClick:f,disabled:m.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(X.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(e.unref(s)),1)],8,vf)])]))}}),[["__scopeId","data-v-d8c3f9d6"]]),_f={class:"w-full"},Cf={ref:"sortableContainer",class:"flex flex-col gap-1"},Ef=["onDragstart","onDrop"],Bf=["disabled"],Vf={class:"flex-1"},Sf=["onClick","disabled"],$f={key:0,class:"text-[14px] text-gray-700"},Af={class:"mt-2 w-full flex items-center"},Nf=["disabled"],zr=Be(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([]),a=e.ref(null),l=e.computed(()=>!!t.disabled),s=e.computed(()=>t.placeholder??""),c=e.computed(()=>t.addButtonText??"Додати");let i=!1;const d=b=>`${b}-${Math.random().toString(36).substring(2,15)}`,h=b=>{const v=b??n.value??[];r.value=v.map((C,V)=>({id:r.value[V]?.id??d("text-array"),value:C??""}))};h(),e.watch(()=>n.value,b=>{if(i){i=!1;return}h(b||[])},{deep:!0}),e.watch(r,b=>{i=!0,n.value=b.map(v=>v.value).filter(v=>v!=null&&v!=="")},{deep:!0});const y=e.computed(()=>l.value||r.value.some(b=>!b.value));function p(){y.value||(r.value=[...r.value,{id:d("text-array"),value:""}])}function m(b){l.value||(r.value=r.value.filter(v=>v.id!==b))}function f(b){l.value||(a.value=b)}function w(b){if(l.value||a.value===null||a.value===b)return;const v=[...r.value],[C]=v.splice(a.value,1);v.splice(b,0,C),r.value=v,a.value=null}return(b,v)=>(e.openBlock(),e.createElementBlock("div",_f,[e.createElementVNode("div",Cf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(C,V)=>(e.openBlock(),e.createElementBlock("div",{key:C.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":a.value===V}]),draggable:"true",onDragstart:$=>f(V),onDragover:v[0]||(v[0]=e.withModifiers(()=>{},["prevent"])),onDrop:$=>w(V)},[e.createElementVNode("button",{class:"cursor-move",type:"button",disabled:l.value},[e.createVNode(e.unref(X.GripVertical),{class:"h-4 w-4"})],8,Bf),e.createElementVNode("div",Vf,[b.inputType==="text"?(e.openBlock(),e.createBlock(Yt,{key:0,modelValue:C.value,"onUpdate:modelValue":$=>C.value=$,disabled:l.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),b.inputType==="tel"?(e.openBlock(),e.createBlock(po,{key:1,modelValue:C.value,"onUpdate:modelValue":$=>C.value=$,disabled:l.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),b.inputType==="email"?(e.openBlock(),e.createBlock(uo,{key:2,modelValue:C.value,"onUpdate:modelValue":$=>C.value=$,disabled:l.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),b.inputType==="mask"?(e.openBlock(),e.createBlock(En,{key:3,modelValue:C.value,"onUpdate:modelValue":$=>C.value=$,mask:b.mask,disabled:l.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","mask","disabled","placeholder"])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:$=>m(C.id),disabled:l.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(X.X),{class:"h-4 w-4"})],8,Sf)],42,Ef))),128))],512),r.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",$f," Дані для відображення відсутні ")),e.createElementVNode("div",Af,[e.createElementVNode("button",{type:"button",onClick:p,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(X.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(c.value),1)],8,Nf)])]))}}),[["__scopeId","data-v-2c229b1f"]]),Mf={class:"flex items-center gap-2 w-full"},Ff=["disabled"],Df=["disabled"],jr=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),a=t,l=e.computed({get:()=>n.modelValue||"#000000",set:c=>a("update:modelValue",c)}),s=e.computed(()=>!!n.disabled);return(c,i)=>(e.openBlock(),e.createElementBlock("div",Mf,[e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":i[0]||(i[0]=d=>l.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]",[c.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,Ff),[[e.vModelText,l.value]]),e.withDirectives(e.createElementVNode("input",{class:"text-sm text-gray-600 border border-solid border-stone-200 rounded-md p-2","onUpdate:modelValue":i[1]||(i[1]=d=>l.value=d),disabled:s.value},null,8,Df),[[e.vModelText,l.value]])]))}}),Tf={class:"flex items-center gap-2 w-full"},Lf=["min","max","step","disabled"],If=["value","min","max","step","disabled"],Ur=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),a=t,l=h=>{const y=Number(h),p=Number(n.min),m=Number(n.max);return Number.isNaN(y)?p:Math.min(m,Math.max(p,y))},s=e.computed({get:()=>l(n.modelValue??n.min),set:h=>a("update:modelValue",l(h))}),c=h=>{const y=h.target,p=l(y.value);y.value=String(p),a("update:modelValue",p)},i=h=>{Number(n.min)>=0&&h.key==="-"&&h.preventDefault()},d=e.computed(()=>!!n.disabled);return(h,y)=>(e.openBlock(),e.createElementBlock("div",Tf,[e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":y[0]||(y[0]=p=>s.value=p),min:h.min,max:h.max,step:h.step,disabled:d.value,ref:"range",class:e.normalizeClass(["w-full cursor-pointer accent-blue-500",[h.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")])},null,10,Lf),[[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:h.min,max:h.max,step:h.step,onInput:c,onKeydown:i,disabled:d.value},null,40,If)]))}}),Of=["placeholder","disabled","name"],Pf=["type","value","onInput","placeholder","disabled"],Rf=["onClick"],Hr=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:a}=et(t.style),l=e.useModel(o,"modelValue"),s=e.computed(()=>!!t.disabled),c=e.computed(()=>t.placeholder??"");e.watchEffect(()=>{const w=l.value?.length??0;w<n.value&&(l.value=[...l.value??[],...Array(n.value-w)])});const i=e.ref({}),d=e.ref({});function h(w,b){w&&(i.value[b]=w)}async function y(w,b){if(!w||t.inputType!=="mask")return;const{default:v}=await Promise.resolve().then(()=>Jn);d.value[b]&&d.value[b].destroy(),d.value[b]=v(w,{mask:t.mask||"",definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},lazy:!1}),d.value[b].on("accept",()=>{const C=[...l.value||[]];C[b]=t.unmask?d.value[b].unmaskedValue:d.value[b].value,l.value=C}),d.value[b].on("complete",()=>{const C=[...l.value||[]];C[b]=t.unmask?d.value[b].unmaskedValue:d.value[b].value,l.value=C}),l.value?.[b]&&(d.value[b].value=l.value[b])}function p(w,b){if(s.value)return;const v=w.target.value??null,C=[...l.value];C[b]=t.inputType==="text"?v:Number(v),l.value=C}function m(){n.value+=1;const w=t.inputType==="text"||t.inputType==="mask"?null:0;l.value=[...l.value,w],t.inputType==="mask"&&setTimeout(()=>{const b=n.value-1;i.value[b]&&y(i.value[b],b)},0)}function f(w){if(n.value>1){d.value[w]&&(d.value[w].destroy(),delete d.value[w]),n.value-=1,l.value=l.value.filter((v,C)=>C!==w);const b={};Object.keys(d.value).forEach(v=>{const C=parseInt(v,10);C>w?b[C-1]=d.value[C]:C<w&&(b[C]=d.value[C])}),d.value=b}}return e.onMounted(()=>{if(t.inputType==="mask")for(let w=0;w<n.value;w+=1)i.value[w]&&y(i.value[w],w)}),e.onBeforeUnmount(()=>{Object.values(d.value).forEach(w=>{w&&w.destroy()})}),e.watch(()=>t.mask,w=>{t.inputType==="mask"&&Object.values(d.value).forEach(b=>{b&&b.updateOptions({mask:w,definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/}})})}),e.watch(l,w=>{t.inputType==="mask"&&w&&w.forEach((b,v)=>{d.value[v]&&d.value[v].value!==b&&(d.value[v].value=b||"")})},{deep:!0}),(w,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,v=>(e.openBlock(),e.createElementBlock("div",{key:v,class:"flex items-center gap-2 w-full"},[w.inputType==="mask"?(e.openBlock(),e.createElementBlock("input",{key:0,type:"text",ref_for:!0,ref:C=>h(C,v-1),placeholder:w.placeholder,disabled:w.disabled,name:`${w.name}[${v-1}]`,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(a),{"!border-red-600":w.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Of)):(e.openBlock(),e.createElementBlock("input",{key:1,type:w.inputType,value:l.value?.[v-1],onInput:C=>p(C,v-1),placeholder:c.value,disabled:s.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(a),{"!border-red-600":w.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,Pf)),!w.disabled&&v===n.value&&w.isAdded?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:e.withModifiers(m,["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(X.Plus),{class:"h-4 w-4"})])):e.createCommentVNode("",!0),!w.disabled&&n.value>1&&w.isAdded?(e.openBlock(),e.createElementBlock("button",{key:3,type:"button",onClick:e.withModifiers(C=>f(v-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(X.X),{class:"h-4 w-4"})],8,Rf)):e.createCommentVNode("",!0)]))),128))],2))}}),zf={class:"flex gap-1 w-full"},jf=["aria-expanded","data-focus"],Uf=["placeholder","disabled","readonly"],Hf={class:"max-h-full"},qf=["onClick","disabled"],Wf={key:0,class:"px-3 py-2 text-sm text-stone-500"},Kf=["disabled"],Gf={class:"flex flex-col gap-1"},Yf=["onDragstart","onDrop"],Xf=["disabled"],Zf=["title"],Jf=["disabled","onClick","aria-label"],Qf={key:0,class:"text-xs text-stone-500"},Hn=Be(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,a=e.useModel(o,"modelValue"),l=e.ref([]),s=e.ref(n.options??[]),c=e.ref({}),i=e.ref({}),d=e.ref({keyword:"",parent:null}),h=e.ref(""),y=e.ref(!1),p=e.ref(null),m=e.ref(null),f=e.ref(null),w=e.ref(null),b=e.ref(null),v=e.ref({});let C=!1,V=!1;const $=e.inject("values"),U=e.computed(()=>!!n.disabled),Z=e.computed(()=>n.placeholder??"Оберіть значення"),O=e.computed(()=>n.search!==!1),E=e.computed(()=>{const x=n.parent??n.parentValue;return x?String(x):""}),S=e.computed(()=>E.value?$?.value?.[E.value]??null:null),_=x=>x==null?"__null__":String(x),T=x=>{if(!x)return"";const D=x.label??x.text??x.name??x.ua??x.en;return D?String(D):x.id!==void 0&&x.id!==null?String(x.id):""},j=x=>{const D=_(x);return i.value[D]||(i.value[D]=`array-select-${D}-${Math.random().toString(36).slice(2,8)}`),i.value[D]},oe=e.computed(()=>new Set(l.value.map(x=>_(x.id)))),A=e.computed(()=>{const x=oe.value;let D=[...s.value];if(!n.data&&h.value.trim()){const R=h.value.toLowerCase();D=D.filter(de=>T(de).toLowerCase().includes(R))}return D.filter(R=>!x.has(_(R.id)))}),P=()=>{if(!n.data)return"";const x=n.prefix??"api",D=n.api??`/${x}/suggest/${n.data}`;return`${n.host??""}${D}`},Y=()=>{l.value.length&&(C=!0,l.value=l.value.map(x=>({...x,text:c.value[_(x.id)]??x.text})))},q=x=>{const D=_(x.id),R=T(x);R&&(c.value[D]=R)},I=x=>{s.value=x?[...x]:[],x?.forEach(q),Y()},J=x=>{if(!x.length)return;const D=new Map(s.value.map(R=>[_(R.id),R]));x.forEach(R=>{const de=_(R.id);D.set(de,R),q(R)}),s.value=Array.from(D.values()),Y()},te=async(x="")=>{if(!n.data)return[];const D=P();if(!D)return[];const R=new URLSearchParams;R.set("json","1"),x&&R.set("key",x),n.start===1&&R.set("start","1"),S.value!==null&&S.value!==void 0&&S.value!==""&&R.set("parent",String(S.value));try{return(await(await fetch(`${D}?${R.toString()}`)).json())?.data??[]}catch{return[]}},L=async x=>{if(!n.data||!x.length)return[];const D=P();if(!D)return[];const R=Array.from(new Set(x.map(_e=>_(_e)))),de=new URLSearchParams;de.set("json","1"),de.set("val",R.join(",")),n.start===1&&de.set("start","1"),S.value!==null&&S.value!==void 0&&S.value!==""&&de.set("parent",String(S.value));try{const Ie=(await(await fetch(`${D}?${de.toString()}`)).json())?.data??[];return J(Ie),Ie}catch{return[]}},M=async x=>{if(x==null||x==="")return null;const D=_(x),R=s.value.find(_e=>_(_e.id)===D);if(R)return R;const[de]=await L([x]);return de??null},N=async(x="",{force:D=!1}={})=>{if(!n.data)return;const R=S.value??null;if(!D&&d.value.keyword===x&&d.value.parent===R&&s.value.length>0)return;d.value={keyword:x,parent:R};const _e=await te(x);I(_e)},ae=((x,D=200)=>{let R;return(...de)=>{R&&clearTimeout(R),R=setTimeout(()=>x(...de),D)}})(async x=>{n.data&&await N(x,{force:!0})},250),ee=e.ref(null),he=()=>{if(!f.value)return;const x=f.value.getBoundingClientRect(),D=window.innerHeight??document.documentElement.clientHeight,R=window.innerWidth??document.documentElement.clientWidth,de=8,_e=8,Oe=n.maxHeight??280,Ie=D-x.bottom-_e-de,Ue=x.top-_e-de,We=Ie>=Ue,ut=Math.max(R-de*2,0);let{width:Ke}=x;ut>0&&Ke>ut&&(Ke=ut);let{left:ct}=x;ct+Ke+de>R&&(ct=R-Ke-de),ct=Math.max(ct,de);const Pt=Math.min(Oe,Math.max(We?Ie:Ue,50));v.value={position:"fixed",left:`${ct}px`,width:`${Ke}px`,maxHeight:`${Pt}px`,transform:We?"none":"translateY(-100%)",top:We?`${x.bottom+_e}px`:`${x.top-_e}px`}},we=async(x="click")=>{U.value||y.value||(ee.value=x,await N(h.value.trim()),y.value=!0,await e.nextTick(),he(),b.value?.focus())},be=()=>{y.value=!1,ee.value=null,e.nextTick(()=>{b.value?.blur()})},$e=async x=>{if(x.stopPropagation(),!U.value){if(y.value){if(ee.value==="focus"){ee.value=null;return}be();return}await we("click")}},Me=x=>{x.key==="Escape"&&be()},Fe=x=>{if(!y.value)return;const D=x.target;w.value?.contains(D)||be()},Re=x=>{const D=x.target;m.value?.contains(D)||w.value?.contains(D)||be()},se=x=>{if(x.key==="Escape"){x.preventDefault(),be();return}if(x.key==="Enter"){x.preventDefault();const D=A.value[0];D&&ie(D)}},ie=x=>{if(!x)return;const D=_(x.id);if(oe.value.has(D))return;q(x);const R={id:x.id,text:T(x)||String(x.id??""),key:j(x.id)};l.value=[...l.value,R],ve(x),h.value="",e.nextTick(()=>{b.value?.focus()})},ve=x=>{const D=l.value.map(R=>R.id);r("value-selected",{name:n.name,value:D,option:x})},Se=x=>{if(U.value)return;const D=l.value.filter(R=>_(R.id)!==_(x));l.value=D},{isOpenAdd:Le,addData:qe,addSchema:z,addForm:ne,addTitle:le,addOption:ue,onAddValue:ke}=vr({props:n,fetchOptionByValue:M,optionsList:s,selectedOption:e.ref(null),modelValue:a,onCreated:async(x,D)=>{const R=x??await M(D),de=R?.id??D;oe.value.has(_(de))||(R&&q(R),l.value=[...l.value,{id:de,text:R?T(R):String(de),key:j(de)}],ve(R??null))}}),Ae=x=>{U.value||(p.value=x)},De=x=>{if(U.value||p.value===null||p.value===x)return;const D=[...l.value],[R]=D.splice(p.value,1);D.splice(x,0,R),p.value=null,l.value=D},Te=async()=>{const D=(Array.isArray(a.value)?[...a.value]:[]).filter(de=>de!=null);if(n.data&&D.length){const de=D.filter(_e=>!c.value[_(_e)]);de.length&&await L(de)}const R=D.map(de=>({id:de,text:c.value[_(de)]??String(de),key:j(de)}));C=!0,l.value=R};e.watch(l,x=>{if(C){C=!1;return}const D=x.map(R=>R.id);V=!0,a.value=D,r("change",D)},{deep:!0}),e.watch(a,()=>{if(V){V=!1;return}Te()},{deep:!0}),e.watch(h,x=>{!n.data||!y.value||ae(x.trim())}),e.watch(U,x=>{x&&be()}),e.watch(()=>n.options,async x=>{n.data||(I(x??[]),await Te())},{immediate:!0,deep:!0}),e.watch(()=>n.data,async x=>{x&&(await N(h.value.trim()),await Te())},{immediate:!0});const W=e.ref(!1);return e.watch(S,async()=>{if(n.data){if(!W.value){W.value=!0;return}l.value=[],await N(h.value.trim()),await Te()}}),e.onMounted(async()=>{document.addEventListener("click",Re,!0),window.addEventListener("keydown",Me),window.addEventListener("scroll",Fe,!0),await Te()}),e.onUnmounted(()=>{document.removeEventListener("click",Re,!0),window.removeEventListener("keydown",Me),window.removeEventListener("scroll",Fe,!0)}),(x,D)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(ge.VsModal),{visible:e.unref(Le),"onUpdate:visible":D[1]||(D[1]=R=>e.isRef(Le)?Le.value=R:null),class:"z-[1000]",title:e.unref(le),buttonText:"Додати",onDone:e.unref(ue)},{default:e.withCtx(()=>[e.createVNode(rt,{schema:e.unref(z),modelValue:e.unref(qe),"onUpdate:modelValue":D[0]||(D[0]=R=>e.isRef(qe)?qe.value=R:null),ref_key:"addForm",ref:ne},null,8,["schema","modelValue"])]),_:1},8,["visible","title","onDone"]),e.createElementVNode("div",{class:"flex flex-col gap-2 w-full",ref_key:"rootRef",ref:m},[e.createElementVNode("div",zf,[e.createElementVNode("div",{class:"relative flex-1",onClick:D[4]||(D[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]",y.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":y.value,"aria-haspopup":"listbox","data-focus":y.value?"true":"false",onClick:$e},[e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:b,"onUpdate:modelValue":D[2]||(D[2]=R=>h.value=R),placeholder:Z.value,disabled:U.value,readonly:!O.value,onFocus:D[3]||(D[3]=()=>we("focus")),onKeydown:se,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,h.value]]),e.createElementVNode("span",{class:e.normalizeClass(["text-stone-400 transition-transform duration-150",y.value?"rotate-180":""]),"aria-hidden":"true"},[e.createVNode(e.unref(X.ChevronDown),{class:"h-4 w-4"})],2)],10,jf),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[y.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:w,class:"fixed z-[3000] rounded-md border border-stone-200 bg-white shadow-lg overflow-auto",style:e.normalizeStyle(v.value)},[e.createElementVNode("div",Hf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(A.value,R=>(e.openBlock(),e.createElementBlock("button",{key:_(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(de=>ie(R),["stop"]),disabled:U.value},e.toDisplayString(T(R)),9,qf))),128)),A.value.length===0?(e.openBlock(),e.createElementBlock("p",Wf," Немає варіантів ")):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))]),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:D[5]||(D[5]=(...R)=>e.unref(ke)&&e.unref(ke)(...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(X.Plus),{class:"h-4 w-4"}),D[8]||(D[8]=e.createElementVNode("span",null,"Додати",-1))],8,Kf)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Gf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(R,de)=>(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":p.value===de}]),draggable:"true",onDragstart:_e=>Ae(de),onDragover:D[6]||(D[6]=e.withModifiers(()=>{},["prevent"])),onDrop:_e=>De(de),onDragend:D[7]||(D[7]=_e=>p.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(X.GripVertical),{class:"h-4 w-4"})],8,Xf),e.createElementVNode("div",{class:"flex-1 text-sm text-stone-900",title:R.text},e.toDisplayString(R.text),9,Zf),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(_e=>Se(R.id),["stop"]),"aria-label":`Видалити ${R.text}`},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,Jf)],42,Yf))),128)),l.value.length===0?(e.openBlock(),e.createElementBlock("p",Qf,"Немає вибраних значень")):e.createCommentVNode("",!0)])],512)],64))}}),[["__scopeId","data-v-da4b4da7"]]),eh={class:"flex items-center gap-2 w-full"},th={class:"relative flex-1"},nh=["placeholder","disabled","onKeydown"],oh=["disabled"],rh={key:0,class:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/50"},lh={class:"bg-white text-gray-900 rounded-lg shadow-lg w-[480px] max-h-[80vh] overflow-y-auto"},ah={class:"p-3 border-b font-semibold text-gray-900 flex justify-between items-center"},sh=["onClick"],ih={key:0,class:"p-4 text-sm text-gray-500"},qr=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,a=t,{inputClass:l}=et(r.style),s=e.useModel(o,"modelValue"),c=e.computed({get:()=>s.value,set:O=>{s.value=O}}),i=e.ref(!1),d=e.ref([]),h=e.ref(!1),y=e.ref(null);e.watch(h,O=>{typeof document>"u"||(O?(y.value=document.body.style.overflow,document.body.style.overflow="hidden"):y.value!=null?(document.body.style.overflow=y.value,y.value=null):document.body.style.removeProperty("overflow"))}),e.onBeforeUnmount(()=>{typeof document>"u"||(y.value!=null?document.body.style.overflow=y.value:document.body.style.removeProperty("overflow"))});const p=e.computed(()=>r.placeholder??""),m=e.computed(()=>!!r.disabled),f=O=>{if(!O)return null;if(Array.isArray(O))return O;if(typeof O=="string"){const E=O.split(",").map(S=>S.trim()).filter(Boolean);return E.length!==4?null:E.map(Number)}return null},w=e.computed(()=>{const O=f(r.bbox);if(!O||O.length!==4)return null;const E=O.map(Number);return E.some(S=>Number.isNaN(S))?null:E}),b=e.computed(()=>{const O=w.value;if(!O)return"";const[E,S,_,T]=O;return`${E},${Math.max(S,T)},${_},${Math.min(S,T)}`});e.computed(()=>b.value?"1":"0");const v=e.inject("values");function C(){!m.value&&c.value.trim()&&V()}async function V(){const O=(c.value||"").trim();if(!O)return;let E=O;if(r.includes?.length&&v?.value){const _=r.includes.map(T=>v.value?.[T]).filter(Boolean);_.length&&(E=`${_.join(", ")}, ${O}`)}const S=Z(E);if(S){i.value=!0;try{const T=await(await fetch(S)).json();d.value=Array.isArray(T)?T:[],h.value=!0}catch(_){console.error("Address search error:",_)}finally{i.value=!1}}}function $(){h.value=!h.value}function U(O){if(!O)return;h.value=!1;const E=parseFloat(O.lat),_={type:"Point",coordinates:[parseFloat(O.lon),E]};r.geom&&v?.value&&(v.value[r.geom]=_),a("update:geom",_)}function Z(O){if(!r.api)return"";const E={value:encodeURIComponent(O),bbox:w.value?w.value.join(","):""};return r.api.replace(n,(S,_)=>E[_.trim()]??"")}return(O,E)=>(e.openBlock(),e.createElementBlock("div",eh,[e.createElementVNode("div",th,[e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":E[0]||(E[0]=S=>c.value=S),placeholder:p.value,disabled:m.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(l),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"},onKeydown:e.withKeys(e.withModifiers(C,["prevent"]),["enter"])},null,42,nh),[[e.vModelText,c.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:$,title:"Show search results"},[e.createVNode(e.unref(X.Info),{class:"h-4 w-4"})])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:V,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:i.value||!c.value?.trim()},[i.value?(e.openBlock(),e.createBlock(e.unref(X.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(e.openBlock(),e.createBlock(e.unref(X.Search),{key:0,class:"h-4 w-4"}))],8,oh),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[h.value?(e.openBlock(),e.createElementBlock("div",rh,[e.createElementVNode("div",lh,[e.createElementVNode("div",ah,[E[2]||(E[2]=e.createElementVNode("span",null,"Результати пошуку",-1)),e.createElementVNode("button",{class:"text-gray-500 hover:text-blue-600",onClick:E[1]||(E[1]=S=>h.value=!1),title:"Close"},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})])]),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(S,_)=>(e.openBlock(),e.createElementBlock("li",{key:_,onClick:T=>U(S),class:"px-3 py-2 cursor-pointer hover:bg-gray-100 border-b text-sm"},e.toDisplayString(S.display_name),9,sh))),128))]),d.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",ih," Не знайдено результатів "))])])):e.createCommentVNode("",!0)]))]))}}),ch={class:"vs-datalist space-y-3"},dh={class:"space-y-3"},uh=["onClick","disabled"],ph={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},mh=["disabled"],fh=Be(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:[]),a=e.ref([]),l=e.computed(()=>t.schema?.map(b=>({...b,disabled:t.disabled||b.disabled}))??[]),s=e.computed(()=>l.value.map(b=>w(b))),c=e.computed(()=>l.value.reduce((v,C)=>{const V=Number(C?.col??12);return v+(Number.isFinite(V)&&V>0?V:12)},0)>12),i=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,()=>{h(),y()},{immediate:!0}),e.watch(()=>t.schema,y,{immediate:!0,deep:!0});function h(){const b=r.value.length;a.value.length<b?a.value=[...a.value,...Array.from({length:b-a.value.length},()=>wo())]:a.value.length>b&&a.value.splice(b)}function y(){if(!t.minItems||r.value.length>=t.minItems)return;const b=t.minItems-r.value.length,v=Array.from({length:b},p);n.value=[...r.value,...v]}function p(){const b={};return l.value.forEach(v=>{b[v.name]=v?.default??null}),b}function m(){i.value&&(n.value=[...r.value,p()],h())}function f(b){d.value||(n.value=r.value.filter((v,C)=>C!==b),h(),y())}function w(b){return{...b}}return(b,v)=>(e.openBlock(),e.createElementBlock("div",ch,[e.createElementVNode("div",dh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(C,V)=>(e.openBlock(),e.createElementBlock("div",{key:a.value[V],class:e.normalizeClass(["flex items-center gap-3 rounded-lg transition-colors",{"border border-gray-300 p-2":c.value}])},[e.createVNode(rt,{schema:s.value,layout:"inline",navigation:!1,values:r.value[V],"onUpdate:values":$=>r.value[V]=$,"form-id":a.value[V]},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:$=>f(V),disabled:d.value},[e.createVNode(e.unref(X.Trash2),{class:"h-4 w-4"})],8,uh)],2))),128)),r.value.length===0?(e.openBlock(),e.createElementBlock("div",ph,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:m,disabled:!i.value},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,mh)]))}}),[["__scopeId","data-v-d0065868"]]),hh={class:"vs-dataform space-y-4"},gh=["draggable","onDragstart","onDragover","onDragenter","onDrop"],yh={class:"flex items-center gap-2"},bh=["onClick"],kh={class:"text-sm font-medium text-gray-700"},wh={class:"flex items-center gap-2"},xh=["title","onClick","disabled"],vh=["title","onClick","disabled"],_h={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},Ch=["disabled"],Eh=Be(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([]),a=e.ref([]),l=e.ref(0),s=e.ref(null),c=e.ref(null),i=e.ref(null),d=e.computed(()=>t.groupLabel??"Group"),h=e.computed(()=>t.emptyLabel??"Ще немає груп"),y=e.computed(()=>t.schema?.map(N=>({...N,disabled:t.disabled||N.disabled}))??[]),p=e.computed(()=>y.value.map(N=>S(N))),m=e.computed(()=>t.view==="accordion"),f=e.computed(()=>!!(t.collapsible||m.value)),w=e.computed(()=>t.draggable!==!1),b=e.computed(()=>t.disabled?!1:t.maxGroups?n.value.length<t.maxGroups:!0),v=e.computed(()=>t.disabled||n.value.length<=(t.minGroups||0));e.watch(()=>n.value.length,()=>{C(),V(),$()},{immediate:!0}),e.watch(()=>t.schema,$,{immediate:!0,deep:!0}),e.watch(()=>t.view,()=>{V()},{immediate:!0});function C(){const N=n.value.length;r.value.length<N?r.value=[...r.value,...Array.from({length:N-r.value.length},()=>wo())]:r.value.length>N&&r.value.splice(N)}function V(){const N=n.value.length;m.value?N===0?l.value=-1:l.value>=N?l.value=N-1:l.value<0&&(l.value=0):a.value.length<N?a.value=[...a.value,...Array.from({length:N-a.value.length},()=>!1)]:a.value.length>N&&a.value.splice(N)}function $(){if(!t.minGroups||n.value.length>=t.minGroups)return;const N=t.minGroups-n.value.length,Q=Array.from({length:N},U);n.value=[...n.value,...Q],V()}function U(){const N={};return y.value.forEach(Q=>{N[Q.name]=Q?.default??null}),N}function Z(){b.value&&(n.value=[...n.value,U()],C(),V())}function O(N){v.value||(n.value=n.value.filter((Q,ae)=>ae!==N),C(),m.value?l.value>=n.value.length&&(l.value=n.value.length-1):a.value.splice(N,1),$())}function E(N){if(t.disabled)return;const Q=JSON.parse(JSON.stringify(n.value[N]??{}));n.value=[...n.value.slice(0,N+1),Q,...n.value.slice(N+1)],C(),m.value?l.value>N&&(l.value+=1):a.value.splice(N+1,0,a.value[N]??!1)}function S(N){return{...N}}function _(N){return m.value?l.value===-1&&N===0?!1:l.value!==N:!!a.value[N]}function T(N){if(f.value){if(m.value){l.value=N;return}a.value[N]=!a.value[N]}}function j(N,Q){if(!w.value||t.disabled){Q.preventDefault();return}s.value=N,c.value=N,i.value={groups:JSON.parse(JSON.stringify(n.value)),keys:[...r.value],states:[...a.value]},Q.dataTransfer?.setData("text/plain",String(N)),Q.dataTransfer?.setDragImage?.(Q.currentTarget,0,0)}function oe(N,Q){!w.value||t.disabled||s.value!==null&&J(N,Q)}function A(N,Q){J(N,Q)}function P(N){!w.value||t.disabled||M()}function Y(){i.value&&I(),s.value=null,c.value=null,i.value=null}function q(N,Q){const ae=[...n.value],[ee]=ae.splice(N,1);ae.splice(Q,0,ee),n.value=ae;const he=[...r.value],[we]=he.splice(N,1);if(he.splice(Q,0,we),r.value=he,m.value)l.value===N&&(l.value=Q);else{const be=[...a.value],[$e]=be.splice(N,1);be.splice(Q,0,$e),a.value=be}}function I(){i.value&&(n.value=i.value.groups,r.value=i.value.keys,a.value=i.value.states,i.value=null,c.value=null)}function J(N,Q){if(s.value===null)return;const ae=te(N,Q);c.value=ae,L(ae)}function te(N,Q){if(!Q?.currentTarget)return N;const ae=Q.currentTarget.getBoundingClientRect(),he=Q.clientY-ae.top>ae.height/2?N+1:N;return Math.max(0,Math.min(he,n.value.length))}function L(N){const Q=s.value;if(Q===null)return;let ae=N;if(ae>n.value.length&&(ae=n.value.length),ae===Q||ae===Q+1)return;const ee=ae>Q?ae-1:ae;q(Q,ee),s.value=ee,c.value=ae>Q?ee+1:ee}function M(){i.value=null,s.value=null,c.value=null}return(N,Q)=>(e.openBlock(),e.createElementBlock("div",hh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(ae,ee)=>(e.openBlock(),e.createElementBlock("div",{key:r.value[ee],class:e.normalizeClass(["relative border border-gray-200 rounded-lg bg-white transition vs-dataform__group",[t.view==="accordion"?"overflow-hidden":_(ee)?"pt-6 px-6":"p-6"]]),draggable:w.value&&!t.disabled,onDragstart:he=>j(ee,he),onDragend:Y,onDragover:e.withModifiers(he=>oe(ee,he),["prevent"]),onDragenter:e.withModifiers(he=>A(ee,he),["prevent"]),onDrop:e.withModifiers(he=>P(),["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"&&!_(ee)?"rounded-t-lg":"rounded-lg"]])},[e.createElementVNode("div",yh,[w.value?(e.openBlock(),e.createBlock(e.unref(X.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:he=>T(ee)},[e.createVNode(e.unref(X.ChevronDown),{class:e.normalizeClass(["h-4 w-4 transition",_(ee)?"-rotate-90":"rotate-0"])},null,8,["class"])],8,bh)):e.createCommentVNode("",!0),e.createElementVNode("div",kh,e.toDisplayString(`${d.value} (${ee+1})`),1)]),e.createElementVNode("div",wh,[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:he=>E(ee),disabled:t.disabled,draggable:"false"},[e.createVNode(e.unref(X.Copy),{class:"h-4 w-4"})],8,xh),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:he=>O(ee),disabled:v.value,draggable:"false"},[e.createVNode(e.unref(X.Trash2),{class:"h-4 w-4"})],8,vh)])],2),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(t.view==="accordion"?"p-6":"pt-6")},[e.createVNode(rt,{class:"vs-dataform__form",schema:p.value,layout:"inline",navigation:!1,values:n.value[ee],"onUpdate:values":he=>n.value[ee]=he,"form-id":r.value[ee],disabled:t.disabled},null,8,["schema","values","onUpdate:values","form-id","disabled"])],2),[[e.vShow,!_(ee)]])],42,gh))),128)),n.value.length===0?(e.openBlock(),e.createElementBlock("div",_h,e.toDisplayString(h.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:Z,disabled:!b.value},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,Ch)]))}}),[["__scopeId","data-v-cfbcfed8"]]),qn="__vs_form_monaco_loader__",Wt="__vs_form_monaco_script_loader__",Wn="__vs_form_monaco_editor_loader__",Co=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"),a=e.ref(null),l=e.computed(()=>typeof n.height=="number"?`${n.height}px`:n.height||"280px");let s=null,c=null,i=!1;const d=()=>{if(c)return Promise.resolve(c);if(typeof window>"u")return Promise.resolve(null);const f=window;if(f.monaco?.editor?.create)return c=f.monaco,Promise.resolve(c);if(f[qn])return f[qn];const b=(async()=>{const v=$=>{if(Array.from(document.styleSheets||[]).some(O=>O?.href?.includes($)))return;const Z=document.createElement("link");Z.rel="stylesheet",Z.href=$,document.head.appendChild(Z)},C=$=>{if(f[Wt]?.[$])return f[Wt][$];f[Wt]||={};const U=Array.from(document.scripts).find(Z=>Z.src===$);return U?(f[Wt][$]=new Promise((Z,O)=>{const E=U.readyState;if(U.dataset.loaded==="true"||E==="loaded"||E==="complete"){Z();return}U.addEventListener("load",()=>{U.dataset.loaded="true",Z()},{once:!0}),U.addEventListener("error",S=>O(S),{once:!0})}),f[Wt][$]):(f[Wt][$]=new Promise((Z,O)=>{const E=document.createElement("script");E.src=$,E.async=!0,E.onload=()=>{E.dataset.loaded="true",Z()},E.onerror=S=>O(S),document.body.appendChild(E)}),f[Wt][$])},V="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs";return v(`${V}/editor/editor.main.min.css`),await C(`${V}/loader.min.js`),f[Wn]||(f[Wn]=new Promise(($,U)=>{window.require.config({paths:{vs:V}}),window.require(["vs/editor/editor.main"],()=>{c=window.monaco,f.monaco=c,$(c)},Z=>U(Z))}).catch($=>{throw delete f[Wn],$})),f[Wn]})().catch(v=>{throw delete f[qn],v});return f[qn]=b,b},h=()=>{!a.value||!c||(s&&(s.dispose(),s=null),s=c.editor.create(a.value,{value:r.value||"",language:n.syntax,theme:n.theme,automaticLayout:!0,minimap:{enabled:!!n.minimap},readOnly:!!n.disabled}),s.onDidChangeModelContent(()=>{i||(r.value=s.getValue())}))},y=()=>{s?.focus()},p=()=>s,m=()=>c;return e.watch(()=>r.value,f=>{if(!s)return;const w=s.getValue();f!==w&&(i=!0,s.setValue(f||""),i=!1)}),e.watch(()=>n.syntax,f=>{!s||!c||c.editor.setModelLanguage(s.getModel(),f||"xml")}),e.watch(()=>n.theme,f=>{c&&c.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;c=f,h()}catch(f){console.error("Failed to load Monaco editor",f)}}),e.onBeforeUnmount(()=>{s&&(s.dispose(),s=null)}),t({focus:y,getEditor:p,getMonaco:m}),(f,w)=>(e.openBlock(),e.createElementBlock("div",{class:"w-full",style:e.normalizeStyle({height:l.value})},[e.createElementVNode("div",{ref_key:"editorContainer",ref:a,class:"w-full h-full overflow-hidden border border-[#CFD9E0] rounded"},null,512)],4))}}),Wr={VsInputText:Yt,VsInputRadio:mo,VsInputInlineSelect:In,"vs-input-text":Yt,"vs-input-password":ha,"vs-input-textarea":Cr,"vs-input-richtext":Er,"vs-input-mask":En,"vs-input-number":Zo,"vs-input-radio":mo,"vs-input-select":ko,"vs-input-inline-select":In,"inline-select":In,"vs-input-switcher":io,"vs-input-static":co,"vs-input-container":xr,"vs-input-date":ir,"vs-input-checkbox":er,"vs-input-file":br,"vs-input-file2":Tn,file2:Tn,File2:Tn,"vs-input-html":co,"vs-input-email":uo,"vs-input-tel":po,"vs-input-datatable":Br,"vs-input-map":Lr,"vs-input-file-list":kr,"vs-input-tags":Ir,"vs-input-slug":Or,"vs-input-codegen":Pr,"vs-input-key-value":Rr,"vs-input-text[]":zr,"vs-input-range":Ur,"vs-input-color":jr,"vs-input-native-select":ko,VsInputArraySelect:Hn,"vs-input-array":Hr,"vs-input-array-select":Hn,"array-select":Hn,"vs-input-address":qr,"vs-input-datalist":fh,"vs-input-dataform":Eh,"vs-input-monaco":Co},Bh=e.defineComponent({__name:"behavior",props:{api:{},set:{},button:{},error:{},value:{}},setup(o){const t=o,n=e.inject("values");function r(l,s){const c=s?.result||s?.message||s?.error||s?.detail;return l.status===400&&typeof c=="string"&&c.trim().toLowerCase()==="not found"?"Дані не знайдено.":l.status===500?"Помилка на сервері.":typeof c=="string"&&c.trim()?c:"При спробі завантажити дані виникла помилка."}async function a(){try{if(!t.api)return;const l=t.api.replace("{{value}}",t.value),s=await fetch(l);if(!s.ok){let i=null;try{i=await s.json()}catch{try{i=await s.text()}catch{i=null}}ge.notify({type:"warning",title:"Validation",message:r(s,i)});return}const c=await s.json();if(!t.set||!n)return;for(const[i,d]of Object.entries(t.set))n.value[i]=c.result[d]}catch(l){console.error(t.error,l)}}return(l,s)=>(e.openBlock(),e.createElementBlock("button",{onClick:a,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))}}),Vh={class:"flex flex-col gap-1 w-full"},Sh={class:"w-full"},$h=["disabled"],Ah=["innerHTML"],Nh=2e3,Mh=10,Kr=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"),a=t,l=e.computed(()=>ma[`${n.layout}`]),s=["label","placeholder","info","description","text","html"],c=e.ref(j()),i=e.computed(()=>S(n.item,c.value)),d=e.computed(()=>{const A={...i.value??{}},P=n.item?.name;return P&&y?.value?.[P]&&Object.assign(A,y.value[P]),A.__locale=c.value,A}),h=e.computed(()=>Wr?.[`vs-input-${n.item.type}`]),y=e.inject("field-props"),p=e.computed(()=>{const A=e.unref(h);if(!A)return new Set;const P=A.props??A.__vccOpts?.props;if(!P)return new Set;const Y=Array.isArray(P)?P:Object.keys(P);return new Set(Y)}),f=[...["min","max","step"],"api","set","mask","layers"],w=new Set(["name","type","label","ua","col","rules","validators","conditions","schema","hidden","behavior","default","columns","layout","multiple","data","info","description","text","html","view","groupLabel","emptyLabel","minGroups","maxGroups","collapsible","draggable","props","__locale","slot","slots","component"]);function b(A){const P={};Object.entries(A).forEach(([q,I])=>{w.has(q)||q.includes(":")||I!==void 0&&(P[q]=I)});const Y=A.props;return Y&&typeof Y=="object"&&!Array.isArray(Y)&&Object.entries(Y).forEach(([q,I])=>{I!==void 0&&(P[q]=I)}),P}const v=e.computed(()=>{const A={...i.value??{}},P=n.item?.name;P&&y?.value?.[P]&&Object.assign(A,y.value[P]);const Y=p.value;let q;return Y.size?q=Object.fromEntries(Object.entries(A).filter(([I])=>Y.has(I))):q={...A},Object.assign(q,b(A)),f.forEach(I=>{const J=A[I];J!=null&&(q[I]=J)}),q}),C=A=>{const P=typeof A=="object"&&A!==null?A:{value:A};a("value-selected",{...P,name:P.name??n.item?.name})},V=/{{\s*([^}]+?)\s*}}/g,$=e.inject("values"),U=e.ref(!1),Z=e.computed(()=>{const A=n.item?.api,P=n.item?.type?.toLowerCase();return typeof A=="string"&&A.trim().length>0&&(P==="text"||P==="mask")});function O(A,P){if(!(A==null||!P))return P.split(".").reduce((Y,q)=>Y?.[q.trim()],A)}async function E(){const A=String(r.value??"").trim();if(!A)return;const P=(n.item?.api??"").trim();if(!P)return;const Y=P.replace(V,(q,I)=>I.trim()==="value"?encodeURIComponent(A):"");U.value=!0;try{let q=await fetch(Y),I=0;for(;q.status===202&&I<Mh;)I+=1,await new Promise(N=>{setTimeout(N,Nh)}),q=await fetch(Y);if(q.status===202){ge.notify({type:"warning",title:"Validation",message:"Сервер ще обробляє запит. Спробуйте пізніше."});return}if(!q.ok){ge.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const J=await q.json(),te=J?.result!==void 0?J.result:J,L=n.item?.set;if(!L||!$?.value)return;const M=n.item?.name;Object.entries(L).forEach(([N,Q])=>{if(!N)return;let ae=Q;M&&ae.startsWith(`${M}.`)&&(ae=ae.slice(M.length+1));const ee=O(te,ae);$.value[N]=ee??null})}catch(q){console.error("API lookup error:",q),ge.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."})}finally{U.value=!1}}e.onMounted(()=>{c.value=j(),window.addEventListener("storage",oe)}),e.onUnmounted(()=>{window.removeEventListener("storage",oe)});function S(A,P){if(!A)return{};const Y={...A};return s.forEach(q=>{const I=T(A,q,P);I!=null&&(Y[q]=I)}),Array.isArray(A.options)&&(Y.options=A.options.map(q=>_(q,P))),Y}function _(A,P){if(!A)return A;const Y={...A},q=T(A,"label",P),I=T(A,"text",P);return q!=null&&(Y.label=q),I!=null?Y.text=I:q!=null&&(Y.text=q),Y}function T(A,P,Y){const q=`${P}:${Y}`;if(A?.[q]!=null)return A[q];if(P==="label"&&A?.[Y]!=null)return A[Y];if(A?.[P]!=null)return A[P];if(P==="label"){if(A?.ua!=null)return A.ua;if(A?.en!=null)return A.en}if(P==="text"||P==="html"){if(A?.ua!=null)return A.ua;if(A?.en!=null)return A.en}return null}function j(){return typeof window>"u"?"uk":localStorage.getItem("locale")||"uk"}function oe(){c.value=j()}return(A,P)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.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",Vh,[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center gap-2 w-full",{"flex-1":Z.value}])},[e.createElementVNode("div",Sh,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.value),e.mergeProps(v.value,{modelValue:r.value,"onUpdate:modelValue":P[0]||(P[0]=Y=>r.value=Y),onValueSelected:C}),null,16,["modelValue"]))]),Z.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:U.value||!r.value?.toString().trim(),onClick:E},[U.value?(e.openBlock(),e.createBlock(e.unref(X.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(e.openBlock(),e.createBlock(e.unref(X.Search),{key:0,class:"h-4 w-4"}))],8,$h)):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,Ah)):e.createCommentVNode("",!0)]),d.value.behavior?.api&&d.value.behavior?.button?(e.openBlock(),e.createBlock(Bh,e.mergeProps({key:0},d.value.behavior,{value:r.value}),null,16,["value"])):e.createCommentVNode("",!0)],2)]),_:1},8,["ua","error","item","columns","label"]))}}),Fh={class:"text-sm text-gray-800 mb-[4px] font-medium dark:text-neutral-300"},Dh={class:"vs-compact-form-navigation__rail mt-[6px]"},Th=["onClick"],Lh=Be(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([]),a=e.ref(""),l=e.ref(""),s=e.computed(()=>!!n.enabled),c=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"]),i=e.computed(()=>{const T=n.width;if(T==null)return{};const j=typeof T=="number"?`${T}px`:`${T}`;return{width:j,minWidth:j}});let d=null,h=0,y=0,p=null,m=null,f=null;const w=()=>S(),b=()=>C();e.watch(()=>n.target,async T=>{if(Z(),!T){p=null,r.value=[],a.value="";return}p=T,s.value&&(await e.nextTick(),U(T),C())},{immediate:!0}),e.watch(()=>n.scrollContainer,T=>{if(!s.value){m=T??null;return}v(T??null),e.nextTick(()=>C())},{immediate:!0}),e.onMounted(()=>{n.scrollContainer||v(null),C()}),e.onBeforeUnmount(()=>{Z(),v(null,!0),p=null,typeof window<"u"&&(h&&window.cancelAnimationFrame(h),y&&window.cancelAnimationFrame(y))});function v(T,j=!1){if(f&&(f(),f=null),j){m=null;return}if(m=T??null,typeof window>"u")return;const oe=T??window,A=window;oe.addEventListener("scroll",w,{passive:!0}),A.addEventListener("resize",b),f=()=>{oe.removeEventListener("scroll",w),A.removeEventListener("resize",b)}}function C(){if(!s.value||!p)return;h&&typeof window<"u"&&window.cancelAnimationFrame(h);const T=()=>{V(),h=0};typeof window>"u"?T():h=window.requestAnimationFrame(T)}function V(){if(!s.value||!p)return;const T=Array.from(p.querySelectorAll("h1, h2")),j=new Set,oe=[];T.forEach((A,P)=>{const Y=A.textContent?.trim()??"";if(!Y)return;let q=(A.getAttribute("id")??"").trim();q||(q=$(Y)||`heading-${P+1}`);let I=q,J=1;for(;j.has(I);)I=`${q}-${J+=1}`;A.id!==I&&Object.assign(A,{id:I}),j.add(I),oe.push({id:I,text:Y,level:A.tagName.toLowerCase()==="h1"?1:2})}),r.value=oe,oe.length||(a.value=""),E()}function $(T){return T.toLowerCase().replace(/[^a-z0-9\s-]/g,"").trim().replace(/\s+/g,"-")}function U(T){!T||!s.value||typeof MutationObserver>"u"||(Z(),d=new MutationObserver(()=>C()),d.observe(T,{childList:!0,subtree:!0}))}function Z(){d&&(d.disconnect(),d=null)}function O(T){const j=m;if(!j)return typeof window>"u"?T.offsetTop:T.getBoundingClientRect().top+window.scrollY;const oe=T.getBoundingClientRect(),A=j.getBoundingClientRect();return oe.top-A.top+j.scrollTop}function E(){if(!s.value||!r.value.length)return;const T=m,j=(T?T.scrollTop:null)||(typeof window<"u"?window.scrollY:0),oe=(T?T.clientHeight:null)||(typeof window<"u"?window.innerHeight:0),A=j+oe;let P=null;for(let q=0;q<r.value.length;q+=1){const I=r.value[q],J=document.getElementById(I.id);if(J){const te=O(J);te+J.offsetHeight>j&&te<A&&(P=I.id)}}!P&&l.value&&(P=l.value),P&&(l.value=P);const Y=T?T.scrollHeight-T.clientHeight:document.documentElement.scrollHeight-window.innerHeight;j+5>=Y&&(P=r.value[r.value.length-1].id),P&&(a.value=P)}function S(){s.value&&(y&&window.cancelAnimationFrame(y),y=window.requestAnimationFrame(()=>{E(),y=0}))}function _(T){if(!s.value)return;const j=document.getElementById(T);if(!j)return;const oe=m,A=Math.max(0,O(j));oe?oe.scrollTo({top:A,behavior:"smooth"}):typeof window<"u"&&window.scrollTo({top:A,behavior:"smooth"})}return t({refresh:C}),(T,j)=>s.value&&r.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(c.value),style:e.normalizeStyle(i.value)},[e.createElementVNode("h2",Fh,e.toDisplayString(T.title),1),e.createElementVNode("div",Dh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,oe=>(e.openBlock(),e.createElementBlock("div",{key:oe.id,class:e.normalizeClass(["vs-compact-form-navigation__item relative",oe.level===2?"vs-compact-form-navigation__item--nested":"",oe.id===a.value?"vs-compact-form-navigation__item--active":""])},[e.createElementVNode("button",{type:"button",onClick:A=>_(oe.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",oe.level===2?"pl-[15px]":"pl-[18px]",oe.id===a.value?"text-gray-800":"text-gray-500"])},[e.createElementVNode("span",null,e.toDisplayString(oe.text),1)],10,Th)],2))),128))])],6)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-1584a562"]]),gt={required:"Це поле є обов’язковим",email:"Неправильний email",tel:"Неправильний телефон",minlength:o=>`Мінімальна довжина — ${o} символів`,maxlength:o=>`Максимальна довжина — ${o} символів`,min:o=>`Значення має бути не менше ${o}`,max:o=>`Значення має бути не більше ${o}`},Ih=o=>typeof o=="string"?o.trim()?!1:gt.required:Array.isArray(o)?o.map(n=>typeof n=="string"?n.trim():n).filter(n=>n!=null&&n!=="").length?!1:gt.required:typeof o=="number"?Number?.isNaN(o)?gt?.required:!1:o?!1:gt.required,Oh=o=>{const t=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/;return o?t.test(o)?!1:gt.email:!1},Ph=(o,t)=>{if(!o)return!1;const n=String(o).trim();if(!/^\+[1-9]\d{1,14}$/.test(n))return gt.tel;const l=(typeof t?.digits=="number"&&Number.isFinite(t.digits)&&t.digits>0?t.digits:Tt(Et))||Tt(Et);return n.length-1!==l?gt.tel:!1},Gr=o=>o==null?0:typeof o=="string"?o.trim().length:Array.isArray(o)?o.length:typeof o=="number"?o.toString().length:String(o).length,Rh=(o,t)=>{if(o==null)return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&Gr(o)<n?t?.message||gt.minlength(n):!1},zh=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&Gr(o)>n?t?.message||gt.maxlength(n):!1},Kn=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)},jh=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value);if(!Number.isFinite(n))return!1;const r=Kn(o);return Number.isFinite(r)&&r<n?t?.message||gt.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=Kn(o);return Number.isFinite(r)&&r>n?t?.message||gt.max(n):!1},Hh=(o,t,n)=>{if(o==null||o==="")return!1;const r=t?.field;if(!r||!n)return!1;const a=n[r];if(a==null||a==="")return!1;const l=Kn(o),s=Kn(a);return!Number.isFinite(l)||!Number.isFinite(s)?!1:l>s?t?.message||`Значення має бути не більше ${s}`:!1},qh=(o,t)=>{const n=t.pattern??t.regexp,r=typeof n=="string"?new RegExp(n):n;if(Array.isArray(o)){const a=o.filter(Boolean);return a.length===0||a.every(l=>r.test(l))?!1:t.message}return!r.test(o)&&o?t.message:!1},Wh=(o,t)=>!1,Kh=(o,t,n)=>{switch(typeof t=="string"?t:t.type){case"required":return Ih(o);case"email":return Oh(o);case"tel":return Ph(o,typeof t=="object"?t:void 0);case"regexp":return qh(o,t);case"minlength":return Rh(o,t);case"maxlength":return zh(o,t);case"min":return jh(o,t);case"max":return Uh(o,t);case"maxField":return Hh(o,t,n);case"custom":return Wh();default:return!1}},Gh={autocomplete:"select",combobox:"select",datepicker:"date",markedtext:"mask",html:"static",geom:"map",filelist:"file-list",file:"file",dropzone:"file",inlineselect:"inline-select"};function Yr(o){const t=o?.toLowerCase();return Gh[t]||t}function Eo(o,t=!1){if(Array.isArray(o)){const r=[];return o.forEach(a=>{const l={...a};if(l.name=(a.name||a.id||a.key||"").toString(),l.type=Yr(a.type),l.label=a.label||a.ua,l.rules=a.rules||a.validators,l.type==="email"&&!l.rules&&(l.rules=["email"]),l.type==="tel"&&!l.rules){const s=l.mask||Et,c=Tt(s)||Tt(Et);l.rules=[{type:"tel",digits:c}]}a.data&&(l.api=`/api/suggest/${a.data}`),l.disabled=l.disabled??t,Array.isArray(l.schema)&&(l.schema=Eo(l.schema,l.disabled)),r.push(l)}),r}const n=[];return Object.entries(o).forEach(r=>{const a={name:r[0],...r[1],type:Yr(r[1].type),label:r[1].label||r[1].ua,rules:r[1].rules||r[1].validators,disabled:r[1].disabled??t};if(a.type==="email"&&!a.rules&&(a.rules=["email"]),a.type==="tel"&&!a.rules){const l=a.mask||Et,s=Tt(l)||Tt(Et);a.rules=[{type:"tel",digits:s}]}r[1].type?.includes("list")&&(a.multiple=!0),!a.api&&r[1].data&&(a.api=`/api/suggest/${r[1].data}`),Array.isArray(a.schema)&&(a.schema=Eo(a.schema,a.disabled)),n.push(a)}),n}function Yh(o,t,n=!1){const r=e.computed(()=>Eo((Array.isArray(t),t),typeof n=="boolean"?n:n.value)),a=e.ref({});function l(p){return wr(o?.value,p?.conditions)}const s=new Set(["maxField"]);function c(p){return typeof p.maxField=="string"&&p.maxField?!0:(p.rules||[]).some(m=>{const f=typeof m=="string"?m:m.type;return f?s.has(f):!1})}function i(p){const m=[],f=Number(p?.minlength),w=Number(p?.maxlength),b=Number(p?.min),v=Number(p?.max);!Number.isNaN(f)&&Number.isFinite(f)&&m.push({type:"minlength",value:f}),!Number.isNaN(w)&&Number.isFinite(w)&&m.push({type:"maxlength",value:w}),!Number.isNaN(b)&&Number.isFinite(b)&&m.push({type:"min",value:b}),!Number.isNaN(v)&&Number.isFinite(v)&&m.push({type:"max",value:v}),typeof p?.maxField=="string"&&p.maxField&&m.push({type:"maxField",field:p.maxField,message:p.maxFieldMessage});const C=[...m,...p.rules||[]];if(!C.length)return;if(!l(p)){delete a.value[p.name];return}let V=!1,$=null;C.forEach(U=>{const Z=Kh(o.value[p.name],U,o.value);Z&&(V=!0,!$&&typeof Z=="string"&&($=Z))}),V&&$?a.value[p.name]=$:delete a.value[p.name]}const d=(p=r.value,m=!0)=>(p.forEach(f=>{i(f),f.schema&&d(f.schema,!1)}),m&&Object.values(a.value).some(Boolean)?a.value:null);e.watch(o,()=>{const p=[],m=f=>{f.forEach(w=>{c(w)&&p.push(w),w.schema&&m(w.schema)})};m(r.value),p.forEach(i)},{deep:!0});const h=e.computed(()=>r.value?.filter(p=>p.hidden!==!0&&l(p)));return{errors:a,validate:d,reset:()=>{o.value={},a.value={}},visibleSchema:h}}const Xh={class:"flex w-full h-full min-h-0 gap-6"},Zh={key:0,"data-orientation":"horizontal",role:"none",class:"mt-1 shrink-0 h-[1px] w-full bg-slate-100 dark:bg-slate-600"},rt=e.defineComponent({__name:"vs-compact-form",props:e.mergeModels({schema:{default:()=>[]},style:{default:()=>({})},modelValue:{},layout:{default:()=>"default"},formId:{default:()=>""},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,a=o,l=e.computed(()=>!!a.formId||a.allowIdField),s=e.useModel(o,"form"),c=e.useModel(o,"modelValue"),i=e.useModel(o,"values"),d=e.computed({get:()=>i.value??c.value,set:Y=>{c.value=Y,i.value=Y}}),{errors:h,validate:y,reset:p,visibleSchema:m}=Yh(d,a.schema,e.toRef(a,"disabled")),f=e.ref(null),w=e.ref(null),b=e.ref({}),v=e.computed(()=>a.navigation),C=e.computed(()=>a.navWidth),V=e.computed(()=>a.style?.columns),$=Object.freeze({container:12,label:3}),U=e.computed(()=>a.columns??V.value??$),Z=e.computed(()=>a.columns!=null||V.value!=null),O=e.computed(()=>Z.value?"horizontal":a.layout),E=Y=>Y?.columns?"horizontal":O.value,S=Y=>Y?.columns??U.value,_=e.computed(()=>{const Y={},q=I=>{if(!I)return;(Array.isArray(I)?I.map((te,L)=>({key:String(L),entry:te})):typeof I=="object"?Object.entries(I).map(([te,L])=>({key:te,entry:L})):[]).forEach(({key:te,entry:L})=>{if(!L||typeof L!="object")return;const M=L.name?String(L.name):te;M&&(Y[M]={...L,name:M}),Array.isArray(L.schema)&&q(L.schema)})};return q(a.schema),Y}),T=()=>{!l.value&&d.value&&delete d.value.id,r("update:modelValue",d.value),y(),r("handle-submit",d.value)},j=Y=>{r("value-selected",Y)};t({validate:y,reset:p,errors:h}),e.onMounted(()=>{s.value={value:d.value,errors:h.value,reset:p,validate:y,formId:a.formId}});function oe(Y,q){if(Y===q)return!0;if(typeof Y!="object"||typeof q!="object"||!Y||!q)return!1;const I=Object.keys(Y),J=Object.keys(q);return I.length!==J.length?!1:I.every(te=>Y[te]===q[te])}function A(Y){return Array.isArray(Y)?[...Y]:Y&&typeof Y=="object"?{...Y}:Y}function P(Y){Array.isArray(Y)&&Y.forEach(q=>{if(!q)return;const I=q.name,J=q.default!==void 0;I&&J&&d.value[I]===void 0&&(d.value[I]=A(q.default)),Array.isArray(q.schema)&&P(q.schema)})}return e.watch(m,Y=>{P(Y)},{immediate:!0,deep:!0}),e.provide("form",s),e.provide("values",d),e.provide("field-props",b),e.provide("schema-by-name",_),(Y,q)=>(e.openBlock(),e.createElementBlock("div",Xh,[e.createElementVNode("div",{class:"flex-1 min-h-0 overflow-y-auto overflow-x-visible",ref_key:"formScrollContainer",ref:w},[e.createElementVNode("form",{ref_key:"formRef",ref:f,onSubmit:e.withModifiers(T,["prevent"]),class:e.normalizeClass(["grid grid-cols-12 p-1",O.value==="default"?"gap-6":"gap-4"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(m),(I,J)=>(e.openBlock(),e.createElementBlock("div",{key:I.name,class:e.normalizeClass(E(I)==="horizontal"?"col-span-12":`col-span-12 md:col-span-${I.col||12}`)},[e.createVNode(Kr,{style:e.normalizeStyle(Y.style),item:I,layout:E(I),columns:S(I),"model-value":d.value[I.name],"onUpdate:modelValue":te=>{if(I.name==="id"&&!l.value)return;const L=d.value[I.name];oe(L,te)||(d.value[I.name]=te)},error:e.unref(h)[I.name],onValueSelected:j},null,8,["style","item","layout","columns","model-value","onUpdate:modelValue","error"]),E(I)==="settings"&&J+1!==e.unref(m).length?(e.openBlock(),e.createElementBlock("div",Zh)):e.createCommentVNode("",!0)],2))),128))],34)],512),e.createVNode(Lh,{target:f.value,"scroll-container":w.value,enabled:v.value,width:C.value},null,8,["target","scroll-container","enabled","width"])]))}}),Jh={class:"relative"},Qh={class:"w-full h-full fixed top-0 start-0 bg-black bg-opacity-50"},eg={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"},tg={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},ng={class:"font-medium text-gray-800 dark:text-[#ffffff]"},og={class:"p-4 mim-h-0 h-full overflow-auto"},Xr=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,a=e.ref(n.schema),l=e.ref(n.defaultValue?JSON.parse(JSON.stringify(n.defaultValue)):{}),s=e.ref({}),c=e.ref(n.token||""),i=e.ref(n.token||""),d=e.ref(n.mode),h=()=>{const b=n.method?.trim().toUpperCase();return b==="GET"||b==="POST"||b==="PUT"?b:d.value==="add"?"POST":"PUT"},y=()=>{ge.notify({type:"success",title:"Успішно",message:`Дані успішно ${d.value==="add"?"збережено":"оновлено"}`})},p=b=>{const v={};b.id!==void 0&&b.id!==null&&(v.id=b.id,i.value=b.id.toString()),b.obj&&typeof b.obj=="object"&&Object.assign(v,b.obj),Object.keys(v).length&&(l.value={...l.value,...v})},m=async b=>{if(console.log(b),b.ok){await b.json().catch(()=>({})),y(),r("save",l.value);return}const v=await b.json().catch(()=>({})),C=v.message||v.error;if(b.status===400){ge.notify({type:"warning",title:"Помилка валідації",message:C||"Некоректні дані (400)"});return}if(b.status===403){ge.notify({type:"warning",title:"Доступ заборонено",message:C||"Доступ заборонено (403)"});return}if(b.status===500){ge.notify({type:"error",title:"Серверна помилка",message:C||"Виникла помилка на сервері (500)"});return}ge.notify({type:"error",title:"Помилка",message:C||`Статус: ${b.status}`})};async function f(){const b=s.value.validate();if(b){ge.notify({type:"warning",title:"Помилка валідації",message:Object.entries(b).map(([C,V])=>`${C}: ${V}`).join(`