@opengis/form 0.0.130 → 0.0.131

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,17 +1,17 @@
1
- (function(pe,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):(pe=typeof globalThis<"u"?globalThis:pe||self,e(pe.FormBuilder={},pe.Vue,pe.OpenGISCore,pe.lucide))})(this,(function(pe,e,de,P){"use strict";const tr=e.defineComponent({__name:"vs-info-tooltip",props:{text:{}},setup(r){const t=r,n=e.ref(!1),o=e.ref({top:"0px",left:"0px"});function l(s){if(!t.text)return;const c=s.currentTarget.getBoundingClientRect();o.value={top:`${c.bottom+4}px`,left:`${Math.min(c.left,window.innerWidth-230)}px`},n.value=!0}function a(){n.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(P.Info),{class:"h-4 w-4 text-gray-400 cursor-help"})])],32),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[n.value&&r.text?(e.openBlock(),e.createElementBlock("div",{key:0,style:e.normalizeStyle(o.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(r.text),5)):e.createCommentVNode("",!0)]))],64))}}),wo={class:"w-full relative"},_o={key:0,class:"text-[14px] font-medium text-gray-900 mb-2 flex items-center gap-1"},vo={class:"opacity-100"},Co={key:0,class:"text-red-500 text-[14px]"},Eo={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Bo=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(r){const t=r,n=e.computed(()=>typeof t.item?.label=="string"&&t.item.label?t.item.label:t.item?.ua||t.label||t.ua),o=e.computed(()=>!!n.value),l=e.computed(()=>!!t.item?.rules?.includes("required")),a=e.computed(()=>t.item?.info||"");return(s,c)=>(e.openBlock(),e.createElementBlock("div",wo,[o.value?(e.openBlock(),e.createElementBlock("div",_o,[e.createElementVNode("span",vo,e.toDisplayString(n.value),1),l.value?(e.openBlock(),e.createElementBlock("span",Co,"*")):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createBlock(tr,{key:1,text:a.value},null,8,["text"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(s.$slots,"default",e.mergeProps(s.$attrs,{class:{"opacity-60":r.item.disabled}})),r.error?(e.openBlock(),e.createElementBlock("span",Eo,e.toDisplayString(r.error),1)):e.createCommentVNode("",!0)]))}}),Vo={class:"w-full relative flex flex-row items-center gap-2"},So={key:0,class:"text-red-500 text-[14px]"},$o={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},No=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(r){const t=r,n=e.computed(()=>t.item?.label||t.label||t.ua),o=e.computed(()=>t.item?.info||""),l=e.computed(()=>t.columns??{container:12,label:3}),a=e.computed(()=>{const{container:d,label:f}=l.value;return!d||d<=0?0:Math.min(Math.max(f??0,0),d)/d}),s=e.computed(()=>t.item?.type==="html"||a.value<=0?!1:!!n.value),c=e.computed(()=>{if(!s.value)return{};const d=`${a.value*100}%`;return{flexBasis:d,maxWidth:d}}),i=e.computed(()=>{const{container:d,label:f}=l.value;if(!d||d<=0)return{};if(t.item?.type==="html")return{flexBasis:"100%",maxWidth:"100%"};if(!s.value)return{flexBasis:"100%",maxWidth:"100%"};const h=Math.max(d-Math.max(f??0,0),0)/d;if(!h)return{};const w=`${h*100}%`;return{flexBasis:w,maxWidth:w}});return(d,f)=>(e.openBlock(),e.createElementBlock("div",Vo,[s.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"text-sm text-gray-900 font-medium flex shrink-0 items-center gap-1",style:e.normalizeStyle(c.value)},[e.createTextVNode(e.toDisplayString(n.value)+" ",1),r.item?.rules?.includes("required")&&n.value?(e.openBlock(),e.createElementBlock("span",So,"*")):e.createCommentVNode("",!0),o.value?(e.openBlock(),e.createBlock(tr,{key:1,text:o.value},null,8,["text"])):e.createCommentVNode("",!0)],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"flex-1 min-w-0",style:e.normalizeStyle(i.value)},[e.renderSlot(d.$slots,"default",e.normalizeProps(e.guardReactiveProps(d.$attrs)))],4),r.error?(e.openBlock(),e.createElementBlock("span",$o,e.toDisplayString(r.error),1)):e.createCommentVNode("",!0)]))}}),Ao={class:"w-full relative"},Fo={key:0,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Do=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(r){return(t,n)=>(e.openBlock(),e.createElementBlock("div",Ao,[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(t.$attrs))),r.error?(e.openBlock(),e.createElementBlock("span",Fo,e.toDisplayString(r.error),1)):e.createCommentVNode("",!0)]))}}),Mo={class:"flex-1 min-w-0"},Lo={key:0,class:"text-sm font-medium text-slate-700 dark:text-slate-200 flex items-center gap-1"},To={class:"truncate"},Io={key:0,class:"text-red-500 text-[14px]"},Ro=["innerHTML"],Oo={key:0,class:"mt-1 text-xs text-red-500"},zo={default:Bo,horizontal:No,inline:Do,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(r){const t=r,n=e.ref("uk");e.computed(()=>(t.item??{})?.[n.value]??t.ua??t.label??"");const o=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;n.value=c||"uk"};return e.onMounted(()=>{try{typeof localStorage<"u"&&localStorage.locale&&(n.value=localStorage.locale)}catch{}window.addEventListener("storage",s)}),e.onUnmounted(()=>{window.removeEventListener("storage",s)}),(c,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["w-full relative",{"opacity-60":r.item?.disabled}])},[e.createElementVNode("div",{class:e.normalizeClass(["gap-2 md:flex-row md:items-center md:justify-between",[["switcher","native-select"].includes(r.item.type)?"flex flex-col":""]])},[e.createElementVNode("div",Mo,[r.ua||r.label?(e.openBlock(),e.createElementBlock("p",Lo,[e.createElementVNode("span",To,e.toDisplayString(r.item[n.value]||r.ua||r.label),1),l.value?(e.openBlock(),e.createElementBlock("span",Io,"*")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),o.value?(e.openBlock(),e.createElementBlock("p",{key:1,class:"text-xs text-slate-500 dark:text-slate-400",innerHTML:o.value},null,8,Ro)):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:e.normalizeClass(["w-full",["select","native-select"].includes(r.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",Oo,e.toDisplayString(a.value),1)):e.createCommentVNode("",!0)],2))}})};function Me(r){return{inputClass:e.computed(()=>{const n=`disabled:opacity-50 disabled:cursor-not-allowed outline-none focus:ring-2 focus:ring-ring focus:ring-${r?.primaryColor||"blue"}-500 border border-solid border-stone-200 rounded-md text-sm text-stone-800 placeholder:text-stone-400 `;return r?.size==="sm"?`${n}h-[32px]`:`${n}h-[38px]`})}}const Po=["placeholder","disabled"],jo=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(r){const t=r,{inputClass:n}=Me(t.style),o=e.useModel(r,"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=>o.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(n),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Po)),[[e.vModelText,o.value]])}}),Uo=["placeholder","disabled","maxlength","minlength"],Vt=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(r){const t=r,{inputClass:n}=Me(t.style),o=e.useModel(r,"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 o.value=="string"&&(o.value=o.value.trim())}return(d,f)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"text","onUpdate:modelValue":f[0]||(f[0]=h=>o.value=h),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",[r.customClass,e.unref(n),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,Uo)),[[e.vModelText,o.value]])}}),Ho=["placeholder","disabled","min","max"],nr=e.defineComponent({__name:"vs-input-number",props:e.mergeModels({min:{},max:{},style:{default:()=>({})},customClass:{},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,{inputClass:n}=Me(t.style),o=e.useModel(r,"modelValue"),l=e.computed(()=>!!t.disabled);return(a,s)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"number",step:"any","onUpdate:modelValue":s[0]||(s[0]=c=>o.value=c),placeholder:r.placeholder,disabled:l.value,class:e.normalizeClass(["py-1.5 px-3 block w-full bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"},min:r.min,max:r.max},null,10,Ho)),[[e.vModelText,o.value]])}}),qo={class:"flex items-center gap-[4px]"},Ko=["value","id","disabled"],Go=["for"],Wo={class:"text-[14px] text-gray-700 flex items-center dark:text-neutral-400"},Yo=e.defineComponent({__name:"vs-checkbox-default",props:{value:{default:""},label:{default:""},disabled:{type:Boolean,default:!1},id:{},modelValue:{default:""},info:{},error:{}},emits:["update:modelValue"],setup(r,{emit:t}){const n=t,o=r,l=e.computed({get:()=>o.modelValue,set:s=>n("update:modelValue",s)}),a=e.computed(()=>!!o.disabled);return(s,c)=>(e.openBlock(),e.createElementBlock("div",qo,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",value:r.value,"onUpdate:modelValue":c[0]||(c[0]=i=>l.value=i),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:r.id,disabled:a.value},null,10,Ko),[[e.vModelCheckbox,l.value]]),e.createElementVNode("label",{for:r.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",r.error?"border-red-600":""]])},[e.createVNode(e.unref(P.Check),{class:"h-4 w-4"})],2),e.createElementVNode("span",Wo,[e.renderSlot(s.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(r.label),1)])])],10,Go)]))}}),Zo=["name","value","disabled"],Xo={class:"flex items-center gap-[6px] text-[14px]"},Jo={key:0,class:"text-[16px]"},Qo=["src"],el=e.defineComponent({__name:"vs-checkbox-buttons",props:{value:{type:[String,Number,Boolean],default:""},label:{default:""},modelValue:{default:""},disabled:{type:Boolean},id:{},icon:{},imgUrl:{},style:{}},emits:["update:modelValue"],setup(r,{emit:t}){const n=r,o=t,l=e.computed({get:()=>n.modelValue,set:c=>{o("update:modelValue",c)}}),a=e.computed(()=>Array.isArray(l.value)?l.value.includes(n.value):l.value===!0||l.value===n.value),s=e.computed(()=>n.style?.size==="xs"?"p-1.5 text-xs":n.style?.size==="lg"?"p-3.5 text-[20px]":"p-2.5 text-xs");return(c,i)=>(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:r.id,value:r.value,"onUpdate:modelValue":i[0]||(i[0]=d=>l.value=d),disabled:r.disabled},null,8,Zo),[[e.vModelCheckbox,l.value]]),e.createElementVNode("span",Xo,[r.icon||r.imgUrl?(e.openBlock(),e.createElementBlock("span",Jo,[r.icon?(e.openBlock(),e.createElementBlock("i",{key:0,class:e.normalizeClass(r.icon)},null,2)):e.createCommentVNode("",!0),r.imgUrl?(e.openBlock(),e.createElementBlock("img",{key:1,src:r.imgUrl,width:"16",height:"16",alt:"icon"},null,8,Qo)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(c.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(r.label),1)])])],2))}}),tl={class:"flex items-center"},wn=e.defineComponent({__name:"vs-input-checkbox-item",props:{value:{default:""},label:{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(r,{emit:t}){const n=r,o=t,l=`radio-${Math.floor(Math.random()*1e4)}`,a=e.computed({get:()=>Array.isArray(n.modelValue)?Array.isArray(n.modelValue)&&n.modelValue.includes(n.value):n.modelValue,set:c=>{if(Array.isArray(n.modelValue)){let i=[...n.modelValue];c?i.includes(n.value)||i.push(n.value):i=i.filter(d=>d!==n.value),o("update:modelValue",i)}else o("update:modelValue",c)}}),s=e.ref(`vs-checkbox-${n.view||"default"}`);return(c,i)=>(e.openBlock(),e.createElementBlock("div",tl,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value==="vs-checkbox-buttons"?e.unref(el):e.unref(Yo)),{value:r.value,label:r.label,info:r.option?.info,disabled:r.disabled,modelValue:a.value,"onUpdate:modelValue":i[0]||(i[0]=d=>a.value=d),id:l,icon:r.icon,imgUrl:r.imgUrl,style:e.normalizeStyle(r.style),error:r.error},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.label),1)]),_:1},8,["value","label","info","disabled","modelValue","icon","imgUrl","style","error"]))]))}}),nl={key:0,class:"flex items-start gap-x-1"},rl={key:0,class:"text-red-500 text-[14px]"},ol=["title"],ll=["disabled"],_n=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(r){const t=r,n=e.useModel(r,"modelValue");return(o,l)=>t.view==="checkbox"?(e.openBlock(),e.createElementBlock("div",nl,[e.createVNode(wn,{modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=a=>n.value=a),label:r.text,error:r.error||""},null,8,["modelValue","label","error"]),r.rules?.includes("required")?(e.openBlock(),e.createElementBlock("span",rl,"*")):e.createCommentVNode("",!0),r.i?(e.openBlock(),e.createElementBlock("button",{key:1,class:"cursor-pointer",title:r.i,onClick:l[1]||(l[1]=e.withModifiers(()=>{},["prevent"]))},[e.createVNode(e.unref(P.Info),{class:"h-4 w-4 text-gray-500"})],8,ol)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:e.normalizeClass(["inline-flex h-5 w-9 shrink-0 px-[2px] cursor-pointer items-center rounded-full shadow-sm disabled:cursor-not-allowed disabled:opacity-50",[n.value?`bg-${r.style?.primaryColor||"blue"}-500`:"bg-stone-200",r.customClass]]),disabled:r.disabled,onClick:l[2]||(l[2]=a=>n.value=!n.value)},[e.createElementVNode("span",{"data-state":"checked",class:e.normalizeClass(["pointer-events-none block h-4 w-4 rounded-full bg-white shadow-lg ring-0 transition-transform",[n.value?"translate-x-4":"translate-x-0"]])},null,2)],10,ll))}}),al=["id","innerHTML"],vn=e.defineComponent({__name:"vs-input-static",props:{text:{default:""},html:{default:""},style:{},customClass:{default:""},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},setup(r){return(t,n)=>(e.openBlock(),e.createElementBlock("div",{id:r.name,class:e.normalizeClass(["text-gray-900",r.customClass]),innerHTML:r.html?r.html:r.text},null,10,al))}}),sl=["placeholder","disabled","name"],Cn=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(r){const t=r,{inputClass:n}=Me(t.style),o=e.useModel(r,"modelValue"),l=e.ref(null);let a=null;function s(c){const i={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},d=new Set;let f=!1;for(let w=0;w<c.length;w+=1){const p=c[w];p==="{"?f=!0:p==="}"?f=!1:f&&d.add(p)}const h={};return Object.keys(i).forEach(w=>{d.has(w)||(h[w]=i[w])}),{mask:c,definitions:h,lazy:!1}}return e.onMounted(async()=>{if(l.value){const{default:c}=await Promise.resolve().then(()=>Hn),i=s(t.mask||"");a=c(l.value,i),a.on("accept",()=>{o.value=t.unmask?a.unmaskedValue:a.value}),a.on("complete",()=>{o.value=t.unmask?a.unmaskedValue:a.value}),a.value=o.value!=null?String(o.value):""}}),e.onBeforeUnmount(()=>{a?.destroy()}),e.watch(()=>t.mask,c=>{if(a){const i=s(c||"");a.updateOptions(i)}}),e.watch(o,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:r.placeholder,disabled:r.disabled,name:r.name,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"}},null,10,sl))}}),il={class:"relative w-full bg-white rounded-lg"},cl={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},dl=["placeholder","disabled"],En=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(r){const t=r,{inputClass:n}=Me(t.style),o=e.useModel(r,"modelValue");return(l,a)=>(e.openBlock(),e.createElementBlock("div",il,[e.createElementVNode("div",cl,[e.createVNode(e.unref(P.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=>o.value=s),placeholder:r.placeholder,disabled:r.disabled,class:e.normalizeClass(["!pl-8 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,dl),[[e.vModelText,o.value]])]))}}),ul={class:"relative w-full bg-white rounded-lg"},pl={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},fl=["value","placeholder","disabled"],Bn=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:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,{inputClass:n}=Me(t.style),o=e.useModel(r,"modelValue"),l=e.computed(()=>o.value?o.value.startsWith("+")?o.value.slice(1):o.value:""),a=c=>{let{value:i}=c.target;i=i.replace(/^\+/,""),o.value=i?`+${i}`:""},s=c=>{const i=c,{data:d,inputType:f}=i;f&&f.startsWith("delete")||d&&/\D/.test(d)&&i.preventDefault()};return e.watch(()=>o.value,c=>{c&&!c.startsWith("+")?o.value=`+${c.replace(/^\+/,"")}`:c||(o.value="")},{immediate:!0}),(c,i)=>(e.openBlock(),e.createElementBlock("div",ul,[e.createElementVNode("div",pl,[e.createVNode(e.unref(P.Phone),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),i[0]||(i[0]=e.createElementVNode("div",{class:"absolute bottom-2/4 translate-y-2/4 left-[30px] text-gray-500 select-none pointer-events-none"}," + ",-1)),e.createElementVNode("input",{type:"tel",value:l.value,onInput:a,onBeforeinput:s,pattern:"^\\+[1-9]\\d{1,14}$",maxlength:"15",placeholder:r.placeholder,disabled:r.disabled,class:e.normalizeClass(["!pl-10 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,fl)]))}}),ml=["value","disabled"],hl={class:"text-[13px] text-gray-700"},gl=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:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useModel(r,"modelValue"),o=e.computed(()=>!!t.disabled);return(l,a)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex items-center gap-0",[t.customClass,o.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":a[0]||(a[0]=s=>n.value=s),type:"radio",value:t.value,disabled:o.value,class:"hidden"},null,8,ml),[[e.vModelRadio,n.value]]),e.createElementVNode("span",{class:e.normalizeClass(["w-[16px] shrink-0 h-[16px] border rounded-full flex items-center justify-center mr-[10px]",[`border-${t.style?.primaryColor||"blue"}-500`,o.value?"opacity-50 cursor-not-allowed":""]])},[n.value==t.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["w-[12px] h-[12px] shrink-0 rounded-full",[`bg-${t.style?.primaryColor||"blue"}-500`]])},null,2)):e.createCommentVNode("",!0)],2),e.createElementVNode("span",hl,e.toDisplayString(t.text),1)],2))}}),yl=["value","disabled"],bl={class:"text-[13px] text-gray-700"},kl={"vs-input-radio-default":gl,"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:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useModel(r,"modelValue"),o=e.computed(()=>!!t.disabled);return(l,a)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex items-center border rounded-lg px-2 py-1",[n.value==t.value?`ring-2 ring-ring ring-${t.style?.primaryColor||"blue"}-500`:"",t.customClass,o.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":a[0]||(a[0]=s=>n.value=s),type:"radio",value:t.value,disabled:o.value,class:"hidden"},null,8,yl),[[e.vModelRadio,n.value]]),e.createElementVNode("span",bl,e.toDisplayString(t.text),1)],2))}})},Vn=e.defineComponent({__name:"vs-input-radio",props:e.mergeModels({options:{},position:{default:"vertical"},view:{default:"default"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useModel(r,"modelValue"),o=e.computed(()=>kl[`vs-input-radio-${t.view}`]);return(l,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([r.position==="horizontal"?"flex items-center flex-wrap gap-2":""])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.options,s=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.value),e.mergeProps({key:s?.id,text:s.text,value:s.id.toString(),checked:n.value===s.id,modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=c=>n.value=c)},{ref_for:!0},l.$attrs),null,16,["text","value","checked","modelValue"]))),128))],2))}}),xl={key:1,class:"w-full flex flex-col gap-4"},wl={key:0,class:"text-sm font-medium text-muted-foreground my-2"},_l="Без категорії",vl=e.defineComponent({__name:"vs-input-checkbox",props:{options:{default:()=>[]},position:{default:"vertical"},slots:{default:null},colSpan:{default:0},data:{},view:{},group:{default:void 0},values:{default:()=>[]},style:{},customClass:{},disabled:{type:Boolean},modelValue:{default:!1},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(r,{emit:t}){const n=r,o=t,l=e.ref([]),a=e.reactive({}),s=p=>p?.value||p?.id||p?.text||p,c=p=>p.text||String(p),i=p=>`lg:col-span-${p||12}`,d=e.computed(()=>[n.position==="vertical"?"flex flex-col":"",n.colSpan?"grid":"flex justify-start"]),f=p=>p==null||p===""?null:typeof p=="string"||typeof p=="number"?p:String(p),h=e.computed(()=>{if(!n.group)return[];const p=new Map;l.value.forEach(_=>{const k=_[n.group],x=f(k);p.has(x)||p.set(x,[]),p.get(x)?.push(_)});const u=[];n.values?.length&&n.values.forEach(_=>{const k=f(_);u.push(k)});const g=new Set,y=_=>{const k=p.get(_)||[];if(!k.length)return null;const x=_===null?"group-null":`group-${String(_)}`,S=_===null?_l:String(_);return g.add(_),{key:x,label:S,options:k}},C=[];return u.forEach(_=>{const k=y(_);k&&C.push(k)}),p.forEach((_,k)=>{if(g.has(k))return;const x=y(k);x&&C.push(x)}),C}),w=async()=>{try{const p=await fetch(`/api/suggest/${n.data}`).then(u=>u.json());l.value=p?.data||p}catch(p){console.error(p)}};return e.watch(()=>n.modelValue,p=>{if(typeof p=="boolean"&&l.value.length===1){const u=s(l.value[0]);a[u]=p}else if(Array.isArray(p)){const u=new Set(p);l.value.forEach(g=>{if(!g.disabled){const y=s(g);a[y]=u.has(y)}})}},{immediate:!0}),e.watch(a,()=>{if(!l.value.length){o("update:modelValue",null);return}const p=Object.entries(a).filter(([,u])=>u).map(([u])=>u);o("update:modelValue",p.length===0?[]:p)},{deep:!0}),e.onMounted(()=>{if(n.data)w().then(()=>{if(typeof n.modelValue=="boolean"&&l.value.length===1){const p=s(l.value[0]);a[p]=n.modelValue}else if(Array.isArray(n.modelValue)){const p=new Set(n.modelValue);l.value.forEach(u=>{if(!u.disabled){const g=s(u);a[g]=p.has(g)}})}});else if(l.value=n.options,typeof n.modelValue=="boolean"&&l.value.length===1){const p=s(l.value[0]);a[p]=n.modelValue}else if(Array.isArray(n.modelValue)){const p=new Set(n.modelValue);l.value.forEach(u=>{if(!u.disabled){const g=s(u);a[g]=p.has(g)}})}}),(p,u)=>n.group?(e.openBlock(),e.createElementBlock("div",xl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,g=>(e.openBlock(),e.createElementBlock("div",{key:g.key,class:"flex flex-col gap-2"},[g.label?(e.openBlock(),e.createElementBlock("span",wl,e.toDisplayString(g.label),1)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-0 w-full gap-[12px]",d.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.options,y=>(e.openBlock(),e.createBlock(wn,{modelValue:a[s(y)],"onUpdate:modelValue":C=>a[s(y)]=C,value:s(y),class:e.normalizeClass(i(r.colSpan)),disabled:n.disabled||y.disabled,label:c(y),key:`${g.key}-${s(y)}`,icon:y?.icon,imgUrl:y?.imgUrl,option:y,view:r.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","icon","imgUrl","option","view"]))),128))],2)]))),128))])):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["p-0 w-full gap-[10px]",d.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,g=>(e.openBlock(),e.createBlock(wn,{modelValue:a[s(g)],"onUpdate:modelValue":y=>a[s(g)]=y,value:s(g),class:e.normalizeClass(i(r.colSpan)),disabled:n.disabled||g.disabled,label:c(g),key:s(g),icon:g?.icon,imgUrl:g?.imgUrl,option:g,view:r.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","icon","imgUrl","option","view"]))),128))],2))}}),me=(r,t)=>{const n=r.__vccOpts||r;for(const[o,l]of t)n[o]=l;return n},rr=me(vl,[["__scopeId","data-v-cf0478ce"]]),Cl=["type","placeholder","disabled"],El=e.defineComponent({__name:"vs-input-date1",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{},mode:{default:"date"}},emits:["update:modelValue"],setup(r,{emit:t}){const n=r;function o(f){return f?n.mode==="datetime"?(f.includes("T")?f:null)||f+(f.includes(" ")?"":"T00:00"):f?.split(" ")[0]:null}const{inputClass:l}=Me(n.style),a=t,s=e.computed({get:()=>o(n.modelValue),set:f=>a("update:modelValue",f)}),c=e.computed(()=>n.mode==="datetime"?"datetime-local":n.mode),i=e.computed(()=>!!n.disabled),d=e.computed(()=>n.placeholder??"");return(f,h)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:c.value,"onUpdate:modelValue":h[0]||(h[0]=w=>s.value=w),placeholder:d.value,disabled:i.value,ref:"date",class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[r.modelValue?"":"text-opacity-50",e.unref(l)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,Cl)),[[e.vModelDynamic,s.value]])}}),Bl=(r,t)=>{if(!t||!Object.keys(t).length)return r;const[n,o=""]=r.split("?"),l=new URLSearchParams(o);Object.entries(t).forEach(([s,c])=>{c==null||c===""||l.set(s,String(c))});const a=l.toString();return a?`${n}?${a}`:n},or=async(r,t={})=>{try{const n=new FormData;n.append("unique","true"),n.append("file",r);const{api:o,id:l="1",form:a="form",table:s="table",customParams:c}=t,i=o||`/file/upload/uploads?id=${l||""}&form=${a||""}&table=${s||""}`,d=Bl(i,c);return(await fetch(d,{method:"POST",body:n}).then(h=>h.json()))?.result}catch(n){return de.notify({type:"error",title:"Помилка!",message:"Сталась помилка під час завантаження файлу",position:"right-bottom"}),console.error("Сталась помилка завантаження файлу",n),null}},Vl=async r=>{try{return await fetch(`file/delete${r}`),!0}catch(t){return console.error(t),!1}},lr=async r=>{try{const t=await fetch(`/file/download/files/uploads${r}`),n=await t.arrayBuffer(),o=t.headers["content-type"],l=new TextDecoder("utf-8").decode(n),a=new Blob([l],{type:o}),s=document.createElement("a");s.setAttribute("download",r),s.href=window.URL.createObjectURL(a),s.click()}catch(t){console.error(t.message)}},Sl=r=>{if(!r)return"";const t=r?.split(".");return t[t.length-1]},$l=r=>{const t=Sl(r),n={imageFormat:["tiff","jpg","jpeg","png","svg","ico","webp"],sheetsFormat:["xls","csv","xlsx"],archivesFormat:["zip","rar"],textsFormat:["json","geojson","txt","yml","yaml","shp"],documentsFormat:["pdf"]};return n.imageFormat.includes(t)?"img":n.sheetsFormat.includes(t)?P.Table:n.textsFormat.includes(t)?P.FileCode:n.documentsFormat.includes(t)?P.FileText:n.archivesFormat.includes(t)?P.FileArchive:P.FileText},Nl=["title"],Al={class:"absolute hidden top-0 right-0 flex items-center gap-x-2 w-full h-full justify-center"},Sn=me(e.defineComponent({__name:"vs-input-file-list-item",props:e.mergeModels({format:{},multiple:{type:Boolean},max_size:{},api:{},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{value:{},valueModifiers:{},item:{},itemModifiers:{}}),emits:["update:value","update:item"],setup(r){const t=e.useModel(r,"value"),n=e.useModel(r,"item"),o=r;return(l,a)=>(e.openBlock(),e.createElementBlock("div",{title:n.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($l)(n.value)),{src:n.value,alt:"file",class:"w-full h-full object-cover cursor-pointer",onClick:a[0]||(a[0]=s=>e.unref(lr)(n.value))},null,8,["src"])),e.createElementVNode("div",Al,[e.createElementVNode("button",{type:"button",onClick:a[1]||(a[1]=s=>{e.unref(Vl)(n.value),t.value=o.multiple?t.value?.filter(c=>c!==n.value):""}),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(P.Trash2),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:a[2]||(a[2]=s=>e.unref(lr)(n.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(P.Download),{class:"w-4 h-4"})])])],8,Nl))}}),[["__scopeId","data-v-b458bb29"]]),Fl={class:"flex items-center gap-x-2"},Dl=["accept","multiple","disabled"],Ml={key:1,class:"flex items-center flex-wrap gap-2"},Ll={key:1,class:"loader"},Tl={key:1,class:"loader"},ar=me(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(r,{emit:t}){const n=r,o=e.useModel(r,"modelValue"),l=t,a=e.ref(null),s=e.ref(!1),c=e.inject("values"),i=e.computed(()=>n.format?n.format.split(",").map(_=>_.trim().toLowerCase()).filter(Boolean):[]),d=_=>Array.isArray(o.value)&&o.value[_]||"",f=_=>{if(n.max_size&&_.size>n.max_size*1024*1024){const k=(_.size/1048576).toFixed(2);return de.notify({type:"error",title:"Помилка!",message:`Файл "${_.name}" занадто великий. Максимальний розмір: ${n.max_size} МБ, розмір файлу: ${k} МБ`,position:"right-bottom"}),!1}return!0},h=_=>{if(!i.value.length)return!0;const k=`.${_.name.split(".").pop()?.toLowerCase()||""}`,x=i.value.includes(k);return x||de.notify({type:"error",title:"Помилка!",message:`Неприпустимий формат файлу "${_.name}". Дозволені формати: ${i.value.join(", ")}`,position:"right-bottom"}),x},w=e.computed(()=>{const _={},k=[];if(!n.customParams?.length)return{params:_,missingSources:k};const x=c?.value??{};return n.customParams.forEach(S=>{if(!S)return;const[L,N]=S.split("="),V=L?.trim(),A=N?.trim();if(!V||!A)return;const E=x[A];if(E==null||E===""){k.push(A);return}_[V]=E}),{params:_,missingSources:k}}),p=()=>{const{params:_}=w.value;return{api:n.api,customParams:Object.keys(_).length?_:void 0}},u=()=>{const _=w.value.missingSources;if(!_.length)return!0;const k=_.join(", ");return de.notify({type:"warning",title:"Заповніть поля",message:`Поля (${k}) необхідні для завантаження файлу`,position:"right-bottom"}),!1},g=_=>{de.notify({type:"error",title:"Помилка завантаження",message:_||"Не вдалося завантажити файл. Спробуйте ще раз.",position:"right-bottom"})},y=()=>{n.disabled||s.value||u()&&a.value?.click()},C=async _=>{const{files:k}=_.target;if(!k||k.length===0)return;if(!u()){a.value&&(a.value.value="");return}const x=Array.from(k);if(n.max_size&&x.filter(N=>!f(N)).length>0){a.value&&(a.value.value="");return}if(x.filter(L=>!h(L)).length>0){a.value&&(a.value.value="");return}s.value=!0;try{if(n.multiple){const L=Array.from(k).map(async E=>await or(E,p())),N=await Promise.all(L),A=N.filter(E=>E!==null).map(E=>E?.file_path).filter(Boolean);if(A.length===0){g();return}A.length<N.length&&g("Деякі файли не вдалося завантажити. Перевірте їх та спробуйте знову."),o.value=[...o.value||[],...A],l("change",o.value)}else{const L=k[0],N=await or(L,p());if(!N?.file_path){g();return}o.value=N?.file_path,l("change",o.value||"")}}catch(L){const N=L?.message||void 0;g(N)}finally{s.value=!1,a.value&&(a.value.value="")}};return(_,k)=>(e.openBlock(),e.createElementBlock("div",Fl,[e.createElementVNode("input",{class:"hidden",ref_key:"fileInput",ref:a,type:"file",accept:n.format,multiple:r.multiple,onChange:C,disabled:s.value||r.disabled},null,40,Dl),!r.multiple&&o.value?(e.openBlock(),e.createBlock(Sn,{key:0,item:o.value,"onUpdate:item":k[0]||(k[0]=x=>o.value=x),value:o.value,"onUpdate:value":k[1]||(k[1]=x=>o.value=x)},null,8,["item","value"])):r.multiple?(e.openBlock(),e.createElementBlock("div",Ml,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(x,S)=>(e.openBlock(),e.createBlock(Sn,{multiple:r.multiple,key:S,value:o.value,"onUpdate:value":k[2]||(k[2]=L=>o.value=L),item:d(S)},null,8,["multiple","value","item"]))),128)),e.createElementVNode("div",{onClick:y,class:e.normalizeClass(["relative h-[120px] w-[120px] border text-gray-300 hover:text-blue-500 border-dashed border-[#CFD9E0] rounded-lg flex items-center justify-center transition-all duration-300",r.disabled||s.value?"opacity-50 cursor-not-allowed":"cursor-pointer hover:border-blue-500 hover:bg-blue-50"])},[s.value?(e.openBlock(),e.createElementBlock("div",Ll)):(e.openBlock(),e.createBlock(e.unref(P.Plus),{key:0,class:"h-4 w-4"}))],2)])):e.createCommentVNode("",!0),r.multiple?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:2,onClick:y,class:e.normalizeClass([r.disabled||s.value?"opacity-50 cursor-not-allowed":"cursor-pointer hover:border-blue-500","relative h-[120px] w-[120px] border text-gray-300 hover:text-blue-500 border-dashed border-gray-300 rounded-lg flex items-center justify-center cursor-pointer hover:border-blue-500 transition-all duration-300 hover:bg-blue-50"])},[s.value?(e.openBlock(),e.createElementBlock("div",Tl)):(e.openBlock(),e.createBlock(e.unref(P.Plus),{key:0,class:"h-4 w-4"}))],2))]))}}),[["__scopeId","data-v-4605f83b"]]),Il={class:"vs-input-file2 flex flex-col gap-4"},Rl={class:"flex items-center gap-x-2"},Ol=["accept","disabled"],zl={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"},Pl={key:0,class:"rounded-lg border border-[#CFD9E0] bg-white p-4 shadow-sm"},jl={class:"flex items-center justify-between text-sm"},Ul={class:"truncate pr-4"},Hl={class:"font-medium text-slate-800 truncate"},ql={class:"text-slate-500"},Kl={class:"text-slate-500 whitespace-nowrap"},Gl={class:"mt-3 h-2 rounded-full bg-slate-100 overflow-hidden"},Wl={class:"mt-3 flex flex-wrap gap-2 text-sm"},Yl={key:0,class:"mt-2 text-sm text-rose-600"},Zl=e.defineComponent({__name:"vs-input-file2",props:e.mergeModels({format:{},max_size:{},api:{},chunkSize:{default:5*1024*1024},subdir:{default:""},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useModel(r,"modelValue"),o=e.ref(null),l=e.ref(null),a=e.ref(""),s=e.ref(0),c=e.ref(!1),i=e.ref(""),d=e.ref(null),f=e.inject("values"),h=e.computed(()=>t.format?t.format.split(",").map(M=>M.trim().toLowerCase()).filter(Boolean):[]),w=e.computed(()=>!l.value||!l.value.size?0:Math.min(100,Math.round(s.value/l.value.size*100))),p=e.computed(()=>l.value?`${y(s.value)} / ${y(l.value.size)}`:""),u=e.computed(()=>t.disabled?"opacity-50 cursor-not-allowed":c.value?"cursor-default text-blue-500":"cursor-pointer hover:border-blue-500 hover:bg-blue-50 hover:text-blue-500"),g=()=>{t.disabled||c.value||x()&&o.value?.click()},y=M=>{if(!Number.isFinite(M))return"0 B";const R=["B","KB","MB","GB"];let D=0,I=M;for(;I>=1024&&D<R.length-1;)I/=1024,D+=1;return`${I.toFixed(D===0?0:1)} ${R[D]}`},C=M=>{if(!t.max_size)return!0;const R=t.max_size*1024*1024;return M.size>R?(de.notify({type:"error",title:"Файл занадто великий",message:`Максимальний розмір ${t.max_size} МБ`,position:"right-bottom"}),!1):!0},_=M=>{if(!h.value.length)return!0;const R=`.${M.name.split(".").pop()?.toLowerCase()||""}`;return h.value.includes(R)?!0:(de.notify({type:"error",title:"Непідтримуваний формат",message:`Дозволені формати: ${h.value.join(", ")}`,position:"right-bottom"}),!1)},k=e.computed(()=>{const M={},R=[];if(!t.customParams?.length)return{params:M,missing:R};const D=f?.value??{};return t.customParams.forEach(I=>{if(!I)return;const[T,U]=I.split("="),H=T?.trim(),W=U?.trim();if(!H||!W)return;const Q=D[W];Q==null||Q===""?R.push(W):M[H]=Q}),{params:M,missing:R}}),x=()=>k.value.missing.length?(de.notify({type:"warning",title:"Заповніть поля",message:`Потрібні значення: ${k.value.missing.join(", ")}`,position:"right-bottom"}),!1):!0,S=M=>{const R=M.target,D=R.files?.[0];if(D){if(!x()){R.value="";return}if(!C(D)||!_(D)){R.value="";return}l.value=D,s.value=0,a.value="",i.value=""}},L=async()=>{if(!l.value){g();return}try{i.value="";const M={id:a.value||"",fileName:l.value.name,subdir:t.subdir,size:l.value.size,...k.value.params},R=await fetch("/api/file/upload2/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(M)});if(!R.ok)throw new Error("Не вдалося ініціалізувати завантаження");const D=await R.json();a.value=D.id||a.value,s.value=D.uploaded||0,await N()}catch(M){i.value=M?.message||"Помилка при старті завантаження"}},N=async()=>{if(!(!l.value||!a.value)){c.value=!0;try{for(;s.value<l.value.size;){const M=s.value,R=Math.min(M+t.chunkSize,l.value.size),D=l.value.slice(M,R);d.value=new AbortController;const I=await fetch(`/api/file/upload2/${a.value}`,{method:"PATCH",headers:{"Content-Range":`bytes ${M}-${R-1}/${l.value.size}`},body:D,signal:d.value.signal});if(!I.ok)throw new Error("Помилка завантаження частини");const T=await I.json().catch(()=>({}));if(T.uploaded!=null?s.value=Number(T.uploaded):s.value=R,T.finished||s.value>=l.value.size){c.value=!1,n.value=T.file_path||T.url||a.value,de.notify({type:"success",title:"Файл завантажено",message:l.value.name,position:"right-bottom"}),$();return}}}catch(M){if(M?.name==="AbortError")return;i.value=M?.message||"Помилка при завантаженні",c.value=!1}finally{d.value=null,c.value=!1}}},V=()=>{c.value&&(d.value?.abort(),d.value=null,c.value=!1)},A=async()=>{if(l.value){if(!a.value){await L();return}await N()}},E=()=>{d.value?.abort(),d.value=null,$()},$=()=>{const M=o.value;M&&(M.value=""),l.value=null,a.value="",s.value=0,i.value=""};return(M,R)=>(e.openBlock(),e.createElementBlock("div",Il,[e.createElementVNode("div",Rl,[e.createElementVNode("input",{ref_key:"fileInput",ref:o,type:"file",class:"hidden",accept:t.format,disabled:c.value||t.disabled,onChange:S},null,40,Ol),n.value?(e.openBlock(),e.createBlock(Sn,{key:0,item:n.value,"onUpdate:item":R[0]||(R[0]=D=>n.value=D),value:n.value,"onUpdate:value":R[1]||(R[1]=D=>n.value=D)},null,8,["item","value"])):(e.openBlock(),e.createElementBlock("div",{key:1,onClick:g,class:e.normalizeClass(["relative h-[120px] w-[120px] border text-gray-300 border-dashed border-[#CFD9E0] rounded-lg flex items-center justify-center transition-all duration-300",u.value])},[c.value?(e.openBlock(),e.createElementBlock("div",zl,[R[2]||(R[2]=e.createElementVNode("div",{class:"loader"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(w.value)+"%",1)])):(e.openBlock(),e.createBlock(e.unref(P.Plus),{key:1,class:"h-4 w-4"}))],2))]),l.value&&!n.value?(e.openBlock(),e.createElementBlock("div",Pl,[e.createElementVNode("div",jl,[e.createElementVNode("div",Ul,[e.createElementVNode("div",Hl,e.toDisplayString(l.value.name),1),e.createElementVNode("div",ql,e.toDisplayString(y(l.value.size)),1)]),e.createElementVNode("div",Kl,e.toDisplayString(p.value),1)]),e.createElementVNode("div",Gl,[e.createElementVNode("div",{class:"h-full rounded-full bg-blue-500 transition-all duration-300",style:e.normalizeStyle({width:`${w.value}%`})},null,4)]),e.createElementVNode("div",Wl,[!c.value&&s.value>0&&s.value<(l.value?.size||0)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"rounded border border-slate-300 px-3 py-1",onClick:A}," Resume ")):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"rounded border border-slate-300 px-3 py-1",onClick:V}," Pause ")):e.createCommentVNode("",!0),!c.value&&s.value===0?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",class:"rounded border border-slate-300 px-3 py-1",onClick:L}," Upload ")):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"rounded border border-rose-200 px-3 py-1 text-rose-600",onClick:E}," Cancel ")]),i.value?(e.openBlock(),e.createElementBlock("p",Yl,e.toDisplayString(i.value),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]))}}),$n=me(Zl,[["__scopeId","data-v-12c3bd36"]]),Xl={class:"flex items-center justify-center h-[30px] w-[30px]"},Jl={class:"max-w-[55vw]"},Ql={class:"text-sm font-semibold text-gray-800 truncate dark:text-neutral-200"},ea={class:"flex items-center text-xs text-gray-500 truncate dark:text-neutral-500"},ta={class:"px-[5px]"},na={class:""},Gt=e.defineComponent({__name:"vs-widget-file-info",props:{item:{default:null}},setup(r){const t=r,n=e.computed(()=>{try{return new Date(t.item.cdate).toLocaleDateString("uk-UA",{day:"2-digit",month:"long",year:"numeric"})}catch{return""}});function o(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",Xl,[e.createVNode(e.unref(P.FileText),{class:"icon icon-tabler icons-tabler-outline icon-tabler-file h-4 w-4"})]),e.createElementVNode("div",Jl,[e.createElementVNode("p",Ql,e.toDisplayString(r.item?.uploaded_name),1),e.createElementVNode("p",ea,[e.createElementVNode("span",null,e.toDisplayString(r.item?.username),1),e.withDirectives(e.createElementVNode("span",ta,"|",512),[[e.vShow,r.item?.username]]),e.createElementVNode("span",null,e.toDisplayString(n.value),1),a[0]||(a[0]=e.createElementVNode("span",{class:"px-[5px]"},"|",-1)),e.createElementVNode("span",na,e.toDisplayString(o(r.item?.size)),1)])])],64))}}),ra={class:"p-3 relative group flex items-center gap-x-3 border border-gray-200 bg-white rounded-md w-full"},oa={key:0,class:"flex w-full gap-x-3 items-center"},la={key:1,class:"flex gap-x-3 w-full items-center"},aa={key:2,class:"flex gap-x-3 w-full items-center"},sa=["href"],ia={key:3,class:"flex gap-x-3 w-full items-center"},ca={class:"lg:absolute lg:top-3 lg:end-1 opacity-100"},da={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"},ua={class:"inline-block"},pa={class:"inline-block"},fa=e.defineComponent({__name:"vs-widget-file-item",props:{item:{default:null},index:{default:0},prefix:{default:"/api"}},emits:["update","openModal","openLightbox"],setup(r,{emit:t}){const n=r,o=t;function l(f){return["pdf","json"].includes(f.ext)}function a(f){return["ppt","pptx","doc","docx","xls","xlsx"].includes(f.ext)}function s(f){const h=document.createElement("a");h.setAttribute("download",f?.uploaded_name),h.href=f?.file_path,h.click()}async function c(){try{await fetch(`${n.prefix}/widget/file/${n.item.entity_id}/${n.item.file_id}`),o("update")}catch(f){console.error(f)}}function i(){o("openModal",{title:"Ви впевнені?",message:"Ви впевнені, що хочете видалити цей файл?",confirmButtonText:"Так, я впевнена/ий",cancelButtonText:"Скасувати",confirm:c,updateListOnConfirm:!0})}function d(f){(n.item.ext==="jpg"||n.item.ext==="png")&&o("openLightbox",{item:n.item,index:f})}return(f,h)=>(e.openBlock(),e.createElementBlock("div",ra,[r.item.ext==="jpg"||r.item.ext==="png"?(e.openBlock(),e.createElementBlock("div",oa,[e.createElementVNode("div",{class:"max-w-[55vw] cursor-pointer flex gap-x-3 w-full items-center",onClick:h[0]||(h[0]=w=>d(r.index))},[e.createVNode(Gt,{item:r.item},null,8,["item"])])])):l(r.item)?(e.openBlock(),e.createElementBlock("div",la,[e.createVNode(Gt,{item:r.item},null,8,["item"])])):a(r.item)?(e.openBlock(),e.createElementBlock("div",aa,[e.createElementVNode("a",{href:`/api/file-preview?id=${r.item.file_id}`,target:"_blank",class:"flex gap-x-3 w-full items-center"},[e.createVNode(Gt,{item:r.item},null,8,["item"])],8,sa)])):(e.openBlock(),e.createElementBlock("div",ia,[e.createVNode(Gt,{item:r.item},null,8,["item"])])),e.createElementVNode("div",ca,[e.createElementVNode("div",da,[e.createElementVNode("div",ua,[e.createElementVNode("button",{class:"inline-flex p-[6px] justify-center items-center gap-x-2 rounded-lg border border-transparent text-gray-500 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none dark:text-neutral-400 focus:outline-none focus:bg-gray-100 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",onClick:h[1]||(h[1]=w=>s(r.item))},[e.createVNode(e.unref(P.Download),{class:"h-4 w-4"})])]),h[3]||(h[3]=e.createElementVNode("div",{class:"w-px h-5 mx-1 bg-gray-200 dark:bg-neutral-700"},null,-1)),e.createElementVNode("div",pa,[e.createElementVNode("button",{type:"button",class:"size-[30px] inline-flex justify-center items-center gap-x-2 rounded-lg border border-transparent text-red-600 hover:bg-red-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-red-100 dark:text-red-500 dark:hover:bg-red-500/20 dark:focus:bg-red-500/20",onClick:h[2]||(h[2]=w=>i())},[e.createVNode(e.unref(P.Trash2),{class:"h-4 w-4"})])])])])]))}}),ma={class:"flex flex-col widget-file xl:bg-white xl:rounded-xl dark:xl:bg-neutral-800 dark:xl:border-neutral-700 w-full"},ha={class:"flex w-full mb-[12px] items-center gap-x-2"},ga={class:"font-semibold text-gray-800 dark:text-neutral-200 text-[14px]"},ya={class1:"ml-auto"},ba={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"},ka={key:0,class:"py-4 mb-4 space-y-4 border-gray-200 border-y dark:border-neutral-700"},xa={class:"relative"},wa={class:"absolute inset-y-0 start-0 flex items-center pointer-events-none z-[1] ps-3.5"},_a={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"},va={key:0},sr=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(r,{emit:t}){const n=r,o=e.inject("form"),l=e.computed(()=>o.value.formId),a=e.ref(!1),s=e.ref(0),c=t,i=e.ref(!1),d=e.ref({}),f=e.ref([]),h=e.ref(""),w=e.computed(()=>Array.isArray(f.value)?f.value.filter(k=>k.ext==="jpg"||k.ext==="png").map(k=>k?.file_path):[]),p=e.computed(()=>h.value===""?f.value:f.value.filter(k=>k?.uploaded_name?.includes(h.value))),u=k=>{const x=w.value.findIndex(S=>S===k.item.file_path);x!==-1&&(a.value=!0,s.value=x)},g=async()=>{try{const k=await fetch(`${n.prefix}/widget/file/${l.value}`).then(x=>x.json());f.value=k?.rows}catch(k){console.error(k)}},y=async k=>{await Promise.all(Array.from(k.target.files).map(async x=>{const S=new FormData;S.append("file",x);try{const L=`${n.prefix}/widget/file/${l.value}`,N=await fetch(L,{method:"POST",body:S});return N.ok?(c("update","file-list"),x):(de.notify({type:N.status>=400&&N.status<500?"warning":"error",title:"Error",message:`Error code: ${N.status}`}),null)}catch(L){return de.notify({type:"error",title:"Error",message:L.message||"Unknown error"}),console.error(L),null}})),await g()},C=k=>{const x={...k};return k.cancel||(x.cancel=()=>{i.value=!1}),k.updateListOnConfirm&&(x.confirm=async()=>{await k.confirm(),i.value=!1,g()}),x},_=k=>{d.value=C(k),i.value=!0};return e.watch(l,k=>{k&&g()}),e.onMounted(()=>{l.value&&g()}),(k,x)=>{const S=e.resolveComponent("Lightbox"),L=e.resolveComponent("MessageBox");return e.openBlock(),e.createElementBlock("div",ma,[e.createElementVNode("div",ha,[e.createElementVNode("h2",ga," Файлів: "+e.toDisplayString(f.value?.length),1),e.createElementVNode("div",ya,[e.createElementVNode("label",null,[e.createElementVNode("input",{type:"file",class:"hidden",onChange:x[0]||(x[0]=N=>y(N))},null,32),e.createElementVNode("div",ba,[e.createVNode(e.unref(P.Upload),{class:"h-4 w-4"})])])])]),f.value?.length>4?(e.openBlock(),e.createElementBlock("div",ka,[e.createElementVNode("div",null,[e.createElementVNode("div",xa,[e.createElementVNode("div",wa,[e.createVNode(e.unref(P.Search),{class:"flex-shrink-0 text-gray-500 size-4 dark:text-neutral-400"})]),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":x[1]||(x[1]=N=>h.value=N),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,h.value,void 0,{trim:!0}]])])])])):e.createCommentVNode("",!0),f.value?.length?(e.openBlock(),e.createElementBlock("div",_a,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,(N,V)=>(e.openBlock(),e.createBlock(fa,{key:V,prefix:r.prefix,item:N,index:V,onUpdate:x[2]||(x[2]=A=>k.$emit("update","file-list")),onOpenModal:x[3]||(x[3]=A=>_(A)),onOpenLightbox:x[4]||(x[4]=A=>u(A))},null,8,["prefix","item","index"]))),128)),p.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",va,[...x[8]||(x[8]=[e.createElementVNode("p",{class:"text-sm text-gray-600 font-sm"}," Файлів з такою назвою не існує, введіть інше пошукове слово ",-1)])]))])):e.createCommentVNode("",!0),e.createVNode(S,{modelValue:a.value,"onUpdate:modelValue":x[5]||(x[5]=N=>a.value=N),startIndex:s.value,"onUpdate:index":x[6]||(x[6]=N=>s.value=N),images:w.value},null,8,["modelValue","startIndex","images"]),e.createVNode(L,e.mergeProps({modelValue:i.value,"onUpdate:modelValue":x[7]||(x[7]=N=>i.value=N),onConfirm:d.value.confirm},d.value),null,16,["modelValue","onConfirm"])])}}}),Ca={class:"flex items-center justify-between"},Ea={class:"text-[16px] text-gray-900 font-medium"},Ba={class:"grid gap-3"},Va=me(e.defineComponent({__name:"vs-container-switcher",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(r){const t=r,n=e.ref(t.isOpen);return e.watch(()=>t.isOpen,o=>{n.value=o}),(o,l)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",Ca,[e.createElementVNode("p",Ea,e.toDisplayString(r.title),1),e.createVNode(_n,{modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=a=>n.value=a),style:e.normalizeStyle(r.style)},null,8,["modelValue","style"])]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",Ba,[e.renderSlot(o.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-00f2f0fc"]]),Sa={class:"text-[16px] text-gray-900 font-medium"},$a={class:"grid gap-3"},Na=me(e.defineComponent({__name:"vs-container-accordion",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(r){const t=r,n=e.ref(t.isOpen);return e.watch(()=>t.isOpen,o=>{n.value=o}),(o,l)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("button",{type:"button",onClick:l[0]||(l[0]=a=>n.value=!n.value),class:"flex items-center gap-2"},[e.createVNode(e.unref(P.ChevronDown),{class:e.normalizeClass(["h-4 w-4 duration-300",[n.value?"-rotate-180":""]])},null,8,["class"]),e.createElementVNode("span",Sa,e.toDisplayString(r.title),1)]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",$a,[e.renderSlot(o.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-dde48964"]]),Aa={class:"flex items-center justify-between"},Fa={switcher:Va,accordion:Na,default:e.defineComponent({__name:"vs-container-default",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})}},setup(r){return(t,n)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",Aa,[e.createElementVNode("p",null,e.toDisplayString(r.title),1)]),e.renderSlot(t.$slots,"default")]))}})},Ke={Equal:"==",Inequal:"!=",Higer:">",HigerOrEqual:">=",Lower:"<",LowerOrEqual:"<=",Between:"between",StartWith:"^",EndWith:"$",Contain:"*",In:"in",NotIn:"not_in"},Da=(r,t)=>String(r)===String(t),Ma=(r,t)=>String(r)!==String(t),La=(r,t)=>r>t,Ta=(r,t)=>r>=t,Ia=(r,t)=>r<t,Ra=(r,t)=>r<=t,Oa=(r,t)=>Array.isArray(t)&&t.length===2?r>=t[0]&&r<=t[1]:!1,za=(r,t)=>String(r).startsWith(String(t)),Pa=(r,t)=>String(r).endsWith(String(t)),ja=(r,t)=>String(r).includes(String(t)),Ua=(r,t)=>Array.isArray(t)?t.includes(r):!1,Ha=(r,t)=>Array.isArray(t)?!t.includes(r):!0,ir=(r,t)=>{if(!t)return!0;switch(t?.[1]){case Ke.Equal:return Da(r,t?.[2]);case Ke.Inequal:return Ma(r,t?.[2]);case Ke.Higer:return La(r,t?.[2]);case Ke.HigerOrEqual:return Ta(r,t?.[2]);case Ke.Lower:return Ia(r,t?.[2]);case Ke.LowerOrEqual:return Ra(r,t?.[2]);case Ke.Between:return Oa(r,t?.[2]);case Ke.StartWith:return za(r,t?.[2]);case Ke.EndWith:return Pa(r,t?.[2]);case Ke.Contain:return ja(r,t?.[2]);case Ke.In:return Ua(r,t?.[2]);case Ke.NotIn:return Ha(r,t?.[2]);default:return!0}},cr=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(r){const t=r,n=e.inject("values",e.ref({})),o=e.inject("form"),l=e.computed(()=>t.schema?.filter(c=>{const i=c?.conditions;if(!i)return!0;const d=Array.isArray(i)?i[0]:i,f=t.name?n.value?.[t.name]?.[d]??n.value?.[d]:n.value?.[d];return ir(f,i)})),a=e.computed(()=>Fa[t.view]),s=e.computed(()=>{if(n.value||(n.value={}),!t.name)return n.value;const c=n.value[t.name];if(c)return c;const i={};return n.value={...n.value,[t.name]:i},i});return(c,i)=>r.schema?.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{key:0,title:r.title,style:e.normalizeStyle(r.style)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,d=>(e.openBlock(),e.createBlock(Sr,e.mergeProps({key:d.name},{ref_for:!0},d,{item:d,modelValue:s.value[d.name],"onUpdate:modelValue":f=>s.value[d.name]=f,style:r.style,error:e.unref(o)?.errors?.[d.name]}),null,16,["item","modelValue","onUpdate:modelValue","style","error"]))),128))]),_:1},8,["title","style"])):e.createCommentVNode("",!0)}}),qa=["aria-expanded","data-focus"],Ka={class:"relative flex flex-1 items-center gap-1 py-0.5 pl-1 pr-0 overflow-hidden h-full min-w-0"},Ga={key:0,class:"flex flex-nowrap items-center gap-1 overflow-x-auto overflow-y-hidden min-w-0 flex-1 py-0.5"},Wa={class:"flex items-center gap-1 min-w-0"},Ya=["title"],Za=["innerHTML"],Xa=["onClick"],Ja={class:"flex-1 min-w-[2px]"},Qa=["placeholder"],es=["title"],ts=["innerHTML"],ns={key:3,class:"truncate flex-1 min-w-0"},rs={key:2,class:"flex-1 min-w-[2px]"},os=["placeholder"],ls={class:"flex items-center shrink-0"},as=["disabled"],ss={key:1,class:"self-stretch w-px bg-[#ccc] my-[1px]"},is=["disabled","title"],cs=["aria-disabled","onClick"],ds=["innerHTML"],us={key:1,class:"px-3 py-2 text-center text-gray-500"},ps=["disabled"],Nn="w-[16px] h-[16px] flex items-center justify-center flex-shrink-0 text-current",An=me(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(r,{emit:t}){const n=r,o=t,l=e.computed(()=>n.multiple),a=e.computed(()=>n.disabled);Me(n.style);const s=e.computed({get:()=>n.modelValue,set:O=>o("update:modelValue",O)});!s.value&&n.defaultValue&&(s.value=n.defaultValue);const c=e.ref(null),i=e.ref(null),d=e.ref(null),f=e.ref(null),h=e.ref(!1),w=e.ref(!1),p=e.ref(null),u=e.ref([]),g=e.ref(-1),y=e.ref([]),C=e.ref(""),_=e.ref(null),k=e.ref("bottom"),x=e.ref({}),S=e.ref([]),L=e.computed(()=>{if(!S.value.length)return[];const O=u.value,K=new Map(O.map(q=>[q.id?.toString(),q]));return S.value.map(q=>K.get(q?.toString())).filter(q=>!!q)}),N=e.computed(()=>n.placeholder||"Select..."),V=e.computed(()=>H(p.value));e.computed(()=>l.value?!S.value.length&&C.value==="":!V.value&&C.value==="");const A=e.computed(()=>a.value?!1:l.value?S.value.length>0:!!s.value),E=O=>l.value?S.value.some(K=>K?.toString()===O?.toString()):s.value?.toString()===O?.toString(),$=e.computed(()=>{let O=u.value??[];if(!n.data&&C.value.trim()!==""){const K=C.value.toLowerCase();O=O.filter(q=>{const le=H(q).toLowerCase(),be=q.text?.toLowerCase?.()||"";return le.includes(K)||be.includes(K)})}if(l.value&&S.value.length){const K=new Set(S.value.map(q=>q?.toString()));O=O.filter(q=>!K.has(q.id?.toString()))}return O}),M=e.inject("values"),R=e.inject("field-props"),D=/\{\{\s*([^}]+?)\s*\}\}/g,I=O=>(O?String(O):"").replace(/<[^>]*>/g,"").trim(),T=e.computed(()=>n.slot??n?.optionTemplate??""),U=O=>{if(!O)return"";const K=T.value;return K?K.replace(D,(q,le)=>{const be=le.trim(),_e=O[be];return _e!=null?String(_e):""}):O.text??""},H=O=>{if(!O)return"";if(!T.value)return O.text??"";const q=U(O);return I(q)||O.text||""},W=O=>O?O.icon??null:null,Q=O=>!!(O?.color&&!W(O)),ve=O=>O?.color?{color:O.color}:void 0,se=O=>!!W(O),Z=(O,K,q)=>{if(!R)return!1;const le=R.value?.[O]??{},be=(we,Se,Re)=>{if(!Se.length)return we;const[He,...ot]=Se,Ge={...we};if(!ot.length)return Ge[He]=Re,Ge;const Ut=typeof we[He]=="object"&&we[He]!==null?we[He]:{};return Ge[He]=be(Ut,ot,Re),Ge},_e=be(le,K,q);return R.value={...R.value||{},[O]:_e},!0},te=O=>{if(!n.set)return;const K=M?.value;!K&&!R||Object.entries(n.set).forEach(([q,le])=>{if(!q)return;const be=O?O[le]:null,_e=q.split(".").map(Re=>Re.trim()).filter(Boolean);if(!_e.length)return;const[we,...Se]=_e;Se.length&&Z(we,Se,be??null)||K&&(K[we]=be??null)})},ae=e.computed(()=>n.parent?M?.value?.[n.parent]?.toString()??null:null),ye=async O=>{if(!n.data){let K=n.options??[];if(O?.trim()){const q=O.toLowerCase();K=K.filter(le=>{const be=H(le).toLowerCase(),_e=le.text?.toLowerCase?.()||"";return be.includes(q)||_e.includes(q)})}return K}try{const K=n.host??"",q=n.prefix??"api",le=n.api??`/${q}/suggest/${n.data}`,be=`${K}${le}`,_e=new URLSearchParams;return _e.set("json","1"),O&&_e.set("key",O),ae.value!==void 0&&ae.value!==null&&ae.value!==""&&_e.set("parent",ae.value),n.start===1&&_e.set("start","1"),(await fetch(`${be}?${_e.toString()}`).then(Se=>Se.json()))?.data??[]}catch{return[]}},ge=async()=>{n.data?u.value=await ye(C.value):u.value=n.options?[...n.options]:[]},Fe=async O=>{if(O==null||O==="")return null;const K=u.value?.find(q=>q?.id?.toString()===String(O));if(K)return K;if(n.data)try{const q=n.host??"",le=n.prefix??"api",be=n.api??`/${le}/suggest/${n.data}`,_e=`${q}${be}`,we=new URLSearchParams;return we.set("json","1"),we.set("val",String(O)),ae.value!==void 0&&ae.value!==null&&ae.value!==""&&we.set("parent",ae.value),n.start===1&&we.set("start","1"),((await fetch(`${_e}?${we.toString()}`).then(He=>He.json()))?.data??[])?.[0]??null}catch{return null}return null},Ie=async O=>{const K=new Set(u.value.map(le=>le.id?.toString())),q=O.filter(le=>!K.has(le?.toString()));q.length&&await q.reduce(async(le,be)=>{await le;const _e=await Fe(be);_e&&u.value.push(_e)},Promise.resolve())},Ze=()=>{if(!$.value.length){g.value=-1;return}let O=0;if(!l.value&&p.value){const K=p.value.id?.toString(),q=$.value.findIndex(le=>le.id?.toString()===K);q>=0&&(O=q)}g.value=O,e.nextTick(()=>{ke(y.value[O],d.value)})},Ce=async()=>{a.value||(h.value=!0,await ge(),await e.nextTick(()=>{z(),_.value?.focus()}),Ze())},Le=()=>{h.value=!1,g.value=-1,e.nextTick(()=>{_.value?.blur()})},vt=async O=>{if(a.value)return;!h.value?await Ce():Le()},j=async()=>{if(!a.value){if(h.value){Le();return}await Ce()}},Y=()=>{l.value?(S.value=[],s.value=[],o("change",[]),oe(null,[])):(p.value=null,s.value=null,o("change",null),oe(null,null)),te(null),C.value="",e.nextTick(()=>_.value?.focus())},X=O=>{l.value&&(S.value=S.value.filter(K=>K?.toString()!==O?.toString()),s.value=[...S.value],o("change",s.value),oe(null),e.nextTick(()=>_.value?.focus()))},oe=(O,K)=>{const q=K??(l.value?[...S.value]:O?.id??null);o("value-selected",{name:n.name,value:q,option:O})},ie=O=>{l.value?(E(O.id)||(S.value=[...S.value,O.id],s.value=[...S.value],o("change",s.value),oe(O)),C.value="",e.nextTick(()=>{_.value?.focus(),g.value=Math.min(g.value,$.value.length-1)}),te(null)):(p.value=O,s.value=O.id,o("change",s.value),oe(O),C.value="",Le(),te(O))},xe=O=>{if(E(O.id)){l.value||Le();return}ie(O)},ke=(O,K)=>{if(!O||!K)return;const q=O.offsetTop,le=q+O.offsetHeight,be=K.scrollTop,_e=be+K.clientHeight;let we=K.scrollTop;q<be?we=q-80:le>_e&&(we=le-K.clientHeight+4);const Se=K;Se.scrollTop=we},v=O=>{let K=O.parentElement;for(;K;){if(K.classList.contains("ui-dialog__content"))return K;const q=window.getComputedStyle(K),le=q.overflow+q.overflowY+q.overflowX;if(le.includes("auto")||le.includes("scroll")||K===document.body||K===document.documentElement)return K;K=K.parentElement}return document.body},z=()=>{if(!i.value)return;const O=i.value.getBoundingClientRect(),K=window.innerHeight||document.documentElement.clientHeight,q=window.innerWidth||document.documentElement.clientWidth,le=8,be=8,_e=n.maxHeight||300,we=K-O.bottom-be-le,Se=O.top-be-le,Re=we>=Se,He=Math.max(q-le*2,0);let{width:ot}=O;He>0&&ot>He&&(ot=He);let{left:Ge}=O;Ge+ot+le>q&&(Ge=q-ot-le),Ge=Math.max(Ge,le);const Ut=Math.min(_e,Math.max(Re?we:Se,50));k.value=Re?"bottom":"top",x.value={position:"fixed",left:`${Ge}px`,width:`${ot}px`,maxHeight:`${Ut}px`,transform:Re?"none":"translateY(-100%)",top:Re?`${O.bottom+be}px`:`${O.top-be}px`}},ee=async O=>{a.value||!h.value&&(O.key==="ArrowDown"||O.key==="ArrowUp")&&(O.preventDefault(),await Ce())},ce=O=>{if(!h.value)return;const{key:K}=O;if(K==="ArrowDown")O.preventDefault(),g.value+1<$.value.length&&(g.value+=1,ke(y.value[g.value],d.value));else if(K==="ArrowUp")O.preventDefault(),g.value>0&&(g.value-=1,ke(y.value[g.value],d.value));else if(K==="Enter"){O.preventDefault();const q=$.value[g.value];q&&ie(q),_.value?.blur()}else K==="Escape"?(O.preventDefault(),Le()):K==="Backspace"?l.value&&C.value===""&&S.value.length&&(S.value=S.value.slice(0,-1),s.value=[...S.value],o("change",s.value)):K==="Home"?(g.value=0,ke(y.value[0],d.value)):K==="End"?(g.value=$.value.length-1,ke(y.value[g.value],d.value)):K==="Tab"&&Le()},Ee=()=>{a.value||(w.value=!0)},ct=()=>{w.value=!1,C.value=""},tt=O=>{O.key==="Escape"&&h.value&&Le()},Ct=O=>{const K=O.target;c.value?.contains(K)||f.value?.contains(K)||Le()},dt=O=>{h.value&&d.value&&!d.value.contains(O.target)&&z()},gt=()=>{h.value&&z()},nt=()=>{h.value&&z()};e.watch(()=>n.options,O=>{O?.length&&(u.value=[...O],De())},{immediate:!0});async function De(){if(l.value)Array.isArray(s.value)?S.value=[...s.value]:(S.value=s.value==null?[]:[s.value],s.value=[...S.value]),n.data&&S.value.length&&(await Ie(S.value),await e.nextTick());else{if(Array.isArray(s.value)){const O=s.value[0]??null;s.value=O??null}s.value!=null&&(p.value=await Fe(s.value)),te(p.value??null)}}e.watch(s,()=>{De()}),e.onMounted(async()=>{addEventListener("keydown",tt),addEventListener("scroll",dt,!0),addEventListener("resize",gt),document.addEventListener("click",Ct,!0),i.value&&v(i.value).addEventListener("scroll",nt,!0),n.options?.length&&!n.data?u.value=[...n.options]:n.data&&(u.value=await ye("")),await De(),rt.value=!1}),e.onUnmounted(()=>{removeEventListener("keydown",tt),removeEventListener("scroll",dt,!0),removeEventListener("resize",gt),document.removeEventListener("click",Ct,!0),i.value&&v(i.value).removeEventListener("scroll",nt,!0)});const yt=e.ref(!1),Nt=e.ref({}),gn=e.ref([]),Et=e.ref(null);async function Xn(){if(!(!n.add?.token||Et?.value.validate()))try{const K=n.add.api??`/api/table/${n.add.token}`,q=await fetch(K,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Nt.value)}),le=await q.json().catch(()=>({})),be=le?.error||le?.message,_e=Number(le?.code)>=400;if(!q.ok||_e){de.notify({title:"Помилка",type:"error",message:be||`Код помилки: ${le?.code||q.status}`});return}const we=le?.id;if(!we){de.notify({title:"Помилка",type:"error",message:"Обʼєкт створено, але в відповіді відсутній ID."});return}if(!n.options?.length&&n.data){const Se=await fetch(`${n.api??`/api/suggest/${n.data}`}?val=${we}`).then(Re=>Re.json());p.value=Se[0],u.value.push(Se[0]),s.value=we}yt.value=!1,de.notify({title:"Успіх",message:"Обʼєкт успішно створено."})}catch(K){de.notify({title:"Помилка",type:"error",message:K?.message||"Не вдалося створити обʼєкт."})}}async function bt(){if(!n.add)return null;const O=await fetch(`/api/template/form/${n.add.form}`).then(K=>K.json());return gn.value=O.schema,yt.value=!0,null}function Bt(O,K=200){let q;return(...le)=>{q&&clearTimeout(q),q=window.setTimeout(()=>O(...le),K)}}const Jn=Bt(async O=>{u.value=await ye(O)},200);e.watch(C,O=>{n.data&&Jn(O.trim())}),e.watch(()=>n.options,O=>{!n.data&&O?.length&&(u.value=[...O],De())},{immediate:!0}),e.watch(()=>n.parent??n.parentValue,()=>{n.data&&ge()});const rt=e.ref(!0);return e.watch(ae,async()=>{if(n.data&&(rt.value||(l.value?(S.value=[],s.value=[],o("change",[])):(p.value=null,s.value=null,o("change",null))),await ge(),n.auto===1&&ae.value&&u.value.length>0)){const O=u.value[0];O&&ie(O)}}),(O,K)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(de.VsModal),{visible:yt.value,"onUpdate:visible":K[1]||(K[1]=q=>yt.value=q),class:"z-[1000]",title:"Додати",buttonText:"Додати",onDone:Xn,teleport:r.teleport},{default:e.withCtx(()=>[e.createVNode(We,{schema:gn.value,modelValue:Nt.value,"onUpdate:modelValue":K[0]||(K[0]=q=>Nt.value=q),ref_key:"addForm",ref:Et},null,8,["schema","modelValue"])]),_:1},8,["visible","teleport"]),e.createElementVNode("div",{class:"flex gap-1 w-full",ref_key:"selectRoot",ref:c,onClick:K[5]||(K[5]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass])},[K[6]||(K[6]=e.createElementVNode("span",{id:"react-select-live-region",class:"sr-only"},null,-1)),K[7]||(K[7]=e.createElementVNode("span",{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text",role:"log",class:"sr-only"},null,-1)),e.createElementVNode("div",{class:e.normalizeClass(["vs-input-select__control flex min-h-[38px] items-center justify-between rounded transition-colors bg-white",a.value?"bg-gray-100 text-gray-400 cursor-not-allowed":""]),role:"combobox","aria-expanded":h.value,"aria-haspopup":"listbox",onKeydown:ee,onClick:j,"data-focus":h.value||w.value?"true":"false",ref_key:"triggerRef",ref:i},[e.createElementVNode("div",Ka,[l.value?(e.openBlock(),e.createElementBlock("div",Ga,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(L.value,q=>(e.openBlock(),e.createElementBlock("div",{class:"flex min-w-0 bg-[rgb(230,230,230)] rounded-[2px] m-[2px] box-border max-w-full",key:q.id},[e.createElementVNode("div",Wa,[Q(q)?(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:q?.color})},null,4)):e.createCommentVNode("",!0),!T.value&&se(q)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(Nn),style:e.normalizeStyle(ve(q)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(W(q)),{class:"w-full h-full",focusable:"false"}))],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"truncate text-[#172b4d] overflow-hidden max-w-[200px] px-0.5 pl-1.5",title:H(q)},[T.value?(e.openBlock(),e.createElementBlock("span",{key:0,innerHTML:U(q)},null,8,Za)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(q.text),1)],64))],8,Ya)]),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(le=>X(q.id),["stop"])},[e.createVNode(e.unref(P.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,Xa)]))),128)),e.createElementVNode("div",Ja,[!a.value&&r.search?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"inputRef",ref:_,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:S.value.length?" ":N.value,"onUpdate:modelValue":K[2]||(K[2]=q=>C.value=q),onFocus:Ee,onBlur:ct,onKeydown:ce},null,40,Qa)),[[e.vModelText,C.value]]):e.createCommentVNode("",!0)])])):!l.value&&V.value&&C.value===""?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["truncate text-gray-900 absolute inset-x-0 pl-2 flex items-center gap-1 min-w-0"]),title:V.value},[Q(p.value)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[14px] h-[14px] rounded-md block flex-shrink-0",style:e.normalizeStyle({backgroundColor:p.value?.color})},null,4)):e.createCommentVNode("",!0),!T.value&&se(p.value)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(Nn),style:e.normalizeStyle(ve(p.value)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(W(p.value)),{class:"w-full h-full",focusable:"false"}))],4)):e.createCommentVNode("",!0),T.value?(e.openBlock(),e.createElementBlock("span",{key:2,class:"truncate flex-1 min-w-0",innerHTML:U(p.value)},null,8,ts)):(e.openBlock(),e.createElementBlock("span",ns,e.toDisplayString(p.value?.text),1))],8,es)):e.createCommentVNode("",!0),l.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",rs,[!a.value&&r.search?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"inputRef",ref:_,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:V.value?" ":N.value,"onUpdate:modelValue":K[3]||(K[3]=q=>C.value=q),onFocus:Ee,onBlur:ct,onKeydown:ce},null,40,os)),[[e.vModelText,C.value]]):e.createCommentVNode("",!0)]))]),e.createElementVNode("div",ls,[A.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-hidden":"true",disabled:a.value,onClick:e.withModifiers(Y,["stop"])},[e.createVNode(e.unref(P.X),{class:"h-4 w-4"})],8,as)):e.createCommentVNode("",!0),A.value?(e.openBlock(),e.createElementBlock("div",ss)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:a.value,onClick:K[4]||(K[4]=e.withModifiers(q=>vt(),["stop"])),title:h.value?"Закрити список":"Відкрити список"},[e.createVNode(e.unref(P.ChevronDown),{class:"h-4 w-4"})],8,is)])],42,qa),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[h.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:f,class:e.normalizeClass(["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(x.value),role:"listbox"},[e.createElementVNode("div",{class:"overflow-y-auto py-1",style:e.normalizeStyle({maxHeight:x.value.maxHeight||"300px"}),ref_key:"listRef",ref:d},[$.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList($.value,(q,le)=>(e.openBlock(),e.createElementBlock("div",{key:q.id,ref_for:!0,ref:be=>y.value[le]=be,class:e.normalizeClass(["flex px-3 py-2 gap-2 cursor-pointer select-none text-gray-900",E(q.id)?"bg-[#2684ff] text-white":"bg-white hover:bg-[#deebff] hover:text-[#172b4d]",g.value===le&&!E(q.id)?"bg-[#deebff] text-[#172b4d]":""]),"aria-disabled":E(q.id)?"true":"false",role:"option",tabindex:"-1",onClick:be=>xe(q)},[Q(q)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[11px] h-[11px] rounded-full block flex-shrink-0",style:e.normalizeStyle({backgroundColor:q?.color})},null,4)):e.createCommentVNode("",!0),!T.value&&se(q)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(Nn),style:e.normalizeStyle(ve(q)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(W(q)),{class:"w-full h-full",focusable:"false"}))],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["leading-[19px]",g.value===q.id?"text-white":"",(g.value===le,"")])},[T.value?(e.openBlock(),e.createElementBlock("span",{key:0,innerHTML:U(q)},null,8,ds)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(q.text),1)],64))],2)],10,cs))),128)):(e.openBlock(),e.createElementBlock("div",us," No options "))],4)],4)):e.createCommentVNode("",!0)]))],2),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:bt,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(P.Plus),{class:"h-4 w-4"}),K[8]||(K[8]=e.createElementVNode("span",null,"Додати",-1))],8,ps)):e.createCommentVNode("",!0)],512)],64))}}),[["__scopeId","data-v-5b8f243f"]]),fs=["placeholder","disabled"],dr=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(r){const t=r,{inputClass:n}=Me(t.style),o=e.useModel(r,"modelValue"),l=e.computed(()=>!!t.disabled),a=e.computed(()=>t.placeholder??"");function s(){typeof o.value=="string"&&(o.value=o.value.trim())}return(c,i)=>e.withDirectives((e.openBlock(),e.createElementBlock("textarea",{"onUpdate:modelValue":i[0]||(i[0]=d=>o.value=d),placeholder:a.value,disabled:l.value,row:"2",onBlur:s,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] h-auto bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"}},null,42,fs)),[[e.vModelText,o.value]])}}),ur=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(r){const t=e.defineAsyncComponent(()=>Promise.resolve().then(()=>Ph)),n=r,{inputClass:o}=Me(n.style),l=e.useModel(r,"modelValue"),a=e.computed(()=>!!n.disabled),s=e.computed(()=>n.placeholder??""),c=e.computed(()=>({height:"300px",format:n.format,...n.richtextProps}));return(i,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["!h-full",[r.customClass,e.unref(o)]]),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]=f=>l.value=f),placeholder:s.value},c.value),null,16,["modelValue","placeholder"])],6))}}),ms={},hs={viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function gs(r,t){return e.openBlock(),e.createElementBlock("svg",hs,[...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 ys=me(ms,[["render",gs]]),bs={class:"bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden flex flex-col"},ks={key:0,class:"flex flex-col gap-2 !p-4 border-b border-gray-200 sm:flex-row sm:items-center sm:justify-between bg-gray-50"},xs={key:0,class:"relative w-full"},ws={class:"flex flex-nowrap items-center justify-end gap-2 w-full overflow-x-auto"},_s={class:"w-full overflow-x-auto"},vs={class:"w-full min-w-[640px] table-auto divide-y divide-gray-200"},Cs={class:"bg-gray-50"},Es={class:"border-b border-gray-200"},Bs={class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 w-12 text-center"},Vs=["onClick"],Ss={key:0,class:"text-gray-400"},$s={key:0,colspan:"100%",class:"text-center"},Ns={class:"w-full"},As={class:"p-5 min-h-[200px] flex flex-col justify-center items-center text-center"},Fs=["onDragstart","onDragover","onDrop"],Ds={class:"px-4 py-3 text-center align-middle"},Ms={class:"flex items-center justify-center"},Ls=["innerHTML"],Ts={key:0,class:"flex items-center gap-3 text-sm text-gray-700"},Is={key:0},Rs=["src"],Os={key:1,class:"rounded-md max-w-[45px] w-[45px] max-h-[45px] h-[45px] bg-gray-200 flex items-center justify-center"},zs={key:1,class:"flex items-center justify-center"},Ps={key:2,class:"text-sm font-medium text-gray-900"},js={class:"px-4 py-3 text-right whitespace-nowrap"},Us={class:"flex items-center justify-end gap-2"},Hs=["onClick"],qs=["onClick"],Ks={class:"vs-form__head mr-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},pr=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(r){const t=r,n=e.useSlots(),o=j=>t.actions===void 0?!0:t.actions.includes(j),l=["search","import","export","add"],a=e.computed(()=>l.some(j=>o(j))),s=e.useModel(r,"modelValue"),c=e.ref({}),i=e.ref(""),d=e.ref(null),f=e.ref("asc"),h=e.computed(()=>{const j=s.value??[],Y=i.value?j.filter(ie=>w.value?.some(xe=>{const ke=xe.key||xe.name;if(!ke)return!1;const v=ie[ke];return v?Array.isArray(v)?v.join(", ").toLowerCase().includes(i.value.toLowerCase()):String(v).toLowerCase().includes(i.value.toLowerCase()):!1})):j;if(!d.value)return Y;const X=d.value,oe=[...Y].sort((ie,xe)=>{const ke=te(ie?.[X]),v=te(xe?.[X]);return typeof ke=="number"&&typeof v=="number"?ke-v:String(ke).localeCompare(String(v))});return f.value==="asc"?oe:oe.reverse()}),w=e.computed(()=>(t.colModel??[]).filter(j=>!j.tableHidden)),p=e.ref(null),u=e.ref(null),g=e.ref(null),y=j=>{p.value=j},C=j=>{u.value=j},_=j=>{if(p.value===null||p.value===j){p.value=null,u.value=null;return}const Y=[...s.value],[X]=Y.splice(p.value,1);Y.splice(j,0,X),s.value=Y,p.value=null,u.value=null},k=()=>{g.value&&g.value.click()},x=j=>{const Y=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".ico",".tiff",".tif"],X=j.toLowerCase();return Y.some(oe=>X.endsWith(oe))},S=j=>{const X=j.target.files?.[0];if(!X)return;const oe=new FileReader;oe.onload=ie=>{try{const xe=ie.target?.result;if(typeof xe=="string"){const ke=JSON.parse(xe);Array.isArray(ke)&&s.value.push(...ke)}}catch(xe){console.error("Error parsing file:",xe)}},oe.readAsText(X)},L=()=>{const j=JSON.stringify(s.value,null,2),Y=new Blob([j],{type:"application/json"}),X=URL.createObjectURL(Y),oe=document.createElement("a");oe.href=X,oe.download="data.json",oe.click(),URL.revokeObjectURL(X)},N=new Set(["autocomplete","select","radio","checkbox","combobox"]),V=new Map,A=(j,Y)=>{const X=`/api/suggest/${j}`,oe=X.includes("?")?"&":"?",ie=Y?`&val=${Y}`:"";return`${X}${oe}json=1${ie}`},E=j=>j==null||j===""?null:typeof j=="object"?j?.id!==void 0&&j.id!==null&&j.id!==""?j.id:null:j,$=j=>{const Y=new Set;return Array.isArray(s.value)&&s.value.forEach(X=>{const oe=X?.[j];if(oe==null||oe==="")return;if(Array.isArray(oe)){oe.forEach(xe=>{const ke=E(xe);ke!==null&&Y.add(ke)});return}const ie=E(oe);ie!==null&&Y.add(ie)}),Y},M=async()=>{if(!t.colModel?.length)return;const j=t.colModel.filter(Y=>Y.data&&N.has(Y.type?.toLowerCase()||""));j.length&&await Promise.all(j.map(async Y=>{const X=Y.key||Y.name;if(!X)return;const oe=$(X),ie=Array.from(oe).map(v=>String(v)).sort(),xe=ie.join(",");if(!ie.length||V.get(X)===xe)return;V.set(X,xe);const ke=ie.map(encodeURIComponent).join(",");try{const z=await(await fetch(A(Y.data,ke))).json();c.value[X]=z?.data??z}catch(v){console.error("Failed to fetch column values",v)}}))};e.watch([()=>t.colModel,()=>s.value],()=>{M()},{immediate:!0,deep:!0});const R=e.ref(""),D=e.ref(!1);let I="edit",T=0;const U=j=>(j?.format||j?.type||"").toString().toLowerCase(),H=e.computed(()=>t.colModel?.filter(j=>U(j)!=="slot").map(j=>{const{slot:Y,...X}=j;return X})??[]),W=e.ref({}),Q=e.ref({}),ve=j=>typeof j!="string"?!1:!!n[j],se=(j,Y)=>Y?Y.split(".").reduce((X,oe)=>X==null?X:X[oe.trim()],j):j,Z=(j,Y)=>typeof j!="string"?"":j.replace(/{{\s*([^}]+)\s*}}/g,(X,oe)=>{const ie=se(Y,oe.trim());return ie??""}),te=j=>{if(j==null||j==="")return"";if(typeof j=="number")return j;if(typeof j=="boolean")return j?1:0;if(typeof j=="string")return j.toLowerCase();if(Array.isArray(j))return j.map(Y=>te(Y)).join(", ");if(typeof j=="object"){if(j.text!==void 0)return String(j.text).toLowerCase();if(j.label!==void 0)return String(j.label).toLowerCase();if(j.id!==void 0)return String(j.id).toLowerCase()}return String(j).toLowerCase()},ae=j=>{const Y=j.key||j.name;if(Y){if(d.value===Y){f.value=f.value==="asc"?"desc":"asc";return}d.value=Y,f.value="asc"}};async function ye(){R.value="Додати",D.value=!0,I="add",W.value={}}function ge(j,Y){if(!j?.length)return null;const X=typeof Y=="object"?Y?.id:Y;return X==null||X===""?null:j.find(oe=>oe?.id?.toString()===X.toString())?.text??null}function Fe(j){return j==null||j===""?"-":Array.isArray(j)?j.map(Y=>typeof Y=="object"?Y?.text??Y?.id??"-":Y).join(", "):typeof j=="object"?j?.text??j?.id??"-":j}function Ie(j,Y){const X=Y.key||Y.name,oe=j?.[X],ie=c.value[X];if(!oe)return"-";if(Array.isArray(oe)){const ke=oe.map(v=>ge(ie,v)).filter(Boolean);return ke.length?ke.join(", "):Fe(oe)}const xe=ge(ie,oe);return xe||Fe(oe)}async function Ze(j,Y){R.value="Редагувати",D.value=!0,I="edit",T=Y,W.value={...j}}function Ce(){const j=Q.value.validate();if(j){de.notify({type:"warning",title:"Помилка валідації",message:Object.entries(j).map(([Y,X])=>`${Y}: ${X}`).join(`
2
- `)});return}I==="add"?Array.isArray(s.value)?s.value=[...s.value,W.value]:s.value=[W.value]:s.value=s.value.map((Y,X)=>X===T?W.value:Y),D.value=!1}function Le(j){s.value=s.value.filter((Y,X)=>X!==j)}function vt(){D.value=!1}return(j,Y)=>(e.openBlock(),e.createElementBlock("div",bs,[a.value?(e.openBlock(),e.createElementBlock("div",ks,[o("search")?(e.openBlock(),e.createElementBlock("div",xs,[e.createVNode(e.unref(P.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":Y[0]||(Y[0]=X=>i.value=X),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",ws,[o("import")?(e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"fileInput",ref:g,onChange:S,class:"hidden",accept:".json",type:"file"},null,544)):e.createCommentVNode("",!0),o("import")?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",onClick:k,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(P.Upload),{class:"h-4 w-4 text-gray-700"}),Y[4]||(Y[4]=e.createTextVNode(" Імпорт ",-1))])):e.createCommentVNode("",!0),o("export")?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:L,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(P.Download),{class:"h-4 w-4 text-gray-700"}),Y[5]||(Y[5]=e.createTextVNode(" Експорт ",-1))])):e.createCommentVNode("",!0),o("add")?(e.openBlock(),e.createElementBlock("button",{key:3,onClick:ye,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(P.Plus),{class:"h-4 w-4 text-white"}),Y[6]||(Y[6]=e.createTextVNode(" Додати ",-1))])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),e.createElementVNode("div",_s,[e.createElementVNode("table",vs,[e.createElementVNode("thead",Cs,[e.createElementVNode("tr",Es,[e.createElementVNode("th",Bs,[e.createVNode(e.unref(P.GripVertical),{class:"mx-auto h-4 w-4 text-gray-400"})]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value,X=>(e.openBlock(),e.createElementBlock("th",{key:X.key,class:"px-4 py-3 text-left text-xs font-semibold text-gray-900"},[e.createElementVNode("button",{type:"button",onClick:oe=>ae(X),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(X.ua||X.label),1),d.value===(X.key||X.name)?(e.openBlock(),e.createElementBlock("span",Ss,e.toDisplayString(f.value==="asc"?"▲":"▼"),1)):e.createCommentVNode("",!0)],8,Vs)]))),128)),Y[7]||(Y[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":!u.value}])},[h.value.length===0?(e.openBlock(),e.createElementBlock("td",$s,[e.createElementVNode("div",Ns,[e.createElementVNode("div",As,[e.createVNode(ys,{class:"w-48 mx-auto"}),Y[8]||(Y[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(h.value,(X,oe)=>(e.openBlock(),e.createElementBlock("tr",{key:X.id,class:e.normalizeClass(["border-b transition-colors hover:bg-gray-50 cursor-move text-sm text-gray-700",{"opacity-50":p.value===oe,"border-t-2 border-b-2 border-blue-500 bg-blue-50 dark:bg-blue-900/20":u.value===oe}]),draggable:"true",onDragstart:ie=>y(oe),onDragover:e.withModifiers(ie=>C(oe),["prevent"]),onDrop:ie=>_(oe)},[e.createElementVNode("td",Ds,[e.createElementVNode("div",Ms,[e.createVNode(e.unref(P.GripVertical),{class:"mx-auto h-4 w-4 text-slate-400 dark:text-slate-500"})])]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value,ie=>(e.openBlock(),e.createElementBlock("td",{key:ie.key,class:"px-4 py-3 align-middle"},[U(ie)==="slot"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[ve(ie.slot)?e.renderSlot(j.$slots,ie.slot,{key:0,row:X,value:X[ie.key],column:ie}):(e.openBlock(),e.createElementBlock("div",{key:1,class:"text-sm text-gray-900",innerHTML:Z(ie.slot,X)},null,8,Ls))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[U(ie)==="file"?(e.openBlock(),e.createElementBlock("div",Ts,[x(Ie(X,ie))?(e.openBlock(),e.createElementBlock("div",Is,[e.createElementVNode("img",{src:Ie(X,ie),alt:"alt",width:"45",class:"rounded-md max-w-[45px] h-[45px] object-cover"},null,8,Rs)])):(e.openBlock(),e.createElementBlock("div",Os,[e.createVNode(e.unref(P.FileText),{class:"h-4 w-4 min-w-4"})]))])):U(ie)==="color"?(e.openBlock(),e.createElementBlock("div",zs,[e.createElementVNode("span",{class:"inline-flex h-6 w-6 rounded border border-gray-200",style:e.normalizeStyle({backgroundColor:Ie(X,ie)||"#ffffff"})},null,4)])):(e.openBlock(),e.createElementBlock("div",Ps,e.toDisplayString(Ie(X,ie)),1))],64))]))),128)),e.createElementVNode("td",js,[e.createElementVNode("div",Us,[e.createElementVNode("button",{onClick:ie=>Ze(X,oe),class:"p-1.5 text-gray-600 hover:text-blue-600 hover:bg-blue-50 rounded transition-colors"},[e.createVNode(e.unref(P.Pencil),{class:"h-4 w-4"})],8,Hs),e.createElementVNode("button",{onClick:ie=>Le(oe),class:"p-1.5 text-gray-600 hover:text-red-600 hover:bg-red-50 rounded transition-colors"},[e.createVNode(e.unref(P.Trash2),{class:"h-4 w-4"})],8,qs)])])],42,Fs))),128))],2)])]),e.createVNode(e.unref(de.VsModal),{visible:D.value,title:R.value,size:"lg",onClose:vt,teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(We,{schema:H.value,values:W.value,"onUpdate:values":Y[1]||(Y[1]=X=>W.value=X),form:Q.value,"onUpdate:form":Y[2]||(Y[2]=X=>Q.value=X)},null,8,["schema","values","form"]),e.createElementVNode("div",Ks,[e.createElementVNode("button",{type:"button",onClick:Y[3]||(Y[3]=X=>D.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:Ce,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"])]))}}),Gs={},Ws={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 Ys(r,t){return e.openBlock(),e.createElementBlock("svg",Ws,[...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 Zs=me(Gs,[["render",Ys]]),Xs={},Js={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 Qs(r,t){return e.openBlock(),e.createElementBlock("svg",Js,[...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 ei=me(Xs,[["render",Qs]]),ti={},ni={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 ri(r,t){return e.openBlock(),e.createElementBlock("svg",ni,[...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 oi=me(ti,[["render",ri]]),li={class:"bg-white/30 p-1 rounded-md shadow w-fit"},ai={class:"flex gap-2"},si=["onClick","title"],ii=["src"],ci=e.defineComponent({__name:"map-layers",props:{basemaps:{}},emits:["onLayerChange"],setup(r,{emit:t}){const n=r,o=e.ref(Object.keys(n.basemaps)[0]),l=t;function a(i){l("onLayerChange",i),o.value=i}const s={z:13,x:4790,y:2762};function c(i){if(i?.preview)return i.preview;if(!i?.url)return;const d={"{z}":s.z,"{x}":s.x,"{y}":s.y};let f=i.url;return Object.entries(d).forEach(([h,w])=>{f=f.replace(new RegExp(h,"gi"),String(w))}),f}return(i,d)=>(e.openBlock(),e.createElementBlock("div",li,[e.createElementVNode("div",ai,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.basemaps,(f,h)=>(e.openBlock(),e.createElementBlock("div",{key:h,class:e.normalizeClass(["cursor-pointer border rounded-lg overflow-hidden hover:shadow-sm",{"ring-2 ring-blue-500 border-blue-300":o.value===h}]),onClick:w=>a(h),title:f.name||h,role:"button",tabindex:"0"},[e.createElementVNode("img",{src:c(f),alt:"",class:"w-10 h-10 object-cover"},null,8,ii)],10,si))),128))])]))}}),di={class:"map-search-widget flex flex-col gap-2 rounded-xl widget min-w-[200px]"},ui={key:0,class:"vs-select__options absolute z-50 mt-1 w-full bg-white border border-gray-300 shadow-lg rounded-lg text-sm"},pi=["onClick"],fi={class:"relative flex-1 min-w-[140px]"},mi=["placeholder"],hi={type:"submit",class:"absolute inset-y-0 right-2 flex items-center text-gray-400 hover:text-gray-600","aria-label":"Пошук"},gi="https://data.softpro.ua/api-user/gis-url-proxy",yi="https://geo.rv.ua/api-user/dzk.api",bi=me(e.defineComponent({__name:"map-search",props:{config:{}},emits:["goToCoordinates"],setup(r,{emit:t}){const n=r,o=t,l=["here","xy","parcel"],a=e.computed(()=>{const x=n.config?.tools?.filter(S=>l.includes(S));return x&&x.length?x:l}),s=e.computed(()=>n.config?.placeholder?.trim()||"Пошук…"),c=e.ref(a.value[0]??l[0]);e.watch(a,x=>{x.includes(c.value)||(c.value=x[0])});const i=e.ref(""),d=e.ref(!1),f=e.ref(null);e.watch(c,()=>{i.value="",d.value=!1});function h(x){c.value=x}function w(x){if(!d.value)return;const S=f.value;S&&!S.contains(x.target)&&(d.value=!1)}e.onMounted(()=>{window.addEventListener("click",w,!0)}),e.onBeforeUnmount(()=>{window.removeEventListener("click",w,!0)});function p(x){return x==="xy"?"Координати":x==="parcel"?"Кадастр":"Адреси"}function u(x){const S=x.replace(/[,]+/g," ").trim();if(!S)return null;const L=S.split(/\s+/).filter(Boolean);if(L.length<2)return null;const N=L.slice(0,2).map(Number);if(!N.every(D=>Number.isFinite(D)))return null;const[V,A]=N;let E=V,$=A;const M=D=>Math.abs(D)<=90,R=D=>Math.abs(D)<=180;if(!M(E)||!R($))if(M($)&&R(E))E=A,$=V;else return null;return{lat:E,lng:$}}function g(x){return(x?.items||[]).map((L,N)=>({id:String(L?.id??N),title:L?.title||L?.address?.label||"Знайдений обʼєкт",lat:Number(L?.position?.lat),lng:Number(L?.position?.lng)})).filter(L=>Number.isFinite(L.lat)&&Number.isFinite(L.lng))}function y(x){const S=x?.result||x?.data||x;if(!S)return[];const L=S.geom_centroid;if(!L||!Array.isArray(L.coordinates))return[];const[N,V]=L.coordinates;return!Number.isFinite(V)||!Number.isFinite(N)?[]:[{id:"parcel",title:S.cadnum||S.cad_num||"Земельна ділянка",lat:V,lng:N}]}function C(x){const L=x.replace(/\s+/g,"").split(":");if(L.length!==4)return!1;const N=[10,2,3,4];return L.every((V,A)=>V.length===N[A]&&/^\d+$/.test(V))}function _(x){o("goToCoordinates",[x.lat,x.lng])}async function k(){const x=i.value.trim();if(x){if(c.value==="xy"){const S=u(x);if(!S){de.notify({type:"warning",title:"Пошук координат",message:"Не знайдено або невірний формат координат"});return}_(S),i.value="";return}try{const S=new URL(c.value==="here"?gi:yi);if(c.value==="here")S.searchParams.set("searchtext",x);else{if(!C(x)){de.notify({type:"warning",title:"Пошук кадастру",message:"Кадастровий номер має формат ХХХХХХХХХХ:ХХ:ХХХ:ХХХХ"});return}S.searchParams.set("cad_num",x)}const L=await fetch(S.toString());if(!L.ok)throw new Error(`HTTP ${L.status}`);const N=await L.json(),V=c.value==="here"?g(N):y(N);if(!V.length)de.notify({type:"warning",title:"Пошук",message:"Не знайдено результатів"});else{const A=V[0];_(A),i.value=""}}catch(S){const L=S?.message||"Помилка пошуку";de.notify({type:"error",title:"Пошук",message:L})}}}return(x,S)=>(e.openBlock(),e.createElementBlock("div",di,[e.createElementVNode("form",{class:"flex gap-2",onSubmit:e.withModifiers(k,["prevent"])},[a.value.length>1?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:f,class:"relative search-type w-[140px]"},[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:S[0]||(S[0]=L=>d.value=!d.value)},[e.createElementVNode("span",null,e.toDisplayString(p(c.value)),1),e.createVNode(e.unref(P.ChevronDown),{class:e.normalizeClass(["h-4 w-4 text-gray-500 transition-transform",{"rotate-180":d.value}])},null,8,["class"])]),d.value?(e.openBlock(),e.createElementBlock("div",ui,[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,L=>(e.openBlock(),e.createElementBlock("li",{key:L,class:"px-3 py-2 cursor-pointer hover:bg-gray-100",onClick:N=>h(L)},e.toDisplayString(p(L)),9,pi))),128))])])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),e.createElementVNode("div",fi,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":S[1]||(S[1]=L=>i.value=L),placeholder:s.value,type:"text",class:"vs-input transition-all border block w-full border-gray-200 rounded-md focus:border-blue-100 border-solid !pr-8 py-1.5 pl-3 text-sm"},null,8,mi),[[e.vModelText,i.value,void 0,{trim:!0}]]),e.createElementVNode("button",hi,[e.createVNode(e.unref(P.Search),{class:"h-4 w-4"})])])],32)]))}}),[["__scopeId","data-v-1241d5df"]]),ki={class:"pt-1 border-t border-gray-100"},xi={class:"space-y-1"},wi=e.defineComponent({__name:"AddCoordinates",emits:["submit","cancel"],setup(r,{emit:t}){const n=t,o=e.ref(null),l=e.ref(null),a=(i,d,f)=>Math.min(Math.max(i,d),f),s=()=>{if(o.value===null||l.value===null||!Number.isFinite(o.value)||!Number.isFinite(l.value))return;const i=a(o.value,-90,90),d=a(l.value,-180,180);n("submit",{lat:i,lng:d}),o.value=null,l.value=null},c=()=>{o.value=null,l.value=null,n("cancel")};return(i,d)=>(e.openBlock(),e.createElementBlock("div",ki,[d[2]||(d[2]=e.createElementVNode("p",{class:"text-xs text-gray-600 mb-1"},"Додати точку за координатами:",-1)),e.createElementVNode("div",xi,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[0]||(d[0]=f=>o.value=f),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,o.value,void 0,{number:!0}]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[1]||(d[1]=f=>l.value=f),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}," Скасувати ")])])]))}}),_i=e.defineComponent({__name:"BtnAdd",emits:["click"],setup(r){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"flex-1 px-2 py-1.5 bg-blue-500 hover:bg-blue-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=o=>t.$emit("click"))},[e.createVNode(e.unref(P.Plus),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode(" Додати ",-1))]))}}),vi=e.defineComponent({__name:"BtnClear",emits:["click"],setup(r){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"w-full px-2 py-1.5 bg-rose-500 hover:bg-rose-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=o=>t.$emit("click"))},[e.createVNode(e.unref(P.Trash2),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode(" Очистити ",-1))]))}}),Ci=e.defineComponent({__name:"BtnComplete",emits:["click"],setup(r){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"flex-1 px-2 py-1.5 bg-emerald-500 hover:bg-emerald-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=o=>t.$emit("click"))},[e.createVNode(e.unref(P.Circle),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode("Замкнути ",-1))]))}}),Ei=new Intl.NumberFormat("uk-UA",{minimumFractionDigits:2,maximumFractionDigits:2});function kt(r){return Ei.format(r)}function fr(r){return r>=1e3?`${kt(r/1e3)} км`:`${kt(r)} м`}const Bi={class:"flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"},Vi={key:0,class:"flex-1 flex gap-1"},Si={key:1,class:"flex-1 font-mono text-gray-700"},$i=e.defineComponent({__name:"DotListItem",props:{id:{},index:{},coords:{}},emits:["update","delete"],setup(r,{emit:t}){const n=r,o=t,l=e.computed(()=>`${n.coords.lat.toFixed(4)}°, ${n.coords.lng.toFixed(4)}°`),a=e.ref(!1),s=e.ref(n.coords.lat),c=e.ref(n.coords.lng);e.watch(()=>n.coords,w=>{s.value=w.lat,c.value=w.lng},{deep:!0,immediate:!0});const i=(w,p,u)=>Math.min(Math.max(w,p),u),d=()=>{a.value=!0},f=()=>{if(!Number.isFinite(s.value)||!Number.isFinite(c.value))return;const w=i(s.value,-90,90),p=i(c.value,-180,180);o("update",{id:n.id,coords:{lat:w,lng:p}}),a.value=!1},h=()=>{o("delete",n.id)};return(w,p)=>(e.openBlock(),e.createElementBlock("div",Bi,[e.createVNode(e.unref(P.MapPin),{size:12,"stroke-width":2,class:"text-gray-400 flex-shrink-0"}),a.value?(e.openBlock(),e.createElementBlock("div",Vi,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":p[0]||(p[0]=u=>s.value=u),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":p[1]||(p[1]=u=>c.value=u),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:f}," ✓ ")])):(e.openBlock(),e.createElementBlock("span",Si,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:h}," ✕ ")]))}}),Ni={class:"ruler-control px-3 py-2.5 space-y-2"},Ai={type:"button",class:"ruler-row w-full flex items-center gap-2 cursor-pointer group text-left"},Fi={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"},Di={class:"text-sm font-semibold text-slate-700"},Mi={class:"ruler-row"},Li={type:"button",class:"w-full flex items-center gap-2 cursor-pointer group text-left"},Ti={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"},Ii={class:"inline-flex rounded-md overflow-hidden border border-gray-200 bg-gray-100"},Ri=["onClick"],Oi={class:"flex items-center gap-2 mt-0.5 pl-7"},zi={key:0,class:"text-base font-semibold text-green-600"},Pi={key:1,class:"text-xs text-gray-400"},ji={class:"ruler-row flex items-center gap-2 cursor-pointer"},Ui={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"},Hi={class:"text-xs font-medium text-gray-600 flex-1"},qi={key:0,class:"pt-1.5 border-t border-gray-100 max-h-32 overflow-y-auto space-y-1"},Ki=e.defineComponent({__name:"ControlPanel",props:{points:{},isShapeClosed:{type:Boolean}},emits:["update-point","delete-point"],setup(r){const t=r,n=e.ref(!1),o=e.ref("km2"),l=[{id:"km2",label:"км²"},{id:"ha",label:"га"},{id:"m2",label:"м²"}],a=()=>{n.value=!n.value},s=(u,g)=>{const y=A=>A*Math.PI/180,C=y(g.lat-u.lat),_=y(g.lng-u.lng),k=y(u.lat),x=y(g.lat),S=Math.sin(C/2),L=Math.sin(_/2);return 6371e3*(2*Math.asin(Math.sqrt(S*S+Math.cos(k)*Math.cos(x)*L*L)))},c=e.computed(()=>{if(t.points.length<2)return 0;let u=0;for(let g=1;g<t.points.length;g+=1)u+=s(t.points[g-1].coords,t.points[g].coords);return t.isShapeClosed&&t.points.length>=2&&(u+=s(t.points[t.points.length-1].coords,t.points[0].coords)),u}),i=e.computed(()=>c.value>=1e3?`${kt(c.value/1e3)} км`:`${kt(c.value)} м`);function d(u){if(u.length<3)return 0;const g=u[0].lat,y=u[0].lng,C=(k,x)=>{const S=(k-g)*110574;return{x:(x-y)*111320*Math.cos(g*Math.PI/180),y:S}};let _=0;for(let k=0;k<u.length;k++){const x=(k+1)%u.length,S=C(u[k].lat,u[k].lng),L=C(u[x].lat,u[x].lng);_+=S.x*L.y-S.y*L.x}return Math.abs(_)*.5}const f=e.computed(()=>{if(!t.isShapeClosed||t.points.length<3)return 0;const u=t.points.map(g=>g.coords);return d(u)}),h=e.computed(()=>f.value>0),w=e.computed(()=>{const u=f.value;if(u===0)return"—";if(o.value==="km2"){const y=u/1e6;return`${kt(y)} км²`}if(o.value==="ha"){const y=u/1e4;return`${kt(y)} га`}const g=u>=1?Math.round(u):u;return`${kt(g)} м²`}),p=e.computed(()=>{const u=t.points.length;return u===1?"1 точка":u>=2&&u<=4?`${u} точки`:`${u} точок`});return e.watch(()=>t.points.length,()=>{t.points.length===0&&(n.value=!1)}),(u,g)=>(e.openBlock(),e.createElementBlock("div",Ni,[e.createElementVNode("button",Ai,[e.createElementVNode("span",Fi,[e.createVNode(e.unref(P.Info),{size:12,"stroke-width":2.5})]),g[1]||(g[1]=e.createElementVNode("span",{class:"text-xs font-medium text-gray-600 flex-1"},"Загальна відстань",-1)),e.createElementVNode("span",Di,e.toDisplayString(i.value),1)]),e.createElementVNode("div",Mi,[e.createElementVNode("button",Li,[e.createElementVNode("span",Ti,[e.createVNode(e.unref(P.Info),{size:12,"stroke-width":2.5})]),g[2]||(g[2]=e.createElementVNode("span",{class:"text-xs font-medium text-gray-600 flex-1"},"Площа",-1)),e.createElementVNode("div",Ii,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(l,(y,C)=>e.createElementVNode("button",{key:y.id,type:"button",class:e.normalizeClass(["px-2.5 py-1 text-xs font-medium transition-colors border-r border-gray-200 last:border-r-0",C===0&&"rounded-l-md",C===l.length-1&&"rounded-r-md",o.value===y.id?"bg-white text-green-600 font-semibold shadow-sm":"text-gray-600 hover:bg-gray-50"]),onClick:e.withModifiers(_=>o.value=y.id,["stop"])},e.toDisplayString(y.label),11,Ri)),64))])]),e.createElementVNode("div",Oi,[h.value?(e.openBlock(),e.createElementBlock("span",zi,e.toDisplayString(w.value),1)):(e.openBlock(),e.createElementBlock("span",Pi,"—"))])]),e.createElementVNode("div",ji,[e.createElementVNode("span",Ui,[e.createVNode(e.unref(P.Info),{size:12,"stroke-width":2.5})]),e.createElementVNode("span",Hi,e.toDisplayString(p.value),1),e.createElementVNode("button",{type:"button",class:"text-xs text-blue-500 hover:text-blue-600 font-medium transition-colors",onClick:e.withModifiers(a,["stop"])}," Координати ")]),n.value?(e.openBlock(),e.createElementBlock("div",qi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.points,(y,C)=>(e.openBlock(),e.createBlock($i,{key:y.id,id:y.id,index:C+1,coords:y.coords,onUpdate:g[0]||(g[0]=_=>u.$emit("update-point",_)),onDelete:_=>u.$emit("delete-point",y.id)},null,8,["id","index","coords","onDelete"]))),128))])):e.createCommentVNode("",!0)]))}}),Gi={class:"px-3 py-3 bg-blue-50/50 border-b border-blue-100"},Wi={class:"flex items-start gap-2"},Yi=e.defineComponent({__name:"InfoHint",setup(r){return(t,n)=>(e.openBlock(),e.createElementBlock("div",Gi,[e.createElementVNode("div",Wi,[e.createVNode(e.unref(P.Info),{size:16,"stroke-width":2,class:"text-blue-600 flex-shrink-0 mt-0.5"}),n[0]||(n[0]=e.createElementVNode("div",{class:"space-y-1"},[e.createElementVNode("p",{class:"text-xs font-medium text-blue-900"}," Натискайте на карту, щоб додати точки вимірювання "),e.createElementVNode("p",{class:"text-[10px] text-blue-700"},' Або скористайтесь кнопкою "Додати" внизу для введення координат вручну ')],-1))])]))}}),Zi={class:"space-y-1.5"},Xi={class:"space-y-1 max-h-40 overflow-y-auto"},Ji={class:"text-gray-700"},Qi={class:"font-semibold text-slate-800"},ec=e.defineComponent({__name:"ToPointList",props:{points:{},isShapeClosed:{type:Boolean}},setup(r){const t=r;function n(a,s){const c=p=>p*Math.PI/180,i=c(s.lat-a.lat),d=c(s.lng-a.lng),f=c(a.lat),h=c(s.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(i/2)**2+Math.cos(f)*Math.cos(h)*Math.sin(d/2)**2)))}function o(a){return fr(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=n(s[c].coords,s[i].coords);a.push({from:c+1,to:i+1,label:o(d)})}return a});return(a,s)=>(e.openBlock(),e.createElementBlock("div",Zi,[s[0]||(s[0]=e.createElementVNode("p",{class:"text-xs font-medium text-gray-600 mb-1.5"},"Відстань між точками:",-1)),e.createElementVNode("div",Xi,[(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",Ji,"Точка "+e.toDisplayString(c.from)+" → Точка "+e.toDisplayString(c.to),1),e.createElementVNode("span",Qi,e.toDisplayString(c.label),1)]))),128))])]))}}),tc={class:"ruler-panel-wrap absolute bottom-12 right-4 z-[1001] animate-slide-up"},nc={class:"bg-white rounded-xl shadow-2xl border border-gray-200 overflow-hidden w-72"},rc={class:"bg-gradient-to-r from-blue-400 to-blue-500 px-3 py-2 flex items-center justify-between"},oc={class:"flex items-center gap-2"},lc={class:"w-6 h-6 bg-white/20 rounded-lg flex items-center justify-center"},ac={class:"flex border-b border-gray-200"},sc={key:1,class:"px-3 py-2.5"},ic={key:1,class:"text-xs text-gray-500"},cc={class:"px-2.5 py-1.5 bg-gray-50 border-t border-gray-200 space-y-1.5"},dc={class:"flex gap-1.5"},uc=e.defineComponent({name:"RulerPanel",__name:"RulerPanel",emits:["close","tab-change","points-change","add-request","complete","shape-closed-change"],setup(r,{expose:t,emit:n}){const o=n,l=e.ref([]),a=e.computed(()=>l.value.length>0),s=e.ref(!1),c=e.ref(!1),i=e.ref("general");function d(E){i.value=E,o("tab-change",E)}e.onMounted(()=>{o("tab-change",i.value)});const f=e.computed(()=>l.value.length>=3&&!c.value);let h=1;const w=()=>l.value.map(E=>({id:E.id,coords:{...E.coords}})),p=()=>{l.value.length<3&&c.value&&(c.value=!1,o("shape-closed-change",!1)),o("points-change",w())},u=()=>{const E=h;return h+=1,E},g=E=>{l.value=[...l.value,{id:u(),coords:{lat:E.lat,lng:E.lng}}],p()},y=({id:E,coords:$})=>{const M=l.value.findIndex(D=>D.id===E);if(M===-1)return;const R=[...l.value];R[M]={id:E,coords:{...$}},l.value=R,p()},C=E=>{l.value=l.value.filter($=>$.id!==E),p()},_=()=>{l.value=[],c.value&&(c.value=!1,o("shape-closed-change",!1)),p()},k=E=>{y(E)},x=E=>{C(E)},S=()=>{s.value=!0,o("add-request")},L=E=>{g(E),s.value=!1},N=()=>{s.value=!1},V=()=>{f.value&&(c.value=!0,o("complete"),o("shape-closed-change",!0))},A=()=>{_(),s.value=!1,o("close")};return t({addPoint:g,clearPoints:_}),(E,$)=>(e.openBlock(),e.createElementBlock("div",tc,[e.createElementVNode("div",nc,[e.createElementVNode("div",rc,[e.createElementVNode("div",oc,[e.createElementVNode("div",lc,[e.createVNode(e.unref(P.Ruler),{size:14,"stroke-width":2,class:"text-white"})]),$[2]||($[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:A},[e.createVNode(e.unref(P.X),{size:14,"stroke-width":2,class:"text-white"})])]),e.createElementVNode("div",ac,[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:$[0]||($[0]=M=>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:$[1]||($[1]=M=>d("topoint"))}," До точки ",2)]),i.value==="general"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[a.value?(e.openBlock(),e.createBlock(Ki,{key:1,points:l.value,"is-shape-closed":c.value,onUpdatePoint:k,onDeletePoint:x},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createBlock(Yi,{key:0}))],64)):(e.openBlock(),e.createElementBlock("div",sc,[a.value?(e.openBlock(),e.createBlock(ec,{key:0,points:l.value,"is-shape-closed":c.value},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createElementBlock("p",ic,"Додайте точки на карті, щоб бачити відстані між ними."))])),e.createElementVNode("div",cc,[e.createElementVNode("div",dc,[s.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(_i,{key:0,onClick:S})),f.value?(e.openBlock(),e.createBlock(Ci,{key:1,onClick:V})):e.createCommentVNode("",!0)]),s.value?(e.openBlock(),e.createBlock(wi,{key:0,onSubmit:L,onCancel:N})):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createBlock(vi,{key:1,onClick:_})):e.createCommentVNode("",!0)])])]))}}),Oe="ruler-points",at="ruler-line",st="ruler-polygon",it="ruler-segments",pc=e.defineComponent({__name:"RulerLayer",props:{map:{},points:{},isShapeClosed:{type:Boolean},labelMode:{}},setup(r){function t(u,g){const y=L=>L*Math.PI/180,C=y(g.lat-u.lat),_=y(g.lng-u.lng),k=y(u.lat),x=y(g.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(C/2)**2+Math.cos(k)*Math.cos(x)*Math.sin(_/2)**2)))}function n(u){return fr(u)}const o=r;function l(){return{type:"FeatureCollection",features:[]}}function a(u,g,y){const C=y??"general",_=[];let k=0;_.push(0);for(let x=1;x<u.length;x++)k+=t(u[x-1].coords,u[x].coords),_.push(k);return g&&u.length>=2&&(k+=t(u[u.length-1].coords,u[0].coords)),{type:"FeatureCollection",features:u.map((x,S)=>{const L=C==="general"?S===0?"0":n(_[S]):S===0?"0":n(t(u[S-1].coords,u[S].coords));return{type:"Feature",geometry:{type:"Point",coordinates:[x.coords.lng,x.coords.lat]},properties:{id:x.id,index:S+1,label:L}}})}}function s(u,g){if(u.length<2)return l();const y=[];for(let C=0;C<u.length;C++){const _=C===u.length-1&&g?0:C+1;if(_>=u.length)break;const k=u[C].coords,x=u[_].coords,S=t(k,x);y.push({type:"Feature",geometry:{type:"LineString",coordinates:[[k.lng,k.lat],[x.lng,x.lat]]},properties:{distance:n(S)}})}return{type:"FeatureCollection",features:y}}function c(u,g){if(u.length<2)return l();const y=u.map(C=>[C.coords.lng,C.coords.lat]);return g&&y.push(y[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"LineString",coordinates:y},properties:{}}]}}function i(u){if(u.length<3)return l();const g=u.map(y=>[y.coords.lng,y.coords.lat]);return g.push(g[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"Polygon",coordinates:[g]},properties:{}}]}}let d=!1;function f(u){u.getSource(Oe)||(u.addSource(Oe,{type:"geojson",data:l()}),u.addLayer({id:`${Oe}-circle`,type:"circle",source:Oe,paint:{"circle-radius":5,"circle-color":"#1e293b","circle-stroke-width":2,"circle-stroke-color":"#ffffff"}}),u.addLayer({id:`${Oe}-labels`,type:"symbol",source:Oe,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}})),u.getSource(it)||(u.addSource(it,{type:"geojson",data:l()}),u.addLayer({id:`${it}-labels`,type:"symbol",source:it,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}})),u.getSource(at)||(u.addSource(at,{type:"geojson",data:l()}),u.addLayer({id:`${at}-layer`,type:"line",source:at,paint:{"line-color":"#3b82f6","line-width":2}})),u.getSource(st)||(u.addSource(st,{type:"geojson",data:l()}),u.addLayer({id:`${st}-layer`,type:"fill",source:st,paint:{"fill-color":"#93c5fd","fill-opacity":.25}})),d=!0}function h(u){if(u){try{u.getLayer(`${st}-layer`)&&u.removeLayer(`${st}-layer`),u.getSource(st)&&u.removeSource(st),u.getLayer(`${at}-layer`)&&u.removeLayer(`${at}-layer`),u.getSource(at)&&u.removeSource(at),u.getLayer(`${it}-labels`)&&u.removeLayer(`${it}-labels`),u.getSource(it)&&u.removeSource(it),u.getLayer(`${Oe}-labels`)&&u.removeLayer(`${Oe}-labels`),u.getLayer(`${Oe}-circle`)&&u.removeLayer(`${Oe}-circle`),u.getSource(Oe)&&u.removeSource(Oe)}catch{}d=!1}}function w(u){if(!u)return;const g=u.getSource(Oe),y=u.getSource(at),C=u.getSource(st),_=u.getSource(it),k=o.points,x=o.labelMode??"general";g&&g.setData(a(k,o.isShapeClosed,x)),y&&y.setData(c(k,o.isShapeClosed)),C&&C.setData(i(k)),_&&_.setData(x==="topoint"?s(k,o.isShapeClosed):l())}function p(){const u=o.map;u&&(d||f(u),w(u))}return e.watch(()=>[o.points,o.isShapeClosed,o.labelMode],()=>p(),{deep:!0,immediate:!0}),e.watch(()=>o.map,()=>p(),{immediate:!0}),e.onBeforeUnmount(()=>{h(o.map)}),(u,g)=>null}});function fc(r={}){const t=e.ref(!1),n=e.ref([]),o=e.ref(!1),l=e.ref("general"),a=e.ref(null);function s(){t.value?c():(t.value=!0,r.onActivate?.())}function c(){t.value=!1,n.value=[],o.value=!1,a.value?.clearPoints(),r.onDeactivate?.()}function i(p){n.value=p}function d(p){l.value=p}function f(p){o.value=p}function h(p){t.value&&a.value?.addPoint({lat:p.lat,lng:p.lng})}const w=e.computed(()=>n.value.length>0);return{isRulerActive:t,rulerPoints:n,rulerShapeClosed:o,rulerActiveTab:l,rulerPanelRef:a,hasRulerPoints:w,toggleRuler:s,closeRuler:c,onRulerPointsChange:i,onRulerTabChange:d,onRulerShapeClosedChange:f,handleRulerMapClick:h}}const xt=1e-10,Wt=/([+-]?\d{1,3})\s*[°º˚]\s*(\d{1,2})\s*['’′`]\s*(\d{1,2}(?:\.\d+)?)\s*["”″]\s*([NSEW])/gi,mc=/^[+-]?\d+(?:\.\d+)?$/;function hc(r,t,n){const o=r.split(/\r?\n/).map(d=>d.trim()).filter(Boolean);if(o.length<3)return{ok:!1,errors:[{line:0,message:"Має бути щонайменше 3 рядки координат."}]};if(o.length>100)return{ok:!1,errors:[{line:0,message:"Допускається не більше 100 рядків координат."}]};const l=[],a=[];if(o.forEach((d,f)=>{const h=f+1,w=t==="decimal"?gc(d,h,n):yc(d,h,n);if(!w.ok){l.push(...w.errors);return}const p=a[a.length-1];if(p&&hr(p,w.point)){l.push({line:h,message:"Послідовні точки не повинні дублюватися."});return}a.push(w.point)}),l.length)return{ok:!1,errors:l};if(new Set(a.map(bc)).size<3)return{ok:!1,errors:[{line:0,message:"Полігон повинен містити мінімум 3 унікальні точки."}]};const c=[...a];let i=!1;return hr(c[0],c[c.length-1])||(c.push(c[0]),i=!0),kc(c)?{ok:!1,errors:[{line:0,message:"Полігон має самоперетин."}]}:{ok:!0,ring:c,wasClosedAutomatically:i}}function gc(r,t,n){const o=[];if(/[A-Za-zА-Яа-яІіЇїЄєҐґ]/.test(r))return{ok:!1,errors:[{line:t,message:"У десятковому форматі не допускаються літери."}]};const l=r.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=>mc.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=n==="lat-lon"?a:s,i=n==="lat-lon"?s:a;return(c<-90||c>90)&&o.push({line:t,message:"Широта поза діапазоном (-90..90)."}),(i<-180||i>180)&&o.push({line:t,message:"Довгота поза діапазоном (-180..180)."}),o.length?{ok:!1,errors:o}:{ok:!0,point:[i,c]}}function yc(r,t,n){Wt.lastIndex=0;const o=[...r.matchAll(Wt)];if(o.length<2)return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати DMS-координати."}]};if(o.length>2)return{ok:!1,errors:[{line:t,message:"У рядку дозволено лише одну пару координат."}]};if(Wt.lastIndex=0,r.replace(Wt," ").replace(/[\s,;]+/g,"").trim().length)return{ok:!1,errors:[{line:t,message:"У рядку виявлено зайві символи або значення."}]};const a=mr(o[0],t,n==="lat-lon"?"lat":"lon"),s=mr(o[1],t,n==="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=n==="lat-lon"?a.value:s.value;return{ok:!0,point:[n==="lat-lon"?s.value:a.value,i]}}function mr(r,t,n){const o=Number(r[1]),l=Number(r[2]),a=Number(r[3]),s=String(r[4]).toUpperCase();if(!Number.isFinite(o)||!Number.isFinite(l)||!Number.isFinite(a))return{ok:!1,error:{line:t,message:"Невірні значення DMS-координат."}};if(n==="lat"&&!(s==="N"||s==="S")||n==="lon"&&!(s==="E"||s==="W"))return{ok:!1,error:{line:t,message:n==="lat"?"Для широти напрям повинен бути N або S.":"Для довготи напрям повинен бути E або W."}};if(l<0||l>59)return{ok:!1,error:{line:t,message:"Хвилини повинні бути в діапазоні 0..59."}};if(a<0||a>59)return{ok:!1,error:{line:t,message:"Секунди повинні бути в діапазоні 0..59."}};const d=Math.abs(o),f=n==="lat"?90:180;if(d>f)return{ok:!1,error:{line:t,message:n==="lat"?"Градуси широти повинні бути в діапазоні 0..90.":"Градуси довготи повинні бути в діапазоні 0..180."}};if(d===f&&(l!==0||a!==0))return{ok:!1,error:{line:t,message:n==="lat"?"Для 90° широти хвилини й секунди мають бути 0.":"Для 180° довготи хвилини й секунди мають бути 0."}};const h=d+l/60+a/3600;return{ok:!0,value:s==="S"||s==="W"?-h:h}}function bc(r){return`${r[0].toFixed(12)}:${r[1].toFixed(12)}`}function hr(r,t){return Math.abs(r[0]-t[0])<xt&&Math.abs(r[1]-t[1])<xt}function kc(r){if(r.length<4)return!1;for(let t=0;t<r.length-1;t+=1){const n=r[t],o=r[t+1];for(let l=t+1;l<r.length-1;l+=1){if(Math.abs(t-l)<=1||t===0&&l===r.length-2)continue;const a=r[l],s=r[l+1];if(xc(n,o,a,s))return!0}}return!1}function xc(r,t,n,o){const l=Yt(r,t,n),a=Yt(r,t,o),s=Yt(n,o,r),c=Yt(n,o,t);return!!(l!==a&&s!==c||l===0&&Zt(r,n,t)||a===0&&Zt(r,o,t)||s===0&&Zt(n,r,o)||c===0&&Zt(n,t,o))}function Yt(r,t,n){const o=(t[1]-r[1])*(n[0]-t[0])-(t[0]-r[0])*(n[1]-t[1]);return Math.abs(o)<xt?0:o>0?1:2}function Zt(r,t,n){return t[0]<=Math.max(r[0],n[0])+xt&&t[0]+xt>=Math.min(r[0],n[0])&&t[1]<=Math.max(r[1],n[1])+xt&&t[1]+xt>=Math.min(r[1],n[1])}const wc={key:0,class:"absolute top-4 left-4 z-[1000] w-[calc(100%-20px)] sm:w-[350px]"},_c={key:1,class:"form-geom__panel flex gap-1 items-start mt-2"},vc={class:"flex items-center gap-1"},Cc=["disabled"],Ec={key:0,class:"absolute z-[1600] mt-1 min-w-[120px] bg-white border border-gray-300 shadow-lg rounded-lg text-sm overflow-hidden"},Bc=["disabled"],Vc=["disabled"],Sc={class:"mt-4 flex justify-end gap-2"},$c=["disabled"],Nc={class:"absolute top-4 right-4 z-[1000]"},Ac={class:"flex flex-col gap-[2px]"},Fc=["disabled"],Dc=["disabled"],Mc=["disabled"],Lc=["disabled"],Tc={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"},Ic={class:"space-y-0.5"},Rc={class:"text-gray-500"},Oc={class:"text-gray-900 text-right break-all"},zc={class:"absolute left-4 bottom-[36px] z-[1000]"},Pc={class:"flex flex-col gap-2"},jc={key:0,class:"bg-white/95 border border-gray-200 rounded-md shadow-sm px-3 py-2 text-xs text-gray-700 min-w-[200px]"},Uc={class:"flex flex-col gap-1"},Hc=["checked","disabled","onChange"],qc={class:"text-gray-700 text-xs font-medium"},Kc={class:"absolute bottom-0 left-0 right-0 z-[1000] min-h-[28px] bg-white/95 border-t border-gray-200 text-xs text-gray-700 flex items-center gap-4 pt-1"},Gc={key:0,class:"form-geom__feature flex items-center text-xs transition-all gap-2 w-full px-2 pb-1"},Wc={class:"mr-auto flex items-center gap-2 min-w-0 relative"},Yc={class:"shrink-0"},Zc={class:"font-bold"},Xc={class:"flex items-center"},Jc={class:"text-xs mr-2"},Qc={key:0,class:"text-xs mr-2"},ed={key:1,class:"text-xs mr-2"},td=["disabled"],nd=["disabled"],Xt="__vs_form_maplibre_loader__",Jt="vs-global-bounds-src",Qt="vs-global-bounds-line",gr=me(e.defineComponent({__name:"vs-input-map",props:{tools:{},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(r,{emit:t}){const n=r,o=t,l=e.useAttrs(),a=e.computed(()=>!!n.disabled),s=e.ref(!1),c=e.ref(null),i=e.ref(0),d=e.ref(""),f=e.ref(null),h=e.ref(null),w=e.ref(null),p=fc({onActivate(){if(z)try{z.changeMode("simple_select",{featureIds:[]})}catch{}d.value=""},onDeactivate(){}});function u(){p.toggleRuler()}const g=e.getCurrentInstance(),y=g?.appContext?.config?.globalProperties?.$settings??{},C=y?.map??{},_=g?.vnode?.props??{};function k(m){return Object.prototype.hasOwnProperty.call(_,m)||Object.prototype.hasOwnProperty.call(_,m.replace(/[A-Z]/g,b=>`-${b.toLowerCase()}`))}const x=Array.isArray(C.center)&&C.center.length===2?C.center:Array.isArray(y.center)&&y.center.length===2?y.center:[30,50],S=typeof C.zoom=="number"?C.zoom:typeof y.zoom=="number"?y.zoom:typeof y.defaultZoom=="number"?y.defaultZoom:10,L=e.computed(()=>k("center")?n.center:C.center??n.center),N=e.computed(()=>k("zoom")?n.zoom:C.zoom??n.zoom),V=e.computed(()=>k("katottg")?String(n.katottg??""):String(C.katottg??n.katottg??"")),A=e.computed(()=>k("layers")?n.layers??[]:C.layers??n.layers??[]),E=e.computed(()=>k("bounds")?n.bounds:C.bounds??n.bounds),$=e.ref(Array.isArray(L.value)&&L.value.length===2?[...L.value]:x),M=e.ref(typeof N.value=="number"?N.value:S),R=e.ref(n.modelValue),D=e.ref(null),I=e.ref(null),T=e.ref([]),U=e.ref(!1),H=e.ref(!1),W=e.ref([]),Q=e.ref({coordinates:"",format:"decimal",order:"lat-lon"}),ve={coordinates:{type:"Textarea",label:"Координати вершин полігону (3-100 точок)",placeholder:`50.4501, 30.5234
1
+ (function(pe,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):(pe=typeof globalThis<"u"?globalThis:pe||self,e(pe.FormBuilder={},pe.Vue,pe.OpenGISCore,pe.lucide))})(this,(function(pe,e,ue,j){"use strict";const or=e.defineComponent({__name:"vs-info-tooltip",props:{text:{}},setup(r){const t=r,n=e.ref(!1),o=e.ref({top:"0px",left:"0px"});function l(s){if(!t.text)return;const c=s.currentTarget.getBoundingClientRect();o.value={top:`${c.bottom+4}px`,left:`${Math.min(c.left,window.innerWidth-230)}px`},n.value=!0}function a(){n.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"},[n.value&&r.text?(e.openBlock(),e.createElementBlock("div",{key:0,style:e.normalizeStyle(o.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(r.text),5)):e.createCommentVNode("",!0)]))],64))}}),$o={class:"w-full relative"},No={key:0,class:"text-[14px] font-medium text-gray-900 mb-2 flex items-center gap-1"},Ao={class:"opacity-100"},Fo={key:0,class:"text-red-500 text-[14px]"},Mo={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Do=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(r){const t=r,n=e.computed(()=>typeof t.item?.label=="string"&&t.item.label?t.item.label:t.item?.ua||t.label||t.ua),o=e.computed(()=>!!n.value),l=e.computed(()=>!!t.item?.rules?.includes("required")),a=e.computed(()=>t.item?.info||"");return(s,c)=>(e.openBlock(),e.createElementBlock("div",$o,[o.value?(e.openBlock(),e.createElementBlock("div",No,[e.createElementVNode("span",Ao,e.toDisplayString(n.value),1),l.value?(e.openBlock(),e.createElementBlock("span",Fo,"*")):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createBlock(or,{key:1,text:a.value},null,8,["text"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(s.$slots,"default",e.mergeProps(s.$attrs,{class:{"opacity-60":r.item.disabled}})),r.error?(e.openBlock(),e.createElementBlock("span",Mo,e.toDisplayString(r.error),1)):e.createCommentVNode("",!0)]))}}),Lo={class:"w-full relative flex flex-row items-center gap-2"},To={key:0,class:"text-red-500 text-[14px]"},Io={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Ro=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(r){const t=r,n=e.computed(()=>t.item?.label||t.label||t.ua),o=e.computed(()=>t.item?.info||""),l=e.computed(()=>t.columns??{container:12,label:3}),a=e.computed(()=>{const{container:d,label:f}=l.value;return!d||d<=0?0:Math.min(Math.max(f??0,0),d)/d}),s=e.computed(()=>t.item?.type==="html"||a.value<=0?!1:!!n.value),c=e.computed(()=>{if(!s.value)return{};const d=`${a.value*100}%`;return{flexBasis:d,maxWidth:d}}),i=e.computed(()=>{const{container:d,label:f}=l.value;if(!d||d<=0)return{};if(t.item?.type==="html")return{flexBasis:"100%",maxWidth:"100%"};if(!s.value)return{flexBasis:"100%",maxWidth:"100%"};const m=Math.max(d-Math.max(f??0,0),0)/d;if(!m)return{};const x=`${m*100}%`;return{flexBasis:x,maxWidth:x}});return(d,f)=>(e.openBlock(),e.createElementBlock("div",Lo,[s.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"text-sm text-gray-900 font-medium flex shrink-0 items-center gap-1",style:e.normalizeStyle(c.value)},[e.createTextVNode(e.toDisplayString(n.value)+" ",1),r.item?.rules?.includes("required")&&n.value?(e.openBlock(),e.createElementBlock("span",To,"*")):e.createCommentVNode("",!0),o.value?(e.openBlock(),e.createBlock(or,{key:1,text:o.value},null,8,["text"])):e.createCommentVNode("",!0)],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"flex-1 min-w-0",style:e.normalizeStyle(i.value)},[e.renderSlot(d.$slots,"default",e.normalizeProps(e.guardReactiveProps(d.$attrs)))],4),r.error?(e.openBlock(),e.createElementBlock("span",Io,e.toDisplayString(r.error),1)):e.createCommentVNode("",!0)]))}}),Oo={class:"w-full relative"},zo={key:0,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Po=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(r){return(t,n)=>(e.openBlock(),e.createElementBlock("div",Oo,[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(t.$attrs))),r.error?(e.openBlock(),e.createElementBlock("span",zo,e.toDisplayString(r.error),1)):e.createCommentVNode("",!0)]))}}),jo={class:"flex-1 min-w-0"},Uo={key:0,class:"text-sm font-medium text-slate-700 dark:text-slate-200 flex items-center gap-1"},Ho={class:"truncate"},qo={key:0,class:"text-red-500 text-[14px]"},Go=["innerHTML"],Ko={key:0,class:"mt-1 text-xs text-red-500"},Wo={default:Do,horizontal:Ro,inline:Po,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(r){const t=r,n=e.ref("uk");e.computed(()=>(t.item??{})?.[n.value]??t.ua??t.label??"");const o=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;n.value=c||"uk"};return e.onMounted(()=>{try{typeof localStorage<"u"&&localStorage.locale&&(n.value=localStorage.locale)}catch{}window.addEventListener("storage",s)}),e.onUnmounted(()=>{window.removeEventListener("storage",s)}),(c,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["w-full relative",{"opacity-60":r.item?.disabled}])},[e.createElementVNode("div",{class:e.normalizeClass(["gap-2 md:flex-row md:items-center md:justify-between",[["switcher","native-select"].includes(r.item.type)?"flex flex-col":""]])},[e.createElementVNode("div",jo,[r.ua||r.label?(e.openBlock(),e.createElementBlock("p",Uo,[e.createElementVNode("span",Ho,e.toDisplayString(r.item[n.value]||r.ua||r.label),1),l.value?(e.openBlock(),e.createElementBlock("span",qo,"*")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),o.value?(e.openBlock(),e.createElementBlock("p",{key:1,class:"text-xs text-slate-500 dark:text-slate-400",innerHTML:o.value},null,8,Go)):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:e.normalizeClass(["w-full",["select","native-select"].includes(r.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",Ko,e.toDisplayString(a.value),1)):e.createCommentVNode("",!0)],2))}})};function Te(r){return{inputClass:e.computed(()=>{const n=`disabled:opacity-50 disabled:cursor-not-allowed outline-none focus:ring-2 focus:ring-ring focus:ring-${r?.primaryColor||"blue"}-500 border border-solid border-stone-200 rounded-md text-sm text-stone-800 placeholder:text-stone-400 `;return r?.size==="sm"?`${n}h-[32px]`:`${n}h-[38px]`})}}const Yo=["placeholder","disabled"],Zo=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(r){const t=r,{inputClass:n}=Te(t.style),o=e.useModel(r,"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=>o.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(n),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Yo)),[[e.vModelText,o.value]])}}),Xo=["placeholder","disabled","maxlength","minlength"],Bt=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(r){const t=r,{inputClass:n}=Te(t.style),o=e.useModel(r,"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 o.value=="string"&&(o.value=o.value.trim())}return(d,f)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"text","onUpdate:modelValue":f[0]||(f[0]=m=>o.value=m),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",[r.customClass,e.unref(n),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,Xo)),[[e.vModelText,o.value]])}}),Jo=["placeholder","disabled","min","max"],lr=e.defineComponent({__name:"vs-input-number",props:e.mergeModels({min:{},max:{},style:{default:()=>({})},customClass:{},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,{inputClass:n}=Te(t.style),o=e.useModel(r,"modelValue"),l=e.computed(()=>!!t.disabled);return(a,s)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"number",step:"any","onUpdate:modelValue":s[0]||(s[0]=c=>o.value=c),placeholder:r.placeholder,disabled:l.value,class:e.normalizeClass(["py-1.5 px-3 block w-full bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"},min:r.min,max:r.max},null,10,Jo)),[[e.vModelText,o.value]])}}),Qo={class:"flex items-center gap-[4px]"},el=["value","id","disabled"],tl=["for"],nl={class:"text-[14px] text-gray-700 flex items-center dark:text-neutral-400"},rl=e.defineComponent({__name:"vs-checkbox-default",props:{value:{default:""},label:{default:""},disabled:{type:Boolean,default:!1},id:{},modelValue:{default:""},info:{},error:{}},emits:["update:modelValue"],setup(r,{emit:t}){const n=t,o=r,l=e.computed({get:()=>o.modelValue,set:s=>n("update:modelValue",s)}),a=e.computed(()=>!!o.disabled);return(s,c)=>(e.openBlock(),e.createElementBlock("div",Qo,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",value:r.value,"onUpdate:modelValue":c[0]||(c[0]=i=>l.value=i),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:r.id,disabled:a.value},null,10,el),[[e.vModelCheckbox,l.value]]),e.createElementVNode("label",{for:r.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",r.error?"border-red-600":""]])},[e.createVNode(e.unref(j.Check),{class:"h-4 w-4"})],2),e.createElementVNode("span",nl,[e.renderSlot(s.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(r.label),1)])])],10,tl)]))}}),ol=["name","value","disabled"],ll={class:"flex items-center gap-[6px] text-[14px]"},al={key:0,class:"text-[16px]"},sl=["src"],il=e.defineComponent({__name:"vs-checkbox-buttons",props:{value:{type:[String,Number,Boolean],default:""},label:{default:""},modelValue:{default:""},disabled:{type:Boolean},id:{},icon:{},imgUrl:{},style:{}},emits:["update:modelValue"],setup(r,{emit:t}){const n=r,o=t,l=e.computed({get:()=>n.modelValue,set:c=>{o("update:modelValue",c)}}),a=e.computed(()=>Array.isArray(l.value)?l.value.includes(n.value):l.value===!0||l.value===n.value),s=e.computed(()=>n.style?.size==="xs"?"p-1.5 text-xs":n.style?.size==="lg"?"p-3.5 text-[20px]":"p-2.5 text-xs");return(c,i)=>(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:r.id,value:r.value,"onUpdate:modelValue":i[0]||(i[0]=d=>l.value=d),disabled:r.disabled},null,8,ol),[[e.vModelCheckbox,l.value]]),e.createElementVNode("span",ll,[r.icon||r.imgUrl?(e.openBlock(),e.createElementBlock("span",al,[r.icon?(e.openBlock(),e.createElementBlock("i",{key:0,class:e.normalizeClass(r.icon)},null,2)):e.createCommentVNode("",!0),r.imgUrl?(e.openBlock(),e.createElementBlock("img",{key:1,src:r.imgUrl,width:"16",height:"16",alt:"icon"},null,8,sl)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(c.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(r.label),1)])])],2))}}),cl={class:"flex items-center"},_n=e.defineComponent({__name:"vs-input-checkbox-item",props:{value:{default:""},label:{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(r,{emit:t}){const n=r,o=t,l=`radio-${Math.floor(Math.random()*1e4)}`,a=e.computed({get:()=>Array.isArray(n.modelValue)?Array.isArray(n.modelValue)&&n.modelValue.includes(n.value):n.modelValue,set:c=>{if(Array.isArray(n.modelValue)){let i=[...n.modelValue];c?i.includes(n.value)||i.push(n.value):i=i.filter(d=>d!==n.value),o("update:modelValue",i)}else o("update:modelValue",c)}}),s=e.ref(`vs-checkbox-${n.view||"default"}`);return(c,i)=>(e.openBlock(),e.createElementBlock("div",cl,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value==="vs-checkbox-buttons"?e.unref(il):e.unref(rl)),{value:r.value,label:r.label,info:r.option?.info,disabled:r.disabled,modelValue:a.value,"onUpdate:modelValue":i[0]||(i[0]=d=>a.value=d),id:l,icon:r.icon,imgUrl:r.imgUrl,style:e.normalizeStyle(r.style),error:r.error},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.label),1)]),_:1},8,["value","label","info","disabled","modelValue","icon","imgUrl","style","error"]))]))}}),dl={key:0,class:"flex items-start gap-x-1"},ul={key:0,class:"text-red-500 text-[14px]"},pl=["title"],fl=["disabled"],vn=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(r){const t=r,n=e.useModel(r,"modelValue");return(o,l)=>t.view==="checkbox"?(e.openBlock(),e.createElementBlock("div",dl,[e.createVNode(_n,{modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=a=>n.value=a),label:r.text,error:r.error||""},null,8,["modelValue","label","error"]),r.rules?.includes("required")?(e.openBlock(),e.createElementBlock("span",ul,"*")):e.createCommentVNode("",!0),r.i?(e.openBlock(),e.createElementBlock("button",{key:1,class:"cursor-pointer",title:r.i,onClick:l[1]||(l[1]=e.withModifiers(()=>{},["prevent"]))},[e.createVNode(e.unref(j.Info),{class:"h-4 w-4 text-gray-500"})],8,pl)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:e.normalizeClass(["inline-flex h-5 w-9 shrink-0 px-[2px] cursor-pointer items-center rounded-full shadow-sm disabled:cursor-not-allowed disabled:opacity-50",[n.value?`bg-${r.style?.primaryColor||"blue"}-500`:"bg-stone-200",r.customClass]]),disabled:r.disabled,onClick:l[2]||(l[2]=a=>n.value=!n.value)},[e.createElementVNode("span",{"data-state":"checked",class:e.normalizeClass(["pointer-events-none block h-4 w-4 rounded-full bg-white shadow-lg ring-0 transition-transform",[n.value?"translate-x-4":"translate-x-0"]])},null,2)],10,fl))}}),ml=["id","innerHTML"],Cn=e.defineComponent({__name:"vs-input-static",props:{text:{default:""},html:{default:""},style:{},customClass:{default:""},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},setup(r){return(t,n)=>(e.openBlock(),e.createElementBlock("div",{id:r.name,class:e.normalizeClass(["text-gray-900",r.customClass]),innerHTML:r.html?r.html:r.text},null,10,ml))}}),hl=["placeholder","disabled","name"],En=e.defineComponent({__name:"vs-input-mask",props:e.mergeModels({name:{},mask:{default:""},unmask:{type:Boolean,default:!1},placeholder:{default:"_"},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,{inputClass:n}=Te(t.style),o=e.useModel(r,"modelValue"),l=e.ref(null);let a=null;function s(c){const i={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},d=new Set;let f=!1;for(let x=0;x<c.length;x+=1){const h=c[x];h==="{"?f=!0:h==="}"?f=!1:f&&d.add(h)}const m={};return Object.keys(i).forEach(x=>{d.has(x)||(m[x]=i[x])}),{mask:c,definitions:m,lazy:!1}}return e.onMounted(async()=>{if(l.value){const{default:c}=await Promise.resolve().then(()=>qn),i=s(t.mask||"");a=c(l.value,i),a.on("accept",()=>{o.value=t.unmask?a.unmaskedValue:a.value}),a.on("complete",()=>{o.value=t.unmask?a.unmaskedValue:a.value}),a.value=o.value!=null?String(o.value):""}}),e.onBeforeUnmount(()=>{a?.destroy()}),e.watch(()=>t.mask,c=>{if(a){const i=s(c||"");a.updateOptions(i)}}),e.watch(o,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:r.placeholder,disabled:r.disabled,name:r.name,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"}},null,10,hl))}}),gl={class:"relative w-full bg-white rounded-lg"},yl={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},bl=["placeholder","disabled"],Bn=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(r){const t=r,{inputClass:n}=Te(t.style),o=e.useModel(r,"modelValue");return(l,a)=>(e.openBlock(),e.createElementBlock("div",gl,[e.createElementVNode("div",yl,[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=>o.value=s),placeholder:r.placeholder,disabled:r.disabled,class:e.normalizeClass(["!pl-8 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,bl),[[e.vModelText,o.value]])]))}}),kl={class:"relative w-full bg-white rounded-lg"},xl={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},wl=["value","placeholder","disabled"],Vn=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:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,{inputClass:n}=Te(t.style),o=e.useModel(r,"modelValue"),l=e.computed(()=>o.value?o.value.startsWith("+")?o.value.slice(1):o.value:""),a=c=>{let{value:i}=c.target;i=i.replace(/^\+/,""),o.value=i?`+${i}`:""},s=c=>{const i=c,{data:d,inputType:f}=i;f&&f.startsWith("delete")||d&&/\D/.test(d)&&i.preventDefault()};return e.watch(()=>o.value,c=>{c&&!c.startsWith("+")?o.value=`+${c.replace(/^\+/,"")}`:c||(o.value="")},{immediate:!0}),(c,i)=>(e.openBlock(),e.createElementBlock("div",kl,[e.createElementVNode("div",xl,[e.createVNode(e.unref(j.Phone),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),i[0]||(i[0]=e.createElementVNode("div",{class:"absolute bottom-2/4 translate-y-2/4 left-[30px] text-gray-500 select-none pointer-events-none"}," + ",-1)),e.createElementVNode("input",{type:"tel",value:l.value,onInput:a,onBeforeinput:s,pattern:"^\\+[1-9]\\d{1,14}$",maxlength:"15",placeholder:r.placeholder,disabled:r.disabled,class:e.normalizeClass(["!pl-10 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,wl)]))}}),_l=["value","disabled"],vl={class:"text-[13px] text-gray-700"},Cl=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:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useModel(r,"modelValue"),o=e.computed(()=>!!t.disabled);return(l,a)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex items-center gap-0",[t.customClass,o.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":a[0]||(a[0]=s=>n.value=s),type:"radio",value:t.value,disabled:o.value,class:"hidden"},null,8,_l),[[e.vModelRadio,n.value]]),e.createElementVNode("span",{class:e.normalizeClass(["w-[16px] shrink-0 h-[16px] border rounded-full flex items-center justify-center mr-[10px]",[`border-${t.style?.primaryColor||"blue"}-500`,o.value?"opacity-50 cursor-not-allowed":""]])},[n.value==t.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["w-[12px] h-[12px] shrink-0 rounded-full",[`bg-${t.style?.primaryColor||"blue"}-500`]])},null,2)):e.createCommentVNode("",!0)],2),e.createElementVNode("span",vl,e.toDisplayString(t.text),1)],2))}}),El=["value","disabled"],Bl={class:"text-[13px] text-gray-700"},Vl={"vs-input-radio-default":Cl,"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:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useModel(r,"modelValue"),o=e.computed(()=>!!t.disabled);return(l,a)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex items-center border rounded-lg px-2 py-1",[n.value==t.value?`ring-2 ring-ring ring-${t.style?.primaryColor||"blue"}-500`:"",t.customClass,o.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":a[0]||(a[0]=s=>n.value=s),type:"radio",value:t.value,disabled:o.value,class:"hidden"},null,8,El),[[e.vModelRadio,n.value]]),e.createElementVNode("span",Bl,e.toDisplayString(t.text),1)],2))}})},Sn=e.defineComponent({__name:"vs-input-radio",props:e.mergeModels({options:{},position:{default:"vertical"},view:{default:"default"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useModel(r,"modelValue"),o=e.computed(()=>Vl[`vs-input-radio-${t.view}`]);return(l,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([r.position==="horizontal"?"flex items-center flex-wrap gap-2":""])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.options,s=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.value),e.mergeProps({key:s?.id,text:s.text,value:s.id.toString(),checked:n.value===s.id,modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=c=>n.value=c)},{ref_for:!0},l.$attrs),null,16,["text","value","checked","modelValue"]))),128))],2))}}),Sl={key:1,class:"w-full flex flex-col gap-4"},$l={key:0,class:"text-sm font-medium text-muted-foreground my-2"},Nl="Без категорії",Al=e.defineComponent({__name:"vs-input-checkbox",props:{options:{default:()=>[]},position:{default:"vertical"},slots:{default:null},colSpan:{default:0},data:{},view:{},group:{default:void 0},values:{default:()=>[]},style:{},customClass:{},disabled:{type:Boolean},modelValue:{default:!1},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(r,{emit:t}){const n=r,o=t,l=e.ref([]),a=e.reactive({}),s=h=>h?.value||h?.id||h?.text||h,c=h=>h.text||String(h),i=h=>`lg:col-span-${h||12}`,d=e.computed(()=>[n.position==="vertical"?"flex flex-col":"",n.colSpan?"grid":"flex justify-start"]),f=h=>h==null||h===""?null:typeof h=="string"||typeof h=="number"?h:String(h),m=e.computed(()=>{if(!n.group)return[];const h=new Map;l.value.forEach(_=>{const k=_[n.group],w=f(k);h.has(w)||h.set(w,[]),h.get(w)?.push(_)});const u=[];n.values?.length&&n.values.forEach(_=>{const k=f(_);u.push(k)});const g=new Set,b=_=>{const k=h.get(_)||[];if(!k.length)return null;const w=_===null?"group-null":`group-${String(_)}`,S=_===null?Nl:String(_);return g.add(_),{key:w,label:S,options:k}},C=[];return u.forEach(_=>{const k=b(_);k&&C.push(k)}),h.forEach((_,k)=>{if(g.has(k))return;const w=b(k);w&&C.push(w)}),C}),x=async()=>{try{const h=await fetch(`/api/suggest/${n.data}`).then(u=>u.json());l.value=h?.data||h}catch(h){console.error(h)}};return e.watch(()=>n.modelValue,h=>{if(typeof h=="boolean"&&l.value.length===1){const u=s(l.value[0]);a[u]=h}else if(Array.isArray(h)){const u=new Set(h);l.value.forEach(g=>{if(!g.disabled){const b=s(g);a[b]=u.has(b)}})}},{immediate:!0}),e.watch(a,()=>{if(!l.value.length){o("update:modelValue",null);return}const h=Object.entries(a).filter(([,u])=>u).map(([u])=>u);o("update:modelValue",h.length===0?[]:h)},{deep:!0}),e.onMounted(()=>{if(n.data)x().then(()=>{if(typeof n.modelValue=="boolean"&&l.value.length===1){const h=s(l.value[0]);a[h]=n.modelValue}else if(Array.isArray(n.modelValue)){const h=new Set(n.modelValue);l.value.forEach(u=>{if(!u.disabled){const g=s(u);a[g]=h.has(g)}})}});else if(l.value=n.options,typeof n.modelValue=="boolean"&&l.value.length===1){const h=s(l.value[0]);a[h]=n.modelValue}else if(Array.isArray(n.modelValue)){const h=new Set(n.modelValue);l.value.forEach(u=>{if(!u.disabled){const g=s(u);a[g]=h.has(g)}})}}),(h,u)=>n.group?(e.openBlock(),e.createElementBlock("div",Sl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,g=>(e.openBlock(),e.createElementBlock("div",{key:g.key,class:"flex flex-col gap-2"},[g.label?(e.openBlock(),e.createElementBlock("span",$l,e.toDisplayString(g.label),1)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-0 w-full gap-[12px]",d.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.options,b=>(e.openBlock(),e.createBlock(_n,{modelValue:a[s(b)],"onUpdate:modelValue":C=>a[s(b)]=C,value:s(b),class:e.normalizeClass(i(r.colSpan)),disabled:n.disabled||b.disabled,label:c(b),key:`${g.key}-${s(b)}`,icon:b?.icon,imgUrl:b?.imgUrl,option:b,view:r.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","icon","imgUrl","option","view"]))),128))],2)]))),128))])):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["p-0 w-full gap-[10px]",d.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,g=>(e.openBlock(),e.createBlock(_n,{modelValue:a[s(g)],"onUpdate:modelValue":b=>a[s(g)]=b,value:s(g),class:e.normalizeClass(i(r.colSpan)),disabled:n.disabled||g.disabled,label:c(g),key:s(g),icon:g?.icon,imgUrl:g?.imgUrl,option:g,view:r.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","icon","imgUrl","option","view"]))),128))],2))}}),me=(r,t)=>{const n=r.__vccOpts||r;for(const[o,l]of t)n[o]=l;return n},ar=me(Al,[["__scopeId","data-v-cf0478ce"]]),Fl=["type","placeholder","disabled"],Ml=e.defineComponent({__name:"vs-input-date1",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{},mode:{default:"date"}},emits:["update:modelValue"],setup(r,{emit:t}){const n=r;function o(f){return f?n.mode==="datetime"?(f.includes("T")?f:null)||f+(f.includes(" ")?"":"T00:00"):f?.split(" ")[0]:null}const{inputClass:l}=Te(n.style),a=t,s=e.computed({get:()=>o(n.modelValue),set:f=>a("update:modelValue",f)}),c=e.computed(()=>n.mode==="datetime"?"datetime-local":n.mode),i=e.computed(()=>!!n.disabled),d=e.computed(()=>n.placeholder??"");return(f,m)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:c.value,"onUpdate:modelValue":m[0]||(m[0]=x=>s.value=x),placeholder:d.value,disabled:i.value,ref:"date",class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[r.modelValue?"":"text-opacity-50",e.unref(l)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,Fl)),[[e.vModelDynamic,s.value]])}}),Dl=(r,t)=>{if(!t||!Object.keys(t).length)return r;const[n,o=""]=r.split("?"),l=new URLSearchParams(o);Object.entries(t).forEach(([s,c])=>{c==null||c===""||l.set(s,String(c))});const a=l.toString();return a?`${n}?${a}`:n},sr=async(r,t={})=>{try{const n=new FormData;n.append("unique","true"),n.append("file",r);const{api:o,id:l="1",form:a="form",table:s="table",customParams:c}=t,i=o||`/file/upload/uploads?id=${l||""}&form=${a||""}&table=${s||""}`,d=Dl(i,c);return(await fetch(d,{method:"POST",body:n}).then(m=>m.json()))?.result}catch(n){return ue.notify({type:"error",title:"Помилка!",message:"Сталась помилка під час завантаження файлу",position:"right-bottom"}),console.error("Сталась помилка завантаження файлу",n),null}},Ll=async r=>{try{return await fetch(`file/delete${r}`),!0}catch(t){return console.error(t),!1}},ir=async r=>{try{const t=await fetch(`/file/download/files/uploads${r}`),n=await t.arrayBuffer(),o=t.headers["content-type"],l=new TextDecoder("utf-8").decode(n),a=new Blob([l],{type:o}),s=document.createElement("a");s.setAttribute("download",r),s.href=window.URL.createObjectURL(a),s.click()}catch(t){console.error(t.message)}},Tl=r=>{if(!r)return"";const t=r?.split(".");return t[t.length-1]},Il=r=>{const t=Tl(r),n={imageFormat:["tiff","jpg","jpeg","png","svg","ico","webp"],sheetsFormat:["xls","csv","xlsx"],archivesFormat:["zip","rar"],textsFormat:["json","geojson","txt","yml","yaml","shp"],documentsFormat:["pdf"]};return n.imageFormat.includes(t)?"img":n.sheetsFormat.includes(t)?j.Table:n.textsFormat.includes(t)?j.FileCode:n.documentsFormat.includes(t)?j.FileText:n.archivesFormat.includes(t)?j.FileArchive:j.FileText},Rl=["title"],Ol={class:"absolute hidden top-0 right-0 flex items-center gap-x-2 w-full h-full justify-center"},$n=me(e.defineComponent({__name:"vs-input-file-list-item",props:e.mergeModels({format:{},multiple:{type:Boolean},max_size:{},api:{},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{value:{},valueModifiers:{},item:{},itemModifiers:{}}),emits:["update:value","update:item"],setup(r){const t=e.useModel(r,"value"),n=e.useModel(r,"item"),o=r;return(l,a)=>(e.openBlock(),e.createElementBlock("div",{title:n.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(Il)(n.value)),{src:n.value,alt:"file",class:"w-full h-full object-cover cursor-pointer",onClick:a[0]||(a[0]=s=>e.unref(ir)(n.value))},null,8,["src"])),e.createElementVNode("div",Ol,[e.createElementVNode("button",{type:"button",onClick:a[1]||(a[1]=s=>{e.unref(Ll)(n.value),t.value=o.multiple?t.value?.filter(c=>c!==n.value):""}),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:a[2]||(a[2]=s=>e.unref(ir)(n.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,Rl))}}),[["__scopeId","data-v-b458bb29"]]),zl={class:"flex items-center gap-x-2"},Pl=["accept","multiple","disabled"],jl={key:1,class:"flex items-center flex-wrap gap-2"},Ul={key:1,class:"loader"},Hl={key:1,class:"loader"},cr=me(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(r,{emit:t}){const n=r,o=e.useModel(r,"modelValue"),l=t,a=e.ref(null),s=e.ref(!1),c=e.inject("values"),i=e.computed(()=>n.format?n.format.split(",").map(_=>_.trim().toLowerCase()).filter(Boolean):[]),d=_=>Array.isArray(o.value)&&o.value[_]||"",f=_=>{if(n.max_size&&_.size>n.max_size*1024*1024){const k=(_.size/1048576).toFixed(2);return ue.notify({type:"error",title:"Помилка!",message:`Файл "${_.name}" занадто великий. Максимальний розмір: ${n.max_size} МБ, розмір файлу: ${k} МБ`,position:"right-bottom"}),!1}return!0},m=_=>{if(!i.value.length)return!0;const k=`.${_.name.split(".").pop()?.toLowerCase()||""}`,w=i.value.includes(k);return w||ue.notify({type:"error",title:"Помилка!",message:`Неприпустимий формат файлу "${_.name}". Дозволені формати: ${i.value.join(", ")}`,position:"right-bottom"}),w},x=e.computed(()=>{const _={},k=[];if(!n.customParams?.length)return{params:_,missingSources:k};const w=c?.value??{};return n.customParams.forEach(S=>{if(!S)return;const[T,D]=S.split("="),V=T?.trim(),N=D?.trim();if(!V||!N)return;const E=w[N];if(E==null||E===""){k.push(N);return}_[V]=E}),{params:_,missingSources:k}}),h=()=>{const{params:_}=x.value;return{api:n.api,customParams:Object.keys(_).length?_:void 0}},u=()=>{const _=x.value.missingSources;if(!_.length)return!0;const k=_.join(", ");return ue.notify({type:"warning",title:"Заповніть поля",message:`Поля (${k}) необхідні для завантаження файлу`,position:"right-bottom"}),!1},g=_=>{ue.notify({type:"error",title:"Помилка завантаження",message:_||"Не вдалося завантажити файл. Спробуйте ще раз.",position:"right-bottom"})},b=()=>{n.disabled||s.value||u()&&a.value?.click()},C=async _=>{const{files:k}=_.target;if(!k||k.length===0)return;if(!u()){a.value&&(a.value.value="");return}const w=Array.from(k);if(n.max_size&&w.filter(D=>!f(D)).length>0){a.value&&(a.value.value="");return}if(w.filter(T=>!m(T)).length>0){a.value&&(a.value.value="");return}s.value=!0;try{if(n.multiple){const T=Array.from(k).map(async E=>await sr(E,h())),D=await Promise.all(T),N=D.filter(E=>E!==null).map(E=>E?.file_path).filter(Boolean);if(N.length===0){g();return}N.length<D.length&&g("Деякі файли не вдалося завантажити. Перевірте їх та спробуйте знову."),o.value=[...o.value||[],...N],l("change",o.value)}else{const T=k[0],D=await sr(T,h());if(!D?.file_path){g();return}o.value=D?.file_path,l("change",o.value||"")}}catch(T){const D=T?.message||void 0;g(D)}finally{s.value=!1,a.value&&(a.value.value="")}};return(_,k)=>(e.openBlock(),e.createElementBlock("div",zl,[e.createElementVNode("input",{class:"hidden",ref_key:"fileInput",ref:a,type:"file",accept:n.format,multiple:r.multiple,onChange:C,disabled:s.value||r.disabled},null,40,Pl),!r.multiple&&o.value?(e.openBlock(),e.createBlock($n,{key:0,item:o.value,"onUpdate:item":k[0]||(k[0]=w=>o.value=w),value:o.value,"onUpdate:value":k[1]||(k[1]=w=>o.value=w)},null,8,["item","value"])):r.multiple?(e.openBlock(),e.createElementBlock("div",jl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(w,S)=>(e.openBlock(),e.createBlock($n,{multiple:r.multiple,key:S,value:o.value,"onUpdate:value":k[2]||(k[2]=T=>o.value=T),item:d(S)},null,8,["multiple","value","item"]))),128)),e.createElementVNode("div",{onClick:b,class:e.normalizeClass(["relative h-[120px] w-[120px] border text-gray-300 hover:text-blue-500 border-dashed border-[#CFD9E0] rounded-lg flex items-center justify-center transition-all duration-300",r.disabled||s.value?"opacity-50 cursor-not-allowed":"cursor-pointer hover:border-blue-500 hover:bg-blue-50"])},[s.value?(e.openBlock(),e.createElementBlock("div",Ul)):(e.openBlock(),e.createBlock(e.unref(j.Plus),{key:0,class:"h-4 w-4"}))],2)])):e.createCommentVNode("",!0),r.multiple?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:2,onClick:b,class:e.normalizeClass([r.disabled||s.value?"opacity-50 cursor-not-allowed":"cursor-pointer hover:border-blue-500","relative h-[120px] w-[120px] border text-gray-300 hover:text-blue-500 border-dashed border-gray-300 rounded-lg flex items-center justify-center cursor-pointer hover:border-blue-500 transition-all duration-300 hover:bg-blue-50"])},[s.value?(e.openBlock(),e.createElementBlock("div",Hl)):(e.openBlock(),e.createBlock(e.unref(j.Plus),{key:0,class:"h-4 w-4"}))],2))]))}}),[["__scopeId","data-v-4605f83b"]]),ql={class:"vs-input-file2 flex flex-col gap-4"},Gl={class:"flex items-center gap-x-2"},Kl=["accept","disabled"],Wl={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"},Yl={key:0,class:"rounded-lg border border-[#CFD9E0] bg-white p-4 shadow-sm"},Zl={class:"flex items-center justify-between text-sm"},Xl={class:"truncate pr-4"},Jl={class:"font-medium text-slate-800 truncate"},Ql={class:"text-slate-500"},ea={class:"text-slate-500 whitespace-nowrap"},ta={class:"mt-3 h-2 rounded-full bg-slate-100 overflow-hidden"},na={class:"mt-3 flex flex-wrap gap-2 text-sm"},ra={key:0,class:"mt-2 text-sm text-rose-600"},oa=e.defineComponent({__name:"vs-input-file2",props:e.mergeModels({format:{},max_size:{},api:{},chunkSize:{default:5*1024*1024},subdir:{default:""},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useModel(r,"modelValue"),o=e.ref(null),l=e.ref(null),a=e.ref(""),s=e.ref(0),c=e.ref(!1),i=e.ref(""),d=e.ref(null),f=e.inject("values"),m=e.computed(()=>t.format?t.format.split(",").map(L=>L.trim().toLowerCase()).filter(Boolean):[]),x=e.computed(()=>!l.value||!l.value.size?0:Math.min(100,Math.round(s.value/l.value.size*100))),h=e.computed(()=>l.value?`${b(s.value)} / ${b(l.value.size)}`:""),u=e.computed(()=>t.disabled?"opacity-50 cursor-not-allowed":c.value?"cursor-default text-blue-500":"cursor-pointer hover:border-blue-500 hover:bg-blue-50 hover:text-blue-500"),g=()=>{t.disabled||c.value||w()&&o.value?.click()},b=L=>{if(!Number.isFinite(L))return"0 B";const O=["B","KB","MB","GB"];let F=0,I=L;for(;I>=1024&&F<O.length-1;)I/=1024,F+=1;return`${I.toFixed(F===0?0:1)} ${O[F]}`},C=L=>{if(!t.max_size)return!0;const O=t.max_size*1024*1024;return L.size>O?(ue.notify({type:"error",title:"Файл занадто великий",message:`Максимальний розмір ${t.max_size} МБ`,position:"right-bottom"}),!1):!0},_=L=>{if(!m.value.length)return!0;const O=`.${L.name.split(".").pop()?.toLowerCase()||""}`;return m.value.includes(O)?!0:(ue.notify({type:"error",title:"Непідтримуваний формат",message:`Дозволені формати: ${m.value.join(", ")}`,position:"right-bottom"}),!1)},k=e.computed(()=>{const L={},O=[];if(!t.customParams?.length)return{params:L,missing:O};const F=f?.value??{};return t.customParams.forEach(I=>{if(!I)return;const[R,G]=I.split("="),Y=R?.trim(),Z=G?.trim();if(!Y||!Z)return;const ne=F[Z];ne==null||ne===""?O.push(Z):L[Y]=ne}),{params:L,missing:O}}),w=()=>k.value.missing.length?(ue.notify({type:"warning",title:"Заповніть поля",message:`Потрібні значення: ${k.value.missing.join(", ")}`,position:"right-bottom"}),!1):!0,S=L=>{const O=L.target,F=O.files?.[0];if(F){if(!w()){O.value="";return}if(!C(F)||!_(F)){O.value="";return}l.value=F,s.value=0,a.value="",i.value=""}},T=async()=>{if(!l.value){g();return}try{i.value="";const L={id:a.value||"",fileName:l.value.name,subdir:t.subdir,size:l.value.size,...k.value.params},O=await fetch("/api/file/upload2/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(L)});if(!O.ok)throw new Error("Не вдалося ініціалізувати завантаження");const F=await O.json();a.value=F.id||a.value,s.value=F.uploaded||0,await D()}catch(L){i.value=L?.message||"Помилка при старті завантаження"}},D=async()=>{if(!(!l.value||!a.value)){c.value=!0;try{for(;s.value<l.value.size;){const L=s.value,O=Math.min(L+t.chunkSize,l.value.size),F=l.value.slice(L,O);d.value=new AbortController;const I=await fetch(`/api/file/upload2/${a.value}`,{method:"PATCH",headers:{"Content-Range":`bytes ${L}-${O-1}/${l.value.size}`},body:F,signal:d.value.signal});if(!I.ok)throw new Error("Помилка завантаження частини");const R=await I.json().catch(()=>({}));if(R.uploaded!=null?s.value=Number(R.uploaded):s.value=O,R.finished||s.value>=l.value.size){c.value=!1,n.value=R.file_path||R.url||a.value,ue.notify({type:"success",title:"Файл завантажено",message:l.value.name,position:"right-bottom"}),A();return}}}catch(L){if(L?.name==="AbortError")return;i.value=L?.message||"Помилка при завантаженні",c.value=!1}finally{d.value=null,c.value=!1}}},V=()=>{c.value&&(d.value?.abort(),d.value=null,c.value=!1)},N=async()=>{if(l.value){if(!a.value){await T();return}await D()}},E=()=>{d.value?.abort(),d.value=null,A()},A=()=>{const L=o.value;L&&(L.value=""),l.value=null,a.value="",s.value=0,i.value=""};return(L,O)=>(e.openBlock(),e.createElementBlock("div",ql,[e.createElementVNode("div",Gl,[e.createElementVNode("input",{ref_key:"fileInput",ref:o,type:"file",class:"hidden",accept:t.format,disabled:c.value||t.disabled,onChange:S},null,40,Kl),n.value?(e.openBlock(),e.createBlock($n,{key:0,item:n.value,"onUpdate:item":O[0]||(O[0]=F=>n.value=F),value:n.value,"onUpdate:value":O[1]||(O[1]=F=>n.value=F)},null,8,["item","value"])):(e.openBlock(),e.createElementBlock("div",{key:1,onClick:g,class:e.normalizeClass(["relative h-[120px] w-[120px] border text-gray-300 border-dashed border-[#CFD9E0] rounded-lg flex items-center justify-center transition-all duration-300",u.value])},[c.value?(e.openBlock(),e.createElementBlock("div",Wl,[O[2]||(O[2]=e.createElementVNode("div",{class:"loader"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(x.value)+"%",1)])):(e.openBlock(),e.createBlock(e.unref(j.Plus),{key:1,class:"h-4 w-4"}))],2))]),l.value&&!n.value?(e.openBlock(),e.createElementBlock("div",Yl,[e.createElementVNode("div",Zl,[e.createElementVNode("div",Xl,[e.createElementVNode("div",Jl,e.toDisplayString(l.value.name),1),e.createElementVNode("div",Ql,e.toDisplayString(b(l.value.size)),1)]),e.createElementVNode("div",ea,e.toDisplayString(h.value),1)]),e.createElementVNode("div",ta,[e.createElementVNode("div",{class:"h-full rounded-full bg-blue-500 transition-all duration-300",style:e.normalizeStyle({width:`${x.value}%`})},null,4)]),e.createElementVNode("div",na,[!c.value&&s.value>0&&s.value<(l.value?.size||0)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"rounded border border-slate-300 px-3 py-1",onClick:N}," Resume ")):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"rounded border border-slate-300 px-3 py-1",onClick:V}," Pause ")):e.createCommentVNode("",!0),!c.value&&s.value===0?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",class:"rounded border border-slate-300 px-3 py-1",onClick:T}," Upload ")):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"rounded border border-rose-200 px-3 py-1 text-rose-600",onClick:E}," Cancel ")]),i.value?(e.openBlock(),e.createElementBlock("p",ra,e.toDisplayString(i.value),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]))}}),Nn=me(oa,[["__scopeId","data-v-12c3bd36"]]),la={class:"flex items-center justify-center h-[30px] w-[30px]"},aa={class:"max-w-[55vw]"},sa={class:"text-sm font-semibold text-gray-800 truncate dark:text-neutral-200"},ia={class:"flex items-center text-xs text-gray-500 truncate dark:text-neutral-500"},ca={class:"px-[5px]"},da={class:""},Kt=e.defineComponent({__name:"vs-widget-file-info",props:{item:{default:null}},setup(r){const t=r,n=e.computed(()=>{try{return new Date(t.item.cdate).toLocaleDateString("uk-UA",{day:"2-digit",month:"long",year:"numeric"})}catch{return""}});function o(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",la,[e.createVNode(e.unref(j.FileText),{class:"icon icon-tabler icons-tabler-outline icon-tabler-file h-4 w-4"})]),e.createElementVNode("div",aa,[e.createElementVNode("p",sa,e.toDisplayString(r.item?.uploaded_name),1),e.createElementVNode("p",ia,[e.createElementVNode("span",null,e.toDisplayString(r.item?.username),1),e.withDirectives(e.createElementVNode("span",ca,"|",512),[[e.vShow,r.item?.username]]),e.createElementVNode("span",null,e.toDisplayString(n.value),1),a[0]||(a[0]=e.createElementVNode("span",{class:"px-[5px]"},"|",-1)),e.createElementVNode("span",da,e.toDisplayString(o(r.item?.size)),1)])])],64))}}),ua={class:"p-3 relative group flex items-center gap-x-3 border border-gray-200 bg-white rounded-md w-full"},pa={key:0,class:"flex w-full gap-x-3 items-center"},fa={key:1,class:"flex gap-x-3 w-full items-center"},ma={key:2,class:"flex gap-x-3 w-full items-center"},ha=["href"],ga={key:3,class:"flex gap-x-3 w-full items-center"},ya={class:"lg:absolute lg:top-3 lg:end-1 opacity-100"},ba={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"},ka={class:"inline-block"},xa={class:"inline-block"},wa=e.defineComponent({__name:"vs-widget-file-item",props:{item:{default:null},index:{default:0},prefix:{default:"/api"}},emits:["update","openModal","openLightbox"],setup(r,{emit:t}){const n=r,o=t;function l(f){return["pdf","json"].includes(f.ext)}function a(f){return["ppt","pptx","doc","docx","xls","xlsx"].includes(f.ext)}function s(f){const m=document.createElement("a");m.setAttribute("download",f?.uploaded_name),m.href=f?.file_path,m.click()}async function c(){try{await fetch(`${n.prefix}/widget/file/${n.item.entity_id}/${n.item.file_id}`),o("update")}catch(f){console.error(f)}}function i(){o("openModal",{title:"Ви впевнені?",message:"Ви впевнені, що хочете видалити цей файл?",confirmButtonText:"Так, я впевнена/ий",cancelButtonText:"Скасувати",confirm:c,updateListOnConfirm:!0})}function d(f){(n.item.ext==="jpg"||n.item.ext==="png")&&o("openLightbox",{item:n.item,index:f})}return(f,m)=>(e.openBlock(),e.createElementBlock("div",ua,[r.item.ext==="jpg"||r.item.ext==="png"?(e.openBlock(),e.createElementBlock("div",pa,[e.createElementVNode("div",{class:"max-w-[55vw] cursor-pointer flex gap-x-3 w-full items-center",onClick:m[0]||(m[0]=x=>d(r.index))},[e.createVNode(Kt,{item:r.item},null,8,["item"])])])):l(r.item)?(e.openBlock(),e.createElementBlock("div",fa,[e.createVNode(Kt,{item:r.item},null,8,["item"])])):a(r.item)?(e.openBlock(),e.createElementBlock("div",ma,[e.createElementVNode("a",{href:`/api/file-preview?id=${r.item.file_id}`,target:"_blank",class:"flex gap-x-3 w-full items-center"},[e.createVNode(Kt,{item:r.item},null,8,["item"])],8,ha)])):(e.openBlock(),e.createElementBlock("div",ga,[e.createVNode(Kt,{item:r.item},null,8,["item"])])),e.createElementVNode("div",ya,[e.createElementVNode("div",ba,[e.createElementVNode("div",ka,[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:m[1]||(m[1]=x=>s(r.item))},[e.createVNode(e.unref(j.Download),{class:"h-4 w-4"})])]),m[3]||(m[3]=e.createElementVNode("div",{class:"w-px h-5 mx-1 bg-gray-200 dark:bg-neutral-700"},null,-1)),e.createElementVNode("div",xa,[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:m[2]||(m[2]=x=>i())},[e.createVNode(e.unref(j.Trash2),{class:"h-4 w-4"})])])])])]))}}),_a={class:"flex flex-col widget-file xl:bg-white xl:rounded-xl dark:xl:bg-neutral-800 dark:xl:border-neutral-700 w-full"},va={class:"flex w-full mb-[12px] items-center gap-x-2"},Ca={class:"font-semibold text-gray-800 dark:text-neutral-200 text-[14px]"},Ea={class1:"ml-auto"},Ba={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"},Va={key:0,class:"py-4 mb-4 space-y-4 border-gray-200 border-y dark:border-neutral-700"},Sa={class:"relative"},$a={class:"absolute inset-y-0 start-0 flex items-center pointer-events-none z-[1] ps-3.5"},Na={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"},Aa={key:0},dr=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(r,{emit:t}){const n=r,o=e.inject("form"),l=e.computed(()=>o.value.formId),a=e.ref(!1),s=e.ref(0),c=t,i=e.ref(!1),d=e.ref({}),f=e.ref([]),m=e.ref(""),x=e.computed(()=>Array.isArray(f.value)?f.value.filter(k=>k.ext==="jpg"||k.ext==="png").map(k=>k?.file_path):[]),h=e.computed(()=>m.value===""?f.value:f.value.filter(k=>k?.uploaded_name?.includes(m.value))),u=k=>{const w=x.value.findIndex(S=>S===k.item.file_path);w!==-1&&(a.value=!0,s.value=w)},g=async()=>{try{const k=await fetch(`${n.prefix}/widget/file/${l.value}`).then(w=>w.json());f.value=k?.rows}catch(k){console.error(k)}},b=async k=>{await Promise.all(Array.from(k.target.files).map(async w=>{const S=new FormData;S.append("file",w);try{const T=`${n.prefix}/widget/file/${l.value}`,D=await fetch(T,{method:"POST",body:S});return D.ok?(c("update","file-list"),w):(ue.notify({type:D.status>=400&&D.status<500?"warning":"error",title:"Error",message:`Error code: ${D.status}`}),null)}catch(T){return ue.notify({type:"error",title:"Error",message:T.message||"Unknown error"}),console.error(T),null}})),await g()},C=k=>{const w={...k};return k.cancel||(w.cancel=()=>{i.value=!1}),k.updateListOnConfirm&&(w.confirm=async()=>{await k.confirm(),i.value=!1,g()}),w},_=k=>{d.value=C(k),i.value=!0};return e.watch(l,k=>{k&&g()}),e.onMounted(()=>{l.value&&g()}),(k,w)=>{const S=e.resolveComponent("Lightbox"),T=e.resolveComponent("MessageBox");return e.openBlock(),e.createElementBlock("div",_a,[e.createElementVNode("div",va,[e.createElementVNode("h2",Ca," Файлів: "+e.toDisplayString(f.value?.length),1),e.createElementVNode("div",Ea,[e.createElementVNode("label",null,[e.createElementVNode("input",{type:"file",class:"hidden",onChange:w[0]||(w[0]=D=>b(D))},null,32),e.createElementVNode("div",Ba,[e.createVNode(e.unref(j.Upload),{class:"h-4 w-4"})])])])]),f.value?.length>4?(e.openBlock(),e.createElementBlock("div",Va,[e.createElementVNode("div",null,[e.createElementVNode("div",Sa,[e.createElementVNode("div",$a,[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":w[1]||(w[1]=D=>m.value=D),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,m.value,void 0,{trim:!0}]])])])])):e.createCommentVNode("",!0),f.value?.length?(e.openBlock(),e.createElementBlock("div",Na,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,(D,V)=>(e.openBlock(),e.createBlock(wa,{key:V,prefix:r.prefix,item:D,index:V,onUpdate:w[2]||(w[2]=N=>k.$emit("update","file-list")),onOpenModal:w[3]||(w[3]=N=>_(N)),onOpenLightbox:w[4]||(w[4]=N=>u(N))},null,8,["prefix","item","index"]))),128)),h.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Aa,[...w[8]||(w[8]=[e.createElementVNode("p",{class:"text-sm text-gray-600 font-sm"}," Файлів з такою назвою не існує, введіть інше пошукове слово ",-1)])]))])):e.createCommentVNode("",!0),e.createVNode(S,{modelValue:a.value,"onUpdate:modelValue":w[5]||(w[5]=D=>a.value=D),startIndex:s.value,"onUpdate:index":w[6]||(w[6]=D=>s.value=D),images:x.value},null,8,["modelValue","startIndex","images"]),e.createVNode(T,e.mergeProps({modelValue:i.value,"onUpdate:modelValue":w[7]||(w[7]=D=>i.value=D),onConfirm:d.value.confirm},d.value),null,16,["modelValue","onConfirm"])])}}}),Fa={class:"flex items-center justify-between"},Ma={class:"text-[16px] text-gray-900 font-medium"},Da={class:"grid gap-3"},La=me(e.defineComponent({__name:"vs-container-switcher",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(r){const t=r,n=e.ref(t.isOpen);return e.watch(()=>t.isOpen,o=>{n.value=o}),(o,l)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",Fa,[e.createElementVNode("p",Ma,e.toDisplayString(r.title),1),e.createVNode(vn,{modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=a=>n.value=a),style:e.normalizeStyle(r.style)},null,8,["modelValue","style"])]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",Da,[e.renderSlot(o.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-00f2f0fc"]]),Ta={class:"text-[16px] text-gray-900 font-medium"},Ia={class:"grid gap-3"},Ra=me(e.defineComponent({__name:"vs-container-accordion",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(r){const t=r,n=e.ref(t.isOpen);return e.watch(()=>t.isOpen,o=>{n.value=o}),(o,l)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("button",{type:"button",onClick:l[0]||(l[0]=a=>n.value=!n.value),class:"flex items-center gap-2"},[e.createVNode(e.unref(j.ChevronDown),{class:e.normalizeClass(["h-4 w-4 duration-300",[n.value?"-rotate-180":""]])},null,8,["class"]),e.createElementVNode("span",Ta,e.toDisplayString(r.title),1)]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",Ia,[e.renderSlot(o.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-dde48964"]]),Oa={class:"flex items-center justify-between"},za={switcher:La,accordion:Ra,default:e.defineComponent({__name:"vs-container-default",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})}},setup(r){return(t,n)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",Oa,[e.createElementVNode("p",null,e.toDisplayString(r.title),1)]),e.renderSlot(t.$slots,"default")]))}})},We={Equal:"==",Inequal:"!=",Higer:">",HigerOrEqual:">=",Lower:"<",LowerOrEqual:"<=",Between:"between",StartWith:"^",EndWith:"$",Contain:"*",In:"in",NotIn:"not_in"},Pa=(r,t)=>String(r)===String(t),ja=(r,t)=>String(r)!==String(t),Ua=(r,t)=>r>t,Ha=(r,t)=>r>=t,qa=(r,t)=>r<t,Ga=(r,t)=>r<=t,Ka=(r,t)=>Array.isArray(t)&&t.length===2?r>=t[0]&&r<=t[1]:!1,Wa=(r,t)=>String(r).startsWith(String(t)),Ya=(r,t)=>String(r).endsWith(String(t)),Za=(r,t)=>String(r).includes(String(t)),Xa=(r,t)=>Array.isArray(t)?t.includes(r):!1,Ja=(r,t)=>Array.isArray(t)?!t.includes(r):!0,ur=(r,t)=>{if(!t)return!0;switch(t?.[1]){case We.Equal:return Pa(r,t?.[2]);case We.Inequal:return ja(r,t?.[2]);case We.Higer:return Ua(r,t?.[2]);case We.HigerOrEqual:return Ha(r,t?.[2]);case We.Lower:return qa(r,t?.[2]);case We.LowerOrEqual:return Ga(r,t?.[2]);case We.Between:return Ka(r,t?.[2]);case We.StartWith:return Wa(r,t?.[2]);case We.EndWith:return Ya(r,t?.[2]);case We.Contain:return Za(r,t?.[2]);case We.In:return Xa(r,t?.[2]);case We.NotIn:return Ja(r,t?.[2]);default:return!0}},pr=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(r){const t=r,n=e.inject("values",e.ref({})),o=e.inject("form"),l=e.computed(()=>t.schema?.filter(c=>{const i=c?.conditions;if(!i)return!0;const d=Array.isArray(i)?i[0]:i,f=t.name?n.value?.[t.name]?.[d]??n.value?.[d]:n.value?.[d];return ur(f,i)})),a=e.computed(()=>za[t.view]),s=e.computed(()=>{if(n.value||(n.value={}),!t.name)return n.value;const c=n.value[t.name];if(c)return c;const i={};return n.value={...n.value,[t.name]:i},i});return(c,i)=>r.schema?.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{key:0,title:r.title,style:e.normalizeStyle(r.style)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,d=>(e.openBlock(),e.createBlock(Ar,e.mergeProps({key:d.name},{ref_for:!0},d,{item:d,modelValue:s.value[d.name],"onUpdate:modelValue":f=>s.value[d.name]=f,style:r.style,error:e.unref(o)?.errors?.[d.name]}),null,16,["item","modelValue","onUpdate:modelValue","style","error"]))),128))]),_:1},8,["title","style"])):e.createCommentVNode("",!0)}}),Qa=["aria-expanded","data-focus"],es={class:"relative flex flex-1 items-center gap-1 py-0.5 pl-1 pr-0 overflow-hidden h-full min-w-0"},ts={key:0,class:"flex flex-nowrap items-center gap-1 overflow-x-auto overflow-y-hidden min-w-0 flex-1 py-0.5"},ns={class:"flex items-center gap-1 min-w-0"},rs=["title"],os=["innerHTML"],ls=["onClick"],as={class:"flex-1 min-w-[2px]"},ss=["placeholder"],is=["title"],cs=["innerHTML"],ds={key:3,class:"truncate flex-1 min-w-0"},us={key:2,class:"flex-1 min-w-[2px]"},ps=["placeholder"],fs={class:"flex items-center shrink-0"},ms=["disabled"],hs={key:1,class:"self-stretch w-px bg-[#ccc] my-[1px]"},gs=["disabled","title"],ys=["aria-disabled","onClick"],bs=["innerHTML"],ks={key:1,class:"px-3 py-2 text-center text-gray-500"},xs=["disabled"],An="w-[16px] h-[16px] flex items-center justify-center flex-shrink-0 text-current",Fn=me(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(r,{emit:t}){const n=r,o=t,l=e.computed(()=>n.multiple),a=e.computed(()=>n.disabled);Te(n.style);const s=e.computed({get:()=>n.modelValue,set:z=>o("update:modelValue",z)});!s.value&&n.defaultValue&&(s.value=n.defaultValue);const c=e.ref(null),i=e.ref(null),d=e.ref(null),f=e.ref(null),m=e.ref(!1),x=e.ref(!1),h=e.ref(null),u=e.ref([]),g=e.ref(-1),b=e.ref([]),C=e.ref(""),_=e.ref(null),k=e.ref("bottom"),w=e.ref({}),S=e.ref([]),T=e.computed(()=>{if(!S.value.length)return[];const z=u.value,W=new Map(z.map(q=>[q.id?.toString(),q]));return S.value.map(q=>W.get(q?.toString())).filter(q=>!!q)}),D=e.computed(()=>n.placeholder||"Select..."),V=e.computed(()=>Y(h.value));e.computed(()=>l.value?!S.value.length&&C.value==="":!V.value&&C.value==="");const N=e.computed(()=>a.value?!1:l.value?S.value.length>0:!!s.value),E=z=>l.value?S.value.some(W=>W?.toString()===z?.toString()):s.value?.toString()===z?.toString(),A=e.computed(()=>{let z=u.value??[];if(!n.data&&C.value.trim()!==""){const W=C.value.toLowerCase();z=z.filter(q=>{const se=Y(q).toLowerCase(),ye=q.text?.toLowerCase?.()||"";return se.includes(W)||ye.includes(W)})}if(l.value&&S.value.length){const W=new Set(S.value.map(q=>q?.toString()));z=z.filter(q=>!W.has(q.id?.toString()))}return z}),L=e.inject("values"),O=e.inject("field-props"),F=/\{\{\s*([^}]+?)\s*\}\}/g,I=z=>(z?String(z):"").replace(/<[^>]*>/g,"").trim(),R=e.computed(()=>n.slot??n?.optionTemplate??""),G=z=>{if(!z)return"";const W=R.value;return W?W.replace(F,(q,se)=>{const ye=se.trim(),ve=z[ye];return ve!=null?String(ve):""}):z.text??""},Y=z=>{if(!z)return"";if(!R.value)return z.text??"";const q=G(z);return I(q)||z.text||""},Z=z=>z?z.icon??null:null,ne=z=>!!(z?.color&&!Z(z)),we=z=>z?.color?{color:z.color}:void 0,ge=z=>!!Z(z),J=(z,W,q)=>{if(!O)return!1;const se=O.value?.[z]??{},ye=(xe,Ee,Oe)=>{if(!Ee.length)return xe;const[Le,...rt]=Ee,Ge={...xe};if(!rt.length)return Ge[Le]=Oe,Ge;const Ut=typeof xe[Le]=="object"&&xe[Le]!==null?xe[Le]:{};return Ge[Le]=ye(Ut,rt,Oe),Ge},ve=ye(se,W,q);return O.value={...O.value||{},[z]:ve},!0},re=z=>{if(!n.set)return;const W=L?.value;!W&&!O||Object.entries(n.set).forEach(([q,se])=>{if(!q)return;const ye=z?z[se]:null,ve=q.split(".").map(Oe=>Oe.trim()).filter(Boolean);if(!ve.length)return;const[xe,...Ee]=ve;Ee.length&&J(xe,Ee,ye??null)||W&&(W[xe]=ye??null)})},de=e.computed(()=>n.parent?L?.value?.[n.parent]?.toString()??null:null),ce=async z=>{if(!n.data){let W=n.options??[];if(z?.trim()){const q=z.toLowerCase();W=W.filter(se=>{const ye=Y(se).toLowerCase(),ve=se.text?.toLowerCase?.()||"";return ye.includes(q)||ve.includes(q)})}return W}try{const W=n.host??"",q=n.prefix??"api",se=n.api??`/${q}/suggest/${n.data}`,ye=`${W}${se}`,ve=new URLSearchParams;return ve.set("json","1"),z&&ve.set("key",z),de.value!==void 0&&de.value!==null&&de.value!==""&&ve.set("parent",de.value),n.start===1&&ve.set("start","1"),(await fetch(`${ye}?${ve.toString()}`).then(Ee=>Ee.json()))?.data??[]}catch{return[]}},be=async()=>{n.data?u.value=await ce(C.value):u.value=n.options?[...n.options]:[]},De=async z=>{if(z==null||z==="")return null;const W=u.value?.find(q=>q?.id?.toString()===String(z));if(W)return W;if(n.data)try{const q=n.host??"",se=n.prefix??"api",ye=n.api??`/${se}/suggest/${n.data}`,ve=`${q}${ye}`,xe=new URLSearchParams;return xe.set("json","1"),xe.set("val",String(z)),de.value!==void 0&&de.value!==null&&de.value!==""&&xe.set("parent",de.value),n.start===1&&xe.set("start","1"),((await fetch(`${ve}?${xe.toString()}`).then(Le=>Le.json()))?.data??[])?.[0]??null}catch{return null}return null},$e=async z=>{const W=new Set(u.value.map(se=>se.id?.toString())),q=z.filter(se=>!W.has(se?.toString()));q.length&&await q.reduce(async(se,ye)=>{await se;const ve=await De(ye);ve&&u.value.push(ve)},Promise.resolve())},et=()=>{if(!A.value.length){g.value=-1;return}let z=0;if(!l.value&&h.value){const W=h.value.id?.toString(),q=A.value.findIndex(se=>se.id?.toString()===W);q>=0&&(z=q)}g.value=z,e.nextTick(()=>{_e(b.value[z],d.value)})},it=async()=>{a.value||(m.value=!0,await be(),await e.nextTick(()=>{Q(),_.value?.focus()}),et())},Ie=()=>{m.value=!1,g.value=-1,e.nextTick(()=>{_.value?.blur()})},Be=async z=>{if(a.value)return;!m.value?await it():Ie()},U=async()=>{if(!a.value){if(m.value){Ie();return}await it()}},X=()=>{l.value?(S.value=[],s.value=[],o("change",[]),ae(null,[])):(h.value=null,s.value=null,o("change",null),ae(null,null)),re(null),C.value="",e.nextTick(()=>_.value?.focus())},ee=z=>{l.value&&(S.value=S.value.filter(W=>W?.toString()!==z?.toString()),s.value=[...S.value],o("change",s.value),ae(null),e.nextTick(()=>_.value?.focus()))},ae=(z,W)=>{const q=W??(l.value?[...S.value]:z?.id??null);o("value-selected",{name:n.name,value:q,option:z})},ie=z=>{l.value?(E(z.id)||(S.value=[...S.value,z.id],s.value=[...S.value],o("change",s.value),ae(z)),C.value="",e.nextTick(()=>{_.value?.focus(),g.value=Math.min(g.value,A.value.length-1)}),re(null)):(h.value=z,s.value=z.id,o("change",s.value),ae(z),C.value="",Ie(),re(z))},Ce=z=>{if(E(z.id)){l.value||Ie();return}ie(z)},_e=(z,W)=>{if(!z||!W)return;const q=z.offsetTop,se=q+z.offsetHeight,ye=W.scrollTop,ve=ye+W.clientHeight;let xe=W.scrollTop;q<ye?xe=q-80:se>ve&&(xe=se-W.clientHeight+4);const Ee=W;Ee.scrollTop=xe},P=z=>{let W=z.parentElement;for(;W;){if(W.classList.contains("ui-dialog__content"))return W;const q=window.getComputedStyle(W),se=q.overflow+q.overflowY+q.overflowX;if(se.includes("auto")||se.includes("scroll")||W===document.body||W===document.documentElement)return W;W=W.parentElement}return document.body},Q=()=>{if(!i.value)return;const z=i.value.getBoundingClientRect(),W=window.innerHeight||document.documentElement.clientHeight,q=window.innerWidth||document.documentElement.clientWidth,se=8,ye=8,ve=n.maxHeight||300,xe=W-z.bottom-ye-se,Ee=z.top-ye-se,Oe=xe>=Ee,Le=Math.max(q-se*2,0);let{width:rt}=z;Le>0&&rt>Le&&(rt=Le);let{left:Ge}=z;Ge+rt+se>q&&(Ge=q-rt-se),Ge=Math.max(Ge,se);const Ut=Math.min(ve,Math.max(Oe?xe:Ee,50));k.value=Oe?"bottom":"top",w.value={position:"fixed",left:`${Ge}px`,width:`${rt}px`,maxHeight:`${Ut}px`,transform:Oe?"none":"translateY(-100%)",top:Oe?`${z.bottom+ye}px`:`${z.top-ye}px`}},M=async z=>{a.value||!m.value&&(z.key==="ArrowDown"||z.key==="ArrowUp")&&(z.preventDefault(),await it())},K=z=>{if(!m.value)return;const{key:W}=z;if(W==="ArrowDown")z.preventDefault(),g.value+1<A.value.length&&(g.value+=1,_e(b.value[g.value],d.value));else if(W==="ArrowUp")z.preventDefault(),g.value>0&&(g.value-=1,_e(b.value[g.value],d.value));else if(W==="Enter"){z.preventDefault();const q=A.value[g.value];q&&ie(q),_.value?.blur()}else W==="Escape"?(z.preventDefault(),Ie()):W==="Backspace"?l.value&&C.value===""&&S.value.length&&(S.value=S.value.slice(0,-1),s.value=[...S.value],o("change",s.value)):W==="Home"?(g.value=0,_e(b.value[0],d.value)):W==="End"?(g.value=A.value.length-1,_e(b.value[g.value],d.value)):W==="Tab"&&Ie()},ke=()=>{a.value||(x.value=!0)},Ye=()=>{x.value=!1,C.value=""},Re=z=>{z.key==="Escape"&&m.value&&Ie()},Ve=z=>{const W=z.target;c.value?.contains(W)||f.value?.contains(W)||Ie()},tt=z=>{m.value&&d.value&&!d.value.contains(z.target)&&Q()},nt=()=>{m.value&&Q()},Ze=()=>{m.value&&Q()};e.watch(()=>n.options,z=>{z?.length&&(u.value=[...z],Xe())},{immediate:!0});async function Xe(){if(l.value)Array.isArray(s.value)?S.value=[...s.value]:(S.value=s.value==null?[]:[s.value],s.value=[...S.value]),n.data&&S.value.length&&(await $e(S.value),await e.nextTick());else{if(Array.isArray(s.value)){const z=s.value[0]??null;s.value=z??null}s.value!=null&&(h.value=await De(s.value)),re(h.value??null)}}e.watch(s,()=>{Xe()}),e.onMounted(async()=>{addEventListener("keydown",Re),addEventListener("scroll",tt,!0),addEventListener("resize",nt),document.addEventListener("click",Ve,!0),i.value&&P(i.value).addEventListener("scroll",Ze,!0),n.options?.length&&!n.data?u.value=[...n.options]:n.data&&(u.value=await ce("")),await Xe(),Et.value=!1}),e.onUnmounted(()=>{removeEventListener("keydown",Re),removeEventListener("scroll",tt,!0),removeEventListener("resize",nt),document.removeEventListener("click",Ve,!0),i.value&&P(i.value).removeEventListener("scroll",Ze,!0)});const kt=e.ref(!1),$t=e.ref({}),gn=e.ref([]),yn=e.ref(null);async function xt(){if(!(!n.add?.token||yn?.value.validate()))try{const W=n.add.api??`/api/table/${n.add.token}`,q=await fetch(W,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify($t.value)}),se=await q.json().catch(()=>({})),ye=se?.error||se?.message,ve=Number(se?.code)>=400;if(!q.ok||ve){ue.notify({title:"Помилка",type:"error",message:ye||`Код помилки: ${se?.code||q.status}`});return}const xe=se?.id;if(!xe){ue.notify({title:"Помилка",type:"error",message:"Обʼєкт створено, але в відповіді відсутній ID."});return}if(!n.options?.length&&n.data){const Ee=await fetch(`${n.api??`/api/suggest/${n.data}`}?val=${xe}`).then(Oe=>Oe.json());h.value=Ee[0],u.value.push(Ee[0]),s.value=xe}kt.value=!1,ue.notify({title:"Успіх",message:"Обʼєкт успішно створено."})}catch(W){ue.notify({title:"Помилка",type:"error",message:W?.message||"Не вдалося створити обʼєкт."})}}async function Jn(){if(!n.add)return null;const z=await fetch(`/api/template/form/${n.add.form}`).then(W=>W.json());return gn.value=z.schema,kt.value=!0,null}function bn(z,W=200){let q;return(...se)=>{q&&clearTimeout(q),q=window.setTimeout(()=>z(...se),W)}}const Qn=bn(async z=>{u.value=await ce(z)},200);e.watch(C,z=>{n.data&&Qn(z.trim())}),e.watch(()=>n.options,z=>{!n.data&&z?.length&&(u.value=[...z],Xe())},{immediate:!0}),e.watch(()=>n.parent??n.parentValue,()=>{n.data&&be()});const Et=e.ref(!0);return e.watch(de,async()=>{if(n.data&&(Et.value||(l.value?(S.value=[],s.value=[],o("change",[])):(h.value=null,s.value=null,o("change",null))),await be(),n.auto===1&&de.value&&u.value.length>0)){const z=u.value[0];z&&ie(z)}}),(z,W)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(ue.VsModal),{visible:kt.value,"onUpdate:visible":W[1]||(W[1]=q=>kt.value=q),class:"z-[1000]",title:"Додати",buttonText:"Додати",onDone:xt,teleport:r.teleport},{default:e.withCtx(()=>[e.createVNode(Je,{schema:gn.value,modelValue:$t.value,"onUpdate:modelValue":W[0]||(W[0]=q=>$t.value=q),ref_key:"addForm",ref:yn},null,8,["schema","modelValue"])]),_:1},8,["visible","teleport"]),e.createElementVNode("div",{class:"flex gap-1 w-full",ref_key:"selectRoot",ref:c,onClick:W[5]||(W[5]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass])},[W[6]||(W[6]=e.createElementVNode("span",{id:"react-select-live-region",class:"sr-only"},null,-1)),W[7]||(W[7]=e.createElementVNode("span",{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text",role:"log",class:"sr-only"},null,-1)),e.createElementVNode("div",{class:e.normalizeClass(["vs-input-select__control flex min-h-[38px] items-center justify-between rounded transition-colors bg-white",a.value?"bg-gray-100 text-gray-400 cursor-not-allowed":""]),role:"combobox","aria-expanded":m.value,"aria-haspopup":"listbox",onKeydown:M,onClick:U,"data-focus":m.value||x.value?"true":"false",ref_key:"triggerRef",ref:i},[e.createElementVNode("div",es,[l.value?(e.openBlock(),e.createElementBlock("div",ts,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(T.value,q=>(e.openBlock(),e.createElementBlock("div",{class:"flex min-w-0 bg-[rgb(230,230,230)] rounded-[2px] m-[2px] box-border max-w-full",key:q.id},[e.createElementVNode("div",ns,[ne(q)?(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:q?.color})},null,4)):e.createCommentVNode("",!0),!R.value&&ge(q)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(An),style:e.normalizeStyle(we(q)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(Z(q)),{class:"w-full h-full",focusable:"false"}))],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"truncate text-[#172b4d] overflow-hidden max-w-[200px] px-0.5 pl-1.5",title:Y(q)},[R.value?(e.openBlock(),e.createElementBlock("span",{key:0,innerHTML:G(q)},null,8,os)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(q.text),1)],64))],8,rs)]),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(se=>ee(q.id),["stop"])},[e.createVNode(e.unref(j.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,ls)]))),128)),e.createElementVNode("div",as,[!a.value&&r.search?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"inputRef",ref:_,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:S.value.length?" ":D.value,"onUpdate:modelValue":W[2]||(W[2]=q=>C.value=q),onFocus:ke,onBlur:Ye,onKeydown:K},null,40,ss)),[[e.vModelText,C.value]]):e.createCommentVNode("",!0)])])):!l.value&&V.value&&C.value===""?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["truncate text-gray-900 absolute inset-x-0 pl-2 flex items-center gap-1 min-w-0"]),title:V.value},[ne(h.value)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[14px] h-[14px] rounded-md block flex-shrink-0",style:e.normalizeStyle({backgroundColor:h.value?.color})},null,4)):e.createCommentVNode("",!0),!R.value&&ge(h.value)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(An),style:e.normalizeStyle(we(h.value)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(Z(h.value)),{class:"w-full h-full",focusable:"false"}))],4)):e.createCommentVNode("",!0),R.value?(e.openBlock(),e.createElementBlock("span",{key:2,class:"truncate flex-1 min-w-0",innerHTML:G(h.value)},null,8,cs)):(e.openBlock(),e.createElementBlock("span",ds,e.toDisplayString(h.value?.text),1))],8,is)):e.createCommentVNode("",!0),l.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",us,[!a.value&&r.search?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"inputRef",ref:_,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:V.value?" ":D.value,"onUpdate:modelValue":W[3]||(W[3]=q=>C.value=q),onFocus:ke,onBlur:Ye,onKeydown:K},null,40,ps)),[[e.vModelText,C.value]]):e.createCommentVNode("",!0)]))]),e.createElementVNode("div",fs,[N.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-hidden":"true",disabled:a.value,onClick:e.withModifiers(X,["stop"])},[e.createVNode(e.unref(j.X),{class:"h-4 w-4"})],8,ms)):e.createCommentVNode("",!0),N.value?(e.openBlock(),e.createElementBlock("div",hs)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:a.value,onClick:W[4]||(W[4]=e.withModifiers(q=>Be(),["stop"])),title:m.value?"Закрити список":"Відкрити список"},[e.createVNode(e.unref(j.ChevronDown),{class:"h-4 w-4"})],8,gs)])],42,Qa),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[m.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:f,class:e.normalizeClass(["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(w.value),role:"listbox"},[e.createElementVNode("div",{class:"overflow-y-auto py-1",style:e.normalizeStyle({maxHeight:w.value.maxHeight||"300px"}),ref_key:"listRef",ref:d},[A.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(A.value,(q,se)=>(e.openBlock(),e.createElementBlock("div",{key:q.id,ref_for:!0,ref:ye=>b.value[se]=ye,class:e.normalizeClass(["flex px-3 py-2 gap-2 cursor-pointer select-none text-gray-900",E(q.id)?"bg-[#2684ff] text-white":"bg-white hover:bg-[#deebff] hover:text-[#172b4d]",g.value===se&&!E(q.id)?"bg-[#deebff] text-[#172b4d]":""]),"aria-disabled":E(q.id)?"true":"false",role:"option",tabindex:"-1",onClick:ye=>Ce(q)},[ne(q)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[11px] h-[11px] rounded-full block flex-shrink-0",style:e.normalizeStyle({backgroundColor:q?.color})},null,4)):e.createCommentVNode("",!0),!R.value&&ge(q)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(An),style:e.normalizeStyle(we(q)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(Z(q)),{class:"w-full h-full",focusable:"false"}))],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["leading-[19px]",g.value===q.id?"text-white":"",(g.value===se,"")])},[R.value?(e.openBlock(),e.createElementBlock("span",{key:0,innerHTML:G(q)},null,8,bs)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(q.text),1)],64))],2)],10,ys))),128)):(e.openBlock(),e.createElementBlock("div",ks," No options "))],4)],4)):e.createCommentVNode("",!0)]))],2),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:Jn,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"}),W[8]||(W[8]=e.createElementVNode("span",null,"Додати",-1))],8,xs)):e.createCommentVNode("",!0)],512)],64))}}),[["__scopeId","data-v-5b8f243f"]]),ws=["placeholder","disabled"],fr=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(r){const t=r,{inputClass:n}=Te(t.style),o=e.useModel(r,"modelValue"),l=e.computed(()=>!!t.disabled),a=e.computed(()=>t.placeholder??"");function s(){typeof o.value=="string"&&(o.value=o.value.trim())}return(c,i)=>e.withDirectives((e.openBlock(),e.createElementBlock("textarea",{"onUpdate:modelValue":i[0]||(i[0]=d=>o.value=d),placeholder:a.value,disabled:l.value,row:"2",onBlur:s,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] h-auto bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"}},null,42,ws)),[[e.vModelText,o.value]])}}),mr=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(r){const t=e.defineAsyncComponent(()=>Promise.resolve().then(()=>Qh)),n=r,{inputClass:o}=Te(n.style),l=e.useModel(r,"modelValue"),a=e.computed(()=>!!n.disabled),s=e.computed(()=>n.placeholder??""),c=e.computed(()=>({height:"300px",format:n.format,...n.richtextProps}));return(i,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["!h-full",[r.customClass,e.unref(o)]]),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]=f=>l.value=f),placeholder:s.value},c.value),null,16,["modelValue","placeholder"])],6))}}),_s={},vs={viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Cs(r,t){return e.openBlock(),e.createElementBlock("svg",vs,[...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 Es=me(_s,[["render",Cs]]),Bs={class:"bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden flex flex-col"},Vs={key:0,class:"flex flex-col gap-2 !p-4 border-b border-gray-200 sm:flex-row sm:items-center sm:justify-between bg-gray-50"},Ss={key:0,class:"relative w-full"},$s={class:"flex flex-nowrap items-center justify-end gap-2 w-full overflow-x-auto"},Ns={class:"w-full overflow-x-auto"},As={class:"w-full min-w-[640px] table-auto divide-y divide-gray-200"},Fs={class:"bg-gray-50"},Ms={class:"border-b border-gray-200"},Ds={class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 w-12 text-center"},Ls=["onClick"],Ts={key:0,class:"text-gray-400"},Is={key:0,colspan:"100%",class:"text-center"},Rs={class:"w-full"},Os={class:"p-5 min-h-[200px] flex flex-col justify-center items-center text-center"},zs=["onDragstart","onDragover","onDrop"],Ps={class:"px-4 py-3 text-center align-middle"},js={class:"flex items-center justify-center"},Us=["innerHTML"],Hs={key:0,class:"flex items-center gap-3 text-sm text-gray-700"},qs={key:0},Gs=["src"],Ks={key:1,class:"rounded-md max-w-[45px] w-[45px] max-h-[45px] h-[45px] bg-gray-200 flex items-center justify-center"},Ws={key:1,class:"flex items-center justify-center"},Ys={key:2,class:"text-sm font-medium text-gray-900"},Zs={class:"px-4 py-3 text-right whitespace-nowrap"},Xs={class:"flex items-center justify-end gap-2"},Js=["onClick"],Qs=["onClick"],ei={class:"vs-form__head mr-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},hr=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(r){const t=r,n=e.useSlots(),o=U=>t.actions===void 0?!0:t.actions.includes(U),l=["search","import","export","add"],a=e.computed(()=>l.some(U=>o(U))),s=e.useModel(r,"modelValue"),c=e.ref({}),i=e.ref(""),d=e.ref(null),f=e.ref("asc"),m=e.computed(()=>{const U=s.value??[],X=i.value?U.filter(ie=>x.value?.some(Ce=>{const _e=Ce.key||Ce.name;if(!_e)return!1;const P=ie[_e];return P?Array.isArray(P)?P.join(", ").toLowerCase().includes(i.value.toLowerCase()):String(P).toLowerCase().includes(i.value.toLowerCase()):!1})):U;if(!d.value)return X;const ee=d.value,ae=[...X].sort((ie,Ce)=>{const _e=re(ie?.[ee]),P=re(Ce?.[ee]);return typeof _e=="number"&&typeof P=="number"?_e-P:String(_e).localeCompare(String(P))});return f.value==="asc"?ae:ae.reverse()}),x=e.computed(()=>(t.colModel??[]).filter(U=>!U.tableHidden)),h=e.ref(null),u=e.ref(null),g=e.ref(null),b=U=>{h.value=U},C=U=>{u.value=U},_=U=>{if(h.value===null||h.value===U){h.value=null,u.value=null;return}const X=[...s.value],[ee]=X.splice(h.value,1);X.splice(U,0,ee),s.value=X,h.value=null,u.value=null},k=()=>{g.value&&g.value.click()},w=U=>{const X=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".ico",".tiff",".tif"],ee=U.toLowerCase();return X.some(ae=>ee.endsWith(ae))},S=U=>{const ee=U.target.files?.[0];if(!ee)return;const ae=new FileReader;ae.onload=ie=>{try{const Ce=ie.target?.result;if(typeof Ce=="string"){const _e=JSON.parse(Ce);Array.isArray(_e)&&s.value.push(..._e)}}catch(Ce){console.error("Error parsing file:",Ce)}},ae.readAsText(ee)},T=()=>{const U=JSON.stringify(s.value,null,2),X=new Blob([U],{type:"application/json"}),ee=URL.createObjectURL(X),ae=document.createElement("a");ae.href=ee,ae.download="data.json",ae.click(),URL.revokeObjectURL(ee)},D=new Set(["autocomplete","select","radio","checkbox","combobox"]),V=new Map,N=(U,X)=>{const ee=`/api/suggest/${U}`,ae=ee.includes("?")?"&":"?",ie=X?`&val=${X}`:"";return`${ee}${ae}json=1${ie}`},E=U=>U==null||U===""?null:typeof U=="object"?U?.id!==void 0&&U.id!==null&&U.id!==""?U.id:null:U,A=U=>{const X=new Set;return Array.isArray(s.value)&&s.value.forEach(ee=>{const ae=ee?.[U];if(ae==null||ae==="")return;if(Array.isArray(ae)){ae.forEach(Ce=>{const _e=E(Ce);_e!==null&&X.add(_e)});return}const ie=E(ae);ie!==null&&X.add(ie)}),X},L=async()=>{if(!t.colModel?.length)return;const U=t.colModel.filter(X=>X.data&&D.has(X.type?.toLowerCase()||""));U.length&&await Promise.all(U.map(async X=>{const ee=X.key||X.name;if(!ee)return;const ae=A(ee),ie=Array.from(ae).map(P=>String(P)).sort(),Ce=ie.join(",");if(!ie.length||V.get(ee)===Ce)return;V.set(ee,Ce);const _e=ie.map(encodeURIComponent).join(",");try{const Q=await(await fetch(N(X.data,_e))).json();c.value[ee]=Q?.data??Q}catch(P){console.error("Failed to fetch column values",P)}}))};e.watch([()=>t.colModel,()=>s.value],()=>{L()},{immediate:!0,deep:!0});const O=e.ref(""),F=e.ref(!1);let I="edit",R=0;const G=U=>(U?.format||U?.type||"").toString().toLowerCase(),Y=e.computed(()=>t.colModel?.filter(U=>G(U)!=="slot").map(U=>{const{slot:X,...ee}=U;return ee})??[]),Z=e.ref({}),ne=e.ref({}),we=U=>typeof U!="string"?!1:!!n[U],ge=(U,X)=>X?X.split(".").reduce((ee,ae)=>ee==null?ee:ee[ae.trim()],U):U,J=(U,X)=>typeof U!="string"?"":U.replace(/{{\s*([^}]+)\s*}}/g,(ee,ae)=>{const ie=ge(X,ae.trim());return ie??""}),re=U=>{if(U==null||U==="")return"";if(typeof U=="number")return U;if(typeof U=="boolean")return U?1:0;if(typeof U=="string")return U.toLowerCase();if(Array.isArray(U))return U.map(X=>re(X)).join(", ");if(typeof U=="object"){if(U.text!==void 0)return String(U.text).toLowerCase();if(U.label!==void 0)return String(U.label).toLowerCase();if(U.id!==void 0)return String(U.id).toLowerCase()}return String(U).toLowerCase()},de=U=>{const X=U.key||U.name;if(X){if(d.value===X){f.value=f.value==="asc"?"desc":"asc";return}d.value=X,f.value="asc"}};async function ce(){O.value="Додати",F.value=!0,I="add",Z.value={}}function be(U,X){if(!U?.length)return null;const ee=typeof X=="object"?X?.id:X;return ee==null||ee===""?null:U.find(ae=>ae?.id?.toString()===ee.toString())?.text??null}function De(U){return U==null||U===""?"-":Array.isArray(U)?U.map(X=>typeof X=="object"?X?.text??X?.id??"-":X).join(", "):typeof U=="object"?U?.text??U?.id??"-":U}function $e(U,X){const ee=X.key||X.name,ae=U?.[ee],ie=c.value[ee];if(!ae)return"-";if(Array.isArray(ae)){const _e=ae.map(P=>be(ie,P)).filter(Boolean);return _e.length?_e.join(", "):De(ae)}const Ce=be(ie,ae);return Ce||De(ae)}async function et(U,X){O.value="Редагувати",F.value=!0,I="edit",R=X,Z.value={...U}}function it(){const U=ne.value.validate();if(U){ue.notify({type:"warning",title:"Помилка валідації",message:Object.entries(U).map(([X,ee])=>`${X}: ${ee}`).join(`
2
+ `)});return}I==="add"?Array.isArray(s.value)?s.value=[...s.value,Z.value]:s.value=[Z.value]:s.value=s.value.map((X,ee)=>ee===R?Z.value:X),F.value=!1}function Ie(U){s.value=s.value.filter((X,ee)=>ee!==U)}function Be(){F.value=!1}return(U,X)=>(e.openBlock(),e.createElementBlock("div",Bs,[a.value?(e.openBlock(),e.createElementBlock("div",Vs,[o("search")?(e.openBlock(),e.createElementBlock("div",Ss,[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":X[0]||(X[0]=ee=>i.value=ee),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",$s,[o("import")?(e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"fileInput",ref:g,onChange:S,class:"hidden",accept:".json",type:"file"},null,544)):e.createCommentVNode("",!0),o("import")?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",onClick:k,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"}),X[4]||(X[4]=e.createTextVNode(" Імпорт ",-1))])):e.createCommentVNode("",!0),o("export")?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:T,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"}),X[5]||(X[5]=e.createTextVNode(" Експорт ",-1))])):e.createCommentVNode("",!0),o("add")?(e.openBlock(),e.createElementBlock("button",{key:3,onClick:ce,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"}),X[6]||(X[6]=e.createTextVNode(" Додати ",-1))])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),e.createElementVNode("div",Ns,[e.createElementVNode("table",As,[e.createElementVNode("thead",Fs,[e.createElementVNode("tr",Ms,[e.createElementVNode("th",Ds,[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(x.value,ee=>(e.openBlock(),e.createElementBlock("th",{key:ee.key,class:"px-4 py-3 text-left text-xs font-semibold text-gray-900"},[e.createElementVNode("button",{type:"button",onClick:ae=>de(ee),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(ee.ua||ee.label),1),d.value===(ee.key||ee.name)?(e.openBlock(),e.createElementBlock("span",Ts,e.toDisplayString(f.value==="asc"?"▲":"▼"),1)):e.createCommentVNode("",!0)],8,Ls)]))),128)),X[7]||(X[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":!u.value}])},[m.value.length===0?(e.openBlock(),e.createElementBlock("td",Is,[e.createElementVNode("div",Rs,[e.createElementVNode("div",Os,[e.createVNode(Es,{class:"w-48 mx-auto"}),X[8]||(X[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(m.value,(ee,ae)=>(e.openBlock(),e.createElementBlock("tr",{key:ee.id,class:e.normalizeClass(["border-b transition-colors hover:bg-gray-50 cursor-move text-sm text-gray-700",{"opacity-50":h.value===ae,"border-t-2 border-b-2 border-blue-500 bg-blue-50 dark:bg-blue-900/20":u.value===ae}]),draggable:"true",onDragstart:ie=>b(ae),onDragover:e.withModifiers(ie=>C(ae),["prevent"]),onDrop:ie=>_(ae)},[e.createElementVNode("td",Ps,[e.createElementVNode("div",js,[e.createVNode(e.unref(j.GripVertical),{class:"mx-auto h-4 w-4 text-slate-400 dark:text-slate-500"})])]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.value,ie=>(e.openBlock(),e.createElementBlock("td",{key:ie.key,class:"px-4 py-3 align-middle"},[G(ie)==="slot"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[we(ie.slot)?e.renderSlot(U.$slots,ie.slot,{key:0,row:ee,value:ee[ie.key],column:ie}):(e.openBlock(),e.createElementBlock("div",{key:1,class:"text-sm text-gray-900",innerHTML:J(ie.slot,ee)},null,8,Us))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[G(ie)==="file"?(e.openBlock(),e.createElementBlock("div",Hs,[w($e(ee,ie))?(e.openBlock(),e.createElementBlock("div",qs,[e.createElementVNode("img",{src:$e(ee,ie),alt:"alt",width:"45",class:"rounded-md max-w-[45px] h-[45px] object-cover"},null,8,Gs)])):(e.openBlock(),e.createElementBlock("div",Ks,[e.createVNode(e.unref(j.FileText),{class:"h-4 w-4 min-w-4"})]))])):G(ie)==="color"?(e.openBlock(),e.createElementBlock("div",Ws,[e.createElementVNode("span",{class:"inline-flex h-6 w-6 rounded border border-gray-200",style:e.normalizeStyle({backgroundColor:$e(ee,ie)||"#ffffff"})},null,4)])):(e.openBlock(),e.createElementBlock("div",Ys,e.toDisplayString($e(ee,ie)),1))],64))]))),128)),e.createElementVNode("td",Zs,[e.createElementVNode("div",Xs,[e.createElementVNode("button",{onClick:ie=>et(ee,ae),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,Js),e.createElementVNode("button",{onClick:ie=>Ie(ae),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,Qs)])])],42,zs))),128))],2)])]),e.createVNode(e.unref(ue.VsModal),{visible:F.value,title:O.value,size:"lg",onClose:Be,teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(Je,{schema:Y.value,values:Z.value,"onUpdate:values":X[1]||(X[1]=ee=>Z.value=ee),form:ne.value,"onUpdate:form":X[2]||(X[2]=ee=>ne.value=ee)},null,8,["schema","values","form"]),e.createElementVNode("div",ei,[e.createElementVNode("button",{type:"button",onClick:X[3]||(X[3]=ee=>F.value=!1),class:"vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-red-500 hover:border-red-500 hover:bg-red-500 focus:ring-red-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 mr-2"}," Скасувати "),e.createElementVNode("button",{onClick:it,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"])]))}}),ti={},ni={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 ri(r,t){return e.openBlock(),e.createElementBlock("svg",ni,[...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 oi=me(ti,[["render",ri]]),li={},ai={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 si(r,t){return e.openBlock(),e.createElementBlock("svg",ai,[...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 ii=me(li,[["render",si]]),ci={},di={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 ui(r,t){return e.openBlock(),e.createElementBlock("svg",di,[...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 pi=me(ci,[["render",ui]]),fi={class:"bg-white/30 p-1 rounded-md shadow w-fit"},mi={class:"flex gap-2"},hi=["onClick","title"],gi=["src"],yi=e.defineComponent({__name:"map-layers",props:{basemaps:{}},emits:["onLayerChange"],setup(r,{emit:t}){const n=r,o=e.ref(Object.keys(n.basemaps)[0]),l=t;function a(i){l("onLayerChange",i),o.value=i}const s={z:13,x:4790,y:2762};function c(i){if(i?.preview)return i.preview;if(!i?.url)return;const d={"{z}":s.z,"{x}":s.x,"{y}":s.y};let f=i.url;return Object.entries(d).forEach(([m,x])=>{f=f.replace(new RegExp(m,"gi"),String(x))}),f}return(i,d)=>(e.openBlock(),e.createElementBlock("div",fi,[e.createElementVNode("div",mi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.basemaps,(f,m)=>(e.openBlock(),e.createElementBlock("div",{key:m,class:e.normalizeClass(["cursor-pointer border rounded-lg overflow-hidden hover:shadow-sm",{"ring-2 ring-blue-500 border-blue-300":o.value===m}]),onClick:x=>a(m),title:f.name||m,role:"button",tabindex:"0"},[e.createElementVNode("img",{src:c(f),alt:"",class:"w-10 h-10 object-cover"},null,8,gi)],10,hi))),128))])]))}}),bi={class:"map-search-widget flex flex-col gap-2 rounded-xl widget min-w-[200px]"},ki={key:0,class:"vs-select__options absolute z-50 mt-1 w-full bg-white border border-gray-300 shadow-lg rounded-lg text-sm"},xi=["onClick"],wi={class:"relative flex-1 min-w-[140px]"},_i=["placeholder"],vi={type:"submit",class:"absolute inset-y-0 right-2 flex items-center text-gray-400 hover:text-gray-600","aria-label":"Пошук"},Ci="https://data.softpro.ua/api-user/gis-url-proxy",Ei="https://geo.rv.ua/api-user/dzk.api",Bi=me(e.defineComponent({__name:"map-search",props:{config:{}},emits:["goToCoordinates"],setup(r,{emit:t}){const n=r,o=t,l=["here","xy","parcel"],a=e.computed(()=>{const w=n.config?.tools?.filter(S=>l.includes(S));return w&&w.length?w:l}),s=e.computed(()=>n.config?.placeholder?.trim()||"Пошук…"),c=e.ref(a.value[0]??l[0]);e.watch(a,w=>{w.includes(c.value)||(c.value=w[0])});const i=e.ref(""),d=e.ref(!1),f=e.ref(null);e.watch(c,()=>{i.value="",d.value=!1});function m(w){c.value=w}function x(w){if(!d.value)return;const S=f.value;S&&!S.contains(w.target)&&(d.value=!1)}e.onMounted(()=>{window.addEventListener("click",x,!0)}),e.onBeforeUnmount(()=>{window.removeEventListener("click",x,!0)});function h(w){return w==="xy"?"Координати":w==="parcel"?"Кадастр":"Адреси"}function u(w){const S=w.replace(/[,]+/g," ").trim();if(!S)return null;const T=S.split(/\s+/).filter(Boolean);if(T.length<2)return null;const D=T.slice(0,2).map(Number);if(!D.every(F=>Number.isFinite(F)))return null;const[V,N]=D;let E=V,A=N;const L=F=>Math.abs(F)<=90,O=F=>Math.abs(F)<=180;if(!L(E)||!O(A))if(L(A)&&O(E))E=N,A=V;else return null;return{lat:E,lng:A}}function g(w){return(w?.items||[]).map((T,D)=>({id:String(T?.id??D),title:T?.title||T?.address?.label||"Знайдений обʼєкт",lat:Number(T?.position?.lat),lng:Number(T?.position?.lng)})).filter(T=>Number.isFinite(T.lat)&&Number.isFinite(T.lng))}function b(w){const S=w?.result||w?.data||w;if(!S)return[];const T=S.geom_centroid;if(!T||!Array.isArray(T.coordinates))return[];const[D,V]=T.coordinates;return!Number.isFinite(V)||!Number.isFinite(D)?[]:[{id:"parcel",title:S.cadnum||S.cad_num||"Земельна ділянка",lat:V,lng:D}]}function C(w){const T=w.replace(/\s+/g,"").split(":");if(T.length!==4)return!1;const D=[10,2,3,4];return T.every((V,N)=>V.length===D[N]&&/^\d+$/.test(V))}function _(w){o("goToCoordinates",[w.lat,w.lng])}async function k(){const w=i.value.trim();if(w){if(c.value==="xy"){const S=u(w);if(!S){ue.notify({type:"warning",title:"Пошук координат",message:"Не знайдено або невірний формат координат"});return}_(S),i.value="";return}try{const S=new URL(c.value==="here"?Ci:Ei);if(c.value==="here")S.searchParams.set("searchtext",w);else{if(!C(w)){ue.notify({type:"warning",title:"Пошук кадастру",message:"Кадастровий номер має формат ХХХХХХХХХХ:ХХ:ХХХ:ХХХХ"});return}S.searchParams.set("cad_num",w)}const T=await fetch(S.toString());if(!T.ok)throw new Error(`HTTP ${T.status}`);const D=await T.json(),V=c.value==="here"?g(D):b(D);if(!V.length)ue.notify({type:"warning",title:"Пошук",message:"Не знайдено результатів"});else{const N=V[0];_(N),i.value=""}}catch(S){const T=S?.message||"Помилка пошуку";ue.notify({type:"error",title:"Пошук",message:T})}}}return(w,S)=>(e.openBlock(),e.createElementBlock("div",bi,[e.createElementVNode("form",{class:"flex gap-2",onSubmit:e.withModifiers(k,["prevent"])},[a.value.length>1?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:f,class:"relative search-type w-[140px]"},[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:S[0]||(S[0]=T=>d.value=!d.value)},[e.createElementVNode("span",null,e.toDisplayString(h(c.value)),1),e.createVNode(e.unref(j.ChevronDown),{class:e.normalizeClass(["h-4 w-4 text-gray-500 transition-transform",{"rotate-180":d.value}])},null,8,["class"])]),d.value?(e.openBlock(),e.createElementBlock("div",ki,[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,T=>(e.openBlock(),e.createElementBlock("li",{key:T,class:"px-3 py-2 cursor-pointer hover:bg-gray-100",onClick:D=>m(T)},e.toDisplayString(h(T)),9,xi))),128))])])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),e.createElementVNode("div",wi,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":S[1]||(S[1]=T=>i.value=T),placeholder:s.value,type:"text",class:"vs-input transition-all border block w-full border-gray-200 rounded-md focus:border-blue-100 border-solid !pr-8 py-1.5 pl-3 text-sm"},null,8,_i),[[e.vModelText,i.value,void 0,{trim:!0}]]),e.createElementVNode("button",vi,[e.createVNode(e.unref(j.Search),{class:"h-4 w-4"})])])],32)]))}}),[["__scopeId","data-v-1241d5df"]]),Vi={class:"pt-1 border-t border-gray-100"},Si={class:"space-y-1"},$i=e.defineComponent({__name:"AddCoordinates",emits:["submit","cancel"],setup(r,{emit:t}){const n=t,o=e.ref(null),l=e.ref(null),a=(i,d,f)=>Math.min(Math.max(i,d),f),s=()=>{if(o.value===null||l.value===null||!Number.isFinite(o.value)||!Number.isFinite(l.value))return;const i=a(o.value,-90,90),d=a(l.value,-180,180);n("submit",{lat:i,lng:d}),o.value=null,l.value=null},c=()=>{o.value=null,l.value=null,n("cancel")};return(i,d)=>(e.openBlock(),e.createElementBlock("div",Vi,[d[2]||(d[2]=e.createElementVNode("p",{class:"text-xs text-gray-600 mb-1"},"Додати точку за координатами:",-1)),e.createElementVNode("div",Si,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[0]||(d[0]=f=>o.value=f),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,o.value,void 0,{number:!0}]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[1]||(d[1]=f=>l.value=f),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}," Скасувати ")])])]))}}),Ni=e.defineComponent({__name:"BtnAdd",emits:["click"],setup(r){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"flex-1 px-2 py-1.5 bg-blue-500 hover:bg-blue-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=o=>t.$emit("click"))},[e.createVNode(e.unref(j.Plus),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode(" Додати ",-1))]))}}),Ai=e.defineComponent({__name:"BtnClear",emits:["click"],setup(r){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"w-full px-2 py-1.5 bg-rose-500 hover:bg-rose-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=o=>t.$emit("click"))},[e.createVNode(e.unref(j.Trash2),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode(" Очистити ",-1))]))}}),Fi=e.defineComponent({__name:"BtnComplete",emits:["click"],setup(r){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"flex-1 px-2 py-1.5 bg-emerald-500 hover:bg-emerald-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=o=>t.$emit("click"))},[e.createVNode(e.unref(j.Circle),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode("Замкнути ",-1))]))}}),Mi=new Intl.NumberFormat("uk-UA",{minimumFractionDigits:2,maximumFractionDigits:2});function wt(r){return Mi.format(r)}function gr(r){return r>=1e3?`${wt(r/1e3)} км`:`${wt(r)} м`}const Di={class:"flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"},Li={key:0,class:"flex-1 flex gap-1"},Ti={key:1,class:"flex-1 font-mono text-gray-700"},Ii=e.defineComponent({__name:"DotListItem",props:{id:{},index:{},coords:{}},emits:["update","delete"],setup(r,{emit:t}){const n=r,o=t,l=e.computed(()=>`${n.coords.lat.toFixed(4)}°, ${n.coords.lng.toFixed(4)}°`),a=e.ref(!1),s=e.ref(n.coords.lat),c=e.ref(n.coords.lng);e.watch(()=>n.coords,x=>{s.value=x.lat,c.value=x.lng},{deep:!0,immediate:!0});const i=(x,h,u)=>Math.min(Math.max(x,h),u),d=()=>{a.value=!0},f=()=>{if(!Number.isFinite(s.value)||!Number.isFinite(c.value))return;const x=i(s.value,-90,90),h=i(c.value,-180,180);o("update",{id:n.id,coords:{lat:x,lng:h}}),a.value=!1},m=()=>{o("delete",n.id)};return(x,h)=>(e.openBlock(),e.createElementBlock("div",Di,[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",Li,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[0]||(h[0]=u=>s.value=u),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":h[1]||(h[1]=u=>c.value=u),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:f}," ✓ ")])):(e.openBlock(),e.createElementBlock("span",Ti,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:m}," ✕ ")]))}}),Ri={class:"ruler-control px-3 py-2.5 space-y-2"},Oi={type:"button",class:"ruler-row w-full flex items-center gap-2 cursor-pointer group text-left"},zi={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"},Pi={class:"text-sm font-semibold text-slate-700"},ji={class:"ruler-row"},Ui={type:"button",class:"w-full flex items-center gap-2 cursor-pointer group text-left"},Hi={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"},qi={class:"inline-flex rounded-md overflow-hidden border border-gray-200 bg-gray-100"},Gi=["onClick"],Ki={class:"flex items-center gap-2 mt-0.5 pl-7"},Wi={key:0,class:"text-base font-semibold text-green-600"},Yi={key:1,class:"text-xs text-gray-400"},Zi={class:"ruler-row flex items-center gap-2 cursor-pointer"},Xi={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"},Ji={class:"text-xs font-medium text-gray-600 flex-1"},Qi={key:0,class:"pt-1.5 border-t border-gray-100 max-h-32 overflow-y-auto space-y-1"},ec=e.defineComponent({__name:"ControlPanel",props:{points:{},isShapeClosed:{type:Boolean}},emits:["update-point","delete-point"],setup(r){const t=r,n=e.ref(!1),o=e.ref("km2"),l=[{id:"km2",label:"км²"},{id:"ha",label:"га"},{id:"m2",label:"м²"}],a=()=>{n.value=!n.value},s=(u,g)=>{const b=N=>N*Math.PI/180,C=b(g.lat-u.lat),_=b(g.lng-u.lng),k=b(u.lat),w=b(g.lat),S=Math.sin(C/2),T=Math.sin(_/2);return 6371e3*(2*Math.asin(Math.sqrt(S*S+Math.cos(k)*Math.cos(w)*T*T)))},c=e.computed(()=>{if(t.points.length<2)return 0;let u=0;for(let g=1;g<t.points.length;g+=1)u+=s(t.points[g-1].coords,t.points[g].coords);return t.isShapeClosed&&t.points.length>=2&&(u+=s(t.points[t.points.length-1].coords,t.points[0].coords)),u}),i=e.computed(()=>c.value>=1e3?`${wt(c.value/1e3)} км`:`${wt(c.value)} м`);function d(u){if(u.length<3)return 0;const g=u[0].lat,b=u[0].lng,C=(k,w)=>{const S=(k-g)*110574;return{x:(w-b)*111320*Math.cos(g*Math.PI/180),y:S}};let _=0;for(let k=0;k<u.length;k++){const w=(k+1)%u.length,S=C(u[k].lat,u[k].lng),T=C(u[w].lat,u[w].lng);_+=S.x*T.y-S.y*T.x}return Math.abs(_)*.5}const f=e.computed(()=>{if(!t.isShapeClosed||t.points.length<3)return 0;const u=t.points.map(g=>g.coords);return d(u)}),m=e.computed(()=>f.value>0),x=e.computed(()=>{const u=f.value;if(u===0)return"—";if(o.value==="km2"){const b=u/1e6;return`${wt(b)} км²`}if(o.value==="ha"){const b=u/1e4;return`${wt(b)} га`}const g=u>=1?Math.round(u):u;return`${wt(g)} м²`}),h=e.computed(()=>{const u=t.points.length;return u===1?"1 точка":u>=2&&u<=4?`${u} точки`:`${u} точок`});return e.watch(()=>t.points.length,()=>{t.points.length===0&&(n.value=!1)}),(u,g)=>(e.openBlock(),e.createElementBlock("div",Ri,[e.createElementVNode("button",Oi,[e.createElementVNode("span",zi,[e.createVNode(e.unref(j.Info),{size:12,"stroke-width":2.5})]),g[1]||(g[1]=e.createElementVNode("span",{class:"text-xs font-medium text-gray-600 flex-1"},"Загальна відстань",-1)),e.createElementVNode("span",Pi,e.toDisplayString(i.value),1)]),e.createElementVNode("div",ji,[e.createElementVNode("button",Ui,[e.createElementVNode("span",Hi,[e.createVNode(e.unref(j.Info),{size:12,"stroke-width":2.5})]),g[2]||(g[2]=e.createElementVNode("span",{class:"text-xs font-medium text-gray-600 flex-1"},"Площа",-1)),e.createElementVNode("div",qi,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(l,(b,C)=>e.createElementVNode("button",{key:b.id,type:"button",class:e.normalizeClass(["px-2.5 py-1 text-xs font-medium transition-colors border-r border-gray-200 last:border-r-0",C===0&&"rounded-l-md",C===l.length-1&&"rounded-r-md",o.value===b.id?"bg-white text-green-600 font-semibold shadow-sm":"text-gray-600 hover:bg-gray-50"]),onClick:e.withModifiers(_=>o.value=b.id,["stop"])},e.toDisplayString(b.label),11,Gi)),64))])]),e.createElementVNode("div",Ki,[m.value?(e.openBlock(),e.createElementBlock("span",Wi,e.toDisplayString(x.value),1)):(e.openBlock(),e.createElementBlock("span",Yi,"—"))])]),e.createElementVNode("div",Zi,[e.createElementVNode("span",Xi,[e.createVNode(e.unref(j.Info),{size:12,"stroke-width":2.5})]),e.createElementVNode("span",Ji,e.toDisplayString(h.value),1),e.createElementVNode("button",{type:"button",class:"text-xs text-blue-500 hover:text-blue-600 font-medium transition-colors",onClick:e.withModifiers(a,["stop"])}," Координати ")]),n.value?(e.openBlock(),e.createElementBlock("div",Qi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.points,(b,C)=>(e.openBlock(),e.createBlock(Ii,{key:b.id,id:b.id,index:C+1,coords:b.coords,onUpdate:g[0]||(g[0]=_=>u.$emit("update-point",_)),onDelete:_=>u.$emit("delete-point",b.id)},null,8,["id","index","coords","onDelete"]))),128))])):e.createCommentVNode("",!0)]))}}),tc={class:"px-3 py-3 bg-blue-50/50 border-b border-blue-100"},nc={class:"flex items-start gap-2"},rc=e.defineComponent({__name:"InfoHint",setup(r){return(t,n)=>(e.openBlock(),e.createElementBlock("div",tc,[e.createElementVNode("div",nc,[e.createVNode(e.unref(j.Info),{size:16,"stroke-width":2,class:"text-blue-600 flex-shrink-0 mt-0.5"}),n[0]||(n[0]=e.createElementVNode("div",{class:"space-y-1"},[e.createElementVNode("p",{class:"text-xs font-medium text-blue-900"}," Натискайте на карту, щоб додати точки вимірювання "),e.createElementVNode("p",{class:"text-[10px] text-blue-700"},' Або скористайтесь кнопкою "Додати" внизу для введення координат вручну ')],-1))])]))}}),oc={class:"space-y-1.5"},lc={class:"space-y-1 max-h-40 overflow-y-auto"},ac={class:"text-gray-700"},sc={class:"font-semibold text-slate-800"},ic=e.defineComponent({__name:"ToPointList",props:{points:{},isShapeClosed:{type:Boolean}},setup(r){const t=r;function n(a,s){const c=h=>h*Math.PI/180,i=c(s.lat-a.lat),d=c(s.lng-a.lng),f=c(a.lat),m=c(s.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(i/2)**2+Math.cos(f)*Math.cos(m)*Math.sin(d/2)**2)))}function o(a){return gr(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=n(s[c].coords,s[i].coords);a.push({from:c+1,to:i+1,label:o(d)})}return a});return(a,s)=>(e.openBlock(),e.createElementBlock("div",oc,[s[0]||(s[0]=e.createElementVNode("p",{class:"text-xs font-medium text-gray-600 mb-1.5"},"Відстань між точками:",-1)),e.createElementVNode("div",lc,[(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",ac,"Точка "+e.toDisplayString(c.from)+" → Точка "+e.toDisplayString(c.to),1),e.createElementVNode("span",sc,e.toDisplayString(c.label),1)]))),128))])]))}}),cc={class:"ruler-panel-wrap absolute bottom-12 right-4 z-[1001] animate-slide-up"},dc={class:"bg-white rounded-xl shadow-2xl border border-gray-200 overflow-hidden w-72"},uc={class:"bg-gradient-to-r from-blue-400 to-blue-500 px-3 py-2 flex items-center justify-between"},pc={class:"flex items-center gap-2"},fc={class:"w-6 h-6 bg-white/20 rounded-lg flex items-center justify-center"},mc={class:"flex border-b border-gray-200"},hc={key:1,class:"px-3 py-2.5"},gc={key:1,class:"text-xs text-gray-500"},yc={class:"px-2.5 py-1.5 bg-gray-50 border-t border-gray-200 space-y-1.5"},bc={class:"flex gap-1.5"},kc=e.defineComponent({name:"RulerPanel",__name:"RulerPanel",emits:["close","tab-change","points-change","add-request","complete","shape-closed-change"],setup(r,{expose:t,emit:n}){const o=n,l=e.ref([]),a=e.computed(()=>l.value.length>0),s=e.ref(!1),c=e.ref(!1),i=e.ref("general");function d(E){i.value=E,o("tab-change",E)}e.onMounted(()=>{o("tab-change",i.value)});const f=e.computed(()=>l.value.length>=3&&!c.value);let m=1;const x=()=>l.value.map(E=>({id:E.id,coords:{...E.coords}})),h=()=>{l.value.length<3&&c.value&&(c.value=!1,o("shape-closed-change",!1)),o("points-change",x())},u=()=>{const E=m;return m+=1,E},g=E=>{l.value=[...l.value,{id:u(),coords:{lat:E.lat,lng:E.lng}}],h()},b=({id:E,coords:A})=>{const L=l.value.findIndex(F=>F.id===E);if(L===-1)return;const O=[...l.value];O[L]={id:E,coords:{...A}},l.value=O,h()},C=E=>{l.value=l.value.filter(A=>A.id!==E),h()},_=()=>{l.value=[],c.value&&(c.value=!1,o("shape-closed-change",!1)),h()},k=E=>{b(E)},w=E=>{C(E)},S=()=>{s.value=!0,o("add-request")},T=E=>{g(E),s.value=!1},D=()=>{s.value=!1},V=()=>{f.value&&(c.value=!0,o("complete"),o("shape-closed-change",!0))},N=()=>{_(),s.value=!1,o("close")};return t({addPoint:g,clearPoints:_}),(E,A)=>(e.openBlock(),e.createElementBlock("div",cc,[e.createElementVNode("div",dc,[e.createElementVNode("div",uc,[e.createElementVNode("div",pc,[e.createElementVNode("div",fc,[e.createVNode(e.unref(j.Ruler),{size:14,"stroke-width":2,class:"text-white"})]),A[2]||(A[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:N},[e.createVNode(e.unref(j.X),{size:14,"stroke-width":2,class:"text-white"})])]),e.createElementVNode("div",mc,[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:A[0]||(A[0]=L=>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:A[1]||(A[1]=L=>d("topoint"))}," До точки ",2)]),i.value==="general"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[a.value?(e.openBlock(),e.createBlock(ec,{key:1,points:l.value,"is-shape-closed":c.value,onUpdatePoint:k,onDeletePoint:w},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createBlock(rc,{key:0}))],64)):(e.openBlock(),e.createElementBlock("div",hc,[a.value?(e.openBlock(),e.createBlock(ic,{key:0,points:l.value,"is-shape-closed":c.value},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createElementBlock("p",gc,"Додайте точки на карті, щоб бачити відстані між ними."))])),e.createElementVNode("div",yc,[e.createElementVNode("div",bc,[s.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(Ni,{key:0,onClick:S})),f.value?(e.openBlock(),e.createBlock(Fi,{key:1,onClick:V})):e.createCommentVNode("",!0)]),s.value?(e.openBlock(),e.createBlock($i,{key:0,onSubmit:T,onCancel:D})):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createBlock(Ai,{key:1,onClick:_})):e.createCommentVNode("",!0)])])]))}}),Pe="ruler-points",dt="ruler-line",ut="ruler-polygon",pt="ruler-segments",xc=e.defineComponent({__name:"RulerLayer",props:{map:{},points:{},isShapeClosed:{type:Boolean},labelMode:{}},setup(r){function t(u,g){const b=T=>T*Math.PI/180,C=b(g.lat-u.lat),_=b(g.lng-u.lng),k=b(u.lat),w=b(g.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(C/2)**2+Math.cos(k)*Math.cos(w)*Math.sin(_/2)**2)))}function n(u){return gr(u)}const o=r;function l(){return{type:"FeatureCollection",features:[]}}function a(u,g,b){const C=b??"general",_=[];let k=0;_.push(0);for(let w=1;w<u.length;w++)k+=t(u[w-1].coords,u[w].coords),_.push(k);return g&&u.length>=2&&(k+=t(u[u.length-1].coords,u[0].coords)),{type:"FeatureCollection",features:u.map((w,S)=>{const T=C==="general"?S===0?"0":n(_[S]):S===0?"0":n(t(u[S-1].coords,u[S].coords));return{type:"Feature",geometry:{type:"Point",coordinates:[w.coords.lng,w.coords.lat]},properties:{id:w.id,index:S+1,label:T}}})}}function s(u,g){if(u.length<2)return l();const b=[];for(let C=0;C<u.length;C++){const _=C===u.length-1&&g?0:C+1;if(_>=u.length)break;const k=u[C].coords,w=u[_].coords,S=t(k,w);b.push({type:"Feature",geometry:{type:"LineString",coordinates:[[k.lng,k.lat],[w.lng,w.lat]]},properties:{distance:n(S)}})}return{type:"FeatureCollection",features:b}}function c(u,g){if(u.length<2)return l();const b=u.map(C=>[C.coords.lng,C.coords.lat]);return g&&b.push(b[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"LineString",coordinates:b},properties:{}}]}}function i(u){if(u.length<3)return l();const g=u.map(b=>[b.coords.lng,b.coords.lat]);return g.push(g[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"Polygon",coordinates:[g]},properties:{}}]}}let d=!1;function f(u){u.getSource(Pe)||(u.addSource(Pe,{type:"geojson",data:l()}),u.addLayer({id:`${Pe}-circle`,type:"circle",source:Pe,paint:{"circle-radius":5,"circle-color":"#1e293b","circle-stroke-width":2,"circle-stroke-color":"#ffffff"}}),u.addLayer({id:`${Pe}-labels`,type:"symbol",source:Pe,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}})),u.getSource(pt)||(u.addSource(pt,{type:"geojson",data:l()}),u.addLayer({id:`${pt}-labels`,type:"symbol",source:pt,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}})),u.getSource(dt)||(u.addSource(dt,{type:"geojson",data:l()}),u.addLayer({id:`${dt}-layer`,type:"line",source:dt,paint:{"line-color":"#3b82f6","line-width":2}})),u.getSource(ut)||(u.addSource(ut,{type:"geojson",data:l()}),u.addLayer({id:`${ut}-layer`,type:"fill",source:ut,paint:{"fill-color":"#93c5fd","fill-opacity":.25}})),d=!0}function m(u){if(u){try{u.getLayer(`${ut}-layer`)&&u.removeLayer(`${ut}-layer`),u.getSource(ut)&&u.removeSource(ut),u.getLayer(`${dt}-layer`)&&u.removeLayer(`${dt}-layer`),u.getSource(dt)&&u.removeSource(dt),u.getLayer(`${pt}-labels`)&&u.removeLayer(`${pt}-labels`),u.getSource(pt)&&u.removeSource(pt),u.getLayer(`${Pe}-labels`)&&u.removeLayer(`${Pe}-labels`),u.getLayer(`${Pe}-circle`)&&u.removeLayer(`${Pe}-circle`),u.getSource(Pe)&&u.removeSource(Pe)}catch{}d=!1}}function x(u){if(!u)return;const g=u.getSource(Pe),b=u.getSource(dt),C=u.getSource(ut),_=u.getSource(pt),k=o.points,w=o.labelMode??"general";g&&g.setData(a(k,o.isShapeClosed,w)),b&&b.setData(c(k,o.isShapeClosed)),C&&C.setData(i(k)),_&&_.setData(w==="topoint"?s(k,o.isShapeClosed):l())}function h(){const u=o.map;u&&(d||f(u),x(u))}return e.watch(()=>[o.points,o.isShapeClosed,o.labelMode],()=>h(),{deep:!0,immediate:!0}),e.watch(()=>o.map,()=>h(),{immediate:!0}),e.onBeforeUnmount(()=>{m(o.map)}),(u,g)=>null}});function wc(r={}){const t=e.ref(!1),n=e.ref([]),o=e.ref(!1),l=e.ref("general"),a=e.ref(null);function s(){t.value?c():(t.value=!0,r.onActivate?.())}function c(){t.value=!1,n.value=[],o.value=!1,a.value?.clearPoints(),r.onDeactivate?.()}function i(h){n.value=h}function d(h){l.value=h}function f(h){o.value=h}function m(h){t.value&&a.value?.addPoint({lat:h.lat,lng:h.lng})}const x=e.computed(()=>n.value.length>0);return{isRulerActive:t,rulerPoints:n,rulerShapeClosed:o,rulerActiveTab:l,rulerPanelRef:a,hasRulerPoints:x,toggleRuler:s,closeRuler:c,onRulerPointsChange:i,onRulerTabChange:d,onRulerShapeClosedChange:f,handleRulerMapClick:m}}const _t=1e-10,Wt=/([+-]?\d{1,3})\s*[°º˚]\s*(\d{1,2})\s*['’′`]\s*(\d{1,2}(?:\.\d+)?)\s*["”″]\s*([NSEW])/gi,_c=/^[+-]?\d+(?:\.\d+)?$/;function vc(r,t,n){const o=r.split(/\r?\n/).map(d=>d.trim()).filter(Boolean);if(o.length<3)return{ok:!1,errors:[{line:0,message:"Має бути щонайменше 3 рядки координат."}]};if(o.length>100)return{ok:!1,errors:[{line:0,message:"Допускається не більше 100 рядків координат."}]};const l=[],a=[];if(o.forEach((d,f)=>{const m=f+1,x=t==="decimal"?Cc(d,m,n):Ec(d,m,n);if(!x.ok){l.push(...x.errors);return}const h=a[a.length-1];if(h&&br(h,x.point)){l.push({line:m,message:"Послідовні точки не повинні дублюватися."});return}a.push(x.point)}),l.length)return{ok:!1,errors:l};if(new Set(a.map(Bc)).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),Vc(c)?{ok:!1,errors:[{line:0,message:"Полігон має самоперетин."}]}:{ok:!0,ring:c,wasClosedAutomatically:i}}function Cc(r,t,n){const o=[];if(/[A-Za-zА-Яа-яІіЇїЄєҐґ]/.test(r))return{ok:!1,errors:[{line:t,message:"У десятковому форматі не допускаються літери."}]};const l=r.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=>_c.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=n==="lat-lon"?a:s,i=n==="lat-lon"?s:a;return(c<-90||c>90)&&o.push({line:t,message:"Широта поза діапазоном (-90..90)."}),(i<-180||i>180)&&o.push({line:t,message:"Довгота поза діапазоном (-180..180)."}),o.length?{ok:!1,errors:o}:{ok:!0,point:[i,c]}}function Ec(r,t,n){Wt.lastIndex=0;const o=[...r.matchAll(Wt)];if(o.length<2)return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати DMS-координати."}]};if(o.length>2)return{ok:!1,errors:[{line:t,message:"У рядку дозволено лише одну пару координат."}]};if(Wt.lastIndex=0,r.replace(Wt," ").replace(/[\s,;]+/g,"").trim().length)return{ok:!1,errors:[{line:t,message:"У рядку виявлено зайві символи або значення."}]};const a=yr(o[0],t,n==="lat-lon"?"lat":"lon"),s=yr(o[1],t,n==="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=n==="lat-lon"?a.value:s.value;return{ok:!0,point:[n==="lat-lon"?s.value:a.value,i]}}function yr(r,t,n){const o=Number(r[1]),l=Number(r[2]),a=Number(r[3]),s=String(r[4]).toUpperCase();if(!Number.isFinite(o)||!Number.isFinite(l)||!Number.isFinite(a))return{ok:!1,error:{line:t,message:"Невірні значення DMS-координат."}};if(n==="lat"&&!(s==="N"||s==="S")||n==="lon"&&!(s==="E"||s==="W"))return{ok:!1,error:{line:t,message:n==="lat"?"Для широти напрям повинен бути N або S.":"Для довготи напрям повинен бути E або W."}};if(l<0||l>59)return{ok:!1,error:{line:t,message:"Хвилини повинні бути в діапазоні 0..59."}};if(a<0||a>59)return{ok:!1,error:{line:t,message:"Секунди повинні бути в діапазоні 0..59."}};const d=Math.abs(o),f=n==="lat"?90:180;if(d>f)return{ok:!1,error:{line:t,message:n==="lat"?"Градуси широти повинні бути в діапазоні 0..90.":"Градуси довготи повинні бути в діапазоні 0..180."}};if(d===f&&(l!==0||a!==0))return{ok:!1,error:{line:t,message:n==="lat"?"Для 90° широти хвилини й секунди мають бути 0.":"Для 180° довготи хвилини й секунди мають бути 0."}};const m=d+l/60+a/3600;return{ok:!0,value:s==="S"||s==="W"?-m:m}}function Bc(r){return`${r[0].toFixed(12)}:${r[1].toFixed(12)}`}function br(r,t){return Math.abs(r[0]-t[0])<_t&&Math.abs(r[1]-t[1])<_t}function Vc(r){if(r.length<4)return!1;for(let t=0;t<r.length-1;t+=1){const n=r[t],o=r[t+1];for(let l=t+1;l<r.length-1;l+=1){if(Math.abs(t-l)<=1||t===0&&l===r.length-2)continue;const a=r[l],s=r[l+1];if(Sc(n,o,a,s))return!0}}return!1}function Sc(r,t,n,o){const l=Yt(r,t,n),a=Yt(r,t,o),s=Yt(n,o,r),c=Yt(n,o,t);return!!(l!==a&&s!==c||l===0&&Zt(r,n,t)||a===0&&Zt(r,o,t)||s===0&&Zt(n,r,o)||c===0&&Zt(n,t,o))}function Yt(r,t,n){const o=(t[1]-r[1])*(n[0]-t[0])-(t[0]-r[0])*(n[1]-t[1]);return Math.abs(o)<_t?0:o>0?1:2}function Zt(r,t,n){return t[0]<=Math.max(r[0],n[0])+_t&&t[0]+_t>=Math.min(r[0],n[0])&&t[1]<=Math.max(r[1],n[1])+_t&&t[1]+_t>=Math.min(r[1],n[1])}const $c={key:0,class:"absolute top-4 left-4 z-[1000] w-[calc(100%-20px)] sm:w-[350px]"},Nc={key:1,class:"form-geom__panel flex gap-1 items-start mt-2"},Ac={class:"flex items-center gap-1"},Fc=["disabled"],Mc={key:0,class:"absolute z-[1600] mt-1 min-w-[120px] bg-white border border-gray-300 shadow-lg rounded-lg text-sm overflow-hidden"},Dc=["disabled"],Lc=["disabled"],Tc={class:"mt-4 flex justify-end gap-2"},Ic=["disabled"],Rc={class:"absolute top-4 right-4 z-[1000]"},Oc={class:"flex flex-col gap-[2px]"},zc=["disabled"],Pc=["disabled"],jc=["disabled"],Uc=["disabled"],Hc={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"},qc={class:"space-y-0.5"},Gc={class:"text-gray-500"},Kc={class:"text-gray-900 text-right break-all"},Wc={class:"absolute left-4 bottom-[36px] z-[1000]"},Yc={class:"flex flex-col gap-2"},Zc={key:0,class:"bg-white/95 border border-gray-200 rounded-md shadow-sm px-3 py-2 text-xs text-gray-700 min-w-[200px]"},Xc={class:"flex flex-col gap-1"},Jc=["checked","disabled","onChange"],Qc={class:"text-gray-700 text-xs font-medium"},ed={class:"absolute bottom-0 left-0 right-0 z-[1000] min-h-[28px] bg-white/95 border-t border-gray-200 text-xs text-gray-700 flex items-center gap-4 pt-1"},td={key:0,class:"form-geom__feature flex items-center text-xs transition-all gap-2 w-full px-2 pb-1"},nd={class:"mr-auto flex items-center gap-2 min-w-0 relative"},rd={class:"shrink-0"},od={key:0,class:"font-bold"},ld=["onClick","disabled"],ad={key:0},sd={class:"flex items-center"},id={class:"text-xs mr-2"},cd={key:0},dd={key:1},ud={key:0,class:"text-xs mr-2"},pd={key:1,class:"text-xs mr-2"},fd=["disabled"],md=["disabled"],Xt="__vs_form_maplibre_loader__",Jt="vs-global-bounds-src",Qt="vs-global-bounds-line",kr=me(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(r,{emit:t}){const n=r,o=t,l=e.useAttrs(),a=e.computed(()=>{const p=l?.multiple,y=l?.multi,v=B=>B===""||B===!0||B==="true"||B===1||B==="1";return!!n.multi||!!n.multiple||v(y)||v(p)}),s=e.computed(()=>!!n.disabled),c=e.ref(!1),i=e.ref(null),d=e.ref(0),f=e.ref(""),m=e.ref(null),x=e.ref([]),h=e.ref(null),u=e.ref(null),g=wc({onActivate(){if(K)try{K.changeMode("simple_select",{featureIds:[]})}catch{}f.value=""},onDeactivate(){}});function b(){g.toggleRuler()}const C=e.getCurrentInstance(),_=C?.appContext?.config?.globalProperties?.$settings??{},k=_?.map??{},w=C?.vnode?.props??{};function S(p){return Object.prototype.hasOwnProperty.call(w,p)||Object.prototype.hasOwnProperty.call(w,p.replace(/[A-Z]/g,y=>`-${y.toLowerCase()}`))}const T=Array.isArray(k.center)&&k.center.length===2?k.center:Array.isArray(_.center)&&_.center.length===2?_.center:[30,50],D=typeof k.zoom=="number"?k.zoom:typeof _.zoom=="number"?_.zoom:typeof _.defaultZoom=="number"?_.defaultZoom:10,V=e.computed(()=>S("center")?n.center:k.center??n.center),N=e.computed(()=>S("zoom")?n.zoom:k.zoom??n.zoom),E=e.computed(()=>S("katottg")?String(n.katottg??""):String(k.katottg??n.katottg??"")),A=e.computed(()=>S("layers")?n.layers??[]:k.layers??n.layers??[]),L=e.computed(()=>S("bounds")?n.bounds:k.bounds??n.bounds),O=e.ref(Array.isArray(V.value)&&V.value.length===2?[...V.value]:T),F=e.ref(typeof N.value=="number"?N.value:D),I=e.ref(n.modelValue),R=e.ref(null),G=e.ref(null),Y=e.ref([]),Z=e.ref(!1),ne=e.ref(!1),we=e.ref([]),ge=e.ref({coordinates:"",format:"decimal",order:"lat-lon"}),J={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 se=!1,Z=!1;const te=e.reactive({}),ae=e.ref([]),ye=e.computed(()=>ae.value.map(m=>te[m]).filter(Boolean)),ge=e.ref(null),Fe=e.computed(()=>ge.value?.entries??[]),Ie=e.computed(()=>{if(ge.value)return{left:`${ge.value.point.x+12}px`,top:`${ge.value.point.y+12}px`}}),Ze=e.computed(()=>{if(Array.isArray(n.tools)&&n.tools.length)return n.tools;const m=l?.tools;return Array.isArray(m)?m.map(b=>String(b)):typeof m=="string"?m.split(",").map(b=>b.trim()).filter(Boolean):[]}),Ce=e.computed(()=>{const m={search:!1,import:!1,export:!1,point:!1,line:!1,polygon:!1,rectangle:!1,ruler:!1};if(!Ze.value.length)return{...m,import:!0,export:!0,point:!0,line:!0,polygon:!0,rectangle:!0};const b=new Set(Ze.value.map(B=>B.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 Le(m){if(typeof m!="string"||!m.trim())return"";if(/^https?:\/\//i.test(m))return m;const b=window?.location?.origin??"",B=m.replace(/^\/+/,"");return B?b?`${b}/${B}`:`/${B}`:b}function vt(){const m=Array.isArray(C.basemaps)&&C.basemaps.length?C.basemaps:y.basemaps;if(Array.isArray(m)&&m.length){const B=m.map((F,G)=>{const J=String(F?.key??F?.id??F?.name??`b${G}`),ne=Le(String(F?.url??""));if(!ne)return null;const ue=typeof F?.preview=="string"&&F.preview?Le(F.preview):"";return[J,{...F,url:ne,preview:ue}]}).filter(F=>Array.isArray(F)&&F.length===2).reduce((F,[G,J])=>(F[G]=J,F),{});if(Object.keys(B).length)return B}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 j=vt(),Y=Object.keys(j),X=e.ref(Y.length?Y[0]:"");async function oe(){if(typeof window>"u")return null;const m=window;if(m[Xt])return m[Xt];const b=J=>{if(Array.from(document.styleSheets).some(Be=>Be?.href?.includes(J)))return;const ue=document.createElement("link");ue.rel="stylesheet",ue.href=J,document.head.appendChild(ue)},B=async()=>{const J=new Function("u","return import(u)"),ne=await J("https://esm.sh/maplibre-gl@3.6.2"),ue=ne?.default??ne;if(!ue)throw new Error("maplibre esm fallback failed");window.maplibregl=ue,window.mapboxgl=ue;const Be=await J("https://esm.sh/@mapbox/mapbox-gl-draw@1.5.0"),qe=Be?.default??Be;if(!qe)throw new Error("mapbox draw esm fallback failed");window.MapboxDraw=qe},G=(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 B();const J=window.maplibregl,ne=window.MapboxDraw;if(!J)throw new Error("maplibregl not available after load");if(!ne)throw new Error("MapboxDraw not available after load");return{maplibregl:J,MapboxDraw:ne}})().catch(J=>{throw delete m[Xt],J});return m[Xt]=G,G}function ie(m){return{version:8,sources:{rasterSource:{type:"raster",tiles:[m],tileSize:256}},layers:[{id:"rasterLayer",type:"raster",source:"rasterSource"}]}}let xe=null,ke=null,v=null,z=null,ee=null,ce=null,Ee=!1,ct=!1;function tt(){return{onSetup(){const m=this.newFeature({type:"Feature",properties:{},geometry:{type:"Polygon",coordinates:[[[0,0],[0,0],[0,0],[0,0],[0,0]]]}});return this.addFeature(m),this.clearSelectedFeatures(),this.updateUIClasses({mouse:"add"}),this.setActionableState({trash:!0}),{rectangle:m,startPoint:null,hasCoordinates:!1}},onMouseMove(m,b){if(!m.startPoint)return;const[B,F]=m.startPoint,G=b.lngLat.lng,J=b.lngLat.lat;m.rectangle.setCoordinates([[[B,F],[G,F],[G,J],[B,J],[B,F]]])},onClick(m,b){if(!m.startPoint){m.startPoint=[b.lngLat.lng,b.lngLat.lat],m.hasCoordinates=!0,m.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[B,F]=m.startPoint,G=b.lngLat.lng,J=b.lngLat.lat;return Math.abs(B-G)>0&&Math.abs(F-J)>0?(m.rectangle.setCoordinates([[[B,F],[G,F],[G,J],[B,J],[B,F]]]),this.map.fire("draw.create",{features:[m.rectangle.toGeoJSON()]}),this.changeMode("simple_select",{featureIds:[m.rectangle.id]})):(this.deleteFeature([m.rectangle.id],{silent:!0}),m.hasCoordinates=!1,this.changeMode("simple_select"))},onStop(){},onTrash(m){this.deleteFeature([m.rectangle.id],{silent:!0}),this.changeMode("simple_select")},toDisplayFeatures(m,b,B){if(!m.hasCoordinates)return;const F=b.properties.id===m.rectangle.id;b.properties.active=F?"true":"false",B(b)}}}const Ct=[{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 dt(){const m=X.value;return!m||!j[m]?.url?"":j[m].url}function gt(m,b){return m?.id?String(m.id):m?.url?`${m.url}-${b}`:`layer-${b}`}function nt(m){const b=String(m?.url??"").trim();if(!b)return"";if(/^https?:\/\//i.test(b))return b;const B=window.location?.origin??"",F=b.replace(/^\/+/,"");return`${B}/${F}`}function De(m){m&&ge.value?.layerId!==m||(ge.value=null)}function yt(m,b={}){return m.popup===!1?[]:Array.isArray(m.popup)?m.popup.length?m.popup.map(B=>{const F=B?.field||B?.name;if(!F)return null;const G=b[F];return G==null||G===""?null:{key:B.label||F,value:String(G)}}).filter(Boolean):[]:Object.entries(b).slice(0,5).map(([B,F])=>({key:B,value:F==null?"—":String(F)}))}function Nt(m){if(!Array.isArray(m))return[];const b=F=>Array.isArray(F)&&F.length>=2&&Number.isFinite(Number(F[0]))&&Number.isFinite(Number(F[1])),B=F=>{if(!F.length)return F;const G=F[0],J=F[F.length-1];return!J||G[0]!==J[0]||G[1]!==J[1]?[...F,G]:F};if(m.length&&b(m[0])){const F=m.map(G=>[Number(G[0]),Number(G[1])]).filter(b);return F.length?[B(F)]:[]}return m.length&&Array.isArray(m[0])&&b(m[0][0])?m.map(G=>Array.isArray(G)?G.map(J=>[Number(J[0]),Number(J[1])]):[]).filter(G=>G.length).map(B):m.length&&Array.isArray(m[0])&&Array.isArray(m[0][0])&&b(m[0][0][0])?m.flatMap(G=>Array.isArray(G)?G:[]).map(G=>Array.isArray(G)?G.map(J=>[Number(J[0]),Number(J[1])]):[]).filter(G=>G.length).map(B):[]}function gn(m){const b=m.style??{},B=b.color??"#3b82f6";if(!b.colorAttr||!b.colorSet)return B;const F=Object.keys(b.colorSet);if(!F.length)return B;const G=["match",["to-string",["get",b.colorAttr]]];return F.forEach(J=>{G.push(String(J),b.colorSet?.[J]??B)}),G.push(B),G}function Et(m){if(!v)return;m.handlers.forEach(B=>{try{v.off(B.type,B.layerId,B.handler)}catch{}}),m.handlers=[],[...m.layerIds,...m.boundsIds].forEach(B=>{v.getLayer(B)&&v.removeLayer(B)}),v.getSource(m.sourceId)&&v.removeSource(m.sourceId);const b=`vs-ov-bounds-src-${m.id}`;v.getSource(b)&&v.removeSource(b),De(m.id)}function Xn(m,b){if(!v)return[];const B=`vs-ov-bounds-src-${b}`,F=`vs-ov-bounds-line-${b}`,G=m.bounds??E.value??T.value,J=Nt(G);if(!J.length)return[];const ne={type:"FeatureCollection",features:J.map(ue=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:ue}}))};return v.getSource(B)&&v.removeSource(B),v.addSource(B,{type:"geojson",data:ne}),v.addLayer({id:F,type:"line",source:B,paint:{"line-color":m.style?.stroke??m.style?.color??"#2563eb","line-width":m.style?.width??2,"line-opacity":m.style?.opacity??.8,"line-dasharray":[2,2]}}),[F]}function bt(m){if(!v)return;Et(m);const b=m.config,B=nt(b);if(!B)return;const F=[],G=[];if(/\.v(?:m)?t(?:\?|$)/i.test(B)||/\.pbf(?:\?|$)/i.test(B)){const ue=b.sourceLayer||b.layer||b.service_layer||b.dataset?.layer||b.id;v.addSource(m.sourceId,{type:"vector",tiles:[B]});const Be=String(b.style?.type??"polygon").toLowerCase(),qe=gn(b),Xe=b.style?.opacity??.5;if(Be==="point"){const lt=`vs-ov-point-${m.id}`;v.addLayer({id:lt,type:"circle",source:m.sourceId,"source-layer":ue,paint:{"circle-color":qe,"circle-radius":5,"circle-opacity":Xe}}),F.push(lt)}else if(Be==="polyline"||Be==="line"){const lt=`vs-ov-line-${m.id}`;v.addLayer({id:lt,type:"line",source:m.sourceId,"source-layer":ue,layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":qe,"line-width":b.style?.width??2,"line-opacity":Xe}}),F.push(lt)}else{const lt=`vs-ov-fill-${m.id}`,Kt=`vs-ov-border-${m.id}`;v.addLayer({id:lt,type:"fill",source:m.sourceId,"source-layer":ue,paint:{"fill-color":qe,"fill-opacity":Xe}}),v.addLayer({id:Kt,type:"line",source:m.sourceId,"source-layer":ue,paint:{"line-color":b.style?.stroke??b.style?.color??"#2563eb","line-width":b.style?.width??1,"line-opacity":Xe}}),F.push(lt,Kt)}}else{v.addSource(m.sourceId,{type:"raster",tiles:[B],tileSize:256});const ue=`vs-ov-raster-${m.id}`;v.addLayer({id:ue,type:"raster",source:m.sourceId,paint:{"raster-opacity":b.style?.opacity??1}}),F.push(ue)}F.forEach(ue=>{const Be=Xe=>{if(!Xe?.features?.length){De(m.id);return}const lt=Xe.features[0]?.properties??{},Kt=yt(m.config,lt);if(!Kt.length){De(m.id);return}ge.value={layerId:m.id,entries:Kt,point:{x:Xe.point.x,y:Xe.point.y}}},qe=()=>De(m.id);v.on("mousemove",ue,Be),v.on("mouseleave",ue,qe),G.push({layerId:ue,type:"mousemove",handler:Be},{layerId:ue,type:"mouseleave",handler:qe})}),m.layerIds=F,m.boundsIds=Xn(m.config,m.id),m.handlers=G;const ne=m.visible?"visible":"none";[...m.layerIds,...m.boundsIds].forEach(ue=>{v.getLayer(ue)&&v.setLayoutProperty(ue,"visibility",ne)})}function Bt(){if(!v)return;const b={type:"FeatureCollection",features:Nt(E.value??T.value).map(B=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:B}}))};v.getSource(Jt)?v.getSource(Jt).setData(b):v.addSource(Jt,{type:"geojson",data:b}),v.getLayer(Qt)||v.addLayer({id:Qt,type:"line",source:Jt,paint:{"line-color":"#2563eb","line-width":2,"line-opacity":.8,"line-dasharray":[2,2]}})}function Jn(m){if(!v||a.value)return;const b=te[m];if(!b)return;b.visible=!b.visible;const B=b.visible?"visible":"none";[...b.layerIds,...b.boundsIds].forEach(F=>{v.getLayer(F)&&v.setLayoutProperty(F,"visibility",B)}),rt(),b.visible||De(m)}function rt(){if(!v)return;const m=[],b=[],B=[],F=[];ae.value.forEach(ne=>{const ue=te[ne];if(!ue)return;const Be=String(ue.config?.url??""),qe=/\.v(?:m)?t(?:\?|$)/i.test(Be),Xe=/\.png(?:\?|$)/i.test(Be);qe?B.push(...ue.layerIds):Xe?m.push(...ue.layerIds):b.push(...ue.layerIds),F.push(...ue.boundsIds)}),[...m,...b,...B,...F].forEach(ne=>{v.getLayer(ne)&&v.moveLayer(ne)}),v.getLayer(Qt)&&v.moveLayer(Qt),(v.getStyle?.()?.layers??[]).map(ne=>String(ne?.id??"")).filter(ne=>ne.startsWith("gl-draw-")).forEach(ne=>{v.getLayer(ne)&&v.moveLayer(ne)})}function O(m){if(!j[m]||(X.value=m,!v))return;const b=dt();if(!b)return;const B=v.getCenter?.(),F=v.getZoom?.(),G=z?.getAll?.();v.setStyle(ie(b)),v.once("style.load",()=>{if(v&&(B&&Number.isFinite(F)&&v.jumpTo({center:[B.lng,B.lat],zoom:F}),Bt(),ae.value.forEach(J=>{const ne=te[J];ne&&bt(ne)}),rt(),G?.features?.length&&z))try{G.features.forEach(J=>z.add(J)),i.value=G.features.length}catch{i.value=0}})}function K(m){return m?m.type==="FeatureCollection"?m.features?.[0]?.geometry??null:m.type==="Feature"?m.geometry??null:m.geom?.type&&Array.isArray(m.geom.coordinates)?{type:m.geom.type,coordinates:m.geom.coordinates}:typeof m.type=="string"&&Array.isArray(m.coordinates)?m:null:null}function q(m){return{type:"Feature",properties:{},geometry:m}}function le(m){if(!m)return null;try{return JSON.parse(JSON.stringify(m))}catch{return null}}function be(m){if(!m)return"__null__";try{return JSON.stringify(m)}catch{return"__invalid__"}}function _e(m,b){if(!Array.isArray(m)||!Array.isArray(b)||m.length<2||b.length<2)return!1;const B=1e-12;return Math.abs(Number(m[0])-Number(b[0]))<B&&Math.abs(Number(m[1])-Number(b[1]))<B}function we(m,b){if(!Array.isArray(m)||m.length<4)return null;const F=_e(m[0],m[m.length-1])?m.slice(0,-1):m.slice();return!Number.isInteger(b)||b<0||b>=F.length||F.length<=3||(F.splice(b,1),F.length<3)?null:[...F,[...F[0]]]}function Se(m,b){if(!Array.isArray(m)||m.length<2||!Number.isInteger(b)||b<0||b>=m.length||m.length<=2)return null;const B=m.slice();return B.splice(b,1),B.length<2?null:B}function Re(m,b){const B=le(m);if(!B||!Array.isArray(b))return null;if(B.type==="LineString"){const[F]=b,G=Se(B.coordinates,F);return G?(B.coordinates=G,B):null}if(B.type==="MultiLineString"){const[F,G]=b,J=B.coordinates?.[F],ne=Se(J,G);return ne?(B.coordinates[F]=ne,B):null}if(B.type==="Polygon"){const[F,G]=b,J=B.coordinates?.[F],ne=we(J,G);return ne?(B.coordinates[F]=ne,B):null}if(B.type==="MultiPolygon"){const[F,G,J]=b,ne=B.coordinates?.[F]?.[G],ue=we(ne,J);return ue?(B.coordinates[F][G]=ue,B):null}return null}function He(m){return m?m.split(".").map(b=>Number(b)).filter(b=>Number.isInteger(b)&&b>=0):[]}function ot(m){return!z||!m?null:typeof z.get=="function"?z.get(m)??null:z.getAll?.()?.features?.find(B=>String(B?.id??"")===m)??null}function Ge(m,b){if(!z||!m||!b.length)return;const B=ot(m);if(!B?.geometry)return;const F=Re(B.geometry,b);if(!F)return;const G={...B,id:B.id??m,geometry:F};Z=!0,se=!0;try{z.delete(m),z.add(G)}finally{se=!1,Z=!1}yn(),qt()}function Ut(m){if(!v||!z||a.value||p.isRulerActive.value||d.value!=="edit")return;const b=m?.point;if(!b)return;const B=[[b.x-8,b.y-8],[b.x+8,b.y+8]],G=v.queryRenderedFeatures(B).find(ne=>ne?.properties?.meta==="vertex"&&ne?.properties?.parent&&ne?.properties?.coord_path);if(!G)return;m?.originalEvent?.preventDefault?.(),m?.originalEvent?.stopPropagation?.();const J=He(String(G.properties.coord_path));J.length&&Ge(String(G.properties.parent),J)}function jh(m){const b=bo(m);if(!b)return null;const[[B,F],[G,J]]=b;return{lat:(F+J)/2,lng:(B+G)/2}}function go(m){if(!Array.isArray(m)||m.length<3)return 0;const b=(F,G)=>{const J=F*2003750834e-2/180,ne=Math.log(Math.tan((90+G)*Math.PI/360))/(Math.PI/180);return[J,ne*2003750834e-2/180]};let B=0;for(let F=0;F<m.length-1;F+=1){const[G,J]=b(Number(m[F][0]),Number(m[F][1])),[ne,ue]=b(Number(m[F+1][0]),Number(m[F+1][1]));B+=G*ue-ne*J}return Math.abs(B/2)/1e6}function Uh(m){if(!m?.type||!m?.coordinates)return null;if(m.type==="Polygon"){const b=m.coordinates?.[0];return Array.isArray(b)?go(b):null}return m.type==="MultiPolygon"?m.coordinates.reduce((b,B)=>{const F=B?.[0];return Array.isArray(F)?b+go(F):b},0):null}function Qn(m){if(!m){f.value=null;return}const b=jh(m);if(!b){f.value=null;return}f.value={type:String(m.type??"Feature"),center:b,areaKm2:Uh(m)}}function Hh(m){switch(String(m)){case"Point":return"Точка";case"MultiPoint":return"Мультиточка";case"LineString":return"Лінія";case"MultiLineString":return"Мультилінія";case"Polygon":return"Полігон";case"MultiPolygon":return"Мультиполігон";case"GeometryCollection":return"Колекція геометрій";default:return String(m||"Невідомо")}}function yo(m,b){if(!Array.isArray(m)||!Array.isArray(b)||m.length!==2||b.length!==2)return!1;const B=1e-9;return Math.abs(Number(m[0])-Number(b[0]))<B&&Math.abs(Number(m[1])-Number(b[1]))<B}function bo(m){if(!m)return null;let b=1/0,B=1/0,F=-1/0,G=-1/0;const J=ne=>{if(Array.isArray(ne)){if(ne.length>=2&&Number.isFinite(ne[0])&&Number.isFinite(ne[1])){const ue=Number(ne[0]),Be=Number(ne[1]);b=Math.min(b,ue),B=Math.min(B,Be),F=Math.max(F,ue),G=Math.max(G,Be);return}ne.forEach(J)}};return J(m.coordinates),!Number.isFinite(b)||!Number.isFinite(B)?null:[[b,B],[F,G]]}function ko(m){if(!v||!m)return;const b=bo(m);if(!b)return;const[[B,F],[G,J]]=b;if(B===G&&F===J){v.easeTo({center:[B,F],zoom:Math.max(M.value,14)});return}v.fitBounds(b,{padding:30,duration:250,maxZoom:18})}function er(){if(!z){i.value=0;return}const m=z.getAll();i.value=m?.features?.length??0}function yn(){if(!z)return;const m=z.getAll();if(i.value=m?.features?.length??0,!m?.features?.length){ee=null,f.value=null,se||(ce="__null__",o("update:modelValue",null));return}const b=le(m.features[m.features.length-1]?.geometry??null);ee=b,Qn(b),se||(ce=be(b),o("update:modelValue",b))}function bn(){if(!z)return;(z.getAll()?.features||[]).forEach(b=>z.delete(b.id)),er()}function kn(m){if(!z)return;const b=K(m);if(se=!0,bn(),b)try{z.add(q(b))}catch{}se=!1,ee=le(b),er(),Qn(b),b&&(ko(b),a.value||qt())}function qh(){if(z){if(se=!0,bn(),ee)try{z.add(q(ee))}catch{}se=!1,er(),Qn(ee)}}function Ht(){if(z){try{z.changeMode("simple_select",{featureIds:[]})}catch{}d.value=""}}function xn(m){if(a.value||!z)return;p.isRulerActive.value&&p.closeRuler(),ct=!0,Ht(),d.value=m;const b=m==="marker"?"draw_point":m==="polyline"?"draw_line_string":m==="rectangle"?"draw_rectangle":"draw_polygon";se=!0,bn(),se=!1;try{z.changeMode(b)}catch{d.value=""}finally{requestAnimationFrame(()=>{ct=!1})}}function qt(){if(a.value||!z)return;const m=z.getAll();if(m?.features?.length)try{z.changeMode("direct_select",{featureId:m.features[0].id}),d.value="edit"}catch{d.value=""}}function Kh(){a.value||!z||(Ht(),bn(),ce="__null__",f.value=null,o("update:modelValue",null))}function Gh(){a.value||!ee||ko(ee)}function Wh(m){v&&v.easeTo({center:[m[1],m[0]],zoom:13,duration:250})}function Yh(){a.value||D.value?.click()}function Zh(){a.value||(U.value=!U.value)}function xo(m){if(!U.value)return;const b=I.value;b&&!b.contains(m.target)&&(U.value=!1)}function Xh(){U.value=!1,Yh()}function Jh(){a.value||(W.value=[],U.value=!1,H.value=!0)}function Qh(){H.value=!1,W.value=[]}function eg(){if(a.value||!z)return;const m=hc(Q.value.coordinates??"",Q.value.format||"decimal",Q.value.order||"lat-lon");if(!m.ok){W.value=m.errors,tg(m.errors);return}W.value=[],kn({type:"Polygon",coordinates:[m.ring]}),H.value=!1,m.wasClosedAutomatically&&de.notify({type:"info",title:"Імпорт координат",message:"Полігон був автоматично замкнений (перша і остання точки різнилися)."})}function tg(m){if(!m.length)return;const b=5;m.slice(0,b).forEach(B=>{const F=B.line>0?`Рядок ${B.line}`:"Загальна помилка";de.notify({type:"warning",title:"Імпорт координат",message:`${F} — ${B.message}`})}),m.length>b&&de.notify({type:"warning",title:"Імпорт координат",message:`Ще помилок: ${m.length-b}`})}function ng(m){if(a.value||!z)return;U.value=!1;const b=m.target,B=b.files?.[0];if(!B)return;const F=new FileReader;F.onload=()=>{try{const G=JSON.parse(String(F.result)),J=K(G);if(!J){de.notify({type:"warning",title:"Імпорт файлу",message:"Файл не містить коректний GeoJSON-обʼєкт."});return}kn(J)}catch{de.notify({type:"error",title:"Імпорт файлу",message:"Не вдалося прочитати файл. Перевірте формат GeoJSON/JSON."})}finally{b.value=""}},F.onerror=()=>{de.notify({type:"error",title:"Імпорт файлу",message:"Помилка читання файлу."}),b.value=""},F.readAsText(B)}function rg(){if(a.value||!z)return;const m=z.getAll(),b=new Blob([JSON.stringify(m,null,2)],{type:"application/json"}),B=URL.createObjectURL(b),F=document.createElement("a");F.href=B,F.download="data.geojson",F.click(),URL.revokeObjectURL(B)}return e.onMounted(async()=>{if(window.addEventListener("click",xo,!0),!c.value)return;const m=await oe();xe=m.maplibregl,ke=m.MapboxDraw;const b=dt();b&&(v=new xe.Map({container:c.value,style:ie(b),center:[$.value[0],$.value[1]],zoom:M.value,attributionControl:!1}),h.value=v,v.addControl(new xe.NavigationControl({showCompass:!0}),"bottom-right"),v.on("load",()=>{if(!(!ke||!v)){if(z=new ke({displayControlsDefault:!1,modes:{...ke.modes,draw_rectangle:tt()},controls:{point:!1,line_string:!1,polygon:!1,trash:!1},styles:Ct}),v.addControl(z),v.on("click",B=>{if(!p.isRulerActive.value)return;const F=B?.lngLat;F&&w.value?.addPoint?.({lat:F.lat,lng:F.lng})}),v.on("draw.create",()=>{if(!z||p.isRulerActive.value)return;const B=z.getAll();if(B.features.length>1){const F=B.features[B.features.length-1];se=!0,B.features.slice(0,-1).forEach(G=>z.delete(G.id)),se=!1,F&&(se=!0,z.add(F),se=!1)}yn(),qt()}),v.on("draw.update",B=>{if(!Ee&&!p.isRulerActive.value){if(B?.action==="move"){if(Ee=!0,qh(),Ee=!1,d.value==="edit"){const F=z?.getAll?.()?.features?.[0];if(F?.id)try{z.changeMode("direct_select",{featureId:F.id})}catch{d.value=""}}return}yn()}}),v.on("draw.delete",()=>{Z||p.isRulerActive.value||d.value==="marker"||d.value==="polyline"||d.value==="polygon"||d.value==="rectangle"||(yn(),d.value="",Ht())}),v.on("draw.selectionchange",()=>{if(!(!z||Ee)&&!p.isRulerActive.value&&d.value!=="edit"&&!(d.value==="marker"||d.value==="polyline"||d.value==="polygon"||d.value==="rectangle")){if(!a.value&&i.value>0){qt();return}try{z.changeMode("simple_select",{featureIds:[]})}catch{}}}),R.value!==void 0){const B=R.value;R.value=void 0,requestAnimationFrame(()=>{z&&kn(B)})}Bt(),ae.value.forEach(B=>{const F=te[B];F&&bt(F)}),rt()}}),v.on("contextmenu",Ut),v.on("zoomend",()=>{v&&(M.value=v.getZoom())}))}),e.onUnmounted(()=>{p.isRulerActive.value&&p.closeRuler(),window.removeEventListener("click",xo,!0),Object.values(te).forEach(m=>{v&&Et(m)}),De(),v?.remove&&v.remove(),v=null,z=null,h.value=null}),e.watch(()=>n.modelValue,m=>{if(!z){R.value=m;return}const b=K(m),B=be(b);if(ce&&B===ce){ce=null;return}ce=null,kn(m)},{deep:!0}),e.watch(()=>A.value,m=>{const b=Array.isArray(m)?m:[],B=[],F=new Set;b.forEach((G,J)=>{if(!G)return;const ne=gt(G,J);B.push(ne),F.add(ne);const ue={...G,id:ne},Be=te[ne],qe=Be?.visible??!!ue.visible;Be&&v&&Et(Be),te[ne]={id:ne,config:ue,visible:qe,sourceId:`vs-ov-src-${ne}`,layerIds:[],boundsIds:[],handlers:[]}}),Object.keys(te).forEach(G=>{if(F.has(G))return;const J=te[G];J&&v&&Et(J),delete te[G]}),ae.value=B,v&&(ae.value.forEach(G=>{const J=te[G];J&&bt(J)}),rt())},{immediate:!0,deep:!0}),e.watch(()=>E.value,()=>{v&&(Bt(),ae.value.forEach(m=>{const b=te[m];b&&bt(b)}),rt())},{deep:!0}),e.watch(()=>V.value,async m=>{if(T.value=[],!m){v&&(Bt(),ae.value.forEach(b=>{const B=te[b];B&&bt(B)}),rt());return}try{const b=await fetch(`https://data.gki.com.ua/api-user/atu/${m}`);if(!b?.ok)return;const F=(await b.json())?.geometry?.coordinates;Array.isArray(F)&&F.length&&(T.value=F)}catch(b){console.error("Failed to fetch KATOTTG bounds",b)}finally{if(!v)return;Bt(),ae.value.forEach(b=>{const B=te[b];B&&bt(B)}),rt()}},{immediate:!0}),e.watch(()=>L.value,m=>{if(!Array.isArray(m)||m.length!==2)return;const b=[Number(m[0]),Number(m[1])];if(yo($.value,b)||($.value=[...b],!v))return;const B=v.getCenter?.();B&&yo([B.lng,B.lat],$.value)||v.easeTo({center:[$.value[0],$.value[1]]})},{deep:!0}),e.watch(()=>N.value,m=>{typeof m=="number"&&(M.value=m,v&&v.setZoom(m))}),e.watch(a,m=>{m&&Ht()}),e.watch(i,m=>{if(m>0){a.value||qt();return}ct||Ht()}),e.watch(s,()=>{setTimeout(()=>{v?.resize&&v.resize()},50)}),(m,b)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body",disabled:!s.value},[e.createElementVNode("div",{class:e.normalizeClass(["vs-map-wrapper relative w-full h-[400px]",{fullscreen:s.value}])},[e.createElementVNode("div",{ref_key:"mapContainer",ref:c,class:"w-full h-[calc(100%-28px)]"},null,512),Ce.value.search||Ce.value.import||Ce.value.export?(e.openBlock(),e.createElementBlock("div",wc,[Ce.value.search?(e.openBlock(),e.createBlock(bi,{key:0,onGoToCoordinates:Wh})):e.createCommentVNode("",!0),Ce.value.import||Ce.value.export?(e.openBlock(),e.createElementBlock("div",_c,[e.createElementVNode("div",vc,[Ce.value.import?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"importMenuRef",ref:I,class:"relative"},[e.createElementVNode("button",{type:"button",class:"inline-flex items-center gap-2 text-sm font-medium border rounded-md px-3 py-2 bg-white text-blue-600 border-stone-200 hover:bg-blue-500 hover:text-white transition",onClick:Zh,disabled:a.value},[b[8]||(b[8]=e.createTextVNode(" Імпорт ",-1)),e.createVNode(e.unref(P.ChevronDown),{class:e.normalizeClass(["h-4 w-4 transition-transform",{"rotate-180":U.value}])},null,8,["class"])],8,Cc),U.value?(e.openBlock(),e.createElementBlock("div",Ec,[Ce.value.import?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"block w-full text-left px-3 py-2 hover:bg-gray-100 text-gray-900",onClick:Xh}," З файлу ")):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:Jh}," З координат ")])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),Ce.value.export?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"inline-flex items-center gap-2 text-sm font-medium border rounded-md px-3 py-2 bg-white text-blue-600 border-stone-200 hover:bg-blue-500 hover:text-white transition",onClick:rg,disabled:a.value||i.value===0}," Експорт ",8,Bc)):e.createCommentVNode("",!0)]),e.createElementVNode("input",{ref_key:"importRef",ref:D,type:"file",onChange:ng,accept:".json,.geojson",class:"hidden",disabled:a.value},null,40,Vc)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createVNode(e.unref(de.VsModal),{visible:H.value,"onUpdate:visible":b[1]||(b[1]=B=>H.value=B),title:"Імпорт координат полігону",size:"lg",teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(We,{schema:ve,values:Q.value,"onUpdate:values":b[0]||(b[0]=B=>Q.value=B)},null,8,["values"]),e.createElementVNode("div",Sc,[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:Qh}," Скасувати "),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:eg,disabled:a.value}," Побудувати ",8,$c)])]),_:1},8,["visible"]),e.createElementVNode("div",Nc,[e.createElementVNode("div",Ac,[Ce.value.point?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(["vs-btn",{"vs-active":d.value==="marker"}]),title:"Point",onClick:b[2]||(b[2]=B=>xn("marker")),disabled:a.value},[e.createVNode(e.unref(P.MapPin),{class:"h-4 w-4"})],10,Fc)):e.createCommentVNode("",!0),Ce.value.line?(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(["vs-btn",{"vs-active":d.value==="polyline"}]),title:"Line",onClick:b[3]||(b[3]=B=>xn("polyline")),disabled:a.value},[e.createVNode(Zs)],10,Dc)):e.createCommentVNode("",!0),Ce.value.polygon?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":d.value==="polygon"}]),title:"Polygon",onClick:b[4]||(b[4]=B=>xn("polygon")),disabled:a.value},[e.createVNode(ei)],10,Mc)):e.createCommentVNode("",!0),Ce.value.rectangle?(e.openBlock(),e.createElementBlock("button",{key:3,class:e.normalizeClass(["vs-btn",{"vs-active":d.value==="rectangle"}]),title:"Rectangle",onClick:b[5]||(b[5]=B=>xn("rectangle")),disabled:a.value},[e.createVNode(oi)],10,Lc)):e.createCommentVNode("",!0),Ce.value.ruler?(e.openBlock(),e.createElementBlock("button",{key:4,class:e.normalizeClass(["vs-btn mt-3",{"vs-active":e.unref(p).isRulerActive.value}]),title:"Ruler",onClick:u},[e.createVNode(e.unref(P.Ruler),{class:"h-4 w-4"})],2)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"vs-btn mt-5",onClick:b[6]||(b[6]=B=>s.value=!s.value),title:"Full Screen"},[e.createVNode(e.unref(P.Maximize),{class:"h-4 w-4"})])])]),Ce.value.ruler&&e.unref(p).isRulerActive.value?(e.openBlock(),e.createBlock(uc,{key:1,ref_key:"rulerPanelRefEl",ref:w,onClose:b[7]||(b[7]=B=>e.unref(p).closeRuler()),onTabChange:e.unref(p).onRulerTabChange,onPointsChange:e.unref(p).onRulerPointsChange,onShapeClosedChange:e.unref(p).onRulerShapeClosedChange},null,8,["onTabChange","onPointsChange","onShapeClosedChange"])):e.createCommentVNode("",!0),Ce.value.ruler&&e.unref(p).isRulerActive.value&&e.unref(p).hasRulerPoints.value?(e.openBlock(),e.createBlock(pc,{key:2,map:h.value,points:e.unref(p).rulerPoints.value,"is-shape-closed":e.unref(p).rulerShapeClosed.value,"label-mode":e.unref(p).rulerActiveTab.value},null,8,["map","points","is-shape-closed","label-mode"])):e.createCommentVNode("",!0),Fe.value.length?(e.openBlock(),e.createElementBlock("div",{key:3,class:"absolute z-[1500] pointer-events-none",style:e.normalizeStyle(Ie.value)},[e.createElementVNode("div",Tc,[e.createElementVNode("dl",Ic,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Fe.value,B=>(e.openBlock(),e.createElementBlock("div",{key:`${B.key}-${B.value}`,class:"flex justify-between gap-2"},[e.createElementVNode("dt",Rc,e.toDisplayString(B.key),1),e.createElementVNode("dd",Oc,e.toDisplayString(B.value),1)]))),128))])])],4)):e.createCommentVNode("",!0),e.createElementVNode("div",zc,[e.createElementVNode("div",Pc,[e.createVNode(ci,{basemaps:e.unref(j),onOnLayerChange:O},null,8,["basemaps"]),ye.value.length?(e.openBlock(),e.createElementBlock("div",jc,[b[9]||(b[9]=e.createElementVNode("p",{class:"font-semibold text-[11px] uppercase tracking-wide text-gray-500 mb-2"},"Шари",-1)),e.createElementVNode("div",Uc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(ye.value,B=>(e.openBlock(),e.createElementBlock("label",{key:B.id,class:"flex items-center gap-2 cursor-pointer select-none"},[e.createElementVNode("input",{type:"checkbox",class:"rounded border-gray-300 text-blue-600 focus:ring-blue-500",checked:B.visible,disabled:a.value,onChange:F=>Jn(B.id)},null,40,Hc),e.createElementVNode("span",qc,e.toDisplayString(B.config.title||B.config.name||B.id),1)]))),128))])])):e.createCommentVNode("",!0)])]),e.createElementVNode("div",Kc,[f.value?(e.openBlock(),e.createElementBlock("div",Gc,[e.createElementVNode("div",Wc,[e.createElementVNode("div",Yc,[b[10]||(b[10]=e.createTextVNode(" Тип: ",-1)),e.createElementVNode("span",Zc,e.toDisplayString(Hh(f.value.type)),1)])]),e.createElementVNode("div",Xc,[e.createElementVNode("div",Jc,[b[11]||(b[11]=e.createTextVNode(" Центр: ",-1)),e.createElementVNode("b",null,e.toDisplayString(f.value.center.lng.toFixed(5))+", "+e.toDisplayString(f.value.center.lat.toFixed(5)),1)]),f.value.areaKm2!==null?(e.openBlock(),e.createElementBlock("div",Qc,[b[12]||(b[12]=e.createTextVNode(" Площа: ",-1)),e.createElementVNode("b",null,e.toDisplayString(f.value.areaKm2.toFixed(1))+" km²",1)])):(e.openBlock(),e.createElementBlock("div",ed,[...b[13]||(b[13]=[e.createTextVNode("Площа: ",-1),e.createElementVNode("b",null,"—",-1)])])),e.createElementVNode("button",{class:"tool bg-gray-100 py-1.5 px-2 rounded-lg text-md mr-1 cursor-pointer hover:bg-blue-500 hover:text-white transition-all",title:"Zoom to feature",onClick:Gh,disabled:a.value},[e.createVNode(e.unref(P.ZoomIn),{class:"h-3 w-3"})],8,td),e.createElementVNode("button",{class:"tool bg-gray-100 py-1.5 px-2 rounded-lg text-md cursor-pointer hover:bg-blue-500 hover:text-white transition-all",title:"Delete feature",onClick:Kh,disabled:a.value},[e.createVNode(e.unref(P.Trash2),{class:"h-4 w-4"})],8,nd)])])):e.createCommentVNode("",!0)])],2)],8,["disabled"]))}}),[["__scopeId","data-v-bafa58c1"]]),rd=["data-focus"],od={class:"flex items-center"},ld={class:"overflow-hidden text-ellipsis whitespace-nowrap rounded-sm text-[#333] text-[85%] px-0.5 py-[3px] pl-1.5 box-border"},ad=["onClick","aria-label"],sd={key:0,class:"absolute text-gray-500 truncate pl-2"},id={class:"flex-1 min-w-[2px]"},cd=["placeholder"],dd={class:"flex items-center shrink-0"},ud=["disabled"],yr=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(r,{emit:t}){const n=r,o=t;Me(n.style);const l=e.ref(null),a=e.ref(null),s=e.ref(null),c=e.ref(!1),i=e.ref(""),d=e.useModel(r,"modelValue"),f=e.computed(()=>n.placeholder||"Add tag…"),h=e.computed(()=>d.value?.length===0&&i.value===""),w=e.computed(()=>!n.disabled&&d.value?.length>0),p=e.computed(()=>n.disabled),u=async()=>{p.value||await e.nextTick(()=>s.value?.focus())},g=L=>{const N=L.trim();N!==""&&(!d.value||!Array.isArray(d.value)?d.value=[N]:n.unique?d.value.includes(N)||(d.value=[...d.value,N]):d.value=[...d.value,N],i.value="")},y=()=>{const L=i.value;L.trim()!==""&&g(L),i.value=""},C=L=>{const N=d.value.slice();N.splice(L,1),o("update:modelValue",N)},_=()=>{o("update:modelValue",[])},k=()=>{p.value||(c.value=!0)},x=()=>{c.value=!1,!p.value&&y()},S=L=>{const{key:N}=L;N==="Enter"?(L.preventDefault(),y()):N==="Backspace"&&i.value===""&&d.value.length>0&&C(d.value.length-1)};return(L,N)=>(e.openBlock(),e.createElementBlock("div",{class:"flex gap-1 w-full",ref_key:"root",ref:l,onClick:N[1]||(N[1]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass]),role:"group","aria-label":"Tag input"},[e.createElementVNode("div",{class:e.normalizeClass(["flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white","border-gray-300 hover:border-gray-400",c.value?"border-blue-500 ring-1 ring-blue-500":"",p.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),"data-focus":c.value?"true":"false",onClick:u},[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,A)=>(e.openBlock(),e.createElementBlock("div",{key:A,class:"flex min-w-0 bg-[#e6e6e6] rounded-sm m-0.5 box-border"},[e.createElementVNode("div",od,[e.createElementVNode("div",ld,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(E=>C(A),["stop"]),"aria-label":`Remove ${V}`},[e.createVNode(e.unref(P.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,ad)]))),128)),h.value?(e.openBlock(),e.createElementBlock("div",sd,e.toDisplayString(f.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",id,[p.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":N[0]||(N[0]=V=>i.value=V),onFocus:k,onBlur:x,onKeydown:S,placeholder:d.value&&d.value.length?"":void 0},null,40,cd)),[[e.vModelText,i.value]])])],512),e.createElementVNode("div",dd,[w.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:p.value,onClick:e.withModifiers(_,["stop"])},[e.createVNode(e.unref(P.X),{class:"h-4 w-4"})],8,ud)):e.createCommentVNode("",!0)])],10,rd)],2)],512))}}),pd={class:"relative flex gap-1 bg-white w-full"},fd=["disabled","placeholder"],br=me(e.defineComponent({__name:"vs-input-slug",props:e.mergeModels({disabled:{type:Boolean},placeholder:{},parent:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=e.inject("values"),n=r,o=e.useModel(r,"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?.[n.parent||""]?.toString(),c=l(s);o.value=c.toString()};return(s,c)=>(e.openBlock(),e.createElementBlock("div",pd,[e.withDirectives(e.createElementVNode("input",{ref:"vsText",disabled:r.disabled,placeholder:r.placeholder,"onUpdate:modelValue":c[0]||(c[0]=i=>o.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,fd),[[e.vModelText,o.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200",onClick:a}," Gen ")]))}}),[["__scopeId","data-v-cb7b2b74"]]),md={class:"relative flex gap-1 bg-white w-full"},hd=["disabled","placeholder"],gd=["disabled"],yd={key:0},bd={key:1},kr=me(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(r){const t=r,n=e.useModel(r,"modelValue"),o=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)),f=encodeURIComponent(String(t.code));return`/api/code-gen/${d}/${f}`},c=async()=>{if(!a.value||o.value)return;const d=s();if(d){o.value=!0;try{const h=await(await fetch(d)).text();n.value=h}finally{o.value=!1}}},i=()=>{l.value&&(n.value||c())};return e.onMounted(()=>{i()}),e.watch(()=>[t.table,t.code,t.init],()=>{i()}),(d,f)=>(e.openBlock(),e.createElementBlock("div",md,[e.withDirectives(e.createElementVNode("input",{disabled:r.disabled,placeholder:r.placeholder,"onUpdate:modelValue":f[0]||(f[0]=h=>n.value=h),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,hd),[[e.vModelText,n.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200 disabled:opacity-50 disabled:cursor-not-allowed",disabled:o.value||r.disabled||!a.value,onClick:c},[o.value?(e.openBlock(),e.createElementBlock("span",bd,"...")):(e.openBlock(),e.createElementBlock("span",yd,"Gen"))],8,gd)]))}}),[["__scopeId","data-v-8f88fb66"]]),kd={class:"w-full"},xd={ref:"sortableContainer",class:"flex flex-col gap-1"},wd=["onDragstart","onDrop"],_d={class:"cursor-move",type:"button"},vd={class:"w-1/3"},Cd={class:"w-2/3"},Ed=["onClick"],Bd={key:0,class:"text-[14px] text-gray-700"},Vd={class:"mt-2 w-full flex items-center"},Sd=["disabled"],xr=me(e.defineComponent({__name:"vs-input-key-value",props:{parent:{},ignore:{},addButtonText:{},modelValue:{}},emits:["update:modelValue"],setup(r,{emit:t}){const n=y=>`${y}-${Math.random().toString(36).substring(2,15)}`,o=e.inject("values"),l=r,a=t,s=l.addButtonText??"Додати",c=l.ignore??[],i=e.ref([]),d=e.ref(null);(()=>{const y=l.parent&&o?.value?.[l.parent]||l.modelValue||{};i.value=Object.entries(y).filter(([C])=>!c.includes(C)).map(([C,_])=>({id:n("key-value-"),key:C,value:_}))})();function h(y){d.value=y}function w(y){if(d.value===null||d.value===y)return;const C=i.value.splice(d.value,1)[0];i.value.splice(y,0,C),d.value=null}const p=e.computed(()=>i.value.some(y=>y.key&&!y.value||!y.key&&y.value)),u=()=>{i.value.push({id:n("key-value-"),key:"",value:""})},g=y=>{i.value=i.value.filter(C=>C.id!==y)};return e.watch(i,y=>{const C={};y.forEach(k=>{k.key&&k.value!==void 0&&(C[k.key]=k.value)});const _={};c.length&&c.forEach(k=>{_[k]=l.parent?o?.value?.[l.parent]?.[k]:void 0}),o?.value&&l.parent&&(o.value[l.parent]={..._,...C}),a("update:modelValue",C)},{deep:!0}),(y,C)=>(e.openBlock(),e.createElementBlock("div",kd,[e.createElementVNode("div",xd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(_,k)=>(e.openBlock(),e.createElementBlock("div",{key:_.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":d.value===k}]),draggable:"true",onDragstart:x=>h(k),onDragover:C[0]||(C[0]=e.withModifiers(()=>{},["prevent"])),onDrop:x=>w(k)},[e.createElementVNode("button",_d,[e.createVNode(e.unref(P.GripVertical),{class:"h-4 w-4"})]),e.createElementVNode("div",vd,[e.createVNode(Vt,{modelValue:_.key,"onUpdate:modelValue":x=>_.key=x,placeholder:"Ключ"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",Cd,[e.createVNode(Vt,{modelValue:_.value,"onUpdate:modelValue":x=>_.value=x,placeholder:"Значення"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("button",{onClick:x=>g(_.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(P.X),{class:"h-4 w-4"})],8,Ed)],42,wd))),128))],512),i.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Bd," Дані для відображення відсутні ")),e.createElementVNode("div",Vd,[e.createElementVNode("button",{type:"button",onClick:u,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(P.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(e.unref(s)),1)],8,Sd)])]))}}),[["__scopeId","data-v-ac321a0f"]]),$d={class:"w-full"},Nd={ref:"sortableContainer",class:"flex flex-col gap-1"},Ad=["onDragstart","onDrop"],Fd=["disabled"],Dd={class:"flex-1"},Md=["onClick","disabled"],Ld={key:0,class:"text-[14px] text-gray-700"},Td={class:"mt-2 w-full flex items-center"},Id=["disabled"],wr=me(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(r){const t=r,n=e.useModel(r,"modelValue"),o=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=y=>`${y}-${Math.random().toString(36).substring(2,15)}`,f=y=>{const C=y??n.value??[];o.value=C.map((_,k)=>({id:o.value[k]?.id??d("text-array"),value:_??""}))};f(),e.watch(()=>n.value,y=>{if(i){i=!1;return}f(y||[])},{deep:!0}),e.watch(o,y=>{i=!0,n.value=y.map(C=>C.value).filter(C=>C!=null&&C!=="")},{deep:!0});const h=e.computed(()=>a.value||o.value.some(y=>!y.value));function w(){h.value||(o.value=[...o.value,{id:d("text-array"),value:""}])}function p(y){a.value||(o.value=o.value.filter(C=>C.id!==y))}function u(y){a.value||(l.value=y)}function g(y){if(a.value||l.value===null||l.value===y)return;const C=[...o.value],[_]=C.splice(l.value,1);C.splice(y,0,_),o.value=C,l.value=null}return(y,C)=>(e.openBlock(),e.createElementBlock("div",$d,[e.createElementVNode("div",Nd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(_,k)=>(e.openBlock(),e.createElementBlock("div",{key:_.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":l.value===k}]),draggable:"true",onDragstart:x=>u(k),onDragover:C[0]||(C[0]=e.withModifiers(()=>{},["prevent"])),onDrop:x=>g(k)},[e.createElementVNode("button",{class:"cursor-move",type:"button",disabled:a.value},[e.createVNode(e.unref(P.GripVertical),{class:"h-4 w-4"})],8,Fd),e.createElementVNode("div",Dd,[r.inputType==="text"?(e.openBlock(),e.createBlock(Vt,{key:0,modelValue:_.value,"onUpdate:modelValue":x=>_.value=x,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),r.inputType==="tel"?(e.openBlock(),e.createBlock(Bn,{key:1,modelValue:_.value,"onUpdate:modelValue":x=>_.value=x,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),r.inputType==="email"?(e.openBlock(),e.createBlock(En,{key:2,modelValue:_.value,"onUpdate:modelValue":x=>_.value=x,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),r.inputType==="mask"?(e.openBlock(),e.createBlock(Cn,{key:3,modelValue:_.value,"onUpdate:modelValue":x=>_.value=x,mask:r.mask,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","mask","disabled","placeholder"])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:x=>p(_.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(P.X),{class:"h-4 w-4"})],8,Md)],42,Ad))),128))],512),o.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Ld," Дані для відображення відсутні ")),e.createElementVNode("div",Td,[e.createElementVNode("button",{type:"button",onClick:w,disabled:h.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(P.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(c.value),1)],8,Id)])]))}}),[["__scopeId","data-v-972a598a"]]),Rd={class:"flex items-center gap-2 w-full"},Od=["disabled"],zd=["disabled"],_r=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(r,{emit:t}){const n=r,{inputClass:o}=Me(n.style),l=t,a=e.computed({get:()=>n.modelValue||"#000000",set:c=>l("update:modelValue",c)}),s=e.computed(()=>!!n.disabled);return(c,i)=>(e.openBlock(),e.createElementBlock("div",Rd,[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]",[r.modelValue?"":"text-opacity-50",e.unref(o)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,Od),[[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,zd),[[e.vModelText,a.value]])]))}}),Pd={class:"flex items-center gap-2 w-full"},jd=["min","max","step","disabled"],Ud=["disabled"],vr=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(r,{emit:t}){const n=r,{inputClass:o}=Me(n.style),l=t,a=e.computed({get:()=>Number(n.modelValue??n.min),set:c=>l("update:modelValue",Number(c))}),s=e.computed(()=>!!n.disabled);return(c,i)=>(e.openBlock(),e.createElementBlock("div",Pd,[e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":i[0]||(i[0]=d=>a.value=d),min:r.min,max:r.max,step:r.step,disabled:s.value,ref:"range",class:e.normalizeClass(["w-full cursor-pointer accent-blue-500",[r.modelValue?"":"text-opacity-50",e.unref(o)].join(" ")])},null,10,jd),[[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 max-w-[100px]",type:"number","onUpdate:modelValue":i[1]||(i[1]=d=>a.value=d),disabled:s.value},null,8,Ud),[[e.vModelText,a.value]])]))}}),Hd=["placeholder","disabled","name"],qd=["type","value","onInput","placeholder","disabled"],Kd=["onClick"],Cr=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(r){const t=r,n=e.ref(t.count),o=e.computed(()=>t.limit),{inputClass:l}=Me(t.style),a=e.useModel(r,"modelValue"),s=e.computed(()=>!!t.disabled),c=e.computed(()=>t.placeholder??"");e.watchEffect(()=>{const g=a.value?.length??0;g<n.value&&(a.value=[...a.value??[],...Array(n.value-g)])});const i=e.ref({}),d=e.ref({});function f(g,y){g&&(i.value[y]=g)}async function h(g,y){if(!g||t.inputType!=="mask")return;const{default:C}=await Promise.resolve().then(()=>Hn);d.value[y]&&d.value[y].destroy(),d.value[y]=C(g,{mask:t.mask||"",definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},lazy:!1}),d.value[y].on("accept",()=>{const _=[...a.value||[]];_[y]=t.unmask?d.value[y].unmaskedValue:d.value[y].value,a.value=_}),d.value[y].on("complete",()=>{const _=[...a.value||[]];_[y]=t.unmask?d.value[y].unmaskedValue:d.value[y].value,a.value=_}),a.value?.[y]&&(d.value[y].value=a.value[y])}function w(g,y){if(s.value)return;const C=g.target.value??null,_=[...a.value];_[y]=t.inputType==="text"?C:Number(C),a.value=_}function p(){n.value+=1;const g=t.inputType==="text"||t.inputType==="mask"?null:0;a.value=[...a.value,g],t.inputType==="mask"&&setTimeout(()=>{const y=n.value-1;i.value[y]&&h(i.value[y],y)},0)}function u(g){if(n.value>1){d.value[g]&&(d.value[g].destroy(),delete d.value[g]),n.value-=1,a.value=a.value.filter((C,_)=>_!==g);const y={};Object.keys(d.value).forEach(C=>{const _=parseInt(C,10);_>g?y[_-1]=d.value[_]:_<g&&(y[_]=d.value[_])}),d.value=y}}return e.onMounted(()=>{if(t.inputType==="mask")for(let g=0;g<n.value;g+=1)i.value[g]&&h(i.value[g],g)}),e.onBeforeUnmount(()=>{Object.values(d.value).forEach(g=>{g&&g.destroy()})}),e.watch(()=>t.mask,g=>{t.inputType==="mask"&&Object.values(d.value).forEach(y=>{y&&y.updateOptions({mask:g,definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/}})})}),e.watch(a,g=>{t.inputType==="mask"&&g&&g.forEach((y,C)=>{d.value[C]&&d.value[C].value!==y&&(d.value[C].value=y||"")})},{deep:!0}),(g,y)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["grid gap-2",`grid-cols-${o.value}`])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,C=>(e.openBlock(),e.createElementBlock("div",{key:C,class:"flex items-center gap-2 w-full"},[r.inputType==="mask"?(e.openBlock(),e.createElementBlock("input",{key:0,type:"text",ref_for:!0,ref:_=>f(_,C-1),placeholder:r.placeholder,disabled:r.disabled,name:`${r.name}[${C-1}]`,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(l),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Hd)):(e.openBlock(),e.createElementBlock("input",{key:1,type:r.inputType,value:a.value?.[C-1],onInput:_=>w(_,C-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":r.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,qd)),!r.disabled&&C===n.value&&r.isAdded?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:e.withModifiers(p,["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(P.Plus),{class:"h-4 w-4"})])):e.createCommentVNode("",!0),!r.disabled&&n.value>1&&r.isAdded?(e.openBlock(),e.createElementBlock("button",{key:3,type:"button",onClick:e.withModifiers(_=>u(C-1),["stop"]),class:"cursor-pointer shrink-0 w-[38px] text-red-600 h-[38px] rounded-md flex items-center justify-center border border-stone-200 hover:bg-stone-100"},[e.createVNode(e.unref(P.X),{class:"h-4 w-4"})],8,Kd)):e.createCommentVNode("",!0)]))),128))],2))}}),Gd=["aria-expanded","data-focus"],Wd=["placeholder","disabled","readonly"],Yd={class:"max-h-full"},Zd=["onClick","disabled"],Xd={key:0,class:"px-3 py-2 text-sm text-stone-500"},Jd={class:"flex flex-col gap-1"},Qd=["onDragstart","onDrop"],eu=["disabled"],tu=["title"],nu=["disabled","onClick","aria-label"],ru={key:0,class:"text-xs text-stone-500"},en=me(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},style:{},customClass:{},modelValue:{},error:{},name:{},placeholder:{default:"Оберіть значення"},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:e.mergeModels(["change","update:modelValue","value-selected"],["update:modelValue"]),setup(r,{emit:t}){const n=r,o=t,l=e.useModel(r,"modelValue"),a=e.ref([]),s=e.ref(n.options??[]),c=e.ref({}),i=e.ref({}),d=e.ref({keyword:"",parent:null}),f=e.ref(""),h=e.ref(!1),w=e.ref(null),p=e.ref(null),u=e.ref(null),g=e.ref(null),y=e.ref(null),C=e.ref({});let _=!1,k=!1;const x=e.inject("values"),S=e.computed(()=>!!n.disabled),L=e.computed(()=>n.placeholder??"Оберіть значення"),N=e.computed(()=>n.search!==!1),V=e.computed(()=>{const v=n.parent??n.parentValue;return v?String(v):""}),A=e.computed(()=>V.value?x?.value?.[V.value]??null:null),E=v=>v==null?"__null__":String(v),$=v=>{if(!v)return"";const z=v.label??v.text??v.name??v.ua??v.en;return z?String(z):v.id!==void 0&&v.id!==null?String(v.id):""},M=v=>{const z=E(v);return i.value[z]||(i.value[z]=`array-select-${z}-${Math.random().toString(36).slice(2,8)}`),i.value[z]},R=e.computed(()=>new Set(a.value.map(v=>E(v.id)))),D=e.computed(()=>{const v=R.value;let z=[...s.value];if(!n.data&&f.value.trim()){const ee=f.value.toLowerCase();z=z.filter(ce=>$(ce).toLowerCase().includes(ee))}return z.filter(ee=>!v.has(E(ee.id)))}),I=()=>{if(!n.data)return"";const v=n.prefix??"api",z=n.api??`/${v}/suggest/${n.data}`;return`${n.host??""}${z}`},T=()=>{a.value.length&&(_=!0,a.value=a.value.map(v=>({...v,text:c.value[E(v.id)]??v.text})))},U=v=>{const z=E(v.id),ee=$(v);ee&&(c.value[z]=ee)},H=v=>{s.value=v?[...v]:[],v?.forEach(U),T()},W=v=>{if(!v.length)return;const z=new Map(s.value.map(ee=>[E(ee.id),ee]));v.forEach(ee=>{const ce=E(ee.id);z.set(ce,ee),U(ee)}),s.value=Array.from(z.values()),T()},Q=async(v="")=>{if(!n.data)return[];const z=I();if(!z)return[];const ee=new URLSearchParams;ee.set("json","1"),v&&ee.set("key",v),n.start===1&&ee.set("start","1"),A.value!==null&&A.value!==void 0&&A.value!==""&&ee.set("parent",String(A.value));try{return(await(await fetch(`${z}?${ee.toString()}`)).json())?.data??[]}catch{return[]}},ve=async v=>{if(!n.data||!v.length)return[];const z=I();if(!z)return[];const ee=Array.from(new Set(v.map(Ee=>E(Ee)))),ce=new URLSearchParams;ce.set("json","1"),ce.set("val",ee.join(",")),n.start===1&&ce.set("start","1"),A.value!==null&&A.value!==void 0&&A.value!==""&&ce.set("parent",String(A.value));try{const tt=(await(await fetch(`${z}?${ce.toString()}`)).json())?.data??[];return W(tt),tt}catch{return[]}},se=async(v="",{force:z=!1}={})=>{if(!n.data)return;const ee=A.value??null;if(!z&&d.value.keyword===v&&d.value.parent===ee&&s.value.length>0)return;d.value={keyword:v,parent:ee};const Ee=await Q(v);H(Ee)},te=((v,z=200)=>{let ee;return(...ce)=>{ee&&clearTimeout(ee),ee=setTimeout(()=>v(...ce),z)}})(async v=>{n.data&&await se(v,{force:!0})},250),ae=e.ref(null),ye=()=>{if(!u.value)return;const v=u.value.getBoundingClientRect(),z=window.innerHeight??document.documentElement.clientHeight,ee=window.innerWidth??document.documentElement.clientWidth,ce=8,Ee=8,ct=n.maxHeight??280,tt=z-v.bottom-Ee-ce,Ct=v.top-Ee-ce,dt=tt>=Ct,gt=Math.max(ee-ce*2,0);let{width:nt}=v;gt>0&&nt>gt&&(nt=gt);let{left:De}=v;De+nt+ce>ee&&(De=ee-nt-ce),De=Math.max(De,ce);const yt=Math.min(ct,Math.max(dt?tt:Ct,50));C.value={position:"fixed",left:`${De}px`,width:`${nt}px`,maxHeight:`${yt}px`,transform:dt?"none":"translateY(-100%)",top:dt?`${v.bottom+Ee}px`:`${v.top-Ee}px`}},ge=async(v="click")=>{S.value||h.value||(ae.value=v,await se(f.value.trim()),h.value=!0,await e.nextTick(),ye(),y.value?.focus())},Fe=()=>{h.value=!1,ae.value=null,e.nextTick(()=>{y.value?.blur()})},Ie=async v=>{if(v.stopPropagation(),!S.value){if(h.value){if(ae.value==="focus"){ae.value=null;return}Fe();return}await ge("click")}},Ze=v=>{v.key==="Escape"&&Fe()},Ce=v=>{if(!h.value)return;const z=v.target;g.value?.contains(z)||Fe()},Le=v=>{const z=v.target;p.value?.contains(z)||g.value?.contains(z)||Fe()},vt=v=>{if(v.key==="Escape"){v.preventDefault(),Fe();return}if(v.key==="Enter"){v.preventDefault();const z=D.value[0];z&&j(z)}},j=v=>{if(!v)return;const z=E(v.id);if(R.value.has(z))return;U(v);const ee={id:v.id,text:$(v)||String(v.id??""),key:M(v.id)};a.value=[...a.value,ee],Y(v),f.value="",e.nextTick(()=>{y.value?.focus()})},Y=v=>{const z=a.value.map(ee=>ee.id);o("value-selected",{name:n.name,value:z,option:v})},X=v=>{if(S.value)return;const z=a.value.filter(ee=>E(ee.id)!==E(v));a.value=z},oe=v=>{S.value||(w.value=v)},ie=v=>{if(S.value||w.value===null||w.value===v)return;const z=[...a.value],[ee]=z.splice(w.value,1);z.splice(v,0,ee),w.value=null,a.value=z},xe=async()=>{const z=(Array.isArray(l.value)?[...l.value]:[]).filter(ce=>ce!=null);if(n.data&&z.length){const ce=z.filter(Ee=>!c.value[E(Ee)]);ce.length&&await ve(ce)}const ee=z.map(ce=>({id:ce,text:c.value[E(ce)]??String(ce),key:M(ce)}));_=!0,a.value=ee};e.watch(a,v=>{if(_){_=!1;return}const z=v.map(ee=>ee.id);k=!0,l.value=z,o("change",z)},{deep:!0}),e.watch(l,()=>{if(k){k=!1;return}xe()},{deep:!0}),e.watch(f,v=>{!n.data||!h.value||te(v.trim())}),e.watch(S,v=>{v&&Fe()}),e.watch(()=>n.options,async v=>{n.data||(H(v??[]),await xe())},{immediate:!0,deep:!0}),e.watch(()=>n.data,async v=>{v&&(await se(f.value.trim()),await xe())},{immediate:!0});const ke=e.ref(!1);return e.watch(A,async()=>{if(n.data){if(!ke.value){ke.value=!0;return}a.value=[],await se(f.value.trim()),await xe()}}),e.onMounted(async()=>{document.addEventListener("click",Le,!0),window.addEventListener("keydown",Ze),window.addEventListener("scroll",Ce,!0),await xe()}),e.onUnmounted(()=>{document.removeEventListener("click",Le,!0),window.removeEventListener("keydown",Ze),window.removeEventListener("scroll",Ce,!0)}),(v,z)=>(e.openBlock(),e.createElementBlock("div",{class:"flex flex-col gap-2 w-full",ref_key:"rootRef",ref:p},[e.createElementVNode("div",{class:"relative",onClick:z[2]||(z[2]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{ref_key:"triggerRef",ref:u,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]",h.value?"border-[#2684ff] ring-1 ring-[#2684ff] shadow-[0_0_0_1px_rgba(38,132,255,0.5)]":"",S.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),role:"combobox","aria-expanded":h.value,"aria-haspopup":"listbox","data-focus":h.value?"true":"false",onClick:Ie},[e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:y,"onUpdate:modelValue":z[0]||(z[0]=ee=>f.value=ee),placeholder:L.value,disabled:S.value,readonly:!N.value,onFocus:z[1]||(z[1]=()=>ge("focus")),onKeydown:vt,class:"flex-1 bg-transparent border-0 outline-none px-0 py-1 text-sm text-stone-900 placeholder:text-stone-400"},null,40,Wd),[[e.vModelText,f.value]]),e.createElementVNode("span",{class:e.normalizeClass(["text-stone-400 transition-transform duration-150",h.value?"rotate-180":""]),"aria-hidden":"true"},[e.createVNode(e.unref(P.ChevronDown),{class:"h-4 w-4"})],2)],10,Gd),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[h.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:g,class:"fixed z-[3000] rounded-md border border-stone-200 bg-white shadow-lg overflow-auto",style:e.normalizeStyle(C.value)},[e.createElementVNode("div",Yd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(D.value,ee=>(e.openBlock(),e.createElementBlock("button",{key:E(ee.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(ce=>j(ee),["stop"]),disabled:S.value},e.toDisplayString($(ee)),9,Zd))),128)),D.value.length===0?(e.openBlock(),e.createElementBlock("p",Xd," Немає варіантів ")):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))]),e.createElementVNode("div",Jd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(ee,ce)=>(e.openBlock(),e.createElementBlock("div",{key:ee.key,class:e.normalizeClass(["flex items-center gap-2 rounded-md border border-stone-200 bg-white px-2 py-2",{"opacity-60":w.value===ce}]),draggable:"true",onDragstart:Ee=>oe(ce),onDragover:z[3]||(z[3]=e.withModifiers(()=>{},["prevent"])),onDrop:Ee=>ie(ce),onDragend:z[4]||(z[4]=Ee=>w.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:S.value,"aria-label":"Перетягнути"},[e.createVNode(e.unref(P.GripVertical),{class:"h-4 w-4"})],8,eu),e.createElementVNode("div",{class:"flex-1 text-sm text-stone-900",title:ee.text},e.toDisplayString(ee.text),9,tu),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:S.value,onClick:e.withModifiers(Ee=>X(ee.id),["stop"]),"aria-label":`Видалити ${ee.text}`},[e.createVNode(e.unref(P.X),{class:"h-4 w-4"})],8,nu)],42,Qd))),128)),a.value.length===0?(e.openBlock(),e.createElementBlock("p",ru,"Немає вибраних значень")):e.createCommentVNode("",!0)])],512))}}),[["__scopeId","data-v-5fa5a4b9"]]),ou={class:"flex items-center gap-2 w-full"},lu={class:"relative flex-1"},au=["placeholder","disabled","onKeydown"],su=["disabled"],iu={key:0,class:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/50"},cu={class:"bg-white text-gray-900 rounded-lg shadow-lg w-[480px] max-h-[80vh] overflow-y-auto"},du={class:"p-3 border-b font-semibold text-gray-900 flex justify-between items-center"},uu=["onClick"],pu={key:0,class:"p-4 text-sm text-gray-500"},Er=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(r,{emit:t}){const n=/{{\s*([^}]+?)\s*}}/g,o=r,l=t,{inputClass:a}=Me(o.style),s=e.useModel(r,"modelValue"),c=e.computed({get:()=>s.value,set:N=>{s.value=N}}),i=e.ref(!1),d=e.ref([]),f=e.ref(!1),h=e.ref(null);e.watch(f,N=>{typeof document>"u"||(N?(h.value=document.body.style.overflow,document.body.style.overflow="hidden"):h.value!=null?(document.body.style.overflow=h.value,h.value=null):document.body.style.removeProperty("overflow"))}),e.onBeforeUnmount(()=>{typeof document>"u"||(h.value!=null?document.body.style.overflow=h.value:document.body.style.removeProperty("overflow"))});const w=e.computed(()=>o.placeholder??""),p=e.computed(()=>!!o.disabled),u=N=>{if(!N)return null;if(Array.isArray(N))return N;if(typeof N=="string"){const V=N.split(",").map(A=>A.trim()).filter(Boolean);return V.length!==4?null:V.map(Number)}return null},g=e.computed(()=>{const N=u(o.bbox);if(!N||N.length!==4)return null;const V=N.map(Number);return V.some(A=>Number.isNaN(A))?null:V}),y=e.computed(()=>{const N=g.value;if(!N)return"";const[V,A,E,$]=N;return`${V},${Math.max(A,$)},${E},${Math.min(A,$)}`});e.computed(()=>y.value?"1":"0");const C=e.inject("values");function _(){!p.value&&c.value.trim()&&k()}async function k(){const N=(c.value||"").trim();if(!N)return;let V=N;if(o.includes?.length&&C?.value){const E=o.includes.map($=>C.value?.[$]).filter(Boolean);E.length&&(V=`${E.join(", ")}, ${N}`)}const A=L(V);if(A){i.value=!0;try{const $=await(await fetch(A)).json();d.value=Array.isArray($)?$:[],f.value=!0}catch(E){console.error("Address search error:",E)}finally{i.value=!1}}}function x(){f.value=!f.value}function S(N){if(!N)return;f.value=!1;const V=parseFloat(N.lat),E={type:"Point",coordinates:[parseFloat(N.lon),V]};o.geom&&C?.value&&(C.value[o.geom]=E),l("update:geom",E)}function L(N){if(!o.api)return"";const V={value:encodeURIComponent(N),bbox:g.value?g.value.join(","):""};return o.api.replace(n,(A,E)=>V[E.trim()]??"")}return(N,V)=>(e.openBlock(),e.createElementBlock("div",ou,[e.createElementVNode("div",lu,[e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":V[0]||(V[0]=A=>c.value=A),placeholder:w.value,disabled:p.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":o.error}]]),style:{border:"1px solid #CFD9E0"},onKeydown:e.withKeys(e.withModifiers(_,["prevent"]),["enter"])},null,42,au),[[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:x,title:"Show search results"},[e.createVNode(e.unref(P.Info),{class:"h-4 w-4"})])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:k,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(P.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(e.openBlock(),e.createBlock(e.unref(P.Search),{key:0,class:"h-4 w-4"}))],8,su),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[f.value?(e.openBlock(),e.createElementBlock("div",iu,[e.createElementVNode("div",cu,[e.createElementVNode("div",du,[V[2]||(V[2]=e.createElementVNode("span",null,"Search results",-1)),e.createElementVNode("button",{class:"text-gray-500 hover:text-blue-600",onClick:V[1]||(V[1]=A=>f.value=!1),title:"Close"},[e.createVNode(e.unref(P.X),{class:"h-4 w-4"})])]),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(A,E)=>(e.openBlock(),e.createElementBlock("li",{key:E,onClick:$=>S(A),class:"px-3 py-2 cursor-pointer hover:bg-gray-100 border-b text-sm"},e.toDisplayString(A.display_name),9,uu))),128))]),d.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",pu," No results found "))])])):e.createCommentVNode("",!0)]))]))}}),Br=(r="")=>`${r}${Math.floor(Math.random()*1e4)}`,fu={class:"vs-datalist space-y-3"},mu={class:"space-y-3"},hu=["onClick","disabled"],gu={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},yu=["disabled"],bu=me(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(r){const t=r,n=e.useModel(r,"modelValue"),o=e.computed(()=>Array.isArray(n.value)?n.value:[]),l=e.ref([]),a=e.computed(()=>t.schema?.map(g=>({...g,disabled:t.disabled||g.disabled}))??[]),s=e.computed(()=>a.value.map(g=>u(g))),c=e.computed(()=>t.disabled?!1:t.maxItems?o.value.length<t.maxItems:!0),i=e.computed(()=>t.disabled||o.value.length<=(t.minItems||0));e.watch(()=>o.value.length,()=>{d(),f()},{immediate:!0}),e.watch(()=>t.schema,f,{immediate:!0,deep:!0});function d(){const g=o.value.length;l.value.length<g?l.value=[...l.value,...Array.from({length:g-l.value.length},()=>Br())]:l.value.length>g&&l.value.splice(g)}function f(){if(!t.minItems||o.value.length>=t.minItems)return;const g=t.minItems-o.value.length,y=Array.from({length:g},h);n.value=[...o.value,...y]}function h(){const g={};return a.value.forEach(y=>{g[y.name]=y?.default??null}),g}function w(){c.value&&(n.value=[...o.value,h()],d())}function p(g){i.value||(n.value=o.value.filter((y,C)=>C!==g),d(),f())}function u(g){return{...g}}return(g,y)=>(e.openBlock(),e.createElementBlock("div",fu,[e.createElementVNode("div",mu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(C,_)=>(e.openBlock(),e.createElementBlock("div",{key:l.value[_],class:"flex items-center gap-3"},[e.createVNode(We,{schema:s.value,layout:"inline",navigation:!1,values:o.value[_],"onUpdate:values":k=>o.value[_]=k,"form-id":l.value[_]},null,8,["schema","values","onUpdate:values","form-id"]),e.createElementVNode("button",{type:"button",class:"h-[38px] w-[38px] flex items-center justify-center text-gray-400 hover:text-gray-600 hover:bg-gray-50 rounded-lg transition-all disabled:opacity-40",onClick:k=>p(_),disabled:i.value},[e.createVNode(e.unref(P.Trash2),{class:"h-4 w-4"})],8,hu)]))),128)),o.value.length===0?(e.openBlock(),e.createElementBlock("div",gu,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:w,disabled:!c.value},[e.createVNode(e.unref(P.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,yu)]))}}),[["__scopeId","data-v-b4dfd331"]]),ku={class:"vs-dataform space-y-4"},xu=["draggable","onDragstart","onDragover","onDragenter","onDrop"],wu={class:"flex items-center gap-2"},_u=["onClick"],vu={class:"text-sm font-medium text-gray-700"},Cu={class:"flex items-center gap-2"},Eu=["title","onClick","disabled"],Bu=["title","onClick","disabled"],Vu={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},Su=["disabled"],$u=me(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(r){const t=r,n=e.useModel(r,"modelValue"),o=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"),f=e.computed(()=>t.emptyLabel??"Ще немає груп"),h=e.computed(()=>t.schema?.map(Z=>({...Z,disabled:t.disabled||Z.disabled}))??[]),w=e.computed(()=>h.value.map(Z=>A(Z))),p=e.computed(()=>t.view==="accordion"),u=e.computed(()=>!!(t.collapsible||p.value)),g=e.computed(()=>t.draggable!==!1),y=e.computed(()=>t.disabled?!1:t.maxGroups?n.value.length<t.maxGroups:!0),C=e.computed(()=>t.disabled||n.value.length<=(t.minGroups||0));e.watch(()=>n.value.length,()=>{_(),k(),x()},{immediate:!0}),e.watch(()=>t.schema,x,{immediate:!0,deep:!0}),e.watch(()=>t.view,()=>{k()},{immediate:!0});function _(){const Z=n.value.length;o.value.length<Z?o.value=[...o.value,...Array.from({length:Z-o.value.length},()=>Br())]:o.value.length>Z&&o.value.splice(Z)}function k(){const Z=n.value.length;p.value?Z===0?a.value=-1:a.value>=Z?a.value=Z-1:a.value<0&&(a.value=0):l.value.length<Z?l.value=[...l.value,...Array.from({length:Z-l.value.length},()=>!1)]:l.value.length>Z&&l.value.splice(Z)}function x(){if(!t.minGroups||n.value.length>=t.minGroups)return;const Z=t.minGroups-n.value.length,te=Array.from({length:Z},S);n.value=[...n.value,...te],k()}function S(){const Z={};return h.value.forEach(te=>{Z[te.name]=te?.default??null}),Z}function L(){y.value&&(n.value=[...n.value,S()],_(),k())}function N(Z){C.value||(n.value=n.value.filter((te,ae)=>ae!==Z),_(),p.value?a.value>=n.value.length&&(a.value=n.value.length-1):l.value.splice(Z,1),x())}function V(Z){if(t.disabled)return;const te=JSON.parse(JSON.stringify(n.value[Z]??{}));n.value=[...n.value.slice(0,Z+1),te,...n.value.slice(Z+1)],_(),p.value?a.value>Z&&(a.value+=1):l.value.splice(Z+1,0,l.value[Z]??!1)}function A(Z){return{...Z}}function E(Z){return p.value?a.value===-1&&Z===0?!1:a.value!==Z:!!l.value[Z]}function $(Z){if(u.value){if(p.value){a.value=Z;return}l.value[Z]=!l.value[Z]}}function M(Z,te){if(!g.value||t.disabled){te.preventDefault();return}s.value=Z,c.value=Z,i.value={groups:JSON.parse(JSON.stringify(n.value)),keys:[...o.value],states:[...l.value]},te.dataTransfer?.setData("text/plain",String(Z)),te.dataTransfer?.setDragImage?.(te.currentTarget,0,0)}function R(Z,te){!g.value||t.disabled||s.value!==null&&W(Z,te)}function D(Z,te){W(Z,te)}function I(Z){!g.value||t.disabled||se()}function T(){i.value&&H(),s.value=null,c.value=null,i.value=null}function U(Z,te){const ae=[...n.value],[ye]=ae.splice(Z,1);ae.splice(te,0,ye),n.value=ae;const ge=[...o.value],[Fe]=ge.splice(Z,1);if(ge.splice(te,0,Fe),o.value=ge,p.value)a.value===Z&&(a.value=te);else{const Ie=[...l.value],[Ze]=Ie.splice(Z,1);Ie.splice(te,0,Ze),l.value=Ie}}function H(){i.value&&(n.value=i.value.groups,o.value=i.value.keys,l.value=i.value.states,i.value=null,c.value=null)}function W(Z,te){if(s.value===null)return;const ae=Q(Z,te);c.value=ae,ve(ae)}function Q(Z,te){if(!te?.currentTarget)return Z;const ae=te.currentTarget.getBoundingClientRect(),ge=te.clientY-ae.top>ae.height/2?Z+1:Z;return Math.max(0,Math.min(ge,n.value.length))}function ve(Z){const te=s.value;if(te===null)return;let ae=Z;if(ae>n.value.length&&(ae=n.value.length),ae===te||ae===te+1)return;const ye=ae>te?ae-1:ae;U(te,ye),s.value=ye,c.value=ae>te?ye+1:ye}function se(){i.value=null,s.value=null,c.value=null}return(Z,te)=>(e.openBlock(),e.createElementBlock("div",ku,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(ae,ye)=>(e.openBlock(),e.createElementBlock("div",{key:o.value[ye],class:e.normalizeClass(["relative border border-gray-200 rounded-lg bg-white transition vs-dataform__group",[t.view==="accordion"?"overflow-hidden":E(ye)?"pt-6 px-6":"p-6"]]),draggable:g.value&&!t.disabled,onDragstart:ge=>M(ye,ge),onDragend:T,onDragover:e.withModifiers(ge=>R(ye,ge),["prevent"]),onDragenter:e.withModifiers(ge=>D(ye,ge),["prevent"]),onDrop:e.withModifiers(ge=>I(),["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"&&!E(ye)?"rounded-t-lg":"rounded-lg"]])},[e.createElementVNode("div",wu,[g.value?(e.openBlock(),e.createBlock(e.unref(P.GripVertical),{key:0,class:"h-4 w-4 text-gray-400","aria-hidden":"true"})):e.createCommentVNode("",!0),u.value?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"rounded-full p-1 text-gray-500 transition hover:bg-gray-100",onClick:ge=>$(ye)},[e.createVNode(e.unref(P.ChevronDown),{class:e.normalizeClass(["h-4 w-4 transition",E(ye)?"-rotate-90":"rotate-0"])},null,8,["class"])],8,_u)):e.createCommentVNode("",!0),e.createElementVNode("div",vu,e.toDisplayString(`${d.value} (${ye+1})`),1)]),e.createElementVNode("div",Cu,[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:ge=>V(ye),disabled:t.disabled,draggable:"false"},[e.createVNode(e.unref(P.Copy),{class:"h-4 w-4"})],8,Eu),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:ge=>N(ye),disabled:C.value,draggable:"false"},[e.createVNode(e.unref(P.Trash2),{class:"h-4 w-4"})],8,Bu)])],2),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(t.view==="accordion"?"p-6":"pt-6")},[e.createVNode(We,{class:"vs-dataform__form",schema:w.value,layout:"inline",navigation:!1,values:n.value[ye],"onUpdate:values":ge=>n.value[ye]=ge,"form-id":o.value[ye],disabled:t.disabled},null,8,["schema","values","onUpdate:values","form-id","disabled"])],2),[[e.vShow,!E(ye)]])],42,xu))),128)),n.value.length===0?(e.openBlock(),e.createElementBlock("div",Vu,e.toDisplayString(f.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:L,disabled:!y.value},[e.createVNode(e.unref(P.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,Su)]))}}),[["__scopeId","data-v-accd044e"]]),tn="__vs_form_monaco_loader__",wt="__vs_form_monaco_script_loader__",nn="__vs_form_monaco_editor_loader__",Fn=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(r,{expose:t}){const n=r,o=e.useModel(r,"modelValue"),l=e.ref(null),a=e.computed(()=>typeof n.height=="number"?`${n.height}px`:n.height||"280px");let s=null,c=null,i=!1;const d=()=>{if(c)return Promise.resolve(c);if(typeof window>"u")return Promise.resolve(null);const u=window;if(u.monaco?.editor?.create)return c=u.monaco,Promise.resolve(c);if(u[tn])return u[tn];const y=(async()=>{const C=x=>{if(Array.from(document.styleSheets||[]).some(N=>N?.href?.includes(x)))return;const L=document.createElement("link");L.rel="stylesheet",L.href=x,document.head.appendChild(L)},_=x=>{if(u[wt]?.[x])return u[wt][x];u[wt]||={};const S=Array.from(document.scripts).find(L=>L.src===x);return S?(u[wt][x]=new Promise((L,N)=>{const V=S.readyState;if(S.dataset.loaded==="true"||V==="loaded"||V==="complete"){L();return}S.addEventListener("load",()=>{S.dataset.loaded="true",L()},{once:!0}),S.addEventListener("error",A=>N(A),{once:!0})}),u[wt][x]):(u[wt][x]=new Promise((L,N)=>{const V=document.createElement("script");V.src=x,V.async=!0,V.onload=()=>{V.dataset.loaded="true",L()},V.onerror=A=>N(A),document.body.appendChild(V)}),u[wt][x])},k="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs";return C(`${k}/editor/editor.main.min.css`),await _(`${k}/loader.min.js`),u[nn]||(u[nn]=new Promise((x,S)=>{window.require.config({paths:{vs:k}}),window.require(["vs/editor/editor.main"],()=>{c=window.monaco,u.monaco=c,x(c)},L=>S(L))}).catch(x=>{throw delete u[nn],x})),u[nn]})().catch(C=>{throw delete u[tn],C});return u[tn]=y,y},f=()=>{!l.value||!c||(s&&(s.dispose(),s=null),s=c.editor.create(l.value,{value:o.value||"",language:n.syntax,theme:n.theme,automaticLayout:!0,minimap:{enabled:!!n.minimap},readOnly:!!n.disabled}),s.onDidChangeModelContent(()=>{i||(o.value=s.getValue())}))},h=()=>{s?.focus()},w=()=>s,p=()=>c;return e.watch(()=>o.value,u=>{if(!s)return;const g=s.getValue();u!==g&&(i=!0,s.setValue(u||""),i=!1)}),e.watch(()=>n.syntax,u=>{!s||!c||c.editor.setModelLanguage(s.getModel(),u||"xml")}),e.watch(()=>n.theme,u=>{c&&c.editor.setTheme(u||"vs-light")}),e.watch(()=>n.disabled,u=>{s&&s.updateOptions({readOnly:!!u})}),e.watch(()=>n.minimap,u=>{s&&s.updateOptions({minimap:{enabled:!!u}})}),e.onMounted(async()=>{try{const u=await d();if(!u||!u.editor)return;c=u,f()}catch(u){console.error("Failed to load Monaco editor",u)}}),e.onBeforeUnmount(()=>{s&&(s.dispose(),s=null)}),t({focus:h,getEditor:w,getMonaco:p}),(u,g)=>(e.openBlock(),e.createElementBlock("div",{class:"w-full",style:e.normalizeStyle({height:a.value})},[e.createElementVNode("div",{ref_key:"editorContainer",ref:l,class:"w-full h-full overflow-hidden border border-[#CFD9E0] rounded"},null,512)],4))}}),Vr={VsInputText:Vt,VsInputRadio:Vn,"vs-input-text":Vt,"vs-input-password":jo,"vs-input-textarea":dr,"vs-input-richtext":ur,"vs-input-mask":Cn,"vs-input-number":nr,"vs-input-radio":Vn,"vs-input-select":An,"vs-input-switcher":_n,"vs-input-static":vn,"vs-input-container":cr,"vs-input-date":El,"vs-input-checkbox":rr,"vs-input-file":ar,"vs-input-file2":$n,file2:$n,File2:$n,"vs-input-html":vn,"vs-input-email":En,"vs-input-tel":Bn,"vs-input-datatable":pr,"vs-input-map":gr,"vs-input-file-list":sr,"vs-input-tags":yr,"vs-input-slug":br,"vs-input-codegen":kr,"vs-input-key-value":xr,"vs-input-text[]":wr,"vs-input-range":vr,"vs-input-color":_r,"vs-input-native-select":An,VsInputArraySelect:en,"vs-input-array":Cr,"vs-input-array-select":en,"array-select":en,"vs-input-address":Er,"vs-input-datalist":bu,"vs-input-dataform":$u,"vs-input-monaco":Fn},Nu=e.defineComponent({__name:"behavior",props:{api:{},set:{},button:{},error:{},value:{}},setup(r){const t=r,n=e.inject("values");async function o(){try{if(!t.api)return;const l=t.api.replace("{{value}}",t.value),a=await fetch(l);if(!a.ok){de.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const s=await a.json();if(!t.set||!n)return;for(const[c,i]of Object.entries(t.set))n.value[c]=s.result[i]}catch(l){console.error(t.error,l)}}return(l,a)=>(e.openBlock(),e.createElementBlock("button",{onClick:o,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(r.button),1))}}),Au={class:"flex flex-col gap-1 w-full"},Fu=["innerHTML"],Sr=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(r,{emit:t}){const n=r,o=e.useModel(r,"modelValue"),l=t,a=e.computed(()=>zo[`${n.layout}`]),s=["label","placeholder","info","description","text","html"],c=e.ref(C()),i=e.computed(()=>u(n.item,c.value)),d=e.computed(()=>Vr?.[`vs-input-${n.item.type}`]),f=e.inject("field-props"),h=e.computed(()=>{const k=e.unref(d);if(!k)return new Set;const x=k.props??k.__vccOpts?.props;if(!x)return new Set;const S=Array.isArray(x)?x:Object.keys(x);return new Set(S)}),w=e.computed(()=>{const k={...i.value??{}},x=n.item?.name;x&&f?.value?.[x]&&Object.assign(k,f.value[x]);const S=h.value;return S.size?Object.fromEntries(Object.entries(k).filter(([L])=>S.has(L))):{}}),p=k=>{const x=typeof k=="object"&&k!==null?k:{value:k};l("value-selected",{...x,name:x.name??n.item?.name})};e.onMounted(()=>{c.value=C(),window.addEventListener("storage",_)}),e.onUnmounted(()=>{window.removeEventListener("storage",_)});function u(k,x){if(!k)return{};const S={...k};return s.forEach(L=>{const N=y(k,L,x);N!=null&&(S[L]=N)}),Array.isArray(k.options)&&(S.options=k.options.map(L=>g(L,x))),S}function g(k,x){if(!k)return k;const S={...k},L=y(k,"label",x),N=y(k,"text",x);return L!=null&&(S.label=L),N!=null?S.text=N:L!=null&&(S.text=L),S}function y(k,x,S){const L=`${x}:${S}`;if(k?.[L]!=null)return k[L];if(x==="label"&&k?.[S]!=null)return k[S];if(k?.[x]!=null)return k[x];if(x==="label"){if(k?.ua!=null)return k.ua;if(k?.en!=null)return k.en}if(x==="text"||x==="html"){if(k?.ua!=null)return k.ua;if(k?.en!=null)return k.en}return null}function C(){return typeof window>"u"?"uk":localStorage.getItem("locale")||"uk"}function _(){c.value=C()}return(k,x)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{ua:i.value.ua,error:n.error||"",item:i.value,columns:n.columns,label:i.value.label},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["flex w-full",`${n.item.type}-component`])},[e.createElementVNode("div",Au,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),e.mergeProps(w.value,{modelValue:o.value,"onUpdate:modelValue":x[0]||(x[0]=S=>o.value=S),onValueSelected:p}),null,16,["modelValue"])),i.value.description&&n.layout!=="settings"?(e.openBlock(),e.createElementBlock("p",{key:0,class:"text-sm text-gray-500",innerHTML:i.value.description},null,8,Fu)):e.createCommentVNode("",!0)]),i.value.behavior?.api&&i.value.behavior?.button?(e.openBlock(),e.createBlock(Nu,e.mergeProps({key:0},i.value.behavior,{value:o.value}),null,16,["value"])):e.createCommentVNode("",!0)],2)]),_:1},8,["ua","error","item","columns","label"]))}}),Du={class:"text-sm text-gray-800 mb-[4px] font-medium dark:text-neutral-300"},Mu={class:"vs-compact-form-navigation__rail mt-[6px]"},Lu=["onClick"],Tu=me(e.defineComponent({__name:"vs-compact-form-navigation",props:{target:{},scrollContainer:{},title:{default:"Навігація"},enabled:{type:Boolean,default:!0},width:{default:400}},setup(r,{expose:t}){const n=r,o=e.ref([]),l=e.ref(""),a=e.ref(""),s=e.computed(()=>!!n.enabled),c=e.computed(()=>["vs-compact-form-navigation flex flex-col pl-[6px] pt-[8px] pr-[8px]","sticky top-0 self-start shrink-0","max-h-full min-h-0 overflow-y-auto"]),i=e.computed(()=>{const $=n.width;if($==null)return{};const M=typeof $=="number"?`${$}px`:`${$}`;return{width:M,minWidth:M}});let d=null,f=0,h=0,w=null,p=null,u=null;const g=()=>A(),y=()=>_();e.watch(()=>n.target,async $=>{if(L(),!$){w=null,o.value=[],l.value="";return}w=$,s.value&&(await e.nextTick(),S($),_())},{immediate:!0}),e.watch(()=>n.scrollContainer,$=>{if(!s.value){p=$??null;return}C($??null),e.nextTick(()=>_())},{immediate:!0}),e.onMounted(()=>{n.scrollContainer||C(null),_()}),e.onBeforeUnmount(()=>{L(),C(null,!0),w=null,typeof window<"u"&&(f&&window.cancelAnimationFrame(f),h&&window.cancelAnimationFrame(h))});function C($,M=!1){if(u&&(u(),u=null),M){p=null;return}if(p=$??null,typeof window>"u")return;const R=$??window,D=window;R.addEventListener("scroll",g,{passive:!0}),D.addEventListener("resize",y),u=()=>{R.removeEventListener("scroll",g),D.removeEventListener("resize",y)}}function _(){if(!s.value||!w)return;f&&typeof window<"u"&&window.cancelAnimationFrame(f);const $=()=>{k(),f=0};typeof window>"u"?$():f=window.requestAnimationFrame($)}function k(){if(!s.value||!w)return;const $=Array.from(w.querySelectorAll("h1, h2")),M=new Set,R=[];$.forEach((D,I)=>{const T=D.textContent?.trim()??"";if(!T)return;let U=(D.getAttribute("id")??"").trim();U||(U=x(T)||`heading-${I+1}`);let H=U,W=1;for(;M.has(H);)H=`${U}-${W+=1}`;D.id!==H&&Object.assign(D,{id:H}),M.add(H),R.push({id:H,text:T,level:D.tagName.toLowerCase()==="h1"?1:2})}),o.value=R,R.length||(l.value=""),V()}function x($){return $.toLowerCase().replace(/[^a-z0-9\s-]/g,"").trim().replace(/\s+/g,"-")}function S($){!$||!s.value||typeof MutationObserver>"u"||(L(),d=new MutationObserver(()=>_()),d.observe($,{childList:!0,subtree:!0}))}function L(){d&&(d.disconnect(),d=null)}function N($){const M=p;if(!M)return typeof window>"u"?$.offsetTop:$.getBoundingClientRect().top+window.scrollY;const R=$.getBoundingClientRect(),D=M.getBoundingClientRect();return R.top-D.top+M.scrollTop}function V(){if(!s.value||!o.value.length)return;const $=p,M=($?$.scrollTop:null)||(typeof window<"u"?window.scrollY:0),R=($?$.clientHeight:null)||(typeof window<"u"?window.innerHeight:0),D=M+R;let I=null;for(let U=0;U<o.value.length;U+=1){const H=o.value[U],W=document.getElementById(H.id);if(W){const Q=N(W);Q+W.offsetHeight>M&&Q<D&&(I=H.id)}}!I&&a.value&&(I=a.value),I&&(a.value=I);const T=$?$.scrollHeight-$.clientHeight:document.documentElement.scrollHeight-window.innerHeight;M+5>=T&&(I=o.value[o.value.length-1].id),I&&(l.value=I)}function A(){s.value&&(h&&window.cancelAnimationFrame(h),h=window.requestAnimationFrame(()=>{V(),h=0}))}function E($){if(!s.value)return;const M=document.getElementById($);if(!M)return;const R=p,D=Math.max(0,N(M));R?R.scrollTo({top:D,behavior:"smooth"}):typeof window<"u"&&window.scrollTo({top:D,behavior:"smooth"})}return t({refresh:_}),($,M)=>s.value&&o.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(c.value),style:e.normalizeStyle(i.value)},[e.createElementVNode("h2",Du,e.toDisplayString(r.title),1),e.createElementVNode("div",Mu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,R=>(e.openBlock(),e.createElementBlock("div",{key:R.id,class:e.normalizeClass(["vs-compact-form-navigation__item relative",R.level===2?"vs-compact-form-navigation__item--nested":"",R.id===l.value?"vs-compact-form-navigation__item--active":""])},[e.createElementVNode("button",{type:"button",onClick:D=>E(R.id),class:e.normalizeClass(["vs-compact-form-navigation__button flex gap-x-3 py-[6px] pr-3 text-sm duration-200 hover:text-gray-800",R.level===2?"pl-[15px]":"pl-[18px]",R.id===l.value?"text-gray-800":"text-gray-500"])},[e.createElementVNode("span",null,e.toDisplayString(R.text),1)],10,Lu)],2))),128))])],6)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-b3e16a91"]]),ut={required:"Це поле є обов’язковим",email:"Неправильний email",tel:"Неправильний телефон",minlength:r=>`Мінімальна довжина — ${r} символів`,maxlength:r=>`Максимальна довжина — ${r} символів`},Iu=r=>typeof r=="string"?r.trim()?!1:ut.required:Array.isArray(r)?r.map(n=>typeof n=="string"?n.trim():n).filter(n=>n!=null&&n!=="").length?!1:ut.required:typeof r=="number"?Number?.isNaN(r)?ut?.required:!1:r?!1:ut.required,Ru=r=>{const t=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;return r?t.test(r)?!1:ut.email:!1},Ou=r=>{const t=/^\+[1-9]\d{1,14}$/;return r?t.test(r)?!1:ut.tel:!1},$r=r=>r==null?0:typeof r=="string"?r.trim().length:Array.isArray(r)?r.length:typeof r=="number"?r.toString().length:String(r).length,zu=(r,t)=>{if(r==null)return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&$r(r)<n?t?.message||ut.minlength(n):!1},Pu=(r,t)=>{if(r==null||r==="")return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&$r(r)>n?t?.message||ut.maxlength(n):!1},ju=(r,t)=>{const n=t.pattern??t.regexp,o=typeof n=="string"?new RegExp(n):n;if(Array.isArray(r)){const l=r.filter(Boolean);return l.length===0||l.every(a=>o.test(a))?!1:t.message}return!o.test(r)&&r?t.message:!1},Uu=(r,t)=>!1,Hu=(r,t)=>{switch(typeof t=="string"?t:t.type){case"required":return Iu(r);case"email":return Ru(r);case"tel":return Ou(r);case"regexp":return ju(r,t);case"minlength":return zu(r,t);case"maxlength":return Pu(r,t);case"custom":return Uu();default:return!1}},qu={autocomplete:"select",combobox:"select",datepicker:"date",markedtext:"mask",html:"static",geom:"map",filelist:"file-list",file:"file",dropzone:"file"};function Nr(r){const t=r?.toLowerCase();return qu[t]||t}function Dn(r,t=!1){if(Array.isArray(r)){const o=[];return r.forEach(l=>{const a={...l};a.name=(l.name||l.id||l.key||"").toString(),a.type=Nr(l.type),a.label=l.label||l.ua,a.rules=l.rules||l.validators,a.type==="email"&&!a.rules&&(a.rules=["email"]),l.data&&(a.api=`/api/suggest/${l.data}`),a.disabled=a.disabled??t,Array.isArray(a.schema)&&(a.schema=Dn(a.schema,a.disabled)),o.push(a)}),o}const n=[];return Object.entries(r).forEach(o=>{const l={name:o[0],...o[1],type:Nr(o[1].type),label:o[1].label||o[1].ua,rules:o[1].rules||o[1].validators,disabled:o[1].disabled??t};l.type==="email"&&!l.rules&&(l.rules=["email"]),o[1].type?.includes("list")&&(l.multiple=!0),!l.api&&o[1].data&&(l.api=`/api/suggest/${o[1].data}`),Array.isArray(l.schema)&&(l.schema=Dn(l.schema,l.disabled)),n.push(l)}),n}function Ku(r,t,n=!1){const o=e.computed(()=>Dn((Array.isArray(t),t),typeof n=="boolean"?n:n.value)),l=e.ref({});function a(d){const f=d?.conditions;if(!f)return!0;const h=Array.isArray(f)?f[0]:f,w=r?.value?.[h];return ir(w,f)}const s=(d=o.value,f=!0)=>(d.forEach(h=>{const w=[],p=Number(h?.minlength),u=Number(h?.maxlength);!Number.isNaN(p)&&Number.isFinite(p)&&w.push({type:"minlength",value:p}),!Number.isNaN(u)&&Number.isFinite(u)&&w.push({type:"maxlength",value:u});const g=[...w,...h.rules||[]];if(g.length){if(!a(h)){delete l.value[h.name];return}let y=!1,C=null;g.forEach(_=>{const k=Hu(r.value[h.name],_);k&&(y=!0,!C&&typeof k=="string"&&(C=k))}),y&&C?l.value[h.name]=C:delete l.value[h.name]}h.schema&&s(h.schema,!1)}),f&&Object.values(l.value).some(Boolean)?l.value:null),c=e.computed(()=>o.value?.filter(d=>d.hidden!==!0&&a(d)));return{errors:l,validate:s,reset:()=>{r.value={},l.value={}},visibleSchema:c}}const Gu={class:"flex w-full h-full min-h-0 gap-6"},Wu={key:0,"data-orientation":"horizontal",role:"none",class:"mt-1 shrink-0 h-[1px] w-full bg-slate-100 dark:bg-slate-600"},We=e.defineComponent({__name:"vs-compact-form",props:e.mergeModels({schema:{default:()=>[]},style:{default:()=>({})},modelValue:{},layout:{default:()=>"default"},formId:{default:()=>""},disabled:{type:Boolean,default:!1},navigation:{type:Boolean,default:!1},navWidth:{default:400},columns:{}},{form:{default:()=>({})},formModifiers:{},modelValue:{default:()=>({})},modelModifiers:{},values:{default:void 0},valuesModifiers:{}}),emits:e.mergeModels(["handle-submit","update:modelValue","value-selected"],["update:form","update:modelValue","update:values"]),setup(r,{expose:t,emit:n}){const o=n,l=r,a=e.useModel(r,"form"),s=e.useModel(r,"modelValue"),c=e.useModel(r,"values"),i=e.computed({get:()=>c.value??s.value,set:R=>{s.value=R,c.value=R}}),{errors:d,validate:f,reset:h,visibleSchema:w}=Ku(i,l.schema,e.toRef(l,"disabled")),p=e.ref(null),u=e.ref(null),g=e.ref({}),y=e.computed(()=>l.navigation),C=e.computed(()=>l.navWidth),_=e.computed(()=>l.style?.columns),k=Object.freeze({container:12,label:3}),x=e.computed(()=>l.columns??_.value??k),S=e.computed(()=>l.columns!=null||_.value!=null),L=e.computed(()=>S.value?"horizontal":l.layout),N=R=>R?.columns?"horizontal":L.value,V=R=>R?.columns??x.value,A=()=>{o("update:modelValue",i.value),f(),o("handle-submit",i.value)},E=R=>{o("value-selected",R)},$=()=>{l.formId&&(i.value?.id!==void 0&&i.value?.id!==null&&i.value?.id!==""||(i.value={...i.value??{},id:l.formId}))};t({validate:f,reset:h,errors:d}),e.onMounted(()=>{$(),a.value={value:i.value,errors:d.value,reset:h,validate:f,formId:l.formId}}),e.watch(()=>l.formId,()=>{$()},{immediate:!0});function M(R,D){if(R===D)return!0;if(typeof R!="object"||typeof D!="object"||!R||!D)return!1;const I=Object.keys(R),T=Object.keys(D);return I.length!==T.length?!1:I.every(U=>R[U]===D[U])}return e.provide("form",a),e.provide("values",i),e.provide("field-props",g),(R,D)=>(e.openBlock(),e.createElementBlock("div",Gu,[e.createElementVNode("div",{class:"flex-1 min-h-0 overflow-y-auto overflow-x-visible",ref_key:"formScrollContainer",ref:u},[e.createElementVNode("form",{ref_key:"formRef",ref:p,onSubmit:e.withModifiers(A,["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(w),(I,T)=>(e.openBlock(),e.createElementBlock("div",{key:I.name,class:e.normalizeClass(N(I)==="horizontal"?"col-span-12":`col-span-${I.col||12}`)},[e.createVNode(Sr,{style:e.normalizeStyle(r.style),item:I,layout:N(I),columns:V(I),"model-value":i.value[I.name],"onUpdate:modelValue":U=>{const H=i.value[I.name];M(H,U)||(i.value[I.name]=U)},error:e.unref(d)[I.name],onValueSelected:E},null,8,["style","item","layout","columns","model-value","onUpdate:modelValue","error"]),N(I)==="settings"&&T+1!==e.unref(w).length?(e.openBlock(),e.createElementBlock("div",Wu)):e.createCommentVNode("",!0)],2))),128))],34)],512),e.createVNode(Tu,{target:p.value,"scroll-container":u.value,enabled:y.value,width:C.value},null,8,["target","scroll-container","enabled","width"])]))}}),Yu={class:"relative"},Zu={class:"w-full h-full fixed top-0 start-0 bg-black bg-opacity-50"},Xu={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"},Ju={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},Qu={class:"font-medium text-gray-800 dark:text-[#ffffff]"},ep={class:"p-4 mim-h-0 h-full overflow-auto"},Ar=e.defineComponent({__name:"modal-edit",props:{schema:{},defaultValue:{},mode:{},token:{},form:{},api:{},method:{}},emits:["close","save","edit"],setup(r,{emit:t}){const n=r,o=t,l=e.ref(n.schema),a=e.ref(n.defaultValue?JSON.parse(JSON.stringify(n.defaultValue)):{}),s=e.ref({}),c=e.ref(n.token||""),i=e.ref(n.mode),d=()=>{const u=n.method?.trim().toUpperCase();return u==="GET"||u==="POST"||u==="PUT"?u:i.value==="add"?"POST":"PUT"},f=()=>{de.notify({type:"success",title:"Успішно",message:`Дані успішно ${i.value==="add"?"збережено":"оновлено"}`})},h=async u=>{if(console.log(u),u.ok){await u.json().catch(()=>({})),f(),o("save",a.value);return}if(u.status===400){const g=await u.json().catch(()=>({}));de.notify({type:"warning",title:"Помилка валідації",message:g.message||"Некоректні дані (400)"});return}if(u.status===500){de.notify({type:"error",title:"Серверна помилка",message:"Виникла помилка на сервері (500)"});return}de.notify({type:"error",title:"Помилка",message:`Статус: ${u.status}`})};async function w(){const u=s.value.validate();if(u){de.notify({type:"warning",title:"Помилка валідації",message:Object.entries(u).map(([y,C])=>`${y}: ${C}`).join(`
5
- `)});return}const g=n.api?.trim();if(g){const y=d();try{const C=await fetch(g,{method:y,headers:y==="GET"?void 0:{"Content-Type":"application/json"},body:y==="GET"?void 0:JSON.stringify(a.value)});await h(C)}catch(C){de.notify({type:"error",title:"Помилка з’єднання",message:C.message||"Не вдалося виконати запит"})}return}if(c.value)try{const y=await fetch(`/api/table/${c.value}`,{method:i.value==="add"?"POST":"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a.value)});await h(y)}catch(y){de.notify({type:"error",title:"Помилка з’єднання",message:y.message||"Не вдалося виконати запит"})}else o("edit",a.value),p()}function p(){o("close")}return e.onMounted(async()=>{try{if(n.form&&!n.schema){const u=await fetch(`/api/template/form/${n.form}`);if(!u.ok){de.notify({type:u.status>=400&&u.status<500?"warning":"error",title:"Error",message:`Error code: ${u.status}`});return}const g=await u.json();l.value=g.schema,g.token&&(c.value=g.token)}else if(n.token&&!n.defaultValue){c.value=n.token;const u=await fetch(`/api/form/${c.value}`);if(!u.ok){de.notify({type:u.status>=400&&u.status<500?"warning":"error",title:"Error",message:`Error code: ${u.status}`});return}const g=await u.json();l.value=g.schema,g.data?a.value=g.data:i.value="add",g.obj&&(a.value={...a.value,...g.obj})}}catch(u){de.notify({type:"error",title:"Error",message:u.message||"Unexpected error"}),console.error(u)}}),(u,g)=>(e.openBlock(),e.createElementBlock("div",Yu,[e.createElementVNode("div",Zu,[e.createElementVNode("div",Xu,[e.createElementVNode("div",Ju,[e.createElementVNode("h3",Qu,e.toDisplayString(i.value==="add"?"Додати":"Змінити"),1),e.createElementVNode("button",{onClick:p,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"},[g[2]||(g[2]=e.createElementVNode("span",{class:"sr-only"},"Close",-1)),e.createVNode(e.unref(P.X),{class:"h-4 w-4 flex-shrink-0"})])]),e.createElementVNode("div",ep,[l.value?(e.openBlock(),e.createBlock(We,{key:0,schema:l.value,values:a.value,"onUpdate:values":g[0]||(g[0]=y=>a.value=y),form:s.value,"onUpdate:form":g[1]||(g[1]=y=>s.value=y),formId:c.value},null,8,["schema","values","form","formId"])):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:"vs-form__head mr-5 mb-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},[e.createElementVNode("button",{type:"button",onClick:p,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:w,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"}," Зберегти ")])])])]))}}),tp=1440*60*1e3,np=["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"],rp=["січ","лют","бер","квіт","трав","черв","лип","серп","вер","жовт","лист","груд"],op=["нд","пн","вт","ср","чт","пт","сб"];function $e(r){return r instanceof Date&&!Number.isNaN(r.getTime())}const St=r=>new Date(r.getTime());function _t(r){const t=St(r);return t.setHours(0,0,0,0),t}function At(r){const t=St(r);return t.setHours(23,59,59,999),t}function Mn(r){return _t(new Date(r.getFullYear(),r.getMonth(),1))}function Ln(r){return At(new Date(r.getFullYear(),r.getMonth()+1,0))}function Tn(r,t){const n=new Date(r),o=n.getDate();n.setDate(1),n.setMonth(n.getMonth()+t);const l=new Date(n.getFullYear(),n.getMonth()+1,0).getDate();return n.setDate(Math.min(o,l)),n}function lp(r,t){return Tn(r,-1)}function rn(r,t){const n=new Date(r);return n.setFullYear(n.getFullYear()+t),n}function Fr(r,t){return rn(r,-t)}function Dr(r){return _t(new Date(r.getFullYear(),0,1))}function Mr(r){return At(new Date(r.getFullYear(),11,31))}function ap(r){const t=Math.floor(r.getFullYear()/10)*10;return _t(new Date(t,0,1))}function sp(r){const t=Math.floor(r.getFullYear()/10)*10+9;return At(new Date(t,11,31))}const Ye=r=>r.getFullYear(),on=r=>Math.floor(r.getFullYear()/10)*10;function ip(r){const t=[];let n=_t(r.start);const o=_t(r.end);for(;n<=o;)t.push(St(n)),n=new Date(n.getTime()+tp);return t}function cp(r){const t=[];let n=Mn(r.start);const o=Ln(r.end);for(;n<=o;)t.push(St(n)),n=Tn(n,1);return t}function dp(r){const t=[];let n=Dr(r.start);const o=Mr(r.end);for(;n<=o;)t.push(St(n)),n=rn(n,1);return t}function In(r,t=1){const n=_t(r),o=(n.getDay()-t+7)%7;return n.setDate(n.getDate()-o),n}function up(r,t=1){const n=In(r,t);return n.setDate(n.getDate()+6),At(n)}function pp(r,t,n=0){const o=In(r,n),l=(t-n+7)%7;return o.setDate(o.getDate()+l),o}const ln=(r,t)=>!!r&&!!t&&r.getFullYear()===t.getFullYear()&&r.getMonth()===t.getMonth()&&r.getDate()===t.getDate(),Rn=(r,t)=>!!r&&!!t&&r.getFullYear()===t.getFullYear()&&r.getMonth()===t.getMonth(),Lr=(r,t)=>!!r&&!!t&&r.getFullYear()===t.getFullYear(),Tr=(r,t)=>!!r&&!!t&&ln(r,t)&&r.getHours()===t.getHours(),fp=(r,t)=>!!r&&!!t&&Tr(r,t)&&r.getMinutes()===t.getMinutes();function mp(r,t){const n=r.getTime();return n>=t.start.getTime()&&n<=t.end.getTime()}const Ft=(r,t)=>!!r&&!!t&&r.getTime()<t.getTime(),Dt=(r,t)=>!!r&&!!t&&r.getTime()>t.getTime();function hp(r){const t=r.filter(n=>$e(n));if(t.length)return t.reduce((n,o)=>n.getTime()>=o.getTime()?n:o)}function gp(r){const t=r.filter(n=>$e(n));if(t.length)return t.reduce((n,o)=>n.getTime()<=o.getTime()?n:o)}function Ir(r,t){const n=St(r);return typeof t.year=="number"&&n.setFullYear(t.year),typeof t.month=="number"&&n.setMonth(t.month),typeof t.date=="number"&&n.setDate(t.date),typeof t.hours=="number"&&n.setHours(t.hours),typeof t.minutes=="number"&&n.setMinutes(t.minutes),typeof t.seconds=="number"&&n.setSeconds(t.seconds),typeof t.milliseconds=="number"&&n.setMilliseconds(t.milliseconds),n}const an=(r,t=2)=>String(r).padStart(t,"0");function Rr(r,t){return t==="wide"?np[r]:rp[r]}function yp(r){return op[r]}const bp=[{token:"LLLL",format:r=>Rr(r.getMonth(),"wide")},{token:"LLL",format:r=>Rr(r.getMonth(),"abbreviated")},{token:"EE",format:r=>yp(r.getDay())},{token:"yyyy",format:r=>String(r.getFullYear())},{token:"MM",format:r=>an(r.getMonth()+1)},{token:"dd",format:r=>an(r.getDate())},{token:"HH",format:r=>an(r.getHours())},{token:"mm",format:r=>an(r.getMinutes())}];function sn(r,t){if(!$e(r))return"";let n="",o=0;for(;o<t.length;){const l=bp.find(a=>t.startsWith(a.token,o));l?(n+=l.format(r),o+=l.token.length):(n+=t[o],o+=1)}return n}const kp={"yyyy-MM-dd":/^(\d{4})-(\d{2})-(\d{2})$/,"dd.MM.yyyy":/^(\d{2})\.(\d{2})\.(\d{4})$/,"dd.MM.yyyy HH:mm":/^(\d{2})\.(\d{2})\.(\d{4}) (\d{2}):(\d{2})$/,"HH:mm":/^(\d{2}):(\d{2})$/,"MM.yyyy":/^(\d{2})\.(\d{4})$/,yyyy:/^(\d{4})$/};function Or(r,t){const n=kp[t];if(!n){const l=new Date(r);return $e(l)?l:null}const o=r.match(n);if(!o)return null;switch(t){case"yyyy-MM-dd":{const[,l,a,s]=o,c=new Date(Number(l),Number(a)-1,Number(s));return $e(c)?c:null}case"dd.MM.yyyy":{const[,l,a,s]=o,c=new Date(Number(s),Number(a)-1,Number(l));return $e(c)?c:null}case"dd.MM.yyyy HH:mm":{const[,l,a,s,c,i]=o,d=new Date(Number(s),Number(a)-1,Number(l),Number(c),Number(i));return $e(d)?d:null}case"HH:mm":{const[,l,a]=o,s=new Date;return s.setHours(Number(l),Number(a),0,0),s}case"MM.yyyy":{const[,l,a]=o;return new Date(Number(a),Number(l)-1,1)}case"yyyy":{const[,l]=o;return new Date(Number(l),0,1)}default:return null}}const xp=["year","month","day","time","custom"],wp=e.defineComponent({components:{ChevronLeft:P.ChevronLeft,ChevronRight:P.ChevronRight},emits:{elementClick:r=>$e(r),left:()=>!0,right:()=>!0,heading:()=>!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:r=>typeof r=="string"&&xp.includes(r)}}}),_p={class:"v3dp__heading"},vp=["disabled"],Cp=["disabled"],Ep={class:"v3dp__body"},Bp={class:"v3dp__subheading"},Vp={class:"v3dp__elements"},Sp=["disabled","onClick"];function $p(r,t,n,o,l,a){const s=e.resolveComponent("ChevronLeft"),c=e.resolveComponent("ChevronRight");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v3dp__popout",`v3dp__popout-${r.viewMode}`]),style:e.normalizeStyle({"--popout-column-definition":`repeat(${r.columnCount}, 1fr)`}),onMousedown:t[3]||(t[3]=e.withModifiers(()=>{},["prevent"]))},[e.createElementVNode("div",_p,[e.createElementVNode("button",{class:"v3dp__heading__button v3dp__heading__button__left",disabled:r.leftDisabled,onClick:t[0]||(t[0]=e.withModifiers(i=>r.$emit("left"),["stop","prevent"]))},[e.renderSlot(r.$slots,"arrow-left",{},()=>[e.createVNode(s,{class:"v3dp__heading__icon h-4 w-4"})],!0)],8,vp),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.headingClickable?"button":"span"),{class:"v3dp__heading__center",onClick:t[1]||(t[1]=e.withModifiers(i=>r.$emit("heading"),["stop","prevent"]))},{default:e.withCtx(()=>[e.renderSlot(r.$slots,"heading",{},void 0,!0)]),_:3})),e.createElementVNode("button",{class:"v3dp__heading__button v3dp__heading__button__right",disabled:r.rightDisabled,onClick:t[2]||(t[2]=e.withModifiers(i=>r.$emit("right"),["stop","prevent"]))},[e.renderSlot(r.$slots,"arrow-right",{},()=>[e.createVNode(c,{class:"v3dp__heading__icon h-4 w-4"})],!0)],8,Cp)]),e.createElementVNode("div",Ep,["subheading"in r.$slots?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",Bp,[e.renderSlot(r.$slots,"subheading",{},void 0,!0)]),t[4]||(t[4]=e.createElementVNode("hr",{class:"v3dp__divider"},null,-1))],64)):e.createCommentVNode("",!0),e.createElementVNode("div",Vp,[e.renderSlot(r.$slots,"body",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.items,i=>(e.openBlock(),e.createElementBlock("button",{key:i.key,disabled:i.disabled,class:e.normalizeClass([{selected:i.selected,current:i.current},`v3dp__element__button__${r.viewMode}`]),onClick:e.withModifiers(d=>r.$emit("elementClick",i.value),["stop","prevent"])},[e.createElementVNode("span",null,e.toDisplayString(i.display),1)],10,Sp))),128))],!0)])])],38)}const cn=me(wp,[["render",$p],["__scopeId","data-v-744d2ba4"]]),Np=e.defineComponent({components:{PickerPopup:cn},emits:{"update:pageDate":r=>$e(r),select:r=>$e(r)},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(r,{emit:t}){const n=e.computed(()=>ap(r.pageDate)),o=e.computed(()=>sp(r.pageDate)),l=(h,w,p)=>!w&&!p?!0:!(w&&Ye(h)<Ye(w)||p&&Ye(h)>Ye(p)),a=e.computed(()=>dp({start:n.value,end:o.value}).map(h=>({value:h,key:String(Ye(h)),display:Ye(h),selected:!!r.selected&&Ye(h)===Ye(r.selected),disabled:!l(h,r.lowerLimit,r.upperLimit)}))),s=e.computed(()=>{const h=Ye(n.value),w=Ye(o.value);return`${h} - ${w}`}),c=e.computed(()=>r.lowerLimit&&(on(r.lowerLimit)===on(r.pageDate)||Ft(r.pageDate,r.lowerLimit))),i=e.computed(()=>r.upperLimit&&(on(r.upperLimit)===on(r.pageDate)||Dt(r.pageDate,r.upperLimit)));return{years:a,heading:s,leftDisabled:c,rightDisabled:i,previousPage:()=>t("update:pageDate",Fr(r.pageDate,10)),nextPage:()=>t("update:pageDate",rn(r.pageDate,10))}}});function Ap(r,t,n,o,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{columnCount:3,leftDisabled:r.leftDisabled,rightDisabled:r.rightDisabled,items:r.years,viewMode:"year",onLeft:r.previousPage,onRight:r.nextPage,onElementClick:t[0]||(t[0]=c=>r.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.heading),1)]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const Fp=me(Np,[["render",Ap]]),Dp=e.defineComponent({components:{PickerPopup:cn},emits:{"update:pageDate":r=>$e(r),select:r=>$e(r),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(r,{emit:t}){const n=e.computed(()=>Dr(r.pageDate)),o=e.computed(()=>Mr(r.pageDate)),l=e.computed(()=>w=>sn(w,r.format)),a=(w,p,u)=>!p&&!u?!0:!(p&&Ft(w,Mn(p))||u&&Dt(w,Ln(u))),s=e.computed(()=>cp({start:n.value,end:o.value}).map(w=>({value:w,display:l.value(w),key:l.value(w),selected:!!r.selected&&Rn(r.selected,w),disabled:!a(w,r.lowerLimit,r.upperLimit)}))),c=e.computed(()=>Ye(n.value)),i=e.computed(()=>r.lowerLimit&&(Lr(r.lowerLimit,r.pageDate)||Ft(r.pageDate,r.lowerLimit))),d=e.computed(()=>r.upperLimit&&(Lr(r.upperLimit,r.pageDate)||Dt(r.pageDate,r.upperLimit)));return{months:s,heading:c,leftDisabled:i,rightDisabled:d,previousPage:()=>t("update:pageDate",Fr(r.pageDate,1)),nextPage:()=>t("update:pageDate",rn(r.pageDate,1))}}});function Mp(r,t,n,o,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",columnCount:3,items:r.months,leftDisabled:r.leftDisabled,rightDisabled:r.rightDisabled,viewMode:"month",onLeft:r.previousPage,onRight:r.nextPage,onHeading:t[0]||(t[0]=c=>r.$emit("back")),onElementClick:t[1]||(t[1]=c=>r.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.heading),1)]),_:1},8,["items","leftDisabled","rightDisabled","onLeft","onRight"])}const Lp=me(Dp,[["render",Mp]]),Tp=e.defineComponent({components:{PickerPopup:cn},emits:{"update:pageDate":r=>$e(r),select:r=>$e(r),back:()=>!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:r=>typeof r=="number"&&Number.isInteger(r)&&r>=0&&r<=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(r,{emit:t}){const n=e.computed(()=>y=>C=>sn(C,y)),o=e.computed(()=>Mn(r.pageDate)),l=e.computed(()=>Ln(r.pageDate)),a=e.computed(()=>({start:o.value,end:l.value})),s=e.computed(()=>({start:In(o.value,r.weekStartsOn),end:up(l.value,r.weekStartsOn)})),c=e.computed(()=>r.customWeekdays?.length===7?r.customWeekdays:null),i=e.computed(()=>{const y=r.weekStartsOn,C=c.value;if(C)return Array.from({length:7}).map((k,x)=>C[(y+x)%7]);const _=n.value(r.weekdayFormat);return Array.from(Array(7)).map((k,x)=>(y+x)%7).map(k=>pp(new Date,k,r.weekStartsOn)).map(_)}),d=(y,C,_,k)=>k?.dates?.some(x=>ln(y,x))||k?.predicate?.(y)?!1:!C&&!_?!0:!(C&&Ft(y,_t(C))||_&&Dt(y,At(_))),f=e.computed(()=>{const y=new Date,C=n.value(r.format);return ip(s.value).map(_=>({value:_,display:C(_),selected:!!r.selected&&ln(r.selected,_),current:ln(y,_),disabled:!r.allowOutsideInterval&&!mp(_,a.value)||!d(_,r.lowerLimit,r.upperLimit,r.disabledDates),key:n.value("yyyy-MM-dd")(_)}))}),h=e.computed(()=>n.value(r.headingFormat)(r.pageDate)),w=e.computed(()=>r.lowerLimit&&(Rn(r.lowerLimit,r.pageDate)||Ft(r.pageDate,r.lowerLimit))),p=e.computed(()=>r.upperLimit&&(Rn(r.upperLimit,r.pageDate)||Dt(r.pageDate,r.upperLimit)));return{weekDays:i,days:f,heading:h,leftDisabled:w,rightDisabled:p,previousPage:()=>t("update:pageDate",lp(r.pageDate)),nextPage:()=>t("update:pageDate",Tn(r.pageDate,1))}}});function Ip(r,t,n,o,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",leftDisabled:r.leftDisabled,rightDisabled:r.rightDisabled,items:r.days,viewMode:"day",onLeft:r.previousPage,onRight:r.nextPage,onHeading:t[0]||(t[0]=c=>r.$emit("back")),onElementClick:t[1]||(t[1]=c=>r.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.heading),1)]),subheading:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.weekDays,(c,i)=>(e.openBlock(),e.createElementBlock("span",{key:c,class:e.normalizeClass(`v3dp__subheading__weekday__${i}`)},e.toDisplayString(c),3))),128))]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const Rp=me(Tp,[["render",Ip]]);function zr(r,t){const n=r.getBoundingClientRect(),o={height:r.clientHeight,width:r.clientWidth},l=t.getBoundingClientRect();if(!(l.top>=n.top&&l.bottom<=n.top+o.height)){const s=l.top-n.top,c=l.bottom-n.bottom;Math.abs(s)<Math.abs(c)?r.scrollTop+=s:r.scrollTop+=c}}const Op=e.defineComponent({components:{PickerPopup:cn},emits:{select:r=>$e(r),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},visible:{type:Boolean,required:!0},disabledTime:{type:Object,required:!1}},setup(r,{emit:t}){const n=e.ref(null),o=e.ref(null),l=e.computed(()=>r.pageDate??r.selected),a=e.ref(l.value.getHours()),s=e.ref(l.value.getMinutes());e.watch(()=>r.selected,p=>{let u=0,g=0;p&&(u=p.getHours(),g=p.getMinutes()),a.value=u,s.value=g});const c=e.computed(()=>[...Array(24).keys()].map(p=>({value:p,date:Ir(new Date(l.value.getTime()),{hours:p,minutes:s.value,seconds:0}),selected:a.value===p,ref:e.ref(null)}))),i=e.computed(()=>[...Array(60).keys()].map(p=>({value:p,date:Ir(new Date(l.value.getTime()),{hours:a.value,minutes:p,seconds:0}),selected:s.value===p,ref:e.ref(null)}))),d=p=>{s.value=p.value,t("select",p.date)},f=()=>{const p=c.value.find(g=>g.ref.value?.classList?.contains("selected")??!1),u=i.value.find(g=>g.ref.value?.classList?.contains("selected")??!1);p&&u&&(zr(n.value,p.ref.value),zr(o.value,u.ref.value))};return e.watch(()=>r.visible,p=>{p&&e.nextTick(f)}),{hoursListRef:n,minutesListRef:o,hours:a,minutes:s,hoursList:c,minutesList:i,padStartZero:p=>`0${p}`.substr(-2),selectMinutes:d,isEnabled:p=>!(r.disabledTime?.dates?.some(u=>Tr(p,u)&&fp(p,u))||r.disabledTime?.predicate?.(p)),scroll:f}}}),zp={ref:"hoursListRef",class:"v3dp__column"},Pp=["disabled","onClick"],jp={ref:"minutesListRef",class:"v3dp__column"},Up=["disabled","onClick"];function Hp(r,t,n,o,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",columnCount:2,leftDisabled:!0,rightDisabled:!0,viewMode:"time",onHeading:t[0]||(t[0]=c=>r.$emit("back"))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.padStartZero(r.hours))+":"+e.toDisplayString(r.padStartZero(r.minutes)),1)]),body:e.withCtx(()=>[e.createElementVNode("div",zp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.hoursList,c=>(e.openBlock(),e.createElementBlock("button",{key:c.value,ref_for:!0,ref:c.ref,class:e.normalizeClass([{selected:c.selected},"v3dp__element_button__hour"]),disabled:!r.isEnabled(c.date),onClick:e.withModifiers(i=>r.hours=c.value,["stop","prevent"])},[e.createElementVNode("span",null,e.toDisplayString(r.padStartZero(c.value)),1)],10,Pp))),128))],512),e.createElementVNode("div",jp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.minutesList,c=>(e.openBlock(),e.createElementBlock("button",{key:c.value,ref_for:!0,ref:c.ref,class:e.normalizeClass([{selected:c.selected},"v3dp__element_button__minute"]),disabled:!r.isEnabled(c.date),onClick:e.withModifiers(i=>r.selectMinutes(c),["stop","prevent"])},[e.createElementVNode("span",null,e.toDisplayString(r.padStartZero(c.value)),1)],10,Up))),128))],512)]),_:1})}const qp=me(Op,[["render",Hp],["__scopeId","data-v-43e01bf7"]]),dn=["time","day","month","year"],Kp=(r,t,n=void 0)=>{let o=n||new Date;const l=hp([r,o]);l&&(o=l);const a=gp([t,o]);return a&&(o=a),o},Gp=e.defineComponent({components:{YearPicker:Fp,MonthPicker:Lp,DayPicker:Rp,TimePicker:qp},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:r=>typeof r=="string"&&dn.includes(r)},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:r=>[0,1,2,3,4,5,6].includes(r)},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:r=>typeof r=="string"&&dn.includes(r)}},emits:{"update:modelValue":r=>r==null||$e(r),decadePageChanged:r=>!0,yearPageChanged:r=>!0,monthPageChanged:r=>!0,opened:()=>!0,closed:()=>!0},setup(r,{emit:t,attrs:n}){const o=e.ref("none"),l=e.ref(r.startingViewDate),a=e.ref(null),s=e.ref(!1),c=e.ref(""),i=I=>{const T=I.replace(/[a-zA-Z]/g,"0");return/0/.test(T)?T:""},d=e.computed(()=>i(r.inputFormat));let f=null,h=null;const w=()=>{f?.destroy(),f=null},p=async()=>{if(!h){const{default:I}=await Promise.resolve().then(()=>Hn);h=I}return h},u=()=>{f&&f.value!==c.value&&(f.value=c.value??"")},g=async()=>{if(w(),!a.value||!d.value)return;f=(await p())(a.value,{mask:d.value,lazy:!0,overwrite:!0}),u()};e.watchEffect(()=>{if(!c.value)return;const I=Or(c.value,r.inputFormat);I&&(l.value=I)}),e.watchEffect(()=>{c.value=r.modelValue&&$e(r.modelValue)?sn(r.modelValue,r.inputFormat):""}),e.onMounted(()=>{d.value&&e.nextTick(()=>{g()})}),e.onBeforeUnmount(()=>{w()}),e.watch(d,I=>{I?e.nextTick(()=>{g()}):w()}),e.watch(c,()=>{u()});const y=(I="none")=>{r.disabled||(I!=="none"&&o.value==="none"&&(l.value=r.modelValue||Kp(r.lowerLimit,r.upperLimit,l.value)),o.value=I,t(I!=="none"?"opened":"closed"))};e.watchEffect(()=>{r.disabled&&(o.value="none")});const C=(I,T)=>{l.value=T,I==="year"?t("decadePageChanged",T):I==="month"?t("yearPageChanged",T):I==="day"&&t("monthPageChanged",T)},_=I=>{l.value=I,r.minimumView==="year"?(y("none"),t("update:modelValue",I)):o.value="month"},k=I=>{l.value=I,r.minimumView==="month"?(y("none"),t("update:modelValue",I)):o.value="day"},x=I=>{l.value=I,r.minimumView==="day"?(y("none"),t("update:modelValue",I)):o.value="time"},S=I=>{y("none"),t("update:modelValue",I)},L=()=>{r.clearable&&(y("none"),t("update:modelValue",null),l.value=r.startingViewDate)},N=()=>s.value=!0,V=()=>y($.value),A=()=>{s.value=!1,y()},E=I=>{const T=I.keyCode?I.keyCode:I.which;if([27,13].includes(T)&&a.value.blur(),r.typeable){const H=Or(a.value.value,r.inputFormat);H&&c.value===sn(H,r.inputFormat)&&(c.value=a.value.value,t("update:modelValue",H))}},$=e.computed(()=>{const I=dn.indexOf(r.startingView),T=dn.indexOf(r.minimumView);return I<T?r.minimumView:r.startingView}),M=I=>Object.fromEntries(Object.entries(I??{}).filter(([T,U])=>T.startsWith("--"))),R=e.computed(()=>r.weekDayNames?.length===7?r.weekDayNames:void 0);return{blur:A,focus:V,click:N,input:c,inputRef:a,pageDate:l,renderView:y,updatePageDate:C,selectYear:_,selectMonth:k,selectDay:x,selectTime:S,keyUp:E,normalizedWeekdayNames:R,viewShown:o,goBackFromTimepicker:()=>r.startingView==="time"&&r.minimumView==="time"?null:o.value="day",clearModelValue:L,initialView:$,log:I=>console.log(I),variables:M}}}),Wp={class:"v3dp__input_wrapper"},Yp=["readonly","placeholder","disabled","tabindex"],Zp={class:"v3dp__clearable"};function Xp(r,t,n,o,l,a){const s=e.resolveComponent("year-picker"),c=e.resolveComponent("month-picker"),i=e.resolveComponent("day-picker"),d=e.resolveComponent("time-picker");return e.openBlock(),e.createElementBlock("div",{class:"v3dp__datepicker",style:e.normalizeStyle(r.variables(r.$attrs.style))},[e.createElementVNode("div",Wp,[e.withDirectives(e.createElementVNode("input",e.mergeProps({type:"text",ref:"inputRef",readonly:!r.typeable,"onUpdate:modelValue":t[0]||(t[0]=f=>r.input=f)},r.$attrs,{placeholder:r.placeholder,disabled:r.disabled,tabindex:r.disabled?-1:0,onKeyup:t[1]||(t[1]=(...f)=>r.keyUp&&r.keyUp(...f)),onBlur:t[2]||(t[2]=(...f)=>r.blur&&r.blur(...f)),onFocus:t[3]||(t[3]=(...f)=>r.focus&&r.focus(...f)),onClick:t[4]||(t[4]=(...f)=>r.click&&r.click(...f))}),null,16,Yp),[[e.vModelText,r.input]]),e.withDirectives(e.createElementVNode("div",Zp,[e.renderSlot(r.$slots,"clear",{onClear:r.clearModelValue},()=>[e.createElementVNode("i",{onClick:t[5]||(t[5]=f=>r.clearModelValue())},"x")])],512),[[e.vShow,r.clearable&&r.modelValue]])]),e.withDirectives(e.createVNode(s,{pageDate:r.pageDate,"onUpdate:pageDate":t[6]||(t[6]=f=>r.updatePageDate("year",f)),selected:r.modelValue,lowerLimit:r.lowerLimit,upperLimit:r.upperLimit,onSelect:r.selectYear},null,8,["pageDate","selected","lowerLimit","upperLimit","onSelect"]),[[e.vShow,r.viewShown==="year"]]),e.withDirectives(e.createVNode(c,{pageDate:r.pageDate,"onUpdate:pageDate":t[7]||(t[7]=f=>r.updatePageDate("month",f)),selected:r.modelValue,onSelect:r.selectMonth,lowerLimit:r.lowerLimit,upperLimit:r.upperLimit,format:r.monthListFormat,onBack:t[8]||(t[8]=f=>r.viewShown="year")},null,8,["pageDate","selected","onSelect","lowerLimit","upperLimit","format"]),[[e.vShow,r.viewShown==="month"]]),e.withDirectives(e.createVNode(i,{pageDate:r.pageDate,"onUpdate:pageDate":t[9]||(t[9]=f=>r.updatePageDate("day",f)),selected:r.modelValue,weekStartsOn:r.weekStartsOn,lowerLimit:r.lowerLimit,upperLimit:r.upperLimit,headingFormat:r.dayPickerHeadingFormat,disabledDates:r.disabledDates,weekdayFormat:r.weekdayFormat,"allow-outside-interval":r.allowOutsideInterval,format:r.dayFormat,"custom-weekdays":r.normalizedWeekdayNames,onSelect:r.selectDay,onBack:t[10]||(t[10]=f=>r.viewShown="month")},null,8,["pageDate","selected","weekStartsOn","lowerLimit","upperLimit","headingFormat","disabledDates","weekdayFormat","allow-outside-interval","format","custom-weekdays","onSelect"]),[[e.vShow,r.viewShown==="day"]]),e.withDirectives(e.createVNode(d,{pageDate:r.pageDate,visible:r.viewShown==="time",selected:r.modelValue,disabledTime:r.disabledTime,onSelect:r.selectTime,onBack:r.goBackFromTimepicker},null,8,["pageDate","visible","selected","disabledTime","onSelect","onBack"]),[[e.vShow,r.viewShown==="time"]])],4)}const Jp=me(Gp,[["render",Xp]]),Qp=me(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},mode:{default:"date"},weekStart:{},dayNames:{},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(r,{emit:t}){const n=r,o=t,{inputClass:l}=Me(n.style),a=e.computed(()=>n.mode?n.mode:n.time?"datetime":"date"),s={date:"дд.мм.рррр",datetime:"дд.мм.рррр гг:хх",month:"мм.рррр",week:"рррр-тиждень",time:"гг:хх",year:"рррр"},c=e.computed(()=>n.placeholder||s[a.value]||""),i=e.computed(()=>["py-1.5 px-3 block w-full placeholder:text-[#767f8f] bg-white",l.value,n.customClass,{"!border-red-600":n.error}]),d=e.computed(()=>!n.modelValue&&n.now?new Date:null),f=e.computed({get:()=>k(n.modelValue??d.value,a.value)||void 0,set:T=>o("update:modelValue",x(T,a.value))}),h=["Пн","Вт","Ср","Чт","Пт","Сб","Нд"],w=e.computed(()=>{if(n.dayNames?.length)return n.dayNames.length===7?n.dayNames:h}),p=e.computed(()=>{const T=n.weekStart,U=typeof T=="string"?Number(T):T;return U===void 0||Number.isNaN(U)?1:Math.min(6,Math.max(0,U))}),u=e.computed(()=>{switch(a.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"}}}),g={date:"dd.MM.yyyy",datetime:"dd.MM.yyyy HH:mm",month:"MM.yyyy",time:"HH:mm",week:"dd.MM.yyyy",year:"yyyy"},y=e.computed(()=>g[a.value]||"dd.MM.yyyy"),C=e.computed(()=>({"--vdp-selected-bg-color":n.style?.primaryColor||"#2563eb","--vdp-hover-bg-color":n.style?.primaryColor||"#2563eb","--vdp-selected-color":"#ffffff","--vdp-hover-color":"#ffffff","--vdp-border-radius":n.style?.size==="sm"?"6px":"8px","--vdp-elem-font-size":n.style?.size==="sm"?"0.75em":"0.85em"})),_=e.ref(!1);e.watch(()=>n.modelValue,T=>{T?_.value=!0:n.now||(_.value=!1)},{immediate:!0}),e.watchEffect(()=>{n.now&&!n.modelValue&&!_.value&&(o("update:modelValue",x(new Date,a.value)),_.value=!0)});function k(T,U){if(!T)return null;if(T instanceof Date&&!Number.isNaN(T.getTime()))return T;if(typeof T!="string")return null;switch(U){case"datetime":return V(T);case"time":return $(T);case"month":return A(T);case"year":return E(T);case"week":return M(T);default:return N(T)}}function x(T,U){if(!T)return null;const H=T instanceof Date?T:k(T,U);if(!H)return null;switch(U){case"datetime":return`${S(H)}T${L(H)}`;case"time":return L(H);case"month":return`${H.getFullYear()}-${I(H.getMonth()+1)}`;case"year":return`${H.getFullYear()}`;case"week":{const{year:W,week:Q}=R(H);return`${W}-W${I(Q)}`}default:return S(H)}}function S(T){return`${T.getFullYear()}-${I(T.getMonth()+1)}-${I(T.getDate())}`}function L(T){return`${I(T.getHours())}:${I(T.getMinutes())}`}function N(T){const U=T.split("-");if(U.length<3)return null;const[H,W,Q]=U.map(Number);return!H||!W||!Q?null:new Date(H,W-1,Q)}function V(T){const U=T.includes("T")?T:T.replace(" ","T"),H=new Date(U);return Number.isNaN(H.getTime())?null:H}function A(T){const[U,H]=T.split("-").map(Number);return!U||Number.isNaN(H)?null:new Date(U,(H||1)-1,1)}function E(T){const U=Number(T);return U?new Date(U,0,1):null}function $(T){const U=T.match(/^(\d{1,2}):(\d{2})$/);if(!U)return null;const[,H,W]=U,Q=new Date;return Q.setHours(Number(H),Number(W),0,0),Q}function M(T){const U=T.match(/^(\d{4})-W(\d{2})$/);if(!U)return null;const[,H,W]=U,Q=Number(W);return D(Number(H),Q)}function R(T){const U=new Date(Date.UTC(T.getFullYear(),T.getMonth(),T.getDate())),H=U.getUTCDay()||7;U.setUTCDate(U.getUTCDate()+4-H);const W=new Date(Date.UTC(U.getUTCFullYear(),0,1)),Q=Math.ceil(((U.getTime()-W.getTime())/864e5+1)/7);return{year:U.getUTCFullYear(),week:Q}}function D(T,U){if(!T||!U)return null;const H=new Date(T,0,1+(U-1)*7),W=H.getDay(),Q=H;return W<=4?Q.setDate(H.getDate()-H.getDay()+1):Q.setDate(H.getDate()+8-H.getDay()),Q}function I(T){return String(T).padStart(2,"0")}return(T,U)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-date-picker",n.customClass]),style:e.normalizeStyle(C.value)},[e.createVNode(Jp,{modelValue:f.value,"onUpdate:modelValue":U[0]||(U[0]=H=>f.value=H),placeholder:c.value,disabled:n.disabled,clearable:n.clearable,typeable:n.editable,"week-day-names":w.value,"week-starts-on":p.value,"starting-view":u.value.startingView,"minimum-view":u.value.minimumView,"input-format":y.value,name:n.name,class:e.normalizeClass(i.value)},null,8,["modelValue","placeholder","disabled","clearable","typeable","week-day-names","week-starts-on","starting-view","minimum-view","input-format","name","class"])],6))}}),[["__scopeId","data-v-97661afe"]]),ef={form:{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"}}},tf={form:{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:"Скасувати"}}},Pr=ef.form.richtext,jr=tf.form.richtext,On={en:{form:{richtext:Pr}},uk:{form:{richtext:jr}}},Ur=(r={mode:"edit",schema:null})=>new Promise(t=>{const{close:n}=de.modal({title:r.mode==="add"?"Додати":"Редагувати",template:"",visible:!0,size:"medium",closeClickBack:!0,content:Ar,contentProps:{...r,onClose:()=>{t(null),n()},onSave:o=>{t(o),n()}}})});We.install=function(t){t.component("VForm",We),Object.assign(t.config.globalProperties,{$form:Ur}),t.provide("form",Ur),window.v3plugin||(window.v3plugin={})};function pt(r){return typeof r=="string"||r instanceof String}function Hr(r){var t;return typeof r=="object"&&r!=null&&(r==null||(t=r.constructor)==null?void 0:t.name)==="Object"}function qr(r,t){return Array.isArray(t)?qr(r,(n,o)=>t.includes(o)):Object.entries(r).reduce((n,o)=>{let[l,a]=o;return t(a,l)&&(n[l]=a),n},{})}const re={NONE:"NONE",LEFT:"LEFT",FORCE_LEFT:"FORCE_LEFT",RIGHT:"RIGHT",FORCE_RIGHT:"FORCE_RIGHT"};function Kr(r){switch(r){case re.LEFT:return re.FORCE_LEFT;case re.RIGHT:return re.FORCE_RIGHT;default:return r}}function zn(r){return r.replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1")}function un(r,t){if(t===r)return!0;const n=Array.isArray(t),o=Array.isArray(r);let l;if(n&&o){if(t.length!=r.length)return!1;for(l=0;l<t.length;l++)if(!un(t[l],r[l]))return!1;return!0}if(n!=o)return!1;if(t&&r&&typeof t=="object"&&typeof r=="object"){const a=t instanceof Date,s=r instanceof Date;if(a&&s)return t.getTime()==r.getTime();if(a!=s)return!1;const c=t instanceof RegExp,i=r instanceof RegExp;if(c&&i)return t.toString()==r.toString();if(c!=i)return!1;const d=Object.keys(t);for(l=0;l<d.length;l++)if(!Object.prototype.hasOwnProperty.call(r,d[l]))return!1;for(l=0;l<d.length;l++)if(!un(r[d[l]],t[d[l]]))return!1;return!0}else if(t&&r&&typeof t=="function"&&typeof r=="function")return t.toString()===r.toString();return!1}class nf{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?re.NONE:(this.oldSelection.end===this.cursorPos||this.oldSelection.start===this.cursorPos)&&this.oldSelection.end===this.oldSelection.start?re.RIGHT:re.LEFT}}function fe(r,t){return new fe.InputMask(r,t)}function Gr(r){if(r==null)throw new Error("mask property should be defined");return r instanceof RegExp?fe.MaskedRegExp:pt(r)?fe.MaskedPattern:r===Date?fe.MaskedDate:r===Number?fe.MaskedNumber:Array.isArray(r)||r===Array?fe.MaskedDynamic:fe.Masked&&r.prototype instanceof fe.Masked?r:fe.Masked&&r instanceof fe.Masked?r.constructor:r instanceof Function?fe.MaskedFunction:(console.warn("Mask not found for mask",r),fe.Masked)}function $t(r){if(!r)throw new Error("Options in not defined");if(fe.Masked){if(r.prototype instanceof fe.Masked)return{mask:r};const{mask:t=void 0,...n}=r instanceof fe.Masked?{mask:r}:Hr(r)&&r.mask instanceof fe.Masked?r:{};if(t){const o=t.mask;return{...qr(t,(l,a)=>!a.startsWith("_")),mask:t.constructor,_mask:o,...n}}}return Hr(r)?{...r}:{mask:r}}function Je(r){if(fe.Masked&&r instanceof fe.Masked)return r;const t=$t(r),n=Gr(t.mask);if(!n)throw new Error("Masked class is not found for provided mask "+t.mask+", appropriate module needs to be imported manually before creating mask.");return t.mask===n&&delete t.mask,t._mask&&(t.mask=t._mask,delete t._mask),new n(t)}fe.createMask=Je;class pn{get selectionStart(){let t;try{t=this._unsafeSelectionStart}catch{}return t??this.value.length}get selectionEnd(){let t;try{t=this._unsafeSelectionEnd}catch{}return t??this.value.length}select(t,n){if(!(t==null||n==null||t===this.selectionStart&&n===this.selectionEnd))try{this._unsafeSelect(t,n)}catch{}}get isActive(){return!1}}fe.MaskElement=pn;const Wr=90,rf=89;class Mt extends pn{constructor(t){super(),this.input=t,this._onKeydown=this._onKeydown.bind(this),this._onInput=this._onInput.bind(this),this._onBeforeinput=this._onBeforeinput.bind(this),this._onCompositionEnd=this._onCompositionEnd.bind(this)}get rootElement(){var t,n,o;return(t=(n=(o=this.input).getRootNode)==null?void 0:n.call(o))!=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===Wr&&t.shiftKey&&(t.metaKey||t.ctrlKey)||t.keyCode===rf&&t.ctrlKey))return t.preventDefault(),this._handlers.redo(t);if(this._handlers.undo&&t.keyCode===Wr&&(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={}}}fe.HTMLMaskElement=Mt;class Yr extends Mt{constructor(t){super(t),this.input=t}get _unsafeSelectionStart(){return this.input.selectionStart!=null?this.input.selectionStart:this.value.length}get _unsafeSelectionEnd(){return this.input.selectionEnd}_unsafeSelect(t,n){this.input.setSelectionRange(t,n)}get value(){return this.input.value}set value(t){this.input.value=t}}fe.HTMLMaskElement=Mt;class Pn extends Mt{get _unsafeSelectionStart(){const t=this.rootElement,n=t.getSelection&&t.getSelection(),o=n&&n.anchorOffset,l=n&&n.focusOffset;return l==null||o==null||o<l?o:l}get _unsafeSelectionEnd(){const t=this.rootElement,n=t.getSelection&&t.getSelection(),o=n&&n.anchorOffset,l=n&&n.focusOffset;return l==null||o==null||o>l?o:l}_unsafeSelect(t,n){if(!this.rootElement.createRange)return;const o=this.rootElement.createRange();o.setStart(this.input.firstChild||this.input,t),o.setEnd(this.input.lastChild||this.input,n);const l=this.rootElement,a=l.getSelection&&l.getSelection();a&&(a.removeAllRanges(),a.addRange(o))}get value(){return this.input.textContent||""}set value(t){this.input.textContent=t}}fe.HTMLContenteditableMaskElement=Pn;class fn{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>fn.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}}fn.MAX_LENGTH=100;class Zr{constructor(t,n){this.el=t instanceof pn?t:t.isContentEditable&&t.tagName!=="INPUT"&&t.tagName!=="TEXTAREA"?new Pn(t):new Yr(t),this.masked=Je(n),this._listeners={},this._value="",this._unmaskedValue="",this._rawInputValue="",this.history=new fn,this._saveSelection=this._saveSelection.bind(this),this._onInput=this._onInput.bind(this),this._onChange=this._onChange.bind(this),this._onDrop=this._onDrop.bind(this),this._onFocus=this._onFocus.bind(this),this._onClick=this._onClick.bind(this),this._onUndo=this._onUndo.bind(this),this._onRedo=this._onRedo.bind(this),this.alignCursor=this.alignCursor.bind(this),this.alignCursorFriendly=this.alignCursorFriendly.bind(this),this._bindEvents(),this.updateValue(),this._onChange()}maskEquals(t){var n;return t==null||((n=this.masked)==null?void 0:n.maskEquals(t))}get mask(){return this.masked.mask}set mask(t){if(this.maskEquals(t))return;if(!(t instanceof fe.Masked)&&this.masked.constructor===Gr(t)){this.masked.updateOptions({mask:t});return}const n=t instanceof fe.Masked?t:Je({mask:t});n.unmaskedValue=this.masked.unmaskedValue,this.masked=n}get value(){return this._value}set value(t){this.value!==t&&(this.masked.value=t,this.updateControl("auto"))}get unmaskedValue(){return this._unmaskedValue}set unmaskedValue(t){this.unmaskedValue!==t&&(this.masked.unmaskedValue=t,this.updateControl("auto"))}get rawInputValue(){return this._rawInputValue}set rawInputValue(t){this.rawInputValue!==t&&(this.masked.rawInputValue=t,this.updateControl(),this.alignCursor())}get typedValue(){return this.masked.typedValue}set typedValue(t){this.masked.typedValueEquals(t)||(this.masked.typedValue=t,this.updateControl("auto"))}get displayValue(){return this.masked.displayValue}_bindEvents(){this.el.bindEvents({selectionChange:this._saveSelection,input:this._onInput,drop:this._onDrop,click:this._onClick,focus:this._onFocus,commit:this._onChange,undo:this._onUndo,redo:this._onRedo})}_unbindEvents(){this.el&&this.el.unbindEvents()}_fireEvent(t,n){const o=this._listeners[t];o&&o.forEach(l=>l(n))}get selectionStart(){return this._cursorChanging?this._changingCursorPos:this.el.selectionStart}get cursorPos(){return this._cursorChanging?this._changingCursorPos:this.el.selectionEnd}set cursorPos(t){!this.el||!this.el.isActive||(this.el.select(t,t),this._saveSelection())}_saveSelection(){this.displayValue!==this.el.value&&console.warn("Element value was changed outside of mask. Syncronize mask using `mask.updateValue()` to work properly."),this._selection={start:this.selectionStart,end:this.cursorPos}}updateValue(){this.masked.value=this.el.value,this._value=this.masked.value,this._unmaskedValue=this.masked.unmaskedValue,this._rawInputValue=this.masked.rawInputValue}updateControl(t){const n=this.masked.unmaskedValue,o=this.masked.value,l=this.masked.rawInputValue,a=this.displayValue,s=this.unmaskedValue!==n||this.value!==o||this._rawInputValue!==l;this._unmaskedValue=n,this._value=o,this._rawInputValue=l,this.el.value!==a&&(this.el.value=a),t==="auto"?this.alignCursor():t!=null&&(this.cursorPos=t),s&&this._fireChangeEvents(),!this._historyChanging&&(s||this.history.isEmpty)&&this.history.push({unmaskedValue:n,selection:{start:this.selectionStart,end:this.cursorPos}})}updateOptions(t){const{mask:n,...o}=t,l=!this.maskEquals(n),a=this.masked.optionsIsChanged(o);l&&(this.mask=n),a&&this.masked.updateOptions(o),(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,re.LEFT))}alignCursorFriendly(){this.selectionStart===this.cursorPos&&this.alignCursor()}on(t,n){return this._listeners[t]||(this._listeners[t]=[]),this._listeners[t].push(n),this}off(t,n){if(!this._listeners[t])return this;if(!n)return delete this._listeners[t],this;const o=this._listeners[t].indexOf(n);return o>=0&&this._listeners[t].splice(o,1),this}_onInput(t){this._inputEvent=t,this._abortUpdateCursor();const n=new nf({value:this.el.value,cursorPos:this.cursorPos,oldValue:this.displayValue,oldSelection:this._selection}),o=this.masked.rawInputValue,l=this.masked.splice(n.startChangePos,n.removed.length,n.inserted,n.removeDirection,{input:!0,raw:!0}).offset,a=o===this.masked.rawInputValue?n.removeDirection:re.NONE;let s=this.masked.nearestInputPos(n.startChangePos+l,a);a!==re.NONE&&(s=this.masked.nearestInputPos(s,re.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}}fe.InputMask=Zr;class he{static normalize(t){return Array.isArray(t)?t:[t,new he]}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}}fe.ChangeDetails=he;class Qe{constructor(t,n,o){t===void 0&&(t=""),n===void 0&&(n=0),this.value=t,this.from=n,this.stop=o}toString(){return this.value}extend(t){this.value+=String(t)}appendTo(t){return t.append(this.toString(),{tail:!0}).aggregate(t._appendPlaceholder())}get state(){return{value:this.value,from:this.from,stop:this.stop}}set state(t){Object.assign(this,t)}unshift(t){if(!this.value.length||t!=null&&this.from>=t)return"";const n=this.value[0];return this.value=this.value.slice(1),n}shift(){if(!this.value.length)return"";const t=this.value[this.value.length-1];return this.value=this.value.slice(0,-1),t}}class Ne{constructor(t){this._value="",this._update({...Ne.DEFAULTS,...t}),this._initialized=!0}updateOptions(t){this.optionsIsChanged(t)&&this.withValueRefresh(this._update.bind(this,t))}_update(t){Object.assign(this,t)}get state(){return{_value:this.value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value}reset(){this._value=""}get value(){return this._value}set value(t){this.resolve(t,{input:!0})}resolve(t,n){n===void 0&&(n={input:!0}),this.reset(),this.append(t,n,""),this.doCommit()}get unmaskedValue(){return this.value}set unmaskedValue(t){this.resolve(t,{})}get typedValue(){return this.parse?this.parse(this.value,this):this.unmaskedValue}set typedValue(t){this.format?this.value=this.format(t,this):this.unmaskedValue=String(t)}get rawInputValue(){return this.extractInput(0,this.displayValue.length,{raw:!0})}set rawInputValue(t){this.resolve(t,{raw:!0})}get displayValue(){return this.value}get isComplete(){return!0}get isFilled(){return this.isComplete}nearestInputPos(t,n){return t}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),Math.min(this.displayValue.length,n-t)}extractInput(t,n,o){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),this.displayValue.slice(t,n)}extractTail(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),new Qe(this.extractInput(t,n),t)}appendTail(t){return pt(t)&&(t=new Qe(String(t))),t.appendTo(this)}_appendCharRaw(t,n){return t?(this._value+=t,new he({inserted:t,rawInserted:t})):new he}_appendChar(t,n,o){n===void 0&&(n={});const l=this.state;let a;if([t,a]=this.doPrepareChar(t,n),t&&(a=a.aggregate(this._appendCharRaw(t,n)),!a.rawInserted&&this.autofix==="pad")){const s=this.state;this.state=l;let c=this.pad(n);const i=this._appendCharRaw(t,n);c=c.aggregate(i),i.rawInserted||c.equals(a)?a=c:this.state=s}if(a.inserted){let s,c=this.doValidate(n)!==!1;if(c&&o!=null){const i=this.state;if(this.overwrite===!0){s=o.state;for(let f=0;f<a.rawInserted.length;++f)o.unshift(this.displayValue.length-a.tailShift)}let d=this.appendTail(o);if(c=d.rawInserted.length===o.toString().length,!(c&&d.inserted)&&this.overwrite==="shift"){this.state=i,s=o.state;for(let f=0;f<a.rawInserted.length;++f)o.shift();d=this.appendTail(o),c=d.rawInserted.length===o.toString().length}c&&d.inserted&&(this.state=i)}c||(a=new he,this.state=l,o&&s&&(o.state=s))}return a}_appendPlaceholder(){return new he}_appendEager(){return new he}append(t,n,o){if(!pt(t))throw new Error("value should be string");const l=pt(o)?new Qe(String(o)):o;n!=null&&n.tail&&(n._beforeTailState=this.state);let a;[t,a]=this.doPrepare(t,n);for(let s=0;s<t.length;++s){const c=this._appendChar(t[s],n,l);if(!c.rawInserted&&!this.doSkipInvalid(t[s],n,l))break;a.aggregate(c)}return(this.eager===!0||this.eager==="append")&&n!=null&&n.input&&t&&a.aggregate(this._appendEager()),l!=null&&(a.tailShift+=this.appendTail(l).tailShift),a}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),this._value=this.displayValue.slice(0,t)+this.displayValue.slice(n),new he}withValueRefresh(t){if(this._refreshing||!this._initialized)return t();this._refreshing=!0;const n=this.rawInputValue,o=this.value,l=t();return this.rawInputValue=n,this.value&&this.value!==o&&o.indexOf(this.value)===0&&(this.append(o.slice(this.displayValue.length),{},""),this.doCommit()),delete this._refreshing,l}runIsolated(t){if(this._isolated||!this._initialized)return t(this);this._isolated=!0;const n=this.state,o=t(this);return this.state=n,delete this._isolated,o}doSkipInvalid(t,n,o){return!!this.skipInvalid}doPrepare(t,n){return n===void 0&&(n={}),he.normalize(this.prepare?this.prepare(t,this,n):t)}doPrepareChar(t,n){return n===void 0&&(n={}),he.normalize(this.prepareChar?this.prepareChar(t,this,n):t)}doValidate(t){return(!this.validate||this.validate(this.value,this,t))&&(!this.parent||this.parent.doValidate(t))}doCommit(){this.commit&&this.commit(this.value,this)}splice(t,n,o,l,a){o===void 0&&(o=""),l===void 0&&(l=re.NONE),a===void 0&&(a={input:!0});const s=t+n,c=this.extractTail(s),i=this.eager===!0||this.eager==="remove";let d;i&&(l=Kr(l),d=this.extractInput(0,s,{raw:!0}));let f=t;const h=new he;if(l!==re.NONE&&(f=this.nearestInputPos(t,n>1&&t!==0&&!i?re.NONE:l),h.tailShift=f-t),h.aggregate(this.remove(f)),i&&l!==re.NONE&&d===this.rawInputValue)if(l===re.FORCE_LEFT){let w;for(;d===this.rawInputValue&&(w=this.displayValue.length);)h.aggregate(new he({tailShift:-1})).aggregate(this.remove(w-1))}else l===re.FORCE_RIGHT&&c.unshift();return h.aggregate(this.append(o,a,c))}maskEquals(t){return this.mask===t}optionsIsChanged(t){return!un(this,t)}typedValueEquals(t){const n=this.typedValue;return t===n||Ne.EMPTY_VALUES.includes(t)&&Ne.EMPTY_VALUES.includes(n)||(this.format?this.format(t,this)===this.format(this.typedValue,this):!1)}pad(t){return new he}}Ne.DEFAULTS={skipInvalid:!0},Ne.EMPTY_VALUES=[void 0,null,""],fe.Masked=Ne;class ft{constructor(t,n){t===void 0&&(t=[]),n===void 0&&(n=0),this.chunks=t,this.from=n}toString(){return this.chunks.map(String).join("")}extend(t){if(!String(t))return;t=pt(t)?new Qe(String(t)):t;const n=this.chunks[this.chunks.length-1],o=n&&(n.stop===t.stop||t.stop==null)&&t.from===n.from+n.toString().length;if(t instanceof Qe)o?n.extend(t.toString()):this.chunks.push(t);else if(t instanceof ft){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 fe.MaskedPattern))return new Qe(this.toString()).appendTo(t);const n=new he;for(let o=0;o<this.chunks.length;++o){const l=this.chunks[o],a=t._mapPosToBlock(t.displayValue.length),s=l.stop;let c;if(s!=null&&(!a||a.index<=s)&&((l instanceof ft||t._stops.indexOf(s)>=0)&&n.aggregate(t._appendPlaceholder(s)),c=l instanceof ft&&t._blocks[s]),c){const i=c.appendTail(l);n.aggregate(i);const d=l.toString().slice(i.rawInserted.length);d&&n.aggregate(t.append(d,{tail:!0}))}else n.aggregate(t.append(l.toString(),{tail:!0}))}return n}get state(){return{chunks:this.chunks.map(t=>t.state),from:this.from,stop:this.stop,blockIndex:this.blockIndex}}set state(t){const{chunks:n,...o}=t;Object.assign(this,o),this.chunks=n.map(l=>{const a="chunks"in l?new ft:new Qe;return a.state=l,a})}unshift(t){if(!this.chunks.length||t!=null&&this.from>=t)return"";const n=t!=null?t-this.from:t;let o=0;for(;o<this.chunks.length;){const l=this.chunks[o],a=l.unshift(n);if(l.toString()){if(!a)break;++o}else this.chunks.splice(o,1);if(a)return a}return""}shift(){if(!this.chunks.length)return"";let t=this.chunks.length-1;for(;0<=t;){const n=this.chunks[t],o=n.shift();if(n.toString()){if(!o)break;--t}else this.chunks.splice(t,1);if(o)return o}return""}}class of{constructor(t,n){this.masked=t,this._log=[];const{offset:o,index:l}=t._mapPosToBlock(n)||(n<0?{index:0,offset:0}:{index:this.masked._blocks.length,offset:0});this.offset=o,this.index=l,this.ok=!1}get block(){return this.masked._blocks[this.index]}get pos(){return this.masked._blockStartPos(this.index)+this.offset}get state(){return{index:this.index,offset:this.offset,ok:this.ok}}set state(t){Object.assign(this,t)}pushState(){this._log.push(this.state)}popState(){const t=this._log.pop();return t&&(this.state=t),t}bindBlock(){this.block||(this.index<0&&(this.index=0,this.offset=0),this.index>=this.masked._blocks.length&&(this.index=this.masked._blocks.length-1,this.offset=this.block.displayValue.length))}_pushLeft(t){for(this.pushState(),this.bindBlock();0<=this.index;--this.index,this.offset=((n=this.block)==null?void 0:n.displayValue.length)||0){var n;if(t())return this.ok=!0}return this.ok=!1}_pushRight(t){for(this.pushState(),this.bindBlock();this.index<this.masked._blocks.length;++this.index,this.offset=0)if(t())return this.ok=!0;return this.ok=!1}pushLeftBeforeFilled(){return this._pushLeft(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,re.FORCE_LEFT),this.offset!==0))return!0})}pushLeftBeforeInput(){return this._pushLeft(()=>{if(!this.block.isFixed)return this.offset=this.block.nearestInputPos(this.offset,re.LEFT),!0})}pushLeftBeforeRequired(){return this._pushLeft(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,re.LEFT),!0})}pushRightBeforeFilled(){return this._pushRight(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,re.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,re.NONE),!0})}pushRightBeforeRequired(){return this._pushRight(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,re.NONE),!0})}}class jn{constructor(t){Object.assign(this,t),this._value="",this.isFixed=!0}get value(){return this._value}get unmaskedValue(){return this.isUnmasking?this.value:""}get rawInputValue(){return this._isRawInput?this.value:""}get displayValue(){return this.value}reset(){this._isRawInput=!1,this._value=""}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),this._value=this._value.slice(0,t)+this._value.slice(n),this._value||(this._isRawInput=!1),new he}nearestInputPos(t,n){n===void 0&&(n=re.NONE);const o=0,l=this._value.length;switch(n){case re.LEFT:case re.FORCE_LEFT:return o;case re.NONE:case re.RIGHT:case re.FORCE_RIGHT:default:return l}}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),this._isRawInput?n-t:0}extractInput(t,n,o){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),o===void 0&&(o={}),o.raw&&this._isRawInput&&this._value.slice(t,n)||""}get isComplete(){return!0}get isFilled(){return!!this._value}_appendChar(t,n){if(n===void 0&&(n={}),this.isFilled)return new he;const o=this.eager===!0||this.eager==="append",a=this.char===t&&(this.isUnmasking||n.input||n.raw)&&(!n.raw||!o)&&!n.tail,s=new he({inserted:this.char,rawInserted:a?this.char:""});return this._value=this.char,this._isRawInput=a&&(n.raw||n.input),s}_appendEager(){return this._appendChar(this.char,{tail:!0})}_appendPlaceholder(){const t=new he;return this.isFilled||(this._value=t.inserted=this.char),t}extractTail(){return new Qe("")}appendTail(t){return pt(t)&&(t=new Qe(String(t))),t.appendTo(this)}append(t,n,o){const l=this._appendChar(t[0],n);return o!=null&&(l.tailShift+=this.appendTail(o).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 Lt{constructor(t){const{parent:n,isOptional:o,placeholderChar:l,displayChar:a,lazy:s,eager:c,...i}=t;this.masked=Je(i),Object.assign(this,{parent:n,isOptional:o,placeholderChar:l,displayChar:a,lazy:s,eager:c})}reset(){this.isFilled=!1,this.masked.reset()}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),t===0&&n>=1?(this.isFilled=!1,this.masked.remove(t,n)):new he}get value(){return this.masked.value||(this.isFilled&&!this.isOptional?this.placeholderChar:"")}get unmaskedValue(){return this.masked.unmaskedValue}get rawInputValue(){return this.masked.rawInputValue}get displayValue(){return this.masked.value&&this.displayChar||this.value}get isComplete(){return!!this.masked.value||this.isOptional}_appendChar(t,n){if(n===void 0&&(n={}),this.isFilled)return new he;const o=this.masked.state;let l=this.masked._appendChar(t,this.currentMaskFlags(n));return l.inserted&&this.doValidate(n)===!1&&(l=new he,this.masked.state=o),!l.inserted&&!this.isOptional&&!this.lazy&&!n.input&&(l.inserted=this.placeholderChar),l.skip=!l.inserted&&!this.isOptional,this.isFilled=!!l.inserted,l}append(t,n,o){return this.masked.append(t,this.currentMaskFlags(n),o)}_appendPlaceholder(){return this.isFilled||this.isOptional?new he:(this.isFilled=!0,new he({inserted:this.placeholderChar}))}_appendEager(){return new he}extractTail(t,n){return this.masked.extractTail(t,n)}appendTail(t){return this.masked.appendTail(t)}extractInput(t,n,o){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),this.masked.extractInput(t,n,o)}nearestInputPos(t,n){n===void 0&&(n=re.NONE);const o=0,l=this.value.length,a=Math.min(Math.max(t,o),l);switch(n){case re.LEFT:case re.FORCE_LEFT:return this.isComplete?a:o;case re.RIGHT:case re.FORCE_RIGHT:return this.isComplete?a:l;case re.NONE:default:return a}}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),this.value.slice(t,n).length}doValidate(t){return this.masked.doValidate(this.currentMaskFlags(t))&&(!this.parent||this.parent.doValidate(this.currentMaskFlags(t)))}doCommit(){this.masked.doCommit()}get state(){return{_value:this.value,_rawInputValue:this.rawInputValue,masked:this.masked.state,isFilled:this.isFilled}}set state(t){this.masked.state=t.masked,this.isFilled=t.isFilled}currentMaskFlags(t){var n;return{...t,_beforeTailState:(t==null||(n=t._beforeTailState)==null?void 0:n.masked)||t?._beforeTailState}}pad(t){return new he}}Lt.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 Xr extends Ne{updateOptions(t){super.updateOptions(t)}_update(t){const n=t.mask;n&&(t.validate=o=>o.search(n)>=0),super._update(t)}}fe.MaskedRegExp=Xr;class Ae extends Ne{constructor(t){super({...Ae.DEFAULTS,...t,definitions:Object.assign({},Lt.DEFAULT_DEFINITIONS,t?.definitions)})}updateOptions(t){super.updateOptions(t)}_update(t){t.definitions=Object.assign({},this.definitions,t.definitions),super._update(t),this._rebuildMask()}_rebuildMask(){const t=this.definitions;this._blocks=[],this.exposeBlock=void 0,this._stops=[],this._maskedBlocks={};const n=this.mask;if(!n||!t)return;let o=!1,l=!1;for(let a=0;a<n.length;++a){if(this.blocks){const d=n.slice(a),f=Object.keys(this.blocks).filter(w=>d.indexOf(w)===0);f.sort((w,p)=>p.length-w.length);const h=f[0];if(h){const{expose:w,repeat:p,...u}=$t(this.blocks[h]),g={lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,overwrite:this.overwrite,autofix:this.autofix,...u,repeat:p,parent:this},y=p!=null?new fe.RepeatBlock(g):Je(g);y&&(this._blocks.push(y),w&&(this.exposeBlock=y),this._maskedBlocks[h]||(this._maskedBlocks[h]=[]),this._maskedBlocks[h].push(this._blocks.length-1)),a+=h.length-1;continue}}let s=n[a],c=s in t;if(s===Ae.STOP_CHAR){this._stops.push(this._blocks.length);continue}if(s==="{"||s==="}"){o=!o;continue}if(s==="["||s==="]"){l=!l;continue}if(s===Ae.ESCAPE_CHAR){if(++a,s=n[a],!s)break;c=!1}const i=c?new Lt({isOptional:l,lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,...$t(t[s]),parent:this}):new jn({char:s,eager:this.eager,isUnmasking:o});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:n,...o}=t;this._blocks.forEach((l,a)=>l.state=n[a]),super.state=o}reset(){super.reset(),this._blocks.forEach(t=>t.reset())}get isComplete(){return this.exposeBlock?this.exposeBlock.isComplete:this._blocks.every(t=>t.isComplete)}get isFilled(){return this._blocks.every(t=>t.isFilled)}get isFixed(){return this._blocks.every(t=>t.isFixed)}get isOptional(){return this._blocks.every(t=>t.isOptional)}doCommit(){this._blocks.forEach(t=>t.doCommit()),super.doCommit()}get unmaskedValue(){return this.exposeBlock?this.exposeBlock.unmaskedValue:this._blocks.reduce((t,n)=>t+=n.unmaskedValue,"")}set unmaskedValue(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.unmaskedValue=t,this.appendTail(n),this.doCommit()}else super.unmaskedValue=t}get value(){return this.exposeBlock?this.exposeBlock.value:this._blocks.reduce((t,n)=>t+=n.value,"")}set value(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.value=t,this.appendTail(n),this.doCommit()}else super.value=t}get typedValue(){return this.exposeBlock?this.exposeBlock.typedValue:super.typedValue}set typedValue(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.typedValue=t,this.appendTail(n),this.doCommit()}else super.typedValue=t}get displayValue(){return this._blocks.reduce((t,n)=>t+=n.displayValue,"")}appendTail(t){return super.appendTail(t).aggregate(this._appendPlaceholder())}_appendEager(){var t;const n=new he;let o=(t=this._mapPosToBlock(this.displayValue.length))==null?void 0:t.index;if(o==null)return n;this._blocks[o].isFilled&&++o;for(let l=o;l<this._blocks.length;++l){const a=this._blocks[l]._appendEager();if(!a.inserted)break;n.aggregate(a)}return n}_appendCharRaw(t,n){n===void 0&&(n={});const o=this._mapPosToBlock(this.displayValue.length),l=new he;if(!o)return l;for(let s=o.index,c;c=this._blocks[s];++s){var a;const i=c._appendChar(t,{...n,_beforeTailState:(a=n._beforeTailState)==null||(a=a._blocks)==null?void 0:a[s]});if(l.aggregate(i),i.consumed)break}return l}extractTail(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const o=new ft;return t===n||this._forEachBlocksInRange(t,n,(l,a,s,c)=>{const i=l.extractTail(s,c);i.stop=this._findStopBefore(a),i.from=this._blockStartPos(a),i instanceof ft&&(i.blockIndex=a),o.extend(i)}),o}extractInput(t,n,o){if(t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),o===void 0&&(o={}),t===n)return"";let l="";return this._forEachBlocksInRange(t,n,(a,s,c,i)=>{l+=a.extractInput(c,i,o)}),l}_findStopBefore(t){let n;for(let o=0;o<this._stops.length;++o){const l=this._stops[o];if(l<=t)n=l;else break}return n}_appendPlaceholder(t){const n=new he;if(this.lazy&&t==null)return n;const o=this._mapPosToBlock(this.displayValue.length);if(!o)return n;const l=o.index,a=t??this._blocks.length;return this._blocks.slice(l,a).forEach(s=>{if(!s.lazy||t!=null){var c;n.aggregate(s._appendPlaceholder((c=s._blocks)==null?void 0:c.length))}}),n}_mapPosToBlock(t){let n="";for(let o=0;o<this._blocks.length;++o){const l=this._blocks[o],a=n.length;if(n+=l.displayValue,t<=n.length)return{index:o,offset:t-a}}}_blockStartPos(t){return this._blocks.slice(0,t).reduce((n,o)=>n+=o.displayValue.length,0)}_forEachBlocksInRange(t,n,o){n===void 0&&(n=this.displayValue.length);const l=this._mapPosToBlock(t);if(l){const a=this._mapPosToBlock(n),s=a&&l.index===a.index,c=l.offset,i=a&&s?a.offset:this._blocks[l.index].displayValue.length;if(o(this._blocks[l.index],l.index,c,i),a&&!s){for(let d=l.index+1;d<a.index;++d)o(this._blocks[d],d,0,this._blocks[d].displayValue.length);o(this._blocks[a.index],a.index,0,a.offset)}}}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const o=super.remove(t,n);return this._forEachBlocksInRange(t,n,(l,a,s,c)=>{o.aggregate(l.remove(s,c))}),o}nearestInputPos(t,n){if(n===void 0&&(n=re.NONE),!this._blocks.length)return 0;const o=new of(this,t);if(n===re.NONE)return o.pushRightBeforeInput()||(o.popState(),o.pushLeftBeforeInput())?o.pos:this.displayValue.length;if(n===re.LEFT||n===re.FORCE_LEFT){if(n===re.LEFT){if(o.pushRightBeforeFilled(),o.ok&&o.pos===t)return t;o.popState()}if(o.pushLeftBeforeInput(),o.pushLeftBeforeRequired(),o.pushLeftBeforeFilled(),n===re.LEFT){if(o.pushRightBeforeInput(),o.pushRightBeforeRequired(),o.ok&&o.pos<=t||(o.popState(),o.ok&&o.pos<=t))return o.pos;o.popState()}return o.ok?o.pos:n===re.FORCE_LEFT?0:(o.popState(),o.ok||(o.popState(),o.ok)?o.pos:0)}return n===re.RIGHT||n===re.FORCE_RIGHT?(o.pushRightBeforeInput(),o.pushRightBeforeRequired(),o.pushRightBeforeFilled()?o.pos:n===re.FORCE_RIGHT?this.displayValue.length:(o.popState(),o.ok||(o.popState(),o.ok)?o.pos:this.nearestInputPos(t,re.LEFT))):t}totalInputPositions(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);let o=0;return this._forEachBlocksInRange(t,n,(l,a,s,c)=>{o+=l.totalInputPositions(s,c)}),o}maskedBlock(t){return this.maskedBlocks(t)[0]}maskedBlocks(t){const n=this._maskedBlocks[t];return n?n.map(o=>this._blocks[o]):[]}pad(t){const n=new he;return this._forEachBlocksInRange(0,this.displayValue.length,o=>n.aggregate(o.pad(t))),n}}Ae.DEFAULTS={...Ne.DEFAULTS,lazy:!0,placeholderChar:"_"},Ae.STOP_CHAR="`",Ae.ESCAPE_CHAR="\\",Ae.InputDefinition=Lt,Ae.FixedDefinition=jn,fe.MaskedPattern=Ae;class Tt extends Ae{get _matchFrom(){return this.maxLength-String(this.from).length}constructor(t){super(t)}updateOptions(t){super.updateOptions(t)}_update(t){const{to:n=this.to||0,from:o=this.from||0,maxLength:l=this.maxLength||0,autofix:a=this.autofix,...s}=t;this.to=n,this.from=o,this.maxLength=Math.max(String(n).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 n="",o="";const[,l,a]=t.match(/^(\D*)(\d*)(\D*)/)||[];return a&&(n="0".repeat(l.length)+a,o="9".repeat(l.length)+a),n=n.padEnd(this.maxLength,"0"),o=o.padEnd(this.maxLength,"9"),[n,o]}doPrepareChar(t,n){n===void 0&&(n={});let o;return[t,o]=super.doPrepareChar(t.replace(/\D/g,""),n),t||(o.skip=!this.isComplete),[t,o]}_appendCharRaw(t,n){if(n===void 0&&(n={}),!this.autofix||this.value.length+1>this.maxLength)return super._appendCharRaw(t,n);const o=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(o[this.value.length],n):Number(a)>this.to?!n.tail&&this.autofix==="pad"&&this.value.length+1<this.maxLength?super._appendCharRaw(o[this.value.length],n).aggregate(this._appendCharRaw(t,n)):super._appendCharRaw(l[this.value.length],n):super._appendCharRaw(t,n)}doValidate(t){const n=this.value;if(n.search(/[^0]/)===-1&&n.length<=this._matchFrom)return!0;const[l,a]=this.boundaries(n);return this.from<=Number(a)&&Number(l)<=this.to&&super.doValidate(t)}pad(t){const n=new he;if(this.value.length===this.maxLength)return n;const o=this.value,l=this.maxLength-this.value.length;if(l){this.reset();for(let a=0;a<l;++a)n.aggregate(super._appendCharRaw("0",t));o.split("").forEach(a=>this._appendCharRaw(a))}return n}}fe.MaskedRange=Tt;const lf="d{.}`m{.}`Y";class et extends Ae{static extractPatternOptions(t){const{mask:n,pattern:o,...l}=t;return{...l,mask:pt(n)?n:o}}constructor(t){super(et.extractPatternOptions({...et.DEFAULTS,...t}))}updateOptions(t){super.updateOptions(t)}_update(t){const{mask:n,pattern:o,blocks:l,...a}={...et.DEFAULTS,...t},s=Object.assign({},et.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:pt(n)?n:o,blocks:s})}doValidate(t){const n=this.date;return super.doValidate(t)&&(!this.isComplete||this.isDateExist(this.value)&&n!=null&&(this.min==null||this.min<=n)&&(this.max==null||n<=this.max))}isDateExist(t){return this.format(this.parse(t,this),this).indexOf(t)>=0}get date(){return this.typedValue}set date(t){this.typedValue=t}get typedValue(){return this.isComplete?super.typedValue:null}set typedValue(t){super.typedValue=t}maskEquals(t){return t===Date||super.maskEquals(t)}optionsIsChanged(t){return super.optionsIsChanged(et.extractPatternOptions(t))}}et.GET_DEFAULT_BLOCKS=()=>({d:{mask:Tt,from:1,to:31,maxLength:2},m:{mask:Tt,from:1,to:12,maxLength:2},Y:{mask:Tt,from:1900,to:9999}}),et.DEFAULTS={...Ae.DEFAULTS,mask:Date,pattern:lf,format:(r,t)=>{if(!r)return"";const n=String(r.getDate()).padStart(2,"0"),o=String(r.getMonth()+1).padStart(2,"0"),l=r.getFullYear();return[n,o,l].join(".")},parse:(r,t)=>{const[n,o,l]=r.split(".").map(Number);return new Date(l,o-1,n)}},fe.MaskedDate=et;class It extends Ne{constructor(t){super({...It.DEFAULTS,...t}),this.currentMask=void 0}updateOptions(t){super.updateOptions(t)}_update(t){super._update(t),"mask"in t&&(this.exposeMask=void 0,this.compiledMasks=Array.isArray(t.mask)?t.mask.map(n=>{const{expose:o,...l}=$t(n),a=Je({overwrite:this._overwrite,eager:this._eager,skipInvalid:this._skipInvalid,...l});return o&&(this.exposeMask=a),a}):[])}_appendCharRaw(t,n){n===void 0&&(n={});const o=this._applyDispatch(t,n);return this.currentMask&&o.aggregate(this.currentMask._appendChar(t,this.currentMaskFlags(n))),o}_applyDispatch(t,n,o){t===void 0&&(t=""),n===void 0&&(n={}),o===void 0&&(o="");const l=n.tail&&n._beforeTailState!=null?n._beforeTailState._value:this.value,a=this.rawInputValue,s=n.tail&&n._beforeTailState!=null?n._beforeTailState._rawInputValue:a,c=a.slice(s.length),i=this.currentMask,d=new he,f=i?.state;return this.currentMask=this.doDispatch(t,{...n},o),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)):f&&(this.currentMask.state=f)),d}_appendPlaceholder(){const t=this._applyDispatch();return this.currentMask&&t.aggregate(this.currentMask._appendPlaceholder()),t}_appendEager(){const t=this._applyDispatch();return this.currentMask&&t.aggregate(this.currentMask._appendEager()),t}appendTail(t){const n=new he;return t&&n.aggregate(this._applyDispatch("",{},t)),n.aggregate(this.currentMask?this.currentMask.appendTail(t):super.appendTail(t))}currentMaskFlags(t){var n,o;return{...t,_beforeTailState:((n=t._beforeTailState)==null?void 0:n.currentMaskRef)===this.currentMask&&((o=t._beforeTailState)==null?void 0:o.currentMask)||t._beforeTailState}}doDispatch(t,n,o){return n===void 0&&(n={}),o===void 0&&(o=""),this.dispatch(t,this,n,o)}doValidate(t){return super.doValidate(t)&&(!this.currentMask||this.currentMask.doValidate(this.currentMaskFlags(t)))}doPrepare(t,n){n===void 0&&(n={});let[o,l]=super.doPrepare(t,n);if(this.currentMask){let a;[o,a]=super.doPrepare(o,this.currentMaskFlags(n)),l=l.aggregate(a)}return[o,l]}doPrepareChar(t,n){n===void 0&&(n={});let[o,l]=super.doPrepareChar(t,n);if(this.currentMask){let a;[o,a]=super.doPrepareChar(o,this.currentMaskFlags(n)),l=l.aggregate(a)}return[o,l]}reset(){var t;(t=this.currentMask)==null||t.reset(),this.compiledMasks.forEach(n=>n.reset())}get value(){return this.exposeMask?this.exposeMask.value:this.currentMask?this.currentMask.value:""}set value(t){this.exposeMask?(this.exposeMask.value=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.value=t}get unmaskedValue(){return this.exposeMask?this.exposeMask.unmaskedValue:this.currentMask?this.currentMask.unmaskedValue:""}set unmaskedValue(t){this.exposeMask?(this.exposeMask.unmaskedValue=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.unmaskedValue=t}get typedValue(){return this.exposeMask?this.exposeMask.typedValue:this.currentMask?this.currentMask.typedValue:""}set typedValue(t){if(this.exposeMask){this.exposeMask.typedValue=t,this.currentMask=this.exposeMask,this._applyDispatch();return}let n=String(t);this.currentMask&&(this.currentMask.typedValue=t,n=this.currentMask.unmaskedValue),this.unmaskedValue=n}get displayValue(){return this.currentMask?this.currentMask.displayValue:""}get isComplete(){var t;return!!((t=this.currentMask)!=null&&t.isComplete)}get isFilled(){var t;return!!((t=this.currentMask)!=null&&t.isFilled)}remove(t,n){const o=new he;return this.currentMask&&o.aggregate(this.currentMask.remove(t,n)).aggregate(this._applyDispatch()),o}get state(){var t;return{...super.state,_rawInputValue:this.rawInputValue,compiledMasks:this.compiledMasks.map(n=>n.state),currentMaskRef:this.currentMask,currentMask:(t=this.currentMask)==null?void 0:t.state}}set state(t){const{compiledMasks:n,currentMaskRef:o,currentMask:l,...a}=t;n&&this.compiledMasks.forEach((s,c)=>s.state=n[c]),o!=null&&(this.currentMask=o,this.currentMask.state=l),super.state=a}extractInput(t,n,o){return this.currentMask?this.currentMask.extractInput(t,n,o):""}extractTail(t,n){return this.currentMask?this.currentMask.extractTail(t,n):super.extractTail(t,n)}doCommit(){this.currentMask&&this.currentMask.doCommit(),super.doCommit()}nearestInputPos(t,n){return this.currentMask?this.currentMask.nearestInputPos(t,n):super.nearestInputPos(t,n)}get overwrite(){return this.currentMask?this.currentMask.overwrite:this._overwrite}set overwrite(t){this._overwrite=t}get eager(){return this.currentMask?this.currentMask.eager:this._eager}set eager(t){this._eager=t}get skipInvalid(){return this.currentMask?this.currentMask.skipInvalid:this._skipInvalid}set skipInvalid(t){this._skipInvalid=t}get autofix(){return this.currentMask?this.currentMask.autofix:this._autofix}set autofix(t){this._autofix=t}maskEquals(t){return Array.isArray(t)?this.compiledMasks.every((n,o)=>{if(!t[o])return;const{mask:l,...a}=t[o];return un(n,a)&&n.maskEquals(l)}):super.maskEquals(t)}typedValueEquals(t){var n;return!!((n=this.currentMask)!=null&&n.typedValueEquals(t))}}It.DEFAULTS={...Ne.DEFAULTS,dispatch:(r,t,n,o)=>{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,re.FORCE_LEFT);return s.rawInputValue!==l?(s.reset(),s.append(l,{raw:!0})):i||s.remove(d),s.append(r,t.currentMaskFlags(n)),s.appendTail(o),{index:c,weight:s.rawInputValue.length,totalInputPositions:s.totalInputPositions(0,Math.max(d,s.nearestInputPos(s.displayValue.length,re.FORCE_LEFT)))}});return a.sort((s,c)=>c.weight-s.weight||c.totalInputPositions-s.totalInputPositions),t.compiledMasks[a[0].index]}},fe.MaskedDynamic=It;class Rt extends Ae{constructor(t){super({...Rt.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){const{enum:n,...o}=t;if(n){const l=n.map(c=>c.length),a=Math.min(...l),s=Math.max(...l)-a;o.mask="*".repeat(a),s&&(o.mask+="["+"*".repeat(s)+"]"),this.enum=n}super._update(o)}_appendCharRaw(t,n){n===void 0&&(n={});const o=Math.min(this.nearestInputPos(0,re.FORCE_RIGHT),this.value.length),l=this.enum.filter(a=>this.matchValue(a,this.unmaskedValue+t,o));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,n))});const a=super._appendCharRaw(l[0][this.value.length],n);return l.length===1&&l[0].slice(this.unmaskedValue.length).split("").forEach(s=>a.aggregate(super._appendCharRaw(s))),a}return new he({skip:!this.isComplete})}extractTail(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),new Qe("",t)}remove(t,n){if(t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),t===n)return new he;const o=Math.min(super.nearestInputPos(0,re.FORCE_RIGHT),this.value.length);let l;for(l=t;l>=0&&!(this.enum.filter(c=>this.matchValue(c,this.value.slice(o,l),o)).length>1);--l);const a=super.remove(l,n);return a.tailShift+=l-t,a}get isComplete(){return this.enum.indexOf(this.value)>=0}}Rt.DEFAULTS={...Ae.DEFAULTS,matchValue:(r,t,n)=>r.indexOf(t,n)===n},fe.MaskedEnum=Rt;class Jr extends Ne{updateOptions(t){super.updateOptions(t)}_update(t){super._update({...t,validate:t.mask})}}fe.MaskedFunction=Jr;var Qr;class Te extends Ne{constructor(t){super({...Te.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){super._update(t),this._updateRegExps()}_updateRegExps(){const t="^"+(this.allowNegative?"[+|\\-]?":""),n="\\d*",o=(this.scale?"("+zn(this.radix)+"\\d{0,"+this.scale+"})?":"")+"$";this._numberRegExp=new RegExp(t+n+o),this._mapToRadixRegExp=new RegExp("["+this.mapToRadix.map(zn).join("")+"]","g"),this._thousandsSeparatorRegExp=new RegExp(zn(this.thousandsSeparator),"g")}_removeThousandsSeparators(t){return t.replace(this._thousandsSeparatorRegExp,"")}_insertThousandsSeparators(t){const n=t.split(this.radix);return n[0]=n[0].replace(/\B(?=(\d{3})+(?!\d))/g,this.thousandsSeparator),n.join(this.radix)}doPrepareChar(t,n){n===void 0&&(n={});const[o,l]=super.doPrepareChar(this._removeThousandsSeparators(this.scale&&this.mapToRadix.length&&(n.input&&n.raw||!n.input&&!n.raw)?t.replace(this._mapToRadixRegExp,this.radix):t),n);return t&&!o&&(l.skip=!0),o&&!this.allowPositive&&!this.value&&o!=="-"&&l.aggregate(this._appendChar("-")),[o,l]}_separatorsCount(t,n){n===void 0&&(n=!1);let o=0;for(let l=0;l<t;++l)this._value.indexOf(this.thousandsSeparator,l)===l&&(++o,n&&(t+=this.thousandsSeparator.length));return o}_separatorsCountFromSlice(t){return t===void 0&&(t=this._value),this._separatorsCount(this._removeThousandsSeparators(t).length,!0)}extractInput(t,n,o){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),[t,n]=this._adjustRangeWithSeparators(t,n),this._removeThousandsSeparators(super.extractInput(t,n,o))}_appendCharRaw(t,n){n===void 0&&(n={});const o=n.tail&&n._beforeTailState?n._beforeTailState._value:this._value,l=this._separatorsCountFromSlice(o);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 w;this.min!=null&&this.min<0&&this.number<this.min&&(w=this.min),this.max!=null&&this.max>0&&this.number>this.max&&(w=this.max),w!=null&&(this.autofix?(this._value=this.format(w,this).replace(Te.UNMASKED_RADIX,this.radix),i||(i=a===this._value&&!n.tail)):c=!1),c&&(c=!!this._value.match(this._numberRegExp))}let d;c?d=new he({inserted:this._value.slice(a.length),rawInserted:i?"":t,skip:i}):(this._value=a,d=new he),this._value=this._insertThousandsSeparators(this._value);const f=n.tail&&n._beforeTailState?n._beforeTailState._value:this._value,h=this._separatorsCountFromSlice(f);return d.tailShift+=(h-l)*this.thousandsSeparator.length,d}_findSeparatorAround(t){if(this.thousandsSeparator){const n=t-this.thousandsSeparator.length+1,o=this.value.indexOf(this.thousandsSeparator,n);if(o<=t)return o}return-1}_adjustRangeWithSeparators(t,n){const o=this._findSeparatorAround(t);o>=0&&(t=o);const l=this._findSeparatorAround(n);return l>=0&&(n=l+this.thousandsSeparator.length),[t,n]}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),[t,n]=this._adjustRangeWithSeparators(t,n);const o=this.value.slice(0,t),l=this.value.slice(n),a=this._separatorsCount(o.length);this._value=this._insertThousandsSeparators(this._removeThousandsSeparators(o+l));const s=this._separatorsCountFromSlice(o);return new he({tailShift:(s-a)*this.thousandsSeparator.length})}nearestInputPos(t,n){if(!this.thousandsSeparator)return t;switch(n){case re.NONE:case re.LEFT:case re.FORCE_LEFT:{const o=this._findSeparatorAround(t-1);if(o>=0){const l=o+this.thousandsSeparator.length;if(t<l||this.value.length<=l||n===re.FORCE_LEFT)return o}break}case re.RIGHT:case re.FORCE_RIGHT:{const o=this._findSeparatorAround(t);if(o>=0)return o+this.thousandsSeparator.length}}return t}doCommit(){if(this.value){const t=this.number;let n=t;this.min!=null&&(n=Math.max(n,this.min)),this.max!=null&&(n=Math.min(n,this.max)),n!==t&&(this.unmaskedValue=this.format(n,this));let o=this.value;this.normalizeZeros&&(o=this._normalizeZeros(o)),this.padFractionalZeros&&this.scale>0&&(o=this._padFractionalZeros(o)),this._value=o}super.doCommit()}_normalizeZeros(t){const n=this._removeThousandsSeparators(t).split(this.radix);return n[0]=n[0].replace(/^(\D*)(0*)(\d*)/,(o,l,a,s)=>l+s),t.length&&!/\d$/.test(n[0])&&(n[0]=n[0]+"0"),n.length>1&&(n[1]=n[1].replace(/0*$/,""),n[1].length||(n.length=1)),this._insertThousandsSeparators(n.join(this.radix))}_padFractionalZeros(t){if(!t)return t;const n=t.split(this.radix);return n.length<2&&n.push(""),n[1]=n[1].padEnd(this.scale,"0"),n.join(this.radix)}doSkipInvalid(t,n,o){n===void 0&&(n={});const l=this.scale===0&&t!==this.thousandsSeparator&&(t===this.radix||t===Te.UNMASKED_RADIX||this.mapToRadix.includes(t));return super.doSkipInvalid(t,n,o)&&!l}get unmaskedValue(){return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix,Te.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(Te.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)||Te.EMPTY_VALUES.includes(t)&&Te.EMPTY_VALUES.includes(this.typedValue))&&!(t===0&&this.value==="")}}Qr=Te,Te.UNMASKED_RADIX=".",Te.EMPTY_VALUES=[...Ne.EMPTY_VALUES,0],Te.DEFAULTS={...Ne.DEFAULTS,mask:Number,radix:",",thousandsSeparator:"",mapToRadix:[Qr.UNMASKED_RADIX],min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER,scale:2,normalizeZeros:!0,padFractionalZeros:!1,parse:Number,format:r=>r.toLocaleString("en-US",{useGrouping:!1,maximumFractionDigits:20})},fe.MaskedNumber=Te;const mn={MASKED:"value",UNMASKED:"unmaskedValue",TYPED:"typedValue"};function Un(r,t,n){t===void 0&&(t=mn.MASKED),n===void 0&&(n=mn.MASKED);const o=Je(r);return l=>o.runIsolated(a=>(a[t]=l,a[n]))}function eo(r,t,n,o){return Un(t,n,o)(r)}fe.PIPE_TYPE=mn,fe.createPipe=Un,fe.pipe=eo;class to extends Ae{get repeatFrom(){var t;return(t=Array.isArray(this.repeat)?this.repeat[0]:this.repeat===1/0?0:this.repeat)!=null?t:0}get repeatTo(){var t;return(t=Array.isArray(this.repeat)?this.repeat[1]:this.repeat)!=null?t:1/0}constructor(t){super(t)}updateOptions(t){super.updateOptions(t)}_update(t){var n,o,l;const{repeat:a,...s}=$t(t);this._blockOpts=Object.assign({},this._blockOpts,s);const c=Je(this._blockOpts);this.repeat=(n=(o=a??c.repeat)!=null?o:this.repeat)!=null?n:1/0,super._update({mask:"m".repeat(Math.max(this.repeatTo===1/0&&((l=this._blocks)==null?void 0:l.length)||0,this.repeatFrom)),blocks:{m: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(Je(this._blockOpts)),this.mask+="m",this._blocks[this._blocks.length-1]}_appendCharRaw(t,n){n===void 0&&(n={});const o=new he;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,f;d=(s=this._blocks[i])!=null?s:f=!f&&this._allocateBlock(i);++i){var l,a,s,c;const h=d._appendChar(t,{...n,_beforeTailState:(c=n._beforeTailState)==null||(c=c._blocks)==null?void 0:c[i]});if(h.skip&&f){this._blocks.pop(),this.mask=this.mask.slice(1);break}if(o.aggregate(h),h.consumed)break}return o}_trimEmptyTail(t,n){var o,l;t===void 0&&(t=0);const a=Math.max(((o=this._mapPosToBlock(t))==null?void 0:o.index)||0,this.repeatFrom,0);let s;n!=null&&(s=(l=this._mapPosToBlock(n))==null?void 0:l.index),s==null&&(s=this._blocks.length-1);let 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,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const o=super.remove(t,n);return this._trimEmptyTail(t,n),o}totalInputPositions(t,n){return t===void 0&&(t=0),n==null&&this.repeatTo===1/0?1/0:super.totalInputPositions(t,n)}get state(){return super.state}set state(t){this._blocks.length=t._blocks.length,this.mask=this.mask.slice(0,this._blocks.length),super.state=t}}fe.RepeatBlock=to;try{globalThis.IMask=fe}catch{}const Hn=Object.freeze(Object.defineProperty({__proto__:null,ChangeDetails:he,ChunksTailDetails:ft,DIRECTION:re,HTMLContenteditableMaskElement:Pn,HTMLInputMaskElement:Yr,HTMLMaskElement:Mt,InputMask:Zr,MaskElement:pn,Masked:Ne,MaskedDate:et,MaskedDynamic:It,MaskedEnum:Rt,MaskedFunction:Jr,MaskedNumber:Te,MaskedPattern:Ae,MaskedRange:Tt,MaskedRegExp:Xr,PIPE_TYPE:mn,PatternFixedDefinition:jn,PatternInputDefinition:Lt,RepeatBlock:to,createMask:Je,createPipe:Un,default:fe,forceDirection:Kr,normalizeOpts:$t,pipe:eo},Symbol.toStringTag,{value:"Module"})),af=async r=>{try{const t=new FormData;return t.append("unique","true"),t.append("file",r),(await(await fetch("/file/upload/uploads?id=&form=&table=",{method:"POST",body:t})).json())?.result}catch(t){console.error(t)}},sf=async(r,t,n)=>{const o=t.clipboardData?.items;if(o){const l=t.clipboardData?.getData("text/html"),a=t.clipboardData?.getData("text/plain");if(l){const{state:s,dispatch:c}=r,{tr:i}=s,d=n.fromSchema(r.state.schema),f=new DOMParser().parseFromString(l,"text/html").body,h=d.parse(f),w=i.replaceSelectionWith(h);return c(w),t.preventDefault(),!0}if(a){const{state:s,dispatch:c}=r,{tr:i}=s,d=i.insertText(a,s.selection.from,s.selection.to);return c(d),t.preventDefault(),!0}for(let s=0;s<o.length;s++){const c=o[s];if(c.type.startsWith("image/")){const i=c.getAsFile();if(i){const d=await af(i),{schema:f}=r.state,h=f.nodes.image.create({src:d?.file_path}),w=r.state.tr.replaceSelectionWith(h);return r.dispatch(w),t.preventDefault(),!0}}}}return!1},cf="https://esm.sh",ze="3.7.2",no="3.7.2",df=`?deps=@tiptap/core@${ze},@tiptap/pm@${no}`,Pe=r=>`${cf}/${r}${df}`,je={core:Pe(`@tiptap/core@${ze}`),starterKit:Pe(`@tiptap/starter-kit@${ze}`),textStyle:Pe(`@tiptap/extension-text-style@${ze}`),table:Pe(`@tiptap/extension-table@${ze}`),highlight:Pe(`@tiptap/extension-highlight@${ze}`),subscript:Pe(`@tiptap/extension-subscript@${ze}`),superscript:Pe(`@tiptap/extension-superscript@${ze}`),link:Pe(`@tiptap/extension-link@${ze}`),image:Pe(`@tiptap/extension-image@${ze}`),textAlign:Pe(`@tiptap/extension-text-align@${ze}`),heading:Pe(`@tiptap/extension-heading@${ze}`),paragraph:Pe(`@tiptap/extension-paragraph@${ze}`),pmModel:Pe(`@tiptap/pm@${no}/model`)},Ot="__vs_form_tiptap_loader__",Ue=r=>import(r),Ve=(r,t)=>r?.[t]||r?.default?.[t]||r?.default?.default?.[t]||r?.default||r,ro={1:"font-weight:700; font-size:30px;",2:"font-weight:700; font-size:26px;",3:"font-weight:700; font-size:22px;",4:"font-weight:700; font-size:18px;",5:"font-weight:500; font-size:16px;",6:"font-weight:400; font-size:14px;"},uf=r=>r.extend({addOptions(){return{...this.parent?.(),levels:[1,2,3,4,5,6]}}}).extend({addAttributes(){return{...this.parent?.(),level:{default:1,renderHTML:t=>{const n=t.level||1;return{class:`heading-level-${n}`,style:ro[n]||ro[1]}}}}}}),pf=r=>r.configure({HTMLAttributes:{style:"min-height: 1rem;"}}),ff=(r,t,n,o,l)=>{const a=t.extend({renderHTML({HTMLAttributes:s}){return["div",{style:"overflow-x: auto;"},["table",s,0]]},parseHTML(){return[{tag:"div.table-wrapper table",priority:100},{tag:"table"}]}});return r.extend({addExtensions(){return[a.configure({HTMLAttributes:{class:"editor-content"},resizable:!0}),n,o,l]}})},mf=r=>r.extend({addAttributes(){return{...this.parent?.(),fontFamily:{default:null,parseHTML:t=>t.style.fontFamily?.replace(/['"]/g,""),renderHTML:t=>t.fontFamily?{style:`font-family: ${t.fontFamily}`}:{}},fontSize:{default:null,parseHTML:t=>t.style.fontSize?.replace(/['"]/g,""),renderHTML:t=>t.fontSize?{style:`font-size: ${t.fontSize}`}:{}},color:{default:null,parseHTML:t=>t.style.color?.replace(/['"]/g,""),renderHTML:t=>t.color?{style:`color: ${t.color}`}:{}},backgroundColor:{default:null,parseHTML:t=>t.style.backgroundColor?.replace(/['"]/g,""),renderHTML:t=>!t.backgroundColor||t.backgroundColor==="transparent"?{}:{style:`background-color: ${t.backgroundColor}`}}}},addCommands(){return{setFontFamily:t=>({chain:n})=>n().setMark("textStyle",{fontFamily:t}).run(),unsetFontFamily:()=>({chain:t})=>t().setMark("textStyle",{fontFamily:null}).removeEmptyTextStyle().run(),setFontSize:t=>({chain:n})=>n().setMark("textStyle",{fontSize:t}).run(),unsetFontSize:()=>({chain:t})=>t().setMark("textStyle",{fontSize:null}).removeEmptyTextStyle().run(),setColor:t=>({chain:n})=>n().setMark("textStyle",{color:t}).run(),unsetColor:()=>({chain:t})=>t().setMark("textStyle",{color:null}).removeEmptyTextStyle().run(),setBackgroundColor:t=>({chain:n})=>n().setMark("textStyle",{backgroundColor:t}).run(),unsetBackgroundColor:()=>({chain:t})=>t().setMark("textStyle",{backgroundColor:null}).removeEmptyTextStyle().run()}}}),hf=r=>r.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 gf(){if(typeof window>"u")return null;const r=window;return r[Ot]||(r[Ot]=Promise.all([Ue(je.core),Ue(je.starterKit),Ue(je.textStyle),Ue(je.table),Ue(je.highlight),Ue(je.subscript),Ue(je.superscript),Ue(je.link),Ue(je.image),Ue(je.textAlign),Ue(je.heading),Ue(je.paragraph),Ue(je.pmModel)]).then(([t,n,o,l,a,s,c,i,d,f,h,w,p])=>{const u=Ve(t,"Editor"),g=Ve(t,"Node"),y=Ve(t,"Extension"),C=Ve(n,"StarterKit"),_=Ve(o,"TextStyle"),k=Ve(l,"TableKit"),x=Ve(l,"Table"),S=Ve(l,"TableRow"),L=Ve(l,"TableCell"),N=Ve(l,"TableHeader"),V=Ve(a,"Highlight"),A=Ve(s,"Subscript"),E=Ve(c,"Superscript"),$=Ve(i,"Link"),M=Ve(d,"Image"),R=Ve(f,"TextAlign"),D=Ve(h,"Heading"),I=Ve(w,"Paragraph"),T=Ve(p,"DOMParser");if(!u||!g||!C||!_||!k||!x||!S||!L||!N||!V||!A||!E||!$||!M||!R||!D||!I||!T)throw new Error("Failed to resolve one or more Tiptap modules");return{Editor:u,Extension:y,ProseMirrorDOMParser:T,StarterKit:C,ExtendedTextStyle:mf(_),Highlight:V,Subscript:A,Superscript:E,Link:$,Image:M,TextAlign:R,CustomHeading:uf(D),CustomParagraph:pf(I),CustomTableKit:ff(k,x,S,L,N),Iframe:hf(g)}}).catch(t=>{throw delete r[Ot],t})),r[Ot]}function yf(r){let t=!1;const n=e.shallowRef(null),o=e.ref(!1),l=e.ref(""),a=async(d,f="")=>{if(!d)return null;o.value=!0,l.value="";try{const h=await gf();if(!h)return null;const w=new h.Editor({element:d,content:f,extensions:[h.StarterKit.configure({history:{depth:100,newGroupDelay:500},code:{HTMLAttributes:{class:"editor-code"}},codeBlock:{HTMLAttributes:{class:"editor-codeblock"}},paragraph:!1,heading:!1,link:!1}),h.Superscript,h.Subscript,h.ExtendedTextStyle,h.CustomParagraph,h.CustomHeading,h.Highlight,h.Image.configure({inline:!0,allowBase64:!0,HTMLAttributes:{class:"editor-image"}}),h.TextAlign.configure({types:["heading","paragraph"]}),h.Link.configure({HTMLAttributes:{class:"editor-link"},openOnClick:!1,autolink:!0}),h.CustomTableKit,h.Iframe],editorProps:{handlePaste:(p,u)=>sf(p,u,h.ProseMirrorDOMParser),handleKeyDown:(p,u)=>{if(u.key==="Tab"){const g=p.state,{$anchor:y}=g.selection;let C=!1;for(let _=y.depth;_>0;_--){const k=y.node(_);if(k&&(k.type.name==="bulletList"||k.type.name==="orderedList")){C=!0;break}}return C?!1:(u.preventDefault(),!0)}return!1}}});return n.value=e.markRaw(w),w}catch(h){return l.value="Failed to load rich text editor dependencies.",console.error("Failed to initialize rich text editor",h),null}finally{o.value=!1}},s=e.computed(()=>n.value||null);return e.watch(n,d=>{d&&n.value.on("update",f=>{if(!t){t=!0;const h=f.editor.getHTML();r.modelValue,setTimeout(()=>{t=!1},10)}})}),{editor:n,editorInstance:s,focusEditor:()=>{n.value&&!n.value.isFocused&&n.value.commands.focus()},createEditor:a,destroyEditor:()=>{n.value&&(n.value.destroy(),n.value=null)},isLoading:o,loadError:l}}function bf(r,t,n,{toEditorContent:o,toSourceContent:l}={}){const a=e.ref(!1),s=e.ref(""),c=e.ref(null);return{isHtmlMode:a,htmlContent:s,htmlTextarea:c,toggleHtmlMode:async f=>{if(a.value=f,f)r.value&&(s.value=l?await l(r.value.getHTML(),t):r.value.getHTML()),e.nextTick(()=>{c.value&&c.value.focus?.()});else if(r.value){const h=o?await o(s.value,t):s.value;r.value.commands.setContent(h,!0),e.nextTick(()=>{r.value?.commands?.focus?.()})}},onHtmlInput:f=>{s.value=f,n&&n("update:modelValue",f)}}}function kf(){const r=e.ref(!1);return{isFullscreen:r,toggleFullscreen:()=>{r.value=!r.value}}}const mt=r=>r.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;"),zt=r=>{let t=mt(r||"");return t=t.replace(/!\[([^\]]*)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(n,o,l,a)=>{const s=a?` title="${mt(a)}"`:"";return`<img src="${mt(l)}" alt="${mt(o)}"${s}>`}),t=t.replace(/\[([^\]]+)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(n,o,l,a)=>{const s=a?` title="${mt(a)}"`:"";return`<a href="${mt(l)}"${s} target="_blank" rel="noopener noreferrer">${o}</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},Pt=r=>/^\s*\d+\.\s+/.test(r),qn=r=>/^\s*[-*+]\s+/.test(r),oo=r=>/^\s*[-*+]\s+\[[ xX]\]\s+/.test(r),Kn=r=>/^\s*>\s?/.test(r),Gn=r=>/^\s*\|?(?:\s*:?-{3,}:?\s*\|)+\s*:?-{3,}:?\s*\|?\s*$/.test(r),lo=r=>r.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(t=>zt(t.trim())),xf=(r,t)=>{const n=r[t],o=r[t+1];if(!n||!o||!n.includes("|")||!Gn(o))return null;const l=lo(n),a=[];let s=t+2;for(;s<r.length&&r[s].includes("|")&&r[s].trim()!=="";){const d=lo(r[s]);a.push(`<tr>${d.map(f=>`<td>${f}</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}},wf=(r,t)=>{const n=Pt(r[t]),o=n?"ol":"ul",l=[];let a=t;for(;a<r.length;){const s=r[a];if(s.trim()===""||!(n?Pt(s):(qn(s)||oo(s))&&!Pt(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":""}> ${zt(i[2])}</li>`)}else{const d=s.replace(/^\s*(?:[-*+]|\d+\.)\s+/,"");l.push(`<li>${zt(d)}</li>`)}a+=1}return{html:`<${o}>${l.join("")}</${o}>`,nextIndex:a}},_f=(r,t)=>{const o=r[t].replace(/^```/,"").trim(),l=[];let a=t+1;for(;a<r.length&&!r[a].startsWith("```");)l.push(r[a]),a+=1;return{html:`<pre><code${o?` class="language-${mt(o)}"`:""}>${mt(l.join(`
6
- `))}</code></pre>`,nextIndex:a<r.length?a+1:a}},vf=(r,t)=>{const n=[];let o=t;for(;o<r.length;){const l=r[o];if(l.trim()===""||l.startsWith("```")||/^#{1,6}\s+/.test(l)||/^---+$/.test(l.trim())||/^\*\*\*+$/.test(l.trim())||Kn(l)||Pt(l)||qn(l)||o+1<r.length&&l.includes("|")&&Gn(r[o+1]))break;n.push(l.trim()),o+=1}return{html:`<p>${zt(n.join(" "))}</p>`,nextIndex:o}},ao=r=>{const n=(r||"").replace(/\r\n/g,`
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 re=!1,de=!1;const ce=e.reactive({}),be=e.ref([]),De=e.computed(()=>be.value.map(p=>ce[p]).filter(Boolean)),$e=e.ref(null),et=e.computed(()=>$e.value?.entries??[]),it=e.computed(()=>{if($e.value)return{left:`${$e.value.point.x+12}px`,top:`${$e.value.point.y+12}px`}}),Ie=e.computed(()=>{if(Array.isArray(n.tools)&&n.tools.length)return n.tools;const p=l?.tools;return Array.isArray(p)?p.map(y=>String(y)):typeof p=="string"?p.split(",").map(y=>y.trim()).filter(Boolean):[]}),Be=e.computed(()=>{const p={search:!1,import:!1,export:!1,point:!1,line:!1,polygon:!1,rectangle:!1,ruler:!1};if(!Ie.value.length)return{...p,import:!0,export:!0,point:!0,line:!0,polygon:!0,rectangle:!0};const y=new Set(Ie.value.map(v=>v.toLowerCase()));return{search:y.has("search"),import:y.has("import"),export:y.has("export"),point:y.has("point"),line:y.has("line"),polygon:y.has("polygon"),rectangle:y.has("rectangle"),ruler:y.has("ruler")}});function U(p){if(typeof p!="string"||!p.trim())return"";if(/^https?:\/\//i.test(p))return p;const y=window?.location?.origin??"",v=p.replace(/^\/+/,"");return v?y?`${y}/${v}`:`/${v}`:y}function X(){const p=Array.isArray(k.basemaps)&&k.basemaps.length?k.basemaps:_.basemaps;if(Array.isArray(p)&&p.length){const v=p.map((B,$)=>{const H=String(B?.key??B?.id??B?.name??`b${$}`),te=U(String(B?.url??""));if(!te)return null;const oe=typeof B?.preview=="string"&&B.preview?U(B.preview):"";return[H,{...B,url:te,preview:oe}]}).filter(B=>Array.isArray(B)&&B.length===2).reduce((B,[$,H])=>(B[$]=H,B),{});if(Object.keys(v).length)return v}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 ee=X(),ae=Object.keys(ee),ie=e.ref(ae.length?ae[0]:"");async function Ce(){if(typeof window>"u")return null;const p=window;if(p[Xt])return p[Xt];const y=H=>{if(Array.from(document.styleSheets).some(Se=>Se?.href?.includes(H)))return;const oe=document.createElement("link");oe.rel="stylesheet",oe.href=H,document.head.appendChild(oe)},v=async()=>{const H=new Function("u","return import(u)"),te=await H("https://esm.sh/maplibre-gl@3.6.2"),oe=te?.default??te;if(!oe)throw new Error("maplibre esm fallback failed");window.maplibregl=oe,window.mapboxgl=oe;const Se=await H("https://esm.sh/@mapbox/mapbox-gl-draw@1.5.0"),Ke=Se?.default??Se;if(!Ke)throw new Error("mapbox draw esm fallback failed");window.MapboxDraw=Ke},$=(async()=>{y("https://unpkg.com/maplibre-gl@3.6.2/dist/maplibre-gl.css"),y("https://unpkg.com/@mapbox/mapbox-gl-draw@1.5.0/dist/mapbox-gl-draw.css"),(!window.maplibregl||!window.MapboxDraw)&&await v();const H=window.maplibregl,te=window.MapboxDraw;if(!H)throw new Error("maplibregl not available after load");if(!te)throw new Error("MapboxDraw not available after load");return{maplibregl:H,MapboxDraw:te}})().catch(H=>{throw delete p[Xt],H});return p[Xt]=$,$}function _e(p){return{version:8,sources:{rasterSource:{type:"raster",tiles:[p],tileSize:256}},layers:[{id:"rasterLayer",type:"raster",source:"rasterSource"}]}}let P=null,Q=null,M=null,K=null,ke=[],Ye=null,Re=null,Ve=null,tt=!1,nt=!1,Ze=!1;function Xe(){return{onSetup(){const p=this.newFeature({type:"Feature",properties:{},geometry:{type:"Polygon",coordinates:[[[0,0],[0,0],[0,0],[0,0],[0,0]]]}});return this.addFeature(p),this.clearSelectedFeatures(),this.updateUIClasses({mouse:"add"}),this.setActionableState({trash:!0}),{rectangle:p,startPoint:null,hasCoordinates:!1}},onMouseMove(p,y){if(!p.startPoint)return;const[v,B]=p.startPoint,$=y.lngLat.lng,H=y.lngLat.lat;p.rectangle.setCoordinates([[[v,B],[$,B],[$,H],[v,H],[v,B]]])},onClick(p,y){if(!p.startPoint){p.startPoint=[y.lngLat.lng,y.lngLat.lat],p.hasCoordinates=!0,p.rectangle.setCoordinates([[[y.lngLat.lng,y.lngLat.lat],[y.lngLat.lng,y.lngLat.lat],[y.lngLat.lng,y.lngLat.lat],[y.lngLat.lng,y.lngLat.lat],[y.lngLat.lng,y.lngLat.lat]]]);return}const[v,B]=p.startPoint,$=y.lngLat.lng,H=y.lngLat.lat;return Math.abs(v-$)>0&&Math.abs(B-H)>0?(p.rectangle.setCoordinates([[[v,B],[$,B],[$,H],[v,H],[v,B]]]),this.map.fire("draw.create",{features:[p.rectangle.toGeoJSON()]}),this.changeMode("simple_select",{featureIds:[p.rectangle.id]})):(this.deleteFeature([p.rectangle.id],{silent:!0}),p.hasCoordinates=!1,this.changeMode("simple_select"))},onStop(){},onTrash(p){this.deleteFeature([p.rectangle.id],{silent:!0}),this.changeMode("simple_select")},toDisplayFeatures(p,y,v){const B=y.properties.id===p.rectangle.id;B&&!p.hasCoordinates||(y.properties.active=B?"true":"false",v(y))}}}const kt=[{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 $t(){const p=ie.value;return!p||!ee[p]?.url?"":ee[p].url}function gn(p,y){return p?.id?String(p.id):p?.url?`${p.url}-${y}`:`layer-${y}`}function yn(p){const y=String(p?.url??"").trim();if(!y)return"";if(/^https?:\/\//i.test(y))return y;const v=window.location?.origin??"",B=y.replace(/^\/+/,"");return`${v}/${B}`}function xt(p){p&&$e.value?.layerId!==p||($e.value=null)}function Jn(p,y={}){return p.popup===!1?[]:Array.isArray(p.popup)?p.popup.length?p.popup.map(v=>{const B=v?.field||v?.name;if(!B)return null;const $=y[B];return $==null||$===""?null:{key:v.label||B,value:String($)}}).filter(Boolean):[]:Object.entries(y).slice(0,5).map(([v,B])=>({key:v,value:B==null?"—":String(B)}))}function bn(p){if(!Array.isArray(p))return[];const y=B=>Array.isArray(B)&&B.length>=2&&Number.isFinite(Number(B[0]))&&Number.isFinite(Number(B[1])),v=B=>{if(!B.length)return B;const $=B[0],H=B[B.length-1];return!H||$[0]!==H[0]||$[1]!==H[1]?[...B,$]:B};if(p.length&&y(p[0])){const B=p.map($=>[Number($[0]),Number($[1])]).filter(y);return B.length?[v(B)]:[]}return p.length&&Array.isArray(p[0])&&y(p[0][0])?p.map($=>Array.isArray($)?$.map(H=>[Number(H[0]),Number(H[1])]):[]).filter($=>$.length).map(v):p.length&&Array.isArray(p[0])&&Array.isArray(p[0][0])&&y(p[0][0][0])?p.flatMap($=>Array.isArray($)?$:[]).map($=>Array.isArray($)?$.map(H=>[Number(H[0]),Number(H[1])]):[]).filter($=>$.length).map(v):[]}function Qn(p){const y=p.style??{},v=y.color??"#3b82f6";if(!y.colorAttr||!y.colorSet)return v;const B=Object.keys(y.colorSet);if(!B.length)return v;const $=["match",["to-string",["get",y.colorAttr]]];return B.forEach(H=>{$.push(String(H),y.colorSet?.[H]??v)}),$.push(v),$}function Et(p){if(!M)return;p.handlers.forEach(v=>{try{M.off(v.type,v.layerId,v.handler)}catch{}}),p.handlers=[],[...p.layerIds,...p.boundsIds].forEach(v=>{M.getLayer(v)&&M.removeLayer(v)}),M.getSource(p.sourceId)&&M.removeSource(p.sourceId);const y=`vs-ov-bounds-src-${p.id}`;M.getSource(y)&&M.removeSource(y),xt(p.id)}function z(p,y){if(!M)return[];const v=`vs-ov-bounds-src-${y}`,B=`vs-ov-bounds-line-${y}`,$=p.bounds??L.value??Y.value,H=bn($);if(!H.length)return[];const te={type:"FeatureCollection",features:H.map(oe=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:oe}}))};return M.getSource(v)&&M.removeSource(v),M.addSource(v,{type:"geojson",data:te}),M.addLayer({id:B,type:"line",source:v,paint:{"line-color":p.style?.stroke??p.style?.color??"#2563eb","line-width":p.style?.width??2,"line-opacity":p.style?.opacity??.8,"line-dasharray":[2,2]}}),[B]}function W(p){if(!M)return;Et(p);const y=p.config,v=yn(y);if(!v)return;const B=[],$=[];if(/\.v(?:m)?t(?:\?|$)/i.test(v)||/\.pbf(?:\?|$)/i.test(v)){const oe=y.sourceLayer||y.layer||y.service_layer||y.dataset?.layer||y.id;M.addSource(p.sourceId,{type:"vector",tiles:[v]});const Se=String(y.style?.type??"polygon").toLowerCase(),Ke=Qn(y),ot=y.style?.opacity??.5;if(Se==="point"){const ct=`vs-ov-point-${p.id}`;M.addLayer({id:ct,type:"circle",source:p.sourceId,"source-layer":oe,paint:{"circle-color":Ke,"circle-radius":5,"circle-opacity":ot}}),B.push(ct)}else if(Se==="polyline"||Se==="line"){const ct=`vs-ov-line-${p.id}`;M.addLayer({id:ct,type:"line",source:p.sourceId,"source-layer":oe,layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":Ke,"line-width":y.style?.width??2,"line-opacity":ot}}),B.push(ct)}else{const ct=`vs-ov-fill-${p.id}`,Gt=`vs-ov-border-${p.id}`;M.addLayer({id:ct,type:"fill",source:p.sourceId,"source-layer":oe,paint:{"fill-color":Ke,"fill-opacity":ot}}),M.addLayer({id:Gt,type:"line",source:p.sourceId,"source-layer":oe,paint:{"line-color":y.style?.stroke??y.style?.color??"#2563eb","line-width":y.style?.width??1,"line-opacity":ot}}),B.push(ct,Gt)}}else{M.addSource(p.sourceId,{type:"raster",tiles:[v],tileSize:256});const oe=`vs-ov-raster-${p.id}`;M.addLayer({id:oe,type:"raster",source:p.sourceId,paint:{"raster-opacity":y.style?.opacity??1}}),B.push(oe)}B.forEach(oe=>{const Se=ot=>{if(!ot?.features?.length){xt(p.id);return}const ct=ot.features[0]?.properties??{},Gt=Jn(p.config,ct);if(!Gt.length){xt(p.id);return}$e.value={layerId:p.id,entries:Gt,point:{x:ot.point.x,y:ot.point.y}}},Ke=()=>xt(p.id);M.on("mousemove",oe,Se),M.on("mouseleave",oe,Ke),$.push({layerId:oe,type:"mousemove",handler:Se},{layerId:oe,type:"mouseleave",handler:Ke})}),p.layerIds=B,p.boundsIds=z(p.config,p.id),p.handlers=$;const te=p.visible?"visible":"none";[...p.layerIds,...p.boundsIds].forEach(oe=>{M.getLayer(oe)&&M.setLayoutProperty(oe,"visibility",te)})}function q(){if(!M)return;const y={type:"FeatureCollection",features:bn(L.value??Y.value).map(v=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:v}}))};M.getSource(Jt)?M.getSource(Jt).setData(y):M.addSource(Jt,{type:"geojson",data:y}),M.getLayer(Qt)||M.addLayer({id:Qt,type:"line",source:Jt,paint:{"line-color":"#2563eb","line-width":2,"line-opacity":.8,"line-dasharray":[2,2]}})}function se(p){if(!M||s.value)return;const y=ce[p];if(!y)return;y.visible=!y.visible;const v=y.visible?"visible":"none";[...y.layerIds,...y.boundsIds].forEach(B=>{M.getLayer(B)&&M.setLayoutProperty(B,"visibility",v)}),ye(),y.visible||xt(p)}function ye(){if(!M)return;const p=[],y=[],v=[],B=[];be.value.forEach(te=>{const oe=ce[te];if(!oe)return;const Se=String(oe.config?.url??""),Ke=/\.v(?:m)?t(?:\?|$)/i.test(Se),ot=/\.png(?:\?|$)/i.test(Se);Ke?v.push(...oe.layerIds):ot?p.push(...oe.layerIds):y.push(...oe.layerIds),B.push(...oe.boundsIds)}),[...p,...y,...v,...B].forEach(te=>{M.getLayer(te)&&M.moveLayer(te)}),M.getLayer(Qt)&&M.moveLayer(Qt),(M.getStyle?.()?.layers??[]).map(te=>String(te?.id??"")).filter(te=>te.startsWith("gl-draw-")).forEach(te=>{M.getLayer(te)&&M.moveLayer(te)})}function ve(p){if(!ee[p]||(ie.value=p,!M))return;const y=$t();if(!y)return;const v=M.getCenter?.(),B=M.getZoom?.(),$=K?.getAll?.();M.setStyle(_e(y)),M.once("style.load",()=>{if(M&&(v&&Number.isFinite(B)&&M.jumpTo({center:[v.lng,v.lat],zoom:B}),q(),be.value.forEach(H=>{const te=ce[H];te&&W(te)}),ye(),$?.features?.length&&K))try{$.features.forEach(H=>K.add(H)),d.value=$.features.length}catch{d.value=0}})}function xe(p){return{type:"Feature",properties:{},geometry:p}}function Ee(p){if(!p)return null;try{return JSON.parse(JSON.stringify(p))}catch{return null}}function Oe(p){if(!p)return null;const y=Ee(p.geometry);return y?{...p.id!==void 0?{id:p.id}:{},type:"Feature",properties:{...p.properties??{}},geometry:y}:null}function Le(p){if(!p)return[];const y=($,H)=>{if(!$?.type)return[];const te={...H??{}};return $.type==="MultiPoint"&&Array.isArray($.coordinates)?$.coordinates.map(oe=>xe({type:"Point",coordinates:oe})).map(oe=>({...oe,properties:te})):$.type==="MultiLineString"&&Array.isArray($.coordinates)?$.coordinates.map(oe=>xe({type:"LineString",coordinates:oe})).map(oe=>({...oe,properties:te})):$.type==="MultiPolygon"&&Array.isArray($.coordinates)?$.coordinates.map(oe=>xe({type:"Polygon",coordinates:oe})).map(oe=>({...oe,properties:te})):$.type==="GeometryCollection"&&Array.isArray($.geometries)?$.geometries.flatMap(oe=>y(oe,te)):[{type:"Feature",properties:te,geometry:Ee($)}]},v=$=>{if(!$)return null;if($.type==="Feature"){const H=Oe($);return H?y(H.geometry,H.properties):null}return $.geom?.type&&Array.isArray($.geom.coordinates)?y({type:$.geom.type,coordinates:$.geom.coordinates},$.properties??{}):$.type==="GeometryCollection"&&Array.isArray($.geometries)?y($,$.properties??{}):typeof $.type=="string"&&Array.isArray($.coordinates)?y(Ee($),$.properties??{}):null};if(p.type==="FeatureCollection")return(p.features??[]).flatMap(v).filter(Boolean);if(Array.isArray(p))return p.flatMap($=>$?.type==="FeatureCollection"?Le($):[v($)]).flat().filter(Boolean);const B=v(p);return B?Array.isArray(B)?B:[B]:[]}function rt(p){if(!p.length)return null;if(!a.value)return Ee(p[0]?.geometry??null);const y=p.map(H=>Ee(H?.geometry)).filter(Boolean);return y.every(H=>H?.type==="Point")?{type:"MultiPoint",coordinates:y.map(H=>H.coordinates)}:y.every(H=>H?.type==="LineString")?{type:"MultiLineString",coordinates:y.map(H=>H.coordinates)}:y.every(H=>H?.type==="Polygon")?{type:"MultiPolygon",coordinates:y.map(H=>H.coordinates)}:{type:"GeometryCollection",geometries:y}}function Ge(p){if(!p)return"__null__";try{return JSON.stringify(p)}catch{return"__invalid__"}}function Ut(p,y){if(!Array.isArray(p)||!Array.isArray(y)||p.length<2||y.length<2)return!1;const v=1e-12;return Math.abs(Number(p[0])-Number(y[0]))<v&&Math.abs(Number(p[1])-Number(y[1]))<v}function ko(p,y){if(!Array.isArray(p)||p.length<4)return null;const B=Ut(p[0],p[p.length-1])?p.slice(0,-1):p.slice();return!Number.isInteger(y)||y<0||y>=B.length||B.length<=3||(B.splice(y,1),B.length<3)?null:[...B,[...B[0]]]}function xo(p,y){if(!Array.isArray(p)||p.length<2||!Number.isInteger(y)||y<0||y>=p.length||p.length<=2)return null;const v=p.slice();return v.splice(y,1),v.length<2?null:v}function eg(p,y){const v=Ee(p);if(!v||!Array.isArray(y))return null;if(v.type==="LineString"){const[B]=y,$=xo(v.coordinates,B);return $?(v.coordinates=$,v):null}if(v.type==="MultiLineString"){const[B,$]=y,H=v.coordinates?.[B],te=xo(H,$);return te?(v.coordinates[B]=te,v):null}if(v.type==="Polygon"){const[B,$]=y,H=v.coordinates?.[B],te=ko(H,$);return te?(v.coordinates[B]=te,v):null}if(v.type==="MultiPolygon"){const[B,$,H]=y,te=v.coordinates?.[B]?.[$],oe=ko(te,H);return oe?(v.coordinates[B][$]=oe,v):null}return null}function tg(p){return p?p.split(".").map(y=>Number(y)).filter(y=>Number.isInteger(y)&&y>=0):[]}function wo(p){return!K||!p?null:typeof K.get=="function"?K.get(p)??null:K.getAll?.()?.features?.find(v=>String(v?.id??"")===p)??null}function _o(p){const y=p?.properties?.id??p?.id;return y==null||y===""?null:String(y)}function ng(p){if(!M||!p)return null;const y=[[p.x-8,p.y-8],[p.x+8,p.y+8]],B=M.queryRenderedFeatures(y).find($=>{const H=String($?.properties?.meta??"");return H&&H!=="feature"?!1:!!_o($)});return _o(B)}function rg(p,y){if(!K||!p||!y.length)return;const v=wo(p);if(!v?.geometry)return;const B=eg(v.geometry,y);if(!B)return;const $={...v,id:v.id??p,geometry:B};de=!0,re=!0;try{K.delete(p),K.add($)}finally{re=!1,de=!1}qt(),ft()}function og(p){if(!M||!K||s.value||g.isRulerActive.value||f.value!=="edit")return;const y=p?.point;if(!y)return;const v=[[y.x-8,y.y-8],[y.x+8,y.y+8]],$=M.queryRenderedFeatures(v).find(te=>te?.properties?.meta==="vertex"&&te?.properties?.parent&&te?.properties?.coord_path);if(!$)return;p?.originalEvent?.preventDefault?.(),p?.originalEvent?.stopPropagation?.();const H=tg(String($.properties.coord_path));H.length&&rg(String($.properties.parent),H)}function lg(p){const y=Bo(p);if(!y)return null;const[[v,B],[$,H]]=y;return{lat:(B+H)/2,lng:(v+$)/2}}function vo(p){if(!Array.isArray(p)||p.length<3)return 0;const y=(B,$)=>{const H=B*2003750834e-2/180,te=Math.log(Math.tan((90+$)*Math.PI/360))/(Math.PI/180);return[H,te*2003750834e-2/180]};let v=0;for(let B=0;B<p.length-1;B+=1){const[$,H]=y(Number(p[B][0]),Number(p[B][1])),[te,oe]=y(Number(p[B+1][0]),Number(p[B+1][1]));v+=$*oe-te*H}return Math.abs(v/2)/1e6}function ag(p){if(!p?.type||!p?.coordinates)return null;if(p.type==="Polygon"){const y=p.coordinates?.[0];return Array.isArray(y)?vo(y):null}return p.type==="MultiPolygon"?p.coordinates.reduce((y,v)=>{const B=v?.[0];return Array.isArray(B)?y+vo(B):y},0):null}function er(p){if(!p){m.value=null;return}const y=lg(p);if(!y){m.value=null;return}m.value={type:String(p.type??"Feature"),center:y,areaKm2:ag(p)}}function tr(p){if(!p){const B=ke[ke.length-1],$=Ee(B?.geometry??null);Ye=$,er($);return}const y=ke.find(B=>String(B?.id??"")===String(p))??null,v=Ee(y?.geometry??null);Ye=v,er(v)}function nr(p){x.value=(p??[]).map((y,v)=>{const B=String(y?.id??`feature-${v+1}`),$=Co(String(y?.geometry?.type??"Feature"));return{id:B,label:`${$} ${v+1}`}})}function Co(p){switch(String(p)){case"Point":return"Точка";case"MultiPoint":return"Мультиточка";case"LineString":return"Лінія";case"MultiLineString":return"Мультилінія";case"Polygon":return"Полігон";case"MultiPolygon":return"Мультиполігон";case"GeometryCollection":return"Колекція геометрій";default:return String(p||"Невідомо")}}function Eo(p,y){if(!Array.isArray(p)||!Array.isArray(y)||p.length!==2||y.length!==2)return!1;const v=1e-9;return Math.abs(Number(p[0])-Number(y[0]))<v&&Math.abs(Number(p[1])-Number(y[1]))<v}function Bo(p){if(!p)return null;let y=1/0,v=1/0,B=-1/0,$=-1/0;const H=te=>{if(Array.isArray(te)){if(te.length>=2&&Number.isFinite(te[0])&&Number.isFinite(te[1])){const oe=Number(te[0]),Se=Number(te[1]);y=Math.min(y,oe),v=Math.min(v,Se),B=Math.max(B,oe),$=Math.max($,Se);return}te.forEach(H)}};return H(p.coordinates),!Number.isFinite(y)||!Number.isFinite(v)?null:[[y,v],[B,$]]}function Vo(p){if(!M||!p)return;const y=Bo(p);if(!y)return;const[[v,B],[$,H]]=y;if(v===$&&B===H){M.easeTo({center:[v,B],zoom:Math.max(F.value,14)});return}M.fitBounds(y,{padding:30,duration:250,maxZoom:18})}function rr(){if(!K){d.value=0;return}const p=K.getAll();d.value=p?.features?.length??0}function Ht(){if(!K)return null;const y=K.getAll?.()?.features??[],v=H=>!!H&&y.some(te=>String(te?.id??"")===String(H??"")),B=K.getSelectedIds?.();if(Array.isArray(B)&&B.length>0){const H=B[0];return H!=null?String(H):null}if(v(Ve))return String(Ve);if(!y.length)return null;const $=a.value?y[y.length-1]:y[0];return $?.id!==void 0&&$?.id!==null?String($.id):null}function qt(){if(!K)return;const p=K.getAll();if(d.value=p?.features?.length??0,!p?.features?.length){ke=[],x.value=[],Ye=null,Ve=null,m.value=null,re||(Re="__null__",o("update:modelValue",null));return}const y=(p.features??[]).map(Oe).filter(Boolean);if(ke=y,nr(y),Ve=Ht(),tr(Ve),!re){const v=rt(y);Re=Ge(v),o("update:modelValue",v)}}function kn(){if(!K)return;(K.getAll()?.features||[]).forEach(y=>K.delete(y.id)),x.value=[],rr()}function xn(p){if(!K)return;const y=Le(p),v=a.value?y:y.slice(0,1);re=!0,kn(),v.forEach(H=>{try{K.add(H)}catch{}}),re=!1,ke=(K.getAll?.()?.features??v).map(Oe).filter(Boolean),nr(ke),Ve=null;const $=Ee(ke[ke.length-1]?.geometry??null);Ye=Ee($),rr(),er($),$&&(Vo($),s.value||ft())}function sg(){K&&(re=!0,kn(),ke.forEach(p=>{try{K.add(p)}catch{}}),re=!1,nr(ke),rr(),tr(Ve))}function Nt(){if(K){try{K.changeMode("simple_select",{featureIds:[]})}catch{}f.value=""}}function wn(p){if(s.value||!K)return;g.isRulerActive.value&&g.closeRuler(),Ze=!0,Nt(),f.value=p;const y=p==="marker"?"draw_point":p==="polyline"?"draw_line_string":p==="rectangle"?"draw_rectangle":"draw_polygon";a.value||(re=!0,kn(),re=!1);try{K.changeMode(y)}catch{f.value=""}finally{requestAnimationFrame(()=>{Ze=!1})}}function ft(p){if(s.value||!K||!K.getAll()?.features?.length)return;const v=p||Ht();if(v)try{K.changeMode("direct_select",{featureId:v}),Ve=v,tr(Ve),f.value="edit"}catch{f.value=""}}function ig(p){s.value||!K||!p||ft(p)}function cg(){if(!(s.value||!K)){if(a.value){const p=Ht();if(p)try{tt=!0,K.delete(p),tt=!1,qt();const y=Ht();y?ft(y):Nt();return}catch{tt=!1}}Nt(),kn(),ke=[],x.value=[],Ve=null,Re="__null__",m.value=null,o("update:modelValue",null)}}function dg(){s.value||!Ye||Vo(Ye)}function ug(p){M&&M.easeTo({center:[p[1],p[0]],zoom:13,duration:250})}function pg(){s.value||R.value?.click()}function fg(){s.value||(Z.value=!Z.value)}function So(p){if(!Z.value)return;const y=G.value;y&&!y.contains(p.target)&&(Z.value=!1)}function mg(){Z.value=!1,pg()}function hg(){s.value||(we.value=[],Z.value=!1,ne.value=!0)}function gg(){ne.value=!1,we.value=[]}function yg(){if(s.value||!K)return;const p=vc(ge.value.coordinates??"",ge.value.format||"decimal",ge.value.order||"lat-lon");if(!p.ok){we.value=p.errors,bg(p.errors);return}we.value=[],xn({type:"Polygon",coordinates:[p.ring]}),ne.value=!1,p.wasClosedAutomatically&&ue.notify({type:"info",title:"Імпорт координат",message:"Полігон був автоматично замкнений (перша і остання точки різнилися)."})}function bg(p){if(!p.length)return;const y=5;p.slice(0,y).forEach(v=>{const B=v.line>0?`Рядок ${v.line}`:"Загальна помилка";ue.notify({type:"warning",title:"Імпорт координат",message:`${B} — ${v.message}`})}),p.length>y&&ue.notify({type:"warning",title:"Імпорт координат",message:`Ще помилок: ${p.length-y}`})}function kg(p){if(s.value||!K)return;Z.value=!1;const y=p.target,v=y.files?.[0];if(!v)return;const B=new FileReader;B.onload=()=>{try{const $=JSON.parse(String(B.result));if(!Le($).length){ue.notify({type:"warning",title:"Імпорт файлу",message:"Файл не містить коректний GeoJSON-обʼєкт."});return}xn($)}catch{ue.notify({type:"error",title:"Імпорт файлу",message:"Не вдалося прочитати файл. Перевірте формат GeoJSON/JSON."})}finally{y.value=""}},B.onerror=()=>{ue.notify({type:"error",title:"Імпорт файлу",message:"Помилка читання файлу."}),y.value=""},B.readAsText(v)}function xg(){if(s.value||!K)return;const p=K.getAll(),y=new Blob([JSON.stringify(p,null,2)],{type:"application/json"}),v=URL.createObjectURL(y),B=document.createElement("a");B.href=v,B.download="data.geojson",B.click(),URL.revokeObjectURL(v)}return e.onMounted(async()=>{if(window.addEventListener("click",So,!0),!i.value)return;const p=await Ce();P=p.maplibregl,Q=p.MapboxDraw;const y=$t();y&&(M=new P.Map({container:i.value,style:_e(y),center:[O.value[0],O.value[1]],zoom:F.value,attributionControl:!1}),h.value=M,M.addControl(new P.NavigationControl({showCompass:!0}),"bottom-right"),M.on("load",()=>{if(!(!Q||!M)){if(K=new Q({displayControlsDefault:!1,modes:{...Q.modes,draw_rectangle:Xe()},controls:{point:!1,line_string:!1,polygon:!1,trash:!1},styles:kt}),M.addControl(K),M.on("click",v=>{if(g.isRulerActive.value){const $=v?.lngLat;if(!$)return;u.value?.addPoint?.({lat:$.lat,lng:$.lng});return}if(!K||s.value||f.value!=="edit")return;const B=ng(v?.point);!B||B===Ve||requestAnimationFrame(()=>{!K||s.value||ft(B)})}),M.on("draw.create",()=>{if(K&&!g.isRulerActive.value){if(!a.value){const v=K.getAll();if(v.features.length>1){const B=v.features[v.features.length-1];re=!0,v.features.slice(0,-1).forEach($=>K.delete($.id)),re=!1,B&&(re=!0,K.add(B),re=!1)}}qt(),ft()}}),M.on("draw.update",v=>{if(!nt&&!g.isRulerActive.value){if(v?.action==="move"){if(nt=!0,sg(),nt=!1,f.value==="edit"){const B=Ht(),$=B?wo(B):K?.getAll?.()?.features?.[0];if($?.id)try{K.changeMode("direct_select",{featureId:$.id}),Ve=String($.id)}catch{f.value=""}}return}qt()}}),M.on("draw.delete",()=>{de||tt||g.isRulerActive.value||f.value==="marker"||f.value==="polyline"||f.value==="polygon"||f.value==="rectangle"||(qt(),K?.getAll?.()?.features?.length||(Ve=null),f.value="",Nt())}),M.on("draw.selectionchange",v=>{if(!K||nt||g.isRulerActive.value||f.value==="marker"||f.value==="polyline"||f.value==="polygon"||f.value==="rectangle")return;const B=v?.features?.[0]?.id!==void 0&&v?.features?.[0]?.id!==null?String(v.features[0].id):null;if(!s.value&&B){if(f.value==="edit"&&Ve===B)return;requestAnimationFrame(()=>{!K||s.value||ft(B)});return}const $=K.getSelectedIds?.(),H=Array.isArray($)&&$.length>0?String($[0]):null;if(!s.value&&H){if(f.value==="edit"&&Ve===H)return;requestAnimationFrame(()=>{!K||s.value||ft(H)});return}try{K.changeMode("simple_select",{featureIds:[]})}catch{}}),I.value!==void 0){const v=I.value;I.value=void 0,requestAnimationFrame(()=>{K&&xn(v)})}q(),be.value.forEach(v=>{const B=ce[v];B&&W(B)}),ye()}}),M.on("contextmenu",og),M.on("zoomend",()=>{M&&(F.value=M.getZoom())}))}),e.onUnmounted(()=>{g.isRulerActive.value&&g.closeRuler(),window.removeEventListener("click",So,!0),Object.values(ce).forEach(p=>{M&&Et(p)}),xt(),M?.remove&&M.remove(),M=null,K=null,h.value=null}),e.watch(()=>n.modelValue,p=>{if(!K){I.value=p;return}const y=rt((a.value?Le(p):Le(p).slice(0,1))||[]),v=Ge(y);if(Re&&v===Re){Re=null;return}Re=null,xn(p)},{deep:!0}),e.watch(()=>A.value,p=>{const y=Array.isArray(p)?p:[],v=[],B=new Set;y.forEach(($,H)=>{if(!$)return;const te=gn($,H);v.push(te),B.add(te);const oe={...$,id:te},Se=ce[te],Ke=Se?.visible??!!oe.visible;Se&&M&&Et(Se),ce[te]={id:te,config:oe,visible:Ke,sourceId:`vs-ov-src-${te}`,layerIds:[],boundsIds:[],handlers:[]}}),Object.keys(ce).forEach($=>{if(B.has($))return;const H=ce[$];H&&M&&Et(H),delete ce[$]}),be.value=v,M&&(be.value.forEach($=>{const H=ce[$];H&&W(H)}),ye())},{immediate:!0,deep:!0}),e.watch(()=>L.value,()=>{M&&(q(),be.value.forEach(p=>{const y=ce[p];y&&W(y)}),ye())},{deep:!0}),e.watch(()=>E.value,async p=>{if(Y.value=[],!p){M&&(q(),be.value.forEach(y=>{const v=ce[y];v&&W(v)}),ye());return}try{const y=await fetch(`https://data.gki.com.ua/api-user/atu/${p}`);if(!y?.ok)return;const B=(await y.json())?.geometry?.coordinates;Array.isArray(B)&&B.length&&(Y.value=B)}catch(y){console.error("Failed to fetch KATOTTG bounds",y)}finally{if(!M)return;q(),be.value.forEach(y=>{const v=ce[y];v&&W(v)}),ye()}},{immediate:!0}),e.watch(()=>V.value,p=>{if(!Array.isArray(p)||p.length!==2)return;const y=[Number(p[0]),Number(p[1])];if(Eo(O.value,y)||(O.value=[...y],!M))return;const v=M.getCenter?.();v&&Eo([v.lng,v.lat],O.value)||M.easeTo({center:[O.value[0],O.value[1]]})},{deep:!0}),e.watch(()=>N.value,p=>{typeof p=="number"&&(F.value=p,M&&M.setZoom(p))}),e.watch(s,p=>{p&&Nt()}),e.watch(d,p=>{if(p>0){s.value||ft();return}Ze||Nt()}),e.watch(c,()=>{setTimeout(()=>{M?.resize&&M.resize()},50)}),(p,y)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body",disabled:!c.value},[e.createElementVNode("div",{class:e.normalizeClass(["vs-map-wrapper relative w-full h-[400px]",{fullscreen:c.value}])},[e.createElementVNode("div",{ref_key:"mapContainer",ref:i,class:"w-full h-[calc(100%-28px)]"},null,512),Be.value.search||Be.value.import||Be.value.export?(e.openBlock(),e.createElementBlock("div",$c,[Be.value.search?(e.openBlock(),e.createBlock(Bi,{key:0,onGoToCoordinates:ug})):e.createCommentVNode("",!0),Be.value.import||Be.value.export?(e.openBlock(),e.createElementBlock("div",Nc,[e.createElementVNode("div",Ac,[Be.value.import?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"importMenuRef",ref:G,class:"relative"},[e.createElementVNode("button",{type:"button",class:"inline-flex items-center gap-2 text-sm font-medium border rounded-md px-3 py-2 bg-white text-blue-600 border-stone-200 hover:bg-blue-500 hover:text-white transition",onClick:fg,disabled:s.value},[y[8]||(y[8]=e.createTextVNode(" Імпорт ",-1)),e.createVNode(e.unref(j.ChevronDown),{class:e.normalizeClass(["h-4 w-4 transition-transform",{"rotate-180":Z.value}])},null,8,["class"])],8,Fc),Z.value?(e.openBlock(),e.createElementBlock("div",Mc,[Be.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:mg}," З файлу ")):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:hg}," З координат ")])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),Be.value.export?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"inline-flex items-center gap-2 text-sm font-medium border rounded-md px-3 py-2 bg-white text-blue-600 border-stone-200 hover:bg-blue-500 hover:text-white transition",onClick:xg,disabled:s.value||d.value===0}," Експорт ",8,Dc)):e.createCommentVNode("",!0)]),e.createElementVNode("input",{ref_key:"importRef",ref:R,type:"file",onChange:kg,accept:".json,.geojson",class:"hidden",disabled:s.value},null,40,Lc)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createVNode(e.unref(ue.VsModal),{visible:ne.value,"onUpdate:visible":y[1]||(y[1]=v=>ne.value=v),title:"Імпорт координат полігону",size:"lg",teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(Je,{schema:J,values:ge.value,"onUpdate:values":y[0]||(y[0]=v=>ge.value=v)},null,8,["values"]),e.createElementVNode("div",Tc,[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:gg}," Скасувати "),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:yg,disabled:s.value}," Побудувати ",8,Ic)])]),_:1},8,["visible"]),e.createElementVNode("div",Rc,[e.createElementVNode("div",Oc,[Be.value.point?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(["vs-btn",{"vs-active":f.value==="marker"}]),title:"Point",onClick:y[2]||(y[2]=v=>wn("marker")),disabled:s.value},[e.createVNode(e.unref(j.MapPin),{class:"h-4 w-4"})],10,zc)):e.createCommentVNode("",!0),Be.value.line?(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(["vs-btn",{"vs-active":f.value==="polyline"}]),title:"Line",onClick:y[3]||(y[3]=v=>wn("polyline")),disabled:s.value},[e.createVNode(oi)],10,Pc)):e.createCommentVNode("",!0),Be.value.polygon?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":f.value==="polygon"}]),title:"Polygon",onClick:y[4]||(y[4]=v=>wn("polygon")),disabled:s.value},[e.createVNode(ii)],10,jc)):e.createCommentVNode("",!0),Be.value.rectangle?(e.openBlock(),e.createElementBlock("button",{key:3,class:e.normalizeClass(["vs-btn",{"vs-active":f.value==="rectangle"}]),title:"Rectangle",onClick:y[5]||(y[5]=v=>wn("rectangle")),disabled:s.value},[e.createVNode(pi)],10,Uc)):e.createCommentVNode("",!0),Be.value.ruler?(e.openBlock(),e.createElementBlock("button",{key:4,class:e.normalizeClass(["vs-btn mt-3",{"vs-active":e.unref(g).isRulerActive.value}]),title:"Ruler",onClick:b},[e.createVNode(e.unref(j.Ruler),{class:"h-4 w-4"})],2)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"vs-btn mt-5",onClick:y[6]||(y[6]=v=>c.value=!c.value),title:"Full Screen"},[e.createVNode(e.unref(j.Maximize),{class:"h-4 w-4"})])])]),Be.value.ruler&&e.unref(g).isRulerActive.value?(e.openBlock(),e.createBlock(kc,{key:1,ref_key:"rulerPanelRefEl",ref:u,onClose:y[7]||(y[7]=v=>e.unref(g).closeRuler()),onTabChange:e.unref(g).onRulerTabChange,onPointsChange:e.unref(g).onRulerPointsChange,onShapeClosedChange:e.unref(g).onRulerShapeClosedChange},null,8,["onTabChange","onPointsChange","onShapeClosedChange"])):e.createCommentVNode("",!0),Be.value.ruler&&e.unref(g).isRulerActive.value&&e.unref(g).hasRulerPoints.value?(e.openBlock(),e.createBlock(xc,{key:2,map:h.value,points:e.unref(g).rulerPoints.value,"is-shape-closed":e.unref(g).rulerShapeClosed.value,"label-mode":e.unref(g).rulerActiveTab.value},null,8,["map","points","is-shape-closed","label-mode"])):e.createCommentVNode("",!0),et.value.length?(e.openBlock(),e.createElementBlock("div",{key:3,class:"absolute z-[1500] pointer-events-none",style:e.normalizeStyle(it.value)},[e.createElementVNode("div",Hc,[e.createElementVNode("dl",qc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(et.value,v=>(e.openBlock(),e.createElementBlock("div",{key:`${v.key}-${v.value}`,class:"flex justify-between gap-2"},[e.createElementVNode("dt",Gc,e.toDisplayString(v.key),1),e.createElementVNode("dd",Kc,e.toDisplayString(v.value),1)]))),128))])])],4)):e.createCommentVNode("",!0),e.createElementVNode("div",Wc,[e.createElementVNode("div",Yc,[e.createVNode(yi,{basemaps:e.unref(ee),onOnLayerChange:ve},null,8,["basemaps"]),De.value.length?(e.openBlock(),e.createElementBlock("div",Zc,[y[9]||(y[9]=e.createElementVNode("p",{class:"font-semibold text-[11px] uppercase tracking-wide text-gray-500 mb-2"},"Шари",-1)),e.createElementVNode("div",Xc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(De.value,v=>(e.openBlock(),e.createElementBlock("label",{key:v.id,class:"flex items-center gap-2 cursor-pointer select-none"},[e.createElementVNode("input",{type:"checkbox",class:"rounded border-gray-300 text-blue-600 focus:ring-blue-500",checked:v.visible,disabled:s.value,onChange:B=>se(v.id)},null,40,Jc),e.createElementVNode("span",Qc,e.toDisplayString(v.config.title||v.config.name||v.id),1)]))),128))])])):e.createCommentVNode("",!0)])]),e.createElementVNode("div",ed,[x.value.length||m.value?(e.openBlock(),e.createElementBlock("div",td,[e.createElementVNode("div",nd,[e.createElementVNode("div",rd,[y[10]||(y[10]=e.createTextVNode(" Тип: ",-1)),x.value.length<=1?(e.openBlock(),e.createElementBlock("span",od,e.toDisplayString(m.value?Co(m.value.type):x.value[0]?.label||"—"),1)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(x.value,(v,B)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:v.id},[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["font-bold underline-offset-2",v.id===e.unref(Ve)?"text-blue-700 underline":"text-gray-700 hover:text-blue-700 hover:underline"]),onClick:$=>ig(v.id),disabled:s.value},e.toDisplayString(v.label),11,ld),B<x.value.length-1?(e.openBlock(),e.createElementBlock("span",ad,", ")):e.createCommentVNode("",!0)],64))),128))])]),e.createElementVNode("div",sd,[e.createElementVNode("div",id,[y[11]||(y[11]=e.createTextVNode(" Центр: ",-1)),m.value?(e.openBlock(),e.createElementBlock("b",cd,e.toDisplayString(m.value.center.lng.toFixed(5))+", "+e.toDisplayString(m.value.center.lat.toFixed(5)),1)):(e.openBlock(),e.createElementBlock("b",dd,"—"))]),m.value&&m.value.areaKm2!==null?(e.openBlock(),e.createElementBlock("div",ud,[y[12]||(y[12]=e.createTextVNode(" Площа: ",-1)),e.createElementVNode("b",null,e.toDisplayString(m.value.areaKm2.toFixed(1))+" km²",1)])):(e.openBlock(),e.createElementBlock("div",pd,[...y[13]||(y[13]=[e.createTextVNode("Площа: ",-1),e.createElementVNode("b",null,"—",-1)])])),e.createElementVNode("button",{class:"tool bg-gray-100 py-1.5 px-2 rounded-lg text-md mr-1 cursor-pointer hover:bg-blue-500 hover:text-white transition-all",title:"Zoom to feature",onClick:dg,disabled:s.value},[e.createVNode(e.unref(j.ZoomIn),{class:"h-3 w-3"})],8,fd),e.createElementVNode("button",{class:"tool bg-gray-100 py-1.5 px-2 rounded-lg text-md cursor-pointer hover:bg-blue-500 hover:text-white transition-all",title:"Delete feature",onClick:cg,disabled:s.value},[e.createVNode(e.unref(j.Trash2),{class:"h-4 w-4"})],8,md)])])):e.createCommentVNode("",!0)])],2)],8,["disabled"]))}}),[["__scopeId","data-v-6f4fce7b"]]),hd=["data-focus"],gd={class:"flex items-center"},yd={class:"overflow-hidden text-ellipsis whitespace-nowrap rounded-sm text-[#333] text-[85%] px-0.5 py-[3px] pl-1.5 box-border"},bd=["onClick","aria-label"],kd={key:0,class:"absolute text-gray-500 truncate pl-2"},xd={class:"flex-1 min-w-[2px]"},wd=["placeholder"],_d={class:"flex items-center shrink-0"},vd=["disabled"],xr=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(r,{emit:t}){const n=r,o=t;Te(n.style);const l=e.ref(null),a=e.ref(null),s=e.ref(null),c=e.ref(!1),i=e.ref(""),d=e.useModel(r,"modelValue"),f=e.computed(()=>n.placeholder||"Add tag…"),m=e.computed(()=>d.value?.length===0&&i.value===""),x=e.computed(()=>!n.disabled&&d.value?.length>0),h=e.computed(()=>n.disabled),u=async()=>{h.value||await e.nextTick(()=>s.value?.focus())},g=T=>{const D=T.trim();D!==""&&(!d.value||!Array.isArray(d.value)?d.value=[D]:n.unique?d.value.includes(D)||(d.value=[...d.value,D]):d.value=[...d.value,D],i.value="")},b=()=>{const T=i.value;T.trim()!==""&&g(T),i.value=""},C=T=>{const D=d.value.slice();D.splice(T,1),o("update:modelValue",D)},_=()=>{o("update:modelValue",[])},k=()=>{h.value||(c.value=!0)},w=()=>{c.value=!1,!h.value&&b()},S=T=>{const{key:D}=T;D==="Enter"?(T.preventDefault(),b()):D==="Backspace"&&i.value===""&&d.value.length>0&&C(d.value.length-1)};return(T,D)=>(e.openBlock(),e.createElementBlock("div",{class:"flex gap-1 w-full",ref_key:"root",ref:l,onClick:D[1]||(D[1]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass]),role:"group","aria-label":"Tag input"},[e.createElementVNode("div",{class:e.normalizeClass(["flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white","border-gray-300 hover:border-gray-400",c.value?"border-blue-500 ring-1 ring-blue-500":"",h.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),"data-focus":c.value?"true":"false",onClick:u},[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,N)=>(e.openBlock(),e.createElementBlock("div",{key:N,class:"flex min-w-0 bg-[#e6e6e6] rounded-sm m-0.5 box-border"},[e.createElementVNode("div",gd,[e.createElementVNode("div",yd,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(E=>C(N),["stop"]),"aria-label":`Remove ${V}`},[e.createVNode(e.unref(j.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,bd)]))),128)),m.value?(e.openBlock(),e.createElementBlock("div",kd,e.toDisplayString(f.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",xd,[h.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":D[0]||(D[0]=V=>i.value=V),onFocus:k,onBlur:w,onKeydown:S,placeholder:d.value&&d.value.length?"":void 0},null,40,wd)),[[e.vModelText,i.value]])])],512),e.createElementVNode("div",_d,[x.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:h.value,onClick:e.withModifiers(_,["stop"])},[e.createVNode(e.unref(j.X),{class:"h-4 w-4"})],8,vd)):e.createCommentVNode("",!0)])],10,hd)],2)],512))}}),Cd={class:"relative flex gap-1 bg-white w-full"},Ed=["disabled","placeholder"],wr=me(e.defineComponent({__name:"vs-input-slug",props:e.mergeModels({disabled:{type:Boolean},placeholder:{},parent:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=e.inject("values"),n=r,o=e.useModel(r,"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?.[n.parent||""]?.toString(),c=l(s);o.value=c.toString()};return(s,c)=>(e.openBlock(),e.createElementBlock("div",Cd,[e.withDirectives(e.createElementVNode("input",{ref:"vsText",disabled:r.disabled,placeholder:r.placeholder,"onUpdate:modelValue":c[0]||(c[0]=i=>o.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,Ed),[[e.vModelText,o.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200",onClick:a}," Gen ")]))}}),[["__scopeId","data-v-cb7b2b74"]]),Bd={class:"relative flex gap-1 bg-white w-full"},Vd=["disabled","placeholder"],Sd=["disabled"],$d={key:0},Nd={key:1},_r=me(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(r){const t=r,n=e.useModel(r,"modelValue"),o=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)),f=encodeURIComponent(String(t.code));return`/api/code-gen/${d}/${f}`},c=async()=>{if(!a.value||o.value)return;const d=s();if(d){o.value=!0;try{const m=await(await fetch(d)).text();n.value=m}finally{o.value=!1}}},i=()=>{l.value&&(n.value||c())};return e.onMounted(()=>{i()}),e.watch(()=>[t.table,t.code,t.init],()=>{i()}),(d,f)=>(e.openBlock(),e.createElementBlock("div",Bd,[e.withDirectives(e.createElementVNode("input",{disabled:r.disabled,placeholder:r.placeholder,"onUpdate:modelValue":f[0]||(f[0]=m=>n.value=m),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,Vd),[[e.vModelText,n.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200 disabled:opacity-50 disabled:cursor-not-allowed",disabled:o.value||r.disabled||!a.value,onClick:c},[o.value?(e.openBlock(),e.createElementBlock("span",Nd,"...")):(e.openBlock(),e.createElementBlock("span",$d,"Gen"))],8,Sd)]))}}),[["__scopeId","data-v-8f88fb66"]]),Ad={class:"w-full"},Fd={ref:"sortableContainer",class:"flex flex-col gap-1"},Md=["onDragstart","onDrop"],Dd={class:"cursor-move",type:"button"},Ld={class:"w-1/3"},Td={class:"w-2/3"},Id=["onClick"],Rd={key:0,class:"text-[14px] text-gray-700"},Od={class:"mt-2 w-full flex items-center"},zd=["disabled"],vr=me(e.defineComponent({__name:"vs-input-key-value",props:{parent:{},ignore:{},addButtonText:{},modelValue:{}},emits:["update:modelValue"],setup(r,{emit:t}){const n=b=>`${b}-${Math.random().toString(36).substring(2,15)}`,o=e.inject("values"),l=r,a=t,s=l.addButtonText??"Додати",c=l.ignore??[],i=e.ref([]),d=e.ref(null);(()=>{const b=l.parent&&o?.value?.[l.parent]||l.modelValue||{};i.value=Object.entries(b).filter(([C])=>!c.includes(C)).map(([C,_])=>({id:n("key-value-"),key:C,value:_}))})();function m(b){d.value=b}function x(b){if(d.value===null||d.value===b)return;const C=i.value.splice(d.value,1)[0];i.value.splice(b,0,C),d.value=null}const h=e.computed(()=>i.value.some(b=>b.key&&!b.value||!b.key&&b.value)),u=()=>{i.value.push({id:n("key-value-"),key:"",value:""})},g=b=>{i.value=i.value.filter(C=>C.id!==b)};return e.watch(i,b=>{const C={};b.forEach(k=>{k.key&&k.value!==void 0&&(C[k.key]=k.value)});const _={};c.length&&c.forEach(k=>{_[k]=l.parent?o?.value?.[l.parent]?.[k]:void 0}),o?.value&&l.parent&&(o.value[l.parent]={..._,...C}),a("update:modelValue",C)},{deep:!0}),(b,C)=>(e.openBlock(),e.createElementBlock("div",Ad,[e.createElementVNode("div",Fd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(_,k)=>(e.openBlock(),e.createElementBlock("div",{key:_.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":d.value===k}]),draggable:"true",onDragstart:w=>m(k),onDragover:C[0]||(C[0]=e.withModifiers(()=>{},["prevent"])),onDrop:w=>x(k)},[e.createElementVNode("button",Dd,[e.createVNode(e.unref(j.GripVertical),{class:"h-4 w-4"})]),e.createElementVNode("div",Ld,[e.createVNode(Bt,{modelValue:_.key,"onUpdate:modelValue":w=>_.key=w,placeholder:"Ключ"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",Td,[e.createVNode(Bt,{modelValue:_.value,"onUpdate:modelValue":w=>_.value=w,placeholder:"Значення"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("button",{onClick:w=>g(_.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,Id)],42,Md))),128))],512),i.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Rd," Дані для відображення відсутні ")),e.createElementVNode("div",Od,[e.createElementVNode("button",{type:"button",onClick:u,disabled:h.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,zd)])]))}}),[["__scopeId","data-v-ac321a0f"]]),Pd={class:"w-full"},jd={ref:"sortableContainer",class:"flex flex-col gap-1"},Ud=["onDragstart","onDrop"],Hd=["disabled"],qd={class:"flex-1"},Gd=["onClick","disabled"],Kd={key:0,class:"text-[14px] text-gray-700"},Wd={class:"mt-2 w-full flex items-center"},Yd=["disabled"],Cr=me(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(r){const t=r,n=e.useModel(r,"modelValue"),o=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=b=>`${b}-${Math.random().toString(36).substring(2,15)}`,f=b=>{const C=b??n.value??[];o.value=C.map((_,k)=>({id:o.value[k]?.id??d("text-array"),value:_??""}))};f(),e.watch(()=>n.value,b=>{if(i){i=!1;return}f(b||[])},{deep:!0}),e.watch(o,b=>{i=!0,n.value=b.map(C=>C.value).filter(C=>C!=null&&C!=="")},{deep:!0});const m=e.computed(()=>a.value||o.value.some(b=>!b.value));function x(){m.value||(o.value=[...o.value,{id:d("text-array"),value:""}])}function h(b){a.value||(o.value=o.value.filter(C=>C.id!==b))}function u(b){a.value||(l.value=b)}function g(b){if(a.value||l.value===null||l.value===b)return;const C=[...o.value],[_]=C.splice(l.value,1);C.splice(b,0,_),o.value=C,l.value=null}return(b,C)=>(e.openBlock(),e.createElementBlock("div",Pd,[e.createElementVNode("div",jd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(_,k)=>(e.openBlock(),e.createElementBlock("div",{key:_.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":l.value===k}]),draggable:"true",onDragstart:w=>u(k),onDragover:C[0]||(C[0]=e.withModifiers(()=>{},["prevent"])),onDrop:w=>g(k)},[e.createElementVNode("button",{class:"cursor-move",type:"button",disabled:a.value},[e.createVNode(e.unref(j.GripVertical),{class:"h-4 w-4"})],8,Hd),e.createElementVNode("div",qd,[r.inputType==="text"?(e.openBlock(),e.createBlock(Bt,{key:0,modelValue:_.value,"onUpdate:modelValue":w=>_.value=w,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),r.inputType==="tel"?(e.openBlock(),e.createBlock(Vn,{key:1,modelValue:_.value,"onUpdate:modelValue":w=>_.value=w,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),r.inputType==="email"?(e.openBlock(),e.createBlock(Bn,{key:2,modelValue:_.value,"onUpdate:modelValue":w=>_.value=w,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),r.inputType==="mask"?(e.openBlock(),e.createBlock(En,{key:3,modelValue:_.value,"onUpdate:modelValue":w=>_.value=w,mask:r.mask,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","mask","disabled","placeholder"])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:w=>h(_.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,Gd)],42,Ud))),128))],512),o.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Kd," Дані для відображення відсутні ")),e.createElementVNode("div",Wd,[e.createElementVNode("button",{type:"button",onClick:x,disabled:m.value,class:"py-1.5 px-2 flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"},[e.createVNode(e.unref(j.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(c.value),1)],8,Yd)])]))}}),[["__scopeId","data-v-972a598a"]]),Zd={class:"flex items-center gap-2 w-full"},Xd=["disabled"],Jd=["disabled"],Er=e.defineComponent({__name:"vs-input-color",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(r,{emit:t}){const n=r,{inputClass:o}=Te(n.style),l=t,a=e.computed({get:()=>n.modelValue||"#000000",set:c=>l("update:modelValue",c)}),s=e.computed(()=>!!n.disabled);return(c,i)=>(e.openBlock(),e.createElementBlock("div",Zd,[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]",[r.modelValue?"":"text-opacity-50",e.unref(o)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,Xd),[[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,Jd),[[e.vModelText,a.value]])]))}}),Qd={class:"flex items-center gap-2 w-full"},eu=["min","max","step","disabled"],tu=["disabled"],Br=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(r,{emit:t}){const n=r,{inputClass:o}=Te(n.style),l=t,a=e.computed({get:()=>Number(n.modelValue??n.min),set:c=>l("update:modelValue",Number(c))}),s=e.computed(()=>!!n.disabled);return(c,i)=>(e.openBlock(),e.createElementBlock("div",Qd,[e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":i[0]||(i[0]=d=>a.value=d),min:r.min,max:r.max,step:r.step,disabled:s.value,ref:"range",class:e.normalizeClass(["w-full cursor-pointer accent-blue-500",[r.modelValue?"":"text-opacity-50",e.unref(o)].join(" ")])},null,10,eu),[[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 max-w-[100px]",type:"number","onUpdate:modelValue":i[1]||(i[1]=d=>a.value=d),disabled:s.value},null,8,tu),[[e.vModelText,a.value]])]))}}),nu=["placeholder","disabled","name"],ru=["type","value","onInput","placeholder","disabled"],ou=["onClick"],Vr=e.defineComponent({__name:"vs-input-array",props:e.mergeModels({count:{default:1},limit:{default:1},mask:{default:""},unmask:{type:Boolean,default:!1},inputType:{default:"text"},isAdded:{type:Boolean,default:!1},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.ref(t.count),o=e.computed(()=>t.limit),{inputClass:l}=Te(t.style),a=e.useModel(r,"modelValue"),s=e.computed(()=>!!t.disabled),c=e.computed(()=>t.placeholder??"");e.watchEffect(()=>{const g=a.value?.length??0;g<n.value&&(a.value=[...a.value??[],...Array(n.value-g)])});const i=e.ref({}),d=e.ref({});function f(g,b){g&&(i.value[b]=g)}async function m(g,b){if(!g||t.inputType!=="mask")return;const{default:C}=await Promise.resolve().then(()=>qn);d.value[b]&&d.value[b].destroy(),d.value[b]=C(g,{mask:t.mask||"",definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},lazy:!1}),d.value[b].on("accept",()=>{const _=[...a.value||[]];_[b]=t.unmask?d.value[b].unmaskedValue:d.value[b].value,a.value=_}),d.value[b].on("complete",()=>{const _=[...a.value||[]];_[b]=t.unmask?d.value[b].unmaskedValue:d.value[b].value,a.value=_}),a.value?.[b]&&(d.value[b].value=a.value[b])}function x(g,b){if(s.value)return;const C=g.target.value??null,_=[...a.value];_[b]=t.inputType==="text"?C:Number(C),a.value=_}function h(){n.value+=1;const g=t.inputType==="text"||t.inputType==="mask"?null:0;a.value=[...a.value,g],t.inputType==="mask"&&setTimeout(()=>{const b=n.value-1;i.value[b]&&m(i.value[b],b)},0)}function u(g){if(n.value>1){d.value[g]&&(d.value[g].destroy(),delete d.value[g]),n.value-=1,a.value=a.value.filter((C,_)=>_!==g);const b={};Object.keys(d.value).forEach(C=>{const _=parseInt(C,10);_>g?b[_-1]=d.value[_]:_<g&&(b[_]=d.value[_])}),d.value=b}}return e.onMounted(()=>{if(t.inputType==="mask")for(let g=0;g<n.value;g+=1)i.value[g]&&m(i.value[g],g)}),e.onBeforeUnmount(()=>{Object.values(d.value).forEach(g=>{g&&g.destroy()})}),e.watch(()=>t.mask,g=>{t.inputType==="mask"&&Object.values(d.value).forEach(b=>{b&&b.updateOptions({mask:g,definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/}})})}),e.watch(a,g=>{t.inputType==="mask"&&g&&g.forEach((b,C)=>{d.value[C]&&d.value[C].value!==b&&(d.value[C].value=b||"")})},{deep:!0}),(g,b)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["grid gap-2",`grid-cols-${o.value}`])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,C=>(e.openBlock(),e.createElementBlock("div",{key:C,class:"flex items-center gap-2 w-full"},[r.inputType==="mask"?(e.openBlock(),e.createElementBlock("input",{key:0,type:"text",ref_for:!0,ref:_=>f(_,C-1),placeholder:r.placeholder,disabled:r.disabled,name:`${r.name}[${C-1}]`,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(l),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,nu)):(e.openBlock(),e.createElementBlock("input",{key:1,type:r.inputType,value:a.value?.[C-1],onInput:_=>x(_,C-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":r.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,ru)),!r.disabled&&C===n.value&&r.isAdded?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:e.withModifiers(h,["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),!r.disabled&&n.value>1&&r.isAdded?(e.openBlock(),e.createElementBlock("button",{key:3,type:"button",onClick:e.withModifiers(_=>u(C-1),["stop"]),class:"cursor-pointer shrink-0 w-[38px] text-red-600 h-[38px] rounded-md flex items-center justify-center border border-stone-200 hover:bg-stone-100"},[e.createVNode(e.unref(j.X),{class:"h-4 w-4"})],8,ou)):e.createCommentVNode("",!0)]))),128))],2))}}),lu=["aria-expanded","data-focus"],au=["placeholder","disabled","readonly"],su={class:"max-h-full"},iu=["onClick","disabled"],cu={key:0,class:"px-3 py-2 text-sm text-stone-500"},du={class:"flex flex-col gap-1"},uu=["onDragstart","onDrop"],pu=["disabled"],fu=["title"],mu=["disabled","onClick","aria-label"],hu={key:0,class:"text-xs text-stone-500"},en=me(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},style:{},customClass:{},modelValue:{},error:{},name:{},placeholder:{default:"Оберіть значення"},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:e.mergeModels(["change","update:modelValue","value-selected"],["update:modelValue"]),setup(r,{emit:t}){const n=r,o=t,l=e.useModel(r,"modelValue"),a=e.ref([]),s=e.ref(n.options??[]),c=e.ref({}),i=e.ref({}),d=e.ref({keyword:"",parent:null}),f=e.ref(""),m=e.ref(!1),x=e.ref(null),h=e.ref(null),u=e.ref(null),g=e.ref(null),b=e.ref(null),C=e.ref({});let _=!1,k=!1;const w=e.inject("values"),S=e.computed(()=>!!n.disabled),T=e.computed(()=>n.placeholder??"Оберіть значення"),D=e.computed(()=>n.search!==!1),V=e.computed(()=>{const P=n.parent??n.parentValue;return P?String(P):""}),N=e.computed(()=>V.value?w?.value?.[V.value]??null:null),E=P=>P==null?"__null__":String(P),A=P=>{if(!P)return"";const Q=P.label??P.text??P.name??P.ua??P.en;return Q?String(Q):P.id!==void 0&&P.id!==null?String(P.id):""},L=P=>{const Q=E(P);return i.value[Q]||(i.value[Q]=`array-select-${Q}-${Math.random().toString(36).slice(2,8)}`),i.value[Q]},O=e.computed(()=>new Set(a.value.map(P=>E(P.id)))),F=e.computed(()=>{const P=O.value;let Q=[...s.value];if(!n.data&&f.value.trim()){const M=f.value.toLowerCase();Q=Q.filter(K=>A(K).toLowerCase().includes(M))}return Q.filter(M=>!P.has(E(M.id)))}),I=()=>{if(!n.data)return"";const P=n.prefix??"api",Q=n.api??`/${P}/suggest/${n.data}`;return`${n.host??""}${Q}`},R=()=>{a.value.length&&(_=!0,a.value=a.value.map(P=>({...P,text:c.value[E(P.id)]??P.text})))},G=P=>{const Q=E(P.id),M=A(P);M&&(c.value[Q]=M)},Y=P=>{s.value=P?[...P]:[],P?.forEach(G),R()},Z=P=>{if(!P.length)return;const Q=new Map(s.value.map(M=>[E(M.id),M]));P.forEach(M=>{const K=E(M.id);Q.set(K,M),G(M)}),s.value=Array.from(Q.values()),R()},ne=async(P="")=>{if(!n.data)return[];const Q=I();if(!Q)return[];const M=new URLSearchParams;M.set("json","1"),P&&M.set("key",P),n.start===1&&M.set("start","1"),N.value!==null&&N.value!==void 0&&N.value!==""&&M.set("parent",String(N.value));try{return(await(await fetch(`${Q}?${M.toString()}`)).json())?.data??[]}catch{return[]}},we=async P=>{if(!n.data||!P.length)return[];const Q=I();if(!Q)return[];const M=Array.from(new Set(P.map(ke=>E(ke)))),K=new URLSearchParams;K.set("json","1"),K.set("val",M.join(",")),n.start===1&&K.set("start","1"),N.value!==null&&N.value!==void 0&&N.value!==""&&K.set("parent",String(N.value));try{const Re=(await(await fetch(`${Q}?${K.toString()}`)).json())?.data??[];return Z(Re),Re}catch{return[]}},ge=async(P="",{force:Q=!1}={})=>{if(!n.data)return;const M=N.value??null;if(!Q&&d.value.keyword===P&&d.value.parent===M&&s.value.length>0)return;d.value={keyword:P,parent:M};const ke=await ne(P);Y(ke)},re=((P,Q=200)=>{let M;return(...K)=>{M&&clearTimeout(M),M=setTimeout(()=>P(...K),Q)}})(async P=>{n.data&&await ge(P,{force:!0})},250),de=e.ref(null),ce=()=>{if(!u.value)return;const P=u.value.getBoundingClientRect(),Q=window.innerHeight??document.documentElement.clientHeight,M=window.innerWidth??document.documentElement.clientWidth,K=8,ke=8,Ye=n.maxHeight??280,Re=Q-P.bottom-ke-K,Ve=P.top-ke-K,tt=Re>=Ve,nt=Math.max(M-K*2,0);let{width:Ze}=P;nt>0&&Ze>nt&&(Ze=nt);let{left:Xe}=P;Xe+Ze+K>M&&(Xe=M-Ze-K),Xe=Math.max(Xe,K);const kt=Math.min(Ye,Math.max(tt?Re:Ve,50));C.value={position:"fixed",left:`${Xe}px`,width:`${Ze}px`,maxHeight:`${kt}px`,transform:tt?"none":"translateY(-100%)",top:tt?`${P.bottom+ke}px`:`${P.top-ke}px`}},be=async(P="click")=>{S.value||m.value||(de.value=P,await ge(f.value.trim()),m.value=!0,await e.nextTick(),ce(),b.value?.focus())},De=()=>{m.value=!1,de.value=null,e.nextTick(()=>{b.value?.blur()})},$e=async P=>{if(P.stopPropagation(),!S.value){if(m.value){if(de.value==="focus"){de.value=null;return}De();return}await be("click")}},et=P=>{P.key==="Escape"&&De()},it=P=>{if(!m.value)return;const Q=P.target;g.value?.contains(Q)||De()},Ie=P=>{const Q=P.target;h.value?.contains(Q)||g.value?.contains(Q)||De()},Be=P=>{if(P.key==="Escape"){P.preventDefault(),De();return}if(P.key==="Enter"){P.preventDefault();const Q=F.value[0];Q&&U(Q)}},U=P=>{if(!P)return;const Q=E(P.id);if(O.value.has(Q))return;G(P);const M={id:P.id,text:A(P)||String(P.id??""),key:L(P.id)};a.value=[...a.value,M],X(P),f.value="",e.nextTick(()=>{b.value?.focus()})},X=P=>{const Q=a.value.map(M=>M.id);o("value-selected",{name:n.name,value:Q,option:P})},ee=P=>{if(S.value)return;const Q=a.value.filter(M=>E(M.id)!==E(P));a.value=Q},ae=P=>{S.value||(x.value=P)},ie=P=>{if(S.value||x.value===null||x.value===P)return;const Q=[...a.value],[M]=Q.splice(x.value,1);Q.splice(P,0,M),x.value=null,a.value=Q},Ce=async()=>{const Q=(Array.isArray(l.value)?[...l.value]:[]).filter(K=>K!=null);if(n.data&&Q.length){const K=Q.filter(ke=>!c.value[E(ke)]);K.length&&await we(K)}const M=Q.map(K=>({id:K,text:c.value[E(K)]??String(K),key:L(K)}));_=!0,a.value=M};e.watch(a,P=>{if(_){_=!1;return}const Q=P.map(M=>M.id);k=!0,l.value=Q,o("change",Q)},{deep:!0}),e.watch(l,()=>{if(k){k=!1;return}Ce()},{deep:!0}),e.watch(f,P=>{!n.data||!m.value||re(P.trim())}),e.watch(S,P=>{P&&De()}),e.watch(()=>n.options,async P=>{n.data||(Y(P??[]),await Ce())},{immediate:!0,deep:!0}),e.watch(()=>n.data,async P=>{P&&(await ge(f.value.trim()),await Ce())},{immediate:!0});const _e=e.ref(!1);return e.watch(N,async()=>{if(n.data){if(!_e.value){_e.value=!0;return}a.value=[],await ge(f.value.trim()),await Ce()}}),e.onMounted(async()=>{document.addEventListener("click",Ie,!0),window.addEventListener("keydown",et),window.addEventListener("scroll",it,!0),await Ce()}),e.onUnmounted(()=>{document.removeEventListener("click",Ie,!0),window.removeEventListener("keydown",et),window.removeEventListener("scroll",it,!0)}),(P,Q)=>(e.openBlock(),e.createElementBlock("div",{class:"flex flex-col gap-2 w-full",ref_key:"rootRef",ref:h},[e.createElementVNode("div",{class:"relative",onClick:Q[2]||(Q[2]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{ref_key:"triggerRef",ref:u,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]",m.value?"border-[#2684ff] ring-1 ring-[#2684ff] shadow-[0_0_0_1px_rgba(38,132,255,0.5)]":"",S.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),role:"combobox","aria-expanded":m.value,"aria-haspopup":"listbox","data-focus":m.value?"true":"false",onClick:$e},[e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:b,"onUpdate:modelValue":Q[0]||(Q[0]=M=>f.value=M),placeholder:T.value,disabled:S.value,readonly:!D.value,onFocus:Q[1]||(Q[1]=()=>be("focus")),onKeydown:Be,class:"flex-1 bg-transparent border-0 outline-none px-0 py-1 text-sm text-stone-900 placeholder:text-stone-400"},null,40,au),[[e.vModelText,f.value]]),e.createElementVNode("span",{class:e.normalizeClass(["text-stone-400 transition-transform duration-150",m.value?"rotate-180":""]),"aria-hidden":"true"},[e.createVNode(e.unref(j.ChevronDown),{class:"h-4 w-4"})],2)],10,lu),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[m.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:g,class:"fixed z-[3000] rounded-md border border-stone-200 bg-white shadow-lg overflow-auto",style:e.normalizeStyle(C.value)},[e.createElementVNode("div",su,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(F.value,M=>(e.openBlock(),e.createElementBlock("button",{key:E(M.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(K=>U(M),["stop"]),disabled:S.value},e.toDisplayString(A(M)),9,iu))),128)),F.value.length===0?(e.openBlock(),e.createElementBlock("p",cu," Немає варіантів ")):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))]),e.createElementVNode("div",du,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(M,K)=>(e.openBlock(),e.createElementBlock("div",{key:M.key,class:e.normalizeClass(["flex items-center gap-2 rounded-md border border-stone-200 bg-white px-2 py-2",{"opacity-60":x.value===K}]),draggable:"true",onDragstart:ke=>ae(K),onDragover:Q[3]||(Q[3]=e.withModifiers(()=>{},["prevent"])),onDrop:ke=>ie(K),onDragend:Q[4]||(Q[4]=ke=>x.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:S.value,"aria-label":"Перетягнути"},[e.createVNode(e.unref(j.GripVertical),{class:"h-4 w-4"})],8,pu),e.createElementVNode("div",{class:"flex-1 text-sm text-stone-900",title:M.text},e.toDisplayString(M.text),9,fu),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:S.value,onClick:e.withModifiers(ke=>ee(M.id),["stop"]),"aria-label":`Видалити ${M.text}`},[e.createVNode(e.unref(j.X),{class:"h-4 w-4"})],8,mu)],42,uu))),128)),a.value.length===0?(e.openBlock(),e.createElementBlock("p",hu,"Немає вибраних значень")):e.createCommentVNode("",!0)])],512))}}),[["__scopeId","data-v-5fa5a4b9"]]),gu={class:"flex items-center gap-2 w-full"},yu={class:"relative flex-1"},bu=["placeholder","disabled","onKeydown"],ku=["disabled"],xu={key:0,class:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/50"},wu={class:"bg-white text-gray-900 rounded-lg shadow-lg w-[480px] max-h-[80vh] overflow-y-auto"},_u={class:"p-3 border-b font-semibold text-gray-900 flex justify-between items-center"},vu=["onClick"],Cu={key:0,class:"p-4 text-sm text-gray-500"},Sr=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(r,{emit:t}){const n=/{{\s*([^}]+?)\s*}}/g,o=r,l=t,{inputClass:a}=Te(o.style),s=e.useModel(r,"modelValue"),c=e.computed({get:()=>s.value,set:D=>{s.value=D}}),i=e.ref(!1),d=e.ref([]),f=e.ref(!1),m=e.ref(null);e.watch(f,D=>{typeof document>"u"||(D?(m.value=document.body.style.overflow,document.body.style.overflow="hidden"):m.value!=null?(document.body.style.overflow=m.value,m.value=null):document.body.style.removeProperty("overflow"))}),e.onBeforeUnmount(()=>{typeof document>"u"||(m.value!=null?document.body.style.overflow=m.value:document.body.style.removeProperty("overflow"))});const x=e.computed(()=>o.placeholder??""),h=e.computed(()=>!!o.disabled),u=D=>{if(!D)return null;if(Array.isArray(D))return D;if(typeof D=="string"){const V=D.split(",").map(N=>N.trim()).filter(Boolean);return V.length!==4?null:V.map(Number)}return null},g=e.computed(()=>{const D=u(o.bbox);if(!D||D.length!==4)return null;const V=D.map(Number);return V.some(N=>Number.isNaN(N))?null:V}),b=e.computed(()=>{const D=g.value;if(!D)return"";const[V,N,E,A]=D;return`${V},${Math.max(N,A)},${E},${Math.min(N,A)}`});e.computed(()=>b.value?"1":"0");const C=e.inject("values");function _(){!h.value&&c.value.trim()&&k()}async function k(){const D=(c.value||"").trim();if(!D)return;let V=D;if(o.includes?.length&&C?.value){const E=o.includes.map(A=>C.value?.[A]).filter(Boolean);E.length&&(V=`${E.join(", ")}, ${D}`)}const N=T(V);if(N){i.value=!0;try{const A=await(await fetch(N)).json();d.value=Array.isArray(A)?A:[],f.value=!0}catch(E){console.error("Address search error:",E)}finally{i.value=!1}}}function w(){f.value=!f.value}function S(D){if(!D)return;f.value=!1;const V=parseFloat(D.lat),E={type:"Point",coordinates:[parseFloat(D.lon),V]};o.geom&&C?.value&&(C.value[o.geom]=E),l("update:geom",E)}function T(D){if(!o.api)return"";const V={value:encodeURIComponent(D),bbox:g.value?g.value.join(","):""};return o.api.replace(n,(N,E)=>V[E.trim()]??"")}return(D,V)=>(e.openBlock(),e.createElementBlock("div",gu,[e.createElementVNode("div",yu,[e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":V[0]||(V[0]=N=>c.value=N),placeholder:x.value,disabled:h.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":o.error}]]),style:{border:"1px solid #CFD9E0"},onKeydown:e.withKeys(e.withModifiers(_,["prevent"]),["enter"])},null,42,bu),[[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:w,title:"Show search results"},[e.createVNode(e.unref(j.Info),{class:"h-4 w-4"})])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:k,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,ku),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[f.value?(e.openBlock(),e.createElementBlock("div",xu,[e.createElementVNode("div",wu,[e.createElementVNode("div",_u,[V[2]||(V[2]=e.createElementVNode("span",null,"Search results",-1)),e.createElementVNode("button",{class:"text-gray-500 hover:text-blue-600",onClick:V[1]||(V[1]=N=>f.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,(N,E)=>(e.openBlock(),e.createElementBlock("li",{key:E,onClick:A=>S(N),class:"px-3 py-2 cursor-pointer hover:bg-gray-100 border-b text-sm"},e.toDisplayString(N.display_name),9,vu))),128))]),d.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Cu," No results found "))])])):e.createCommentVNode("",!0)]))]))}}),$r=(r="")=>`${r}${Math.floor(Math.random()*1e4)}`,Eu={class:"vs-datalist space-y-3"},Bu={class:"space-y-3"},Vu=["onClick","disabled"],Su={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},$u=["disabled"],Nu=me(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(r){const t=r,n=e.useModel(r,"modelValue"),o=e.computed(()=>Array.isArray(n.value)?n.value:[]),l=e.ref([]),a=e.computed(()=>t.schema?.map(g=>({...g,disabled:t.disabled||g.disabled}))??[]),s=e.computed(()=>a.value.map(g=>u(g))),c=e.computed(()=>t.disabled?!1:t.maxItems?o.value.length<t.maxItems:!0),i=e.computed(()=>t.disabled||o.value.length<=(t.minItems||0));e.watch(()=>o.value.length,()=>{d(),f()},{immediate:!0}),e.watch(()=>t.schema,f,{immediate:!0,deep:!0});function d(){const g=o.value.length;l.value.length<g?l.value=[...l.value,...Array.from({length:g-l.value.length},()=>$r())]:l.value.length>g&&l.value.splice(g)}function f(){if(!t.minItems||o.value.length>=t.minItems)return;const g=t.minItems-o.value.length,b=Array.from({length:g},m);n.value=[...o.value,...b]}function m(){const g={};return a.value.forEach(b=>{g[b.name]=b?.default??null}),g}function x(){c.value&&(n.value=[...o.value,m()],d())}function h(g){i.value||(n.value=o.value.filter((b,C)=>C!==g),d(),f())}function u(g){return{...g}}return(g,b)=>(e.openBlock(),e.createElementBlock("div",Eu,[e.createElementVNode("div",Bu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(C,_)=>(e.openBlock(),e.createElementBlock("div",{key:l.value[_],class:"flex items-center gap-3"},[e.createVNode(Je,{schema:s.value,layout:"inline",navigation:!1,values:o.value[_],"onUpdate:values":k=>o.value[_]=k,"form-id":l.value[_]},null,8,["schema","values","onUpdate:values","form-id"]),e.createElementVNode("button",{type:"button",class:"h-[38px] w-[38px] flex items-center justify-center text-gray-400 hover:text-gray-600 hover:bg-gray-50 rounded-lg transition-all disabled:opacity-40",onClick:k=>h(_),disabled:i.value},[e.createVNode(e.unref(j.Trash2),{class:"h-4 w-4"})],8,Vu)]))),128)),o.value.length===0?(e.openBlock(),e.createElementBlock("div",Su,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:x,disabled:!c.value},[e.createVNode(e.unref(j.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,$u)]))}}),[["__scopeId","data-v-b4dfd331"]]),Au={class:"vs-dataform space-y-4"},Fu=["draggable","onDragstart","onDragover","onDragenter","onDrop"],Mu={class:"flex items-center gap-2"},Du=["onClick"],Lu={class:"text-sm font-medium text-gray-700"},Tu={class:"flex items-center gap-2"},Iu=["title","onClick","disabled"],Ru=["title","onClick","disabled"],Ou={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},zu=["disabled"],Pu=me(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(r){const t=r,n=e.useModel(r,"modelValue"),o=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"),f=e.computed(()=>t.emptyLabel??"Ще немає груп"),m=e.computed(()=>t.schema?.map(J=>({...J,disabled:t.disabled||J.disabled}))??[]),x=e.computed(()=>m.value.map(J=>N(J))),h=e.computed(()=>t.view==="accordion"),u=e.computed(()=>!!(t.collapsible||h.value)),g=e.computed(()=>t.draggable!==!1),b=e.computed(()=>t.disabled?!1:t.maxGroups?n.value.length<t.maxGroups:!0),C=e.computed(()=>t.disabled||n.value.length<=(t.minGroups||0));e.watch(()=>n.value.length,()=>{_(),k(),w()},{immediate:!0}),e.watch(()=>t.schema,w,{immediate:!0,deep:!0}),e.watch(()=>t.view,()=>{k()},{immediate:!0});function _(){const J=n.value.length;o.value.length<J?o.value=[...o.value,...Array.from({length:J-o.value.length},()=>$r())]:o.value.length>J&&o.value.splice(J)}function k(){const J=n.value.length;h.value?J===0?a.value=-1:a.value>=J?a.value=J-1:a.value<0&&(a.value=0):l.value.length<J?l.value=[...l.value,...Array.from({length:J-l.value.length},()=>!1)]:l.value.length>J&&l.value.splice(J)}function w(){if(!t.minGroups||n.value.length>=t.minGroups)return;const J=t.minGroups-n.value.length,re=Array.from({length:J},S);n.value=[...n.value,...re],k()}function S(){const J={};return m.value.forEach(re=>{J[re.name]=re?.default??null}),J}function T(){b.value&&(n.value=[...n.value,S()],_(),k())}function D(J){C.value||(n.value=n.value.filter((re,de)=>de!==J),_(),h.value?a.value>=n.value.length&&(a.value=n.value.length-1):l.value.splice(J,1),w())}function V(J){if(t.disabled)return;const re=JSON.parse(JSON.stringify(n.value[J]??{}));n.value=[...n.value.slice(0,J+1),re,...n.value.slice(J+1)],_(),h.value?a.value>J&&(a.value+=1):l.value.splice(J+1,0,l.value[J]??!1)}function N(J){return{...J}}function E(J){return h.value?a.value===-1&&J===0?!1:a.value!==J:!!l.value[J]}function A(J){if(u.value){if(h.value){a.value=J;return}l.value[J]=!l.value[J]}}function L(J,re){if(!g.value||t.disabled){re.preventDefault();return}s.value=J,c.value=J,i.value={groups:JSON.parse(JSON.stringify(n.value)),keys:[...o.value],states:[...l.value]},re.dataTransfer?.setData("text/plain",String(J)),re.dataTransfer?.setDragImage?.(re.currentTarget,0,0)}function O(J,re){!g.value||t.disabled||s.value!==null&&Z(J,re)}function F(J,re){Z(J,re)}function I(J){!g.value||t.disabled||ge()}function R(){i.value&&Y(),s.value=null,c.value=null,i.value=null}function G(J,re){const de=[...n.value],[ce]=de.splice(J,1);de.splice(re,0,ce),n.value=de;const be=[...o.value],[De]=be.splice(J,1);if(be.splice(re,0,De),o.value=be,h.value)a.value===J&&(a.value=re);else{const $e=[...l.value],[et]=$e.splice(J,1);$e.splice(re,0,et),l.value=$e}}function Y(){i.value&&(n.value=i.value.groups,o.value=i.value.keys,l.value=i.value.states,i.value=null,c.value=null)}function Z(J,re){if(s.value===null)return;const de=ne(J,re);c.value=de,we(de)}function ne(J,re){if(!re?.currentTarget)return J;const de=re.currentTarget.getBoundingClientRect(),be=re.clientY-de.top>de.height/2?J+1:J;return Math.max(0,Math.min(be,n.value.length))}function we(J){const re=s.value;if(re===null)return;let de=J;if(de>n.value.length&&(de=n.value.length),de===re||de===re+1)return;const ce=de>re?de-1:de;G(re,ce),s.value=ce,c.value=de>re?ce+1:ce}function ge(){i.value=null,s.value=null,c.value=null}return(J,re)=>(e.openBlock(),e.createElementBlock("div",Au,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(de,ce)=>(e.openBlock(),e.createElementBlock("div",{key:o.value[ce],class:e.normalizeClass(["relative border border-gray-200 rounded-lg bg-white transition vs-dataform__group",[t.view==="accordion"?"overflow-hidden":E(ce)?"pt-6 px-6":"p-6"]]),draggable:g.value&&!t.disabled,onDragstart:be=>L(ce,be),onDragend:R,onDragover:e.withModifiers(be=>O(ce,be),["prevent"]),onDragenter:e.withModifiers(be=>F(ce,be),["prevent"]),onDrop:e.withModifiers(be=>I(),["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"&&!E(ce)?"rounded-t-lg":"rounded-lg"]])},[e.createElementVNode("div",Mu,[g.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),u.value?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"rounded-full p-1 text-gray-500 transition hover:bg-gray-100",onClick:be=>A(ce)},[e.createVNode(e.unref(j.ChevronDown),{class:e.normalizeClass(["h-4 w-4 transition",E(ce)?"-rotate-90":"rotate-0"])},null,8,["class"])],8,Du)):e.createCommentVNode("",!0),e.createElementVNode("div",Lu,e.toDisplayString(`${d.value} (${ce+1})`),1)]),e.createElementVNode("div",Tu,[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:be=>V(ce),disabled:t.disabled,draggable:"false"},[e.createVNode(e.unref(j.Copy),{class:"h-4 w-4"})],8,Iu),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:be=>D(ce),disabled:C.value,draggable:"false"},[e.createVNode(e.unref(j.Trash2),{class:"h-4 w-4"})],8,Ru)])],2),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(t.view==="accordion"?"p-6":"pt-6")},[e.createVNode(Je,{class:"vs-dataform__form",schema:x.value,layout:"inline",navigation:!1,values:n.value[ce],"onUpdate:values":be=>n.value[ce]=be,"form-id":o.value[ce],disabled:t.disabled},null,8,["schema","values","onUpdate:values","form-id","disabled"])],2),[[e.vShow,!E(ce)]])],42,Fu))),128)),n.value.length===0?(e.openBlock(),e.createElementBlock("div",Ou,e.toDisplayString(f.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:T,disabled:!b.value},[e.createVNode(e.unref(j.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,zu)]))}}),[["__scopeId","data-v-accd044e"]]),tn="__vs_form_monaco_loader__",vt="__vs_form_monaco_script_loader__",nn="__vs_form_monaco_editor_loader__",Mn=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(r,{expose:t}){const n=r,o=e.useModel(r,"modelValue"),l=e.ref(null),a=e.computed(()=>typeof n.height=="number"?`${n.height}px`:n.height||"280px");let s=null,c=null,i=!1;const d=()=>{if(c)return Promise.resolve(c);if(typeof window>"u")return Promise.resolve(null);const u=window;if(u.monaco?.editor?.create)return c=u.monaco,Promise.resolve(c);if(u[tn])return u[tn];const b=(async()=>{const C=w=>{if(Array.from(document.styleSheets||[]).some(D=>D?.href?.includes(w)))return;const T=document.createElement("link");T.rel="stylesheet",T.href=w,document.head.appendChild(T)},_=w=>{if(u[vt]?.[w])return u[vt][w];u[vt]||={};const S=Array.from(document.scripts).find(T=>T.src===w);return S?(u[vt][w]=new Promise((T,D)=>{const V=S.readyState;if(S.dataset.loaded==="true"||V==="loaded"||V==="complete"){T();return}S.addEventListener("load",()=>{S.dataset.loaded="true",T()},{once:!0}),S.addEventListener("error",N=>D(N),{once:!0})}),u[vt][w]):(u[vt][w]=new Promise((T,D)=>{const V=document.createElement("script");V.src=w,V.async=!0,V.onload=()=>{V.dataset.loaded="true",T()},V.onerror=N=>D(N),document.body.appendChild(V)}),u[vt][w])},k="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs";return C(`${k}/editor/editor.main.min.css`),await _(`${k}/loader.min.js`),u[nn]||(u[nn]=new Promise((w,S)=>{window.require.config({paths:{vs:k}}),window.require(["vs/editor/editor.main"],()=>{c=window.monaco,u.monaco=c,w(c)},T=>S(T))}).catch(w=>{throw delete u[nn],w})),u[nn]})().catch(C=>{throw delete u[tn],C});return u[tn]=b,b},f=()=>{!l.value||!c||(s&&(s.dispose(),s=null),s=c.editor.create(l.value,{value:o.value||"",language:n.syntax,theme:n.theme,automaticLayout:!0,minimap:{enabled:!!n.minimap},readOnly:!!n.disabled}),s.onDidChangeModelContent(()=>{i||(o.value=s.getValue())}))},m=()=>{s?.focus()},x=()=>s,h=()=>c;return e.watch(()=>o.value,u=>{if(!s)return;const g=s.getValue();u!==g&&(i=!0,s.setValue(u||""),i=!1)}),e.watch(()=>n.syntax,u=>{!s||!c||c.editor.setModelLanguage(s.getModel(),u||"xml")}),e.watch(()=>n.theme,u=>{c&&c.editor.setTheme(u||"vs-light")}),e.watch(()=>n.disabled,u=>{s&&s.updateOptions({readOnly:!!u})}),e.watch(()=>n.minimap,u=>{s&&s.updateOptions({minimap:{enabled:!!u}})}),e.onMounted(async()=>{try{const u=await d();if(!u||!u.editor)return;c=u,f()}catch(u){console.error("Failed to load Monaco editor",u)}}),e.onBeforeUnmount(()=>{s&&(s.dispose(),s=null)}),t({focus:m,getEditor:x,getMonaco:h}),(u,g)=>(e.openBlock(),e.createElementBlock("div",{class:"w-full",style:e.normalizeStyle({height:a.value})},[e.createElementVNode("div",{ref_key:"editorContainer",ref:l,class:"w-full h-full overflow-hidden border border-[#CFD9E0] rounded"},null,512)],4))}}),Nr={VsInputText:Bt,VsInputRadio:Sn,"vs-input-text":Bt,"vs-input-password":Zo,"vs-input-textarea":fr,"vs-input-richtext":mr,"vs-input-mask":En,"vs-input-number":lr,"vs-input-radio":Sn,"vs-input-select":Fn,"vs-input-switcher":vn,"vs-input-static":Cn,"vs-input-container":pr,"vs-input-date":Ml,"vs-input-checkbox":ar,"vs-input-file":cr,"vs-input-file2":Nn,file2:Nn,File2:Nn,"vs-input-html":Cn,"vs-input-email":Bn,"vs-input-tel":Vn,"vs-input-datatable":hr,"vs-input-map":kr,"vs-input-file-list":dr,"vs-input-tags":xr,"vs-input-slug":wr,"vs-input-codegen":_r,"vs-input-key-value":vr,"vs-input-text[]":Cr,"vs-input-range":Br,"vs-input-color":Er,"vs-input-native-select":Fn,VsInputArraySelect:en,"vs-input-array":Vr,"vs-input-array-select":en,"array-select":en,"vs-input-address":Sr,"vs-input-datalist":Nu,"vs-input-dataform":Pu,"vs-input-monaco":Mn},ju=e.defineComponent({__name:"behavior",props:{api:{},set:{},button:{},error:{},value:{}},setup(r){const t=r,n=e.inject("values");async function o(){try{if(!t.api)return;const l=t.api.replace("{{value}}",t.value),a=await fetch(l);if(!a.ok){ue.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const s=await a.json();if(!t.set||!n)return;for(const[c,i]of Object.entries(t.set))n.value[c]=s.result[i]}catch(l){console.error(t.error,l)}}return(l,a)=>(e.openBlock(),e.createElementBlock("button",{onClick:o,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(r.button),1))}}),Uu={class:"flex flex-col gap-1 w-full"},Hu=["innerHTML"],Ar=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(r,{emit:t}){const n=r,o=e.useModel(r,"modelValue"),l=t,a=e.computed(()=>Wo[`${n.layout}`]),s=["label","placeholder","info","description","text","html"],c=e.ref(C()),i=e.computed(()=>u(n.item,c.value)),d=e.computed(()=>Nr?.[`vs-input-${n.item.type}`]),f=e.inject("field-props"),m=e.computed(()=>{const k=e.unref(d);if(!k)return new Set;const w=k.props??k.__vccOpts?.props;if(!w)return new Set;const S=Array.isArray(w)?w:Object.keys(w);return new Set(S)}),x=e.computed(()=>{const k={...i.value??{}},w=n.item?.name;w&&f?.value?.[w]&&Object.assign(k,f.value[w]);const S=m.value;return S.size?Object.fromEntries(Object.entries(k).filter(([T])=>S.has(T))):{}}),h=k=>{const w=typeof k=="object"&&k!==null?k:{value:k};l("value-selected",{...w,name:w.name??n.item?.name})};e.onMounted(()=>{c.value=C(),window.addEventListener("storage",_)}),e.onUnmounted(()=>{window.removeEventListener("storage",_)});function u(k,w){if(!k)return{};const S={...k};return s.forEach(T=>{const D=b(k,T,w);D!=null&&(S[T]=D)}),Array.isArray(k.options)&&(S.options=k.options.map(T=>g(T,w))),S}function g(k,w){if(!k)return k;const S={...k},T=b(k,"label",w),D=b(k,"text",w);return T!=null&&(S.label=T),D!=null?S.text=D:T!=null&&(S.text=T),S}function b(k,w,S){const T=`${w}:${S}`;if(k?.[T]!=null)return k[T];if(w==="label"&&k?.[S]!=null)return k[S];if(k?.[w]!=null)return k[w];if(w==="label"){if(k?.ua!=null)return k.ua;if(k?.en!=null)return k.en}if(w==="text"||w==="html"){if(k?.ua!=null)return k.ua;if(k?.en!=null)return k.en}return null}function C(){return typeof window>"u"?"uk":localStorage.getItem("locale")||"uk"}function _(){c.value=C()}return(k,w)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{ua:i.value.ua,error:n.error||"",item:i.value,columns:n.columns,label:i.value.label},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["flex w-full",`${n.item.type}-component`])},[e.createElementVNode("div",Uu,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),e.mergeProps(x.value,{modelValue:o.value,"onUpdate:modelValue":w[0]||(w[0]=S=>o.value=S),onValueSelected:h}),null,16,["modelValue"])),i.value.description&&n.layout!=="settings"?(e.openBlock(),e.createElementBlock("p",{key:0,class:"text-sm text-gray-500",innerHTML:i.value.description},null,8,Hu)):e.createCommentVNode("",!0)]),i.value.behavior?.api&&i.value.behavior?.button?(e.openBlock(),e.createBlock(ju,e.mergeProps({key:0},i.value.behavior,{value:o.value}),null,16,["value"])):e.createCommentVNode("",!0)],2)]),_:1},8,["ua","error","item","columns","label"]))}}),qu={class:"text-sm text-gray-800 mb-[4px] font-medium dark:text-neutral-300"},Gu={class:"vs-compact-form-navigation__rail mt-[6px]"},Ku=["onClick"],Wu=me(e.defineComponent({__name:"vs-compact-form-navigation",props:{target:{},scrollContainer:{},title:{default:"Навігація"},enabled:{type:Boolean,default:!0},width:{default:400}},setup(r,{expose:t}){const n=r,o=e.ref([]),l=e.ref(""),a=e.ref(""),s=e.computed(()=>!!n.enabled),c=e.computed(()=>["vs-compact-form-navigation flex flex-col pl-[6px] pt-[8px] pr-[8px]","sticky top-0 self-start shrink-0","max-h-full min-h-0 overflow-y-auto"]),i=e.computed(()=>{const A=n.width;if(A==null)return{};const L=typeof A=="number"?`${A}px`:`${A}`;return{width:L,minWidth:L}});let d=null,f=0,m=0,x=null,h=null,u=null;const g=()=>N(),b=()=>_();e.watch(()=>n.target,async A=>{if(T(),!A){x=null,o.value=[],l.value="";return}x=A,s.value&&(await e.nextTick(),S(A),_())},{immediate:!0}),e.watch(()=>n.scrollContainer,A=>{if(!s.value){h=A??null;return}C(A??null),e.nextTick(()=>_())},{immediate:!0}),e.onMounted(()=>{n.scrollContainer||C(null),_()}),e.onBeforeUnmount(()=>{T(),C(null,!0),x=null,typeof window<"u"&&(f&&window.cancelAnimationFrame(f),m&&window.cancelAnimationFrame(m))});function C(A,L=!1){if(u&&(u(),u=null),L){h=null;return}if(h=A??null,typeof window>"u")return;const O=A??window,F=window;O.addEventListener("scroll",g,{passive:!0}),F.addEventListener("resize",b),u=()=>{O.removeEventListener("scroll",g),F.removeEventListener("resize",b)}}function _(){if(!s.value||!x)return;f&&typeof window<"u"&&window.cancelAnimationFrame(f);const A=()=>{k(),f=0};typeof window>"u"?A():f=window.requestAnimationFrame(A)}function k(){if(!s.value||!x)return;const A=Array.from(x.querySelectorAll("h1, h2")),L=new Set,O=[];A.forEach((F,I)=>{const R=F.textContent?.trim()??"";if(!R)return;let G=(F.getAttribute("id")??"").trim();G||(G=w(R)||`heading-${I+1}`);let Y=G,Z=1;for(;L.has(Y);)Y=`${G}-${Z+=1}`;F.id!==Y&&Object.assign(F,{id:Y}),L.add(Y),O.push({id:Y,text:R,level:F.tagName.toLowerCase()==="h1"?1:2})}),o.value=O,O.length||(l.value=""),V()}function w(A){return A.toLowerCase().replace(/[^a-z0-9\s-]/g,"").trim().replace(/\s+/g,"-")}function S(A){!A||!s.value||typeof MutationObserver>"u"||(T(),d=new MutationObserver(()=>_()),d.observe(A,{childList:!0,subtree:!0}))}function T(){d&&(d.disconnect(),d=null)}function D(A){const L=h;if(!L)return typeof window>"u"?A.offsetTop:A.getBoundingClientRect().top+window.scrollY;const O=A.getBoundingClientRect(),F=L.getBoundingClientRect();return O.top-F.top+L.scrollTop}function V(){if(!s.value||!o.value.length)return;const A=h,L=(A?A.scrollTop:null)||(typeof window<"u"?window.scrollY:0),O=(A?A.clientHeight:null)||(typeof window<"u"?window.innerHeight:0),F=L+O;let I=null;for(let G=0;G<o.value.length;G+=1){const Y=o.value[G],Z=document.getElementById(Y.id);if(Z){const ne=D(Z);ne+Z.offsetHeight>L&&ne<F&&(I=Y.id)}}!I&&a.value&&(I=a.value),I&&(a.value=I);const R=A?A.scrollHeight-A.clientHeight:document.documentElement.scrollHeight-window.innerHeight;L+5>=R&&(I=o.value[o.value.length-1].id),I&&(l.value=I)}function N(){s.value&&(m&&window.cancelAnimationFrame(m),m=window.requestAnimationFrame(()=>{V(),m=0}))}function E(A){if(!s.value)return;const L=document.getElementById(A);if(!L)return;const O=h,F=Math.max(0,D(L));O?O.scrollTo({top:F,behavior:"smooth"}):typeof window<"u"&&window.scrollTo({top:F,behavior:"smooth"})}return t({refresh:_}),(A,L)=>s.value&&o.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(c.value),style:e.normalizeStyle(i.value)},[e.createElementVNode("h2",qu,e.toDisplayString(r.title),1),e.createElementVNode("div",Gu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,O=>(e.openBlock(),e.createElementBlock("div",{key:O.id,class:e.normalizeClass(["vs-compact-form-navigation__item relative",O.level===2?"vs-compact-form-navigation__item--nested":"",O.id===l.value?"vs-compact-form-navigation__item--active":""])},[e.createElementVNode("button",{type:"button",onClick:F=>E(O.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",O.level===2?"pl-[15px]":"pl-[18px]",O.id===l.value?"text-gray-800":"text-gray-500"])},[e.createElementVNode("span",null,e.toDisplayString(O.text),1)],10,Ku)],2))),128))])],6)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-b3e16a91"]]),mt={required:"Це поле є обов’язковим",email:"Неправильний email",tel:"Неправильний телефон",minlength:r=>`Мінімальна довжина — ${r} символів`,maxlength:r=>`Максимальна довжина — ${r} символів`},Yu=r=>typeof r=="string"?r.trim()?!1:mt.required:Array.isArray(r)?r.map(n=>typeof n=="string"?n.trim():n).filter(n=>n!=null&&n!=="").length?!1:mt.required:typeof r=="number"?Number?.isNaN(r)?mt?.required:!1:r?!1:mt.required,Zu=r=>{const t=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;return r?t.test(r)?!1:mt.email:!1},Xu=r=>{const t=/^\+[1-9]\d{1,14}$/;return r?t.test(r)?!1:mt.tel:!1},Fr=r=>r==null?0:typeof r=="string"?r.trim().length:Array.isArray(r)?r.length:typeof r=="number"?r.toString().length:String(r).length,Ju=(r,t)=>{if(r==null)return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&Fr(r)<n?t?.message||mt.minlength(n):!1},Qu=(r,t)=>{if(r==null||r==="")return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&Fr(r)>n?t?.message||mt.maxlength(n):!1},ep=(r,t)=>{const n=t.pattern??t.regexp,o=typeof n=="string"?new RegExp(n):n;if(Array.isArray(r)){const l=r.filter(Boolean);return l.length===0||l.every(a=>o.test(a))?!1:t.message}return!o.test(r)&&r?t.message:!1},tp=(r,t)=>!1,np=(r,t)=>{switch(typeof t=="string"?t:t.type){case"required":return Yu(r);case"email":return Zu(r);case"tel":return Xu(r);case"regexp":return ep(r,t);case"minlength":return Ju(r,t);case"maxlength":return Qu(r,t);case"custom":return tp();default:return!1}},rp={autocomplete:"select",combobox:"select",datepicker:"date",markedtext:"mask",html:"static",geom:"map",filelist:"file-list",file:"file",dropzone:"file"};function Mr(r){const t=r?.toLowerCase();return rp[t]||t}function Dn(r,t=!1){if(Array.isArray(r)){const o=[];return r.forEach(l=>{const a={...l};a.name=(l.name||l.id||l.key||"").toString(),a.type=Mr(l.type),a.label=l.label||l.ua,a.rules=l.rules||l.validators,a.type==="email"&&!a.rules&&(a.rules=["email"]),l.data&&(a.api=`/api/suggest/${l.data}`),a.disabled=a.disabled??t,Array.isArray(a.schema)&&(a.schema=Dn(a.schema,a.disabled)),o.push(a)}),o}const n=[];return Object.entries(r).forEach(o=>{const l={name:o[0],...o[1],type:Mr(o[1].type),label:o[1].label||o[1].ua,rules:o[1].rules||o[1].validators,disabled:o[1].disabled??t};l.type==="email"&&!l.rules&&(l.rules=["email"]),o[1].type?.includes("list")&&(l.multiple=!0),!l.api&&o[1].data&&(l.api=`/api/suggest/${o[1].data}`),Array.isArray(l.schema)&&(l.schema=Dn(l.schema,l.disabled)),n.push(l)}),n}function op(r,t,n=!1){const o=e.computed(()=>Dn((Array.isArray(t),t),typeof n=="boolean"?n:n.value)),l=e.ref({});function a(d){const f=d?.conditions;if(!f)return!0;const m=Array.isArray(f)?f[0]:f,x=r?.value?.[m];return ur(x,f)}const s=(d=o.value,f=!0)=>(d.forEach(m=>{const x=[],h=Number(m?.minlength),u=Number(m?.maxlength);!Number.isNaN(h)&&Number.isFinite(h)&&x.push({type:"minlength",value:h}),!Number.isNaN(u)&&Number.isFinite(u)&&x.push({type:"maxlength",value:u});const g=[...x,...m.rules||[]];if(g.length){if(!a(m)){delete l.value[m.name];return}let b=!1,C=null;g.forEach(_=>{const k=np(r.value[m.name],_);k&&(b=!0,!C&&typeof k=="string"&&(C=k))}),b&&C?l.value[m.name]=C:delete l.value[m.name]}m.schema&&s(m.schema,!1)}),f&&Object.values(l.value).some(Boolean)?l.value:null),c=e.computed(()=>o.value?.filter(d=>d.hidden!==!0&&a(d)));return{errors:l,validate:s,reset:()=>{r.value={},l.value={}},visibleSchema:c}}const lp={class:"flex w-full h-full min-h-0 gap-6"},ap={key:0,"data-orientation":"horizontal",role:"none",class:"mt-1 shrink-0 h-[1px] w-full bg-slate-100 dark:bg-slate-600"},Je=e.defineComponent({__name:"vs-compact-form",props:e.mergeModels({schema:{default:()=>[]},style:{default:()=>({})},modelValue:{},layout:{default:()=>"default"},formId:{default:()=>""},disabled:{type:Boolean,default:!1},navigation:{type:Boolean,default:!1},navWidth:{default:400},columns:{}},{form:{default:()=>({})},formModifiers:{},modelValue:{default:()=>({})},modelModifiers:{},values:{default:void 0},valuesModifiers:{}}),emits:e.mergeModels(["handle-submit","update:modelValue","value-selected"],["update:form","update:modelValue","update:values"]),setup(r,{expose:t,emit:n}){const o=n,l=r,a=e.useModel(r,"form"),s=e.useModel(r,"modelValue"),c=e.useModel(r,"values"),i=e.computed({get:()=>c.value??s.value,set:O=>{s.value=O,c.value=O}}),{errors:d,validate:f,reset:m,visibleSchema:x}=op(i,l.schema,e.toRef(l,"disabled")),h=e.ref(null),u=e.ref(null),g=e.ref({}),b=e.computed(()=>l.navigation),C=e.computed(()=>l.navWidth),_=e.computed(()=>l.style?.columns),k=Object.freeze({container:12,label:3}),w=e.computed(()=>l.columns??_.value??k),S=e.computed(()=>l.columns!=null||_.value!=null),T=e.computed(()=>S.value?"horizontal":l.layout),D=O=>O?.columns?"horizontal":T.value,V=O=>O?.columns??w.value,N=()=>{o("update:modelValue",i.value),f(),o("handle-submit",i.value)},E=O=>{o("value-selected",O)},A=()=>{l.formId&&(i.value?.id!==void 0&&i.value?.id!==null&&i.value?.id!==""||(i.value={...i.value??{},id:l.formId}))};t({validate:f,reset:m,errors:d}),e.onMounted(()=>{A(),a.value={value:i.value,errors:d.value,reset:m,validate:f,formId:l.formId}}),e.watch(()=>l.formId,()=>{A()},{immediate:!0});function L(O,F){if(O===F)return!0;if(typeof O!="object"||typeof F!="object"||!O||!F)return!1;const I=Object.keys(O),R=Object.keys(F);return I.length!==R.length?!1:I.every(G=>O[G]===F[G])}return e.provide("form",a),e.provide("values",i),e.provide("field-props",g),(O,F)=>(e.openBlock(),e.createElementBlock("div",lp,[e.createElementVNode("div",{class:"flex-1 min-h-0 overflow-y-auto overflow-x-visible",ref_key:"formScrollContainer",ref:u},[e.createElementVNode("form",{ref_key:"formRef",ref:h,onSubmit:e.withModifiers(N,["prevent"]),class:e.normalizeClass(["grid grid-cols-12 p-1",T.value==="default"?"gap-6":"gap-4"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(x),(I,R)=>(e.openBlock(),e.createElementBlock("div",{key:I.name,class:e.normalizeClass(D(I)==="horizontal"?"col-span-12":`col-span-${I.col||12}`)},[e.createVNode(Ar,{style:e.normalizeStyle(r.style),item:I,layout:D(I),columns:V(I),"model-value":i.value[I.name],"onUpdate:modelValue":G=>{const Y=i.value[I.name];L(Y,G)||(i.value[I.name]=G)},error:e.unref(d)[I.name],onValueSelected:E},null,8,["style","item","layout","columns","model-value","onUpdate:modelValue","error"]),D(I)==="settings"&&R+1!==e.unref(x).length?(e.openBlock(),e.createElementBlock("div",ap)):e.createCommentVNode("",!0)],2))),128))],34)],512),e.createVNode(Wu,{target:h.value,"scroll-container":u.value,enabled:b.value,width:C.value},null,8,["target","scroll-container","enabled","width"])]))}}),sp={class:"relative"},ip={class:"w-full h-full fixed top-0 start-0 bg-black bg-opacity-50"},cp={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"},dp={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},up={class:"font-medium text-gray-800 dark:text-[#ffffff]"},pp={class:"p-4 mim-h-0 h-full overflow-auto"},Dr=e.defineComponent({__name:"modal-edit",props:{schema:{},defaultValue:{},mode:{},token:{},form:{},api:{},method:{}},emits:["close","save","edit"],setup(r,{emit:t}){const n=r,o=t,l=e.ref(n.schema),a=e.ref(n.defaultValue?JSON.parse(JSON.stringify(n.defaultValue)):{}),s=e.ref({}),c=e.ref(n.token||""),i=e.ref(n.mode),d=()=>{const u=n.method?.trim().toUpperCase();return u==="GET"||u==="POST"||u==="PUT"?u:i.value==="add"?"POST":"PUT"},f=()=>{ue.notify({type:"success",title:"Успішно",message:`Дані успішно ${i.value==="add"?"збережено":"оновлено"}`})},m=async u=>{if(console.log(u),u.ok){await u.json().catch(()=>({})),f(),o("save",a.value);return}const g=await u.json().catch(()=>({})),b=g.message||g.error;if(u.status===400){ue.notify({type:"warning",title:"Помилка валідації",message:b||"Некоректні дані (400)"});return}if(u.status===500){ue.notify({type:"error",title:"Серверна помилка",message:b||"Виникла помилка на сервері (500)"});return}ue.notify({type:"error",title:"Помилка",message:`Статус: ${u.status}`})};async function x(){const u=s.value.validate();if(u){ue.notify({type:"warning",title:"Помилка валідації",message:Object.entries(u).map(([b,C])=>`${b}: ${C}`).join(`
5
+ `)});return}const g=n.api?.trim();if(g){const b=d();try{const C=await fetch(g,{method:b,headers:b==="GET"?void 0:{"Content-Type":"application/json"},body:b==="GET"?void 0:JSON.stringify(a.value)});await m(C)}catch(C){ue.notify({type:"error",title:"Помилка з’єднання",message:C.message||"Не вдалося виконати запит"})}return}if(c.value)try{const b=await fetch(`/api/table/${c.value}`,{method:i.value==="add"?"POST":"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a.value)});await m(b)}catch(b){ue.notify({type:"error",title:"Помилка з’єднання",message:b.message||"Не вдалося виконати запит"})}else o("edit",a.value),h()}function h(){o("close")}return e.onMounted(async()=>{try{if(n.form&&!n.schema){const u=await fetch(`/api/template/form/${n.form}`);if(!u.ok){ue.notify({type:u.status>=400&&u.status<500?"warning":"error",title:"Error",message:`Error code: ${u.status}`});return}const g=await u.json();l.value=g.schema,g.token&&(c.value=g.token)}else if(n.token&&!n.defaultValue){c.value=n.token;const u=await fetch(`/api/form/${c.value}`);if(!u.ok){ue.notify({type:u.status>=400&&u.status<500?"warning":"error",title:"Error",message:`Error code: ${u.status}`});return}const g=await u.json();l.value=g.schema,g.data?a.value=g.data:i.value="add",g.obj&&(a.value={...a.value,...g.obj})}}catch(u){ue.notify({type:"error",title:"Error",message:u.message||"Unexpected error"}),console.error(u)}}),(u,g)=>(e.openBlock(),e.createElementBlock("div",sp,[e.createElementVNode("div",ip,[e.createElementVNode("div",cp,[e.createElementVNode("div",dp,[e.createElementVNode("h3",up,e.toDisplayString(i.value==="add"?"Додати":"Змінити"),1),e.createElementVNode("button",{onClick:h,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"},[g[2]||(g[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",pp,[l.value?(e.openBlock(),e.createBlock(Je,{key:0,schema:l.value,values:a.value,"onUpdate:values":g[0]||(g[0]=b=>a.value=b),form:s.value,"onUpdate:form":g[1]||(g[1]=b=>s.value=b),formId:c.value},null,8,["schema","values","form","formId"])):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:"vs-form__head mr-5 mb-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},[e.createElementVNode("button",{type:"button",onClick:h,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:x,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"}," Зберегти ")])])])]))}}),fp=1440*60*1e3,mp=["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"],hp=["січ","лют","бер","квіт","трав","черв","лип","серп","вер","жовт","лист","груд"],gp=["нд","пн","вт","ср","чт","пт","сб"];function Ae(r){return r instanceof Date&&!Number.isNaN(r.getTime())}const Vt=r=>new Date(r.getTime());function Ct(r){const t=Vt(r);return t.setHours(0,0,0,0),t}function At(r){const t=Vt(r);return t.setHours(23,59,59,999),t}function Ln(r){return Ct(new Date(r.getFullYear(),r.getMonth(),1))}function Tn(r){return At(new Date(r.getFullYear(),r.getMonth()+1,0))}function In(r,t){const n=new Date(r),o=n.getDate();n.setDate(1),n.setMonth(n.getMonth()+t);const l=new Date(n.getFullYear(),n.getMonth()+1,0).getDate();return n.setDate(Math.min(o,l)),n}function yp(r,t){return In(r,-1)}function rn(r,t){const n=new Date(r);return n.setFullYear(n.getFullYear()+t),n}function Lr(r,t){return rn(r,-t)}function Tr(r){return Ct(new Date(r.getFullYear(),0,1))}function Ir(r){return At(new Date(r.getFullYear(),11,31))}function bp(r){const t=Math.floor(r.getFullYear()/10)*10;return Ct(new Date(t,0,1))}function kp(r){const t=Math.floor(r.getFullYear()/10)*10+9;return At(new Date(t,11,31))}const Qe=r=>r.getFullYear(),on=r=>Math.floor(r.getFullYear()/10)*10;function xp(r){const t=[];let n=Ct(r.start);const o=Ct(r.end);for(;n<=o;)t.push(Vt(n)),n=new Date(n.getTime()+fp);return t}function wp(r){const t=[];let n=Ln(r.start);const o=Tn(r.end);for(;n<=o;)t.push(Vt(n)),n=In(n,1);return t}function _p(r){const t=[];let n=Tr(r.start);const o=Ir(r.end);for(;n<=o;)t.push(Vt(n)),n=rn(n,1);return t}function Rn(r,t=1){const n=Ct(r),o=(n.getDay()-t+7)%7;return n.setDate(n.getDate()-o),n}function vp(r,t=1){const n=Rn(r,t);return n.setDate(n.getDate()+6),At(n)}function Cp(r,t,n=0){const o=Rn(r,n),l=(t-n+7)%7;return o.setDate(o.getDate()+l),o}const ln=(r,t)=>!!r&&!!t&&r.getFullYear()===t.getFullYear()&&r.getMonth()===t.getMonth()&&r.getDate()===t.getDate(),On=(r,t)=>!!r&&!!t&&r.getFullYear()===t.getFullYear()&&r.getMonth()===t.getMonth(),Rr=(r,t)=>!!r&&!!t&&r.getFullYear()===t.getFullYear(),Or=(r,t)=>!!r&&!!t&&ln(r,t)&&r.getHours()===t.getHours(),Ep=(r,t)=>!!r&&!!t&&Or(r,t)&&r.getMinutes()===t.getMinutes();function Bp(r,t){const n=r.getTime();return n>=t.start.getTime()&&n<=t.end.getTime()}const Ft=(r,t)=>!!r&&!!t&&r.getTime()<t.getTime(),Mt=(r,t)=>!!r&&!!t&&r.getTime()>t.getTime();function Vp(r){const t=r.filter(n=>Ae(n));if(t.length)return t.reduce((n,o)=>n.getTime()>=o.getTime()?n:o)}function Sp(r){const t=r.filter(n=>Ae(n));if(t.length)return t.reduce((n,o)=>n.getTime()<=o.getTime()?n:o)}function zr(r,t){const n=Vt(r);return typeof t.year=="number"&&n.setFullYear(t.year),typeof t.month=="number"&&n.setMonth(t.month),typeof t.date=="number"&&n.setDate(t.date),typeof t.hours=="number"&&n.setHours(t.hours),typeof t.minutes=="number"&&n.setMinutes(t.minutes),typeof t.seconds=="number"&&n.setSeconds(t.seconds),typeof t.milliseconds=="number"&&n.setMilliseconds(t.milliseconds),n}const an=(r,t=2)=>String(r).padStart(t,"0");function Pr(r,t){return t==="wide"?mp[r]:hp[r]}function $p(r){return gp[r]}const Np=[{token:"LLLL",format:r=>Pr(r.getMonth(),"wide")},{token:"LLL",format:r=>Pr(r.getMonth(),"abbreviated")},{token:"EE",format:r=>$p(r.getDay())},{token:"yyyy",format:r=>String(r.getFullYear())},{token:"MM",format:r=>an(r.getMonth()+1)},{token:"dd",format:r=>an(r.getDate())},{token:"HH",format:r=>an(r.getHours())},{token:"mm",format:r=>an(r.getMinutes())}];function sn(r,t){if(!Ae(r))return"";let n="",o=0;for(;o<t.length;){const l=Np.find(a=>t.startsWith(a.token,o));l?(n+=l.format(r),o+=l.token.length):(n+=t[o],o+=1)}return n}const Ap={"yyyy-MM-dd":/^(\d{4})-(\d{2})-(\d{2})$/,"dd.MM.yyyy":/^(\d{2})\.(\d{2})\.(\d{4})$/,"dd.MM.yyyy HH:mm":/^(\d{2})\.(\d{2})\.(\d{4}) (\d{2}):(\d{2})$/,"HH:mm":/^(\d{2}):(\d{2})$/,"MM.yyyy":/^(\d{2})\.(\d{4})$/,yyyy:/^(\d{4})$/};function jr(r,t){const n=Ap[t];if(!n){const l=new Date(r);return Ae(l)?l:null}const o=r.match(n);if(!o)return null;switch(t){case"yyyy-MM-dd":{const[,l,a,s]=o,c=new Date(Number(l),Number(a)-1,Number(s));return Ae(c)?c:null}case"dd.MM.yyyy":{const[,l,a,s]=o,c=new Date(Number(s),Number(a)-1,Number(l));return Ae(c)?c:null}case"dd.MM.yyyy HH:mm":{const[,l,a,s,c,i]=o,d=new Date(Number(s),Number(a)-1,Number(l),Number(c),Number(i));return Ae(d)?d:null}case"HH:mm":{const[,l,a]=o,s=new Date;return s.setHours(Number(l),Number(a),0,0),s}case"MM.yyyy":{const[,l,a]=o;return new Date(Number(a),Number(l)-1,1)}case"yyyy":{const[,l]=o;return new Date(Number(l),0,1)}default:return null}}const Fp=["year","month","day","time","custom"],Mp=e.defineComponent({components:{ChevronLeft:j.ChevronLeft,ChevronRight:j.ChevronRight},emits:{elementClick:r=>Ae(r),left:()=>!0,right:()=>!0,heading:()=>!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:r=>typeof r=="string"&&Fp.includes(r)}}}),Dp={class:"v3dp__heading"},Lp=["disabled"],Tp=["disabled"],Ip={class:"v3dp__body"},Rp={class:"v3dp__subheading"},Op={class:"v3dp__elements"},zp=["disabled","onClick"];function Pp(r,t,n,o,l,a){const s=e.resolveComponent("ChevronLeft"),c=e.resolveComponent("ChevronRight");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v3dp__popout",`v3dp__popout-${r.viewMode}`]),style:e.normalizeStyle({"--popout-column-definition":`repeat(${r.columnCount}, 1fr)`}),onMousedown:t[3]||(t[3]=e.withModifiers(()=>{},["prevent"]))},[e.createElementVNode("div",Dp,[e.createElementVNode("button",{class:"v3dp__heading__button v3dp__heading__button__left",disabled:r.leftDisabled,onClick:t[0]||(t[0]=e.withModifiers(i=>r.$emit("left"),["stop","prevent"]))},[e.renderSlot(r.$slots,"arrow-left",{},()=>[e.createVNode(s,{class:"v3dp__heading__icon h-4 w-4"})],!0)],8,Lp),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.headingClickable?"button":"span"),{class:"v3dp__heading__center",onClick:t[1]||(t[1]=e.withModifiers(i=>r.$emit("heading"),["stop","prevent"]))},{default:e.withCtx(()=>[e.renderSlot(r.$slots,"heading",{},void 0,!0)]),_:3})),e.createElementVNode("button",{class:"v3dp__heading__button v3dp__heading__button__right",disabled:r.rightDisabled,onClick:t[2]||(t[2]=e.withModifiers(i=>r.$emit("right"),["stop","prevent"]))},[e.renderSlot(r.$slots,"arrow-right",{},()=>[e.createVNode(c,{class:"v3dp__heading__icon h-4 w-4"})],!0)],8,Tp)]),e.createElementVNode("div",Ip,["subheading"in r.$slots?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",Rp,[e.renderSlot(r.$slots,"subheading",{},void 0,!0)]),t[4]||(t[4]=e.createElementVNode("hr",{class:"v3dp__divider"},null,-1))],64)):e.createCommentVNode("",!0),e.createElementVNode("div",Op,[e.renderSlot(r.$slots,"body",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.items,i=>(e.openBlock(),e.createElementBlock("button",{key:i.key,disabled:i.disabled,class:e.normalizeClass([{selected:i.selected,current:i.current},`v3dp__element__button__${r.viewMode}`]),onClick:e.withModifiers(d=>r.$emit("elementClick",i.value),["stop","prevent"])},[e.createElementVNode("span",null,e.toDisplayString(i.display),1)],10,zp))),128))],!0)])])],38)}const cn=me(Mp,[["render",Pp],["__scopeId","data-v-744d2ba4"]]),jp=e.defineComponent({components:{PickerPopup:cn},emits:{"update:pageDate":r=>Ae(r),select:r=>Ae(r)},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(r,{emit:t}){const n=e.computed(()=>bp(r.pageDate)),o=e.computed(()=>kp(r.pageDate)),l=(m,x,h)=>!x&&!h?!0:!(x&&Qe(m)<Qe(x)||h&&Qe(m)>Qe(h)),a=e.computed(()=>_p({start:n.value,end:o.value}).map(m=>({value:m,key:String(Qe(m)),display:Qe(m),selected:!!r.selected&&Qe(m)===Qe(r.selected),disabled:!l(m,r.lowerLimit,r.upperLimit)}))),s=e.computed(()=>{const m=Qe(n.value),x=Qe(o.value);return`${m} - ${x}`}),c=e.computed(()=>r.lowerLimit&&(on(r.lowerLimit)===on(r.pageDate)||Ft(r.pageDate,r.lowerLimit))),i=e.computed(()=>r.upperLimit&&(on(r.upperLimit)===on(r.pageDate)||Mt(r.pageDate,r.upperLimit)));return{years:a,heading:s,leftDisabled:c,rightDisabled:i,previousPage:()=>t("update:pageDate",Lr(r.pageDate,10)),nextPage:()=>t("update:pageDate",rn(r.pageDate,10))}}});function Up(r,t,n,o,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{columnCount:3,leftDisabled:r.leftDisabled,rightDisabled:r.rightDisabled,items:r.years,viewMode:"year",onLeft:r.previousPage,onRight:r.nextPage,onElementClick:t[0]||(t[0]=c=>r.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.heading),1)]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const Hp=me(jp,[["render",Up]]),qp=e.defineComponent({components:{PickerPopup:cn},emits:{"update:pageDate":r=>Ae(r),select:r=>Ae(r),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(r,{emit:t}){const n=e.computed(()=>Tr(r.pageDate)),o=e.computed(()=>Ir(r.pageDate)),l=e.computed(()=>x=>sn(x,r.format)),a=(x,h,u)=>!h&&!u?!0:!(h&&Ft(x,Ln(h))||u&&Mt(x,Tn(u))),s=e.computed(()=>wp({start:n.value,end:o.value}).map(x=>({value:x,display:l.value(x),key:l.value(x),selected:!!r.selected&&On(r.selected,x),disabled:!a(x,r.lowerLimit,r.upperLimit)}))),c=e.computed(()=>Qe(n.value)),i=e.computed(()=>r.lowerLimit&&(Rr(r.lowerLimit,r.pageDate)||Ft(r.pageDate,r.lowerLimit))),d=e.computed(()=>r.upperLimit&&(Rr(r.upperLimit,r.pageDate)||Mt(r.pageDate,r.upperLimit)));return{months:s,heading:c,leftDisabled:i,rightDisabled:d,previousPage:()=>t("update:pageDate",Lr(r.pageDate,1)),nextPage:()=>t("update:pageDate",rn(r.pageDate,1))}}});function Gp(r,t,n,o,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",columnCount:3,items:r.months,leftDisabled:r.leftDisabled,rightDisabled:r.rightDisabled,viewMode:"month",onLeft:r.previousPage,onRight:r.nextPage,onHeading:t[0]||(t[0]=c=>r.$emit("back")),onElementClick:t[1]||(t[1]=c=>r.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.heading),1)]),_:1},8,["items","leftDisabled","rightDisabled","onLeft","onRight"])}const Kp=me(qp,[["render",Gp]]),Wp=e.defineComponent({components:{PickerPopup:cn},emits:{"update:pageDate":r=>Ae(r),select:r=>Ae(r),back:()=>!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:r=>typeof r=="number"&&Number.isInteger(r)&&r>=0&&r<=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(r,{emit:t}){const n=e.computed(()=>b=>C=>sn(C,b)),o=e.computed(()=>Ln(r.pageDate)),l=e.computed(()=>Tn(r.pageDate)),a=e.computed(()=>({start:o.value,end:l.value})),s=e.computed(()=>({start:Rn(o.value,r.weekStartsOn),end:vp(l.value,r.weekStartsOn)})),c=e.computed(()=>r.customWeekdays?.length===7?r.customWeekdays:null),i=e.computed(()=>{const b=r.weekStartsOn,C=c.value;if(C)return Array.from({length:7}).map((k,w)=>C[(b+w)%7]);const _=n.value(r.weekdayFormat);return Array.from(Array(7)).map((k,w)=>(b+w)%7).map(k=>Cp(new Date,k,r.weekStartsOn)).map(_)}),d=(b,C,_,k)=>k?.dates?.some(w=>ln(b,w))||k?.predicate?.(b)?!1:!C&&!_?!0:!(C&&Ft(b,Ct(C))||_&&Mt(b,At(_))),f=e.computed(()=>{const b=new Date,C=n.value(r.format);return xp(s.value).map(_=>({value:_,display:C(_),selected:!!r.selected&&ln(r.selected,_),current:ln(b,_),disabled:!r.allowOutsideInterval&&!Bp(_,a.value)||!d(_,r.lowerLimit,r.upperLimit,r.disabledDates),key:n.value("yyyy-MM-dd")(_)}))}),m=e.computed(()=>n.value(r.headingFormat)(r.pageDate)),x=e.computed(()=>r.lowerLimit&&(On(r.lowerLimit,r.pageDate)||Ft(r.pageDate,r.lowerLimit))),h=e.computed(()=>r.upperLimit&&(On(r.upperLimit,r.pageDate)||Mt(r.pageDate,r.upperLimit)));return{weekDays:i,days:f,heading:m,leftDisabled:x,rightDisabled:h,previousPage:()=>t("update:pageDate",yp(r.pageDate)),nextPage:()=>t("update:pageDate",In(r.pageDate,1))}}});function Yp(r,t,n,o,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",leftDisabled:r.leftDisabled,rightDisabled:r.rightDisabled,items:r.days,viewMode:"day",onLeft:r.previousPage,onRight:r.nextPage,onHeading:t[0]||(t[0]=c=>r.$emit("back")),onElementClick:t[1]||(t[1]=c=>r.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.heading),1)]),subheading:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.weekDays,(c,i)=>(e.openBlock(),e.createElementBlock("span",{key:c,class:e.normalizeClass(`v3dp__subheading__weekday__${i}`)},e.toDisplayString(c),3))),128))]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const Zp=me(Wp,[["render",Yp]]);function Ur(r,t){const n=r.getBoundingClientRect(),o={height:r.clientHeight,width:r.clientWidth},l=t.getBoundingClientRect();if(!(l.top>=n.top&&l.bottom<=n.top+o.height)){const s=l.top-n.top,c=l.bottom-n.bottom;Math.abs(s)<Math.abs(c)?r.scrollTop+=s:r.scrollTop+=c}}const Xp=e.defineComponent({components:{PickerPopup:cn},emits:{select:r=>Ae(r),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},visible:{type:Boolean,required:!0},disabledTime:{type:Object,required:!1}},setup(r,{emit:t}){const n=e.ref(null),o=e.ref(null),l=e.computed(()=>r.pageDate??r.selected),a=e.ref(l.value.getHours()),s=e.ref(l.value.getMinutes());e.watch(()=>r.selected,h=>{let u=0,g=0;h&&(u=h.getHours(),g=h.getMinutes()),a.value=u,s.value=g});const c=e.computed(()=>[...Array(24).keys()].map(h=>({value:h,date:zr(new Date(l.value.getTime()),{hours:h,minutes:s.value,seconds:0}),selected:a.value===h,ref:e.ref(null)}))),i=e.computed(()=>[...Array(60).keys()].map(h=>({value:h,date:zr(new Date(l.value.getTime()),{hours:a.value,minutes:h,seconds:0}),selected:s.value===h,ref:e.ref(null)}))),d=h=>{s.value=h.value,t("select",h.date)},f=()=>{const h=c.value.find(g=>g.ref.value?.classList?.contains("selected")??!1),u=i.value.find(g=>g.ref.value?.classList?.contains("selected")??!1);h&&u&&(Ur(n.value,h.ref.value),Ur(o.value,u.ref.value))};return e.watch(()=>r.visible,h=>{h&&e.nextTick(f)}),{hoursListRef:n,minutesListRef:o,hours:a,minutes:s,hoursList:c,minutesList:i,padStartZero:h=>`0${h}`.substr(-2),selectMinutes:d,isEnabled:h=>!(r.disabledTime?.dates?.some(u=>Or(h,u)&&Ep(h,u))||r.disabledTime?.predicate?.(h)),scroll:f}}}),Jp={ref:"hoursListRef",class:"v3dp__column"},Qp=["disabled","onClick"],ef={ref:"minutesListRef",class:"v3dp__column"},tf=["disabled","onClick"];function nf(r,t,n,o,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",columnCount:2,leftDisabled:!0,rightDisabled:!0,viewMode:"time",onHeading:t[0]||(t[0]=c=>r.$emit("back"))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.padStartZero(r.hours))+":"+e.toDisplayString(r.padStartZero(r.minutes)),1)]),body:e.withCtx(()=>[e.createElementVNode("div",Jp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.hoursList,c=>(e.openBlock(),e.createElementBlock("button",{key:c.value,ref_for:!0,ref:c.ref,class:e.normalizeClass([{selected:c.selected},"v3dp__element_button__hour"]),disabled:!r.isEnabled(c.date),onClick:e.withModifiers(i=>r.hours=c.value,["stop","prevent"])},[e.createElementVNode("span",null,e.toDisplayString(r.padStartZero(c.value)),1)],10,Qp))),128))],512),e.createElementVNode("div",ef,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.minutesList,c=>(e.openBlock(),e.createElementBlock("button",{key:c.value,ref_for:!0,ref:c.ref,class:e.normalizeClass([{selected:c.selected},"v3dp__element_button__minute"]),disabled:!r.isEnabled(c.date),onClick:e.withModifiers(i=>r.selectMinutes(c),["stop","prevent"])},[e.createElementVNode("span",null,e.toDisplayString(r.padStartZero(c.value)),1)],10,tf))),128))],512)]),_:1})}const rf=me(Xp,[["render",nf],["__scopeId","data-v-43e01bf7"]]),dn=["time","day","month","year"],of=(r,t,n=void 0)=>{let o=n||new Date;const l=Vp([r,o]);l&&(o=l);const a=Sp([t,o]);return a&&(o=a),o},lf=e.defineComponent({components:{YearPicker:Hp,MonthPicker:Kp,DayPicker:Zp,TimePicker:rf},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:r=>typeof r=="string"&&dn.includes(r)},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:r=>[0,1,2,3,4,5,6].includes(r)},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:r=>typeof r=="string"&&dn.includes(r)}},emits:{"update:modelValue":r=>r==null||Ae(r),decadePageChanged:r=>!0,yearPageChanged:r=>!0,monthPageChanged:r=>!0,opened:()=>!0,closed:()=>!0},setup(r,{emit:t,attrs:n}){const o=e.ref("none"),l=e.ref(r.startingViewDate),a=e.ref(null),s=e.ref(!1),c=e.ref(""),i=I=>{const R=I.replace(/[a-zA-Z]/g,"0");return/0/.test(R)?R:""},d=e.computed(()=>i(r.inputFormat));let f=null,m=null;const x=()=>{f?.destroy(),f=null},h=async()=>{if(!m){const{default:I}=await Promise.resolve().then(()=>qn);m=I}return m},u=()=>{f&&f.value!==c.value&&(f.value=c.value??"")},g=async()=>{if(x(),!a.value||!d.value)return;f=(await h())(a.value,{mask:d.value,lazy:!0,overwrite:!0}),u()};e.watchEffect(()=>{if(!c.value)return;const I=jr(c.value,r.inputFormat);I&&(l.value=I)}),e.watchEffect(()=>{c.value=r.modelValue&&Ae(r.modelValue)?sn(r.modelValue,r.inputFormat):""}),e.onMounted(()=>{d.value&&e.nextTick(()=>{g()})}),e.onBeforeUnmount(()=>{x()}),e.watch(d,I=>{I?e.nextTick(()=>{g()}):x()}),e.watch(c,()=>{u()});const b=(I="none")=>{r.disabled||(I!=="none"&&o.value==="none"&&(l.value=r.modelValue||of(r.lowerLimit,r.upperLimit,l.value)),o.value=I,t(I!=="none"?"opened":"closed"))};e.watchEffect(()=>{r.disabled&&(o.value="none")});const C=(I,R)=>{l.value=R,I==="year"?t("decadePageChanged",R):I==="month"?t("yearPageChanged",R):I==="day"&&t("monthPageChanged",R)},_=I=>{l.value=I,r.minimumView==="year"?(b("none"),t("update:modelValue",I)):o.value="month"},k=I=>{l.value=I,r.minimumView==="month"?(b("none"),t("update:modelValue",I)):o.value="day"},w=I=>{l.value=I,r.minimumView==="day"?(b("none"),t("update:modelValue",I)):o.value="time"},S=I=>{b("none"),t("update:modelValue",I)},T=()=>{r.clearable&&(b("none"),t("update:modelValue",null),l.value=r.startingViewDate)},D=()=>s.value=!0,V=()=>b(A.value),N=()=>{s.value=!1,b()},E=I=>{const R=I.keyCode?I.keyCode:I.which;if([27,13].includes(R)&&a.value.blur(),r.typeable){const Y=jr(a.value.value,r.inputFormat);Y&&c.value===sn(Y,r.inputFormat)&&(c.value=a.value.value,t("update:modelValue",Y))}},A=e.computed(()=>{const I=dn.indexOf(r.startingView),R=dn.indexOf(r.minimumView);return I<R?r.minimumView:r.startingView}),L=I=>Object.fromEntries(Object.entries(I??{}).filter(([R,G])=>R.startsWith("--"))),O=e.computed(()=>r.weekDayNames?.length===7?r.weekDayNames:void 0);return{blur:N,focus:V,click:D,input:c,inputRef:a,pageDate:l,renderView:b,updatePageDate:C,selectYear:_,selectMonth:k,selectDay:w,selectTime:S,keyUp:E,normalizedWeekdayNames:O,viewShown:o,goBackFromTimepicker:()=>r.startingView==="time"&&r.minimumView==="time"?null:o.value="day",clearModelValue:T,initialView:A,log:I=>console.log(I),variables:L}}}),af={class:"v3dp__input_wrapper"},sf=["readonly","placeholder","disabled","tabindex"],cf={class:"v3dp__clearable"};function df(r,t,n,o,l,a){const s=e.resolveComponent("year-picker"),c=e.resolveComponent("month-picker"),i=e.resolveComponent("day-picker"),d=e.resolveComponent("time-picker");return e.openBlock(),e.createElementBlock("div",{class:"v3dp__datepicker",style:e.normalizeStyle(r.variables(r.$attrs.style))},[e.createElementVNode("div",af,[e.withDirectives(e.createElementVNode("input",e.mergeProps({type:"text",ref:"inputRef",readonly:!r.typeable,"onUpdate:modelValue":t[0]||(t[0]=f=>r.input=f)},r.$attrs,{placeholder:r.placeholder,disabled:r.disabled,tabindex:r.disabled?-1:0,onKeyup:t[1]||(t[1]=(...f)=>r.keyUp&&r.keyUp(...f)),onBlur:t[2]||(t[2]=(...f)=>r.blur&&r.blur(...f)),onFocus:t[3]||(t[3]=(...f)=>r.focus&&r.focus(...f)),onClick:t[4]||(t[4]=(...f)=>r.click&&r.click(...f))}),null,16,sf),[[e.vModelText,r.input]]),e.withDirectives(e.createElementVNode("div",cf,[e.renderSlot(r.$slots,"clear",{onClear:r.clearModelValue},()=>[e.createElementVNode("i",{onClick:t[5]||(t[5]=f=>r.clearModelValue())},"x")])],512),[[e.vShow,r.clearable&&r.modelValue]])]),e.withDirectives(e.createVNode(s,{pageDate:r.pageDate,"onUpdate:pageDate":t[6]||(t[6]=f=>r.updatePageDate("year",f)),selected:r.modelValue,lowerLimit:r.lowerLimit,upperLimit:r.upperLimit,onSelect:r.selectYear},null,8,["pageDate","selected","lowerLimit","upperLimit","onSelect"]),[[e.vShow,r.viewShown==="year"]]),e.withDirectives(e.createVNode(c,{pageDate:r.pageDate,"onUpdate:pageDate":t[7]||(t[7]=f=>r.updatePageDate("month",f)),selected:r.modelValue,onSelect:r.selectMonth,lowerLimit:r.lowerLimit,upperLimit:r.upperLimit,format:r.monthListFormat,onBack:t[8]||(t[8]=f=>r.viewShown="year")},null,8,["pageDate","selected","onSelect","lowerLimit","upperLimit","format"]),[[e.vShow,r.viewShown==="month"]]),e.withDirectives(e.createVNode(i,{pageDate:r.pageDate,"onUpdate:pageDate":t[9]||(t[9]=f=>r.updatePageDate("day",f)),selected:r.modelValue,weekStartsOn:r.weekStartsOn,lowerLimit:r.lowerLimit,upperLimit:r.upperLimit,headingFormat:r.dayPickerHeadingFormat,disabledDates:r.disabledDates,weekdayFormat:r.weekdayFormat,"allow-outside-interval":r.allowOutsideInterval,format:r.dayFormat,"custom-weekdays":r.normalizedWeekdayNames,onSelect:r.selectDay,onBack:t[10]||(t[10]=f=>r.viewShown="month")},null,8,["pageDate","selected","weekStartsOn","lowerLimit","upperLimit","headingFormat","disabledDates","weekdayFormat","allow-outside-interval","format","custom-weekdays","onSelect"]),[[e.vShow,r.viewShown==="day"]]),e.withDirectives(e.createVNode(d,{pageDate:r.pageDate,visible:r.viewShown==="time",selected:r.modelValue,disabledTime:r.disabledTime,onSelect:r.selectTime,onBack:r.goBackFromTimepicker},null,8,["pageDate","visible","selected","disabledTime","onSelect","onBack"]),[[e.vShow,r.viewShown==="time"]])],4)}const uf=me(lf,[["render",df]]),pf=me(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},mode:{default:"date"},weekStart:{},dayNames:{},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(r,{emit:t}){const n=r,o=t,{inputClass:l}=Te(n.style),a=e.computed(()=>n.mode?n.mode:n.time?"datetime":"date"),s={date:"дд.мм.рррр",datetime:"дд.мм.рррр гг:хх",month:"мм.рррр",week:"рррр-тиждень",time:"гг:хх",year:"рррр"},c=e.computed(()=>n.placeholder||s[a.value]||""),i=e.computed(()=>["py-1.5 px-3 block w-full placeholder:text-[#767f8f] bg-white",l.value,n.customClass,{"!border-red-600":n.error}]),d=e.computed(()=>!n.modelValue&&n.now?new Date:null),f=e.computed({get:()=>k(n.modelValue??d.value,a.value)||void 0,set:R=>o("update:modelValue",w(R,a.value))}),m=["Пн","Вт","Ср","Чт","Пт","Сб","Нд"],x=e.computed(()=>{if(n.dayNames?.length)return n.dayNames.length===7?n.dayNames:m}),h=e.computed(()=>{const R=n.weekStart,G=typeof R=="string"?Number(R):R;return G===void 0||Number.isNaN(G)?1:Math.min(6,Math.max(0,G))}),u=e.computed(()=>{switch(a.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"}}}),g={date:"dd.MM.yyyy",datetime:"dd.MM.yyyy HH:mm",month:"MM.yyyy",time:"HH:mm",week:"dd.MM.yyyy",year:"yyyy"},b=e.computed(()=>g[a.value]||"dd.MM.yyyy"),C=e.computed(()=>({"--vdp-selected-bg-color":n.style?.primaryColor||"#2563eb","--vdp-hover-bg-color":n.style?.primaryColor||"#2563eb","--vdp-selected-color":"#ffffff","--vdp-hover-color":"#ffffff","--vdp-border-radius":n.style?.size==="sm"?"6px":"8px","--vdp-elem-font-size":n.style?.size==="sm"?"0.75em":"0.85em"})),_=e.ref(!1);e.watch(()=>n.modelValue,R=>{R?_.value=!0:n.now||(_.value=!1)},{immediate:!0}),e.watchEffect(()=>{n.now&&!n.modelValue&&!_.value&&(o("update:modelValue",w(new Date,a.value)),_.value=!0)});function k(R,G){if(!R)return null;if(R instanceof Date&&!Number.isNaN(R.getTime()))return R;if(typeof R!="string")return null;switch(G){case"datetime":return V(R);case"time":return A(R);case"month":return N(R);case"year":return E(R);case"week":return L(R);default:return D(R)}}function w(R,G){if(!R)return null;const Y=R instanceof Date?R:k(R,G);if(!Y)return null;switch(G){case"datetime":return`${S(Y)}T${T(Y)}`;case"time":return T(Y);case"month":return`${Y.getFullYear()}-${I(Y.getMonth()+1)}`;case"year":return`${Y.getFullYear()}`;case"week":{const{year:Z,week:ne}=O(Y);return`${Z}-W${I(ne)}`}default:return S(Y)}}function S(R){return`${R.getFullYear()}-${I(R.getMonth()+1)}-${I(R.getDate())}`}function T(R){return`${I(R.getHours())}:${I(R.getMinutes())}`}function D(R){const G=R.split("-");if(G.length<3)return null;const[Y,Z,ne]=G.map(Number);return!Y||!Z||!ne?null:new Date(Y,Z-1,ne)}function V(R){const G=R.includes("T")?R:R.replace(" ","T"),Y=new Date(G);return Number.isNaN(Y.getTime())?null:Y}function N(R){const[G,Y]=R.split("-").map(Number);return!G||Number.isNaN(Y)?null:new Date(G,(Y||1)-1,1)}function E(R){const G=Number(R);return G?new Date(G,0,1):null}function A(R){const G=R.match(/^(\d{1,2}):(\d{2})$/);if(!G)return null;const[,Y,Z]=G,ne=new Date;return ne.setHours(Number(Y),Number(Z),0,0),ne}function L(R){const G=R.match(/^(\d{4})-W(\d{2})$/);if(!G)return null;const[,Y,Z]=G,ne=Number(Z);return F(Number(Y),ne)}function O(R){const G=new Date(Date.UTC(R.getFullYear(),R.getMonth(),R.getDate())),Y=G.getUTCDay()||7;G.setUTCDate(G.getUTCDate()+4-Y);const Z=new Date(Date.UTC(G.getUTCFullYear(),0,1)),ne=Math.ceil(((G.getTime()-Z.getTime())/864e5+1)/7);return{year:G.getUTCFullYear(),week:ne}}function F(R,G){if(!R||!G)return null;const Y=new Date(R,0,1+(G-1)*7),Z=Y.getDay(),ne=Y;return Z<=4?ne.setDate(Y.getDate()-Y.getDay()+1):ne.setDate(Y.getDate()+8-Y.getDay()),ne}function I(R){return String(R).padStart(2,"0")}return(R,G)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-date-picker",n.customClass]),style:e.normalizeStyle(C.value)},[e.createVNode(uf,{modelValue:f.value,"onUpdate:modelValue":G[0]||(G[0]=Y=>f.value=Y),placeholder:c.value,disabled:n.disabled,clearable:n.clearable,typeable:n.editable,"week-day-names":x.value,"week-starts-on":h.value,"starting-view":u.value.startingView,"minimum-view":u.value.minimumView,"input-format":b.value,name:n.name,class:e.normalizeClass(i.value)},null,8,["modelValue","placeholder","disabled","clearable","typeable","week-day-names","week-starts-on","starting-view","minimum-view","input-format","name","class"])],6))}}),[["__scopeId","data-v-97661afe"]]),ff={form:{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"}}},mf={form:{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:"Скасувати"}}},Hr=ff.form.richtext,qr=mf.form.richtext,zn={en:{form:{richtext:Hr}},uk:{form:{richtext:qr}}},Gr=(r={mode:"edit",schema:null})=>new Promise(t=>{const{close:n}=ue.modal({title:r.mode==="add"?"Додати":"Редагувати",template:"",visible:!0,size:"medium",closeClickBack:!0,content:Dr,contentProps:{...r,onClose:()=>{t(null),n()},onSave:o=>{t(o),n()}}})});Je.install=function(t){t.component("VForm",Je),Object.assign(t.config.globalProperties,{$form:Gr}),t.provide("form",Gr),window.v3plugin||(window.v3plugin={})};function ht(r){return typeof r=="string"||r instanceof String}function Kr(r){var t;return typeof r=="object"&&r!=null&&(r==null||(t=r.constructor)==null?void 0:t.name)==="Object"}function Wr(r,t){return Array.isArray(t)?Wr(r,(n,o)=>t.includes(o)):Object.entries(r).reduce((n,o)=>{let[l,a]=o;return t(a,l)&&(n[l]=a),n},{})}const le={NONE:"NONE",LEFT:"LEFT",FORCE_LEFT:"FORCE_LEFT",RIGHT:"RIGHT",FORCE_RIGHT:"FORCE_RIGHT"};function Yr(r){switch(r){case le.LEFT:return le.FORCE_LEFT;case le.RIGHT:return le.FORCE_RIGHT;default:return r}}function Pn(r){return r.replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1")}function un(r,t){if(t===r)return!0;const n=Array.isArray(t),o=Array.isArray(r);let l;if(n&&o){if(t.length!=r.length)return!1;for(l=0;l<t.length;l++)if(!un(t[l],r[l]))return!1;return!0}if(n!=o)return!1;if(t&&r&&typeof t=="object"&&typeof r=="object"){const a=t instanceof Date,s=r instanceof Date;if(a&&s)return t.getTime()==r.getTime();if(a!=s)return!1;const c=t instanceof RegExp,i=r instanceof RegExp;if(c&&i)return t.toString()==r.toString();if(c!=i)return!1;const d=Object.keys(t);for(l=0;l<d.length;l++)if(!Object.prototype.hasOwnProperty.call(r,d[l]))return!1;for(l=0;l<d.length;l++)if(!un(r[d[l]],t[d[l]]))return!1;return!0}else if(t&&r&&typeof t=="function"&&typeof r=="function")return t.toString()===r.toString();return!1}class hf{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?le.NONE:(this.oldSelection.end===this.cursorPos||this.oldSelection.start===this.cursorPos)&&this.oldSelection.end===this.oldSelection.start?le.RIGHT:le.LEFT}}function fe(r,t){return new fe.InputMask(r,t)}function Zr(r){if(r==null)throw new Error("mask property should be defined");return r instanceof RegExp?fe.MaskedRegExp:ht(r)?fe.MaskedPattern:r===Date?fe.MaskedDate:r===Number?fe.MaskedNumber:Array.isArray(r)||r===Array?fe.MaskedDynamic:fe.Masked&&r.prototype instanceof fe.Masked?r:fe.Masked&&r instanceof fe.Masked?r.constructor:r instanceof Function?fe.MaskedFunction:(console.warn("Mask not found for mask",r),fe.Masked)}function St(r){if(!r)throw new Error("Options in not defined");if(fe.Masked){if(r.prototype instanceof fe.Masked)return{mask:r};const{mask:t=void 0,...n}=r instanceof fe.Masked?{mask:r}:Kr(r)&&r.mask instanceof fe.Masked?r:{};if(t){const o=t.mask;return{...Wr(t,(l,a)=>!a.startsWith("_")),mask:t.constructor,_mask:o,...n}}}return Kr(r)?{...r}:{mask:r}}function lt(r){if(fe.Masked&&r instanceof fe.Masked)return r;const t=St(r),n=Zr(t.mask);if(!n)throw new Error("Masked class is not found for provided mask "+t.mask+", appropriate module needs to be imported manually before creating mask.");return t.mask===n&&delete t.mask,t._mask&&(t.mask=t._mask,delete t._mask),new n(t)}fe.createMask=lt;class pn{get selectionStart(){let t;try{t=this._unsafeSelectionStart}catch{}return t??this.value.length}get selectionEnd(){let t;try{t=this._unsafeSelectionEnd}catch{}return t??this.value.length}select(t,n){if(!(t==null||n==null||t===this.selectionStart&&n===this.selectionEnd))try{this._unsafeSelect(t,n)}catch{}}get isActive(){return!1}}fe.MaskElement=pn;const Xr=90,gf=89;class Dt extends pn{constructor(t){super(),this.input=t,this._onKeydown=this._onKeydown.bind(this),this._onInput=this._onInput.bind(this),this._onBeforeinput=this._onBeforeinput.bind(this),this._onCompositionEnd=this._onCompositionEnd.bind(this)}get rootElement(){var t,n,o;return(t=(n=(o=this.input).getRootNode)==null?void 0:n.call(o))!=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===Xr&&t.shiftKey&&(t.metaKey||t.ctrlKey)||t.keyCode===gf&&t.ctrlKey))return t.preventDefault(),this._handlers.redo(t);if(this._handlers.undo&&t.keyCode===Xr&&(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={}}}fe.HTMLMaskElement=Dt;class Jr extends Dt{constructor(t){super(t),this.input=t}get _unsafeSelectionStart(){return this.input.selectionStart!=null?this.input.selectionStart:this.value.length}get _unsafeSelectionEnd(){return this.input.selectionEnd}_unsafeSelect(t,n){this.input.setSelectionRange(t,n)}get value(){return this.input.value}set value(t){this.input.value=t}}fe.HTMLMaskElement=Dt;class jn extends Dt{get _unsafeSelectionStart(){const t=this.rootElement,n=t.getSelection&&t.getSelection(),o=n&&n.anchorOffset,l=n&&n.focusOffset;return l==null||o==null||o<l?o:l}get _unsafeSelectionEnd(){const t=this.rootElement,n=t.getSelection&&t.getSelection(),o=n&&n.anchorOffset,l=n&&n.focusOffset;return l==null||o==null||o>l?o:l}_unsafeSelect(t,n){if(!this.rootElement.createRange)return;const o=this.rootElement.createRange();o.setStart(this.input.firstChild||this.input,t),o.setEnd(this.input.lastChild||this.input,n);const l=this.rootElement,a=l.getSelection&&l.getSelection();a&&(a.removeAllRanges(),a.addRange(o))}get value(){return this.input.textContent||""}set value(t){this.input.textContent=t}}fe.HTMLContenteditableMaskElement=jn;class fn{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>fn.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}}fn.MAX_LENGTH=100;class Qr{constructor(t,n){this.el=t instanceof pn?t:t.isContentEditable&&t.tagName!=="INPUT"&&t.tagName!=="TEXTAREA"?new jn(t):new Jr(t),this.masked=lt(n),this._listeners={},this._value="",this._unmaskedValue="",this._rawInputValue="",this.history=new fn,this._saveSelection=this._saveSelection.bind(this),this._onInput=this._onInput.bind(this),this._onChange=this._onChange.bind(this),this._onDrop=this._onDrop.bind(this),this._onFocus=this._onFocus.bind(this),this._onClick=this._onClick.bind(this),this._onUndo=this._onUndo.bind(this),this._onRedo=this._onRedo.bind(this),this.alignCursor=this.alignCursor.bind(this),this.alignCursorFriendly=this.alignCursorFriendly.bind(this),this._bindEvents(),this.updateValue(),this._onChange()}maskEquals(t){var n;return t==null||((n=this.masked)==null?void 0:n.maskEquals(t))}get mask(){return this.masked.mask}set mask(t){if(this.maskEquals(t))return;if(!(t instanceof fe.Masked)&&this.masked.constructor===Zr(t)){this.masked.updateOptions({mask:t});return}const n=t instanceof fe.Masked?t:lt({mask:t});n.unmaskedValue=this.masked.unmaskedValue,this.masked=n}get value(){return this._value}set value(t){this.value!==t&&(this.masked.value=t,this.updateControl("auto"))}get unmaskedValue(){return this._unmaskedValue}set unmaskedValue(t){this.unmaskedValue!==t&&(this.masked.unmaskedValue=t,this.updateControl("auto"))}get rawInputValue(){return this._rawInputValue}set rawInputValue(t){this.rawInputValue!==t&&(this.masked.rawInputValue=t,this.updateControl(),this.alignCursor())}get typedValue(){return this.masked.typedValue}set typedValue(t){this.masked.typedValueEquals(t)||(this.masked.typedValue=t,this.updateControl("auto"))}get displayValue(){return this.masked.displayValue}_bindEvents(){this.el.bindEvents({selectionChange:this._saveSelection,input:this._onInput,drop:this._onDrop,click:this._onClick,focus:this._onFocus,commit:this._onChange,undo:this._onUndo,redo:this._onRedo})}_unbindEvents(){this.el&&this.el.unbindEvents()}_fireEvent(t,n){const o=this._listeners[t];o&&o.forEach(l=>l(n))}get selectionStart(){return this._cursorChanging?this._changingCursorPos:this.el.selectionStart}get cursorPos(){return this._cursorChanging?this._changingCursorPos:this.el.selectionEnd}set cursorPos(t){!this.el||!this.el.isActive||(this.el.select(t,t),this._saveSelection())}_saveSelection(){this.displayValue!==this.el.value&&console.warn("Element value was changed outside of mask. Syncronize mask using `mask.updateValue()` to work properly."),this._selection={start:this.selectionStart,end:this.cursorPos}}updateValue(){this.masked.value=this.el.value,this._value=this.masked.value,this._unmaskedValue=this.masked.unmaskedValue,this._rawInputValue=this.masked.rawInputValue}updateControl(t){const n=this.masked.unmaskedValue,o=this.masked.value,l=this.masked.rawInputValue,a=this.displayValue,s=this.unmaskedValue!==n||this.value!==o||this._rawInputValue!==l;this._unmaskedValue=n,this._value=o,this._rawInputValue=l,this.el.value!==a&&(this.el.value=a),t==="auto"?this.alignCursor():t!=null&&(this.cursorPos=t),s&&this._fireChangeEvents(),!this._historyChanging&&(s||this.history.isEmpty)&&this.history.push({unmaskedValue:n,selection:{start:this.selectionStart,end:this.cursorPos}})}updateOptions(t){const{mask:n,...o}=t,l=!this.maskEquals(n),a=this.masked.optionsIsChanged(o);l&&(this.mask=n),a&&this.masked.updateOptions(o),(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,le.LEFT))}alignCursorFriendly(){this.selectionStart===this.cursorPos&&this.alignCursor()}on(t,n){return this._listeners[t]||(this._listeners[t]=[]),this._listeners[t].push(n),this}off(t,n){if(!this._listeners[t])return this;if(!n)return delete this._listeners[t],this;const o=this._listeners[t].indexOf(n);return o>=0&&this._listeners[t].splice(o,1),this}_onInput(t){this._inputEvent=t,this._abortUpdateCursor();const n=new hf({value:this.el.value,cursorPos:this.cursorPos,oldValue:this.displayValue,oldSelection:this._selection}),o=this.masked.rawInputValue,l=this.masked.splice(n.startChangePos,n.removed.length,n.inserted,n.removeDirection,{input:!0,raw:!0}).offset,a=o===this.masked.rawInputValue?n.removeDirection:le.NONE;let s=this.masked.nearestInputPos(n.startChangePos+l,a);a!==le.NONE&&(s=this.masked.nearestInputPos(s,le.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}}fe.InputMask=Qr;class he{static normalize(t){return Array.isArray(t)?t:[t,new he]}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}}fe.ChangeDetails=he;class at{constructor(t,n,o){t===void 0&&(t=""),n===void 0&&(n=0),this.value=t,this.from=n,this.stop=o}toString(){return this.value}extend(t){this.value+=String(t)}appendTo(t){return t.append(this.toString(),{tail:!0}).aggregate(t._appendPlaceholder())}get state(){return{value:this.value,from:this.from,stop:this.stop}}set state(t){Object.assign(this,t)}unshift(t){if(!this.value.length||t!=null&&this.from>=t)return"";const n=this.value[0];return this.value=this.value.slice(1),n}shift(){if(!this.value.length)return"";const t=this.value[this.value.length-1];return this.value=this.value.slice(0,-1),t}}class Fe{constructor(t){this._value="",this._update({...Fe.DEFAULTS,...t}),this._initialized=!0}updateOptions(t){this.optionsIsChanged(t)&&this.withValueRefresh(this._update.bind(this,t))}_update(t){Object.assign(this,t)}get state(){return{_value:this.value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value}reset(){this._value=""}get value(){return this._value}set value(t){this.resolve(t,{input:!0})}resolve(t,n){n===void 0&&(n={input:!0}),this.reset(),this.append(t,n,""),this.doCommit()}get unmaskedValue(){return this.value}set unmaskedValue(t){this.resolve(t,{})}get typedValue(){return this.parse?this.parse(this.value,this):this.unmaskedValue}set typedValue(t){this.format?this.value=this.format(t,this):this.unmaskedValue=String(t)}get rawInputValue(){return this.extractInput(0,this.displayValue.length,{raw:!0})}set rawInputValue(t){this.resolve(t,{raw:!0})}get displayValue(){return this.value}get isComplete(){return!0}get isFilled(){return this.isComplete}nearestInputPos(t,n){return t}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),Math.min(this.displayValue.length,n-t)}extractInput(t,n,o){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),this.displayValue.slice(t,n)}extractTail(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),new at(this.extractInput(t,n),t)}appendTail(t){return ht(t)&&(t=new at(String(t))),t.appendTo(this)}_appendCharRaw(t,n){return t?(this._value+=t,new he({inserted:t,rawInserted:t})):new he}_appendChar(t,n,o){n===void 0&&(n={});const l=this.state;let a;if([t,a]=this.doPrepareChar(t,n),t&&(a=a.aggregate(this._appendCharRaw(t,n)),!a.rawInserted&&this.autofix==="pad")){const s=this.state;this.state=l;let c=this.pad(n);const i=this._appendCharRaw(t,n);c=c.aggregate(i),i.rawInserted||c.equals(a)?a=c:this.state=s}if(a.inserted){let s,c=this.doValidate(n)!==!1;if(c&&o!=null){const i=this.state;if(this.overwrite===!0){s=o.state;for(let f=0;f<a.rawInserted.length;++f)o.unshift(this.displayValue.length-a.tailShift)}let d=this.appendTail(o);if(c=d.rawInserted.length===o.toString().length,!(c&&d.inserted)&&this.overwrite==="shift"){this.state=i,s=o.state;for(let f=0;f<a.rawInserted.length;++f)o.shift();d=this.appendTail(o),c=d.rawInserted.length===o.toString().length}c&&d.inserted&&(this.state=i)}c||(a=new he,this.state=l,o&&s&&(o.state=s))}return a}_appendPlaceholder(){return new he}_appendEager(){return new he}append(t,n,o){if(!ht(t))throw new Error("value should be string");const l=ht(o)?new at(String(o)):o;n!=null&&n.tail&&(n._beforeTailState=this.state);let a;[t,a]=this.doPrepare(t,n);for(let s=0;s<t.length;++s){const c=this._appendChar(t[s],n,l);if(!c.rawInserted&&!this.doSkipInvalid(t[s],n,l))break;a.aggregate(c)}return(this.eager===!0||this.eager==="append")&&n!=null&&n.input&&t&&a.aggregate(this._appendEager()),l!=null&&(a.tailShift+=this.appendTail(l).tailShift),a}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),this._value=this.displayValue.slice(0,t)+this.displayValue.slice(n),new he}withValueRefresh(t){if(this._refreshing||!this._initialized)return t();this._refreshing=!0;const n=this.rawInputValue,o=this.value,l=t();return this.rawInputValue=n,this.value&&this.value!==o&&o.indexOf(this.value)===0&&(this.append(o.slice(this.displayValue.length),{},""),this.doCommit()),delete this._refreshing,l}runIsolated(t){if(this._isolated||!this._initialized)return t(this);this._isolated=!0;const n=this.state,o=t(this);return this.state=n,delete this._isolated,o}doSkipInvalid(t,n,o){return!!this.skipInvalid}doPrepare(t,n){return n===void 0&&(n={}),he.normalize(this.prepare?this.prepare(t,this,n):t)}doPrepareChar(t,n){return n===void 0&&(n={}),he.normalize(this.prepareChar?this.prepareChar(t,this,n):t)}doValidate(t){return(!this.validate||this.validate(this.value,this,t))&&(!this.parent||this.parent.doValidate(t))}doCommit(){this.commit&&this.commit(this.value,this)}splice(t,n,o,l,a){o===void 0&&(o=""),l===void 0&&(l=le.NONE),a===void 0&&(a={input:!0});const s=t+n,c=this.extractTail(s),i=this.eager===!0||this.eager==="remove";let d;i&&(l=Yr(l),d=this.extractInput(0,s,{raw:!0}));let f=t;const m=new he;if(l!==le.NONE&&(f=this.nearestInputPos(t,n>1&&t!==0&&!i?le.NONE:l),m.tailShift=f-t),m.aggregate(this.remove(f)),i&&l!==le.NONE&&d===this.rawInputValue)if(l===le.FORCE_LEFT){let x;for(;d===this.rawInputValue&&(x=this.displayValue.length);)m.aggregate(new he({tailShift:-1})).aggregate(this.remove(x-1))}else l===le.FORCE_RIGHT&&c.unshift();return m.aggregate(this.append(o,a,c))}maskEquals(t){return this.mask===t}optionsIsChanged(t){return!un(this,t)}typedValueEquals(t){const n=this.typedValue;return t===n||Fe.EMPTY_VALUES.includes(t)&&Fe.EMPTY_VALUES.includes(n)||(this.format?this.format(t,this)===this.format(this.typedValue,this):!1)}pad(t){return new he}}Fe.DEFAULTS={skipInvalid:!0},Fe.EMPTY_VALUES=[void 0,null,""],fe.Masked=Fe;class gt{constructor(t,n){t===void 0&&(t=[]),n===void 0&&(n=0),this.chunks=t,this.from=n}toString(){return this.chunks.map(String).join("")}extend(t){if(!String(t))return;t=ht(t)?new at(String(t)):t;const n=this.chunks[this.chunks.length-1],o=n&&(n.stop===t.stop||t.stop==null)&&t.from===n.from+n.toString().length;if(t instanceof at)o?n.extend(t.toString()):this.chunks.push(t);else if(t instanceof gt){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 fe.MaskedPattern))return new at(this.toString()).appendTo(t);const n=new he;for(let o=0;o<this.chunks.length;++o){const l=this.chunks[o],a=t._mapPosToBlock(t.displayValue.length),s=l.stop;let c;if(s!=null&&(!a||a.index<=s)&&((l instanceof gt||t._stops.indexOf(s)>=0)&&n.aggregate(t._appendPlaceholder(s)),c=l instanceof gt&&t._blocks[s]),c){const i=c.appendTail(l);n.aggregate(i);const d=l.toString().slice(i.rawInserted.length);d&&n.aggregate(t.append(d,{tail:!0}))}else n.aggregate(t.append(l.toString(),{tail:!0}))}return n}get state(){return{chunks:this.chunks.map(t=>t.state),from:this.from,stop:this.stop,blockIndex:this.blockIndex}}set state(t){const{chunks:n,...o}=t;Object.assign(this,o),this.chunks=n.map(l=>{const a="chunks"in l?new gt:new at;return a.state=l,a})}unshift(t){if(!this.chunks.length||t!=null&&this.from>=t)return"";const n=t!=null?t-this.from:t;let o=0;for(;o<this.chunks.length;){const l=this.chunks[o],a=l.unshift(n);if(l.toString()){if(!a)break;++o}else this.chunks.splice(o,1);if(a)return a}return""}shift(){if(!this.chunks.length)return"";let t=this.chunks.length-1;for(;0<=t;){const n=this.chunks[t],o=n.shift();if(n.toString()){if(!o)break;--t}else this.chunks.splice(t,1);if(o)return o}return""}}class yf{constructor(t,n){this.masked=t,this._log=[];const{offset:o,index:l}=t._mapPosToBlock(n)||(n<0?{index:0,offset:0}:{index:this.masked._blocks.length,offset:0});this.offset=o,this.index=l,this.ok=!1}get block(){return this.masked._blocks[this.index]}get pos(){return this.masked._blockStartPos(this.index)+this.offset}get state(){return{index:this.index,offset:this.offset,ok:this.ok}}set state(t){Object.assign(this,t)}pushState(){this._log.push(this.state)}popState(){const t=this._log.pop();return t&&(this.state=t),t}bindBlock(){this.block||(this.index<0&&(this.index=0,this.offset=0),this.index>=this.masked._blocks.length&&(this.index=this.masked._blocks.length-1,this.offset=this.block.displayValue.length))}_pushLeft(t){for(this.pushState(),this.bindBlock();0<=this.index;--this.index,this.offset=((n=this.block)==null?void 0:n.displayValue.length)||0){var n;if(t())return this.ok=!0}return this.ok=!1}_pushRight(t){for(this.pushState(),this.bindBlock();this.index<this.masked._blocks.length;++this.index,this.offset=0)if(t())return this.ok=!0;return this.ok=!1}pushLeftBeforeFilled(){return this._pushLeft(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,le.FORCE_LEFT),this.offset!==0))return!0})}pushLeftBeforeInput(){return this._pushLeft(()=>{if(!this.block.isFixed)return this.offset=this.block.nearestInputPos(this.offset,le.LEFT),!0})}pushLeftBeforeRequired(){return this._pushLeft(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,le.LEFT),!0})}pushRightBeforeFilled(){return this._pushRight(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,le.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,le.NONE),!0})}pushRightBeforeRequired(){return this._pushRight(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,le.NONE),!0})}}class Un{constructor(t){Object.assign(this,t),this._value="",this.isFixed=!0}get value(){return this._value}get unmaskedValue(){return this.isUnmasking?this.value:""}get rawInputValue(){return this._isRawInput?this.value:""}get displayValue(){return this.value}reset(){this._isRawInput=!1,this._value=""}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),this._value=this._value.slice(0,t)+this._value.slice(n),this._value||(this._isRawInput=!1),new he}nearestInputPos(t,n){n===void 0&&(n=le.NONE);const o=0,l=this._value.length;switch(n){case le.LEFT:case le.FORCE_LEFT:return o;case le.NONE:case le.RIGHT:case le.FORCE_RIGHT:default:return l}}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),this._isRawInput?n-t:0}extractInput(t,n,o){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),o===void 0&&(o={}),o.raw&&this._isRawInput&&this._value.slice(t,n)||""}get isComplete(){return!0}get isFilled(){return!!this._value}_appendChar(t,n){if(n===void 0&&(n={}),this.isFilled)return new he;const o=this.eager===!0||this.eager==="append",a=this.char===t&&(this.isUnmasking||n.input||n.raw)&&(!n.raw||!o)&&!n.tail,s=new he({inserted:this.char,rawInserted:a?this.char:""});return this._value=this.char,this._isRawInput=a&&(n.raw||n.input),s}_appendEager(){return this._appendChar(this.char,{tail:!0})}_appendPlaceholder(){const t=new he;return this.isFilled||(this._value=t.inserted=this.char),t}extractTail(){return new at("")}appendTail(t){return ht(t)&&(t=new at(String(t))),t.appendTo(this)}append(t,n,o){const l=this._appendChar(t[0],n);return o!=null&&(l.tailShift+=this.appendTail(o).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 Lt{constructor(t){const{parent:n,isOptional:o,placeholderChar:l,displayChar:a,lazy:s,eager:c,...i}=t;this.masked=lt(i),Object.assign(this,{parent:n,isOptional:o,placeholderChar:l,displayChar:a,lazy:s,eager:c})}reset(){this.isFilled=!1,this.masked.reset()}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),t===0&&n>=1?(this.isFilled=!1,this.masked.remove(t,n)):new he}get value(){return this.masked.value||(this.isFilled&&!this.isOptional?this.placeholderChar:"")}get unmaskedValue(){return this.masked.unmaskedValue}get rawInputValue(){return this.masked.rawInputValue}get displayValue(){return this.masked.value&&this.displayChar||this.value}get isComplete(){return!!this.masked.value||this.isOptional}_appendChar(t,n){if(n===void 0&&(n={}),this.isFilled)return new he;const o=this.masked.state;let l=this.masked._appendChar(t,this.currentMaskFlags(n));return l.inserted&&this.doValidate(n)===!1&&(l=new he,this.masked.state=o),!l.inserted&&!this.isOptional&&!this.lazy&&!n.input&&(l.inserted=this.placeholderChar),l.skip=!l.inserted&&!this.isOptional,this.isFilled=!!l.inserted,l}append(t,n,o){return this.masked.append(t,this.currentMaskFlags(n),o)}_appendPlaceholder(){return this.isFilled||this.isOptional?new he:(this.isFilled=!0,new he({inserted:this.placeholderChar}))}_appendEager(){return new he}extractTail(t,n){return this.masked.extractTail(t,n)}appendTail(t){return this.masked.appendTail(t)}extractInput(t,n,o){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),this.masked.extractInput(t,n,o)}nearestInputPos(t,n){n===void 0&&(n=le.NONE);const o=0,l=this.value.length,a=Math.min(Math.max(t,o),l);switch(n){case le.LEFT:case le.FORCE_LEFT:return this.isComplete?a:o;case le.RIGHT:case le.FORCE_RIGHT:return this.isComplete?a:l;case le.NONE:default:return a}}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),this.value.slice(t,n).length}doValidate(t){return this.masked.doValidate(this.currentMaskFlags(t))&&(!this.parent||this.parent.doValidate(this.currentMaskFlags(t)))}doCommit(){this.masked.doCommit()}get state(){return{_value:this.value,_rawInputValue:this.rawInputValue,masked:this.masked.state,isFilled:this.isFilled}}set state(t){this.masked.state=t.masked,this.isFilled=t.isFilled}currentMaskFlags(t){var n;return{...t,_beforeTailState:(t==null||(n=t._beforeTailState)==null?void 0:n.masked)||t?._beforeTailState}}pad(t){return new he}}Lt.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 eo extends Fe{updateOptions(t){super.updateOptions(t)}_update(t){const n=t.mask;n&&(t.validate=o=>o.search(n)>=0),super._update(t)}}fe.MaskedRegExp=eo;class Me extends Fe{constructor(t){super({...Me.DEFAULTS,...t,definitions:Object.assign({},Lt.DEFAULT_DEFINITIONS,t?.definitions)})}updateOptions(t){super.updateOptions(t)}_update(t){t.definitions=Object.assign({},this.definitions,t.definitions),super._update(t),this._rebuildMask()}_rebuildMask(){const t=this.definitions;this._blocks=[],this.exposeBlock=void 0,this._stops=[],this._maskedBlocks={};const n=this.mask;if(!n||!t)return;let o=!1,l=!1;for(let a=0;a<n.length;++a){if(this.blocks){const d=n.slice(a),f=Object.keys(this.blocks).filter(x=>d.indexOf(x)===0);f.sort((x,h)=>h.length-x.length);const m=f[0];if(m){const{expose:x,repeat:h,...u}=St(this.blocks[m]),g={lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,overwrite:this.overwrite,autofix:this.autofix,...u,repeat:h,parent:this},b=h!=null?new fe.RepeatBlock(g):lt(g);b&&(this._blocks.push(b),x&&(this.exposeBlock=b),this._maskedBlocks[m]||(this._maskedBlocks[m]=[]),this._maskedBlocks[m].push(this._blocks.length-1)),a+=m.length-1;continue}}let s=n[a],c=s in t;if(s===Me.STOP_CHAR){this._stops.push(this._blocks.length);continue}if(s==="{"||s==="}"){o=!o;continue}if(s==="["||s==="]"){l=!l;continue}if(s===Me.ESCAPE_CHAR){if(++a,s=n[a],!s)break;c=!1}const i=c?new Lt({isOptional:l,lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,...St(t[s]),parent:this}):new Un({char:s,eager:this.eager,isUnmasking:o});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:n,...o}=t;this._blocks.forEach((l,a)=>l.state=n[a]),super.state=o}reset(){super.reset(),this._blocks.forEach(t=>t.reset())}get isComplete(){return this.exposeBlock?this.exposeBlock.isComplete:this._blocks.every(t=>t.isComplete)}get isFilled(){return this._blocks.every(t=>t.isFilled)}get isFixed(){return this._blocks.every(t=>t.isFixed)}get isOptional(){return this._blocks.every(t=>t.isOptional)}doCommit(){this._blocks.forEach(t=>t.doCommit()),super.doCommit()}get unmaskedValue(){return this.exposeBlock?this.exposeBlock.unmaskedValue:this._blocks.reduce((t,n)=>t+=n.unmaskedValue,"")}set unmaskedValue(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.unmaskedValue=t,this.appendTail(n),this.doCommit()}else super.unmaskedValue=t}get value(){return this.exposeBlock?this.exposeBlock.value:this._blocks.reduce((t,n)=>t+=n.value,"")}set value(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.value=t,this.appendTail(n),this.doCommit()}else super.value=t}get typedValue(){return this.exposeBlock?this.exposeBlock.typedValue:super.typedValue}set typedValue(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.typedValue=t,this.appendTail(n),this.doCommit()}else super.typedValue=t}get displayValue(){return this._blocks.reduce((t,n)=>t+=n.displayValue,"")}appendTail(t){return super.appendTail(t).aggregate(this._appendPlaceholder())}_appendEager(){var t;const n=new he;let o=(t=this._mapPosToBlock(this.displayValue.length))==null?void 0:t.index;if(o==null)return n;this._blocks[o].isFilled&&++o;for(let l=o;l<this._blocks.length;++l){const a=this._blocks[l]._appendEager();if(!a.inserted)break;n.aggregate(a)}return n}_appendCharRaw(t,n){n===void 0&&(n={});const o=this._mapPosToBlock(this.displayValue.length),l=new he;if(!o)return l;for(let s=o.index,c;c=this._blocks[s];++s){var a;const i=c._appendChar(t,{...n,_beforeTailState:(a=n._beforeTailState)==null||(a=a._blocks)==null?void 0:a[s]});if(l.aggregate(i),i.consumed)break}return l}extractTail(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const o=new gt;return t===n||this._forEachBlocksInRange(t,n,(l,a,s,c)=>{const i=l.extractTail(s,c);i.stop=this._findStopBefore(a),i.from=this._blockStartPos(a),i instanceof gt&&(i.blockIndex=a),o.extend(i)}),o}extractInput(t,n,o){if(t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),o===void 0&&(o={}),t===n)return"";let l="";return this._forEachBlocksInRange(t,n,(a,s,c,i)=>{l+=a.extractInput(c,i,o)}),l}_findStopBefore(t){let n;for(let o=0;o<this._stops.length;++o){const l=this._stops[o];if(l<=t)n=l;else break}return n}_appendPlaceholder(t){const n=new he;if(this.lazy&&t==null)return n;const o=this._mapPosToBlock(this.displayValue.length);if(!o)return n;const l=o.index,a=t??this._blocks.length;return this._blocks.slice(l,a).forEach(s=>{if(!s.lazy||t!=null){var c;n.aggregate(s._appendPlaceholder((c=s._blocks)==null?void 0:c.length))}}),n}_mapPosToBlock(t){let n="";for(let o=0;o<this._blocks.length;++o){const l=this._blocks[o],a=n.length;if(n+=l.displayValue,t<=n.length)return{index:o,offset:t-a}}}_blockStartPos(t){return this._blocks.slice(0,t).reduce((n,o)=>n+=o.displayValue.length,0)}_forEachBlocksInRange(t,n,o){n===void 0&&(n=this.displayValue.length);const l=this._mapPosToBlock(t);if(l){const a=this._mapPosToBlock(n),s=a&&l.index===a.index,c=l.offset,i=a&&s?a.offset:this._blocks[l.index].displayValue.length;if(o(this._blocks[l.index],l.index,c,i),a&&!s){for(let d=l.index+1;d<a.index;++d)o(this._blocks[d],d,0,this._blocks[d].displayValue.length);o(this._blocks[a.index],a.index,0,a.offset)}}}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const o=super.remove(t,n);return this._forEachBlocksInRange(t,n,(l,a,s,c)=>{o.aggregate(l.remove(s,c))}),o}nearestInputPos(t,n){if(n===void 0&&(n=le.NONE),!this._blocks.length)return 0;const o=new yf(this,t);if(n===le.NONE)return o.pushRightBeforeInput()||(o.popState(),o.pushLeftBeforeInput())?o.pos:this.displayValue.length;if(n===le.LEFT||n===le.FORCE_LEFT){if(n===le.LEFT){if(o.pushRightBeforeFilled(),o.ok&&o.pos===t)return t;o.popState()}if(o.pushLeftBeforeInput(),o.pushLeftBeforeRequired(),o.pushLeftBeforeFilled(),n===le.LEFT){if(o.pushRightBeforeInput(),o.pushRightBeforeRequired(),o.ok&&o.pos<=t||(o.popState(),o.ok&&o.pos<=t))return o.pos;o.popState()}return o.ok?o.pos:n===le.FORCE_LEFT?0:(o.popState(),o.ok||(o.popState(),o.ok)?o.pos:0)}return n===le.RIGHT||n===le.FORCE_RIGHT?(o.pushRightBeforeInput(),o.pushRightBeforeRequired(),o.pushRightBeforeFilled()?o.pos:n===le.FORCE_RIGHT?this.displayValue.length:(o.popState(),o.ok||(o.popState(),o.ok)?o.pos:this.nearestInputPos(t,le.LEFT))):t}totalInputPositions(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);let o=0;return this._forEachBlocksInRange(t,n,(l,a,s,c)=>{o+=l.totalInputPositions(s,c)}),o}maskedBlock(t){return this.maskedBlocks(t)[0]}maskedBlocks(t){const n=this._maskedBlocks[t];return n?n.map(o=>this._blocks[o]):[]}pad(t){const n=new he;return this._forEachBlocksInRange(0,this.displayValue.length,o=>n.aggregate(o.pad(t))),n}}Me.DEFAULTS={...Fe.DEFAULTS,lazy:!0,placeholderChar:"_"},Me.STOP_CHAR="`",Me.ESCAPE_CHAR="\\",Me.InputDefinition=Lt,Me.FixedDefinition=Un,fe.MaskedPattern=Me;class Tt extends Me{get _matchFrom(){return this.maxLength-String(this.from).length}constructor(t){super(t)}updateOptions(t){super.updateOptions(t)}_update(t){const{to:n=this.to||0,from:o=this.from||0,maxLength:l=this.maxLength||0,autofix:a=this.autofix,...s}=t;this.to=n,this.from=o,this.maxLength=Math.max(String(n).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 n="",o="";const[,l,a]=t.match(/^(\D*)(\d*)(\D*)/)||[];return a&&(n="0".repeat(l.length)+a,o="9".repeat(l.length)+a),n=n.padEnd(this.maxLength,"0"),o=o.padEnd(this.maxLength,"9"),[n,o]}doPrepareChar(t,n){n===void 0&&(n={});let o;return[t,o]=super.doPrepareChar(t.replace(/\D/g,""),n),t||(o.skip=!this.isComplete),[t,o]}_appendCharRaw(t,n){if(n===void 0&&(n={}),!this.autofix||this.value.length+1>this.maxLength)return super._appendCharRaw(t,n);const o=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(o[this.value.length],n):Number(a)>this.to?!n.tail&&this.autofix==="pad"&&this.value.length+1<this.maxLength?super._appendCharRaw(o[this.value.length],n).aggregate(this._appendCharRaw(t,n)):super._appendCharRaw(l[this.value.length],n):super._appendCharRaw(t,n)}doValidate(t){const n=this.value;if(n.search(/[^0]/)===-1&&n.length<=this._matchFrom)return!0;const[l,a]=this.boundaries(n);return this.from<=Number(a)&&Number(l)<=this.to&&super.doValidate(t)}pad(t){const n=new he;if(this.value.length===this.maxLength)return n;const o=this.value,l=this.maxLength-this.value.length;if(l){this.reset();for(let a=0;a<l;++a)n.aggregate(super._appendCharRaw("0",t));o.split("").forEach(a=>this._appendCharRaw(a))}return n}}fe.MaskedRange=Tt;const bf="d{.}`m{.}`Y";class st extends Me{static extractPatternOptions(t){const{mask:n,pattern:o,...l}=t;return{...l,mask:ht(n)?n:o}}constructor(t){super(st.extractPatternOptions({...st.DEFAULTS,...t}))}updateOptions(t){super.updateOptions(t)}_update(t){const{mask:n,pattern:o,blocks:l,...a}={...st.DEFAULTS,...t},s=Object.assign({},st.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:ht(n)?n:o,blocks:s})}doValidate(t){const n=this.date;return super.doValidate(t)&&(!this.isComplete||this.isDateExist(this.value)&&n!=null&&(this.min==null||this.min<=n)&&(this.max==null||n<=this.max))}isDateExist(t){return this.format(this.parse(t,this),this).indexOf(t)>=0}get date(){return this.typedValue}set date(t){this.typedValue=t}get typedValue(){return this.isComplete?super.typedValue:null}set typedValue(t){super.typedValue=t}maskEquals(t){return t===Date||super.maskEquals(t)}optionsIsChanged(t){return super.optionsIsChanged(st.extractPatternOptions(t))}}st.GET_DEFAULT_BLOCKS=()=>({d:{mask:Tt,from:1,to:31,maxLength:2},m:{mask:Tt,from:1,to:12,maxLength:2},Y:{mask:Tt,from:1900,to:9999}}),st.DEFAULTS={...Me.DEFAULTS,mask:Date,pattern:bf,format:(r,t)=>{if(!r)return"";const n=String(r.getDate()).padStart(2,"0"),o=String(r.getMonth()+1).padStart(2,"0"),l=r.getFullYear();return[n,o,l].join(".")},parse:(r,t)=>{const[n,o,l]=r.split(".").map(Number);return new Date(l,o-1,n)}},fe.MaskedDate=st;class It extends Fe{constructor(t){super({...It.DEFAULTS,...t}),this.currentMask=void 0}updateOptions(t){super.updateOptions(t)}_update(t){super._update(t),"mask"in t&&(this.exposeMask=void 0,this.compiledMasks=Array.isArray(t.mask)?t.mask.map(n=>{const{expose:o,...l}=St(n),a=lt({overwrite:this._overwrite,eager:this._eager,skipInvalid:this._skipInvalid,...l});return o&&(this.exposeMask=a),a}):[])}_appendCharRaw(t,n){n===void 0&&(n={});const o=this._applyDispatch(t,n);return this.currentMask&&o.aggregate(this.currentMask._appendChar(t,this.currentMaskFlags(n))),o}_applyDispatch(t,n,o){t===void 0&&(t=""),n===void 0&&(n={}),o===void 0&&(o="");const l=n.tail&&n._beforeTailState!=null?n._beforeTailState._value:this.value,a=this.rawInputValue,s=n.tail&&n._beforeTailState!=null?n._beforeTailState._rawInputValue:a,c=a.slice(s.length),i=this.currentMask,d=new he,f=i?.state;return this.currentMask=this.doDispatch(t,{...n},o),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)):f&&(this.currentMask.state=f)),d}_appendPlaceholder(){const t=this._applyDispatch();return this.currentMask&&t.aggregate(this.currentMask._appendPlaceholder()),t}_appendEager(){const t=this._applyDispatch();return this.currentMask&&t.aggregate(this.currentMask._appendEager()),t}appendTail(t){const n=new he;return t&&n.aggregate(this._applyDispatch("",{},t)),n.aggregate(this.currentMask?this.currentMask.appendTail(t):super.appendTail(t))}currentMaskFlags(t){var n,o;return{...t,_beforeTailState:((n=t._beforeTailState)==null?void 0:n.currentMaskRef)===this.currentMask&&((o=t._beforeTailState)==null?void 0:o.currentMask)||t._beforeTailState}}doDispatch(t,n,o){return n===void 0&&(n={}),o===void 0&&(o=""),this.dispatch(t,this,n,o)}doValidate(t){return super.doValidate(t)&&(!this.currentMask||this.currentMask.doValidate(this.currentMaskFlags(t)))}doPrepare(t,n){n===void 0&&(n={});let[o,l]=super.doPrepare(t,n);if(this.currentMask){let a;[o,a]=super.doPrepare(o,this.currentMaskFlags(n)),l=l.aggregate(a)}return[o,l]}doPrepareChar(t,n){n===void 0&&(n={});let[o,l]=super.doPrepareChar(t,n);if(this.currentMask){let a;[o,a]=super.doPrepareChar(o,this.currentMaskFlags(n)),l=l.aggregate(a)}return[o,l]}reset(){var t;(t=this.currentMask)==null||t.reset(),this.compiledMasks.forEach(n=>n.reset())}get value(){return this.exposeMask?this.exposeMask.value:this.currentMask?this.currentMask.value:""}set value(t){this.exposeMask?(this.exposeMask.value=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.value=t}get unmaskedValue(){return this.exposeMask?this.exposeMask.unmaskedValue:this.currentMask?this.currentMask.unmaskedValue:""}set unmaskedValue(t){this.exposeMask?(this.exposeMask.unmaskedValue=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.unmaskedValue=t}get typedValue(){return this.exposeMask?this.exposeMask.typedValue:this.currentMask?this.currentMask.typedValue:""}set typedValue(t){if(this.exposeMask){this.exposeMask.typedValue=t,this.currentMask=this.exposeMask,this._applyDispatch();return}let n=String(t);this.currentMask&&(this.currentMask.typedValue=t,n=this.currentMask.unmaskedValue),this.unmaskedValue=n}get displayValue(){return this.currentMask?this.currentMask.displayValue:""}get isComplete(){var t;return!!((t=this.currentMask)!=null&&t.isComplete)}get isFilled(){var t;return!!((t=this.currentMask)!=null&&t.isFilled)}remove(t,n){const o=new he;return this.currentMask&&o.aggregate(this.currentMask.remove(t,n)).aggregate(this._applyDispatch()),o}get state(){var t;return{...super.state,_rawInputValue:this.rawInputValue,compiledMasks:this.compiledMasks.map(n=>n.state),currentMaskRef:this.currentMask,currentMask:(t=this.currentMask)==null?void 0:t.state}}set state(t){const{compiledMasks:n,currentMaskRef:o,currentMask:l,...a}=t;n&&this.compiledMasks.forEach((s,c)=>s.state=n[c]),o!=null&&(this.currentMask=o,this.currentMask.state=l),super.state=a}extractInput(t,n,o){return this.currentMask?this.currentMask.extractInput(t,n,o):""}extractTail(t,n){return this.currentMask?this.currentMask.extractTail(t,n):super.extractTail(t,n)}doCommit(){this.currentMask&&this.currentMask.doCommit(),super.doCommit()}nearestInputPos(t,n){return this.currentMask?this.currentMask.nearestInputPos(t,n):super.nearestInputPos(t,n)}get overwrite(){return this.currentMask?this.currentMask.overwrite:this._overwrite}set overwrite(t){this._overwrite=t}get eager(){return this.currentMask?this.currentMask.eager:this._eager}set eager(t){this._eager=t}get skipInvalid(){return this.currentMask?this.currentMask.skipInvalid:this._skipInvalid}set skipInvalid(t){this._skipInvalid=t}get autofix(){return this.currentMask?this.currentMask.autofix:this._autofix}set autofix(t){this._autofix=t}maskEquals(t){return Array.isArray(t)?this.compiledMasks.every((n,o)=>{if(!t[o])return;const{mask:l,...a}=t[o];return un(n,a)&&n.maskEquals(l)}):super.maskEquals(t)}typedValueEquals(t){var n;return!!((n=this.currentMask)!=null&&n.typedValueEquals(t))}}It.DEFAULTS={...Fe.DEFAULTS,dispatch:(r,t,n,o)=>{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,le.FORCE_LEFT);return s.rawInputValue!==l?(s.reset(),s.append(l,{raw:!0})):i||s.remove(d),s.append(r,t.currentMaskFlags(n)),s.appendTail(o),{index:c,weight:s.rawInputValue.length,totalInputPositions:s.totalInputPositions(0,Math.max(d,s.nearestInputPos(s.displayValue.length,le.FORCE_LEFT)))}});return a.sort((s,c)=>c.weight-s.weight||c.totalInputPositions-s.totalInputPositions),t.compiledMasks[a[0].index]}},fe.MaskedDynamic=It;class Rt extends Me{constructor(t){super({...Rt.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){const{enum:n,...o}=t;if(n){const l=n.map(c=>c.length),a=Math.min(...l),s=Math.max(...l)-a;o.mask="*".repeat(a),s&&(o.mask+="["+"*".repeat(s)+"]"),this.enum=n}super._update(o)}_appendCharRaw(t,n){n===void 0&&(n={});const o=Math.min(this.nearestInputPos(0,le.FORCE_RIGHT),this.value.length),l=this.enum.filter(a=>this.matchValue(a,this.unmaskedValue+t,o));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,n))});const a=super._appendCharRaw(l[0][this.value.length],n);return l.length===1&&l[0].slice(this.unmaskedValue.length).split("").forEach(s=>a.aggregate(super._appendCharRaw(s))),a}return new he({skip:!this.isComplete})}extractTail(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),new at("",t)}remove(t,n){if(t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),t===n)return new he;const o=Math.min(super.nearestInputPos(0,le.FORCE_RIGHT),this.value.length);let l;for(l=t;l>=0&&!(this.enum.filter(c=>this.matchValue(c,this.value.slice(o,l),o)).length>1);--l);const a=super.remove(l,n);return a.tailShift+=l-t,a}get isComplete(){return this.enum.indexOf(this.value)>=0}}Rt.DEFAULTS={...Me.DEFAULTS,matchValue:(r,t,n)=>r.indexOf(t,n)===n},fe.MaskedEnum=Rt;class to extends Fe{updateOptions(t){super.updateOptions(t)}_update(t){super._update({...t,validate:t.mask})}}fe.MaskedFunction=to;var no;class ze extends Fe{constructor(t){super({...ze.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){super._update(t),this._updateRegExps()}_updateRegExps(){const t="^"+(this.allowNegative?"[+|\\-]?":""),n="\\d*",o=(this.scale?"("+Pn(this.radix)+"\\d{0,"+this.scale+"})?":"")+"$";this._numberRegExp=new RegExp(t+n+o),this._mapToRadixRegExp=new RegExp("["+this.mapToRadix.map(Pn).join("")+"]","g"),this._thousandsSeparatorRegExp=new RegExp(Pn(this.thousandsSeparator),"g")}_removeThousandsSeparators(t){return t.replace(this._thousandsSeparatorRegExp,"")}_insertThousandsSeparators(t){const n=t.split(this.radix);return n[0]=n[0].replace(/\B(?=(\d{3})+(?!\d))/g,this.thousandsSeparator),n.join(this.radix)}doPrepareChar(t,n){n===void 0&&(n={});const[o,l]=super.doPrepareChar(this._removeThousandsSeparators(this.scale&&this.mapToRadix.length&&(n.input&&n.raw||!n.input&&!n.raw)?t.replace(this._mapToRadixRegExp,this.radix):t),n);return t&&!o&&(l.skip=!0),o&&!this.allowPositive&&!this.value&&o!=="-"&&l.aggregate(this._appendChar("-")),[o,l]}_separatorsCount(t,n){n===void 0&&(n=!1);let o=0;for(let l=0;l<t;++l)this._value.indexOf(this.thousandsSeparator,l)===l&&(++o,n&&(t+=this.thousandsSeparator.length));return o}_separatorsCountFromSlice(t){return t===void 0&&(t=this._value),this._separatorsCount(this._removeThousandsSeparators(t).length,!0)}extractInput(t,n,o){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),[t,n]=this._adjustRangeWithSeparators(t,n),this._removeThousandsSeparators(super.extractInput(t,n,o))}_appendCharRaw(t,n){n===void 0&&(n={});const o=n.tail&&n._beforeTailState?n._beforeTailState._value:this._value,l=this._separatorsCountFromSlice(o);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 x;this.min!=null&&this.min<0&&this.number<this.min&&(x=this.min),this.max!=null&&this.max>0&&this.number>this.max&&(x=this.max),x!=null&&(this.autofix?(this._value=this.format(x,this).replace(ze.UNMASKED_RADIX,this.radix),i||(i=a===this._value&&!n.tail)):c=!1),c&&(c=!!this._value.match(this._numberRegExp))}let d;c?d=new he({inserted:this._value.slice(a.length),rawInserted:i?"":t,skip:i}):(this._value=a,d=new he),this._value=this._insertThousandsSeparators(this._value);const f=n.tail&&n._beforeTailState?n._beforeTailState._value:this._value,m=this._separatorsCountFromSlice(f);return d.tailShift+=(m-l)*this.thousandsSeparator.length,d}_findSeparatorAround(t){if(this.thousandsSeparator){const n=t-this.thousandsSeparator.length+1,o=this.value.indexOf(this.thousandsSeparator,n);if(o<=t)return o}return-1}_adjustRangeWithSeparators(t,n){const o=this._findSeparatorAround(t);o>=0&&(t=o);const l=this._findSeparatorAround(n);return l>=0&&(n=l+this.thousandsSeparator.length),[t,n]}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),[t,n]=this._adjustRangeWithSeparators(t,n);const o=this.value.slice(0,t),l=this.value.slice(n),a=this._separatorsCount(o.length);this._value=this._insertThousandsSeparators(this._removeThousandsSeparators(o+l));const s=this._separatorsCountFromSlice(o);return new he({tailShift:(s-a)*this.thousandsSeparator.length})}nearestInputPos(t,n){if(!this.thousandsSeparator)return t;switch(n){case le.NONE:case le.LEFT:case le.FORCE_LEFT:{const o=this._findSeparatorAround(t-1);if(o>=0){const l=o+this.thousandsSeparator.length;if(t<l||this.value.length<=l||n===le.FORCE_LEFT)return o}break}case le.RIGHT:case le.FORCE_RIGHT:{const o=this._findSeparatorAround(t);if(o>=0)return o+this.thousandsSeparator.length}}return t}doCommit(){if(this.value){const t=this.number;let n=t;this.min!=null&&(n=Math.max(n,this.min)),this.max!=null&&(n=Math.min(n,this.max)),n!==t&&(this.unmaskedValue=this.format(n,this));let o=this.value;this.normalizeZeros&&(o=this._normalizeZeros(o)),this.padFractionalZeros&&this.scale>0&&(o=this._padFractionalZeros(o)),this._value=o}super.doCommit()}_normalizeZeros(t){const n=this._removeThousandsSeparators(t).split(this.radix);return n[0]=n[0].replace(/^(\D*)(0*)(\d*)/,(o,l,a,s)=>l+s),t.length&&!/\d$/.test(n[0])&&(n[0]=n[0]+"0"),n.length>1&&(n[1]=n[1].replace(/0*$/,""),n[1].length||(n.length=1)),this._insertThousandsSeparators(n.join(this.radix))}_padFractionalZeros(t){if(!t)return t;const n=t.split(this.radix);return n.length<2&&n.push(""),n[1]=n[1].padEnd(this.scale,"0"),n.join(this.radix)}doSkipInvalid(t,n,o){n===void 0&&(n={});const l=this.scale===0&&t!==this.thousandsSeparator&&(t===this.radix||t===ze.UNMASKED_RADIX||this.mapToRadix.includes(t));return super.doSkipInvalid(t,n,o)&&!l}get unmaskedValue(){return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix,ze.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(ze.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)||ze.EMPTY_VALUES.includes(t)&&ze.EMPTY_VALUES.includes(this.typedValue))&&!(t===0&&this.value==="")}}no=ze,ze.UNMASKED_RADIX=".",ze.EMPTY_VALUES=[...Fe.EMPTY_VALUES,0],ze.DEFAULTS={...Fe.DEFAULTS,mask:Number,radix:",",thousandsSeparator:"",mapToRadix:[no.UNMASKED_RADIX],min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER,scale:2,normalizeZeros:!0,padFractionalZeros:!1,parse:Number,format:r=>r.toLocaleString("en-US",{useGrouping:!1,maximumFractionDigits:20})},fe.MaskedNumber=ze;const mn={MASKED:"value",UNMASKED:"unmaskedValue",TYPED:"typedValue"};function Hn(r,t,n){t===void 0&&(t=mn.MASKED),n===void 0&&(n=mn.MASKED);const o=lt(r);return l=>o.runIsolated(a=>(a[t]=l,a[n]))}function ro(r,t,n,o){return Hn(t,n,o)(r)}fe.PIPE_TYPE=mn,fe.createPipe=Hn,fe.pipe=ro;class oo extends Me{get repeatFrom(){var t;return(t=Array.isArray(this.repeat)?this.repeat[0]:this.repeat===1/0?0:this.repeat)!=null?t:0}get repeatTo(){var t;return(t=Array.isArray(this.repeat)?this.repeat[1]:this.repeat)!=null?t:1/0}constructor(t){super(t)}updateOptions(t){super.updateOptions(t)}_update(t){var n,o,l;const{repeat:a,...s}=St(t);this._blockOpts=Object.assign({},this._blockOpts,s);const c=lt(this._blockOpts);this.repeat=(n=(o=a??c.repeat)!=null?o:this.repeat)!=null?n:1/0,super._update({mask:"m".repeat(Math.max(this.repeatTo===1/0&&((l=this._blocks)==null?void 0:l.length)||0,this.repeatFrom)),blocks:{m: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(lt(this._blockOpts)),this.mask+="m",this._blocks[this._blocks.length-1]}_appendCharRaw(t,n){n===void 0&&(n={});const o=new he;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,f;d=(s=this._blocks[i])!=null?s:f=!f&&this._allocateBlock(i);++i){var l,a,s,c;const m=d._appendChar(t,{...n,_beforeTailState:(c=n._beforeTailState)==null||(c=c._blocks)==null?void 0:c[i]});if(m.skip&&f){this._blocks.pop(),this.mask=this.mask.slice(1);break}if(o.aggregate(m),m.consumed)break}return o}_trimEmptyTail(t,n){var o,l;t===void 0&&(t=0);const a=Math.max(((o=this._mapPosToBlock(t))==null?void 0:o.index)||0,this.repeatFrom,0);let s;n!=null&&(s=(l=this._mapPosToBlock(n))==null?void 0:l.index),s==null&&(s=this._blocks.length-1);let 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,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const o=super.remove(t,n);return this._trimEmptyTail(t,n),o}totalInputPositions(t,n){return t===void 0&&(t=0),n==null&&this.repeatTo===1/0?1/0:super.totalInputPositions(t,n)}get state(){return super.state}set state(t){this._blocks.length=t._blocks.length,this.mask=this.mask.slice(0,this._blocks.length),super.state=t}}fe.RepeatBlock=oo;try{globalThis.IMask=fe}catch{}const qn=Object.freeze(Object.defineProperty({__proto__:null,ChangeDetails:he,ChunksTailDetails:gt,DIRECTION:le,HTMLContenteditableMaskElement:jn,HTMLInputMaskElement:Jr,HTMLMaskElement:Dt,InputMask:Qr,MaskElement:pn,Masked:Fe,MaskedDate:st,MaskedDynamic:It,MaskedEnum:Rt,MaskedFunction:to,MaskedNumber:ze,MaskedPattern:Me,MaskedRange:Tt,MaskedRegExp:eo,PIPE_TYPE:mn,PatternFixedDefinition:Un,PatternInputDefinition:Lt,RepeatBlock:oo,createMask:lt,createPipe:Hn,default:fe,forceDirection:Yr,normalizeOpts:St,pipe:ro},Symbol.toStringTag,{value:"Module"})),kf=async r=>{try{const t=new FormData;return t.append("unique","true"),t.append("file",r),(await(await fetch("/file/upload/uploads?id=&form=&table=",{method:"POST",body:t})).json())?.result}catch(t){console.error(t)}},xf=async(r,t,n)=>{const o=t.clipboardData?.items;if(o){const l=t.clipboardData?.getData("text/html"),a=t.clipboardData?.getData("text/plain");if(l){const{state:s,dispatch:c}=r,{tr:i}=s,d=n.fromSchema(r.state.schema),f=new DOMParser().parseFromString(l,"text/html").body,m=d.parse(f),x=i.replaceSelectionWith(m);return c(x),t.preventDefault(),!0}if(a){const{state:s,dispatch:c}=r,{tr:i}=s,d=i.insertText(a,s.selection.from,s.selection.to);return c(d),t.preventDefault(),!0}for(let s=0;s<o.length;s++){const c=o[s];if(c.type.startsWith("image/")){const i=c.getAsFile();if(i){const d=await kf(i),{schema:f}=r.state,m=f.nodes.image.create({src:d?.file_path}),x=r.state.tr.replaceSelectionWith(m);return r.dispatch(x),t.preventDefault(),!0}}}}return!1},wf="https://esm.sh",je="3.7.2",lo="3.7.2",_f=`?deps=@tiptap/core@${je},@tiptap/pm@${lo}`,Ue=r=>`${wf}/${r}${_f}`,He={core:Ue(`@tiptap/core@${je}`),starterKit:Ue(`@tiptap/starter-kit@${je}`),textStyle:Ue(`@tiptap/extension-text-style@${je}`),table:Ue(`@tiptap/extension-table@${je}`),highlight:Ue(`@tiptap/extension-highlight@${je}`),subscript:Ue(`@tiptap/extension-subscript@${je}`),superscript:Ue(`@tiptap/extension-superscript@${je}`),link:Ue(`@tiptap/extension-link@${je}`),image:Ue(`@tiptap/extension-image@${je}`),textAlign:Ue(`@tiptap/extension-text-align@${je}`),heading:Ue(`@tiptap/extension-heading@${je}`),paragraph:Ue(`@tiptap/extension-paragraph@${je}`),pmModel:Ue(`@tiptap/pm@${lo}/model`)},Ot="__vs_form_tiptap_loader__",qe=r=>import(r),Ne=(r,t)=>r?.[t]||r?.default?.[t]||r?.default?.default?.[t]||r?.default||r,ao={1:"font-weight:700; font-size:30px;",2:"font-weight:700; font-size:26px;",3:"font-weight:700; font-size:22px;",4:"font-weight:700; font-size:18px;",5:"font-weight:500; font-size:16px;",6:"font-weight:400; font-size:14px;"},vf=r=>r.extend({addOptions(){return{...this.parent?.(),levels:[1,2,3,4,5,6]}}}).extend({addAttributes(){return{...this.parent?.(),level:{default:1,renderHTML:t=>{const n=t.level||1;return{class:`heading-level-${n}`,style:ao[n]||ao[1]}}}}}}),Cf=r=>r.configure({HTMLAttributes:{style:"min-height: 1rem;"}}),Ef=(r,t,n,o,l)=>{const a=t.extend({renderHTML({HTMLAttributes:s}){return["div",{style:"overflow-x: auto;"},["table",s,0]]},parseHTML(){return[{tag:"div.table-wrapper table",priority:100},{tag:"table"}]}});return r.extend({addExtensions(){return[a.configure({HTMLAttributes:{class:"editor-content"},resizable:!0}),n,o,l]}})},Bf=r=>r.extend({addAttributes(){return{...this.parent?.(),fontFamily:{default:null,parseHTML:t=>t.style.fontFamily?.replace(/['"]/g,""),renderHTML:t=>t.fontFamily?{style:`font-family: ${t.fontFamily}`}:{}},fontSize:{default:null,parseHTML:t=>t.style.fontSize?.replace(/['"]/g,""),renderHTML:t=>t.fontSize?{style:`font-size: ${t.fontSize}`}:{}},color:{default:null,parseHTML:t=>t.style.color?.replace(/['"]/g,""),renderHTML:t=>t.color?{style:`color: ${t.color}`}:{}},backgroundColor:{default:null,parseHTML:t=>t.style.backgroundColor?.replace(/['"]/g,""),renderHTML:t=>!t.backgroundColor||t.backgroundColor==="transparent"?{}:{style:`background-color: ${t.backgroundColor}`}}}},addCommands(){return{setFontFamily:t=>({chain:n})=>n().setMark("textStyle",{fontFamily:t}).run(),unsetFontFamily:()=>({chain:t})=>t().setMark("textStyle",{fontFamily:null}).removeEmptyTextStyle().run(),setFontSize:t=>({chain:n})=>n().setMark("textStyle",{fontSize:t}).run(),unsetFontSize:()=>({chain:t})=>t().setMark("textStyle",{fontSize:null}).removeEmptyTextStyle().run(),setColor:t=>({chain:n})=>n().setMark("textStyle",{color:t}).run(),unsetColor:()=>({chain:t})=>t().setMark("textStyle",{color:null}).removeEmptyTextStyle().run(),setBackgroundColor:t=>({chain:n})=>n().setMark("textStyle",{backgroundColor:t}).run(),unsetBackgroundColor:()=>({chain:t})=>t().setMark("textStyle",{backgroundColor:null}).removeEmptyTextStyle().run()}}}),Vf=r=>r.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 Sf(){if(typeof window>"u")return null;const r=window;return r[Ot]||(r[Ot]=Promise.all([qe(He.core),qe(He.starterKit),qe(He.textStyle),qe(He.table),qe(He.highlight),qe(He.subscript),qe(He.superscript),qe(He.link),qe(He.image),qe(He.textAlign),qe(He.heading),qe(He.paragraph),qe(He.pmModel)]).then(([t,n,o,l,a,s,c,i,d,f,m,x,h])=>{const u=Ne(t,"Editor"),g=Ne(t,"Node"),b=Ne(t,"Extension"),C=Ne(n,"StarterKit"),_=Ne(o,"TextStyle"),k=Ne(l,"TableKit"),w=Ne(l,"Table"),S=Ne(l,"TableRow"),T=Ne(l,"TableCell"),D=Ne(l,"TableHeader"),V=Ne(a,"Highlight"),N=Ne(s,"Subscript"),E=Ne(c,"Superscript"),A=Ne(i,"Link"),L=Ne(d,"Image"),O=Ne(f,"TextAlign"),F=Ne(m,"Heading"),I=Ne(x,"Paragraph"),R=Ne(h,"DOMParser");if(!u||!g||!C||!_||!k||!w||!S||!T||!D||!V||!N||!E||!A||!L||!O||!F||!I||!R)throw new Error("Failed to resolve one or more Tiptap modules");return{Editor:u,Extension:b,ProseMirrorDOMParser:R,StarterKit:C,ExtendedTextStyle:Bf(_),Highlight:V,Subscript:N,Superscript:E,Link:A,Image:L,TextAlign:O,CustomHeading:vf(F),CustomParagraph:Cf(I),CustomTableKit:Ef(k,w,S,T,D),Iframe:Vf(g)}}).catch(t=>{throw delete r[Ot],t})),r[Ot]}function $f(r){let t=!1;const n=e.shallowRef(null),o=e.ref(!1),l=e.ref(""),a=async(d,f="")=>{if(!d)return null;o.value=!0,l.value="";try{const m=await Sf();if(!m)return null;const x=new m.Editor({element:d,content:f,extensions:[m.StarterKit.configure({history:{depth:100,newGroupDelay:500},code:{HTMLAttributes:{class:"editor-code"}},codeBlock:{HTMLAttributes:{class:"editor-codeblock"}},paragraph:!1,heading:!1,link:!1}),m.Superscript,m.Subscript,m.ExtendedTextStyle,m.CustomParagraph,m.CustomHeading,m.Highlight,m.Image.configure({inline:!0,allowBase64:!0,HTMLAttributes:{class:"editor-image"}}),m.TextAlign.configure({types:["heading","paragraph"]}),m.Link.configure({HTMLAttributes:{class:"editor-link"},openOnClick:!1,autolink:!0}),m.CustomTableKit,m.Iframe],editorProps:{handlePaste:(h,u)=>xf(h,u,m.ProseMirrorDOMParser),handleKeyDown:(h,u)=>{if(u.key==="Tab"){const g=h.state,{$anchor:b}=g.selection;let C=!1;for(let _=b.depth;_>0;_--){const k=b.node(_);if(k&&(k.type.name==="bulletList"||k.type.name==="orderedList")){C=!0;break}}return C?!1:(u.preventDefault(),!0)}return!1}}});return n.value=e.markRaw(x),x}catch(m){return l.value="Failed to load rich text editor dependencies.",console.error("Failed to initialize rich text editor",m),null}finally{o.value=!1}},s=e.computed(()=>n.value||null);return e.watch(n,d=>{d&&n.value.on("update",f=>{if(!t){t=!0;const m=f.editor.getHTML();r.modelValue,setTimeout(()=>{t=!1},10)}})}),{editor:n,editorInstance:s,focusEditor:()=>{n.value&&!n.value.isFocused&&n.value.commands.focus()},createEditor:a,destroyEditor:()=>{n.value&&(n.value.destroy(),n.value=null)},isLoading:o,loadError:l}}function Nf(r,t,n,{toEditorContent:o,toSourceContent:l}={}){const a=e.ref(!1),s=e.ref(""),c=e.ref(null);return{isHtmlMode:a,htmlContent:s,htmlTextarea:c,toggleHtmlMode:async f=>{if(a.value=f,f)r.value&&(s.value=l?await l(r.value.getHTML(),t):r.value.getHTML()),e.nextTick(()=>{c.value&&c.value.focus?.()});else if(r.value){const m=o?await o(s.value,t):s.value;r.value.commands.setContent(m,!0),e.nextTick(()=>{r.value?.commands?.focus?.()})}},onHtmlInput:f=>{s.value=f,n&&n("update:modelValue",f)}}}function Af(){const r=e.ref(!1);return{isFullscreen:r,toggleFullscreen:()=>{r.value=!r.value}}}const yt=r=>r.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;"),zt=r=>{let t=yt(r||"");return t=t.replace(/!\[([^\]]*)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(n,o,l,a)=>{const s=a?` title="${yt(a)}"`:"";return`<img src="${yt(l)}" alt="${yt(o)}"${s}>`}),t=t.replace(/\[([^\]]+)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(n,o,l,a)=>{const s=a?` title="${yt(a)}"`:"";return`<a href="${yt(l)}"${s} target="_blank" rel="noopener noreferrer">${o}</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},Pt=r=>/^\s*\d+\.\s+/.test(r),Gn=r=>/^\s*[-*+]\s+/.test(r),so=r=>/^\s*[-*+]\s+\[[ xX]\]\s+/.test(r),Kn=r=>/^\s*>\s?/.test(r),Wn=r=>/^\s*\|?(?:\s*:?-{3,}:?\s*\|)+\s*:?-{3,}:?\s*\|?\s*$/.test(r),io=r=>r.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(t=>zt(t.trim())),Ff=(r,t)=>{const n=r[t],o=r[t+1];if(!n||!o||!n.includes("|")||!Wn(o))return null;const l=io(n),a=[];let s=t+2;for(;s<r.length&&r[s].includes("|")&&r[s].trim()!=="";){const d=io(r[s]);a.push(`<tr>${d.map(f=>`<td>${f}</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}},Mf=(r,t)=>{const n=Pt(r[t]),o=n?"ol":"ul",l=[];let a=t;for(;a<r.length;){const s=r[a];if(s.trim()===""||!(n?Pt(s):(Gn(s)||so(s))&&!Pt(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":""}> ${zt(i[2])}</li>`)}else{const d=s.replace(/^\s*(?:[-*+]|\d+\.)\s+/,"");l.push(`<li>${zt(d)}</li>`)}a+=1}return{html:`<${o}>${l.join("")}</${o}>`,nextIndex:a}},Df=(r,t)=>{const o=r[t].replace(/^```/,"").trim(),l=[];let a=t+1;for(;a<r.length&&!r[a].startsWith("```");)l.push(r[a]),a+=1;return{html:`<pre><code${o?` class="language-${yt(o)}"`:""}>${yt(l.join(`
6
+ `))}</code></pre>`,nextIndex:a<r.length?a+1:a}},Lf=(r,t)=>{const n=[];let o=t;for(;o<r.length;){const l=r[o];if(l.trim()===""||l.startsWith("```")||/^#{1,6}\s+/.test(l)||/^---+$/.test(l.trim())||/^\*\*\*+$/.test(l.trim())||Kn(l)||Pt(l)||Gn(l)||o+1<r.length&&l.includes("|")&&Wn(r[o+1]))break;n.push(l.trim()),o+=1}return{html:`<p>${zt(n.join(" "))}</p>`,nextIndex:o}},co=r=>{const n=(r||"").replace(/\r\n/g,`
7
7
  `).split(`
8
- `),o=[];let l=0;for(;l<n.length;){const a=n[l],s=a.trim();if(!s){l+=1;continue}if(a.startsWith("```")){const d=_f(n,l);o.push(d.html),l=d.nextIndex;continue}const c=a.match(/^(#{1,6})\s+(.*)$/);if(c){const d=c[1].length;o.push(`<h${d}>${zt(c[2])}</h${d}>`),l+=1;continue}if(/^---+$/.test(s)||/^\*\*\*+$/.test(s)){o.push("<hr>"),l+=1;continue}if(a.includes("|")&&l+1<n.length&&Gn(n[l+1])){const d=xf(n,l);if(d){o.push(d.html),l=d.nextIndex;continue}}if(Kn(a)){const d=[];for(;l<n.length&&Kn(n[l]);)d.push(n[l].replace(/^\s*>\s?/,"")),l+=1;o.push(`<blockquote>${ao(d.join(`
9
- `))}</blockquote>`);continue}if(Pt(a)||qn(a)||oo(a)){const d=wf(n,l);o.push(d.html),l=d.nextIndex;continue}const i=vf(n,l);o.push(i.html),l=i.nextIndex}return o.join("")},Wn=r=>(r.textContent||"").replace(/\u00a0/g," "),so=r=>Array.from(r.childNodes).map(t=>Yn(t)).join(""),Cf=r=>{const t=Array.from(r.querySelectorAll("tr"));if(!t.length)return"";const n=c=>`| ${Array.from(c.children).map(d=>so(d).trim()).join(" | ")} |`,o=t[0],l=o?Array.from(o.children).length:0,a=`| ${Array(Math.max(l,1)).fill("---").join(" | ")} |`,s=t.slice(1).map(c=>n(c));return[n(o),a,...s].join(`
10
- `)},io=(r,t=!1)=>Array.from(r.children).filter(n=>n.nodeType===Node.ELEMENT_NODE).map((n,o)=>{const l=n,a=l.querySelector('input[type="checkbox"]'),s=Array.from(l.childNodes).filter(c=>!(c instanceof HTMLInputElement)).map(c=>Yn(c)).join("").trim();return a?`- [${a.checked?"x":" "}] ${s}`:t?`${o+1}. ${s}`:`- ${s}`}).join(`
11
- `);function Yn(r){if(r.nodeType===Node.TEXT_NODE)return Wn(r);if(r.nodeType!==Node.ELEMENT_NODE)return"";const t=r,n=t.tagName.toLowerCase(),o=so(t);switch(n){case"br":return`
8
+ `),o=[];let l=0;for(;l<n.length;){const a=n[l],s=a.trim();if(!s){l+=1;continue}if(a.startsWith("```")){const d=Df(n,l);o.push(d.html),l=d.nextIndex;continue}const c=a.match(/^(#{1,6})\s+(.*)$/);if(c){const d=c[1].length;o.push(`<h${d}>${zt(c[2])}</h${d}>`),l+=1;continue}if(/^---+$/.test(s)||/^\*\*\*+$/.test(s)){o.push("<hr>"),l+=1;continue}if(a.includes("|")&&l+1<n.length&&Wn(n[l+1])){const d=Ff(n,l);if(d){o.push(d.html),l=d.nextIndex;continue}}if(Kn(a)){const d=[];for(;l<n.length&&Kn(n[l]);)d.push(n[l].replace(/^\s*>\s?/,"")),l+=1;o.push(`<blockquote>${co(d.join(`
9
+ `))}</blockquote>`);continue}if(Pt(a)||Gn(a)||so(a)){const d=Mf(n,l);o.push(d.html),l=d.nextIndex;continue}const i=Lf(n,l);o.push(i.html),l=i.nextIndex}return o.join("")},Yn=r=>(r.textContent||"").replace(/\u00a0/g," "),uo=r=>Array.from(r.childNodes).map(t=>Zn(t)).join(""),Tf=r=>{const t=Array.from(r.querySelectorAll("tr"));if(!t.length)return"";const n=c=>`| ${Array.from(c.children).map(d=>uo(d).trim()).join(" | ")} |`,o=t[0],l=o?Array.from(o.children).length:0,a=`| ${Array(Math.max(l,1)).fill("---").join(" | ")} |`,s=t.slice(1).map(c=>n(c));return[n(o),a,...s].join(`
10
+ `)},po=(r,t=!1)=>Array.from(r.children).filter(n=>n.nodeType===Node.ELEMENT_NODE).map((n,o)=>{const l=n,a=l.querySelector('input[type="checkbox"]'),s=Array.from(l.childNodes).filter(c=>!(c instanceof HTMLInputElement)).map(c=>Zn(c)).join("").trim();return a?`- [${a.checked?"x":" "}] ${s}`:t?`${o+1}. ${s}`:`- ${s}`}).join(`
11
+ `);function Zn(r){if(r.nodeType===Node.TEXT_NODE)return Yn(r);if(r.nodeType!==Node.ELEMENT_NODE)return"";const t=r,n=t.tagName.toLowerCase(),o=uo(t);switch(n){case"br":return`
12
12
  `;case"p":return`${o.trim()}
13
13
 
14
- `;case"strong":case"b":return`**${o}**`;case"em":case"i":return`*${o}*`;case"del":case"s":return`~~${o}~~`;case"code":return t.parentElement?.tagName.toLowerCase()==="pre"?o:`\`${o}\``;case"pre":{const l=t.querySelector("code"),c=(l?.className||"").match(/language-([a-z0-9_-]+)/i)?.[1]||"",i=Wn(l||t);return`\`\`\`${c}
14
+ `;case"strong":case"b":return`**${o}**`;case"em":case"i":return`*${o}*`;case"del":case"s":return`~~${o}~~`;case"code":return t.parentElement?.tagName.toLowerCase()==="pre"?o:`\`${o}\``;case"pre":{const l=t.querySelector("code"),c=(l?.className||"").match(/language-([a-z0-9_-]+)/i)?.[1]||"",i=Yn(l||t);return`\`\`\`${c}
15
15
  ${i}
16
16
  \`\`\`
17
17
 
@@ -21,30 +21,30 @@ ${i}
21
21
 
22
22
  `;case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":{const l=Number(n[1]);return`${"#".repeat(l)} ${o.trim()}
23
23
 
24
- `}case"ul":return`${io(t,!1)}
24
+ `}case"ul":return`${po(t,!1)}
25
25
 
26
- `;case"ol":return`${io(t,!0)}
26
+ `;case"ol":return`${po(t,!0)}
27
27
 
28
28
  `;case"a":{const l=t.getAttribute("href")||"";return`[${o||l}](${l})`}case"img":{const l=t.getAttribute("alt")||"",a=t.getAttribute("src")||"";return a?`![${l}](${a})`:""}case"hr":return`---
29
29
 
30
- `;case"table":return`${Cf(t)}
30
+ `;case"table":return`${Tf(t)}
31
31
 
32
- `;default:return o}}const co=r=>{if(!r)return"";if(typeof window>"u"||typeof DOMParser>"u")return r;const n=new DOMParser().parseFromString(r,"text/html");return Array.from(n.body.childNodes).map(o=>Yn(o)).join("").replace(/\n{3,}/g,`
32
+ `;default:return o}}const fo=r=>{if(!r)return"";if(typeof window>"u"||typeof DOMParser>"u")return r;const n=new DOMParser().parseFromString(r,"text/html");return Array.from(n.body.childNodes).map(o=>Zn(o)).join("").replace(/\n{3,}/g,`
33
33
 
34
- `).trim()},Zn=async(r,t)=>t!=="md"?r||"":ao(r||""),Ef=async(r,t)=>t!=="md"?r||"":co(r||""),Bf=async(r,t)=>t!=="md"?r||"":co(r||""),Vf=r=>String(r).trim().toLowerCase().split("-")[0],Sf=()=>typeof window>"u"?"uk":Vf(localStorage.getItem("language")||localStorage.getItem("locale")||navigator.language||"uk"),$f=(r,t)=>{const n=t.replace(/^form\.richtext\./,"");return On?.[r]?.form?.richtext?.[n]||On?.uk?.form?.richtext?.[n]||t},uo=r=>r.startsWith("form.richtext.")?r:`form.richtext.${r}`;function hn(){const t=e.getCurrentInstance()?.appContext?.config?.globalProperties,n=t?.$i18n;return{t:l=>{const a=t?.$t,s=t?.$te,c=typeof n?.te=="function"?n.te.bind(n):null;if(typeof a=="function"){const i=uo(l);if((typeof s=="function"?s(i):typeof c=="function"?c(i):null)!==!1){const f=a(i);if(f&&f!==i)return f}}return $f(Sf(),uo(l))}}}const Nf={components:{Quote:P.Quote},props:{editor:Object},methods:{toggleBlockquote(){this.editor&&this.editor.chain().toggleBlockquote().run()}}};function Af(r,t,n,o,l,a){const s=e.resolveComponent("Quote");return e.openBlock(),e.createElementBlock("button",{title:"Blockquote",onClick:t[0]||(t[0]=(...c)=>a.toggleBlockquote&&a.toggleBlockquote(...c)),class:e.normalizeClass(["text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 focus:outline-none",{"bg-gray-100 text-gray-900":n.editor?.isActive("blockquote")}])},[e.createVNode(s,{class:"h-4 w-4"})],2)}const Ff=me(Nf,[["render",Af]]),Df={components:{List:P.List},props:{editor:Object},methods:{toggleBulletList(){this.editor&&this.editor.chain().focus().toggleBulletList().run()}}};function Mf(r,t,n,o,l,a){const s=e.resolveComponent("List");return e.openBlock(),e.createElementBlock("button",{title:"Bullet List",onClick:t[0]||(t[0]=(...c)=>a.toggleBulletList&&a.toggleBulletList(...c)),class:e.normalizeClass(["text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100",{"bg-gray-100 text-gray-900":n.editor?.isActive("bulletList")}])},[e.createVNode(s,{class:"h-4 w-4"})],2)}const Lf=me(Df,[["render",Mf]]),Tf={components:{ListOrdered:P.ListOrdered},props:{editor:Object},methods:{toggleOrderedList(){this.editor&&this.editor.chain().focus().toggleOrderedList().run()}}};function If(r,t,n,o,l,a){const s=e.resolveComponent("ListOrdered");return e.openBlock(),e.createElementBlock("button",{title:"Ordered List",onClick:t[0]||(t[0]=(...c)=>a.toggleOrderedList&&a.toggleOrderedList(...c)),class:e.normalizeClass(["text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100",{"bg-gray-100 text-gray-900":n.editor?.isActive("orderedList")}])},[e.createVNode(s,{class:"h-4 w-4"})],2)}const Rf=me(Tf,[["render",If]]),Of={components:{CodeXml:P.CodeXml},props:{editor:Object},methods:{toggleCodeBlock(){this.editor&&this.editor.chain().focus().toggleCodeBlock().run()}}};function zf(r,t,n,o,l,a){const s=e.resolveComponent("CodeXml");return e.openBlock(),e.createElementBlock("button",{title:"Code Block",onClick:t[0]||(t[0]=(...c)=>a.toggleCodeBlock&&a.toggleCodeBlock(...c)),class:e.normalizeClass(["text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100",{"bg-gray-100 text-gray-900":n.editor?.isActive("codeBlock")}])},[e.createVNode(s,{class:"h-4 w-4"})],2)}const Pf=me(Of,[["render",zf]]),jf={components:{Bold:P.Bold},props:{editor:Object},methods:{toggleBold(){this.editor&&this.editor.commands.toggleBold()}}};function Uf(r,t,n,o,l,a){const s=e.resolveComponent("Bold");return e.openBlock(),e.createElementBlock("button",{title:"Bold Text",onClick:t[0]||(t[0]=(...c)=>a.toggleBold&&a.toggleBold(...c)),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",{"bg-gray-100 text-gray-900":n.editor?.isActive("bold")}])},[e.createVNode(s,{class:"h-4 w-4"}),t[1]||(t[1]=e.createElementVNode("span",{class:"sr-only"},"Bold",-1))],2)}const Hf=me(jf,[["render",Uf]]),qf={components:{Italic:P.Italic},props:{editor:Object},methods:{toggleItalic(){this.editor&&this.editor.chain().toggleItalic().run()}}};function Kf(r,t,n,o,l,a){const s=e.resolveComponent("Italic");return e.openBlock(),e.createElementBlock("button",{title:"Italic Text",onClick:t[0]||(t[0]=(...c)=>a.toggleItalic&&a.toggleItalic(...c)),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",{"bg-gray-100 text-gray-900":n.editor?.isActive("italic")}])},[e.createVNode(s,{class:"h-4 w-4"}),t[1]||(t[1]=e.createElementVNode("span",{class:"sr-only"},"Italic",-1))],2)}const Gf=me(qf,[["render",Kf]]),Wf={__name:"vs-editor-underline",props:{editor:Object},setup(r){const t=r,n=()=>{t.editor&&t.editor.chain().focus().toggleUnderline().run()};return(o,l)=>(e.openBlock(),e.createElementBlock("button",{title:"Underline",onClick:n,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100",[r.editor?.isActive("underline")?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(P.Underline),{class:"h-4 w-4"})],2))}},Yf={__name:"vs-editor-strike",props:{editor:Object},setup(r){const t=r,n=()=>{t.editor&&t.editor.chain().focus().toggleStrike().run()};return(o,l)=>(e.openBlock(),e.createElementBlock("button",{title:"Strikethrough",onClick:n,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100",[r.editor?.isActive("strike")?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(P.Strikethrough),{class:"h-4 w-4"})],2))}},Zf={components:{X:P.X},props:{visible:{type:Boolean,default:()=>!1},modelValue:{type:Boolean,default:()=>!1},title:{type:String,default:()=>""},size:{type:String,default:()=>""},closeClickBack:{type:Boolean,default:()=>!1}},emits:["update:visible","update:modelValue","onClose","confirm","cancel"],inheritAttrs:!1,name:"vs-dialog",mounted(){window.addEventListener("keydown",this.checkKey)},unmounted(){window.removeEventListener("keydown",this.checkKey)},computed:{hasSlot(){return!!this.$slots?.footer},checkSize(){return this.size==="small"?"md:w-5/12 w-9/12":this.size==="medium"?"md:w-6/12 w-9/12":"lg:w-7/12 w-11/12"}},methods:{checkKey({key:r}){r==="Escape"&&this.handleClose()},handleClose(){this.$emit("update:visible",!1),this.$emit("update:modelValue",!1),this.$emit("onClose")},handleConfirm(){this.$emit("confirm"),this.handleClose()},handleCancel(){this.$emit("cancel"),this.handleClose()},closeByClickBack(r,t){t&&r.target.classList.contains("vs-dialog-overlay")&&this.handleClose()}}},Xf={key:0,class:"vsTailwind ui-dialog__wrapper"},Jf={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},Qf={class:"font-medium text-gray-800 dark:text-[#ffffff]"},em={class:"ui-dialog__content p-4"},tm={key:0,class:"flex justify-end gap-x-2"};function nm(r,t,n,o,l,a){const s=e.resolveComponent("X");return e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[n.visible||n.modelValue?(e.openBlock(),e.createElementBlock("div",Xf,[e.createElementVNode("div",{onMousedown:t[1]||(t[1]=c=>a.closeByClickBack(c,n.closeClickBack)),class:"vs-dialog-overlay vs-dialog w-full h-full fixed top-0 start-0 z-[100001] bg-black bg-opacity-50"},[e.createVNode(e.Transition,{name:"content",appear:""},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["ui-dialog__modal 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",[a.checkSize]])},[e.createElementVNode("div",Jf,[e.createElementVNode("h3",Qf,e.toDisplayString(n.title),1),e.createElementVNode("button",{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",onClick:t[0]||(t[0]=(...c)=>a.handleClose&&a.handleClose(...c))},[t[2]||(t[2]=e.createElementVNode("span",{class:"sr-only"},"Close",-1)),e.createVNode(s,{class:"h-4 w-4 flex-shrink-0"})])]),e.createElementVNode("div",em,[e.renderSlot(r.$slots,"default",{},void 0,!0)]),a.hasSlot?(e.openBlock(),e.createElementBlock("div",tm,[e.renderSlot(r.$slots,"footer",{handleClose:a.handleClose,handleConfirm:a.handleConfirm,handleCancel:a.handleCancel},void 0,!0)])):e.createCommentVNode("",!0)],2)]),_:3})],32)])):e.createCommentVNode("",!0)])}const po=me(Zf,[["render",nm],["__scopeId","data-v-9395bb47"]]),rm=e.defineComponent({components:{IconClose:P.X,IconSearch:P.Search,IconEmail:P.Mail},inheritAttrs:!1,props:{icon:{type:String,default:()=>""},disabled:{type:Boolean,default:()=>!1},clearable:{type:Boolean,default:()=>!1},modelValue:{type:String,default:()=>""},placeholder:{type:String,default:()=>""},iconPosition:{type:String,default:()=>"right"},type:{type:String,default:()=>"text"},style:{type:Object,default:()=>null},size:{type:String,default:()=>"md"},attrs:{type:Object,default:()=>{}}},emits:["onInput","update:modelValue","blur","focus"],computed:{checkSize(){return(this.style?.size||this.size)==="xs"?"h-[32px] text-sm":(this.style?.size||this.size)==="md"?"h-[38px] text-sm":(this.style?.size||this.size)==="lg"?"h-[46px] text-[20px]":"h-[38px] text-sm"},value:{get(){return this.modelValue},set(r){this.$emit("update:modelValue",r.trim())}},clearIconStyle(){return[{"right-8":this.icon&&this.iconPosition==="right","right-3":!this.icon||this.iconPosition!=="right","pointer-events-none":this.disabled}]},iconStylePosition(){return[{"left-3":this.icon&&this.iconPosition==="left","right-3":this.icon&&this.iconPosition==="right"}]},inputStyle(){return[{"!pr-8":this.clearable&&!this.icon,"!pr-7":this.clearable,"!pr-16":this.clearable&&this.icon&&this.iconPosition==="right","!pl-8":this.icon&&this.iconPosition==="left","!pr-[50px]":this.clearable&&this.value&&this.icon&&this.iconPosition==="right","!cursor-not-allowed bg-slate-100":this.disabled,"bg-white":!this.disabled}]}},methods:{handleInput(){this.$emit("onInput",this.modelValue)},handleBlur(){this.$emit("blur")},handleFocus(){this.$emit("focus")},clearInput(){this.$emit("update:modelValue",""),this.$emit("onInput","")},async inputFocus(){await this.$refs.vsText?.focus()}}}),om={class:"vs-form-text relative bg-white rounded-lg"},lm={key:2,class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},am=["disabled","type","placeholder"];function sm(r,t,n,o,l,a){const s=e.resolveComponent("IconClose"),c=e.resolveComponent("IconSearch"),i=e.resolveComponent("IconEmail");return e.openBlock(),e.createElementBlock("div",om,[r.clearable&&r.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"absolute bottom-2/4 translate-y-2/4 right-3 cursor-pointer",onClick:t[0]||(t[0]=(...d)=>r.clearInput&&r.clearInput(...d))},[e.createVNode(s,{class:"h-4 w-4 stroke-gray-500 transition-all hover:stroke-red-500"})])):e.createCommentVNode("",!0),r.icon&&r.icon==="search"?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["absolute bottom-2/4 translate-y-2/4 cursor-pointer",r.iconStylePosition])},[e.createVNode(c,{class:"h-4 w-4 stroke-gray-500 transition-all"})],2)):r.icon&&r.icon==="email"?(e.openBlock(),e.createElementBlock("div",lm,[e.createVNode(i,{class:"h-4 w-4 stroke-gray-500 transition-all"})])):(e.openBlock(),e.createElementBlock("i",{key:3,class:e.normalizeClass(["absolute bottom-2/4 translate-y-2/4 text-gray-500 cursor-pointer",["ti "+r.icon,r.iconStylePosition]])},null,2)),r.clearable&&r.value?(e.openBlock(),e.createElementBlock("div",{key:4,class:"absolute bottom-2/4 translate-y-2/4 right-3 cursor-pointer",onClick:t[1]||(t[1]=(...d)=>r.clearInput&&r.clearInput(...d))},[e.createVNode(s,{class:"h-4 w-4 stroke-gray-500 transition-all hover:stroke-red-500"})])):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",e.mergeProps({ref:"vsText",disabled:r.disabled,type:r.type,onInput:t[2]||(t[2]=(...d)=>r.handleInput&&r.handleInput(...d)),placeholder:r.placeholder,"onUpdate:modelValue":t[3]||(t[3]=d=>r.value=d)},r.style?.attrs||r.attrs||{},{onFocus:t[4]||(t[4]=(...d)=>r.handleFocus&&r.handleFocus(...d)),onBlur:t[5]||(t[5]=(...d)=>r.handleBlur&&r.handleBlur(...d)),class:[[r.inputStyle,r.checkSize],"py-2 px-3 block w-full border border-solid placeholder:text-nowrap border-stone-200 rounded-lg text-sm 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,16,am),[[e.vModelDynamic,r.value]])])}const fo=me(rm,[["render",sm],["__scopeId","data-v-1e382a36"]]),im=["title"],cm={class:"flex flex-col gap-3 p-[20px]"},dm={class:"relative flex items-center gap-2"},um={class:"flex-1"},pm={key:0,class:"flex items-center gap-2 flex-shrink-0"},fm=["title"],mm=["title"],hm={class:"flex items-center gap-2"},gm={for:"openInNewTab",class:"text-sm text-gray-700 cursor-pointer"},ym={class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},bm=Object.assign({inheritAttrs:!1},{__name:"vs-editor-link",props:{editor:Object},setup(r){const{t}=hn(),n=r,o=e.ref(!1),l=e.ref(""),a=e.ref(!1),s=e.ref(!1),c=()=>{if(!n.editor)return;n.editor.chain().focus().extendMarkRange("link").run();const w=n.editor.getAttributes("link");w.href?(a.value=!0,l.value=w.href,s.value=w.target==="_blank"):(a.value=!1,l.value="",s.value=!1),o.value=!0},i=()=>{o.value=!1,l.value="",a.value=!1,s.value=!1},d=()=>{if(!n.editor||!l.value.trim())return;let w=l.value.trim();w.match(/^https?:\/\//i)||(w="https://"+w),n.editor.chain().focus().setLink({href:w,target:s.value?"_blank":null}).run(),i()},f=()=>{n.editor&&(n.editor.chain().focus().unsetLink().run(),i())},h=()=>{if(!l.value)return;let w=l.value.trim();w.match(/^https?:\/\//i)||(w="https://"+w),window.open(w,"_blank","noopener,noreferrer")};return(w,p)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("button",{title:e.unref(t)("form.richtext.link")||"Посилання",onClick:c,class:e.normalizeClass(["text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 focus:outline-none",{"bg-gray-100 text-gray-900":r.editor?.isActive("link")}])},[e.createVNode(e.unref(P.Link2),{class:"h-4 w-4"})],10,im),e.createVNode(po,{title:a.value?e.unref(t)("form.richtext.editLink")||"Редагувати посилання":e.unref(t)("form.richtext.linkTitle")||"Додати посилання",visible:o.value,"onUpdate:visible":p[2]||(p[2]=u=>o.value=u),size:"small"},{footer:e.withCtx(()=>[e.createElementVNode("div",ym,[e.createElementVNode("button",{style:{border:"1px solid #000"},onClick:i,class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm whitespace-nowrap text-black border-gray-200 rounded-lg !border-gray-200 hover:bg-gray-100 duration-300"},e.toDisplayString(e.unref(t)("form.richtext.cancel")||"Скасувати"),1),e.createElementVNode("button",{onClick:d,class:"py-2 px-3 inline-flex items-center gap-x-2 text-[14px] font-[400] whitespace-nowrap text-white bg-blue-500 rounded-lg !border-gray-200 hover:bg-blue-700 duration-300"},e.toDisplayString(a.value?e.unref(t)("form.richtext.update")||"Оновити":e.unref(t)("form.richtext.create")||"Створити"),1)])]),default:e.withCtx(()=>[e.createElementVNode("div",cm,[e.createElementVNode("div",dm,[e.createElementVNode("div",um,[e.createVNode(fo,{modelValue:l.value,"onUpdate:modelValue":p[0]||(p[0]=u=>l.value=u),placeholder:e.unref(t)("form.richtext.linkUrl")||"Введіть URL",class:"w-full"},null,8,["modelValue","placeholder"])]),a.value?(e.openBlock(),e.createElementBlock("div",pm,[e.createElementVNode("button",{onClick:h,class:"text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 focus:outline-none transition-colors",title:e.unref(t)("form.richtext.openLink")||"Відкрити посилання"},[e.createVNode(e.unref(P.ExternalLink),{class:"h-4 w-4"})],8,fm),e.createElementVNode("button",{onClick:f,class:"text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-red-600 hover:bg-red-50 focus:outline-none transition-colors",title:e.unref(t)("form.richtext.removeLink")||"Видалити посилання"},[e.createVNode(e.unref(P.Trash2),{class:"h-4 w-4"})],8,mm)])):e.createCommentVNode("",!0)]),e.createElementVNode("div",hm,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",id:"openInNewTab","onUpdate:modelValue":p[1]||(p[1]=u=>s.value=u),class:"w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 rounded focus:ring-blue-500"},null,512),[[e.vModelCheckbox,s.value]]),e.createElementVNode("label",gm,e.toDisplayString(e.unref(t)("form.richtext.openInNewTab")||"Відкривати в новій вкладці"),1)])])]),_:1},8,["title","visible"])],64))}}),jt=async(r,t,n,o=10)=>{if(!t||!n)return;await e.nextTick();const l=await n?.getBoundingClientRect(),a=await t?.getBoundingClientRect();if(!a||!l)return;const s=await parseInt(t?.getBoundingClientRect()?.height),c=await parseInt(t?.getBoundingClientRect()?.width),i=await parseInt(n?.getBoundingClientRect()?.height),d=await parseInt(n?.getBoundingClientRect()?.width),f=await window.innerHeight,h=await window.innerWidth;let w=0,p=0;const u=a.bottom+o+i;switch(r){case"top":a.top-l.height-o<0?w=a.top-l.height+o+i+s:w=a.top-l.height-o,h>d+a.right+30?p=a.left-l.width/2+a.width/2:p=h-30-d;break;case"bottom":f>u?w=a.bottom+o:w=a.bottom-o-i-s,p=a.left-l.width/2+a.width/2;break;case"left":w=a.top-l.height/2+a.height/2,a.left-l.width-o>0?p=a.left-l.width-o:p=10;break;case"right":w=a.top-l.height/2+a.height/2,h-c>d?p=a.right+o:p=h-30-d;break;case"top-right":a.top-l.height-o<0?w=a.top-l.height+o+i+s:w=a.top-l.height-o,h-c>d?p=a.right+o:p=h-30-d;break;case"top-left":a.top-l.height-o<0?w=a.top-l.height+o+i+s:w=a.top-l.height-o,a.left-l.width-o>0?p=a.left-l.width-o:p=10;break;case"top-start":a.top-l.height-o<0?w=a.top-l.height+o+i+s:w=a.top-l.height-o,a.left>0?p=a.left:p=10;break;case"bottom-right":f>u?w=a.bottom+o:w=a.bottom-o-i-s,h-c>d?p=a.left:p=h-30-d;break;case"bottom-left":f>u?w=a.bottom+o:w=a.bottom-o-i-s,a.left>0?p=a.right-d:p=10;break;case"bottom-start":f>u?w=a.bottom+o:w=a.bottom-o-i-s,a.left>0?p=a.left:p=10;break}w+i>f?w=f-i-o:w<0&&(w=o),p+d>h?p=h-d-o:p<0&&(p=o),n instanceof HTMLElement&&(n.style.top=`${w}px`,n.style.left=`${p}px`,n.style.position="fixed")},km={class:"text-center"},xm={class:"py-2 px-4 w-full text-sm text-stone-800 bg-white shadow-[0_10px_40px_10px_rgba(0,0,0,0.08)] rounded-lg focus:outline-none focus:bg-stone-100 dark:bg-neutral-900 dark:text-neutral-200 dark:focus:bg-neutral-800 after:h-4 after:absolute after:-bottom-4 after:start-0 after:w-full before:h-4 before:absolute before:-top-4 before:start-0 before:w-full"},ht=Object.assign({inheritAttrs:!1},{__name:"vs-popover",props:{isOpen:{type:Boolean,default:()=>!1},placement:{type:String,default:"top"},gap:{type:Number,default:8},width:{type:[String,Number],default:""},disabled:{type:Boolean,default:!1},trigger:{type:String,default:"click"},teleport:{type:String,default:"body"}},emits:["isvisible"],setup(r,{expose:t,emit:n}){const o=r,l=n,a=e.ref(!1),s=e.ref([]),c=e.ref(null),i=e.ref(null),d=e.ref(null);e.watch(a,k=>{k?(f(),window.addEventListener("resize",()=>jt(o.placement,i.value,d.value)),jt(o.placement,i.value,d.value)):window.removeEventListener("resize",()=>jt(o.placement,i.value,d.value)),l("isvisible",k)}),e.onMounted(()=>{window.addEventListener("click",y),window.addEventListener("popstate",C),window.addEventListener("scroll",_,!0),f()}),e.onBeforeUnmount(()=>{window.removeEventListener("click",y),window.removeEventListener("popstate",C),h()});const f=()=>{let k=c.value;for(;k&&k!==document.body;)(k.scrollHeight>k.clientHeight||k.scrollWidth>k.clientWidth)&&(k.addEventListener("scroll",g),s.value.push(k)),k=k.parentElement;document.body&&(document.body.addEventListener("scroll",g),s.value.push(document.body))},h=()=>{s.value.forEach(k=>{k.removeEventListener("scroll",g)}),s.value=[]},w=()=>{a.value=!0,jt(o.placement,i.value,d.value)},p=()=>{a.value=!1},u=async()=>{await jt(o.placement,i.value,d.value),a.value=!a.value},g=()=>{a.value=!1},y=k=>{if(!k){a.value=!1;return}i.value?.contains(k.target)||d.value?.contains(k.target)||(a.value=!1)},C=()=>{a.value&&(a.value=!1)},_=k=>{a.value&&d.value&&!d.value.contains(k.target)&&(a.value=!1)};return t({togglePopover:u}),(k,x)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"popover",ref:c,class:"vs-popover inline-block"},[e.createElementVNode("div",km,[r.trigger==="click"?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"popoverRef",ref:i,onClick:u,class:e.normalizeClass({"pointer-events-none":r.disabled})},[e.renderSlot(k.$slots,"reference",{},()=>[x[0]||(x[0]=e.createElementVNode("button",null,"Click me!",-1))])],2)):e.createCommentVNode("",!0),r.trigger==="hover"?(e.openBlock(),e.createElementBlock("div",{key:1,ref_key:"popoverRef",ref:i,onMouseover:w,onMouseleave:p,class:e.normalizeClass({"pointer-events-none":r.disabled})},[e.renderSlot(k.$slots,"reference",{},()=>[x[1]||(x[1]=e.createElementVNode("button",null,"Click me!",-1))])],34)):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.Teleport,{to:r.teleport},[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(["vsTailwind vs-popover__content",r.placement]),ref_key:"contentPop",ref:d,style:e.normalizeStyle({width:r.width?r.width+"px":"fit-content",zIndex:100001})},[e.createElementVNode("div",xm,[e.renderSlot(k.$slots,"default",{},()=>[x[2]||(x[2]=e.createElementVNode("span",null,"Popover content",-1))])])],6),[[e.vShow,a.value]])]),_:3})],8,["to"]))])],512))}}),wm={class:"flex flex-col gap-[2px] p-[2px]"},_m=["onClick"],vm={__name:"vs-editor-table",props:{editor:Object},setup(r){const{t}=hn(),n=r,o=e.ref(!1),l=e.ref("popover"),a=()=>{n.editor&&(n.editor.chain().focus().insertTable({rows:3,cols:3,withHeaderRow:!0}).run(),l.value.togglePopover())},s=()=>{n.editor&&(n.editor.chain().focus().addColumnAfter().run(),l.value.togglePopover())},c=()=>{n.editor&&(n.editor.chain().focus().addRowAfter().run(),l.value.togglePopover())},i=()=>{n.editor&&(n.editor.chain().focus().deleteColumn().run(),l.value.togglePopover())},d=()=>{n.editor&&(n.editor.chain().focus().deleteRow().run(),l.value.togglePopover())},f=()=>{n.editor&&(n.editor.chain().focus().deleteTable().run(),l.value.togglePopover())},h=()=>{n.editor&&(n.editor.chain().focus().mergeCells().run(),l.value.togglePopover())},w=()=>{n.editor&&(n.editor.chain().focus().splitCell().run(),l.value.togglePopover())},p=e.computed(()=>[{text:t("form.richtext.createTable"),function:a},{text:t("form.richtext.addColumn"),function:s},{text:t("form.richtext.addRow"),function:c},{text:t("form.richtext.deleteColumn"),function:i},{text:t("form.richtext.deleteRow"),function:d},{text:t("form.richtext.deleteTable"),function:f},{text:t("form.richtext.mergeCells"),function:h},{text:t("form.richtext.splitCells"),function:w}]);return(u,g)=>(e.openBlock(),e.createBlock(ht,{ref_key:"popover",ref:l,placement:"bottom",onIsvisible:g[0]||(g[0]=y=>o.value=y)},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Table",class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded-full hover:text-gray-900 hover:bg-gray-100",[o.value?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(P.Table2),{class:"h-4 w-4"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",wm,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,(y,C)=>(e.openBlock(),e.createElementBlock("button",{key:C,onClick:y?.function,class:"px-2 py-1 text-gray-500 text-start hover:text-gray-900 hover:bg-gray-100 rounded"},e.toDisplayString(y.text),9,_m))),128))])]),_:1},512))}},Cm={class:"flex gap-[4px] p-1"},Em=["title","onClick"],Bm={__name:"vs-editor-align",props:{editor:Object},setup(r){const t=r,n={left:P.AlignLeft,center:P.AlignCenter,right:P.AlignRight,justify:P.AlignJustify},o=e.ref(!1),l=e.ref("popover"),a=e.ref("left"),s=e.computed(()=>t.editor?t.editor.isActive("paragraph",{textAlign:"left"})||t.editor.isActive("heading",{textAlign:"left"}):!1),c=e.computed(()=>t.editor?t.editor.isActive("paragraph",{textAlign:"right"})||t.editor.isActive("heading",{textAlign:"right"}):!1),i=e.computed(()=>t.editor?t.editor.isActive("paragraph",{textAlign:"center"})||t.editor.isActive("heading",{textAlign:"center"}):!1),d=e.computed(()=>t.editor?t.editor.isActive("paragraph",{textAlign:"justify"})||t.editor.isActive("heading",{textAlign:"justify"}):!1),f=e.computed(()=>s.value||c.value||i.value||d.value),h=()=>{c.value?a.value="right":i.value?a.value="center":d.value?a.value="justify":a.value="left"};e.watch([s,c,i,d],()=>{h()},{immediate:!0}),e.onMounted(()=>{t.editor&&(t.editor.on("selectionUpdate",h),t.editor.on("update",h))}),e.onUnmounted(()=>{t.editor&&(t.editor.off("selectionUpdate",h),t.editor.off("update",h))});const w=u=>{t.editor&&(t.editor.chain().focus().setTextAlign(u).run(),a.value=u)},p=e.ref([{id:"left",isActive:s},{id:"center",isActive:i},{id:"right",isActive:c},{id:"justify",isActive:d}]);return(u,g)=>(e.openBlock(),e.createBlock(ht,{ref_key:"popover",ref:l,placement:"bottom",onIsvisible:g[0]||(g[0]=y=>o.value=y)},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Text Align",class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded-full hover:text-gray-900 hover:bg-gray-100",[f.value?"bg-gray-100 text-gray-900":"text-gray-500"]])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n[a.value]),{height:"16",width:"16"}))],2)]),default:e.withCtx(()=>[e.createElementVNode("div",Cm,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,y=>(e.openBlock(),e.createElementBlock("button",{title:"Text align "+y?.id,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded hover:text-gray-900 hover:bg-gray-100",{"bg-gray-100 text-gray-900":y?.isActive}]),key:y?.id,onClick:C=>w(y?.id)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n[y?.id]),{height:"16",width:"16"}))],10,Em))),128))])]),_:1},512))}},Vm={class:"flex flex-col gap-[2px] p-[2px]"},Sm=["onClick"],$m={__name:"vs-editor-type-tag",props:{editor:Object},setup(r){const{t}=hn(),n=r,o=e.ref(!1),l=e.ref("popover"),a=()=>{n.editor&&(n.editor?.chain().focus().setParagraph().run(),l.value.togglePopover())},s=i=>{n.editor&&(n.editor?.chain().focus().toggleHeading({level:i}).run(),l.value.togglePopover())},c=e.computed(()=>[{text:t("form.richtext.heading1"),id:1,style:"font-[700] text-[30px]"},{text:t("form.richtext.heading2"),id:2,style:"font-[700] text-[26px]"},{text:t("form.richtext.heading3"),id:3,style:"font-[700] text-[22px]"},{text:t("form.richtext.heading4"),id:4,style:"font-[700] text-[18px]"},{text:t("form.richtext.heading5"),id:5,style:"font-[500] text-[16px]"},{text:t("form.richtext.heading6"),id:6,style:"font-[400] text-[14px]"}]);return(i,d)=>(e.openBlock(),e.createBlock(ht,{ref_key:"popover",ref:l,placement:"bottom",onIsvisible:d[0]||(d[0]=f=>o.value=f)},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Type Tag",class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded-full hover:text-gray-900 hover:bg-gray-100",[o.value?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(P.Type),{class:"h-4 w-4"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",Vm,[e.createElementVNode("button",{onClick:a,class:e.normalizeClass(["px-2 py-1 text-gray-500 text-start hover:text-gray-900 hover:bg-gray-100 rounded",[r.editor?.isActive("paragraph")?"bg-gray-100":""]])},e.toDisplayString(e.unref(t)("form.richtext.paragraph")),3),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,(f,h)=>(e.openBlock(),e.createElementBlock("button",{key:h,onClick:w=>s(f?.id),class:e.normalizeClass(["px-2 py-1 text-gray-500 text-start hover:text-gray-900 hover:bg-gray-100 rounded leading-[100%]",[f?.style,r.editor?.isActive("heading",{level:f?.id})?"bg-gray-100":""]])},e.toDisplayString(e.unref(t)(`form.richtext.heading${f?.id}`)),11,Sm))),128))])]),_:1},512))}},Nm={components:{VsText:fo},inheritAttrs:!1,events:["update:modelValue"],props:{modelValue:{type:String},disabled:{type:Boolean,default:()=>!1},clearable:{type:Boolean,default:()=>!1},isTextInputShown:{type:Boolean,default:()=>!0}},computed:{value:{get(){return this.modelValue??""},set(r){this.$emit("update:modelValue",r)}}}},Am={class:"flex items-center w-full max-w-[182px]"},Fm=["disabled"];function Dm(r,t,n,o,l,a){const s=e.resolveComponent("vs-text");return e.openBlock(),e.createElementBlock("div",Am,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":t[0]||(t[0]=c=>a.value=c),type:"color",class:e.normalizeClass(["w-[38px] h-[38px] min-h-[38px] min-w-[38px] py-[2px] px-[3px] -ml-1 dark:bg-neutral-800 border dark:border-neutral-700 border-stone-200 rounded-lg",n.disabled?"cursor-not-allowed":"cursor-pointer"]),disabled:n.disabled},null,10,Fm),[[e.vModelText,a.value]]),n.isTextInputShown?(e.openBlock(),e.createBlock(s,{key:0,modelValue:a.value,"onUpdate:modelValue":t[1]||(t[1]=c=>a.value=c),class:"ml-2 w-full",disabled:n.disabled,clearable:n.clearable},null,8,["modelValue","disabled","clearable"])):e.createCommentVNode("",!0)])}const mo=me(Nm,[["render",Dm]]),Mm={class:"flex gap-[4px] mb-[8px]"},Lm={class:"grid grid-rows-3 grid-cols-7"},Tm={class:"w-full h-full rounded border border-gray-300 overflow-hidden"},Im=["onClick","title"],Rm={__name:"vs-editor-color",props:{editor:Object},setup(r){const t=r,n=e.ref(null),o=e.ref("#000000"),l=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").color||"#000000"),a=e.computed(()=>l.value!=="#000000"),s=()=>{t.editor&&(o.value=l.value)};e.onMounted(()=>{t.editor&&(t.editor.on("selectionUpdate",s),t.editor.on("update",s),s())}),e.onUnmounted(()=>{t.editor&&(t.editor.off("selectionUpdate",s),t.editor.off("update",s))});const c=e.ref(["#172B4D","#0747A6","#008DA6","#006644","#FF991F","#BF2600","#403294","#97A0AF","#4C9AFF","#00B8D9","#36B37E","#FFC400","#FF5630","#6554C0","#FFFFFF","#B3D4FF","#B3F5FF","#ABF5D1","#FFF0B3","#FFBDAD","#EAE6FF"]),i=h=>{t.editor&&(t.editor.chain().focus().setColor(h).run(),o.value=h,n.value&&n.value.togglePopover())},d=()=>{i(o.value)},f=h=>({"#172B4D":"Default","#0747A6":"Bright blue","#008DA6":"Bright blue-green","#006644":"Bright green","#FF991F":"Bright orange","#BF2600":"Bright red","#403294":"Bright purple","#97A0AF":"Gray","#4C9AFF":"Blue","#00B8D9":"Blue-green","#36B37E":"Green","#FFC400":"Yellow","#FF5630":"Red","#6554C0":"Purple","#FFFFFF":"White","#B3D4FF":"Bright blue","#B3F5FF":"Bright blue-green","#ABF5D1":"Bright green","#FFF0B3":"Bright yellow","#FFBDAD":"Bright red","#EAE6FF":"Bright purple"})[h]||h;return(h,w)=>(e.openBlock(),e.createBlock(ht,{ref_key:"popover",ref:n,placement:"bottom"},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Text Color",class:e.normalizeClass(["flex flex-col h-[30px] min-w-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex",{"bg-gray-100":a.value}])},[w[1]||(w[1]=e.createElementVNode("span",{class:"leading-none"},"A",-1)),e.createElementVNode("span",{class:"block h-1 w-5",style:e.normalizeStyle({backgroundColor:o.value})},null,4)],2)]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("div",Mm,[e.createVNode(mo,{modelValue:o.value,"onUpdate:modelValue":w[0]||(w[0]=p=>o.value=p)},null,8,["modelValue"]),e.createElementVNode("button",{onClick:d,class:"h-[38px] w-[38px] bg-blue-500 shrink-0 border rounded-md flex items-center justify-center hover:bg-blue-700 duration-300"},[e.createVNode(e.unref(P.Check),{class:"h-4 w-4 text-white"})])]),e.createElementVNode("div",Lm,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,p=>(e.openBlock(),e.createElementBlock("div",{key:p,class:"h-8 w-8 p-0.5 rounded border border-transparent hover:border-gray-200 transition-transform cursor-pointer"},[e.createElementVNode("div",Tm,[e.createElementVNode("button",{class:"flex items-center justify-center w-full h-full",style:e.normalizeStyle({backgroundColor:p}),onClick:u=>i(p),title:f(p)},[o.value===p?(e.openBlock(),e.createBlock(e.unref(P.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],12,Im)])]))),128))])])]),_:1},512))}},Om={class:"flex gap-[4px] mb-[8px]"},zm={class:"grid grid-rows-3 grid-cols-7"},Pm={class:"w-full h-full rounded border border-gray-300 overflow-hidden"},jm=["onClick","title"],Um=["onClick","title"],Hm={__name:"vs-editor-background-color",props:{editor:Object},setup(r){const t=r,n=e.ref(null),o=e.ref("transparent"),l=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").backgroundColor||"transparent"),a=e.computed(()=>l.value!=="transparent"&&l.value!==""),s=()=>{t.editor&&(o.value=l.value)};e.onMounted(()=>{t.editor&&(t.editor.on("selectionUpdate",s),t.editor.on("update",s),s())}),e.onUnmounted(()=>{t.editor&&(t.editor.off("selectionUpdate",s),t.editor.off("update",s))});const c=e.ref(["#172B4D","#0747A6","#008DA6","#006644","#FF991F","#BF2600","#403294","#97A0AF","#4C9AFF","#00B8D9","#36B37E","#FFC400","#FF5630","#6554C0","#FFFFFF","#B3D4FF","#B3F5FF","#ABF5D1","#FFF0B3","#FFBDAD","#EAE6FF"]),i=h=>{t.editor&&(t.editor.chain().focus().setBackgroundColor(h).run(),o.value=h,n.value&&n.value.togglePopover())},d=()=>{i(o.value)},f=h=>({"#172B4D":"Default","#0747A6":"Bright blue","#008DA6":"Bright blue-green","#006644":"Bright green","#FF991F":"Bright orange","#BF2600":"Bright red","#403294":"Bright purple","#97A0AF":"Gray","#4C9AFF":"Blue","#00B8D9":"Blue-green","#36B37E":"Green","#FFC400":"Yellow","#FF5630":"Red","#6554C0":"Purple",transparent:"Transparent","#B3D4FF":"Bright blue","#B3F5FF":"Bright blue-green","#ABF5D1":"Bright green","#FFF0B3":"Bright yellow","#FFBDAD":"Bright red","#EAE6FF":"Bright purple"})[h]||h;return(h,w)=>(e.openBlock(),e.createBlock(ht,{ref_key:"popover",ref:n,placement:"bottom"},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Background Color",class:e.normalizeClass(["flex flex-col h-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex",{"bg-gray-100":a.value}])},[e.createVNode(e.unref(P.PaintBucket),{class:"h-4 w-4"}),e.createElementVNode("span",{class:"block h-1 w-5",style:e.normalizeStyle({backgroundColor:o.value})},null,4)],2)]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("div",Om,[e.createVNode(mo,{modelValue:o.value,"onUpdate:modelValue":w[0]||(w[0]=p=>o.value=p)},null,8,["modelValue"]),e.createElementVNode("button",{onClick:d,class:"h-[38px] w-[38px] bg-blue-500 shrink-0 border rounded-md flex items-center justify-center hover:bg-blue-700 duration-300"},[e.createVNode(e.unref(P.Check),{class:"h-4 w-4 text-white"})])]),e.createElementVNode("div",zm,[e.createElementVNode("button",{onClick:w[1]||(w[1]=p=>i("transparent")),class:"col-span-7 flex items-center justify-center gap-2 bg-gray-100 rounded-md py-1 mb-2 hover:bg-gray-200"},[e.createVNode(e.unref(P.Eraser),{class:"h-4 w-4"}),w[2]||(w[2]=e.createElementVNode("p",null,"no color",-1))]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,p=>(e.openBlock(),e.createElementBlock("div",{key:p,class:"h-8 w-8 p-0.5 rounded border border-transparent hover:border-gray-200 transition-transform cursor-pointer"},[e.createElementVNode("div",Pm,[p!=="transparent"?(e.openBlock(),e.createElementBlock("button",{key:0,class:"flex items-center justify-center w-full h-full",style:e.normalizeStyle({backgroundColor:p}),onClick:u=>i(p),title:f(p)},[o.value===p?(e.openBlock(),e.createBlock(e.unref(P.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],12,jm)):e.createCommentVNode("",!0),p==="transparent"?(e.openBlock(),e.createElementBlock("button",{key:1,class:"flex items-center justify-center w-full h-full",onClick:u=>i(p),title:f(p)},[o.value===p?(e.openBlock(),e.createBlock(e.unref(P.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],8,Um)):e.createCommentVNode("",!0)])]))),128))])])]),_:1},512))}},qm={__name:"vs-editor-highlight",props:{editor:Object},setup(r){const t=r,n=e.computed(()=>t.editor?.isActive("highlight")),o=()=>{t.editor&&t.editor.chain().focus().toggleHighlight().run()};return(l,a)=>(e.openBlock(),e.createElementBlock("button",{title:"Highlight",onClick:o,class:e.normalizeClass(["flex flex-col h-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex",{"bg-gray-200":n.value}])},[e.createVNode(e.unref(P.Highlighter),{class:"h-4 w-4"})],2))}},Km={class:"truncate"},Gm={class:"w-[200px]"},Wm={class:"max-h-[200px] overflow-y-auto"},Ym=["onClick"],Zm={__name:"vs-editor-font-family",props:{editor:Object},setup(r){const t=r,n=e.ref("popover"),o=e.ref(!1),l=e.ref([{label:"Arial",value:"Arial, sans-serif"},{label:"Helvetica",value:"Helvetica, sans-serif"},{label:"Times New Roman",value:"Times New Roman, serif"},{label:"Georgia",value:"Georgia, serif"},{label:"Verdana",value:"Verdana, sans-serif"},{label:"Courier New",value:"Courier New, monospace"},{label:"Comic Sans MS",value:"Comic Sans MS, cursive"},{label:"Impact",value:"Impact, sans-serif"},{label:"Trebuchet MS",value:"Trebuchet MS, sans-serif"},{label:"Palatino",value:"Palatino, serif"}]),a=e.computed(()=>{if(!t.editor)return"Arial, sans-serif";for(const d of l.value)if(t.editor.isActive("textStyle",{fontFamily:d.value}))return d.value;return"Arial, sans-serif"}),s=e.computed(()=>l.value.find(f=>f.value===a.value)?.label||"Arial"),c=d=>t.editor?t.editor.isActive("textStyle",{fontFamily:d}):!1,i=d=>{t.editor&&(t.editor.chain().focus().setFontFamily(d).run(),n.value&&n.value.togglePopover())};return(d,f)=>(e.openBlock(),e.createBlock(ht,{ref_key:"popover",ref:n,placement:"bottom",onIsvisible:f[0]||(f[0]=h=>o.value=h)},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Font Family",class:e.normalizeClass(["h-[30px] px-2 rounded-full hover:bg-gray-100 justify-center items-center flex text-sm",[o.value?"bg-gray-100 text-gray-900":"text-gray-700"]]),style:e.normalizeStyle({fontFamily:a.value})},[e.createElementVNode("span",Km,e.toDisplayString(s.value),1),e.createVNode(e.unref(P.ChevronDown),{class:"ml-1 h-3 w-3 text-gray-400"})],6)]),default:e.withCtx(()=>[e.createElementVNode("div",Gm,[e.createElementVNode("ul",Wm,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,h=>(e.openBlock(),e.createElementBlock("li",{key:h.value,class:e.normalizeClass(["px-3 py-2 hover:bg-gray-100 cursor-pointer text-sm",{"bg-gray-100":c(h.value)}]),style:e.normalizeStyle({fontFamily:h.value}),onClick:w=>i(h.value)},e.toDisplayString(h.label),15,Ym))),128))])])]),_:1},512))}},Xm={class:"w-[120px]"},Jm={class:"max-h-[200px] overflow-y-auto"},Qm=["onClick"],eh={__name:"vs-editor-font-size",props:{editor:Object},setup(r){const t=r,n=e.ref("popover"),o=e.ref("14px"),l=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").fontSize||"14px"),a=e.computed(()=>l.value!=="14px"),s=()=>{t.editor&&(o.value=l.value)};e.onMounted(()=>{t.editor&&(t.editor.on("selectionUpdate",s),t.editor.on("update",s),s())}),e.onUnmounted(()=>{t.editor&&(t.editor.off("selectionUpdate",s),t.editor.off("update",s))});const c=e.ref([{label:"8px",value:"8px"},{label:"9px",value:"9px"},{label:"10px",value:"10px"},{label:"11px",value:"11px"},{label:"12px",value:"12px"},{label:"14px",value:"14px"},{label:"16px",value:"16px"},{label:"18px",value:"18px"},{label:"20px",value:"20px"},{label:"24px",value:"24px"},{label:"28px",value:"28px"},{label:"32px",value:"32px"},{label:"36px",value:"36px"},{label:"48px",value:"48px"},{label:"72px",value:"72px"}]),i=d=>{t.editor&&(t.editor.chain().focus().setFontSize(d).run(),o.value=d,n.value&&n.value.togglePopover())};return(d,f)=>(e.openBlock(),e.createBlock(ht,{ref_key:"popover",ref:n,placement:"bottom"},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Font Size",class:e.normalizeClass(["h-[30px] px-2 min-w-[30px] rounded-full hover:bg-gray-100 justify-center items-center flex text-sm text-gray-700 space-x-1",{"bg-gray-100 text-gray-900":a.value}])},[e.createVNode(e.unref(P.ALargeSmall),{class:"h-4 w-4"}),e.createVNode(e.unref(P.ChevronDown),{class:"h-3 w-3 text-gray-400"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",Xm,[e.createElementVNode("ul",Jm,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,h=>(e.openBlock(),e.createElementBlock("li",{key:h.value,class:"px-3 py-2 hover:bg-gray-100 cursor-pointer",onClick:w=>i(h.value)},e.toDisplayString(h.label),9,Qm))),128))])])]),_:1},512))}},th={components:{Superscript:P.Superscript},props:{editor:Object},methods:{toggleSuperscript(){this.editor&&this.editor.commands.toggleSuperscript()}}};function nh(r,t,n,o,l,a){const s=e.resolveComponent("Superscript");return e.openBlock(),e.createElementBlock("button",{title:"Superscript",onClick:t[0]||(t[0]=(...c)=>a.toggleSuperscript&&a.toggleSuperscript(...c)),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",{"bg-gray-100 text-gray-900":n.editor?.isActive("superscript")}])},[e.createVNode(s,{class:"h-4 w-4"}),t[1]||(t[1]=e.createElementVNode("span",{class:"sr-only"},"Superscript",-1))],2)}const rh=me(th,[["render",nh]]),oh={components:{Subscript:P.Subscript},props:{editor:Object},methods:{toggleSubscript(){this.editor&&this.editor.commands.toggleSubscript()}}};function lh(r,t,n,o,l,a){const s=e.resolveComponent("Subscript");return e.openBlock(),e.createElementBlock("button",{title:"Subscript",onClick:t[0]||(t[0]=(...c)=>a.toggleSubscript&&a.toggleSubscript(...c)),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",{"bg-gray-100 text-gray-900":n.editor?.isActive("subscript")}])},[e.createVNode(s,{class:"h-4 w-4"}),t[1]||(t[1]=e.createElementVNode("span",{class:"sr-only"},"Subscript",-1))],2)}const ah=me(oh,[["render",lh]]),sh={title:"Heading",class:"h-[30px] px-2 rounded-full hover:bg-gray-100 justify-center items-center flex text-sm text-gray-700"},ih={class:"truncate"},ch={class:"max-h-[200px] overflow-y-auto"},dh=["onClick"],uh=me({__name:"vs-editor-heading",props:{editor:Object},setup(r){const t=r,n=e.ref("popover"),o=e.ref([{label:"Heading 1",value:1},{label:"Heading 2",value:2},{label:"Heading 3",value:3},{label:"Heading 4",value:4},{label:"Heading 5",value:5},{label:"Heading 6",value:6}]),l=e.computed(()=>{if(!t.editor)return"Paragraph";for(let i=1;i<=6;i++)if(t.editor.isActive("heading",{level:i}))return`H ${i}`;return"P"}),a=i=>({1:"font-weight:700; font-size:30px;",2:"font-weight:700; font-size:26px;",3:"font-weight:700; font-size:22px;",4:"font-weight:700; font-size:18px;",5:"font-weight:500; font-size:16px;",6:"font-weight:400; font-size:14px;"})[i]||"",s=i=>{t.editor&&(t.editor.chain().focus().setHeading({level:i}).run(),n.value&&n.value.togglePopover())},c=()=>{t.editor&&(t.editor.chain().focus().setParagraph().run(),n.value&&n.value.togglePopover())};return(i,d)=>(e.openBlock(),e.createBlock(ht,{ref_key:"popover",ref:n,placement:"bottom"},{reference:e.withCtx(()=>[e.createElementVNode("button",sh,[e.createElementVNode("span",ih,e.toDisplayString(l.value),1),e.createVNode(e.unref(P.ChevronDown),{class:"ml-1 h-3 w-3 text-gray-400"})])]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("ul",ch,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,f=>(e.openBlock(),e.createElementBlock("li",{key:f.value,class:e.normalizeClass(["px-3 py-2 hover:bg-gray-100 cursor-pointer text-sm",`heading-level-${f.value}`]),style:e.normalizeStyle(a(f.value)),onClick:h=>s(f.value)},e.toDisplayString(f.label),15,dh))),128)),e.createElementVNode("li",{class:"px-3 py-2 hover:bg-gray-100 cursor-pointer text-sm border-t border-gray-200 mt-1 pt-2",onClick:c}," Paragraph ")])])]),_:1},512))}},[["__scopeId","data-v-46380488"]]),ph={components:{RemoveFormatting:P.RemoveFormatting},props:{editor:Object},methods:{clearFormatting(){this.editor&&this.editor.commands.unsetAllMarks()}}};function fh(r,t,n,o,l,a){const s=e.resolveComponent("RemoveFormatting");return e.openBlock(),e.createElementBlock("button",{title:"Clear Formatting",onClick:t[0]||(t[0]=(...c)=>a.clearFormatting&&a.clearFormatting(...c)),class:"h-[30px] w-[30px] flex items-center justify-center text-gray-500 rounded-full cursor-pointer hover:text-gray-900 hover:bg-gray-100"},[e.createVNode(s,{class:"h-4 w-4"}),t[1]||(t[1]=e.createElementVNode("span",{class:"sr-only"},"Clear Formatting",-1))])}const mh=me(ph,[["render",fh]]),hh={class:"relative"},gh={key:0,class:"mt-4"},yh=["src","alt","title"],bh={key:0,class:"text-sm text-red-500"},kh={key:1,class:"mt-4"},xh={class:"text-sm text-gray-600 mb-2"},wh={class:"flex flex-wrap gap-2"},_h=["src","alt","onError"],vh=["onClick"],Ch={class:"flex justify-end gap-x-2 p-[20px]"},Eh=Object.assign({inheritAttrs:!1},{__name:"vs-editor-image",props:{editor:{type:Object,required:!0}},setup(r){const t=r,n=e.ref(!1),o=e.ref(!1),l=e.ref({}),a=e.ref(!1),s=e.ref([]),c=e.ref(null),i=e.ref({src:"",file:[],alt:"",title:"",width:"",height:"",link:"",openInNewTab:!1}),d=e.computed(()=>{if(Array.isArray(i.value.file)){const V=i.value.file.filter($=>$ instanceof File),A=i.value.file.filter($=>typeof $=="string"&&$.trim()!=="");return V.length+A.length>1}return i.value.file instanceof FileList?i.value.file.length>1:!1}),f=e.computed(()=>Array.isArray(i.value.file)?i.value.file.filter(V=>V instanceof File).length===1:i.value.file instanceof FileList?i.value.file.length===1:i.value.file instanceof File),h=e.computed(()=>{if(d.value)return"";if(i.value.src)return i.value.src;if(f.value){let V=null;if(Array.isArray(i.value.file)||i.value.file instanceof FileList?V=i.value.file[0]:i.value.file instanceof File&&(V=i.value.file),V instanceof File){const A=s.value.find(E=>E.file===V);return A?A.preview:""}else if(typeof V=="string")return V}return""}),w=e.computed(()=>[{name:"src",label:"URL зображення",type:"text",required:!1,placeholder:"https://example.com/image.png"},{name:"file",label:"Файл (можна вибрати кілька)",type:"file",multiple:!0,required:!1,placeholder:"Шлях до файлу зображення",accept:"image/*"},{name:"width",label:"Ширина",type:"number",required:!1,placeholder:"Ширина зображення",clearable:!0,min:0},{name:"height",label:"Висота",type:"number",required:!1,placeholder:"Висота зображення",clearable:!0,min:0},{name:"alt",label:"Альтернативний текст",type:"text",required:!1,placeholder:"Опис зображення"},{name:"title",label:"Заголовок (необов'язково)",type:"text",required:!1,placeholder:"Заголовок зображення"},{name:"link",label:"Посилання",type:"text",required:!1,placeholder:"https://example.com"},{name:"openInNewTab",label:"Відкривати у новій вкладці?",type:"switcher",required:!1}]),p=()=>{if(!t.editor)return;if(t.editor.isActive("image")){const{state:A}=t.editor,{selection:E}=A,{$from:$}=E;let M=null,R=null;if($.parent.type.name==="image")M=$.before($.depth),R=$.parent;else for(let Q=$.depth;Q>0;Q--){const ve=$.node(Q),se=$.before(Q);ve.type.name==="paragraph"&&ve.forEach((Z,te)=>{if(Z.type.name==="image"){const ae=se+te+1;(M===null||Math.abs(ae-E.$from.pos)<Math.abs(M-E.$from.pos))&&(M=ae,R=Z)}})}if(M!==null&&R){try{t.editor.chain().focus().setNodeSelection(M).run()}catch{t.editor.chain().focus().setTextSelection(M).run()}c.value=M}else{t.editor.chain().focus().selectParentNode().run();const{state:Q}=t.editor;c.value=Q.selection.$from.pos}const D=R?R.attrs:t.editor.getAttributes("image");a.value=!0;let I="",T=!1;const U=t.editor.getAttributes("link");U&&U.href&&(I=U.href,T=U.target==="_blank");const H=D.src||"",W=H?[H]:[];i.value={src:H,file:W,alt:D.alt||"",title:D.title||"",width:D.width||"",height:D.height||"",link:I,openInNewTab:T}}else a.value=!1,i.value={src:"",file:[],alt:"",title:"",width:"",height:"",link:"",openInNewTab:!1};o.value=!1,n.value=!0},u=()=>{n.value=!1,o.value=!1,a.value=!1,s.value=[],c.value=null,i.value={src:"",file:[],alt:"",title:"",width:"",height:"",link:"",openInNewTab:!1}},g=async V=>{if(!V||V.length===0)return;const A=[];for(const E of V)if(E&&E.type&&E.type.startsWith("image/")&&!s.value.some(M=>M.file===E)){const M=new Promise((R,D)=>{const I=new FileReader;I.onload=T=>{s.value.push({file:E,preview:T.target.result,error:!1}),R()},I.onerror=D,I.readAsDataURL(E)});A.push(M)}await Promise.all(A)},y=V=>{s.value.splice(V,1),Array.isArray(i.value.file)&&i.value.file.splice(V,1)},C=()=>{const V=i.value.width!==null&&i.value.width!==void 0&&i.value.width!==""&&String(i.value.width).trim()!==""?String(i.value.width).trim():"",A=i.value.height!==null&&i.value.height!==void 0&&i.value.height!==""&&String(i.value.height).trim()!==""?String(i.value.height).trim():"",E={};return V&&A?(E.width=V,E.height=A,E.style=`width: ${V}px; height: ${A}px; object-fit: fill;`):V?(E.width=V,E.height=void 0):A?(E.height=A,E.width=void 0):(E.width=void 0,E.height=void 0),E},_=(V,A=null,E=50)=>{const $=()=>{const{view:D}=V;if(!D||!D.dom)return;D.dom.querySelectorAll("img.editor-image[width][height]").forEach(U=>{if(U instanceof HTMLImageElement){const H=U.getAttribute("width"),W=U.getAttribute("height");H&&W&&H!=="auto"&&W!=="auto"&&H!==""&&W!==""&&!isNaN(Number(H))&&!isNaN(Number(W))&&(U.style.cssText=`
35
- width: ${H}px !important;
36
- height: ${W}px !important;
34
+ `).trim()},Xn=async(r,t)=>t!=="md"?r||"":co(r||""),If=async(r,t)=>t!=="md"?r||"":fo(r||""),Rf=async(r,t)=>t!=="md"?r||"":fo(r||""),Of=r=>String(r).trim().toLowerCase().split("-")[0],zf=()=>typeof window>"u"?"uk":Of(localStorage.getItem("language")||localStorage.getItem("locale")||navigator.language||"uk"),Pf=(r,t)=>{const n=t.replace(/^form\.richtext\./,"");return zn?.[r]?.form?.richtext?.[n]||zn?.uk?.form?.richtext?.[n]||t},mo=r=>r.startsWith("form.richtext.")?r:`form.richtext.${r}`;function hn(){const t=e.getCurrentInstance()?.appContext?.config?.globalProperties,n=t?.$i18n;return{t:l=>{const a=t?.$t,s=t?.$te,c=typeof n?.te=="function"?n.te.bind(n):null;if(typeof a=="function"){const i=mo(l);if((typeof s=="function"?s(i):typeof c=="function"?c(i):null)!==!1){const f=a(i);if(f&&f!==i)return f}}return Pf(zf(),mo(l))}}}const jf={components:{Quote:j.Quote},props:{editor:Object},methods:{toggleBlockquote(){this.editor&&this.editor.chain().toggleBlockquote().run()}}};function Uf(r,t,n,o,l,a){const s=e.resolveComponent("Quote");return e.openBlock(),e.createElementBlock("button",{title:"Blockquote",onClick:t[0]||(t[0]=(...c)=>a.toggleBlockquote&&a.toggleBlockquote(...c)),class:e.normalizeClass(["text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 focus:outline-none",{"bg-gray-100 text-gray-900":n.editor?.isActive("blockquote")}])},[e.createVNode(s,{class:"h-4 w-4"})],2)}const Hf=me(jf,[["render",Uf]]),qf={components:{List:j.List},props:{editor:Object},methods:{toggleBulletList(){this.editor&&this.editor.chain().focus().toggleBulletList().run()}}};function Gf(r,t,n,o,l,a){const s=e.resolveComponent("List");return e.openBlock(),e.createElementBlock("button",{title:"Bullet List",onClick:t[0]||(t[0]=(...c)=>a.toggleBulletList&&a.toggleBulletList(...c)),class:e.normalizeClass(["text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100",{"bg-gray-100 text-gray-900":n.editor?.isActive("bulletList")}])},[e.createVNode(s,{class:"h-4 w-4"})],2)}const Kf=me(qf,[["render",Gf]]),Wf={components:{ListOrdered:j.ListOrdered},props:{editor:Object},methods:{toggleOrderedList(){this.editor&&this.editor.chain().focus().toggleOrderedList().run()}}};function Yf(r,t,n,o,l,a){const s=e.resolveComponent("ListOrdered");return e.openBlock(),e.createElementBlock("button",{title:"Ordered List",onClick:t[0]||(t[0]=(...c)=>a.toggleOrderedList&&a.toggleOrderedList(...c)),class:e.normalizeClass(["text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100",{"bg-gray-100 text-gray-900":n.editor?.isActive("orderedList")}])},[e.createVNode(s,{class:"h-4 w-4"})],2)}const Zf=me(Wf,[["render",Yf]]),Xf={components:{CodeXml:j.CodeXml},props:{editor:Object},methods:{toggleCodeBlock(){this.editor&&this.editor.chain().focus().toggleCodeBlock().run()}}};function Jf(r,t,n,o,l,a){const s=e.resolveComponent("CodeXml");return e.openBlock(),e.createElementBlock("button",{title:"Code Block",onClick:t[0]||(t[0]=(...c)=>a.toggleCodeBlock&&a.toggleCodeBlock(...c)),class:e.normalizeClass(["text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100",{"bg-gray-100 text-gray-900":n.editor?.isActive("codeBlock")}])},[e.createVNode(s,{class:"h-4 w-4"})],2)}const Qf=me(Xf,[["render",Jf]]),em={components:{Bold:j.Bold},props:{editor:Object},methods:{toggleBold(){this.editor&&this.editor.commands.toggleBold()}}};function tm(r,t,n,o,l,a){const s=e.resolveComponent("Bold");return e.openBlock(),e.createElementBlock("button",{title:"Bold Text",onClick:t[0]||(t[0]=(...c)=>a.toggleBold&&a.toggleBold(...c)),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",{"bg-gray-100 text-gray-900":n.editor?.isActive("bold")}])},[e.createVNode(s,{class:"h-4 w-4"}),t[1]||(t[1]=e.createElementVNode("span",{class:"sr-only"},"Bold",-1))],2)}const nm=me(em,[["render",tm]]),rm={components:{Italic:j.Italic},props:{editor:Object},methods:{toggleItalic(){this.editor&&this.editor.chain().toggleItalic().run()}}};function om(r,t,n,o,l,a){const s=e.resolveComponent("Italic");return e.openBlock(),e.createElementBlock("button",{title:"Italic Text",onClick:t[0]||(t[0]=(...c)=>a.toggleItalic&&a.toggleItalic(...c)),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",{"bg-gray-100 text-gray-900":n.editor?.isActive("italic")}])},[e.createVNode(s,{class:"h-4 w-4"}),t[1]||(t[1]=e.createElementVNode("span",{class:"sr-only"},"Italic",-1))],2)}const lm=me(rm,[["render",om]]),am={__name:"vs-editor-underline",props:{editor:Object},setup(r){const t=r,n=()=>{t.editor&&t.editor.chain().focus().toggleUnderline().run()};return(o,l)=>(e.openBlock(),e.createElementBlock("button",{title:"Underline",onClick:n,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100",[r.editor?.isActive("underline")?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(j.Underline),{class:"h-4 w-4"})],2))}},sm={__name:"vs-editor-strike",props:{editor:Object},setup(r){const t=r,n=()=>{t.editor&&t.editor.chain().focus().toggleStrike().run()};return(o,l)=>(e.openBlock(),e.createElementBlock("button",{title:"Strikethrough",onClick:n,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100",[r.editor?.isActive("strike")?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(j.Strikethrough),{class:"h-4 w-4"})],2))}},im={components:{X:j.X},props:{visible:{type:Boolean,default:()=>!1},modelValue:{type:Boolean,default:()=>!1},title:{type:String,default:()=>""},size:{type:String,default:()=>""},closeClickBack:{type:Boolean,default:()=>!1}},emits:["update:visible","update:modelValue","onClose","confirm","cancel"],inheritAttrs:!1,name:"vs-dialog",mounted(){window.addEventListener("keydown",this.checkKey)},unmounted(){window.removeEventListener("keydown",this.checkKey)},computed:{hasSlot(){return!!this.$slots?.footer},checkSize(){return this.size==="small"?"md:w-5/12 w-9/12":this.size==="medium"?"md:w-6/12 w-9/12":"lg:w-7/12 w-11/12"}},methods:{checkKey({key:r}){r==="Escape"&&this.handleClose()},handleClose(){this.$emit("update:visible",!1),this.$emit("update:modelValue",!1),this.$emit("onClose")},handleConfirm(){this.$emit("confirm"),this.handleClose()},handleCancel(){this.$emit("cancel"),this.handleClose()},closeByClickBack(r,t){t&&r.target.classList.contains("vs-dialog-overlay")&&this.handleClose()}}},cm={key:0,class:"vsTailwind ui-dialog__wrapper"},dm={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},um={class:"font-medium text-gray-800 dark:text-[#ffffff]"},pm={class:"ui-dialog__content p-4"},fm={key:0,class:"flex justify-end gap-x-2"};function mm(r,t,n,o,l,a){const s=e.resolveComponent("X");return e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[n.visible||n.modelValue?(e.openBlock(),e.createElementBlock("div",cm,[e.createElementVNode("div",{onMousedown:t[1]||(t[1]=c=>a.closeByClickBack(c,n.closeClickBack)),class:"vs-dialog-overlay vs-dialog w-full h-full fixed top-0 start-0 z-[100001] bg-black bg-opacity-50"},[e.createVNode(e.Transition,{name:"content",appear:""},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["ui-dialog__modal 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",[a.checkSize]])},[e.createElementVNode("div",dm,[e.createElementVNode("h3",um,e.toDisplayString(n.title),1),e.createElementVNode("button",{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",onClick:t[0]||(t[0]=(...c)=>a.handleClose&&a.handleClose(...c))},[t[2]||(t[2]=e.createElementVNode("span",{class:"sr-only"},"Close",-1)),e.createVNode(s,{class:"h-4 w-4 flex-shrink-0"})])]),e.createElementVNode("div",pm,[e.renderSlot(r.$slots,"default",{},void 0,!0)]),a.hasSlot?(e.openBlock(),e.createElementBlock("div",fm,[e.renderSlot(r.$slots,"footer",{handleClose:a.handleClose,handleConfirm:a.handleConfirm,handleCancel:a.handleCancel},void 0,!0)])):e.createCommentVNode("",!0)],2)]),_:3})],32)])):e.createCommentVNode("",!0)])}const ho=me(im,[["render",mm],["__scopeId","data-v-9395bb47"]]),hm=e.defineComponent({components:{IconClose:j.X,IconSearch:j.Search,IconEmail:j.Mail},inheritAttrs:!1,props:{icon:{type:String,default:()=>""},disabled:{type:Boolean,default:()=>!1},clearable:{type:Boolean,default:()=>!1},modelValue:{type:String,default:()=>""},placeholder:{type:String,default:()=>""},iconPosition:{type:String,default:()=>"right"},type:{type:String,default:()=>"text"},style:{type:Object,default:()=>null},size:{type:String,default:()=>"md"},attrs:{type:Object,default:()=>{}}},emits:["onInput","update:modelValue","blur","focus"],computed:{checkSize(){return(this.style?.size||this.size)==="xs"?"h-[32px] text-sm":(this.style?.size||this.size)==="md"?"h-[38px] text-sm":(this.style?.size||this.size)==="lg"?"h-[46px] text-[20px]":"h-[38px] text-sm"},value:{get(){return this.modelValue},set(r){this.$emit("update:modelValue",r.trim())}},clearIconStyle(){return[{"right-8":this.icon&&this.iconPosition==="right","right-3":!this.icon||this.iconPosition!=="right","pointer-events-none":this.disabled}]},iconStylePosition(){return[{"left-3":this.icon&&this.iconPosition==="left","right-3":this.icon&&this.iconPosition==="right"}]},inputStyle(){return[{"!pr-8":this.clearable&&!this.icon,"!pr-7":this.clearable,"!pr-16":this.clearable&&this.icon&&this.iconPosition==="right","!pl-8":this.icon&&this.iconPosition==="left","!pr-[50px]":this.clearable&&this.value&&this.icon&&this.iconPosition==="right","!cursor-not-allowed bg-slate-100":this.disabled,"bg-white":!this.disabled}]}},methods:{handleInput(){this.$emit("onInput",this.modelValue)},handleBlur(){this.$emit("blur")},handleFocus(){this.$emit("focus")},clearInput(){this.$emit("update:modelValue",""),this.$emit("onInput","")},async inputFocus(){await this.$refs.vsText?.focus()}}}),gm={class:"vs-form-text relative bg-white rounded-lg"},ym={key:2,class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},bm=["disabled","type","placeholder"];function km(r,t,n,o,l,a){const s=e.resolveComponent("IconClose"),c=e.resolveComponent("IconSearch"),i=e.resolveComponent("IconEmail");return e.openBlock(),e.createElementBlock("div",gm,[r.clearable&&r.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"absolute bottom-2/4 translate-y-2/4 right-3 cursor-pointer",onClick:t[0]||(t[0]=(...d)=>r.clearInput&&r.clearInput(...d))},[e.createVNode(s,{class:"h-4 w-4 stroke-gray-500 transition-all hover:stroke-red-500"})])):e.createCommentVNode("",!0),r.icon&&r.icon==="search"?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["absolute bottom-2/4 translate-y-2/4 cursor-pointer",r.iconStylePosition])},[e.createVNode(c,{class:"h-4 w-4 stroke-gray-500 transition-all"})],2)):r.icon&&r.icon==="email"?(e.openBlock(),e.createElementBlock("div",ym,[e.createVNode(i,{class:"h-4 w-4 stroke-gray-500 transition-all"})])):(e.openBlock(),e.createElementBlock("i",{key:3,class:e.normalizeClass(["absolute bottom-2/4 translate-y-2/4 text-gray-500 cursor-pointer",["ti "+r.icon,r.iconStylePosition]])},null,2)),r.clearable&&r.value?(e.openBlock(),e.createElementBlock("div",{key:4,class:"absolute bottom-2/4 translate-y-2/4 right-3 cursor-pointer",onClick:t[1]||(t[1]=(...d)=>r.clearInput&&r.clearInput(...d))},[e.createVNode(s,{class:"h-4 w-4 stroke-gray-500 transition-all hover:stroke-red-500"})])):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",e.mergeProps({ref:"vsText",disabled:r.disabled,type:r.type,onInput:t[2]||(t[2]=(...d)=>r.handleInput&&r.handleInput(...d)),placeholder:r.placeholder,"onUpdate:modelValue":t[3]||(t[3]=d=>r.value=d)},r.style?.attrs||r.attrs||{},{onFocus:t[4]||(t[4]=(...d)=>r.handleFocus&&r.handleFocus(...d)),onBlur:t[5]||(t[5]=(...d)=>r.handleBlur&&r.handleBlur(...d)),class:[[r.inputStyle,r.checkSize],"py-2 px-3 block w-full border border-solid placeholder:text-nowrap border-stone-200 rounded-lg text-sm 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,16,bm),[[e.vModelDynamic,r.value]])])}const go=me(hm,[["render",km],["__scopeId","data-v-1e382a36"]]),xm=["title"],wm={class:"flex flex-col gap-3 p-[20px]"},_m={class:"relative flex items-center gap-2"},vm={class:"flex-1"},Cm={key:0,class:"flex items-center gap-2 flex-shrink-0"},Em=["title"],Bm=["title"],Vm={class:"flex items-center gap-2"},Sm={for:"openInNewTab",class:"text-sm text-gray-700 cursor-pointer"},$m={class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},Nm=Object.assign({inheritAttrs:!1},{__name:"vs-editor-link",props:{editor:Object},setup(r){const{t}=hn(),n=r,o=e.ref(!1),l=e.ref(""),a=e.ref(!1),s=e.ref(!1),c=()=>{if(!n.editor)return;n.editor.chain().focus().extendMarkRange("link").run();const x=n.editor.getAttributes("link");x.href?(a.value=!0,l.value=x.href,s.value=x.target==="_blank"):(a.value=!1,l.value="",s.value=!1),o.value=!0},i=()=>{o.value=!1,l.value="",a.value=!1,s.value=!1},d=()=>{if(!n.editor||!l.value.trim())return;let x=l.value.trim();x.match(/^https?:\/\//i)||(x="https://"+x),n.editor.chain().focus().setLink({href:x,target:s.value?"_blank":null}).run(),i()},f=()=>{n.editor&&(n.editor.chain().focus().unsetLink().run(),i())},m=()=>{if(!l.value)return;let x=l.value.trim();x.match(/^https?:\/\//i)||(x="https://"+x),window.open(x,"_blank","noopener,noreferrer")};return(x,h)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("button",{title:e.unref(t)("form.richtext.link")||"Посилання",onClick:c,class:e.normalizeClass(["text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 focus:outline-none",{"bg-gray-100 text-gray-900":r.editor?.isActive("link")}])},[e.createVNode(e.unref(j.Link2),{class:"h-4 w-4"})],10,xm),e.createVNode(ho,{title:a.value?e.unref(t)("form.richtext.editLink")||"Редагувати посилання":e.unref(t)("form.richtext.linkTitle")||"Додати посилання",visible:o.value,"onUpdate:visible":h[2]||(h[2]=u=>o.value=u),size:"small"},{footer:e.withCtx(()=>[e.createElementVNode("div",$m,[e.createElementVNode("button",{style:{border:"1px solid #000"},onClick:i,class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm whitespace-nowrap text-black border-gray-200 rounded-lg !border-gray-200 hover:bg-gray-100 duration-300"},e.toDisplayString(e.unref(t)("form.richtext.cancel")||"Скасувати"),1),e.createElementVNode("button",{onClick:d,class:"py-2 px-3 inline-flex items-center gap-x-2 text-[14px] font-[400] whitespace-nowrap text-white bg-blue-500 rounded-lg !border-gray-200 hover:bg-blue-700 duration-300"},e.toDisplayString(a.value?e.unref(t)("form.richtext.update")||"Оновити":e.unref(t)("form.richtext.create")||"Створити"),1)])]),default:e.withCtx(()=>[e.createElementVNode("div",wm,[e.createElementVNode("div",_m,[e.createElementVNode("div",vm,[e.createVNode(go,{modelValue:l.value,"onUpdate:modelValue":h[0]||(h[0]=u=>l.value=u),placeholder:e.unref(t)("form.richtext.linkUrl")||"Введіть URL",class:"w-full"},null,8,["modelValue","placeholder"])]),a.value?(e.openBlock(),e.createElementBlock("div",Cm,[e.createElementVNode("button",{onClick:m,class:"text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 focus:outline-none transition-colors",title:e.unref(t)("form.richtext.openLink")||"Відкрити посилання"},[e.createVNode(e.unref(j.ExternalLink),{class:"h-4 w-4"})],8,Em),e.createElementVNode("button",{onClick:f,class:"text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-red-600 hover:bg-red-50 focus:outline-none transition-colors",title:e.unref(t)("form.richtext.removeLink")||"Видалити посилання"},[e.createVNode(e.unref(j.Trash2),{class:"h-4 w-4"})],8,Bm)])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Vm,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",id:"openInNewTab","onUpdate:modelValue":h[1]||(h[1]=u=>s.value=u),class:"w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 rounded focus:ring-blue-500"},null,512),[[e.vModelCheckbox,s.value]]),e.createElementVNode("label",Sm,e.toDisplayString(e.unref(t)("form.richtext.openInNewTab")||"Відкривати в новій вкладці"),1)])])]),_:1},8,["title","visible"])],64))}}),jt=async(r,t,n,o=10)=>{if(!t||!n)return;await e.nextTick();const l=await n?.getBoundingClientRect(),a=await t?.getBoundingClientRect();if(!a||!l)return;const s=await parseInt(t?.getBoundingClientRect()?.height),c=await parseInt(t?.getBoundingClientRect()?.width),i=await parseInt(n?.getBoundingClientRect()?.height),d=await parseInt(n?.getBoundingClientRect()?.width),f=await window.innerHeight,m=await window.innerWidth;let x=0,h=0;const u=a.bottom+o+i;switch(r){case"top":a.top-l.height-o<0?x=a.top-l.height+o+i+s:x=a.top-l.height-o,m>d+a.right+30?h=a.left-l.width/2+a.width/2:h=m-30-d;break;case"bottom":f>u?x=a.bottom+o:x=a.bottom-o-i-s,h=a.left-l.width/2+a.width/2;break;case"left":x=a.top-l.height/2+a.height/2,a.left-l.width-o>0?h=a.left-l.width-o:h=10;break;case"right":x=a.top-l.height/2+a.height/2,m-c>d?h=a.right+o:h=m-30-d;break;case"top-right":a.top-l.height-o<0?x=a.top-l.height+o+i+s:x=a.top-l.height-o,m-c>d?h=a.right+o:h=m-30-d;break;case"top-left":a.top-l.height-o<0?x=a.top-l.height+o+i+s:x=a.top-l.height-o,a.left-l.width-o>0?h=a.left-l.width-o:h=10;break;case"top-start":a.top-l.height-o<0?x=a.top-l.height+o+i+s:x=a.top-l.height-o,a.left>0?h=a.left:h=10;break;case"bottom-right":f>u?x=a.bottom+o:x=a.bottom-o-i-s,m-c>d?h=a.left:h=m-30-d;break;case"bottom-left":f>u?x=a.bottom+o:x=a.bottom-o-i-s,a.left>0?h=a.right-d:h=10;break;case"bottom-start":f>u?x=a.bottom+o:x=a.bottom-o-i-s,a.left>0?h=a.left:h=10;break}x+i>f?x=f-i-o:x<0&&(x=o),h+d>m?h=m-d-o:h<0&&(h=o),n instanceof HTMLElement&&(n.style.top=`${x}px`,n.style.left=`${h}px`,n.style.position="fixed")},Am={class:"text-center"},Fm={class:"py-2 px-4 w-full text-sm text-stone-800 bg-white shadow-[0_10px_40px_10px_rgba(0,0,0,0.08)] rounded-lg focus:outline-none focus:bg-stone-100 dark:bg-neutral-900 dark:text-neutral-200 dark:focus:bg-neutral-800 after:h-4 after:absolute after:-bottom-4 after:start-0 after:w-full before:h-4 before:absolute before:-top-4 before:start-0 before:w-full"},bt=Object.assign({inheritAttrs:!1},{__name:"vs-popover",props:{isOpen:{type:Boolean,default:()=>!1},placement:{type:String,default:"top"},gap:{type:Number,default:8},width:{type:[String,Number],default:""},disabled:{type:Boolean,default:!1},trigger:{type:String,default:"click"},teleport:{type:String,default:"body"}},emits:["isvisible"],setup(r,{expose:t,emit:n}){const o=r,l=n,a=e.ref(!1),s=e.ref([]),c=e.ref(null),i=e.ref(null),d=e.ref(null);e.watch(a,k=>{k?(f(),window.addEventListener("resize",()=>jt(o.placement,i.value,d.value)),jt(o.placement,i.value,d.value)):window.removeEventListener("resize",()=>jt(o.placement,i.value,d.value)),l("isvisible",k)}),e.onMounted(()=>{window.addEventListener("click",b),window.addEventListener("popstate",C),window.addEventListener("scroll",_,!0),f()}),e.onBeforeUnmount(()=>{window.removeEventListener("click",b),window.removeEventListener("popstate",C),m()});const f=()=>{let k=c.value;for(;k&&k!==document.body;)(k.scrollHeight>k.clientHeight||k.scrollWidth>k.clientWidth)&&(k.addEventListener("scroll",g),s.value.push(k)),k=k.parentElement;document.body&&(document.body.addEventListener("scroll",g),s.value.push(document.body))},m=()=>{s.value.forEach(k=>{k.removeEventListener("scroll",g)}),s.value=[]},x=()=>{a.value=!0,jt(o.placement,i.value,d.value)},h=()=>{a.value=!1},u=async()=>{await jt(o.placement,i.value,d.value),a.value=!a.value},g=()=>{a.value=!1},b=k=>{if(!k){a.value=!1;return}i.value?.contains(k.target)||d.value?.contains(k.target)||(a.value=!1)},C=()=>{a.value&&(a.value=!1)},_=k=>{a.value&&d.value&&!d.value.contains(k.target)&&(a.value=!1)};return t({togglePopover:u}),(k,w)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"popover",ref:c,class:"vs-popover inline-block"},[e.createElementVNode("div",Am,[r.trigger==="click"?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"popoverRef",ref:i,onClick:u,class:e.normalizeClass({"pointer-events-none":r.disabled})},[e.renderSlot(k.$slots,"reference",{},()=>[w[0]||(w[0]=e.createElementVNode("button",null,"Click me!",-1))])],2)):e.createCommentVNode("",!0),r.trigger==="hover"?(e.openBlock(),e.createElementBlock("div",{key:1,ref_key:"popoverRef",ref:i,onMouseover:x,onMouseleave:h,class:e.normalizeClass({"pointer-events-none":r.disabled})},[e.renderSlot(k.$slots,"reference",{},()=>[w[1]||(w[1]=e.createElementVNode("button",null,"Click me!",-1))])],34)):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.Teleport,{to:r.teleport},[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(["vsTailwind vs-popover__content",r.placement]),ref_key:"contentPop",ref:d,style:e.normalizeStyle({width:r.width?r.width+"px":"fit-content",zIndex:100001})},[e.createElementVNode("div",Fm,[e.renderSlot(k.$slots,"default",{},()=>[w[2]||(w[2]=e.createElementVNode("span",null,"Popover content",-1))])])],6),[[e.vShow,a.value]])]),_:3})],8,["to"]))])],512))}}),Mm={class:"flex flex-col gap-[2px] p-[2px]"},Dm=["onClick"],Lm={__name:"vs-editor-table",props:{editor:Object},setup(r){const{t}=hn(),n=r,o=e.ref(!1),l=e.ref("popover"),a=()=>{n.editor&&(n.editor.chain().focus().insertTable({rows:3,cols:3,withHeaderRow:!0}).run(),l.value.togglePopover())},s=()=>{n.editor&&(n.editor.chain().focus().addColumnAfter().run(),l.value.togglePopover())},c=()=>{n.editor&&(n.editor.chain().focus().addRowAfter().run(),l.value.togglePopover())},i=()=>{n.editor&&(n.editor.chain().focus().deleteColumn().run(),l.value.togglePopover())},d=()=>{n.editor&&(n.editor.chain().focus().deleteRow().run(),l.value.togglePopover())},f=()=>{n.editor&&(n.editor.chain().focus().deleteTable().run(),l.value.togglePopover())},m=()=>{n.editor&&(n.editor.chain().focus().mergeCells().run(),l.value.togglePopover())},x=()=>{n.editor&&(n.editor.chain().focus().splitCell().run(),l.value.togglePopover())},h=e.computed(()=>[{text:t("form.richtext.createTable"),function:a},{text:t("form.richtext.addColumn"),function:s},{text:t("form.richtext.addRow"),function:c},{text:t("form.richtext.deleteColumn"),function:i},{text:t("form.richtext.deleteRow"),function:d},{text:t("form.richtext.deleteTable"),function:f},{text:t("form.richtext.mergeCells"),function:m},{text:t("form.richtext.splitCells"),function:x}]);return(u,g)=>(e.openBlock(),e.createBlock(bt,{ref_key:"popover",ref:l,placement:"bottom",onIsvisible:g[0]||(g[0]=b=>o.value=b)},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Table",class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded-full hover:text-gray-900 hover:bg-gray-100",[o.value?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(j.Table2),{class:"h-4 w-4"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",Mm,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,(b,C)=>(e.openBlock(),e.createElementBlock("button",{key:C,onClick:b?.function,class:"px-2 py-1 text-gray-500 text-start hover:text-gray-900 hover:bg-gray-100 rounded"},e.toDisplayString(b.text),9,Dm))),128))])]),_:1},512))}},Tm={class:"flex gap-[4px] p-1"},Im=["title","onClick"],Rm={__name:"vs-editor-align",props:{editor:Object},setup(r){const t=r,n={left:j.AlignLeft,center:j.AlignCenter,right:j.AlignRight,justify:j.AlignJustify},o=e.ref(!1),l=e.ref("popover"),a=e.ref("left"),s=e.computed(()=>t.editor?t.editor.isActive("paragraph",{textAlign:"left"})||t.editor.isActive("heading",{textAlign:"left"}):!1),c=e.computed(()=>t.editor?t.editor.isActive("paragraph",{textAlign:"right"})||t.editor.isActive("heading",{textAlign:"right"}):!1),i=e.computed(()=>t.editor?t.editor.isActive("paragraph",{textAlign:"center"})||t.editor.isActive("heading",{textAlign:"center"}):!1),d=e.computed(()=>t.editor?t.editor.isActive("paragraph",{textAlign:"justify"})||t.editor.isActive("heading",{textAlign:"justify"}):!1),f=e.computed(()=>s.value||c.value||i.value||d.value),m=()=>{c.value?a.value="right":i.value?a.value="center":d.value?a.value="justify":a.value="left"};e.watch([s,c,i,d],()=>{m()},{immediate:!0}),e.onMounted(()=>{t.editor&&(t.editor.on("selectionUpdate",m),t.editor.on("update",m))}),e.onUnmounted(()=>{t.editor&&(t.editor.off("selectionUpdate",m),t.editor.off("update",m))});const x=u=>{t.editor&&(t.editor.chain().focus().setTextAlign(u).run(),a.value=u)},h=e.ref([{id:"left",isActive:s},{id:"center",isActive:i},{id:"right",isActive:c},{id:"justify",isActive:d}]);return(u,g)=>(e.openBlock(),e.createBlock(bt,{ref_key:"popover",ref:l,placement:"bottom",onIsvisible:g[0]||(g[0]=b=>o.value=b)},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Text Align",class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded-full hover:text-gray-900 hover:bg-gray-100",[f.value?"bg-gray-100 text-gray-900":"text-gray-500"]])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n[a.value]),{height:"16",width:"16"}))],2)]),default:e.withCtx(()=>[e.createElementVNode("div",Tm,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,b=>(e.openBlock(),e.createElementBlock("button",{title:"Text align "+b?.id,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded hover:text-gray-900 hover:bg-gray-100",{"bg-gray-100 text-gray-900":b?.isActive}]),key:b?.id,onClick:C=>x(b?.id)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n[b?.id]),{height:"16",width:"16"}))],10,Im))),128))])]),_:1},512))}},Om={class:"flex flex-col gap-[2px] p-[2px]"},zm=["onClick"],Pm={__name:"vs-editor-type-tag",props:{editor:Object},setup(r){const{t}=hn(),n=r,o=e.ref(!1),l=e.ref("popover"),a=()=>{n.editor&&(n.editor?.chain().focus().setParagraph().run(),l.value.togglePopover())},s=i=>{n.editor&&(n.editor?.chain().focus().toggleHeading({level:i}).run(),l.value.togglePopover())},c=e.computed(()=>[{text:t("form.richtext.heading1"),id:1,style:"font-[700] text-[30px]"},{text:t("form.richtext.heading2"),id:2,style:"font-[700] text-[26px]"},{text:t("form.richtext.heading3"),id:3,style:"font-[700] text-[22px]"},{text:t("form.richtext.heading4"),id:4,style:"font-[700] text-[18px]"},{text:t("form.richtext.heading5"),id:5,style:"font-[500] text-[16px]"},{text:t("form.richtext.heading6"),id:6,style:"font-[400] text-[14px]"}]);return(i,d)=>(e.openBlock(),e.createBlock(bt,{ref_key:"popover",ref:l,placement:"bottom",onIsvisible:d[0]||(d[0]=f=>o.value=f)},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Type Tag",class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded-full hover:text-gray-900 hover:bg-gray-100",[o.value?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(j.Type),{class:"h-4 w-4"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",Om,[e.createElementVNode("button",{onClick:a,class:e.normalizeClass(["px-2 py-1 text-gray-500 text-start hover:text-gray-900 hover:bg-gray-100 rounded",[r.editor?.isActive("paragraph")?"bg-gray-100":""]])},e.toDisplayString(e.unref(t)("form.richtext.paragraph")),3),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,(f,m)=>(e.openBlock(),e.createElementBlock("button",{key:m,onClick:x=>s(f?.id),class:e.normalizeClass(["px-2 py-1 text-gray-500 text-start hover:text-gray-900 hover:bg-gray-100 rounded leading-[100%]",[f?.style,r.editor?.isActive("heading",{level:f?.id})?"bg-gray-100":""]])},e.toDisplayString(e.unref(t)(`form.richtext.heading${f?.id}`)),11,zm))),128))])]),_:1},512))}},jm={components:{VsText:go},inheritAttrs:!1,events:["update:modelValue"],props:{modelValue:{type:String},disabled:{type:Boolean,default:()=>!1},clearable:{type:Boolean,default:()=>!1},isTextInputShown:{type:Boolean,default:()=>!0}},computed:{value:{get(){return this.modelValue??""},set(r){this.$emit("update:modelValue",r)}}}},Um={class:"flex items-center w-full max-w-[182px]"},Hm=["disabled"];function qm(r,t,n,o,l,a){const s=e.resolveComponent("vs-text");return e.openBlock(),e.createElementBlock("div",Um,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":t[0]||(t[0]=c=>a.value=c),type:"color",class:e.normalizeClass(["w-[38px] h-[38px] min-h-[38px] min-w-[38px] py-[2px] px-[3px] -ml-1 dark:bg-neutral-800 border dark:border-neutral-700 border-stone-200 rounded-lg",n.disabled?"cursor-not-allowed":"cursor-pointer"]),disabled:n.disabled},null,10,Hm),[[e.vModelText,a.value]]),n.isTextInputShown?(e.openBlock(),e.createBlock(s,{key:0,modelValue:a.value,"onUpdate:modelValue":t[1]||(t[1]=c=>a.value=c),class:"ml-2 w-full",disabled:n.disabled,clearable:n.clearable},null,8,["modelValue","disabled","clearable"])):e.createCommentVNode("",!0)])}const yo=me(jm,[["render",qm]]),Gm={class:"flex gap-[4px] mb-[8px]"},Km={class:"grid grid-rows-3 grid-cols-7"},Wm={class:"w-full h-full rounded border border-gray-300 overflow-hidden"},Ym=["onClick","title"],Zm={__name:"vs-editor-color",props:{editor:Object},setup(r){const t=r,n=e.ref(null),o=e.ref("#000000"),l=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").color||"#000000"),a=e.computed(()=>l.value!=="#000000"),s=()=>{t.editor&&(o.value=l.value)};e.onMounted(()=>{t.editor&&(t.editor.on("selectionUpdate",s),t.editor.on("update",s),s())}),e.onUnmounted(()=>{t.editor&&(t.editor.off("selectionUpdate",s),t.editor.off("update",s))});const c=e.ref(["#172B4D","#0747A6","#008DA6","#006644","#FF991F","#BF2600","#403294","#97A0AF","#4C9AFF","#00B8D9","#36B37E","#FFC400","#FF5630","#6554C0","#FFFFFF","#B3D4FF","#B3F5FF","#ABF5D1","#FFF0B3","#FFBDAD","#EAE6FF"]),i=m=>{t.editor&&(t.editor.chain().focus().setColor(m).run(),o.value=m,n.value&&n.value.togglePopover())},d=()=>{i(o.value)},f=m=>({"#172B4D":"Default","#0747A6":"Bright blue","#008DA6":"Bright blue-green","#006644":"Bright green","#FF991F":"Bright orange","#BF2600":"Bright red","#403294":"Bright purple","#97A0AF":"Gray","#4C9AFF":"Blue","#00B8D9":"Blue-green","#36B37E":"Green","#FFC400":"Yellow","#FF5630":"Red","#6554C0":"Purple","#FFFFFF":"White","#B3D4FF":"Bright blue","#B3F5FF":"Bright blue-green","#ABF5D1":"Bright green","#FFF0B3":"Bright yellow","#FFBDAD":"Bright red","#EAE6FF":"Bright purple"})[m]||m;return(m,x)=>(e.openBlock(),e.createBlock(bt,{ref_key:"popover",ref:n,placement:"bottom"},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Text Color",class:e.normalizeClass(["flex flex-col h-[30px] min-w-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex",{"bg-gray-100":a.value}])},[x[1]||(x[1]=e.createElementVNode("span",{class:"leading-none"},"A",-1)),e.createElementVNode("span",{class:"block h-1 w-5",style:e.normalizeStyle({backgroundColor:o.value})},null,4)],2)]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("div",Gm,[e.createVNode(yo,{modelValue:o.value,"onUpdate:modelValue":x[0]||(x[0]=h=>o.value=h)},null,8,["modelValue"]),e.createElementVNode("button",{onClick:d,class:"h-[38px] w-[38px] bg-blue-500 shrink-0 border rounded-md flex items-center justify-center hover:bg-blue-700 duration-300"},[e.createVNode(e.unref(j.Check),{class:"h-4 w-4 text-white"})])]),e.createElementVNode("div",Km,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,h=>(e.openBlock(),e.createElementBlock("div",{key:h,class:"h-8 w-8 p-0.5 rounded border border-transparent hover:border-gray-200 transition-transform cursor-pointer"},[e.createElementVNode("div",Wm,[e.createElementVNode("button",{class:"flex items-center justify-center w-full h-full",style:e.normalizeStyle({backgroundColor:h}),onClick:u=>i(h),title:f(h)},[o.value===h?(e.openBlock(),e.createBlock(e.unref(j.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],12,Ym)])]))),128))])])]),_:1},512))}},Xm={class:"flex gap-[4px] mb-[8px]"},Jm={class:"grid grid-rows-3 grid-cols-7"},Qm={class:"w-full h-full rounded border border-gray-300 overflow-hidden"},eh=["onClick","title"],th=["onClick","title"],nh={__name:"vs-editor-background-color",props:{editor:Object},setup(r){const t=r,n=e.ref(null),o=e.ref("transparent"),l=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").backgroundColor||"transparent"),a=e.computed(()=>l.value!=="transparent"&&l.value!==""),s=()=>{t.editor&&(o.value=l.value)};e.onMounted(()=>{t.editor&&(t.editor.on("selectionUpdate",s),t.editor.on("update",s),s())}),e.onUnmounted(()=>{t.editor&&(t.editor.off("selectionUpdate",s),t.editor.off("update",s))});const c=e.ref(["#172B4D","#0747A6","#008DA6","#006644","#FF991F","#BF2600","#403294","#97A0AF","#4C9AFF","#00B8D9","#36B37E","#FFC400","#FF5630","#6554C0","#FFFFFF","#B3D4FF","#B3F5FF","#ABF5D1","#FFF0B3","#FFBDAD","#EAE6FF"]),i=m=>{t.editor&&(t.editor.chain().focus().setBackgroundColor(m).run(),o.value=m,n.value&&n.value.togglePopover())},d=()=>{i(o.value)},f=m=>({"#172B4D":"Default","#0747A6":"Bright blue","#008DA6":"Bright blue-green","#006644":"Bright green","#FF991F":"Bright orange","#BF2600":"Bright red","#403294":"Bright purple","#97A0AF":"Gray","#4C9AFF":"Blue","#00B8D9":"Blue-green","#36B37E":"Green","#FFC400":"Yellow","#FF5630":"Red","#6554C0":"Purple",transparent:"Transparent","#B3D4FF":"Bright blue","#B3F5FF":"Bright blue-green","#ABF5D1":"Bright green","#FFF0B3":"Bright yellow","#FFBDAD":"Bright red","#EAE6FF":"Bright purple"})[m]||m;return(m,x)=>(e.openBlock(),e.createBlock(bt,{ref_key:"popover",ref:n,placement:"bottom"},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Background Color",class:e.normalizeClass(["flex flex-col h-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex",{"bg-gray-100":a.value}])},[e.createVNode(e.unref(j.PaintBucket),{class:"h-4 w-4"}),e.createElementVNode("span",{class:"block h-1 w-5",style:e.normalizeStyle({backgroundColor:o.value})},null,4)],2)]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("div",Xm,[e.createVNode(yo,{modelValue:o.value,"onUpdate:modelValue":x[0]||(x[0]=h=>o.value=h)},null,8,["modelValue"]),e.createElementVNode("button",{onClick:d,class:"h-[38px] w-[38px] bg-blue-500 shrink-0 border rounded-md flex items-center justify-center hover:bg-blue-700 duration-300"},[e.createVNode(e.unref(j.Check),{class:"h-4 w-4 text-white"})])]),e.createElementVNode("div",Jm,[e.createElementVNode("button",{onClick:x[1]||(x[1]=h=>i("transparent")),class:"col-span-7 flex items-center justify-center gap-2 bg-gray-100 rounded-md py-1 mb-2 hover:bg-gray-200"},[e.createVNode(e.unref(j.Eraser),{class:"h-4 w-4"}),x[2]||(x[2]=e.createElementVNode("p",null,"no color",-1))]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,h=>(e.openBlock(),e.createElementBlock("div",{key:h,class:"h-8 w-8 p-0.5 rounded border border-transparent hover:border-gray-200 transition-transform cursor-pointer"},[e.createElementVNode("div",Qm,[h!=="transparent"?(e.openBlock(),e.createElementBlock("button",{key:0,class:"flex items-center justify-center w-full h-full",style:e.normalizeStyle({backgroundColor:h}),onClick:u=>i(h),title:f(h)},[o.value===h?(e.openBlock(),e.createBlock(e.unref(j.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],12,eh)):e.createCommentVNode("",!0),h==="transparent"?(e.openBlock(),e.createElementBlock("button",{key:1,class:"flex items-center justify-center w-full h-full",onClick:u=>i(h),title:f(h)},[o.value===h?(e.openBlock(),e.createBlock(e.unref(j.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],8,th)):e.createCommentVNode("",!0)])]))),128))])])]),_:1},512))}},rh={__name:"vs-editor-highlight",props:{editor:Object},setup(r){const t=r,n=e.computed(()=>t.editor?.isActive("highlight")),o=()=>{t.editor&&t.editor.chain().focus().toggleHighlight().run()};return(l,a)=>(e.openBlock(),e.createElementBlock("button",{title:"Highlight",onClick:o,class:e.normalizeClass(["flex flex-col h-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex",{"bg-gray-200":n.value}])},[e.createVNode(e.unref(j.Highlighter),{class:"h-4 w-4"})],2))}},oh={class:"truncate"},lh={class:"w-[200px]"},ah={class:"max-h-[200px] overflow-y-auto"},sh=["onClick"],ih={__name:"vs-editor-font-family",props:{editor:Object},setup(r){const t=r,n=e.ref("popover"),o=e.ref(!1),l=e.ref([{label:"Arial",value:"Arial, sans-serif"},{label:"Helvetica",value:"Helvetica, sans-serif"},{label:"Times New Roman",value:"Times New Roman, serif"},{label:"Georgia",value:"Georgia, serif"},{label:"Verdana",value:"Verdana, sans-serif"},{label:"Courier New",value:"Courier New, monospace"},{label:"Comic Sans MS",value:"Comic Sans MS, cursive"},{label:"Impact",value:"Impact, sans-serif"},{label:"Trebuchet MS",value:"Trebuchet MS, sans-serif"},{label:"Palatino",value:"Palatino, serif"}]),a=e.computed(()=>{if(!t.editor)return"Arial, sans-serif";for(const d of l.value)if(t.editor.isActive("textStyle",{fontFamily:d.value}))return d.value;return"Arial, sans-serif"}),s=e.computed(()=>l.value.find(f=>f.value===a.value)?.label||"Arial"),c=d=>t.editor?t.editor.isActive("textStyle",{fontFamily:d}):!1,i=d=>{t.editor&&(t.editor.chain().focus().setFontFamily(d).run(),n.value&&n.value.togglePopover())};return(d,f)=>(e.openBlock(),e.createBlock(bt,{ref_key:"popover",ref:n,placement:"bottom",onIsvisible:f[0]||(f[0]=m=>o.value=m)},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Font Family",class:e.normalizeClass(["h-[30px] px-2 rounded-full hover:bg-gray-100 justify-center items-center flex text-sm",[o.value?"bg-gray-100 text-gray-900":"text-gray-700"]]),style:e.normalizeStyle({fontFamily:a.value})},[e.createElementVNode("span",oh,e.toDisplayString(s.value),1),e.createVNode(e.unref(j.ChevronDown),{class:"ml-1 h-3 w-3 text-gray-400"})],6)]),default:e.withCtx(()=>[e.createElementVNode("div",lh,[e.createElementVNode("ul",ah,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,m=>(e.openBlock(),e.createElementBlock("li",{key:m.value,class:e.normalizeClass(["px-3 py-2 hover:bg-gray-100 cursor-pointer text-sm",{"bg-gray-100":c(m.value)}]),style:e.normalizeStyle({fontFamily:m.value}),onClick:x=>i(m.value)},e.toDisplayString(m.label),15,sh))),128))])])]),_:1},512))}},ch={class:"w-[120px]"},dh={class:"max-h-[200px] overflow-y-auto"},uh=["onClick"],ph={__name:"vs-editor-font-size",props:{editor:Object},setup(r){const t=r,n=e.ref("popover"),o=e.ref("14px"),l=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").fontSize||"14px"),a=e.computed(()=>l.value!=="14px"),s=()=>{t.editor&&(o.value=l.value)};e.onMounted(()=>{t.editor&&(t.editor.on("selectionUpdate",s),t.editor.on("update",s),s())}),e.onUnmounted(()=>{t.editor&&(t.editor.off("selectionUpdate",s),t.editor.off("update",s))});const c=e.ref([{label:"8px",value:"8px"},{label:"9px",value:"9px"},{label:"10px",value:"10px"},{label:"11px",value:"11px"},{label:"12px",value:"12px"},{label:"14px",value:"14px"},{label:"16px",value:"16px"},{label:"18px",value:"18px"},{label:"20px",value:"20px"},{label:"24px",value:"24px"},{label:"28px",value:"28px"},{label:"32px",value:"32px"},{label:"36px",value:"36px"},{label:"48px",value:"48px"},{label:"72px",value:"72px"}]),i=d=>{t.editor&&(t.editor.chain().focus().setFontSize(d).run(),o.value=d,n.value&&n.value.togglePopover())};return(d,f)=>(e.openBlock(),e.createBlock(bt,{ref_key:"popover",ref:n,placement:"bottom"},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Font Size",class:e.normalizeClass(["h-[30px] px-2 min-w-[30px] rounded-full hover:bg-gray-100 justify-center items-center flex text-sm text-gray-700 space-x-1",{"bg-gray-100 text-gray-900":a.value}])},[e.createVNode(e.unref(j.ALargeSmall),{class:"h-4 w-4"}),e.createVNode(e.unref(j.ChevronDown),{class:"h-3 w-3 text-gray-400"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",ch,[e.createElementVNode("ul",dh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,m=>(e.openBlock(),e.createElementBlock("li",{key:m.value,class:"px-3 py-2 hover:bg-gray-100 cursor-pointer",onClick:x=>i(m.value)},e.toDisplayString(m.label),9,uh))),128))])])]),_:1},512))}},fh={components:{Superscript:j.Superscript},props:{editor:Object},methods:{toggleSuperscript(){this.editor&&this.editor.commands.toggleSuperscript()}}};function mh(r,t,n,o,l,a){const s=e.resolveComponent("Superscript");return e.openBlock(),e.createElementBlock("button",{title:"Superscript",onClick:t[0]||(t[0]=(...c)=>a.toggleSuperscript&&a.toggleSuperscript(...c)),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",{"bg-gray-100 text-gray-900":n.editor?.isActive("superscript")}])},[e.createVNode(s,{class:"h-4 w-4"}),t[1]||(t[1]=e.createElementVNode("span",{class:"sr-only"},"Superscript",-1))],2)}const hh=me(fh,[["render",mh]]),gh={components:{Subscript:j.Subscript},props:{editor:Object},methods:{toggleSubscript(){this.editor&&this.editor.commands.toggleSubscript()}}};function yh(r,t,n,o,l,a){const s=e.resolveComponent("Subscript");return e.openBlock(),e.createElementBlock("button",{title:"Subscript",onClick:t[0]||(t[0]=(...c)=>a.toggleSubscript&&a.toggleSubscript(...c)),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",{"bg-gray-100 text-gray-900":n.editor?.isActive("subscript")}])},[e.createVNode(s,{class:"h-4 w-4"}),t[1]||(t[1]=e.createElementVNode("span",{class:"sr-only"},"Subscript",-1))],2)}const bh=me(gh,[["render",yh]]),kh={title:"Heading",class:"h-[30px] px-2 rounded-full hover:bg-gray-100 justify-center items-center flex text-sm text-gray-700"},xh={class:"truncate"},wh={class:"max-h-[200px] overflow-y-auto"},_h=["onClick"],vh=me({__name:"vs-editor-heading",props:{editor:Object},setup(r){const t=r,n=e.ref("popover"),o=e.ref([{label:"Heading 1",value:1},{label:"Heading 2",value:2},{label:"Heading 3",value:3},{label:"Heading 4",value:4},{label:"Heading 5",value:5},{label:"Heading 6",value:6}]),l=e.computed(()=>{if(!t.editor)return"Paragraph";for(let i=1;i<=6;i++)if(t.editor.isActive("heading",{level:i}))return`H ${i}`;return"P"}),a=i=>({1:"font-weight:700; font-size:30px;",2:"font-weight:700; font-size:26px;",3:"font-weight:700; font-size:22px;",4:"font-weight:700; font-size:18px;",5:"font-weight:500; font-size:16px;",6:"font-weight:400; font-size:14px;"})[i]||"",s=i=>{t.editor&&(t.editor.chain().focus().setHeading({level:i}).run(),n.value&&n.value.togglePopover())},c=()=>{t.editor&&(t.editor.chain().focus().setParagraph().run(),n.value&&n.value.togglePopover())};return(i,d)=>(e.openBlock(),e.createBlock(bt,{ref_key:"popover",ref:n,placement:"bottom"},{reference:e.withCtx(()=>[e.createElementVNode("button",kh,[e.createElementVNode("span",xh,e.toDisplayString(l.value),1),e.createVNode(e.unref(j.ChevronDown),{class:"ml-1 h-3 w-3 text-gray-400"})])]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("ul",wh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,f=>(e.openBlock(),e.createElementBlock("li",{key:f.value,class:e.normalizeClass(["px-3 py-2 hover:bg-gray-100 cursor-pointer text-sm",`heading-level-${f.value}`]),style:e.normalizeStyle(a(f.value)),onClick:m=>s(f.value)},e.toDisplayString(f.label),15,_h))),128)),e.createElementVNode("li",{class:"px-3 py-2 hover:bg-gray-100 cursor-pointer text-sm border-t border-gray-200 mt-1 pt-2",onClick:c}," Paragraph ")])])]),_:1},512))}},[["__scopeId","data-v-46380488"]]),Ch={components:{RemoveFormatting:j.RemoveFormatting},props:{editor:Object},methods:{clearFormatting(){this.editor&&this.editor.commands.unsetAllMarks()}}};function Eh(r,t,n,o,l,a){const s=e.resolveComponent("RemoveFormatting");return e.openBlock(),e.createElementBlock("button",{title:"Clear Formatting",onClick:t[0]||(t[0]=(...c)=>a.clearFormatting&&a.clearFormatting(...c)),class:"h-[30px] w-[30px] flex items-center justify-center text-gray-500 rounded-full cursor-pointer hover:text-gray-900 hover:bg-gray-100"},[e.createVNode(s,{class:"h-4 w-4"}),t[1]||(t[1]=e.createElementVNode("span",{class:"sr-only"},"Clear Formatting",-1))])}const Bh=me(Ch,[["render",Eh]]),Vh={class:"relative"},Sh={key:0,class:"mt-4"},$h=["src","alt","title"],Nh={key:0,class:"text-sm text-red-500"},Ah={key:1,class:"mt-4"},Fh={class:"text-sm text-gray-600 mb-2"},Mh={class:"flex flex-wrap gap-2"},Dh=["src","alt","onError"],Lh=["onClick"],Th={class:"flex justify-end gap-x-2 p-[20px]"},Ih=Object.assign({inheritAttrs:!1},{__name:"vs-editor-image",props:{editor:{type:Object,required:!0}},setup(r){const t=r,n=e.ref(!1),o=e.ref(!1),l=e.ref({}),a=e.ref(!1),s=e.ref([]),c=e.ref(null),i=e.ref({src:"",file:[],alt:"",title:"",width:"",height:"",link:"",openInNewTab:!1}),d=e.computed(()=>{if(Array.isArray(i.value.file)){const V=i.value.file.filter(A=>A instanceof File),N=i.value.file.filter(A=>typeof A=="string"&&A.trim()!=="");return V.length+N.length>1}return i.value.file instanceof FileList?i.value.file.length>1:!1}),f=e.computed(()=>Array.isArray(i.value.file)?i.value.file.filter(V=>V instanceof File).length===1:i.value.file instanceof FileList?i.value.file.length===1:i.value.file instanceof File),m=e.computed(()=>{if(d.value)return"";if(i.value.src)return i.value.src;if(f.value){let V=null;if(Array.isArray(i.value.file)||i.value.file instanceof FileList?V=i.value.file[0]:i.value.file instanceof File&&(V=i.value.file),V instanceof File){const N=s.value.find(E=>E.file===V);return N?N.preview:""}else if(typeof V=="string")return V}return""}),x=e.computed(()=>[{name:"src",label:"URL зображення",type:"text",required:!1,placeholder:"https://example.com/image.png"},{name:"file",label:"Файл (можна вибрати кілька)",type:"file",multiple:!0,required:!1,placeholder:"Шлях до файлу зображення",accept:"image/*"},{name:"width",label:"Ширина",type:"number",required:!1,placeholder:"Ширина зображення",clearable:!0,min:0},{name:"height",label:"Висота",type:"number",required:!1,placeholder:"Висота зображення",clearable:!0,min:0},{name:"alt",label:"Альтернативний текст",type:"text",required:!1,placeholder:"Опис зображення"},{name:"title",label:"Заголовок (необов'язково)",type:"text",required:!1,placeholder:"Заголовок зображення"},{name:"link",label:"Посилання",type:"text",required:!1,placeholder:"https://example.com"},{name:"openInNewTab",label:"Відкривати у новій вкладці?",type:"switcher",required:!1}]),h=()=>{if(!t.editor)return;if(t.editor.isActive("image")){const{state:N}=t.editor,{selection:E}=N,{$from:A}=E;let L=null,O=null;if(A.parent.type.name==="image")L=A.before(A.depth),O=A.parent;else for(let ne=A.depth;ne>0;ne--){const we=A.node(ne),ge=A.before(ne);we.type.name==="paragraph"&&we.forEach((J,re)=>{if(J.type.name==="image"){const de=ge+re+1;(L===null||Math.abs(de-E.$from.pos)<Math.abs(L-E.$from.pos))&&(L=de,O=J)}})}if(L!==null&&O){try{t.editor.chain().focus().setNodeSelection(L).run()}catch{t.editor.chain().focus().setTextSelection(L).run()}c.value=L}else{t.editor.chain().focus().selectParentNode().run();const{state:ne}=t.editor;c.value=ne.selection.$from.pos}const F=O?O.attrs:t.editor.getAttributes("image");a.value=!0;let I="",R=!1;const G=t.editor.getAttributes("link");G&&G.href&&(I=G.href,R=G.target==="_blank");const Y=F.src||"",Z=Y?[Y]:[];i.value={src:Y,file:Z,alt:F.alt||"",title:F.title||"",width:F.width||"",height:F.height||"",link:I,openInNewTab:R}}else a.value=!1,i.value={src:"",file:[],alt:"",title:"",width:"",height:"",link:"",openInNewTab:!1};o.value=!1,n.value=!0},u=()=>{n.value=!1,o.value=!1,a.value=!1,s.value=[],c.value=null,i.value={src:"",file:[],alt:"",title:"",width:"",height:"",link:"",openInNewTab:!1}},g=async V=>{if(!V||V.length===0)return;const N=[];for(const E of V)if(E&&E.type&&E.type.startsWith("image/")&&!s.value.some(L=>L.file===E)){const L=new Promise((O,F)=>{const I=new FileReader;I.onload=R=>{s.value.push({file:E,preview:R.target.result,error:!1}),O()},I.onerror=F,I.readAsDataURL(E)});N.push(L)}await Promise.all(N)},b=V=>{s.value.splice(V,1),Array.isArray(i.value.file)&&i.value.file.splice(V,1)},C=()=>{const V=i.value.width!==null&&i.value.width!==void 0&&i.value.width!==""&&String(i.value.width).trim()!==""?String(i.value.width).trim():"",N=i.value.height!==null&&i.value.height!==void 0&&i.value.height!==""&&String(i.value.height).trim()!==""?String(i.value.height).trim():"",E={};return V&&N?(E.width=V,E.height=N,E.style=`width: ${V}px; height: ${N}px; object-fit: fill;`):V?(E.width=V,E.height=void 0):N?(E.height=N,E.width=void 0):(E.width=void 0,E.height=void 0),E},_=(V,N=null,E=50)=>{const A=()=>{const{view:F}=V;if(!F||!F.dom)return;F.dom.querySelectorAll("img.editor-image[width][height]").forEach(G=>{if(G instanceof HTMLImageElement){const Y=G.getAttribute("width"),Z=G.getAttribute("height");Y&&Z&&Y!=="auto"&&Z!=="auto"&&Y!==""&&Z!==""&&!isNaN(Number(Y))&&!isNaN(Number(Z))&&(G.style.cssText=`
35
+ width: ${Y}px !important;
36
+ height: ${Z}px !important;
37
37
  max-width: none !important;
38
38
  max-height: none !important;
39
39
  min-width: auto !important;
40
40
  min-height: auto !important;
41
41
  object-fit: fill !important;
42
- `.replace(/\s+/g," ").trim())}})},M=i.value.width,R=i.value.height;M&&R&&M!==""&&R!==""?[0,E,E*2,E*3,E*4].forEach(I=>{setTimeout($,I)}):($(),setTimeout($,E))},k=async()=>{let V=[],A=[];if(Array.isArray(i.value.file)?(V=i.value.file.filter(D=>D instanceof File),A=i.value.file.filter(D=>typeof D=="string"&&D.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()!==""&&(A=[i.value.file]),V.length===0&&A.length===0&&l.value&&l.value.file){const D=l.value.file;Array.isArray(D)?(V=D.filter(I=>I instanceof File),A=D.filter(I=>typeof I=="string"&&I.trim()!=="")):D instanceof FileList?V=Array.from(D):D instanceof File?V=[D]:typeof D=="string"&&D.trim()!==""&&(A=[D])}if(A.length>0&&!a.value){for(const D of A)s.value.some(I=>I.url===D)||s.value.push({url:D,preview:D,error:!1});if(V.length===0&&s.value.length>0){await S();return}}const E=V.length,$=E+A.length;if(!(a.value&&E<=1)){if(E>0){const D=V.filter(I=>!s.value.some(T=>T.file===I));D.length>0&&await g(D)}}if(!a.value){if($>1||d.value||s.value.length>1){if(s.value.length>0){await S();return}else if(E>0){if(await g(V),s.value.length>0){await S();return}}else if(A.length>0){await S();return}}else if(s.value.length>1){await S();return}}let M=i.value.src;if(f.value){let D=null;if(Array.isArray(i.value.file)||i.value.file instanceof FileList?D=i.value.file[0]:(i.value.file instanceof File||typeof i.value.file=="string")&&(D=i.value.file),D instanceof File)try{const I=new FileReader,T=await new Promise((U,H)=>{I.onload=W=>U(W.target.result),I.onerror=H,I.readAsDataURL(D)});M=T,a.value&&(i.value.src=T)}catch(I){console.error("Помилка при читанні файлу:",I),de.notify({type:"error",title:"Помилка",message:"Не вдалося прочитати файл"});return}else typeof D=="string"&&D.trim()!==""&&(M=D.trim(),a.value&&D.trim()!==i.value.src&&(i.value.src=D.trim(),M=D.trim()))}else if(Array.isArray(i.value.file)&&i.value.file.length===1){const D=i.value.file[0];typeof D=="string"&&D.trim()!==""&&(M=D.trim(),(!i.value.src||i.value.src!==D.trim())&&(i.value.src=D.trim()))}else typeof i.value.file=="string"&&i.value.file.trim()!==""&&(M=i.value.file.trim(),(!i.value.src||i.value.src!==i.value.file.trim())&&(i.value.src=i.value.file.trim()));const R=M||Array.isArray(i.value.file)&&i.value.file.length>0&&(i.value.file.some(D=>D instanceof File)||i.value.file.some(D=>typeof D=="string"&&D.trim()!==""))||i.value.file instanceof FileList&&i.value.file.length>0||typeof i.value.file=="string"&&i.value.file.trim()!=="";if(!M&&!R){de.notify({type:"warning",title:"Попередження",message:"Будь ласка, введіть URL зображення або виберіть файл"});return}if(!d.value&&!R&&await l.value.validate()){de.notify({type:"warning",title:"Попередження",message:"Будь ласка, заповніть всі обов'язкові поля"});return}if(t.editor&&M)if(a.value&&c.value!==null){const{state:D}=t.editor;try{t.editor.chain().focus().setNodeSelection(c.value).run()}catch{t.editor.chain().focus().setTextSelection(c.value).run()}const I=t.editor.getAttributes("link"),T=I&&I.href,U=C(),H={src:M,alt:i.value.alt||"",title:i.value.title||"",...U};if((!i.value.width||i.value.width==="")&&(H.width=void 0),(!i.value.height||i.value.height==="")&&(H.height=void 0),t.editor.chain().focus().updateAttributes("image",H).run(),setTimeout(()=>{const{view:W}=t.editor;if(!W||!W.dom)return;W.dom.querySelectorAll("img.editor-image").forEach(se=>{if(se instanceof HTMLImageElement){const Z=se.getAttribute("src")||se.src;(Z===M||Z.includes(M.split("/").pop()))&&(i.value.width&&i.value.height?(se.style.setProperty("width",`${i.value.width}px`,"important"),se.style.setProperty("height",`${i.value.height}px`,"important"),se.style.setProperty("object-fit","fill","important"),se.style.setProperty("max-width","none","important"),se.style.setProperty("max-height","none","important")):(se.style.removeProperty("width"),se.style.removeProperty("height"),se.style.removeProperty("object-fit"),se.style.removeProperty("max-width"),se.style.removeProperty("max-height")))}})},20),i.value.link&&i.value.link.trim()!==""){let W=i.value.link.trim();W.match(/^https?:\/\//i)||(W="https://"+W),T?t.editor.chain().focus().extendMarkRange("link").setLink({href:W,target:i.value.openInNewTab?"_blank":null}).run():t.editor.chain().focus().selectParentNode().setLink({href:W,target:i.value.openInNewTab?"_blank":null}).run()}else T&&t.editor.chain().focus().extendMarkRange("link").unsetLink().run()}else{const{state:D}=t.editor,{selection:I}=D,{$anchor:T}=I;let U=null;for(let W=T.depth;W>0;W--){const Q=T.node(W);if(Q&&Q.type.name==="paragraph"){U=Q;break}}if(U&&U.content.content.some(W=>W.type.name==="image")){const W=x(U,T.before(T.depth));if(W!==null){const Q=C(),ve=D.schema.nodes.image.create({src:M,alt:i.value.alt||"",title:i.value.title||"",...Q});if(i.value.link&&i.value.link.trim()!==""){let se=i.value.link.trim();se.match(/^https?:\/\//i)||(se="https://"+se);const Z=D.schema.marks.link.create({href:se,target:i.value.openInNewTab?"_blank":null}),te=ve.type.create(ve.attrs,ve.content,[Z]);t.editor.chain().focus().insertContentAt(W+1,te).run(),_(t.editor,M)}else t.editor.chain().focus().insertContentAt(W+1,ve).run(),_(t.editor,M)}else if(i.value.link&&i.value.link.trim()!==""){const Q=C();t.editor.chain().focus().setImage({src:M,alt:i.value.alt||"",title:i.value.title||"",...Q}).run(),setTimeout(()=>{let ve=i.value.link.trim();ve.match(/^https?:\/\//i)||(ve="https://"+ve),t.editor.chain().focus().selectParentNode().setLink({href:ve,target:i.value.openInNewTab?"_blank":null}).run(),_(t.editor,M,20)},10)}else{const Q=C();t.editor.chain().focus().setImage({src:M,alt:i.value.alt||"",title:i.value.title||"",...Q}).run(),_(t.editor,M)}}else if(i.value.link&&i.value.link.trim()!==""){const W=C();t.editor.chain().focus().setImage({src:M,alt:i.value.alt||"",title:i.value.title||"",...W}).run(),setTimeout(()=>{let Q=i.value.link.trim();Q.match(/^https?:\/\//i)||(Q="https://"+Q),t.editor.chain().focus().selectParentNode().setLink({href:Q,target:i.value.openInNewTab?"_blank":null}).run(),_(t.editor,M,20)},10)}else{const W=C();t.editor.chain().focus().setImage({src:M,alt:i.value.alt||"",title:i.value.title||"",...W}).run(),_(t.editor,M)}}u()},x=(V,A)=>{let E=null;return V.forEach(($,M)=>{$.type.name==="image"&&(E=A+M+1)}),E},S=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(E=>typeof E=="string"&&E.trim()!==""),A=i.value.file.filter(E=>E instanceof File);for(const E of V)s.value.some($=>$.url===E||$.preview===E)||s.value.push({url:E,preview:E,error:!1});A.length>0&&await g(A)}else d.value&&await g(i.value.file);if(s.value.length!==0)try{const V=[],A=C();for(const E of s.value){const $=E.url||E.preview||"";if(!$)continue;const M=t.editor.schema.nodes.image.create({src:$,alt:i.value.alt||"",title:i.value.title||"",...A});V.push(M)}V.length>0&&(t.editor.chain().focus().command(({tr:E,dispatch:$})=>{if($){const{selection:M}=E,{$anchor:R}=M;let D=M.$anchor.pos,I=null,T=null;for(let H=R.depth;H>0;H--){const W=R.node(H);if(W&&W.type.name==="paragraph"){I=W,T=R.start(H);break}}if(I){let H=null;I.forEach((W,Q)=>{W.type.name==="image"&&(H=T+Q+1)}),H!==null?D=H+1:D=T+I.content.size}let U=D;return V.forEach(H=>{E.insert(U,H),U+=H.nodeSize}),!0}return!1}).run(),i.value.width&&i.value.height&&setTimeout(()=>{const{view:E}=t.editor;E&&E.dom&&E.dom.querySelectorAll("img.editor-image").forEach(R=>{R instanceof HTMLImageElement&&Array.from(s.value).some(I=>{const T=I.url||I.preview||"",U=R.src||R.getAttribute("src")||"";return U===T||U.includes(T.split("/").pop())})&&(R.style.setProperty("width",`${i.value.width}px`,"important"),R.style.setProperty("height",`${i.value.height}px`,"important"),R.style.setProperty("object-fit","fill","important"),R.style.setProperty("max-width","none","important"),R.style.setProperty("max-height","none","important"))})},50)),u()}catch(V){console.error("Помилка при додаванні зображень:",V),de.notify({type:"error",title:"Помилка",message:"Не вдалося додати зображення"})}}},L=async()=>{await k()},N=()=>{u()};return e.watch(()=>i.value.file,async(V,A)=>{if(o.value=!1,!(a.value&&Array.isArray(V)&&V.length===1&&typeof V[0]=="string"&&!V.some($=>$ instanceof File)))if(Array.isArray(V)&&V.length>0){const E=V.filter(M=>M instanceof File),$=V.filter(M=>typeof M=="string"&&M.trim()!=="");if(E.length>0&&(a.value?a.value&&E.length===1&&$.length===0&&(s.value=[]):s.value=[],(!a.value||E.length>1||$.length>0)&&await g(E),a.value&&E.length===1&&$.length===0)){const M=new FileReader;M.onload=R=>{i.value.src=R.target.result},M.readAsDataURL(E[0])}if($.length>0)if(a.value)a.value&&$.length===1&&E.length===0&&(i.value.src=$[0]);else{E.length===0&&(s.value=[]);for(const M of $)s.value.some(R=>R.url===M||R.preview===M)||s.value.push({url:M,preview:M,error:!1})}}else V&&typeof V=="object"&&V instanceof FileList?(a.value||(s.value=[]),await g(Array.from(V))):V&&typeof V=="object"&&!Array.isArray(V)&&V instanceof File?(a.value||(s.value=[]),await g([V])):a.value||(s.value=[])},{immediate:!1}),e.watch(()=>i.value.src,()=>{o.value=!1}),(V,A)=>(e.openBlock(),e.createElementBlock("div",hh,[e.createElementVNode("button",{onClick:p,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",r.editor?.isActive("image")?"bg-gray-200 text-gray-900":""]),title:"Додати зображення"},[e.createVNode(e.unref(P.Image),{class:"h-4 w-4"}),A[4]||(A[4]=e.createElementVNode("span",{class:"sr-only"},"Додати зображення",-1))],2),e.createVNode(po,{modelValue:n.value,"onUpdate:modelValue":A[3]||(A[3]=E=>n.value=E),title:a.value?"Редагувати зображення":"Додати зображення"},{footer:e.withCtx(()=>[e.createElementVNode("div",Ch,[e.createElementVNode("button",{onClick:N,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:L,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(We,{modelValue:i.value,"onUpdate:modelValue":A[0]||(A[0]=E=>i.value=E),schema:w.value,form:l.value,"onUpdate:form":A[1]||(A[1]=E=>l.value=E)},null,8,["modelValue","schema","form"]),h.value&&!d.value?(e.openBlock(),e.createElementBlock("div",gh,[A[5]||(A[5]=e.createElementVNode("p",{class:"text-sm text-gray-600 mb-2"},"Попередній перегляд:",-1)),e.withDirectives(e.createElementVNode("img",{src:h.value,alt:i.value.alt||"Попередній перегляд зображення",title:i.value.title,class:"max-w-full h-auto max-h-32 rounded border",onError:A[2]||(A[2]=E=>o.value=!0)},null,40,yh),[[e.vShow,!o.value]]),o.value?(e.openBlock(),e.createElementBlock("p",bh," Не вдалося завантажити попередній перегляд зображення ")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),s.value.length>0?(e.openBlock(),e.createElementBlock("div",kh,[e.createElementVNode("p",xh,"Попередній перегляд ("+e.toDisplayString(s.value.length)+" зображень):",1),A[6]||(A[6]=e.createElementVNode("p",{class:"text-xs text-gray-500 mb-2"}," Зображення будуть розміщені в ряд, якщо вони помістяться по ширині ",-1)),e.createElementVNode("div",wh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(E,$)=>(e.openBlock(),e.createElementBlock("div",{key:$,class:"relative"},[e.withDirectives(e.createElementVNode("img",{src:E.preview,alt:`Попередній перегляд ${$+1}`,class:"max-w-[100px] max-h-[100px] rounded border object-contain",onError:M=>E.error=!0},null,40,_h),[[e.vShow,!E.error]]),e.createElementVNode("button",{onClick:M=>y($),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,vh)]))),128))])])):e.createCommentVNode("",!0)]),_:1},8,["modelValue","title"])]))}}),Bh={class:"flex items-center"},Vh=["disabled"],Sh=["disabled"],$h=me(Object.assign({inheritAttrs:!1},{__name:"vs-editor-history",props:{editor:Object},setup(r){const t=r,n=()=>{t.editor?.can().undo()&&t.editor.chain().focus().undo().run()},o=()=>{t.editor?.can().redo()&&t.editor.chain().focus().redo().run()};return(l,a)=>(e.openBlock(),e.createElementBlock("div",Bh,[e.createElementVNode("button",{onClick:n,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-l-full hover:text-gray-900 hover:bg-gray-100 border-r border-gray-200",[r.editor?.can().undo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!r.editor?.can().undo(),title:"Undo (Ctrl+Z)"},[e.createVNode(e.unref(P.Undo2),{class:"h-4 w-4"})],10,Vh),e.createElementVNode("button",{onClick:o,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-r-full hover:text-gray-900 hover:bg-gray-100",[r.editor?.can().redo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!r.editor?.can().redo(),title:"Redo (Ctrl+Y)"},[e.createVNode(e.unref(P.Redo2),{class:"h-4 w-4"})],10,Sh)]))}}),[["__scopeId","data-v-2cd0a908"]]),Nh={class:"relative"},Ah={class:"p-6"},Fh={class:"flex justify-between items-center mb-4"},Dh={bold:Hf,italic:Gf,color:Rm,background_color:Hm,highlight:qm,bullet_list:Lf,ordered_list:Rf,blockquote:Ff,codeblock:Pf,underline:Wf,strike:Yf,link:bm,table:vm,text_align:Bm,type_tag:$m,font_family:Zm,font_size:eh,superscript:rh,subscript:ah,heading:uh,clear_formatting:mh,image:Eh,history:$h,help:me(Object.assign({inheritAttrs:!1},{__name:"vs-editor-help",props:{editor:Object},setup(r){const t=e.ref(!1),n=e.ref(null),o=()=>{t.value=!t.value},l=()=>{t.value=!1};return(a,s)=>(e.openBlock(),e.createElementBlock("div",Nh,[e.createElementVNode("button",{ref_key:"helpButton",ref:n,onClick:o,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(P.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",Ah,[e.createElementVNode("div",Fh,[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(P.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(r){const t=r,n=()=>{t.editor&&t.editor.chain().focus().setHorizontalRule().run()};return(o,l)=>(e.openBlock(),e.createElementBlock("button",{title:"Horizontal Rule",onClick:n,class:"flex flex-col h-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex"},[e.createVNode(e.unref(P.Minus),{class:"h-4 w-4"})]))}},fullscreen:{__name:"vs-editor-fullscreen",props:{editor:Object},emits:["toggle-fullscreen"],setup(r,{emit:t}){const n=t,o=()=>{n("toggle-fullscreen")};return(l,a)=>(e.openBlock(),e.createElementBlock("button",{title:"Fullscreen",onClick:o,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(P.Maximize),{class:"h-4 w-4"})]))}},tab:Object.assign({inheritAttrs:!1},{__name:"vs-editor-tab",props:{editor:{type:Object,required:!0}},setup(r){const t=r,n=()=>{t.editor&&(t.editor.isActive("bulletList")||t.editor.isActive("orderedList"))&&t.editor.chain().focus().sinkListItem("listItem").run()};return(o,l)=>(e.openBlock(),e.createElementBlock("button",{title:"Tab (Increase List Indent)",onClick:n,class:"text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 focus:outline-none"},[e.createVNode(e.unref(P.ListIndentIncrease),{class:"h-4 w-4"})]))}})},ho={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"]},Mh={class:"flex align-middle gap-x-0.5 border-b flex-wrap border-b-gray-200 px-[10px] py-[6px] border-solid border-transparent"},Lh={class:"rich-text-scroll-wrapper"},Th={key:0,class:"richtext-loading text-sm text-gray-500"},Ih={key:1,class:"richtext-error text-sm text-red-600"},Rh={class:"html-source-editor"},Oh={class:"flex justify-end border-t border-[#e5e7eb] bg-[#f8fafc] px-4 min-h-[38px] items-start overflow-visible"},zh={class:"inline-flex items-stretch -mt-px"},Ph=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:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue"],["update:modelValue"]),setup(r){const t=r,n=e.useModel(r,"modelValue"),o=e.ref(null),{t:l}=hn(),a=e.computed(()=>t.format==="md"?"markdown":"html"),s=e.computed(()=>t.format==="md"?l("form.richtext.markdown"):l("form.richtext.html")),{editor:c,editorInstance:i,focusEditor:d,createEditor:f,destroyEditor:h,isLoading:w,loadError:p}=yf(t),{isHtmlMode:u,htmlContent:g,htmlTextarea:y,toggleHtmlMode:C}=bf(c,t.format,(N,V)=>{N==="update:modelValue"&&(n.value=V)},{toEditorContent:Zn,toSourceContent:Ef}),{isFullscreen:_,toggleFullscreen:k}=kf(),x=e.computed(()=>typeof t.toolbar=="string"?ho[t.toolbar]||ho.default:t.toolbar),S=e.computed(()=>x.value.map(N=>Dh[N]).filter(Boolean));e.watch(()=>t.modelValue,async N=>{if(c.value){const V=await Zn(N||"",t.format),A=c.value.getHTML();V!==A&&V!=="<p></p>"&&c.value.commands.setContent(V,!1)}},{immediate:!0});const L=N=>{if(!N||!N.view||!N.view.dom)return;N.view.dom.querySelectorAll("img.editor-image[width][height]").forEach(A=>{if(A instanceof HTMLImageElement){const E=A.getAttribute("width"),$=A.getAttribute("height");E&&$&&E!=="auto"&&$!=="auto"&&E!==""&&$!==""&&!isNaN(Number(E))&&!isNaN(Number($))&&(A.style.cssText=`
42
+ `.replace(/\s+/g," ").trim())}})},L=i.value.width,O=i.value.height;L&&O&&L!==""&&O!==""?[0,E,E*2,E*3,E*4].forEach(I=>{setTimeout(A,I)}):(A(),setTimeout(A,E))},k=async()=>{let V=[],N=[];if(Array.isArray(i.value.file)?(V=i.value.file.filter(F=>F instanceof File),N=i.value.file.filter(F=>typeof F=="string"&&F.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()!==""&&(N=[i.value.file]),V.length===0&&N.length===0&&l.value&&l.value.file){const F=l.value.file;Array.isArray(F)?(V=F.filter(I=>I instanceof File),N=F.filter(I=>typeof I=="string"&&I.trim()!=="")):F instanceof FileList?V=Array.from(F):F instanceof File?V=[F]:typeof F=="string"&&F.trim()!==""&&(N=[F])}if(N.length>0&&!a.value){for(const F of N)s.value.some(I=>I.url===F)||s.value.push({url:F,preview:F,error:!1});if(V.length===0&&s.value.length>0){await S();return}}const E=V.length,A=E+N.length;if(!(a.value&&E<=1)){if(E>0){const F=V.filter(I=>!s.value.some(R=>R.file===I));F.length>0&&await g(F)}}if(!a.value){if(A>1||d.value||s.value.length>1){if(s.value.length>0){await S();return}else if(E>0){if(await g(V),s.value.length>0){await S();return}}else if(N.length>0){await S();return}}else if(s.value.length>1){await S();return}}let L=i.value.src;if(f.value){let F=null;if(Array.isArray(i.value.file)||i.value.file instanceof FileList?F=i.value.file[0]:(i.value.file instanceof File||typeof i.value.file=="string")&&(F=i.value.file),F instanceof File)try{const I=new FileReader,R=await new Promise((G,Y)=>{I.onload=Z=>G(Z.target.result),I.onerror=Y,I.readAsDataURL(F)});L=R,a.value&&(i.value.src=R)}catch(I){console.error("Помилка при читанні файлу:",I),ue.notify({type:"error",title:"Помилка",message:"Не вдалося прочитати файл"});return}else typeof F=="string"&&F.trim()!==""&&(L=F.trim(),a.value&&F.trim()!==i.value.src&&(i.value.src=F.trim(),L=F.trim()))}else if(Array.isArray(i.value.file)&&i.value.file.length===1){const F=i.value.file[0];typeof F=="string"&&F.trim()!==""&&(L=F.trim(),(!i.value.src||i.value.src!==F.trim())&&(i.value.src=F.trim()))}else typeof i.value.file=="string"&&i.value.file.trim()!==""&&(L=i.value.file.trim(),(!i.value.src||i.value.src!==i.value.file.trim())&&(i.value.src=i.value.file.trim()));const O=L||Array.isArray(i.value.file)&&i.value.file.length>0&&(i.value.file.some(F=>F instanceof File)||i.value.file.some(F=>typeof F=="string"&&F.trim()!==""))||i.value.file instanceof FileList&&i.value.file.length>0||typeof i.value.file=="string"&&i.value.file.trim()!=="";if(!L&&!O){ue.notify({type:"warning",title:"Попередження",message:"Будь ласка, введіть URL зображення або виберіть файл"});return}if(!d.value&&!O&&await l.value.validate()){ue.notify({type:"warning",title:"Попередження",message:"Будь ласка, заповніть всі обов'язкові поля"});return}if(t.editor&&L)if(a.value&&c.value!==null){const{state:F}=t.editor;try{t.editor.chain().focus().setNodeSelection(c.value).run()}catch{t.editor.chain().focus().setTextSelection(c.value).run()}const I=t.editor.getAttributes("link"),R=I&&I.href,G=C(),Y={src:L,alt:i.value.alt||"",title:i.value.title||"",...G};if((!i.value.width||i.value.width==="")&&(Y.width=void 0),(!i.value.height||i.value.height==="")&&(Y.height=void 0),t.editor.chain().focus().updateAttributes("image",Y).run(),setTimeout(()=>{const{view:Z}=t.editor;if(!Z||!Z.dom)return;Z.dom.querySelectorAll("img.editor-image").forEach(ge=>{if(ge instanceof HTMLImageElement){const J=ge.getAttribute("src")||ge.src;(J===L||J.includes(L.split("/").pop()))&&(i.value.width&&i.value.height?(ge.style.setProperty("width",`${i.value.width}px`,"important"),ge.style.setProperty("height",`${i.value.height}px`,"important"),ge.style.setProperty("object-fit","fill","important"),ge.style.setProperty("max-width","none","important"),ge.style.setProperty("max-height","none","important")):(ge.style.removeProperty("width"),ge.style.removeProperty("height"),ge.style.removeProperty("object-fit"),ge.style.removeProperty("max-width"),ge.style.removeProperty("max-height")))}})},20),i.value.link&&i.value.link.trim()!==""){let Z=i.value.link.trim();Z.match(/^https?:\/\//i)||(Z="https://"+Z),R?t.editor.chain().focus().extendMarkRange("link").setLink({href:Z,target:i.value.openInNewTab?"_blank":null}).run():t.editor.chain().focus().selectParentNode().setLink({href:Z,target:i.value.openInNewTab?"_blank":null}).run()}else R&&t.editor.chain().focus().extendMarkRange("link").unsetLink().run()}else{const{state:F}=t.editor,{selection:I}=F,{$anchor:R}=I;let G=null;for(let Z=R.depth;Z>0;Z--){const ne=R.node(Z);if(ne&&ne.type.name==="paragraph"){G=ne;break}}if(G&&G.content.content.some(Z=>Z.type.name==="image")){const Z=w(G,R.before(R.depth));if(Z!==null){const ne=C(),we=F.schema.nodes.image.create({src:L,alt:i.value.alt||"",title:i.value.title||"",...ne});if(i.value.link&&i.value.link.trim()!==""){let ge=i.value.link.trim();ge.match(/^https?:\/\//i)||(ge="https://"+ge);const J=F.schema.marks.link.create({href:ge,target:i.value.openInNewTab?"_blank":null}),re=we.type.create(we.attrs,we.content,[J]);t.editor.chain().focus().insertContentAt(Z+1,re).run(),_(t.editor,L)}else t.editor.chain().focus().insertContentAt(Z+1,we).run(),_(t.editor,L)}else if(i.value.link&&i.value.link.trim()!==""){const ne=C();t.editor.chain().focus().setImage({src:L,alt:i.value.alt||"",title:i.value.title||"",...ne}).run(),setTimeout(()=>{let we=i.value.link.trim();we.match(/^https?:\/\//i)||(we="https://"+we),t.editor.chain().focus().selectParentNode().setLink({href:we,target:i.value.openInNewTab?"_blank":null}).run(),_(t.editor,L,20)},10)}else{const ne=C();t.editor.chain().focus().setImage({src:L,alt:i.value.alt||"",title:i.value.title||"",...ne}).run(),_(t.editor,L)}}else if(i.value.link&&i.value.link.trim()!==""){const Z=C();t.editor.chain().focus().setImage({src:L,alt:i.value.alt||"",title:i.value.title||"",...Z}).run(),setTimeout(()=>{let ne=i.value.link.trim();ne.match(/^https?:\/\//i)||(ne="https://"+ne),t.editor.chain().focus().selectParentNode().setLink({href:ne,target:i.value.openInNewTab?"_blank":null}).run(),_(t.editor,L,20)},10)}else{const Z=C();t.editor.chain().focus().setImage({src:L,alt:i.value.alt||"",title:i.value.title||"",...Z}).run(),_(t.editor,L)}}u()},w=(V,N)=>{let E=null;return V.forEach((A,L)=>{A.type.name==="image"&&(E=N+L+1)}),E},S=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(E=>typeof E=="string"&&E.trim()!==""),N=i.value.file.filter(E=>E instanceof File);for(const E of V)s.value.some(A=>A.url===E||A.preview===E)||s.value.push({url:E,preview:E,error:!1});N.length>0&&await g(N)}else d.value&&await g(i.value.file);if(s.value.length!==0)try{const V=[],N=C();for(const E of s.value){const A=E.url||E.preview||"";if(!A)continue;const L=t.editor.schema.nodes.image.create({src:A,alt:i.value.alt||"",title:i.value.title||"",...N});V.push(L)}V.length>0&&(t.editor.chain().focus().command(({tr:E,dispatch:A})=>{if(A){const{selection:L}=E,{$anchor:O}=L;let F=L.$anchor.pos,I=null,R=null;for(let Y=O.depth;Y>0;Y--){const Z=O.node(Y);if(Z&&Z.type.name==="paragraph"){I=Z,R=O.start(Y);break}}if(I){let Y=null;I.forEach((Z,ne)=>{Z.type.name==="image"&&(Y=R+ne+1)}),Y!==null?F=Y+1:F=R+I.content.size}let G=F;return V.forEach(Y=>{E.insert(G,Y),G+=Y.nodeSize}),!0}return!1}).run(),i.value.width&&i.value.height&&setTimeout(()=>{const{view:E}=t.editor;E&&E.dom&&E.dom.querySelectorAll("img.editor-image").forEach(O=>{O instanceof HTMLImageElement&&Array.from(s.value).some(I=>{const R=I.url||I.preview||"",G=O.src||O.getAttribute("src")||"";return G===R||G.includes(R.split("/").pop())})&&(O.style.setProperty("width",`${i.value.width}px`,"important"),O.style.setProperty("height",`${i.value.height}px`,"important"),O.style.setProperty("object-fit","fill","important"),O.style.setProperty("max-width","none","important"),O.style.setProperty("max-height","none","important"))})},50)),u()}catch(V){console.error("Помилка при додаванні зображень:",V),ue.notify({type:"error",title:"Помилка",message:"Не вдалося додати зображення"})}}},T=async()=>{await k()},D=()=>{u()};return e.watch(()=>i.value.file,async(V,N)=>{if(o.value=!1,!(a.value&&Array.isArray(V)&&V.length===1&&typeof V[0]=="string"&&!V.some(A=>A instanceof File)))if(Array.isArray(V)&&V.length>0){const E=V.filter(L=>L instanceof File),A=V.filter(L=>typeof L=="string"&&L.trim()!=="");if(E.length>0&&(a.value?a.value&&E.length===1&&A.length===0&&(s.value=[]):s.value=[],(!a.value||E.length>1||A.length>0)&&await g(E),a.value&&E.length===1&&A.length===0)){const L=new FileReader;L.onload=O=>{i.value.src=O.target.result},L.readAsDataURL(E[0])}if(A.length>0)if(a.value)a.value&&A.length===1&&E.length===0&&(i.value.src=A[0]);else{E.length===0&&(s.value=[]);for(const L of A)s.value.some(O=>O.url===L||O.preview===L)||s.value.push({url:L,preview:L,error:!1})}}else V&&typeof V=="object"&&V instanceof FileList?(a.value||(s.value=[]),await g(Array.from(V))):V&&typeof V=="object"&&!Array.isArray(V)&&V instanceof File?(a.value||(s.value=[]),await g([V])):a.value||(s.value=[])},{immediate:!1}),e.watch(()=>i.value.src,()=>{o.value=!1}),(V,N)=>(e.openBlock(),e.createElementBlock("div",Vh,[e.createElementVNode("button",{onClick:h,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",r.editor?.isActive("image")?"bg-gray-200 text-gray-900":""]),title:"Додати зображення"},[e.createVNode(e.unref(j.Image),{class:"h-4 w-4"}),N[4]||(N[4]=e.createElementVNode("span",{class:"sr-only"},"Додати зображення",-1))],2),e.createVNode(ho,{modelValue:n.value,"onUpdate:modelValue":N[3]||(N[3]=E=>n.value=E),title:a.value?"Редагувати зображення":"Додати зображення"},{footer:e.withCtx(()=>[e.createElementVNode("div",Th,[e.createElementVNode("button",{onClick:D,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:T,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(Je,{modelValue:i.value,"onUpdate:modelValue":N[0]||(N[0]=E=>i.value=E),schema:x.value,form:l.value,"onUpdate:form":N[1]||(N[1]=E=>l.value=E)},null,8,["modelValue","schema","form"]),m.value&&!d.value?(e.openBlock(),e.createElementBlock("div",Sh,[N[5]||(N[5]=e.createElementVNode("p",{class:"text-sm text-gray-600 mb-2"},"Попередній перегляд:",-1)),e.withDirectives(e.createElementVNode("img",{src:m.value,alt:i.value.alt||"Попередній перегляд зображення",title:i.value.title,class:"max-w-full h-auto max-h-32 rounded border",onError:N[2]||(N[2]=E=>o.value=!0)},null,40,$h),[[e.vShow,!o.value]]),o.value?(e.openBlock(),e.createElementBlock("p",Nh," Не вдалося завантажити попередній перегляд зображення ")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),s.value.length>0?(e.openBlock(),e.createElementBlock("div",Ah,[e.createElementVNode("p",Fh,"Попередній перегляд ("+e.toDisplayString(s.value.length)+" зображень):",1),N[6]||(N[6]=e.createElementVNode("p",{class:"text-xs text-gray-500 mb-2"}," Зображення будуть розміщені в ряд, якщо вони помістяться по ширині ",-1)),e.createElementVNode("div",Mh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(E,A)=>(e.openBlock(),e.createElementBlock("div",{key:A,class:"relative"},[e.withDirectives(e.createElementVNode("img",{src:E.preview,alt:`Попередній перегляд ${A+1}`,class:"max-w-[100px] max-h-[100px] rounded border object-contain",onError:L=>E.error=!0},null,40,Dh),[[e.vShow,!E.error]]),e.createElementVNode("button",{onClick:L=>b(A),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,Lh)]))),128))])])):e.createCommentVNode("",!0)]),_:1},8,["modelValue","title"])]))}}),Rh={class:"flex items-center"},Oh=["disabled"],zh=["disabled"],Ph=me(Object.assign({inheritAttrs:!1},{__name:"vs-editor-history",props:{editor:Object},setup(r){const t=r,n=()=>{t.editor?.can().undo()&&t.editor.chain().focus().undo().run()},o=()=>{t.editor?.can().redo()&&t.editor.chain().focus().redo().run()};return(l,a)=>(e.openBlock(),e.createElementBlock("div",Rh,[e.createElementVNode("button",{onClick:n,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-l-full hover:text-gray-900 hover:bg-gray-100 border-r border-gray-200",[r.editor?.can().undo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!r.editor?.can().undo(),title:"Undo (Ctrl+Z)"},[e.createVNode(e.unref(j.Undo2),{class:"h-4 w-4"})],10,Oh),e.createElementVNode("button",{onClick:o,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-r-full hover:text-gray-900 hover:bg-gray-100",[r.editor?.can().redo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!r.editor?.can().redo(),title:"Redo (Ctrl+Y)"},[e.createVNode(e.unref(j.Redo2),{class:"h-4 w-4"})],10,zh)]))}}),[["__scopeId","data-v-2cd0a908"]]),jh={class:"relative"},Uh={class:"p-6"},Hh={class:"flex justify-between items-center mb-4"},qh={bold:nm,italic:lm,color:Zm,background_color:nh,highlight:rh,bullet_list:Kf,ordered_list:Zf,blockquote:Hf,codeblock:Qf,underline:am,strike:sm,link:Nm,table:Lm,text_align:Rm,type_tag:Pm,font_family:ih,font_size:ph,superscript:hh,subscript:bh,heading:vh,clear_formatting:Bh,image:Ih,history:Ph,help:me(Object.assign({inheritAttrs:!1},{__name:"vs-editor-help",props:{editor:Object},setup(r){const t=e.ref(!1),n=e.ref(null),o=()=>{t.value=!t.value},l=()=>{t.value=!1};return(a,s)=>(e.openBlock(),e.createElementBlock("div",jh,[e.createElementVNode("button",{ref_key:"helpButton",ref:n,onClick:o,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",Uh,[e.createElementVNode("div",Hh,[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(r){const t=r,n=()=>{t.editor&&t.editor.chain().focus().setHorizontalRule().run()};return(o,l)=>(e.openBlock(),e.createElementBlock("button",{title:"Horizontal Rule",onClick:n,class:"flex flex-col h-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex"},[e.createVNode(e.unref(j.Minus),{class:"h-4 w-4"})]))}},fullscreen:{__name:"vs-editor-fullscreen",props:{editor:Object},emits:["toggle-fullscreen"],setup(r,{emit:t}){const n=t,o=()=>{n("toggle-fullscreen")};return(l,a)=>(e.openBlock(),e.createElementBlock("button",{title:"Fullscreen",onClick:o,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"})]))}},tab:Object.assign({inheritAttrs:!1},{__name:"vs-editor-tab",props:{editor:{type:Object,required:!0}},setup(r){const t=r,n=()=>{t.editor&&(t.editor.isActive("bulletList")||t.editor.isActive("orderedList"))&&t.editor.chain().focus().sinkListItem("listItem").run()};return(o,l)=>(e.openBlock(),e.createElementBlock("button",{title:"Tab (Increase List Indent)",onClick:n,class:"text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 focus:outline-none"},[e.createVNode(e.unref(j.ListIndentIncrease),{class:"h-4 w-4"})]))}})},bo={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"]},Gh={class:"flex align-middle gap-x-0.5 border-b flex-wrap border-b-gray-200 px-[10px] py-[6px] border-solid border-transparent"},Kh={class:"rich-text-scroll-wrapper"},Wh={key:0,class:"richtext-loading text-sm text-gray-500"},Yh={key:1,class:"richtext-error text-sm text-red-600"},Zh={class:"html-source-editor"},Xh={class:"flex justify-end border-t border-[#e5e7eb] bg-[#f8fafc] px-4 min-h-[38px] items-start overflow-visible"},Jh={class:"inline-flex items-stretch -mt-px"},Qh=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:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue"],["update:modelValue"]),setup(r){const t=r,n=e.useModel(r,"modelValue"),o=e.ref(null),{t:l}=hn(),a=e.computed(()=>t.format==="md"?"markdown":"html"),s=e.computed(()=>t.format==="md"?l("form.richtext.markdown"):l("form.richtext.html")),{editor:c,editorInstance:i,focusEditor:d,createEditor:f,destroyEditor:m,isLoading:x,loadError:h}=$f(t),{isHtmlMode:u,htmlContent:g,htmlTextarea:b,toggleHtmlMode:C}=Nf(c,t.format,(D,V)=>{D==="update:modelValue"&&(n.value=V)},{toEditorContent:Xn,toSourceContent:If}),{isFullscreen:_,toggleFullscreen:k}=Af(),w=e.computed(()=>typeof t.toolbar=="string"?bo[t.toolbar]||bo.default:t.toolbar),S=e.computed(()=>w.value.map(D=>qh[D]).filter(Boolean));e.watch(()=>t.modelValue,async D=>{if(c.value){const V=await Xn(D||"",t.format),N=c.value.getHTML();V!==N&&V!=="<p></p>"&&c.value.commands.setContent(V,!1)}},{immediate:!0});const T=D=>{if(!D||!D.view||!D.view.dom)return;D.view.dom.querySelectorAll("img.editor-image[width][height]").forEach(N=>{if(N instanceof HTMLImageElement){const E=N.getAttribute("width"),A=N.getAttribute("height");E&&A&&E!=="auto"&&A!=="auto"&&E!==""&&A!==""&&!isNaN(Number(E))&&!isNaN(Number(A))&&(N.style.cssText=`
43
43
  width: ${E}px !important;
44
- height: ${$}px !important;
44
+ height: ${A}px !important;
45
45
  max-width: none !important;
46
46
  max-height: none !important;
47
47
  min-width: auto !important;
48
48
  min-height: auto !important;
49
49
  object-fit: fill !important;
50
- `.replace(/\s+/g," ").trim())}})};return e.watch(c,N=>{N&&(e.nextTick(()=>{L(c.value)}),c.value.on("update",async V=>{const A=V.editor.getHTML(),E=await Bf(A,t.format);E!==t.modelValue&&A!=="<p></p>"&&(n.value=E),setTimeout(()=>{L(V.editor)},10)}))}),e.onMounted(async()=>{const N=await Zn(t.modelValue||"",t.format);await f(o.value,N),e.nextTick(()=>{c.value&&setTimeout(()=>{L(c.value)},100)})}),e.onBeforeUnmount(()=>{h()}),(N,V)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["bg-white rounded-md w-full",{"fixed left-0 right-0 top-0 bottom-0 z-[100000]":e.unref(_)}])},[e.createElementVNode("div",Mh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(S.value,A=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:A},[e.unref(c)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(A),{key:0,editor:e.unref(i),onToggleFullscreen:e.unref(k)},null,40,["editor","onToggleFullscreen"])):e.createCommentVNode("",!0)],64))),128))]),e.createElementVNode("div",{onClick:V[1]||(V[1]=(...A)=>e.unref(d)&&e.unref(d)(...A)),class:"relative w-full px-4 py-2 bg-white rounded-b-lg editor-content",style:e.normalizeStyle({height:e.unref(_)?"calc(95vh - 44px)":r.height})},[e.withDirectives(e.createElementVNode("div",Lh,[e.createElementVNode("div",{ref_key:"editorElement",ref:o,class:"relative w-full"},null,512),e.unref(w)?(e.openBlock(),e.createElementBlock("div",Th,"Loading editor...")):e.createCommentVNode("",!0),e.unref(p)?(e.openBlock(),e.createElementBlock("div",Ih,e.toDisplayString(e.unref(p)),1)):e.createCommentVNode("",!0)],512),[[e.vShow,!e.unref(u)]]),e.withDirectives(e.createElementVNode("div",Rh,[e.createVNode(Fn,{ref_key:"htmlTextarea",ref:y,modelValue:e.unref(g),"onUpdate:modelValue":V[0]||(V[0]=A=>e.isRef(g)?g.value=A:null),height:"100%",syntax:a.value,theme:"vs-light"},null,8,["modelValue","syntax"])],512),[[e.vShow,e.unref(u)]])],4),e.createElementVNode("div",Oh,[e.createElementVNode("div",zh,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["min-w-[96px] h-[30px] px-[14px] border border-[#cfd6e0] bg-[#f3f5f8] text-[8px] font-bold uppercase tracking-[0.06em] leading-none cursor-pointer transition-colors duration-200 border-b-[1px] border-b-[#cfd6e0] rounded-none rounded-bl-[8px] hover:bg-[#eef1f5] hover:text-[#667284]",e.unref(u)?"text-[#8f99aa]":"!bg-white text-[#49556a] border-[#cfd6e0] border-t-transparent relative z-[1]"]),onClick:V[2]||(V[2]=A=>e.unref(C)(!1))},e.toDisplayString(e.unref(l)("form.richtext.editor")),3),e.createElementVNode("button",{type:"button",class:e.normalizeClass(["min-w-[96px] h-[30px] px-[14px] border border-[#cfd6e0] border-l-0 bg-[#f3f5f8] text-[8px] font-bold uppercase tracking-[0.06em] leading-none cursor-pointer transition-colors duration-200 border-b-[1px] border-b-[#cfd6e0] rounded-none rounded-br-[8px] hover:bg-[#eef1f5] hover:text-[#667284]",e.unref(u)?"!bg-white text-[#49556a] border-[#cfd6e0] border-t-transparent relative z-[1]":"text-[#8f99aa]"]),onClick:V[3]||(V[3]=A=>e.unref(C)(!0))},e.toDisplayString(s.value),3)])])],2))}})},Symbol.toStringTag,{value:"Module"}));pe.ModalEdit=Ar,pe.VForm=We,pe.VsInputAddress=Er,pe.VsInputArray=Cr,pe.VsInputArraySelect=en,pe.VsInputCheckbox=rr,pe.VsInputCodegen=kr,pe.VsInputColor=_r,pe.VsInputContainer=cr,pe.VsInputDate=Qp,pe.VsInputEmail=En,pe.VsInputFile=ar,pe.VsInputFileList=sr,pe.VsInputKeyValue=xr,pe.VsInputMask=Cn,pe.VsInputMonaco=Fn,pe.VsInputNumber=nr,pe.VsInputRadio=Vn,pe.VsInputRange=vr,pe.VsInputRichtext=ur,pe.VsInputSelect=An,pe.VsInputSlug=br,pe.VsInputStatic=vn,pe.VsInputSwitcher=_n,pe.VsInputTag=yr,pe.VsInputTel=Bn,pe.VsInputText=Vt,pe.VsInputTextArray=wr,pe.VsInputTextarea=dr,pe.default=We,pe.inputs=Vr,pe.richtextLocaleEn=Pr,pe.richtextLocaleUk=jr,pe.richtextMessages=On,pe.vsInputDatatable=pr,pe.vsInputMap=gr,Object.defineProperties(pe,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
50
+ `.replace(/\s+/g," ").trim())}})};return e.watch(c,D=>{D&&(e.nextTick(()=>{T(c.value)}),c.value.on("update",async V=>{const N=V.editor.getHTML(),E=await Rf(N,t.format);E!==t.modelValue&&N!=="<p></p>"&&(n.value=E),setTimeout(()=>{T(V.editor)},10)}))}),e.onMounted(async()=>{const D=await Xn(t.modelValue||"",t.format);await f(o.value,D),e.nextTick(()=>{c.value&&setTimeout(()=>{T(c.value)},100)})}),e.onBeforeUnmount(()=>{m()}),(D,V)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["bg-white rounded-md w-full",{"fixed left-0 right-0 top-0 bottom-0 z-[100000]":e.unref(_)}])},[e.createElementVNode("div",Gh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(S.value,N=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:N},[e.unref(c)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(N),{key:0,editor:e.unref(i),onToggleFullscreen:e.unref(k)},null,40,["editor","onToggleFullscreen"])):e.createCommentVNode("",!0)],64))),128))]),e.createElementVNode("div",{onClick:V[1]||(V[1]=(...N)=>e.unref(d)&&e.unref(d)(...N)),class:"relative w-full px-4 py-2 bg-white rounded-b-lg editor-content",style:e.normalizeStyle({height:e.unref(_)?"calc(95vh - 44px)":r.height})},[e.withDirectives(e.createElementVNode("div",Kh,[e.createElementVNode("div",{ref_key:"editorElement",ref:o,class:"relative w-full"},null,512),e.unref(x)?(e.openBlock(),e.createElementBlock("div",Wh,"Loading editor...")):e.createCommentVNode("",!0),e.unref(h)?(e.openBlock(),e.createElementBlock("div",Yh,e.toDisplayString(e.unref(h)),1)):e.createCommentVNode("",!0)],512),[[e.vShow,!e.unref(u)]]),e.withDirectives(e.createElementVNode("div",Zh,[e.createVNode(Mn,{ref_key:"htmlTextarea",ref:b,modelValue:e.unref(g),"onUpdate:modelValue":V[0]||(V[0]=N=>e.isRef(g)?g.value=N:null),height:"100%",syntax:a.value,theme:"vs-light"},null,8,["modelValue","syntax"])],512),[[e.vShow,e.unref(u)]])],4),e.createElementVNode("div",Xh,[e.createElementVNode("div",Jh,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["min-w-[96px] h-[30px] px-[14px] border border-[#cfd6e0] bg-[#f3f5f8] text-[8px] font-bold uppercase tracking-[0.06em] leading-none cursor-pointer transition-colors duration-200 border-b-[1px] border-b-[#cfd6e0] rounded-none rounded-bl-[8px] hover:bg-[#eef1f5] hover:text-[#667284]",e.unref(u)?"text-[#8f99aa]":"!bg-white text-[#49556a] border-[#cfd6e0] border-t-transparent relative z-[1]"]),onClick:V[2]||(V[2]=N=>e.unref(C)(!1))},e.toDisplayString(e.unref(l)("form.richtext.editor")),3),e.createElementVNode("button",{type:"button",class:e.normalizeClass(["min-w-[96px] h-[30px] px-[14px] border border-[#cfd6e0] border-l-0 bg-[#f3f5f8] text-[8px] font-bold uppercase tracking-[0.06em] leading-none cursor-pointer transition-colors duration-200 border-b-[1px] border-b-[#cfd6e0] rounded-none rounded-br-[8px] hover:bg-[#eef1f5] hover:text-[#667284]",e.unref(u)?"!bg-white text-[#49556a] border-[#cfd6e0] border-t-transparent relative z-[1]":"text-[#8f99aa]"]),onClick:V[3]||(V[3]=N=>e.unref(C)(!0))},e.toDisplayString(s.value),3)])])],2))}})},Symbol.toStringTag,{value:"Module"}));pe.ModalEdit=Dr,pe.VForm=Je,pe.VsInputAddress=Sr,pe.VsInputArray=Vr,pe.VsInputArraySelect=en,pe.VsInputCheckbox=ar,pe.VsInputCodegen=_r,pe.VsInputColor=Er,pe.VsInputContainer=pr,pe.VsInputDate=pf,pe.VsInputEmail=Bn,pe.VsInputFile=cr,pe.VsInputFileList=dr,pe.VsInputKeyValue=vr,pe.VsInputMask=En,pe.VsInputMonaco=Mn,pe.VsInputNumber=lr,pe.VsInputRadio=Sn,pe.VsInputRange=Br,pe.VsInputRichtext=mr,pe.VsInputSelect=Fn,pe.VsInputSlug=wr,pe.VsInputStatic=Cn,pe.VsInputSwitcher=vn,pe.VsInputTag=xr,pe.VsInputTel=Vn,pe.VsInputText=Bt,pe.VsInputTextArray=Cr,pe.VsInputTextarea=fr,pe.default=Je,pe.inputs=Nr,pe.richtextLocaleEn=Hr,pe.richtextLocaleUk=qr,pe.richtextMessages=zn,pe.vsInputDatatable=hr,pe.vsInputMap=kr,Object.defineProperties(pe,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));