@opengis/form 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,8 @@
1
- (function(ve,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):(ve=typeof globalThis<"u"?globalThis:ve||self,e(ve.FormBuilder={},ve.Vue,ve.OpenGISCore,ve.lucide))})(this,function(ve,e,we,X){"use strict";function kn(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 qo(o,t,n){return!!kn(o,t,n)}const Ko=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 i=s.currentTarget.getBoundingClientRect();r.value={top:`${i.bottom+4}px`,left:`${Math.min(i.left,window.innerWidth-230)}px`},n.value=!0}function l(){n.value=!1}return(s,i)=>(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))}}),no={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"}}},oo={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:"Скасувати"}}},zl={class:"w-full relative"},jl={key:0,class:"text-[14px] font-medium text-gray-900 mb-2 flex items-center gap-1"},Ul={class:"opacity-100"},Hl={key:0,class:"text-red-500 text-[14px]"},ql={key:2,class:"text-[11px] text-slate-500 font-normal"},Kl={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Wl=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"),i={en:no?.form?.autofillFrom,uk:oo?.form?.autofillFrom},c=e.computed(()=>{const d=t.item?.__autoMeta;if(!d||d?.source!=="parent-auto"||!d?.parentField)return"";const g=String(t.item?.__locale||"uk"),f=String(d.parentField),p=s?.value?.[f],m=p?.[`label:${g}`]||(g!=="uk"?p?.[g]:void 0)||p?.label||p?.ua||p?.en||f;return`${i[g]||i.uk}: ${m}`});return(d,g)=>(e.openBlock(),e.createElementBlock("div",zl,[r.value?(e.openBlock(),e.createElementBlock("div",jl,[e.createElementVNode("span",Ul,e.toDisplayString(n.value),1),a.value?(e.openBlock(),e.createElementBlock("span",Hl,"*")):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createBlock(Ko,{key:1,text:l.value},null,8,["text"])):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("span",ql," ("+e.toDisplayString(c.value)+") ",1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(d.$slots,"default",e.mergeProps(d.$attrs,{class:{"opacity-60":d.item.disabled}})),d.error?(e.openBlock(),e.createElementBlock("span",Kl,e.toDisplayString(d.error),1)):e.createCommentVNode("",!0)]))}}),Gl={class:"w-full relative flex flex-row items-center gap-2"},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-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:no?.form?.autofillFrom,uk:oo?.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"),h=String(p.parentField),w=a?.value?.[h],y=w?.[`label:${m}`]||(m!=="uk"?w?.[m]:void 0)||w?.label||w?.ua||w?.en||h;return`${l[m]||l.uk}: ${y}`}),i=e.computed(()=>t.columns??{container:12,label:3}),c=e.computed(()=>{const{container:p,label:m}=i.value;return!p||p<=0?0:Math.min(Math.max(m??0,0),p)/p}),d=e.computed(()=>t.item?.type==="html"||c.value<=0?!1:!!n.value),g=e.computed(()=>{if(!d.value)return{};const p=`${c.value*100}%`;return{flexBasis:p,maxWidth:p}}),f=e.computed(()=>{const{container:p,label:m}=i.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 h=Math.max(p-Math.max(m??0,0),0)/p;if(!h)return{};const w=`${h*100}%`;return{flexBasis:w,maxWidth:w}});return(p,m)=>(e.openBlock(),e.createElementBlock("div",Gl,[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(g.value)},[e.createTextVNode(e.toDisplayString(n.value)+" ",1),p.item?.rules?.includes("required")&&n.value?(e.openBlock(),e.createElementBlock("span",Yl,"*")):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createBlock(Ko,{key:1,text:r.value},null,8,["text"])):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock("span",Xl," ("+e.toDisplayString(s.value)+") ",1)):e.createCommentVNode("",!0)],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"flex-1 min-w-0",style:e.normalizeStyle(f.value)},[e.renderSlot(p.$slots,"default",e.normalizeProps(e.guardReactiveProps(p.$attrs)))],4),p.error?(e.openBlock(),e.createElementBlock("span",Zl,e.toDisplayString(p.error),1)):e.createCommentVNode("",!0)]))}}),Ql={class:"w-full relative"},ea={key:0,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},ta=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",Ql,[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(t.$attrs))),t.error?(e.openBlock(),e.createElementBlock("span",ea,e.toDisplayString(t.error),1)):e.createCommentVNode("",!0)]))}}),na={class:"flex-1 min-w-0"},oa={key:0,class:"text-sm font-medium text-slate-700 dark:text-slate-200 flex items-center gap-1"},ra={class:"truncate"},la={key:0,class:"text-red-500 text-[14px]"},aa=["innerHTML"],sa={key:0,class:"mt-1 text-xs text-red-500"},ia={default:Wl,horizontal:Jl,inline:ta,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 i=typeof localStorage<"u"?localStorage.getItem("locale"):null;n.value=i||"uk"};return e.onMounted(()=>{try{typeof localStorage<"u"&&localStorage.locale&&(n.value=localStorage.locale)}catch{}window.addEventListener("storage",s)}),e.onUnmounted(()=>{window.removeEventListener("storage",s)}),(i,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["w-full relative",{"opacity-60":i.item?.disabled}])},[e.createElementVNode("div",{class:e.normalizeClass(["gap-2 md:flex-row md:items-center md:justify-between",[["switcher","native-select"].includes(i.item.type)?"flex flex-col":""]])},[e.createElementVNode("div",na,[i.ua||i.label?(e.openBlock(),e.createElementBlock("p",oa,[e.createElementVNode("span",ra,e.toDisplayString(i.item[n.value]||i.ua||i.label),1),a.value?(e.openBlock(),e.createElementBlock("span",la,"*")):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,aa)):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:e.normalizeClass(["w-full",["select","native-select"].includes(i.item.type)?"md:w-[30%]":"md:w-auto"])},[e.renderSlot(i.$slots,"default",e.normalizeProps(e.guardReactiveProps(i.$attrs)))],2)],2),l.value?(e.openBlock(),e.createElementBlock("p",sa,e.toDisplayString(l.value),1)):e.createCommentVNode("",!0)],2))}})};function Qe(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 ca=["placeholder","disabled"],da=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}=Qe(t.style),r=e.useModel(o,"modelValue"),a=e.computed(()=>!!t.disabled),l=e.computed(()=>t.placeholder??"");return(s,i)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"password","onUpdate:modelValue":i[0]||(i[0]=c=>r.value=c),placeholder: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,ca)),[[e.vModelText,r.value]])}}),ua=["placeholder","disabled","maxlength","minlength"],Ht=e.defineComponent({__name:"vs-input-text",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=Qe(t.style),r=e.useModel(o,"modelValue"),a=e.computed(()=>!!t.disabled),l=e.computed(()=>t.placeholder??""),s=e.computed(()=>t.maxlength??void 0),i=e.computed(()=>t.minlength??void 0);function c(){typeof r.value=="string"&&(r.value=r.value.trim())}return(d,g)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"text","onUpdate:modelValue":g[0]||(g[0]=f=>r.value=f),placeholder:l.value,disabled:a.value,maxlength:s.value,minlength:i.value,onBlur:c,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[d.customClass,e.unref(n),{"!border-red-600":d.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,ua)),[[e.vModelText,r.value]])}}),pa=["step","placeholder","disabled","min","max"],Wo=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}=Qe(t.style),r=e.useAttrs(),a=e.useModel(o,"modelValue"),l=e.computed(()=>!!t.disabled),s=g=>{if(g==null||g==="")return;const f=typeof g=="string"?g.trim().replace(",","."):g,p=Number(f);return Number.isFinite(p)?p:void 0},i=e.computed(()=>s(t.min??r.min)),c=e.computed(()=>s(t.max??r.max)),d=e.computed(()=>{if(t.step!==void 0&&t.step!==null&&t.step!=="")return t.step;const g=r.step;return typeof g=="number"||typeof g=="string"?g:"any"});return(g,f)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"number",step:d.value,"onUpdate:modelValue":f[0]||(f[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:i.value,max:c.value},null,10,pa)),[[e.vModelText,a.value]])}}),wn=o=>!!String(o??"").trim(),Nt=o=>o?.color?String(o.color):"",Zt=o=>{const t=o?.icon;if(typeof t=="string")return t;const n=o?.imgUrl;return typeof n=="string"?n:""},Jt=o=>{const t=o?.icon;return t&&typeof t!="string"?t:null},ma={class:"flex items-center gap-[4px]"},fa=["value","id","disabled"],ha=["for"],ga=["innerHTML"],ya={key:1,class:"text-[14px] text-gray-700 flex items-center gap-2 dark:text-neutral-400"},ba=["src"],ka=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(()=>Zt(r.option)),i=e.computed(()=>Jt(r.option)),c=e.computed(()=>Nt(r.option)),d=e.computed(()=>!!(c.value&&!s.value&&!i.value)),g=e.computed(()=>!!(s.value&&c.value)),f=e.computed(()=>c.value?{color:c.value}:void 0),p=e.computed(()=>{if(!(!s.value||!c.value))return{backgroundColor:c.value,WebkitMaskImage:`url(${s.value})`,maskImage:`url(${s.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(m,h)=>(e.openBlock(),e.createElementBlock("div",ma,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",value:m.value,"onUpdate:modelValue":h[0]||(h[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,fa),[[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,ga)):(e.openBlock(),e.createElementBlock("span",ya,[d.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:c.value})},null,4)):e.createCommentVNode("",!0),g.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,ba)):i.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(f.value)},null,8,["style"])):e.createCommentVNode("",!0),e.renderSlot(m.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(m.label),1)])]))],10,ha)]))}}),wa=["name","value","disabled"],xa=["innerHTML"],va={key:1,class:"flex items-center gap-[6px] text-[14px]"},_a={key:2,class:"text-[16px] inline-flex items-center justify-center"},Ca=["src"],Ea=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"),i=e.computed(()=>({...n.option??{},icon:n.option?.icon??n.icon,imgUrl:n.option?.imgUrl??n.imgUrl,color:n.option?.color})),c=e.computed(()=>Zt(i.value)),d=e.computed(()=>Jt(i.value)),g=e.computed(()=>Nt(i.value)),f=e.computed(()=>!!(g.value&&!c.value&&!d.value)),p=e.computed(()=>!!(c.value&&g.value)),m=e.computed(()=>g.value?{color:g.value}:void 0),h=e.computed(()=>{if(!(!c.value||!g.value))return{backgroundColor:g.value,WebkitMaskImage:`url(${c.value})`,maskImage:`url(${c.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(w,y)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["group relative flex justify-center items-center gap-x-3 text-center bg-white text-gray-800 ring-ring ring-2 cursor-pointer rounded-lg",[s.value,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":y[0]||(y[0]=C=>a.value=C),disabled:w.disabled},null,8,wa),[[e.vModelCheckbox,a.value]]),w.html?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-full",innerHTML:w.html},null,8,xa)):(e.openBlock(),e.createElementBlock("span",va,[f.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:g.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(h.value)},null,4)):c.value||d.value?(e.openBlock(),e.createElementBlock("span",_a,[c.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:c.value,width:"16",height:"16",alt:"icon"},null,8,Ca)):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))}}),Ba={class:"flex items-center"},ro=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:i=>{if(Array.isArray(n.modelValue)){let c=[...n.modelValue];i?c.includes(n.value)||c.push(n.value):c=c.filter(d=>d!==n.value),r("update:modelValue",c)}else r("update:modelValue",i)}}),s=e.ref(`vs-checkbox-${n.view||"default"}`);return(i,c)=>(e.openBlock(),e.createElementBlock("div",Ba,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value==="vs-checkbox-buttons"?e.unref(Ea):e.unref(ka)),{value:i.value,label:i.label,html:i.labelHtml,info:i.option?.info,disabled:i.disabled,modelValue:l.value,"onUpdate:modelValue":c[0]||(c[0]=d=>l.value=d),id:a,icon:i.icon,imgUrl:i.imgUrl,option:i.option,style:e.normalizeStyle(i.style),error:i.error},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.label),1)]),_:1},8,["value","label","html","info","disabled","modelValue","icon","imgUrl","option","style","error"]))]))}}),Va={key:0,class:"flex items-start gap-x-1"},Sa={key:0,class:"text-red-500 text-[14px]"},$a=["title"],Aa=["disabled"],lo=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",Va,[e.createVNode(ro,{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",Sa,"*")):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,$a)):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,Aa))}}),Na=["id","innerHTML"],ao=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,Na))}}),Ma=["placeholder","disabled","name"],xn=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}=Qe(t.style),r=e.useModel(o,"modelValue"),a=e.ref(null);let l=null;function s(i){const c=i==null?"":String(i),d={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},g=new Set;let f=!1;for(let m=0;m<c.length;m+=1){const h=c[m];h==="{"?f=!0:h==="}"?f=!1:f&&g.add(h)}const p={};return Object.keys(d).forEach(m=>{g.has(m)||(p[m]=d[m])}),{mask:c,definitions:p,lazy:!1}}return e.onMounted(async()=>{if(a.value){const{default:i}=await Promise.resolve().then(()=>Gn),c=s(t.mask||"");l=i(a.value,c),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,i=>{if(l){const c=s(i||"");l.updateOptions(c)}}),e.watch(r,i=>{l&&l.unmaskedValue!==i&&(l.value=i!=null?String(i):"")}),(i,c)=>(e.openBlock(),e.createElementBlock("input",{type:"text",ref_key:"inputEl",ref:a,placeholder:i.placeholder,disabled:i.disabled,name:i.name,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"}},null,10,Ma))}}),Fa={class:"relative w-full bg-white rounded-lg"},Da={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},Ta=["placeholder","disabled"],so=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}=Qe(t.style),r=e.useModel(o,"modelValue");return(a,l)=>(e.openBlock(),e.createElementBlock("div",Fa,[e.createElementVNode("div",Da,[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,Ta),[[e.vModelText,r.value]])]))}}),_t="+99(999)-999-99-99";function Mt(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 La={class:"relative w-full bg-white rounded-lg"},Ia={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] pointer-events-none"},Oa=["name","placeholder","disabled","pattern"],io=e.defineComponent({__name:"vs-input-tel",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{},mask:{default:_t}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.computed(()=>`^\\+[1-9]\\d{${(Mt(t.mask||_t)||Mt(_t))-1}}$`),{inputClass:r}=Qe(t.style),a=e.useModel(o,"modelValue"),l=e.ref(null);let s=null;function i(g){const f={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},p=new Set;let m=!1;for(let w=0;w<g.length;w+=1){const y=g[w];y==="{"?m=!0:y==="}"?m=!1:m&&p.add(y)}const h={};return Object.keys(f).forEach(w=>{p.has(w)||(h[w]=f[w])}),{mask:g,definitions:h,lazy:!1,disabled:t.disabled}}function c(g){if(g==null||g==="")return"";const f=String(g).trim();return f?f.replace(/\D/g,""):""}function d(){if(!s)return;const g=s.unmaskedValue??"";a.value=g?`+${g}`:""}return e.onMounted(async()=>{if(!l.value)return;const{default:g}=await Promise.resolve().then(()=>Gn),f=i(t.mask||"");s=g(l.value,f),s.on("accept",d),s.on("complete",d);const p=c(a.value);s.unmaskedValue=p}),e.onBeforeUnmount(()=>{s?.destroy(),s=null}),e.watch(()=>t.mask,g=>{s&&s.updateOptions(i(g||""))}),e.watch(()=>t.disabled,g=>{s&&s.updateOptions({disabled:g})}),e.watch(a,g=>{if(!s)return;const f=c(g);s.unmaskedValue!==f&&(s.unmaskedValue=f)}),(g,f)=>(e.openBlock(),e.createElementBlock("div",La,[e.createElementVNode("div",Ia,[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:g.name,placeholder:g.placeholder,disabled:g.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":g.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Oa)]))}}),Pa=["value","disabled"],Ra=["innerHTML"],za={key:1,class:"flex items-center gap-2"},ja=["src"],Ua={class:"text-[13px] text-gray-700"},Ha=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(()=>Zt(t.option)),l=e.computed(()=>Jt(t.option)),s=e.computed(()=>Nt(t.option)),i=e.computed(()=>!!(s.value&&!a.value&&!l.value)),c=e.computed(()=>!!(a.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),g=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(f,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,Pa),[[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,Ra)):(e.openBlock(),e.createElementBlock("div",za,[i.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:s.value})},null,4)):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(g.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,ja)):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",Ua,e.toDisplayString(t.text),1)]))],2))}}),qa=["value","disabled"],Ka=["innerHTML"],Wa={key:1,class:"flex items-center gap-2"},Ga=["src"],Ya={class:"text-[13px] text-gray-700"},Xa={"vs-input-radio-default":Ha,"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(()=>Zt(t.option)),l=e.computed(()=>Jt(t.option)),s=e.computed(()=>Nt(t.option)),i=e.computed(()=>!!(s.value&&!a.value&&!l.value)),c=e.computed(()=>!!(a.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),g=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(f,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,qa),[[e.vModelRadio,n.value]]),t.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:t.html},null,8,Ka)):(e.openBlock(),e.createElementBlock("div",Wa,[i.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:s.value})},null,4)):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(g.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,Ga)):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",Ya,e.toDisplayString(t.text),1)]))],2))}})},Go=o=>Array.isArray(o)?o:Array.isArray(o?.data)?o.data:[],Yo=o=>{const t=o.host??"",n=o.prefix??"api",r=o.api??`/${n}/suggest/${o.data}`;return`${t}${r}`},Za=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 i=await(await fetch(`${Yo(a)}?${l.toString()}`)).json();return Go(i)}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 i=await(await fetch(`${Yo(a)}?${l.toString()}`)).json();return Go(i)[0]??null}catch{return null}}}),vn=({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}=Za(()=>({data:o.data,options:o.options,api:o.api,prefix:o.prefix,host:o.host,start:o.start,parentValue:a.value})),i=async(c="")=>{const d=o.data?await l(c):o.options?[...o.options]:[];return r.value=d,r.value};return e.watch(()=>o.options,()=>{o.data||(r.value=o.options?[...o.options]:[])},{immediate:!0,deep:!0}),n&&e.watch(a,async()=>{o.data&&(r.value=await l())},{immediate:!1}),{optionsList:r,parentValue:a,fetchOptions:l,fetchOptionByValue:s,loadOptions:i}},Ja=/\{\{\s*([^}]+?)\s*\}\}/g,Qa=o=>(o?String(o):"").replace(/<[^>]*>/g,"").trim(),es=(o,t)=>t.split(".").reduce((n,r)=>n==null?n:n[r.trim()],o),_n=(o,t)=>{if(!o)return"";const n=(t??"").trim();return n?n.replace(Ja,(r,a)=>{const l=String(a).trim(),s=o,c=(l.includes(".")?es(s,l):void 0)??s[l];return c!=null?String(c):""}):o.text??""},Cn=(o,t)=>{if(!o)return"";const n=_n(o,t);return Qa(n)||o.text||""},co=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(()=>Xa[`vs-input-radio-${t.view}`]),a=e.computed(()=>t.slot??t?.optionTemplate??""),l=e.computed(()=>wn(a.value)),s=m=>_n(m,a.value),i=m=>Cn(m,a.value),c=e.computed(()=>t.position==="horizontal"?"flex w-full flex-row flex-wrap gap-[10px]":"flex w-full flex-col gap-2"),d=e.computed(()=>{if(t.position==="horizontal"&&t.customClass?.includes("50%"))return{flex:"0 0 calc(50% - 5px)"}}),g=e.inject("values",null),{optionsList:f,loadOptions:p}=vn({props:t,formValues:g});return e.onMounted(async()=>{await p()}),(m,h)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(c.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(f),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:i(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":h[0]||(h[0]=y=>n.value=y)},{ref_for:!0},m.$attrs),null,16,["text","html","option","value","checked","custom-class","modelValue"]))],6))),128))],2))}}),ts={key:1,class:"w-full flex flex-col gap-4"},ns={key:0,class:"text-sm font-medium text-muted-foreground my-2"},os="Без категорії",rs=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:i}=vn({props:{...n,options:n.options},formValues:l}),c=e.computed(()=>s.value),d=_=>_?.value||_?.id||_?.text||_,g=e.computed(()=>n.slot??n?.optionTemplate??""),f=e.computed(()=>wn(g.value)),p=_=>_n(_,g.value),m=_=>Cn(_,g.value),h=_=>`lg:col-span-${_||12}`,w=e.computed(()=>[n.position==="vertical"?"flex flex-col":"",n.colSpan?"grid":"flex justify-start"]),y=_=>_==null||_===""?null:typeof _=="string"||typeof _=="number"?_:String(_),C=e.computed(()=>{if(!n.group)return[];const _=new Map;c.value.forEach(I=>{const V=I[n.group],S=y(V);_.has(S)||_.set(S,[]),_.get(S)?.push(I)});const B=[];n.values?.length&&n.values.forEach(I=>{const V=y(I);B.push(V)});const $=new Set,j=I=>{const V=_.get(I)||[];if(!V.length)return null;const S=I===null?"group-null":`group-${String(I)}`,x=I===null?os:String(I);return $.add(I),{key:S,label:x,options:V}},Z=[];return B.forEach(I=>{const V=j(I);V&&Z.push(V)}),_.forEach((I,V)=>{if($.has(V))return;const S=j(V);S&&Z.push(S)}),Z});return e.watch(()=>n.modelValue,_=>{if(typeof _=="boolean"&&c.value.length===1){const B=d(c.value[0]);a[B]=_}else if(Array.isArray(_)){const B=new Set(_);c.value.forEach($=>{if(!$.disabled){const j=d($);a[j]=B.has(j)}})}},{immediate:!0}),e.watch(a,()=>{if(!c.value.length){r("update:modelValue",null);return}const _=Object.entries(a).filter(([,B])=>B).map(([B])=>B);r("update:modelValue",_.length===0?[]:_)},{deep:!0}),e.onMounted(async()=>{if(await i(),typeof n.modelValue=="boolean"&&c.value.length===1){const _=d(c.value[0]);a[_]=n.modelValue}else if(Array.isArray(n.modelValue)){const _=new Set(n.modelValue);c.value.forEach(B=>{if(!B.disabled){const $=d(B);a[$]=_.has($)}})}}),(_,B)=>n.group?(e.openBlock(),e.createElementBlock("div",ts,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.value,$=>(e.openBlock(),e.createElementBlock("div",{key:$.key,class:"flex flex-col gap-2"},[$.label?(e.openBlock(),e.createElementBlock("span",ns,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,j=>(e.openBlock(),e.createBlock(ro,{modelValue:a[d(j)],"onUpdate:modelValue":Z=>a[d(j)]=Z,value:d(j),class:e.normalizeClass(h(_.colSpan)),disabled:n.disabled||j.disabled,label:m(j),labelHtml:f.value?p(j):"",key:`${$.key}-${d(j)}`,icon:j?.icon,imgUrl:j?.imgUrl,option:j,view:_.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(c.value,$=>(e.openBlock(),e.createBlock(ro,{modelValue:a[d($)],"onUpdate:modelValue":j=>a[d($)]=j,value:d($),class:e.normalizeClass(h(_.colSpan)),disabled:n.disabled||$.disabled,label:m($),labelHtml:f.value?p($):"",key:d($),icon:$?.icon,imgUrl:$?.imgUrl,option:$,view:_.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},Xo=Be(rs,[["__scopeId","data-v-9056e0ec"]]),ls=1440*60*1e3,as=["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"],ss=["січ","лют","бер","квіт","трав","черв","лип","серп","вер","жовт","лист","груд"],is=["нд","пн","вт","ср","чт","пт","сб"];function We(o){return o instanceof Date&&!Number.isNaN(o.getTime())}const qt=o=>new Date(o.getTime());function Pt(o){const t=qt(o);return t.setHours(0,0,0,0),t}function Qt(o){const t=qt(o);return t.setHours(23,59,59,999),t}function uo(o){return Pt(new Date(o.getFullYear(),o.getMonth(),1))}function po(o){return Qt(new Date(o.getFullYear(),o.getMonth()+1,0))}function mo(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 cs(o,t){return mo(o,-1)}function En(o,t){const n=new Date(o);return n.setFullYear(n.getFullYear()+t),n}function Zo(o,t){return En(o,-t)}function Jo(o){return Pt(new Date(o.getFullYear(),0,1))}function Qo(o){return Qt(new Date(o.getFullYear(),11,31))}function ds(o){const t=Math.floor(o.getFullYear()/10)*10;return Pt(new Date(t,0,1))}function us(o){const t=Math.floor(o.getFullYear()/10)*10+9;return Qt(new Date(t,11,31))}const mt=o=>o.getFullYear(),Bn=o=>Math.floor(o.getFullYear()/10)*10;function ps(o){const t=[];let n=Pt(o.start);const r=Pt(o.end);for(;n<=r;)t.push(qt(n)),n=new Date(n.getTime()+ls);return t}function ms(o){const t=[];let n=uo(o.start);const r=po(o.end);for(;n<=r;)t.push(qt(n)),n=mo(n,1);return t}function fs(o){const t=[];let n=Jo(o.start);const r=Qo(o.end);for(;n<=r;)t.push(qt(n)),n=En(n,1);return t}function fo(o,t=1){const n=Pt(o),r=(n.getDay()-t+7)%7;return n.setDate(n.getDate()-r),n}function hs(o,t=1){const n=fo(o,t);return n.setDate(n.getDate()+6),Qt(n)}function gs(o,t,n=0){const r=fo(o,n),a=(t-n+7)%7;return r.setDate(r.getDate()+a),r}const Vn=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear()&&o.getMonth()===t.getMonth()&&o.getDate()===t.getDate(),ho=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear()&&o.getMonth()===t.getMonth(),er=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear(),tr=(o,t)=>!!o&&!!t&&Vn(o,t)&&o.getHours()===t.getHours(),ys=(o,t)=>!!o&&!!t&&tr(o,t)&&o.getMinutes()===t.getMinutes();function bs(o,t){const n=o.getTime();return n>=t.start.getTime()&&n<=t.end.getTime()}const en=(o,t)=>!!o&&!!t&&o.getTime()<t.getTime(),tn=(o,t)=>!!o&&!!t&&o.getTime()>t.getTime();function ks(o){const t=o.filter(n=>We(n));if(t.length)return t.reduce((n,r)=>n.getTime()>=r.getTime()?n:r)}function ws(o){const t=o.filter(n=>We(n));if(t.length)return t.reduce((n,r)=>n.getTime()<=r.getTime()?n:r)}function xs(o,t){const n=qt(o);return typeof t.year=="number"&&n.setFullYear(t.year),typeof t.month=="number"&&n.setMonth(t.month),typeof t.date=="number"&&n.setDate(t.date),typeof t.hours=="number"&&n.setHours(t.hours),typeof t.minutes=="number"&&n.setMinutes(t.minutes),typeof t.seconds=="number"&&n.setSeconds(t.seconds),typeof t.milliseconds=="number"&&n.setMilliseconds(t.milliseconds),n}const Sn=(o,t=2)=>String(o).padStart(t,"0");function nr(o,t){return t==="wide"?as[o]:ss[o]}function vs(o){return is[o]}const _s=[{token:"LLLL",format:o=>nr(o.getMonth(),"wide")},{token:"LLL",format:o=>nr(o.getMonth(),"abbreviated")},{token:"EE",format:o=>vs(o.getDay())},{token:"yyyy",format:o=>String(o.getFullYear())},{token:"MM",format:o=>Sn(o.getMonth()+1)},{token:"dd",format:o=>Sn(o.getDate())},{token:"HH",format:o=>Sn(o.getHours())},{token:"mm",format:o=>Sn(o.getMinutes())}];function nn(o,t){if(!We(o))return"";let n="",r=0;for(;r<t.length;){const a=_s.find(l=>t.startsWith(l.token,r));a?(n+=a.format(o),r+=a.token.length):(n+=t[r],r+=1)}return n}const Cs={"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 or(o,t){const n=Cs[t];if(!n){const a=new Date(o);return We(a)?a:null}const r=o.match(n);if(!r)return null;switch(t){case"yyyy-MM-dd":{const[,a,l,s]=r,i=new Date(Number(a),Number(l)-1,Number(s));return We(i)?i:null}case"dd.MM.yyyy":{const[,a,l,s]=r,i=new Date(Number(s),Number(l)-1,Number(a));return We(i)?i:null}case"dd.MM.yyyy HH:mm":{const[,a,l,s,i,c,d]=r,g=new Date(Number(s),Number(l)-1,Number(a),Number(i),Number(c),Number(d||0));return We(g)?g:null}case"HH:mm":{const[,a,l,s]=r,i=new Date;return i.setHours(Number(a),Number(l),Number(s||0),0),i}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 Es=["year","month","day","time","custom"],Bs=e.defineComponent({components:{ChevronLeft:X.ChevronLeft,ChevronRight:X.ChevronRight},emits:{elementClick:o=>We(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"&&Es.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}}}),Vs={key:0,class:"p-datepicker-header flex items-center justify-between mb-1.5"},Ss=["disabled"],$s=["disabled"],As={key:0,class:"p-datepicker-weekheader grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-400 font-medium mb-1.5"},Ns=["disabled","onClick"],Ms={key:1,class:"p-datepicker-buttonbar mt-2 pt-2 border-t border-slate-200 flex items-center justify-between"};function Fs(o,t,n,r,a,l){const s=e.resolveComponent("ChevronLeft"),i=e.resolveComponent("ChevronRight");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["p-datepicker-panel p-component text-center text-slate-700 overflow-x-hidden bg-white border border-slate-200 rounded-xl shadow-[0_4px_12px_rgba(0,0,0,0.1)] p-2",o.viewMode==="month"||o.viewMode==="year"?"w-[182px] min-w-[182px]":"w-[268px] min-w-[182px]"]),style:e.normalizeStyle({"--popout-column-definition":`repeat(${o.columnCount}, 1fr)`}),onMousedown:t[5]||(t[5]=e.withModifiers(()=>{},["prevent"]))},[o.hideHeader?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Vs,[e.createElementVNode("button",{class:"p-datepicker-prev-button inline-flex items-center justify-center size-8 rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300 disabled:hover:bg-transparent",disabled:o.leftDisabled,onClick:t[0]||(t[0]=e.withModifiers(c=>o.$emit("left"),["stop","prevent"]))},[e.renderSlot(o.$slots,"arrow-left",{},()=>[e.createVNode(s,{class:"h-3.5 w-3.5"})])],8,Ss),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.headingClickable?"button":"span"),{class:e.normalizeClass(["p-datepicker-title min-w-0 rounded-md px-2 py-1 text-sm font-semibold leading-snug text-slate-700",o.headingClickable?"hover:bg-slate-100":"",o.viewMode==="month"?"p-datepicker-select-year":"",o.viewMode==="year"?"p-datepicker-decade whitespace-nowrap text-xs px-1":""]),onClick:t[1]||(t[1]=e.withModifiers(c=>o.$emit("heading"),["stop","prevent"]))},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"heading")]),_:3},8,["class"])),e.createElementVNode("button",{class:"p-datepicker-next-button inline-flex items-center justify-center size-8 rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300 disabled:hover:bg-transparent",disabled:o.rightDisabled,onClick:t[2]||(t[2]=e.withModifiers(c=>o.$emit("right"),["stop","prevent"]))},[e.renderSlot(o.$slots,"arrow-right",{},()=>[e.createVNode(i,{class:"h-3.5 w-3.5"})])],8,$s)])),e.createElementVNode("div",null,["subheading"in o.$slots?(e.openBlock(),e.createElementBlock("div",As,[e.renderSlot(o.$slots,"subheading")])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-datepicker-calendar grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-700",o.viewMode==="month"?"p-datepicker-month-view":"",o.viewMode==="year"?"p-datepicker-year-view":"",o.viewMode==="month"?"gap-y-1":""])},[e.renderSlot(o.$slots,"body",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.items,c=>(e.openBlock(),e.createElementBlock("button",{key:c.key,disabled:c.disabled,class:e.normalizeClass(["p-[2px] disabled:text-slate-300"]),onClick:e.withModifiers(d=>o.$emit("elementClick",c.value),["stop","prevent"])},[e.createElementVNode("span",{class:e.normalizeClass([o.viewMode==="month"||o.viewMode==="year"?"inline-flex w-full h-8 items-center justify-center rounded-md text-[13px] font-normal transition-colors":"inline-flex w-8 h-8 items-center justify-center rounded-full text-[13px] font-normal transition-colors",o.viewMode==="month"?"p-datepicker-month":"",o.viewMode==="year"?"p-datepicker-year":"",o.viewMode==="day"?"p-datepicker-day":"",c.selected?"bg-blue-500 text-white font-semibold":"",c.current&&!c.selected&&o.viewMode!=="month"&&o.viewMode!=="year"?"border border-slate-300 font-medium":"",!c.disabled&&!c.selected?"hover:bg-slate-100 hover:text-slate-700":"",!c.current&&!c.selected&&c.disabled?"text-slate-300":""])},e.toDisplayString(c.display),3)],8,Ns))),128))])],2),e.renderSlot(o.$slots,"after-calendar"),o.showButtonBar?(e.openBlock(),e.createElementBlock("div",Ms,[e.createElementVNode("button",{type:"button",class:"p-datepicker-today-button text-xs font-medium text-slate-500 hover:text-slate-700 transition-colors px-1.5 py-1 rounded-md hover:bg-slate-100",onClick:t[3]||(t[3]=e.withModifiers(c=>o.$emit("today"),["stop","prevent"]))},e.toDisplayString(o.todayLabel),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-clear-button text-xs font-medium text-slate-500 hover:text-slate-700 transition-colors px-1.5 py-1 rounded-md hover:bg-slate-100",onClick:t[4]||(t[4]=e.withModifiers(c=>o.$emit("clear"),["stop","prevent"]))},e.toDisplayString(o.clearLabel),1)])):e.createCommentVNode("",!0)])],38)}const $n=Be(Bs,[["render",Fs]]),Ds=e.defineComponent({components:{PickerPopup:$n},emits:{"update:pageDate":o=>We(o),select:o=>We(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(()=>ds(o.pageDate)),r=e.computed(()=>us(o.pageDate)),a=(f,p,m)=>!p&&!m?!0:!(p&&mt(f)<mt(p)||m&&mt(f)>mt(m)),l=e.computed(()=>fs({start:n.value,end:r.value}).map(f=>({value:f,key:String(mt(f)),display:mt(f),selected:!!o.selected&&mt(f)===mt(o.selected),disabled:!a(f,o.lowerLimit,o.upperLimit)}))),s=e.computed(()=>{const f=mt(n.value),p=mt(r.value);return`${f} - ${p}`}),i=e.computed(()=>o.lowerLimit&&(Bn(o.lowerLimit)===Bn(o.pageDate)||en(o.pageDate,o.lowerLimit))),c=e.computed(()=>o.upperLimit&&(Bn(o.upperLimit)===Bn(o.pageDate)||tn(o.pageDate,o.upperLimit)));return{years:l,heading:s,leftDisabled:i,rightDisabled:c,previousPage:()=>t("update:pageDate",Zo(o.pageDate,10)),nextPage:()=>t("update:pageDate",En(o.pageDate,10))}}});function Ts(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]=i=>o.$emit("select",i))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const Ls=Be(Ds,[["render",Ts]]),Is=e.defineComponent({components:{PickerPopup:$n},emits:{"update:pageDate":o=>We(o),select:o=>We(o),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},format:{type:String,required:!1,default:"LLL"},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(o,{emit:t}){const n=e.computed(()=>Jo(o.pageDate)),r=e.computed(()=>Qo(o.pageDate)),a=e.computed(()=>p=>nn(p,o.format)),l=(p,m,h)=>!m&&!h?!0:!(m&&en(p,uo(m))||h&&tn(p,po(h))),s=e.computed(()=>ms({start:n.value,end:r.value}).map(p=>({value:p,display:a.value(p),key:a.value(p),selected:!!o.selected&&ho(o.selected,p),disabled:!l(p,o.lowerLimit,o.upperLimit)}))),i=e.computed(()=>mt(n.value)),c=e.computed(()=>o.lowerLimit&&(er(o.lowerLimit,o.pageDate)||en(o.pageDate,o.lowerLimit))),d=e.computed(()=>o.upperLimit&&(er(o.upperLimit,o.pageDate)||tn(o.pageDate,o.upperLimit)));return{months:s,heading:i,leftDisabled:c,rightDisabled:d,previousPage:()=>t("update:pageDate",Zo(o.pageDate,1)),nextPage:()=>t("update:pageDate",En(o.pageDate,1))}}});function Os(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]=i=>o.$emit("back")),onElementClick:t[1]||(t[1]=i=>o.$emit("select",i))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),_:1},8,["items","leftDisabled","rightDisabled","onLeft","onRight"])}const Ps=Be(Is,[["render",Os]]),Rs=e.defineComponent({components:{PickerPopup:$n},emits:{"update:pageDate":o=>We(o),select:o=>We(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(()=>y=>C=>nn(C,y)),r=e.computed(()=>uo(o.pageDate)),a=e.computed(()=>po(o.pageDate)),l=e.computed(()=>({start:r.value,end:a.value})),s=e.computed(()=>({start:fo(r.value,o.weekStartsOn),end:hs(a.value,o.weekStartsOn)})),i=e.computed(()=>o.customWeekdays?.length===7?o.customWeekdays:null),c=e.computed(()=>{const y=o.weekStartsOn,C=i.value;if(C)return Array.from({length:7}).map((B,$)=>C[(y+$)%7]);const _=n.value(o.weekdayFormat);return Array.from(Array(7)).map((B,$)=>(y+$)%7).map(B=>gs(new Date,B,o.weekStartsOn)).map(_)}),d=(y,C,_,B)=>B?.dates?.some($=>Vn(y,$))||B?.predicate?.(y)?!1:!C&&!_?!0:!(C&&en(y,Pt(C))||_&&tn(y,Qt(_))),g=e.computed(()=>{const y=new Date,C=n.value(o.format);return ps(s.value).map(_=>({value:_,display:C(_),selected:!!o.selected&&Vn(o.selected,_),current:Vn(y,_),disabled:!o.allowOutsideInterval&&!bs(_,l.value)||!d(_,o.lowerLimit,o.upperLimit,o.disabledDates),key:n.value("yyyy-MM-dd")(_)}))}),f=e.computed(()=>n.value(o.headingFormat)(o.pageDate)),p=e.computed(()=>o.lowerLimit&&(ho(o.lowerLimit,o.pageDate)||en(o.pageDate,o.lowerLimit))),m=e.computed(()=>o.upperLimit&&(ho(o.upperLimit,o.pageDate)||tn(o.pageDate,o.upperLimit)));return{weekDays:c,days:g,heading:f,leftDisabled:p,rightDisabled:m,previousPage:()=>t("update:pageDate",cs(o.pageDate)),nextPage:()=>t("update:pageDate",mo(o.pageDate,1))}}});function zs(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]=i=>o.$emit("back")),onElementClick:t[1]||(t[1]=i=>o.$emit("select",i)),onToday:t[2]||(t[2]=i=>o.$emit("today")),onClear:t[3]||(t[3]=i=>o.$emit("clear"))},e.createSlots({heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),subheading:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.weekDays,(i,c)=>(e.openBlock(),e.createElementBlock("span",{key:i,class:e.normalizeClass(`v3dp__subheading__weekday__${c}`)},e.toDisplayString(i),3))),128))]),_:2},[o.$slots["after-calendar"]?{name:"after-calendar",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"after-calendar")]),key:"0"}:void 0]),1032,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const js=Be(Rs,[["render",zs]]),Us=e.defineComponent({components:{PickerPopup:$n,ChevronUp:X.ChevronUp,ChevronDown:X.ChevronDown},emits:{select:o=>We(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 h=0,w=0;m&&(h=m.getHours(),w=m.getMinutes()),r.value=h,a.value=w});const l=(m,h)=>{const w=xs(new Date(n.value.getTime()),{hours:m,minutes:h,seconds:0});f(w)&&(r.value=m,a.value=h,t("select",w))},s=(m,h)=>m<0?h:m>h?0:m,i=()=>l(s(r.value+1,23),a.value),c=()=>l(s(r.value-1,23),a.value),d=()=>l(r.value,s(a.value+1,59)),g=()=>l(r.value,s(a.value-1,59)),f=m=>!(o.disabledTime?.dates?.some(h=>tr(m,h)&&ys(m,h))||o.disabledTime?.predicate?.(m));return{hours:r,minutes:a,padStartZero:m=>`0${m}`.substr(-2),isEnabled:f,incrementHours:i,decrementHours:c,incrementMinutes:d,decrementMinutes:g}}}),Hs={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"},qs={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},Ks={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Ws={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},Gs={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Ys={class:"col-span-2"},Xs={class:"p-datepicker-time-picker flex items-center justify-center gap-2 py-1"},Zs={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},Js={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Qs={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},ei={class:"min-w-8 text-center text-sm font-medium text-slate-700"};function ti(o,t,n,r,a,l){const s=e.resolveComponent("ChevronUp"),i=e.resolveComponent("ChevronDown"),c=e.resolveComponent("picker-popup");return o.embedded?(e.openBlock(),e.createElementBlock("div",Hs,[e.createElementVNode("div",qs,[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",Ks,e.toDisplayString(o.padStartZero(o.hours)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[1]||(t[1]=e.withModifiers((...d)=>o.decrementHours&&o.decrementHours(...d),["stop","prevent"]))},[e.createVNode(i,{class:"h-3.5 w-3.5"})])]),t[8]||(t[8]=e.createElementVNode("div",{class:"text-base font-medium text-slate-500"},":",-1)),e.createElementVNode("div",Ws,[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",Gs,e.toDisplayString(o.padStartZero(o.minutes)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[3]||(t[3]=e.withModifiers((...d)=>o.decrementMinutes&&o.decrementMinutes(...d),["stop","prevent"]))},[e.createVNode(i,{class:"h-3.5 w-3.5"})])])])):(e.openBlock(),e.createBlock(c,{key:1,hideHeader:!0,columnCount:2,viewMode:"time"},{body:e.withCtx(()=>[e.createElementVNode("div",Ys,[e.createElementVNode("div",Xs,[e.createElementVNode("div",Zs,[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",Js,e.toDisplayString(o.padStartZero(o.hours)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[5]||(t[5]=e.withModifiers((...d)=>o.decrementHours&&o.decrementHours(...d),["stop","prevent"]))},[e.createVNode(i,{class:"h-3.5 w-3.5"})])]),t[9]||(t[9]=e.createElementVNode("div",{class:"text-base font-medium text-slate-500"},":",-1)),e.createElementVNode("div",Qs,[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",ei,e.toDisplayString(o.padStartZero(o.minutes)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[7]||(t[7]=e.withModifiers((...d)=>o.decrementMinutes&&o.decrementMinutes(...d),["stop","prevent"]))},[e.createVNode(i,{class:"h-3.5 w-3.5"})])])])])]),_:1}))}const ni=Be(Us,[["render",ti]]),An=["time","day","month","year"],oi=(o,t,n=void 0)=>{let r=n||new Date;const a=ks([o,r]);a&&(r=a);const l=ws([t,r]);return l&&(r=l),r},ri=e.defineComponent({components:{YearPicker:Ls,MonthPicker:Ps,DayPicker:js,TimePicker:ni,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"&&An.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"&&An.includes(o)}},emits:{"update:modelValue":o=>o==null||We(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),i=e.ref({}),c=e.ref(!1),d=e.ref(!1);let g=null;const f=e.ref(""),p=ie=>{const le=ie.replace(/[a-zA-Z]/g,"0");return/0/.test(le)?le:""},m=e.computed(()=>p(o.inputFormat));let h=null,w=null;const y=()=>{h?.destroy(),h=null},C=async()=>{if(!w){const{default:ie}=await Promise.resolve().then(()=>Gn);w=ie}return w},_=()=>{h&&h.value!==f.value&&(h.value=f.value??"")},B=ie=>{const le=ie&&We(ie)?nn(ie,o.inputFormat):"";f.value!==le&&(f.value=le),_()},$=async()=>{if(y(),!l.value||!m.value)return;h=(await C())(l.value,{mask:m.value,lazy:!0,overwrite:!1}),_()};e.watch(()=>o.modelValue,ie=>{d.value&&o.typeable||B(ie)},{immediate:!0}),e.watch(()=>o.inputFormat,()=>{d.value&&o.typeable||B(o.modelValue)}),e.onMounted(()=>{m.value&&e.nextTick(()=>{$()})}),e.onBeforeUnmount(()=>{y()}),e.watch(m,ie=>{ie?e.nextTick(()=>{$()}):y()});const j=e.computed(()=>n.value!=="none"),Z=e.computed(()=>o.startingView==="time"&&o.minimumView==="time"),I=e.computed(()=>o.startingView==="day"&&o.minimumView==="time"),V=ie=>{o.disabled||(j.value||(r.value=o.modelValue||oi(o.lowerLimit,o.upperLimit,r.value),t("opened")),n.value=ie,e.nextTick(()=>Oe()))},S=()=>{j.value&&(g!==null&&(cancelAnimationFrame(g),g=null),n.value="none",t("closed"))},x=(ie="none")=>{ie==="none"?S():V(ie)};e.watchEffect(()=>{o.disabled&&S()});const L=(ie,le)=>{r.value=le,ie==="year"?t("decadePageChanged",le):ie==="month"?t("yearPageChanged",le):ie==="day"&&t("monthPageChanged",le)},U=ie=>{r.value=ie,o.minimumView==="year"?(S(),B(ie),t("update:modelValue",ie)):V("month")},ne=ie=>{r.value=ie,o.minimumView==="month"?(S(),B(ie),t("update:modelValue",ie)):V("day")},N=ie=>{const le=I.value?(()=>{const ke=o.modelValue||r.value||new Date,Se=new Date(ie);return Se.setHours(ke.getHours(),ke.getMinutes(),0,0),Se})():ie;r.value=le,o.minimumView==="day"?(S(),B(le),t("update:modelValue",le)):I.value?(B(le),t("update:modelValue",le),V("day")):V("time")},P=ie=>{B(ie),t("update:modelValue",ie)},q=()=>{N(new Date)},K=()=>{o.clearable&&(S(),B(null),t("update:modelValue",null),r.value=o.startingViewDate)},O=()=>{j.value||V(J.value)},Q=()=>{d.value=!0,c.value=!1,V(J.value)},re=()=>{d.value=!1,o.typeable&&F({closeOnSuccess:!1,revertOnInvalid:!0})},T=ie=>{const le=ie.target;if(f.value=le?.value??"",!o.typeable)return;const ke=or(f.value,o.inputFormat);ke&&f.value===nn(ke,o.inputFormat)&&(r.value=ke)},F=({closeOnSuccess:ie,revertOnInvalid:le})=>{const ke=l.value?.value??f.value,Se=or(ke,o.inputFormat);return!!Se&&ke===nn(Se,o.inputFormat)&&Se?(r.value=Se,B(Se),t("update:modelValue",Se),ie&&S(),!0):(B(o.modelValue),!1)},A=ie=>{const le=ie.keyCode?ie.keyCode:ie.which,ke=le===27,Se=le===13;if(ke){S(),l.value?.blur();return}o.typeable&&Se&&(F({closeOnSuccess:!0,revertOnInvalid:!0})||l.value?.focus())},J=e.computed(()=>{const ie=An.indexOf(o.startingView),le=An.indexOf(o.minimumView);return ie<le?o.minimumView:o.startingView}),se=e.computed(()=>o.weekDayNames?.length===7?o.weekDayNames:void 0),ee=()=>o.startingView==="time"&&o.minimumView==="time"?null:V("day"),he=()=>{if(!l.value||!s.value)return;const ie=4,le=8,ke=l.value.getBoundingClientRect(),Se=s.value.getBoundingClientRect(),qe=s.value.firstElementChild?.getBoundingClientRect(),Y=window.innerWidth,te=window.innerHeight,oe=window.scrollX||window.pageXOffset,pe=window.scrollY||window.pageYOffset,be=Math.max(160,te-le*2),Ae=Math.min(Se.height||0,be),Fe=te-ke.bottom-ie-le,De=ke.top-ie-le,W=Fe<Ae&&De>Fe;let v=W?ke.top-ie-Ae:ke.bottom+ie;v=Math.max(le,Math.min(v,te-le-Ae));const M=qe?.width||Se.width||268;let z=ke.left;z+M>Y-le&&(z=Y-le-M),z<le&&(z=le);const de=W?Math.max(120,ke.top-ie-le):Math.max(120,te-ke.bottom-ie-le);i.value={position:"absolute",top:`${Math.round(v+pe)}px`,left:`${Math.round(z+oe)}px`,maxHeight:`${Math.round(Math.min(be,de))}px`,overflowX:"hidden",overflowY:"auto",zIndex:"2147483000"},I.value&&n.value==="day"&&(i.value.minWidth="345px")},xe=(ie,le)=>ie.bottom>le.top&&ie.top<le.bottom&&ie.right>le.left&&ie.left<le.right,ye=ie=>{const le=[];let ke=ie.parentElement;for(;ke;){const Se=window.getComputedStyle(ke),Te=Se.overflowY,qe=Se.overflowX,Y=["auto","scroll","hidden","clip"].includes(Te),te=["auto","scroll","hidden","clip"].includes(qe);(Y||te)&&le.push(ke),ke=ke.parentElement}return le},$e=()=>{if(!l.value)return!1;const ie=l.value.getBoundingClientRect(),le=new DOMRect(0,0,window.innerWidth,window.innerHeight);return xe(ie,le)?ye(l.value).every(Se=>xe(ie,Se.getBoundingClientRect())):!1},Le=()=>{if(j.value){if(!$e()){c.value=!0,S();return}Oe();return}c.value&&document.activeElement===l.value&&$e()&&(c.value=!1,V(J.value))};e.watch(n,()=>{j.value&&e.nextTick(()=>Oe())});const Oe=()=>{he(),g!==null&&cancelAnimationFrame(g),g=requestAnimationFrame(()=>{he(),g=null})};e.onMounted(()=>{window.addEventListener("resize",Le),window.addEventListener("scroll",Le,!0),document.addEventListener("pointerdown",Me,!0)}),e.onBeforeUnmount(()=>{g!==null&&(cancelAnimationFrame(g),g=null),window.removeEventListener("resize",Le),window.removeEventListener("scroll",Le,!0),document.removeEventListener("pointerdown",Me,!0)});const Me=ie=>{if(n.value==="none")return;const le=ie.target;if(!le)return;const ke=!!a.value?.contains(le),Se=!!s.value?.contains(le);!ke&&!Se&&(c.value=!1,S())};return{rootRef:a,blur:re,focus:Q,click:O,input:f,inputRef:l,pageDate:r,renderView:x,updatePageDate:L,selectYear:U,selectMonth:ne,selectDay:N,selectToday:q,selectTime:P,keyUp:A,onInput:T,isTimeOnlyMode:Z,isDateTimeMode:I,normalizedWeekdayNames:se,viewShown:n,goBackFromTimepicker:ee,clearModelValue:K,initialView:J,log:ie=>console.log(ie),popupAnchorStyle:i,popupRef:s}}}),li={ref:"rootRef",class:"relative"},ai={class:"p-datepicker p-component p-inputwrapper relative"},si=["readonly","value","placeholder","disabled","tabindex"],ii={class:"p-datepicker-input-icon-container absolute right-2 top-1/2 -translate-y-1/2 pointer-events-none text-slate-400"},ci={class:"absolute right-8 top-1/2 -translate-y-1/2"};function di(o,t,n,r,a,l){const s=e.resolveComponent("Clock3"),i=e.resolveComponent("CalendarDays"),c=e.resolveComponent("X"),d=e.resolveComponent("year-picker"),g=e.resolveComponent("month-picker"),f=e.resolveComponent("time-picker"),p=e.resolveComponent("day-picker");return e.openBlock(),e.createElementBlock("div",li,[e.createElementVNode("div",ai,[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,si),e.createElementVNode("span",ii,[o.isTimeOnlyMode?(e.openBlock(),e.createBlock(s,{key:0,class:"h-4 w-4"})):(e.openBlock(),e.createBlock(i,{key:1,class:"h-4 w-4"}))]),e.withDirectives(e.createElementVNode("div",ci,[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(c,{class:"h-3 w-3"})])])],512),[[e.vShow,o.clearable&&o.modelValue]])]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.withDirectives(e.createElementVNode("div",{ref:"popupRef",style:e.normalizeStyle(o.popupAnchorStyle)},[e.withDirectives(e.createVNode(d,{pageDate:o.pageDate,"onUpdate:pageDate":t[6]||(t[6]=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(g,{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(f,{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(f,{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 ui=Be(ri,[["render",di]]),rr=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}=Qe(n.style),l=e.getCurrentInstance(),s=e.computed(()=>n.mode?n.mode:n.time?"datetime":"date"),i=e.computed(()=>["py-1.5 px-3 block w-full placeholder:text-[#767f8f] bg-white",a.value,n.customClass,{"!border-red-600":n.error}]),c=e.computed(()=>!n.modelValue&&n.now?new Date:null),d=e.computed({get:()=>V(n.modelValue??c.value,s.value)||void 0,set:T=>r("update:modelValue",S(T,s.value))}),g=["Пн","Вт","Ср","Чт","Пт","Сб","Нд"],f=e.computed(()=>{if(n.dayNames?.length)return n.dayNames.length===7?n.dayNames:g}),p=e.computed(()=>{const T=n.weekStart,F=typeof T=="string"?Number(T):T;return F===void 0||Number.isNaN(F)?1:Math.min(6,Math.max(0,F))}),m=e.computed(()=>{const T=n.maxDaysFromNow;if(T==null||T==="")return;const F=typeof T=="string"?Number(T):T;if(!Number.isFinite(F)||F<0)return;const A=new Date;return A.setHours(0,0,0,0),A.setDate(A.getDate()+F),A.setHours(23,59,59,999),A}),h=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 y(){const T=l?.appContext?.config?.globalProperties?.$i18n?.locale;if(typeof T=="string"&&T)return T;if(T&&typeof T=="object"&&"value"in T&&T.value)return String(T.value);if(typeof localStorage<"u"){const F=localStorage.getItem("locale")||localStorage.getItem("language");if(F)return F}return"uk"}function C(){const F=l?.appContext?.config?.globalProperties?.$settings?.dateFormat;if(!F)return"";if(typeof F=="string")return F;if(typeof F=="object"){const A=y();return F[A]||F[A.split("-")[0]]||F.uk||F.en||""}return""}function _(T){return T?T.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 B=e.computed(()=>{const T=w[s.value]||"dd.MM.yyyy";if(s.value==="time")return T;const F=n.dateFormat||C();if(!F)return T;const A=_(F);return A?s.value==="datetime"?`${A} HH:mm`:A:T});function $(T,F){return T?F==="week"?"рррр-тиждень":T.replaceAll("yyyy","рррр").replaceAll("yy","рр").replaceAll("MM","мм").replaceAll("M","м").replaceAll("dd","дд").replaceAll("d","д").replaceAll("HH","гг").replaceAll("H","г").replaceAll("mm",F==="time"||F==="datetime"?"хх":"мм"):""}const j={date:"дд.мм.рррр",datetime:"дд.мм.рррр гг:хх",month:"мм.рррр",week:"рррр-тиждень",time:"гг:хх",year:"рррр"},Z=e.computed(()=>{if(n.placeholder)return n.placeholder;const T=s.value;return $(B.value,T)||j[T]||""}),I=e.ref(!1);e.watch(()=>n.modelValue,T=>{T?I.value=!0:n.now||(I.value=!1)},{immediate:!0}),e.watchEffect(()=>{n.now&&!n.modelValue&&!I.value&&(r("update:modelValue",S(new Date,s.value)),I.value=!0)}),e.watch(B,()=>{r("update:modelValue",S(d.value,s.value))});function V(T,F){if(!T)return null;if(T instanceof Date&&!Number.isNaN(T.getTime()))return T;if(typeof T!="string")return null;switch(F){case"datetime":return ne(T);case"time":return q(T);case"month":return N(T);case"year":return P(T);case"week":return K(T);case"date":default:return U(T)}}function S(T,F){if(!T)return null;const A=T instanceof Date?T:V(T,F);if(!A)return null;switch(F){case"datetime":return`${x(A)}T${L(A)}`;case"time":return L(A);case"month":return`${A.getFullYear()}-${re(A.getMonth()+1)}`;case"year":return`${A.getFullYear()}`;case"week":{const{year:J,week:se}=O(A);return`${J}-W${re(se)}`}case"date":default:return x(A)}}function x(T){return`${T.getFullYear()}-${re(T.getMonth()+1)}-${re(T.getDate())}`}function L(T){return`${re(T.getHours())}:${re(T.getMinutes())}`}function U(T){const F=T.split("-");if(F.length<3)return null;const[A,J,se]=F.map(Number);return!A||!J||!se?null:new Date(A,J-1,se)}function ne(T){const F=T.includes("T")?T:T.replace(" ","T"),A=new Date(F);return Number.isNaN(A.getTime())?null:A}function N(T){const[F,A]=T.split("-").map(Number);return!F||Number.isNaN(A)?null:new Date(F,(A||1)-1,1)}function P(T){const F=Number(T);return F?new Date(F,0,1):null}function q(T){const F=T.trim().match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/);if(!F)return null;const[,A,J,se]=F,ee=new Date;return ee.setHours(Number(A),Number(J),Number(se||0),0),ee}function K(T){const F=T.match(/^(\d{4})-W(\d{2})$/);if(!F)return null;const[,A,J]=F,se=Number(J);return Q(Number(A),se)}function O(T){const F=new Date(Date.UTC(T.getFullYear(),T.getMonth(),T.getDate())),A=F.getUTCDay()||7;F.setUTCDate(F.getUTCDate()+4-A);const J=new Date(Date.UTC(F.getUTCFullYear(),0,1)),se=Math.ceil(((F.getTime()-J.getTime())/864e5+1)/7);return{year:F.getUTCFullYear(),week:se}}function Q(T,F){if(!T||!F)return null;const A=new Date(T,0,1+(F-1)*7),J=A.getDay(),se=A;return J<=4?se.setDate(A.getDate()-A.getDay()+1):se.setDate(A.getDate()+8-A.getDay()),se}function re(T){return String(T).padStart(2,"0")}return(T,F)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-date-picker",n.customClass])},[e.createVNode(ui,{modelValue:d.value,"onUpdate:modelValue":F[0]||(F[0]=A=>d.value=A),placeholder:Z.value,disabled:n.disabled,clearable:n.clearable,typeable:n.editable,"week-day-names":f.value,"week-starts-on":p.value,"starting-view":h.value.startingView,"minimum-view":h.value.minimumView,"input-format":B.value,"upper-limit":m.value,name:n.name,class:e.normalizeClass(i.value)},null,8,["modelValue","placeholder","disabled","clearable","typeable","week-day-names","week-starts-on","starting-view","minimum-view","input-format","upper-limit","name","class"])],2))}}),[["__scopeId","data-v-fb3e8176"]]),pi=(o,t)=>{if(!t||!Object.keys(t).length)return o;const[n,r=""]=o.split("?"),a=new URLSearchParams(r);Object.entries(t).forEach(([s,i])=>{i==null||i===""||a.set(s,String(i))});const l=a.toString();return l?`${n}?${l}`:n},mi=async(o,t={})=>{try{const n=new FormData;n.append("unique","true"),n.append("file",o);const{api:r,id:a="1",form:l="form",table:s="table",customParams:i}=t,c=r||`/file/upload/uploads?id=${a||""}&form=${l||""}&table=${s||""}`,d=pi(c,i);return(await fetch(d,{method:"POST",body:n}).then(f=>f.json()))?.result}catch(n){return we.notify({type:"error",title:"Помилка!",message:"Сталась помилка під час завантаження файлу",position:"right-bottom"}),console.error("Сталась помилка завантаження файлу",n),null}},fi=async o=>{try{return await fetch(`file/delete/${o}`),!0}catch(t){return console.error(t),!1}},lr=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",i=l||s,c=document.createElement("a");c.setAttribute("download",i),c.href=window.URL.createObjectURL(n),c.click(),window.URL.revokeObjectURL(c.href)}catch(t){console.error(t.message)}},hi=o=>{if(!o)return"";const t=o?.split(".");return t[t.length-1]},gi=o=>{const t=hi(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},yi=["title"],bi={key:0,class:"absolute inset-0 flex flex-col items-center justify-center gap-1 rounded-lg bg-white/90 text-xs font-medium text-slate-600"},ki=["title"],wi={class:"absolute hidden top-0 right-0 flex items-center gap-x-2 w-full h-full justify-center"},ft=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),i=e.computed(()=>r.value?typeof r.value=="string"?r.value:r.value.file_path:""),c=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=m=>typeof m=="string"?m:m?.file_path||"",g=()=>{const m=i.value;fi(m),l.multiple&&Array.isArray(n.value)?n.value=n.value.filter(h=>d(h)!==m):n.value=""},f=()=>{i.value&&window.open(i.value,"_blank")},p=()=>{l.disabled||l.isUploading||a("click")};return(m,h)=>s.value?(e.openBlock(),e.createElementBlock("div",{key:0,title:m.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",c.value]),onClick:p},[m.isUploading?(e.openBlock(),e.createElementBlock("div",bi,[h[2]||(h[2]=e.createElementVNode("div",{class:"loader"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(m.progressPercent)+"%",1)])):(e.openBlock(),e.createBlock(e.unref(X.Plus),{key:1,class:"h-4 w-4"}))],10,yi)):(e.openBlock(),e.createElementBlock("div",{key:1,title:i.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(gi)(i.value)),{src:i.value,alt:"file",class:"w-full h-full object-cover cursor-pointer",onClick:h[0]||(h[0]=w=>e.unref(lr)(i.value))},null,8,["src"])),e.createElementVNode("div",wi,[e.createElementVNode("button",{type:"button",onClick:g,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:f,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:h[1]||(h[1]=w=>e.unref(lr)(i.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,ki))}}),[["__scopeId","data-v-dfd41538"]]),ar=o=>o?o.split(",").map(t=>t.trim().toLowerCase()).filter(Boolean).map(t=>t.startsWith(".")?t.slice(1):t):[],sr=(o,t)=>!t||o.size<=t*1024*1024?!0:(we.notify({type:"error",title:"Помилка!",message:`Файл "${o.name}" занадто великий. Максимальний розмір: ${t} МБ`,position:"right-bottom"}),!1),ir=(o,t)=>{if(!t.length)return!0;const n=o.name.split(".").pop()?.toLowerCase()||"";return t.includes(n)?!0:(we.notify({type:"error",title:"Помилка!",message:`Неприпустимий формат файлу "${o.name}". Дозволені формати: ${t.map(r=>`.${r}`).join(", ")}`,position:"right-bottom"}),!1)},cr=(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,i]=l.split("="),c=s?.trim(),d=i?.trim();if(!c||!d)return;const g=a[d];if(g==null||g===""){r.push(d);return}n[c]=g}),r.length?(we.notify({type:"warning",title:"Заповніть поля",message:`Поля (${r.join(", ")}) необхідні для завантаження файлу`,position:"right-bottom"}),{ok:!1,params:n,missingSources:r}):{ok:!0,params:n,missingSources:r}},dr=(o,t)=>!t||!Array.isArray(o)?[]:o,ur=(o,t)=>t||Array.isArray(o)?null:o,pr=o=>{if(!o)return"";const t=o.split(/[/\\]/).pop()||"",n=t.lastIndexOf(".");return n<=0||n===t.length-1?"":t.slice(n+1).toLowerCase()},xi={class:"flex items-center flex-wrap gap-2"},vi=["accept","multiple","disabled"],mr=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),i=e.ref([]),c=e.inject("values"),d=e.computed(()=>dr(r.value,!!n.multiple)),g=e.computed(()=>ur(r.value,!!n.multiple)),f=e.computed(()=>ar(n.format)),p=e.computed(()=>cr(n.customParams,c)),m=j=>{we.notify({type:"error",title:"Помилка завантаження",message:j||"Не вдалося завантажити файл. Спробуйте ще раз.",position:"right-bottom"})},h=()=>{n.disabled||s.value||p.value.ok&&l.value?.click()},w=async j=>{const Z={api:n.api,customParams:Object.keys(p.value.params).length?p.value.params:void 0},I=await mi(j,Z);return I?.file_path?I.file_path:null},y=e.computed(()=>i.value.filter(j=>j.status!=="done")),C=e.computed(()=>y.value[0]||null),_=j=>typeof j=="string"?j:j?.file_path||"",B=(j,Z)=>({key:`${Date.now()}-${Z}-${j.name}`,file:j,size:j.size,uploaded:0,status:"pending",error:null,path:null,progressPercent:0}),$=async j=>{const{files:Z}=j.target;if(!Z||Z.length===0)return;if(!p.value.ok){l.value&&(l.value.value="");return}const I=Array.from(Z);if(n.max_size&&I.filter(x=>!sr(x,n.max_size)).length>0){l.value&&(l.value.value="");return}if(I.filter(S=>!ir(S,f.value)).length>0){l.value&&(l.value.value="");return}s.value=!0,i.value=n.multiple?I.map((S,x)=>B(S,x)):[];try{if(n.multiple){const L=await Promise.all(I.map(async(P,q)=>{const K=i.value[q];K.status="uploading",K.progressPercent=0;const O=await w(P);return O?(K.status="done",K.path=O,K.uploaded=K.size,K.progressPercent=100):(K.status="error",K.error="Помилка при завантаженні"),O})),U=L.filter(P=>!!P);if(U.length===0){m();return}U.length<L.length&&m("Деякі файли не вдалося завантажити. Перевірте їх та спробуйте знову.");const ne=U,N=Array.isArray(r.value)?r.value:r.value?[r.value]:[];r.value=[...N,...ne],a("change",r.value);return}const S=I[0],x=await w(S);if(!x){m();return}r.value=x,a("change",x)}catch(S){m(S?.message||void 0)}finally{s.value=!1,i.value=[],l.value&&(l.value.value="")}};return(j,Z)=>(e.openBlock(),e.createElementBlock("div",xi,[e.createElementVNode("input",{class:"hidden",ref_key:"fileInput",ref:l,type:"file",accept:n.format,multiple:n.multiple,onChange:$,disabled:s.value||j.disabled},null,40,vi),g.value?(e.openBlock(),e.createBlock(ft,{key:0,item:g.value,value:r.value,"onUpdate:value":Z[0]||(Z[0]=I=>r.value=I)},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(d.value,(I,V)=>(e.openBlock(),e.createBlock(ft,{key:`${V}-${_(I)}`,multiple:!0,item:I,value:r.value,"onUpdate:value":Z[1]||(Z[1]=S=>r.value=S)},null,8,["item","value"]))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,I=>(e.openBlock(),e.createBlock(ft,{key:I.key,action:"","is-uploading":!0,disabled:!0,"progress-percent":I.progressPercent,title:I.file.name},null,8,["progress-percent","title"]))),128)),e.createVNode(ft,{action:"","is-uploading":!1,disabled:j.disabled||s.value,title:"Добавить файлы",onClick:h},null,8,["disabled"])],64)):!n.multiple&&!C.value?(e.openBlock(),e.createBlock(ft,{key:2,action:"","is-uploading":!1,disabled:j.disabled||s.value,title:"Обновить файл",onClick:h},null,8,["disabled"])):C.value?(e.openBlock(),e.createBlock(ft,{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)]))}}),_i={class:"vs-input-file2 flex flex-col gap-4"},Ci={class:"flex items-center flex-wrap gap-2"},Ei=["multiple","accept","disabled"],Bi={key:0,class:"text-sm text-rose-600"},Nn=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([]),i=e.inject("values"),c=e.computed(()=>!!t.multiple),d=e.computed(()=>ar(t.format)),g=e.computed(()=>{if(d.value.length)return d.value.map(V=>`.${V}`).join(",")}),f=e.computed(()=>dr(n.value,c.value)),p=e.computed(()=>ur(n.value,c.value)),m=e.computed(()=>cr(t.customParams,i)),h=e.computed(()=>s.value.filter(V=>V.status!=="done")),w=e.computed(()=>c.value?null:h.value[0]||null),y=e.computed(()=>{const V=h.value,S=V.reduce((L,U)=>L+U.size,0);if(!S)return 0;const x=V.reduce((L,U)=>L+Math.min(U.uploaded,U.size),0);return Math.min(100,Math.round(x/S*100))}),C=()=>{t.disabled||a.value||m.value.ok&&r.value?.click()},_=async(V,S)=>{const x=S||Z(V,0);try{x.status="uploading";const L={id:"",fileName:x.file.name,subdir:t.subdir,size:x.file.size,...m.value.params},U=await fetch(`${t.api||"/file/upload2"}/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(L)});if(!U.ok)throw new Error("Не вдалося ініціалізувати завантаження");const ne=await U.json().catch(()=>({}));x.uploadId=ne.id||"",x.uploaded=Number(ne.uploaded)||0,x.progressPercent=x.size?Math.min(100,Math.round(x.uploaded/x.size*100)):0;const N=t.chunkSize??5*1024*1024;for(;x.uploaded<x.size;){const K=x.uploaded,O=Math.min(K+N,x.size),re=await x.file.slice(K,O).arrayBuffer(),T=await fetch(`${t.api||"/file/upload2"}/${x.uploadId}`,{method:"PATCH",headers:{"Content-Range":`bytes ${K}-${O-1}/${x.size}`,"Content-Type":"application/octet-stream"},body:re});if(!T.ok)throw new Error("Помилка завантаження частини");const F=await T.json().catch(()=>({})),A=F.uploaded!=null?Number(F.uploaded):O;if(x.uploaded=A,x.progressPercent=x.size?Math.min(100,Math.round(x.uploaded/x.size*100)):0,F.finished||A>=x.size){const J=pr(x.file.name),se=F.file_path||F.filepath||F.url||(J?`/files/uploads/${x.uploadId}.${J}`:`/files/uploads/${x.uploadId}`);return x.path=se,x.status="done",j(se),se}}const P=pr(x.file.name),q=`/files/uploads/${x.uploadId}${P?`.${P}`:""}`;return x.path=q,x.status="done",j(q),q}catch(L){return x.status="error",x.error=L?.message||"Помилка при завантаженні",l.value=L?.message||"Помилка при завантаженні",null}},B=V=>typeof V=="string"?V:V?.file_path||"",$=V=>!V||V.length===0?[]:Array.from(V),j=V=>{if(c.value){const S=Array.isArray(n.value)?[...n.value]:n.value?[n.value]:[];S.push(V),n.value=S;return}n.value=V},Z=(V,S)=>({key:`${Date.now()}-${S}-${V.name}`,file:V,size:V.size,uploaded:0,uploadId:"",status:"pending",error:null,path:null,progressPercent:0}),I=async V=>{const S=V.target,x=$(S.files);if(!x.length)return;if(!m.value.ok){S.value="";return}const L=x.filter(U=>sr(U,t.max_size)&&ir(U,d.value));if(!L.length){S.value="";return}try{a.value=!0,l.value="",s.value=L.map((P,q)=>Z(P,q));const ne=(await Promise.allSettled(s.value.map(P=>_(P.file,P)))).filter(P=>P.status==="fulfilled").map(P=>P.value).filter(P=>!!P),N=s.value.filter(P=>P.status==="error").map(P=>P.file.name);if(ne.length===0){l.value="Не вдалося завантажити файл";return}N.length>0?we.notify({type:"warning",title:"Частина файлів не завантажилась",message:N.join(", "),position:"right-bottom"}):we.notify({type:"success",title:"Файл завантажено",message:L.length>1?`Завантажено ${ne.length} файлів`:L[0].name,position:"right-bottom"})}finally{a.value=!1,s.value=[],S.value=""}};return(V,S)=>(e.openBlock(),e.createElementBlock("div",_i,[e.createElementVNode("div",Ci,[e.createElementVNode("input",{ref_key:"fileInput",ref:r,type:"file",class:"hidden",multiple:c.value,accept:g.value,disabled:a.value||t.disabled,onChange:I},null,40,Ei),c.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(f.value,(x,L)=>(e.openBlock(),e.createBlock(ft,{key:`${L}-${B(x)}`,multiple:!0,item:x,value:n.value,"onUpdate:value":S[0]||(S[0]=U=>n.value=U)},null,8,["item","value"]))),128)):p.value?(e.openBlock(),e.createBlock(ft,{key:1,item:p.value,value:n.value,"onUpdate:value":S[1]||(S[1]=x=>n.value=x)},null,8,["item","value"])):e.createCommentVNode("",!0),c.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(h.value,x=>(e.openBlock(),e.createBlock(ft,{key:x.key,action:"","is-uploading":!0,disabled:!0,"progress-percent":x.progressPercent,title:x.file.name},null,8,["progress-percent","title"]))),128)):w.value?(e.openBlock(),e.createBlock(ft,{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(ft,{action:"","is-uploading":!1,disabled:t.disabled||a.value,"progress-percent":y.value,title:c.value?"Добавить файлы":"Обновить файл",onClick:C},null,8,["disabled","progress-percent","title"])]),l.value?(e.openBlock(),e.createElementBlock("p",Bi,e.toDisplayString(l.value),1)):e.createCommentVNode("",!0)]))}}),Vi={class:"flex items-center justify-center h-[30px] w-[30px]"},Si={class:"max-w-[55vw]"},$i={class:"text-sm font-semibold text-gray-800 truncate dark:text-neutral-200"},Ai={class:"flex items-center text-xs text-gray-500 truncate dark:text-neutral-500"},Ni={class:"px-[5px]"},Mi={class:""},Mn=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",Vi,[e.createVNode(e.unref(X.FileText),{class:"icon icon-tabler icons-tabler-outline icon-tabler-file h-4 w-4"})]),e.createElementVNode("div",Si,[e.createElementVNode("p",$i,e.toDisplayString(a.item?.uploaded_name),1),e.createElementVNode("p",Ai,[e.createElementVNode("span",null,e.toDisplayString(a.item?.username),1),e.withDirectives(e.createElementVNode("span",Ni,"|",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",Mi,e.toDisplayString(r(a.item?.size)),1)])])],64))}}),Fi={class:"p-3 relative group flex items-center gap-x-3 border border-gray-200 bg-white rounded-md w-full"},Di={key:0,class:"flex w-full gap-x-3 items-center"},Ti={key:1,class:"flex gap-x-3 w-full items-center"},Li={key:2,class:"flex gap-x-3 w-full items-center"},Ii=["href"],Oi={key:3,class:"flex gap-x-3 w-full items-center"},Pi={class:"lg:absolute lg:top-3 lg:end-1 opacity-100"},Ri={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"},zi={class:"inline-block"},ji={class:"inline-block"},Ui={class:"inline-block"},Hi=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(f){return["pdf","json"].includes(f.ext)}function l(f){return["ppt","pptx","doc","docx","xls","xlsx"].includes(f.ext)}function s(f){const p=document.createElement("a");p.setAttribute("download",f?.uploaded_name),p.href=f?.file_path,p.click()}function i(f){f?.file_path&&window.open(f.file_path,"_blank")}async function c(){try{await fetch(`${n.prefix}/widget/file/${n.item.entity_id}/${n.item.file_id}`),r("update")}catch(f){console.error(f)}}function d(){r("openModal",{title:"Ви впевнені?",message:"Ви впевнені, що хочете видалити цей файл?",confirmButtonText:"Так, я впевнена/ий",cancelButtonText:"Скасувати",confirm:c,updateListOnConfirm:!0})}function g(f){(n.item.ext==="jpg"||n.item.ext==="png")&&r("openLightbox",{item:n.item,index:f})}return(f,p)=>(e.openBlock(),e.createElementBlock("div",Fi,[f.item.ext==="jpg"||f.item.ext==="png"?(e.openBlock(),e.createElementBlock("div",Di,[e.createElementVNode("div",{class:"max-w-[55vw] cursor-pointer flex gap-x-3 w-full items-center",onClick:p[0]||(p[0]=m=>g(f.index))},[e.createVNode(Mn,{item:f.item},null,8,["item"])])])):a(f.item)?(e.openBlock(),e.createElementBlock("div",Ti,[e.createVNode(Mn,{item:f.item},null,8,["item"])])):l(f.item)?(e.openBlock(),e.createElementBlock("div",Li,[e.createElementVNode("a",{href:`/api/file-preview?id=${f.item.file_id}`,target:"_blank",class:"flex gap-x-3 w-full items-center"},[e.createVNode(Mn,{item:f.item},null,8,["item"])],8,Ii)])):(e.openBlock(),e.createElementBlock("div",Oi,[e.createVNode(Mn,{item:f.item},null,8,["item"])])),e.createElementVNode("div",Pi,[e.createElementVNode("div",Ri,[e.createElementVNode("div",zi,[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=>i(f.item))},[e.createVNode(e.unref(X.Eye),{class:"h-4 w-4"})])]),e.createElementVNode("div",ji,[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(f.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",Ui,[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"})])])])])]))}}),qi={class:"flex flex-col widget-file xl:bg-white xl:rounded-xl dark:xl:bg-neutral-800 dark:xl:border-neutral-700 w-full"},Ki={class:"flex w-full mb-[12px] items-center gap-x-2"},Wi={class:"font-semibold text-gray-800 dark:text-neutral-200 text-[14px]"},Gi={class1:"ml-auto"},Yi={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"},Xi={key:0,class:"py-4 mb-4 space-y-4 border-gray-200 border-y dark:border-neutral-700"},Zi={class:"relative"},Ji={class:"absolute inset-y-0 start-0 flex items-center pointer-events-none z-[1] ps-3.5"},Qi={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"},ec={key:0},fr=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),i=t,c=e.ref(!1),d=e.ref({}),g=e.ref([]),f=e.ref(""),p=e.computed(()=>Array.isArray(g.value)?g.value.filter(B=>B.ext==="jpg"||B.ext==="png").map(B=>B?.file_path):[]),m=e.computed(()=>f.value===""?g.value:g.value.filter(B=>B?.uploaded_name?.includes(f.value))),h=B=>{const $=p.value.findIndex(j=>j===B.item.file_path);$!==-1&&(l.value=!0,s.value=$)},w=async()=>{try{const B=await fetch(`${n.prefix}/widget/file/${a.value}`).then($=>$.json());g.value=B?.rows}catch(B){console.error(B)}},y=async B=>{await Promise.all(Array.from(B.target.files).map(async $=>{const j=new FormData;j.append("file",$);try{const Z=`${n.prefix}/widget/file/${a.value}`,I=await fetch(Z,{method:"POST",body:j});return I.ok?(i("update","file-list"),$):(we.notify({type:I.status>=400&&I.status<500?"warning":"error",title:"Error",message:`Error code: ${I.status}`}),null)}catch(Z){return we.notify({type:"error",title:"Error",message:Z.message||"Unknown error"}),console.error(Z),null}})),await w()},C=B=>{const $={...B};return B.cancel||($.cancel=()=>{c.value=!1}),B.updateListOnConfirm&&($.confirm=async()=>{await B.confirm(),c.value=!1,w()}),$},_=B=>{d.value=C(B),c.value=!0};return e.watch(a,B=>{B&&w()}),e.onMounted(()=>{a.value&&w()}),(B,$)=>{const j=e.resolveComponent("Lightbox"),Z=e.resolveComponent("MessageBox");return e.openBlock(),e.createElementBlock("div",qi,[e.createElementVNode("div",Ki,[e.createElementVNode("h2",Wi," Файлів: "+e.toDisplayString(g.value?.length),1),e.createElementVNode("div",Gi,[e.createElementVNode("label",null,[e.createElementVNode("input",{type:"file",class:"hidden",onChange:$[0]||($[0]=I=>y(I))},null,32),e.createElementVNode("div",Yi,[e.createVNode(e.unref(X.Upload),{class:"h-4 w-4"})])])])]),g.value?.length>4?(e.openBlock(),e.createElementBlock("div",Xi,[e.createElementVNode("div",null,[e.createElementVNode("div",Zi,[e.createElementVNode("div",Ji,[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]=I=>f.value=I),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,f.value,void 0,{trim:!0}]])])])])):e.createCommentVNode("",!0),g.value?.length?(e.openBlock(),e.createElementBlock("div",Qi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(I,V)=>(e.openBlock(),e.createBlock(Hi,{key:V,prefix:B.prefix,item:I,index:V,onUpdate:$[2]||($[2]=S=>B.$emit("update","file-list")),onOpenModal:$[3]||($[3]=S=>_(S)),onOpenLightbox:$[4]||($[4]=S=>h(S))},null,8,["prefix","item","index"]))),128)),m.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",ec,$[8]||($[8]=[e.createElementVNode("p",{class:"text-sm text-gray-600 font-sm"}," Файлів з такою назвою не існує, введіть інше пошукове слово ",-1)])))])):e.createCommentVNode("",!0),e.createVNode(j,{modelValue:l.value,"onUpdate:modelValue":$[5]||($[5]=I=>l.value=I),startIndex:s.value,"onUpdate:index":$[6]||($[6]=I=>s.value=I),images:p.value},null,8,["modelValue","startIndex","images"]),e.createVNode(Z,e.mergeProps({modelValue:c.value,"onUpdate:modelValue":$[7]||($[7]=I=>c.value=I),onConfirm:d.value.confirm},d.value),null,16,["modelValue","onConfirm"])])}}}),tc={class:"flex items-center justify-between"},nc={class:"text-[16px] text-gray-900 font-medium"},oc={class:"grid gap-3"},rc=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",tc,[e.createElementVNode("p",nc,e.toDisplayString(o.title),1),e.createVNode(lo,{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",oc,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-90320b87"]]),lc={class:"text-[16px] text-gray-900 font-medium"},ac={class:"grid gap-3"},sc=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",lc,e.toDisplayString(o.title),1)]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",ac,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-0c825d65"]]),ic={class:"flex items-center justify-between"},cc={switcher:rc,accordion:sc,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",ic,[e.createElementVNode("p",null,e.toDisplayString(o.title),1)]),e.renderSlot(t.$slots,"default")]))}})},ut={Equal:"==",Inequal:"!=",Higer:">",HigerOrEqual:">=",Lower:"<",LowerOrEqual:"<=",Between:"between",StartWith:"^",EndWith:"$",Contain:"*",In:"in",NotIn:"not_in"},dc=(o,t)=>String(o)===String(t),uc=(o,t)=>String(o)!==String(t),pc=(o,t)=>o>t,mc=(o,t)=>o>=t,fc=(o,t)=>o<t,hc=(o,t)=>o<=t,gc=(o,t)=>Array.isArray(t)&&t.length===2?o>=t[0]&&o<=t[1]:!1,yc=(o,t)=>String(o).startsWith(String(t)),bc=(o,t)=>String(o).endsWith(String(t)),kc=(o,t)=>String(o).includes(String(t)),wc=(o,t)=>Array.isArray(t)?t.includes(o):!1,xc=(o,t)=>Array.isArray(t)?!t.includes(o):!0,vc=(o,t)=>{if(!t)return!0;switch(t?.[1]){case ut.Equal:return dc(o,t?.[2]);case ut.Inequal:return uc(o,t?.[2]);case ut.Higer:return pc(o,t?.[2]);case ut.HigerOrEqual:return mc(o,t?.[2]);case ut.Lower:return fc(o,t?.[2]);case ut.LowerOrEqual:return hc(o,t?.[2]);case ut.Between:return gc(o,t?.[2]);case ut.StartWith:return yc(o,t?.[2]);case ut.EndWith:return bc(o,t?.[2]);case ut.Contain:return kc(o,t?.[2]);case ut.In:return wc(o,t?.[2]);case ut.NotIn:return xc(o,t?.[2]);default:return!0}};function hr(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 gr=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(i=>hr(n.value,i?.conditions,t.name||void 0))),l=e.computed(()=>cc[t.view]),s=e.computed(()=>{if(n.value||(n.value={}),!t.name)return n.value;const i=n.value[t.name];if(i)return i;const c={};return n.value={...n.value,[t.name]:c},c});return(i,c)=>o.schema?.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(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(jr,e.mergeProps({key:d.name},{ref_for:!0},d,{item:d,modelValue:s.value[d.name],"onUpdate:modelValue":g=>s.value[d.name]=g,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)}}),yr=({props:o,fetchOptionByValue:t,optionsList:n,selectedOption:r,modelValue:a,onCreated:l})=>{const s=e.ref(!1),i=e.ref({}),c=e.ref([]),d=e.ref(null),g=e.computed(()=>o.add?.title||"Додати"),f=e.computed(()=>o.add?.token||o.add?.model||""),p=e.computed(()=>o.add?.pk||"id");return{isOpenAdd:s,addData:i,addSchema:c,addForm:d,addTitle:g,addOption:async()=>{if(!(!f.value||d?.value.validate()))try{const y=o.add?.api??`/api/table/${f.value}`,C=await fetch(y,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i.value)}),_=await C.json().catch(()=>({})),B=_?.error||_?.message,$=Number(_?.code)>=400;if(!C.ok||$){we.notify({title:"Помилка",type:"error",message:B||`Код помилки: ${_?.code||C.status}`});return}const j=_?.rows?.[0],Z=_?.[p.value]??_?.id??j?.[p.value]??j?.id;if(!Z){we.notify({title:"Помилка",type:"error",message:"Обʼєкт створено, але в відповіді відсутній ID."});return}const I=await t(Z);I&&(n.value.some(S=>String(S?.id)===String(I.id))||n.value.push(I)),l?await l(I,Z):I&&(r.value=I,a.value=Z),s.value=!1,we.notify({title:"Успіх",message:"Обʼєкт успішно створено."})}catch(y){we.notify({title:"Помилка",type:"error",message:y?.message||"Не вдалося створити обʼєкт."})}},onAddValue:async()=>{if(!o.add)return null;const w=await fetch(`/api/template/form/${o.add.form}`).then(y=>y.json());return c.value=w.schema,i.value={},s.value=!0,null}}},_c=["aria-expanded","data-focus"],Cc={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"},Ec={key:0,class:"flex flex-nowrap items-center gap-1 overflow-x-auto overflow-y-hidden min-w-0 flex-1 py-0.5"},Bc={class:"flex items-center gap-1 min-w-0"},Vc=["title"],Sc=["innerHTML"],$c=["onClick"],Ac={class:"flex-1 min-w-[2px]"},Nc=["placeholder"],Mc=["title"],Fc=["innerHTML"],Dc={key:3,class:"truncate flex-1 min-w-0"},Tc={key:2,class:"flex-1 min-w-[2px]"},Lc=["placeholder"],Ic={key:3,class:"flex-1 flex items-center min-h-[30px] py-0.5 pl-2 text-sm truncate text-inherit"},Oc={class:"vs-input-select__actions relative z-10 flex items-center shrink-0 bg-white"},Pc=["disabled"],Rc={key:1,class:"self-stretch w-px bg-[#ccc] my-[1px]"},zc=["disabled","title"],jc=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]=(...i)=>l.onControlKeydown&&l.onControlKeydown(...i)),onClick:s[11]||(s[11]=(...i)=>l.onControlClick&&l.onControlClick(...i)),"data-focus":l.isOpen||l.inputFocus?"true":"false",ref:l.setTriggerRef},[e.createElementVNode("div",Cc,[l.isMulti?(e.openBlock(),e.createElementBlock("div",Ec,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.selectedOptions,i=>(e.openBlock(),e.createElementBlock("div",{key:i.id,class:"flex min-w-0 bg-[rgb(230,230,230)] rounded-[2px] m-[2px] box-border max-w-full"},[e.createElementVNode("div",Bc,[l.shouldShowColorDot(i)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[16px] h-[16px] rounded-md block ml-1.5 flex-shrink-0",style:e.normalizeStyle({backgroundColor:i?.color})},null,4)):e.createCommentVNode("",!0),!l.optionTemplate&&l.optionHasIcon(i)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(l.iconWrapperClass),style:e.normalizeStyle(l.getIconColorStyle(i)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.resolveOptionIcon(i)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"truncate text-[#172b4d] overflow-hidden max-w-[200px] px-0.5 pl-1.5",title:l.getLabel(i)},[l.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:l.renderTemplate(i)},null,8,Sc)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(i.text),1)],64))],8,Vc)]),e.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border text-[#172b4d] hover:bg-[rgb(255,189,173)] hover:text-[rgb(222,53,11)] flex-shrink-0",onClick:e.withModifiers(c=>l.onRemoveSelected(i.id),["stop"])},[e.createVNode(e.unref(X.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,$c)]))),128)),e.createElementVNode("div",Ac,[!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]=i=>a.value=i),onFocus:s[1]||(s[1]=(...i)=>l.onInputFocus&&l.onInputFocus(...i)),onBlur:s[2]||(s[2]=(...i)=>l.onInputBlur&&l.onInputBlur(...i)),onKeydown:s[3]||(s[3]=(...i)=>l.onInputKeydown&&l.onInputKeydown(...i))},null,40,Nc)),[[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,Fc)):(e.openBlock(),e.createElementBlock("span",Dc,e.toDisplayString(l.selectedOption?.text),1))],10,Mc)):e.createCommentVNode("",!0),!l.isMulti&&!l.disabled&&l.search?(e.openBlock(),e.createElementBlock("div",Tc,[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]=i=>a.value=i),onFocus:s[5]||(s[5]=(...i)=>l.onInputFocus&&l.onInputFocus(...i)),onBlur:s[6]||(s[6]=(...i)=>l.onInputBlur&&l.onInputBlur(...i)),onKeydown:s[7]||(s[7]=(...i)=>l.onInputKeydown&&l.onInputKeydown(...i))},null,40,Lc),[[e.vModelText,a.value]])])):!l.isMulti&&l.disabled&&(!l.selectedOptionLabel||a.value!=="")?(e.openBlock(),e.createElementBlock("div",Ic,e.toDisplayString(l.placeholder),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Oc,[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((...i)=>l.onClearSelected&&l.onClearSelected(...i),["stop"]))},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,Pc)):e.createCommentVNode("",!0),l.showClear?(e.openBlock(),e.createElementBlock("div",Rc)):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((...i)=>l.onToggleSelect&&l.onToggleSelect(...i),["stop"])),title:l.isOpen?"Закрити список":"Відкрити список"},[e.createVNode(e.unref(X.ChevronDown),{class:"h-4 w-4"})],8,zc)])],42,_c))}}),Uc=["aria-disabled","onMousedown"],Hc={class:"leading-[19px]"},qc=["innerHTML"],Kc={key:1,class:"px-3 py-2 text-center text-gray-500"},Wc=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",Hc,[t.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:t.renderTemplate(r)},null,8,qc)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(r.text),1)],64))])],42,Uc))),128)):(e.openBlock(),e.createElementBlock("div",Kc," No options "))],4)],4)):e.createCommentVNode("",!0)]))}}),Gc={class:"flex justify-end items-center gap-x-2 py-3 px-4 border-t border-gray-200 w-full"},Yc=["onClick"],Xc=["disabled"],Zc="__autoMeta",br="w-[16px] h-[16px] flex items-center justify-center flex-shrink-0 text-current",go=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);Qe(n.style);const i=e.computed({get:()=>n.modelValue,set:H=>r("update:modelValue",H)});!i.value&&n.defaultValue&&(i.value=n.defaultValue);const c=e.ref(null),d=e.ref(null),g=e.ref(null),f=e.ref(null),p=e.ref(!1),m=e.ref(!1),h=e.ref(null),w=e.ref(-1),y=e.ref([]),C=e.ref(""),_=e.ref(null),B=H=>{d.value=H},$=H=>{_.value=H},j=H=>{f.value=H},Z=H=>{g.value=H},I=(H,ae)=>{y.value[ae]=H},V=e.ref({}),S=e.ref([]),x=e.computed(()=>{if(!S.value.length)return[];const H=ye.value,ae=new Map(H.map(fe=>[fe.id?.toString(),fe]));return S.value.map(fe=>ae.get(fe?.toString())).filter(fe=>!!fe)}),L=e.computed(()=>n.placeholder||"Select..."),U=e.computed(()=>re(h.value)),ne=e.computed(()=>l.value?!1:a.value?S.value.length>0:!!i.value),N=H=>a.value?S.value.some(ae=>ae?.toString()===H?.toString()):i.value?.toString()===H?.toString(),P=e.computed(()=>{let H=ye.value??[];if(!n.data&&C.value.trim()!==""){const ae=C.value.toLowerCase();H=H.filter(fe=>{const Ne=re(fe).toLowerCase(),ze=fe.text?.toLowerCase?.()||"";return Ne.includes(ae)||ze.includes(ae)})}if(a.value&&S.value.length){const ae=new Set(S.value.map(fe=>fe?.toString()));H=H.filter(fe=>!ae.has(fe.id?.toString()))}return H}),q=e.inject("values"),K=e.inject("field-props"),O=e.computed(()=>n.slot??n?.optionTemplate??""),Q=H=>_n(H,O.value),re=H=>Cn(H,O.value),T=e.computed(()=>wn(O.value)),F=H=>Jt(H),A=H=>!!(!T.value&&Nt(H)&&!F(H)),J=H=>{const ae=Nt(H);return ae?{color:ae}:void 0},se=H=>!!(!T.value&&(Zt(H)||F(H))),ee=(H,ae,fe)=>{if(!K)return!1;const Ne=K.value?.[H]??{},ze=(je,rt,wt)=>{if(!rt.length)return je;const[dt,...tt]=rt,Je={...je};if(!tt.length)return Je[dt]=wt,Je;const hn=typeof je[dt]=="object"&&je[dt]!==null?je[dt]:{};return Je[dt]=ze(hn,tt,wt),Je},He=ze(Ne,ae,fe);return K.value={...K.value||{},[H]:He},!0},he=H=>{if(!K||!n.name)return;const ae=K.value?.[n.name]??{};K.value={...K.value||{},[n.name]:{...ae,[Zc]:H}}},xe=H=>{if(!n.set)return;const ae=q?.value;!ae&&!K||Object.entries(n.set).forEach(([fe,Ne])=>{if(!fe)return;const ze=H?H[Ne]:null,He=fe.split(".").map(wt=>wt.trim()).filter(Boolean);if(!He.length)return;const[je,...rt]=He;rt.length&&ee(je,rt,ze??null)||ae&&(ae[je]=ze??null)})},{optionsList:ye,parentValue:$e,fetchOptions:Le,fetchOptionByValue:Oe,loadOptions:Me}=vn({props:n,formValues:q,watchParent:!1}),ie=H=>H==null?"":String(H),le=H=>{if(a.value){if(!S.value.length){ye.value=H;return}}else if(!h.value){ye.value=H;return}const ae=new Set(H.map(Ne=>ie(Ne.id)).filter(Boolean));if(a.value){const Ne=new Set(S.value.map(He=>ie(He)).filter(Boolean)),ze=(ye.value??[]).filter(He=>{const je=ie(He.id);return!je||!Ne.has(je)?!1:!ae.has(je)});ye.value=[...ze,...H];return}const fe=ie(h.value?.id);if(fe&&!ae.has(fe)){ye.value=[h.value,...H];return}ye.value=H},ke=e.ref(0),Se=async H=>{const ae=++ke.value,fe=await Le(H);return ae!==ke.value?null:fe},Te=async()=>{if(n.data){const H=await Se(C.value);return H&&le(H),ye.value}return Me()},qe=async H=>{if(H==null||H==="")return null;const ae=ye.value?.find(fe=>fe?.id?.toString()===String(H));return ae||Oe(H)},Y=async H=>{const ae=new Set(ye.value.map(Ne=>Ne.id?.toString())),fe=H.filter(Ne=>!ae.has(Ne?.toString()));fe.length&&await fe.reduce(async(Ne,ze)=>{await Ne;const He=await qe(ze);He&&ye.value.push(He)},Promise.resolve())},te=()=>{if(!P.value.length){w.value=-1;return}let H=0;if(!a.value&&h.value){const ae=h.value.id?.toString(),fe=P.value.findIndex(Ne=>Ne.id?.toString()===ae);fe>=0&&(H=fe)}w.value=H,e.nextTick(()=>{z(y.value[H],g.value)})},oe=async()=>{l.value||(p.value=!0,await e.nextTick(()=>{_e()}),await Te(),await e.nextTick(()=>{_e(),_.value?.focus()}),te())},pe=()=>{p.value=!1,w.value=-1,e.nextTick(()=>{_.value?.blur()})},be=async H=>{if(l.value)return;(H!==void 0?H:!p.value)?await oe():pe()},Ae=async()=>{if(!l.value){if(p.value){pe();return}await oe()}},Fe=()=>{a.value?(S.value=[],i.value=[],r("change",[]),W(null,[])):(h.value=null,i.value=null,r("change",null),W(null,null)),xe(null),he(null),C.value="",pe(),e.nextTick(()=>{_.value?.focus()})},De=H=>{a.value&&(S.value=S.value.filter(ae=>ae?.toString()!==H?.toString()),i.value=[...S.value],r("change",i.value),W(null),e.nextTick(()=>_.value?.focus()))},W=(H,ae)=>{const fe=ae??(a.value?[...S.value]:H?.id??null);r("value-selected",{name:n.name,value:fe,option:H})},v=(H,ae="manual")=>{a.value?(N(H.id)||(S.value=[...S.value,H.id],i.value=[...S.value],r("change",i.value),W(H)),C.value="",e.nextTick(()=>{_.value?.focus(),w.value=Math.min(w.value,P.value.length-1)}),xe(null)):(h.value=H,i.value=H.id,r("change",i.value),W(H),C.value="",pe(),xe(H),ae==="parent-auto"&&he({source:ae,parentField:n.parent??null,parentValue:$e.value??null}))},M=H=>{if(N(H.id)){a.value||pe();return}v(H)},z=(H,ae)=>{if(!H||!ae)return;const fe=H.offsetTop,Ne=fe+H.offsetHeight,ze=ae.scrollTop,He=ze+ae.clientHeight;let je=ae.scrollTop;fe<ze?je=fe-80:Ne>He&&(je=Ne-ae.clientHeight+4);const rt=ae;rt.scrollTop=je},de=H=>{let ae=H.parentElement;for(;ae;){if(ae.classList.contains("ui-dialog__content"))return ae;const fe=window.getComputedStyle(ae),Ne=fe.overflow+fe.overflowY+fe.overflowX;if(Ne.includes("auto")||Ne.includes("scroll")||ae===document.body||ae===document.documentElement)return ae;ae=ae.parentElement}return document.body},_e=()=>{if(!d.value)return;const H=d.value.getBoundingClientRect(),ae=window.innerHeight||document.documentElement.clientHeight,fe=window.innerWidth||document.documentElement.clientWidth,Ne=8,ze=8,He=n.maxHeight||300,je=ae-H.bottom-ze-Ne,rt=H.top-ze-Ne,wt=je>=rt,dt=Math.max(fe-Ne*2,0);let{width:tt}=H;dt>0&&tt>dt&&(tt=dt);let{left:Je}=H;Je+tt+Ne>fe&&(Je=fe-tt-Ne),Je=Math.max(Je,Ne);const hn=Math.min(He,Math.max(wt?je:rt,50));V.value={position:"fixed",left:`${Je}px`,width:`${tt}px`,maxHeight:`${hn}px`,transform:wt?"none":"translateY(-100%)",top:wt?`${H.bottom+ze}px`:`${H.top-ze}px`}},Pe=async H=>{l.value||!p.value&&(H.key==="ArrowDown"||H.key==="ArrowUp")&&(H.preventDefault(),await oe())},Ie=H=>{if(!p.value)return;const{key:ae}=H;if(ae==="ArrowDown")H.preventDefault(),w.value+1<P.value.length&&(w.value+=1,z(y.value[w.value],g.value));else if(ae==="ArrowUp")H.preventDefault(),w.value>0&&(w.value-=1,z(y.value[w.value],g.value));else if(ae==="Enter"){H.preventDefault();const fe=P.value[w.value];fe&&v(fe),_.value?.blur()}else ae==="Escape"?(H.preventDefault(),pe()):ae==="Backspace"?a.value&&C.value===""&&S.value.length&&(S.value=S.value.slice(0,-1),i.value=[...S.value],r("change",i.value)):ae==="Home"?(w.value=0,z(y.value[0],g.value)):ae==="End"?(w.value=P.value.length-1,z(y.value[w.value],g.value)):ae==="Tab"&&pe()},Xe=()=>{l.value||(m.value=!0)},et=()=>{m.value=!1,C.value=""},ot=H=>{H.key==="Escape"&&p.value&&pe()},R=H=>{const ae=H.target;c.value?.contains(ae)||f.value?.contains(ae)||pe()},ue=H=>{p.value&&g.value&&!g.value.contains(H.target)&&_e()},Ze=()=>{p.value&&_e()},Vt=()=>{p.value&&_e()};async function gt(){if(a.value)Array.isArray(i.value)?S.value=[...i.value]:(S.value=i.value==null?[]:[i.value],i.value=[...S.value]),n.data&&S.value.length&&(await Y(S.value),await e.nextTick());else{if(Array.isArray(i.value)){const H=i.value[0]??null;i.value=H??null}i.value!=null&&i.value!==""?h.value=await qe(i.value):h.value=null,xe(h.value??null)}}e.watch(i,()=>{gt()}),e.onMounted(async()=>{if(addEventListener("keydown",ot),addEventListener("scroll",ue,!0),addEventListener("resize",Ze),document.addEventListener("click",R,!0),d.value&&de(d.value).addEventListener("scroll",Vt,!0),n.options?.length&&!n.data)ye.value=[...n.options];else if(n.data){const H=await Se("");H&&le(H)}await gt(),fn.value=!1}),e.onUnmounted(()=>{removeEventListener("keydown",ot),removeEventListener("scroll",ue,!0),removeEventListener("resize",Ze),document.removeEventListener("click",R,!0),d.value&&de(d.value).removeEventListener("scroll",Vt,!0)});const{isOpenAdd:Ue,addData:Lt,addSchema:Gt,addForm:Yt,addTitle:It,addOption:Xn,onAddValue:Zn}=yr({props:n,fetchOptionByValue:Oe,optionsList:ye,selectedOption:h,modelValue:i});function Jn(H,ae=200){let fe;return(...Ne)=>{fe&&clearTimeout(fe),fe=window.setTimeout(()=>H(...Ne),ae)}}const Do=Jn(async H=>{const ae=await Se(H);ae&&le(ae)},200);e.watch(C,H=>{n.data&&Do(H.trim())}),e.watch(()=>n.options,H=>{!n.data&&H?.length&&(ye.value=[...H],gt())},{immediate:!0});const fn=e.ref(!0);return e.watch($e,async()=>{if(n.data&&(fn.value||(a.value?(S.value=[],i.value=[],r("change",[])):(h.value=null,i.value=null,r("change",null))),await Te(),n.auto===1&&$e.value&&ye.value.length>0)){const H=ye.value[0];H&&v(H,"parent-auto")}}),(H,ae)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(we.VsModal),{visible:e.unref(Ue),"onUpdate:visible":ae[2]||(ae[2]=fe=>e.isRef(Ue)?Ue.value=fe:null),class:"z-[1000]",title:e.unref(It),teleport:H.teleport},{footer:e.withCtx(({handleClose:fe})=>[e.createElementVNode("div",Gc,[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:fe}," Скасувати ",8,Yc),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:ae[1]||(ae[1]=(...Ne)=>e.unref(Xn)&&e.unref(Xn)(...Ne))}," Додати ")])]),default:e.withCtx(()=>[e.createVNode(pt,{schema:e.unref(Gt),modelValue:e.unref(Lt),"onUpdate:modelValue":ae[0]||(ae[0]=fe=>e.isRef(Lt)?Lt.value=fe:null),ref_key:"addForm",ref:Yt},null,8,["schema","modelValue"])]),_:1},8,["visible","title","teleport"]),e.createElementVNode("div",{class:"flex gap-1 w-full",ref_key:"selectRoot",ref:c,onClick:ae[5]||(ae[5]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass])},[ae[6]||(ae[6]=e.createElementVNode("span",{id:"react-select-live-region",class:"sr-only"},null,-1)),ae[7]||(ae[7]=e.createElementVNode("span",{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text",role:"log",class:"sr-only"},null,-1)),e.createVNode(jc,{keyWord:C.value,"onUpdate:keyWord":ae[3]||(ae[3]=fe=>C.value=fe),disabled:l.value,"is-open":p.value,"input-focus":m.value,"is-multi":a.value,"selected-options":x.value,"selected-ids":S.value,placeholder:L.value,search:s.value,"option-template":O.value,"icon-wrapper-class":br,"selected-option-label":U.value,"selected-option":h.value,"show-clear":ne.value,"set-trigger-ref":B,"set-input-ref":$,"should-show-color-dot":A,"option-has-icon":se,"get-icon-color-style":J,"resolve-option-icon":F,"render-template":Q,"get-label":re,"on-control-keydown":Pe,"on-control-click":Ae,"on-input-focus":Xe,"on-input-blur":et,"on-input-keydown":Ie,"on-remove-selected":De,"on-clear-selected":Fe,"on-toggle-select":be},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(Wc,{"is-open":p.value,"dropdown-style":V.value,"filtered-options-list":P.value,"selected-nav-index":w.value,"option-template":O.value,"icon-wrapper-class":br,"set-dropdown-ref":j,"set-list-ref":Z,"set-item-ref":I,"is-selected":N,"on-option-click":M,"should-show-color-dot":A,"option-has-icon":se,"get-icon-color-style":J,"resolve-option-icon":F,"render-template":Q},null,8,["is-open","dropdown-style","filtered-options-list","selected-nav-index","option-template"])],2),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:ae[4]||(ae[4]=(...fe)=>e.unref(Zn)&&e.unref(Zn)(...fe)),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"}),ae[8]||(ae[8]=e.createElementVNode("span",null,"Додати",-1))],8,Xc)):e.createCommentVNode("",!0)],512)],64))}}),[["__scopeId","data-v-49a64961"]]),yo=(o="")=>`${o}${Math.floor(Math.random()*1e4)}`,Jc=["disabled","aria-expanded"],Qc={class:"truncate"},ed={class:"py-2 px-4"},td={class:"block font-medium text-[13px] text-foreground"},nd={class:"truncate"},od={class:"p-1 border-t border-gray-200"},rd={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"},ld=["onClick"],ad=["checked"],sd={class:"shrink-0 size-3.5 flex justify-center items-center"},id={key:1,class:"shrink-0 size-2 block mx-auto rounded-full bg-secondary/60"},cd={class:"truncate"},dd={key:0,class:"px-3 py-2 text-xs text-stone-500"},Fn=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;Qe(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"),i=e.computed(()=>!!n.disabled),c=e.ref(null),d=e.ref(!1),g=e.ref(null),f=e.ref(null),p=e.ref(null),m=e.ref({}),h=`vs-input-inline-select-${yo()}`,w=e.computed(()=>n.placeholder||"Оберіть значення"),y=e.computed(()=>j(c.value)||n.placeholder||"Оберіть значення"),C=e.computed(()=>n.slot??""),_=e.computed(()=>wn(C.value)),B=e.computed(()=>n.teleport||"body"),$=/^#(?:[\da-fA-F]{3}|[\da-fA-F]{6}|[\da-fA-F]{8})$/,j=ee=>Cn(ee,C.value),Z=ee=>!!(!_.value&&Nt(ee)),I=e.computed(()=>{const ee=Nt(c.value).trim();return ee?$.test(ee)?`bg-[${ee}] border-[${ee}]`:`bg-${ee.toLowerCase()}-500 border-${ee.toLowerCase()}-500`:""}),{optionsList:V,parentValue:S,fetchOptions:x,fetchOptionByValue:L,loadOptions:U}=vn({props:n,formValues:l,watchParent:!1}),ne=(ee,he,xe)=>{if(!s)return!1;const ye=s.value?.[ee]??{},$e=(Oe,Me,ie)=>{if(!Me.length)return Oe;const[le,...ke]=Me,Se={...Oe};if(!ke.length)return Se[le]=ie,Se;const Te=typeof Oe[le]=="object"&&Oe[le]!==null?Oe[le]:{};return Se[le]=$e(Te,ke,ie),Se},Le=$e(ye,he,xe);return s.value={...s.value||{},[ee]:Le},!0},N=ee=>{if(!n.set)return;const he=l?.value;!he&&!s||Object.entries(n.set).forEach(([xe,ye])=>{if(!xe)return;const $e=ee?ee[ye]:null,Le=xe.split(".").map(ie=>ie.trim()).filter(Boolean);if(!Le.length)return;const[Oe,...Me]=Le;Me.length&&ne(Oe,Me,$e??null)||he&&(he[Oe]=$e??null)})},P=ee=>a.value?.toString?.()===ee?.toString?.(),q=()=>{if(!f.value||typeof window>"u")return;const ee=f.value.getBoundingClientRect(),he=8,xe=8,ye=window.innerHeight||document.documentElement.clientHeight,$e=window.innerWidth||document.documentElement.clientWidth,Le=p.value?.offsetHeight||260,Oe=Math.max(ee.width,176),Me=Math.max($e-he*2,120),ie=Math.min(Oe,Me);let le=ee.left;le+ie+he>$e&&(le=$e-ie-he),le=Math.max(le,he);const ke=ye-ee.bottom-xe-he,Se=ee.top-xe-he,Te=ke<Math.min(Le,260)&&Se>ke,qe=Math.max(120,Math.min(320,Te?Se:ke));m.value={position:"fixed",left:`${le}px`,top:Te?`${ee.top-xe}px`:`${ee.bottom+xe}px`,transform:Te?"translateY(-100%)":"none",width:`${ie}px`,maxHeight:`${qe}px`}},K=async()=>{if(n.data){V.value=await x("");return}await U()},O=async()=>{if(a.value==null||a.value===""){c.value=null,N(null);return}const ee=V.value.find(he=>he.id?.toString()===String(a.value));if(ee){c.value=ee,N(ee);return}c.value=await L(a.value),N(c.value??null)},Q=async()=>{i.value||(d.value=!0,await e.nextTick(),q(),await K(),await e.nextTick(),q())},re=()=>{d.value=!1},T=async()=>{if(d.value){re();return}await Q()},F=ee=>{r("value-selected",{name:n.name,value:ee?.id??null,option:ee})},A=ee=>{c.value=ee,a.value=ee.id,r("change",ee.id),F(ee),N(ee),re()},J=ee=>{const he=ee.target;g.value?.contains(he)||p.value?.contains(he)||re()},se=()=>{d.value&&q()};return e.watch(()=>n.options,ee=>{n.data||(V.value=ee?[...ee]:[],O())},{immediate:!0,deep:!0}),e.watch(a,()=>{O()}),e.watch(S,async()=>{n.data&&(await K(),c.value&&!V.value.some(ee=>ee.id?.toString()===c.value?.id?.toString())&&(c.value=null,a.value=null,r("change",null),F(null),N(null)))}),e.onMounted(async()=>{document.addEventListener("click",J,!0),window.addEventListener("resize",se),window.addEventListener("scroll",se,!0),await K(),await O()}),e.onUnmounted(()=>{document.removeEventListener("click",J,!0),window.removeEventListener("resize",se),window.removeEventListener("scroll",se,!0)}),(ee,he)=>(e.openBlock(),e.createElementBlock("div",{class:"relative inline-flex w-full max-w-full",ref_key:"rootRef",ref:g,onClick:he[0]||(he[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("button",{ref_key:"triggerRef",ref:f,type:"button",disabled:i.value,"aria-expanded":d.value?"true":"false","aria-haspopup":"menu",class:e.normalizeClass(["py-1.5 px-2.5 inline-flex items-center gap-2 text-nowrap text-xs sm:text-[13px] rounded-lg focus:outline-hidden disabled:opacity-50 disabled:pointer-events-none max-w-full border",I.value?`${I.value} text-white`:"bg-secondary text-secondary-foreground hover:bg-secondary-hover focus:bg-secondary-focus border-gray-300 hover:border-gray-400"]),onClick:T},[e.createElementVNode("span",Qc,e.toDisplayString(y.value),1)],10,Jc),(e.openBlock(),e.createBlock(e.Teleport,{to:B.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",ed,[e.createElementVNode("span",td,[e.createElementVNode("span",nd,e.toDisplayString(w.value),1)])]),e.createElementVNode("div",od,[e.createElementVNode("div",rd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(V),xe=>(e.openBlock(),e.createElementBlock("label",{key:xe.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(ye=>A(xe),["prevent"])},[e.createElementVNode("input",{type:"radio",class:"hidden",name:h,checked:P(xe.id),tabindex:"-1"},null,8,ad),e.createElementVNode("span",sd,[Z(xe)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"shrink-0 size-2 block mx-auto rounded-full",style:e.normalizeStyle({backgroundColor:xe.color})},null,4)):(e.openBlock(),e.createElementBlock("span",id))]),e.createElementVNode("span",cd,e.toDisplayString(j(xe)),1),e.createVNode(e.unref(X.Check),{class:e.normalizeClass(["shrink-0 size-3.5 ms-auto transition-opacity",P(xe.id)?"opacity-100":"opacity-0"])},null,8,["class"])],8,ld))),128))]),e.unref(V).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",dd,"Немає варіантів"))])],4)):e.createCommentVNode("",!0)],8,["to"]))],512))}}),ud=["placeholder","disabled"],kr=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}=Qe(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(i,c)=>e.withDirectives((e.openBlock(),e.createElementBlock("textarea",{"onUpdate:modelValue":c[0]||(c[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,ud)),[[e.vModelText,r.value]])}}),wr=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(()=>D0)),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(i,c)=>(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",i.customClass]),style:e.normalizeStyle(a.value?{pointerEvents:"none",opacity:.6}:{})},[e.createVNode(e.unref(t),e.mergeProps({modelValue:r.value,"onUpdate:modelValue":c[0]||(c[0]=d=>r.value=d),placeholder:l.value},s.value),null,16,["modelValue","placeholder"])],6))}}),pd={},md={viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function fd(o,t){return e.openBlock(),e.createElementBlock("svg",md,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 hd=Be(pd,[["render",fd]]),gd={class:"bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden flex flex-col"},yd={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"},bd={key:0,class:"relative flex-1 min-w-0"},kd={class:"flex md:flex-nowrap flex-wrap items-center md:justify-end justify-start gap-2 shrink-0"},wd={class:"w-full overflow-x-auto"},xd={class:"w-full min-w-[640px] table-auto divide-y divide-gray-200"},vd={class:"bg-gray-50"},_d={class:"border-b border-gray-200"},Cd={class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 w-12 text-center"},Ed=["onClick"],Bd={key:0,class:"text-gray-400"},Vd={key:0,colspan:"100%",class:"text-center"},Sd={class:"w-full"},$d={class:"p-5 min-h-[200px] flex flex-col justify-center items-center text-center"},Ad=["data-row-index","onDragstart","onDragover","onDrop"],Nd=["onPointerdown"],Md={class:"flex items-center justify-center"},Fd=["innerHTML"],Dd={key:0,class:"flex items-center gap-3 text-sm text-gray-700"},Td={key:0},Ld=["src"],Id={key:1,class:"rounded-md max-w-[45px] w-[45px] max-h-[45px] h-[45px] bg-gray-200 flex items-center justify-center"},Od={key:1,class:"flex items-center justify-center"},Pd={key:2,class:"text-sm font-medium text-gray-900"},Rd={class:"px-4 py-3 text-right whitespace-nowrap"},zd={class:"flex items-center justify-end gap-2"},jd=["onClick"],Ud=["onClick"],Hd={class:"vs-form__head mr-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},xr=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=Y=>t.actions===void 0?!0:t.actions.includes(Y),a=["search","import","export","add"],l=e.computed(()=>a.some(Y=>r(Y))),s=e.useModel(o,"modelValue"),i=e.ref({}),c=e.ref(""),d=e.ref(null),g=e.ref("asc"),f=e.computed(()=>{const Y=s.value??[],te=c.value?Y.filter(be=>p.value?.some(Ae=>{const Fe=Ae.key||Ae.name;if(!Fe)return!1;const De=be[Fe];return De?Array.isArray(De)?De.join(", ").toLowerCase().includes(c.value.toLowerCase()):String(De).toLowerCase().includes(c.value.toLowerCase()):!1})):Y;if(!d.value)return te;const oe=d.value,pe=[...te].sort((be,Ae)=>{const Fe=$e(be?.[oe]),De=$e(Ae?.[oe]);return typeof Fe=="number"&&typeof De=="number"?Fe-De:String(Fe).localeCompare(String(De))});return g.value==="asc"?pe:pe.reverse()}),p=e.computed(()=>(t.colModel??[]).filter(Y=>!Y.tableHidden)),m=e.ref(null),h=e.ref(null),w=e.ref(null);function y(Y){return Y.pointerType==="touch"||Y.pointerType==="pen"}function C(Y,te){const pe=document.elementFromPoint(Y,te)?.closest?.("[data-row-index]")??null;if(!pe)return null;const be=pe.getAttribute("data-row-index");if(be==null)return null;const Ae=Number.parseInt(be,10);return Number.isNaN(Ae)?null:Ae}function _(Y,te){y(Y)&&(Y.preventDefault(),Y.currentTarget.setPointerCapture(Y.pointerId),m.value=te,h.value=te)}function B(Y){if(m.value===null||!y(Y))return;Y.preventDefault();const te=C(Y.clientX,Y.clientY);te!==null&&(h.value=te)}function $(Y){if(m.value===null||!y(Y))return;Y.preventDefault();const te=C(Y.clientX,Y.clientY);V(te??m.value);try{Y.currentTarget.releasePointerCapture(Y.pointerId)}catch{}}function j(Y){if(y(Y)){m.value=null,h.value=null;try{Y.currentTarget.releasePointerCapture(Y.pointerId)}catch{}}}const Z=Y=>{m.value=Y},I=Y=>{h.value=Y},V=Y=>{if(m.value===null||m.value===Y){m.value=null,h.value=null;return}const te=[...s.value],[oe]=te.splice(m.value,1);te.splice(Y,0,oe),s.value=te,m.value=null,h.value=null},S=()=>{w.value&&w.value.click()},x=Y=>{const te=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".ico",".tiff",".tif"],oe=Y.toLowerCase();return te.some(pe=>oe.endsWith(pe))},L=Y=>{const oe=Y.target.files?.[0];if(!oe)return;const pe=new FileReader;pe.onload=be=>{try{const Ae=be.target?.result;if(typeof Ae=="string"){const Fe=JSON.parse(Ae);Array.isArray(Fe)&&s.value.push(...Fe)}}catch(Ae){console.error("Error parsing file:",Ae)}},pe.readAsText(oe)},U=()=>{const Y=JSON.stringify(s.value,null,2),te=new Blob([Y],{type:"application/json"}),oe=URL.createObjectURL(te),pe=document.createElement("a");pe.href=oe,pe.download="data.json",pe.click(),URL.revokeObjectURL(oe)},ne=new Set(["autocomplete","select","radio","checkbox","combobox"]),N=new Map,P=(Y,te)=>{const oe=`/api/suggest/${Y}`,pe=oe.includes("?")?"&":"?",be=te?`&val=${te}`:"";return`${oe}${pe}json=1${be}`},q=Y=>Y==null||Y===""?null:typeof Y=="object"?Y?.id!==void 0&&Y.id!==null&&Y.id!==""?Y.id:null:Y,K=Y=>{const te=new Set;return Array.isArray(s.value)&&s.value.forEach(oe=>{const pe=oe?.[Y];if(pe==null||pe==="")return;if(Array.isArray(pe)){pe.forEach(Ae=>{const Fe=q(Ae);Fe!==null&&te.add(Fe)});return}const be=q(pe);be!==null&&te.add(be)}),te},O=async()=>{if(!t.colModel?.length)return;const Y=t.colModel.filter(te=>te.data&&ne.has(te.type?.toLowerCase()||""));Y.length&&await Promise.all(Y.map(async te=>{const oe=te.key||te.name;if(!oe)return;const pe=K(oe),be=Array.from(pe).map(De=>String(De)).sort(),Ae=be.join(",");if(!be.length||N.get(oe)===Ae)return;N.set(oe,Ae);const Fe=be.map(encodeURIComponent).join(",");try{const W=await(await fetch(P(te.data,Fe))).json();i.value[oe]=W?.data??W}catch(De){console.error("Failed to fetch column values",De)}}))};e.watch([()=>t.colModel,()=>s.value],()=>{O()},{immediate:!0,deep:!0});const Q=e.ref(""),re=e.ref(!1);let T="edit",F=0;const A=Y=>(Y?.format||Y?.type||"").toString().toLowerCase(),J=e.computed(()=>(t.colModel?.filter(te=>A(te)!=="slot")??[]).map(te=>{const oe=te.key||te.name;return oe?{...te,name:oe,key:oe}:te})),se=e.ref({}),ee=e.ref({}),he=Y=>typeof Y!="string"?!1:!!n[Y],xe=(Y,te)=>te?te.split(".").reduce((oe,pe)=>oe==null?oe:oe[pe.trim()],Y):Y,ye=(Y,te)=>typeof Y!="string"?"":Y.replace(/{{\s*([^}]+)\s*}}/g,(oe,pe)=>{const be=xe(te,pe.trim());return be??""}),$e=Y=>{if(Y==null||Y==="")return"";if(typeof Y=="number")return Y;if(typeof Y=="boolean")return Y?1:0;if(typeof Y=="string")return Y.toLowerCase();if(Array.isArray(Y))return Y.map(te=>$e(te)).join(", ");if(typeof Y=="object"){if(Y.text!==void 0)return String(Y.text).toLowerCase();if(Y.label!==void 0)return String(Y.label).toLowerCase();if(Y.id!==void 0)return String(Y.id).toLowerCase()}return String(Y).toLowerCase()},Le=Y=>{const te=Y.key||Y.name;if(te){if(d.value===te){g.value=g.value==="asc"?"desc":"asc";return}d.value=te,g.value="asc"}};async function Oe(){Q.value="Додати",re.value=!0,T="add",se.value={}}function Me(Y,te){if(!Y?.length)return null;const oe=typeof te=="object"?te?.id:te;return oe==null||oe===""?null:Y.find(pe=>pe?.id?.toString()===oe.toString())?.text??null}function ie(Y){return Y==null||Y===""?"-":Array.isArray(Y)?Y.map(te=>typeof te=="object"?te?.text??te?.id??"-":te).join(", "):typeof Y=="object"?Y?.text??Y?.id??"-":Y}function le(Y,te){const oe=te.key||te.name,pe=Y?.[oe],be=i.value[oe];if(!pe)return"-";if(Array.isArray(pe)){const Fe=pe.map(De=>Me(be,De)).filter(Boolean);return Fe.length?Fe.join(", "):ie(pe)}const Ae=Me(be,pe);return Ae||ie(pe)}async function ke(Y,te){Q.value="Редагувати",re.value=!0,T="edit",F=te,se.value={...Y}}function Se(){const Y=ee.value.validate();if(Y){we.notify({type:"warning",title:"Помилка валідації",message:Object.entries(Y).map(([te,oe])=>`${te}: ${oe}`).join(`
2
- `)});return}T==="add"?Array.isArray(s.value)?s.value=[...s.value,se.value]:s.value=[se.value]:s.value=s.value.map((te,oe)=>oe===F?se.value:te),re.value=!1}function Te(Y){s.value=s.value.filter((te,oe)=>oe!==Y)}function qe(){re.value=!1}return(Y,te)=>(e.openBlock(),e.createElementBlock("div",gd,[l.value?(e.openBlock(),e.createElementBlock("div",yd,[r("search")?(e.openBlock(),e.createElementBlock("div",bd,[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":te[0]||(te[0]=oe=>c.value=oe),placeholder:"Пошук",class:"w-full rounded-md border border-gray-200 bg-white pl-10 pr-3 py-2 text-sm text-gray-900 placeholder:text-gray-400 focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-100"},null,512),[[e.vModelText,c.value]])])):e.createCommentVNode("",!0),e.createElementVNode("div",kd,[r("import")?(e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"fileInput",ref:w,onChange:L,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"}),te[4]||(te[4]=e.createTextVNode(" Імпорт ",-1))])):e.createCommentVNode("",!0),r("export")?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:U,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"}),te[5]||(te[5]=e.createTextVNode(" Експорт ",-1))])):e.createCommentVNode("",!0),r("add")?(e.openBlock(),e.createElementBlock("button",{key:3,onClick:Oe,type:"button",class:"inline-flex items-center gap-2 rounded-md bg-blue-500 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-blue-600 transition-colors"},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4 text-white"}),te[6]||(te[6]=e.createTextVNode(" Додати ",-1))])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),e.createElementVNode("div",wd,[e.createElementVNode("table",xd,[e.createElementVNode("thead",vd,[e.createElementVNode("tr",_d,[e.createElementVNode("th",Cd,[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,oe=>(e.openBlock(),e.createElementBlock("th",{key:oe.key,class:"px-4 py-3 text-left text-xs font-semibold text-gray-900"},[e.createElementVNode("button",{type:"button",onClick:pe=>Le(oe),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(oe.ua||oe.label),1),d.value===(oe.key||oe.name)?(e.openBlock(),e.createElementBlock("span",Bd,e.toDisplayString(g.value==="asc"?"▲":"▼"),1)):e.createCommentVNode("",!0)],8,Ed)]))),128)),te[7]||(te[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":!h.value}])},[f.value.length===0?(e.openBlock(),e.createElementBlock("td",Vd,[e.createElementVNode("div",Sd,[e.createElementVNode("div",$d,[e.createVNode(hd,{class:"w-48 mx-auto"}),te[8]||(te[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(f.value,(oe,pe)=>(e.openBlock(),e.createElementBlock("tr",{key:oe.id,"data-row-index":pe,class:e.normalizeClass(["border-b transition-colors hover:bg-gray-50 cursor-move text-sm text-gray-700",{"opacity-50":m.value===pe,"border-t-2 border-b-2 border-blue-500 bg-blue-50 dark:bg-blue-900/20":h.value===pe}]),draggable:"true",onDragstart:be=>Z(pe),onDragover:e.withModifiers(be=>I(pe),["prevent"]),onDrop:be=>V(pe)},[e.createElementVNode("td",{class:"px-4 py-3 text-center align-middle touch-none select-none",onPointerdown:be=>_(be,pe),onPointermove:B,onPointerup:$,onPointercancel:j},[e.createElementVNode("div",Md,[e.createVNode(e.unref(X.GripVertical),{class:"mx-auto h-4 w-4 text-slate-400 dark:text-slate-500"})])],40,Nd),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,be=>(e.openBlock(),e.createElementBlock("td",{key:be.key,class:"px-4 py-3 align-middle"},[A(be)==="slot"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[he(be.slot)?e.renderSlot(Y.$slots,be.slot,{key:0,row:oe,value:oe[be.key],column:be}):(e.openBlock(),e.createElementBlock("div",{key:1,class:"text-sm text-gray-900",innerHTML:ye(be.slot,oe)},null,8,Fd))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[A(be)==="file"?(e.openBlock(),e.createElementBlock("div",Dd,[x(le(oe,be))?(e.openBlock(),e.createElementBlock("div",Td,[e.createElementVNode("img",{src:le(oe,be),alt:"alt",width:"45",class:"rounded-md max-w-[45px] h-[45px] object-cover"},null,8,Ld)])):(e.openBlock(),e.createElementBlock("div",Id,[e.createVNode(e.unref(X.FileText),{class:"h-4 w-4 min-w-4"})]))])):A(be)==="color"?(e.openBlock(),e.createElementBlock("div",Od,[e.createElementVNode("span",{class:"inline-flex h-6 w-6 rounded border border-gray-200",style:e.normalizeStyle({backgroundColor:le(oe,be)||"#ffffff"})},null,4)])):(e.openBlock(),e.createElementBlock("div",Pd,e.toDisplayString(le(oe,be)),1))],64))]))),128)),e.createElementVNode("td",Rd,[e.createElementVNode("div",zd,[e.createElementVNode("button",{onClick:be=>ke(oe,pe),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,jd),e.createElementVNode("button",{onClick:be=>Te(pe),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,Ud)])])],42,Ad))),128))],2)])]),e.createVNode(e.unref(we.VsModal),{visible:re.value,title:Q.value,size:"lg",onClose:qe,teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(pt,{schema:J.value,"allow-id-field":"",values:se.value,"onUpdate:values":te[1]||(te[1]=oe=>se.value=oe),form:ee.value,"onUpdate:form":te[2]||(te[2]=oe=>ee.value=oe)},null,8,["schema","values","form"]),e.createElementVNode("div",Hd,[e.createElementVNode("button",{type:"button",onClick:te[3]||(te[3]=oe=>re.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"])]))}}),qd={},Kd={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 Wd(o,t){return e.openBlock(),e.createElementBlock("svg",Kd,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 Gd=Be(qd,[["render",Wd]]),Yd={},Xd={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 Zd(o,t){return e.openBlock(),e.createElementBlock("svg",Xd,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 Jd=Be(Yd,[["render",Zd]]),Qd={},eu={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 tu(o,t){return e.openBlock(),e.createElementBlock("svg",eu,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 nu=Be(Qd,[["render",tu]]);function ou(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,i=Math.floor((1-Math.log(Math.tan(s)+1/Math.cos(s))/Math.PI)/2*a);return{z:r,x:l,y:i}}function ru(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 _r(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 lu(o,t){if(o?.url){const n=ru(o.url,t);if(n)return n;const r=_r(o.url,t);if(r)return r}if(o?.preview){const n=_r(o.preview,t);return n||o.preview}}const au=["title","aria-expanded"],su=["src"],iu={class:"map-layers__header"},cu={class:"map-layers__body"},du={key:0,class:"map-layers__section"},uu={class:"map-layers__grid map-layers__grid--4"},pu=["disabled","title","onClick"],mu={class:"map-layers__thumb"},fu=["src"],hu={class:"map-layers__option-label"},gu={key:1,class:"map-layers__section"},yu={class:"map-layers__grid map-layers__grid--4"},bu=["title","onClick"],ku={class:"map-layers__thumb"},wu=["src"],xu={class:"map-layers__option-label"},vu={key:2,class:"map-layers__section map-layers__section--vector"},_u={class:"map-layers__vector-list"},Cu=["checked","disabled","onChange"],Dn=.8,Eu=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*Dn,l=400*Dn,s=400*Dn,i=320*Dn,c=e.ref(null),d=e.ref(null),g=e.ref(null),f=e.ref(!1),p=e.ref({}),m=e.computed(()=>Object.keys(n.basemaps||{}).length>0),h=e.computed(()=>Object.keys(n.tileOverlays||{}).length>0),w=e.computed(()=>n.vectorOverlays??[]),y=e.computed(()=>w.value.length>0),C=e.computed(()=>m.value||h.value||y.value),_=e.computed(()=>n.basemaps?.[n.activeBaseKey]?.name||n.activeBaseKey||"Шари"),B=e.computed(()=>j(n.basemaps)),$=e.computed(()=>j(n.tileOverlays||{}));function j(O){const Q=n.previewTile;return Q?Object.fromEntries(Object.entries(O).map(([re,T])=>[String(re),lu(T,Q)??T.preview??""])):{}}function Z(O){return B.value[O]||n.basemaps?.[O]?.preview||""}function I(O){return $.value[O]||n.tileOverlays?.[O]?.preview||""}const V=e.computed(()=>Z(n.activeBaseKey));function S(O){return Array.isArray(n.activeTileOverlayKeys)&&n.activeTileOverlayKeys.includes(O)}function x(){const O=d.value;if(!O)return;const Q=O.getBoundingClientRect(),re=Math.min(l,window.innerWidth-16);let T=Q.left;T+re>window.innerWidth-8&&(T=window.innerWidth-re-8),T=Math.max(8,T);const F=Q.top-a-8,A=n.compact?i:s,J=Math.min(A,Math.max(96,F));p.value={position:"fixed",left:`${T}px`,bottom:`${window.innerHeight-Q.top+a}px`,width:`${re}px`,maxHeight:`${J}px`,zIndex:"10050"}}async function L(){f.value=!f.value,f.value&&(await e.nextTick(),x())}function U(){f.value=!1}function ne(O){O!==n.activeBaseKey&&r("onLayerChange",O)}function N(O){n.disabled||r("onOverlayToggle",O)}function P(O){n.disabled||r("onVectorOverlayToggle",O)}function q(O){if(!f.value)return;const Q=O.target;c.value?.contains(Q)||g.value?.contains(Q)||U()}function K(O){O.key==="Escape"&&U()}return e.watch(f,async O=>{O&&(await e.nextTick(),x())}),e.onMounted(()=>{document.addEventListener("click",q),document.addEventListener("keydown",K),window.addEventListener("resize",x),window.addEventListener("scroll",x,!0)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",q),document.removeEventListener("keydown",K),window.removeEventListener("resize",x),window.removeEventListener("scroll",x,!0)}),(O,Q)=>C.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"rootRef",ref:c,class:e.normalizeClass(["map-layers relative",{"map-layers--compact":O.compact}])},[e.createElementVNode("button",{ref_key:"triggerRef",ref:d,type:"button",class:"map-layers__trigger",title:_.value,"aria-haspopup":"dialog","aria-expanded":f.value,onClick:e.withModifiers(L,["stop"])},[V.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:V.value,alt:"",class:"map-layers__trigger-img"},null,8,su)):e.createCommentVNode("",!0)],8,au),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"map-layers-panel"},{default:e.withCtx(()=>[f.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"panelRef",ref:g,class:"map-layers__panel",style:e.normalizeStyle(p.value),role:"dialog","aria-label":"Шари карти"},[e.createElementVNode("header",iu,[Q[0]||(Q[0]=e.createElementVNode("h3",{class:"map-layers__title"},"Шари карти",-1)),e.createElementVNode("button",{type:"button",class:"map-layers__close","aria-label":"Закрити",onClick:U},[e.createVNode(e.unref(X.X),{class:"map-layers__close-icon"})])]),e.createElementVNode("div",cu,[h.value?(e.openBlock(),e.createElementBlock("section",du,[Q[1]||(Q[1]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Додаткові шари",-1)),e.createElementVNode("div",uu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(O.tileOverlays,(re,T)=>(e.openBlock(),e.createElementBlock("button",{key:`tile-${T}`,type:"button",class:e.normalizeClass(["map-layers__option",{"map-layers__option--active":S(String(T))}]),disabled:O.disabled,title:re.name||String(T),onClick:F=>N(String(T))},[e.createElementVNode("span",mu,[e.createElementVNode("img",{src:I(String(T)),alt:""},null,8,fu)]),e.createElementVNode("span",hu,e.toDisplayString(re.name||T),1)],10,pu))),128))])])):e.createCommentVNode("",!0),m.value?(e.openBlock(),e.createElementBlock("section",gu,[Q[2]||(Q[2]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Базові шари",-1)),e.createElementVNode("div",yu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(O.basemaps,(re,T)=>(e.openBlock(),e.createElementBlock("button",{key:`base-${T}`,type:"button",class:e.normalizeClass(["map-layers__option",{"map-layers__option--active":O.activeBaseKey===String(T)}]),title:re.name||String(T),onClick:F=>ne(String(T))},[e.createElementVNode("span",ku,[e.createElementVNode("img",{src:Z(String(T)),alt:""},null,8,wu)]),e.createElementVNode("span",xu,e.toDisplayString(re.name||T),1)],10,bu))),128))])])):e.createCommentVNode("",!0),y.value?(e.openBlock(),e.createElementBlock("section",vu,[Q[3]||(Q[3]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Дані",-1)),e.createElementVNode("div",_u,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value,re=>(e.openBlock(),e.createElementBlock("label",{key:re.id,class:"map-layers__vector-item"},[e.createElementVNode("input",{type:"checkbox",class:"map-layers__checkbox",checked:re.visible,disabled:O.disabled,onChange:T=>P(re.id)},null,40,Cu),e.createElementVNode("span",null,e.toDisplayString(re.label),1)]))),128))])])):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))],2)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-c1206d48"]]),Rt=1e-10,Tn=/([+-]?\d{1,3})\s*[°º˚]\s*(\d{1,2})\s*['’′`]\s*(\d{1,2}(?:\.\d+)?)\s*["”″]\s*([NSEW])/gi,Bu=/^[+-]?\d+(?:\.\d+)?$/;function Vu(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,g)=>{const f=g+1,p=t==="decimal"?Su(d,f,n):Er(d,f,n);if(!p.ok){a.push(...p.errors);return}const m=l[l.length-1];if(m&&Vr(m,p.point)){a.push({line:f,message:"Послідовні точки не повинні дублюватися."});return}l.push(p.point)}),a.length)return{ok:!1,errors:a};if(new Set(l.map(Au)).size<3)return{ok:!1,errors:[{line:0,message:"Полігон повинен містити мінімум 3 унікальні точки."}]};const i=[...l];let c=!1;return Vr(i[0],i[i.length-1])||(i.push(i[0]),c=!0),Nu(i)?{ok:!1,errors:[{line:0,message:"Полігон має самоперетин."}]}:{ok:!0,ring:i,wasClosedAutomatically:c}}function Su(o,t,n){return Cr(o,"decimal",n,t)}function Cr(o,t,n,r=1){return t==="decimal"?$u(o,r,n):Er(o,r,n)}function $u(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=>Bu.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 i=n==="lat-lon"?l:s,c=n==="lat-lon"?s:l;return(i<-90||i>90)&&r.push({line:t,message:"Широта поза діапазоном (-90..90)."}),(c<-180||c>180)&&r.push({line:t,message:"Довгота поза діапазоном (-180..180)."}),r.length?{ok:!1,errors:r}:{ok:!0,point:[c,i]}}function Er(o,t,n){Tn.lastIndex=0;const r=[...o.matchAll(Tn)];if(r.length<2)return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати DMS-координати."}]};if(r.length>2)return{ok:!1,errors:[{line:t,message:"У рядку дозволено лише одну пару координат."}]};if(Tn.lastIndex=0,o.replace(Tn," ").replace(/[\s,;]+/g,"").trim().length)return{ok:!1,errors:[{line:t,message:"У рядку виявлено зайві символи або значення."}]};const l=Br(r[0],t,n==="lat-lon"?"lat":"lon"),s=Br(r[1],t,n==="lat-lon"?"lon":"lat"),i=[];if(l.ok||i.push(l.error),s.ok||i.push(s.error),i.length)return{ok:!1,errors:i};const c=n==="lat-lon"?l.value:s.value;return{ok:!0,point:[n==="lat-lon"?s.value:l.value,c]}}function Br(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),g=n==="lat"?90:180;if(d>g)return{ok:!1,error:{line:t,message:n==="lat"?"Градуси широти повинні бути в діапазоні 0..90.":"Градуси довготи повинні бути в діапазоні 0..180."}};if(d===g&&(a!==0||l!==0))return{ok:!1,error:{line:t,message:n==="lat"?"Для 90° широти хвилини й секунди мають бути 0.":"Для 180° довготи хвилини й секунди мають бути 0."}};const f=d+a/60+l/3600;return{ok:!0,value:s==="S"||s==="W"?-f:f}}function Au(o){return`${o[0].toFixed(12)}:${o[1].toFixed(12)}`}function Vr(o,t){return Math.abs(o[0]-t[0])<Rt&&Math.abs(o[1]-t[1])<Rt}function Nu(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(Mu(n,r,l,s))return!0}}return!1}function Mu(o,t,n,r){const a=Ln(o,t,n),l=Ln(o,t,r),s=Ln(n,r,o),i=Ln(n,r,t);return!!(a!==l&&s!==i||a===0&&In(o,n,t)||l===0&&In(o,r,t)||s===0&&In(n,o,r)||i===0&&In(n,t,r))}function Ln(o,t,n){const r=(t[1]-o[1])*(n[0]-t[0])-(t[0]-o[0])*(n[1]-t[1]);return Math.abs(r)<Rt?0:r>0?1:2}function In(o,t,n){return t[0]<=Math.max(o[0],n[0])+Rt&&t[0]+Rt>=Math.min(o[0],n[0])&&t[1]<=Math.max(o[1],n[1])+Rt&&t[1]+Rt>=Math.min(o[1],n[1])}const Fu=["title"],Du={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"},Tu=["onClick"],Lu=["placeholder"],Iu={class:"absolute inset-y-0 right-2 flex items-center gap-1"},Ou={class:"flex items-center justify-between gap-2 px-3 py-2 border-b border-gray-100"},Pu={class:"text-xs font-semibold uppercase tracking-wide text-gray-500"},Ru={class:"max-h-[260px] overflow-auto"},zu={key:0,class:"divide-y divide-gray-100"},ju=["onClick"],Uu={key:1,class:"px-3 py-3 text-xs text-gray-500"},Sr="formMapSearchAddressHistory",Hu=12,qu="https://geo.rv.ua/api-user/dzk.api",Ku="https://nominatim.openstreetmap.org/search",Wu=Be(e.defineComponent({__name:"map-search",props:{config:{}},emits:["goToCoordinates"],setup(o,{emit:t}){const n={mounted(W,v){if(typeof document>"u")return;let M=null;const z=8,de=()=>{const Pe=String(v?.value??"");if(!Pe)return;M=document.createElement("div"),M.textContent=Pe,Object.assign(M.style,{position:"absolute",background:"#333",color:"#fff",padding:"4px 8px",borderRadius:"4px",fontSize:"12px",whiteSpace:"nowrap",pointerEvents:"none",zIndex:"9999"}),document.body.appendChild(M);const Ie=W.getBoundingClientRect();M.style.left=`${Ie.right+window.scrollX+z}px`,M.style.top=`${Ie.top+window.scrollY+(Ie.height-M.offsetHeight)/2}px`},_e=()=>{M?.parentNode&&M.parentNode.removeChild(M),M=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 v=W.tooltipRightHandlers;v&&(W.removeEventListener("mouseenter",v.show),W.removeEventListener("mouseleave",v.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 i(){const v=l?.appContext.config.globalProperties?.$settings?.map?.searchViewbox;if(v)return Array.isArray(v)?v.join(","):String(v);const z=s()?.map?.searchViewbox;if(z)return Array.isArray(z)?z.join(","):String(z)}function c(){const v=l?.appContext.config.globalProperties?.$settings?.map?.addressSuggest;if(typeof v=="string"&&v.trim())return v.trim();const z=s()?.map?.addressSuggest;if(typeof z=="string"&&z.trim())return z.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,v=W?.map?.cadastreSuggest??W?.map?.parcelSuggest??W?.map?.parcelSearch;if(typeof v=="string"&&v.trim())return v.trim();const M=s(),z=M?.map?.cadastreSuggest??M?.map?.parcelSuggest??M?.map?.parcelSearch;if(typeof z=="string"&&z.trim())return z.trim()}const g=!!c(),f=!!i(),p=e.computed(()=>{const W=["nominatim","xy","parcel"];return g&&W.unshift("address"),f?W:W.filter(v=>v!=="nominatim")}),m=e.computed(()=>{const W=p.value,v=r.config?.tools?.filter(M=>W.includes(M));return v&&v.length?v:W}),h=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 y=e.ref(""),C=e.ref(!1),_=e.ref(null),B=e.ref(null),$=e.ref(null),j=e.ref(null),Z=e.ref([]),I=e.ref(null),V=e.ref(!1),S=e.ref([]),x=e.computed(()=>(w.value==="address"||w.value==="nominatim")&&V.value),L=e.computed(()=>r.config?.addressDebounceMs??1e3);let U=null;const ne=e.ref(!1),N=e.computed(()=>y.value.trim().length>0?Z.value:S.value),P=e.computed(()=>y.value.trim().length?`Знайдено ${Z.value.length}`:"Історія пошуку"),q=e.computed(()=>y.value.trim().length?"Нічого не знайдено":"Історія порожня");function K(){if(typeof window>"u")return[];try{const W=window.localStorage?.getItem?.(Sr);if(!W)return[];const v=JSON.parse(W);return Array.isArray(v)?v:[]}catch{return[]}}function O(W){typeof window>"u"||window.localStorage?.setItem?.(Sr,JSON.stringify(W))}function Q(W){const M=[W,...S.value.filter(z=>z.id!==W.id)].slice(0,10);S.value=M,O(M)}const re=e.reactive({position:"absolute",left:"0px",top:"0px",width:"100%",display:"none"});function T(){if(!j.value)return;const W=j.value.getBoundingClientRect(),v=$.value?.getBoundingClientRect(),M=v?.width??W.width,z=(v?.left??W.left)+window.scrollX,de=W.bottom+window.scrollY+Hu;re.left=`${z}px`,re.top=`${de}px`,re.width=`${M}px`,re.display="block"}const F=()=>{x.value&&T()};function A(){U&&(clearTimeout(U),U=null)}e.watch(w,()=>{y.value="",C.value=!1,Z.value=[],V.value=!1,A(),ne.value=!1}),e.watch(x,W=>{W?e.nextTick(()=>{T()}):re.display="none"}),e.watch(y,W=>{if(w.value!=="address"&&w.value!=="nominatim"){Z.value=[],A();return}if(!W.trim()){Z.value=[],V.value=S.value.length>0,A();return}A(),V.value=!0,U=window.setTimeout(()=>{oe(W).catch(v=>{const M=v?.message||"Помилка пошуку адреси";we.notify({type:"error",title:"Пошук адреси",message:M})})},L.value)});function J(W){const v=[];B.value&&v.push(B.value),W instanceof HTMLElement&&v.push(W),_.value?.querySelectorAll("li")?.forEach(z=>{v.push(z)}),v.forEach(z=>{z.dispatchEvent(new MouseEvent("mouseleave",{bubbles:!0}))})}function se(W){C.value&&J(W.target),C.value=!C.value}function ee(W,v){J(v?.target),w.value=W}function he(){y.value="",Z.value=[],V.value=!1,ne.value=!1}function xe(W){const v=W.target;if(C.value){const M=_.value;M&&!M.contains(v)&&(J(v),C.value=!1)}if(x.value){const M=I.value,z=j.value;M&&!M.contains(v)&&(!z||!z.contains(v))&&(V.value=!1)}}e.onMounted(()=>{S.value=K(),window.addEventListener("click",xe,!0),window.addEventListener("scroll",F,!0),window.addEventListener("resize",F)}),e.onBeforeUnmount(()=>{window.removeEventListener("click",xe,!0),window.removeEventListener("scroll",F,!0),window.removeEventListener("resize",F),A()});function ye(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 Le(W){const v=Cr(W.trim(),"dms","lat-lon");if(v.ok){const[R,ue]=v.point;return{lat:ue,lng:R}}const M=W.replace(/[,]+/g," ").trim();if(!M)return null;const z=M.split(/\s+/).filter(Boolean);if(z.length<2)return null;const de=z.slice(0,2).map(Number);if(!de.every(R=>Number.isFinite(R)))return null;let[_e,Pe]=de,Ie=_e,Xe=Pe;const et=R=>Math.abs(R)<=90,ot=R=>Math.abs(R)<=180;if(!et(Ie)||!ot(Xe))if(et(Xe)&&ot(Ie))Ie=Pe,Xe=_e;else return null;return{lat:Ie,lng:Xe}}function Oe(W){const v=W?.result||W?.data||W;return(Array.isArray(v)?v:v?[v]:[]).map((z,de)=>{const _e=z?.geom_centroid,Pe=Array.isArray(_e?.coordinates)?_e.coordinates:null;if(!Pe||Pe.length<2)return null;const Ie=Number(Pe[0]),Xe=Number(Pe[1]);return!Number.isFinite(Xe)||!Number.isFinite(Ie)?null:{id:String(z?.parcel_id??z?.cad_num??de),title:z?.cadnum||z?.cad_num||"Земельна ділянка",lat:Xe,lng:Ie}}).filter(z=>!!z)}function Me(W){return(Array.isArray(W?.features)?W.features:[]).map((M,z)=>{const de=M?.geometry?.coordinates,_e=Number(de?.[0]),Pe=Number(de?.[1]);if(!Number.isFinite(Pe)||!Number.isFinite(_e))return null;const Ie=M?.properties||{},Xe=Ie?.geocoding?.label||Ie?.display_name||Ie?.label||"Адреса";return{id:String(Ie?.geocoding?.place_id||Ie?.place_id||z),title:Xe,lat:Pe,lng:_e}}).filter(M=>!!M)}function ie(W){return Number.isFinite(W.lat)&&Number.isFinite(W.lng)}function le(W){if(W==null||typeof W=="string"&&!W.trim())return null;const v=Number(W);return Number.isFinite(v)?v:null}function ke(W){const v=le(W.lng)??le(W.lon)??le(W.longitude)??le(W.x),M=le(W.lat)??le(W.latitude)??le(W.y);if(v!=null&&M!=null)return{lat:M,lng:v};const z=W?.geometry?.coordinates??W?.geom_centroid?.coordinates??W?.centroid?.coordinates??W?.geojson?.geometry?.coordinates??W?.geom?.coordinates;if(Array.isArray(z)&&z.length>=2){const de=le(z[0]),_e=le(z[1]);if(de!=null&&_e!=null)return{lat:_e,lng:de}}return null}function Se(W){return(Array.isArray(W?.data)?W.data:[]).map((M,z)=>{const de=ke(M),_e=String(M.text??M.title??M.label??M.name??M.address??M.display_name??M.id??"Адреса"),Pe=String(M.id??M.code??M.value??z);return de?{id:Pe,title:_e,...de}:{id:Pe,title:_e}}).filter(M=>!!M?.title)}function Te(W){const v=d()||qu;if(v.includes(":id"))return v.replace(":id",encodeURIComponent(W));if(v.includes(":name"))return v.replace(":name",encodeURIComponent(W));try{const M=new URL(v,window.location.origin),z=r.config?.parcelQueryParam?.trim()||"cad_num";return M.searchParams.set(z,W),M.toString()}catch{return v}}function qe(W){const v=c();if(!v)return null;if(v.includes(":name"))return v.replace(":name",encodeURIComponent(W));try{const M=new URL(v,window.location.origin);return W.trim()&&M.searchParams.set("q",W),M.toString()}catch{return v}}async function Y(W){const v=qe(W);if(!v)return[];const M=await fetch(v);if(!M.ok)throw new Error(`HTTP ${M.status}`);const z=await M.json();return Se(z)}async function te(W){const v=new URL(Ku);v.searchParams.set("format","geojson"),v.searchParams.set("q",W),v.searchParams.set("addressdetails","1"),v.searchParams.set("bounded","1");const M=i();M&&v.searchParams.set("viewbox",M);const z=await fetch(v.toString());if(!z.ok)throw new Error(`HTTP ${z.status}`);const de=await z.json();return Me(de)}async function oe(W){if(Z.value=[],A(),w.value==="address"){if(!c()){we.notify({type:"warning",title:"Пошук адреси",message:"Не налаштовано addressSuggest"});return}const z=await Y(W);if(!z.length){we.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}Z.value=z;return}const v=await te(W);if(!v.length){we.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}Z.value=v}async function pe(W){if(ie(W)){Fe(W),Q(W);return}we.notify({type:"warning",title:"Пошук адреси",message:"Геометрія для обраної адреси відсутня"})}function be(){w.value!=="address"&&w.value!=="nominatim"||(V.value=!0,e.nextTick(()=>{T()}))}function Ae(W){const M=W.replace(/\s+/g,"").split(":");if(M.length!==4)return!1;const z=[10,2,3,4];return M.every((de,_e)=>de.length===z[_e]&&/^\d+$/.test(de))}function Fe(W){a("goToCoordinates",[W.lat,W.lng]),ne.value=!0}async function De(){const W=y.value.trim();if(W){if(w.value==="xy"){const v=Le(W);if(!v){we.notify({type:"warning",title:"Пошук координат",message:"Використайте `lat lon` або DMS у форматі `50°27'00\"N 30°31'24\"E`."});return}Fe(v);return}if(w.value==="address"||w.value==="nominatim"){try{await oe(W)}catch(v){const M=v?.message||"Помилка пошуку адреси";we.notify({type:"error",title:"Пошук адреси",message:M})}return}try{if(!Ae(W)){we.notify({type:"warning",title:"Пошук кадастру",message:"Кадастровий номер має формат ХХХХХХХХХХ:ХХ:ХХХ:ХХХХ"});return}const v=await fetch(Te(W));if(!v.ok)throw new Error(`HTTP ${v.status}`);const M=await v.json(),z=Oe(M);if(!z.length)we.notify({type:"warning",title:"Пошук",message:"Не знайдено результатів"});else{const de=z.find(ie);if(!de){we.notify({type:"warning",title:"Пошук",message:"Геометрія ділянки відсутня"});return}Fe(de)}}catch(v){const M=v?.message||"Помилка пошуку";we.notify({type:"error",title:"Пошук",message:M})}}}return(W,v)=>(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(De,["prevent"])},[m.value.length>1?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:_,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:se},[e.withDirectives((e.openBlock(),e.createElementBlock("span",{ref_key:"selectedToolLabelRef",ref:B,class:"block w-full truncate",title:ye(w.value)},[e.createTextVNode(e.toDisplayString(ye(w.value)),1)],8,Fu)),[[n,$e(w.value)]]),(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(["w-4 h-4 text-gray-500 transition-transform",{"rotate-180":C.value}]),viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},v[3]||(v[3]=[e.createElementVNode("path",{d:"M6 9l6 6 6-6",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]),2))]),C.value?(e.openBlock(),e.createElementBlock("div",Du,[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,M=>e.withDirectives((e.openBlock(),e.createElementBlock("li",{key:M,class:"px-3 py-2 cursor-pointer hover:bg-gray-100 text-gray-900",onClick:z=>ee(M,z)},[e.createTextVNode(e.toDisplayString(ye(M)),1)],8,Tu)),[[n,$e(M)]])),128))])])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"searchWrapperRef",ref:j,class:"relative flex-1 min-w-[140px]"},[w.value==="parcel"?(e.openBlock(),e.createBlock(xn,{key:0,modelValue:y.value,"onUpdate:modelValue":v[0]||(v[0]=M=>y.value=M),mask:"0000000000:00:000:0000",class:e.normalizeClass(["vs-input !h-[34px] transition-all border block w-full border-gray-200 rounded-md focus:border-blue-100 border-solid py-1.5 pl-3 text-sm",ne.value?"!pr-14":"!pr-8"])},null,8,["modelValue","class"])):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,"onUpdate:modelValue":v[1]||(v[1]=M=>y.value=M),placeholder:h.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",ne.value?"!pr-14":"!pr-8"]),onFocus:be},null,42,Lu)),[[e.vModelText,y.value,void 0,{trim:!0}]]),e.createElementVNode("div",Iu,[ne.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},v[4]||(v[4]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)]))):e.createCommentVNode("",!0),v[5]||(v[5]=e.createElementVNode("button",{type:"submit",class:"flex items-center text-gray-400 hover:text-gray-600","aria-label":"Пошук"},[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m21 21-4.35-4.35m0 0A7.5 7.5 0 1 0 5 5a7.5 7.5 0 0 0 11.65 11.65Z"})])],-1))]),x.value?(e.openBlock(),e.createBlock(e.Teleport,{key:2,to:"body"},[e.createElementVNode("div",{ref_key:"addressResultsRef",ref:I,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(re)},[e.createElementVNode("div",Ou,[e.createElementVNode("span",Pu,e.toDisplayString(P.value),1),e.createElementVNode("button",{type:"button",class:"text-gray-400 hover:text-gray-600","aria-label":"Закрити",onClick:v[2]||(v[2]=M=>V.value=!1)}," ✕ ")]),e.createElementVNode("div",Ru,[N.value.length?(e.openBlock(),e.createElementBlock("ul",zu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,M=>(e.openBlock(),e.createElementBlock("li",{key:M.id,class:"px-3 py-2 cursor-pointer hover:bg-gray-50",onClick:z=>pe(M)},e.toDisplayString(M.title),9,ju))),128))])):(e.openBlock(),e.createElementBlock("div",Uu,e.toDisplayString(q.value),1))])],4)])):e.createCommentVNode("",!0)],512)],32)],512))}}),[["__scopeId","data-v-4d528cf7"]]),Gu={class:"pt-1 border-t border-gray-100"},Yu={class:"space-y-1"},Xu=e.defineComponent({__name:"AddCoordinates",emits:["submit","cancel"],setup(o,{emit:t}){const n=t,r=e.ref(null),a=e.ref(null),l=(c,d,g)=>Math.min(Math.max(c,d),g),s=()=>{if(r.value===null||a.value===null||!Number.isFinite(r.value)||!Number.isFinite(a.value))return;const c=l(r.value,-90,90),d=l(a.value,-180,180);n("submit",{lat:c,lng:d}),r.value=null,a.value=null},i=()=>{r.value=null,a.value=null,n("cancel")};return(c,d)=>(e.openBlock(),e.createElementBlock("div",Gu,[d[2]||(d[2]=e.createElementVNode("p",{class:"text-xs text-gray-600 mb-1"},"Додати точку за координатами:",-1)),e.createElementVNode("div",Yu,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[0]||(d[0]=g=>r.value=g),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]=g=>a.value=g),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:i}," Скасувати ")])])]))}}),Zu=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))]))}}),Ju=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))]))}}),Qu=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))]))}}),ep=new Intl.NumberFormat("uk-UA",{minimumFractionDigits:2,maximumFractionDigits:2});function zt(o){return ep.format(o)}function $r(o){return o>=1e3?`${zt(o/1e3)} км`:`${zt(o)} м`}const tp={class:"flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"},np={key:0,class:"flex-1 flex gap-1"},op={key:1,class:"flex-1 font-mono text-gray-700"},rp=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),i=e.ref(n.coords.lng);e.watch(()=>n.coords,p=>{s.value=p.lat,i.value=p.lng},{deep:!0,immediate:!0});const c=(p,m,h)=>Math.min(Math.max(p,m),h),d=()=>{l.value=!0},g=()=>{if(!Number.isFinite(s.value)||!Number.isFinite(i.value))return;const p=c(s.value,-90,90),m=c(i.value,-180,180);r("update",{id:n.id,coords:{lat:p,lng:m}}),l.value=!1},f=()=>{r("delete",n.id)};return(p,m)=>(e.openBlock(),e.createElementBlock("div",tp,[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",np,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":m[0]||(m[0]=h=>s.value=h),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]=h=>i.value=h),type:"number",step:"0.0001",min:"-180",max:"180",class:"flex-1 px-1.5 py-0.5 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Довгота"},null,512),[[e.vModelText,i.value,void 0,{number:!0}]]),e.createElementVNode("button",{class:"px-1.5 py-0.5 bg-emerald-500 text-white rounded hover:bg-emerald-600 text-xs",type:"button",onClick:g}," ✓ ")])):(e.openBlock(),e.createElementBlock("span",op,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:f}," ✕ ")]))}}),lp={class:"ruler-control px-3 py-2.5 space-y-2"},ap={type:"button",class:"ruler-row w-full flex items-center gap-2 cursor-pointer group text-left"},sp={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"},ip={class:"text-sm font-semibold text-slate-700"},cp={class:"ruler-row"},dp={type:"button",class:"w-full flex items-center gap-2 cursor-pointer group text-left"},up={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"},pp={class:"inline-flex rounded-md overflow-hidden border border-gray-200 bg-gray-100"},mp=["onClick"],fp={class:"flex items-center gap-2 mt-0.5 pl-7"},hp={key:0,class:"text-base font-semibold text-green-600"},gp={key:1,class:"text-xs text-gray-400"},yp={class:"ruler-row flex items-center gap-2 cursor-pointer"},bp={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"},kp={class:"text-xs font-medium text-gray-600 flex-1"},wp={key:0,class:"pt-1.5 border-t border-gray-100 max-h-32 overflow-y-auto space-y-1"},xp=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=(h,w)=>{const y=S=>S*Math.PI/180,C=y(w.lat-h.lat),_=y(w.lng-h.lng),B=y(h.lat),$=y(w.lat),j=Math.sin(C/2),Z=Math.sin(_/2);return 6371e3*(2*Math.asin(Math.sqrt(j*j+Math.cos(B)*Math.cos($)*Z*Z)))},i=e.computed(()=>{if(t.points.length<2)return 0;let h=0;for(let w=1;w<t.points.length;w+=1)h+=s(t.points[w-1].coords,t.points[w].coords);return t.isShapeClosed&&t.points.length>=2&&(h+=s(t.points[t.points.length-1].coords,t.points[0].coords)),h}),c=e.computed(()=>i.value>=1e3?`${zt(i.value/1e3)} км`:`${zt(i.value)} м`);function d(h){if(h.length<3)return 0;const w=h[0].lat,y=h[0].lng,C=(B,$)=>{const j=(B-w)*110574;return{x:($-y)*111320*Math.cos(w*Math.PI/180),y:j}};let _=0;for(let B=0;B<h.length;B++){const $=(B+1)%h.length,j=C(h[B].lat,h[B].lng),Z=C(h[$].lat,h[$].lng);_+=j.x*Z.y-j.y*Z.x}return Math.abs(_)*.5}const g=e.computed(()=>{if(!t.isShapeClosed||t.points.length<3)return 0;const h=t.points.map(w=>w.coords);return d(h)}),f=e.computed(()=>g.value>0),p=e.computed(()=>{const h=g.value;if(h===0)return"—";if(r.value==="km2"){const y=h/1e6;return`${zt(y)} км²`}if(r.value==="ha"){const y=h/1e4;return`${zt(y)} га`}const w=h>=1?Math.round(h):h;return`${zt(w)} м²`}),m=e.computed(()=>{const h=t.points.length;return h===1?"1 точка":h>=2&&h<=4?`${h} точки`:`${h} точок`});return e.watch(()=>t.points.length,()=>{t.points.length===0&&(n.value=!1)}),(h,w)=>(e.openBlock(),e.createElementBlock("div",lp,[e.createElementVNode("button",ap,[e.createElementVNode("span",sp,[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",ip,e.toDisplayString(c.value),1)]),e.createElementVNode("div",cp,[e.createElementVNode("button",dp,[e.createElementVNode("span",up,[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",pp,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(a,(y,C)=>e.createElementVNode("button",{key:y.id,type:"button",class:e.normalizeClass(["px-2.5 py-1 text-xs font-medium transition-colors border-r border-gray-200 last:border-r-0",C===0&&"rounded-l-md",C===a.length-1&&"rounded-r-md",r.value===y.id?"bg-white text-green-600 font-semibold shadow-sm":"text-gray-600 hover:bg-gray-50"]),onClick:e.withModifiers(_=>r.value=y.id,["stop"])},e.toDisplayString(y.label),11,mp)),64))])]),e.createElementVNode("div",fp,[f.value?(e.openBlock(),e.createElementBlock("span",hp,e.toDisplayString(p.value),1)):(e.openBlock(),e.createElementBlock("span",gp,"—"))])]),e.createElementVNode("div",yp,[e.createElementVNode("span",bp,[e.createVNode(e.unref(X.Info),{size:12,"stroke-width":2.5})]),e.createElementVNode("span",kp,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",wp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.points,(y,C)=>(e.openBlock(),e.createBlock(rp,{key:y.id,id:y.id,index:C+1,coords:y.coords,onUpdate:w[0]||(w[0]=_=>h.$emit("update-point",_)),onDelete:_=>h.$emit("delete-point",y.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"},_p={class:"flex items-start gap-2"},Cp=e.defineComponent({__name:"InfoHint",setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",vp,[e.createElementVNode("div",_p,[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))])]))}}),Ep={class:"space-y-1.5"},Bp={class:"space-y-1 max-h-40 overflow-y-auto"},Vp={class:"text-gray-700"},Sp={class:"font-semibold text-slate-800"},$p=e.defineComponent({__name:"ToPointList",props:{points:{},isShapeClosed:{type:Boolean}},setup(o){const t=o;function n(l,s){const i=m=>m*Math.PI/180,c=i(s.lat-l.lat),d=i(s.lng-l.lng),g=i(l.lat),f=i(s.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(c/2)**2+Math.cos(g)*Math.cos(f)*Math.sin(d/2)**2)))}function r(l){return $r(l)}const a=e.computed(()=>{const l=[],s=t.points;if(s.length<2)return l;for(let i=0;i<s.length;i++){const c=i===s.length-1&&t.isShapeClosed?0:i+1;if(c>=s.length)break;const d=n(s[i].coords,s[c].coords);l.push({from:i+1,to:c+1,label:r(d)})}return l});return(l,s)=>(e.openBlock(),e.createElementBlock("div",Ep,[s[0]||(s[0]=e.createElementVNode("p",{class:"text-xs font-medium text-gray-600 mb-1.5"},"Відстань між точками:",-1)),e.createElementVNode("div",Bp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(i,c)=>(e.openBlock(),e.createElementBlock("div",{key:c,class:"flex items-center justify-between text-xs py-1 px-2 rounded bg-gray-50"},[e.createElementVNode("span",Vp,"Точка "+e.toDisplayString(i.from)+" → Точка "+e.toDisplayString(i.to),1),e.createElementVNode("span",Sp,e.toDisplayString(i.label),1)]))),128))])]))}}),Ap={class:"ruler-panel-wrap absolute bottom-12 right-4 z-[1001] animate-slide-up"},Np={class:"bg-white rounded-xl shadow-2xl border border-gray-200 overflow-hidden w-72"},Mp={class:"bg-gradient-to-r from-blue-400 to-blue-500 px-3 py-2 flex items-center justify-between"},Fp={class:"flex items-center gap-2"},Dp={class:"w-6 h-6 bg-white/20 rounded-lg flex items-center justify-center"},Tp={class:"flex border-b border-gray-200"},Lp={key:1,class:"px-3 py-2.5"},Ip={key:1,class:"text-xs text-gray-500"},Op={class:"px-2.5 py-1.5 bg-gray-50 border-t border-gray-200 space-y-1.5"},Pp={class:"flex gap-1.5"},Rp=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),i=e.ref(!1),c=e.ref("general");function d(x){c.value=x,r("tab-change",x)}e.onMounted(()=>{r("tab-change",c.value)});const g=e.computed(()=>a.value.length>=3&&!i.value);let f=1;const p=()=>a.value.map(x=>({id:x.id,coords:{...x.coords}})),m=()=>{a.value.length<3&&i.value&&(i.value=!1,r("shape-closed-change",!1)),r("points-change",p())},h=()=>{const x=f;return f+=1,x},w=x=>{a.value=[...a.value,{id:h(),coords:{lat:x.lat,lng:x.lng}}],m()},y=({id:x,coords:L})=>{const U=a.value.findIndex(N=>N.id===x);if(U===-1)return;const ne=[...a.value];ne[U]={id:x,coords:{...L}},a.value=ne,m()},C=x=>{a.value=a.value.filter(L=>L.id!==x),m()},_=()=>{a.value=[],i.value&&(i.value=!1,r("shape-closed-change",!1)),m()},B=x=>{y(x)},$=x=>{C(x)},j=()=>{s.value=!0,r("add-request")},Z=x=>{w(x),s.value=!1},I=()=>{s.value=!1},V=()=>{g.value&&(i.value=!0,r("complete"),r("shape-closed-change",!0))},S=()=>{_(),s.value=!1,r("close")};return t({addPoint:w,clearPoints:_}),(x,L)=>(e.openBlock(),e.createElementBlock("div",Ap,[e.createElementVNode("div",Np,[e.createElementVNode("div",Mp,[e.createElementVNode("div",Fp,[e.createElementVNode("div",Dp,[e.createVNode(e.unref(X.Ruler),{size:14,"stroke-width":2,class:"text-white"})]),L[2]||(L[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",Tp,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors",c.value==="general"?"text-blue-600 border-b-2 border-blue-500 bg-blue-50/50":"text-gray-500 hover:text-gray-700"]),onClick:L[0]||(L[0]=U=>d("general"))}," Загальна ",2),e.createElementVNode("button",{type:"button",class:e.normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors",c.value==="topoint"?"text-blue-600 border-b-2 border-blue-500 bg-blue-50/50":"text-gray-500 hover:text-gray-700"]),onClick:L[1]||(L[1]=U=>d("topoint"))}," До точки ",2)]),c.value==="general"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[l.value?(e.openBlock(),e.createBlock(xp,{key:1,points:a.value,"is-shape-closed":i.value,onUpdatePoint:B,onDeletePoint:$},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createBlock(Cp,{key:0}))],64)):(e.openBlock(),e.createElementBlock("div",Lp,[l.value?(e.openBlock(),e.createBlock($p,{key:0,points:a.value,"is-shape-closed":i.value},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createElementBlock("p",Ip,"Додайте точки на карті, щоб бачити відстані між ними."))])),e.createElementVNode("div",Op,[e.createElementVNode("div",Pp,[s.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(Zu,{key:0,onClick:j})),g.value?(e.openBlock(),e.createBlock(Qu,{key:1,onClick:V})):e.createCommentVNode("",!0)]),s.value?(e.openBlock(),e.createBlock(Xu,{key:0,onSubmit:Z,onCancel:I})):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createBlock(Ju,{key:1,onClick:_})):e.createCommentVNode("",!0)])])]))}}),lt="ruler-points",Ct="ruler-line",Et="ruler-polygon",Bt="ruler-segments",zp=e.defineComponent({__name:"RulerLayer",props:{map:{},points:{},isShapeClosed:{type:Boolean},labelMode:{}},setup(o){function t(h,w){const y=Z=>Z*Math.PI/180,C=y(w.lat-h.lat),_=y(w.lng-h.lng),B=y(h.lat),$=y(w.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(C/2)**2+Math.cos(B)*Math.cos($)*Math.sin(_/2)**2)))}function n(h){return $r(h)}const r=o;function a(){return{type:"FeatureCollection",features:[]}}function l(h,w,y){const C=y??"general",_=[];let B=0;_.push(0);for(let $=1;$<h.length;$++)B+=t(h[$-1].coords,h[$].coords),_.push(B);return w&&h.length>=2&&(B+=t(h[h.length-1].coords,h[0].coords)),{type:"FeatureCollection",features:h.map(($,j)=>{const Z=C==="general"?j===0?"0":n(_[j]):j===0?"0":n(t(h[j-1].coords,h[j].coords));return{type:"Feature",geometry:{type:"Point",coordinates:[$.coords.lng,$.coords.lat]},properties:{id:$.id,index:j+1,label:Z}}})}}function s(h,w){if(h.length<2)return a();const y=[];for(let C=0;C<h.length;C++){const _=C===h.length-1&&w?0:C+1;if(_>=h.length)break;const B=h[C].coords,$=h[_].coords,j=t(B,$);y.push({type:"Feature",geometry:{type:"LineString",coordinates:[[B.lng,B.lat],[$.lng,$.lat]]},properties:{distance:n(j)}})}return{type:"FeatureCollection",features:y}}function i(h,w){if(h.length<2)return a();const y=h.map(C=>[C.coords.lng,C.coords.lat]);return w&&y.push(y[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"LineString",coordinates:y},properties:{}}]}}function c(h){if(h.length<3)return a();const w=h.map(y=>[y.coords.lng,y.coords.lat]);return w.push(w[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"Polygon",coordinates:[w]},properties:{}}]}}let d=!1;function g(h){h.getSource(lt)||(h.addSource(lt,{type:"geojson",data:a()}),h.addLayer({id:`${lt}-circle`,type:"circle",source:lt,paint:{"circle-radius":5,"circle-color":"#1e293b","circle-stroke-width":2,"circle-stroke-color":"#ffffff"}}),h.addLayer({id:`${lt}-labels`,type:"symbol",source:lt,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}})),h.getSource(Bt)||(h.addSource(Bt,{type:"geojson",data:a()}),h.addLayer({id:`${Bt}-labels`,type:"symbol",source:Bt,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}})),h.getSource(Ct)||(h.addSource(Ct,{type:"geojson",data:a()}),h.addLayer({id:`${Ct}-layer`,type:"line",source:Ct,paint:{"line-color":"#3b82f6","line-width":2}})),h.getSource(Et)||(h.addSource(Et,{type:"geojson",data:a()}),h.addLayer({id:`${Et}-layer`,type:"fill",source:Et,paint:{"fill-color":"#93c5fd","fill-opacity":.25}})),d=!0}function f(h){if(h){try{h.getLayer(`${Et}-layer`)&&h.removeLayer(`${Et}-layer`),h.getSource(Et)&&h.removeSource(Et),h.getLayer(`${Ct}-layer`)&&h.removeLayer(`${Ct}-layer`),h.getSource(Ct)&&h.removeSource(Ct),h.getLayer(`${Bt}-labels`)&&h.removeLayer(`${Bt}-labels`),h.getSource(Bt)&&h.removeSource(Bt),h.getLayer(`${lt}-labels`)&&h.removeLayer(`${lt}-labels`),h.getLayer(`${lt}-circle`)&&h.removeLayer(`${lt}-circle`),h.getSource(lt)&&h.removeSource(lt)}catch{}d=!1}}function p(h){if(!h)return;const w=h.getSource(lt),y=h.getSource(Ct),C=h.getSource(Et),_=h.getSource(Bt),B=r.points,$=r.labelMode??"general";w&&w.setData(l(B,r.isShapeClosed,$)),y&&y.setData(i(B,r.isShapeClosed)),C&&C.setData(c(B)),_&&_.setData($==="topoint"?s(B,r.isShapeClosed):a())}function m(){const h=r.map;h&&(d||g(h),p(h))}return e.watch(()=>[r.points,r.isShapeClosed,r.labelMode],()=>m(),{deep:!0,immediate:!0}),e.watch(()=>r.map,()=>m(),{immediate:!0}),e.onBeforeUnmount(()=>{f(r.map)}),(h,w)=>null}});function jp(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?i():(t.value=!0,o.onActivate?.())}function i(){t.value=!1,n.value=[],r.value=!1,l.value?.clearPoints(),o.onDeactivate?.()}function c(m){n.value=m}function d(m){a.value=m}function g(m){r.value=m}function f(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:i,onRulerPointsChange:c,onRulerTabChange:d,onRulerShapeClosedChange:g,handleRulerMapClick:f}}const bo="vs-safe-raster",on=new ArrayBuffer(0);let ko=!1;function Up(o){const t=`${bo}://`;return typeof o!="string"||!o.startsWith(t)?o:o.slice(t.length)}function Hp(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 qp(o,t){try{const n=await fetch(o,{signal:t});if(!n.ok||n.status===204)return on;const r=await n.arrayBuffer();return!r.byteLength||!Hp(r)?on:r}catch{return on}}function Kp(o){ko||!o?.addProtocol||(ko=!0,o.addProtocol(bo,(t,n)=>{const r=Up(String(t?.url??""));if(!r)return n(null,{data:on}),{cancel:()=>{}};const a=new AbortController;return qp(r,a.signal).then(l=>n(null,{data:l})).catch(()=>n(null,{data:on})),{cancel:()=>a.abort()}}))}function Wp(o){const t=typeof o=="string"?o.trim():"";if(!t)return t;const n=`${bo}://`;return t.startsWith(n)?t:`${n}${t}`}function Gp(o,t){const n=typeof o=="string"?o.trim():"";return n?t&&ko?[Wp(n)]:[n]:[]}function wo(o,t,n){const r={type:"raster",tiles:Gp(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 Yp(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 Xp={class:"vs-map-body"},Zp={key:0,class:"absolute top-2 left-2 z-[1000] w-[calc(100%-16px)] sm:w-[320px]"},Jp={key:1,class:"form-geom__panel flex items-center gap-1 mt-1"},Qp={class:"flex items-center gap-1"},em=["disabled"],tm={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"},nm=["disabled"],om=["disabled"],rm={class:"mt-4 flex justify-end gap-2"},lm=["disabled"],am={class:"vs-map-controls vs-map-controls--tr"},sm={class:"vs-map-toolbar"},im=["disabled"],cm=["disabled"],dm=["disabled"],um=["disabled"],pm={key:1,class:"vs-map-toolbar__divider"},mm=["title"],fm={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"},hm={class:"space-y-0.5"},gm={class:"text-gray-500"},ym={class:"text-gray-900 text-right break-all"},bm={class:"absolute left-2 bottom-2 z-[1000]"},km={key:0,class:"vs-map-status"},wm={class:"form-geom__feature vs-map-status__inner"},xm={class:"vs-map-status__type"},vm={class:"vs-map-status__values"},_m=["onClick","disabled"],Cm={key:1,class:"vs-map-status__chip"},Em={key:2,class:"vs-map-status__sep"},Bm={key:1,class:"vs-map-status__chip"},Vm={class:"vs-map-status__meta"},Sm={class:"vs-map-status__coords"},$m={key:0,class:"vs-map-status__value"},Am={key:1,class:"vs-map-status__value"},Nm={key:0,class:"vs-map-status__area"},Mm={class:"vs-map-status__value"},Fm={class:"vs-map-status__actions"},Dm=["disabled"],Tm=["disabled"],Lm=11,Im=15,Om=.7,Pm="vs-tile-ov-src-",Rm="vs-tile-ov-raster-",On="__vs_form_maplibre_loader__",zm="https://demotiles.maplibre.org/font/{fontstack}/{range}.pbf",Pn="vs-global-bounds-src",Kt="vs-global-bounds-line",Ar="rasterLayer",Nr=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=typeof document<"u"&&document.querySelector("#modal")?"#modal":"body",s=e.computed(()=>{const u=a?.multiple,b=a?.multi,k=E=>E===""||E===!0||E==="true"||E===1||E==="1";return!!n.multi||!!n.multiple||k(b)||k(u)}),i=e.computed(()=>!!n.disabled),c=e.ref(!1),d=e.ref(null),g=e.ref(0),f=e.ref(""),p=e.ref(null),m=e.ref([]),h=e.ref(null),w=e.ref(null),y=jp({onActivate(){if(ue)try{ue.changeMode("simple_select",{featureIds:[]})}catch{}f.value=""},onDeactivate(){}});function C(){y.toggleRuler()}const _=e.getCurrentInstance(),B=_?.appContext?.config?.globalProperties?.$settings??{},$=B?.map??{},j=e.computed(()=>{const u=$.layerPresets;return Array.isArray(u)?u:[]}),Z=_?.vnode?.props??{};function I(u){return Object.prototype.hasOwnProperty.call(Z,u)||Object.prototype.hasOwnProperty.call(Z,u.replace(/[A-Z]/g,b=>`-${b.toLowerCase()}`))}const V=Array.isArray($.center)&&$.center.length===2?$.center:Array.isArray(B.center)&&B.center.length===2?B.center:[30,50],S=typeof $.zoom=="number"?$.zoom:typeof B.zoom=="number"?B.zoom:typeof B.defaultZoom=="number"?B.defaultZoom:10;function x(u){if(u!=null){if(Array.isArray(u)&&u.length>=2){const b=Number(u[0]),k=Number(u[1]);return!Number.isFinite(b)||!Number.isFinite(k)?void 0:[b,k]}if(typeof u=="object"){const b=u,k=b.geom;if(b.type==="Point"&&Array.isArray(b.coordinates)){const G=b.coordinates,ce=Number(G[0]),me=Number(G[1]);if(Number.isFinite(ce)&&Number.isFinite(me))return[ce,me]}if(k?.type==="Point"&&Array.isArray(k.coordinates)){const G=k.coordinates,ce=Number(G[0]),me=Number(G[1]);if(Number.isFinite(ce)&&Number.isFinite(me))return[ce,me]}const E=Number(b.lat),D=Number(b.lng??b.lon);if(Number.isFinite(E)&&Number.isFinite(D))return[D,E]}}}const L=e.computed(()=>{const u=x(n.center);if(u)return u;if(!I("center"))return x($.center)??x(B.center)}),U=e.computed(()=>I("zoom")?n.zoom:$.zoom??n.zoom),ne=e.computed(()=>I("katottg")?String(n.katottg??""):String($.katottg??n.katottg??"")),N=e.computed(()=>I("layers")?n.layers??[]:$.layers??n.layers??[]),P=e.computed(()=>I("bounds")?n.bounds:$.bounds??n.bounds),q=e.ref(Array.isArray(L.value)&&L.value.length===2?[...L.value]:V),K=e.ref(typeof U.value=="number"?U.value:S),O=e.ref(null);let Q=null;function re(u){const b=typeof u=="number"&&Number.isFinite(u)?u:K.value;return Math.min(Im,Math.max(Lm,Math.round(b)))}function T(u,b,k){if(!Number.isFinite(u)||!Number.isFinite(b))return;const E=ou(u,b,re(k)),D=O.value;D&&D.z===E.z&&D.x===E.x&&D.y===E.y||(O.value=E)}function F(){if(R){const u=R.getCenter?.(),b=R.getZoom?.();if(u&&Number.isFinite(b)){T(u.lng,u.lat,b);return}}Array.isArray(q.value)&&q.value.length===2&&T(q.value[0],q.value[1])}function A(){Q&&clearTimeout(Q),Q=setTimeout(()=>{Q=null,F()},120)}T(q.value[0],q.value[1]);const J=e.ref(n.modelValue),se=e.ref(null),ee=e.ref(null),he=e.ref([]),xe=e.ref(!1),ye=e.ref(!1),$e=e.ref([]),Le=e.ref({coordinates:"",format:"decimal",order:"lat-lon"}),Oe={coordinates:{type:"Textarea",label:"Координати вершин полігону (3-100 точок)",placeholder:`50.4501, 30.5234
1
+ (function(ve,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):(ve=typeof globalThis<"u"?globalThis:ve||self,e(ve.FormBuilder={},ve.Vue,ve.OpenGISCore,ve.lucide))})(this,(function(ve,e,ke,X){"use strict";function kn(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 qo(o,t,n){return!!kn(o,t,n)}const Ko=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 i=s.currentTarget.getBoundingClientRect();r.value={top:`${i.bottom+4}px`,left:`${Math.min(i.left,window.innerWidth-230)}px`},n.value=!0}function l(){n.value=!1}return(s,i)=>(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))}}),no={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"}}},oo={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:"Скасувати"}}},zl={class:"w-full relative"},jl={key:0,class:"text-[14px] font-medium text-gray-900 mb-2 flex items-center gap-1"},Ul={class:"opacity-100"},Hl={key:0,class:"text-red-500 text-[14px]"},ql={key:2,class:"text-[11px] text-slate-500 font-normal"},Kl={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Wl=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"),i={en:no?.form?.autofillFrom,uk:oo?.form?.autofillFrom},c=e.computed(()=>{const d=t.item?.__autoMeta;if(!d||d?.source!=="parent-auto"||!d?.parentField)return"";const g=String(t.item?.__locale||"uk"),f=String(d.parentField),p=s?.value?.[f],m=p?.[`label:${g}`]||(g!=="uk"?p?.[g]:void 0)||p?.label||p?.ua||p?.en||f;return`${i[g]||i.uk}: ${m}`});return(d,g)=>(e.openBlock(),e.createElementBlock("div",zl,[r.value?(e.openBlock(),e.createElementBlock("div",jl,[e.createElementVNode("span",Ul,e.toDisplayString(n.value),1),a.value?(e.openBlock(),e.createElementBlock("span",Hl,"*")):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createBlock(Ko,{key:1,text:l.value},null,8,["text"])):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("span",ql," ("+e.toDisplayString(c.value)+") ",1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(d.$slots,"default",e.mergeProps(d.$attrs,{class:{"opacity-60":d.item.disabled}})),d.error?(e.openBlock(),e.createElementBlock("span",Kl,e.toDisplayString(d.error),1)):e.createCommentVNode("",!0)]))}}),Gl={class:"w-full relative flex flex-row items-center gap-2"},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-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:no?.form?.autofillFrom,uk:oo?.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"),h=String(p.parentField),w=a?.value?.[h],y=w?.[`label:${m}`]||(m!=="uk"?w?.[m]:void 0)||w?.label||w?.ua||w?.en||h;return`${l[m]||l.uk}: ${y}`}),i=e.computed(()=>t.columns??{container:12,label:3}),c=e.computed(()=>{const{container:p,label:m}=i.value;return!p||p<=0?0:Math.min(Math.max(m??0,0),p)/p}),d=e.computed(()=>t.item?.type==="html"||c.value<=0?!1:!!n.value),g=e.computed(()=>{if(!d.value)return{};const p=`${c.value*100}%`;return{flexBasis:p,maxWidth:p}}),f=e.computed(()=>{const{container:p,label:m}=i.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 h=Math.max(p-Math.max(m??0,0),0)/p;if(!h)return{};const w=`${h*100}%`;return{flexBasis:w,maxWidth:w}});return(p,m)=>(e.openBlock(),e.createElementBlock("div",Gl,[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(g.value)},[e.createTextVNode(e.toDisplayString(n.value)+" ",1),p.item?.rules?.includes("required")&&n.value?(e.openBlock(),e.createElementBlock("span",Yl,"*")):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createBlock(Ko,{key:1,text:r.value},null,8,["text"])):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock("span",Xl," ("+e.toDisplayString(s.value)+") ",1)):e.createCommentVNode("",!0)],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"flex-1 min-w-0",style:e.normalizeStyle(f.value)},[e.renderSlot(p.$slots,"default",e.normalizeProps(e.guardReactiveProps(p.$attrs)))],4),p.error?(e.openBlock(),e.createElementBlock("span",Zl,e.toDisplayString(p.error),1)):e.createCommentVNode("",!0)]))}}),Ql={class:"w-full relative"},ea={key:0,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},ta=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",Ql,[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(t.$attrs))),t.error?(e.openBlock(),e.createElementBlock("span",ea,e.toDisplayString(t.error),1)):e.createCommentVNode("",!0)]))}}),na={class:"flex-1 min-w-0"},oa={key:0,class:"text-sm font-medium text-slate-700 dark:text-slate-200 flex items-center gap-1"},ra={class:"truncate"},la={key:0,class:"text-red-500 text-[14px]"},aa=["innerHTML"],sa={key:0,class:"mt-1 text-xs text-red-500"},ia={default:Wl,horizontal:Jl,inline:ta,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 i=typeof localStorage<"u"?localStorage.getItem("locale"):null;n.value=i||"uk"};return e.onMounted(()=>{try{typeof localStorage<"u"&&localStorage.locale&&(n.value=localStorage.locale)}catch{}window.addEventListener("storage",s)}),e.onUnmounted(()=>{window.removeEventListener("storage",s)}),(i,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["w-full relative",{"opacity-60":i.item?.disabled}])},[e.createElementVNode("div",{class:e.normalizeClass(["gap-2 md:flex-row md:items-center md:justify-between",[["switcher","native-select"].includes(i.item.type)?"flex flex-col":""]])},[e.createElementVNode("div",na,[i.ua||i.label?(e.openBlock(),e.createElementBlock("p",oa,[e.createElementVNode("span",ra,e.toDisplayString(i.item[n.value]||i.ua||i.label),1),a.value?(e.openBlock(),e.createElementBlock("span",la,"*")):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,aa)):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:e.normalizeClass(["w-full",["select","native-select"].includes(i.item.type)?"md:w-[30%]":"md:w-auto"])},[e.renderSlot(i.$slots,"default",e.normalizeProps(e.guardReactiveProps(i.$attrs)))],2)],2),l.value?(e.openBlock(),e.createElementBlock("p",sa,e.toDisplayString(l.value),1)):e.createCommentVNode("",!0)],2))}})};function Qe(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 ca=["placeholder","disabled"],da=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}=Qe(t.style),r=e.useModel(o,"modelValue"),a=e.computed(()=>!!t.disabled),l=e.computed(()=>t.placeholder??"");return(s,i)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"password","onUpdate:modelValue":i[0]||(i[0]=c=>r.value=c),placeholder: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,ca)),[[e.vModelText,r.value]])}}),ua=["placeholder","disabled","maxlength","minlength"],Ht=e.defineComponent({__name:"vs-input-text",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=Qe(t.style),r=e.useModel(o,"modelValue"),a=e.computed(()=>!!t.disabled),l=e.computed(()=>t.placeholder??""),s=e.computed(()=>t.maxlength??void 0),i=e.computed(()=>t.minlength??void 0);function c(){typeof r.value=="string"&&(r.value=r.value.trim())}return(d,g)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"text","onUpdate:modelValue":g[0]||(g[0]=f=>r.value=f),placeholder:l.value,disabled:a.value,maxlength:s.value,minlength:i.value,onBlur:c,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[d.customClass,e.unref(n),{"!border-red-600":d.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,ua)),[[e.vModelText,r.value]])}}),pa=["step","placeholder","disabled","min","max"],Wo=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}=Qe(t.style),r=e.useAttrs(),a=e.useModel(o,"modelValue"),l=e.computed(()=>!!t.disabled),s=g=>{if(g==null||g==="")return;const f=typeof g=="string"?g.trim().replace(",","."):g,p=Number(f);return Number.isFinite(p)?p:void 0},i=e.computed(()=>s(t.min??r.min)),c=e.computed(()=>s(t.max??r.max)),d=e.computed(()=>{if(t.step!==void 0&&t.step!==null&&t.step!=="")return t.step;const g=r.step;return typeof g=="number"||typeof g=="string"?g:"any"});return(g,f)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"number",step:d.value,"onUpdate:modelValue":f[0]||(f[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:i.value,max:c.value},null,10,pa)),[[e.vModelText,a.value]])}}),wn=o=>!!String(o??"").trim(),Nt=o=>o?.color?String(o.color):"",Zt=o=>{const t=o?.icon;if(typeof t=="string")return t;const n=o?.imgUrl;return typeof n=="string"?n:""},Jt=o=>{const t=o?.icon;return t&&typeof t!="string"?t:null},ma={class:"flex items-center gap-[4px]"},fa=["value","id","disabled"],ha=["for"],ga=["innerHTML"],ya={key:1,class:"text-[14px] text-gray-700 flex items-center gap-2 dark:text-neutral-400"},ba=["src"],ka=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(()=>Zt(r.option)),i=e.computed(()=>Jt(r.option)),c=e.computed(()=>Nt(r.option)),d=e.computed(()=>!!(c.value&&!s.value&&!i.value)),g=e.computed(()=>!!(s.value&&c.value)),f=e.computed(()=>c.value?{color:c.value}:void 0),p=e.computed(()=>{if(!(!s.value||!c.value))return{backgroundColor:c.value,WebkitMaskImage:`url(${s.value})`,maskImage:`url(${s.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(m,h)=>(e.openBlock(),e.createElementBlock("div",ma,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",value:m.value,"onUpdate:modelValue":h[0]||(h[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,fa),[[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,ga)):(e.openBlock(),e.createElementBlock("span",ya,[d.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:c.value})},null,4)):e.createCommentVNode("",!0),g.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,ba)):i.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(f.value)},null,8,["style"])):e.createCommentVNode("",!0),e.renderSlot(m.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(m.label),1)])]))],10,ha)]))}}),wa=["name","value","disabled"],xa=["innerHTML"],va={key:1,class:"flex items-center gap-[6px] text-[14px]"},_a={key:2,class:"text-[16px] inline-flex items-center justify-center"},Ca=["src"],Ea=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"),i=e.computed(()=>({...n.option??{},icon:n.option?.icon??n.icon,imgUrl:n.option?.imgUrl??n.imgUrl,color:n.option?.color})),c=e.computed(()=>Zt(i.value)),d=e.computed(()=>Jt(i.value)),g=e.computed(()=>Nt(i.value)),f=e.computed(()=>!!(g.value&&!c.value&&!d.value)),p=e.computed(()=>!!(c.value&&g.value)),m=e.computed(()=>g.value?{color:g.value}:void 0),h=e.computed(()=>{if(!(!c.value||!g.value))return{backgroundColor:g.value,WebkitMaskImage:`url(${c.value})`,maskImage:`url(${c.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(w,y)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["group relative flex justify-center items-center gap-x-3 text-center bg-white text-gray-800 ring-ring ring-2 cursor-pointer rounded-lg",[s.value,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":y[0]||(y[0]=C=>a.value=C),disabled:w.disabled},null,8,wa),[[e.vModelCheckbox,a.value]]),w.html?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-full",innerHTML:w.html},null,8,xa)):(e.openBlock(),e.createElementBlock("span",va,[f.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:g.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(h.value)},null,4)):c.value||d.value?(e.openBlock(),e.createElementBlock("span",_a,[c.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:c.value,width:"16",height:"16",alt:"icon"},null,8,Ca)):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))}}),Ba={class:"flex items-center"},ro=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:i=>{if(Array.isArray(n.modelValue)){let c=[...n.modelValue];i?c.includes(n.value)||c.push(n.value):c=c.filter(d=>d!==n.value),r("update:modelValue",c)}else r("update:modelValue",i)}}),s=e.ref(`vs-checkbox-${n.view||"default"}`);return(i,c)=>(e.openBlock(),e.createElementBlock("div",Ba,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value==="vs-checkbox-buttons"?e.unref(Ea):e.unref(ka)),{value:i.value,label:i.label,html:i.labelHtml,info:i.option?.info,disabled:i.disabled,modelValue:l.value,"onUpdate:modelValue":c[0]||(c[0]=d=>l.value=d),id:a,icon:i.icon,imgUrl:i.imgUrl,option:i.option,style:e.normalizeStyle(i.style),error:i.error},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.label),1)]),_:1},8,["value","label","html","info","disabled","modelValue","icon","imgUrl","option","style","error"]))]))}}),Va={key:0,class:"flex items-start gap-x-1"},Sa={key:0,class:"text-red-500 text-[14px]"},$a=["title"],Aa=["disabled"],lo=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",Va,[e.createVNode(ro,{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",Sa,"*")):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,$a)):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,Aa))}}),Na=["id","innerHTML"],ao=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,Na))}}),Ma=["placeholder","disabled","name"],xn=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}=Qe(t.style),r=e.useModel(o,"modelValue"),a=e.ref(null);let l=null;function s(i){const c=i==null?"":String(i),d={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},g=new Set;let f=!1;for(let m=0;m<c.length;m+=1){const h=c[m];h==="{"?f=!0:h==="}"?f=!1:f&&g.add(h)}const p={};return Object.keys(d).forEach(m=>{g.has(m)||(p[m]=d[m])}),{mask:c,definitions:p,lazy:!1}}return e.onMounted(async()=>{if(a.value){const{default:i}=await Promise.resolve().then(()=>Gn),c=s(t.mask||"");l=i(a.value,c),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,i=>{if(l){const c=s(i||"");l.updateOptions(c)}}),e.watch(r,i=>{l&&l.unmaskedValue!==i&&(l.value=i!=null?String(i):"")}),(i,c)=>(e.openBlock(),e.createElementBlock("input",{type:"text",ref_key:"inputEl",ref:a,placeholder:i.placeholder,disabled:i.disabled,name:i.name,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"}},null,10,Ma))}}),Fa={class:"relative w-full bg-white rounded-lg"},Da={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},Ta=["placeholder","disabled"],so=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}=Qe(t.style),r=e.useModel(o,"modelValue");return(a,l)=>(e.openBlock(),e.createElementBlock("div",Fa,[e.createElementVNode("div",Da,[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,Ta),[[e.vModelText,r.value]])]))}}),_t="+99(999)-999-99-99";function Mt(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 La={class:"relative w-full bg-white rounded-lg"},Ia={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] pointer-events-none"},Oa=["name","placeholder","disabled","pattern"],io=e.defineComponent({__name:"vs-input-tel",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{},mask:{default:_t}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.computed(()=>`^\\+[1-9]\\d{${(Mt(t.mask||_t)||Mt(_t))-1}}$`),{inputClass:r}=Qe(t.style),a=e.useModel(o,"modelValue"),l=e.ref(null);let s=null;function i(g){const f={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},p=new Set;let m=!1;for(let w=0;w<g.length;w+=1){const y=g[w];y==="{"?m=!0:y==="}"?m=!1:m&&p.add(y)}const h={};return Object.keys(f).forEach(w=>{p.has(w)||(h[w]=f[w])}),{mask:g,definitions:h,lazy:!1,disabled:t.disabled}}function c(g){if(g==null||g==="")return"";const f=String(g).trim();return f?f.replace(/\D/g,""):""}function d(){if(!s)return;const g=s.unmaskedValue??"";a.value=g?`+${g}`:""}return e.onMounted(async()=>{if(!l.value)return;const{default:g}=await Promise.resolve().then(()=>Gn),f=i(t.mask||"");s=g(l.value,f),s.on("accept",d),s.on("complete",d);const p=c(a.value);s.unmaskedValue=p}),e.onBeforeUnmount(()=>{s?.destroy(),s=null}),e.watch(()=>t.mask,g=>{s&&s.updateOptions(i(g||""))}),e.watch(()=>t.disabled,g=>{s&&s.updateOptions({disabled:g})}),e.watch(a,g=>{if(!s)return;const f=c(g);s.unmaskedValue!==f&&(s.unmaskedValue=f)}),(g,f)=>(e.openBlock(),e.createElementBlock("div",La,[e.createElementVNode("div",Ia,[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:g.name,placeholder:g.placeholder,disabled:g.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":g.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Oa)]))}}),Pa=["value","disabled"],Ra=["innerHTML"],za={key:1,class:"flex items-center gap-2"},ja=["src"],Ua={class:"text-[13px] text-gray-700"},Ha=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(()=>Zt(t.option)),l=e.computed(()=>Jt(t.option)),s=e.computed(()=>Nt(t.option)),i=e.computed(()=>!!(s.value&&!a.value&&!l.value)),c=e.computed(()=>!!(a.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),g=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(f,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,Pa),[[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,Ra)):(e.openBlock(),e.createElementBlock("div",za,[i.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:s.value})},null,4)):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(g.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,ja)):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",Ua,e.toDisplayString(t.text),1)]))],2))}}),qa=["value","disabled"],Ka=["innerHTML"],Wa={key:1,class:"flex items-center gap-2"},Ga=["src"],Ya={class:"text-[13px] text-gray-700"},Xa={"vs-input-radio-default":Ha,"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(()=>Zt(t.option)),l=e.computed(()=>Jt(t.option)),s=e.computed(()=>Nt(t.option)),i=e.computed(()=>!!(s.value&&!a.value&&!l.value)),c=e.computed(()=>!!(a.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),g=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(f,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,qa),[[e.vModelRadio,n.value]]),t.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:t.html},null,8,Ka)):(e.openBlock(),e.createElementBlock("div",Wa,[i.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:s.value})},null,4)):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(g.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,Ga)):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",Ya,e.toDisplayString(t.text),1)]))],2))}})},Go=o=>Array.isArray(o)?o:Array.isArray(o?.data)?o.data:[],Yo=o=>{const t=o.host??"",n=o.prefix??"api",r=o.api??`/${n}/suggest/${o.data}`;return`${t}${r}`},Za=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 i=await(await fetch(`${Yo(a)}?${l.toString()}`)).json();return Go(i)}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 i=await(await fetch(`${Yo(a)}?${l.toString()}`)).json();return Go(i)[0]??null}catch{return null}}}),vn=({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}=Za(()=>({data:o.data,options:o.options,api:o.api,prefix:o.prefix,host:o.host,start:o.start,parentValue:a.value})),i=async(c="")=>{const d=o.data?await l(c):o.options?[...o.options]:[];return r.value=d,r.value};return e.watch(()=>o.options,()=>{o.data||(r.value=o.options?[...o.options]:[])},{immediate:!0,deep:!0}),n&&e.watch(a,async()=>{o.data&&(r.value=await l())},{immediate:!1}),{optionsList:r,parentValue:a,fetchOptions:l,fetchOptionByValue:s,loadOptions:i}},Ja=/\{\{\s*([^}]+?)\s*\}\}/g,Qa=o=>(o?String(o):"").replace(/<[^>]*>/g,"").trim(),es=(o,t)=>t.split(".").reduce((n,r)=>n==null?n:n[r.trim()],o),_n=(o,t)=>{if(!o)return"";const n=(t??"").trim();return n?n.replace(Ja,(r,a)=>{const l=String(a).trim(),s=o,c=(l.includes(".")?es(s,l):void 0)??s[l];return c!=null?String(c):""}):o.text??""},Cn=(o,t)=>{if(!o)return"";const n=_n(o,t);return Qa(n)||o.text||""},co=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(()=>Xa[`vs-input-radio-${t.view}`]),a=e.computed(()=>t.slot??t?.optionTemplate??""),l=e.computed(()=>wn(a.value)),s=m=>_n(m,a.value),i=m=>Cn(m,a.value),c=e.computed(()=>t.position==="horizontal"?"flex w-full flex-row flex-wrap gap-[10px]":"flex w-full flex-col gap-2"),d=e.computed(()=>{if(t.position==="horizontal"&&t.customClass?.includes("50%"))return{flex:"0 0 calc(50% - 5px)"}}),g=e.inject("values",null),{optionsList:f,loadOptions:p}=vn({props:t,formValues:g});return e.onMounted(async()=>{await p()}),(m,h)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(c.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(f),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:i(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":h[0]||(h[0]=y=>n.value=y)},{ref_for:!0},m.$attrs),null,16,["text","html","option","value","checked","custom-class","modelValue"]))],6))),128))],2))}}),ts={key:1,class:"w-full flex flex-col gap-4"},ns={key:0,class:"text-sm font-medium text-muted-foreground my-2"},os="Без категорії",rs=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:i}=vn({props:{...n,options:n.options},formValues:l}),c=e.computed(()=>s.value),d=_=>_?.value||_?.id||_?.text||_,g=e.computed(()=>n.slot??n?.optionTemplate??""),f=e.computed(()=>wn(g.value)),p=_=>_n(_,g.value),m=_=>Cn(_,g.value),h=_=>`lg:col-span-${_||12}`,w=e.computed(()=>[n.position==="vertical"?"flex flex-col":"",n.colSpan?"grid":"flex justify-start"]),y=_=>_==null||_===""?null:typeof _=="string"||typeof _=="number"?_:String(_),C=e.computed(()=>{if(!n.group)return[];const _=new Map;c.value.forEach(I=>{const V=I[n.group],S=y(V);_.has(S)||_.set(S,[]),_.get(S)?.push(I)});const B=[];n.values?.length&&n.values.forEach(I=>{const V=y(I);B.push(V)});const $=new Set,j=I=>{const V=_.get(I)||[];if(!V.length)return null;const S=I===null?"group-null":`group-${String(I)}`,x=I===null?os:String(I);return $.add(I),{key:S,label:x,options:V}},Z=[];return B.forEach(I=>{const V=j(I);V&&Z.push(V)}),_.forEach((I,V)=>{if($.has(V))return;const S=j(V);S&&Z.push(S)}),Z});return e.watch(()=>n.modelValue,_=>{if(typeof _=="boolean"&&c.value.length===1){const B=d(c.value[0]);a[B]=_}else if(Array.isArray(_)){const B=new Set(_);c.value.forEach($=>{if(!$.disabled){const j=d($);a[j]=B.has(j)}})}},{immediate:!0}),e.watch(a,()=>{if(!c.value.length){r("update:modelValue",null);return}const _=Object.entries(a).filter(([,B])=>B).map(([B])=>B);r("update:modelValue",_.length===0?[]:_)},{deep:!0}),e.onMounted(async()=>{if(await i(),typeof n.modelValue=="boolean"&&c.value.length===1){const _=d(c.value[0]);a[_]=n.modelValue}else if(Array.isArray(n.modelValue)){const _=new Set(n.modelValue);c.value.forEach(B=>{if(!B.disabled){const $=d(B);a[$]=_.has($)}})}}),(_,B)=>n.group?(e.openBlock(),e.createElementBlock("div",ts,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.value,$=>(e.openBlock(),e.createElementBlock("div",{key:$.key,class:"flex flex-col gap-2"},[$.label?(e.openBlock(),e.createElementBlock("span",ns,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,j=>(e.openBlock(),e.createBlock(ro,{modelValue:a[d(j)],"onUpdate:modelValue":Z=>a[d(j)]=Z,value:d(j),class:e.normalizeClass(h(_.colSpan)),disabled:n.disabled||j.disabled,label:m(j),labelHtml:f.value?p(j):"",key:`${$.key}-${d(j)}`,icon:j?.icon,imgUrl:j?.imgUrl,option:j,view:_.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(c.value,$=>(e.openBlock(),e.createBlock(ro,{modelValue:a[d($)],"onUpdate:modelValue":j=>a[d($)]=j,value:d($),class:e.normalizeClass(h(_.colSpan)),disabled:n.disabled||$.disabled,label:m($),labelHtml:f.value?p($):"",key:d($),icon:$?.icon,imgUrl:$?.imgUrl,option:$,view:_.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},Xo=Be(rs,[["__scopeId","data-v-9056e0ec"]]),ls=1440*60*1e3,as=["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"],ss=["січ","лют","бер","квіт","трав","черв","лип","серп","вер","жовт","лист","груд"],is=["нд","пн","вт","ср","чт","пт","сб"];function We(o){return o instanceof Date&&!Number.isNaN(o.getTime())}const qt=o=>new Date(o.getTime());function Pt(o){const t=qt(o);return t.setHours(0,0,0,0),t}function Qt(o){const t=qt(o);return t.setHours(23,59,59,999),t}function uo(o){return Pt(new Date(o.getFullYear(),o.getMonth(),1))}function po(o){return Qt(new Date(o.getFullYear(),o.getMonth()+1,0))}function mo(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 cs(o,t){return mo(o,-1)}function En(o,t){const n=new Date(o);return n.setFullYear(n.getFullYear()+t),n}function Zo(o,t){return En(o,-t)}function Jo(o){return Pt(new Date(o.getFullYear(),0,1))}function Qo(o){return Qt(new Date(o.getFullYear(),11,31))}function ds(o){const t=Math.floor(o.getFullYear()/10)*10;return Pt(new Date(t,0,1))}function us(o){const t=Math.floor(o.getFullYear()/10)*10+9;return Qt(new Date(t,11,31))}const mt=o=>o.getFullYear(),Bn=o=>Math.floor(o.getFullYear()/10)*10;function ps(o){const t=[];let n=Pt(o.start);const r=Pt(o.end);for(;n<=r;)t.push(qt(n)),n=new Date(n.getTime()+ls);return t}function ms(o){const t=[];let n=uo(o.start);const r=po(o.end);for(;n<=r;)t.push(qt(n)),n=mo(n,1);return t}function fs(o){const t=[];let n=Jo(o.start);const r=Qo(o.end);for(;n<=r;)t.push(qt(n)),n=En(n,1);return t}function fo(o,t=1){const n=Pt(o),r=(n.getDay()-t+7)%7;return n.setDate(n.getDate()-r),n}function hs(o,t=1){const n=fo(o,t);return n.setDate(n.getDate()+6),Qt(n)}function gs(o,t,n=0){const r=fo(o,n),a=(t-n+7)%7;return r.setDate(r.getDate()+a),r}const Vn=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear()&&o.getMonth()===t.getMonth()&&o.getDate()===t.getDate(),ho=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear()&&o.getMonth()===t.getMonth(),er=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear(),tr=(o,t)=>!!o&&!!t&&Vn(o,t)&&o.getHours()===t.getHours(),ys=(o,t)=>!!o&&!!t&&tr(o,t)&&o.getMinutes()===t.getMinutes();function bs(o,t){const n=o.getTime();return n>=t.start.getTime()&&n<=t.end.getTime()}const en=(o,t)=>!!o&&!!t&&o.getTime()<t.getTime(),tn=(o,t)=>!!o&&!!t&&o.getTime()>t.getTime();function ks(o){const t=o.filter(n=>We(n));if(t.length)return t.reduce((n,r)=>n.getTime()>=r.getTime()?n:r)}function ws(o){const t=o.filter(n=>We(n));if(t.length)return t.reduce((n,r)=>n.getTime()<=r.getTime()?n:r)}function xs(o,t){const n=qt(o);return typeof t.year=="number"&&n.setFullYear(t.year),typeof t.month=="number"&&n.setMonth(t.month),typeof t.date=="number"&&n.setDate(t.date),typeof t.hours=="number"&&n.setHours(t.hours),typeof t.minutes=="number"&&n.setMinutes(t.minutes),typeof t.seconds=="number"&&n.setSeconds(t.seconds),typeof t.milliseconds=="number"&&n.setMilliseconds(t.milliseconds),n}const Sn=(o,t=2)=>String(o).padStart(t,"0");function nr(o,t){return t==="wide"?as[o]:ss[o]}function vs(o){return is[o]}const _s=[{token:"LLLL",format:o=>nr(o.getMonth(),"wide")},{token:"LLL",format:o=>nr(o.getMonth(),"abbreviated")},{token:"EE",format:o=>vs(o.getDay())},{token:"yyyy",format:o=>String(o.getFullYear())},{token:"MM",format:o=>Sn(o.getMonth()+1)},{token:"dd",format:o=>Sn(o.getDate())},{token:"HH",format:o=>Sn(o.getHours())},{token:"mm",format:o=>Sn(o.getMinutes())}];function nn(o,t){if(!We(o))return"";let n="",r=0;for(;r<t.length;){const a=_s.find(l=>t.startsWith(l.token,r));a?(n+=a.format(o),r+=a.token.length):(n+=t[r],r+=1)}return n}const Cs={"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 or(o,t){const n=Cs[t];if(!n){const a=new Date(o);return We(a)?a:null}const r=o.match(n);if(!r)return null;switch(t){case"yyyy-MM-dd":{const[,a,l,s]=r,i=new Date(Number(a),Number(l)-1,Number(s));return We(i)?i:null}case"dd.MM.yyyy":{const[,a,l,s]=r,i=new Date(Number(s),Number(l)-1,Number(a));return We(i)?i:null}case"dd.MM.yyyy HH:mm":{const[,a,l,s,i,c,d]=r,g=new Date(Number(s),Number(l)-1,Number(a),Number(i),Number(c),Number(d||0));return We(g)?g:null}case"HH:mm":{const[,a,l,s]=r,i=new Date;return i.setHours(Number(a),Number(l),Number(s||0),0),i}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 Es=["year","month","day","time","custom"],Bs=e.defineComponent({components:{ChevronLeft:X.ChevronLeft,ChevronRight:X.ChevronRight},emits:{elementClick:o=>We(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"&&Es.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}}}),Vs={key:0,class:"p-datepicker-header flex items-center justify-between mb-1.5"},Ss=["disabled"],$s=["disabled"],As={key:0,class:"p-datepicker-weekheader grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-400 font-medium mb-1.5"},Ns=["disabled","onClick"],Ms={key:1,class:"p-datepicker-buttonbar mt-2 pt-2 border-t border-slate-200 flex items-center justify-between"};function Fs(o,t,n,r,a,l){const s=e.resolveComponent("ChevronLeft"),i=e.resolveComponent("ChevronRight");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["p-datepicker-panel p-component text-center text-slate-700 overflow-x-hidden bg-white border border-slate-200 rounded-xl shadow-[0_4px_12px_rgba(0,0,0,0.1)] p-2",o.viewMode==="month"||o.viewMode==="year"?"w-[182px] min-w-[182px]":"w-[268px] min-w-[182px]"]),style:e.normalizeStyle({"--popout-column-definition":`repeat(${o.columnCount}, 1fr)`}),onMousedown:t[5]||(t[5]=e.withModifiers(()=>{},["prevent"]))},[o.hideHeader?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Vs,[e.createElementVNode("button",{class:"p-datepicker-prev-button inline-flex items-center justify-center size-8 rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300 disabled:hover:bg-transparent",disabled:o.leftDisabled,onClick:t[0]||(t[0]=e.withModifiers(c=>o.$emit("left"),["stop","prevent"]))},[e.renderSlot(o.$slots,"arrow-left",{},()=>[e.createVNode(s,{class:"h-3.5 w-3.5"})])],8,Ss),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.headingClickable?"button":"span"),{class:e.normalizeClass(["p-datepicker-title min-w-0 rounded-md px-2 py-1 text-sm font-semibold leading-snug text-slate-700",o.headingClickable?"hover:bg-slate-100":"",o.viewMode==="month"?"p-datepicker-select-year":"",o.viewMode==="year"?"p-datepicker-decade whitespace-nowrap text-xs px-1":""]),onClick:t[1]||(t[1]=e.withModifiers(c=>o.$emit("heading"),["stop","prevent"]))},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"heading")]),_:3},8,["class"])),e.createElementVNode("button",{class:"p-datepicker-next-button inline-flex items-center justify-center size-8 rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300 disabled:hover:bg-transparent",disabled:o.rightDisabled,onClick:t[2]||(t[2]=e.withModifiers(c=>o.$emit("right"),["stop","prevent"]))},[e.renderSlot(o.$slots,"arrow-right",{},()=>[e.createVNode(i,{class:"h-3.5 w-3.5"})])],8,$s)])),e.createElementVNode("div",null,["subheading"in o.$slots?(e.openBlock(),e.createElementBlock("div",As,[e.renderSlot(o.$slots,"subheading")])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-datepicker-calendar grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-700",o.viewMode==="month"?"p-datepicker-month-view":"",o.viewMode==="year"?"p-datepicker-year-view":"",o.viewMode==="month"?"gap-y-1":""])},[e.renderSlot(o.$slots,"body",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.items,c=>(e.openBlock(),e.createElementBlock("button",{key:c.key,disabled:c.disabled,class:e.normalizeClass(["p-[2px] disabled:text-slate-300"]),onClick:e.withModifiers(d=>o.$emit("elementClick",c.value),["stop","prevent"])},[e.createElementVNode("span",{class:e.normalizeClass([o.viewMode==="month"||o.viewMode==="year"?"inline-flex w-full h-8 items-center justify-center rounded-md text-[13px] font-normal transition-colors":"inline-flex w-8 h-8 items-center justify-center rounded-full text-[13px] font-normal transition-colors",o.viewMode==="month"?"p-datepicker-month":"",o.viewMode==="year"?"p-datepicker-year":"",o.viewMode==="day"?"p-datepicker-day":"",c.selected?"bg-blue-500 text-white font-semibold":"",c.current&&!c.selected&&o.viewMode!=="month"&&o.viewMode!=="year"?"border border-slate-300 font-medium":"",!c.disabled&&!c.selected?"hover:bg-slate-100 hover:text-slate-700":"",!c.current&&!c.selected&&c.disabled?"text-slate-300":""])},e.toDisplayString(c.display),3)],8,Ns))),128))])],2),e.renderSlot(o.$slots,"after-calendar"),o.showButtonBar?(e.openBlock(),e.createElementBlock("div",Ms,[e.createElementVNode("button",{type:"button",class:"p-datepicker-today-button text-xs font-medium text-slate-500 hover:text-slate-700 transition-colors px-1.5 py-1 rounded-md hover:bg-slate-100",onClick:t[3]||(t[3]=e.withModifiers(c=>o.$emit("today"),["stop","prevent"]))},e.toDisplayString(o.todayLabel),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-clear-button text-xs font-medium text-slate-500 hover:text-slate-700 transition-colors px-1.5 py-1 rounded-md hover:bg-slate-100",onClick:t[4]||(t[4]=e.withModifiers(c=>o.$emit("clear"),["stop","prevent"]))},e.toDisplayString(o.clearLabel),1)])):e.createCommentVNode("",!0)])],38)}const $n=Be(Bs,[["render",Fs]]),Ds=e.defineComponent({components:{PickerPopup:$n},emits:{"update:pageDate":o=>We(o),select:o=>We(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(()=>ds(o.pageDate)),r=e.computed(()=>us(o.pageDate)),a=(f,p,m)=>!p&&!m?!0:!(p&&mt(f)<mt(p)||m&&mt(f)>mt(m)),l=e.computed(()=>fs({start:n.value,end:r.value}).map(f=>({value:f,key:String(mt(f)),display:mt(f),selected:!!o.selected&&mt(f)===mt(o.selected),disabled:!a(f,o.lowerLimit,o.upperLimit)}))),s=e.computed(()=>{const f=mt(n.value),p=mt(r.value);return`${f} - ${p}`}),i=e.computed(()=>o.lowerLimit&&(Bn(o.lowerLimit)===Bn(o.pageDate)||en(o.pageDate,o.lowerLimit))),c=e.computed(()=>o.upperLimit&&(Bn(o.upperLimit)===Bn(o.pageDate)||tn(o.pageDate,o.upperLimit)));return{years:l,heading:s,leftDisabled:i,rightDisabled:c,previousPage:()=>t("update:pageDate",Zo(o.pageDate,10)),nextPage:()=>t("update:pageDate",En(o.pageDate,10))}}});function Ts(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]=i=>o.$emit("select",i))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const Ls=Be(Ds,[["render",Ts]]),Is=e.defineComponent({components:{PickerPopup:$n},emits:{"update:pageDate":o=>We(o),select:o=>We(o),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},format:{type:String,required:!1,default:"LLL"},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(o,{emit:t}){const n=e.computed(()=>Jo(o.pageDate)),r=e.computed(()=>Qo(o.pageDate)),a=e.computed(()=>p=>nn(p,o.format)),l=(p,m,h)=>!m&&!h?!0:!(m&&en(p,uo(m))||h&&tn(p,po(h))),s=e.computed(()=>ms({start:n.value,end:r.value}).map(p=>({value:p,display:a.value(p),key:a.value(p),selected:!!o.selected&&ho(o.selected,p),disabled:!l(p,o.lowerLimit,o.upperLimit)}))),i=e.computed(()=>mt(n.value)),c=e.computed(()=>o.lowerLimit&&(er(o.lowerLimit,o.pageDate)||en(o.pageDate,o.lowerLimit))),d=e.computed(()=>o.upperLimit&&(er(o.upperLimit,o.pageDate)||tn(o.pageDate,o.upperLimit)));return{months:s,heading:i,leftDisabled:c,rightDisabled:d,previousPage:()=>t("update:pageDate",Zo(o.pageDate,1)),nextPage:()=>t("update:pageDate",En(o.pageDate,1))}}});function Os(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]=i=>o.$emit("back")),onElementClick:t[1]||(t[1]=i=>o.$emit("select",i))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),_:1},8,["items","leftDisabled","rightDisabled","onLeft","onRight"])}const Ps=Be(Is,[["render",Os]]),Rs=e.defineComponent({components:{PickerPopup:$n},emits:{"update:pageDate":o=>We(o),select:o=>We(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(()=>y=>C=>nn(C,y)),r=e.computed(()=>uo(o.pageDate)),a=e.computed(()=>po(o.pageDate)),l=e.computed(()=>({start:r.value,end:a.value})),s=e.computed(()=>({start:fo(r.value,o.weekStartsOn),end:hs(a.value,o.weekStartsOn)})),i=e.computed(()=>o.customWeekdays?.length===7?o.customWeekdays:null),c=e.computed(()=>{const y=o.weekStartsOn,C=i.value;if(C)return Array.from({length:7}).map((B,$)=>C[(y+$)%7]);const _=n.value(o.weekdayFormat);return Array.from(Array(7)).map((B,$)=>(y+$)%7).map(B=>gs(new Date,B,o.weekStartsOn)).map(_)}),d=(y,C,_,B)=>B?.dates?.some($=>Vn(y,$))||B?.predicate?.(y)?!1:!C&&!_?!0:!(C&&en(y,Pt(C))||_&&tn(y,Qt(_))),g=e.computed(()=>{const y=new Date,C=n.value(o.format);return ps(s.value).map(_=>({value:_,display:C(_),selected:!!o.selected&&Vn(o.selected,_),current:Vn(y,_),disabled:!o.allowOutsideInterval&&!bs(_,l.value)||!d(_,o.lowerLimit,o.upperLimit,o.disabledDates),key:n.value("yyyy-MM-dd")(_)}))}),f=e.computed(()=>n.value(o.headingFormat)(o.pageDate)),p=e.computed(()=>o.lowerLimit&&(ho(o.lowerLimit,o.pageDate)||en(o.pageDate,o.lowerLimit))),m=e.computed(()=>o.upperLimit&&(ho(o.upperLimit,o.pageDate)||tn(o.pageDate,o.upperLimit)));return{weekDays:c,days:g,heading:f,leftDisabled:p,rightDisabled:m,previousPage:()=>t("update:pageDate",cs(o.pageDate)),nextPage:()=>t("update:pageDate",mo(o.pageDate,1))}}});function zs(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]=i=>o.$emit("back")),onElementClick:t[1]||(t[1]=i=>o.$emit("select",i)),onToday:t[2]||(t[2]=i=>o.$emit("today")),onClear:t[3]||(t[3]=i=>o.$emit("clear"))},e.createSlots({heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),subheading:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.weekDays,(i,c)=>(e.openBlock(),e.createElementBlock("span",{key:i,class:e.normalizeClass(`v3dp__subheading__weekday__${c}`)},e.toDisplayString(i),3))),128))]),_:2},[o.$slots["after-calendar"]?{name:"after-calendar",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"after-calendar")]),key:"0"}:void 0]),1032,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const js=Be(Rs,[["render",zs]]),Us=e.defineComponent({components:{PickerPopup:$n,ChevronUp:X.ChevronUp,ChevronDown:X.ChevronDown},emits:{select:o=>We(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 h=0,w=0;m&&(h=m.getHours(),w=m.getMinutes()),r.value=h,a.value=w});const l=(m,h)=>{const w=xs(new Date(n.value.getTime()),{hours:m,minutes:h,seconds:0});f(w)&&(r.value=m,a.value=h,t("select",w))},s=(m,h)=>m<0?h:m>h?0:m,i=()=>l(s(r.value+1,23),a.value),c=()=>l(s(r.value-1,23),a.value),d=()=>l(r.value,s(a.value+1,59)),g=()=>l(r.value,s(a.value-1,59)),f=m=>!(o.disabledTime?.dates?.some(h=>tr(m,h)&&ys(m,h))||o.disabledTime?.predicate?.(m));return{hours:r,minutes:a,padStartZero:m=>`0${m}`.substr(-2),isEnabled:f,incrementHours:i,decrementHours:c,incrementMinutes:d,decrementMinutes:g}}}),Hs={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"},qs={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},Ks={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Ws={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},Gs={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Ys={class:"col-span-2"},Xs={class:"p-datepicker-time-picker flex items-center justify-center gap-2 py-1"},Zs={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},Js={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Qs={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},ei={class:"min-w-8 text-center text-sm font-medium text-slate-700"};function ti(o,t,n,r,a,l){const s=e.resolveComponent("ChevronUp"),i=e.resolveComponent("ChevronDown"),c=e.resolveComponent("picker-popup");return o.embedded?(e.openBlock(),e.createElementBlock("div",Hs,[e.createElementVNode("div",qs,[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",Ks,e.toDisplayString(o.padStartZero(o.hours)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[1]||(t[1]=e.withModifiers((...d)=>o.decrementHours&&o.decrementHours(...d),["stop","prevent"]))},[e.createVNode(i,{class:"h-3.5 w-3.5"})])]),t[8]||(t[8]=e.createElementVNode("div",{class:"text-base font-medium text-slate-500"},":",-1)),e.createElementVNode("div",Ws,[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",Gs,e.toDisplayString(o.padStartZero(o.minutes)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[3]||(t[3]=e.withModifiers((...d)=>o.decrementMinutes&&o.decrementMinutes(...d),["stop","prevent"]))},[e.createVNode(i,{class:"h-3.5 w-3.5"})])])])):(e.openBlock(),e.createBlock(c,{key:1,hideHeader:!0,columnCount:2,viewMode:"time"},{body:e.withCtx(()=>[e.createElementVNode("div",Ys,[e.createElementVNode("div",Xs,[e.createElementVNode("div",Zs,[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",Js,e.toDisplayString(o.padStartZero(o.hours)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[5]||(t[5]=e.withModifiers((...d)=>o.decrementHours&&o.decrementHours(...d),["stop","prevent"]))},[e.createVNode(i,{class:"h-3.5 w-3.5"})])]),t[9]||(t[9]=e.createElementVNode("div",{class:"text-base font-medium text-slate-500"},":",-1)),e.createElementVNode("div",Qs,[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",ei,e.toDisplayString(o.padStartZero(o.minutes)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[7]||(t[7]=e.withModifiers((...d)=>o.decrementMinutes&&o.decrementMinutes(...d),["stop","prevent"]))},[e.createVNode(i,{class:"h-3.5 w-3.5"})])])])])]),_:1}))}const ni=Be(Us,[["render",ti]]),An=["time","day","month","year"],oi=(o,t,n=void 0)=>{let r=n||new Date;const a=ks([o,r]);a&&(r=a);const l=ws([t,r]);return l&&(r=l),r},ri=e.defineComponent({components:{YearPicker:Ls,MonthPicker:Ps,DayPicker:js,TimePicker:ni,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"&&An.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"&&An.includes(o)}},emits:{"update:modelValue":o=>o==null||We(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),i=e.ref({}),c=e.ref(!1),d=e.ref(!1);let g=null;const f=e.ref(""),p=ie=>{const le=ie.replace(/[a-zA-Z]/g,"0");return/0/.test(le)?le:""},m=e.computed(()=>p(o.inputFormat));let h=null,w=null;const y=()=>{h?.destroy(),h=null},C=async()=>{if(!w){const{default:ie}=await Promise.resolve().then(()=>Gn);w=ie}return w},_=()=>{h&&h.value!==f.value&&(h.value=f.value??"")},B=ie=>{const le=ie&&We(ie)?nn(ie,o.inputFormat):"";f.value!==le&&(f.value=le),_()},$=async()=>{if(y(),!l.value||!m.value)return;h=(await C())(l.value,{mask:m.value,lazy:!0,overwrite:!1}),_()};e.watch(()=>o.modelValue,ie=>{d.value&&o.typeable||B(ie)},{immediate:!0}),e.watch(()=>o.inputFormat,()=>{d.value&&o.typeable||B(o.modelValue)}),e.onMounted(()=>{m.value&&e.nextTick(()=>{$()})}),e.onBeforeUnmount(()=>{y()}),e.watch(m,ie=>{ie?e.nextTick(()=>{$()}):y()});const j=e.computed(()=>n.value!=="none"),Z=e.computed(()=>o.startingView==="time"&&o.minimumView==="time"),I=e.computed(()=>o.startingView==="day"&&o.minimumView==="time"),V=ie=>{o.disabled||(j.value||(r.value=o.modelValue||oi(o.lowerLimit,o.upperLimit,r.value),t("opened")),n.value=ie,e.nextTick(()=>Oe()))},S=()=>{j.value&&(g!==null&&(cancelAnimationFrame(g),g=null),n.value="none",t("closed"))},x=(ie="none")=>{ie==="none"?S():V(ie)};e.watchEffect(()=>{o.disabled&&S()});const L=(ie,le)=>{r.value=le,ie==="year"?t("decadePageChanged",le):ie==="month"?t("yearPageChanged",le):ie==="day"&&t("monthPageChanged",le)},U=ie=>{r.value=ie,o.minimumView==="year"?(S(),B(ie),t("update:modelValue",ie)):V("month")},ne=ie=>{r.value=ie,o.minimumView==="month"?(S(),B(ie),t("update:modelValue",ie)):V("day")},N=ie=>{const le=I.value?(()=>{const we=o.modelValue||r.value||new Date,Se=new Date(ie);return Se.setHours(we.getHours(),we.getMinutes(),0,0),Se})():ie;r.value=le,o.minimumView==="day"?(S(),B(le),t("update:modelValue",le)):I.value?(B(le),t("update:modelValue",le),V("day")):V("time")},P=ie=>{B(ie),t("update:modelValue",ie)},q=()=>{N(new Date)},K=()=>{o.clearable&&(S(),B(null),t("update:modelValue",null),r.value=o.startingViewDate)},O=()=>{j.value||V(J.value)},Q=()=>{d.value=!0,c.value=!1,V(J.value)},re=()=>{d.value=!1,o.typeable&&F({closeOnSuccess:!1,revertOnInvalid:!0})},T=ie=>{const le=ie.target;if(f.value=le?.value??"",!o.typeable)return;const we=or(f.value,o.inputFormat);we&&f.value===nn(we,o.inputFormat)&&(r.value=we)},F=({closeOnSuccess:ie,revertOnInvalid:le})=>{const we=l.value?.value??f.value,Se=or(we,o.inputFormat);return!!Se&&we===nn(Se,o.inputFormat)&&Se?(r.value=Se,B(Se),t("update:modelValue",Se),ie&&S(),!0):(B(o.modelValue),!1)},A=ie=>{const le=ie.keyCode?ie.keyCode:ie.which,we=le===27,Se=le===13;if(we){S(),l.value?.blur();return}o.typeable&&Se&&(F({closeOnSuccess:!0,revertOnInvalid:!0})||l.value?.focus())},J=e.computed(()=>{const ie=An.indexOf(o.startingView),le=An.indexOf(o.minimumView);return ie<le?o.minimumView:o.startingView}),se=e.computed(()=>o.weekDayNames?.length===7?o.weekDayNames:void 0),ee=()=>o.startingView==="time"&&o.minimumView==="time"?null:V("day"),he=()=>{if(!l.value||!s.value)return;const ie=4,le=8,we=l.value.getBoundingClientRect(),Se=s.value.getBoundingClientRect(),qe=s.value.firstElementChild?.getBoundingClientRect(),Y=window.innerWidth,te=window.innerHeight,oe=window.scrollX||window.pageXOffset,pe=window.scrollY||window.pageYOffset,be=Math.max(160,te-le*2),Ae=Math.min(Se.height||0,be),Fe=te-we.bottom-ie-le,De=we.top-ie-le,W=Fe<Ae&&De>Fe;let v=W?we.top-ie-Ae:we.bottom+ie;v=Math.max(le,Math.min(v,te-le-Ae));const M=qe?.width||Se.width||268;let z=we.left;z+M>Y-le&&(z=Y-le-M),z<le&&(z=le);const de=W?Math.max(120,we.top-ie-le):Math.max(120,te-we.bottom-ie-le);i.value={position:"absolute",top:`${Math.round(v+pe)}px`,left:`${Math.round(z+oe)}px`,maxHeight:`${Math.round(Math.min(be,de))}px`,overflowX:"hidden",overflowY:"auto",zIndex:"2147483000"},I.value&&n.value==="day"&&(i.value.minWidth="345px")},xe=(ie,le)=>ie.bottom>le.top&&ie.top<le.bottom&&ie.right>le.left&&ie.left<le.right,ye=ie=>{const le=[];let we=ie.parentElement;for(;we;){const Se=window.getComputedStyle(we),Te=Se.overflowY,qe=Se.overflowX,Y=["auto","scroll","hidden","clip"].includes(Te),te=["auto","scroll","hidden","clip"].includes(qe);(Y||te)&&le.push(we),we=we.parentElement}return le},$e=()=>{if(!l.value)return!1;const ie=l.value.getBoundingClientRect(),le=new DOMRect(0,0,window.innerWidth,window.innerHeight);return xe(ie,le)?ye(l.value).every(Se=>xe(ie,Se.getBoundingClientRect())):!1},Le=()=>{if(j.value){if(!$e()){c.value=!0,S();return}Oe();return}c.value&&document.activeElement===l.value&&$e()&&(c.value=!1,V(J.value))};e.watch(n,()=>{j.value&&e.nextTick(()=>Oe())});const Oe=()=>{he(),g!==null&&cancelAnimationFrame(g),g=requestAnimationFrame(()=>{he(),g=null})};e.onMounted(()=>{window.addEventListener("resize",Le),window.addEventListener("scroll",Le,!0),document.addEventListener("pointerdown",Me,!0)}),e.onBeforeUnmount(()=>{g!==null&&(cancelAnimationFrame(g),g=null),window.removeEventListener("resize",Le),window.removeEventListener("scroll",Le,!0),document.removeEventListener("pointerdown",Me,!0)});const Me=ie=>{if(n.value==="none")return;const le=ie.target;if(!le)return;const we=!!a.value?.contains(le),Se=!!s.value?.contains(le);!we&&!Se&&(c.value=!1,S())};return{rootRef:a,blur:re,focus:Q,click:O,input:f,inputRef:l,pageDate:r,renderView:x,updatePageDate:L,selectYear:U,selectMonth:ne,selectDay:N,selectToday:q,selectTime:P,keyUp:A,onInput:T,isTimeOnlyMode:Z,isDateTimeMode:I,normalizedWeekdayNames:se,viewShown:n,goBackFromTimepicker:ee,clearModelValue:K,initialView:J,log:ie=>console.log(ie),popupAnchorStyle:i,popupRef:s}}}),li={ref:"rootRef",class:"relative"},ai={class:"p-datepicker p-component p-inputwrapper relative"},si=["readonly","value","placeholder","disabled","tabindex"],ii={class:"p-datepicker-input-icon-container absolute right-2 top-1/2 -translate-y-1/2 pointer-events-none text-slate-400"},ci={class:"absolute right-8 top-1/2 -translate-y-1/2"};function di(o,t,n,r,a,l){const s=e.resolveComponent("Clock3"),i=e.resolveComponent("CalendarDays"),c=e.resolveComponent("X"),d=e.resolveComponent("year-picker"),g=e.resolveComponent("month-picker"),f=e.resolveComponent("time-picker"),p=e.resolveComponent("day-picker");return e.openBlock(),e.createElementBlock("div",li,[e.createElementVNode("div",ai,[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,si),e.createElementVNode("span",ii,[o.isTimeOnlyMode?(e.openBlock(),e.createBlock(s,{key:0,class:"h-4 w-4"})):(e.openBlock(),e.createBlock(i,{key:1,class:"h-4 w-4"}))]),e.withDirectives(e.createElementVNode("div",ci,[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(c,{class:"h-3 w-3"})])])],512),[[e.vShow,o.clearable&&o.modelValue]])]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.withDirectives(e.createElementVNode("div",{ref:"popupRef",style:e.normalizeStyle(o.popupAnchorStyle)},[e.withDirectives(e.createVNode(d,{pageDate:o.pageDate,"onUpdate:pageDate":t[6]||(t[6]=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(g,{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(f,{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(f,{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 ui=Be(ri,[["render",di]]),rr=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}=Qe(n.style),l=e.getCurrentInstance(),s=e.computed(()=>n.mode?n.mode:n.time?"datetime":"date"),i=e.computed(()=>["py-1.5 px-3 block w-full placeholder:text-[#767f8f] bg-white",a.value,n.customClass,{"!border-red-600":n.error}]),c=e.computed(()=>!n.modelValue&&n.now?new Date:null),d=e.computed({get:()=>V(n.modelValue??c.value,s.value)||void 0,set:T=>r("update:modelValue",S(T,s.value))}),g=["Пн","Вт","Ср","Чт","Пт","Сб","Нд"],f=e.computed(()=>{if(n.dayNames?.length)return n.dayNames.length===7?n.dayNames:g}),p=e.computed(()=>{const T=n.weekStart,F=typeof T=="string"?Number(T):T;return F===void 0||Number.isNaN(F)?1:Math.min(6,Math.max(0,F))}),m=e.computed(()=>{const T=n.maxDaysFromNow;if(T==null||T==="")return;const F=typeof T=="string"?Number(T):T;if(!Number.isFinite(F)||F<0)return;const A=new Date;return A.setHours(0,0,0,0),A.setDate(A.getDate()+F),A.setHours(23,59,59,999),A}),h=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 y(){const T=l?.appContext?.config?.globalProperties?.$i18n?.locale;if(typeof T=="string"&&T)return T;if(T&&typeof T=="object"&&"value"in T&&T.value)return String(T.value);if(typeof localStorage<"u"){const F=localStorage.getItem("locale")||localStorage.getItem("language");if(F)return F}return"uk"}function C(){const F=l?.appContext?.config?.globalProperties?.$settings?.dateFormat;if(!F)return"";if(typeof F=="string")return F;if(typeof F=="object"){const A=y();return F[A]||F[A.split("-")[0]]||F.uk||F.en||""}return""}function _(T){return T?T.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 B=e.computed(()=>{const T=w[s.value]||"dd.MM.yyyy";if(s.value==="time")return T;const F=n.dateFormat||C();if(!F)return T;const A=_(F);return A?s.value==="datetime"?`${A} HH:mm`:A:T});function $(T,F){return T?F==="week"?"рррр-тиждень":T.replaceAll("yyyy","рррр").replaceAll("yy","рр").replaceAll("MM","мм").replaceAll("M","м").replaceAll("dd","дд").replaceAll("d","д").replaceAll("HH","гг").replaceAll("H","г").replaceAll("mm",F==="time"||F==="datetime"?"хх":"мм"):""}const j={date:"дд.мм.рррр",datetime:"дд.мм.рррр гг:хх",month:"мм.рррр",week:"рррр-тиждень",time:"гг:хх",year:"рррр"},Z=e.computed(()=>{if(n.placeholder)return n.placeholder;const T=s.value;return $(B.value,T)||j[T]||""}),I=e.ref(!1);e.watch(()=>n.modelValue,T=>{T?I.value=!0:n.now||(I.value=!1)},{immediate:!0}),e.watchEffect(()=>{n.now&&!n.modelValue&&!I.value&&(r("update:modelValue",S(new Date,s.value)),I.value=!0)}),e.watch(B,()=>{r("update:modelValue",S(d.value,s.value))});function V(T,F){if(!T)return null;if(T instanceof Date&&!Number.isNaN(T.getTime()))return T;if(typeof T!="string")return null;switch(F){case"datetime":return ne(T);case"time":return q(T);case"month":return N(T);case"year":return P(T);case"week":return K(T);case"date":default:return U(T)}}function S(T,F){if(!T)return null;const A=T instanceof Date?T:V(T,F);if(!A)return null;switch(F){case"datetime":return`${x(A)}T${L(A)}`;case"time":return L(A);case"month":return`${A.getFullYear()}-${re(A.getMonth()+1)}`;case"year":return`${A.getFullYear()}`;case"week":{const{year:J,week:se}=O(A);return`${J}-W${re(se)}`}case"date":default:return x(A)}}function x(T){return`${T.getFullYear()}-${re(T.getMonth()+1)}-${re(T.getDate())}`}function L(T){return`${re(T.getHours())}:${re(T.getMinutes())}`}function U(T){const F=T.split("-");if(F.length<3)return null;const[A,J,se]=F.map(Number);return!A||!J||!se?null:new Date(A,J-1,se)}function ne(T){const F=T.includes("T")?T:T.replace(" ","T"),A=new Date(F);return Number.isNaN(A.getTime())?null:A}function N(T){const[F,A]=T.split("-").map(Number);return!F||Number.isNaN(A)?null:new Date(F,(A||1)-1,1)}function P(T){const F=Number(T);return F?new Date(F,0,1):null}function q(T){const F=T.trim().match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/);if(!F)return null;const[,A,J,se]=F,ee=new Date;return ee.setHours(Number(A),Number(J),Number(se||0),0),ee}function K(T){const F=T.match(/^(\d{4})-W(\d{2})$/);if(!F)return null;const[,A,J]=F,se=Number(J);return Q(Number(A),se)}function O(T){const F=new Date(Date.UTC(T.getFullYear(),T.getMonth(),T.getDate())),A=F.getUTCDay()||7;F.setUTCDate(F.getUTCDate()+4-A);const J=new Date(Date.UTC(F.getUTCFullYear(),0,1)),se=Math.ceil(((F.getTime()-J.getTime())/864e5+1)/7);return{year:F.getUTCFullYear(),week:se}}function Q(T,F){if(!T||!F)return null;const A=new Date(T,0,1+(F-1)*7),J=A.getDay(),se=A;return J<=4?se.setDate(A.getDate()-A.getDay()+1):se.setDate(A.getDate()+8-A.getDay()),se}function re(T){return String(T).padStart(2,"0")}return(T,F)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-date-picker",n.customClass])},[e.createVNode(ui,{modelValue:d.value,"onUpdate:modelValue":F[0]||(F[0]=A=>d.value=A),placeholder:Z.value,disabled:n.disabled,clearable:n.clearable,typeable:n.editable,"week-day-names":f.value,"week-starts-on":p.value,"starting-view":h.value.startingView,"minimum-view":h.value.minimumView,"input-format":B.value,"upper-limit":m.value,name:n.name,class:e.normalizeClass(i.value)},null,8,["modelValue","placeholder","disabled","clearable","typeable","week-day-names","week-starts-on","starting-view","minimum-view","input-format","upper-limit","name","class"])],2))}}),[["__scopeId","data-v-fb3e8176"]]),pi=(o,t)=>{if(!t||!Object.keys(t).length)return o;const[n,r=""]=o.split("?"),a=new URLSearchParams(r);Object.entries(t).forEach(([s,i])=>{i==null||i===""||a.set(s,String(i))});const l=a.toString();return l?`${n}?${l}`:n},mi=async(o,t={})=>{try{const n=new FormData;n.append("unique","true"),n.append("file",o);const{api:r,id:a="1",form:l="form",table:s="table",customParams:i}=t,c=r||`/file/upload/uploads?id=${a||""}&form=${l||""}&table=${s||""}`,d=pi(c,i);return(await fetch(d,{method:"POST",body:n}).then(f=>f.json()))?.result}catch(n){return ke.notify({type:"error",title:"Помилка!",message:"Сталась помилка під час завантаження файлу",position:"right-bottom"}),console.error("Сталась помилка завантаження файлу",n),null}},fi=async o=>{try{return await fetch(`file/delete/${o}`),!0}catch(t){return console.error(t),!1}},lr=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",i=l||s,c=document.createElement("a");c.setAttribute("download",i),c.href=window.URL.createObjectURL(n),c.click(),window.URL.revokeObjectURL(c.href)}catch(t){console.error(t.message)}},hi=o=>{if(!o)return"";const t=o?.split(".");return t[t.length-1]},gi=o=>{const t=hi(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},yi=["title"],bi={key:0,class:"absolute inset-0 flex flex-col items-center justify-center gap-1 rounded-lg bg-white/90 text-xs font-medium text-slate-600"},ki=["title"],wi={class:"absolute hidden top-0 right-0 flex items-center gap-x-2 w-full h-full justify-center"},ft=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),i=e.computed(()=>r.value?typeof r.value=="string"?r.value:r.value.file_path:""),c=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=m=>typeof m=="string"?m:m?.file_path||"",g=()=>{const m=i.value;fi(m),l.multiple&&Array.isArray(n.value)?n.value=n.value.filter(h=>d(h)!==m):n.value=""},f=()=>{i.value&&window.open(i.value,"_blank")},p=()=>{l.disabled||l.isUploading||a("click")};return(m,h)=>s.value?(e.openBlock(),e.createElementBlock("div",{key:0,title:m.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",c.value]),onClick:p},[m.isUploading?(e.openBlock(),e.createElementBlock("div",bi,[h[2]||(h[2]=e.createElementVNode("div",{class:"loader"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(m.progressPercent)+"%",1)])):(e.openBlock(),e.createBlock(e.unref(X.Plus),{key:1,class:"h-4 w-4"}))],10,yi)):(e.openBlock(),e.createElementBlock("div",{key:1,title:i.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(gi)(i.value)),{src:i.value,alt:"file",class:"w-full h-full object-cover cursor-pointer",onClick:h[0]||(h[0]=w=>e.unref(lr)(i.value))},null,8,["src"])),e.createElementVNode("div",wi,[e.createElementVNode("button",{type:"button",onClick:g,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:f,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:h[1]||(h[1]=w=>e.unref(lr)(i.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,ki))}}),[["__scopeId","data-v-dfd41538"]]),ar=o=>o?o.split(",").map(t=>t.trim().toLowerCase()).filter(Boolean).map(t=>t.startsWith(".")?t.slice(1):t):[],sr=(o,t)=>!t||o.size<=t*1024*1024?!0:(ke.notify({type:"error",title:"Помилка!",message:`Файл "${o.name}" занадто великий. Максимальний розмір: ${t} МБ`,position:"right-bottom"}),!1),ir=(o,t)=>{if(!t.length)return!0;const n=o.name.split(".").pop()?.toLowerCase()||"";return t.includes(n)?!0:(ke.notify({type:"error",title:"Помилка!",message:`Неприпустимий формат файлу "${o.name}". Дозволені формати: ${t.map(r=>`.${r}`).join(", ")}`,position:"right-bottom"}),!1)},cr=(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,i]=l.split("="),c=s?.trim(),d=i?.trim();if(!c||!d)return;const g=a[d];if(g==null||g===""){r.push(d);return}n[c]=g}),r.length?(ke.notify({type:"warning",title:"Заповніть поля",message:`Поля (${r.join(", ")}) необхідні для завантаження файлу`,position:"right-bottom"}),{ok:!1,params:n,missingSources:r}):{ok:!0,params:n,missingSources:r}},dr=(o,t)=>!t||!Array.isArray(o)?[]:o,ur=(o,t)=>t||Array.isArray(o)?null:o,pr=o=>{if(!o)return"";const t=o.split(/[/\\]/).pop()||"",n=t.lastIndexOf(".");return n<=0||n===t.length-1?"":t.slice(n+1).toLowerCase()},xi={class:"flex items-center flex-wrap gap-2"},vi=["accept","multiple","disabled"],mr=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),i=e.ref([]),c=e.inject("values"),d=e.computed(()=>dr(r.value,!!n.multiple)),g=e.computed(()=>ur(r.value,!!n.multiple)),f=e.computed(()=>ar(n.format)),p=e.computed(()=>cr(n.customParams,c)),m=j=>{ke.notify({type:"error",title:"Помилка завантаження",message:j||"Не вдалося завантажити файл. Спробуйте ще раз.",position:"right-bottom"})},h=()=>{n.disabled||s.value||p.value.ok&&l.value?.click()},w=async j=>{const Z={api:n.api,customParams:Object.keys(p.value.params).length?p.value.params:void 0},I=await mi(j,Z);return I?.file_path?I.file_path:null},y=e.computed(()=>i.value.filter(j=>j.status!=="done")),C=e.computed(()=>y.value[0]||null),_=j=>typeof j=="string"?j:j?.file_path||"",B=(j,Z)=>({key:`${Date.now()}-${Z}-${j.name}`,file:j,size:j.size,uploaded:0,status:"pending",error:null,path:null,progressPercent:0}),$=async j=>{const{files:Z}=j.target;if(!Z||Z.length===0)return;if(!p.value.ok){l.value&&(l.value.value="");return}const I=Array.from(Z);if(n.max_size&&I.filter(x=>!sr(x,n.max_size)).length>0){l.value&&(l.value.value="");return}if(I.filter(S=>!ir(S,f.value)).length>0){l.value&&(l.value.value="");return}s.value=!0,i.value=n.multiple?I.map((S,x)=>B(S,x)):[];try{if(n.multiple){const L=await Promise.all(I.map(async(P,q)=>{const K=i.value[q];K.status="uploading",K.progressPercent=0;const O=await w(P);return O?(K.status="done",K.path=O,K.uploaded=K.size,K.progressPercent=100):(K.status="error",K.error="Помилка при завантаженні"),O})),U=L.filter(P=>!!P);if(U.length===0){m();return}U.length<L.length&&m("Деякі файли не вдалося завантажити. Перевірте їх та спробуйте знову.");const ne=U,N=Array.isArray(r.value)?r.value:r.value?[r.value]:[];r.value=[...N,...ne],a("change",r.value);return}const S=I[0],x=await w(S);if(!x){m();return}r.value=x,a("change",x)}catch(S){m(S?.message||void 0)}finally{s.value=!1,i.value=[],l.value&&(l.value.value="")}};return(j,Z)=>(e.openBlock(),e.createElementBlock("div",xi,[e.createElementVNode("input",{class:"hidden",ref_key:"fileInput",ref:l,type:"file",accept:n.format,multiple:n.multiple,onChange:$,disabled:s.value||j.disabled},null,40,vi),g.value?(e.openBlock(),e.createBlock(ft,{key:0,item:g.value,value:r.value,"onUpdate:value":Z[0]||(Z[0]=I=>r.value=I)},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(d.value,(I,V)=>(e.openBlock(),e.createBlock(ft,{key:`${V}-${_(I)}`,multiple:!0,item:I,value:r.value,"onUpdate:value":Z[1]||(Z[1]=S=>r.value=S)},null,8,["item","value"]))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,I=>(e.openBlock(),e.createBlock(ft,{key:I.key,action:"","is-uploading":!0,disabled:!0,"progress-percent":I.progressPercent,title:I.file.name},null,8,["progress-percent","title"]))),128)),e.createVNode(ft,{action:"","is-uploading":!1,disabled:j.disabled||s.value,title:"Добавить файлы",onClick:h},null,8,["disabled"])],64)):!n.multiple&&!C.value?(e.openBlock(),e.createBlock(ft,{key:2,action:"","is-uploading":!1,disabled:j.disabled||s.value,title:"Обновить файл",onClick:h},null,8,["disabled"])):C.value?(e.openBlock(),e.createBlock(ft,{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)]))}}),_i={class:"vs-input-file2 flex flex-col gap-4"},Ci={class:"flex items-center flex-wrap gap-2"},Ei=["multiple","accept","disabled"],Bi={key:0,class:"text-sm text-rose-600"},Nn=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([]),i=e.inject("values"),c=e.computed(()=>!!t.multiple),d=e.computed(()=>ar(t.format)),g=e.computed(()=>{if(d.value.length)return d.value.map(V=>`.${V}`).join(",")}),f=e.computed(()=>dr(n.value,c.value)),p=e.computed(()=>ur(n.value,c.value)),m=e.computed(()=>cr(t.customParams,i)),h=e.computed(()=>s.value.filter(V=>V.status!=="done")),w=e.computed(()=>c.value?null:h.value[0]||null),y=e.computed(()=>{const V=h.value,S=V.reduce((L,U)=>L+U.size,0);if(!S)return 0;const x=V.reduce((L,U)=>L+Math.min(U.uploaded,U.size),0);return Math.min(100,Math.round(x/S*100))}),C=()=>{t.disabled||a.value||m.value.ok&&r.value?.click()},_=async(V,S)=>{const x=S||Z(V,0);try{x.status="uploading";const L={id:"",fileName:x.file.name,subdir:t.subdir,size:x.file.size,...m.value.params},U=await fetch(`${t.api||"/file/upload2"}/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(L)});if(!U.ok)throw new Error("Не вдалося ініціалізувати завантаження");const ne=await U.json().catch(()=>({}));x.uploadId=ne.id||"",x.uploaded=Number(ne.uploaded)||0,x.progressPercent=x.size?Math.min(100,Math.round(x.uploaded/x.size*100)):0;const N=t.chunkSize??5*1024*1024;for(;x.uploaded<x.size;){const K=x.uploaded,O=Math.min(K+N,x.size),re=await x.file.slice(K,O).arrayBuffer(),T=await fetch(`${t.api||"/file/upload2"}/${x.uploadId}`,{method:"PATCH",headers:{"Content-Range":`bytes ${K}-${O-1}/${x.size}`,"Content-Type":"application/octet-stream"},body:re});if(!T.ok)throw new Error("Помилка завантаження частини");const F=await T.json().catch(()=>({})),A=F.uploaded!=null?Number(F.uploaded):O;if(x.uploaded=A,x.progressPercent=x.size?Math.min(100,Math.round(x.uploaded/x.size*100)):0,F.finished||A>=x.size){const J=pr(x.file.name),se=F.file_path||F.filepath||F.url||(J?`/files/uploads/${x.uploadId}.${J}`:`/files/uploads/${x.uploadId}`);return x.path=se,x.status="done",j(se),se}}const P=pr(x.file.name),q=`/files/uploads/${x.uploadId}${P?`.${P}`:""}`;return x.path=q,x.status="done",j(q),q}catch(L){return x.status="error",x.error=L?.message||"Помилка при завантаженні",l.value=L?.message||"Помилка при завантаженні",null}},B=V=>typeof V=="string"?V:V?.file_path||"",$=V=>!V||V.length===0?[]:Array.from(V),j=V=>{if(c.value){const S=Array.isArray(n.value)?[...n.value]:n.value?[n.value]:[];S.push(V),n.value=S;return}n.value=V},Z=(V,S)=>({key:`${Date.now()}-${S}-${V.name}`,file:V,size:V.size,uploaded:0,uploadId:"",status:"pending",error:null,path:null,progressPercent:0}),I=async V=>{const S=V.target,x=$(S.files);if(!x.length)return;if(!m.value.ok){S.value="";return}const L=x.filter(U=>sr(U,t.max_size)&&ir(U,d.value));if(!L.length){S.value="";return}try{a.value=!0,l.value="",s.value=L.map((P,q)=>Z(P,q));const ne=(await Promise.allSettled(s.value.map(P=>_(P.file,P)))).filter(P=>P.status==="fulfilled").map(P=>P.value).filter(P=>!!P),N=s.value.filter(P=>P.status==="error").map(P=>P.file.name);if(ne.length===0){l.value="Не вдалося завантажити файл";return}N.length>0?ke.notify({type:"warning",title:"Частина файлів не завантажилась",message:N.join(", "),position:"right-bottom"}):ke.notify({type:"success",title:"Файл завантажено",message:L.length>1?`Завантажено ${ne.length} файлів`:L[0].name,position:"right-bottom"})}finally{a.value=!1,s.value=[],S.value=""}};return(V,S)=>(e.openBlock(),e.createElementBlock("div",_i,[e.createElementVNode("div",Ci,[e.createElementVNode("input",{ref_key:"fileInput",ref:r,type:"file",class:"hidden",multiple:c.value,accept:g.value,disabled:a.value||t.disabled,onChange:I},null,40,Ei),c.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(f.value,(x,L)=>(e.openBlock(),e.createBlock(ft,{key:`${L}-${B(x)}`,multiple:!0,item:x,value:n.value,"onUpdate:value":S[0]||(S[0]=U=>n.value=U)},null,8,["item","value"]))),128)):p.value?(e.openBlock(),e.createBlock(ft,{key:1,item:p.value,value:n.value,"onUpdate:value":S[1]||(S[1]=x=>n.value=x)},null,8,["item","value"])):e.createCommentVNode("",!0),c.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(h.value,x=>(e.openBlock(),e.createBlock(ft,{key:x.key,action:"","is-uploading":!0,disabled:!0,"progress-percent":x.progressPercent,title:x.file.name},null,8,["progress-percent","title"]))),128)):w.value?(e.openBlock(),e.createBlock(ft,{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(ft,{action:"","is-uploading":!1,disabled:t.disabled||a.value,"progress-percent":y.value,title:c.value?"Добавить файлы":"Обновить файл",onClick:C},null,8,["disabled","progress-percent","title"])]),l.value?(e.openBlock(),e.createElementBlock("p",Bi,e.toDisplayString(l.value),1)):e.createCommentVNode("",!0)]))}}),Vi={class:"flex items-center justify-center h-[30px] w-[30px]"},Si={class:"max-w-[55vw]"},$i={class:"text-sm font-semibold text-gray-800 truncate dark:text-neutral-200"},Ai={class:"flex items-center text-xs text-gray-500 truncate dark:text-neutral-500"},Ni={class:"px-[5px]"},Mi={class:""},Mn=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",Vi,[e.createVNode(e.unref(X.FileText),{class:"icon icon-tabler icons-tabler-outline icon-tabler-file h-4 w-4"})]),e.createElementVNode("div",Si,[e.createElementVNode("p",$i,e.toDisplayString(a.item?.uploaded_name),1),e.createElementVNode("p",Ai,[e.createElementVNode("span",null,e.toDisplayString(a.item?.username),1),e.withDirectives(e.createElementVNode("span",Ni,"|",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",Mi,e.toDisplayString(r(a.item?.size)),1)])])],64))}}),Fi={class:"p-3 relative group flex items-center gap-x-3 border border-gray-200 bg-white rounded-md w-full"},Di={key:0,class:"flex w-full gap-x-3 items-center"},Ti={key:1,class:"flex gap-x-3 w-full items-center"},Li={key:2,class:"flex gap-x-3 w-full items-center"},Ii=["href"],Oi={key:3,class:"flex gap-x-3 w-full items-center"},Pi={class:"lg:absolute lg:top-3 lg:end-1 opacity-100"},Ri={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"},zi={class:"inline-block"},ji={class:"inline-block"},Ui={class:"inline-block"},Hi=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(f){return["pdf","json"].includes(f.ext)}function l(f){return["ppt","pptx","doc","docx","xls","xlsx"].includes(f.ext)}function s(f){const p=document.createElement("a");p.setAttribute("download",f?.uploaded_name),p.href=f?.file_path,p.click()}function i(f){f?.file_path&&window.open(f.file_path,"_blank")}async function c(){try{await fetch(`${n.prefix}/widget/file/${n.item.entity_id}/${n.item.file_id}`),r("update")}catch(f){console.error(f)}}function d(){r("openModal",{title:"Ви впевнені?",message:"Ви впевнені, що хочете видалити цей файл?",confirmButtonText:"Так, я впевнена/ий",cancelButtonText:"Скасувати",confirm:c,updateListOnConfirm:!0})}function g(f){(n.item.ext==="jpg"||n.item.ext==="png")&&r("openLightbox",{item:n.item,index:f})}return(f,p)=>(e.openBlock(),e.createElementBlock("div",Fi,[f.item.ext==="jpg"||f.item.ext==="png"?(e.openBlock(),e.createElementBlock("div",Di,[e.createElementVNode("div",{class:"max-w-[55vw] cursor-pointer flex gap-x-3 w-full items-center",onClick:p[0]||(p[0]=m=>g(f.index))},[e.createVNode(Mn,{item:f.item},null,8,["item"])])])):a(f.item)?(e.openBlock(),e.createElementBlock("div",Ti,[e.createVNode(Mn,{item:f.item},null,8,["item"])])):l(f.item)?(e.openBlock(),e.createElementBlock("div",Li,[e.createElementVNode("a",{href:`/api/file-preview?id=${f.item.file_id}`,target:"_blank",class:"flex gap-x-3 w-full items-center"},[e.createVNode(Mn,{item:f.item},null,8,["item"])],8,Ii)])):(e.openBlock(),e.createElementBlock("div",Oi,[e.createVNode(Mn,{item:f.item},null,8,["item"])])),e.createElementVNode("div",Pi,[e.createElementVNode("div",Ri,[e.createElementVNode("div",zi,[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=>i(f.item))},[e.createVNode(e.unref(X.Eye),{class:"h-4 w-4"})])]),e.createElementVNode("div",ji,[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(f.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",Ui,[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"})])])])])]))}}),qi={class:"flex flex-col widget-file xl:bg-white xl:rounded-xl dark:xl:bg-neutral-800 dark:xl:border-neutral-700 w-full"},Ki={class:"flex w-full mb-[12px] items-center gap-x-2"},Wi={class:"font-semibold text-gray-800 dark:text-neutral-200 text-[14px]"},Gi={class1:"ml-auto"},Yi={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"},Xi={key:0,class:"py-4 mb-4 space-y-4 border-gray-200 border-y dark:border-neutral-700"},Zi={class:"relative"},Ji={class:"absolute inset-y-0 start-0 flex items-center pointer-events-none z-[1] ps-3.5"},Qi={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"},ec={key:0},fr=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),i=t,c=e.ref(!1),d=e.ref({}),g=e.ref([]),f=e.ref(""),p=e.computed(()=>Array.isArray(g.value)?g.value.filter(B=>B.ext==="jpg"||B.ext==="png").map(B=>B?.file_path):[]),m=e.computed(()=>f.value===""?g.value:g.value.filter(B=>B?.uploaded_name?.includes(f.value))),h=B=>{const $=p.value.findIndex(j=>j===B.item.file_path);$!==-1&&(l.value=!0,s.value=$)},w=async()=>{try{const B=await fetch(`${n.prefix}/widget/file/${a.value}`).then($=>$.json());g.value=B?.rows}catch(B){console.error(B)}},y=async B=>{await Promise.all(Array.from(B.target.files).map(async $=>{const j=new FormData;j.append("file",$);try{const Z=`${n.prefix}/widget/file/${a.value}`,I=await fetch(Z,{method:"POST",body:j});return I.ok?(i("update","file-list"),$):(ke.notify({type:I.status>=400&&I.status<500?"warning":"error",title:"Error",message:`Error code: ${I.status}`}),null)}catch(Z){return ke.notify({type:"error",title:"Error",message:Z.message||"Unknown error"}),console.error(Z),null}})),await w()},C=B=>{const $={...B};return B.cancel||($.cancel=()=>{c.value=!1}),B.updateListOnConfirm&&($.confirm=async()=>{await B.confirm(),c.value=!1,w()}),$},_=B=>{d.value=C(B),c.value=!0};return e.watch(a,B=>{B&&w()}),e.onMounted(()=>{a.value&&w()}),(B,$)=>{const j=e.resolveComponent("Lightbox"),Z=e.resolveComponent("MessageBox");return e.openBlock(),e.createElementBlock("div",qi,[e.createElementVNode("div",Ki,[e.createElementVNode("h2",Wi," Файлів: "+e.toDisplayString(g.value?.length),1),e.createElementVNode("div",Gi,[e.createElementVNode("label",null,[e.createElementVNode("input",{type:"file",class:"hidden",onChange:$[0]||($[0]=I=>y(I))},null,32),e.createElementVNode("div",Yi,[e.createVNode(e.unref(X.Upload),{class:"h-4 w-4"})])])])]),g.value?.length>4?(e.openBlock(),e.createElementBlock("div",Xi,[e.createElementVNode("div",null,[e.createElementVNode("div",Zi,[e.createElementVNode("div",Ji,[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]=I=>f.value=I),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,f.value,void 0,{trim:!0}]])])])])):e.createCommentVNode("",!0),g.value?.length?(e.openBlock(),e.createElementBlock("div",Qi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(I,V)=>(e.openBlock(),e.createBlock(Hi,{key:V,prefix:B.prefix,item:I,index:V,onUpdate:$[2]||($[2]=S=>B.$emit("update","file-list")),onOpenModal:$[3]||($[3]=S=>_(S)),onOpenLightbox:$[4]||($[4]=S=>h(S))},null,8,["prefix","item","index"]))),128)),m.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",ec,$[8]||($[8]=[e.createElementVNode("p",{class:"text-sm text-gray-600 font-sm"}," Файлів з такою назвою не існує, введіть інше пошукове слово ",-1)])))])):e.createCommentVNode("",!0),e.createVNode(j,{modelValue:l.value,"onUpdate:modelValue":$[5]||($[5]=I=>l.value=I),startIndex:s.value,"onUpdate:index":$[6]||($[6]=I=>s.value=I),images:p.value},null,8,["modelValue","startIndex","images"]),e.createVNode(Z,e.mergeProps({modelValue:c.value,"onUpdate:modelValue":$[7]||($[7]=I=>c.value=I),onConfirm:d.value.confirm},d.value),null,16,["modelValue","onConfirm"])])}}}),tc={class:"flex items-center justify-between"},nc={class:"text-[16px] text-gray-900 font-medium"},oc={class:"grid gap-3"},rc=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",tc,[e.createElementVNode("p",nc,e.toDisplayString(o.title),1),e.createVNode(lo,{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",oc,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-90320b87"]]),lc={class:"text-[16px] text-gray-900 font-medium"},ac={class:"grid gap-3"},sc=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",lc,e.toDisplayString(o.title),1)]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",ac,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-0c825d65"]]),ic={class:"flex items-center justify-between"},cc={switcher:rc,accordion:sc,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",ic,[e.createElementVNode("p",null,e.toDisplayString(o.title),1)]),e.renderSlot(t.$slots,"default")]))}})},ut={Equal:"==",Inequal:"!=",Higer:">",HigerOrEqual:">=",Lower:"<",LowerOrEqual:"<=",Between:"between",StartWith:"^",EndWith:"$",Contain:"*",In:"in",NotIn:"not_in"},dc=(o,t)=>String(o)===String(t),uc=(o,t)=>String(o)!==String(t),pc=(o,t)=>o>t,mc=(o,t)=>o>=t,fc=(o,t)=>o<t,hc=(o,t)=>o<=t,gc=(o,t)=>Array.isArray(t)&&t.length===2?o>=t[0]&&o<=t[1]:!1,yc=(o,t)=>String(o).startsWith(String(t)),bc=(o,t)=>String(o).endsWith(String(t)),kc=(o,t)=>String(o).includes(String(t)),wc=(o,t)=>Array.isArray(t)?t.includes(o):!1,xc=(o,t)=>Array.isArray(t)?!t.includes(o):!0,vc=(o,t)=>{if(!t)return!0;switch(t?.[1]){case ut.Equal:return dc(o,t?.[2]);case ut.Inequal:return uc(o,t?.[2]);case ut.Higer:return pc(o,t?.[2]);case ut.HigerOrEqual:return mc(o,t?.[2]);case ut.Lower:return fc(o,t?.[2]);case ut.LowerOrEqual:return hc(o,t?.[2]);case ut.Between:return gc(o,t?.[2]);case ut.StartWith:return yc(o,t?.[2]);case ut.EndWith:return bc(o,t?.[2]);case ut.Contain:return kc(o,t?.[2]);case ut.In:return wc(o,t?.[2]);case ut.NotIn:return xc(o,t?.[2]);default:return!0}};function hr(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 gr=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(i=>hr(n.value,i?.conditions,t.name||void 0))),l=e.computed(()=>cc[t.view]),s=e.computed(()=>{if(n.value||(n.value={}),!t.name)return n.value;const i=n.value[t.name];if(i)return i;const c={};return n.value={...n.value,[t.name]:c},c});return(i,c)=>o.schema?.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(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(jr,e.mergeProps({key:d.name},{ref_for:!0},d,{item:d,modelValue:s.value[d.name],"onUpdate:modelValue":g=>s.value[d.name]=g,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)}}),yr=({props:o,fetchOptionByValue:t,optionsList:n,selectedOption:r,modelValue:a,onCreated:l})=>{const s=e.ref(!1),i=e.ref({}),c=e.ref([]),d=e.ref(null),g=e.computed(()=>o.add?.title||"Додати"),f=e.computed(()=>o.add?.token||o.add?.model||""),p=e.computed(()=>o.add?.pk||"id");return{isOpenAdd:s,addData:i,addSchema:c,addForm:d,addTitle:g,addOption:async()=>{if(!(!f.value||d?.value.validate()))try{const y=o.add?.api??`/api/table/${f.value}`,C=await fetch(y,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i.value)}),_=await C.json().catch(()=>({})),B=_?.error||_?.message,$=Number(_?.code)>=400;if(!C.ok||$){ke.notify({title:"Помилка",type:"error",message:B||`Код помилки: ${_?.code||C.status}`});return}const j=_?.rows?.[0],Z=_?.[p.value]??_?.id??j?.[p.value]??j?.id;if(!Z){ke.notify({title:"Помилка",type:"error",message:"Обʼєкт створено, але в відповіді відсутній ID."});return}const I=await t(Z);I&&(n.value.some(S=>String(S?.id)===String(I.id))||n.value.push(I)),l?await l(I,Z):I&&(r.value=I,a.value=Z),s.value=!1,ke.notify({title:"Успіх",message:"Обʼєкт успішно створено."})}catch(y){ke.notify({title:"Помилка",type:"error",message:y?.message||"Не вдалося створити обʼєкт."})}},onAddValue:async()=>{if(!o.add)return null;const w=await fetch(`/api/template/form/${o.add.form}`).then(y=>y.json());return c.value=w.schema,i.value={},s.value=!0,null}}},_c=["aria-expanded","data-focus"],Cc={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"},Ec={key:0,class:"flex flex-nowrap items-center gap-1 overflow-x-auto overflow-y-hidden min-w-0 flex-1 py-0.5"},Bc={class:"flex items-center gap-1 min-w-0"},Vc=["title"],Sc=["innerHTML"],$c=["onClick"],Ac={class:"flex-1 min-w-[2px]"},Nc=["placeholder"],Mc=["title"],Fc=["innerHTML"],Dc={key:3,class:"truncate flex-1 min-w-0"},Tc={key:2,class:"flex-1 min-w-[2px]"},Lc=["placeholder"],Ic={key:3,class:"flex-1 flex items-center min-h-[30px] py-0.5 pl-2 text-sm truncate text-inherit"},Oc={class:"vs-input-select__actions relative z-10 flex items-center shrink-0 bg-white"},Pc=["disabled"],Rc={key:1,class:"self-stretch w-px bg-[#ccc] my-[1px]"},zc=["disabled","title"],jc=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]=(...i)=>l.onControlKeydown&&l.onControlKeydown(...i)),onClick:s[11]||(s[11]=(...i)=>l.onControlClick&&l.onControlClick(...i)),"data-focus":l.isOpen||l.inputFocus?"true":"false",ref:l.setTriggerRef},[e.createElementVNode("div",Cc,[l.isMulti?(e.openBlock(),e.createElementBlock("div",Ec,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.selectedOptions,i=>(e.openBlock(),e.createElementBlock("div",{key:i.id,class:"flex min-w-0 bg-[rgb(230,230,230)] rounded-[2px] m-[2px] box-border max-w-full"},[e.createElementVNode("div",Bc,[l.shouldShowColorDot(i)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[16px] h-[16px] rounded-md block ml-1.5 flex-shrink-0",style:e.normalizeStyle({backgroundColor:i?.color})},null,4)):e.createCommentVNode("",!0),!l.optionTemplate&&l.optionHasIcon(i)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(l.iconWrapperClass),style:e.normalizeStyle(l.getIconColorStyle(i)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.resolveOptionIcon(i)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"truncate text-[#172b4d] overflow-hidden max-w-[200px] px-0.5 pl-1.5",title:l.getLabel(i)},[l.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:l.renderTemplate(i)},null,8,Sc)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(i.text),1)],64))],8,Vc)]),e.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border text-[#172b4d] hover:bg-[rgb(255,189,173)] hover:text-[rgb(222,53,11)] flex-shrink-0",onClick:e.withModifiers(c=>l.onRemoveSelected(i.id),["stop"])},[e.createVNode(e.unref(X.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,$c)]))),128)),e.createElementVNode("div",Ac,[!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]=i=>a.value=i),onFocus:s[1]||(s[1]=(...i)=>l.onInputFocus&&l.onInputFocus(...i)),onBlur:s[2]||(s[2]=(...i)=>l.onInputBlur&&l.onInputBlur(...i)),onKeydown:s[3]||(s[3]=(...i)=>l.onInputKeydown&&l.onInputKeydown(...i))},null,40,Nc)),[[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,Fc)):(e.openBlock(),e.createElementBlock("span",Dc,e.toDisplayString(l.selectedOption?.text),1))],10,Mc)):e.createCommentVNode("",!0),!l.isMulti&&!l.disabled&&l.search?(e.openBlock(),e.createElementBlock("div",Tc,[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]=i=>a.value=i),onFocus:s[5]||(s[5]=(...i)=>l.onInputFocus&&l.onInputFocus(...i)),onBlur:s[6]||(s[6]=(...i)=>l.onInputBlur&&l.onInputBlur(...i)),onKeydown:s[7]||(s[7]=(...i)=>l.onInputKeydown&&l.onInputKeydown(...i))},null,40,Lc),[[e.vModelText,a.value]])])):!l.isMulti&&l.disabled&&(!l.selectedOptionLabel||a.value!=="")?(e.openBlock(),e.createElementBlock("div",Ic,e.toDisplayString(l.placeholder),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Oc,[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((...i)=>l.onClearSelected&&l.onClearSelected(...i),["stop"]))},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,Pc)):e.createCommentVNode("",!0),l.showClear?(e.openBlock(),e.createElementBlock("div",Rc)):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((...i)=>l.onToggleSelect&&l.onToggleSelect(...i),["stop"])),title:l.isOpen?"Закрити список":"Відкрити список"},[e.createVNode(e.unref(X.ChevronDown),{class:"h-4 w-4"})],8,zc)])],42,_c))}}),Uc=["aria-disabled","onMousedown"],Hc={class:"leading-[19px]"},qc=["innerHTML"],Kc={key:1,class:"px-3 py-2 text-center text-gray-500"},Wc=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",Hc,[t.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:t.renderTemplate(r)},null,8,qc)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(r.text),1)],64))])],42,Uc))),128)):(e.openBlock(),e.createElementBlock("div",Kc," No options "))],4)],4)):e.createCommentVNode("",!0)]))}}),Gc={class:"flex justify-end items-center gap-x-2 py-3 px-4 border-t border-gray-200 w-full"},Yc=["onClick"],Xc=["disabled"],Zc="__autoMeta",br="w-[16px] h-[16px] flex items-center justify-center flex-shrink-0 text-current",go=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);Qe(n.style);const i=e.computed({get:()=>n.modelValue,set:H=>r("update:modelValue",H)});!i.value&&n.defaultValue&&(i.value=n.defaultValue);const c=e.ref(null),d=e.ref(null),g=e.ref(null),f=e.ref(null),p=e.ref(!1),m=e.ref(!1),h=e.ref(null),w=e.ref(-1),y=e.ref([]),C=e.ref(""),_=e.ref(null),B=H=>{d.value=H},$=H=>{_.value=H},j=H=>{f.value=H},Z=H=>{g.value=H},I=(H,ae)=>{y.value[ae]=H},V=e.ref({}),S=e.ref([]),x=e.computed(()=>{if(!S.value.length)return[];const H=ye.value,ae=new Map(H.map(fe=>[fe.id?.toString(),fe]));return S.value.map(fe=>ae.get(fe?.toString())).filter(fe=>!!fe)}),L=e.computed(()=>n.placeholder||"Select..."),U=e.computed(()=>re(h.value)),ne=e.computed(()=>l.value?!1:a.value?S.value.length>0:!!i.value),N=H=>a.value?S.value.some(ae=>ae?.toString()===H?.toString()):i.value?.toString()===H?.toString(),P=e.computed(()=>{let H=ye.value??[];if(!n.data&&C.value.trim()!==""){const ae=C.value.toLowerCase();H=H.filter(fe=>{const Ne=re(fe).toLowerCase(),ze=fe.text?.toLowerCase?.()||"";return Ne.includes(ae)||ze.includes(ae)})}if(a.value&&S.value.length){const ae=new Set(S.value.map(fe=>fe?.toString()));H=H.filter(fe=>!ae.has(fe.id?.toString()))}return H}),q=e.inject("values"),K=e.inject("field-props"),O=e.computed(()=>n.slot??n?.optionTemplate??""),Q=H=>_n(H,O.value),re=H=>Cn(H,O.value),T=e.computed(()=>wn(O.value)),F=H=>Jt(H),A=H=>!!(!T.value&&Nt(H)&&!F(H)),J=H=>{const ae=Nt(H);return ae?{color:ae}:void 0},se=H=>!!(!T.value&&(Zt(H)||F(H))),ee=(H,ae,fe)=>{if(!K)return!1;const Ne=K.value?.[H]??{},ze=(je,rt,wt)=>{if(!rt.length)return je;const[dt,...tt]=rt,Je={...je};if(!tt.length)return Je[dt]=wt,Je;const hn=typeof je[dt]=="object"&&je[dt]!==null?je[dt]:{};return Je[dt]=ze(hn,tt,wt),Je},He=ze(Ne,ae,fe);return K.value={...K.value||{},[H]:He},!0},he=H=>{if(!K||!n.name)return;const ae=K.value?.[n.name]??{};K.value={...K.value||{},[n.name]:{...ae,[Zc]:H}}},xe=H=>{if(!n.set)return;const ae=q?.value;!ae&&!K||Object.entries(n.set).forEach(([fe,Ne])=>{if(!fe)return;const ze=H?H[Ne]:null,He=fe.split(".").map(wt=>wt.trim()).filter(Boolean);if(!He.length)return;const[je,...rt]=He;rt.length&&ee(je,rt,ze??null)||ae&&(ae[je]=ze??null)})},{optionsList:ye,parentValue:$e,fetchOptions:Le,fetchOptionByValue:Oe,loadOptions:Me}=vn({props:n,formValues:q,watchParent:!1}),ie=H=>H==null?"":String(H),le=H=>{if(a.value){if(!S.value.length){ye.value=H;return}}else if(!h.value){ye.value=H;return}const ae=new Set(H.map(Ne=>ie(Ne.id)).filter(Boolean));if(a.value){const Ne=new Set(S.value.map(He=>ie(He)).filter(Boolean)),ze=(ye.value??[]).filter(He=>{const je=ie(He.id);return!je||!Ne.has(je)?!1:!ae.has(je)});ye.value=[...ze,...H];return}const fe=ie(h.value?.id);if(fe&&!ae.has(fe)){ye.value=[h.value,...H];return}ye.value=H},we=e.ref(0),Se=async H=>{const ae=++we.value,fe=await Le(H);return ae!==we.value?null:fe},Te=async()=>{if(n.data){const H=await Se(C.value);return H&&le(H),ye.value}return Me()},qe=async H=>{if(H==null||H==="")return null;const ae=ye.value?.find(fe=>fe?.id?.toString()===String(H));return ae||Oe(H)},Y=async H=>{const ae=new Set(ye.value.map(Ne=>Ne.id?.toString())),fe=H.filter(Ne=>!ae.has(Ne?.toString()));fe.length&&await fe.reduce(async(Ne,ze)=>{await Ne;const He=await qe(ze);He&&ye.value.push(He)},Promise.resolve())},te=()=>{if(!P.value.length){w.value=-1;return}let H=0;if(!a.value&&h.value){const ae=h.value.id?.toString(),fe=P.value.findIndex(Ne=>Ne.id?.toString()===ae);fe>=0&&(H=fe)}w.value=H,e.nextTick(()=>{z(y.value[H],g.value)})},oe=async()=>{l.value||(p.value=!0,await e.nextTick(()=>{_e()}),await Te(),await e.nextTick(()=>{_e(),_.value?.focus()}),te())},pe=()=>{p.value=!1,w.value=-1,e.nextTick(()=>{_.value?.blur()})},be=async H=>{if(l.value)return;(H!==void 0?H:!p.value)?await oe():pe()},Ae=async()=>{if(!l.value){if(p.value){pe();return}await oe()}},Fe=()=>{a.value?(S.value=[],i.value=[],r("change",[]),W(null,[])):(h.value=null,i.value=null,r("change",null),W(null,null)),xe(null),he(null),C.value="",pe(),e.nextTick(()=>{_.value?.focus()})},De=H=>{a.value&&(S.value=S.value.filter(ae=>ae?.toString()!==H?.toString()),i.value=[...S.value],r("change",i.value),W(null),e.nextTick(()=>_.value?.focus()))},W=(H,ae)=>{const fe=ae??(a.value?[...S.value]:H?.id??null);r("value-selected",{name:n.name,value:fe,option:H})},v=(H,ae="manual")=>{a.value?(N(H.id)||(S.value=[...S.value,H.id],i.value=[...S.value],r("change",i.value),W(H)),C.value="",e.nextTick(()=>{_.value?.focus(),w.value=Math.min(w.value,P.value.length-1)}),xe(null)):(h.value=H,i.value=H.id,r("change",i.value),W(H),C.value="",pe(),xe(H),ae==="parent-auto"&&he({source:ae,parentField:n.parent??null,parentValue:$e.value??null}))},M=H=>{if(N(H.id)){a.value||pe();return}v(H)},z=(H,ae)=>{if(!H||!ae)return;const fe=H.offsetTop,Ne=fe+H.offsetHeight,ze=ae.scrollTop,He=ze+ae.clientHeight;let je=ae.scrollTop;fe<ze?je=fe-80:Ne>He&&(je=Ne-ae.clientHeight+4);const rt=ae;rt.scrollTop=je},de=H=>{let ae=H.parentElement;for(;ae;){if(ae.classList.contains("ui-dialog__content"))return ae;const fe=window.getComputedStyle(ae),Ne=fe.overflow+fe.overflowY+fe.overflowX;if(Ne.includes("auto")||Ne.includes("scroll")||ae===document.body||ae===document.documentElement)return ae;ae=ae.parentElement}return document.body},_e=()=>{if(!d.value)return;const H=d.value.getBoundingClientRect(),ae=window.innerHeight||document.documentElement.clientHeight,fe=window.innerWidth||document.documentElement.clientWidth,Ne=8,ze=8,He=n.maxHeight||300,je=ae-H.bottom-ze-Ne,rt=H.top-ze-Ne,wt=je>=rt,dt=Math.max(fe-Ne*2,0);let{width:tt}=H;dt>0&&tt>dt&&(tt=dt);let{left:Je}=H;Je+tt+Ne>fe&&(Je=fe-tt-Ne),Je=Math.max(Je,Ne);const hn=Math.min(He,Math.max(wt?je:rt,50));V.value={position:"fixed",left:`${Je}px`,width:`${tt}px`,maxHeight:`${hn}px`,transform:wt?"none":"translateY(-100%)",top:wt?`${H.bottom+ze}px`:`${H.top-ze}px`}},Pe=async H=>{l.value||!p.value&&(H.key==="ArrowDown"||H.key==="ArrowUp")&&(H.preventDefault(),await oe())},Ie=H=>{if(!p.value)return;const{key:ae}=H;if(ae==="ArrowDown")H.preventDefault(),w.value+1<P.value.length&&(w.value+=1,z(y.value[w.value],g.value));else if(ae==="ArrowUp")H.preventDefault(),w.value>0&&(w.value-=1,z(y.value[w.value],g.value));else if(ae==="Enter"){H.preventDefault();const fe=P.value[w.value];fe&&v(fe),_.value?.blur()}else ae==="Escape"?(H.preventDefault(),pe()):ae==="Backspace"?a.value&&C.value===""&&S.value.length&&(S.value=S.value.slice(0,-1),i.value=[...S.value],r("change",i.value)):ae==="Home"?(w.value=0,z(y.value[0],g.value)):ae==="End"?(w.value=P.value.length-1,z(y.value[w.value],g.value)):ae==="Tab"&&pe()},Xe=()=>{l.value||(m.value=!0)},et=()=>{m.value=!1,C.value=""},ot=H=>{H.key==="Escape"&&p.value&&pe()},R=H=>{const ae=H.target;c.value?.contains(ae)||f.value?.contains(ae)||pe()},ue=H=>{p.value&&g.value&&!g.value.contains(H.target)&&_e()},Ze=()=>{p.value&&_e()},Vt=()=>{p.value&&_e()};async function gt(){if(a.value)Array.isArray(i.value)?S.value=[...i.value]:(S.value=i.value==null?[]:[i.value],i.value=[...S.value]),n.data&&S.value.length&&(await Y(S.value),await e.nextTick());else{if(Array.isArray(i.value)){const H=i.value[0]??null;i.value=H??null}i.value!=null&&i.value!==""?h.value=await qe(i.value):h.value=null,xe(h.value??null)}}e.watch(i,()=>{gt()}),e.onMounted(async()=>{if(addEventListener("keydown",ot),addEventListener("scroll",ue,!0),addEventListener("resize",Ze),document.addEventListener("click",R,!0),d.value&&de(d.value).addEventListener("scroll",Vt,!0),n.options?.length&&!n.data)ye.value=[...n.options];else if(n.data){const H=await Se("");H&&le(H)}await gt(),fn.value=!1}),e.onUnmounted(()=>{removeEventListener("keydown",ot),removeEventListener("scroll",ue,!0),removeEventListener("resize",Ze),document.removeEventListener("click",R,!0),d.value&&de(d.value).removeEventListener("scroll",Vt,!0)});const{isOpenAdd:Ue,addData:Lt,addSchema:Gt,addForm:Yt,addTitle:It,addOption:Xn,onAddValue:Zn}=yr({props:n,fetchOptionByValue:Oe,optionsList:ye,selectedOption:h,modelValue:i});function Jn(H,ae=200){let fe;return(...Ne)=>{fe&&clearTimeout(fe),fe=window.setTimeout(()=>H(...Ne),ae)}}const Do=Jn(async H=>{const ae=await Se(H);ae&&le(ae)},200);e.watch(C,H=>{n.data&&Do(H.trim())}),e.watch(()=>n.options,H=>{!n.data&&H?.length&&(ye.value=[...H],gt())},{immediate:!0});const fn=e.ref(!0);return e.watch($e,async()=>{if(n.data&&(fn.value||(a.value?(S.value=[],i.value=[],r("change",[])):(h.value=null,i.value=null,r("change",null))),await Te(),n.auto===1&&$e.value&&ye.value.length>0)){const H=ye.value[0];H&&v(H,"parent-auto")}}),(H,ae)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(ke.VsModal),{visible:e.unref(Ue),"onUpdate:visible":ae[2]||(ae[2]=fe=>e.isRef(Ue)?Ue.value=fe:null),class:"z-[1000]",title:e.unref(It),teleport:H.teleport},{footer:e.withCtx(({handleClose:fe})=>[e.createElementVNode("div",Gc,[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:fe}," Скасувати ",8,Yc),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:ae[1]||(ae[1]=(...Ne)=>e.unref(Xn)&&e.unref(Xn)(...Ne))}," Додати ")])]),default:e.withCtx(()=>[e.createVNode(pt,{schema:e.unref(Gt),modelValue:e.unref(Lt),"onUpdate:modelValue":ae[0]||(ae[0]=fe=>e.isRef(Lt)?Lt.value=fe:null),ref_key:"addForm",ref:Yt},null,8,["schema","modelValue"])]),_:1},8,["visible","title","teleport"]),e.createElementVNode("div",{class:"flex gap-1 w-full",ref_key:"selectRoot",ref:c,onClick:ae[5]||(ae[5]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass])},[ae[6]||(ae[6]=e.createElementVNode("span",{id:"react-select-live-region",class:"sr-only"},null,-1)),ae[7]||(ae[7]=e.createElementVNode("span",{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text",role:"log",class:"sr-only"},null,-1)),e.createVNode(jc,{keyWord:C.value,"onUpdate:keyWord":ae[3]||(ae[3]=fe=>C.value=fe),disabled:l.value,"is-open":p.value,"input-focus":m.value,"is-multi":a.value,"selected-options":x.value,"selected-ids":S.value,placeholder:L.value,search:s.value,"option-template":O.value,"icon-wrapper-class":br,"selected-option-label":U.value,"selected-option":h.value,"show-clear":ne.value,"set-trigger-ref":B,"set-input-ref":$,"should-show-color-dot":A,"option-has-icon":se,"get-icon-color-style":J,"resolve-option-icon":F,"render-template":Q,"get-label":re,"on-control-keydown":Pe,"on-control-click":Ae,"on-input-focus":Xe,"on-input-blur":et,"on-input-keydown":Ie,"on-remove-selected":De,"on-clear-selected":Fe,"on-toggle-select":be},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(Wc,{"is-open":p.value,"dropdown-style":V.value,"filtered-options-list":P.value,"selected-nav-index":w.value,"option-template":O.value,"icon-wrapper-class":br,"set-dropdown-ref":j,"set-list-ref":Z,"set-item-ref":I,"is-selected":N,"on-option-click":M,"should-show-color-dot":A,"option-has-icon":se,"get-icon-color-style":J,"resolve-option-icon":F,"render-template":Q},null,8,["is-open","dropdown-style","filtered-options-list","selected-nav-index","option-template"])],2),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:ae[4]||(ae[4]=(...fe)=>e.unref(Zn)&&e.unref(Zn)(...fe)),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"}),ae[8]||(ae[8]=e.createElementVNode("span",null,"Додати",-1))],8,Xc)):e.createCommentVNode("",!0)],512)],64))}}),[["__scopeId","data-v-49a64961"]]),yo=(o="")=>`${o}${Math.floor(Math.random()*1e4)}`,Jc=["disabled","aria-expanded"],Qc={class:"truncate"},ed={class:"py-2 px-4"},td={class:"block font-medium text-[13px] text-foreground"},nd={class:"truncate"},od={class:"p-1 border-t border-gray-200"},rd={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"},ld=["onClick"],ad=["checked"],sd={class:"shrink-0 size-3.5 flex justify-center items-center"},id={key:1,class:"shrink-0 size-2 block mx-auto rounded-full bg-secondary/60"},cd={class:"truncate"},dd={key:0,class:"px-3 py-2 text-xs text-stone-500"},Fn=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;Qe(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"),i=e.computed(()=>!!n.disabled),c=e.ref(null),d=e.ref(!1),g=e.ref(null),f=e.ref(null),p=e.ref(null),m=e.ref({}),h=`vs-input-inline-select-${yo()}`,w=e.computed(()=>n.placeholder||"Оберіть значення"),y=e.computed(()=>j(c.value)||n.placeholder||"Оберіть значення"),C=e.computed(()=>n.slot??""),_=e.computed(()=>wn(C.value)),B=e.computed(()=>n.teleport||"body"),$=/^#(?:[\da-fA-F]{3}|[\da-fA-F]{6}|[\da-fA-F]{8})$/,j=ee=>Cn(ee,C.value),Z=ee=>!!(!_.value&&Nt(ee)),I=e.computed(()=>{const ee=Nt(c.value).trim();return ee?$.test(ee)?`bg-[${ee}] border-[${ee}]`:`bg-${ee.toLowerCase()}-500 border-${ee.toLowerCase()}-500`:""}),{optionsList:V,parentValue:S,fetchOptions:x,fetchOptionByValue:L,loadOptions:U}=vn({props:n,formValues:l,watchParent:!1}),ne=(ee,he,xe)=>{if(!s)return!1;const ye=s.value?.[ee]??{},$e=(Oe,Me,ie)=>{if(!Me.length)return Oe;const[le,...we]=Me,Se={...Oe};if(!we.length)return Se[le]=ie,Se;const Te=typeof Oe[le]=="object"&&Oe[le]!==null?Oe[le]:{};return Se[le]=$e(Te,we,ie),Se},Le=$e(ye,he,xe);return s.value={...s.value||{},[ee]:Le},!0},N=ee=>{if(!n.set)return;const he=l?.value;!he&&!s||Object.entries(n.set).forEach(([xe,ye])=>{if(!xe)return;const $e=ee?ee[ye]:null,Le=xe.split(".").map(ie=>ie.trim()).filter(Boolean);if(!Le.length)return;const[Oe,...Me]=Le;Me.length&&ne(Oe,Me,$e??null)||he&&(he[Oe]=$e??null)})},P=ee=>a.value?.toString?.()===ee?.toString?.(),q=()=>{if(!f.value||typeof window>"u")return;const ee=f.value.getBoundingClientRect(),he=8,xe=8,ye=window.innerHeight||document.documentElement.clientHeight,$e=window.innerWidth||document.documentElement.clientWidth,Le=p.value?.offsetHeight||260,Oe=Math.max(ee.width,176),Me=Math.max($e-he*2,120),ie=Math.min(Oe,Me);let le=ee.left;le+ie+he>$e&&(le=$e-ie-he),le=Math.max(le,he);const we=ye-ee.bottom-xe-he,Se=ee.top-xe-he,Te=we<Math.min(Le,260)&&Se>we,qe=Math.max(120,Math.min(320,Te?Se:we));m.value={position:"fixed",left:`${le}px`,top:Te?`${ee.top-xe}px`:`${ee.bottom+xe}px`,transform:Te?"translateY(-100%)":"none",width:`${ie}px`,maxHeight:`${qe}px`}},K=async()=>{if(n.data){V.value=await x("");return}await U()},O=async()=>{if(a.value==null||a.value===""){c.value=null,N(null);return}const ee=V.value.find(he=>he.id?.toString()===String(a.value));if(ee){c.value=ee,N(ee);return}c.value=await L(a.value),N(c.value??null)},Q=async()=>{i.value||(d.value=!0,await e.nextTick(),q(),await K(),await e.nextTick(),q())},re=()=>{d.value=!1},T=async()=>{if(d.value){re();return}await Q()},F=ee=>{r("value-selected",{name:n.name,value:ee?.id??null,option:ee})},A=ee=>{c.value=ee,a.value=ee.id,r("change",ee.id),F(ee),N(ee),re()},J=ee=>{const he=ee.target;g.value?.contains(he)||p.value?.contains(he)||re()},se=()=>{d.value&&q()};return e.watch(()=>n.options,ee=>{n.data||(V.value=ee?[...ee]:[],O())},{immediate:!0,deep:!0}),e.watch(a,()=>{O()}),e.watch(S,async()=>{n.data&&(await K(),c.value&&!V.value.some(ee=>ee.id?.toString()===c.value?.id?.toString())&&(c.value=null,a.value=null,r("change",null),F(null),N(null)))}),e.onMounted(async()=>{document.addEventListener("click",J,!0),window.addEventListener("resize",se),window.addEventListener("scroll",se,!0),await K(),await O()}),e.onUnmounted(()=>{document.removeEventListener("click",J,!0),window.removeEventListener("resize",se),window.removeEventListener("scroll",se,!0)}),(ee,he)=>(e.openBlock(),e.createElementBlock("div",{class:"relative inline-flex w-full max-w-full",ref_key:"rootRef",ref:g,onClick:he[0]||(he[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("button",{ref_key:"triggerRef",ref:f,type:"button",disabled:i.value,"aria-expanded":d.value?"true":"false","aria-haspopup":"menu",class:e.normalizeClass(["py-1.5 px-2.5 inline-flex items-center gap-2 text-nowrap text-xs sm:text-[13px] rounded-lg focus:outline-hidden disabled:opacity-50 disabled:pointer-events-none max-w-full border",I.value?`${I.value} text-white`:"bg-secondary text-secondary-foreground hover:bg-secondary-hover focus:bg-secondary-focus border-gray-300 hover:border-gray-400"]),onClick:T},[e.createElementVNode("span",Qc,e.toDisplayString(y.value),1)],10,Jc),(e.openBlock(),e.createBlock(e.Teleport,{to:B.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",ed,[e.createElementVNode("span",td,[e.createElementVNode("span",nd,e.toDisplayString(w.value),1)])]),e.createElementVNode("div",od,[e.createElementVNode("div",rd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(V),xe=>(e.openBlock(),e.createElementBlock("label",{key:xe.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(ye=>A(xe),["prevent"])},[e.createElementVNode("input",{type:"radio",class:"hidden",name:h,checked:P(xe.id),tabindex:"-1"},null,8,ad),e.createElementVNode("span",sd,[Z(xe)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"shrink-0 size-2 block mx-auto rounded-full",style:e.normalizeStyle({backgroundColor:xe.color})},null,4)):(e.openBlock(),e.createElementBlock("span",id))]),e.createElementVNode("span",cd,e.toDisplayString(j(xe)),1),e.createVNode(e.unref(X.Check),{class:e.normalizeClass(["shrink-0 size-3.5 ms-auto transition-opacity",P(xe.id)?"opacity-100":"opacity-0"])},null,8,["class"])],8,ld))),128))]),e.unref(V).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",dd,"Немає варіантів"))])],4)):e.createCommentVNode("",!0)],8,["to"]))],512))}}),ud=["placeholder","disabled"],kr=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}=Qe(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(i,c)=>e.withDirectives((e.openBlock(),e.createElementBlock("textarea",{"onUpdate:modelValue":c[0]||(c[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,ud)),[[e.vModelText,r.value]])}}),wr=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(()=>D0)),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(i,c)=>(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",i.customClass]),style:e.normalizeStyle(a.value?{pointerEvents:"none",opacity:.6}:{})},[e.createVNode(e.unref(t),e.mergeProps({modelValue:r.value,"onUpdate:modelValue":c[0]||(c[0]=d=>r.value=d),placeholder:l.value},s.value),null,16,["modelValue","placeholder"])],6))}}),pd={},md={viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function fd(o,t){return e.openBlock(),e.createElementBlock("svg",md,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 hd=Be(pd,[["render",fd]]),gd={class:"bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden flex flex-col"},yd={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"},bd={key:0,class:"relative flex-1 min-w-0"},kd={class:"flex md:flex-nowrap flex-wrap items-center md:justify-end justify-start gap-2 shrink-0"},wd={class:"w-full overflow-x-auto"},xd={class:"w-full min-w-[640px] table-auto divide-y divide-gray-200"},vd={class:"bg-gray-50"},_d={class:"border-b border-gray-200"},Cd={class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 w-12 text-center"},Ed=["onClick"],Bd={key:0,class:"text-gray-400"},Vd={key:0,colspan:"100%",class:"text-center"},Sd={class:"w-full"},$d={class:"p-5 min-h-[200px] flex flex-col justify-center items-center text-center"},Ad=["data-row-index","onDragstart","onDragover","onDrop"],Nd=["onPointerdown"],Md={class:"flex items-center justify-center"},Fd=["innerHTML"],Dd={key:0,class:"flex items-center gap-3 text-sm text-gray-700"},Td={key:0},Ld=["src"],Id={key:1,class:"rounded-md max-w-[45px] w-[45px] max-h-[45px] h-[45px] bg-gray-200 flex items-center justify-center"},Od={key:1,class:"flex items-center justify-center"},Pd={key:2,class:"text-sm font-medium text-gray-900"},Rd={class:"px-4 py-3 text-right whitespace-nowrap"},zd={class:"flex items-center justify-end gap-2"},jd=["onClick"],Ud=["onClick"],Hd={class:"vs-form__head mr-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},xr=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=Y=>t.actions===void 0?!0:t.actions.includes(Y),a=["search","import","export","add"],l=e.computed(()=>a.some(Y=>r(Y))),s=e.useModel(o,"modelValue"),i=e.ref({}),c=e.ref(""),d=e.ref(null),g=e.ref("asc"),f=e.computed(()=>{const Y=s.value??[],te=c.value?Y.filter(be=>p.value?.some(Ae=>{const Fe=Ae.key||Ae.name;if(!Fe)return!1;const De=be[Fe];return De?Array.isArray(De)?De.join(", ").toLowerCase().includes(c.value.toLowerCase()):String(De).toLowerCase().includes(c.value.toLowerCase()):!1})):Y;if(!d.value)return te;const oe=d.value,pe=[...te].sort((be,Ae)=>{const Fe=$e(be?.[oe]),De=$e(Ae?.[oe]);return typeof Fe=="number"&&typeof De=="number"?Fe-De:String(Fe).localeCompare(String(De))});return g.value==="asc"?pe:pe.reverse()}),p=e.computed(()=>(t.colModel??[]).filter(Y=>!Y.tableHidden)),m=e.ref(null),h=e.ref(null),w=e.ref(null);function y(Y){return Y.pointerType==="touch"||Y.pointerType==="pen"}function C(Y,te){const pe=document.elementFromPoint(Y,te)?.closest?.("[data-row-index]")??null;if(!pe)return null;const be=pe.getAttribute("data-row-index");if(be==null)return null;const Ae=Number.parseInt(be,10);return Number.isNaN(Ae)?null:Ae}function _(Y,te){y(Y)&&(Y.preventDefault(),Y.currentTarget.setPointerCapture(Y.pointerId),m.value=te,h.value=te)}function B(Y){if(m.value===null||!y(Y))return;Y.preventDefault();const te=C(Y.clientX,Y.clientY);te!==null&&(h.value=te)}function $(Y){if(m.value===null||!y(Y))return;Y.preventDefault();const te=C(Y.clientX,Y.clientY);V(te??m.value);try{Y.currentTarget.releasePointerCapture(Y.pointerId)}catch{}}function j(Y){if(y(Y)){m.value=null,h.value=null;try{Y.currentTarget.releasePointerCapture(Y.pointerId)}catch{}}}const Z=Y=>{m.value=Y},I=Y=>{h.value=Y},V=Y=>{if(m.value===null||m.value===Y){m.value=null,h.value=null;return}const te=[...s.value],[oe]=te.splice(m.value,1);te.splice(Y,0,oe),s.value=te,m.value=null,h.value=null},S=()=>{w.value&&w.value.click()},x=Y=>{const te=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".ico",".tiff",".tif"],oe=Y.toLowerCase();return te.some(pe=>oe.endsWith(pe))},L=Y=>{const oe=Y.target.files?.[0];if(!oe)return;const pe=new FileReader;pe.onload=be=>{try{const Ae=be.target?.result;if(typeof Ae=="string"){const Fe=JSON.parse(Ae);Array.isArray(Fe)&&s.value.push(...Fe)}}catch(Ae){console.error("Error parsing file:",Ae)}},pe.readAsText(oe)},U=()=>{const Y=JSON.stringify(s.value,null,2),te=new Blob([Y],{type:"application/json"}),oe=URL.createObjectURL(te),pe=document.createElement("a");pe.href=oe,pe.download="data.json",pe.click(),URL.revokeObjectURL(oe)},ne=new Set(["autocomplete","select","radio","checkbox","combobox"]),N=new Map,P=(Y,te)=>{const oe=`/api/suggest/${Y}`,pe=oe.includes("?")?"&":"?",be=te?`&val=${te}`:"";return`${oe}${pe}json=1${be}`},q=Y=>Y==null||Y===""?null:typeof Y=="object"?Y?.id!==void 0&&Y.id!==null&&Y.id!==""?Y.id:null:Y,K=Y=>{const te=new Set;return Array.isArray(s.value)&&s.value.forEach(oe=>{const pe=oe?.[Y];if(pe==null||pe==="")return;if(Array.isArray(pe)){pe.forEach(Ae=>{const Fe=q(Ae);Fe!==null&&te.add(Fe)});return}const be=q(pe);be!==null&&te.add(be)}),te},O=async()=>{if(!t.colModel?.length)return;const Y=t.colModel.filter(te=>te.data&&ne.has(te.type?.toLowerCase()||""));Y.length&&await Promise.all(Y.map(async te=>{const oe=te.key||te.name;if(!oe)return;const pe=K(oe),be=Array.from(pe).map(De=>String(De)).sort(),Ae=be.join(",");if(!be.length||N.get(oe)===Ae)return;N.set(oe,Ae);const Fe=be.map(encodeURIComponent).join(",");try{const W=await(await fetch(P(te.data,Fe))).json();i.value[oe]=W?.data??W}catch(De){console.error("Failed to fetch column values",De)}}))};e.watch([()=>t.colModel,()=>s.value],()=>{O()},{immediate:!0,deep:!0});const Q=e.ref(""),re=e.ref(!1);let T="edit",F=0;const A=Y=>(Y?.format||Y?.type||"").toString().toLowerCase(),J=e.computed(()=>(t.colModel?.filter(te=>A(te)!=="slot")??[]).map(te=>{const oe=te.key||te.name;return oe?{...te,name:oe,key:oe}:te})),se=e.ref({}),ee=e.ref({}),he=Y=>typeof Y!="string"?!1:!!n[Y],xe=(Y,te)=>te?te.split(".").reduce((oe,pe)=>oe==null?oe:oe[pe.trim()],Y):Y,ye=(Y,te)=>typeof Y!="string"?"":Y.replace(/{{\s*([^}]+)\s*}}/g,(oe,pe)=>{const be=xe(te,pe.trim());return be??""}),$e=Y=>{if(Y==null||Y==="")return"";if(typeof Y=="number")return Y;if(typeof Y=="boolean")return Y?1:0;if(typeof Y=="string")return Y.toLowerCase();if(Array.isArray(Y))return Y.map(te=>$e(te)).join(", ");if(typeof Y=="object"){if(Y.text!==void 0)return String(Y.text).toLowerCase();if(Y.label!==void 0)return String(Y.label).toLowerCase();if(Y.id!==void 0)return String(Y.id).toLowerCase()}return String(Y).toLowerCase()},Le=Y=>{const te=Y.key||Y.name;if(te){if(d.value===te){g.value=g.value==="asc"?"desc":"asc";return}d.value=te,g.value="asc"}};async function Oe(){Q.value="Додати",re.value=!0,T="add",se.value={}}function Me(Y,te){if(!Y?.length)return null;const oe=typeof te=="object"?te?.id:te;return oe==null||oe===""?null:Y.find(pe=>pe?.id?.toString()===oe.toString())?.text??null}function ie(Y){return Y==null||Y===""?"-":Array.isArray(Y)?Y.map(te=>typeof te=="object"?te?.text??te?.id??"-":te).join(", "):typeof Y=="object"?Y?.text??Y?.id??"-":Y}function le(Y,te){const oe=te.key||te.name,pe=Y?.[oe],be=i.value[oe];if(!pe)return"-";if(Array.isArray(pe)){const Fe=pe.map(De=>Me(be,De)).filter(Boolean);return Fe.length?Fe.join(", "):ie(pe)}const Ae=Me(be,pe);return Ae||ie(pe)}async function we(Y,te){Q.value="Редагувати",re.value=!0,T="edit",F=te,se.value={...Y}}function Se(){const Y=ee.value.validate();if(Y){ke.notify({type:"warning",title:"Помилка валідації",message:Object.entries(Y).map(([te,oe])=>`${te}: ${oe}`).join(`
2
+ `)});return}T==="add"?Array.isArray(s.value)?s.value=[...s.value,se.value]:s.value=[se.value]:s.value=s.value.map((te,oe)=>oe===F?se.value:te),re.value=!1}function Te(Y){s.value=s.value.filter((te,oe)=>oe!==Y)}function qe(){re.value=!1}return(Y,te)=>(e.openBlock(),e.createElementBlock("div",gd,[l.value?(e.openBlock(),e.createElementBlock("div",yd,[r("search")?(e.openBlock(),e.createElementBlock("div",bd,[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":te[0]||(te[0]=oe=>c.value=oe),placeholder:"Пошук",class:"w-full rounded-md border border-gray-200 bg-white pl-10 pr-3 py-2 text-sm text-gray-900 placeholder:text-gray-400 focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-100"},null,512),[[e.vModelText,c.value]])])):e.createCommentVNode("",!0),e.createElementVNode("div",kd,[r("import")?(e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"fileInput",ref:w,onChange:L,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"}),te[4]||(te[4]=e.createTextVNode(" Імпорт ",-1))])):e.createCommentVNode("",!0),r("export")?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:U,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"}),te[5]||(te[5]=e.createTextVNode(" Експорт ",-1))])):e.createCommentVNode("",!0),r("add")?(e.openBlock(),e.createElementBlock("button",{key:3,onClick:Oe,type:"button",class:"inline-flex items-center gap-2 rounded-md bg-blue-500 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-blue-600 transition-colors"},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4 text-white"}),te[6]||(te[6]=e.createTextVNode(" Додати ",-1))])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),e.createElementVNode("div",wd,[e.createElementVNode("table",xd,[e.createElementVNode("thead",vd,[e.createElementVNode("tr",_d,[e.createElementVNode("th",Cd,[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,oe=>(e.openBlock(),e.createElementBlock("th",{key:oe.key,class:"px-4 py-3 text-left text-xs font-semibold text-gray-900"},[e.createElementVNode("button",{type:"button",onClick:pe=>Le(oe),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(oe.ua||oe.label),1),d.value===(oe.key||oe.name)?(e.openBlock(),e.createElementBlock("span",Bd,e.toDisplayString(g.value==="asc"?"▲":"▼"),1)):e.createCommentVNode("",!0)],8,Ed)]))),128)),te[7]||(te[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":!h.value}])},[f.value.length===0?(e.openBlock(),e.createElementBlock("td",Vd,[e.createElementVNode("div",Sd,[e.createElementVNode("div",$d,[e.createVNode(hd,{class:"w-48 mx-auto"}),te[8]||(te[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(f.value,(oe,pe)=>(e.openBlock(),e.createElementBlock("tr",{key:oe.id,"data-row-index":pe,class:e.normalizeClass(["border-b transition-colors hover:bg-gray-50 cursor-move text-sm text-gray-700",{"opacity-50":m.value===pe,"border-t-2 border-b-2 border-blue-500 bg-blue-50 dark:bg-blue-900/20":h.value===pe}]),draggable:"true",onDragstart:be=>Z(pe),onDragover:e.withModifiers(be=>I(pe),["prevent"]),onDrop:be=>V(pe)},[e.createElementVNode("td",{class:"px-4 py-3 text-center align-middle touch-none select-none",onPointerdown:be=>_(be,pe),onPointermove:B,onPointerup:$,onPointercancel:j},[e.createElementVNode("div",Md,[e.createVNode(e.unref(X.GripVertical),{class:"mx-auto h-4 w-4 text-slate-400 dark:text-slate-500"})])],40,Nd),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,be=>(e.openBlock(),e.createElementBlock("td",{key:be.key,class:"px-4 py-3 align-middle"},[A(be)==="slot"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[he(be.slot)?e.renderSlot(Y.$slots,be.slot,{key:0,row:oe,value:oe[be.key],column:be}):(e.openBlock(),e.createElementBlock("div",{key:1,class:"text-sm text-gray-900",innerHTML:ye(be.slot,oe)},null,8,Fd))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[A(be)==="file"?(e.openBlock(),e.createElementBlock("div",Dd,[x(le(oe,be))?(e.openBlock(),e.createElementBlock("div",Td,[e.createElementVNode("img",{src:le(oe,be),alt:"alt",width:"45",class:"rounded-md max-w-[45px] h-[45px] object-cover"},null,8,Ld)])):(e.openBlock(),e.createElementBlock("div",Id,[e.createVNode(e.unref(X.FileText),{class:"h-4 w-4 min-w-4"})]))])):A(be)==="color"?(e.openBlock(),e.createElementBlock("div",Od,[e.createElementVNode("span",{class:"inline-flex h-6 w-6 rounded border border-gray-200",style:e.normalizeStyle({backgroundColor:le(oe,be)||"#ffffff"})},null,4)])):(e.openBlock(),e.createElementBlock("div",Pd,e.toDisplayString(le(oe,be)),1))],64))]))),128)),e.createElementVNode("td",Rd,[e.createElementVNode("div",zd,[e.createElementVNode("button",{onClick:be=>we(oe,pe),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,jd),e.createElementVNode("button",{onClick:be=>Te(pe),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,Ud)])])],42,Ad))),128))],2)])]),e.createVNode(e.unref(ke.VsModal),{visible:re.value,title:Q.value,size:"lg",onClose:qe,teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(pt,{schema:J.value,"allow-id-field":"",values:se.value,"onUpdate:values":te[1]||(te[1]=oe=>se.value=oe),form:ee.value,"onUpdate:form":te[2]||(te[2]=oe=>ee.value=oe)},null,8,["schema","values","form"]),e.createElementVNode("div",Hd,[e.createElementVNode("button",{type:"button",onClick:te[3]||(te[3]=oe=>re.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"])]))}}),qd={},Kd={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 Wd(o,t){return e.openBlock(),e.createElementBlock("svg",Kd,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 Gd=Be(qd,[["render",Wd]]),Yd={},Xd={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 Zd(o,t){return e.openBlock(),e.createElementBlock("svg",Xd,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 Jd=Be(Yd,[["render",Zd]]),Qd={},eu={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 tu(o,t){return e.openBlock(),e.createElementBlock("svg",eu,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 nu=Be(Qd,[["render",tu]]);function ou(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,i=Math.floor((1-Math.log(Math.tan(s)+1/Math.cos(s))/Math.PI)/2*a);return{z:r,x:l,y:i}}function ru(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 _r(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 lu(o,t){if(o?.url){const n=ru(o.url,t);if(n)return n;const r=_r(o.url,t);if(r)return r}if(o?.preview){const n=_r(o.preview,t);return n||o.preview}}const au=["title","aria-expanded"],su=["src"],iu={class:"map-layers__header"},cu={class:"map-layers__body"},du={key:0,class:"map-layers__section"},uu={class:"map-layers__grid map-layers__grid--4"},pu=["disabled","title","onClick"],mu={class:"map-layers__thumb"},fu=["src"],hu={class:"map-layers__option-label"},gu={key:1,class:"map-layers__section"},yu={class:"map-layers__grid map-layers__grid--4"},bu=["title","onClick"],ku={class:"map-layers__thumb"},wu=["src"],xu={class:"map-layers__option-label"},vu={key:2,class:"map-layers__section map-layers__section--vector"},_u={class:"map-layers__vector-list"},Cu=["checked","disabled","onChange"],Dn=.8,Eu=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*Dn,l=400*Dn,s=400*Dn,i=320*Dn,c=e.ref(null),d=e.ref(null),g=e.ref(null),f=e.ref(!1),p=e.ref({}),m=e.computed(()=>Object.keys(n.basemaps||{}).length>0),h=e.computed(()=>Object.keys(n.tileOverlays||{}).length>0),w=e.computed(()=>n.vectorOverlays??[]),y=e.computed(()=>w.value.length>0),C=e.computed(()=>m.value||h.value||y.value),_=e.computed(()=>n.basemaps?.[n.activeBaseKey]?.name||n.activeBaseKey||"Шари"),B=e.computed(()=>j(n.basemaps)),$=e.computed(()=>j(n.tileOverlays||{}));function j(O){const Q=n.previewTile;return Q?Object.fromEntries(Object.entries(O).map(([re,T])=>[String(re),lu(T,Q)??T.preview??""])):{}}function Z(O){return B.value[O]||n.basemaps?.[O]?.preview||""}function I(O){return $.value[O]||n.tileOverlays?.[O]?.preview||""}const V=e.computed(()=>Z(n.activeBaseKey));function S(O){return Array.isArray(n.activeTileOverlayKeys)&&n.activeTileOverlayKeys.includes(O)}function x(){const O=d.value;if(!O)return;const Q=O.getBoundingClientRect(),re=Math.min(l,window.innerWidth-16);let T=Q.left;T+re>window.innerWidth-8&&(T=window.innerWidth-re-8),T=Math.max(8,T);const F=Q.top-a-8,A=n.compact?i:s,J=Math.min(A,Math.max(96,F));p.value={position:"fixed",left:`${T}px`,bottom:`${window.innerHeight-Q.top+a}px`,width:`${re}px`,maxHeight:`${J}px`,zIndex:"10050"}}async function L(){f.value=!f.value,f.value&&(await e.nextTick(),x())}function U(){f.value=!1}function ne(O){O!==n.activeBaseKey&&r("onLayerChange",O)}function N(O){n.disabled||r("onOverlayToggle",O)}function P(O){n.disabled||r("onVectorOverlayToggle",O)}function q(O){if(!f.value)return;const Q=O.target;c.value?.contains(Q)||g.value?.contains(Q)||U()}function K(O){O.key==="Escape"&&U()}return e.watch(f,async O=>{O&&(await e.nextTick(),x())}),e.onMounted(()=>{document.addEventListener("click",q),document.addEventListener("keydown",K),window.addEventListener("resize",x),window.addEventListener("scroll",x,!0)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",q),document.removeEventListener("keydown",K),window.removeEventListener("resize",x),window.removeEventListener("scroll",x,!0)}),(O,Q)=>C.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"rootRef",ref:c,class:e.normalizeClass(["map-layers relative",{"map-layers--compact":O.compact}])},[e.createElementVNode("button",{ref_key:"triggerRef",ref:d,type:"button",class:"map-layers__trigger",title:_.value,"aria-haspopup":"dialog","aria-expanded":f.value,onClick:e.withModifiers(L,["stop"])},[V.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:V.value,alt:"",class:"map-layers__trigger-img"},null,8,su)):e.createCommentVNode("",!0)],8,au),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"map-layers-panel"},{default:e.withCtx(()=>[f.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"panelRef",ref:g,class:"map-layers__panel",style:e.normalizeStyle(p.value),role:"dialog","aria-label":"Шари карти"},[e.createElementVNode("header",iu,[Q[0]||(Q[0]=e.createElementVNode("h3",{class:"map-layers__title"},"Шари карти",-1)),e.createElementVNode("button",{type:"button",class:"map-layers__close","aria-label":"Закрити",onClick:U},[e.createVNode(e.unref(X.X),{class:"map-layers__close-icon"})])]),e.createElementVNode("div",cu,[h.value?(e.openBlock(),e.createElementBlock("section",du,[Q[1]||(Q[1]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Додаткові шари",-1)),e.createElementVNode("div",uu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(O.tileOverlays,(re,T)=>(e.openBlock(),e.createElementBlock("button",{key:`tile-${T}`,type:"button",class:e.normalizeClass(["map-layers__option",{"map-layers__option--active":S(String(T))}]),disabled:O.disabled,title:re.name||String(T),onClick:F=>N(String(T))},[e.createElementVNode("span",mu,[e.createElementVNode("img",{src:I(String(T)),alt:""},null,8,fu)]),e.createElementVNode("span",hu,e.toDisplayString(re.name||T),1)],10,pu))),128))])])):e.createCommentVNode("",!0),m.value?(e.openBlock(),e.createElementBlock("section",gu,[Q[2]||(Q[2]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Базові шари",-1)),e.createElementVNode("div",yu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(O.basemaps,(re,T)=>(e.openBlock(),e.createElementBlock("button",{key:`base-${T}`,type:"button",class:e.normalizeClass(["map-layers__option",{"map-layers__option--active":O.activeBaseKey===String(T)}]),title:re.name||String(T),onClick:F=>ne(String(T))},[e.createElementVNode("span",ku,[e.createElementVNode("img",{src:Z(String(T)),alt:""},null,8,wu)]),e.createElementVNode("span",xu,e.toDisplayString(re.name||T),1)],10,bu))),128))])])):e.createCommentVNode("",!0),y.value?(e.openBlock(),e.createElementBlock("section",vu,[Q[3]||(Q[3]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Дані",-1)),e.createElementVNode("div",_u,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value,re=>(e.openBlock(),e.createElementBlock("label",{key:re.id,class:"map-layers__vector-item"},[e.createElementVNode("input",{type:"checkbox",class:"map-layers__checkbox",checked:re.visible,disabled:O.disabled,onChange:T=>P(re.id)},null,40,Cu),e.createElementVNode("span",null,e.toDisplayString(re.label),1)]))),128))])])):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))],2)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-c1206d48"]]),Rt=1e-10,Tn=/([+-]?\d{1,3})\s*[°º˚]\s*(\d{1,2})\s*['’′`]\s*(\d{1,2}(?:\.\d+)?)\s*["”″]\s*([NSEW])/gi,Bu=/^[+-]?\d+(?:\.\d+)?$/;function Vu(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,g)=>{const f=g+1,p=t==="decimal"?Su(d,f,n):Er(d,f,n);if(!p.ok){a.push(...p.errors);return}const m=l[l.length-1];if(m&&Vr(m,p.point)){a.push({line:f,message:"Послідовні точки не повинні дублюватися."});return}l.push(p.point)}),a.length)return{ok:!1,errors:a};if(new Set(l.map(Au)).size<3)return{ok:!1,errors:[{line:0,message:"Полігон повинен містити мінімум 3 унікальні точки."}]};const i=[...l];let c=!1;return Vr(i[0],i[i.length-1])||(i.push(i[0]),c=!0),Nu(i)?{ok:!1,errors:[{line:0,message:"Полігон має самоперетин."}]}:{ok:!0,ring:i,wasClosedAutomatically:c}}function Su(o,t,n){return Cr(o,"decimal",n,t)}function Cr(o,t,n,r=1){return t==="decimal"?$u(o,r,n):Er(o,r,n)}function $u(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=>Bu.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 i=n==="lat-lon"?l:s,c=n==="lat-lon"?s:l;return(i<-90||i>90)&&r.push({line:t,message:"Широта поза діапазоном (-90..90)."}),(c<-180||c>180)&&r.push({line:t,message:"Довгота поза діапазоном (-180..180)."}),r.length?{ok:!1,errors:r}:{ok:!0,point:[c,i]}}function Er(o,t,n){Tn.lastIndex=0;const r=[...o.matchAll(Tn)];if(r.length<2)return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати DMS-координати."}]};if(r.length>2)return{ok:!1,errors:[{line:t,message:"У рядку дозволено лише одну пару координат."}]};if(Tn.lastIndex=0,o.replace(Tn," ").replace(/[\s,;]+/g,"").trim().length)return{ok:!1,errors:[{line:t,message:"У рядку виявлено зайві символи або значення."}]};const l=Br(r[0],t,n==="lat-lon"?"lat":"lon"),s=Br(r[1],t,n==="lat-lon"?"lon":"lat"),i=[];if(l.ok||i.push(l.error),s.ok||i.push(s.error),i.length)return{ok:!1,errors:i};const c=n==="lat-lon"?l.value:s.value;return{ok:!0,point:[n==="lat-lon"?s.value:l.value,c]}}function Br(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),g=n==="lat"?90:180;if(d>g)return{ok:!1,error:{line:t,message:n==="lat"?"Градуси широти повинні бути в діапазоні 0..90.":"Градуси довготи повинні бути в діапазоні 0..180."}};if(d===g&&(a!==0||l!==0))return{ok:!1,error:{line:t,message:n==="lat"?"Для 90° широти хвилини й секунди мають бути 0.":"Для 180° довготи хвилини й секунди мають бути 0."}};const f=d+a/60+l/3600;return{ok:!0,value:s==="S"||s==="W"?-f:f}}function Au(o){return`${o[0].toFixed(12)}:${o[1].toFixed(12)}`}function Vr(o,t){return Math.abs(o[0]-t[0])<Rt&&Math.abs(o[1]-t[1])<Rt}function Nu(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(Mu(n,r,l,s))return!0}}return!1}function Mu(o,t,n,r){const a=Ln(o,t,n),l=Ln(o,t,r),s=Ln(n,r,o),i=Ln(n,r,t);return!!(a!==l&&s!==i||a===0&&In(o,n,t)||l===0&&In(o,r,t)||s===0&&In(n,o,r)||i===0&&In(n,t,r))}function Ln(o,t,n){const r=(t[1]-o[1])*(n[0]-t[0])-(t[0]-o[0])*(n[1]-t[1]);return Math.abs(r)<Rt?0:r>0?1:2}function In(o,t,n){return t[0]<=Math.max(o[0],n[0])+Rt&&t[0]+Rt>=Math.min(o[0],n[0])&&t[1]<=Math.max(o[1],n[1])+Rt&&t[1]+Rt>=Math.min(o[1],n[1])}const Fu=["title"],Du={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"},Tu=["onClick"],Lu=["placeholder"],Iu={class:"absolute inset-y-0 right-2 flex items-center gap-1"},Ou={class:"flex items-center justify-between gap-2 px-3 py-2 border-b border-gray-100"},Pu={class:"text-xs font-semibold uppercase tracking-wide text-gray-500"},Ru={class:"max-h-[260px] overflow-auto"},zu={key:0,class:"divide-y divide-gray-100"},ju=["onClick"],Uu={key:1,class:"px-3 py-3 text-xs text-gray-500"},Sr="formMapSearchAddressHistory",Hu=12,qu="https://geo.rv.ua/api-user/dzk.api",Ku="https://nominatim.openstreetmap.org/search",Wu=Be(e.defineComponent({__name:"map-search",props:{config:{}},emits:["goToCoordinates"],setup(o,{emit:t}){const n={mounted(W,v){if(typeof document>"u")return;let M=null;const z=8,de=()=>{const Pe=String(v?.value??"");if(!Pe)return;M=document.createElement("div"),M.textContent=Pe,Object.assign(M.style,{position:"absolute",background:"#333",color:"#fff",padding:"4px 8px",borderRadius:"4px",fontSize:"12px",whiteSpace:"nowrap",pointerEvents:"none",zIndex:"9999"}),document.body.appendChild(M);const Ie=W.getBoundingClientRect();M.style.left=`${Ie.right+window.scrollX+z}px`,M.style.top=`${Ie.top+window.scrollY+(Ie.height-M.offsetHeight)/2}px`},_e=()=>{M?.parentNode&&M.parentNode.removeChild(M),M=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 v=W.tooltipRightHandlers;v&&(W.removeEventListener("mouseenter",v.show),W.removeEventListener("mouseleave",v.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 i(){const v=l?.appContext.config.globalProperties?.$settings?.map?.searchViewbox;if(v)return Array.isArray(v)?v.join(","):String(v);const z=s()?.map?.searchViewbox;if(z)return Array.isArray(z)?z.join(","):String(z)}function c(){const v=l?.appContext.config.globalProperties?.$settings?.map?.addressSuggest;if(typeof v=="string"&&v.trim())return v.trim();const z=s()?.map?.addressSuggest;if(typeof z=="string"&&z.trim())return z.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,v=W?.map?.cadastreSuggest??W?.map?.parcelSuggest??W?.map?.parcelSearch;if(typeof v=="string"&&v.trim())return v.trim();const M=s(),z=M?.map?.cadastreSuggest??M?.map?.parcelSuggest??M?.map?.parcelSearch;if(typeof z=="string"&&z.trim())return z.trim()}const g=!!c(),f=!!i(),p=e.computed(()=>{const W=["nominatim","xy","parcel"];return g&&W.unshift("address"),f?W:W.filter(v=>v!=="nominatim")}),m=e.computed(()=>{const W=p.value,v=r.config?.tools?.filter(M=>W.includes(M));return v&&v.length?v:W}),h=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 y=e.ref(""),C=e.ref(!1),_=e.ref(null),B=e.ref(null),$=e.ref(null),j=e.ref(null),Z=e.ref([]),I=e.ref(null),V=e.ref(!1),S=e.ref([]),x=e.computed(()=>(w.value==="address"||w.value==="nominatim")&&V.value),L=e.computed(()=>r.config?.addressDebounceMs??1e3);let U=null;const ne=e.ref(!1),N=e.computed(()=>y.value.trim().length>0?Z.value:S.value),P=e.computed(()=>y.value.trim().length?`Знайдено ${Z.value.length}`:"Історія пошуку"),q=e.computed(()=>y.value.trim().length?"Нічого не знайдено":"Історія порожня");function K(){if(typeof window>"u")return[];try{const W=window.localStorage?.getItem?.(Sr);if(!W)return[];const v=JSON.parse(W);return Array.isArray(v)?v:[]}catch{return[]}}function O(W){typeof window>"u"||window.localStorage?.setItem?.(Sr,JSON.stringify(W))}function Q(W){const M=[W,...S.value.filter(z=>z.id!==W.id)].slice(0,10);S.value=M,O(M)}const re=e.reactive({position:"absolute",left:"0px",top:"0px",width:"100%",display:"none"});function T(){if(!j.value)return;const W=j.value.getBoundingClientRect(),v=$.value?.getBoundingClientRect(),M=v?.width??W.width,z=(v?.left??W.left)+window.scrollX,de=W.bottom+window.scrollY+Hu;re.left=`${z}px`,re.top=`${de}px`,re.width=`${M}px`,re.display="block"}const F=()=>{x.value&&T()};function A(){U&&(clearTimeout(U),U=null)}e.watch(w,()=>{y.value="",C.value=!1,Z.value=[],V.value=!1,A(),ne.value=!1}),e.watch(x,W=>{W?e.nextTick(()=>{T()}):re.display="none"}),e.watch(y,W=>{if(w.value!=="address"&&w.value!=="nominatim"){Z.value=[],A();return}if(!W.trim()){Z.value=[],V.value=S.value.length>0,A();return}A(),V.value=!0,U=window.setTimeout(()=>{oe(W).catch(v=>{const M=v?.message||"Помилка пошуку адреси";ke.notify({type:"error",title:"Пошук адреси",message:M})})},L.value)});function J(W){const v=[];B.value&&v.push(B.value),W instanceof HTMLElement&&v.push(W),_.value?.querySelectorAll("li")?.forEach(z=>{v.push(z)}),v.forEach(z=>{z.dispatchEvent(new MouseEvent("mouseleave",{bubbles:!0}))})}function se(W){C.value&&J(W.target),C.value=!C.value}function ee(W,v){J(v?.target),w.value=W}function he(){y.value="",Z.value=[],V.value=!1,ne.value=!1}function xe(W){const v=W.target;if(C.value){const M=_.value;M&&!M.contains(v)&&(J(v),C.value=!1)}if(x.value){const M=I.value,z=j.value;M&&!M.contains(v)&&(!z||!z.contains(v))&&(V.value=!1)}}e.onMounted(()=>{S.value=K(),window.addEventListener("click",xe,!0),window.addEventListener("scroll",F,!0),window.addEventListener("resize",F)}),e.onBeforeUnmount(()=>{window.removeEventListener("click",xe,!0),window.removeEventListener("scroll",F,!0),window.removeEventListener("resize",F),A()});function ye(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 Le(W){const v=Cr(W.trim(),"dms","lat-lon");if(v.ok){const[R,ue]=v.point;return{lat:ue,lng:R}}const M=W.replace(/[,]+/g," ").trim();if(!M)return null;const z=M.split(/\s+/).filter(Boolean);if(z.length<2)return null;const de=z.slice(0,2).map(Number);if(!de.every(R=>Number.isFinite(R)))return null;let[_e,Pe]=de,Ie=_e,Xe=Pe;const et=R=>Math.abs(R)<=90,ot=R=>Math.abs(R)<=180;if(!et(Ie)||!ot(Xe))if(et(Xe)&&ot(Ie))Ie=Pe,Xe=_e;else return null;return{lat:Ie,lng:Xe}}function Oe(W){const v=W?.result||W?.data||W;return(Array.isArray(v)?v:v?[v]:[]).map((z,de)=>{const _e=z?.geom_centroid,Pe=Array.isArray(_e?.coordinates)?_e.coordinates:null;if(!Pe||Pe.length<2)return null;const Ie=Number(Pe[0]),Xe=Number(Pe[1]);return!Number.isFinite(Xe)||!Number.isFinite(Ie)?null:{id:String(z?.parcel_id??z?.cad_num??de),title:z?.cadnum||z?.cad_num||"Земельна ділянка",lat:Xe,lng:Ie}}).filter(z=>!!z)}function Me(W){return(Array.isArray(W?.features)?W.features:[]).map((M,z)=>{const de=M?.geometry?.coordinates,_e=Number(de?.[0]),Pe=Number(de?.[1]);if(!Number.isFinite(Pe)||!Number.isFinite(_e))return null;const Ie=M?.properties||{},Xe=Ie?.geocoding?.label||Ie?.display_name||Ie?.label||"Адреса";return{id:String(Ie?.geocoding?.place_id||Ie?.place_id||z),title:Xe,lat:Pe,lng:_e}}).filter(M=>!!M)}function ie(W){return Number.isFinite(W.lat)&&Number.isFinite(W.lng)}function le(W){if(W==null||typeof W=="string"&&!W.trim())return null;const v=Number(W);return Number.isFinite(v)?v:null}function we(W){const v=le(W.lng)??le(W.lon)??le(W.longitude)??le(W.x),M=le(W.lat)??le(W.latitude)??le(W.y);if(v!=null&&M!=null)return{lat:M,lng:v};const z=W?.geometry?.coordinates??W?.geom_centroid?.coordinates??W?.centroid?.coordinates??W?.geojson?.geometry?.coordinates??W?.geom?.coordinates;if(Array.isArray(z)&&z.length>=2){const de=le(z[0]),_e=le(z[1]);if(de!=null&&_e!=null)return{lat:_e,lng:de}}return null}function Se(W){return(Array.isArray(W?.data)?W.data:[]).map((M,z)=>{const de=we(M),_e=String(M.text??M.title??M.label??M.name??M.address??M.display_name??M.id??"Адреса"),Pe=String(M.id??M.code??M.value??z);return de?{id:Pe,title:_e,...de}:{id:Pe,title:_e}}).filter(M=>!!M?.title)}function Te(W){const v=d()||qu;if(v.includes(":id"))return v.replace(":id",encodeURIComponent(W));if(v.includes(":name"))return v.replace(":name",encodeURIComponent(W));try{const M=new URL(v,window.location.origin),z=r.config?.parcelQueryParam?.trim()||"cad_num";return M.searchParams.set(z,W),M.toString()}catch{return v}}function qe(W){const v=c();if(!v)return null;if(v.includes(":name"))return v.replace(":name",encodeURIComponent(W));try{const M=new URL(v,window.location.origin);return W.trim()&&M.searchParams.set("q",W),M.toString()}catch{return v}}async function Y(W){const v=qe(W);if(!v)return[];const M=await fetch(v);if(!M.ok)throw new Error(`HTTP ${M.status}`);const z=await M.json();return Se(z)}async function te(W){const v=new URL(Ku);v.searchParams.set("format","geojson"),v.searchParams.set("q",W),v.searchParams.set("addressdetails","1"),v.searchParams.set("bounded","1");const M=i();M&&v.searchParams.set("viewbox",M);const z=await fetch(v.toString());if(!z.ok)throw new Error(`HTTP ${z.status}`);const de=await z.json();return Me(de)}async function oe(W){if(Z.value=[],A(),w.value==="address"){if(!c()){ke.notify({type:"warning",title:"Пошук адреси",message:"Не налаштовано addressSuggest"});return}const z=await Y(W);if(!z.length){ke.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}Z.value=z;return}const v=await te(W);if(!v.length){ke.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}Z.value=v}async function pe(W){if(ie(W)){Fe(W),Q(W);return}ke.notify({type:"warning",title:"Пошук адреси",message:"Геометрія для обраної адреси відсутня"})}function be(){w.value!=="address"&&w.value!=="nominatim"||(V.value=!0,e.nextTick(()=>{T()}))}function Ae(W){const M=W.replace(/\s+/g,"").split(":");if(M.length!==4)return!1;const z=[10,2,3,4];return M.every((de,_e)=>de.length===z[_e]&&/^\d+$/.test(de))}function Fe(W){a("goToCoordinates",[W.lat,W.lng]),ne.value=!0}async function De(){const W=y.value.trim();if(W){if(w.value==="xy"){const v=Le(W);if(!v){ke.notify({type:"warning",title:"Пошук координат",message:"Використайте `lat lon` або DMS у форматі `50°27'00\"N 30°31'24\"E`."});return}Fe(v);return}if(w.value==="address"||w.value==="nominatim"){try{await oe(W)}catch(v){const M=v?.message||"Помилка пошуку адреси";ke.notify({type:"error",title:"Пошук адреси",message:M})}return}try{if(!Ae(W)){ke.notify({type:"warning",title:"Пошук кадастру",message:"Кадастровий номер має формат ХХХХХХХХХХ:ХХ:ХХХ:ХХХХ"});return}const v=await fetch(Te(W));if(!v.ok)throw new Error(`HTTP ${v.status}`);const M=await v.json(),z=Oe(M);if(!z.length)ke.notify({type:"warning",title:"Пошук",message:"Не знайдено результатів"});else{const de=z.find(ie);if(!de){ke.notify({type:"warning",title:"Пошук",message:"Геометрія ділянки відсутня"});return}Fe(de)}}catch(v){const M=v?.message||"Помилка пошуку";ke.notify({type:"error",title:"Пошук",message:M})}}}return(W,v)=>(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(De,["prevent"])},[m.value.length>1?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:_,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:se},[e.withDirectives((e.openBlock(),e.createElementBlock("span",{ref_key:"selectedToolLabelRef",ref:B,class:"block w-full truncate",title:ye(w.value)},[e.createTextVNode(e.toDisplayString(ye(w.value)),1)],8,Fu)),[[n,$e(w.value)]]),(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(["w-4 h-4 text-gray-500 transition-transform",{"rotate-180":C.value}]),viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},v[3]||(v[3]=[e.createElementVNode("path",{d:"M6 9l6 6 6-6",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]),2))]),C.value?(e.openBlock(),e.createElementBlock("div",Du,[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,M=>e.withDirectives((e.openBlock(),e.createElementBlock("li",{key:M,class:"px-3 py-2 cursor-pointer hover:bg-gray-100 text-gray-900",onClick:z=>ee(M,z)},[e.createTextVNode(e.toDisplayString(ye(M)),1)],8,Tu)),[[n,$e(M)]])),128))])])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"searchWrapperRef",ref:j,class:"relative flex-1 min-w-[140px]"},[w.value==="parcel"?(e.openBlock(),e.createBlock(xn,{key:0,modelValue:y.value,"onUpdate:modelValue":v[0]||(v[0]=M=>y.value=M),mask:"0000000000:00:000:0000",class:e.normalizeClass(["vs-input !h-[34px] transition-all border block w-full border-gray-200 rounded-md focus:border-blue-100 border-solid py-1.5 pl-3 text-sm",ne.value?"!pr-14":"!pr-8"])},null,8,["modelValue","class"])):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,"onUpdate:modelValue":v[1]||(v[1]=M=>y.value=M),placeholder:h.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",ne.value?"!pr-14":"!pr-8"]),onFocus:be},null,42,Lu)),[[e.vModelText,y.value,void 0,{trim:!0}]]),e.createElementVNode("div",Iu,[ne.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},v[4]||(v[4]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)]))):e.createCommentVNode("",!0),v[5]||(v[5]=e.createElementVNode("button",{type:"submit",class:"flex items-center text-gray-400 hover:text-gray-600","aria-label":"Пошук"},[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m21 21-4.35-4.35m0 0A7.5 7.5 0 1 0 5 5a7.5 7.5 0 0 0 11.65 11.65Z"})])],-1))]),x.value?(e.openBlock(),e.createBlock(e.Teleport,{key:2,to:"body"},[e.createElementVNode("div",{ref_key:"addressResultsRef",ref:I,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(re)},[e.createElementVNode("div",Ou,[e.createElementVNode("span",Pu,e.toDisplayString(P.value),1),e.createElementVNode("button",{type:"button",class:"text-gray-400 hover:text-gray-600","aria-label":"Закрити",onClick:v[2]||(v[2]=M=>V.value=!1)}," ✕ ")]),e.createElementVNode("div",Ru,[N.value.length?(e.openBlock(),e.createElementBlock("ul",zu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,M=>(e.openBlock(),e.createElementBlock("li",{key:M.id,class:"px-3 py-2 cursor-pointer hover:bg-gray-50",onClick:z=>pe(M)},e.toDisplayString(M.title),9,ju))),128))])):(e.openBlock(),e.createElementBlock("div",Uu,e.toDisplayString(q.value),1))])],4)])):e.createCommentVNode("",!0)],512)],32)],512))}}),[["__scopeId","data-v-4d528cf7"]]),Gu={class:"pt-1 border-t border-gray-100"},Yu={class:"space-y-1"},Xu=e.defineComponent({__name:"AddCoordinates",emits:["submit","cancel"],setup(o,{emit:t}){const n=t,r=e.ref(null),a=e.ref(null),l=(c,d,g)=>Math.min(Math.max(c,d),g),s=()=>{if(r.value===null||a.value===null||!Number.isFinite(r.value)||!Number.isFinite(a.value))return;const c=l(r.value,-90,90),d=l(a.value,-180,180);n("submit",{lat:c,lng:d}),r.value=null,a.value=null},i=()=>{r.value=null,a.value=null,n("cancel")};return(c,d)=>(e.openBlock(),e.createElementBlock("div",Gu,[d[2]||(d[2]=e.createElementVNode("p",{class:"text-xs text-gray-600 mb-1"},"Додати точку за координатами:",-1)),e.createElementVNode("div",Yu,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[0]||(d[0]=g=>r.value=g),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]=g=>a.value=g),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:i}," Скасувати ")])])]))}}),Zu=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))]))}}),Ju=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))]))}}),Qu=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))]))}}),ep=new Intl.NumberFormat("uk-UA",{minimumFractionDigits:2,maximumFractionDigits:2});function zt(o){return ep.format(o)}function $r(o){return o>=1e3?`${zt(o/1e3)} км`:`${zt(o)} м`}const tp={class:"flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"},np={key:0,class:"flex-1 flex gap-1"},op={key:1,class:"flex-1 font-mono text-gray-700"},rp=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),i=e.ref(n.coords.lng);e.watch(()=>n.coords,p=>{s.value=p.lat,i.value=p.lng},{deep:!0,immediate:!0});const c=(p,m,h)=>Math.min(Math.max(p,m),h),d=()=>{l.value=!0},g=()=>{if(!Number.isFinite(s.value)||!Number.isFinite(i.value))return;const p=c(s.value,-90,90),m=c(i.value,-180,180);r("update",{id:n.id,coords:{lat:p,lng:m}}),l.value=!1},f=()=>{r("delete",n.id)};return(p,m)=>(e.openBlock(),e.createElementBlock("div",tp,[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",np,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":m[0]||(m[0]=h=>s.value=h),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]=h=>i.value=h),type:"number",step:"0.0001",min:"-180",max:"180",class:"flex-1 px-1.5 py-0.5 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Довгота"},null,512),[[e.vModelText,i.value,void 0,{number:!0}]]),e.createElementVNode("button",{class:"px-1.5 py-0.5 bg-emerald-500 text-white rounded hover:bg-emerald-600 text-xs",type:"button",onClick:g}," ✓ ")])):(e.openBlock(),e.createElementBlock("span",op,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:f}," ✕ ")]))}}),lp={class:"ruler-control px-3 py-2.5 space-y-2"},ap={type:"button",class:"ruler-row w-full flex items-center gap-2 cursor-pointer group text-left"},sp={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"},ip={class:"text-sm font-semibold text-slate-700"},cp={class:"ruler-row"},dp={type:"button",class:"w-full flex items-center gap-2 cursor-pointer group text-left"},up={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"},pp={class:"inline-flex rounded-md overflow-hidden border border-gray-200 bg-gray-100"},mp=["onClick"],fp={class:"flex items-center gap-2 mt-0.5 pl-7"},hp={key:0,class:"text-base font-semibold text-green-600"},gp={key:1,class:"text-xs text-gray-400"},yp={class:"ruler-row flex items-center gap-2 cursor-pointer"},bp={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"},kp={class:"text-xs font-medium text-gray-600 flex-1"},wp={key:0,class:"pt-1.5 border-t border-gray-100 max-h-32 overflow-y-auto space-y-1"},xp=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=(h,w)=>{const y=S=>S*Math.PI/180,C=y(w.lat-h.lat),_=y(w.lng-h.lng),B=y(h.lat),$=y(w.lat),j=Math.sin(C/2),Z=Math.sin(_/2);return 6371e3*(2*Math.asin(Math.sqrt(j*j+Math.cos(B)*Math.cos($)*Z*Z)))},i=e.computed(()=>{if(t.points.length<2)return 0;let h=0;for(let w=1;w<t.points.length;w+=1)h+=s(t.points[w-1].coords,t.points[w].coords);return t.isShapeClosed&&t.points.length>=2&&(h+=s(t.points[t.points.length-1].coords,t.points[0].coords)),h}),c=e.computed(()=>i.value>=1e3?`${zt(i.value/1e3)} км`:`${zt(i.value)} м`);function d(h){if(h.length<3)return 0;const w=h[0].lat,y=h[0].lng,C=(B,$)=>{const j=(B-w)*110574;return{x:($-y)*111320*Math.cos(w*Math.PI/180),y:j}};let _=0;for(let B=0;B<h.length;B++){const $=(B+1)%h.length,j=C(h[B].lat,h[B].lng),Z=C(h[$].lat,h[$].lng);_+=j.x*Z.y-j.y*Z.x}return Math.abs(_)*.5}const g=e.computed(()=>{if(!t.isShapeClosed||t.points.length<3)return 0;const h=t.points.map(w=>w.coords);return d(h)}),f=e.computed(()=>g.value>0),p=e.computed(()=>{const h=g.value;if(h===0)return"—";if(r.value==="km2"){const y=h/1e6;return`${zt(y)} км²`}if(r.value==="ha"){const y=h/1e4;return`${zt(y)} га`}const w=h>=1?Math.round(h):h;return`${zt(w)} м²`}),m=e.computed(()=>{const h=t.points.length;return h===1?"1 точка":h>=2&&h<=4?`${h} точки`:`${h} точок`});return e.watch(()=>t.points.length,()=>{t.points.length===0&&(n.value=!1)}),(h,w)=>(e.openBlock(),e.createElementBlock("div",lp,[e.createElementVNode("button",ap,[e.createElementVNode("span",sp,[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",ip,e.toDisplayString(c.value),1)]),e.createElementVNode("div",cp,[e.createElementVNode("button",dp,[e.createElementVNode("span",up,[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",pp,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(a,(y,C)=>e.createElementVNode("button",{key:y.id,type:"button",class:e.normalizeClass(["px-2.5 py-1 text-xs font-medium transition-colors border-r border-gray-200 last:border-r-0",C===0&&"rounded-l-md",C===a.length-1&&"rounded-r-md",r.value===y.id?"bg-white text-green-600 font-semibold shadow-sm":"text-gray-600 hover:bg-gray-50"]),onClick:e.withModifiers(_=>r.value=y.id,["stop"])},e.toDisplayString(y.label),11,mp)),64))])]),e.createElementVNode("div",fp,[f.value?(e.openBlock(),e.createElementBlock("span",hp,e.toDisplayString(p.value),1)):(e.openBlock(),e.createElementBlock("span",gp,"—"))])]),e.createElementVNode("div",yp,[e.createElementVNode("span",bp,[e.createVNode(e.unref(X.Info),{size:12,"stroke-width":2.5})]),e.createElementVNode("span",kp,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",wp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.points,(y,C)=>(e.openBlock(),e.createBlock(rp,{key:y.id,id:y.id,index:C+1,coords:y.coords,onUpdate:w[0]||(w[0]=_=>h.$emit("update-point",_)),onDelete:_=>h.$emit("delete-point",y.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"},_p={class:"flex items-start gap-2"},Cp=e.defineComponent({__name:"InfoHint",setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",vp,[e.createElementVNode("div",_p,[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))])]))}}),Ep={class:"space-y-1.5"},Bp={class:"space-y-1 max-h-40 overflow-y-auto"},Vp={class:"text-gray-700"},Sp={class:"font-semibold text-slate-800"},$p=e.defineComponent({__name:"ToPointList",props:{points:{},isShapeClosed:{type:Boolean}},setup(o){const t=o;function n(l,s){const i=m=>m*Math.PI/180,c=i(s.lat-l.lat),d=i(s.lng-l.lng),g=i(l.lat),f=i(s.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(c/2)**2+Math.cos(g)*Math.cos(f)*Math.sin(d/2)**2)))}function r(l){return $r(l)}const a=e.computed(()=>{const l=[],s=t.points;if(s.length<2)return l;for(let i=0;i<s.length;i++){const c=i===s.length-1&&t.isShapeClosed?0:i+1;if(c>=s.length)break;const d=n(s[i].coords,s[c].coords);l.push({from:i+1,to:c+1,label:r(d)})}return l});return(l,s)=>(e.openBlock(),e.createElementBlock("div",Ep,[s[0]||(s[0]=e.createElementVNode("p",{class:"text-xs font-medium text-gray-600 mb-1.5"},"Відстань між точками:",-1)),e.createElementVNode("div",Bp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(i,c)=>(e.openBlock(),e.createElementBlock("div",{key:c,class:"flex items-center justify-between text-xs py-1 px-2 rounded bg-gray-50"},[e.createElementVNode("span",Vp,"Точка "+e.toDisplayString(i.from)+" → Точка "+e.toDisplayString(i.to),1),e.createElementVNode("span",Sp,e.toDisplayString(i.label),1)]))),128))])]))}}),Ap={class:"ruler-panel-wrap absolute bottom-12 right-4 z-[1001] animate-slide-up"},Np={class:"bg-white rounded-xl shadow-2xl border border-gray-200 overflow-hidden w-72"},Mp={class:"bg-gradient-to-r from-blue-400 to-blue-500 px-3 py-2 flex items-center justify-between"},Fp={class:"flex items-center gap-2"},Dp={class:"w-6 h-6 bg-white/20 rounded-lg flex items-center justify-center"},Tp={class:"flex border-b border-gray-200"},Lp={key:1,class:"px-3 py-2.5"},Ip={key:1,class:"text-xs text-gray-500"},Op={class:"px-2.5 py-1.5 bg-gray-50 border-t border-gray-200 space-y-1.5"},Pp={class:"flex gap-1.5"},Rp=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),i=e.ref(!1),c=e.ref("general");function d(x){c.value=x,r("tab-change",x)}e.onMounted(()=>{r("tab-change",c.value)});const g=e.computed(()=>a.value.length>=3&&!i.value);let f=1;const p=()=>a.value.map(x=>({id:x.id,coords:{...x.coords}})),m=()=>{a.value.length<3&&i.value&&(i.value=!1,r("shape-closed-change",!1)),r("points-change",p())},h=()=>{const x=f;return f+=1,x},w=x=>{a.value=[...a.value,{id:h(),coords:{lat:x.lat,lng:x.lng}}],m()},y=({id:x,coords:L})=>{const U=a.value.findIndex(N=>N.id===x);if(U===-1)return;const ne=[...a.value];ne[U]={id:x,coords:{...L}},a.value=ne,m()},C=x=>{a.value=a.value.filter(L=>L.id!==x),m()},_=()=>{a.value=[],i.value&&(i.value=!1,r("shape-closed-change",!1)),m()},B=x=>{y(x)},$=x=>{C(x)},j=()=>{s.value=!0,r("add-request")},Z=x=>{w(x),s.value=!1},I=()=>{s.value=!1},V=()=>{g.value&&(i.value=!0,r("complete"),r("shape-closed-change",!0))},S=()=>{_(),s.value=!1,r("close")};return t({addPoint:w,clearPoints:_}),(x,L)=>(e.openBlock(),e.createElementBlock("div",Ap,[e.createElementVNode("div",Np,[e.createElementVNode("div",Mp,[e.createElementVNode("div",Fp,[e.createElementVNode("div",Dp,[e.createVNode(e.unref(X.Ruler),{size:14,"stroke-width":2,class:"text-white"})]),L[2]||(L[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",Tp,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors",c.value==="general"?"text-blue-600 border-b-2 border-blue-500 bg-blue-50/50":"text-gray-500 hover:text-gray-700"]),onClick:L[0]||(L[0]=U=>d("general"))}," Загальна ",2),e.createElementVNode("button",{type:"button",class:e.normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors",c.value==="topoint"?"text-blue-600 border-b-2 border-blue-500 bg-blue-50/50":"text-gray-500 hover:text-gray-700"]),onClick:L[1]||(L[1]=U=>d("topoint"))}," До точки ",2)]),c.value==="general"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[l.value?(e.openBlock(),e.createBlock(xp,{key:1,points:a.value,"is-shape-closed":i.value,onUpdatePoint:B,onDeletePoint:$},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createBlock(Cp,{key:0}))],64)):(e.openBlock(),e.createElementBlock("div",Lp,[l.value?(e.openBlock(),e.createBlock($p,{key:0,points:a.value,"is-shape-closed":i.value},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createElementBlock("p",Ip,"Додайте точки на карті, щоб бачити відстані між ними."))])),e.createElementVNode("div",Op,[e.createElementVNode("div",Pp,[s.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(Zu,{key:0,onClick:j})),g.value?(e.openBlock(),e.createBlock(Qu,{key:1,onClick:V})):e.createCommentVNode("",!0)]),s.value?(e.openBlock(),e.createBlock(Xu,{key:0,onSubmit:Z,onCancel:I})):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createBlock(Ju,{key:1,onClick:_})):e.createCommentVNode("",!0)])])]))}}),lt="ruler-points",Ct="ruler-line",Et="ruler-polygon",Bt="ruler-segments",zp=e.defineComponent({__name:"RulerLayer",props:{map:{},points:{},isShapeClosed:{type:Boolean},labelMode:{}},setup(o){function t(h,w){const y=Z=>Z*Math.PI/180,C=y(w.lat-h.lat),_=y(w.lng-h.lng),B=y(h.lat),$=y(w.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(C/2)**2+Math.cos(B)*Math.cos($)*Math.sin(_/2)**2)))}function n(h){return $r(h)}const r=o;function a(){return{type:"FeatureCollection",features:[]}}function l(h,w,y){const C=y??"general",_=[];let B=0;_.push(0);for(let $=1;$<h.length;$++)B+=t(h[$-1].coords,h[$].coords),_.push(B);return w&&h.length>=2&&(B+=t(h[h.length-1].coords,h[0].coords)),{type:"FeatureCollection",features:h.map(($,j)=>{const Z=C==="general"?j===0?"0":n(_[j]):j===0?"0":n(t(h[j-1].coords,h[j].coords));return{type:"Feature",geometry:{type:"Point",coordinates:[$.coords.lng,$.coords.lat]},properties:{id:$.id,index:j+1,label:Z}}})}}function s(h,w){if(h.length<2)return a();const y=[];for(let C=0;C<h.length;C++){const _=C===h.length-1&&w?0:C+1;if(_>=h.length)break;const B=h[C].coords,$=h[_].coords,j=t(B,$);y.push({type:"Feature",geometry:{type:"LineString",coordinates:[[B.lng,B.lat],[$.lng,$.lat]]},properties:{distance:n(j)}})}return{type:"FeatureCollection",features:y}}function i(h,w){if(h.length<2)return a();const y=h.map(C=>[C.coords.lng,C.coords.lat]);return w&&y.push(y[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"LineString",coordinates:y},properties:{}}]}}function c(h){if(h.length<3)return a();const w=h.map(y=>[y.coords.lng,y.coords.lat]);return w.push(w[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"Polygon",coordinates:[w]},properties:{}}]}}let d=!1;function g(h){h.getSource(lt)||(h.addSource(lt,{type:"geojson",data:a()}),h.addLayer({id:`${lt}-circle`,type:"circle",source:lt,paint:{"circle-radius":5,"circle-color":"#1e293b","circle-stroke-width":2,"circle-stroke-color":"#ffffff"}}),h.addLayer({id:`${lt}-labels`,type:"symbol",source:lt,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}})),h.getSource(Bt)||(h.addSource(Bt,{type:"geojson",data:a()}),h.addLayer({id:`${Bt}-labels`,type:"symbol",source:Bt,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}})),h.getSource(Ct)||(h.addSource(Ct,{type:"geojson",data:a()}),h.addLayer({id:`${Ct}-layer`,type:"line",source:Ct,paint:{"line-color":"#3b82f6","line-width":2}})),h.getSource(Et)||(h.addSource(Et,{type:"geojson",data:a()}),h.addLayer({id:`${Et}-layer`,type:"fill",source:Et,paint:{"fill-color":"#93c5fd","fill-opacity":.25}})),d=!0}function f(h){if(h){try{h.getLayer(`${Et}-layer`)&&h.removeLayer(`${Et}-layer`),h.getSource(Et)&&h.removeSource(Et),h.getLayer(`${Ct}-layer`)&&h.removeLayer(`${Ct}-layer`),h.getSource(Ct)&&h.removeSource(Ct),h.getLayer(`${Bt}-labels`)&&h.removeLayer(`${Bt}-labels`),h.getSource(Bt)&&h.removeSource(Bt),h.getLayer(`${lt}-labels`)&&h.removeLayer(`${lt}-labels`),h.getLayer(`${lt}-circle`)&&h.removeLayer(`${lt}-circle`),h.getSource(lt)&&h.removeSource(lt)}catch{}d=!1}}function p(h){if(!h)return;const w=h.getSource(lt),y=h.getSource(Ct),C=h.getSource(Et),_=h.getSource(Bt),B=r.points,$=r.labelMode??"general";w&&w.setData(l(B,r.isShapeClosed,$)),y&&y.setData(i(B,r.isShapeClosed)),C&&C.setData(c(B)),_&&_.setData($==="topoint"?s(B,r.isShapeClosed):a())}function m(){const h=r.map;h&&(d||g(h),p(h))}return e.watch(()=>[r.points,r.isShapeClosed,r.labelMode],()=>m(),{deep:!0,immediate:!0}),e.watch(()=>r.map,()=>m(),{immediate:!0}),e.onBeforeUnmount(()=>{f(r.map)}),(h,w)=>null}});function jp(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?i():(t.value=!0,o.onActivate?.())}function i(){t.value=!1,n.value=[],r.value=!1,l.value?.clearPoints(),o.onDeactivate?.()}function c(m){n.value=m}function d(m){a.value=m}function g(m){r.value=m}function f(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:i,onRulerPointsChange:c,onRulerTabChange:d,onRulerShapeClosedChange:g,handleRulerMapClick:f}}const bo="vs-safe-raster",on=new ArrayBuffer(0);let ko=!1;function Up(o){const t=`${bo}://`;return typeof o!="string"||!o.startsWith(t)?o:o.slice(t.length)}function Hp(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 qp(o,t){try{const n=await fetch(o,{signal:t});if(!n.ok||n.status===204)return on;const r=await n.arrayBuffer();return!r.byteLength||!Hp(r)?on:r}catch{return on}}function Kp(o){ko||!o?.addProtocol||(ko=!0,o.addProtocol(bo,(t,n)=>{const r=Up(String(t?.url??""));if(!r)return n(null,{data:on}),{cancel:()=>{}};const a=new AbortController;return qp(r,a.signal).then(l=>n(null,{data:l})).catch(()=>n(null,{data:on})),{cancel:()=>a.abort()}}))}function Wp(o){const t=typeof o=="string"?o.trim():"";if(!t)return t;const n=`${bo}://`;return t.startsWith(n)?t:`${n}${t}`}function Gp(o,t){const n=typeof o=="string"?o.trim():"";return n?t&&ko?[Wp(n)]:[n]:[]}function wo(o,t,n){const r={type:"raster",tiles:Gp(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 Yp(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 Xp={class:"vs-map-body"},Zp={key:0,class:"absolute top-2 left-2 z-[1000] w-[calc(100%-16px)] sm:w-[320px]"},Jp={key:1,class:"form-geom__panel flex items-center gap-1 mt-1"},Qp={class:"flex items-center gap-1"},em=["disabled"],tm={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"},nm=["disabled"],om=["disabled"],rm={class:"mt-4 flex justify-end gap-2"},lm=["disabled"],am={class:"vs-map-controls vs-map-controls--tr"},sm={class:"vs-map-toolbar"},im=["disabled"],cm=["disabled"],dm=["disabled"],um=["disabled"],pm={key:1,class:"vs-map-toolbar__divider"},mm=["title"],fm={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"},hm={class:"space-y-0.5"},gm={class:"text-gray-500"},ym={class:"text-gray-900 text-right break-all"},bm={class:"absolute left-2 bottom-2 z-[1000]"},km={key:0,class:"vs-map-status"},wm={class:"form-geom__feature vs-map-status__inner"},xm={class:"vs-map-status__type"},vm={class:"vs-map-status__values"},_m=["onClick","disabled"],Cm={key:1,class:"vs-map-status__chip"},Em={key:2,class:"vs-map-status__sep"},Bm={key:1,class:"vs-map-status__chip"},Vm={class:"vs-map-status__meta"},Sm={class:"vs-map-status__coords"},$m={key:0,class:"vs-map-status__value"},Am={key:1,class:"vs-map-status__value"},Nm={key:0,class:"vs-map-status__area"},Mm={class:"vs-map-status__value"},Fm={class:"vs-map-status__actions"},Dm=["disabled"],Tm=["disabled"],Lm=11,Im=15,Om=.7,Pm="vs-tile-ov-src-",Rm="vs-tile-ov-raster-",On="__vs_form_maplibre_loader__",zm="https://demotiles.maplibre.org/font/{fontstack}/{range}.pbf",Pn="vs-global-bounds-src",Kt="vs-global-bounds-line",Ar="rasterLayer",Nr=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=typeof document<"u"&&document.querySelector("#modal")?"#modal":"body",s=e.computed(()=>{const u=a?.multiple,b=a?.multi,k=E=>E===""||E===!0||E==="true"||E===1||E==="1";return!!n.multi||!!n.multiple||k(b)||k(u)}),i=e.computed(()=>!!n.disabled),c=e.ref(!1),d=e.ref(null),g=e.ref(0),f=e.ref(""),p=e.ref(null),m=e.ref([]),h=e.ref(null),w=e.ref(null),y=jp({onActivate(){if(ue)try{ue.changeMode("simple_select",{featureIds:[]})}catch{}f.value=""},onDeactivate(){}});function C(){y.toggleRuler()}const _=e.getCurrentInstance(),B=_?.appContext?.config?.globalProperties?.$settings??{},$=B?.map??{},j=e.computed(()=>{const u=$.layerPresets;return Array.isArray(u)?u:[]}),Z=_?.vnode?.props??{};function I(u){return Object.prototype.hasOwnProperty.call(Z,u)||Object.prototype.hasOwnProperty.call(Z,u.replace(/[A-Z]/g,b=>`-${b.toLowerCase()}`))}const V=Array.isArray($.center)&&$.center.length===2?$.center:Array.isArray(B.center)&&B.center.length===2?B.center:[30,50],S=typeof $.zoom=="number"?$.zoom:typeof B.zoom=="number"?B.zoom:typeof B.defaultZoom=="number"?B.defaultZoom:10;function x(u){if(u!=null){if(Array.isArray(u)&&u.length>=2){const b=Number(u[0]),k=Number(u[1]);return!Number.isFinite(b)||!Number.isFinite(k)?void 0:[b,k]}if(typeof u=="object"){const b=u,k=b.geom;if(b.type==="Point"&&Array.isArray(b.coordinates)){const G=b.coordinates,ce=Number(G[0]),me=Number(G[1]);if(Number.isFinite(ce)&&Number.isFinite(me))return[ce,me]}if(k?.type==="Point"&&Array.isArray(k.coordinates)){const G=k.coordinates,ce=Number(G[0]),me=Number(G[1]);if(Number.isFinite(ce)&&Number.isFinite(me))return[ce,me]}const E=Number(b.lat),D=Number(b.lng??b.lon);if(Number.isFinite(E)&&Number.isFinite(D))return[D,E]}}}const L=e.computed(()=>{const u=x(n.center);if(u)return u;if(!I("center"))return x($.center)??x(B.center)}),U=e.computed(()=>I("zoom")?n.zoom:$.zoom??n.zoom),ne=e.computed(()=>I("katottg")?String(n.katottg??""):String($.katottg??n.katottg??"")),N=e.computed(()=>I("layers")?n.layers??[]:$.layers??n.layers??[]),P=e.computed(()=>I("bounds")?n.bounds:$.bounds??n.bounds),q=e.ref(Array.isArray(L.value)&&L.value.length===2?[...L.value]:V),K=e.ref(typeof U.value=="number"?U.value:S),O=e.ref(null);let Q=null;function re(u){const b=typeof u=="number"&&Number.isFinite(u)?u:K.value;return Math.min(Im,Math.max(Lm,Math.round(b)))}function T(u,b,k){if(!Number.isFinite(u)||!Number.isFinite(b))return;const E=ou(u,b,re(k)),D=O.value;D&&D.z===E.z&&D.x===E.x&&D.y===E.y||(O.value=E)}function F(){if(R){const u=R.getCenter?.(),b=R.getZoom?.();if(u&&Number.isFinite(b)){T(u.lng,u.lat,b);return}}Array.isArray(q.value)&&q.value.length===2&&T(q.value[0],q.value[1])}function A(){Q&&clearTimeout(Q),Q=setTimeout(()=>{Q=null,F()},120)}T(q.value[0],q.value[1]);const J=e.ref(n.modelValue),se=e.ref(null),ee=e.ref(null),he=e.ref([]),xe=e.ref(!1),ye=e.ref(!1),$e=e.ref([]),Le=e.ref({coordinates:"",format:"decimal",order:"lat-lon"}),Oe={coordinates:{type:"Textarea",label:"Координати вершин полігону (3-100 точок)",placeholder:`50.4501, 30.5234
3
3
  50.4510, 30.5242
4
- 50.4494, 30.5260`},format:{type:"Radio",label:"Формат координат",options:[{id:"decimal",text:"Десяткові (Decimal)"},{id:"dms",text:"Градуси-хвилини-секунди (DMS)"}]},order:{type:"Radio",label:"Порядок координат",options:[{id:"lat-lon",text:"lat, lon"},{id:"lon-lat",text:"lon, lat"}]}};let Me=!1,ie=!1;const le=e.reactive({}),ke=e.ref([]),Se=e.computed(()=>ke.value.map(u=>le[u]).filter(Boolean)),Te=e.ref(null),qe=e.computed(()=>Te.value?.entries??[]),Y=e.computed(()=>{if(Te.value)return{left:`${Te.value.point.x+12}px`,top:`${Te.value.point.y+12}px`}}),te=e.computed(()=>{if(Array.isArray(n.tools)&&n.tools.length)return n.tools;const u=a?.tools;return Array.isArray(u)?u.map(b=>String(b)):typeof u=="string"?u.split(",").map(b=>b.trim()).filter(Boolean):[]}),oe=e.computed(()=>{const u={search:!1,import:!1,export:!1,point:!1,line:!1,polygon:!1,rectangle:!1,ruler:!1};if(!te.value.length)return{...u,import:!0,export:!0,point:!0,line:!0,polygon:!0,rectangle:!0};const b=new Set(te.value.map(k=>k.toLowerCase()));return{search:b.has("search"),import:b.has("import"),export:b.has("export"),point:b.has("point"),line:b.has("line"),polygon:b.has("polygon"),rectangle:b.has("rectangle"),ruler:b.has("ruler")}});function pe(u){const b=typeof u=="string"?u.trim():"";if(!b)return"";if(/^https?:\/\//i.test(b))return b;const k=window?.location?.origin??"",E=b.replace(/^\/+/,"");return E?k?`${k}/${E}`:`/${E}`:k}function be(){const u=Array.isArray($.basemaps)&&$.basemaps.length?$.basemaps:B.basemaps;if(Array.isArray(u)&&u.length){const k=u.map((E,D)=>{const G=String(E?.key??E?.id??E?.name??`b${D}`),ce=pe(String(E?.url??""));if(!ce)return null;const me=typeof E?.preview=="string"&&E.preview?pe(E.preview):"";return[G,{...E,url:ce,preview:me}]}).filter(E=>Array.isArray(E)&&E.length===2).reduce((E,[D,G])=>(E[D]=G,E),{});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 Ae=be(),Fe=Object.keys(Ae),De=e.ref(Fe.length?Fe[0]:"");function W(){const u=Array.isArray($.overlays)&&$.overlays.length?$.overlays:B.overlays;return!Array.isArray(u)||!u.length?{}:u.map((k,E)=>{const G=(typeof k?.name=="string"?k.name.trim():"")||`o${E}`,ce=pe(String(k?.url??""));if(!ce)return null;const me=typeof k?.preview=="string"&&k.preview?pe(k.preview):"";return[G,{...k,name:G,url:ce,preview:me}]}).filter(k=>Array.isArray(k)&&k.length===2).reduce((k,[E,D])=>(k[E]=D,k),{})}const v=W(),M=e.ref(Object.keys(v).filter(u=>!!v[u]?.visible)),z=e.computed(()=>oe.value.point||oe.value.line||oe.value.polygon||oe.value.rectangle),de=e.computed(()=>Se.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 _e(u){return`${Pm}${u}`}function Pe(u){return`${Rm}${u}`}async function Ie(){if(typeof window>"u")return null;const u=window;if(u[On])return u[On];const b=G=>{if(Array.from(document.styleSheets).some(Ee=>Ee?.href?.includes(G)))return;const me=document.createElement("link");me.rel="stylesheet",me.href=G,document.head.appendChild(me)},k=async()=>{const G=new Function("u","return import(u)"),ce=await G("https://esm.sh/maplibre-gl@3.6.2"),me=ce?.default??ce;if(!me)throw new Error("maplibre esm fallback failed");window.maplibregl=me,window.mapboxgl=me;const Ee=await G("https://esm.sh/@mapbox/mapbox-gl-draw@1.5.0"),Re=Ee?.default??Ee;if(!Re)throw new Error("mapbox draw esm fallback failed");window.MapboxDraw=Re},D=(async()=>{b("https://unpkg.com/maplibre-gl@3.6.2/dist/maplibre-gl.css"),b("https://unpkg.com/@mapbox/mapbox-gl-draw@1.5.0/dist/mapbox-gl-draw.css"),(!window.maplibregl||!window.MapboxDraw)&&await 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 Kp(G),{maplibregl:G,MapboxDraw:ce}})().catch(G=>{throw delete u[On],G});return u[On]=D,D}function Xe(u){return{version:8,glyphs:zm,sources:{rasterSource:wo(u,void 0,{safe:!1})},layers:[{id:"rasterLayer",type:"raster",source:"rasterSource"}]}}let et=null,ot=null,R=null,ue=null,Ze=[],Vt=null,gt=null,Ue=null,Lt=!1,Gt=!1,Yt=!1,It=null;function Xn(){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,b){if(!u.startPoint)return;const[k,E]=u.startPoint,D=b.lngLat.lng,G=b.lngLat.lat;u.rectangle.setCoordinates([[[k,E],[D,E],[D,G],[k,G],[k,E]]])},onClick(u,b){if(!u.startPoint){u.startPoint=[b.lngLat.lng,b.lngLat.lat],u.hasCoordinates=!0,u.rectangle.setCoordinates([[[b.lngLat.lng,b.lngLat.lat],[b.lngLat.lng,b.lngLat.lat],[b.lngLat.lng,b.lngLat.lat],[b.lngLat.lng,b.lngLat.lat],[b.lngLat.lng,b.lngLat.lat]]]);return}const[k,E]=u.startPoint,D=b.lngLat.lng,G=b.lngLat.lat;return Math.abs(k-D)>0&&Math.abs(E-G)>0?(u.rectangle.setCoordinates([[[k,E],[D,E],[D,G],[k,G],[k,E]]]),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,b,k){const E=b.properties.id===u.rectangle.id;E&&!u.hasCoordinates||(b.properties.active=E?"true":"false",k(b))}}}const Zn=[{id:"gl-draw-polygon-fill-inactive",type:"fill",filter:["all",["==","$type","Polygon"],["!=","active","true"]],paint:{"fill-color":"#3b82f6","fill-outline-color":"#3b82f6","fill-opacity":.1}},{id:"gl-draw-polygon-fill-active",type:"fill",filter:["all",["==","$type","Polygon"],["==","active","true"]],paint:{"fill-color":"#2563eb","fill-outline-color":"#2563eb","fill-opacity":.2}},{id:"gl-draw-polygon-stroke-inactive",type:"line",filter:["all",["==","$type","Polygon"],["!=","active","true"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#3b82f6","line-width":2}},{id:"gl-draw-polygon-stroke-active",type:"line",filter:["all",["==","$type","Polygon"],["==","active","true"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#2563eb","line-width":2}},{id:"gl-draw-lines-inactive",type:"line",filter:["all",["==","$type","LineString"],["!=","active","true"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#3b82f6","line-width":2}},{id:"gl-draw-lines-active",type:"line",filter:["all",["==","$type","LineString"],["==","active","true"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#2563eb","line-width":2}},{id:"gl-draw-point-inactive",type:"circle",filter:["all",["==","$type","Point"],["!=","meta","midpoint"],["!=","active","true"]],paint:{"circle-radius":5,"circle-color":"#3b82f6"}},{id:"gl-draw-point-active",type:"circle",filter:["all",["==","$type","Point"],["!=","meta","midpoint"],["==","active","true"]],paint:{"circle-radius":6,"circle-color":"#2563eb"}},{id:"gl-draw-polygon-and-line-vertex-halo-active",type:"circle",filter:["all",["==","meta","vertex"],["==","$type","Point"]],paint:{"circle-radius":7,"circle-color":"#fff"}},{id:"gl-draw-polygon-and-line-vertex-active",type:"circle",filter:["all",["==","meta","vertex"],["==","$type","Point"]],paint:{"circle-radius":5,"circle-color":"#2563eb"}},{id:"gl-draw-polygon-midpoint",type:"circle",filter:["all",["==","meta","midpoint"],["==","$type","Point"]],paint:{"circle-radius":4,"circle-color":"#1d4ed8"}}];function Jn(){const u=De.value;return!u||!Ae[u]?.url?"":Ae[u].url}function Do(u,b){return u?.id?String(u.id):u?.url?`${u.url}-${b}`:`layer-${b}`}function fn(u){const b=String(u?.url??"").trim();if(!b)return"";if(/^https?:\/\//i.test(b))return b;const k=window.location?.origin??"",E=b.replace(/^\/+/,"");return`${k}/${E}`}function H(u){u&&Te.value?.layerId!==u||(Te.value=null)}function ae(u,b={}){if(u.popup===!1)return[];const k=Number(b?.point_count);if(Number.isFinite(k)&&k>1)return[{key:"Об'єктів у кластері",value:String(k)}];const E=fn(u),D=kn(u,E,j.value);return Array.isArray(u.popup)?u.popup.length?u.popup.map(G=>{const ce=G?.field||G?.name;if(!ce)return null;const me=b[ce];if(me==null||me==="")return null;const Ee=D?.formatPopupValue?D.formatPopupValue(ce,me):String(me);return{key:G.label||ce,value:Ee}}).filter(Boolean):[]:Object.entries(b).slice(0,5).map(([G,ce])=>({key:G,value:ce==null?"—":String(ce)}))}function fe(u){if(!Array.isArray(u))return[];const b=E=>Array.isArray(E)&&E.length>=2&&Number.isFinite(Number(E[0]))&&Number.isFinite(Number(E[1])),k=E=>{if(!E.length)return E;const D=E[0],G=E[E.length-1];return!G||D[0]!==G[0]||D[1]!==G[1]?[...E,D]:E};if(u.length&&b(u[0])){const E=u.map(D=>[Number(D[0]),Number(D[1])]).filter(b);return E.length?[k(E)]:[]}return u.length&&Array.isArray(u[0])&&b(u[0][0])?u.map(D=>Array.isArray(D)?D.map(G=>[Number(G[0]),Number(G[1])]):[]).filter(D=>D.length).map(k):u.length&&Array.isArray(u[0])&&Array.isArray(u[0][0])&&b(u[0][0][0])?u.flatMap(D=>Array.isArray(D)?D:[]).map(D=>Array.isArray(D)?D.map(G=>[Number(G[0]),Number(G[1])]):[]).filter(D=>D.length).map(k):[]}function Ne(u){const b=u.style??{},k=b.color??"#3b82f6";if(!b.colorAttr||!b.colorSet)return k;const E=Object.keys(b.colorSet);if(!E.length)return k;const D=["match",["to-string",["get",b.colorAttr]]];return E.forEach(G=>{D.push(String(G),b.colorSet?.[G]??k)}),D.push(k),D}function ze(u){if(!R)return;const b=R.getStyle()?.layers;Array.isArray(b)&&[...b].reverse().forEach(k=>{k.source===u&&R.getLayer(k.id)&&R.removeLayer(k.id)})}function He(u){if(!R)return;u.handlers.forEach(E=>{try{R.off(E.type,E.layerId,E.handler)}catch{}}),u.handlers=[],[...u.layerIds,...u.boundsIds].forEach(E=>{R.getLayer(E)&&R.removeLayer(E)}),ze(u.sourceId),R.getSource(u.sourceId)&&R.removeSource(u.sourceId);const b=`vs-ov-bounds-src-${u.id}`,k=`vs-ov-bounds-line-${u.id}`;R.getLayer(k)&&R.removeLayer(k),R.getSource(b)&&R.removeSource(b),H(u.id)}function je(u,b){if(!R)return[];const k=`vs-ov-bounds-src-${b}`,E=`vs-ov-bounds-line-${b}`,D=u.bounds??P.value??he.value,G=fe(D);if(!G.length)return[];const ce={type:"FeatureCollection",features:G.map(me=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:me}}))};return R.getLayer(E)&&R.removeLayer(E),R.getSource(k)&&R.removeSource(k),R.addSource(k,{type:"geojson",data:ce}),R.addLayer({id:E,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]}}),[E]}function rt(){return Yt||f.value==="marker"||f.value==="polyline"||f.value==="polygon"||f.value==="rectangle"}function wt(u,b){if(!R)return;u.handlers.forEach(E=>{try{R.off(E.type,E.layerId,E.handler)}catch{}});const k=[];b.forEach(E=>{const D=ce=>{if(rt())return;if(!ce?.features?.length){H(u.id);return}const me=ce.features[0]?.properties??{},Ee=ae(u.config,me);if(!Ee.length){H(u.id);return}Te.value={layerId:u.id,entries:Ee,point:{x:ce.point.x,y:ce.point.y}}},G=()=>H(u.id);R.on("mousemove",E,D),R.on("mouseleave",E,G),k.push({layerId:E,type:"mousemove",handler:D},{layerId:E,type:"mouseleave",handler:G})}),u.handlers=k}function dt(u,b){if(!R)return;u.layerIds=b,u.boundsIds=je(u.config,u.id),wt(u,b);const k=u.visible?"visible":"none";[...u.layerIds,...u.boundsIds].forEach(E=>{R.getLayer(E)&&R.setLayoutProperty(E,"visibility",k)}),xt()}function tt(u){if(!R)return;He(u),u.renderToken=(u.renderToken??0)+1;const b=u.renderToken,k=u.config,E=fn(k);if(!E)return;const D=[],G=/\.v(?:m)?t(?:\?|$|\/)/i.test(E)||/\.pbf(?:\?|$)/i.test(E)||/\/vtile(?:\/|\?|$)/i.test(E)||String(k?.service??"").toLowerCase()==="vector"||String(k?.format??"").toLowerCase()==="mvt",ce=kn(k,E,j.value);if(G&&ce){const me=k.sourceLayer||k.layer||k.service_layer||k.dataset?.layer||k.id;R.addSource(u.sourceId,{type:"vector",tiles:[E],minzoom:typeof k.minzoom=="number"?k.minzoom:0,maxzoom:typeof k.maxzoom=="number"?k.maxzoom:22}),(async()=>{try{if(!R||!R.getSource(u.sourceId)||u.renderToken!==b)return;const Ee=await ce.render({map:R,overlayId:u.id,sourceId:u.sourceId,sourceLayer:me,url:E,config:k});if(!R||!R.getSource(u.sourceId)||u.renderToken!==b){Ee.forEach(Re=>{R.getLayer(Re)&&R.removeLayer(Re)});return}dt(u,Ee)}catch(Ee){u.renderToken===b&&console.error(`Failed to render map layer preset "${ce.id}"`,Ee)}})();return}if(G){const me=k.sourceLayer||k.layer||k.service_layer||k.dataset?.layer||k.id;R.addSource(u.sourceId,{type:"vector",tiles:[E],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(At=>String(At).toLowerCase()):[String(k.style?.type??"polygon").toLowerCase()],Re=Ne(k),$t=k.style?.opacity??.5,Ho=At=>{if(At==="point"){const bn=`vs-ov-point-${u.id}`;R.addLayer({id:bn,type:"circle",source:u.sourceId,"source-layer":me,paint:{"circle-color":Re,"circle-radius":k.style?.radius??5,"circle-opacity":$t}}),D.push(bn);return}if(At==="polyline"||At==="line"){const bn=`vs-ov-line-${u.id}`;R.addLayer({id:bn,type:"line",source:u.sourceId,"source-layer":me,layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":Re,"line-width":k.style?.width??2,"line-opacity":$t}}),D.push(bn);return}const Pl=`vs-ov-fill-${u.id}`,Rl=`vs-ov-border-${u.id}`;R.addLayer({id:Pl,type:"fill",source:u.sourceId,"source-layer":me,paint:{"fill-color":Re,"fill-opacity":$t}}),R.addLayer({id:Rl,type:"line",source:u.sourceId,"source-layer":me,paint:{"line-color":k.style?.stroke??k.style?.color??"#2563eb","line-width":k.style?.width??1,"line-opacity":$t}}),D.push(Pl,Rl)};[...new Set(Ee)].forEach(At=>Ho(At)),dt(u,D);return}else{R.addSource(u.sourceId,wo(E,k,{safe:!1}));const me=`vs-ov-raster-${u.id}`;R.addLayer({id:me,type:"raster",source:u.sourceId,paint:{"raster-opacity":k.style?.opacity??1}}),D.push(me)}dt(u,D)}function Je(){if(!R)return;const b={type:"FeatureCollection",features:fe(P.value??he.value).map(k=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:k}}))};R.getSource(Pn)?R.getSource(Pn).setData(b):R.addSource(Pn,{type:"geojson",data:b}),R.getLayer(Kt)||R.addLayer({id:Kt,type:"line",source:Pn,paint:{"line-color":"#2563eb","line-width":2,"line-opacity":.8,"line-dasharray":[2,2]}})}function hn(u){if(!R||i.value)return;const b=le[u];if(!b)return;b.visible=!b.visible;const k=b.visible?"visible":"none";[...b.layerIds,...b.boundsIds].forEach(E=>{R.getLayer(E)&&R.setLayoutProperty(E,"visibility",k)}),xt(),b.visible||H(u)}function Cl(u){if(!R)return;const b=v[u];if(!b?.url)return;const k=_e(u),E=Pe(u);R.getLayer(E)&&R.removeLayer(E),R.getSource(k)&&R.removeSource(k),R.addSource(k,wo(b.url,b,{safe:!0}));const D=b?.opacity??b?.style?.opacity,G=typeof D=="number"?D:Om;R.addLayer({id:E,type:"raster",source:k,paint:{"raster-opacity":G}})}function T0(u){if(!R)return;const b=_e(u),k=Pe(u);R.getLayer(k)&&R.removeLayer(k),R.getSource(b)&&R.removeSource(b)}function El(){R&&M.value.forEach(u=>Cl(u))}function L0(u){if(!R||i.value||!v[u])return;M.value.includes(u)?(M.value=M.value.filter(k=>k!==u),T0(u)):(M.value=[...M.value,u],Cl(u)),xt()}function xt(){if(!R)return;const u=M.value.map(Ee=>Pe(Ee)).filter(Ee=>R.getLayer(Ee)),b=[],k=[],E=[],D=[];ke.value.forEach(Ee=>{const Re=le[Ee];if(!Re)return;const $t=String(Re.config?.url??""),Ho=/\.v(?:m)?t(?:\?|$|\/)/i.test($t)||/\/vtile(?:\/|\?|$)/i.test($t)||qo(Re.config,$t,j.value),At=/\.png(?:\?|$)/i.test($t);Ho?E.push(...Re.layerIds):At?b.push(...Re.layerIds):k.push(...Re.layerIds),D.push(...Re.boundsIds)});const G=[...u,...b,...k,...E,...D];G.forEach(Ee=>{R.getLayer(Ee)&&R.moveLayer(Ee)}),R.getLayer(Kt)&&R.moveLayer(Kt);const me=(R.getStyle?.()?.layers??[]).map(Ee=>String(Ee?.id??"")).filter(Ee=>Ee.startsWith("gl-draw-"));if(me.forEach(Ee=>{R.getLayer(Ee)&&R.moveLayer(Ee)}),R.getLayer(Ar)){const Ee=G.find(Re=>R.getLayer(Re))??(R.getLayer(Kt)?Kt:null)??me.find(Re=>R.getLayer(Re));Ee&&R.moveLayer(Ar,Ee)}}function I0(u){if(!Ae[u]||(De.value=u,!R))return;const b=Jn();if(!b)return;const k=R.getSource("rasterSource");if(k&&typeof k.setTiles=="function"){k.setTiles([b]),xt();return}const E=R.getCenter?.(),D=R.getZoom?.(),G=ue?.getAll?.();R.setStyle(Xe(b)),R.once("style.load",()=>{if(R&&(E&&Number.isFinite(D)&&R.jumpTo({center:[E.lng,E.lat],zoom:D}),Je(),El(),ke.value.forEach(ce=>{const me=le[ce];me&&tt(me)}),xt(),G?.features?.length&&ue))try{G.features.forEach(ce=>ue.add(ce)),g.value=G.features.length}catch{g.value=0}})}function To(u){return{type:"Feature",properties:{},geometry:u}}function vt(u){if(!u)return null;try{return JSON.parse(JSON.stringify(u))}catch{return null}}function Lo(u){if(!u)return null;const b=vt(u.geometry);return b?{...u.id!==void 0?{id:u.id}:{},type:"Feature",properties:{...u.properties??{}},geometry:b}:null}function gn(u){if(!u)return[];const b=(D,G)=>{if(!D?.type)return[];const ce={...G??{}};return D.type==="MultiPoint"&&Array.isArray(D.coordinates)?D.coordinates.map(me=>To({type:"Point",coordinates:me})).map(me=>({...me,properties:ce})):D.type==="MultiLineString"&&Array.isArray(D.coordinates)?D.coordinates.map(me=>To({type:"LineString",coordinates:me})).map(me=>({...me,properties:ce})):D.type==="MultiPolygon"&&Array.isArray(D.coordinates)?D.coordinates.map(me=>To({type:"Polygon",coordinates:me})).map(me=>({...me,properties:ce})):D.type==="GeometryCollection"&&Array.isArray(D.geometries)?D.geometries.flatMap(me=>b(me,ce)):[{type:"Feature",properties:ce,geometry:vt(D)}]},k=D=>{if(!D)return null;if(D.type==="Feature"){const G=Lo(D);return G?b(G.geometry,G.properties):null}return D.geom?.type&&Array.isArray(D.geom.coordinates)?b({type:D.geom.type,coordinates:D.geom.coordinates},D.properties??{}):D.type==="GeometryCollection"&&Array.isArray(D.geometries)?b(D,D.properties??{}):typeof D.type=="string"&&Array.isArray(D.coordinates)?b(vt(D),D.properties??{}):null};if(u.type==="FeatureCollection")return(u.features??[]).flatMap(k).filter(Boolean);if(Array.isArray(u))return u.flatMap(D=>D?.type==="FeatureCollection"?gn(D):[k(D)]).flat().filter(Boolean);const E=k(u);return E?Array.isArray(E)?E:[E]:[]}function Bl(u){if(!u.length)return null;if(!s.value)return vt(u[0]?.geometry??null);const b=u.map(G=>vt(G?.geometry)).filter(Boolean);return b.every(G=>G?.type==="Point")?{type:"MultiPoint",coordinates:b.map(G=>G.coordinates)}:b.every(G=>G?.type==="LineString")?{type:"MultiLineString",coordinates:b.map(G=>G.coordinates)}:b.every(G=>G?.type==="Polygon")?{type:"MultiPolygon",coordinates:b.map(G=>G.coordinates)}:{type:"GeometryCollection",geometries:b}}function Vl(u){if(!u)return"__null__";try{return JSON.stringify(u)}catch{return"__invalid__"}}function O0(u,b){if(!Array.isArray(u)||!Array.isArray(b)||u.length<2||b.length<2)return!1;const k=1e-12;return Math.abs(Number(u[0])-Number(b[0]))<k&&Math.abs(Number(u[1])-Number(b[1]))<k}function Sl(u,b){if(!Array.isArray(u)||u.length<4)return null;const E=O0(u[0],u[u.length-1])?u.slice(0,-1):u.slice();return!Number.isInteger(b)||b<0||b>=E.length||E.length<=3||(E.splice(b,1),E.length<3)?null:[...E,[...E[0]]]}function $l(u,b){if(!Array.isArray(u)||u.length<2||!Number.isInteger(b)||b<0||b>=u.length||u.length<=2)return null;const k=u.slice();return k.splice(b,1),k.length<2?null:k}function P0(u,b){const k=vt(u);if(!k||!Array.isArray(b))return null;if(k.type==="LineString"){const[E]=b,D=$l(k.coordinates,E);return D?(k.coordinates=D,k):null}if(k.type==="MultiLineString"){const[E,D]=b,G=k.coordinates?.[E],ce=$l(G,D);return ce?(k.coordinates[E]=ce,k):null}if(k.type==="Polygon"){const[E,D]=b,G=k.coordinates?.[E],ce=Sl(G,D);return ce?(k.coordinates[E]=ce,k):null}if(k.type==="MultiPolygon"){const[E,D,G]=b,ce=k.coordinates?.[E]?.[D],me=Sl(ce,G);return me?(k.coordinates[E][D]=me,k):null}return null}function R0(u){return u?u.split(".").map(b=>Number(b)).filter(b=>Number.isInteger(b)&&b>=0):[]}function Al(u){return!ue||!u?null:typeof ue.get=="function"?ue.get(u)??null:ue.getAll?.()?.features?.find(k=>String(k?.id??"")===u)??null}function Nl(u){const b=u?.properties?.id??u?.id;return b==null||b===""?null:String(b)}function z0(u){if(!R||!u)return null;const b=[[u.x-8,u.y-8],[u.x+8,u.y+8]],E=R.queryRenderedFeatures(b).find(D=>{const G=String(D?.properties?.meta??"");return G&&G!=="feature"?!1:!!Nl(D)});return Nl(E)}function j0(u,b){if(!ue||!u||!b.length)return;const k=Al(u);if(!k?.geometry)return;const E=P0(k.geometry,b);if(!E)return;const D={...k,id:k.id??u,geometry:E};ie=!0,Me=!0;try{ue.delete(u),ue.add(D)}finally{Me=!1,ie=!1}Ot(),St()}function U0(u){if(!R||!ue||i.value||y.isRulerActive.value||f.value!=="edit")return;const b=u?.point;if(!b)return;const k=[[b.x-8,b.y-8],[b.x+8,b.y+8]],D=R.queryRenderedFeatures(k).find(ce=>ce?.properties?.meta==="vertex"&&ce?.properties?.parent&&ce?.properties?.coord_path);if(!D)return;u?.originalEvent?.preventDefault?.(),u?.originalEvent?.stopPropagation?.();const G=R0(String(D.properties.coord_path));G.length&&j0(String(D.properties.parent),G)}function H0(u){const b=Dl(u);if(!b)return null;const[[k,E],[D,G]]=b;return{lat:(E+G)/2,lng:(k+D)/2}}function Ml(u){if(!Array.isArray(u)||u.length<3)return 0;const b=(E,D)=>{const G=E*2003750834e-2/180,ce=Math.log(Math.tan((90+D)*Math.PI/360))/(Math.PI/180);return[G,ce*2003750834e-2/180]};let k=0;for(let E=0;E<u.length-1;E+=1){const[D,G]=b(Number(u[E][0]),Number(u[E][1])),[ce,me]=b(Number(u[E+1][0]),Number(u[E+1][1]));k+=D*me-ce*G}return Math.abs(k/2)/1e6}function q0(u){if(!u?.type||!u?.coordinates)return null;if(u.type==="Polygon"){const b=u.coordinates?.[0];return Array.isArray(b)?Ml(b):null}return u.type==="MultiPolygon"?u.coordinates.reduce((b,k)=>{const E=k?.[0];return Array.isArray(E)?b+Ml(E):b},0):null}function Io(u){if(!u){p.value=null;return}const b=H0(u);if(!b){p.value=null;return}p.value={type:String(u.type??"Feature"),center:b,areaKm2:q0(u)}}function Oo(u){if(!u){const E=Ze[Ze.length-1],D=vt(E?.geometry??null);Vt=D,Io(D);return}const b=Ze.find(E=>String(E?.id??"")===String(u))??null,k=vt(b?.geometry??null);Vt=k,Io(k)}function Po(u){m.value=(u??[]).map((b,k)=>{const E=String(b?.id??`feature-${k+1}`),D=Ro(String(b?.geometry?.type??"Feature"));return{id:E,label:`${D} ${k+1}`}})}function Ro(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 Fl(u,b){if(!Array.isArray(u)||!Array.isArray(b)||u.length!==2||b.length!==2)return!1;const k=1e-9;return Math.abs(Number(u[0])-Number(b[0]))<k&&Math.abs(Number(u[1])-Number(b[1]))<k}function Dl(u){if(!u)return null;let b=1/0,k=1/0,E=-1/0,D=-1/0;const G=ce=>{if(Array.isArray(ce)){if(ce.length>=2&&Number.isFinite(ce[0])&&Number.isFinite(ce[1])){const me=Number(ce[0]),Ee=Number(ce[1]);b=Math.min(b,me),k=Math.min(k,Ee),E=Math.max(E,me),D=Math.max(D,Ee);return}ce.forEach(G)}};return G(u.coordinates),!Number.isFinite(b)||!Number.isFinite(k)?null:[[b,k],[E,D]]}function Tl(u){if(!R||!u)return;const b=Dl(u);if(!b)return;const[[k,E],[D,G]]=b;if(k===D&&E===G){R.easeTo({center:[k,E],zoom:Math.max(K.value,14)}),A();return}R.fitBounds(b,{padding:30,duration:250,maxZoom:18}),A()}function zo(){if(!ue){g.value=0;return}const u=ue.getAll();g.value=u?.features?.length??0}function yn(){if(!ue)return null;const b=ue.getAll?.()?.features??[],k=G=>!!G&&b.some(ce=>String(ce?.id??"")===String(G??"")),E=ue.getSelectedIds?.();if(Array.isArray(E)&&E.length>0){const G=E[0];return G!=null?String(G):null}if(k(Ue))return String(Ue);if(!b.length)return null;const D=s.value?b[b.length-1]:b[0];return D?.id!==void 0&&D?.id!==null?String(D.id):null}function Ot(){if(!ue)return;const u=ue.getAll();if(g.value=u?.features?.length??0,!u?.features?.length){Ze=[],m.value=[],Vt=null,Ue=null,p.value=null,Me||(gt="__null__",r("update:modelValue",null));return}const b=(u.features??[]).map(Lo).filter(Boolean);if(Ze=b,Po(b),Ue=yn(),Oo(Ue),!Me){const k=Bl(b);gt=Vl(k),r("update:modelValue",k)}}function Qn(){if(!ue)return;(ue.getAll()?.features||[]).forEach(b=>ue.delete(b.id)),m.value=[],zo()}function eo(u){if(!ue)return;const b=gn(u),k=s.value?b:b.slice(0,1);Me=!0,Qn(),k.forEach(G=>{try{ue.add(G)}catch{}}),Me=!1,Ze=(ue.getAll?.()?.features??k).map(Lo).filter(Boolean),Po(Ze),Ue=null;const D=vt(Ze[Ze.length-1]?.geometry??null);Vt=vt(D),zo(),Io(D),D&&(Tl(D),i.value||St())}function K0(){ue&&(Me=!0,Qn(),Ze.forEach(u=>{try{ue.add(u)}catch{}}),Me=!1,Po(Ze),zo(),Oo(Ue))}function Xt(){if(ue){try{ue.changeMode("simple_select",{featureIds:[]})}catch{}f.value=""}}function to(u){if(i.value||!ue)return;y.isRulerActive.value&&y.closeRuler(),Yt=!0,Xt(),f.value=u;const b=u==="marker"?"draw_point":u==="polyline"?"draw_line_string":u==="rectangle"?"draw_rectangle":"draw_polygon";s.value||(Me=!0,Qn(),Me=!1);try{ue.changeMode(b)}catch{f.value=""}finally{requestAnimationFrame(()=>{Yt=!1})}}function St(u){if(i.value||!ue||!ue.getAll()?.features?.length)return;const k=u||yn();if(k)try{ue.changeMode("direct_select",{featureId:k}),Ue=k,Oo(Ue),f.value="edit"}catch{f.value=""}}function W0(u){i.value||!ue||!u||St(u)}function G0(){if(!(i.value||!ue)){if(s.value){const u=yn();if(u)try{Lt=!0,ue.delete(u),Lt=!1,Ot();const b=yn();b?St(b):Xt();return}catch{Lt=!1}}Xt(),Qn(),Ze=[],m.value=[],Ue=null,gt="__null__",p.value=null,r("update:modelValue",null)}}function Y0(){i.value||!Vt||Tl(Vt)}function X0(u){if(!R||!et)return;const b=[u[1],u[0]];It||(It=new et.Marker({color:"#2563eb"})),It.setLngLat(b).addTo(R),R.easeTo({center:b,zoom:13,duration:250})}function Z0(){i.value||se.value?.click()}function J0(){i.value||(xe.value=!xe.value)}function Ll(u){if(!xe.value)return;const b=ee.value;b&&!b.contains(u.target)&&(xe.value=!1)}function Q0(){xe.value=!1,Z0()}function eb(){i.value||($e.value=[],xe.value=!1,ye.value=!0)}function tb(){ye.value=!1,$e.value=[]}function nb(){if(i.value||!ue)return;const u=Vu(Le.value.coordinates??"",Le.value.format||"decimal",Le.value.order||"lat-lon");if(!u.ok){$e.value=u.errors,ob(u.errors);return}$e.value=[],eo({type:"Polygon",coordinates:[u.ring]}),Ot(),ye.value=!1,u.wasClosedAutomatically&&we.notify({type:"info",title:"Імпорт координат",message:"Полігон був автоматично замкнений (перша і остання точки різнилися)."})}function ob(u){if(!u.length)return;const b=5;u.slice(0,b).forEach(k=>{const E=k.line>0?`Рядок ${k.line}`:"Загальна помилка";we.notify({type:"warning",title:"Імпорт координат",message:`${E} — ${k.message}`})}),u.length>b&&we.notify({type:"warning",title:"Імпорт координат",message:`Ще помилок: ${u.length-b}`})}function rb(u){if(i.value||!ue)return;xe.value=!1;const b=u.target,k=b.files?.[0];if(!k)return;const E=new FileReader;E.onload=()=>{try{const D=JSON.parse(String(E.result));if(!gn(D).length){we.notify({type:"warning",title:"Імпорт файлу",message:"Файл не містить коректний GeoJSON-обʼєкт."});return}eo(D),Ot()}catch{we.notify({type:"error",title:"Імпорт файлу",message:"Не вдалося прочитати файл. Перевірте формат GeoJSON/JSON."})}finally{b.value=""}},E.onerror=()=>{we.notify({type:"error",title:"Імпорт файлу",message:"Помилка читання файлу."}),b.value=""},E.readAsText(k)}function lb(){if(i.value||!ue)return;const u=ue.getAll(),b=new Blob([JSON.stringify(u,null,2)],{type:"application/json"}),k=URL.createObjectURL(b),E=document.createElement("a");E.href=k,E.download="data.geojson",E.click(),URL.revokeObjectURL(k)}e.onMounted(async()=>{if(window.addEventListener("click",Ll,!0),!d.value)return;const u=await Ie();et=u.maplibregl,ot=u.MapboxDraw;const b=Jn();b&&(R=new et.Map({container:d.value,style:Xe(b),center:[q.value[0],q.value[1]],zoom:K.value,attributionControl:!1}),h.value=R,R.addControl(new et.NavigationControl({showCompass:!0}),"bottom-right"),R.on("error",k=>{const E=k?.error?.message??k?.message??"";Yp(E)}),R.on("load",()=>{if(!(!ot||!R)){if(ue=new ot({displayControlsDefault:!1,modes:{...ot.modes,draw_rectangle:Xn()},controls:{point:!1,line_string:!1,polygon:!1,trash:!1},styles:Zn}),R.addControl(ue),R.on("click",k=>{if(y.isRulerActive.value){const D=k?.lngLat;if(!D)return;w.value?.addPoint?.({lat:D.lat,lng:D.lng});return}if(!ue||i.value||f.value!=="edit")return;const E=z0(k?.point);!E||E===Ue||requestAnimationFrame(()=>{!ue||i.value||St(E)})}),R.on("draw.create",()=>{if(ue&&!y.isRulerActive.value){if(!s.value){const k=ue.getAll();if(k.features.length>1){const E=k.features[k.features.length-1];Me=!0,k.features.slice(0,-1).forEach(D=>ue.delete(D.id)),Me=!1,E&&(Me=!0,ue.add(E),Me=!1)}}Ot(),St()}}),R.on("draw.update",k=>{if(Gt||y.isRulerActive.value||rt())return;const E=Array.isArray(k?.features)?k.features:[],D=k?.action==="move"&&E.length>0&&E.every(G=>G?.geometry?.type==="Point");if(k?.action==="move"){if(D){Ot();return}if(Gt=!0,K0(),Gt=!1,f.value==="edit"){const G=yn(),ce=G?Al(G):ue?.getAll?.()?.features?.[0];if(ce?.id)try{ue.changeMode("direct_select",{featureId:ce.id}),Ue=String(ce.id)}catch{f.value=""}}return}Ot()}),R.on("draw.delete",()=>{ie||Lt||y.isRulerActive.value||f.value==="marker"||f.value==="polyline"||f.value==="polygon"||f.value==="rectangle"||(Ot(),ue?.getAll?.()?.features?.length||(Ue=null),f.value="",Xt())}),R.on("draw.selectionchange",k=>{if(!ue||Gt||y.isRulerActive.value||f.value==="marker"||f.value==="polyline"||f.value==="polygon"||f.value==="rectangle")return;const E=k?.features?.[0]?.id!==void 0&&k?.features?.[0]?.id!==null?String(k.features[0].id):null;if(!i.value&&E){if(f.value==="edit"&&Ue===E)return;requestAnimationFrame(()=>{!ue||i.value||St(E)});return}const D=ue.getSelectedIds?.(),G=Array.isArray(D)&&D.length>0?String(D[0]):null;if(!i.value&&G){if(f.value==="edit"&&Ue===G)return;requestAnimationFrame(()=>{!ue||i.value||St(G)});return}try{ue.changeMode("simple_select",{featureIds:[]})}catch{}}),J.value!==void 0){const k=J.value;J.value=void 0,requestAnimationFrame(()=>{ue&&eo(k)})}Je(),El(),ke.value.forEach(k=>{const E=le[k];E&&tt(E)}),xt(),F()}}),R.on("contextmenu",U0),R.on("moveend",A),R.on("zoomend",()=>{R&&(K.value=R.getZoom())}))}),e.onUnmounted(()=>{typeof document<"u"&&(document.body.style.overflow=""),typeof window<"u"&&window.removeEventListener("keydown",Uo),Q&&(clearTimeout(Q),Q=null),y.isRulerActive.value&&y.closeRuler(),window.removeEventListener("click",Ll,!0),Object.values(le).forEach(u=>{R&&He(u)}),H(),It?.remove&&It.remove(),It=null,R?.remove&&R.remove(),R=null,ue=null,h.value=null}),e.watch(()=>n.modelValue,u=>{if(!ue){J.value=u;return}if(rt())return;const b=Bl((s.value?gn(u):gn(u).slice(0,1))||[]),k=Vl(b);if(gt&&k===gt){gt=null;return}gt=null,eo(u)},{deep:!0}),e.watch(()=>N.value,u=>{const b=Array.isArray(u)?u:[],k=[],E=new Set;b.forEach((D,G)=>{if(!D)return;const ce=Do(D,G);k.push(ce),E.add(ce);const me={...D,id:ce},Ee=le[ce],Re=Ee?.visible??!!me.visible;Ee&&R&&He(Ee),le[ce]={id:ce,config:me,visible:Re,sourceId:`vs-ov-src-${ce}`,layerIds:[],boundsIds:[],handlers:[],renderToken:Ee?.renderToken??0}}),Object.keys(le).forEach(D=>{if(E.has(D))return;const G=le[D];G&&R&&He(G),delete le[D]}),ke.value=k,R&&(ke.value.forEach(D=>{const G=le[D];G&&tt(G)}),xt())},{immediate:!0,deep:!0}),e.watch(()=>P.value,()=>{R&&(Je(),ke.value.forEach(u=>{const b=le[u];b&&tt(b)}),xt())},{deep:!0}),e.watch(()=>ne.value,async u=>{if(he.value=[],!u){R&&(Je(),ke.value.forEach(b=>{const k=le[b];k&&tt(k)}),xt());return}try{const b=await fetch(`https://data.gki.com.ua/api-user/atu/${u}`);if(!b?.ok)return;const E=(await b.json())?.geometry?.coordinates;Array.isArray(E)&&E.length&&(he.value=E)}catch(b){console.error("Failed to fetch KATOTTG bounds",b)}finally{if(!R)return;Je(),ke.value.forEach(b=>{const k=le[b];k&&tt(k)}),xt()}},{immediate:!0}),e.watch(()=>L.value,u=>{if(!Array.isArray(u)||u.length!==2)return;const b=[Number(u[0]),Number(u[1])];if(Fl(q.value,b)||(q.value=[...b],!R))return;const k=R.getCenter?.();k&&Fl([k.lng,k.lat],q.value)||R.easeTo({center:[q.value[0],q.value[1]]})},{deep:!0}),e.watch(()=>U.value,u=>{typeof u=="number"&&(K.value=u,R&&R.setZoom(u))}),e.watch(()=>p.value?.center,u=>{u&&T(u.lng,u.lat,R?.getZoom?.())},{deep:!0}),e.watch(i,u=>{u&&Xt()}),e.watch(g,u=>{if(u>0){i.value||St();return}Yt||Xt()});const Il=e.computed(()=>m.value.length>0||!!p.value),jo=e.computed(()=>{const u=m.value,b=u.length>1;return u.length?u.map(k=>({id:k.id,label:b?k.label:p.value?.type?Ro(p.value.type):k.label,interactive:b})):p.value?.type?[{id:"__feature",label:Ro(p.value.type),interactive:!1}]:[]});function Ol(){setTimeout(()=>{R?.resize&&R.resize()},50)}function Uo(u){u.key==="Escape"&&c.value&&(c.value=!1)}return e.watch(c,u=>{typeof document<"u"&&(document.body.style.overflow=u?"hidden":""),typeof window<"u"&&(u?window.addEventListener("keydown",Uo):window.removeEventListener("keydown",Uo)),Ol()}),e.watch(Il,Ol),(u,b)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body",disabled:!c.value},[e.createElementVNode("div",{class:e.normalizeClass(["vs-map-wrapper w-full",{fullscreen:c.value}])},[e.createElementVNode("div",Xp,[e.createElementVNode("div",{ref_key:"mapContainer",ref:d,class:"vs-map-canvas"},null,512),oe.value.search||oe.value.import||oe.value.export?(e.openBlock(),e.createElementBlock("div",Zp,[oe.value.search?(e.openBlock(),e.createBlock(Wu,{key:0,onGoToCoordinates:X0})):e.createCommentVNode("",!0),oe.value.import||oe.value.export?(e.openBlock(),e.createElementBlock("div",Jp,[e.createElementVNode("div",Qp,[oe.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:J0,disabled:i.value},[b[8]||(b[8]=e.createTextVNode(" Імпорт ",-1)),e.createVNode(e.unref(X.ChevronDown),{class:e.normalizeClass(["h-3.5 w-3.5 shrink-0 transition-transform",{"rotate-180":xe.value}])},null,8,["class"])],8,em),xe.value?(e.openBlock(),e.createElementBlock("div",tm,[oe.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:Q0}," З файлу ")):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:eb}," З координат ")])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),oe.value.export?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"vs-map-action-btn",onClick:lb,disabled:i.value||g.value===0}," Експорт ",8,nm)):e.createCommentVNode("",!0)]),e.createElementVNode("input",{ref_key:"importRef",ref:se,type:"file",onChange:rb,accept:".json,.geojson",class:"hidden",disabled:i.value},null,40,om)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createVNode(e.unref(we.VsModal),{visible:ye.value,"onUpdate:visible":b[1]||(b[1]=k=>ye.value=k),title:"Імпорт координат полігону",size:"lg",teleport:e.unref(l)},{default:e.withCtx(()=>[e.createVNode(pt,{schema:Oe,values:Le.value,"onUpdate:values":b[0]||(b[0]=k=>Le.value=k)},null,8,["values"]),e.createElementVNode("div",rm,[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:tb}," Скасувати "),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:nb,disabled:i.value}," Побудувати ",8,lm)])]),_:1},8,["visible","teleport"]),e.createElementVNode("div",am,[e.createElementVNode("div",sm,[z.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[oe.value.point?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(["vs-btn",{"vs-active":f.value==="marker"}]),title:"Точка",onClick:b[2]||(b[2]=k=>to("marker")),disabled:i.value},[e.createVNode(e.unref(X.MapPin),{class:"vs-btn-icon"})],10,im)):e.createCommentVNode("",!0),oe.value.line?(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(["vs-btn",{"vs-active":f.value==="polyline"}]),title:"Лінія",onClick:b[3]||(b[3]=k=>to("polyline")),disabled:i.value},[e.createVNode(Gd,{class:"vs-btn-icon"})],10,cm)):e.createCommentVNode("",!0),oe.value.polygon?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":f.value==="polygon"}]),title:"Полігон",onClick:b[4]||(b[4]=k=>to("polygon")),disabled:i.value},[e.createVNode(Jd,{class:"vs-btn-icon"})],10,dm)):e.createCommentVNode("",!0),oe.value.rectangle?(e.openBlock(),e.createElementBlock("button",{key:3,class:e.normalizeClass(["vs-btn",{"vs-active":f.value==="rectangle"}]),title:"Прямокутник",onClick:b[5]||(b[5]=k=>to("rectangle")),disabled:i.value},[e.createVNode(nu,{class:"vs-btn-icon"})],10,um)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),z.value?(e.openBlock(),e.createElementBlock("div",pm)):e.createCommentVNode("",!0),oe.value.ruler?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":e.unref(y).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:b[6]||(b[6]=k=>c.value=!c.value),title:c.value?"Згорнути":"На весь екран"},[c.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,mm)])]),oe.value.ruler&&e.unref(y).isRulerActive.value?(e.openBlock(),e.createBlock(Rp,{key:1,ref_key:"rulerPanelRefEl",ref:w,onClose:b[7]||(b[7]=k=>e.unref(y).closeRuler()),onTabChange:e.unref(y).onRulerTabChange,onPointsChange:e.unref(y).onRulerPointsChange,onShapeClosedChange:e.unref(y).onRulerShapeClosedChange},null,8,["onTabChange","onPointsChange","onShapeClosedChange"])):e.createCommentVNode("",!0),oe.value.ruler&&e.unref(y).isRulerActive.value&&e.unref(y).hasRulerPoints.value?(e.openBlock(),e.createBlock(zp,{key:2,map:h.value,points:e.unref(y).rulerPoints.value,"is-shape-closed":e.unref(y).rulerShapeClosed.value,"label-mode":e.unref(y).rulerActiveTab.value},null,8,["map","points","is-shape-closed","label-mode"])):e.createCommentVNode("",!0),qe.value.length?(e.openBlock(),e.createElementBlock("div",{key:3,class:"absolute z-[1500] pointer-events-none",style:e.normalizeStyle(Y.value)},[e.createElementVNode("div",fm,[e.createElementVNode("dl",hm,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(qe.value,k=>(e.openBlock(),e.createElementBlock("div",{key:`${k.key}-${k.value}`,class:"flex justify-between gap-2"},[e.createElementVNode("dt",gm,e.toDisplayString(k.key),1),e.createElementVNode("dd",ym,e.toDisplayString(k.value),1)]))),128))])])],4)):e.createCommentVNode("",!0),e.createElementVNode("div",bm,[e.createVNode(Eu,{compact:"",basemaps:e.unref(Ae),"active-base-key":De.value,"tile-overlays":e.unref(v),"active-tile-overlay-keys":M.value,"vector-overlays":de.value,"preview-tile":O.value,disabled:i.value,onOnLayerChange:I0,onOnOverlayToggle:L0,onOnVectorOverlayToggle:hn},null,8,["basemaps","active-base-key","tile-overlays","active-tile-overlay-keys","vector-overlays","preview-tile","disabled"])])]),Il.value?(e.openBlock(),e.createElementBlock("div",km,[e.createElementVNode("div",wm,[e.createElementVNode("div",xm,[b[9]||(b[9]=e.createElementVNode("span",{class:"vs-map-status__label"},"Тип:",-1)),e.createElementVNode("div",vm,[jo.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(jo.value,(k,E)=>(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(Ue)}]),onClick:D=>W0(k.id),disabled:i.value},e.toDisplayString(k.label),11,_m)):(e.openBlock(),e.createElementBlock("span",Cm,e.toDisplayString(k.label),1)),E<jo.value.length-1?(e.openBlock(),e.createElementBlock("span",Em,", ")):e.createCommentVNode("",!0)],64))),128)):(e.openBlock(),e.createElementBlock("span",Bm,"—"))])]),e.createElementVNode("div",Vm,[e.createElementVNode("span",Sm,[b[10]||(b[10]=e.createElementVNode("span",{class:"vs-map-status__label"},"Центр:",-1)),p.value?(e.openBlock(),e.createElementBlock("span",$m,e.toDisplayString(p.value.center.lng.toFixed(5))+", "+e.toDisplayString(p.value.center.lat.toFixed(5)),1)):(e.openBlock(),e.createElementBlock("span",Am,"—"))]),p.value&&p.value.areaKm2!==null?(e.openBlock(),e.createElementBlock("span",Nm,[b[11]||(b[11]=e.createElementVNode("span",{class:"vs-map-status__label"},"Площа:",-1)),e.createElementVNode("span",Mm,e.toDisplayString(p.value.areaKm2.toFixed(1))+" km²",1)])):e.createCommentVNode("",!0),e.createElementVNode("div",Fm,[e.createElementVNode("button",{type:"button",class:"vs-status-btn vs-status-btn--zoom",title:"Масштаб до об'єкта",onClick:Y0,disabled:i.value},[e.createVNode(e.unref(X.ZoomIn),{class:"vs-status-btn__icon"})],8,Dm),e.createElementVNode("button",{type:"button",class:"vs-status-btn vs-status-btn--delete",title:"Видалити об'єкт",onClick:G0,disabled:i.value},[e.createVNode(e.unref(X.Trash2),{class:"vs-status-btn__icon"})],8,Tm)])])])])):e.createCommentVNode("",!0)],2)],8,["disabled"]))}}),[["__scopeId","data-v-ce74d2a8"]]),jm=["data-focus"],Um={class:"flex items-center"},Hm={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"],Km={key:0,class:"absolute text-gray-500 truncate pl-2"},Wm={class:"flex-1 min-w-[2px]"},Gm=["placeholder"],Ym={class:"flex items-center shrink-0"},Xm=["disabled"],Mr=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;Qe(n.style);const a=e.ref(null),l=e.ref(null),s=e.ref(null),i=e.ref(!1),c=e.ref(""),d=e.useModel(o,"modelValue"),g=e.computed(()=>n.placeholder||"Add tag…"),f=e.computed(()=>d.value?.length===0&&c.value===""),p=e.computed(()=>!n.disabled&&d.value?.length>0),m=e.computed(()=>n.disabled),h=async()=>{m.value||await e.nextTick(()=>s.value?.focus())},w=Z=>{const I=Z.trim();I!==""&&(!d.value||!Array.isArray(d.value)?d.value=[I]:n.unique?d.value.includes(I)||(d.value=[...d.value,I]):d.value=[...d.value,I],c.value="")},y=()=>{const Z=c.value;Z.trim()!==""&&w(Z),c.value=""},C=Z=>{const I=d.value.slice();I.splice(Z,1),r("update:modelValue",I)},_=()=>{r("update:modelValue",[])},B=()=>{m.value||(i.value=!0)},$=()=>{i.value=!1,!m.value&&y()},j=Z=>{const{key:I}=Z;I==="Enter"?(Z.preventDefault(),y()):I==="Backspace"&&c.value===""&&d.value.length>0&&C(d.value.length-1)};return(Z,I)=>(e.openBlock(),e.createElementBlock("div",{class:"flex gap-1 w-full",ref_key:"root",ref:a,onClick:I[1]||(I[1]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass]),role:"group","aria-label":"Tag input"},[e.createElementVNode("div",{class:e.normalizeClass(["flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white","border-gray-300 hover:border-gray-400",i.value?"border-blue-500 ring-1 ring-blue-500":"",m.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),"data-focus":i.value?"true":"false",onClick:h},[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,(V,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",Um,[e.createElementVNode("div",Hm,e.toDisplayString(V),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(x=>C(S),["stop"]),"aria-label":`Remove ${V}`},[e.createVNode(e.unref(X.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,qm)]))),128)),f.value?(e.openBlock(),e.createElementBlock("div",Km,e.toDisplayString(g.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Wm,[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":I[0]||(I[0]=V=>c.value=V),onFocus:B,onBlur:$,onKeydown:j,placeholder:d.value&&d.value.length?"":void 0},null,40,Gm)),[[e.vModelText,c.value]])])],512),e.createElementVNode("div",Ym,[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(_,["stop"])},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,Xm)):e.createCommentVNode("",!0)])],10,jm)],2)],512))}}),Zm={class:"relative flex gap-1 bg-white w-full"},Jm=["disabled","placeholder"],Fr=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 i={а:"a",б:"b",в:"v",г:"g",д:"d",е:"e",ё:"e",ж:"zh",з:"z",и:"i",й:"y",к:"k",л:"l",м:"m",н:"n",о:"o",п:"p",р:"r",с:"s",т:"t",у:"u",ф:"f",х:"kh",ц:"ts",ч:"ch",ш:"sh",щ:"shch",ы:"y",э:"e",ю:"yu",я:"ya",ь:"",ъ:"",є:"ye",і:"i",ї:"yi",ґ:"g"};return s.toLowerCase().split("").map(c=>i[c]||c).join("").replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}const l=()=>{const s=t?.value?.[n.parent||""]?.toString(),i=a(s);r.value=i.toString()};return(s,i)=>(e.openBlock(),e.createElementBlock("div",Zm,[e.withDirectives(e.createElementVNode("input",{ref:"vsText",disabled:s.disabled,placeholder:s.placeholder,"onUpdate:modelValue":i[0]||(i[0]=c=>r.value=c),class:"block w-full px-3 py-2 text-sm border border-solid rounded-lg placeholder:text-nowrap border-stone-200 text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,8,Jm),[[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"]]),Qm={class:"relative flex gap-1 bg-white w-full"},ef=["disabled","placeholder"],tf=["disabled"],nf={key:0},of={key:1},Dr=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)),g=encodeURIComponent(String(t.code));return`/api/code-gen/${d}/${g}`},i=async()=>{if(!l.value||r.value)return;const d=s();if(d){r.value=!0;try{const f=await(await fetch(d)).text();n.value=f}finally{r.value=!1}}},c=()=>{a.value&&(n.value||i())};return e.onMounted(()=>{c()}),e.watch(()=>[t.table,t.code,t.init],()=>{c()}),(d,g)=>(e.openBlock(),e.createElementBlock("div",Qm,[e.withDirectives(e.createElementVNode("input",{disabled:d.disabled,placeholder:d.placeholder,"onUpdate:modelValue":g[0]||(g[0]=f=>n.value=f),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,ef),[[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:i},[r.value?(e.openBlock(),e.createElementBlock("span",of,"...")):(e.openBlock(),e.createElementBlock("span",nf,"Gen"))],8,tf)]))}}),[["__scopeId","data-v-6ee5237d"]]),rf={class:"w-full"},lf={ref:"sortableContainer",class:"flex flex-col gap-1"},af=["onDragstart","onDrop"],sf={class:"cursor-move",type:"button"},cf={class:"w-1/3"},df={class:"w-2/3"},uf=["onClick"],pf={key:0,class:"text-[14px] text-gray-700"},mf={class:"mt-2 w-full flex items-center"},ff=["disabled"],Tr=Be(e.defineComponent({__name:"vs-input-key-value",props:{parent:{},ignore:{},addButtonText:{},modelValue:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=y=>`${y}-${Math.random().toString(36).substring(2,15)}`,r=e.inject("values"),a=o,l=t,s=a.addButtonText??"Додати",i=a.ignore??[],c=e.ref([]),d=e.ref(null);(()=>{const y=a.parent&&r?.value?.[a.parent]||a.modelValue||{};c.value=Object.entries(y).filter(([C])=>!i.includes(C)).map(([C,_])=>({id:n("key-value-"),key:C,value:_}))})();function f(y){d.value=y}function p(y){if(d.value===null||d.value===y)return;const C=c.value.splice(d.value,1)[0];c.value.splice(y,0,C),d.value=null}const m=e.computed(()=>c.value.some(y=>y.key&&!y.value||!y.key&&y.value)),h=()=>{c.value.push({id:n("key-value-"),key:"",value:""})},w=y=>{c.value=c.value.filter(C=>C.id!==y)};return e.watch(c,y=>{const C={};y.forEach(B=>{B.key&&B.value!==void 0&&(C[B.key]=B.value)});const _={};i.length&&i.forEach(B=>{_[B]=a.parent?r?.value?.[a.parent]?.[B]:void 0}),r?.value&&a.parent&&(r.value[a.parent]={..._,...C}),l("update:modelValue",C)},{deep:!0}),(y,C)=>(e.openBlock(),e.createElementBlock("div",rf,[e.createElementVNode("div",lf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,(_,B)=>(e.openBlock(),e.createElementBlock("div",{key:_.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":d.value===B}]),draggable:"true",onDragstart:$=>f(B),onDragover:C[0]||(C[0]=e.withModifiers(()=>{},["prevent"])),onDrop:$=>p(B)},[e.createElementVNode("button",sf,[e.createVNode(e.unref(X.GripVertical),{class:"h-4 w-4"})]),e.createElementVNode("div",cf,[e.createVNode(Ht,{modelValue:_.key,"onUpdate:modelValue":$=>_.key=$,placeholder:"Ключ"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",df,[e.createVNode(Ht,{modelValue:_.value,"onUpdate:modelValue":$=>_.value=$,placeholder:"Значення"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("button",{onClick:$=>w(_.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,uf)],42,af))),128))],512),c.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",pf," Дані для відображення відсутні ")),e.createElementVNode("div",mf,[e.createElementVNode("button",{type:"button",onClick:h,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,ff)])]))}}),[["__scopeId","data-v-d8c3f9d6"]]),hf={class:"w-full"},gf={ref:"sortableContainer",class:"flex flex-col gap-1"},yf=["onDragstart","onDrop"],bf=["disabled"],kf={class:"flex-1"},wf=["onClick","disabled"],xf={key:0,class:"text-[14px] text-gray-700"},vf={class:"mt-2 w-full flex items-center"},_f=["disabled"],Lr=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??""),i=e.computed(()=>t.addButtonText??"Додати");let c=!1;const d=y=>`${y}-${Math.random().toString(36).substring(2,15)}`,g=y=>{const C=y??n.value??[];r.value=C.map((_,B)=>({id:r.value[B]?.id??d("text-array"),value:_??""}))};g(),e.watch(()=>n.value,y=>{if(c){c=!1;return}g(y||[])},{deep:!0}),e.watch(r,y=>{c=!0,n.value=y.map(C=>C.value).filter(C=>C!=null&&C!=="")},{deep:!0});const f=e.computed(()=>l.value||r.value.some(y=>!y.value));function p(){f.value||(r.value=[...r.value,{id:d("text-array"),value:""}])}function m(y){l.value||(r.value=r.value.filter(C=>C.id!==y))}function h(y){l.value||(a.value=y)}function w(y){if(l.value||a.value===null||a.value===y)return;const C=[...r.value],[_]=C.splice(a.value,1);C.splice(y,0,_),r.value=C,a.value=null}return(y,C)=>(e.openBlock(),e.createElementBlock("div",hf,[e.createElementVNode("div",gf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(_,B)=>(e.openBlock(),e.createElementBlock("div",{key:_.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":a.value===B}]),draggable:"true",onDragstart:$=>h(B),onDragover:C[0]||(C[0]=e.withModifiers(()=>{},["prevent"])),onDrop:$=>w(B)},[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",kf,[y.inputType==="text"?(e.openBlock(),e.createBlock(Ht,{key:0,modelValue:_.value,"onUpdate:modelValue":$=>_.value=$,disabled:l.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),y.inputType==="tel"?(e.openBlock(),e.createBlock(io,{key:1,modelValue:_.value,"onUpdate:modelValue":$=>_.value=$,disabled:l.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),y.inputType==="email"?(e.openBlock(),e.createBlock(so,{key:2,modelValue:_.value,"onUpdate:modelValue":$=>_.value=$,disabled:l.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),y.inputType==="mask"?(e.openBlock(),e.createBlock(xn,{key:3,modelValue:_.value,"onUpdate:modelValue":$=>_.value=$,mask:y.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(_.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,wf)],42,yf))),128))],512),r.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",xf," Дані для відображення відсутні ")),e.createElementVNode("div",vf,[e.createElementVNode("button",{type:"button",onClick:p,disabled:f.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(i.value),1)],8,_f)])]))}}),[["__scopeId","data-v-2c229b1f"]]),Cf={class:"flex items-center gap-2 w-full"},Ef=["disabled"],Bf=["disabled"],Ir=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}=Qe(n.style),a=t,l=e.computed({get:()=>n.modelValue||"#000000",set:i=>a("update:modelValue",i)}),s=e.computed(()=>!!n.disabled);return(i,c)=>(e.openBlock(),e.createElementBlock("div",Cf,[e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":c[0]||(c[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]",[i.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,Ef),[[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":c[1]||(c[1]=d=>l.value=d),disabled:s.value},null,8,Bf),[[e.vModelText,l.value]])]))}}),Vf={class:"flex items-center gap-2 w-full"},Sf=["min","max","step","disabled"],$f=["value","min","max","step","disabled"],Or=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}=Qe(n.style),a=t,l=g=>{const f=Number(g),p=Number(n.min),m=Number(n.max);return Number.isNaN(f)?p:Math.min(m,Math.max(p,f))},s=e.computed({get:()=>l(n.modelValue??n.min),set:g=>a("update:modelValue",l(g))}),i=g=>{const f=g.target,p=l(f.value);f.value=String(p),a("update:modelValue",p)},c=g=>{Number(n.min)>=0&&g.key==="-"&&g.preventDefault()},d=e.computed(()=>!!n.disabled);return(g,f)=>(e.openBlock(),e.createElementBlock("div",Vf,[e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":f[0]||(f[0]=p=>s.value=p),min:g.min,max:g.max,step:g.step,disabled:d.value,ref:"range",class:e.normalizeClass(["w-full cursor-pointer accent-blue-500",[g.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")])},null,10,Sf),[[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:g.min,max:g.max,step:g.step,onInput:i,onKeydown:c,disabled:d.value},null,40,$f)]))}}),Af=["placeholder","disabled","name"],Nf=["type","value","onInput","placeholder","disabled"],Mf=["onClick"],Pr=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}=Qe(t.style),l=e.useModel(o,"modelValue"),s=e.computed(()=>!!t.disabled),i=e.computed(()=>t.placeholder??"");e.watchEffect(()=>{const w=l.value?.length??0;w<n.value&&(l.value=[...l.value??[],...Array(n.value-w)])});const c=e.ref({}),d=e.ref({});function g(w,y){w&&(c.value[y]=w)}async function f(w,y){if(!w||t.inputType!=="mask")return;const{default:C}=await Promise.resolve().then(()=>Gn);d.value[y]&&d.value[y].destroy(),d.value[y]=C(w,{mask:t.mask||"",definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},lazy:!1}),d.value[y].on("accept",()=>{const _=[...l.value||[]];_[y]=t.unmask?d.value[y].unmaskedValue:d.value[y].value,l.value=_}),d.value[y].on("complete",()=>{const _=[...l.value||[]];_[y]=t.unmask?d.value[y].unmaskedValue:d.value[y].value,l.value=_}),l.value?.[y]&&(d.value[y].value=l.value[y])}function p(w,y){if(s.value)return;const C=w.target.value??null,_=[...l.value];_[y]=t.inputType==="text"?C:Number(C),l.value=_}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 y=n.value-1;c.value[y]&&f(c.value[y],y)},0)}function h(w){if(n.value>1){d.value[w]&&(d.value[w].destroy(),delete d.value[w]),n.value-=1,l.value=l.value.filter((C,_)=>_!==w);const y={};Object.keys(d.value).forEach(C=>{const _=parseInt(C,10);_>w?y[_-1]=d.value[_]:_<w&&(y[_]=d.value[_])}),d.value=y}}return e.onMounted(()=>{if(t.inputType==="mask")for(let w=0;w<n.value;w+=1)c.value[w]&&f(c.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(y=>{y&&y.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((y,C)=>{d.value[C]&&d.value[C].value!==y&&(d.value[C].value=y||"")})},{deep:!0}),(w,y)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["grid gap-2",`grid-cols-${r.value}`])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,C=>(e.openBlock(),e.createElementBlock("div",{key:C,class:"flex items-center gap-2 w-full"},[w.inputType==="mask"?(e.openBlock(),e.createElementBlock("input",{key:0,type:"text",ref_for:!0,ref:_=>g(_,C-1),placeholder:w.placeholder,disabled:w.disabled,name:`${w.name}[${C-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,Af)):(e.openBlock(),e.createElementBlock("input",{key:1,type:w.inputType,value:l.value?.[C-1],onInput:_=>p(_,C-1),placeholder:i.value,disabled:s.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(a),{"!border-red-600":w.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,Nf)),!w.disabled&&C===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(_=>h(C-1),["stop"]),class:"cursor-pointer shrink-0 w-[38px] text-red-600 h-[38px] rounded-md flex items-center justify-center border border-stone-200 hover:bg-stone-100"},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,Mf)):e.createCommentVNode("",!0)]))),128))],2))}}),Ff={class:"flex gap-1 w-full"},Df=["aria-expanded","data-focus"],Tf=["placeholder","disabled","readonly"],Lf={class:"max-h-full"},If=["onClick","disabled"],Of={key:0,class:"px-3 py-2 text-sm text-stone-500"},Pf=["disabled"],Rf={class:"flex flex-col gap-1"},zf=["onDragstart","onDrop"],jf=["disabled"],Uf=["title"],Hf=["disabled","onClick","aria-label"],qf={key:0,class:"text-xs text-stone-500"},Rn=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??[]),i=e.ref({}),c=e.ref({}),d=e.ref({keyword:"",parent:null}),g=e.ref(""),f=e.ref(!1),p=e.ref(null),m=e.ref(null),h=e.ref(null),w=e.ref(null),y=e.ref(null),C=e.ref({});let _=!1,B=!1;const $=e.inject("values"),j=e.computed(()=>!!n.disabled),Z=e.computed(()=>n.placeholder??"Оберіть значення"),I=e.computed(()=>n.search!==!1),V=e.computed(()=>{const v=n.parent??n.parentValue;return v?String(v):""}),S=e.computed(()=>V.value?$?.value?.[V.value]??null:null),x=v=>v==null?"__null__":String(v),L=v=>{if(!v)return"";const M=v.label??v.text??v.name??v.ua??v.en;return M?String(M):v.id!==void 0&&v.id!==null?String(v.id):""},U=v=>{const M=x(v);return c.value[M]||(c.value[M]=`array-select-${M}-${Math.random().toString(36).slice(2,8)}`),c.value[M]},ne=e.computed(()=>new Set(l.value.map(v=>x(v.id)))),N=e.computed(()=>{const v=ne.value;let M=[...s.value];if(!n.data&&g.value.trim()){const z=g.value.toLowerCase();M=M.filter(de=>L(de).toLowerCase().includes(z))}return M.filter(z=>!v.has(x(z.id)))}),P=()=>{if(!n.data)return"";const v=n.prefix??"api",M=n.api??`/${v}/suggest/${n.data}`;return`${n.host??""}${M}`},q=()=>{l.value.length&&(_=!0,l.value=l.value.map(v=>({...v,text:i.value[x(v.id)]??v.text})))},K=v=>{const M=x(v.id),z=L(v);z&&(i.value[M]=z)},O=v=>{s.value=v?[...v]:[],v?.forEach(K),q()},Q=v=>{if(!v.length)return;const M=new Map(s.value.map(z=>[x(z.id),z]));v.forEach(z=>{const de=x(z.id);M.set(de,z),K(z)}),s.value=Array.from(M.values()),q()},re=async(v="")=>{if(!n.data)return[];const M=P();if(!M)return[];const z=new URLSearchParams;z.set("json","1"),v&&z.set("key",v),n.start===1&&z.set("start","1"),S.value!==null&&S.value!==void 0&&S.value!==""&&z.set("parent",String(S.value));try{return(await(await fetch(`${M}?${z.toString()}`)).json())?.data??[]}catch{return[]}},T=async v=>{if(!n.data||!v.length)return[];const M=P();if(!M)return[];const z=Array.from(new Set(v.map(_e=>x(_e)))),de=new URLSearchParams;de.set("json","1"),de.set("val",z.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(`${M}?${de.toString()}`)).json())?.data??[];return Q(Ie),Ie}catch{return[]}},F=async v=>{if(v==null||v==="")return null;const M=x(v),z=s.value.find(_e=>x(_e.id)===M);if(z)return z;const[de]=await T([v]);return de??null},A=async(v="",{force:M=!1}={})=>{if(!n.data)return;const z=S.value??null;if(!M&&d.value.keyword===v&&d.value.parent===z&&s.value.length>0)return;d.value={keyword:v,parent:z};const _e=await re(v);O(_e)},se=((v,M=200)=>{let z;return(...de)=>{z&&clearTimeout(z),z=setTimeout(()=>v(...de),M)}})(async v=>{n.data&&await A(v,{force:!0})},250),ee=e.ref(null),he=()=>{if(!h.value)return;const v=h.value.getBoundingClientRect(),M=window.innerHeight??document.documentElement.clientHeight,z=window.innerWidth??document.documentElement.clientWidth,de=8,_e=8,Pe=n.maxHeight??280,Ie=M-v.bottom-_e-de,Xe=v.top-_e-de,et=Ie>=Xe,ot=Math.max(z-de*2,0);let{width:R}=v;ot>0&&R>ot&&(R=ot);let{left:ue}=v;ue+R+de>z&&(ue=z-R-de),ue=Math.max(ue,de);const Ze=Math.min(Pe,Math.max(et?Ie:Xe,50));C.value={position:"fixed",left:`${ue}px`,width:`${R}px`,maxHeight:`${Ze}px`,transform:et?"none":"translateY(-100%)",top:et?`${v.bottom+_e}px`:`${v.top-_e}px`}},xe=async(v="click")=>{j.value||f.value||(ee.value=v,await A(g.value.trim()),f.value=!0,await e.nextTick(),he(),y.value?.focus())},ye=()=>{f.value=!1,ee.value=null,e.nextTick(()=>{y.value?.blur()})},$e=async v=>{if(v.stopPropagation(),!j.value){if(f.value){if(ee.value==="focus"){ee.value=null;return}ye();return}await xe("click")}},Le=v=>{v.key==="Escape"&&ye()},Oe=v=>{if(!f.value)return;const M=v.target;w.value?.contains(M)||ye()},Me=v=>{const M=v.target;m.value?.contains(M)||w.value?.contains(M)||ye()},ie=v=>{if(v.key==="Escape"){v.preventDefault(),ye();return}if(v.key==="Enter"){v.preventDefault();const M=N.value[0];M&&le(M)}},le=v=>{if(!v)return;const M=x(v.id);if(ne.value.has(M))return;K(v);const z={id:v.id,text:L(v)||String(v.id??""),key:U(v.id)};l.value=[...l.value,z],ke(v),g.value="",e.nextTick(()=>{y.value?.focus()})},ke=v=>{const M=l.value.map(z=>z.id);r("value-selected",{name:n.name,value:M,option:v})},Se=v=>{if(j.value)return;const M=l.value.filter(z=>x(z.id)!==x(v));l.value=M},{isOpenAdd:Te,addData:qe,addSchema:Y,addForm:te,addTitle:oe,addOption:pe,onAddValue:be}=yr({props:n,fetchOptionByValue:F,optionsList:s,selectedOption:e.ref(null),modelValue:a,onCreated:async(v,M)=>{const z=v??await F(M),de=z?.id??M;ne.value.has(x(de))||(z&&K(z),l.value=[...l.value,{id:de,text:z?L(z):String(de),key:U(de)}],ke(z??null))}}),Ae=v=>{j.value||(p.value=v)},Fe=v=>{if(j.value||p.value===null||p.value===v)return;const M=[...l.value],[z]=M.splice(p.value,1);M.splice(v,0,z),p.value=null,l.value=M},De=async()=>{const M=(Array.isArray(a.value)?[...a.value]:[]).filter(de=>de!=null);if(n.data&&M.length){const de=M.filter(_e=>!i.value[x(_e)]);de.length&&await T(de)}const z=M.map(de=>({id:de,text:i.value[x(de)]??String(de),key:U(de)}));_=!0,l.value=z};e.watch(l,v=>{if(_){_=!1;return}const M=v.map(z=>z.id);B=!0,a.value=M,r("change",M)},{deep:!0}),e.watch(a,()=>{if(B){B=!1;return}De()},{deep:!0}),e.watch(g,v=>{!n.data||!f.value||se(v.trim())}),e.watch(j,v=>{v&&ye()}),e.watch(()=>n.options,async v=>{n.data||(O(v??[]),await De())},{immediate:!0,deep:!0}),e.watch(()=>n.data,async v=>{v&&(await A(g.value.trim()),await De())},{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 A(g.value.trim()),await De()}}),e.onMounted(async()=>{document.addEventListener("click",Me,!0),window.addEventListener("keydown",Le),window.addEventListener("scroll",Oe,!0),await De()}),e.onUnmounted(()=>{document.removeEventListener("click",Me,!0),window.removeEventListener("keydown",Le),window.removeEventListener("scroll",Oe,!0)}),(v,M)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(we.VsModal),{visible:e.unref(Te),"onUpdate:visible":M[1]||(M[1]=z=>e.isRef(Te)?Te.value=z:null),class:"z-[1000]",title:e.unref(oe),buttonText:"Додати",onDone:e.unref(pe)},{default:e.withCtx(()=>[e.createVNode(pt,{schema:e.unref(Y),modelValue:e.unref(qe),"onUpdate:modelValue":M[0]||(M[0]=z=>e.isRef(qe)?qe.value=z:null),ref_key:"addForm",ref:te},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",Ff,[e.createElementVNode("div",{class:"relative flex-1",onClick:M[4]||(M[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{ref_key:"triggerRef",ref:h,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]",f.value?"border-[#2684ff] ring-1 ring-[#2684ff] shadow-[0_0_0_1px_rgba(38,132,255,0.5)]":"",j.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),role:"combobox","aria-expanded":f.value,"aria-haspopup":"listbox","data-focus":f.value?"true":"false",onClick:$e},[e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:y,"onUpdate:modelValue":M[2]||(M[2]=z=>g.value=z),placeholder:Z.value,disabled:j.value,readonly:!I.value,onFocus:M[3]||(M[3]=()=>xe("focus")),onKeydown:ie,class:"flex-1 bg-transparent border-0 outline-none px-0 py-1 text-sm text-stone-900 placeholder:text-stone-400"},null,40,Tf),[[e.vModelText,g.value]]),e.createElementVNode("span",{class:e.normalizeClass(["text-stone-400 transition-transform duration-150",f.value?"rotate-180":""]),"aria-hidden":"true"},[e.createVNode(e.unref(X.ChevronDown),{class:"h-4 w-4"})],2)],10,Df),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[f.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(C.value)},[e.createElementVNode("div",Lf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,z=>(e.openBlock(),e.createElementBlock("button",{key:x(z.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=>le(z),["stop"]),disabled:j.value},e.toDisplayString(L(z)),9,If))),128)),N.value.length===0?(e.openBlock(),e.createElementBlock("p",Of," Немає варіантів ")):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))]),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:M[5]||(M[5]=(...z)=>e.unref(be)&&e.unref(be)(...z)),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:j.value,type:"button"},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),M[8]||(M[8]=e.createElementVNode("span",null,"Додати",-1))],8,Pf)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Rf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(z,de)=>(e.openBlock(),e.createElementBlock("div",{key:z.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:M[6]||(M[6]=e.withModifiers(()=>{},["prevent"])),onDrop:_e=>Fe(de),onDragend:M[7]||(M[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:j.value,"aria-label":"Перетягнути"},[e.createVNode(e.unref(X.GripVertical),{class:"h-4 w-4"})],8,jf),e.createElementVNode("div",{class:"flex-1 text-sm text-stone-900",title:z.text},e.toDisplayString(z.text),9,Uf),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:j.value,onClick:e.withModifiers(_e=>Se(z.id),["stop"]),"aria-label":`Видалити ${z.text}`},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,Hf)],42,zf))),128)),l.value.length===0?(e.openBlock(),e.createElementBlock("p",qf,"Немає вибраних значень")):e.createCommentVNode("",!0)])],512)],64))}}),[["__scopeId","data-v-da4b4da7"]]),Kf={class:"flex items-center gap-2 w-full"},Wf={class:"relative flex-1"},Gf=["placeholder","disabled","onKeydown"],Yf=["disabled"],Xf={key:0,class:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/50"},Zf={class:"bg-white text-gray-900 rounded-lg shadow-lg w-[480px] max-h-[80vh] overflow-y-auto"},Jf={class:"p-3 border-b font-semibold text-gray-900 flex justify-between items-center"},Qf=["onClick"],eh={key:0,class:"p-4 text-sm text-gray-500"},Rr=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}=Qe(r.style),s=e.useModel(o,"modelValue"),i=e.computed({get:()=>s.value,set:I=>{s.value=I}}),c=e.ref(!1),d=e.ref([]),g=e.ref(!1),f=e.ref(null);e.watch(g,I=>{typeof document>"u"||(I?(f.value=document.body.style.overflow,document.body.style.overflow="hidden"):f.value!=null?(document.body.style.overflow=f.value,f.value=null):document.body.style.removeProperty("overflow"))}),e.onBeforeUnmount(()=>{typeof document>"u"||(f.value!=null?document.body.style.overflow=f.value:document.body.style.removeProperty("overflow"))});const p=e.computed(()=>r.placeholder??""),m=e.computed(()=>!!r.disabled),h=I=>{if(!I)return null;if(Array.isArray(I))return I;if(typeof I=="string"){const V=I.split(",").map(S=>S.trim()).filter(Boolean);return V.length!==4?null:V.map(Number)}return null},w=e.computed(()=>{const I=h(r.bbox);if(!I||I.length!==4)return null;const V=I.map(Number);return V.some(S=>Number.isNaN(S))?null:V}),y=e.computed(()=>{const I=w.value;if(!I)return"";const[V,S,x,L]=I;return`${V},${Math.max(S,L)},${x},${Math.min(S,L)}`});e.computed(()=>y.value?"1":"0");const C=e.inject("values");function _(){!m.value&&i.value.trim()&&B()}async function B(){const I=(i.value||"").trim();if(!I)return;let V=I;if(r.includes?.length&&C?.value){const x=r.includes.map(L=>C.value?.[L]).filter(Boolean);x.length&&(V=`${x.join(", ")}, ${I}`)}const S=Z(V);if(S){c.value=!0;try{const L=await(await fetch(S)).json();d.value=Array.isArray(L)?L:[],g.value=!0}catch(x){console.error("Address search error:",x)}finally{c.value=!1}}}function $(){g.value=!g.value}function j(I){if(!I)return;g.value=!1;const V=parseFloat(I.lat),x={type:"Point",coordinates:[parseFloat(I.lon),V]};r.geom&&C?.value&&(C.value[r.geom]=x),a("update:geom",x)}function Z(I){if(!r.api)return"";const V={value:encodeURIComponent(I),bbox:w.value?w.value.join(","):""};return r.api.replace(n,(S,x)=>V[x.trim()]??"")}return(I,V)=>(e.openBlock(),e.createElementBlock("div",Kf,[e.createElementVNode("div",Wf,[e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":V[0]||(V[0]=S=>i.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(_,["prevent"]),["enter"])},null,42,Gf),[[e.vModelText,i.value]]),d.value.length?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"absolute right-2 top-1/2 -translate-y-1/2 text-gray-500 hover:text-blue-600",onClick:$,title:"Show search results"},[e.createVNode(e.unref(X.Info),{class:"h-4 w-4"})])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:B,class:"flex items-center justify-center px-2 py-2 border rounded-md bg-white hover:bg-gray-50 text-gray-600 hover:text-blue-600 disabled:opacity-50 h-[38px]",disabled:c.value||!i.value?.trim()},[c.value?(e.openBlock(),e.createBlock(e.unref(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,Yf),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[g.value?(e.openBlock(),e.createElementBlock("div",Xf,[e.createElementVNode("div",Zf,[e.createElementVNode("div",Jf,[V[2]||(V[2]=e.createElementVNode("span",null,"Результати пошуку",-1)),e.createElementVNode("button",{class:"text-gray-500 hover:text-blue-600",onClick:V[1]||(V[1]=S=>g.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,x)=>(e.openBlock(),e.createElementBlock("li",{key:x,onClick:L=>j(S),class:"px-3 py-2 cursor-pointer hover:bg-gray-100 border-b text-sm"},e.toDisplayString(S.display_name),9,Qf))),128))]),d.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",eh," Не знайдено результатів "))])])):e.createCommentVNode("",!0)]))]))}}),th={class:"vs-datalist space-y-3"},nh={class:"space-y-3"},oh=["onClick","disabled"],rh={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},lh=["disabled"],ah=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(y=>({...y,disabled:t.disabled||y.disabled}))??[]),s=e.computed(()=>l.value.map(y=>w(y))),i=e.computed(()=>l.value.reduce((C,_)=>{const B=Number(_?.col??12);return C+(Number.isFinite(B)&&B>0?B:12)},0)>12),c=e.computed(()=>t.disabled?!1:t.maxItems?r.value.length<t.maxItems:!0),d=e.computed(()=>t.disabled||r.value.length<=(t.minItems||0));e.watch(()=>r.value.length,()=>{g(),f()},{immediate:!0}),e.watch(()=>t.schema,f,{immediate:!0,deep:!0});function g(){const y=r.value.length;a.value.length<y?a.value=[...a.value,...Array.from({length:y-a.value.length},()=>yo())]:a.value.length>y&&a.value.splice(y)}function f(){if(!t.minItems||r.value.length>=t.minItems)return;const y=t.minItems-r.value.length,C=Array.from({length:y},p);n.value=[...r.value,...C]}function p(){const y={};return l.value.forEach(C=>{y[C.name]=C?.default??null}),y}function m(){c.value&&(n.value=[...r.value,p()],g())}function h(y){d.value||(n.value=r.value.filter((C,_)=>_!==y),g(),f())}function w(y){return{...y}}return(y,C)=>(e.openBlock(),e.createElementBlock("div",th,[e.createElementVNode("div",nh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(_,B)=>(e.openBlock(),e.createElementBlock("div",{key:a.value[B],class:e.normalizeClass(["flex items-center gap-3 rounded-lg transition-colors",{"border border-gray-300 p-2":i.value}])},[e.createVNode(pt,{schema:s.value,layout:"inline",navigation:!1,values:r.value[B],"onUpdate:values":$=>r.value[B]=$,"form-id":a.value[B]},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:$=>h(B),disabled:d.value},[e.createVNode(e.unref(X.Trash2),{class:"h-4 w-4"})],8,oh)],2))),128)),r.value.length===0?(e.openBlock(),e.createElementBlock("div",rh,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:!c.value},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,lh)]))}}),[["__scopeId","data-v-d0065868"]]),sh={class:"vs-dataform space-y-4"},ih=["draggable","onDragstart","onDragover","onDragenter","onDrop"],ch={class:"flex items-center gap-2"},dh=["onClick"],uh={class:"text-sm font-medium text-gray-700"},ph={class:"flex items-center gap-2"},mh=["title","onClick","disabled"],fh=["title","onClick","disabled"],hh={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},gh=["disabled"],yh=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),i=e.ref(null),c=e.ref(null),d=e.computed(()=>t.groupLabel??"Group"),g=e.computed(()=>t.emptyLabel??"Ще немає груп"),f=e.computed(()=>t.schema?.map(A=>({...A,disabled:t.disabled||A.disabled}))??[]),p=e.computed(()=>f.value.map(A=>S(A))),m=e.computed(()=>t.view==="accordion"),h=e.computed(()=>!!(t.collapsible||m.value)),w=e.computed(()=>t.draggable!==!1),y=e.computed(()=>t.disabled?!1:t.maxGroups?n.value.length<t.maxGroups:!0),C=e.computed(()=>t.disabled||n.value.length<=(t.minGroups||0));e.watch(()=>n.value.length,()=>{_(),B(),$()},{immediate:!0}),e.watch(()=>t.schema,$,{immediate:!0,deep:!0}),e.watch(()=>t.view,()=>{B()},{immediate:!0});function _(){const A=n.value.length;r.value.length<A?r.value=[...r.value,...Array.from({length:A-r.value.length},()=>yo())]:r.value.length>A&&r.value.splice(A)}function B(){const A=n.value.length;m.value?A===0?l.value=-1:l.value>=A?l.value=A-1:l.value<0&&(l.value=0):a.value.length<A?a.value=[...a.value,...Array.from({length:A-a.value.length},()=>!1)]:a.value.length>A&&a.value.splice(A)}function $(){if(!t.minGroups||n.value.length>=t.minGroups)return;const A=t.minGroups-n.value.length,J=Array.from({length:A},j);n.value=[...n.value,...J],B()}function j(){const A={};return f.value.forEach(J=>{A[J.name]=J?.default??null}),A}function Z(){y.value&&(n.value=[...n.value,j()],_(),B())}function I(A){C.value||(n.value=n.value.filter((J,se)=>se!==A),_(),m.value?l.value>=n.value.length&&(l.value=n.value.length-1):a.value.splice(A,1),$())}function V(A){if(t.disabled)return;const J=JSON.parse(JSON.stringify(n.value[A]??{}));n.value=[...n.value.slice(0,A+1),J,...n.value.slice(A+1)],_(),m.value?l.value>A&&(l.value+=1):a.value.splice(A+1,0,a.value[A]??!1)}function S(A){return{...A}}function x(A){return m.value?l.value===-1&&A===0?!1:l.value!==A:!!a.value[A]}function L(A){if(h.value){if(m.value){l.value=A;return}a.value[A]=!a.value[A]}}function U(A,J){if(!w.value||t.disabled){J.preventDefault();return}s.value=A,i.value=A,c.value={groups:JSON.parse(JSON.stringify(n.value)),keys:[...r.value],states:[...a.value]},J.dataTransfer?.setData("text/plain",String(A)),J.dataTransfer?.setDragImage?.(J.currentTarget,0,0)}function ne(A,J){!w.value||t.disabled||s.value!==null&&Q(A,J)}function N(A,J){Q(A,J)}function P(A){!w.value||t.disabled||F()}function q(){c.value&&O(),s.value=null,i.value=null,c.value=null}function K(A,J){const se=[...n.value],[ee]=se.splice(A,1);se.splice(J,0,ee),n.value=se;const he=[...r.value],[xe]=he.splice(A,1);if(he.splice(J,0,xe),r.value=he,m.value)l.value===A&&(l.value=J);else{const ye=[...a.value],[$e]=ye.splice(A,1);ye.splice(J,0,$e),a.value=ye}}function O(){c.value&&(n.value=c.value.groups,r.value=c.value.keys,a.value=c.value.states,c.value=null,i.value=null)}function Q(A,J){if(s.value===null)return;const se=re(A,J);i.value=se,T(se)}function re(A,J){if(!J?.currentTarget)return A;const se=J.currentTarget.getBoundingClientRect(),he=J.clientY-se.top>se.height/2?A+1:A;return Math.max(0,Math.min(he,n.value.length))}function T(A){const J=s.value;if(J===null)return;let se=A;if(se>n.value.length&&(se=n.value.length),se===J||se===J+1)return;const ee=se>J?se-1:se;K(J,ee),s.value=ee,i.value=se>J?ee+1:ee}function F(){c.value=null,s.value=null,i.value=null}return(A,J)=>(e.openBlock(),e.createElementBlock("div",sh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(se,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":x(ee)?"pt-6 px-6":"p-6"]]),draggable:w.value&&!t.disabled,onDragstart:he=>U(ee,he),onDragend:q,onDragover:e.withModifiers(he=>ne(ee,he),["prevent"]),onDragenter:e.withModifiers(he=>N(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"&&!x(ee)?"rounded-t-lg":"rounded-lg"]])},[e.createElementVNode("div",ch,[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),h.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=>L(ee)},[e.createVNode(e.unref(X.ChevronDown),{class:e.normalizeClass(["h-4 w-4 transition",x(ee)?"-rotate-90":"rotate-0"])},null,8,["class"])],8,dh)):e.createCommentVNode("",!0),e.createElementVNode("div",uh,e.toDisplayString(`${d.value} (${ee+1})`),1)]),e.createElementVNode("div",ph,[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=>V(ee),disabled:t.disabled,draggable:"false"},[e.createVNode(e.unref(X.Copy),{class:"h-4 w-4"})],8,mh),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=>I(ee),disabled:C.value,draggable:"false"},[e.createVNode(e.unref(X.Trash2),{class:"h-4 w-4"})],8,fh)])],2),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(t.view==="accordion"?"p-6":"pt-6")},[e.createVNode(pt,{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,!x(ee)]])],42,ih))),128)),n.value.length===0?(e.openBlock(),e.createElementBlock("div",hh,e.toDisplayString(g.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:!y.value},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,gh)]))}}),[["__scopeId","data-v-cfbcfed8"]]),zn="__vs_form_monaco_loader__",jt="__vs_form_monaco_script_loader__",jn="__vs_form_monaco_editor_loader__",xo=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,i=null,c=!1;const d=()=>{if(i)return Promise.resolve(i);if(typeof window>"u")return Promise.resolve(null);const h=window;if(h.monaco?.editor?.create)return i=h.monaco,Promise.resolve(i);if(h[zn])return h[zn];const y=(async()=>{const C=$=>{if(Array.from(document.styleSheets||[]).some(I=>I?.href?.includes($)))return;const Z=document.createElement("link");Z.rel="stylesheet",Z.href=$,document.head.appendChild(Z)},_=$=>{if(h[jt]?.[$])return h[jt][$];h[jt]||={};const j=Array.from(document.scripts).find(Z=>Z.src===$);return j?(h[jt][$]=new Promise((Z,I)=>{const V=j.readyState;if(j.dataset.loaded==="true"||V==="loaded"||V==="complete"){Z();return}j.addEventListener("load",()=>{j.dataset.loaded="true",Z()},{once:!0}),j.addEventListener("error",S=>I(S),{once:!0})}),h[jt][$]):(h[jt][$]=new Promise((Z,I)=>{const V=document.createElement("script");V.src=$,V.async=!0,V.onload=()=>{V.dataset.loaded="true",Z()},V.onerror=S=>I(S),document.body.appendChild(V)}),h[jt][$])},B="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs";return C(`${B}/editor/editor.main.min.css`),await _(`${B}/loader.min.js`),h[jn]||(h[jn]=new Promise(($,j)=>{window.require.config({paths:{vs:B}}),window.require(["vs/editor/editor.main"],()=>{i=window.monaco,h.monaco=i,$(i)},Z=>j(Z))}).catch($=>{throw delete h[jn],$})),h[jn]})().catch(C=>{throw delete h[zn],C});return h[zn]=y,y},g=()=>{!a.value||!i||(s&&(s.dispose(),s=null),s=i.editor.create(a.value,{value:r.value||"",language:n.syntax,theme:n.theme,automaticLayout:!0,minimap:{enabled:!!n.minimap},readOnly:!!n.disabled}),s.onDidChangeModelContent(()=>{c||(r.value=s.getValue())}))},f=()=>{s?.focus()},p=()=>s,m=()=>i;return e.watch(()=>r.value,h=>{if(!s)return;const w=s.getValue();h!==w&&(c=!0,s.setValue(h||""),c=!1)}),e.watch(()=>n.syntax,h=>{!s||!i||i.editor.setModelLanguage(s.getModel(),h||"xml")}),e.watch(()=>n.theme,h=>{i&&i.editor.setTheme(h||"vs-light")}),e.watch(()=>n.disabled,h=>{s&&s.updateOptions({readOnly:!!h})}),e.watch(()=>n.minimap,h=>{s&&s.updateOptions({minimap:{enabled:!!h}})}),e.onMounted(async()=>{try{const h=await d();if(!h||!h.editor)return;i=h,g()}catch(h){console.error("Failed to load Monaco editor",h)}}),e.onBeforeUnmount(()=>{s&&(s.dispose(),s=null)}),t({focus:f,getEditor:p,getMonaco:m}),(h,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))}}),zr={VsInputText:Ht,VsInputRadio:co,VsInputInlineSelect:Fn,"vs-input-text":Ht,"vs-input-password":da,"vs-input-textarea":kr,"vs-input-richtext":wr,"vs-input-mask":xn,"vs-input-number":Wo,"vs-input-radio":co,"vs-input-select":go,"vs-input-inline-select":Fn,"inline-select":Fn,"vs-input-switcher":lo,"vs-input-static":ao,"vs-input-container":gr,"vs-input-date":rr,"vs-input-checkbox":Xo,"vs-input-file":mr,"vs-input-file2":Nn,file2:Nn,File2:Nn,"vs-input-html":ao,"vs-input-email":so,"vs-input-tel":io,"vs-input-datatable":xr,"vs-input-map":Nr,"vs-input-file-list":fr,"vs-input-tags":Mr,"vs-input-slug":Fr,"vs-input-codegen":Dr,"vs-input-key-value":Tr,"vs-input-text[]":Lr,"vs-input-range":Or,"vs-input-color":Ir,"vs-input-native-select":go,VsInputArraySelect:Rn,"vs-input-array":Pr,"vs-input-array-select":Rn,"array-select":Rn,"vs-input-address":Rr,"vs-input-datalist":ah,"vs-input-dataform":yh,"vs-input-monaco":xo},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 i=s?.result||s?.message||s?.error||s?.detail;return l.status===400&&typeof i=="string"&&i.trim().toLowerCase()==="not found"?"Дані не знайдено.":l.status===500?"Помилка на сервері.":typeof i=="string"&&i.trim()?i:"При спробі завантажити дані виникла помилка."}async function a(){try{if(!t.api)return;const l=t.api.replace("{{value}}",t.value),s=await fetch(l);if(!s.ok){let c=null;try{c=await s.json()}catch{try{c=await s.text()}catch{c=null}}we.notify({type:"warning",title:"Validation",message:r(s,c)});return}const i=await s.json();if(!t.set||!n)return;for(const[c,d]of Object.entries(t.set))n.value[c]=i.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))}}),kh={class:"flex flex-col gap-1 w-full"},wh={class:"w-full"},xh=["disabled"],vh=["innerHTML"],_h=2e3,Ch=10,jr=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(()=>ia[`${n.layout}`]),s=["label","placeholder","info","description","text","html"],i=e.ref(U()),c=e.computed(()=>S(n.item,i.value)),d=e.computed(()=>{const N={...c.value??{}},P=n.item?.name;return P&&f?.value?.[P]&&Object.assign(N,f.value[P]),N.__locale=i.value,N}),g=e.computed(()=>zr?.[`vs-input-${n.item.type}`]),f=e.inject("field-props"),p=e.computed(()=>{const N=e.unref(g);if(!N)return new Set;const P=N.props??N.__vccOpts?.props;if(!P)return new Set;const q=Array.isArray(P)?P:Object.keys(P);return new Set(q)}),h=[...["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 y(N){const P={};Object.entries(N).forEach(([K,O])=>{w.has(K)||K.includes(":")||O!==void 0&&(P[K]=O)});const q=N.props;return q&&typeof q=="object"&&!Array.isArray(q)&&Object.entries(q).forEach(([K,O])=>{O!==void 0&&(P[K]=O)}),P}const C=e.computed(()=>{const N={...c.value??{}},P=n.item?.name;P&&f?.value?.[P]&&Object.assign(N,f.value[P]);const q=p.value;let K;return q.size?K=Object.fromEntries(Object.entries(N).filter(([O])=>q.has(O))):K={...N},Object.assign(K,y(N)),h.forEach(O=>{const Q=N[O];Q!=null&&(K[O]=Q)}),K}),_=N=>{const P=typeof N=="object"&&N!==null?N:{value:N};a("value-selected",{...P,name:P.name??n.item?.name})},B=/{{\s*([^}]+?)\s*}}/g,$=e.inject("values"),j=e.ref(!1),Z=e.computed(()=>{const N=n.item?.api,P=n.item?.type?.toLowerCase();return typeof N=="string"&&N.trim().length>0&&(P==="text"||P==="mask")});function I(N,P){if(!(N==null||!P))return P.split(".").reduce((q,K)=>q?.[K.trim()],N)}async function V(){const N=String(r.value??"").trim();if(!N)return;const P=(n.item?.api??"").trim();if(!P)return;const q=P.replace(B,(K,O)=>O.trim()==="value"?encodeURIComponent(N):"");j.value=!0;try{let K=await fetch(q),O=0;for(;K.status===202&&O<Ch;)O+=1,await new Promise(A=>{setTimeout(A,_h)}),K=await fetch(q);if(K.status===202){we.notify({type:"warning",title:"Validation",message:"Сервер ще обробляє запит. Спробуйте пізніше."});return}if(!K.ok){we.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const Q=await K.json(),re=Q?.result!==void 0?Q.result:Q,T=n.item?.set;if(!T||!$?.value)return;const F=n.item?.name;Object.entries(T).forEach(([A,J])=>{if(!A)return;let se=J;F&&se.startsWith(`${F}.`)&&(se=se.slice(F.length+1));const ee=I(re,se);$.value[A]=ee??null})}catch(K){console.error("API lookup error:",K),we.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."})}finally{j.value=!1}}e.onMounted(()=>{i.value=U(),window.addEventListener("storage",ne)}),e.onUnmounted(()=>{window.removeEventListener("storage",ne)});function S(N,P){if(!N)return{};const q={...N};return s.forEach(K=>{const O=L(N,K,P);O!=null&&(q[K]=O)}),Array.isArray(N.options)&&(q.options=N.options.map(K=>x(K,P))),q}function x(N,P){if(!N)return N;const q={...N},K=L(N,"label",P),O=L(N,"text",P);return K!=null&&(q.label=K),O!=null?q.text=O:K!=null&&(q.text=K),q}function L(N,P,q){const K=`${P}:${q}`;if(N?.[K]!=null)return N[K];if(P==="label"&&N?.[q]!=null)return N[q];if(N?.[P]!=null)return N[P];if(P==="label"){if(N?.ua!=null)return N.ua;if(N?.en!=null)return N.en}if(P==="text"||P==="html"){if(N?.ua!=null)return N.ua;if(N?.en!=null)return N.en}return null}function U(){return typeof window>"u"?"uk":localStorage.getItem("locale")||"uk"}function ne(){i.value=U()}return(N,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",kh,[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center gap-2 w-full",{"flex-1":Z.value}])},[e.createElementVNode("div",wh,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(g.value),e.mergeProps(C.value,{modelValue:r.value,"onUpdate:modelValue":P[0]||(P[0]=q=>r.value=q),onValueSelected:_}),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:j.value||!r.value?.toString().trim(),onClick:V},[j.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,xh)):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,vh)):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"]))}}),Eh={class:"text-sm text-gray-800 mb-[4px] font-medium dark:text-neutral-300"},Bh={class:"vs-compact-form-navigation__rail mt-[6px]"},Vh=["onClick"],Sh=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),i=e.computed(()=>["vs-compact-form-navigation flex flex-col pl-[6px] pt-[8px] pr-[8px]","sticky top-0 self-start shrink-0","max-h-full min-h-0 overflow-y-auto"]),c=e.computed(()=>{const L=n.width;if(L==null)return{};const U=typeof L=="number"?`${L}px`:`${L}`;return{width:U,minWidth:U}});let d=null,g=0,f=0,p=null,m=null,h=null;const w=()=>S(),y=()=>_();e.watch(()=>n.target,async L=>{if(Z(),!L){p=null,r.value=[],a.value="";return}p=L,s.value&&(await e.nextTick(),j(L),_())},{immediate:!0}),e.watch(()=>n.scrollContainer,L=>{if(!s.value){m=L??null;return}C(L??null),e.nextTick(()=>_())},{immediate:!0}),e.onMounted(()=>{n.scrollContainer||C(null),_()}),e.onBeforeUnmount(()=>{Z(),C(null,!0),p=null,typeof window<"u"&&(g&&window.cancelAnimationFrame(g),f&&window.cancelAnimationFrame(f))});function C(L,U=!1){if(h&&(h(),h=null),U){m=null;return}if(m=L??null,typeof window>"u")return;const ne=L??window,N=window;ne.addEventListener("scroll",w,{passive:!0}),N.addEventListener("resize",y),h=()=>{ne.removeEventListener("scroll",w),N.removeEventListener("resize",y)}}function _(){if(!s.value||!p)return;g&&typeof window<"u"&&window.cancelAnimationFrame(g);const L=()=>{B(),g=0};typeof window>"u"?L():g=window.requestAnimationFrame(L)}function B(){if(!s.value||!p)return;const L=Array.from(p.querySelectorAll("h1, h2")),U=new Set,ne=[];L.forEach((N,P)=>{const q=N.textContent?.trim()??"";if(!q)return;let K=(N.getAttribute("id")??"").trim();K||(K=$(q)||`heading-${P+1}`);let O=K,Q=1;for(;U.has(O);)O=`${K}-${Q+=1}`;N.id!==O&&Object.assign(N,{id:O}),U.add(O),ne.push({id:O,text:q,level:N.tagName.toLowerCase()==="h1"?1:2})}),r.value=ne,ne.length||(a.value=""),V()}function $(L){return L.toLowerCase().replace(/[^a-z0-9\s-]/g,"").trim().replace(/\s+/g,"-")}function j(L){!L||!s.value||typeof MutationObserver>"u"||(Z(),d=new MutationObserver(()=>_()),d.observe(L,{childList:!0,subtree:!0}))}function Z(){d&&(d.disconnect(),d=null)}function I(L){const U=m;if(!U)return typeof window>"u"?L.offsetTop:L.getBoundingClientRect().top+window.scrollY;const ne=L.getBoundingClientRect(),N=U.getBoundingClientRect();return ne.top-N.top+U.scrollTop}function V(){if(!s.value||!r.value.length)return;const L=m,U=(L?L.scrollTop:null)||(typeof window<"u"?window.scrollY:0),ne=(L?L.clientHeight:null)||(typeof window<"u"?window.innerHeight:0),N=U+ne;let P=null;for(let K=0;K<r.value.length;K+=1){const O=r.value[K],Q=document.getElementById(O.id);if(Q){const re=I(Q);re+Q.offsetHeight>U&&re<N&&(P=O.id)}}!P&&l.value&&(P=l.value),P&&(l.value=P);const q=L?L.scrollHeight-L.clientHeight:document.documentElement.scrollHeight-window.innerHeight;U+5>=q&&(P=r.value[r.value.length-1].id),P&&(a.value=P)}function S(){s.value&&(f&&window.cancelAnimationFrame(f),f=window.requestAnimationFrame(()=>{V(),f=0}))}function x(L){if(!s.value)return;const U=document.getElementById(L);if(!U)return;const ne=m,N=Math.max(0,I(U));ne?ne.scrollTo({top:N,behavior:"smooth"}):typeof window<"u"&&window.scrollTo({top:N,behavior:"smooth"})}return t({refresh:_}),(L,U)=>s.value&&r.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(i.value),style:e.normalizeStyle(c.value)},[e.createElementVNode("h2",Eh,e.toDisplayString(L.title),1),e.createElementVNode("div",Bh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,ne=>(e.openBlock(),e.createElementBlock("div",{key:ne.id,class:e.normalizeClass(["vs-compact-form-navigation__item relative",ne.level===2?"vs-compact-form-navigation__item--nested":"",ne.id===a.value?"vs-compact-form-navigation__item--active":""])},[e.createElementVNode("button",{type:"button",onClick:N=>x(ne.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",ne.level===2?"pl-[15px]":"pl-[18px]",ne.id===a.value?"text-gray-800":"text-gray-500"])},[e.createElementVNode("span",null,e.toDisplayString(ne.text),1)],10,Vh)],2))),128))])],6)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-1584a562"]]),ht={required:"Це поле є обов’язковим",email:"Неправильний email",tel:"Неправильний телефон",minlength:o=>`Мінімальна довжина — ${o} символів`,maxlength:o=>`Максимальна довжина — ${o} символів`,min:o=>`Значення має бути не менше ${o}`,max:o=>`Значення має бути не більше ${o}`},$h=o=>typeof o=="string"?o.trim()?!1:ht.required:Array.isArray(o)?o.map(n=>typeof n=="string"?n.trim():n).filter(n=>n!=null&&n!=="").length?!1:ht.required:typeof o=="number"?Number?.isNaN(o)?ht?.required:!1:o?!1:ht.required,Ah=o=>{const t=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/;return o?t.test(o)?!1:ht.email:!1},Nh=(o,t)=>{if(!o)return!1;const n=String(o).trim();if(!/^\+[1-9]\d{1,14}$/.test(n))return ht.tel;const l=(typeof t?.digits=="number"&&Number.isFinite(t.digits)&&t.digits>0?t.digits:Mt(_t))||Mt(_t);return n.length-1!==l?ht.tel:!1},Ur=o=>o==null?0:typeof o=="string"?o.trim().length:Array.isArray(o)?o.length:typeof o=="number"?o.toString().length:String(o).length,Mh=(o,t)=>{if(o==null)return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&Ur(o)<n?t?.message||ht.minlength(n):!1},Fh=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&Ur(o)>n?t?.message||ht.maxlength(n):!1},Un=o=>{if(typeof o=="number")return o;if(typeof o=="string"){const t=o.trim().replace(",",".");return t?Number(t):Number.NaN}return Number(o)},Dh=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value);if(!Number.isFinite(n))return!1;const r=Un(o);return Number.isFinite(r)&&r<n?t?.message||ht.min(n):!1},Th=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value);if(!Number.isFinite(n))return!1;const r=Un(o);return Number.isFinite(r)&&r>n?t?.message||ht.max(n):!1},Lh=(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=Un(o),s=Un(a);return!Number.isFinite(l)||!Number.isFinite(s)?!1:l>s?t?.message||`Значення має бути не більше ${s}`:!1},Ih=(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},Oh=(o,t)=>!1,Ph=(o,t,n)=>{switch(typeof t=="string"?t:t.type){case"required":return $h(o);case"email":return Ah(o);case"tel":return Nh(o,typeof t=="object"?t:void 0);case"regexp":return Ih(o,t);case"minlength":return Mh(o,t);case"maxlength":return Fh(o,t);case"min":return Dh(o,t);case"max":return Th(o,t);case"maxField":return Lh(o,t,n);case"custom":return Oh();default:return!1}},Rh={autocomplete:"select",combobox:"select",datepicker:"date",markedtext:"mask",html:"static",geom:"map",filelist:"file-list",file:"file",dropzone:"file",inlineselect:"inline-select"};function Hr(o){const t=o?.toLowerCase();return Rh[t]||t}function vo(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=Hr(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||_t,i=Mt(s)||Mt(_t);l.rules=[{type:"tel",digits:i}]}a.data&&(l.api=`/api/suggest/${a.data}`),l.disabled=l.disabled??t,Array.isArray(l.schema)&&(l.schema=vo(l.schema,l.disabled)),r.push(l)}),r}const n=[];return Object.entries(o).forEach(r=>{const a={name:r[0],...r[1],type:Hr(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||_t,s=Mt(l)||Mt(_t);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=vo(a.schema,a.disabled)),n.push(a)}),n}function zh(o,t,n=!1){const r=e.computed(()=>vo((Array.isArray(t),t),typeof n=="boolean"?n:n.value)),a=e.ref({});function l(p){return hr(o?.value,p?.conditions)}const s=new Set(["maxField"]);function i(p){return typeof p.maxField=="string"&&p.maxField?!0:(p.rules||[]).some(m=>{const h=typeof m=="string"?m:m.type;return h?s.has(h):!1})}function c(p){const m=[],h=Number(p?.minlength),w=Number(p?.maxlength),y=Number(p?.min),C=Number(p?.max);!Number.isNaN(h)&&Number.isFinite(h)&&m.push({type:"minlength",value:h}),!Number.isNaN(w)&&Number.isFinite(w)&&m.push({type:"maxlength",value:w}),!Number.isNaN(y)&&Number.isFinite(y)&&m.push({type:"min",value:y}),!Number.isNaN(C)&&Number.isFinite(C)&&m.push({type:"max",value:C}),typeof p?.maxField=="string"&&p.maxField&&m.push({type:"maxField",field:p.maxField,message:p.maxFieldMessage});const _=[...m,...p.rules||[]];if(!_.length)return;if(!l(p)){delete a.value[p.name];return}let B=!1,$=null;_.forEach(j=>{const Z=Ph(o.value[p.name],j,o.value);Z&&(B=!0,!$&&typeof Z=="string"&&($=Z))}),B&&$?a.value[p.name]=$:delete a.value[p.name]}const d=(p=r.value,m=!0)=>(p.forEach(h=>{c(h),h.schema&&d(h.schema,!1)}),m&&Object.values(a.value).some(Boolean)?a.value:null);e.watch(o,()=>{const p=[],m=h=>{h.forEach(w=>{i(w)&&p.push(w),w.schema&&m(w.schema)})};m(r.value),p.forEach(c)},{deep:!0});const g=e.computed(()=>r.value?.filter(p=>p.hidden!==!0&&l(p)));return{errors:a,validate:d,reset:()=>{o.value={},a.value={}},visibleSchema:g}}const jh={class:"flex w-full h-full min-h-0 gap-6"},Uh={key:0,"data-orientation":"horizontal",role:"none",class:"mt-1 shrink-0 h-[1px] w-full bg-slate-100 dark:bg-slate-600"},pt=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"),i=e.useModel(o,"modelValue"),c=e.useModel(o,"values"),d=e.computed({get:()=>c.value??i.value,set:q=>{i.value=q,c.value=q}}),{errors:g,validate:f,reset:p,visibleSchema:m}=zh(d,a.schema,e.toRef(a,"disabled")),h=e.ref(null),w=e.ref(null),y=e.ref({}),C=e.computed(()=>a.navigation),_=e.computed(()=>a.navWidth),B=e.computed(()=>a.style?.columns),$=Object.freeze({container:12,label:3}),j=e.computed(()=>a.columns??B.value??$),Z=e.computed(()=>a.columns!=null||B.value!=null),I=e.computed(()=>Z.value?"horizontal":a.layout),V=q=>q?.columns?"horizontal":I.value,S=q=>q?.columns??j.value,x=e.computed(()=>{const q={},K=O=>{if(!O)return;(Array.isArray(O)?O.map((re,T)=>({key:String(T),entry:re})):typeof O=="object"?Object.entries(O).map(([re,T])=>({key:re,entry:T})):[]).forEach(({key:re,entry:T})=>{if(!T||typeof T!="object")return;const F=T.name?String(T.name):re;F&&(q[F]={...T,name:F}),Array.isArray(T.schema)&&K(T.schema)})};return K(a.schema),q}),L=()=>{!l.value&&d.value&&delete d.value.id,r("update:modelValue",d.value),f(),r("handle-submit",d.value)},U=q=>{r("value-selected",q)};t({validate:f,reset:p,errors:g}),e.onMounted(()=>{s.value={value:d.value,errors:g.value,reset:p,validate:f,formId:a.formId}});function ne(q,K){if(q===K)return!0;if(typeof q!="object"||typeof K!="object"||!q||!K)return!1;const O=Object.keys(q),Q=Object.keys(K);return O.length!==Q.length?!1:O.every(re=>q[re]===K[re])}function N(q){return Array.isArray(q)?[...q]:q&&typeof q=="object"?{...q}:q}function P(q){Array.isArray(q)&&q.forEach(K=>{if(!K)return;const O=K.name,Q=K.default!==void 0;O&&Q&&d.value[O]===void 0&&(d.value[O]=N(K.default)),Array.isArray(K.schema)&&P(K.schema)})}return e.watch(m,q=>{P(q)},{immediate:!0,deep:!0}),e.provide("form",s),e.provide("values",d),e.provide("field-props",y),e.provide("schema-by-name",x),(q,K)=>(e.openBlock(),e.createElementBlock("div",jh,[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:h,onSubmit:e.withModifiers(L,["prevent"]),class:e.normalizeClass(["grid grid-cols-12 p-1",I.value==="default"?"gap-6":"gap-4"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(m),(O,Q)=>(e.openBlock(),e.createElementBlock("div",{key:O.name,class:e.normalizeClass(V(O)==="horizontal"?"col-span-12":`col-span-12 md:col-span-${O.col||12}`)},[e.createVNode(jr,{style:e.normalizeStyle(q.style),item:O,layout:V(O),columns:S(O),"model-value":d.value[O.name],"onUpdate:modelValue":re=>{if(O.name==="id"&&!l.value)return;const T=d.value[O.name];ne(T,re)||(d.value[O.name]=re)},error:e.unref(g)[O.name],onValueSelected:U},null,8,["style","item","layout","columns","model-value","onUpdate:modelValue","error"]),V(O)==="settings"&&Q+1!==e.unref(m).length?(e.openBlock(),e.createElementBlock("div",Uh)):e.createCommentVNode("",!0)],2))),128))],34)],512),e.createVNode(Sh,{target:h.value,"scroll-container":w.value,enabled:C.value,width:_.value},null,8,["target","scroll-container","enabled","width"])]))}}),Hh={class:"relative"},qh={class:"w-full h-full fixed top-0 start-0 bg-black bg-opacity-50"},Kh={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"},Wh={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},Gh={class:"font-medium text-gray-800 dark:text-[#ffffff]"},Yh={class:"p-4 mim-h-0 h-full overflow-auto"},qr=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({}),i=e.ref(n.token||""),c=e.ref(n.token||""),d=e.ref(n.mode),g=()=>{const y=n.method?.trim().toUpperCase();return y==="GET"||y==="POST"||y==="PUT"?y:d.value==="add"?"POST":"PUT"},f=()=>{we.notify({type:"success",title:"Успішно",message:`Дані успішно ${d.value==="add"?"збережено":"оновлено"}`})},p=y=>{const C={};y.id!==void 0&&y.id!==null&&(C.id=y.id,c.value=y.id.toString()),y.obj&&typeof y.obj=="object"&&Object.assign(C,y.obj),Object.keys(C).length&&(l.value={...l.value,...C})},m=async y=>{if(console.log(y),y.ok){await y.json().catch(()=>({})),f(),r("save",l.value);return}const C=await y.json().catch(()=>({})),_=C.message||C.error;if(y.status===400){we.notify({type:"warning",title:"Помилка валідації",message:_||"Некоректні дані (400)"});return}if(y.status===500){we.notify({type:"error",title:"Серверна помилка",message:_||"Виникла помилка на сервері (500)"});return}we.notify({type:"error",title:"Помилка",message:`Статус: ${y.status}`})};async function h(){const y=s.value.validate();if(y){we.notify({type:"warning",title:"Помилка валідації",message:Object.entries(y).map(([_,B])=>`${_}: ${B}`).join(`
5
- `)});return}d.value==="add"&&l.value&&delete l.value.id;const C=n.api?.trim();if(C){const _=g();try{const B=await fetch(C,{method:_,headers:_==="GET"?void 0:{"Content-Type":"application/json"},body:_==="GET"?void 0:JSON.stringify(l.value)});await m(B)}catch(B){we.notify({type:"error",title:"Помилка з’єднання",message:B.message||"Не вдалося виконати запит"})}return}if(i.value)try{const _=await fetch(`/api/table/${i.value}`,{method:d.value==="add"?"POST":"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(l.value)});await m(_)}catch(_){we.notify({type:"error",title:"Помилка з’єднання",message:_.message||"Не вдалося виконати запит"})}else r("edit",l.value),w()}function w(){r("close")}return e.onMounted(async()=>{try{if(n.form&&!n.schema){const y=await fetch(`/api/template/form/${n.form}`);if(!y.ok){we.notify({type:y.status>=400&&y.status<500?"warning":"error",title:"Error",message:`Error code: ${y.status}`});return}const C=await y.json();a.value=C.schema,C.id&&(c.value=C.id),C.token&&(i.value=C.token,c.value||(c.value=C.token))}else if(n.token&&!n.defaultValue){i.value=n.token;const y=await fetch(`/api/form/${i.value}`);if(!y.ok){we.notify({type:y.status>=400&&y.status<500?"warning":"error",title:"Error",message:`Error code: ${y.status}`});return}const C=await y.json();a.value=C.schema,C.data?l.value=C.data:d.value="add",p({id:C.id,obj:C.obj})}}catch(y){we.notify({type:"error",title:"Error",message:y.message||"Unexpected error"}),console.error(y)}}),(y,C)=>(e.openBlock(),e.createElementBlock("div",Hh,[e.createElementVNode("div",qh,[e.createElementVNode("div",Kh,[e.createElementVNode("div",Wh,[e.createElementVNode("h3",Gh,e.toDisplayString(d.value==="add"?"Додати":"Змінити"),1),e.createElementVNode("button",{onClick:w,type:"button",class:"size-8 inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:hover:bg-neutral-600 dark:text-neutral-400 dark:focus:bg-neutral-600"},[C[2]||(C[2]=e.createElementVNode("span",{class:"sr-only"},"Close",-1)),e.createVNode(e.unref(X.X),{class:"h-4 w-4 flex-shrink-0"})])]),e.createElementVNode("div",Yh,[a.value?(e.openBlock(),e.createBlock(pt,{key:0,schema:a.value,values:l.value,"onUpdate:values":C[0]||(C[0]=_=>l.value=_),form:s.value,"onUpdate:form":C[1]||(C[1]=_=>s.value=_),formId:c.value},null,8,["schema","values","form","formId"])):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:"vs-form__head mr-5 mb-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},[e.createElementVNode("button",{type:"button",onClick:w,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:h,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"}," Зберегти ")])])])]))}}),Kr=no.form.richtext,Wr=oo.form.richtext,_o={en:{form:{richtext:Kr}},uk:{form:{richtext:Wr}}},Gr=(o={mode:"edit",schema:null})=>new Promise(t=>{const{close:n}=we.modal({title:o.mode==="add"?"Додати":"Редагувати",template:"",visible:!0,size:"medium",closeClickBack:!0,content:qr,contentProps:{...o,onClose:()=>{t(null),n()},onSave:r=>{t(r),n()}}})});pt.install=function(t){t.component("VForm",pt),Object.assign(t.config.globalProperties,{$form:Gr}),t.provide("form",Gr),window.v3plugin||(window.v3plugin={})};function Ft(o){return typeof o=="string"||o instanceof String}function Yr(o){var t;return typeof o=="object"&&o!=null&&(o==null||(t=o.constructor)==null?void 0:t.name)==="Object"}function Xr(o,t){return Array.isArray(t)?Xr(o,(n,r)=>t.includes(r)):Object.entries(o).reduce((n,r)=>{let[a,l]=r;return t(l,a)&&(n[a]=l),n},{})}const ge={NONE:"NONE",LEFT:"LEFT",FORCE_LEFT:"FORCE_LEFT",RIGHT:"RIGHT",FORCE_RIGHT:"FORCE_RIGHT"};function Zr(o){switch(o){case ge.LEFT:return ge.FORCE_LEFT;case ge.RIGHT:return ge.FORCE_RIGHT;default:return o}}function Co(o){return o.replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1")}function Hn(o,t){if(t===o)return!0;const n=Array.isArray(t),r=Array.isArray(o);let a;if(n&&r){if(t.length!=o.length)return!1;for(a=0;a<t.length;a++)if(!Hn(t[a],o[a]))return!1;return!0}if(n!=r)return!1;if(t&&o&&typeof t=="object"&&typeof o=="object"){const l=t instanceof Date,s=o instanceof Date;if(l&&s)return t.getTime()==o.getTime();if(l!=s)return!1;const i=t instanceof RegExp,c=o instanceof RegExp;if(i&&c)return t.toString()==o.toString();if(i!=c)return!1;const d=Object.keys(t);for(a=0;a<d.length;a++)if(!Object.prototype.hasOwnProperty.call(o,d[a]))return!1;for(a=0;a<d.length;a++)if(!Hn(o[d[a]],t[d[a]]))return!1;return!0}else if(t&&o&&typeof t=="function"&&typeof o=="function")return t.toString()===o.toString();return!1}class Xh{constructor(t){for(Object.assign(this,t);this.value.slice(0,this.startChangePos)!==this.oldValue.slice(0,this.startChangePos);)--this.oldSelection.start;if(this.insertedCount)for(;this.value.slice(this.cursorPos)!==this.oldValue.slice(this.oldSelection.end);)this.value.length-this.cursorPos<this.oldValue.length-this.oldSelection.end?++this.oldSelection.end:++this.cursorPos}get startChangePos(){return Math.min(this.cursorPos,this.oldSelection.start)}get insertedCount(){return this.cursorPos-this.startChangePos}get inserted(){return this.value.substr(this.startChangePos,this.insertedCount)}get removedCount(){return Math.max(this.oldSelection.end-this.startChangePos||this.oldValue.length-this.value.length,0)}get removed(){return this.oldValue.substr(this.startChangePos,this.removedCount)}get head(){return this.value.substring(0,this.startChangePos)}get tail(){return this.value.substring(this.startChangePos+this.insertedCount)}get removeDirection(){return!this.removedCount||this.insertedCount?ge.NONE:(this.oldSelection.end===this.cursorPos||this.oldSelection.start===this.cursorPos)&&this.oldSelection.end===this.oldSelection.start?ge.RIGHT:ge.LEFT}}function Ce(o,t){return new Ce.InputMask(o,t)}function Jr(o){if(o==null)throw new Error("mask property should be defined");return o instanceof RegExp?Ce.MaskedRegExp:Ft(o)?Ce.MaskedPattern:o===Date?Ce.MaskedDate:o===Number?Ce.MaskedNumber:Array.isArray(o)||o===Array?Ce.MaskedDynamic:Ce.Masked&&o.prototype instanceof Ce.Masked?o:Ce.Masked&&o instanceof Ce.Masked?o.constructor:o instanceof Function?Ce.MaskedFunction:(console.warn("Mask not found for mask",o),Ce.Masked)}function Wt(o){if(!o)throw new Error("Options in not defined");if(Ce.Masked){if(o.prototype instanceof Ce.Masked)return{mask:o};const{mask:t=void 0,...n}=o instanceof Ce.Masked?{mask:o}:Yr(o)&&o.mask instanceof Ce.Masked?o:{};if(t){const r=t.mask;return{...Xr(t,(a,l)=>!l.startsWith("_")),mask:t.constructor,_mask:r,...n}}}return Yr(o)?{...o}:{mask:o}}function yt(o){if(Ce.Masked&&o instanceof Ce.Masked)return o;const t=Wt(o),n=Jr(t.mask);if(!n)throw new Error("Masked class is not found for provided mask "+t.mask+", appropriate module needs to be imported manually before creating mask.");return t.mask===n&&delete t.mask,t._mask&&(t.mask=t._mask,delete t._mask),new n(t)}Ce.createMask=yt;class qn{get selectionStart(){let t;try{t=this._unsafeSelectionStart}catch{}return t??this.value.length}get selectionEnd(){let t;try{t=this._unsafeSelectionEnd}catch{}return t??this.value.length}select(t,n){if(!(t==null||n==null||t===this.selectionStart&&n===this.selectionEnd))try{this._unsafeSelect(t,n)}catch{}}get isActive(){return!1}}Ce.MaskElement=qn;const Qr=90,Zh=89;class rn extends qn{constructor(t){super(),this.input=t,this._onKeydown=this._onKeydown.bind(this),this._onInput=this._onInput.bind(this),this._onBeforeinput=this._onBeforeinput.bind(this),this._onCompositionEnd=this._onCompositionEnd.bind(this)}get rootElement(){var t,n,r;return(t=(n=(r=this.input).getRootNode)==null?void 0:n.call(r))!=null?t:document}get isActive(){return this.input===this.rootElement.activeElement}bindEvents(t){this.input.addEventListener("keydown",this._onKeydown),this.input.addEventListener("input",this._onInput),this.input.addEventListener("beforeinput",this._onBeforeinput),this.input.addEventListener("compositionend",this._onCompositionEnd),this.input.addEventListener("drop",t.drop),this.input.addEventListener("click",t.click),this.input.addEventListener("focus",t.focus),this.input.addEventListener("blur",t.commit),this._handlers=t}_onKeydown(t){if(this._handlers.redo&&(t.keyCode===Qr&&t.shiftKey&&(t.metaKey||t.ctrlKey)||t.keyCode===Zh&&t.ctrlKey))return t.preventDefault(),this._handlers.redo(t);if(this._handlers.undo&&t.keyCode===Qr&&(t.metaKey||t.ctrlKey))return t.preventDefault(),this._handlers.undo(t);t.isComposing||this._handlers.selectionChange(t)}_onBeforeinput(t){if(t.inputType==="historyUndo"&&this._handlers.undo)return t.preventDefault(),this._handlers.undo(t);if(t.inputType==="historyRedo"&&this._handlers.redo)return t.preventDefault(),this._handlers.redo(t)}_onCompositionEnd(t){this._handlers.input(t)}_onInput(t){t.isComposing||this._handlers.input(t)}unbindEvents(){this.input.removeEventListener("keydown",this._onKeydown),this.input.removeEventListener("input",this._onInput),this.input.removeEventListener("beforeinput",this._onBeforeinput),this.input.removeEventListener("compositionend",this._onCompositionEnd),this.input.removeEventListener("drop",this._handlers.drop),this.input.removeEventListener("click",this._handlers.click),this.input.removeEventListener("focus",this._handlers.focus),this.input.removeEventListener("blur",this._handlers.commit),this._handlers={}}}Ce.HTMLMaskElement=rn;class el extends rn{constructor(t){super(t),this.input=t}get _unsafeSelectionStart(){return this.input.selectionStart!=null?this.input.selectionStart:this.value.length}get _unsafeSelectionEnd(){return this.input.selectionEnd}_unsafeSelect(t,n){this.input.setSelectionRange(t,n)}get value(){return this.input.value}set value(t){this.input.value=t}}Ce.HTMLMaskElement=rn;class Eo extends rn{get _unsafeSelectionStart(){const t=this.rootElement,n=t.getSelection&&t.getSelection(),r=n&&n.anchorOffset,a=n&&n.focusOffset;return a==null||r==null||r<a?r:a}get _unsafeSelectionEnd(){const t=this.rootElement,n=t.getSelection&&t.getSelection(),r=n&&n.anchorOffset,a=n&&n.focusOffset;return a==null||r==null||r>a?r:a}_unsafeSelect(t,n){if(!this.rootElement.createRange)return;const r=this.rootElement.createRange();r.setStart(this.input.firstChild||this.input,t),r.setEnd(this.input.lastChild||this.input,n);const a=this.rootElement,l=a.getSelection&&a.getSelection();l&&(l.removeAllRanges(),l.addRange(r))}get value(){return this.input.textContent||""}set value(t){this.input.textContent=t}}Ce.HTMLContenteditableMaskElement=Eo;class Kn{constructor(){this.states=[],this.currentIndex=0}get currentState(){return this.states[this.currentIndex]}get isEmpty(){return this.states.length===0}push(t){this.currentIndex<this.states.length-1&&(this.states.length=this.currentIndex+1),this.states.push(t),this.states.length>Kn.MAX_LENGTH&&this.states.shift(),this.currentIndex=this.states.length-1}go(t){return this.currentIndex=Math.min(Math.max(this.currentIndex+t,0),this.states.length-1),this.currentState}undo(){return this.go(-1)}redo(){return this.go(1)}clear(){this.states.length=0,this.currentIndex=0}}Kn.MAX_LENGTH=100;class tl{constructor(t,n){this.el=t instanceof qn?t:t.isContentEditable&&t.tagName!=="INPUT"&&t.tagName!=="TEXTAREA"?new Eo(t):new el(t),this.masked=yt(n),this._listeners={},this._value="",this._unmaskedValue="",this._rawInputValue="",this.history=new Kn,this._saveSelection=this._saveSelection.bind(this),this._onInput=this._onInput.bind(this),this._onChange=this._onChange.bind(this),this._onDrop=this._onDrop.bind(this),this._onFocus=this._onFocus.bind(this),this._onClick=this._onClick.bind(this),this._onUndo=this._onUndo.bind(this),this._onRedo=this._onRedo.bind(this),this.alignCursor=this.alignCursor.bind(this),this.alignCursorFriendly=this.alignCursorFriendly.bind(this),this._bindEvents(),this.updateValue(),this._onChange()}maskEquals(t){var n;return t==null||((n=this.masked)==null?void 0:n.maskEquals(t))}get mask(){return this.masked.mask}set mask(t){if(this.maskEquals(t))return;if(!(t instanceof Ce.Masked)&&this.masked.constructor===Jr(t)){this.masked.updateOptions({mask:t});return}const n=t instanceof Ce.Masked?t:yt({mask:t});n.unmaskedValue=this.masked.unmaskedValue,this.masked=n}get value(){return this._value}set value(t){this.value!==t&&(this.masked.value=t,this.updateControl("auto"))}get unmaskedValue(){return this._unmaskedValue}set unmaskedValue(t){this.unmaskedValue!==t&&(this.masked.unmaskedValue=t,this.updateControl("auto"))}get rawInputValue(){return this._rawInputValue}set rawInputValue(t){this.rawInputValue!==t&&(this.masked.rawInputValue=t,this.updateControl(),this.alignCursor())}get typedValue(){return this.masked.typedValue}set typedValue(t){this.masked.typedValueEquals(t)||(this.masked.typedValue=t,this.updateControl("auto"))}get displayValue(){return this.masked.displayValue}_bindEvents(){this.el.bindEvents({selectionChange:this._saveSelection,input:this._onInput,drop:this._onDrop,click:this._onClick,focus:this._onFocus,commit:this._onChange,undo:this._onUndo,redo:this._onRedo})}_unbindEvents(){this.el&&this.el.unbindEvents()}_fireEvent(t,n){const r=this._listeners[t];r&&r.forEach(a=>a(n))}get selectionStart(){return this._cursorChanging?this._changingCursorPos:this.el.selectionStart}get cursorPos(){return this._cursorChanging?this._changingCursorPos:this.el.selectionEnd}set cursorPos(t){!this.el||!this.el.isActive||(this.el.select(t,t),this._saveSelection())}_saveSelection(){this.displayValue!==this.el.value&&console.warn("Element value was changed outside of mask. Syncronize mask using `mask.updateValue()` to work properly."),this._selection={start:this.selectionStart,end:this.cursorPos}}updateValue(){this.masked.value=this.el.value,this._value=this.masked.value,this._unmaskedValue=this.masked.unmaskedValue,this._rawInputValue=this.masked.rawInputValue}updateControl(t){const n=this.masked.unmaskedValue,r=this.masked.value,a=this.masked.rawInputValue,l=this.displayValue,s=this.unmaskedValue!==n||this.value!==r||this._rawInputValue!==a;this._unmaskedValue=n,this._value=r,this._rawInputValue=a,this.el.value!==l&&(this.el.value=l),t==="auto"?this.alignCursor():t!=null&&(this.cursorPos=t),s&&this._fireChangeEvents(),!this._historyChanging&&(s||this.history.isEmpty)&&this.history.push({unmaskedValue:n,selection:{start:this.selectionStart,end:this.cursorPos}})}updateOptions(t){const{mask:n,...r}=t,a=!this.maskEquals(n),l=this.masked.optionsIsChanged(r);a&&(this.mask=n),l&&this.masked.updateOptions(r),(a||l)&&this.updateControl()}updateCursor(t){t!=null&&(this.cursorPos=t,this._delayUpdateCursor(t))}_delayUpdateCursor(t){this._abortUpdateCursor(),this._changingCursorPos=t,this._cursorChanging=setTimeout(()=>{this.el&&(this.cursorPos=this._changingCursorPos,this._abortUpdateCursor())},10)}_fireChangeEvents(){this._fireEvent("accept",this._inputEvent),this.masked.isComplete&&this._fireEvent("complete",this._inputEvent)}_abortUpdateCursor(){this._cursorChanging&&(clearTimeout(this._cursorChanging),delete this._cursorChanging)}alignCursor(){this.cursorPos=this.masked.nearestInputPos(this.masked.nearestInputPos(this.cursorPos,ge.LEFT))}alignCursorFriendly(){this.selectionStart===this.cursorPos&&this.alignCursor()}on(t,n){return this._listeners[t]||(this._listeners[t]=[]),this._listeners[t].push(n),this}off(t,n){if(!this._listeners[t])return this;if(!n)return delete this._listeners[t],this;const r=this._listeners[t].indexOf(n);return r>=0&&this._listeners[t].splice(r,1),this}_onInput(t){this._inputEvent=t,this._abortUpdateCursor();const n=new Xh({value:this.el.value,cursorPos:this.cursorPos,oldValue:this.displayValue,oldSelection:this._selection}),r=this.masked.rawInputValue,a=this.masked.splice(n.startChangePos,n.removed.length,n.inserted,n.removeDirection,{input:!0,raw:!0}).offset,l=r===this.masked.rawInputValue?n.removeDirection:ge.NONE;let s=this.masked.nearestInputPos(n.startChangePos+a,l);l!==ge.NONE&&(s=this.masked.nearestInputPos(s,ge.NONE)),this.updateControl(s),delete this._inputEvent}_onChange(){this.displayValue!==this.el.value&&this.updateValue(),this.masked.doCommit(),this.updateControl(),this._saveSelection()}_onDrop(t){t.preventDefault(),t.stopPropagation()}_onFocus(t){this.alignCursorFriendly()}_onClick(t){this.alignCursorFriendly()}_onUndo(){this._applyHistoryState(this.history.undo())}_onRedo(){this._applyHistoryState(this.history.redo())}_applyHistoryState(t){t&&(this._historyChanging=!0,this.unmaskedValue=t.unmaskedValue,this.el.select(t.selection.start,t.selection.end),this._saveSelection(),this._historyChanging=!1)}destroy(){this._unbindEvents(),this._listeners.length=0,delete this.el}}Ce.InputMask=tl;class Ve{static normalize(t){return Array.isArray(t)?t:[t,new Ve]}constructor(t){Object.assign(this,{inserted:"",rawInserted:"",tailShift:0,skip:!1},t)}aggregate(t){return this.inserted+=t.inserted,this.rawInserted+=t.rawInserted,this.tailShift+=t.tailShift,this.skip=this.skip||t.skip,this}get offset(){return this.tailShift+this.inserted.length}get consumed(){return!!this.rawInserted||this.skip}equals(t){return this.inserted===t.inserted&&this.tailShift===t.tailShift&&this.rawInserted===t.rawInserted&&this.skip===t.skip}}Ce.ChangeDetails=Ve;class bt{constructor(t,n,r){t===void 0&&(t=""),n===void 0&&(n=0),this.value=t,this.from=n,this.stop=r}toString(){return this.value}extend(t){this.value+=String(t)}appendTo(t){return t.append(this.toString(),{tail:!0}).aggregate(t._appendPlaceholder())}get state(){return{value:this.value,from:this.from,stop:this.stop}}set state(t){Object.assign(this,t)}unshift(t){if(!this.value.length||t!=null&&this.from>=t)return"";const n=this.value[0];return this.value=this.value.slice(1),n}shift(){if(!this.value.length)return"";const t=this.value[this.value.length-1];return this.value=this.value.slice(0,-1),t}}class Ge{constructor(t){this._value="",this._update({...Ge.DEFAULTS,...t}),this._initialized=!0}updateOptions(t){this.optionsIsChanged(t)&&this.withValueRefresh(this._update.bind(this,t))}_update(t){Object.assign(this,t)}get state(){return{_value:this.value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value}reset(){this._value=""}get value(){return this._value}set value(t){this.resolve(t,{input:!0})}resolve(t,n){n===void 0&&(n={input:!0}),this.reset(),this.append(t,n,""),this.doCommit()}get unmaskedValue(){return this.value}set unmaskedValue(t){this.resolve(t,{})}get typedValue(){return this.parse?this.parse(this.value,this):this.unmaskedValue}set typedValue(t){this.format?this.value=this.format(t,this):this.unmaskedValue=String(t)}get rawInputValue(){return this.extractInput(0,this.displayValue.length,{raw:!0})}set rawInputValue(t){this.resolve(t,{raw:!0})}get displayValue(){return this.value}get isComplete(){return!0}get isFilled(){return this.isComplete}nearestInputPos(t,n){return t}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),Math.min(this.displayValue.length,n-t)}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),this.displayValue.slice(t,n)}extractTail(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),new bt(this.extractInput(t,n),t)}appendTail(t){return Ft(t)&&(t=new bt(String(t))),t.appendTo(this)}_appendCharRaw(t,n){return t?(this._value+=t,new Ve({inserted:t,rawInserted:t})):new Ve}_appendChar(t,n,r){n===void 0&&(n={});const a=this.state;let l;if([t,l]=this.doPrepareChar(t,n),t&&(l=l.aggregate(this._appendCharRaw(t,n)),!l.rawInserted&&this.autofix==="pad")){const s=this.state;this.state=a;let i=this.pad(n);const c=this._appendCharRaw(t,n);i=i.aggregate(c),c.rawInserted||i.equals(l)?l=i:this.state=s}if(l.inserted){let s,i=this.doValidate(n)!==!1;if(i&&r!=null){const c=this.state;if(this.overwrite===!0){s=r.state;for(let g=0;g<l.rawInserted.length;++g)r.unshift(this.displayValue.length-l.tailShift)}let d=this.appendTail(r);if(i=d.rawInserted.length===r.toString().length,!(i&&d.inserted)&&this.overwrite==="shift"){this.state=c,s=r.state;for(let g=0;g<l.rawInserted.length;++g)r.shift();d=this.appendTail(r),i=d.rawInserted.length===r.toString().length}i&&d.inserted&&(this.state=c)}i||(l=new Ve,this.state=a,r&&s&&(r.state=s))}return l}_appendPlaceholder(){return new Ve}_appendEager(){return new Ve}append(t,n,r){if(!Ft(t))throw new Error("value should be string");const a=Ft(r)?new bt(String(r)):r;n!=null&&n.tail&&(n._beforeTailState=this.state);let l;[t,l]=this.doPrepare(t,n);for(let s=0;s<t.length;++s){const i=this._appendChar(t[s],n,a);if(!i.rawInserted&&!this.doSkipInvalid(t[s],n,a))break;l.aggregate(i)}return(this.eager===!0||this.eager==="append")&&n!=null&&n.input&&t&&l.aggregate(this._appendEager()),a!=null&&(l.tailShift+=this.appendTail(a).tailShift),l}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),this._value=this.displayValue.slice(0,t)+this.displayValue.slice(n),new Ve}withValueRefresh(t){if(this._refreshing||!this._initialized)return t();this._refreshing=!0;const n=this.rawInputValue,r=this.value,a=t();return this.rawInputValue=n,this.value&&this.value!==r&&r.indexOf(this.value)===0&&(this.append(r.slice(this.displayValue.length),{},""),this.doCommit()),delete this._refreshing,a}runIsolated(t){if(this._isolated||!this._initialized)return t(this);this._isolated=!0;const n=this.state,r=t(this);return this.state=n,delete this._isolated,r}doSkipInvalid(t,n,r){return!!this.skipInvalid}doPrepare(t,n){return n===void 0&&(n={}),Ve.normalize(this.prepare?this.prepare(t,this,n):t)}doPrepareChar(t,n){return n===void 0&&(n={}),Ve.normalize(this.prepareChar?this.prepareChar(t,this,n):t)}doValidate(t){return(!this.validate||this.validate(this.value,this,t))&&(!this.parent||this.parent.doValidate(t))}doCommit(){this.commit&&this.commit(this.value,this)}splice(t,n,r,a,l){r===void 0&&(r=""),a===void 0&&(a=ge.NONE),l===void 0&&(l={input:!0});const s=t+n,i=this.extractTail(s),c=this.eager===!0||this.eager==="remove";let d;c&&(a=Zr(a),d=this.extractInput(0,s,{raw:!0}));let g=t;const f=new Ve;if(a!==ge.NONE&&(g=this.nearestInputPos(t,n>1&&t!==0&&!c?ge.NONE:a),f.tailShift=g-t),f.aggregate(this.remove(g)),c&&a!==ge.NONE&&d===this.rawInputValue)if(a===ge.FORCE_LEFT){let p;for(;d===this.rawInputValue&&(p=this.displayValue.length);)f.aggregate(new Ve({tailShift:-1})).aggregate(this.remove(p-1))}else a===ge.FORCE_RIGHT&&i.unshift();return f.aggregate(this.append(r,l,i))}maskEquals(t){return this.mask===t}optionsIsChanged(t){return!Hn(this,t)}typedValueEquals(t){const n=this.typedValue;return t===n||Ge.EMPTY_VALUES.includes(t)&&Ge.EMPTY_VALUES.includes(n)||(this.format?this.format(t,this)===this.format(this.typedValue,this):!1)}pad(t){return new Ve}}Ge.DEFAULTS={skipInvalid:!0},Ge.EMPTY_VALUES=[void 0,null,""],Ce.Masked=Ge;class Dt{constructor(t,n){t===void 0&&(t=[]),n===void 0&&(n=0),this.chunks=t,this.from=n}toString(){return this.chunks.map(String).join("")}extend(t){if(!String(t))return;t=Ft(t)?new bt(String(t)):t;const n=this.chunks[this.chunks.length-1],r=n&&(n.stop===t.stop||t.stop==null)&&t.from===n.from+n.toString().length;if(t instanceof bt)r?n.extend(t.toString()):this.chunks.push(t);else if(t instanceof Dt){if(t.stop==null){let a;for(;t.chunks.length&&t.chunks[0].stop==null;)a=t.chunks.shift(),a.from+=t.from,this.extend(a)}t.toString()&&(t.stop=t.blockIndex,this.chunks.push(t))}}appendTo(t){if(!(t instanceof Ce.MaskedPattern))return new bt(this.toString()).appendTo(t);const n=new Ve;for(let r=0;r<this.chunks.length;++r){const a=this.chunks[r],l=t._mapPosToBlock(t.displayValue.length),s=a.stop;let i;if(s!=null&&(!l||l.index<=s)&&((a instanceof Dt||t._stops.indexOf(s)>=0)&&n.aggregate(t._appendPlaceholder(s)),i=a instanceof Dt&&t._blocks[s]),i){const c=i.appendTail(a);n.aggregate(c);const d=a.toString().slice(c.rawInserted.length);d&&n.aggregate(t.append(d,{tail:!0}))}else n.aggregate(t.append(a.toString(),{tail:!0}))}return n}get state(){return{chunks:this.chunks.map(t=>t.state),from:this.from,stop:this.stop,blockIndex:this.blockIndex}}set state(t){const{chunks:n,...r}=t;Object.assign(this,r),this.chunks=n.map(a=>{const l="chunks"in a?new Dt:new bt;return l.state=a,l})}unshift(t){if(!this.chunks.length||t!=null&&this.from>=t)return"";const n=t!=null?t-this.from:t;let r=0;for(;r<this.chunks.length;){const a=this.chunks[r],l=a.unshift(n);if(a.toString()){if(!l)break;++r}else this.chunks.splice(r,1);if(l)return l}return""}shift(){if(!this.chunks.length)return"";let t=this.chunks.length-1;for(;0<=t;){const n=this.chunks[t],r=n.shift();if(n.toString()){if(!r)break;--t}else this.chunks.splice(t,1);if(r)return r}return""}}class Jh{constructor(t,n){this.masked=t,this._log=[];const{offset:r,index:a}=t._mapPosToBlock(n)||(n<0?{index:0,offset:0}:{index:this.masked._blocks.length,offset:0});this.offset=r,this.index=a,this.ok=!1}get block(){return this.masked._blocks[this.index]}get pos(){return this.masked._blockStartPos(this.index)+this.offset}get state(){return{index:this.index,offset:this.offset,ok:this.ok}}set state(t){Object.assign(this,t)}pushState(){this._log.push(this.state)}popState(){const t=this._log.pop();return t&&(this.state=t),t}bindBlock(){this.block||(this.index<0&&(this.index=0,this.offset=0),this.index>=this.masked._blocks.length&&(this.index=this.masked._blocks.length-1,this.offset=this.block.displayValue.length))}_pushLeft(t){for(this.pushState(),this.bindBlock();0<=this.index;--this.index,this.offset=((n=this.block)==null?void 0:n.displayValue.length)||0){var n;if(t())return this.ok=!0}return this.ok=!1}_pushRight(t){for(this.pushState(),this.bindBlock();this.index<this.masked._blocks.length;++this.index,this.offset=0)if(t())return this.ok=!0;return this.ok=!1}pushLeftBeforeFilled(){return this._pushLeft(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,ge.FORCE_LEFT),this.offset!==0))return!0})}pushLeftBeforeInput(){return this._pushLeft(()=>{if(!this.block.isFixed)return this.offset=this.block.nearestInputPos(this.offset,ge.LEFT),!0})}pushLeftBeforeRequired(){return this._pushLeft(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,ge.LEFT),!0})}pushRightBeforeFilled(){return this._pushRight(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,ge.FORCE_RIGHT),this.offset!==this.block.value.length))return!0})}pushRightBeforeInput(){return this._pushRight(()=>{if(!this.block.isFixed)return this.offset=this.block.nearestInputPos(this.offset,ge.NONE),!0})}pushRightBeforeRequired(){return this._pushRight(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,ge.NONE),!0})}}class Bo{constructor(t){Object.assign(this,t),this._value="",this.isFixed=!0}get value(){return this._value}get unmaskedValue(){return this.isUnmasking?this.value:""}get rawInputValue(){return this._isRawInput?this.value:""}get displayValue(){return this.value}reset(){this._isRawInput=!1,this._value=""}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),this._value=this._value.slice(0,t)+this._value.slice(n),this._value||(this._isRawInput=!1),new Ve}nearestInputPos(t,n){n===void 0&&(n=ge.NONE);const r=0,a=this._value.length;switch(n){case ge.LEFT:case ge.FORCE_LEFT:return r;case ge.NONE:case ge.RIGHT:case ge.FORCE_RIGHT:default:return a}}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),this._isRawInput?n-t:0}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),r===void 0&&(r={}),r.raw&&this._isRawInput&&this._value.slice(t,n)||""}get isComplete(){return!0}get isFilled(){return!!this._value}_appendChar(t,n){if(n===void 0&&(n={}),this.isFilled)return new Ve;const r=this.eager===!0||this.eager==="append",l=this.char===t&&(this.isUnmasking||n.input||n.raw)&&(!n.raw||!r)&&!n.tail,s=new Ve({inserted:this.char,rawInserted:l?this.char:""});return this._value=this.char,this._isRawInput=l&&(n.raw||n.input),s}_appendEager(){return this._appendChar(this.char,{tail:!0})}_appendPlaceholder(){const t=new Ve;return this.isFilled||(this._value=t.inserted=this.char),t}extractTail(){return new bt("")}appendTail(t){return Ft(t)&&(t=new bt(String(t))),t.appendTo(this)}append(t,n,r){const a=this._appendChar(t[0],n);return r!=null&&(a.tailShift+=this.appendTail(r).tailShift),a}doCommit(){}get state(){return{_value:this._value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value,this._isRawInput=!!t._rawInputValue}pad(t){return this._appendPlaceholder()}}class ln{constructor(t){const{parent:n,isOptional:r,placeholderChar:a,displayChar:l,lazy:s,eager:i,...c}=t;this.masked=yt(c),Object.assign(this,{parent:n,isOptional:r,placeholderChar:a,displayChar:l,lazy:s,eager:i})}reset(){this.isFilled=!1,this.masked.reset()}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),t===0&&n>=1?(this.isFilled=!1,this.masked.remove(t,n)):new Ve}get value(){return this.masked.value||(this.isFilled&&!this.isOptional?this.placeholderChar:"")}get unmaskedValue(){return this.masked.unmaskedValue}get rawInputValue(){return this.masked.rawInputValue}get displayValue(){return this.masked.value&&this.displayChar||this.value}get isComplete(){return!!this.masked.value||this.isOptional}_appendChar(t,n){if(n===void 0&&(n={}),this.isFilled)return new Ve;const r=this.masked.state;let a=this.masked._appendChar(t,this.currentMaskFlags(n));return a.inserted&&this.doValidate(n)===!1&&(a=new Ve,this.masked.state=r),!a.inserted&&!this.isOptional&&!this.lazy&&!n.input&&(a.inserted=this.placeholderChar),a.skip=!a.inserted&&!this.isOptional,this.isFilled=!!a.inserted,a}append(t,n,r){return this.masked.append(t,this.currentMaskFlags(n),r)}_appendPlaceholder(){return this.isFilled||this.isOptional?new Ve:(this.isFilled=!0,new Ve({inserted:this.placeholderChar}))}_appendEager(){return new Ve}extractTail(t,n){return this.masked.extractTail(t,n)}appendTail(t){return this.masked.appendTail(t)}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),this.masked.extractInput(t,n,r)}nearestInputPos(t,n){n===void 0&&(n=ge.NONE);const r=0,a=this.value.length,l=Math.min(Math.max(t,r),a);switch(n){case ge.LEFT:case ge.FORCE_LEFT:return this.isComplete?l:r;case ge.RIGHT:case ge.FORCE_RIGHT:return this.isComplete?l:a;case ge.NONE:default:return l}}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),this.value.slice(t,n).length}doValidate(t){return this.masked.doValidate(this.currentMaskFlags(t))&&(!this.parent||this.parent.doValidate(this.currentMaskFlags(t)))}doCommit(){this.masked.doCommit()}get state(){return{_value:this.value,_rawInputValue:this.rawInputValue,masked:this.masked.state,isFilled:this.isFilled}}set state(t){this.masked.state=t.masked,this.isFilled=t.isFilled}currentMaskFlags(t){var n;return{...t,_beforeTailState:(t==null||(n=t._beforeTailState)==null?void 0:n.masked)||t?._beforeTailState}}pad(t){return new Ve}}ln.DEFAULT_DEFINITIONS={0:/\d/,a:/[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,"*":/./};class nl extends Ge{updateOptions(t){super.updateOptions(t)}_update(t){const n=t.mask;n&&(t.validate=r=>r.search(n)>=0),super._update(t)}}Ce.MaskedRegExp=nl;class Ye extends Ge{constructor(t){super({...Ye.DEFAULTS,...t,definitions:Object.assign({},ln.DEFAULT_DEFINITIONS,t?.definitions)})}updateOptions(t){super.updateOptions(t)}_update(t){t.definitions=Object.assign({},this.definitions,t.definitions),super._update(t),this._rebuildMask()}_rebuildMask(){const t=this.definitions;this._blocks=[],this.exposeBlock=void 0,this._stops=[],this._maskedBlocks={};const n=this.mask;if(!n||!t)return;let r=!1,a=!1;for(let l=0;l<n.length;++l){if(this.blocks){const d=n.slice(l),g=Object.keys(this.blocks).filter(p=>d.indexOf(p)===0);g.sort((p,m)=>m.length-p.length);const f=g[0];if(f){const{expose:p,repeat:m,...h}=Wt(this.blocks[f]),w={lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,overwrite:this.overwrite,autofix:this.autofix,...h,repeat:m,parent:this},y=m!=null?new Ce.RepeatBlock(w):yt(w);y&&(this._blocks.push(y),p&&(this.exposeBlock=y),this._maskedBlocks[f]||(this._maskedBlocks[f]=[]),this._maskedBlocks[f].push(this._blocks.length-1)),l+=f.length-1;continue}}let s=n[l],i=s in t;if(s===Ye.STOP_CHAR){this._stops.push(this._blocks.length);continue}if(s==="{"||s==="}"){r=!r;continue}if(s==="["||s==="]"){a=!a;continue}if(s===Ye.ESCAPE_CHAR){if(++l,s=n[l],!s)break;i=!1}const c=i?new ln({isOptional:a,lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,...Wt(t[s]),parent:this}):new Bo({char:s,eager:this.eager,isUnmasking:r});this._blocks.push(c)}}get state(){return{...super.state,_blocks:this._blocks.map(t=>t.state)}}set state(t){if(!t){this.reset();return}const{_blocks:n,...r}=t;this._blocks.forEach((a,l)=>a.state=n[l]),super.state=r}reset(){super.reset(),this._blocks.forEach(t=>t.reset())}get isComplete(){return this.exposeBlock?this.exposeBlock.isComplete:this._blocks.every(t=>t.isComplete)}get isFilled(){return this._blocks.every(t=>t.isFilled)}get isFixed(){return this._blocks.every(t=>t.isFixed)}get isOptional(){return this._blocks.every(t=>t.isOptional)}doCommit(){this._blocks.forEach(t=>t.doCommit()),super.doCommit()}get unmaskedValue(){return this.exposeBlock?this.exposeBlock.unmaskedValue:this._blocks.reduce((t,n)=>t+=n.unmaskedValue,"")}set unmaskedValue(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.unmaskedValue=t,this.appendTail(n),this.doCommit()}else super.unmaskedValue=t}get value(){return this.exposeBlock?this.exposeBlock.value:this._blocks.reduce((t,n)=>t+=n.value,"")}set value(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.value=t,this.appendTail(n),this.doCommit()}else super.value=t}get typedValue(){return this.exposeBlock?this.exposeBlock.typedValue:super.typedValue}set typedValue(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.typedValue=t,this.appendTail(n),this.doCommit()}else super.typedValue=t}get displayValue(){return this._blocks.reduce((t,n)=>t+=n.displayValue,"")}appendTail(t){return super.appendTail(t).aggregate(this._appendPlaceholder())}_appendEager(){var t;const n=new Ve;let r=(t=this._mapPosToBlock(this.displayValue.length))==null?void 0:t.index;if(r==null)return n;this._blocks[r].isFilled&&++r;for(let a=r;a<this._blocks.length;++a){const l=this._blocks[a]._appendEager();if(!l.inserted)break;n.aggregate(l)}return n}_appendCharRaw(t,n){n===void 0&&(n={});const r=this._mapPosToBlock(this.displayValue.length),a=new Ve;if(!r)return a;for(let s=r.index,i;i=this._blocks[s];++s){var l;const c=i._appendChar(t,{...n,_beforeTailState:(l=n._beforeTailState)==null||(l=l._blocks)==null?void 0:l[s]});if(a.aggregate(c),c.consumed)break}return a}extractTail(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const r=new Dt;return t===n||this._forEachBlocksInRange(t,n,(a,l,s,i)=>{const c=a.extractTail(s,i);c.stop=this._findStopBefore(l),c.from=this._blockStartPos(l),c instanceof Dt&&(c.blockIndex=l),r.extend(c)}),r}extractInput(t,n,r){if(t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),r===void 0&&(r={}),t===n)return"";let a="";return this._forEachBlocksInRange(t,n,(l,s,i,c)=>{a+=l.extractInput(i,c,r)}),a}_findStopBefore(t){let n;for(let r=0;r<this._stops.length;++r){const a=this._stops[r];if(a<=t)n=a;else break}return n}_appendPlaceholder(t){const n=new Ve;if(this.lazy&&t==null)return n;const r=this._mapPosToBlock(this.displayValue.length);if(!r)return n;const a=r.index,l=t??this._blocks.length;return this._blocks.slice(a,l).forEach(s=>{if(!s.lazy||t!=null){var i;n.aggregate(s._appendPlaceholder((i=s._blocks)==null?void 0:i.length))}}),n}_mapPosToBlock(t){let n="";for(let r=0;r<this._blocks.length;++r){const a=this._blocks[r],l=n.length;if(n+=a.displayValue,t<=n.length)return{index:r,offset:t-l}}}_blockStartPos(t){return this._blocks.slice(0,t).reduce((n,r)=>n+=r.displayValue.length,0)}_forEachBlocksInRange(t,n,r){n===void 0&&(n=this.displayValue.length);const a=this._mapPosToBlock(t);if(a){const l=this._mapPosToBlock(n),s=l&&a.index===l.index,i=a.offset,c=l&&s?l.offset:this._blocks[a.index].displayValue.length;if(r(this._blocks[a.index],a.index,i,c),l&&!s){for(let d=a.index+1;d<l.index;++d)r(this._blocks[d],d,0,this._blocks[d].displayValue.length);r(this._blocks[l.index],l.index,0,l.offset)}}}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const r=super.remove(t,n);return this._forEachBlocksInRange(t,n,(a,l,s,i)=>{r.aggregate(a.remove(s,i))}),r}nearestInputPos(t,n){if(n===void 0&&(n=ge.NONE),!this._blocks.length)return 0;const r=new Jh(this,t);if(n===ge.NONE)return r.pushRightBeforeInput()||(r.popState(),r.pushLeftBeforeInput())?r.pos:this.displayValue.length;if(n===ge.LEFT||n===ge.FORCE_LEFT){if(n===ge.LEFT){if(r.pushRightBeforeFilled(),r.ok&&r.pos===t)return t;r.popState()}if(r.pushLeftBeforeInput(),r.pushLeftBeforeRequired(),r.pushLeftBeforeFilled(),n===ge.LEFT){if(r.pushRightBeforeInput(),r.pushRightBeforeRequired(),r.ok&&r.pos<=t||(r.popState(),r.ok&&r.pos<=t))return r.pos;r.popState()}return r.ok?r.pos:n===ge.FORCE_LEFT?0:(r.popState(),r.ok||(r.popState(),r.ok)?r.pos:0)}return n===ge.RIGHT||n===ge.FORCE_RIGHT?(r.pushRightBeforeInput(),r.pushRightBeforeRequired(),r.pushRightBeforeFilled()?r.pos:n===ge.FORCE_RIGHT?this.displayValue.length:(r.popState(),r.ok||(r.popState(),r.ok)?r.pos:this.nearestInputPos(t,ge.LEFT))):t}totalInputPositions(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);let r=0;return this._forEachBlocksInRange(t,n,(a,l,s,i)=>{r+=a.totalInputPositions(s,i)}),r}maskedBlock(t){return this.maskedBlocks(t)[0]}maskedBlocks(t){const n=this._maskedBlocks[t];return n?n.map(r=>this._blocks[r]):[]}pad(t){const n=new Ve;return this._forEachBlocksInRange(0,this.displayValue.length,r=>n.aggregate(r.pad(t))),n}}Ye.DEFAULTS={...Ge.DEFAULTS,lazy:!0,placeholderChar:"_"},Ye.STOP_CHAR="`",Ye.ESCAPE_CHAR="\\",Ye.InputDefinition=ln,Ye.FixedDefinition=Bo,Ce.MaskedPattern=Ye;class an extends Ye{get _matchFrom(){return this.maxLength-String(this.from).length}constructor(t){super(t)}updateOptions(t){super.updateOptions(t)}_update(t){const{to:n=this.to||0,from:r=this.from||0,maxLength:a=this.maxLength||0,autofix:l=this.autofix,...s}=t;this.to=n,this.from=r,this.maxLength=Math.max(String(n).length,a),this.autofix=l;const i=String(this.from).padStart(this.maxLength,"0"),c=String(this.to).padStart(this.maxLength,"0");let d=0;for(;d<c.length&&c[d]===i[d];)++d;s.mask=c.slice(0,d).replace(/0/g,"\\0")+"0".repeat(this.maxLength-d),super._update(s)}get isComplete(){return super.isComplete&&!!this.value}boundaries(t){let n="",r="";const[,a,l]=t.match(/^(\D*)(\d*)(\D*)/)||[];return l&&(n="0".repeat(a.length)+l,r="9".repeat(a.length)+l),n=n.padEnd(this.maxLength,"0"),r=r.padEnd(this.maxLength,"9"),[n,r]}doPrepareChar(t,n){n===void 0&&(n={});let r;return[t,r]=super.doPrepareChar(t.replace(/\D/g,""),n),t||(r.skip=!this.isComplete),[t,r]}_appendCharRaw(t,n){if(n===void 0&&(n={}),!this.autofix||this.value.length+1>this.maxLength)return super._appendCharRaw(t,n);const r=String(this.from).padStart(this.maxLength,"0"),a=String(this.to).padStart(this.maxLength,"0"),[l,s]=this.boundaries(this.value+t);return Number(s)<this.from?super._appendCharRaw(r[this.value.length],n):Number(l)>this.to?!n.tail&&this.autofix==="pad"&&this.value.length+1<this.maxLength?super._appendCharRaw(r[this.value.length],n).aggregate(this._appendCharRaw(t,n)):super._appendCharRaw(a[this.value.length],n):super._appendCharRaw(t,n)}doValidate(t){const n=this.value;if(n.search(/[^0]/)===-1&&n.length<=this._matchFrom)return!0;const[a,l]=this.boundaries(n);return this.from<=Number(l)&&Number(a)<=this.to&&super.doValidate(t)}pad(t){const n=new Ve;if(this.value.length===this.maxLength)return n;const r=this.value,a=this.maxLength-this.value.length;if(a){this.reset();for(let l=0;l<a;++l)n.aggregate(super._appendCharRaw("0",t));r.split("").forEach(l=>this._appendCharRaw(l))}return n}}Ce.MaskedRange=an;const Qh="d{.}`m{.}`Y";class kt extends Ye{static extractPatternOptions(t){const{mask:n,pattern:r,...a}=t;return{...a,mask:Ft(n)?n:r}}constructor(t){super(kt.extractPatternOptions({...kt.DEFAULTS,...t}))}updateOptions(t){super.updateOptions(t)}_update(t){const{mask:n,pattern:r,blocks:a,...l}={...kt.DEFAULTS,...t},s=Object.assign({},kt.GET_DEFAULT_BLOCKS());t.min&&(s.Y.from=t.min.getFullYear()),t.max&&(s.Y.to=t.max.getFullYear()),t.min&&t.max&&s.Y.from===s.Y.to&&(s.m.from=t.min.getMonth()+1,s.m.to=t.max.getMonth()+1,s.m.from===s.m.to&&(s.d.from=t.min.getDate(),s.d.to=t.max.getDate())),Object.assign(s,this.blocks,a),super._update({...l,mask:Ft(n)?n:r,blocks:s})}doValidate(t){const n=this.date;return super.doValidate(t)&&(!this.isComplete||this.isDateExist(this.value)&&n!=null&&(this.min==null||this.min<=n)&&(this.max==null||n<=this.max))}isDateExist(t){return this.format(this.parse(t,this),this).indexOf(t)>=0}get date(){return this.typedValue}set date(t){this.typedValue=t}get typedValue(){return this.isComplete?super.typedValue:null}set typedValue(t){super.typedValue=t}maskEquals(t){return t===Date||super.maskEquals(t)}optionsIsChanged(t){return super.optionsIsChanged(kt.extractPatternOptions(t))}}kt.GET_DEFAULT_BLOCKS=()=>({d:{mask:an,from:1,to:31,maxLength:2},m:{mask:an,from:1,to:12,maxLength:2},Y:{mask:an,from:1900,to:9999}}),kt.DEFAULTS={...Ye.DEFAULTS,mask:Date,pattern:Qh,format:(o,t)=>{if(!o)return"";const n=String(o.getDate()).padStart(2,"0"),r=String(o.getMonth()+1).padStart(2,"0"),a=o.getFullYear();return[n,r,a].join(".")},parse:(o,t)=>{const[n,r,a]=o.split(".").map(Number);return new Date(a,r-1,n)}},Ce.MaskedDate=kt;class sn extends Ge{constructor(t){super({...sn.DEFAULTS,...t}),this.currentMask=void 0}updateOptions(t){super.updateOptions(t)}_update(t){super._update(t),"mask"in t&&(this.exposeMask=void 0,this.compiledMasks=Array.isArray(t.mask)?t.mask.map(n=>{const{expose:r,...a}=Wt(n),l=yt({overwrite:this._overwrite,eager:this._eager,skipInvalid:this._skipInvalid,...a});return r&&(this.exposeMask=l),l}):[])}_appendCharRaw(t,n){n===void 0&&(n={});const r=this._applyDispatch(t,n);return this.currentMask&&r.aggregate(this.currentMask._appendChar(t,this.currentMaskFlags(n))),r}_applyDispatch(t,n,r){t===void 0&&(t=""),n===void 0&&(n={}),r===void 0&&(r="");const a=n.tail&&n._beforeTailState!=null?n._beforeTailState._value:this.value,l=this.rawInputValue,s=n.tail&&n._beforeTailState!=null?n._beforeTailState._rawInputValue:l,i=l.slice(s.length),c=this.currentMask,d=new Ve,g=c?.state;return this.currentMask=this.doDispatch(t,{...n},r),this.currentMask&&(this.currentMask!==c?(this.currentMask.reset(),s&&(this.currentMask.append(s,{raw:!0}),d.tailShift=this.currentMask.value.length-a.length),i&&(d.tailShift+=this.currentMask.append(i,{raw:!0,tail:!0}).tailShift)):g&&(this.currentMask.state=g)),d}_appendPlaceholder(){const t=this._applyDispatch();return this.currentMask&&t.aggregate(this.currentMask._appendPlaceholder()),t}_appendEager(){const t=this._applyDispatch();return this.currentMask&&t.aggregate(this.currentMask._appendEager()),t}appendTail(t){const n=new Ve;return t&&n.aggregate(this._applyDispatch("",{},t)),n.aggregate(this.currentMask?this.currentMask.appendTail(t):super.appendTail(t))}currentMaskFlags(t){var n,r;return{...t,_beforeTailState:((n=t._beforeTailState)==null?void 0:n.currentMaskRef)===this.currentMask&&((r=t._beforeTailState)==null?void 0:r.currentMask)||t._beforeTailState}}doDispatch(t,n,r){return n===void 0&&(n={}),r===void 0&&(r=""),this.dispatch(t,this,n,r)}doValidate(t){return super.doValidate(t)&&(!this.currentMask||this.currentMask.doValidate(this.currentMaskFlags(t)))}doPrepare(t,n){n===void 0&&(n={});let[r,a]=super.doPrepare(t,n);if(this.currentMask){let l;[r,l]=super.doPrepare(r,this.currentMaskFlags(n)),a=a.aggregate(l)}return[r,a]}doPrepareChar(t,n){n===void 0&&(n={});let[r,a]=super.doPrepareChar(t,n);if(this.currentMask){let l;[r,l]=super.doPrepareChar(r,this.currentMaskFlags(n)),a=a.aggregate(l)}return[r,a]}reset(){var t;(t=this.currentMask)==null||t.reset(),this.compiledMasks.forEach(n=>n.reset())}get value(){return this.exposeMask?this.exposeMask.value:this.currentMask?this.currentMask.value:""}set value(t){this.exposeMask?(this.exposeMask.value=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.value=t}get unmaskedValue(){return this.exposeMask?this.exposeMask.unmaskedValue:this.currentMask?this.currentMask.unmaskedValue:""}set unmaskedValue(t){this.exposeMask?(this.exposeMask.unmaskedValue=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.unmaskedValue=t}get typedValue(){return this.exposeMask?this.exposeMask.typedValue:this.currentMask?this.currentMask.typedValue:""}set typedValue(t){if(this.exposeMask){this.exposeMask.typedValue=t,this.currentMask=this.exposeMask,this._applyDispatch();return}let n=String(t);this.currentMask&&(this.currentMask.typedValue=t,n=this.currentMask.unmaskedValue),this.unmaskedValue=n}get displayValue(){return this.currentMask?this.currentMask.displayValue:""}get isComplete(){var t;return!!((t=this.currentMask)!=null&&t.isComplete)}get isFilled(){var t;return!!((t=this.currentMask)!=null&&t.isFilled)}remove(t,n){const r=new Ve;return this.currentMask&&r.aggregate(this.currentMask.remove(t,n)).aggregate(this._applyDispatch()),r}get state(){var t;return{...super.state,_rawInputValue:this.rawInputValue,compiledMasks:this.compiledMasks.map(n=>n.state),currentMaskRef:this.currentMask,currentMask:(t=this.currentMask)==null?void 0:t.state}}set state(t){const{compiledMasks:n,currentMaskRef:r,currentMask:a,...l}=t;n&&this.compiledMasks.forEach((s,i)=>s.state=n[i]),r!=null&&(this.currentMask=r,this.currentMask.state=a),super.state=l}extractInput(t,n,r){return this.currentMask?this.currentMask.extractInput(t,n,r):""}extractTail(t,n){return this.currentMask?this.currentMask.extractTail(t,n):super.extractTail(t,n)}doCommit(){this.currentMask&&this.currentMask.doCommit(),super.doCommit()}nearestInputPos(t,n){return this.currentMask?this.currentMask.nearestInputPos(t,n):super.nearestInputPos(t,n)}get overwrite(){return this.currentMask?this.currentMask.overwrite:this._overwrite}set overwrite(t){this._overwrite=t}get eager(){return this.currentMask?this.currentMask.eager:this._eager}set eager(t){this._eager=t}get skipInvalid(){return this.currentMask?this.currentMask.skipInvalid:this._skipInvalid}set skipInvalid(t){this._skipInvalid=t}get autofix(){return this.currentMask?this.currentMask.autofix:this._autofix}set autofix(t){this._autofix=t}maskEquals(t){return Array.isArray(t)?this.compiledMasks.every((n,r)=>{if(!t[r])return;const{mask:a,...l}=t[r];return Hn(n,l)&&n.maskEquals(a)}):super.maskEquals(t)}typedValueEquals(t){var n;return!!((n=this.currentMask)!=null&&n.typedValueEquals(t))}}sn.DEFAULTS={...Ge.DEFAULTS,dispatch:(o,t,n,r)=>{if(!t.compiledMasks.length)return;const a=t.rawInputValue,l=t.compiledMasks.map((s,i)=>{const c=t.currentMask===s,d=c?s.displayValue.length:s.nearestInputPos(s.displayValue.length,ge.FORCE_LEFT);return s.rawInputValue!==a?(s.reset(),s.append(a,{raw:!0})):c||s.remove(d),s.append(o,t.currentMaskFlags(n)),s.appendTail(r),{index:i,weight:s.rawInputValue.length,totalInputPositions:s.totalInputPositions(0,Math.max(d,s.nearestInputPos(s.displayValue.length,ge.FORCE_LEFT)))}});return l.sort((s,i)=>i.weight-s.weight||i.totalInputPositions-s.totalInputPositions),t.compiledMasks[l[0].index]}},Ce.MaskedDynamic=sn;class cn extends Ye{constructor(t){super({...cn.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){const{enum:n,...r}=t;if(n){const a=n.map(i=>i.length),l=Math.min(...a),s=Math.max(...a)-l;r.mask="*".repeat(l),s&&(r.mask+="["+"*".repeat(s)+"]"),this.enum=n}super._update(r)}_appendCharRaw(t,n){n===void 0&&(n={});const r=Math.min(this.nearestInputPos(0,ge.FORCE_RIGHT),this.value.length),a=this.enum.filter(l=>this.matchValue(l,this.unmaskedValue+t,r));if(a.length){a.length===1&&this._forEachBlocksInRange(0,this.value.length,(s,i)=>{const c=a[0][i];i>=this.value.length||c===s.value||(s.reset(),s._appendChar(c,n))});const l=super._appendCharRaw(a[0][this.value.length],n);return a.length===1&&a[0].slice(this.unmaskedValue.length).split("").forEach(s=>l.aggregate(super._appendCharRaw(s))),l}return new Ve({skip:!this.isComplete})}extractTail(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),new bt("",t)}remove(t,n){if(t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),t===n)return new Ve;const r=Math.min(super.nearestInputPos(0,ge.FORCE_RIGHT),this.value.length);let a;for(a=t;a>=0&&!(this.enum.filter(i=>this.matchValue(i,this.value.slice(r,a),r)).length>1);--a);const l=super.remove(a,n);return l.tailShift+=a-t,l}get isComplete(){return this.enum.indexOf(this.value)>=0}}cn.DEFAULTS={...Ye.DEFAULTS,matchValue:(o,t,n)=>o.indexOf(t,n)===n},Ce.MaskedEnum=cn;class ol extends Ge{updateOptions(t){super.updateOptions(t)}_update(t){super._update({...t,validate:t.mask})}}Ce.MaskedFunction=ol;var rl;class nt extends Ge{constructor(t){super({...nt.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){super._update(t),this._updateRegExps()}_updateRegExps(){const t="^"+(this.allowNegative?"[+|\\-]?":""),n="\\d*",r=(this.scale?"("+Co(this.radix)+"\\d{0,"+this.scale+"})?":"")+"$";this._numberRegExp=new RegExp(t+n+r),this._mapToRadixRegExp=new RegExp("["+this.mapToRadix.map(Co).join("")+"]","g"),this._thousandsSeparatorRegExp=new RegExp(Co(this.thousandsSeparator),"g")}_removeThousandsSeparators(t){return t.replace(this._thousandsSeparatorRegExp,"")}_insertThousandsSeparators(t){const n=t.split(this.radix);return n[0]=n[0].replace(/\B(?=(\d{3})+(?!\d))/g,this.thousandsSeparator),n.join(this.radix)}doPrepareChar(t,n){n===void 0&&(n={});const[r,a]=super.doPrepareChar(this._removeThousandsSeparators(this.scale&&this.mapToRadix.length&&(n.input&&n.raw||!n.input&&!n.raw)?t.replace(this._mapToRadixRegExp,this.radix):t),n);return t&&!r&&(a.skip=!0),r&&!this.allowPositive&&!this.value&&r!=="-"&&a.aggregate(this._appendChar("-")),[r,a]}_separatorsCount(t,n){n===void 0&&(n=!1);let r=0;for(let a=0;a<t;++a)this._value.indexOf(this.thousandsSeparator,a)===a&&(++r,n&&(t+=this.thousandsSeparator.length));return r}_separatorsCountFromSlice(t){return t===void 0&&(t=this._value),this._separatorsCount(this._removeThousandsSeparators(t).length,!0)}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),[t,n]=this._adjustRangeWithSeparators(t,n),this._removeThousandsSeparators(super.extractInput(t,n,r))}_appendCharRaw(t,n){n===void 0&&(n={});const r=n.tail&&n._beforeTailState?n._beforeTailState._value:this._value,a=this._separatorsCountFromSlice(r);this._value=this._removeThousandsSeparators(this.value);const l=this._value;this._value+=t;const s=this.number;let i=!isNaN(s),c=!1;if(i){let p;this.min!=null&&this.min<0&&this.number<this.min&&(p=this.min),this.max!=null&&this.max>0&&this.number>this.max&&(p=this.max),p!=null&&(this.autofix?(this._value=this.format(p,this).replace(nt.UNMASKED_RADIX,this.radix),c||(c=l===this._value&&!n.tail)):i=!1),i&&(i=!!this._value.match(this._numberRegExp))}let d;i?d=new Ve({inserted:this._value.slice(l.length),rawInserted:c?"":t,skip:c}):(this._value=l,d=new Ve),this._value=this._insertThousandsSeparators(this._value);const g=n.tail&&n._beforeTailState?n._beforeTailState._value:this._value,f=this._separatorsCountFromSlice(g);return d.tailShift+=(f-a)*this.thousandsSeparator.length,d}_findSeparatorAround(t){if(this.thousandsSeparator){const n=t-this.thousandsSeparator.length+1,r=this.value.indexOf(this.thousandsSeparator,n);if(r<=t)return r}return-1}_adjustRangeWithSeparators(t,n){const r=this._findSeparatorAround(t);r>=0&&(t=r);const a=this._findSeparatorAround(n);return a>=0&&(n=a+this.thousandsSeparator.length),[t,n]}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),[t,n]=this._adjustRangeWithSeparators(t,n);const r=this.value.slice(0,t),a=this.value.slice(n),l=this._separatorsCount(r.length);this._value=this._insertThousandsSeparators(this._removeThousandsSeparators(r+a));const s=this._separatorsCountFromSlice(r);return new Ve({tailShift:(s-l)*this.thousandsSeparator.length})}nearestInputPos(t,n){if(!this.thousandsSeparator)return t;switch(n){case ge.NONE:case ge.LEFT:case ge.FORCE_LEFT:{const r=this._findSeparatorAround(t-1);if(r>=0){const a=r+this.thousandsSeparator.length;if(t<a||this.value.length<=a||n===ge.FORCE_LEFT)return r}break}case ge.RIGHT:case ge.FORCE_RIGHT:{const r=this._findSeparatorAround(t);if(r>=0)return r+this.thousandsSeparator.length}}return t}doCommit(){if(this.value){const t=this.number;let n=t;this.min!=null&&(n=Math.max(n,this.min)),this.max!=null&&(n=Math.min(n,this.max)),n!==t&&(this.unmaskedValue=this.format(n,this));let r=this.value;this.normalizeZeros&&(r=this._normalizeZeros(r)),this.padFractionalZeros&&this.scale>0&&(r=this._padFractionalZeros(r)),this._value=r}super.doCommit()}_normalizeZeros(t){const n=this._removeThousandsSeparators(t).split(this.radix);return n[0]=n[0].replace(/^(\D*)(0*)(\d*)/,(r,a,l,s)=>a+s),t.length&&!/\d$/.test(n[0])&&(n[0]=n[0]+"0"),n.length>1&&(n[1]=n[1].replace(/0*$/,""),n[1].length||(n.length=1)),this._insertThousandsSeparators(n.join(this.radix))}_padFractionalZeros(t){if(!t)return t;const n=t.split(this.radix);return n.length<2&&n.push(""),n[1]=n[1].padEnd(this.scale,"0"),n.join(this.radix)}doSkipInvalid(t,n,r){n===void 0&&(n={});const a=this.scale===0&&t!==this.thousandsSeparator&&(t===this.radix||t===nt.UNMASKED_RADIX||this.mapToRadix.includes(t));return super.doSkipInvalid(t,n,r)&&!a}get unmaskedValue(){return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix,nt.UNMASKED_RADIX)}set unmaskedValue(t){super.unmaskedValue=t}get typedValue(){return this.parse(this.unmaskedValue,this)}set typedValue(t){this.rawInputValue=this.format(t,this).replace(nt.UNMASKED_RADIX,this.radix)}get number(){return this.typedValue}set number(t){this.typedValue=t}get allowNegative(){return this.min!=null&&this.min<0||this.max!=null&&this.max<0}get allowPositive(){return this.min!=null&&this.min>0||this.max!=null&&this.max>0}typedValueEquals(t){return(super.typedValueEquals(t)||nt.EMPTY_VALUES.includes(t)&&nt.EMPTY_VALUES.includes(this.typedValue))&&!(t===0&&this.value==="")}}rl=nt,nt.UNMASKED_RADIX=".",nt.EMPTY_VALUES=[...Ge.EMPTY_VALUES,0],nt.DEFAULTS={...Ge.DEFAULTS,mask:Number,radix:",",thousandsSeparator:"",mapToRadix:[rl.UNMASKED_RADIX],min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER,scale:2,normalizeZeros:!0,padFractionalZeros:!1,parse:Number,format:o=>o.toLocaleString("en-US",{useGrouping:!1,maximumFractionDigits:20})},Ce.MaskedNumber=nt;const Wn={MASKED:"value",UNMASKED:"unmaskedValue",TYPED:"typedValue"};function Vo(o,t,n){t===void 0&&(t=Wn.MASKED),n===void 0&&(n=Wn.MASKED);const r=yt(o);return a=>r.runIsolated(l=>(l[t]=a,l[n]))}function ll(o,t,n,r){return Vo(t,n,r)(o)}Ce.PIPE_TYPE=Wn,Ce.createPipe=Vo,Ce.pipe=ll;class al extends Ye{get repeatFrom(){var t;return(t=Array.isArray(this.repeat)?this.repeat[0]:this.repeat===1/0?0:this.repeat)!=null?t:0}get repeatTo(){var t;return(t=Array.isArray(this.repeat)?this.repeat[1]:this.repeat)!=null?t:1/0}constructor(t){super(t)}updateOptions(t){super.updateOptions(t)}_update(t){var n,r,a;const{repeat:l,...s}=Wt(t);this._blockOpts=Object.assign({},this._blockOpts,s);const i=yt(this._blockOpts);this.repeat=(n=(r=l??i.repeat)!=null?r:this.repeat)!=null?n:1/0,super._update({mask:"m".repeat(Math.max(this.repeatTo===1/0&&((a=this._blocks)==null?void 0:a.length)||0,this.repeatFrom)),blocks:{m:i},eager:i.eager,overwrite:i.overwrite,skipInvalid:i.skipInvalid,lazy:i.lazy,placeholderChar:i.placeholderChar,displayChar:i.displayChar})}_allocateBlock(t){if(t<this._blocks.length)return this._blocks[t];if(this.repeatTo===1/0||this._blocks.length<this.repeatTo)return this._blocks.push(yt(this._blockOpts)),this.mask+="m",this._blocks[this._blocks.length-1]}_appendCharRaw(t,n){n===void 0&&(n={});const r=new Ve;for(let c=(a=(l=this._mapPosToBlock(this.displayValue.length))==null?void 0:l.index)!=null?a:Math.max(this._blocks.length-1,0),d,g;d=(s=this._blocks[c])!=null?s:g=!g&&this._allocateBlock(c);++c){var a,l,s,i;const f=d._appendChar(t,{...n,_beforeTailState:(i=n._beforeTailState)==null||(i=i._blocks)==null?void 0:i[c]});if(f.skip&&g){this._blocks.pop(),this.mask=this.mask.slice(1);break}if(r.aggregate(f),f.consumed)break}return r}_trimEmptyTail(t,n){var r,a;t===void 0&&(t=0);const l=Math.max(((r=this._mapPosToBlock(t))==null?void 0:r.index)||0,this.repeatFrom,0);let s;n!=null&&(s=(a=this._mapPosToBlock(n))==null?void 0:a.index),s==null&&(s=this._blocks.length-1);let i=0;for(let c=s;l<=c&&!this._blocks[c].unmaskedValue;--c,++i);i&&(this._blocks.splice(s-i+1,i),this.mask=this.mask.slice(i))}reset(){super.reset(),this._trimEmptyTail()}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const r=super.remove(t,n);return this._trimEmptyTail(t,n),r}totalInputPositions(t,n){return t===void 0&&(t=0),n==null&&this.repeatTo===1/0?1/0:super.totalInputPositions(t,n)}get state(){return super.state}set state(t){this._blocks.length=t._blocks.length,this.mask=this.mask.slice(0,this._blocks.length),super.state=t}}Ce.RepeatBlock=al;try{globalThis.IMask=Ce}catch{}const Gn=Object.freeze(Object.defineProperty({__proto__:null,ChangeDetails:Ve,ChunksTailDetails:Dt,DIRECTION:ge,HTMLContenteditableMaskElement:Eo,HTMLInputMaskElement:el,HTMLMaskElement:rn,InputMask:tl,MaskElement:qn,Masked:Ge,MaskedDate:kt,MaskedDynamic:sn,MaskedEnum:cn,MaskedFunction:ol,MaskedNumber:nt,MaskedPattern:Ye,MaskedRange:an,MaskedRegExp:nl,PIPE_TYPE:Wn,PatternFixedDefinition:Bo,PatternInputDefinition:ln,RepeatBlock:al,createMask:yt,createPipe:Vo,default:Ce,forceDirection:Zr,normalizeOpts:Wt,pipe:ll},Symbol.toStringTag,{value:"Module"}));function eg(){const o=e.ref(!1);return{isFullscreen:o,toggleFullscreen:()=>{o.value=!o.value}}}const tg="https://esm.sh",at="3.7.2",sl="3.7.2",ng=`?deps=@tiptap/core@${at},@tiptap/pm@${sl}`,st=o=>`${tg}/${o}${ng}`,it={core:st(`@tiptap/core@${at}`),starterKit:st(`@tiptap/starter-kit@${at}`),textStyle:st(`@tiptap/extension-text-style@${at}`),table:st(`@tiptap/extension-table@${at}`),highlight:st(`@tiptap/extension-highlight@${at}`),subscript:st(`@tiptap/extension-subscript@${at}`),superscript:st(`@tiptap/extension-superscript@${at}`),link:st(`@tiptap/extension-link@${at}`),image:st(`@tiptap/extension-image@${at}`),textAlign:st(`@tiptap/extension-text-align@${at}`),heading:st(`@tiptap/extension-heading@${at}`),paragraph:st(`@tiptap/extension-paragraph@${at}`),pmModel:st(`@tiptap/pm@${sl}/model`)},dn="__vs_form_tiptap_loader__",ct=o=>import(o),Ke=(o,t)=>o?.[t]||o?.default?.[t]||o?.default?.default?.[t]||o?.default||o,og=o=>o&&o.split(";").map(n=>n.trim()).filter(n=>n&&!/^text-align\s*:/i.test(n)).join("; ")||null,rg=o=>o.style?{style:String(o.style).replace(/;\s*$/,"")}:{},il=({stripTextAlign:o=!1}={})=>({default:null,parseHTML:t=>{const n=t.getAttribute("style");return o?og(n):n||null},renderHTML:t=>rg(t)}),lg=o=>o.extend({addAttributes(){return{...this.parent?.(),style:il({stripTextAlign:!0})}}}),ag=o=>o.extend({addAttributes(){return{...this.parent?.(),style:il()}}}),sg=o=>o.extend({addOptions(){return{...this.parent?.(),levels:[1,2,3,4,5,6]}}}),ig=(o,t,n,r,a)=>{const l=t.extend({addAttributes(){return{...this.parent?.(),border:{default:null,parseHTML:s=>s.getAttribute("border"),renderHTML:s=>s.border?{border:s.border}:{}},cellpadding:{default:null,parseHTML:s=>s.getAttribute("cellpadding"),renderHTML:s=>s.cellpadding?{cellpadding:s.cellpadding}:{}},cellspacing:{default:null,parseHTML:s=>s.getAttribute("cellspacing"),renderHTML:s=>s.cellspacing?{cellspacing:s.cellspacing}:{}},style:{default:null,parseHTML:s=>s.getAttribute("style"),renderHTML:s=>s.style?{style:s.style}:{}},width:{default:null,parseHTML:s=>s.getAttribute("width"),renderHTML:s=>s.width?{width:s.width}:{}}}},parseHTML(){return[{tag:"div.tableWrapper table",priority:100},{tag:"table"}]}});return o.extend({addExtensions(){return[l.configure({resizable:!0}),n,r,a]}})},cg=o=>o.extend({addAttributes(){return{...this.parent?.(),fontFamily:{default:null,parseHTML:t=>t.style.fontFamily?.replace(/['"]/g,""),renderHTML:t=>t.fontFamily?{style:`font-family: ${t.fontFamily}`}:{}},fontSize:{default:null,parseHTML:t=>t.style.fontSize?.replace(/['"]/g,""),renderHTML:t=>t.fontSize?{style:`font-size: ${t.fontSize}`}:{}},color:{default:null,parseHTML:t=>t.style.color?.replace(/['"]/g,""),renderHTML:t=>t.color?{style:`color: ${t.color}`}:{}},backgroundColor:{default:null,parseHTML:t=>t.style.backgroundColor?.replace(/['"]/g,""),renderHTML:t=>!t.backgroundColor||t.backgroundColor==="transparent"?{}:{style:`background-color: ${t.backgroundColor}`}}}},addCommands(){return{setFontFamily:t=>({chain:n})=>n().setMark("textStyle",{fontFamily:t}).run(),unsetFontFamily:()=>({chain:t})=>t().setMark("textStyle",{fontFamily:null}).removeEmptyTextStyle().run(),setFontSize:t=>({chain:n})=>n().setMark("textStyle",{fontSize:t}).run(),unsetFontSize:()=>({chain:t})=>t().setMark("textStyle",{fontSize:null}).removeEmptyTextStyle().run(),setColor:t=>({chain:n})=>n().setMark("textStyle",{color:t}).run(),unsetColor:()=>({chain:t})=>t().setMark("textStyle",{color:null}).removeEmptyTextStyle().run(),setBackgroundColor:t=>({chain:n})=>n().setMark("textStyle",{backgroundColor:t}).run(),unsetBackgroundColor:()=>({chain:t})=>t().setMark("textStyle",{backgroundColor:null}).removeEmptyTextStyle().run()}}}),dg=o=>o.create({name:"iframe",group:"block",inline:!1,atom:!0,selectable:!0,addAttributes(){return{src:{default:null},width:{default:"100%"},height:{default:"280"},frameborder:{default:"0"},allow:{default:null},allowfullscreen:{default:null},referrerpolicy:{default:null},loading:{default:null},class:{default:null},title:{default:null},style:{default:null}}},parseHTML(){return[{tag:"iframe"}]},renderHTML({HTMLAttributes:t}){return["iframe",t]}});async function ug(){if(typeof window>"u")return null;const o=window;return o[dn]||(o[dn]=Promise.all([ct(it.core),ct(it.starterKit),ct(it.textStyle),ct(it.table),ct(it.highlight),ct(it.subscript),ct(it.superscript),ct(it.link),ct(it.image),ct(it.textAlign),ct(it.heading),ct(it.paragraph),ct(it.pmModel)]).then(([t,n,r,a,l,s,i,c,d,g,f,p,m])=>{const h=Ke(t,"Editor"),w=Ke(t,"Node"),y=Ke(n,"StarterKit"),C=Ke(r,"TextStyle"),_=Ke(a,"TableKit"),B=Ke(a,"Table"),$=Ke(a,"TableRow"),j=Ke(a,"TableCell"),Z=Ke(a,"TableHeader"),I=Ke(l,"Highlight"),V=Ke(s,"Subscript"),S=Ke(i,"Superscript"),x=Ke(c,"Link"),L=Ke(d,"Image"),U=Ke(g,"TextAlign"),ne=Ke(f,"Heading"),N=Ke(p,"Paragraph"),P=Ke(m,"DOMParser");if(!h||!w||!y||!C||!_||!B||!$||!j||!Z||!I||!V||!S||!x||!L||!U||!ne||!N||!P)throw new Error("Failed to resolve one or more Tiptap modules");return{Editor:h,ProseMirrorDOMParser:P,StarterKit:y,ExtendedTextStyle:cg(C),Highlight:I,Subscript:V,Superscript:S,CustomLink:ag(x),Image:L,TextAlign:U,CustomHeading:sg(ne),CustomParagraph:lg(N),CustomTableKit:ig(_,B,$,j,Z),Iframe:dg(w)}}).catch(t=>{throw delete o[dn],t})),o[dn]}const Tt=o=>o.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;"),un=o=>{let t=Tt(o||"");return t=t.replace(/!\[([^\]]*)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(n,r,a,l)=>{const s=l?` title="${Tt(l)}"`:"";return`<img src="${Tt(a)}" alt="${Tt(r)}"${s}>`}),t=t.replace(/\[([^\]]+)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(n,r,a,l)=>{const s=l?` title="${Tt(l)}"`:"";return`<a href="${Tt(a)}"${s} target="_blank" rel="noopener noreferrer">${r}</a>`}),t=t.replace(/`([^`]+)`/g,"<code>$1</code>"),t=t.replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>"),t=t.replace(/__([^_]+)__/g,"<strong>$1</strong>"),t=t.replace(/~~([^~]+)~~/g,"<del>$1</del>"),t=t.replace(/\*([^*\n]+)\*/g,"<em>$1</em>"),t=t.replace(/_([^_\n]+)_/g,"<em>$1</em>"),t},pn=o=>/^\s*\d+\.\s+/.test(o),So=o=>/^\s*[-*+]\s+/.test(o),cl=o=>/^\s*[-*+]\s+\[[ xX]\]\s+/.test(o),$o=o=>/^\s*>\s?/.test(o),Ao=o=>/^\s*\|?(?:\s*:?-{3,}:?\s*\|)+\s*:?-{3,}:?\s*\|?\s*$/.test(o),dl=o=>o.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(t=>un(t.trim())),pg=(o,t)=>{const n=o[t],r=o[t+1];if(!n||!r||!n.includes("|")||!Ao(r))return null;const a=dl(n),l=[];let s=t+2;for(;s<o.length&&o[s].includes("|")&&o[s].trim()!=="";){const d=dl(o[s]);l.push(`<tr>${d.map(g=>`<td>${g}</td>`).join("")}</tr>`),s+=1}const i=`<thead><tr>${a.map(d=>`<th>${d}</th>`).join("")}</tr></thead>`,c=l.length?`<tbody>${l.join("")}</tbody>`:"";return{html:`<table>${i}${c}</table>`,nextIndex:s}},mg=(o,t)=>{const n=pn(o[t]),r=n?"ol":"ul",a=[];let l=t;for(;l<o.length;){const s=o[l];if(s.trim()===""||!(n?pn(s):(So(s)||cl(s))&&!pn(s)))break;const c=s.match(/^\s*[-*+]\s+\[([ xX])\]\s+(.*)$/);if(c){const d=c[1].toLowerCase()==="x";a.push(`<li><input type="checkbox" disabled${d?" checked":""}> ${un(c[2])}</li>`)}else{const d=s.replace(/^\s*(?:[-*+]|\d+\.)\s+/,"");a.push(`<li>${un(d)}</li>`)}l+=1}return{html:`<${r}>${a.join("")}</${r}>`,nextIndex:l}},fg=(o,t)=>{const r=o[t].replace(/^```/,"").trim(),a=[];let l=t+1;for(;l<o.length&&!o[l].startsWith("```");)a.push(o[l]),l+=1;return{html:`<pre><code${r?` class="language-${Tt(r)}"`:""}>${Tt(a.join(`
4
+ 50.4494, 30.5260`},format:{type:"Radio",label:"Формат координат",options:[{id:"decimal",text:"Десяткові (Decimal)"},{id:"dms",text:"Градуси-хвилини-секунди (DMS)"}]},order:{type:"Radio",label:"Порядок координат",options:[{id:"lat-lon",text:"lat, lon"},{id:"lon-lat",text:"lon, lat"}]}};let Me=!1,ie=!1;const le=e.reactive({}),we=e.ref([]),Se=e.computed(()=>we.value.map(u=>le[u]).filter(Boolean)),Te=e.ref(null),qe=e.computed(()=>Te.value?.entries??[]),Y=e.computed(()=>{if(Te.value)return{left:`${Te.value.point.x+12}px`,top:`${Te.value.point.y+12}px`}}),te=e.computed(()=>{if(Array.isArray(n.tools)&&n.tools.length)return n.tools;const u=a?.tools;return Array.isArray(u)?u.map(b=>String(b)):typeof u=="string"?u.split(",").map(b=>b.trim()).filter(Boolean):[]}),oe=e.computed(()=>{const u={search:!1,import:!1,export:!1,point:!1,line:!1,polygon:!1,rectangle:!1,ruler:!1};if(!te.value.length)return{...u,import:!0,export:!0,point:!0,line:!0,polygon:!0,rectangle:!0};const b=new Set(te.value.map(k=>k.toLowerCase()));return{search:b.has("search"),import:b.has("import"),export:b.has("export"),point:b.has("point"),line:b.has("line"),polygon:b.has("polygon"),rectangle:b.has("rectangle"),ruler:b.has("ruler")}});function pe(u){const b=typeof u=="string"?u.trim():"";if(!b)return"";if(/^https?:\/\//i.test(b))return b;const k=window?.location?.origin??"",E=b.replace(/^\/+/,"");return E?k?`${k}/${E}`:`/${E}`:k}function be(){const u=Array.isArray($.basemaps)&&$.basemaps.length?$.basemaps:B.basemaps;if(Array.isArray(u)&&u.length){const k=u.map((E,D)=>{const G=String(E?.key??E?.id??E?.name??`b${D}`),ce=pe(String(E?.url??""));if(!ce)return null;const me=typeof E?.preview=="string"&&E.preview?pe(E.preview):"";return[G,{...E,url:ce,preview:me}]}).filter(E=>Array.isArray(E)&&E.length===2).reduce((E,[D,G])=>(E[D]=G,E),{});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 Ae=be(),Fe=Object.keys(Ae),De=e.ref(Fe.length?Fe[0]:"");function W(){const u=Array.isArray($.overlays)&&$.overlays.length?$.overlays:B.overlays;return!Array.isArray(u)||!u.length?{}:u.map((k,E)=>{const G=(typeof k?.name=="string"?k.name.trim():"")||`o${E}`,ce=pe(String(k?.url??""));if(!ce)return null;const me=typeof k?.preview=="string"&&k.preview?pe(k.preview):"";return[G,{...k,name:G,url:ce,preview:me}]}).filter(k=>Array.isArray(k)&&k.length===2).reduce((k,[E,D])=>(k[E]=D,k),{})}const v=W(),M=e.ref(Object.keys(v).filter(u=>!!v[u]?.visible)),z=e.computed(()=>oe.value.point||oe.value.line||oe.value.polygon||oe.value.rectangle),de=e.computed(()=>Se.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 _e(u){return`${Pm}${u}`}function Pe(u){return`${Rm}${u}`}async function Ie(){if(typeof window>"u")return null;const u=window;if(u[On])return u[On];const b=G=>{if(Array.from(document.styleSheets).some(Ee=>Ee?.href?.includes(G)))return;const me=document.createElement("link");me.rel="stylesheet",me.href=G,document.head.appendChild(me)},k=async()=>{const G=new Function("u","return import(u)"),ce=await G("https://esm.sh/maplibre-gl@3.6.2"),me=ce?.default??ce;if(!me)throw new Error("maplibre esm fallback failed");window.maplibregl=me,window.mapboxgl=me;const Ee=await G("https://esm.sh/@mapbox/mapbox-gl-draw@1.5.0"),Re=Ee?.default??Ee;if(!Re)throw new Error("mapbox draw esm fallback failed");window.MapboxDraw=Re},D=(async()=>{b("https://unpkg.com/maplibre-gl@3.6.2/dist/maplibre-gl.css"),b("https://unpkg.com/@mapbox/mapbox-gl-draw@1.5.0/dist/mapbox-gl-draw.css"),(!window.maplibregl||!window.MapboxDraw)&&await 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 Kp(G),{maplibregl:G,MapboxDraw:ce}})().catch(G=>{throw delete u[On],G});return u[On]=D,D}function Xe(u){return{version:8,glyphs:zm,sources:{rasterSource:wo(u,void 0,{safe:!1})},layers:[{id:"rasterLayer",type:"raster",source:"rasterSource"}]}}let et=null,ot=null,R=null,ue=null,Ze=[],Vt=null,gt=null,Ue=null,Lt=!1,Gt=!1,Yt=!1,It=null;function Xn(){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,b){if(!u.startPoint)return;const[k,E]=u.startPoint,D=b.lngLat.lng,G=b.lngLat.lat;u.rectangle.setCoordinates([[[k,E],[D,E],[D,G],[k,G],[k,E]]])},onClick(u,b){if(!u.startPoint){u.startPoint=[b.lngLat.lng,b.lngLat.lat],u.hasCoordinates=!0,u.rectangle.setCoordinates([[[b.lngLat.lng,b.lngLat.lat],[b.lngLat.lng,b.lngLat.lat],[b.lngLat.lng,b.lngLat.lat],[b.lngLat.lng,b.lngLat.lat],[b.lngLat.lng,b.lngLat.lat]]]);return}const[k,E]=u.startPoint,D=b.lngLat.lng,G=b.lngLat.lat;return Math.abs(k-D)>0&&Math.abs(E-G)>0?(u.rectangle.setCoordinates([[[k,E],[D,E],[D,G],[k,G],[k,E]]]),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,b,k){const E=b.properties.id===u.rectangle.id;E&&!u.hasCoordinates||(b.properties.active=E?"true":"false",k(b))}}}const Zn=[{id:"gl-draw-polygon-fill-inactive",type:"fill",filter:["all",["==","$type","Polygon"],["!=","active","true"]],paint:{"fill-color":"#3b82f6","fill-outline-color":"#3b82f6","fill-opacity":.1}},{id:"gl-draw-polygon-fill-active",type:"fill",filter:["all",["==","$type","Polygon"],["==","active","true"]],paint:{"fill-color":"#2563eb","fill-outline-color":"#2563eb","fill-opacity":.2}},{id:"gl-draw-polygon-stroke-inactive",type:"line",filter:["all",["==","$type","Polygon"],["!=","active","true"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#3b82f6","line-width":2}},{id:"gl-draw-polygon-stroke-active",type:"line",filter:["all",["==","$type","Polygon"],["==","active","true"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#2563eb","line-width":2}},{id:"gl-draw-lines-inactive",type:"line",filter:["all",["==","$type","LineString"],["!=","active","true"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#3b82f6","line-width":2}},{id:"gl-draw-lines-active",type:"line",filter:["all",["==","$type","LineString"],["==","active","true"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#2563eb","line-width":2}},{id:"gl-draw-point-inactive",type:"circle",filter:["all",["==","$type","Point"],["!=","meta","midpoint"],["!=","active","true"]],paint:{"circle-radius":5,"circle-color":"#3b82f6"}},{id:"gl-draw-point-active",type:"circle",filter:["all",["==","$type","Point"],["!=","meta","midpoint"],["==","active","true"]],paint:{"circle-radius":6,"circle-color":"#2563eb"}},{id:"gl-draw-polygon-and-line-vertex-halo-active",type:"circle",filter:["all",["==","meta","vertex"],["==","$type","Point"]],paint:{"circle-radius":7,"circle-color":"#fff"}},{id:"gl-draw-polygon-and-line-vertex-active",type:"circle",filter:["all",["==","meta","vertex"],["==","$type","Point"]],paint:{"circle-radius":5,"circle-color":"#2563eb"}},{id:"gl-draw-polygon-midpoint",type:"circle",filter:["all",["==","meta","midpoint"],["==","$type","Point"]],paint:{"circle-radius":4,"circle-color":"#1d4ed8"}}];function Jn(){const u=De.value;return!u||!Ae[u]?.url?"":Ae[u].url}function Do(u,b){return u?.id?String(u.id):u?.url?`${u.url}-${b}`:`layer-${b}`}function fn(u){const b=String(u?.url??"").trim();if(!b)return"";if(/^https?:\/\//i.test(b))return b;const k=window.location?.origin??"",E=b.replace(/^\/+/,"");return`${k}/${E}`}function H(u){u&&Te.value?.layerId!==u||(Te.value=null)}function ae(u,b={}){if(u.popup===!1)return[];const k=Number(b?.point_count);if(Number.isFinite(k)&&k>1)return[{key:"Об'єктів у кластері",value:String(k)}];const E=fn(u),D=kn(u,E,j.value);return Array.isArray(u.popup)?u.popup.length?u.popup.map(G=>{const ce=G?.field||G?.name;if(!ce)return null;const me=b[ce];if(me==null||me==="")return null;const Ee=D?.formatPopupValue?D.formatPopupValue(ce,me):String(me);return{key:G.label||ce,value:Ee}}).filter(Boolean):[]:Object.entries(b).slice(0,5).map(([G,ce])=>({key:G,value:ce==null?"—":String(ce)}))}function fe(u){if(!Array.isArray(u))return[];const b=E=>Array.isArray(E)&&E.length>=2&&Number.isFinite(Number(E[0]))&&Number.isFinite(Number(E[1])),k=E=>{if(!E.length)return E;const D=E[0],G=E[E.length-1];return!G||D[0]!==G[0]||D[1]!==G[1]?[...E,D]:E};if(u.length&&b(u[0])){const E=u.map(D=>[Number(D[0]),Number(D[1])]).filter(b);return E.length?[k(E)]:[]}return u.length&&Array.isArray(u[0])&&b(u[0][0])?u.map(D=>Array.isArray(D)?D.map(G=>[Number(G[0]),Number(G[1])]):[]).filter(D=>D.length).map(k):u.length&&Array.isArray(u[0])&&Array.isArray(u[0][0])&&b(u[0][0][0])?u.flatMap(D=>Array.isArray(D)?D:[]).map(D=>Array.isArray(D)?D.map(G=>[Number(G[0]),Number(G[1])]):[]).filter(D=>D.length).map(k):[]}function Ne(u){const b=u.style??{},k=b.color??"#3b82f6";if(!b.colorAttr||!b.colorSet)return k;const E=Object.keys(b.colorSet);if(!E.length)return k;const D=["match",["to-string",["get",b.colorAttr]]];return E.forEach(G=>{D.push(String(G),b.colorSet?.[G]??k)}),D.push(k),D}function ze(u){if(!R)return;const b=R.getStyle()?.layers;Array.isArray(b)&&[...b].reverse().forEach(k=>{k.source===u&&R.getLayer(k.id)&&R.removeLayer(k.id)})}function He(u){if(!R)return;u.handlers.forEach(E=>{try{R.off(E.type,E.layerId,E.handler)}catch{}}),u.handlers=[],[...u.layerIds,...u.boundsIds].forEach(E=>{R.getLayer(E)&&R.removeLayer(E)}),ze(u.sourceId),R.getSource(u.sourceId)&&R.removeSource(u.sourceId);const b=`vs-ov-bounds-src-${u.id}`,k=`vs-ov-bounds-line-${u.id}`;R.getLayer(k)&&R.removeLayer(k),R.getSource(b)&&R.removeSource(b),H(u.id)}function je(u,b){if(!R)return[];const k=`vs-ov-bounds-src-${b}`,E=`vs-ov-bounds-line-${b}`,D=u.bounds??P.value??he.value,G=fe(D);if(!G.length)return[];const ce={type:"FeatureCollection",features:G.map(me=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:me}}))};return R.getLayer(E)&&R.removeLayer(E),R.getSource(k)&&R.removeSource(k),R.addSource(k,{type:"geojson",data:ce}),R.addLayer({id:E,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]}}),[E]}function rt(){return Yt||f.value==="marker"||f.value==="polyline"||f.value==="polygon"||f.value==="rectangle"}function wt(u,b){if(!R)return;u.handlers.forEach(E=>{try{R.off(E.type,E.layerId,E.handler)}catch{}});const k=[];b.forEach(E=>{const D=ce=>{if(rt())return;if(!ce?.features?.length){H(u.id);return}const me=ce.features[0]?.properties??{},Ee=ae(u.config,me);if(!Ee.length){H(u.id);return}Te.value={layerId:u.id,entries:Ee,point:{x:ce.point.x,y:ce.point.y}}},G=()=>H(u.id);R.on("mousemove",E,D),R.on("mouseleave",E,G),k.push({layerId:E,type:"mousemove",handler:D},{layerId:E,type:"mouseleave",handler:G})}),u.handlers=k}function dt(u,b){if(!R)return;u.layerIds=b,u.boundsIds=je(u.config,u.id),wt(u,b);const k=u.visible?"visible":"none";[...u.layerIds,...u.boundsIds].forEach(E=>{R.getLayer(E)&&R.setLayoutProperty(E,"visibility",k)}),xt()}function tt(u){if(!R)return;He(u),u.renderToken=(u.renderToken??0)+1;const b=u.renderToken,k=u.config,E=fn(k);if(!E)return;const D=[],G=/\.v(?:m)?t(?:\?|$|\/)/i.test(E)||/\.pbf(?:\?|$)/i.test(E)||/\/vtile(?:\/|\?|$)/i.test(E)||String(k?.service??"").toLowerCase()==="vector"||String(k?.format??"").toLowerCase()==="mvt",ce=kn(k,E,j.value);if(G&&ce){const me=k.sourceLayer||k.layer||k.service_layer||k.dataset?.layer||k.id;R.addSource(u.sourceId,{type:"vector",tiles:[E],minzoom:typeof k.minzoom=="number"?k.minzoom:0,maxzoom:typeof k.maxzoom=="number"?k.maxzoom:22}),(async()=>{try{if(!R||!R.getSource(u.sourceId)||u.renderToken!==b)return;const Ee=await ce.render({map:R,overlayId:u.id,sourceId:u.sourceId,sourceLayer:me,url:E,config:k});if(!R||!R.getSource(u.sourceId)||u.renderToken!==b){Ee.forEach(Re=>{R.getLayer(Re)&&R.removeLayer(Re)});return}dt(u,Ee)}catch(Ee){u.renderToken===b&&console.error(`Failed to render map layer preset "${ce.id}"`,Ee)}})();return}if(G){const me=k.sourceLayer||k.layer||k.service_layer||k.dataset?.layer||k.id;R.addSource(u.sourceId,{type:"vector",tiles:[E],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(At=>String(At).toLowerCase()):[String(k.style?.type??"polygon").toLowerCase()],Re=Ne(k),$t=k.style?.opacity??.5,Ho=At=>{if(At==="point"){const bn=`vs-ov-point-${u.id}`;R.addLayer({id:bn,type:"circle",source:u.sourceId,"source-layer":me,paint:{"circle-color":Re,"circle-radius":k.style?.radius??5,"circle-opacity":$t}}),D.push(bn);return}if(At==="polyline"||At==="line"){const bn=`vs-ov-line-${u.id}`;R.addLayer({id:bn,type:"line",source:u.sourceId,"source-layer":me,layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":Re,"line-width":k.style?.width??2,"line-opacity":$t}}),D.push(bn);return}const Pl=`vs-ov-fill-${u.id}`,Rl=`vs-ov-border-${u.id}`;R.addLayer({id:Pl,type:"fill",source:u.sourceId,"source-layer":me,paint:{"fill-color":Re,"fill-opacity":$t}}),R.addLayer({id:Rl,type:"line",source:u.sourceId,"source-layer":me,paint:{"line-color":k.style?.stroke??k.style?.color??"#2563eb","line-width":k.style?.width??1,"line-opacity":$t}}),D.push(Pl,Rl)};[...new Set(Ee)].forEach(At=>Ho(At)),dt(u,D);return}else{R.addSource(u.sourceId,wo(E,k,{safe:!1}));const me=`vs-ov-raster-${u.id}`;R.addLayer({id:me,type:"raster",source:u.sourceId,paint:{"raster-opacity":k.style?.opacity??1}}),D.push(me)}dt(u,D)}function Je(){if(!R)return;const b={type:"FeatureCollection",features:fe(P.value??he.value).map(k=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:k}}))};R.getSource(Pn)?R.getSource(Pn).setData(b):R.addSource(Pn,{type:"geojson",data:b}),R.getLayer(Kt)||R.addLayer({id:Kt,type:"line",source:Pn,paint:{"line-color":"#2563eb","line-width":2,"line-opacity":.8,"line-dasharray":[2,2]}})}function hn(u){if(!R||i.value)return;const b=le[u];if(!b)return;b.visible=!b.visible;const k=b.visible?"visible":"none";[...b.layerIds,...b.boundsIds].forEach(E=>{R.getLayer(E)&&R.setLayoutProperty(E,"visibility",k)}),xt(),b.visible||H(u)}function Cl(u){if(!R)return;const b=v[u];if(!b?.url)return;const k=_e(u),E=Pe(u);R.getLayer(E)&&R.removeLayer(E),R.getSource(k)&&R.removeSource(k),R.addSource(k,wo(b.url,b,{safe:!0}));const D=b?.opacity??b?.style?.opacity,G=typeof D=="number"?D:Om;R.addLayer({id:E,type:"raster",source:k,paint:{"raster-opacity":G}})}function T0(u){if(!R)return;const b=_e(u),k=Pe(u);R.getLayer(k)&&R.removeLayer(k),R.getSource(b)&&R.removeSource(b)}function El(){R&&M.value.forEach(u=>Cl(u))}function L0(u){if(!R||i.value||!v[u])return;M.value.includes(u)?(M.value=M.value.filter(k=>k!==u),T0(u)):(M.value=[...M.value,u],Cl(u)),xt()}function xt(){if(!R)return;const u=M.value.map(Ee=>Pe(Ee)).filter(Ee=>R.getLayer(Ee)),b=[],k=[],E=[],D=[];we.value.forEach(Ee=>{const Re=le[Ee];if(!Re)return;const $t=String(Re.config?.url??""),Ho=/\.v(?:m)?t(?:\?|$|\/)/i.test($t)||/\/vtile(?:\/|\?|$)/i.test($t)||qo(Re.config,$t,j.value),At=/\.png(?:\?|$)/i.test($t);Ho?E.push(...Re.layerIds):At?b.push(...Re.layerIds):k.push(...Re.layerIds),D.push(...Re.boundsIds)});const G=[...u,...b,...k,...E,...D];G.forEach(Ee=>{R.getLayer(Ee)&&R.moveLayer(Ee)}),R.getLayer(Kt)&&R.moveLayer(Kt);const me=(R.getStyle?.()?.layers??[]).map(Ee=>String(Ee?.id??"")).filter(Ee=>Ee.startsWith("gl-draw-"));if(me.forEach(Ee=>{R.getLayer(Ee)&&R.moveLayer(Ee)}),R.getLayer(Ar)){const Ee=G.find(Re=>R.getLayer(Re))??(R.getLayer(Kt)?Kt:null)??me.find(Re=>R.getLayer(Re));Ee&&R.moveLayer(Ar,Ee)}}function I0(u){if(!Ae[u]||(De.value=u,!R))return;const b=Jn();if(!b)return;const k=R.getSource("rasterSource");if(k&&typeof k.setTiles=="function"){k.setTiles([b]),xt();return}const E=R.getCenter?.(),D=R.getZoom?.(),G=ue?.getAll?.();R.setStyle(Xe(b)),R.once("style.load",()=>{if(R&&(E&&Number.isFinite(D)&&R.jumpTo({center:[E.lng,E.lat],zoom:D}),Je(),El(),we.value.forEach(ce=>{const me=le[ce];me&&tt(me)}),xt(),G?.features?.length&&ue))try{G.features.forEach(ce=>ue.add(ce)),g.value=G.features.length}catch{g.value=0}})}function To(u){return{type:"Feature",properties:{},geometry:u}}function vt(u){if(!u)return null;try{return JSON.parse(JSON.stringify(u))}catch{return null}}function Lo(u){if(!u)return null;const b=vt(u.geometry);return b?{...u.id!==void 0?{id:u.id}:{},type:"Feature",properties:{...u.properties??{}},geometry:b}:null}function gn(u){if(!u)return[];const b=(D,G)=>{if(!D?.type)return[];const ce={...G??{}};return D.type==="MultiPoint"&&Array.isArray(D.coordinates)?D.coordinates.map(me=>To({type:"Point",coordinates:me})).map(me=>({...me,properties:ce})):D.type==="MultiLineString"&&Array.isArray(D.coordinates)?D.coordinates.map(me=>To({type:"LineString",coordinates:me})).map(me=>({...me,properties:ce})):D.type==="MultiPolygon"&&Array.isArray(D.coordinates)?D.coordinates.map(me=>To({type:"Polygon",coordinates:me})).map(me=>({...me,properties:ce})):D.type==="GeometryCollection"&&Array.isArray(D.geometries)?D.geometries.flatMap(me=>b(me,ce)):[{type:"Feature",properties:ce,geometry:vt(D)}]},k=D=>{if(!D)return null;if(D.type==="Feature"){const G=Lo(D);return G?b(G.geometry,G.properties):null}return D.geom?.type&&Array.isArray(D.geom.coordinates)?b({type:D.geom.type,coordinates:D.geom.coordinates},D.properties??{}):D.type==="GeometryCollection"&&Array.isArray(D.geometries)?b(D,D.properties??{}):typeof D.type=="string"&&Array.isArray(D.coordinates)?b(vt(D),D.properties??{}):null};if(u.type==="FeatureCollection")return(u.features??[]).flatMap(k).filter(Boolean);if(Array.isArray(u))return u.flatMap(D=>D?.type==="FeatureCollection"?gn(D):[k(D)]).flat().filter(Boolean);const E=k(u);return E?Array.isArray(E)?E:[E]:[]}function Bl(u){if(!u.length)return null;if(!s.value)return vt(u[0]?.geometry??null);const b=u.map(G=>vt(G?.geometry)).filter(Boolean);return b.every(G=>G?.type==="Point")?{type:"MultiPoint",coordinates:b.map(G=>G.coordinates)}:b.every(G=>G?.type==="LineString")?{type:"MultiLineString",coordinates:b.map(G=>G.coordinates)}:b.every(G=>G?.type==="Polygon")?{type:"MultiPolygon",coordinates:b.map(G=>G.coordinates)}:{type:"GeometryCollection",geometries:b}}function Vl(u){if(!u)return"__null__";try{return JSON.stringify(u)}catch{return"__invalid__"}}function O0(u,b){if(!Array.isArray(u)||!Array.isArray(b)||u.length<2||b.length<2)return!1;const k=1e-12;return Math.abs(Number(u[0])-Number(b[0]))<k&&Math.abs(Number(u[1])-Number(b[1]))<k}function Sl(u,b){if(!Array.isArray(u)||u.length<4)return null;const E=O0(u[0],u[u.length-1])?u.slice(0,-1):u.slice();return!Number.isInteger(b)||b<0||b>=E.length||E.length<=3||(E.splice(b,1),E.length<3)?null:[...E,[...E[0]]]}function $l(u,b){if(!Array.isArray(u)||u.length<2||!Number.isInteger(b)||b<0||b>=u.length||u.length<=2)return null;const k=u.slice();return k.splice(b,1),k.length<2?null:k}function P0(u,b){const k=vt(u);if(!k||!Array.isArray(b))return null;if(k.type==="LineString"){const[E]=b,D=$l(k.coordinates,E);return D?(k.coordinates=D,k):null}if(k.type==="MultiLineString"){const[E,D]=b,G=k.coordinates?.[E],ce=$l(G,D);return ce?(k.coordinates[E]=ce,k):null}if(k.type==="Polygon"){const[E,D]=b,G=k.coordinates?.[E],ce=Sl(G,D);return ce?(k.coordinates[E]=ce,k):null}if(k.type==="MultiPolygon"){const[E,D,G]=b,ce=k.coordinates?.[E]?.[D],me=Sl(ce,G);return me?(k.coordinates[E][D]=me,k):null}return null}function R0(u){return u?u.split(".").map(b=>Number(b)).filter(b=>Number.isInteger(b)&&b>=0):[]}function Al(u){return!ue||!u?null:typeof ue.get=="function"?ue.get(u)??null:ue.getAll?.()?.features?.find(k=>String(k?.id??"")===u)??null}function Nl(u){const b=u?.properties?.id??u?.id;return b==null||b===""?null:String(b)}function z0(u){if(!R||!u)return null;const b=[[u.x-8,u.y-8],[u.x+8,u.y+8]],E=R.queryRenderedFeatures(b).find(D=>{const G=String(D?.properties?.meta??"");return G&&G!=="feature"?!1:!!Nl(D)});return Nl(E)}function j0(u,b){if(!ue||!u||!b.length)return;const k=Al(u);if(!k?.geometry)return;const E=P0(k.geometry,b);if(!E)return;const D={...k,id:k.id??u,geometry:E};ie=!0,Me=!0;try{ue.delete(u),ue.add(D)}finally{Me=!1,ie=!1}Ot(),St()}function U0(u){if(!R||!ue||i.value||y.isRulerActive.value||f.value!=="edit")return;const b=u?.point;if(!b)return;const k=[[b.x-8,b.y-8],[b.x+8,b.y+8]],D=R.queryRenderedFeatures(k).find(ce=>ce?.properties?.meta==="vertex"&&ce?.properties?.parent&&ce?.properties?.coord_path);if(!D)return;u?.originalEvent?.preventDefault?.(),u?.originalEvent?.stopPropagation?.();const G=R0(String(D.properties.coord_path));G.length&&j0(String(D.properties.parent),G)}function H0(u){const b=Dl(u);if(!b)return null;const[[k,E],[D,G]]=b;return{lat:(E+G)/2,lng:(k+D)/2}}function Ml(u){if(!Array.isArray(u)||u.length<3)return 0;const b=(E,D)=>{const G=E*2003750834e-2/180,ce=Math.log(Math.tan((90+D)*Math.PI/360))/(Math.PI/180);return[G,ce*2003750834e-2/180]};let k=0;for(let E=0;E<u.length-1;E+=1){const[D,G]=b(Number(u[E][0]),Number(u[E][1])),[ce,me]=b(Number(u[E+1][0]),Number(u[E+1][1]));k+=D*me-ce*G}return Math.abs(k/2)/1e6}function q0(u){if(!u?.type||!u?.coordinates)return null;if(u.type==="Polygon"){const b=u.coordinates?.[0];return Array.isArray(b)?Ml(b):null}return u.type==="MultiPolygon"?u.coordinates.reduce((b,k)=>{const E=k?.[0];return Array.isArray(E)?b+Ml(E):b},0):null}function Io(u){if(!u){p.value=null;return}const b=H0(u);if(!b){p.value=null;return}p.value={type:String(u.type??"Feature"),center:b,areaKm2:q0(u)}}function Oo(u){if(!u){const E=Ze[Ze.length-1],D=vt(E?.geometry??null);Vt=D,Io(D);return}const b=Ze.find(E=>String(E?.id??"")===String(u))??null,k=vt(b?.geometry??null);Vt=k,Io(k)}function Po(u){m.value=(u??[]).map((b,k)=>{const E=String(b?.id??`feature-${k+1}`),D=Ro(String(b?.geometry?.type??"Feature"));return{id:E,label:`${D} ${k+1}`}})}function Ro(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 Fl(u,b){if(!Array.isArray(u)||!Array.isArray(b)||u.length!==2||b.length!==2)return!1;const k=1e-9;return Math.abs(Number(u[0])-Number(b[0]))<k&&Math.abs(Number(u[1])-Number(b[1]))<k}function Dl(u){if(!u)return null;let b=1/0,k=1/0,E=-1/0,D=-1/0;const G=ce=>{if(Array.isArray(ce)){if(ce.length>=2&&Number.isFinite(ce[0])&&Number.isFinite(ce[1])){const me=Number(ce[0]),Ee=Number(ce[1]);b=Math.min(b,me),k=Math.min(k,Ee),E=Math.max(E,me),D=Math.max(D,Ee);return}ce.forEach(G)}};return G(u.coordinates),!Number.isFinite(b)||!Number.isFinite(k)?null:[[b,k],[E,D]]}function Tl(u){if(!R||!u)return;const b=Dl(u);if(!b)return;const[[k,E],[D,G]]=b;if(k===D&&E===G){R.easeTo({center:[k,E],zoom:Math.max(K.value,14)}),A();return}R.fitBounds(b,{padding:30,duration:250,maxZoom:18}),A()}function zo(){if(!ue){g.value=0;return}const u=ue.getAll();g.value=u?.features?.length??0}function yn(){if(!ue)return null;const b=ue.getAll?.()?.features??[],k=G=>!!G&&b.some(ce=>String(ce?.id??"")===String(G??"")),E=ue.getSelectedIds?.();if(Array.isArray(E)&&E.length>0){const G=E[0];return G!=null?String(G):null}if(k(Ue))return String(Ue);if(!b.length)return null;const D=s.value?b[b.length-1]:b[0];return D?.id!==void 0&&D?.id!==null?String(D.id):null}function Ot(){if(!ue)return;const u=ue.getAll();if(g.value=u?.features?.length??0,!u?.features?.length){Ze=[],m.value=[],Vt=null,Ue=null,p.value=null,Me||(gt="__null__",r("update:modelValue",null));return}const b=(u.features??[]).map(Lo).filter(Boolean);if(Ze=b,Po(b),Ue=yn(),Oo(Ue),!Me){const k=Bl(b);gt=Vl(k),r("update:modelValue",k)}}function Qn(){if(!ue)return;(ue.getAll()?.features||[]).forEach(b=>ue.delete(b.id)),m.value=[],zo()}function eo(u){if(!ue)return;const b=gn(u),k=s.value?b:b.slice(0,1);Me=!0,Qn(),k.forEach(G=>{try{ue.add(G)}catch{}}),Me=!1,Ze=(ue.getAll?.()?.features??k).map(Lo).filter(Boolean),Po(Ze),Ue=null;const D=vt(Ze[Ze.length-1]?.geometry??null);Vt=vt(D),zo(),Io(D),D&&(Tl(D),i.value||St())}function K0(){ue&&(Me=!0,Qn(),Ze.forEach(u=>{try{ue.add(u)}catch{}}),Me=!1,Po(Ze),zo(),Oo(Ue))}function Xt(){if(ue){try{ue.changeMode("simple_select",{featureIds:[]})}catch{}f.value=""}}function to(u){if(i.value||!ue)return;y.isRulerActive.value&&y.closeRuler(),Yt=!0,Xt(),f.value=u;const b=u==="marker"?"draw_point":u==="polyline"?"draw_line_string":u==="rectangle"?"draw_rectangle":"draw_polygon";s.value||(Me=!0,Qn(),Me=!1);try{ue.changeMode(b)}catch{f.value=""}finally{requestAnimationFrame(()=>{Yt=!1})}}function St(u){if(i.value||!ue||!ue.getAll()?.features?.length)return;const k=u||yn();if(k)try{ue.changeMode("direct_select",{featureId:k}),Ue=k,Oo(Ue),f.value="edit"}catch{f.value=""}}function W0(u){i.value||!ue||!u||St(u)}function G0(){if(!(i.value||!ue)){if(s.value){const u=yn();if(u)try{Lt=!0,ue.delete(u),Lt=!1,Ot();const b=yn();b?St(b):Xt();return}catch{Lt=!1}}Xt(),Qn(),Ze=[],m.value=[],Ue=null,gt="__null__",p.value=null,r("update:modelValue",null)}}function Y0(){i.value||!Vt||Tl(Vt)}function X0(u){if(!R||!et)return;const b=[u[1],u[0]];It||(It=new et.Marker({color:"#2563eb"})),It.setLngLat(b).addTo(R),R.easeTo({center:b,zoom:13,duration:250})}function Z0(){i.value||se.value?.click()}function J0(){i.value||(xe.value=!xe.value)}function Ll(u){if(!xe.value)return;const b=ee.value;b&&!b.contains(u.target)&&(xe.value=!1)}function Q0(){xe.value=!1,Z0()}function eb(){i.value||($e.value=[],xe.value=!1,ye.value=!0)}function tb(){ye.value=!1,$e.value=[]}function nb(){if(i.value||!ue)return;const u=Vu(Le.value.coordinates??"",Le.value.format||"decimal",Le.value.order||"lat-lon");if(!u.ok){$e.value=u.errors,ob(u.errors);return}$e.value=[],eo({type:"Polygon",coordinates:[u.ring]}),Ot(),ye.value=!1,u.wasClosedAutomatically&&ke.notify({type:"info",title:"Імпорт координат",message:"Полігон був автоматично замкнений (перша і остання точки різнилися)."})}function ob(u){if(!u.length)return;const b=5;u.slice(0,b).forEach(k=>{const E=k.line>0?`Рядок ${k.line}`:"Загальна помилка";ke.notify({type:"warning",title:"Імпорт координат",message:`${E} — ${k.message}`})}),u.length>b&&ke.notify({type:"warning",title:"Імпорт координат",message:`Ще помилок: ${u.length-b}`})}function rb(u){if(i.value||!ue)return;xe.value=!1;const b=u.target,k=b.files?.[0];if(!k)return;const E=new FileReader;E.onload=()=>{try{const D=JSON.parse(String(E.result));if(!gn(D).length){ke.notify({type:"warning",title:"Імпорт файлу",message:"Файл не містить коректний GeoJSON-обʼєкт."});return}eo(D),Ot()}catch{ke.notify({type:"error",title:"Імпорт файлу",message:"Не вдалося прочитати файл. Перевірте формат GeoJSON/JSON."})}finally{b.value=""}},E.onerror=()=>{ke.notify({type:"error",title:"Імпорт файлу",message:"Помилка читання файлу."}),b.value=""},E.readAsText(k)}function lb(){if(i.value||!ue)return;const u=ue.getAll(),b=new Blob([JSON.stringify(u,null,2)],{type:"application/json"}),k=URL.createObjectURL(b),E=document.createElement("a");E.href=k,E.download="data.geojson",E.click(),URL.revokeObjectURL(k)}e.onMounted(async()=>{if(window.addEventListener("click",Ll,!0),!d.value)return;const u=await Ie();et=u.maplibregl,ot=u.MapboxDraw;const b=Jn();b&&(R=new et.Map({container:d.value,style:Xe(b),center:[q.value[0],q.value[1]],zoom:K.value,attributionControl:!1}),h.value=R,R.addControl(new et.NavigationControl({showCompass:!0}),"bottom-right"),R.on("error",k=>{const E=k?.error?.message??k?.message??"";Yp(E)}),R.on("load",()=>{if(!(!ot||!R)){if(ue=new ot({displayControlsDefault:!1,modes:{...ot.modes,draw_rectangle:Xn()},controls:{point:!1,line_string:!1,polygon:!1,trash:!1},styles:Zn}),R.addControl(ue),R.on("click",k=>{if(y.isRulerActive.value){const D=k?.lngLat;if(!D)return;w.value?.addPoint?.({lat:D.lat,lng:D.lng});return}if(!ue||i.value||f.value!=="edit")return;const E=z0(k?.point);!E||E===Ue||requestAnimationFrame(()=>{!ue||i.value||St(E)})}),R.on("draw.create",()=>{if(ue&&!y.isRulerActive.value){if(!s.value){const k=ue.getAll();if(k.features.length>1){const E=k.features[k.features.length-1];Me=!0,k.features.slice(0,-1).forEach(D=>ue.delete(D.id)),Me=!1,E&&(Me=!0,ue.add(E),Me=!1)}}Ot(),St()}}),R.on("draw.update",k=>{if(Gt||y.isRulerActive.value||rt())return;const E=Array.isArray(k?.features)?k.features:[],D=k?.action==="move"&&E.length>0&&E.every(G=>G?.geometry?.type==="Point");if(k?.action==="move"){if(D){Ot();return}if(Gt=!0,K0(),Gt=!1,f.value==="edit"){const G=yn(),ce=G?Al(G):ue?.getAll?.()?.features?.[0];if(ce?.id)try{ue.changeMode("direct_select",{featureId:ce.id}),Ue=String(ce.id)}catch{f.value=""}}return}Ot()}),R.on("draw.delete",()=>{ie||Lt||y.isRulerActive.value||f.value==="marker"||f.value==="polyline"||f.value==="polygon"||f.value==="rectangle"||(Ot(),ue?.getAll?.()?.features?.length||(Ue=null),f.value="",Xt())}),R.on("draw.selectionchange",k=>{if(!ue||Gt||y.isRulerActive.value||f.value==="marker"||f.value==="polyline"||f.value==="polygon"||f.value==="rectangle")return;const E=k?.features?.[0]?.id!==void 0&&k?.features?.[0]?.id!==null?String(k.features[0].id):null;if(!i.value&&E){if(f.value==="edit"&&Ue===E)return;requestAnimationFrame(()=>{!ue||i.value||St(E)});return}const D=ue.getSelectedIds?.(),G=Array.isArray(D)&&D.length>0?String(D[0]):null;if(!i.value&&G){if(f.value==="edit"&&Ue===G)return;requestAnimationFrame(()=>{!ue||i.value||St(G)});return}try{ue.changeMode("simple_select",{featureIds:[]})}catch{}}),J.value!==void 0){const k=J.value;J.value=void 0,requestAnimationFrame(()=>{ue&&eo(k)})}Je(),El(),we.value.forEach(k=>{const E=le[k];E&&tt(E)}),xt(),F()}}),R.on("contextmenu",U0),R.on("moveend",A),R.on("zoomend",()=>{R&&(K.value=R.getZoom())}))}),e.onUnmounted(()=>{typeof document<"u"&&(document.body.style.overflow=""),typeof window<"u"&&window.removeEventListener("keydown",Uo),Q&&(clearTimeout(Q),Q=null),y.isRulerActive.value&&y.closeRuler(),window.removeEventListener("click",Ll,!0),Object.values(le).forEach(u=>{R&&He(u)}),H(),It?.remove&&It.remove(),It=null,R?.remove&&R.remove(),R=null,ue=null,h.value=null}),e.watch(()=>n.modelValue,u=>{if(!ue){J.value=u;return}if(rt())return;const b=Bl((s.value?gn(u):gn(u).slice(0,1))||[]),k=Vl(b);if(gt&&k===gt){gt=null;return}gt=null,eo(u)},{deep:!0}),e.watch(()=>N.value,u=>{const b=Array.isArray(u)?u:[],k=[],E=new Set;b.forEach((D,G)=>{if(!D)return;const ce=Do(D,G);k.push(ce),E.add(ce);const me={...D,id:ce},Ee=le[ce],Re=Ee?.visible??!!me.visible;Ee&&R&&He(Ee),le[ce]={id:ce,config:me,visible:Re,sourceId:`vs-ov-src-${ce}`,layerIds:[],boundsIds:[],handlers:[],renderToken:Ee?.renderToken??0}}),Object.keys(le).forEach(D=>{if(E.has(D))return;const G=le[D];G&&R&&He(G),delete le[D]}),we.value=k,R&&(we.value.forEach(D=>{const G=le[D];G&&tt(G)}),xt())},{immediate:!0,deep:!0}),e.watch(()=>P.value,()=>{R&&(Je(),we.value.forEach(u=>{const b=le[u];b&&tt(b)}),xt())},{deep:!0}),e.watch(()=>ne.value,async u=>{if(he.value=[],!u){R&&(Je(),we.value.forEach(b=>{const k=le[b];k&&tt(k)}),xt());return}try{const b=await fetch(`https://data.gki.com.ua/api-user/atu/${u}`);if(!b?.ok)return;const E=(await b.json())?.geometry?.coordinates;Array.isArray(E)&&E.length&&(he.value=E)}catch(b){console.error("Failed to fetch KATOTTG bounds",b)}finally{if(!R)return;Je(),we.value.forEach(b=>{const k=le[b];k&&tt(k)}),xt()}},{immediate:!0}),e.watch(()=>L.value,u=>{if(!Array.isArray(u)||u.length!==2)return;const b=[Number(u[0]),Number(u[1])];if(Fl(q.value,b)||(q.value=[...b],!R))return;const k=R.getCenter?.();k&&Fl([k.lng,k.lat],q.value)||R.easeTo({center:[q.value[0],q.value[1]]})},{deep:!0}),e.watch(()=>U.value,u=>{typeof u=="number"&&(K.value=u,R&&R.setZoom(u))}),e.watch(()=>p.value?.center,u=>{u&&T(u.lng,u.lat,R?.getZoom?.())},{deep:!0}),e.watch(i,u=>{u&&Xt()}),e.watch(g,u=>{if(u>0){i.value||St();return}Yt||Xt()});const Il=e.computed(()=>m.value.length>0||!!p.value),jo=e.computed(()=>{const u=m.value,b=u.length>1;return u.length?u.map(k=>({id:k.id,label:b?k.label:p.value?.type?Ro(p.value.type):k.label,interactive:b})):p.value?.type?[{id:"__feature",label:Ro(p.value.type),interactive:!1}]:[]});function Ol(){setTimeout(()=>{R?.resize&&R.resize()},50)}function Uo(u){u.key==="Escape"&&c.value&&(c.value=!1)}return e.watch(c,u=>{typeof document<"u"&&(document.body.style.overflow=u?"hidden":""),typeof window<"u"&&(u?window.addEventListener("keydown",Uo):window.removeEventListener("keydown",Uo)),Ol()}),e.watch(Il,Ol),(u,b)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body",disabled:!c.value},[e.createElementVNode("div",{class:e.normalizeClass(["vs-map-wrapper w-full",{fullscreen:c.value}])},[e.createElementVNode("div",Xp,[e.createElementVNode("div",{ref_key:"mapContainer",ref:d,class:"vs-map-canvas"},null,512),oe.value.search||oe.value.import||oe.value.export?(e.openBlock(),e.createElementBlock("div",Zp,[oe.value.search?(e.openBlock(),e.createBlock(Wu,{key:0,onGoToCoordinates:X0})):e.createCommentVNode("",!0),oe.value.import||oe.value.export?(e.openBlock(),e.createElementBlock("div",Jp,[e.createElementVNode("div",Qp,[oe.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:J0,disabled:i.value},[b[8]||(b[8]=e.createTextVNode(" Імпорт ",-1)),e.createVNode(e.unref(X.ChevronDown),{class:e.normalizeClass(["h-3.5 w-3.5 shrink-0 transition-transform",{"rotate-180":xe.value}])},null,8,["class"])],8,em),xe.value?(e.openBlock(),e.createElementBlock("div",tm,[oe.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:Q0}," З файлу ")):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:eb}," З координат ")])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),oe.value.export?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"vs-map-action-btn",onClick:lb,disabled:i.value||g.value===0}," Експорт ",8,nm)):e.createCommentVNode("",!0)]),e.createElementVNode("input",{ref_key:"importRef",ref:se,type:"file",onChange:rb,accept:".json,.geojson",class:"hidden",disabled:i.value},null,40,om)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createVNode(e.unref(ke.VsModal),{visible:ye.value,"onUpdate:visible":b[1]||(b[1]=k=>ye.value=k),title:"Імпорт координат полігону",size:"lg",teleport:e.unref(l)},{default:e.withCtx(()=>[e.createVNode(pt,{schema:Oe,values:Le.value,"onUpdate:values":b[0]||(b[0]=k=>Le.value=k)},null,8,["values"]),e.createElementVNode("div",rm,[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:tb}," Скасувати "),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:nb,disabled:i.value}," Побудувати ",8,lm)])]),_:1},8,["visible","teleport"]),e.createElementVNode("div",am,[e.createElementVNode("div",sm,[z.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[oe.value.point?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(["vs-btn",{"vs-active":f.value==="marker"}]),title:"Точка",onClick:b[2]||(b[2]=k=>to("marker")),disabled:i.value},[e.createVNode(e.unref(X.MapPin),{class:"vs-btn-icon"})],10,im)):e.createCommentVNode("",!0),oe.value.line?(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(["vs-btn",{"vs-active":f.value==="polyline"}]),title:"Лінія",onClick:b[3]||(b[3]=k=>to("polyline")),disabled:i.value},[e.createVNode(Gd,{class:"vs-btn-icon"})],10,cm)):e.createCommentVNode("",!0),oe.value.polygon?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":f.value==="polygon"}]),title:"Полігон",onClick:b[4]||(b[4]=k=>to("polygon")),disabled:i.value},[e.createVNode(Jd,{class:"vs-btn-icon"})],10,dm)):e.createCommentVNode("",!0),oe.value.rectangle?(e.openBlock(),e.createElementBlock("button",{key:3,class:e.normalizeClass(["vs-btn",{"vs-active":f.value==="rectangle"}]),title:"Прямокутник",onClick:b[5]||(b[5]=k=>to("rectangle")),disabled:i.value},[e.createVNode(nu,{class:"vs-btn-icon"})],10,um)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),z.value?(e.openBlock(),e.createElementBlock("div",pm)):e.createCommentVNode("",!0),oe.value.ruler?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":e.unref(y).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:b[6]||(b[6]=k=>c.value=!c.value),title:c.value?"Згорнути":"На весь екран"},[c.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,mm)])]),oe.value.ruler&&e.unref(y).isRulerActive.value?(e.openBlock(),e.createBlock(Rp,{key:1,ref_key:"rulerPanelRefEl",ref:w,onClose:b[7]||(b[7]=k=>e.unref(y).closeRuler()),onTabChange:e.unref(y).onRulerTabChange,onPointsChange:e.unref(y).onRulerPointsChange,onShapeClosedChange:e.unref(y).onRulerShapeClosedChange},null,8,["onTabChange","onPointsChange","onShapeClosedChange"])):e.createCommentVNode("",!0),oe.value.ruler&&e.unref(y).isRulerActive.value&&e.unref(y).hasRulerPoints.value?(e.openBlock(),e.createBlock(zp,{key:2,map:h.value,points:e.unref(y).rulerPoints.value,"is-shape-closed":e.unref(y).rulerShapeClosed.value,"label-mode":e.unref(y).rulerActiveTab.value},null,8,["map","points","is-shape-closed","label-mode"])):e.createCommentVNode("",!0),qe.value.length?(e.openBlock(),e.createElementBlock("div",{key:3,class:"absolute z-[1500] pointer-events-none",style:e.normalizeStyle(Y.value)},[e.createElementVNode("div",fm,[e.createElementVNode("dl",hm,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(qe.value,k=>(e.openBlock(),e.createElementBlock("div",{key:`${k.key}-${k.value}`,class:"flex justify-between gap-2"},[e.createElementVNode("dt",gm,e.toDisplayString(k.key),1),e.createElementVNode("dd",ym,e.toDisplayString(k.value),1)]))),128))])])],4)):e.createCommentVNode("",!0),e.createElementVNode("div",bm,[e.createVNode(Eu,{compact:"",basemaps:e.unref(Ae),"active-base-key":De.value,"tile-overlays":e.unref(v),"active-tile-overlay-keys":M.value,"vector-overlays":de.value,"preview-tile":O.value,disabled:i.value,onOnLayerChange:I0,onOnOverlayToggle:L0,onOnVectorOverlayToggle:hn},null,8,["basemaps","active-base-key","tile-overlays","active-tile-overlay-keys","vector-overlays","preview-tile","disabled"])])]),Il.value?(e.openBlock(),e.createElementBlock("div",km,[e.createElementVNode("div",wm,[e.createElementVNode("div",xm,[b[9]||(b[9]=e.createElementVNode("span",{class:"vs-map-status__label"},"Тип:",-1)),e.createElementVNode("div",vm,[jo.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(jo.value,(k,E)=>(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(Ue)}]),onClick:D=>W0(k.id),disabled:i.value},e.toDisplayString(k.label),11,_m)):(e.openBlock(),e.createElementBlock("span",Cm,e.toDisplayString(k.label),1)),E<jo.value.length-1?(e.openBlock(),e.createElementBlock("span",Em,", ")):e.createCommentVNode("",!0)],64))),128)):(e.openBlock(),e.createElementBlock("span",Bm,"—"))])]),e.createElementVNode("div",Vm,[e.createElementVNode("span",Sm,[b[10]||(b[10]=e.createElementVNode("span",{class:"vs-map-status__label"},"Центр:",-1)),p.value?(e.openBlock(),e.createElementBlock("span",$m,e.toDisplayString(p.value.center.lng.toFixed(5))+", "+e.toDisplayString(p.value.center.lat.toFixed(5)),1)):(e.openBlock(),e.createElementBlock("span",Am,"—"))]),p.value&&p.value.areaKm2!==null?(e.openBlock(),e.createElementBlock("span",Nm,[b[11]||(b[11]=e.createElementVNode("span",{class:"vs-map-status__label"},"Площа:",-1)),e.createElementVNode("span",Mm,e.toDisplayString(p.value.areaKm2.toFixed(1))+" km²",1)])):e.createCommentVNode("",!0),e.createElementVNode("div",Fm,[e.createElementVNode("button",{type:"button",class:"vs-status-btn vs-status-btn--zoom",title:"Масштаб до об'єкта",onClick:Y0,disabled:i.value},[e.createVNode(e.unref(X.ZoomIn),{class:"vs-status-btn__icon"})],8,Dm),e.createElementVNode("button",{type:"button",class:"vs-status-btn vs-status-btn--delete",title:"Видалити об'єкт",onClick:G0,disabled:i.value},[e.createVNode(e.unref(X.Trash2),{class:"vs-status-btn__icon"})],8,Tm)])])])])):e.createCommentVNode("",!0)],2)],8,["disabled"]))}}),[["__scopeId","data-v-ce74d2a8"]]),jm=["data-focus"],Um={class:"flex items-center"},Hm={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"],Km={key:0,class:"absolute text-gray-500 truncate pl-2"},Wm={class:"flex-1 min-w-[2px]"},Gm=["placeholder"],Ym={class:"flex items-center shrink-0"},Xm=["disabled"],Mr=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;Qe(n.style);const a=e.ref(null),l=e.ref(null),s=e.ref(null),i=e.ref(!1),c=e.ref(""),d=e.useModel(o,"modelValue"),g=e.computed(()=>n.placeholder||"Add tag…"),f=e.computed(()=>d.value?.length===0&&c.value===""),p=e.computed(()=>!n.disabled&&d.value?.length>0),m=e.computed(()=>n.disabled),h=async()=>{m.value||await e.nextTick(()=>s.value?.focus())},w=Z=>{const I=Z.trim();I!==""&&(!d.value||!Array.isArray(d.value)?d.value=[I]:n.unique?d.value.includes(I)||(d.value=[...d.value,I]):d.value=[...d.value,I],c.value="")},y=()=>{const Z=c.value;Z.trim()!==""&&w(Z),c.value=""},C=Z=>{const I=d.value.slice();I.splice(Z,1),r("update:modelValue",I)},_=()=>{r("update:modelValue",[])},B=()=>{m.value||(i.value=!0)},$=()=>{i.value=!1,!m.value&&y()},j=Z=>{const{key:I}=Z;I==="Enter"?(Z.preventDefault(),y()):I==="Backspace"&&c.value===""&&d.value.length>0&&C(d.value.length-1)};return(Z,I)=>(e.openBlock(),e.createElementBlock("div",{class:"flex gap-1 w-full",ref_key:"root",ref:a,onClick:I[1]||(I[1]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass]),role:"group","aria-label":"Tag input"},[e.createElementVNode("div",{class:e.normalizeClass(["flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white","border-gray-300 hover:border-gray-400",i.value?"border-blue-500 ring-1 ring-blue-500":"",m.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),"data-focus":i.value?"true":"false",onClick:h},[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,(V,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",Um,[e.createElementVNode("div",Hm,e.toDisplayString(V),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(x=>C(S),["stop"]),"aria-label":`Remove ${V}`},[e.createVNode(e.unref(X.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,qm)]))),128)),f.value?(e.openBlock(),e.createElementBlock("div",Km,e.toDisplayString(g.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Wm,[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":I[0]||(I[0]=V=>c.value=V),onFocus:B,onBlur:$,onKeydown:j,placeholder:d.value&&d.value.length?"":void 0},null,40,Gm)),[[e.vModelText,c.value]])])],512),e.createElementVNode("div",Ym,[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(_,["stop"])},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,Xm)):e.createCommentVNode("",!0)])],10,jm)],2)],512))}}),Zm={class:"relative flex gap-1 bg-white w-full"},Jm=["disabled","placeholder"],Fr=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 i={а:"a",б:"b",в:"v",г:"g",д:"d",е:"e",ё:"e",ж:"zh",з:"z",и:"i",й:"y",к:"k",л:"l",м:"m",н:"n",о:"o",п:"p",р:"r",с:"s",т:"t",у:"u",ф:"f",х:"kh",ц:"ts",ч:"ch",ш:"sh",щ:"shch",ы:"y",э:"e",ю:"yu",я:"ya",ь:"",ъ:"",є:"ye",і:"i",ї:"yi",ґ:"g"};return s.toLowerCase().split("").map(c=>i[c]||c).join("").replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}const l=()=>{const s=t?.value?.[n.parent||""]?.toString(),i=a(s);r.value=i.toString()};return(s,i)=>(e.openBlock(),e.createElementBlock("div",Zm,[e.withDirectives(e.createElementVNode("input",{ref:"vsText",disabled:s.disabled,placeholder:s.placeholder,"onUpdate:modelValue":i[0]||(i[0]=c=>r.value=c),class:"block w-full px-3 py-2 text-sm border border-solid rounded-lg placeholder:text-nowrap border-stone-200 text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,8,Jm),[[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"]]),Qm={class:"relative flex gap-1 bg-white w-full"},ef=["disabled","placeholder"],tf=["disabled"],nf={key:0},of={key:1},Dr=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)),g=encodeURIComponent(String(t.code));return`/api/code-gen/${d}/${g}`},i=async()=>{if(!l.value||r.value)return;const d=s();if(d){r.value=!0;try{const f=await(await fetch(d)).text();n.value=f}finally{r.value=!1}}},c=()=>{a.value&&(n.value||i())};return e.onMounted(()=>{c()}),e.watch(()=>[t.table,t.code,t.init],()=>{c()}),(d,g)=>(e.openBlock(),e.createElementBlock("div",Qm,[e.withDirectives(e.createElementVNode("input",{disabled:d.disabled,placeholder:d.placeholder,"onUpdate:modelValue":g[0]||(g[0]=f=>n.value=f),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,ef),[[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:i},[r.value?(e.openBlock(),e.createElementBlock("span",of,"...")):(e.openBlock(),e.createElementBlock("span",nf,"Gen"))],8,tf)]))}}),[["__scopeId","data-v-6ee5237d"]]),rf={class:"w-full"},lf={ref:"sortableContainer",class:"flex flex-col gap-1"},af=["onDragstart","onDrop"],sf={class:"cursor-move",type:"button"},cf={class:"w-1/3"},df={class:"w-2/3"},uf=["onClick"],pf={key:0,class:"text-[14px] text-gray-700"},mf={class:"mt-2 w-full flex items-center"},ff=["disabled"],Tr=Be(e.defineComponent({__name:"vs-input-key-value",props:{parent:{},ignore:{},addButtonText:{},modelValue:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=y=>`${y}-${Math.random().toString(36).substring(2,15)}`,r=e.inject("values"),a=o,l=t,s=a.addButtonText??"Додати",i=a.ignore??[],c=e.ref([]),d=e.ref(null);(()=>{const y=a.parent&&r?.value?.[a.parent]||a.modelValue||{};c.value=Object.entries(y).filter(([C])=>!i.includes(C)).map(([C,_])=>({id:n("key-value-"),key:C,value:_}))})();function f(y){d.value=y}function p(y){if(d.value===null||d.value===y)return;const C=c.value.splice(d.value,1)[0];c.value.splice(y,0,C),d.value=null}const m=e.computed(()=>c.value.some(y=>y.key&&!y.value||!y.key&&y.value)),h=()=>{c.value.push({id:n("key-value-"),key:"",value:""})},w=y=>{c.value=c.value.filter(C=>C.id!==y)};return e.watch(c,y=>{const C={};y.forEach(B=>{B.key&&B.value!==void 0&&(C[B.key]=B.value)});const _={};i.length&&i.forEach(B=>{_[B]=a.parent?r?.value?.[a.parent]?.[B]:void 0}),r?.value&&a.parent&&(r.value[a.parent]={..._,...C}),l("update:modelValue",C)},{deep:!0}),(y,C)=>(e.openBlock(),e.createElementBlock("div",rf,[e.createElementVNode("div",lf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,(_,B)=>(e.openBlock(),e.createElementBlock("div",{key:_.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":d.value===B}]),draggable:"true",onDragstart:$=>f(B),onDragover:C[0]||(C[0]=e.withModifiers(()=>{},["prevent"])),onDrop:$=>p(B)},[e.createElementVNode("button",sf,[e.createVNode(e.unref(X.GripVertical),{class:"h-4 w-4"})]),e.createElementVNode("div",cf,[e.createVNode(Ht,{modelValue:_.key,"onUpdate:modelValue":$=>_.key=$,placeholder:"Ключ"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",df,[e.createVNode(Ht,{modelValue:_.value,"onUpdate:modelValue":$=>_.value=$,placeholder:"Значення"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("button",{onClick:$=>w(_.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,uf)],42,af))),128))],512),c.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",pf," Дані для відображення відсутні ")),e.createElementVNode("div",mf,[e.createElementVNode("button",{type:"button",onClick:h,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,ff)])]))}}),[["__scopeId","data-v-d8c3f9d6"]]),hf={class:"w-full"},gf={ref:"sortableContainer",class:"flex flex-col gap-1"},yf=["onDragstart","onDrop"],bf=["disabled"],kf={class:"flex-1"},wf=["onClick","disabled"],xf={key:0,class:"text-[14px] text-gray-700"},vf={class:"mt-2 w-full flex items-center"},_f=["disabled"],Lr=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??""),i=e.computed(()=>t.addButtonText??"Додати");let c=!1;const d=y=>`${y}-${Math.random().toString(36).substring(2,15)}`,g=y=>{const C=y??n.value??[];r.value=C.map((_,B)=>({id:r.value[B]?.id??d("text-array"),value:_??""}))};g(),e.watch(()=>n.value,y=>{if(c){c=!1;return}g(y||[])},{deep:!0}),e.watch(r,y=>{c=!0,n.value=y.map(C=>C.value).filter(C=>C!=null&&C!=="")},{deep:!0});const f=e.computed(()=>l.value||r.value.some(y=>!y.value));function p(){f.value||(r.value=[...r.value,{id:d("text-array"),value:""}])}function m(y){l.value||(r.value=r.value.filter(C=>C.id!==y))}function h(y){l.value||(a.value=y)}function w(y){if(l.value||a.value===null||a.value===y)return;const C=[...r.value],[_]=C.splice(a.value,1);C.splice(y,0,_),r.value=C,a.value=null}return(y,C)=>(e.openBlock(),e.createElementBlock("div",hf,[e.createElementVNode("div",gf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(_,B)=>(e.openBlock(),e.createElementBlock("div",{key:_.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":a.value===B}]),draggable:"true",onDragstart:$=>h(B),onDragover:C[0]||(C[0]=e.withModifiers(()=>{},["prevent"])),onDrop:$=>w(B)},[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",kf,[y.inputType==="text"?(e.openBlock(),e.createBlock(Ht,{key:0,modelValue:_.value,"onUpdate:modelValue":$=>_.value=$,disabled:l.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),y.inputType==="tel"?(e.openBlock(),e.createBlock(io,{key:1,modelValue:_.value,"onUpdate:modelValue":$=>_.value=$,disabled:l.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),y.inputType==="email"?(e.openBlock(),e.createBlock(so,{key:2,modelValue:_.value,"onUpdate:modelValue":$=>_.value=$,disabled:l.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),y.inputType==="mask"?(e.openBlock(),e.createBlock(xn,{key:3,modelValue:_.value,"onUpdate:modelValue":$=>_.value=$,mask:y.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(_.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,wf)],42,yf))),128))],512),r.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",xf," Дані для відображення відсутні ")),e.createElementVNode("div",vf,[e.createElementVNode("button",{type:"button",onClick:p,disabled:f.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(i.value),1)],8,_f)])]))}}),[["__scopeId","data-v-2c229b1f"]]),Cf={class:"flex items-center gap-2 w-full"},Ef=["disabled"],Bf=["disabled"],Ir=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}=Qe(n.style),a=t,l=e.computed({get:()=>n.modelValue||"#000000",set:i=>a("update:modelValue",i)}),s=e.computed(()=>!!n.disabled);return(i,c)=>(e.openBlock(),e.createElementBlock("div",Cf,[e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":c[0]||(c[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]",[i.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,Ef),[[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":c[1]||(c[1]=d=>l.value=d),disabled:s.value},null,8,Bf),[[e.vModelText,l.value]])]))}}),Vf={class:"flex items-center gap-2 w-full"},Sf=["min","max","step","disabled"],$f=["value","min","max","step","disabled"],Or=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}=Qe(n.style),a=t,l=g=>{const f=Number(g),p=Number(n.min),m=Number(n.max);return Number.isNaN(f)?p:Math.min(m,Math.max(p,f))},s=e.computed({get:()=>l(n.modelValue??n.min),set:g=>a("update:modelValue",l(g))}),i=g=>{const f=g.target,p=l(f.value);f.value=String(p),a("update:modelValue",p)},c=g=>{Number(n.min)>=0&&g.key==="-"&&g.preventDefault()},d=e.computed(()=>!!n.disabled);return(g,f)=>(e.openBlock(),e.createElementBlock("div",Vf,[e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":f[0]||(f[0]=p=>s.value=p),min:g.min,max:g.max,step:g.step,disabled:d.value,ref:"range",class:e.normalizeClass(["w-full cursor-pointer accent-blue-500",[g.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")])},null,10,Sf),[[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:g.min,max:g.max,step:g.step,onInput:i,onKeydown:c,disabled:d.value},null,40,$f)]))}}),Af=["placeholder","disabled","name"],Nf=["type","value","onInput","placeholder","disabled"],Mf=["onClick"],Pr=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}=Qe(t.style),l=e.useModel(o,"modelValue"),s=e.computed(()=>!!t.disabled),i=e.computed(()=>t.placeholder??"");e.watchEffect(()=>{const w=l.value?.length??0;w<n.value&&(l.value=[...l.value??[],...Array(n.value-w)])});const c=e.ref({}),d=e.ref({});function g(w,y){w&&(c.value[y]=w)}async function f(w,y){if(!w||t.inputType!=="mask")return;const{default:C}=await Promise.resolve().then(()=>Gn);d.value[y]&&d.value[y].destroy(),d.value[y]=C(w,{mask:t.mask||"",definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},lazy:!1}),d.value[y].on("accept",()=>{const _=[...l.value||[]];_[y]=t.unmask?d.value[y].unmaskedValue:d.value[y].value,l.value=_}),d.value[y].on("complete",()=>{const _=[...l.value||[]];_[y]=t.unmask?d.value[y].unmaskedValue:d.value[y].value,l.value=_}),l.value?.[y]&&(d.value[y].value=l.value[y])}function p(w,y){if(s.value)return;const C=w.target.value??null,_=[...l.value];_[y]=t.inputType==="text"?C:Number(C),l.value=_}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 y=n.value-1;c.value[y]&&f(c.value[y],y)},0)}function h(w){if(n.value>1){d.value[w]&&(d.value[w].destroy(),delete d.value[w]),n.value-=1,l.value=l.value.filter((C,_)=>_!==w);const y={};Object.keys(d.value).forEach(C=>{const _=parseInt(C,10);_>w?y[_-1]=d.value[_]:_<w&&(y[_]=d.value[_])}),d.value=y}}return e.onMounted(()=>{if(t.inputType==="mask")for(let w=0;w<n.value;w+=1)c.value[w]&&f(c.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(y=>{y&&y.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((y,C)=>{d.value[C]&&d.value[C].value!==y&&(d.value[C].value=y||"")})},{deep:!0}),(w,y)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["grid gap-2",`grid-cols-${r.value}`])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,C=>(e.openBlock(),e.createElementBlock("div",{key:C,class:"flex items-center gap-2 w-full"},[w.inputType==="mask"?(e.openBlock(),e.createElementBlock("input",{key:0,type:"text",ref_for:!0,ref:_=>g(_,C-1),placeholder:w.placeholder,disabled:w.disabled,name:`${w.name}[${C-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,Af)):(e.openBlock(),e.createElementBlock("input",{key:1,type:w.inputType,value:l.value?.[C-1],onInput:_=>p(_,C-1),placeholder:i.value,disabled:s.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(a),{"!border-red-600":w.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,Nf)),!w.disabled&&C===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(_=>h(C-1),["stop"]),class:"cursor-pointer shrink-0 w-[38px] text-red-600 h-[38px] rounded-md flex items-center justify-center border border-stone-200 hover:bg-stone-100"},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,Mf)):e.createCommentVNode("",!0)]))),128))],2))}}),Ff={class:"flex gap-1 w-full"},Df=["aria-expanded","data-focus"],Tf=["placeholder","disabled","readonly"],Lf={class:"max-h-full"},If=["onClick","disabled"],Of={key:0,class:"px-3 py-2 text-sm text-stone-500"},Pf=["disabled"],Rf={class:"flex flex-col gap-1"},zf=["onDragstart","onDrop"],jf=["disabled"],Uf=["title"],Hf=["disabled","onClick","aria-label"],qf={key:0,class:"text-xs text-stone-500"},Rn=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??[]),i=e.ref({}),c=e.ref({}),d=e.ref({keyword:"",parent:null}),g=e.ref(""),f=e.ref(!1),p=e.ref(null),m=e.ref(null),h=e.ref(null),w=e.ref(null),y=e.ref(null),C=e.ref({});let _=!1,B=!1;const $=e.inject("values"),j=e.computed(()=>!!n.disabled),Z=e.computed(()=>n.placeholder??"Оберіть значення"),I=e.computed(()=>n.search!==!1),V=e.computed(()=>{const v=n.parent??n.parentValue;return v?String(v):""}),S=e.computed(()=>V.value?$?.value?.[V.value]??null:null),x=v=>v==null?"__null__":String(v),L=v=>{if(!v)return"";const M=v.label??v.text??v.name??v.ua??v.en;return M?String(M):v.id!==void 0&&v.id!==null?String(v.id):""},U=v=>{const M=x(v);return c.value[M]||(c.value[M]=`array-select-${M}-${Math.random().toString(36).slice(2,8)}`),c.value[M]},ne=e.computed(()=>new Set(l.value.map(v=>x(v.id)))),N=e.computed(()=>{const v=ne.value;let M=[...s.value];if(!n.data&&g.value.trim()){const z=g.value.toLowerCase();M=M.filter(de=>L(de).toLowerCase().includes(z))}return M.filter(z=>!v.has(x(z.id)))}),P=()=>{if(!n.data)return"";const v=n.prefix??"api",M=n.api??`/${v}/suggest/${n.data}`;return`${n.host??""}${M}`},q=()=>{l.value.length&&(_=!0,l.value=l.value.map(v=>({...v,text:i.value[x(v.id)]??v.text})))},K=v=>{const M=x(v.id),z=L(v);z&&(i.value[M]=z)},O=v=>{s.value=v?[...v]:[],v?.forEach(K),q()},Q=v=>{if(!v.length)return;const M=new Map(s.value.map(z=>[x(z.id),z]));v.forEach(z=>{const de=x(z.id);M.set(de,z),K(z)}),s.value=Array.from(M.values()),q()},re=async(v="")=>{if(!n.data)return[];const M=P();if(!M)return[];const z=new URLSearchParams;z.set("json","1"),v&&z.set("key",v),n.start===1&&z.set("start","1"),S.value!==null&&S.value!==void 0&&S.value!==""&&z.set("parent",String(S.value));try{return(await(await fetch(`${M}?${z.toString()}`)).json())?.data??[]}catch{return[]}},T=async v=>{if(!n.data||!v.length)return[];const M=P();if(!M)return[];const z=Array.from(new Set(v.map(_e=>x(_e)))),de=new URLSearchParams;de.set("json","1"),de.set("val",z.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(`${M}?${de.toString()}`)).json())?.data??[];return Q(Ie),Ie}catch{return[]}},F=async v=>{if(v==null||v==="")return null;const M=x(v),z=s.value.find(_e=>x(_e.id)===M);if(z)return z;const[de]=await T([v]);return de??null},A=async(v="",{force:M=!1}={})=>{if(!n.data)return;const z=S.value??null;if(!M&&d.value.keyword===v&&d.value.parent===z&&s.value.length>0)return;d.value={keyword:v,parent:z};const _e=await re(v);O(_e)},se=((v,M=200)=>{let z;return(...de)=>{z&&clearTimeout(z),z=setTimeout(()=>v(...de),M)}})(async v=>{n.data&&await A(v,{force:!0})},250),ee=e.ref(null),he=()=>{if(!h.value)return;const v=h.value.getBoundingClientRect(),M=window.innerHeight??document.documentElement.clientHeight,z=window.innerWidth??document.documentElement.clientWidth,de=8,_e=8,Pe=n.maxHeight??280,Ie=M-v.bottom-_e-de,Xe=v.top-_e-de,et=Ie>=Xe,ot=Math.max(z-de*2,0);let{width:R}=v;ot>0&&R>ot&&(R=ot);let{left:ue}=v;ue+R+de>z&&(ue=z-R-de),ue=Math.max(ue,de);const Ze=Math.min(Pe,Math.max(et?Ie:Xe,50));C.value={position:"fixed",left:`${ue}px`,width:`${R}px`,maxHeight:`${Ze}px`,transform:et?"none":"translateY(-100%)",top:et?`${v.bottom+_e}px`:`${v.top-_e}px`}},xe=async(v="click")=>{j.value||f.value||(ee.value=v,await A(g.value.trim()),f.value=!0,await e.nextTick(),he(),y.value?.focus())},ye=()=>{f.value=!1,ee.value=null,e.nextTick(()=>{y.value?.blur()})},$e=async v=>{if(v.stopPropagation(),!j.value){if(f.value){if(ee.value==="focus"){ee.value=null;return}ye();return}await xe("click")}},Le=v=>{v.key==="Escape"&&ye()},Oe=v=>{if(!f.value)return;const M=v.target;w.value?.contains(M)||ye()},Me=v=>{const M=v.target;m.value?.contains(M)||w.value?.contains(M)||ye()},ie=v=>{if(v.key==="Escape"){v.preventDefault(),ye();return}if(v.key==="Enter"){v.preventDefault();const M=N.value[0];M&&le(M)}},le=v=>{if(!v)return;const M=x(v.id);if(ne.value.has(M))return;K(v);const z={id:v.id,text:L(v)||String(v.id??""),key:U(v.id)};l.value=[...l.value,z],we(v),g.value="",e.nextTick(()=>{y.value?.focus()})},we=v=>{const M=l.value.map(z=>z.id);r("value-selected",{name:n.name,value:M,option:v})},Se=v=>{if(j.value)return;const M=l.value.filter(z=>x(z.id)!==x(v));l.value=M},{isOpenAdd:Te,addData:qe,addSchema:Y,addForm:te,addTitle:oe,addOption:pe,onAddValue:be}=yr({props:n,fetchOptionByValue:F,optionsList:s,selectedOption:e.ref(null),modelValue:a,onCreated:async(v,M)=>{const z=v??await F(M),de=z?.id??M;ne.value.has(x(de))||(z&&K(z),l.value=[...l.value,{id:de,text:z?L(z):String(de),key:U(de)}],we(z??null))}}),Ae=v=>{j.value||(p.value=v)},Fe=v=>{if(j.value||p.value===null||p.value===v)return;const M=[...l.value],[z]=M.splice(p.value,1);M.splice(v,0,z),p.value=null,l.value=M},De=async()=>{const M=(Array.isArray(a.value)?[...a.value]:[]).filter(de=>de!=null);if(n.data&&M.length){const de=M.filter(_e=>!i.value[x(_e)]);de.length&&await T(de)}const z=M.map(de=>({id:de,text:i.value[x(de)]??String(de),key:U(de)}));_=!0,l.value=z};e.watch(l,v=>{if(_){_=!1;return}const M=v.map(z=>z.id);B=!0,a.value=M,r("change",M)},{deep:!0}),e.watch(a,()=>{if(B){B=!1;return}De()},{deep:!0}),e.watch(g,v=>{!n.data||!f.value||se(v.trim())}),e.watch(j,v=>{v&&ye()}),e.watch(()=>n.options,async v=>{n.data||(O(v??[]),await De())},{immediate:!0,deep:!0}),e.watch(()=>n.data,async v=>{v&&(await A(g.value.trim()),await De())},{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 A(g.value.trim()),await De()}}),e.onMounted(async()=>{document.addEventListener("click",Me,!0),window.addEventListener("keydown",Le),window.addEventListener("scroll",Oe,!0),await De()}),e.onUnmounted(()=>{document.removeEventListener("click",Me,!0),window.removeEventListener("keydown",Le),window.removeEventListener("scroll",Oe,!0)}),(v,M)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(ke.VsModal),{visible:e.unref(Te),"onUpdate:visible":M[1]||(M[1]=z=>e.isRef(Te)?Te.value=z:null),class:"z-[1000]",title:e.unref(oe),buttonText:"Додати",onDone:e.unref(pe)},{default:e.withCtx(()=>[e.createVNode(pt,{schema:e.unref(Y),modelValue:e.unref(qe),"onUpdate:modelValue":M[0]||(M[0]=z=>e.isRef(qe)?qe.value=z:null),ref_key:"addForm",ref:te},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",Ff,[e.createElementVNode("div",{class:"relative flex-1",onClick:M[4]||(M[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{ref_key:"triggerRef",ref:h,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]",f.value?"border-[#2684ff] ring-1 ring-[#2684ff] shadow-[0_0_0_1px_rgba(38,132,255,0.5)]":"",j.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),role:"combobox","aria-expanded":f.value,"aria-haspopup":"listbox","data-focus":f.value?"true":"false",onClick:$e},[e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:y,"onUpdate:modelValue":M[2]||(M[2]=z=>g.value=z),placeholder:Z.value,disabled:j.value,readonly:!I.value,onFocus:M[3]||(M[3]=()=>xe("focus")),onKeydown:ie,class:"flex-1 bg-transparent border-0 outline-none px-0 py-1 text-sm text-stone-900 placeholder:text-stone-400"},null,40,Tf),[[e.vModelText,g.value]]),e.createElementVNode("span",{class:e.normalizeClass(["text-stone-400 transition-transform duration-150",f.value?"rotate-180":""]),"aria-hidden":"true"},[e.createVNode(e.unref(X.ChevronDown),{class:"h-4 w-4"})],2)],10,Df),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[f.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(C.value)},[e.createElementVNode("div",Lf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,z=>(e.openBlock(),e.createElementBlock("button",{key:x(z.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=>le(z),["stop"]),disabled:j.value},e.toDisplayString(L(z)),9,If))),128)),N.value.length===0?(e.openBlock(),e.createElementBlock("p",Of," Немає варіантів ")):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))]),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:M[5]||(M[5]=(...z)=>e.unref(be)&&e.unref(be)(...z)),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:j.value,type:"button"},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),M[8]||(M[8]=e.createElementVNode("span",null,"Додати",-1))],8,Pf)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Rf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(z,de)=>(e.openBlock(),e.createElementBlock("div",{key:z.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:M[6]||(M[6]=e.withModifiers(()=>{},["prevent"])),onDrop:_e=>Fe(de),onDragend:M[7]||(M[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:j.value,"aria-label":"Перетягнути"},[e.createVNode(e.unref(X.GripVertical),{class:"h-4 w-4"})],8,jf),e.createElementVNode("div",{class:"flex-1 text-sm text-stone-900",title:z.text},e.toDisplayString(z.text),9,Uf),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:j.value,onClick:e.withModifiers(_e=>Se(z.id),["stop"]),"aria-label":`Видалити ${z.text}`},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,Hf)],42,zf))),128)),l.value.length===0?(e.openBlock(),e.createElementBlock("p",qf,"Немає вибраних значень")):e.createCommentVNode("",!0)])],512)],64))}}),[["__scopeId","data-v-da4b4da7"]]),Kf={class:"flex items-center gap-2 w-full"},Wf={class:"relative flex-1"},Gf=["placeholder","disabled","onKeydown"],Yf=["disabled"],Xf={key:0,class:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/50"},Zf={class:"bg-white text-gray-900 rounded-lg shadow-lg w-[480px] max-h-[80vh] overflow-y-auto"},Jf={class:"p-3 border-b font-semibold text-gray-900 flex justify-between items-center"},Qf=["onClick"],eh={key:0,class:"p-4 text-sm text-gray-500"},Rr=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}=Qe(r.style),s=e.useModel(o,"modelValue"),i=e.computed({get:()=>s.value,set:I=>{s.value=I}}),c=e.ref(!1),d=e.ref([]),g=e.ref(!1),f=e.ref(null);e.watch(g,I=>{typeof document>"u"||(I?(f.value=document.body.style.overflow,document.body.style.overflow="hidden"):f.value!=null?(document.body.style.overflow=f.value,f.value=null):document.body.style.removeProperty("overflow"))}),e.onBeforeUnmount(()=>{typeof document>"u"||(f.value!=null?document.body.style.overflow=f.value:document.body.style.removeProperty("overflow"))});const p=e.computed(()=>r.placeholder??""),m=e.computed(()=>!!r.disabled),h=I=>{if(!I)return null;if(Array.isArray(I))return I;if(typeof I=="string"){const V=I.split(",").map(S=>S.trim()).filter(Boolean);return V.length!==4?null:V.map(Number)}return null},w=e.computed(()=>{const I=h(r.bbox);if(!I||I.length!==4)return null;const V=I.map(Number);return V.some(S=>Number.isNaN(S))?null:V}),y=e.computed(()=>{const I=w.value;if(!I)return"";const[V,S,x,L]=I;return`${V},${Math.max(S,L)},${x},${Math.min(S,L)}`});e.computed(()=>y.value?"1":"0");const C=e.inject("values");function _(){!m.value&&i.value.trim()&&B()}async function B(){const I=(i.value||"").trim();if(!I)return;let V=I;if(r.includes?.length&&C?.value){const x=r.includes.map(L=>C.value?.[L]).filter(Boolean);x.length&&(V=`${x.join(", ")}, ${I}`)}const S=Z(V);if(S){c.value=!0;try{const L=await(await fetch(S)).json();d.value=Array.isArray(L)?L:[],g.value=!0}catch(x){console.error("Address search error:",x)}finally{c.value=!1}}}function $(){g.value=!g.value}function j(I){if(!I)return;g.value=!1;const V=parseFloat(I.lat),x={type:"Point",coordinates:[parseFloat(I.lon),V]};r.geom&&C?.value&&(C.value[r.geom]=x),a("update:geom",x)}function Z(I){if(!r.api)return"";const V={value:encodeURIComponent(I),bbox:w.value?w.value.join(","):""};return r.api.replace(n,(S,x)=>V[x.trim()]??"")}return(I,V)=>(e.openBlock(),e.createElementBlock("div",Kf,[e.createElementVNode("div",Wf,[e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":V[0]||(V[0]=S=>i.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(_,["prevent"]),["enter"])},null,42,Gf),[[e.vModelText,i.value]]),d.value.length?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"absolute right-2 top-1/2 -translate-y-1/2 text-gray-500 hover:text-blue-600",onClick:$,title:"Show search results"},[e.createVNode(e.unref(X.Info),{class:"h-4 w-4"})])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:B,class:"flex items-center justify-center px-2 py-2 border rounded-md bg-white hover:bg-gray-50 text-gray-600 hover:text-blue-600 disabled:opacity-50 h-[38px]",disabled:c.value||!i.value?.trim()},[c.value?(e.openBlock(),e.createBlock(e.unref(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,Yf),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[g.value?(e.openBlock(),e.createElementBlock("div",Xf,[e.createElementVNode("div",Zf,[e.createElementVNode("div",Jf,[V[2]||(V[2]=e.createElementVNode("span",null,"Результати пошуку",-1)),e.createElementVNode("button",{class:"text-gray-500 hover:text-blue-600",onClick:V[1]||(V[1]=S=>g.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,x)=>(e.openBlock(),e.createElementBlock("li",{key:x,onClick:L=>j(S),class:"px-3 py-2 cursor-pointer hover:bg-gray-100 border-b text-sm"},e.toDisplayString(S.display_name),9,Qf))),128))]),d.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",eh," Не знайдено результатів "))])])):e.createCommentVNode("",!0)]))]))}}),th={class:"vs-datalist space-y-3"},nh={class:"space-y-3"},oh=["onClick","disabled"],rh={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},lh=["disabled"],ah=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(y=>({...y,disabled:t.disabled||y.disabled}))??[]),s=e.computed(()=>l.value.map(y=>w(y))),i=e.computed(()=>l.value.reduce((C,_)=>{const B=Number(_?.col??12);return C+(Number.isFinite(B)&&B>0?B:12)},0)>12),c=e.computed(()=>t.disabled?!1:t.maxItems?r.value.length<t.maxItems:!0),d=e.computed(()=>t.disabled||r.value.length<=(t.minItems||0));e.watch(()=>r.value.length,()=>{g(),f()},{immediate:!0}),e.watch(()=>t.schema,f,{immediate:!0,deep:!0});function g(){const y=r.value.length;a.value.length<y?a.value=[...a.value,...Array.from({length:y-a.value.length},()=>yo())]:a.value.length>y&&a.value.splice(y)}function f(){if(!t.minItems||r.value.length>=t.minItems)return;const y=t.minItems-r.value.length,C=Array.from({length:y},p);n.value=[...r.value,...C]}function p(){const y={};return l.value.forEach(C=>{y[C.name]=C?.default??null}),y}function m(){c.value&&(n.value=[...r.value,p()],g())}function h(y){d.value||(n.value=r.value.filter((C,_)=>_!==y),g(),f())}function w(y){return{...y}}return(y,C)=>(e.openBlock(),e.createElementBlock("div",th,[e.createElementVNode("div",nh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(_,B)=>(e.openBlock(),e.createElementBlock("div",{key:a.value[B],class:e.normalizeClass(["flex items-center gap-3 rounded-lg transition-colors",{"border border-gray-300 p-2":i.value}])},[e.createVNode(pt,{schema:s.value,layout:"inline",navigation:!1,values:r.value[B],"onUpdate:values":$=>r.value[B]=$,"form-id":a.value[B]},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:$=>h(B),disabled:d.value},[e.createVNode(e.unref(X.Trash2),{class:"h-4 w-4"})],8,oh)],2))),128)),r.value.length===0?(e.openBlock(),e.createElementBlock("div",rh,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:!c.value},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,lh)]))}}),[["__scopeId","data-v-d0065868"]]),sh={class:"vs-dataform space-y-4"},ih=["draggable","onDragstart","onDragover","onDragenter","onDrop"],ch={class:"flex items-center gap-2"},dh=["onClick"],uh={class:"text-sm font-medium text-gray-700"},ph={class:"flex items-center gap-2"},mh=["title","onClick","disabled"],fh=["title","onClick","disabled"],hh={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},gh=["disabled"],yh=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),i=e.ref(null),c=e.ref(null),d=e.computed(()=>t.groupLabel??"Group"),g=e.computed(()=>t.emptyLabel??"Ще немає груп"),f=e.computed(()=>t.schema?.map(A=>({...A,disabled:t.disabled||A.disabled}))??[]),p=e.computed(()=>f.value.map(A=>S(A))),m=e.computed(()=>t.view==="accordion"),h=e.computed(()=>!!(t.collapsible||m.value)),w=e.computed(()=>t.draggable!==!1),y=e.computed(()=>t.disabled?!1:t.maxGroups?n.value.length<t.maxGroups:!0),C=e.computed(()=>t.disabled||n.value.length<=(t.minGroups||0));e.watch(()=>n.value.length,()=>{_(),B(),$()},{immediate:!0}),e.watch(()=>t.schema,$,{immediate:!0,deep:!0}),e.watch(()=>t.view,()=>{B()},{immediate:!0});function _(){const A=n.value.length;r.value.length<A?r.value=[...r.value,...Array.from({length:A-r.value.length},()=>yo())]:r.value.length>A&&r.value.splice(A)}function B(){const A=n.value.length;m.value?A===0?l.value=-1:l.value>=A?l.value=A-1:l.value<0&&(l.value=0):a.value.length<A?a.value=[...a.value,...Array.from({length:A-a.value.length},()=>!1)]:a.value.length>A&&a.value.splice(A)}function $(){if(!t.minGroups||n.value.length>=t.minGroups)return;const A=t.minGroups-n.value.length,J=Array.from({length:A},j);n.value=[...n.value,...J],B()}function j(){const A={};return f.value.forEach(J=>{A[J.name]=J?.default??null}),A}function Z(){y.value&&(n.value=[...n.value,j()],_(),B())}function I(A){C.value||(n.value=n.value.filter((J,se)=>se!==A),_(),m.value?l.value>=n.value.length&&(l.value=n.value.length-1):a.value.splice(A,1),$())}function V(A){if(t.disabled)return;const J=JSON.parse(JSON.stringify(n.value[A]??{}));n.value=[...n.value.slice(0,A+1),J,...n.value.slice(A+1)],_(),m.value?l.value>A&&(l.value+=1):a.value.splice(A+1,0,a.value[A]??!1)}function S(A){return{...A}}function x(A){return m.value?l.value===-1&&A===0?!1:l.value!==A:!!a.value[A]}function L(A){if(h.value){if(m.value){l.value=A;return}a.value[A]=!a.value[A]}}function U(A,J){if(!w.value||t.disabled){J.preventDefault();return}s.value=A,i.value=A,c.value={groups:JSON.parse(JSON.stringify(n.value)),keys:[...r.value],states:[...a.value]},J.dataTransfer?.setData("text/plain",String(A)),J.dataTransfer?.setDragImage?.(J.currentTarget,0,0)}function ne(A,J){!w.value||t.disabled||s.value!==null&&Q(A,J)}function N(A,J){Q(A,J)}function P(A){!w.value||t.disabled||F()}function q(){c.value&&O(),s.value=null,i.value=null,c.value=null}function K(A,J){const se=[...n.value],[ee]=se.splice(A,1);se.splice(J,0,ee),n.value=se;const he=[...r.value],[xe]=he.splice(A,1);if(he.splice(J,0,xe),r.value=he,m.value)l.value===A&&(l.value=J);else{const ye=[...a.value],[$e]=ye.splice(A,1);ye.splice(J,0,$e),a.value=ye}}function O(){c.value&&(n.value=c.value.groups,r.value=c.value.keys,a.value=c.value.states,c.value=null,i.value=null)}function Q(A,J){if(s.value===null)return;const se=re(A,J);i.value=se,T(se)}function re(A,J){if(!J?.currentTarget)return A;const se=J.currentTarget.getBoundingClientRect(),he=J.clientY-se.top>se.height/2?A+1:A;return Math.max(0,Math.min(he,n.value.length))}function T(A){const J=s.value;if(J===null)return;let se=A;if(se>n.value.length&&(se=n.value.length),se===J||se===J+1)return;const ee=se>J?se-1:se;K(J,ee),s.value=ee,i.value=se>J?ee+1:ee}function F(){c.value=null,s.value=null,i.value=null}return(A,J)=>(e.openBlock(),e.createElementBlock("div",sh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(se,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":x(ee)?"pt-6 px-6":"p-6"]]),draggable:w.value&&!t.disabled,onDragstart:he=>U(ee,he),onDragend:q,onDragover:e.withModifiers(he=>ne(ee,he),["prevent"]),onDragenter:e.withModifiers(he=>N(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"&&!x(ee)?"rounded-t-lg":"rounded-lg"]])},[e.createElementVNode("div",ch,[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),h.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=>L(ee)},[e.createVNode(e.unref(X.ChevronDown),{class:e.normalizeClass(["h-4 w-4 transition",x(ee)?"-rotate-90":"rotate-0"])},null,8,["class"])],8,dh)):e.createCommentVNode("",!0),e.createElementVNode("div",uh,e.toDisplayString(`${d.value} (${ee+1})`),1)]),e.createElementVNode("div",ph,[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=>V(ee),disabled:t.disabled,draggable:"false"},[e.createVNode(e.unref(X.Copy),{class:"h-4 w-4"})],8,mh),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=>I(ee),disabled:C.value,draggable:"false"},[e.createVNode(e.unref(X.Trash2),{class:"h-4 w-4"})],8,fh)])],2),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(t.view==="accordion"?"p-6":"pt-6")},[e.createVNode(pt,{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,!x(ee)]])],42,ih))),128)),n.value.length===0?(e.openBlock(),e.createElementBlock("div",hh,e.toDisplayString(g.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:!y.value},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,gh)]))}}),[["__scopeId","data-v-cfbcfed8"]]),zn="__vs_form_monaco_loader__",jt="__vs_form_monaco_script_loader__",jn="__vs_form_monaco_editor_loader__",xo=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,i=null,c=!1;const d=()=>{if(i)return Promise.resolve(i);if(typeof window>"u")return Promise.resolve(null);const h=window;if(h.monaco?.editor?.create)return i=h.monaco,Promise.resolve(i);if(h[zn])return h[zn];const y=(async()=>{const C=$=>{if(Array.from(document.styleSheets||[]).some(I=>I?.href?.includes($)))return;const Z=document.createElement("link");Z.rel="stylesheet",Z.href=$,document.head.appendChild(Z)},_=$=>{if(h[jt]?.[$])return h[jt][$];h[jt]||={};const j=Array.from(document.scripts).find(Z=>Z.src===$);return j?(h[jt][$]=new Promise((Z,I)=>{const V=j.readyState;if(j.dataset.loaded==="true"||V==="loaded"||V==="complete"){Z();return}j.addEventListener("load",()=>{j.dataset.loaded="true",Z()},{once:!0}),j.addEventListener("error",S=>I(S),{once:!0})}),h[jt][$]):(h[jt][$]=new Promise((Z,I)=>{const V=document.createElement("script");V.src=$,V.async=!0,V.onload=()=>{V.dataset.loaded="true",Z()},V.onerror=S=>I(S),document.body.appendChild(V)}),h[jt][$])},B="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs";return C(`${B}/editor/editor.main.min.css`),await _(`${B}/loader.min.js`),h[jn]||(h[jn]=new Promise(($,j)=>{window.require.config({paths:{vs:B}}),window.require(["vs/editor/editor.main"],()=>{i=window.monaco,h.monaco=i,$(i)},Z=>j(Z))}).catch($=>{throw delete h[jn],$})),h[jn]})().catch(C=>{throw delete h[zn],C});return h[zn]=y,y},g=()=>{!a.value||!i||(s&&(s.dispose(),s=null),s=i.editor.create(a.value,{value:r.value||"",language:n.syntax,theme:n.theme,automaticLayout:!0,minimap:{enabled:!!n.minimap},readOnly:!!n.disabled}),s.onDidChangeModelContent(()=>{c||(r.value=s.getValue())}))},f=()=>{s?.focus()},p=()=>s,m=()=>i;return e.watch(()=>r.value,h=>{if(!s)return;const w=s.getValue();h!==w&&(c=!0,s.setValue(h||""),c=!1)}),e.watch(()=>n.syntax,h=>{!s||!i||i.editor.setModelLanguage(s.getModel(),h||"xml")}),e.watch(()=>n.theme,h=>{i&&i.editor.setTheme(h||"vs-light")}),e.watch(()=>n.disabled,h=>{s&&s.updateOptions({readOnly:!!h})}),e.watch(()=>n.minimap,h=>{s&&s.updateOptions({minimap:{enabled:!!h}})}),e.onMounted(async()=>{try{const h=await d();if(!h||!h.editor)return;i=h,g()}catch(h){console.error("Failed to load Monaco editor",h)}}),e.onBeforeUnmount(()=>{s&&(s.dispose(),s=null)}),t({focus:f,getEditor:p,getMonaco:m}),(h,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))}}),zr={VsInputText:Ht,VsInputRadio:co,VsInputInlineSelect:Fn,"vs-input-text":Ht,"vs-input-password":da,"vs-input-textarea":kr,"vs-input-richtext":wr,"vs-input-mask":xn,"vs-input-number":Wo,"vs-input-radio":co,"vs-input-select":go,"vs-input-inline-select":Fn,"inline-select":Fn,"vs-input-switcher":lo,"vs-input-static":ao,"vs-input-container":gr,"vs-input-date":rr,"vs-input-checkbox":Xo,"vs-input-file":mr,"vs-input-file2":Nn,file2:Nn,File2:Nn,"vs-input-html":ao,"vs-input-email":so,"vs-input-tel":io,"vs-input-datatable":xr,"vs-input-map":Nr,"vs-input-file-list":fr,"vs-input-tags":Mr,"vs-input-slug":Fr,"vs-input-codegen":Dr,"vs-input-key-value":Tr,"vs-input-text[]":Lr,"vs-input-range":Or,"vs-input-color":Ir,"vs-input-native-select":go,VsInputArraySelect:Rn,"vs-input-array":Pr,"vs-input-array-select":Rn,"array-select":Rn,"vs-input-address":Rr,"vs-input-datalist":ah,"vs-input-dataform":yh,"vs-input-monaco":xo},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 i=s?.result||s?.message||s?.error||s?.detail;return l.status===400&&typeof i=="string"&&i.trim().toLowerCase()==="not found"?"Дані не знайдено.":l.status===500?"Помилка на сервері.":typeof i=="string"&&i.trim()?i:"При спробі завантажити дані виникла помилка."}async function a(){try{if(!t.api)return;const l=t.api.replace("{{value}}",t.value),s=await fetch(l);if(!s.ok){let c=null;try{c=await s.json()}catch{try{c=await s.text()}catch{c=null}}ke.notify({type:"warning",title:"Validation",message:r(s,c)});return}const i=await s.json();if(!t.set||!n)return;for(const[c,d]of Object.entries(t.set))n.value[c]=i.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))}}),kh={class:"flex flex-col gap-1 w-full"},wh={class:"w-full"},xh=["disabled"],vh=["innerHTML"],_h=2e3,Ch=10,jr=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(()=>ia[`${n.layout}`]),s=["label","placeholder","info","description","text","html"],i=e.ref(U()),c=e.computed(()=>S(n.item,i.value)),d=e.computed(()=>{const N={...c.value??{}},P=n.item?.name;return P&&f?.value?.[P]&&Object.assign(N,f.value[P]),N.__locale=i.value,N}),g=e.computed(()=>zr?.[`vs-input-${n.item.type}`]),f=e.inject("field-props"),p=e.computed(()=>{const N=e.unref(g);if(!N)return new Set;const P=N.props??N.__vccOpts?.props;if(!P)return new Set;const q=Array.isArray(P)?P:Object.keys(P);return new Set(q)}),h=[...["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 y(N){const P={};Object.entries(N).forEach(([K,O])=>{w.has(K)||K.includes(":")||O!==void 0&&(P[K]=O)});const q=N.props;return q&&typeof q=="object"&&!Array.isArray(q)&&Object.entries(q).forEach(([K,O])=>{O!==void 0&&(P[K]=O)}),P}const C=e.computed(()=>{const N={...c.value??{}},P=n.item?.name;P&&f?.value?.[P]&&Object.assign(N,f.value[P]);const q=p.value;let K;return q.size?K=Object.fromEntries(Object.entries(N).filter(([O])=>q.has(O))):K={...N},Object.assign(K,y(N)),h.forEach(O=>{const Q=N[O];Q!=null&&(K[O]=Q)}),K}),_=N=>{const P=typeof N=="object"&&N!==null?N:{value:N};a("value-selected",{...P,name:P.name??n.item?.name})},B=/{{\s*([^}]+?)\s*}}/g,$=e.inject("values"),j=e.ref(!1),Z=e.computed(()=>{const N=n.item?.api,P=n.item?.type?.toLowerCase();return typeof N=="string"&&N.trim().length>0&&(P==="text"||P==="mask")});function I(N,P){if(!(N==null||!P))return P.split(".").reduce((q,K)=>q?.[K.trim()],N)}async function V(){const N=String(r.value??"").trim();if(!N)return;const P=(n.item?.api??"").trim();if(!P)return;const q=P.replace(B,(K,O)=>O.trim()==="value"?encodeURIComponent(N):"");j.value=!0;try{let K=await fetch(q),O=0;for(;K.status===202&&O<Ch;)O+=1,await new Promise(A=>{setTimeout(A,_h)}),K=await fetch(q);if(K.status===202){ke.notify({type:"warning",title:"Validation",message:"Сервер ще обробляє запит. Спробуйте пізніше."});return}if(!K.ok){ke.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const Q=await K.json(),re=Q?.result!==void 0?Q.result:Q,T=n.item?.set;if(!T||!$?.value)return;const F=n.item?.name;Object.entries(T).forEach(([A,J])=>{if(!A)return;let se=J;F&&se.startsWith(`${F}.`)&&(se=se.slice(F.length+1));const ee=I(re,se);$.value[A]=ee??null})}catch(K){console.error("API lookup error:",K),ke.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."})}finally{j.value=!1}}e.onMounted(()=>{i.value=U(),window.addEventListener("storage",ne)}),e.onUnmounted(()=>{window.removeEventListener("storage",ne)});function S(N,P){if(!N)return{};const q={...N};return s.forEach(K=>{const O=L(N,K,P);O!=null&&(q[K]=O)}),Array.isArray(N.options)&&(q.options=N.options.map(K=>x(K,P))),q}function x(N,P){if(!N)return N;const q={...N},K=L(N,"label",P),O=L(N,"text",P);return K!=null&&(q.label=K),O!=null?q.text=O:K!=null&&(q.text=K),q}function L(N,P,q){const K=`${P}:${q}`;if(N?.[K]!=null)return N[K];if(P==="label"&&N?.[q]!=null)return N[q];if(N?.[P]!=null)return N[P];if(P==="label"){if(N?.ua!=null)return N.ua;if(N?.en!=null)return N.en}if(P==="text"||P==="html"){if(N?.ua!=null)return N.ua;if(N?.en!=null)return N.en}return null}function U(){return typeof window>"u"?"uk":localStorage.getItem("locale")||"uk"}function ne(){i.value=U()}return(N,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",kh,[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center gap-2 w-full",{"flex-1":Z.value}])},[e.createElementVNode("div",wh,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(g.value),e.mergeProps(C.value,{modelValue:r.value,"onUpdate:modelValue":P[0]||(P[0]=q=>r.value=q),onValueSelected:_}),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:j.value||!r.value?.toString().trim(),onClick:V},[j.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,xh)):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,vh)):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"]))}}),Eh={class:"text-sm text-gray-800 mb-[4px] font-medium dark:text-neutral-300"},Bh={class:"vs-compact-form-navigation__rail mt-[6px]"},Vh=["onClick"],Sh=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),i=e.computed(()=>["vs-compact-form-navigation flex flex-col pl-[6px] pt-[8px] pr-[8px]","sticky top-0 self-start shrink-0","max-h-full min-h-0 overflow-y-auto"]),c=e.computed(()=>{const L=n.width;if(L==null)return{};const U=typeof L=="number"?`${L}px`:`${L}`;return{width:U,minWidth:U}});let d=null,g=0,f=0,p=null,m=null,h=null;const w=()=>S(),y=()=>_();e.watch(()=>n.target,async L=>{if(Z(),!L){p=null,r.value=[],a.value="";return}p=L,s.value&&(await e.nextTick(),j(L),_())},{immediate:!0}),e.watch(()=>n.scrollContainer,L=>{if(!s.value){m=L??null;return}C(L??null),e.nextTick(()=>_())},{immediate:!0}),e.onMounted(()=>{n.scrollContainer||C(null),_()}),e.onBeforeUnmount(()=>{Z(),C(null,!0),p=null,typeof window<"u"&&(g&&window.cancelAnimationFrame(g),f&&window.cancelAnimationFrame(f))});function C(L,U=!1){if(h&&(h(),h=null),U){m=null;return}if(m=L??null,typeof window>"u")return;const ne=L??window,N=window;ne.addEventListener("scroll",w,{passive:!0}),N.addEventListener("resize",y),h=()=>{ne.removeEventListener("scroll",w),N.removeEventListener("resize",y)}}function _(){if(!s.value||!p)return;g&&typeof window<"u"&&window.cancelAnimationFrame(g);const L=()=>{B(),g=0};typeof window>"u"?L():g=window.requestAnimationFrame(L)}function B(){if(!s.value||!p)return;const L=Array.from(p.querySelectorAll("h1, h2")),U=new Set,ne=[];L.forEach((N,P)=>{const q=N.textContent?.trim()??"";if(!q)return;let K=(N.getAttribute("id")??"").trim();K||(K=$(q)||`heading-${P+1}`);let O=K,Q=1;for(;U.has(O);)O=`${K}-${Q+=1}`;N.id!==O&&Object.assign(N,{id:O}),U.add(O),ne.push({id:O,text:q,level:N.tagName.toLowerCase()==="h1"?1:2})}),r.value=ne,ne.length||(a.value=""),V()}function $(L){return L.toLowerCase().replace(/[^a-z0-9\s-]/g,"").trim().replace(/\s+/g,"-")}function j(L){!L||!s.value||typeof MutationObserver>"u"||(Z(),d=new MutationObserver(()=>_()),d.observe(L,{childList:!0,subtree:!0}))}function Z(){d&&(d.disconnect(),d=null)}function I(L){const U=m;if(!U)return typeof window>"u"?L.offsetTop:L.getBoundingClientRect().top+window.scrollY;const ne=L.getBoundingClientRect(),N=U.getBoundingClientRect();return ne.top-N.top+U.scrollTop}function V(){if(!s.value||!r.value.length)return;const L=m,U=(L?L.scrollTop:null)||(typeof window<"u"?window.scrollY:0),ne=(L?L.clientHeight:null)||(typeof window<"u"?window.innerHeight:0),N=U+ne;let P=null;for(let K=0;K<r.value.length;K+=1){const O=r.value[K],Q=document.getElementById(O.id);if(Q){const re=I(Q);re+Q.offsetHeight>U&&re<N&&(P=O.id)}}!P&&l.value&&(P=l.value),P&&(l.value=P);const q=L?L.scrollHeight-L.clientHeight:document.documentElement.scrollHeight-window.innerHeight;U+5>=q&&(P=r.value[r.value.length-1].id),P&&(a.value=P)}function S(){s.value&&(f&&window.cancelAnimationFrame(f),f=window.requestAnimationFrame(()=>{V(),f=0}))}function x(L){if(!s.value)return;const U=document.getElementById(L);if(!U)return;const ne=m,N=Math.max(0,I(U));ne?ne.scrollTo({top:N,behavior:"smooth"}):typeof window<"u"&&window.scrollTo({top:N,behavior:"smooth"})}return t({refresh:_}),(L,U)=>s.value&&r.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(i.value),style:e.normalizeStyle(c.value)},[e.createElementVNode("h2",Eh,e.toDisplayString(L.title),1),e.createElementVNode("div",Bh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,ne=>(e.openBlock(),e.createElementBlock("div",{key:ne.id,class:e.normalizeClass(["vs-compact-form-navigation__item relative",ne.level===2?"vs-compact-form-navigation__item--nested":"",ne.id===a.value?"vs-compact-form-navigation__item--active":""])},[e.createElementVNode("button",{type:"button",onClick:N=>x(ne.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",ne.level===2?"pl-[15px]":"pl-[18px]",ne.id===a.value?"text-gray-800":"text-gray-500"])},[e.createElementVNode("span",null,e.toDisplayString(ne.text),1)],10,Vh)],2))),128))])],6)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-1584a562"]]),ht={required:"Це поле є обов’язковим",email:"Неправильний email",tel:"Неправильний телефон",minlength:o=>`Мінімальна довжина — ${o} символів`,maxlength:o=>`Максимальна довжина — ${o} символів`,min:o=>`Значення має бути не менше ${o}`,max:o=>`Значення має бути не більше ${o}`},$h=o=>typeof o=="string"?o.trim()?!1:ht.required:Array.isArray(o)?o.map(n=>typeof n=="string"?n.trim():n).filter(n=>n!=null&&n!=="").length?!1:ht.required:typeof o=="number"?Number?.isNaN(o)?ht?.required:!1:o?!1:ht.required,Ah=o=>{const t=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/;return o?t.test(o)?!1:ht.email:!1},Nh=(o,t)=>{if(!o)return!1;const n=String(o).trim();if(!/^\+[1-9]\d{1,14}$/.test(n))return ht.tel;const l=(typeof t?.digits=="number"&&Number.isFinite(t.digits)&&t.digits>0?t.digits:Mt(_t))||Mt(_t);return n.length-1!==l?ht.tel:!1},Ur=o=>o==null?0:typeof o=="string"?o.trim().length:Array.isArray(o)?o.length:typeof o=="number"?o.toString().length:String(o).length,Mh=(o,t)=>{if(o==null)return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&Ur(o)<n?t?.message||ht.minlength(n):!1},Fh=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&Ur(o)>n?t?.message||ht.maxlength(n):!1},Un=o=>{if(typeof o=="number")return o;if(typeof o=="string"){const t=o.trim().replace(",",".");return t?Number(t):Number.NaN}return Number(o)},Dh=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value);if(!Number.isFinite(n))return!1;const r=Un(o);return Number.isFinite(r)&&r<n?t?.message||ht.min(n):!1},Th=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value);if(!Number.isFinite(n))return!1;const r=Un(o);return Number.isFinite(r)&&r>n?t?.message||ht.max(n):!1},Lh=(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=Un(o),s=Un(a);return!Number.isFinite(l)||!Number.isFinite(s)?!1:l>s?t?.message||`Значення має бути не більше ${s}`:!1},Ih=(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},Oh=(o,t)=>!1,Ph=(o,t,n)=>{switch(typeof t=="string"?t:t.type){case"required":return $h(o);case"email":return Ah(o);case"tel":return Nh(o,typeof t=="object"?t:void 0);case"regexp":return Ih(o,t);case"minlength":return Mh(o,t);case"maxlength":return Fh(o,t);case"min":return Dh(o,t);case"max":return Th(o,t);case"maxField":return Lh(o,t,n);case"custom":return Oh();default:return!1}},Rh={autocomplete:"select",combobox:"select",datepicker:"date",markedtext:"mask",html:"static",geom:"map",filelist:"file-list",file:"file",dropzone:"file",inlineselect:"inline-select"};function Hr(o){const t=o?.toLowerCase();return Rh[t]||t}function vo(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=Hr(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||_t,i=Mt(s)||Mt(_t);l.rules=[{type:"tel",digits:i}]}a.data&&(l.api=`/api/suggest/${a.data}`),l.disabled=l.disabled??t,Array.isArray(l.schema)&&(l.schema=vo(l.schema,l.disabled)),r.push(l)}),r}const n=[];return Object.entries(o).forEach(r=>{const a={name:r[0],...r[1],type:Hr(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||_t,s=Mt(l)||Mt(_t);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=vo(a.schema,a.disabled)),n.push(a)}),n}function zh(o,t,n=!1){const r=e.computed(()=>vo((Array.isArray(t),t),typeof n=="boolean"?n:n.value)),a=e.ref({});function l(p){return hr(o?.value,p?.conditions)}const s=new Set(["maxField"]);function i(p){return typeof p.maxField=="string"&&p.maxField?!0:(p.rules||[]).some(m=>{const h=typeof m=="string"?m:m.type;return h?s.has(h):!1})}function c(p){const m=[],h=Number(p?.minlength),w=Number(p?.maxlength),y=Number(p?.min),C=Number(p?.max);!Number.isNaN(h)&&Number.isFinite(h)&&m.push({type:"minlength",value:h}),!Number.isNaN(w)&&Number.isFinite(w)&&m.push({type:"maxlength",value:w}),!Number.isNaN(y)&&Number.isFinite(y)&&m.push({type:"min",value:y}),!Number.isNaN(C)&&Number.isFinite(C)&&m.push({type:"max",value:C}),typeof p?.maxField=="string"&&p.maxField&&m.push({type:"maxField",field:p.maxField,message:p.maxFieldMessage});const _=[...m,...p.rules||[]];if(!_.length)return;if(!l(p)){delete a.value[p.name];return}let B=!1,$=null;_.forEach(j=>{const Z=Ph(o.value[p.name],j,o.value);Z&&(B=!0,!$&&typeof Z=="string"&&($=Z))}),B&&$?a.value[p.name]=$:delete a.value[p.name]}const d=(p=r.value,m=!0)=>(p.forEach(h=>{c(h),h.schema&&d(h.schema,!1)}),m&&Object.values(a.value).some(Boolean)?a.value:null);e.watch(o,()=>{const p=[],m=h=>{h.forEach(w=>{i(w)&&p.push(w),w.schema&&m(w.schema)})};m(r.value),p.forEach(c)},{deep:!0});const g=e.computed(()=>r.value?.filter(p=>p.hidden!==!0&&l(p)));return{errors:a,validate:d,reset:()=>{o.value={},a.value={}},visibleSchema:g}}const jh={class:"flex w-full h-full min-h-0 gap-6"},Uh={key:0,"data-orientation":"horizontal",role:"none",class:"mt-1 shrink-0 h-[1px] w-full bg-slate-100 dark:bg-slate-600"},pt=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"),i=e.useModel(o,"modelValue"),c=e.useModel(o,"values"),d=e.computed({get:()=>c.value??i.value,set:q=>{i.value=q,c.value=q}}),{errors:g,validate:f,reset:p,visibleSchema:m}=zh(d,a.schema,e.toRef(a,"disabled")),h=e.ref(null),w=e.ref(null),y=e.ref({}),C=e.computed(()=>a.navigation),_=e.computed(()=>a.navWidth),B=e.computed(()=>a.style?.columns),$=Object.freeze({container:12,label:3}),j=e.computed(()=>a.columns??B.value??$),Z=e.computed(()=>a.columns!=null||B.value!=null),I=e.computed(()=>Z.value?"horizontal":a.layout),V=q=>q?.columns?"horizontal":I.value,S=q=>q?.columns??j.value,x=e.computed(()=>{const q={},K=O=>{if(!O)return;(Array.isArray(O)?O.map((re,T)=>({key:String(T),entry:re})):typeof O=="object"?Object.entries(O).map(([re,T])=>({key:re,entry:T})):[]).forEach(({key:re,entry:T})=>{if(!T||typeof T!="object")return;const F=T.name?String(T.name):re;F&&(q[F]={...T,name:F}),Array.isArray(T.schema)&&K(T.schema)})};return K(a.schema),q}),L=()=>{!l.value&&d.value&&delete d.value.id,r("update:modelValue",d.value),f(),r("handle-submit",d.value)},U=q=>{r("value-selected",q)};t({validate:f,reset:p,errors:g}),e.onMounted(()=>{s.value={value:d.value,errors:g.value,reset:p,validate:f,formId:a.formId}});function ne(q,K){if(q===K)return!0;if(typeof q!="object"||typeof K!="object"||!q||!K)return!1;const O=Object.keys(q),Q=Object.keys(K);return O.length!==Q.length?!1:O.every(re=>q[re]===K[re])}function N(q){return Array.isArray(q)?[...q]:q&&typeof q=="object"?{...q}:q}function P(q){Array.isArray(q)&&q.forEach(K=>{if(!K)return;const O=K.name,Q=K.default!==void 0;O&&Q&&d.value[O]===void 0&&(d.value[O]=N(K.default)),Array.isArray(K.schema)&&P(K.schema)})}return e.watch(m,q=>{P(q)},{immediate:!0,deep:!0}),e.provide("form",s),e.provide("values",d),e.provide("field-props",y),e.provide("schema-by-name",x),(q,K)=>(e.openBlock(),e.createElementBlock("div",jh,[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:h,onSubmit:e.withModifiers(L,["prevent"]),class:e.normalizeClass(["grid grid-cols-12 p-1",I.value==="default"?"gap-6":"gap-4"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(m),(O,Q)=>(e.openBlock(),e.createElementBlock("div",{key:O.name,class:e.normalizeClass(V(O)==="horizontal"?"col-span-12":`col-span-12 md:col-span-${O.col||12}`)},[e.createVNode(jr,{style:e.normalizeStyle(q.style),item:O,layout:V(O),columns:S(O),"model-value":d.value[O.name],"onUpdate:modelValue":re=>{if(O.name==="id"&&!l.value)return;const T=d.value[O.name];ne(T,re)||(d.value[O.name]=re)},error:e.unref(g)[O.name],onValueSelected:U},null,8,["style","item","layout","columns","model-value","onUpdate:modelValue","error"]),V(O)==="settings"&&Q+1!==e.unref(m).length?(e.openBlock(),e.createElementBlock("div",Uh)):e.createCommentVNode("",!0)],2))),128))],34)],512),e.createVNode(Sh,{target:h.value,"scroll-container":w.value,enabled:C.value,width:_.value},null,8,["target","scroll-container","enabled","width"])]))}}),Hh={class:"relative"},qh={class:"w-full h-full fixed top-0 start-0 bg-black bg-opacity-50"},Kh={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"},Wh={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},Gh={class:"font-medium text-gray-800 dark:text-[#ffffff]"},Yh={class:"p-4 mim-h-0 h-full overflow-auto"},qr=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({}),i=e.ref(n.token||""),c=e.ref(n.token||""),d=e.ref(n.mode),g=()=>{const y=n.method?.trim().toUpperCase();return y==="GET"||y==="POST"||y==="PUT"?y:d.value==="add"?"POST":"PUT"},f=()=>{ke.notify({type:"success",title:"Успішно",message:`Дані успішно ${d.value==="add"?"збережено":"оновлено"}`})},p=y=>{const C={};y.id!==void 0&&y.id!==null&&(C.id=y.id,c.value=y.id.toString()),y.obj&&typeof y.obj=="object"&&Object.assign(C,y.obj),Object.keys(C).length&&(l.value={...l.value,...C})},m=async y=>{if(console.log(y),y.ok){await y.json().catch(()=>({})),f(),r("save",l.value);return}const C=await y.json().catch(()=>({})),_=C.message||C.error;if(y.status===400){ke.notify({type:"warning",title:"Помилка валідації",message:_||"Некоректні дані (400)"});return}if(y.status===403){ke.notify({type:"warning",title:"Доступ заборонено",message:_||"Доступ заборонено (403)"});return}if(y.status===500){ke.notify({type:"error",title:"Серверна помилка",message:_||"Виникла помилка на сервері (500)"});return}ke.notify({type:"error",title:"Помилка",message:`Статус: ${y.status}`})};async function h(){const y=s.value.validate();if(y){ke.notify({type:"warning",title:"Помилка валідації",message:Object.entries(y).map(([_,B])=>`${_}: ${B}`).join(`
5
+ `)});return}d.value==="add"&&l.value&&delete l.value.id;const C=n.api?.trim();if(C){const _=g();try{const B=await fetch(C,{method:_,headers:_==="GET"?void 0:{"Content-Type":"application/json"},body:_==="GET"?void 0:JSON.stringify(l.value)});await m(B)}catch(B){ke.notify({type:"error",title:"Помилка з’єднання",message:B.message||"Не вдалося виконати запит"})}return}if(i.value)try{const _=await fetch(`/api/table/${i.value}`,{method:d.value==="add"?"POST":"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(l.value)});await m(_)}catch(_){ke.notify({type:"error",title:"Помилка з’єднання",message:_.message||"Не вдалося виконати запит"})}else r("edit",l.value),w()}function w(){r("close")}return e.onMounted(async()=>{try{if(n.form&&!n.schema){const y=await fetch(`/api/template/form/${n.form}`);if(!y.ok){ke.notify({type:y.status>=400&&y.status<500?"warning":"error",title:"Error",message:`Error code: ${y.status}`});return}const C=await y.json();a.value=C.schema,C.id&&(c.value=C.id),C.token&&(i.value=C.token,c.value||(c.value=C.token))}else if(n.token&&!n.defaultValue){i.value=n.token;const y=await fetch(`/api/form/${i.value}`);if(!y.ok){ke.notify({type:y.status>=400&&y.status<500?"warning":"error",title:"Error",message:`Error code: ${y.status}`});return}const C=await y.json();a.value=C.schema,C.data?l.value=C.data:d.value="add",p({id:C.id,obj:C.obj})}}catch(y){ke.notify({type:"error",title:"Error",message:y.message||"Unexpected error"}),console.error(y)}}),(y,C)=>(e.openBlock(),e.createElementBlock("div",Hh,[e.createElementVNode("div",qh,[e.createElementVNode("div",Kh,[e.createElementVNode("div",Wh,[e.createElementVNode("h3",Gh,e.toDisplayString(d.value==="add"?"Додати":"Змінити"),1),e.createElementVNode("button",{onClick:w,type:"button",class:"size-8 inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:hover:bg-neutral-600 dark:text-neutral-400 dark:focus:bg-neutral-600"},[C[2]||(C[2]=e.createElementVNode("span",{class:"sr-only"},"Close",-1)),e.createVNode(e.unref(X.X),{class:"h-4 w-4 flex-shrink-0"})])]),e.createElementVNode("div",Yh,[a.value?(e.openBlock(),e.createBlock(pt,{key:0,schema:a.value,values:l.value,"onUpdate:values":C[0]||(C[0]=_=>l.value=_),form:s.value,"onUpdate:form":C[1]||(C[1]=_=>s.value=_),formId:c.value},null,8,["schema","values","form","formId"])):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:"vs-form__head mr-5 mb-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},[e.createElementVNode("button",{type:"button",onClick:w,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:h,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"}," Зберегти ")])])])]))}}),Kr=no.form.richtext,Wr=oo.form.richtext,_o={en:{form:{richtext:Kr}},uk:{form:{richtext:Wr}}},Gr=(o={mode:"edit",schema:null})=>new Promise(t=>{const{close:n}=ke.modal({title:o.mode==="add"?"Додати":"Редагувати",template:"",visible:!0,size:"medium",closeClickBack:!0,content:qr,contentProps:{...o,onClose:()=>{t(null),n()},onSave:r=>{t(r),n()}}})});pt.install=function(t){t.component("VForm",pt),Object.assign(t.config.globalProperties,{$form:Gr}),t.provide("form",Gr),window.v3plugin||(window.v3plugin={})};function Ft(o){return typeof o=="string"||o instanceof String}function Yr(o){var t;return typeof o=="object"&&o!=null&&(o==null||(t=o.constructor)==null?void 0:t.name)==="Object"}function Xr(o,t){return Array.isArray(t)?Xr(o,(n,r)=>t.includes(r)):Object.entries(o).reduce((n,r)=>{let[a,l]=r;return t(l,a)&&(n[a]=l),n},{})}const ge={NONE:"NONE",LEFT:"LEFT",FORCE_LEFT:"FORCE_LEFT",RIGHT:"RIGHT",FORCE_RIGHT:"FORCE_RIGHT"};function Zr(o){switch(o){case ge.LEFT:return ge.FORCE_LEFT;case ge.RIGHT:return ge.FORCE_RIGHT;default:return o}}function Co(o){return o.replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1")}function Hn(o,t){if(t===o)return!0;const n=Array.isArray(t),r=Array.isArray(o);let a;if(n&&r){if(t.length!=o.length)return!1;for(a=0;a<t.length;a++)if(!Hn(t[a],o[a]))return!1;return!0}if(n!=r)return!1;if(t&&o&&typeof t=="object"&&typeof o=="object"){const l=t instanceof Date,s=o instanceof Date;if(l&&s)return t.getTime()==o.getTime();if(l!=s)return!1;const i=t instanceof RegExp,c=o instanceof RegExp;if(i&&c)return t.toString()==o.toString();if(i!=c)return!1;const d=Object.keys(t);for(a=0;a<d.length;a++)if(!Object.prototype.hasOwnProperty.call(o,d[a]))return!1;for(a=0;a<d.length;a++)if(!Hn(o[d[a]],t[d[a]]))return!1;return!0}else if(t&&o&&typeof t=="function"&&typeof o=="function")return t.toString()===o.toString();return!1}class Xh{constructor(t){for(Object.assign(this,t);this.value.slice(0,this.startChangePos)!==this.oldValue.slice(0,this.startChangePos);)--this.oldSelection.start;if(this.insertedCount)for(;this.value.slice(this.cursorPos)!==this.oldValue.slice(this.oldSelection.end);)this.value.length-this.cursorPos<this.oldValue.length-this.oldSelection.end?++this.oldSelection.end:++this.cursorPos}get startChangePos(){return Math.min(this.cursorPos,this.oldSelection.start)}get insertedCount(){return this.cursorPos-this.startChangePos}get inserted(){return this.value.substr(this.startChangePos,this.insertedCount)}get removedCount(){return Math.max(this.oldSelection.end-this.startChangePos||this.oldValue.length-this.value.length,0)}get removed(){return this.oldValue.substr(this.startChangePos,this.removedCount)}get head(){return this.value.substring(0,this.startChangePos)}get tail(){return this.value.substring(this.startChangePos+this.insertedCount)}get removeDirection(){return!this.removedCount||this.insertedCount?ge.NONE:(this.oldSelection.end===this.cursorPos||this.oldSelection.start===this.cursorPos)&&this.oldSelection.end===this.oldSelection.start?ge.RIGHT:ge.LEFT}}function Ce(o,t){return new Ce.InputMask(o,t)}function Jr(o){if(o==null)throw new Error("mask property should be defined");return o instanceof RegExp?Ce.MaskedRegExp:Ft(o)?Ce.MaskedPattern:o===Date?Ce.MaskedDate:o===Number?Ce.MaskedNumber:Array.isArray(o)||o===Array?Ce.MaskedDynamic:Ce.Masked&&o.prototype instanceof Ce.Masked?o:Ce.Masked&&o instanceof Ce.Masked?o.constructor:o instanceof Function?Ce.MaskedFunction:(console.warn("Mask not found for mask",o),Ce.Masked)}function Wt(o){if(!o)throw new Error("Options in not defined");if(Ce.Masked){if(o.prototype instanceof Ce.Masked)return{mask:o};const{mask:t=void 0,...n}=o instanceof Ce.Masked?{mask:o}:Yr(o)&&o.mask instanceof Ce.Masked?o:{};if(t){const r=t.mask;return{...Xr(t,(a,l)=>!l.startsWith("_")),mask:t.constructor,_mask:r,...n}}}return Yr(o)?{...o}:{mask:o}}function yt(o){if(Ce.Masked&&o instanceof Ce.Masked)return o;const t=Wt(o),n=Jr(t.mask);if(!n)throw new Error("Masked class is not found for provided mask "+t.mask+", appropriate module needs to be imported manually before creating mask.");return t.mask===n&&delete t.mask,t._mask&&(t.mask=t._mask,delete t._mask),new n(t)}Ce.createMask=yt;class qn{get selectionStart(){let t;try{t=this._unsafeSelectionStart}catch{}return t??this.value.length}get selectionEnd(){let t;try{t=this._unsafeSelectionEnd}catch{}return t??this.value.length}select(t,n){if(!(t==null||n==null||t===this.selectionStart&&n===this.selectionEnd))try{this._unsafeSelect(t,n)}catch{}}get isActive(){return!1}}Ce.MaskElement=qn;const Qr=90,Zh=89;class rn extends qn{constructor(t){super(),this.input=t,this._onKeydown=this._onKeydown.bind(this),this._onInput=this._onInput.bind(this),this._onBeforeinput=this._onBeforeinput.bind(this),this._onCompositionEnd=this._onCompositionEnd.bind(this)}get rootElement(){var t,n,r;return(t=(n=(r=this.input).getRootNode)==null?void 0:n.call(r))!=null?t:document}get isActive(){return this.input===this.rootElement.activeElement}bindEvents(t){this.input.addEventListener("keydown",this._onKeydown),this.input.addEventListener("input",this._onInput),this.input.addEventListener("beforeinput",this._onBeforeinput),this.input.addEventListener("compositionend",this._onCompositionEnd),this.input.addEventListener("drop",t.drop),this.input.addEventListener("click",t.click),this.input.addEventListener("focus",t.focus),this.input.addEventListener("blur",t.commit),this._handlers=t}_onKeydown(t){if(this._handlers.redo&&(t.keyCode===Qr&&t.shiftKey&&(t.metaKey||t.ctrlKey)||t.keyCode===Zh&&t.ctrlKey))return t.preventDefault(),this._handlers.redo(t);if(this._handlers.undo&&t.keyCode===Qr&&(t.metaKey||t.ctrlKey))return t.preventDefault(),this._handlers.undo(t);t.isComposing||this._handlers.selectionChange(t)}_onBeforeinput(t){if(t.inputType==="historyUndo"&&this._handlers.undo)return t.preventDefault(),this._handlers.undo(t);if(t.inputType==="historyRedo"&&this._handlers.redo)return t.preventDefault(),this._handlers.redo(t)}_onCompositionEnd(t){this._handlers.input(t)}_onInput(t){t.isComposing||this._handlers.input(t)}unbindEvents(){this.input.removeEventListener("keydown",this._onKeydown),this.input.removeEventListener("input",this._onInput),this.input.removeEventListener("beforeinput",this._onBeforeinput),this.input.removeEventListener("compositionend",this._onCompositionEnd),this.input.removeEventListener("drop",this._handlers.drop),this.input.removeEventListener("click",this._handlers.click),this.input.removeEventListener("focus",this._handlers.focus),this.input.removeEventListener("blur",this._handlers.commit),this._handlers={}}}Ce.HTMLMaskElement=rn;class el extends rn{constructor(t){super(t),this.input=t}get _unsafeSelectionStart(){return this.input.selectionStart!=null?this.input.selectionStart:this.value.length}get _unsafeSelectionEnd(){return this.input.selectionEnd}_unsafeSelect(t,n){this.input.setSelectionRange(t,n)}get value(){return this.input.value}set value(t){this.input.value=t}}Ce.HTMLMaskElement=rn;class Eo extends rn{get _unsafeSelectionStart(){const t=this.rootElement,n=t.getSelection&&t.getSelection(),r=n&&n.anchorOffset,a=n&&n.focusOffset;return a==null||r==null||r<a?r:a}get _unsafeSelectionEnd(){const t=this.rootElement,n=t.getSelection&&t.getSelection(),r=n&&n.anchorOffset,a=n&&n.focusOffset;return a==null||r==null||r>a?r:a}_unsafeSelect(t,n){if(!this.rootElement.createRange)return;const r=this.rootElement.createRange();r.setStart(this.input.firstChild||this.input,t),r.setEnd(this.input.lastChild||this.input,n);const a=this.rootElement,l=a.getSelection&&a.getSelection();l&&(l.removeAllRanges(),l.addRange(r))}get value(){return this.input.textContent||""}set value(t){this.input.textContent=t}}Ce.HTMLContenteditableMaskElement=Eo;class Kn{constructor(){this.states=[],this.currentIndex=0}get currentState(){return this.states[this.currentIndex]}get isEmpty(){return this.states.length===0}push(t){this.currentIndex<this.states.length-1&&(this.states.length=this.currentIndex+1),this.states.push(t),this.states.length>Kn.MAX_LENGTH&&this.states.shift(),this.currentIndex=this.states.length-1}go(t){return this.currentIndex=Math.min(Math.max(this.currentIndex+t,0),this.states.length-1),this.currentState}undo(){return this.go(-1)}redo(){return this.go(1)}clear(){this.states.length=0,this.currentIndex=0}}Kn.MAX_LENGTH=100;class tl{constructor(t,n){this.el=t instanceof qn?t:t.isContentEditable&&t.tagName!=="INPUT"&&t.tagName!=="TEXTAREA"?new Eo(t):new el(t),this.masked=yt(n),this._listeners={},this._value="",this._unmaskedValue="",this._rawInputValue="",this.history=new Kn,this._saveSelection=this._saveSelection.bind(this),this._onInput=this._onInput.bind(this),this._onChange=this._onChange.bind(this),this._onDrop=this._onDrop.bind(this),this._onFocus=this._onFocus.bind(this),this._onClick=this._onClick.bind(this),this._onUndo=this._onUndo.bind(this),this._onRedo=this._onRedo.bind(this),this.alignCursor=this.alignCursor.bind(this),this.alignCursorFriendly=this.alignCursorFriendly.bind(this),this._bindEvents(),this.updateValue(),this._onChange()}maskEquals(t){var n;return t==null||((n=this.masked)==null?void 0:n.maskEquals(t))}get mask(){return this.masked.mask}set mask(t){if(this.maskEquals(t))return;if(!(t instanceof Ce.Masked)&&this.masked.constructor===Jr(t)){this.masked.updateOptions({mask:t});return}const n=t instanceof Ce.Masked?t:yt({mask:t});n.unmaskedValue=this.masked.unmaskedValue,this.masked=n}get value(){return this._value}set value(t){this.value!==t&&(this.masked.value=t,this.updateControl("auto"))}get unmaskedValue(){return this._unmaskedValue}set unmaskedValue(t){this.unmaskedValue!==t&&(this.masked.unmaskedValue=t,this.updateControl("auto"))}get rawInputValue(){return this._rawInputValue}set rawInputValue(t){this.rawInputValue!==t&&(this.masked.rawInputValue=t,this.updateControl(),this.alignCursor())}get typedValue(){return this.masked.typedValue}set typedValue(t){this.masked.typedValueEquals(t)||(this.masked.typedValue=t,this.updateControl("auto"))}get displayValue(){return this.masked.displayValue}_bindEvents(){this.el.bindEvents({selectionChange:this._saveSelection,input:this._onInput,drop:this._onDrop,click:this._onClick,focus:this._onFocus,commit:this._onChange,undo:this._onUndo,redo:this._onRedo})}_unbindEvents(){this.el&&this.el.unbindEvents()}_fireEvent(t,n){const r=this._listeners[t];r&&r.forEach(a=>a(n))}get selectionStart(){return this._cursorChanging?this._changingCursorPos:this.el.selectionStart}get cursorPos(){return this._cursorChanging?this._changingCursorPos:this.el.selectionEnd}set cursorPos(t){!this.el||!this.el.isActive||(this.el.select(t,t),this._saveSelection())}_saveSelection(){this.displayValue!==this.el.value&&console.warn("Element value was changed outside of mask. Syncronize mask using `mask.updateValue()` to work properly."),this._selection={start:this.selectionStart,end:this.cursorPos}}updateValue(){this.masked.value=this.el.value,this._value=this.masked.value,this._unmaskedValue=this.masked.unmaskedValue,this._rawInputValue=this.masked.rawInputValue}updateControl(t){const n=this.masked.unmaskedValue,r=this.masked.value,a=this.masked.rawInputValue,l=this.displayValue,s=this.unmaskedValue!==n||this.value!==r||this._rawInputValue!==a;this._unmaskedValue=n,this._value=r,this._rawInputValue=a,this.el.value!==l&&(this.el.value=l),t==="auto"?this.alignCursor():t!=null&&(this.cursorPos=t),s&&this._fireChangeEvents(),!this._historyChanging&&(s||this.history.isEmpty)&&this.history.push({unmaskedValue:n,selection:{start:this.selectionStart,end:this.cursorPos}})}updateOptions(t){const{mask:n,...r}=t,a=!this.maskEquals(n),l=this.masked.optionsIsChanged(r);a&&(this.mask=n),l&&this.masked.updateOptions(r),(a||l)&&this.updateControl()}updateCursor(t){t!=null&&(this.cursorPos=t,this._delayUpdateCursor(t))}_delayUpdateCursor(t){this._abortUpdateCursor(),this._changingCursorPos=t,this._cursorChanging=setTimeout(()=>{this.el&&(this.cursorPos=this._changingCursorPos,this._abortUpdateCursor())},10)}_fireChangeEvents(){this._fireEvent("accept",this._inputEvent),this.masked.isComplete&&this._fireEvent("complete",this._inputEvent)}_abortUpdateCursor(){this._cursorChanging&&(clearTimeout(this._cursorChanging),delete this._cursorChanging)}alignCursor(){this.cursorPos=this.masked.nearestInputPos(this.masked.nearestInputPos(this.cursorPos,ge.LEFT))}alignCursorFriendly(){this.selectionStart===this.cursorPos&&this.alignCursor()}on(t,n){return this._listeners[t]||(this._listeners[t]=[]),this._listeners[t].push(n),this}off(t,n){if(!this._listeners[t])return this;if(!n)return delete this._listeners[t],this;const r=this._listeners[t].indexOf(n);return r>=0&&this._listeners[t].splice(r,1),this}_onInput(t){this._inputEvent=t,this._abortUpdateCursor();const n=new Xh({value:this.el.value,cursorPos:this.cursorPos,oldValue:this.displayValue,oldSelection:this._selection}),r=this.masked.rawInputValue,a=this.masked.splice(n.startChangePos,n.removed.length,n.inserted,n.removeDirection,{input:!0,raw:!0}).offset,l=r===this.masked.rawInputValue?n.removeDirection:ge.NONE;let s=this.masked.nearestInputPos(n.startChangePos+a,l);l!==ge.NONE&&(s=this.masked.nearestInputPos(s,ge.NONE)),this.updateControl(s),delete this._inputEvent}_onChange(){this.displayValue!==this.el.value&&this.updateValue(),this.masked.doCommit(),this.updateControl(),this._saveSelection()}_onDrop(t){t.preventDefault(),t.stopPropagation()}_onFocus(t){this.alignCursorFriendly()}_onClick(t){this.alignCursorFriendly()}_onUndo(){this._applyHistoryState(this.history.undo())}_onRedo(){this._applyHistoryState(this.history.redo())}_applyHistoryState(t){t&&(this._historyChanging=!0,this.unmaskedValue=t.unmaskedValue,this.el.select(t.selection.start,t.selection.end),this._saveSelection(),this._historyChanging=!1)}destroy(){this._unbindEvents(),this._listeners.length=0,delete this.el}}Ce.InputMask=tl;class Ve{static normalize(t){return Array.isArray(t)?t:[t,new Ve]}constructor(t){Object.assign(this,{inserted:"",rawInserted:"",tailShift:0,skip:!1},t)}aggregate(t){return this.inserted+=t.inserted,this.rawInserted+=t.rawInserted,this.tailShift+=t.tailShift,this.skip=this.skip||t.skip,this}get offset(){return this.tailShift+this.inserted.length}get consumed(){return!!this.rawInserted||this.skip}equals(t){return this.inserted===t.inserted&&this.tailShift===t.tailShift&&this.rawInserted===t.rawInserted&&this.skip===t.skip}}Ce.ChangeDetails=Ve;class bt{constructor(t,n,r){t===void 0&&(t=""),n===void 0&&(n=0),this.value=t,this.from=n,this.stop=r}toString(){return this.value}extend(t){this.value+=String(t)}appendTo(t){return t.append(this.toString(),{tail:!0}).aggregate(t._appendPlaceholder())}get state(){return{value:this.value,from:this.from,stop:this.stop}}set state(t){Object.assign(this,t)}unshift(t){if(!this.value.length||t!=null&&this.from>=t)return"";const n=this.value[0];return this.value=this.value.slice(1),n}shift(){if(!this.value.length)return"";const t=this.value[this.value.length-1];return this.value=this.value.slice(0,-1),t}}class Ge{constructor(t){this._value="",this._update({...Ge.DEFAULTS,...t}),this._initialized=!0}updateOptions(t){this.optionsIsChanged(t)&&this.withValueRefresh(this._update.bind(this,t))}_update(t){Object.assign(this,t)}get state(){return{_value:this.value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value}reset(){this._value=""}get value(){return this._value}set value(t){this.resolve(t,{input:!0})}resolve(t,n){n===void 0&&(n={input:!0}),this.reset(),this.append(t,n,""),this.doCommit()}get unmaskedValue(){return this.value}set unmaskedValue(t){this.resolve(t,{})}get typedValue(){return this.parse?this.parse(this.value,this):this.unmaskedValue}set typedValue(t){this.format?this.value=this.format(t,this):this.unmaskedValue=String(t)}get rawInputValue(){return this.extractInput(0,this.displayValue.length,{raw:!0})}set rawInputValue(t){this.resolve(t,{raw:!0})}get displayValue(){return this.value}get isComplete(){return!0}get isFilled(){return this.isComplete}nearestInputPos(t,n){return t}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),Math.min(this.displayValue.length,n-t)}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),this.displayValue.slice(t,n)}extractTail(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),new bt(this.extractInput(t,n),t)}appendTail(t){return Ft(t)&&(t=new bt(String(t))),t.appendTo(this)}_appendCharRaw(t,n){return t?(this._value+=t,new Ve({inserted:t,rawInserted:t})):new Ve}_appendChar(t,n,r){n===void 0&&(n={});const a=this.state;let l;if([t,l]=this.doPrepareChar(t,n),t&&(l=l.aggregate(this._appendCharRaw(t,n)),!l.rawInserted&&this.autofix==="pad")){const s=this.state;this.state=a;let i=this.pad(n);const c=this._appendCharRaw(t,n);i=i.aggregate(c),c.rawInserted||i.equals(l)?l=i:this.state=s}if(l.inserted){let s,i=this.doValidate(n)!==!1;if(i&&r!=null){const c=this.state;if(this.overwrite===!0){s=r.state;for(let g=0;g<l.rawInserted.length;++g)r.unshift(this.displayValue.length-l.tailShift)}let d=this.appendTail(r);if(i=d.rawInserted.length===r.toString().length,!(i&&d.inserted)&&this.overwrite==="shift"){this.state=c,s=r.state;for(let g=0;g<l.rawInserted.length;++g)r.shift();d=this.appendTail(r),i=d.rawInserted.length===r.toString().length}i&&d.inserted&&(this.state=c)}i||(l=new Ve,this.state=a,r&&s&&(r.state=s))}return l}_appendPlaceholder(){return new Ve}_appendEager(){return new Ve}append(t,n,r){if(!Ft(t))throw new Error("value should be string");const a=Ft(r)?new bt(String(r)):r;n!=null&&n.tail&&(n._beforeTailState=this.state);let l;[t,l]=this.doPrepare(t,n);for(let s=0;s<t.length;++s){const i=this._appendChar(t[s],n,a);if(!i.rawInserted&&!this.doSkipInvalid(t[s],n,a))break;l.aggregate(i)}return(this.eager===!0||this.eager==="append")&&n!=null&&n.input&&t&&l.aggregate(this._appendEager()),a!=null&&(l.tailShift+=this.appendTail(a).tailShift),l}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),this._value=this.displayValue.slice(0,t)+this.displayValue.slice(n),new Ve}withValueRefresh(t){if(this._refreshing||!this._initialized)return t();this._refreshing=!0;const n=this.rawInputValue,r=this.value,a=t();return this.rawInputValue=n,this.value&&this.value!==r&&r.indexOf(this.value)===0&&(this.append(r.slice(this.displayValue.length),{},""),this.doCommit()),delete this._refreshing,a}runIsolated(t){if(this._isolated||!this._initialized)return t(this);this._isolated=!0;const n=this.state,r=t(this);return this.state=n,delete this._isolated,r}doSkipInvalid(t,n,r){return!!this.skipInvalid}doPrepare(t,n){return n===void 0&&(n={}),Ve.normalize(this.prepare?this.prepare(t,this,n):t)}doPrepareChar(t,n){return n===void 0&&(n={}),Ve.normalize(this.prepareChar?this.prepareChar(t,this,n):t)}doValidate(t){return(!this.validate||this.validate(this.value,this,t))&&(!this.parent||this.parent.doValidate(t))}doCommit(){this.commit&&this.commit(this.value,this)}splice(t,n,r,a,l){r===void 0&&(r=""),a===void 0&&(a=ge.NONE),l===void 0&&(l={input:!0});const s=t+n,i=this.extractTail(s),c=this.eager===!0||this.eager==="remove";let d;c&&(a=Zr(a),d=this.extractInput(0,s,{raw:!0}));let g=t;const f=new Ve;if(a!==ge.NONE&&(g=this.nearestInputPos(t,n>1&&t!==0&&!c?ge.NONE:a),f.tailShift=g-t),f.aggregate(this.remove(g)),c&&a!==ge.NONE&&d===this.rawInputValue)if(a===ge.FORCE_LEFT){let p;for(;d===this.rawInputValue&&(p=this.displayValue.length);)f.aggregate(new Ve({tailShift:-1})).aggregate(this.remove(p-1))}else a===ge.FORCE_RIGHT&&i.unshift();return f.aggregate(this.append(r,l,i))}maskEquals(t){return this.mask===t}optionsIsChanged(t){return!Hn(this,t)}typedValueEquals(t){const n=this.typedValue;return t===n||Ge.EMPTY_VALUES.includes(t)&&Ge.EMPTY_VALUES.includes(n)||(this.format?this.format(t,this)===this.format(this.typedValue,this):!1)}pad(t){return new Ve}}Ge.DEFAULTS={skipInvalid:!0},Ge.EMPTY_VALUES=[void 0,null,""],Ce.Masked=Ge;class Dt{constructor(t,n){t===void 0&&(t=[]),n===void 0&&(n=0),this.chunks=t,this.from=n}toString(){return this.chunks.map(String).join("")}extend(t){if(!String(t))return;t=Ft(t)?new bt(String(t)):t;const n=this.chunks[this.chunks.length-1],r=n&&(n.stop===t.stop||t.stop==null)&&t.from===n.from+n.toString().length;if(t instanceof bt)r?n.extend(t.toString()):this.chunks.push(t);else if(t instanceof Dt){if(t.stop==null){let a;for(;t.chunks.length&&t.chunks[0].stop==null;)a=t.chunks.shift(),a.from+=t.from,this.extend(a)}t.toString()&&(t.stop=t.blockIndex,this.chunks.push(t))}}appendTo(t){if(!(t instanceof Ce.MaskedPattern))return new bt(this.toString()).appendTo(t);const n=new Ve;for(let r=0;r<this.chunks.length;++r){const a=this.chunks[r],l=t._mapPosToBlock(t.displayValue.length),s=a.stop;let i;if(s!=null&&(!l||l.index<=s)&&((a instanceof Dt||t._stops.indexOf(s)>=0)&&n.aggregate(t._appendPlaceholder(s)),i=a instanceof Dt&&t._blocks[s]),i){const c=i.appendTail(a);n.aggregate(c);const d=a.toString().slice(c.rawInserted.length);d&&n.aggregate(t.append(d,{tail:!0}))}else n.aggregate(t.append(a.toString(),{tail:!0}))}return n}get state(){return{chunks:this.chunks.map(t=>t.state),from:this.from,stop:this.stop,blockIndex:this.blockIndex}}set state(t){const{chunks:n,...r}=t;Object.assign(this,r),this.chunks=n.map(a=>{const l="chunks"in a?new Dt:new bt;return l.state=a,l})}unshift(t){if(!this.chunks.length||t!=null&&this.from>=t)return"";const n=t!=null?t-this.from:t;let r=0;for(;r<this.chunks.length;){const a=this.chunks[r],l=a.unshift(n);if(a.toString()){if(!l)break;++r}else this.chunks.splice(r,1);if(l)return l}return""}shift(){if(!this.chunks.length)return"";let t=this.chunks.length-1;for(;0<=t;){const n=this.chunks[t],r=n.shift();if(n.toString()){if(!r)break;--t}else this.chunks.splice(t,1);if(r)return r}return""}}class Jh{constructor(t,n){this.masked=t,this._log=[];const{offset:r,index:a}=t._mapPosToBlock(n)||(n<0?{index:0,offset:0}:{index:this.masked._blocks.length,offset:0});this.offset=r,this.index=a,this.ok=!1}get block(){return this.masked._blocks[this.index]}get pos(){return this.masked._blockStartPos(this.index)+this.offset}get state(){return{index:this.index,offset:this.offset,ok:this.ok}}set state(t){Object.assign(this,t)}pushState(){this._log.push(this.state)}popState(){const t=this._log.pop();return t&&(this.state=t),t}bindBlock(){this.block||(this.index<0&&(this.index=0,this.offset=0),this.index>=this.masked._blocks.length&&(this.index=this.masked._blocks.length-1,this.offset=this.block.displayValue.length))}_pushLeft(t){for(this.pushState(),this.bindBlock();0<=this.index;--this.index,this.offset=((n=this.block)==null?void 0:n.displayValue.length)||0){var n;if(t())return this.ok=!0}return this.ok=!1}_pushRight(t){for(this.pushState(),this.bindBlock();this.index<this.masked._blocks.length;++this.index,this.offset=0)if(t())return this.ok=!0;return this.ok=!1}pushLeftBeforeFilled(){return this._pushLeft(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,ge.FORCE_LEFT),this.offset!==0))return!0})}pushLeftBeforeInput(){return this._pushLeft(()=>{if(!this.block.isFixed)return this.offset=this.block.nearestInputPos(this.offset,ge.LEFT),!0})}pushLeftBeforeRequired(){return this._pushLeft(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,ge.LEFT),!0})}pushRightBeforeFilled(){return this._pushRight(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,ge.FORCE_RIGHT),this.offset!==this.block.value.length))return!0})}pushRightBeforeInput(){return this._pushRight(()=>{if(!this.block.isFixed)return this.offset=this.block.nearestInputPos(this.offset,ge.NONE),!0})}pushRightBeforeRequired(){return this._pushRight(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,ge.NONE),!0})}}class Bo{constructor(t){Object.assign(this,t),this._value="",this.isFixed=!0}get value(){return this._value}get unmaskedValue(){return this.isUnmasking?this.value:""}get rawInputValue(){return this._isRawInput?this.value:""}get displayValue(){return this.value}reset(){this._isRawInput=!1,this._value=""}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),this._value=this._value.slice(0,t)+this._value.slice(n),this._value||(this._isRawInput=!1),new Ve}nearestInputPos(t,n){n===void 0&&(n=ge.NONE);const r=0,a=this._value.length;switch(n){case ge.LEFT:case ge.FORCE_LEFT:return r;case ge.NONE:case ge.RIGHT:case ge.FORCE_RIGHT:default:return a}}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),this._isRawInput?n-t:0}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),r===void 0&&(r={}),r.raw&&this._isRawInput&&this._value.slice(t,n)||""}get isComplete(){return!0}get isFilled(){return!!this._value}_appendChar(t,n){if(n===void 0&&(n={}),this.isFilled)return new Ve;const r=this.eager===!0||this.eager==="append",l=this.char===t&&(this.isUnmasking||n.input||n.raw)&&(!n.raw||!r)&&!n.tail,s=new Ve({inserted:this.char,rawInserted:l?this.char:""});return this._value=this.char,this._isRawInput=l&&(n.raw||n.input),s}_appendEager(){return this._appendChar(this.char,{tail:!0})}_appendPlaceholder(){const t=new Ve;return this.isFilled||(this._value=t.inserted=this.char),t}extractTail(){return new bt("")}appendTail(t){return Ft(t)&&(t=new bt(String(t))),t.appendTo(this)}append(t,n,r){const a=this._appendChar(t[0],n);return r!=null&&(a.tailShift+=this.appendTail(r).tailShift),a}doCommit(){}get state(){return{_value:this._value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value,this._isRawInput=!!t._rawInputValue}pad(t){return this._appendPlaceholder()}}class ln{constructor(t){const{parent:n,isOptional:r,placeholderChar:a,displayChar:l,lazy:s,eager:i,...c}=t;this.masked=yt(c),Object.assign(this,{parent:n,isOptional:r,placeholderChar:a,displayChar:l,lazy:s,eager:i})}reset(){this.isFilled=!1,this.masked.reset()}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),t===0&&n>=1?(this.isFilled=!1,this.masked.remove(t,n)):new Ve}get value(){return this.masked.value||(this.isFilled&&!this.isOptional?this.placeholderChar:"")}get unmaskedValue(){return this.masked.unmaskedValue}get rawInputValue(){return this.masked.rawInputValue}get displayValue(){return this.masked.value&&this.displayChar||this.value}get isComplete(){return!!this.masked.value||this.isOptional}_appendChar(t,n){if(n===void 0&&(n={}),this.isFilled)return new Ve;const r=this.masked.state;let a=this.masked._appendChar(t,this.currentMaskFlags(n));return a.inserted&&this.doValidate(n)===!1&&(a=new Ve,this.masked.state=r),!a.inserted&&!this.isOptional&&!this.lazy&&!n.input&&(a.inserted=this.placeholderChar),a.skip=!a.inserted&&!this.isOptional,this.isFilled=!!a.inserted,a}append(t,n,r){return this.masked.append(t,this.currentMaskFlags(n),r)}_appendPlaceholder(){return this.isFilled||this.isOptional?new Ve:(this.isFilled=!0,new Ve({inserted:this.placeholderChar}))}_appendEager(){return new Ve}extractTail(t,n){return this.masked.extractTail(t,n)}appendTail(t){return this.masked.appendTail(t)}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),this.masked.extractInput(t,n,r)}nearestInputPos(t,n){n===void 0&&(n=ge.NONE);const r=0,a=this.value.length,l=Math.min(Math.max(t,r),a);switch(n){case ge.LEFT:case ge.FORCE_LEFT:return this.isComplete?l:r;case ge.RIGHT:case ge.FORCE_RIGHT:return this.isComplete?l:a;case ge.NONE:default:return l}}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),this.value.slice(t,n).length}doValidate(t){return this.masked.doValidate(this.currentMaskFlags(t))&&(!this.parent||this.parent.doValidate(this.currentMaskFlags(t)))}doCommit(){this.masked.doCommit()}get state(){return{_value:this.value,_rawInputValue:this.rawInputValue,masked:this.masked.state,isFilled:this.isFilled}}set state(t){this.masked.state=t.masked,this.isFilled=t.isFilled}currentMaskFlags(t){var n;return{...t,_beforeTailState:(t==null||(n=t._beforeTailState)==null?void 0:n.masked)||t?._beforeTailState}}pad(t){return new Ve}}ln.DEFAULT_DEFINITIONS={0:/\d/,a:/[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,"*":/./};class nl extends Ge{updateOptions(t){super.updateOptions(t)}_update(t){const n=t.mask;n&&(t.validate=r=>r.search(n)>=0),super._update(t)}}Ce.MaskedRegExp=nl;class Ye extends Ge{constructor(t){super({...Ye.DEFAULTS,...t,definitions:Object.assign({},ln.DEFAULT_DEFINITIONS,t?.definitions)})}updateOptions(t){super.updateOptions(t)}_update(t){t.definitions=Object.assign({},this.definitions,t.definitions),super._update(t),this._rebuildMask()}_rebuildMask(){const t=this.definitions;this._blocks=[],this.exposeBlock=void 0,this._stops=[],this._maskedBlocks={};const n=this.mask;if(!n||!t)return;let r=!1,a=!1;for(let l=0;l<n.length;++l){if(this.blocks){const d=n.slice(l),g=Object.keys(this.blocks).filter(p=>d.indexOf(p)===0);g.sort((p,m)=>m.length-p.length);const f=g[0];if(f){const{expose:p,repeat:m,...h}=Wt(this.blocks[f]),w={lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,overwrite:this.overwrite,autofix:this.autofix,...h,repeat:m,parent:this},y=m!=null?new Ce.RepeatBlock(w):yt(w);y&&(this._blocks.push(y),p&&(this.exposeBlock=y),this._maskedBlocks[f]||(this._maskedBlocks[f]=[]),this._maskedBlocks[f].push(this._blocks.length-1)),l+=f.length-1;continue}}let s=n[l],i=s in t;if(s===Ye.STOP_CHAR){this._stops.push(this._blocks.length);continue}if(s==="{"||s==="}"){r=!r;continue}if(s==="["||s==="]"){a=!a;continue}if(s===Ye.ESCAPE_CHAR){if(++l,s=n[l],!s)break;i=!1}const c=i?new ln({isOptional:a,lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,...Wt(t[s]),parent:this}):new Bo({char:s,eager:this.eager,isUnmasking:r});this._blocks.push(c)}}get state(){return{...super.state,_blocks:this._blocks.map(t=>t.state)}}set state(t){if(!t){this.reset();return}const{_blocks:n,...r}=t;this._blocks.forEach((a,l)=>a.state=n[l]),super.state=r}reset(){super.reset(),this._blocks.forEach(t=>t.reset())}get isComplete(){return this.exposeBlock?this.exposeBlock.isComplete:this._blocks.every(t=>t.isComplete)}get isFilled(){return this._blocks.every(t=>t.isFilled)}get isFixed(){return this._blocks.every(t=>t.isFixed)}get isOptional(){return this._blocks.every(t=>t.isOptional)}doCommit(){this._blocks.forEach(t=>t.doCommit()),super.doCommit()}get unmaskedValue(){return this.exposeBlock?this.exposeBlock.unmaskedValue:this._blocks.reduce((t,n)=>t+=n.unmaskedValue,"")}set unmaskedValue(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.unmaskedValue=t,this.appendTail(n),this.doCommit()}else super.unmaskedValue=t}get value(){return this.exposeBlock?this.exposeBlock.value:this._blocks.reduce((t,n)=>t+=n.value,"")}set value(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.value=t,this.appendTail(n),this.doCommit()}else super.value=t}get typedValue(){return this.exposeBlock?this.exposeBlock.typedValue:super.typedValue}set typedValue(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.typedValue=t,this.appendTail(n),this.doCommit()}else super.typedValue=t}get displayValue(){return this._blocks.reduce((t,n)=>t+=n.displayValue,"")}appendTail(t){return super.appendTail(t).aggregate(this._appendPlaceholder())}_appendEager(){var t;const n=new Ve;let r=(t=this._mapPosToBlock(this.displayValue.length))==null?void 0:t.index;if(r==null)return n;this._blocks[r].isFilled&&++r;for(let a=r;a<this._blocks.length;++a){const l=this._blocks[a]._appendEager();if(!l.inserted)break;n.aggregate(l)}return n}_appendCharRaw(t,n){n===void 0&&(n={});const r=this._mapPosToBlock(this.displayValue.length),a=new Ve;if(!r)return a;for(let s=r.index,i;i=this._blocks[s];++s){var l;const c=i._appendChar(t,{...n,_beforeTailState:(l=n._beforeTailState)==null||(l=l._blocks)==null?void 0:l[s]});if(a.aggregate(c),c.consumed)break}return a}extractTail(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const r=new Dt;return t===n||this._forEachBlocksInRange(t,n,(a,l,s,i)=>{const c=a.extractTail(s,i);c.stop=this._findStopBefore(l),c.from=this._blockStartPos(l),c instanceof Dt&&(c.blockIndex=l),r.extend(c)}),r}extractInput(t,n,r){if(t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),r===void 0&&(r={}),t===n)return"";let a="";return this._forEachBlocksInRange(t,n,(l,s,i,c)=>{a+=l.extractInput(i,c,r)}),a}_findStopBefore(t){let n;for(let r=0;r<this._stops.length;++r){const a=this._stops[r];if(a<=t)n=a;else break}return n}_appendPlaceholder(t){const n=new Ve;if(this.lazy&&t==null)return n;const r=this._mapPosToBlock(this.displayValue.length);if(!r)return n;const a=r.index,l=t??this._blocks.length;return this._blocks.slice(a,l).forEach(s=>{if(!s.lazy||t!=null){var i;n.aggregate(s._appendPlaceholder((i=s._blocks)==null?void 0:i.length))}}),n}_mapPosToBlock(t){let n="";for(let r=0;r<this._blocks.length;++r){const a=this._blocks[r],l=n.length;if(n+=a.displayValue,t<=n.length)return{index:r,offset:t-l}}}_blockStartPos(t){return this._blocks.slice(0,t).reduce((n,r)=>n+=r.displayValue.length,0)}_forEachBlocksInRange(t,n,r){n===void 0&&(n=this.displayValue.length);const a=this._mapPosToBlock(t);if(a){const l=this._mapPosToBlock(n),s=l&&a.index===l.index,i=a.offset,c=l&&s?l.offset:this._blocks[a.index].displayValue.length;if(r(this._blocks[a.index],a.index,i,c),l&&!s){for(let d=a.index+1;d<l.index;++d)r(this._blocks[d],d,0,this._blocks[d].displayValue.length);r(this._blocks[l.index],l.index,0,l.offset)}}}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const r=super.remove(t,n);return this._forEachBlocksInRange(t,n,(a,l,s,i)=>{r.aggregate(a.remove(s,i))}),r}nearestInputPos(t,n){if(n===void 0&&(n=ge.NONE),!this._blocks.length)return 0;const r=new Jh(this,t);if(n===ge.NONE)return r.pushRightBeforeInput()||(r.popState(),r.pushLeftBeforeInput())?r.pos:this.displayValue.length;if(n===ge.LEFT||n===ge.FORCE_LEFT){if(n===ge.LEFT){if(r.pushRightBeforeFilled(),r.ok&&r.pos===t)return t;r.popState()}if(r.pushLeftBeforeInput(),r.pushLeftBeforeRequired(),r.pushLeftBeforeFilled(),n===ge.LEFT){if(r.pushRightBeforeInput(),r.pushRightBeforeRequired(),r.ok&&r.pos<=t||(r.popState(),r.ok&&r.pos<=t))return r.pos;r.popState()}return r.ok?r.pos:n===ge.FORCE_LEFT?0:(r.popState(),r.ok||(r.popState(),r.ok)?r.pos:0)}return n===ge.RIGHT||n===ge.FORCE_RIGHT?(r.pushRightBeforeInput(),r.pushRightBeforeRequired(),r.pushRightBeforeFilled()?r.pos:n===ge.FORCE_RIGHT?this.displayValue.length:(r.popState(),r.ok||(r.popState(),r.ok)?r.pos:this.nearestInputPos(t,ge.LEFT))):t}totalInputPositions(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);let r=0;return this._forEachBlocksInRange(t,n,(a,l,s,i)=>{r+=a.totalInputPositions(s,i)}),r}maskedBlock(t){return this.maskedBlocks(t)[0]}maskedBlocks(t){const n=this._maskedBlocks[t];return n?n.map(r=>this._blocks[r]):[]}pad(t){const n=new Ve;return this._forEachBlocksInRange(0,this.displayValue.length,r=>n.aggregate(r.pad(t))),n}}Ye.DEFAULTS={...Ge.DEFAULTS,lazy:!0,placeholderChar:"_"},Ye.STOP_CHAR="`",Ye.ESCAPE_CHAR="\\",Ye.InputDefinition=ln,Ye.FixedDefinition=Bo,Ce.MaskedPattern=Ye;class an extends Ye{get _matchFrom(){return this.maxLength-String(this.from).length}constructor(t){super(t)}updateOptions(t){super.updateOptions(t)}_update(t){const{to:n=this.to||0,from:r=this.from||0,maxLength:a=this.maxLength||0,autofix:l=this.autofix,...s}=t;this.to=n,this.from=r,this.maxLength=Math.max(String(n).length,a),this.autofix=l;const i=String(this.from).padStart(this.maxLength,"0"),c=String(this.to).padStart(this.maxLength,"0");let d=0;for(;d<c.length&&c[d]===i[d];)++d;s.mask=c.slice(0,d).replace(/0/g,"\\0")+"0".repeat(this.maxLength-d),super._update(s)}get isComplete(){return super.isComplete&&!!this.value}boundaries(t){let n="",r="";const[,a,l]=t.match(/^(\D*)(\d*)(\D*)/)||[];return l&&(n="0".repeat(a.length)+l,r="9".repeat(a.length)+l),n=n.padEnd(this.maxLength,"0"),r=r.padEnd(this.maxLength,"9"),[n,r]}doPrepareChar(t,n){n===void 0&&(n={});let r;return[t,r]=super.doPrepareChar(t.replace(/\D/g,""),n),t||(r.skip=!this.isComplete),[t,r]}_appendCharRaw(t,n){if(n===void 0&&(n={}),!this.autofix||this.value.length+1>this.maxLength)return super._appendCharRaw(t,n);const r=String(this.from).padStart(this.maxLength,"0"),a=String(this.to).padStart(this.maxLength,"0"),[l,s]=this.boundaries(this.value+t);return Number(s)<this.from?super._appendCharRaw(r[this.value.length],n):Number(l)>this.to?!n.tail&&this.autofix==="pad"&&this.value.length+1<this.maxLength?super._appendCharRaw(r[this.value.length],n).aggregate(this._appendCharRaw(t,n)):super._appendCharRaw(a[this.value.length],n):super._appendCharRaw(t,n)}doValidate(t){const n=this.value;if(n.search(/[^0]/)===-1&&n.length<=this._matchFrom)return!0;const[a,l]=this.boundaries(n);return this.from<=Number(l)&&Number(a)<=this.to&&super.doValidate(t)}pad(t){const n=new Ve;if(this.value.length===this.maxLength)return n;const r=this.value,a=this.maxLength-this.value.length;if(a){this.reset();for(let l=0;l<a;++l)n.aggregate(super._appendCharRaw("0",t));r.split("").forEach(l=>this._appendCharRaw(l))}return n}}Ce.MaskedRange=an;const Qh="d{.}`m{.}`Y";class kt extends Ye{static extractPatternOptions(t){const{mask:n,pattern:r,...a}=t;return{...a,mask:Ft(n)?n:r}}constructor(t){super(kt.extractPatternOptions({...kt.DEFAULTS,...t}))}updateOptions(t){super.updateOptions(t)}_update(t){const{mask:n,pattern:r,blocks:a,...l}={...kt.DEFAULTS,...t},s=Object.assign({},kt.GET_DEFAULT_BLOCKS());t.min&&(s.Y.from=t.min.getFullYear()),t.max&&(s.Y.to=t.max.getFullYear()),t.min&&t.max&&s.Y.from===s.Y.to&&(s.m.from=t.min.getMonth()+1,s.m.to=t.max.getMonth()+1,s.m.from===s.m.to&&(s.d.from=t.min.getDate(),s.d.to=t.max.getDate())),Object.assign(s,this.blocks,a),super._update({...l,mask:Ft(n)?n:r,blocks:s})}doValidate(t){const n=this.date;return super.doValidate(t)&&(!this.isComplete||this.isDateExist(this.value)&&n!=null&&(this.min==null||this.min<=n)&&(this.max==null||n<=this.max))}isDateExist(t){return this.format(this.parse(t,this),this).indexOf(t)>=0}get date(){return this.typedValue}set date(t){this.typedValue=t}get typedValue(){return this.isComplete?super.typedValue:null}set typedValue(t){super.typedValue=t}maskEquals(t){return t===Date||super.maskEquals(t)}optionsIsChanged(t){return super.optionsIsChanged(kt.extractPatternOptions(t))}}kt.GET_DEFAULT_BLOCKS=()=>({d:{mask:an,from:1,to:31,maxLength:2},m:{mask:an,from:1,to:12,maxLength:2},Y:{mask:an,from:1900,to:9999}}),kt.DEFAULTS={...Ye.DEFAULTS,mask:Date,pattern:Qh,format:(o,t)=>{if(!o)return"";const n=String(o.getDate()).padStart(2,"0"),r=String(o.getMonth()+1).padStart(2,"0"),a=o.getFullYear();return[n,r,a].join(".")},parse:(o,t)=>{const[n,r,a]=o.split(".").map(Number);return new Date(a,r-1,n)}},Ce.MaskedDate=kt;class sn extends Ge{constructor(t){super({...sn.DEFAULTS,...t}),this.currentMask=void 0}updateOptions(t){super.updateOptions(t)}_update(t){super._update(t),"mask"in t&&(this.exposeMask=void 0,this.compiledMasks=Array.isArray(t.mask)?t.mask.map(n=>{const{expose:r,...a}=Wt(n),l=yt({overwrite:this._overwrite,eager:this._eager,skipInvalid:this._skipInvalid,...a});return r&&(this.exposeMask=l),l}):[])}_appendCharRaw(t,n){n===void 0&&(n={});const r=this._applyDispatch(t,n);return this.currentMask&&r.aggregate(this.currentMask._appendChar(t,this.currentMaskFlags(n))),r}_applyDispatch(t,n,r){t===void 0&&(t=""),n===void 0&&(n={}),r===void 0&&(r="");const a=n.tail&&n._beforeTailState!=null?n._beforeTailState._value:this.value,l=this.rawInputValue,s=n.tail&&n._beforeTailState!=null?n._beforeTailState._rawInputValue:l,i=l.slice(s.length),c=this.currentMask,d=new Ve,g=c?.state;return this.currentMask=this.doDispatch(t,{...n},r),this.currentMask&&(this.currentMask!==c?(this.currentMask.reset(),s&&(this.currentMask.append(s,{raw:!0}),d.tailShift=this.currentMask.value.length-a.length),i&&(d.tailShift+=this.currentMask.append(i,{raw:!0,tail:!0}).tailShift)):g&&(this.currentMask.state=g)),d}_appendPlaceholder(){const t=this._applyDispatch();return this.currentMask&&t.aggregate(this.currentMask._appendPlaceholder()),t}_appendEager(){const t=this._applyDispatch();return this.currentMask&&t.aggregate(this.currentMask._appendEager()),t}appendTail(t){const n=new Ve;return t&&n.aggregate(this._applyDispatch("",{},t)),n.aggregate(this.currentMask?this.currentMask.appendTail(t):super.appendTail(t))}currentMaskFlags(t){var n,r;return{...t,_beforeTailState:((n=t._beforeTailState)==null?void 0:n.currentMaskRef)===this.currentMask&&((r=t._beforeTailState)==null?void 0:r.currentMask)||t._beforeTailState}}doDispatch(t,n,r){return n===void 0&&(n={}),r===void 0&&(r=""),this.dispatch(t,this,n,r)}doValidate(t){return super.doValidate(t)&&(!this.currentMask||this.currentMask.doValidate(this.currentMaskFlags(t)))}doPrepare(t,n){n===void 0&&(n={});let[r,a]=super.doPrepare(t,n);if(this.currentMask){let l;[r,l]=super.doPrepare(r,this.currentMaskFlags(n)),a=a.aggregate(l)}return[r,a]}doPrepareChar(t,n){n===void 0&&(n={});let[r,a]=super.doPrepareChar(t,n);if(this.currentMask){let l;[r,l]=super.doPrepareChar(r,this.currentMaskFlags(n)),a=a.aggregate(l)}return[r,a]}reset(){var t;(t=this.currentMask)==null||t.reset(),this.compiledMasks.forEach(n=>n.reset())}get value(){return this.exposeMask?this.exposeMask.value:this.currentMask?this.currentMask.value:""}set value(t){this.exposeMask?(this.exposeMask.value=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.value=t}get unmaskedValue(){return this.exposeMask?this.exposeMask.unmaskedValue:this.currentMask?this.currentMask.unmaskedValue:""}set unmaskedValue(t){this.exposeMask?(this.exposeMask.unmaskedValue=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.unmaskedValue=t}get typedValue(){return this.exposeMask?this.exposeMask.typedValue:this.currentMask?this.currentMask.typedValue:""}set typedValue(t){if(this.exposeMask){this.exposeMask.typedValue=t,this.currentMask=this.exposeMask,this._applyDispatch();return}let n=String(t);this.currentMask&&(this.currentMask.typedValue=t,n=this.currentMask.unmaskedValue),this.unmaskedValue=n}get displayValue(){return this.currentMask?this.currentMask.displayValue:""}get isComplete(){var t;return!!((t=this.currentMask)!=null&&t.isComplete)}get isFilled(){var t;return!!((t=this.currentMask)!=null&&t.isFilled)}remove(t,n){const r=new Ve;return this.currentMask&&r.aggregate(this.currentMask.remove(t,n)).aggregate(this._applyDispatch()),r}get state(){var t;return{...super.state,_rawInputValue:this.rawInputValue,compiledMasks:this.compiledMasks.map(n=>n.state),currentMaskRef:this.currentMask,currentMask:(t=this.currentMask)==null?void 0:t.state}}set state(t){const{compiledMasks:n,currentMaskRef:r,currentMask:a,...l}=t;n&&this.compiledMasks.forEach((s,i)=>s.state=n[i]),r!=null&&(this.currentMask=r,this.currentMask.state=a),super.state=l}extractInput(t,n,r){return this.currentMask?this.currentMask.extractInput(t,n,r):""}extractTail(t,n){return this.currentMask?this.currentMask.extractTail(t,n):super.extractTail(t,n)}doCommit(){this.currentMask&&this.currentMask.doCommit(),super.doCommit()}nearestInputPos(t,n){return this.currentMask?this.currentMask.nearestInputPos(t,n):super.nearestInputPos(t,n)}get overwrite(){return this.currentMask?this.currentMask.overwrite:this._overwrite}set overwrite(t){this._overwrite=t}get eager(){return this.currentMask?this.currentMask.eager:this._eager}set eager(t){this._eager=t}get skipInvalid(){return this.currentMask?this.currentMask.skipInvalid:this._skipInvalid}set skipInvalid(t){this._skipInvalid=t}get autofix(){return this.currentMask?this.currentMask.autofix:this._autofix}set autofix(t){this._autofix=t}maskEquals(t){return Array.isArray(t)?this.compiledMasks.every((n,r)=>{if(!t[r])return;const{mask:a,...l}=t[r];return Hn(n,l)&&n.maskEquals(a)}):super.maskEquals(t)}typedValueEquals(t){var n;return!!((n=this.currentMask)!=null&&n.typedValueEquals(t))}}sn.DEFAULTS={...Ge.DEFAULTS,dispatch:(o,t,n,r)=>{if(!t.compiledMasks.length)return;const a=t.rawInputValue,l=t.compiledMasks.map((s,i)=>{const c=t.currentMask===s,d=c?s.displayValue.length:s.nearestInputPos(s.displayValue.length,ge.FORCE_LEFT);return s.rawInputValue!==a?(s.reset(),s.append(a,{raw:!0})):c||s.remove(d),s.append(o,t.currentMaskFlags(n)),s.appendTail(r),{index:i,weight:s.rawInputValue.length,totalInputPositions:s.totalInputPositions(0,Math.max(d,s.nearestInputPos(s.displayValue.length,ge.FORCE_LEFT)))}});return l.sort((s,i)=>i.weight-s.weight||i.totalInputPositions-s.totalInputPositions),t.compiledMasks[l[0].index]}},Ce.MaskedDynamic=sn;class cn extends Ye{constructor(t){super({...cn.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){const{enum:n,...r}=t;if(n){const a=n.map(i=>i.length),l=Math.min(...a),s=Math.max(...a)-l;r.mask="*".repeat(l),s&&(r.mask+="["+"*".repeat(s)+"]"),this.enum=n}super._update(r)}_appendCharRaw(t,n){n===void 0&&(n={});const r=Math.min(this.nearestInputPos(0,ge.FORCE_RIGHT),this.value.length),a=this.enum.filter(l=>this.matchValue(l,this.unmaskedValue+t,r));if(a.length){a.length===1&&this._forEachBlocksInRange(0,this.value.length,(s,i)=>{const c=a[0][i];i>=this.value.length||c===s.value||(s.reset(),s._appendChar(c,n))});const l=super._appendCharRaw(a[0][this.value.length],n);return a.length===1&&a[0].slice(this.unmaskedValue.length).split("").forEach(s=>l.aggregate(super._appendCharRaw(s))),l}return new Ve({skip:!this.isComplete})}extractTail(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),new bt("",t)}remove(t,n){if(t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),t===n)return new Ve;const r=Math.min(super.nearestInputPos(0,ge.FORCE_RIGHT),this.value.length);let a;for(a=t;a>=0&&!(this.enum.filter(i=>this.matchValue(i,this.value.slice(r,a),r)).length>1);--a);const l=super.remove(a,n);return l.tailShift+=a-t,l}get isComplete(){return this.enum.indexOf(this.value)>=0}}cn.DEFAULTS={...Ye.DEFAULTS,matchValue:(o,t,n)=>o.indexOf(t,n)===n},Ce.MaskedEnum=cn;class ol extends Ge{updateOptions(t){super.updateOptions(t)}_update(t){super._update({...t,validate:t.mask})}}Ce.MaskedFunction=ol;var rl;class nt extends Ge{constructor(t){super({...nt.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){super._update(t),this._updateRegExps()}_updateRegExps(){const t="^"+(this.allowNegative?"[+|\\-]?":""),n="\\d*",r=(this.scale?"("+Co(this.radix)+"\\d{0,"+this.scale+"})?":"")+"$";this._numberRegExp=new RegExp(t+n+r),this._mapToRadixRegExp=new RegExp("["+this.mapToRadix.map(Co).join("")+"]","g"),this._thousandsSeparatorRegExp=new RegExp(Co(this.thousandsSeparator),"g")}_removeThousandsSeparators(t){return t.replace(this._thousandsSeparatorRegExp,"")}_insertThousandsSeparators(t){const n=t.split(this.radix);return n[0]=n[0].replace(/\B(?=(\d{3})+(?!\d))/g,this.thousandsSeparator),n.join(this.radix)}doPrepareChar(t,n){n===void 0&&(n={});const[r,a]=super.doPrepareChar(this._removeThousandsSeparators(this.scale&&this.mapToRadix.length&&(n.input&&n.raw||!n.input&&!n.raw)?t.replace(this._mapToRadixRegExp,this.radix):t),n);return t&&!r&&(a.skip=!0),r&&!this.allowPositive&&!this.value&&r!=="-"&&a.aggregate(this._appendChar("-")),[r,a]}_separatorsCount(t,n){n===void 0&&(n=!1);let r=0;for(let a=0;a<t;++a)this._value.indexOf(this.thousandsSeparator,a)===a&&(++r,n&&(t+=this.thousandsSeparator.length));return r}_separatorsCountFromSlice(t){return t===void 0&&(t=this._value),this._separatorsCount(this._removeThousandsSeparators(t).length,!0)}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),[t,n]=this._adjustRangeWithSeparators(t,n),this._removeThousandsSeparators(super.extractInput(t,n,r))}_appendCharRaw(t,n){n===void 0&&(n={});const r=n.tail&&n._beforeTailState?n._beforeTailState._value:this._value,a=this._separatorsCountFromSlice(r);this._value=this._removeThousandsSeparators(this.value);const l=this._value;this._value+=t;const s=this.number;let i=!isNaN(s),c=!1;if(i){let p;this.min!=null&&this.min<0&&this.number<this.min&&(p=this.min),this.max!=null&&this.max>0&&this.number>this.max&&(p=this.max),p!=null&&(this.autofix?(this._value=this.format(p,this).replace(nt.UNMASKED_RADIX,this.radix),c||(c=l===this._value&&!n.tail)):i=!1),i&&(i=!!this._value.match(this._numberRegExp))}let d;i?d=new Ve({inserted:this._value.slice(l.length),rawInserted:c?"":t,skip:c}):(this._value=l,d=new Ve),this._value=this._insertThousandsSeparators(this._value);const g=n.tail&&n._beforeTailState?n._beforeTailState._value:this._value,f=this._separatorsCountFromSlice(g);return d.tailShift+=(f-a)*this.thousandsSeparator.length,d}_findSeparatorAround(t){if(this.thousandsSeparator){const n=t-this.thousandsSeparator.length+1,r=this.value.indexOf(this.thousandsSeparator,n);if(r<=t)return r}return-1}_adjustRangeWithSeparators(t,n){const r=this._findSeparatorAround(t);r>=0&&(t=r);const a=this._findSeparatorAround(n);return a>=0&&(n=a+this.thousandsSeparator.length),[t,n]}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),[t,n]=this._adjustRangeWithSeparators(t,n);const r=this.value.slice(0,t),a=this.value.slice(n),l=this._separatorsCount(r.length);this._value=this._insertThousandsSeparators(this._removeThousandsSeparators(r+a));const s=this._separatorsCountFromSlice(r);return new Ve({tailShift:(s-l)*this.thousandsSeparator.length})}nearestInputPos(t,n){if(!this.thousandsSeparator)return t;switch(n){case ge.NONE:case ge.LEFT:case ge.FORCE_LEFT:{const r=this._findSeparatorAround(t-1);if(r>=0){const a=r+this.thousandsSeparator.length;if(t<a||this.value.length<=a||n===ge.FORCE_LEFT)return r}break}case ge.RIGHT:case ge.FORCE_RIGHT:{const r=this._findSeparatorAround(t);if(r>=0)return r+this.thousandsSeparator.length}}return t}doCommit(){if(this.value){const t=this.number;let n=t;this.min!=null&&(n=Math.max(n,this.min)),this.max!=null&&(n=Math.min(n,this.max)),n!==t&&(this.unmaskedValue=this.format(n,this));let r=this.value;this.normalizeZeros&&(r=this._normalizeZeros(r)),this.padFractionalZeros&&this.scale>0&&(r=this._padFractionalZeros(r)),this._value=r}super.doCommit()}_normalizeZeros(t){const n=this._removeThousandsSeparators(t).split(this.radix);return n[0]=n[0].replace(/^(\D*)(0*)(\d*)/,(r,a,l,s)=>a+s),t.length&&!/\d$/.test(n[0])&&(n[0]=n[0]+"0"),n.length>1&&(n[1]=n[1].replace(/0*$/,""),n[1].length||(n.length=1)),this._insertThousandsSeparators(n.join(this.radix))}_padFractionalZeros(t){if(!t)return t;const n=t.split(this.radix);return n.length<2&&n.push(""),n[1]=n[1].padEnd(this.scale,"0"),n.join(this.radix)}doSkipInvalid(t,n,r){n===void 0&&(n={});const a=this.scale===0&&t!==this.thousandsSeparator&&(t===this.radix||t===nt.UNMASKED_RADIX||this.mapToRadix.includes(t));return super.doSkipInvalid(t,n,r)&&!a}get unmaskedValue(){return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix,nt.UNMASKED_RADIX)}set unmaskedValue(t){super.unmaskedValue=t}get typedValue(){return this.parse(this.unmaskedValue,this)}set typedValue(t){this.rawInputValue=this.format(t,this).replace(nt.UNMASKED_RADIX,this.radix)}get number(){return this.typedValue}set number(t){this.typedValue=t}get allowNegative(){return this.min!=null&&this.min<0||this.max!=null&&this.max<0}get allowPositive(){return this.min!=null&&this.min>0||this.max!=null&&this.max>0}typedValueEquals(t){return(super.typedValueEquals(t)||nt.EMPTY_VALUES.includes(t)&&nt.EMPTY_VALUES.includes(this.typedValue))&&!(t===0&&this.value==="")}}rl=nt,nt.UNMASKED_RADIX=".",nt.EMPTY_VALUES=[...Ge.EMPTY_VALUES,0],nt.DEFAULTS={...Ge.DEFAULTS,mask:Number,radix:",",thousandsSeparator:"",mapToRadix:[rl.UNMASKED_RADIX],min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER,scale:2,normalizeZeros:!0,padFractionalZeros:!1,parse:Number,format:o=>o.toLocaleString("en-US",{useGrouping:!1,maximumFractionDigits:20})},Ce.MaskedNumber=nt;const Wn={MASKED:"value",UNMASKED:"unmaskedValue",TYPED:"typedValue"};function Vo(o,t,n){t===void 0&&(t=Wn.MASKED),n===void 0&&(n=Wn.MASKED);const r=yt(o);return a=>r.runIsolated(l=>(l[t]=a,l[n]))}function ll(o,t,n,r){return Vo(t,n,r)(o)}Ce.PIPE_TYPE=Wn,Ce.createPipe=Vo,Ce.pipe=ll;class al extends Ye{get repeatFrom(){var t;return(t=Array.isArray(this.repeat)?this.repeat[0]:this.repeat===1/0?0:this.repeat)!=null?t:0}get repeatTo(){var t;return(t=Array.isArray(this.repeat)?this.repeat[1]:this.repeat)!=null?t:1/0}constructor(t){super(t)}updateOptions(t){super.updateOptions(t)}_update(t){var n,r,a;const{repeat:l,...s}=Wt(t);this._blockOpts=Object.assign({},this._blockOpts,s);const i=yt(this._blockOpts);this.repeat=(n=(r=l??i.repeat)!=null?r:this.repeat)!=null?n:1/0,super._update({mask:"m".repeat(Math.max(this.repeatTo===1/0&&((a=this._blocks)==null?void 0:a.length)||0,this.repeatFrom)),blocks:{m:i},eager:i.eager,overwrite:i.overwrite,skipInvalid:i.skipInvalid,lazy:i.lazy,placeholderChar:i.placeholderChar,displayChar:i.displayChar})}_allocateBlock(t){if(t<this._blocks.length)return this._blocks[t];if(this.repeatTo===1/0||this._blocks.length<this.repeatTo)return this._blocks.push(yt(this._blockOpts)),this.mask+="m",this._blocks[this._blocks.length-1]}_appendCharRaw(t,n){n===void 0&&(n={});const r=new Ve;for(let c=(a=(l=this._mapPosToBlock(this.displayValue.length))==null?void 0:l.index)!=null?a:Math.max(this._blocks.length-1,0),d,g;d=(s=this._blocks[c])!=null?s:g=!g&&this._allocateBlock(c);++c){var a,l,s,i;const f=d._appendChar(t,{...n,_beforeTailState:(i=n._beforeTailState)==null||(i=i._blocks)==null?void 0:i[c]});if(f.skip&&g){this._blocks.pop(),this.mask=this.mask.slice(1);break}if(r.aggregate(f),f.consumed)break}return r}_trimEmptyTail(t,n){var r,a;t===void 0&&(t=0);const l=Math.max(((r=this._mapPosToBlock(t))==null?void 0:r.index)||0,this.repeatFrom,0);let s;n!=null&&(s=(a=this._mapPosToBlock(n))==null?void 0:a.index),s==null&&(s=this._blocks.length-1);let i=0;for(let c=s;l<=c&&!this._blocks[c].unmaskedValue;--c,++i);i&&(this._blocks.splice(s-i+1,i),this.mask=this.mask.slice(i))}reset(){super.reset(),this._trimEmptyTail()}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const r=super.remove(t,n);return this._trimEmptyTail(t,n),r}totalInputPositions(t,n){return t===void 0&&(t=0),n==null&&this.repeatTo===1/0?1/0:super.totalInputPositions(t,n)}get state(){return super.state}set state(t){this._blocks.length=t._blocks.length,this.mask=this.mask.slice(0,this._blocks.length),super.state=t}}Ce.RepeatBlock=al;try{globalThis.IMask=Ce}catch{}const Gn=Object.freeze(Object.defineProperty({__proto__:null,ChangeDetails:Ve,ChunksTailDetails:Dt,DIRECTION:ge,HTMLContenteditableMaskElement:Eo,HTMLInputMaskElement:el,HTMLMaskElement:rn,InputMask:tl,MaskElement:qn,Masked:Ge,MaskedDate:kt,MaskedDynamic:sn,MaskedEnum:cn,MaskedFunction:ol,MaskedNumber:nt,MaskedPattern:Ye,MaskedRange:an,MaskedRegExp:nl,PIPE_TYPE:Wn,PatternFixedDefinition:Bo,PatternInputDefinition:ln,RepeatBlock:al,createMask:yt,createPipe:Vo,default:Ce,forceDirection:Zr,normalizeOpts:Wt,pipe:ll},Symbol.toStringTag,{value:"Module"}));function eg(){const o=e.ref(!1);return{isFullscreen:o,toggleFullscreen:()=>{o.value=!o.value}}}const tg="https://esm.sh",at="3.7.2",sl="3.7.2",ng=`?deps=@tiptap/core@${at},@tiptap/pm@${sl}`,st=o=>`${tg}/${o}${ng}`,it={core:st(`@tiptap/core@${at}`),starterKit:st(`@tiptap/starter-kit@${at}`),textStyle:st(`@tiptap/extension-text-style@${at}`),table:st(`@tiptap/extension-table@${at}`),highlight:st(`@tiptap/extension-highlight@${at}`),subscript:st(`@tiptap/extension-subscript@${at}`),superscript:st(`@tiptap/extension-superscript@${at}`),link:st(`@tiptap/extension-link@${at}`),image:st(`@tiptap/extension-image@${at}`),textAlign:st(`@tiptap/extension-text-align@${at}`),heading:st(`@tiptap/extension-heading@${at}`),paragraph:st(`@tiptap/extension-paragraph@${at}`),pmModel:st(`@tiptap/pm@${sl}/model`)},dn="__vs_form_tiptap_loader__",ct=o=>import(o),Ke=(o,t)=>o?.[t]||o?.default?.[t]||o?.default?.default?.[t]||o?.default||o,og=o=>o&&o.split(";").map(n=>n.trim()).filter(n=>n&&!/^text-align\s*:/i.test(n)).join("; ")||null,rg=o=>o.style?{style:String(o.style).replace(/;\s*$/,"")}:{},il=({stripTextAlign:o=!1}={})=>({default:null,parseHTML:t=>{const n=t.getAttribute("style");return o?og(n):n||null},renderHTML:t=>rg(t)}),lg=o=>o.extend({addAttributes(){return{...this.parent?.(),style:il({stripTextAlign:!0})}}}),ag=o=>o.extend({addAttributes(){return{...this.parent?.(),style:il()}}}),sg=o=>o.extend({addOptions(){return{...this.parent?.(),levels:[1,2,3,4,5,6]}}}),ig=(o,t,n,r,a)=>{const l=t.extend({addAttributes(){return{...this.parent?.(),border:{default:null,parseHTML:s=>s.getAttribute("border"),renderHTML:s=>s.border?{border:s.border}:{}},cellpadding:{default:null,parseHTML:s=>s.getAttribute("cellpadding"),renderHTML:s=>s.cellpadding?{cellpadding:s.cellpadding}:{}},cellspacing:{default:null,parseHTML:s=>s.getAttribute("cellspacing"),renderHTML:s=>s.cellspacing?{cellspacing:s.cellspacing}:{}},style:{default:null,parseHTML:s=>s.getAttribute("style"),renderHTML:s=>s.style?{style:s.style}:{}},width:{default:null,parseHTML:s=>s.getAttribute("width"),renderHTML:s=>s.width?{width:s.width}:{}}}},parseHTML(){return[{tag:"div.tableWrapper table",priority:100},{tag:"table"}]}});return o.extend({addExtensions(){return[l.configure({resizable:!0}),n,r,a]}})},cg=o=>o.extend({addAttributes(){return{...this.parent?.(),fontFamily:{default:null,parseHTML:t=>t.style.fontFamily?.replace(/['"]/g,""),renderHTML:t=>t.fontFamily?{style:`font-family: ${t.fontFamily}`}:{}},fontSize:{default:null,parseHTML:t=>t.style.fontSize?.replace(/['"]/g,""),renderHTML:t=>t.fontSize?{style:`font-size: ${t.fontSize}`}:{}},color:{default:null,parseHTML:t=>t.style.color?.replace(/['"]/g,""),renderHTML:t=>t.color?{style:`color: ${t.color}`}:{}},backgroundColor:{default:null,parseHTML:t=>t.style.backgroundColor?.replace(/['"]/g,""),renderHTML:t=>!t.backgroundColor||t.backgroundColor==="transparent"?{}:{style:`background-color: ${t.backgroundColor}`}}}},addCommands(){return{setFontFamily:t=>({chain:n})=>n().setMark("textStyle",{fontFamily:t}).run(),unsetFontFamily:()=>({chain:t})=>t().setMark("textStyle",{fontFamily:null}).removeEmptyTextStyle().run(),setFontSize:t=>({chain:n})=>n().setMark("textStyle",{fontSize:t}).run(),unsetFontSize:()=>({chain:t})=>t().setMark("textStyle",{fontSize:null}).removeEmptyTextStyle().run(),setColor:t=>({chain:n})=>n().setMark("textStyle",{color:t}).run(),unsetColor:()=>({chain:t})=>t().setMark("textStyle",{color:null}).removeEmptyTextStyle().run(),setBackgroundColor:t=>({chain:n})=>n().setMark("textStyle",{backgroundColor:t}).run(),unsetBackgroundColor:()=>({chain:t})=>t().setMark("textStyle",{backgroundColor:null}).removeEmptyTextStyle().run()}}}),dg=o=>o.create({name:"iframe",group:"block",inline:!1,atom:!0,selectable:!0,addAttributes(){return{src:{default:null},width:{default:"100%"},height:{default:"280"},frameborder:{default:"0"},allow:{default:null},allowfullscreen:{default:null},referrerpolicy:{default:null},loading:{default:null},class:{default:null},title:{default:null},style:{default:null}}},parseHTML(){return[{tag:"iframe"}]},renderHTML({HTMLAttributes:t}){return["iframe",t]}});async function ug(){if(typeof window>"u")return null;const o=window;return o[dn]||(o[dn]=Promise.all([ct(it.core),ct(it.starterKit),ct(it.textStyle),ct(it.table),ct(it.highlight),ct(it.subscript),ct(it.superscript),ct(it.link),ct(it.image),ct(it.textAlign),ct(it.heading),ct(it.paragraph),ct(it.pmModel)]).then(([t,n,r,a,l,s,i,c,d,g,f,p,m])=>{const h=Ke(t,"Editor"),w=Ke(t,"Node"),y=Ke(n,"StarterKit"),C=Ke(r,"TextStyle"),_=Ke(a,"TableKit"),B=Ke(a,"Table"),$=Ke(a,"TableRow"),j=Ke(a,"TableCell"),Z=Ke(a,"TableHeader"),I=Ke(l,"Highlight"),V=Ke(s,"Subscript"),S=Ke(i,"Superscript"),x=Ke(c,"Link"),L=Ke(d,"Image"),U=Ke(g,"TextAlign"),ne=Ke(f,"Heading"),N=Ke(p,"Paragraph"),P=Ke(m,"DOMParser");if(!h||!w||!y||!C||!_||!B||!$||!j||!Z||!I||!V||!S||!x||!L||!U||!ne||!N||!P)throw new Error("Failed to resolve one or more Tiptap modules");return{Editor:h,ProseMirrorDOMParser:P,StarterKit:y,ExtendedTextStyle:cg(C),Highlight:I,Subscript:V,Superscript:S,CustomLink:ag(x),Image:L,TextAlign:U,CustomHeading:sg(ne),CustomParagraph:lg(N),CustomTableKit:ig(_,B,$,j,Z),Iframe:dg(w)}}).catch(t=>{throw delete o[dn],t})),o[dn]}const Tt=o=>o.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;"),un=o=>{let t=Tt(o||"");return t=t.replace(/!\[([^\]]*)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(n,r,a,l)=>{const s=l?` title="${Tt(l)}"`:"";return`<img src="${Tt(a)}" alt="${Tt(r)}"${s}>`}),t=t.replace(/\[([^\]]+)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(n,r,a,l)=>{const s=l?` title="${Tt(l)}"`:"";return`<a href="${Tt(a)}"${s} target="_blank" rel="noopener noreferrer">${r}</a>`}),t=t.replace(/`([^`]+)`/g,"<code>$1</code>"),t=t.replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>"),t=t.replace(/__([^_]+)__/g,"<strong>$1</strong>"),t=t.replace(/~~([^~]+)~~/g,"<del>$1</del>"),t=t.replace(/\*([^*\n]+)\*/g,"<em>$1</em>"),t=t.replace(/_([^_\n]+)_/g,"<em>$1</em>"),t},pn=o=>/^\s*\d+\.\s+/.test(o),So=o=>/^\s*[-*+]\s+/.test(o),cl=o=>/^\s*[-*+]\s+\[[ xX]\]\s+/.test(o),$o=o=>/^\s*>\s?/.test(o),Ao=o=>/^\s*\|?(?:\s*:?-{3,}:?\s*\|)+\s*:?-{3,}:?\s*\|?\s*$/.test(o),dl=o=>o.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(t=>un(t.trim())),pg=(o,t)=>{const n=o[t],r=o[t+1];if(!n||!r||!n.includes("|")||!Ao(r))return null;const a=dl(n),l=[];let s=t+2;for(;s<o.length&&o[s].includes("|")&&o[s].trim()!=="";){const d=dl(o[s]);l.push(`<tr>${d.map(g=>`<td>${g}</td>`).join("")}</tr>`),s+=1}const i=`<thead><tr>${a.map(d=>`<th>${d}</th>`).join("")}</tr></thead>`,c=l.length?`<tbody>${l.join("")}</tbody>`:"";return{html:`<table>${i}${c}</table>`,nextIndex:s}},mg=(o,t)=>{const n=pn(o[t]),r=n?"ol":"ul",a=[];let l=t;for(;l<o.length;){const s=o[l];if(s.trim()===""||!(n?pn(s):(So(s)||cl(s))&&!pn(s)))break;const c=s.match(/^\s*[-*+]\s+\[([ xX])\]\s+(.*)$/);if(c){const d=c[1].toLowerCase()==="x";a.push(`<li><input type="checkbox" disabled${d?" checked":""}> ${un(c[2])}</li>`)}else{const d=s.replace(/^\s*(?:[-*+]|\d+\.)\s+/,"");a.push(`<li>${un(d)}</li>`)}l+=1}return{html:`<${r}>${a.join("")}</${r}>`,nextIndex:l}},fg=(o,t)=>{const r=o[t].replace(/^```/,"").trim(),a=[];let l=t+1;for(;l<o.length&&!o[l].startsWith("```");)a.push(o[l]),l+=1;return{html:`<pre><code${r?` class="language-${Tt(r)}"`:""}>${Tt(a.join(`
6
6
  `))}</code></pre>`,nextIndex:l<o.length?l+1:l}},hg=(o,t)=>{const n=[];let r=t;for(;r<o.length;){const a=o[r];if(a.trim()===""||a.startsWith("```")||/^#{1,6}\s+/.test(a)||/^---+$/.test(a.trim())||/^\*\*\*+$/.test(a.trim())||$o(a)||pn(a)||So(a)||r+1<o.length&&a.includes("|")&&Ao(o[r+1]))break;n.push(a.trim()),r+=1}return{html:`<p>${un(n.join(" "))}</p>`,nextIndex:r}},ul=o=>{const n=(o||"").replace(/\r\n/g,`
7
7
  `).split(`
8
8
  `),r=[];let a=0;for(;a<n.length;){const l=n[a],s=l.trim();if(!s){a+=1;continue}if(l.startsWith("```")){const d=fg(n,a);r.push(d.html),a=d.nextIndex;continue}const i=l.match(/^(#{1,6})\s+(.*)$/);if(i){const d=i[1].length;r.push(`<h${d}>${un(i[2])}</h${d}>`),a+=1;continue}if(/^---+$/.test(s)||/^\*\*\*+$/.test(s)){r.push("<hr>"),a+=1;continue}if(l.includes("|")&&a+1<n.length&&Ao(n[a+1])){const d=pg(n,a);if(d){r.push(d.html),a=d.nextIndex;continue}}if($o(l)){const d=[];for(;a<n.length&&$o(n[a]);)d.push(n[a].replace(/^\s*>\s?/,"")),a+=1;r.push(`<blockquote>${ul(d.join(`
@@ -40,7 +40,7 @@ ${c}
40
40
  min-width: auto !important;
41
41
  min-height: auto !important;
42
42
  object-fit: fill !important;
43
- `.replace(/\s+/g," ").trim())}})},U=c.value.width,ne=c.value.height;U&&ne&&U!==""&&ne!==""?[0,x,x*2,x*3,x*4].forEach(P=>{setTimeout(L,P)}):(L(),setTimeout(L,x))},B=async()=>{let V=[],S=[];if(Array.isArray(c.value.file)?(V=c.value.file.filter(N=>N instanceof File),S=c.value.file.filter(N=>typeof N=="string"&&N.trim()!=="")):c.value.file instanceof FileList?V=Array.from(c.value.file):c.value.file instanceof File?V=[c.value.file]:typeof c.value.file=="string"&&c.value.file.trim()!==""&&(S=[c.value.file]),V.length===0&&S.length===0&&a.value&&a.value.file){const N=a.value.file;Array.isArray(N)?(V=N.filter(P=>P instanceof File),S=N.filter(P=>typeof P=="string"&&P.trim()!=="")):N instanceof FileList?V=Array.from(N):N instanceof File?V=[N]:typeof N=="string"&&N.trim()!==""&&(S=[N])}if(S.length>0&&!l.value){for(const N of S)s.value.some(P=>P.url===N)||s.value.push({url:N,preview:N,error:!1});if(V.length===0&&s.value.length>0){await j();return}}const x=V.length,L=x+S.length;if(!(l.value&&x<=1)){if(x>0){const N=V.filter(P=>!s.value.some(q=>q.file===P));N.length>0&&await w(N)}}if(!l.value){if(L>1||d.value||s.value.length>1){if(s.value.length>0){await j();return}else if(x>0){if(await w(V),s.value.length>0){await j();return}}else if(S.length>0){await j();return}}else if(s.value.length>1){await j();return}}let U=c.value.src;if(g.value){let N=null;if(Array.isArray(c.value.file)||c.value.file instanceof FileList?N=c.value.file[0]:(c.value.file instanceof File||typeof c.value.file=="string")&&(N=c.value.file),N instanceof File)try{const P=new FileReader,q=await new Promise((K,O)=>{P.onload=Q=>K(Q.target.result),P.onerror=O,P.readAsDataURL(N)});U=q,l.value&&(c.value.src=q)}catch(P){console.error("Помилка при читанні файлу:",P),we.notify({type:"error",title:"Помилка",message:"Не вдалося прочитати файл"});return}else typeof N=="string"&&N.trim()!==""&&(U=N.trim(),l.value&&N.trim()!==c.value.src&&(c.value.src=N.trim(),U=N.trim()))}else if(Array.isArray(c.value.file)&&c.value.file.length===1){const N=c.value.file[0];typeof N=="string"&&N.trim()!==""&&(U=N.trim(),(!c.value.src||c.value.src!==N.trim())&&(c.value.src=N.trim()))}else typeof c.value.file=="string"&&c.value.file.trim()!==""&&(U=c.value.file.trim(),(!c.value.src||c.value.src!==c.value.file.trim())&&(c.value.src=c.value.file.trim()));const ne=U||Array.isArray(c.value.file)&&c.value.file.length>0&&(c.value.file.some(N=>N instanceof File)||c.value.file.some(N=>typeof N=="string"&&N.trim()!==""))||c.value.file instanceof FileList&&c.value.file.length>0||typeof c.value.file=="string"&&c.value.file.trim()!=="";if(!U&&!ne){we.notify({type:"warning",title:"Попередження",message:"Будь ласка, введіть URL зображення або виберіть файл"});return}if(!d.value&&!ne&&await a.value.validate()){we.notify({type:"warning",title:"Попередження",message:"Будь ласка, заповніть всі обов'язкові поля"});return}if(t.editor&&U)if(l.value&&i.value!==null){const{state:N}=t.editor;try{t.editor.chain().focus().setNodeSelection(i.value).run()}catch{t.editor.chain().focus().setTextSelection(i.value).run()}const P=t.editor.getAttributes("link"),q=P&&P.href,K=C(),O={src:U,alt:c.value.alt||"",title:c.value.title||"",...K};if((!c.value.width||c.value.width==="")&&(O.width=void 0),(!c.value.height||c.value.height==="")&&(O.height=void 0),t.editor.chain().focus().updateAttributes("image",O).run(),setTimeout(()=>{const{view:Q}=t.editor;if(!Q||!Q.dom)return;Q.dom.querySelectorAll("img.editor-image").forEach(F=>{if(F instanceof HTMLImageElement){const A=F.getAttribute("src")||F.src;(A===U||A.includes(U.split("/").pop()))&&(c.value.width&&c.value.height?(F.style.setProperty("width",`${c.value.width}px`,"important"),F.style.setProperty("height",`${c.value.height}px`,"important"),F.style.setProperty("object-fit","fill","important"),F.style.setProperty("max-width","none","important"),F.style.setProperty("max-height","none","important")):(F.style.removeProperty("width"),F.style.removeProperty("height"),F.style.removeProperty("object-fit"),F.style.removeProperty("max-width"),F.style.removeProperty("max-height")))}})},20),c.value.link&&c.value.link.trim()!==""){let Q=c.value.link.trim();Q.match(/^https?:\/\//i)||(Q="https://"+Q),q?t.editor.chain().focus().extendMarkRange("link").setLink({href:Q,target:c.value.openInNewTab?"_blank":null}).run():t.editor.chain().focus().selectParentNode().setLink({href:Q,target:c.value.openInNewTab?"_blank":null}).run()}else q&&t.editor.chain().focus().extendMarkRange("link").unsetLink().run()}else{const{state:N}=t.editor,{selection:P}=N,{$anchor:q}=P;let K=null;for(let Q=q.depth;Q>0;Q--){const re=q.node(Q);if(re&&re.type.name==="paragraph"){K=re;break}}if(K&&K.content.content.some(Q=>Q.type.name==="image")){const Q=$(K,q.before(q.depth));if(Q!==null){const re=C(),T=N.schema.nodes.image.create({src:U,alt:c.value.alt||"",title:c.value.title||"",...re});if(c.value.link&&c.value.link.trim()!==""){let F=c.value.link.trim();F.match(/^https?:\/\//i)||(F="https://"+F);const A=N.schema.marks.link.create({href:F,target:c.value.openInNewTab?"_blank":null}),J=T.type.create(T.attrs,T.content,[A]);t.editor.chain().focus().insertContentAt(Q+1,J).run(),_(t.editor,U)}else t.editor.chain().focus().insertContentAt(Q+1,T).run(),_(t.editor,U)}else if(c.value.link&&c.value.link.trim()!==""){const re=C();t.editor.chain().focus().setImage({src:U,alt:c.value.alt||"",title:c.value.title||"",...re}).run(),setTimeout(()=>{let T=c.value.link.trim();T.match(/^https?:\/\//i)||(T="https://"+T),t.editor.chain().focus().selectParentNode().setLink({href:T,target:c.value.openInNewTab?"_blank":null}).run(),_(t.editor,U,20)},10)}else{const re=C();t.editor.chain().focus().setImage({src:U,alt:c.value.alt||"",title:c.value.title||"",...re}).run(),_(t.editor,U)}}else if(c.value.link&&c.value.link.trim()!==""){const Q=C();t.editor.chain().focus().setImage({src:U,alt:c.value.alt||"",title:c.value.title||"",...Q}).run(),setTimeout(()=>{let re=c.value.link.trim();re.match(/^https?:\/\//i)||(re="https://"+re),t.editor.chain().focus().selectParentNode().setLink({href:re,target:c.value.openInNewTab?"_blank":null}).run(),_(t.editor,U,20)},10)}else{const Q=C();t.editor.chain().focus().setImage({src:U,alt:c.value.alt||"",title:c.value.title||"",...Q}).run(),_(t.editor,U)}}h()},$=(V,S)=>{let x=null;return V.forEach((L,U)=>{L.type.name==="image"&&(x=S+U+1)}),x},j=async()=>{if(t.editor){if(s.value.length===0)if(Array.isArray(c.value.file)&&c.value.file.length>0){const V=c.value.file.filter(x=>typeof x=="string"&&x.trim()!==""),S=c.value.file.filter(x=>x instanceof File);for(const x of V)s.value.some(L=>L.url===x||L.preview===x)||s.value.push({url:x,preview:x,error:!1});S.length>0&&await w(S)}else d.value&&await w(c.value.file);if(s.value.length!==0)try{const V=[],S=C();for(const x of s.value){const L=x.url||x.preview||"";if(!L)continue;const U=t.editor.schema.nodes.image.create({src:L,alt:c.value.alt||"",title:c.value.title||"",...S});V.push(U)}V.length>0&&(t.editor.chain().focus().command(({tr:x,dispatch:L})=>{if(L){const{selection:U}=x,{$anchor:ne}=U;let N=U.$anchor.pos,P=null,q=null;for(let O=ne.depth;O>0;O--){const Q=ne.node(O);if(Q&&Q.type.name==="paragraph"){P=Q,q=ne.start(O);break}}if(P){let O=null;P.forEach((Q,re)=>{Q.type.name==="image"&&(O=q+re+1)}),O!==null?N=O+1:N=q+P.content.size}let K=N;return V.forEach(O=>{x.insert(K,O),K+=O.nodeSize}),!0}return!1}).run(),c.value.width&&c.value.height&&setTimeout(()=>{const{view:x}=t.editor;x&&x.dom&&x.dom.querySelectorAll("img.editor-image").forEach(ne=>{ne instanceof HTMLImageElement&&Array.from(s.value).some(P=>{const q=P.url||P.preview||"",K=ne.src||ne.getAttribute("src")||"";return K===q||K.includes(q.split("/").pop())})&&(ne.style.setProperty("width",`${c.value.width}px`,"important"),ne.style.setProperty("height",`${c.value.height}px`,"important"),ne.style.setProperty("object-fit","fill","important"),ne.style.setProperty("max-width","none","important"),ne.style.setProperty("max-height","none","important"))})},50)),h()}catch(V){console.error("Помилка при додаванні зображень:",V),we.notify({type:"error",title:"Помилка",message:"Не вдалося додати зображення"})}}},Z=async()=>{await B()},I=()=>{h()};return e.watch(()=>c.value.file,async(V,S)=>{if(r.value=!1,!(l.value&&Array.isArray(V)&&V.length===1&&typeof V[0]=="string"&&!V.some(L=>L instanceof File)))if(Array.isArray(V)&&V.length>0){const x=V.filter(U=>U instanceof File),L=V.filter(U=>typeof U=="string"&&U.trim()!=="");if(x.length>0&&(l.value?l.value&&x.length===1&&L.length===0&&(s.value=[]):s.value=[],(!l.value||x.length>1||L.length>0)&&await w(x),l.value&&x.length===1&&L.length===0)){const U=new FileReader;U.onload=ne=>{c.value.src=ne.target.result},U.readAsDataURL(x[0])}if(L.length>0)if(l.value)l.value&&L.length===1&&x.length===0&&(c.value.src=L[0]);else{x.length===0&&(s.value=[]);for(const U of L)s.value.some(ne=>ne.url===U||ne.preview===U)||s.value.push({url:U,preview:U,error:!1})}}else V&&typeof V=="object"&&V instanceof FileList?(l.value||(s.value=[]),await w(Array.from(V))):V&&typeof V=="object"&&!Array.isArray(V)&&V instanceof File?(l.value||(s.value=[]),await w([V])):l.value||(s.value=[])},{immediate:!1}),e.watch(()=>c.value.src,()=>{r.value=!1}),(V,S)=>(e.openBlock(),e.createElementBlock("div",i0,[e.createElementVNode("button",{onClick:m,class:e.normalizeClass(["h-[30px] w-[30px] flex items-center justify-center text-gray-500 rounded-full cursor-pointer hover:text-gray-900 hover:bg-gray-100",o.editor?.isActive("image")?"bg-gray-200 text-gray-900":""]),title:"Додати зображення"},[e.createVNode(e.unref(X.Image),{class:"h-4 w-4"}),S[4]||(S[4]=e.createElementVNode("span",{class:"sr-only"},"Додати зображення",-1))],2),e.createVNode(wl,{modelValue:n.value,"onUpdate:modelValue":S[3]||(S[3]=x=>n.value=x),title:l.value?"Редагувати зображення":"Додати зображення"},{footer:e.withCtx(()=>[e.createElementVNode("div",y0,[e.createElementVNode("button",{onClick:I,type:"button",class:"px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-blue-500"}," Скасувати "),e.createElementVNode("button",{onClick:Z,type:"button",class:"px-4 py-2 text-sm font-medium text-white bg-blue-600 border border-transparent rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500"},e.toDisplayString(l.value?"Оновити зображення":"Додати зображення"),1)])]),default:e.withCtx(()=>[e.createVNode(pt,{modelValue:c.value,"onUpdate:modelValue":S[0]||(S[0]=x=>c.value=x),schema:p.value,form:a.value,"onUpdate:form":S[1]||(S[1]=x=>a.value=x)},null,8,["modelValue","schema","form"]),f.value&&!d.value?(e.openBlock(),e.createElementBlock("div",c0,[S[5]||(S[5]=e.createElementVNode("p",{class:"text-sm text-gray-600 mb-2"},"Попередній перегляд:",-1)),e.withDirectives(e.createElementVNode("img",{src:f.value,alt:c.value.alt||"Попередній перегляд зображення",title:c.value.title,class:"max-w-full h-auto max-h-32 rounded border",onError:S[2]||(S[2]=x=>r.value=!0)},null,40,d0),[[e.vShow,!r.value]]),r.value?(e.openBlock(),e.createElementBlock("p",u0," Не вдалося завантажити попередній перегляд зображення ")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),s.value.length>0?(e.openBlock(),e.createElementBlock("div",p0,[e.createElementVNode("p",m0,"Попередній перегляд ("+e.toDisplayString(s.value.length)+" зображень):",1),S[6]||(S[6]=e.createElementVNode("p",{class:"text-xs text-gray-500 mb-2"}," Зображення будуть розміщені в ряд, якщо вони помістяться по ширині ",-1)),e.createElementVNode("div",f0,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(x,L)=>(e.openBlock(),e.createElementBlock("div",{key:L,class:"relative"},[e.withDirectives(e.createElementVNode("img",{src:x.preview,alt:`Попередній перегляд ${L+1}`,class:"max-w-[100px] max-h-[100px] rounded border object-contain",onError:U=>x.error=!0},null,40,h0),[[e.vShow,!x.error]]),e.createElementVNode("button",{onClick:U=>y(L),class:"absolute -top-2 -right-2 bg-red-500 text-white rounded-full w-5 h-5 flex items-center justify-center text-xs hover:bg-red-600",type:"button"}," × ",8,g0)]))),128))])])):e.createCommentVNode("",!0)]),_:1},8,["modelValue","title"])]))}}),k0={class:"flex items-center"},w0=["disabled"],x0=["disabled"],v0=Be(Object.assign({inheritAttrs:!1},{__name:"vs-editor-history",props:{editor:Object},setup(o){const t=o,n=()=>{t.editor?.can().undo()&&t.editor.chain().focus().undo().run()},r=()=>{t.editor?.can().redo()&&t.editor.chain().focus().redo().run()};return(a,l)=>(e.openBlock(),e.createElementBlock("div",k0,[e.createElementVNode("button",{onClick:n,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-l-full hover:text-gray-900 hover:bg-gray-100 border-r border-gray-200",[o.editor?.can().undo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!o.editor?.can().undo(),title:"Undo (Ctrl+Z)"},[e.createVNode(e.unref(X.Undo2),{class:"h-4 w-4"})],10,w0),e.createElementVNode("button",{onClick:r,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-r-full hover:text-gray-900 hover:bg-gray-100",[o.editor?.can().redo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!o.editor?.can().redo(),title:"Redo (Ctrl+Y)"},[e.createVNode(e.unref(X.Redo2),{class:"h-4 w-4"})],10,x0)]))}}),[["__scopeId","data-v-6a87fc55"]]),_0={class:"relative"},C0={class:"p-6"},E0={class:"flex justify-between items-center mb-4"},B0={bold:Rg,italic:Ug,color:Ny,background_color:Iy,highlight:Oy,bullet_list:Ng,ordered_list:Dg,blockquote:Sg,codeblock:Ig,underline:Hg,strike:qg,link:fy,table:ky,text_align:vy,font_family:Uy,font_size:Wy,superscript:Xy,subscript:Qy,heading:r0,clear_formatting:s0,image:b0,history:v0,help:Be(Object.assign({inheritAttrs:!1},{__name:"vs-editor-help",props:{editor:Object},setup(o){const t=e.ref(!1),n=e.ref(null),r=()=>{t.value=!t.value},a=()=>{t.value=!1};return(l,s)=>(e.openBlock(),e.createElementBlock("div",_0,[e.createElementVNode("button",{ref_key:"helpButton",ref:n,onClick:r,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 text-gray-500",[t.value?"bg-gray-100 text-gray-900":"text-gray-500"]]),title:"Markdown Shortcuts Help"},[e.createVNode(e.unref(X.CircleHelp),{class:"h-4 w-4"})],2),t.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-[100001]",onClick:a},[e.createElementVNode("div",{class:"bg-white rounded-lg shadow-xl max-w-2xl w-full mx-4 max-h-[80vh] overflow-y-auto",onClick:s[0]||(s[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",C0,[e.createElementVNode("div",E0,[s[1]||(s[1]=e.createElementVNode("h2",{class:"text-xl font-semibold text-gray-900"},"Common Markdown Syntax & Shortcuts",-1)),e.createElementVNode("button",{onClick:a,class:"text-gray-400 hover:text-gray-600 transition-colors"},[e.createVNode(e.unref(X.X),{class:"h-6 w-6"})])]),s[2]||(s[2]=e.createStaticVNode('<div class="space-y-6" data-v-92c21275><div data-v-92c21275><h3 class="text-lg font-medium text-gray-800 mb-3" data-v-92c21275>Markdown Syntax</h3><div class="overflow-x-auto" data-v-92c21275><table class="w-full border-collapse" data-v-92c21275><thead data-v-92c21275><tr class="bg-gray-50" data-v-92c21275><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-92c21275>Element</th><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-92c21275>Example</th></tr></thead><tbody class="text-sm" data-v-92c21275><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Bold</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>**bold text**</code> or <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>__bold text__</code></td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Italics</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>*italic text*</code> or <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>_italic text_</code></td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Strikethrough</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>~strikethrough text~</code></td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Headings</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275># Heading 1</code>, <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>## Heading 2</code>, etc., up to <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>###### Heading 6</code></td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Unordered Lists</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Use an asterisk (*), dash (-), or plus sign (+) followed by a space. </td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Ordered Lists</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Use a number followed by a period and a space (e.g., <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>1. First item</code>). </td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Blockquotes</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Start with a greater-than sign (&gt;) followed by a space. </td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Inline Code</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Surround with backticks (<code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>`</code>). </td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Code Blocks</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Enclose with three backticks (<code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>```</code>) before and after the code. </td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Images</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Use <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>![alt text](url)</code> syntax. </td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Links</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Use <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>[Link Text](url)</code> syntax. </td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Checklists</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Create a list item with <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>- [ ]</code> for an incomplete task or <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>- [x]</code> for a completed one. </td></tr></tbody></table></div></div><div data-v-92c21275><h3 class="text-lg font-medium text-gray-800 mb-3" data-v-92c21275>Common Editing Shortcuts</h3><div class="overflow-x-auto" data-v-92c21275><table class="w-full border-collapse" data-v-92c21275><thead data-v-92c21275><tr class="bg-gray-50" data-v-92c21275><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-92c21275>Shortcut</th><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-92c21275>Action</th></tr></thead><tbody class="text-sm" data-v-92c21275><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+A</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Select all text</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+B</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Apply bold formatting</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+C</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Copy selected text</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+I</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Apply italic formatting</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+K</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Open the insert link dialog</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+S</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Save the current document</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+V</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Paste copied text</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+X</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Cut selected text</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+Y</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Redo the last action</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Alt+Shift+Backspace</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Redo the last action</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+Z</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Undo the last action</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Alt+Backspace</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Undo the last action</td></tr></tbody></table></div></div></div>',1))])])])):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-92c21275"]]),horizontal_rule:{__name:"vs-editor-horizontal-rule",props:{editor:Object},setup(o){const t=o,n=()=>{t.editor&&t.editor.chain().focus().setHorizontalRule().run()};return(r,a)=>(e.openBlock(),e.createElementBlock("button",{title:"Horizontal Rule",onClick:n,class:"flex flex-col h-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex"},[e.createVNode(e.unref(X.Minus),{class:"h-4 w-4"})]))}},fullscreen:{__name:"vs-editor-fullscreen",props:{editor:Object},emits:["toggle-fullscreen"],setup(o,{emit:t}){const n=t,r=()=>{n("toggle-fullscreen")};return(a,l)=>(e.openBlock(),e.createElementBlock("button",{title:"Fullscreen",onClick:r,class:"w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded-full hover:text-gray-900 hover:bg-gray-100"},[e.createVNode(e.unref(X.Maximize),{class:"h-4 w-4"})]))}}},_l={basic:["history","font_family","font_size","bold","italic","underline","strike","text_align","bullet_list","ordered_list","link","image","clear_formatting","help"],default:["history","heading","font_family","font_size","bold","italic","underline","strike","superscript","subscript","color","background_color","highlight","text_align","bullet_list","ordered_list","blockquote","codeblock","table","link","image","horizontal_rule","clear_formatting","fullscreen","help"],full:["history","heading","font_family","font_size","bold","italic","underline","strike","color","background_color","highlight","text_align","bullet_list","ordered_list","blockquote","codeblock","table","link","image","horizontal_rule","superscript","subscript","clear_formatting","fullscreen","help"]},V0={class:"flex align-middle gap-x-0.5 border-b flex-wrap border-b-gray-200 px-[10px] py-[6px] border-solid border-transparent"},S0={class:"editor-body"},$0={key:0,class:"richtext-loading text-sm text-gray-500"},A0={key:1,class:"richtext-error text-sm text-red-600"},N0={class:"html-source-editor"},M0={class:"flex justify-end border-t border-[#e5e7eb] bg-[#f8fafc] px-4 min-h-[38px] items-start overflow-visible"},F0={class:"inline-flex items-stretch -mt-px"},D0=Object.freeze(Object.defineProperty({__proto__:null,default:Object.assign({inheritAttrs:!1},{__name:"vs-richtext",props:e.mergeModels({modelValue:{type:String,default:()=>""},height:{type:String,default:()=>"300px"},format:{type:String,default:()=>"html"},toolbar:{type:[Array,String],default:()=>"default"}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref(null),a=e.ref(null),l=e.shallowRef(null),s=e.ref(!1),i=e.ref(""),c=e.ref(!1),d=e.ref(null),g=e.ref(""),f=e.ref(""),p=e.ref(null),m=e.ref(!1),h=e.ref(!1),{isFullscreen:w,toggleFullscreen:y}=eg(),{t:C}=Fo(),_=e.computed(()=>t.format==="md"?"markdown":"html"),B=e.computed(()=>t.format==="md"?C("form.richtext.markdown"):C("form.richtext.html")),$=e.computed(()=>l.value||null),j=e.computed(()=>typeof t.toolbar=="string"?_l[t.toolbar]||_l.default:t.toolbar),Z=e.computed(()=>j.value.map(F=>B0[F]).filter(Boolean)),I=e.computed(()=>(d.value?.attributes||[]).find(A=>A.name==="class")?.value||""),V=e.computed(()=>{const A=(d.value?.attributes||[]).find(se=>se.name==="style")?.value||"",J={};return A.split(";").forEach(se=>{const[ee,...he]=se.split(":"),xe=ee?.trim(),ye=he.join(":").trim();!xe||!ye||xe!=="height"&&(J[xe.replace(/-([a-z])/g,($e,Le)=>Le.toUpperCase())]=ye)}),J}),S=F=>{const A=(F||"").trim();return A?/^<p(?:\s+[^>]*)?>(?:\s|<br[^>]*>)*<\/p>$/i.test(A):!0},x=F=>S(F)?"":F||"",L=F=>{const A=F||"";p.value=A,n.value=A},U=F=>{if(!F||!F.view||!F.view.dom)return;F.view.dom.querySelectorAll("img.editor-image[width][height]").forEach(J=>{if(J instanceof HTMLImageElement){const se=J.getAttribute("width"),ee=J.getAttribute("height");se&&ee&&se!=="auto"&&ee!=="auto"&&se!==""&&ee!==""&&!isNaN(Number(se))&&!isNaN(Number(ee))&&(J.style.cssText=`
43
+ `.replace(/\s+/g," ").trim())}})},U=c.value.width,ne=c.value.height;U&&ne&&U!==""&&ne!==""?[0,x,x*2,x*3,x*4].forEach(P=>{setTimeout(L,P)}):(L(),setTimeout(L,x))},B=async()=>{let V=[],S=[];if(Array.isArray(c.value.file)?(V=c.value.file.filter(N=>N instanceof File),S=c.value.file.filter(N=>typeof N=="string"&&N.trim()!=="")):c.value.file instanceof FileList?V=Array.from(c.value.file):c.value.file instanceof File?V=[c.value.file]:typeof c.value.file=="string"&&c.value.file.trim()!==""&&(S=[c.value.file]),V.length===0&&S.length===0&&a.value&&a.value.file){const N=a.value.file;Array.isArray(N)?(V=N.filter(P=>P instanceof File),S=N.filter(P=>typeof P=="string"&&P.trim()!=="")):N instanceof FileList?V=Array.from(N):N instanceof File?V=[N]:typeof N=="string"&&N.trim()!==""&&(S=[N])}if(S.length>0&&!l.value){for(const N of S)s.value.some(P=>P.url===N)||s.value.push({url:N,preview:N,error:!1});if(V.length===0&&s.value.length>0){await j();return}}const x=V.length,L=x+S.length;if(!(l.value&&x<=1)){if(x>0){const N=V.filter(P=>!s.value.some(q=>q.file===P));N.length>0&&await w(N)}}if(!l.value){if(L>1||d.value||s.value.length>1){if(s.value.length>0){await j();return}else if(x>0){if(await w(V),s.value.length>0){await j();return}}else if(S.length>0){await j();return}}else if(s.value.length>1){await j();return}}let U=c.value.src;if(g.value){let N=null;if(Array.isArray(c.value.file)||c.value.file instanceof FileList?N=c.value.file[0]:(c.value.file instanceof File||typeof c.value.file=="string")&&(N=c.value.file),N instanceof File)try{const P=new FileReader,q=await new Promise((K,O)=>{P.onload=Q=>K(Q.target.result),P.onerror=O,P.readAsDataURL(N)});U=q,l.value&&(c.value.src=q)}catch(P){console.error("Помилка при читанні файлу:",P),ke.notify({type:"error",title:"Помилка",message:"Не вдалося прочитати файл"});return}else typeof N=="string"&&N.trim()!==""&&(U=N.trim(),l.value&&N.trim()!==c.value.src&&(c.value.src=N.trim(),U=N.trim()))}else if(Array.isArray(c.value.file)&&c.value.file.length===1){const N=c.value.file[0];typeof N=="string"&&N.trim()!==""&&(U=N.trim(),(!c.value.src||c.value.src!==N.trim())&&(c.value.src=N.trim()))}else typeof c.value.file=="string"&&c.value.file.trim()!==""&&(U=c.value.file.trim(),(!c.value.src||c.value.src!==c.value.file.trim())&&(c.value.src=c.value.file.trim()));const ne=U||Array.isArray(c.value.file)&&c.value.file.length>0&&(c.value.file.some(N=>N instanceof File)||c.value.file.some(N=>typeof N=="string"&&N.trim()!==""))||c.value.file instanceof FileList&&c.value.file.length>0||typeof c.value.file=="string"&&c.value.file.trim()!=="";if(!U&&!ne){ke.notify({type:"warning",title:"Попередження",message:"Будь ласка, введіть URL зображення або виберіть файл"});return}if(!d.value&&!ne&&await a.value.validate()){ke.notify({type:"warning",title:"Попередження",message:"Будь ласка, заповніть всі обов'язкові поля"});return}if(t.editor&&U)if(l.value&&i.value!==null){const{state:N}=t.editor;try{t.editor.chain().focus().setNodeSelection(i.value).run()}catch{t.editor.chain().focus().setTextSelection(i.value).run()}const P=t.editor.getAttributes("link"),q=P&&P.href,K=C(),O={src:U,alt:c.value.alt||"",title:c.value.title||"",...K};if((!c.value.width||c.value.width==="")&&(O.width=void 0),(!c.value.height||c.value.height==="")&&(O.height=void 0),t.editor.chain().focus().updateAttributes("image",O).run(),setTimeout(()=>{const{view:Q}=t.editor;if(!Q||!Q.dom)return;Q.dom.querySelectorAll("img.editor-image").forEach(F=>{if(F instanceof HTMLImageElement){const A=F.getAttribute("src")||F.src;(A===U||A.includes(U.split("/").pop()))&&(c.value.width&&c.value.height?(F.style.setProperty("width",`${c.value.width}px`,"important"),F.style.setProperty("height",`${c.value.height}px`,"important"),F.style.setProperty("object-fit","fill","important"),F.style.setProperty("max-width","none","important"),F.style.setProperty("max-height","none","important")):(F.style.removeProperty("width"),F.style.removeProperty("height"),F.style.removeProperty("object-fit"),F.style.removeProperty("max-width"),F.style.removeProperty("max-height")))}})},20),c.value.link&&c.value.link.trim()!==""){let Q=c.value.link.trim();Q.match(/^https?:\/\//i)||(Q="https://"+Q),q?t.editor.chain().focus().extendMarkRange("link").setLink({href:Q,target:c.value.openInNewTab?"_blank":null}).run():t.editor.chain().focus().selectParentNode().setLink({href:Q,target:c.value.openInNewTab?"_blank":null}).run()}else q&&t.editor.chain().focus().extendMarkRange("link").unsetLink().run()}else{const{state:N}=t.editor,{selection:P}=N,{$anchor:q}=P;let K=null;for(let Q=q.depth;Q>0;Q--){const re=q.node(Q);if(re&&re.type.name==="paragraph"){K=re;break}}if(K&&K.content.content.some(Q=>Q.type.name==="image")){const Q=$(K,q.before(q.depth));if(Q!==null){const re=C(),T=N.schema.nodes.image.create({src:U,alt:c.value.alt||"",title:c.value.title||"",...re});if(c.value.link&&c.value.link.trim()!==""){let F=c.value.link.trim();F.match(/^https?:\/\//i)||(F="https://"+F);const A=N.schema.marks.link.create({href:F,target:c.value.openInNewTab?"_blank":null}),J=T.type.create(T.attrs,T.content,[A]);t.editor.chain().focus().insertContentAt(Q+1,J).run(),_(t.editor,U)}else t.editor.chain().focus().insertContentAt(Q+1,T).run(),_(t.editor,U)}else if(c.value.link&&c.value.link.trim()!==""){const re=C();t.editor.chain().focus().setImage({src:U,alt:c.value.alt||"",title:c.value.title||"",...re}).run(),setTimeout(()=>{let T=c.value.link.trim();T.match(/^https?:\/\//i)||(T="https://"+T),t.editor.chain().focus().selectParentNode().setLink({href:T,target:c.value.openInNewTab?"_blank":null}).run(),_(t.editor,U,20)},10)}else{const re=C();t.editor.chain().focus().setImage({src:U,alt:c.value.alt||"",title:c.value.title||"",...re}).run(),_(t.editor,U)}}else if(c.value.link&&c.value.link.trim()!==""){const Q=C();t.editor.chain().focus().setImage({src:U,alt:c.value.alt||"",title:c.value.title||"",...Q}).run(),setTimeout(()=>{let re=c.value.link.trim();re.match(/^https?:\/\//i)||(re="https://"+re),t.editor.chain().focus().selectParentNode().setLink({href:re,target:c.value.openInNewTab?"_blank":null}).run(),_(t.editor,U,20)},10)}else{const Q=C();t.editor.chain().focus().setImage({src:U,alt:c.value.alt||"",title:c.value.title||"",...Q}).run(),_(t.editor,U)}}h()},$=(V,S)=>{let x=null;return V.forEach((L,U)=>{L.type.name==="image"&&(x=S+U+1)}),x},j=async()=>{if(t.editor){if(s.value.length===0)if(Array.isArray(c.value.file)&&c.value.file.length>0){const V=c.value.file.filter(x=>typeof x=="string"&&x.trim()!==""),S=c.value.file.filter(x=>x instanceof File);for(const x of V)s.value.some(L=>L.url===x||L.preview===x)||s.value.push({url:x,preview:x,error:!1});S.length>0&&await w(S)}else d.value&&await w(c.value.file);if(s.value.length!==0)try{const V=[],S=C();for(const x of s.value){const L=x.url||x.preview||"";if(!L)continue;const U=t.editor.schema.nodes.image.create({src:L,alt:c.value.alt||"",title:c.value.title||"",...S});V.push(U)}V.length>0&&(t.editor.chain().focus().command(({tr:x,dispatch:L})=>{if(L){const{selection:U}=x,{$anchor:ne}=U;let N=U.$anchor.pos,P=null,q=null;for(let O=ne.depth;O>0;O--){const Q=ne.node(O);if(Q&&Q.type.name==="paragraph"){P=Q,q=ne.start(O);break}}if(P){let O=null;P.forEach((Q,re)=>{Q.type.name==="image"&&(O=q+re+1)}),O!==null?N=O+1:N=q+P.content.size}let K=N;return V.forEach(O=>{x.insert(K,O),K+=O.nodeSize}),!0}return!1}).run(),c.value.width&&c.value.height&&setTimeout(()=>{const{view:x}=t.editor;x&&x.dom&&x.dom.querySelectorAll("img.editor-image").forEach(ne=>{ne instanceof HTMLImageElement&&Array.from(s.value).some(P=>{const q=P.url||P.preview||"",K=ne.src||ne.getAttribute("src")||"";return K===q||K.includes(q.split("/").pop())})&&(ne.style.setProperty("width",`${c.value.width}px`,"important"),ne.style.setProperty("height",`${c.value.height}px`,"important"),ne.style.setProperty("object-fit","fill","important"),ne.style.setProperty("max-width","none","important"),ne.style.setProperty("max-height","none","important"))})},50)),h()}catch(V){console.error("Помилка при додаванні зображень:",V),ke.notify({type:"error",title:"Помилка",message:"Не вдалося додати зображення"})}}},Z=async()=>{await B()},I=()=>{h()};return e.watch(()=>c.value.file,async(V,S)=>{if(r.value=!1,!(l.value&&Array.isArray(V)&&V.length===1&&typeof V[0]=="string"&&!V.some(L=>L instanceof File)))if(Array.isArray(V)&&V.length>0){const x=V.filter(U=>U instanceof File),L=V.filter(U=>typeof U=="string"&&U.trim()!=="");if(x.length>0&&(l.value?l.value&&x.length===1&&L.length===0&&(s.value=[]):s.value=[],(!l.value||x.length>1||L.length>0)&&await w(x),l.value&&x.length===1&&L.length===0)){const U=new FileReader;U.onload=ne=>{c.value.src=ne.target.result},U.readAsDataURL(x[0])}if(L.length>0)if(l.value)l.value&&L.length===1&&x.length===0&&(c.value.src=L[0]);else{x.length===0&&(s.value=[]);for(const U of L)s.value.some(ne=>ne.url===U||ne.preview===U)||s.value.push({url:U,preview:U,error:!1})}}else V&&typeof V=="object"&&V instanceof FileList?(l.value||(s.value=[]),await w(Array.from(V))):V&&typeof V=="object"&&!Array.isArray(V)&&V instanceof File?(l.value||(s.value=[]),await w([V])):l.value||(s.value=[])},{immediate:!1}),e.watch(()=>c.value.src,()=>{r.value=!1}),(V,S)=>(e.openBlock(),e.createElementBlock("div",i0,[e.createElementVNode("button",{onClick:m,class:e.normalizeClass(["h-[30px] w-[30px] flex items-center justify-center text-gray-500 rounded-full cursor-pointer hover:text-gray-900 hover:bg-gray-100",o.editor?.isActive("image")?"bg-gray-200 text-gray-900":""]),title:"Додати зображення"},[e.createVNode(e.unref(X.Image),{class:"h-4 w-4"}),S[4]||(S[4]=e.createElementVNode("span",{class:"sr-only"},"Додати зображення",-1))],2),e.createVNode(wl,{modelValue:n.value,"onUpdate:modelValue":S[3]||(S[3]=x=>n.value=x),title:l.value?"Редагувати зображення":"Додати зображення"},{footer:e.withCtx(()=>[e.createElementVNode("div",y0,[e.createElementVNode("button",{onClick:I,type:"button",class:"px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-blue-500"}," Скасувати "),e.createElementVNode("button",{onClick:Z,type:"button",class:"px-4 py-2 text-sm font-medium text-white bg-blue-600 border border-transparent rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500"},e.toDisplayString(l.value?"Оновити зображення":"Додати зображення"),1)])]),default:e.withCtx(()=>[e.createVNode(pt,{modelValue:c.value,"onUpdate:modelValue":S[0]||(S[0]=x=>c.value=x),schema:p.value,form:a.value,"onUpdate:form":S[1]||(S[1]=x=>a.value=x)},null,8,["modelValue","schema","form"]),f.value&&!d.value?(e.openBlock(),e.createElementBlock("div",c0,[S[5]||(S[5]=e.createElementVNode("p",{class:"text-sm text-gray-600 mb-2"},"Попередній перегляд:",-1)),e.withDirectives(e.createElementVNode("img",{src:f.value,alt:c.value.alt||"Попередній перегляд зображення",title:c.value.title,class:"max-w-full h-auto max-h-32 rounded border",onError:S[2]||(S[2]=x=>r.value=!0)},null,40,d0),[[e.vShow,!r.value]]),r.value?(e.openBlock(),e.createElementBlock("p",u0," Не вдалося завантажити попередній перегляд зображення ")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),s.value.length>0?(e.openBlock(),e.createElementBlock("div",p0,[e.createElementVNode("p",m0,"Попередній перегляд ("+e.toDisplayString(s.value.length)+" зображень):",1),S[6]||(S[6]=e.createElementVNode("p",{class:"text-xs text-gray-500 mb-2"}," Зображення будуть розміщені в ряд, якщо вони помістяться по ширині ",-1)),e.createElementVNode("div",f0,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(x,L)=>(e.openBlock(),e.createElementBlock("div",{key:L,class:"relative"},[e.withDirectives(e.createElementVNode("img",{src:x.preview,alt:`Попередній перегляд ${L+1}`,class:"max-w-[100px] max-h-[100px] rounded border object-contain",onError:U=>x.error=!0},null,40,h0),[[e.vShow,!x.error]]),e.createElementVNode("button",{onClick:U=>y(L),class:"absolute -top-2 -right-2 bg-red-500 text-white rounded-full w-5 h-5 flex items-center justify-center text-xs hover:bg-red-600",type:"button"}," × ",8,g0)]))),128))])])):e.createCommentVNode("",!0)]),_:1},8,["modelValue","title"])]))}}),k0={class:"flex items-center"},w0=["disabled"],x0=["disabled"],v0=Be(Object.assign({inheritAttrs:!1},{__name:"vs-editor-history",props:{editor:Object},setup(o){const t=o,n=()=>{t.editor?.can().undo()&&t.editor.chain().focus().undo().run()},r=()=>{t.editor?.can().redo()&&t.editor.chain().focus().redo().run()};return(a,l)=>(e.openBlock(),e.createElementBlock("div",k0,[e.createElementVNode("button",{onClick:n,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-l-full hover:text-gray-900 hover:bg-gray-100 border-r border-gray-200",[o.editor?.can().undo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!o.editor?.can().undo(),title:"Undo (Ctrl+Z)"},[e.createVNode(e.unref(X.Undo2),{class:"h-4 w-4"})],10,w0),e.createElementVNode("button",{onClick:r,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-r-full hover:text-gray-900 hover:bg-gray-100",[o.editor?.can().redo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!o.editor?.can().redo(),title:"Redo (Ctrl+Y)"},[e.createVNode(e.unref(X.Redo2),{class:"h-4 w-4"})],10,x0)]))}}),[["__scopeId","data-v-6a87fc55"]]),_0={class:"relative"},C0={class:"p-6"},E0={class:"flex justify-between items-center mb-4"},B0={bold:Rg,italic:Ug,color:Ny,background_color:Iy,highlight:Oy,bullet_list:Ng,ordered_list:Dg,blockquote:Sg,codeblock:Ig,underline:Hg,strike:qg,link:fy,table:ky,text_align:vy,font_family:Uy,font_size:Wy,superscript:Xy,subscript:Qy,heading:r0,clear_formatting:s0,image:b0,history:v0,help:Be(Object.assign({inheritAttrs:!1},{__name:"vs-editor-help",props:{editor:Object},setup(o){const t=e.ref(!1),n=e.ref(null),r=()=>{t.value=!t.value},a=()=>{t.value=!1};return(l,s)=>(e.openBlock(),e.createElementBlock("div",_0,[e.createElementVNode("button",{ref_key:"helpButton",ref:n,onClick:r,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 text-gray-500",[t.value?"bg-gray-100 text-gray-900":"text-gray-500"]]),title:"Markdown Shortcuts Help"},[e.createVNode(e.unref(X.CircleHelp),{class:"h-4 w-4"})],2),t.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-[100001]",onClick:a},[e.createElementVNode("div",{class:"bg-white rounded-lg shadow-xl max-w-2xl w-full mx-4 max-h-[80vh] overflow-y-auto",onClick:s[0]||(s[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",C0,[e.createElementVNode("div",E0,[s[1]||(s[1]=e.createElementVNode("h2",{class:"text-xl font-semibold text-gray-900"},"Common Markdown Syntax & Shortcuts",-1)),e.createElementVNode("button",{onClick:a,class:"text-gray-400 hover:text-gray-600 transition-colors"},[e.createVNode(e.unref(X.X),{class:"h-6 w-6"})])]),s[2]||(s[2]=e.createStaticVNode('<div class="space-y-6" data-v-92c21275><div data-v-92c21275><h3 class="text-lg font-medium text-gray-800 mb-3" data-v-92c21275>Markdown Syntax</h3><div class="overflow-x-auto" data-v-92c21275><table class="w-full border-collapse" data-v-92c21275><thead data-v-92c21275><tr class="bg-gray-50" data-v-92c21275><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-92c21275>Element</th><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-92c21275>Example</th></tr></thead><tbody class="text-sm" data-v-92c21275><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Bold</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>**bold text**</code> or <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>__bold text__</code></td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Italics</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>*italic text*</code> or <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>_italic text_</code></td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Strikethrough</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>~strikethrough text~</code></td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Headings</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275># Heading 1</code>, <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>## Heading 2</code>, etc., up to <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>###### Heading 6</code></td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Unordered Lists</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Use an asterisk (*), dash (-), or plus sign (+) followed by a space. </td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Ordered Lists</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Use a number followed by a period and a space (e.g., <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>1. First item</code>). </td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Blockquotes</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Start with a greater-than sign (&gt;) followed by a space. </td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Inline Code</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Surround with backticks (<code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>`</code>). </td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Code Blocks</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Enclose with three backticks (<code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>```</code>) before and after the code. </td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Images</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Use <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>![alt text](url)</code> syntax. </td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Links</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Use <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>[Link Text](url)</code> syntax. </td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Checklists</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Create a list item with <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>- [ ]</code> for an incomplete task or <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>- [x]</code> for a completed one. </td></tr></tbody></table></div></div><div data-v-92c21275><h3 class="text-lg font-medium text-gray-800 mb-3" data-v-92c21275>Common Editing Shortcuts</h3><div class="overflow-x-auto" data-v-92c21275><table class="w-full border-collapse" data-v-92c21275><thead data-v-92c21275><tr class="bg-gray-50" data-v-92c21275><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-92c21275>Shortcut</th><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-92c21275>Action</th></tr></thead><tbody class="text-sm" data-v-92c21275><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+A</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Select all text</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+B</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Apply bold formatting</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+C</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Copy selected text</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+I</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Apply italic formatting</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+K</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Open the insert link dialog</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+S</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Save the current document</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+V</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Paste copied text</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+X</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Cut selected text</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+Y</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Redo the last action</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Alt+Shift+Backspace</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Redo the last action</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+Z</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Undo the last action</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Alt+Backspace</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Undo the last action</td></tr></tbody></table></div></div></div>',1))])])])):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-92c21275"]]),horizontal_rule:{__name:"vs-editor-horizontal-rule",props:{editor:Object},setup(o){const t=o,n=()=>{t.editor&&t.editor.chain().focus().setHorizontalRule().run()};return(r,a)=>(e.openBlock(),e.createElementBlock("button",{title:"Horizontal Rule",onClick:n,class:"flex flex-col h-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex"},[e.createVNode(e.unref(X.Minus),{class:"h-4 w-4"})]))}},fullscreen:{__name:"vs-editor-fullscreen",props:{editor:Object},emits:["toggle-fullscreen"],setup(o,{emit:t}){const n=t,r=()=>{n("toggle-fullscreen")};return(a,l)=>(e.openBlock(),e.createElementBlock("button",{title:"Fullscreen",onClick:r,class:"w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded-full hover:text-gray-900 hover:bg-gray-100"},[e.createVNode(e.unref(X.Maximize),{class:"h-4 w-4"})]))}}},_l={basic:["history","font_family","font_size","bold","italic","underline","strike","text_align","bullet_list","ordered_list","link","image","clear_formatting","help"],default:["history","heading","font_family","font_size","bold","italic","underline","strike","superscript","subscript","color","background_color","highlight","text_align","bullet_list","ordered_list","blockquote","codeblock","table","link","image","horizontal_rule","clear_formatting","fullscreen","help"],full:["history","heading","font_family","font_size","bold","italic","underline","strike","color","background_color","highlight","text_align","bullet_list","ordered_list","blockquote","codeblock","table","link","image","horizontal_rule","superscript","subscript","clear_formatting","fullscreen","help"]},V0={class:"flex align-middle gap-x-0.5 border-b flex-wrap border-b-gray-200 px-[10px] py-[6px] border-solid border-transparent"},S0={class:"editor-body"},$0={key:0,class:"richtext-loading text-sm text-gray-500"},A0={key:1,class:"richtext-error text-sm text-red-600"},N0={class:"html-source-editor"},M0={class:"flex justify-end border-t border-[#e5e7eb] bg-[#f8fafc] px-4 min-h-[38px] items-start overflow-visible"},F0={class:"inline-flex items-stretch -mt-px"},D0=Object.freeze(Object.defineProperty({__proto__:null,default:Object.assign({inheritAttrs:!1},{__name:"vs-richtext",props:e.mergeModels({modelValue:{type:String,default:()=>""},height:{type:String,default:()=>"300px"},format:{type:String,default:()=>"html"},toolbar:{type:[Array,String],default:()=>"default"}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref(null),a=e.ref(null),l=e.shallowRef(null),s=e.ref(!1),i=e.ref(""),c=e.ref(!1),d=e.ref(null),g=e.ref(""),f=e.ref(""),p=e.ref(null),m=e.ref(!1),h=e.ref(!1),{isFullscreen:w,toggleFullscreen:y}=eg(),{t:C}=Fo(),_=e.computed(()=>t.format==="md"?"markdown":"html"),B=e.computed(()=>t.format==="md"?C("form.richtext.markdown"):C("form.richtext.html")),$=e.computed(()=>l.value||null),j=e.computed(()=>typeof t.toolbar=="string"?_l[t.toolbar]||_l.default:t.toolbar),Z=e.computed(()=>j.value.map(F=>B0[F]).filter(Boolean)),I=e.computed(()=>(d.value?.attributes||[]).find(A=>A.name==="class")?.value||""),V=e.computed(()=>{const A=(d.value?.attributes||[]).find(se=>se.name==="style")?.value||"",J={};return A.split(";").forEach(se=>{const[ee,...he]=se.split(":"),xe=ee?.trim(),ye=he.join(":").trim();!xe||!ye||xe!=="height"&&(J[xe.replace(/-([a-z])/g,($e,Le)=>Le.toUpperCase())]=ye)}),J}),S=F=>{const A=(F||"").trim();return A?/^<p(?:\s+[^>]*)?>(?:\s|<br[^>]*>)*<\/p>$/i.test(A):!0},x=F=>S(F)?"":F||"",L=F=>{const A=F||"";p.value=A,n.value=A},U=F=>{if(!F||!F.view||!F.view.dom)return;F.view.dom.querySelectorAll("img.editor-image[width][height]").forEach(J=>{if(J instanceof HTMLImageElement){const se=J.getAttribute("width"),ee=J.getAttribute("height");se&&ee&&se!=="auto"&&ee!=="auto"&&se!==""&&ee!==""&&!isNaN(Number(se))&&!isNaN(Number(ee))&&(J.style.cssText=`
44
44
  width: ${se}px !important;
45
45
  height: ${ee}px !important;
46
46
  max-width: none !important;
@@ -48,4 +48,4 @@ ${c}
48
48
  min-width: auto !important;
49
49
  min-height: auto !important;
50
50
  object-fit: fill !important;
51
- `.replace(/\s+/g," ").trim())}})},ne=async(F,{force:A=!1}={})=>{if(g.value=F||"",!l.value||c.value&&!A)return;x(l.value.getHTML())!==(F||"")&&(l.value.commands.setContent(F||"",!1),e.nextTick(()=>{U(l.value)}))},N=async F=>{h.value=!0,f.value=F||"",await e.nextTick(),h.value=!1},P=async F=>t.format==="html"?Yn(F||""):F||"",q=async()=>{const F=await P(f.value);F!==(n.value||"")?L(F):p.value=F},K=async F=>{const A=F||"";if(t.format==="html"){const J=Yn(A),se=hl(J);d.value=se.wrapper,await ne(se.bodyHtml||""),p.value=J;return}else{d.value=null;const J=await yl(A,t.format);await ne(J||""),c.value&&await N(A)}p.value=A},O=async()=>{if(t.format==="html"){const A=x(l.value?.getHTML()||g.value||""),J=gl(A,d.value);return bl(Yn(J),"html")}const F=x(l.value?.getHTML()||g.value||"");return bl(F,t.format)},Q=async F=>{if(c.value!==F){if(F){m.value=!0,c.value=!0,await N(await O()),e.nextTick(()=>{a.value?.focus?.()});return}if(await q(),t.format==="html"){const A=Yn(f.value||""),J=hl(A);d.value=J.wrapper,await ne(J.bodyHtml||"",{force:!0})}else{const A=await yl(f.value||"",t.format);await ne(A||"",{force:!0})}c.value=!1,m.value=!1,e.nextTick(()=>{l.value?.commands?.focus?.()})}},re=()=>{c.value||l.value?.commands?.focus?.()},T=async()=>{if(!r.value)return null;s.value=!0,i.value="";try{const F=await ug();if(!F)return null;const A=new F.Editor({element:r.value,content:g.value||"",extensions:[F.StarterKit.configure({history:{depth:100,newGroupDelay:500},code:{HTMLAttributes:{class:"editor-code"}},codeBlock:{HTMLAttributes:{class:"editor-codeblock"}},paragraph:!1,heading:!1,link:!1}),F.Superscript,F.Subscript,F.ExtendedTextStyle,F.CustomParagraph,F.CustomHeading,F.Highlight,F.Image.configure({inline:!0,allowBase64:!0,HTMLAttributes:{class:"editor-image"}}),F.TextAlign.configure({types:["heading","paragraph"]}),F.CustomLink.configure({HTMLAttributes:{class:"editor-link"},openOnClick:!1,autolink:!0}),F.CustomTableKit,F.Iframe],editorProps:{handlePaste:(J,se)=>vg(J,se,F.ProseMirrorDOMParser),handleKeyDown:(J,se)=>{if(se.key==="Tab"){const ee=J.state,{$anchor:he}=ee.selection;let xe=!1;for(let ye=he.depth;ye>0;ye--){const $e=he.node(ye);if($e&&($e.type.name==="bulletList"||$e.type.name==="orderedList")){xe=!0;break}}return xe?!1:(se.preventDefault(),!0)}return!1}}});return l.value=e.markRaw(A),l.value.on("update",async({editor:J})=>{if(c.value)return;const se=x(J.getHTML());if(g.value=se,t.format==="html"){const ee=gl(se,d.value);ee!==n.value&&L(ee)}else{const ee=await wg(se,t.format);ee!==n.value&&L(ee)}setTimeout(()=>{U(J)},10)}),e.nextTick(()=>{U(l.value)}),A}catch(F){return i.value="Failed to load rich text editor dependencies.",console.error("Failed to initialize rich text editor",F),null}finally{s.value=!1}};return e.watch(()=>t.modelValue,async F=>{if(m.value)return;const A=F||"";A!==p.value&&await K(A)},{immediate:!0}),e.watch(f,async()=>{!c.value||!m.value||h.value||await q()}),e.onMounted(async()=>{await T(),e.nextTick(()=>{l.value&&setTimeout(()=>{U(l.value)},100)})}),e.onBeforeUnmount(async()=>{c.value&&m.value&&await q(),l.value?.destroy?.(),l.value=null}),(F,A)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["bg-white rounded-md w-full",{"fixed left-0 right-0 top-0 bottom-0 z-[100000]":e.unref(w)}])},[e.createElementVNode("div",V0,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Z.value,J=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:J},[l.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(J),{key:0,editor:$.value,onToggleFullscreen:e.unref(y)},null,40,["editor","onToggleFullscreen"])):e.createCommentVNode("",!0)],64))),128))]),e.createElementVNode("div",{onClick:re,class:"relative w-full px-4 py-2 bg-white rounded-b-lg editor-content",style:e.normalizeStyle({height:e.unref(w)?"calc(95vh - 44px)":o.height})},[e.createElementVNode("div",S0,[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(["rich-text-scroll-wrapper",I.value]),style:e.normalizeStyle(V.value)},[e.createElementVNode("div",{ref_key:"editorElement",ref:r,class:"relative w-full"},null,512),s.value?(e.openBlock(),e.createElementBlock("div",$0,"Loading editor...")):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("div",A0,e.toDisplayString(i.value),1)):e.createCommentVNode("",!0)],6),[[e.vShow,!c.value]]),e.withDirectives(e.createElementVNode("div",N0,[e.createVNode(xo,{ref_key:"htmlTextarea",ref:a,modelValue:f.value,"onUpdate:modelValue":A[0]||(A[0]=J=>f.value=J),height:"100%",syntax:_.value,theme:"vs-light"},null,8,["modelValue","syntax"])],512),[[e.vShow,c.value]])])],4),e.createElementVNode("div",M0,[e.createElementVNode("div",F0,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["min-w-[96px] h-[30px] px-[14px] border border-[#cfd6e0] bg-[#f3f5f8] text-[8px] font-bold uppercase tracking-[0.06em] leading-none cursor-pointer transition-colors duration-200 border-b-[1px] border-b-[#cfd6e0] rounded-none rounded-bl-[8px] hover:bg-[#eef1f5] hover:text-[#667284]",c.value?"text-[#8f99aa]":"!bg-white text-[#49556a] border-[#cfd6e0] border-t-transparent relative z-[1]"]),onClick:A[1]||(A[1]=J=>Q(!1))},e.toDisplayString(e.unref(C)("form.richtext.editor")),3),e.createElementVNode("button",{type:"button",class:e.normalizeClass(["min-w-[96px] h-[30px] px-[14px] border border-[#cfd6e0] border-l-0 bg-[#f3f5f8] text-[8px] font-bold uppercase tracking-[0.06em] leading-none cursor-pointer transition-colors duration-200 border-b-[1px] border-b-[#cfd6e0] rounded-none rounded-br-[8px] hover:bg-[#eef1f5] hover:text-[#667284]",c.value?"!bg-white text-[#49556a] border-[#cfd6e0] border-t-transparent relative z-[1]":"text-[#8f99aa]"]),onClick:A[2]||(A[2]=J=>Q(!0))},e.toDisplayString(B.value),3)])])],2))}})},Symbol.toStringTag,{value:"Module"}));ve.ModalEdit=qr,ve.VForm=pt,ve.VsInputAddress=Rr,ve.VsInputArray=Pr,ve.VsInputArraySelect=Rn,ve.VsInputCheckbox=Xo,ve.VsInputCodegen=Dr,ve.VsInputColor=Ir,ve.VsInputContainer=gr,ve.VsInputDate=rr,ve.VsInputEmail=so,ve.VsInputFile=mr,ve.VsInputFile2=Nn,ve.VsInputFileList=fr,ve.VsInputInlineSelect=Fn,ve.VsInputKeyValue=Tr,ve.VsInputMask=xn,ve.VsInputMonaco=xo,ve.VsInputNumber=Wo,ve.VsInputRadio=co,ve.VsInputRange=Or,ve.VsInputRichtext=wr,ve.VsInputSelect=go,ve.VsInputSlug=Fr,ve.VsInputStatic=ao,ve.VsInputSwitcher=lo,ve.VsInputTag=Mr,ve.VsInputTel=io,ve.VsInputText=Ht,ve.VsInputTextArray=Lr,ve.VsInputTextarea=kr,ve.default=pt,ve.hasMapLayerPreset=qo,ve.inputs=zr,ve.resolveMapLayerPreset=kn,ve.richtextLocaleEn=Kr,ve.richtextLocaleUk=Wr,ve.richtextMessages=_o,ve.vsInputDatatable=xr,ve.vsInputMap=Nr,Object.defineProperties(ve,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
51
+ `.replace(/\s+/g," ").trim())}})},ne=async(F,{force:A=!1}={})=>{if(g.value=F||"",!l.value||c.value&&!A)return;x(l.value.getHTML())!==(F||"")&&(l.value.commands.setContent(F||"",!1),e.nextTick(()=>{U(l.value)}))},N=async F=>{h.value=!0,f.value=F||"",await e.nextTick(),h.value=!1},P=async F=>t.format==="html"?Yn(F||""):F||"",q=async()=>{const F=await P(f.value);F!==(n.value||"")?L(F):p.value=F},K=async F=>{const A=F||"";if(t.format==="html"){const J=Yn(A),se=hl(J);d.value=se.wrapper,await ne(se.bodyHtml||""),p.value=J;return}else{d.value=null;const J=await yl(A,t.format);await ne(J||""),c.value&&await N(A)}p.value=A},O=async()=>{if(t.format==="html"){const A=x(l.value?.getHTML()||g.value||""),J=gl(A,d.value);return bl(Yn(J),"html")}const F=x(l.value?.getHTML()||g.value||"");return bl(F,t.format)},Q=async F=>{if(c.value!==F){if(F){m.value=!0,c.value=!0,await N(await O()),e.nextTick(()=>{a.value?.focus?.()});return}if(await q(),t.format==="html"){const A=Yn(f.value||""),J=hl(A);d.value=J.wrapper,await ne(J.bodyHtml||"",{force:!0})}else{const A=await yl(f.value||"",t.format);await ne(A||"",{force:!0})}c.value=!1,m.value=!1,e.nextTick(()=>{l.value?.commands?.focus?.()})}},re=()=>{c.value||l.value?.commands?.focus?.()},T=async()=>{if(!r.value)return null;s.value=!0,i.value="";try{const F=await ug();if(!F)return null;const A=new F.Editor({element:r.value,content:g.value||"",extensions:[F.StarterKit.configure({history:{depth:100,newGroupDelay:500},code:{HTMLAttributes:{class:"editor-code"}},codeBlock:{HTMLAttributes:{class:"editor-codeblock"}},paragraph:!1,heading:!1,link:!1}),F.Superscript,F.Subscript,F.ExtendedTextStyle,F.CustomParagraph,F.CustomHeading,F.Highlight,F.Image.configure({inline:!0,allowBase64:!0,HTMLAttributes:{class:"editor-image"}}),F.TextAlign.configure({types:["heading","paragraph"]}),F.CustomLink.configure({HTMLAttributes:{class:"editor-link"},openOnClick:!1,autolink:!0}),F.CustomTableKit,F.Iframe],editorProps:{handlePaste:(J,se)=>vg(J,se,F.ProseMirrorDOMParser),handleKeyDown:(J,se)=>{if(se.key==="Tab"){const ee=J.state,{$anchor:he}=ee.selection;let xe=!1;for(let ye=he.depth;ye>0;ye--){const $e=he.node(ye);if($e&&($e.type.name==="bulletList"||$e.type.name==="orderedList")){xe=!0;break}}return xe?!1:(se.preventDefault(),!0)}return!1}}});return l.value=e.markRaw(A),l.value.on("update",async({editor:J})=>{if(c.value)return;const se=x(J.getHTML());if(g.value=se,t.format==="html"){const ee=gl(se,d.value);ee!==n.value&&L(ee)}else{const ee=await wg(se,t.format);ee!==n.value&&L(ee)}setTimeout(()=>{U(J)},10)}),e.nextTick(()=>{U(l.value)}),A}catch(F){return i.value="Failed to load rich text editor dependencies.",console.error("Failed to initialize rich text editor",F),null}finally{s.value=!1}};return e.watch(()=>t.modelValue,async F=>{if(m.value)return;const A=F||"";A!==p.value&&await K(A)},{immediate:!0}),e.watch(f,async()=>{!c.value||!m.value||h.value||await q()}),e.onMounted(async()=>{await T(),e.nextTick(()=>{l.value&&setTimeout(()=>{U(l.value)},100)})}),e.onBeforeUnmount(async()=>{c.value&&m.value&&await q(),l.value?.destroy?.(),l.value=null}),(F,A)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["bg-white rounded-md w-full",{"fixed left-0 right-0 top-0 bottom-0 z-[100000]":e.unref(w)}])},[e.createElementVNode("div",V0,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Z.value,J=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:J},[l.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(J),{key:0,editor:$.value,onToggleFullscreen:e.unref(y)},null,40,["editor","onToggleFullscreen"])):e.createCommentVNode("",!0)],64))),128))]),e.createElementVNode("div",{onClick:re,class:"relative w-full px-4 py-2 bg-white rounded-b-lg editor-content",style:e.normalizeStyle({height:e.unref(w)?"calc(95vh - 44px)":o.height})},[e.createElementVNode("div",S0,[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(["rich-text-scroll-wrapper",I.value]),style:e.normalizeStyle(V.value)},[e.createElementVNode("div",{ref_key:"editorElement",ref:r,class:"relative w-full"},null,512),s.value?(e.openBlock(),e.createElementBlock("div",$0,"Loading editor...")):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("div",A0,e.toDisplayString(i.value),1)):e.createCommentVNode("",!0)],6),[[e.vShow,!c.value]]),e.withDirectives(e.createElementVNode("div",N0,[e.createVNode(xo,{ref_key:"htmlTextarea",ref:a,modelValue:f.value,"onUpdate:modelValue":A[0]||(A[0]=J=>f.value=J),height:"100%",syntax:_.value,theme:"vs-light"},null,8,["modelValue","syntax"])],512),[[e.vShow,c.value]])])],4),e.createElementVNode("div",M0,[e.createElementVNode("div",F0,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["min-w-[96px] h-[30px] px-[14px] border border-[#cfd6e0] bg-[#f3f5f8] text-[8px] font-bold uppercase tracking-[0.06em] leading-none cursor-pointer transition-colors duration-200 border-b-[1px] border-b-[#cfd6e0] rounded-none rounded-bl-[8px] hover:bg-[#eef1f5] hover:text-[#667284]",c.value?"text-[#8f99aa]":"!bg-white text-[#49556a] border-[#cfd6e0] border-t-transparent relative z-[1]"]),onClick:A[1]||(A[1]=J=>Q(!1))},e.toDisplayString(e.unref(C)("form.richtext.editor")),3),e.createElementVNode("button",{type:"button",class:e.normalizeClass(["min-w-[96px] h-[30px] px-[14px] border border-[#cfd6e0] border-l-0 bg-[#f3f5f8] text-[8px] font-bold uppercase tracking-[0.06em] leading-none cursor-pointer transition-colors duration-200 border-b-[1px] border-b-[#cfd6e0] rounded-none rounded-br-[8px] hover:bg-[#eef1f5] hover:text-[#667284]",c.value?"!bg-white text-[#49556a] border-[#cfd6e0] border-t-transparent relative z-[1]":"text-[#8f99aa]"]),onClick:A[2]||(A[2]=J=>Q(!0))},e.toDisplayString(B.value),3)])])],2))}})},Symbol.toStringTag,{value:"Module"}));ve.ModalEdit=qr,ve.VForm=pt,ve.VsInputAddress=Rr,ve.VsInputArray=Pr,ve.VsInputArraySelect=Rn,ve.VsInputCheckbox=Xo,ve.VsInputCodegen=Dr,ve.VsInputColor=Ir,ve.VsInputContainer=gr,ve.VsInputDate=rr,ve.VsInputEmail=so,ve.VsInputFile=mr,ve.VsInputFile2=Nn,ve.VsInputFileList=fr,ve.VsInputInlineSelect=Fn,ve.VsInputKeyValue=Tr,ve.VsInputMask=xn,ve.VsInputMonaco=xo,ve.VsInputNumber=Wo,ve.VsInputRadio=co,ve.VsInputRange=Or,ve.VsInputRichtext=wr,ve.VsInputSelect=go,ve.VsInputSlug=Fr,ve.VsInputStatic=ao,ve.VsInputSwitcher=lo,ve.VsInputTag=Mr,ve.VsInputTel=io,ve.VsInputText=Ht,ve.VsInputTextArray=Lr,ve.VsInputTextarea=kr,ve.default=pt,ve.hasMapLayerPreset=qo,ve.inputs=zr,ve.resolveMapLayerPreset=kn,ve.richtextLocaleEn=Kr,ve.richtextLocaleUk=Wr,ve.richtextMessages=_o,ve.vsInputDatatable=xr,ve.vsInputMap=Nr,Object.defineProperties(ve,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));