@opengis/form 0.0.187 → 0.0.189

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  (function(we,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):(we=typeof globalThis<"u"?globalThis:we||self,e(we.FormBuilder={},we.Vue,we.OpenGISCore,we.lucide))})(this,(function(we,e,ke,J){"use strict";function kn(n,t,o){if(!Array.isArray(o)||!o.length)return null;const r=String(n?.preset??n?.renderer??"").trim().toLowerCase();if(r){const l=o.find(a=>String(a.id).trim().toLowerCase()===r);if(l)return l}return o.find(l=>typeof l.match=="function"&&l.match(n,t))??null}function Ho(n,t,o){return!!kn(n,t,o)}const qo=e.defineComponent({__name:"vs-info-tooltip",props:{text:{}},setup(n){const t=n,o=e.ref(!1),r=e.ref({top:"0px",left:"0px"});function l(s){if(!t.text)return;const c=s.currentTarget.getBoundingClientRect();r.value={top:`${c.bottom+4}px`,left:`${Math.min(c.left,window.innerWidth-230)}px`},o.value=!0}function a(){o.value=!1}return(s,c)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("span",{class:"inline-flex items-center",onMouseenter:l,onMouseleave:a},[e.renderSlot(s.$slots,"default",{},()=>[e.createVNode(e.unref(J.Info),{class:"h-4 w-4 text-gray-400 cursor-help"})])],32),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[o.value&&n.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(n.text),5)):e.createCommentVNode("",!0)]))],64))}}),Qn={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"}}},eo={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:"Скасувати"}}},Rl={class:"w-full relative"},zl={key:0,class:"text-[14px] font-medium text-gray-900 mb-2 flex items-center gap-1"},jl={class:"opacity-100"},Ul={key:0,class:"text-red-500 text-[14px]"},Hl={key:2,class:"text-[11px] text-slate-500 font-normal"},ql={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Kl=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(n){const t=n,o=e.computed(()=>typeof t.item?.label=="string"&&t.item.label?t.item.label:t.item?.ua||t.label||t.ua),r=e.computed(()=>!!o.value),l=e.computed(()=>!!t.item?.rules?.includes("required")),a=e.computed(()=>t.item?.info||""),s=e.inject("schema-by-name"),c={en:Qn?.form?.autofillFrom,uk:eo?.form?.autofillFrom},i=e.computed(()=>{const d=t.item?.__autoMeta;if(!d||d?.source!=="parent-auto"||!d?.parentField)return"";const h=String(t.item?.__locale||"uk"),p=String(d.parentField),g=s?.value?.[p],y=g?.[`label:${h}`]||(h!=="uk"?g?.[h]:void 0)||g?.label||g?.ua||g?.en||p;return`${c[h]||c.uk}: ${y}`});return(d,h)=>(e.openBlock(),e.createElementBlock("div",Rl,[r.value?(e.openBlock(),e.createElementBlock("div",zl,[e.createElementVNode("span",jl,e.toDisplayString(o.value),1),l.value?(e.openBlock(),e.createElementBlock("span",Ul,"*")):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createBlock(qo,{key:1,text:a.value},null,8,["text"])):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("span",Hl," ("+e.toDisplayString(i.value)+") ",1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(d.$slots,"default",e.mergeProps(d.$attrs,{class:{"opacity-60":n.item.disabled}})),n.error?(e.openBlock(),e.createElementBlock("span",ql,e.toDisplayString(n.error),1)):e.createCommentVNode("",!0)]))}}),Wl={class:"w-full relative flex flex-row items-center gap-2"},Gl={key:0,class:"text-red-500 text-[14px]"},Yl={key:2,class:"text-[11px] text-slate-500 font-normal"},Xl={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Zl=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(n){const t=n,o=e.computed(()=>t.item?.label||t.label||t.ua),r=e.computed(()=>t.item?.info||""),l=e.inject("schema-by-name"),a={en:Qn?.form?.autofillFrom,uk:eo?.form?.autofillFrom},s=e.computed(()=>{const g=t.item?.__autoMeta;if(!g||g?.source!=="parent-auto"||!g?.parentField)return"";const y=String(t.item?.__locale||"uk"),m=String(g.parentField),x=l?.value?.[m],f=x?.[`label:${y}`]||(y!=="uk"?x?.[y]:void 0)||x?.label||x?.ua||x?.en||m;return`${a[y]||a.uk}: ${f}`}),c=e.computed(()=>t.columns??{container:12,label:3}),i=e.computed(()=>{const{container:g,label:y}=c.value;return!g||g<=0?0:Math.min(Math.max(y??0,0),g)/g}),d=e.computed(()=>t.item?.type==="html"||i.value<=0?!1:!!o.value),h=e.computed(()=>{if(!d.value)return{};const g=`${i.value*100}%`;return{flexBasis:g,maxWidth:g}}),p=e.computed(()=>{const{container:g,label:y}=c.value;if(!g||g<=0)return{};if(t.item?.type==="html")return{flexBasis:"100%",maxWidth:"100%"};if(!d.value)return{flexBasis:"100%",maxWidth:"100%"};const m=Math.max(g-Math.max(y??0,0),0)/g;if(!m)return{};const x=`${m*100}%`;return{flexBasis:x,maxWidth:x}});return(g,y)=>(e.openBlock(),e.createElementBlock("div",Wl,[d.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"text-sm text-gray-900 font-medium flex shrink-0 items-center gap-1",style:e.normalizeStyle(h.value)},[e.createTextVNode(e.toDisplayString(o.value)+" ",1),n.item?.rules?.includes("required")&&o.value?(e.openBlock(),e.createElementBlock("span",Gl,"*")):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createBlock(qo,{key:1,text:r.value},null,8,["text"])):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock("span",Yl," ("+e.toDisplayString(s.value)+") ",1)):e.createCommentVNode("",!0)],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"flex-1 min-w-0",style:e.normalizeStyle(p.value)},[e.renderSlot(g.$slots,"default",e.normalizeProps(e.guardReactiveProps(g.$attrs)))],4),n.error?(e.openBlock(),e.createElementBlock("span",Xl,e.toDisplayString(n.error),1)):e.createCommentVNode("",!0)]))}}),Jl={class:"w-full relative"},Ql={key:0,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},ea=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(n){return(t,o)=>(e.openBlock(),e.createElementBlock("div",Jl,[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(t.$attrs))),n.error?(e.openBlock(),e.createElementBlock("span",Ql,e.toDisplayString(n.error),1)):e.createCommentVNode("",!0)]))}}),ta={class:"flex-1 min-w-0"},na={key:0,class:"text-sm font-medium text-slate-700 dark:text-slate-200 flex items-center gap-1"},oa={class:"truncate"},ra={key:0,class:"text-red-500 text-[14px]"},la=["innerHTML"],aa={key:0,class:"mt-1 text-xs text-red-500"},sa={default:Kl,horizontal:Zl,inline:ea,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(n){const t=n,o=e.ref("uk");e.computed(()=>(t.item??{})?.[o.value]??t.ua??t.label??"");const r=e.computed(()=>t.item?.description??""),l=e.computed(()=>Array.isArray(t.item?.rules)&&t.item.rules.includes("required")),a=e.computed(()=>(typeof t.error=="string"?t.error:"")??""),s=()=>{const c=typeof localStorage<"u"?localStorage.getItem("locale"):null;o.value=c||"uk"};return e.onMounted(()=>{try{typeof localStorage<"u"&&localStorage.locale&&(o.value=localStorage.locale)}catch{}window.addEventListener("storage",s)}),e.onUnmounted(()=>{window.removeEventListener("storage",s)}),(c,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["w-full relative",{"opacity-60":n.item?.disabled}])},[e.createElementVNode("div",{class:e.normalizeClass(["gap-2 md:flex-row md:items-center md:justify-between",[["switcher","native-select"].includes(n.item.type)?"flex flex-col":""]])},[e.createElementVNode("div",ta,[n.ua||n.label?(e.openBlock(),e.createElementBlock("p",na,[e.createElementVNode("span",oa,e.toDisplayString(n.item[o.value]||n.ua||n.label),1),l.value?(e.openBlock(),e.createElementBlock("span",ra,"*")):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,la)):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:e.normalizeClass(["w-full",["select","native-select"].includes(n.item.type)?"md:w-[30%]":"md:w-auto"])},[e.renderSlot(c.$slots,"default",e.normalizeProps(e.guardReactiveProps(c.$attrs)))],2)],2),a.value?(e.openBlock(),e.createElementBlock("p",aa,e.toDisplayString(a.value),1)):e.createCommentVNode("",!0)],2))}})};function Je(n){return{inputClass:e.computed(()=>{const o=`disabled:opacity-50 disabled:cursor-not-allowed outline-none focus:ring-2 focus:ring-ring focus:ring-${n?.primaryColor||"blue"}-500 border border-solid border-stone-200 rounded-md text-sm text-stone-800 placeholder:text-stone-400 `;return n?.size==="sm"?`${o}h-[32px]`:`${o}h-[38px]`})}}const ia=["placeholder","disabled"],ca=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(n){const t=n,{inputClass:o}=Je(t.style),r=e.useModel(n,"modelValue"),l=e.computed(()=>!!t.disabled),a=e.computed(()=>t.placeholder??"");return(s,c)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"password","onUpdate:modelValue":c[0]||(c[0]=i=>r.value=i),placeholder:a.value,disabled:l.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(o),{"!border-red-600":n.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,ia)),[[e.vModelText,r.value]])}}),da=["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(n){const t=n,{inputClass:o}=Je(t.style),r=e.useModel(n,"modelValue"),l=e.computed(()=>!!t.disabled),a=e.computed(()=>t.placeholder??""),s=e.computed(()=>t.maxlength??void 0),c=e.computed(()=>t.minlength??void 0);function i(){typeof r.value=="string"&&(r.value=r.value.trim())}return(d,h)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"text","onUpdate:modelValue":h[0]||(h[0]=p=>r.value=p),placeholder:a.value,disabled:l.value,maxlength:s.value,minlength:c.value,onBlur:i,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[n.customClass,e.unref(o),{"!border-red-600":n.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,da)),[[e.vModelText,r.value]])}}),ua=["step","placeholder","disabled","min","max"],Ko=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(n){const t=n,{inputClass:o}=Je(t.style),r=e.useAttrs(),l=e.useModel(n,"modelValue"),a=e.computed(()=>!!t.disabled),s=h=>{if(h==null||h==="")return;const p=typeof h=="string"?h.trim().replace(",","."):h,g=Number(p);return Number.isFinite(g)?g:void 0},c=e.computed(()=>s(t.min??r.min)),i=e.computed(()=>s(t.max??r.max)),d=e.computed(()=>{if(t.step!==void 0&&t.step!==null&&t.step!=="")return t.step;const h=r.step;return typeof h=="number"||typeof h=="string"?h:"any"});return(h,p)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"number",step:d.value,"onUpdate:modelValue":p[0]||(p[0]=g=>l.value=g),placeholder:n.placeholder,disabled:a.value,class:e.normalizeClass(["py-1.5 px-3 block w-full bg-white",[e.unref(o)]]),style:{border:"1px solid #CFD9E0"},min:c.value,max:i.value},null,10,ua)),[[e.vModelText,l.value]])}}),xn=n=>!!String(n??"").trim(),Nt=n=>n?.color?String(n.color):"",Zt=n=>{const t=n?.icon;if(typeof t=="string")return t;const o=n?.imgUrl;return typeof o=="string"?o:""},Jt=n=>{const t=n?.icon;return t&&typeof t!="string"?t:null},pa={class:"flex items-center gap-[4px]"},ma=["value","id","disabled"],fa=["for"],ha=["innerHTML"],ga={key:1,class:"text-[14px] text-gray-700 flex items-center gap-2 dark:text-neutral-400"},ya=["src"],ba=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(n,{emit:t}){const o=t,r=n,l=e.computed({get:()=>r.modelValue,set:y=>o("update:modelValue",y)}),a=e.computed(()=>!!r.disabled),s=e.computed(()=>Zt(r.option)),c=e.computed(()=>Jt(r.option)),i=e.computed(()=>Nt(r.option)),d=e.computed(()=>!!(i.value&&!s.value&&!c.value)),h=e.computed(()=>!!(s.value&&i.value)),p=e.computed(()=>i.value?{color:i.value}:void 0),g=e.computed(()=>{if(!(!s.value||!i.value))return{backgroundColor:i.value,WebkitMaskImage:`url(${s.value})`,maskImage:`url(${s.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(y,m)=>(e.openBlock(),e.createElementBlock("div",pa,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",value:n.value,"onUpdate:modelValue":m[0]||(m[0]=x=>l.value=x),class:e.normalizeClass(["shrink-0 border border-solid hidden border-gray-700 w-3.5 h-3.5 rounded text-blue-600 focus:ring-offset-0 dark:bg-neutral-800 dark:border-neutral-700 cursor-pointer",{"!cursor-not-allowed":a.value}]),id:n.id,disabled:a.value},null,10,ma),[[e.vModelCheckbox,l.value]]),e.createElementVNode("label",{for:n.id,class:e.normalizeClass(["flex flex-1 checkbox-label items-center gap-x-2 cursor-pointer text-sm text-gray-800 dark:text-neutral-300",{"!cursor-not-allowed":a.value}])},[e.createElementVNode("div",{class:e.normalizeClass(["h-[16px] text-white w-[16px] flex items-center justify-center shrink-0 border rounded",[l.value?"bg-blue-600 border-blue-600":"bg-white border-gray-600",n.error?"border-red-600":""]])},[e.createVNode(e.unref(J.Check),{class:"h-4 w-4"})],2),n.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:n.html},null,8,ha)):(e.openBlock(),e.createElementBlock("span",ga,[d.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:i.value})},null,4)):e.createCommentVNode("",!0),h.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(g.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,ya)):c.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(c.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(p.value)},null,8,["style"])):e.createCommentVNode("",!0),e.renderSlot(y.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(n.label),1)])]))],10,fa)]))}}),ka=["name","value","disabled"],xa=["innerHTML"],wa={key:1,class:"flex items-center gap-[6px] text-[14px]"},va={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(n,{emit:t}){const o=n,r=t,l=e.computed({get:()=>o.modelValue,set:x=>{r("update:modelValue",x)}}),a=e.computed(()=>Array.isArray(l.value)?l.value.includes(o.value):l.value===!0||l.value===o.value),s=e.computed(()=>o.style?.size==="xs"?"p-1.5 text-xs":o.style?.size==="lg"?"p-3.5 text-[20px]":"p-2.5 text-xs"),c=e.computed(()=>({...o.option??{},icon:o.option?.icon??o.icon,imgUrl:o.option?.imgUrl??o.imgUrl,color:o.option?.color})),i=e.computed(()=>Zt(c.value)),d=e.computed(()=>Jt(c.value)),h=e.computed(()=>Nt(c.value)),p=e.computed(()=>!!(h.value&&!i.value&&!d.value)),g=e.computed(()=>!!(i.value&&h.value)),y=e.computed(()=>h.value?{color:h.value}:void 0),m=e.computed(()=>{if(!(!i.value||!h.value))return{backgroundColor:h.value,WebkitMaskImage:`url(${i.value})`,maskImage:`url(${i.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(x,f)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["group relative flex justify-center items-center gap-x-3 text-center bg-white text-gray-800 ring-ring ring-2 cursor-pointer rounded-lg",[s.value,a.value?"ring-blue-500":"border border-gray-200 ring-transparent"]])},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",class:"hidden",name:n.id,value:n.value,"onUpdate:modelValue":f[0]||(f[0]=E=>l.value=E),disabled:n.disabled},null,8,ka),[[e.vModelCheckbox,l.value]]),n.html?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-full",innerHTML:n.html},null,8,xa)):(e.openBlock(),e.createElementBlock("span",wa,[p.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:h.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(m.value)},null,4)):i.value||d.value?(e.openBlock(),e.createElementBlock("span",va,[i.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:i.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(y.value)},null,8,["style"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(x.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(n.label),1)])]))],2))}}),_a={class:"flex items-center"},to=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(n,{emit:t}){const o=n,r=t,l=`radio-${Math.floor(Math.random()*1e4)}`,a=e.computed({get:()=>Array.isArray(o.modelValue)?Array.isArray(o.modelValue)&&o.modelValue.includes(o.value):o.modelValue,set:c=>{if(Array.isArray(o.modelValue)){let i=[...o.modelValue];c?i.includes(o.value)||i.push(o.value):i=i.filter(d=>d!==o.value),r("update:modelValue",i)}else r("update:modelValue",c)}}),s=e.ref(`vs-checkbox-${o.view||"default"}`);return(c,i)=>(e.openBlock(),e.createElementBlock("div",_a,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value==="vs-checkbox-buttons"?e.unref(Ea):e.unref(ba)),{value:n.value,label:n.label,html:n.labelHtml,info:n.option?.info,disabled:n.disabled,modelValue:a.value,"onUpdate:modelValue":i[0]||(i[0]=d=>a.value=d),id:l,icon:n.icon,imgUrl:n.imgUrl,option:n.option,style:e.normalizeStyle(n.style),error:n.error},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.label),1)]),_:1},8,["value","label","html","info","disabled","modelValue","icon","imgUrl","option","style","error"]))]))}}),Ba={key:0,class:"flex items-start gap-x-1"},Va={key:0,class:"text-red-500 text-[14px]"},Sa=["title"],$a=["disabled"],no=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(n){const t=n,o=e.useModel(n,"modelValue");return(r,l)=>t.view==="checkbox"?(e.openBlock(),e.createElementBlock("div",Ba,[e.createVNode(to,{modelValue:o.value,"onUpdate:modelValue":l[0]||(l[0]=a=>o.value=a),error:n.error||""},null,8,["modelValue","error"]),n.rules?.includes("required")?(e.openBlock(),e.createElementBlock("span",Va,"*")):e.createCommentVNode("",!0),n.i?(e.openBlock(),e.createElementBlock("button",{key:1,class:"cursor-pointer",title:n.i,onClick:l[1]||(l[1]=e.withModifiers(()=>{},["prevent"]))},[e.createVNode(e.unref(J.Info),{class:"h-4 w-4 text-gray-500"})],8,Sa)):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",[o.value?`bg-${n.style?.primaryColor||"blue"}-500`:"bg-stone-200",n.customClass]]),disabled:n.disabled,onClick:l[2]||(l[2]=a=>o.value=!o.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",[o.value?"translate-x-4":"translate-x-0"]])},null,2)],10,$a))}}),Aa=["id","innerHTML"],oo=e.defineComponent({__name:"vs-input-static",props:{text:{default:""},html:{default:""},style:{},customClass:{default:""},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},setup(n){return(t,o)=>(e.openBlock(),e.createElementBlock("div",{id:n.name,class:e.normalizeClass(["text-gray-900",n.customClass]),innerHTML:n.html?n.html:n.text},null,10,Aa))}}),Na=["placeholder","disabled","name"],wn=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(n){const t=n,{inputClass:o}=Je(t.style),r=e.useModel(n,"modelValue"),l=e.ref(null);let a=null;function s(c){const i=c==null?"":String(c),d={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},h=new Set;let p=!1;for(let y=0;y<i.length;y+=1){const m=i[y];m==="{"?p=!0:m==="}"?p=!1:p&&h.add(m)}const g={};return Object.keys(d).forEach(y=>{h.has(y)||(g[y]=d[y])}),{mask:i,definitions:g,lazy:!1}}return e.onMounted(async()=>{if(l.value){const{default:c}=await Promise.resolve().then(()=>Wn),i=s(t.mask||"");a=c(l.value,i),a.on("accept",()=>{r.value=t.unmask?a.unmaskedValue:a.value}),a.on("complete",()=>{r.value=t.unmask?a.unmaskedValue:a.value}),a.value=r.value!=null?String(r.value):""}}),e.onBeforeUnmount(()=>{a?.destroy()}),e.watch(()=>t.mask,c=>{if(a){const i=s(c||"");a.updateOptions(i)}}),e.watch(r,c=>{a&&a.unmaskedValue!==c&&(a.value=c!=null?String(c):"")}),(c,i)=>(e.openBlock(),e.createElementBlock("input",{type:"text",ref_key:"inputEl",ref:l,placeholder:n.placeholder,disabled:n.disabled,name:n.name,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(o)]]),style:{border:"1px solid #CFD9E0"}},null,10,Na))}}),Ma={class:"relative w-full bg-white rounded-lg"},Fa={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},Da=["placeholder","disabled"],ro=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(n){const t=n,{inputClass:o}=Je(t.style),r=e.useModel(n,"modelValue");return(l,a)=>(e.openBlock(),e.createElementBlock("div",Ma,[e.createElementVNode("div",Fa,[e.createVNode(e.unref(J.Mail),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.withDirectives(e.createElementVNode("input",{type:"email","onUpdate:modelValue":a[0]||(a[0]=s=>r.value=s),placeholder:n.placeholder,disabled:n.disabled,class:e.normalizeClass(["!pl-8 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(o),{"!border-red-600":n.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Da),[[e.vModelText,r.value]])]))}}),Ct="+99(999)-999-99-99";function Mt(n){if(!n?.trim())return 0;const t=new Set(["9","0","a","A","*"]);let o=!1,r=0;for(let l=0;l<n.length;l+=1){const a=n[l];if(a==="{"){o=!0;continue}if(a==="}"){o=!1;continue}!o&&t.has(a)&&(r+=1)}return r}const Ta={class:"relative w-full bg-white rounded-lg"},La={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] pointer-events-none"},Ia=["name","placeholder","disabled","pattern"],lo=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:Ct}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const t=n,o=e.computed(()=>`^\\+[1-9]\\d{${(Mt(t.mask||Ct)||Mt(Ct))-1}}$`),{inputClass:r}=Je(t.style),l=e.useModel(n,"modelValue"),a=e.ref(null);let s=null;function c(h){const p={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},g=new Set;let y=!1;for(let x=0;x<h.length;x+=1){const f=h[x];f==="{"?y=!0:f==="}"?y=!1:y&&g.add(f)}const m={};return Object.keys(p).forEach(x=>{g.has(x)||(m[x]=p[x])}),{mask:h,definitions:m,lazy:!1,disabled:t.disabled}}function i(h){if(h==null||h==="")return"";const p=String(h).trim();return p?p.replace(/\D/g,""):""}function d(){if(!s)return;const h=s.unmaskedValue??"";l.value=h?`+${h}`:""}return e.onMounted(async()=>{if(!a.value)return;const{default:h}=await Promise.resolve().then(()=>Wn),p=c(t.mask||"");s=h(a.value,p),s.on("accept",d),s.on("complete",d);const g=i(l.value);s.unmaskedValue=g}),e.onBeforeUnmount(()=>{s?.destroy(),s=null}),e.watch(()=>t.mask,h=>{s&&s.updateOptions(c(h||""))}),e.watch(()=>t.disabled,h=>{s&&s.updateOptions({disabled:h})}),e.watch(l,h=>{if(!s)return;const p=i(h);s.unmaskedValue!==p&&(s.unmaskedValue=p)}),(h,p)=>(e.openBlock(),e.createElementBlock("div",Ta,[e.createElementVNode("div",La,[e.createVNode(e.unref(J.Phone),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.createElementVNode("input",{ref_key:"inputEl",ref:a,type:"tel",name:n.name,placeholder:n.placeholder,disabled:n.disabled,pattern:o.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":n.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Ia)]))}}),Oa=["value","disabled"],Pa=["innerHTML"],Ra={key:1,class:"flex items-center gap-2"},za=["src"],ja={class:"text-[13px] text-gray-700"},Ua=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(n){const t=n,o=e.useModel(n,"modelValue"),r=e.computed(()=>!!t.disabled),l=e.computed(()=>Zt(t.option)),a=e.computed(()=>Jt(t.option)),s=e.computed(()=>Nt(t.option)),c=e.computed(()=>!!(s.value&&!l.value&&!a.value)),i=e.computed(()=>!!(l.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),h=e.computed(()=>{if(!(!l.value||!s.value))return{backgroundColor:s.value,WebkitMaskImage:`url(${l.value})`,maskImage:`url(${l.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(p,g)=>(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":g[0]||(g[0]=y=>o.value=y),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,Oa),[[e.vModelRadio,o.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":""]])},[o.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,Pa)):(e.openBlock(),e.createElementBlock("div",Ra,[c.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:s.value})},null,4)):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(h.value)},null,4)):l.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:l.value,alt:"icon"},null,8,za)):a.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(d.value)},null,8,["style"])):e.createCommentVNode("",!0),e.createElementVNode("span",ja,e.toDisplayString(t.text),1)]))],2))}}),Ha=["value","disabled"],qa=["innerHTML"],Ka={key:1,class:"flex items-center gap-2"},Wa=["src"],Ga={class:"text-[13px] text-gray-700"},Ya={"vs-input-radio-default":Ua,"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(n){const t=n,o=e.useModel(n,"modelValue"),r=e.computed(()=>!!t.disabled),l=e.computed(()=>Zt(t.option)),a=e.computed(()=>Jt(t.option)),s=e.computed(()=>Nt(t.option)),c=e.computed(()=>!!(s.value&&!l.value&&!a.value)),i=e.computed(()=>!!(l.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),h=e.computed(()=>{if(!(!l.value||!s.value))return{backgroundColor:s.value,WebkitMaskImage:`url(${l.value})`,maskImage:`url(${l.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(p,g)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex h-full w-full items-center border rounded-lg px-2 py-1",[o.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":g[0]||(g[0]=y=>o.value=y),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,Ha),[[e.vModelRadio,o.value]]),t.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:t.html},null,8,qa)):(e.openBlock(),e.createElementBlock("div",Ka,[c.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:s.value})},null,4)):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(h.value)},null,4)):l.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:l.value,alt:"icon"},null,8,Wa)):a.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(d.value)},null,8,["style"])):e.createCommentVNode("",!0),e.createElementVNode("span",Ga,e.toDisplayString(t.text),1)]))],2))}})},Wo=n=>Array.isArray(n)?n:Array.isArray(n?.data)?n.data:[],Go=n=>{const t=n.host??"",o=n.prefix??"api",r=n.api??`/${o}/suggest/${n.data}`;return`${t}${r}`},Xa=n=>({fetchOptions:async(r="")=>{const l=n();if(!l.data)return l.options?[...l.options]:[];try{const a=new URLSearchParams;a.set("json","1"),r&&a.set("key",r),l.parentValue!==void 0&&l.parentValue!==null&&l.parentValue!==""&&a.set("parent",String(l.parentValue)),l.start===1&&a.set("start","1");const c=await(await fetch(`${Go(l)}?${a.toString()}`)).json();return Wo(c)}catch{return[]}},fetchOptionByValue:async r=>{if(r==null||r==="")return null;const l=n();if(!l.data)return(l.options??[]).find(s=>s?.id?.toString()===String(r))??null;try{const a=new URLSearchParams;a.set("json","1"),a.set("val",String(r)),l.parentValue!==void 0&&l.parentValue!==null&&l.parentValue!==""&&a.set("parent",String(l.parentValue)),l.start===1&&a.set("start","1");const c=await(await fetch(`${Go(l)}?${a.toString()}`)).json();return Wo(c)[0]??null}catch{return null}}}),vn=({props:n,formValues:t=null,watchParent:o=!0})=>{const r=e.ref([]),l=e.computed(()=>n.parent?t?.value?.[n.parent]?.toString?.()??null:null),{fetchOptions:a,fetchOptionByValue:s}=Xa(()=>({data:n.data,options:n.options,api:n.api,prefix:n.prefix,host:n.host,start:n.start,parentValue:l.value})),c=async(i="")=>{const d=n.data?await a(i):n.options?[...n.options]:[];return r.value=d,r.value};return e.watch(()=>n.options,()=>{n.data||(r.value=n.options?[...n.options]:[])},{immediate:!0,deep:!0}),o&&e.watch(l,async()=>{n.data&&(r.value=await a())},{immediate:!1}),{optionsList:r,parentValue:l,fetchOptions:a,fetchOptionByValue:s,loadOptions:c}},Za=/\{\{\s*([^}]+?)\s*\}\}/g,Ja=n=>(n?String(n):"").replace(/<[^>]*>/g,"").trim(),Qa=(n,t)=>t.split(".").reduce((o,r)=>o==null?o:o[r.trim()],n),Cn=(n,t)=>{if(!n)return"";const o=(t??"").trim();return o?o.replace(Za,(r,l)=>{const a=String(l).trim(),s=n,i=(a.includes(".")?Qa(s,a):void 0)??s[a];return i!=null?String(i):""}):n.text??""},En=(n,t)=>{if(!n)return"";const o=Cn(n,t);return Ja(o)||n.text||""},ao=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(n){const t=n,o=e.useModel(n,"modelValue"),r=e.computed(()=>Ya[`vs-input-radio-${t.view}`]),l=e.computed(()=>t.slot??t?.optionTemplate??""),a=e.computed(()=>xn(l.value)),s=y=>Cn(y,l.value),c=y=>En(y,l.value),i=e.computed(()=>t.position==="horizontal"?"flex w-full flex-row flex-wrap gap-[10px]":"flex w-full flex-col gap-2"),d=e.computed(()=>{if(t.position==="horizontal"&&t.customClass?.includes("50%"))return{flex:"0 0 calc(50% - 5px)"}}),h=e.inject("values",null),{optionsList:p,loadOptions:g}=vn({props:t,formValues:h});return e.onMounted(async()=>{await g()}),(y,m)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(p),x=>(e.openBlock(),e.createElementBlock("div",{key:x?.id,class:e.normalizeClass(["flex items-stretch",n.position==="horizontal"?t.customClass:""]),style:e.normalizeStyle(d.value)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value),e.mergeProps({text:c(x),html:a.value?s(x):"",option:x,value:x.id.toString(),checked:o.value?.toString?.()===x.id?.toString?.(),"custom-class":n.position==="horizontal"?"":t.customClass,modelValue:o.value,"onUpdate:modelValue":m[0]||(m[0]=f=>o.value=f)},{ref_for:!0},y.$attrs),null,16,["text","html","option","value","checked","custom-class","modelValue"]))],6))),128))],2))}}),es={key:1,class:"w-full flex flex-col gap-4"},ts={key:0,class:"text-sm font-medium text-muted-foreground my-2"},ns="Без категорії",os=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(n,{emit:t}){const o=n,r=t,l=e.reactive({}),a=e.inject("values",null),{optionsList:s,loadOptions:c}=vn({props:{...o,options:o.options},formValues:a}),i=e.computed(()=>s.value),d=C=>C?.value||C?.id||C?.text||C,h=e.computed(()=>o.slot??o?.optionTemplate??""),p=e.computed(()=>xn(h.value)),g=C=>Cn(C,h.value),y=C=>En(C,h.value),m=C=>`lg:col-span-${C||12}`,x=e.computed(()=>[o.position==="vertical"?"flex flex-col":"",o.colSpan?"grid":"flex justify-start"]),f=C=>C==null||C===""?null:typeof C=="string"||typeof C=="number"?C:String(C),E=e.computed(()=>{if(!o.group)return[];const C=new Map;i.value.forEach(L=>{const V=L[o.group],S=f(V);C.has(S)||C.set(S,[]),C.get(S)?.push(L)});const B=[];o.values?.length&&o.values.forEach(L=>{const V=f(L);B.push(V)});const A=new Set,U=L=>{const V=C.get(L)||[];if(!V.length)return null;const S=L===null?"group-null":`group-${String(L)}`,v=L===null?ns:String(L);return A.add(L),{key:S,label:v,options:V}},Q=[];return B.forEach(L=>{const V=U(L);V&&Q.push(V)}),C.forEach((L,V)=>{if(A.has(V))return;const S=U(V);S&&Q.push(S)}),Q});return e.watch(()=>o.modelValue,C=>{if(typeof C=="boolean"&&i.value.length===1){const B=d(i.value[0]);l[B]=C}else if(Array.isArray(C)){const B=new Set(C);i.value.forEach(A=>{if(!A.disabled){const U=d(A);l[U]=B.has(U)}})}},{immediate:!0}),e.watch(l,()=>{if(!i.value.length){r("update:modelValue",null);return}const C=Object.entries(l).filter(([,B])=>B).map(([B])=>B);r("update:modelValue",C.length===0?[]:C)},{deep:!0}),e.onMounted(async()=>{if(await c(),typeof o.modelValue=="boolean"&&i.value.length===1){const C=d(i.value[0]);l[C]=o.modelValue}else if(Array.isArray(o.modelValue)){const C=new Set(o.modelValue);i.value.forEach(B=>{if(!B.disabled){const A=d(B);l[A]=C.has(A)}})}}),(C,B)=>o.group?(e.openBlock(),e.createElementBlock("div",es,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(E.value,A=>(e.openBlock(),e.createElementBlock("div",{key:A.key,class:"flex flex-col gap-2"},[A.label?(e.openBlock(),e.createElementBlock("span",ts,e.toDisplayString(A.label),1)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-0 w-full gap-[12px]",x.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(A.options,U=>(e.openBlock(),e.createBlock(to,{modelValue:l[d(U)],"onUpdate:modelValue":Q=>l[d(U)]=Q,value:d(U),class:e.normalizeClass(m(n.colSpan)),disabled:o.disabled||U.disabled,label:y(U),labelHtml:p.value?g(U):"",key:`${A.key}-${d(U)}`,icon:U?.icon,imgUrl:U?.imgUrl,option:U,view:n.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]",x.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,A=>(e.openBlock(),e.createBlock(to,{modelValue:l[d(A)],"onUpdate:modelValue":U=>l[d(A)]=U,value:d(A),class:e.normalizeClass(m(n.colSpan)),disabled:o.disabled||A.disabled,label:y(A),labelHtml:p.value?g(A):"",key:d(A),icon:A?.icon,imgUrl:A?.imgUrl,option:A,view:n.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2))}}),Be=(n,t)=>{const o=n.__vccOpts||n;for(const[r,l]of t)o[r]=l;return o},Yo=Be(os,[["__scopeId","data-v-16c6c9cd"]]),rs=1440*60*1e3,ls=["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"],as=["січ","лют","бер","квіт","трав","черв","лип","серп","вер","жовт","лист","груд"],ss=["нд","пн","вт","ср","чт","пт","сб"];function We(n){return n instanceof Date&&!Number.isNaN(n.getTime())}const qt=n=>new Date(n.getTime());function Pt(n){const t=qt(n);return t.setHours(0,0,0,0),t}function Qt(n){const t=qt(n);return t.setHours(23,59,59,999),t}function so(n){return Pt(new Date(n.getFullYear(),n.getMonth(),1))}function io(n){return Qt(new Date(n.getFullYear(),n.getMonth()+1,0))}function co(n,t){const o=new Date(n),r=o.getDate();o.setDate(1),o.setMonth(o.getMonth()+t);const l=new Date(o.getFullYear(),o.getMonth()+1,0).getDate();return o.setDate(Math.min(r,l)),o}function is(n,t){return co(n,-1)}function _n(n,t){const o=new Date(n);return o.setFullYear(o.getFullYear()+t),o}function Xo(n,t){return _n(n,-t)}function Zo(n){return Pt(new Date(n.getFullYear(),0,1))}function Jo(n){return Qt(new Date(n.getFullYear(),11,31))}function cs(n){const t=Math.floor(n.getFullYear()/10)*10;return Pt(new Date(t,0,1))}function ds(n){const t=Math.floor(n.getFullYear()/10)*10+9;return Qt(new Date(t,11,31))}const mt=n=>n.getFullYear(),Bn=n=>Math.floor(n.getFullYear()/10)*10;function us(n){const t=[];let o=Pt(n.start);const r=Pt(n.end);for(;o<=r;)t.push(qt(o)),o=new Date(o.getTime()+rs);return t}function ps(n){const t=[];let o=so(n.start);const r=io(n.end);for(;o<=r;)t.push(qt(o)),o=co(o,1);return t}function ms(n){const t=[];let o=Zo(n.start);const r=Jo(n.end);for(;o<=r;)t.push(qt(o)),o=_n(o,1);return t}function uo(n,t=1){const o=Pt(n),r=(o.getDay()-t+7)%7;return o.setDate(o.getDate()-r),o}function fs(n,t=1){const o=uo(n,t);return o.setDate(o.getDate()+6),Qt(o)}function hs(n,t,o=0){const r=uo(n,o),l=(t-o+7)%7;return r.setDate(r.getDate()+l),r}const Vn=(n,t)=>!!n&&!!t&&n.getFullYear()===t.getFullYear()&&n.getMonth()===t.getMonth()&&n.getDate()===t.getDate(),po=(n,t)=>!!n&&!!t&&n.getFullYear()===t.getFullYear()&&n.getMonth()===t.getMonth(),Qo=(n,t)=>!!n&&!!t&&n.getFullYear()===t.getFullYear(),er=(n,t)=>!!n&&!!t&&Vn(n,t)&&n.getHours()===t.getHours(),gs=(n,t)=>!!n&&!!t&&er(n,t)&&n.getMinutes()===t.getMinutes();function ys(n,t){const o=n.getTime();return o>=t.start.getTime()&&o<=t.end.getTime()}const en=(n,t)=>!!n&&!!t&&n.getTime()<t.getTime(),tn=(n,t)=>!!n&&!!t&&n.getTime()>t.getTime();function bs(n){const t=n.filter(o=>We(o));if(t.length)return t.reduce((o,r)=>o.getTime()>=r.getTime()?o:r)}function ks(n){const t=n.filter(o=>We(o));if(t.length)return t.reduce((o,r)=>o.getTime()<=r.getTime()?o:r)}function xs(n,t){const o=qt(n);return typeof t.year=="number"&&o.setFullYear(t.year),typeof t.month=="number"&&o.setMonth(t.month),typeof t.date=="number"&&o.setDate(t.date),typeof t.hours=="number"&&o.setHours(t.hours),typeof t.minutes=="number"&&o.setMinutes(t.minutes),typeof t.seconds=="number"&&o.setSeconds(t.seconds),typeof t.milliseconds=="number"&&o.setMilliseconds(t.milliseconds),o}const Sn=(n,t=2)=>String(n).padStart(t,"0");function tr(n,t){return t==="wide"?ls[n]:as[n]}function ws(n){return ss[n]}const vs=[{token:"LLLL",format:n=>tr(n.getMonth(),"wide")},{token:"LLL",format:n=>tr(n.getMonth(),"abbreviated")},{token:"EE",format:n=>ws(n.getDay())},{token:"yyyy",format:n=>String(n.getFullYear())},{token:"MM",format:n=>Sn(n.getMonth()+1)},{token:"dd",format:n=>Sn(n.getDate())},{token:"HH",format:n=>Sn(n.getHours())},{token:"mm",format:n=>Sn(n.getMinutes())}];function nn(n,t){if(!We(n))return"";let o="",r=0;for(;r<t.length;){const l=vs.find(a=>t.startsWith(a.token,r));l?(o+=l.format(n),r+=l.token.length):(o+=t[r],r+=1)}return o}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 nr(n,t){const o=Cs[t];if(!o){const l=new Date(n);return We(l)?l:null}const r=n.match(o);if(!r)return null;switch(t){case"yyyy-MM-dd":{const[,l,a,s]=r,c=new Date(Number(l),Number(a)-1,Number(s));return We(c)?c:null}case"dd.MM.yyyy":{const[,l,a,s]=r,c=new Date(Number(s),Number(a)-1,Number(l));return We(c)?c:null}case"dd.MM.yyyy HH:mm":{const[,l,a,s,c,i,d]=r,h=new Date(Number(s),Number(a)-1,Number(l),Number(c),Number(i),Number(d||0));return We(h)?h:null}case"HH:mm":{const[,l,a,s]=r,c=new Date;return c.setHours(Number(l),Number(a),Number(s||0),0),c}case"MM.yyyy":{const[,l,a]=r;return new Date(Number(a),Number(l)-1,1)}case"yyyy":{const[,l]=r;return new Date(Number(l),0,1)}default:return null}}const Es=["year","month","day","time","custom"],_s=e.defineComponent({components:{ChevronLeft:J.ChevronLeft,ChevronRight:J.ChevronRight},emits:{elementClick:n=>We(n),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:n=>typeof n=="string"&&Es.includes(n)},showButtonBar:{type:Boolean,default:!1},hideHeader:{type:Boolean,default:!1}},setup(){const t=e.getCurrentInstance()?.appContext?.config?.globalProperties?.$t,o=e.computed(()=>{const l=t?.("form.date.today");return l&&l!=="form.date.today"?l:"Сьогодні"}),r=e.computed(()=>{const l=t?.("form.date.clear");return l&&l!=="form.date.clear"?l:"Очистити"});return{todayLabel:o,clearLabel:r}}}),Bs={key:0,class:"p-datepicker-header flex items-center justify-between mb-1.5"},Vs=["disabled"],Ss=["disabled"],$s={key:0,class:"p-datepicker-weekheader grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-400 font-medium mb-1.5"},As=["disabled","onClick"],Ns={key:1,class:"p-datepicker-buttonbar mt-2 pt-2 border-t border-slate-200 flex items-center justify-between"};function Ms(n,t,o,r,l,a){const s=e.resolveComponent("ChevronLeft"),c=e.resolveComponent("ChevronRight");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["p-datepicker-panel p-component text-center text-slate-700 overflow-x-hidden bg-white border border-slate-200 rounded-xl shadow-[0_4px_12px_rgba(0,0,0,0.1)] p-2",n.viewMode==="month"||n.viewMode==="year"?"w-[182px] min-w-[182px]":"w-[268px] min-w-[182px]"]),style:e.normalizeStyle({"--popout-column-definition":`repeat(${n.columnCount}, 1fr)`}),onMousedown:t[5]||(t[5]=e.withModifiers(()=>{},["prevent"]))},[n.hideHeader?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Bs,[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:n.leftDisabled,onClick:t[0]||(t[0]=e.withModifiers(i=>n.$emit("left"),["stop","prevent"]))},[e.renderSlot(n.$slots,"arrow-left",{},()=>[e.createVNode(s,{class:"h-3.5 w-3.5"})])],8,Vs),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.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",n.headingClickable?"hover:bg-slate-100":"",n.viewMode==="month"?"p-datepicker-select-year":"",n.viewMode==="year"?"p-datepicker-decade whitespace-nowrap text-xs px-1":""]),onClick:t[1]||(t[1]=e.withModifiers(i=>n.$emit("heading"),["stop","prevent"]))},{default:e.withCtx(()=>[e.renderSlot(n.$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:n.rightDisabled,onClick:t[2]||(t[2]=e.withModifiers(i=>n.$emit("right"),["stop","prevent"]))},[e.renderSlot(n.$slots,"arrow-right",{},()=>[e.createVNode(c,{class:"h-3.5 w-3.5"})])],8,Ss)])),e.createElementVNode("div",null,["subheading"in n.$slots?(e.openBlock(),e.createElementBlock("div",$s,[e.renderSlot(n.$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",n.viewMode==="month"?"p-datepicker-month-view":"",n.viewMode==="year"?"p-datepicker-year-view":"",n.viewMode==="month"?"gap-y-1":""])},[e.renderSlot(n.$slots,"body",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.items,i=>(e.openBlock(),e.createElementBlock("button",{key:i.key,disabled:i.disabled,class:e.normalizeClass(["p-[2px] disabled:text-slate-300"]),onClick:e.withModifiers(d=>n.$emit("elementClick",i.value),["stop","prevent"])},[e.createElementVNode("span",{class:e.normalizeClass([n.viewMode==="month"||n.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",n.viewMode==="month"?"p-datepicker-month":"",n.viewMode==="year"?"p-datepicker-year":"",n.viewMode==="day"?"p-datepicker-day":"",i.selected?"bg-blue-500 text-white font-semibold":"",i.current&&!i.selected&&n.viewMode!=="month"&&n.viewMode!=="year"?"border border-slate-300 font-medium":"",!i.disabled&&!i.selected?"hover:bg-slate-100 hover:text-slate-700":"",!i.current&&!i.selected&&i.disabled?"text-slate-300":""])},e.toDisplayString(i.display),3)],8,As))),128))])],2),e.renderSlot(n.$slots,"after-calendar"),n.showButtonBar?(e.openBlock(),e.createElementBlock("div",Ns,[e.createElementVNode("button",{type:"button",class:"p-datepicker-today-button text-xs font-medium text-slate-500 hover:text-slate-700 transition-colors px-1.5 py-1 rounded-md hover:bg-slate-100",onClick:t[3]||(t[3]=e.withModifiers(i=>n.$emit("today"),["stop","prevent"]))},e.toDisplayString(n.todayLabel),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-clear-button text-xs font-medium text-slate-500 hover:text-slate-700 transition-colors px-1.5 py-1 rounded-md hover:bg-slate-100",onClick:t[4]||(t[4]=e.withModifiers(i=>n.$emit("clear"),["stop","prevent"]))},e.toDisplayString(n.clearLabel),1)])):e.createCommentVNode("",!0)])],38)}const $n=Be(_s,[["render",Ms]]),Fs=e.defineComponent({components:{PickerPopup:$n},emits:{"update:pageDate":n=>We(n),select:n=>We(n)},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(n,{emit:t}){const o=e.computed(()=>cs(n.pageDate)),r=e.computed(()=>ds(n.pageDate)),l=(p,g,y)=>!g&&!y?!0:!(g&&mt(p)<mt(g)||y&&mt(p)>mt(y)),a=e.computed(()=>ms({start:o.value,end:r.value}).map(p=>({value:p,key:String(mt(p)),display:mt(p),selected:!!n.selected&&mt(p)===mt(n.selected),disabled:!l(p,n.lowerLimit,n.upperLimit)}))),s=e.computed(()=>{const p=mt(o.value),g=mt(r.value);return`${p} - ${g}`}),c=e.computed(()=>n.lowerLimit&&(Bn(n.lowerLimit)===Bn(n.pageDate)||en(n.pageDate,n.lowerLimit))),i=e.computed(()=>n.upperLimit&&(Bn(n.upperLimit)===Bn(n.pageDate)||tn(n.pageDate,n.upperLimit)));return{years:a,heading:s,leftDisabled:c,rightDisabled:i,previousPage:()=>t("update:pageDate",Xo(n.pageDate,10)),nextPage:()=>t("update:pageDate",_n(n.pageDate,10))}}});function Ds(n,t,o,r,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{columnCount:2,leftDisabled:n.leftDisabled,rightDisabled:n.rightDisabled,items:n.years,viewMode:"year",onLeft:n.previousPage,onRight:n.nextPage,onElementClick:t[0]||(t[0]=c=>n.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.heading),1)]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const Ts=Be(Fs,[["render",Ds]]),Ls=e.defineComponent({components:{PickerPopup:$n},emits:{"update:pageDate":n=>We(n),select:n=>We(n),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(n,{emit:t}){const o=e.computed(()=>Zo(n.pageDate)),r=e.computed(()=>Jo(n.pageDate)),l=e.computed(()=>g=>nn(g,n.format)),a=(g,y,m)=>!y&&!m?!0:!(y&&en(g,so(y))||m&&tn(g,io(m))),s=e.computed(()=>ps({start:o.value,end:r.value}).map(g=>({value:g,display:l.value(g),key:l.value(g),selected:!!n.selected&&po(n.selected,g),disabled:!a(g,n.lowerLimit,n.upperLimit)}))),c=e.computed(()=>mt(o.value)),i=e.computed(()=>n.lowerLimit&&(Qo(n.lowerLimit,n.pageDate)||en(n.pageDate,n.lowerLimit))),d=e.computed(()=>n.upperLimit&&(Qo(n.upperLimit,n.pageDate)||tn(n.pageDate,n.upperLimit)));return{months:s,heading:c,leftDisabled:i,rightDisabled:d,previousPage:()=>t("update:pageDate",Xo(n.pageDate,1)),nextPage:()=>t("update:pageDate",_n(n.pageDate,1))}}});function Is(n,t,o,r,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",columnCount:3,items:n.months,leftDisabled:n.leftDisabled,rightDisabled:n.rightDisabled,viewMode:"month",onLeft:n.previousPage,onRight:n.nextPage,onHeading:t[0]||(t[0]=c=>n.$emit("back")),onElementClick:t[1]||(t[1]=c=>n.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.heading),1)]),_:1},8,["items","leftDisabled","rightDisabled","onLeft","onRight"])}const Os=Be(Ls,[["render",Is]]),Ps=e.defineComponent({components:{PickerPopup:$n},emits:{"update:pageDate":n=>We(n),select:n=>We(n),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:n=>typeof n=="number"&&Number.isInteger(n)&&n>=0&&n<=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(n,{emit:t}){const o=e.computed(()=>f=>E=>nn(E,f)),r=e.computed(()=>so(n.pageDate)),l=e.computed(()=>io(n.pageDate)),a=e.computed(()=>({start:r.value,end:l.value})),s=e.computed(()=>({start:uo(r.value,n.weekStartsOn),end:fs(l.value,n.weekStartsOn)})),c=e.computed(()=>n.customWeekdays?.length===7?n.customWeekdays:null),i=e.computed(()=>{const f=n.weekStartsOn,E=c.value;if(E)return Array.from({length:7}).map((B,A)=>E[(f+A)%7]);const C=o.value(n.weekdayFormat);return Array.from(Array(7)).map((B,A)=>(f+A)%7).map(B=>hs(new Date,B,n.weekStartsOn)).map(C)}),d=(f,E,C,B)=>B?.dates?.some(A=>Vn(f,A))||B?.predicate?.(f)?!1:!E&&!C?!0:!(E&&en(f,Pt(E))||C&&tn(f,Qt(C))),h=e.computed(()=>{const f=new Date,E=o.value(n.format);return us(s.value).map(C=>({value:C,display:E(C),selected:!!n.selected&&Vn(n.selected,C),current:Vn(f,C),disabled:!n.allowOutsideInterval&&!ys(C,a.value)||!d(C,n.lowerLimit,n.upperLimit,n.disabledDates),key:o.value("yyyy-MM-dd")(C)}))}),p=e.computed(()=>o.value(n.headingFormat)(n.pageDate)),g=e.computed(()=>n.lowerLimit&&(po(n.lowerLimit,n.pageDate)||en(n.pageDate,n.lowerLimit))),y=e.computed(()=>n.upperLimit&&(po(n.upperLimit,n.pageDate)||tn(n.pageDate,n.upperLimit)));return{weekDays:i,days:h,heading:p,leftDisabled:g,rightDisabled:y,previousPage:()=>t("update:pageDate",is(n.pageDate)),nextPage:()=>t("update:pageDate",co(n.pageDate,1))}}});function Rs(n,t,o,r,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",leftDisabled:n.leftDisabled,rightDisabled:n.rightDisabled,items:n.days,showButtonBar:!0,viewMode:"day",onLeft:n.previousPage,onRight:n.nextPage,onHeading:t[0]||(t[0]=c=>n.$emit("back")),onElementClick:t[1]||(t[1]=c=>n.$emit("select",c)),onToday:t[2]||(t[2]=c=>n.$emit("today")),onClear:t[3]||(t[3]=c=>n.$emit("clear"))},e.createSlots({heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.heading),1)]),subheading:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.weekDays,(c,i)=>(e.openBlock(),e.createElementBlock("span",{key:c,class:e.normalizeClass(`v3dp__subheading__weekday__${i}`)},e.toDisplayString(c),3))),128))]),_:2},[n.$slots["after-calendar"]?{name:"after-calendar",fn:e.withCtx(()=>[e.renderSlot(n.$slots,"after-calendar")]),key:"0"}:void 0]),1032,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const zs=Be(Ps,[["render",Rs]]),js=e.defineComponent({components:{PickerPopup:$n,ChevronUp:J.ChevronUp,ChevronDown:J.ChevronDown},emits:{select:n=>We(n),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(n,{emit:t}){const o=e.computed(()=>n.pageDate??n.selected),r=e.ref(o.value.getHours()),l=e.ref(o.value.getMinutes());e.watch(()=>n.selected,y=>{let m=0,x=0;y&&(m=y.getHours(),x=y.getMinutes()),r.value=m,l.value=x});const a=(y,m)=>{const x=xs(new Date(o.value.getTime()),{hours:y,minutes:m,seconds:0});p(x)&&(r.value=y,l.value=m,t("select",x))},s=(y,m)=>y<0?m:y>m?0:y,c=()=>a(s(r.value+1,23),l.value),i=()=>a(s(r.value-1,23),l.value),d=()=>a(r.value,s(l.value+1,59)),h=()=>a(r.value,s(l.value-1,59)),p=y=>!(n.disabledTime?.dates?.some(m=>er(y,m)&&gs(y,m))||n.disabledTime?.predicate?.(y));return{hours:r,minutes:l,padStartZero:y=>`0${y}`.substr(-2),isEnabled:p,incrementHours:c,decrementHours:i,incrementMinutes:d,decrementMinutes:h}}}),Us={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"},Hs={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},qs={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Ks={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},Ws={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Gs={class:"col-span-2"},Ys={class:"p-datepicker-time-picker flex items-center justify-center gap-2 py-1"},Xs={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},Zs={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Js={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},Qs={class:"min-w-8 text-center text-sm font-medium text-slate-700"};function ei(n,t,o,r,l,a){const s=e.resolveComponent("ChevronUp"),c=e.resolveComponent("ChevronDown"),i=e.resolveComponent("picker-popup");return n.embedded?(e.openBlock(),e.createElementBlock("div",Us,[e.createElementVNode("div",Hs,[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)=>n.incrementHours&&n.incrementHours(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",qs,e.toDisplayString(n.padStartZero(n.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)=>n.decrementHours&&n.decrementHours(...d),["stop","prevent"]))},[e.createVNode(c,{class:"h-3.5 w-3.5"})])]),t[8]||(t[8]=e.createElementVNode("div",{class:"text-base font-medium text-slate-500"},":",-1)),e.createElementVNode("div",Ks,[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)=>n.incrementMinutes&&n.incrementMinutes(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",Ws,e.toDisplayString(n.padStartZero(n.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)=>n.decrementMinutes&&n.decrementMinutes(...d),["stop","prevent"]))},[e.createVNode(c,{class:"h-3.5 w-3.5"})])])])):(e.openBlock(),e.createBlock(i,{key:1,hideHeader:!0,columnCount:2,viewMode:"time"},{body:e.withCtx(()=>[e.createElementVNode("div",Gs,[e.createElementVNode("div",Ys,[e.createElementVNode("div",Xs,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[4]||(t[4]=e.withModifiers((...d)=>n.incrementHours&&n.incrementHours(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",Zs,e.toDisplayString(n.padStartZero(n.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)=>n.decrementHours&&n.decrementHours(...d),["stop","prevent"]))},[e.createVNode(c,{class:"h-3.5 w-3.5"})])]),t[9]||(t[9]=e.createElementVNode("div",{class:"text-base font-medium text-slate-500"},":",-1)),e.createElementVNode("div",Js,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[6]||(t[6]=e.withModifiers((...d)=>n.incrementMinutes&&n.incrementMinutes(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",Qs,e.toDisplayString(n.padStartZero(n.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)=>n.decrementMinutes&&n.decrementMinutes(...d),["stop","prevent"]))},[e.createVNode(c,{class:"h-3.5 w-3.5"})])])])])]),_:1}))}const ti=Be(js,[["render",ei]]),An=["time","day","month","year"],ni=(n,t,o=void 0)=>{let r=o||new Date;const l=bs([n,r]);l&&(r=l);const a=ks([t,r]);return a&&(r=a),r},oi=e.defineComponent({components:{YearPicker:Ts,MonthPicker:Os,DayPicker:zs,TimePicker:ti,CalendarDays:J.CalendarDays,Clock3:J.Clock3,X:J.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:n=>typeof n=="string"&&An.includes(n)},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:n=>[0,1,2,3,4,5,6].includes(n)},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:n=>typeof n=="string"&&An.includes(n)}},emits:{"update:modelValue":n=>n==null||We(n),decadePageChanged:n=>!0,yearPageChanged:n=>!0,monthPageChanged:n=>!0,opened:()=>!0,closed:()=>!0},setup(n,{emit:t}){const o=e.ref("none"),r=e.ref(n.startingViewDate),l=e.ref(null),a=e.ref(null),s=e.ref(null),c=e.ref({}),i=e.ref(!1),d=e.ref(!1);let h=null;const p=e.ref(""),g=ae=>{const re=ae.replace(/[a-zA-Z]/g,"0");return/0/.test(re)?re:""},y=e.computed(()=>g(n.inputFormat));let m=null,x=null;const f=()=>{m?.destroy(),m=null},E=async()=>{if(!x){const{default:ae}=await Promise.resolve().then(()=>Wn);x=ae}return x},C=()=>{m&&m.value!==p.value&&(m.value=p.value??"")},B=ae=>{const re=ae&&We(ae)?nn(ae,n.inputFormat):"";p.value!==re&&(p.value=re),C()},A=async()=>{if(f(),!a.value||!y.value)return;m=(await E())(a.value,{mask:y.value,lazy:!0,overwrite:!1}),C()};e.watch(()=>n.modelValue,ae=>{d.value&&n.typeable||B(ae)},{immediate:!0}),e.watch(()=>n.inputFormat,()=>{d.value&&n.typeable||B(n.modelValue)}),e.onMounted(()=>{y.value&&e.nextTick(()=>{A()})}),e.onBeforeUnmount(()=>{f()}),e.watch(y,ae=>{ae?e.nextTick(()=>{A()}):f()});const U=e.computed(()=>o.value!=="none"),Q=e.computed(()=>n.startingView==="time"&&n.minimumView==="time"),L=e.computed(()=>n.startingView==="day"&&n.minimumView==="time"),V=ae=>{n.disabled||(U.value||(r.value=n.modelValue||ni(n.lowerLimit,n.upperLimit,r.value),t("opened")),o.value=ae,e.nextTick(()=>Oe()))},S=()=>{U.value&&(h!==null&&(cancelAnimationFrame(h),h=null),o.value="none",t("closed"))},v=(ae="none")=>{ae==="none"?S():V(ae)};e.watchEffect(()=>{n.disabled&&S()});const T=(ae,re)=>{r.value=re,ae==="year"?t("decadePageChanged",re):ae==="month"?t("yearPageChanged",re):ae==="day"&&t("monthPageChanged",re)},H=ae=>{r.value=ae,n.minimumView==="year"?(S(),B(ae),t("update:modelValue",ae)):V("month")},ne=ae=>{r.value=ae,n.minimumView==="month"?(S(),B(ae),t("update:modelValue",ae)):V("day")},N=ae=>{const re=L.value?(()=>{const be=n.modelValue||r.value||new Date,Se=new Date(ae);return Se.setHours(be.getHours(),be.getMinutes(),0,0),Se})():ae;r.value=re,n.minimumView==="day"?(S(),B(re),t("update:modelValue",re)):L.value?(B(re),t("update:modelValue",re),V("day")):V("time")},O=ae=>{B(ae),t("update:modelValue",ae)},K=()=>{N(new Date)},W=()=>{n.clearable&&(S(),B(null),t("update:modelValue",null),r.value=n.startingViewDate)},z=()=>{U.value||V(se.value)},I=()=>{d.value=!0,i.value=!1,V(se.value)},Z=()=>{d.value=!1,n.typeable&&j({closeOnSuccess:!1,revertOnInvalid:!0})},$=ae=>{const re=ae.target;if(p.value=re?.value??"",!n.typeable)return;const be=nr(p.value,n.inputFormat);be&&p.value===nn(be,n.inputFormat)&&(r.value=be)},j=({closeOnSuccess:ae,revertOnInvalid:re})=>{const be=a.value?.value??p.value,Se=nr(be,n.inputFormat);return!!Se&&be===nn(Se,n.inputFormat)&&Se?(r.value=Se,B(Se),t("update:modelValue",Se),ae&&S(),!0):(B(n.modelValue),!1)},D=ae=>{const re=ae.keyCode?ae.keyCode:ae.which,be=re===27,Se=re===13;if(be){S(),a.value?.blur();return}n.typeable&&Se&&(j({closeOnSuccess:!0,revertOnInvalid:!0})||a.value?.focus())},se=e.computed(()=>{const ae=An.indexOf(n.startingView),re=An.indexOf(n.minimumView);return ae<re?n.minimumView:n.startingView}),ce=e.computed(()=>n.weekDayNames?.length===7?n.weekDayNames:void 0),oe=()=>n.startingView==="time"&&n.minimumView==="time"?null:V("day"),he=()=>{if(!a.value||!s.value)return;const ae=4,re=8,be=a.value.getBoundingClientRect(),Se=s.value.getBoundingClientRect(),qe=s.value.firstElementChild?.getBoundingClientRect(),X=window.innerWidth,ee=window.innerHeight,te=window.scrollX||window.pageXOffset,pe=window.scrollY||window.pageYOffset,ye=Math.max(160,ee-re*2),$e=Math.min(Se.height||0,ye),Fe=ee-be.bottom-ae-re,De=be.top-ae-re,G=Fe<$e&&De>Fe;let w=G?be.top-ae-$e:be.bottom+ae;w=Math.max(re,Math.min(w,ee-re-$e));const M=qe?.width||Se.width||268;let R=be.left;R+M>X-re&&(R=X-re-M),R<re&&(R=re);const de=G?Math.max(120,be.top-ae-re):Math.max(120,ee-be.bottom-ae-re);c.value={position:"absolute",top:`${Math.round(w+pe)}px`,left:`${Math.round(R+te)}px`,maxHeight:`${Math.round(Math.min(ye,de))}px`,overflowX:"hidden",overflowY:"auto",zIndex:"2147483000"},L.value&&o.value==="day"&&(c.value.minWidth="345px")},ve=(ae,re)=>ae.bottom>re.top&&ae.top<re.bottom&&ae.right>re.left&&ae.left<re.right,xe=ae=>{const re=[];let be=ae.parentElement;for(;be;){const Se=window.getComputedStyle(be),Te=Se.overflowY,qe=Se.overflowX,X=["auto","scroll","hidden","clip"].includes(Te),ee=["auto","scroll","hidden","clip"].includes(qe);(X||ee)&&re.push(be),be=be.parentElement}return re},Me=()=>{if(!a.value)return!1;const ae=a.value.getBoundingClientRect(),re=new DOMRect(0,0,window.innerWidth,window.innerHeight);return ve(ae,re)?xe(a.value).every(Se=>ve(ae,Se.getBoundingClientRect())):!1},Ie=()=>{if(U.value){if(!Me()){i.value=!0,S();return}Oe();return}i.value&&document.activeElement===a.value&&Me()&&(i.value=!1,V(se.value))};e.watch(o,()=>{U.value&&e.nextTick(()=>Oe())});const Oe=()=>{he(),h!==null&&cancelAnimationFrame(h),h=requestAnimationFrame(()=>{he(),h=null})};e.onMounted(()=>{window.addEventListener("resize",Ie),window.addEventListener("scroll",Ie,!0),document.addEventListener("pointerdown",Ae,!0)}),e.onBeforeUnmount(()=>{h!==null&&(cancelAnimationFrame(h),h=null),window.removeEventListener("resize",Ie),window.removeEventListener("scroll",Ie,!0),document.removeEventListener("pointerdown",Ae,!0)});const Ae=ae=>{if(o.value==="none")return;const re=ae.target;if(!re)return;const be=!!l.value?.contains(re),Se=!!s.value?.contains(re);!be&&!Se&&(i.value=!1,S())};return{rootRef:l,blur:Z,focus:I,click:z,input:p,inputRef:a,pageDate:r,renderView:v,updatePageDate:T,selectYear:H,selectMonth:ne,selectDay:N,selectToday:K,selectTime:O,keyUp:D,onInput:$,isTimeOnlyMode:Q,isDateTimeMode:L,normalizedWeekdayNames:ce,viewShown:o,goBackFromTimepicker:oe,clearModelValue:W,initialView:se,log:ae=>console.log(ae),popupAnchorStyle:c,popupRef:s}}}),ri={ref:"rootRef",class:"relative"},li={class:"p-datepicker p-component p-inputwrapper relative"},ai=["readonly","value","placeholder","disabled","tabindex"],si={class:"p-datepicker-input-icon-container absolute right-2 top-1/2 -translate-y-1/2 pointer-events-none text-slate-400"},ii={class:"absolute right-8 top-1/2 -translate-y-1/2"};function ci(n,t,o,r,l,a){const s=e.resolveComponent("Clock3"),c=e.resolveComponent("CalendarDays"),i=e.resolveComponent("X"),d=e.resolveComponent("year-picker"),h=e.resolveComponent("month-picker"),p=e.resolveComponent("time-picker"),g=e.resolveComponent("day-picker");return e.openBlock(),e.createElementBlock("div",ri,[e.createElementVNode("div",li,[e.createElementVNode("input",e.mergeProps({type:"text",ref:"inputRef",class:"p-inputtext p-component p-datepicker-input",readonly:!n.typeable,value:n.input},n.$attrs,{placeholder:n.placeholder,disabled:n.disabled,tabindex:n.disabled?-1:0,onInput:t[0]||(t[0]=(...y)=>n.onInput&&n.onInput(...y)),onKeyup:t[1]||(t[1]=(...y)=>n.keyUp&&n.keyUp(...y)),onBlur:t[2]||(t[2]=(...y)=>n.blur&&n.blur(...y)),onFocus:t[3]||(t[3]=(...y)=>n.focus&&n.focus(...y)),onClick:t[4]||(t[4]=(...y)=>n.click&&n.click(...y))}),null,16,ai),e.createElementVNode("span",si,[n.isTimeOnlyMode?(e.openBlock(),e.createBlock(s,{key:0,class:"h-4 w-4"})):(e.openBlock(),e.createBlock(c,{key:1,class:"h-4 w-4"}))]),e.withDirectives(e.createElementVNode("div",ii,[e.renderSlot(n.$slots,"clear",{onClear:n.clearModelValue},()=>[e.createElementVNode("button",{type:"button",class:"inline-flex h-5 w-5 items-center justify-center rounded-full text-slate-400 transition-colors hover:bg-slate-100 hover:text-slate-600 focus:outline-none focus:ring-2 focus:ring-blue-500/30","aria-label":"Очистити дату",onClick:t[5]||(t[5]=y=>n.clearModelValue())},[e.createVNode(i,{class:"h-3 w-3"})])])],512),[[e.vShow,n.clearable&&n.modelValue]])]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.withDirectives(e.createElementVNode("div",{ref:"popupRef",style:e.normalizeStyle(n.popupAnchorStyle)},[e.withDirectives(e.createVNode(d,{pageDate:n.pageDate,"onUpdate:pageDate":t[6]||(t[6]=y=>n.updatePageDate("year",y)),selected:n.modelValue,lowerLimit:n.lowerLimit,upperLimit:n.upperLimit,onSelect:n.selectYear},null,8,["pageDate","selected","lowerLimit","upperLimit","onSelect"]),[[e.vShow,n.viewShown==="year"]]),e.withDirectives(e.createVNode(h,{pageDate:n.pageDate,"onUpdate:pageDate":t[7]||(t[7]=y=>n.updatePageDate("month",y)),selected:n.modelValue,onSelect:n.selectMonth,lowerLimit:n.lowerLimit,upperLimit:n.upperLimit,format:n.monthListFormat,onBack:t[8]||(t[8]=y=>n.viewShown="year")},null,8,["pageDate","selected","onSelect","lowerLimit","upperLimit","format"]),[[e.vShow,n.viewShown==="month"]]),e.withDirectives(e.createVNode(g,{pageDate:n.pageDate,"onUpdate:pageDate":t[9]||(t[9]=y=>n.updatePageDate("day",y)),selected:n.modelValue,weekStartsOn:n.weekStartsOn,lowerLimit:n.lowerLimit,upperLimit:n.upperLimit,headingFormat:n.dayPickerHeadingFormat,disabledDates:n.disabledDates,weekdayFormat:n.weekdayFormat,"allow-outside-interval":n.allowOutsideInterval,format:n.dayFormat,"custom-weekdays":n.normalizedWeekdayNames,onSelect:n.selectDay,onToday:n.selectToday,onClear:n.clearModelValue,onBack:t[10]||(t[10]=y=>n.viewShown="month")},e.createSlots({_:2},[n.isDateTimeMode?{name:"after-calendar",fn:e.withCtx(()=>[e.createVNode(p,{embedded:!0,pageDate:n.pageDate,visible:n.viewShown==="day"&&n.isDateTimeMode,selected:n.modelValue,disabledTime:n.disabledTime,onSelect:n.selectTime,onBack:n.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,n.viewShown==="day"]]),e.withDirectives(e.createVNode(p,{pageDate:n.pageDate,visible:n.viewShown==="time",selected:n.modelValue,disabledTime:n.disabledTime,onSelect:n.selectTime,onBack:n.goBackFromTimepicker},null,8,["pageDate","visible","selected","disabledTime","onSelect","onBack"]),[[e.vShow,n.viewShown==="time"&&!n.isDateTimeMode]])],4),[[e.vShow,n.viewShown!=="none"]])]))],512)}const di=Be(oi,[["render",ci]]),or=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(n,{emit:t}){const o=n,r=t,{inputClass:l}=Je(o.style),a=e.getCurrentInstance(),s=e.computed(()=>o.mode?o.mode:o.time?"datetime":"date"),c=e.computed(()=>["py-1.5 px-3 block w-full placeholder:text-[#767f8f] bg-white",l.value,o.customClass,{"!border-red-600":o.error}]),i=e.computed(()=>!o.modelValue&&o.now?new Date:null),d=e.computed({get:()=>V(o.modelValue??i.value,s.value)||void 0,set:$=>r("update:modelValue",S($,s.value))}),h=["Пн","Вт","Ср","Чт","Пт","Сб","Нд"],p=e.computed(()=>{if(o.dayNames?.length)return o.dayNames.length===7?o.dayNames:h}),g=e.computed(()=>{const $=o.weekStart,j=typeof $=="string"?Number($):$;return j===void 0||Number.isNaN(j)?1:Math.min(6,Math.max(0,j))}),y=e.computed(()=>{const $=o.maxDaysFromNow;if($==null||$==="")return;const j=typeof $=="string"?Number($):$;if(!Number.isFinite(j)||j<0)return;const D=new Date;return D.setHours(0,0,0,0),D.setDate(D.getDate()+j),D.setHours(23,59,59,999),D}),m=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"}}}),x={date:"dd.MM.yyyy",datetime:"dd.MM.yyyy HH:mm",month:"MM.yyyy",time:"HH:mm",week:"dd.MM.yyyy",year:"yyyy"};function f(){const $=a?.appContext?.config?.globalProperties?.$i18n?.locale;if(typeof $=="string"&&$)return $;if($&&typeof $=="object"&&"value"in $&&$.value)return String($.value);if(typeof localStorage<"u"){const j=localStorage.getItem("locale")||localStorage.getItem("language");if(j)return j}return"uk"}function E(){const j=a?.appContext?.config?.globalProperties?.$settings?.dateFormat;if(!j)return"";if(typeof j=="string")return j;if(typeof j=="object"){const D=f();return j[D]||j[D.split("-")[0]]||j.uk||j.en||""}return""}function C($){return $?$.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 $=x[s.value]||"dd.MM.yyyy";if(s.value==="time")return $;const j=o.dateFormat||E();if(!j)return $;const D=C(j);return D?s.value==="datetime"?`${D} HH:mm`:D:$});function A($,j){return $?j==="week"?"рррр-тиждень":$.replaceAll("yyyy","рррр").replaceAll("yy","рр").replaceAll("MM","мм").replaceAll("M","м").replaceAll("dd","дд").replaceAll("d","д").replaceAll("HH","гг").replaceAll("H","г").replaceAll("mm",j==="time"||j==="datetime"?"хх":"мм"):""}const U={date:"дд.мм.рррр",datetime:"дд.мм.рррр гг:хх",month:"мм.рррр",week:"рррр-тиждень",time:"гг:хх",year:"рррр"},Q=e.computed(()=>{if(o.placeholder)return o.placeholder;const $=s.value;return A(B.value,$)||U[$]||""}),L=e.ref(!1);e.watch(()=>o.modelValue,$=>{$?L.value=!0:o.now||(L.value=!1)},{immediate:!0}),e.watchEffect(()=>{o.now&&!o.modelValue&&!L.value&&(r("update:modelValue",S(new Date,s.value)),L.value=!0)}),e.watch(B,()=>{r("update:modelValue",S(d.value,s.value))});function V($,j){if(!$)return null;if($ instanceof Date&&!Number.isNaN($.getTime()))return $;if(typeof $!="string")return null;switch(j){case"datetime":return ne($);case"time":return K($);case"month":return N($);case"year":return O($);case"week":return W($);default:return H($)}}function S($,j){if(!$)return null;const D=$ instanceof Date?$:V($,j);if(!D)return null;switch(j){case"datetime":return`${v(D)}T${T(D)}`;case"time":return T(D);case"month":return`${D.getFullYear()}-${Z(D.getMonth()+1)}`;case"year":return`${D.getFullYear()}`;case"week":{const{year:se,week:ce}=z(D);return`${se}-W${Z(ce)}`}default:return v(D)}}function v($){return`${$.getFullYear()}-${Z($.getMonth()+1)}-${Z($.getDate())}`}function T($){return`${Z($.getHours())}:${Z($.getMinutes())}`}function H($){const j=$.split("-");if(j.length<3)return null;const[D,se,ce]=j.map(Number);return!D||!se||!ce?null:new Date(D,se-1,ce)}function ne($){const j=$.includes("T")?$:$.replace(" ","T"),D=new Date(j);return Number.isNaN(D.getTime())?null:D}function N($){const[j,D]=$.split("-").map(Number);return!j||Number.isNaN(D)?null:new Date(j,(D||1)-1,1)}function O($){const j=Number($);return j?new Date(j,0,1):null}function K($){const j=$.trim().match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/);if(!j)return null;const[,D,se,ce]=j,oe=new Date;return oe.setHours(Number(D),Number(se),Number(ce||0),0),oe}function W($){const j=$.match(/^(\d{4})-W(\d{2})$/);if(!j)return null;const[,D,se]=j,ce=Number(se);return I(Number(D),ce)}function z($){const j=new Date(Date.UTC($.getFullYear(),$.getMonth(),$.getDate())),D=j.getUTCDay()||7;j.setUTCDate(j.getUTCDate()+4-D);const se=new Date(Date.UTC(j.getUTCFullYear(),0,1)),ce=Math.ceil(((j.getTime()-se.getTime())/864e5+1)/7);return{year:j.getUTCFullYear(),week:ce}}function I($,j){if(!$||!j)return null;const D=new Date($,0,1+(j-1)*7),se=D.getDay(),ce=D;return se<=4?ce.setDate(D.getDate()-D.getDay()+1):ce.setDate(D.getDate()+8-D.getDay()),ce}function Z($){return String($).padStart(2,"0")}return($,j)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-date-picker",o.customClass])},[e.createVNode(di,{modelValue:d.value,"onUpdate:modelValue":j[0]||(j[0]=D=>d.value=D),placeholder:Q.value,disabled:o.disabled,clearable:o.clearable,typeable:o.editable,"week-day-names":p.value,"week-starts-on":g.value,"starting-view":m.value.startingView,"minimum-view":m.value.minimumView,"input-format":B.value,"upper-limit":y.value,name:o.name,class:e.normalizeClass(c.value)},null,8,["modelValue","placeholder","disabled","clearable","typeable","week-day-names","week-starts-on","starting-view","minimum-view","input-format","upper-limit","name","class"])],2))}}),[["__scopeId","data-v-cb1232a6"]]),ui=(n,t)=>{if(!t||!Object.keys(t).length)return n;const[o,r=""]=n.split("?"),l=new URLSearchParams(r);Object.entries(t).forEach(([s,c])=>{c==null||c===""||l.set(s,String(c))});const a=l.toString();return a?`${o}?${a}`:o},pi=async(n,t={})=>{try{const o=new FormData;o.append("unique","true"),o.append("file",n);const{api:r,id:l="1",form:a="form",table:s="table",customParams:c}=t,i=r||`/file/upload/uploads?id=${l||""}&form=${a||""}&table=${s||""}`,d=ui(i,c);return(await fetch(d,{method:"POST",body:o}).then(p=>p.json()))?.result}catch(o){return ke.notify({type:"error",title:"Помилка!",message:"Сталась помилка під час завантаження файлу",position:"right-bottom"}),console.error("Сталась помилка завантаження файлу",o),null}},mi=async n=>{try{return await fetch(`file/delete/${n}`),!0}catch(t){return console.error(t),!1}},rr=async n=>{try{const t=await fetch(`/file/download/${n}`);if(!t.ok)throw new Error(`Download failed with status ${t.status}`);const o=await t.blob(),l=(t.headers.get("content-disposition")||"").match(/filename\*?=(?:UTF-8''|")?([^\";]+)/i),a=l?.[1]?decodeURIComponent(l[1].replace(/"/g,"").trim()):"",s=n.split("/").filter(Boolean).pop()||"download",c=a||s,i=document.createElement("a");i.setAttribute("download",c),i.href=window.URL.createObjectURL(o),i.click(),window.URL.revokeObjectURL(i.href)}catch(t){console.error(t.message)}},fi=n=>{if(!n)return"";const t=n?.split(".");return t[t.length-1]},hi=n=>{const t=fi(n),o={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 o.imageFormat.includes(t)?"img":o.sheetsFormat.includes(t)?J.Table:o.textsFormat.includes(t)?J.FileCode:o.documentsFormat.includes(t)?J.FileText:o.archivesFormat.includes(t)?J.FileArchive:J.FileText},gi=["title"],yi={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"},bi=["title"],ki={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(n,{emit:t}){const o=e.useModel(n,"value"),r=e.useModel(n,"item"),l=t,a=n,s=e.computed(()=>a.action),c=e.computed(()=>r.value?typeof r.value=="string"?r.value:r.value.file_path:""),i=e.computed(()=>a.disabled?"opacity-50 cursor-not-allowed":a.isUploading?"cursor-default text-blue-500":"cursor-pointer hover:border-blue-500 hover:bg-blue-50 hover:text-blue-500"),d=y=>typeof y=="string"?y:y?.file_path||"",h=()=>{const y=c.value;mi(y),a.multiple&&Array.isArray(o.value)?o.value=o.value.filter(m=>d(m)!==y):o.value=""},p=()=>{c.value&&window.open(c.value,"_blank")},g=()=>{a.disabled||a.isUploading||l("click")};return(y,m)=>s.value?(e.openBlock(),e.createElementBlock("div",{key:0,title:n.title,class:e.normalizeClass(["relative h-[120px] w-[120px] border text-gray-300 border-dashed border-[#CFD9E0] rounded-lg flex items-center justify-center transition-all duration-300",i.value]),onClick:g},[n.isUploading?(e.openBlock(),e.createElementBlock("div",yi,[m[2]||(m[2]=e.createElementVNode("div",{class:"loader"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(n.progressPercent)+"%",1)])):(e.openBlock(),e.createBlock(e.unref(J.Plus),{key:1,class:"h-4 w-4"}))],10,gi)):(e.openBlock(),e.createElementBlock("div",{key:1,title:c.value,class:"h-[120px] w-[120px] border text-gray-300 border-dashed border-[#CFD9E0] rounded-lg overflow-hidden relative item-file"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(hi)(c.value)),{src:c.value,alt:"file",class:"w-full h-full object-cover cursor-pointer",onClick:m[0]||(m[0]=x=>e.unref(rr)(c.value))},null,8,["src"])),e.createElementVNode("div",ki,[e.createElementVNode("button",{type:"button",onClick:h,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(J.Trash2),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:p,class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-emerald-600"},[e.createVNode(e.unref(J.Eye),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:m[1]||(m[1]=x=>e.unref(rr)(c.value)),class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-blue-500"},[e.createVNode(e.unref(J.Download),{class:"w-4 h-4"})])])],8,bi))}}),[["__scopeId","data-v-b2a1c6a2"]]),lr=n=>n?n.split(",").map(t=>t.trim().toLowerCase()).filter(Boolean).map(t=>t.startsWith(".")?t.slice(1):t):[],ar=(n,t)=>!t||n.size<=t*1024*1024?!0:(ke.notify({type:"error",title:"Помилка!",message:`Файл "${n.name}" занадто великий. Максимальний розмір: ${t} МБ`,position:"right-bottom"}),!1),sr=(n,t)=>{if(!t.length)return!0;const o=n.name.split(".").pop()?.toLowerCase()||"";return t.includes(o)?!0:(ke.notify({type:"error",title:"Помилка!",message:`Неприпустимий формат файлу "${n.name}". Дозволені формати: ${t.map(r=>`.${r}`).join(", ")}`,position:"right-bottom"}),!1)},ir=(n,t)=>{const o={},r=[];if(!n?.length)return{ok:!0,params:o,missingSources:r};const l=t?.value??{};return n.forEach(a=>{if(!a)return;const[s,c]=a.split("="),i=s?.trim(),d=c?.trim();if(!i||!d)return;const h=l[d];if(h==null||h===""){r.push(d);return}o[i]=h}),r.length?(ke.notify({type:"warning",title:"Заповніть поля",message:`Поля (${r.join(", ")}) необхідні для завантаження файлу`,position:"right-bottom"}),{ok:!1,params:o,missingSources:r}):{ok:!0,params:o,missingSources:r}},cr=(n,t)=>!t||!Array.isArray(n)?[]:n,dr=(n,t)=>t||Array.isArray(n)?null:n,ur=n=>{if(!n)return"";const t=n.split(/[/\\]/).pop()||"",o=t.lastIndexOf(".");return o<=0||o===t.length-1?"":t.slice(o+1).toLowerCase()},xi={class:"flex items-center flex-wrap gap-2"},wi=["accept","multiple","disabled"],pr=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(n,{emit:t}){const o=n,r=e.useModel(n,"modelValue"),l=t,a=e.ref(null),s=e.ref(!1),c=e.ref([]),i=e.inject("values"),d=e.computed(()=>cr(r.value,!!o.multiple)),h=e.computed(()=>dr(r.value,!!o.multiple)),p=e.computed(()=>lr(o.format)),g=e.computed(()=>ir(o.customParams,i)),y=U=>{ke.notify({type:"error",title:"Помилка завантаження",message:U||"Не вдалося завантажити файл. Спробуйте ще раз.",position:"right-bottom"})},m=()=>{o.disabled||s.value||g.value.ok&&a.value?.click()},x=async U=>{const Q={api:o.api,customParams:Object.keys(g.value.params).length?g.value.params:void 0},L=await pi(U,Q);return L?.file_path?L.file_path:null},f=e.computed(()=>c.value.filter(U=>U.status!=="done")),E=e.computed(()=>f.value[0]||null),C=U=>typeof U=="string"?U:U?.file_path||"",B=(U,Q)=>({key:`${Date.now()}-${Q}-${U.name}`,file:U,size:U.size,uploaded:0,status:"pending",error:null,path:null,progressPercent:0}),A=async U=>{const{files:Q}=U.target;if(!Q||Q.length===0)return;if(!g.value.ok){a.value&&(a.value.value="");return}const L=Array.from(Q);if(o.max_size&&L.filter(v=>!ar(v,o.max_size)).length>0){a.value&&(a.value.value="");return}if(L.filter(S=>!sr(S,p.value)).length>0){a.value&&(a.value.value="");return}s.value=!0,c.value=o.multiple?L.map((S,v)=>B(S,v)):[];try{if(o.multiple){const T=await Promise.all(L.map(async(O,K)=>{const W=c.value[K];W.status="uploading",W.progressPercent=0;const z=await x(O);return z?(W.status="done",W.path=z,W.uploaded=W.size,W.progressPercent=100):(W.status="error",W.error="Помилка при завантаженні"),z})),H=T.filter(O=>!!O);if(H.length===0){y();return}H.length<T.length&&y("Деякі файли не вдалося завантажити. Перевірте їх та спробуйте знову.");const ne=H,N=Array.isArray(r.value)?r.value:r.value?[r.value]:[];r.value=[...N,...ne],l("change",r.value);return}const S=L[0],v=await x(S);if(!v){y();return}r.value=v,l("change",v)}catch(S){y(S?.message||void 0)}finally{s.value=!1,c.value=[],a.value&&(a.value.value="")}};return(U,Q)=>(e.openBlock(),e.createElementBlock("div",xi,[e.createElementVNode("input",{class:"hidden",ref_key:"fileInput",ref:a,type:"file",accept:o.format,multiple:o.multiple,onChange:A,disabled:s.value||n.disabled},null,40,wi),h.value?(e.openBlock(),e.createBlock(ft,{key:0,item:h.value,value:r.value,"onUpdate:value":Q[0]||(Q[0]=L=>r.value=L)},null,8,["item","value"])):e.createCommentVNode("",!0),o.multiple?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(L,V)=>(e.openBlock(),e.createBlock(ft,{key:`${V}-${C(L)}`,multiple:!0,item:L,value:r.value,"onUpdate:value":Q[1]||(Q[1]=S=>r.value=S)},null,8,["item","value"]))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,L=>(e.openBlock(),e.createBlock(ft,{key:L.key,action:"","is-uploading":!0,disabled:!0,"progress-percent":L.progressPercent,title:L.file.name},null,8,["progress-percent","title"]))),128)),e.createVNode(ft,{action:"","is-uploading":!1,disabled:n.disabled||s.value,title:"Добавить файлы",onClick:m},null,8,["disabled"])],64)):!o.multiple&&!E.value?(e.openBlock(),e.createBlock(ft,{key:2,action:"","is-uploading":!1,disabled:n.disabled||s.value,title:"Обновить файл",onClick:m},null,8,["disabled"])):E.value?(e.openBlock(),e.createBlock(ft,{key:3,action:"","is-uploading":!0,disabled:!0,"progress-percent":E.value.progressPercent,title:E.value.file.name},null,8,["progress-percent","title"])):e.createCommentVNode("",!0)]))}}),vi={class:"vs-input-file2 flex flex-col gap-4"},Ci={class:"flex items-center flex-wrap gap-2"},Ei=["multiple","accept","disabled"],_i={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(n){const t=n,o=e.useModel(n,"modelValue"),r=e.ref(null),l=e.ref(!1),a=e.ref(""),s=e.ref([]),c=e.inject("values"),i=e.computed(()=>!!t.multiple),d=e.computed(()=>lr(t.format)),h=e.computed(()=>{if(d.value.length)return d.value.map(V=>`.${V}`).join(",")}),p=e.computed(()=>cr(o.value,i.value)),g=e.computed(()=>dr(o.value,i.value)),y=e.computed(()=>ir(t.customParams,c)),m=e.computed(()=>s.value.filter(V=>V.status!=="done")),x=e.computed(()=>i.value?null:m.value[0]||null),f=e.computed(()=>{const V=m.value,S=V.reduce((T,H)=>T+H.size,0);if(!S)return 0;const v=V.reduce((T,H)=>T+Math.min(H.uploaded,H.size),0);return Math.min(100,Math.round(v/S*100))}),E=()=>{t.disabled||l.value||y.value.ok&&r.value?.click()},C=async(V,S)=>{const v=S||Q(V,0);try{v.status="uploading";const T={id:"",fileName:v.file.name,subdir:t.subdir,size:v.file.size,...y.value.params},H=await fetch(`${t.api||"/file/upload2"}/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(T)});if(!H.ok)throw new Error("Не вдалося ініціалізувати завантаження");const ne=await H.json().catch(()=>({}));v.uploadId=ne.id||"",v.uploaded=Number(ne.uploaded)||0,v.progressPercent=v.size?Math.min(100,Math.round(v.uploaded/v.size*100)):0;const N=t.chunkSize??5*1024*1024;for(;v.uploaded<v.size;){const W=v.uploaded,z=Math.min(W+N,v.size),Z=await v.file.slice(W,z).arrayBuffer(),$=await fetch(`${t.api||"/file/upload2"}/${v.uploadId}`,{method:"PATCH",headers:{"Content-Range":`bytes ${W}-${z-1}/${v.size}`,"Content-Type":"application/octet-stream"},body:Z});if(!$.ok)throw new Error("Помилка завантаження частини");const j=await $.json().catch(()=>({})),D=j.uploaded!=null?Number(j.uploaded):z;if(v.uploaded=D,v.progressPercent=v.size?Math.min(100,Math.round(v.uploaded/v.size*100)):0,j.finished||D>=v.size){const se=ur(v.file.name),ce=j.file_path||j.filepath||j.url||(se?`/files/uploads/${v.uploadId}.${se}`:`/files/uploads/${v.uploadId}`);return v.path=ce,v.status="done",U(ce),ce}}const O=ur(v.file.name),K=`/files/uploads/${v.uploadId}${O?`.${O}`:""}`;return v.path=K,v.status="done",U(K),K}catch(T){return v.status="error",v.error=T?.message||"Помилка при завантаженні",a.value=T?.message||"Помилка при завантаженні",null}},B=V=>typeof V=="string"?V:V?.file_path||"",A=V=>!V||V.length===0?[]:Array.from(V),U=V=>{if(i.value){const S=Array.isArray(o.value)?[...o.value]:o.value?[o.value]:[];S.push(V),o.value=S;return}o.value=V},Q=(V,S)=>({key:`${Date.now()}-${S}-${V.name}`,file:V,size:V.size,uploaded:0,uploadId:"",status:"pending",error:null,path:null,progressPercent:0}),L=async V=>{const S=V.target,v=A(S.files);if(!v.length)return;if(!y.value.ok){S.value="";return}const T=v.filter(H=>ar(H,t.max_size)&&sr(H,d.value));if(!T.length){S.value="";return}try{l.value=!0,a.value="",s.value=T.map((O,K)=>Q(O,K));const ne=(await Promise.allSettled(s.value.map(O=>C(O.file,O)))).filter(O=>O.status==="fulfilled").map(O=>O.value).filter(O=>!!O),N=s.value.filter(O=>O.status==="error").map(O=>O.file.name);if(ne.length===0){a.value="Не вдалося завантажити файл";return}N.length>0?ke.notify({type:"warning",title:"Частина файлів не завантажилась",message:N.join(", "),position:"right-bottom"}):ke.notify({type:"success",title:"Файл завантажено",message:T.length>1?`Завантажено ${ne.length} файлів`:T[0].name,position:"right-bottom"})}finally{l.value=!1,s.value=[],S.value=""}};return(V,S)=>(e.openBlock(),e.createElementBlock("div",vi,[e.createElementVNode("div",Ci,[e.createElementVNode("input",{ref_key:"fileInput",ref:r,type:"file",class:"hidden",multiple:i.value,accept:h.value,disabled:l.value||t.disabled,onChange:L},null,40,Ei),i.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(p.value,(v,T)=>(e.openBlock(),e.createBlock(ft,{key:`${T}-${B(v)}`,multiple:!0,item:v,value:o.value,"onUpdate:value":S[0]||(S[0]=H=>o.value=H)},null,8,["item","value"]))),128)):g.value?(e.openBlock(),e.createBlock(ft,{key:1,item:g.value,value:o.value,"onUpdate:value":S[1]||(S[1]=v=>o.value=v)},null,8,["item","value"])):e.createCommentVNode("",!0),i.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(m.value,v=>(e.openBlock(),e.createBlock(ft,{key:v.key,action:"","is-uploading":!0,disabled:!0,"progress-percent":v.progressPercent,title:v.file.name},null,8,["progress-percent","title"]))),128)):x.value?(e.openBlock(),e.createBlock(ft,{key:3,action:"","is-uploading":!0,disabled:!0,"progress-percent":x.value.progressPercent,title:x.value.file.name},null,8,["progress-percent","title"])):e.createCommentVNode("",!0),e.createVNode(ft,{action:"","is-uploading":!1,disabled:t.disabled||l.value,"progress-percent":f.value,title:i.value?"Добавить файлы":"Обновить файл",onClick:E},null,8,["disabled","progress-percent","title"])]),a.value?(e.openBlock(),e.createElementBlock("p",_i,e.toDisplayString(a.value),1)):e.createCommentVNode("",!0)]))}}),Bi={class:"flex items-center justify-center h-[30px] w-[30px]"},Vi={class:"max-w-[55vw]"},Si={class:"text-sm font-semibold text-gray-800 truncate dark:text-neutral-200"},$i={class:"flex items-center text-xs text-gray-500 truncate dark:text-neutral-500"},Ai={class:"px-[5px]"},Ni={class:""},Mn=e.defineComponent({__name:"vs-widget-file-info",props:{item:{default:null}},setup(n){const t=n,o=e.computed(()=>{try{return new Date(t.item.cdate).toLocaleDateString("uk-UA",{day:"2-digit",month:"long",year:"numeric"})}catch{return""}});function r(l){if(l<1024)return`${l} B`;const a=l/1024;return a<1024?`${a.toFixed(2)} KB`:`${(a/1024).toFixed(2)} MB`}return(l,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",Bi,[e.createVNode(e.unref(J.FileText),{class:"icon icon-tabler icons-tabler-outline icon-tabler-file h-4 w-4"})]),e.createElementVNode("div",Vi,[e.createElementVNode("p",Si,e.toDisplayString(n.item?.uploaded_name),1),e.createElementVNode("p",$i,[e.createElementVNode("span",null,e.toDisplayString(n.item?.username),1),e.withDirectives(e.createElementVNode("span",Ai,"|",512),[[e.vShow,n.item?.username]]),e.createElementVNode("span",null,e.toDisplayString(o.value),1),a[0]||(a[0]=e.createElementVNode("span",{class:"px-[5px]"},"|",-1)),e.createElementVNode("span",Ni,e.toDisplayString(r(n.item?.size)),1)])])],64))}}),Mi={class:"p-3 relative group flex items-center gap-x-3 border border-gray-200 bg-white rounded-md w-full"},Fi={key:0,class:"flex w-full gap-x-3 items-center"},Di={key:1,class:"flex gap-x-3 w-full items-center"},Ti={key:2,class:"flex gap-x-3 w-full items-center"},Li=["href"],Ii={key:3,class:"flex gap-x-3 w-full items-center"},Oi={class:"lg:absolute lg:top-3 lg:end-1 opacity-100"},Pi={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"},Ri={class:"inline-block"},zi={class:"inline-block"},ji={class:"inline-block"},Ui=e.defineComponent({__name:"vs-widget-file-item",props:{item:{default:null},index:{default:0},prefix:{default:"/api"}},emits:["update","openModal","openLightbox"],setup(n,{emit:t}){const o=n,r=t;function l(p){return["pdf","json"].includes(p.ext)}function a(p){return["ppt","pptx","doc","docx","xls","xlsx"].includes(p.ext)}function s(p){const g=document.createElement("a");g.setAttribute("download",p?.uploaded_name),g.href=p?.file_path,g.click()}function c(p){p?.file_path&&window.open(p.file_path,"_blank")}async function i(){try{await fetch(`${o.prefix}/widget/file/${o.item.entity_id}/${o.item.file_id}`),r("update")}catch(p){console.error(p)}}function d(){r("openModal",{title:"Ви впевнені?",message:"Ви впевнені, що хочете видалити цей файл?",confirmButtonText:"Так, я впевнена/ий",cancelButtonText:"Скасувати",confirm:i,updateListOnConfirm:!0})}function h(p){(o.item.ext==="jpg"||o.item.ext==="png")&&r("openLightbox",{item:o.item,index:p})}return(p,g)=>(e.openBlock(),e.createElementBlock("div",Mi,[n.item.ext==="jpg"||n.item.ext==="png"?(e.openBlock(),e.createElementBlock("div",Fi,[e.createElementVNode("div",{class:"max-w-[55vw] cursor-pointer flex gap-x-3 w-full items-center",onClick:g[0]||(g[0]=y=>h(n.index))},[e.createVNode(Mn,{item:n.item},null,8,["item"])])])):l(n.item)?(e.openBlock(),e.createElementBlock("div",Di,[e.createVNode(Mn,{item:n.item},null,8,["item"])])):a(n.item)?(e.openBlock(),e.createElementBlock("div",Ti,[e.createElementVNode("a",{href:`/api/file-preview?id=${n.item.file_id}`,target:"_blank",class:"flex gap-x-3 w-full items-center"},[e.createVNode(Mn,{item:n.item},null,8,["item"])],8,Li)])):(e.openBlock(),e.createElementBlock("div",Ii,[e.createVNode(Mn,{item:n.item},null,8,["item"])])),e.createElementVNode("div",Oi,[e.createElementVNode("div",Pi,[e.createElementVNode("div",Ri,[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:g[1]||(g[1]=y=>c(n.item))},[e.createVNode(e.unref(J.Eye),{class:"h-4 w-4"})])]),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:g[2]||(g[2]=y=>s(n.item))},[e.createVNode(e.unref(J.Download),{class:"h-4 w-4"})])]),g[4]||(g[4]=e.createElementVNode("div",{class:"w-px h-5 mx-1 bg-gray-200 dark:bg-neutral-700"},null,-1)),e.createElementVNode("div",ji,[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:g[3]||(g[3]=y=>d())},[e.createVNode(e.unref(J.Trash2),{class:"h-4 w-4"})])])])])]))}}),Hi={class:"flex flex-col widget-file xl:bg-white xl:rounded-xl dark:xl:bg-neutral-800 dark:xl:border-neutral-700 w-full"},qi={class:"flex w-full mb-[12px] items-center gap-x-2"},Ki={class:"font-semibold text-gray-800 dark:text-neutral-200 text-[14px]"},Wi={class1:"ml-auto"},Gi={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"},Yi={key:0,class:"py-4 mb-4 space-y-4 border-gray-200 border-y dark:border-neutral-700"},Xi={class:"relative"},Zi={class:"absolute inset-y-0 start-0 flex items-center pointer-events-none z-[1] ps-3.5"},Ji={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"},Qi={key:0},mr=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(n,{emit:t}){const o=n,r=e.inject("form"),l=e.computed(()=>r.value.formId),a=e.ref(!1),s=e.ref(0),c=t,i=e.ref(!1),d=e.ref({}),h=e.ref([]),p=e.ref(""),g=e.computed(()=>Array.isArray(h.value)?h.value.filter(B=>B.ext==="jpg"||B.ext==="png").map(B=>B?.file_path):[]),y=e.computed(()=>p.value===""?h.value:h.value.filter(B=>B?.uploaded_name?.includes(p.value))),m=B=>{const A=g.value.findIndex(U=>U===B.item.file_path);A!==-1&&(a.value=!0,s.value=A)},x=async()=>{try{const B=await fetch(`${o.prefix}/widget/file/${l.value}`).then(A=>A.json());h.value=B?.rows}catch(B){console.error(B)}},f=async B=>{await Promise.all(Array.from(B.target.files).map(async A=>{const U=new FormData;U.append("file",A);try{const Q=`${o.prefix}/widget/file/${l.value}`,L=await fetch(Q,{method:"POST",body:U});return L.ok?(c("update","file-list"),A):(ke.notify({type:L.status>=400&&L.status<500?"warning":"error",title:"Error",message:`Error code: ${L.status}`}),null)}catch(Q){return ke.notify({type:"error",title:"Error",message:Q.message||"Unknown error"}),console.error(Q),null}})),await x()},E=B=>{const A={...B};return B.cancel||(A.cancel=()=>{i.value=!1}),B.updateListOnConfirm&&(A.confirm=async()=>{await B.confirm(),i.value=!1,x()}),A},C=B=>{d.value=E(B),i.value=!0};return e.watch(l,B=>{B&&x()}),e.onMounted(()=>{l.value&&x()}),(B,A)=>{const U=e.resolveComponent("Lightbox"),Q=e.resolveComponent("MessageBox");return e.openBlock(),e.createElementBlock("div",Hi,[e.createElementVNode("div",qi,[e.createElementVNode("h2",Ki," Файлів: "+e.toDisplayString(h.value?.length),1),e.createElementVNode("div",Wi,[e.createElementVNode("label",null,[e.createElementVNode("input",{type:"file",class:"hidden",onChange:A[0]||(A[0]=L=>f(L))},null,32),e.createElementVNode("div",Gi,[e.createVNode(e.unref(J.Upload),{class:"h-4 w-4"})])])])]),h.value?.length>4?(e.openBlock(),e.createElementBlock("div",Yi,[e.createElementVNode("div",null,[e.createElementVNode("div",Xi,[e.createElementVNode("div",Zi,[e.createVNode(e.unref(J.Search),{class:"flex-shrink-0 text-gray-500 size-4 dark:text-neutral-400"})]),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":A[1]||(A[1]=L=>p.value=L),class:"py-2 px-3 ps-10 pe-16 block w-full bg-gray-200 xl:bg-gray-100 rounded-lg text-sm focus:border-blue-500 h-[40px] focus:border-2 focus:outline-none disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:border-transparent dark:text-neutral-400 dark:placeholder:text-neutral-400 dark:focus:ring-neutral-600",placeholder:"Введіть назву файлу"},null,512),[[e.vModelText,p.value,void 0,{trim:!0}]])])])])):e.createCommentVNode("",!0),h.value?.length?(e.openBlock(),e.createElementBlock("div",Ji,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,(L,V)=>(e.openBlock(),e.createBlock(Ui,{key:V,prefix:n.prefix,item:L,index:V,onUpdate:A[2]||(A[2]=S=>B.$emit("update","file-list")),onOpenModal:A[3]||(A[3]=S=>C(S)),onOpenLightbox:A[4]||(A[4]=S=>m(S))},null,8,["prefix","item","index"]))),128)),y.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Qi,[...A[8]||(A[8]=[e.createElementVNode("p",{class:"text-sm text-gray-600 font-sm"}," Файлів з такою назвою не існує, введіть інше пошукове слово ",-1)])]))])):e.createCommentVNode("",!0),e.createVNode(U,{modelValue:a.value,"onUpdate:modelValue":A[5]||(A[5]=L=>a.value=L),startIndex:s.value,"onUpdate:index":A[6]||(A[6]=L=>s.value=L),images:g.value},null,8,["modelValue","startIndex","images"]),e.createVNode(Q,e.mergeProps({modelValue:i.value,"onUpdate:modelValue":A[7]||(A[7]=L=>i.value=L),onConfirm:d.value.confirm},d.value),null,16,["modelValue","onConfirm"])])}}}),ec={class:"flex items-center justify-between"},tc={class:"text-[16px] text-gray-900 font-medium"},nc={class:"grid gap-3"},oc=Be(e.defineComponent({__name:"vs-container-switcher",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(n){const t=n,o=e.ref(t.isOpen);return e.watch(()=>t.isOpen,r=>{o.value=r}),(r,l)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",ec,[e.createElementVNode("p",tc,e.toDisplayString(n.title),1),e.createVNode(no,{modelValue:o.value,"onUpdate:modelValue":l[0]||(l[0]=a=>o.value=a),style:e.normalizeStyle(n.style)},null,8,["modelValue","style"])]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",nc,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,o.value]])]),_:3})]))}}),[["__scopeId","data-v-00f2f0fc"]]),rc={class:"text-[16px] text-gray-900 font-medium"},lc={class:"grid gap-3"},ac=Be(e.defineComponent({__name:"vs-container-accordion",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(n){const t=n,o=e.ref(t.isOpen);return e.watch(()=>t.isOpen,r=>{o.value=r}),(r,l)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("button",{type:"button",onClick:l[0]||(l[0]=a=>o.value=!o.value),class:"flex items-center gap-2"},[e.createVNode(e.unref(J.ChevronDown),{class:e.normalizeClass(["h-4 w-4 duration-300",[o.value?"-rotate-180":""]])},null,8,["class"]),e.createElementVNode("span",rc,e.toDisplayString(n.title),1)]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",lc,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,o.value]])]),_:3})]))}}),[["__scopeId","data-v-dde48964"]]),sc={class:"flex items-center justify-between"},ic={switcher:oc,accordion:ac,default:e.defineComponent({__name:"vs-container-default",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})}},setup(n){return(t,o)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",sc,[e.createElementVNode("p",null,e.toDisplayString(n.title),1)]),e.renderSlot(t.$slots,"default")]))}})},ut={Equal:"==",Inequal:"!=",Higer:">",HigerOrEqual:">=",Lower:"<",LowerOrEqual:"<=",Between:"between",StartWith:"^",EndWith:"$",Contain:"*",In:"in",NotIn:"not_in"},cc=(n,t)=>String(n)===String(t),dc=(n,t)=>String(n)!==String(t),uc=(n,t)=>n>t,pc=(n,t)=>n>=t,mc=(n,t)=>n<t,fc=(n,t)=>n<=t,hc=(n,t)=>Array.isArray(t)&&t.length===2?n>=t[0]&&n<=t[1]:!1,gc=(n,t)=>String(n).startsWith(String(t)),yc=(n,t)=>String(n).endsWith(String(t)),bc=(n,t)=>String(n).includes(String(t)),kc=(n,t)=>Array.isArray(t)?t.includes(n):!1,xc=(n,t)=>Array.isArray(t)?!t.includes(n):!0,wc=(n,t)=>{if(!t)return!0;switch(t?.[1]){case ut.Equal:return cc(n,t?.[2]);case ut.Inequal:return dc(n,t?.[2]);case ut.Higer:return uc(n,t?.[2]);case ut.HigerOrEqual:return pc(n,t?.[2]);case ut.Lower:return mc(n,t?.[2]);case ut.LowerOrEqual:return fc(n,t?.[2]);case ut.Between:return hc(n,t?.[2]);case ut.StartWith:return gc(n,t?.[2]);case ut.EndWith:return yc(n,t?.[2]);case ut.Contain:return bc(n,t?.[2]);case ut.In:return kc(n,t?.[2]);case ut.NotIn:return xc(n,t?.[2]);default:return!0}};function fr(n,t,o){return t==null||!Array.isArray(t)||t.length===0?!0:(Array.isArray(t[0])?t:[t]).every(l=>{if(!Array.isArray(l)||l.length<2)return!0;const a=l[0],s=o?n?.[o]?.[a]??n?.[a]:n?.[a];return wc(s,l)})}const hr=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(n){const t=n,o=e.inject("values",e.ref({})),r=e.inject("form"),l=e.computed(()=>t.schema?.filter(c=>fr(o.value,c?.conditions,t.name||void 0))),a=e.computed(()=>ic[t.view]),s=e.computed(()=>{if(o.value||(o.value={}),!t.name)return o.value;const c=o.value[t.name];if(c)return c;const i={};return o.value={...o.value,[t.name]:i},i});return(c,i)=>n.schema?.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{key:0,title:n.title,style:e.normalizeStyle(n.style)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,d=>(e.openBlock(),e.createBlock(zr,e.mergeProps({key:d.name},{ref_for:!0},d,{item:d,modelValue:s.value[d.name],"onUpdate:modelValue":h=>s.value[d.name]=h,style:n.style,error:e.unref(r)?.errors?.[d.name]}),null,16,["item","modelValue","onUpdate:modelValue","style","error"]))),128))]),_:1},8,["title","style"])):e.createCommentVNode("",!0)}}),gr=({props:n,fetchOptionByValue:t,optionsList:o,selectedOption:r,modelValue:l,onCreated:a})=>{const s=e.ref(!1),c=e.ref({}),i=e.ref([]),d=e.ref(null),h=e.computed(()=>n.add?.title||"Додати"),p=e.computed(()=>n.add?.token||n.add?.model||""),g=e.computed(()=>n.add?.pk||"id");return{isOpenAdd:s,addData:c,addSchema:i,addForm:d,addTitle:h,addOption:async()=>{if(!(!p.value||d?.value.validate()))try{const f=n.add?.api??`/api/table/${p.value}`,E=await fetch(f,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c.value)}),C=await E.json().catch(()=>({})),B=C?.error||C?.message,A=Number(C?.code)>=400;if(!E.ok||A){ke.notify({title:"Помилка",type:"error",message:B||`Код помилки: ${C?.code||E.status}`});return}const U=C?.rows?.[0],Q=C?.[g.value]??C?.id??U?.[g.value]??U?.id;if(!Q){ke.notify({title:"Помилка",type:"error",message:"Обʼєкт створено, але в відповіді відсутній ID."});return}const L=await t(Q);L&&(o.value.some(S=>String(S?.id)===String(L.id))||o.value.push(L)),a?await a(L,Q):L&&(r.value=L,l.value=Q),s.value=!1,ke.notify({title:"Успіх",message:"Обʼєкт успішно створено."})}catch(f){ke.notify({title:"Помилка",type:"error",message:f?.message||"Не вдалося створити обʼєкт."})}},onAddValue:async()=>{if(!n.add)return null;const x=await fetch(`/api/template/form/${n.add.form}`).then(f=>f.json());return i.value=x.schema,c.value={},s.value=!0,null}}},vc=["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"},_c={class:"flex items-center gap-1 min-w-0"},Bc=["title"],Vc=["innerHTML"],Sc=["onClick"],$c={class:"flex-1 min-w-[2px]"},Ac=["placeholder"],Nc=["title"],Mc=["innerHTML"],Fc={key:3,class:"truncate flex-1 min-w-0"},Dc={key:2,class:"flex-1 min-w-[2px]"},Tc=["placeholder"],Lc={key:3,class:"flex-1 flex items-center min-h-[30px] py-0.5 pl-2 text-sm truncate text-inherit"},Ic={class:"vs-input-select__actions relative z-10 flex items-center shrink-0 bg-white"},Oc=["disabled"],Pc={key:1,class:"self-stretch w-px bg-[#ccc] my-[1px]"},Rc=["disabled","title"],zc=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(n,{emit:t}){const o=n,r=t,l=e.computed({get:()=>o.keyWord,set:a=>r("update:keyWord",a)});return(a,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-input-select__control flex min-h-[38px] items-center justify-between rounded transition-colors bg-white",n.disabled?"bg-gray-100 text-gray-400 cursor-not-allowed":""]),role:"combobox","aria-expanded":n.isOpen,"aria-haspopup":"listbox",onKeydown:s[10]||(s[10]=(...c)=>n.onControlKeydown&&n.onControlKeydown(...c)),onClick:s[11]||(s[11]=(...c)=>n.onControlClick&&n.onControlClick(...c)),"data-focus":n.isOpen||n.inputFocus?"true":"false",ref:n.setTriggerRef},[e.createElementVNode("div",Cc,[n.isMulti?(e.openBlock(),e.createElementBlock("div",Ec,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.selectedOptions,c=>(e.openBlock(),e.createElementBlock("div",{key:c.id,class:"flex min-w-0 bg-[rgb(230,230,230)] rounded-[2px] m-[2px] box-border max-w-full"},[e.createElementVNode("div",_c,[n.shouldShowColorDot(c)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[16px] h-[16px] rounded-md block ml-1.5 flex-shrink-0",style:e.normalizeStyle({backgroundColor:c?.color})},null,4)):e.createCommentVNode("",!0),!n.optionTemplate&&n.optionHasIcon(c)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(n.iconWrapperClass),style:e.normalizeStyle(n.getIconColorStyle(c)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.resolveOptionIcon(c)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"truncate text-[#172b4d] overflow-hidden max-w-[200px] px-0.5 pl-1.5",title:n.getLabel(c)},[n.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:n.renderTemplate(c)},null,8,Vc)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(c.text),1)],64))],8,Bc)]),e.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border text-[#172b4d] hover:bg-[rgb(255,189,173)] hover:text-[rgb(222,53,11)] flex-shrink-0",onClick:e.withModifiers(i=>n.onRemoveSelected(c.id),["stop"])},[e.createVNode(e.unref(J.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,Sc)]))),128)),e.createElementVNode("div",$c,[!n.disabled&&n.search?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref:n.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:n.selectedIds.length?" ":n.placeholder,"onUpdate:modelValue":s[0]||(s[0]=c=>l.value=c),onFocus:s[1]||(s[1]=(...c)=>n.onInputFocus&&n.onInputFocus(...c)),onBlur:s[2]||(s[2]=(...c)=>n.onInputBlur&&n.onInputBlur(...c)),onKeydown:s[3]||(s[3]=(...c)=>n.onInputKeydown&&n.onInputKeydown(...c))},null,40,Ac)),[[e.vModelText,l.value]]):e.createCommentVNode("",!0)])])):!n.isMulti&&n.selectedOptionLabel&&l.value===""?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["truncate flex items-center gap-1 min-w-0 pl-2",n.disabled||!n.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:n.selectedOptionLabel},[n.shouldShowColorDot(n.selectedOption)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[14px] h-[14px] rounded-md block flex-shrink-0",style:e.normalizeStyle({backgroundColor:n.selectedOption?.color})},null,4)):e.createCommentVNode("",!0),!n.optionTemplate&&n.optionHasIcon(n.selectedOption)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(n.iconWrapperClass),style:e.normalizeStyle(n.getIconColorStyle(n.selectedOption)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.resolveOptionIcon(n.selectedOption)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),n.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:2,class:"truncate flex-1 min-w-0",innerHTML:n.renderTemplate(n.selectedOption)},null,8,Mc)):(e.openBlock(),e.createElementBlock("span",Fc,e.toDisplayString(n.selectedOption?.text),1))],10,Nc)):e.createCommentVNode("",!0),!n.isMulti&&!n.disabled&&n.search?(e.openBlock(),e.createElementBlock("div",Dc,[e.withDirectives(e.createElementVNode("input",{ref:n.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:n.selectedOptionLabel?" ":n.placeholder,"onUpdate:modelValue":s[4]||(s[4]=c=>l.value=c),onFocus:s[5]||(s[5]=(...c)=>n.onInputFocus&&n.onInputFocus(...c)),onBlur:s[6]||(s[6]=(...c)=>n.onInputBlur&&n.onInputBlur(...c)),onKeydown:s[7]||(s[7]=(...c)=>n.onInputKeydown&&n.onInputKeydown(...c))},null,40,Tc),[[e.vModelText,l.value]])])):!n.isMulti&&n.disabled&&(!n.selectedOptionLabel||l.value!=="")?(e.openBlock(),e.createElementBlock("div",Lc,e.toDisplayString(n.placeholder),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Ic,[n.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:n.disabled,onClick:s[8]||(s[8]=e.withModifiers((...c)=>n.onClearSelected&&n.onClearSelected(...c),["stop"]))},[e.createVNode(e.unref(J.X),{class:"h-4 w-4"})],8,Oc)):e.createCommentVNode("",!0),n.showClear?(e.openBlock(),e.createElementBlock("div",Pc)):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:n.disabled,onClick:s[9]||(s[9]=e.withModifiers((...c)=>n.onToggleSelect&&n.onToggleSelect(...c),["stop"])),title:n.isOpen?"Закрити список":"Відкрити список"},[e.createVNode(e.unref(J.ChevronDown),{class:"h-4 w-4"})],8,Rc)])],42,vc))}}),jc=["aria-disabled","onMousedown"],Uc={class:"leading-[19px]"},Hc=["innerHTML"],qc={key:1,class:"px-3 py-2 text-center text-gray-500"},Kc=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(n){return(t,o)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[n.isOpen?(e.openBlock(),e.createElementBlock("div",{key:0,ref:n.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(n.dropdownStyle),role:"listbox"},[e.createElementVNode("div",{class:"overflow-y-auto py-1",style:e.normalizeStyle({maxHeight:n.dropdownStyle.maxHeight||"300px"}),ref:n.setListRef},[n.filteredOptionsList.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(n.filteredOptionsList,(r,l)=>(e.openBlock(),e.createElementBlock("div",{key:r.id,ref_for:!0,ref:a=>n.setItemRef(a,l),class:e.normalizeClass(["flex px-3 py-2 gap-2 cursor-pointer select-none text-gray-900",n.isSelected(r.id)?"bg-[#2684ff] text-white":"bg-white hover:bg-[#deebff] hover:text-[#172b4d]",n.selectedNavIndex===l&&!n.isSelected(r.id)?"bg-[#deebff] text-[#172b4d]":""]),"aria-disabled":n.isSelected(r.id)?"true":"false",role:"option",tabindex:"-1",onMousedown:e.withModifiers(a=>n.onOptionClick(r),["prevent","stop"])},[n.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),!n.optionTemplate&&n.optionHasIcon(r)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(n.iconWrapperClass),style:e.normalizeStyle(n.getIconColorStyle(r)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.resolveOptionIcon(r)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),e.createElementVNode("div",Uc,[n.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:n.renderTemplate(r)},null,8,Hc)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(r.text),1)],64))])],42,jc))),128)):(e.openBlock(),e.createElementBlock("div",qc," No options "))],4)],4)):e.createCommentVNode("",!0)]))}}),Wc=["disabled"],Gc="__autoMeta",yr="w-[16px] h-[16px] flex items-center justify-center flex-shrink-0 text-current",mo=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(n,{emit:t}){const o=n,r=t,l=e.computed(()=>o.multiple),a=e.computed(()=>o.disabled),s=e.computed(()=>o.search);Je(o.style);const c=e.computed({get:()=>o.modelValue,set:q=>r("update:modelValue",q)});!c.value&&o.defaultValue&&(c.value=o.defaultValue);const i=e.ref(null),d=e.ref(null),h=e.ref(null),p=e.ref(null),g=e.ref(!1),y=e.ref(!1),m=e.ref(null),x=e.ref(-1),f=e.ref([]),E=e.ref(""),C=e.ref(null),B=q=>{d.value=q},A=q=>{C.value=q},U=q=>{p.value=q},Q=q=>{h.value=q},L=(q,le)=>{f.value[le]=q},V=e.ref({}),S=e.ref([]),v=e.computed(()=>{if(!S.value.length)return[];const q=xe.value,le=new Map(q.map(fe=>[fe.id?.toString(),fe]));return S.value.map(fe=>le.get(fe?.toString())).filter(fe=>!!fe)}),T=e.computed(()=>o.placeholder||"Select..."),H=e.computed(()=>Z(m.value)),ne=e.computed(()=>a.value?!1:l.value?S.value.length>0:!!c.value),N=q=>l.value?S.value.some(le=>le?.toString()===q?.toString()):c.value?.toString()===q?.toString(),O=e.computed(()=>{let q=xe.value??[];if(!o.data&&E.value.trim()!==""){const le=E.value.toLowerCase();q=q.filter(fe=>{const Ne=Z(fe).toLowerCase(),ze=fe.text?.toLowerCase?.()||"";return Ne.includes(le)||ze.includes(le)})}if(l.value&&S.value.length){const le=new Set(S.value.map(fe=>fe?.toString()));q=q.filter(fe=>!le.has(fe.id?.toString()))}return q}),K=e.inject("values"),W=e.inject("field-props"),z=e.computed(()=>o.slot??o?.optionTemplate??""),I=q=>Cn(q,z.value),Z=q=>En(q,z.value),$=e.computed(()=>xn(z.value)),j=q=>Jt(q),D=q=>!!(!$.value&&Nt(q)&&!j(q)),se=q=>{const le=Nt(q);return le?{color:le}:void 0},ce=q=>!!(!$.value&&(Zt(q)||j(q))),oe=(q,le,fe)=>{if(!W)return!1;const Ne=W.value?.[q]??{},ze=(je,rt,xt)=>{if(!rt.length)return je;const[dt,...tt]=rt,Qe={...je};if(!tt.length)return Qe[dt]=xt,Qe;const hn=typeof je[dt]=="object"&&je[dt]!==null?je[dt]:{};return Qe[dt]=ze(hn,tt,xt),Qe},He=ze(Ne,le,fe);return W.value={...W.value||{},[q]:He},!0},he=q=>{if(!W||!o.name)return;const le=W.value?.[o.name]??{};W.value={...W.value||{},[o.name]:{...le,[Gc]:q}}},ve=q=>{if(!o.set)return;const le=K?.value;!le&&!W||Object.entries(o.set).forEach(([fe,Ne])=>{if(!fe)return;const ze=q?q[Ne]:null,He=fe.split(".").map(xt=>xt.trim()).filter(Boolean);if(!He.length)return;const[je,...rt]=He;rt.length&&oe(je,rt,ze??null)||le&&(le[je]=ze??null)})},{optionsList:xe,parentValue:Me,fetchOptions:Ie,fetchOptionByValue:Oe,loadOptions:Ae}=vn({props:o,formValues:K,watchParent:!1}),ae=q=>q==null?"":String(q),re=q=>{if(l.value){if(!S.value.length){xe.value=q;return}}else if(!m.value){xe.value=q;return}const le=new Set(q.map(Ne=>ae(Ne.id)).filter(Boolean));if(l.value){const Ne=new Set(S.value.map(He=>ae(He)).filter(Boolean)),ze=(xe.value??[]).filter(He=>{const je=ae(He.id);return!je||!Ne.has(je)?!1:!le.has(je)});xe.value=[...ze,...q];return}const fe=ae(m.value?.id);if(fe&&!le.has(fe)){xe.value=[m.value,...q];return}xe.value=q},be=e.ref(0),Se=async q=>{const le=++be.value,fe=await Ie(q);return le!==be.value?null:fe},Te=async()=>{if(o.data){const q=await Se(E.value);return q&&re(q),xe.value}return Ae()},qe=async q=>{if(q==null||q==="")return null;const le=xe.value?.find(fe=>fe?.id?.toString()===String(q));return le||Oe(q)},X=async q=>{const le=new Set(xe.value.map(Ne=>Ne.id?.toString())),fe=q.filter(Ne=>!le.has(Ne?.toString()));fe.length&&await fe.reduce(async(Ne,ze)=>{await Ne;const He=await qe(ze);He&&xe.value.push(He)},Promise.resolve())},ee=()=>{if(!O.value.length){x.value=-1;return}let q=0;if(!l.value&&m.value){const le=m.value.id?.toString(),fe=O.value.findIndex(Ne=>Ne.id?.toString()===le);fe>=0&&(q=fe)}x.value=q,e.nextTick(()=>{R(f.value[q],h.value)})},te=async()=>{a.value||(g.value=!0,await e.nextTick(()=>{Ce()}),await Te(),await e.nextTick(()=>{Ce(),C.value?.focus()}),ee())},pe=()=>{g.value=!1,x.value=-1,e.nextTick(()=>{C.value?.blur()})},ye=async q=>{if(a.value)return;(q!==void 0?q:!g.value)?await te():pe()},$e=async()=>{if(!a.value){if(g.value){pe();return}await te()}},Fe=()=>{l.value?(S.value=[],c.value=[],r("change",[]),G(null,[])):(m.value=null,c.value=null,r("change",null),G(null,null)),ve(null),he(null),E.value="",pe(),e.nextTick(()=>{C.value?.focus()})},De=q=>{l.value&&(S.value=S.value.filter(le=>le?.toString()!==q?.toString()),c.value=[...S.value],r("change",c.value),G(null),e.nextTick(()=>C.value?.focus()))},G=(q,le)=>{const fe=le??(l.value?[...S.value]:q?.id??null);r("value-selected",{name:o.name,value:fe,option:q})},w=(q,le="manual")=>{l.value?(N(q.id)||(S.value=[...S.value,q.id],c.value=[...S.value],r("change",c.value),G(q)),E.value="",e.nextTick(()=>{C.value?.focus(),x.value=Math.min(x.value,O.value.length-1)}),ve(null)):(m.value=q,c.value=q.id,r("change",c.value),G(q),E.value="",pe(),ve(q),le==="parent-auto"&&he({source:le,parentField:o.parent??null,parentValue:Me.value??null}))},M=q=>{if(N(q.id)){l.value||pe();return}w(q)},R=(q,le)=>{if(!q||!le)return;const fe=q.offsetTop,Ne=fe+q.offsetHeight,ze=le.scrollTop,He=ze+le.clientHeight;let je=le.scrollTop;fe<ze?je=fe-80:Ne>He&&(je=Ne-le.clientHeight+4);const rt=le;rt.scrollTop=je},de=q=>{let le=q.parentElement;for(;le;){if(le.classList.contains("ui-dialog__content"))return le;const fe=window.getComputedStyle(le),Ne=fe.overflow+fe.overflowY+fe.overflowX;if(Ne.includes("auto")||Ne.includes("scroll")||le===document.body||le===document.documentElement)return le;le=le.parentElement}return document.body},Ce=()=>{if(!d.value)return;const q=d.value.getBoundingClientRect(),le=window.innerHeight||document.documentElement.clientHeight,fe=window.innerWidth||document.documentElement.clientWidth,Ne=8,ze=8,He=o.maxHeight||300,je=le-q.bottom-ze-Ne,rt=q.top-ze-Ne,xt=je>=rt,dt=Math.max(fe-Ne*2,0);let{width:tt}=q;dt>0&&tt>dt&&(tt=dt);let{left:Qe}=q;Qe+tt+Ne>fe&&(Qe=fe-tt-Ne),Qe=Math.max(Qe,Ne);const hn=Math.min(He,Math.max(xt?je:rt,50));V.value={position:"fixed",left:`${Qe}px`,width:`${tt}px`,maxHeight:`${hn}px`,transform:xt?"none":"translateY(-100%)",top:xt?`${q.bottom+ze}px`:`${q.top-ze}px`}},Pe=async q=>{a.value||!g.value&&(q.key==="ArrowDown"||q.key==="ArrowUp")&&(q.preventDefault(),await te())},Le=q=>{if(!g.value)return;const{key:le}=q;if(le==="ArrowDown")q.preventDefault(),x.value+1<O.value.length&&(x.value+=1,R(f.value[x.value],h.value));else if(le==="ArrowUp")q.preventDefault(),x.value>0&&(x.value-=1,R(f.value[x.value],h.value));else if(le==="Enter"){q.preventDefault();const fe=O.value[x.value];fe&&w(fe),C.value?.blur()}else le==="Escape"?(q.preventDefault(),pe()):le==="Backspace"?l.value&&E.value===""&&S.value.length&&(S.value=S.value.slice(0,-1),c.value=[...S.value],r("change",c.value)):le==="Home"?(x.value=0,R(f.value[0],h.value)):le==="End"?(x.value=O.value.length-1,R(f.value[x.value],h.value)):le==="Tab"&&pe()},Xe=()=>{a.value||(y.value=!0)},et=()=>{y.value=!1,E.value=""},ot=q=>{q.key==="Escape"&&g.value&&pe()},P=q=>{const le=q.target;i.value?.contains(le)||p.value?.contains(le)||pe()},ue=q=>{g.value&&h.value&&!h.value.contains(q.target)&&Ce()},Ze=()=>{g.value&&Ce()},Vt=()=>{g.value&&Ce()};async function gt(){if(l.value)Array.isArray(c.value)?S.value=[...c.value]:(S.value=c.value==null?[]:[c.value],c.value=[...S.value]),o.data&&S.value.length&&(await X(S.value),await e.nextTick());else{if(Array.isArray(c.value)){const q=c.value[0]??null;c.value=q??null}c.value!=null&&c.value!==""?m.value=await qe(c.value):m.value=null,ve(m.value??null)}}e.watch(c,()=>{gt()}),e.onMounted(async()=>{if(addEventListener("keydown",ot),addEventListener("scroll",ue,!0),addEventListener("resize",Ze),document.addEventListener("click",P,!0),d.value&&de(d.value).addEventListener("scroll",Vt,!0),o.options?.length&&!o.data)xe.value=[...o.options];else if(o.data){const q=await Se("");q&&re(q)}await gt(),fn.value=!1}),e.onUnmounted(()=>{removeEventListener("keydown",ot),removeEventListener("scroll",ue,!0),removeEventListener("resize",Ze),document.removeEventListener("click",P,!0),d.value&&de(d.value).removeEventListener("scroll",Vt,!0)});const{isOpenAdd:Ue,addData:Lt,addSchema:Gt,addForm:Yt,addTitle:It,addOption:Mo,onAddValue:Gn}=gr({props:o,fetchOptionByValue:Oe,optionsList:xe,selectedOption:m,modelValue:c});function Yn(q,le=200){let fe;return(...Ne)=>{fe&&clearTimeout(fe),fe=window.setTimeout(()=>q(...Ne),le)}}const Fo=Yn(async q=>{const le=await Se(q);le&&re(le)},200);e.watch(E,q=>{o.data&&Fo(q.trim())}),e.watch(()=>o.options,q=>{!o.data&&q?.length&&(xe.value=[...q],gt())},{immediate:!0});const fn=e.ref(!0);return e.watch(Me,async()=>{if(o.data&&(fn.value||(l.value?(S.value=[],c.value=[],r("change",[])):(m.value=null,c.value=null,r("change",null))),await Te(),o.auto===1&&Me.value&&xe.value.length>0)){const q=xe.value[0];q&&w(q,"parent-auto")}}),(q,le)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(ke.VsModal),{visible:e.unref(Ue),"onUpdate:visible":le[1]||(le[1]=fe=>e.isRef(Ue)?Ue.value=fe:null),class:"z-[1000]",title:e.unref(It),buttonText:"Додати",onDone:e.unref(Mo),teleport:n.teleport},{default:e.withCtx(()=>[e.createVNode(pt,{schema:e.unref(Gt),modelValue:e.unref(Lt),"onUpdate:modelValue":le[0]||(le[0]=fe=>e.isRef(Lt)?Lt.value=fe:null),ref_key:"addForm",ref:Yt},null,8,["schema","modelValue"])]),_:1},8,["visible","title","onDone","teleport"]),e.createElementVNode("div",{class:"flex gap-1 w-full",ref_key:"selectRoot",ref:i,onClick:le[4]||(le[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",o.customClass])},[le[5]||(le[5]=e.createElementVNode("span",{id:"react-select-live-region",class:"sr-only"},null,-1)),le[6]||(le[6]=e.createElementVNode("span",{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text",role:"log",class:"sr-only"},null,-1)),e.createVNode(zc,{keyWord:E.value,"onUpdate:keyWord":le[2]||(le[2]=fe=>E.value=fe),disabled:a.value,"is-open":g.value,"input-focus":y.value,"is-multi":l.value,"selected-options":v.value,"selected-ids":S.value,placeholder:T.value,search:s.value,"option-template":z.value,"icon-wrapper-class":yr,"selected-option-label":H.value,"selected-option":m.value,"show-clear":ne.value,"set-trigger-ref":B,"set-input-ref":A,"should-show-color-dot":D,"option-has-icon":ce,"get-icon-color-style":se,"resolve-option-icon":j,"render-template":I,"get-label":Z,"on-control-keydown":Pe,"on-control-click":$e,"on-input-focus":Xe,"on-input-blur":et,"on-input-keydown":Le,"on-remove-selected":De,"on-clear-selected":Fe,"on-toggle-select":ye},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(Kc,{"is-open":g.value,"dropdown-style":V.value,"filtered-options-list":O.value,"selected-nav-index":x.value,"option-template":z.value,"icon-wrapper-class":yr,"set-dropdown-ref":U,"set-list-ref":Q,"set-item-ref":L,"is-selected":N,"on-option-click":M,"should-show-color-dot":D,"option-has-icon":ce,"get-icon-color-style":se,"resolve-option-icon":j,"render-template":I},null,8,["is-open","dropdown-style","filtered-options-list","selected-nav-index","option-template"])],2),o.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:le[3]||(le[3]=(...fe)=>e.unref(Gn)&&e.unref(Gn)(...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:a.value,type:"button"},[e.createVNode(e.unref(J.Plus),{class:"h-4 w-4"}),le[7]||(le[7]=e.createElementVNode("span",null,"Додати",-1))],8,Wc)):e.createCommentVNode("",!0)],512)],64))}}),[["__scopeId","data-v-5487673a"]]),fo=(n="")=>`${n}${Math.floor(Math.random()*1e4)}`,Yc=["disabled","aria-expanded"],Xc={class:"truncate"},Zc={class:"py-2 px-4"},Jc={class:"block font-medium text-[13px] text-foreground"},Qc={class:"truncate"},ed={class:"p-1 border-t border-gray-200"},td={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"},nd=["onClick"],od=["checked"],rd={class:"shrink-0 size-3.5 flex justify-center items-center"},ld={key:1,class:"shrink-0 size-2 block mx-auto rounded-full bg-secondary/60"},ad={class:"truncate"},sd={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(n,{emit:t}){const o=n,r=t;Je(o.style);const l=e.computed({get:()=>Array.isArray(o.modelValue)?o.modelValue[0]??null:o.modelValue??null,set:oe=>r("update:modelValue",oe)});l.value==null&&o.defaultValue!=null&&(l.value=o.defaultValue);const a=e.inject("values"),s=e.inject("field-props"),c=e.computed(()=>!!o.disabled),i=e.ref(null),d=e.ref(!1),h=e.ref(null),p=e.ref(null),g=e.ref(null),y=e.ref({}),m=`vs-input-inline-select-${fo()}`,x=e.computed(()=>o.placeholder||"Оберіть значення"),f=e.computed(()=>U(i.value)||o.placeholder||"Оберіть значення"),E=e.computed(()=>o.slot??""),C=e.computed(()=>xn(E.value)),B=e.computed(()=>o.teleport||"body"),A=/^#(?:[\da-fA-F]{3}|[\da-fA-F]{6}|[\da-fA-F]{8})$/,U=oe=>En(oe,E.value),Q=oe=>!!(!C.value&&Nt(oe)),L=e.computed(()=>{const oe=Nt(i.value).trim();return oe?A.test(oe)?`bg-[${oe}] border-[${oe}]`:`bg-${oe.toLowerCase()}-500 border-${oe.toLowerCase()}-500`:""}),{optionsList:V,parentValue:S,fetchOptions:v,fetchOptionByValue:T,loadOptions:H}=vn({props:o,formValues:a,watchParent:!1}),ne=(oe,he,ve)=>{if(!s)return!1;const xe=s.value?.[oe]??{},Me=(Oe,Ae,ae)=>{if(!Ae.length)return Oe;const[re,...be]=Ae,Se={...Oe};if(!be.length)return Se[re]=ae,Se;const Te=typeof Oe[re]=="object"&&Oe[re]!==null?Oe[re]:{};return Se[re]=Me(Te,be,ae),Se},Ie=Me(xe,he,ve);return s.value={...s.value||{},[oe]:Ie},!0},N=oe=>{if(!o.set)return;const he=a?.value;!he&&!s||Object.entries(o.set).forEach(([ve,xe])=>{if(!ve)return;const Me=oe?oe[xe]:null,Ie=ve.split(".").map(ae=>ae.trim()).filter(Boolean);if(!Ie.length)return;const[Oe,...Ae]=Ie;Ae.length&&ne(Oe,Ae,Me??null)||he&&(he[Oe]=Me??null)})},O=oe=>l.value?.toString?.()===oe?.toString?.(),K=()=>{if(!p.value||typeof window>"u")return;const oe=p.value.getBoundingClientRect(),he=8,ve=8,xe=window.innerHeight||document.documentElement.clientHeight,Me=window.innerWidth||document.documentElement.clientWidth,Ie=g.value?.offsetHeight||260,Oe=Math.max(oe.width,176),Ae=Math.max(Me-he*2,120),ae=Math.min(Oe,Ae);let re=oe.left;re+ae+he>Me&&(re=Me-ae-he),re=Math.max(re,he);const be=xe-oe.bottom-ve-he,Se=oe.top-ve-he,Te=be<Math.min(Ie,260)&&Se>be,qe=Math.max(120,Math.min(320,Te?Se:be));y.value={position:"fixed",left:`${re}px`,top:Te?`${oe.top-ve}px`:`${oe.bottom+ve}px`,transform:Te?"translateY(-100%)":"none",width:`${ae}px`,maxHeight:`${qe}px`}},W=async()=>{if(o.data){V.value=await v("");return}await H()},z=async()=>{if(l.value==null||l.value===""){i.value=null,N(null);return}const oe=V.value.find(he=>he.id?.toString()===String(l.value));if(oe){i.value=oe,N(oe);return}i.value=await T(l.value),N(i.value??null)},I=async()=>{c.value||(d.value=!0,await e.nextTick(),K(),await W(),await e.nextTick(),K())},Z=()=>{d.value=!1},$=async()=>{if(d.value){Z();return}await I()},j=oe=>{r("value-selected",{name:o.name,value:oe?.id??null,option:oe})},D=oe=>{i.value=oe,l.value=oe.id,r("change",oe.id),j(oe),N(oe),Z()},se=oe=>{const he=oe.target;h.value?.contains(he)||g.value?.contains(he)||Z()},ce=()=>{d.value&&K()};return e.watch(()=>o.options,oe=>{o.data||(V.value=oe?[...oe]:[],z())},{immediate:!0,deep:!0}),e.watch(l,()=>{z()}),e.watch(S,async()=>{o.data&&(await W(),i.value&&!V.value.some(oe=>oe.id?.toString()===i.value?.id?.toString())&&(i.value=null,l.value=null,r("change",null),j(null),N(null)))}),e.onMounted(async()=>{document.addEventListener("click",se,!0),window.addEventListener("resize",ce),window.addEventListener("scroll",ce,!0),await W(),await z()}),e.onUnmounted(()=>{document.removeEventListener("click",se,!0),window.removeEventListener("resize",ce),window.removeEventListener("scroll",ce,!0)}),(oe,he)=>(e.openBlock(),e.createElementBlock("div",{class:"relative inline-flex w-full max-w-full",ref_key:"rootRef",ref:h,onClick:he[0]||(he[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("button",{ref_key:"triggerRef",ref:p,type:"button",disabled:c.value,"aria-expanded":d.value?"true":"false","aria-haspopup":"menu",class:e.normalizeClass(["py-1.5 px-2.5 inline-flex items-center gap-2 text-nowrap text-xs sm:text-[13px] rounded-lg focus:outline-hidden disabled:opacity-50 disabled:pointer-events-none max-w-full border",L.value?`${L.value} text-white`:"bg-secondary text-secondary-foreground hover:bg-secondary-hover focus:bg-secondary-focus border-gray-300 hover:border-gray-400"]),onClick:$},[e.createElementVNode("span",Xc,e.toDisplayString(f.value),1)],10,Yc),(e.openBlock(),e.createBlock(e.Teleport,{to:B.value},[d.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:g,class:"z-[3000] w-44 transition-[opacity,margin] duration-150 bg-white text-gray-900 border border-gray-200 rounded-xl shadow-lg",style:e.normalizeStyle(y.value),role:"menu","aria-orientation":"vertical"},[e.createElementVNode("div",Zc,[e.createElementVNode("span",Jc,[e.createElementVNode("span",Qc,e.toDisplayString(x.value),1)])]),e.createElementVNode("div",ed,[e.createElementVNode("div",td,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(V),ve=>(e.openBlock(),e.createElementBlock("label",{key:ve.id,class:"py-1.5 px-3 group flex items-center gap-x-3 rounded-lg cursor-pointer text-[13px] text-gray-800 hover:bg-gray-100",onClick:e.withModifiers(xe=>D(ve),["prevent"])},[e.createElementVNode("input",{type:"radio",class:"hidden",name:m,checked:O(ve.id),tabindex:"-1"},null,8,od),e.createElementVNode("span",rd,[Q(ve)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"shrink-0 size-2 block mx-auto rounded-full",style:e.normalizeStyle({backgroundColor:ve.color})},null,4)):(e.openBlock(),e.createElementBlock("span",ld))]),e.createElementVNode("span",ad,e.toDisplayString(U(ve)),1),e.createVNode(e.unref(J.Check),{class:e.normalizeClass(["shrink-0 size-3.5 ms-auto transition-opacity",O(ve.id)?"opacity-100":"opacity-0"])},null,8,["class"])],8,nd))),128))]),e.unref(V).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",sd,"Немає варіантів"))])],4)):e.createCommentVNode("",!0)],8,["to"]))],512))}}),id=["placeholder","disabled"],br=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(n){const t=n,{inputClass:o}=Je(t.style),r=e.useModel(n,"modelValue"),l=e.computed(()=>!!t.disabled),a=e.computed(()=>t.placeholder??"");function s(){typeof r.value=="string"&&(r.value=r.value.trim())}return(c,i)=>e.withDirectives((e.openBlock(),e.createElementBlock("textarea",{"onUpdate:modelValue":i[0]||(i[0]=d=>r.value=d),placeholder:a.value,disabled:l.value,row:"2",onBlur:s,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] h-auto bg-white",[e.unref(o)]]),style:{border:"1px solid #CFD9E0"}},null,42,id)),[[e.vModelText,r.value]])}}),kr=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(n){const t=e.defineAsyncComponent(()=>Promise.resolve().then(()=>By)),o=n,{inputClass:r}=Je(o.style),l=e.useModel(n,"modelValue"),a=e.computed(()=>!!o.disabled),s=e.computed(()=>o.placeholder??""),c=e.computed(()=>({height:o.richtextProps.height||"300px",format:o.format,...o.richtextProps}));return(i,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["!h-full",[n.customClass,e.unref(r)]]),style:e.normalizeStyle(a.value?{pointerEvents:"none",opacity:.6}:{})},[e.createVNode(e.unref(t),e.mergeProps({modelValue:l.value,"onUpdate:modelValue":d[0]||(d[0]=h=>l.value=h),placeholder:s.value},c.value),null,16,["modelValue","placeholder"])],6))}}),cd={},dd={viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function ud(n,t){return e.openBlock(),e.createElementBlock("svg",dd,[...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 pd=Be(cd,[["render",ud]]),md={class:"bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden flex flex-col"},fd={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"},hd={key:0,class:"relative flex-1 min-w-0"},gd={class:"flex md:flex-nowrap flex-wrap items-center md:justify-end justify-start gap-2 shrink-0"},yd={class:"w-full overflow-x-auto"},bd={class:"w-full min-w-[640px] table-auto divide-y divide-gray-200"},kd={class:"bg-gray-50"},xd={class:"border-b border-gray-200"},wd={class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 w-12 text-center"},vd=["onClick"],Cd={key:0,class:"text-gray-400"},Ed={key:0,colspan:"100%",class:"text-center"},_d={class:"w-full"},Bd={class:"p-5 min-h-[200px] flex flex-col justify-center items-center text-center"},Vd=["data-row-index","onDragstart","onDragover","onDrop"],Sd=["onPointerdown"],$d={class:"flex items-center justify-center"},Ad=["innerHTML"],Nd={key:0,class:"flex items-center gap-3 text-sm text-gray-700"},Md={key:0},Fd=["src"],Dd={key:1,class:"rounded-md max-w-[45px] w-[45px] max-h-[45px] h-[45px] bg-gray-200 flex items-center justify-center"},Td={key:1,class:"flex items-center justify-center"},Ld={key:2,class:"text-sm font-medium text-gray-900"},Id={class:"px-4 py-3 text-right whitespace-nowrap"},Od={class:"flex items-center justify-end gap-2"},Pd=["onClick"],Rd=["onClick"],zd={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(n){const t=n,o=e.useSlots(),r=X=>t.actions===void 0?!0:t.actions.includes(X),l=["search","import","export","add"],a=e.computed(()=>l.some(X=>r(X))),s=e.useModel(n,"modelValue"),c=e.ref({}),i=e.ref(""),d=e.ref(null),h=e.ref("asc"),p=e.computed(()=>{const X=s.value??[],ee=i.value?X.filter(ye=>g.value?.some($e=>{const Fe=$e.key||$e.name;if(!Fe)return!1;const De=ye[Fe];return De?Array.isArray(De)?De.join(", ").toLowerCase().includes(i.value.toLowerCase()):String(De).toLowerCase().includes(i.value.toLowerCase()):!1})):X;if(!d.value)return ee;const te=d.value,pe=[...ee].sort((ye,$e)=>{const Fe=Me(ye?.[te]),De=Me($e?.[te]);return typeof Fe=="number"&&typeof De=="number"?Fe-De:String(Fe).localeCompare(String(De))});return h.value==="asc"?pe:pe.reverse()}),g=e.computed(()=>(t.colModel??[]).filter(X=>!X.tableHidden)),y=e.ref(null),m=e.ref(null),x=e.ref(null);function f(X){return X.pointerType==="touch"||X.pointerType==="pen"}function E(X,ee){const pe=document.elementFromPoint(X,ee)?.closest?.("[data-row-index]")??null;if(!pe)return null;const ye=pe.getAttribute("data-row-index");if(ye==null)return null;const $e=Number.parseInt(ye,10);return Number.isNaN($e)?null:$e}function C(X,ee){f(X)&&(X.preventDefault(),X.currentTarget.setPointerCapture(X.pointerId),y.value=ee,m.value=ee)}function B(X){if(y.value===null||!f(X))return;X.preventDefault();const ee=E(X.clientX,X.clientY);ee!==null&&(m.value=ee)}function A(X){if(y.value===null||!f(X))return;X.preventDefault();const ee=E(X.clientX,X.clientY);V(ee??y.value);try{X.currentTarget.releasePointerCapture(X.pointerId)}catch{}}function U(X){if(f(X)){y.value=null,m.value=null;try{X.currentTarget.releasePointerCapture(X.pointerId)}catch{}}}const Q=X=>{y.value=X},L=X=>{m.value=X},V=X=>{if(y.value===null||y.value===X){y.value=null,m.value=null;return}const ee=[...s.value],[te]=ee.splice(y.value,1);ee.splice(X,0,te),s.value=ee,y.value=null,m.value=null},S=()=>{x.value&&x.value.click()},v=X=>{const ee=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".ico",".tiff",".tif"],te=X.toLowerCase();return ee.some(pe=>te.endsWith(pe))},T=X=>{const te=X.target.files?.[0];if(!te)return;const pe=new FileReader;pe.onload=ye=>{try{const $e=ye.target?.result;if(typeof $e=="string"){const Fe=JSON.parse($e);Array.isArray(Fe)&&s.value.push(...Fe)}}catch($e){console.error("Error parsing file:",$e)}},pe.readAsText(te)},H=()=>{const X=JSON.stringify(s.value,null,2),ee=new Blob([X],{type:"application/json"}),te=URL.createObjectURL(ee),pe=document.createElement("a");pe.href=te,pe.download="data.json",pe.click(),URL.revokeObjectURL(te)},ne=new Set(["autocomplete","select","radio","checkbox","combobox"]),N=new Map,O=(X,ee)=>{const te=`/api/suggest/${X}`,pe=te.includes("?")?"&":"?",ye=ee?`&val=${ee}`:"";return`${te}${pe}json=1${ye}`},K=X=>X==null||X===""?null:typeof X=="object"?X?.id!==void 0&&X.id!==null&&X.id!==""?X.id:null:X,W=X=>{const ee=new Set;return Array.isArray(s.value)&&s.value.forEach(te=>{const pe=te?.[X];if(pe==null||pe==="")return;if(Array.isArray(pe)){pe.forEach($e=>{const Fe=K($e);Fe!==null&&ee.add(Fe)});return}const ye=K(pe);ye!==null&&ee.add(ye)}),ee},z=async()=>{if(!t.colModel?.length)return;const X=t.colModel.filter(ee=>ee.data&&ne.has(ee.type?.toLowerCase()||""));X.length&&await Promise.all(X.map(async ee=>{const te=ee.key||ee.name;if(!te)return;const pe=W(te),ye=Array.from(pe).map(De=>String(De)).sort(),$e=ye.join(",");if(!ye.length||N.get(te)===$e)return;N.set(te,$e);const Fe=ye.map(encodeURIComponent).join(",");try{const G=await(await fetch(O(ee.data,Fe))).json();c.value[te]=G?.data??G}catch(De){console.error("Failed to fetch column values",De)}}))};e.watch([()=>t.colModel,()=>s.value],()=>{z()},{immediate:!0,deep:!0});const I=e.ref(""),Z=e.ref(!1);let $="edit",j=0;const D=X=>(X?.format||X?.type||"").toString().toLowerCase(),se=e.computed(()=>(t.colModel?.filter(ee=>D(ee)!=="slot")??[]).map(ee=>{const te=ee.key||ee.name;return te?{...ee,name:te,key:te}:ee})),ce=e.ref({}),oe=e.ref({}),he=X=>typeof X!="string"?!1:!!o[X],ve=(X,ee)=>ee?ee.split(".").reduce((te,pe)=>te==null?te:te[pe.trim()],X):X,xe=(X,ee)=>typeof X!="string"?"":X.replace(/{{\s*([^}]+)\s*}}/g,(te,pe)=>{const ye=ve(ee,pe.trim());return ye??""}),Me=X=>{if(X==null||X==="")return"";if(typeof X=="number")return X;if(typeof X=="boolean")return X?1:0;if(typeof X=="string")return X.toLowerCase();if(Array.isArray(X))return X.map(ee=>Me(ee)).join(", ");if(typeof X=="object"){if(X.text!==void 0)return String(X.text).toLowerCase();if(X.label!==void 0)return String(X.label).toLowerCase();if(X.id!==void 0)return String(X.id).toLowerCase()}return String(X).toLowerCase()},Ie=X=>{const ee=X.key||X.name;if(ee){if(d.value===ee){h.value=h.value==="asc"?"desc":"asc";return}d.value=ee,h.value="asc"}};async function Oe(){I.value="Додати",Z.value=!0,$="add",ce.value={}}function Ae(X,ee){if(!X?.length)return null;const te=typeof ee=="object"?ee?.id:ee;return te==null||te===""?null:X.find(pe=>pe?.id?.toString()===te.toString())?.text??null}function ae(X){return X==null||X===""?"-":Array.isArray(X)?X.map(ee=>typeof ee=="object"?ee?.text??ee?.id??"-":ee).join(", "):typeof X=="object"?X?.text??X?.id??"-":X}function re(X,ee){const te=ee.key||ee.name,pe=X?.[te],ye=c.value[te];if(!pe)return"-";if(Array.isArray(pe)){const Fe=pe.map(De=>Ae(ye,De)).filter(Boolean);return Fe.length?Fe.join(", "):ae(pe)}const $e=Ae(ye,pe);return $e||ae(pe)}async function be(X,ee){I.value="Редагувати",Z.value=!0,$="edit",j=ee,ce.value={...X}}function Se(){const X=oe.value.validate();if(X){ke.notify({type:"warning",title:"Помилка валідації",message:Object.entries(X).map(([ee,te])=>`${ee}: ${te}`).join(`
2
2
  `)});return}$==="add"?Array.isArray(s.value)?s.value=[...s.value,ce.value]:s.value=[ce.value]:s.value=s.value.map((ee,te)=>te===j?ce.value:ee),Z.value=!1}function Te(X){s.value=s.value.filter((ee,te)=>te!==X)}function qe(){Z.value=!1}return(X,ee)=>(e.openBlock(),e.createElementBlock("div",md,[a.value?(e.openBlock(),e.createElementBlock("div",fd,[r("search")?(e.openBlock(),e.createElementBlock("div",hd,[e.createVNode(e.unref(J.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":ee[0]||(ee[0]=te=>i.value=te),placeholder:"Пошук",class:"w-full rounded-md border border-gray-200 bg-white pl-10 pr-3 py-2 text-sm text-gray-900 placeholder:text-gray-400 focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-100"},null,512),[[e.vModelText,i.value]])])):e.createCommentVNode("",!0),e.createElementVNode("div",gd,[r("import")?(e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"fileInput",ref:x,onChange:T,class:"hidden",accept:".json",type:"file"},null,544)):e.createCommentVNode("",!0),r("import")?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",onClick:S,class:"inline-flex items-center gap-2 rounded-md border border-gray-200 bg-white px-3 py-2 text-sm font-medium text-gray-700 hover:border-gray-300 hover:bg-gray-50 transition-colors"},[e.createVNode(e.unref(J.Upload),{class:"h-4 w-4 text-gray-700"}),ee[4]||(ee[4]=e.createTextVNode(" Імпорт ",-1))])):e.createCommentVNode("",!0),r("export")?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:H,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(J.Download),{class:"h-4 w-4 text-gray-700"}),ee[5]||(ee[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(J.Plus),{class:"h-4 w-4 text-white"}),ee[6]||(ee[6]=e.createTextVNode(" Додати ",-1))])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),e.createElementVNode("div",yd,[e.createElementVNode("table",bd,[e.createElementVNode("thead",kd,[e.createElementVNode("tr",xd,[e.createElementVNode("th",wd,[e.createVNode(e.unref(J.GripVertical),{class:"mx-auto h-4 w-4 text-gray-400"})]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,te=>(e.openBlock(),e.createElementBlock("th",{key:te.key,class:"px-4 py-3 text-left text-xs font-semibold text-gray-900"},[e.createElementVNode("button",{type:"button",onClick:pe=>Ie(te),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(te.ua||te.label),1),d.value===(te.key||te.name)?(e.openBlock(),e.createElementBlock("span",Cd,e.toDisplayString(h.value==="asc"?"▲":"▼"),1)):e.createCommentVNode("",!0)],8,vd)]))),128)),ee[7]||(ee[7]=e.createElementVNode("th",{class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 text-center w-[1%] whitespace-nowrap"}," Дії ",-1))])]),e.createElementVNode("tbody",{class:e.normalizeClass(["divide-y divide-gray-200",{"[&_tr:last-child]:border-0":!m.value}])},[p.value.length===0?(e.openBlock(),e.createElementBlock("td",Ed,[e.createElementVNode("div",_d,[e.createElementVNode("div",Bd,[e.createVNode(pd,{class:"w-48 mx-auto"}),ee[8]||(ee[8]=e.createElementVNode("div",{class:"max-w-sm mx-auto mt-6"},[e.createElementVNode("p",{class:"font-medium text-gray-800 dark:text-neutral-200"},"Нічого не знайдено"),e.createElementVNode("p",{class:"mt-2 text-sm text-gray-500 dark:text-neutral-500"})],-1))])])])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,(te,pe)=>(e.openBlock(),e.createElementBlock("tr",{key:te.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":y.value===pe,"border-t-2 border-b-2 border-blue-500 bg-blue-50 dark:bg-blue-900/20":m.value===pe}]),draggable:"true",onDragstart:ye=>Q(pe),onDragover:e.withModifiers(ye=>L(pe),["prevent"]),onDrop:ye=>V(pe)},[e.createElementVNode("td",{class:"px-4 py-3 text-center align-middle touch-none select-none",onPointerdown:ye=>C(ye,pe),onPointermove:B,onPointerup:A,onPointercancel:U},[e.createElementVNode("div",$d,[e.createVNode(e.unref(J.GripVertical),{class:"mx-auto h-4 w-4 text-slate-400 dark:text-slate-500"})])],40,Sd),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,ye=>(e.openBlock(),e.createElementBlock("td",{key:ye.key,class:"px-4 py-3 align-middle"},[D(ye)==="slot"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[he(ye.slot)?e.renderSlot(X.$slots,ye.slot,{key:0,row:te,value:te[ye.key],column:ye}):(e.openBlock(),e.createElementBlock("div",{key:1,class:"text-sm text-gray-900",innerHTML:xe(ye.slot,te)},null,8,Ad))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[D(ye)==="file"?(e.openBlock(),e.createElementBlock("div",Nd,[v(re(te,ye))?(e.openBlock(),e.createElementBlock("div",Md,[e.createElementVNode("img",{src:re(te,ye),alt:"alt",width:"45",class:"rounded-md max-w-[45px] h-[45px] object-cover"},null,8,Fd)])):(e.openBlock(),e.createElementBlock("div",Dd,[e.createVNode(e.unref(J.FileText),{class:"h-4 w-4 min-w-4"})]))])):D(ye)==="color"?(e.openBlock(),e.createElementBlock("div",Td,[e.createElementVNode("span",{class:"inline-flex h-6 w-6 rounded border border-gray-200",style:e.normalizeStyle({backgroundColor:re(te,ye)||"#ffffff"})},null,4)])):(e.openBlock(),e.createElementBlock("div",Ld,e.toDisplayString(re(te,ye)),1))],64))]))),128)),e.createElementVNode("td",Id,[e.createElementVNode("div",Od,[e.createElementVNode("button",{onClick:ye=>be(te,pe),class:"p-1.5 text-gray-600 hover:text-blue-600 hover:bg-blue-50 rounded transition-colors"},[e.createVNode(e.unref(J.Pencil),{class:"h-4 w-4"})],8,Pd),e.createElementVNode("button",{onClick:ye=>Te(pe),class:"p-1.5 text-gray-600 hover:text-red-600 hover:bg-red-50 rounded transition-colors"},[e.createVNode(e.unref(J.Trash2),{class:"h-4 w-4"})],8,Rd)])])],42,Vd))),128))],2)])]),e.createVNode(e.unref(ke.VsModal),{visible:Z.value,title:I.value,size:"lg",onClose:qe,teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(pt,{schema:se.value,"allow-id-field":"",values:ce.value,"onUpdate:values":ee[1]||(ee[1]=te=>ce.value=te),form:oe.value,"onUpdate:form":ee[2]||(ee[2]=te=>oe.value=te)},null,8,["schema","values","form"]),e.createElementVNode("div",zd,[e.createElementVNode("button",{type:"button",onClick:ee[3]||(ee[3]=te=>Z.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"])]))}}),jd={},Ud={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 Hd(n,t){return e.openBlock(),e.createElementBlock("svg",Ud,[...t[0]||(t[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M6 18m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"},null,-1),e.createElementVNode("path",{d:"M18 6m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"},null,-1),e.createElementVNode("path",{d:"M7.5 16.5l9 -9"},null,-1)])])}const qd=Be(jd,[["render",Hd]]),Kd={},Wd={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 Gd(n,t){return e.openBlock(),e.createElementBlock("svg",Wd,[...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 Yd=Be(Kd,[["render",Gd]]),Xd={},Zd={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 Jd(n,t){return e.openBlock(),e.createElementBlock("svg",Zd,[...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 Qd=Be(Xd,[["render",Jd]]);function eu(n,t,o){const r=Math.max(0,Math.min(22,Math.floor(o))),l=2**r,a=Math.floor((n+180)/360*l),s=t*Math.PI/180,c=Math.floor((1-Math.log(Math.tan(s)+1/Math.cos(s))/Math.PI)/2*l);return{z:r,x:a,y:c}}function tu(n,t){if(typeof n!="string"||!n.trim()||!/\{z\}/i.test(n))return;const o={"{z}":t.z,"{x}":t.x,"{y}":t.y,"{-y}":2**t.z-t.y-1,"{s}":"a"};let r=n;return Object.entries(o).forEach(([l,a])=>{r=r.replace(new RegExp(l.replace(/[{}-]/g,"\\$&"),"gi"),String(a))}),r}const wr=/\/(\d+)\/(\d+)\/(\d+)(\.(?:png|jpe?g|webp))(?:\?.*)?$/i;function vr(n,t){if(typeof n!="string"||!n.trim()||!wr.test(n))return;const o=n.replace(wr,`/${t.z}/${t.x}/${t.y}$4`);return o!==n?o:void 0}function nu(n,t){if(n?.url){const o=tu(n.url,t);if(o)return o;const r=vr(n.url,t);if(r)return r}if(n?.preview){const o=vr(n.preview,t);return o||n.preview}}const ou=["title","aria-expanded"],ru=["src"],lu={class:"map-layers__header"},au={class:"map-layers__body"},su={key:0,class:"map-layers__section"},iu={class:"map-layers__grid map-layers__grid--4"},cu=["disabled","title","onClick"],du={class:"map-layers__thumb"},uu=["src"],pu={class:"map-layers__option-label"},mu={key:1,class:"map-layers__section"},fu={class:"map-layers__grid map-layers__grid--4"},hu=["title","onClick"],gu={class:"map-layers__thumb"},yu=["src"],bu={class:"map-layers__option-label"},ku={key:2,class:"map-layers__section map-layers__section--vector"},xu={class:"map-layers__vector-list"},wu=["checked","disabled","onChange"],Dn=.8,vu=Be(e.defineComponent({__name:"map-layers",props:{basemaps:{},activeBaseKey:{},tileOverlays:{},activeTileOverlayKeys:{},vectorOverlays:{},previewTile:{},disabled:{type:Boolean},compact:{type:Boolean}},emits:["onLayerChange","onOverlayToggle","onVectorOverlayToggle"],setup(n,{emit:t}){const o=n,r=t,l=10*Dn,a=400*Dn,s=400*Dn,c=320*Dn,i=e.ref(null),d=e.ref(null),h=e.ref(null),p=e.ref(!1),g=e.ref({}),y=e.computed(()=>Object.keys(o.basemaps||{}).length>0),m=e.computed(()=>Object.keys(o.tileOverlays||{}).length>0),x=e.computed(()=>o.vectorOverlays??[]),f=e.computed(()=>x.value.length>0),E=e.computed(()=>y.value||m.value||f.value),C=e.computed(()=>o.basemaps?.[o.activeBaseKey]?.name||o.activeBaseKey||"Шари"),B=e.computed(()=>U(o.basemaps)),A=e.computed(()=>U(o.tileOverlays||{}));function U(z){const I=o.previewTile;return I?Object.fromEntries(Object.entries(z).map(([Z,$])=>[String(Z),nu($,I)??$.preview??""])):{}}function Q(z){return B.value[z]||o.basemaps?.[z]?.preview||""}function L(z){return A.value[z]||o.tileOverlays?.[z]?.preview||""}const V=e.computed(()=>Q(o.activeBaseKey));function S(z){return Array.isArray(o.activeTileOverlayKeys)&&o.activeTileOverlayKeys.includes(z)}function v(){const z=d.value;if(!z)return;const I=z.getBoundingClientRect(),Z=Math.min(a,window.innerWidth-16);let $=I.left;$+Z>window.innerWidth-8&&($=window.innerWidth-Z-8),$=Math.max(8,$);const j=I.top-l-8,D=o.compact?c:s,se=Math.min(D,Math.max(96,j));g.value={position:"fixed",left:`${$}px`,bottom:`${window.innerHeight-I.top+l}px`,width:`${Z}px`,maxHeight:`${se}px`,zIndex:"10050"}}async function T(){p.value=!p.value,p.value&&(await e.nextTick(),v())}function H(){p.value=!1}function ne(z){z!==o.activeBaseKey&&r("onLayerChange",z)}function N(z){o.disabled||r("onOverlayToggle",z)}function O(z){o.disabled||r("onVectorOverlayToggle",z)}function K(z){if(!p.value)return;const I=z.target;i.value?.contains(I)||h.value?.contains(I)||H()}function W(z){z.key==="Escape"&&H()}return e.watch(p,async z=>{z&&(await e.nextTick(),v())}),e.onMounted(()=>{document.addEventListener("click",K),document.addEventListener("keydown",W),window.addEventListener("resize",v),window.addEventListener("scroll",v,!0)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",K),document.removeEventListener("keydown",W),window.removeEventListener("resize",v),window.removeEventListener("scroll",v,!0)}),(z,I)=>E.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"rootRef",ref:i,class:e.normalizeClass(["map-layers relative",{"map-layers--compact":n.compact}])},[e.createElementVNode("button",{ref_key:"triggerRef",ref:d,type:"button",class:"map-layers__trigger",title:C.value,"aria-haspopup":"dialog","aria-expanded":p.value,onClick:e.withModifiers(T,["stop"])},[V.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:V.value,alt:"",class:"map-layers__trigger-img"},null,8,ru)):e.createCommentVNode("",!0)],8,ou),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"map-layers-panel"},{default:e.withCtx(()=>[p.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"panelRef",ref:h,class:"map-layers__panel",style:e.normalizeStyle(g.value),role:"dialog","aria-label":"Шари карти"},[e.createElementVNode("header",lu,[I[0]||(I[0]=e.createElementVNode("h3",{class:"map-layers__title"},"Шари карти",-1)),e.createElementVNode("button",{type:"button",class:"map-layers__close","aria-label":"Закрити",onClick:H},[e.createVNode(e.unref(J.X),{class:"map-layers__close-icon"})])]),e.createElementVNode("div",au,[m.value?(e.openBlock(),e.createElementBlock("section",su,[I[1]||(I[1]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Додаткові шари",-1)),e.createElementVNode("div",iu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.tileOverlays,(Z,$)=>(e.openBlock(),e.createElementBlock("button",{key:`tile-${$}`,type:"button",class:e.normalizeClass(["map-layers__option",{"map-layers__option--active":S(String($))}]),disabled:n.disabled,title:Z.name||String($),onClick:j=>N(String($))},[e.createElementVNode("span",du,[e.createElementVNode("img",{src:L(String($)),alt:""},null,8,uu)]),e.createElementVNode("span",pu,e.toDisplayString(Z.name||$),1)],10,cu))),128))])])):e.createCommentVNode("",!0),y.value?(e.openBlock(),e.createElementBlock("section",mu,[I[2]||(I[2]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Базові шари",-1)),e.createElementVNode("div",fu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.basemaps,(Z,$)=>(e.openBlock(),e.createElementBlock("button",{key:`base-${$}`,type:"button",class:e.normalizeClass(["map-layers__option",{"map-layers__option--active":n.activeBaseKey===String($)}]),title:Z.name||String($),onClick:j=>ne(String($))},[e.createElementVNode("span",gu,[e.createElementVNode("img",{src:Q(String($)),alt:""},null,8,yu)]),e.createElementVNode("span",bu,e.toDisplayString(Z.name||$),1)],10,hu))),128))])])):e.createCommentVNode("",!0),f.value?(e.openBlock(),e.createElementBlock("section",ku,[I[3]||(I[3]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Дані",-1)),e.createElementVNode("div",xu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.value,Z=>(e.openBlock(),e.createElementBlock("label",{key:Z.id,class:"map-layers__vector-item"},[e.createElementVNode("input",{type:"checkbox",class:"map-layers__checkbox",checked:Z.visible,disabled:n.disabled,onChange:$=>O(Z.id)},null,40,wu),e.createElementVNode("span",null,e.toDisplayString(Z.label),1)]))),128))])])):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))],2)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-7f1be7f7"]]),Rt=1e-10,Tn=/([+-]?\d{1,3})\s*[°º˚]\s*(\d{1,2})\s*['’′`]\s*(\d{1,2}(?:\.\d+)?)\s*["”″]\s*([NSEW])/gi,Cu=/^[+-]?\d+(?:\.\d+)?$/;function Eu(n,t,o){const r=n.split(/\r?\n/).map(d=>d.trim()).filter(Boolean);if(r.length<3)return{ok:!1,errors:[{line:0,message:"Має бути щонайменше 3 рядки координат."}]};if(r.length>100)return{ok:!1,errors:[{line:0,message:"Допускається не більше 100 рядків координат."}]};const l=[],a=[];if(r.forEach((d,h)=>{const p=h+1,g=t==="decimal"?_u(d,p,o):Er(d,p,o);if(!g.ok){l.push(...g.errors);return}const y=a[a.length-1];if(y&&Br(y,g.point)){l.push({line:p,message:"Послідовні точки не повинні дублюватися."});return}a.push(g.point)}),l.length)return{ok:!1,errors:l};if(new Set(a.map(Vu)).size<3)return{ok:!1,errors:[{line:0,message:"Полігон повинен містити мінімум 3 унікальні точки."}]};const c=[...a];let i=!1;return Br(c[0],c[c.length-1])||(c.push(c[0]),i=!0),Su(c)?{ok:!1,errors:[{line:0,message:"Полігон має самоперетин."}]}:{ok:!0,ring:c,wasClosedAutomatically:i}}function _u(n,t,o){return Cr(n,"decimal",o,t)}function Cr(n,t,o,r=1){return t==="decimal"?Bu(n,r,o):Er(n,r,o)}function Bu(n,t,o){const r=[];if(/[A-Za-zА-Яа-яІіЇїЄєҐґ]/.test(n))return{ok:!1,errors:[{line:t,message:"У десятковому форматі не допускаються літери."}]};const l=n.split(/[\s,;]+/).filter(Boolean);if(l.length<2)return{ok:!1,errors:[{line:t,message:"Кожен рядок має містити дві координати."}]};if(l.length>2)return{ok:!1,errors:[{line:t,message:"У рядку дозволено лише одну пару координат."}]};if(!l.every(d=>Cu.test(d)))return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати десяткові координати."}]};const a=Number(l[0]),s=Number(l[1]);if(!Number.isFinite(a)||!Number.isFinite(s))return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати десяткові координати."}]};const c=o==="lat-lon"?a:s,i=o==="lat-lon"?s:a;return(c<-90||c>90)&&r.push({line:t,message:"Широта поза діапазоном (-90..90)."}),(i<-180||i>180)&&r.push({line:t,message:"Довгота поза діапазоном (-180..180)."}),r.length?{ok:!1,errors:r}:{ok:!0,point:[i,c]}}function Er(n,t,o){Tn.lastIndex=0;const r=[...n.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,n.replace(Tn," ").replace(/[\s,;]+/g,"").trim().length)return{ok:!1,errors:[{line:t,message:"У рядку виявлено зайві символи або значення."}]};const a=_r(r[0],t,o==="lat-lon"?"lat":"lon"),s=_r(r[1],t,o==="lat-lon"?"lon":"lat"),c=[];if(a.ok||c.push(a.error),s.ok||c.push(s.error),c.length)return{ok:!1,errors:c};const i=o==="lat-lon"?a.value:s.value;return{ok:!0,point:[o==="lat-lon"?s.value:a.value,i]}}function _r(n,t,o){const r=Number(n[1]),l=Number(n[2]),a=Number(n[3]),s=String(n[4]).toUpperCase();if(!Number.isFinite(r)||!Number.isFinite(l)||!Number.isFinite(a))return{ok:!1,error:{line:t,message:"Невірні значення DMS-координат."}};if(o==="lat"&&!(s==="N"||s==="S")||o==="lon"&&!(s==="E"||s==="W"))return{ok:!1,error:{line:t,message:o==="lat"?"Для широти напрям повинен бути N або S.":"Для довготи напрям повинен бути E або W."}};if(l<0||l>59)return{ok:!1,error:{line:t,message:"Хвилини повинні бути в діапазоні 0..59."}};if(a<0||a>60)return{ok:!1,error:{line:t,message:"Секунди повинні бути в діапазоні 0..60."}};const d=Math.abs(r),h=o==="lat"?90:180;if(d>h)return{ok:!1,error:{line:t,message:o==="lat"?"Градуси широти повинні бути в діапазоні 0..90.":"Градуси довготи повинні бути в діапазоні 0..180."}};if(d===h&&(l!==0||a!==0))return{ok:!1,error:{line:t,message:o==="lat"?"Для 90° широти хвилини й секунди мають бути 0.":"Для 180° довготи хвилини й секунди мають бути 0."}};const p=d+l/60+a/3600;return{ok:!0,value:s==="S"||s==="W"?-p:p}}function Vu(n){return`${n[0].toFixed(12)}:${n[1].toFixed(12)}`}function Br(n,t){return Math.abs(n[0]-t[0])<Rt&&Math.abs(n[1]-t[1])<Rt}function Su(n){if(n.length<4)return!1;for(let t=0;t<n.length-1;t+=1){const o=n[t],r=n[t+1];for(let l=t+1;l<n.length-1;l+=1){if(Math.abs(t-l)<=1||t===0&&l===n.length-2)continue;const a=n[l],s=n[l+1];if($u(o,r,a,s))return!0}}return!1}function $u(n,t,o,r){const l=Ln(n,t,o),a=Ln(n,t,r),s=Ln(o,r,n),c=Ln(o,r,t);return!!(l!==a&&s!==c||l===0&&In(n,o,t)||a===0&&In(n,r,t)||s===0&&In(o,n,r)||c===0&&In(o,t,r))}function Ln(n,t,o){const r=(t[1]-n[1])*(o[0]-t[0])-(t[0]-n[0])*(o[1]-t[1]);return Math.abs(r)<Rt?0:r>0?1:2}function In(n,t,o){return t[0]<=Math.max(n[0],o[0])+Rt&&t[0]+Rt>=Math.min(n[0],o[0])&&t[1]<=Math.max(n[1],o[1])+Rt&&t[1]+Rt>=Math.min(n[1],o[1])}const Au=["title"],Nu={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"},Mu=["onClick"],Fu=["placeholder"],Du={class:"absolute inset-y-0 right-2 flex items-center gap-1"},Tu={class:"flex items-center justify-between gap-2 px-3 py-2 border-b border-gray-100"},Lu={class:"text-xs font-semibold uppercase tracking-wide text-gray-500"},Iu={class:"max-h-[260px] overflow-auto"},Ou={key:0,class:"divide-y divide-gray-100"},Pu=["onClick"],Ru={key:1,class:"px-3 py-3 text-xs text-gray-500"},Vr="formMapSearchAddressHistory",zu=12,ju="https://geo.rv.ua/api-user/dzk.api",Uu="https://nominatim.openstreetmap.org/search",Hu=Be(e.defineComponent({__name:"map-search",props:{config:{}},emits:["goToCoordinates"],setup(n,{emit:t}){const o={mounted(G,w){if(typeof document>"u")return;let M=null;const R=8,de=()=>{const Pe=String(w?.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 Le=G.getBoundingClientRect();M.style.left=`${Le.right+window.scrollX+R}px`,M.style.top=`${Le.top+window.scrollY+(Le.height-M.offsetHeight)/2}px`},Ce=()=>{M?.parentNode&&M.parentNode.removeChild(M),M=null};G.addEventListener("mouseenter",de),G.addEventListener("mouseleave",Ce),Object.assign(G,{tooltipRightHandlers:{show:de,hide:Ce}})},unmounted(G){if(typeof document>"u")return;const w=G.tooltipRightHandlers;w&&(G.removeEventListener("mouseenter",w.show),G.removeEventListener("mouseleave",w.hide))}},r=n,l=t,a=e.getCurrentInstance();function s(){return typeof globalThis<"u"&&globalThis.proxy?globalThis.proxy:typeof window<"u"&&window.proxy?window.proxy:null}function c(){const w=a?.appContext.config.globalProperties?.$settings?.map?.searchViewbox;if(w)return Array.isArray(w)?w.join(","):String(w);const R=s()?.map?.searchViewbox;if(R)return Array.isArray(R)?R.join(","):String(R)}function i(){const w=a?.appContext.config.globalProperties?.$settings?.map?.addressSuggest;if(typeof w=="string"&&w.trim())return w.trim();const R=s()?.map?.addressSuggest;if(typeof R=="string"&&R.trim())return R.trim()}function d(){if(typeof r.config?.cadastreSuggest=="string"&&r.config.cadastreSuggest.trim())return r.config.cadastreSuggest.trim();const G=a?.appContext.config.globalProperties?.$settings,w=G?.map?.cadastreSuggest??G?.map?.parcelSuggest??G?.map?.parcelSearch;if(typeof w=="string"&&w.trim())return w.trim();const M=s(),R=M?.map?.cadastreSuggest??M?.map?.parcelSuggest??M?.map?.parcelSearch;if(typeof R=="string"&&R.trim())return R.trim()}const h=!!i(),p=!!c(),g=e.computed(()=>{const G=["nominatim","xy","parcel"];return h&&G.unshift("address"),p?G:G.filter(w=>w!=="nominatim")}),y=e.computed(()=>{const G=g.value,w=r.config?.tools?.filter(M=>G.includes(M));return w&&w.length?w:G}),m=e.computed(()=>r.config?.placeholder?.trim()||"Пошук…"),x=e.ref(y.value[0]);e.watch(y,G=>{G.includes(x.value)||(x.value=G[0])});const f=e.ref(""),E=e.ref(!1),C=e.ref(null),B=e.ref(null),A=e.ref(null),U=e.ref(null),Q=e.ref([]),L=e.ref(null),V=e.ref(!1),S=e.ref([]),v=e.computed(()=>(x.value==="address"||x.value==="nominatim")&&V.value),T=e.computed(()=>r.config?.addressDebounceMs??1e3);let H=null;const ne=e.ref(!1),N=e.computed(()=>f.value.trim().length>0?Q.value:S.value),O=e.computed(()=>f.value.trim().length?`Знайдено ${Q.value.length}`:"Історія пошуку"),K=e.computed(()=>f.value.trim().length?"Нічого не знайдено":"Історія порожня");function W(){if(typeof window>"u")return[];try{const G=window.localStorage?.getItem?.(Vr);if(!G)return[];const w=JSON.parse(G);return Array.isArray(w)?w:[]}catch{return[]}}function z(G){typeof window>"u"||window.localStorage?.setItem?.(Vr,JSON.stringify(G))}function I(G){const M=[G,...S.value.filter(R=>R.id!==G.id)].slice(0,10);S.value=M,z(M)}const Z=e.reactive({position:"absolute",left:"0px",top:"0px",width:"100%",display:"none"});function $(){if(!U.value)return;const G=U.value.getBoundingClientRect(),w=A.value?.getBoundingClientRect(),M=w?.width??G.width,R=(w?.left??G.left)+window.scrollX,de=G.bottom+window.scrollY+zu;Z.left=`${R}px`,Z.top=`${de}px`,Z.width=`${M}px`,Z.display="block"}const j=()=>{v.value&&$()};function D(){H&&(clearTimeout(H),H=null)}e.watch(x,()=>{f.value="",E.value=!1,Q.value=[],V.value=!1,D(),ne.value=!1}),e.watch(v,G=>{G?e.nextTick(()=>{$()}):Z.display="none"}),e.watch(f,G=>{if(x.value!=="address"&&x.value!=="nominatim"){Q.value=[],D();return}if(!G.trim()){Q.value=[],V.value=S.value.length>0,D();return}D(),V.value=!0,H=window.setTimeout(()=>{te(G).catch(w=>{const M=w?.message||"Помилка пошуку адреси";ke.notify({type:"error",title:"Пошук адреси",message:M})})},T.value)});function se(G){const w=[];B.value&&w.push(B.value),G instanceof HTMLElement&&w.push(G),C.value?.querySelectorAll("li")?.forEach(R=>{w.push(R)}),w.forEach(R=>{R.dispatchEvent(new MouseEvent("mouseleave",{bubbles:!0}))})}function ce(G){E.value&&se(G.target),E.value=!E.value}function oe(G,w){se(w?.target),x.value=G}function he(){f.value="",Q.value=[],V.value=!1,ne.value=!1}function ve(G){const w=G.target;if(E.value){const M=C.value;M&&!M.contains(w)&&(se(w),E.value=!1)}if(v.value){const M=L.value,R=U.value;M&&!M.contains(w)&&(!R||!R.contains(w))&&(V.value=!1)}}e.onMounted(()=>{S.value=W(),window.addEventListener("click",ve,!0),window.addEventListener("scroll",j,!0),window.addEventListener("resize",j)}),e.onBeforeUnmount(()=>{window.removeEventListener("click",ve,!0),window.removeEventListener("scroll",j,!0),window.removeEventListener("resize",j),D()});function xe(G){return G==="xy"?"Координати":G==="parcel"?"Кадастр":G==="nominatim"?"Адреса":"Адресний"}function Me(G){switch(G){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 Ie(G){const w=Cr(G.trim(),"dms","lat-lon");if(w.ok){const[P,ue]=w.point;return{lat:ue,lng:P}}const M=G.replace(/[,]+/g," ").trim();if(!M)return null;const R=M.split(/\s+/).filter(Boolean);if(R.length<2)return null;const de=R.slice(0,2).map(Number);if(!de.every(P=>Number.isFinite(P)))return null;let[Ce,Pe]=de,Le=Ce,Xe=Pe;const et=P=>Math.abs(P)<=90,ot=P=>Math.abs(P)<=180;if(!et(Le)||!ot(Xe))if(et(Xe)&&ot(Le))Le=Pe,Xe=Ce;else return null;return{lat:Le,lng:Xe}}function Oe(G){const w=G?.result||G?.data||G;return(Array.isArray(w)?w:w?[w]:[]).map((R,de)=>{const Ce=R?.geom_centroid,Pe=Array.isArray(Ce?.coordinates)?Ce.coordinates:null;if(!Pe||Pe.length<2)return null;const Le=Number(Pe[0]),Xe=Number(Pe[1]);return!Number.isFinite(Xe)||!Number.isFinite(Le)?null:{id:String(R?.parcel_id??R?.cad_num??de),title:R?.cadnum||R?.cad_num||"Земельна ділянка",lat:Xe,lng:Le}}).filter(R=>!!R)}function Ae(G){return(Array.isArray(G?.features)?G.features:[]).map((M,R)=>{const de=M?.geometry?.coordinates,Ce=Number(de?.[0]),Pe=Number(de?.[1]);if(!Number.isFinite(Pe)||!Number.isFinite(Ce))return null;const Le=M?.properties||{},Xe=Le?.geocoding?.label||Le?.display_name||Le?.label||"Адреса";return{id:String(Le?.geocoding?.place_id||Le?.place_id||R),title:Xe,lat:Pe,lng:Ce}}).filter(M=>!!M)}function ae(G){return Number.isFinite(G.lat)&&Number.isFinite(G.lng)}function re(G){if(G==null||typeof G=="string"&&!G.trim())return null;const w=Number(G);return Number.isFinite(w)?w:null}function be(G){const w=re(G.lng)??re(G.lon)??re(G.longitude)??re(G.x),M=re(G.lat)??re(G.latitude)??re(G.y);if(w!=null&&M!=null)return{lat:M,lng:w};const R=G?.geometry?.coordinates??G?.geom_centroid?.coordinates??G?.centroid?.coordinates??G?.geojson?.geometry?.coordinates??G?.geom?.coordinates;if(Array.isArray(R)&&R.length>=2){const de=re(R[0]),Ce=re(R[1]);if(de!=null&&Ce!=null)return{lat:Ce,lng:de}}return null}function Se(G){return(Array.isArray(G?.data)?G.data:[]).map((M,R)=>{const de=be(M),Ce=String(M.text??M.title??M.label??M.name??M.address??M.display_name??M.id??"Адреса"),Pe=String(M.id??M.code??M.value??R);return de?{id:Pe,title:Ce,...de}:{id:Pe,title:Ce}}).filter(M=>!!M?.title)}function Te(G){const w=d()||ju;if(w.includes(":id"))return w.replace(":id",encodeURIComponent(G));if(w.includes(":name"))return w.replace(":name",encodeURIComponent(G));try{const M=new URL(w,window.location.origin),R=r.config?.parcelQueryParam?.trim()||"cad_num";return M.searchParams.set(R,G),M.toString()}catch{return w}}function qe(G){const w=i();if(!w)return null;if(w.includes(":name"))return w.replace(":name",encodeURIComponent(G));try{const M=new URL(w,window.location.origin);return G.trim()&&M.searchParams.set("q",G),M.toString()}catch{return w}}async function X(G){const w=qe(G);if(!w)return[];const M=await fetch(w);if(!M.ok)throw new Error(`HTTP ${M.status}`);const R=await M.json();return Se(R)}async function ee(G){const w=new URL(Uu);w.searchParams.set("format","geojson"),w.searchParams.set("q",G),w.searchParams.set("addressdetails","1"),w.searchParams.set("bounded","1");const M=c();M&&w.searchParams.set("viewbox",M);const R=await fetch(w.toString());if(!R.ok)throw new Error(`HTTP ${R.status}`);const de=await R.json();return Ae(de)}async function te(G){if(Q.value=[],D(),x.value==="address"){if(!i()){ke.notify({type:"warning",title:"Пошук адреси",message:"Не налаштовано addressSuggest"});return}const R=await X(G);if(!R.length){ke.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}Q.value=R;return}const w=await ee(G);if(!w.length){ke.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}Q.value=w}async function pe(G){if(ae(G)){Fe(G),I(G);return}ke.notify({type:"warning",title:"Пошук адреси",message:"Геометрія для обраної адреси відсутня"})}function ye(){x.value!=="address"&&x.value!=="nominatim"||(V.value=!0,e.nextTick(()=>{$()}))}function $e(G){const M=G.replace(/\s+/g,"").split(":");if(M.length!==4)return!1;const R=[10,2,3,4];return M.every((de,Ce)=>de.length===R[Ce]&&/^\d+$/.test(de))}function Fe(G){l("goToCoordinates",[G.lat,G.lng]),ne.value=!0}async function De(){const G=f.value.trim();if(G){if(x.value==="xy"){const w=Ie(G);if(!w){ke.notify({type:"warning",title:"Пошук координат",message:"Використайте `lat lon` або DMS у форматі `50°27'00\"N 30°31'24\"E`."});return}Fe(w);return}if(x.value==="address"||x.value==="nominatim"){try{await te(G)}catch(w){const M=w?.message||"Помилка пошуку адреси";ke.notify({type:"error",title:"Пошук адреси",message:M})}return}try{if(!$e(G)){ke.notify({type:"warning",title:"Пошук кадастру",message:"Кадастровий номер має формат ХХХХХХХХХХ:ХХ:ХХХ:ХХХХ"});return}const w=await fetch(Te(G));if(!w.ok)throw new Error(`HTTP ${w.status}`);const M=await w.json(),R=Oe(M);if(!R.length)ke.notify({type:"warning",title:"Пошук",message:"Не знайдено результатів"});else{const de=R.find(ae);if(!de){ke.notify({type:"warning",title:"Пошук",message:"Геометрія ділянки відсутня"});return}Fe(de)}}catch(w){const M=w?.message||"Помилка пошуку";ke.notify({type:"error",title:"Пошук",message:M})}}}return(G,w)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"widgetRef",ref:A,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"])},[y.value.length>1?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:C,class:"relative search-type w-[100px]"},[e.createElementVNode("button",{type:"button",class:"vstSelect-input transition-all text-left bg-white border border-gray-200 text-gray-900 rounded-lg focus:ring-blue-500 focus:border-blue-100 block w-full py-1.5 px-3 text-sm cursor-pointer flex items-center justify-between gap-2",onClick:ce},[e.withDirectives((e.openBlock(),e.createElementBlock("span",{ref_key:"selectedToolLabelRef",ref:B,class:"block w-full truncate",title:xe(x.value)},[e.createTextVNode(e.toDisplayString(xe(x.value)),1)],8,Au)),[[o,Me(x.value)]]),(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(["w-4 h-4 text-gray-500 transition-transform",{"rotate-180":E.value}]),viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[...w[3]||(w[3]=[e.createElementVNode("path",{d:"M6 9l6 6 6-6",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])],2))]),E.value?(e.openBlock(),e.createElementBlock("div",Nu,[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,M=>e.withDirectives((e.openBlock(),e.createElementBlock("li",{key:M,class:"px-3 py-2 cursor-pointer hover:bg-gray-100 text-gray-900",onClick:R=>oe(M,R)},[e.createTextVNode(e.toDisplayString(xe(M)),1)],8,Mu)),[[o,Me(M)]])),128))])])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"searchWrapperRef",ref:U,class:"relative flex-1 min-w-[140px]"},[x.value==="parcel"?(e.openBlock(),e.createBlock(wn,{key:0,modelValue:f.value,"onUpdate:modelValue":w[0]||(w[0]=M=>f.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":w[1]||(w[1]=M=>f.value=M),placeholder:m.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:ye},null,42,Fu)),[[e.vModelText,f.value,void 0,{trim:!0}]]),e.createElementVNode("div",Du,[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},[...w[4]||(w[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),w[5]||(w[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))]),v.value?(e.openBlock(),e.createBlock(e.Teleport,{key:2,to:"body"},[e.createElementVNode("div",{ref_key:"addressResultsRef",ref:L,class:"vs-select__options mt-1 bg-white border border-gray-300 rounded-lg shadow-lg text-sm text-gray-900 z-50",style:e.normalizeStyle(Z)},[e.createElementVNode("div",Tu,[e.createElementVNode("span",Lu,e.toDisplayString(O.value),1),e.createElementVNode("button",{type:"button",class:"text-gray-400 hover:text-gray-600","aria-label":"Закрити",onClick:w[2]||(w[2]=M=>V.value=!1)}," ✕ ")]),e.createElementVNode("div",Iu,[N.value.length?(e.openBlock(),e.createElementBlock("ul",Ou,[(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:R=>pe(M)},e.toDisplayString(M.title),9,Pu))),128))])):(e.openBlock(),e.createElementBlock("div",Ru,e.toDisplayString(K.value),1))])],4)])):e.createCommentVNode("",!0)],512)],32)],512))}}),[["__scopeId","data-v-8c9147ac"]]),qu={class:"pt-1 border-t border-gray-100"},Ku={class:"space-y-1"},Wu=e.defineComponent({__name:"AddCoordinates",emits:["submit","cancel"],setup(n,{emit:t}){const o=t,r=e.ref(null),l=e.ref(null),a=(i,d,h)=>Math.min(Math.max(i,d),h),s=()=>{if(r.value===null||l.value===null||!Number.isFinite(r.value)||!Number.isFinite(l.value))return;const i=a(r.value,-90,90),d=a(l.value,-180,180);o("submit",{lat:i,lng:d}),r.value=null,l.value=null},c=()=>{r.value=null,l.value=null,o("cancel")};return(i,d)=>(e.openBlock(),e.createElementBlock("div",qu,[d[2]||(d[2]=e.createElementVNode("p",{class:"text-xs text-gray-600 mb-1"},"Додати точку за координатами:",-1)),e.createElementVNode("div",Ku,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[0]||(d[0]=h=>r.value=h),type:"number",step:"0.0001",class:"w-full px-2 py-1 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Широта (50.4501)"},null,512),[[e.vModelText,r.value,void 0,{number:!0}]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[1]||(d[1]=h=>l.value=h),type:"number",step:"0.0001",class:"w-full px-2 py-1 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Довгота (30.5234)"},null,512),[[e.vModelText,l.value,void 0,{number:!0}]]),e.createElementVNode("div",{class:"flex gap-1.5"},[e.createElementVNode("button",{class:"flex-1 px-2 py-1 bg-blue-500 hover:bg-blue-600 text-white text-xs font-medium rounded transition-colors",type:"button",onClick:s}," Додати "),e.createElementVNode("button",{class:"px-2 py-1 bg-gray-200 hover:bg-gray-300 text-gray-700 text-xs font-medium rounded transition-colors",type:"button",onClick:c}," Скасувати ")])])]))}}),Gu=e.defineComponent({__name:"BtnAdd",emits:["click"],setup(n){return(t,o)=>(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:o[0]||(o[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(J.Plus),{size:12,"stroke-width":2}),o[1]||(o[1]=e.createTextVNode(" Додати ",-1))]))}}),Yu=e.defineComponent({__name:"BtnClear",emits:["click"],setup(n){return(t,o)=>(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:o[0]||(o[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(J.Trash2),{size:12,"stroke-width":2}),o[1]||(o[1]=e.createTextVNode(" Очистити ",-1))]))}}),Xu=e.defineComponent({__name:"BtnComplete",emits:["click"],setup(n){return(t,o)=>(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:o[0]||(o[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(J.Circle),{size:12,"stroke-width":2}),o[1]||(o[1]=e.createTextVNode("Замкнути ",-1))]))}}),Zu=new Intl.NumberFormat("uk-UA",{minimumFractionDigits:2,maximumFractionDigits:2});function zt(n){return Zu.format(n)}function Sr(n){return n>=1e3?`${zt(n/1e3)} км`:`${zt(n)} м`}const Ju={class:"flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"},Qu={key:0,class:"flex-1 flex gap-1"},ep={key:1,class:"flex-1 font-mono text-gray-700"},tp=e.defineComponent({__name:"DotListItem",props:{id:{},index:{},coords:{}},emits:["update","delete"],setup(n,{emit:t}){const o=n,r=t,l=e.computed(()=>`${o.coords.lat.toFixed(4)}°, ${o.coords.lng.toFixed(4)}°`),a=e.ref(!1),s=e.ref(o.coords.lat),c=e.ref(o.coords.lng);e.watch(()=>o.coords,g=>{s.value=g.lat,c.value=g.lng},{deep:!0,immediate:!0});const i=(g,y,m)=>Math.min(Math.max(g,y),m),d=()=>{a.value=!0},h=()=>{if(!Number.isFinite(s.value)||!Number.isFinite(c.value))return;const g=i(s.value,-90,90),y=i(c.value,-180,180);r("update",{id:o.id,coords:{lat:g,lng:y}}),a.value=!1},p=()=>{r("delete",o.id)};return(g,y)=>(e.openBlock(),e.createElementBlock("div",Ju,[e.createVNode(e.unref(J.MapPin),{size:12,"stroke-width":2,class:"text-gray-400 flex-shrink-0"}),a.value?(e.openBlock(),e.createElementBlock("div",Qu,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":y[0]||(y[0]=m=>s.value=m),type:"number",step:"0.0001",min:"-90",max:"90",class:"flex-1 px-1.5 py-0.5 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Широта"},null,512),[[e.vModelText,s.value,void 0,{number:!0}]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":y[1]||(y[1]=m=>c.value=m),type:"number",step:"0.0001",min:"-180",max:"180",class:"flex-1 px-1.5 py-0.5 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Довгота"},null,512),[[e.vModelText,c.value,void 0,{number:!0}]]),e.createElementVNode("button",{class:"px-1.5 py-0.5 bg-emerald-500 text-white rounded hover:bg-emerald-600 text-xs",type:"button",onClick:h}," ✓ ")])):(e.openBlock(),e.createElementBlock("span",ep,e.toDisplayString(l.value),1)),a.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:2,class:"text-blue-500 hover:text-blue-600 px-0.5",type:"button",onClick:d}," ✎ ")),e.createElementVNode("button",{class:"text-rose-500 hover:text-rose-600 px-0.5",type:"button",onClick:p}," ✕ ")]))}}),np={class:"ruler-control px-3 py-2.5 space-y-2"},op={type:"button",class:"ruler-row w-full flex items-center gap-2 cursor-pointer group text-left"},rp={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"},lp={class:"text-sm font-semibold text-slate-700"},ap={class:"ruler-row"},sp={type:"button",class:"w-full flex items-center gap-2 cursor-pointer group text-left"},ip={class:e.normalizeClass(["flex items-center justify-center w-5 h-5 rounded-full shrink-0 transition-colors pointer-events-none"]),title:"Площа замкнутого контуру","aria-hidden":"true"},cp={class:"inline-flex rounded-md overflow-hidden border border-gray-200 bg-gray-100"},dp=["onClick"],up={class:"flex items-center gap-2 mt-0.5 pl-7"},pp={key:0,class:"text-base font-semibold text-green-600"},mp={key:1,class:"text-xs text-gray-400"},fp={class:"ruler-row flex items-center gap-2 cursor-pointer"},hp={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"},gp={class:"text-xs font-medium text-gray-600 flex-1"},yp={key:0,class:"pt-1.5 border-t border-gray-100 max-h-32 overflow-y-auto space-y-1"},bp=e.defineComponent({__name:"ControlPanel",props:{points:{},isShapeClosed:{type:Boolean}},emits:["update-point","delete-point"],setup(n){const t=n,o=e.ref(!1),r=e.ref("km2"),l=[{id:"km2",label:"км²"},{id:"ha",label:"га"},{id:"m2",label:"м²"}],a=()=>{o.value=!o.value},s=(m,x)=>{const f=S=>S*Math.PI/180,E=f(x.lat-m.lat),C=f(x.lng-m.lng),B=f(m.lat),A=f(x.lat),U=Math.sin(E/2),Q=Math.sin(C/2);return 6371e3*(2*Math.asin(Math.sqrt(U*U+Math.cos(B)*Math.cos(A)*Q*Q)))},c=e.computed(()=>{if(t.points.length<2)return 0;let m=0;for(let x=1;x<t.points.length;x+=1)m+=s(t.points[x-1].coords,t.points[x].coords);return t.isShapeClosed&&t.points.length>=2&&(m+=s(t.points[t.points.length-1].coords,t.points[0].coords)),m}),i=e.computed(()=>c.value>=1e3?`${zt(c.value/1e3)} км`:`${zt(c.value)} м`);function d(m){if(m.length<3)return 0;const x=m[0].lat,f=m[0].lng,E=(B,A)=>{const U=(B-x)*110574;return{x:(A-f)*111320*Math.cos(x*Math.PI/180),y:U}};let C=0;for(let B=0;B<m.length;B++){const A=(B+1)%m.length,U=E(m[B].lat,m[B].lng),Q=E(m[A].lat,m[A].lng);C+=U.x*Q.y-U.y*Q.x}return Math.abs(C)*.5}const h=e.computed(()=>{if(!t.isShapeClosed||t.points.length<3)return 0;const m=t.points.map(x=>x.coords);return d(m)}),p=e.computed(()=>h.value>0),g=e.computed(()=>{const m=h.value;if(m===0)return"—";if(r.value==="km2"){const f=m/1e6;return`${zt(f)} км²`}if(r.value==="ha"){const f=m/1e4;return`${zt(f)} га`}const x=m>=1?Math.round(m):m;return`${zt(x)} м²`}),y=e.computed(()=>{const m=t.points.length;return m===1?"1 точка":m>=2&&m<=4?`${m} точки`:`${m} точок`});return e.watch(()=>t.points.length,()=>{t.points.length===0&&(o.value=!1)}),(m,x)=>(e.openBlock(),e.createElementBlock("div",np,[e.createElementVNode("button",op,[e.createElementVNode("span",rp,[e.createVNode(e.unref(J.Info),{size:12,"stroke-width":2.5})]),x[1]||(x[1]=e.createElementVNode("span",{class:"text-xs font-medium text-gray-600 flex-1"},"Загальна відстань",-1)),e.createElementVNode("span",lp,e.toDisplayString(i.value),1)]),e.createElementVNode("div",ap,[e.createElementVNode("button",sp,[e.createElementVNode("span",ip,[e.createVNode(e.unref(J.Info),{size:12,"stroke-width":2.5})]),x[2]||(x[2]=e.createElementVNode("span",{class:"text-xs font-medium text-gray-600 flex-1"},"Площа",-1)),e.createElementVNode("div",cp,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(l,(f,E)=>e.createElementVNode("button",{key:f.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",E===0&&"rounded-l-md",E===l.length-1&&"rounded-r-md",r.value===f.id?"bg-white text-green-600 font-semibold shadow-sm":"text-gray-600 hover:bg-gray-50"]),onClick:e.withModifiers(C=>r.value=f.id,["stop"])},e.toDisplayString(f.label),11,dp)),64))])]),e.createElementVNode("div",up,[p.value?(e.openBlock(),e.createElementBlock("span",pp,e.toDisplayString(g.value),1)):(e.openBlock(),e.createElementBlock("span",mp,"—"))])]),e.createElementVNode("div",fp,[e.createElementVNode("span",hp,[e.createVNode(e.unref(J.Info),{size:12,"stroke-width":2.5})]),e.createElementVNode("span",gp,e.toDisplayString(y.value),1),e.createElementVNode("button",{type:"button",class:"text-xs text-blue-500 hover:text-blue-600 font-medium transition-colors",onClick:e.withModifiers(a,["stop"])}," Координати ")]),o.value?(e.openBlock(),e.createElementBlock("div",yp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.points,(f,E)=>(e.openBlock(),e.createBlock(tp,{key:f.id,id:f.id,index:E+1,coords:f.coords,onUpdate:x[0]||(x[0]=C=>m.$emit("update-point",C)),onDelete:C=>m.$emit("delete-point",f.id)},null,8,["id","index","coords","onDelete"]))),128))])):e.createCommentVNode("",!0)]))}}),kp={class:"px-3 py-3 bg-blue-50/50 border-b border-blue-100"},xp={class:"flex items-start gap-2"},wp=e.defineComponent({__name:"InfoHint",setup(n){return(t,o)=>(e.openBlock(),e.createElementBlock("div",kp,[e.createElementVNode("div",xp,[e.createVNode(e.unref(J.Info),{size:16,"stroke-width":2,class:"text-blue-600 flex-shrink-0 mt-0.5"}),o[0]||(o[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))])]))}}),vp={class:"space-y-1.5"},Cp={class:"space-y-1 max-h-40 overflow-y-auto"},Ep={class:"text-gray-700"},_p={class:"font-semibold text-slate-800"},Bp=e.defineComponent({__name:"ToPointList",props:{points:{},isShapeClosed:{type:Boolean}},setup(n){const t=n;function o(a,s){const c=y=>y*Math.PI/180,i=c(s.lat-a.lat),d=c(s.lng-a.lng),h=c(a.lat),p=c(s.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(i/2)**2+Math.cos(h)*Math.cos(p)*Math.sin(d/2)**2)))}function r(a){return Sr(a)}const l=e.computed(()=>{const a=[],s=t.points;if(s.length<2)return a;for(let c=0;c<s.length;c++){const i=c===s.length-1&&t.isShapeClosed?0:c+1;if(i>=s.length)break;const d=o(s[c].coords,s[i].coords);a.push({from:c+1,to:i+1,label:r(d)})}return a});return(a,s)=>(e.openBlock(),e.createElementBlock("div",vp,[s[0]||(s[0]=e.createElementVNode("p",{class:"text-xs font-medium text-gray-600 mb-1.5"},"Відстань між точками:",-1)),e.createElementVNode("div",Cp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(c,i)=>(e.openBlock(),e.createElementBlock("div",{key:i,class:"flex items-center justify-between text-xs py-1 px-2 rounded bg-gray-50"},[e.createElementVNode("span",Ep,"Точка "+e.toDisplayString(c.from)+" → Точка "+e.toDisplayString(c.to),1),e.createElementVNode("span",_p,e.toDisplayString(c.label),1)]))),128))])]))}}),Vp={class:"ruler-panel-wrap absolute bottom-12 right-4 z-[1001] animate-slide-up"},Sp={class:"bg-white rounded-xl shadow-2xl border border-gray-200 overflow-hidden w-72"},$p={class:"bg-gradient-to-r from-blue-400 to-blue-500 px-3 py-2 flex items-center justify-between"},Ap={class:"flex items-center gap-2"},Np={class:"w-6 h-6 bg-white/20 rounded-lg flex items-center justify-center"},Mp={class:"flex border-b border-gray-200"},Fp={key:1,class:"px-3 py-2.5"},Dp={key:1,class:"text-xs text-gray-500"},Tp={class:"px-2.5 py-1.5 bg-gray-50 border-t border-gray-200 space-y-1.5"},Lp={class:"flex gap-1.5"},Ip=e.defineComponent({name:"RulerPanel",__name:"RulerPanel",emits:["close","tab-change","points-change","add-request","complete","shape-closed-change"],setup(n,{expose:t,emit:o}){const r=o,l=e.ref([]),a=e.computed(()=>l.value.length>0),s=e.ref(!1),c=e.ref(!1),i=e.ref("general");function d(v){i.value=v,r("tab-change",v)}e.onMounted(()=>{r("tab-change",i.value)});const h=e.computed(()=>l.value.length>=3&&!c.value);let p=1;const g=()=>l.value.map(v=>({id:v.id,coords:{...v.coords}})),y=()=>{l.value.length<3&&c.value&&(c.value=!1,r("shape-closed-change",!1)),r("points-change",g())},m=()=>{const v=p;return p+=1,v},x=v=>{l.value=[...l.value,{id:m(),coords:{lat:v.lat,lng:v.lng}}],y()},f=({id:v,coords:T})=>{const H=l.value.findIndex(N=>N.id===v);if(H===-1)return;const ne=[...l.value];ne[H]={id:v,coords:{...T}},l.value=ne,y()},E=v=>{l.value=l.value.filter(T=>T.id!==v),y()},C=()=>{l.value=[],c.value&&(c.value=!1,r("shape-closed-change",!1)),y()},B=v=>{f(v)},A=v=>{E(v)},U=()=>{s.value=!0,r("add-request")},Q=v=>{x(v),s.value=!1},L=()=>{s.value=!1},V=()=>{h.value&&(c.value=!0,r("complete"),r("shape-closed-change",!0))},S=()=>{C(),s.value=!1,r("close")};return t({addPoint:x,clearPoints:C}),(v,T)=>(e.openBlock(),e.createElementBlock("div",Vp,[e.createElementVNode("div",Sp,[e.createElementVNode("div",$p,[e.createElementVNode("div",Ap,[e.createElementVNode("div",Np,[e.createVNode(e.unref(J.Ruler),{size:14,"stroke-width":2,class:"text-white"})]),T[2]||(T[2]=e.createElementVNode("h3",{class:"text-white font-semibold text-xs"},"Вимірювання",-1))]),e.createElementVNode("button",{class:"w-5 h-5 flex items-center justify-center rounded hover:bg-white/20 transition-colors","aria-label":"Закрити",onClick:S},[e.createVNode(e.unref(J.X),{size:14,"stroke-width":2,class:"text-white"})])]),e.createElementVNode("div",Mp,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors",i.value==="general"?"text-blue-600 border-b-2 border-blue-500 bg-blue-50/50":"text-gray-500 hover:text-gray-700"]),onClick:T[0]||(T[0]=H=>d("general"))}," Загальна ",2),e.createElementVNode("button",{type:"button",class:e.normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors",i.value==="topoint"?"text-blue-600 border-b-2 border-blue-500 bg-blue-50/50":"text-gray-500 hover:text-gray-700"]),onClick:T[1]||(T[1]=H=>d("topoint"))}," До точки ",2)]),i.value==="general"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[a.value?(e.openBlock(),e.createBlock(bp,{key:1,points:l.value,"is-shape-closed":c.value,onUpdatePoint:B,onDeletePoint:A},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createBlock(wp,{key:0}))],64)):(e.openBlock(),e.createElementBlock("div",Fp,[a.value?(e.openBlock(),e.createBlock(Bp,{key:0,points:l.value,"is-shape-closed":c.value},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createElementBlock("p",Dp,"Додайте точки на карті, щоб бачити відстані між ними."))])),e.createElementVNode("div",Tp,[e.createElementVNode("div",Lp,[s.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(Gu,{key:0,onClick:U})),h.value?(e.openBlock(),e.createBlock(Xu,{key:1,onClick:V})):e.createCommentVNode("",!0)]),s.value?(e.openBlock(),e.createBlock(Wu,{key:0,onSubmit:Q,onCancel:L})):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createBlock(Yu,{key:1,onClick:C})):e.createCommentVNode("",!0)])])]))}}),lt="ruler-points",Et="ruler-line",_t="ruler-polygon",Bt="ruler-segments",Op=e.defineComponent({__name:"RulerLayer",props:{map:{},points:{},isShapeClosed:{type:Boolean},labelMode:{}},setup(n){function t(m,x){const f=Q=>Q*Math.PI/180,E=f(x.lat-m.lat),C=f(x.lng-m.lng),B=f(m.lat),A=f(x.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(E/2)**2+Math.cos(B)*Math.cos(A)*Math.sin(C/2)**2)))}function o(m){return Sr(m)}const r=n;function l(){return{type:"FeatureCollection",features:[]}}function a(m,x,f){const E=f??"general",C=[];let B=0;C.push(0);for(let A=1;A<m.length;A++)B+=t(m[A-1].coords,m[A].coords),C.push(B);return x&&m.length>=2&&(B+=t(m[m.length-1].coords,m[0].coords)),{type:"FeatureCollection",features:m.map((A,U)=>{const Q=E==="general"?U===0?"0":o(C[U]):U===0?"0":o(t(m[U-1].coords,m[U].coords));return{type:"Feature",geometry:{type:"Point",coordinates:[A.coords.lng,A.coords.lat]},properties:{id:A.id,index:U+1,label:Q}}})}}function s(m,x){if(m.length<2)return l();const f=[];for(let E=0;E<m.length;E++){const C=E===m.length-1&&x?0:E+1;if(C>=m.length)break;const B=m[E].coords,A=m[C].coords,U=t(B,A);f.push({type:"Feature",geometry:{type:"LineString",coordinates:[[B.lng,B.lat],[A.lng,A.lat]]},properties:{distance:o(U)}})}return{type:"FeatureCollection",features:f}}function c(m,x){if(m.length<2)return l();const f=m.map(E=>[E.coords.lng,E.coords.lat]);return x&&f.push(f[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"LineString",coordinates:f},properties:{}}]}}function i(m){if(m.length<3)return l();const x=m.map(f=>[f.coords.lng,f.coords.lat]);return x.push(x[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"Polygon",coordinates:[x]},properties:{}}]}}let d=!1;function h(m){m.getSource(lt)||(m.addSource(lt,{type:"geojson",data:l()}),m.addLayer({id:`${lt}-circle`,type:"circle",source:lt,paint:{"circle-radius":5,"circle-color":"#1e293b","circle-stroke-width":2,"circle-stroke-color":"#ffffff"}}),m.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}})),m.getSource(Bt)||(m.addSource(Bt,{type:"geojson",data:l()}),m.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}})),m.getSource(Et)||(m.addSource(Et,{type:"geojson",data:l()}),m.addLayer({id:`${Et}-layer`,type:"line",source:Et,paint:{"line-color":"#3b82f6","line-width":2}})),m.getSource(_t)||(m.addSource(_t,{type:"geojson",data:l()}),m.addLayer({id:`${_t}-layer`,type:"fill",source:_t,paint:{"fill-color":"#93c5fd","fill-opacity":.25}})),d=!0}function p(m){if(m){try{m.getLayer(`${_t}-layer`)&&m.removeLayer(`${_t}-layer`),m.getSource(_t)&&m.removeSource(_t),m.getLayer(`${Et}-layer`)&&m.removeLayer(`${Et}-layer`),m.getSource(Et)&&m.removeSource(Et),m.getLayer(`${Bt}-labels`)&&m.removeLayer(`${Bt}-labels`),m.getSource(Bt)&&m.removeSource(Bt),m.getLayer(`${lt}-labels`)&&m.removeLayer(`${lt}-labels`),m.getLayer(`${lt}-circle`)&&m.removeLayer(`${lt}-circle`),m.getSource(lt)&&m.removeSource(lt)}catch{}d=!1}}function g(m){if(!m)return;const x=m.getSource(lt),f=m.getSource(Et),E=m.getSource(_t),C=m.getSource(Bt),B=r.points,A=r.labelMode??"general";x&&x.setData(a(B,r.isShapeClosed,A)),f&&f.setData(c(B,r.isShapeClosed)),E&&E.setData(i(B)),C&&C.setData(A==="topoint"?s(B,r.isShapeClosed):l())}function y(){const m=r.map;m&&(d||h(m),g(m))}return e.watch(()=>[r.points,r.isShapeClosed,r.labelMode],()=>y(),{deep:!0,immediate:!0}),e.watch(()=>r.map,()=>y(),{immediate:!0}),e.onBeforeUnmount(()=>{p(r.map)}),(m,x)=>null}});function Pp(n={}){const t=e.ref(!1),o=e.ref([]),r=e.ref(!1),l=e.ref("general"),a=e.ref(null);function s(){t.value?c():(t.value=!0,n.onActivate?.())}function c(){t.value=!1,o.value=[],r.value=!1,a.value?.clearPoints(),n.onDeactivate?.()}function i(y){o.value=y}function d(y){l.value=y}function h(y){r.value=y}function p(y){t.value&&a.value?.addPoint({lat:y.lat,lng:y.lng})}const g=e.computed(()=>o.value.length>0);return{isRulerActive:t,rulerPoints:o,rulerShapeClosed:r,rulerActiveTab:l,rulerPanelRef:a,hasRulerPoints:g,toggleRuler:s,closeRuler:c,onRulerPointsChange:i,onRulerTabChange:d,onRulerShapeClosedChange:h,handleRulerMapClick:p}}const ho="vs-safe-raster",on=new ArrayBuffer(0);let go=!1;function Rp(n){const t=`${ho}://`;return typeof n!="string"||!n.startsWith(t)?n:n.slice(t.length)}function zp(n){if(!n||n.byteLength<4)return!1;const t=new Uint8Array(n);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&&n.byteLength>=12&&String.fromCharCode(t[8],t[9],t[10],t[11])==="WEBP"}async function jp(n,t){try{const o=await fetch(n,{signal:t});if(!o.ok||o.status===204)return on;const r=await o.arrayBuffer();return!r.byteLength||!zp(r)?on:r}catch{return on}}function Up(n){go||!n?.addProtocol||(go=!0,n.addProtocol(ho,(t,o)=>{const r=Rp(String(t?.url??""));if(!r)return o(null,{data:on}),{cancel:()=>{}};const l=new AbortController;return jp(r,l.signal).then(a=>o(null,{data:a})).catch(()=>o(null,{data:on})),{cancel:()=>l.abort()}}))}function Hp(n){const t=typeof n=="string"?n.trim():"";if(!t)return t;const o=`${ho}://`;return t.startsWith(o)?t:`${o}${t}`}function qp(n,t){const o=typeof n=="string"?n.trim():"";return o?t&&go?[Hp(o)]:[o]:[]}function yo(n,t,o){const r={type:"raster",tiles:qp(n,!!o?.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 Kp(n){const t=String(n??"").toLowerCase();return t.includes("could not be decoded")||t.includes("source image could not be decoded")||t.includes("unsupported image type")}const Wp={class:"vs-map-body"},Gp={key:0,class:"absolute top-2 left-2 z-[1000] w-[calc(100%-16px)] sm:w-[320px]"},Yp={key:1,class:"form-geom__panel flex items-center gap-1 mt-1"},Xp={class:"flex items-center gap-1"},Zp=["disabled"],Jp={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"},Qp=["disabled"],em=["disabled"],tm={class:"mt-4 flex justify-end gap-2"},nm=["disabled"],om={class:"vs-map-controls vs-map-controls--tr"},rm={class:"vs-map-toolbar"},lm=["disabled"],am=["disabled"],sm=["disabled"],im=["disabled"],cm={key:1,class:"vs-map-toolbar__divider"},dm=["title"],um={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"},pm={class:"space-y-0.5"},mm={class:"text-gray-500"},fm={class:"text-gray-900 text-right break-all"},hm={class:"absolute left-2 bottom-2 z-[1000]"},gm={key:0,class:"vs-map-status"},ym={class:"form-geom__feature vs-map-status__inner"},bm={class:"vs-map-status__type"},km={class:"vs-map-status__values"},xm=["onClick","disabled"],wm={key:1,class:"vs-map-status__chip"},vm={key:2,class:"vs-map-status__sep"},Cm={key:1,class:"vs-map-status__chip"},Em={class:"vs-map-status__meta"},_m={class:"vs-map-status__coords"},Bm={key:0,class:"vs-map-status__value"},Vm={key:1,class:"vs-map-status__value"},Sm={key:0,class:"vs-map-status__area"},$m={class:"vs-map-status__value"},Am={class:"vs-map-status__actions"},Nm=["disabled"],Mm=["disabled"],Fm=11,Dm=15,Tm=.7,Lm="vs-tile-ov-src-",Im="vs-tile-ov-raster-",On="__vs_form_maplibre_loader__",Om="https://demotiles.maplibre.org/font/{fontstack}/{range}.pbf",Pn="vs-global-bounds-src",Kt="vs-global-bounds-line",$r="rasterLayer",Ar=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(n,{emit:t}){const o=n,r=t,l=e.useAttrs(),a=typeof document<"u"&&document.querySelector("#modal")?"#modal":"body",s=e.computed(()=>{const u=l?.multiple,b=l?.multi,k=_=>_===""||_===!0||_==="true"||_===1||_==="1";return!!o.multi||!!o.multiple||k(b)||k(u)}),c=e.computed(()=>!!o.disabled),i=e.ref(!1),d=e.ref(null),h=e.ref(0),p=e.ref(""),g=e.ref(null),y=e.ref([]),m=e.ref(null),x=e.ref(null),f=Pp({onActivate(){if(ue)try{ue.changeMode("simple_select",{featureIds:[]})}catch{}p.value=""},onDeactivate(){}});function E(){f.toggleRuler()}const C=e.getCurrentInstance(),B=C?.appContext?.config?.globalProperties?.$settings??{},A=B?.map??{},U=e.computed(()=>{const u=A.layerPresets;return Array.isArray(u)?u:[]}),Q=C?.vnode?.props??{};function L(u){return Object.prototype.hasOwnProperty.call(Q,u)||Object.prototype.hasOwnProperty.call(Q,u.replace(/[A-Z]/g,b=>`-${b.toLowerCase()}`))}const V=Array.isArray(A.center)&&A.center.length===2?A.center:Array.isArray(B.center)&&B.center.length===2?B.center:[30,50],S=typeof A.zoom=="number"?A.zoom:typeof B.zoom=="number"?B.zoom:typeof B.defaultZoom=="number"?B.defaultZoom:10;function v(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 Y=b.coordinates,ie=Number(Y[0]),me=Number(Y[1]);if(Number.isFinite(ie)&&Number.isFinite(me))return[ie,me]}if(k?.type==="Point"&&Array.isArray(k.coordinates)){const Y=k.coordinates,ie=Number(Y[0]),me=Number(Y[1]);if(Number.isFinite(ie)&&Number.isFinite(me))return[ie,me]}const _=Number(b.lat),F=Number(b.lng??b.lon);if(Number.isFinite(_)&&Number.isFinite(F))return[F,_]}}}const T=e.computed(()=>{const u=v(o.center);if(u)return u;if(!L("center"))return v(A.center)??v(B.center)}),H=e.computed(()=>L("zoom")?o.zoom:A.zoom??o.zoom),ne=e.computed(()=>L("katottg")?String(o.katottg??""):String(A.katottg??o.katottg??"")),N=e.computed(()=>L("layers")?o.layers??[]:A.layers??o.layers??[]),O=e.computed(()=>L("bounds")?o.bounds:A.bounds??o.bounds),K=e.ref(Array.isArray(T.value)&&T.value.length===2?[...T.value]:V),W=e.ref(typeof H.value=="number"?H.value:S),z=e.ref(null);let I=null;function Z(u){const b=typeof u=="number"&&Number.isFinite(u)?u:W.value;return Math.min(Dm,Math.max(Fm,Math.round(b)))}function $(u,b,k){if(!Number.isFinite(u)||!Number.isFinite(b))return;const _=eu(u,b,Z(k)),F=z.value;F&&F.z===_.z&&F.x===_.x&&F.y===_.y||(z.value=_)}function j(){if(P){const u=P.getCenter?.(),b=P.getZoom?.();if(u&&Number.isFinite(b)){$(u.lng,u.lat,b);return}}Array.isArray(K.value)&&K.value.length===2&&$(K.value[0],K.value[1])}function D(){I&&clearTimeout(I),I=setTimeout(()=>{I=null,j()},120)}$(K.value[0],K.value[1]);const se=e.ref(o.modelValue),ce=e.ref(null),oe=e.ref(null),he=e.ref([]),ve=e.ref(!1),xe=e.ref(!1),Me=e.ref([]),Ie=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 Ae=!1,ae=!1;const re=e.reactive({}),be=e.ref([]),Se=e.computed(()=>be.value.map(u=>re[u]).filter(Boolean)),Te=e.ref(null),qe=e.computed(()=>Te.value?.entries??[]),X=e.computed(()=>{if(Te.value)return{left:`${Te.value.point.x+12}px`,top:`${Te.value.point.y+12}px`}}),ee=e.computed(()=>{if(Array.isArray(o.tools)&&o.tools.length)return o.tools;const u=l?.tools;return Array.isArray(u)?u.map(b=>String(b)):typeof u=="string"?u.split(",").map(b=>b.trim()).filter(Boolean):[]}),te=e.computed(()=>{const u={search:!1,import:!1,export:!1,point:!1,line:!1,polygon:!1,rectangle:!1,ruler:!1};if(!ee.value.length)return{...u,import:!0,export:!0,point:!0,line:!0,polygon:!0,rectangle:!0};const b=new Set(ee.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??"",_=b.replace(/^\/+/,"");return _?k?`${k}/${_}`:`/${_}`:k}function ye(){const u=Array.isArray(A.basemaps)&&A.basemaps.length?A.basemaps:B.basemaps;if(Array.isArray(u)&&u.length){const k=u.map((_,F)=>{const Y=String(_?.key??_?.id??_?.name??`b${F}`),ie=pe(String(_?.url??""));if(!ie)return null;const me=typeof _?.preview=="string"&&_.preview?pe(_.preview):"";return[Y,{..._,url:ie,preview:me}]}).filter(_=>Array.isArray(_)&&_.length===2).reduce((_,[F,Y])=>(_[F]=Y,_),{});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 $e=ye(),Fe=Object.keys($e),De=e.ref(Fe.length?Fe[0]:"");function G(){const u=Array.isArray(A.overlays)&&A.overlays.length?A.overlays:B.overlays;return!Array.isArray(u)||!u.length?{}:u.map((k,_)=>{const Y=(typeof k?.name=="string"?k.name.trim():"")||`o${_}`,ie=pe(String(k?.url??""));if(!ie)return null;const me=typeof k?.preview=="string"&&k.preview?pe(k.preview):"";return[Y,{...k,name:Y,url:ie,preview:me}]}).filter(k=>Array.isArray(k)&&k.length===2).reduce((k,[_,F])=>(k[_]=F,k),{})}const w=G(),M=e.ref(Object.keys(w).filter(u=>!!w[u]?.visible)),R=e.computed(()=>te.value.point||te.value.line||te.value.polygon||te.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 Ce(u){return`${Lm}${u}`}function Pe(u){return`${Im}${u}`}async function Le(){if(typeof window>"u")return null;const u=window;if(u[On])return u[On];const b=Y=>{if(Array.from(document.styleSheets).some(_e=>_e?.href?.includes(Y)))return;const me=document.createElement("link");me.rel="stylesheet",me.href=Y,document.head.appendChild(me)},k=async()=>{const Y=new Function("u","return import(u)"),ie=await Y("https://esm.sh/maplibre-gl@3.6.2"),me=ie?.default??ie;if(!me)throw new Error("maplibre esm fallback failed");window.maplibregl=me,window.mapboxgl=me;const _e=await Y("https://esm.sh/@mapbox/mapbox-gl-draw@1.5.0"),Re=_e?.default??_e;if(!Re)throw new Error("mapbox draw esm fallback failed");window.MapboxDraw=Re},F=(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 Y=window.maplibregl,ie=window.MapboxDraw;if(!Y)throw new Error("maplibregl not available after load");if(!ie)throw new Error("MapboxDraw not available after load");return Up(Y),{maplibregl:Y,MapboxDraw:ie}})().catch(Y=>{throw delete u[On],Y});return u[On]=F,F}function Xe(u){return{version:8,glyphs:Om,sources:{rasterSource:yo(u,void 0,{safe:!1})},layers:[{id:"rasterLayer",type:"raster",source:"rasterSource"}]}}let et=null,ot=null,P=null,ue=null,Ze=[],Vt=null,gt=null,Ue=null,Lt=!1,Gt=!1,Yt=!1,It=null;function Mo(){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,_]=u.startPoint,F=b.lngLat.lng,Y=b.lngLat.lat;u.rectangle.setCoordinates([[[k,_],[F,_],[F,Y],[k,Y],[k,_]]])},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,_]=u.startPoint,F=b.lngLat.lng,Y=b.lngLat.lat;return Math.abs(k-F)>0&&Math.abs(_-Y)>0?(u.rectangle.setCoordinates([[[k,_],[F,_],[F,Y],[k,Y],[k,_]]]),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 _=b.properties.id===u.rectangle.id;_&&!u.hasCoordinates||(b.properties.active=_?"true":"false",k(b))}}}const Gn=[{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 Yn(){const u=De.value;return!u||!$e[u]?.url?"":$e[u].url}function Fo(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??"",_=b.replace(/^\/+/,"");return`${k}/${_}`}function q(u){u&&Te.value?.layerId!==u||(Te.value=null)}function le(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 _=fn(u),F=kn(u,_,U.value);return Array.isArray(u.popup)?u.popup.length?u.popup.map(Y=>{const ie=Y?.field||Y?.name;if(!ie)return null;const me=b[ie];if(me==null||me==="")return null;const _e=F?.formatPopupValue?F.formatPopupValue(ie,me):String(me);return{key:Y.label||ie,value:_e}}).filter(Boolean):[]:Object.entries(b).slice(0,5).map(([Y,ie])=>({key:Y,value:ie==null?"—":String(ie)}))}function fe(u){if(!Array.isArray(u))return[];const b=_=>Array.isArray(_)&&_.length>=2&&Number.isFinite(Number(_[0]))&&Number.isFinite(Number(_[1])),k=_=>{if(!_.length)return _;const F=_[0],Y=_[_.length-1];return!Y||F[0]!==Y[0]||F[1]!==Y[1]?[..._,F]:_};if(u.length&&b(u[0])){const _=u.map(F=>[Number(F[0]),Number(F[1])]).filter(b);return _.length?[k(_)]:[]}return u.length&&Array.isArray(u[0])&&b(u[0][0])?u.map(F=>Array.isArray(F)?F.map(Y=>[Number(Y[0]),Number(Y[1])]):[]).filter(F=>F.length).map(k):u.length&&Array.isArray(u[0])&&Array.isArray(u[0][0])&&b(u[0][0][0])?u.flatMap(F=>Array.isArray(F)?F:[]).map(F=>Array.isArray(F)?F.map(Y=>[Number(Y[0]),Number(Y[1])]):[]).filter(F=>F.length).map(k):[]}function Ne(u){const b=u.style??{},k=b.color??"#3b82f6";if(!b.colorAttr||!b.colorSet)return k;const _=Object.keys(b.colorSet);if(!_.length)return k;const F=["match",["to-string",["get",b.colorAttr]]];return _.forEach(Y=>{F.push(String(Y),b.colorSet?.[Y]??k)}),F.push(k),F}function ze(u){if(!P)return;const b=P.getStyle()?.layers;Array.isArray(b)&&[...b].reverse().forEach(k=>{k.source===u&&P.getLayer(k.id)&&P.removeLayer(k.id)})}function He(u){if(!P)return;u.handlers.forEach(_=>{try{P.off(_.type,_.layerId,_.handler)}catch{}}),u.handlers=[],[...u.layerIds,...u.boundsIds].forEach(_=>{P.getLayer(_)&&P.removeLayer(_)}),ze(u.sourceId),P.getSource(u.sourceId)&&P.removeSource(u.sourceId);const b=`vs-ov-bounds-src-${u.id}`,k=`vs-ov-bounds-line-${u.id}`;P.getLayer(k)&&P.removeLayer(k),P.getSource(b)&&P.removeSource(b),q(u.id)}function je(u,b){if(!P)return[];const k=`vs-ov-bounds-src-${b}`,_=`vs-ov-bounds-line-${b}`,F=u.bounds??O.value??he.value,Y=fe(F);if(!Y.length)return[];const ie={type:"FeatureCollection",features:Y.map(me=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:me}}))};return P.getLayer(_)&&P.removeLayer(_),P.getSource(k)&&P.removeSource(k),P.addSource(k,{type:"geojson",data:ie}),P.addLayer({id:_,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]}}),[_]}function rt(){return Yt||p.value==="marker"||p.value==="polyline"||p.value==="polygon"||p.value==="rectangle"}function xt(u,b){if(!P)return;u.handlers.forEach(_=>{try{P.off(_.type,_.layerId,_.handler)}catch{}});const k=[];b.forEach(_=>{const F=ie=>{if(rt())return;if(!ie?.features?.length){q(u.id);return}const me=ie.features[0]?.properties??{},_e=le(u.config,me);if(!_e.length){q(u.id);return}Te.value={layerId:u.id,entries:_e,point:{x:ie.point.x,y:ie.point.y}}},Y=()=>q(u.id);P.on("mousemove",_,F),P.on("mouseleave",_,Y),k.push({layerId:_,type:"mousemove",handler:F},{layerId:_,type:"mouseleave",handler:Y})}),u.handlers=k}function dt(u,b){if(!P)return;u.layerIds=b,u.boundsIds=je(u.config,u.id),xt(u,b);const k=u.visible?"visible":"none";[...u.layerIds,...u.boundsIds].forEach(_=>{P.getLayer(_)&&P.setLayoutProperty(_,"visibility",k)}),wt()}function tt(u){if(!P)return;He(u),u.renderToken=(u.renderToken??0)+1;const b=u.renderToken,k=u.config,_=fn(k);if(!_)return;const F=[],Y=/\.v(?:m)?t(?:\?|$|\/)/i.test(_)||/\.pbf(?:\?|$)/i.test(_)||/\/vtile(?:\/|\?|$)/i.test(_)||String(k?.service??"").toLowerCase()==="vector"||String(k?.format??"").toLowerCase()==="mvt",ie=kn(k,_,U.value);if(Y&&ie){const me=k.sourceLayer||k.layer||k.service_layer||k.dataset?.layer||k.id;P.addSource(u.sourceId,{type:"vector",tiles:[_],minzoom:typeof k.minzoom=="number"?k.minzoom:0,maxzoom:typeof k.maxzoom=="number"?k.maxzoom:22}),(async()=>{try{if(!P||!P.getSource(u.sourceId)||u.renderToken!==b)return;const _e=await ie.render({map:P,overlayId:u.id,sourceId:u.sourceId,sourceLayer:me,url:_,config:k});if(!P||!P.getSource(u.sourceId)||u.renderToken!==b){_e.forEach(Re=>{P.getLayer(Re)&&P.removeLayer(Re)});return}dt(u,_e)}catch(_e){u.renderToken===b&&console.error(`Failed to render map layer preset "${ie.id}"`,_e)}})();return}if(Y){const me=k.sourceLayer||k.layer||k.service_layer||k.dataset?.layer||k.id;P.addSource(u.sourceId,{type:"vector",tiles:[_],minzoom:typeof k.minzoom=="number"?k.minzoom:0,maxzoom:typeof k.maxzoom=="number"?k.maxzoom:22});const _e=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,Uo=At=>{if(At==="point"){const bn=`vs-ov-point-${u.id}`;P.addLayer({id:bn,type:"circle",source:u.sourceId,"source-layer":me,paint:{"circle-color":Re,"circle-radius":k.style?.radius??5,"circle-opacity":$t}}),F.push(bn);return}if(At==="polyline"||At==="line"){const bn=`vs-ov-line-${u.id}`;P.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}}),F.push(bn);return}const Ol=`vs-ov-fill-${u.id}`,Pl=`vs-ov-border-${u.id}`;P.addLayer({id:Ol,type:"fill",source:u.sourceId,"source-layer":me,paint:{"fill-color":Re,"fill-opacity":$t}}),P.addLayer({id:Pl,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}}),F.push(Ol,Pl)};[...new Set(_e)].forEach(At=>Uo(At)),dt(u,F);return}else{P.addSource(u.sourceId,yo(_,k,{safe:!1}));const me=`vs-ov-raster-${u.id}`;P.addLayer({id:me,type:"raster",source:u.sourceId,paint:{"raster-opacity":k.style?.opacity??1}}),F.push(me)}dt(u,F)}function Qe(){if(!P)return;const b={type:"FeatureCollection",features:fe(O.value??he.value).map(k=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:k}}))};P.getSource(Pn)?P.getSource(Pn).setData(b):P.addSource(Pn,{type:"geojson",data:b}),P.getLayer(Kt)||P.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(!P||c.value)return;const b=re[u];if(!b)return;b.visible=!b.visible;const k=b.visible?"visible":"none";[...b.layerIds,...b.boundsIds].forEach(_=>{P.getLayer(_)&&P.setLayoutProperty(_,"visibility",k)}),wt(),b.visible||q(u)}function Cl(u){if(!P)return;const b=w[u];if(!b?.url)return;const k=Ce(u),_=Pe(u);P.getLayer(_)&&P.removeLayer(_),P.getSource(k)&&P.removeSource(k),P.addSource(k,yo(b.url,b,{safe:!0}));const F=b?.opacity??b?.style?.opacity,Y=typeof F=="number"?F:Tm;P.addLayer({id:_,type:"raster",source:k,paint:{"raster-opacity":Y}})}function Vy(u){if(!P)return;const b=Ce(u),k=Pe(u);P.getLayer(k)&&P.removeLayer(k),P.getSource(b)&&P.removeSource(b)}function El(){P&&M.value.forEach(u=>Cl(u))}function Sy(u){if(!P||c.value||!w[u])return;M.value.includes(u)?(M.value=M.value.filter(k=>k!==u),Vy(u)):(M.value=[...M.value,u],Cl(u)),wt()}function wt(){if(!P)return;const u=M.value.map(_e=>Pe(_e)).filter(_e=>P.getLayer(_e)),b=[],k=[],_=[],F=[];be.value.forEach(_e=>{const Re=re[_e];if(!Re)return;const $t=String(Re.config?.url??""),Uo=/\.v(?:m)?t(?:\?|$|\/)/i.test($t)||/\/vtile(?:\/|\?|$)/i.test($t)||Ho(Re.config,$t,U.value),At=/\.png(?:\?|$)/i.test($t);Uo?_.push(...Re.layerIds):At?b.push(...Re.layerIds):k.push(...Re.layerIds),F.push(...Re.boundsIds)});const Y=[...u,...b,...k,..._,...F];Y.forEach(_e=>{P.getLayer(_e)&&P.moveLayer(_e)}),P.getLayer(Kt)&&P.moveLayer(Kt);const me=(P.getStyle?.()?.layers??[]).map(_e=>String(_e?.id??"")).filter(_e=>_e.startsWith("gl-draw-"));if(me.forEach(_e=>{P.getLayer(_e)&&P.moveLayer(_e)}),P.getLayer($r)){const _e=Y.find(Re=>P.getLayer(Re))??(P.getLayer(Kt)?Kt:null)??me.find(Re=>P.getLayer(Re));_e&&P.moveLayer($r,_e)}}function $y(u){if(!$e[u]||(De.value=u,!P))return;const b=Yn();if(!b)return;const k=P.getSource("rasterSource");if(k&&typeof k.setTiles=="function"){k.setTiles([b]),wt();return}const _=P.getCenter?.(),F=P.getZoom?.(),Y=ue?.getAll?.();P.setStyle(Xe(b)),P.once("style.load",()=>{if(P&&(_&&Number.isFinite(F)&&P.jumpTo({center:[_.lng,_.lat],zoom:F}),Qe(),El(),be.value.forEach(ie=>{const me=re[ie];me&&tt(me)}),wt(),Y?.features?.length&&ue))try{Y.features.forEach(ie=>ue.add(ie)),h.value=Y.features.length}catch{h.value=0}})}function Do(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 To(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=(F,Y)=>{if(!F?.type)return[];const ie={...Y??{}};return F.type==="MultiPoint"&&Array.isArray(F.coordinates)?F.coordinates.map(me=>Do({type:"Point",coordinates:me})).map(me=>({...me,properties:ie})):F.type==="MultiLineString"&&Array.isArray(F.coordinates)?F.coordinates.map(me=>Do({type:"LineString",coordinates:me})).map(me=>({...me,properties:ie})):F.type==="MultiPolygon"&&Array.isArray(F.coordinates)?F.coordinates.map(me=>Do({type:"Polygon",coordinates:me})).map(me=>({...me,properties:ie})):F.type==="GeometryCollection"&&Array.isArray(F.geometries)?F.geometries.flatMap(me=>b(me,ie)):[{type:"Feature",properties:ie,geometry:vt(F)}]},k=F=>{if(!F)return null;if(F.type==="Feature"){const Y=To(F);return Y?b(Y.geometry,Y.properties):null}return F.geom?.type&&Array.isArray(F.geom.coordinates)?b({type:F.geom.type,coordinates:F.geom.coordinates},F.properties??{}):F.type==="GeometryCollection"&&Array.isArray(F.geometries)?b(F,F.properties??{}):typeof F.type=="string"&&Array.isArray(F.coordinates)?b(vt(F),F.properties??{}):null};if(u.type==="FeatureCollection")return(u.features??[]).flatMap(k).filter(Boolean);if(Array.isArray(u))return u.flatMap(F=>F?.type==="FeatureCollection"?gn(F):[k(F)]).flat().filter(Boolean);const _=k(u);return _?Array.isArray(_)?_:[_]:[]}function _l(u){if(!u.length)return null;if(!s.value)return vt(u[0]?.geometry??null);const b=u.map(Y=>vt(Y?.geometry)).filter(Boolean);return b.every(Y=>Y?.type==="Point")?{type:"MultiPoint",coordinates:b.map(Y=>Y.coordinates)}:b.every(Y=>Y?.type==="LineString")?{type:"MultiLineString",coordinates:b.map(Y=>Y.coordinates)}:b.every(Y=>Y?.type==="Polygon")?{type:"MultiPolygon",coordinates:b.map(Y=>Y.coordinates)}:{type:"GeometryCollection",geometries:b}}function Bl(u){if(!u)return"__null__";try{return JSON.stringify(u)}catch{return"__invalid__"}}function Ay(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 Vl(u,b){if(!Array.isArray(u)||u.length<4)return null;const _=Ay(u[0],u[u.length-1])?u.slice(0,-1):u.slice();return!Number.isInteger(b)||b<0||b>=_.length||_.length<=3||(_.splice(b,1),_.length<3)?null:[..._,[..._[0]]]}function Sl(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 Ny(u,b){const k=vt(u);if(!k||!Array.isArray(b))return null;if(k.type==="LineString"){const[_]=b,F=Sl(k.coordinates,_);return F?(k.coordinates=F,k):null}if(k.type==="MultiLineString"){const[_,F]=b,Y=k.coordinates?.[_],ie=Sl(Y,F);return ie?(k.coordinates[_]=ie,k):null}if(k.type==="Polygon"){const[_,F]=b,Y=k.coordinates?.[_],ie=Vl(Y,F);return ie?(k.coordinates[_]=ie,k):null}if(k.type==="MultiPolygon"){const[_,F,Y]=b,ie=k.coordinates?.[_]?.[F],me=Vl(ie,Y);return me?(k.coordinates[_][F]=me,k):null}return null}function My(u){return u?u.split(".").map(b=>Number(b)).filter(b=>Number.isInteger(b)&&b>=0):[]}function $l(u){return!ue||!u?null:typeof ue.get=="function"?ue.get(u)??null:ue.getAll?.()?.features?.find(k=>String(k?.id??"")===u)??null}function Al(u){const b=u?.properties?.id??u?.id;return b==null||b===""?null:String(b)}function Fy(u){if(!P||!u)return null;const b=[[u.x-8,u.y-8],[u.x+8,u.y+8]],_=P.queryRenderedFeatures(b).find(F=>{const Y=String(F?.properties?.meta??"");return Y&&Y!=="feature"?!1:!!Al(F)});return Al(_)}function Dy(u,b){if(!ue||!u||!b.length)return;const k=$l(u);if(!k?.geometry)return;const _=Ny(k.geometry,b);if(!_)return;const F={...k,id:k.id??u,geometry:_};ae=!0,Ae=!0;try{ue.delete(u),ue.add(F)}finally{Ae=!1,ae=!1}Ot(),St()}function Ty(u){if(!P||!ue||c.value||f.isRulerActive.value||p.value!=="edit")return;const b=u?.point;if(!b)return;const k=[[b.x-8,b.y-8],[b.x+8,b.y+8]],F=P.queryRenderedFeatures(k).find(ie=>ie?.properties?.meta==="vertex"&&ie?.properties?.parent&&ie?.properties?.coord_path);if(!F)return;u?.originalEvent?.preventDefault?.(),u?.originalEvent?.stopPropagation?.();const Y=My(String(F.properties.coord_path));Y.length&&Dy(String(F.properties.parent),Y)}function Ly(u){const b=Fl(u);if(!b)return null;const[[k,_],[F,Y]]=b;return{lat:(_+Y)/2,lng:(k+F)/2}}function Nl(u){if(!Array.isArray(u)||u.length<3)return 0;const b=(_,F)=>{const Y=_*2003750834e-2/180,ie=Math.log(Math.tan((90+F)*Math.PI/360))/(Math.PI/180);return[Y,ie*2003750834e-2/180]};let k=0;for(let _=0;_<u.length-1;_+=1){const[F,Y]=b(Number(u[_][0]),Number(u[_][1])),[ie,me]=b(Number(u[_+1][0]),Number(u[_+1][1]));k+=F*me-ie*Y}return Math.abs(k/2)/1e6}function Iy(u){if(!u?.type||!u?.coordinates)return null;if(u.type==="Polygon"){const b=u.coordinates?.[0];return Array.isArray(b)?Nl(b):null}return u.type==="MultiPolygon"?u.coordinates.reduce((b,k)=>{const _=k?.[0];return Array.isArray(_)?b+Nl(_):b},0):null}function Lo(u){if(!u){g.value=null;return}const b=Ly(u);if(!b){g.value=null;return}g.value={type:String(u.type??"Feature"),center:b,areaKm2:Iy(u)}}function Io(u){if(!u){const _=Ze[Ze.length-1],F=vt(_?.geometry??null);Vt=F,Lo(F);return}const b=Ze.find(_=>String(_?.id??"")===String(u))??null,k=vt(b?.geometry??null);Vt=k,Lo(k)}function Oo(u){y.value=(u??[]).map((b,k)=>{const _=String(b?.id??`feature-${k+1}`),F=Po(String(b?.geometry?.type??"Feature"));return{id:_,label:`${F} ${k+1}`}})}function Po(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 Ml(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 Fl(u){if(!u)return null;let b=1/0,k=1/0,_=-1/0,F=-1/0;const Y=ie=>{if(Array.isArray(ie)){if(ie.length>=2&&Number.isFinite(ie[0])&&Number.isFinite(ie[1])){const me=Number(ie[0]),_e=Number(ie[1]);b=Math.min(b,me),k=Math.min(k,_e),_=Math.max(_,me),F=Math.max(F,_e);return}ie.forEach(Y)}};return Y(u.coordinates),!Number.isFinite(b)||!Number.isFinite(k)?null:[[b,k],[_,F]]}function Dl(u){if(!P||!u)return;const b=Fl(u);if(!b)return;const[[k,_],[F,Y]]=b;if(k===F&&_===Y){P.easeTo({center:[k,_],zoom:Math.max(W.value,14)}),D();return}P.fitBounds(b,{padding:30,duration:250,maxZoom:18}),D()}function Ro(){if(!ue){h.value=0;return}const u=ue.getAll();h.value=u?.features?.length??0}function yn(){if(!ue)return null;const b=ue.getAll?.()?.features??[],k=Y=>!!Y&&b.some(ie=>String(ie?.id??"")===String(Y??"")),_=ue.getSelectedIds?.();if(Array.isArray(_)&&_.length>0){const Y=_[0];return Y!=null?String(Y):null}if(k(Ue))return String(Ue);if(!b.length)return null;const F=s.value?b[b.length-1]:b[0];return F?.id!==void 0&&F?.id!==null?String(F.id):null}function Ot(){if(!ue)return;const u=ue.getAll();if(h.value=u?.features?.length??0,!u?.features?.length){Ze=[],y.value=[],Vt=null,Ue=null,g.value=null,Ae||(gt="__null__",r("update:modelValue",null));return}const b=(u.features??[]).map(To).filter(Boolean);if(Ze=b,Oo(b),Ue=yn(),Io(Ue),!Ae){const k=_l(b);gt=Bl(k),r("update:modelValue",k)}}function Xn(){if(!ue)return;(ue.getAll()?.features||[]).forEach(b=>ue.delete(b.id)),y.value=[],Ro()}function Zn(u){if(!ue)return;const b=gn(u),k=s.value?b:b.slice(0,1);Ae=!0,Xn(),k.forEach(Y=>{try{ue.add(Y)}catch{}}),Ae=!1,Ze=(ue.getAll?.()?.features??k).map(To).filter(Boolean),Oo(Ze),Ue=null;const F=vt(Ze[Ze.length-1]?.geometry??null);Vt=vt(F),Ro(),Lo(F),F&&(Dl(F),c.value||St())}function Oy(){ue&&(Ae=!0,Xn(),Ze.forEach(u=>{try{ue.add(u)}catch{}}),Ae=!1,Oo(Ze),Ro(),Io(Ue))}function Xt(){if(ue){try{ue.changeMode("simple_select",{featureIds:[]})}catch{}p.value=""}}function Jn(u){if(c.value||!ue)return;f.isRulerActive.value&&f.closeRuler(),Yt=!0,Xt(),p.value=u;const b=u==="marker"?"draw_point":u==="polyline"?"draw_line_string":u==="rectangle"?"draw_rectangle":"draw_polygon";s.value||(Ae=!0,Xn(),Ae=!1);try{ue.changeMode(b)}catch{p.value=""}finally{requestAnimationFrame(()=>{Yt=!1})}}function St(u){if(c.value||!ue||!ue.getAll()?.features?.length)return;const k=u||yn();if(k)try{ue.changeMode("direct_select",{featureId:k}),Ue=k,Io(Ue),p.value="edit"}catch{p.value=""}}function Py(u){c.value||!ue||!u||St(u)}function Ry(){if(!(c.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(),Xn(),Ze=[],y.value=[],Ue=null,gt="__null__",g.value=null,r("update:modelValue",null)}}function zy(){c.value||!Vt||Dl(Vt)}function jy(u){if(!P||!et)return;const b=[u[1],u[0]];It||(It=new et.Marker({color:"#2563eb"})),It.setLngLat(b).addTo(P),P.easeTo({center:b,zoom:13,duration:250})}function Uy(){c.value||ce.value?.click()}function Hy(){c.value||(ve.value=!ve.value)}function Tl(u){if(!ve.value)return;const b=oe.value;b&&!b.contains(u.target)&&(ve.value=!1)}function qy(){ve.value=!1,Uy()}function Ky(){c.value||(Me.value=[],ve.value=!1,xe.value=!0)}function Wy(){xe.value=!1,Me.value=[]}function Gy(){if(c.value||!ue)return;const u=Eu(Ie.value.coordinates??"",Ie.value.format||"decimal",Ie.value.order||"lat-lon");if(!u.ok){Me.value=u.errors,Yy(u.errors);return}Me.value=[],Zn({type:"Polygon",coordinates:[u.ring]}),Ot(),xe.value=!1,u.wasClosedAutomatically&&ke.notify({type:"info",title:"Імпорт координат",message:"Полігон був автоматично замкнений (перша і остання точки різнилися)."})}function Yy(u){if(!u.length)return;const b=5;u.slice(0,b).forEach(k=>{const _=k.line>0?`Рядок ${k.line}`:"Загальна помилка";ke.notify({type:"warning",title:"Імпорт координат",message:`${_} — ${k.message}`})}),u.length>b&&ke.notify({type:"warning",title:"Імпорт координат",message:`Ще помилок: ${u.length-b}`})}function Xy(u){if(c.value||!ue)return;ve.value=!1;const b=u.target,k=b.files?.[0];if(!k)return;const _=new FileReader;_.onload=()=>{try{const F=JSON.parse(String(_.result));if(!gn(F).length){ke.notify({type:"warning",title:"Імпорт файлу",message:"Файл не містить коректний GeoJSON-обʼєкт."});return}Zn(F),Ot()}catch{ke.notify({type:"error",title:"Імпорт файлу",message:"Не вдалося прочитати файл. Перевірте формат GeoJSON/JSON."})}finally{b.value=""}},_.onerror=()=>{ke.notify({type:"error",title:"Імпорт файлу",message:"Помилка читання файлу."}),b.value=""},_.readAsText(k)}function Zy(){if(c.value||!ue)return;const u=ue.getAll(),b=new Blob([JSON.stringify(u,null,2)],{type:"application/json"}),k=URL.createObjectURL(b),_=document.createElement("a");_.href=k,_.download="data.geojson",_.click(),URL.revokeObjectURL(k)}e.onMounted(async()=>{if(window.addEventListener("click",Tl,!0),!d.value)return;const u=await Le();et=u.maplibregl,ot=u.MapboxDraw;const b=Yn();b&&(P=new et.Map({container:d.value,style:Xe(b),center:[K.value[0],K.value[1]],zoom:W.value,attributionControl:!1}),m.value=P,P.addControl(new et.NavigationControl({showCompass:!0}),"bottom-right"),P.on("error",k=>{const _=k?.error?.message??k?.message??"";Kp(_)}),P.on("load",()=>{if(!(!ot||!P)){if(ue=new ot({displayControlsDefault:!1,modes:{...ot.modes,draw_rectangle:Mo()},controls:{point:!1,line_string:!1,polygon:!1,trash:!1},styles:Gn}),P.addControl(ue),P.on("click",k=>{if(f.isRulerActive.value){const F=k?.lngLat;if(!F)return;x.value?.addPoint?.({lat:F.lat,lng:F.lng});return}if(!ue||c.value||p.value!=="edit")return;const _=Fy(k?.point);!_||_===Ue||requestAnimationFrame(()=>{!ue||c.value||St(_)})}),P.on("draw.create",()=>{if(ue&&!f.isRulerActive.value){if(!s.value){const k=ue.getAll();if(k.features.length>1){const _=k.features[k.features.length-1];Ae=!0,k.features.slice(0,-1).forEach(F=>ue.delete(F.id)),Ae=!1,_&&(Ae=!0,ue.add(_),Ae=!1)}}Ot(),St()}}),P.on("draw.update",k=>{if(Gt||f.isRulerActive.value||rt())return;const _=Array.isArray(k?.features)?k.features:[],F=k?.action==="move"&&_.length>0&&_.every(Y=>Y?.geometry?.type==="Point");if(k?.action==="move"){if(F){Ot();return}if(Gt=!0,Oy(),Gt=!1,p.value==="edit"){const Y=yn(),ie=Y?$l(Y):ue?.getAll?.()?.features?.[0];if(ie?.id)try{ue.changeMode("direct_select",{featureId:ie.id}),Ue=String(ie.id)}catch{p.value=""}}return}Ot()}),P.on("draw.delete",()=>{ae||Lt||f.isRulerActive.value||p.value==="marker"||p.value==="polyline"||p.value==="polygon"||p.value==="rectangle"||(Ot(),ue?.getAll?.()?.features?.length||(Ue=null),p.value="",Xt())}),P.on("draw.selectionchange",k=>{if(!ue||Gt||f.isRulerActive.value||p.value==="marker"||p.value==="polyline"||p.value==="polygon"||p.value==="rectangle")return;const _=k?.features?.[0]?.id!==void 0&&k?.features?.[0]?.id!==null?String(k.features[0].id):null;if(!c.value&&_){if(p.value==="edit"&&Ue===_)return;requestAnimationFrame(()=>{!ue||c.value||St(_)});return}const F=ue.getSelectedIds?.(),Y=Array.isArray(F)&&F.length>0?String(F[0]):null;if(!c.value&&Y){if(p.value==="edit"&&Ue===Y)return;requestAnimationFrame(()=>{!ue||c.value||St(Y)});return}try{ue.changeMode("simple_select",{featureIds:[]})}catch{}}),se.value!==void 0){const k=se.value;se.value=void 0,requestAnimationFrame(()=>{ue&&Zn(k)})}Qe(),El(),be.value.forEach(k=>{const _=re[k];_&&tt(_)}),wt(),j()}}),P.on("contextmenu",Ty),P.on("moveend",D),P.on("zoomend",()=>{P&&(W.value=P.getZoom())}))}),e.onUnmounted(()=>{typeof document<"u"&&(document.body.style.overflow=""),typeof window<"u"&&window.removeEventListener("keydown",jo),I&&(clearTimeout(I),I=null),f.isRulerActive.value&&f.closeRuler(),window.removeEventListener("click",Tl,!0),Object.values(re).forEach(u=>{P&&He(u)}),q(),It?.remove&&It.remove(),It=null,P?.remove&&P.remove(),P=null,ue=null,m.value=null}),e.watch(()=>o.modelValue,u=>{if(!ue){se.value=u;return}if(rt())return;const b=_l((s.value?gn(u):gn(u).slice(0,1))||[]),k=Bl(b);if(gt&&k===gt){gt=null;return}gt=null,Zn(u)},{deep:!0}),e.watch(()=>N.value,u=>{const b=Array.isArray(u)?u:[],k=[],_=new Set;b.forEach((F,Y)=>{if(!F)return;const ie=Fo(F,Y);k.push(ie),_.add(ie);const me={...F,id:ie},_e=re[ie],Re=_e?.visible??!!me.visible;_e&&P&&He(_e),re[ie]={id:ie,config:me,visible:Re,sourceId:`vs-ov-src-${ie}`,layerIds:[],boundsIds:[],handlers:[],renderToken:_e?.renderToken??0}}),Object.keys(re).forEach(F=>{if(_.has(F))return;const Y=re[F];Y&&P&&He(Y),delete re[F]}),be.value=k,P&&(be.value.forEach(F=>{const Y=re[F];Y&&tt(Y)}),wt())},{immediate:!0,deep:!0}),e.watch(()=>O.value,()=>{P&&(Qe(),be.value.forEach(u=>{const b=re[u];b&&tt(b)}),wt())},{deep:!0}),e.watch(()=>ne.value,async u=>{if(he.value=[],!u){P&&(Qe(),be.value.forEach(b=>{const k=re[b];k&&tt(k)}),wt());return}try{const b=await fetch(`https://data.gki.com.ua/api-user/atu/${u}`);if(!b?.ok)return;const _=(await b.json())?.geometry?.coordinates;Array.isArray(_)&&_.length&&(he.value=_)}catch(b){console.error("Failed to fetch KATOTTG bounds",b)}finally{if(!P)return;Qe(),be.value.forEach(b=>{const k=re[b];k&&tt(k)}),wt()}},{immediate:!0}),e.watch(()=>T.value,u=>{if(!Array.isArray(u)||u.length!==2)return;const b=[Number(u[0]),Number(u[1])];if(Ml(K.value,b)||(K.value=[...b],!P))return;const k=P.getCenter?.();k&&Ml([k.lng,k.lat],K.value)||P.easeTo({center:[K.value[0],K.value[1]]})},{deep:!0}),e.watch(()=>H.value,u=>{typeof u=="number"&&(W.value=u,P&&P.setZoom(u))}),e.watch(()=>g.value?.center,u=>{u&&$(u.lng,u.lat,P?.getZoom?.())},{deep:!0}),e.watch(c,u=>{u&&Xt()}),e.watch(h,u=>{if(u>0){c.value||St();return}Yt||Xt()});const Ll=e.computed(()=>y.value.length>0||!!g.value),zo=e.computed(()=>{const u=y.value,b=u.length>1;return u.length?u.map(k=>({id:k.id,label:b?k.label:g.value?.type?Po(g.value.type):k.label,interactive:b})):g.value?.type?[{id:"__feature",label:Po(g.value.type),interactive:!1}]:[]});function Il(){setTimeout(()=>{P?.resize&&P.resize()},50)}function jo(u){u.key==="Escape"&&i.value&&(i.value=!1)}return e.watch(i,u=>{typeof document<"u"&&(document.body.style.overflow=u?"hidden":""),typeof window<"u"&&(u?window.addEventListener("keydown",jo):window.removeEventListener("keydown",jo)),Il()}),e.watch(Ll,Il),(u,b)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body",disabled:!i.value},[e.createElementVNode("div",{class:e.normalizeClass(["vs-map-wrapper w-full",{fullscreen:i.value}])},[e.createElementVNode("div",Wp,[e.createElementVNode("div",{ref_key:"mapContainer",ref:d,class:"vs-map-canvas"},null,512),te.value.search||te.value.import||te.value.export?(e.openBlock(),e.createElementBlock("div",Gp,[te.value.search?(e.openBlock(),e.createBlock(Hu,{key:0,onGoToCoordinates:jy})):e.createCommentVNode("",!0),te.value.import||te.value.export?(e.openBlock(),e.createElementBlock("div",Yp,[e.createElementVNode("div",Xp,[te.value.import?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"importMenuRef",ref:oe,class:"relative"},[e.createElementVNode("button",{type:"button",class:"vs-map-action-btn",onClick:Hy,disabled:c.value},[b[8]||(b[8]=e.createTextVNode(" Імпорт ",-1)),e.createVNode(e.unref(J.ChevronDown),{class:e.normalizeClass(["h-3.5 w-3.5 shrink-0 transition-transform",{"rotate-180":ve.value}])},null,8,["class"])],8,Zp),ve.value?(e.openBlock(),e.createElementBlock("div",Jp,[te.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:qy}," З файлу ")):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:Ky}," З координат ")])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),te.value.export?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"vs-map-action-btn",onClick:Zy,disabled:c.value||h.value===0}," Експорт ",8,Qp)):e.createCommentVNode("",!0)]),e.createElementVNode("input",{ref_key:"importRef",ref:ce,type:"file",onChange:Xy,accept:".json,.geojson",class:"hidden",disabled:c.value},null,40,em)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createVNode(e.unref(ke.VsModal),{visible:xe.value,"onUpdate:visible":b[1]||(b[1]=k=>xe.value=k),title:"Імпорт координат полігону",size:"lg",teleport:e.unref(a)},{default:e.withCtx(()=>[e.createVNode(pt,{schema:Oe,values:Ie.value,"onUpdate:values":b[0]||(b[0]=k=>Ie.value=k)},null,8,["values"]),e.createElementVNode("div",tm,[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:Wy}," Скасувати "),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:Gy,disabled:c.value}," Побудувати ",8,nm)])]),_:1},8,["visible","teleport"]),e.createElementVNode("div",om,[e.createElementVNode("div",rm,[R.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[te.value.point?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="marker"}]),title:"Точка",onClick:b[2]||(b[2]=k=>Jn("marker")),disabled:c.value},[e.createVNode(e.unref(J.MapPin),{class:"vs-btn-icon"})],10,lm)):e.createCommentVNode("",!0),te.value.line?(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="polyline"}]),title:"Лінія",onClick:b[3]||(b[3]=k=>Jn("polyline")),disabled:c.value},[e.createVNode(qd,{class:"vs-btn-icon"})],10,am)):e.createCommentVNode("",!0),te.value.polygon?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="polygon"}]),title:"Полігон",onClick:b[4]||(b[4]=k=>Jn("polygon")),disabled:c.value},[e.createVNode(Yd,{class:"vs-btn-icon"})],10,sm)):e.createCommentVNode("",!0),te.value.rectangle?(e.openBlock(),e.createElementBlock("button",{key:3,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="rectangle"}]),title:"Прямокутник",onClick:b[5]||(b[5]=k=>Jn("rectangle")),disabled:c.value},[e.createVNode(Qd,{class:"vs-btn-icon"})],10,im)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),R.value?(e.openBlock(),e.createElementBlock("div",cm)):e.createCommentVNode("",!0),te.value.ruler?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":e.unref(f).isRulerActive.value}]),title:"Лінійка",onClick:E},[e.createVNode(e.unref(J.Ruler),{class:"vs-btn-icon"})],2)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"vs-btn",onClick:b[6]||(b[6]=k=>i.value=!i.value),title:i.value?"Згорнути":"На весь екран"},[i.value?(e.openBlock(),e.createBlock(e.unref(J.Minimize),{key:0,class:"vs-btn-icon"})):(e.openBlock(),e.createBlock(e.unref(J.Maximize),{key:1,class:"vs-btn-icon"}))],8,dm)])]),te.value.ruler&&e.unref(f).isRulerActive.value?(e.openBlock(),e.createBlock(Ip,{key:1,ref_key:"rulerPanelRefEl",ref:x,onClose:b[7]||(b[7]=k=>e.unref(f).closeRuler()),onTabChange:e.unref(f).onRulerTabChange,onPointsChange:e.unref(f).onRulerPointsChange,onShapeClosedChange:e.unref(f).onRulerShapeClosedChange},null,8,["onTabChange","onPointsChange","onShapeClosedChange"])):e.createCommentVNode("",!0),te.value.ruler&&e.unref(f).isRulerActive.value&&e.unref(f).hasRulerPoints.value?(e.openBlock(),e.createBlock(Op,{key:2,map:m.value,points:e.unref(f).rulerPoints.value,"is-shape-closed":e.unref(f).rulerShapeClosed.value,"label-mode":e.unref(f).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(X.value)},[e.createElementVNode("div",um,[e.createElementVNode("dl",pm,[(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",mm,e.toDisplayString(k.key),1),e.createElementVNode("dd",fm,e.toDisplayString(k.value),1)]))),128))])])],4)):e.createCommentVNode("",!0),e.createElementVNode("div",hm,[e.createVNode(vu,{compact:"",basemaps:e.unref($e),"active-base-key":De.value,"tile-overlays":e.unref(w),"active-tile-overlay-keys":M.value,"vector-overlays":de.value,"preview-tile":z.value,disabled:c.value,onOnLayerChange:$y,onOnOverlayToggle:Sy,onOnVectorOverlayToggle:hn},null,8,["basemaps","active-base-key","tile-overlays","active-tile-overlay-keys","vector-overlays","preview-tile","disabled"])])]),Ll.value?(e.openBlock(),e.createElementBlock("div",gm,[e.createElementVNode("div",ym,[e.createElementVNode("div",bm,[b[9]||(b[9]=e.createElementVNode("span",{class:"vs-map-status__label"},"Тип:",-1)),e.createElementVNode("div",km,[zo.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(zo.value,(k,_)=>(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:F=>Py(k.id),disabled:c.value},e.toDisplayString(k.label),11,xm)):(e.openBlock(),e.createElementBlock("span",wm,e.toDisplayString(k.label),1)),_<zo.value.length-1?(e.openBlock(),e.createElementBlock("span",vm,", ")):e.createCommentVNode("",!0)],64))),128)):(e.openBlock(),e.createElementBlock("span",Cm,"—"))])]),e.createElementVNode("div",Em,[e.createElementVNode("span",_m,[b[10]||(b[10]=e.createElementVNode("span",{class:"vs-map-status__label"},"Центр:",-1)),g.value?(e.openBlock(),e.createElementBlock("span",Bm,e.toDisplayString(g.value.center.lng.toFixed(5))+", "+e.toDisplayString(g.value.center.lat.toFixed(5)),1)):(e.openBlock(),e.createElementBlock("span",Vm,"—"))]),g.value&&g.value.areaKm2!==null?(e.openBlock(),e.createElementBlock("span",Sm,[b[11]||(b[11]=e.createElementVNode("span",{class:"vs-map-status__label"},"Площа:",-1)),e.createElementVNode("span",$m,e.toDisplayString(g.value.areaKm2.toFixed(1))+" km²",1)])):e.createCommentVNode("",!0),e.createElementVNode("div",Am,[e.createElementVNode("button",{type:"button",class:"vs-status-btn vs-status-btn--zoom",title:"Масштаб до об'єкта",onClick:zy,disabled:c.value},[e.createVNode(e.unref(J.ZoomIn),{class:"vs-status-btn__icon"})],8,Nm),e.createElementVNode("button",{type:"button",class:"vs-status-btn vs-status-btn--delete",title:"Видалити об'єкт",onClick:Ry,disabled:c.value},[e.createVNode(e.unref(J.Trash2),{class:"vs-status-btn__icon"})],8,Mm)])])])])):e.createCommentVNode("",!0)],2)],8,["disabled"]))}}),[["__scopeId","data-v-6cb0f6fd"]]),Pm=["data-focus"],Rm={class:"flex items-center"},zm={class:"overflow-hidden text-ellipsis whitespace-nowrap rounded-sm text-[#333] text-[85%] px-0.5 py-[3px] pl-1.5 box-border"},jm=["onClick","aria-label"],Um={key:0,class:"absolute text-gray-500 truncate pl-2"},Hm={class:"flex-1 min-w-[2px]"},qm=["placeholder"],Km={class:"flex items-center shrink-0"},Wm=["disabled"],Nr=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(n,{emit:t}){const o=n,r=t;Je(o.style);const l=e.ref(null),a=e.ref(null),s=e.ref(null),c=e.ref(!1),i=e.ref(""),d=e.useModel(n,"modelValue"),h=e.computed(()=>o.placeholder||"Add tag…"),p=e.computed(()=>d.value?.length===0&&i.value===""),g=e.computed(()=>!o.disabled&&d.value?.length>0),y=e.computed(()=>o.disabled),m=async()=>{y.value||await e.nextTick(()=>s.value?.focus())},x=Q=>{const L=Q.trim();L!==""&&(!d.value||!Array.isArray(d.value)?d.value=[L]:o.unique?d.value.includes(L)||(d.value=[...d.value,L]):d.value=[...d.value,L],i.value="")},f=()=>{const Q=i.value;Q.trim()!==""&&x(Q),i.value=""},E=Q=>{const L=d.value.slice();L.splice(Q,1),r("update:modelValue",L)},C=()=>{r("update:modelValue",[])},B=()=>{y.value||(c.value=!0)},A=()=>{c.value=!1,!y.value&&f()},U=Q=>{const{key:L}=Q;L==="Enter"?(Q.preventDefault(),f()):L==="Backspace"&&i.value===""&&d.value.length>0&&E(d.value.length-1)};return(Q,L)=>(e.openBlock(),e.createElementBlock("div",{class:"flex gap-1 w-full",ref_key:"root",ref:l,onClick:L[1]||(L[1]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",o.customClass]),role:"group","aria-label":"Tag input"},[e.createElementVNode("div",{class:e.normalizeClass(["flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white","border-gray-300 hover:border-gray-400",c.value?"border-blue-500 ring-1 ring-blue-500":"",y.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),"data-focus":c.value?"true":"false",onClick:m},[e.createElementVNode("div",{class:"flex flex-1 flex-wrap items-center gap-1 py-0.5 pl-2 pr-0 overflow-hidden",ref_key:"chipsRef",ref:a},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(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",Rm,[e.createElementVNode("div",zm,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(v=>E(S),["stop"]),"aria-label":`Remove ${V}`},[e.createVNode(e.unref(J.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,jm)]))),128)),p.value?(e.openBlock(),e.createElementBlock("div",Um,e.toDisplayString(h.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Hm,[y.value?e.createCommentVNode("",!0):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"inputRef",ref:s,class:"pl-2 w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-label":"Add tag","onUpdate:modelValue":L[0]||(L[0]=V=>i.value=V),onFocus:B,onBlur:A,onKeydown:U,placeholder:d.value&&d.value.length?"":void 0},null,40,qm)),[[e.vModelText,i.value]])])],512),e.createElementVNode("div",Km,[g.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-label":"Clear all tags",disabled:y.value,onClick:e.withModifiers(C,["stop"])},[e.createVNode(e.unref(J.X),{class:"h-4 w-4"})],8,Wm)):e.createCommentVNode("",!0)])],10,Pm)],2)],512))}}),Gm={class:"relative flex gap-1 bg-white w-full"},Ym=["disabled","placeholder"],Mr=Be(e.defineComponent({__name:"vs-input-slug",props:e.mergeModels({disabled:{type:Boolean},placeholder:{},parent:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const t=e.inject("values"),o=n,r=e.useModel(n,"modelValue");function l(s){const c={а:"a",б:"b",в:"v",г:"g",д:"d",е:"e",ё:"e",ж:"zh",з:"z",и:"i",й:"y",к:"k",л:"l",м:"m",н:"n",о:"o",п:"p",р:"r",с:"s",т:"t",у:"u",ф:"f",х:"kh",ц:"ts",ч:"ch",ш:"sh",щ:"shch",ы:"y",э:"e",ю:"yu",я:"ya",ь:"",ъ:"",є:"ye",і:"i",ї:"yi",ґ:"g"};return s.toLowerCase().split("").map(i=>c[i]||i).join("").replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}const a=()=>{const s=t?.value?.[o.parent||""]?.toString(),c=l(s);r.value=c.toString()};return(s,c)=>(e.openBlock(),e.createElementBlock("div",Gm,[e.withDirectives(e.createElementVNode("input",{ref:"vsText",disabled:n.disabled,placeholder:n.placeholder,"onUpdate:modelValue":c[0]||(c[0]=i=>r.value=i),class:"block w-full px-3 py-2 text-sm border border-solid rounded-lg placeholder:text-nowrap border-stone-200 text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,8,Ym),[[e.vModelText,r.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200",onClick:a}," Gen ")]))}}),[["__scopeId","data-v-cb7b2b74"]]),Xm={class:"relative flex gap-1 bg-white w-full"},Zm=["disabled","placeholder"],Jm=["disabled"],Qm={key:0},ef={key:1},Fr=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(n){const t=n,o=e.useModel(n,"modelValue"),r=e.ref(!1),l=e.computed(()=>t.init!==!1),a=e.computed(()=>!!t.table&&!!t.code),s=()=>{if(!a.value)return"";const d=encodeURIComponent(String(t.table)),h=encodeURIComponent(String(t.code));return`/api/code-gen/${d}/${h}`},c=async()=>{if(!a.value||r.value)return;const d=s();if(d){r.value=!0;try{const p=await(await fetch(d)).text();o.value=p}finally{r.value=!1}}},i=()=>{l.value&&(o.value||c())};return e.onMounted(()=>{i()}),e.watch(()=>[t.table,t.code,t.init],()=>{i()}),(d,h)=>(e.openBlock(),e.createElementBlock("div",Xm,[e.withDirectives(e.createElementVNode("input",{disabled:n.disabled,placeholder:n.placeholder,"onUpdate:modelValue":h[0]||(h[0]=p=>o.value=p),class:"block w-full px-3 py-2 text-sm border border-solid rounded-lg placeholder:text-nowrap border-stone-200 text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,8,Zm),[[e.vModelText,o.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||n.disabled||!a.value,onClick:c},[r.value?(e.openBlock(),e.createElementBlock("span",ef,"...")):(e.openBlock(),e.createElementBlock("span",Qm,"Gen"))],8,Jm)]))}}),[["__scopeId","data-v-8f88fb66"]]),tf={class:"w-full"},nf={ref:"sortableContainer",class:"flex flex-col gap-1"},of=["onDragstart","onDrop"],rf={class:"cursor-move",type:"button"},lf={class:"w-1/3"},af={class:"w-2/3"},sf=["onClick"],cf={key:0,class:"text-[14px] text-gray-700"},df={class:"mt-2 w-full flex items-center"},uf=["disabled"],Dr=Be(e.defineComponent({__name:"vs-input-key-value",props:{parent:{},ignore:{},addButtonText:{},modelValue:{}},emits:["update:modelValue"],setup(n,{emit:t}){const o=f=>`${f}-${Math.random().toString(36).substring(2,15)}`,r=e.inject("values"),l=n,a=t,s=l.addButtonText??"Додати",c=l.ignore??[],i=e.ref([]),d=e.ref(null);(()=>{const f=l.parent&&r?.value?.[l.parent]||l.modelValue||{};i.value=Object.entries(f).filter(([E])=>!c.includes(E)).map(([E,C])=>({id:o("key-value-"),key:E,value:C}))})();function p(f){d.value=f}function g(f){if(d.value===null||d.value===f)return;const E=i.value.splice(d.value,1)[0];i.value.splice(f,0,E),d.value=null}const y=e.computed(()=>i.value.some(f=>f.key&&!f.value||!f.key&&f.value)),m=()=>{i.value.push({id:o("key-value-"),key:"",value:""})},x=f=>{i.value=i.value.filter(E=>E.id!==f)};return e.watch(i,f=>{const E={};f.forEach(B=>{B.key&&B.value!==void 0&&(E[B.key]=B.value)});const C={};c.length&&c.forEach(B=>{C[B]=l.parent?r?.value?.[l.parent]?.[B]:void 0}),r?.value&&l.parent&&(r.value[l.parent]={...C,...E}),a("update:modelValue",E)},{deep:!0}),(f,E)=>(e.openBlock(),e.createElementBlock("div",tf,[e.createElementVNode("div",nf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(C,B)=>(e.openBlock(),e.createElementBlock("div",{key:C.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":d.value===B}]),draggable:"true",onDragstart:A=>p(B),onDragover:E[0]||(E[0]=e.withModifiers(()=>{},["prevent"])),onDrop:A=>g(B)},[e.createElementVNode("button",rf,[e.createVNode(e.unref(J.GripVertical),{class:"h-4 w-4"})]),e.createElementVNode("div",lf,[e.createVNode(Ht,{modelValue:C.key,"onUpdate:modelValue":A=>C.key=A,placeholder:"Ключ"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",af,[e.createVNode(Ht,{modelValue:C.value,"onUpdate:modelValue":A=>C.value=A,placeholder:"Значення"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("button",{onClick:A=>x(C.id),class:"shrink-0 w-[30px] text-gray-600 h-[30px] rounded-full flex items-center justify-center bg-gray-100 hover:bg-gray-200"},[e.createVNode(e.unref(J.X),{class:"h-4 w-4"})],8,sf)],42,of))),128))],512),i.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",cf," Дані для відображення відсутні ")),e.createElementVNode("div",df,[e.createElementVNode("button",{type:"button",onClick:m,disabled:y.value,class:"py-1.5 px-2 flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"},[e.createVNode(e.unref(J.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(e.unref(s)),1)],8,uf)])]))}}),[["__scopeId","data-v-ac321a0f"]]),pf={class:"w-full"},mf={ref:"sortableContainer",class:"flex flex-col gap-1"},ff=["onDragstart","onDrop"],hf=["disabled"],gf={class:"flex-1"},yf=["onClick","disabled"],bf={key:0,class:"text-[14px] text-gray-700"},kf={class:"mt-2 w-full flex items-center"},xf=["disabled"],Tr=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(n){const t=n,o=e.useModel(n,"modelValue"),r=e.ref([]),l=e.ref(null),a=e.computed(()=>!!t.disabled),s=e.computed(()=>t.placeholder??""),c=e.computed(()=>t.addButtonText??"Додати");let i=!1;const d=f=>`${f}-${Math.random().toString(36).substring(2,15)}`,h=f=>{const E=f??o.value??[];r.value=E.map((C,B)=>({id:r.value[B]?.id??d("text-array"),value:C??""}))};h(),e.watch(()=>o.value,f=>{if(i){i=!1;return}h(f||[])},{deep:!0}),e.watch(r,f=>{i=!0,o.value=f.map(E=>E.value).filter(E=>E!=null&&E!=="")},{deep:!0});const p=e.computed(()=>a.value||r.value.some(f=>!f.value));function g(){p.value||(r.value=[...r.value,{id:d("text-array"),value:""}])}function y(f){a.value||(r.value=r.value.filter(E=>E.id!==f))}function m(f){a.value||(l.value=f)}function x(f){if(a.value||l.value===null||l.value===f)return;const E=[...r.value],[C]=E.splice(l.value,1);E.splice(f,0,C),r.value=E,l.value=null}return(f,E)=>(e.openBlock(),e.createElementBlock("div",pf,[e.createElementVNode("div",mf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(C,B)=>(e.openBlock(),e.createElementBlock("div",{key:C.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":l.value===B}]),draggable:"true",onDragstart:A=>m(B),onDragover:E[0]||(E[0]=e.withModifiers(()=>{},["prevent"])),onDrop:A=>x(B)},[e.createElementVNode("button",{class:"cursor-move",type:"button",disabled:a.value},[e.createVNode(e.unref(J.GripVertical),{class:"h-4 w-4"})],8,hf),e.createElementVNode("div",gf,[n.inputType==="text"?(e.openBlock(),e.createBlock(Ht,{key:0,modelValue:C.value,"onUpdate:modelValue":A=>C.value=A,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),n.inputType==="tel"?(e.openBlock(),e.createBlock(lo,{key:1,modelValue:C.value,"onUpdate:modelValue":A=>C.value=A,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),n.inputType==="email"?(e.openBlock(),e.createBlock(ro,{key:2,modelValue:C.value,"onUpdate:modelValue":A=>C.value=A,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),n.inputType==="mask"?(e.openBlock(),e.createBlock(wn,{key:3,modelValue:C.value,"onUpdate:modelValue":A=>C.value=A,mask:n.mask,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","mask","disabled","placeholder"])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:A=>y(C.id),disabled:a.value,class:"shrink-0 w-[30px] text-gray-600 h-[30px] rounded-full flex items-center justify-center bg-gray-100 hover:bg-gray-200 disabled:opacity-50"},[e.createVNode(e.unref(J.X),{class:"h-4 w-4"})],8,yf)],42,ff))),128))],512),r.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",bf," Дані для відображення відсутні ")),e.createElementVNode("div",kf,[e.createElementVNode("button",{type:"button",onClick:g,disabled:p.value,class:"py-1.5 px-2 flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"},[e.createVNode(e.unref(J.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(c.value),1)],8,xf)])]))}}),[["__scopeId","data-v-972a598a"]]),wf={class:"flex items-center gap-2 w-full"},vf=["disabled"],Cf=["disabled"],Lr=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(n,{emit:t}){const o=n,{inputClass:r}=Je(o.style),l=t,a=e.computed({get:()=>o.modelValue||"#000000",set:c=>l("update:modelValue",c)}),s=e.computed(()=>!!o.disabled);return(c,i)=>(e.openBlock(),e.createElementBlock("div",wf,[e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":i[0]||(i[0]=d=>a.value=d),disabled:s.value,ref:"color",class:e.normalizeClass(["py-1.5 px-1 block w-full bg-white cursor-pointer max-w-[50px]",[n.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,vf),[[e.vModelText,a.value]]),e.withDirectives(e.createElementVNode("input",{class:"text-sm text-gray-600 border border-solid border-stone-200 rounded-md p-2","onUpdate:modelValue":i[1]||(i[1]=d=>a.value=d),disabled:s.value},null,8,Cf),[[e.vModelText,a.value]])]))}}),Ef={class:"flex items-center gap-2 w-full"},_f=["min","max","step","disabled"],Bf=["value","min","max","step","disabled"],Ir=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(n,{emit:t}){const o=n,{inputClass:r}=Je(o.style),l=t,a=h=>{const p=Number(h),g=Number(o.min),y=Number(o.max);return Number.isNaN(p)?g:Math.min(y,Math.max(g,p))},s=e.computed({get:()=>a(o.modelValue??o.min),set:h=>l("update:modelValue",a(h))}),c=h=>{const p=h.target,g=a(p.value);p.value=String(g),l("update:modelValue",g)},i=h=>{Number(o.min)>=0&&h.key==="-"&&h.preventDefault()},d=e.computed(()=>!!o.disabled);return(h,p)=>(e.openBlock(),e.createElementBlock("div",Ef,[e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":p[0]||(p[0]=g=>s.value=g),min:n.min,max:n.max,step:n.step,disabled:d.value,ref:"range",class:e.normalizeClass(["w-full cursor-pointer accent-blue-500",[n.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")])},null,10,_f),[[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:n.min,max:n.max,step:n.step,onInput:c,onKeydown:i,disabled:d.value},null,40,Bf)]))}}),Vf=["placeholder","disabled","name"],Sf=["type","value","onInput","placeholder","disabled"],$f=["onClick"],Or=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(n){const t=n,o=e.ref(t.count),r=e.computed(()=>t.limit),{inputClass:l}=Je(t.style),a=e.useModel(n,"modelValue"),s=e.computed(()=>!!t.disabled),c=e.computed(()=>t.placeholder??"");e.watchEffect(()=>{const x=a.value?.length??0;x<o.value&&(a.value=[...a.value??[],...Array(o.value-x)])});const i=e.ref({}),d=e.ref({});function h(x,f){x&&(i.value[f]=x)}async function p(x,f){if(!x||t.inputType!=="mask")return;const{default:E}=await Promise.resolve().then(()=>Wn);d.value[f]&&d.value[f].destroy(),d.value[f]=E(x,{mask:t.mask||"",definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},lazy:!1}),d.value[f].on("accept",()=>{const C=[...a.value||[]];C[f]=t.unmask?d.value[f].unmaskedValue:d.value[f].value,a.value=C}),d.value[f].on("complete",()=>{const C=[...a.value||[]];C[f]=t.unmask?d.value[f].unmaskedValue:d.value[f].value,a.value=C}),a.value?.[f]&&(d.value[f].value=a.value[f])}function g(x,f){if(s.value)return;const E=x.target.value??null,C=[...a.value];C[f]=t.inputType==="text"?E:Number(E),a.value=C}function y(){o.value+=1;const x=t.inputType==="text"||t.inputType==="mask"?null:0;a.value=[...a.value,x],t.inputType==="mask"&&setTimeout(()=>{const f=o.value-1;i.value[f]&&p(i.value[f],f)},0)}function m(x){if(o.value>1){d.value[x]&&(d.value[x].destroy(),delete d.value[x]),o.value-=1,a.value=a.value.filter((E,C)=>C!==x);const f={};Object.keys(d.value).forEach(E=>{const C=parseInt(E,10);C>x?f[C-1]=d.value[C]:C<x&&(f[C]=d.value[C])}),d.value=f}}return e.onMounted(()=>{if(t.inputType==="mask")for(let x=0;x<o.value;x+=1)i.value[x]&&p(i.value[x],x)}),e.onBeforeUnmount(()=>{Object.values(d.value).forEach(x=>{x&&x.destroy()})}),e.watch(()=>t.mask,x=>{t.inputType==="mask"&&Object.values(d.value).forEach(f=>{f&&f.updateOptions({mask:x,definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/}})})}),e.watch(a,x=>{t.inputType==="mask"&&x&&x.forEach((f,E)=>{d.value[E]&&d.value[E].value!==f&&(d.value[E].value=f||"")})},{deep:!0}),(x,f)=>(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(o.value,E=>(e.openBlock(),e.createElementBlock("div",{key:E,class:"flex items-center gap-2 w-full"},[n.inputType==="mask"?(e.openBlock(),e.createElementBlock("input",{key:0,type:"text",ref_for:!0,ref:C=>h(C,E-1),placeholder:n.placeholder,disabled:n.disabled,name:`${n.name}[${E-1}]`,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(l),{"!border-red-600":n.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Vf)):(e.openBlock(),e.createElementBlock("input",{key:1,type:n.inputType,value:a.value?.[E-1],onInput:C=>g(C,E-1),placeholder:c.value,disabled:s.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(l),{"!border-red-600":n.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,Sf)),!n.disabled&&E===o.value&&n.isAdded?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:e.withModifiers(y,["stop"]),class:"cursor-pointer shrink-0 w-[38px] text-green-600 h-[38px] rounded-md flex items-center justify-center border border-stone-200 hover:bg-stone-100"},[e.createVNode(e.unref(J.Plus),{class:"h-4 w-4"})])):e.createCommentVNode("",!0),!n.disabled&&o.value>1&&n.isAdded?(e.openBlock(),e.createElementBlock("button",{key:3,type:"button",onClick:e.withModifiers(C=>m(E-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(J.X),{class:"h-4 w-4"})],8,$f)):e.createCommentVNode("",!0)]))),128))],2))}}),Af={class:"flex gap-1 w-full"},Nf=["aria-expanded","data-focus"],Mf=["placeholder","disabled","readonly"],Ff={class:"max-h-full"},Df=["onClick","disabled"],Tf={key:0,class:"px-3 py-2 text-sm text-stone-500"},Lf=["disabled"],If={class:"flex flex-col gap-1"},Of=["onDragstart","onDrop"],Pf=["disabled"],Rf=["title"],zf=["disabled","onClick","aria-label"],jf={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(n,{emit:t}){const o=n,r=t,l=e.useModel(n,"modelValue"),a=e.ref([]),s=e.ref(o.options??[]),c=e.ref({}),i=e.ref({}),d=e.ref({keyword:"",parent:null}),h=e.ref(""),p=e.ref(!1),g=e.ref(null),y=e.ref(null),m=e.ref(null),x=e.ref(null),f=e.ref(null),E=e.ref({});let C=!1,B=!1;const A=e.inject("values"),U=e.computed(()=>!!o.disabled),Q=e.computed(()=>o.placeholder??"Оберіть значення"),L=e.computed(()=>o.search!==!1),V=e.computed(()=>{const w=o.parent??o.parentValue;return w?String(w):""}),S=e.computed(()=>V.value?A?.value?.[V.value]??null:null),v=w=>w==null?"__null__":String(w),T=w=>{if(!w)return"";const M=w.label??w.text??w.name??w.ua??w.en;return M?String(M):w.id!==void 0&&w.id!==null?String(w.id):""},H=w=>{const M=v(w);return i.value[M]||(i.value[M]=`array-select-${M}-${Math.random().toString(36).slice(2,8)}`),i.value[M]},ne=e.computed(()=>new Set(a.value.map(w=>v(w.id)))),N=e.computed(()=>{const w=ne.value;let M=[...s.value];if(!o.data&&h.value.trim()){const R=h.value.toLowerCase();M=M.filter(de=>T(de).toLowerCase().includes(R))}return M.filter(R=>!w.has(v(R.id)))}),O=()=>{if(!o.data)return"";const w=o.prefix??"api",M=o.api??`/${w}/suggest/${o.data}`;return`${o.host??""}${M}`},K=()=>{a.value.length&&(C=!0,a.value=a.value.map(w=>({...w,text:c.value[v(w.id)]??w.text})))},W=w=>{const M=v(w.id),R=T(w);R&&(c.value[M]=R)},z=w=>{s.value=w?[...w]:[],w?.forEach(W),K()},I=w=>{if(!w.length)return;const M=new Map(s.value.map(R=>[v(R.id),R]));w.forEach(R=>{const de=v(R.id);M.set(de,R),W(R)}),s.value=Array.from(M.values()),K()},Z=async(w="")=>{if(!o.data)return[];const M=O();if(!M)return[];const R=new URLSearchParams;R.set("json","1"),w&&R.set("key",w),o.start===1&&R.set("start","1"),S.value!==null&&S.value!==void 0&&S.value!==""&&R.set("parent",String(S.value));try{return(await(await fetch(`${M}?${R.toString()}`)).json())?.data??[]}catch{return[]}},$=async w=>{if(!o.data||!w.length)return[];const M=O();if(!M)return[];const R=Array.from(new Set(w.map(Ce=>v(Ce)))),de=new URLSearchParams;de.set("json","1"),de.set("val",R.join(",")),o.start===1&&de.set("start","1"),S.value!==null&&S.value!==void 0&&S.value!==""&&de.set("parent",String(S.value));try{const Le=(await(await fetch(`${M}?${de.toString()}`)).json())?.data??[];return I(Le),Le}catch{return[]}},j=async w=>{if(w==null||w==="")return null;const M=v(w),R=s.value.find(Ce=>v(Ce.id)===M);if(R)return R;const[de]=await $([w]);return de??null},D=async(w="",{force:M=!1}={})=>{if(!o.data)return;const R=S.value??null;if(!M&&d.value.keyword===w&&d.value.parent===R&&s.value.length>0)return;d.value={keyword:w,parent:R};const Ce=await Z(w);z(Ce)},ce=((w,M=200)=>{let R;return(...de)=>{R&&clearTimeout(R),R=setTimeout(()=>w(...de),M)}})(async w=>{o.data&&await D(w,{force:!0})},250),oe=e.ref(null),he=()=>{if(!m.value)return;const w=m.value.getBoundingClientRect(),M=window.innerHeight??document.documentElement.clientHeight,R=window.innerWidth??document.documentElement.clientWidth,de=8,Ce=8,Pe=o.maxHeight??280,Le=M-w.bottom-Ce-de,Xe=w.top-Ce-de,et=Le>=Xe,ot=Math.max(R-de*2,0);let{width:P}=w;ot>0&&P>ot&&(P=ot);let{left:ue}=w;ue+P+de>R&&(ue=R-P-de),ue=Math.max(ue,de);const Ze=Math.min(Pe,Math.max(et?Le:Xe,50));E.value={position:"fixed",left:`${ue}px`,width:`${P}px`,maxHeight:`${Ze}px`,transform:et?"none":"translateY(-100%)",top:et?`${w.bottom+Ce}px`:`${w.top-Ce}px`}},ve=async(w="click")=>{U.value||p.value||(oe.value=w,await D(h.value.trim()),p.value=!0,await e.nextTick(),he(),f.value?.focus())},xe=()=>{p.value=!1,oe.value=null,e.nextTick(()=>{f.value?.blur()})},Me=async w=>{if(w.stopPropagation(),!U.value){if(p.value){if(oe.value==="focus"){oe.value=null;return}xe();return}await ve("click")}},Ie=w=>{w.key==="Escape"&&xe()},Oe=w=>{if(!p.value)return;const M=w.target;x.value?.contains(M)||xe()},Ae=w=>{const M=w.target;y.value?.contains(M)||x.value?.contains(M)||xe()},ae=w=>{if(w.key==="Escape"){w.preventDefault(),xe();return}if(w.key==="Enter"){w.preventDefault();const M=N.value[0];M&&re(M)}},re=w=>{if(!w)return;const M=v(w.id);if(ne.value.has(M))return;W(w);const R={id:w.id,text:T(w)||String(w.id??""),key:H(w.id)};a.value=[...a.value,R],be(w),h.value="",e.nextTick(()=>{f.value?.focus()})},be=w=>{const M=a.value.map(R=>R.id);r("value-selected",{name:o.name,value:M,option:w})},Se=w=>{if(U.value)return;const M=a.value.filter(R=>v(R.id)!==v(w));a.value=M},{isOpenAdd:Te,addData:qe,addSchema:X,addForm:ee,addTitle:te,addOption:pe,onAddValue:ye}=gr({props:o,fetchOptionByValue:j,optionsList:s,selectedOption:e.ref(null),modelValue:l,onCreated:async(w,M)=>{const R=w??await j(M),de=R?.id??M;ne.value.has(v(de))||(R&&W(R),a.value=[...a.value,{id:de,text:R?T(R):String(de),key:H(de)}],be(R??null))}}),$e=w=>{U.value||(g.value=w)},Fe=w=>{if(U.value||g.value===null||g.value===w)return;const M=[...a.value],[R]=M.splice(g.value,1);M.splice(w,0,R),g.value=null,a.value=M},De=async()=>{const M=(Array.isArray(l.value)?[...l.value]:[]).filter(de=>de!=null);if(o.data&&M.length){const de=M.filter(Ce=>!c.value[v(Ce)]);de.length&&await $(de)}const R=M.map(de=>({id:de,text:c.value[v(de)]??String(de),key:H(de)}));C=!0,a.value=R};e.watch(a,w=>{if(C){C=!1;return}const M=w.map(R=>R.id);B=!0,l.value=M,r("change",M)},{deep:!0}),e.watch(l,()=>{if(B){B=!1;return}De()},{deep:!0}),e.watch(h,w=>{!o.data||!p.value||ce(w.trim())}),e.watch(U,w=>{w&&xe()}),e.watch(()=>o.options,async w=>{o.data||(z(w??[]),await De())},{immediate:!0,deep:!0}),e.watch(()=>o.data,async w=>{w&&(await D(h.value.trim()),await De())},{immediate:!0});const G=e.ref(!1);return e.watch(S,async()=>{if(o.data){if(!G.value){G.value=!0;return}a.value=[],await D(h.value.trim()),await De()}}),e.onMounted(async()=>{document.addEventListener("click",Ae,!0),window.addEventListener("keydown",Ie),window.addEventListener("scroll",Oe,!0),await De()}),e.onUnmounted(()=>{document.removeEventListener("click",Ae,!0),window.removeEventListener("keydown",Ie),window.removeEventListener("scroll",Oe,!0)}),(w,M)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(ke.VsModal),{visible:e.unref(Te),"onUpdate:visible":M[1]||(M[1]=R=>e.isRef(Te)?Te.value=R:null),class:"z-[1000]",title:e.unref(te),buttonText:"Додати",onDone:e.unref(pe)},{default:e.withCtx(()=>[e.createVNode(pt,{schema:e.unref(X),modelValue:e.unref(qe),"onUpdate:modelValue":M[0]||(M[0]=R=>e.isRef(qe)?qe.value=R:null),ref_key:"addForm",ref:ee},null,8,["schema","modelValue"])]),_:1},8,["visible","title","onDone"]),e.createElementVNode("div",{class:"flex flex-col gap-2 w-full",ref_key:"rootRef",ref:y},[e.createElementVNode("div",Af,[e.createElementVNode("div",{class:"relative flex-1",onClick:M[4]||(M[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{ref_key:"triggerRef",ref:m,class:e.normalizeClass(["flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white px-3","border-gray-300 hover:border-[#b3d4ff]",p.value?"border-[#2684ff] ring-1 ring-[#2684ff] shadow-[0_0_0_1px_rgba(38,132,255,0.5)]":"",U.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),role:"combobox","aria-expanded":p.value,"aria-haspopup":"listbox","data-focus":p.value?"true":"false",onClick:Me},[e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:f,"onUpdate:modelValue":M[2]||(M[2]=R=>h.value=R),placeholder:Q.value,disabled:U.value,readonly:!L.value,onFocus:M[3]||(M[3]=()=>ve("focus")),onKeydown:ae,class:"flex-1 bg-transparent border-0 outline-none px-0 py-1 text-sm text-stone-900 placeholder:text-stone-400"},null,40,Mf),[[e.vModelText,h.value]]),e.createElementVNode("span",{class:e.normalizeClass(["text-stone-400 transition-transform duration-150",p.value?"rotate-180":""]),"aria-hidden":"true"},[e.createVNode(e.unref(J.ChevronDown),{class:"h-4 w-4"})],2)],10,Nf),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[p.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:x,class:"fixed z-[3000] rounded-md border border-stone-200 bg-white shadow-lg overflow-auto",style:e.normalizeStyle(E.value)},[e.createElementVNode("div",Ff,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,R=>(e.openBlock(),e.createElementBlock("button",{key:v(R.id),type:"button",class:"w-full px-3 py-2 text-left text-sm text-stone-900 hover:bg-stone-100 disabled:opacity-50",onClick:e.withModifiers(de=>re(R),["stop"]),disabled:U.value},e.toDisplayString(T(R)),9,Df))),128)),N.value.length===0?(e.openBlock(),e.createElementBlock("p",Tf," Немає варіантів ")):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))]),o.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:M[5]||(M[5]=(...R)=>e.unref(ye)&&e.unref(ye)(...R)),class:"bg-white hover:bg-gray-100 text-sm text-gray-900 py-[10px] px-3 border border-stone-200 rounded-md h-[38px] flex items-center gap-2",disabled:U.value,type:"button"},[e.createVNode(e.unref(J.Plus),{class:"h-4 w-4"}),M[8]||(M[8]=e.createElementVNode("span",null,"Додати",-1))],8,Lf)):e.createCommentVNode("",!0)]),e.createElementVNode("div",If,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(R,de)=>(e.openBlock(),e.createElementBlock("div",{key:R.key,class:e.normalizeClass(["flex items-center gap-2 rounded-md border border-stone-200 bg-white px-2 py-2",{"opacity-60":g.value===de}]),draggable:"true",onDragstart:Ce=>$e(de),onDragover:M[6]||(M[6]=e.withModifiers(()=>{},["prevent"])),onDrop:Ce=>Fe(de),onDragend:M[7]||(M[7]=Ce=>g.value=null)},[e.createElementVNode("button",{type:"button",class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-stone-500 hover:text-stone-900",disabled:U.value,"aria-label":"Перетягнути"},[e.createVNode(e.unref(J.GripVertical),{class:"h-4 w-4"})],8,Pf),e.createElementVNode("div",{class:"flex-1 text-sm text-stone-900",title:R.text},e.toDisplayString(R.text),9,Rf),e.createElementVNode("button",{type:"button",class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-stone-400 hover:text-stone-900",disabled:U.value,onClick:e.withModifiers(Ce=>Se(R.id),["stop"]),"aria-label":`Видалити ${R.text}`},[e.createVNode(e.unref(J.X),{class:"h-4 w-4"})],8,zf)],42,Of))),128)),a.value.length===0?(e.openBlock(),e.createElementBlock("p",jf,"Немає вибраних значень")):e.createCommentVNode("",!0)])],512)],64))}}),[["__scopeId","data-v-9f0cb9d4"]]),Uf={class:"flex items-center gap-2 w-full"},Hf={class:"relative flex-1"},qf=["placeholder","disabled","onKeydown"],Kf=["disabled"],Wf={key:0,class:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/50"},Gf={class:"bg-white text-gray-900 rounded-lg shadow-lg w-[480px] max-h-[80vh] overflow-y-auto"},Yf={class:"p-3 border-b font-semibold text-gray-900 flex justify-between items-center"},Xf=["onClick"],Zf={key:0,class:"p-4 text-sm text-gray-500"},Pr=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(n,{emit:t}){const o=/{{\s*([^}]+?)\s*}}/g,r=n,l=t,{inputClass:a}=Je(r.style),s=e.useModel(n,"modelValue"),c=e.computed({get:()=>s.value,set:L=>{s.value=L}}),i=e.ref(!1),d=e.ref([]),h=e.ref(!1),p=e.ref(null);e.watch(h,L=>{typeof document>"u"||(L?(p.value=document.body.style.overflow,document.body.style.overflow="hidden"):p.value!=null?(document.body.style.overflow=p.value,p.value=null):document.body.style.removeProperty("overflow"))}),e.onBeforeUnmount(()=>{typeof document>"u"||(p.value!=null?document.body.style.overflow=p.value:document.body.style.removeProperty("overflow"))});const g=e.computed(()=>r.placeholder??""),y=e.computed(()=>!!r.disabled),m=L=>{if(!L)return null;if(Array.isArray(L))return L;if(typeof L=="string"){const V=L.split(",").map(S=>S.trim()).filter(Boolean);return V.length!==4?null:V.map(Number)}return null},x=e.computed(()=>{const L=m(r.bbox);if(!L||L.length!==4)return null;const V=L.map(Number);return V.some(S=>Number.isNaN(S))?null:V}),f=e.computed(()=>{const L=x.value;if(!L)return"";const[V,S,v,T]=L;return`${V},${Math.max(S,T)},${v},${Math.min(S,T)}`});e.computed(()=>f.value?"1":"0");const E=e.inject("values");function C(){!y.value&&c.value.trim()&&B()}async function B(){const L=(c.value||"").trim();if(!L)return;let V=L;if(r.includes?.length&&E?.value){const v=r.includes.map(T=>E.value?.[T]).filter(Boolean);v.length&&(V=`${v.join(", ")}, ${L}`)}const S=Q(V);if(S){i.value=!0;try{const T=await(await fetch(S)).json();d.value=Array.isArray(T)?T:[],h.value=!0}catch(v){console.error("Address search error:",v)}finally{i.value=!1}}}function A(){h.value=!h.value}function U(L){if(!L)return;h.value=!1;const V=parseFloat(L.lat),v={type:"Point",coordinates:[parseFloat(L.lon),V]};r.geom&&E?.value&&(E.value[r.geom]=v),l("update:geom",v)}function Q(L){if(!r.api)return"";const V={value:encodeURIComponent(L),bbox:x.value?x.value.join(","):""};return r.api.replace(o,(S,v)=>V[v.trim()]??"")}return(L,V)=>(e.openBlock(),e.createElementBlock("div",Uf,[e.createElementVNode("div",Hf,[e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":V[0]||(V[0]=S=>c.value=S),placeholder:g.value,disabled:y.value,class:e.normalizeClass(["py-1.5 px-3 block w-full bg-white border rounded-md placeholder:text-gray-400 focus:ring-2 focus:ring-blue-500",[e.unref(a),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"},onKeydown:e.withKeys(e.withModifiers(C,["prevent"]),["enter"])},null,42,qf),[[e.vModelText,c.value]]),d.value.length?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"absolute right-2 top-1/2 -translate-y-1/2 text-gray-500 hover:text-blue-600",onClick:A,title:"Show search results"},[e.createVNode(e.unref(J.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:i.value||!c.value?.trim()},[i.value?(e.openBlock(),e.createBlock(e.unref(J.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(e.openBlock(),e.createBlock(e.unref(J.Search),{key:0,class:"h-4 w-4"}))],8,Kf),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[h.value?(e.openBlock(),e.createElementBlock("div",Wf,[e.createElementVNode("div",Gf,[e.createElementVNode("div",Yf,[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=>h.value=!1),title:"Close"},[e.createVNode(e.unref(J.X),{class:"h-4 w-4"})])]),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(S,v)=>(e.openBlock(),e.createElementBlock("li",{key:v,onClick:T=>U(S),class:"px-3 py-2 cursor-pointer hover:bg-gray-100 border-b text-sm"},e.toDisplayString(S.display_name),9,Xf))),128))]),d.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Zf," Не знайдено результатів "))])])):e.createCommentVNode("",!0)]))]))}}),Jf={class:"vs-datalist space-y-3"},Qf={class:"space-y-3"},eh=["onClick","disabled"],th={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},nh=["disabled"],oh=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(n){const t=n,o=e.useModel(n,"modelValue"),r=e.computed(()=>Array.isArray(o.value)?o.value:[]),l=e.ref([]),a=e.computed(()=>t.schema?.map(f=>({...f,disabled:t.disabled||f.disabled}))??[]),s=e.computed(()=>a.value.map(f=>x(f))),c=e.computed(()=>a.value.reduce((E,C)=>{const B=Number(C?.col??12);return E+(Number.isFinite(B)&&B>0?B:12)},0)>12),i=e.computed(()=>t.disabled?!1:t.maxItems?r.value.length<t.maxItems:!0),d=e.computed(()=>t.disabled||r.value.length<=(t.minItems||0));e.watch(()=>r.value.length,()=>{h(),p()},{immediate:!0}),e.watch(()=>t.schema,p,{immediate:!0,deep:!0});function h(){const f=r.value.length;l.value.length<f?l.value=[...l.value,...Array.from({length:f-l.value.length},()=>fo())]:l.value.length>f&&l.value.splice(f)}function p(){if(!t.minItems||r.value.length>=t.minItems)return;const f=t.minItems-r.value.length,E=Array.from({length:f},g);o.value=[...r.value,...E]}function g(){const f={};return a.value.forEach(E=>{f[E.name]=E?.default??null}),f}function y(){i.value&&(o.value=[...r.value,g()],h())}function m(f){d.value||(o.value=r.value.filter((E,C)=>C!==f),h(),p())}function x(f){return{...f}}return(f,E)=>(e.openBlock(),e.createElementBlock("div",Jf,[e.createElementVNode("div",Qf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(C,B)=>(e.openBlock(),e.createElementBlock("div",{key:l.value[B],class:e.normalizeClass(["flex items-center gap-3 rounded-lg transition-colors",{"border border-gray-300 p-2":c.value}])},[e.createVNode(pt,{schema:s.value,layout:"inline",navigation:!1,values:r.value[B],"onUpdate:values":A=>r.value[B]=A,"form-id":l.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:A=>m(B),disabled:d.value},[e.createVNode(e.unref(J.Trash2),{class:"h-4 w-4"})],8,eh)],2))),128)),r.value.length===0?(e.openBlock(),e.createElementBlock("div",th,e.toDisplayString(t.emptyLabel),1)):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",class:"flex items-center gap-2 text-gray-600 hover:text-gray-900 font-medium transition-colors text-sm",onClick:y,disabled:!i.value},[e.createVNode(e.unref(J.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,nh)]))}}),[["__scopeId","data-v-8df8e72a"]]),rh={class:"vs-dataform space-y-4"},lh=["draggable","onDragstart","onDragover","onDragenter","onDrop"],ah={class:"flex items-center gap-2"},sh=["onClick"],ih={class:"text-sm font-medium text-gray-700"},ch={class:"flex items-center gap-2"},dh=["title","onClick","disabled"],uh=["title","onClick","disabled"],ph={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},mh=["disabled"],fh=Be(e.defineComponent({__name:"vs-input-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(n){const t=n,o=e.useModel(n,"modelValue"),r=e.ref([]),l=e.ref([]),a=e.ref(0),s=e.ref(null),c=e.ref(null),i=e.ref(null),d=e.computed(()=>t.groupLabel??"Group"),h=e.computed(()=>t.emptyLabel??"Ще немає груп"),p=e.computed(()=>t.schema?.map(D=>({...D,disabled:t.disabled||D.disabled}))??[]),g=e.computed(()=>p.value.map(D=>S(D))),y=e.computed(()=>t.view==="accordion"),m=e.computed(()=>!!(t.collapsible||y.value)),x=e.computed(()=>t.draggable!==!1),f=e.computed(()=>t.disabled?!1:t.maxGroups?o.value.length<t.maxGroups:!0),E=e.computed(()=>t.disabled||o.value.length<=(t.minGroups||0));e.watch(()=>o.value.length,()=>{C(),B(),A()},{immediate:!0}),e.watch(()=>t.schema,A,{immediate:!0,deep:!0}),e.watch(()=>t.view,()=>{B()},{immediate:!0});function C(){const D=o.value.length;r.value.length<D?r.value=[...r.value,...Array.from({length:D-r.value.length},()=>fo())]:r.value.length>D&&r.value.splice(D)}function B(){const D=o.value.length;y.value?D===0?a.value=-1:a.value>=D?a.value=D-1:a.value<0&&(a.value=0):l.value.length<D?l.value=[...l.value,...Array.from({length:D-l.value.length},()=>!1)]:l.value.length>D&&l.value.splice(D)}function A(){if(!t.minGroups||o.value.length>=t.minGroups)return;const D=t.minGroups-o.value.length,se=Array.from({length:D},U);o.value=[...o.value,...se],B()}function U(){const D={};return p.value.forEach(se=>{D[se.name]=se?.default??null}),D}function Q(){f.value&&(o.value=[...o.value,U()],C(),B())}function L(D){E.value||(o.value=o.value.filter((se,ce)=>ce!==D),C(),y.value?a.value>=o.value.length&&(a.value=o.value.length-1):l.value.splice(D,1),A())}function V(D){if(t.disabled)return;const se=JSON.parse(JSON.stringify(o.value[D]??{}));o.value=[...o.value.slice(0,D+1),se,...o.value.slice(D+1)],C(),y.value?a.value>D&&(a.value+=1):l.value.splice(D+1,0,l.value[D]??!1)}function S(D){return{...D}}function v(D){return y.value?a.value===-1&&D===0?!1:a.value!==D:!!l.value[D]}function T(D){if(m.value){if(y.value){a.value=D;return}l.value[D]=!l.value[D]}}function H(D,se){if(!x.value||t.disabled){se.preventDefault();return}s.value=D,c.value=D,i.value={groups:JSON.parse(JSON.stringify(o.value)),keys:[...r.value],states:[...l.value]},se.dataTransfer?.setData("text/plain",String(D)),se.dataTransfer?.setDragImage?.(se.currentTarget,0,0)}function ne(D,se){!x.value||t.disabled||s.value!==null&&I(D,se)}function N(D,se){I(D,se)}function O(D){!x.value||t.disabled||j()}function K(){i.value&&z(),s.value=null,c.value=null,i.value=null}function W(D,se){const ce=[...o.value],[oe]=ce.splice(D,1);ce.splice(se,0,oe),o.value=ce;const he=[...r.value],[ve]=he.splice(D,1);if(he.splice(se,0,ve),r.value=he,y.value)a.value===D&&(a.value=se);else{const xe=[...l.value],[Me]=xe.splice(D,1);xe.splice(se,0,Me),l.value=xe}}function z(){i.value&&(o.value=i.value.groups,r.value=i.value.keys,l.value=i.value.states,i.value=null,c.value=null)}function I(D,se){if(s.value===null)return;const ce=Z(D,se);c.value=ce,$(ce)}function Z(D,se){if(!se?.currentTarget)return D;const ce=se.currentTarget.getBoundingClientRect(),he=se.clientY-ce.top>ce.height/2?D+1:D;return Math.max(0,Math.min(he,o.value.length))}function $(D){const se=s.value;if(se===null)return;let ce=D;if(ce>o.value.length&&(ce=o.value.length),ce===se||ce===se+1)return;const oe=ce>se?ce-1:ce;W(se,oe),s.value=oe,c.value=ce>se?oe+1:oe}function j(){i.value=null,s.value=null,c.value=null}return(D,se)=>(e.openBlock(),e.createElementBlock("div",rh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(ce,oe)=>(e.openBlock(),e.createElementBlock("div",{key:r.value[oe],class:e.normalizeClass(["relative border border-gray-200 rounded-lg bg-white transition vs-dataform__group",[t.view==="accordion"?"overflow-hidden":v(oe)?"pt-6 px-6":"p-6"]]),draggable:x.value&&!t.disabled,onDragstart:he=>H(oe,he),onDragend:K,onDragover:e.withModifiers(he=>ne(oe,he),["prevent"]),onDragenter:e.withModifiers(he=>N(oe,he),["prevent"]),onDrop:e.withModifiers(he=>O(),["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"&&!v(oe)?"rounded-t-lg":"rounded-lg"]])},[e.createElementVNode("div",ah,[x.value?(e.openBlock(),e.createBlock(e.unref(J.GripVertical),{key:0,class:"h-4 w-4 text-gray-400","aria-hidden":"true"})):e.createCommentVNode("",!0),m.value?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"rounded-full p-1 text-gray-500 transition hover:bg-gray-100",onClick:he=>T(oe)},[e.createVNode(e.unref(J.ChevronDown),{class:e.normalizeClass(["h-4 w-4 transition",v(oe)?"-rotate-90":"rotate-0"])},null,8,["class"])],8,sh)):e.createCommentVNode("",!0),e.createElementVNode("div",ih,e.toDisplayString(`${d.value} (${oe+1})`),1)]),e.createElementVNode("div",ch,[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(oe),disabled:t.disabled,draggable:"false"},[e.createVNode(e.unref(J.Copy),{class:"h-4 w-4"})],8,dh),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=>L(oe),disabled:E.value,draggable:"false"},[e.createVNode(e.unref(J.Trash2),{class:"h-4 w-4"})],8,uh)])],2),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(t.view==="accordion"?"p-6":"pt-6")},[e.createVNode(pt,{class:"vs-dataform__form",schema:g.value,layout:"inline",navigation:!1,values:o.value[oe],"onUpdate:values":he=>o.value[oe]=he,"form-id":r.value[oe],disabled:t.disabled},null,8,["schema","values","onUpdate:values","form-id","disabled"])],2),[[e.vShow,!v(oe)]])],42,lh))),128)),o.value.length===0?(e.openBlock(),e.createElementBlock("div",ph,e.toDisplayString(h.value),1)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"flex items-center gap-2 text-gray-600 hover:text-gray-900 font-medium transition-colors text-sm",onClick:Q,disabled:!f.value},[e.createVNode(e.unref(J.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,mh)]))}}),[["__scopeId","data-v-accd044e"]]),zn="__vs_form_monaco_loader__",jt="__vs_form_monaco_script_loader__",jn="__vs_form_monaco_editor_loader__",bo=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(n,{expose:t}){const o=n,r=e.useModel(n,"modelValue"),l=e.ref(null),a=e.computed(()=>typeof o.height=="number"?`${o.height}px`:o.height||"280px");let s=null,c=null,i=!1;const d=()=>{if(c)return Promise.resolve(c);if(typeof window>"u")return Promise.resolve(null);const m=window;if(m.monaco?.editor?.create)return c=m.monaco,Promise.resolve(c);if(m[zn])return m[zn];const f=(async()=>{const E=A=>{if(Array.from(document.styleSheets||[]).some(L=>L?.href?.includes(A)))return;const Q=document.createElement("link");Q.rel="stylesheet",Q.href=A,document.head.appendChild(Q)},C=A=>{if(m[jt]?.[A])return m[jt][A];m[jt]||={};const U=Array.from(document.scripts).find(Q=>Q.src===A);return U?(m[jt][A]=new Promise((Q,L)=>{const V=U.readyState;if(U.dataset.loaded==="true"||V==="loaded"||V==="complete"){Q();return}U.addEventListener("load",()=>{U.dataset.loaded="true",Q()},{once:!0}),U.addEventListener("error",S=>L(S),{once:!0})}),m[jt][A]):(m[jt][A]=new Promise((Q,L)=>{const V=document.createElement("script");V.src=A,V.async=!0,V.onload=()=>{V.dataset.loaded="true",Q()},V.onerror=S=>L(S),document.body.appendChild(V)}),m[jt][A])},B="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs";return E(`${B}/editor/editor.main.min.css`),await C(`${B}/loader.min.js`),m[jn]||(m[jn]=new Promise((A,U)=>{window.require.config({paths:{vs:B}}),window.require(["vs/editor/editor.main"],()=>{c=window.monaco,m.monaco=c,A(c)},Q=>U(Q))}).catch(A=>{throw delete m[jn],A})),m[jn]})().catch(E=>{throw delete m[zn],E});return m[zn]=f,f},h=()=>{!l.value||!c||(s&&(s.dispose(),s=null),s=c.editor.create(l.value,{value:r.value||"",language:o.syntax,theme:o.theme,automaticLayout:!0,minimap:{enabled:!!o.minimap},readOnly:!!o.disabled}),s.onDidChangeModelContent(()=>{i||(r.value=s.getValue())}))},p=()=>{s?.focus()},g=()=>s,y=()=>c;return e.watch(()=>r.value,m=>{if(!s)return;const x=s.getValue();m!==x&&(i=!0,s.setValue(m||""),i=!1)}),e.watch(()=>o.syntax,m=>{!s||!c||c.editor.setModelLanguage(s.getModel(),m||"xml")}),e.watch(()=>o.theme,m=>{c&&c.editor.setTheme(m||"vs-light")}),e.watch(()=>o.disabled,m=>{s&&s.updateOptions({readOnly:!!m})}),e.watch(()=>o.minimap,m=>{s&&s.updateOptions({minimap:{enabled:!!m}})}),e.onMounted(async()=>{try{const m=await d();if(!m||!m.editor)return;c=m,h()}catch(m){console.error("Failed to load Monaco editor",m)}}),e.onBeforeUnmount(()=>{s&&(s.dispose(),s=null)}),t({focus:p,getEditor:g,getMonaco:y}),(m,x)=>(e.openBlock(),e.createElementBlock("div",{class:"w-full",style:e.normalizeStyle({height:a.value})},[e.createElementVNode("div",{ref_key:"editorContainer",ref:l,class:"w-full h-full overflow-hidden border border-[#CFD9E0] rounded"},null,512)],4))}}),Rr={VsInputText:Ht,VsInputRadio:ao,VsInputInlineSelect:Fn,"vs-input-text":Ht,"vs-input-password":ca,"vs-input-textarea":br,"vs-input-richtext":kr,"vs-input-mask":wn,"vs-input-number":Ko,"vs-input-radio":ao,"vs-input-select":mo,"vs-input-inline-select":Fn,"inline-select":Fn,"vs-input-switcher":no,"vs-input-static":oo,"vs-input-container":hr,"vs-input-date":or,"vs-input-checkbox":Yo,"vs-input-file":pr,"vs-input-file2":Nn,file2:Nn,File2:Nn,"vs-input-html":oo,"vs-input-email":ro,"vs-input-tel":lo,"vs-input-datatable":xr,"vs-input-map":Ar,"vs-input-file-list":mr,"vs-input-tags":Nr,"vs-input-slug":Mr,"vs-input-codegen":Fr,"vs-input-key-value":Dr,"vs-input-text[]":Tr,"vs-input-range":Ir,"vs-input-color":Lr,"vs-input-native-select":mo,VsInputArraySelect:Rn,"vs-input-array":Or,"vs-input-array-select":Rn,"array-select":Rn,"vs-input-address":Pr,"vs-input-datalist":oh,"vs-input-dataform":fh,"vs-input-monaco":bo},hh=e.defineComponent({__name:"behavior",props:{api:{},set:{},button:{},error:{},value:{}},setup(n){const t=n,o=e.inject("values");async function r(){try{if(!t.api)return;const l=t.api.replace("{{value}}",t.value),a=await fetch(l);if(!a.ok){ke.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const s=await a.json();if(!t.set||!o)return;for(const[c,i]of Object.entries(t.set))o.value[c]=s.result[i]}catch(l){console.error(t.error,l)}}return(l,a)=>(e.openBlock(),e.createElementBlock("button",{onClick:r,class:"vs-button relative inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-blue-500 hover:border-blue-500 hover:bg-blue-500 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 ml-0 md:ml-2 mt-2 md:mt-0 py-[8px] md:w-2/4 whitespace-nowrap w-full"},e.toDisplayString(n.button),1))}}),gh={class:"flex flex-col gap-1 w-full"},yh={class:"w-full"},bh=["disabled"],kh=["innerHTML"],xh=2e3,wh=10,zr=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(n,{emit:t}){const o=n,r=e.useModel(n,"modelValue"),l=t,a=e.computed(()=>sa[`${o.layout}`]),s=["label","placeholder","info","description","text","html"],c=e.ref(H()),i=e.computed(()=>S(o.item,c.value)),d=e.computed(()=>{const N={...i.value??{}},O=o.item?.name;return O&&p?.value?.[O]&&Object.assign(N,p.value[O]),N.__locale=c.value,N}),h=e.computed(()=>Rr?.[`vs-input-${o.item.type}`]),p=e.inject("field-props"),g=e.computed(()=>{const N=e.unref(h);if(!N)return new Set;const O=N.props??N.__vccOpts?.props;if(!O)return new Set;const K=Array.isArray(O)?O:Object.keys(O);return new Set(K)}),m=[...["min","max","step"],"api","set","mask","layers"],x=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 f(N){const O={};Object.entries(N).forEach(([W,z])=>{x.has(W)||W.includes(":")||z!==void 0&&(O[W]=z)});const K=N.props;return K&&typeof K=="object"&&!Array.isArray(K)&&Object.entries(K).forEach(([W,z])=>{z!==void 0&&(O[W]=z)}),O}const E=e.computed(()=>{const N={...i.value??{}},O=o.item?.name;O&&p?.value?.[O]&&Object.assign(N,p.value[O]);const K=g.value;let W;return K.size?W=Object.fromEntries(Object.entries(N).filter(([z])=>K.has(z))):W={...N},Object.assign(W,f(N)),m.forEach(z=>{const I=N[z];I!=null&&(W[z]=I)}),W}),C=N=>{const O=typeof N=="object"&&N!==null?N:{value:N};l("value-selected",{...O,name:O.name??o.item?.name})},B=/{{\s*([^}]+?)\s*}}/g,A=e.inject("values"),U=e.ref(!1),Q=e.computed(()=>{const N=o.item?.api,O=o.item?.type?.toLowerCase();return typeof N=="string"&&N.trim().length>0&&(O==="text"||O==="mask")});function L(N,O){if(!(N==null||!O))return O.split(".").reduce((K,W)=>K?.[W.trim()],N)}async function V(){const N=String(r.value??"").trim();if(!N)return;const O=(o.item?.api??"").trim();if(!O)return;const K=O.replace(B,(W,z)=>z.trim()==="value"?encodeURIComponent(N):"");U.value=!0;try{let W=await fetch(K),z=0;for(;W.status===202&&z<wh;)z+=1,await new Promise(D=>{setTimeout(D,xh)}),W=await fetch(K);if(W.status===202){ke.notify({type:"warning",title:"Validation",message:"Сервер ще обробляє запит. Спробуйте пізніше."});return}if(!W.ok){ke.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const I=await W.json(),Z=I?.result!==void 0?I.result:I,$=o.item?.set;if(!$||!A?.value)return;const j=o.item?.name;Object.entries($).forEach(([D,se])=>{if(!D)return;let ce=se;j&&ce.startsWith(`${j}.`)&&(ce=ce.slice(j.length+1));const oe=L(Z,ce);A.value[D]=oe??null})}catch(W){console.error("API lookup error:",W),ke.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."})}finally{U.value=!1}}e.onMounted(()=>{c.value=H(),window.addEventListener("storage",ne)}),e.onUnmounted(()=>{window.removeEventListener("storage",ne)});function S(N,O){if(!N)return{};const K={...N};return s.forEach(W=>{const z=T(N,W,O);z!=null&&(K[W]=z)}),Array.isArray(N.options)&&(K.options=N.options.map(W=>v(W,O))),K}function v(N,O){if(!N)return N;const K={...N},W=T(N,"label",O),z=T(N,"text",O);return W!=null&&(K.label=W),z!=null?K.text=z:W!=null&&(K.text=W),K}function T(N,O,K){const W=`${O}:${K}`;if(N?.[W]!=null)return N[W];if(O==="label"&&N?.[K]!=null)return N[K];if(N?.[O]!=null)return N[O];if(O==="label"){if(N?.ua!=null)return N.ua;if(N?.en!=null)return N.en}if(O==="text"||O==="html"){if(N?.ua!=null)return N.ua;if(N?.en!=null)return N.en}return null}function H(){return typeof window>"u"?"uk":localStorage.getItem("locale")||"uk"}function ne(){c.value=H()}return(N,O)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{ua:d.value.ua,error:o.error||"",item:d.value,columns:o.columns,label:d.value.label},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["flex w-full",`${o.item.type}-component`])},[e.createElementVNode("div",gh,[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center gap-2 w-full",{"flex-1":Q.value}])},[e.createElementVNode("div",yh,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.value),e.mergeProps(E.value,{modelValue:r.value,"onUpdate:modelValue":O[0]||(O[0]=K=>r.value=K),onValueSelected:C}),null,16,["modelValue"]))]),Q.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"flex items-center justify-center px-2 py-2 border rounded-md bg-white hover:bg-gray-50 text-gray-600 hover:text-blue-600 disabled:opacity-50 h-[38px] shrink-0",disabled:U.value||!r.value?.toString().trim(),onClick:V},[U.value?(e.openBlock(),e.createBlock(e.unref(J.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(e.openBlock(),e.createBlock(e.unref(J.Search),{key:0,class:"h-4 w-4"}))],8,bh)):e.createCommentVNode("",!0)],2),d.value.description&&o.layout!=="settings"?(e.openBlock(),e.createElementBlock("p",{key:0,class:"text-sm text-gray-500",innerHTML:d.value.description},null,8,kh)):e.createCommentVNode("",!0)]),d.value.behavior?.api&&d.value.behavior?.button?(e.openBlock(),e.createBlock(hh,e.mergeProps({key:0},d.value.behavior,{value:r.value}),null,16,["value"])):e.createCommentVNode("",!0)],2)]),_:1},8,["ua","error","item","columns","label"]))}}),vh={class:"text-sm text-gray-800 mb-[4px] font-medium dark:text-neutral-300"},Ch={class:"vs-compact-form-navigation__rail mt-[6px]"},Eh=["onClick"],_h=Be(e.defineComponent({__name:"vs-compact-form-navigation",props:{target:{},scrollContainer:{},title:{default:"Навігація"},enabled:{type:Boolean,default:!0},width:{default:400}},setup(n,{expose:t}){const o=n,r=e.ref([]),l=e.ref(""),a=e.ref(""),s=e.computed(()=>!!o.enabled),c=e.computed(()=>["vs-compact-form-navigation flex flex-col pl-[6px] pt-[8px] pr-[8px]","sticky top-0 self-start shrink-0","max-h-full min-h-0 overflow-y-auto"]),i=e.computed(()=>{const T=o.width;if(T==null)return{};const H=typeof T=="number"?`${T}px`:`${T}`;return{width:H,minWidth:H}});let d=null,h=0,p=0,g=null,y=null,m=null;const x=()=>S(),f=()=>C();e.watch(()=>o.target,async T=>{if(Q(),!T){g=null,r.value=[],l.value="";return}g=T,s.value&&(await e.nextTick(),U(T),C())},{immediate:!0}),e.watch(()=>o.scrollContainer,T=>{if(!s.value){y=T??null;return}E(T??null),e.nextTick(()=>C())},{immediate:!0}),e.onMounted(()=>{o.scrollContainer||E(null),C()}),e.onBeforeUnmount(()=>{Q(),E(null,!0),g=null,typeof window<"u"&&(h&&window.cancelAnimationFrame(h),p&&window.cancelAnimationFrame(p))});function E(T,H=!1){if(m&&(m(),m=null),H){y=null;return}if(y=T??null,typeof window>"u")return;const ne=T??window,N=window;ne.addEventListener("scroll",x,{passive:!0}),N.addEventListener("resize",f),m=()=>{ne.removeEventListener("scroll",x),N.removeEventListener("resize",f)}}function C(){if(!s.value||!g)return;h&&typeof window<"u"&&window.cancelAnimationFrame(h);const T=()=>{B(),h=0};typeof window>"u"?T():h=window.requestAnimationFrame(T)}function B(){if(!s.value||!g)return;const T=Array.from(g.querySelectorAll("h1, h2")),H=new Set,ne=[];T.forEach((N,O)=>{const K=N.textContent?.trim()??"";if(!K)return;let W=(N.getAttribute("id")??"").trim();W||(W=A(K)||`heading-${O+1}`);let z=W,I=1;for(;H.has(z);)z=`${W}-${I+=1}`;N.id!==z&&Object.assign(N,{id:z}),H.add(z),ne.push({id:z,text:K,level:N.tagName.toLowerCase()==="h1"?1:2})}),r.value=ne,ne.length||(l.value=""),V()}function A(T){return T.toLowerCase().replace(/[^a-z0-9\s-]/g,"").trim().replace(/\s+/g,"-")}function U(T){!T||!s.value||typeof MutationObserver>"u"||(Q(),d=new MutationObserver(()=>C()),d.observe(T,{childList:!0,subtree:!0}))}function Q(){d&&(d.disconnect(),d=null)}function L(T){const H=y;if(!H)return typeof window>"u"?T.offsetTop:T.getBoundingClientRect().top+window.scrollY;const ne=T.getBoundingClientRect(),N=H.getBoundingClientRect();return ne.top-N.top+H.scrollTop}function V(){if(!s.value||!r.value.length)return;const T=y,H=(T?T.scrollTop:null)||(typeof window<"u"?window.scrollY:0),ne=(T?T.clientHeight:null)||(typeof window<"u"?window.innerHeight:0),N=H+ne;let O=null;for(let W=0;W<r.value.length;W+=1){const z=r.value[W],I=document.getElementById(z.id);if(I){const Z=L(I);Z+I.offsetHeight>H&&Z<N&&(O=z.id)}}!O&&a.value&&(O=a.value),O&&(a.value=O);const K=T?T.scrollHeight-T.clientHeight:document.documentElement.scrollHeight-window.innerHeight;H+5>=K&&(O=r.value[r.value.length-1].id),O&&(l.value=O)}function S(){s.value&&(p&&window.cancelAnimationFrame(p),p=window.requestAnimationFrame(()=>{V(),p=0}))}function v(T){if(!s.value)return;const H=document.getElementById(T);if(!H)return;const ne=y,N=Math.max(0,L(H));ne?ne.scrollTo({top:N,behavior:"smooth"}):typeof window<"u"&&window.scrollTo({top:N,behavior:"smooth"})}return t({refresh:C}),(T,H)=>s.value&&r.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(c.value),style:e.normalizeStyle(i.value)},[e.createElementVNode("h2",vh,e.toDisplayString(n.title),1),e.createElementVNode("div",Ch,[(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===l.value?"vs-compact-form-navigation__item--active":""])},[e.createElementVNode("button",{type:"button",onClick:N=>v(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===l.value?"text-gray-800":"text-gray-500"])},[e.createElementVNode("span",null,e.toDisplayString(ne.text),1)],10,Eh)],2))),128))])],6)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-b3e16a91"]]),ht={required:"Це поле є обов’язковим",email:"Неправильний email",tel:"Неправильний телефон",minlength:n=>`Мінімальна довжина — ${n} символів`,maxlength:n=>`Максимальна довжина — ${n} символів`,min:n=>`Значення має бути не менше ${n}`,max:n=>`Значення має бути не більше ${n}`},Bh=n=>typeof n=="string"?n.trim()?!1:ht.required:Array.isArray(n)?n.map(o=>typeof o=="string"?o.trim():o).filter(o=>o!=null&&o!=="").length?!1:ht.required:typeof n=="number"?Number?.isNaN(n)?ht?.required:!1:n?!1:ht.required,Vh=n=>{const t=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/;return n?t.test(n)?!1:ht.email:!1},Sh=(n,t)=>{if(!n)return!1;const o=String(n).trim();if(!/^\+[1-9]\d{1,14}$/.test(o))return ht.tel;const a=(typeof t?.digits=="number"&&Number.isFinite(t.digits)&&t.digits>0?t.digits:Mt(Ct))||Mt(Ct);return o.length-1!==a?ht.tel:!1},jr=n=>n==null?0:typeof n=="string"?n.trim().length:Array.isArray(n)?n.length:typeof n=="number"?n.toString().length:String(n).length,$h=(n,t)=>{if(n==null)return!1;const o=Number(t?.value??t?.length);return Number.isFinite(o)&&jr(n)<o?t?.message||ht.minlength(o):!1},Ah=(n,t)=>{if(n==null||n==="")return!1;const o=Number(t?.value??t?.length);return Number.isFinite(o)&&jr(n)>o?t?.message||ht.maxlength(o):!1},Ur=n=>{if(typeof n=="number")return n;if(typeof n=="string"){const t=n.trim().replace(",",".");return t?Number(t):Number.NaN}return Number(n)},Nh=(n,t)=>{if(n==null||n==="")return!1;const o=Number(t?.value);if(!Number.isFinite(o))return!1;const r=Ur(n);return Number.isFinite(r)&&r<o?t?.message||ht.min(o):!1},Mh=(n,t)=>{if(n==null||n==="")return!1;const o=Number(t?.value);if(!Number.isFinite(o))return!1;const r=Ur(n);return Number.isFinite(r)&&r>o?t?.message||ht.max(o):!1},Fh=(n,t)=>{const o=t.pattern??t.regexp,r=typeof o=="string"?new RegExp(o):o;if(Array.isArray(n)){const l=n.filter(Boolean);return l.length===0||l.every(a=>r.test(a))?!1:t.message}return!r.test(n)&&n?t.message:!1},Dh=(n,t)=>!1,Th=(n,t)=>{switch(typeof t=="string"?t:t.type){case"required":return Bh(n);case"email":return Vh(n);case"tel":return Sh(n,typeof t=="object"?t:void 0);case"regexp":return Fh(n,t);case"minlength":return $h(n,t);case"maxlength":return Ah(n,t);case"min":return Nh(n,t);case"max":return Mh(n,t);case"custom":return Dh();default:return!1}},Lh={autocomplete:"select",combobox:"select",datepicker:"date",markedtext:"mask",html:"static",geom:"map",filelist:"file-list",file:"file",dropzone:"file",inlineselect:"inline-select"};function Hr(n){const t=n?.toLowerCase();return Lh[t]||t}function ko(n,t=!1){if(Array.isArray(n)){const r=[];return n.forEach(l=>{const a={...l};if(a.name=(l.name||l.id||l.key||"").toString(),a.type=Hr(l.type),a.label=l.label||l.ua,a.rules=l.rules||l.validators,a.type==="email"&&!a.rules&&(a.rules=["email"]),a.type==="tel"&&!a.rules){const s=a.mask||Ct,c=Mt(s)||Mt(Ct);a.rules=[{type:"tel",digits:c}]}l.data&&(a.api=`/api/suggest/${l.data}`),a.disabled=a.disabled??t,Array.isArray(a.schema)&&(a.schema=ko(a.schema,a.disabled)),r.push(a)}),r}const o=[];return Object.entries(n).forEach(r=>{const l={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(l.type==="email"&&!l.rules&&(l.rules=["email"]),l.type==="tel"&&!l.rules){const a=l.mask||Ct,s=Mt(a)||Mt(Ct);l.rules=[{type:"tel",digits:s}]}r[1].type?.includes("list")&&(l.multiple=!0),!l.api&&r[1].data&&(l.api=`/api/suggest/${r[1].data}`),Array.isArray(l.schema)&&(l.schema=ko(l.schema,l.disabled)),o.push(l)}),o}function Ih(n,t,o=!1){const r=e.computed(()=>ko((Array.isArray(t),t),typeof o=="boolean"?o:o.value)),l=e.ref({});function a(d){return fr(n?.value,d?.conditions)}const s=(d=r.value,h=!0)=>(d.forEach(p=>{const g=[],y=Number(p?.minlength),m=Number(p?.maxlength),x=Number(p?.min),f=Number(p?.max);!Number.isNaN(y)&&Number.isFinite(y)&&g.push({type:"minlength",value:y}),!Number.isNaN(m)&&Number.isFinite(m)&&g.push({type:"maxlength",value:m}),!Number.isNaN(x)&&Number.isFinite(x)&&g.push({type:"min",value:x}),!Number.isNaN(f)&&Number.isFinite(f)&&g.push({type:"max",value:f});const E=[...g,...p.rules||[]];if(E.length){if(!a(p)){delete l.value[p.name];return}let C=!1,B=null;E.forEach(A=>{const U=Th(n.value[p.name],A);U&&(C=!0,!B&&typeof U=="string"&&(B=U))}),C&&B?l.value[p.name]=B:delete l.value[p.name]}p.schema&&s(p.schema,!1)}),h&&Object.values(l.value).some(Boolean)?l.value:null),c=e.computed(()=>r.value?.filter(d=>d.hidden!==!0&&a(d)));return{errors:l,validate:s,reset:()=>{n.value={},l.value={}},visibleSchema:c}}const Oh={class:"flex w-full h-full min-h-0 gap-6"},Ph={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(n,{expose:t,emit:o}){const r=o,l=n,a=e.computed(()=>!!l.formId||l.allowIdField),s=e.useModel(n,"form"),c=e.useModel(n,"modelValue"),i=e.useModel(n,"values"),d=e.computed({get:()=>i.value??c.value,set:K=>{c.value=K,i.value=K}}),{errors:h,validate:p,reset:g,visibleSchema:y}=Ih(d,l.schema,e.toRef(l,"disabled")),m=e.ref(null),x=e.ref(null),f=e.ref({}),E=e.computed(()=>l.navigation),C=e.computed(()=>l.navWidth),B=e.computed(()=>l.style?.columns),A=Object.freeze({container:12,label:3}),U=e.computed(()=>l.columns??B.value??A),Q=e.computed(()=>l.columns!=null||B.value!=null),L=e.computed(()=>Q.value?"horizontal":l.layout),V=K=>K?.columns?"horizontal":L.value,S=K=>K?.columns??U.value,v=e.computed(()=>{const K={},W=z=>{if(!z)return;(Array.isArray(z)?z.map((Z,$)=>({key:String($),entry:Z})):typeof z=="object"?Object.entries(z).map(([Z,$])=>({key:Z,entry:$})):[]).forEach(({key:Z,entry:$})=>{if(!$||typeof $!="object")return;const j=$.name?String($.name):Z;j&&(K[j]={...$,name:j}),Array.isArray($.schema)&&W($.schema)})};return W(l.schema),K}),T=()=>{!a.value&&d.value&&delete d.value.id,r("update:modelValue",d.value),p(),r("handle-submit",d.value)},H=K=>{r("value-selected",K)};t({validate:p,reset:g,errors:h}),e.onMounted(()=>{s.value={value:d.value,errors:h.value,reset:g,validate:p,formId:l.formId}});function ne(K,W){if(K===W)return!0;if(typeof K!="object"||typeof W!="object"||!K||!W)return!1;const z=Object.keys(K),I=Object.keys(W);return z.length!==I.length?!1:z.every(Z=>K[Z]===W[Z])}function N(K){return Array.isArray(K)?[...K]:K&&typeof K=="object"?{...K}:K}function O(K){Array.isArray(K)&&K.forEach(W=>{if(!W)return;const z=W.name,I=W.default!==void 0;z&&I&&d.value[z]===void 0&&(d.value[z]=N(W.default)),Array.isArray(W.schema)&&O(W.schema)})}return e.watch(y,K=>{O(K)},{immediate:!0,deep:!0}),e.provide("form",s),e.provide("values",d),e.provide("field-props",f),e.provide("schema-by-name",v),(K,W)=>(e.openBlock(),e.createElementBlock("div",Oh,[e.createElementVNode("div",{class:"flex-1 min-h-0 overflow-y-auto overflow-x-visible",ref_key:"formScrollContainer",ref:x},[e.createElementVNode("form",{ref_key:"formRef",ref:m,onSubmit:e.withModifiers(T,["prevent"]),class:e.normalizeClass(["grid grid-cols-12 p-1",L.value==="default"?"gap-6":"gap-4"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(y),(z,I)=>(e.openBlock(),e.createElementBlock("div",{key:z.name,class:e.normalizeClass(V(z)==="horizontal"?"col-span-12":`col-span-12 md:col-span-${z.col||12}`)},[e.createVNode(zr,{style:e.normalizeStyle(n.style),item:z,layout:V(z),columns:S(z),"model-value":d.value[z.name],"onUpdate:modelValue":Z=>{if(z.name==="id"&&!a.value)return;const $=d.value[z.name];ne($,Z)||(d.value[z.name]=Z)},error:e.unref(h)[z.name],onValueSelected:H},null,8,["style","item","layout","columns","model-value","onUpdate:modelValue","error"]),V(z)==="settings"&&I+1!==e.unref(y).length?(e.openBlock(),e.createElementBlock("div",Ph)):e.createCommentVNode("",!0)],2))),128))],34)],512),e.createVNode(_h,{target:m.value,"scroll-container":x.value,enabled:E.value,width:C.value},null,8,["target","scroll-container","enabled","width"])]))}}),Rh={class:"relative"},zh={class:"w-full h-full fixed top-0 start-0 bg-black bg-opacity-50"},jh={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"},Uh={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},Hh={class:"font-medium text-gray-800 dark:text-[#ffffff]"},qh={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(n,{emit:t}){const o=n,r=t,l=e.ref(o.schema),a=e.ref(o.defaultValue?JSON.parse(JSON.stringify(o.defaultValue)):{}),s=e.ref({}),c=e.ref(o.token||""),i=e.ref(o.token||""),d=e.ref(o.mode),h=()=>{const f=o.method?.trim().toUpperCase();return f==="GET"||f==="POST"||f==="PUT"?f:d.value==="add"?"POST":"PUT"},p=()=>{ke.notify({type:"success",title:"Успішно",message:`Дані успішно ${d.value==="add"?"збережено":"оновлено"}`})},g=f=>{const E={};f.id!==void 0&&f.id!==null&&(E.id=f.id,i.value=f.id.toString()),f.obj&&typeof f.obj=="object"&&Object.assign(E,f.obj),Object.keys(E).length&&(a.value={...a.value,...E})},y=async f=>{if(console.log(f),f.ok){await f.json().catch(()=>({})),p(),r("save",a.value);return}const E=await f.json().catch(()=>({})),C=E.message||E.error;if(f.status===400){ke.notify({type:"warning",title:"Помилка валідації",message:C||"Некоректні дані (400)"});return}if(f.status===500){ke.notify({type:"error",title:"Серверна помилка",message:C||"Виникла помилка на сервері (500)"});return}ke.notify({type:"error",title:"Помилка",message:`Статус: ${f.status}`})};async function m(){const f=s.value.validate();if(f){ke.notify({type:"warning",title:"Помилка валідації",message:Object.entries(f).map(([C,B])=>`${C}: ${B}`).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 Ae=!1,ae=!1;const re=e.reactive({}),be=e.ref([]),Se=e.computed(()=>be.value.map(u=>re[u]).filter(Boolean)),Te=e.ref(null),qe=e.computed(()=>Te.value?.entries??[]),X=e.computed(()=>{if(Te.value)return{left:`${Te.value.point.x+12}px`,top:`${Te.value.point.y+12}px`}}),ee=e.computed(()=>{if(Array.isArray(o.tools)&&o.tools.length)return o.tools;const u=l?.tools;return Array.isArray(u)?u.map(b=>String(b)):typeof u=="string"?u.split(",").map(b=>b.trim()).filter(Boolean):[]}),te=e.computed(()=>{const u={search:!1,import:!1,export:!1,point:!1,line:!1,polygon:!1,rectangle:!1,ruler:!1};if(!ee.value.length)return{...u,import:!0,export:!0,point:!0,line:!0,polygon:!0,rectangle:!0};const b=new Set(ee.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??"",_=b.replace(/^\/+/,"");return _?k?`${k}/${_}`:`/${_}`:k}function ye(){const u=Array.isArray(A.basemaps)&&A.basemaps.length?A.basemaps:B.basemaps;if(Array.isArray(u)&&u.length){const k=u.map((_,F)=>{const Y=String(_?.key??_?.id??_?.name??`b${F}`),ie=pe(String(_?.url??""));if(!ie)return null;const me=typeof _?.preview=="string"&&_.preview?pe(_.preview):"";return[Y,{..._,url:ie,preview:me}]}).filter(_=>Array.isArray(_)&&_.length===2).reduce((_,[F,Y])=>(_[F]=Y,_),{});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 $e=ye(),Fe=Object.keys($e),De=e.ref(Fe.length?Fe[0]:"");function G(){const u=Array.isArray(A.overlays)&&A.overlays.length?A.overlays:B.overlays;return!Array.isArray(u)||!u.length?{}:u.map((k,_)=>{const Y=(typeof k?.name=="string"?k.name.trim():"")||`o${_}`,ie=pe(String(k?.url??""));if(!ie)return null;const me=typeof k?.preview=="string"&&k.preview?pe(k.preview):"";return[Y,{...k,name:Y,url:ie,preview:me}]}).filter(k=>Array.isArray(k)&&k.length===2).reduce((k,[_,F])=>(k[_]=F,k),{})}const w=G(),M=e.ref(Object.keys(w).filter(u=>!!w[u]?.visible)),R=e.computed(()=>te.value.point||te.value.line||te.value.polygon||te.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 Ce(u){return`${Lm}${u}`}function Pe(u){return`${Im}${u}`}async function Le(){if(typeof window>"u")return null;const u=window;if(u[On])return u[On];const b=Y=>{if(Array.from(document.styleSheets).some(_e=>_e?.href?.includes(Y)))return;const me=document.createElement("link");me.rel="stylesheet",me.href=Y,document.head.appendChild(me)},k=async()=>{const Y=new Function("u","return import(u)"),ie=await Y("https://esm.sh/maplibre-gl@3.6.2"),me=ie?.default??ie;if(!me)throw new Error("maplibre esm fallback failed");window.maplibregl=me,window.mapboxgl=me;const _e=await Y("https://esm.sh/@mapbox/mapbox-gl-draw@1.5.0"),Re=_e?.default??_e;if(!Re)throw new Error("mapbox draw esm fallback failed");window.MapboxDraw=Re},F=(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 Y=window.maplibregl,ie=window.MapboxDraw;if(!Y)throw new Error("maplibregl not available after load");if(!ie)throw new Error("MapboxDraw not available after load");return Up(Y),{maplibregl:Y,MapboxDraw:ie}})().catch(Y=>{throw delete u[On],Y});return u[On]=F,F}function Xe(u){return{version:8,glyphs:Om,sources:{rasterSource:yo(u,void 0,{safe:!1})},layers:[{id:"rasterLayer",type:"raster",source:"rasterSource"}]}}let et=null,ot=null,P=null,ue=null,Ze=[],Vt=null,gt=null,Ue=null,Lt=!1,Gt=!1,Yt=!1,It=null;function Mo(){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,_]=u.startPoint,F=b.lngLat.lng,Y=b.lngLat.lat;u.rectangle.setCoordinates([[[k,_],[F,_],[F,Y],[k,Y],[k,_]]])},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,_]=u.startPoint,F=b.lngLat.lng,Y=b.lngLat.lat;return Math.abs(k-F)>0&&Math.abs(_-Y)>0?(u.rectangle.setCoordinates([[[k,_],[F,_],[F,Y],[k,Y],[k,_]]]),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 _=b.properties.id===u.rectangle.id;_&&!u.hasCoordinates||(b.properties.active=_?"true":"false",k(b))}}}const Gn=[{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 Yn(){const u=De.value;return!u||!$e[u]?.url?"":$e[u].url}function Fo(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??"",_=b.replace(/^\/+/,"");return`${k}/${_}`}function q(u){u&&Te.value?.layerId!==u||(Te.value=null)}function le(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 _=fn(u),F=kn(u,_,U.value);return Array.isArray(u.popup)?u.popup.length?u.popup.map(Y=>{const ie=Y?.field||Y?.name;if(!ie)return null;const me=b[ie];if(me==null||me==="")return null;const _e=F?.formatPopupValue?F.formatPopupValue(ie,me):String(me);return{key:Y.label||ie,value:_e}}).filter(Boolean):[]:Object.entries(b).slice(0,5).map(([Y,ie])=>({key:Y,value:ie==null?"—":String(ie)}))}function fe(u){if(!Array.isArray(u))return[];const b=_=>Array.isArray(_)&&_.length>=2&&Number.isFinite(Number(_[0]))&&Number.isFinite(Number(_[1])),k=_=>{if(!_.length)return _;const F=_[0],Y=_[_.length-1];return!Y||F[0]!==Y[0]||F[1]!==Y[1]?[..._,F]:_};if(u.length&&b(u[0])){const _=u.map(F=>[Number(F[0]),Number(F[1])]).filter(b);return _.length?[k(_)]:[]}return u.length&&Array.isArray(u[0])&&b(u[0][0])?u.map(F=>Array.isArray(F)?F.map(Y=>[Number(Y[0]),Number(Y[1])]):[]).filter(F=>F.length).map(k):u.length&&Array.isArray(u[0])&&Array.isArray(u[0][0])&&b(u[0][0][0])?u.flatMap(F=>Array.isArray(F)?F:[]).map(F=>Array.isArray(F)?F.map(Y=>[Number(Y[0]),Number(Y[1])]):[]).filter(F=>F.length).map(k):[]}function Ne(u){const b=u.style??{},k=b.color??"#3b82f6";if(!b.colorAttr||!b.colorSet)return k;const _=Object.keys(b.colorSet);if(!_.length)return k;const F=["match",["to-string",["get",b.colorAttr]]];return _.forEach(Y=>{F.push(String(Y),b.colorSet?.[Y]??k)}),F.push(k),F}function ze(u){if(!P)return;const b=P.getStyle()?.layers;Array.isArray(b)&&[...b].reverse().forEach(k=>{k.source===u&&P.getLayer(k.id)&&P.removeLayer(k.id)})}function He(u){if(!P)return;u.handlers.forEach(_=>{try{P.off(_.type,_.layerId,_.handler)}catch{}}),u.handlers=[],[...u.layerIds,...u.boundsIds].forEach(_=>{P.getLayer(_)&&P.removeLayer(_)}),ze(u.sourceId),P.getSource(u.sourceId)&&P.removeSource(u.sourceId);const b=`vs-ov-bounds-src-${u.id}`,k=`vs-ov-bounds-line-${u.id}`;P.getLayer(k)&&P.removeLayer(k),P.getSource(b)&&P.removeSource(b),q(u.id)}function je(u,b){if(!P)return[];const k=`vs-ov-bounds-src-${b}`,_=`vs-ov-bounds-line-${b}`,F=u.bounds??O.value??he.value,Y=fe(F);if(!Y.length)return[];const ie={type:"FeatureCollection",features:Y.map(me=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:me}}))};return P.getLayer(_)&&P.removeLayer(_),P.getSource(k)&&P.removeSource(k),P.addSource(k,{type:"geojson",data:ie}),P.addLayer({id:_,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]}}),[_]}function rt(){return Yt||p.value==="marker"||p.value==="polyline"||p.value==="polygon"||p.value==="rectangle"}function xt(u,b){if(!P)return;u.handlers.forEach(_=>{try{P.off(_.type,_.layerId,_.handler)}catch{}});const k=[];b.forEach(_=>{const F=ie=>{if(rt())return;if(!ie?.features?.length){q(u.id);return}const me=ie.features[0]?.properties??{},_e=le(u.config,me);if(!_e.length){q(u.id);return}Te.value={layerId:u.id,entries:_e,point:{x:ie.point.x,y:ie.point.y}}},Y=()=>q(u.id);P.on("mousemove",_,F),P.on("mouseleave",_,Y),k.push({layerId:_,type:"mousemove",handler:F},{layerId:_,type:"mouseleave",handler:Y})}),u.handlers=k}function dt(u,b){if(!P)return;u.layerIds=b,u.boundsIds=je(u.config,u.id),xt(u,b);const k=u.visible?"visible":"none";[...u.layerIds,...u.boundsIds].forEach(_=>{P.getLayer(_)&&P.setLayoutProperty(_,"visibility",k)}),wt()}function tt(u){if(!P)return;He(u),u.renderToken=(u.renderToken??0)+1;const b=u.renderToken,k=u.config,_=fn(k);if(!_)return;const F=[],Y=/\.v(?:m)?t(?:\?|$|\/)/i.test(_)||/\.pbf(?:\?|$)/i.test(_)||/\/vtile(?:\/|\?|$)/i.test(_)||String(k?.service??"").toLowerCase()==="vector"||String(k?.format??"").toLowerCase()==="mvt",ie=kn(k,_,U.value);if(Y&&ie){const me=k.sourceLayer||k.layer||k.service_layer||k.dataset?.layer||k.id;P.addSource(u.sourceId,{type:"vector",tiles:[_],minzoom:typeof k.minzoom=="number"?k.minzoom:0,maxzoom:typeof k.maxzoom=="number"?k.maxzoom:22}),(async()=>{try{if(!P||!P.getSource(u.sourceId)||u.renderToken!==b)return;const _e=await ie.render({map:P,overlayId:u.id,sourceId:u.sourceId,sourceLayer:me,url:_,config:k});if(!P||!P.getSource(u.sourceId)||u.renderToken!==b){_e.forEach(Re=>{P.getLayer(Re)&&P.removeLayer(Re)});return}dt(u,_e)}catch(_e){u.renderToken===b&&console.error(`Failed to render map layer preset "${ie.id}"`,_e)}})();return}if(Y){const me=k.sourceLayer||k.layer||k.service_layer||k.dataset?.layer||k.id;P.addSource(u.sourceId,{type:"vector",tiles:[_],minzoom:typeof k.minzoom=="number"?k.minzoom:0,maxzoom:typeof k.maxzoom=="number"?k.maxzoom:22});const _e=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,Uo=At=>{if(At==="point"){const bn=`vs-ov-point-${u.id}`;P.addLayer({id:bn,type:"circle",source:u.sourceId,"source-layer":me,paint:{"circle-color":Re,"circle-radius":k.style?.radius??5,"circle-opacity":$t}}),F.push(bn);return}if(At==="polyline"||At==="line"){const bn=`vs-ov-line-${u.id}`;P.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}}),F.push(bn);return}const Ol=`vs-ov-fill-${u.id}`,Pl=`vs-ov-border-${u.id}`;P.addLayer({id:Ol,type:"fill",source:u.sourceId,"source-layer":me,paint:{"fill-color":Re,"fill-opacity":$t}}),P.addLayer({id:Pl,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}}),F.push(Ol,Pl)};[...new Set(_e)].forEach(At=>Uo(At)),dt(u,F);return}else{P.addSource(u.sourceId,yo(_,k,{safe:!1}));const me=`vs-ov-raster-${u.id}`;P.addLayer({id:me,type:"raster",source:u.sourceId,paint:{"raster-opacity":k.style?.opacity??1}}),F.push(me)}dt(u,F)}function Qe(){if(!P)return;const b={type:"FeatureCollection",features:fe(O.value??he.value).map(k=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:k}}))};P.getSource(Pn)?P.getSource(Pn).setData(b):P.addSource(Pn,{type:"geojson",data:b}),P.getLayer(Kt)||P.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(!P||c.value)return;const b=re[u];if(!b)return;b.visible=!b.visible;const k=b.visible?"visible":"none";[...b.layerIds,...b.boundsIds].forEach(_=>{P.getLayer(_)&&P.setLayoutProperty(_,"visibility",k)}),wt(),b.visible||q(u)}function Cl(u){if(!P)return;const b=w[u];if(!b?.url)return;const k=Ce(u),_=Pe(u);P.getLayer(_)&&P.removeLayer(_),P.getSource(k)&&P.removeSource(k),P.addSource(k,yo(b.url,b,{safe:!0}));const F=b?.opacity??b?.style?.opacity,Y=typeof F=="number"?F:Tm;P.addLayer({id:_,type:"raster",source:k,paint:{"raster-opacity":Y}})}function Vy(u){if(!P)return;const b=Ce(u),k=Pe(u);P.getLayer(k)&&P.removeLayer(k),P.getSource(b)&&P.removeSource(b)}function El(){P&&M.value.forEach(u=>Cl(u))}function Sy(u){if(!P||c.value||!w[u])return;M.value.includes(u)?(M.value=M.value.filter(k=>k!==u),Vy(u)):(M.value=[...M.value,u],Cl(u)),wt()}function wt(){if(!P)return;const u=M.value.map(_e=>Pe(_e)).filter(_e=>P.getLayer(_e)),b=[],k=[],_=[],F=[];be.value.forEach(_e=>{const Re=re[_e];if(!Re)return;const $t=String(Re.config?.url??""),Uo=/\.v(?:m)?t(?:\?|$|\/)/i.test($t)||/\/vtile(?:\/|\?|$)/i.test($t)||Ho(Re.config,$t,U.value),At=/\.png(?:\?|$)/i.test($t);Uo?_.push(...Re.layerIds):At?b.push(...Re.layerIds):k.push(...Re.layerIds),F.push(...Re.boundsIds)});const Y=[...u,...b,...k,..._,...F];Y.forEach(_e=>{P.getLayer(_e)&&P.moveLayer(_e)}),P.getLayer(Kt)&&P.moveLayer(Kt);const me=(P.getStyle?.()?.layers??[]).map(_e=>String(_e?.id??"")).filter(_e=>_e.startsWith("gl-draw-"));if(me.forEach(_e=>{P.getLayer(_e)&&P.moveLayer(_e)}),P.getLayer($r)){const _e=Y.find(Re=>P.getLayer(Re))??(P.getLayer(Kt)?Kt:null)??me.find(Re=>P.getLayer(Re));_e&&P.moveLayer($r,_e)}}function $y(u){if(!$e[u]||(De.value=u,!P))return;const b=Yn();if(!b)return;const k=P.getSource("rasterSource");if(k&&typeof k.setTiles=="function"){k.setTiles([b]),wt();return}const _=P.getCenter?.(),F=P.getZoom?.(),Y=ue?.getAll?.();P.setStyle(Xe(b)),P.once("style.load",()=>{if(P&&(_&&Number.isFinite(F)&&P.jumpTo({center:[_.lng,_.lat],zoom:F}),Qe(),El(),be.value.forEach(ie=>{const me=re[ie];me&&tt(me)}),wt(),Y?.features?.length&&ue))try{Y.features.forEach(ie=>ue.add(ie)),h.value=Y.features.length}catch{h.value=0}})}function Do(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 To(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=(F,Y)=>{if(!F?.type)return[];const ie={...Y??{}};return F.type==="MultiPoint"&&Array.isArray(F.coordinates)?F.coordinates.map(me=>Do({type:"Point",coordinates:me})).map(me=>({...me,properties:ie})):F.type==="MultiLineString"&&Array.isArray(F.coordinates)?F.coordinates.map(me=>Do({type:"LineString",coordinates:me})).map(me=>({...me,properties:ie})):F.type==="MultiPolygon"&&Array.isArray(F.coordinates)?F.coordinates.map(me=>Do({type:"Polygon",coordinates:me})).map(me=>({...me,properties:ie})):F.type==="GeometryCollection"&&Array.isArray(F.geometries)?F.geometries.flatMap(me=>b(me,ie)):[{type:"Feature",properties:ie,geometry:vt(F)}]},k=F=>{if(!F)return null;if(F.type==="Feature"){const Y=To(F);return Y?b(Y.geometry,Y.properties):null}return F.geom?.type&&Array.isArray(F.geom.coordinates)?b({type:F.geom.type,coordinates:F.geom.coordinates},F.properties??{}):F.type==="GeometryCollection"&&Array.isArray(F.geometries)?b(F,F.properties??{}):typeof F.type=="string"&&Array.isArray(F.coordinates)?b(vt(F),F.properties??{}):null};if(u.type==="FeatureCollection")return(u.features??[]).flatMap(k).filter(Boolean);if(Array.isArray(u))return u.flatMap(F=>F?.type==="FeatureCollection"?gn(F):[k(F)]).flat().filter(Boolean);const _=k(u);return _?Array.isArray(_)?_:[_]:[]}function _l(u){if(!u.length)return null;if(!s.value)return vt(u[0]?.geometry??null);const b=u.map(Y=>vt(Y?.geometry)).filter(Boolean);return b.every(Y=>Y?.type==="Point")?{type:"MultiPoint",coordinates:b.map(Y=>Y.coordinates)}:b.every(Y=>Y?.type==="LineString")?{type:"MultiLineString",coordinates:b.map(Y=>Y.coordinates)}:b.every(Y=>Y?.type==="Polygon")?{type:"MultiPolygon",coordinates:b.map(Y=>Y.coordinates)}:{type:"GeometryCollection",geometries:b}}function Bl(u){if(!u)return"__null__";try{return JSON.stringify(u)}catch{return"__invalid__"}}function Ay(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 Vl(u,b){if(!Array.isArray(u)||u.length<4)return null;const _=Ay(u[0],u[u.length-1])?u.slice(0,-1):u.slice();return!Number.isInteger(b)||b<0||b>=_.length||_.length<=3||(_.splice(b,1),_.length<3)?null:[..._,[..._[0]]]}function Sl(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 Ny(u,b){const k=vt(u);if(!k||!Array.isArray(b))return null;if(k.type==="LineString"){const[_]=b,F=Sl(k.coordinates,_);return F?(k.coordinates=F,k):null}if(k.type==="MultiLineString"){const[_,F]=b,Y=k.coordinates?.[_],ie=Sl(Y,F);return ie?(k.coordinates[_]=ie,k):null}if(k.type==="Polygon"){const[_,F]=b,Y=k.coordinates?.[_],ie=Vl(Y,F);return ie?(k.coordinates[_]=ie,k):null}if(k.type==="MultiPolygon"){const[_,F,Y]=b,ie=k.coordinates?.[_]?.[F],me=Vl(ie,Y);return me?(k.coordinates[_][F]=me,k):null}return null}function My(u){return u?u.split(".").map(b=>Number(b)).filter(b=>Number.isInteger(b)&&b>=0):[]}function $l(u){return!ue||!u?null:typeof ue.get=="function"?ue.get(u)??null:ue.getAll?.()?.features?.find(k=>String(k?.id??"")===u)??null}function Al(u){const b=u?.properties?.id??u?.id;return b==null||b===""?null:String(b)}function Fy(u){if(!P||!u)return null;const b=[[u.x-8,u.y-8],[u.x+8,u.y+8]],_=P.queryRenderedFeatures(b).find(F=>{const Y=String(F?.properties?.meta??"");return Y&&Y!=="feature"?!1:!!Al(F)});return Al(_)}function Dy(u,b){if(!ue||!u||!b.length)return;const k=$l(u);if(!k?.geometry)return;const _=Ny(k.geometry,b);if(!_)return;const F={...k,id:k.id??u,geometry:_};ae=!0,Ae=!0;try{ue.delete(u),ue.add(F)}finally{Ae=!1,ae=!1}Ot(),St()}function Ty(u){if(!P||!ue||c.value||f.isRulerActive.value||p.value!=="edit")return;const b=u?.point;if(!b)return;const k=[[b.x-8,b.y-8],[b.x+8,b.y+8]],F=P.queryRenderedFeatures(k).find(ie=>ie?.properties?.meta==="vertex"&&ie?.properties?.parent&&ie?.properties?.coord_path);if(!F)return;u?.originalEvent?.preventDefault?.(),u?.originalEvent?.stopPropagation?.();const Y=My(String(F.properties.coord_path));Y.length&&Dy(String(F.properties.parent),Y)}function Ly(u){const b=Fl(u);if(!b)return null;const[[k,_],[F,Y]]=b;return{lat:(_+Y)/2,lng:(k+F)/2}}function Nl(u){if(!Array.isArray(u)||u.length<3)return 0;const b=(_,F)=>{const Y=_*2003750834e-2/180,ie=Math.log(Math.tan((90+F)*Math.PI/360))/(Math.PI/180);return[Y,ie*2003750834e-2/180]};let k=0;for(let _=0;_<u.length-1;_+=1){const[F,Y]=b(Number(u[_][0]),Number(u[_][1])),[ie,me]=b(Number(u[_+1][0]),Number(u[_+1][1]));k+=F*me-ie*Y}return Math.abs(k/2)/1e6}function Iy(u){if(!u?.type||!u?.coordinates)return null;if(u.type==="Polygon"){const b=u.coordinates?.[0];return Array.isArray(b)?Nl(b):null}return u.type==="MultiPolygon"?u.coordinates.reduce((b,k)=>{const _=k?.[0];return Array.isArray(_)?b+Nl(_):b},0):null}function Lo(u){if(!u){g.value=null;return}const b=Ly(u);if(!b){g.value=null;return}g.value={type:String(u.type??"Feature"),center:b,areaKm2:Iy(u)}}function Io(u){if(!u){const _=Ze[Ze.length-1],F=vt(_?.geometry??null);Vt=F,Lo(F);return}const b=Ze.find(_=>String(_?.id??"")===String(u))??null,k=vt(b?.geometry??null);Vt=k,Lo(k)}function Oo(u){y.value=(u??[]).map((b,k)=>{const _=String(b?.id??`feature-${k+1}`),F=Po(String(b?.geometry?.type??"Feature"));return{id:_,label:`${F} ${k+1}`}})}function Po(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 Ml(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 Fl(u){if(!u)return null;let b=1/0,k=1/0,_=-1/0,F=-1/0;const Y=ie=>{if(Array.isArray(ie)){if(ie.length>=2&&Number.isFinite(ie[0])&&Number.isFinite(ie[1])){const me=Number(ie[0]),_e=Number(ie[1]);b=Math.min(b,me),k=Math.min(k,_e),_=Math.max(_,me),F=Math.max(F,_e);return}ie.forEach(Y)}};return Y(u.coordinates),!Number.isFinite(b)||!Number.isFinite(k)?null:[[b,k],[_,F]]}function Dl(u){if(!P||!u)return;const b=Fl(u);if(!b)return;const[[k,_],[F,Y]]=b;if(k===F&&_===Y){P.easeTo({center:[k,_],zoom:Math.max(W.value,14)}),D();return}P.fitBounds(b,{padding:30,duration:250,maxZoom:18}),D()}function Ro(){if(!ue){h.value=0;return}const u=ue.getAll();h.value=u?.features?.length??0}function yn(){if(!ue)return null;const b=ue.getAll?.()?.features??[],k=Y=>!!Y&&b.some(ie=>String(ie?.id??"")===String(Y??"")),_=ue.getSelectedIds?.();if(Array.isArray(_)&&_.length>0){const Y=_[0];return Y!=null?String(Y):null}if(k(Ue))return String(Ue);if(!b.length)return null;const F=s.value?b[b.length-1]:b[0];return F?.id!==void 0&&F?.id!==null?String(F.id):null}function Ot(){if(!ue)return;const u=ue.getAll();if(h.value=u?.features?.length??0,!u?.features?.length){Ze=[],y.value=[],Vt=null,Ue=null,g.value=null,Ae||(gt="__null__",r("update:modelValue",null));return}const b=(u.features??[]).map(To).filter(Boolean);if(Ze=b,Oo(b),Ue=yn(),Io(Ue),!Ae){const k=_l(b);gt=Bl(k),r("update:modelValue",k)}}function Xn(){if(!ue)return;(ue.getAll()?.features||[]).forEach(b=>ue.delete(b.id)),y.value=[],Ro()}function Zn(u){if(!ue)return;const b=gn(u),k=s.value?b:b.slice(0,1);Ae=!0,Xn(),k.forEach(Y=>{try{ue.add(Y)}catch{}}),Ae=!1,Ze=(ue.getAll?.()?.features??k).map(To).filter(Boolean),Oo(Ze),Ue=null;const F=vt(Ze[Ze.length-1]?.geometry??null);Vt=vt(F),Ro(),Lo(F),F&&(Dl(F),c.value||St())}function Oy(){ue&&(Ae=!0,Xn(),Ze.forEach(u=>{try{ue.add(u)}catch{}}),Ae=!1,Oo(Ze),Ro(),Io(Ue))}function Xt(){if(ue){try{ue.changeMode("simple_select",{featureIds:[]})}catch{}p.value=""}}function Jn(u){if(c.value||!ue)return;f.isRulerActive.value&&f.closeRuler(),Yt=!0,Xt(),p.value=u;const b=u==="marker"?"draw_point":u==="polyline"?"draw_line_string":u==="rectangle"?"draw_rectangle":"draw_polygon";s.value||(Ae=!0,Xn(),Ae=!1);try{ue.changeMode(b)}catch{p.value=""}finally{requestAnimationFrame(()=>{Yt=!1})}}function St(u){if(c.value||!ue||!ue.getAll()?.features?.length)return;const k=u||yn();if(k)try{ue.changeMode("direct_select",{featureId:k}),Ue=k,Io(Ue),p.value="edit"}catch{p.value=""}}function Py(u){c.value||!ue||!u||St(u)}function Ry(){if(!(c.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(),Xn(),Ze=[],y.value=[],Ue=null,gt="__null__",g.value=null,r("update:modelValue",null)}}function zy(){c.value||!Vt||Dl(Vt)}function jy(u){if(!P||!et)return;const b=[u[1],u[0]];It||(It=new et.Marker({color:"#2563eb"})),It.setLngLat(b).addTo(P),P.easeTo({center:b,zoom:13,duration:250})}function Uy(){c.value||ce.value?.click()}function Hy(){c.value||(ve.value=!ve.value)}function Tl(u){if(!ve.value)return;const b=oe.value;b&&!b.contains(u.target)&&(ve.value=!1)}function qy(){ve.value=!1,Uy()}function Ky(){c.value||(Me.value=[],ve.value=!1,xe.value=!0)}function Wy(){xe.value=!1,Me.value=[]}function Gy(){if(c.value||!ue)return;const u=Eu(Ie.value.coordinates??"",Ie.value.format||"decimal",Ie.value.order||"lat-lon");if(!u.ok){Me.value=u.errors,Yy(u.errors);return}Me.value=[],Zn({type:"Polygon",coordinates:[u.ring]}),Ot(),xe.value=!1,u.wasClosedAutomatically&&ke.notify({type:"info",title:"Імпорт координат",message:"Полігон був автоматично замкнений (перша і остання точки різнилися)."})}function Yy(u){if(!u.length)return;const b=5;u.slice(0,b).forEach(k=>{const _=k.line>0?`Рядок ${k.line}`:"Загальна помилка";ke.notify({type:"warning",title:"Імпорт координат",message:`${_} — ${k.message}`})}),u.length>b&&ke.notify({type:"warning",title:"Імпорт координат",message:`Ще помилок: ${u.length-b}`})}function Xy(u){if(c.value||!ue)return;ve.value=!1;const b=u.target,k=b.files?.[0];if(!k)return;const _=new FileReader;_.onload=()=>{try{const F=JSON.parse(String(_.result));if(!gn(F).length){ke.notify({type:"warning",title:"Імпорт файлу",message:"Файл не містить коректний GeoJSON-обʼєкт."});return}Zn(F),Ot()}catch{ke.notify({type:"error",title:"Імпорт файлу",message:"Не вдалося прочитати файл. Перевірте формат GeoJSON/JSON."})}finally{b.value=""}},_.onerror=()=>{ke.notify({type:"error",title:"Імпорт файлу",message:"Помилка читання файлу."}),b.value=""},_.readAsText(k)}function Zy(){if(c.value||!ue)return;const u=ue.getAll(),b=new Blob([JSON.stringify(u,null,2)],{type:"application/json"}),k=URL.createObjectURL(b),_=document.createElement("a");_.href=k,_.download="data.geojson",_.click(),URL.revokeObjectURL(k)}e.onMounted(async()=>{if(window.addEventListener("click",Tl,!0),!d.value)return;const u=await Le();et=u.maplibregl,ot=u.MapboxDraw;const b=Yn();b&&(P=new et.Map({container:d.value,style:Xe(b),center:[K.value[0],K.value[1]],zoom:W.value,attributionControl:!1}),m.value=P,P.addControl(new et.NavigationControl({showCompass:!0}),"bottom-right"),P.on("error",k=>{const _=k?.error?.message??k?.message??"";Kp(_)}),P.on("load",()=>{if(!(!ot||!P)){if(ue=new ot({displayControlsDefault:!1,modes:{...ot.modes,draw_rectangle:Mo()},controls:{point:!1,line_string:!1,polygon:!1,trash:!1},styles:Gn}),P.addControl(ue),P.on("click",k=>{if(f.isRulerActive.value){const F=k?.lngLat;if(!F)return;x.value?.addPoint?.({lat:F.lat,lng:F.lng});return}if(!ue||c.value||p.value!=="edit")return;const _=Fy(k?.point);!_||_===Ue||requestAnimationFrame(()=>{!ue||c.value||St(_)})}),P.on("draw.create",()=>{if(ue&&!f.isRulerActive.value){if(!s.value){const k=ue.getAll();if(k.features.length>1){const _=k.features[k.features.length-1];Ae=!0,k.features.slice(0,-1).forEach(F=>ue.delete(F.id)),Ae=!1,_&&(Ae=!0,ue.add(_),Ae=!1)}}Ot(),St()}}),P.on("draw.update",k=>{if(Gt||f.isRulerActive.value||rt())return;const _=Array.isArray(k?.features)?k.features:[],F=k?.action==="move"&&_.length>0&&_.every(Y=>Y?.geometry?.type==="Point");if(k?.action==="move"){if(F){Ot();return}if(Gt=!0,Oy(),Gt=!1,p.value==="edit"){const Y=yn(),ie=Y?$l(Y):ue?.getAll?.()?.features?.[0];if(ie?.id)try{ue.changeMode("direct_select",{featureId:ie.id}),Ue=String(ie.id)}catch{p.value=""}}return}Ot()}),P.on("draw.delete",()=>{ae||Lt||f.isRulerActive.value||p.value==="marker"||p.value==="polyline"||p.value==="polygon"||p.value==="rectangle"||(Ot(),ue?.getAll?.()?.features?.length||(Ue=null),p.value="",Xt())}),P.on("draw.selectionchange",k=>{if(!ue||Gt||f.isRulerActive.value||p.value==="marker"||p.value==="polyline"||p.value==="polygon"||p.value==="rectangle")return;const _=k?.features?.[0]?.id!==void 0&&k?.features?.[0]?.id!==null?String(k.features[0].id):null;if(!c.value&&_){if(p.value==="edit"&&Ue===_)return;requestAnimationFrame(()=>{!ue||c.value||St(_)});return}const F=ue.getSelectedIds?.(),Y=Array.isArray(F)&&F.length>0?String(F[0]):null;if(!c.value&&Y){if(p.value==="edit"&&Ue===Y)return;requestAnimationFrame(()=>{!ue||c.value||St(Y)});return}try{ue.changeMode("simple_select",{featureIds:[]})}catch{}}),se.value!==void 0){const k=se.value;se.value=void 0,requestAnimationFrame(()=>{ue&&Zn(k)})}Qe(),El(),be.value.forEach(k=>{const _=re[k];_&&tt(_)}),wt(),j()}}),P.on("contextmenu",Ty),P.on("moveend",D),P.on("zoomend",()=>{P&&(W.value=P.getZoom())}))}),e.onUnmounted(()=>{typeof document<"u"&&(document.body.style.overflow=""),typeof window<"u"&&window.removeEventListener("keydown",jo),I&&(clearTimeout(I),I=null),f.isRulerActive.value&&f.closeRuler(),window.removeEventListener("click",Tl,!0),Object.values(re).forEach(u=>{P&&He(u)}),q(),It?.remove&&It.remove(),It=null,P?.remove&&P.remove(),P=null,ue=null,m.value=null}),e.watch(()=>o.modelValue,u=>{if(!ue){se.value=u;return}if(rt())return;const b=_l((s.value?gn(u):gn(u).slice(0,1))||[]),k=Bl(b);if(gt&&k===gt){gt=null;return}gt=null,Zn(u)},{deep:!0}),e.watch(()=>N.value,u=>{const b=Array.isArray(u)?u:[],k=[],_=new Set;b.forEach((F,Y)=>{if(!F)return;const ie=Fo(F,Y);k.push(ie),_.add(ie);const me={...F,id:ie},_e=re[ie],Re=_e?.visible??!!me.visible;_e&&P&&He(_e),re[ie]={id:ie,config:me,visible:Re,sourceId:`vs-ov-src-${ie}`,layerIds:[],boundsIds:[],handlers:[],renderToken:_e?.renderToken??0}}),Object.keys(re).forEach(F=>{if(_.has(F))return;const Y=re[F];Y&&P&&He(Y),delete re[F]}),be.value=k,P&&(be.value.forEach(F=>{const Y=re[F];Y&&tt(Y)}),wt())},{immediate:!0,deep:!0}),e.watch(()=>O.value,()=>{P&&(Qe(),be.value.forEach(u=>{const b=re[u];b&&tt(b)}),wt())},{deep:!0}),e.watch(()=>ne.value,async u=>{if(he.value=[],!u){P&&(Qe(),be.value.forEach(b=>{const k=re[b];k&&tt(k)}),wt());return}try{const b=await fetch(`https://data.gki.com.ua/api-user/atu/${u}`);if(!b?.ok)return;const _=(await b.json())?.geometry?.coordinates;Array.isArray(_)&&_.length&&(he.value=_)}catch(b){console.error("Failed to fetch KATOTTG bounds",b)}finally{if(!P)return;Qe(),be.value.forEach(b=>{const k=re[b];k&&tt(k)}),wt()}},{immediate:!0}),e.watch(()=>T.value,u=>{if(!Array.isArray(u)||u.length!==2)return;const b=[Number(u[0]),Number(u[1])];if(Ml(K.value,b)||(K.value=[...b],!P))return;const k=P.getCenter?.();k&&Ml([k.lng,k.lat],K.value)||P.easeTo({center:[K.value[0],K.value[1]]})},{deep:!0}),e.watch(()=>H.value,u=>{typeof u=="number"&&(W.value=u,P&&P.setZoom(u))}),e.watch(()=>g.value?.center,u=>{u&&$(u.lng,u.lat,P?.getZoom?.())},{deep:!0}),e.watch(c,u=>{u&&Xt()}),e.watch(h,u=>{if(u>0){c.value||St();return}Yt||Xt()});const Ll=e.computed(()=>y.value.length>0||!!g.value),zo=e.computed(()=>{const u=y.value,b=u.length>1;return u.length?u.map(k=>({id:k.id,label:b?k.label:g.value?.type?Po(g.value.type):k.label,interactive:b})):g.value?.type?[{id:"__feature",label:Po(g.value.type),interactive:!1}]:[]});function Il(){setTimeout(()=>{P?.resize&&P.resize()},50)}function jo(u){u.key==="Escape"&&i.value&&(i.value=!1)}return e.watch(i,u=>{typeof document<"u"&&(document.body.style.overflow=u?"hidden":""),typeof window<"u"&&(u?window.addEventListener("keydown",jo):window.removeEventListener("keydown",jo)),Il()}),e.watch(Ll,Il),(u,b)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body",disabled:!i.value},[e.createElementVNode("div",{class:e.normalizeClass(["vs-map-wrapper w-full",{fullscreen:i.value}])},[e.createElementVNode("div",Wp,[e.createElementVNode("div",{ref_key:"mapContainer",ref:d,class:"vs-map-canvas"},null,512),te.value.search||te.value.import||te.value.export?(e.openBlock(),e.createElementBlock("div",Gp,[te.value.search?(e.openBlock(),e.createBlock(Hu,{key:0,onGoToCoordinates:jy})):e.createCommentVNode("",!0),te.value.import||te.value.export?(e.openBlock(),e.createElementBlock("div",Yp,[e.createElementVNode("div",Xp,[te.value.import?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"importMenuRef",ref:oe,class:"relative"},[e.createElementVNode("button",{type:"button",class:"vs-map-action-btn",onClick:Hy,disabled:c.value},[b[8]||(b[8]=e.createTextVNode(" Імпорт ",-1)),e.createVNode(e.unref(J.ChevronDown),{class:e.normalizeClass(["h-3.5 w-3.5 shrink-0 transition-transform",{"rotate-180":ve.value}])},null,8,["class"])],8,Zp),ve.value?(e.openBlock(),e.createElementBlock("div",Jp,[te.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:qy}," З файлу ")):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:Ky}," З координат ")])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),te.value.export?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"vs-map-action-btn",onClick:Zy,disabled:c.value||h.value===0}," Експорт ",8,Qp)):e.createCommentVNode("",!0)]),e.createElementVNode("input",{ref_key:"importRef",ref:ce,type:"file",onChange:Xy,accept:".json,.geojson",class:"hidden",disabled:c.value},null,40,em)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createVNode(e.unref(ke.VsModal),{visible:xe.value,"onUpdate:visible":b[1]||(b[1]=k=>xe.value=k),title:"Імпорт координат полігону",size:"lg",teleport:e.unref(a)},{default:e.withCtx(()=>[e.createVNode(pt,{schema:Oe,values:Ie.value,"onUpdate:values":b[0]||(b[0]=k=>Ie.value=k)},null,8,["values"]),e.createElementVNode("div",tm,[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:Wy}," Скасувати "),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:Gy,disabled:c.value}," Побудувати ",8,nm)])]),_:1},8,["visible","teleport"]),e.createElementVNode("div",om,[e.createElementVNode("div",rm,[R.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[te.value.point?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="marker"}]),title:"Точка",onClick:b[2]||(b[2]=k=>Jn("marker")),disabled:c.value},[e.createVNode(e.unref(J.MapPin),{class:"vs-btn-icon"})],10,lm)):e.createCommentVNode("",!0),te.value.line?(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="polyline"}]),title:"Лінія",onClick:b[3]||(b[3]=k=>Jn("polyline")),disabled:c.value},[e.createVNode(qd,{class:"vs-btn-icon"})],10,am)):e.createCommentVNode("",!0),te.value.polygon?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="polygon"}]),title:"Полігон",onClick:b[4]||(b[4]=k=>Jn("polygon")),disabled:c.value},[e.createVNode(Yd,{class:"vs-btn-icon"})],10,sm)):e.createCommentVNode("",!0),te.value.rectangle?(e.openBlock(),e.createElementBlock("button",{key:3,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="rectangle"}]),title:"Прямокутник",onClick:b[5]||(b[5]=k=>Jn("rectangle")),disabled:c.value},[e.createVNode(Qd,{class:"vs-btn-icon"})],10,im)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),R.value?(e.openBlock(),e.createElementBlock("div",cm)):e.createCommentVNode("",!0),te.value.ruler?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":e.unref(f).isRulerActive.value}]),title:"Лінійка",onClick:E},[e.createVNode(e.unref(J.Ruler),{class:"vs-btn-icon"})],2)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"vs-btn",onClick:b[6]||(b[6]=k=>i.value=!i.value),title:i.value?"Згорнути":"На весь екран"},[i.value?(e.openBlock(),e.createBlock(e.unref(J.Minimize),{key:0,class:"vs-btn-icon"})):(e.openBlock(),e.createBlock(e.unref(J.Maximize),{key:1,class:"vs-btn-icon"}))],8,dm)])]),te.value.ruler&&e.unref(f).isRulerActive.value?(e.openBlock(),e.createBlock(Ip,{key:1,ref_key:"rulerPanelRefEl",ref:x,onClose:b[7]||(b[7]=k=>e.unref(f).closeRuler()),onTabChange:e.unref(f).onRulerTabChange,onPointsChange:e.unref(f).onRulerPointsChange,onShapeClosedChange:e.unref(f).onRulerShapeClosedChange},null,8,["onTabChange","onPointsChange","onShapeClosedChange"])):e.createCommentVNode("",!0),te.value.ruler&&e.unref(f).isRulerActive.value&&e.unref(f).hasRulerPoints.value?(e.openBlock(),e.createBlock(Op,{key:2,map:m.value,points:e.unref(f).rulerPoints.value,"is-shape-closed":e.unref(f).rulerShapeClosed.value,"label-mode":e.unref(f).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(X.value)},[e.createElementVNode("div",um,[e.createElementVNode("dl",pm,[(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",mm,e.toDisplayString(k.key),1),e.createElementVNode("dd",fm,e.toDisplayString(k.value),1)]))),128))])])],4)):e.createCommentVNode("",!0),e.createElementVNode("div",hm,[e.createVNode(vu,{compact:"",basemaps:e.unref($e),"active-base-key":De.value,"tile-overlays":e.unref(w),"active-tile-overlay-keys":M.value,"vector-overlays":de.value,"preview-tile":z.value,disabled:c.value,onOnLayerChange:$y,onOnOverlayToggle:Sy,onOnVectorOverlayToggle:hn},null,8,["basemaps","active-base-key","tile-overlays","active-tile-overlay-keys","vector-overlays","preview-tile","disabled"])])]),Ll.value?(e.openBlock(),e.createElementBlock("div",gm,[e.createElementVNode("div",ym,[e.createElementVNode("div",bm,[b[9]||(b[9]=e.createElementVNode("span",{class:"vs-map-status__label"},"Тип:",-1)),e.createElementVNode("div",km,[zo.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(zo.value,(k,_)=>(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:F=>Py(k.id),disabled:c.value},e.toDisplayString(k.label),11,xm)):(e.openBlock(),e.createElementBlock("span",wm,e.toDisplayString(k.label),1)),_<zo.value.length-1?(e.openBlock(),e.createElementBlock("span",vm,", ")):e.createCommentVNode("",!0)],64))),128)):(e.openBlock(),e.createElementBlock("span",Cm,"—"))])]),e.createElementVNode("div",Em,[e.createElementVNode("span",_m,[b[10]||(b[10]=e.createElementVNode("span",{class:"vs-map-status__label"},"Центр:",-1)),g.value?(e.openBlock(),e.createElementBlock("span",Bm,e.toDisplayString(g.value.center.lng.toFixed(5))+", "+e.toDisplayString(g.value.center.lat.toFixed(5)),1)):(e.openBlock(),e.createElementBlock("span",Vm,"—"))]),g.value&&g.value.areaKm2!==null?(e.openBlock(),e.createElementBlock("span",Sm,[b[11]||(b[11]=e.createElementVNode("span",{class:"vs-map-status__label"},"Площа:",-1)),e.createElementVNode("span",$m,e.toDisplayString(g.value.areaKm2.toFixed(1))+" km²",1)])):e.createCommentVNode("",!0),e.createElementVNode("div",Am,[e.createElementVNode("button",{type:"button",class:"vs-status-btn vs-status-btn--zoom",title:"Масштаб до об'єкта",onClick:zy,disabled:c.value},[e.createVNode(e.unref(J.ZoomIn),{class:"vs-status-btn__icon"})],8,Nm),e.createElementVNode("button",{type:"button",class:"vs-status-btn vs-status-btn--delete",title:"Видалити об'єкт",onClick:Ry,disabled:c.value},[e.createVNode(e.unref(J.Trash2),{class:"vs-status-btn__icon"})],8,Mm)])])])])):e.createCommentVNode("",!0)],2)],8,["disabled"]))}}),[["__scopeId","data-v-6cb0f6fd"]]),Pm=["data-focus"],Rm={class:"flex items-center"},zm={class:"overflow-hidden text-ellipsis whitespace-nowrap rounded-sm text-[#333] text-[85%] px-0.5 py-[3px] pl-1.5 box-border"},jm=["onClick","aria-label"],Um={key:0,class:"absolute text-gray-500 truncate pl-2"},Hm={class:"flex-1 min-w-[2px]"},qm=["placeholder"],Km={class:"flex items-center shrink-0"},Wm=["disabled"],Nr=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(n,{emit:t}){const o=n,r=t;Je(o.style);const l=e.ref(null),a=e.ref(null),s=e.ref(null),c=e.ref(!1),i=e.ref(""),d=e.useModel(n,"modelValue"),h=e.computed(()=>o.placeholder||"Add tag…"),p=e.computed(()=>d.value?.length===0&&i.value===""),g=e.computed(()=>!o.disabled&&d.value?.length>0),y=e.computed(()=>o.disabled),m=async()=>{y.value||await e.nextTick(()=>s.value?.focus())},x=Q=>{const L=Q.trim();L!==""&&(!d.value||!Array.isArray(d.value)?d.value=[L]:o.unique?d.value.includes(L)||(d.value=[...d.value,L]):d.value=[...d.value,L],i.value="")},f=()=>{const Q=i.value;Q.trim()!==""&&x(Q),i.value=""},E=Q=>{const L=d.value.slice();L.splice(Q,1),r("update:modelValue",L)},C=()=>{r("update:modelValue",[])},B=()=>{y.value||(c.value=!0)},A=()=>{c.value=!1,!y.value&&f()},U=Q=>{const{key:L}=Q;L==="Enter"?(Q.preventDefault(),f()):L==="Backspace"&&i.value===""&&d.value.length>0&&E(d.value.length-1)};return(Q,L)=>(e.openBlock(),e.createElementBlock("div",{class:"flex gap-1 w-full",ref_key:"root",ref:l,onClick:L[1]||(L[1]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",o.customClass]),role:"group","aria-label":"Tag input"},[e.createElementVNode("div",{class:e.normalizeClass(["flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white","border-gray-300 hover:border-gray-400",c.value?"border-blue-500 ring-1 ring-blue-500":"",y.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),"data-focus":c.value?"true":"false",onClick:m},[e.createElementVNode("div",{class:"flex flex-1 flex-wrap items-center gap-1 py-0.5 pl-2 pr-0 overflow-hidden",ref_key:"chipsRef",ref:a},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(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",Rm,[e.createElementVNode("div",zm,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(v=>E(S),["stop"]),"aria-label":`Remove ${V}`},[e.createVNode(e.unref(J.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,jm)]))),128)),p.value?(e.openBlock(),e.createElementBlock("div",Um,e.toDisplayString(h.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Hm,[y.value?e.createCommentVNode("",!0):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"inputRef",ref:s,class:"pl-2 w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-label":"Add tag","onUpdate:modelValue":L[0]||(L[0]=V=>i.value=V),onFocus:B,onBlur:A,onKeydown:U,placeholder:d.value&&d.value.length?"":void 0},null,40,qm)),[[e.vModelText,i.value]])])],512),e.createElementVNode("div",Km,[g.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-label":"Clear all tags",disabled:y.value,onClick:e.withModifiers(C,["stop"])},[e.createVNode(e.unref(J.X),{class:"h-4 w-4"})],8,Wm)):e.createCommentVNode("",!0)])],10,Pm)],2)],512))}}),Gm={class:"relative flex gap-1 bg-white w-full"},Ym=["disabled","placeholder"],Mr=Be(e.defineComponent({__name:"vs-input-slug",props:e.mergeModels({disabled:{type:Boolean},placeholder:{},parent:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const t=e.inject("values"),o=n,r=e.useModel(n,"modelValue");function l(s){const c={а:"a",б:"b",в:"v",г:"g",д:"d",е:"e",ё:"e",ж:"zh",з:"z",и:"i",й:"y",к:"k",л:"l",м:"m",н:"n",о:"o",п:"p",р:"r",с:"s",т:"t",у:"u",ф:"f",х:"kh",ц:"ts",ч:"ch",ш:"sh",щ:"shch",ы:"y",э:"e",ю:"yu",я:"ya",ь:"",ъ:"",є:"ye",і:"i",ї:"yi",ґ:"g"};return s.toLowerCase().split("").map(i=>c[i]||i).join("").replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}const a=()=>{const s=t?.value?.[o.parent||""]?.toString(),c=l(s);r.value=c.toString()};return(s,c)=>(e.openBlock(),e.createElementBlock("div",Gm,[e.withDirectives(e.createElementVNode("input",{ref:"vsText",disabled:n.disabled,placeholder:n.placeholder,"onUpdate:modelValue":c[0]||(c[0]=i=>r.value=i),class:"block w-full px-3 py-2 text-sm border border-solid rounded-lg placeholder:text-nowrap border-stone-200 text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,8,Ym),[[e.vModelText,r.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200",onClick:a}," Gen ")]))}}),[["__scopeId","data-v-cb7b2b74"]]),Xm={class:"relative flex gap-1 bg-white w-full"},Zm=["disabled","placeholder"],Jm=["disabled"],Qm={key:0},ef={key:1},Fr=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(n){const t=n,o=e.useModel(n,"modelValue"),r=e.ref(!1),l=e.computed(()=>t.init!==!1),a=e.computed(()=>!!t.table&&!!t.code),s=()=>{if(!a.value)return"";const d=encodeURIComponent(String(t.table)),h=encodeURIComponent(String(t.code));return`/api/code-gen/${d}/${h}`},c=async()=>{if(!a.value||r.value)return;const d=s();if(d){r.value=!0;try{const p=await(await fetch(d)).text();o.value=p}finally{r.value=!1}}},i=()=>{l.value&&(o.value||c())};return e.onMounted(()=>{i()}),e.watch(()=>[t.table,t.code,t.init],()=>{i()}),(d,h)=>(e.openBlock(),e.createElementBlock("div",Xm,[e.withDirectives(e.createElementVNode("input",{disabled:n.disabled,placeholder:n.placeholder,"onUpdate:modelValue":h[0]||(h[0]=p=>o.value=p),class:"block w-full px-3 py-2 text-sm border border-solid rounded-lg placeholder:text-nowrap border-stone-200 text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,8,Zm),[[e.vModelText,o.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||n.disabled||!a.value,onClick:c},[r.value?(e.openBlock(),e.createElementBlock("span",ef,"...")):(e.openBlock(),e.createElementBlock("span",Qm,"Gen"))],8,Jm)]))}}),[["__scopeId","data-v-8f88fb66"]]),tf={class:"w-full"},nf={ref:"sortableContainer",class:"flex flex-col gap-1"},of=["onDragstart","onDrop"],rf={class:"cursor-move",type:"button"},lf={class:"w-1/3"},af={class:"w-2/3"},sf=["onClick"],cf={key:0,class:"text-[14px] text-gray-700"},df={class:"mt-2 w-full flex items-center"},uf=["disabled"],Dr=Be(e.defineComponent({__name:"vs-input-key-value",props:{parent:{},ignore:{},addButtonText:{},modelValue:{}},emits:["update:modelValue"],setup(n,{emit:t}){const o=f=>`${f}-${Math.random().toString(36).substring(2,15)}`,r=e.inject("values"),l=n,a=t,s=l.addButtonText??"Додати",c=l.ignore??[],i=e.ref([]),d=e.ref(null);(()=>{const f=l.parent&&r?.value?.[l.parent]||l.modelValue||{};i.value=Object.entries(f).filter(([E])=>!c.includes(E)).map(([E,C])=>({id:o("key-value-"),key:E,value:C}))})();function p(f){d.value=f}function g(f){if(d.value===null||d.value===f)return;const E=i.value.splice(d.value,1)[0];i.value.splice(f,0,E),d.value=null}const y=e.computed(()=>i.value.some(f=>f.key&&!f.value||!f.key&&f.value)),m=()=>{i.value.push({id:o("key-value-"),key:"",value:""})},x=f=>{i.value=i.value.filter(E=>E.id!==f)};return e.watch(i,f=>{const E={};f.forEach(B=>{B.key&&B.value!==void 0&&(E[B.key]=B.value)});const C={};c.length&&c.forEach(B=>{C[B]=l.parent?r?.value?.[l.parent]?.[B]:void 0}),r?.value&&l.parent&&(r.value[l.parent]={...C,...E}),a("update:modelValue",E)},{deep:!0}),(f,E)=>(e.openBlock(),e.createElementBlock("div",tf,[e.createElementVNode("div",nf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(C,B)=>(e.openBlock(),e.createElementBlock("div",{key:C.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":d.value===B}]),draggable:"true",onDragstart:A=>p(B),onDragover:E[0]||(E[0]=e.withModifiers(()=>{},["prevent"])),onDrop:A=>g(B)},[e.createElementVNode("button",rf,[e.createVNode(e.unref(J.GripVertical),{class:"h-4 w-4"})]),e.createElementVNode("div",lf,[e.createVNode(Ht,{modelValue:C.key,"onUpdate:modelValue":A=>C.key=A,placeholder:"Ключ"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",af,[e.createVNode(Ht,{modelValue:C.value,"onUpdate:modelValue":A=>C.value=A,placeholder:"Значення"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("button",{onClick:A=>x(C.id),class:"shrink-0 w-[30px] text-gray-600 h-[30px] rounded-full flex items-center justify-center bg-gray-100 hover:bg-gray-200"},[e.createVNode(e.unref(J.X),{class:"h-4 w-4"})],8,sf)],42,of))),128))],512),i.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",cf," Дані для відображення відсутні ")),e.createElementVNode("div",df,[e.createElementVNode("button",{type:"button",onClick:m,disabled:y.value,class:"py-1.5 px-2 flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"},[e.createVNode(e.unref(J.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(e.unref(s)),1)],8,uf)])]))}}),[["__scopeId","data-v-ac321a0f"]]),pf={class:"w-full"},mf={ref:"sortableContainer",class:"flex flex-col gap-1"},ff=["onDragstart","onDrop"],hf=["disabled"],gf={class:"flex-1"},yf=["onClick","disabled"],bf={key:0,class:"text-[14px] text-gray-700"},kf={class:"mt-2 w-full flex items-center"},xf=["disabled"],Tr=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(n){const t=n,o=e.useModel(n,"modelValue"),r=e.ref([]),l=e.ref(null),a=e.computed(()=>!!t.disabled),s=e.computed(()=>t.placeholder??""),c=e.computed(()=>t.addButtonText??"Додати");let i=!1;const d=f=>`${f}-${Math.random().toString(36).substring(2,15)}`,h=f=>{const E=f??o.value??[];r.value=E.map((C,B)=>({id:r.value[B]?.id??d("text-array"),value:C??""}))};h(),e.watch(()=>o.value,f=>{if(i){i=!1;return}h(f||[])},{deep:!0}),e.watch(r,f=>{i=!0,o.value=f.map(E=>E.value).filter(E=>E!=null&&E!=="")},{deep:!0});const p=e.computed(()=>a.value||r.value.some(f=>!f.value));function g(){p.value||(r.value=[...r.value,{id:d("text-array"),value:""}])}function y(f){a.value||(r.value=r.value.filter(E=>E.id!==f))}function m(f){a.value||(l.value=f)}function x(f){if(a.value||l.value===null||l.value===f)return;const E=[...r.value],[C]=E.splice(l.value,1);E.splice(f,0,C),r.value=E,l.value=null}return(f,E)=>(e.openBlock(),e.createElementBlock("div",pf,[e.createElementVNode("div",mf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(C,B)=>(e.openBlock(),e.createElementBlock("div",{key:C.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":l.value===B}]),draggable:"true",onDragstart:A=>m(B),onDragover:E[0]||(E[0]=e.withModifiers(()=>{},["prevent"])),onDrop:A=>x(B)},[e.createElementVNode("button",{class:"cursor-move",type:"button",disabled:a.value},[e.createVNode(e.unref(J.GripVertical),{class:"h-4 w-4"})],8,hf),e.createElementVNode("div",gf,[n.inputType==="text"?(e.openBlock(),e.createBlock(Ht,{key:0,modelValue:C.value,"onUpdate:modelValue":A=>C.value=A,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),n.inputType==="tel"?(e.openBlock(),e.createBlock(lo,{key:1,modelValue:C.value,"onUpdate:modelValue":A=>C.value=A,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),n.inputType==="email"?(e.openBlock(),e.createBlock(ro,{key:2,modelValue:C.value,"onUpdate:modelValue":A=>C.value=A,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),n.inputType==="mask"?(e.openBlock(),e.createBlock(wn,{key:3,modelValue:C.value,"onUpdate:modelValue":A=>C.value=A,mask:n.mask,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","mask","disabled","placeholder"])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:A=>y(C.id),disabled:a.value,class:"shrink-0 w-[30px] text-gray-600 h-[30px] rounded-full flex items-center justify-center bg-gray-100 hover:bg-gray-200 disabled:opacity-50"},[e.createVNode(e.unref(J.X),{class:"h-4 w-4"})],8,yf)],42,ff))),128))],512),r.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",bf," Дані для відображення відсутні ")),e.createElementVNode("div",kf,[e.createElementVNode("button",{type:"button",onClick:g,disabled:p.value,class:"py-1.5 px-2 flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"},[e.createVNode(e.unref(J.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(c.value),1)],8,xf)])]))}}),[["__scopeId","data-v-972a598a"]]),wf={class:"flex items-center gap-2 w-full"},vf=["disabled"],Cf=["disabled"],Lr=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(n,{emit:t}){const o=n,{inputClass:r}=Je(o.style),l=t,a=e.computed({get:()=>o.modelValue||"#000000",set:c=>l("update:modelValue",c)}),s=e.computed(()=>!!o.disabled);return(c,i)=>(e.openBlock(),e.createElementBlock("div",wf,[e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":i[0]||(i[0]=d=>a.value=d),disabled:s.value,ref:"color",class:e.normalizeClass(["py-1.5 px-1 block w-full bg-white cursor-pointer max-w-[50px]",[n.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,vf),[[e.vModelText,a.value]]),e.withDirectives(e.createElementVNode("input",{class:"text-sm text-gray-600 border border-solid border-stone-200 rounded-md p-2","onUpdate:modelValue":i[1]||(i[1]=d=>a.value=d),disabled:s.value},null,8,Cf),[[e.vModelText,a.value]])]))}}),Ef={class:"flex items-center gap-2 w-full"},_f=["min","max","step","disabled"],Bf=["value","min","max","step","disabled"],Ir=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(n,{emit:t}){const o=n,{inputClass:r}=Je(o.style),l=t,a=h=>{const p=Number(h),g=Number(o.min),y=Number(o.max);return Number.isNaN(p)?g:Math.min(y,Math.max(g,p))},s=e.computed({get:()=>a(o.modelValue??o.min),set:h=>l("update:modelValue",a(h))}),c=h=>{const p=h.target,g=a(p.value);p.value=String(g),l("update:modelValue",g)},i=h=>{Number(o.min)>=0&&h.key==="-"&&h.preventDefault()},d=e.computed(()=>!!o.disabled);return(h,p)=>(e.openBlock(),e.createElementBlock("div",Ef,[e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":p[0]||(p[0]=g=>s.value=g),min:n.min,max:n.max,step:n.step,disabled:d.value,ref:"range",class:e.normalizeClass(["w-full cursor-pointer accent-blue-500",[n.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")])},null,10,_f),[[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:n.min,max:n.max,step:n.step,onInput:c,onKeydown:i,disabled:d.value},null,40,Bf)]))}}),Vf=["placeholder","disabled","name"],Sf=["type","value","onInput","placeholder","disabled"],$f=["onClick"],Or=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(n){const t=n,o=e.ref(t.count),r=e.computed(()=>t.limit),{inputClass:l}=Je(t.style),a=e.useModel(n,"modelValue"),s=e.computed(()=>!!t.disabled),c=e.computed(()=>t.placeholder??"");e.watchEffect(()=>{const x=a.value?.length??0;x<o.value&&(a.value=[...a.value??[],...Array(o.value-x)])});const i=e.ref({}),d=e.ref({});function h(x,f){x&&(i.value[f]=x)}async function p(x,f){if(!x||t.inputType!=="mask")return;const{default:E}=await Promise.resolve().then(()=>Wn);d.value[f]&&d.value[f].destroy(),d.value[f]=E(x,{mask:t.mask||"",definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},lazy:!1}),d.value[f].on("accept",()=>{const C=[...a.value||[]];C[f]=t.unmask?d.value[f].unmaskedValue:d.value[f].value,a.value=C}),d.value[f].on("complete",()=>{const C=[...a.value||[]];C[f]=t.unmask?d.value[f].unmaskedValue:d.value[f].value,a.value=C}),a.value?.[f]&&(d.value[f].value=a.value[f])}function g(x,f){if(s.value)return;const E=x.target.value??null,C=[...a.value];C[f]=t.inputType==="text"?E:Number(E),a.value=C}function y(){o.value+=1;const x=t.inputType==="text"||t.inputType==="mask"?null:0;a.value=[...a.value,x],t.inputType==="mask"&&setTimeout(()=>{const f=o.value-1;i.value[f]&&p(i.value[f],f)},0)}function m(x){if(o.value>1){d.value[x]&&(d.value[x].destroy(),delete d.value[x]),o.value-=1,a.value=a.value.filter((E,C)=>C!==x);const f={};Object.keys(d.value).forEach(E=>{const C=parseInt(E,10);C>x?f[C-1]=d.value[C]:C<x&&(f[C]=d.value[C])}),d.value=f}}return e.onMounted(()=>{if(t.inputType==="mask")for(let x=0;x<o.value;x+=1)i.value[x]&&p(i.value[x],x)}),e.onBeforeUnmount(()=>{Object.values(d.value).forEach(x=>{x&&x.destroy()})}),e.watch(()=>t.mask,x=>{t.inputType==="mask"&&Object.values(d.value).forEach(f=>{f&&f.updateOptions({mask:x,definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/}})})}),e.watch(a,x=>{t.inputType==="mask"&&x&&x.forEach((f,E)=>{d.value[E]&&d.value[E].value!==f&&(d.value[E].value=f||"")})},{deep:!0}),(x,f)=>(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(o.value,E=>(e.openBlock(),e.createElementBlock("div",{key:E,class:"flex items-center gap-2 w-full"},[n.inputType==="mask"?(e.openBlock(),e.createElementBlock("input",{key:0,type:"text",ref_for:!0,ref:C=>h(C,E-1),placeholder:n.placeholder,disabled:n.disabled,name:`${n.name}[${E-1}]`,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(l),{"!border-red-600":n.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Vf)):(e.openBlock(),e.createElementBlock("input",{key:1,type:n.inputType,value:a.value?.[E-1],onInput:C=>g(C,E-1),placeholder:c.value,disabled:s.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(l),{"!border-red-600":n.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,Sf)),!n.disabled&&E===o.value&&n.isAdded?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:e.withModifiers(y,["stop"]),class:"cursor-pointer shrink-0 w-[38px] text-green-600 h-[38px] rounded-md flex items-center justify-center border border-stone-200 hover:bg-stone-100"},[e.createVNode(e.unref(J.Plus),{class:"h-4 w-4"})])):e.createCommentVNode("",!0),!n.disabled&&o.value>1&&n.isAdded?(e.openBlock(),e.createElementBlock("button",{key:3,type:"button",onClick:e.withModifiers(C=>m(E-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(J.X),{class:"h-4 w-4"})],8,$f)):e.createCommentVNode("",!0)]))),128))],2))}}),Af={class:"flex gap-1 w-full"},Nf=["aria-expanded","data-focus"],Mf=["placeholder","disabled","readonly"],Ff={class:"max-h-full"},Df=["onClick","disabled"],Tf={key:0,class:"px-3 py-2 text-sm text-stone-500"},Lf=["disabled"],If={class:"flex flex-col gap-1"},Of=["onDragstart","onDrop"],Pf=["disabled"],Rf=["title"],zf=["disabled","onClick","aria-label"],jf={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(n,{emit:t}){const o=n,r=t,l=e.useModel(n,"modelValue"),a=e.ref([]),s=e.ref(o.options??[]),c=e.ref({}),i=e.ref({}),d=e.ref({keyword:"",parent:null}),h=e.ref(""),p=e.ref(!1),g=e.ref(null),y=e.ref(null),m=e.ref(null),x=e.ref(null),f=e.ref(null),E=e.ref({});let C=!1,B=!1;const A=e.inject("values"),U=e.computed(()=>!!o.disabled),Q=e.computed(()=>o.placeholder??"Оберіть значення"),L=e.computed(()=>o.search!==!1),V=e.computed(()=>{const w=o.parent??o.parentValue;return w?String(w):""}),S=e.computed(()=>V.value?A?.value?.[V.value]??null:null),v=w=>w==null?"__null__":String(w),T=w=>{if(!w)return"";const M=w.label??w.text??w.name??w.ua??w.en;return M?String(M):w.id!==void 0&&w.id!==null?String(w.id):""},H=w=>{const M=v(w);return i.value[M]||(i.value[M]=`array-select-${M}-${Math.random().toString(36).slice(2,8)}`),i.value[M]},ne=e.computed(()=>new Set(a.value.map(w=>v(w.id)))),N=e.computed(()=>{const w=ne.value;let M=[...s.value];if(!o.data&&h.value.trim()){const R=h.value.toLowerCase();M=M.filter(de=>T(de).toLowerCase().includes(R))}return M.filter(R=>!w.has(v(R.id)))}),O=()=>{if(!o.data)return"";const w=o.prefix??"api",M=o.api??`/${w}/suggest/${o.data}`;return`${o.host??""}${M}`},K=()=>{a.value.length&&(C=!0,a.value=a.value.map(w=>({...w,text:c.value[v(w.id)]??w.text})))},W=w=>{const M=v(w.id),R=T(w);R&&(c.value[M]=R)},z=w=>{s.value=w?[...w]:[],w?.forEach(W),K()},I=w=>{if(!w.length)return;const M=new Map(s.value.map(R=>[v(R.id),R]));w.forEach(R=>{const de=v(R.id);M.set(de,R),W(R)}),s.value=Array.from(M.values()),K()},Z=async(w="")=>{if(!o.data)return[];const M=O();if(!M)return[];const R=new URLSearchParams;R.set("json","1"),w&&R.set("key",w),o.start===1&&R.set("start","1"),S.value!==null&&S.value!==void 0&&S.value!==""&&R.set("parent",String(S.value));try{return(await(await fetch(`${M}?${R.toString()}`)).json())?.data??[]}catch{return[]}},$=async w=>{if(!o.data||!w.length)return[];const M=O();if(!M)return[];const R=Array.from(new Set(w.map(Ce=>v(Ce)))),de=new URLSearchParams;de.set("json","1"),de.set("val",R.join(",")),o.start===1&&de.set("start","1"),S.value!==null&&S.value!==void 0&&S.value!==""&&de.set("parent",String(S.value));try{const Le=(await(await fetch(`${M}?${de.toString()}`)).json())?.data??[];return I(Le),Le}catch{return[]}},j=async w=>{if(w==null||w==="")return null;const M=v(w),R=s.value.find(Ce=>v(Ce.id)===M);if(R)return R;const[de]=await $([w]);return de??null},D=async(w="",{force:M=!1}={})=>{if(!o.data)return;const R=S.value??null;if(!M&&d.value.keyword===w&&d.value.parent===R&&s.value.length>0)return;d.value={keyword:w,parent:R};const Ce=await Z(w);z(Ce)},ce=((w,M=200)=>{let R;return(...de)=>{R&&clearTimeout(R),R=setTimeout(()=>w(...de),M)}})(async w=>{o.data&&await D(w,{force:!0})},250),oe=e.ref(null),he=()=>{if(!m.value)return;const w=m.value.getBoundingClientRect(),M=window.innerHeight??document.documentElement.clientHeight,R=window.innerWidth??document.documentElement.clientWidth,de=8,Ce=8,Pe=o.maxHeight??280,Le=M-w.bottom-Ce-de,Xe=w.top-Ce-de,et=Le>=Xe,ot=Math.max(R-de*2,0);let{width:P}=w;ot>0&&P>ot&&(P=ot);let{left:ue}=w;ue+P+de>R&&(ue=R-P-de),ue=Math.max(ue,de);const Ze=Math.min(Pe,Math.max(et?Le:Xe,50));E.value={position:"fixed",left:`${ue}px`,width:`${P}px`,maxHeight:`${Ze}px`,transform:et?"none":"translateY(-100%)",top:et?`${w.bottom+Ce}px`:`${w.top-Ce}px`}},ve=async(w="click")=>{U.value||p.value||(oe.value=w,await D(h.value.trim()),p.value=!0,await e.nextTick(),he(),f.value?.focus())},xe=()=>{p.value=!1,oe.value=null,e.nextTick(()=>{f.value?.blur()})},Me=async w=>{if(w.stopPropagation(),!U.value){if(p.value){if(oe.value==="focus"){oe.value=null;return}xe();return}await ve("click")}},Ie=w=>{w.key==="Escape"&&xe()},Oe=w=>{if(!p.value)return;const M=w.target;x.value?.contains(M)||xe()},Ae=w=>{const M=w.target;y.value?.contains(M)||x.value?.contains(M)||xe()},ae=w=>{if(w.key==="Escape"){w.preventDefault(),xe();return}if(w.key==="Enter"){w.preventDefault();const M=N.value[0];M&&re(M)}},re=w=>{if(!w)return;const M=v(w.id);if(ne.value.has(M))return;W(w);const R={id:w.id,text:T(w)||String(w.id??""),key:H(w.id)};a.value=[...a.value,R],be(w),h.value="",e.nextTick(()=>{f.value?.focus()})},be=w=>{const M=a.value.map(R=>R.id);r("value-selected",{name:o.name,value:M,option:w})},Se=w=>{if(U.value)return;const M=a.value.filter(R=>v(R.id)!==v(w));a.value=M},{isOpenAdd:Te,addData:qe,addSchema:X,addForm:ee,addTitle:te,addOption:pe,onAddValue:ye}=gr({props:o,fetchOptionByValue:j,optionsList:s,selectedOption:e.ref(null),modelValue:l,onCreated:async(w,M)=>{const R=w??await j(M),de=R?.id??M;ne.value.has(v(de))||(R&&W(R),a.value=[...a.value,{id:de,text:R?T(R):String(de),key:H(de)}],be(R??null))}}),$e=w=>{U.value||(g.value=w)},Fe=w=>{if(U.value||g.value===null||g.value===w)return;const M=[...a.value],[R]=M.splice(g.value,1);M.splice(w,0,R),g.value=null,a.value=M},De=async()=>{const M=(Array.isArray(l.value)?[...l.value]:[]).filter(de=>de!=null);if(o.data&&M.length){const de=M.filter(Ce=>!c.value[v(Ce)]);de.length&&await $(de)}const R=M.map(de=>({id:de,text:c.value[v(de)]??String(de),key:H(de)}));C=!0,a.value=R};e.watch(a,w=>{if(C){C=!1;return}const M=w.map(R=>R.id);B=!0,l.value=M,r("change",M)},{deep:!0}),e.watch(l,()=>{if(B){B=!1;return}De()},{deep:!0}),e.watch(h,w=>{!o.data||!p.value||ce(w.trim())}),e.watch(U,w=>{w&&xe()}),e.watch(()=>o.options,async w=>{o.data||(z(w??[]),await De())},{immediate:!0,deep:!0}),e.watch(()=>o.data,async w=>{w&&(await D(h.value.trim()),await De())},{immediate:!0});const G=e.ref(!1);return e.watch(S,async()=>{if(o.data){if(!G.value){G.value=!0;return}a.value=[],await D(h.value.trim()),await De()}}),e.onMounted(async()=>{document.addEventListener("click",Ae,!0),window.addEventListener("keydown",Ie),window.addEventListener("scroll",Oe,!0),await De()}),e.onUnmounted(()=>{document.removeEventListener("click",Ae,!0),window.removeEventListener("keydown",Ie),window.removeEventListener("scroll",Oe,!0)}),(w,M)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(ke.VsModal),{visible:e.unref(Te),"onUpdate:visible":M[1]||(M[1]=R=>e.isRef(Te)?Te.value=R:null),class:"z-[1000]",title:e.unref(te),buttonText:"Додати",onDone:e.unref(pe)},{default:e.withCtx(()=>[e.createVNode(pt,{schema:e.unref(X),modelValue:e.unref(qe),"onUpdate:modelValue":M[0]||(M[0]=R=>e.isRef(qe)?qe.value=R:null),ref_key:"addForm",ref:ee},null,8,["schema","modelValue"])]),_:1},8,["visible","title","onDone"]),e.createElementVNode("div",{class:"flex flex-col gap-2 w-full",ref_key:"rootRef",ref:y},[e.createElementVNode("div",Af,[e.createElementVNode("div",{class:"relative flex-1",onClick:M[4]||(M[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{ref_key:"triggerRef",ref:m,class:e.normalizeClass(["flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white px-3","border-gray-300 hover:border-[#b3d4ff]",p.value?"border-[#2684ff] ring-1 ring-[#2684ff] shadow-[0_0_0_1px_rgba(38,132,255,0.5)]":"",U.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),role:"combobox","aria-expanded":p.value,"aria-haspopup":"listbox","data-focus":p.value?"true":"false",onClick:Me},[e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:f,"onUpdate:modelValue":M[2]||(M[2]=R=>h.value=R),placeholder:Q.value,disabled:U.value,readonly:!L.value,onFocus:M[3]||(M[3]=()=>ve("focus")),onKeydown:ae,class:"flex-1 bg-transparent border-0 outline-none px-0 py-1 text-sm text-stone-900 placeholder:text-stone-400"},null,40,Mf),[[e.vModelText,h.value]]),e.createElementVNode("span",{class:e.normalizeClass(["text-stone-400 transition-transform duration-150",p.value?"rotate-180":""]),"aria-hidden":"true"},[e.createVNode(e.unref(J.ChevronDown),{class:"h-4 w-4"})],2)],10,Nf),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[p.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:x,class:"fixed z-[3000] rounded-md border border-stone-200 bg-white shadow-lg overflow-auto",style:e.normalizeStyle(E.value)},[e.createElementVNode("div",Ff,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,R=>(e.openBlock(),e.createElementBlock("button",{key:v(R.id),type:"button",class:"w-full px-3 py-2 text-left text-sm text-stone-900 hover:bg-stone-100 disabled:opacity-50",onClick:e.withModifiers(de=>re(R),["stop"]),disabled:U.value},e.toDisplayString(T(R)),9,Df))),128)),N.value.length===0?(e.openBlock(),e.createElementBlock("p",Tf," Немає варіантів ")):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))]),o.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:M[5]||(M[5]=(...R)=>e.unref(ye)&&e.unref(ye)(...R)),class:"bg-white hover:bg-gray-100 text-sm text-gray-900 py-[10px] px-3 border border-stone-200 rounded-md h-[38px] flex items-center gap-2",disabled:U.value,type:"button"},[e.createVNode(e.unref(J.Plus),{class:"h-4 w-4"}),M[8]||(M[8]=e.createElementVNode("span",null,"Додати",-1))],8,Lf)):e.createCommentVNode("",!0)]),e.createElementVNode("div",If,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(R,de)=>(e.openBlock(),e.createElementBlock("div",{key:R.key,class:e.normalizeClass(["flex items-center gap-2 rounded-md border border-stone-200 bg-white px-2 py-2",{"opacity-60":g.value===de}]),draggable:"true",onDragstart:Ce=>$e(de),onDragover:M[6]||(M[6]=e.withModifiers(()=>{},["prevent"])),onDrop:Ce=>Fe(de),onDragend:M[7]||(M[7]=Ce=>g.value=null)},[e.createElementVNode("button",{type:"button",class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-stone-500 hover:text-stone-900",disabled:U.value,"aria-label":"Перетягнути"},[e.createVNode(e.unref(J.GripVertical),{class:"h-4 w-4"})],8,Pf),e.createElementVNode("div",{class:"flex-1 text-sm text-stone-900",title:R.text},e.toDisplayString(R.text),9,Rf),e.createElementVNode("button",{type:"button",class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-stone-400 hover:text-stone-900",disabled:U.value,onClick:e.withModifiers(Ce=>Se(R.id),["stop"]),"aria-label":`Видалити ${R.text}`},[e.createVNode(e.unref(J.X),{class:"h-4 w-4"})],8,zf)],42,Of))),128)),a.value.length===0?(e.openBlock(),e.createElementBlock("p",jf,"Немає вибраних значень")):e.createCommentVNode("",!0)])],512)],64))}}),[["__scopeId","data-v-9f0cb9d4"]]),Uf={class:"flex items-center gap-2 w-full"},Hf={class:"relative flex-1"},qf=["placeholder","disabled","onKeydown"],Kf=["disabled"],Wf={key:0,class:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/50"},Gf={class:"bg-white text-gray-900 rounded-lg shadow-lg w-[480px] max-h-[80vh] overflow-y-auto"},Yf={class:"p-3 border-b font-semibold text-gray-900 flex justify-between items-center"},Xf=["onClick"],Zf={key:0,class:"p-4 text-sm text-gray-500"},Pr=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(n,{emit:t}){const o=/{{\s*([^}]+?)\s*}}/g,r=n,l=t,{inputClass:a}=Je(r.style),s=e.useModel(n,"modelValue"),c=e.computed({get:()=>s.value,set:L=>{s.value=L}}),i=e.ref(!1),d=e.ref([]),h=e.ref(!1),p=e.ref(null);e.watch(h,L=>{typeof document>"u"||(L?(p.value=document.body.style.overflow,document.body.style.overflow="hidden"):p.value!=null?(document.body.style.overflow=p.value,p.value=null):document.body.style.removeProperty("overflow"))}),e.onBeforeUnmount(()=>{typeof document>"u"||(p.value!=null?document.body.style.overflow=p.value:document.body.style.removeProperty("overflow"))});const g=e.computed(()=>r.placeholder??""),y=e.computed(()=>!!r.disabled),m=L=>{if(!L)return null;if(Array.isArray(L))return L;if(typeof L=="string"){const V=L.split(",").map(S=>S.trim()).filter(Boolean);return V.length!==4?null:V.map(Number)}return null},x=e.computed(()=>{const L=m(r.bbox);if(!L||L.length!==4)return null;const V=L.map(Number);return V.some(S=>Number.isNaN(S))?null:V}),f=e.computed(()=>{const L=x.value;if(!L)return"";const[V,S,v,T]=L;return`${V},${Math.max(S,T)},${v},${Math.min(S,T)}`});e.computed(()=>f.value?"1":"0");const E=e.inject("values");function C(){!y.value&&c.value.trim()&&B()}async function B(){const L=(c.value||"").trim();if(!L)return;let V=L;if(r.includes?.length&&E?.value){const v=r.includes.map(T=>E.value?.[T]).filter(Boolean);v.length&&(V=`${v.join(", ")}, ${L}`)}const S=Q(V);if(S){i.value=!0;try{const T=await(await fetch(S)).json();d.value=Array.isArray(T)?T:[],h.value=!0}catch(v){console.error("Address search error:",v)}finally{i.value=!1}}}function A(){h.value=!h.value}function U(L){if(!L)return;h.value=!1;const V=parseFloat(L.lat),v={type:"Point",coordinates:[parseFloat(L.lon),V]};r.geom&&E?.value&&(E.value[r.geom]=v),l("update:geom",v)}function Q(L){if(!r.api)return"";const V={value:encodeURIComponent(L),bbox:x.value?x.value.join(","):""};return r.api.replace(o,(S,v)=>V[v.trim()]??"")}return(L,V)=>(e.openBlock(),e.createElementBlock("div",Uf,[e.createElementVNode("div",Hf,[e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":V[0]||(V[0]=S=>c.value=S),placeholder:g.value,disabled:y.value,class:e.normalizeClass(["py-1.5 px-3 block w-full bg-white border rounded-md placeholder:text-gray-400 focus:ring-2 focus:ring-blue-500",[e.unref(a),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"},onKeydown:e.withKeys(e.withModifiers(C,["prevent"]),["enter"])},null,42,qf),[[e.vModelText,c.value]]),d.value.length?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"absolute right-2 top-1/2 -translate-y-1/2 text-gray-500 hover:text-blue-600",onClick:A,title:"Show search results"},[e.createVNode(e.unref(J.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:i.value||!c.value?.trim()},[i.value?(e.openBlock(),e.createBlock(e.unref(J.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(e.openBlock(),e.createBlock(e.unref(J.Search),{key:0,class:"h-4 w-4"}))],8,Kf),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[h.value?(e.openBlock(),e.createElementBlock("div",Wf,[e.createElementVNode("div",Gf,[e.createElementVNode("div",Yf,[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=>h.value=!1),title:"Close"},[e.createVNode(e.unref(J.X),{class:"h-4 w-4"})])]),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(S,v)=>(e.openBlock(),e.createElementBlock("li",{key:v,onClick:T=>U(S),class:"px-3 py-2 cursor-pointer hover:bg-gray-100 border-b text-sm"},e.toDisplayString(S.display_name),9,Xf))),128))]),d.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Zf," Не знайдено результатів "))])])):e.createCommentVNode("",!0)]))]))}}),Jf={class:"vs-datalist space-y-3"},Qf={class:"space-y-3"},eh=["onClick","disabled"],th={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},nh=["disabled"],oh=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(n){const t=n,o=e.useModel(n,"modelValue"),r=e.computed(()=>Array.isArray(o.value)?o.value:[]),l=e.ref([]),a=e.computed(()=>t.schema?.map(f=>({...f,disabled:t.disabled||f.disabled}))??[]),s=e.computed(()=>a.value.map(f=>x(f))),c=e.computed(()=>a.value.reduce((E,C)=>{const B=Number(C?.col??12);return E+(Number.isFinite(B)&&B>0?B:12)},0)>12),i=e.computed(()=>t.disabled?!1:t.maxItems?r.value.length<t.maxItems:!0),d=e.computed(()=>t.disabled||r.value.length<=(t.minItems||0));e.watch(()=>r.value.length,()=>{h(),p()},{immediate:!0}),e.watch(()=>t.schema,p,{immediate:!0,deep:!0});function h(){const f=r.value.length;l.value.length<f?l.value=[...l.value,...Array.from({length:f-l.value.length},()=>fo())]:l.value.length>f&&l.value.splice(f)}function p(){if(!t.minItems||r.value.length>=t.minItems)return;const f=t.minItems-r.value.length,E=Array.from({length:f},g);o.value=[...r.value,...E]}function g(){const f={};return a.value.forEach(E=>{f[E.name]=E?.default??null}),f}function y(){i.value&&(o.value=[...r.value,g()],h())}function m(f){d.value||(o.value=r.value.filter((E,C)=>C!==f),h(),p())}function x(f){return{...f}}return(f,E)=>(e.openBlock(),e.createElementBlock("div",Jf,[e.createElementVNode("div",Qf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(C,B)=>(e.openBlock(),e.createElementBlock("div",{key:l.value[B],class:e.normalizeClass(["flex items-center gap-3 rounded-lg transition-colors",{"border border-gray-300 p-2":c.value}])},[e.createVNode(pt,{schema:s.value,layout:"inline",navigation:!1,values:r.value[B],"onUpdate:values":A=>r.value[B]=A,"form-id":l.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:A=>m(B),disabled:d.value},[e.createVNode(e.unref(J.Trash2),{class:"h-4 w-4"})],8,eh)],2))),128)),r.value.length===0?(e.openBlock(),e.createElementBlock("div",th,e.toDisplayString(t.emptyLabel),1)):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",class:"flex items-center gap-2 text-gray-600 hover:text-gray-900 font-medium transition-colors text-sm",onClick:y,disabled:!i.value},[e.createVNode(e.unref(J.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,nh)]))}}),[["__scopeId","data-v-8df8e72a"]]),rh={class:"vs-dataform space-y-4"},lh=["draggable","onDragstart","onDragover","onDragenter","onDrop"],ah={class:"flex items-center gap-2"},sh=["onClick"],ih={class:"text-sm font-medium text-gray-700"},ch={class:"flex items-center gap-2"},dh=["title","onClick","disabled"],uh=["title","onClick","disabled"],ph={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},mh=["disabled"],fh=Be(e.defineComponent({__name:"vs-input-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(n){const t=n,o=e.useModel(n,"modelValue"),r=e.ref([]),l=e.ref([]),a=e.ref(0),s=e.ref(null),c=e.ref(null),i=e.ref(null),d=e.computed(()=>t.groupLabel??"Group"),h=e.computed(()=>t.emptyLabel??"Ще немає груп"),p=e.computed(()=>t.schema?.map(D=>({...D,disabled:t.disabled||D.disabled}))??[]),g=e.computed(()=>p.value.map(D=>S(D))),y=e.computed(()=>t.view==="accordion"),m=e.computed(()=>!!(t.collapsible||y.value)),x=e.computed(()=>t.draggable!==!1),f=e.computed(()=>t.disabled?!1:t.maxGroups?o.value.length<t.maxGroups:!0),E=e.computed(()=>t.disabled||o.value.length<=(t.minGroups||0));e.watch(()=>o.value.length,()=>{C(),B(),A()},{immediate:!0}),e.watch(()=>t.schema,A,{immediate:!0,deep:!0}),e.watch(()=>t.view,()=>{B()},{immediate:!0});function C(){const D=o.value.length;r.value.length<D?r.value=[...r.value,...Array.from({length:D-r.value.length},()=>fo())]:r.value.length>D&&r.value.splice(D)}function B(){const D=o.value.length;y.value?D===0?a.value=-1:a.value>=D?a.value=D-1:a.value<0&&(a.value=0):l.value.length<D?l.value=[...l.value,...Array.from({length:D-l.value.length},()=>!1)]:l.value.length>D&&l.value.splice(D)}function A(){if(!t.minGroups||o.value.length>=t.minGroups)return;const D=t.minGroups-o.value.length,se=Array.from({length:D},U);o.value=[...o.value,...se],B()}function U(){const D={};return p.value.forEach(se=>{D[se.name]=se?.default??null}),D}function Q(){f.value&&(o.value=[...o.value,U()],C(),B())}function L(D){E.value||(o.value=o.value.filter((se,ce)=>ce!==D),C(),y.value?a.value>=o.value.length&&(a.value=o.value.length-1):l.value.splice(D,1),A())}function V(D){if(t.disabled)return;const se=JSON.parse(JSON.stringify(o.value[D]??{}));o.value=[...o.value.slice(0,D+1),se,...o.value.slice(D+1)],C(),y.value?a.value>D&&(a.value+=1):l.value.splice(D+1,0,l.value[D]??!1)}function S(D){return{...D}}function v(D){return y.value?a.value===-1&&D===0?!1:a.value!==D:!!l.value[D]}function T(D){if(m.value){if(y.value){a.value=D;return}l.value[D]=!l.value[D]}}function H(D,se){if(!x.value||t.disabled){se.preventDefault();return}s.value=D,c.value=D,i.value={groups:JSON.parse(JSON.stringify(o.value)),keys:[...r.value],states:[...l.value]},se.dataTransfer?.setData("text/plain",String(D)),se.dataTransfer?.setDragImage?.(se.currentTarget,0,0)}function ne(D,se){!x.value||t.disabled||s.value!==null&&I(D,se)}function N(D,se){I(D,se)}function O(D){!x.value||t.disabled||j()}function K(){i.value&&z(),s.value=null,c.value=null,i.value=null}function W(D,se){const ce=[...o.value],[oe]=ce.splice(D,1);ce.splice(se,0,oe),o.value=ce;const he=[...r.value],[ve]=he.splice(D,1);if(he.splice(se,0,ve),r.value=he,y.value)a.value===D&&(a.value=se);else{const xe=[...l.value],[Me]=xe.splice(D,1);xe.splice(se,0,Me),l.value=xe}}function z(){i.value&&(o.value=i.value.groups,r.value=i.value.keys,l.value=i.value.states,i.value=null,c.value=null)}function I(D,se){if(s.value===null)return;const ce=Z(D,se);c.value=ce,$(ce)}function Z(D,se){if(!se?.currentTarget)return D;const ce=se.currentTarget.getBoundingClientRect(),he=se.clientY-ce.top>ce.height/2?D+1:D;return Math.max(0,Math.min(he,o.value.length))}function $(D){const se=s.value;if(se===null)return;let ce=D;if(ce>o.value.length&&(ce=o.value.length),ce===se||ce===se+1)return;const oe=ce>se?ce-1:ce;W(se,oe),s.value=oe,c.value=ce>se?oe+1:oe}function j(){i.value=null,s.value=null,c.value=null}return(D,se)=>(e.openBlock(),e.createElementBlock("div",rh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(ce,oe)=>(e.openBlock(),e.createElementBlock("div",{key:r.value[oe],class:e.normalizeClass(["relative border border-gray-200 rounded-lg bg-white transition vs-dataform__group",[t.view==="accordion"?"overflow-hidden":v(oe)?"pt-6 px-6":"p-6"]]),draggable:x.value&&!t.disabled,onDragstart:he=>H(oe,he),onDragend:K,onDragover:e.withModifiers(he=>ne(oe,he),["prevent"]),onDragenter:e.withModifiers(he=>N(oe,he),["prevent"]),onDrop:e.withModifiers(he=>O(),["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"&&!v(oe)?"rounded-t-lg":"rounded-lg"]])},[e.createElementVNode("div",ah,[x.value?(e.openBlock(),e.createBlock(e.unref(J.GripVertical),{key:0,class:"h-4 w-4 text-gray-400","aria-hidden":"true"})):e.createCommentVNode("",!0),m.value?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"rounded-full p-1 text-gray-500 transition hover:bg-gray-100",onClick:he=>T(oe)},[e.createVNode(e.unref(J.ChevronDown),{class:e.normalizeClass(["h-4 w-4 transition",v(oe)?"-rotate-90":"rotate-0"])},null,8,["class"])],8,sh)):e.createCommentVNode("",!0),e.createElementVNode("div",ih,e.toDisplayString(`${d.value} (${oe+1})`),1)]),e.createElementVNode("div",ch,[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(oe),disabled:t.disabled,draggable:"false"},[e.createVNode(e.unref(J.Copy),{class:"h-4 w-4"})],8,dh),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=>L(oe),disabled:E.value,draggable:"false"},[e.createVNode(e.unref(J.Trash2),{class:"h-4 w-4"})],8,uh)])],2),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(t.view==="accordion"?"p-6":"pt-6")},[e.createVNode(pt,{class:"vs-dataform__form",schema:g.value,layout:"inline",navigation:!1,values:o.value[oe],"onUpdate:values":he=>o.value[oe]=he,"form-id":r.value[oe],disabled:t.disabled},null,8,["schema","values","onUpdate:values","form-id","disabled"])],2),[[e.vShow,!v(oe)]])],42,lh))),128)),o.value.length===0?(e.openBlock(),e.createElementBlock("div",ph,e.toDisplayString(h.value),1)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"flex items-center gap-2 text-gray-600 hover:text-gray-900 font-medium transition-colors text-sm",onClick:Q,disabled:!f.value},[e.createVNode(e.unref(J.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,mh)]))}}),[["__scopeId","data-v-accd044e"]]),zn="__vs_form_monaco_loader__",jt="__vs_form_monaco_script_loader__",jn="__vs_form_monaco_editor_loader__",bo=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(n,{expose:t}){const o=n,r=e.useModel(n,"modelValue"),l=e.ref(null),a=e.computed(()=>typeof o.height=="number"?`${o.height}px`:o.height||"280px");let s=null,c=null,i=!1;const d=()=>{if(c)return Promise.resolve(c);if(typeof window>"u")return Promise.resolve(null);const m=window;if(m.monaco?.editor?.create)return c=m.monaco,Promise.resolve(c);if(m[zn])return m[zn];const f=(async()=>{const E=A=>{if(Array.from(document.styleSheets||[]).some(L=>L?.href?.includes(A)))return;const Q=document.createElement("link");Q.rel="stylesheet",Q.href=A,document.head.appendChild(Q)},C=A=>{if(m[jt]?.[A])return m[jt][A];m[jt]||={};const U=Array.from(document.scripts).find(Q=>Q.src===A);return U?(m[jt][A]=new Promise((Q,L)=>{const V=U.readyState;if(U.dataset.loaded==="true"||V==="loaded"||V==="complete"){Q();return}U.addEventListener("load",()=>{U.dataset.loaded="true",Q()},{once:!0}),U.addEventListener("error",S=>L(S),{once:!0})}),m[jt][A]):(m[jt][A]=new Promise((Q,L)=>{const V=document.createElement("script");V.src=A,V.async=!0,V.onload=()=>{V.dataset.loaded="true",Q()},V.onerror=S=>L(S),document.body.appendChild(V)}),m[jt][A])},B="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs";return E(`${B}/editor/editor.main.min.css`),await C(`${B}/loader.min.js`),m[jn]||(m[jn]=new Promise((A,U)=>{window.require.config({paths:{vs:B}}),window.require(["vs/editor/editor.main"],()=>{c=window.monaco,m.monaco=c,A(c)},Q=>U(Q))}).catch(A=>{throw delete m[jn],A})),m[jn]})().catch(E=>{throw delete m[zn],E});return m[zn]=f,f},h=()=>{!l.value||!c||(s&&(s.dispose(),s=null),s=c.editor.create(l.value,{value:r.value||"",language:o.syntax,theme:o.theme,automaticLayout:!0,minimap:{enabled:!!o.minimap},readOnly:!!o.disabled}),s.onDidChangeModelContent(()=>{i||(r.value=s.getValue())}))},p=()=>{s?.focus()},g=()=>s,y=()=>c;return e.watch(()=>r.value,m=>{if(!s)return;const x=s.getValue();m!==x&&(i=!0,s.setValue(m||""),i=!1)}),e.watch(()=>o.syntax,m=>{!s||!c||c.editor.setModelLanguage(s.getModel(),m||"xml")}),e.watch(()=>o.theme,m=>{c&&c.editor.setTheme(m||"vs-light")}),e.watch(()=>o.disabled,m=>{s&&s.updateOptions({readOnly:!!m})}),e.watch(()=>o.minimap,m=>{s&&s.updateOptions({minimap:{enabled:!!m}})}),e.onMounted(async()=>{try{const m=await d();if(!m||!m.editor)return;c=m,h()}catch(m){console.error("Failed to load Monaco editor",m)}}),e.onBeforeUnmount(()=>{s&&(s.dispose(),s=null)}),t({focus:p,getEditor:g,getMonaco:y}),(m,x)=>(e.openBlock(),e.createElementBlock("div",{class:"w-full",style:e.normalizeStyle({height:a.value})},[e.createElementVNode("div",{ref_key:"editorContainer",ref:l,class:"w-full h-full overflow-hidden border border-[#CFD9E0] rounded"},null,512)],4))}}),Rr={VsInputText:Ht,VsInputRadio:ao,VsInputInlineSelect:Fn,"vs-input-text":Ht,"vs-input-password":ca,"vs-input-textarea":br,"vs-input-richtext":kr,"vs-input-mask":wn,"vs-input-number":Ko,"vs-input-radio":ao,"vs-input-select":mo,"vs-input-inline-select":Fn,"inline-select":Fn,"vs-input-switcher":no,"vs-input-static":oo,"vs-input-container":hr,"vs-input-date":or,"vs-input-checkbox":Yo,"vs-input-file":pr,"vs-input-file2":Nn,file2:Nn,File2:Nn,"vs-input-html":oo,"vs-input-email":ro,"vs-input-tel":lo,"vs-input-datatable":xr,"vs-input-map":Ar,"vs-input-file-list":mr,"vs-input-tags":Nr,"vs-input-slug":Mr,"vs-input-codegen":Fr,"vs-input-key-value":Dr,"vs-input-text[]":Tr,"vs-input-range":Ir,"vs-input-color":Lr,"vs-input-native-select":mo,VsInputArraySelect:Rn,"vs-input-array":Or,"vs-input-array-select":Rn,"array-select":Rn,"vs-input-address":Pr,"vs-input-datalist":oh,"vs-input-dataform":fh,"vs-input-monaco":bo},hh=e.defineComponent({__name:"behavior",props:{api:{},set:{},button:{},error:{},value:{}},setup(n){const t=n,o=e.inject("values");function r(a,s){const c=s?.result||s?.message||s?.error||s?.detail;return a.status===400&&typeof c=="string"&&c.trim().toLowerCase()==="not found"?"Дані не знайдено.":a.status===500?"Помилка на сервері.":typeof c=="string"&&c.trim()?c:"При спробі завантажити дані виникла помилка."}async function l(){try{if(!t.api)return;const a=t.api.replace("{{value}}",t.value),s=await fetch(a);if(!s.ok){let i=null;try{i=await s.json()}catch{try{i=await s.text()}catch{i=null}}ke.notify({type:"warning",title:"Validation",message:r(s,i)});return}const c=await s.json();if(!t.set||!o)return;for(const[i,d]of Object.entries(t.set))o.value[i]=c.result[d]}catch(a){console.error(t.error,a)}}return(a,s)=>(e.openBlock(),e.createElementBlock("button",{onClick:l,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(n.button),1))}}),gh={class:"flex flex-col gap-1 w-full"},yh={class:"w-full"},bh=["disabled"],kh=["innerHTML"],xh=2e3,wh=10,zr=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(n,{emit:t}){const o=n,r=e.useModel(n,"modelValue"),l=t,a=e.computed(()=>sa[`${o.layout}`]),s=["label","placeholder","info","description","text","html"],c=e.ref(H()),i=e.computed(()=>S(o.item,c.value)),d=e.computed(()=>{const N={...i.value??{}},O=o.item?.name;return O&&p?.value?.[O]&&Object.assign(N,p.value[O]),N.__locale=c.value,N}),h=e.computed(()=>Rr?.[`vs-input-${o.item.type}`]),p=e.inject("field-props"),g=e.computed(()=>{const N=e.unref(h);if(!N)return new Set;const O=N.props??N.__vccOpts?.props;if(!O)return new Set;const K=Array.isArray(O)?O:Object.keys(O);return new Set(K)}),m=[...["min","max","step"],"api","set","mask","layers"],x=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 f(N){const O={};Object.entries(N).forEach(([W,z])=>{x.has(W)||W.includes(":")||z!==void 0&&(O[W]=z)});const K=N.props;return K&&typeof K=="object"&&!Array.isArray(K)&&Object.entries(K).forEach(([W,z])=>{z!==void 0&&(O[W]=z)}),O}const E=e.computed(()=>{const N={...i.value??{}},O=o.item?.name;O&&p?.value?.[O]&&Object.assign(N,p.value[O]);const K=g.value;let W;return K.size?W=Object.fromEntries(Object.entries(N).filter(([z])=>K.has(z))):W={...N},Object.assign(W,f(N)),m.forEach(z=>{const I=N[z];I!=null&&(W[z]=I)}),W}),C=N=>{const O=typeof N=="object"&&N!==null?N:{value:N};l("value-selected",{...O,name:O.name??o.item?.name})},B=/{{\s*([^}]+?)\s*}}/g,A=e.inject("values"),U=e.ref(!1),Q=e.computed(()=>{const N=o.item?.api,O=o.item?.type?.toLowerCase();return typeof N=="string"&&N.trim().length>0&&(O==="text"||O==="mask")});function L(N,O){if(!(N==null||!O))return O.split(".").reduce((K,W)=>K?.[W.trim()],N)}async function V(){const N=String(r.value??"").trim();if(!N)return;const O=(o.item?.api??"").trim();if(!O)return;const K=O.replace(B,(W,z)=>z.trim()==="value"?encodeURIComponent(N):"");U.value=!0;try{let W=await fetch(K),z=0;for(;W.status===202&&z<wh;)z+=1,await new Promise(D=>{setTimeout(D,xh)}),W=await fetch(K);if(W.status===202){ke.notify({type:"warning",title:"Validation",message:"Сервер ще обробляє запит. Спробуйте пізніше."});return}if(!W.ok){ke.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const I=await W.json(),Z=I?.result!==void 0?I.result:I,$=o.item?.set;if(!$||!A?.value)return;const j=o.item?.name;Object.entries($).forEach(([D,se])=>{if(!D)return;let ce=se;j&&ce.startsWith(`${j}.`)&&(ce=ce.slice(j.length+1));const oe=L(Z,ce);A.value[D]=oe??null})}catch(W){console.error("API lookup error:",W),ke.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."})}finally{U.value=!1}}e.onMounted(()=>{c.value=H(),window.addEventListener("storage",ne)}),e.onUnmounted(()=>{window.removeEventListener("storage",ne)});function S(N,O){if(!N)return{};const K={...N};return s.forEach(W=>{const z=T(N,W,O);z!=null&&(K[W]=z)}),Array.isArray(N.options)&&(K.options=N.options.map(W=>v(W,O))),K}function v(N,O){if(!N)return N;const K={...N},W=T(N,"label",O),z=T(N,"text",O);return W!=null&&(K.label=W),z!=null?K.text=z:W!=null&&(K.text=W),K}function T(N,O,K){const W=`${O}:${K}`;if(N?.[W]!=null)return N[W];if(O==="label"&&N?.[K]!=null)return N[K];if(N?.[O]!=null)return N[O];if(O==="label"){if(N?.ua!=null)return N.ua;if(N?.en!=null)return N.en}if(O==="text"||O==="html"){if(N?.ua!=null)return N.ua;if(N?.en!=null)return N.en}return null}function H(){return typeof window>"u"?"uk":localStorage.getItem("locale")||"uk"}function ne(){c.value=H()}return(N,O)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{ua:d.value.ua,error:o.error||"",item:d.value,columns:o.columns,label:d.value.label},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["flex w-full",`${o.item.type}-component`])},[e.createElementVNode("div",gh,[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center gap-2 w-full",{"flex-1":Q.value}])},[e.createElementVNode("div",yh,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.value),e.mergeProps(E.value,{modelValue:r.value,"onUpdate:modelValue":O[0]||(O[0]=K=>r.value=K),onValueSelected:C}),null,16,["modelValue"]))]),Q.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"flex items-center justify-center px-2 py-2 border rounded-md bg-white hover:bg-gray-50 text-gray-600 hover:text-blue-600 disabled:opacity-50 h-[38px] shrink-0",disabled:U.value||!r.value?.toString().trim(),onClick:V},[U.value?(e.openBlock(),e.createBlock(e.unref(J.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(e.openBlock(),e.createBlock(e.unref(J.Search),{key:0,class:"h-4 w-4"}))],8,bh)):e.createCommentVNode("",!0)],2),d.value.description&&o.layout!=="settings"?(e.openBlock(),e.createElementBlock("p",{key:0,class:"text-sm text-gray-500",innerHTML:d.value.description},null,8,kh)):e.createCommentVNode("",!0)]),d.value.behavior?.api&&d.value.behavior?.button?(e.openBlock(),e.createBlock(hh,e.mergeProps({key:0},d.value.behavior,{value:r.value}),null,16,["value"])):e.createCommentVNode("",!0)],2)]),_:1},8,["ua","error","item","columns","label"]))}}),vh={class:"text-sm text-gray-800 mb-[4px] font-medium dark:text-neutral-300"},Ch={class:"vs-compact-form-navigation__rail mt-[6px]"},Eh=["onClick"],_h=Be(e.defineComponent({__name:"vs-compact-form-navigation",props:{target:{},scrollContainer:{},title:{default:"Навігація"},enabled:{type:Boolean,default:!0},width:{default:400}},setup(n,{expose:t}){const o=n,r=e.ref([]),l=e.ref(""),a=e.ref(""),s=e.computed(()=>!!o.enabled),c=e.computed(()=>["vs-compact-form-navigation flex flex-col pl-[6px] pt-[8px] pr-[8px]","sticky top-0 self-start shrink-0","max-h-full min-h-0 overflow-y-auto"]),i=e.computed(()=>{const T=o.width;if(T==null)return{};const H=typeof T=="number"?`${T}px`:`${T}`;return{width:H,minWidth:H}});let d=null,h=0,p=0,g=null,y=null,m=null;const x=()=>S(),f=()=>C();e.watch(()=>o.target,async T=>{if(Q(),!T){g=null,r.value=[],l.value="";return}g=T,s.value&&(await e.nextTick(),U(T),C())},{immediate:!0}),e.watch(()=>o.scrollContainer,T=>{if(!s.value){y=T??null;return}E(T??null),e.nextTick(()=>C())},{immediate:!0}),e.onMounted(()=>{o.scrollContainer||E(null),C()}),e.onBeforeUnmount(()=>{Q(),E(null,!0),g=null,typeof window<"u"&&(h&&window.cancelAnimationFrame(h),p&&window.cancelAnimationFrame(p))});function E(T,H=!1){if(m&&(m(),m=null),H){y=null;return}if(y=T??null,typeof window>"u")return;const ne=T??window,N=window;ne.addEventListener("scroll",x,{passive:!0}),N.addEventListener("resize",f),m=()=>{ne.removeEventListener("scroll",x),N.removeEventListener("resize",f)}}function C(){if(!s.value||!g)return;h&&typeof window<"u"&&window.cancelAnimationFrame(h);const T=()=>{B(),h=0};typeof window>"u"?T():h=window.requestAnimationFrame(T)}function B(){if(!s.value||!g)return;const T=Array.from(g.querySelectorAll("h1, h2")),H=new Set,ne=[];T.forEach((N,O)=>{const K=N.textContent?.trim()??"";if(!K)return;let W=(N.getAttribute("id")??"").trim();W||(W=A(K)||`heading-${O+1}`);let z=W,I=1;for(;H.has(z);)z=`${W}-${I+=1}`;N.id!==z&&Object.assign(N,{id:z}),H.add(z),ne.push({id:z,text:K,level:N.tagName.toLowerCase()==="h1"?1:2})}),r.value=ne,ne.length||(l.value=""),V()}function A(T){return T.toLowerCase().replace(/[^a-z0-9\s-]/g,"").trim().replace(/\s+/g,"-")}function U(T){!T||!s.value||typeof MutationObserver>"u"||(Q(),d=new MutationObserver(()=>C()),d.observe(T,{childList:!0,subtree:!0}))}function Q(){d&&(d.disconnect(),d=null)}function L(T){const H=y;if(!H)return typeof window>"u"?T.offsetTop:T.getBoundingClientRect().top+window.scrollY;const ne=T.getBoundingClientRect(),N=H.getBoundingClientRect();return ne.top-N.top+H.scrollTop}function V(){if(!s.value||!r.value.length)return;const T=y,H=(T?T.scrollTop:null)||(typeof window<"u"?window.scrollY:0),ne=(T?T.clientHeight:null)||(typeof window<"u"?window.innerHeight:0),N=H+ne;let O=null;for(let W=0;W<r.value.length;W+=1){const z=r.value[W],I=document.getElementById(z.id);if(I){const Z=L(I);Z+I.offsetHeight>H&&Z<N&&(O=z.id)}}!O&&a.value&&(O=a.value),O&&(a.value=O);const K=T?T.scrollHeight-T.clientHeight:document.documentElement.scrollHeight-window.innerHeight;H+5>=K&&(O=r.value[r.value.length-1].id),O&&(l.value=O)}function S(){s.value&&(p&&window.cancelAnimationFrame(p),p=window.requestAnimationFrame(()=>{V(),p=0}))}function v(T){if(!s.value)return;const H=document.getElementById(T);if(!H)return;const ne=y,N=Math.max(0,L(H));ne?ne.scrollTo({top:N,behavior:"smooth"}):typeof window<"u"&&window.scrollTo({top:N,behavior:"smooth"})}return t({refresh:C}),(T,H)=>s.value&&r.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(c.value),style:e.normalizeStyle(i.value)},[e.createElementVNode("h2",vh,e.toDisplayString(n.title),1),e.createElementVNode("div",Ch,[(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===l.value?"vs-compact-form-navigation__item--active":""])},[e.createElementVNode("button",{type:"button",onClick:N=>v(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===l.value?"text-gray-800":"text-gray-500"])},[e.createElementVNode("span",null,e.toDisplayString(ne.text),1)],10,Eh)],2))),128))])],6)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-b3e16a91"]]),ht={required:"Це поле є обов’язковим",email:"Неправильний email",tel:"Неправильний телефон",minlength:n=>`Мінімальна довжина — ${n} символів`,maxlength:n=>`Максимальна довжина — ${n} символів`,min:n=>`Значення має бути не менше ${n}`,max:n=>`Значення має бути не більше ${n}`},Bh=n=>typeof n=="string"?n.trim()?!1:ht.required:Array.isArray(n)?n.map(o=>typeof o=="string"?o.trim():o).filter(o=>o!=null&&o!=="").length?!1:ht.required:typeof n=="number"?Number?.isNaN(n)?ht?.required:!1:n?!1:ht.required,Vh=n=>{const t=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/;return n?t.test(n)?!1:ht.email:!1},Sh=(n,t)=>{if(!n)return!1;const o=String(n).trim();if(!/^\+[1-9]\d{1,14}$/.test(o))return ht.tel;const a=(typeof t?.digits=="number"&&Number.isFinite(t.digits)&&t.digits>0?t.digits:Mt(Ct))||Mt(Ct);return o.length-1!==a?ht.tel:!1},jr=n=>n==null?0:typeof n=="string"?n.trim().length:Array.isArray(n)?n.length:typeof n=="number"?n.toString().length:String(n).length,$h=(n,t)=>{if(n==null)return!1;const o=Number(t?.value??t?.length);return Number.isFinite(o)&&jr(n)<o?t?.message||ht.minlength(o):!1},Ah=(n,t)=>{if(n==null||n==="")return!1;const o=Number(t?.value??t?.length);return Number.isFinite(o)&&jr(n)>o?t?.message||ht.maxlength(o):!1},Ur=n=>{if(typeof n=="number")return n;if(typeof n=="string"){const t=n.trim().replace(",",".");return t?Number(t):Number.NaN}return Number(n)},Nh=(n,t)=>{if(n==null||n==="")return!1;const o=Number(t?.value);if(!Number.isFinite(o))return!1;const r=Ur(n);return Number.isFinite(r)&&r<o?t?.message||ht.min(o):!1},Mh=(n,t)=>{if(n==null||n==="")return!1;const o=Number(t?.value);if(!Number.isFinite(o))return!1;const r=Ur(n);return Number.isFinite(r)&&r>o?t?.message||ht.max(o):!1},Fh=(n,t)=>{const o=t.pattern??t.regexp,r=typeof o=="string"?new RegExp(o):o;if(Array.isArray(n)){const l=n.filter(Boolean);return l.length===0||l.every(a=>r.test(a))?!1:t.message}return!r.test(n)&&n?t.message:!1},Dh=(n,t)=>!1,Th=(n,t)=>{switch(typeof t=="string"?t:t.type){case"required":return Bh(n);case"email":return Vh(n);case"tel":return Sh(n,typeof t=="object"?t:void 0);case"regexp":return Fh(n,t);case"minlength":return $h(n,t);case"maxlength":return Ah(n,t);case"min":return Nh(n,t);case"max":return Mh(n,t);case"custom":return Dh();default:return!1}},Lh={autocomplete:"select",combobox:"select",datepicker:"date",markedtext:"mask",html:"static",geom:"map",filelist:"file-list",file:"file",dropzone:"file",inlineselect:"inline-select"};function Hr(n){const t=n?.toLowerCase();return Lh[t]||t}function ko(n,t=!1){if(Array.isArray(n)){const r=[];return n.forEach(l=>{const a={...l};if(a.name=(l.name||l.id||l.key||"").toString(),a.type=Hr(l.type),a.label=l.label||l.ua,a.rules=l.rules||l.validators,a.type==="email"&&!a.rules&&(a.rules=["email"]),a.type==="tel"&&!a.rules){const s=a.mask||Ct,c=Mt(s)||Mt(Ct);a.rules=[{type:"tel",digits:c}]}l.data&&(a.api=`/api/suggest/${l.data}`),a.disabled=a.disabled??t,Array.isArray(a.schema)&&(a.schema=ko(a.schema,a.disabled)),r.push(a)}),r}const o=[];return Object.entries(n).forEach(r=>{const l={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(l.type==="email"&&!l.rules&&(l.rules=["email"]),l.type==="tel"&&!l.rules){const a=l.mask||Ct,s=Mt(a)||Mt(Ct);l.rules=[{type:"tel",digits:s}]}r[1].type?.includes("list")&&(l.multiple=!0),!l.api&&r[1].data&&(l.api=`/api/suggest/${r[1].data}`),Array.isArray(l.schema)&&(l.schema=ko(l.schema,l.disabled)),o.push(l)}),o}function Ih(n,t,o=!1){const r=e.computed(()=>ko((Array.isArray(t),t),typeof o=="boolean"?o:o.value)),l=e.ref({});function a(d){return fr(n?.value,d?.conditions)}const s=(d=r.value,h=!0)=>(d.forEach(p=>{const g=[],y=Number(p?.minlength),m=Number(p?.maxlength),x=Number(p?.min),f=Number(p?.max);!Number.isNaN(y)&&Number.isFinite(y)&&g.push({type:"minlength",value:y}),!Number.isNaN(m)&&Number.isFinite(m)&&g.push({type:"maxlength",value:m}),!Number.isNaN(x)&&Number.isFinite(x)&&g.push({type:"min",value:x}),!Number.isNaN(f)&&Number.isFinite(f)&&g.push({type:"max",value:f});const E=[...g,...p.rules||[]];if(E.length){if(!a(p)){delete l.value[p.name];return}let C=!1,B=null;E.forEach(A=>{const U=Th(n.value[p.name],A);U&&(C=!0,!B&&typeof U=="string"&&(B=U))}),C&&B?l.value[p.name]=B:delete l.value[p.name]}p.schema&&s(p.schema,!1)}),h&&Object.values(l.value).some(Boolean)?l.value:null),c=e.computed(()=>r.value?.filter(d=>d.hidden!==!0&&a(d)));return{errors:l,validate:s,reset:()=>{n.value={},l.value={}},visibleSchema:c}}const Oh={class:"flex w-full h-full min-h-0 gap-6"},Ph={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(n,{expose:t,emit:o}){const r=o,l=n,a=e.computed(()=>!!l.formId||l.allowIdField),s=e.useModel(n,"form"),c=e.useModel(n,"modelValue"),i=e.useModel(n,"values"),d=e.computed({get:()=>i.value??c.value,set:K=>{c.value=K,i.value=K}}),{errors:h,validate:p,reset:g,visibleSchema:y}=Ih(d,l.schema,e.toRef(l,"disabled")),m=e.ref(null),x=e.ref(null),f=e.ref({}),E=e.computed(()=>l.navigation),C=e.computed(()=>l.navWidth),B=e.computed(()=>l.style?.columns),A=Object.freeze({container:12,label:3}),U=e.computed(()=>l.columns??B.value??A),Q=e.computed(()=>l.columns!=null||B.value!=null),L=e.computed(()=>Q.value?"horizontal":l.layout),V=K=>K?.columns?"horizontal":L.value,S=K=>K?.columns??U.value,v=e.computed(()=>{const K={},W=z=>{if(!z)return;(Array.isArray(z)?z.map((Z,$)=>({key:String($),entry:Z})):typeof z=="object"?Object.entries(z).map(([Z,$])=>({key:Z,entry:$})):[]).forEach(({key:Z,entry:$})=>{if(!$||typeof $!="object")return;const j=$.name?String($.name):Z;j&&(K[j]={...$,name:j}),Array.isArray($.schema)&&W($.schema)})};return W(l.schema),K}),T=()=>{!a.value&&d.value&&delete d.value.id,r("update:modelValue",d.value),p(),r("handle-submit",d.value)},H=K=>{r("value-selected",K)};t({validate:p,reset:g,errors:h}),e.onMounted(()=>{s.value={value:d.value,errors:h.value,reset:g,validate:p,formId:l.formId}});function ne(K,W){if(K===W)return!0;if(typeof K!="object"||typeof W!="object"||!K||!W)return!1;const z=Object.keys(K),I=Object.keys(W);return z.length!==I.length?!1:z.every(Z=>K[Z]===W[Z])}function N(K){return Array.isArray(K)?[...K]:K&&typeof K=="object"?{...K}:K}function O(K){Array.isArray(K)&&K.forEach(W=>{if(!W)return;const z=W.name,I=W.default!==void 0;z&&I&&d.value[z]===void 0&&(d.value[z]=N(W.default)),Array.isArray(W.schema)&&O(W.schema)})}return e.watch(y,K=>{O(K)},{immediate:!0,deep:!0}),e.provide("form",s),e.provide("values",d),e.provide("field-props",f),e.provide("schema-by-name",v),(K,W)=>(e.openBlock(),e.createElementBlock("div",Oh,[e.createElementVNode("div",{class:"flex-1 min-h-0 overflow-y-auto overflow-x-visible",ref_key:"formScrollContainer",ref:x},[e.createElementVNode("form",{ref_key:"formRef",ref:m,onSubmit:e.withModifiers(T,["prevent"]),class:e.normalizeClass(["grid grid-cols-12 p-1",L.value==="default"?"gap-6":"gap-4"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(y),(z,I)=>(e.openBlock(),e.createElementBlock("div",{key:z.name,class:e.normalizeClass(V(z)==="horizontal"?"col-span-12":`col-span-12 md:col-span-${z.col||12}`)},[e.createVNode(zr,{style:e.normalizeStyle(n.style),item:z,layout:V(z),columns:S(z),"model-value":d.value[z.name],"onUpdate:modelValue":Z=>{if(z.name==="id"&&!a.value)return;const $=d.value[z.name];ne($,Z)||(d.value[z.name]=Z)},error:e.unref(h)[z.name],onValueSelected:H},null,8,["style","item","layout","columns","model-value","onUpdate:modelValue","error"]),V(z)==="settings"&&I+1!==e.unref(y).length?(e.openBlock(),e.createElementBlock("div",Ph)):e.createCommentVNode("",!0)],2))),128))],34)],512),e.createVNode(_h,{target:m.value,"scroll-container":x.value,enabled:E.value,width:C.value},null,8,["target","scroll-container","enabled","width"])]))}}),Rh={class:"relative"},zh={class:"w-full h-full fixed top-0 start-0 bg-black bg-opacity-50"},jh={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"},Uh={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},Hh={class:"font-medium text-gray-800 dark:text-[#ffffff]"},qh={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(n,{emit:t}){const o=n,r=t,l=e.ref(o.schema),a=e.ref(o.defaultValue?JSON.parse(JSON.stringify(o.defaultValue)):{}),s=e.ref({}),c=e.ref(o.token||""),i=e.ref(o.token||""),d=e.ref(o.mode),h=()=>{const f=o.method?.trim().toUpperCase();return f==="GET"||f==="POST"||f==="PUT"?f:d.value==="add"?"POST":"PUT"},p=()=>{ke.notify({type:"success",title:"Успішно",message:`Дані успішно ${d.value==="add"?"збережено":"оновлено"}`})},g=f=>{const E={};f.id!==void 0&&f.id!==null&&(E.id=f.id,i.value=f.id.toString()),f.obj&&typeof f.obj=="object"&&Object.assign(E,f.obj),Object.keys(E).length&&(a.value={...a.value,...E})},y=async f=>{if(console.log(f),f.ok){await f.json().catch(()=>({})),p(),r("save",a.value);return}const E=await f.json().catch(()=>({})),C=E.message||E.error;if(f.status===400){ke.notify({type:"warning",title:"Помилка валідації",message:C||"Некоректні дані (400)"});return}if(f.status===500){ke.notify({type:"error",title:"Серверна помилка",message:C||"Виникла помилка на сервері (500)"});return}ke.notify({type:"error",title:"Помилка",message:`Статус: ${f.status}`})};async function m(){const f=s.value.validate();if(f){ke.notify({type:"warning",title:"Помилка валідації",message:Object.entries(f).map(([C,B])=>`${C}: ${B}`).join(`
5
5
  `)});return}d.value==="add"&&a.value&&delete a.value.id;const E=o.api?.trim();if(E){const C=h();try{const B=await fetch(E,{method:C,headers:C==="GET"?void 0:{"Content-Type":"application/json"},body:C==="GET"?void 0:JSON.stringify(a.value)});await y(B)}catch(B){ke.notify({type:"error",title:"Помилка з’єднання",message:B.message||"Не вдалося виконати запит"})}return}if(c.value)try{const C=await fetch(`/api/table/${c.value}`,{method:d.value==="add"?"POST":"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a.value)});await y(C)}catch(C){ke.notify({type:"error",title:"Помилка з’єднання",message:C.message||"Не вдалося виконати запит"})}else r("edit",a.value),x()}function x(){r("close")}return e.onMounted(async()=>{try{if(o.form&&!o.schema){const f=await fetch(`/api/template/form/${o.form}`);if(!f.ok){ke.notify({type:f.status>=400&&f.status<500?"warning":"error",title:"Error",message:`Error code: ${f.status}`});return}const E=await f.json();l.value=E.schema,E.id&&(i.value=E.id),E.token&&(c.value=E.token,i.value||(i.value=E.token))}else if(o.token&&!o.defaultValue){c.value=o.token;const f=await fetch(`/api/form/${c.value}`);if(!f.ok){ke.notify({type:f.status>=400&&f.status<500?"warning":"error",title:"Error",message:`Error code: ${f.status}`});return}const E=await f.json();l.value=E.schema,E.data?a.value=E.data:d.value="add",g({id:E.id,obj:E.obj})}}catch(f){ke.notify({type:"error",title:"Error",message:f.message||"Unexpected error"}),console.error(f)}}),(f,E)=>(e.openBlock(),e.createElementBlock("div",Rh,[e.createElementVNode("div",zh,[e.createElementVNode("div",jh,[e.createElementVNode("div",Uh,[e.createElementVNode("h3",Hh,e.toDisplayString(d.value==="add"?"Додати":"Змінити"),1),e.createElementVNode("button",{onClick:x,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"},[E[2]||(E[2]=e.createElementVNode("span",{class:"sr-only"},"Close",-1)),e.createVNode(e.unref(J.X),{class:"h-4 w-4 flex-shrink-0"})])]),e.createElementVNode("div",qh,[l.value?(e.openBlock(),e.createBlock(pt,{key:0,schema:l.value,values:a.value,"onUpdate:values":E[0]||(E[0]=C=>a.value=C),form:s.value,"onUpdate:form":E[1]||(E[1]=C=>s.value=C),formId:i.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:x,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:m,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=Qn.form.richtext,Wr=eo.form.richtext,xo={en:{form:{richtext:Kr}},uk:{form:{richtext:Wr}}},Gr=(n={mode:"edit",schema:null})=>new Promise(t=>{const{close:o}=ke.modal({title:n.mode==="add"?"Додати":"Редагувати",template:"",visible:!0,size:"medium",closeClickBack:!0,content:qr,contentProps:{...n,onClose:()=>{t(null),o()},onSave:r=>{t(r),o()}}})});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(n){return typeof n=="string"||n instanceof String}function Yr(n){var t;return typeof n=="object"&&n!=null&&(n==null||(t=n.constructor)==null?void 0:t.name)==="Object"}function Xr(n,t){return Array.isArray(t)?Xr(n,(o,r)=>t.includes(r)):Object.entries(n).reduce((o,r)=>{let[l,a]=r;return t(a,l)&&(o[l]=a),o},{})}const ge={NONE:"NONE",LEFT:"LEFT",FORCE_LEFT:"FORCE_LEFT",RIGHT:"RIGHT",FORCE_RIGHT:"FORCE_RIGHT"};function Zr(n){switch(n){case ge.LEFT:return ge.FORCE_LEFT;case ge.RIGHT:return ge.FORCE_RIGHT;default:return n}}function wo(n){return n.replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1")}function Un(n,t){if(t===n)return!0;const o=Array.isArray(t),r=Array.isArray(n);let l;if(o&&r){if(t.length!=n.length)return!1;for(l=0;l<t.length;l++)if(!Un(t[l],n[l]))return!1;return!0}if(o!=r)return!1;if(t&&n&&typeof t=="object"&&typeof n=="object"){const a=t instanceof Date,s=n instanceof Date;if(a&&s)return t.getTime()==n.getTime();if(a!=s)return!1;const c=t instanceof RegExp,i=n instanceof RegExp;if(c&&i)return t.toString()==n.toString();if(c!=i)return!1;const d=Object.keys(t);for(l=0;l<d.length;l++)if(!Object.prototype.hasOwnProperty.call(n,d[l]))return!1;for(l=0;l<d.length;l++)if(!Un(n[d[l]],t[d[l]]))return!1;return!0}else if(t&&n&&typeof t=="function"&&typeof n=="function")return t.toString()===n.toString();return!1}class Kh{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 Ee(n,t){return new Ee.InputMask(n,t)}function Jr(n){if(n==null)throw new Error("mask property should be defined");return n instanceof RegExp?Ee.MaskedRegExp:Ft(n)?Ee.MaskedPattern:n===Date?Ee.MaskedDate:n===Number?Ee.MaskedNumber:Array.isArray(n)||n===Array?Ee.MaskedDynamic:Ee.Masked&&n.prototype instanceof Ee.Masked?n:Ee.Masked&&n instanceof Ee.Masked?n.constructor:n instanceof Function?Ee.MaskedFunction:(console.warn("Mask not found for mask",n),Ee.Masked)}function Wt(n){if(!n)throw new Error("Options in not defined");if(Ee.Masked){if(n.prototype instanceof Ee.Masked)return{mask:n};const{mask:t=void 0,...o}=n instanceof Ee.Masked?{mask:n}:Yr(n)&&n.mask instanceof Ee.Masked?n:{};if(t){const r=t.mask;return{...Xr(t,(l,a)=>!a.startsWith("_")),mask:t.constructor,_mask:r,...o}}}return Yr(n)?{...n}:{mask:n}}function yt(n){if(Ee.Masked&&n instanceof Ee.Masked)return n;const t=Wt(n),o=Jr(t.mask);if(!o)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===o&&delete t.mask,t._mask&&(t.mask=t._mask,delete t._mask),new o(t)}Ee.createMask=yt;class Hn{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,o){if(!(t==null||o==null||t===this.selectionStart&&o===this.selectionEnd))try{this._unsafeSelect(t,o)}catch{}}get isActive(){return!1}}Ee.MaskElement=Hn;const Qr=90,Wh=89;class rn extends Hn{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,o,r;return(t=(o=(r=this.input).getRootNode)==null?void 0:o.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===Wh&&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={}}}Ee.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,o){this.input.setSelectionRange(t,o)}get value(){return this.input.value}set value(t){this.input.value=t}}Ee.HTMLMaskElement=rn;class vo extends rn{get _unsafeSelectionStart(){const t=this.rootElement,o=t.getSelection&&t.getSelection(),r=o&&o.anchorOffset,l=o&&o.focusOffset;return l==null||r==null||r<l?r:l}get _unsafeSelectionEnd(){const t=this.rootElement,o=t.getSelection&&t.getSelection(),r=o&&o.anchorOffset,l=o&&o.focusOffset;return l==null||r==null||r>l?r:l}_unsafeSelect(t,o){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,o);const l=this.rootElement,a=l.getSelection&&l.getSelection();a&&(a.removeAllRanges(),a.addRange(r))}get value(){return this.input.textContent||""}set value(t){this.input.textContent=t}}Ee.HTMLContenteditableMaskElement=vo;class qn{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>qn.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}}qn.MAX_LENGTH=100;class tl{constructor(t,o){this.el=t instanceof Hn?t:t.isContentEditable&&t.tagName!=="INPUT"&&t.tagName!=="TEXTAREA"?new vo(t):new el(t),this.masked=yt(o),this._listeners={},this._value="",this._unmaskedValue="",this._rawInputValue="",this.history=new qn,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 o;return t==null||((o=this.masked)==null?void 0:o.maskEquals(t))}get mask(){return this.masked.mask}set mask(t){if(this.maskEquals(t))return;if(!(t instanceof Ee.Masked)&&this.masked.constructor===Jr(t)){this.masked.updateOptions({mask:t});return}const o=t instanceof Ee.Masked?t:yt({mask:t});o.unmaskedValue=this.masked.unmaskedValue,this.masked=o}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,o){const r=this._listeners[t];r&&r.forEach(l=>l(o))}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 o=this.masked.unmaskedValue,r=this.masked.value,l=this.masked.rawInputValue,a=this.displayValue,s=this.unmaskedValue!==o||this.value!==r||this._rawInputValue!==l;this._unmaskedValue=o,this._value=r,this._rawInputValue=l,this.el.value!==a&&(this.el.value=a),t==="auto"?this.alignCursor():t!=null&&(this.cursorPos=t),s&&this._fireChangeEvents(),!this._historyChanging&&(s||this.history.isEmpty)&&this.history.push({unmaskedValue:o,selection:{start:this.selectionStart,end:this.cursorPos}})}updateOptions(t){const{mask:o,...r}=t,l=!this.maskEquals(o),a=this.masked.optionsIsChanged(r);l&&(this.mask=o),a&&this.masked.updateOptions(r),(l||a)&&this.updateControl()}updateCursor(t){t!=null&&(this.cursorPos=t,this._delayUpdateCursor(t))}_delayUpdateCursor(t){this._abortUpdateCursor(),this._changingCursorPos=t,this._cursorChanging=setTimeout(()=>{this.el&&(this.cursorPos=this._changingCursorPos,this._abortUpdateCursor())},10)}_fireChangeEvents(){this._fireEvent("accept",this._inputEvent),this.masked.isComplete&&this._fireEvent("complete",this._inputEvent)}_abortUpdateCursor(){this._cursorChanging&&(clearTimeout(this._cursorChanging),delete this._cursorChanging)}alignCursor(){this.cursorPos=this.masked.nearestInputPos(this.masked.nearestInputPos(this.cursorPos,ge.LEFT))}alignCursorFriendly(){this.selectionStart===this.cursorPos&&this.alignCursor()}on(t,o){return this._listeners[t]||(this._listeners[t]=[]),this._listeners[t].push(o),this}off(t,o){if(!this._listeners[t])return this;if(!o)return delete this._listeners[t],this;const r=this._listeners[t].indexOf(o);return r>=0&&this._listeners[t].splice(r,1),this}_onInput(t){this._inputEvent=t,this._abortUpdateCursor();const o=new Kh({value:this.el.value,cursorPos:this.cursorPos,oldValue:this.displayValue,oldSelection:this._selection}),r=this.masked.rawInputValue,l=this.masked.splice(o.startChangePos,o.removed.length,o.inserted,o.removeDirection,{input:!0,raw:!0}).offset,a=r===this.masked.rawInputValue?o.removeDirection:ge.NONE;let s=this.masked.nearestInputPos(o.startChangePos+l,a);a!==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}}Ee.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}}Ee.ChangeDetails=Ve;class bt{constructor(t,o,r){t===void 0&&(t=""),o===void 0&&(o=0),this.value=t,this.from=o,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 o=this.value[0];return this.value=this.value.slice(1),o}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,o){o===void 0&&(o={input:!0}),this.reset(),this.append(t,o,""),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,o){return t}totalInputPositions(t,o){return t===void 0&&(t=0),o===void 0&&(o=this.displayValue.length),Math.min(this.displayValue.length,o-t)}extractInput(t,o,r){return t===void 0&&(t=0),o===void 0&&(o=this.displayValue.length),this.displayValue.slice(t,o)}extractTail(t,o){return t===void 0&&(t=0),o===void 0&&(o=this.displayValue.length),new bt(this.extractInput(t,o),t)}appendTail(t){return Ft(t)&&(t=new bt(String(t))),t.appendTo(this)}_appendCharRaw(t,o){return t?(this._value+=t,new Ve({inserted:t,rawInserted:t})):new Ve}_appendChar(t,o,r){o===void 0&&(o={});const l=this.state;let a;if([t,a]=this.doPrepareChar(t,o),t&&(a=a.aggregate(this._appendCharRaw(t,o)),!a.rawInserted&&this.autofix==="pad")){const s=this.state;this.state=l;let c=this.pad(o);const i=this._appendCharRaw(t,o);c=c.aggregate(i),i.rawInserted||c.equals(a)?a=c:this.state=s}if(a.inserted){let s,c=this.doValidate(o)!==!1;if(c&&r!=null){const i=this.state;if(this.overwrite===!0){s=r.state;for(let h=0;h<a.rawInserted.length;++h)r.unshift(this.displayValue.length-a.tailShift)}let d=this.appendTail(r);if(c=d.rawInserted.length===r.toString().length,!(c&&d.inserted)&&this.overwrite==="shift"){this.state=i,s=r.state;for(let h=0;h<a.rawInserted.length;++h)r.shift();d=this.appendTail(r),c=d.rawInserted.length===r.toString().length}c&&d.inserted&&(this.state=i)}c||(a=new Ve,this.state=l,r&&s&&(r.state=s))}return a}_appendPlaceholder(){return new Ve}_appendEager(){return new Ve}append(t,o,r){if(!Ft(t))throw new Error("value should be string");const l=Ft(r)?new bt(String(r)):r;o!=null&&o.tail&&(o._beforeTailState=this.state);let a;[t,a]=this.doPrepare(t,o);for(let s=0;s<t.length;++s){const c=this._appendChar(t[s],o,l);if(!c.rawInserted&&!this.doSkipInvalid(t[s],o,l))break;a.aggregate(c)}return(this.eager===!0||this.eager==="append")&&o!=null&&o.input&&t&&a.aggregate(this._appendEager()),l!=null&&(a.tailShift+=this.appendTail(l).tailShift),a}remove(t,o){return t===void 0&&(t=0),o===void 0&&(o=this.displayValue.length),this._value=this.displayValue.slice(0,t)+this.displayValue.slice(o),new Ve}withValueRefresh(t){if(this._refreshing||!this._initialized)return t();this._refreshing=!0;const o=this.rawInputValue,r=this.value,l=t();return this.rawInputValue=o,this.value&&this.value!==r&&r.indexOf(this.value)===0&&(this.append(r.slice(this.displayValue.length),{},""),this.doCommit()),delete this._refreshing,l}runIsolated(t){if(this._isolated||!this._initialized)return t(this);this._isolated=!0;const o=this.state,r=t(this);return this.state=o,delete this._isolated,r}doSkipInvalid(t,o,r){return!!this.skipInvalid}doPrepare(t,o){return o===void 0&&(o={}),Ve.normalize(this.prepare?this.prepare(t,this,o):t)}doPrepareChar(t,o){return o===void 0&&(o={}),Ve.normalize(this.prepareChar?this.prepareChar(t,this,o):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,o,r,l,a){r===void 0&&(r=""),l===void 0&&(l=ge.NONE),a===void 0&&(a={input:!0});const s=t+o,c=this.extractTail(s),i=this.eager===!0||this.eager==="remove";let d;i&&(l=Zr(l),d=this.extractInput(0,s,{raw:!0}));let h=t;const p=new Ve;if(l!==ge.NONE&&(h=this.nearestInputPos(t,o>1&&t!==0&&!i?ge.NONE:l),p.tailShift=h-t),p.aggregate(this.remove(h)),i&&l!==ge.NONE&&d===this.rawInputValue)if(l===ge.FORCE_LEFT){let g;for(;d===this.rawInputValue&&(g=this.displayValue.length);)p.aggregate(new Ve({tailShift:-1})).aggregate(this.remove(g-1))}else l===ge.FORCE_RIGHT&&c.unshift();return p.aggregate(this.append(r,a,c))}maskEquals(t){return this.mask===t}optionsIsChanged(t){return!Un(this,t)}typedValueEquals(t){const o=this.typedValue;return t===o||Ge.EMPTY_VALUES.includes(t)&&Ge.EMPTY_VALUES.includes(o)||(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,""],Ee.Masked=Ge;class Dt{constructor(t,o){t===void 0&&(t=[]),o===void 0&&(o=0),this.chunks=t,this.from=o}toString(){return this.chunks.map(String).join("")}extend(t){if(!String(t))return;t=Ft(t)?new bt(String(t)):t;const o=this.chunks[this.chunks.length-1],r=o&&(o.stop===t.stop||t.stop==null)&&t.from===o.from+o.toString().length;if(t instanceof bt)r?o.extend(t.toString()):this.chunks.push(t);else if(t instanceof Dt){if(t.stop==null){let l;for(;t.chunks.length&&t.chunks[0].stop==null;)l=t.chunks.shift(),l.from+=t.from,this.extend(l)}t.toString()&&(t.stop=t.blockIndex,this.chunks.push(t))}}appendTo(t){if(!(t instanceof Ee.MaskedPattern))return new bt(this.toString()).appendTo(t);const o=new Ve;for(let r=0;r<this.chunks.length;++r){const l=this.chunks[r],a=t._mapPosToBlock(t.displayValue.length),s=l.stop;let c;if(s!=null&&(!a||a.index<=s)&&((l instanceof Dt||t._stops.indexOf(s)>=0)&&o.aggregate(t._appendPlaceholder(s)),c=l instanceof Dt&&t._blocks[s]),c){const i=c.appendTail(l);o.aggregate(i);const d=l.toString().slice(i.rawInserted.length);d&&o.aggregate(t.append(d,{tail:!0}))}else o.aggregate(t.append(l.toString(),{tail:!0}))}return o}get state(){return{chunks:this.chunks.map(t=>t.state),from:this.from,stop:this.stop,blockIndex:this.blockIndex}}set state(t){const{chunks:o,...r}=t;Object.assign(this,r),this.chunks=o.map(l=>{const a="chunks"in l?new Dt:new bt;return a.state=l,a})}unshift(t){if(!this.chunks.length||t!=null&&this.from>=t)return"";const o=t!=null?t-this.from:t;let r=0;for(;r<this.chunks.length;){const l=this.chunks[r],a=l.unshift(o);if(l.toString()){if(!a)break;++r}else this.chunks.splice(r,1);if(a)return a}return""}shift(){if(!this.chunks.length)return"";let t=this.chunks.length-1;for(;0<=t;){const o=this.chunks[t],r=o.shift();if(o.toString()){if(!r)break;--t}else this.chunks.splice(t,1);if(r)return r}return""}}class Gh{constructor(t,o){this.masked=t,this._log=[];const{offset:r,index:l}=t._mapPosToBlock(o)||(o<0?{index:0,offset:0}:{index:this.masked._blocks.length,offset:0});this.offset=r,this.index=l,this.ok=!1}get block(){return this.masked._blocks[this.index]}get pos(){return this.masked._blockStartPos(this.index)+this.offset}get state(){return{index:this.index,offset:this.offset,ok:this.ok}}set state(t){Object.assign(this,t)}pushState(){this._log.push(this.state)}popState(){const t=this._log.pop();return t&&(this.state=t),t}bindBlock(){this.block||(this.index<0&&(this.index=0,this.offset=0),this.index>=this.masked._blocks.length&&(this.index=this.masked._blocks.length-1,this.offset=this.block.displayValue.length))}_pushLeft(t){for(this.pushState(),this.bindBlock();0<=this.index;--this.index,this.offset=((o=this.block)==null?void 0:o.displayValue.length)||0){var o;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 Co{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,o){return t===void 0&&(t=0),o===void 0&&(o=this._value.length),this._value=this._value.slice(0,t)+this._value.slice(o),this._value||(this._isRawInput=!1),new Ve}nearestInputPos(t,o){o===void 0&&(o=ge.NONE);const r=0,l=this._value.length;switch(o){case ge.LEFT:case ge.FORCE_LEFT:return r;case ge.NONE:case ge.RIGHT:case ge.FORCE_RIGHT:default:return l}}totalInputPositions(t,o){return t===void 0&&(t=0),o===void 0&&(o=this._value.length),this._isRawInput?o-t:0}extractInput(t,o,r){return t===void 0&&(t=0),o===void 0&&(o=this._value.length),r===void 0&&(r={}),r.raw&&this._isRawInput&&this._value.slice(t,o)||""}get isComplete(){return!0}get isFilled(){return!!this._value}_appendChar(t,o){if(o===void 0&&(o={}),this.isFilled)return new Ve;const r=this.eager===!0||this.eager==="append",a=this.char===t&&(this.isUnmasking||o.input||o.raw)&&(!o.raw||!r)&&!o.tail,s=new Ve({inserted:this.char,rawInserted:a?this.char:""});return this._value=this.char,this._isRawInput=a&&(o.raw||o.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,o,r){const l=this._appendChar(t[0],o);return r!=null&&(l.tailShift+=this.appendTail(r).tailShift),l}doCommit(){}get state(){return{_value:this._value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value,this._isRawInput=!!t._rawInputValue}pad(t){return this._appendPlaceholder()}}class ln{constructor(t){const{parent:o,isOptional:r,placeholderChar:l,displayChar:a,lazy:s,eager:c,...i}=t;this.masked=yt(i),Object.assign(this,{parent:o,isOptional:r,placeholderChar:l,displayChar:a,lazy:s,eager:c})}reset(){this.isFilled=!1,this.masked.reset()}remove(t,o){return t===void 0&&(t=0),o===void 0&&(o=this.value.length),t===0&&o>=1?(this.isFilled=!1,this.masked.remove(t,o)):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,o){if(o===void 0&&(o={}),this.isFilled)return new Ve;const r=this.masked.state;let l=this.masked._appendChar(t,this.currentMaskFlags(o));return l.inserted&&this.doValidate(o)===!1&&(l=new Ve,this.masked.state=r),!l.inserted&&!this.isOptional&&!this.lazy&&!o.input&&(l.inserted=this.placeholderChar),l.skip=!l.inserted&&!this.isOptional,this.isFilled=!!l.inserted,l}append(t,o,r){return this.masked.append(t,this.currentMaskFlags(o),r)}_appendPlaceholder(){return this.isFilled||this.isOptional?new Ve:(this.isFilled=!0,new Ve({inserted:this.placeholderChar}))}_appendEager(){return new Ve}extractTail(t,o){return this.masked.extractTail(t,o)}appendTail(t){return this.masked.appendTail(t)}extractInput(t,o,r){return t===void 0&&(t=0),o===void 0&&(o=this.value.length),this.masked.extractInput(t,o,r)}nearestInputPos(t,o){o===void 0&&(o=ge.NONE);const r=0,l=this.value.length,a=Math.min(Math.max(t,r),l);switch(o){case ge.LEFT:case ge.FORCE_LEFT:return this.isComplete?a:r;case ge.RIGHT:case ge.FORCE_RIGHT:return this.isComplete?a:l;case ge.NONE:default:return a}}totalInputPositions(t,o){return t===void 0&&(t=0),o===void 0&&(o=this.value.length),this.value.slice(t,o).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 o;return{...t,_beforeTailState:(t==null||(o=t._beforeTailState)==null?void 0:o.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 o=t.mask;o&&(t.validate=r=>r.search(o)>=0),super._update(t)}}Ee.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 o=this.mask;if(!o||!t)return;let r=!1,l=!1;for(let a=0;a<o.length;++a){if(this.blocks){const d=o.slice(a),h=Object.keys(this.blocks).filter(g=>d.indexOf(g)===0);h.sort((g,y)=>y.length-g.length);const p=h[0];if(p){const{expose:g,repeat:y,...m}=Wt(this.blocks[p]),x={lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,overwrite:this.overwrite,autofix:this.autofix,...m,repeat:y,parent:this},f=y!=null?new Ee.RepeatBlock(x):yt(x);f&&(this._blocks.push(f),g&&(this.exposeBlock=f),this._maskedBlocks[p]||(this._maskedBlocks[p]=[]),this._maskedBlocks[p].push(this._blocks.length-1)),a+=p.length-1;continue}}let s=o[a],c=s in t;if(s===Ye.STOP_CHAR){this._stops.push(this._blocks.length);continue}if(s==="{"||s==="}"){r=!r;continue}if(s==="["||s==="]"){l=!l;continue}if(s===Ye.ESCAPE_CHAR){if(++a,s=o[a],!s)break;c=!1}const i=c?new ln({isOptional:l,lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,...Wt(t[s]),parent:this}):new Co({char:s,eager:this.eager,isUnmasking:r});this._blocks.push(i)}}get state(){return{...super.state,_blocks:this._blocks.map(t=>t.state)}}set state(t){if(!t){this.reset();return}const{_blocks:o,...r}=t;this._blocks.forEach((l,a)=>l.state=o[a]),super.state=r}reset(){super.reset(),this._blocks.forEach(t=>t.reset())}get isComplete(){return this.exposeBlock?this.exposeBlock.isComplete:this._blocks.every(t=>t.isComplete)}get isFilled(){return this._blocks.every(t=>t.isFilled)}get isFixed(){return this._blocks.every(t=>t.isFixed)}get isOptional(){return this._blocks.every(t=>t.isOptional)}doCommit(){this._blocks.forEach(t=>t.doCommit()),super.doCommit()}get unmaskedValue(){return this.exposeBlock?this.exposeBlock.unmaskedValue:this._blocks.reduce((t,o)=>t+=o.unmaskedValue,"")}set unmaskedValue(t){if(this.exposeBlock){const o=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.unmaskedValue=t,this.appendTail(o),this.doCommit()}else super.unmaskedValue=t}get value(){return this.exposeBlock?this.exposeBlock.value:this._blocks.reduce((t,o)=>t+=o.value,"")}set value(t){if(this.exposeBlock){const o=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.value=t,this.appendTail(o),this.doCommit()}else super.value=t}get typedValue(){return this.exposeBlock?this.exposeBlock.typedValue:super.typedValue}set typedValue(t){if(this.exposeBlock){const o=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.typedValue=t,this.appendTail(o),this.doCommit()}else super.typedValue=t}get displayValue(){return this._blocks.reduce((t,o)=>t+=o.displayValue,"")}appendTail(t){return super.appendTail(t).aggregate(this._appendPlaceholder())}_appendEager(){var t;const o=new Ve;let r=(t=this._mapPosToBlock(this.displayValue.length))==null?void 0:t.index;if(r==null)return o;this._blocks[r].isFilled&&++r;for(let l=r;l<this._blocks.length;++l){const a=this._blocks[l]._appendEager();if(!a.inserted)break;o.aggregate(a)}return o}_appendCharRaw(t,o){o===void 0&&(o={});const r=this._mapPosToBlock(this.displayValue.length),l=new Ve;if(!r)return l;for(let s=r.index,c;c=this._blocks[s];++s){var a;const i=c._appendChar(t,{...o,_beforeTailState:(a=o._beforeTailState)==null||(a=a._blocks)==null?void 0:a[s]});if(l.aggregate(i),i.consumed)break}return l}extractTail(t,o){t===void 0&&(t=0),o===void 0&&(o=this.displayValue.length);const r=new Dt;return t===o||this._forEachBlocksInRange(t,o,(l,a,s,c)=>{const i=l.extractTail(s,c);i.stop=this._findStopBefore(a),i.from=this._blockStartPos(a),i instanceof Dt&&(i.blockIndex=a),r.extend(i)}),r}extractInput(t,o,r){if(t===void 0&&(t=0),o===void 0&&(o=this.displayValue.length),r===void 0&&(r={}),t===o)return"";let l="";return this._forEachBlocksInRange(t,o,(a,s,c,i)=>{l+=a.extractInput(c,i,r)}),l}_findStopBefore(t){let o;for(let r=0;r<this._stops.length;++r){const l=this._stops[r];if(l<=t)o=l;else break}return o}_appendPlaceholder(t){const o=new Ve;if(this.lazy&&t==null)return o;const r=this._mapPosToBlock(this.displayValue.length);if(!r)return o;const l=r.index,a=t??this._blocks.length;return this._blocks.slice(l,a).forEach(s=>{if(!s.lazy||t!=null){var c;o.aggregate(s._appendPlaceholder((c=s._blocks)==null?void 0:c.length))}}),o}_mapPosToBlock(t){let o="";for(let r=0;r<this._blocks.length;++r){const l=this._blocks[r],a=o.length;if(o+=l.displayValue,t<=o.length)return{index:r,offset:t-a}}}_blockStartPos(t){return this._blocks.slice(0,t).reduce((o,r)=>o+=r.displayValue.length,0)}_forEachBlocksInRange(t,o,r){o===void 0&&(o=this.displayValue.length);const l=this._mapPosToBlock(t);if(l){const a=this._mapPosToBlock(o),s=a&&l.index===a.index,c=l.offset,i=a&&s?a.offset:this._blocks[l.index].displayValue.length;if(r(this._blocks[l.index],l.index,c,i),a&&!s){for(let d=l.index+1;d<a.index;++d)r(this._blocks[d],d,0,this._blocks[d].displayValue.length);r(this._blocks[a.index],a.index,0,a.offset)}}}remove(t,o){t===void 0&&(t=0),o===void 0&&(o=this.displayValue.length);const r=super.remove(t,o);return this._forEachBlocksInRange(t,o,(l,a,s,c)=>{r.aggregate(l.remove(s,c))}),r}nearestInputPos(t,o){if(o===void 0&&(o=ge.NONE),!this._blocks.length)return 0;const r=new Gh(this,t);if(o===ge.NONE)return r.pushRightBeforeInput()||(r.popState(),r.pushLeftBeforeInput())?r.pos:this.displayValue.length;if(o===ge.LEFT||o===ge.FORCE_LEFT){if(o===ge.LEFT){if(r.pushRightBeforeFilled(),r.ok&&r.pos===t)return t;r.popState()}if(r.pushLeftBeforeInput(),r.pushLeftBeforeRequired(),r.pushLeftBeforeFilled(),o===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:o===ge.FORCE_LEFT?0:(r.popState(),r.ok||(r.popState(),r.ok)?r.pos:0)}return o===ge.RIGHT||o===ge.FORCE_RIGHT?(r.pushRightBeforeInput(),r.pushRightBeforeRequired(),r.pushRightBeforeFilled()?r.pos:o===ge.FORCE_RIGHT?this.displayValue.length:(r.popState(),r.ok||(r.popState(),r.ok)?r.pos:this.nearestInputPos(t,ge.LEFT))):t}totalInputPositions(t,o){t===void 0&&(t=0),o===void 0&&(o=this.displayValue.length);let r=0;return this._forEachBlocksInRange(t,o,(l,a,s,c)=>{r+=l.totalInputPositions(s,c)}),r}maskedBlock(t){return this.maskedBlocks(t)[0]}maskedBlocks(t){const o=this._maskedBlocks[t];return o?o.map(r=>this._blocks[r]):[]}pad(t){const o=new Ve;return this._forEachBlocksInRange(0,this.displayValue.length,r=>o.aggregate(r.pad(t))),o}}Ye.DEFAULTS={...Ge.DEFAULTS,lazy:!0,placeholderChar:"_"},Ye.STOP_CHAR="`",Ye.ESCAPE_CHAR="\\",Ye.InputDefinition=ln,Ye.FixedDefinition=Co,Ee.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:o=this.to||0,from:r=this.from||0,maxLength:l=this.maxLength||0,autofix:a=this.autofix,...s}=t;this.to=o,this.from=r,this.maxLength=Math.max(String(o).length,l),this.autofix=a;const c=String(this.from).padStart(this.maxLength,"0"),i=String(this.to).padStart(this.maxLength,"0");let d=0;for(;d<i.length&&i[d]===c[d];)++d;s.mask=i.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 o="",r="";const[,l,a]=t.match(/^(\D*)(\d*)(\D*)/)||[];return a&&(o="0".repeat(l.length)+a,r="9".repeat(l.length)+a),o=o.padEnd(this.maxLength,"0"),r=r.padEnd(this.maxLength,"9"),[o,r]}doPrepareChar(t,o){o===void 0&&(o={});let r;return[t,r]=super.doPrepareChar(t.replace(/\D/g,""),o),t||(r.skip=!this.isComplete),[t,r]}_appendCharRaw(t,o){if(o===void 0&&(o={}),!this.autofix||this.value.length+1>this.maxLength)return super._appendCharRaw(t,o);const r=String(this.from).padStart(this.maxLength,"0"),l=String(this.to).padStart(this.maxLength,"0"),[a,s]=this.boundaries(this.value+t);return Number(s)<this.from?super._appendCharRaw(r[this.value.length],o):Number(a)>this.to?!o.tail&&this.autofix==="pad"&&this.value.length+1<this.maxLength?super._appendCharRaw(r[this.value.length],o).aggregate(this._appendCharRaw(t,o)):super._appendCharRaw(l[this.value.length],o):super._appendCharRaw(t,o)}doValidate(t){const o=this.value;if(o.search(/[^0]/)===-1&&o.length<=this._matchFrom)return!0;const[l,a]=this.boundaries(o);return this.from<=Number(a)&&Number(l)<=this.to&&super.doValidate(t)}pad(t){const o=new Ve;if(this.value.length===this.maxLength)return o;const r=this.value,l=this.maxLength-this.value.length;if(l){this.reset();for(let a=0;a<l;++a)o.aggregate(super._appendCharRaw("0",t));r.split("").forEach(a=>this._appendCharRaw(a))}return o}}Ee.MaskedRange=an;const Yh="d{.}`m{.}`Y";class kt extends Ye{static extractPatternOptions(t){const{mask:o,pattern:r,...l}=t;return{...l,mask:Ft(o)?o:r}}constructor(t){super(kt.extractPatternOptions({...kt.DEFAULTS,...t}))}updateOptions(t){super.updateOptions(t)}_update(t){const{mask:o,pattern:r,blocks:l,...a}={...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,l),super._update({...a,mask:Ft(o)?o:r,blocks:s})}doValidate(t){const o=this.date;return super.doValidate(t)&&(!this.isComplete||this.isDateExist(this.value)&&o!=null&&(this.min==null||this.min<=o)&&(this.max==null||o<=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:Yh,format:(n,t)=>{if(!n)return"";const o=String(n.getDate()).padStart(2,"0"),r=String(n.getMonth()+1).padStart(2,"0"),l=n.getFullYear();return[o,r,l].join(".")},parse:(n,t)=>{const[o,r,l]=n.split(".").map(Number);return new Date(l,r-1,o)}},Ee.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(o=>{const{expose:r,...l}=Wt(o),a=yt({overwrite:this._overwrite,eager:this._eager,skipInvalid:this._skipInvalid,...l});return r&&(this.exposeMask=a),a}):[])}_appendCharRaw(t,o){o===void 0&&(o={});const r=this._applyDispatch(t,o);return this.currentMask&&r.aggregate(this.currentMask._appendChar(t,this.currentMaskFlags(o))),r}_applyDispatch(t,o,r){t===void 0&&(t=""),o===void 0&&(o={}),r===void 0&&(r="");const l=o.tail&&o._beforeTailState!=null?o._beforeTailState._value:this.value,a=this.rawInputValue,s=o.tail&&o._beforeTailState!=null?o._beforeTailState._rawInputValue:a,c=a.slice(s.length),i=this.currentMask,d=new Ve,h=i?.state;return this.currentMask=this.doDispatch(t,{...o},r),this.currentMask&&(this.currentMask!==i?(this.currentMask.reset(),s&&(this.currentMask.append(s,{raw:!0}),d.tailShift=this.currentMask.value.length-l.length),c&&(d.tailShift+=this.currentMask.append(c,{raw:!0,tail:!0}).tailShift)):h&&(this.currentMask.state=h)),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 o=new Ve;return t&&o.aggregate(this._applyDispatch("",{},t)),o.aggregate(this.currentMask?this.currentMask.appendTail(t):super.appendTail(t))}currentMaskFlags(t){var o,r;return{...t,_beforeTailState:((o=t._beforeTailState)==null?void 0:o.currentMaskRef)===this.currentMask&&((r=t._beforeTailState)==null?void 0:r.currentMask)||t._beforeTailState}}doDispatch(t,o,r){return o===void 0&&(o={}),r===void 0&&(r=""),this.dispatch(t,this,o,r)}doValidate(t){return super.doValidate(t)&&(!this.currentMask||this.currentMask.doValidate(this.currentMaskFlags(t)))}doPrepare(t,o){o===void 0&&(o={});let[r,l]=super.doPrepare(t,o);if(this.currentMask){let a;[r,a]=super.doPrepare(r,this.currentMaskFlags(o)),l=l.aggregate(a)}return[r,l]}doPrepareChar(t,o){o===void 0&&(o={});let[r,l]=super.doPrepareChar(t,o);if(this.currentMask){let a;[r,a]=super.doPrepareChar(r,this.currentMaskFlags(o)),l=l.aggregate(a)}return[r,l]}reset(){var t;(t=this.currentMask)==null||t.reset(),this.compiledMasks.forEach(o=>o.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 o=String(t);this.currentMask&&(this.currentMask.typedValue=t,o=this.currentMask.unmaskedValue),this.unmaskedValue=o}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,o){const r=new Ve;return this.currentMask&&r.aggregate(this.currentMask.remove(t,o)).aggregate(this._applyDispatch()),r}get state(){var t;return{...super.state,_rawInputValue:this.rawInputValue,compiledMasks:this.compiledMasks.map(o=>o.state),currentMaskRef:this.currentMask,currentMask:(t=this.currentMask)==null?void 0:t.state}}set state(t){const{compiledMasks:o,currentMaskRef:r,currentMask:l,...a}=t;o&&this.compiledMasks.forEach((s,c)=>s.state=o[c]),r!=null&&(this.currentMask=r,this.currentMask.state=l),super.state=a}extractInput(t,o,r){return this.currentMask?this.currentMask.extractInput(t,o,r):""}extractTail(t,o){return this.currentMask?this.currentMask.extractTail(t,o):super.extractTail(t,o)}doCommit(){this.currentMask&&this.currentMask.doCommit(),super.doCommit()}nearestInputPos(t,o){return this.currentMask?this.currentMask.nearestInputPos(t,o):super.nearestInputPos(t,o)}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((o,r)=>{if(!t[r])return;const{mask:l,...a}=t[r];return Un(o,a)&&o.maskEquals(l)}):super.maskEquals(t)}typedValueEquals(t){var o;return!!((o=this.currentMask)!=null&&o.typedValueEquals(t))}}sn.DEFAULTS={...Ge.DEFAULTS,dispatch:(n,t,o,r)=>{if(!t.compiledMasks.length)return;const l=t.rawInputValue,a=t.compiledMasks.map((s,c)=>{const i=t.currentMask===s,d=i?s.displayValue.length:s.nearestInputPos(s.displayValue.length,ge.FORCE_LEFT);return s.rawInputValue!==l?(s.reset(),s.append(l,{raw:!0})):i||s.remove(d),s.append(n,t.currentMaskFlags(o)),s.appendTail(r),{index:c,weight:s.rawInputValue.length,totalInputPositions:s.totalInputPositions(0,Math.max(d,s.nearestInputPos(s.displayValue.length,ge.FORCE_LEFT)))}});return a.sort((s,c)=>c.weight-s.weight||c.totalInputPositions-s.totalInputPositions),t.compiledMasks[a[0].index]}},Ee.MaskedDynamic=sn;class cn extends Ye{constructor(t){super({...cn.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){const{enum:o,...r}=t;if(o){const l=o.map(c=>c.length),a=Math.min(...l),s=Math.max(...l)-a;r.mask="*".repeat(a),s&&(r.mask+="["+"*".repeat(s)+"]"),this.enum=o}super._update(r)}_appendCharRaw(t,o){o===void 0&&(o={});const r=Math.min(this.nearestInputPos(0,ge.FORCE_RIGHT),this.value.length),l=this.enum.filter(a=>this.matchValue(a,this.unmaskedValue+t,r));if(l.length){l.length===1&&this._forEachBlocksInRange(0,this.value.length,(s,c)=>{const i=l[0][c];c>=this.value.length||i===s.value||(s.reset(),s._appendChar(i,o))});const a=super._appendCharRaw(l[0][this.value.length],o);return l.length===1&&l[0].slice(this.unmaskedValue.length).split("").forEach(s=>a.aggregate(super._appendCharRaw(s))),a}return new Ve({skip:!this.isComplete})}extractTail(t,o){return t===void 0&&(t=0),o===void 0&&(o=this.displayValue.length),new bt("",t)}remove(t,o){if(t===void 0&&(t=0),o===void 0&&(o=this.displayValue.length),t===o)return new Ve;const r=Math.min(super.nearestInputPos(0,ge.FORCE_RIGHT),this.value.length);let l;for(l=t;l>=0&&!(this.enum.filter(c=>this.matchValue(c,this.value.slice(r,l),r)).length>1);--l);const a=super.remove(l,o);return a.tailShift+=l-t,a}get isComplete(){return this.enum.indexOf(this.value)>=0}}cn.DEFAULTS={...Ye.DEFAULTS,matchValue:(n,t,o)=>n.indexOf(t,o)===o},Ee.MaskedEnum=cn;class ol extends Ge{updateOptions(t){super.updateOptions(t)}_update(t){super._update({...t,validate:t.mask})}}Ee.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?"[+|\\-]?":""),o="\\d*",r=(this.scale?"("+wo(this.radix)+"\\d{0,"+this.scale+"})?":"")+"$";this._numberRegExp=new RegExp(t+o+r),this._mapToRadixRegExp=new RegExp("["+this.mapToRadix.map(wo).join("")+"]","g"),this._thousandsSeparatorRegExp=new RegExp(wo(this.thousandsSeparator),"g")}_removeThousandsSeparators(t){return t.replace(this._thousandsSeparatorRegExp,"")}_insertThousandsSeparators(t){const o=t.split(this.radix);return o[0]=o[0].replace(/\B(?=(\d{3})+(?!\d))/g,this.thousandsSeparator),o.join(this.radix)}doPrepareChar(t,o){o===void 0&&(o={});const[r,l]=super.doPrepareChar(this._removeThousandsSeparators(this.scale&&this.mapToRadix.length&&(o.input&&o.raw||!o.input&&!o.raw)?t.replace(this._mapToRadixRegExp,this.radix):t),o);return t&&!r&&(l.skip=!0),r&&!this.allowPositive&&!this.value&&r!=="-"&&l.aggregate(this._appendChar("-")),[r,l]}_separatorsCount(t,o){o===void 0&&(o=!1);let r=0;for(let l=0;l<t;++l)this._value.indexOf(this.thousandsSeparator,l)===l&&(++r,o&&(t+=this.thousandsSeparator.length));return r}_separatorsCountFromSlice(t){return t===void 0&&(t=this._value),this._separatorsCount(this._removeThousandsSeparators(t).length,!0)}extractInput(t,o,r){return t===void 0&&(t=0),o===void 0&&(o=this.displayValue.length),[t,o]=this._adjustRangeWithSeparators(t,o),this._removeThousandsSeparators(super.extractInput(t,o,r))}_appendCharRaw(t,o){o===void 0&&(o={});const r=o.tail&&o._beforeTailState?o._beforeTailState._value:this._value,l=this._separatorsCountFromSlice(r);this._value=this._removeThousandsSeparators(this.value);const a=this._value;this._value+=t;const s=this.number;let c=!isNaN(s),i=!1;if(c){let g;this.min!=null&&this.min<0&&this.number<this.min&&(g=this.min),this.max!=null&&this.max>0&&this.number>this.max&&(g=this.max),g!=null&&(this.autofix?(this._value=this.format(g,this).replace(nt.UNMASKED_RADIX,this.radix),i||(i=a===this._value&&!o.tail)):c=!1),c&&(c=!!this._value.match(this._numberRegExp))}let d;c?d=new Ve({inserted:this._value.slice(a.length),rawInserted:i?"":t,skip:i}):(this._value=a,d=new Ve),this._value=this._insertThousandsSeparators(this._value);const h=o.tail&&o._beforeTailState?o._beforeTailState._value:this._value,p=this._separatorsCountFromSlice(h);return d.tailShift+=(p-l)*this.thousandsSeparator.length,d}_findSeparatorAround(t){if(this.thousandsSeparator){const o=t-this.thousandsSeparator.length+1,r=this.value.indexOf(this.thousandsSeparator,o);if(r<=t)return r}return-1}_adjustRangeWithSeparators(t,o){const r=this._findSeparatorAround(t);r>=0&&(t=r);const l=this._findSeparatorAround(o);return l>=0&&(o=l+this.thousandsSeparator.length),[t,o]}remove(t,o){t===void 0&&(t=0),o===void 0&&(o=this.displayValue.length),[t,o]=this._adjustRangeWithSeparators(t,o);const r=this.value.slice(0,t),l=this.value.slice(o),a=this._separatorsCount(r.length);this._value=this._insertThousandsSeparators(this._removeThousandsSeparators(r+l));const s=this._separatorsCountFromSlice(r);return new Ve({tailShift:(s-a)*this.thousandsSeparator.length})}nearestInputPos(t,o){if(!this.thousandsSeparator)return t;switch(o){case ge.NONE:case ge.LEFT:case ge.FORCE_LEFT:{const r=this._findSeparatorAround(t-1);if(r>=0){const l=r+this.thousandsSeparator.length;if(t<l||this.value.length<=l||o===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 o=t;this.min!=null&&(o=Math.max(o,this.min)),this.max!=null&&(o=Math.min(o,this.max)),o!==t&&(this.unmaskedValue=this.format(o,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 o=this._removeThousandsSeparators(t).split(this.radix);return o[0]=o[0].replace(/^(\D*)(0*)(\d*)/,(r,l,a,s)=>l+s),t.length&&!/\d$/.test(o[0])&&(o[0]=o[0]+"0"),o.length>1&&(o[1]=o[1].replace(/0*$/,""),o[1].length||(o.length=1)),this._insertThousandsSeparators(o.join(this.radix))}_padFractionalZeros(t){if(!t)return t;const o=t.split(this.radix);return o.length<2&&o.push(""),o[1]=o[1].padEnd(this.scale,"0"),o.join(this.radix)}doSkipInvalid(t,o,r){o===void 0&&(o={});const l=this.scale===0&&t!==this.thousandsSeparator&&(t===this.radix||t===nt.UNMASKED_RADIX||this.mapToRadix.includes(t));return super.doSkipInvalid(t,o,r)&&!l}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:n=>n.toLocaleString("en-US",{useGrouping:!1,maximumFractionDigits:20})},Ee.MaskedNumber=nt;const Kn={MASKED:"value",UNMASKED:"unmaskedValue",TYPED:"typedValue"};function Eo(n,t,o){t===void 0&&(t=Kn.MASKED),o===void 0&&(o=Kn.MASKED);const r=yt(n);return l=>r.runIsolated(a=>(a[t]=l,a[o]))}function ll(n,t,o,r){return Eo(t,o,r)(n)}Ee.PIPE_TYPE=Kn,Ee.createPipe=Eo,Ee.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 o,r,l;const{repeat:a,...s}=Wt(t);this._blockOpts=Object.assign({},this._blockOpts,s);const c=yt(this._blockOpts);this.repeat=(o=(r=a??c.repeat)!=null?r:this.repeat)!=null?o:1/0,super._update({mask:"m".repeat(Math.max(this.repeatTo===1/0&&((l=this._blocks)==null?void 0:l.length)||0,this.repeatFrom)),blocks:{m:c},eager:c.eager,overwrite:c.overwrite,skipInvalid:c.skipInvalid,lazy:c.lazy,placeholderChar:c.placeholderChar,displayChar:c.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,o){o===void 0&&(o={});const r=new Ve;for(let i=(l=(a=this._mapPosToBlock(this.displayValue.length))==null?void 0:a.index)!=null?l:Math.max(this._blocks.length-1,0),d,h;d=(s=this._blocks[i])!=null?s:h=!h&&this._allocateBlock(i);++i){var l,a,s,c;const p=d._appendChar(t,{...o,_beforeTailState:(c=o._beforeTailState)==null||(c=c._blocks)==null?void 0:c[i]});if(p.skip&&h){this._blocks.pop(),this.mask=this.mask.slice(1);break}if(r.aggregate(p),p.consumed)break}return r}_trimEmptyTail(t,o){var r,l;t===void 0&&(t=0);const a=Math.max(((r=this._mapPosToBlock(t))==null?void 0:r.index)||0,this.repeatFrom,0);let s;o!=null&&(s=(l=this._mapPosToBlock(o))==null?void 0:l.index),s==null&&(s=this._blocks.length-1);let c=0;for(let i=s;a<=i&&!this._blocks[i].unmaskedValue;--i,++c);c&&(this._blocks.splice(s-c+1,c),this.mask=this.mask.slice(c))}reset(){super.reset(),this._trimEmptyTail()}remove(t,o){t===void 0&&(t=0),o===void 0&&(o=this.displayValue.length);const r=super.remove(t,o);return this._trimEmptyTail(t,o),r}totalInputPositions(t,o){return t===void 0&&(t=0),o==null&&this.repeatTo===1/0?1/0:super.totalInputPositions(t,o)}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}}Ee.RepeatBlock=al;try{globalThis.IMask=Ee}catch{}const Wn=Object.freeze(Object.defineProperty({__proto__:null,ChangeDetails:Ve,ChunksTailDetails:Dt,DIRECTION:ge,HTMLContenteditableMaskElement:vo,HTMLInputMaskElement:el,HTMLMaskElement:rn,InputMask:tl,MaskElement:Hn,Masked:Ge,MaskedDate:kt,MaskedDynamic:sn,MaskedEnum:cn,MaskedFunction:ol,MaskedNumber:nt,MaskedPattern:Ye,MaskedRange:an,MaskedRegExp:nl,PIPE_TYPE:Kn,PatternFixedDefinition:Co,PatternInputDefinition:ln,RepeatBlock:al,createMask:yt,createPipe:Eo,default:Ee,forceDirection:Zr,normalizeOpts:Wt,pipe:ll},Symbol.toStringTag,{value:"Module"}));function Xh(){const n=e.ref(!1);return{isFullscreen:n,toggleFullscreen:()=>{n.value=!n.value}}}const Zh="https://esm.sh",at="3.7.2",sl="3.7.2",Jh=`?deps=@tiptap/core@${at},@tiptap/pm@${sl}`,st=n=>`${Zh}/${n}${Jh}`,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=n=>import(n),Ke=(n,t)=>n?.[t]||n?.default?.[t]||n?.default?.default?.[t]||n?.default||n,Qh=n=>n.extend({addOptions(){return{...this.parent?.(),levels:[1,2,3,4,5,6]}}}),eg=(n,t,o,r,l)=>{const a=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 n.extend({addExtensions(){return[a.configure({resizable:!0}),o,r,l]}})},tg=n=>n.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:o})=>o().setMark("textStyle",{fontFamily:t}).run(),unsetFontFamily:()=>({chain:t})=>t().setMark("textStyle",{fontFamily:null}).removeEmptyTextStyle().run(),setFontSize:t=>({chain:o})=>o().setMark("textStyle",{fontSize:t}).run(),unsetFontSize:()=>({chain:t})=>t().setMark("textStyle",{fontSize:null}).removeEmptyTextStyle().run(),setColor:t=>({chain:o})=>o().setMark("textStyle",{color:t}).run(),unsetColor:()=>({chain:t})=>t().setMark("textStyle",{color:null}).removeEmptyTextStyle().run(),setBackgroundColor:t=>({chain:o})=>o().setMark("textStyle",{backgroundColor:t}).run(),unsetBackgroundColor:()=>({chain:t})=>t().setMark("textStyle",{backgroundColor:null}).removeEmptyTextStyle().run()}}}),ng=n=>n.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 og(){if(typeof window>"u")return null;const n=window;return n[dn]||(n[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,o,r,l,a,s,c,i,d,h,p,g,y])=>{const m=Ke(t,"Editor"),x=Ke(t,"Node"),f=Ke(o,"StarterKit"),E=Ke(r,"TextStyle"),C=Ke(l,"TableKit"),B=Ke(l,"Table"),A=Ke(l,"TableRow"),U=Ke(l,"TableCell"),Q=Ke(l,"TableHeader"),L=Ke(a,"Highlight"),V=Ke(s,"Subscript"),S=Ke(c,"Superscript"),v=Ke(i,"Link"),T=Ke(d,"Image"),H=Ke(h,"TextAlign"),ne=Ke(p,"Heading"),N=Ke(g,"Paragraph"),O=Ke(y,"DOMParser");if(!m||!x||!f||!E||!C||!B||!A||!U||!Q||!L||!V||!S||!v||!T||!H||!ne||!N||!O)throw new Error("Failed to resolve one or more Tiptap modules");return{Editor:m,ProseMirrorDOMParser:O,StarterKit:f,ExtendedTextStyle:tg(E),Highlight:L,Subscript:V,Superscript:S,Link:v,Image:T,TextAlign:H,CustomHeading:Qh(ne),CustomParagraph:N,CustomTableKit:eg(C,B,A,U,Q),Iframe:ng(x)}}).catch(t=>{throw delete n[dn],t})),n[dn]}const Tt=n=>n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;"),un=n=>{let t=Tt(n||"");return t=t.replace(/!\[([^\]]*)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(o,r,l,a)=>{const s=a?` title="${Tt(a)}"`:"";return`<img src="${Tt(l)}" alt="${Tt(r)}"${s}>`}),t=t.replace(/\[([^\]]+)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(o,r,l,a)=>{const s=a?` title="${Tt(a)}"`:"";return`<a href="${Tt(l)}"${s} target="_blank" rel="noopener noreferrer">${r}</a>`}),t=t.replace(/`([^`]+)`/g,"<code>$1</code>"),t=t.replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>"),t=t.replace(/__([^_]+)__/g,"<strong>$1</strong>"),t=t.replace(/~~([^~]+)~~/g,"<del>$1</del>"),t=t.replace(/\*([^*\n]+)\*/g,"<em>$1</em>"),t=t.replace(/_([^_\n]+)_/g,"<em>$1</em>"),t},pn=n=>/^\s*\d+\.\s+/.test(n),_o=n=>/^\s*[-*+]\s+/.test(n),il=n=>/^\s*[-*+]\s+\[[ xX]\]\s+/.test(n),Bo=n=>/^\s*>\s?/.test(n),Vo=n=>/^\s*\|?(?:\s*:?-{3,}:?\s*\|)+\s*:?-{3,}:?\s*\|?\s*$/.test(n),cl=n=>n.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(t=>un(t.trim())),rg=(n,t)=>{const o=n[t],r=n[t+1];if(!o||!r||!o.includes("|")||!Vo(r))return null;const l=cl(o),a=[];let s=t+2;for(;s<n.length&&n[s].includes("|")&&n[s].trim()!=="";){const d=cl(n[s]);a.push(`<tr>${d.map(h=>`<td>${h}</td>`).join("")}</tr>`),s+=1}const c=`<thead><tr>${l.map(d=>`<th>${d}</th>`).join("")}</tr></thead>`,i=a.length?`<tbody>${a.join("")}</tbody>`:"";return{html:`<table>${c}${i}</table>`,nextIndex:s}},lg=(n,t)=>{const o=pn(n[t]),r=o?"ol":"ul",l=[];let a=t;for(;a<n.length;){const s=n[a];if(s.trim()===""||!(o?pn(s):(_o(s)||il(s))&&!pn(s)))break;const i=s.match(/^\s*[-*+]\s+\[([ xX])\]\s+(.*)$/);if(i){const d=i[1].toLowerCase()==="x";l.push(`<li><input type="checkbox" disabled${d?" checked":""}> ${un(i[2])}</li>`)}else{const d=s.replace(/^\s*(?:[-*+]|\d+\.)\s+/,"");l.push(`<li>${un(d)}</li>`)}a+=1}return{html:`<${r}>${l.join("")}</${r}>`,nextIndex:a}},ag=(n,t)=>{const r=n[t].replace(/^```/,"").trim(),l=[];let a=t+1;for(;a<n.length&&!n[a].startsWith("```");)l.push(n[a]),a+=1;return{html:`<pre><code${r?` class="language-${Tt(r)}"`:""}>${Tt(l.join(`
6
6
  `))}</code></pre>`,nextIndex:a<n.length?a+1:a}},sg=(n,t)=>{const o=[];let r=t;for(;r<n.length;){const l=n[r];if(l.trim()===""||l.startsWith("```")||/^#{1,6}\s+/.test(l)||/^---+$/.test(l.trim())||/^\*\*\*+$/.test(l.trim())||Bo(l)||pn(l)||_o(l)||r+1<n.length&&l.includes("|")&&Vo(n[r+1]))break;o.push(l.trim()),r+=1}return{html:`<p>${un(o.join(" "))}</p>`,nextIndex:r}},dl=n=>{const o=(n||"").replace(/\r\n/g,`
7
7
  `).split(`
@@ -40,7 +40,7 @@ ${i}
40
40
  min-width: auto !important;
41
41
  min-height: auto !important;
42
42
  object-fit: fill !important;
43
- `.replace(/\s+/g," ").trim())}})},H=i.value.width,ne=i.value.height;H&&ne&&H!==""&&ne!==""?[0,v,v*2,v*3,v*4].forEach(O=>{setTimeout(T,O)}):(T(),setTimeout(T,v))},B=async()=>{let V=[],S=[];if(Array.isArray(i.value.file)?(V=i.value.file.filter(N=>N instanceof File),S=i.value.file.filter(N=>typeof N=="string"&&N.trim()!=="")):i.value.file instanceof FileList?V=Array.from(i.value.file):i.value.file instanceof File?V=[i.value.file]:typeof i.value.file=="string"&&i.value.file.trim()!==""&&(S=[i.value.file]),V.length===0&&S.length===0&&l.value&&l.value.file){const N=l.value.file;Array.isArray(N)?(V=N.filter(O=>O instanceof File),S=N.filter(O=>typeof O=="string"&&O.trim()!=="")):N instanceof FileList?V=Array.from(N):N instanceof File?V=[N]:typeof N=="string"&&N.trim()!==""&&(S=[N])}if(S.length>0&&!a.value){for(const N of S)s.value.some(O=>O.url===N)||s.value.push({url:N,preview:N,error:!1});if(V.length===0&&s.value.length>0){await U();return}}const v=V.length,T=v+S.length;if(!(a.value&&v<=1)){if(v>0){const N=V.filter(O=>!s.value.some(K=>K.file===O));N.length>0&&await x(N)}}if(!a.value){if(T>1||d.value||s.value.length>1){if(s.value.length>0){await U();return}else if(v>0){if(await x(V),s.value.length>0){await U();return}}else if(S.length>0){await U();return}}else if(s.value.length>1){await U();return}}let H=i.value.src;if(h.value){let N=null;if(Array.isArray(i.value.file)||i.value.file instanceof FileList?N=i.value.file[0]:(i.value.file instanceof File||typeof i.value.file=="string")&&(N=i.value.file),N instanceof File)try{const O=new FileReader,K=await new Promise((W,z)=>{O.onload=I=>W(I.target.result),O.onerror=z,O.readAsDataURL(N)});H=K,a.value&&(i.value.src=K)}catch(O){console.error("Помилка при читанні файлу:",O),ke.notify({type:"error",title:"Помилка",message:"Не вдалося прочитати файл"});return}else typeof N=="string"&&N.trim()!==""&&(H=N.trim(),a.value&&N.trim()!==i.value.src&&(i.value.src=N.trim(),H=N.trim()))}else if(Array.isArray(i.value.file)&&i.value.file.length===1){const N=i.value.file[0];typeof N=="string"&&N.trim()!==""&&(H=N.trim(),(!i.value.src||i.value.src!==N.trim())&&(i.value.src=N.trim()))}else typeof i.value.file=="string"&&i.value.file.trim()!==""&&(H=i.value.file.trim(),(!i.value.src||i.value.src!==i.value.file.trim())&&(i.value.src=i.value.file.trim()));const ne=H||Array.isArray(i.value.file)&&i.value.file.length>0&&(i.value.file.some(N=>N instanceof File)||i.value.file.some(N=>typeof N=="string"&&N.trim()!==""))||i.value.file instanceof FileList&&i.value.file.length>0||typeof i.value.file=="string"&&i.value.file.trim()!=="";if(!H&&!ne){ke.notify({type:"warning",title:"Попередження",message:"Будь ласка, введіть URL зображення або виберіть файл"});return}if(!d.value&&!ne&&await l.value.validate()){ke.notify({type:"warning",title:"Попередження",message:"Будь ласка, заповніть всі обов'язкові поля"});return}if(t.editor&&H)if(a.value&&c.value!==null){const{state:N}=t.editor;try{t.editor.chain().focus().setNodeSelection(c.value).run()}catch{t.editor.chain().focus().setTextSelection(c.value).run()}const O=t.editor.getAttributes("link"),K=O&&O.href,W=E(),z={src:H,alt:i.value.alt||"",title:i.value.title||"",...W};if((!i.value.width||i.value.width==="")&&(z.width=void 0),(!i.value.height||i.value.height==="")&&(z.height=void 0),t.editor.chain().focus().updateAttributes("image",z).run(),setTimeout(()=>{const{view:I}=t.editor;if(!I||!I.dom)return;I.dom.querySelectorAll("img.editor-image").forEach(j=>{if(j instanceof HTMLImageElement){const D=j.getAttribute("src")||j.src;(D===H||D.includes(H.split("/").pop()))&&(i.value.width&&i.value.height?(j.style.setProperty("width",`${i.value.width}px`,"important"),j.style.setProperty("height",`${i.value.height}px`,"important"),j.style.setProperty("object-fit","fill","important"),j.style.setProperty("max-width","none","important"),j.style.setProperty("max-height","none","important")):(j.style.removeProperty("width"),j.style.removeProperty("height"),j.style.removeProperty("object-fit"),j.style.removeProperty("max-width"),j.style.removeProperty("max-height")))}})},20),i.value.link&&i.value.link.trim()!==""){let I=i.value.link.trim();I.match(/^https?:\/\//i)||(I="https://"+I),K?t.editor.chain().focus().extendMarkRange("link").setLink({href:I,target:i.value.openInNewTab?"_blank":null}).run():t.editor.chain().focus().selectParentNode().setLink({href:I,target:i.value.openInNewTab?"_blank":null}).run()}else K&&t.editor.chain().focus().extendMarkRange("link").unsetLink().run()}else{const{state:N}=t.editor,{selection:O}=N,{$anchor:K}=O;let W=null;for(let I=K.depth;I>0;I--){const Z=K.node(I);if(Z&&Z.type.name==="paragraph"){W=Z;break}}if(W&&W.content.content.some(I=>I.type.name==="image")){const I=A(W,K.before(K.depth));if(I!==null){const Z=E(),$=N.schema.nodes.image.create({src:H,alt:i.value.alt||"",title:i.value.title||"",...Z});if(i.value.link&&i.value.link.trim()!==""){let j=i.value.link.trim();j.match(/^https?:\/\//i)||(j="https://"+j);const D=N.schema.marks.link.create({href:j,target:i.value.openInNewTab?"_blank":null}),se=$.type.create($.attrs,$.content,[D]);t.editor.chain().focus().insertContentAt(I+1,se).run(),C(t.editor,H)}else t.editor.chain().focus().insertContentAt(I+1,$).run(),C(t.editor,H)}else if(i.value.link&&i.value.link.trim()!==""){const Z=E();t.editor.chain().focus().setImage({src:H,alt:i.value.alt||"",title:i.value.title||"",...Z}).run(),setTimeout(()=>{let $=i.value.link.trim();$.match(/^https?:\/\//i)||($="https://"+$),t.editor.chain().focus().selectParentNode().setLink({href:$,target:i.value.openInNewTab?"_blank":null}).run(),C(t.editor,H,20)},10)}else{const Z=E();t.editor.chain().focus().setImage({src:H,alt:i.value.alt||"",title:i.value.title||"",...Z}).run(),C(t.editor,H)}}else if(i.value.link&&i.value.link.trim()!==""){const I=E();t.editor.chain().focus().setImage({src:H,alt:i.value.alt||"",title:i.value.title||"",...I}).run(),setTimeout(()=>{let Z=i.value.link.trim();Z.match(/^https?:\/\//i)||(Z="https://"+Z),t.editor.chain().focus().selectParentNode().setLink({href:Z,target:i.value.openInNewTab?"_blank":null}).run(),C(t.editor,H,20)},10)}else{const I=E();t.editor.chain().focus().setImage({src:H,alt:i.value.alt||"",title:i.value.title||"",...I}).run(),C(t.editor,H)}}m()},A=(V,S)=>{let v=null;return V.forEach((T,H)=>{T.type.name==="image"&&(v=S+H+1)}),v},U=async()=>{if(t.editor){if(s.value.length===0)if(Array.isArray(i.value.file)&&i.value.file.length>0){const V=i.value.file.filter(v=>typeof v=="string"&&v.trim()!==""),S=i.value.file.filter(v=>v instanceof File);for(const v of V)s.value.some(T=>T.url===v||T.preview===v)||s.value.push({url:v,preview:v,error:!1});S.length>0&&await x(S)}else d.value&&await x(i.value.file);if(s.value.length!==0)try{const V=[],S=E();for(const v of s.value){const T=v.url||v.preview||"";if(!T)continue;const H=t.editor.schema.nodes.image.create({src:T,alt:i.value.alt||"",title:i.value.title||"",...S});V.push(H)}V.length>0&&(t.editor.chain().focus().command(({tr:v,dispatch:T})=>{if(T){const{selection:H}=v,{$anchor:ne}=H;let N=H.$anchor.pos,O=null,K=null;for(let z=ne.depth;z>0;z--){const I=ne.node(z);if(I&&I.type.name==="paragraph"){O=I,K=ne.start(z);break}}if(O){let z=null;O.forEach((I,Z)=>{I.type.name==="image"&&(z=K+Z+1)}),z!==null?N=z+1:N=K+O.content.size}let W=N;return V.forEach(z=>{v.insert(W,z),W+=z.nodeSize}),!0}return!1}).run(),i.value.width&&i.value.height&&setTimeout(()=>{const{view:v}=t.editor;v&&v.dom&&v.dom.querySelectorAll("img.editor-image").forEach(ne=>{ne instanceof HTMLImageElement&&Array.from(s.value).some(O=>{const K=O.url||O.preview||"",W=ne.src||ne.getAttribute("src")||"";return W===K||W.includes(K.split("/").pop())})&&(ne.style.setProperty("width",`${i.value.width}px`,"important"),ne.style.setProperty("height",`${i.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)),m()}catch(V){console.error("Помилка при додаванні зображень:",V),ke.notify({type:"error",title:"Помилка",message:"Не вдалося додати зображення"})}}},Q=async()=>{await B()},L=()=>{m()};return e.watch(()=>i.value.file,async(V,S)=>{if(r.value=!1,!(a.value&&Array.isArray(V)&&V.length===1&&typeof V[0]=="string"&&!V.some(T=>T instanceof File)))if(Array.isArray(V)&&V.length>0){const v=V.filter(H=>H instanceof File),T=V.filter(H=>typeof H=="string"&&H.trim()!=="");if(v.length>0&&(a.value?a.value&&v.length===1&&T.length===0&&(s.value=[]):s.value=[],(!a.value||v.length>1||T.length>0)&&await x(v),a.value&&v.length===1&&T.length===0)){const H=new FileReader;H.onload=ne=>{i.value.src=ne.target.result},H.readAsDataURL(v[0])}if(T.length>0)if(a.value)a.value&&T.length===1&&v.length===0&&(i.value.src=T[0]);else{v.length===0&&(s.value=[]);for(const H of T)s.value.some(ne=>ne.url===H||ne.preview===H)||s.value.push({url:H,preview:H,error:!1})}}else V&&typeof V=="object"&&V instanceof FileList?(a.value||(s.value=[]),await x(Array.from(V))):V&&typeof V=="object"&&!Array.isArray(V)&&V instanceof File?(a.value||(s.value=[]),await x([V])):a.value||(s.value=[])},{immediate:!1}),e.watch(()=>i.value.src,()=>{r.value=!1}),(V,S)=>(e.openBlock(),e.createElementBlock("div",ey,[e.createElementVNode("button",{onClick:y,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",n.editor?.isActive("image")?"bg-gray-200 text-gray-900":""]),title:"Додати зображення"},[e.createVNode(e.unref(J.Image),{class:"h-4 w-4"}),S[4]||(S[4]=e.createElementVNode("span",{class:"sr-only"},"Додати зображення",-1))],2),e.createVNode(kl,{modelValue:o.value,"onUpdate:modelValue":S[3]||(S[3]=v=>o.value=v),title:a.value?"Редагувати зображення":"Додати зображення"},{footer:e.withCtx(()=>[e.createElementVNode("div",cy,[e.createElementVNode("button",{onClick:L,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:Q,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(a.value?"Оновити зображення":"Додати зображення"),1)])]),default:e.withCtx(()=>[e.createVNode(pt,{modelValue:i.value,"onUpdate:modelValue":S[0]||(S[0]=v=>i.value=v),schema:g.value,form:l.value,"onUpdate:form":S[1]||(S[1]=v=>l.value=v)},null,8,["modelValue","schema","form"]),p.value&&!d.value?(e.openBlock(),e.createElementBlock("div",ty,[S[5]||(S[5]=e.createElementVNode("p",{class:"text-sm text-gray-600 mb-2"},"Попередній перегляд:",-1)),e.withDirectives(e.createElementVNode("img",{src:p.value,alt:i.value.alt||"Попередній перегляд зображення",title:i.value.title,class:"max-w-full h-auto max-h-32 rounded border",onError:S[2]||(S[2]=v=>r.value=!0)},null,40,ny),[[e.vShow,!r.value]]),r.value?(e.openBlock(),e.createElementBlock("p",oy," Не вдалося завантажити попередній перегляд зображення ")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),s.value.length>0?(e.openBlock(),e.createElementBlock("div",ry,[e.createElementVNode("p",ly,"Попередній перегляд ("+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",ay,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(v,T)=>(e.openBlock(),e.createElementBlock("div",{key:T,class:"relative"},[e.withDirectives(e.createElementVNode("img",{src:v.preview,alt:`Попередній перегляд ${T+1}`,class:"max-w-[100px] max-h-[100px] rounded border object-contain",onError:H=>v.error=!0},null,40,sy),[[e.vShow,!v.error]]),e.createElementVNode("button",{onClick:H=>f(T),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,iy)]))),128))])])):e.createCommentVNode("",!0)]),_:1},8,["modelValue","title"])]))}}),uy={class:"flex items-center"},py=["disabled"],my=["disabled"],fy=Be(Object.assign({inheritAttrs:!1},{__name:"vs-editor-history",props:{editor:Object},setup(n){const t=n,o=()=>{t.editor?.can().undo()&&t.editor.chain().focus().undo().run()},r=()=>{t.editor?.can().redo()&&t.editor.chain().focus().redo().run()};return(l,a)=>(e.openBlock(),e.createElementBlock("div",uy,[e.createElementVNode("button",{onClick:o,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",[n.editor?.can().undo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!n.editor?.can().undo(),title:"Undo (Ctrl+Z)"},[e.createVNode(e.unref(J.Undo2),{class:"h-4 w-4"})],10,py),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",[n.editor?.can().redo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!n.editor?.can().redo(),title:"Redo (Ctrl+Y)"},[e.createVNode(e.unref(J.Redo2),{class:"h-4 w-4"})],10,my)]))}}),[["__scopeId","data-v-2cd0a908"]]),hy={class:"relative"},gy={class:"p-6"},yy={class:"flex justify-between items-center mb-4"},by={bold:Mg,italic:Tg,color:C0,background_color:$0,highlight:A0,bullet_list:Cg,ordered_list:Bg,blockquote:xg,codeblock:$g,underline:Lg,strike:Ig,link:a0,table:u0,text_align:f0,font_family:T0,font_size:P0,superscript:j0,subscript:q0,heading:X0,clear_formatting:Q0,image:dy,history:fy,help:Be(Object.assign({inheritAttrs:!1},{__name:"vs-editor-help",props:{editor:Object},setup(n){const t=e.ref(!1),o=e.ref(null),r=()=>{t.value=!t.value},l=()=>{t.value=!1};return(a,s)=>(e.openBlock(),e.createElementBlock("div",hy,[e.createElementVNode("button",{ref_key:"helpButton",ref:o,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(J.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:l},[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",gy,[e.createElementVNode("div",yy,[s[1]||(s[1]=e.createElementVNode("h2",{class:"text-xl font-semibold text-gray-900"},"Common Markdown Syntax & Shortcuts",-1)),e.createElementVNode("button",{onClick:l,class:"text-gray-400 hover:text-gray-600 transition-colors"},[e.createVNode(e.unref(J.X),{class:"h-6 w-6"})])]),s[2]||(s[2]=e.createStaticVNode('<div class="space-y-6" data-v-38077376><div data-v-38077376><h3 class="text-lg font-medium text-gray-800 mb-3" data-v-38077376>Markdown Syntax</h3><div class="overflow-x-auto" data-v-38077376><table class="w-full border-collapse" data-v-38077376><thead data-v-38077376><tr class="bg-gray-50" data-v-38077376><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-38077376>Element</th><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-38077376>Example</th></tr></thead><tbody class="text-sm" data-v-38077376><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Bold</td><td class="border border-gray-200 px-3 py-2" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>**bold text**</code> or <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>__bold text__</code></td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Italics</td><td class="border border-gray-200 px-3 py-2" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>*italic text*</code> or <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>_italic text_</code></td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Strikethrough</td><td class="border border-gray-200 px-3 py-2" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>~strikethrough text~</code></td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Headings</td><td class="border border-gray-200 px-3 py-2" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376># Heading 1</code>, <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>## Heading 2</code>, etc., up to <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>###### Heading 6</code></td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Unordered Lists</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Use an asterisk (*), dash (-), or plus sign (+) followed by a space. </td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Ordered Lists</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Use a number followed by a period and a space (e.g., <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>1. First item</code>). </td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Blockquotes</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Start with a greater-than sign (&gt;) followed by a space. </td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Inline Code</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Surround with backticks (<code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>`</code>). </td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Code Blocks</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Enclose with three backticks (<code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>```</code>) before and after the code. </td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Images</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Use <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>![alt text](url)</code> syntax. </td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Links</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Use <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>[Link Text](url)</code> syntax. </td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Checklists</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Create a list item with <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>- [ ]</code> for an incomplete task or <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>- [x]</code> for a completed one. </td></tr></tbody></table></div></div><div data-v-38077376><h3 class="text-lg font-medium text-gray-800 mb-3" data-v-38077376>Common Editing Shortcuts</h3><div class="overflow-x-auto" data-v-38077376><table class="w-full border-collapse" data-v-38077376><thead data-v-38077376><tr class="bg-gray-50" data-v-38077376><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-38077376>Shortcut</th><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-38077376>Action</th></tr></thead><tbody class="text-sm" data-v-38077376><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+A</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Select all text</td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+B</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Apply bold formatting</td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+C</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Copy selected text</td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+I</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Apply italic formatting</td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+K</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Open the insert link dialog</td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+S</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Save the current document</td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+V</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Paste copied text</td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+X</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Cut selected text</td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+Y</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Redo the last action</td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Alt+Shift+Backspace</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Redo the last action</td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+Z</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Undo the last action</td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Alt+Backspace</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Undo the last action</td></tr></tbody></table></div></div></div>',1))])])])):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-38077376"]]),horizontal_rule:{__name:"vs-editor-horizontal-rule",props:{editor:Object},setup(n){const t=n,o=()=>{t.editor&&t.editor.chain().focus().setHorizontalRule().run()};return(r,l)=>(e.openBlock(),e.createElementBlock("button",{title:"Horizontal Rule",onClick:o,class:"flex flex-col h-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex"},[e.createVNode(e.unref(J.Minus),{class:"h-4 w-4"})]))}},fullscreen:{__name:"vs-editor-fullscreen",props:{editor:Object},emits:["toggle-fullscreen"],setup(n,{emit:t}){const o=t,r=()=>{o("toggle-fullscreen")};return(l,a)=>(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(J.Maximize),{class:"h-4 w-4"})]))}}},vl={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"]},ky={class:"flex align-middle gap-x-0.5 border-b flex-wrap border-b-gray-200 px-[10px] py-[6px] border-solid border-transparent"},xy={class:"editor-body"},wy={key:0,class:"richtext-loading text-sm text-gray-500"},vy={key:1,class:"richtext-error text-sm text-red-600"},Cy={class:"html-source-editor"},Ey={class:"flex justify-end border-t border-[#e5e7eb] bg-[#f8fafc] px-4 min-h-[38px] items-start overflow-visible"},_y={class:"inline-flex items-stretch -mt-px"},By=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(n){const t=n,o=e.useModel(n,"modelValue"),r=e.ref(null),l=e.ref(null),a=e.shallowRef(null),s=e.ref(!1),c=e.ref(""),i=e.ref(!1),d=e.ref(null),h=e.ref(""),p=e.ref(""),g=e.ref(null),y=e.ref(!1),{isFullscreen:m,toggleFullscreen:x}=Xh(),{t:f}=No(),E=e.computed(()=>t.format==="md"?"markdown":"html"),C=e.computed(()=>t.format==="md"?f("form.richtext.markdown"):f("form.richtext.html")),B=e.computed(()=>a.value||null),A=e.computed(()=>typeof t.toolbar=="string"?vl[t.toolbar]||vl.default:t.toolbar),U=e.computed(()=>A.value.map(I=>by[I]).filter(Boolean)),Q=e.computed(()=>(d.value?.attributes||[]).find(Z=>Z.name==="class")?.value||""),L=e.computed(()=>{const Z=(d.value?.attributes||[]).find(j=>j.name==="style")?.value||"",$={};return Z.split(";").forEach(j=>{const[D,...se]=j.split(":"),ce=D?.trim(),oe=se.join(":").trim();!ce||!oe||ce!=="height"&&($[ce.replace(/-([a-z])/g,(he,ve)=>ve.toUpperCase())]=oe)}),$}),V=new Set(["<p></p>","<p><br></p>"]),S=I=>{const Z=I||"";return V.has(Z)?"":Z},v=I=>{const Z=I||"";g.value=Z,o.value=Z},T=I=>{if(!I||!I.view||!I.view.dom)return;I.view.dom.querySelectorAll("img.editor-image[width][height]").forEach($=>{if($ instanceof HTMLImageElement){const j=$.getAttribute("width"),D=$.getAttribute("height");j&&D&&j!=="auto"&&D!=="auto"&&j!==""&&D!==""&&!isNaN(Number(j))&&!isNaN(Number(D))&&($.style.cssText=`
43
+ `.replace(/\s+/g," ").trim())}})},H=i.value.width,ne=i.value.height;H&&ne&&H!==""&&ne!==""?[0,v,v*2,v*3,v*4].forEach(O=>{setTimeout(T,O)}):(T(),setTimeout(T,v))},B=async()=>{let V=[],S=[];if(Array.isArray(i.value.file)?(V=i.value.file.filter(N=>N instanceof File),S=i.value.file.filter(N=>typeof N=="string"&&N.trim()!=="")):i.value.file instanceof FileList?V=Array.from(i.value.file):i.value.file instanceof File?V=[i.value.file]:typeof i.value.file=="string"&&i.value.file.trim()!==""&&(S=[i.value.file]),V.length===0&&S.length===0&&l.value&&l.value.file){const N=l.value.file;Array.isArray(N)?(V=N.filter(O=>O instanceof File),S=N.filter(O=>typeof O=="string"&&O.trim()!=="")):N instanceof FileList?V=Array.from(N):N instanceof File?V=[N]:typeof N=="string"&&N.trim()!==""&&(S=[N])}if(S.length>0&&!a.value){for(const N of S)s.value.some(O=>O.url===N)||s.value.push({url:N,preview:N,error:!1});if(V.length===0&&s.value.length>0){await U();return}}const v=V.length,T=v+S.length;if(!(a.value&&v<=1)){if(v>0){const N=V.filter(O=>!s.value.some(K=>K.file===O));N.length>0&&await x(N)}}if(!a.value){if(T>1||d.value||s.value.length>1){if(s.value.length>0){await U();return}else if(v>0){if(await x(V),s.value.length>0){await U();return}}else if(S.length>0){await U();return}}else if(s.value.length>1){await U();return}}let H=i.value.src;if(h.value){let N=null;if(Array.isArray(i.value.file)||i.value.file instanceof FileList?N=i.value.file[0]:(i.value.file instanceof File||typeof i.value.file=="string")&&(N=i.value.file),N instanceof File)try{const O=new FileReader,K=await new Promise((W,z)=>{O.onload=I=>W(I.target.result),O.onerror=z,O.readAsDataURL(N)});H=K,a.value&&(i.value.src=K)}catch(O){console.error("Помилка при читанні файлу:",O),ke.notify({type:"error",title:"Помилка",message:"Не вдалося прочитати файл"});return}else typeof N=="string"&&N.trim()!==""&&(H=N.trim(),a.value&&N.trim()!==i.value.src&&(i.value.src=N.trim(),H=N.trim()))}else if(Array.isArray(i.value.file)&&i.value.file.length===1){const N=i.value.file[0];typeof N=="string"&&N.trim()!==""&&(H=N.trim(),(!i.value.src||i.value.src!==N.trim())&&(i.value.src=N.trim()))}else typeof i.value.file=="string"&&i.value.file.trim()!==""&&(H=i.value.file.trim(),(!i.value.src||i.value.src!==i.value.file.trim())&&(i.value.src=i.value.file.trim()));const ne=H||Array.isArray(i.value.file)&&i.value.file.length>0&&(i.value.file.some(N=>N instanceof File)||i.value.file.some(N=>typeof N=="string"&&N.trim()!==""))||i.value.file instanceof FileList&&i.value.file.length>0||typeof i.value.file=="string"&&i.value.file.trim()!=="";if(!H&&!ne){ke.notify({type:"warning",title:"Попередження",message:"Будь ласка, введіть URL зображення або виберіть файл"});return}if(!d.value&&!ne&&await l.value.validate()){ke.notify({type:"warning",title:"Попередження",message:"Будь ласка, заповніть всі обов'язкові поля"});return}if(t.editor&&H)if(a.value&&c.value!==null){const{state:N}=t.editor;try{t.editor.chain().focus().setNodeSelection(c.value).run()}catch{t.editor.chain().focus().setTextSelection(c.value).run()}const O=t.editor.getAttributes("link"),K=O&&O.href,W=E(),z={src:H,alt:i.value.alt||"",title:i.value.title||"",...W};if((!i.value.width||i.value.width==="")&&(z.width=void 0),(!i.value.height||i.value.height==="")&&(z.height=void 0),t.editor.chain().focus().updateAttributes("image",z).run(),setTimeout(()=>{const{view:I}=t.editor;if(!I||!I.dom)return;I.dom.querySelectorAll("img.editor-image").forEach(j=>{if(j instanceof HTMLImageElement){const D=j.getAttribute("src")||j.src;(D===H||D.includes(H.split("/").pop()))&&(i.value.width&&i.value.height?(j.style.setProperty("width",`${i.value.width}px`,"important"),j.style.setProperty("height",`${i.value.height}px`,"important"),j.style.setProperty("object-fit","fill","important"),j.style.setProperty("max-width","none","important"),j.style.setProperty("max-height","none","important")):(j.style.removeProperty("width"),j.style.removeProperty("height"),j.style.removeProperty("object-fit"),j.style.removeProperty("max-width"),j.style.removeProperty("max-height")))}})},20),i.value.link&&i.value.link.trim()!==""){let I=i.value.link.trim();I.match(/^https?:\/\//i)||(I="https://"+I),K?t.editor.chain().focus().extendMarkRange("link").setLink({href:I,target:i.value.openInNewTab?"_blank":null}).run():t.editor.chain().focus().selectParentNode().setLink({href:I,target:i.value.openInNewTab?"_blank":null}).run()}else K&&t.editor.chain().focus().extendMarkRange("link").unsetLink().run()}else{const{state:N}=t.editor,{selection:O}=N,{$anchor:K}=O;let W=null;for(let I=K.depth;I>0;I--){const Z=K.node(I);if(Z&&Z.type.name==="paragraph"){W=Z;break}}if(W&&W.content.content.some(I=>I.type.name==="image")){const I=A(W,K.before(K.depth));if(I!==null){const Z=E(),$=N.schema.nodes.image.create({src:H,alt:i.value.alt||"",title:i.value.title||"",...Z});if(i.value.link&&i.value.link.trim()!==""){let j=i.value.link.trim();j.match(/^https?:\/\//i)||(j="https://"+j);const D=N.schema.marks.link.create({href:j,target:i.value.openInNewTab?"_blank":null}),se=$.type.create($.attrs,$.content,[D]);t.editor.chain().focus().insertContentAt(I+1,se).run(),C(t.editor,H)}else t.editor.chain().focus().insertContentAt(I+1,$).run(),C(t.editor,H)}else if(i.value.link&&i.value.link.trim()!==""){const Z=E();t.editor.chain().focus().setImage({src:H,alt:i.value.alt||"",title:i.value.title||"",...Z}).run(),setTimeout(()=>{let $=i.value.link.trim();$.match(/^https?:\/\//i)||($="https://"+$),t.editor.chain().focus().selectParentNode().setLink({href:$,target:i.value.openInNewTab?"_blank":null}).run(),C(t.editor,H,20)},10)}else{const Z=E();t.editor.chain().focus().setImage({src:H,alt:i.value.alt||"",title:i.value.title||"",...Z}).run(),C(t.editor,H)}}else if(i.value.link&&i.value.link.trim()!==""){const I=E();t.editor.chain().focus().setImage({src:H,alt:i.value.alt||"",title:i.value.title||"",...I}).run(),setTimeout(()=>{let Z=i.value.link.trim();Z.match(/^https?:\/\//i)||(Z="https://"+Z),t.editor.chain().focus().selectParentNode().setLink({href:Z,target:i.value.openInNewTab?"_blank":null}).run(),C(t.editor,H,20)},10)}else{const I=E();t.editor.chain().focus().setImage({src:H,alt:i.value.alt||"",title:i.value.title||"",...I}).run(),C(t.editor,H)}}m()},A=(V,S)=>{let v=null;return V.forEach((T,H)=>{T.type.name==="image"&&(v=S+H+1)}),v},U=async()=>{if(t.editor){if(s.value.length===0)if(Array.isArray(i.value.file)&&i.value.file.length>0){const V=i.value.file.filter(v=>typeof v=="string"&&v.trim()!==""),S=i.value.file.filter(v=>v instanceof File);for(const v of V)s.value.some(T=>T.url===v||T.preview===v)||s.value.push({url:v,preview:v,error:!1});S.length>0&&await x(S)}else d.value&&await x(i.value.file);if(s.value.length!==0)try{const V=[],S=E();for(const v of s.value){const T=v.url||v.preview||"";if(!T)continue;const H=t.editor.schema.nodes.image.create({src:T,alt:i.value.alt||"",title:i.value.title||"",...S});V.push(H)}V.length>0&&(t.editor.chain().focus().command(({tr:v,dispatch:T})=>{if(T){const{selection:H}=v,{$anchor:ne}=H;let N=H.$anchor.pos,O=null,K=null;for(let z=ne.depth;z>0;z--){const I=ne.node(z);if(I&&I.type.name==="paragraph"){O=I,K=ne.start(z);break}}if(O){let z=null;O.forEach((I,Z)=>{I.type.name==="image"&&(z=K+Z+1)}),z!==null?N=z+1:N=K+O.content.size}let W=N;return V.forEach(z=>{v.insert(W,z),W+=z.nodeSize}),!0}return!1}).run(),i.value.width&&i.value.height&&setTimeout(()=>{const{view:v}=t.editor;v&&v.dom&&v.dom.querySelectorAll("img.editor-image").forEach(ne=>{ne instanceof HTMLImageElement&&Array.from(s.value).some(O=>{const K=O.url||O.preview||"",W=ne.src||ne.getAttribute("src")||"";return W===K||W.includes(K.split("/").pop())})&&(ne.style.setProperty("width",`${i.value.width}px`,"important"),ne.style.setProperty("height",`${i.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)),m()}catch(V){console.error("Помилка при додаванні зображень:",V),ke.notify({type:"error",title:"Помилка",message:"Не вдалося додати зображення"})}}},Q=async()=>{await B()},L=()=>{m()};return e.watch(()=>i.value.file,async(V,S)=>{if(r.value=!1,!(a.value&&Array.isArray(V)&&V.length===1&&typeof V[0]=="string"&&!V.some(T=>T instanceof File)))if(Array.isArray(V)&&V.length>0){const v=V.filter(H=>H instanceof File),T=V.filter(H=>typeof H=="string"&&H.trim()!=="");if(v.length>0&&(a.value?a.value&&v.length===1&&T.length===0&&(s.value=[]):s.value=[],(!a.value||v.length>1||T.length>0)&&await x(v),a.value&&v.length===1&&T.length===0)){const H=new FileReader;H.onload=ne=>{i.value.src=ne.target.result},H.readAsDataURL(v[0])}if(T.length>0)if(a.value)a.value&&T.length===1&&v.length===0&&(i.value.src=T[0]);else{v.length===0&&(s.value=[]);for(const H of T)s.value.some(ne=>ne.url===H||ne.preview===H)||s.value.push({url:H,preview:H,error:!1})}}else V&&typeof V=="object"&&V instanceof FileList?(a.value||(s.value=[]),await x(Array.from(V))):V&&typeof V=="object"&&!Array.isArray(V)&&V instanceof File?(a.value||(s.value=[]),await x([V])):a.value||(s.value=[])},{immediate:!1}),e.watch(()=>i.value.src,()=>{r.value=!1}),(V,S)=>(e.openBlock(),e.createElementBlock("div",ey,[e.createElementVNode("button",{onClick:y,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",n.editor?.isActive("image")?"bg-gray-200 text-gray-900":""]),title:"Додати зображення"},[e.createVNode(e.unref(J.Image),{class:"h-4 w-4"}),S[4]||(S[4]=e.createElementVNode("span",{class:"sr-only"},"Додати зображення",-1))],2),e.createVNode(kl,{modelValue:o.value,"onUpdate:modelValue":S[3]||(S[3]=v=>o.value=v),title:a.value?"Редагувати зображення":"Додати зображення"},{footer:e.withCtx(()=>[e.createElementVNode("div",cy,[e.createElementVNode("button",{onClick:L,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:Q,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(a.value?"Оновити зображення":"Додати зображення"),1)])]),default:e.withCtx(()=>[e.createVNode(pt,{modelValue:i.value,"onUpdate:modelValue":S[0]||(S[0]=v=>i.value=v),schema:g.value,form:l.value,"onUpdate:form":S[1]||(S[1]=v=>l.value=v)},null,8,["modelValue","schema","form"]),p.value&&!d.value?(e.openBlock(),e.createElementBlock("div",ty,[S[5]||(S[5]=e.createElementVNode("p",{class:"text-sm text-gray-600 mb-2"},"Попередній перегляд:",-1)),e.withDirectives(e.createElementVNode("img",{src:p.value,alt:i.value.alt||"Попередній перегляд зображення",title:i.value.title,class:"max-w-full h-auto max-h-32 rounded border",onError:S[2]||(S[2]=v=>r.value=!0)},null,40,ny),[[e.vShow,!r.value]]),r.value?(e.openBlock(),e.createElementBlock("p",oy," Не вдалося завантажити попередній перегляд зображення ")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),s.value.length>0?(e.openBlock(),e.createElementBlock("div",ry,[e.createElementVNode("p",ly,"Попередній перегляд ("+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",ay,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(v,T)=>(e.openBlock(),e.createElementBlock("div",{key:T,class:"relative"},[e.withDirectives(e.createElementVNode("img",{src:v.preview,alt:`Попередній перегляд ${T+1}`,class:"max-w-[100px] max-h-[100px] rounded border object-contain",onError:H=>v.error=!0},null,40,sy),[[e.vShow,!v.error]]),e.createElementVNode("button",{onClick:H=>f(T),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,iy)]))),128))])])):e.createCommentVNode("",!0)]),_:1},8,["modelValue","title"])]))}}),uy={class:"flex items-center"},py=["disabled"],my=["disabled"],fy=Be(Object.assign({inheritAttrs:!1},{__name:"vs-editor-history",props:{editor:Object},setup(n){const t=n,o=()=>{t.editor?.can().undo()&&t.editor.chain().focus().undo().run()},r=()=>{t.editor?.can().redo()&&t.editor.chain().focus().redo().run()};return(l,a)=>(e.openBlock(),e.createElementBlock("div",uy,[e.createElementVNode("button",{onClick:o,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",[n.editor?.can().undo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!n.editor?.can().undo(),title:"Undo (Ctrl+Z)"},[e.createVNode(e.unref(J.Undo2),{class:"h-4 w-4"})],10,py),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",[n.editor?.can().redo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!n.editor?.can().redo(),title:"Redo (Ctrl+Y)"},[e.createVNode(e.unref(J.Redo2),{class:"h-4 w-4"})],10,my)]))}}),[["__scopeId","data-v-2cd0a908"]]),hy={class:"relative"},gy={class:"p-6"},yy={class:"flex justify-between items-center mb-4"},by={bold:Mg,italic:Tg,color:C0,background_color:$0,highlight:A0,bullet_list:Cg,ordered_list:Bg,blockquote:xg,codeblock:$g,underline:Lg,strike:Ig,link:a0,table:u0,text_align:f0,font_family:T0,font_size:P0,superscript:j0,subscript:q0,heading:X0,clear_formatting:Q0,image:dy,history:fy,help:Be(Object.assign({inheritAttrs:!1},{__name:"vs-editor-help",props:{editor:Object},setup(n){const t=e.ref(!1),o=e.ref(null),r=()=>{t.value=!t.value},l=()=>{t.value=!1};return(a,s)=>(e.openBlock(),e.createElementBlock("div",hy,[e.createElementVNode("button",{ref_key:"helpButton",ref:o,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(J.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:l},[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",gy,[e.createElementVNode("div",yy,[s[1]||(s[1]=e.createElementVNode("h2",{class:"text-xl font-semibold text-gray-900"},"Common Markdown Syntax & Shortcuts",-1)),e.createElementVNode("button",{onClick:l,class:"text-gray-400 hover:text-gray-600 transition-colors"},[e.createVNode(e.unref(J.X),{class:"h-6 w-6"})])]),s[2]||(s[2]=e.createStaticVNode('<div class="space-y-6" data-v-38077376><div data-v-38077376><h3 class="text-lg font-medium text-gray-800 mb-3" data-v-38077376>Markdown Syntax</h3><div class="overflow-x-auto" data-v-38077376><table class="w-full border-collapse" data-v-38077376><thead data-v-38077376><tr class="bg-gray-50" data-v-38077376><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-38077376>Element</th><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-38077376>Example</th></tr></thead><tbody class="text-sm" data-v-38077376><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Bold</td><td class="border border-gray-200 px-3 py-2" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>**bold text**</code> or <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>__bold text__</code></td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Italics</td><td class="border border-gray-200 px-3 py-2" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>*italic text*</code> or <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>_italic text_</code></td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Strikethrough</td><td class="border border-gray-200 px-3 py-2" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>~strikethrough text~</code></td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Headings</td><td class="border border-gray-200 px-3 py-2" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376># Heading 1</code>, <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>## Heading 2</code>, etc., up to <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>###### Heading 6</code></td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Unordered Lists</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Use an asterisk (*), dash (-), or plus sign (+) followed by a space. </td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Ordered Lists</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Use a number followed by a period and a space (e.g., <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>1. First item</code>). </td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Blockquotes</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Start with a greater-than sign (&gt;) followed by a space. </td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Inline Code</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Surround with backticks (<code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>`</code>). </td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Code Blocks</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Enclose with three backticks (<code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>```</code>) before and after the code. </td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Images</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Use <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>![alt text](url)</code> syntax. </td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Links</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Use <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>[Link Text](url)</code> syntax. </td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Checklists</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Create a list item with <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>- [ ]</code> for an incomplete task or <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>- [x]</code> for a completed one. </td></tr></tbody></table></div></div><div data-v-38077376><h3 class="text-lg font-medium text-gray-800 mb-3" data-v-38077376>Common Editing Shortcuts</h3><div class="overflow-x-auto" data-v-38077376><table class="w-full border-collapse" data-v-38077376><thead data-v-38077376><tr class="bg-gray-50" data-v-38077376><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-38077376>Shortcut</th><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-38077376>Action</th></tr></thead><tbody class="text-sm" data-v-38077376><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+A</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Select all text</td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+B</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Apply bold formatting</td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+C</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Copy selected text</td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+I</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Apply italic formatting</td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+K</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Open the insert link dialog</td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+S</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Save the current document</td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+V</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Paste copied text</td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+X</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Cut selected text</td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+Y</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Redo the last action</td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Alt+Shift+Backspace</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Redo the last action</td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+Z</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Undo the last action</td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Alt+Backspace</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Undo the last action</td></tr></tbody></table></div></div></div>',1))])])])):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-38077376"]]),horizontal_rule:{__name:"vs-editor-horizontal-rule",props:{editor:Object},setup(n){const t=n,o=()=>{t.editor&&t.editor.chain().focus().setHorizontalRule().run()};return(r,l)=>(e.openBlock(),e.createElementBlock("button",{title:"Horizontal Rule",onClick:o,class:"flex flex-col h-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex"},[e.createVNode(e.unref(J.Minus),{class:"h-4 w-4"})]))}},fullscreen:{__name:"vs-editor-fullscreen",props:{editor:Object},emits:["toggle-fullscreen"],setup(n,{emit:t}){const o=t,r=()=>{o("toggle-fullscreen")};return(l,a)=>(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(J.Maximize),{class:"h-4 w-4"})]))}}},vl={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"]},ky={class:"flex align-middle gap-x-0.5 border-b flex-wrap border-b-gray-200 px-[10px] py-[6px] border-solid border-transparent"},xy={class:"editor-body"},wy={key:0,class:"richtext-loading text-sm text-gray-500"},vy={key:1,class:"richtext-error text-sm text-red-600"},Cy={class:"html-source-editor"},Ey={class:"flex justify-end border-t border-[#e5e7eb] bg-[#f8fafc] px-4 min-h-[38px] items-start overflow-visible"},_y={class:"inline-flex items-stretch -mt-px"},By=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(n){const t=n,o=e.useModel(n,"modelValue"),r=e.ref(null),l=e.ref(null),a=e.shallowRef(null),s=e.ref(!1),c=e.ref(""),i=e.ref(!1),d=e.ref(null),h=e.ref(""),p=e.ref(""),g=e.ref(null),y=e.ref(!1),{isFullscreen:m,toggleFullscreen:x}=Xh(),{t:f}=No(),E=e.computed(()=>t.format==="md"?"markdown":"html"),C=e.computed(()=>t.format==="md"?f("form.richtext.markdown"):f("form.richtext.html")),B=e.computed(()=>a.value||null),A=e.computed(()=>typeof t.toolbar=="string"?vl[t.toolbar]||vl.default:t.toolbar),U=e.computed(()=>A.value.map(I=>by[I]).filter(Boolean)),Q=e.computed(()=>(d.value?.attributes||[]).find(Z=>Z.name==="class")?.value||""),L=e.computed(()=>{const Z=(d.value?.attributes||[]).find(j=>j.name==="style")?.value||"",$={};return Z.split(";").forEach(j=>{const[D,...se]=j.split(":"),ce=D?.trim(),oe=se.join(":").trim();!ce||!oe||ce!=="height"&&($[ce.replace(/-([a-z])/g,(he,ve)=>ve.toUpperCase())]=oe)}),$}),V=I=>{const Z=(I||"").trim();return Z?/^<p(?:\s+[^>]*)?>(?:\s|<br[^>]*>)*<\/p>$/i.test(Z):!0},S=I=>V(I)?"":I||"",v=I=>{const Z=I||"";g.value=Z,o.value=Z},T=I=>{if(!I||!I.view||!I.view.dom)return;I.view.dom.querySelectorAll("img.editor-image[width][height]").forEach($=>{if($ instanceof HTMLImageElement){const j=$.getAttribute("width"),D=$.getAttribute("height");j&&D&&j!=="auto"&&D!=="auto"&&j!==""&&D!==""&&!isNaN(Number(j))&&!isNaN(Number(D))&&($.style.cssText=`
44
44
  width: ${j}px !important;
45
45
  height: ${D}px !important;
46
46
  max-width: none !important;