@opengis/form 0.0.160 → 0.0.162
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.
- package/README.md +61 -61
- package/dist/api/suggest/suggestions_list.json +7 -7
- package/dist/index-CYEeoLxG.js +11460 -0
- package/dist/index.css +1 -1
- package/dist/index.js +1 -1
- package/dist/index.umd.cjs +23 -23
- package/dist/src/components/inputs/base/vs-input-mask.vue.d.ts.map +1 -1
- package/dist/src/components/inputs/base/vs-input-tel.vue.d.ts +5 -1
- package/dist/src/components/inputs/base/vs-input-tel.vue.d.ts.map +1 -1
- package/dist/src/components/inputs/date/datepicker/Datepicker.vue.d.ts.map +1 -1
- package/dist/src/components/inputs/index.d.ts +7 -0
- package/dist/src/components/inputs/index.d.ts.map +1 -1
- package/dist/src/components/inputs/table/vs-input-datatable.vue.d.ts.map +1 -1
- package/dist/src/composables/useInputOptions.d.ts +2 -2
- package/dist/src/composables/useInputOptions.d.ts.map +1 -1
- package/dist/src/utils/convertForm.d.ts.map +1 -1
- package/dist/src/utils/formRules.d.ts.map +1 -1
- package/dist/src/utils/telMask.d.ts +7 -0
- package/dist/src/utils/telMask.d.ts.map +1 -0
- package/dist/{vs-richtext-FSIc1VHd.js → vs-richtext-UDoUXGHe.js} +8 -8
- package/locales/en.json +34 -34
- package/locales/uk.json +34 -34
- package/package.json +79 -79
- package/dist/index-CjzpyLch.js +0 -11340
package/dist/index.umd.cjs
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
(function(be,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):(be=typeof globalThis<"u"?globalThis:be||self,e(be.FormBuilder={},be.Vue,be.OpenGISCore,be.lucide))})(this,(function(be,e,he,z){"use strict";const Eo=e.defineComponent({__name:"vs-info-tooltip",props:{text:{}},setup(o){const t=o,n=e.ref(!1),r=e.ref({top:"0px",left:"0px"});function l(s){if(!t.text)return;const c=s.currentTarget.getBoundingClientRect();r.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(z.Info),{class:"h-4 w-4 text-gray-400 cursor-help"})])],32),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[n.value&&o.text?(e.openBlock(),e.createElementBlock("div",{key:0,style:e.normalizeStyle(r.value),class:"fixed z-[9999] max-w-xs p-2 bg-gray-900 text-white text-xs rounded-lg shadow-lg pointer-events-none"},e.toDisplayString(o.text),5)):e.createCommentVNode("",!0)]))],64))}}),Zr={class:"w-full relative"},Jr={key:0,class:"text-[14px] font-medium text-gray-900 mb-2 flex items-center gap-1"},Qr={class:"opacity-100"},el={key:0,class:"text-red-500 text-[14px]"},tl={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},nl=e.defineComponent({__name:"vs-layout-default",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(o){const t=o,n=e.computed(()=>typeof t.item?.label=="string"&&t.item.label?t.item.label:t.item?.ua||t.label||t.ua),r=e.computed(()=>!!n.value),l=e.computed(()=>!!t.item?.rules?.includes("required")),a=e.computed(()=>t.item?.info||"");return(s,c)=>(e.openBlock(),e.createElementBlock("div",Zr,[r.value?(e.openBlock(),e.createElementBlock("div",Jr,[e.createElementVNode("span",Qr,e.toDisplayString(n.value),1),l.value?(e.openBlock(),e.createElementBlock("span",el,"*")):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createBlock(Eo,{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":o.item.disabled}})),o.error?(e.openBlock(),e.createElementBlock("span",tl,e.toDisplayString(o.error),1)):e.createCommentVNode("",!0)]))}}),ol={class:"w-full relative flex flex-row items-center gap-2"},rl={key:0,class:"text-red-500 text-[14px]"},ll={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},al=e.defineComponent({__name:"vs-layout-horizontal",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{default:()=>({container:12,label:3})}},setup(o){const t=o,n=e.computed(()=>t.item?.label||t.label||t.ua),r=e.computed(()=>t.item?.info||""),l=e.computed(()=>t.columns??{container:12,label:3}),a=e.computed(()=>{const{container:d,label:u}=l.value;return!d||d<=0?0:Math.min(Math.max(u??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:u}=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 f=Math.max(d-Math.max(u??0,0),0)/d;if(!f)return{};const h=`${f*100}%`;return{flexBasis:h,maxWidth:h}});return(d,u)=>(e.openBlock(),e.createElementBlock("div",ol,[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),o.item?.rules?.includes("required")&&n.value?(e.openBlock(),e.createElementBlock("span",rl,"*")):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createBlock(Eo,{key:1,text:r.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),o.error?(e.openBlock(),e.createElementBlock("span",ll,e.toDisplayString(o.error),1)):e.createCommentVNode("",!0)]))}}),sl={class:"w-full relative"},il={key:0,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},cl=e.defineComponent({__name:"vs-layout-inline",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",sl,[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(t.$attrs))),o.error?(e.openBlock(),e.createElementBlock("span",il,e.toDisplayString(o.error),1)):e.createCommentVNode("",!0)]))}}),dl={class:"flex-1 min-w-0"},ul={key:0,class:"text-sm font-medium text-slate-700 dark:text-slate-200 flex items-center gap-1"},pl={class:"truncate"},fl={key:0,class:"text-red-500 text-[14px]"},ml=["innerHTML"],hl={key:0,class:"mt-1 text-xs text-red-500"},gl={default:nl,horizontal:al,inline:cl,settings:e.defineComponent({__name:"vs-layout-settings",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(o){const t=o,n=e.ref("uk");e.computed(()=>(t.item??{})?.[n.value]??t.ua??t.label??"");const r=e.computed(()=>t.item?.description??""),l=e.computed(()=>Array.isArray(t.item?.rules)&&t.item.rules.includes("required")),a=e.computed(()=>(typeof t.error=="string"?t.error:"")??""),s=()=>{const 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":o.item?.disabled}])},[e.createElementVNode("div",{class:e.normalizeClass(["gap-2 md:flex-row md:items-center md:justify-between",[["switcher","native-select"].includes(o.item.type)?"flex flex-col":""]])},[e.createElementVNode("div",dl,[o.ua||o.label?(e.openBlock(),e.createElementBlock("p",ul,[e.createElementVNode("span",pl,e.toDisplayString(o.item[n.value]||o.ua||o.label),1),l.value?(e.openBlock(),e.createElementBlock("span",fl,"*")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createElementBlock("p",{key:1,class:"text-xs text-slate-500 dark:text-slate-400",innerHTML:r.value},null,8,ml)):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:e.normalizeClass(["w-full",["select","native-select"].includes(o.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",hl,e.toDisplayString(a.value),1)):e.createCommentVNode("",!0)],2))}})};function ze(o){return{inputClass:e.computed(()=>{const n=`disabled:opacity-50 disabled:cursor-not-allowed outline-none focus:ring-2 focus:ring-ring focus:ring-${o?.primaryColor||"blue"}-500 border border-solid border-stone-200 rounded-md text-sm text-stone-800 placeholder:text-stone-400 `;return o?.size==="sm"?`${n}h-[32px]`:`${n}h-[38px]`})}}const yl=["placeholder","disabled"],bl=e.defineComponent({__name:"vs-input-password",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=ze(t.style),r=e.useModel(o,"modelValue"),l=e.computed(()=>!!t.disabled),a=e.computed(()=>t.placeholder??"");return(s,c)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"password","onUpdate:modelValue":c[0]||(c[0]=i=>r.value=i),placeholder:a.value,disabled:l.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n),{"!border-red-600":o.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,yl)),[[e.vModelText,r.value]])}}),kl=["placeholder","disabled","maxlength","minlength"],Ot=e.defineComponent({__name:"vs-input-text",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=ze(t.style),r=e.useModel(o,"modelValue"),l=e.computed(()=>!!t.disabled),a=e.computed(()=>t.placeholder??""),s=e.computed(()=>t.maxlength??void 0),c=e.computed(()=>t.minlength??void 0);function i(){typeof r.value=="string"&&(r.value=r.value.trim())}return(d,u)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"text","onUpdate:modelValue":u[0]||(u[0]=f=>r.value=f),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",[o.customClass,e.unref(n),{"!border-red-600":o.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,kl)),[[e.vModelText,r.value]])}}),xl=["step","placeholder","disabled","min","max"],_o=e.defineComponent({__name:"vs-input-number",props:e.mergeModels({style:{type:Object,default:()=>({})},placeholder:{type:String,default:""},disabled:{type:Boolean,default:!1},min:{type:Number,default:void 0},max:{type:Number,default:void 0},step:{type:[Number,String],default:void 0}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=ze(t.style),r=e.useAttrs(),l=e.useModel(o,"modelValue"),a=e.computed(()=>!!t.disabled),s=u=>{if(u==null||u==="")return;const f=typeof u=="string"?u.trim().replace(",","."):u,h=Number(f);return Number.isFinite(h)?h:void 0},c=e.computed(()=>s(t.min??r.min)),i=e.computed(()=>s(t.max??r.max)),d=e.computed(()=>{if(t.step!==void 0&&t.step!==null&&t.step!=="")return t.step;const u=r.step;return typeof u=="number"||typeof u=="string"?u:"any"});return(u,f)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"number",step:d.value,"onUpdate:modelValue":f[0]||(f[0]=h=>l.value=h),placeholder:o.placeholder,disabled:a.value,class:e.normalizeClass(["py-1.5 px-3 block w-full bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"},min:c.value,max:i.value},null,10,xl)),[[e.vModelText,l.value]])}}),un=o=>!!String(o??"").trim(),Bt=o=>o?.color?String(o.color):"",qt=o=>{const t=o?.icon;if(typeof t=="string")return t;const n=o?.imgUrl;return typeof n=="string"?n:""},Kt=o=>{const t=o?.icon;return t&&typeof t!="string"?t:null},wl={class:"flex items-center gap-[4px]"},Cl=["value","id","disabled"],vl=["for"],El=["innerHTML"],_l={key:1,class:"text-[14px] text-gray-700 flex items-center gap-2 dark:text-neutral-400"},Bl=["src"],Vl=e.defineComponent({__name:"vs-checkbox-default",props:{value:{default:""},label:{default:""},html:{default:""},disabled:{type:Boolean,default:!1},id:{},modelValue:{default:""},info:{},error:{},option:{default:null}},emits:["update:modelValue"],setup(o,{emit:t}){const n=t,r=o,l=e.computed({get:()=>r.modelValue,set:x=>n("update:modelValue",x)}),a=e.computed(()=>!!r.disabled),s=e.computed(()=>qt(r.option)),c=e.computed(()=>Kt(r.option)),i=e.computed(()=>Bt(r.option)),d=e.computed(()=>!!(i.value&&!s.value&&!c.value)),u=e.computed(()=>!!(s.value&&i.value)),f=e.computed(()=>i.value?{color:i.value}:void 0),h=e.computed(()=>{if(!(!s.value||!i.value))return{backgroundColor:i.value,WebkitMaskImage:`url(${s.value})`,maskImage:`url(${s.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(x,m)=>(e.openBlock(),e.createElementBlock("div",wl,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",value:o.value,"onUpdate:modelValue":m[0]||(m[0]=k=>l.value=k),class:e.normalizeClass(["shrink-0 border border-solid hidden border-gray-700 w-3.5 h-3.5 rounded text-blue-600 focus:ring-offset-0 dark:bg-neutral-800 dark:border-neutral-700 cursor-pointer",{"!cursor-not-allowed":a.value}]),id:o.id,disabled:a.value},null,10,Cl),[[e.vModelCheckbox,l.value]]),e.createElementVNode("label",{for:o.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",o.error?"border-red-600":""]])},[e.createVNode(e.unref(z.Check),{class:"h-4 w-4"})],2),o.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:o.html},null,8,El)):(e.openBlock(),e.createElementBlock("span",_l,[d.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:i.value})},null,4)):e.createCommentVNode("",!0),u.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(h.value)},null,4)):s.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:s.value,alt:"icon"},null,8,Bl)):c.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(c.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(f.value)},null,8,["style"])):e.createCommentVNode("",!0),e.renderSlot(x.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(o.label),1)])]))],10,vl)]))}}),Sl=["name","value","disabled"],$l=["innerHTML"],Nl={key:1,class:"flex items-center gap-[6px] text-[14px]"},Al={key:2,class:"text-[16px] inline-flex items-center justify-center"},Fl=["src"],Ml=e.defineComponent({__name:"vs-checkbox-buttons",props:{value:{type:[String,Number,Boolean],default:""},label:{default:""},html:{default:""},modelValue:{default:""},disabled:{type:Boolean},id:{},icon:{},imgUrl:{},style:{},option:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,l=e.computed({get:()=>n.modelValue,set:k=>{r("update:modelValue",k)}}),a=e.computed(()=>Array.isArray(l.value)?l.value.includes(n.value):l.value===!0||l.value===n.value),s=e.computed(()=>n.style?.size==="xs"?"p-1.5 text-xs":n.style?.size==="lg"?"p-3.5 text-[20px]":"p-2.5 text-xs"),c=e.computed(()=>({...n.option??{},icon:n.option?.icon??n.icon,imgUrl:n.option?.imgUrl??n.imgUrl,color:n.option?.color})),i=e.computed(()=>qt(c.value)),d=e.computed(()=>Kt(c.value)),u=e.computed(()=>Bt(c.value)),f=e.computed(()=>!!(u.value&&!i.value&&!d.value)),h=e.computed(()=>!!(i.value&&u.value)),x=e.computed(()=>u.value?{color:u.value}:void 0),m=e.computed(()=>{if(!(!i.value||!u.value))return{backgroundColor:u.value,WebkitMaskImage:`url(${i.value})`,maskImage:`url(${i.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(k,y)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["group relative flex justify-center items-center gap-x-3 text-center bg-white text-gray-800 ring-ring ring-2 cursor-pointer rounded-lg",[s.value,a.value?"ring-blue-500":"border border-gray-200 ring-transparent"]])},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",class:"hidden",name:o.id,value:o.value,"onUpdate:modelValue":y[0]||(y[0]=v=>l.value=v),disabled:o.disabled},null,8,Sl),[[e.vModelCheckbox,l.value]]),o.html?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-full",innerHTML:o.html},null,8,$l)):(e.openBlock(),e.createElementBlock("span",Nl,[f.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:u.value})},null,4)):e.createCommentVNode("",!0),h.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(m.value)},null,4)):i.value||d.value?(e.openBlock(),e.createElementBlock("span",Al,[i.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:i.value,width:"16",height:"16",alt:"icon"},null,8,Fl)):d.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),{key:1,class:"h-4 w-4",style:e.normalizeStyle(x.value)},null,8,["style"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(k.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(o.label),1)])]))],2))}}),Dl={class:"flex items-center"},jn=e.defineComponent({__name:"vs-input-checkbox-item",props:{value:{default:""},label:{default:""},labelHtml:{default:""},disabled:{type:Boolean,default:!1},view:{default:"default"},modelValue:{type:[Boolean,Array],default:!1},icon:{},imgUrl:{},slots:{},option:{},style:{},error:{default:""}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,l=`radio-${Math.floor(Math.random()*1e4)}`,a=e.computed({get:()=>Array.isArray(n.modelValue)?Array.isArray(n.modelValue)&&n.modelValue.includes(n.value):n.modelValue,set:c=>{if(Array.isArray(n.modelValue)){let i=[...n.modelValue];c?i.includes(n.value)||i.push(n.value):i=i.filter(d=>d!==n.value),r("update:modelValue",i)}else r("update:modelValue",c)}}),s=e.ref(`vs-checkbox-${n.view||"default"}`);return(c,i)=>(e.openBlock(),e.createElementBlock("div",Dl,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value==="vs-checkbox-buttons"?e.unref(Ml):e.unref(Vl)),{value:o.value,label:o.label,html:o.labelHtml,info:o.option?.info,disabled:o.disabled,modelValue:a.value,"onUpdate:modelValue":i[0]||(i[0]=d=>a.value=d),id:l,icon:o.icon,imgUrl:o.imgUrl,option:o.option,style:e.normalizeStyle(o.style),error:o.error},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.label),1)]),_:1},8,["value","label","html","info","disabled","modelValue","icon","imgUrl","option","style","error"]))]))}}),Tl={key:0,class:"flex items-start gap-x-1"},Ll={key:0,class:"text-red-500 text-[14px]"},Il=["title"],Rl=["disabled"],Un=e.defineComponent({__name:"vs-input-switcher",props:e.mergeModels({rules:{default:()=>[]},view:{default:"checkbox"},label:{default:""},i:{default:""},text:{default:""},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue");return(r,l)=>t.view==="checkbox"?(e.openBlock(),e.createElementBlock("div",Tl,[e.createVNode(jn,{modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=a=>n.value=a),error:o.error||""},null,8,["modelValue","error"]),o.rules?.includes("required")?(e.openBlock(),e.createElementBlock("span",Ll,"*")):e.createCommentVNode("",!0),o.i?(e.openBlock(),e.createElementBlock("button",{key:1,class:"cursor-pointer",title:o.i,onClick:l[1]||(l[1]=e.withModifiers(()=>{},["prevent"]))},[e.createVNode(e.unref(z.Info),{class:"h-4 w-4 text-gray-500"})],8,Il)):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-${o.style?.primaryColor||"blue"}-500`:"bg-stone-200",o.customClass]]),disabled:o.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,Rl))}}),Ol=["id","innerHTML"],Hn=e.defineComponent({__name:"vs-input-static",props:{text:{default:""},html:{default:""},style:{},customClass:{default:""},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",{id:o.name,class:e.normalizeClass(["text-gray-900",o.customClass]),innerHTML:o.html?o.html:o.text},null,10,Ol))}}),zl=["placeholder","disabled","name"],pn=e.defineComponent({__name:"vs-input-mask",props:e.mergeModels({name:{},mask:{default:""},unmask:{type:Boolean,default:!1},placeholder:{default:"_"},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=ze(t.style),r=e.useModel(o,"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 u=!1;for(let h=0;h<c.length;h+=1){const x=c[h];x==="{"?u=!0:x==="}"?u=!1:u&&d.add(x)}const f={};return Object.keys(i).forEach(h=>{d.has(h)||(f[h]=i[h])}),{mask:c,definitions:f,lazy:!1}}return e.onMounted(async()=>{if(l.value){const{default:c}=await Promise.resolve().then(()=>uo),i=s(t.mask||"");a=c(l.value,i),a.on("accept",()=>{r.value=t.unmask?a.unmaskedValue:a.value}),a.on("complete",()=>{r.value=t.unmask?a.unmaskedValue:a.value}),a.value=r.value!=null?String(r.value):""}}),e.onBeforeUnmount(()=>{a?.destroy()}),e.watch(()=>t.mask,c=>{if(a){const i=s(c||"");a.updateOptions(i)}}),e.watch(r,c=>{a&&a.unmaskedValue!==c&&(a.value=c!=null?String(c):"")}),(c,i)=>(e.openBlock(),e.createElementBlock("input",{type:"text",ref_key:"inputEl",ref:l,placeholder:o.placeholder,disabled:o.disabled,name:o.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,zl))}}),Pl={class:"relative w-full bg-white rounded-lg"},jl={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},Ul=["placeholder","disabled"],qn=e.defineComponent({__name:"vs-input-email",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=ze(t.style),r=e.useModel(o,"modelValue");return(l,a)=>(e.openBlock(),e.createElementBlock("div",Pl,[e.createElementVNode("div",jl,[e.createVNode(e.unref(z.Mail),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.withDirectives(e.createElementVNode("input",{type:"email","onUpdate:modelValue":a[0]||(a[0]=s=>r.value=s),placeholder:o.placeholder,disabled:o.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":o.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Ul),[[e.vModelText,r.value]])]))}}),Hl={class:"relative w-full bg-white rounded-lg"},ql={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},Kl=["value","placeholder","disabled"],Kn=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(o){const t=o,{inputClass:n}=ze(t.style),r=e.useModel(o,"modelValue"),l=e.computed(()=>r.value?r.value.startsWith("+")?r.value.slice(1):r.value:""),a=c=>{let{value:i}=c.target;i=i.replace(/^\+/,""),r.value=i?`+${i}`:""},s=c=>{const i=c,{data:d,inputType:u}=i;u&&u.startsWith("delete")||d&&/\D/.test(d)&&i.preventDefault()};return e.watch(()=>r.value,c=>{c&&!c.startsWith("+")?r.value=`+${c.replace(/^\+/,"")}`:c||(r.value="")},{immediate:!0}),(c,i)=>(e.openBlock(),e.createElementBlock("div",Hl,[e.createElementVNode("div",ql,[e.createVNode(e.unref(z.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:o.placeholder,disabled:o.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":o.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,Kl)]))}}),Wl=["value","disabled"],Gl=["innerHTML"],Yl={key:1,class:"flex items-center gap-2"},Xl=["src"],Zl={class:"text-[13px] text-gray-700"},Jl=e.defineComponent({__name:"vs-input-radio-default",props:e.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{},html:{default:""},option:{default:null}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>!!t.disabled),l=e.computed(()=>qt(t.option)),a=e.computed(()=>Kt(t.option)),s=e.computed(()=>Bt(t.option)),c=e.computed(()=>!!(s.value&&!l.value&&!a.value)),i=e.computed(()=>!!(l.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),u=e.computed(()=>{if(!(!l.value||!s.value))return{backgroundColor:s.value,WebkitMaskImage:`url(${l.value})`,maskImage:`url(${l.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(f,h)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex items-center gap-0",[t.customClass,r.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[0]||(h[0]=x=>n.value=x),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,Wl),[[e.vModelRadio,n.value]]),e.createElementVNode("span",{class:e.normalizeClass(["w-[16px] shrink-0 h-[16px] border rounded-full flex items-center justify-center mr-[10px]",[`border-${t.style?.primaryColor||"blue"}-500`,r.value?"opacity-50 cursor-not-allowed":""]])},[n.value==t.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["w-[12px] h-[12px] shrink-0 rounded-full",[`bg-${t.style?.primaryColor||"blue"}-500`]])},null,2)):e.createCommentVNode("",!0)],2),t.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:t.html},null,8,Gl)):(e.openBlock(),e.createElementBlock("div",Yl,[c.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:s.value})},null,4)):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(u.value)},null,4)):l.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:l.value,alt:"icon"},null,8,Xl)):a.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(d.value)},null,8,["style"])):e.createCommentVNode("",!0),e.createElementVNode("span",Zl,e.toDisplayString(t.text),1)]))],2))}}),Ql=["value","disabled"],ea=["innerHTML"],ta={key:1,class:"flex items-center gap-2"},na=["src"],oa={class:"text-[13px] text-gray-700"},ra={"vs-input-radio-default":Jl,"vs-input-radio-buttons":e.defineComponent({__name:"vs-input-radio-buttons",props:e.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{},html:{default:""},option:{default:null}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>!!t.disabled),l=e.computed(()=>qt(t.option)),a=e.computed(()=>Kt(t.option)),s=e.computed(()=>Bt(t.option)),c=e.computed(()=>!!(s.value&&!l.value&&!a.value)),i=e.computed(()=>!!(l.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),u=e.computed(()=>{if(!(!l.value||!s.value))return{backgroundColor:s.value,WebkitMaskImage:`url(${l.value})`,maskImage:`url(${l.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(f,h)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex h-full w-full items-center border rounded-lg px-2 py-1",[n.value==t.value?`ring-2 ring-ring ring-${t.style?.primaryColor||"blue"}-500`:"",t.customClass,r.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[0]||(h[0]=x=>n.value=x),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,Ql),[[e.vModelRadio,n.value]]),t.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:t.html},null,8,ea)):(e.openBlock(),e.createElementBlock("div",ta,[c.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:s.value})},null,4)):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(u.value)},null,4)):l.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:l.value,alt:"icon"},null,8,na)):a.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(d.value)},null,8,["style"])):e.createCommentVNode("",!0),e.createElementVNode("span",oa,e.toDisplayString(t.text),1)]))],2))}})},Bo=o=>Array.isArray(o)?o:Array.isArray(o?.data)?o.data:[],Vo=o=>{const t=o.host??"",n=o.prefix??"api",r=o.api??`/${n}/suggest/${o.data}`;return`${t}${r}`},la=o=>({fetchOptions:async(r="")=>{const l=o();if(!l.data)return l.options?[...l.options]:[];try{const a=new URLSearchParams;a.set("json","1"),r&&a.set("key",r),l.parentValue!==void 0&&l.parentValue!==null&&l.parentValue!==""&&a.set("parent",String(l.parentValue)),l.start===1&&a.set("start","1");const c=await(await fetch(`${Vo(l)}?${a.toString()}`)).json();return Bo(c)}catch{return[]}},fetchOptionByValue:async r=>{if(r==null||r==="")return null;const l=o();if(!l.data)return(l.options??[]).find(s=>s?.id?.toString()===String(r))??null;try{const a=new URLSearchParams;a.set("json","1"),a.set("val",String(r)),l.parentValue!==void 0&&l.parentValue!==null&&l.parentValue!==""&&a.set("parent",String(l.parentValue)),l.start===1&&a.set("start","1");const c=await(await fetch(`${Vo(l)}?${a.toString()}`)).json();return Bo(c)[0]??null}catch{return null}}}),fn=({props:o,formValues:t=null,watchParent:n=!0})=>{const r=e.ref([]),l=e.computed(()=>o.parent?t?.value?.[o.parent]?.toString?.()??null:null),{fetchOptions:a,fetchOptionByValue:s}=la(()=>({data:o.data,options:o.options,api:o.api,prefix:o.prefix,host:o.host,start:o.start,parentValue:l.value})),c=async(i="")=>{const d=o.data?await a(i):o.options?[...o.options]:[];return r.value=d,r.value};return e.watch(()=>o.options,()=>{o.data||(r.value=o.options?[...o.options]:[])},{immediate:!0,deep:!0}),n&&e.watch(l,async()=>{o.data&&(r.value=await a())},{immediate:!1}),{optionsList:r,parentValue:l,fetchOptions:a,fetchOptionByValue:s,loadOptions:c}},aa=/\{\{\s*([^}]+?)\s*\}\}/g,sa=o=>(o?String(o):"").replace(/<[^>]*>/g,"").trim(),ia=(o,t)=>t.split(".").reduce((n,r)=>n==null?n:n[r.trim()],o),mn=(o,t)=>{if(!o)return"";const n=(t??"").trim();return n?n.replace(aa,(r,l)=>{const a=String(l).trim(),s=o,i=(a.includes(".")?ia(s,a):void 0)??s[a];return i!=null?String(i):""}):o.text??""},hn=(o,t)=>{if(!o)return"";const n=mn(o,t);return sa(n)||o.text||""},Wn=e.defineComponent({__name:"vs-input-radio",props:e.mergeModels({options:{},slot:{},data:{},api:{},prefix:{},host:{},start:{},parent:{},position:{default:"vertical"},view:{default:"default"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>ra[`vs-input-radio-${t.view}`]),l=e.computed(()=>t.slot??t?.optionTemplate??""),a=e.computed(()=>un(l.value)),s=x=>mn(x,l.value),c=x=>hn(x,l.value),i=e.computed(()=>t.position==="horizontal"?"flex w-full flex-row flex-wrap gap-[10px]":"flex w-full flex-col gap-2"),d=e.computed(()=>{if(t.position==="horizontal"&&t.customClass?.includes("50%"))return{flex:"0 0 calc(50% - 5px)"}}),u=e.inject("values",null),{optionsList:f,loadOptions:h}=fn({props:t,formValues:u});return e.onMounted(async()=>{await h()}),(x,m)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(f),k=>(e.openBlock(),e.createElementBlock("div",{key:k?.id,class:e.normalizeClass(["flex items-stretch",o.position==="horizontal"?t.customClass:""]),style:e.normalizeStyle(d.value)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value),e.mergeProps({text:c(k),html:a.value?s(k):"",option:k,value:k.id.toString(),checked:n.value?.toString?.()===k.id?.toString?.(),"custom-class":o.position==="horizontal"?"":t.customClass,modelValue:n.value,"onUpdate:modelValue":m[0]||(m[0]=y=>n.value=y)},{ref_for:!0},x.$attrs),null,16,["text","html","option","value","checked","custom-class","modelValue"]))],6))),128))],2))}}),ca={key:1,class:"w-full flex flex-col gap-4"},da={key:0,class:"text-sm font-medium text-muted-foreground my-2"},ua="Без категорії",pa=e.defineComponent({__name:"vs-input-checkbox",props:{options:{default:()=>[]},position:{default:"vertical"},slots:{default:null},slot:{},colSpan:{default:0},data:{},api:{},prefix:{},host:{},start:{},parent:{},view:{},group:{default:void 0},values:{default:()=>[]},style:{},customClass:{},disabled:{type:Boolean},modelValue:{default:!1},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,l=e.reactive({}),a=e.inject("values",null),{optionsList:s,loadOptions:c}=fn({props:{...n,options:n.options},formValues:a}),i=e.computed(()=>s.value),d=b=>b?.value||b?.id||b?.text||b,u=e.computed(()=>n.slot??n?.optionTemplate??""),f=e.computed(()=>un(u.value)),h=b=>mn(b,u.value),x=b=>hn(b,u.value),m=b=>`lg:col-span-${b||12}`,k=e.computed(()=>[n.position==="vertical"?"flex flex-col":"",n.colSpan?"grid":"flex justify-start"]),y=b=>b==null||b===""?null:typeof b=="string"||typeof b=="number"?b:String(b),v=e.computed(()=>{if(!n.group)return[];const b=new Map;i.value.forEach(L=>{const _=L[n.group],S=y(_);b.has(S)||b.set(S,[]),b.get(S)?.push(L)});const w=[];n.values?.length&&n.values.forEach(L=>{const _=y(L);w.push(_)});const V=new Set,O=L=>{const _=b.get(L)||[];if(!_.length)return null;const S=L===null?"group-null":`group-${String(L)}`,$=L===null?ua:String(L);return V.add(L),{key:S,label:$,options:_}},Y=[];return w.forEach(L=>{const _=O(L);_&&Y.push(_)}),b.forEach((L,_)=>{if(V.has(_))return;const S=O(_);S&&Y.push(S)}),Y});return e.watch(()=>n.modelValue,b=>{if(typeof b=="boolean"&&i.value.length===1){const w=d(i.value[0]);l[w]=b}else if(Array.isArray(b)){const w=new Set(b);i.value.forEach(V=>{if(!V.disabled){const O=d(V);l[O]=w.has(O)}})}},{immediate:!0}),e.watch(l,()=>{if(!i.value.length){r("update:modelValue",null);return}const b=Object.entries(l).filter(([,w])=>w).map(([w])=>w);r("update:modelValue",b.length===0?[]:b)},{deep:!0}),e.onMounted(async()=>{if(await c(),typeof n.modelValue=="boolean"&&i.value.length===1){const b=d(i.value[0]);l[b]=n.modelValue}else if(Array.isArray(n.modelValue)){const b=new Set(n.modelValue);i.value.forEach(w=>{if(!w.disabled){const V=d(w);l[V]=b.has(V)}})}}),(b,w)=>n.group?(e.openBlock(),e.createElementBlock("div",ca,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,V=>(e.openBlock(),e.createElementBlock("div",{key:V.key,class:"flex flex-col gap-2"},[V.label?(e.openBlock(),e.createElementBlock("span",da,e.toDisplayString(V.label),1)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-0 w-full gap-[12px]",k.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V.options,O=>(e.openBlock(),e.createBlock(jn,{modelValue:l[d(O)],"onUpdate:modelValue":Y=>l[d(O)]=Y,value:d(O),class:e.normalizeClass(m(o.colSpan)),disabled:n.disabled||O.disabled,label:x(O),labelHtml:f.value?h(O):"",key:`${V.key}-${d(O)}`,icon:O?.icon,imgUrl:O?.imgUrl,option:O,view:o.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2)]))),128))])):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["p-0 w-full gap-[10px]",k.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,V=>(e.openBlock(),e.createBlock(jn,{modelValue:l[d(V)],"onUpdate:modelValue":O=>l[d(V)]=O,value:d(V),class:e.normalizeClass(m(o.colSpan)),disabled:n.disabled||V.disabled,label:x(V),labelHtml:f.value?h(V):"",key:d(V),icon:V?.icon,imgUrl:V?.imgUrl,option:V,view:o.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2))}}),xe=(o,t)=>{const n=o.__vccOpts||o;for(const[r,l]of t)n[r]=l;return n},So=xe(pa,[["__scopeId","data-v-16c6c9cd"]]),fa=["type","placeholder","disabled"],ma=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(o,{emit:t}){const n=o;function r(u){return u?n.mode==="datetime"?(u.includes("T")?u:null)||u+(u.includes(" ")?"":"T00:00"):u?.split(" ")[0]:null}const{inputClass:l}=ze(n.style),a=t,s=e.computed({get:()=>r(n.modelValue),set:u=>a("update:modelValue",u)}),c=e.computed(()=>n.mode==="datetime"?"datetime-local":n.mode),i=e.computed(()=>!!n.disabled),d=e.computed(()=>n.placeholder??"");return(u,f)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:c.value,"onUpdate:modelValue":f[0]||(f[0]=h=>s.value=h),placeholder:d.value,disabled:i.value,ref:"date",class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[o.modelValue?"":"text-opacity-50",e.unref(l)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,fa)),[[e.vModelDynamic,s.value]])}}),ha=(o,t)=>{if(!t||!Object.keys(t).length)return o;const[n,r=""]=o.split("?"),l=new URLSearchParams(r);Object.entries(t).forEach(([s,c])=>{c==null||c===""||l.set(s,String(c))});const a=l.toString();return a?`${n}?${a}`:n},$o=async(o,t={})=>{try{const n=new FormData;n.append("unique","true"),n.append("file",o);const{api:r,id:l="1",form:a="form",table:s="table",customParams:c}=t,i=r||`/file/upload/uploads?id=${l||""}&form=${a||""}&table=${s||""}`,d=ha(i,c);return(await fetch(d,{method:"POST",body:n}).then(f=>f.json()))?.result}catch(n){return he.notify({type:"error",title:"Помилка!",message:"Сталась помилка під час завантаження файлу",position:"right-bottom"}),console.error("Сталась помилка завантаження файлу",n),null}},ga=async o=>{try{return await fetch(`file/delete${o}`),!0}catch(t){return console.error(t),!1}},No=async o=>{try{const t=await fetch(`/file/download${o}`);if(!t.ok)throw new Error(`Download failed with status ${t.status}`);const n=await t.blob(),l=(t.headers.get("content-disposition")||"").match(/filename\*?=(?:UTF-8''|")?([^\";]+)/i),a=l?.[1]?decodeURIComponent(l[1].replace(/"/g,"").trim()):"",s=o.split("/").filter(Boolean).pop()||"download",c=a||s,i=document.createElement("a");i.setAttribute("download",c),i.href=window.URL.createObjectURL(n),i.click(),window.URL.revokeObjectURL(i.href)}catch(t){console.error(t.message)}},ya=o=>{if(!o)return"";const t=o?.split(".");return t[t.length-1]},ba=o=>{const t=ya(o),n={imageFormat:["tiff","jpg","jpeg","png","svg","ico","webp"],sheetsFormat:["xls","csv","xlsx"],archivesFormat:["zip","rar"],textsFormat:["json","geojson","txt","yml","yaml","shp"],documentsFormat:["pdf"]};return n.imageFormat.includes(t)?"img":n.sheetsFormat.includes(t)?z.Table:n.textsFormat.includes(t)?z.FileCode:n.documentsFormat.includes(t)?z.FileText:n.archivesFormat.includes(t)?z.FileArchive:z.FileText},ka=["title"],xa={class:"absolute hidden top-0 right-0 flex items-center gap-x-2 w-full h-full justify-center"},Gn=xe(e.defineComponent({__name:"vs-input-file-list-item",props:e.mergeModels({format:{},multiple:{type:Boolean},max_size:{},api:{},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{value:{},valueModifiers:{},item:{},itemModifiers:{}}),emits:["update:value","update:item"],setup(o){const t=e.useModel(o,"value"),n=e.useModel(o,"item"),r=o,l=e.computed(()=>n.value?typeof n.value=="string"?n.value:n.value.file_path:""),a=i=>typeof i=="string"?i:i?.file_path||"",s=()=>{const i=l.value;ga(i),r.multiple&&Array.isArray(t.value)?t.value=t.value.filter(d=>a(d)!==i):t.value=""},c=()=>{l.value&&window.open(l.value,"_blank")};return(i,d)=>(e.openBlock(),e.createElementBlock("div",{title:l.value,class:"h-[120px] w-[120px] border text-gray-300 border-dashed border-[#CFD9E0] rounded-lg overflow-hidden relative item-file"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(ba)(l.value)),{src:l.value,alt:"file",class:"w-full h-full object-cover cursor-pointer",onClick:d[0]||(d[0]=u=>e.unref(No)(l.value))},null,8,["src"])),e.createElementVNode("div",xa,[e.createElementVNode("button",{type:"button",onClick:s,class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-red-500"},[e.createVNode(e.unref(z.Trash2),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:c,class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-emerald-600"},[e.createVNode(e.unref(z.Eye),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:d[1]||(d[1]=u=>e.unref(No)(l.value)),class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-blue-500"},[e.createVNode(e.unref(z.Download),{class:"w-4 h-4"})])])],8,ka))}}),[["__scopeId","data-v-21affae7"]]),wa={class:"flex items-center gap-x-2"},Ca=["accept","multiple","disabled"],va={key:1,class:"flex items-center flex-wrap gap-2"},Ea={key:1,class:"loader"},_a={key:1,class:"loader"},Ao=xe(e.defineComponent({__name:"vs-input-file",props:e.mergeModels({format:{},multiple:{type:Boolean},max_size:{},api:{},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["change"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=e.useModel(o,"modelValue"),l=t,a=e.computed(()=>{const b=r.value;return!n.multiple||!Array.isArray(b)?[]:b}),s=e.ref(null),c=e.ref(!1),i=e.inject("values"),d=e.computed(()=>n.format?n.format.split(",").map(b=>b.trim().toLowerCase()).filter(Boolean):[]),u=b=>{if(n.max_size&&b.size>n.max_size*1024*1024){const w=(b.size/1048576).toFixed(2);return he.notify({type:"error",title:"Помилка!",message:`Файл "${b.name}" занадто великий. Максимальний розмір: ${n.max_size} МБ, розмір файлу: ${w} МБ`,position:"right-bottom"}),!1}return!0},f=b=>{if(!d.value.length)return!0;const w=`.${b.name.split(".").pop()?.toLowerCase()||""}`,V=d.value.includes(w);return V||he.notify({type:"error",title:"Помилка!",message:`Неприпустимий формат файлу "${b.name}". Дозволені формати: ${d.value.join(", ")}`,position:"right-bottom"}),V},h=e.computed(()=>{const b={},w=[];if(!n.customParams?.length)return{params:b,missingSources:w};const V=i?.value??{};return n.customParams.forEach(O=>{if(!O)return;const[Y,L]=O.split("="),_=Y?.trim(),S=L?.trim();if(!_||!S)return;const $=V[S];if($==null||$===""){w.push(S);return}b[_]=$}),{params:b,missingSources:w}}),x=()=>{const{params:b}=h.value;return{api:n.api,customParams:Object.keys(b).length?b:void 0}},m=()=>{const b=h.value.missingSources;if(!b.length)return!0;const w=b.join(", ");return he.notify({type:"warning",title:"Заповніть поля",message:`Поля (${w}) необхідні для завантаження файлу`,position:"right-bottom"}),!1},k=b=>{he.notify({type:"error",title:"Помилка завантаження",message:b||"Не вдалося завантажити файл. Спробуйте ще раз.",position:"right-bottom"})},y=()=>{n.disabled||c.value||m()&&s.value?.click()},v=async b=>{const{files:w}=b.target;if(!w||w.length===0)return;if(!m()){s.value&&(s.value.value="");return}const V=Array.from(w);if(n.max_size&&V.filter(L=>!u(L)).length>0){s.value&&(s.value.value="");return}if(V.filter(Y=>!f(Y)).length>0){s.value&&(s.value.value="");return}c.value=!0;try{if(n.multiple){const Y=Array.from(w).map(async B=>await $o(B,x())),L=await Promise.all(Y),_=L.filter(B=>B?.file_path);if(_.length===0){k();return}_.length<L.length&&k("Деякі файли не вдалося завантажити. Перевірте їх та спробуйте знову.");const S=_.map(B=>B.file_path),$=Array.isArray(r.value)?r.value:[];r.value=[...$,...S],l("change",r.value)}else{const Y=w[0],L=await $o(Y,x());if(!L?.file_path){k();return}const _=L.file_path;r.value=_,l("change",_)}}catch(Y){const L=Y?.message||void 0;k(L)}finally{c.value=!1,s.value&&(s.value.value="")}};return(b,w)=>(e.openBlock(),e.createElementBlock("div",wa,[e.createElementVNode("input",{class:"hidden",ref_key:"fileInput",ref:s,type:"file",accept:n.format,multiple:o.multiple,onChange:v,disabled:c.value||o.disabled},null,40,Ca),!o.multiple&&r.value&&!Array.isArray(r.value)?(e.openBlock(),e.createBlock(Gn,{key:0,item:r.value,value:r.value,"onUpdate:value":w[0]||(w[0]=V=>r.value=V)},null,8,["item","value"])):o.multiple?(e.openBlock(),e.createElementBlock("div",va,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(V,O)=>(e.openBlock(),e.createBlock(Gn,{multiple:o.multiple,key:O,value:r.value,"onUpdate:value":w[1]||(w[1]=Y=>r.value=Y),item:V},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",o.disabled||c.value?"opacity-50 cursor-not-allowed":"cursor-pointer hover:border-blue-500 hover:bg-blue-50"])},[c.value?(e.openBlock(),e.createElementBlock("div",Ea)):(e.openBlock(),e.createBlock(e.unref(z.Plus),{key:0,class:"h-4 w-4"}))],2)])):e.createCommentVNode("",!0),o.multiple?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:2,onClick:y,class:e.normalizeClass([o.disabled||c.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"])},[c.value?(e.openBlock(),e.createElementBlock("div",_a)):(e.openBlock(),e.createBlock(e.unref(z.Plus),{key:0,class:"h-4 w-4"}))],2))]))}}),[["__scopeId","data-v-f452b969"]]),Ba={class:"vs-input-file2 flex flex-col gap-4"},Va={class:"flex items-center gap-x-2"},Sa=["accept","disabled"],$a={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"},Na={key:0,class:"rounded-lg border border-[#CFD9E0] bg-white p-4 shadow-sm"},Aa={class:"flex items-center justify-between text-sm"},Fa={class:"truncate pr-4"},Ma={class:"font-medium text-slate-800 truncate"},Da={class:"text-slate-500"},Ta={class:"text-slate-500 whitespace-nowrap"},La={class:"mt-3 h-2 rounded-full bg-slate-100 overflow-hidden"},Ia={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(o){const t=o,n=e.useModel(o,"modelValue"),r=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),u=e.inject("values"),f=e.computed(()=>t.format?t.format.split(",").map(N=>N.trim().toLowerCase()).filter(Boolean):[]),h=e.computed(()=>!l.value||!l.value.size?0:Math.min(100,Math.round(s.value/l.value.size*100))),x=e.computed(()=>l.value?`${y(s.value)} / ${y(l.value.size)}`:""),m=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"),k=()=>{t.disabled||c.value||V()&&r.value?.click()},y=N=>{if(!Number.isFinite(N))return"0 B";const I=["B","KB","MB","GB"];let E=0,M=N;for(;M>=1024&&E<I.length-1;)M/=1024,E+=1;return`${M.toFixed(E===0?0:1)} ${I[E]}`},v=N=>{if(!t.max_size)return!0;const I=t.max_size*1024*1024;return N.size>I?(he.notify({type:"error",title:"Файл занадто великий",message:`Максимальний розмір ${t.max_size} МБ`,position:"right-bottom"}),!1):!0},b=N=>{if(!f.value.length)return!0;const I=`.${N.name.split(".").pop()?.toLowerCase()||""}`;return f.value.includes(I)?!0:(he.notify({type:"error",title:"Непідтримуваний формат",message:`Дозволені формати: ${f.value.join(", ")}`,position:"right-bottom"}),!1)},w=e.computed(()=>{const N={},I=[];if(!t.customParams?.length)return{params:N,missing:I};const E=u?.value??{};return t.customParams.forEach(M=>{if(!M)return;const[D,K]=M.split("="),W=D?.trim(),X=K?.trim();if(!W||!X)return;const re=E[X];re==null||re===""?I.push(X):N[W]=re}),{params:N,missing:I}}),V=()=>w.value.missing.length?(he.notify({type:"warning",title:"Заповніть поля",message:`Потрібні значення: ${w.value.missing.join(", ")}`,position:"right-bottom"}),!1):!0,O=N=>{const I=N.target,E=I.files?.[0];if(E){if(!V()){I.value="";return}if(!v(E)||!b(E)){I.value="";return}l.value=E,s.value=0,a.value="",i.value=""}},Y=async()=>{if(!l.value){k();return}try{i.value="";const N={id:a.value||"",fileName:l.value.name,subdir:t.subdir,size:l.value.size,...w.value.params},I=await fetch("/api/file/upload2/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(N)});if(!I.ok)throw new Error("Не вдалося ініціалізувати завантаження");const E=await I.json();a.value=E.id||a.value,s.value=E.uploaded||0,await L()}catch(N){i.value=N?.message||"Помилка при старті завантаження"}},L=async()=>{if(!(!l.value||!a.value)){c.value=!0;try{for(;s.value<l.value.size;){const N=s.value,I=Math.min(N+t.chunkSize,l.value.size),E=l.value.slice(N,I);d.value=new AbortController;const M=await fetch(`/api/file/upload2/${a.value}`,{method:"PATCH",headers:{"Content-Range":`bytes ${N}-${I-1}/${l.value.size}`},body:E,signal:d.value.signal});if(!M.ok)throw new Error("Помилка завантаження частини");const D=await M.json().catch(()=>({}));if(D.uploaded!=null?s.value=Number(D.uploaded):s.value=I,D.finished||s.value>=l.value.size){c.value=!1;const K=D.file_path||D.url||a.value;n.value={file_id:D.file_id??a.value??K,file_path:K},he.notify({type:"success",title:"Файл завантажено",message:l.value.name,position:"right-bottom"}),B();return}}}catch(N){if(N?.name==="AbortError")return;i.value=N?.message||"Помилка при завантаженні",c.value=!1}finally{d.value=null,c.value=!1}}},_=()=>{c.value&&(d.value?.abort(),d.value=null,c.value=!1)},S=async()=>{if(l.value){if(!a.value){await Y();return}await L()}},$=()=>{d.value?.abort(),d.value=null,B()},B=()=>{const N=r.value;N&&(N.value=""),l.value=null,a.value="",s.value=0,i.value=""};return(N,I)=>(e.openBlock(),e.createElementBlock("div",Ba,[e.createElementVNode("div",Va,[e.createElementVNode("input",{ref_key:"fileInput",ref:r,type:"file",class:"hidden",accept:t.format,disabled:c.value||t.disabled,onChange:O},null,40,Sa),n.value?(e.openBlock(),e.createBlock(Gn,{key:0,item:n.value,"onUpdate:item":I[0]||(I[0]=E=>n.value=E),value:n.value,"onUpdate:value":I[1]||(I[1]=E=>n.value=E)},null,8,["item","value"])):(e.openBlock(),e.createElementBlock("div",{key:1,onClick:k,class:e.normalizeClass(["relative h-[120px] w-[120px] border text-gray-300 border-dashed border-[#CFD9E0] rounded-lg flex items-center justify-center transition-all duration-300",m.value])},[c.value?(e.openBlock(),e.createElementBlock("div",$a,[I[2]||(I[2]=e.createElementVNode("div",{class:"loader"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(h.value)+"%",1)])):(e.openBlock(),e.createBlock(e.unref(z.Plus),{key:1,class:"h-4 w-4"}))],2))]),l.value&&!n.value?(e.openBlock(),e.createElementBlock("div",Na,[e.createElementVNode("div",Aa,[e.createElementVNode("div",Fa,[e.createElementVNode("div",Ma,e.toDisplayString(l.value.name),1),e.createElementVNode("div",Da,e.toDisplayString(y(l.value.size)),1)]),e.createElementVNode("div",Ta,e.toDisplayString(x.value),1)]),e.createElementVNode("div",La,[e.createElementVNode("div",{class:"h-full rounded-full bg-blue-500 transition-all duration-300",style:e.normalizeStyle({width:`${h.value}%`})},null,4)]),e.createElementVNode("div",Ia,[!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:S}," 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:_}," 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:Y}," Upload ")):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"rounded border border-rose-200 px-3 py-1 text-rose-600",onClick:$}," Cancel ")]),i.value?(e.openBlock(),e.createElementBlock("p",Ra,e.toDisplayString(i.value),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]))}}),Yn=xe(Oa,[["__scopeId","data-v-19ea2129"]]),za={class:"flex items-center justify-center h-[30px] w-[30px]"},Pa={class:"max-w-[55vw]"},ja={class:"text-sm font-semibold text-gray-800 truncate dark:text-neutral-200"},Ua={class:"flex items-center text-xs text-gray-500 truncate dark:text-neutral-500"},Ha={class:"px-[5px]"},qa={class:""},gn=e.defineComponent({__name:"vs-widget-file-info",props:{item:{default:null}},setup(o){const t=o,n=e.computed(()=>{try{return new Date(t.item.cdate).toLocaleDateString("uk-UA",{day:"2-digit",month:"long",year:"numeric"})}catch{return""}});function r(l){if(l<1024)return`${l} B`;const a=l/1024;return a<1024?`${a.toFixed(2)} KB`:`${(a/1024).toFixed(2)} MB`}return(l,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",za,[e.createVNode(e.unref(z.FileText),{class:"icon icon-tabler icons-tabler-outline icon-tabler-file h-4 w-4"})]),e.createElementVNode("div",Pa,[e.createElementVNode("p",ja,e.toDisplayString(o.item?.uploaded_name),1),e.createElementVNode("p",Ua,[e.createElementVNode("span",null,e.toDisplayString(o.item?.username),1),e.withDirectives(e.createElementVNode("span",Ha,"|",512),[[e.vShow,o.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",qa,e.toDisplayString(r(o.item?.size)),1)])])],64))}}),Ka={class:"p-3 relative group flex items-center gap-x-3 border border-gray-200 bg-white rounded-md w-full"},Wa={key:0,class:"flex w-full gap-x-3 items-center"},Ga={key:1,class:"flex gap-x-3 w-full items-center"},Ya={key:2,class:"flex gap-x-3 w-full items-center"},Xa=["href"],Za={key:3,class:"flex gap-x-3 w-full items-center"},Ja={class:"lg:absolute lg:top-3 lg:end-1 opacity-100"},Qa={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"},es={class:"inline-block"},ts={class:"inline-block"},ns={class:"inline-block"},os=e.defineComponent({__name:"vs-widget-file-item",props:{item:{default:null},index:{default:0},prefix:{default:"/api"}},emits:["update","openModal","openLightbox"],setup(o,{emit:t}){const n=o,r=t;function l(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()}function c(f){f?.file_path&&window.open(f.file_path,"_blank")}async function i(){try{await fetch(`${n.prefix}/widget/file/${n.item.entity_id}/${n.item.file_id}`),r("update")}catch(f){console.error(f)}}function d(){r("openModal",{title:"Ви впевнені?",message:"Ви впевнені, що хочете видалити цей файл?",confirmButtonText:"Так, я впевнена/ий",cancelButtonText:"Скасувати",confirm:i,updateListOnConfirm:!0})}function u(f){(n.item.ext==="jpg"||n.item.ext==="png")&&r("openLightbox",{item:n.item,index:f})}return(f,h)=>(e.openBlock(),e.createElementBlock("div",Ka,[o.item.ext==="jpg"||o.item.ext==="png"?(e.openBlock(),e.createElementBlock("div",Wa,[e.createElementVNode("div",{class:"max-w-[55vw] cursor-pointer flex gap-x-3 w-full items-center",onClick:h[0]||(h[0]=x=>u(o.index))},[e.createVNode(gn,{item:o.item},null,8,["item"])])])):l(o.item)?(e.openBlock(),e.createElementBlock("div",Ga,[e.createVNode(gn,{item:o.item},null,8,["item"])])):a(o.item)?(e.openBlock(),e.createElementBlock("div",Ya,[e.createElementVNode("a",{href:`/api/file-preview?id=${o.item.file_id}`,target:"_blank",class:"flex gap-x-3 w-full items-center"},[e.createVNode(gn,{item:o.item},null,8,["item"])],8,Xa)])):(e.openBlock(),e.createElementBlock("div",Za,[e.createVNode(gn,{item:o.item},null,8,["item"])])),e.createElementVNode("div",Ja,[e.createElementVNode("div",Qa,[e.createElementVNode("div",es,[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]=x=>c(o.item))},[e.createVNode(e.unref(z.Eye),{class:"h-4 w-4"})])]),e.createElementVNode("div",ts,[e.createElementVNode("button",{class:"inline-flex p-[6px] justify-center items-center gap-x-2 rounded-lg border border-transparent text-gray-500 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none dark:text-neutral-400 focus:outline-none focus:bg-gray-100 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",onClick:h[2]||(h[2]=x=>s(o.item))},[e.createVNode(e.unref(z.Download),{class:"h-4 w-4"})])]),h[4]||(h[4]=e.createElementVNode("div",{class:"w-px h-5 mx-1 bg-gray-200 dark:bg-neutral-700"},null,-1)),e.createElementVNode("div",ns,[e.createElementVNode("button",{type:"button",class:"size-[30px] inline-flex justify-center items-center gap-x-2 rounded-lg border border-transparent text-red-600 hover:bg-red-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-red-100 dark:text-red-500 dark:hover:bg-red-500/20 dark:focus:bg-red-500/20",onClick:h[3]||(h[3]=x=>d())},[e.createVNode(e.unref(z.Trash2),{class:"h-4 w-4"})])])])])]))}}),rs={class:"flex flex-col widget-file xl:bg-white xl:rounded-xl dark:xl:bg-neutral-800 dark:xl:border-neutral-700 w-full"},ls={class:"flex w-full mb-[12px] items-center gap-x-2"},as={class:"font-semibold text-gray-800 dark:text-neutral-200 text-[14px]"},ss={class1:"ml-auto"},is={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"},cs={key:0,class:"py-4 mb-4 space-y-4 border-gray-200 border-y dark:border-neutral-700"},ds={class:"relative"},us={class:"absolute inset-y-0 start-0 flex items-center pointer-events-none z-[1] ps-3.5"},ps={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"},fs={key:0},Fo=e.defineComponent({__name:"vs-input-file-list",props:{id:{default:""},prefix:{default:"/api"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update"],setup(o,{emit:t}){const n=o,r=e.inject("form"),l=e.computed(()=>r.value.formId),a=e.ref(!1),s=e.ref(0),c=t,i=e.ref(!1),d=e.ref({}),u=e.ref([]),f=e.ref(""),h=e.computed(()=>Array.isArray(u.value)?u.value.filter(w=>w.ext==="jpg"||w.ext==="png").map(w=>w?.file_path):[]),x=e.computed(()=>f.value===""?u.value:u.value.filter(w=>w?.uploaded_name?.includes(f.value))),m=w=>{const V=h.value.findIndex(O=>O===w.item.file_path);V!==-1&&(a.value=!0,s.value=V)},k=async()=>{try{const w=await fetch(`${n.prefix}/widget/file/${l.value}`).then(V=>V.json());u.value=w?.rows}catch(w){console.error(w)}},y=async w=>{await Promise.all(Array.from(w.target.files).map(async V=>{const O=new FormData;O.append("file",V);try{const Y=`${n.prefix}/widget/file/${l.value}`,L=await fetch(Y,{method:"POST",body:O});return L.ok?(c("update","file-list"),V):(he.notify({type:L.status>=400&&L.status<500?"warning":"error",title:"Error",message:`Error code: ${L.status}`}),null)}catch(Y){return he.notify({type:"error",title:"Error",message:Y.message||"Unknown error"}),console.error(Y),null}})),await k()},v=w=>{const V={...w};return w.cancel||(V.cancel=()=>{i.value=!1}),w.updateListOnConfirm&&(V.confirm=async()=>{await w.confirm(),i.value=!1,k()}),V},b=w=>{d.value=v(w),i.value=!0};return e.watch(l,w=>{w&&k()}),e.onMounted(()=>{l.value&&k()}),(w,V)=>{const O=e.resolveComponent("Lightbox"),Y=e.resolveComponent("MessageBox");return e.openBlock(),e.createElementBlock("div",rs,[e.createElementVNode("div",ls,[e.createElementVNode("h2",as," Файлів: "+e.toDisplayString(u.value?.length),1),e.createElementVNode("div",ss,[e.createElementVNode("label",null,[e.createElementVNode("input",{type:"file",class:"hidden",onChange:V[0]||(V[0]=L=>y(L))},null,32),e.createElementVNode("div",is,[e.createVNode(e.unref(z.Upload),{class:"h-4 w-4"})])])])]),u.value?.length>4?(e.openBlock(),e.createElementBlock("div",cs,[e.createElementVNode("div",null,[e.createElementVNode("div",ds,[e.createElementVNode("div",us,[e.createVNode(e.unref(z.Search),{class:"flex-shrink-0 text-gray-500 size-4 dark:text-neutral-400"})]),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":V[1]||(V[1]=L=>f.value=L),class:"py-2 px-3 ps-10 pe-16 block w-full bg-gray-200 xl:bg-gray-100 rounded-lg text-sm focus:border-blue-500 h-[40px] focus:border-2 focus:outline-none disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:border-transparent dark:text-neutral-400 dark:placeholder:text-neutral-400 dark:focus:ring-neutral-600",placeholder:"Введіть назву файлу"},null,512),[[e.vModelText,f.value,void 0,{trim:!0}]])])])])):e.createCommentVNode("",!0),u.value?.length?(e.openBlock(),e.createElementBlock("div",ps,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.value,(L,_)=>(e.openBlock(),e.createBlock(os,{key:_,prefix:o.prefix,item:L,index:_,onUpdate:V[2]||(V[2]=S=>w.$emit("update","file-list")),onOpenModal:V[3]||(V[3]=S=>b(S)),onOpenLightbox:V[4]||(V[4]=S=>m(S))},null,8,["prefix","item","index"]))),128)),x.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",fs,[...V[8]||(V[8]=[e.createElementVNode("p",{class:"text-sm text-gray-600 font-sm"}," Файлів з такою назвою не існує, введіть інше пошукове слово ",-1)])]))])):e.createCommentVNode("",!0),e.createVNode(O,{modelValue:a.value,"onUpdate:modelValue":V[5]||(V[5]=L=>a.value=L),startIndex:s.value,"onUpdate:index":V[6]||(V[6]=L=>s.value=L),images:h.value},null,8,["modelValue","startIndex","images"]),e.createVNode(Y,e.mergeProps({modelValue:i.value,"onUpdate:modelValue":V[7]||(V[7]=L=>i.value=L),onConfirm:d.value.confirm},d.value),null,16,["modelValue","onConfirm"])])}}}),ms={class:"flex items-center justify-between"},hs={class:"text-[16px] text-gray-900 font-medium"},gs={class:"grid gap-3"},ys=xe(e.defineComponent({__name:"vs-container-switcher",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(o){const t=o,n=e.ref(t.isOpen);return e.watch(()=>t.isOpen,r=>{n.value=r}),(r,l)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",ms,[e.createElementVNode("p",hs,e.toDisplayString(o.title),1),e.createVNode(Un,{modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=a=>n.value=a),style:e.normalizeStyle(o.style)},null,8,["modelValue","style"])]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",gs,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-00f2f0fc"]]),bs={class:"text-[16px] text-gray-900 font-medium"},ks={class:"grid gap-3"},xs=xe(e.defineComponent({__name:"vs-container-accordion",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(o){const t=o,n=e.ref(t.isOpen);return e.watch(()=>t.isOpen,r=>{n.value=r}),(r,l)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("button",{type:"button",onClick:l[0]||(l[0]=a=>n.value=!n.value),class:"flex items-center gap-2"},[e.createVNode(e.unref(z.ChevronDown),{class:e.normalizeClass(["h-4 w-4 duration-300",[n.value?"-rotate-180":""]])},null,8,["class"]),e.createElementVNode("span",bs,e.toDisplayString(o.title),1)]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",ks,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-dde48964"]]),ws={class:"flex items-center justify-between"},Cs={switcher:ys,accordion:xs,default:e.defineComponent({__name:"vs-container-default",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})}},setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",ws,[e.createElementVNode("p",null,e.toDisplayString(o.title),1)]),e.renderSlot(t.$slots,"default")]))}})},ot={Equal:"==",Inequal:"!=",Higer:">",HigerOrEqual:">=",Lower:"<",LowerOrEqual:"<=",Between:"between",StartWith:"^",EndWith:"$",Contain:"*",In:"in",NotIn:"not_in"},vs=(o,t)=>String(o)===String(t),Es=(o,t)=>String(o)!==String(t),_s=(o,t)=>o>t,Bs=(o,t)=>o>=t,Vs=(o,t)=>o<t,Ss=(o,t)=>o<=t,$s=(o,t)=>Array.isArray(t)&&t.length===2?o>=t[0]&&o<=t[1]:!1,Ns=(o,t)=>String(o).startsWith(String(t)),As=(o,t)=>String(o).endsWith(String(t)),Fs=(o,t)=>String(o).includes(String(t)),Ms=(o,t)=>Array.isArray(t)?t.includes(o):!1,Ds=(o,t)=>Array.isArray(t)?!t.includes(o):!0,Mo=(o,t)=>{if(!t)return!0;switch(t?.[1]){case ot.Equal:return vs(o,t?.[2]);case ot.Inequal:return Es(o,t?.[2]);case ot.Higer:return _s(o,t?.[2]);case ot.HigerOrEqual:return Bs(o,t?.[2]);case ot.Lower:return Vs(o,t?.[2]);case ot.LowerOrEqual:return Ss(o,t?.[2]);case ot.Between:return $s(o,t?.[2]);case ot.StartWith:return Ns(o,t?.[2]);case ot.EndWith:return As(o,t?.[2]);case ot.Contain:return Fs(o,t?.[2]);case ot.In:return Ms(o,t?.[2]);case ot.NotIn:return Ds(o,t?.[2]);default:return!0}},Do=e.defineComponent({__name:"vs-input-container",props:{style:{type:Object,default:()=>({})},title:{type:String,default:""},view:{type:String,default:"default"},name:{type:String,default:""},schema:{type:Array,default:()=>[]}},setup(o){const t=o,n=e.inject("values",e.ref({})),r=e.inject("form"),l=e.computed(()=>t.schema?.filter(c=>{const i=c?.conditions;if(!i)return!0;const d=Array.isArray(i)?i[0]:i,u=t.name?n.value?.[t.name]?.[d]??n.value?.[d]:n.value?.[d];return Mo(u,i)})),a=e.computed(()=>Cs[t.view]),s=e.computed(()=>{if(n.value||(n.value={}),!t.name)return n.value;const c=n.value[t.name];if(c)return c;const i={};return n.value={...n.value,[t.name]:i},i});return(c,i)=>o.schema?.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{key:0,title:o.title,style:e.normalizeStyle(o.style)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,d=>(e.openBlock(),e.createBlock(or,e.mergeProps({key:d.name},{ref_for:!0},d,{item:d,modelValue:s.value[d.name],"onUpdate:modelValue":u=>s.value[d.name]=u,style:o.style,error:e.unref(r)?.errors?.[d.name]}),null,16,["item","modelValue","onUpdate:modelValue","style","error"]))),128))]),_:1},8,["title","style"])):e.createCommentVNode("",!0)}}),To=({props:o,fetchOptionByValue:t,optionsList:n,selectedOption:r,modelValue:l,onCreated:a})=>{const s=e.ref(!1),c=e.ref({}),i=e.ref([]),d=e.ref(null),u=e.computed(()=>o.add?.title||"Додати"),f=e.computed(()=>o.add?.token||o.add?.model||""),h=e.computed(()=>o.add?.pk||"id");return{isOpenAdd:s,addData:c,addSchema:i,addForm:d,addTitle:u,addOption:async()=>{if(!(!f.value||d?.value.validate()))try{const y=o.add?.api??`/api/table/${f.value}`,v=await fetch(y,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c.value)}),b=await v.json().catch(()=>({})),w=b?.error||b?.message,V=Number(b?.code)>=400;if(!v.ok||V){he.notify({title:"Помилка",type:"error",message:w||`Код помилки: ${b?.code||v.status}`});return}const O=b?.[h.value]??b?.id;if(!O){he.notify({title:"Помилка",type:"error",message:"Обʼєкт створено, але в відповіді відсутній ID."});return}const Y=await t(O);Y&&(n.value.some(_=>String(_?.id)===String(Y.id))||n.value.push(Y)),a?await a(Y,O):Y&&(r.value=Y,l.value=O),s.value=!1,he.notify({title:"Успіх",message:"Обʼєкт успішно створено."})}catch(y){he.notify({title:"Помилка",type:"error",message:y?.message||"Не вдалося створити обʼєкт."})}},onAddValue:async()=>{if(!o.add)return null;const k=await fetch(`/api/template/form/${o.add.form}`).then(y=>y.json());return i.value=k.schema,c.value={},s.value=!0,null}}},Ts=["aria-expanded","data-focus"],Ls={class:"relative flex flex-1 items-center gap-1 py-0.5 pl-1 pr-0 overflow-hidden h-full min-w-0"},Is={key:0,class:"flex flex-nowrap items-center gap-1 overflow-x-auto overflow-y-hidden min-w-0 flex-1 py-0.5"},Rs={class:"flex items-center gap-1 min-w-0"},Os=["title"],zs=["innerHTML"],Ps=["onClick"],js={class:"flex-1 min-w-[2px]"},Us=["placeholder"],Hs=["title"],qs=["innerHTML"],Ks={key:3,class:"truncate flex-1 min-w-0"},Ws={key:2,class:"flex-1 min-w-[2px]"},Gs=["placeholder"],Ys={class:"flex items-center shrink-0"},Xs=["disabled"],Zs={key:1,class:"self-stretch w-px bg-[#ccc] my-[1px]"},Js=["disabled","title"],Qs=e.defineComponent({__name:"vs-select-control",props:{disabled:{type:Boolean},isOpen:{type:Boolean},inputFocus:{type:Boolean},isMulti:{type:Boolean},selectedOptions:{},selectedIds:{},placeholder:{},search:{type:Boolean},optionTemplate:{default:""},iconWrapperClass:{},selectedOptionLabel:{},selectedOption:{},showClear:{type:Boolean},keyWord:{default:""},setTriggerRef:{},setInputRef:{},shouldShowColorDot:{},optionHasIcon:{},getIconColorStyle:{},resolveOptionIcon:{},renderTemplate:{},getLabel:{},onControlKeydown:{},onControlClick:{},onInputFocus:{},onInputBlur:{},onInputKeydown:{},onRemoveSelected:{},onClearSelected:{},onToggleSelect:{}},emits:["update:keyWord"],setup(o,{emit:t}){const n=o,r=t,l=e.computed({get:()=>n.keyWord,set:a=>r("update:keyWord",a)});return(a,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-input-select__control flex min-h-[38px] items-center justify-between rounded transition-colors bg-white",o.disabled?"bg-gray-100 text-gray-400 cursor-not-allowed":""]),role:"combobox","aria-expanded":o.isOpen,"aria-haspopup":"listbox",onKeydown:s[10]||(s[10]=(...c)=>o.onControlKeydown&&o.onControlKeydown(...c)),onClick:s[11]||(s[11]=(...c)=>o.onControlClick&&o.onControlClick(...c)),"data-focus":o.isOpen||o.inputFocus?"true":"false",ref:o.setTriggerRef},[e.createElementVNode("div",Ls,[o.isMulti?(e.openBlock(),e.createElementBlock("div",Is,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.selectedOptions,c=>(e.openBlock(),e.createElementBlock("div",{key:c.id,class:"flex min-w-0 bg-[rgb(230,230,230)] rounded-[2px] m-[2px] box-border max-w-full"},[e.createElementVNode("div",Rs,[o.shouldShowColorDot(c)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[16px] h-[16px] rounded-md block ml-1.5 flex-shrink-0",style:e.normalizeStyle({backgroundColor:c?.color})},null,4)):e.createCommentVNode("",!0),!o.optionTemplate&&o.optionHasIcon(c)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(o.iconWrapperClass),style:e.normalizeStyle(o.getIconColorStyle(c)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.resolveOptionIcon(c)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"truncate text-[#172b4d] overflow-hidden max-w-[200px] px-0.5 pl-1.5",title:o.getLabel(c)},[o.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:o.renderTemplate(c)},null,8,zs)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(c.text),1)],64))],8,Os)]),e.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border text-[#172b4d] hover:bg-[rgb(255,189,173)] hover:text-[rgb(222,53,11)] flex-shrink-0",onClick:e.withModifiers(i=>o.onRemoveSelected(c.id),["stop"])},[e.createVNode(e.unref(z.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,Ps)]))),128)),e.createElementVNode("div",js,[!o.disabled&&o.search?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref:o.setInputRef,class:"w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900 hover:cursor-pointer",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:o.selectedIds.length?" ":o.placeholder,"onUpdate:modelValue":s[0]||(s[0]=c=>l.value=c),onFocus:s[1]||(s[1]=(...c)=>o.onInputFocus&&o.onInputFocus(...c)),onBlur:s[2]||(s[2]=(...c)=>o.onInputBlur&&o.onInputBlur(...c)),onKeydown:s[3]||(s[3]=(...c)=>o.onInputKeydown&&o.onInputKeydown(...c))},null,40,Us)),[[e.vModelText,l.value]]):e.createCommentVNode("",!0)])])):!o.isMulti&&o.selectedOptionLabel&&l.value===""?(e.openBlock(),e.createElementBlock("div",{key:1,class:"truncate text-gray-900 absolute inset-x-0 pl-2 flex items-center gap-1 min-w-0",title:o.selectedOptionLabel},[o.shouldShowColorDot(o.selectedOption)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[14px] h-[14px] rounded-md block flex-shrink-0",style:e.normalizeStyle({backgroundColor:o.selectedOption?.color})},null,4)):e.createCommentVNode("",!0),!o.optionTemplate&&o.optionHasIcon(o.selectedOption)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(o.iconWrapperClass),style:e.normalizeStyle(o.getIconColorStyle(o.selectedOption)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.resolveOptionIcon(o.selectedOption)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),o.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:2,class:"truncate flex-1 min-w-0",innerHTML:o.renderTemplate(o.selectedOption)},null,8,qs)):(e.openBlock(),e.createElementBlock("span",Ks,e.toDisplayString(o.selectedOption?.text),1))],8,Hs)):e.createCommentVNode("",!0),o.isMulti?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Ws,[!o.disabled&&o.search?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref:o.setInputRef,class:"w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900 hover:cursor-pointer",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:o.selectedOptionLabel?" ":o.placeholder,"onUpdate:modelValue":s[4]||(s[4]=c=>l.value=c),onFocus:s[5]||(s[5]=(...c)=>o.onInputFocus&&o.onInputFocus(...c)),onBlur:s[6]||(s[6]=(...c)=>o.onInputBlur&&o.onInputBlur(...c)),onKeydown:s[7]||(s[7]=(...c)=>o.onInputKeydown&&o.onInputKeydown(...c))},null,40,Gs)),[[e.vModelText,l.value]]):e.createCommentVNode("",!0)]))]),e.createElementVNode("div",Ys,[o.showClear?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:o.disabled,onClick:s[8]||(s[8]=e.withModifiers((...c)=>o.onClearSelected&&o.onClearSelected(...c),["stop"]))},[e.createVNode(e.unref(z.X),{class:"h-4 w-4"})],8,Xs)):e.createCommentVNode("",!0),o.showClear?(e.openBlock(),e.createElementBlock("div",Zs)):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:o.disabled,onClick:s[9]||(s[9]=e.withModifiers((...c)=>o.onToggleSelect&&o.onToggleSelect(...c),["stop"])),title:o.isOpen?"Закрити список":"Відкрити список"},[e.createVNode(e.unref(z.ChevronDown),{class:"h-4 w-4"})],8,Js)])],42,Ts))}}),ei=["aria-disabled","onMousedown"],ti={class:"leading-[19px]"},ni=["innerHTML"],oi={key:1,class:"px-3 py-2 text-center text-gray-500"},ri=e.defineComponent({__name:"vs-select-dropdown",props:{isOpen:{type:Boolean},dropdownStyle:{},filteredOptionsList:{},selectedNavIndex:{},optionTemplate:{},iconWrapperClass:{},setDropdownRef:{type:Function},setListRef:{type:Function},setItemRef:{type:Function},isSelected:{type:Function},onOptionClick:{type:Function},shouldShowColorDot:{type:Function},optionHasIcon:{type:Function},getIconColorStyle:{type:Function},resolveOptionIcon:{type:Function},renderTemplate:{type:Function}},setup(o){return(t,n)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[o.isOpen?(e.openBlock(),e.createElementBlock("div",{key:0,ref:o.setDropdownRef,class:"fixed z-[3000] rounded bg-white shadow-[0_0_0_1px_rgba(0,0,0,0.1),0_4px_11px_rgba(0,0,0,0.1)]",style:e.normalizeStyle(o.dropdownStyle),role:"listbox"},[e.createElementVNode("div",{class:"overflow-y-auto py-1",style:e.normalizeStyle({maxHeight:o.dropdownStyle.maxHeight||"300px"}),ref:o.setListRef},[o.filteredOptionsList.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(o.filteredOptionsList,(r,l)=>(e.openBlock(),e.createElementBlock("div",{key:r.id,ref_for:!0,ref:a=>o.setItemRef(a,l),class:e.normalizeClass(["flex px-3 py-2 gap-2 cursor-pointer select-none text-gray-900",o.isSelected(r.id)?"bg-[#2684ff] text-white":"bg-white hover:bg-[#deebff] hover:text-[#172b4d]",o.selectedNavIndex===l&&!o.isSelected(r.id)?"bg-[#deebff] text-[#172b4d]":""]),"aria-disabled":o.isSelected(r.id)?"true":"false",role:"option",tabindex:"-1",onMousedown:e.withModifiers(a=>o.onOptionClick(r),["prevent","stop"])},[o.shouldShowColorDot(r)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[11px] h-[11px] rounded-full block flex-shrink-0",style:e.normalizeStyle({backgroundColor:r?.color})},null,4)):e.createCommentVNode("",!0),!o.optionTemplate&&o.optionHasIcon(r)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(o.iconWrapperClass),style:e.normalizeStyle(o.getIconColorStyle(r)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.resolveOptionIcon(r)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),e.createElementVNode("div",ti,[o.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:o.renderTemplate(r)},null,8,ni)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(r.text),1)],64))])],42,ei))),128)):(e.openBlock(),e.createElementBlock("div",oi," No options "))],4)],4)):e.createCommentVNode("",!0)]))}}),li=["disabled"],Lo="w-[16px] h-[16px] flex items-center justify-center flex-shrink-0 text-current",Xn=xe(e.defineComponent({__name:"vs-input-select",props:{multiple:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},mode:{},defaultValue:{},search:{type:Boolean,default:!0},placeholder:{default:"Оберіть значення"},prefix:{default:"api"},host:{default:""},data:{default:""},options:{default:()=>[]},api:{default:null},maxHeight:{default:400},parent:{},set:{},slot:{},add:{},teleport:{default:"body"},auto:{default:0},start:{default:0},style:{default:()=>({})},customClass:{default:""},modelValue:{},error:{default:null},name:{},maxlength:{},minlength:{}},emits:["change","update:modelValue","value-selected"],setup(o,{emit:t}){const n=o,r=t,l=e.computed(()=>n.multiple),a=e.computed(()=>n.disabled),s=e.computed(()=>n.search);ze(n.style);const c=e.computed({get:()=>n.modelValue,set:R=>r("update:modelValue",R)});!c.value&&n.defaultValue&&(c.value=n.defaultValue);const i=e.ref(null),d=e.ref(null),u=e.ref(null),f=e.ref(null),h=e.ref(!1),x=e.ref(!1),m=e.ref(null),k=e.ref(-1),y=e.ref([]),v=e.ref(""),b=e.ref(null),w=R=>{d.value=R},V=R=>{b.value=R},O=R=>{f.value=R},Y=R=>{u.value=R},L=(R,oe)=>{y.value[oe]=R},_=e.ref({}),S=e.ref([]),$=e.computed(()=>{if(!S.value.length)return[];const R=ye.value,oe=new Map(R.map(de=>[de.id?.toString(),de]));return S.value.map(de=>oe.get(de?.toString())).filter(de=>!!de)}),B=e.computed(()=>n.placeholder||"Select..."),N=e.computed(()=>re(m.value)),I=e.computed(()=>a.value?!1:l.value?S.value.length>0:!!c.value),E=R=>l.value?S.value.some(oe=>oe?.toString()===R?.toString()):c.value?.toString()===R?.toString(),M=e.computed(()=>{let R=ye.value??[];if(!n.data&&v.value.trim()!==""){const oe=v.value.toLowerCase();R=R.filter(de=>{const Ve=re(de).toLowerCase(),Me=de.text?.toLowerCase?.()||"";return Ve.includes(oe)||Me.includes(oe)})}if(l.value&&S.value.length){const oe=new Set(S.value.map(de=>de?.toString()));R=R.filter(de=>!oe.has(de.id?.toString()))}return R}),D=e.inject("values"),K=e.inject("field-props"),W=e.computed(()=>n.slot??n?.optionTemplate??""),X=R=>mn(R,W.value),re=R=>hn(R,W.value),ve=e.computed(()=>un(W.value)),ge=R=>Kt(R),te=R=>!!(!ve.value&&Bt(R)&&!ge(R)),se=R=>{const oe=Bt(R);return oe?{color:oe}:void 0},we=R=>!!(!ve.value&&(qt(R)||ge(R))),J=(R,oe,de)=>{if(!K)return!1;const Ve=K.value?.[R]??{},Me=(De,tt,ct)=>{if(!tt.length)return De;const[dt,...bt]=tt,at={...De};if(!bt.length)return at[dt]=ct,at;const sn=typeof De[dt]=="object"&&De[dt]!==null?De[dt]:{};return at[dt]=Me(sn,bt,ct),at},He=Me(Ve,oe,de);return K.value={...K.value||{},[R]:He},!0},ue=R=>{if(!n.set)return;const oe=D?.value;!oe&&!K||Object.entries(n.set).forEach(([de,Ve])=>{if(!de)return;const Me=R?R[Ve]:null,He=de.split(".").map(ct=>ct.trim()).filter(Boolean);if(!He.length)return;const[De,...tt]=He;tt.length&&J(De,tt,Me??null)||oe&&(oe[De]=Me??null)})},{optionsList:ye,parentValue:_e,fetchOptions:Ae,fetchOptionByValue:Re,loadOptions:Fe}=fn({props:n,formValues:D,watchParent:!1}),Be=R=>R==null?"":String(R),P=R=>{if(l.value){if(!S.value.length){ye.value=R;return}}else if(!m.value){ye.value=R;return}const oe=new Set(R.map(Ve=>Be(Ve.id)).filter(Boolean));if(l.value){const Ve=new Set(S.value.map(He=>Be(He)).filter(Boolean)),Me=(ye.value??[]).filter(He=>{const De=Be(He.id);return!De||!Ve.has(De)?!1:!oe.has(De)});ye.value=[...Me,...R];return}const de=Be(m.value?.id);if(de&&!oe.has(de)){ye.value=[m.value,...R];return}ye.value=R},Z=e.ref(0),ne=async R=>{const oe=++Z.value,de=await Ae(R);return oe!==Z.value?null:de},ce=async()=>{if(n.data){const R=await ne(v.value);return R&&P(R),ye.value}return Fe()},me=async R=>{if(R==null||R==="")return null;const oe=ye.value?.find(de=>de?.id?.toString()===String(R));return oe||Re(R)},$e=async R=>{const oe=new Set(ye.value.map(Ve=>Ve.id?.toString())),de=R.filter(Ve=>!oe.has(Ve?.toString()));de.length&&await de.reduce(async(Ve,Me)=>{await Ve;const He=await me(Me);He&&ye.value.push(He)},Promise.resolve())},Ne=()=>{if(!M.value.length){k.value=-1;return}let R=0;if(!l.value&&m.value){const oe=m.value.id?.toString(),de=M.value.findIndex(Ve=>Ve.id?.toString()===oe);de>=0&&(R=de)}k.value=R,e.nextTick(()=>{q(y.value[R],u.value)})},Se=async()=>{a.value||(h.value=!0,await ce(),await e.nextTick(()=>{ie(),b.value?.focus()}),Ne())},Le=()=>{h.value=!1,k.value=-1,e.nextTick(()=>{b.value?.blur()})},ee=async R=>{if(a.value)return;(R!==void 0?R:!h.value)?await Se():Le()},ae=async()=>{if(!a.value){if(h.value){Le();return}await Se()}},Oe=()=>{l.value?(S.value=[],c.value=[],r("change",[]),U(null,[])):(m.value=null,c.value=null,r("change",null),U(null,null)),ue(null),v.value="",e.nextTick(()=>{b.value?.focus(),h.value||Se()})},j=R=>{l.value&&(S.value=S.value.filter(oe=>oe?.toString()!==R?.toString()),c.value=[...S.value],r("change",c.value),U(null),e.nextTick(()=>b.value?.focus()))},U=(R,oe)=>{const de=oe??(l.value?[...S.value]:R?.id??null);r("value-selected",{name:n.name,value:de,option:R})},H=R=>{l.value?(E(R.id)||(S.value=[...S.value,R.id],c.value=[...S.value],r("change",c.value),U(R)),v.value="",e.nextTick(()=>{b.value?.focus(),k.value=Math.min(k.value,M.value.length-1)}),ue(null)):(m.value=R,c.value=R.id,r("change",c.value),U(R),v.value="",Le(),ue(R))},F=R=>{if(E(R.id)){l.value||Le();return}H(R)},q=(R,oe)=>{if(!R||!oe)return;const de=R.offsetTop,Ve=de+R.offsetHeight,Me=oe.scrollTop,He=Me+oe.clientHeight;let De=oe.scrollTop;de<Me?De=de-80:Ve>He&&(De=Ve-oe.clientHeight+4);const tt=oe;tt.scrollTop=De},Q=R=>{let oe=R.parentElement;for(;oe;){if(oe.classList.contains("ui-dialog__content"))return oe;const de=window.getComputedStyle(oe),Ve=de.overflow+de.overflowY+de.overflowX;if(Ve.includes("auto")||Ve.includes("scroll")||oe===document.body||oe===document.documentElement)return oe;oe=oe.parentElement}return document.body},ie=()=>{if(!d.value)return;const R=d.value.getBoundingClientRect(),oe=window.innerHeight||document.documentElement.clientHeight,de=window.innerWidth||document.documentElement.clientWidth,Ve=8,Me=8,He=n.maxHeight||300,De=oe-R.bottom-Me-Ve,tt=R.top-Me-Ve,ct=De>=tt,dt=Math.max(de-Ve*2,0);let{width:bt}=R;dt>0&&bt>dt&&(bt=dt);let{left:at}=R;at+bt+Ve>de&&(at=de-bt-Ve),at=Math.max(at,Ve);const sn=Math.min(He,Math.max(ct?De:tt,50));_.value={position:"fixed",left:`${at}px`,width:`${bt}px`,maxHeight:`${sn}px`,transform:ct?"none":"translateY(-100%)",top:ct?`${R.bottom+Me}px`:`${R.top-Me}px`}},Ee=async R=>{a.value||!h.value&&(R.key==="ArrowDown"||R.key==="ArrowUp")&&(R.preventDefault(),await Se())},et=R=>{if(!h.value)return;const{key:oe}=R;if(oe==="ArrowDown")R.preventDefault(),k.value+1<M.value.length&&(k.value+=1,q(y.value[k.value],u.value));else if(oe==="ArrowUp")R.preventDefault(),k.value>0&&(k.value-=1,q(y.value[k.value],u.value));else if(oe==="Enter"){R.preventDefault();const de=M.value[k.value];de&&H(de),b.value?.blur()}else oe==="Escape"?(R.preventDefault(),Le()):oe==="Backspace"?l.value&&v.value===""&&S.value.length&&(S.value=S.value.slice(0,-1),c.value=[...S.value],r("change",c.value)):oe==="Home"?(k.value=0,q(y.value[0],u.value)):oe==="End"?(k.value=M.value.length-1,q(y.value[k.value],u.value)):oe==="Tab"&&Le()},Ge=()=>{a.value||(x.value=!0)},vt=()=>{x.value=!1,v.value=""},qe=R=>{R.key==="Escape"&&h.value&&Le()},Ke=R=>{const oe=R.target;i.value?.contains(oe)||f.value?.contains(oe)||Le()},gt=R=>{h.value&&u.value&&!u.value.contains(R.target)&&ie()},it=()=>{h.value&&ie()},jt=()=>{h.value&&ie()};async function At(){if(l.value)Array.isArray(c.value)?S.value=[...c.value]:(S.value=c.value==null?[]:[c.value],c.value=[...S.value]),n.data&&S.value.length&&(await $e(S.value),await e.nextTick());else{if(Array.isArray(c.value)){const R=c.value[0]??null;c.value=R??null}c.value!=null&&(m.value=await me(c.value)),ue(m.value??null)}}e.watch(c,()=>{At()}),e.onMounted(async()=>{if(addEventListener("keydown",qe),addEventListener("scroll",gt,!0),addEventListener("resize",it),document.addEventListener("click",Ke,!0),d.value&&Q(d.value).addEventListener("scroll",jt,!0),n.options?.length&&!n.data)ye.value=[...n.options];else if(n.data){const R=await ne("");R&&P(R)}await At(),Ft.value=!1}),e.onUnmounted(()=>{removeEventListener("keydown",qe),removeEventListener("scroll",gt,!0),removeEventListener("resize",it),document.removeEventListener("click",Ke,!0),d.value&&Q(d.value).removeEventListener("scroll",jt,!0)});const{isOpenAdd:ln,addData:yt,addSchema:Rt,addForm:bo,addTitle:Et,addOption:ko,onAddValue:Ut}=To({props:n,fetchOptionByValue:Re,optionsList:ye,selectedOption:m,modelValue:c});function lt(R,oe=200){let de;return(...Ve)=>{de&&clearTimeout(de),de=window.setTimeout(()=>R(...Ve),oe)}}const an=lt(async R=>{const oe=await ne(R);oe&&P(oe)},200);e.watch(v,R=>{n.data&&an(R.trim())}),e.watch(()=>n.options,R=>{!n.data&&R?.length&&(ye.value=[...R],At())},{immediate:!0});const Ft=e.ref(!0);return e.watch(_e,async()=>{if(n.data&&(Ft.value||(l.value?(S.value=[],c.value=[],r("change",[])):(m.value=null,c.value=null,r("change",null))),await ce(),n.auto===1&&_e.value&&ye.value.length>0)){const R=ye.value[0];R&&H(R)}}),(R,oe)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(he.VsModal),{visible:e.unref(ln),"onUpdate:visible":oe[1]||(oe[1]=de=>e.isRef(ln)?ln.value=de:null),class:"z-[1000]",title:e.unref(Et),buttonText:"Додати",onDone:e.unref(ko),teleport:o.teleport},{default:e.withCtx(()=>[e.createVNode(rt,{schema:e.unref(Rt),modelValue:e.unref(yt),"onUpdate:modelValue":oe[0]||(oe[0]=de=>e.isRef(yt)?yt.value=de:null),ref_key:"addForm",ref:bo},null,8,["schema","modelValue"])]),_:1},8,["visible","title","onDone","teleport"]),e.createElementVNode("div",{class:"flex gap-1 w-full",ref_key:"selectRoot",ref:i,onClick:oe[4]||(oe[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass])},[oe[5]||(oe[5]=e.createElementVNode("span",{id:"react-select-live-region",class:"sr-only"},null,-1)),oe[6]||(oe[6]=e.createElementVNode("span",{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text",role:"log",class:"sr-only"},null,-1)),e.createVNode(Qs,{keyWord:v.value,"onUpdate:keyWord":oe[2]||(oe[2]=de=>v.value=de),disabled:a.value,"is-open":h.value,"input-focus":x.value,"is-multi":l.value,"selected-options":$.value,"selected-ids":S.value,placeholder:B.value,search:s.value,"option-template":W.value,"icon-wrapper-class":Lo,"selected-option-label":N.value,"selected-option":m.value,"show-clear":I.value,"set-trigger-ref":w,"set-input-ref":V,"should-show-color-dot":te,"option-has-icon":we,"get-icon-color-style":se,"resolve-option-icon":ge,"render-template":X,"get-label":re,"on-control-keydown":Ee,"on-control-click":ae,"on-input-focus":Ge,"on-input-blur":vt,"on-input-keydown":et,"on-remove-selected":j,"on-clear-selected":Oe,"on-toggle-select":ee},null,8,["keyWord","disabled","is-open","input-focus","is-multi","selected-options","selected-ids","placeholder","search","option-template","selected-option-label","selected-option","show-clear"]),e.createVNode(ri,{"is-open":h.value,"dropdown-style":_.value,"filtered-options-list":M.value,"selected-nav-index":k.value,"option-template":W.value,"icon-wrapper-class":Lo,"set-dropdown-ref":O,"set-list-ref":Y,"set-item-ref":L,"is-selected":E,"on-option-click":F,"should-show-color-dot":te,"option-has-icon":we,"get-icon-color-style":se,"resolve-option-icon":ge,"render-template":X},null,8,["is-open","dropdown-style","filtered-options-list","selected-nav-index","option-template"])],2),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:oe[3]||(oe[3]=(...de)=>e.unref(Ut)&&e.unref(Ut)(...de)),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(z.Plus),{class:"h-4 w-4"}),oe[7]||(oe[7]=e.createElementVNode("span",null,"Додати",-1))],8,li)):e.createCommentVNode("",!0)],512)],64))}}),[["__scopeId","data-v-015d4cb0"]]),Zn=(o="")=>`${o}${Math.floor(Math.random()*1e4)}`,ai=["disabled","aria-expanded"],si={class:"truncate"},ii={class:"py-2 px-4"},ci={class:"block font-medium text-[13px] text-foreground"},di={class:"truncate"},ui={class:"p-1 border-t border-gray-200"},pi={class:"space-y-0.5 max-h-48 overflow-y-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-none [&::-webkit-scrollbar-track]:bg-scrollbar-track [&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb"},fi=["onClick"],mi=["checked"],hi={class:"shrink-0 size-3.5 flex justify-center items-center"},gi={key:1,class:"shrink-0 size-2 block mx-auto rounded-full bg-secondary/60"},yi={class:"truncate"},bi={key:0,class:"px-3 py-2 text-xs text-stone-500"},yn=e.defineComponent({__name:"vs-input-inline-select",props:{multiple:{type:Boolean},disabled:{type:Boolean,default:!1},mode:{},defaultValue:{},search:{type:Boolean},placeholder:{default:"Оберіть значення"},prefix:{default:"api"},host:{default:""},data:{default:""},options:{default:()=>[]},api:{default:null},maxHeight:{},parent:{},set:{},slot:{},add:{},teleport:{default:"body"},auto:{},start:{default:0},style:{default:()=>({})},customClass:{default:""},modelValue:{},error:{default:null},name:{},maxlength:{},minlength:{}},emits:["change","update:modelValue","value-selected"],setup(o,{emit:t}){const n=o,r=t;ze(n.style);const l=e.computed({get:()=>Array.isArray(n.modelValue)?n.modelValue[0]??null:n.modelValue??null,set:J=>r("update:modelValue",J)});l.value==null&&n.defaultValue!=null&&(l.value=n.defaultValue);const a=e.inject("values"),s=e.inject("field-props"),c=e.computed(()=>!!n.disabled),i=e.ref(null),d=e.ref(!1),u=e.ref(null),f=e.ref(null),h=e.ref(null),x=e.ref({}),m=`vs-input-inline-select-${Zn()}`,k=e.computed(()=>n.placeholder||"Оберіть значення"),y=e.computed(()=>O(i.value)||n.placeholder||"Оберіть значення"),v=e.computed(()=>n.slot??""),b=e.computed(()=>un(v.value)),w=e.computed(()=>n.teleport||"body"),V=/^#(?:[\da-fA-F]{3}|[\da-fA-F]{6}|[\da-fA-F]{8})$/,O=J=>hn(J,v.value),Y=J=>!!(!b.value&&Bt(J)),L=e.computed(()=>{const J=Bt(i.value).trim();return J?V.test(J)?`bg-[${J}] border-[${J}]`:`bg-${J.toLowerCase()}-500 border-${J.toLowerCase()}-500`:""}),{optionsList:_,parentValue:S,fetchOptions:$,fetchOptionByValue:B,loadOptions:N}=fn({props:n,formValues:a,watchParent:!1}),I=(J,ue,ye)=>{if(!s)return!1;const _e=s.value?.[J]??{},Ae=(Fe,Be,P)=>{if(!Be.length)return Fe;const[Z,...ne]=Be,ce={...Fe};if(!ne.length)return ce[Z]=P,ce;const me=typeof Fe[Z]=="object"&&Fe[Z]!==null?Fe[Z]:{};return ce[Z]=Ae(me,ne,P),ce},Re=Ae(_e,ue,ye);return s.value={...s.value||{},[J]:Re},!0},E=J=>{if(!n.set)return;const ue=a?.value;!ue&&!s||Object.entries(n.set).forEach(([ye,_e])=>{if(!ye)return;const Ae=J?J[_e]:null,Re=ye.split(".").map(P=>P.trim()).filter(Boolean);if(!Re.length)return;const[Fe,...Be]=Re;Be.length&&I(Fe,Be,Ae??null)||ue&&(ue[Fe]=Ae??null)})},M=J=>l.value?.toString?.()===J?.toString?.(),D=()=>{if(!f.value||typeof window>"u")return;const J=f.value.getBoundingClientRect(),ue=8,ye=8,_e=window.innerHeight||document.documentElement.clientHeight,Ae=window.innerWidth||document.documentElement.clientWidth,Re=h.value?.offsetHeight||260,Fe=Math.max(J.width,176),Be=Math.max(Ae-ue*2,120),P=Math.min(Fe,Be);let Z=J.left;Z+P+ue>Ae&&(Z=Ae-P-ue),Z=Math.max(Z,ue);const ne=_e-J.bottom-ye-ue,ce=J.top-ye-ue,me=ne<Math.min(Re,260)&&ce>ne,$e=Math.max(120,Math.min(320,me?ce:ne));x.value={position:"fixed",left:`${Z}px`,top:me?`${J.top-ye}px`:`${J.bottom+ye}px`,transform:me?"translateY(-100%)":"none",width:`${P}px`,maxHeight:`${$e}px`}},K=async()=>{if(n.data){_.value=await $("");return}await N()},W=async()=>{if(l.value==null||l.value===""){i.value=null,E(null);return}const J=_.value.find(ue=>ue.id?.toString()===String(l.value));if(J){i.value=J,E(J);return}i.value=await B(l.value),E(i.value??null)},X=async()=>{c.value||(d.value=!0,await K(),await e.nextTick(),D())},re=()=>{d.value=!1},ve=async()=>{if(d.value){re();return}await X()},ge=J=>{r("value-selected",{name:n.name,value:J?.id??null,option:J})},te=J=>{i.value=J,l.value=J.id,r("change",J.id),ge(J),E(J),re()},se=J=>{const ue=J.target;u.value?.contains(ue)||h.value?.contains(ue)||re()},we=()=>{d.value&&D()};return e.watch(()=>n.options,J=>{n.data||(_.value=J?[...J]:[],W())},{immediate:!0,deep:!0}),e.watch(l,()=>{W()}),e.watch(S,async()=>{n.data&&(await K(),i.value&&!_.value.some(J=>J.id?.toString()===i.value?.id?.toString())&&(i.value=null,l.value=null,r("change",null),ge(null),E(null)))}),e.onMounted(async()=>{document.addEventListener("click",se,!0),window.addEventListener("resize",we),window.addEventListener("scroll",we,!0),await K(),await W()}),e.onUnmounted(()=>{document.removeEventListener("click",se,!0),window.removeEventListener("resize",we),window.removeEventListener("scroll",we,!0)}),(J,ue)=>(e.openBlock(),e.createElementBlock("div",{class:"relative inline-flex w-full max-w-full",ref_key:"rootRef",ref:u,onClick:ue[0]||(ue[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("button",{ref_key:"triggerRef",ref:f,type:"button",disabled:c.value,"aria-expanded":d.value?"true":"false","aria-haspopup":"menu",class:e.normalizeClass(["py-1.5 px-2.5 inline-flex items-center gap-2 text-nowrap text-xs sm:text-[13px] rounded-lg focus:outline-hidden disabled:opacity-50 disabled:pointer-events-none max-w-full border",L.value?`${L.value} text-white`:"bg-secondary text-secondary-foreground hover:bg-secondary-hover focus:bg-secondary-focus border-gray-300 hover:border-gray-400"]),onClick:ve},[e.createElementVNode("span",si,e.toDisplayString(y.value),1)],10,ai),(e.openBlock(),e.createBlock(e.Teleport,{to:w.value},[d.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:h,class:"z-[3000] w-44 transition-[opacity,margin] duration-150 bg-white text-gray-900 border border-gray-200 rounded-xl shadow-lg",style:e.normalizeStyle(x.value),role:"menu","aria-orientation":"vertical"},[e.createElementVNode("div",ii,[e.createElementVNode("span",ci,[e.createElementVNode("span",di,e.toDisplayString(k.value),1)])]),e.createElementVNode("div",ui,[e.createElementVNode("div",pi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(_),ye=>(e.openBlock(),e.createElementBlock("label",{key:ye.id,class:"py-1.5 px-3 group flex items-center gap-x-3 rounded-lg cursor-pointer text-[13px] text-gray-800 hover:bg-gray-100",onClick:e.withModifiers(_e=>te(ye),["prevent"])},[e.createElementVNode("input",{type:"radio",class:"hidden",name:m,checked:M(ye.id),tabindex:"-1"},null,8,mi),e.createElementVNode("span",hi,[Y(ye)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"shrink-0 size-2 block mx-auto rounded-full",style:e.normalizeStyle({backgroundColor:ye.color})},null,4)):(e.openBlock(),e.createElementBlock("span",gi))]),e.createElementVNode("span",yi,e.toDisplayString(O(ye)),1),e.createVNode(e.unref(z.Check),{class:e.normalizeClass(["shrink-0 size-3.5 ms-auto transition-opacity",M(ye.id)?"opacity-100":"opacity-0"])},null,8,["class"])],8,fi))),128))]),e.unref(_).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",bi,"Немає варіантів"))])],4)):e.createCommentVNode("",!0)],8,["to"]))],512))}}),ki=["placeholder","disabled"],Io=e.defineComponent({__name:"vs-input-textarea",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=ze(t.style),r=e.useModel(o,"modelValue"),l=e.computed(()=>!!t.disabled),a=e.computed(()=>t.placeholder??"");function s(){typeof r.value=="string"&&(r.value=r.value.trim())}return(c,i)=>e.withDirectives((e.openBlock(),e.createElementBlock("textarea",{"onUpdate:modelValue":i[0]||(i[0]=d=>r.value=d),placeholder:a.value,disabled:l.value,row:"2",onBlur:s,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] h-auto bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"}},null,42,ki)),[[e.vModelText,r.value]])}}),Ro=e.defineComponent({__name:"vs-input-richtext",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{},format:{default:"html"},richtextProps:{default:()=>({})}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=e.defineAsyncComponent(()=>Promise.resolve().then(()=>f0)),n=o,{inputClass:r}=ze(n.style),l=e.useModel(o,"modelValue"),a=e.computed(()=>!!n.disabled),s=e.computed(()=>n.placeholder??""),c=e.computed(()=>({height:n.richtextProps.height||"300px",format:n.format,...n.richtextProps}));return(i,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["!h-full",[o.customClass,e.unref(r)]]),style:e.normalizeStyle(a.value?{pointerEvents:"none",opacity:.6}:{})},[e.createVNode(e.unref(t),e.mergeProps({modelValue:l.value,"onUpdate:modelValue":d[0]||(d[0]=u=>l.value=u),placeholder:s.value},c.value),null,16,["modelValue","placeholder"])],6))}}),xi={},wi={viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Ci(o,t){return e.openBlock(),e.createElementBlock("svg",wi,[...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 vi=xe(xi,[["render",Ci]]),Ei={class:"bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden flex flex-col"},_i={key:0,class:"flex flex-col gap-2 !p-4 border-b border-gray-200 md:flex-row md:items-center md:justify-between bg-gray-50"},Bi={key:0,class:"relative flex-1 min-w-0"},Vi={class:"flex flex-nowrap items-center justify-end gap-2 shrink-0"},Si={class:"w-full overflow-x-auto"},$i={class:"w-full min-w-[640px] table-auto divide-y divide-gray-200"},Ni={class:"bg-gray-50"},Ai={class:"border-b border-gray-200"},Fi={class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 w-12 text-center"},Mi=["onClick"],Di={key:0,class:"text-gray-400"},Ti={key:0,colspan:"100%",class:"text-center"},Li={class:"w-full"},Ii={class:"p-5 min-h-[200px] flex flex-col justify-center items-center text-center"},Ri=["onDragstart","onDragover","onDrop"],Oi={class:"px-4 py-3 text-center align-middle"},zi={class:"flex items-center justify-center"},Pi=["innerHTML"],ji={key:0,class:"flex items-center gap-3 text-sm text-gray-700"},Ui={key:0},Hi=["src"],qi={key:1,class:"rounded-md max-w-[45px] w-[45px] max-h-[45px] h-[45px] bg-gray-200 flex items-center justify-center"},Ki={key:1,class:"flex items-center justify-center"},Wi={key:2,class:"text-sm font-medium text-gray-900"},Gi={class:"px-4 py-3 text-right whitespace-nowrap"},Yi={class:"flex items-center justify-end gap-2"},Xi=["onClick"],Zi=["onClick"],Ji={class:"vs-form__head mr-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},Oo=e.defineComponent({__name:"vs-input-datatable",props:e.mergeModels({actions:{},colModel:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useSlots(),r=P=>t.actions===void 0?!0:t.actions.includes(P),l=["search","import","export","add"],a=e.computed(()=>l.some(P=>r(P))),s=e.useModel(o,"modelValue"),c=e.ref({}),i=e.ref(""),d=e.ref(null),u=e.ref("asc"),f=e.computed(()=>{const P=s.value??[],Z=i.value?P.filter(me=>h.value?.some($e=>{const Ne=$e.key||$e.name;if(!Ne)return!1;const Se=me[Ne];return Se?Array.isArray(Se)?Se.join(", ").toLowerCase().includes(i.value.toLowerCase()):String(Se).toLowerCase().includes(i.value.toLowerCase()):!1})):P;if(!d.value)return Z;const ne=d.value,ce=[...Z].sort((me,$e)=>{const Ne=se(me?.[ne]),Se=se($e?.[ne]);return typeof Ne=="number"&&typeof Se=="number"?Ne-Se:String(Ne).localeCompare(String(Se))});return u.value==="asc"?ce:ce.reverse()}),h=e.computed(()=>(t.colModel??[]).filter(P=>!P.tableHidden)),x=e.ref(null),m=e.ref(null),k=e.ref(null),y=P=>{x.value=P},v=P=>{m.value=P},b=P=>{if(x.value===null||x.value===P){x.value=null,m.value=null;return}const Z=[...s.value],[ne]=Z.splice(x.value,1);Z.splice(P,0,ne),s.value=Z,x.value=null,m.value=null},w=()=>{k.value&&k.value.click()},V=P=>{const Z=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".ico",".tiff",".tif"],ne=P.toLowerCase();return Z.some(ce=>ne.endsWith(ce))},O=P=>{const ne=P.target.files?.[0];if(!ne)return;const ce=new FileReader;ce.onload=me=>{try{const $e=me.target?.result;if(typeof $e=="string"){const Ne=JSON.parse($e);Array.isArray(Ne)&&s.value.push(...Ne)}}catch($e){console.error("Error parsing file:",$e)}},ce.readAsText(ne)},Y=()=>{const P=JSON.stringify(s.value,null,2),Z=new Blob([P],{type:"application/json"}),ne=URL.createObjectURL(Z),ce=document.createElement("a");ce.href=ne,ce.download="data.json",ce.click(),URL.revokeObjectURL(ne)},L=new Set(["autocomplete","select","radio","checkbox","combobox"]),_=new Map,S=(P,Z)=>{const ne=`/api/suggest/${P}`,ce=ne.includes("?")?"&":"?",me=Z?`&val=${Z}`:"";return`${ne}${ce}json=1${me}`},$=P=>P==null||P===""?null:typeof P=="object"?P?.id!==void 0&&P.id!==null&&P.id!==""?P.id:null:P,B=P=>{const Z=new Set;return Array.isArray(s.value)&&s.value.forEach(ne=>{const ce=ne?.[P];if(ce==null||ce==="")return;if(Array.isArray(ce)){ce.forEach($e=>{const Ne=$($e);Ne!==null&&Z.add(Ne)});return}const me=$(ce);me!==null&&Z.add(me)}),Z},N=async()=>{if(!t.colModel?.length)return;const P=t.colModel.filter(Z=>Z.data&&L.has(Z.type?.toLowerCase()||""));P.length&&await Promise.all(P.map(async Z=>{const ne=Z.key||Z.name;if(!ne)return;const ce=B(ne),me=Array.from(ce).map(Se=>String(Se)).sort(),$e=me.join(",");if(!me.length||_.get(ne)===$e)return;_.set(ne,$e);const Ne=me.map(encodeURIComponent).join(",");try{const Le=await(await fetch(S(Z.data,Ne))).json();c.value[ne]=Le?.data??Le}catch(Se){console.error("Failed to fetch column values",Se)}}))};e.watch([()=>t.colModel,()=>s.value],()=>{N()},{immediate:!0,deep:!0});const I=e.ref(""),E=e.ref(!1);let M="edit",D=0;const K=P=>(P?.format||P?.type||"").toString().toLowerCase(),W=e.computed(()=>(t.colModel?.filter(Z=>K(Z)!=="slot")??[]).map(Z=>{const ne=Z.key||Z.name;return ne?{...Z,name:ne,key:ne}:Z})),X=e.ref({}),re=e.ref({}),ve=P=>typeof P!="string"?!1:!!n[P],ge=(P,Z)=>Z?Z.split(".").reduce((ne,ce)=>ne==null?ne:ne[ce.trim()],P):P,te=(P,Z)=>typeof P!="string"?"":P.replace(/{{\s*([^}]+)\s*}}/g,(ne,ce)=>{const me=ge(Z,ce.trim());return me??""}),se=P=>{if(P==null||P==="")return"";if(typeof P=="number")return P;if(typeof P=="boolean")return P?1:0;if(typeof P=="string")return P.toLowerCase();if(Array.isArray(P))return P.map(Z=>se(Z)).join(", ");if(typeof P=="object"){if(P.text!==void 0)return String(P.text).toLowerCase();if(P.label!==void 0)return String(P.label).toLowerCase();if(P.id!==void 0)return String(P.id).toLowerCase()}return String(P).toLowerCase()},we=P=>{const Z=P.key||P.name;if(Z){if(d.value===Z){u.value=u.value==="asc"?"desc":"asc";return}d.value=Z,u.value="asc"}};async function J(){I.value="Додати",E.value=!0,M="add",X.value={}}function ue(P,Z){if(!P?.length)return null;const ne=typeof Z=="object"?Z?.id:Z;return ne==null||ne===""?null:P.find(ce=>ce?.id?.toString()===ne.toString())?.text??null}function ye(P){return P==null||P===""?"-":Array.isArray(P)?P.map(Z=>typeof Z=="object"?Z?.text??Z?.id??"-":Z).join(", "):typeof P=="object"?P?.text??P?.id??"-":P}function _e(P,Z){const ne=Z.key||Z.name,ce=P?.[ne],me=c.value[ne];if(!ce)return"-";if(Array.isArray(ce)){const Ne=ce.map(Se=>ue(me,Se)).filter(Boolean);return Ne.length?Ne.join(", "):ye(ce)}const $e=ue(me,ce);return $e||ye(ce)}async function Ae(P,Z){I.value="Редагувати",E.value=!0,M="edit",D=Z,X.value={...P}}function Re(){const P=re.value.validate();if(P){he.notify({type:"warning",title:"Помилка валідації",message:Object.entries(P).map(([Z,ne])=>`${Z}: ${ne}`).join(`
|
|
2
|
-
`)});return}M==="add"?Array.isArray(s.value)?s.value=[...s.value,X.value]:s.value=[X.value]:s.value=s.value.map((Z,ne)=>ne===D?X.value:Z),E.value=!1}function Fe(P){s.value=s.value.filter((Z,ne)=>ne!==P)}function Be(){E.value=!1}return(P,Z)=>(e.openBlock(),e.createElementBlock("div",Ei,[a.value?(e.openBlock(),e.createElementBlock("div",_i,[r("search")?(e.openBlock(),e.createElementBlock("div",Bi,[e.createVNode(e.unref(z.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":Z[0]||(Z[0]=ne=>i.value=ne),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",Vi,[r("import")?(e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"fileInput",ref:k,onChange:O,class:"hidden",accept:".json",type:"file"},null,544)):e.createCommentVNode("",!0),r("import")?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",onClick:w,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(z.Upload),{class:"h-4 w-4 text-gray-700"}),Z[4]||(Z[4]=e.createTextVNode(" Імпорт ",-1))])):e.createCommentVNode("",!0),r("export")?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:Y,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(z.Download),{class:"h-4 w-4 text-gray-700"}),Z[5]||(Z[5]=e.createTextVNode(" Експорт ",-1))])):e.createCommentVNode("",!0),r("add")?(e.openBlock(),e.createElementBlock("button",{key:3,onClick:J,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(z.Plus),{class:"h-4 w-4 text-white"}),Z[6]||(Z[6]=e.createTextVNode(" Додати ",-1))])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),e.createElementVNode("div",Si,[e.createElementVNode("table",$i,[e.createElementVNode("thead",Ni,[e.createElementVNode("tr",Ai,[e.createElementVNode("th",Fi,[e.createVNode(e.unref(z.GripVertical),{class:"mx-auto h-4 w-4 text-gray-400"})]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,ne=>(e.openBlock(),e.createElementBlock("th",{key:ne.key,class:"px-4 py-3 text-left text-xs font-semibold text-gray-900"},[e.createElementVNode("button",{type:"button",onClick:ce=>we(ne),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(ne.ua||ne.label),1),d.value===(ne.key||ne.name)?(e.openBlock(),e.createElementBlock("span",Di,e.toDisplayString(u.value==="asc"?"▲":"▼"),1)):e.createCommentVNode("",!0)],8,Mi)]))),128)),Z[7]||(Z[7]=e.createElementVNode("th",{class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 text-center w-[1%] whitespace-nowrap"}," Дії ",-1))])]),e.createElementVNode("tbody",{class:e.normalizeClass(["divide-y divide-gray-200",{"[&_tr:last-child]:border-0":!m.value}])},[f.value.length===0?(e.openBlock(),e.createElementBlock("td",Ti,[e.createElementVNode("div",Li,[e.createElementVNode("div",Ii,[e.createVNode(vi,{class:"w-48 mx-auto"}),Z[8]||(Z[8]=e.createElementVNode("div",{class:"max-w-sm mx-auto mt-6"},[e.createElementVNode("p",{class:"font-medium text-gray-800 dark:text-neutral-200"},"Нічого не знайдено"),e.createElementVNode("p",{class:"mt-2 text-sm text-gray-500 dark:text-neutral-500"})],-1))])])])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,(ne,ce)=>(e.openBlock(),e.createElementBlock("tr",{key:ne.id,class:e.normalizeClass(["border-b transition-colors hover:bg-gray-50 cursor-move text-sm text-gray-700",{"opacity-50":x.value===ce,"border-t-2 border-b-2 border-blue-500 bg-blue-50 dark:bg-blue-900/20":m.value===ce}]),draggable:"true",onDragstart:me=>y(ce),onDragover:e.withModifiers(me=>v(ce),["prevent"]),onDrop:me=>b(ce)},[e.createElementVNode("td",Oi,[e.createElementVNode("div",zi,[e.createVNode(e.unref(z.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(h.value,me=>(e.openBlock(),e.createElementBlock("td",{key:me.key,class:"px-4 py-3 align-middle"},[K(me)==="slot"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[ve(me.slot)?e.renderSlot(P.$slots,me.slot,{key:0,row:ne,value:ne[me.key],column:me}):(e.openBlock(),e.createElementBlock("div",{key:1,class:"text-sm text-gray-900",innerHTML:te(me.slot,ne)},null,8,Pi))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[K(me)==="file"?(e.openBlock(),e.createElementBlock("div",ji,[V(_e(ne,me))?(e.openBlock(),e.createElementBlock("div",Ui,[e.createElementVNode("img",{src:_e(ne,me),alt:"alt",width:"45",class:"rounded-md max-w-[45px] h-[45px] object-cover"},null,8,Hi)])):(e.openBlock(),e.createElementBlock("div",qi,[e.createVNode(e.unref(z.FileText),{class:"h-4 w-4 min-w-4"})]))])):K(me)==="color"?(e.openBlock(),e.createElementBlock("div",Ki,[e.createElementVNode("span",{class:"inline-flex h-6 w-6 rounded border border-gray-200",style:e.normalizeStyle({backgroundColor:_e(ne,me)||"#ffffff"})},null,4)])):(e.openBlock(),e.createElementBlock("div",Wi,e.toDisplayString(_e(ne,me)),1))],64))]))),128)),e.createElementVNode("td",Gi,[e.createElementVNode("div",Yi,[e.createElementVNode("button",{onClick:me=>Ae(ne,ce),class:"p-1.5 text-gray-600 hover:text-blue-600 hover:bg-blue-50 rounded transition-colors"},[e.createVNode(e.unref(z.Pencil),{class:"h-4 w-4"})],8,Xi),e.createElementVNode("button",{onClick:me=>Fe(ce),class:"p-1.5 text-gray-600 hover:text-red-600 hover:bg-red-50 rounded transition-colors"},[e.createVNode(e.unref(z.Trash2),{class:"h-4 w-4"})],8,Zi)])])],42,Ri))),128))],2)])]),e.createVNode(e.unref(he.VsModal),{visible:E.value,title:I.value,size:"lg",onClose:Be,teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(rt,{schema:W.value,"form-id":"datatable-row",values:X.value,"onUpdate:values":Z[1]||(Z[1]=ne=>X.value=ne),form:re.value,"onUpdate:form":Z[2]||(Z[2]=ne=>re.value=ne)},null,8,["schema","values","form"]),e.createElementVNode("div",Ji,[e.createElementVNode("button",{type:"button",onClick:Z[3]||(Z[3]=ne=>E.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:Re,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"])]))}}),Qi={},ec={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 tc(o,t){return e.openBlock(),e.createElementBlock("svg",ec,[...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 nc=xe(Qi,[["render",tc]]),oc={},rc={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 lc(o,t){return e.openBlock(),e.createElementBlock("svg",rc,[...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 ac=xe(oc,[["render",lc]]),sc={},ic={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 cc(o,t){return e.openBlock(),e.createElementBlock("svg",ic,[...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 dc=xe(sc,[["render",cc]]),uc={class:"bg-white/30 p-1 rounded-md shadow w-fit"},pc={class:"flex gap-2"},fc=["onClick","title"],mc=["src"],hc=e.defineComponent({__name:"map-layers",props:{basemaps:{}},emits:["onLayerChange"],setup(o,{emit:t}){const n=o,r=e.ref(Object.keys(n.basemaps)[0]),l=t;function a(i){l("onLayerChange",i),r.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 u=i.url;return Object.entries(d).forEach(([f,h])=>{u=u.replace(new RegExp(f,"gi"),String(h))}),u}return(i,d)=>(e.openBlock(),e.createElementBlock("div",uc,[e.createElementVNode("div",pc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.basemaps,(u,f)=>(e.openBlock(),e.createElementBlock("div",{key:f,class:e.normalizeClass(["cursor-pointer border rounded-lg overflow-hidden hover:shadow-sm",{"ring-2 ring-blue-500 border-blue-300":r.value===f}]),onClick:h=>a(f),title:u.name||f,role:"button",tabindex:"0"},[e.createElementVNode("img",{src:c(u),alt:"",class:"w-10 h-10 object-cover"},null,8,mc)],10,fc))),128))])]))}}),Dt=1e-10,bn=/([+-]?\d{1,3})\s*[°º˚]\s*(\d{1,2})\s*['’′`]\s*(\d{1,2}(?:\.\d+)?)\s*["”″]\s*([NSEW])/gi,gc=/^[+-]?\d+(?:\.\d+)?$/;function yc(o,t,n){const r=o.split(/\r?\n/).map(d=>d.trim()).filter(Boolean);if(r.length<3)return{ok:!1,errors:[{line:0,message:"Має бути щонайменше 3 рядки координат."}]};if(r.length>100)return{ok:!1,errors:[{line:0,message:"Допускається не більше 100 рядків координат."}]};const l=[],a=[];if(r.forEach((d,u)=>{const f=u+1,h=t==="decimal"?bc(d,f,n):Po(d,f,n);if(!h.ok){l.push(...h.errors);return}const x=a[a.length-1];if(x&&Uo(x,h.point)){l.push({line:f,message:"Послідовні точки не повинні дублюватися."});return}a.push(h.point)}),l.length)return{ok:!1,errors:l};if(new Set(a.map(xc)).size<3)return{ok:!1,errors:[{line:0,message:"Полігон повинен містити мінімум 3 унікальні точки."}]};const c=[...a];let i=!1;return Uo(c[0],c[c.length-1])||(c.push(c[0]),i=!0),wc(c)?{ok:!1,errors:[{line:0,message:"Полігон має самоперетин."}]}:{ok:!0,ring:c,wasClosedAutomatically:i}}function bc(o,t,n){return zo(o,"decimal",n,t)}function zo(o,t,n,r=1){return t==="decimal"?kc(o,r,n):Po(o,r,n)}function kc(o,t,n){const r=[];if(/[A-Za-zА-Яа-яІіЇїЄєҐґ]/.test(o))return{ok:!1,errors:[{line:t,message:"У десятковому форматі не допускаються літери."}]};const l=o.split(/[\s,;]+/).filter(Boolean);if(l.length<2)return{ok:!1,errors:[{line:t,message:"Кожен рядок має містити дві координати."}]};if(l.length>2)return{ok:!1,errors:[{line:t,message:"У рядку дозволено лише одну пару координат."}]};if(!l.every(d=>gc.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)&&r.push({line:t,message:"Широта поза діапазоном (-90..90)."}),(i<-180||i>180)&&r.push({line:t,message:"Довгота поза діапазоном (-180..180)."}),r.length?{ok:!1,errors:r}:{ok:!0,point:[i,c]}}function Po(o,t,n){bn.lastIndex=0;const r=[...o.matchAll(bn)];if(r.length<2)return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати DMS-координати."}]};if(r.length>2)return{ok:!1,errors:[{line:t,message:"У рядку дозволено лише одну пару координат."}]};if(bn.lastIndex=0,o.replace(bn," ").replace(/[\s,;]+/g,"").trim().length)return{ok:!1,errors:[{line:t,message:"У рядку виявлено зайві символи або значення."}]};const a=jo(r[0],t,n==="lat-lon"?"lat":"lon"),s=jo(r[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 jo(o,t,n){const r=Number(o[1]),l=Number(o[2]),a=Number(o[3]),s=String(o[4]).toUpperCase();if(!Number.isFinite(r)||!Number.isFinite(l)||!Number.isFinite(a))return{ok:!1,error:{line:t,message:"Невірні значення DMS-координат."}};if(n==="lat"&&!(s==="N"||s==="S")||n==="lon"&&!(s==="E"||s==="W"))return{ok:!1,error:{line:t,message:n==="lat"?"Для широти напрям повинен бути N або S.":"Для довготи напрям повинен бути E або W."}};if(l<0||l>59)return{ok:!1,error:{line:t,message:"Хвилини повинні бути в діапазоні 0..59."}};if(a<0||a>60)return{ok:!1,error:{line:t,message:"Секунди повинні бути в діапазоні 0..60."}};const d=Math.abs(r),u=n==="lat"?90:180;if(d>u)return{ok:!1,error:{line:t,message:n==="lat"?"Градуси широти повинні бути в діапазоні 0..90.":"Градуси довготи повинні бути в діапазоні 0..180."}};if(d===u&&(l!==0||a!==0))return{ok:!1,error:{line:t,message:n==="lat"?"Для 90° широти хвилини й секунди мають бути 0.":"Для 180° довготи хвилини й секунди мають бути 0."}};const f=d+l/60+a/3600;return{ok:!0,value:s==="S"||s==="W"?-f:f}}function xc(o){return`${o[0].toFixed(12)}:${o[1].toFixed(12)}`}function Uo(o,t){return Math.abs(o[0]-t[0])<Dt&&Math.abs(o[1]-t[1])<Dt}function wc(o){if(o.length<4)return!1;for(let t=0;t<o.length-1;t+=1){const n=o[t],r=o[t+1];for(let l=t+1;l<o.length-1;l+=1){if(Math.abs(t-l)<=1||t===0&&l===o.length-2)continue;const a=o[l],s=o[l+1];if(Cc(n,r,a,s))return!0}}return!1}function Cc(o,t,n,r){const l=kn(o,t,n),a=kn(o,t,r),s=kn(n,r,o),c=kn(n,r,t);return!!(l!==a&&s!==c||l===0&&xn(o,n,t)||a===0&&xn(o,r,t)||s===0&&xn(n,o,r)||c===0&&xn(n,t,r))}function kn(o,t,n){const r=(t[1]-o[1])*(n[0]-t[0])-(t[0]-o[0])*(n[1]-t[1]);return Math.abs(r)<Dt?0:r>0?1:2}function xn(o,t,n){return t[0]<=Math.max(o[0],n[0])+Dt&&t[0]+Dt>=Math.min(o[0],n[0])&&t[1]<=Math.max(o[1],n[1])+Dt&&t[1]+Dt>=Math.min(o[1],n[1])}const vc=["title"],Ec={key:0,class:"vs-select__options absolute z-50 mt-1 w-auto min-w-full bg-white border border-gray-300 shadow-lg rounded-lg text-sm text-gray-900"},_c=["onClick"],Bc=["placeholder"],Vc={class:"absolute inset-y-0 right-2 flex items-center gap-1"},Sc={class:"flex items-center justify-between gap-2 px-3 py-2 border-b border-gray-100"},$c={class:"text-xs font-semibold uppercase tracking-wide text-gray-500"},Nc={class:"max-h-[260px] overflow-auto"},Ac={key:0,class:"divide-y divide-gray-100"},Fc=["onClick"],Mc={key:1,class:"px-3 py-3 text-xs text-gray-500"},Ho="formMapSearchAddressHistory",Dc=12,Tc="https://geo.rv.ua/api-user/dzk.api",Lc="https://nominatim.openstreetmap.org/search",Ic=xe(e.defineComponent({__name:"map-search",props:{config:{}},emits:["goToCoordinates"],setup(o,{emit:t}){const n={mounted(j,U){if(typeof document>"u")return;let H=null;const F=8,q=()=>{const ie=String(U?.value??"");if(!ie)return;H=document.createElement("div"),H.textContent=ie,Object.assign(H.style,{position:"absolute",background:"#333",color:"#fff",padding:"4px 8px",borderRadius:"4px",fontSize:"12px",whiteSpace:"nowrap",pointerEvents:"none",zIndex:"9999"}),document.body.appendChild(H);const Ee=j.getBoundingClientRect();H.style.left=`${Ee.right+window.scrollX+F}px`,H.style.top=`${Ee.top+window.scrollY+(Ee.height-H.offsetHeight)/2}px`},Q=()=>{H?.parentNode&&H.parentNode.removeChild(H),H=null};j.addEventListener("mouseenter",q),j.addEventListener("mouseleave",Q),Object.assign(j,{tooltipRightHandlers:{show:q,hide:Q}})},unmounted(j){if(typeof document>"u")return;const U=j.tooltipRightHandlers;U&&(j.removeEventListener("mouseenter",U.show),j.removeEventListener("mouseleave",U.hide))}},r=o,l=t,a=e.getCurrentInstance();function s(){return typeof globalThis<"u"&&globalThis.proxy?globalThis.proxy:typeof window<"u"&&window.proxy?window.proxy:null}function c(){const U=a?.appContext.config.globalProperties?.$settings?.map?.searchViewbox;if(U)return Array.isArray(U)?U.join(","):String(U);const F=s()?.map?.searchViewbox;if(F)return Array.isArray(F)?F.join(","):String(F)}function i(){const U=a?.appContext.config.globalProperties?.$settings?.map?.addressSuggest;if(typeof U=="string"&&U.trim())return U.trim();const F=s()?.map?.addressSuggest;if(typeof F=="string"&&F.trim())return F.trim()}const d=!!i(),u=!!c(),f=e.computed(()=>{const j=["nominatim","xy","parcel"];return d&&j.unshift("address"),u?j:j.filter(U=>U!=="nominatim")}),h=e.computed(()=>{const j=f.value,U=r.config?.tools?.filter(H=>j.includes(H));return U&&U.length?U:j}),x=e.computed(()=>r.config?.placeholder?.trim()||"Пошук…"),m=e.ref(h.value[0]);e.watch(h,j=>{j.includes(m.value)||(m.value=j[0])});const k=e.ref(""),y=e.ref(!1),v=e.ref(null),b=e.ref(null),w=e.ref(null),V=e.ref(null),O=e.ref([]),Y=e.ref(null),L=e.ref(!1),_=e.ref([]),S=e.computed(()=>(m.value==="address"||m.value==="nominatim")&&L.value),$=e.computed(()=>r.config?.addressDebounceMs??1e3);let B=null;const N=e.ref(!1),I=e.computed(()=>k.value.trim().length>0?O.value:_.value),E=e.computed(()=>k.value.trim().length?`Знайдено ${O.value.length}`:"Історія пошуку"),M=e.computed(()=>k.value.trim().length?"Нічого не знайдено":"Історія порожня");function D(){if(typeof window>"u")return[];try{const j=window.localStorage?.getItem?.(Ho);if(!j)return[];const U=JSON.parse(j);return Array.isArray(U)?U:[]}catch{return[]}}function K(j){typeof window>"u"||window.localStorage?.setItem?.(Ho,JSON.stringify(j))}function W(j){const H=[j,..._.value.filter(F=>F.id!==j.id)].slice(0,10);_.value=H,K(H)}const X=e.reactive({position:"absolute",left:"0px",top:"0px",width:"100%",display:"none"});function re(){if(!V.value)return;const j=V.value.getBoundingClientRect(),U=w.value?.getBoundingClientRect(),H=U?.width??j.width,F=(U?.left??j.left)+window.scrollX,q=j.bottom+window.scrollY+Dc;X.left=`${F}px`,X.top=`${q}px`,X.width=`${H}px`,X.display="block"}const ve=()=>{S.value&&re()};function ge(){B&&(clearTimeout(B),B=null)}e.watch(m,()=>{k.value="",y.value=!1,O.value=[],L.value=!1,ge(),N.value=!1}),e.watch(S,j=>{j?e.nextTick(()=>{re()}):X.display="none"}),e.watch(k,j=>{if(m.value!=="address"&&m.value!=="nominatim"){O.value=[],ge();return}if(!j.trim()){O.value=[],L.value=_.value.length>0,ge();return}ge(),L.value=!0,B=window.setTimeout(()=>{Ne(j).catch(U=>{const H=U?.message||"Помилка пошуку адреси";he.notify({type:"error",title:"Пошук адреси",message:H})})},$.value)});function te(j){const U=[];b.value&&U.push(b.value),j instanceof HTMLElement&&U.push(j),v.value?.querySelectorAll("li")?.forEach(F=>{U.push(F)}),U.forEach(F=>{F.dispatchEvent(new MouseEvent("mouseleave",{bubbles:!0}))})}function se(j){y.value&&te(j.target),y.value=!y.value}function we(j,U){te(U?.target),m.value=j}function J(){k.value="",O.value=[],L.value=!1,N.value=!1}function ue(j){const U=j.target;if(y.value){const H=v.value;H&&!H.contains(U)&&(te(U),y.value=!1)}if(S.value){const H=Y.value,F=V.value;H&&!H.contains(U)&&(!F||!F.contains(U))&&(L.value=!1)}}e.onMounted(()=>{_.value=D(),window.addEventListener("click",ue,!0),window.addEventListener("scroll",ve,!0),window.addEventListener("resize",ve)}),e.onBeforeUnmount(()=>{window.removeEventListener("click",ue,!0),window.removeEventListener("scroll",ve,!0),window.removeEventListener("resize",ve),ge()});function ye(j){return j==="xy"?"Координати":j==="parcel"?"Кадастр":j==="nominatim"?"Адреса":"Адресний"}function _e(j){switch(j){case"xy":return"Пошук за географічними координатами. Введіть широту і довготу через пробіл або кому (lat lng або lng lat).";case"parcel":return"Пошук земельної ділянки за кадастровим номером у форматі 0000000000:00:000:0000.";case"nominatim":return"Пошук адрес та обʼєктів через Nominatim.";case"address":return"Пошук адрес через локальний сервіс addressSuggest.";default:return""}}function Ae(j){const U=zo(j.trim(),"dms","lat-lon");if(U.ok){const[qe,Ke]=U.point;return{lat:Ke,lng:qe}}const H=j.replace(/[,]+/g," ").trim();if(!H)return null;const F=H.split(/\s+/).filter(Boolean);if(F.length<2)return null;const q=F.slice(0,2).map(Number);if(!q.every(qe=>Number.isFinite(qe)))return null;let[Q,ie]=q,Ee=Q,et=ie;const Ge=qe=>Math.abs(qe)<=90,vt=qe=>Math.abs(qe)<=180;if(!Ge(Ee)||!vt(et))if(Ge(et)&&vt(Ee))Ee=ie,et=Q;else return null;return{lat:Ee,lng:et}}function Re(j){const U=j?.result||j?.data||j;if(!U)return[];const H=U.geom_centroid;if(!H||!Array.isArray(H.coordinates))return[];const[F,q]=H.coordinates;return!Number.isFinite(q)||!Number.isFinite(F)?[]:[{id:"parcel",title:U.cadnum||U.cad_num||"Земельна ділянка",lat:q,lng:F}]}function Fe(j){return(Array.isArray(j?.features)?j.features:[]).map((H,F)=>{const q=H?.geometry?.coordinates,Q=Number(q?.[0]),ie=Number(q?.[1]);if(!Number.isFinite(ie)||!Number.isFinite(Q))return null;const Ee=H?.properties||{},et=Ee?.geocoding?.label||Ee?.display_name||Ee?.label||"Адреса";return{id:String(Ee?.geocoding?.place_id||Ee?.place_id||F),title:et,lat:ie,lng:Q}}).filter(H=>!!H)}function Be(j){return Number.isFinite(j.lat)&&Number.isFinite(j.lng)}function P(j){if(j==null||typeof j=="string"&&!j.trim())return null;const U=Number(j);return Number.isFinite(U)?U:null}function Z(j){const U=P(j.lng)??P(j.lon)??P(j.longitude)??P(j.x),H=P(j.lat)??P(j.latitude)??P(j.y);if(U!=null&&H!=null)return{lat:H,lng:U};const F=j?.geometry?.coordinates??j?.geom_centroid?.coordinates??j?.centroid?.coordinates??j?.geojson?.geometry?.coordinates??j?.geom?.coordinates;if(Array.isArray(F)&&F.length>=2){const q=P(F[0]),Q=P(F[1]);if(q!=null&&Q!=null)return{lat:Q,lng:q}}return null}function ne(j){return(Array.isArray(j?.data)?j.data:[]).map((H,F)=>{const q=Z(H),Q=String(H.text??H.title??H.label??H.name??H.address??H.display_name??H.id??"Адреса"),ie=String(H.id??H.code??H.value??F);return q?{id:ie,title:Q,...q}:{id:ie,title:Q}}).filter(H=>!!H?.title)}function ce(j){const U=i();if(!U)return null;if(U.includes(":name"))return U.replace(":name",encodeURIComponent(j));try{const H=new URL(U,window.location.origin);return j.trim()&&H.searchParams.set("q",j),H.toString()}catch{return U}}async function me(j){const U=ce(j);if(!U)return[];const H=await fetch(U);if(!H.ok)throw new Error(`HTTP ${H.status}`);const F=await H.json();return ne(F)}async function $e(j){const U=new URL(Lc);U.searchParams.set("format","geojson"),U.searchParams.set("q",j),U.searchParams.set("addressdetails","1"),U.searchParams.set("bounded","1");const H=c();H&&U.searchParams.set("viewbox",H);const F=await fetch(U.toString());if(!F.ok)throw new Error(`HTTP ${F.status}`);const q=await F.json();return Fe(q)}async function Ne(j){if(O.value=[],ge(),m.value==="address"){if(!i()){he.notify({type:"warning",title:"Пошук адреси",message:"Не налаштовано addressSuggest"});return}const F=await me(j);if(!F.length){he.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}O.value=F;return}const U=await $e(j);if(!U.length){he.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}O.value=U}async function Se(j){if(Be(j)){ae(j),W(j);return}he.notify({type:"warning",title:"Пошук адреси",message:"Геометрія для обраної адреси відсутня"})}function Le(){m.value!=="address"&&m.value!=="nominatim"||(L.value=!0,e.nextTick(()=>{re()}))}function ee(j){const H=j.replace(/\s+/g,"").split(":");if(H.length!==4)return!1;const F=[10,2,3,4];return H.every((q,Q)=>q.length===F[Q]&&/^\d+$/.test(q))}function ae(j){l("goToCoordinates",[j.lat,j.lng]),N.value=!0}async function Oe(){const j=k.value.trim();if(j){if(m.value==="xy"){const U=Ae(j);if(!U){he.notify({type:"warning",title:"Пошук координат",message:"Використайте `lat lon` або DMS у форматі `50°27'00\"N 30°31'24\"E`."});return}ae(U);return}if(m.value==="address"||m.value==="nominatim"){try{await Ne(j)}catch(U){const H=U?.message||"Помилка пошуку адреси";he.notify({type:"error",title:"Пошук адреси",message:H})}return}try{if(!ee(j)){he.notify({type:"warning",title:"Пошук кадастру",message:"Кадастровий номер має формат ХХХХХХХХХХ:ХХ:ХХХ:ХХХХ"});return}const U=new URL(Tc);U.searchParams.set("cad_num",j);const H=await fetch(U.toString());if(!H.ok)throw new Error(`HTTP ${H.status}`);const F=await H.json(),q=Re(F);if(!q.length)he.notify({type:"warning",title:"Пошук",message:"Не знайдено результатів"});else{const Q=q[0];ae(Q)}}catch(U){const H=U?.message||"Помилка пошуку";he.notify({type:"error",title:"Пошук",message:H})}}}return(j,U)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"widgetRef",ref:w,class:"map-search-widget flex flex-col gap-2 rounded-xl widget min-w-[200px]"},[e.createElementVNode("form",{class:"flex gap-2 text-gray-900",onSubmit:e.withModifiers(Oe,["prevent"])},[h.value.length>1?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:v,class:"relative search-type w-[100px]"},[e.createElementVNode("button",{type:"button",class:"vstSelect-input transition-all text-left bg-white border border-gray-200 text-gray-900 rounded-lg focus:ring-blue-500 focus:border-blue-100 block w-full py-1.5 px-3 text-sm cursor-pointer flex items-center justify-between gap-2",onClick:se},[e.withDirectives((e.openBlock(),e.createElementBlock("span",{ref_key:"selectedToolLabelRef",ref:b,class:"block w-full truncate",title:ye(m.value)},[e.createTextVNode(e.toDisplayString(ye(m.value)),1)],8,vc)),[[n,_e(m.value)]]),(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(["w-4 h-4 text-gray-500 transition-transform",{"rotate-180":y.value}]),viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[...U[3]||(U[3]=[e.createElementVNode("path",{d:"M6 9l6 6 6-6",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])],2))]),y.value?(e.openBlock(),e.createElementBlock("div",Ec,[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,H=>e.withDirectives((e.openBlock(),e.createElementBlock("li",{key:H,class:"px-3 py-2 cursor-pointer hover:bg-gray-100 text-gray-900",onClick:F=>we(H,F)},[e.createTextVNode(e.toDisplayString(ye(H)),1)],8,_c)),[[n,_e(H)]])),128))])])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"searchWrapperRef",ref:V,class:"relative flex-1 min-w-[140px]"},[m.value==="parcel"?(e.openBlock(),e.createBlock(pn,{key:0,modelValue:k.value,"onUpdate:modelValue":U[0]||(U[0]=H=>k.value=H),mask:"0000000000:00:000:0000",class:e.normalizeClass(["vs-input !h-[34px] transition-all border block w-full border-gray-200 rounded-md focus:border-blue-100 border-solid py-1.5 pl-3 text-sm",N.value?"!pr-14":"!pr-8"])},null,8,["modelValue","class"])):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,"onUpdate:modelValue":U[1]||(U[1]=H=>k.value=H),placeholder:x.value,type:"text",class:e.normalizeClass(["vs-input transition-all border block w-full border-gray-200 rounded-md focus:border-blue-100 border-solid py-1.5 pl-3 text-sm",N.value?"!pr-14":"!pr-8"]),onFocus:Le},null,42,Bc)),[[e.vModelText,k.value,void 0,{trim:!0}]]),e.createElementVNode("div",Vc,[N.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"flex items-center text-gray-400 hover:text-gray-600","aria-label":"Очистити",onClick:J},[...U[4]||(U[4]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)])])):e.createCommentVNode("",!0),U[5]||(U[5]=e.createElementVNode("button",{type:"submit",class:"flex items-center text-gray-400 hover:text-gray-600","aria-label":"Пошук"},[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m21 21-4.35-4.35m0 0A7.5 7.5 0 1 0 5 5a7.5 7.5 0 0 0 11.65 11.65Z"})])],-1))]),S.value?(e.openBlock(),e.createBlock(e.Teleport,{key:2,to:"body"},[e.createElementVNode("div",{ref_key:"addressResultsRef",ref:Y,class:"vs-select__options mt-1 bg-white border border-gray-300 rounded-lg shadow-lg text-sm text-gray-900 z-50",style:e.normalizeStyle(X)},[e.createElementVNode("div",Sc,[e.createElementVNode("span",$c,e.toDisplayString(E.value),1),e.createElementVNode("button",{type:"button",class:"text-gray-400 hover:text-gray-600","aria-label":"Закрити",onClick:U[2]||(U[2]=H=>L.value=!1)}," ✕ ")]),e.createElementVNode("div",Nc,[I.value.length?(e.openBlock(),e.createElementBlock("ul",Ac,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(I.value,H=>(e.openBlock(),e.createElementBlock("li",{key:H.id,class:"px-3 py-2 cursor-pointer hover:bg-gray-50",onClick:F=>Se(H)},e.toDisplayString(H.title),9,Fc))),128))])):(e.openBlock(),e.createElementBlock("div",Mc,e.toDisplayString(M.value),1))])],4)])):e.createCommentVNode("",!0)],512)],32)],512))}}),[["__scopeId","data-v-fc01bc01"]]),Rc={class:"pt-1 border-t border-gray-100"},Oc={class:"space-y-1"},zc=e.defineComponent({__name:"AddCoordinates",emits:["submit","cancel"],setup(o,{emit:t}){const n=t,r=e.ref(null),l=e.ref(null),a=(i,d,u)=>Math.min(Math.max(i,d),u),s=()=>{if(r.value===null||l.value===null||!Number.isFinite(r.value)||!Number.isFinite(l.value))return;const i=a(r.value,-90,90),d=a(l.value,-180,180);n("submit",{lat:i,lng:d}),r.value=null,l.value=null},c=()=>{r.value=null,l.value=null,n("cancel")};return(i,d)=>(e.openBlock(),e.createElementBlock("div",Rc,[d[2]||(d[2]=e.createElementVNode("p",{class:"text-xs text-gray-600 mb-1"},"Додати точку за координатами:",-1)),e.createElementVNode("div",Oc,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[0]||(d[0]=u=>r.value=u),type:"number",step:"0.0001",class:"w-full px-2 py-1 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Широта (50.4501)"},null,512),[[e.vModelText,r.value,void 0,{number:!0}]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[1]||(d[1]=u=>l.value=u),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}," Скасувати ")])])]))}}),Pc=e.defineComponent({__name:"BtnAdd",emits:["click"],setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"flex-1 px-2 py-1.5 bg-blue-500 hover:bg-blue-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(z.Plus),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode(" Додати ",-1))]))}}),jc=e.defineComponent({__name:"BtnClear",emits:["click"],setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"w-full px-2 py-1.5 bg-rose-500 hover:bg-rose-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(z.Trash2),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode(" Очистити ",-1))]))}}),Uc=e.defineComponent({__name:"BtnComplete",emits:["click"],setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"flex-1 px-2 py-1.5 bg-emerald-500 hover:bg-emerald-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(z.Circle),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode("Замкнути ",-1))]))}}),Hc=new Intl.NumberFormat("uk-UA",{minimumFractionDigits:2,maximumFractionDigits:2});function Tt(o){return Hc.format(o)}function qo(o){return o>=1e3?`${Tt(o/1e3)} км`:`${Tt(o)} м`}const qc={class:"flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"},Kc={key:0,class:"flex-1 flex gap-1"},Wc={key:1,class:"flex-1 font-mono text-gray-700"},Gc=e.defineComponent({__name:"DotListItem",props:{id:{},index:{},coords:{}},emits:["update","delete"],setup(o,{emit:t}){const n=o,r=t,l=e.computed(()=>`${n.coords.lat.toFixed(4)}°, ${n.coords.lng.toFixed(4)}°`),a=e.ref(!1),s=e.ref(n.coords.lat),c=e.ref(n.coords.lng);e.watch(()=>n.coords,h=>{s.value=h.lat,c.value=h.lng},{deep:!0,immediate:!0});const i=(h,x,m)=>Math.min(Math.max(h,x),m),d=()=>{a.value=!0},u=()=>{if(!Number.isFinite(s.value)||!Number.isFinite(c.value))return;const h=i(s.value,-90,90),x=i(c.value,-180,180);r("update",{id:n.id,coords:{lat:h,lng:x}}),a.value=!1},f=()=>{r("delete",n.id)};return(h,x)=>(e.openBlock(),e.createElementBlock("div",qc,[e.createVNode(e.unref(z.MapPin),{size:12,"stroke-width":2,class:"text-gray-400 flex-shrink-0"}),a.value?(e.openBlock(),e.createElementBlock("div",Kc,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":x[0]||(x[0]=m=>s.value=m),type:"number",step:"0.0001",min:"-90",max:"90",class:"flex-1 px-1.5 py-0.5 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Широта"},null,512),[[e.vModelText,s.value,void 0,{number:!0}]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":x[1]||(x[1]=m=>c.value=m),type:"number",step:"0.0001",min:"-180",max:"180",class:"flex-1 px-1.5 py-0.5 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Довгота"},null,512),[[e.vModelText,c.value,void 0,{number:!0}]]),e.createElementVNode("button",{class:"px-1.5 py-0.5 bg-emerald-500 text-white rounded hover:bg-emerald-600 text-xs",type:"button",onClick:u}," ✓ ")])):(e.openBlock(),e.createElementBlock("span",Wc,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:f}," ✕ ")]))}}),Yc={class:"ruler-control px-3 py-2.5 space-y-2"},Xc={type:"button",class:"ruler-row w-full flex items-center gap-2 cursor-pointer group text-left"},Zc={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"},Jc={class:"text-sm font-semibold text-slate-700"},Qc={class:"ruler-row"},ed={type:"button",class:"w-full flex items-center gap-2 cursor-pointer group text-left"},td={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"},nd={class:"inline-flex rounded-md overflow-hidden border border-gray-200 bg-gray-100"},od=["onClick"],rd={class:"flex items-center gap-2 mt-0.5 pl-7"},ld={key:0,class:"text-base font-semibold text-green-600"},ad={key:1,class:"text-xs text-gray-400"},sd={class:"ruler-row flex items-center gap-2 cursor-pointer"},id={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"},cd={class:"text-xs font-medium text-gray-600 flex-1"},dd={key:0,class:"pt-1.5 border-t border-gray-100 max-h-32 overflow-y-auto space-y-1"},ud=e.defineComponent({__name:"ControlPanel",props:{points:{},isShapeClosed:{type:Boolean}},emits:["update-point","delete-point"],setup(o){const t=o,n=e.ref(!1),r=e.ref("km2"),l=[{id:"km2",label:"км²"},{id:"ha",label:"га"},{id:"m2",label:"м²"}],a=()=>{n.value=!n.value},s=(m,k)=>{const y=S=>S*Math.PI/180,v=y(k.lat-m.lat),b=y(k.lng-m.lng),w=y(m.lat),V=y(k.lat),O=Math.sin(v/2),Y=Math.sin(b/2);return 6371e3*(2*Math.asin(Math.sqrt(O*O+Math.cos(w)*Math.cos(V)*Y*Y)))},c=e.computed(()=>{if(t.points.length<2)return 0;let m=0;for(let k=1;k<t.points.length;k+=1)m+=s(t.points[k-1].coords,t.points[k].coords);return t.isShapeClosed&&t.points.length>=2&&(m+=s(t.points[t.points.length-1].coords,t.points[0].coords)),m}),i=e.computed(()=>c.value>=1e3?`${Tt(c.value/1e3)} км`:`${Tt(c.value)} м`);function d(m){if(m.length<3)return 0;const k=m[0].lat,y=m[0].lng,v=(w,V)=>{const O=(w-k)*110574;return{x:(V-y)*111320*Math.cos(k*Math.PI/180),y:O}};let b=0;for(let w=0;w<m.length;w++){const V=(w+1)%m.length,O=v(m[w].lat,m[w].lng),Y=v(m[V].lat,m[V].lng);b+=O.x*Y.y-O.y*Y.x}return Math.abs(b)*.5}const u=e.computed(()=>{if(!t.isShapeClosed||t.points.length<3)return 0;const m=t.points.map(k=>k.coords);return d(m)}),f=e.computed(()=>u.value>0),h=e.computed(()=>{const m=u.value;if(m===0)return"—";if(r.value==="km2"){const y=m/1e6;return`${Tt(y)} км²`}if(r.value==="ha"){const y=m/1e4;return`${Tt(y)} га`}const k=m>=1?Math.round(m):m;return`${Tt(k)} м²`}),x=e.computed(()=>{const m=t.points.length;return m===1?"1 точка":m>=2&&m<=4?`${m} точки`:`${m} точок`});return e.watch(()=>t.points.length,()=>{t.points.length===0&&(n.value=!1)}),(m,k)=>(e.openBlock(),e.createElementBlock("div",Yc,[e.createElementVNode("button",Xc,[e.createElementVNode("span",Zc,[e.createVNode(e.unref(z.Info),{size:12,"stroke-width":2.5})]),k[1]||(k[1]=e.createElementVNode("span",{class:"text-xs font-medium text-gray-600 flex-1"},"Загальна відстань",-1)),e.createElementVNode("span",Jc,e.toDisplayString(i.value),1)]),e.createElementVNode("div",Qc,[e.createElementVNode("button",ed,[e.createElementVNode("span",td,[e.createVNode(e.unref(z.Info),{size:12,"stroke-width":2.5})]),k[2]||(k[2]=e.createElementVNode("span",{class:"text-xs font-medium text-gray-600 flex-1"},"Площа",-1)),e.createElementVNode("div",nd,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(l,(y,v)=>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",v===0&&"rounded-l-md",v===l.length-1&&"rounded-r-md",r.value===y.id?"bg-white text-green-600 font-semibold shadow-sm":"text-gray-600 hover:bg-gray-50"]),onClick:e.withModifiers(b=>r.value=y.id,["stop"])},e.toDisplayString(y.label),11,od)),64))])]),e.createElementVNode("div",rd,[f.value?(e.openBlock(),e.createElementBlock("span",ld,e.toDisplayString(h.value),1)):(e.openBlock(),e.createElementBlock("span",ad,"—"))])]),e.createElementVNode("div",sd,[e.createElementVNode("span",id,[e.createVNode(e.unref(z.Info),{size:12,"stroke-width":2.5})]),e.createElementVNode("span",cd,e.toDisplayString(x.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",dd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.points,(y,v)=>(e.openBlock(),e.createBlock(Gc,{key:y.id,id:y.id,index:v+1,coords:y.coords,onUpdate:k[0]||(k[0]=b=>m.$emit("update-point",b)),onDelete:b=>m.$emit("delete-point",y.id)},null,8,["id","index","coords","onDelete"]))),128))])):e.createCommentVNode("",!0)]))}}),pd={class:"px-3 py-3 bg-blue-50/50 border-b border-blue-100"},fd={class:"flex items-start gap-2"},md=e.defineComponent({__name:"InfoHint",setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",pd,[e.createElementVNode("div",fd,[e.createVNode(e.unref(z.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))])]))}}),hd={class:"space-y-1.5"},gd={class:"space-y-1 max-h-40 overflow-y-auto"},yd={class:"text-gray-700"},bd={class:"font-semibold text-slate-800"},kd=e.defineComponent({__name:"ToPointList",props:{points:{},isShapeClosed:{type:Boolean}},setup(o){const t=o;function n(a,s){const c=x=>x*Math.PI/180,i=c(s.lat-a.lat),d=c(s.lng-a.lng),u=c(a.lat),f=c(s.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(i/2)**2+Math.cos(u)*Math.cos(f)*Math.sin(d/2)**2)))}function r(a){return qo(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:r(d)})}return a});return(a,s)=>(e.openBlock(),e.createElementBlock("div",hd,[s[0]||(s[0]=e.createElementVNode("p",{class:"text-xs font-medium text-gray-600 mb-1.5"},"Відстань між точками:",-1)),e.createElementVNode("div",gd,[(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",yd,"Точка "+e.toDisplayString(c.from)+" → Точка "+e.toDisplayString(c.to),1),e.createElementVNode("span",bd,e.toDisplayString(c.label),1)]))),128))])]))}}),xd={class:"ruler-panel-wrap absolute bottom-12 right-4 z-[1001] animate-slide-up"},wd={class:"bg-white rounded-xl shadow-2xl border border-gray-200 overflow-hidden w-72"},Cd={class:"bg-gradient-to-r from-blue-400 to-blue-500 px-3 py-2 flex items-center justify-between"},vd={class:"flex items-center gap-2"},Ed={class:"w-6 h-6 bg-white/20 rounded-lg flex items-center justify-center"},_d={class:"flex border-b border-gray-200"},Bd={key:1,class:"px-3 py-2.5"},Vd={key:1,class:"text-xs text-gray-500"},Sd={class:"px-2.5 py-1.5 bg-gray-50 border-t border-gray-200 space-y-1.5"},$d={class:"flex gap-1.5"},Nd=e.defineComponent({name:"RulerPanel",__name:"RulerPanel",emits:["close","tab-change","points-change","add-request","complete","shape-closed-change"],setup(o,{expose:t,emit:n}){const r=n,l=e.ref([]),a=e.computed(()=>l.value.length>0),s=e.ref(!1),c=e.ref(!1),i=e.ref("general");function d($){i.value=$,r("tab-change",$)}e.onMounted(()=>{r("tab-change",i.value)});const u=e.computed(()=>l.value.length>=3&&!c.value);let f=1;const h=()=>l.value.map($=>({id:$.id,coords:{...$.coords}})),x=()=>{l.value.length<3&&c.value&&(c.value=!1,r("shape-closed-change",!1)),r("points-change",h())},m=()=>{const $=f;return f+=1,$},k=$=>{l.value=[...l.value,{id:m(),coords:{lat:$.lat,lng:$.lng}}],x()},y=({id:$,coords:B})=>{const N=l.value.findIndex(E=>E.id===$);if(N===-1)return;const I=[...l.value];I[N]={id:$,coords:{...B}},l.value=I,x()},v=$=>{l.value=l.value.filter(B=>B.id!==$),x()},b=()=>{l.value=[],c.value&&(c.value=!1,r("shape-closed-change",!1)),x()},w=$=>{y($)},V=$=>{v($)},O=()=>{s.value=!0,r("add-request")},Y=$=>{k($),s.value=!1},L=()=>{s.value=!1},_=()=>{u.value&&(c.value=!0,r("complete"),r("shape-closed-change",!0))},S=()=>{b(),s.value=!1,r("close")};return t({addPoint:k,clearPoints:b}),($,B)=>(e.openBlock(),e.createElementBlock("div",xd,[e.createElementVNode("div",wd,[e.createElementVNode("div",Cd,[e.createElementVNode("div",vd,[e.createElementVNode("div",Ed,[e.createVNode(e.unref(z.Ruler),{size:14,"stroke-width":2,class:"text-white"})]),B[2]||(B[2]=e.createElementVNode("h3",{class:"text-white font-semibold text-xs"},"Вимірювання",-1))]),e.createElementVNode("button",{class:"w-5 h-5 flex items-center justify-center rounded hover:bg-white/20 transition-colors","aria-label":"Закрити",onClick:S},[e.createVNode(e.unref(z.X),{size:14,"stroke-width":2,class:"text-white"})])]),e.createElementVNode("div",_d,[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:B[0]||(B[0]=N=>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:B[1]||(B[1]=N=>d("topoint"))}," До точки ",2)]),i.value==="general"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[a.value?(e.openBlock(),e.createBlock(ud,{key:1,points:l.value,"is-shape-closed":c.value,onUpdatePoint:w,onDeletePoint:V},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createBlock(md,{key:0}))],64)):(e.openBlock(),e.createElementBlock("div",Bd,[a.value?(e.openBlock(),e.createBlock(kd,{key:0,points:l.value,"is-shape-closed":c.value},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createElementBlock("p",Vd,"Додайте точки на карті, щоб бачити відстані між ними."))])),e.createElementVNode("div",Sd,[e.createElementVNode("div",$d,[s.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(Pc,{key:0,onClick:O})),u.value?(e.openBlock(),e.createBlock(Uc,{key:1,onClick:_})):e.createCommentVNode("",!0)]),s.value?(e.openBlock(),e.createBlock(zc,{key:0,onSubmit:Y,onCancel:L})):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createBlock(jc,{key:1,onClick:b})):e.createCommentVNode("",!0)])])]))}}),Ye="ruler-points",xt="ruler-line",wt="ruler-polygon",Ct="ruler-segments",Ad=e.defineComponent({__name:"RulerLayer",props:{map:{},points:{},isShapeClosed:{type:Boolean},labelMode:{}},setup(o){function t(m,k){const y=Y=>Y*Math.PI/180,v=y(k.lat-m.lat),b=y(k.lng-m.lng),w=y(m.lat),V=y(k.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(v/2)**2+Math.cos(w)*Math.cos(V)*Math.sin(b/2)**2)))}function n(m){return qo(m)}const r=o;function l(){return{type:"FeatureCollection",features:[]}}function a(m,k,y){const v=y??"general",b=[];let w=0;b.push(0);for(let V=1;V<m.length;V++)w+=t(m[V-1].coords,m[V].coords),b.push(w);return k&&m.length>=2&&(w+=t(m[m.length-1].coords,m[0].coords)),{type:"FeatureCollection",features:m.map((V,O)=>{const Y=v==="general"?O===0?"0":n(b[O]):O===0?"0":n(t(m[O-1].coords,m[O].coords));return{type:"Feature",geometry:{type:"Point",coordinates:[V.coords.lng,V.coords.lat]},properties:{id:V.id,index:O+1,label:Y}}})}}function s(m,k){if(m.length<2)return l();const y=[];for(let v=0;v<m.length;v++){const b=v===m.length-1&&k?0:v+1;if(b>=m.length)break;const w=m[v].coords,V=m[b].coords,O=t(w,V);y.push({type:"Feature",geometry:{type:"LineString",coordinates:[[w.lng,w.lat],[V.lng,V.lat]]},properties:{distance:n(O)}})}return{type:"FeatureCollection",features:y}}function c(m,k){if(m.length<2)return l();const y=m.map(v=>[v.coords.lng,v.coords.lat]);return k&&y.push(y[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"LineString",coordinates:y},properties:{}}]}}function i(m){if(m.length<3)return l();const k=m.map(y=>[y.coords.lng,y.coords.lat]);return k.push(k[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"Polygon",coordinates:[k]},properties:{}}]}}let d=!1;function u(m){m.getSource(Ye)||(m.addSource(Ye,{type:"geojson",data:l()}),m.addLayer({id:`${Ye}-circle`,type:"circle",source:Ye,paint:{"circle-radius":5,"circle-color":"#1e293b","circle-stroke-width":2,"circle-stroke-color":"#ffffff"}}),m.addLayer({id:`${Ye}-labels`,type:"symbol",source:Ye,layout:{"text-field":["get","label"],"text-size":14,"text-offset":[0,1.3]},paint:{"text-color":"#0f172a","text-halo-color":"#ffffff","text-halo-width":1}})),m.getSource(Ct)||(m.addSource(Ct,{type:"geojson",data:l()}),m.addLayer({id:`${Ct}-labels`,type:"symbol",source:Ct,layout:{"text-field":["get","distance"],"text-size":13,"symbol-placement":"line-center","text-rotation-alignment":"map","text-pitch-alignment":"map"},paint:{"text-color":"#1e293b","text-halo-color":"#ffffff","text-halo-width":1.5}})),m.getSource(xt)||(m.addSource(xt,{type:"geojson",data:l()}),m.addLayer({id:`${xt}-layer`,type:"line",source:xt,paint:{"line-color":"#3b82f6","line-width":2}})),m.getSource(wt)||(m.addSource(wt,{type:"geojson",data:l()}),m.addLayer({id:`${wt}-layer`,type:"fill",source:wt,paint:{"fill-color":"#93c5fd","fill-opacity":.25}})),d=!0}function f(m){if(m){try{m.getLayer(`${wt}-layer`)&&m.removeLayer(`${wt}-layer`),m.getSource(wt)&&m.removeSource(wt),m.getLayer(`${xt}-layer`)&&m.removeLayer(`${xt}-layer`),m.getSource(xt)&&m.removeSource(xt),m.getLayer(`${Ct}-labels`)&&m.removeLayer(`${Ct}-labels`),m.getSource(Ct)&&m.removeSource(Ct),m.getLayer(`${Ye}-labels`)&&m.removeLayer(`${Ye}-labels`),m.getLayer(`${Ye}-circle`)&&m.removeLayer(`${Ye}-circle`),m.getSource(Ye)&&m.removeSource(Ye)}catch{}d=!1}}function h(m){if(!m)return;const k=m.getSource(Ye),y=m.getSource(xt),v=m.getSource(wt),b=m.getSource(Ct),w=r.points,V=r.labelMode??"general";k&&k.setData(a(w,r.isShapeClosed,V)),y&&y.setData(c(w,r.isShapeClosed)),v&&v.setData(i(w)),b&&b.setData(V==="topoint"?s(w,r.isShapeClosed):l())}function x(){const m=r.map;m&&(d||u(m),h(m))}return e.watch(()=>[r.points,r.isShapeClosed,r.labelMode],()=>x(),{deep:!0,immediate:!0}),e.watch(()=>r.map,()=>x(),{immediate:!0}),e.onBeforeUnmount(()=>{f(r.map)}),(m,k)=>null}});function Fd(o={}){const t=e.ref(!1),n=e.ref([]),r=e.ref(!1),l=e.ref("general"),a=e.ref(null);function s(){t.value?c():(t.value=!0,o.onActivate?.())}function c(){t.value=!1,n.value=[],r.value=!1,a.value?.clearPoints(),o.onDeactivate?.()}function i(x){n.value=x}function d(x){l.value=x}function u(x){r.value=x}function f(x){t.value&&a.value?.addPoint({lat:x.lat,lng:x.lng})}const h=e.computed(()=>n.value.length>0);return{isRulerActive:t,rulerPoints:n,rulerShapeClosed:r,rulerActiveTab:l,rulerPanelRef:a,hasRulerPoints:h,toggleRuler:s,closeRuler:c,onRulerPointsChange:i,onRulerTabChange:d,onRulerShapeClosedChange:u,handleRulerMapClick:f}}const Md={key:0,class:"absolute top-4 left-4 z-[1000] w-[calc(100%-20px)] sm:w-[350px]"},Dd={key:1,class:"form-geom__panel flex gap-1 items-start mt-2"},Td={class:"flex items-center gap-1"},Ld=["disabled"],Id={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"},Rd=["disabled"],Od=["disabled"],zd={class:"mt-4 flex justify-end gap-2"},Pd=["disabled"],jd={class:"absolute top-4 right-4 z-[1000]"},Ud={class:"flex flex-col gap-[2px]"},Hd=["disabled"],qd=["disabled"],Kd=["disabled"],Wd=["disabled"],Gd={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"},Yd={class:"space-y-0.5"},Xd={class:"text-gray-500"},Zd={class:"text-gray-900 text-right break-all"},Jd={class:"absolute left-4 bottom-[36px] z-[1000]"},Qd={class:"flex flex-col gap-2"},eu={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]"},tu={class:"flex flex-col gap-1"},nu=["checked","disabled","onChange"],ou={class:"text-gray-700 text-xs font-medium"},ru={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"},lu={key:0,class:"form-geom__feature flex items-center text-xs transition-all gap-2 w-full px-2 pb-1"},au={class:"mr-auto flex items-center gap-2 min-w-0 relative"},su={class:"shrink-0"},iu={key:0,class:"font-bold"},cu=["onClick","disabled"],du={key:0},uu={class:"flex items-center"},pu={class:"text-xs mr-2"},fu={key:0},mu={key:1},hu={key:0,class:"text-xs mr-2"},gu={key:1,class:"text-xs mr-2"},yu=["disabled"],bu=["disabled"],wn="__vs_form_maplibre_loader__",Cn="vs-global-bounds-src",vn="vs-global-bounds-line",Ko=xe(e.defineComponent({__name:"vs-input-map",props:{tools:{},multi:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},handleZoom:{type:Boolean,default:!0},ctrlZoom:{type:Boolean,default:!0},geomType:{default:()=>[]},prefix:{default:""},katottg:{default:""},layers:{default:()=>[]},bounds:{},api:{},center:{default:void 0},zoom:{default:void 0},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update:modelValue","valueSelected"],setup(o,{emit:t}){const n=o,r=t,l=e.useAttrs(),a=e.computed(()=>{const p=l?.multiple,g=l?.multi,C=A=>A===""||A===!0||A==="true"||A===1||A==="1";return!!n.multi||!!n.multiple||C(g)||C(p)}),s=e.computed(()=>!!n.disabled),c=e.ref(!1),i=e.ref(null),d=e.ref(0),u=e.ref(""),f=e.ref(null),h=e.ref([]),x=e.ref(null),m=e.ref(null),k=Fd({onActivate(){if(ae)try{ae.changeMode("simple_select",{featureIds:[]})}catch{}u.value=""},onDeactivate(){}});function y(){k.toggleRuler()}const v=e.getCurrentInstance(),b=v?.appContext?.config?.globalProperties?.$settings??{},w=b?.map??{},V=v?.vnode?.props??{};function O(p){return Object.prototype.hasOwnProperty.call(V,p)||Object.prototype.hasOwnProperty.call(V,p.replace(/[A-Z]/g,g=>`-${g.toLowerCase()}`))}const Y=Array.isArray(w.center)&&w.center.length===2?w.center:Array.isArray(b.center)&&b.center.length===2?b.center:[30,50],L=typeof w.zoom=="number"?w.zoom:typeof b.zoom=="number"?b.zoom:typeof b.defaultZoom=="number"?b.defaultZoom:10,_=e.computed(()=>O("center")?n.center:w.center??n.center),S=e.computed(()=>O("zoom")?n.zoom:w.zoom??n.zoom),$=e.computed(()=>O("katottg")?String(n.katottg??""):String(w.katottg??n.katottg??"")),B=e.computed(()=>O("layers")?n.layers??[]:w.layers??n.layers??[]),N=e.computed(()=>O("bounds")?n.bounds:w.bounds??n.bounds),I=e.ref(Array.isArray(_.value)&&_.value.length===2?[..._.value]:Y),E=e.ref(typeof S.value=="number"?S.value:L),M=e.ref(n.modelValue),D=e.ref(null),K=e.ref(null),W=e.ref([]),X=e.ref(!1),re=e.ref(!1),ve=e.ref([]),ge=e.ref({coordinates:"",format:"decimal",order:"lat-lon"}),te={coordinates:{type:"Textarea",label:"Координати вершин полігону (3-100 точок)",placeholder:`50.4501, 30.5234
|
|
1
|
+
(function(ye,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):(ye=typeof globalThis<"u"?globalThis:ye||self,e(ye.FormBuilder={},ye.Vue,ye.OpenGISCore,ye.lucide))})(this,function(ye,e,fe,H){"use strict";const Bo=e.defineComponent({__name:"vs-info-tooltip",props:{text:{}},setup(o){const t=o,n=e.ref(!1),r=e.ref({top:"0px",left:"0px"});function l(s){if(!t.text)return;const i=s.currentTarget.getBoundingClientRect();r.value={top:`${i.bottom+4}px`,left:`${Math.min(i.left,window.innerWidth-230)}px`},n.value=!0}function a(){n.value=!1}return(s,i)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("span",{class:"inline-flex items-center",onMouseenter:l,onMouseleave:a},[e.renderSlot(s.$slots,"default",{},()=>[e.createVNode(e.unref(H.Info),{class:"h-4 w-4 text-gray-400 cursor-help"})])],32),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[n.value&&s.text?(e.openBlock(),e.createElementBlock("div",{key:0,style:e.normalizeStyle(r.value),class:"fixed z-[9999] max-w-xs p-2 bg-gray-900 text-white text-xs rounded-lg shadow-lg pointer-events-none"},e.toDisplayString(s.text),5)):e.createCommentVNode("",!0)]))],64))}}),Qr={class:"w-full relative"},el={key:0,class:"text-[14px] font-medium text-gray-900 mb-2 flex items-center gap-1"},tl={class:"opacity-100"},nl={key:0,class:"text-red-500 text-[14px]"},ol={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},rl=e.defineComponent({__name:"vs-layout-default",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(o){const t=o,n=e.computed(()=>typeof t.item?.label=="string"&&t.item.label?t.item.label:t.item?.ua||t.label||t.ua),r=e.computed(()=>!!n.value),l=e.computed(()=>!!t.item?.rules?.includes("required")),a=e.computed(()=>t.item?.info||"");return(s,i)=>(e.openBlock(),e.createElementBlock("div",Qr,[r.value?(e.openBlock(),e.createElementBlock("div",el,[e.createElementVNode("span",tl,e.toDisplayString(n.value),1),l.value?(e.openBlock(),e.createElementBlock("span",nl,"*")):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createBlock(Bo,{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":s.item.disabled}})),s.error?(e.openBlock(),e.createElementBlock("span",ol,e.toDisplayString(s.error),1)):e.createCommentVNode("",!0)]))}}),ll={class:"w-full relative flex flex-row items-center gap-2"},al={key:0,class:"text-red-500 text-[14px]"},sl={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},il=e.defineComponent({__name:"vs-layout-horizontal",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{default:()=>({container:12,label:3})}},setup(o){const t=o,n=e.computed(()=>t.item?.label||t.label||t.ua),r=e.computed(()=>t.item?.info||""),l=e.computed(()=>t.columns??{container:12,label:3}),a=e.computed(()=>{const{container:d,label:u}=l.value;return!d||d<=0?0:Math.min(Math.max(u??0,0),d)/d}),s=e.computed(()=>t.item?.type==="html"||a.value<=0?!1:!!n.value),i=e.computed(()=>{if(!s.value)return{};const d=`${a.value*100}%`;return{flexBasis:d,maxWidth:d}}),c=e.computed(()=>{const{container:d,label:u}=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 p=Math.max(d-Math.max(u??0,0),0)/d;if(!p)return{};const h=`${p*100}%`;return{flexBasis:h,maxWidth:h}});return(d,u)=>(e.openBlock(),e.createElementBlock("div",ll,[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(i.value)},[e.createTextVNode(e.toDisplayString(n.value)+" ",1),d.item?.rules?.includes("required")&&n.value?(e.openBlock(),e.createElementBlock("span",al,"*")):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createBlock(Bo,{key:1,text:r.value},null,8,["text"])):e.createCommentVNode("",!0)],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"flex-1 min-w-0",style:e.normalizeStyle(c.value)},[e.renderSlot(d.$slots,"default",e.normalizeProps(e.guardReactiveProps(d.$attrs)))],4),d.error?(e.openBlock(),e.createElementBlock("span",sl,e.toDisplayString(d.error),1)):e.createCommentVNode("",!0)]))}}),cl={class:"w-full relative"},dl={key:0,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},ul=e.defineComponent({__name:"vs-layout-inline",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",cl,[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(t.$attrs))),t.error?(e.openBlock(),e.createElementBlock("span",dl,e.toDisplayString(t.error),1)):e.createCommentVNode("",!0)]))}}),pl={class:"flex-1 min-w-0"},fl={key:0,class:"text-sm font-medium text-slate-700 dark:text-slate-200 flex items-center gap-1"},ml={class:"truncate"},hl={key:0,class:"text-red-500 text-[14px]"},gl=["innerHTML"],yl={key:0,class:"mt-1 text-xs text-red-500"},bl={default:rl,horizontal:il,inline:ul,settings:e.defineComponent({__name:"vs-layout-settings",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(o){const t=o,n=e.ref("uk");e.computed(()=>(t.item??{})?.[n.value]??t.ua??t.label??"");const r=e.computed(()=>t.item?.description??""),l=e.computed(()=>Array.isArray(t.item?.rules)&&t.item.rules.includes("required")),a=e.computed(()=>(typeof t.error=="string"?t.error:"")??""),s=()=>{const i=typeof localStorage<"u"?localStorage.getItem("locale"):null;n.value=i||"uk"};return e.onMounted(()=>{try{typeof localStorage<"u"&&localStorage.locale&&(n.value=localStorage.locale)}catch{}window.addEventListener("storage",s)}),e.onUnmounted(()=>{window.removeEventListener("storage",s)}),(i,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["w-full relative",{"opacity-60":i.item?.disabled}])},[e.createElementVNode("div",{class:e.normalizeClass(["gap-2 md:flex-row md:items-center md:justify-between",[["switcher","native-select"].includes(i.item.type)?"flex flex-col":""]])},[e.createElementVNode("div",pl,[i.ua||i.label?(e.openBlock(),e.createElementBlock("p",fl,[e.createElementVNode("span",ml,e.toDisplayString(i.item[n.value]||i.ua||i.label),1),l.value?(e.openBlock(),e.createElementBlock("span",hl,"*")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createElementBlock("p",{key:1,class:"text-xs text-slate-500 dark:text-slate-400",innerHTML:r.value},null,8,gl)):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:e.normalizeClass(["w-full",["select","native-select"].includes(i.item.type)?"md:w-[30%]":"md:w-auto"])},[e.renderSlot(i.$slots,"default",e.normalizeProps(e.guardReactiveProps(i.$attrs)))],2)],2),a.value?(e.openBlock(),e.createElementBlock("p",yl,e.toDisplayString(a.value),1)):e.createCommentVNode("",!0)],2))}})};function Oe(o){return{inputClass:e.computed(()=>{const n=`disabled:opacity-50 disabled:cursor-not-allowed outline-none focus:ring-2 focus:ring-ring focus:ring-${o?.primaryColor||"blue"}-500 border border-solid border-stone-200 rounded-md text-sm text-stone-800 placeholder:text-stone-400 `;return o?.size==="sm"?`${n}h-[32px]`:`${n}h-[38px]`})}}const kl=["placeholder","disabled"],xl=e.defineComponent({__name:"vs-input-password",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=Oe(t.style),r=e.useModel(o,"modelValue"),l=e.computed(()=>!!t.disabled),a=e.computed(()=>t.placeholder??"");return(s,i)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"password","onUpdate:modelValue":i[0]||(i[0]=c=>r.value=c),placeholder:a.value,disabled:l.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n),{"!border-red-600":s.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,kl)),[[e.vModelText,r.value]])}}),wl=["placeholder","disabled","maxlength","minlength"],zt=e.defineComponent({__name:"vs-input-text",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=Oe(t.style),r=e.useModel(o,"modelValue"),l=e.computed(()=>!!t.disabled),a=e.computed(()=>t.placeholder??""),s=e.computed(()=>t.maxlength??void 0),i=e.computed(()=>t.minlength??void 0);function c(){typeof r.value=="string"&&(r.value=r.value.trim())}return(d,u)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"text","onUpdate:modelValue":u[0]||(u[0]=p=>r.value=p),placeholder:a.value,disabled:l.value,maxlength:s.value,minlength:i.value,onBlur:c,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[d.customClass,e.unref(n),{"!border-red-600":d.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,wl)),[[e.vModelText,r.value]])}}),_l=["step","placeholder","disabled","min","max"],Vo=e.defineComponent({__name:"vs-input-number",props:e.mergeModels({style:{type:Object,default:()=>({})},placeholder:{type:String,default:""},disabled:{type:Boolean,default:!1},min:{type:Number,default:void 0},max:{type:Number,default:void 0},step:{type:[Number,String],default:void 0}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=Oe(t.style),r=e.useAttrs(),l=e.useModel(o,"modelValue"),a=e.computed(()=>!!t.disabled),s=u=>{if(u==null||u==="")return;const p=typeof u=="string"?u.trim().replace(",","."):u,h=Number(p);return Number.isFinite(h)?h:void 0},i=e.computed(()=>s(t.min??r.min)),c=e.computed(()=>s(t.max??r.max)),d=e.computed(()=>{if(t.step!==void 0&&t.step!==null&&t.step!=="")return t.step;const u=r.step;return typeof u=="number"||typeof u=="string"?u:"any"});return(u,p)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"number",step:d.value,"onUpdate:modelValue":p[0]||(p[0]=h=>l.value=h),placeholder:o.placeholder,disabled:a.value,class:e.normalizeClass(["py-1.5 px-3 block w-full bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"},min:i.value,max:c.value},null,10,_l)),[[e.vModelText,l.value]])}}),fn=o=>!!String(o??"").trim(),Vt=o=>o?.color?String(o.color):"",Wt=o=>{const t=o?.icon;if(typeof t=="string")return t;const n=o?.imgUrl;return typeof n=="string"?n:""},Gt=o=>{const t=o?.icon;return t&&typeof t!="string"?t:null},Cl={class:"flex items-center gap-[4px]"},vl=["value","id","disabled"],El=["for"],Bl=["innerHTML"],Vl={key:1,class:"text-[14px] text-gray-700 flex items-center gap-2 dark:text-neutral-400"},Sl=["src"],$l=e.defineComponent({__name:"vs-checkbox-default",props:{value:{default:""},label:{default:""},html:{default:""},disabled:{type:Boolean,default:!1},id:{},modelValue:{default:""},info:{},error:{},option:{default:null}},emits:["update:modelValue"],setup(o,{emit:t}){const n=t,r=o,l=e.computed({get:()=>r.modelValue,set:k=>n("update:modelValue",k)}),a=e.computed(()=>!!r.disabled),s=e.computed(()=>Wt(r.option)),i=e.computed(()=>Gt(r.option)),c=e.computed(()=>Vt(r.option)),d=e.computed(()=>!!(c.value&&!s.value&&!i.value)),u=e.computed(()=>!!(s.value&&c.value)),p=e.computed(()=>c.value?{color:c.value}:void 0),h=e.computed(()=>{if(!(!s.value||!c.value))return{backgroundColor:c.value,WebkitMaskImage:`url(${s.value})`,maskImage:`url(${s.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(k,m)=>(e.openBlock(),e.createElementBlock("div",Cl,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",value:k.value,"onUpdate:modelValue":m[0]||(m[0]=g=>l.value=g),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:k.id,disabled:a.value},null,10,vl),[[e.vModelCheckbox,l.value]]),e.createElementVNode("label",{for:k.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",k.error?"border-red-600":""]])},[e.createVNode(e.unref(H.Check),{class:"h-4 w-4"})],2),k.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:k.html},null,8,Bl)):(e.openBlock(),e.createElementBlock("span",Vl,[d.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:c.value})},null,4)):e.createCommentVNode("",!0),u.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(h.value)},null,4)):s.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:s.value,alt:"icon"},null,8,Sl)):i.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(p.value)},null,8,["style"])):e.createCommentVNode("",!0),e.renderSlot(k.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(k.label),1)])]))],10,El)]))}}),Nl=["name","value","disabled"],Al=["innerHTML"],Ml={key:1,class:"flex items-center gap-[6px] text-[14px]"},Fl={key:2,class:"text-[16px] inline-flex items-center justify-center"},Dl=["src"],Tl=e.defineComponent({__name:"vs-checkbox-buttons",props:{value:{type:[String,Number,Boolean],default:""},label:{default:""},html:{default:""},modelValue:{default:""},disabled:{type:Boolean},id:{},icon:{},imgUrl:{},style:{},option:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,l=e.computed({get:()=>n.modelValue,set:g=>{r("update:modelValue",g)}}),a=e.computed(()=>Array.isArray(l.value)?l.value.includes(n.value):l.value===!0||l.value===n.value),s=e.computed(()=>n.style?.size==="xs"?"p-1.5 text-xs":n.style?.size==="lg"?"p-3.5 text-[20px]":"p-2.5 text-xs"),i=e.computed(()=>({...n.option??{},icon:n.option?.icon??n.icon,imgUrl:n.option?.imgUrl??n.imgUrl,color:n.option?.color})),c=e.computed(()=>Wt(i.value)),d=e.computed(()=>Gt(i.value)),u=e.computed(()=>Vt(i.value)),p=e.computed(()=>!!(u.value&&!c.value&&!d.value)),h=e.computed(()=>!!(c.value&&u.value)),k=e.computed(()=>u.value?{color:u.value}:void 0),m=e.computed(()=>{if(!(!c.value||!u.value))return{backgroundColor:u.value,WebkitMaskImage:`url(${c.value})`,maskImage:`url(${c.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(g,y)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["group relative flex justify-center items-center gap-x-3 text-center bg-white text-gray-800 ring-ring ring-2 cursor-pointer rounded-lg",[s.value,a.value?"ring-blue-500":"border border-gray-200 ring-transparent"]])},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",class:"hidden",name:g.id,value:g.value,"onUpdate:modelValue":y[0]||(y[0]=C=>l.value=C),disabled:g.disabled},null,8,Nl),[[e.vModelCheckbox,l.value]]),g.html?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-full",innerHTML:g.html},null,8,Al)):(e.openBlock(),e.createElementBlock("span",Ml,[p.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:u.value})},null,4)):e.createCommentVNode("",!0),h.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(m.value)},null,4)):c.value||d.value?(e.openBlock(),e.createElementBlock("span",Fl,[c.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:c.value,width:"16",height:"16",alt:"icon"},null,8,Dl)):d.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),{key:1,class:"h-4 w-4",style:e.normalizeStyle(k.value)},null,8,["style"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(g.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(g.label),1)])]))],2))}}),Ll={class:"flex items-center"},qn=e.defineComponent({__name:"vs-input-checkbox-item",props:{value:{default:""},label:{default:""},labelHtml:{default:""},disabled:{type:Boolean,default:!1},view:{default:"default"},modelValue:{type:[Boolean,Array],default:!1},icon:{},imgUrl:{},slots:{},option:{},style:{},error:{default:""}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,l=`radio-${Math.floor(Math.random()*1e4)}`,a=e.computed({get:()=>Array.isArray(n.modelValue)?Array.isArray(n.modelValue)&&n.modelValue.includes(n.value):n.modelValue,set:i=>{if(Array.isArray(n.modelValue)){let c=[...n.modelValue];i?c.includes(n.value)||c.push(n.value):c=c.filter(d=>d!==n.value),r("update:modelValue",c)}else r("update:modelValue",i)}}),s=e.ref(`vs-checkbox-${n.view||"default"}`);return(i,c)=>(e.openBlock(),e.createElementBlock("div",Ll,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value==="vs-checkbox-buttons"?e.unref(Tl):e.unref($l)),{value:i.value,label:i.label,html:i.labelHtml,info:i.option?.info,disabled:i.disabled,modelValue:a.value,"onUpdate:modelValue":c[0]||(c[0]=d=>a.value=d),id:l,icon:i.icon,imgUrl:i.imgUrl,option:i.option,style:e.normalizeStyle(i.style),error:i.error},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.label),1)]),_:1},8,["value","label","html","info","disabled","modelValue","icon","imgUrl","option","style","error"]))]))}}),Il={key:0,class:"flex items-start gap-x-1"},Rl={key:0,class:"text-red-500 text-[14px]"},Ol=["title"],Pl=["disabled"],Kn=e.defineComponent({__name:"vs-input-switcher",props:e.mergeModels({rules:{default:()=>[]},view:{default:"checkbox"},label:{default:""},i:{default:""},text:{default:""},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue");return(r,l)=>t.view==="checkbox"?(e.openBlock(),e.createElementBlock("div",Il,[e.createVNode(qn,{modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=a=>n.value=a),error:r.error||""},null,8,["modelValue","error"]),r.rules?.includes("required")?(e.openBlock(),e.createElementBlock("span",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(H.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,Pl))}}),zl=["id","innerHTML"],Wn=e.defineComponent({__name:"vs-input-static",props:{text:{default:""},html:{default:""},style:{},customClass:{default:""},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",{id:t.name,class:e.normalizeClass(["text-gray-900",t.customClass]),innerHTML:t.html?t.html:t.text},null,10,zl))}}),jl=["placeholder","disabled","name"],mn=e.defineComponent({__name:"vs-input-mask",props:e.mergeModels({name:{},mask:{default:""},unmask:{type:Boolean,default:!1},placeholder:{default:"_"},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=Oe(t.style),r=e.useModel(o,"modelValue"),l=e.ref(null);let a=null;function s(i){const c={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},d=new Set;let u=!1;for(let h=0;h<i.length;h+=1){const k=i[h];k==="{"?u=!0:k==="}"?u=!1:u&&d.add(k)}const p={};return Object.keys(c).forEach(h=>{d.has(h)||(p[h]=c[h])}),{mask:i,definitions:p,lazy:!1}}return e.onMounted(async()=>{if(l.value){const{default:i}=await Promise.resolve().then(()=>Pn),c=s(t.mask||"");a=i(l.value,c),a.on("accept",()=>{r.value=t.unmask?a.unmaskedValue:a.value}),a.on("complete",()=>{r.value=t.unmask?a.unmaskedValue:a.value}),a.value=r.value!=null?String(r.value):""}}),e.onBeforeUnmount(()=>{a?.destroy()}),e.watch(()=>t.mask,i=>{if(a){const c=s(i||"");a.updateOptions(c)}}),e.watch(r,i=>{a&&a.unmaskedValue!==i&&(a.value=i!=null?String(i):"")}),(i,c)=>(e.openBlock(),e.createElementBlock("input",{type:"text",ref_key:"inputEl",ref:l,placeholder:i.placeholder,disabled:i.disabled,name:i.name,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"}},null,10,jl))}}),Ul={class:"relative w-full bg-white rounded-lg"},Hl={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},ql=["placeholder","disabled"],Gn=e.defineComponent({__name:"vs-input-email",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=Oe(t.style),r=e.useModel(o,"modelValue");return(l,a)=>(e.openBlock(),e.createElementBlock("div",Ul,[e.createElementVNode("div",Hl,[e.createVNode(e.unref(H.Mail),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.withDirectives(e.createElementVNode("input",{type:"email","onUpdate:modelValue":a[0]||(a[0]=s=>r.value=s),placeholder:l.placeholder,disabled:l.disabled,class:e.normalizeClass(["!pl-8 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n),{"!border-red-600":l.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,ql),[[e.vModelText,r.value]])]))}}),xt="+99(999)-999-99-99";function St(o){if(!o?.trim())return 0;const t=new Set(["9","0","a","A","*"]);let n=!1,r=0;for(let l=0;l<o.length;l+=1){const a=o[l];if(a==="{"){n=!0;continue}if(a==="}"){n=!1;continue}!n&&t.has(a)&&(r+=1)}return r}const Kl={class:"relative w-full bg-white rounded-lg"},Wl={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] pointer-events-none"},Gl=["name","placeholder","disabled","pattern"],Yn=e.defineComponent({__name:"vs-input-tel",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{},mask:{default:xt}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.computed(()=>`^\\+[1-9]\\d{${(St(t.mask||xt)||St(xt))-1}}$`),{inputClass:r}=Oe(t.style),l=e.useModel(o,"modelValue"),a=e.ref(null);let s=null;function i(u){const p={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},h=new Set;let k=!1;for(let g=0;g<u.length;g+=1){const y=u[g];y==="{"?k=!0:y==="}"?k=!1:k&&h.add(y)}const m={};return Object.keys(p).forEach(g=>{h.has(g)||(m[g]=p[g])}),{mask:u,definitions:m,lazy:!1,disabled:t.disabled}}function c(u){if(u==null||u==="")return"";const p=String(u).trim();return p?p.replace(/\D/g,""):""}function d(){if(!s)return;const u=s.unmaskedValue??"";l.value=u?`+${u}`:""}return e.onMounted(async()=>{if(!a.value)return;const{default:u}=await Promise.resolve().then(()=>Pn),p=i(t.mask||"");s=u(a.value,p),s.on("accept",d),s.on("complete",d);const h=c(l.value);s.unmaskedValue=h}),e.onBeforeUnmount(()=>{s?.destroy(),s=null}),e.watch(()=>t.mask,u=>{s&&s.updateOptions(i(u||""))}),e.watch(()=>t.disabled,u=>{s&&s.updateOptions({disabled:u})}),e.watch(l,u=>{if(!s)return;const p=c(u);s.unmaskedValue!==p&&(s.unmaskedValue=p)}),(u,p)=>(e.openBlock(),e.createElementBlock("div",Kl,[e.createElementVNode("div",Wl,[e.createVNode(e.unref(H.Phone),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.createElementVNode("input",{ref_key:"inputEl",ref:a,type:"tel",name:u.name,placeholder:u.placeholder,disabled:u.disabled,pattern:n.value,title:"Міжнародний номер (E.164), наприклад +380XXXXXXXXX",autocomplete:"tel",class:e.normalizeClass(["!pl-10 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(r),{"!border-red-600":u.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Gl)]))}}),Yl=["value","disabled"],Xl=["innerHTML"],Zl={key:1,class:"flex items-center gap-2"},Jl=["src"],Ql={class:"text-[13px] text-gray-700"},ea=e.defineComponent({__name:"vs-input-radio-default",props:e.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{},html:{default:""},option:{default:null}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>!!t.disabled),l=e.computed(()=>Wt(t.option)),a=e.computed(()=>Gt(t.option)),s=e.computed(()=>Vt(t.option)),i=e.computed(()=>!!(s.value&&!l.value&&!a.value)),c=e.computed(()=>!!(l.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),u=e.computed(()=>{if(!(!l.value||!s.value))return{backgroundColor:s.value,WebkitMaskImage:`url(${l.value})`,maskImage:`url(${l.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(p,h)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex items-center gap-0",[t.customClass,r.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[0]||(h[0]=k=>n.value=k),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,Yl),[[e.vModelRadio,n.value]]),e.createElementVNode("span",{class:e.normalizeClass(["w-[16px] shrink-0 h-[16px] border rounded-full flex items-center justify-center mr-[10px]",[`border-${t.style?.primaryColor||"blue"}-500`,r.value?"opacity-50 cursor-not-allowed":""]])},[n.value==t.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["w-[12px] h-[12px] shrink-0 rounded-full",[`bg-${t.style?.primaryColor||"blue"}-500`]])},null,2)):e.createCommentVNode("",!0)],2),t.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:t.html},null,8,Xl)):(e.openBlock(),e.createElementBlock("div",Zl,[i.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:s.value})},null,4)):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(u.value)},null,4)):l.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:l.value,alt:"icon"},null,8,Jl)):a.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(d.value)},null,8,["style"])):e.createCommentVNode("",!0),e.createElementVNode("span",Ql,e.toDisplayString(t.text),1)]))],2))}}),ta=["value","disabled"],na=["innerHTML"],oa={key:1,class:"flex items-center gap-2"},ra=["src"],la={class:"text-[13px] text-gray-700"},aa={"vs-input-radio-default":ea,"vs-input-radio-buttons":e.defineComponent({__name:"vs-input-radio-buttons",props:e.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{},html:{default:""},option:{default:null}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>!!t.disabled),l=e.computed(()=>Wt(t.option)),a=e.computed(()=>Gt(t.option)),s=e.computed(()=>Vt(t.option)),i=e.computed(()=>!!(s.value&&!l.value&&!a.value)),c=e.computed(()=>!!(l.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),u=e.computed(()=>{if(!(!l.value||!s.value))return{backgroundColor:s.value,WebkitMaskImage:`url(${l.value})`,maskImage:`url(${l.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(p,h)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex h-full w-full items-center border rounded-lg px-2 py-1",[n.value==t.value?`ring-2 ring-ring ring-${t.style?.primaryColor||"blue"}-500`:"",t.customClass,r.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[0]||(h[0]=k=>n.value=k),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,ta),[[e.vModelRadio,n.value]]),t.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:t.html},null,8,na)):(e.openBlock(),e.createElementBlock("div",oa,[i.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:s.value})},null,4)):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(u.value)},null,4)):l.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:l.value,alt:"icon"},null,8,ra)):a.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(d.value)},null,8,["style"])):e.createCommentVNode("",!0),e.createElementVNode("span",la,e.toDisplayString(t.text),1)]))],2))}})},So=o=>Array.isArray(o)?o:Array.isArray(o?.data)?o.data:[],$o=o=>{const t=o.host??"",n=o.prefix??"api",r=o.api??`/${n}/suggest/${o.data}`;return`${t}${r}`},sa=o=>({fetchOptions:async(r="")=>{const l=o();if(!l.data)return l.options?[...l.options]:[];try{const a=new URLSearchParams;a.set("json","1"),r&&a.set("key",r),l.parentValue!==void 0&&l.parentValue!==null&&l.parentValue!==""&&a.set("parent",String(l.parentValue)),l.start===1&&a.set("start","1");const i=await(await fetch(`${$o(l)}?${a.toString()}`)).json();return So(i)}catch{return[]}},fetchOptionByValue:async r=>{if(r==null||r==="")return null;const l=o();if(!l.data)return(l.options??[]).find(s=>s?.id?.toString()===String(r))??null;try{const a=new URLSearchParams;a.set("json","1"),a.set("val",String(r)),l.parentValue!==void 0&&l.parentValue!==null&&l.parentValue!==""&&a.set("parent",String(l.parentValue)),l.start===1&&a.set("start","1");const i=await(await fetch(`${$o(l)}?${a.toString()}`)).json();return So(i)[0]??null}catch{return null}}}),hn=({props:o,formValues:t=null,watchParent:n=!0})=>{const r=e.ref([]),l=e.computed(()=>o.parent?t?.value?.[o.parent]?.toString?.()??null:null),{fetchOptions:a,fetchOptionByValue:s}=sa(()=>({data:o.data,options:o.options,api:o.api,prefix:o.prefix,host:o.host,start:o.start,parentValue:l.value})),i=async(c="")=>{const d=o.data?await a(c):o.options?[...o.options]:[];return r.value=d,r.value};return e.watch(()=>o.options,()=>{o.data||(r.value=o.options?[...o.options]:[])},{immediate:!0,deep:!0}),n&&e.watch(l,async()=>{o.data&&(r.value=await a())},{immediate:!1}),{optionsList:r,parentValue:l,fetchOptions:a,fetchOptionByValue:s,loadOptions:i}},ia=/\{\{\s*([^}]+?)\s*\}\}/g,ca=o=>(o?String(o):"").replace(/<[^>]*>/g,"").trim(),da=(o,t)=>t.split(".").reduce((n,r)=>n==null?n:n[r.trim()],o),gn=(o,t)=>{if(!o)return"";const n=(t??"").trim();return n?n.replace(ia,(r,l)=>{const a=String(l).trim(),s=o,c=(a.includes(".")?da(s,a):void 0)??s[a];return c!=null?String(c):""}):o.text??""},yn=(o,t)=>{if(!o)return"";const n=gn(o,t);return ca(n)||o.text||""},Xn=e.defineComponent({__name:"vs-input-radio",props:e.mergeModels({options:{},slot:{},data:{},api:{},prefix:{},host:{},start:{},parent:{},position:{default:"vertical"},view:{default:"default"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>aa[`vs-input-radio-${t.view}`]),l=e.computed(()=>t.slot??t?.optionTemplate??""),a=e.computed(()=>fn(l.value)),s=k=>gn(k,l.value),i=k=>yn(k,l.value),c=e.computed(()=>t.position==="horizontal"?"flex w-full flex-row flex-wrap gap-[10px]":"flex w-full flex-col gap-2"),d=e.computed(()=>{if(t.position==="horizontal"&&t.customClass?.includes("50%"))return{flex:"0 0 calc(50% - 5px)"}}),u=e.inject("values",null),{optionsList:p,loadOptions:h}=hn({props:t,formValues:u});return e.onMounted(async()=>{await h()}),(k,m)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(c.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(p),g=>(e.openBlock(),e.createElementBlock("div",{key:g?.id,class:e.normalizeClass(["flex items-stretch",k.position==="horizontal"?t.customClass:""]),style:e.normalizeStyle(d.value)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value),e.mergeProps({text:i(g),html:a.value?s(g):"",option:g,value:g.id.toString(),checked:n.value?.toString?.()===g.id?.toString?.(),"custom-class":k.position==="horizontal"?"":t.customClass,modelValue:n.value,"onUpdate:modelValue":m[0]||(m[0]=y=>n.value=y)},{ref_for:!0},k.$attrs),null,16,["text","html","option","value","checked","custom-class","modelValue"]))],6))),128))],2))}}),ua={key:1,class:"w-full flex flex-col gap-4"},pa={key:0,class:"text-sm font-medium text-muted-foreground my-2"},fa="Без категорії",ma=e.defineComponent({__name:"vs-input-checkbox",props:{options:{default:()=>[]},position:{default:"vertical"},slots:{default:null},slot:{},colSpan:{default:0},data:{},api:{},prefix:{},host:{},start:{},parent:{},view:{},group:{default:void 0},values:{default:()=>[]},style:{},customClass:{},disabled:{type:Boolean},modelValue:{default:!1},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,l=e.reactive({}),a=e.inject("values",null),{optionsList:s,loadOptions:i}=hn({props:{...n,options:n.options},formValues:a}),c=e.computed(()=>s.value),d=x=>x?.value||x?.id||x?.text||x,u=e.computed(()=>n.slot??n?.optionTemplate??""),p=e.computed(()=>fn(u.value)),h=x=>gn(x,u.value),k=x=>yn(x,u.value),m=x=>`lg:col-span-${x||12}`,g=e.computed(()=>[n.position==="vertical"?"flex flex-col":"",n.colSpan?"grid":"flex justify-start"]),y=x=>x==null||x===""?null:typeof x=="string"||typeof x=="number"?x:String(x),C=e.computed(()=>{if(!n.group)return[];const x=new Map;c.value.forEach(L=>{const E=L[n.group],S=y(E);x.has(S)||x.set(S,[]),x.get(S)?.push(L)});const w=[];n.values?.length&&n.values.forEach(L=>{const E=y(L);w.push(E)});const V=new Set,z=L=>{const E=x.get(L)||[];if(!E.length)return null;const S=L===null?"group-null":`group-${String(L)}`,N=L===null?fa:String(L);return V.add(L),{key:S,label:N,options:E}},X=[];return w.forEach(L=>{const E=z(L);E&&X.push(E)}),x.forEach((L,E)=>{if(V.has(E))return;const S=z(E);S&&X.push(S)}),X});return e.watch(()=>n.modelValue,x=>{if(typeof x=="boolean"&&c.value.length===1){const w=d(c.value[0]);l[w]=x}else if(Array.isArray(x)){const w=new Set(x);c.value.forEach(V=>{if(!V.disabled){const z=d(V);l[z]=w.has(z)}})}},{immediate:!0}),e.watch(l,()=>{if(!c.value.length){r("update:modelValue",null);return}const x=Object.entries(l).filter(([,w])=>w).map(([w])=>w);r("update:modelValue",x.length===0?[]:x)},{deep:!0}),e.onMounted(async()=>{if(await i(),typeof n.modelValue=="boolean"&&c.value.length===1){const x=d(c.value[0]);l[x]=n.modelValue}else if(Array.isArray(n.modelValue)){const x=new Set(n.modelValue);c.value.forEach(w=>{if(!w.disabled){const V=d(w);l[V]=x.has(V)}})}}),(x,w)=>n.group?(e.openBlock(),e.createElementBlock("div",ua,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.value,V=>(e.openBlock(),e.createElementBlock("div",{key:V.key,class:"flex flex-col gap-2"},[V.label?(e.openBlock(),e.createElementBlock("span",pa,e.toDisplayString(V.label),1)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-0 w-full gap-[12px]",g.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V.options,z=>(e.openBlock(),e.createBlock(qn,{modelValue:l[d(z)],"onUpdate:modelValue":X=>l[d(z)]=X,value:d(z),class:e.normalizeClass(m(x.colSpan)),disabled:n.disabled||z.disabled,label:k(z),labelHtml:p.value?h(z):"",key:`${V.key}-${d(z)}`,icon:z?.icon,imgUrl:z?.imgUrl,option:z,view:x.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2)]))),128))])):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["p-0 w-full gap-[10px]",g.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,V=>(e.openBlock(),e.createBlock(qn,{modelValue:l[d(V)],"onUpdate:modelValue":z=>l[d(V)]=z,value:d(V),class:e.normalizeClass(m(x.colSpan)),disabled:n.disabled||V.disabled,label:k(V),labelHtml:p.value?h(V):"",key:d(V),icon:V?.icon,imgUrl:V?.imgUrl,option:V,view:x.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2))}}),ke=(o,t)=>{const n=o.__vccOpts||o;for(const[r,l]of t)n[r]=l;return n},No=ke(ma,[["__scopeId","data-v-9056e0ec"]]),ha=["type","placeholder","disabled"],ga=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(o,{emit:t}){const n=o;function r(u){return u?n.mode==="datetime"?(u.includes("T")?u:null)||u+(u.includes(" ")?"":"T00:00"):u?.split(" ")[0]:null}const{inputClass:l}=Oe(n.style),a=t,s=e.computed({get:()=>r(n.modelValue),set:u=>a("update:modelValue",u)}),i=e.computed(()=>n.mode==="datetime"?"datetime-local":n.mode),c=e.computed(()=>!!n.disabled),d=e.computed(()=>n.placeholder??"");return(u,p)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:i.value,"onUpdate:modelValue":p[0]||(p[0]=h=>s.value=h),placeholder:d.value,disabled:c.value,ref:"date",class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[u.modelValue?"":"text-opacity-50",e.unref(l)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,ha)),[[e.vModelDynamic,s.value]])}}),ya=(o,t)=>{if(!t||!Object.keys(t).length)return o;const[n,r=""]=o.split("?"),l=new URLSearchParams(r);Object.entries(t).forEach(([s,i])=>{i==null||i===""||l.set(s,String(i))});const a=l.toString();return a?`${n}?${a}`:n},Ao=async(o,t={})=>{try{const n=new FormData;n.append("unique","true"),n.append("file",o);const{api:r,id:l="1",form:a="form",table:s="table",customParams:i}=t,c=r||`/file/upload/uploads?id=${l||""}&form=${a||""}&table=${s||""}`,d=ya(c,i);return(await fetch(d,{method:"POST",body:n}).then(p=>p.json()))?.result}catch(n){return fe.notify({type:"error",title:"Помилка!",message:"Сталась помилка під час завантаження файлу",position:"right-bottom"}),console.error("Сталась помилка завантаження файлу",n),null}},ba=async o=>{try{return await fetch(`file/delete${o}`),!0}catch(t){return console.error(t),!1}},Mo=async o=>{try{const t=await fetch(`/file/download${o}`);if(!t.ok)throw new Error(`Download failed with status ${t.status}`);const n=await t.blob(),l=(t.headers.get("content-disposition")||"").match(/filename\*?=(?:UTF-8''|")?([^\";]+)/i),a=l?.[1]?decodeURIComponent(l[1].replace(/"/g,"").trim()):"",s=o.split("/").filter(Boolean).pop()||"download",i=a||s,c=document.createElement("a");c.setAttribute("download",i),c.href=window.URL.createObjectURL(n),c.click(),window.URL.revokeObjectURL(c.href)}catch(t){console.error(t.message)}},ka=o=>{if(!o)return"";const t=o?.split(".");return t[t.length-1]},xa=o=>{const t=ka(o),n={imageFormat:["tiff","jpg","jpeg","png","svg","ico","webp"],sheetsFormat:["xls","csv","xlsx"],archivesFormat:["zip","rar"],textsFormat:["json","geojson","txt","yml","yaml","shp"],documentsFormat:["pdf"]};return n.imageFormat.includes(t)?"img":n.sheetsFormat.includes(t)?H.Table:n.textsFormat.includes(t)?H.FileCode:n.documentsFormat.includes(t)?H.FileText:n.archivesFormat.includes(t)?H.FileArchive:H.FileText},wa=["title"],_a={class:"absolute hidden top-0 right-0 flex items-center gap-x-2 w-full h-full justify-center"},Zn=ke(e.defineComponent({__name:"vs-input-file-list-item",props:e.mergeModels({format:{},multiple:{type:Boolean},max_size:{},api:{},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{value:{},valueModifiers:{},item:{},itemModifiers:{}}),emits:["update:value","update:item"],setup(o){const t=e.useModel(o,"value"),n=e.useModel(o,"item"),r=o,l=e.computed(()=>n.value?typeof n.value=="string"?n.value:n.value.file_path:""),a=c=>typeof c=="string"?c:c?.file_path||"",s=()=>{const c=l.value;ba(c),r.multiple&&Array.isArray(t.value)?t.value=t.value.filter(d=>a(d)!==c):t.value=""},i=()=>{l.value&&window.open(l.value,"_blank")};return(c,d)=>(e.openBlock(),e.createElementBlock("div",{title:l.value,class:"h-[120px] w-[120px] border text-gray-300 border-dashed border-[#CFD9E0] rounded-lg overflow-hidden relative item-file"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(xa)(l.value)),{src:l.value,alt:"file",class:"w-full h-full object-cover cursor-pointer",onClick:d[0]||(d[0]=u=>e.unref(Mo)(l.value))},null,8,["src"])),e.createElementVNode("div",_a,[e.createElementVNode("button",{type:"button",onClick:s,class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-red-500"},[e.createVNode(e.unref(H.Trash2),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:i,class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-emerald-600"},[e.createVNode(e.unref(H.Eye),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:d[1]||(d[1]=u=>e.unref(Mo)(l.value)),class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-blue-500"},[e.createVNode(e.unref(H.Download),{class:"w-4 h-4"})])])],8,wa))}}),[["__scopeId","data-v-89357cbb"]]),Ca={class:"flex items-center gap-x-2"},va=["accept","multiple","disabled"],Ea={key:1,class:"flex items-center flex-wrap gap-2"},Ba={key:1,class:"loader"},Va={key:1,class:"loader"},Fo=ke(e.defineComponent({__name:"vs-input-file",props:e.mergeModels({format:{},multiple:{type:Boolean},max_size:{},api:{},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["change"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=e.useModel(o,"modelValue"),l=t,a=e.computed(()=>{const x=r.value;return!n.multiple||!Array.isArray(x)?[]:x}),s=e.ref(null),i=e.ref(!1),c=e.inject("values"),d=e.computed(()=>n.format?n.format.split(",").map(x=>x.trim().toLowerCase()).filter(Boolean):[]),u=x=>{if(n.max_size&&x.size>n.max_size*1024*1024){const w=(x.size/1048576).toFixed(2);return fe.notify({type:"error",title:"Помилка!",message:`Файл "${x.name}" занадто великий. Максимальний розмір: ${n.max_size} МБ, розмір файлу: ${w} МБ`,position:"right-bottom"}),!1}return!0},p=x=>{if(!d.value.length)return!0;const w=`.${x.name.split(".").pop()?.toLowerCase()||""}`,V=d.value.includes(w);return V||fe.notify({type:"error",title:"Помилка!",message:`Неприпустимий формат файлу "${x.name}". Дозволені формати: ${d.value.join(", ")}`,position:"right-bottom"}),V},h=e.computed(()=>{const x={},w=[];if(!n.customParams?.length)return{params:x,missingSources:w};const V=c?.value??{};return n.customParams.forEach(z=>{if(!z)return;const[X,L]=z.split("="),E=X?.trim(),S=L?.trim();if(!E||!S)return;const N=V[S];if(N==null||N===""){w.push(S);return}x[E]=N}),{params:x,missingSources:w}}),k=()=>{const{params:x}=h.value;return{api:n.api,customParams:Object.keys(x).length?x:void 0}},m=()=>{const x=h.value.missingSources;if(!x.length)return!0;const w=x.join(", ");return fe.notify({type:"warning",title:"Заповніть поля",message:`Поля (${w}) необхідні для завантаження файлу`,position:"right-bottom"}),!1},g=x=>{fe.notify({type:"error",title:"Помилка завантаження",message:x||"Не вдалося завантажити файл. Спробуйте ще раз.",position:"right-bottom"})},y=()=>{n.disabled||i.value||m()&&s.value?.click()},C=async x=>{const{files:w}=x.target;if(!w||w.length===0)return;if(!m()){s.value&&(s.value.value="");return}const V=Array.from(w);if(n.max_size&&V.filter(L=>!u(L)).length>0){s.value&&(s.value.value="");return}if(V.filter(X=>!p(X)).length>0){s.value&&(s.value.value="");return}i.value=!0;try{if(n.multiple){const X=Array.from(w).map(async v=>await Ao(v,k())),L=await Promise.all(X),E=L.filter(v=>v?.file_path);if(E.length===0){g();return}E.length<L.length&&g("Деякі файли не вдалося завантажити. Перевірте їх та спробуйте знову.");const S=E.map(v=>v.file_path),N=Array.isArray(r.value)?r.value:[];r.value=[...N,...S],l("change",r.value)}else{const X=w[0],L=await Ao(X,k());if(!L?.file_path){g();return}const E=L.file_path;r.value=E,l("change",E)}}catch(X){const L=X?.message||void 0;g(L)}finally{i.value=!1,s.value&&(s.value.value="")}};return(x,w)=>(e.openBlock(),e.createElementBlock("div",Ca,[e.createElementVNode("input",{class:"hidden",ref_key:"fileInput",ref:s,type:"file",accept:n.format,multiple:x.multiple,onChange:C,disabled:i.value||x.disabled},null,40,va),!x.multiple&&r.value&&!Array.isArray(r.value)?(e.openBlock(),e.createBlock(Zn,{key:0,item:r.value,value:r.value,"onUpdate:value":w[0]||(w[0]=V=>r.value=V)},null,8,["item","value"])):x.multiple?(e.openBlock(),e.createElementBlock("div",Ea,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(V,z)=>(e.openBlock(),e.createBlock(Zn,{multiple:x.multiple,key:z,value:r.value,"onUpdate:value":w[1]||(w[1]=X=>r.value=X),item:V},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",x.disabled||i.value?"opacity-50 cursor-not-allowed":"cursor-pointer hover:border-blue-500 hover:bg-blue-50"])},[i.value?(e.openBlock(),e.createElementBlock("div",Ba)):(e.openBlock(),e.createBlock(e.unref(H.Plus),{key:0,class:"h-4 w-4"}))],2)])):e.createCommentVNode("",!0),x.multiple?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:2,onClick:y,class:e.normalizeClass([x.disabled||i.value?"opacity-50 cursor-not-allowed":"cursor-pointer hover:border-blue-500","relative h-[120px] w-[120px] border text-gray-300 hover:text-blue-500 border-dashed border-gray-300 rounded-lg flex items-center justify-center cursor-pointer hover:border-blue-500 transition-all duration-300 hover:bg-blue-50"])},[i.value?(e.openBlock(),e.createElementBlock("div",Va)):(e.openBlock(),e.createBlock(e.unref(H.Plus),{key:0,class:"h-4 w-4"}))],2))]))}}),[["__scopeId","data-v-dda91e05"]]),Sa={class:"vs-input-file2 flex flex-col gap-4"},$a={class:"flex items-center gap-x-2"},Na=["accept","disabled"],Aa={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"},Ma={key:0,class:"rounded-lg border border-[#CFD9E0] bg-white p-4 shadow-sm"},Fa={class:"flex items-center justify-between text-sm"},Da={class:"truncate pr-4"},Ta={class:"font-medium text-slate-800 truncate"},La={class:"text-slate-500"},Ia={class:"text-slate-500 whitespace-nowrap"},Ra={class:"mt-3 h-2 rounded-full bg-slate-100 overflow-hidden"},Oa={class:"mt-3 flex flex-wrap gap-2 text-sm"},Pa={key:0,class:"mt-2 text-sm text-rose-600"},za=e.defineComponent({__name:"vs-input-file2",props:e.mergeModels({format:{},max_size:{},api:{},chunkSize:{default:5*1024*1024},subdir:{default:""},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref(null),l=e.ref(null),a=e.ref(""),s=e.ref(0),i=e.ref(!1),c=e.ref(""),d=e.ref(null),u=e.inject("values"),p=e.computed(()=>t.format?t.format.split(",").map($=>$.trim().toLowerCase()).filter(Boolean):[]),h=e.computed(()=>!l.value||!l.value.size?0:Math.min(100,Math.round(s.value/l.value.size*100))),k=e.computed(()=>l.value?`${y(s.value)} / ${y(l.value.size)}`:""),m=e.computed(()=>t.disabled?"opacity-50 cursor-not-allowed":i.value?"cursor-default text-blue-500":"cursor-pointer hover:border-blue-500 hover:bg-blue-50 hover:text-blue-500"),g=()=>{t.disabled||i.value||V()&&r.value?.click()},y=$=>{if(!Number.isFinite($))return"0 B";const R=["B","KB","MB","GB"];let B=0,F=$;for(;F>=1024&&B<R.length-1;)F/=1024,B+=1;return`${F.toFixed(B===0?0:1)} ${R[B]}`},C=$=>{if(!t.max_size)return!0;const R=t.max_size*1024*1024;return $.size>R?(fe.notify({type:"error",title:"Файл занадто великий",message:`Максимальний розмір ${t.max_size} МБ`,position:"right-bottom"}),!1):!0},x=$=>{if(!p.value.length)return!0;const R=`.${$.name.split(".").pop()?.toLowerCase()||""}`;return p.value.includes(R)?!0:(fe.notify({type:"error",title:"Непідтримуваний формат",message:`Дозволені формати: ${p.value.join(", ")}`,position:"right-bottom"}),!1)},w=e.computed(()=>{const $={},R=[];if(!t.customParams?.length)return{params:$,missing:R};const B=u?.value??{};return t.customParams.forEach(F=>{if(!F)return;const[D,Z]=F.split("="),G=D?.trim(),ee=Z?.trim();if(!G||!ee)return;const le=B[ee];le==null||le===""?R.push(ee):$[G]=le}),{params:$,missing:R}}),V=()=>w.value.missing.length?(fe.notify({type:"warning",title:"Заповніть поля",message:`Потрібні значення: ${w.value.missing.join(", ")}`,position:"right-bottom"}),!1):!0,z=$=>{const R=$.target,B=R.files?.[0];if(B){if(!V()){R.value="";return}if(!C(B)||!x(B)){R.value="";return}l.value=B,s.value=0,a.value="",c.value=""}},X=async()=>{if(!l.value){g();return}try{c.value="";const $={id:a.value||"",fileName:l.value.name,subdir:t.subdir,size:l.value.size,...w.value.params},R=await fetch("/api/file/upload2/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify($)});if(!R.ok)throw new Error("Не вдалося ініціалізувати завантаження");const B=await R.json();a.value=B.id||a.value,s.value=B.uploaded||0,await L()}catch($){c.value=$?.message||"Помилка при старті завантаження"}},L=async()=>{if(!(!l.value||!a.value)){i.value=!0;try{for(;s.value<l.value.size;){const $=s.value,R=Math.min($+t.chunkSize,l.value.size),B=l.value.slice($,R);d.value=new AbortController;const F=await fetch(`/api/file/upload2/${a.value}`,{method:"PATCH",headers:{"Content-Range":`bytes ${$}-${R-1}/${l.value.size}`},body:B,signal:d.value.signal});if(!F.ok)throw new Error("Помилка завантаження частини");const D=await F.json().catch(()=>({}));if(D.uploaded!=null?s.value=Number(D.uploaded):s.value=R,D.finished||s.value>=l.value.size){i.value=!1;const Z=D.file_path||D.url||a.value;n.value={file_id:D.file_id??a.value??Z,file_path:Z},fe.notify({type:"success",title:"Файл завантажено",message:l.value.name,position:"right-bottom"}),v();return}}}catch($){if($?.name==="AbortError")return;c.value=$?.message||"Помилка при завантаженні",i.value=!1}finally{d.value=null,i.value=!1}}},E=()=>{i.value&&(d.value?.abort(),d.value=null,i.value=!1)},S=async()=>{if(l.value){if(!a.value){await X();return}await L()}},N=()=>{d.value?.abort(),d.value=null,v()},v=()=>{const $=r.value;$&&($.value=""),l.value=null,a.value="",s.value=0,c.value=""};return($,R)=>(e.openBlock(),e.createElementBlock("div",Sa,[e.createElementVNode("div",$a,[e.createElementVNode("input",{ref_key:"fileInput",ref:r,type:"file",class:"hidden",accept:t.format,disabled:i.value||t.disabled,onChange:z},null,40,Na),n.value?(e.openBlock(),e.createBlock(Zn,{key:0,item:n.value,"onUpdate:item":R[0]||(R[0]=B=>n.value=B),value:n.value,"onUpdate:value":R[1]||(R[1]=B=>n.value=B)},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",m.value])},[i.value?(e.openBlock(),e.createElementBlock("div",Aa,[R[2]||(R[2]=e.createElementVNode("div",{class:"loader"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(h.value)+"%",1)])):(e.openBlock(),e.createBlock(e.unref(H.Plus),{key:1,class:"h-4 w-4"}))],2))]),l.value&&!n.value?(e.openBlock(),e.createElementBlock("div",Ma,[e.createElementVNode("div",Fa,[e.createElementVNode("div",Da,[e.createElementVNode("div",Ta,e.toDisplayString(l.value.name),1),e.createElementVNode("div",La,e.toDisplayString(y(l.value.size)),1)]),e.createElementVNode("div",Ia,e.toDisplayString(k.value),1)]),e.createElementVNode("div",Ra,[e.createElementVNode("div",{class:"h-full rounded-full bg-blue-500 transition-all duration-300",style:e.normalizeStyle({width:`${h.value}%`})},null,4)]),e.createElementVNode("div",Oa,[!i.value&&s.value>0&&s.value<(l.value?.size||0)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"rounded border border-slate-300 px-3 py-1",onClick:S}," Resume ")):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"rounded border border-slate-300 px-3 py-1",onClick:E}," Pause ")):e.createCommentVNode("",!0),!i.value&&s.value===0?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",class:"rounded border border-slate-300 px-3 py-1",onClick:X}," Upload ")):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"rounded border border-rose-200 px-3 py-1 text-rose-600",onClick:N}," Cancel ")]),c.value?(e.openBlock(),e.createElementBlock("p",Pa,e.toDisplayString(c.value),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]))}}),Jn=ke(za,[["__scopeId","data-v-19ea2129"]]),ja={class:"flex items-center justify-center h-[30px] w-[30px]"},Ua={class:"max-w-[55vw]"},Ha={class:"text-sm font-semibold text-gray-800 truncate dark:text-neutral-200"},qa={class:"flex items-center text-xs text-gray-500 truncate dark:text-neutral-500"},Ka={class:"px-[5px]"},Wa={class:""},bn=e.defineComponent({__name:"vs-widget-file-info",props:{item:{default:null}},setup(o){const t=o,n=e.computed(()=>{try{return new Date(t.item.cdate).toLocaleDateString("uk-UA",{day:"2-digit",month:"long",year:"numeric"})}catch{return""}});function r(l){if(l<1024)return`${l} B`;const a=l/1024;return a<1024?`${a.toFixed(2)} KB`:`${(a/1024).toFixed(2)} MB`}return(l,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",ja,[e.createVNode(e.unref(H.FileText),{class:"icon icon-tabler icons-tabler-outline icon-tabler-file h-4 w-4"})]),e.createElementVNode("div",Ua,[e.createElementVNode("p",Ha,e.toDisplayString(l.item?.uploaded_name),1),e.createElementVNode("p",qa,[e.createElementVNode("span",null,e.toDisplayString(l.item?.username),1),e.withDirectives(e.createElementVNode("span",Ka,"|",512),[[e.vShow,l.item?.username]]),e.createElementVNode("span",null,e.toDisplayString(n.value),1),a[0]||(a[0]=e.createElementVNode("span",{class:"px-[5px]"},"|",-1)),e.createElementVNode("span",Wa,e.toDisplayString(r(l.item?.size)),1)])])],64))}}),Ga={class:"p-3 relative group flex items-center gap-x-3 border border-gray-200 bg-white rounded-md w-full"},Ya={key:0,class:"flex w-full gap-x-3 items-center"},Xa={key:1,class:"flex gap-x-3 w-full items-center"},Za={key:2,class:"flex gap-x-3 w-full items-center"},Ja=["href"],Qa={key:3,class:"flex gap-x-3 w-full items-center"},es={class:"lg:absolute lg:top-3 lg:end-1 opacity-100"},ts={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"},ns={class:"inline-block"},os={class:"inline-block"},rs={class:"inline-block"},ls=e.defineComponent({__name:"vs-widget-file-item",props:{item:{default:null},index:{default:0},prefix:{default:"/api"}},emits:["update","openModal","openLightbox"],setup(o,{emit:t}){const n=o,r=t;function l(p){return["pdf","json"].includes(p.ext)}function a(p){return["ppt","pptx","doc","docx","xls","xlsx"].includes(p.ext)}function s(p){const h=document.createElement("a");h.setAttribute("download",p?.uploaded_name),h.href=p?.file_path,h.click()}function i(p){p?.file_path&&window.open(p.file_path,"_blank")}async function c(){try{await fetch(`${n.prefix}/widget/file/${n.item.entity_id}/${n.item.file_id}`),r("update")}catch(p){console.error(p)}}function d(){r("openModal",{title:"Ви впевнені?",message:"Ви впевнені, що хочете видалити цей файл?",confirmButtonText:"Так, я впевнена/ий",cancelButtonText:"Скасувати",confirm:c,updateListOnConfirm:!0})}function u(p){(n.item.ext==="jpg"||n.item.ext==="png")&&r("openLightbox",{item:n.item,index:p})}return(p,h)=>(e.openBlock(),e.createElementBlock("div",Ga,[p.item.ext==="jpg"||p.item.ext==="png"?(e.openBlock(),e.createElementBlock("div",Ya,[e.createElementVNode("div",{class:"max-w-[55vw] cursor-pointer flex gap-x-3 w-full items-center",onClick:h[0]||(h[0]=k=>u(p.index))},[e.createVNode(bn,{item:p.item},null,8,["item"])])])):l(p.item)?(e.openBlock(),e.createElementBlock("div",Xa,[e.createVNode(bn,{item:p.item},null,8,["item"])])):a(p.item)?(e.openBlock(),e.createElementBlock("div",Za,[e.createElementVNode("a",{href:`/api/file-preview?id=${p.item.file_id}`,target:"_blank",class:"flex gap-x-3 w-full items-center"},[e.createVNode(bn,{item:p.item},null,8,["item"])],8,Ja)])):(e.openBlock(),e.createElementBlock("div",Qa,[e.createVNode(bn,{item:p.item},null,8,["item"])])),e.createElementVNode("div",es,[e.createElementVNode("div",ts,[e.createElementVNode("div",ns,[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]=k=>i(p.item))},[e.createVNode(e.unref(H.Eye),{class:"h-4 w-4"})])]),e.createElementVNode("div",os,[e.createElementVNode("button",{class:"inline-flex p-[6px] justify-center items-center gap-x-2 rounded-lg border border-transparent text-gray-500 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none dark:text-neutral-400 focus:outline-none focus:bg-gray-100 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",onClick:h[2]||(h[2]=k=>s(p.item))},[e.createVNode(e.unref(H.Download),{class:"h-4 w-4"})])]),h[4]||(h[4]=e.createElementVNode("div",{class:"w-px h-5 mx-1 bg-gray-200 dark:bg-neutral-700"},null,-1)),e.createElementVNode("div",rs,[e.createElementVNode("button",{type:"button",class:"size-[30px] inline-flex justify-center items-center gap-x-2 rounded-lg border border-transparent text-red-600 hover:bg-red-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-red-100 dark:text-red-500 dark:hover:bg-red-500/20 dark:focus:bg-red-500/20",onClick:h[3]||(h[3]=k=>d())},[e.createVNode(e.unref(H.Trash2),{class:"h-4 w-4"})])])])])]))}}),as={class:"flex flex-col widget-file xl:bg-white xl:rounded-xl dark:xl:bg-neutral-800 dark:xl:border-neutral-700 w-full"},ss={class:"flex w-full mb-[12px] items-center gap-x-2"},is={class:"font-semibold text-gray-800 dark:text-neutral-200 text-[14px]"},cs={class1:"ml-auto"},ds={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"},us={key:0,class:"py-4 mb-4 space-y-4 border-gray-200 border-y dark:border-neutral-700"},ps={class:"relative"},fs={class:"absolute inset-y-0 start-0 flex items-center pointer-events-none z-[1] ps-3.5"},ms={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"},hs={key:0},Do=e.defineComponent({__name:"vs-input-file-list",props:{id:{default:""},prefix:{default:"/api"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update"],setup(o,{emit:t}){const n=o,r=e.inject("form"),l=e.computed(()=>r.value.formId),a=e.ref(!1),s=e.ref(0),i=t,c=e.ref(!1),d=e.ref({}),u=e.ref([]),p=e.ref(""),h=e.computed(()=>Array.isArray(u.value)?u.value.filter(w=>w.ext==="jpg"||w.ext==="png").map(w=>w?.file_path):[]),k=e.computed(()=>p.value===""?u.value:u.value.filter(w=>w?.uploaded_name?.includes(p.value))),m=w=>{const V=h.value.findIndex(z=>z===w.item.file_path);V!==-1&&(a.value=!0,s.value=V)},g=async()=>{try{const w=await fetch(`${n.prefix}/widget/file/${l.value}`).then(V=>V.json());u.value=w?.rows}catch(w){console.error(w)}},y=async w=>{await Promise.all(Array.from(w.target.files).map(async V=>{const z=new FormData;z.append("file",V);try{const X=`${n.prefix}/widget/file/${l.value}`,L=await fetch(X,{method:"POST",body:z});return L.ok?(i("update","file-list"),V):(fe.notify({type:L.status>=400&&L.status<500?"warning":"error",title:"Error",message:`Error code: ${L.status}`}),null)}catch(X){return fe.notify({type:"error",title:"Error",message:X.message||"Unknown error"}),console.error(X),null}})),await g()},C=w=>{const V={...w};return w.cancel||(V.cancel=()=>{c.value=!1}),w.updateListOnConfirm&&(V.confirm=async()=>{await w.confirm(),c.value=!1,g()}),V},x=w=>{d.value=C(w),c.value=!0};return e.watch(l,w=>{w&&g()}),e.onMounted(()=>{l.value&&g()}),(w,V)=>{const z=e.resolveComponent("Lightbox"),X=e.resolveComponent("MessageBox");return e.openBlock(),e.createElementBlock("div",as,[e.createElementVNode("div",ss,[e.createElementVNode("h2",is," Файлів: "+e.toDisplayString(u.value?.length),1),e.createElementVNode("div",cs,[e.createElementVNode("label",null,[e.createElementVNode("input",{type:"file",class:"hidden",onChange:V[0]||(V[0]=L=>y(L))},null,32),e.createElementVNode("div",ds,[e.createVNode(e.unref(H.Upload),{class:"h-4 w-4"})])])])]),u.value?.length>4?(e.openBlock(),e.createElementBlock("div",us,[e.createElementVNode("div",null,[e.createElementVNode("div",ps,[e.createElementVNode("div",fs,[e.createVNode(e.unref(H.Search),{class:"flex-shrink-0 text-gray-500 size-4 dark:text-neutral-400"})]),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":V[1]||(V[1]=L=>p.value=L),class:"py-2 px-3 ps-10 pe-16 block w-full bg-gray-200 xl:bg-gray-100 rounded-lg text-sm focus:border-blue-500 h-[40px] focus:border-2 focus:outline-none disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:border-transparent dark:text-neutral-400 dark:placeholder:text-neutral-400 dark:focus:ring-neutral-600",placeholder:"Введіть назву файлу"},null,512),[[e.vModelText,p.value,void 0,{trim:!0}]])])])])):e.createCommentVNode("",!0),u.value?.length?(e.openBlock(),e.createElementBlock("div",ms,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,(L,E)=>(e.openBlock(),e.createBlock(ls,{key:E,prefix:w.prefix,item:L,index:E,onUpdate:V[2]||(V[2]=S=>w.$emit("update","file-list")),onOpenModal:V[3]||(V[3]=S=>x(S)),onOpenLightbox:V[4]||(V[4]=S=>m(S))},null,8,["prefix","item","index"]))),128)),k.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",hs,V[8]||(V[8]=[e.createElementVNode("p",{class:"text-sm text-gray-600 font-sm"}," Файлів з такою назвою не існує, введіть інше пошукове слово ",-1)])))])):e.createCommentVNode("",!0),e.createVNode(z,{modelValue:a.value,"onUpdate:modelValue":V[5]||(V[5]=L=>a.value=L),startIndex:s.value,"onUpdate:index":V[6]||(V[6]=L=>s.value=L),images:h.value},null,8,["modelValue","startIndex","images"]),e.createVNode(X,e.mergeProps({modelValue:c.value,"onUpdate:modelValue":V[7]||(V[7]=L=>c.value=L),onConfirm:d.value.confirm},d.value),null,16,["modelValue","onConfirm"])])}}}),gs={class:"flex items-center justify-between"},ys={class:"text-[16px] text-gray-900 font-medium"},bs={class:"grid gap-3"},ks=ke(e.defineComponent({__name:"vs-container-switcher",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(o){const t=o,n=e.ref(t.isOpen);return e.watch(()=>t.isOpen,r=>{n.value=r}),(r,l)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",gs,[e.createElementVNode("p",ys,e.toDisplayString(o.title),1),e.createVNode(Kn,{modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=a=>n.value=a),style:e.normalizeStyle(o.style)},null,8,["modelValue","style"])]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",bs,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-90320b87"]]),xs={class:"text-[16px] text-gray-900 font-medium"},ws={class:"grid gap-3"},_s=ke(e.defineComponent({__name:"vs-container-accordion",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(o){const t=o,n=e.ref(t.isOpen);return e.watch(()=>t.isOpen,r=>{n.value=r}),(r,l)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("button",{type:"button",onClick:l[0]||(l[0]=a=>n.value=!n.value),class:"flex items-center gap-2"},[e.createVNode(e.unref(H.ChevronDown),{class:e.normalizeClass(["h-4 w-4 duration-300",[n.value?"-rotate-180":""]])},null,8,["class"]),e.createElementVNode("span",xs,e.toDisplayString(o.title),1)]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",ws,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-0c825d65"]]),Cs={class:"flex items-center justify-between"},vs={switcher:ks,accordion:_s,default:e.defineComponent({__name:"vs-container-default",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})}},setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",Cs,[e.createElementVNode("p",null,e.toDisplayString(o.title),1)]),e.renderSlot(t.$slots,"default")]))}})},ot={Equal:"==",Inequal:"!=",Higer:">",HigerOrEqual:">=",Lower:"<",LowerOrEqual:"<=",Between:"between",StartWith:"^",EndWith:"$",Contain:"*",In:"in",NotIn:"not_in"},Es=(o,t)=>String(o)===String(t),Bs=(o,t)=>String(o)!==String(t),Vs=(o,t)=>o>t,Ss=(o,t)=>o>=t,$s=(o,t)=>o<t,Ns=(o,t)=>o<=t,As=(o,t)=>Array.isArray(t)&&t.length===2?o>=t[0]&&o<=t[1]:!1,Ms=(o,t)=>String(o).startsWith(String(t)),Fs=(o,t)=>String(o).endsWith(String(t)),Ds=(o,t)=>String(o).includes(String(t)),Ts=(o,t)=>Array.isArray(t)?t.includes(o):!1,Ls=(o,t)=>Array.isArray(t)?!t.includes(o):!0,To=(o,t)=>{if(!t)return!0;switch(t?.[1]){case ot.Equal:return Es(o,t?.[2]);case ot.Inequal:return Bs(o,t?.[2]);case ot.Higer:return Vs(o,t?.[2]);case ot.HigerOrEqual:return Ss(o,t?.[2]);case ot.Lower:return $s(o,t?.[2]);case ot.LowerOrEqual:return Ns(o,t?.[2]);case ot.Between:return As(o,t?.[2]);case ot.StartWith:return Ms(o,t?.[2]);case ot.EndWith:return Fs(o,t?.[2]);case ot.Contain:return Ds(o,t?.[2]);case ot.In:return Ts(o,t?.[2]);case ot.NotIn:return Ls(o,t?.[2]);default:return!0}},Lo=e.defineComponent({__name:"vs-input-container",props:{style:{type:Object,default:()=>({})},title:{type:String,default:""},view:{type:String,default:"default"},name:{type:String,default:""},schema:{type:Array,default:()=>[]}},setup(o){const t=o,n=e.inject("values",e.ref({})),r=e.inject("form"),l=e.computed(()=>t.schema?.filter(i=>{const c=i?.conditions;if(!c)return!0;const d=Array.isArray(c)?c[0]:c,u=t.name?n.value?.[t.name]?.[d]??n.value?.[d]:n.value?.[d];return To(u,c)})),a=e.computed(()=>vs[t.view]),s=e.computed(()=>{if(n.value||(n.value={}),!t.name)return n.value;const i=n.value[t.name];if(i)return i;const c={};return n.value={...n.value,[t.name]:c},c});return(i,c)=>o.schema?.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{key:0,title:o.title,style:e.normalizeStyle(o.style)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,d=>(e.openBlock(),e.createBlock(lr,e.mergeProps({key:d.name},{ref_for:!0},d,{item:d,modelValue:s.value[d.name],"onUpdate:modelValue":u=>s.value[d.name]=u,style:o.style,error:e.unref(r)?.errors?.[d.name]}),null,16,["item","modelValue","onUpdate:modelValue","style","error"]))),128))]),_:1},8,["title","style"])):e.createCommentVNode("",!0)}}),Io=({props:o,fetchOptionByValue:t,optionsList:n,selectedOption:r,modelValue:l,onCreated:a})=>{const s=e.ref(!1),i=e.ref({}),c=e.ref([]),d=e.ref(null),u=e.computed(()=>o.add?.title||"Додати"),p=e.computed(()=>o.add?.token||o.add?.model||""),h=e.computed(()=>o.add?.pk||"id");return{isOpenAdd:s,addData:i,addSchema:c,addForm:d,addTitle:u,addOption:async()=>{if(!(!p.value||d?.value.validate()))try{const y=o.add?.api??`/api/table/${p.value}`,C=await fetch(y,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i.value)}),x=await C.json().catch(()=>({})),w=x?.error||x?.message,V=Number(x?.code)>=400;if(!C.ok||V){fe.notify({title:"Помилка",type:"error",message:w||`Код помилки: ${x?.code||C.status}`});return}const z=x?.[h.value]??x?.id;if(!z){fe.notify({title:"Помилка",type:"error",message:"Обʼєкт створено, але в відповіді відсутній ID."});return}const X=await t(z);X&&(n.value.some(E=>String(E?.id)===String(X.id))||n.value.push(X)),a?await a(X,z):X&&(r.value=X,l.value=z),s.value=!1,fe.notify({title:"Успіх",message:"Обʼєкт успішно створено."})}catch(y){fe.notify({title:"Помилка",type:"error",message:y?.message||"Не вдалося створити обʼєкт."})}},onAddValue:async()=>{if(!o.add)return null;const g=await fetch(`/api/template/form/${o.add.form}`).then(y=>y.json());return c.value=g.schema,i.value={},s.value=!0,null}}},Is=["aria-expanded","data-focus"],Rs={class:"relative flex flex-1 items-center gap-1 py-0.5 pl-1 pr-0 overflow-hidden h-full min-w-0"},Os={key:0,class:"flex flex-nowrap items-center gap-1 overflow-x-auto overflow-y-hidden min-w-0 flex-1 py-0.5"},Ps={class:"flex items-center gap-1 min-w-0"},zs=["title"],js=["innerHTML"],Us=["onClick"],Hs={class:"flex-1 min-w-[2px]"},qs=["placeholder"],Ks=["title"],Ws=["innerHTML"],Gs={key:3,class:"truncate flex-1 min-w-0"},Ys={key:2,class:"flex-1 min-w-[2px]"},Xs=["placeholder"],Zs={class:"flex items-center shrink-0"},Js=["disabled"],Qs={key:1,class:"self-stretch w-px bg-[#ccc] my-[1px]"},ei=["disabled","title"],ti=e.defineComponent({__name:"vs-select-control",props:{disabled:{type:Boolean},isOpen:{type:Boolean},inputFocus:{type:Boolean},isMulti:{type:Boolean},selectedOptions:{},selectedIds:{},placeholder:{},search:{type:Boolean},optionTemplate:{default:""},iconWrapperClass:{},selectedOptionLabel:{},selectedOption:{},showClear:{type:Boolean},keyWord:{default:""},setTriggerRef:{},setInputRef:{},shouldShowColorDot:{},optionHasIcon:{},getIconColorStyle:{},resolveOptionIcon:{},renderTemplate:{},getLabel:{},onControlKeydown:{},onControlClick:{},onInputFocus:{},onInputBlur:{},onInputKeydown:{},onRemoveSelected:{},onClearSelected:{},onToggleSelect:{}},emits:["update:keyWord"],setup(o,{emit:t}){const n=o,r=t,l=e.computed({get:()=>n.keyWord,set:a=>r("update:keyWord",a)});return(a,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-input-select__control flex min-h-[38px] items-center justify-between rounded transition-colors bg-white",a.disabled?"bg-gray-100 text-gray-400 cursor-not-allowed":""]),role:"combobox","aria-expanded":a.isOpen,"aria-haspopup":"listbox",onKeydown:s[10]||(s[10]=(...i)=>a.onControlKeydown&&a.onControlKeydown(...i)),onClick:s[11]||(s[11]=(...i)=>a.onControlClick&&a.onControlClick(...i)),"data-focus":a.isOpen||a.inputFocus?"true":"false",ref:a.setTriggerRef},[e.createElementVNode("div",Rs,[a.isMulti?(e.openBlock(),e.createElementBlock("div",Os,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.selectedOptions,i=>(e.openBlock(),e.createElementBlock("div",{key:i.id,class:"flex min-w-0 bg-[rgb(230,230,230)] rounded-[2px] m-[2px] box-border max-w-full"},[e.createElementVNode("div",Ps,[a.shouldShowColorDot(i)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[16px] h-[16px] rounded-md block ml-1.5 flex-shrink-0",style:e.normalizeStyle({backgroundColor:i?.color})},null,4)):e.createCommentVNode("",!0),!a.optionTemplate&&a.optionHasIcon(i)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(a.iconWrapperClass),style:e.normalizeStyle(a.getIconColorStyle(i)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.resolveOptionIcon(i)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"truncate text-[#172b4d] overflow-hidden max-w-[200px] px-0.5 pl-1.5",title:a.getLabel(i)},[a.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:a.renderTemplate(i)},null,8,js)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(i.text),1)],64))],8,zs)]),e.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border text-[#172b4d] hover:bg-[rgb(255,189,173)] hover:text-[rgb(222,53,11)] flex-shrink-0",onClick:e.withModifiers(c=>a.onRemoveSelected(i.id),["stop"])},[e.createVNode(e.unref(H.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,Us)]))),128)),e.createElementVNode("div",Hs,[!a.disabled&&a.search?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref:a.setInputRef,class:"w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900 hover:cursor-pointer",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:a.selectedIds.length?" ":a.placeholder,"onUpdate:modelValue":s[0]||(s[0]=i=>l.value=i),onFocus:s[1]||(s[1]=(...i)=>a.onInputFocus&&a.onInputFocus(...i)),onBlur:s[2]||(s[2]=(...i)=>a.onInputBlur&&a.onInputBlur(...i)),onKeydown:s[3]||(s[3]=(...i)=>a.onInputKeydown&&a.onInputKeydown(...i))},null,40,qs)),[[e.vModelText,l.value]]):e.createCommentVNode("",!0)])])):!a.isMulti&&a.selectedOptionLabel&&l.value===""?(e.openBlock(),e.createElementBlock("div",{key:1,class:"truncate text-gray-900 absolute inset-x-0 pl-2 flex items-center gap-1 min-w-0",title:a.selectedOptionLabel},[a.shouldShowColorDot(a.selectedOption)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[14px] h-[14px] rounded-md block flex-shrink-0",style:e.normalizeStyle({backgroundColor:a.selectedOption?.color})},null,4)):e.createCommentVNode("",!0),!a.optionTemplate&&a.optionHasIcon(a.selectedOption)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(a.iconWrapperClass),style:e.normalizeStyle(a.getIconColorStyle(a.selectedOption)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.resolveOptionIcon(a.selectedOption)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),a.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:2,class:"truncate flex-1 min-w-0",innerHTML:a.renderTemplate(a.selectedOption)},null,8,Ws)):(e.openBlock(),e.createElementBlock("span",Gs,e.toDisplayString(a.selectedOption?.text),1))],8,Ks)):e.createCommentVNode("",!0),a.isMulti?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Ys,[!a.disabled&&a.search?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref:a.setInputRef,class:"w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900 hover:cursor-pointer",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:a.selectedOptionLabel?" ":a.placeholder,"onUpdate:modelValue":s[4]||(s[4]=i=>l.value=i),onFocus:s[5]||(s[5]=(...i)=>a.onInputFocus&&a.onInputFocus(...i)),onBlur:s[6]||(s[6]=(...i)=>a.onInputBlur&&a.onInputBlur(...i)),onKeydown:s[7]||(s[7]=(...i)=>a.onInputKeydown&&a.onInputKeydown(...i))},null,40,Xs)),[[e.vModelText,l.value]]):e.createCommentVNode("",!0)]))]),e.createElementVNode("div",Zs,[a.showClear?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:a.disabled,onClick:s[8]||(s[8]=e.withModifiers((...i)=>a.onClearSelected&&a.onClearSelected(...i),["stop"]))},[e.createVNode(e.unref(H.X),{class:"h-4 w-4"})],8,Js)):e.createCommentVNode("",!0),a.showClear?(e.openBlock(),e.createElementBlock("div",Qs)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:a.disabled,onClick:s[9]||(s[9]=e.withModifiers((...i)=>a.onToggleSelect&&a.onToggleSelect(...i),["stop"])),title:a.isOpen?"Закрити список":"Відкрити список"},[e.createVNode(e.unref(H.ChevronDown),{class:"h-4 w-4"})],8,ei)])],42,Is))}}),ni=["aria-disabled","onMousedown"],oi={class:"leading-[19px]"},ri=["innerHTML"],li={key:1,class:"px-3 py-2 text-center text-gray-500"},ai=e.defineComponent({__name:"vs-select-dropdown",props:{isOpen:{type:Boolean},dropdownStyle:{},filteredOptionsList:{},selectedNavIndex:{},optionTemplate:{},iconWrapperClass:{},setDropdownRef:{type:Function},setListRef:{type:Function},setItemRef:{type:Function},isSelected:{type:Function},onOptionClick:{type:Function},shouldShowColorDot:{type:Function},optionHasIcon:{type:Function},getIconColorStyle:{type:Function},resolveOptionIcon:{type:Function},renderTemplate:{type:Function}},setup(o){return(t,n)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[t.isOpen?(e.openBlock(),e.createElementBlock("div",{key:0,ref:t.setDropdownRef,class:"fixed z-[3000] rounded bg-white shadow-[0_0_0_1px_rgba(0,0,0,0.1),0_4px_11px_rgba(0,0,0,0.1)]",style:e.normalizeStyle(t.dropdownStyle),role:"listbox"},[e.createElementVNode("div",{class:"overflow-y-auto py-1",style:e.normalizeStyle({maxHeight:t.dropdownStyle.maxHeight||"300px"}),ref:t.setListRef},[t.filteredOptionsList.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.filteredOptionsList,(r,l)=>(e.openBlock(),e.createElementBlock("div",{key:r.id,ref_for:!0,ref:a=>t.setItemRef(a,l),class:e.normalizeClass(["flex px-3 py-2 gap-2 cursor-pointer select-none text-gray-900",t.isSelected(r.id)?"bg-[#2684ff] text-white":"bg-white hover:bg-[#deebff] hover:text-[#172b4d]",t.selectedNavIndex===l&&!t.isSelected(r.id)?"bg-[#deebff] text-[#172b4d]":""]),"aria-disabled":t.isSelected(r.id)?"true":"false",role:"option",tabindex:"-1",onMousedown:e.withModifiers(a=>t.onOptionClick(r),["prevent","stop"])},[t.shouldShowColorDot(r)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[11px] h-[11px] rounded-full block flex-shrink-0",style:e.normalizeStyle({backgroundColor:r?.color})},null,4)):e.createCommentVNode("",!0),!t.optionTemplate&&t.optionHasIcon(r)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(t.iconWrapperClass),style:e.normalizeStyle(t.getIconColorStyle(r)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.resolveOptionIcon(r)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),e.createElementVNode("div",oi,[t.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:t.renderTemplate(r)},null,8,ri)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(r.text),1)],64))])],42,ni))),128)):(e.openBlock(),e.createElementBlock("div",li," No options "))],4)],4)):e.createCommentVNode("",!0)]))}}),si=["disabled"],Ro="w-[16px] h-[16px] flex items-center justify-center flex-shrink-0 text-current",Qn=ke(e.defineComponent({__name:"vs-input-select",props:{multiple:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},mode:{},defaultValue:{},search:{type:Boolean,default:!0},placeholder:{default:"Оберіть значення"},prefix:{default:"api"},host:{default:""},data:{default:""},options:{default:()=>[]},api:{default:null},maxHeight:{default:400},parent:{},set:{},slot:{},add:{},teleport:{default:"body"},auto:{default:0},start:{default:0},style:{default:()=>({})},customClass:{default:""},modelValue:{},error:{default:null},name:{},maxlength:{},minlength:{}},emits:["change","update:modelValue","value-selected"],setup(o,{emit:t}){const n=o,r=t,l=e.computed(()=>n.multiple),a=e.computed(()=>n.disabled),s=e.computed(()=>n.search);Oe(n.style);const i=e.computed({get:()=>n.modelValue,set:P=>r("update:modelValue",P)});!i.value&&n.defaultValue&&(i.value=n.defaultValue);const c=e.ref(null),d=e.ref(null),u=e.ref(null),p=e.ref(null),h=e.ref(!1),k=e.ref(!1),m=e.ref(null),g=e.ref(-1),y=e.ref([]),C=e.ref(""),x=e.ref(null),w=P=>{d.value=P},V=P=>{x.value=P},z=P=>{p.value=P},X=P=>{u.value=P},L=(P,oe)=>{y.value[oe]=P},E=e.ref({}),S=e.ref([]),N=e.computed(()=>{if(!S.value.length)return[];const P=he.value,oe=new Map(P.map(ce=>[ce.id?.toString(),ce]));return S.value.map(ce=>oe.get(ce?.toString())).filter(ce=>!!ce)}),v=e.computed(()=>n.placeholder||"Select..."),$=e.computed(()=>le(m.value)),R=e.computed(()=>a.value?!1:l.value?S.value.length>0:!!i.value),B=P=>l.value?S.value.some(oe=>oe?.toString()===P?.toString()):i.value?.toString()===P?.toString(),F=e.computed(()=>{let P=he.value??[];if(!n.data&&C.value.trim()!==""){const oe=C.value.toLowerCase();P=P.filter(ce=>{const Ee=le(ce).toLowerCase(),Me=ce.text?.toLowerCase?.()||"";return Ee.includes(oe)||Me.includes(oe)})}if(l.value&&S.value.length){const oe=new Set(S.value.map(ce=>ce?.toString()));P=P.filter(ce=>!oe.has(ce.id?.toString()))}return P}),D=e.inject("values"),Z=e.inject("field-props"),G=e.computed(()=>n.slot??n?.optionTemplate??""),ee=P=>gn(P,G.value),le=P=>yn(P,G.value),we=e.computed(()=>fn(G.value)),me=P=>Gt(P),ne=P=>!!(!we.value&&Vt(P)&&!me(P)),ie=P=>{const oe=Vt(P);return oe?{color:oe}:void 0},ge=P=>!!(!we.value&&(Wt(P)||me(P))),Q=(P,oe,ce)=>{if(!Z)return!1;const Ee=Z.value?.[P]??{},Me=(Fe,tt,dt)=>{if(!tt.length)return Fe;const[ut,...bt]=tt,at={...Fe};if(!bt.length)return at[ut]=dt,at;const dn=typeof Fe[ut]=="object"&&Fe[ut]!==null?Fe[ut]:{};return at[ut]=Me(dn,bt,dt),at},Ue=Me(Ee,oe,ce);return Z.value={...Z.value||{},[P]:Ue},!0},de=P=>{if(!n.set)return;const oe=D?.value;!oe&&!Z||Object.entries(n.set).forEach(([ce,Ee])=>{if(!ce)return;const Me=P?P[Ee]:null,Ue=ce.split(".").map(dt=>dt.trim()).filter(Boolean);if(!Ue.length)return;const[Fe,...tt]=Ue;tt.length&&Q(Fe,tt,Me??null)||oe&&(oe[Fe]=Me??null)})},{optionsList:he,parentValue:Be,fetchOptions:$e,fetchOptionByValue:Re,loadOptions:Ae}=hn({props:n,formValues:D,watchParent:!1}),Ce=P=>P==null?"":String(P),Ve=P=>{if(l.value){if(!S.value.length){he.value=P;return}}else if(!m.value){he.value=P;return}const oe=new Set(P.map(Ee=>Ce(Ee.id)).filter(Boolean));if(l.value){const Ee=new Set(S.value.map(Ue=>Ce(Ue)).filter(Boolean)),Me=(he.value??[]).filter(Ue=>{const Fe=Ce(Ue.id);return!Fe||!Ee.has(Fe)?!1:!oe.has(Fe)});he.value=[...Me,...P];return}const ce=Ce(m.value?.id);if(ce&&!oe.has(ce)){he.value=[m.value,...P];return}he.value=P},Se=e.ref(0),Ne=async P=>{const oe=++Se.value,ce=await $e(P);return oe!==Se.value?null:ce},Le=async()=>{if(n.data){const P=await Ne(C.value);return P&&Ve(P),he.value}return Ae()},Ie=async P=>{if(P==null||P==="")return null;const oe=he.value?.find(ce=>ce?.id?.toString()===String(P));return oe||Re(P)},Qe=async P=>{const oe=new Set(he.value.map(Ee=>Ee.id?.toString())),ce=P.filter(Ee=>!oe.has(Ee?.toString()));ce.length&&await ce.reduce(async(Ee,Me)=>{await Ee;const Ue=await Ie(Me);Ue&&he.value.push(Ue)},Promise.resolve())},U=()=>{if(!F.value.length){g.value=-1;return}let P=0;if(!l.value&&m.value){const oe=m.value.id?.toString(),ce=F.value.findIndex(Ee=>Ee.id?.toString()===oe);ce>=0&&(P=ce)}g.value=P,e.nextTick(()=>{K(y.value[P],u.value)})},J=async()=>{a.value||(h.value=!0,await Le(),await e.nextTick(()=>{se(),x.value?.focus()}),U())},re=()=>{h.value=!1,g.value=-1,e.nextTick(()=>{x.value?.blur()})},I=async P=>{if(a.value)return;(P!==void 0?P:!h.value)?await J():re()},W=async()=>{if(!a.value){if(h.value){re();return}await J()}},_e=()=>{l.value?(S.value=[],i.value=[],r("change",[]),j(null,[])):(m.value=null,i.value=null,r("change",null),j(null,null)),de(null),C.value="",e.nextTick(()=>{x.value?.focus(),h.value||J()})},O=P=>{l.value&&(S.value=S.value.filter(oe=>oe?.toString()!==P?.toString()),i.value=[...S.value],r("change",i.value),j(null),e.nextTick(()=>x.value?.focus()))},j=(P,oe)=>{const ce=oe??(l.value?[...S.value]:P?.id??null);r("value-selected",{name:n.name,value:ce,option:P})},q=P=>{l.value?(B(P.id)||(S.value=[...S.value,P.id],i.value=[...S.value],r("change",i.value),j(P)),C.value="",e.nextTick(()=>{x.value?.focus(),g.value=Math.min(g.value,F.value.length-1)}),de(null)):(m.value=P,i.value=P.id,r("change",i.value),j(P),C.value="",re(),de(P))},M=P=>{if(B(P.id)){l.value||re();return}q(P)},K=(P,oe)=>{if(!P||!oe)return;const ce=P.offsetTop,Ee=ce+P.offsetHeight,Me=oe.scrollTop,Ue=Me+oe.clientHeight;let Fe=oe.scrollTop;ce<Me?Fe=ce-80:Ee>Ue&&(Fe=Ee-oe.clientHeight+4);const tt=oe;tt.scrollTop=Fe},te=P=>{let oe=P.parentElement;for(;oe;){if(oe.classList.contains("ui-dialog__content"))return oe;const ce=window.getComputedStyle(oe),Ee=ce.overflow+ce.overflowY+ce.overflowX;if(Ee.includes("auto")||Ee.includes("scroll")||oe===document.body||oe===document.documentElement)return oe;oe=oe.parentElement}return document.body},se=()=>{if(!d.value)return;const P=d.value.getBoundingClientRect(),oe=window.innerHeight||document.documentElement.clientHeight,ce=window.innerWidth||document.documentElement.clientWidth,Ee=8,Me=8,Ue=n.maxHeight||300,Fe=oe-P.bottom-Me-Ee,tt=P.top-Me-Ee,dt=Fe>=tt,ut=Math.max(ce-Ee*2,0);let{width:bt}=P;ut>0&&bt>ut&&(bt=ut);let{left:at}=P;at+bt+Ee>ce&&(at=ce-bt-Ee),at=Math.max(at,Ee);const dn=Math.min(Ue,Math.max(dt?Fe:tt,50));E.value={position:"fixed",left:`${at}px`,width:`${bt}px`,maxHeight:`${dn}px`,transform:dt?"none":"translateY(-100%)",top:dt?`${P.bottom+Me}px`:`${P.top-Me}px`}},ve=async P=>{a.value||!h.value&&(P.key==="ArrowDown"||P.key==="ArrowUp")&&(P.preventDefault(),await J())},et=P=>{if(!h.value)return;const{key:oe}=P;if(oe==="ArrowDown")P.preventDefault(),g.value+1<F.value.length&&(g.value+=1,K(y.value[g.value],u.value));else if(oe==="ArrowUp")P.preventDefault(),g.value>0&&(g.value-=1,K(y.value[g.value],u.value));else if(oe==="Enter"){P.preventDefault();const ce=F.value[g.value];ce&&q(ce),x.value?.blur()}else oe==="Escape"?(P.preventDefault(),re()):oe==="Backspace"?l.value&&C.value===""&&S.value.length&&(S.value=S.value.slice(0,-1),i.value=[...S.value],r("change",i.value)):oe==="Home"?(g.value=0,K(y.value[0],u.value)):oe==="End"?(g.value=F.value.length-1,K(y.value[g.value],u.value)):oe==="Tab"&&re()},We=()=>{a.value||(k.value=!0)},vt=()=>{k.value=!1,C.value=""},He=P=>{P.key==="Escape"&&h.value&&re()},qe=P=>{const oe=P.target;c.value?.contains(oe)||p.value?.contains(oe)||re()},gt=P=>{h.value&&u.value&&!u.value.contains(P.target)&&se()},ct=()=>{h.value&&se()},Ht=()=>{h.value&&se()};async function Ft(){if(l.value)Array.isArray(i.value)?S.value=[...i.value]:(S.value=i.value==null?[]:[i.value],i.value=[...S.value]),n.data&&S.value.length&&(await Qe(S.value),await e.nextTick());else{if(Array.isArray(i.value)){const P=i.value[0]??null;i.value=P??null}i.value!=null&&(m.value=await Ie(i.value)),de(m.value??null)}}e.watch(i,()=>{Ft()}),e.onMounted(async()=>{if(addEventListener("keydown",He),addEventListener("scroll",gt,!0),addEventListener("resize",ct),document.addEventListener("click",qe,!0),d.value&&te(d.value).addEventListener("scroll",Ht,!0),n.options?.length&&!n.data)he.value=[...n.options];else if(n.data){const P=await Ne("");P&&Ve(P)}await Ft(),Dt.value=!1}),e.onUnmounted(()=>{removeEventListener("keydown",He),removeEventListener("scroll",gt,!0),removeEventListener("resize",ct),document.removeEventListener("click",qe,!0),d.value&&te(d.value).removeEventListener("scroll",Ht,!0)});const{isOpenAdd:sn,addData:yt,addSchema:Pt,addForm:xo,addTitle:Et,addOption:wo,onAddValue:qt}=Io({props:n,fetchOptionByValue:Re,optionsList:he,selectedOption:m,modelValue:i});function lt(P,oe=200){let ce;return(...Ee)=>{ce&&clearTimeout(ce),ce=window.setTimeout(()=>P(...Ee),oe)}}const cn=lt(async P=>{const oe=await Ne(P);oe&&Ve(oe)},200);e.watch(C,P=>{n.data&&cn(P.trim())}),e.watch(()=>n.options,P=>{!n.data&&P?.length&&(he.value=[...P],Ft())},{immediate:!0});const Dt=e.ref(!0);return e.watch(Be,async()=>{if(n.data&&(Dt.value||(l.value?(S.value=[],i.value=[],r("change",[])):(m.value=null,i.value=null,r("change",null))),await Le(),n.auto===1&&Be.value&&he.value.length>0)){const P=he.value[0];P&&q(P)}}),(P,oe)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(fe.VsModal),{visible:e.unref(sn),"onUpdate:visible":oe[1]||(oe[1]=ce=>e.isRef(sn)?sn.value=ce:null),class:"z-[1000]",title:e.unref(Et),buttonText:"Додати",onDone:e.unref(wo),teleport:P.teleport},{default:e.withCtx(()=>[e.createVNode(rt,{schema:e.unref(Pt),modelValue:e.unref(yt),"onUpdate:modelValue":oe[0]||(oe[0]=ce=>e.isRef(yt)?yt.value=ce:null),ref_key:"addForm",ref:xo},null,8,["schema","modelValue"])]),_:1},8,["visible","title","onDone","teleport"]),e.createElementVNode("div",{class:"flex gap-1 w-full",ref_key:"selectRoot",ref:c,onClick:oe[4]||(oe[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass])},[oe[5]||(oe[5]=e.createElementVNode("span",{id:"react-select-live-region",class:"sr-only"},null,-1)),oe[6]||(oe[6]=e.createElementVNode("span",{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text",role:"log",class:"sr-only"},null,-1)),e.createVNode(ti,{keyWord:C.value,"onUpdate:keyWord":oe[2]||(oe[2]=ce=>C.value=ce),disabled:a.value,"is-open":h.value,"input-focus":k.value,"is-multi":l.value,"selected-options":N.value,"selected-ids":S.value,placeholder:v.value,search:s.value,"option-template":G.value,"icon-wrapper-class":Ro,"selected-option-label":$.value,"selected-option":m.value,"show-clear":R.value,"set-trigger-ref":w,"set-input-ref":V,"should-show-color-dot":ne,"option-has-icon":ge,"get-icon-color-style":ie,"resolve-option-icon":me,"render-template":ee,"get-label":le,"on-control-keydown":ve,"on-control-click":W,"on-input-focus":We,"on-input-blur":vt,"on-input-keydown":et,"on-remove-selected":O,"on-clear-selected":_e,"on-toggle-select":I},null,8,["keyWord","disabled","is-open","input-focus","is-multi","selected-options","selected-ids","placeholder","search","option-template","selected-option-label","selected-option","show-clear"]),e.createVNode(ai,{"is-open":h.value,"dropdown-style":E.value,"filtered-options-list":F.value,"selected-nav-index":g.value,"option-template":G.value,"icon-wrapper-class":Ro,"set-dropdown-ref":z,"set-list-ref":X,"set-item-ref":L,"is-selected":B,"on-option-click":M,"should-show-color-dot":ne,"option-has-icon":ge,"get-icon-color-style":ie,"resolve-option-icon":me,"render-template":ee},null,8,["is-open","dropdown-style","filtered-options-list","selected-nav-index","option-template"])],2),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:oe[3]||(oe[3]=(...ce)=>e.unref(qt)&&e.unref(qt)(...ce)),class:"bg-white hover:bg-gray-100 text-sm text-gray-900 py-[10px] px-3 border border-stone-200 rounded-md h-[38px] flex items-center gap-2",disabled:a.value,type:"button"},[e.createVNode(e.unref(H.Plus),{class:"h-4 w-4"}),oe[7]||(oe[7]=e.createElementVNode("span",null,"Додати",-1))],8,si)):e.createCommentVNode("",!0)],512)],64))}}),[["__scopeId","data-v-8a2f9b30"]]),eo=(o="")=>`${o}${Math.floor(Math.random()*1e4)}`,ii=["disabled","aria-expanded"],ci={class:"truncate"},di={class:"py-2 px-4"},ui={class:"block font-medium text-[13px] text-foreground"},pi={class:"truncate"},fi={class:"p-1 border-t border-gray-200"},mi={class:"space-y-0.5 max-h-48 overflow-y-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-none [&::-webkit-scrollbar-track]:bg-scrollbar-track [&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb"},hi=["onClick"],gi=["checked"],yi={class:"shrink-0 size-3.5 flex justify-center items-center"},bi={key:1,class:"shrink-0 size-2 block mx-auto rounded-full bg-secondary/60"},ki={class:"truncate"},xi={key:0,class:"px-3 py-2 text-xs text-stone-500"},kn=e.defineComponent({__name:"vs-input-inline-select",props:{multiple:{type:Boolean},disabled:{type:Boolean,default:!1},mode:{},defaultValue:{},search:{type:Boolean},placeholder:{default:"Оберіть значення"},prefix:{default:"api"},host:{default:""},data:{default:""},options:{default:()=>[]},api:{default:null},maxHeight:{},parent:{},set:{},slot:{},add:{},teleport:{default:"body"},auto:{},start:{default:0},style:{default:()=>({})},customClass:{default:""},modelValue:{},error:{default:null},name:{},maxlength:{},minlength:{}},emits:["change","update:modelValue","value-selected"],setup(o,{emit:t}){const n=o,r=t;Oe(n.style);const l=e.computed({get:()=>Array.isArray(n.modelValue)?n.modelValue[0]??null:n.modelValue??null,set:Q=>r("update:modelValue",Q)});l.value==null&&n.defaultValue!=null&&(l.value=n.defaultValue);const a=e.inject("values"),s=e.inject("field-props"),i=e.computed(()=>!!n.disabled),c=e.ref(null),d=e.ref(!1),u=e.ref(null),p=e.ref(null),h=e.ref(null),k=e.ref({}),m=`vs-input-inline-select-${eo()}`,g=e.computed(()=>n.placeholder||"Оберіть значення"),y=e.computed(()=>z(c.value)||n.placeholder||"Оберіть значення"),C=e.computed(()=>n.slot??""),x=e.computed(()=>fn(C.value)),w=e.computed(()=>n.teleport||"body"),V=/^#(?:[\da-fA-F]{3}|[\da-fA-F]{6}|[\da-fA-F]{8})$/,z=Q=>yn(Q,C.value),X=Q=>!!(!x.value&&Vt(Q)),L=e.computed(()=>{const Q=Vt(c.value).trim();return Q?V.test(Q)?`bg-[${Q}] border-[${Q}]`:`bg-${Q.toLowerCase()}-500 border-${Q.toLowerCase()}-500`:""}),{optionsList:E,parentValue:S,fetchOptions:N,fetchOptionByValue:v,loadOptions:$}=hn({props:n,formValues:a,watchParent:!1}),R=(Q,de,he)=>{if(!s)return!1;const Be=s.value?.[Q]??{},$e=(Ae,Ce,Ve)=>{if(!Ce.length)return Ae;const[Se,...Ne]=Ce,Le={...Ae};if(!Ne.length)return Le[Se]=Ve,Le;const Ie=typeof Ae[Se]=="object"&&Ae[Se]!==null?Ae[Se]:{};return Le[Se]=$e(Ie,Ne,Ve),Le},Re=$e(Be,de,he);return s.value={...s.value||{},[Q]:Re},!0},B=Q=>{if(!n.set)return;const de=a?.value;!de&&!s||Object.entries(n.set).forEach(([he,Be])=>{if(!he)return;const $e=Q?Q[Be]:null,Re=he.split(".").map(Ve=>Ve.trim()).filter(Boolean);if(!Re.length)return;const[Ae,...Ce]=Re;Ce.length&&R(Ae,Ce,$e??null)||de&&(de[Ae]=$e??null)})},F=Q=>l.value?.toString?.()===Q?.toString?.(),D=()=>{if(!p.value||typeof window>"u")return;const Q=p.value.getBoundingClientRect(),de=8,he=8,Be=window.innerHeight||document.documentElement.clientHeight,$e=window.innerWidth||document.documentElement.clientWidth,Re=h.value?.offsetHeight||260,Ae=Math.max(Q.width,176),Ce=Math.max($e-de*2,120),Ve=Math.min(Ae,Ce);let Se=Q.left;Se+Ve+de>$e&&(Se=$e-Ve-de),Se=Math.max(Se,de);const Ne=Be-Q.bottom-he-de,Le=Q.top-he-de,Ie=Ne<Math.min(Re,260)&&Le>Ne,Qe=Math.max(120,Math.min(320,Ie?Le:Ne));k.value={position:"fixed",left:`${Se}px`,top:Ie?`${Q.top-he}px`:`${Q.bottom+he}px`,transform:Ie?"translateY(-100%)":"none",width:`${Ve}px`,maxHeight:`${Qe}px`}},Z=async()=>{if(n.data){E.value=await N("");return}await $()},G=async()=>{if(l.value==null||l.value===""){c.value=null,B(null);return}const Q=E.value.find(de=>de.id?.toString()===String(l.value));if(Q){c.value=Q,B(Q);return}c.value=await v(l.value),B(c.value??null)},ee=async()=>{i.value||(d.value=!0,await Z(),await e.nextTick(),D())},le=()=>{d.value=!1},we=async()=>{if(d.value){le();return}await ee()},me=Q=>{r("value-selected",{name:n.name,value:Q?.id??null,option:Q})},ne=Q=>{c.value=Q,l.value=Q.id,r("change",Q.id),me(Q),B(Q),le()},ie=Q=>{const de=Q.target;u.value?.contains(de)||h.value?.contains(de)||le()},ge=()=>{d.value&&D()};return e.watch(()=>n.options,Q=>{n.data||(E.value=Q?[...Q]:[],G())},{immediate:!0,deep:!0}),e.watch(l,()=>{G()}),e.watch(S,async()=>{n.data&&(await Z(),c.value&&!E.value.some(Q=>Q.id?.toString()===c.value?.id?.toString())&&(c.value=null,l.value=null,r("change",null),me(null),B(null)))}),e.onMounted(async()=>{document.addEventListener("click",ie,!0),window.addEventListener("resize",ge),window.addEventListener("scroll",ge,!0),await Z(),await G()}),e.onUnmounted(()=>{document.removeEventListener("click",ie,!0),window.removeEventListener("resize",ge),window.removeEventListener("scroll",ge,!0)}),(Q,de)=>(e.openBlock(),e.createElementBlock("div",{class:"relative inline-flex w-full max-w-full",ref_key:"rootRef",ref:u,onClick:de[0]||(de[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("button",{ref_key:"triggerRef",ref:p,type:"button",disabled:i.value,"aria-expanded":d.value?"true":"false","aria-haspopup":"menu",class:e.normalizeClass(["py-1.5 px-2.5 inline-flex items-center gap-2 text-nowrap text-xs sm:text-[13px] rounded-lg focus:outline-hidden disabled:opacity-50 disabled:pointer-events-none max-w-full border",L.value?`${L.value} text-white`:"bg-secondary text-secondary-foreground hover:bg-secondary-hover focus:bg-secondary-focus border-gray-300 hover:border-gray-400"]),onClick:we},[e.createElementVNode("span",ci,e.toDisplayString(y.value),1)],10,ii),(e.openBlock(),e.createBlock(e.Teleport,{to:w.value},[d.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:h,class:"z-[3000] w-44 transition-[opacity,margin] duration-150 bg-white text-gray-900 border border-gray-200 rounded-xl shadow-lg",style:e.normalizeStyle(k.value),role:"menu","aria-orientation":"vertical"},[e.createElementVNode("div",di,[e.createElementVNode("span",ui,[e.createElementVNode("span",pi,e.toDisplayString(g.value),1)])]),e.createElementVNode("div",fi,[e.createElementVNode("div",mi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(E),he=>(e.openBlock(),e.createElementBlock("label",{key:he.id,class:"py-1.5 px-3 group flex items-center gap-x-3 rounded-lg cursor-pointer text-[13px] text-gray-800 hover:bg-gray-100",onClick:e.withModifiers(Be=>ne(he),["prevent"])},[e.createElementVNode("input",{type:"radio",class:"hidden",name:m,checked:F(he.id),tabindex:"-1"},null,8,gi),e.createElementVNode("span",yi,[X(he)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"shrink-0 size-2 block mx-auto rounded-full",style:e.normalizeStyle({backgroundColor:he.color})},null,4)):(e.openBlock(),e.createElementBlock("span",bi))]),e.createElementVNode("span",ki,e.toDisplayString(z(he)),1),e.createVNode(e.unref(H.Check),{class:e.normalizeClass(["shrink-0 size-3.5 ms-auto transition-opacity",F(he.id)?"opacity-100":"opacity-0"])},null,8,["class"])],8,hi))),128))]),e.unref(E).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",xi,"Немає варіантів"))])],4)):e.createCommentVNode("",!0)],8,["to"]))],512))}}),wi=["placeholder","disabled"],Oo=e.defineComponent({__name:"vs-input-textarea",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=Oe(t.style),r=e.useModel(o,"modelValue"),l=e.computed(()=>!!t.disabled),a=e.computed(()=>t.placeholder??"");function s(){typeof r.value=="string"&&(r.value=r.value.trim())}return(i,c)=>e.withDirectives((e.openBlock(),e.createElementBlock("textarea",{"onUpdate:modelValue":c[0]||(c[0]=d=>r.value=d),placeholder:a.value,disabled:l.value,row:"2",onBlur:s,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] h-auto bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"}},null,42,wi)),[[e.vModelText,r.value]])}}),Po=e.defineComponent({__name:"vs-input-richtext",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{},format:{default:"html"},richtextProps:{default:()=>({})}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=e.defineAsyncComponent(()=>Promise.resolve().then(()=>h0)),n=o,{inputClass:r}=Oe(n.style),l=e.useModel(o,"modelValue"),a=e.computed(()=>!!n.disabled),s=e.computed(()=>n.placeholder??""),i=e.computed(()=>({height:n.richtextProps.height||"300px",format:n.format,...n.richtextProps}));return(c,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["!h-full",[c.customClass,e.unref(r)]]),style:e.normalizeStyle(a.value?{pointerEvents:"none",opacity:.6}:{})},[e.createVNode(e.unref(t),e.mergeProps({modelValue:l.value,"onUpdate:modelValue":d[0]||(d[0]=u=>l.value=u),placeholder:s.value},i.value),null,16,["modelValue","placeholder"])],6))}}),_i={},Ci={viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function vi(o,t){return e.openBlock(),e.createElementBlock("svg",Ci,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 Ei=ke(_i,[["render",vi]]),Bi={class:"bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden flex flex-col"},Vi={key:0,class:"flex flex-col gap-2 !p-4 border-b border-gray-200 md:flex-row md:items-center md:justify-between bg-gray-50"},Si={key:0,class:"relative flex-1 min-w-0"},$i={class:"flex flex-nowrap items-center justify-end gap-2 shrink-0"},Ni={class:"w-full overflow-x-auto"},Ai={class:"w-full min-w-[640px] table-auto divide-y divide-gray-200"},Mi={class:"bg-gray-50"},Fi={class:"border-b border-gray-200"},Di={class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 w-12 text-center"},Ti=["onClick"],Li={key:0,class:"text-gray-400"},Ii={key:0,colspan:"100%",class:"text-center"},Ri={class:"w-full"},Oi={class:"p-5 min-h-[200px] flex flex-col justify-center items-center text-center"},Pi=["data-row-index","onDragstart","onDragover","onDrop"],zi=["onPointerdown"],ji={class:"flex items-center justify-center"},Ui=["innerHTML"],Hi={key:0,class:"flex items-center gap-3 text-sm text-gray-700"},qi={key:0},Ki=["src"],Wi={key:1,class:"rounded-md max-w-[45px] w-[45px] max-h-[45px] h-[45px] bg-gray-200 flex items-center justify-center"},Gi={key:1,class:"flex items-center justify-center"},Yi={key:2,class:"text-sm font-medium text-gray-900"},Xi={class:"px-4 py-3 text-right whitespace-nowrap"},Zi={class:"flex items-center justify-end gap-2"},Ji=["onClick"],Qi=["onClick"],ec={class:"vs-form__head mr-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},zo=e.defineComponent({__name:"vs-input-datatable",props:e.mergeModels({actions:{},colModel:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useSlots(),r=U=>t.actions===void 0?!0:t.actions.includes(U),l=["search","import","export","add"],a=e.computed(()=>l.some(U=>r(U))),s=e.useModel(o,"modelValue"),i=e.ref({}),c=e.ref(""),d=e.ref(null),u=e.ref("asc"),p=e.computed(()=>{const U=s.value??[],J=c.value?U.filter(W=>h.value?.some(_e=>{const O=_e.key||_e.name;if(!O)return!1;const j=W[O];return j?Array.isArray(j)?j.join(", ").toLowerCase().includes(c.value.toLowerCase()):String(j).toLowerCase().includes(c.value.toLowerCase()):!1})):U;if(!d.value)return J;const re=d.value,I=[...J].sort((W,_e)=>{const O=$e(W?.[re]),j=$e(_e?.[re]);return typeof O=="number"&&typeof j=="number"?O-j:String(O).localeCompare(String(j))});return u.value==="asc"?I:I.reverse()}),h=e.computed(()=>(t.colModel??[]).filter(U=>!U.tableHidden)),k=e.ref(null),m=e.ref(null),g=e.ref(null);function y(U){return U.pointerType==="touch"||U.pointerType==="pen"}function C(U,J){const I=document.elementFromPoint(U,J)?.closest?.("[data-row-index]")??null;if(!I)return null;const W=I.getAttribute("data-row-index");if(W==null)return null;const _e=Number.parseInt(W,10);return Number.isNaN(_e)?null:_e}function x(U,J){y(U)&&(U.preventDefault(),U.currentTarget.setPointerCapture(U.pointerId),k.value=J,m.value=J)}function w(U){if(k.value===null||!y(U))return;U.preventDefault();const J=C(U.clientX,U.clientY);J!==null&&(m.value=J)}function V(U){if(k.value===null||!y(U))return;U.preventDefault();const J=C(U.clientX,U.clientY);E(J??k.value);try{U.currentTarget.releasePointerCapture(U.pointerId)}catch{}}function z(U){if(y(U)){k.value=null,m.value=null;try{U.currentTarget.releasePointerCapture(U.pointerId)}catch{}}}const X=U=>{k.value=U},L=U=>{m.value=U},E=U=>{if(k.value===null||k.value===U){k.value=null,m.value=null;return}const J=[...s.value],[re]=J.splice(k.value,1);J.splice(U,0,re),s.value=J,k.value=null,m.value=null},S=()=>{g.value&&g.value.click()},N=U=>{const J=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".ico",".tiff",".tif"],re=U.toLowerCase();return J.some(I=>re.endsWith(I))},v=U=>{const re=U.target.files?.[0];if(!re)return;const I=new FileReader;I.onload=W=>{try{const _e=W.target?.result;if(typeof _e=="string"){const O=JSON.parse(_e);Array.isArray(O)&&s.value.push(...O)}}catch(_e){console.error("Error parsing file:",_e)}},I.readAsText(re)},$=()=>{const U=JSON.stringify(s.value,null,2),J=new Blob([U],{type:"application/json"}),re=URL.createObjectURL(J),I=document.createElement("a");I.href=re,I.download="data.json",I.click(),URL.revokeObjectURL(re)},R=new Set(["autocomplete","select","radio","checkbox","combobox"]),B=new Map,F=(U,J)=>{const re=`/api/suggest/${U}`,I=re.includes("?")?"&":"?",W=J?`&val=${J}`:"";return`${re}${I}json=1${W}`},D=U=>U==null||U===""?null:typeof U=="object"?U?.id!==void 0&&U.id!==null&&U.id!==""?U.id:null:U,Z=U=>{const J=new Set;return Array.isArray(s.value)&&s.value.forEach(re=>{const I=re?.[U];if(I==null||I==="")return;if(Array.isArray(I)){I.forEach(_e=>{const O=D(_e);O!==null&&J.add(O)});return}const W=D(I);W!==null&&J.add(W)}),J},G=async()=>{if(!t.colModel?.length)return;const U=t.colModel.filter(J=>J.data&&R.has(J.type?.toLowerCase()||""));U.length&&await Promise.all(U.map(async J=>{const re=J.key||J.name;if(!re)return;const I=Z(re),W=Array.from(I).map(j=>String(j)).sort(),_e=W.join(",");if(!W.length||B.get(re)===_e)return;B.set(re,_e);const O=W.map(encodeURIComponent).join(",");try{const q=await(await fetch(F(J.data,O))).json();i.value[re]=q?.data??q}catch(j){console.error("Failed to fetch column values",j)}}))};e.watch([()=>t.colModel,()=>s.value],()=>{G()},{immediate:!0,deep:!0});const ee=e.ref(""),le=e.ref(!1);let we="edit",me=0;const ne=U=>(U?.format||U?.type||"").toString().toLowerCase(),ie=e.computed(()=>(t.colModel?.filter(J=>ne(J)!=="slot")??[]).map(J=>{const re=J.key||J.name;return re?{...J,name:re,key:re}:J})),ge=e.ref({}),Q=e.ref({}),de=U=>typeof U!="string"?!1:!!n[U],he=(U,J)=>J?J.split(".").reduce((re,I)=>re==null?re:re[I.trim()],U):U,Be=(U,J)=>typeof U!="string"?"":U.replace(/{{\s*([^}]+)\s*}}/g,(re,I)=>{const W=he(J,I.trim());return W??""}),$e=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(J=>$e(J)).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()},Re=U=>{const J=U.key||U.name;if(J){if(d.value===J){u.value=u.value==="asc"?"desc":"asc";return}d.value=J,u.value="asc"}};async function Ae(){ee.value="Додати",le.value=!0,we="add",ge.value={}}function Ce(U,J){if(!U?.length)return null;const re=typeof J=="object"?J?.id:J;return re==null||re===""?null:U.find(I=>I?.id?.toString()===re.toString())?.text??null}function Ve(U){return U==null||U===""?"-":Array.isArray(U)?U.map(J=>typeof J=="object"?J?.text??J?.id??"-":J).join(", "):typeof U=="object"?U?.text??U?.id??"-":U}function Se(U,J){const re=J.key||J.name,I=U?.[re],W=i.value[re];if(!I)return"-";if(Array.isArray(I)){const O=I.map(j=>Ce(W,j)).filter(Boolean);return O.length?O.join(", "):Ve(I)}const _e=Ce(W,I);return _e||Ve(I)}async function Ne(U,J){ee.value="Редагувати",le.value=!0,we="edit",me=J,ge.value={...U}}function Le(){const U=Q.value.validate();if(U){fe.notify({type:"warning",title:"Помилка валідації",message:Object.entries(U).map(([J,re])=>`${J}: ${re}`).join(`
|
|
2
|
+
`)});return}we==="add"?Array.isArray(s.value)?s.value=[...s.value,ge.value]:s.value=[ge.value]:s.value=s.value.map((J,re)=>re===me?ge.value:J),le.value=!1}function Ie(U){s.value=s.value.filter((J,re)=>re!==U)}function Qe(){le.value=!1}return(U,J)=>(e.openBlock(),e.createElementBlock("div",Bi,[a.value?(e.openBlock(),e.createElementBlock("div",Vi,[r("search")?(e.openBlock(),e.createElementBlock("div",Si,[e.createVNode(e.unref(H.Search),{class:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-gray-400"}),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":J[0]||(J[0]=re=>c.value=re),placeholder:"Пошук",class:"w-full rounded-md border border-gray-200 bg-white pl-10 pr-3 py-2 text-sm text-gray-900 placeholder:text-gray-400 focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-100"},null,512),[[e.vModelText,c.value]])])):e.createCommentVNode("",!0),e.createElementVNode("div",$i,[r("import")?(e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"fileInput",ref:g,onChange:v,class:"hidden",accept:".json",type:"file"},null,544)):e.createCommentVNode("",!0),r("import")?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",onClick:S,class:"inline-flex items-center gap-2 rounded-md border border-gray-200 bg-white px-3 py-2 text-sm font-medium text-gray-700 hover:border-gray-300 hover:bg-gray-50 transition-colors"},[e.createVNode(e.unref(H.Upload),{class:"h-4 w-4 text-gray-700"}),J[4]||(J[4]=e.createTextVNode(" Імпорт ",-1))])):e.createCommentVNode("",!0),r("export")?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:$,class:"inline-flex items-center gap-2 rounded-md border border-gray-200 bg-white px-3 py-2 text-sm font-medium text-gray-700 hover:border-gray-300 hover:bg-gray-50 transition-colors"},[e.createVNode(e.unref(H.Download),{class:"h-4 w-4 text-gray-700"}),J[5]||(J[5]=e.createTextVNode(" Експорт ",-1))])):e.createCommentVNode("",!0),r("add")?(e.openBlock(),e.createElementBlock("button",{key:3,onClick:Ae,type:"button",class:"inline-flex items-center gap-2 rounded-md bg-blue-500 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-blue-600 transition-colors"},[e.createVNode(e.unref(H.Plus),{class:"h-4 w-4 text-white"}),J[6]||(J[6]=e.createTextVNode(" Додати ",-1))])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),e.createElementVNode("div",Ni,[e.createElementVNode("table",Ai,[e.createElementVNode("thead",Mi,[e.createElementVNode("tr",Fi,[e.createElementVNode("th",Di,[e.createVNode(e.unref(H.GripVertical),{class:"mx-auto h-4 w-4 text-gray-400"})]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,re=>(e.openBlock(),e.createElementBlock("th",{key:re.key,class:"px-4 py-3 text-left text-xs font-semibold text-gray-900"},[e.createElementVNode("button",{type:"button",onClick:I=>Re(re),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(re.ua||re.label),1),d.value===(re.key||re.name)?(e.openBlock(),e.createElementBlock("span",Li,e.toDisplayString(u.value==="asc"?"▲":"▼"),1)):e.createCommentVNode("",!0)],8,Ti)]))),128)),J[7]||(J[7]=e.createElementVNode("th",{class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 text-center w-[1%] whitespace-nowrap"}," Дії ",-1))])]),e.createElementVNode("tbody",{class:e.normalizeClass(["divide-y divide-gray-200",{"[&_tr:last-child]:border-0":!m.value}])},[p.value.length===0?(e.openBlock(),e.createElementBlock("td",Ii,[e.createElementVNode("div",Ri,[e.createElementVNode("div",Oi,[e.createVNode(Ei,{class:"w-48 mx-auto"}),J[8]||(J[8]=e.createElementVNode("div",{class:"max-w-sm mx-auto mt-6"},[e.createElementVNode("p",{class:"font-medium text-gray-800 dark:text-neutral-200"},"Нічого не знайдено"),e.createElementVNode("p",{class:"mt-2 text-sm text-gray-500 dark:text-neutral-500"})],-1))])])])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,(re,I)=>(e.openBlock(),e.createElementBlock("tr",{key:re.id,"data-row-index":I,class:e.normalizeClass(["border-b transition-colors hover:bg-gray-50 cursor-move text-sm text-gray-700",{"opacity-50":k.value===I,"border-t-2 border-b-2 border-blue-500 bg-blue-50 dark:bg-blue-900/20":m.value===I}]),draggable:"true",onDragstart:W=>X(I),onDragover:e.withModifiers(W=>L(I),["prevent"]),onDrop:W=>E(I)},[e.createElementVNode("td",{class:"px-4 py-3 text-center align-middle touch-none select-none",onPointerdown:W=>x(W,I),onPointermove:w,onPointerup:V,onPointercancel:z},[e.createElementVNode("div",ji,[e.createVNode(e.unref(H.GripVertical),{class:"mx-auto h-4 w-4 text-slate-400 dark:text-slate-500"})])],40,zi),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,W=>(e.openBlock(),e.createElementBlock("td",{key:W.key,class:"px-4 py-3 align-middle"},[ne(W)==="slot"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[de(W.slot)?e.renderSlot(U.$slots,W.slot,{key:0,row:re,value:re[W.key],column:W}):(e.openBlock(),e.createElementBlock("div",{key:1,class:"text-sm text-gray-900",innerHTML:Be(W.slot,re)},null,8,Ui))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[ne(W)==="file"?(e.openBlock(),e.createElementBlock("div",Hi,[N(Se(re,W))?(e.openBlock(),e.createElementBlock("div",qi,[e.createElementVNode("img",{src:Se(re,W),alt:"alt",width:"45",class:"rounded-md max-w-[45px] h-[45px] object-cover"},null,8,Ki)])):(e.openBlock(),e.createElementBlock("div",Wi,[e.createVNode(e.unref(H.FileText),{class:"h-4 w-4 min-w-4"})]))])):ne(W)==="color"?(e.openBlock(),e.createElementBlock("div",Gi,[e.createElementVNode("span",{class:"inline-flex h-6 w-6 rounded border border-gray-200",style:e.normalizeStyle({backgroundColor:Se(re,W)||"#ffffff"})},null,4)])):(e.openBlock(),e.createElementBlock("div",Yi,e.toDisplayString(Se(re,W)),1))],64))]))),128)),e.createElementVNode("td",Xi,[e.createElementVNode("div",Zi,[e.createElementVNode("button",{onClick:W=>Ne(re,I),class:"p-1.5 text-gray-600 hover:text-blue-600 hover:bg-blue-50 rounded transition-colors"},[e.createVNode(e.unref(H.Pencil),{class:"h-4 w-4"})],8,Ji),e.createElementVNode("button",{onClick:W=>Ie(I),class:"p-1.5 text-gray-600 hover:text-red-600 hover:bg-red-50 rounded transition-colors"},[e.createVNode(e.unref(H.Trash2),{class:"h-4 w-4"})],8,Qi)])])],42,Pi))),128))],2)])]),e.createVNode(e.unref(fe.VsModal),{visible:le.value,title:ee.value,size:"lg",onClose:Qe,teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(rt,{schema:ie.value,"form-id":"datatable-row",values:ge.value,"onUpdate:values":J[1]||(J[1]=re=>ge.value=re),form:Q.value,"onUpdate:form":J[2]||(J[2]=re=>Q.value=re)},null,8,["schema","values","form"]),e.createElementVNode("div",ec,[e.createElementVNode("button",{type:"button",onClick:J[3]||(J[3]=re=>le.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:Le,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"])]))}}),tc={},nc={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 oc(o,t){return e.openBlock(),e.createElementBlock("svg",nc,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 rc=ke(tc,[["render",oc]]),lc={},ac={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 sc(o,t){return e.openBlock(),e.createElementBlock("svg",ac,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 ic=ke(lc,[["render",sc]]),cc={},dc={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 uc(o,t){return e.openBlock(),e.createElementBlock("svg",dc,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 pc=ke(cc,[["render",uc]]),fc={class:"bg-white/30 p-1 rounded-md shadow w-fit"},mc={class:"flex gap-2"},hc=["onClick","title"],gc=["src"],yc=e.defineComponent({__name:"map-layers",props:{basemaps:{}},emits:["onLayerChange"],setup(o,{emit:t}){const n=o,r=e.ref(Object.keys(n.basemaps)[0]),l=t;function a(c){l("onLayerChange",c),r.value=c}const s={z:13,x:4790,y:2762};function i(c){if(c?.preview)return c.preview;if(!c?.url)return;const d={"{z}":s.z,"{x}":s.x,"{y}":s.y};let u=c.url;return Object.entries(d).forEach(([p,h])=>{u=u.replace(new RegExp(p,"gi"),String(h))}),u}return(c,d)=>(e.openBlock(),e.createElementBlock("div",fc,[e.createElementVNode("div",mc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.basemaps,(u,p)=>(e.openBlock(),e.createElementBlock("div",{key:p,class:e.normalizeClass(["cursor-pointer border rounded-lg overflow-hidden hover:shadow-sm",{"ring-2 ring-blue-500 border-blue-300":r.value===p}]),onClick:h=>a(p),title:u.name||p,role:"button",tabindex:"0"},[e.createElementVNode("img",{src:i(u),alt:"",class:"w-10 h-10 object-cover"},null,8,gc)],10,hc))),128))])]))}}),Lt=1e-10,xn=/([+-]?\d{1,3})\s*[°º˚]\s*(\d{1,2})\s*['’′`]\s*(\d{1,2}(?:\.\d+)?)\s*["”″]\s*([NSEW])/gi,bc=/^[+-]?\d+(?:\.\d+)?$/;function kc(o,t,n){const r=o.split(/\r?\n/).map(d=>d.trim()).filter(Boolean);if(r.length<3)return{ok:!1,errors:[{line:0,message:"Має бути щонайменше 3 рядки координат."}]};if(r.length>100)return{ok:!1,errors:[{line:0,message:"Допускається не більше 100 рядків координат."}]};const l=[],a=[];if(r.forEach((d,u)=>{const p=u+1,h=t==="decimal"?xc(d,p,n):Uo(d,p,n);if(!h.ok){l.push(...h.errors);return}const k=a[a.length-1];if(k&&qo(k,h.point)){l.push({line:p,message:"Послідовні точки не повинні дублюватися."});return}a.push(h.point)}),l.length)return{ok:!1,errors:l};if(new Set(a.map(_c)).size<3)return{ok:!1,errors:[{line:0,message:"Полігон повинен містити мінімум 3 унікальні точки."}]};const i=[...a];let c=!1;return qo(i[0],i[i.length-1])||(i.push(i[0]),c=!0),Cc(i)?{ok:!1,errors:[{line:0,message:"Полігон має самоперетин."}]}:{ok:!0,ring:i,wasClosedAutomatically:c}}function xc(o,t,n){return jo(o,"decimal",n,t)}function jo(o,t,n,r=1){return t==="decimal"?wc(o,r,n):Uo(o,r,n)}function wc(o,t,n){const r=[];if(/[A-Za-zА-Яа-яІіЇїЄєҐґ]/.test(o))return{ok:!1,errors:[{line:t,message:"У десятковому форматі не допускаються літери."}]};const l=o.split(/[\s,;]+/).filter(Boolean);if(l.length<2)return{ok:!1,errors:[{line:t,message:"Кожен рядок має містити дві координати."}]};if(l.length>2)return{ok:!1,errors:[{line:t,message:"У рядку дозволено лише одну пару координат."}]};if(!l.every(d=>bc.test(d)))return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати десяткові координати."}]};const a=Number(l[0]),s=Number(l[1]);if(!Number.isFinite(a)||!Number.isFinite(s))return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати десяткові координати."}]};const i=n==="lat-lon"?a:s,c=n==="lat-lon"?s:a;return(i<-90||i>90)&&r.push({line:t,message:"Широта поза діапазоном (-90..90)."}),(c<-180||c>180)&&r.push({line:t,message:"Довгота поза діапазоном (-180..180)."}),r.length?{ok:!1,errors:r}:{ok:!0,point:[c,i]}}function Uo(o,t,n){xn.lastIndex=0;const r=[...o.matchAll(xn)];if(r.length<2)return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати DMS-координати."}]};if(r.length>2)return{ok:!1,errors:[{line:t,message:"У рядку дозволено лише одну пару координат."}]};if(xn.lastIndex=0,o.replace(xn," ").replace(/[\s,;]+/g,"").trim().length)return{ok:!1,errors:[{line:t,message:"У рядку виявлено зайві символи або значення."}]};const a=Ho(r[0],t,n==="lat-lon"?"lat":"lon"),s=Ho(r[1],t,n==="lat-lon"?"lon":"lat"),i=[];if(a.ok||i.push(a.error),s.ok||i.push(s.error),i.length)return{ok:!1,errors:i};const c=n==="lat-lon"?a.value:s.value;return{ok:!0,point:[n==="lat-lon"?s.value:a.value,c]}}function Ho(o,t,n){const r=Number(o[1]),l=Number(o[2]),a=Number(o[3]),s=String(o[4]).toUpperCase();if(!Number.isFinite(r)||!Number.isFinite(l)||!Number.isFinite(a))return{ok:!1,error:{line:t,message:"Невірні значення DMS-координат."}};if(n==="lat"&&!(s==="N"||s==="S")||n==="lon"&&!(s==="E"||s==="W"))return{ok:!1,error:{line:t,message:n==="lat"?"Для широти напрям повинен бути N або S.":"Для довготи напрям повинен бути E або W."}};if(l<0||l>59)return{ok:!1,error:{line:t,message:"Хвилини повинні бути в діапазоні 0..59."}};if(a<0||a>60)return{ok:!1,error:{line:t,message:"Секунди повинні бути в діапазоні 0..60."}};const d=Math.abs(r),u=n==="lat"?90:180;if(d>u)return{ok:!1,error:{line:t,message:n==="lat"?"Градуси широти повинні бути в діапазоні 0..90.":"Градуси довготи повинні бути в діапазоні 0..180."}};if(d===u&&(l!==0||a!==0))return{ok:!1,error:{line:t,message:n==="lat"?"Для 90° широти хвилини й секунди мають бути 0.":"Для 180° довготи хвилини й секунди мають бути 0."}};const p=d+l/60+a/3600;return{ok:!0,value:s==="S"||s==="W"?-p:p}}function _c(o){return`${o[0].toFixed(12)}:${o[1].toFixed(12)}`}function qo(o,t){return Math.abs(o[0]-t[0])<Lt&&Math.abs(o[1]-t[1])<Lt}function Cc(o){if(o.length<4)return!1;for(let t=0;t<o.length-1;t+=1){const n=o[t],r=o[t+1];for(let l=t+1;l<o.length-1;l+=1){if(Math.abs(t-l)<=1||t===0&&l===o.length-2)continue;const a=o[l],s=o[l+1];if(vc(n,r,a,s))return!0}}return!1}function vc(o,t,n,r){const l=wn(o,t,n),a=wn(o,t,r),s=wn(n,r,o),i=wn(n,r,t);return!!(l!==a&&s!==i||l===0&&_n(o,n,t)||a===0&&_n(o,r,t)||s===0&&_n(n,o,r)||i===0&&_n(n,t,r))}function wn(o,t,n){const r=(t[1]-o[1])*(n[0]-t[0])-(t[0]-o[0])*(n[1]-t[1]);return Math.abs(r)<Lt?0:r>0?1:2}function _n(o,t,n){return t[0]<=Math.max(o[0],n[0])+Lt&&t[0]+Lt>=Math.min(o[0],n[0])&&t[1]<=Math.max(o[1],n[1])+Lt&&t[1]+Lt>=Math.min(o[1],n[1])}const Ec=["title"],Bc={key:0,class:"vs-select__options absolute z-50 mt-1 w-auto min-w-full bg-white border border-gray-300 shadow-lg rounded-lg text-sm text-gray-900"},Vc=["onClick"],Sc=["placeholder"],$c={class:"absolute inset-y-0 right-2 flex items-center gap-1"},Nc={class:"flex items-center justify-between gap-2 px-3 py-2 border-b border-gray-100"},Ac={class:"text-xs font-semibold uppercase tracking-wide text-gray-500"},Mc={class:"max-h-[260px] overflow-auto"},Fc={key:0,class:"divide-y divide-gray-100"},Dc=["onClick"],Tc={key:1,class:"px-3 py-3 text-xs text-gray-500"},Ko="formMapSearchAddressHistory",Lc=12,Ic="https://geo.rv.ua/api-user/dzk.api",Rc="https://nominatim.openstreetmap.org/search",Oc=ke(e.defineComponent({__name:"map-search",props:{config:{}},emits:["goToCoordinates"],setup(o,{emit:t}){const n={mounted(O,j){if(typeof document>"u")return;let q=null;const M=8,K=()=>{const se=String(j?.value??"");if(!se)return;q=document.createElement("div"),q.textContent=se,Object.assign(q.style,{position:"absolute",background:"#333",color:"#fff",padding:"4px 8px",borderRadius:"4px",fontSize:"12px",whiteSpace:"nowrap",pointerEvents:"none",zIndex:"9999"}),document.body.appendChild(q);const ve=O.getBoundingClientRect();q.style.left=`${ve.right+window.scrollX+M}px`,q.style.top=`${ve.top+window.scrollY+(ve.height-q.offsetHeight)/2}px`},te=()=>{q?.parentNode&&q.parentNode.removeChild(q),q=null};O.addEventListener("mouseenter",K),O.addEventListener("mouseleave",te),Object.assign(O,{tooltipRightHandlers:{show:K,hide:te}})},unmounted(O){if(typeof document>"u")return;const j=O.tooltipRightHandlers;j&&(O.removeEventListener("mouseenter",j.show),O.removeEventListener("mouseleave",j.hide))}},r=o,l=t,a=e.getCurrentInstance();function s(){return typeof globalThis<"u"&&globalThis.proxy?globalThis.proxy:typeof window<"u"&&window.proxy?window.proxy:null}function i(){const j=a?.appContext.config.globalProperties?.$settings?.map?.searchViewbox;if(j)return Array.isArray(j)?j.join(","):String(j);const M=s()?.map?.searchViewbox;if(M)return Array.isArray(M)?M.join(","):String(M)}function c(){const j=a?.appContext.config.globalProperties?.$settings?.map?.addressSuggest;if(typeof j=="string"&&j.trim())return j.trim();const M=s()?.map?.addressSuggest;if(typeof M=="string"&&M.trim())return M.trim()}const d=!!c(),u=!!i(),p=e.computed(()=>{const O=["nominatim","xy","parcel"];return d&&O.unshift("address"),u?O:O.filter(j=>j!=="nominatim")}),h=e.computed(()=>{const O=p.value,j=r.config?.tools?.filter(q=>O.includes(q));return j&&j.length?j:O}),k=e.computed(()=>r.config?.placeholder?.trim()||"Пошук…"),m=e.ref(h.value[0]);e.watch(h,O=>{O.includes(m.value)||(m.value=O[0])});const g=e.ref(""),y=e.ref(!1),C=e.ref(null),x=e.ref(null),w=e.ref(null),V=e.ref(null),z=e.ref([]),X=e.ref(null),L=e.ref(!1),E=e.ref([]),S=e.computed(()=>(m.value==="address"||m.value==="nominatim")&&L.value),N=e.computed(()=>r.config?.addressDebounceMs??1e3);let v=null;const $=e.ref(!1),R=e.computed(()=>g.value.trim().length>0?z.value:E.value),B=e.computed(()=>g.value.trim().length?`Знайдено ${z.value.length}`:"Історія пошуку"),F=e.computed(()=>g.value.trim().length?"Нічого не знайдено":"Історія порожня");function D(){if(typeof window>"u")return[];try{const O=window.localStorage?.getItem?.(Ko);if(!O)return[];const j=JSON.parse(O);return Array.isArray(j)?j:[]}catch{return[]}}function Z(O){typeof window>"u"||window.localStorage?.setItem?.(Ko,JSON.stringify(O))}function G(O){const q=[O,...E.value.filter(M=>M.id!==O.id)].slice(0,10);E.value=q,Z(q)}const ee=e.reactive({position:"absolute",left:"0px",top:"0px",width:"100%",display:"none"});function le(){if(!V.value)return;const O=V.value.getBoundingClientRect(),j=w.value?.getBoundingClientRect(),q=j?.width??O.width,M=(j?.left??O.left)+window.scrollX,K=O.bottom+window.scrollY+Lc;ee.left=`${M}px`,ee.top=`${K}px`,ee.width=`${q}px`,ee.display="block"}const we=()=>{S.value&&le()};function me(){v&&(clearTimeout(v),v=null)}e.watch(m,()=>{g.value="",y.value=!1,z.value=[],L.value=!1,me(),$.value=!1}),e.watch(S,O=>{O?e.nextTick(()=>{le()}):ee.display="none"}),e.watch(g,O=>{if(m.value!=="address"&&m.value!=="nominatim"){z.value=[],me();return}if(!O.trim()){z.value=[],L.value=E.value.length>0,me();return}me(),L.value=!0,v=window.setTimeout(()=>{U(O).catch(j=>{const q=j?.message||"Помилка пошуку адреси";fe.notify({type:"error",title:"Пошук адреси",message:q})})},N.value)});function ne(O){const j=[];x.value&&j.push(x.value),O instanceof HTMLElement&&j.push(O),C.value?.querySelectorAll("li")?.forEach(M=>{j.push(M)}),j.forEach(M=>{M.dispatchEvent(new MouseEvent("mouseleave",{bubbles:!0}))})}function ie(O){y.value&&ne(O.target),y.value=!y.value}function ge(O,j){ne(j?.target),m.value=O}function Q(){g.value="",z.value=[],L.value=!1,$.value=!1}function de(O){const j=O.target;if(y.value){const q=C.value;q&&!q.contains(j)&&(ne(j),y.value=!1)}if(S.value){const q=X.value,M=V.value;q&&!q.contains(j)&&(!M||!M.contains(j))&&(L.value=!1)}}e.onMounted(()=>{E.value=D(),window.addEventListener("click",de,!0),window.addEventListener("scroll",we,!0),window.addEventListener("resize",we)}),e.onBeforeUnmount(()=>{window.removeEventListener("click",de,!0),window.removeEventListener("scroll",we,!0),window.removeEventListener("resize",we),me()});function he(O){return O==="xy"?"Координати":O==="parcel"?"Кадастр":O==="nominatim"?"Адреса":"Адресний"}function Be(O){switch(O){case"xy":return"Пошук за географічними координатами. Введіть широту і довготу через пробіл або кому (lat lng або lng lat).";case"parcel":return"Пошук земельної ділянки за кадастровим номером у форматі 0000000000:00:000:0000.";case"nominatim":return"Пошук адрес та обʼєктів через Nominatim.";case"address":return"Пошук адрес через локальний сервіс addressSuggest.";default:return""}}function $e(O){const j=jo(O.trim(),"dms","lat-lon");if(j.ok){const[He,qe]=j.point;return{lat:qe,lng:He}}const q=O.replace(/[,]+/g," ").trim();if(!q)return null;const M=q.split(/\s+/).filter(Boolean);if(M.length<2)return null;const K=M.slice(0,2).map(Number);if(!K.every(He=>Number.isFinite(He)))return null;let[te,se]=K,ve=te,et=se;const We=He=>Math.abs(He)<=90,vt=He=>Math.abs(He)<=180;if(!We(ve)||!vt(et))if(We(et)&&vt(ve))ve=se,et=te;else return null;return{lat:ve,lng:et}}function Re(O){const j=O?.result||O?.data||O;if(!j)return[];const q=j.geom_centroid;if(!q||!Array.isArray(q.coordinates))return[];const[M,K]=q.coordinates;return!Number.isFinite(K)||!Number.isFinite(M)?[]:[{id:"parcel",title:j.cadnum||j.cad_num||"Земельна ділянка",lat:K,lng:M}]}function Ae(O){return(Array.isArray(O?.features)?O.features:[]).map((q,M)=>{const K=q?.geometry?.coordinates,te=Number(K?.[0]),se=Number(K?.[1]);if(!Number.isFinite(se)||!Number.isFinite(te))return null;const ve=q?.properties||{},et=ve?.geocoding?.label||ve?.display_name||ve?.label||"Адреса";return{id:String(ve?.geocoding?.place_id||ve?.place_id||M),title:et,lat:se,lng:te}}).filter(q=>!!q)}function Ce(O){return Number.isFinite(O.lat)&&Number.isFinite(O.lng)}function Ve(O){if(O==null||typeof O=="string"&&!O.trim())return null;const j=Number(O);return Number.isFinite(j)?j:null}function Se(O){const j=Ve(O.lng)??Ve(O.lon)??Ve(O.longitude)??Ve(O.x),q=Ve(O.lat)??Ve(O.latitude)??Ve(O.y);if(j!=null&&q!=null)return{lat:q,lng:j};const M=O?.geometry?.coordinates??O?.geom_centroid?.coordinates??O?.centroid?.coordinates??O?.geojson?.geometry?.coordinates??O?.geom?.coordinates;if(Array.isArray(M)&&M.length>=2){const K=Ve(M[0]),te=Ve(M[1]);if(K!=null&&te!=null)return{lat:te,lng:K}}return null}function Ne(O){return(Array.isArray(O?.data)?O.data:[]).map((q,M)=>{const K=Se(q),te=String(q.text??q.title??q.label??q.name??q.address??q.display_name??q.id??"Адреса"),se=String(q.id??q.code??q.value??M);return K?{id:se,title:te,...K}:{id:se,title:te}}).filter(q=>!!q?.title)}function Le(O){const j=c();if(!j)return null;if(j.includes(":name"))return j.replace(":name",encodeURIComponent(O));try{const q=new URL(j,window.location.origin);return O.trim()&&q.searchParams.set("q",O),q.toString()}catch{return j}}async function Ie(O){const j=Le(O);if(!j)return[];const q=await fetch(j);if(!q.ok)throw new Error(`HTTP ${q.status}`);const M=await q.json();return Ne(M)}async function Qe(O){const j=new URL(Rc);j.searchParams.set("format","geojson"),j.searchParams.set("q",O),j.searchParams.set("addressdetails","1"),j.searchParams.set("bounded","1");const q=i();q&&j.searchParams.set("viewbox",q);const M=await fetch(j.toString());if(!M.ok)throw new Error(`HTTP ${M.status}`);const K=await M.json();return Ae(K)}async function U(O){if(z.value=[],me(),m.value==="address"){if(!c()){fe.notify({type:"warning",title:"Пошук адреси",message:"Не налаштовано addressSuggest"});return}const M=await Ie(O);if(!M.length){fe.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}z.value=M;return}const j=await Qe(O);if(!j.length){fe.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}z.value=j}async function J(O){if(Ce(O)){W(O),G(O);return}fe.notify({type:"warning",title:"Пошук адреси",message:"Геометрія для обраної адреси відсутня"})}function re(){m.value!=="address"&&m.value!=="nominatim"||(L.value=!0,e.nextTick(()=>{le()}))}function I(O){const q=O.replace(/\s+/g,"").split(":");if(q.length!==4)return!1;const M=[10,2,3,4];return q.every((K,te)=>K.length===M[te]&&/^\d+$/.test(K))}function W(O){l("goToCoordinates",[O.lat,O.lng]),$.value=!0}async function _e(){const O=g.value.trim();if(O){if(m.value==="xy"){const j=$e(O);if(!j){fe.notify({type:"warning",title:"Пошук координат",message:"Використайте `lat lon` або DMS у форматі `50°27'00\"N 30°31'24\"E`."});return}W(j);return}if(m.value==="address"||m.value==="nominatim"){try{await U(O)}catch(j){const q=j?.message||"Помилка пошуку адреси";fe.notify({type:"error",title:"Пошук адреси",message:q})}return}try{if(!I(O)){fe.notify({type:"warning",title:"Пошук кадастру",message:"Кадастровий номер має формат ХХХХХХХХХХ:ХХ:ХХХ:ХХХХ"});return}const j=new URL(Ic);j.searchParams.set("cad_num",O);const q=await fetch(j.toString());if(!q.ok)throw new Error(`HTTP ${q.status}`);const M=await q.json(),K=Re(M);if(!K.length)fe.notify({type:"warning",title:"Пошук",message:"Не знайдено результатів"});else{const te=K[0];W(te)}}catch(j){const q=j?.message||"Помилка пошуку";fe.notify({type:"error",title:"Пошук",message:q})}}}return(O,j)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"widgetRef",ref:w,class:"map-search-widget flex flex-col gap-2 rounded-xl widget min-w-[200px]"},[e.createElementVNode("form",{class:"flex gap-2 text-gray-900",onSubmit:e.withModifiers(_e,["prevent"])},[h.value.length>1?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:C,class:"relative search-type w-[100px]"},[e.createElementVNode("button",{type:"button",class:"vstSelect-input transition-all text-left bg-white border border-gray-200 text-gray-900 rounded-lg focus:ring-blue-500 focus:border-blue-100 block w-full py-1.5 px-3 text-sm cursor-pointer flex items-center justify-between gap-2",onClick:ie},[e.withDirectives((e.openBlock(),e.createElementBlock("span",{ref_key:"selectedToolLabelRef",ref:x,class:"block w-full truncate",title:he(m.value)},[e.createTextVNode(e.toDisplayString(he(m.value)),1)],8,Ec)),[[n,Be(m.value)]]),(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(["w-4 h-4 text-gray-500 transition-transform",{"rotate-180":y.value}]),viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},j[3]||(j[3]=[e.createElementVNode("path",{d:"M6 9l6 6 6-6",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]),2))]),y.value?(e.openBlock(),e.createElementBlock("div",Bc,[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,q=>e.withDirectives((e.openBlock(),e.createElementBlock("li",{key:q,class:"px-3 py-2 cursor-pointer hover:bg-gray-100 text-gray-900",onClick:M=>ge(q,M)},[e.createTextVNode(e.toDisplayString(he(q)),1)],8,Vc)),[[n,Be(q)]])),128))])])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"searchWrapperRef",ref:V,class:"relative flex-1 min-w-[140px]"},[m.value==="parcel"?(e.openBlock(),e.createBlock(mn,{key:0,modelValue:g.value,"onUpdate:modelValue":j[0]||(j[0]=q=>g.value=q),mask:"0000000000:00:000:0000",class:e.normalizeClass(["vs-input !h-[34px] transition-all border block w-full border-gray-200 rounded-md focus:border-blue-100 border-solid py-1.5 pl-3 text-sm",$.value?"!pr-14":"!pr-8"])},null,8,["modelValue","class"])):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,"onUpdate:modelValue":j[1]||(j[1]=q=>g.value=q),placeholder:k.value,type:"text",class:e.normalizeClass(["vs-input transition-all border block w-full border-gray-200 rounded-md focus:border-blue-100 border-solid py-1.5 pl-3 text-sm",$.value?"!pr-14":"!pr-8"]),onFocus:re},null,42,Sc)),[[e.vModelText,g.value,void 0,{trim:!0}]]),e.createElementVNode("div",$c,[$.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"flex items-center text-gray-400 hover:text-gray-600","aria-label":"Очистити",onClick:Q},j[4]||(j[4]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)]))):e.createCommentVNode("",!0),j[5]||(j[5]=e.createElementVNode("button",{type:"submit",class:"flex items-center text-gray-400 hover:text-gray-600","aria-label":"Пошук"},[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m21 21-4.35-4.35m0 0A7.5 7.5 0 1 0 5 5a7.5 7.5 0 0 0 11.65 11.65Z"})])],-1))]),S.value?(e.openBlock(),e.createBlock(e.Teleport,{key:2,to:"body"},[e.createElementVNode("div",{ref_key:"addressResultsRef",ref:X,class:"vs-select__options mt-1 bg-white border border-gray-300 rounded-lg shadow-lg text-sm text-gray-900 z-50",style:e.normalizeStyle(ee)},[e.createElementVNode("div",Nc,[e.createElementVNode("span",Ac,e.toDisplayString(B.value),1),e.createElementVNode("button",{type:"button",class:"text-gray-400 hover:text-gray-600","aria-label":"Закрити",onClick:j[2]||(j[2]=q=>L.value=!1)}," ✕ ")]),e.createElementVNode("div",Mc,[R.value.length?(e.openBlock(),e.createElementBlock("ul",Fc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(R.value,q=>(e.openBlock(),e.createElementBlock("li",{key:q.id,class:"px-3 py-2 cursor-pointer hover:bg-gray-50",onClick:M=>J(q)},e.toDisplayString(q.title),9,Dc))),128))])):(e.openBlock(),e.createElementBlock("div",Tc,e.toDisplayString(F.value),1))])],4)])):e.createCommentVNode("",!0)],512)],32)],512))}}),[["__scopeId","data-v-64b5dcb8"]]),Pc={class:"pt-1 border-t border-gray-100"},zc={class:"space-y-1"},jc=e.defineComponent({__name:"AddCoordinates",emits:["submit","cancel"],setup(o,{emit:t}){const n=t,r=e.ref(null),l=e.ref(null),a=(c,d,u)=>Math.min(Math.max(c,d),u),s=()=>{if(r.value===null||l.value===null||!Number.isFinite(r.value)||!Number.isFinite(l.value))return;const c=a(r.value,-90,90),d=a(l.value,-180,180);n("submit",{lat:c,lng:d}),r.value=null,l.value=null},i=()=>{r.value=null,l.value=null,n("cancel")};return(c,d)=>(e.openBlock(),e.createElementBlock("div",Pc,[d[2]||(d[2]=e.createElementVNode("p",{class:"text-xs text-gray-600 mb-1"},"Додати точку за координатами:",-1)),e.createElementVNode("div",zc,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[0]||(d[0]=u=>r.value=u),type:"number",step:"0.0001",class:"w-full px-2 py-1 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Широта (50.4501)"},null,512),[[e.vModelText,r.value,void 0,{number:!0}]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[1]||(d[1]=u=>l.value=u),type:"number",step:"0.0001",class:"w-full px-2 py-1 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Довгота (30.5234)"},null,512),[[e.vModelText,l.value,void 0,{number:!0}]]),e.createElementVNode("div",{class:"flex gap-1.5"},[e.createElementVNode("button",{class:"flex-1 px-2 py-1 bg-blue-500 hover:bg-blue-600 text-white text-xs font-medium rounded transition-colors",type:"button",onClick:s}," Додати "),e.createElementVNode("button",{class:"px-2 py-1 bg-gray-200 hover:bg-gray-300 text-gray-700 text-xs font-medium rounded transition-colors",type:"button",onClick:i}," Скасувати ")])])]))}}),Uc=e.defineComponent({__name:"BtnAdd",emits:["click"],setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"flex-1 px-2 py-1.5 bg-blue-500 hover:bg-blue-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(H.Plus),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode(" Додати ",-1))]))}}),Hc=e.defineComponent({__name:"BtnClear",emits:["click"],setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"w-full px-2 py-1.5 bg-rose-500 hover:bg-rose-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(H.Trash2),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode(" Очистити ",-1))]))}}),qc=e.defineComponent({__name:"BtnComplete",emits:["click"],setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"flex-1 px-2 py-1.5 bg-emerald-500 hover:bg-emerald-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(H.Circle),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode("Замкнути ",-1))]))}}),Kc=new Intl.NumberFormat("uk-UA",{minimumFractionDigits:2,maximumFractionDigits:2});function It(o){return Kc.format(o)}function Wo(o){return o>=1e3?`${It(o/1e3)} км`:`${It(o)} м`}const Wc={class:"flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"},Gc={key:0,class:"flex-1 flex gap-1"},Yc={key:1,class:"flex-1 font-mono text-gray-700"},Xc=e.defineComponent({__name:"DotListItem",props:{id:{},index:{},coords:{}},emits:["update","delete"],setup(o,{emit:t}){const n=o,r=t,l=e.computed(()=>`${n.coords.lat.toFixed(4)}°, ${n.coords.lng.toFixed(4)}°`),a=e.ref(!1),s=e.ref(n.coords.lat),i=e.ref(n.coords.lng);e.watch(()=>n.coords,h=>{s.value=h.lat,i.value=h.lng},{deep:!0,immediate:!0});const c=(h,k,m)=>Math.min(Math.max(h,k),m),d=()=>{a.value=!0},u=()=>{if(!Number.isFinite(s.value)||!Number.isFinite(i.value))return;const h=c(s.value,-90,90),k=c(i.value,-180,180);r("update",{id:n.id,coords:{lat:h,lng:k}}),a.value=!1},p=()=>{r("delete",n.id)};return(h,k)=>(e.openBlock(),e.createElementBlock("div",Wc,[e.createVNode(e.unref(H.MapPin),{size:12,"stroke-width":2,class:"text-gray-400 flex-shrink-0"}),a.value?(e.openBlock(),e.createElementBlock("div",Gc,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":k[0]||(k[0]=m=>s.value=m),type:"number",step:"0.0001",min:"-90",max:"90",class:"flex-1 px-1.5 py-0.5 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Широта"},null,512),[[e.vModelText,s.value,void 0,{number:!0}]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":k[1]||(k[1]=m=>i.value=m),type:"number",step:"0.0001",min:"-180",max:"180",class:"flex-1 px-1.5 py-0.5 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Довгота"},null,512),[[e.vModelText,i.value,void 0,{number:!0}]]),e.createElementVNode("button",{class:"px-1.5 py-0.5 bg-emerald-500 text-white rounded hover:bg-emerald-600 text-xs",type:"button",onClick:u}," ✓ ")])):(e.openBlock(),e.createElementBlock("span",Yc,e.toDisplayString(l.value),1)),a.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:2,class:"text-blue-500 hover:text-blue-600 px-0.5",type:"button",onClick:d}," ✎ ")),e.createElementVNode("button",{class:"text-rose-500 hover:text-rose-600 px-0.5",type:"button",onClick:p}," ✕ ")]))}}),Zc={class:"ruler-control px-3 py-2.5 space-y-2"},Jc={type:"button",class:"ruler-row w-full flex items-center gap-2 cursor-pointer group text-left"},Qc={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"},ed={class:"text-sm font-semibold text-slate-700"},td={class:"ruler-row"},nd={type:"button",class:"w-full flex items-center gap-2 cursor-pointer group text-left"},od={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"},rd={class:"inline-flex rounded-md overflow-hidden border border-gray-200 bg-gray-100"},ld=["onClick"],ad={class:"flex items-center gap-2 mt-0.5 pl-7"},sd={key:0,class:"text-base font-semibold text-green-600"},id={key:1,class:"text-xs text-gray-400"},cd={class:"ruler-row flex items-center gap-2 cursor-pointer"},dd={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"},ud={class:"text-xs font-medium text-gray-600 flex-1"},pd={key:0,class:"pt-1.5 border-t border-gray-100 max-h-32 overflow-y-auto space-y-1"},fd=e.defineComponent({__name:"ControlPanel",props:{points:{},isShapeClosed:{type:Boolean}},emits:["update-point","delete-point"],setup(o){const t=o,n=e.ref(!1),r=e.ref("km2"),l=[{id:"km2",label:"км²"},{id:"ha",label:"га"},{id:"m2",label:"м²"}],a=()=>{n.value=!n.value},s=(m,g)=>{const y=S=>S*Math.PI/180,C=y(g.lat-m.lat),x=y(g.lng-m.lng),w=y(m.lat),V=y(g.lat),z=Math.sin(C/2),X=Math.sin(x/2);return 6371e3*(2*Math.asin(Math.sqrt(z*z+Math.cos(w)*Math.cos(V)*X*X)))},i=e.computed(()=>{if(t.points.length<2)return 0;let m=0;for(let g=1;g<t.points.length;g+=1)m+=s(t.points[g-1].coords,t.points[g].coords);return t.isShapeClosed&&t.points.length>=2&&(m+=s(t.points[t.points.length-1].coords,t.points[0].coords)),m}),c=e.computed(()=>i.value>=1e3?`${It(i.value/1e3)} км`:`${It(i.value)} м`);function d(m){if(m.length<3)return 0;const g=m[0].lat,y=m[0].lng,C=(w,V)=>{const z=(w-g)*110574;return{x:(V-y)*111320*Math.cos(g*Math.PI/180),y:z}};let x=0;for(let w=0;w<m.length;w++){const V=(w+1)%m.length,z=C(m[w].lat,m[w].lng),X=C(m[V].lat,m[V].lng);x+=z.x*X.y-z.y*X.x}return Math.abs(x)*.5}const u=e.computed(()=>{if(!t.isShapeClosed||t.points.length<3)return 0;const m=t.points.map(g=>g.coords);return d(m)}),p=e.computed(()=>u.value>0),h=e.computed(()=>{const m=u.value;if(m===0)return"—";if(r.value==="km2"){const y=m/1e6;return`${It(y)} км²`}if(r.value==="ha"){const y=m/1e4;return`${It(y)} га`}const g=m>=1?Math.round(m):m;return`${It(g)} м²`}),k=e.computed(()=>{const m=t.points.length;return m===1?"1 точка":m>=2&&m<=4?`${m} точки`:`${m} точок`});return e.watch(()=>t.points.length,()=>{t.points.length===0&&(n.value=!1)}),(m,g)=>(e.openBlock(),e.createElementBlock("div",Zc,[e.createElementVNode("button",Jc,[e.createElementVNode("span",Qc,[e.createVNode(e.unref(H.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",ed,e.toDisplayString(c.value),1)]),e.createElementVNode("div",td,[e.createElementVNode("button",nd,[e.createElementVNode("span",od,[e.createVNode(e.unref(H.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",rd,[(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",r.value===y.id?"bg-white text-green-600 font-semibold shadow-sm":"text-gray-600 hover:bg-gray-50"]),onClick:e.withModifiers(x=>r.value=y.id,["stop"])},e.toDisplayString(y.label),11,ld)),64))])]),e.createElementVNode("div",ad,[p.value?(e.openBlock(),e.createElementBlock("span",sd,e.toDisplayString(h.value),1)):(e.openBlock(),e.createElementBlock("span",id,"—"))])]),e.createElementVNode("div",cd,[e.createElementVNode("span",dd,[e.createVNode(e.unref(H.Info),{size:12,"stroke-width":2.5})]),e.createElementVNode("span",ud,e.toDisplayString(k.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",pd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.points,(y,C)=>(e.openBlock(),e.createBlock(Xc,{key:y.id,id:y.id,index:C+1,coords:y.coords,onUpdate:g[0]||(g[0]=x=>m.$emit("update-point",x)),onDelete:x=>m.$emit("delete-point",y.id)},null,8,["id","index","coords","onDelete"]))),128))])):e.createCommentVNode("",!0)]))}}),md={class:"px-3 py-3 bg-blue-50/50 border-b border-blue-100"},hd={class:"flex items-start gap-2"},gd=e.defineComponent({__name:"InfoHint",setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",md,[e.createElementVNode("div",hd,[e.createVNode(e.unref(H.Info),{size:16,"stroke-width":2,class:"text-blue-600 flex-shrink-0 mt-0.5"}),n[0]||(n[0]=e.createElementVNode("div",{class:"space-y-1"},[e.createElementVNode("p",{class:"text-xs font-medium text-blue-900"}," Натискайте на карту, щоб додати точки вимірювання "),e.createElementVNode("p",{class:"text-[10px] text-blue-700"},' Або скористайтесь кнопкою "Додати" внизу для введення координат вручну ')],-1))])]))}}),yd={class:"space-y-1.5"},bd={class:"space-y-1 max-h-40 overflow-y-auto"},kd={class:"text-gray-700"},xd={class:"font-semibold text-slate-800"},wd=e.defineComponent({__name:"ToPointList",props:{points:{},isShapeClosed:{type:Boolean}},setup(o){const t=o;function n(a,s){const i=k=>k*Math.PI/180,c=i(s.lat-a.lat),d=i(s.lng-a.lng),u=i(a.lat),p=i(s.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(c/2)**2+Math.cos(u)*Math.cos(p)*Math.sin(d/2)**2)))}function r(a){return Wo(a)}const l=e.computed(()=>{const a=[],s=t.points;if(s.length<2)return a;for(let i=0;i<s.length;i++){const c=i===s.length-1&&t.isShapeClosed?0:i+1;if(c>=s.length)break;const d=n(s[i].coords,s[c].coords);a.push({from:i+1,to:c+1,label:r(d)})}return a});return(a,s)=>(e.openBlock(),e.createElementBlock("div",yd,[s[0]||(s[0]=e.createElementVNode("p",{class:"text-xs font-medium text-gray-600 mb-1.5"},"Відстань між точками:",-1)),e.createElementVNode("div",bd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(i,c)=>(e.openBlock(),e.createElementBlock("div",{key:c,class:"flex items-center justify-between text-xs py-1 px-2 rounded bg-gray-50"},[e.createElementVNode("span",kd,"Точка "+e.toDisplayString(i.from)+" → Точка "+e.toDisplayString(i.to),1),e.createElementVNode("span",xd,e.toDisplayString(i.label),1)]))),128))])]))}}),_d={class:"ruler-panel-wrap absolute bottom-12 right-4 z-[1001] animate-slide-up"},Cd={class:"bg-white rounded-xl shadow-2xl border border-gray-200 overflow-hidden w-72"},vd={class:"bg-gradient-to-r from-blue-400 to-blue-500 px-3 py-2 flex items-center justify-between"},Ed={class:"flex items-center gap-2"},Bd={class:"w-6 h-6 bg-white/20 rounded-lg flex items-center justify-center"},Vd={class:"flex border-b border-gray-200"},Sd={key:1,class:"px-3 py-2.5"},$d={key:1,class:"text-xs text-gray-500"},Nd={class:"px-2.5 py-1.5 bg-gray-50 border-t border-gray-200 space-y-1.5"},Ad={class:"flex gap-1.5"},Md=e.defineComponent({name:"RulerPanel",__name:"RulerPanel",emits:["close","tab-change","points-change","add-request","complete","shape-closed-change"],setup(o,{expose:t,emit:n}){const r=n,l=e.ref([]),a=e.computed(()=>l.value.length>0),s=e.ref(!1),i=e.ref(!1),c=e.ref("general");function d(N){c.value=N,r("tab-change",N)}e.onMounted(()=>{r("tab-change",c.value)});const u=e.computed(()=>l.value.length>=3&&!i.value);let p=1;const h=()=>l.value.map(N=>({id:N.id,coords:{...N.coords}})),k=()=>{l.value.length<3&&i.value&&(i.value=!1,r("shape-closed-change",!1)),r("points-change",h())},m=()=>{const N=p;return p+=1,N},g=N=>{l.value=[...l.value,{id:m(),coords:{lat:N.lat,lng:N.lng}}],k()},y=({id:N,coords:v})=>{const $=l.value.findIndex(B=>B.id===N);if($===-1)return;const R=[...l.value];R[$]={id:N,coords:{...v}},l.value=R,k()},C=N=>{l.value=l.value.filter(v=>v.id!==N),k()},x=()=>{l.value=[],i.value&&(i.value=!1,r("shape-closed-change",!1)),k()},w=N=>{y(N)},V=N=>{C(N)},z=()=>{s.value=!0,r("add-request")},X=N=>{g(N),s.value=!1},L=()=>{s.value=!1},E=()=>{u.value&&(i.value=!0,r("complete"),r("shape-closed-change",!0))},S=()=>{x(),s.value=!1,r("close")};return t({addPoint:g,clearPoints:x}),(N,v)=>(e.openBlock(),e.createElementBlock("div",_d,[e.createElementVNode("div",Cd,[e.createElementVNode("div",vd,[e.createElementVNode("div",Ed,[e.createElementVNode("div",Bd,[e.createVNode(e.unref(H.Ruler),{size:14,"stroke-width":2,class:"text-white"})]),v[2]||(v[2]=e.createElementVNode("h3",{class:"text-white font-semibold text-xs"},"Вимірювання",-1))]),e.createElementVNode("button",{class:"w-5 h-5 flex items-center justify-center rounded hover:bg-white/20 transition-colors","aria-label":"Закрити",onClick:S},[e.createVNode(e.unref(H.X),{size:14,"stroke-width":2,class:"text-white"})])]),e.createElementVNode("div",Vd,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors",c.value==="general"?"text-blue-600 border-b-2 border-blue-500 bg-blue-50/50":"text-gray-500 hover:text-gray-700"]),onClick:v[0]||(v[0]=$=>d("general"))}," Загальна ",2),e.createElementVNode("button",{type:"button",class:e.normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors",c.value==="topoint"?"text-blue-600 border-b-2 border-blue-500 bg-blue-50/50":"text-gray-500 hover:text-gray-700"]),onClick:v[1]||(v[1]=$=>d("topoint"))}," До точки ",2)]),c.value==="general"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[a.value?(e.openBlock(),e.createBlock(fd,{key:1,points:l.value,"is-shape-closed":i.value,onUpdatePoint:w,onDeletePoint:V},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createBlock(gd,{key:0}))],64)):(e.openBlock(),e.createElementBlock("div",Sd,[a.value?(e.openBlock(),e.createBlock(wd,{key:0,points:l.value,"is-shape-closed":i.value},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createElementBlock("p",$d,"Додайте точки на карті, щоб бачити відстані між ними."))])),e.createElementVNode("div",Nd,[e.createElementVNode("div",Ad,[s.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(Uc,{key:0,onClick:z})),u.value?(e.openBlock(),e.createBlock(qc,{key:1,onClick:E})):e.createCommentVNode("",!0)]),s.value?(e.openBlock(),e.createBlock(jc,{key:0,onSubmit:X,onCancel:L})):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createBlock(Hc,{key:1,onClick:x})):e.createCommentVNode("",!0)])])]))}}),Ge="ruler-points",wt="ruler-line",_t="ruler-polygon",Ct="ruler-segments",Fd=e.defineComponent({__name:"RulerLayer",props:{map:{},points:{},isShapeClosed:{type:Boolean},labelMode:{}},setup(o){function t(m,g){const y=X=>X*Math.PI/180,C=y(g.lat-m.lat),x=y(g.lng-m.lng),w=y(m.lat),V=y(g.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(C/2)**2+Math.cos(w)*Math.cos(V)*Math.sin(x/2)**2)))}function n(m){return Wo(m)}const r=o;function l(){return{type:"FeatureCollection",features:[]}}function a(m,g,y){const C=y??"general",x=[];let w=0;x.push(0);for(let V=1;V<m.length;V++)w+=t(m[V-1].coords,m[V].coords),x.push(w);return g&&m.length>=2&&(w+=t(m[m.length-1].coords,m[0].coords)),{type:"FeatureCollection",features:m.map((V,z)=>{const X=C==="general"?z===0?"0":n(x[z]):z===0?"0":n(t(m[z-1].coords,m[z].coords));return{type:"Feature",geometry:{type:"Point",coordinates:[V.coords.lng,V.coords.lat]},properties:{id:V.id,index:z+1,label:X}}})}}function s(m,g){if(m.length<2)return l();const y=[];for(let C=0;C<m.length;C++){const x=C===m.length-1&&g?0:C+1;if(x>=m.length)break;const w=m[C].coords,V=m[x].coords,z=t(w,V);y.push({type:"Feature",geometry:{type:"LineString",coordinates:[[w.lng,w.lat],[V.lng,V.lat]]},properties:{distance:n(z)}})}return{type:"FeatureCollection",features:y}}function i(m,g){if(m.length<2)return l();const y=m.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 c(m){if(m.length<3)return l();const g=m.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 u(m){m.getSource(Ge)||(m.addSource(Ge,{type:"geojson",data:l()}),m.addLayer({id:`${Ge}-circle`,type:"circle",source:Ge,paint:{"circle-radius":5,"circle-color":"#1e293b","circle-stroke-width":2,"circle-stroke-color":"#ffffff"}}),m.addLayer({id:`${Ge}-labels`,type:"symbol",source:Ge,layout:{"text-field":["get","label"],"text-size":14,"text-offset":[0,1.3]},paint:{"text-color":"#0f172a","text-halo-color":"#ffffff","text-halo-width":1}})),m.getSource(Ct)||(m.addSource(Ct,{type:"geojson",data:l()}),m.addLayer({id:`${Ct}-labels`,type:"symbol",source:Ct,layout:{"text-field":["get","distance"],"text-size":13,"symbol-placement":"line-center","text-rotation-alignment":"map","text-pitch-alignment":"map"},paint:{"text-color":"#1e293b","text-halo-color":"#ffffff","text-halo-width":1.5}})),m.getSource(wt)||(m.addSource(wt,{type:"geojson",data:l()}),m.addLayer({id:`${wt}-layer`,type:"line",source:wt,paint:{"line-color":"#3b82f6","line-width":2}})),m.getSource(_t)||(m.addSource(_t,{type:"geojson",data:l()}),m.addLayer({id:`${_t}-layer`,type:"fill",source:_t,paint:{"fill-color":"#93c5fd","fill-opacity":.25}})),d=!0}function p(m){if(m){try{m.getLayer(`${_t}-layer`)&&m.removeLayer(`${_t}-layer`),m.getSource(_t)&&m.removeSource(_t),m.getLayer(`${wt}-layer`)&&m.removeLayer(`${wt}-layer`),m.getSource(wt)&&m.removeSource(wt),m.getLayer(`${Ct}-labels`)&&m.removeLayer(`${Ct}-labels`),m.getSource(Ct)&&m.removeSource(Ct),m.getLayer(`${Ge}-labels`)&&m.removeLayer(`${Ge}-labels`),m.getLayer(`${Ge}-circle`)&&m.removeLayer(`${Ge}-circle`),m.getSource(Ge)&&m.removeSource(Ge)}catch{}d=!1}}function h(m){if(!m)return;const g=m.getSource(Ge),y=m.getSource(wt),C=m.getSource(_t),x=m.getSource(Ct),w=r.points,V=r.labelMode??"general";g&&g.setData(a(w,r.isShapeClosed,V)),y&&y.setData(i(w,r.isShapeClosed)),C&&C.setData(c(w)),x&&x.setData(V==="topoint"?s(w,r.isShapeClosed):l())}function k(){const m=r.map;m&&(d||u(m),h(m))}return e.watch(()=>[r.points,r.isShapeClosed,r.labelMode],()=>k(),{deep:!0,immediate:!0}),e.watch(()=>r.map,()=>k(),{immediate:!0}),e.onBeforeUnmount(()=>{p(r.map)}),(m,g)=>null}});function Dd(o={}){const t=e.ref(!1),n=e.ref([]),r=e.ref(!1),l=e.ref("general"),a=e.ref(null);function s(){t.value?i():(t.value=!0,o.onActivate?.())}function i(){t.value=!1,n.value=[],r.value=!1,a.value?.clearPoints(),o.onDeactivate?.()}function c(k){n.value=k}function d(k){l.value=k}function u(k){r.value=k}function p(k){t.value&&a.value?.addPoint({lat:k.lat,lng:k.lng})}const h=e.computed(()=>n.value.length>0);return{isRulerActive:t,rulerPoints:n,rulerShapeClosed:r,rulerActiveTab:l,rulerPanelRef:a,hasRulerPoints:h,toggleRuler:s,closeRuler:i,onRulerPointsChange:c,onRulerTabChange:d,onRulerShapeClosedChange:u,handleRulerMapClick:p}}const Td={key:0,class:"absolute top-4 left-4 z-[1000] w-[calc(100%-20px)] sm:w-[350px]"},Ld={key:1,class:"form-geom__panel flex gap-1 items-start mt-2"},Id={class:"flex items-center gap-1"},Rd=["disabled"],Od={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"},Pd=["disabled"],zd=["disabled"],jd={class:"mt-4 flex justify-end gap-2"},Ud=["disabled"],Hd={class:"absolute top-4 right-4 z-[1000]"},qd={class:"flex flex-col gap-[2px]"},Kd=["disabled"],Wd=["disabled"],Gd=["disabled"],Yd=["disabled"],Xd={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"},Zd={class:"space-y-0.5"},Jd={class:"text-gray-500"},Qd={class:"text-gray-900 text-right break-all"},eu={class:"absolute left-4 bottom-[36px] z-[1000]"},tu={class:"flex flex-col gap-2"},nu={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]"},ou={class:"flex flex-col gap-1"},ru=["checked","disabled","onChange"],lu={class:"text-gray-700 text-xs font-medium"},au={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"},su={key:0,class:"form-geom__feature flex items-center text-xs transition-all gap-2 w-full px-2 pb-1"},iu={class:"mr-auto flex items-center gap-2 min-w-0 relative"},cu={class:"shrink-0"},du={key:0,class:"font-bold"},uu=["onClick","disabled"],pu={key:0},fu={class:"flex items-center"},mu={class:"text-xs mr-2"},hu={key:0},gu={key:1},yu={key:0,class:"text-xs mr-2"},bu={key:1,class:"text-xs mr-2"},ku=["disabled"],xu=["disabled"],Cn="__vs_form_maplibre_loader__",vn="vs-global-bounds-src",En="vs-global-bounds-line",Go=ke(e.defineComponent({__name:"vs-input-map",props:{tools:{},multi:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},handleZoom:{type:Boolean,default:!0},ctrlZoom:{type:Boolean,default:!0},geomType:{default:()=>[]},prefix:{default:""},katottg:{default:""},layers:{default:()=>[]},bounds:{},api:{},center:{default:void 0},zoom:{default:void 0},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update:modelValue","valueSelected"],setup(o,{emit:t}){const n=o,r=t,l=e.useAttrs(),a=e.computed(()=>{const f=l?.multiple,b=l?.multi,_=A=>A===""||A===!0||A==="true"||A===1||A==="1";return!!n.multi||!!n.multiple||_(b)||_(f)}),s=e.computed(()=>!!n.disabled),i=e.ref(!1),c=e.ref(null),d=e.ref(0),u=e.ref(""),p=e.ref(null),h=e.ref([]),k=e.ref(null),m=e.ref(null),g=Dd({onActivate(){if(W)try{W.changeMode("simple_select",{featureIds:[]})}catch{}u.value=""},onDeactivate(){}});function y(){g.toggleRuler()}const C=e.getCurrentInstance(),x=C?.appContext?.config?.globalProperties?.$settings??{},w=x?.map??{},V=C?.vnode?.props??{};function z(f){return Object.prototype.hasOwnProperty.call(V,f)||Object.prototype.hasOwnProperty.call(V,f.replace(/[A-Z]/g,b=>`-${b.toLowerCase()}`))}const X=Array.isArray(w.center)&&w.center.length===2?w.center:Array.isArray(x.center)&&x.center.length===2?x.center:[30,50],L=typeof w.zoom=="number"?w.zoom:typeof x.zoom=="number"?x.zoom:typeof x.defaultZoom=="number"?x.defaultZoom:10,E=e.computed(()=>z("center")?n.center:w.center??n.center),S=e.computed(()=>z("zoom")?n.zoom:w.zoom??n.zoom),N=e.computed(()=>z("katottg")?String(n.katottg??""):String(w.katottg??n.katottg??"")),v=e.computed(()=>z("layers")?n.layers??[]:w.layers??n.layers??[]),$=e.computed(()=>z("bounds")?n.bounds:w.bounds??n.bounds),R=e.ref(Array.isArray(E.value)&&E.value.length===2?[...E.value]:X),B=e.ref(typeof S.value=="number"?S.value:L),F=e.ref(n.modelValue),D=e.ref(null),Z=e.ref(null),G=e.ref([]),ee=e.ref(!1),le=e.ref(!1),we=e.ref([]),me=e.ref({coordinates:"",format:"decimal",order:"lat-lon"}),ne={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,we=!1;const J=e.reactive({}),ue=e.ref([]),ye=e.computed(()=>ue.value.map(p=>J[p]).filter(Boolean)),_e=e.ref(null),Ae=e.computed(()=>_e.value?.entries??[]),Re=e.computed(()=>{if(_e.value)return{left:`${_e.value.point.x+12}px`,top:`${_e.value.point.y+12}px`}}),Fe=e.computed(()=>{if(Array.isArray(n.tools)&&n.tools.length)return n.tools;const p=l?.tools;return Array.isArray(p)?p.map(g=>String(g)):typeof p=="string"?p.split(",").map(g=>g.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(!Fe.value.length)return{...p,import:!0,export:!0,point:!0,line:!0,polygon:!0,rectangle:!0};const g=new Set(Fe.value.map(C=>C.toLowerCase()));return{search:g.has("search"),import:g.has("import"),export:g.has("export"),point:g.has("point"),line:g.has("line"),polygon:g.has("polygon"),rectangle:g.has("rectangle"),ruler:g.has("ruler")}});function P(p){if(typeof p!="string"||!p.trim())return"";if(/^https?:\/\//i.test(p))return p;const g=window?.location?.origin??"",C=p.replace(/^\/+/,"");return C?g?`${g}/${C}`:`/${C}`:g}function Z(){const p=Array.isArray(w.basemaps)&&w.basemaps.length?w.basemaps:b.basemaps;if(Array.isArray(p)&&p.length){const C=p.map((A,T)=>{const G=String(A?.key??A?.id??A?.name??`b${T}`),le=P(String(A?.url??""));if(!le)return null;const pe=typeof A?.preview=="string"&&A.preview?P(A.preview):"";return[G,{...A,url:le,preview:pe}]}).filter(A=>Array.isArray(A)&&A.length===2).reduce((A,[T,G])=>(A[T]=G,A),{});if(Object.keys(C).length)return C}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 ne=Z(),ce=Object.keys(ne),me=e.ref(ce.length?ce[0]:"");async function $e(){if(typeof window>"u")return null;const p=window;if(p[wn])return p[wn];const g=G=>{if(Array.from(document.styleSheets).some(Te=>Te?.href?.includes(G)))return;const pe=document.createElement("link");pe.rel="stylesheet",pe.href=G,document.head.appendChild(pe)},C=async()=>{const G=new Function("u","return import(u)"),le=await G("https://esm.sh/maplibre-gl@3.6.2"),pe=le?.default??le;if(!pe)throw new Error("maplibre esm fallback failed");window.maplibregl=pe,window.mapboxgl=pe;const Te=await G("https://esm.sh/@mapbox/mapbox-gl-draw@1.5.0"),nt=Te?.default??Te;if(!nt)throw new Error("mapbox draw esm fallback failed");window.MapboxDraw=nt},T=(async()=>{g("https://unpkg.com/maplibre-gl@3.6.2/dist/maplibre-gl.css"),g("https://unpkg.com/@mapbox/mapbox-gl-draw@1.5.0/dist/mapbox-gl-draw.css"),(!window.maplibregl||!window.MapboxDraw)&&await C();const G=window.maplibregl,le=window.MapboxDraw;if(!G)throw new Error("maplibregl not available after load");if(!le)throw new Error("MapboxDraw not available after load");return{maplibregl:G,MapboxDraw:le}})().catch(G=>{throw delete p[wn],G});return p[wn]=T,T}function Ne(p){return{version:8,sources:{rasterSource:{type:"raster",tiles:[p],tileSize:256}},layers:[{id:"rasterLayer",type:"raster",source:"rasterSource"}]}}let Se=null,Le=null,ee=null,ae=null,Oe=[],j=null,U=null,H=null,F=!1,q=!1,Q=!1,ie=null;function Ee(){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,g){if(!p.startPoint)return;const[C,A]=p.startPoint,T=g.lngLat.lng,G=g.lngLat.lat;p.rectangle.setCoordinates([[[C,A],[T,A],[T,G],[C,G],[C,A]]])},onClick(p,g){if(!p.startPoint){p.startPoint=[g.lngLat.lng,g.lngLat.lat],p.hasCoordinates=!0,p.rectangle.setCoordinates([[[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat]]]);return}const[C,A]=p.startPoint,T=g.lngLat.lng,G=g.lngLat.lat;return Math.abs(C-T)>0&&Math.abs(A-G)>0?(p.rectangle.setCoordinates([[[C,A],[T,A],[T,G],[C,G],[C,A]]]),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,g,C){const A=g.properties.id===p.rectangle.id;A&&!p.hasCoordinates||(g.properties.active=A?"true":"false",C(g))}}}const et=[{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 Ge(){const p=me.value;return!p||!ne[p]?.url?"":ne[p].url}function vt(p,g){return p?.id?String(p.id):p?.url?`${p.url}-${g}`:`layer-${g}`}function qe(p){const g=String(p?.url??"").trim();if(!g)return"";if(/^https?:\/\//i.test(g))return g;const C=window.location?.origin??"",A=g.replace(/^\/+/,"");return`${C}/${A}`}function Ke(p){p&&_e.value?.layerId!==p||(_e.value=null)}function gt(p,g={}){return p.popup===!1?[]:Array.isArray(p.popup)?p.popup.length?p.popup.map(C=>{const A=C?.field||C?.name;if(!A)return null;const T=g[A];return T==null||T===""?null:{key:C.label||A,value:String(T)}}).filter(Boolean):[]:Object.entries(g).slice(0,5).map(([C,A])=>({key:C,value:A==null?"—":String(A)}))}function it(p){if(!Array.isArray(p))return[];const g=A=>Array.isArray(A)&&A.length>=2&&Number.isFinite(Number(A[0]))&&Number.isFinite(Number(A[1])),C=A=>{if(!A.length)return A;const T=A[0],G=A[A.length-1];return!G||T[0]!==G[0]||T[1]!==G[1]?[...A,T]:A};if(p.length&&g(p[0])){const A=p.map(T=>[Number(T[0]),Number(T[1])]).filter(g);return A.length?[C(A)]:[]}return p.length&&Array.isArray(p[0])&&g(p[0][0])?p.map(T=>Array.isArray(T)?T.map(G=>[Number(G[0]),Number(G[1])]):[]).filter(T=>T.length).map(C):p.length&&Array.isArray(p[0])&&Array.isArray(p[0][0])&&g(p[0][0][0])?p.flatMap(T=>Array.isArray(T)?T:[]).map(T=>Array.isArray(T)?T.map(G=>[Number(G[0]),Number(G[1])]):[]).filter(T=>T.length).map(C):[]}function jt(p){const g=p.style??{},C=g.color??"#3b82f6";if(!g.colorAttr||!g.colorSet)return C;const A=Object.keys(g.colorSet);if(!A.length)return C;const T=["match",["to-string",["get",g.colorAttr]]];return A.forEach(G=>{T.push(String(G),g.colorSet?.[G]??C)}),T.push(C),T}function At(p){if(!ee)return;p.handlers.forEach(C=>{try{ee.off(C.type,C.layerId,C.handler)}catch{}}),p.handlers=[],[...p.layerIds,...p.boundsIds].forEach(C=>{ee.getLayer(C)&&ee.removeLayer(C)}),ee.getSource(p.sourceId)&&ee.removeSource(p.sourceId);const g=`vs-ov-bounds-src-${p.id}`;ee.getSource(g)&&ee.removeSource(g),Ke(p.id)}function ln(p,g){if(!ee)return[];const C=`vs-ov-bounds-src-${g}`,A=`vs-ov-bounds-line-${g}`,T=p.bounds??N.value??W.value,G=it(T);if(!G.length)return[];const le={type:"FeatureCollection",features:G.map(pe=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:pe}}))};return ee.getSource(C)&&ee.removeSource(C),ee.addSource(C,{type:"geojson",data:le}),ee.addLayer({id:A,type:"line",source:C,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]}}),[A]}function yt(p){if(!ee)return;At(p);const g=p.config,C=qe(g);if(!C)return;const A=[],T=[];if(/\.v(?:m)?t(?:\?|$)/i.test(C)||/\.pbf(?:\?|$)/i.test(C)){const pe=g.sourceLayer||g.layer||g.service_layer||g.dataset?.layer||g.id;ee.addSource(p.sourceId,{type:"vector",tiles:[C]});const Te=String(g.style?.type??"polygon").toLowerCase(),nt=jt(g),ut=g.style?.opacity??.5;if(Te==="point"){const kt=`vs-ov-point-${p.id}`;ee.addLayer({id:kt,type:"circle",source:p.sourceId,"source-layer":pe,paint:{"circle-color":nt,"circle-radius":5,"circle-opacity":ut}}),A.push(kt)}else if(Te==="polyline"||Te==="line"){const kt=`vs-ov-line-${p.id}`;ee.addLayer({id:kt,type:"line",source:p.sourceId,"source-layer":pe,layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":nt,"line-width":g.style?.width??2,"line-opacity":ut}}),A.push(kt)}else{const kt=`vs-ov-fill-${p.id}`,dn=`vs-ov-border-${p.id}`;ee.addLayer({id:kt,type:"fill",source:p.sourceId,"source-layer":pe,paint:{"fill-color":nt,"fill-opacity":ut}}),ee.addLayer({id:dn,type:"line",source:p.sourceId,"source-layer":pe,paint:{"line-color":g.style?.stroke??g.style?.color??"#2563eb","line-width":g.style?.width??1,"line-opacity":ut}}),A.push(kt,dn)}}else{ee.addSource(p.sourceId,{type:"raster",tiles:[C],tileSize:256});const pe=`vs-ov-raster-${p.id}`;ee.addLayer({id:pe,type:"raster",source:p.sourceId,paint:{"raster-opacity":g.style?.opacity??1}}),A.push(pe)}A.forEach(pe=>{const Te=ut=>{if(!ut?.features?.length){Ke(p.id);return}const kt=ut.features[0]?.properties??{},dn=gt(p.config,kt);if(!dn.length){Ke(p.id);return}_e.value={layerId:p.id,entries:dn,point:{x:ut.point.x,y:ut.point.y}}},nt=()=>Ke(p.id);ee.on("mousemove",pe,Te),ee.on("mouseleave",pe,nt),T.push({layerId:pe,type:"mousemove",handler:Te},{layerId:pe,type:"mouseleave",handler:nt})}),p.layerIds=A,p.boundsIds=ln(p.config,p.id),p.handlers=T;const le=p.visible?"visible":"none";[...p.layerIds,...p.boundsIds].forEach(pe=>{ee.getLayer(pe)&&ee.setLayoutProperty(pe,"visibility",le)})}function Rt(){if(!ee)return;const g={type:"FeatureCollection",features:it(N.value??W.value).map(C=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:C}}))};ee.getSource(Cn)?ee.getSource(Cn).setData(g):ee.addSource(Cn,{type:"geojson",data:g}),ee.getLayer(vn)||ee.addLayer({id:vn,type:"line",source:Cn,paint:{"line-color":"#2563eb","line-width":2,"line-opacity":.8,"line-dasharray":[2,2]}})}function bo(p){if(!ee||s.value)return;const g=J[p];if(!g)return;g.visible=!g.visible;const C=g.visible?"visible":"none";[...g.layerIds,...g.boundsIds].forEach(A=>{ee.getLayer(A)&&ee.setLayoutProperty(A,"visibility",C)}),Et(),g.visible||Ke(p)}function Et(){if(!ee)return;const p=[],g=[],C=[],A=[];ue.value.forEach(le=>{const pe=J[le];if(!pe)return;const Te=String(pe.config?.url??""),nt=/\.v(?:m)?t(?:\?|$)/i.test(Te),ut=/\.png(?:\?|$)/i.test(Te);nt?C.push(...pe.layerIds):ut?p.push(...pe.layerIds):g.push(...pe.layerIds),A.push(...pe.boundsIds)}),[...p,...g,...C,...A].forEach(le=>{ee.getLayer(le)&&ee.moveLayer(le)}),ee.getLayer(vn)&&ee.moveLayer(vn),(ee.getStyle?.()?.layers??[]).map(le=>String(le?.id??"")).filter(le=>le.startsWith("gl-draw-")).forEach(le=>{ee.getLayer(le)&&ee.moveLayer(le)})}function ko(p){if(!ne[p]||(me.value=p,!ee))return;const g=Ge();if(!g)return;const C=ee.getCenter?.(),A=ee.getZoom?.(),T=ae?.getAll?.();ee.setStyle(Ne(g)),ee.once("style.load",()=>{if(ee&&(C&&Number.isFinite(A)&&ee.jumpTo({center:[C.lng,C.lat],zoom:A}),Rt(),ue.value.forEach(G=>{const le=J[G];le&&yt(le)}),Et(),T?.features?.length&&ae))try{T.features.forEach(G=>ae.add(G)),d.value=T.features.length}catch{d.value=0}})}function Ut(p){return{type:"Feature",properties:{},geometry:p}}function lt(p){if(!p)return null;try{return JSON.parse(JSON.stringify(p))}catch{return null}}function an(p){if(!p)return null;const g=lt(p.geometry);return g?{...p.id!==void 0?{id:p.id}:{},type:"Feature",properties:{...p.properties??{}},geometry:g}:null}function Ft(p){if(!p)return[];const g=(T,G)=>{if(!T?.type)return[];const le={...G??{}};return T.type==="MultiPoint"&&Array.isArray(T.coordinates)?T.coordinates.map(pe=>Ut({type:"Point",coordinates:pe})).map(pe=>({...pe,properties:le})):T.type==="MultiLineString"&&Array.isArray(T.coordinates)?T.coordinates.map(pe=>Ut({type:"LineString",coordinates:pe})).map(pe=>({...pe,properties:le})):T.type==="MultiPolygon"&&Array.isArray(T.coordinates)?T.coordinates.map(pe=>Ut({type:"Polygon",coordinates:pe})).map(pe=>({...pe,properties:le})):T.type==="GeometryCollection"&&Array.isArray(T.geometries)?T.geometries.flatMap(pe=>g(pe,le)):[{type:"Feature",properties:le,geometry:lt(T)}]},C=T=>{if(!T)return null;if(T.type==="Feature"){const G=an(T);return G?g(G.geometry,G.properties):null}return T.geom?.type&&Array.isArray(T.geom.coordinates)?g({type:T.geom.type,coordinates:T.geom.coordinates},T.properties??{}):T.type==="GeometryCollection"&&Array.isArray(T.geometries)?g(T,T.properties??{}):typeof T.type=="string"&&Array.isArray(T.coordinates)?g(lt(T),T.properties??{}):null};if(p.type==="FeatureCollection")return(p.features??[]).flatMap(C).filter(Boolean);if(Array.isArray(p))return p.flatMap(T=>T?.type==="FeatureCollection"?Ft(T):[C(T)]).flat().filter(Boolean);const A=C(p);return A?Array.isArray(A)?A:[A]:[]}function R(p){if(!p.length)return null;if(!a.value)return lt(p[0]?.geometry??null);const g=p.map(G=>lt(G?.geometry)).filter(Boolean);return g.every(G=>G?.type==="Point")?{type:"MultiPoint",coordinates:g.map(G=>G.coordinates)}:g.every(G=>G?.type==="LineString")?{type:"MultiLineString",coordinates:g.map(G=>G.coordinates)}:g.every(G=>G?.type==="Polygon")?{type:"MultiPolygon",coordinates:g.map(G=>G.coordinates)}:{type:"GeometryCollection",geometries:g}}function oe(p){if(!p)return"__null__";try{return JSON.stringify(p)}catch{return"__invalid__"}}function de(p,g){if(!Array.isArray(p)||!Array.isArray(g)||p.length<2||g.length<2)return!1;const C=1e-12;return Math.abs(Number(p[0])-Number(g[0]))<C&&Math.abs(Number(p[1])-Number(g[1]))<C}function Ve(p,g){if(!Array.isArray(p)||p.length<4)return null;const A=de(p[0],p[p.length-1])?p.slice(0,-1):p.slice();return!Number.isInteger(g)||g<0||g>=A.length||A.length<=3||(A.splice(g,1),A.length<3)?null:[...A,[...A[0]]]}function Me(p,g){if(!Array.isArray(p)||p.length<2||!Number.isInteger(g)||g<0||g>=p.length||p.length<=2)return null;const C=p.slice();return C.splice(g,1),C.length<2?null:C}function He(p,g){const C=lt(p);if(!C||!Array.isArray(g))return null;if(C.type==="LineString"){const[A]=g,T=Me(C.coordinates,A);return T?(C.coordinates=T,C):null}if(C.type==="MultiLineString"){const[A,T]=g,G=C.coordinates?.[A],le=Me(G,T);return le?(C.coordinates[A]=le,C):null}if(C.type==="Polygon"){const[A,T]=g,G=C.coordinates?.[A],le=Ve(G,T);return le?(C.coordinates[A]=le,C):null}if(C.type==="MultiPolygon"){const[A,T,G]=g,le=C.coordinates?.[A]?.[T],pe=Ve(le,G);return pe?(C.coordinates[A][T]=pe,C):null}return null}function De(p){return p?p.split(".").map(g=>Number(g)).filter(g=>Number.isInteger(g)&&g>=0):[]}function tt(p){return!ae||!p?null:typeof ae.get=="function"?ae.get(p)??null:ae.getAll?.()?.features?.find(C=>String(C?.id??"")===p)??null}function ct(p){const g=p?.properties?.id??p?.id;return g==null||g===""?null:String(g)}function dt(p){if(!ee||!p)return null;const g=[[p.x-8,p.y-8],[p.x+8,p.y+8]],A=ee.queryRenderedFeatures(g).find(T=>{const G=String(T?.properties?.meta??"");return G&&G!=="feature"?!1:!!ct(T)});return ct(A)}function bt(p,g){if(!ae||!p||!g.length)return;const C=tt(p);if(!C?.geometry)return;const A=He(C.geometry,g);if(!A)return;const T={...C,id:C.id??p,geometry:A};we=!0,se=!0;try{ae.delete(p),ae.add(T)}finally{se=!1,we=!1}Mt(),_t()}function at(p){if(!ee||!ae||s.value||k.isRulerActive.value||u.value!=="edit")return;const g=p?.point;if(!g)return;const C=[[g.x-8,g.y-8],[g.x+8,g.y+8]],T=ee.queryRenderedFeatures(C).find(le=>le?.properties?.meta==="vertex"&&le?.properties?.parent&&le?.properties?.coord_path);if(!T)return;p?.originalEvent?.preventDefault?.(),p?.originalEvent?.stopPropagation?.();const G=De(String(T.properties.coord_path));G.length&&bt(String(T.properties.parent),G)}function sn(p){const g=Gr(p);if(!g)return null;const[[C,A],[T,G]]=g;return{lat:(A+G)/2,lng:(C+T)/2}}function qr(p){if(!Array.isArray(p)||p.length<3)return 0;const g=(A,T)=>{const G=A*2003750834e-2/180,le=Math.log(Math.tan((90+T)*Math.PI/360))/(Math.PI/180);return[G,le*2003750834e-2/180]};let C=0;for(let A=0;A<p.length-1;A+=1){const[T,G]=g(Number(p[A][0]),Number(p[A][1])),[le,pe]=g(Number(p[A+1][0]),Number(p[A+1][1]));C+=T*pe-le*G}return Math.abs(C/2)/1e6}function m0(p){if(!p?.type||!p?.coordinates)return null;if(p.type==="Polygon"){const g=p.coordinates?.[0];return Array.isArray(g)?qr(g):null}return p.type==="MultiPolygon"?p.coordinates.reduce((g,C)=>{const A=C?.[0];return Array.isArray(A)?g+qr(A):g},0):null}function xo(p){if(!p){f.value=null;return}const g=sn(p);if(!g){f.value=null;return}f.value={type:String(p.type??"Feature"),center:g,areaKm2:m0(p)}}function wo(p){if(!p){const A=Oe[Oe.length-1],T=lt(A?.geometry??null);j=T,xo(T);return}const g=Oe.find(A=>String(A?.id??"")===String(p))??null,C=lt(g?.geometry??null);j=C,xo(C)}function Co(p){h.value=(p??[]).map((g,C)=>{const A=String(g?.id??`feature-${C+1}`),T=Kr(String(g?.geometry?.type??"Feature"));return{id:A,label:`${T} ${C+1}`}})}function Kr(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 Wr(p,g){if(!Array.isArray(p)||!Array.isArray(g)||p.length!==2||g.length!==2)return!1;const C=1e-9;return Math.abs(Number(p[0])-Number(g[0]))<C&&Math.abs(Number(p[1])-Number(g[1]))<C}function Gr(p){if(!p)return null;let g=1/0,C=1/0,A=-1/0,T=-1/0;const G=le=>{if(Array.isArray(le)){if(le.length>=2&&Number.isFinite(le[0])&&Number.isFinite(le[1])){const pe=Number(le[0]),Te=Number(le[1]);g=Math.min(g,pe),C=Math.min(C,Te),A=Math.max(A,pe),T=Math.max(T,Te);return}le.forEach(G)}};return G(p.coordinates),!Number.isFinite(g)||!Number.isFinite(C)?null:[[g,C],[A,T]]}function Yr(p){if(!ee||!p)return;const g=Gr(p);if(!g)return;const[[C,A],[T,G]]=g;if(C===T&&A===G){ee.easeTo({center:[C,A],zoom:Math.max(E.value,14)});return}ee.fitBounds(g,{padding:30,duration:250,maxZoom:18})}function vo(){if(!ae){d.value=0;return}const p=ae.getAll();d.value=p?.features?.length??0}function cn(){if(!ae)return null;const g=ae.getAll?.()?.features??[],C=G=>!!G&&g.some(le=>String(le?.id??"")===String(G??"")),A=ae.getSelectedIds?.();if(Array.isArray(A)&&A.length>0){const G=A[0];return G!=null?String(G):null}if(C(H))return String(H);if(!g.length)return null;const T=a.value?g[g.length-1]:g[0];return T?.id!==void 0&&T?.id!==null?String(T.id):null}function Mt(){if(!ae)return;const p=ae.getAll();if(d.value=p?.features?.length??0,!p?.features?.length){Oe=[],h.value=[],j=null,H=null,f.value=null,se||(U="__null__",r("update:modelValue",null));return}const g=(p.features??[]).map(an).filter(Boolean);if(Oe=g,Co(g),H=cn(),wo(H),!se){const C=R(g);U=oe(C),r("update:modelValue",C)}}function On(){if(!ae)return;(ae.getAll()?.features||[]).forEach(g=>ae.delete(g.id)),h.value=[],vo()}function zn(p){if(!ae)return;const g=Ft(p),C=a.value?g:g.slice(0,1);se=!0,On(),C.forEach(G=>{try{ae.add(G)}catch{}}),se=!1,Oe=(ae.getAll?.()?.features??C).map(an).filter(Boolean),Co(Oe),H=null;const T=lt(Oe[Oe.length-1]?.geometry??null);j=lt(T),vo(),xo(T),T&&(Yr(T),s.value||_t())}function h0(){ae&&(se=!0,On(),Oe.forEach(p=>{try{ae.add(p)}catch{}}),se=!1,Co(Oe),vo(),wo(H))}function Ht(){if(ae){try{ae.changeMode("simple_select",{featureIds:[]})}catch{}u.value=""}}function Pn(p){if(s.value||!ae)return;k.isRulerActive.value&&k.closeRuler(),Q=!0,Ht(),u.value=p;const g=p==="marker"?"draw_point":p==="polyline"?"draw_line_string":p==="rectangle"?"draw_rectangle":"draw_polygon";a.value||(se=!0,On(),se=!1);try{ae.changeMode(g)}catch{u.value=""}finally{requestAnimationFrame(()=>{Q=!1})}}function _t(p){if(s.value||!ae||!ae.getAll()?.features?.length)return;const C=p||cn();if(C)try{ae.changeMode("direct_select",{featureId:C}),H=C,wo(H),u.value="edit"}catch{u.value=""}}function g0(p){s.value||!ae||!p||_t(p)}function y0(){if(!(s.value||!ae)){if(a.value){const p=cn();if(p)try{F=!0,ae.delete(p),F=!1,Mt();const g=cn();g?_t(g):Ht();return}catch{F=!1}}Ht(),On(),Oe=[],h.value=[],H=null,U="__null__",f.value=null,r("update:modelValue",null)}}function b0(){s.value||!j||Yr(j)}function k0(p){if(!ee||!Se)return;const g=[p[1],p[0]];ie||(ie=new Se.Marker({color:"#2563eb"})),ie.setLngLat(g).addTo(ee),ee.easeTo({center:g,zoom:13,duration:250})}function x0(){s.value||D.value?.click()}function w0(){s.value||(X.value=!X.value)}function Xr(p){if(!X.value)return;const g=K.value;g&&!g.contains(p.target)&&(X.value=!1)}function C0(){X.value=!1,x0()}function v0(){s.value||(ve.value=[],X.value=!1,re.value=!0)}function E0(){re.value=!1,ve.value=[]}function _0(){if(s.value||!ae)return;const p=yc(ge.value.coordinates??"",ge.value.format||"decimal",ge.value.order||"lat-lon");if(!p.ok){ve.value=p.errors,B0(p.errors);return}ve.value=[],zn({type:"Polygon",coordinates:[p.ring]}),Mt(),re.value=!1,p.wasClosedAutomatically&&he.notify({type:"info",title:"Імпорт координат",message:"Полігон був автоматично замкнений (перша і остання точки різнилися)."})}function B0(p){if(!p.length)return;const g=5;p.slice(0,g).forEach(C=>{const A=C.line>0?`Рядок ${C.line}`:"Загальна помилка";he.notify({type:"warning",title:"Імпорт координат",message:`${A} — ${C.message}`})}),p.length>g&&he.notify({type:"warning",title:"Імпорт координат",message:`Ще помилок: ${p.length-g}`})}function V0(p){if(s.value||!ae)return;X.value=!1;const g=p.target,C=g.files?.[0];if(!C)return;const A=new FileReader;A.onload=()=>{try{const T=JSON.parse(String(A.result));if(!Ft(T).length){he.notify({type:"warning",title:"Імпорт файлу",message:"Файл не містить коректний GeoJSON-обʼєкт."});return}zn(T),Mt()}catch{he.notify({type:"error",title:"Імпорт файлу",message:"Не вдалося прочитати файл. Перевірте формат GeoJSON/JSON."})}finally{g.value=""}},A.onerror=()=>{he.notify({type:"error",title:"Імпорт файлу",message:"Помилка читання файлу."}),g.value=""},A.readAsText(C)}function S0(){if(s.value||!ae)return;const p=ae.getAll(),g=new Blob([JSON.stringify(p,null,2)],{type:"application/json"}),C=URL.createObjectURL(g),A=document.createElement("a");A.href=C,A.download="data.geojson",A.click(),URL.revokeObjectURL(C)}return e.onMounted(async()=>{if(window.addEventListener("click",Xr,!0),!i.value)return;const p=await $e();Se=p.maplibregl,Le=p.MapboxDraw;const g=Ge();g&&(ee=new Se.Map({container:i.value,style:Ne(g),center:[I.value[0],I.value[1]],zoom:E.value,attributionControl:!1}),x.value=ee,ee.addControl(new Se.NavigationControl({showCompass:!0}),"bottom-right"),ee.on("load",()=>{if(!(!Le||!ee)){if(ae=new Le({displayControlsDefault:!1,modes:{...Le.modes,draw_rectangle:Ee()},controls:{point:!1,line_string:!1,polygon:!1,trash:!1},styles:et}),ee.addControl(ae),ee.on("click",C=>{if(k.isRulerActive.value){const T=C?.lngLat;if(!T)return;m.value?.addPoint?.({lat:T.lat,lng:T.lng});return}if(!ae||s.value||u.value!=="edit")return;const A=dt(C?.point);!A||A===H||requestAnimationFrame(()=>{!ae||s.value||_t(A)})}),ee.on("draw.create",()=>{if(ae&&!k.isRulerActive.value){if(!a.value){const C=ae.getAll();if(C.features.length>1){const A=C.features[C.features.length-1];se=!0,C.features.slice(0,-1).forEach(T=>ae.delete(T.id)),se=!1,A&&(se=!0,ae.add(A),se=!1)}}Mt(),_t()}}),ee.on("draw.update",C=>{if(q||k.isRulerActive.value)return;const A=Array.isArray(C?.features)?C.features:[],T=C?.action==="move"&&A.length>0&&A.every(G=>G?.geometry?.type==="Point");if(C?.action==="move"){if(T){Mt();return}if(q=!0,h0(),q=!1,u.value==="edit"){const G=cn(),le=G?tt(G):ae?.getAll?.()?.features?.[0];if(le?.id)try{ae.changeMode("direct_select",{featureId:le.id}),H=String(le.id)}catch{u.value=""}}return}Mt()}),ee.on("draw.delete",()=>{we||F||k.isRulerActive.value||u.value==="marker"||u.value==="polyline"||u.value==="polygon"||u.value==="rectangle"||(Mt(),ae?.getAll?.()?.features?.length||(H=null),u.value="",Ht())}),ee.on("draw.selectionchange",C=>{if(!ae||q||k.isRulerActive.value||u.value==="marker"||u.value==="polyline"||u.value==="polygon"||u.value==="rectangle")return;const A=C?.features?.[0]?.id!==void 0&&C?.features?.[0]?.id!==null?String(C.features[0].id):null;if(!s.value&&A){if(u.value==="edit"&&H===A)return;requestAnimationFrame(()=>{!ae||s.value||_t(A)});return}const T=ae.getSelectedIds?.(),G=Array.isArray(T)&&T.length>0?String(T[0]):null;if(!s.value&&G){if(u.value==="edit"&&H===G)return;requestAnimationFrame(()=>{!ae||s.value||_t(G)});return}try{ae.changeMode("simple_select",{featureIds:[]})}catch{}}),M.value!==void 0){const C=M.value;M.value=void 0,requestAnimationFrame(()=>{ae&&zn(C)})}Rt(),ue.value.forEach(C=>{const A=J[C];A&&yt(A)}),Et()}}),ee.on("contextmenu",at),ee.on("zoomend",()=>{ee&&(E.value=ee.getZoom())}))}),e.onUnmounted(()=>{k.isRulerActive.value&&k.closeRuler(),window.removeEventListener("click",Xr,!0),Object.values(J).forEach(p=>{ee&&At(p)}),Ke(),ie?.remove&&ie.remove(),ie=null,ee?.remove&&ee.remove(),ee=null,ae=null,x.value=null}),e.watch(()=>n.modelValue,p=>{if(!ae){M.value=p;return}const g=R((a.value?Ft(p):Ft(p).slice(0,1))||[]),C=oe(g);if(U&&C===U){U=null;return}U=null,zn(p)},{deep:!0}),e.watch(()=>B.value,p=>{const g=Array.isArray(p)?p:[],C=[],A=new Set;g.forEach((T,G)=>{if(!T)return;const le=vt(T,G);C.push(le),A.add(le);const pe={...T,id:le},Te=J[le],nt=Te?.visible??!!pe.visible;Te&&ee&&At(Te),J[le]={id:le,config:pe,visible:nt,sourceId:`vs-ov-src-${le}`,layerIds:[],boundsIds:[],handlers:[]}}),Object.keys(J).forEach(T=>{if(A.has(T))return;const G=J[T];G&&ee&&At(G),delete J[T]}),ue.value=C,ee&&(ue.value.forEach(T=>{const G=J[T];G&&yt(G)}),Et())},{immediate:!0,deep:!0}),e.watch(()=>N.value,()=>{ee&&(Rt(),ue.value.forEach(p=>{const g=J[p];g&&yt(g)}),Et())},{deep:!0}),e.watch(()=>$.value,async p=>{if(W.value=[],!p){ee&&(Rt(),ue.value.forEach(g=>{const C=J[g];C&&yt(C)}),Et());return}try{const g=await fetch(`https://data.gki.com.ua/api-user/atu/${p}`);if(!g?.ok)return;const A=(await g.json())?.geometry?.coordinates;Array.isArray(A)&&A.length&&(W.value=A)}catch(g){console.error("Failed to fetch KATOTTG bounds",g)}finally{if(!ee)return;Rt(),ue.value.forEach(g=>{const C=J[g];C&&yt(C)}),Et()}},{immediate:!0}),e.watch(()=>_.value,p=>{if(!Array.isArray(p)||p.length!==2)return;const g=[Number(p[0]),Number(p[1])];if(Wr(I.value,g)||(I.value=[...g],!ee))return;const C=ee.getCenter?.();C&&Wr([C.lng,C.lat],I.value)||ee.easeTo({center:[I.value[0],I.value[1]]})},{deep:!0}),e.watch(()=>S.value,p=>{typeof p=="number"&&(E.value=p,ee&&ee.setZoom(p))}),e.watch(s,p=>{p&&Ht()}),e.watch(d,p=>{if(p>0){s.value||_t();return}Q||Ht()}),e.watch(c,()=>{setTimeout(()=>{ee?.resize&&ee.resize()},50)}),(p,g)=>(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",Md,[Be.value.search?(e.openBlock(),e.createBlock(Ic,{key:0,onGoToCoordinates:k0})):e.createCommentVNode("",!0),Be.value.import||Be.value.export?(e.openBlock(),e.createElementBlock("div",Dd,[e.createElementVNode("div",Td,[Be.value.import?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"importMenuRef",ref:K,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:w0,disabled:s.value},[g[8]||(g[8]=e.createTextVNode(" Імпорт ",-1)),e.createVNode(e.unref(z.ChevronDown),{class:e.normalizeClass(["h-4 w-4 transition-transform",{"rotate-180":X.value}])},null,8,["class"])],8,Ld),X.value?(e.openBlock(),e.createElementBlock("div",Id,[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:C0}," З файлу ")):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:v0}," З координат ")])):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:S0,disabled:s.value||d.value===0}," Експорт ",8,Rd)):e.createCommentVNode("",!0)]),e.createElementVNode("input",{ref_key:"importRef",ref:D,type:"file",onChange:V0,accept:".json,.geojson",class:"hidden",disabled:s.value},null,40,Od)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createVNode(e.unref(he.VsModal),{visible:re.value,"onUpdate:visible":g[1]||(g[1]=C=>re.value=C),title:"Імпорт координат полігону",size:"lg",teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(rt,{schema:te,values:ge.value,"onUpdate:values":g[0]||(g[0]=C=>ge.value=C)},null,8,["values"]),e.createElementVNode("div",zd,[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:E0}," Скасувати "),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:_0,disabled:s.value}," Побудувати ",8,Pd)])]),_:1},8,["visible"]),e.createElementVNode("div",jd,[e.createElementVNode("div",Ud,[Be.value.point?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(["vs-btn",{"vs-active":u.value==="marker"}]),title:"Point",onClick:g[2]||(g[2]=C=>Pn("marker")),disabled:s.value},[e.createVNode(e.unref(z.MapPin),{class:"h-4 w-4"})],10,Hd)):e.createCommentVNode("",!0),Be.value.line?(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(["vs-btn",{"vs-active":u.value==="polyline"}]),title:"Line",onClick:g[3]||(g[3]=C=>Pn("polyline")),disabled:s.value},[e.createVNode(nc)],10,qd)):e.createCommentVNode("",!0),Be.value.polygon?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":u.value==="polygon"}]),title:"Polygon",onClick:g[4]||(g[4]=C=>Pn("polygon")),disabled:s.value},[e.createVNode(ac)],10,Kd)):e.createCommentVNode("",!0),Be.value.rectangle?(e.openBlock(),e.createElementBlock("button",{key:3,class:e.normalizeClass(["vs-btn",{"vs-active":u.value==="rectangle"}]),title:"Rectangle",onClick:g[5]||(g[5]=C=>Pn("rectangle")),disabled:s.value},[e.createVNode(dc)],10,Wd)):e.createCommentVNode("",!0),Be.value.ruler?(e.openBlock(),e.createElementBlock("button",{key:4,class:e.normalizeClass(["vs-btn mt-3",{"vs-active":e.unref(k).isRulerActive.value}]),title:"Ruler",onClick:y},[e.createVNode(e.unref(z.Ruler),{class:"h-4 w-4"})],2)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"vs-btn mt-5",onClick:g[6]||(g[6]=C=>c.value=!c.value),title:"Full Screen"},[e.createVNode(e.unref(z.Maximize),{class:"h-4 w-4"})])])]),Be.value.ruler&&e.unref(k).isRulerActive.value?(e.openBlock(),e.createBlock(Nd,{key:1,ref_key:"rulerPanelRefEl",ref:m,onClose:g[7]||(g[7]=C=>e.unref(k).closeRuler()),onTabChange:e.unref(k).onRulerTabChange,onPointsChange:e.unref(k).onRulerPointsChange,onShapeClosedChange:e.unref(k).onRulerShapeClosedChange},null,8,["onTabChange","onPointsChange","onShapeClosedChange"])):e.createCommentVNode("",!0),Be.value.ruler&&e.unref(k).isRulerActive.value&&e.unref(k).hasRulerPoints.value?(e.openBlock(),e.createBlock(Ad,{key:2,map:x.value,points:e.unref(k).rulerPoints.value,"is-shape-closed":e.unref(k).rulerShapeClosed.value,"label-mode":e.unref(k).rulerActiveTab.value},null,8,["map","points","is-shape-closed","label-mode"])):e.createCommentVNode("",!0),Ae.value.length?(e.openBlock(),e.createElementBlock("div",{key:3,class:"absolute z-[1500] pointer-events-none",style:e.normalizeStyle(Re.value)},[e.createElementVNode("div",Gd,[e.createElementVNode("dl",Yd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Ae.value,C=>(e.openBlock(),e.createElementBlock("div",{key:`${C.key}-${C.value}`,class:"flex justify-between gap-2"},[e.createElementVNode("dt",Xd,e.toDisplayString(C.key),1),e.createElementVNode("dd",Zd,e.toDisplayString(C.value),1)]))),128))])])],4)):e.createCommentVNode("",!0),e.createElementVNode("div",Jd,[e.createElementVNode("div",Qd,[e.createVNode(hc,{basemaps:e.unref(ne),onOnLayerChange:ko},null,8,["basemaps"]),ye.value.length?(e.openBlock(),e.createElementBlock("div",eu,[g[9]||(g[9]=e.createElementVNode("p",{class:"font-semibold text-[11px] uppercase tracking-wide text-gray-500 mb-2"},"Шари",-1)),e.createElementVNode("div",tu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(ye.value,C=>(e.openBlock(),e.createElementBlock("label",{key:C.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:C.visible,disabled:s.value,onChange:A=>bo(C.id)},null,40,nu),e.createElementVNode("span",ou,e.toDisplayString(C.config.title||C.config.name||C.id),1)]))),128))])])):e.createCommentVNode("",!0)])]),e.createElementVNode("div",ru,[h.value.length||f.value?(e.openBlock(),e.createElementBlock("div",lu,[e.createElementVNode("div",au,[e.createElementVNode("div",su,[g[10]||(g[10]=e.createTextVNode(" Тип: ",-1)),h.value.length<=1?(e.openBlock(),e.createElementBlock("span",iu,e.toDisplayString(f.value?Kr(f.value.type):h.value[0]?.label||"—"),1)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(h.value,(C,A)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:C.id},[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["font-bold underline-offset-2",C.id===e.unref(H)?"text-blue-700 underline":"text-gray-700 hover:text-blue-700 hover:underline"]),onClick:T=>g0(C.id),disabled:s.value},e.toDisplayString(C.label),11,cu),A<h.value.length-1?(e.openBlock(),e.createElementBlock("span",du,", ")):e.createCommentVNode("",!0)],64))),128))])]),e.createElementVNode("div",uu,[e.createElementVNode("div",pu,[g[11]||(g[11]=e.createTextVNode(" Центр: ",-1)),f.value?(e.openBlock(),e.createElementBlock("b",fu,e.toDisplayString(f.value.center.lng.toFixed(5))+", "+e.toDisplayString(f.value.center.lat.toFixed(5)),1)):(e.openBlock(),e.createElementBlock("b",mu,"—"))]),f.value&&f.value.areaKm2!==null?(e.openBlock(),e.createElementBlock("div",hu,[g[12]||(g[12]=e.createTextVNode(" Площа: ",-1)),e.createElementVNode("b",null,e.toDisplayString(f.value.areaKm2.toFixed(1))+" km²",1)])):(e.openBlock(),e.createElementBlock("div",gu,[...g[13]||(g[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:b0,disabled:s.value},[e.createVNode(e.unref(z.ZoomIn),{class:"h-3 w-3"})],8,yu),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:y0,disabled:s.value},[e.createVNode(e.unref(z.Trash2),{class:"h-4 w-4"})],8,bu)])])):e.createCommentVNode("",!0)])],2)],8,["disabled"]))}}),[["__scopeId","data-v-d18ff937"]]),ku=["data-focus"],xu={class:"flex items-center"},wu={class:"overflow-hidden text-ellipsis whitespace-nowrap rounded-sm text-[#333] text-[85%] px-0.5 py-[3px] pl-1.5 box-border"},Cu=["onClick","aria-label"],vu={key:0,class:"absolute text-gray-500 truncate pl-2"},Eu={class:"flex-1 min-w-[2px]"},_u=["placeholder"],Bu={class:"flex items-center shrink-0"},Vu=["disabled"],Wo=e.defineComponent({__name:"vs-input-tag",props:e.mergeModels({unique:{type:Boolean,default:!0},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:"Введіть тег"},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=t;ze(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(o,"modelValue"),u=e.computed(()=>n.placeholder||"Add tag…"),f=e.computed(()=>d.value?.length===0&&i.value===""),h=e.computed(()=>!n.disabled&&d.value?.length>0),x=e.computed(()=>n.disabled),m=async()=>{x.value||await e.nextTick(()=>s.value?.focus())},k=Y=>{const L=Y.trim();L!==""&&(!d.value||!Array.isArray(d.value)?d.value=[L]:n.unique?d.value.includes(L)||(d.value=[...d.value,L]):d.value=[...d.value,L],i.value="")},y=()=>{const Y=i.value;Y.trim()!==""&&k(Y),i.value=""},v=Y=>{const L=d.value.slice();L.splice(Y,1),r("update:modelValue",L)},b=()=>{r("update:modelValue",[])},w=()=>{x.value||(c.value=!0)},V=()=>{c.value=!1,!x.value&&y()},O=Y=>{const{key:L}=Y;L==="Enter"?(Y.preventDefault(),y()):L==="Backspace"&&i.value===""&&d.value.length>0&&v(d.value.length-1)};return(Y,L)=>(e.openBlock(),e.createElementBlock("div",{class:"flex gap-1 w-full",ref_key:"root",ref:l,onClick:L[1]||(L[1]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass]),role:"group","aria-label":"Tag input"},[e.createElementVNode("div",{class:e.normalizeClass(["flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white","border-gray-300 hover:border-gray-400",c.value?"border-blue-500 ring-1 ring-blue-500":"",x.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),"data-focus":c.value?"true":"false",onClick:m},[e.createElementVNode("div",{class:"flex flex-1 flex-wrap items-center gap-1 py-0.5 pl-2 pr-0 overflow-hidden",ref_key:"chipsRef",ref:a},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(_,S)=>(e.openBlock(),e.createElementBlock("div",{key:S,class:"flex min-w-0 bg-[#e6e6e6] rounded-sm m-0.5 box-border"},[e.createElementVNode("div",xu,[e.createElementVNode("div",wu,e.toDisplayString(_),1)]),e.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border hover:bg-[#ffbdad] hover:text-[#de350b]",onClick:e.withModifiers($=>v(S),["stop"]),"aria-label":`Remove ${_}`},[e.createVNode(e.unref(z.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,Cu)]))),128)),f.value?(e.openBlock(),e.createElementBlock("div",vu,e.toDisplayString(u.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Eu,[x.value?e.createCommentVNode("",!0):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"inputRef",ref:s,class:"pl-2 w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-label":"Add tag","onUpdate:modelValue":L[0]||(L[0]=_=>i.value=_),onFocus:w,onBlur:V,onKeydown:O,placeholder:d.value&&d.value.length?"":void 0},null,40,_u)),[[e.vModelText,i.value]])])],512),e.createElementVNode("div",Bu,[h.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-label":"Clear all tags",disabled:x.value,onClick:e.withModifiers(b,["stop"])},[e.createVNode(e.unref(z.X),{class:"h-4 w-4"})],8,Vu)):e.createCommentVNode("",!0)])],10,ku)],2)],512))}}),Su={class:"relative flex gap-1 bg-white w-full"},$u=["disabled","placeholder"],Go=xe(e.defineComponent({__name:"vs-input-slug",props:e.mergeModels({disabled:{type:Boolean},placeholder:{},parent:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=e.inject("values"),n=o,r=e.useModel(o,"modelValue");function l(s){const 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);r.value=c.toString()};return(s,c)=>(e.openBlock(),e.createElementBlock("div",Su,[e.withDirectives(e.createElementVNode("input",{ref:"vsText",disabled:o.disabled,placeholder:o.placeholder,"onUpdate:modelValue":c[0]||(c[0]=i=>r.value=i),class:"block w-full px-3 py-2 text-sm border border-solid rounded-lg placeholder:text-nowrap border-stone-200 text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,8,$u),[[e.vModelText,r.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200",onClick:a}," Gen ")]))}}),[["__scopeId","data-v-cb7b2b74"]]),Nu={class:"relative flex gap-1 bg-white w-full"},Au=["disabled","placeholder"],Fu=["disabled"],Mu={key:0},Du={key:1},Yo=xe(e.defineComponent({__name:"vs-input-codegen",props:e.mergeModels({table:{},code:{},init:{type:Boolean},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref(!1),l=e.computed(()=>t.init!==!1),a=e.computed(()=>!!t.table&&!!t.code),s=()=>{if(!a.value)return"";const d=encodeURIComponent(String(t.table)),u=encodeURIComponent(String(t.code));return`/api/code-gen/${d}/${u}`},c=async()=>{if(!a.value||r.value)return;const d=s();if(d){r.value=!0;try{const f=await(await fetch(d)).text();n.value=f}finally{r.value=!1}}},i=()=>{l.value&&(n.value||c())};return e.onMounted(()=>{i()}),e.watch(()=>[t.table,t.code,t.init],()=>{i()}),(d,u)=>(e.openBlock(),e.createElementBlock("div",Nu,[e.withDirectives(e.createElementVNode("input",{disabled:o.disabled,placeholder:o.placeholder,"onUpdate:modelValue":u[0]||(u[0]=f=>n.value=f),class:"block w-full px-3 py-2 text-sm border border-solid rounded-lg placeholder:text-nowrap border-stone-200 text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,8,Au),[[e.vModelText,n.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200 disabled:opacity-50 disabled:cursor-not-allowed",disabled:r.value||o.disabled||!a.value,onClick:c},[r.value?(e.openBlock(),e.createElementBlock("span",Du,"...")):(e.openBlock(),e.createElementBlock("span",Mu,"Gen"))],8,Fu)]))}}),[["__scopeId","data-v-8f88fb66"]]),Tu={class:"w-full"},Lu={ref:"sortableContainer",class:"flex flex-col gap-1"},Iu=["onDragstart","onDrop"],Ru={class:"cursor-move",type:"button"},Ou={class:"w-1/3"},zu={class:"w-2/3"},Pu=["onClick"],ju={key:0,class:"text-[14px] text-gray-700"},Uu={class:"mt-2 w-full flex items-center"},Hu=["disabled"],Xo=xe(e.defineComponent({__name:"vs-input-key-value",props:{parent:{},ignore:{},addButtonText:{},modelValue:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=y=>`${y}-${Math.random().toString(36).substring(2,15)}`,r=e.inject("values"),l=o,a=t,s=l.addButtonText??"Додати",c=l.ignore??[],i=e.ref([]),d=e.ref(null);(()=>{const y=l.parent&&r?.value?.[l.parent]||l.modelValue||{};i.value=Object.entries(y).filter(([v])=>!c.includes(v)).map(([v,b])=>({id:n("key-value-"),key:v,value:b}))})();function f(y){d.value=y}function h(y){if(d.value===null||d.value===y)return;const v=i.value.splice(d.value,1)[0];i.value.splice(y,0,v),d.value=null}const x=e.computed(()=>i.value.some(y=>y.key&&!y.value||!y.key&&y.value)),m=()=>{i.value.push({id:n("key-value-"),key:"",value:""})},k=y=>{i.value=i.value.filter(v=>v.id!==y)};return e.watch(i,y=>{const v={};y.forEach(w=>{w.key&&w.value!==void 0&&(v[w.key]=w.value)});const b={};c.length&&c.forEach(w=>{b[w]=l.parent?r?.value?.[l.parent]?.[w]:void 0}),r?.value&&l.parent&&(r.value[l.parent]={...b,...v}),a("update:modelValue",v)},{deep:!0}),(y,v)=>(e.openBlock(),e.createElementBlock("div",Tu,[e.createElementVNode("div",Lu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(b,w)=>(e.openBlock(),e.createElementBlock("div",{key:b.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":d.value===w}]),draggable:"true",onDragstart:V=>f(w),onDragover:v[0]||(v[0]=e.withModifiers(()=>{},["prevent"])),onDrop:V=>h(w)},[e.createElementVNode("button",Ru,[e.createVNode(e.unref(z.GripVertical),{class:"h-4 w-4"})]),e.createElementVNode("div",Ou,[e.createVNode(Ot,{modelValue:b.key,"onUpdate:modelValue":V=>b.key=V,placeholder:"Ключ"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",zu,[e.createVNode(Ot,{modelValue:b.value,"onUpdate:modelValue":V=>b.value=V,placeholder:"Значення"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("button",{onClick:V=>k(b.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(z.X),{class:"h-4 w-4"})],8,Pu)],42,Iu))),128))],512),i.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",ju," Дані для відображення відсутні ")),e.createElementVNode("div",Uu,[e.createElementVNode("button",{type:"button",onClick:m,disabled:x.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(z.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(e.unref(s)),1)],8,Hu)])]))}}),[["__scopeId","data-v-ac321a0f"]]),qu={class:"w-full"},Ku={ref:"sortableContainer",class:"flex flex-col gap-1"},Wu=["onDragstart","onDrop"],Gu=["disabled"],Yu={class:"flex-1"},Xu=["onClick","disabled"],Zu={key:0,class:"text-[14px] text-gray-700"},Ju={class:"mt-2 w-full flex items-center"},Qu=["disabled"],Zo=xe(e.defineComponent({__name:"vs-input-text-array",props:e.mergeModels({addButtonText:{default:"Додати"},inputType:{default:"text"},placeholder:{default:"Значення"},mask:{default:""},disabled:{type:Boolean,default:!1}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref([]),l=e.ref(null),a=e.computed(()=>!!t.disabled),s=e.computed(()=>t.placeholder??""),c=e.computed(()=>t.addButtonText??"Додати");let i=!1;const d=y=>`${y}-${Math.random().toString(36).substring(2,15)}`,u=y=>{const v=y??n.value??[];r.value=v.map((b,w)=>({id:r.value[w]?.id??d("text-array"),value:b??""}))};u(),e.watch(()=>n.value,y=>{if(i){i=!1;return}u(y||[])},{deep:!0}),e.watch(r,y=>{i=!0,n.value=y.map(v=>v.value).filter(v=>v!=null&&v!=="")},{deep:!0});const f=e.computed(()=>a.value||r.value.some(y=>!y.value));function h(){f.value||(r.value=[...r.value,{id:d("text-array"),value:""}])}function x(y){a.value||(r.value=r.value.filter(v=>v.id!==y))}function m(y){a.value||(l.value=y)}function k(y){if(a.value||l.value===null||l.value===y)return;const v=[...r.value],[b]=v.splice(l.value,1);v.splice(y,0,b),r.value=v,l.value=null}return(y,v)=>(e.openBlock(),e.createElementBlock("div",qu,[e.createElementVNode("div",Ku,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(b,w)=>(e.openBlock(),e.createElementBlock("div",{key:b.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":l.value===w}]),draggable:"true",onDragstart:V=>m(w),onDragover:v[0]||(v[0]=e.withModifiers(()=>{},["prevent"])),onDrop:V=>k(w)},[e.createElementVNode("button",{class:"cursor-move",type:"button",disabled:a.value},[e.createVNode(e.unref(z.GripVertical),{class:"h-4 w-4"})],8,Gu),e.createElementVNode("div",Yu,[o.inputType==="text"?(e.openBlock(),e.createBlock(Ot,{key:0,modelValue:b.value,"onUpdate:modelValue":V=>b.value=V,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),o.inputType==="tel"?(e.openBlock(),e.createBlock(Kn,{key:1,modelValue:b.value,"onUpdate:modelValue":V=>b.value=V,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),o.inputType==="email"?(e.openBlock(),e.createBlock(qn,{key:2,modelValue:b.value,"onUpdate:modelValue":V=>b.value=V,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),o.inputType==="mask"?(e.openBlock(),e.createBlock(pn,{key:3,modelValue:b.value,"onUpdate:modelValue":V=>b.value=V,mask:o.mask,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","mask","disabled","placeholder"])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:V=>x(b.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(z.X),{class:"h-4 w-4"})],8,Xu)],42,Wu))),128))],512),r.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Zu," Дані для відображення відсутні ")),e.createElementVNode("div",Ju,[e.createElementVNode("button",{type:"button",onClick:h,disabled:f.value,class:"py-1.5 px-2 flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"},[e.createVNode(e.unref(z.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(c.value),1)],8,Qu)])]))}}),[["__scopeId","data-v-972a598a"]]),ep={class:"flex items-center gap-2 w-full"},tp=["disabled"],np=["disabled"],Jo=e.defineComponent({__name:"vs-input-color",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,{inputClass:r}=ze(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",ep,[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]",[o.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,tp),[[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,np),[[e.vModelText,a.value]])]))}}),op={class:"flex items-center gap-2 w-full"},rp=["min","max","step","disabled"],lp=["value","min","max","step","disabled"],Qo=e.defineComponent({__name:"vs-input-range",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{},min:{default:0},max:{default:100},step:{default:1}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,{inputClass:r}=ze(n.style),l=t,a=u=>{const f=Number(u),h=Number(n.min),x=Number(n.max);return Number.isNaN(f)?h:Math.min(x,Math.max(h,f))},s=e.computed({get:()=>a(n.modelValue??n.min),set:u=>l("update:modelValue",a(u))}),c=u=>{const f=u.target,h=a(f.value);f.value=String(h),l("update:modelValue",h)},i=u=>{Number(n.min)>=0&&u.key==="-"&&u.preventDefault()},d=e.computed(()=>!!n.disabled);return(u,f)=>(e.openBlock(),e.createElementBlock("div",op,[e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":f[0]||(f[0]=h=>s.value=h),min:o.min,max:o.max,step:o.step,disabled:d.value,ref:"range",class:e.normalizeClass(["w-full cursor-pointer accent-blue-500",[o.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")])},null,10,rp),[[e.vModelText,s.value]]),e.createElementVNode("input",{class:"text-sm text-gray-600 border border-solid border-stone-200 rounded-md p-2 max-w-[100px]",type:"number",value:s.value,min:o.min,max:o.max,step:o.step,onInput:c,onKeydown:i,disabled:d.value},null,40,lp)]))}}),ap=["placeholder","disabled","name"],sp=["type","value","onInput","placeholder","disabled"],ip=["onClick"],er=e.defineComponent({__name:"vs-input-array",props:e.mergeModels({count:{default:1},limit:{default:1},mask:{default:""},unmask:{type:Boolean,default:!1},inputType:{default:"text"},isAdded:{type:Boolean,default:!1},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.ref(t.count),r=e.computed(()=>t.limit),{inputClass:l}=ze(t.style),a=e.useModel(o,"modelValue"),s=e.computed(()=>!!t.disabled),c=e.computed(()=>t.placeholder??"");e.watchEffect(()=>{const k=a.value?.length??0;k<n.value&&(a.value=[...a.value??[],...Array(n.value-k)])});const i=e.ref({}),d=e.ref({});function u(k,y){k&&(i.value[y]=k)}async function f(k,y){if(!k||t.inputType!=="mask")return;const{default:v}=await Promise.resolve().then(()=>uo);d.value[y]&&d.value[y].destroy(),d.value[y]=v(k,{mask:t.mask||"",definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},lazy:!1}),d.value[y].on("accept",()=>{const b=[...a.value||[]];b[y]=t.unmask?d.value[y].unmaskedValue:d.value[y].value,a.value=b}),d.value[y].on("complete",()=>{const b=[...a.value||[]];b[y]=t.unmask?d.value[y].unmaskedValue:d.value[y].value,a.value=b}),a.value?.[y]&&(d.value[y].value=a.value[y])}function h(k,y){if(s.value)return;const v=k.target.value??null,b=[...a.value];b[y]=t.inputType==="text"?v:Number(v),a.value=b}function x(){n.value+=1;const k=t.inputType==="text"||t.inputType==="mask"?null:0;a.value=[...a.value,k],t.inputType==="mask"&&setTimeout(()=>{const y=n.value-1;i.value[y]&&f(i.value[y],y)},0)}function m(k){if(n.value>1){d.value[k]&&(d.value[k].destroy(),delete d.value[k]),n.value-=1,a.value=a.value.filter((v,b)=>b!==k);const y={};Object.keys(d.value).forEach(v=>{const b=parseInt(v,10);b>k?y[b-1]=d.value[b]:b<k&&(y[b]=d.value[b])}),d.value=y}}return e.onMounted(()=>{if(t.inputType==="mask")for(let k=0;k<n.value;k+=1)i.value[k]&&f(i.value[k],k)}),e.onBeforeUnmount(()=>{Object.values(d.value).forEach(k=>{k&&k.destroy()})}),e.watch(()=>t.mask,k=>{t.inputType==="mask"&&Object.values(d.value).forEach(y=>{y&&y.updateOptions({mask:k,definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/}})})}),e.watch(a,k=>{t.inputType==="mask"&&k&&k.forEach((y,v)=>{d.value[v]&&d.value[v].value!==y&&(d.value[v].value=y||"")})},{deep:!0}),(k,y)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["grid gap-2",`grid-cols-${r.value}`])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,v=>(e.openBlock(),e.createElementBlock("div",{key:v,class:"flex items-center gap-2 w-full"},[o.inputType==="mask"?(e.openBlock(),e.createElementBlock("input",{key:0,type:"text",ref_for:!0,ref:b=>u(b,v-1),placeholder:o.placeholder,disabled:o.disabled,name:`${o.name}[${v-1}]`,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(l),{"!border-red-600":o.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,ap)):(e.openBlock(),e.createElementBlock("input",{key:1,type:o.inputType,value:a.value?.[v-1],onInput:b=>h(b,v-1),placeholder:c.value,disabled:s.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(l),{"!border-red-600":o.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,sp)),!o.disabled&&v===n.value&&o.isAdded?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:e.withModifiers(x,["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(z.Plus),{class:"h-4 w-4"})])):e.createCommentVNode("",!0),!o.disabled&&n.value>1&&o.isAdded?(e.openBlock(),e.createElementBlock("button",{key:3,type:"button",onClick:e.withModifiers(b=>m(v-1),["stop"]),class:"cursor-pointer shrink-0 w-[38px] text-red-600 h-[38px] rounded-md flex items-center justify-center border border-stone-200 hover:bg-stone-100"},[e.createVNode(e.unref(z.X),{class:"h-4 w-4"})],8,ip)):e.createCommentVNode("",!0)]))),128))],2))}}),cp={class:"flex gap-1 w-full"},dp=["aria-expanded","data-focus"],up=["placeholder","disabled","readonly"],pp={class:"max-h-full"},fp=["onClick","disabled"],mp={key:0,class:"px-3 py-2 text-sm text-stone-500"},hp=["disabled"],gp={class:"flex flex-col gap-1"},yp=["onDragstart","onDrop"],bp=["disabled"],kp=["title"],xp=["disabled","onClick","aria-label"],wp={key:0,class:"text-xs text-stone-500"},En=xe(e.defineComponent({__name:"vs-input-array-select",props:e.mergeModels({options:{default:()=>[]},data:{default:""},api:{default:""},prefix:{default:"api"},host:{default:""},parent:{},search:{type:Boolean,default:!0},maxHeight:{default:280},start:{default:0},slot:{},disabled:{type:Boolean,default:!1},add:{},style:{},customClass:{},modelValue:{},error:{},name:{},placeholder:{default:"Оберіть значення"},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:e.mergeModels(["change","update:modelValue","value-selected"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=t,l=e.useModel(o,"modelValue"),a=e.ref([]),s=e.ref(n.options??[]),c=e.ref({}),i=e.ref({}),d=e.ref({keyword:"",parent:null}),u=e.ref(""),f=e.ref(!1),h=e.ref(null),x=e.ref(null),m=e.ref(null),k=e.ref(null),y=e.ref(null),v=e.ref({});let b=!1,w=!1;const V=e.inject("values"),O=e.computed(()=>!!n.disabled),Y=e.computed(()=>n.placeholder??"Оберіть значення"),L=e.computed(()=>n.search!==!1),_=e.computed(()=>{const F=n.parent??n.parentValue;return F?String(F):""}),S=e.computed(()=>_.value?V?.value?.[_.value]??null:null),$=F=>F==null?"__null__":String(F),B=F=>{if(!F)return"";const q=F.label??F.text??F.name??F.ua??F.en;return q?String(q):F.id!==void 0&&F.id!==null?String(F.id):""},N=F=>{const q=$(F);return i.value[q]||(i.value[q]=`array-select-${q}-${Math.random().toString(36).slice(2,8)}`),i.value[q]},I=e.computed(()=>new Set(a.value.map(F=>$(F.id)))),E=e.computed(()=>{const F=I.value;let q=[...s.value];if(!n.data&&u.value.trim()){const Q=u.value.toLowerCase();q=q.filter(ie=>B(ie).toLowerCase().includes(Q))}return q.filter(Q=>!F.has($(Q.id)))}),M=()=>{if(!n.data)return"";const F=n.prefix??"api",q=n.api??`/${F}/suggest/${n.data}`;return`${n.host??""}${q}`},D=()=>{a.value.length&&(b=!0,a.value=a.value.map(F=>({...F,text:c.value[$(F.id)]??F.text})))},K=F=>{const q=$(F.id),Q=B(F);Q&&(c.value[q]=Q)},W=F=>{s.value=F?[...F]:[],F?.forEach(K),D()},X=F=>{if(!F.length)return;const q=new Map(s.value.map(Q=>[$(Q.id),Q]));F.forEach(Q=>{const ie=$(Q.id);q.set(ie,Q),K(Q)}),s.value=Array.from(q.values()),D()},re=async(F="")=>{if(!n.data)return[];const q=M();if(!q)return[];const Q=new URLSearchParams;Q.set("json","1"),F&&Q.set("key",F),n.start===1&&Q.set("start","1"),S.value!==null&&S.value!==void 0&&S.value!==""&&Q.set("parent",String(S.value));try{return(await(await fetch(`${q}?${Q.toString()}`)).json())?.data??[]}catch{return[]}},ve=async F=>{if(!n.data||!F.length)return[];const q=M();if(!q)return[];const Q=Array.from(new Set(F.map(Ee=>$(Ee)))),ie=new URLSearchParams;ie.set("json","1"),ie.set("val",Q.join(",")),n.start===1&&ie.set("start","1"),S.value!==null&&S.value!==void 0&&S.value!==""&&ie.set("parent",String(S.value));try{const Ge=(await(await fetch(`${q}?${ie.toString()}`)).json())?.data??[];return X(Ge),Ge}catch{return[]}},ge=async F=>{if(F==null||F==="")return null;const q=$(F),Q=s.value.find(Ee=>$(Ee.id)===q);if(Q)return Q;const[ie]=await ve([F]);return ie??null},te=async(F="",{force:q=!1}={})=>{if(!n.data)return;const Q=S.value??null;if(!q&&d.value.keyword===F&&d.value.parent===Q&&s.value.length>0)return;d.value={keyword:F,parent:Q};const Ee=await re(F);W(Ee)},we=((F,q=200)=>{let Q;return(...ie)=>{Q&&clearTimeout(Q),Q=setTimeout(()=>F(...ie),q)}})(async F=>{n.data&&await te(F,{force:!0})},250),J=e.ref(null),ue=()=>{if(!m.value)return;const F=m.value.getBoundingClientRect(),q=window.innerHeight??document.documentElement.clientHeight,Q=window.innerWidth??document.documentElement.clientWidth,ie=8,Ee=8,et=n.maxHeight??280,Ge=q-F.bottom-Ee-ie,vt=F.top-Ee-ie,qe=Ge>=vt,Ke=Math.max(Q-ie*2,0);let{width:gt}=F;Ke>0&>>Ke&&(gt=Ke);let{left:it}=F;it+gt+ie>Q&&(it=Q-gt-ie),it=Math.max(it,ie);const jt=Math.min(et,Math.max(qe?Ge:vt,50));v.value={position:"fixed",left:`${it}px`,width:`${gt}px`,maxHeight:`${jt}px`,transform:qe?"none":"translateY(-100%)",top:qe?`${F.bottom+Ee}px`:`${F.top-Ee}px`}},ye=async(F="click")=>{O.value||f.value||(J.value=F,await te(u.value.trim()),f.value=!0,await e.nextTick(),ue(),y.value?.focus())},_e=()=>{f.value=!1,J.value=null,e.nextTick(()=>{y.value?.blur()})},Ae=async F=>{if(F.stopPropagation(),!O.value){if(f.value){if(J.value==="focus"){J.value=null;return}_e();return}await ye("click")}},Re=F=>{F.key==="Escape"&&_e()},Fe=F=>{if(!f.value)return;const q=F.target;k.value?.contains(q)||_e()},Be=F=>{const q=F.target;x.value?.contains(q)||k.value?.contains(q)||_e()},P=F=>{if(F.key==="Escape"){F.preventDefault(),_e();return}if(F.key==="Enter"){F.preventDefault();const q=E.value[0];q&&Z(q)}},Z=F=>{if(!F)return;const q=$(F.id);if(I.value.has(q))return;K(F);const Q={id:F.id,text:B(F)||String(F.id??""),key:N(F.id)};a.value=[...a.value,Q],ne(F),u.value="",e.nextTick(()=>{y.value?.focus()})},ne=F=>{const q=a.value.map(Q=>Q.id);r("value-selected",{name:n.name,value:q,option:F})},ce=F=>{if(O.value)return;const q=a.value.filter(Q=>$(Q.id)!==$(F));a.value=q},{isOpenAdd:me,addData:$e,addSchema:Ne,addForm:Se,addTitle:Le,addOption:ee,onAddValue:ae}=To({props:n,fetchOptionByValue:ge,optionsList:s,selectedOption:e.ref(null),modelValue:l,onCreated:async(F,q)=>{const Q=F??await ge(q),ie=Q?.id??q;I.value.has($(ie))||(Q&&K(Q),a.value=[...a.value,{id:ie,text:Q?B(Q):String(ie),key:N(ie)}],ne(Q??null))}}),Oe=F=>{O.value||(h.value=F)},j=F=>{if(O.value||h.value===null||h.value===F)return;const q=[...a.value],[Q]=q.splice(h.value,1);q.splice(F,0,Q),h.value=null,a.value=q},U=async()=>{const q=(Array.isArray(l.value)?[...l.value]:[]).filter(ie=>ie!=null);if(n.data&&q.length){const ie=q.filter(Ee=>!c.value[$(Ee)]);ie.length&&await ve(ie)}const Q=q.map(ie=>({id:ie,text:c.value[$(ie)]??String(ie),key:N(ie)}));b=!0,a.value=Q};e.watch(a,F=>{if(b){b=!1;return}const q=F.map(Q=>Q.id);w=!0,l.value=q,r("change",q)},{deep:!0}),e.watch(l,()=>{if(w){w=!1;return}U()},{deep:!0}),e.watch(u,F=>{!n.data||!f.value||we(F.trim())}),e.watch(O,F=>{F&&_e()}),e.watch(()=>n.options,async F=>{n.data||(W(F??[]),await U())},{immediate:!0,deep:!0}),e.watch(()=>n.data,async F=>{F&&(await te(u.value.trim()),await U())},{immediate:!0});const H=e.ref(!1);return e.watch(S,async()=>{if(n.data){if(!H.value){H.value=!0;return}a.value=[],await te(u.value.trim()),await U()}}),e.onMounted(async()=>{document.addEventListener("click",Be,!0),window.addEventListener("keydown",Re),window.addEventListener("scroll",Fe,!0),await U()}),e.onUnmounted(()=>{document.removeEventListener("click",Be,!0),window.removeEventListener("keydown",Re),window.removeEventListener("scroll",Fe,!0)}),(F,q)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(he.VsModal),{visible:e.unref(me),"onUpdate:visible":q[1]||(q[1]=Q=>e.isRef(me)?me.value=Q:null),class:"z-[1000]",title:e.unref(Le),buttonText:"Додати",onDone:e.unref(ee)},{default:e.withCtx(()=>[e.createVNode(rt,{schema:e.unref(Ne),modelValue:e.unref($e),"onUpdate:modelValue":q[0]||(q[0]=Q=>e.isRef($e)?$e.value=Q:null),ref_key:"addForm",ref:Se},null,8,["schema","modelValue"])]),_:1},8,["visible","title","onDone"]),e.createElementVNode("div",{class:"flex flex-col gap-2 w-full",ref_key:"rootRef",ref:x},[e.createElementVNode("div",cp,[e.createElementVNode("div",{class:"relative flex-1",onClick:q[4]||(q[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{ref_key:"triggerRef",ref:m,class:e.normalizeClass(["flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white px-3","border-gray-300 hover:border-[#b3d4ff]",f.value?"border-[#2684ff] ring-1 ring-[#2684ff] shadow-[0_0_0_1px_rgba(38,132,255,0.5)]":"",O.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),role:"combobox","aria-expanded":f.value,"aria-haspopup":"listbox","data-focus":f.value?"true":"false",onClick:Ae},[e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:y,"onUpdate:modelValue":q[2]||(q[2]=Q=>u.value=Q),placeholder:Y.value,disabled:O.value,readonly:!L.value,onFocus:q[3]||(q[3]=()=>ye("focus")),onKeydown:P,class:"flex-1 bg-transparent border-0 outline-none px-0 py-1 text-sm text-stone-900 placeholder:text-stone-400"},null,40,up),[[e.vModelText,u.value]]),e.createElementVNode("span",{class:e.normalizeClass(["text-stone-400 transition-transform duration-150",f.value?"rotate-180":""]),"aria-hidden":"true"},[e.createVNode(e.unref(z.ChevronDown),{class:"h-4 w-4"})],2)],10,dp),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[f.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:k,class:"fixed z-[3000] rounded-md border border-stone-200 bg-white shadow-lg overflow-auto",style:e.normalizeStyle(v.value)},[e.createElementVNode("div",pp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(E.value,Q=>(e.openBlock(),e.createElementBlock("button",{key:$(Q.id),type:"button",class:"w-full px-3 py-2 text-left text-sm text-stone-900 hover:bg-stone-100 disabled:opacity-50",onClick:e.withModifiers(ie=>Z(Q),["stop"]),disabled:O.value},e.toDisplayString(B(Q)),9,fp))),128)),E.value.length===0?(e.openBlock(),e.createElementBlock("p",mp," Немає варіантів ")):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))]),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:q[5]||(q[5]=(...Q)=>e.unref(ae)&&e.unref(ae)(...Q)),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:O.value,type:"button"},[e.createVNode(e.unref(z.Plus),{class:"h-4 w-4"}),q[8]||(q[8]=e.createElementVNode("span",null,"Додати",-1))],8,hp)):e.createCommentVNode("",!0)]),e.createElementVNode("div",gp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(Q,ie)=>(e.openBlock(),e.createElementBlock("div",{key:Q.key,class:e.normalizeClass(["flex items-center gap-2 rounded-md border border-stone-200 bg-white px-2 py-2",{"opacity-60":h.value===ie}]),draggable:"true",onDragstart:Ee=>Oe(ie),onDragover:q[6]||(q[6]=e.withModifiers(()=>{},["prevent"])),onDrop:Ee=>j(ie),onDragend:q[7]||(q[7]=Ee=>h.value=null)},[e.createElementVNode("button",{type:"button",class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-stone-500 hover:text-stone-900",disabled:O.value,"aria-label":"Перетягнути"},[e.createVNode(e.unref(z.GripVertical),{class:"h-4 w-4"})],8,bp),e.createElementVNode("div",{class:"flex-1 text-sm text-stone-900",title:Q.text},e.toDisplayString(Q.text),9,kp),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:O.value,onClick:e.withModifiers(Ee=>ce(Q.id),["stop"]),"aria-label":`Видалити ${Q.text}`},[e.createVNode(e.unref(z.X),{class:"h-4 w-4"})],8,xp)],42,yp))),128)),a.value.length===0?(e.openBlock(),e.createElementBlock("p",wp,"Немає вибраних значень")):e.createCommentVNode("",!0)])],512)],64))}}),[["__scopeId","data-v-9f0cb9d4"]]),Cp={class:"flex items-center gap-2 w-full"},vp={class:"relative flex-1"},Ep=["placeholder","disabled","onKeydown"],_p=["disabled"],Bp={key:0,class:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/50"},Vp={class:"bg-white text-gray-900 rounded-lg shadow-lg w-[480px] max-h-[80vh] overflow-y-auto"},Sp={class:"p-3 border-b font-semibold text-gray-900 flex justify-between items-center"},$p=["onClick"],Np={key:0,class:"p-4 text-sm text-gray-500"},tr=e.defineComponent({__name:"vs-input-address",props:e.mergeModels({api:{default:""},geom:{default:""},includes:{default:()=>[]},bbox:{},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","update:geom"],["update:modelValue"]),setup(o,{emit:t}){const n=/{{\s*([^}]+?)\s*}}/g,r=o,l=t,{inputClass:a}=ze(r.style),s=e.useModel(o,"modelValue"),c=e.computed({get:()=>s.value,set:L=>{s.value=L}}),i=e.ref(!1),d=e.ref([]),u=e.ref(!1),f=e.ref(null);e.watch(u,L=>{typeof document>"u"||(L?(f.value=document.body.style.overflow,document.body.style.overflow="hidden"):f.value!=null?(document.body.style.overflow=f.value,f.value=null):document.body.style.removeProperty("overflow"))}),e.onBeforeUnmount(()=>{typeof document>"u"||(f.value!=null?document.body.style.overflow=f.value:document.body.style.removeProperty("overflow"))});const h=e.computed(()=>r.placeholder??""),x=e.computed(()=>!!r.disabled),m=L=>{if(!L)return null;if(Array.isArray(L))return L;if(typeof L=="string"){const _=L.split(",").map(S=>S.trim()).filter(Boolean);return _.length!==4?null:_.map(Number)}return null},k=e.computed(()=>{const L=m(r.bbox);if(!L||L.length!==4)return null;const _=L.map(Number);return _.some(S=>Number.isNaN(S))?null:_}),y=e.computed(()=>{const L=k.value;if(!L)return"";const[_,S,$,B]=L;return`${_},${Math.max(S,B)},${$},${Math.min(S,B)}`});e.computed(()=>y.value?"1":"0");const v=e.inject("values");function b(){!x.value&&c.value.trim()&&w()}async function w(){const L=(c.value||"").trim();if(!L)return;let _=L;if(r.includes?.length&&v?.value){const $=r.includes.map(B=>v.value?.[B]).filter(Boolean);$.length&&(_=`${$.join(", ")}, ${L}`)}const S=Y(_);if(S){i.value=!0;try{const B=await(await fetch(S)).json();d.value=Array.isArray(B)?B:[],u.value=!0}catch($){console.error("Address search error:",$)}finally{i.value=!1}}}function V(){u.value=!u.value}function O(L){if(!L)return;u.value=!1;const _=parseFloat(L.lat),$={type:"Point",coordinates:[parseFloat(L.lon),_]};r.geom&&v?.value&&(v.value[r.geom]=$),l("update:geom",$)}function Y(L){if(!r.api)return"";const _={value:encodeURIComponent(L),bbox:k.value?k.value.join(","):""};return r.api.replace(n,(S,$)=>_[$.trim()]??"")}return(L,_)=>(e.openBlock(),e.createElementBlock("div",Cp,[e.createElementVNode("div",vp,[e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":_[0]||(_[0]=S=>c.value=S),placeholder:h.value,disabled:x.value,class:e.normalizeClass(["py-1.5 px-3 block w-full bg-white border rounded-md placeholder:text-gray-400 focus:ring-2 focus:ring-blue-500",[e.unref(a),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"},onKeydown:e.withKeys(e.withModifiers(b,["prevent"]),["enter"])},null,42,Ep),[[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:V,title:"Show search results"},[e.createVNode(e.unref(z.Info),{class:"h-4 w-4"})])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:w,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(z.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(e.openBlock(),e.createBlock(e.unref(z.Search),{key:0,class:"h-4 w-4"}))],8,_p),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[u.value?(e.openBlock(),e.createElementBlock("div",Bp,[e.createElementVNode("div",Vp,[e.createElementVNode("div",Sp,[_[2]||(_[2]=e.createElementVNode("span",null,"Результати пошуку",-1)),e.createElementVNode("button",{class:"text-gray-500 hover:text-blue-600",onClick:_[1]||(_[1]=S=>u.value=!1),title:"Close"},[e.createVNode(e.unref(z.X),{class:"h-4 w-4"})])]),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(S,$)=>(e.openBlock(),e.createElementBlock("li",{key:$,onClick:B=>O(S),class:"px-3 py-2 cursor-pointer hover:bg-gray-100 border-b text-sm"},e.toDisplayString(S.display_name),9,$p))),128))]),d.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Np," Не знайдено результатів "))])])):e.createCommentVNode("",!0)]))]))}}),Ap={class:"vs-datalist space-y-3"},Fp={class:"space-y-3"},Mp=["onClick","disabled"],Dp={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},Tp=["disabled"],Lp=xe(e.defineComponent({__name:"vs-input-datalist",props:e.mergeModels({schema:{default:()=>[]},minItems:{default:0},maxItems:{default:void 0},addButtonText:{default:"Додати позицію"},emptyLabel:{default:"Немає рядків"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>Array.isArray(n.value)?n.value:[]),l=e.ref([]),a=e.computed(()=>t.schema?.map(k=>({...k,disabled:t.disabled||k.disabled}))??[]),s=e.computed(()=>a.value.map(k=>m(k))),c=e.computed(()=>t.disabled?!1:t.maxItems?r.value.length<t.maxItems:!0),i=e.computed(()=>t.disabled||r.value.length<=(t.minItems||0));e.watch(()=>r.value.length,()=>{d(),u()},{immediate:!0}),e.watch(()=>t.schema,u,{immediate:!0,deep:!0});function d(){const k=r.value.length;l.value.length<k?l.value=[...l.value,...Array.from({length:k-l.value.length},()=>Zn())]:l.value.length>k&&l.value.splice(k)}function u(){if(!t.minItems||r.value.length>=t.minItems)return;const k=t.minItems-r.value.length,y=Array.from({length:k},f);n.value=[...r.value,...y]}function f(){const k={};return a.value.forEach(y=>{k[y.name]=y?.default??null}),k}function h(){c.value&&(n.value=[...r.value,f()],d())}function x(k){i.value||(n.value=r.value.filter((y,v)=>v!==k),d(),u())}function m(k){return{...k}}return(k,y)=>(e.openBlock(),e.createElementBlock("div",Ap,[e.createElementVNode("div",Fp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(v,b)=>(e.openBlock(),e.createElementBlock("div",{key:l.value[b],class:"flex items-center gap-3"},[e.createVNode(rt,{schema:s.value,layout:"inline",navigation:!1,values:r.value[b],"onUpdate:values":w=>r.value[b]=w,"form-id":l.value[b]},null,8,["schema","values","onUpdate:values","form-id"]),e.createElementVNode("button",{type:"button",class:"h-[38px] w-[38px] flex items-center justify-center text-gray-400 hover:text-gray-600 hover:bg-gray-50 rounded-lg transition-all disabled:opacity-40",onClick:w=>x(b),disabled:i.value},[e.createVNode(e.unref(z.Trash2),{class:"h-4 w-4"})],8,Mp)]))),128)),r.value.length===0?(e.openBlock(),e.createElementBlock("div",Dp,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:h,disabled:!c.value},[e.createVNode(e.unref(z.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,Tp)]))}}),[["__scopeId","data-v-b4dfd331"]]),Ip={class:"vs-dataform space-y-4"},Rp=["draggable","onDragstart","onDragover","onDragenter","onDrop"],Op={class:"flex items-center gap-2"},zp=["onClick"],Pp={class:"text-sm font-medium text-gray-700"},jp={class:"flex items-center gap-2"},Up=["title","onClick","disabled"],Hp=["title","onClick","disabled"],qp={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},Kp=["disabled"],Wp=xe(e.defineComponent({__name:"vs-input-dataform",props:e.mergeModels({schema:{default:()=>[]},minGroups:{default:0},maxGroups:{default:void 0},addButtonText:{default:"Додати групу фільтрів"},groupLabel:{default:void 0},duplicateTitle:{default:"Дублювати групу"},removeTitle:{default:"Видалити групу"},emptyLabel:{},view:{default:"default"},collapsible:{type:Boolean,default:!1},draggable:{type:Boolean,default:!0},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref([]),l=e.ref([]),a=e.ref(0),s=e.ref(null),c=e.ref(null),i=e.ref(null),d=e.computed(()=>t.groupLabel??"Group"),u=e.computed(()=>t.emptyLabel??"Ще немає груп"),f=e.computed(()=>t.schema?.map(te=>({...te,disabled:t.disabled||te.disabled}))??[]),h=e.computed(()=>f.value.map(te=>S(te))),x=e.computed(()=>t.view==="accordion"),m=e.computed(()=>!!(t.collapsible||x.value)),k=e.computed(()=>t.draggable!==!1),y=e.computed(()=>t.disabled?!1:t.maxGroups?n.value.length<t.maxGroups:!0),v=e.computed(()=>t.disabled||n.value.length<=(t.minGroups||0));e.watch(()=>n.value.length,()=>{b(),w(),V()},{immediate:!0}),e.watch(()=>t.schema,V,{immediate:!0,deep:!0}),e.watch(()=>t.view,()=>{w()},{immediate:!0});function b(){const te=n.value.length;r.value.length<te?r.value=[...r.value,...Array.from({length:te-r.value.length},()=>Zn())]:r.value.length>te&&r.value.splice(te)}function w(){const te=n.value.length;x.value?te===0?a.value=-1:a.value>=te?a.value=te-1:a.value<0&&(a.value=0):l.value.length<te?l.value=[...l.value,...Array.from({length:te-l.value.length},()=>!1)]:l.value.length>te&&l.value.splice(te)}function V(){if(!t.minGroups||n.value.length>=t.minGroups)return;const te=t.minGroups-n.value.length,se=Array.from({length:te},O);n.value=[...n.value,...se],w()}function O(){const te={};return f.value.forEach(se=>{te[se.name]=se?.default??null}),te}function Y(){y.value&&(n.value=[...n.value,O()],b(),w())}function L(te){v.value||(n.value=n.value.filter((se,we)=>we!==te),b(),x.value?a.value>=n.value.length&&(a.value=n.value.length-1):l.value.splice(te,1),V())}function _(te){if(t.disabled)return;const se=JSON.parse(JSON.stringify(n.value[te]??{}));n.value=[...n.value.slice(0,te+1),se,...n.value.slice(te+1)],b(),x.value?a.value>te&&(a.value+=1):l.value.splice(te+1,0,l.value[te]??!1)}function S(te){return{...te}}function $(te){return x.value?a.value===-1&&te===0?!1:a.value!==te:!!l.value[te]}function B(te){if(m.value){if(x.value){a.value=te;return}l.value[te]=!l.value[te]}}function N(te,se){if(!k.value||t.disabled){se.preventDefault();return}s.value=te,c.value=te,i.value={groups:JSON.parse(JSON.stringify(n.value)),keys:[...r.value],states:[...l.value]},se.dataTransfer?.setData("text/plain",String(te)),se.dataTransfer?.setDragImage?.(se.currentTarget,0,0)}function I(te,se){!k.value||t.disabled||s.value!==null&&X(te,se)}function E(te,se){X(te,se)}function M(te){!k.value||t.disabled||ge()}function D(){i.value&&W(),s.value=null,c.value=null,i.value=null}function K(te,se){const we=[...n.value],[J]=we.splice(te,1);we.splice(se,0,J),n.value=we;const ue=[...r.value],[ye]=ue.splice(te,1);if(ue.splice(se,0,ye),r.value=ue,x.value)a.value===te&&(a.value=se);else{const _e=[...l.value],[Ae]=_e.splice(te,1);_e.splice(se,0,Ae),l.value=_e}}function W(){i.value&&(n.value=i.value.groups,r.value=i.value.keys,l.value=i.value.states,i.value=null,c.value=null)}function X(te,se){if(s.value===null)return;const we=re(te,se);c.value=we,ve(we)}function re(te,se){if(!se?.currentTarget)return te;const we=se.currentTarget.getBoundingClientRect(),ue=se.clientY-we.top>we.height/2?te+1:te;return Math.max(0,Math.min(ue,n.value.length))}function ve(te){const se=s.value;if(se===null)return;let we=te;if(we>n.value.length&&(we=n.value.length),we===se||we===se+1)return;const J=we>se?we-1:we;K(se,J),s.value=J,c.value=we>se?J+1:J}function ge(){i.value=null,s.value=null,c.value=null}return(te,se)=>(e.openBlock(),e.createElementBlock("div",Ip,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(we,J)=>(e.openBlock(),e.createElementBlock("div",{key:r.value[J],class:e.normalizeClass(["relative border border-gray-200 rounded-lg bg-white transition vs-dataform__group",[t.view==="accordion"?"overflow-hidden":$(J)?"pt-6 px-6":"p-6"]]),draggable:k.value&&!t.disabled,onDragstart:ue=>N(J,ue),onDragend:D,onDragover:e.withModifiers(ue=>I(J,ue),["prevent"]),onDragenter:e.withModifiers(ue=>E(J,ue),["prevent"]),onDrop:e.withModifiers(ue=>M(),["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"&&!$(J)?"rounded-t-lg":"rounded-lg"]])},[e.createElementVNode("div",Op,[k.value?(e.openBlock(),e.createBlock(e.unref(z.GripVertical),{key:0,class:"h-4 w-4 text-gray-400","aria-hidden":"true"})):e.createCommentVNode("",!0),m.value?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"rounded-full p-1 text-gray-500 transition hover:bg-gray-100",onClick:ue=>B(J)},[e.createVNode(e.unref(z.ChevronDown),{class:e.normalizeClass(["h-4 w-4 transition",$(J)?"-rotate-90":"rotate-0"])},null,8,["class"])],8,zp)):e.createCommentVNode("",!0),e.createElementVNode("div",Pp,e.toDisplayString(`${d.value} (${J+1})`),1)]),e.createElementVNode("div",jp,[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:ue=>_(J),disabled:t.disabled,draggable:"false"},[e.createVNode(e.unref(z.Copy),{class:"h-4 w-4"})],8,Up),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:ue=>L(J),disabled:v.value,draggable:"false"},[e.createVNode(e.unref(z.Trash2),{class:"h-4 w-4"})],8,Hp)])],2),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(t.view==="accordion"?"p-6":"pt-6")},[e.createVNode(rt,{class:"vs-dataform__form",schema:h.value,layout:"inline",navigation:!1,values:n.value[J],"onUpdate:values":ue=>n.value[J]=ue,"form-id":r.value[J],disabled:t.disabled},null,8,["schema","values","onUpdate:values","form-id","disabled"])],2),[[e.vShow,!$(J)]])],42,Rp))),128)),n.value.length===0?(e.openBlock(),e.createElementBlock("div",qp,e.toDisplayString(u.value),1)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"flex items-center gap-2 text-gray-600 hover:text-gray-900 font-medium transition-colors text-sm",onClick:Y,disabled:!y.value},[e.createVNode(e.unref(z.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,Kp)]))}}),[["__scopeId","data-v-accd044e"]]),_n="__vs_form_monaco_loader__",Lt="__vs_form_monaco_script_loader__",Bn="__vs_form_monaco_editor_loader__",Jn=e.defineComponent({__name:"vs-input-monaco",props:e.mergeModels({syntax:{default:"xml"},theme:{default:"vs-light"},height:{default:280},minimap:{type:Boolean,default:!1},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:t}){const n=o,r=e.useModel(o,"modelValue"),l=e.ref(null),a=e.computed(()=>typeof n.height=="number"?`${n.height}px`:n.height||"280px");let s=null,c=null,i=!1;const d=()=>{if(c)return Promise.resolve(c);if(typeof window>"u")return Promise.resolve(null);const m=window;if(m.monaco?.editor?.create)return c=m.monaco,Promise.resolve(c);if(m[_n])return m[_n];const y=(async()=>{const v=V=>{if(Array.from(document.styleSheets||[]).some(L=>L?.href?.includes(V)))return;const Y=document.createElement("link");Y.rel="stylesheet",Y.href=V,document.head.appendChild(Y)},b=V=>{if(m[Lt]?.[V])return m[Lt][V];m[Lt]||={};const O=Array.from(document.scripts).find(Y=>Y.src===V);return O?(m[Lt][V]=new Promise((Y,L)=>{const _=O.readyState;if(O.dataset.loaded==="true"||_==="loaded"||_==="complete"){Y();return}O.addEventListener("load",()=>{O.dataset.loaded="true",Y()},{once:!0}),O.addEventListener("error",S=>L(S),{once:!0})}),m[Lt][V]):(m[Lt][V]=new Promise((Y,L)=>{const _=document.createElement("script");_.src=V,_.async=!0,_.onload=()=>{_.dataset.loaded="true",Y()},_.onerror=S=>L(S),document.body.appendChild(_)}),m[Lt][V])},w="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs";return v(`${w}/editor/editor.main.min.css`),await b(`${w}/loader.min.js`),m[Bn]||(m[Bn]=new Promise((V,O)=>{window.require.config({paths:{vs:w}}),window.require(["vs/editor/editor.main"],()=>{c=window.monaco,m.monaco=c,V(c)},Y=>O(Y))}).catch(V=>{throw delete m[Bn],V})),m[Bn]})().catch(v=>{throw delete m[_n],v});return m[_n]=y,y},u=()=>{!l.value||!c||(s&&(s.dispose(),s=null),s=c.editor.create(l.value,{value:r.value||"",language:n.syntax,theme:n.theme,automaticLayout:!0,minimap:{enabled:!!n.minimap},readOnly:!!n.disabled}),s.onDidChangeModelContent(()=>{i||(r.value=s.getValue())}))},f=()=>{s?.focus()},h=()=>s,x=()=>c;return e.watch(()=>r.value,m=>{if(!s)return;const k=s.getValue();m!==k&&(i=!0,s.setValue(m||""),i=!1)}),e.watch(()=>n.syntax,m=>{!s||!c||c.editor.setModelLanguage(s.getModel(),m||"xml")}),e.watch(()=>n.theme,m=>{c&&c.editor.setTheme(m||"vs-light")}),e.watch(()=>n.disabled,m=>{s&&s.updateOptions({readOnly:!!m})}),e.watch(()=>n.minimap,m=>{s&&s.updateOptions({minimap:{enabled:!!m}})}),e.onMounted(async()=>{try{const m=await d();if(!m||!m.editor)return;c=m,u()}catch(m){console.error("Failed to load Monaco editor",m)}}),e.onBeforeUnmount(()=>{s&&(s.dispose(),s=null)}),t({focus:f,getEditor:h,getMonaco:x}),(m,k)=>(e.openBlock(),e.createElementBlock("div",{class:"w-full",style:e.normalizeStyle({height:a.value})},[e.createElementVNode("div",{ref_key:"editorContainer",ref:l,class:"w-full h-full overflow-hidden border border-[#CFD9E0] rounded"},null,512)],4))}}),nr={VsInputText:Ot,VsInputRadio:Wn,VsInputInlineSelect:yn,"vs-input-text":Ot,"vs-input-password":bl,"vs-input-textarea":Io,"vs-input-richtext":Ro,"vs-input-mask":pn,"vs-input-number":_o,"vs-input-radio":Wn,"vs-input-select":Xn,"vs-input-inline-select":yn,"inline-select":yn,"vs-input-switcher":Un,"vs-input-static":Hn,"vs-input-container":Do,"vs-input-date":ma,"vs-input-checkbox":So,"vs-input-file":Ao,"vs-input-file2":Yn,file2:Yn,File2:Yn,"vs-input-html":Hn,"vs-input-email":qn,"vs-input-tel":Kn,"vs-input-datatable":Oo,"vs-input-map":Ko,"vs-input-file-list":Fo,"vs-input-tags":Wo,"vs-input-slug":Go,"vs-input-codegen":Yo,"vs-input-key-value":Xo,"vs-input-text[]":Zo,"vs-input-range":Qo,"vs-input-color":Jo,"vs-input-native-select":Xn,VsInputArraySelect:En,"vs-input-array":er,"vs-input-array-select":En,"array-select":En,"vs-input-address":tr,"vs-input-datalist":Lp,"vs-input-dataform":Wp,"vs-input-monaco":Jn},Gp=e.defineComponent({__name:"behavior",props:{api:{},set:{},button:{},error:{},value:{}},setup(o){const t=o,n=e.inject("values");async function r(){try{if(!t.api)return;const l=t.api.replace("{{value}}",t.value),a=await fetch(l);if(!a.ok){he.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:r,class:"vs-button relative inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-blue-500 hover:border-blue-500 hover:bg-blue-500 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 ml-0 md:ml-2 mt-2 md:mt-0 py-[8px] md:w-2/4 whitespace-nowrap w-full"},e.toDisplayString(o.button),1))}}),Yp={class:"flex flex-col gap-1 w-full"},Xp={class:"w-full"},Zp=["disabled"],Jp=["innerHTML"],Qp=2e3,ef=10,or=e.defineComponent({__name:"vs-compact-form-layout",props:e.mergeModels({item:{default:{}},layout:{default:"default"},style:{default:{}},type:{default:""},error:{type:[String,Boolean]},columns:{default:()=>({container:12,label:3})}},{modelValue:{default:null},modelModifiers:{}}),emits:e.mergeModels(["value-selected"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=e.useModel(o,"modelValue"),l=t,a=e.computed(()=>gl[`${n.layout}`]),s=["label","placeholder","info","description","text","html"],c=e.ref(S()),i=e.computed(()=>Y(n.item,c.value)),d=e.computed(()=>nr?.[`vs-input-${n.item.type}`]),u=e.inject("field-props"),f=e.computed(()=>{const B=e.unref(d);if(!B)return new Set;const N=B.props??B.__vccOpts?.props;if(!N)return new Set;const I=Array.isArray(N)?N:Object.keys(N);return new Set(I)}),x=[...["min","max","step"],"api","set","mask"],m=e.computed(()=>{const B={...i.value??{}},N=n.item?.name;N&&u?.value?.[N]&&Object.assign(B,u.value[N]);const I=f.value;let E;return I.size?E=Object.fromEntries(Object.entries(B).filter(([M])=>I.has(M))):E=B,x.forEach(M=>{const D=B[M];D!=null&&(E[M]=D)}),E}),k=B=>{const N=typeof B=="object"&&B!==null?B:{value:B};l("value-selected",{...N,name:N.name??n.item?.name})},y=/{{\s*([^}]+?)\s*}}/g,v=e.inject("values"),b=e.ref(!1),w=e.computed(()=>{const B=n.item?.api,N=n.item?.type?.toLowerCase();return typeof B=="string"&&B.trim().length>0&&(N==="text"||N==="mask")});function V(B,N){if(!(B==null||!N))return N.split(".").reduce((I,E)=>I?.[E.trim()],B)}async function O(){const B=String(r.value??"").trim();if(!B)return;const N=(n.item?.api??"").trim();if(!N)return;const I=N.replace(y,(E,M)=>M.trim()==="value"?encodeURIComponent(B):"");b.value=!0;try{let E=await fetch(I),M=0;for(;E.status===202&&M<ef;)M+=1,await new Promise(re=>{setTimeout(re,Qp)}),E=await fetch(I);if(E.status===202){he.notify({type:"warning",title:"Validation",message:"Сервер ще обробляє запит. Спробуйте пізніше."});return}if(!E.ok){he.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const D=await E.json(),K=D?.result!==void 0?D.result:D,W=n.item?.set;if(!W||!v?.value)return;const X=n.item?.name;Object.entries(W).forEach(([re,ve])=>{if(!re)return;let ge=ve;X&&ge.startsWith(`${X}.`)&&(ge=ge.slice(X.length+1));const te=V(K,ge);v.value[re]=te??null})}catch(E){console.error("API lookup error:",E),he.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."})}finally{b.value=!1}}e.onMounted(()=>{c.value=S(),window.addEventListener("storage",$)}),e.onUnmounted(()=>{window.removeEventListener("storage",$)});function Y(B,N){if(!B)return{};const I={...B};return s.forEach(E=>{const M=_(B,E,N);M!=null&&(I[E]=M)}),Array.isArray(B.options)&&(I.options=B.options.map(E=>L(E,N))),I}function L(B,N){if(!B)return B;const I={...B},E=_(B,"label",N),M=_(B,"text",N);return E!=null&&(I.label=E),M!=null?I.text=M:E!=null&&(I.text=E),I}function _(B,N,I){const E=`${N}:${I}`;if(B?.[E]!=null)return B[E];if(N==="label"&&B?.[I]!=null)return B[I];if(B?.[N]!=null)return B[N];if(N==="label"){if(B?.ua!=null)return B.ua;if(B?.en!=null)return B.en}if(N==="text"||N==="html"){if(B?.ua!=null)return B.ua;if(B?.en!=null)return B.en}return null}function S(){return typeof window>"u"?"uk":localStorage.getItem("locale")||"uk"}function $(){c.value=S()}return(B,N)=>(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",Yp,[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center gap-2 w-full",{"flex-1":w.value}])},[e.createElementVNode("div",Xp,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),e.mergeProps(m.value,{modelValue:r.value,"onUpdate:modelValue":N[0]||(N[0]=I=>r.value=I),onValueSelected:k}),null,16,["modelValue"]))]),w.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"flex items-center justify-center px-2 py-2 border rounded-md bg-white hover:bg-gray-50 text-gray-600 hover:text-blue-600 disabled:opacity-50 h-[38px] shrink-0",disabled:b.value||!r.value?.toString().trim(),onClick:O},[b.value?(e.openBlock(),e.createBlock(e.unref(z.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(e.openBlock(),e.createBlock(e.unref(z.Search),{key:0,class:"h-4 w-4"}))],8,Zp)):e.createCommentVNode("",!0)],2),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,Jp)):e.createCommentVNode("",!0)]),i.value.behavior?.api&&i.value.behavior?.button?(e.openBlock(),e.createBlock(Gp,e.mergeProps({key:0},i.value.behavior,{value:r.value}),null,16,["value"])):e.createCommentVNode("",!0)],2)]),_:1},8,["ua","error","item","columns","label"]))}}),tf={class:"text-sm text-gray-800 mb-[4px] font-medium dark:text-neutral-300"},nf={class:"vs-compact-form-navigation__rail mt-[6px]"},of=["onClick"],rf=xe(e.defineComponent({__name:"vs-compact-form-navigation",props:{target:{},scrollContainer:{},title:{default:"Навігація"},enabled:{type:Boolean,default:!0},width:{default:400}},setup(o,{expose:t}){const n=o,r=e.ref([]),l=e.ref(""),a=e.ref(""),s=e.computed(()=>!!n.enabled),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 B=n.width;if(B==null)return{};const N=typeof B=="number"?`${B}px`:`${B}`;return{width:N,minWidth:N}});let d=null,u=0,f=0,h=null,x=null,m=null;const k=()=>S(),y=()=>b();e.watch(()=>n.target,async B=>{if(Y(),!B){h=null,r.value=[],l.value="";return}h=B,s.value&&(await e.nextTick(),O(B),b())},{immediate:!0}),e.watch(()=>n.scrollContainer,B=>{if(!s.value){x=B??null;return}v(B??null),e.nextTick(()=>b())},{immediate:!0}),e.onMounted(()=>{n.scrollContainer||v(null),b()}),e.onBeforeUnmount(()=>{Y(),v(null,!0),h=null,typeof window<"u"&&(u&&window.cancelAnimationFrame(u),f&&window.cancelAnimationFrame(f))});function v(B,N=!1){if(m&&(m(),m=null),N){x=null;return}if(x=B??null,typeof window>"u")return;const I=B??window,E=window;I.addEventListener("scroll",k,{passive:!0}),E.addEventListener("resize",y),m=()=>{I.removeEventListener("scroll",k),E.removeEventListener("resize",y)}}function b(){if(!s.value||!h)return;u&&typeof window<"u"&&window.cancelAnimationFrame(u);const B=()=>{w(),u=0};typeof window>"u"?B():u=window.requestAnimationFrame(B)}function w(){if(!s.value||!h)return;const B=Array.from(h.querySelectorAll("h1, h2")),N=new Set,I=[];B.forEach((E,M)=>{const D=E.textContent?.trim()??"";if(!D)return;let K=(E.getAttribute("id")??"").trim();K||(K=V(D)||`heading-${M+1}`);let W=K,X=1;for(;N.has(W);)W=`${K}-${X+=1}`;E.id!==W&&Object.assign(E,{id:W}),N.add(W),I.push({id:W,text:D,level:E.tagName.toLowerCase()==="h1"?1:2})}),r.value=I,I.length||(l.value=""),_()}function V(B){return B.toLowerCase().replace(/[^a-z0-9\s-]/g,"").trim().replace(/\s+/g,"-")}function O(B){!B||!s.value||typeof MutationObserver>"u"||(Y(),d=new MutationObserver(()=>b()),d.observe(B,{childList:!0,subtree:!0}))}function Y(){d&&(d.disconnect(),d=null)}function L(B){const N=x;if(!N)return typeof window>"u"?B.offsetTop:B.getBoundingClientRect().top+window.scrollY;const I=B.getBoundingClientRect(),E=N.getBoundingClientRect();return I.top-E.top+N.scrollTop}function _(){if(!s.value||!r.value.length)return;const B=x,N=(B?B.scrollTop:null)||(typeof window<"u"?window.scrollY:0),I=(B?B.clientHeight:null)||(typeof window<"u"?window.innerHeight:0),E=N+I;let M=null;for(let K=0;K<r.value.length;K+=1){const W=r.value[K],X=document.getElementById(W.id);if(X){const re=L(X);re+X.offsetHeight>N&&re<E&&(M=W.id)}}!M&&a.value&&(M=a.value),M&&(a.value=M);const D=B?B.scrollHeight-B.clientHeight:document.documentElement.scrollHeight-window.innerHeight;N+5>=D&&(M=r.value[r.value.length-1].id),M&&(l.value=M)}function S(){s.value&&(f&&window.cancelAnimationFrame(f),f=window.requestAnimationFrame(()=>{_(),f=0}))}function $(B){if(!s.value)return;const N=document.getElementById(B);if(!N)return;const I=x,E=Math.max(0,L(N));I?I.scrollTo({top:E,behavior:"smooth"}):typeof window<"u"&&window.scrollTo({top:E,behavior:"smooth"})}return t({refresh:b}),(B,N)=>s.value&&r.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(c.value),style:e.normalizeStyle(i.value)},[e.createElementVNode("h2",tf,e.toDisplayString(o.title),1),e.createElementVNode("div",nf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,I=>(e.openBlock(),e.createElementBlock("div",{key:I.id,class:e.normalizeClass(["vs-compact-form-navigation__item relative",I.level===2?"vs-compact-form-navigation__item--nested":"",I.id===l.value?"vs-compact-form-navigation__item--active":""])},[e.createElementVNode("button",{type:"button",onClick:E=>$(I.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",I.level===2?"pl-[15px]":"pl-[18px]",I.id===l.value?"text-gray-800":"text-gray-500"])},[e.createElementVNode("span",null,e.toDisplayString(I.text),1)],10,of)],2))),128))])],6)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-b3e16a91"]]),pt={required:"Це поле є обов’язковим",email:"Неправильний email",tel:"Неправильний телефон",minlength:o=>`Мінімальна довжина — ${o} символів`,maxlength:o=>`Максимальна довжина — ${o} символів`,min:o=>`Значення має бути не менше ${o}`,max:o=>`Значення має бути не більше ${o}`},lf=o=>typeof o=="string"?o.trim()?!1:pt.required:Array.isArray(o)?o.map(n=>typeof n=="string"?n.trim():n).filter(n=>n!=null&&n!=="").length?!1:pt.required:typeof o=="number"?Number?.isNaN(o)?pt?.required:!1:o?!1:pt.required,af=o=>{const t=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;return o?t.test(o)?!1:pt.email:!1},sf=o=>{const t=/^\+[1-9]\d{1,14}$/;return o?t.test(o)?!1:pt.tel:!1},rr=o=>o==null?0:typeof o=="string"?o.trim().length:Array.isArray(o)?o.length:typeof o=="number"?o.toString().length:String(o).length,cf=(o,t)=>{if(o==null)return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&rr(o)<n?t?.message||pt.minlength(n):!1},df=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&rr(o)>n?t?.message||pt.maxlength(n):!1},lr=o=>{if(typeof o=="number")return o;if(typeof o=="string"){const t=o.trim().replace(",",".");return t?Number(t):Number.NaN}return Number(o)},uf=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value);if(!Number.isFinite(n))return!1;const r=lr(o);return Number.isFinite(r)&&r<n?t?.message||pt.min(n):!1},pf=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value);if(!Number.isFinite(n))return!1;const r=lr(o);return Number.isFinite(r)&&r>n?t?.message||pt.max(n):!1},ff=(o,t)=>{const n=t.pattern??t.regexp,r=typeof n=="string"?new RegExp(n):n;if(Array.isArray(o)){const l=o.filter(Boolean);return l.length===0||l.every(a=>r.test(a))?!1:t.message}return!r.test(o)&&o?t.message:!1},mf=(o,t)=>!1,hf=(o,t)=>{switch(typeof t=="string"?t:t.type){case"required":return lf(o);case"email":return af(o);case"tel":return sf(o);case"regexp":return ff(o,t);case"minlength":return cf(o,t);case"maxlength":return df(o,t);case"min":return uf(o,t);case"max":return pf(o,t);case"custom":return mf();default:return!1}},gf={autocomplete:"select",combobox:"select",datepicker:"date",markedtext:"mask",html:"static",geom:"map",filelist:"file-list",file:"file",dropzone:"file",inlineselect:"inline-select"};function ar(o){const t=o?.toLowerCase();return gf[t]||t}function Qn(o,t=!1){if(Array.isArray(o)){const r=[];return o.forEach(l=>{const a={...l};a.name=(l.name||l.id||l.key||"").toString(),a.type=ar(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=Qn(a.schema,a.disabled)),r.push(a)}),r}const n=[];return Object.entries(o).forEach(r=>{const l={name:r[0],...r[1],type:ar(r[1].type),label:r[1].label||r[1].ua,rules:r[1].rules||r[1].validators,disabled:r[1].disabled??t};l.type==="email"&&!l.rules&&(l.rules=["email"]),r[1].type?.includes("list")&&(l.multiple=!0),!l.api&&r[1].data&&(l.api=`/api/suggest/${r[1].data}`),Array.isArray(l.schema)&&(l.schema=Qn(l.schema,l.disabled)),n.push(l)}),n}function yf(o,t,n=!1){const r=e.computed(()=>Qn((Array.isArray(t),t),typeof n=="boolean"?n:n.value)),l=e.ref({});function a(d){const u=d?.conditions;if(!u)return!0;const f=Array.isArray(u)?u[0]:u,h=o?.value?.[f];return Mo(h,u)}const s=(d=r.value,u=!0)=>(d.forEach(f=>{const h=[],x=Number(f?.minlength),m=Number(f?.maxlength),k=Number(f?.min),y=Number(f?.max);!Number.isNaN(x)&&Number.isFinite(x)&&h.push({type:"minlength",value:x}),!Number.isNaN(m)&&Number.isFinite(m)&&h.push({type:"maxlength",value:m}),!Number.isNaN(k)&&Number.isFinite(k)&&h.push({type:"min",value:k}),!Number.isNaN(y)&&Number.isFinite(y)&&h.push({type:"max",value:y});const v=[...h,...f.rules||[]];if(v.length){if(!a(f)){delete l.value[f.name];return}let b=!1,w=null;v.forEach(V=>{const O=hf(o.value[f.name],V);O&&(b=!0,!w&&typeof O=="string"&&(w=O))}),b&&w?l.value[f.name]=w:delete l.value[f.name]}f.schema&&s(f.schema,!1)}),u&&Object.values(l.value).some(Boolean)?l.value:null),c=e.computed(()=>r.value?.filter(d=>d.hidden!==!0&&a(d)));return{errors:l,validate:s,reset:()=>{o.value={},l.value={}},visibleSchema:c}}const bf={class:"flex w-full h-full min-h-0 gap-6"},kf={key:0,"data-orientation":"horizontal",role:"none",class:"mt-1 shrink-0 h-[1px] w-full bg-slate-100 dark:bg-slate-600"},rt=e.defineComponent({__name:"vs-compact-form",props:e.mergeModels({schema:{default:()=>[]},style:{default:()=>({})},modelValue:{},layout:{default:()=>"default"},formId:{default:()=>""},disabled:{type:Boolean,default:!1},navigation:{type:Boolean,default:!1},navWidth:{default:400},columns:{}},{form:{default:()=>({})},formModifiers:{},modelValue:{default:()=>({})},modelModifiers:{},values:{default:void 0},valuesModifiers:{}}),emits:e.mergeModels(["handle-submit","update:modelValue","value-selected"],["update:form","update:modelValue","update:values"]),setup(o,{expose:t,emit:n}){const r=n,l=o,a=e.useModel(o,"form"),s=e.useModel(o,"modelValue"),c=e.useModel(o,"values"),i=e.computed({get:()=>c.value??s.value,set:E=>{s.value=E,c.value=E}}),{errors:d,validate:u,reset:f,visibleSchema:h}=yf(i,l.schema,e.toRef(l,"disabled")),x=e.ref(null),m=e.ref(null),k=e.ref({}),y=e.computed(()=>l.navigation),v=e.computed(()=>l.navWidth),b=e.computed(()=>l.style?.columns),w=Object.freeze({container:12,label:3}),V=e.computed(()=>l.columns??b.value??w),O=e.computed(()=>l.columns!=null||b.value!=null),Y=e.computed(()=>O.value?"horizontal":l.layout),L=E=>E?.columns?"horizontal":Y.value,_=E=>E?.columns??V.value,S=()=>{!l.formId&&i.value&&delete i.value.id,r("update:modelValue",i.value),u(),r("handle-submit",i.value)},$=E=>{r("value-selected",E)};t({validate:u,reset:f,errors:d}),e.onMounted(()=>{a.value={value:i.value,errors:d.value,reset:f,validate:u,formId:l.formId}});function B(E,M){if(E===M)return!0;if(typeof E!="object"||typeof M!="object"||!E||!M)return!1;const D=Object.keys(E),K=Object.keys(M);return D.length!==K.length?!1:D.every(W=>E[W]===M[W])}function N(E){return Array.isArray(E)?[...E]:E&&typeof E=="object"?{...E}:E}function I(E){Array.isArray(E)&&E.forEach(M=>{if(!M)return;const D=M.name,K=M.default!==void 0;D&&K&&i.value[D]===void 0&&(i.value[D]=N(M.default)),Array.isArray(M.schema)&&I(M.schema)})}return e.watch(h,E=>{I(E)},{immediate:!0,deep:!0}),e.provide("form",a),e.provide("values",i),e.provide("field-props",k),(E,M)=>(e.openBlock(),e.createElementBlock("div",bf,[e.createElementVNode("div",{class:"flex-1 min-h-0 overflow-y-auto overflow-x-visible",ref_key:"formScrollContainer",ref:m},[e.createElementVNode("form",{ref_key:"formRef",ref:x,onSubmit:e.withModifiers(S,["prevent"]),class:e.normalizeClass(["grid grid-cols-12 p-1",Y.value==="default"?"gap-6":"gap-4"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(h),(D,K)=>(e.openBlock(),e.createElementBlock("div",{key:D.name,class:e.normalizeClass(L(D)==="horizontal"?"col-span-12":`col-span-${D.col||12}`)},[e.createVNode(or,{style:e.normalizeStyle(o.style),item:D,layout:L(D),columns:_(D),"model-value":i.value[D.name],"onUpdate:modelValue":W=>{if(D.name==="id"&&!o.formId)return;const X=i.value[D.name];B(X,W)||(i.value[D.name]=W)},error:e.unref(d)[D.name],onValueSelected:$},null,8,["style","item","layout","columns","model-value","onUpdate:modelValue","error"]),L(D)==="settings"&&K+1!==e.unref(h).length?(e.openBlock(),e.createElementBlock("div",kf)):e.createCommentVNode("",!0)],2))),128))],34)],512),e.createVNode(rf,{target:x.value,"scroll-container":m.value,enabled:y.value,width:v.value},null,8,["target","scroll-container","enabled","width"])]))}}),xf={class:"relative"},wf={class:"w-full h-full fixed top-0 start-0 bg-black bg-opacity-50"},Cf={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"},vf={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},Ef={class:"font-medium text-gray-800 dark:text-[#ffffff]"},_f={class:"p-4 mim-h-0 h-full overflow-auto"},sr=e.defineComponent({__name:"modal-edit",props:{schema:{},defaultValue:{},mode:{},token:{},form:{},api:{},method:{}},emits:["close","save","edit"],setup(o,{emit:t}){const n=o,r=t,l=e.ref(n.schema),a=e.ref(n.defaultValue?JSON.parse(JSON.stringify(n.defaultValue)):{}),s=e.ref({}),c=e.ref(n.token||""),i=e.ref(n.token||""),d=e.ref(n.mode),u=()=>{const y=n.method?.trim().toUpperCase();return y==="GET"||y==="POST"||y==="PUT"?y:d.value==="add"?"POST":"PUT"},f=()=>{he.notify({type:"success",title:"Успішно",message:`Дані успішно ${d.value==="add"?"збережено":"оновлено"}`})},h=y=>{const v={};y.id!==void 0&&y.id!==null&&(v.id=y.id,i.value=y.id.toString()),y.obj&&typeof y.obj=="object"&&Object.assign(v,y.obj),Object.keys(v).length&&(a.value={...a.value,...v})},x=async y=>{if(console.log(y),y.ok){await y.json().catch(()=>({})),f(),r("save",a.value);return}const v=await y.json().catch(()=>({})),b=v.message||v.error;if(y.status===400){he.notify({type:"warning",title:"Помилка валідації",message:b||"Некоректні дані (400)"});return}if(y.status===500){he.notify({type:"error",title:"Серверна помилка",message:b||"Виникла помилка на сервері (500)"});return}he.notify({type:"error",title:"Помилка",message:`Статус: ${y.status}`})};async function m(){const y=s.value.validate();if(y){he.notify({type:"warning",title:"Помилка валідації",message:Object.entries(y).map(([b,w])=>`${b}: ${w}`).join(`
|
|
5
|
-
`)});return}d.value==="add"&&a.value&&delete a.value.id;const v=n.api?.trim();if(v){const b=u();try{const w=await fetch(v,{method:b,headers:b==="GET"?void 0:{"Content-Type":"application/json"},body:b==="GET"?void 0:JSON.stringify(a.value)});await x(w)}catch(w){he.notify({type:"error",title:"Помилка з’єднання",message:w.message||"Не вдалося виконати запит"})}return}if(c.value)try{const b=await fetch(`/api/table/${c.value}`,{method:d.value==="add"?"POST":"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a.value)});await x(b)}catch(b){he.notify({type:"error",title:"Помилка з’єднання",message:b.message||"Не вдалося виконати запит"})}else r("edit",a.value),k()}function k(){r("close")}return e.onMounted(async()=>{try{if(n.form&&!n.schema){const y=await fetch(`/api/template/form/${n.form}`);if(!y.ok){he.notify({type:y.status>=400&&y.status<500?"warning":"error",title:"Error",message:`Error code: ${y.status}`});return}const v=await y.json();l.value=v.schema,v.id&&(i.value=v.id),v.token&&(c.value=v.token,i.value||(i.value=v.token))}else if(n.token&&!n.defaultValue){c.value=n.token;const y=await fetch(`/api/form/${c.value}`);if(!y.ok){he.notify({type:y.status>=400&&y.status<500?"warning":"error",title:"Error",message:`Error code: ${y.status}`});return}const v=await y.json();l.value=v.schema,v.data?a.value=v.data:d.value="add",h({id:v.id,obj:v.obj})}}catch(y){he.notify({type:"error",title:"Error",message:y.message||"Unexpected error"}),console.error(y)}}),(y,v)=>(e.openBlock(),e.createElementBlock("div",xf,[e.createElementVNode("div",wf,[e.createElementVNode("div",Cf,[e.createElementVNode("div",vf,[e.createElementVNode("h3",Ef,e.toDisplayString(d.value==="add"?"Додати":"Змінити"),1),e.createElementVNode("button",{onClick:k,type:"button",class:"size-8 inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:hover:bg-neutral-600 dark:text-neutral-400 dark:focus:bg-neutral-600"},[v[2]||(v[2]=e.createElementVNode("span",{class:"sr-only"},"Close",-1)),e.createVNode(e.unref(z.X),{class:"h-4 w-4 flex-shrink-0"})])]),e.createElementVNode("div",_f,[l.value?(e.openBlock(),e.createBlock(rt,{key:0,schema:l.value,values:a.value,"onUpdate:values":v[0]||(v[0]=b=>a.value=b),form:s.value,"onUpdate:form":v[1]||(v[1]=b=>s.value=b),formId:i.value},null,8,["schema","values","form","formId"])):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:"vs-form__head mr-5 mb-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},[e.createElementVNode("button",{type:"button",onClick:k,class:"vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-red-500 hover:border-red-500 hover:bg-red-500 focus:ring-red-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 mr-2"}," Скасувати "),e.createElementVNode("button",{onClick:m,type:"button",class:"vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border-1 border-transparent text-white bg-blue-500 hover:bg-blue-600 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1"}," Зберегти ")])])])]))}}),Bf=1440*60*1e3,Vf=["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"],Sf=["січ","лют","бер","квіт","трав","черв","лип","серп","вер","жовт","лист","груд"],$f=["нд","пн","вт","ср","чт","пт","сб"];function Pe(o){return o instanceof Date&&!Number.isNaN(o.getTime())}const zt=o=>new Date(o.getTime());function It(o){const t=zt(o);return t.setHours(0,0,0,0),t}function Wt(o){const t=zt(o);return t.setHours(23,59,59,999),t}function eo(o){return It(new Date(o.getFullYear(),o.getMonth(),1))}function to(o){return Wt(new Date(o.getFullYear(),o.getMonth()+1,0))}function no(o,t){const n=new Date(o),r=n.getDate();n.setDate(1),n.setMonth(n.getMonth()+t);const l=new Date(n.getFullYear(),n.getMonth()+1,0).getDate();return n.setDate(Math.min(r,l)),n}function Nf(o,t){return no(o,-1)}function Vn(o,t){const n=new Date(o);return n.setFullYear(n.getFullYear()+t),n}function ir(o,t){return Vn(o,-t)}function cr(o){return It(new Date(o.getFullYear(),0,1))}function dr(o){return Wt(new Date(o.getFullYear(),11,31))}function Af(o){const t=Math.floor(o.getFullYear()/10)*10;return It(new Date(t,0,1))}function Ff(o){const t=Math.floor(o.getFullYear()/10)*10+9;return Wt(new Date(t,11,31))}const st=o=>o.getFullYear(),Sn=o=>Math.floor(o.getFullYear()/10)*10;function Mf(o){const t=[];let n=It(o.start);const r=It(o.end);for(;n<=r;)t.push(zt(n)),n=new Date(n.getTime()+Bf);return t}function Df(o){const t=[];let n=eo(o.start);const r=to(o.end);for(;n<=r;)t.push(zt(n)),n=no(n,1);return t}function Tf(o){const t=[];let n=cr(o.start);const r=dr(o.end);for(;n<=r;)t.push(zt(n)),n=Vn(n,1);return t}function oo(o,t=1){const n=It(o),r=(n.getDay()-t+7)%7;return n.setDate(n.getDate()-r),n}function Lf(o,t=1){const n=oo(o,t);return n.setDate(n.getDate()+6),Wt(n)}function If(o,t,n=0){const r=oo(o,n),l=(t-n+7)%7;return r.setDate(r.getDate()+l),r}const $n=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear()&&o.getMonth()===t.getMonth()&&o.getDate()===t.getDate(),ro=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear()&&o.getMonth()===t.getMonth(),ur=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear(),pr=(o,t)=>!!o&&!!t&&$n(o,t)&&o.getHours()===t.getHours(),Rf=(o,t)=>!!o&&!!t&&pr(o,t)&&o.getMinutes()===t.getMinutes();function Of(o,t){const n=o.getTime();return n>=t.start.getTime()&&n<=t.end.getTime()}const Gt=(o,t)=>!!o&&!!t&&o.getTime()<t.getTime(),Yt=(o,t)=>!!o&&!!t&&o.getTime()>t.getTime();function zf(o){const t=o.filter(n=>Pe(n));if(t.length)return t.reduce((n,r)=>n.getTime()>=r.getTime()?n:r)}function Pf(o){const t=o.filter(n=>Pe(n));if(t.length)return t.reduce((n,r)=>n.getTime()<=r.getTime()?n:r)}function fr(o,t){const n=zt(o);return typeof t.year=="number"&&n.setFullYear(t.year),typeof t.month=="number"&&n.setMonth(t.month),typeof t.date=="number"&&n.setDate(t.date),typeof t.hours=="number"&&n.setHours(t.hours),typeof t.minutes=="number"&&n.setMinutes(t.minutes),typeof t.seconds=="number"&&n.setSeconds(t.seconds),typeof t.milliseconds=="number"&&n.setMilliseconds(t.milliseconds),n}const Nn=(o,t=2)=>String(o).padStart(t,"0");function mr(o,t){return t==="wide"?Vf[o]:Sf[o]}function jf(o){return $f[o]}const Uf=[{token:"LLLL",format:o=>mr(o.getMonth(),"wide")},{token:"LLL",format:o=>mr(o.getMonth(),"abbreviated")},{token:"EE",format:o=>jf(o.getDay())},{token:"yyyy",format:o=>String(o.getFullYear())},{token:"MM",format:o=>Nn(o.getMonth()+1)},{token:"dd",format:o=>Nn(o.getDate())},{token:"HH",format:o=>Nn(o.getHours())},{token:"mm",format:o=>Nn(o.getMinutes())}];function An(o,t){if(!Pe(o))return"";let n="",r=0;for(;r<t.length;){const l=Uf.find(a=>t.startsWith(a.token,r));l?(n+=l.format(o),r+=l.token.length):(n+=t[r],r+=1)}return n}const Hf={"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 hr(o,t){const n=Hf[t];if(!n){const l=new Date(o);return Pe(l)?l:null}const r=o.match(n);if(!r)return null;switch(t){case"yyyy-MM-dd":{const[,l,a,s]=r,c=new Date(Number(l),Number(a)-1,Number(s));return Pe(c)?c:null}case"dd.MM.yyyy":{const[,l,a,s]=r,c=new Date(Number(s),Number(a)-1,Number(l));return Pe(c)?c:null}case"dd.MM.yyyy HH:mm":{const[,l,a,s,c,i]=r,d=new Date(Number(s),Number(a)-1,Number(l),Number(c),Number(i));return Pe(d)?d:null}case"HH:mm":{const[,l,a]=r,s=new Date;return s.setHours(Number(l),Number(a),0,0),s}case"MM.yyyy":{const[,l,a]=r;return new Date(Number(a),Number(l)-1,1)}case"yyyy":{const[,l]=r;return new Date(Number(l),0,1)}default:return null}}const qf=["year","month","day","time","custom"],Kf=e.defineComponent({components:{ChevronLeft:z.ChevronLeft,ChevronRight:z.ChevronRight},emits:{elementClick:o=>Pe(o),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:o=>typeof o=="string"&&qf.includes(o)}}}),Wf={class:"v3dp__heading"},Gf=["disabled"],Yf=["disabled"],Xf={class:"v3dp__body"},Zf={class:"v3dp__subheading"},Jf={class:"v3dp__elements"},Qf=["disabled","onClick"];function em(o,t,n,r,l,a){const s=e.resolveComponent("ChevronLeft"),c=e.resolveComponent("ChevronRight");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v3dp__popout",`v3dp__popout-${o.viewMode}`]),style:e.normalizeStyle({"--popout-column-definition":`repeat(${o.columnCount}, 1fr)`}),onMousedown:t[3]||(t[3]=e.withModifiers(()=>{},["prevent"]))},[e.createElementVNode("div",Wf,[e.createElementVNode("button",{class:"v3dp__heading__button v3dp__heading__button__left",disabled:o.leftDisabled,onClick:t[0]||(t[0]=e.withModifiers(i=>o.$emit("left"),["stop","prevent"]))},[e.renderSlot(o.$slots,"arrow-left",{},()=>[e.createVNode(s,{class:"v3dp__heading__icon h-4 w-4"})],!0)],8,Gf),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.headingClickable?"button":"span"),{class:"v3dp__heading__center",onClick:t[1]||(t[1]=e.withModifiers(i=>o.$emit("heading"),["stop","prevent"]))},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"heading",{},void 0,!0)]),_:3})),e.createElementVNode("button",{class:"v3dp__heading__button v3dp__heading__button__right",disabled:o.rightDisabled,onClick:t[2]||(t[2]=e.withModifiers(i=>o.$emit("right"),["stop","prevent"]))},[e.renderSlot(o.$slots,"arrow-right",{},()=>[e.createVNode(c,{class:"v3dp__heading__icon h-4 w-4"})],!0)],8,Yf)]),e.createElementVNode("div",Xf,["subheading"in o.$slots?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",Zf,[e.renderSlot(o.$slots,"subheading",{},void 0,!0)]),t[4]||(t[4]=e.createElementVNode("hr",{class:"v3dp__divider"},null,-1))],64)):e.createCommentVNode("",!0),e.createElementVNode("div",Jf,[e.renderSlot(o.$slots,"body",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.items,i=>(e.openBlock(),e.createElementBlock("button",{key:i.key,disabled:i.disabled,class:e.normalizeClass([{selected:i.selected,current:i.current},`v3dp__element__button__${o.viewMode}`]),onClick:e.withModifiers(d=>o.$emit("elementClick",i.value),["stop","prevent"])},[e.createElementVNode("span",null,e.toDisplayString(i.display),1)],10,Qf))),128))],!0)])])],38)}const Fn=xe(Kf,[["render",em],["__scopeId","data-v-744d2ba4"]]),tm=e.defineComponent({components:{PickerPopup:Fn},emits:{"update:pageDate":o=>Pe(o),select:o=>Pe(o)},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(o,{emit:t}){const n=e.computed(()=>Af(o.pageDate)),r=e.computed(()=>Ff(o.pageDate)),l=(f,h,x)=>!h&&!x?!0:!(h&&st(f)<st(h)||x&&st(f)>st(x)),a=e.computed(()=>Tf({start:n.value,end:r.value}).map(f=>({value:f,key:String(st(f)),display:st(f),selected:!!o.selected&&st(f)===st(o.selected),disabled:!l(f,o.lowerLimit,o.upperLimit)}))),s=e.computed(()=>{const f=st(n.value),h=st(r.value);return`${f} - ${h}`}),c=e.computed(()=>o.lowerLimit&&(Sn(o.lowerLimit)===Sn(o.pageDate)||Gt(o.pageDate,o.lowerLimit))),i=e.computed(()=>o.upperLimit&&(Sn(o.upperLimit)===Sn(o.pageDate)||Yt(o.pageDate,o.upperLimit)));return{years:a,heading:s,leftDisabled:c,rightDisabled:i,previousPage:()=>t("update:pageDate",ir(o.pageDate,10)),nextPage:()=>t("update:pageDate",Vn(o.pageDate,10))}}});function nm(o,t,n,r,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{columnCount:3,leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,items:o.years,viewMode:"year",onLeft:o.previousPage,onRight:o.nextPage,onElementClick:t[0]||(t[0]=c=>o.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const om=xe(tm,[["render",nm]]),rm=e.defineComponent({components:{PickerPopup:Fn},emits:{"update:pageDate":o=>Pe(o),select:o=>Pe(o),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},format:{type:String,required:!1,default:"LLL"},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(o,{emit:t}){const n=e.computed(()=>cr(o.pageDate)),r=e.computed(()=>dr(o.pageDate)),l=e.computed(()=>h=>An(h,o.format)),a=(h,x,m)=>!x&&!m?!0:!(x&&Gt(h,eo(x))||m&&Yt(h,to(m))),s=e.computed(()=>Df({start:n.value,end:r.value}).map(h=>({value:h,display:l.value(h),key:l.value(h),selected:!!o.selected&&ro(o.selected,h),disabled:!a(h,o.lowerLimit,o.upperLimit)}))),c=e.computed(()=>st(n.value)),i=e.computed(()=>o.lowerLimit&&(ur(o.lowerLimit,o.pageDate)||Gt(o.pageDate,o.lowerLimit))),d=e.computed(()=>o.upperLimit&&(ur(o.upperLimit,o.pageDate)||Yt(o.pageDate,o.upperLimit)));return{months:s,heading:c,leftDisabled:i,rightDisabled:d,previousPage:()=>t("update:pageDate",ir(o.pageDate,1)),nextPage:()=>t("update:pageDate",Vn(o.pageDate,1))}}});function lm(o,t,n,r,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",columnCount:3,items:o.months,leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,viewMode:"month",onLeft:o.previousPage,onRight:o.nextPage,onHeading:t[0]||(t[0]=c=>o.$emit("back")),onElementClick:t[1]||(t[1]=c=>o.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),_:1},8,["items","leftDisabled","rightDisabled","onLeft","onRight"])}const am=xe(rm,[["render",lm]]),sm=e.defineComponent({components:{PickerPopup:Fn},emits:{"update:pageDate":o=>Pe(o),select:o=>Pe(o),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:o=>typeof o=="number"&&Number.isInteger(o)&&o>=0&&o<=6},customWeekdays:{type:Array,required:!1},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1},disabledDates:{type:Object,required:!1},allowOutsideInterval:{type:Boolean,required:!1,default:!1}},setup(o,{emit:t}){const n=e.computed(()=>y=>v=>An(v,y)),r=e.computed(()=>eo(o.pageDate)),l=e.computed(()=>to(o.pageDate)),a=e.computed(()=>({start:r.value,end:l.value})),s=e.computed(()=>({start:oo(r.value,o.weekStartsOn),end:Lf(l.value,o.weekStartsOn)})),c=e.computed(()=>o.customWeekdays?.length===7?o.customWeekdays:null),i=e.computed(()=>{const y=o.weekStartsOn,v=c.value;if(v)return Array.from({length:7}).map((w,V)=>v[(y+V)%7]);const b=n.value(o.weekdayFormat);return Array.from(Array(7)).map((w,V)=>(y+V)%7).map(w=>If(new Date,w,o.weekStartsOn)).map(b)}),d=(y,v,b,w)=>w?.dates?.some(V=>$n(y,V))||w?.predicate?.(y)?!1:!v&&!b?!0:!(v&&Gt(y,It(v))||b&&Yt(y,Wt(b))),u=e.computed(()=>{const y=new Date,v=n.value(o.format);return Mf(s.value).map(b=>({value:b,display:v(b),selected:!!o.selected&&$n(o.selected,b),current:$n(y,b),disabled:!o.allowOutsideInterval&&!Of(b,a.value)||!d(b,o.lowerLimit,o.upperLimit,o.disabledDates),key:n.value("yyyy-MM-dd")(b)}))}),f=e.computed(()=>n.value(o.headingFormat)(o.pageDate)),h=e.computed(()=>o.lowerLimit&&(ro(o.lowerLimit,o.pageDate)||Gt(o.pageDate,o.lowerLimit))),x=e.computed(()=>o.upperLimit&&(ro(o.upperLimit,o.pageDate)||Yt(o.pageDate,o.upperLimit)));return{weekDays:i,days:u,heading:f,leftDisabled:h,rightDisabled:x,previousPage:()=>t("update:pageDate",Nf(o.pageDate)),nextPage:()=>t("update:pageDate",no(o.pageDate,1))}}});function im(o,t,n,r,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,items:o.days,viewMode:"day",onLeft:o.previousPage,onRight:o.nextPage,onHeading:t[0]||(t[0]=c=>o.$emit("back")),onElementClick:t[1]||(t[1]=c=>o.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),subheading:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.weekDays,(c,i)=>(e.openBlock(),e.createElementBlock("span",{key:c,class:e.normalizeClass(`v3dp__subheading__weekday__${i}`)},e.toDisplayString(c),3))),128))]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const cm=xe(sm,[["render",im]]);function gr(o,t){const n=o.getBoundingClientRect(),r={height:o.clientHeight,width:o.clientWidth},l=t.getBoundingClientRect();if(!(l.top>=n.top&&l.bottom<=n.top+r.height)){const s=l.top-n.top,c=l.bottom-n.bottom;Math.abs(s)<Math.abs(c)?o.scrollTop+=s:o.scrollTop+=c}}const dm=e.defineComponent({components:{PickerPopup:Fn},emits:{select:o=>Pe(o),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},visible:{type:Boolean,required:!0},disabledTime:{type:Object,required:!1}},setup(o,{emit:t}){const n=e.ref(null),r=e.ref(null),l=e.computed(()=>o.pageDate??o.selected),a=e.ref(l.value.getHours()),s=e.ref(l.value.getMinutes());e.watch(()=>o.selected,x=>{let m=0,k=0;x&&(m=x.getHours(),k=x.getMinutes()),a.value=m,s.value=k});const c=e.computed(()=>[...Array(24).keys()].map(x=>({value:x,date:fr(new Date(l.value.getTime()),{hours:x,minutes:s.value,seconds:0}),selected:a.value===x,ref:e.ref(null)}))),i=e.computed(()=>[...Array(60).keys()].map(x=>({value:x,date:fr(new Date(l.value.getTime()),{hours:a.value,minutes:x,seconds:0}),selected:s.value===x,ref:e.ref(null)}))),d=x=>{s.value=x.value,t("select",x.date)},u=()=>{const x=c.value.find(k=>k.ref.value?.classList?.contains("selected")??!1),m=i.value.find(k=>k.ref.value?.classList?.contains("selected")??!1);x&&m&&(gr(n.value,x.ref.value),gr(r.value,m.ref.value))};return e.watch(()=>o.visible,x=>{x&&e.nextTick(u)}),{hoursListRef:n,minutesListRef:r,hours:a,minutes:s,hoursList:c,minutesList:i,padStartZero:x=>`0${x}`.substr(-2),selectMinutes:d,isEnabled:x=>!(o.disabledTime?.dates?.some(m=>pr(x,m)&&Rf(x,m))||o.disabledTime?.predicate?.(x)),scroll:u}}}),um={ref:"hoursListRef",class:"v3dp__column"},pm=["disabled","onClick"],fm={ref:"minutesListRef",class:"v3dp__column"},mm=["disabled","onClick"];function hm(o,t,n,r,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=>o.$emit("back"))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.padStartZero(o.hours))+":"+e.toDisplayString(o.padStartZero(o.minutes)),1)]),body:e.withCtx(()=>[e.createElementVNode("div",um,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.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:!o.isEnabled(c.date),onClick:e.withModifiers(i=>o.hours=c.value,["stop","prevent"])},[e.createElementVNode("span",null,e.toDisplayString(o.padStartZero(c.value)),1)],10,pm))),128))],512),e.createElementVNode("div",fm,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.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:!o.isEnabled(c.date),onClick:e.withModifiers(i=>o.selectMinutes(c),["stop","prevent"])},[e.createElementVNode("span",null,e.toDisplayString(o.padStartZero(c.value)),1)],10,mm))),128))],512)]),_:1})}const gm=xe(dm,[["render",hm],["__scopeId","data-v-43e01bf7"]]),Mn=["time","day","month","year"],ym=(o,t,n=void 0)=>{let r=n||new Date;const l=zf([o,r]);l&&(r=l);const a=Pf([t,r]);return a&&(r=a),r},bm=e.defineComponent({components:{YearPicker:om,MonthPicker:am,DayPicker:cm,TimePicker:gm},inheritAttrs:!1,props:{placeholder:{type:String,default:""},modelValue:{type:Date,required:!1},disabledDates:{type:Object,required:!1},allowOutsideInterval:{type:Boolean,required:!1,default:!1},disabledTime:{type:Object,required:!1},upperLimit:{type:Date,required:!1},lowerLimit:{type:Date,required:!1},startingView:{type:String,required:!1,default:"day",validate:o=>typeof o=="string"&&Mn.includes(o)},startingViewDate:{type:Date,required:!1,default:()=>new Date},dayPickerHeadingFormat:{type:String,required:!1,default:"LLLL yyyy"},monthListFormat:{type:String,required:!1,default:"LLL"},weekdayFormat:{type:String,required:!1,default:"EE"},dayFormat:{type:String,required:!1,default:"dd"},inputFormat:{type:String,required:!1,default:"yyyy-MM-dd"},weekDayNames:{type:Array,required:!1},weekStartsOn:{type:Number,required:!1,default:1,validator:o=>[0,1,2,3,4,5,6].includes(o)},disabled:{type:Boolean,required:!1,default:!1},clearable:{type:Boolean,required:!1,default:!1},typeable:{type:Boolean,required:!1,default:!1},minimumView:{type:String,required:!1,default:"day",validate:o=>typeof o=="string"&&Mn.includes(o)}},emits:{"update:modelValue":o=>o==null||Pe(o),decadePageChanged:o=>!0,yearPageChanged:o=>!0,monthPageChanged:o=>!0,opened:()=>!0,closed:()=>!0},setup(o,{emit:t,attrs:n}){const r=e.ref("none"),l=e.ref(o.startingViewDate),a=e.ref(null),s=e.ref(!1),c=e.ref(""),i=M=>{const D=M.replace(/[a-zA-Z]/g,"0");return/0/.test(D)?D:""},d=e.computed(()=>i(o.inputFormat));let u=null,f=null;const h=()=>{u?.destroy(),u=null},x=async()=>{if(!f){const{default:M}=await Promise.resolve().then(()=>uo);f=M}return f},m=()=>{u&&u.value!==c.value&&(u.value=c.value??"")},k=async()=>{if(h(),!a.value||!d.value)return;u=(await x())(a.value,{mask:d.value,lazy:!0,overwrite:!0}),m()};e.watchEffect(()=>{if(!c.value)return;const M=hr(c.value,o.inputFormat);M&&(l.value=M)}),e.watchEffect(()=>{c.value=o.modelValue&&Pe(o.modelValue)?An(o.modelValue,o.inputFormat):""}),e.onMounted(()=>{d.value&&e.nextTick(()=>{k()})}),e.onBeforeUnmount(()=>{h()}),e.watch(d,M=>{M?e.nextTick(()=>{k()}):h()}),e.watch(c,()=>{m()});const y=(M="none")=>{o.disabled||(M!=="none"&&r.value==="none"&&(l.value=o.modelValue||ym(o.lowerLimit,o.upperLimit,l.value)),r.value=M,t(M!=="none"?"opened":"closed"))};e.watchEffect(()=>{o.disabled&&(r.value="none")});const v=(M,D)=>{l.value=D,M==="year"?t("decadePageChanged",D):M==="month"?t("yearPageChanged",D):M==="day"&&t("monthPageChanged",D)},b=M=>{l.value=M,o.minimumView==="year"?(y("none"),t("update:modelValue",M)):r.value="month"},w=M=>{l.value=M,o.minimumView==="month"?(y("none"),t("update:modelValue",M)):r.value="day"},V=M=>{l.value=M,o.minimumView==="day"?(y("none"),t("update:modelValue",M)):r.value="time"},O=M=>{y("none"),t("update:modelValue",M)},Y=()=>{o.clearable&&(y("none"),t("update:modelValue",null),l.value=o.startingViewDate)},L=()=>s.value=!0,_=()=>y(B.value),S=()=>{s.value=!1,y()},$=M=>{const D=M.keyCode?M.keyCode:M.which;if([27,13].includes(D)&&a.value.blur(),o.typeable){const W=hr(a.value.value,o.inputFormat);W&&c.value===An(W,o.inputFormat)&&(c.value=a.value.value,t("update:modelValue",W))}},B=e.computed(()=>{const M=Mn.indexOf(o.startingView),D=Mn.indexOf(o.minimumView);return M<D?o.minimumView:o.startingView}),N=M=>Object.fromEntries(Object.entries(M??{}).filter(([D,K])=>D.startsWith("--"))),I=e.computed(()=>o.weekDayNames?.length===7?o.weekDayNames:void 0);return{blur:S,focus:_,click:L,input:c,inputRef:a,pageDate:l,renderView:y,updatePageDate:v,selectYear:b,selectMonth:w,selectDay:V,selectTime:O,keyUp:$,normalizedWeekdayNames:I,viewShown:r,goBackFromTimepicker:()=>o.startingView==="time"&&o.minimumView==="time"?null:r.value="day",clearModelValue:Y,initialView:B,log:M=>console.log(M),variables:N}}}),km={class:"v3dp__input_wrapper"},xm=["readonly","placeholder","disabled","tabindex"],wm={class:"v3dp__clearable"};function Cm(o,t,n,r,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(o.variables(o.$attrs.style))},[e.createElementVNode("div",km,[e.withDirectives(e.createElementVNode("input",e.mergeProps({type:"text",ref:"inputRef",readonly:!o.typeable,"onUpdate:modelValue":t[0]||(t[0]=u=>o.input=u)},o.$attrs,{placeholder:o.placeholder,disabled:o.disabled,tabindex:o.disabled?-1:0,onKeyup:t[1]||(t[1]=(...u)=>o.keyUp&&o.keyUp(...u)),onBlur:t[2]||(t[2]=(...u)=>o.blur&&o.blur(...u)),onFocus:t[3]||(t[3]=(...u)=>o.focus&&o.focus(...u)),onClick:t[4]||(t[4]=(...u)=>o.click&&o.click(...u))}),null,16,xm),[[e.vModelText,o.input]]),e.withDirectives(e.createElementVNode("div",wm,[e.renderSlot(o.$slots,"clear",{onClear:o.clearModelValue},()=>[e.createElementVNode("i",{onClick:t[5]||(t[5]=u=>o.clearModelValue())},"x")])],512),[[e.vShow,o.clearable&&o.modelValue]])]),e.withDirectives(e.createVNode(s,{pageDate:o.pageDate,"onUpdate:pageDate":t[6]||(t[6]=u=>o.updatePageDate("year",u)),selected:o.modelValue,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,onSelect:o.selectYear},null,8,["pageDate","selected","lowerLimit","upperLimit","onSelect"]),[[e.vShow,o.viewShown==="year"]]),e.withDirectives(e.createVNode(c,{pageDate:o.pageDate,"onUpdate:pageDate":t[7]||(t[7]=u=>o.updatePageDate("month",u)),selected:o.modelValue,onSelect:o.selectMonth,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,format:o.monthListFormat,onBack:t[8]||(t[8]=u=>o.viewShown="year")},null,8,["pageDate","selected","onSelect","lowerLimit","upperLimit","format"]),[[e.vShow,o.viewShown==="month"]]),e.withDirectives(e.createVNode(i,{pageDate:o.pageDate,"onUpdate:pageDate":t[9]||(t[9]=u=>o.updatePageDate("day",u)),selected:o.modelValue,weekStartsOn:o.weekStartsOn,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,headingFormat:o.dayPickerHeadingFormat,disabledDates:o.disabledDates,weekdayFormat:o.weekdayFormat,"allow-outside-interval":o.allowOutsideInterval,format:o.dayFormat,"custom-weekdays":o.normalizedWeekdayNames,onSelect:o.selectDay,onBack:t[10]||(t[10]=u=>o.viewShown="month")},null,8,["pageDate","selected","weekStartsOn","lowerLimit","upperLimit","headingFormat","disabledDates","weekdayFormat","allow-outside-interval","format","custom-weekdays","onSelect"]),[[e.vShow,o.viewShown==="day"]]),e.withDirectives(e.createVNode(d,{pageDate:o.pageDate,visible:o.viewShown==="time",selected:o.modelValue,disabledTime:o.disabledTime,onSelect:o.selectTime,onBack:o.goBackFromTimepicker},null,8,["pageDate","visible","selected","disabledTime","onSelect","onBack"]),[[e.vShow,o.viewShown==="time"]])],4)}const vm=xe(bm,[["render",Cm]]),Em=xe(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(o,{emit:t}){const n=o,r=t,{inputClass:l}=ze(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),u=e.computed({get:()=>w(n.modelValue??d.value,a.value)||void 0,set:D=>r("update:modelValue",V(D,a.value))}),f=["Пн","Вт","Ср","Чт","Пт","Сб","Нд"],h=e.computed(()=>{if(n.dayNames?.length)return n.dayNames.length===7?n.dayNames:f}),x=e.computed(()=>{const D=n.weekStart,K=typeof D=="string"?Number(D):D;return K===void 0||Number.isNaN(K)?1:Math.min(6,Math.max(0,K))}),m=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"}}}),k={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(()=>k[a.value]||"dd.MM.yyyy"),v=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"})),b=e.ref(!1);e.watch(()=>n.modelValue,D=>{D?b.value=!0:n.now||(b.value=!1)},{immediate:!0}),e.watchEffect(()=>{n.now&&!n.modelValue&&!b.value&&(r("update:modelValue",V(new Date,a.value)),b.value=!0)});function w(D,K){if(!D)return null;if(D instanceof Date&&!Number.isNaN(D.getTime()))return D;if(typeof D!="string")return null;switch(K){case"datetime":return _(D);case"time":return B(D);case"month":return S(D);case"year":return $(D);case"week":return N(D);default:return L(D)}}function V(D,K){if(!D)return null;const W=D instanceof Date?D:w(D,K);if(!W)return null;switch(K){case"datetime":return`${O(W)}T${Y(W)}`;case"time":return Y(W);case"month":return`${W.getFullYear()}-${M(W.getMonth()+1)}`;case"year":return`${W.getFullYear()}`;case"week":{const{year:X,week:re}=I(W);return`${X}-W${M(re)}`}default:return O(W)}}function O(D){return`${D.getFullYear()}-${M(D.getMonth()+1)}-${M(D.getDate())}`}function Y(D){return`${M(D.getHours())}:${M(D.getMinutes())}`}function L(D){const K=D.split("-");if(K.length<3)return null;const[W,X,re]=K.map(Number);return!W||!X||!re?null:new Date(W,X-1,re)}function _(D){const K=D.includes("T")?D:D.replace(" ","T"),W=new Date(K);return Number.isNaN(W.getTime())?null:W}function S(D){const[K,W]=D.split("-").map(Number);return!K||Number.isNaN(W)?null:new Date(K,(W||1)-1,1)}function $(D){const K=Number(D);return K?new Date(K,0,1):null}function B(D){const K=D.match(/^(\d{1,2}):(\d{2})$/);if(!K)return null;const[,W,X]=K,re=new Date;return re.setHours(Number(W),Number(X),0,0),re}function N(D){const K=D.match(/^(\d{4})-W(\d{2})$/);if(!K)return null;const[,W,X]=K,re=Number(X);return E(Number(W),re)}function I(D){const K=new Date(Date.UTC(D.getFullYear(),D.getMonth(),D.getDate())),W=K.getUTCDay()||7;K.setUTCDate(K.getUTCDate()+4-W);const X=new Date(Date.UTC(K.getUTCFullYear(),0,1)),re=Math.ceil(((K.getTime()-X.getTime())/864e5+1)/7);return{year:K.getUTCFullYear(),week:re}}function E(D,K){if(!D||!K)return null;const W=new Date(D,0,1+(K-1)*7),X=W.getDay(),re=W;return X<=4?re.setDate(W.getDate()-W.getDay()+1):re.setDate(W.getDate()+8-W.getDay()),re}function M(D){return String(D).padStart(2,"0")}return(D,K)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-date-picker",n.customClass]),style:e.normalizeStyle(v.value)},[e.createVNode(vm,{modelValue:u.value,"onUpdate:modelValue":K[0]||(K[0]=W=>u.value=W),placeholder:c.value,disabled:n.disabled,clearable:n.clearable,typeable:n.editable,"week-day-names":h.value,"week-starts-on":x.value,"starting-view":m.value.startingView,"minimum-view":m.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"]]),_m={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"}}},Bm={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:"Скасувати"}}},yr=_m.form.richtext,br=Bm.form.richtext,lo={en:{form:{richtext:yr}},uk:{form:{richtext:br}}},kr=(o={mode:"edit",schema:null})=>new Promise(t=>{const{close:n}=he.modal({title:o.mode==="add"?"Додати":"Редагувати",template:"",visible:!0,size:"medium",closeClickBack:!0,content:sr,contentProps:{...o,onClose:()=>{t(null),n()},onSave:r=>{t(r),n()}}})});rt.install=function(t){t.component("VForm",rt),Object.assign(t.config.globalProperties,{$form:kr}),t.provide("form",kr),window.v3plugin||(window.v3plugin={})};function Vt(o){return typeof o=="string"||o instanceof String}function xr(o){var t;return typeof o=="object"&&o!=null&&(o==null||(t=o.constructor)==null?void 0:t.name)==="Object"}function wr(o,t){return Array.isArray(t)?wr(o,(n,r)=>t.includes(r)):Object.entries(o).reduce((n,r)=>{let[l,a]=r;return t(a,l)&&(n[l]=a),n},{})}const fe={NONE:"NONE",LEFT:"LEFT",FORCE_LEFT:"FORCE_LEFT",RIGHT:"RIGHT",FORCE_RIGHT:"FORCE_RIGHT"};function Cr(o){switch(o){case fe.LEFT:return fe.FORCE_LEFT;case fe.RIGHT:return fe.FORCE_RIGHT;default:return o}}function ao(o){return o.replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1")}function Dn(o,t){if(t===o)return!0;const n=Array.isArray(t),r=Array.isArray(o);let l;if(n&&r){if(t.length!=o.length)return!1;for(l=0;l<t.length;l++)if(!Dn(t[l],o[l]))return!1;return!0}if(n!=r)return!1;if(t&&o&&typeof t=="object"&&typeof o=="object"){const a=t instanceof Date,s=o instanceof Date;if(a&&s)return t.getTime()==o.getTime();if(a!=s)return!1;const c=t instanceof RegExp,i=o instanceof RegExp;if(c&&i)return t.toString()==o.toString();if(c!=i)return!1;const d=Object.keys(t);for(l=0;l<d.length;l++)if(!Object.prototype.hasOwnProperty.call(o,d[l]))return!1;for(l=0;l<d.length;l++)if(!Dn(o[d[l]],t[d[l]]))return!1;return!0}else if(t&&o&&typeof t=="function"&&typeof o=="function")return t.toString()===o.toString();return!1}class Vm{constructor(t){for(Object.assign(this,t);this.value.slice(0,this.startChangePos)!==this.oldValue.slice(0,this.startChangePos);)--this.oldSelection.start;if(this.insertedCount)for(;this.value.slice(this.cursorPos)!==this.oldValue.slice(this.oldSelection.end);)this.value.length-this.cursorPos<this.oldValue.length-this.oldSelection.end?++this.oldSelection.end:++this.cursorPos}get startChangePos(){return Math.min(this.cursorPos,this.oldSelection.start)}get insertedCount(){return this.cursorPos-this.startChangePos}get inserted(){return this.value.substr(this.startChangePos,this.insertedCount)}get removedCount(){return Math.max(this.oldSelection.end-this.startChangePos||this.oldValue.length-this.value.length,0)}get removed(){return this.oldValue.substr(this.startChangePos,this.removedCount)}get head(){return this.value.substring(0,this.startChangePos)}get tail(){return this.value.substring(this.startChangePos+this.insertedCount)}get removeDirection(){return!this.removedCount||this.insertedCount?fe.NONE:(this.oldSelection.end===this.cursorPos||this.oldSelection.start===this.cursorPos)&&this.oldSelection.end===this.oldSelection.start?fe.RIGHT:fe.LEFT}}function ke(o,t){return new ke.InputMask(o,t)}function vr(o){if(o==null)throw new Error("mask property should be defined");return o instanceof RegExp?ke.MaskedRegExp:Vt(o)?ke.MaskedPattern:o===Date?ke.MaskedDate:o===Number?ke.MaskedNumber:Array.isArray(o)||o===Array?ke.MaskedDynamic:ke.Masked&&o.prototype instanceof ke.Masked?o:ke.Masked&&o instanceof ke.Masked?o.constructor:o instanceof Function?ke.MaskedFunction:(console.warn("Mask not found for mask",o),ke.Masked)}function Pt(o){if(!o)throw new Error("Options in not defined");if(ke.Masked){if(o.prototype instanceof ke.Masked)return{mask:o};const{mask:t=void 0,...n}=o instanceof ke.Masked?{mask:o}:xr(o)&&o.mask instanceof ke.Masked?o:{};if(t){const r=t.mask;return{...wr(t,(l,a)=>!a.startsWith("_")),mask:t.constructor,_mask:r,...n}}}return xr(o)?{...o}:{mask:o}}function ft(o){if(ke.Masked&&o instanceof ke.Masked)return o;const t=Pt(o),n=vr(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)}ke.createMask=ft;class Tn{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}}ke.MaskElement=Tn;const Er=90,Sm=89;class Xt extends Tn{constructor(t){super(),this.input=t,this._onKeydown=this._onKeydown.bind(this),this._onInput=this._onInput.bind(this),this._onBeforeinput=this._onBeforeinput.bind(this),this._onCompositionEnd=this._onCompositionEnd.bind(this)}get rootElement(){var t,n,r;return(t=(n=(r=this.input).getRootNode)==null?void 0:n.call(r))!=null?t:document}get isActive(){return this.input===this.rootElement.activeElement}bindEvents(t){this.input.addEventListener("keydown",this._onKeydown),this.input.addEventListener("input",this._onInput),this.input.addEventListener("beforeinput",this._onBeforeinput),this.input.addEventListener("compositionend",this._onCompositionEnd),this.input.addEventListener("drop",t.drop),this.input.addEventListener("click",t.click),this.input.addEventListener("focus",t.focus),this.input.addEventListener("blur",t.commit),this._handlers=t}_onKeydown(t){if(this._handlers.redo&&(t.keyCode===Er&&t.shiftKey&&(t.metaKey||t.ctrlKey)||t.keyCode===Sm&&t.ctrlKey))return t.preventDefault(),this._handlers.redo(t);if(this._handlers.undo&&t.keyCode===Er&&(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={}}}ke.HTMLMaskElement=Xt;class _r extends Xt{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}}ke.HTMLMaskElement=Xt;class so extends Xt{get _unsafeSelectionStart(){const t=this.rootElement,n=t.getSelection&&t.getSelection(),r=n&&n.anchorOffset,l=n&&n.focusOffset;return l==null||r==null||r<l?r:l}get _unsafeSelectionEnd(){const t=this.rootElement,n=t.getSelection&&t.getSelection(),r=n&&n.anchorOffset,l=n&&n.focusOffset;return l==null||r==null||r>l?r:l}_unsafeSelect(t,n){if(!this.rootElement.createRange)return;const r=this.rootElement.createRange();r.setStart(this.input.firstChild||this.input,t),r.setEnd(this.input.lastChild||this.input,n);const l=this.rootElement,a=l.getSelection&&l.getSelection();a&&(a.removeAllRanges(),a.addRange(r))}get value(){return this.input.textContent||""}set value(t){this.input.textContent=t}}ke.HTMLContenteditableMaskElement=so;class Ln{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>Ln.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}}Ln.MAX_LENGTH=100;class Br{constructor(t,n){this.el=t instanceof Tn?t:t.isContentEditable&&t.tagName!=="INPUT"&&t.tagName!=="TEXTAREA"?new so(t):new _r(t),this.masked=ft(n),this._listeners={},this._value="",this._unmaskedValue="",this._rawInputValue="",this.history=new Ln,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 ke.Masked)&&this.masked.constructor===vr(t)){this.masked.updateOptions({mask:t});return}const n=t instanceof ke.Masked?t:ft({mask:t});n.unmaskedValue=this.masked.unmaskedValue,this.masked=n}get value(){return this._value}set value(t){this.value!==t&&(this.masked.value=t,this.updateControl("auto"))}get unmaskedValue(){return this._unmaskedValue}set unmaskedValue(t){this.unmaskedValue!==t&&(this.masked.unmaskedValue=t,this.updateControl("auto"))}get rawInputValue(){return this._rawInputValue}set rawInputValue(t){this.rawInputValue!==t&&(this.masked.rawInputValue=t,this.updateControl(),this.alignCursor())}get typedValue(){return this.masked.typedValue}set typedValue(t){this.masked.typedValueEquals(t)||(this.masked.typedValue=t,this.updateControl("auto"))}get displayValue(){return this.masked.displayValue}_bindEvents(){this.el.bindEvents({selectionChange:this._saveSelection,input:this._onInput,drop:this._onDrop,click:this._onClick,focus:this._onFocus,commit:this._onChange,undo:this._onUndo,redo:this._onRedo})}_unbindEvents(){this.el&&this.el.unbindEvents()}_fireEvent(t,n){const r=this._listeners[t];r&&r.forEach(l=>l(n))}get selectionStart(){return this._cursorChanging?this._changingCursorPos:this.el.selectionStart}get cursorPos(){return this._cursorChanging?this._changingCursorPos:this.el.selectionEnd}set cursorPos(t){!this.el||!this.el.isActive||(this.el.select(t,t),this._saveSelection())}_saveSelection(){this.displayValue!==this.el.value&&console.warn("Element value was changed outside of mask. Syncronize mask using `mask.updateValue()` to work properly."),this._selection={start:this.selectionStart,end:this.cursorPos}}updateValue(){this.masked.value=this.el.value,this._value=this.masked.value,this._unmaskedValue=this.masked.unmaskedValue,this._rawInputValue=this.masked.rawInputValue}updateControl(t){const n=this.masked.unmaskedValue,r=this.masked.value,l=this.masked.rawInputValue,a=this.displayValue,s=this.unmaskedValue!==n||this.value!==r||this._rawInputValue!==l;this._unmaskedValue=n,this._value=r,this._rawInputValue=l,this.el.value!==a&&(this.el.value=a),t==="auto"?this.alignCursor():t!=null&&(this.cursorPos=t),s&&this._fireChangeEvents(),!this._historyChanging&&(s||this.history.isEmpty)&&this.history.push({unmaskedValue:n,selection:{start:this.selectionStart,end:this.cursorPos}})}updateOptions(t){const{mask:n,...r}=t,l=!this.maskEquals(n),a=this.masked.optionsIsChanged(r);l&&(this.mask=n),a&&this.masked.updateOptions(r),(l||a)&&this.updateControl()}updateCursor(t){t!=null&&(this.cursorPos=t,this._delayUpdateCursor(t))}_delayUpdateCursor(t){this._abortUpdateCursor(),this._changingCursorPos=t,this._cursorChanging=setTimeout(()=>{this.el&&(this.cursorPos=this._changingCursorPos,this._abortUpdateCursor())},10)}_fireChangeEvents(){this._fireEvent("accept",this._inputEvent),this.masked.isComplete&&this._fireEvent("complete",this._inputEvent)}_abortUpdateCursor(){this._cursorChanging&&(clearTimeout(this._cursorChanging),delete this._cursorChanging)}alignCursor(){this.cursorPos=this.masked.nearestInputPos(this.masked.nearestInputPos(this.cursorPos,fe.LEFT))}alignCursorFriendly(){this.selectionStart===this.cursorPos&&this.alignCursor()}on(t,n){return this._listeners[t]||(this._listeners[t]=[]),this._listeners[t].push(n),this}off(t,n){if(!this._listeners[t])return this;if(!n)return delete this._listeners[t],this;const r=this._listeners[t].indexOf(n);return r>=0&&this._listeners[t].splice(r,1),this}_onInput(t){this._inputEvent=t,this._abortUpdateCursor();const n=new Vm({value:this.el.value,cursorPos:this.cursorPos,oldValue:this.displayValue,oldSelection:this._selection}),r=this.masked.rawInputValue,l=this.masked.splice(n.startChangePos,n.removed.length,n.inserted,n.removeDirection,{input:!0,raw:!0}).offset,a=r===this.masked.rawInputValue?n.removeDirection:fe.NONE;let s=this.masked.nearestInputPos(n.startChangePos+l,a);a!==fe.NONE&&(s=this.masked.nearestInputPos(s,fe.NONE)),this.updateControl(s),delete this._inputEvent}_onChange(){this.displayValue!==this.el.value&&this.updateValue(),this.masked.doCommit(),this.updateControl(),this._saveSelection()}_onDrop(t){t.preventDefault(),t.stopPropagation()}_onFocus(t){this.alignCursorFriendly()}_onClick(t){this.alignCursorFriendly()}_onUndo(){this._applyHistoryState(this.history.undo())}_onRedo(){this._applyHistoryState(this.history.redo())}_applyHistoryState(t){t&&(this._historyChanging=!0,this.unmaskedValue=t.unmaskedValue,this.el.select(t.selection.start,t.selection.end),this._saveSelection(),this._historyChanging=!1)}destroy(){this._unbindEvents(),this._listeners.length=0,delete this.el}}ke.InputMask=Br;class Ce{static normalize(t){return Array.isArray(t)?t:[t,new Ce]}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}}ke.ChangeDetails=Ce;class mt{constructor(t,n,r){t===void 0&&(t=""),n===void 0&&(n=0),this.value=t,this.from=n,this.stop=r}toString(){return this.value}extend(t){this.value+=String(t)}appendTo(t){return t.append(this.toString(),{tail:!0}).aggregate(t._appendPlaceholder())}get state(){return{value:this.value,from:this.from,stop:this.stop}}set state(t){Object.assign(this,t)}unshift(t){if(!this.value.length||t!=null&&this.from>=t)return"";const n=this.value[0];return this.value=this.value.slice(1),n}shift(){if(!this.value.length)return"";const t=this.value[this.value.length-1];return this.value=this.value.slice(0,-1),t}}class je{constructor(t){this._value="",this._update({...je.DEFAULTS,...t}),this._initialized=!0}updateOptions(t){this.optionsIsChanged(t)&&this.withValueRefresh(this._update.bind(this,t))}_update(t){Object.assign(this,t)}get state(){return{_value:this.value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value}reset(){this._value=""}get value(){return this._value}set value(t){this.resolve(t,{input:!0})}resolve(t,n){n===void 0&&(n={input:!0}),this.reset(),this.append(t,n,""),this.doCommit()}get unmaskedValue(){return this.value}set unmaskedValue(t){this.resolve(t,{})}get typedValue(){return this.parse?this.parse(this.value,this):this.unmaskedValue}set typedValue(t){this.format?this.value=this.format(t,this):this.unmaskedValue=String(t)}get rawInputValue(){return this.extractInput(0,this.displayValue.length,{raw:!0})}set rawInputValue(t){this.resolve(t,{raw:!0})}get displayValue(){return this.value}get isComplete(){return!0}get isFilled(){return this.isComplete}nearestInputPos(t,n){return t}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),Math.min(this.displayValue.length,n-t)}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),this.displayValue.slice(t,n)}extractTail(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),new mt(this.extractInput(t,n),t)}appendTail(t){return Vt(t)&&(t=new mt(String(t))),t.appendTo(this)}_appendCharRaw(t,n){return t?(this._value+=t,new Ce({inserted:t,rawInserted:t})):new Ce}_appendChar(t,n,r){n===void 0&&(n={});const l=this.state;let a;if([t,a]=this.doPrepareChar(t,n),t&&(a=a.aggregate(this._appendCharRaw(t,n)),!a.rawInserted&&this.autofix==="pad")){const s=this.state;this.state=l;let 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&&r!=null){const i=this.state;if(this.overwrite===!0){s=r.state;for(let u=0;u<a.rawInserted.length;++u)r.unshift(this.displayValue.length-a.tailShift)}let d=this.appendTail(r);if(c=d.rawInserted.length===r.toString().length,!(c&&d.inserted)&&this.overwrite==="shift"){this.state=i,s=r.state;for(let u=0;u<a.rawInserted.length;++u)r.shift();d=this.appendTail(r),c=d.rawInserted.length===r.toString().length}c&&d.inserted&&(this.state=i)}c||(a=new Ce,this.state=l,r&&s&&(r.state=s))}return a}_appendPlaceholder(){return new Ce}_appendEager(){return new Ce}append(t,n,r){if(!Vt(t))throw new Error("value should be string");const l=Vt(r)?new mt(String(r)):r;n!=null&&n.tail&&(n._beforeTailState=this.state);let a;[t,a]=this.doPrepare(t,n);for(let s=0;s<t.length;++s){const 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 Ce}withValueRefresh(t){if(this._refreshing||!this._initialized)return t();this._refreshing=!0;const n=this.rawInputValue,r=this.value,l=t();return this.rawInputValue=n,this.value&&this.value!==r&&r.indexOf(this.value)===0&&(this.append(r.slice(this.displayValue.length),{},""),this.doCommit()),delete this._refreshing,l}runIsolated(t){if(this._isolated||!this._initialized)return t(this);this._isolated=!0;const n=this.state,r=t(this);return this.state=n,delete this._isolated,r}doSkipInvalid(t,n,r){return!!this.skipInvalid}doPrepare(t,n){return n===void 0&&(n={}),Ce.normalize(this.prepare?this.prepare(t,this,n):t)}doPrepareChar(t,n){return n===void 0&&(n={}),Ce.normalize(this.prepareChar?this.prepareChar(t,this,n):t)}doValidate(t){return(!this.validate||this.validate(this.value,this,t))&&(!this.parent||this.parent.doValidate(t))}doCommit(){this.commit&&this.commit(this.value,this)}splice(t,n,r,l,a){r===void 0&&(r=""),l===void 0&&(l=fe.NONE),a===void 0&&(a={input:!0});const s=t+n,c=this.extractTail(s),i=this.eager===!0||this.eager==="remove";let d;i&&(l=Cr(l),d=this.extractInput(0,s,{raw:!0}));let u=t;const f=new Ce;if(l!==fe.NONE&&(u=this.nearestInputPos(t,n>1&&t!==0&&!i?fe.NONE:l),f.tailShift=u-t),f.aggregate(this.remove(u)),i&&l!==fe.NONE&&d===this.rawInputValue)if(l===fe.FORCE_LEFT){let h;for(;d===this.rawInputValue&&(h=this.displayValue.length);)f.aggregate(new Ce({tailShift:-1})).aggregate(this.remove(h-1))}else l===fe.FORCE_RIGHT&&c.unshift();return f.aggregate(this.append(r,a,c))}maskEquals(t){return this.mask===t}optionsIsChanged(t){return!Dn(this,t)}typedValueEquals(t){const n=this.typedValue;return t===n||je.EMPTY_VALUES.includes(t)&&je.EMPTY_VALUES.includes(n)||(this.format?this.format(t,this)===this.format(this.typedValue,this):!1)}pad(t){return new Ce}}je.DEFAULTS={skipInvalid:!0},je.EMPTY_VALUES=[void 0,null,""],ke.Masked=je;class St{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=Vt(t)?new mt(String(t)):t;const n=this.chunks[this.chunks.length-1],r=n&&(n.stop===t.stop||t.stop==null)&&t.from===n.from+n.toString().length;if(t instanceof mt)r?n.extend(t.toString()):this.chunks.push(t);else if(t instanceof St){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 ke.MaskedPattern))return new mt(this.toString()).appendTo(t);const n=new Ce;for(let r=0;r<this.chunks.length;++r){const l=this.chunks[r],a=t._mapPosToBlock(t.displayValue.length),s=l.stop;let c;if(s!=null&&(!a||a.index<=s)&&((l instanceof St||t._stops.indexOf(s)>=0)&&n.aggregate(t._appendPlaceholder(s)),c=l instanceof St&&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,...r}=t;Object.assign(this,r),this.chunks=n.map(l=>{const a="chunks"in l?new St:new mt;return a.state=l,a})}unshift(t){if(!this.chunks.length||t!=null&&this.from>=t)return"";const n=t!=null?t-this.from:t;let r=0;for(;r<this.chunks.length;){const l=this.chunks[r],a=l.unshift(n);if(l.toString()){if(!a)break;++r}else this.chunks.splice(r,1);if(a)return a}return""}shift(){if(!this.chunks.length)return"";let t=this.chunks.length-1;for(;0<=t;){const n=this.chunks[t],r=n.shift();if(n.toString()){if(!r)break;--t}else this.chunks.splice(t,1);if(r)return r}return""}}class $m{constructor(t,n){this.masked=t,this._log=[];const{offset:r,index:l}=t._mapPosToBlock(n)||(n<0?{index:0,offset:0}:{index:this.masked._blocks.length,offset:0});this.offset=r,this.index=l,this.ok=!1}get block(){return this.masked._blocks[this.index]}get pos(){return this.masked._blockStartPos(this.index)+this.offset}get state(){return{index:this.index,offset:this.offset,ok:this.ok}}set state(t){Object.assign(this,t)}pushState(){this._log.push(this.state)}popState(){const t=this._log.pop();return t&&(this.state=t),t}bindBlock(){this.block||(this.index<0&&(this.index=0,this.offset=0),this.index>=this.masked._blocks.length&&(this.index=this.masked._blocks.length-1,this.offset=this.block.displayValue.length))}_pushLeft(t){for(this.pushState(),this.bindBlock();0<=this.index;--this.index,this.offset=((n=this.block)==null?void 0:n.displayValue.length)||0){var n;if(t())return this.ok=!0}return this.ok=!1}_pushRight(t){for(this.pushState(),this.bindBlock();this.index<this.masked._blocks.length;++this.index,this.offset=0)if(t())return this.ok=!0;return this.ok=!1}pushLeftBeforeFilled(){return this._pushLeft(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,fe.FORCE_LEFT),this.offset!==0))return!0})}pushLeftBeforeInput(){return this._pushLeft(()=>{if(!this.block.isFixed)return this.offset=this.block.nearestInputPos(this.offset,fe.LEFT),!0})}pushLeftBeforeRequired(){return this._pushLeft(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,fe.LEFT),!0})}pushRightBeforeFilled(){return this._pushRight(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,fe.FORCE_RIGHT),this.offset!==this.block.value.length))return!0})}pushRightBeforeInput(){return this._pushRight(()=>{if(!this.block.isFixed)return this.offset=this.block.nearestInputPos(this.offset,fe.NONE),!0})}pushRightBeforeRequired(){return this._pushRight(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,fe.NONE),!0})}}class io{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 Ce}nearestInputPos(t,n){n===void 0&&(n=fe.NONE);const r=0,l=this._value.length;switch(n){case fe.LEFT:case fe.FORCE_LEFT:return r;case fe.NONE:case fe.RIGHT:case fe.FORCE_RIGHT:default:return l}}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),this._isRawInput?n-t:0}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),r===void 0&&(r={}),r.raw&&this._isRawInput&&this._value.slice(t,n)||""}get isComplete(){return!0}get isFilled(){return!!this._value}_appendChar(t,n){if(n===void 0&&(n={}),this.isFilled)return new Ce;const r=this.eager===!0||this.eager==="append",a=this.char===t&&(this.isUnmasking||n.input||n.raw)&&(!n.raw||!r)&&!n.tail,s=new Ce({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 Ce;return this.isFilled||(this._value=t.inserted=this.char),t}extractTail(){return new mt("")}appendTail(t){return Vt(t)&&(t=new mt(String(t))),t.appendTo(this)}append(t,n,r){const l=this._appendChar(t[0],n);return r!=null&&(l.tailShift+=this.appendTail(r).tailShift),l}doCommit(){}get state(){return{_value:this._value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value,this._isRawInput=!!t._rawInputValue}pad(t){return this._appendPlaceholder()}}class Zt{constructor(t){const{parent:n,isOptional:r,placeholderChar:l,displayChar:a,lazy:s,eager:c,...i}=t;this.masked=ft(i),Object.assign(this,{parent:n,isOptional:r,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 Ce}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 Ce;const r=this.masked.state;let l=this.masked._appendChar(t,this.currentMaskFlags(n));return l.inserted&&this.doValidate(n)===!1&&(l=new Ce,this.masked.state=r),!l.inserted&&!this.isOptional&&!this.lazy&&!n.input&&(l.inserted=this.placeholderChar),l.skip=!l.inserted&&!this.isOptional,this.isFilled=!!l.inserted,l}append(t,n,r){return this.masked.append(t,this.currentMaskFlags(n),r)}_appendPlaceholder(){return this.isFilled||this.isOptional?new Ce:(this.isFilled=!0,new Ce({inserted:this.placeholderChar}))}_appendEager(){return new Ce}extractTail(t,n){return this.masked.extractTail(t,n)}appendTail(t){return this.masked.appendTail(t)}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),this.masked.extractInput(t,n,r)}nearestInputPos(t,n){n===void 0&&(n=fe.NONE);const r=0,l=this.value.length,a=Math.min(Math.max(t,r),l);switch(n){case fe.LEFT:case fe.FORCE_LEFT:return this.isComplete?a:r;case fe.RIGHT:case fe.FORCE_RIGHT:return this.isComplete?a:l;case fe.NONE:default:return a}}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),this.value.slice(t,n).length}doValidate(t){return this.masked.doValidate(this.currentMaskFlags(t))&&(!this.parent||this.parent.doValidate(this.currentMaskFlags(t)))}doCommit(){this.masked.doCommit()}get state(){return{_value:this.value,_rawInputValue:this.rawInputValue,masked:this.masked.state,isFilled:this.isFilled}}set state(t){this.masked.state=t.masked,this.isFilled=t.isFilled}currentMaskFlags(t){var n;return{...t,_beforeTailState:(t==null||(n=t._beforeTailState)==null?void 0:n.masked)||t?._beforeTailState}}pad(t){return new Ce}}Zt.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 Vr extends je{updateOptions(t){super.updateOptions(t)}_update(t){const n=t.mask;n&&(t.validate=r=>r.search(n)>=0),super._update(t)}}ke.MaskedRegExp=Vr;class Ue extends je{constructor(t){super({...Ue.DEFAULTS,...t,definitions:Object.assign({},Zt.DEFAULT_DEFINITIONS,t?.definitions)})}updateOptions(t){super.updateOptions(t)}_update(t){t.definitions=Object.assign({},this.definitions,t.definitions),super._update(t),this._rebuildMask()}_rebuildMask(){const t=this.definitions;this._blocks=[],this.exposeBlock=void 0,this._stops=[],this._maskedBlocks={};const n=this.mask;if(!n||!t)return;let r=!1,l=!1;for(let a=0;a<n.length;++a){if(this.blocks){const d=n.slice(a),u=Object.keys(this.blocks).filter(h=>d.indexOf(h)===0);u.sort((h,x)=>x.length-h.length);const f=u[0];if(f){const{expose:h,repeat:x,...m}=Pt(this.blocks[f]),k={lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,overwrite:this.overwrite,autofix:this.autofix,...m,repeat:x,parent:this},y=x!=null?new ke.RepeatBlock(k):ft(k);y&&(this._blocks.push(y),h&&(this.exposeBlock=y),this._maskedBlocks[f]||(this._maskedBlocks[f]=[]),this._maskedBlocks[f].push(this._blocks.length-1)),a+=f.length-1;continue}}let s=n[a],c=s in t;if(s===Ue.STOP_CHAR){this._stops.push(this._blocks.length);continue}if(s==="{"||s==="}"){r=!r;continue}if(s==="["||s==="]"){l=!l;continue}if(s===Ue.ESCAPE_CHAR){if(++a,s=n[a],!s)break;c=!1}const i=c?new Zt({isOptional:l,lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,...Pt(t[s]),parent:this}):new io({char:s,eager:this.eager,isUnmasking:r});this._blocks.push(i)}}get state(){return{...super.state,_blocks:this._blocks.map(t=>t.state)}}set state(t){if(!t){this.reset();return}const{_blocks:n,...r}=t;this._blocks.forEach((l,a)=>l.state=n[a]),super.state=r}reset(){super.reset(),this._blocks.forEach(t=>t.reset())}get isComplete(){return this.exposeBlock?this.exposeBlock.isComplete:this._blocks.every(t=>t.isComplete)}get isFilled(){return this._blocks.every(t=>t.isFilled)}get isFixed(){return this._blocks.every(t=>t.isFixed)}get isOptional(){return this._blocks.every(t=>t.isOptional)}doCommit(){this._blocks.forEach(t=>t.doCommit()),super.doCommit()}get unmaskedValue(){return this.exposeBlock?this.exposeBlock.unmaskedValue:this._blocks.reduce((t,n)=>t+=n.unmaskedValue,"")}set unmaskedValue(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.unmaskedValue=t,this.appendTail(n),this.doCommit()}else super.unmaskedValue=t}get value(){return this.exposeBlock?this.exposeBlock.value:this._blocks.reduce((t,n)=>t+=n.value,"")}set value(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.value=t,this.appendTail(n),this.doCommit()}else super.value=t}get typedValue(){return this.exposeBlock?this.exposeBlock.typedValue:super.typedValue}set typedValue(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.typedValue=t,this.appendTail(n),this.doCommit()}else super.typedValue=t}get displayValue(){return this._blocks.reduce((t,n)=>t+=n.displayValue,"")}appendTail(t){return super.appendTail(t).aggregate(this._appendPlaceholder())}_appendEager(){var t;const n=new Ce;let r=(t=this._mapPosToBlock(this.displayValue.length))==null?void 0:t.index;if(r==null)return n;this._blocks[r].isFilled&&++r;for(let l=r;l<this._blocks.length;++l){const a=this._blocks[l]._appendEager();if(!a.inserted)break;n.aggregate(a)}return n}_appendCharRaw(t,n){n===void 0&&(n={});const r=this._mapPosToBlock(this.displayValue.length),l=new Ce;if(!r)return l;for(let s=r.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 r=new St;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 St&&(i.blockIndex=a),r.extend(i)}),r}extractInput(t,n,r){if(t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),r===void 0&&(r={}),t===n)return"";let l="";return this._forEachBlocksInRange(t,n,(a,s,c,i)=>{l+=a.extractInput(c,i,r)}),l}_findStopBefore(t){let n;for(let r=0;r<this._stops.length;++r){const l=this._stops[r];if(l<=t)n=l;else break}return n}_appendPlaceholder(t){const n=new Ce;if(this.lazy&&t==null)return n;const r=this._mapPosToBlock(this.displayValue.length);if(!r)return n;const l=r.index,a=t??this._blocks.length;return this._blocks.slice(l,a).forEach(s=>{if(!s.lazy||t!=null){var c;n.aggregate(s._appendPlaceholder((c=s._blocks)==null?void 0:c.length))}}),n}_mapPosToBlock(t){let n="";for(let r=0;r<this._blocks.length;++r){const l=this._blocks[r],a=n.length;if(n+=l.displayValue,t<=n.length)return{index:r,offset:t-a}}}_blockStartPos(t){return this._blocks.slice(0,t).reduce((n,r)=>n+=r.displayValue.length,0)}_forEachBlocksInRange(t,n,r){n===void 0&&(n=this.displayValue.length);const l=this._mapPosToBlock(t);if(l){const a=this._mapPosToBlock(n),s=a&&l.index===a.index,c=l.offset,i=a&&s?a.offset:this._blocks[l.index].displayValue.length;if(r(this._blocks[l.index],l.index,c,i),a&&!s){for(let d=l.index+1;d<a.index;++d)r(this._blocks[d],d,0,this._blocks[d].displayValue.length);r(this._blocks[a.index],a.index,0,a.offset)}}}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const r=super.remove(t,n);return this._forEachBlocksInRange(t,n,(l,a,s,c)=>{r.aggregate(l.remove(s,c))}),r}nearestInputPos(t,n){if(n===void 0&&(n=fe.NONE),!this._blocks.length)return 0;const r=new $m(this,t);if(n===fe.NONE)return r.pushRightBeforeInput()||(r.popState(),r.pushLeftBeforeInput())?r.pos:this.displayValue.length;if(n===fe.LEFT||n===fe.FORCE_LEFT){if(n===fe.LEFT){if(r.pushRightBeforeFilled(),r.ok&&r.pos===t)return t;r.popState()}if(r.pushLeftBeforeInput(),r.pushLeftBeforeRequired(),r.pushLeftBeforeFilled(),n===fe.LEFT){if(r.pushRightBeforeInput(),r.pushRightBeforeRequired(),r.ok&&r.pos<=t||(r.popState(),r.ok&&r.pos<=t))return r.pos;r.popState()}return r.ok?r.pos:n===fe.FORCE_LEFT?0:(r.popState(),r.ok||(r.popState(),r.ok)?r.pos:0)}return n===fe.RIGHT||n===fe.FORCE_RIGHT?(r.pushRightBeforeInput(),r.pushRightBeforeRequired(),r.pushRightBeforeFilled()?r.pos:n===fe.FORCE_RIGHT?this.displayValue.length:(r.popState(),r.ok||(r.popState(),r.ok)?r.pos:this.nearestInputPos(t,fe.LEFT))):t}totalInputPositions(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);let r=0;return this._forEachBlocksInRange(t,n,(l,a,s,c)=>{r+=l.totalInputPositions(s,c)}),r}maskedBlock(t){return this.maskedBlocks(t)[0]}maskedBlocks(t){const n=this._maskedBlocks[t];return n?n.map(r=>this._blocks[r]):[]}pad(t){const n=new Ce;return this._forEachBlocksInRange(0,this.displayValue.length,r=>n.aggregate(r.pad(t))),n}}Ue.DEFAULTS={...je.DEFAULTS,lazy:!0,placeholderChar:"_"},Ue.STOP_CHAR="`",Ue.ESCAPE_CHAR="\\",Ue.InputDefinition=Zt,Ue.FixedDefinition=io,ke.MaskedPattern=Ue;class Jt extends Ue{get _matchFrom(){return this.maxLength-String(this.from).length}constructor(t){super(t)}updateOptions(t){super.updateOptions(t)}_update(t){const{to:n=this.to||0,from:r=this.from||0,maxLength:l=this.maxLength||0,autofix:a=this.autofix,...s}=t;this.to=n,this.from=r,this.maxLength=Math.max(String(n).length,l),this.autofix=a;const 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="",r="";const[,l,a]=t.match(/^(\D*)(\d*)(\D*)/)||[];return a&&(n="0".repeat(l.length)+a,r="9".repeat(l.length)+a),n=n.padEnd(this.maxLength,"0"),r=r.padEnd(this.maxLength,"9"),[n,r]}doPrepareChar(t,n){n===void 0&&(n={});let r;return[t,r]=super.doPrepareChar(t.replace(/\D/g,""),n),t||(r.skip=!this.isComplete),[t,r]}_appendCharRaw(t,n){if(n===void 0&&(n={}),!this.autofix||this.value.length+1>this.maxLength)return super._appendCharRaw(t,n);const r=String(this.from).padStart(this.maxLength,"0"),l=String(this.to).padStart(this.maxLength,"0"),[a,s]=this.boundaries(this.value+t);return Number(s)<this.from?super._appendCharRaw(r[this.value.length],n):Number(a)>this.to?!n.tail&&this.autofix==="pad"&&this.value.length+1<this.maxLength?super._appendCharRaw(r[this.value.length],n).aggregate(this._appendCharRaw(t,n)):super._appendCharRaw(l[this.value.length],n):super._appendCharRaw(t,n)}doValidate(t){const n=this.value;if(n.search(/[^0]/)===-1&&n.length<=this._matchFrom)return!0;const[l,a]=this.boundaries(n);return this.from<=Number(a)&&Number(l)<=this.to&&super.doValidate(t)}pad(t){const n=new Ce;if(this.value.length===this.maxLength)return n;const r=this.value,l=this.maxLength-this.value.length;if(l){this.reset();for(let a=0;a<l;++a)n.aggregate(super._appendCharRaw("0",t));r.split("").forEach(a=>this._appendCharRaw(a))}return n}}ke.MaskedRange=Jt;const Nm="d{.}`m{.}`Y";class ht extends Ue{static extractPatternOptions(t){const{mask:n,pattern:r,...l}=t;return{...l,mask:Vt(n)?n:r}}constructor(t){super(ht.extractPatternOptions({...ht.DEFAULTS,...t}))}updateOptions(t){super.updateOptions(t)}_update(t){const{mask:n,pattern:r,blocks:l,...a}={...ht.DEFAULTS,...t},s=Object.assign({},ht.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:Vt(n)?n:r,blocks:s})}doValidate(t){const n=this.date;return super.doValidate(t)&&(!this.isComplete||this.isDateExist(this.value)&&n!=null&&(this.min==null||this.min<=n)&&(this.max==null||n<=this.max))}isDateExist(t){return this.format(this.parse(t,this),this).indexOf(t)>=0}get date(){return this.typedValue}set date(t){this.typedValue=t}get typedValue(){return this.isComplete?super.typedValue:null}set typedValue(t){super.typedValue=t}maskEquals(t){return t===Date||super.maskEquals(t)}optionsIsChanged(t){return super.optionsIsChanged(ht.extractPatternOptions(t))}}ht.GET_DEFAULT_BLOCKS=()=>({d:{mask:Jt,from:1,to:31,maxLength:2},m:{mask:Jt,from:1,to:12,maxLength:2},Y:{mask:Jt,from:1900,to:9999}}),ht.DEFAULTS={...Ue.DEFAULTS,mask:Date,pattern:Nm,format:(o,t)=>{if(!o)return"";const n=String(o.getDate()).padStart(2,"0"),r=String(o.getMonth()+1).padStart(2,"0"),l=o.getFullYear();return[n,r,l].join(".")},parse:(o,t)=>{const[n,r,l]=o.split(".").map(Number);return new Date(l,r-1,n)}},ke.MaskedDate=ht;class Qt extends je{constructor(t){super({...Qt.DEFAULTS,...t}),this.currentMask=void 0}updateOptions(t){super.updateOptions(t)}_update(t){super._update(t),"mask"in t&&(this.exposeMask=void 0,this.compiledMasks=Array.isArray(t.mask)?t.mask.map(n=>{const{expose:r,...l}=Pt(n),a=ft({overwrite:this._overwrite,eager:this._eager,skipInvalid:this._skipInvalid,...l});return r&&(this.exposeMask=a),a}):[])}_appendCharRaw(t,n){n===void 0&&(n={});const r=this._applyDispatch(t,n);return this.currentMask&&r.aggregate(this.currentMask._appendChar(t,this.currentMaskFlags(n))),r}_applyDispatch(t,n,r){t===void 0&&(t=""),n===void 0&&(n={}),r===void 0&&(r="");const l=n.tail&&n._beforeTailState!=null?n._beforeTailState._value:this.value,a=this.rawInputValue,s=n.tail&&n._beforeTailState!=null?n._beforeTailState._rawInputValue:a,c=a.slice(s.length),i=this.currentMask,d=new Ce,u=i?.state;return this.currentMask=this.doDispatch(t,{...n},r),this.currentMask&&(this.currentMask!==i?(this.currentMask.reset(),s&&(this.currentMask.append(s,{raw:!0}),d.tailShift=this.currentMask.value.length-l.length),c&&(d.tailShift+=this.currentMask.append(c,{raw:!0,tail:!0}).tailShift)):u&&(this.currentMask.state=u)),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 Ce;return t&&n.aggregate(this._applyDispatch("",{},t)),n.aggregate(this.currentMask?this.currentMask.appendTail(t):super.appendTail(t))}currentMaskFlags(t){var n,r;return{...t,_beforeTailState:((n=t._beforeTailState)==null?void 0:n.currentMaskRef)===this.currentMask&&((r=t._beforeTailState)==null?void 0:r.currentMask)||t._beforeTailState}}doDispatch(t,n,r){return n===void 0&&(n={}),r===void 0&&(r=""),this.dispatch(t,this,n,r)}doValidate(t){return super.doValidate(t)&&(!this.currentMask||this.currentMask.doValidate(this.currentMaskFlags(t)))}doPrepare(t,n){n===void 0&&(n={});let[r,l]=super.doPrepare(t,n);if(this.currentMask){let a;[r,a]=super.doPrepare(r,this.currentMaskFlags(n)),l=l.aggregate(a)}return[r,l]}doPrepareChar(t,n){n===void 0&&(n={});let[r,l]=super.doPrepareChar(t,n);if(this.currentMask){let a;[r,a]=super.doPrepareChar(r,this.currentMaskFlags(n)),l=l.aggregate(a)}return[r,l]}reset(){var t;(t=this.currentMask)==null||t.reset(),this.compiledMasks.forEach(n=>n.reset())}get value(){return this.exposeMask?this.exposeMask.value:this.currentMask?this.currentMask.value:""}set value(t){this.exposeMask?(this.exposeMask.value=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.value=t}get unmaskedValue(){return this.exposeMask?this.exposeMask.unmaskedValue:this.currentMask?this.currentMask.unmaskedValue:""}set unmaskedValue(t){this.exposeMask?(this.exposeMask.unmaskedValue=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.unmaskedValue=t}get typedValue(){return this.exposeMask?this.exposeMask.typedValue:this.currentMask?this.currentMask.typedValue:""}set typedValue(t){if(this.exposeMask){this.exposeMask.typedValue=t,this.currentMask=this.exposeMask,this._applyDispatch();return}let n=String(t);this.currentMask&&(this.currentMask.typedValue=t,n=this.currentMask.unmaskedValue),this.unmaskedValue=n}get displayValue(){return this.currentMask?this.currentMask.displayValue:""}get isComplete(){var t;return!!((t=this.currentMask)!=null&&t.isComplete)}get isFilled(){var t;return!!((t=this.currentMask)!=null&&t.isFilled)}remove(t,n){const r=new Ce;return this.currentMask&&r.aggregate(this.currentMask.remove(t,n)).aggregate(this._applyDispatch()),r}get state(){var t;return{...super.state,_rawInputValue:this.rawInputValue,compiledMasks:this.compiledMasks.map(n=>n.state),currentMaskRef:this.currentMask,currentMask:(t=this.currentMask)==null?void 0:t.state}}set state(t){const{compiledMasks:n,currentMaskRef:r,currentMask:l,...a}=t;n&&this.compiledMasks.forEach((s,c)=>s.state=n[c]),r!=null&&(this.currentMask=r,this.currentMask.state=l),super.state=a}extractInput(t,n,r){return this.currentMask?this.currentMask.extractInput(t,n,r):""}extractTail(t,n){return this.currentMask?this.currentMask.extractTail(t,n):super.extractTail(t,n)}doCommit(){this.currentMask&&this.currentMask.doCommit(),super.doCommit()}nearestInputPos(t,n){return this.currentMask?this.currentMask.nearestInputPos(t,n):super.nearestInputPos(t,n)}get overwrite(){return this.currentMask?this.currentMask.overwrite:this._overwrite}set overwrite(t){this._overwrite=t}get eager(){return this.currentMask?this.currentMask.eager:this._eager}set eager(t){this._eager=t}get skipInvalid(){return this.currentMask?this.currentMask.skipInvalid:this._skipInvalid}set skipInvalid(t){this._skipInvalid=t}get autofix(){return this.currentMask?this.currentMask.autofix:this._autofix}set autofix(t){this._autofix=t}maskEquals(t){return Array.isArray(t)?this.compiledMasks.every((n,r)=>{if(!t[r])return;const{mask:l,...a}=t[r];return Dn(n,a)&&n.maskEquals(l)}):super.maskEquals(t)}typedValueEquals(t){var n;return!!((n=this.currentMask)!=null&&n.typedValueEquals(t))}}Qt.DEFAULTS={...je.DEFAULTS,dispatch:(o,t,n,r)=>{if(!t.compiledMasks.length)return;const l=t.rawInputValue,a=t.compiledMasks.map((s,c)=>{const i=t.currentMask===s,d=i?s.displayValue.length:s.nearestInputPos(s.displayValue.length,fe.FORCE_LEFT);return s.rawInputValue!==l?(s.reset(),s.append(l,{raw:!0})):i||s.remove(d),s.append(o,t.currentMaskFlags(n)),s.appendTail(r),{index:c,weight:s.rawInputValue.length,totalInputPositions:s.totalInputPositions(0,Math.max(d,s.nearestInputPos(s.displayValue.length,fe.FORCE_LEFT)))}});return a.sort((s,c)=>c.weight-s.weight||c.totalInputPositions-s.totalInputPositions),t.compiledMasks[a[0].index]}},ke.MaskedDynamic=Qt;class en extends Ue{constructor(t){super({...en.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){const{enum:n,...r}=t;if(n){const l=n.map(c=>c.length),a=Math.min(...l),s=Math.max(...l)-a;r.mask="*".repeat(a),s&&(r.mask+="["+"*".repeat(s)+"]"),this.enum=n}super._update(r)}_appendCharRaw(t,n){n===void 0&&(n={});const r=Math.min(this.nearestInputPos(0,fe.FORCE_RIGHT),this.value.length),l=this.enum.filter(a=>this.matchValue(a,this.unmaskedValue+t,r));if(l.length){l.length===1&&this._forEachBlocksInRange(0,this.value.length,(s,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 Ce({skip:!this.isComplete})}extractTail(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),new mt("",t)}remove(t,n){if(t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),t===n)return new Ce;const r=Math.min(super.nearestInputPos(0,fe.FORCE_RIGHT),this.value.length);let l;for(l=t;l>=0&&!(this.enum.filter(c=>this.matchValue(c,this.value.slice(r,l),r)).length>1);--l);const a=super.remove(l,n);return a.tailShift+=l-t,a}get isComplete(){return this.enum.indexOf(this.value)>=0}}en.DEFAULTS={...Ue.DEFAULTS,matchValue:(o,t,n)=>o.indexOf(t,n)===n},ke.MaskedEnum=en;class Sr extends je{updateOptions(t){super.updateOptions(t)}_update(t){super._update({...t,validate:t.mask})}}ke.MaskedFunction=Sr;var $r;class We extends je{constructor(t){super({...We.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){super._update(t),this._updateRegExps()}_updateRegExps(){const t="^"+(this.allowNegative?"[+|\\-]?":""),n="\\d*",r=(this.scale?"("+ao(this.radix)+"\\d{0,"+this.scale+"})?":"")+"$";this._numberRegExp=new RegExp(t+n+r),this._mapToRadixRegExp=new RegExp("["+this.mapToRadix.map(ao).join("")+"]","g"),this._thousandsSeparatorRegExp=new RegExp(ao(this.thousandsSeparator),"g")}_removeThousandsSeparators(t){return t.replace(this._thousandsSeparatorRegExp,"")}_insertThousandsSeparators(t){const n=t.split(this.radix);return n[0]=n[0].replace(/\B(?=(\d{3})+(?!\d))/g,this.thousandsSeparator),n.join(this.radix)}doPrepareChar(t,n){n===void 0&&(n={});const[r,l]=super.doPrepareChar(this._removeThousandsSeparators(this.scale&&this.mapToRadix.length&&(n.input&&n.raw||!n.input&&!n.raw)?t.replace(this._mapToRadixRegExp,this.radix):t),n);return t&&!r&&(l.skip=!0),r&&!this.allowPositive&&!this.value&&r!=="-"&&l.aggregate(this._appendChar("-")),[r,l]}_separatorsCount(t,n){n===void 0&&(n=!1);let r=0;for(let l=0;l<t;++l)this._value.indexOf(this.thousandsSeparator,l)===l&&(++r,n&&(t+=this.thousandsSeparator.length));return r}_separatorsCountFromSlice(t){return t===void 0&&(t=this._value),this._separatorsCount(this._removeThousandsSeparators(t).length,!0)}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),[t,n]=this._adjustRangeWithSeparators(t,n),this._removeThousandsSeparators(super.extractInput(t,n,r))}_appendCharRaw(t,n){n===void 0&&(n={});const r=n.tail&&n._beforeTailState?n._beforeTailState._value:this._value,l=this._separatorsCountFromSlice(r);this._value=this._removeThousandsSeparators(this.value);const a=this._value;this._value+=t;const s=this.number;let c=!isNaN(s),i=!1;if(c){let h;this.min!=null&&this.min<0&&this.number<this.min&&(h=this.min),this.max!=null&&this.max>0&&this.number>this.max&&(h=this.max),h!=null&&(this.autofix?(this._value=this.format(h,this).replace(We.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 Ce({inserted:this._value.slice(a.length),rawInserted:i?"":t,skip:i}):(this._value=a,d=new Ce),this._value=this._insertThousandsSeparators(this._value);const u=n.tail&&n._beforeTailState?n._beforeTailState._value:this._value,f=this._separatorsCountFromSlice(u);return d.tailShift+=(f-l)*this.thousandsSeparator.length,d}_findSeparatorAround(t){if(this.thousandsSeparator){const n=t-this.thousandsSeparator.length+1,r=this.value.indexOf(this.thousandsSeparator,n);if(r<=t)return r}return-1}_adjustRangeWithSeparators(t,n){const r=this._findSeparatorAround(t);r>=0&&(t=r);const l=this._findSeparatorAround(n);return l>=0&&(n=l+this.thousandsSeparator.length),[t,n]}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),[t,n]=this._adjustRangeWithSeparators(t,n);const r=this.value.slice(0,t),l=this.value.slice(n),a=this._separatorsCount(r.length);this._value=this._insertThousandsSeparators(this._removeThousandsSeparators(r+l));const s=this._separatorsCountFromSlice(r);return new Ce({tailShift:(s-a)*this.thousandsSeparator.length})}nearestInputPos(t,n){if(!this.thousandsSeparator)return t;switch(n){case fe.NONE:case fe.LEFT:case fe.FORCE_LEFT:{const r=this._findSeparatorAround(t-1);if(r>=0){const l=r+this.thousandsSeparator.length;if(t<l||this.value.length<=l||n===fe.FORCE_LEFT)return r}break}case fe.RIGHT:case fe.FORCE_RIGHT:{const r=this._findSeparatorAround(t);if(r>=0)return r+this.thousandsSeparator.length}}return t}doCommit(){if(this.value){const t=this.number;let n=t;this.min!=null&&(n=Math.max(n,this.min)),this.max!=null&&(n=Math.min(n,this.max)),n!==t&&(this.unmaskedValue=this.format(n,this));let r=this.value;this.normalizeZeros&&(r=this._normalizeZeros(r)),this.padFractionalZeros&&this.scale>0&&(r=this._padFractionalZeros(r)),this._value=r}super.doCommit()}_normalizeZeros(t){const n=this._removeThousandsSeparators(t).split(this.radix);return n[0]=n[0].replace(/^(\D*)(0*)(\d*)/,(r,l,a,s)=>l+s),t.length&&!/\d$/.test(n[0])&&(n[0]=n[0]+"0"),n.length>1&&(n[1]=n[1].replace(/0*$/,""),n[1].length||(n.length=1)),this._insertThousandsSeparators(n.join(this.radix))}_padFractionalZeros(t){if(!t)return t;const n=t.split(this.radix);return n.length<2&&n.push(""),n[1]=n[1].padEnd(this.scale,"0"),n.join(this.radix)}doSkipInvalid(t,n,r){n===void 0&&(n={});const l=this.scale===0&&t!==this.thousandsSeparator&&(t===this.radix||t===We.UNMASKED_RADIX||this.mapToRadix.includes(t));return super.doSkipInvalid(t,n,r)&&!l}get unmaskedValue(){return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix,We.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(We.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)||We.EMPTY_VALUES.includes(t)&&We.EMPTY_VALUES.includes(this.typedValue))&&!(t===0&&this.value==="")}}$r=We,We.UNMASKED_RADIX=".",We.EMPTY_VALUES=[...je.EMPTY_VALUES,0],We.DEFAULTS={...je.DEFAULTS,mask:Number,radix:",",thousandsSeparator:"",mapToRadix:[$r.UNMASKED_RADIX],min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER,scale:2,normalizeZeros:!0,padFractionalZeros:!1,parse:Number,format:o=>o.toLocaleString("en-US",{useGrouping:!1,maximumFractionDigits:20})},ke.MaskedNumber=We;const In={MASKED:"value",UNMASKED:"unmaskedValue",TYPED:"typedValue"};function co(o,t,n){t===void 0&&(t=In.MASKED),n===void 0&&(n=In.MASKED);const r=ft(o);return l=>r.runIsolated(a=>(a[t]=l,a[n]))}function Nr(o,t,n,r){return co(t,n,r)(o)}ke.PIPE_TYPE=In,ke.createPipe=co,ke.pipe=Nr;class Ar extends Ue{get repeatFrom(){var t;return(t=Array.isArray(this.repeat)?this.repeat[0]:this.repeat===1/0?0:this.repeat)!=null?t:0}get repeatTo(){var t;return(t=Array.isArray(this.repeat)?this.repeat[1]:this.repeat)!=null?t:1/0}constructor(t){super(t)}updateOptions(t){super.updateOptions(t)}_update(t){var n,r,l;const{repeat:a,...s}=Pt(t);this._blockOpts=Object.assign({},this._blockOpts,s);const c=ft(this._blockOpts);this.repeat=(n=(r=a??c.repeat)!=null?r:this.repeat)!=null?n:1/0,super._update({mask:"m".repeat(Math.max(this.repeatTo===1/0&&((l=this._blocks)==null?void 0:l.length)||0,this.repeatFrom)),blocks:{m: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(ft(this._blockOpts)),this.mask+="m",this._blocks[this._blocks.length-1]}_appendCharRaw(t,n){n===void 0&&(n={});const r=new Ce;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,u;d=(s=this._blocks[i])!=null?s:u=!u&&this._allocateBlock(i);++i){var l,a,s,c;const f=d._appendChar(t,{...n,_beforeTailState:(c=n._beforeTailState)==null||(c=c._blocks)==null?void 0:c[i]});if(f.skip&&u){this._blocks.pop(),this.mask=this.mask.slice(1);break}if(r.aggregate(f),f.consumed)break}return r}_trimEmptyTail(t,n){var r,l;t===void 0&&(t=0);const a=Math.max(((r=this._mapPosToBlock(t))==null?void 0:r.index)||0,this.repeatFrom,0);let s;n!=null&&(s=(l=this._mapPosToBlock(n))==null?void 0:l.index),s==null&&(s=this._blocks.length-1);let 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 r=super.remove(t,n);return this._trimEmptyTail(t,n),r}totalInputPositions(t,n){return t===void 0&&(t=0),n==null&&this.repeatTo===1/0?1/0:super.totalInputPositions(t,n)}get state(){return super.state}set state(t){this._blocks.length=t._blocks.length,this.mask=this.mask.slice(0,this._blocks.length),super.state=t}}ke.RepeatBlock=Ar;try{globalThis.IMask=ke}catch{}const uo=Object.freeze(Object.defineProperty({__proto__:null,ChangeDetails:Ce,ChunksTailDetails:St,DIRECTION:fe,HTMLContenteditableMaskElement:so,HTMLInputMaskElement:_r,HTMLMaskElement:Xt,InputMask:Br,MaskElement:Tn,Masked:je,MaskedDate:ht,MaskedDynamic:Qt,MaskedEnum:en,MaskedFunction:Sr,MaskedNumber:We,MaskedPattern:Ue,MaskedRange:Jt,MaskedRegExp:Vr,PIPE_TYPE:In,PatternFixedDefinition:io,PatternInputDefinition:Zt,RepeatBlock:Ar,createMask:ft,createPipe:co,default:ke,forceDirection:Cr,normalizeOpts:Pt,pipe:Nr},Symbol.toStringTag,{value:"Module"})),Am=async o=>{try{const t=new FormData;return t.append("unique","true"),t.append("file",o),(await(await fetch("/file/upload/uploads?id=&form=&table=",{method:"POST",body:t})).json())?.result}catch(t){console.error(t)}},Fm=async(o,t,n)=>{const r=t.clipboardData?.items;if(r){const l=t.clipboardData?.getData("text/html"),a=t.clipboardData?.getData("text/plain");if(l){const{state:s,dispatch:c}=o,{tr:i}=s,d=n.fromSchema(o.state.schema),u=new DOMParser().parseFromString(l,"text/html").body,f=d.parse(u),h=i.replaceSelectionWith(f);return c(h),t.preventDefault(),!0}if(a){const{state:s,dispatch:c}=o,{tr:i}=s,d=i.insertText(a,s.selection.from,s.selection.to);return c(d),t.preventDefault(),!0}for(let s=0;s<r.length;s++){const c=r[s];if(c.type.startsWith("image/")){const i=c.getAsFile();if(i){const d=await Am(i),{schema:u}=o.state,f=u.nodes.image.create({src:d?.file_path}),h=o.state.tr.replaceSelectionWith(f);return o.dispatch(h),t.preventDefault(),!0}}}}return!1},Mm="https://esm.sh",Xe="3.7.2",Fr="3.7.2",Dm=`?deps=@tiptap/core@${Xe},@tiptap/pm@${Fr}`,Ze=o=>`${Mm}/${o}${Dm}`,Je={core:Ze(`@tiptap/core@${Xe}`),starterKit:Ze(`@tiptap/starter-kit@${Xe}`),textStyle:Ze(`@tiptap/extension-text-style@${Xe}`),table:Ze(`@tiptap/extension-table@${Xe}`),highlight:Ze(`@tiptap/extension-highlight@${Xe}`),subscript:Ze(`@tiptap/extension-subscript@${Xe}`),superscript:Ze(`@tiptap/extension-superscript@${Xe}`),link:Ze(`@tiptap/extension-link@${Xe}`),image:Ze(`@tiptap/extension-image@${Xe}`),textAlign:Ze(`@tiptap/extension-text-align@${Xe}`),heading:Ze(`@tiptap/extension-heading@${Xe}`),paragraph:Ze(`@tiptap/extension-paragraph@${Xe}`),pmModel:Ze(`@tiptap/pm@${Fr}/model`)},tn="__vs_form_tiptap_loader__",Qe=o=>import(o),Ie=(o,t)=>o?.[t]||o?.default?.[t]||o?.default?.default?.[t]||o?.default||o,Mr={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;"},Tm=o=>o.extend({addOptions(){return{...this.parent?.(),levels:[1,2,3,4,5,6]}}}).extend({addAttributes(){return{...this.parent?.(),level:{default:1,renderHTML:t=>{const n=t.level||1;return{class:`heading-level-${n}`,style:Mr[n]||Mr[1]}}}}}}),Lm=o=>o.configure({HTMLAttributes:{style:"min-height: 1rem;"}}),Im=(o,t,n,r,l)=>{const a=t.extend({renderHTML({HTMLAttributes:s}){return["div",{style:"overflow-x: auto;"},["table",s,0]]},parseHTML(){return[{tag:"div.table-wrapper table",priority:100},{tag:"table"}]}});return o.extend({addExtensions(){return[a.configure({HTMLAttributes:{class:"editor-content"},resizable:!0}),n,r,l]}})},Rm=o=>o.extend({addAttributes(){return{...this.parent?.(),fontFamily:{default:null,parseHTML:t=>t.style.fontFamily?.replace(/['"]/g,""),renderHTML:t=>t.fontFamily?{style:`font-family: ${t.fontFamily}`}:{}},fontSize:{default:null,parseHTML:t=>t.style.fontSize?.replace(/['"]/g,""),renderHTML:t=>t.fontSize?{style:`font-size: ${t.fontSize}`}:{}},color:{default:null,parseHTML:t=>t.style.color?.replace(/['"]/g,""),renderHTML:t=>t.color?{style:`color: ${t.color}`}:{}},backgroundColor:{default:null,parseHTML:t=>t.style.backgroundColor?.replace(/['"]/g,""),renderHTML:t=>!t.backgroundColor||t.backgroundColor==="transparent"?{}:{style:`background-color: ${t.backgroundColor}`}}}},addCommands(){return{setFontFamily:t=>({chain:n})=>n().setMark("textStyle",{fontFamily:t}).run(),unsetFontFamily:()=>({chain:t})=>t().setMark("textStyle",{fontFamily:null}).removeEmptyTextStyle().run(),setFontSize:t=>({chain:n})=>n().setMark("textStyle",{fontSize:t}).run(),unsetFontSize:()=>({chain:t})=>t().setMark("textStyle",{fontSize:null}).removeEmptyTextStyle().run(),setColor:t=>({chain:n})=>n().setMark("textStyle",{color:t}).run(),unsetColor:()=>({chain:t})=>t().setMark("textStyle",{color:null}).removeEmptyTextStyle().run(),setBackgroundColor:t=>({chain:n})=>n().setMark("textStyle",{backgroundColor:t}).run(),unsetBackgroundColor:()=>({chain:t})=>t().setMark("textStyle",{backgroundColor:null}).removeEmptyTextStyle().run()}}}),Om=o=>o.create({name:"iframe",group:"block",inline:!1,atom:!0,selectable:!0,addAttributes(){return{src:{default:null},width:{default:"100%"},height:{default:"280"},frameborder:{default:"0"},allow:{default:null},allowfullscreen:{default:null},referrerpolicy:{default:null},loading:{default:null},class:{default:null},title:{default:null},style:{default:null}}},parseHTML(){return[{tag:"iframe"}]},renderHTML({HTMLAttributes:t}){return["iframe",t]}});async function zm(){if(typeof window>"u")return null;const o=window;return o[tn]||(o[tn]=Promise.all([Qe(Je.core),Qe(Je.starterKit),Qe(Je.textStyle),Qe(Je.table),Qe(Je.highlight),Qe(Je.subscript),Qe(Je.superscript),Qe(Je.link),Qe(Je.image),Qe(Je.textAlign),Qe(Je.heading),Qe(Je.paragraph),Qe(Je.pmModel)]).then(([t,n,r,l,a,s,c,i,d,u,f,h,x])=>{const m=Ie(t,"Editor"),k=Ie(t,"Node"),y=Ie(t,"Extension"),v=Ie(n,"StarterKit"),b=Ie(r,"TextStyle"),w=Ie(l,"TableKit"),V=Ie(l,"Table"),O=Ie(l,"TableRow"),Y=Ie(l,"TableCell"),L=Ie(l,"TableHeader"),_=Ie(a,"Highlight"),S=Ie(s,"Subscript"),$=Ie(c,"Superscript"),B=Ie(i,"Link"),N=Ie(d,"Image"),I=Ie(u,"TextAlign"),E=Ie(f,"Heading"),M=Ie(h,"Paragraph"),D=Ie(x,"DOMParser");if(!m||!k||!v||!b||!w||!V||!O||!Y||!L||!_||!S||!$||!B||!N||!I||!E||!M||!D)throw new Error("Failed to resolve one or more Tiptap modules");return{Editor:m,Extension:y,ProseMirrorDOMParser:D,StarterKit:v,ExtendedTextStyle:Rm(b),Highlight:_,Subscript:S,Superscript:$,Link:B,Image:N,TextAlign:I,CustomHeading:Tm(E),CustomParagraph:Lm(M),CustomTableKit:Im(w,V,O,Y,L),Iframe:Om(k)}}).catch(t=>{throw delete o[tn],t})),o[tn]}function Pm(o){let t=!1;const n=e.shallowRef(null),r=e.ref(!1),l=e.ref(""),a=async(d,u="")=>{if(!d)return null;r.value=!0,l.value="";try{const f=await zm();if(!f)return null;const h=new f.Editor({element:d,content:u,extensions:[f.StarterKit.configure({history:{depth:100,newGroupDelay:500},code:{HTMLAttributes:{class:"editor-code"}},codeBlock:{HTMLAttributes:{class:"editor-codeblock"}},paragraph:!1,heading:!1,link:!1}),f.Superscript,f.Subscript,f.ExtendedTextStyle,f.CustomParagraph,f.CustomHeading,f.Highlight,f.Image.configure({inline:!0,allowBase64:!0,HTMLAttributes:{class:"editor-image"}}),f.TextAlign.configure({types:["heading","paragraph"]}),f.Link.configure({HTMLAttributes:{class:"editor-link"},openOnClick:!1,autolink:!0}),f.CustomTableKit,f.Iframe],editorProps:{handlePaste:(x,m)=>Fm(x,m,f.ProseMirrorDOMParser),handleKeyDown:(x,m)=>{if(m.key==="Tab"){const k=x.state,{$anchor:y}=k.selection;let v=!1;for(let b=y.depth;b>0;b--){const w=y.node(b);if(w&&(w.type.name==="bulletList"||w.type.name==="orderedList")){v=!0;break}}return v?!1:(m.preventDefault(),!0)}return!1}}});return n.value=e.markRaw(h),h}catch(f){return l.value="Failed to load rich text editor dependencies.",console.error("Failed to initialize rich text editor",f),null}finally{r.value=!1}},s=e.computed(()=>n.value||null);return e.watch(n,d=>{d&&n.value.on("update",u=>{if(!t){t=!0;const f=u.editor.getHTML();o.modelValue,setTimeout(()=>{t=!1},10)}})}),{editor:n,editorInstance:s,focusEditor:()=>{n.value&&!n.value.isFocused&&n.value.commands.focus()},createEditor:a,destroyEditor:()=>{n.value&&(n.value.destroy(),n.value=null)},isLoading:r,loadError:l}}function jm(o,t,n,{toEditorContent:r,toSourceContent:l}={}){const a=e.ref(!1),s=e.ref(""),c=e.ref(null);return{isHtmlMode:a,htmlContent:s,htmlTextarea:c,toggleHtmlMode:async u=>{if(a.value=u,u)o.value&&(s.value=l?await l(o.value.getHTML(),t):o.value.getHTML()),e.nextTick(()=>{c.value&&c.value.focus?.()});else if(o.value){const f=r?await r(s.value,t):s.value;o.value.commands.setContent(f,!0),e.nextTick(()=>{o.value?.commands?.focus?.()})}},onHtmlInput:u=>{s.value=u,n&&n("update:modelValue",u)}}}function Um(){const o=e.ref(!1);return{isFullscreen:o,toggleFullscreen:()=>{o.value=!o.value}}}const $t=o=>o.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),nn=o=>{let t=$t(o||"");return t=t.replace(/!\[([^\]]*)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(n,r,l,a)=>{const s=a?` title="${$t(a)}"`:"";return`<img src="${$t(l)}" alt="${$t(r)}"${s}>`}),t=t.replace(/\[([^\]]+)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(n,r,l,a)=>{const s=a?` title="${$t(a)}"`:"";return`<a href="${$t(l)}"${s} target="_blank" rel="noopener noreferrer">${r}</a>`}),t=t.replace(/`([^`]+)`/g,"<code>$1</code>"),t=t.replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>"),t=t.replace(/__([^_]+)__/g,"<strong>$1</strong>"),t=t.replace(/~~([^~]+)~~/g,"<del>$1</del>"),t=t.replace(/\*([^*\n]+)\*/g,"<em>$1</em>"),t=t.replace(/_([^_\n]+)_/g,"<em>$1</em>"),t},on=o=>/^\s*\d+\.\s+/.test(o),po=o=>/^\s*[-*+]\s+/.test(o),Dr=o=>/^\s*[-*+]\s+\[[ xX]\]\s+/.test(o),fo=o=>/^\s*>\s?/.test(o),mo=o=>/^\s*\|?(?:\s*:?-{3,}:?\s*\|)+\s*:?-{3,}:?\s*\|?\s*$/.test(o),Tr=o=>o.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(t=>nn(t.trim())),Hm=(o,t)=>{const n=o[t],r=o[t+1];if(!n||!r||!n.includes("|")||!mo(r))return null;const l=Tr(n),a=[];let s=t+2;for(;s<o.length&&o[s].includes("|")&&o[s].trim()!=="";){const d=Tr(o[s]);a.push(`<tr>${d.map(u=>`<td>${u}</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}},qm=(o,t)=>{const n=on(o[t]),r=n?"ol":"ul",l=[];let a=t;for(;a<o.length;){const s=o[a];if(s.trim()===""||!(n?on(s):(po(s)||Dr(s))&&!on(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":""}> ${nn(i[2])}</li>`)}else{const d=s.replace(/^\s*(?:[-*+]|\d+\.)\s+/,"");l.push(`<li>${nn(d)}</li>`)}a+=1}return{html:`<${r}>${l.join("")}</${r}>`,nextIndex:a}},Km=(o,t)=>{const r=o[t].replace(/^```/,"").trim(),l=[];let a=t+1;for(;a<o.length&&!o[a].startsWith("```");)l.push(o[a]),a+=1;return{html:`<pre><code${r?` class="language-${$t(r)}"`:""}>${$t(l.join(`
|
|
6
|
-
`))}</code></pre>`,nextIndex:a<o.length?a+1:a}},
|
|
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 ie=!1,ge=!1;const Q=e.reactive({}),de=e.ref([]),he=e.computed(()=>de.value.map(f=>Q[f]).filter(Boolean)),Be=e.ref(null),$e=e.computed(()=>Be.value?.entries??[]),Re=e.computed(()=>{if(Be.value)return{left:`${Be.value.point.x+12}px`,top:`${Be.value.point.y+12}px`}}),Ae=e.computed(()=>{if(Array.isArray(n.tools)&&n.tools.length)return n.tools;const f=l?.tools;return Array.isArray(f)?f.map(b=>String(b)):typeof f=="string"?f.split(",").map(b=>b.trim()).filter(Boolean):[]}),Ce=e.computed(()=>{const f={search:!1,import:!1,export:!1,point:!1,line:!1,polygon:!1,rectangle:!1,ruler:!1};if(!Ae.value.length)return{...f,import:!0,export:!0,point:!0,line:!0,polygon:!0,rectangle:!0};const b=new Set(Ae.value.map(_=>_.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 Ve(f){if(typeof f!="string"||!f.trim())return"";if(/^https?:\/\//i.test(f))return f;const b=window?.location?.origin??"",_=f.replace(/^\/+/,"");return _?b?`${b}/${_}`:`/${_}`:b}function Se(){const f=Array.isArray(w.basemaps)&&w.basemaps.length?w.basemaps:x.basemaps;if(Array.isArray(f)&&f.length){const _=f.map((A,T)=>{const Y=String(A?.key??A?.id??A?.name??`b${T}`),ae=Ve(String(A?.url??""));if(!ae)return null;const ue=typeof A?.preview=="string"&&A.preview?Ve(A.preview):"";return[Y,{...A,url:ae,preview:ue}]}).filter(A=>Array.isArray(A)&&A.length===2).reduce((A,[T,Y])=>(A[T]=Y,A),{});if(Object.keys(_).length)return _}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 Ne=Se(),Le=Object.keys(Ne),Ie=e.ref(Le.length?Le[0]:"");async function Qe(){if(typeof window>"u")return null;const f=window;if(f[Cn])return f[Cn];const b=Y=>{if(Array.from(document.styleSheets).some(De=>De?.href?.includes(Y)))return;const ue=document.createElement("link");ue.rel="stylesheet",ue.href=Y,document.head.appendChild(ue)},_=async()=>{const Y=new Function("u","return import(u)"),ae=await Y("https://esm.sh/maplibre-gl@3.6.2"),ue=ae?.default??ae;if(!ue)throw new Error("maplibre esm fallback failed");window.maplibregl=ue,window.mapboxgl=ue;const De=await Y("https://esm.sh/@mapbox/mapbox-gl-draw@1.5.0"),nt=De?.default??De;if(!nt)throw new Error("mapbox draw esm fallback failed");window.MapboxDraw=nt},T=(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 _();const Y=window.maplibregl,ae=window.MapboxDraw;if(!Y)throw new Error("maplibregl not available after load");if(!ae)throw new Error("MapboxDraw not available after load");return{maplibregl:Y,MapboxDraw:ae}})().catch(Y=>{throw delete f[Cn],Y});return f[Cn]=T,T}function U(f){return{version:8,sources:{rasterSource:{type:"raster",tiles:[f],tileSize:256}},layers:[{id:"rasterLayer",type:"raster",source:"rasterSource"}]}}let J=null,re=null,I=null,W=null,_e=[],O=null,j=null,q=null,M=!1,K=!1,te=!1,se=null;function ve(){return{onSetup(){const f=this.newFeature({type:"Feature",properties:{},geometry:{type:"Polygon",coordinates:[[[0,0],[0,0],[0,0],[0,0],[0,0]]]}});return this.addFeature(f),this.clearSelectedFeatures(),this.updateUIClasses({mouse:"add"}),this.setActionableState({trash:!0}),{rectangle:f,startPoint:null,hasCoordinates:!1}},onMouseMove(f,b){if(!f.startPoint)return;const[_,A]=f.startPoint,T=b.lngLat.lng,Y=b.lngLat.lat;f.rectangle.setCoordinates([[[_,A],[T,A],[T,Y],[_,Y],[_,A]]])},onClick(f,b){if(!f.startPoint){f.startPoint=[b.lngLat.lng,b.lngLat.lat],f.hasCoordinates=!0,f.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[_,A]=f.startPoint,T=b.lngLat.lng,Y=b.lngLat.lat;return Math.abs(_-T)>0&&Math.abs(A-Y)>0?(f.rectangle.setCoordinates([[[_,A],[T,A],[T,Y],[_,Y],[_,A]]]),this.map.fire("draw.create",{features:[f.rectangle.toGeoJSON()]}),this.changeMode("simple_select",{featureIds:[f.rectangle.id]})):(this.deleteFeature([f.rectangle.id],{silent:!0}),f.hasCoordinates=!1,this.changeMode("simple_select"))},onStop(){},onTrash(f){this.deleteFeature([f.rectangle.id],{silent:!0}),this.changeMode("simple_select")},toDisplayFeatures(f,b,_){const A=b.properties.id===f.rectangle.id;A&&!f.hasCoordinates||(b.properties.active=A?"true":"false",_(b))}}}const et=[{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 We(){const f=Ie.value;return!f||!Ne[f]?.url?"":Ne[f].url}function vt(f,b){return f?.id?String(f.id):f?.url?`${f.url}-${b}`:`layer-${b}`}function He(f){const b=String(f?.url??"").trim();if(!b)return"";if(/^https?:\/\//i.test(b))return b;const _=window.location?.origin??"",A=b.replace(/^\/+/,"");return`${_}/${A}`}function qe(f){f&&Be.value?.layerId!==f||(Be.value=null)}function gt(f,b={}){return f.popup===!1?[]:Array.isArray(f.popup)?f.popup.length?f.popup.map(_=>{const A=_?.field||_?.name;if(!A)return null;const T=b[A];return T==null||T===""?null:{key:_.label||A,value:String(T)}}).filter(Boolean):[]:Object.entries(b).slice(0,5).map(([_,A])=>({key:_,value:A==null?"—":String(A)}))}function ct(f){if(!Array.isArray(f))return[];const b=A=>Array.isArray(A)&&A.length>=2&&Number.isFinite(Number(A[0]))&&Number.isFinite(Number(A[1])),_=A=>{if(!A.length)return A;const T=A[0],Y=A[A.length-1];return!Y||T[0]!==Y[0]||T[1]!==Y[1]?[...A,T]:A};if(f.length&&b(f[0])){const A=f.map(T=>[Number(T[0]),Number(T[1])]).filter(b);return A.length?[_(A)]:[]}return f.length&&Array.isArray(f[0])&&b(f[0][0])?f.map(T=>Array.isArray(T)?T.map(Y=>[Number(Y[0]),Number(Y[1])]):[]).filter(T=>T.length).map(_):f.length&&Array.isArray(f[0])&&Array.isArray(f[0][0])&&b(f[0][0][0])?f.flatMap(T=>Array.isArray(T)?T:[]).map(T=>Array.isArray(T)?T.map(Y=>[Number(Y[0]),Number(Y[1])]):[]).filter(T=>T.length).map(_):[]}function Ht(f){const b=f.style??{},_=b.color??"#3b82f6";if(!b.colorAttr||!b.colorSet)return _;const A=Object.keys(b.colorSet);if(!A.length)return _;const T=["match",["to-string",["get",b.colorAttr]]];return A.forEach(Y=>{T.push(String(Y),b.colorSet?.[Y]??_)}),T.push(_),T}function Ft(f){if(!I)return;f.handlers.forEach(_=>{try{I.off(_.type,_.layerId,_.handler)}catch{}}),f.handlers=[],[...f.layerIds,...f.boundsIds].forEach(_=>{I.getLayer(_)&&I.removeLayer(_)}),I.getSource(f.sourceId)&&I.removeSource(f.sourceId);const b=`vs-ov-bounds-src-${f.id}`;I.getSource(b)&&I.removeSource(b),qe(f.id)}function sn(f,b){if(!I)return[];const _=`vs-ov-bounds-src-${b}`,A=`vs-ov-bounds-line-${b}`,T=f.bounds??$.value??G.value,Y=ct(T);if(!Y.length)return[];const ae={type:"FeatureCollection",features:Y.map(ue=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:ue}}))};return I.getSource(_)&&I.removeSource(_),I.addSource(_,{type:"geojson",data:ae}),I.addLayer({id:A,type:"line",source:_,paint:{"line-color":f.style?.stroke??f.style?.color??"#2563eb","line-width":f.style?.width??2,"line-opacity":f.style?.opacity??.8,"line-dasharray":[2,2]}}),[A]}function yt(f){if(!I)return;Ft(f);const b=f.config,_=He(b);if(!_)return;const A=[],T=[];if(/\.v(?:m)?t(?:\?|$)/i.test(_)||/\.pbf(?:\?|$)/i.test(_)){const ue=b.sourceLayer||b.layer||b.service_layer||b.dataset?.layer||b.id;I.addSource(f.sourceId,{type:"vector",tiles:[_]});const De=String(b.style?.type??"polygon").toLowerCase(),nt=Ht(b),pt=b.style?.opacity??.5;if(De==="point"){const kt=`vs-ov-point-${f.id}`;I.addLayer({id:kt,type:"circle",source:f.sourceId,"source-layer":ue,paint:{"circle-color":nt,"circle-radius":5,"circle-opacity":pt}}),A.push(kt)}else if(De==="polyline"||De==="line"){const kt=`vs-ov-line-${f.id}`;I.addLayer({id:kt,type:"line",source:f.sourceId,"source-layer":ue,layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":nt,"line-width":b.style?.width??2,"line-opacity":pt}}),A.push(kt)}else{const kt=`vs-ov-fill-${f.id}`,pn=`vs-ov-border-${f.id}`;I.addLayer({id:kt,type:"fill",source:f.sourceId,"source-layer":ue,paint:{"fill-color":nt,"fill-opacity":pt}}),I.addLayer({id:pn,type:"line",source:f.sourceId,"source-layer":ue,paint:{"line-color":b.style?.stroke??b.style?.color??"#2563eb","line-width":b.style?.width??1,"line-opacity":pt}}),A.push(kt,pn)}}else{I.addSource(f.sourceId,{type:"raster",tiles:[_],tileSize:256});const ue=`vs-ov-raster-${f.id}`;I.addLayer({id:ue,type:"raster",source:f.sourceId,paint:{"raster-opacity":b.style?.opacity??1}}),A.push(ue)}A.forEach(ue=>{const De=pt=>{if(!pt?.features?.length){qe(f.id);return}const kt=pt.features[0]?.properties??{},pn=gt(f.config,kt);if(!pn.length){qe(f.id);return}Be.value={layerId:f.id,entries:pn,point:{x:pt.point.x,y:pt.point.y}}},nt=()=>qe(f.id);I.on("mousemove",ue,De),I.on("mouseleave",ue,nt),T.push({layerId:ue,type:"mousemove",handler:De},{layerId:ue,type:"mouseleave",handler:nt})}),f.layerIds=A,f.boundsIds=sn(f.config,f.id),f.handlers=T;const ae=f.visible?"visible":"none";[...f.layerIds,...f.boundsIds].forEach(ue=>{I.getLayer(ue)&&I.setLayoutProperty(ue,"visibility",ae)})}function Pt(){if(!I)return;const b={type:"FeatureCollection",features:ct($.value??G.value).map(_=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:_}}))};I.getSource(vn)?I.getSource(vn).setData(b):I.addSource(vn,{type:"geojson",data:b}),I.getLayer(En)||I.addLayer({id:En,type:"line",source:vn,paint:{"line-color":"#2563eb","line-width":2,"line-opacity":.8,"line-dasharray":[2,2]}})}function xo(f){if(!I||s.value)return;const b=Q[f];if(!b)return;b.visible=!b.visible;const _=b.visible?"visible":"none";[...b.layerIds,...b.boundsIds].forEach(A=>{I.getLayer(A)&&I.setLayoutProperty(A,"visibility",_)}),Et(),b.visible||qe(f)}function Et(){if(!I)return;const f=[],b=[],_=[],A=[];de.value.forEach(ae=>{const ue=Q[ae];if(!ue)return;const De=String(ue.config?.url??""),nt=/\.v(?:m)?t(?:\?|$)/i.test(De),pt=/\.png(?:\?|$)/i.test(De);nt?_.push(...ue.layerIds):pt?f.push(...ue.layerIds):b.push(...ue.layerIds),A.push(...ue.boundsIds)}),[...f,...b,..._,...A].forEach(ae=>{I.getLayer(ae)&&I.moveLayer(ae)}),I.getLayer(En)&&I.moveLayer(En),(I.getStyle?.()?.layers??[]).map(ae=>String(ae?.id??"")).filter(ae=>ae.startsWith("gl-draw-")).forEach(ae=>{I.getLayer(ae)&&I.moveLayer(ae)})}function wo(f){if(!Ne[f]||(Ie.value=f,!I))return;const b=We();if(!b)return;const _=I.getCenter?.(),A=I.getZoom?.(),T=W?.getAll?.();I.setStyle(U(b)),I.once("style.load",()=>{if(I&&(_&&Number.isFinite(A)&&I.jumpTo({center:[_.lng,_.lat],zoom:A}),Pt(),de.value.forEach(Y=>{const ae=Q[Y];ae&&yt(ae)}),Et(),T?.features?.length&&W))try{T.features.forEach(Y=>W.add(Y)),d.value=T.features.length}catch{d.value=0}})}function qt(f){return{type:"Feature",properties:{},geometry:f}}function lt(f){if(!f)return null;try{return JSON.parse(JSON.stringify(f))}catch{return null}}function cn(f){if(!f)return null;const b=lt(f.geometry);return b?{...f.id!==void 0?{id:f.id}:{},type:"Feature",properties:{...f.properties??{}},geometry:b}:null}function Dt(f){if(!f)return[];const b=(T,Y)=>{if(!T?.type)return[];const ae={...Y??{}};return T.type==="MultiPoint"&&Array.isArray(T.coordinates)?T.coordinates.map(ue=>qt({type:"Point",coordinates:ue})).map(ue=>({...ue,properties:ae})):T.type==="MultiLineString"&&Array.isArray(T.coordinates)?T.coordinates.map(ue=>qt({type:"LineString",coordinates:ue})).map(ue=>({...ue,properties:ae})):T.type==="MultiPolygon"&&Array.isArray(T.coordinates)?T.coordinates.map(ue=>qt({type:"Polygon",coordinates:ue})).map(ue=>({...ue,properties:ae})):T.type==="GeometryCollection"&&Array.isArray(T.geometries)?T.geometries.flatMap(ue=>b(ue,ae)):[{type:"Feature",properties:ae,geometry:lt(T)}]},_=T=>{if(!T)return null;if(T.type==="Feature"){const Y=cn(T);return Y?b(Y.geometry,Y.properties):null}return T.geom?.type&&Array.isArray(T.geom.coordinates)?b({type:T.geom.type,coordinates:T.geom.coordinates},T.properties??{}):T.type==="GeometryCollection"&&Array.isArray(T.geometries)?b(T,T.properties??{}):typeof T.type=="string"&&Array.isArray(T.coordinates)?b(lt(T),T.properties??{}):null};if(f.type==="FeatureCollection")return(f.features??[]).flatMap(_).filter(Boolean);if(Array.isArray(f))return f.flatMap(T=>T?.type==="FeatureCollection"?Dt(T):[_(T)]).flat().filter(Boolean);const A=_(f);return A?Array.isArray(A)?A:[A]:[]}function P(f){if(!f.length)return null;if(!a.value)return lt(f[0]?.geometry??null);const b=f.map(Y=>lt(Y?.geometry)).filter(Boolean);return b.every(Y=>Y?.type==="Point")?{type:"MultiPoint",coordinates:b.map(Y=>Y.coordinates)}:b.every(Y=>Y?.type==="LineString")?{type:"MultiLineString",coordinates:b.map(Y=>Y.coordinates)}:b.every(Y=>Y?.type==="Polygon")?{type:"MultiPolygon",coordinates:b.map(Y=>Y.coordinates)}:{type:"GeometryCollection",geometries:b}}function oe(f){if(!f)return"__null__";try{return JSON.stringify(f)}catch{return"__invalid__"}}function ce(f,b){if(!Array.isArray(f)||!Array.isArray(b)||f.length<2||b.length<2)return!1;const _=1e-12;return Math.abs(Number(f[0])-Number(b[0]))<_&&Math.abs(Number(f[1])-Number(b[1]))<_}function Ee(f,b){if(!Array.isArray(f)||f.length<4)return null;const A=ce(f[0],f[f.length-1])?f.slice(0,-1):f.slice();return!Number.isInteger(b)||b<0||b>=A.length||A.length<=3||(A.splice(b,1),A.length<3)?null:[...A,[...A[0]]]}function Me(f,b){if(!Array.isArray(f)||f.length<2||!Number.isInteger(b)||b<0||b>=f.length||f.length<=2)return null;const _=f.slice();return _.splice(b,1),_.length<2?null:_}function Ue(f,b){const _=lt(f);if(!_||!Array.isArray(b))return null;if(_.type==="LineString"){const[A]=b,T=Me(_.coordinates,A);return T?(_.coordinates=T,_):null}if(_.type==="MultiLineString"){const[A,T]=b,Y=_.coordinates?.[A],ae=Me(Y,T);return ae?(_.coordinates[A]=ae,_):null}if(_.type==="Polygon"){const[A,T]=b,Y=_.coordinates?.[A],ae=Ee(Y,T);return ae?(_.coordinates[A]=ae,_):null}if(_.type==="MultiPolygon"){const[A,T,Y]=b,ae=_.coordinates?.[A]?.[T],ue=Ee(ae,Y);return ue?(_.coordinates[A][T]=ue,_):null}return null}function Fe(f){return f?f.split(".").map(b=>Number(b)).filter(b=>Number.isInteger(b)&&b>=0):[]}function tt(f){return!W||!f?null:typeof W.get=="function"?W.get(f)??null:W.getAll?.()?.features?.find(_=>String(_?.id??"")===f)??null}function dt(f){const b=f?.properties?.id??f?.id;return b==null||b===""?null:String(b)}function ut(f){if(!I||!f)return null;const b=[[f.x-8,f.y-8],[f.x+8,f.y+8]],A=I.queryRenderedFeatures(b).find(T=>{const Y=String(T?.properties?.meta??"");return Y&&Y!=="feature"?!1:!!dt(T)});return dt(A)}function bt(f,b){if(!W||!f||!b.length)return;const _=tt(f);if(!_?.geometry)return;const A=Ue(_.geometry,b);if(!A)return;const T={..._,id:_.id??f,geometry:A};ge=!0,ie=!0;try{W.delete(f),W.add(T)}finally{ie=!1,ge=!1}Tt(),Bt()}function at(f){if(!I||!W||s.value||g.isRulerActive.value||u.value!=="edit")return;const b=f?.point;if(!b)return;const _=[[b.x-8,b.y-8],[b.x+8,b.y+8]],T=I.queryRenderedFeatures(_).find(ae=>ae?.properties?.meta==="vertex"&&ae?.properties?.parent&&ae?.properties?.coord_path);if(!T)return;f?.originalEvent?.preventDefault?.(),f?.originalEvent?.stopPropagation?.();const Y=Fe(String(T.properties.coord_path));Y.length&&bt(String(T.properties.parent),Y)}function dn(f){const b=Xr(f);if(!b)return null;const[[_,A],[T,Y]]=b;return{lat:(A+Y)/2,lng:(_+T)/2}}function Wr(f){if(!Array.isArray(f)||f.length<3)return 0;const b=(A,T)=>{const Y=A*2003750834e-2/180,ae=Math.log(Math.tan((90+T)*Math.PI/360))/(Math.PI/180);return[Y,ae*2003750834e-2/180]};let _=0;for(let A=0;A<f.length-1;A+=1){const[T,Y]=b(Number(f[A][0]),Number(f[A][1])),[ae,ue]=b(Number(f[A+1][0]),Number(f[A+1][1]));_+=T*ue-ae*Y}return Math.abs(_/2)/1e6}function g0(f){if(!f?.type||!f?.coordinates)return null;if(f.type==="Polygon"){const b=f.coordinates?.[0];return Array.isArray(b)?Wr(b):null}return f.type==="MultiPolygon"?f.coordinates.reduce((b,_)=>{const A=_?.[0];return Array.isArray(A)?b+Wr(A):b},0):null}function _o(f){if(!f){p.value=null;return}const b=dn(f);if(!b){p.value=null;return}p.value={type:String(f.type??"Feature"),center:b,areaKm2:g0(f)}}function Co(f){if(!f){const A=_e[_e.length-1],T=lt(A?.geometry??null);O=T,_o(T);return}const b=_e.find(A=>String(A?.id??"")===String(f))??null,_=lt(b?.geometry??null);O=_,_o(_)}function vo(f){h.value=(f??[]).map((b,_)=>{const A=String(b?.id??`feature-${_+1}`),T=Gr(String(b?.geometry?.type??"Feature"));return{id:A,label:`${T} ${_+1}`}})}function Gr(f){switch(String(f)){case"Point":return"Точка";case"MultiPoint":return"Мультиточка";case"LineString":return"Лінія";case"MultiLineString":return"Мультилінія";case"Polygon":return"Полігон";case"MultiPolygon":return"Мультиполігон";case"GeometryCollection":return"Колекція геометрій";default:return String(f||"Невідомо")}}function Yr(f,b){if(!Array.isArray(f)||!Array.isArray(b)||f.length!==2||b.length!==2)return!1;const _=1e-9;return Math.abs(Number(f[0])-Number(b[0]))<_&&Math.abs(Number(f[1])-Number(b[1]))<_}function Xr(f){if(!f)return null;let b=1/0,_=1/0,A=-1/0,T=-1/0;const Y=ae=>{if(Array.isArray(ae)){if(ae.length>=2&&Number.isFinite(ae[0])&&Number.isFinite(ae[1])){const ue=Number(ae[0]),De=Number(ae[1]);b=Math.min(b,ue),_=Math.min(_,De),A=Math.max(A,ue),T=Math.max(T,De);return}ae.forEach(Y)}};return Y(f.coordinates),!Number.isFinite(b)||!Number.isFinite(_)?null:[[b,_],[A,T]]}function Zr(f){if(!I||!f)return;const b=Xr(f);if(!b)return;const[[_,A],[T,Y]]=b;if(_===T&&A===Y){I.easeTo({center:[_,A],zoom:Math.max(B.value,14)});return}I.fitBounds(b,{padding:30,duration:250,maxZoom:18})}function Eo(){if(!W){d.value=0;return}const f=W.getAll();d.value=f?.features?.length??0}function un(){if(!W)return null;const b=W.getAll?.()?.features??[],_=Y=>!!Y&&b.some(ae=>String(ae?.id??"")===String(Y??"")),A=W.getSelectedIds?.();if(Array.isArray(A)&&A.length>0){const Y=A[0];return Y!=null?String(Y):null}if(_(q))return String(q);if(!b.length)return null;const T=a.value?b[b.length-1]:b[0];return T?.id!==void 0&&T?.id!==null?String(T.id):null}function Tt(){if(!W)return;const f=W.getAll();if(d.value=f?.features?.length??0,!f?.features?.length){_e=[],h.value=[],O=null,q=null,p.value=null,ie||(j="__null__",r("update:modelValue",null));return}const b=(f.features??[]).map(cn).filter(Boolean);if(_e=b,vo(b),q=un(),Co(q),!ie){const _=P(b);j=oe(_),r("update:modelValue",_)}}function jn(){if(!W)return;(W.getAll()?.features||[]).forEach(b=>W.delete(b.id)),h.value=[],Eo()}function Un(f){if(!W)return;const b=Dt(f),_=a.value?b:b.slice(0,1);ie=!0,jn(),_.forEach(Y=>{try{W.add(Y)}catch{}}),ie=!1,_e=(W.getAll?.()?.features??_).map(cn).filter(Boolean),vo(_e),q=null;const T=lt(_e[_e.length-1]?.geometry??null);O=lt(T),Eo(),_o(T),T&&(Zr(T),s.value||Bt())}function y0(){W&&(ie=!0,jn(),_e.forEach(f=>{try{W.add(f)}catch{}}),ie=!1,vo(_e),Eo(),Co(q))}function Kt(){if(W){try{W.changeMode("simple_select",{featureIds:[]})}catch{}u.value=""}}function Hn(f){if(s.value||!W)return;g.isRulerActive.value&&g.closeRuler(),te=!0,Kt(),u.value=f;const b=f==="marker"?"draw_point":f==="polyline"?"draw_line_string":f==="rectangle"?"draw_rectangle":"draw_polygon";a.value||(ie=!0,jn(),ie=!1);try{W.changeMode(b)}catch{u.value=""}finally{requestAnimationFrame(()=>{te=!1})}}function Bt(f){if(s.value||!W||!W.getAll()?.features?.length)return;const _=f||un();if(_)try{W.changeMode("direct_select",{featureId:_}),q=_,Co(q),u.value="edit"}catch{u.value=""}}function b0(f){s.value||!W||!f||Bt(f)}function k0(){if(!(s.value||!W)){if(a.value){const f=un();if(f)try{M=!0,W.delete(f),M=!1,Tt();const b=un();b?Bt(b):Kt();return}catch{M=!1}}Kt(),jn(),_e=[],h.value=[],q=null,j="__null__",p.value=null,r("update:modelValue",null)}}function x0(){s.value||!O||Zr(O)}function w0(f){if(!I||!J)return;const b=[f[1],f[0]];se||(se=new J.Marker({color:"#2563eb"})),se.setLngLat(b).addTo(I),I.easeTo({center:b,zoom:13,duration:250})}function _0(){s.value||D.value?.click()}function C0(){s.value||(ee.value=!ee.value)}function Jr(f){if(!ee.value)return;const b=Z.value;b&&!b.contains(f.target)&&(ee.value=!1)}function v0(){ee.value=!1,_0()}function E0(){s.value||(we.value=[],ee.value=!1,le.value=!0)}function B0(){le.value=!1,we.value=[]}function V0(){if(s.value||!W)return;const f=kc(me.value.coordinates??"",me.value.format||"decimal",me.value.order||"lat-lon");if(!f.ok){we.value=f.errors,S0(f.errors);return}we.value=[],Un({type:"Polygon",coordinates:[f.ring]}),Tt(),le.value=!1,f.wasClosedAutomatically&&fe.notify({type:"info",title:"Імпорт координат",message:"Полігон був автоматично замкнений (перша і остання точки різнилися)."})}function S0(f){if(!f.length)return;const b=5;f.slice(0,b).forEach(_=>{const A=_.line>0?`Рядок ${_.line}`:"Загальна помилка";fe.notify({type:"warning",title:"Імпорт координат",message:`${A} — ${_.message}`})}),f.length>b&&fe.notify({type:"warning",title:"Імпорт координат",message:`Ще помилок: ${f.length-b}`})}function $0(f){if(s.value||!W)return;ee.value=!1;const b=f.target,_=b.files?.[0];if(!_)return;const A=new FileReader;A.onload=()=>{try{const T=JSON.parse(String(A.result));if(!Dt(T).length){fe.notify({type:"warning",title:"Імпорт файлу",message:"Файл не містить коректний GeoJSON-обʼєкт."});return}Un(T),Tt()}catch{fe.notify({type:"error",title:"Імпорт файлу",message:"Не вдалося прочитати файл. Перевірте формат GeoJSON/JSON."})}finally{b.value=""}},A.onerror=()=>{fe.notify({type:"error",title:"Імпорт файлу",message:"Помилка читання файлу."}),b.value=""},A.readAsText(_)}function N0(){if(s.value||!W)return;const f=W.getAll(),b=new Blob([JSON.stringify(f,null,2)],{type:"application/json"}),_=URL.createObjectURL(b),A=document.createElement("a");A.href=_,A.download="data.geojson",A.click(),URL.revokeObjectURL(_)}return e.onMounted(async()=>{if(window.addEventListener("click",Jr,!0),!c.value)return;const f=await Qe();J=f.maplibregl,re=f.MapboxDraw;const b=We();b&&(I=new J.Map({container:c.value,style:U(b),center:[R.value[0],R.value[1]],zoom:B.value,attributionControl:!1}),k.value=I,I.addControl(new J.NavigationControl({showCompass:!0}),"bottom-right"),I.on("load",()=>{if(!(!re||!I)){if(W=new re({displayControlsDefault:!1,modes:{...re.modes,draw_rectangle:ve()},controls:{point:!1,line_string:!1,polygon:!1,trash:!1},styles:et}),I.addControl(W),I.on("click",_=>{if(g.isRulerActive.value){const T=_?.lngLat;if(!T)return;m.value?.addPoint?.({lat:T.lat,lng:T.lng});return}if(!W||s.value||u.value!=="edit")return;const A=ut(_?.point);!A||A===q||requestAnimationFrame(()=>{!W||s.value||Bt(A)})}),I.on("draw.create",()=>{if(W&&!g.isRulerActive.value){if(!a.value){const _=W.getAll();if(_.features.length>1){const A=_.features[_.features.length-1];ie=!0,_.features.slice(0,-1).forEach(T=>W.delete(T.id)),ie=!1,A&&(ie=!0,W.add(A),ie=!1)}}Tt(),Bt()}}),I.on("draw.update",_=>{if(K||g.isRulerActive.value)return;const A=Array.isArray(_?.features)?_.features:[],T=_?.action==="move"&&A.length>0&&A.every(Y=>Y?.geometry?.type==="Point");if(_?.action==="move"){if(T){Tt();return}if(K=!0,y0(),K=!1,u.value==="edit"){const Y=un(),ae=Y?tt(Y):W?.getAll?.()?.features?.[0];if(ae?.id)try{W.changeMode("direct_select",{featureId:ae.id}),q=String(ae.id)}catch{u.value=""}}return}Tt()}),I.on("draw.delete",()=>{ge||M||g.isRulerActive.value||u.value==="marker"||u.value==="polyline"||u.value==="polygon"||u.value==="rectangle"||(Tt(),W?.getAll?.()?.features?.length||(q=null),u.value="",Kt())}),I.on("draw.selectionchange",_=>{if(!W||K||g.isRulerActive.value||u.value==="marker"||u.value==="polyline"||u.value==="polygon"||u.value==="rectangle")return;const A=_?.features?.[0]?.id!==void 0&&_?.features?.[0]?.id!==null?String(_.features[0].id):null;if(!s.value&&A){if(u.value==="edit"&&q===A)return;requestAnimationFrame(()=>{!W||s.value||Bt(A)});return}const T=W.getSelectedIds?.(),Y=Array.isArray(T)&&T.length>0?String(T[0]):null;if(!s.value&&Y){if(u.value==="edit"&&q===Y)return;requestAnimationFrame(()=>{!W||s.value||Bt(Y)});return}try{W.changeMode("simple_select",{featureIds:[]})}catch{}}),F.value!==void 0){const _=F.value;F.value=void 0,requestAnimationFrame(()=>{W&&Un(_)})}Pt(),de.value.forEach(_=>{const A=Q[_];A&&yt(A)}),Et()}}),I.on("contextmenu",at),I.on("zoomend",()=>{I&&(B.value=I.getZoom())}))}),e.onUnmounted(()=>{g.isRulerActive.value&&g.closeRuler(),window.removeEventListener("click",Jr,!0),Object.values(Q).forEach(f=>{I&&Ft(f)}),qe(),se?.remove&&se.remove(),se=null,I?.remove&&I.remove(),I=null,W=null,k.value=null}),e.watch(()=>n.modelValue,f=>{if(!W){F.value=f;return}const b=P((a.value?Dt(f):Dt(f).slice(0,1))||[]),_=oe(b);if(j&&_===j){j=null;return}j=null,Un(f)},{deep:!0}),e.watch(()=>v.value,f=>{const b=Array.isArray(f)?f:[],_=[],A=new Set;b.forEach((T,Y)=>{if(!T)return;const ae=vt(T,Y);_.push(ae),A.add(ae);const ue={...T,id:ae},De=Q[ae],nt=De?.visible??!!ue.visible;De&&I&&Ft(De),Q[ae]={id:ae,config:ue,visible:nt,sourceId:`vs-ov-src-${ae}`,layerIds:[],boundsIds:[],handlers:[]}}),Object.keys(Q).forEach(T=>{if(A.has(T))return;const Y=Q[T];Y&&I&&Ft(Y),delete Q[T]}),de.value=_,I&&(de.value.forEach(T=>{const Y=Q[T];Y&&yt(Y)}),Et())},{immediate:!0,deep:!0}),e.watch(()=>$.value,()=>{I&&(Pt(),de.value.forEach(f=>{const b=Q[f];b&&yt(b)}),Et())},{deep:!0}),e.watch(()=>N.value,async f=>{if(G.value=[],!f){I&&(Pt(),de.value.forEach(b=>{const _=Q[b];_&&yt(_)}),Et());return}try{const b=await fetch(`https://data.gki.com.ua/api-user/atu/${f}`);if(!b?.ok)return;const A=(await b.json())?.geometry?.coordinates;Array.isArray(A)&&A.length&&(G.value=A)}catch(b){console.error("Failed to fetch KATOTTG bounds",b)}finally{if(!I)return;Pt(),de.value.forEach(b=>{const _=Q[b];_&&yt(_)}),Et()}},{immediate:!0}),e.watch(()=>E.value,f=>{if(!Array.isArray(f)||f.length!==2)return;const b=[Number(f[0]),Number(f[1])];if(Yr(R.value,b)||(R.value=[...b],!I))return;const _=I.getCenter?.();_&&Yr([_.lng,_.lat],R.value)||I.easeTo({center:[R.value[0],R.value[1]]})},{deep:!0}),e.watch(()=>S.value,f=>{typeof f=="number"&&(B.value=f,I&&I.setZoom(f))}),e.watch(s,f=>{f&&Kt()}),e.watch(d,f=>{if(f>0){s.value||Bt();return}te||Kt()}),e.watch(i,()=>{setTimeout(()=>{I?.resize&&I.resize()},50)}),(f,b)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body",disabled:!i.value},[e.createElementVNode("div",{class:e.normalizeClass(["vs-map-wrapper relative w-full h-[400px]",{fullscreen:i.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",Td,[Ce.value.search?(e.openBlock(),e.createBlock(Oc,{key:0,onGoToCoordinates:w0})):e.createCommentVNode("",!0),Ce.value.import||Ce.value.export?(e.openBlock(),e.createElementBlock("div",Ld,[e.createElementVNode("div",Id,[Ce.value.import?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"importMenuRef",ref:Z,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:C0,disabled:s.value},[b[8]||(b[8]=e.createTextVNode(" Імпорт ",-1)),e.createVNode(e.unref(H.ChevronDown),{class:e.normalizeClass(["h-4 w-4 transition-transform",{"rotate-180":ee.value}])},null,8,["class"])],8,Rd),ee.value?(e.openBlock(),e.createElementBlock("div",Od,[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:v0}," З файлу ")):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:E0}," З координат ")])):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:N0,disabled:s.value||d.value===0}," Експорт ",8,Pd)):e.createCommentVNode("",!0)]),e.createElementVNode("input",{ref_key:"importRef",ref:D,type:"file",onChange:$0,accept:".json,.geojson",class:"hidden",disabled:s.value},null,40,zd)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createVNode(e.unref(fe.VsModal),{visible:le.value,"onUpdate:visible":b[1]||(b[1]=_=>le.value=_),title:"Імпорт координат полігону",size:"lg",teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(rt,{schema:ne,values:me.value,"onUpdate:values":b[0]||(b[0]=_=>me.value=_)},null,8,["values"]),e.createElementVNode("div",jd,[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:B0}," Скасувати "),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:V0,disabled:s.value}," Побудувати ",8,Ud)])]),_:1},8,["visible"]),e.createElementVNode("div",Hd,[e.createElementVNode("div",qd,[Ce.value.point?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(["vs-btn",{"vs-active":u.value==="marker"}]),title:"Point",onClick:b[2]||(b[2]=_=>Hn("marker")),disabled:s.value},[e.createVNode(e.unref(H.MapPin),{class:"h-4 w-4"})],10,Kd)):e.createCommentVNode("",!0),Ce.value.line?(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(["vs-btn",{"vs-active":u.value==="polyline"}]),title:"Line",onClick:b[3]||(b[3]=_=>Hn("polyline")),disabled:s.value},[e.createVNode(rc)],10,Wd)):e.createCommentVNode("",!0),Ce.value.polygon?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":u.value==="polygon"}]),title:"Polygon",onClick:b[4]||(b[4]=_=>Hn("polygon")),disabled:s.value},[e.createVNode(ic)],10,Gd)):e.createCommentVNode("",!0),Ce.value.rectangle?(e.openBlock(),e.createElementBlock("button",{key:3,class:e.normalizeClass(["vs-btn",{"vs-active":u.value==="rectangle"}]),title:"Rectangle",onClick:b[5]||(b[5]=_=>Hn("rectangle")),disabled:s.value},[e.createVNode(pc)],10,Yd)):e.createCommentVNode("",!0),Ce.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:y},[e.createVNode(e.unref(H.Ruler),{class:"h-4 w-4"})],2)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"vs-btn mt-5",onClick:b[6]||(b[6]=_=>i.value=!i.value),title:"Full Screen"},[e.createVNode(e.unref(H.Maximize),{class:"h-4 w-4"})])])]),Ce.value.ruler&&e.unref(g).isRulerActive.value?(e.openBlock(),e.createBlock(Md,{key:1,ref_key:"rulerPanelRefEl",ref:m,onClose:b[7]||(b[7]=_=>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),Ce.value.ruler&&e.unref(g).isRulerActive.value&&e.unref(g).hasRulerPoints.value?(e.openBlock(),e.createBlock(Fd,{key:2,map:k.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),$e.value.length?(e.openBlock(),e.createElementBlock("div",{key:3,class:"absolute z-[1500] pointer-events-none",style:e.normalizeStyle(Re.value)},[e.createElementVNode("div",Xd,[e.createElementVNode("dl",Zd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList($e.value,_=>(e.openBlock(),e.createElementBlock("div",{key:`${_.key}-${_.value}`,class:"flex justify-between gap-2"},[e.createElementVNode("dt",Jd,e.toDisplayString(_.key),1),e.createElementVNode("dd",Qd,e.toDisplayString(_.value),1)]))),128))])])],4)):e.createCommentVNode("",!0),e.createElementVNode("div",eu,[e.createElementVNode("div",tu,[e.createVNode(yc,{basemaps:e.unref(Ne),onOnLayerChange:wo},null,8,["basemaps"]),he.value.length?(e.openBlock(),e.createElementBlock("div",nu,[b[9]||(b[9]=e.createElementVNode("p",{class:"font-semibold text-[11px] uppercase tracking-wide text-gray-500 mb-2"},"Шари",-1)),e.createElementVNode("div",ou,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(he.value,_=>(e.openBlock(),e.createElementBlock("label",{key:_.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:_.visible,disabled:s.value,onChange:A=>xo(_.id)},null,40,ru),e.createElementVNode("span",lu,e.toDisplayString(_.config.title||_.config.name||_.id),1)]))),128))])])):e.createCommentVNode("",!0)])]),e.createElementVNode("div",au,[h.value.length||p.value?(e.openBlock(),e.createElementBlock("div",su,[e.createElementVNode("div",iu,[e.createElementVNode("div",cu,[b[10]||(b[10]=e.createTextVNode(" Тип: ",-1)),h.value.length<=1?(e.openBlock(),e.createElementBlock("span",du,e.toDisplayString(p.value?Gr(p.value.type):h.value[0]?.label||"—"),1)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(h.value,(_,A)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:_.id},[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["font-bold underline-offset-2",_.id===e.unref(q)?"text-blue-700 underline":"text-gray-700 hover:text-blue-700 hover:underline"]),onClick:T=>b0(_.id),disabled:s.value},e.toDisplayString(_.label),11,uu),A<h.value.length-1?(e.openBlock(),e.createElementBlock("span",pu,", ")):e.createCommentVNode("",!0)],64))),128))])]),e.createElementVNode("div",fu,[e.createElementVNode("div",mu,[b[11]||(b[11]=e.createTextVNode(" Центр: ",-1)),p.value?(e.openBlock(),e.createElementBlock("b",hu,e.toDisplayString(p.value.center.lng.toFixed(5))+", "+e.toDisplayString(p.value.center.lat.toFixed(5)),1)):(e.openBlock(),e.createElementBlock("b",gu,"—"))]),p.value&&p.value.areaKm2!==null?(e.openBlock(),e.createElementBlock("div",yu,[b[12]||(b[12]=e.createTextVNode(" Площа: ",-1)),e.createElementVNode("b",null,e.toDisplayString(p.value.areaKm2.toFixed(1))+" km²",1)])):(e.openBlock(),e.createElementBlock("div",bu,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:x0,disabled:s.value},[e.createVNode(e.unref(H.ZoomIn),{class:"h-3 w-3"})],8,ku),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:k0,disabled:s.value},[e.createVNode(e.unref(H.Trash2),{class:"h-4 w-4"})],8,xu)])])):e.createCommentVNode("",!0)])],2)],8,["disabled"]))}}),[["__scopeId","data-v-33669cd5"]]),wu=["data-focus"],_u={class:"flex items-center"},Cu={class:"overflow-hidden text-ellipsis whitespace-nowrap rounded-sm text-[#333] text-[85%] px-0.5 py-[3px] pl-1.5 box-border"},vu=["onClick","aria-label"],Eu={key:0,class:"absolute text-gray-500 truncate pl-2"},Bu={class:"flex-1 min-w-[2px]"},Vu=["placeholder"],Su={class:"flex items-center shrink-0"},$u=["disabled"],Yo=e.defineComponent({__name:"vs-input-tag",props:e.mergeModels({unique:{type:Boolean,default:!0},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:"Введіть тег"},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=t;Oe(n.style);const l=e.ref(null),a=e.ref(null),s=e.ref(null),i=e.ref(!1),c=e.ref(""),d=e.useModel(o,"modelValue"),u=e.computed(()=>n.placeholder||"Add tag…"),p=e.computed(()=>d.value?.length===0&&c.value===""),h=e.computed(()=>!n.disabled&&d.value?.length>0),k=e.computed(()=>n.disabled),m=async()=>{k.value||await e.nextTick(()=>s.value?.focus())},g=X=>{const L=X.trim();L!==""&&(!d.value||!Array.isArray(d.value)?d.value=[L]:n.unique?d.value.includes(L)||(d.value=[...d.value,L]):d.value=[...d.value,L],c.value="")},y=()=>{const X=c.value;X.trim()!==""&&g(X),c.value=""},C=X=>{const L=d.value.slice();L.splice(X,1),r("update:modelValue",L)},x=()=>{r("update:modelValue",[])},w=()=>{k.value||(i.value=!0)},V=()=>{i.value=!1,!k.value&&y()},z=X=>{const{key:L}=X;L==="Enter"?(X.preventDefault(),y()):L==="Backspace"&&c.value===""&&d.value.length>0&&C(d.value.length-1)};return(X,L)=>(e.openBlock(),e.createElementBlock("div",{class:"flex gap-1 w-full",ref_key:"root",ref:l,onClick:L[1]||(L[1]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass]),role:"group","aria-label":"Tag input"},[e.createElementVNode("div",{class:e.normalizeClass(["flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white","border-gray-300 hover:border-gray-400",i.value?"border-blue-500 ring-1 ring-blue-500":"",k.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),"data-focus":i.value?"true":"false",onClick:m},[e.createElementVNode("div",{class:"flex flex-1 flex-wrap items-center gap-1 py-0.5 pl-2 pr-0 overflow-hidden",ref_key:"chipsRef",ref:a},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(E,S)=>(e.openBlock(),e.createElementBlock("div",{key:S,class:"flex min-w-0 bg-[#e6e6e6] rounded-sm m-0.5 box-border"},[e.createElementVNode("div",_u,[e.createElementVNode("div",Cu,e.toDisplayString(E),1)]),e.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border hover:bg-[#ffbdad] hover:text-[#de350b]",onClick:e.withModifiers(N=>C(S),["stop"]),"aria-label":`Remove ${E}`},[e.createVNode(e.unref(H.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,vu)]))),128)),p.value?(e.openBlock(),e.createElementBlock("div",Eu,e.toDisplayString(u.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Bu,[k.value?e.createCommentVNode("",!0):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"inputRef",ref:s,class:"pl-2 w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-label":"Add tag","onUpdate:modelValue":L[0]||(L[0]=E=>c.value=E),onFocus:w,onBlur:V,onKeydown:z,placeholder:d.value&&d.value.length?"":void 0},null,40,Vu)),[[e.vModelText,c.value]])])],512),e.createElementVNode("div",Su,[h.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-label":"Clear all tags",disabled:k.value,onClick:e.withModifiers(x,["stop"])},[e.createVNode(e.unref(H.X),{class:"h-4 w-4"})],8,$u)):e.createCommentVNode("",!0)])],10,wu)],2)],512))}}),Nu={class:"relative flex gap-1 bg-white w-full"},Au=["disabled","placeholder"],Xo=ke(e.defineComponent({__name:"vs-input-slug",props:e.mergeModels({disabled:{type:Boolean},placeholder:{},parent:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=e.inject("values"),n=o,r=e.useModel(o,"modelValue");function l(s){const i={а:"a",б:"b",в:"v",г:"g",д:"d",е:"e",ё:"e",ж:"zh",з:"z",и:"i",й:"y",к:"k",л:"l",м:"m",н:"n",о:"o",п:"p",р:"r",с:"s",т:"t",у:"u",ф:"f",х:"kh",ц:"ts",ч:"ch",ш:"sh",щ:"shch",ы:"y",э:"e",ю:"yu",я:"ya",ь:"",ъ:"",є:"ye",і:"i",ї:"yi",ґ:"g"};return s.toLowerCase().split("").map(c=>i[c]||c).join("").replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}const a=()=>{const s=t?.value?.[n.parent||""]?.toString(),i=l(s);r.value=i.toString()};return(s,i)=>(e.openBlock(),e.createElementBlock("div",Nu,[e.withDirectives(e.createElementVNode("input",{ref:"vsText",disabled:s.disabled,placeholder:s.placeholder,"onUpdate:modelValue":i[0]||(i[0]=c=>r.value=c),class:"block w-full px-3 py-2 text-sm border border-solid rounded-lg placeholder:text-nowrap border-stone-200 text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,8,Au),[[e.vModelText,r.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200",onClick:a}," Gen ")]))}}),[["__scopeId","data-v-b0eba370"]]),Mu={class:"relative flex gap-1 bg-white w-full"},Fu=["disabled","placeholder"],Du=["disabled"],Tu={key:0},Lu={key:1},Zo=ke(e.defineComponent({__name:"vs-input-codegen",props:e.mergeModels({table:{},code:{},init:{type:Boolean},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref(!1),l=e.computed(()=>t.init!==!1),a=e.computed(()=>!!t.table&&!!t.code),s=()=>{if(!a.value)return"";const d=encodeURIComponent(String(t.table)),u=encodeURIComponent(String(t.code));return`/api/code-gen/${d}/${u}`},i=async()=>{if(!a.value||r.value)return;const d=s();if(d){r.value=!0;try{const p=await(await fetch(d)).text();n.value=p}finally{r.value=!1}}},c=()=>{l.value&&(n.value||i())};return e.onMounted(()=>{c()}),e.watch(()=>[t.table,t.code,t.init],()=>{c()}),(d,u)=>(e.openBlock(),e.createElementBlock("div",Mu,[e.withDirectives(e.createElementVNode("input",{disabled:d.disabled,placeholder:d.placeholder,"onUpdate:modelValue":u[0]||(u[0]=p=>n.value=p),class:"block w-full px-3 py-2 text-sm border border-solid rounded-lg placeholder:text-nowrap border-stone-200 text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,8,Fu),[[e.vModelText,n.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200 disabled:opacity-50 disabled:cursor-not-allowed",disabled:r.value||d.disabled||!a.value,onClick:i},[r.value?(e.openBlock(),e.createElementBlock("span",Lu,"...")):(e.openBlock(),e.createElementBlock("span",Tu,"Gen"))],8,Du)]))}}),[["__scopeId","data-v-6ee5237d"]]),Iu={class:"w-full"},Ru={ref:"sortableContainer",class:"flex flex-col gap-1"},Ou=["onDragstart","onDrop"],Pu={class:"cursor-move",type:"button"},zu={class:"w-1/3"},ju={class:"w-2/3"},Uu=["onClick"],Hu={key:0,class:"text-[14px] text-gray-700"},qu={class:"mt-2 w-full flex items-center"},Ku=["disabled"],Jo=ke(e.defineComponent({__name:"vs-input-key-value",props:{parent:{},ignore:{},addButtonText:{},modelValue:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=y=>`${y}-${Math.random().toString(36).substring(2,15)}`,r=e.inject("values"),l=o,a=t,s=l.addButtonText??"Додати",i=l.ignore??[],c=e.ref([]),d=e.ref(null);(()=>{const y=l.parent&&r?.value?.[l.parent]||l.modelValue||{};c.value=Object.entries(y).filter(([C])=>!i.includes(C)).map(([C,x])=>({id:n("key-value-"),key:C,value:x}))})();function p(y){d.value=y}function h(y){if(d.value===null||d.value===y)return;const C=c.value.splice(d.value,1)[0];c.value.splice(y,0,C),d.value=null}const k=e.computed(()=>c.value.some(y=>y.key&&!y.value||!y.key&&y.value)),m=()=>{c.value.push({id:n("key-value-"),key:"",value:""})},g=y=>{c.value=c.value.filter(C=>C.id!==y)};return e.watch(c,y=>{const C={};y.forEach(w=>{w.key&&w.value!==void 0&&(C[w.key]=w.value)});const x={};i.length&&i.forEach(w=>{x[w]=l.parent?r?.value?.[l.parent]?.[w]:void 0}),r?.value&&l.parent&&(r.value[l.parent]={...x,...C}),a("update:modelValue",C)},{deep:!0}),(y,C)=>(e.openBlock(),e.createElementBlock("div",Iu,[e.createElementVNode("div",Ru,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,(x,w)=>(e.openBlock(),e.createElementBlock("div",{key:x.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":d.value===w}]),draggable:"true",onDragstart:V=>p(w),onDragover:C[0]||(C[0]=e.withModifiers(()=>{},["prevent"])),onDrop:V=>h(w)},[e.createElementVNode("button",Pu,[e.createVNode(e.unref(H.GripVertical),{class:"h-4 w-4"})]),e.createElementVNode("div",zu,[e.createVNode(zt,{modelValue:x.key,"onUpdate:modelValue":V=>x.key=V,placeholder:"Ключ"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",ju,[e.createVNode(zt,{modelValue:x.value,"onUpdate:modelValue":V=>x.value=V,placeholder:"Значення"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("button",{onClick:V=>g(x.id),class:"shrink-0 w-[30px] text-gray-600 h-[30px] rounded-full flex items-center justify-center bg-gray-100 hover:bg-gray-200"},[e.createVNode(e.unref(H.X),{class:"h-4 w-4"})],8,Uu)],42,Ou))),128))],512),c.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Hu," Дані для відображення відсутні ")),e.createElementVNode("div",qu,[e.createElementVNode("button",{type:"button",onClick:m,disabled:k.value,class:"py-1.5 px-2 flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"},[e.createVNode(e.unref(H.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(e.unref(s)),1)],8,Ku)])]))}}),[["__scopeId","data-v-d8c3f9d6"]]),Wu={class:"w-full"},Gu={ref:"sortableContainer",class:"flex flex-col gap-1"},Yu=["onDragstart","onDrop"],Xu=["disabled"],Zu={class:"flex-1"},Ju=["onClick","disabled"],Qu={key:0,class:"text-[14px] text-gray-700"},ep={class:"mt-2 w-full flex items-center"},tp=["disabled"],Qo=ke(e.defineComponent({__name:"vs-input-text-array",props:e.mergeModels({addButtonText:{default:"Додати"},inputType:{default:"text"},placeholder:{default:"Значення"},mask:{default:""},disabled:{type:Boolean,default:!1}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref([]),l=e.ref(null),a=e.computed(()=>!!t.disabled),s=e.computed(()=>t.placeholder??""),i=e.computed(()=>t.addButtonText??"Додати");let c=!1;const d=y=>`${y}-${Math.random().toString(36).substring(2,15)}`,u=y=>{const C=y??n.value??[];r.value=C.map((x,w)=>({id:r.value[w]?.id??d("text-array"),value:x??""}))};u(),e.watch(()=>n.value,y=>{if(c){c=!1;return}u(y||[])},{deep:!0}),e.watch(r,y=>{c=!0,n.value=y.map(C=>C.value).filter(C=>C!=null&&C!=="")},{deep:!0});const p=e.computed(()=>a.value||r.value.some(y=>!y.value));function h(){p.value||(r.value=[...r.value,{id:d("text-array"),value:""}])}function k(y){a.value||(r.value=r.value.filter(C=>C.id!==y))}function m(y){a.value||(l.value=y)}function g(y){if(a.value||l.value===null||l.value===y)return;const C=[...r.value],[x]=C.splice(l.value,1);C.splice(y,0,x),r.value=C,l.value=null}return(y,C)=>(e.openBlock(),e.createElementBlock("div",Wu,[e.createElementVNode("div",Gu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(x,w)=>(e.openBlock(),e.createElementBlock("div",{key:x.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":l.value===w}]),draggable:"true",onDragstart:V=>m(w),onDragover:C[0]||(C[0]=e.withModifiers(()=>{},["prevent"])),onDrop:V=>g(w)},[e.createElementVNode("button",{class:"cursor-move",type:"button",disabled:a.value},[e.createVNode(e.unref(H.GripVertical),{class:"h-4 w-4"})],8,Xu),e.createElementVNode("div",Zu,[y.inputType==="text"?(e.openBlock(),e.createBlock(zt,{key:0,modelValue:x.value,"onUpdate:modelValue":V=>x.value=V,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),y.inputType==="tel"?(e.openBlock(),e.createBlock(Yn,{key:1,modelValue:x.value,"onUpdate:modelValue":V=>x.value=V,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),y.inputType==="email"?(e.openBlock(),e.createBlock(Gn,{key:2,modelValue:x.value,"onUpdate:modelValue":V=>x.value=V,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),y.inputType==="mask"?(e.openBlock(),e.createBlock(mn,{key:3,modelValue:x.value,"onUpdate:modelValue":V=>x.value=V,mask:y.mask,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","mask","disabled","placeholder"])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:V=>k(x.id),disabled:a.value,class:"shrink-0 w-[30px] text-gray-600 h-[30px] rounded-full flex items-center justify-center bg-gray-100 hover:bg-gray-200 disabled:opacity-50"},[e.createVNode(e.unref(H.X),{class:"h-4 w-4"})],8,Ju)],42,Yu))),128))],512),r.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Qu," Дані для відображення відсутні ")),e.createElementVNode("div",ep,[e.createElementVNode("button",{type:"button",onClick:h,disabled:p.value,class:"py-1.5 px-2 flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"},[e.createVNode(e.unref(H.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(i.value),1)],8,tp)])]))}}),[["__scopeId","data-v-2c229b1f"]]),np={class:"flex items-center gap-2 w-full"},op=["disabled"],rp=["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(o,{emit:t}){const n=o,{inputClass:r}=Oe(n.style),l=t,a=e.computed({get:()=>n.modelValue||"#000000",set:i=>l("update:modelValue",i)}),s=e.computed(()=>!!n.disabled);return(i,c)=>(e.openBlock(),e.createElementBlock("div",np,[e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":c[0]||(c[0]=d=>a.value=d),disabled:s.value,ref:"color",class:e.normalizeClass(["py-1.5 px-1 block w-full bg-white cursor-pointer max-w-[50px]",[i.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,op),[[e.vModelText,a.value]]),e.withDirectives(e.createElementVNode("input",{class:"text-sm text-gray-600 border border-solid border-stone-200 rounded-md p-2","onUpdate:modelValue":c[1]||(c[1]=d=>a.value=d),disabled:s.value},null,8,rp),[[e.vModelText,a.value]])]))}}),lp={class:"flex items-center gap-2 w-full"},ap=["min","max","step","disabled"],sp=["value","min","max","step","disabled"],tr=e.defineComponent({__name:"vs-input-range",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{},min:{default:0},max:{default:100},step:{default:1}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,{inputClass:r}=Oe(n.style),l=t,a=u=>{const p=Number(u),h=Number(n.min),k=Number(n.max);return Number.isNaN(p)?h:Math.min(k,Math.max(h,p))},s=e.computed({get:()=>a(n.modelValue??n.min),set:u=>l("update:modelValue",a(u))}),i=u=>{const p=u.target,h=a(p.value);p.value=String(h),l("update:modelValue",h)},c=u=>{Number(n.min)>=0&&u.key==="-"&&u.preventDefault()},d=e.computed(()=>!!n.disabled);return(u,p)=>(e.openBlock(),e.createElementBlock("div",lp,[e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":p[0]||(p[0]=h=>s.value=h),min:u.min,max:u.max,step:u.step,disabled:d.value,ref:"range",class:e.normalizeClass(["w-full cursor-pointer accent-blue-500",[u.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")])},null,10,ap),[[e.vModelText,s.value]]),e.createElementVNode("input",{class:"text-sm text-gray-600 border border-solid border-stone-200 rounded-md p-2 max-w-[100px]",type:"number",value:s.value,min:u.min,max:u.max,step:u.step,onInput:i,onKeydown:c,disabled:d.value},null,40,sp)]))}}),ip=["placeholder","disabled","name"],cp=["type","value","onInput","placeholder","disabled"],dp=["onClick"],nr=e.defineComponent({__name:"vs-input-array",props:e.mergeModels({count:{default:1},limit:{default:1},mask:{default:""},unmask:{type:Boolean,default:!1},inputType:{default:"text"},isAdded:{type:Boolean,default:!1},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.ref(t.count),r=e.computed(()=>t.limit),{inputClass:l}=Oe(t.style),a=e.useModel(o,"modelValue"),s=e.computed(()=>!!t.disabled),i=e.computed(()=>t.placeholder??"");e.watchEffect(()=>{const g=a.value?.length??0;g<n.value&&(a.value=[...a.value??[],...Array(n.value-g)])});const c=e.ref({}),d=e.ref({});function u(g,y){g&&(c.value[y]=g)}async function p(g,y){if(!g||t.inputType!=="mask")return;const{default:C}=await Promise.resolve().then(()=>Pn);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 x=[...a.value||[]];x[y]=t.unmask?d.value[y].unmaskedValue:d.value[y].value,a.value=x}),d.value[y].on("complete",()=>{const x=[...a.value||[]];x[y]=t.unmask?d.value[y].unmaskedValue:d.value[y].value,a.value=x}),a.value?.[y]&&(d.value[y].value=a.value[y])}function h(g,y){if(s.value)return;const C=g.target.value??null,x=[...a.value];x[y]=t.inputType==="text"?C:Number(C),a.value=x}function k(){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;c.value[y]&&p(c.value[y],y)},0)}function m(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,x)=>x!==g);const y={};Object.keys(d.value).forEach(C=>{const x=parseInt(C,10);x>g?y[x-1]=d.value[x]:x<g&&(y[x]=d.value[x])}),d.value=y}}return e.onMounted(()=>{if(t.inputType==="mask")for(let g=0;g<n.value;g+=1)c.value[g]&&p(c.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-${r.value}`])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,C=>(e.openBlock(),e.createElementBlock("div",{key:C,class:"flex items-center gap-2 w-full"},[g.inputType==="mask"?(e.openBlock(),e.createElementBlock("input",{key:0,type:"text",ref_for:!0,ref:x=>u(x,C-1),placeholder:g.placeholder,disabled:g.disabled,name:`${g.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":g.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,ip)):(e.openBlock(),e.createElementBlock("input",{key:1,type:g.inputType,value:a.value?.[C-1],onInput:x=>h(x,C-1),placeholder:i.value,disabled:s.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(l),{"!border-red-600":g.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,cp)),!g.disabled&&C===n.value&&g.isAdded?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:e.withModifiers(k,["stop"]),class:"cursor-pointer shrink-0 w-[38px] text-green-600 h-[38px] rounded-md flex items-center justify-center border border-stone-200 hover:bg-stone-100"},[e.createVNode(e.unref(H.Plus),{class:"h-4 w-4"})])):e.createCommentVNode("",!0),!g.disabled&&n.value>1&&g.isAdded?(e.openBlock(),e.createElementBlock("button",{key:3,type:"button",onClick:e.withModifiers(x=>m(C-1),["stop"]),class:"cursor-pointer shrink-0 w-[38px] text-red-600 h-[38px] rounded-md flex items-center justify-center border border-stone-200 hover:bg-stone-100"},[e.createVNode(e.unref(H.X),{class:"h-4 w-4"})],8,dp)):e.createCommentVNode("",!0)]))),128))],2))}}),up={class:"flex gap-1 w-full"},pp=["aria-expanded","data-focus"],fp=["placeholder","disabled","readonly"],mp={class:"max-h-full"},hp=["onClick","disabled"],gp={key:0,class:"px-3 py-2 text-sm text-stone-500"},yp=["disabled"],bp={class:"flex flex-col gap-1"},kp=["onDragstart","onDrop"],xp=["disabled"],wp=["title"],_p=["disabled","onClick","aria-label"],Cp={key:0,class:"text-xs text-stone-500"},Bn=ke(e.defineComponent({__name:"vs-input-array-select",props:e.mergeModels({options:{default:()=>[]},data:{default:""},api:{default:""},prefix:{default:"api"},host:{default:""},parent:{},search:{type:Boolean,default:!0},maxHeight:{default:280},start:{default:0},slot:{},disabled:{type:Boolean,default:!1},add:{},style:{},customClass:{},modelValue:{},error:{},name:{},placeholder:{default:"Оберіть значення"},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:e.mergeModels(["change","update:modelValue","value-selected"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=t,l=e.useModel(o,"modelValue"),a=e.ref([]),s=e.ref(n.options??[]),i=e.ref({}),c=e.ref({}),d=e.ref({keyword:"",parent:null}),u=e.ref(""),p=e.ref(!1),h=e.ref(null),k=e.ref(null),m=e.ref(null),g=e.ref(null),y=e.ref(null),C=e.ref({});let x=!1,w=!1;const V=e.inject("values"),z=e.computed(()=>!!n.disabled),X=e.computed(()=>n.placeholder??"Оберіть значення"),L=e.computed(()=>n.search!==!1),E=e.computed(()=>{const M=n.parent??n.parentValue;return M?String(M):""}),S=e.computed(()=>E.value?V?.value?.[E.value]??null:null),N=M=>M==null?"__null__":String(M),v=M=>{if(!M)return"";const K=M.label??M.text??M.name??M.ua??M.en;return K?String(K):M.id!==void 0&&M.id!==null?String(M.id):""},$=M=>{const K=N(M);return c.value[K]||(c.value[K]=`array-select-${K}-${Math.random().toString(36).slice(2,8)}`),c.value[K]},R=e.computed(()=>new Set(a.value.map(M=>N(M.id)))),B=e.computed(()=>{const M=R.value;let K=[...s.value];if(!n.data&&u.value.trim()){const te=u.value.toLowerCase();K=K.filter(se=>v(se).toLowerCase().includes(te))}return K.filter(te=>!M.has(N(te.id)))}),F=()=>{if(!n.data)return"";const M=n.prefix??"api",K=n.api??`/${M}/suggest/${n.data}`;return`${n.host??""}${K}`},D=()=>{a.value.length&&(x=!0,a.value=a.value.map(M=>({...M,text:i.value[N(M.id)]??M.text})))},Z=M=>{const K=N(M.id),te=v(M);te&&(i.value[K]=te)},G=M=>{s.value=M?[...M]:[],M?.forEach(Z),D()},ee=M=>{if(!M.length)return;const K=new Map(s.value.map(te=>[N(te.id),te]));M.forEach(te=>{const se=N(te.id);K.set(se,te),Z(te)}),s.value=Array.from(K.values()),D()},le=async(M="")=>{if(!n.data)return[];const K=F();if(!K)return[];const te=new URLSearchParams;te.set("json","1"),M&&te.set("key",M),n.start===1&&te.set("start","1"),S.value!==null&&S.value!==void 0&&S.value!==""&&te.set("parent",String(S.value));try{return(await(await fetch(`${K}?${te.toString()}`)).json())?.data??[]}catch{return[]}},we=async M=>{if(!n.data||!M.length)return[];const K=F();if(!K)return[];const te=Array.from(new Set(M.map(ve=>N(ve)))),se=new URLSearchParams;se.set("json","1"),se.set("val",te.join(",")),n.start===1&&se.set("start","1"),S.value!==null&&S.value!==void 0&&S.value!==""&&se.set("parent",String(S.value));try{const We=(await(await fetch(`${K}?${se.toString()}`)).json())?.data??[];return ee(We),We}catch{return[]}},me=async M=>{if(M==null||M==="")return null;const K=N(M),te=s.value.find(ve=>N(ve.id)===K);if(te)return te;const[se]=await we([M]);return se??null},ne=async(M="",{force:K=!1}={})=>{if(!n.data)return;const te=S.value??null;if(!K&&d.value.keyword===M&&d.value.parent===te&&s.value.length>0)return;d.value={keyword:M,parent:te};const ve=await le(M);G(ve)},ge=((M,K=200)=>{let te;return(...se)=>{te&&clearTimeout(te),te=setTimeout(()=>M(...se),K)}})(async M=>{n.data&&await ne(M,{force:!0})},250),Q=e.ref(null),de=()=>{if(!m.value)return;const M=m.value.getBoundingClientRect(),K=window.innerHeight??document.documentElement.clientHeight,te=window.innerWidth??document.documentElement.clientWidth,se=8,ve=8,et=n.maxHeight??280,We=K-M.bottom-ve-se,vt=M.top-ve-se,He=We>=vt,qe=Math.max(te-se*2,0);let{width:gt}=M;qe>0&>>qe&&(gt=qe);let{left:ct}=M;ct+gt+se>te&&(ct=te-gt-se),ct=Math.max(ct,se);const Ht=Math.min(et,Math.max(He?We:vt,50));C.value={position:"fixed",left:`${ct}px`,width:`${gt}px`,maxHeight:`${Ht}px`,transform:He?"none":"translateY(-100%)",top:He?`${M.bottom+ve}px`:`${M.top-ve}px`}},he=async(M="click")=>{z.value||p.value||(Q.value=M,await ne(u.value.trim()),p.value=!0,await e.nextTick(),de(),y.value?.focus())},Be=()=>{p.value=!1,Q.value=null,e.nextTick(()=>{y.value?.blur()})},$e=async M=>{if(M.stopPropagation(),!z.value){if(p.value){if(Q.value==="focus"){Q.value=null;return}Be();return}await he("click")}},Re=M=>{M.key==="Escape"&&Be()},Ae=M=>{if(!p.value)return;const K=M.target;g.value?.contains(K)||Be()},Ce=M=>{const K=M.target;k.value?.contains(K)||g.value?.contains(K)||Be()},Ve=M=>{if(M.key==="Escape"){M.preventDefault(),Be();return}if(M.key==="Enter"){M.preventDefault();const K=B.value[0];K&&Se(K)}},Se=M=>{if(!M)return;const K=N(M.id);if(R.value.has(K))return;Z(M);const te={id:M.id,text:v(M)||String(M.id??""),key:$(M.id)};a.value=[...a.value,te],Ne(M),u.value="",e.nextTick(()=>{y.value?.focus()})},Ne=M=>{const K=a.value.map(te=>te.id);r("value-selected",{name:n.name,value:K,option:M})},Le=M=>{if(z.value)return;const K=a.value.filter(te=>N(te.id)!==N(M));a.value=K},{isOpenAdd:Ie,addData:Qe,addSchema:U,addForm:J,addTitle:re,addOption:I,onAddValue:W}=Io({props:n,fetchOptionByValue:me,optionsList:s,selectedOption:e.ref(null),modelValue:l,onCreated:async(M,K)=>{const te=M??await me(K),se=te?.id??K;R.value.has(N(se))||(te&&Z(te),a.value=[...a.value,{id:se,text:te?v(te):String(se),key:$(se)}],Ne(te??null))}}),_e=M=>{z.value||(h.value=M)},O=M=>{if(z.value||h.value===null||h.value===M)return;const K=[...a.value],[te]=K.splice(h.value,1);K.splice(M,0,te),h.value=null,a.value=K},j=async()=>{const K=(Array.isArray(l.value)?[...l.value]:[]).filter(se=>se!=null);if(n.data&&K.length){const se=K.filter(ve=>!i.value[N(ve)]);se.length&&await we(se)}const te=K.map(se=>({id:se,text:i.value[N(se)]??String(se),key:$(se)}));x=!0,a.value=te};e.watch(a,M=>{if(x){x=!1;return}const K=M.map(te=>te.id);w=!0,l.value=K,r("change",K)},{deep:!0}),e.watch(l,()=>{if(w){w=!1;return}j()},{deep:!0}),e.watch(u,M=>{!n.data||!p.value||ge(M.trim())}),e.watch(z,M=>{M&&Be()}),e.watch(()=>n.options,async M=>{n.data||(G(M??[]),await j())},{immediate:!0,deep:!0}),e.watch(()=>n.data,async M=>{M&&(await ne(u.value.trim()),await j())},{immediate:!0});const q=e.ref(!1);return e.watch(S,async()=>{if(n.data){if(!q.value){q.value=!0;return}a.value=[],await ne(u.value.trim()),await j()}}),e.onMounted(async()=>{document.addEventListener("click",Ce,!0),window.addEventListener("keydown",Re),window.addEventListener("scroll",Ae,!0),await j()}),e.onUnmounted(()=>{document.removeEventListener("click",Ce,!0),window.removeEventListener("keydown",Re),window.removeEventListener("scroll",Ae,!0)}),(M,K)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(fe.VsModal),{visible:e.unref(Ie),"onUpdate:visible":K[1]||(K[1]=te=>e.isRef(Ie)?Ie.value=te:null),class:"z-[1000]",title:e.unref(re),buttonText:"Додати",onDone:e.unref(I)},{default:e.withCtx(()=>[e.createVNode(rt,{schema:e.unref(U),modelValue:e.unref(Qe),"onUpdate:modelValue":K[0]||(K[0]=te=>e.isRef(Qe)?Qe.value=te:null),ref_key:"addForm",ref:J},null,8,["schema","modelValue"])]),_:1},8,["visible","title","onDone"]),e.createElementVNode("div",{class:"flex flex-col gap-2 w-full",ref_key:"rootRef",ref:k},[e.createElementVNode("div",up,[e.createElementVNode("div",{class:"relative flex-1",onClick:K[4]||(K[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{ref_key:"triggerRef",ref:m,class:e.normalizeClass(["flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white px-3","border-gray-300 hover:border-[#b3d4ff]",p.value?"border-[#2684ff] ring-1 ring-[#2684ff] shadow-[0_0_0_1px_rgba(38,132,255,0.5)]":"",z.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),role:"combobox","aria-expanded":p.value,"aria-haspopup":"listbox","data-focus":p.value?"true":"false",onClick:$e},[e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:y,"onUpdate:modelValue":K[2]||(K[2]=te=>u.value=te),placeholder:X.value,disabled:z.value,readonly:!L.value,onFocus:K[3]||(K[3]=()=>he("focus")),onKeydown:Ve,class:"flex-1 bg-transparent border-0 outline-none px-0 py-1 text-sm text-stone-900 placeholder:text-stone-400"},null,40,fp),[[e.vModelText,u.value]]),e.createElementVNode("span",{class:e.normalizeClass(["text-stone-400 transition-transform duration-150",p.value?"rotate-180":""]),"aria-hidden":"true"},[e.createVNode(e.unref(H.ChevronDown),{class:"h-4 w-4"})],2)],10,pp),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[p.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref: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",mp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B.value,te=>(e.openBlock(),e.createElementBlock("button",{key:N(te.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(se=>Se(te),["stop"]),disabled:z.value},e.toDisplayString(v(te)),9,hp))),128)),B.value.length===0?(e.openBlock(),e.createElementBlock("p",gp," Немає варіантів ")):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))]),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:K[5]||(K[5]=(...te)=>e.unref(W)&&e.unref(W)(...te)),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:z.value,type:"button"},[e.createVNode(e.unref(H.Plus),{class:"h-4 w-4"}),K[8]||(K[8]=e.createElementVNode("span",null,"Додати",-1))],8,yp)):e.createCommentVNode("",!0)]),e.createElementVNode("div",bp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(te,se)=>(e.openBlock(),e.createElementBlock("div",{key:te.key,class:e.normalizeClass(["flex items-center gap-2 rounded-md border border-stone-200 bg-white px-2 py-2",{"opacity-60":h.value===se}]),draggable:"true",onDragstart:ve=>_e(se),onDragover:K[6]||(K[6]=e.withModifiers(()=>{},["prevent"])),onDrop:ve=>O(se),onDragend:K[7]||(K[7]=ve=>h.value=null)},[e.createElementVNode("button",{type:"button",class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-stone-500 hover:text-stone-900",disabled:z.value,"aria-label":"Перетягнути"},[e.createVNode(e.unref(H.GripVertical),{class:"h-4 w-4"})],8,xp),e.createElementVNode("div",{class:"flex-1 text-sm text-stone-900",title:te.text},e.toDisplayString(te.text),9,wp),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:z.value,onClick:e.withModifiers(ve=>Le(te.id),["stop"]),"aria-label":`Видалити ${te.text}`},[e.createVNode(e.unref(H.X),{class:"h-4 w-4"})],8,_p)],42,kp))),128)),a.value.length===0?(e.openBlock(),e.createElementBlock("p",Cp,"Немає вибраних значень")):e.createCommentVNode("",!0)])],512)],64))}}),[["__scopeId","data-v-da4b4da7"]]),vp={class:"flex items-center gap-2 w-full"},Ep={class:"relative flex-1"},Bp=["placeholder","disabled","onKeydown"],Vp=["disabled"],Sp={key:0,class:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/50"},$p={class:"bg-white text-gray-900 rounded-lg shadow-lg w-[480px] max-h-[80vh] overflow-y-auto"},Np={class:"p-3 border-b font-semibold text-gray-900 flex justify-between items-center"},Ap=["onClick"],Mp={key:0,class:"p-4 text-sm text-gray-500"},or=e.defineComponent({__name:"vs-input-address",props:e.mergeModels({api:{default:""},geom:{default:""},includes:{default:()=>[]},bbox:{},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","update:geom"],["update:modelValue"]),setup(o,{emit:t}){const n=/{{\s*([^}]+?)\s*}}/g,r=o,l=t,{inputClass:a}=Oe(r.style),s=e.useModel(o,"modelValue"),i=e.computed({get:()=>s.value,set:L=>{s.value=L}}),c=e.ref(!1),d=e.ref([]),u=e.ref(!1),p=e.ref(null);e.watch(u,L=>{typeof document>"u"||(L?(p.value=document.body.style.overflow,document.body.style.overflow="hidden"):p.value!=null?(document.body.style.overflow=p.value,p.value=null):document.body.style.removeProperty("overflow"))}),e.onBeforeUnmount(()=>{typeof document>"u"||(p.value!=null?document.body.style.overflow=p.value:document.body.style.removeProperty("overflow"))});const h=e.computed(()=>r.placeholder??""),k=e.computed(()=>!!r.disabled),m=L=>{if(!L)return null;if(Array.isArray(L))return L;if(typeof L=="string"){const E=L.split(",").map(S=>S.trim()).filter(Boolean);return E.length!==4?null:E.map(Number)}return null},g=e.computed(()=>{const L=m(r.bbox);if(!L||L.length!==4)return null;const E=L.map(Number);return E.some(S=>Number.isNaN(S))?null:E}),y=e.computed(()=>{const L=g.value;if(!L)return"";const[E,S,N,v]=L;return`${E},${Math.max(S,v)},${N},${Math.min(S,v)}`});e.computed(()=>y.value?"1":"0");const C=e.inject("values");function x(){!k.value&&i.value.trim()&&w()}async function w(){const L=(i.value||"").trim();if(!L)return;let E=L;if(r.includes?.length&&C?.value){const N=r.includes.map(v=>C.value?.[v]).filter(Boolean);N.length&&(E=`${N.join(", ")}, ${L}`)}const S=X(E);if(S){c.value=!0;try{const v=await(await fetch(S)).json();d.value=Array.isArray(v)?v:[],u.value=!0}catch(N){console.error("Address search error:",N)}finally{c.value=!1}}}function V(){u.value=!u.value}function z(L){if(!L)return;u.value=!1;const E=parseFloat(L.lat),N={type:"Point",coordinates:[parseFloat(L.lon),E]};r.geom&&C?.value&&(C.value[r.geom]=N),l("update:geom",N)}function X(L){if(!r.api)return"";const E={value:encodeURIComponent(L),bbox:g.value?g.value.join(","):""};return r.api.replace(n,(S,N)=>E[N.trim()]??"")}return(L,E)=>(e.openBlock(),e.createElementBlock("div",vp,[e.createElementVNode("div",Ep,[e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":E[0]||(E[0]=S=>i.value=S),placeholder:h.value,disabled:k.value,class:e.normalizeClass(["py-1.5 px-3 block w-full bg-white border rounded-md placeholder:text-gray-400 focus:ring-2 focus:ring-blue-500",[e.unref(a),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"},onKeydown:e.withKeys(e.withModifiers(x,["prevent"]),["enter"])},null,42,Bp),[[e.vModelText,i.value]]),d.value.length?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"absolute right-2 top-1/2 -translate-y-1/2 text-gray-500 hover:text-blue-600",onClick:V,title:"Show search results"},[e.createVNode(e.unref(H.Info),{class:"h-4 w-4"})])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:w,class:"flex items-center justify-center px-2 py-2 border rounded-md bg-white hover:bg-gray-50 text-gray-600 hover:text-blue-600 disabled:opacity-50 h-[38px]",disabled:c.value||!i.value?.trim()},[c.value?(e.openBlock(),e.createBlock(e.unref(H.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(e.openBlock(),e.createBlock(e.unref(H.Search),{key:0,class:"h-4 w-4"}))],8,Vp),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[u.value?(e.openBlock(),e.createElementBlock("div",Sp,[e.createElementVNode("div",$p,[e.createElementVNode("div",Np,[E[2]||(E[2]=e.createElementVNode("span",null,"Результати пошуку",-1)),e.createElementVNode("button",{class:"text-gray-500 hover:text-blue-600",onClick:E[1]||(E[1]=S=>u.value=!1),title:"Close"},[e.createVNode(e.unref(H.X),{class:"h-4 w-4"})])]),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(S,N)=>(e.openBlock(),e.createElementBlock("li",{key:N,onClick:v=>z(S),class:"px-3 py-2 cursor-pointer hover:bg-gray-100 border-b text-sm"},e.toDisplayString(S.display_name),9,Ap))),128))]),d.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Mp," Не знайдено результатів "))])])):e.createCommentVNode("",!0)]))]))}}),Fp={class:"vs-datalist space-y-3"},Dp={class:"space-y-3"},Tp=["onClick","disabled"],Lp={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},Ip=["disabled"],Rp=ke(e.defineComponent({__name:"vs-input-datalist",props:e.mergeModels({schema:{default:()=>[]},minItems:{default:0},maxItems:{default:void 0},addButtonText:{default:"Додати позицію"},emptyLabel:{default:"Немає рядків"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>Array.isArray(n.value)?n.value:[]),l=e.ref([]),a=e.computed(()=>t.schema?.map(g=>({...g,disabled:t.disabled||g.disabled}))??[]),s=e.computed(()=>a.value.map(g=>m(g))),i=e.computed(()=>t.disabled?!1:t.maxItems?r.value.length<t.maxItems:!0),c=e.computed(()=>t.disabled||r.value.length<=(t.minItems||0));e.watch(()=>r.value.length,()=>{d(),u()},{immediate:!0}),e.watch(()=>t.schema,u,{immediate:!0,deep:!0});function d(){const g=r.value.length;l.value.length<g?l.value=[...l.value,...Array.from({length:g-l.value.length},()=>eo())]:l.value.length>g&&l.value.splice(g)}function u(){if(!t.minItems||r.value.length>=t.minItems)return;const g=t.minItems-r.value.length,y=Array.from({length:g},p);n.value=[...r.value,...y]}function p(){const g={};return a.value.forEach(y=>{g[y.name]=y?.default??null}),g}function h(){i.value&&(n.value=[...r.value,p()],d())}function k(g){c.value||(n.value=r.value.filter((y,C)=>C!==g),d(),u())}function m(g){return{...g}}return(g,y)=>(e.openBlock(),e.createElementBlock("div",Fp,[e.createElementVNode("div",Dp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(C,x)=>(e.openBlock(),e.createElementBlock("div",{key:l.value[x],class:"flex items-center gap-3"},[e.createVNode(rt,{schema:s.value,layout:"inline",navigation:!1,values:r.value[x],"onUpdate:values":w=>r.value[x]=w,"form-id":l.value[x]},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:w=>k(x),disabled:c.value},[e.createVNode(e.unref(H.Trash2),{class:"h-4 w-4"})],8,Tp)]))),128)),r.value.length===0?(e.openBlock(),e.createElementBlock("div",Lp,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:h,disabled:!i.value},[e.createVNode(e.unref(H.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,Ip)]))}}),[["__scopeId","data-v-260e3e66"]]),Op={class:"vs-dataform space-y-4"},Pp=["draggable","onDragstart","onDragover","onDragenter","onDrop"],zp={class:"flex items-center gap-2"},jp=["onClick"],Up={class:"text-sm font-medium text-gray-700"},Hp={class:"flex items-center gap-2"},qp=["title","onClick","disabled"],Kp=["title","onClick","disabled"],Wp={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},Gp=["disabled"],Yp=ke(e.defineComponent({__name:"vs-input-dataform",props:e.mergeModels({schema:{default:()=>[]},minGroups:{default:0},maxGroups:{default:void 0},addButtonText:{default:"Додати групу фільтрів"},groupLabel:{default:void 0},duplicateTitle:{default:"Дублювати групу"},removeTitle:{default:"Видалити групу"},emptyLabel:{},view:{default:"default"},collapsible:{type:Boolean,default:!1},draggable:{type:Boolean,default:!0},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref([]),l=e.ref([]),a=e.ref(0),s=e.ref(null),i=e.ref(null),c=e.ref(null),d=e.computed(()=>t.groupLabel??"Group"),u=e.computed(()=>t.emptyLabel??"Ще немає груп"),p=e.computed(()=>t.schema?.map(ne=>({...ne,disabled:t.disabled||ne.disabled}))??[]),h=e.computed(()=>p.value.map(ne=>S(ne))),k=e.computed(()=>t.view==="accordion"),m=e.computed(()=>!!(t.collapsible||k.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,()=>{x(),w(),V()},{immediate:!0}),e.watch(()=>t.schema,V,{immediate:!0,deep:!0}),e.watch(()=>t.view,()=>{w()},{immediate:!0});function x(){const ne=n.value.length;r.value.length<ne?r.value=[...r.value,...Array.from({length:ne-r.value.length},()=>eo())]:r.value.length>ne&&r.value.splice(ne)}function w(){const ne=n.value.length;k.value?ne===0?a.value=-1:a.value>=ne?a.value=ne-1:a.value<0&&(a.value=0):l.value.length<ne?l.value=[...l.value,...Array.from({length:ne-l.value.length},()=>!1)]:l.value.length>ne&&l.value.splice(ne)}function V(){if(!t.minGroups||n.value.length>=t.minGroups)return;const ne=t.minGroups-n.value.length,ie=Array.from({length:ne},z);n.value=[...n.value,...ie],w()}function z(){const ne={};return p.value.forEach(ie=>{ne[ie.name]=ie?.default??null}),ne}function X(){y.value&&(n.value=[...n.value,z()],x(),w())}function L(ne){C.value||(n.value=n.value.filter((ie,ge)=>ge!==ne),x(),k.value?a.value>=n.value.length&&(a.value=n.value.length-1):l.value.splice(ne,1),V())}function E(ne){if(t.disabled)return;const ie=JSON.parse(JSON.stringify(n.value[ne]??{}));n.value=[...n.value.slice(0,ne+1),ie,...n.value.slice(ne+1)],x(),k.value?a.value>ne&&(a.value+=1):l.value.splice(ne+1,0,l.value[ne]??!1)}function S(ne){return{...ne}}function N(ne){return k.value?a.value===-1&&ne===0?!1:a.value!==ne:!!l.value[ne]}function v(ne){if(m.value){if(k.value){a.value=ne;return}l.value[ne]=!l.value[ne]}}function $(ne,ie){if(!g.value||t.disabled){ie.preventDefault();return}s.value=ne,i.value=ne,c.value={groups:JSON.parse(JSON.stringify(n.value)),keys:[...r.value],states:[...l.value]},ie.dataTransfer?.setData("text/plain",String(ne)),ie.dataTransfer?.setDragImage?.(ie.currentTarget,0,0)}function R(ne,ie){!g.value||t.disabled||s.value!==null&&ee(ne,ie)}function B(ne,ie){ee(ne,ie)}function F(ne){!g.value||t.disabled||me()}function D(){c.value&&G(),s.value=null,i.value=null,c.value=null}function Z(ne,ie){const ge=[...n.value],[Q]=ge.splice(ne,1);ge.splice(ie,0,Q),n.value=ge;const de=[...r.value],[he]=de.splice(ne,1);if(de.splice(ie,0,he),r.value=de,k.value)a.value===ne&&(a.value=ie);else{const Be=[...l.value],[$e]=Be.splice(ne,1);Be.splice(ie,0,$e),l.value=Be}}function G(){c.value&&(n.value=c.value.groups,r.value=c.value.keys,l.value=c.value.states,c.value=null,i.value=null)}function ee(ne,ie){if(s.value===null)return;const ge=le(ne,ie);i.value=ge,we(ge)}function le(ne,ie){if(!ie?.currentTarget)return ne;const ge=ie.currentTarget.getBoundingClientRect(),de=ie.clientY-ge.top>ge.height/2?ne+1:ne;return Math.max(0,Math.min(de,n.value.length))}function we(ne){const ie=s.value;if(ie===null)return;let ge=ne;if(ge>n.value.length&&(ge=n.value.length),ge===ie||ge===ie+1)return;const Q=ge>ie?ge-1:ge;Z(ie,Q),s.value=Q,i.value=ge>ie?Q+1:Q}function me(){c.value=null,s.value=null,i.value=null}return(ne,ie)=>(e.openBlock(),e.createElementBlock("div",Op,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(ge,Q)=>(e.openBlock(),e.createElementBlock("div",{key:r.value[Q],class:e.normalizeClass(["relative border border-gray-200 rounded-lg bg-white transition vs-dataform__group",[t.view==="accordion"?"overflow-hidden":N(Q)?"pt-6 px-6":"p-6"]]),draggable:g.value&&!t.disabled,onDragstart:de=>$(Q,de),onDragend:D,onDragover:e.withModifiers(de=>R(Q,de),["prevent"]),onDragenter:e.withModifiers(de=>B(Q,de),["prevent"]),onDrop:e.withModifiers(de=>F(),["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"&&!N(Q)?"rounded-t-lg":"rounded-lg"]])},[e.createElementVNode("div",zp,[g.value?(e.openBlock(),e.createBlock(e.unref(H.GripVertical),{key:0,class:"h-4 w-4 text-gray-400","aria-hidden":"true"})):e.createCommentVNode("",!0),m.value?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"rounded-full p-1 text-gray-500 transition hover:bg-gray-100",onClick:de=>v(Q)},[e.createVNode(e.unref(H.ChevronDown),{class:e.normalizeClass(["h-4 w-4 transition",N(Q)?"-rotate-90":"rotate-0"])},null,8,["class"])],8,jp)):e.createCommentVNode("",!0),e.createElementVNode("div",Up,e.toDisplayString(`${d.value} (${Q+1})`),1)]),e.createElementVNode("div",Hp,[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:de=>E(Q),disabled:t.disabled,draggable:"false"},[e.createVNode(e.unref(H.Copy),{class:"h-4 w-4"})],8,qp),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:de=>L(Q),disabled:C.value,draggable:"false"},[e.createVNode(e.unref(H.Trash2),{class:"h-4 w-4"})],8,Kp)])],2),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(t.view==="accordion"?"p-6":"pt-6")},[e.createVNode(rt,{class:"vs-dataform__form",schema:h.value,layout:"inline",navigation:!1,values:n.value[Q],"onUpdate:values":de=>n.value[Q]=de,"form-id":r.value[Q],disabled:t.disabled},null,8,["schema","values","onUpdate:values","form-id","disabled"])],2),[[e.vShow,!N(Q)]])],42,Pp))),128)),n.value.length===0?(e.openBlock(),e.createElementBlock("div",Wp,e.toDisplayString(u.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:X,disabled:!y.value},[e.createVNode(e.unref(H.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,Gp)]))}}),[["__scopeId","data-v-cfbcfed8"]]),Vn="__vs_form_monaco_loader__",Rt="__vs_form_monaco_script_loader__",Sn="__vs_form_monaco_editor_loader__",to=e.defineComponent({__name:"vs-input-monaco",props:e.mergeModels({syntax:{default:"xml"},theme:{default:"vs-light"},height:{default:280},minimap:{type:Boolean,default:!1},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:t}){const n=o,r=e.useModel(o,"modelValue"),l=e.ref(null),a=e.computed(()=>typeof n.height=="number"?`${n.height}px`:n.height||"280px");let s=null,i=null,c=!1;const d=()=>{if(i)return Promise.resolve(i);if(typeof window>"u")return Promise.resolve(null);const m=window;if(m.monaco?.editor?.create)return i=m.monaco,Promise.resolve(i);if(m[Vn])return m[Vn];const y=(async()=>{const C=V=>{if(Array.from(document.styleSheets||[]).some(L=>L?.href?.includes(V)))return;const X=document.createElement("link");X.rel="stylesheet",X.href=V,document.head.appendChild(X)},x=V=>{if(m[Rt]?.[V])return m[Rt][V];m[Rt]||={};const z=Array.from(document.scripts).find(X=>X.src===V);return z?(m[Rt][V]=new Promise((X,L)=>{const E=z.readyState;if(z.dataset.loaded==="true"||E==="loaded"||E==="complete"){X();return}z.addEventListener("load",()=>{z.dataset.loaded="true",X()},{once:!0}),z.addEventListener("error",S=>L(S),{once:!0})}),m[Rt][V]):(m[Rt][V]=new Promise((X,L)=>{const E=document.createElement("script");E.src=V,E.async=!0,E.onload=()=>{E.dataset.loaded="true",X()},E.onerror=S=>L(S),document.body.appendChild(E)}),m[Rt][V])},w="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs";return C(`${w}/editor/editor.main.min.css`),await x(`${w}/loader.min.js`),m[Sn]||(m[Sn]=new Promise((V,z)=>{window.require.config({paths:{vs:w}}),window.require(["vs/editor/editor.main"],()=>{i=window.monaco,m.monaco=i,V(i)},X=>z(X))}).catch(V=>{throw delete m[Sn],V})),m[Sn]})().catch(C=>{throw delete m[Vn],C});return m[Vn]=y,y},u=()=>{!l.value||!i||(s&&(s.dispose(),s=null),s=i.editor.create(l.value,{value:r.value||"",language:n.syntax,theme:n.theme,automaticLayout:!0,minimap:{enabled:!!n.minimap},readOnly:!!n.disabled}),s.onDidChangeModelContent(()=>{c||(r.value=s.getValue())}))},p=()=>{s?.focus()},h=()=>s,k=()=>i;return e.watch(()=>r.value,m=>{if(!s)return;const g=s.getValue();m!==g&&(c=!0,s.setValue(m||""),c=!1)}),e.watch(()=>n.syntax,m=>{!s||!i||i.editor.setModelLanguage(s.getModel(),m||"xml")}),e.watch(()=>n.theme,m=>{i&&i.editor.setTheme(m||"vs-light")}),e.watch(()=>n.disabled,m=>{s&&s.updateOptions({readOnly:!!m})}),e.watch(()=>n.minimap,m=>{s&&s.updateOptions({minimap:{enabled:!!m}})}),e.onMounted(async()=>{try{const m=await d();if(!m||!m.editor)return;i=m,u()}catch(m){console.error("Failed to load Monaco editor",m)}}),e.onBeforeUnmount(()=>{s&&(s.dispose(),s=null)}),t({focus:p,getEditor:h,getMonaco:k}),(m,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))}}),rr={VsInputText:zt,VsInputRadio:Xn,VsInputInlineSelect:kn,"vs-input-text":zt,"vs-input-password":xl,"vs-input-textarea":Oo,"vs-input-richtext":Po,"vs-input-mask":mn,"vs-input-number":Vo,"vs-input-radio":Xn,"vs-input-select":Qn,"vs-input-inline-select":kn,"inline-select":kn,"vs-input-switcher":Kn,"vs-input-static":Wn,"vs-input-container":Lo,"vs-input-date":ga,"vs-input-checkbox":No,"vs-input-file":Fo,"vs-input-file2":Jn,file2:Jn,File2:Jn,"vs-input-html":Wn,"vs-input-email":Gn,"vs-input-tel":Yn,"vs-input-datatable":zo,"vs-input-map":Go,"vs-input-file-list":Do,"vs-input-tags":Yo,"vs-input-slug":Xo,"vs-input-codegen":Zo,"vs-input-key-value":Jo,"vs-input-text[]":Qo,"vs-input-range":tr,"vs-input-color":er,"vs-input-native-select":Qn,VsInputArraySelect:Bn,"vs-input-array":nr,"vs-input-array-select":Bn,"array-select":Bn,"vs-input-address":or,"vs-input-datalist":Rp,"vs-input-dataform":Yp,"vs-input-monaco":to},Xp=e.defineComponent({__name:"behavior",props:{api:{},set:{},button:{},error:{},value:{}},setup(o){const t=o,n=e.inject("values");async function r(){try{if(!t.api)return;const l=t.api.replace("{{value}}",t.value),a=await fetch(l);if(!a.ok){fe.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const s=await a.json();if(!t.set||!n)return;for(const[i,c]of Object.entries(t.set))n.value[i]=s.result[c]}catch(l){console.error(t.error,l)}}return(l,a)=>(e.openBlock(),e.createElementBlock("button",{onClick:r,class:"vs-button relative inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-blue-500 hover:border-blue-500 hover:bg-blue-500 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 ml-0 md:ml-2 mt-2 md:mt-0 py-[8px] md:w-2/4 whitespace-nowrap w-full"},e.toDisplayString(l.button),1))}}),Zp={class:"flex flex-col gap-1 w-full"},Jp={class:"w-full"},Qp=["disabled"],ef=["innerHTML"],tf=2e3,nf=10,lr=e.defineComponent({__name:"vs-compact-form-layout",props:e.mergeModels({item:{default:{}},layout:{default:"default"},style:{default:{}},type:{default:""},error:{type:[String,Boolean]},columns:{default:()=>({container:12,label:3})}},{modelValue:{default:null},modelModifiers:{}}),emits:e.mergeModels(["value-selected"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=e.useModel(o,"modelValue"),l=t,a=e.computed(()=>bl[`${n.layout}`]),s=["label","placeholder","info","description","text","html"],i=e.ref(S()),c=e.computed(()=>X(n.item,i.value)),d=e.computed(()=>rr?.[`vs-input-${n.item.type}`]),u=e.inject("field-props"),p=e.computed(()=>{const v=e.unref(d);if(!v)return new Set;const $=v.props??v.__vccOpts?.props;if(!$)return new Set;const R=Array.isArray($)?$:Object.keys($);return new Set(R)}),k=[...["min","max","step"],"api","set","mask"],m=e.computed(()=>{const v={...c.value??{}},$=n.item?.name;$&&u?.value?.[$]&&Object.assign(v,u.value[$]);const R=p.value;let B;return R.size?B=Object.fromEntries(Object.entries(v).filter(([F])=>R.has(F))):B=v,k.forEach(F=>{const D=v[F];D!=null&&(B[F]=D)}),B}),g=v=>{const $=typeof v=="object"&&v!==null?v:{value:v};l("value-selected",{...$,name:$.name??n.item?.name})},y=/{{\s*([^}]+?)\s*}}/g,C=e.inject("values"),x=e.ref(!1),w=e.computed(()=>{const v=n.item?.api,$=n.item?.type?.toLowerCase();return typeof v=="string"&&v.trim().length>0&&($==="text"||$==="mask")});function V(v,$){if(!(v==null||!$))return $.split(".").reduce((R,B)=>R?.[B.trim()],v)}async function z(){const v=String(r.value??"").trim();if(!v)return;const $=(n.item?.api??"").trim();if(!$)return;const R=$.replace(y,(B,F)=>F.trim()==="value"?encodeURIComponent(v):"");x.value=!0;try{let B=await fetch(R),F=0;for(;B.status===202&&F<nf;)F+=1,await new Promise(le=>{setTimeout(le,tf)}),B=await fetch(R);if(B.status===202){fe.notify({type:"warning",title:"Validation",message:"Сервер ще обробляє запит. Спробуйте пізніше."});return}if(!B.ok){fe.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const D=await B.json(),Z=D?.result!==void 0?D.result:D,G=n.item?.set;if(!G||!C?.value)return;const ee=n.item?.name;Object.entries(G).forEach(([le,we])=>{if(!le)return;let me=we;ee&&me.startsWith(`${ee}.`)&&(me=me.slice(ee.length+1));const ne=V(Z,me);C.value[le]=ne??null})}catch(B){console.error("API lookup error:",B),fe.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."})}finally{x.value=!1}}e.onMounted(()=>{i.value=S(),window.addEventListener("storage",N)}),e.onUnmounted(()=>{window.removeEventListener("storage",N)});function X(v,$){if(!v)return{};const R={...v};return s.forEach(B=>{const F=E(v,B,$);F!=null&&(R[B]=F)}),Array.isArray(v.options)&&(R.options=v.options.map(B=>L(B,$))),R}function L(v,$){if(!v)return v;const R={...v},B=E(v,"label",$),F=E(v,"text",$);return B!=null&&(R.label=B),F!=null?R.text=F:B!=null&&(R.text=B),R}function E(v,$,R){const B=`${$}:${R}`;if(v?.[B]!=null)return v[B];if($==="label"&&v?.[R]!=null)return v[R];if(v?.[$]!=null)return v[$];if($==="label"){if(v?.ua!=null)return v.ua;if(v?.en!=null)return v.en}if($==="text"||$==="html"){if(v?.ua!=null)return v.ua;if(v?.en!=null)return v.en}return null}function S(){return typeof window>"u"?"uk":localStorage.getItem("locale")||"uk"}function N(){i.value=S()}return(v,$)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{ua:c.value.ua,error:n.error||"",item:c.value,columns:n.columns,label:c.value.label},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["flex w-full",`${n.item.type}-component`])},[e.createElementVNode("div",Zp,[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center gap-2 w-full",{"flex-1":w.value}])},[e.createElementVNode("div",Jp,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),e.mergeProps(m.value,{modelValue:r.value,"onUpdate:modelValue":$[0]||($[0]=R=>r.value=R),onValueSelected:g}),null,16,["modelValue"]))]),w.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"flex items-center justify-center px-2 py-2 border rounded-md bg-white hover:bg-gray-50 text-gray-600 hover:text-blue-600 disabled:opacity-50 h-[38px] shrink-0",disabled:x.value||!r.value?.toString().trim(),onClick:z},[x.value?(e.openBlock(),e.createBlock(e.unref(H.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(e.openBlock(),e.createBlock(e.unref(H.Search),{key:0,class:"h-4 w-4"}))],8,Qp)):e.createCommentVNode("",!0)],2),c.value.description&&n.layout!=="settings"?(e.openBlock(),e.createElementBlock("p",{key:0,class:"text-sm text-gray-500",innerHTML:c.value.description},null,8,ef)):e.createCommentVNode("",!0)]),c.value.behavior?.api&&c.value.behavior?.button?(e.openBlock(),e.createBlock(Xp,e.mergeProps({key:0},c.value.behavior,{value:r.value}),null,16,["value"])):e.createCommentVNode("",!0)],2)]),_:1},8,["ua","error","item","columns","label"]))}}),of={class:"text-sm text-gray-800 mb-[4px] font-medium dark:text-neutral-300"},rf={class:"vs-compact-form-navigation__rail mt-[6px]"},lf=["onClick"],af=ke(e.defineComponent({__name:"vs-compact-form-navigation",props:{target:{},scrollContainer:{},title:{default:"Навігація"},enabled:{type:Boolean,default:!0},width:{default:400}},setup(o,{expose:t}){const n=o,r=e.ref([]),l=e.ref(""),a=e.ref(""),s=e.computed(()=>!!n.enabled),i=e.computed(()=>["vs-compact-form-navigation flex flex-col pl-[6px] pt-[8px] pr-[8px]","sticky top-0 self-start shrink-0","max-h-full min-h-0 overflow-y-auto"]),c=e.computed(()=>{const v=n.width;if(v==null)return{};const $=typeof v=="number"?`${v}px`:`${v}`;return{width:$,minWidth:$}});let d=null,u=0,p=0,h=null,k=null,m=null;const g=()=>S(),y=()=>x();e.watch(()=>n.target,async v=>{if(X(),!v){h=null,r.value=[],l.value="";return}h=v,s.value&&(await e.nextTick(),z(v),x())},{immediate:!0}),e.watch(()=>n.scrollContainer,v=>{if(!s.value){k=v??null;return}C(v??null),e.nextTick(()=>x())},{immediate:!0}),e.onMounted(()=>{n.scrollContainer||C(null),x()}),e.onBeforeUnmount(()=>{X(),C(null,!0),h=null,typeof window<"u"&&(u&&window.cancelAnimationFrame(u),p&&window.cancelAnimationFrame(p))});function C(v,$=!1){if(m&&(m(),m=null),$){k=null;return}if(k=v??null,typeof window>"u")return;const R=v??window,B=window;R.addEventListener("scroll",g,{passive:!0}),B.addEventListener("resize",y),m=()=>{R.removeEventListener("scroll",g),B.removeEventListener("resize",y)}}function x(){if(!s.value||!h)return;u&&typeof window<"u"&&window.cancelAnimationFrame(u);const v=()=>{w(),u=0};typeof window>"u"?v():u=window.requestAnimationFrame(v)}function w(){if(!s.value||!h)return;const v=Array.from(h.querySelectorAll("h1, h2")),$=new Set,R=[];v.forEach((B,F)=>{const D=B.textContent?.trim()??"";if(!D)return;let Z=(B.getAttribute("id")??"").trim();Z||(Z=V(D)||`heading-${F+1}`);let G=Z,ee=1;for(;$.has(G);)G=`${Z}-${ee+=1}`;B.id!==G&&Object.assign(B,{id:G}),$.add(G),R.push({id:G,text:D,level:B.tagName.toLowerCase()==="h1"?1:2})}),r.value=R,R.length||(l.value=""),E()}function V(v){return v.toLowerCase().replace(/[^a-z0-9\s-]/g,"").trim().replace(/\s+/g,"-")}function z(v){!v||!s.value||typeof MutationObserver>"u"||(X(),d=new MutationObserver(()=>x()),d.observe(v,{childList:!0,subtree:!0}))}function X(){d&&(d.disconnect(),d=null)}function L(v){const $=k;if(!$)return typeof window>"u"?v.offsetTop:v.getBoundingClientRect().top+window.scrollY;const R=v.getBoundingClientRect(),B=$.getBoundingClientRect();return R.top-B.top+$.scrollTop}function E(){if(!s.value||!r.value.length)return;const v=k,$=(v?v.scrollTop:null)||(typeof window<"u"?window.scrollY:0),R=(v?v.clientHeight:null)||(typeof window<"u"?window.innerHeight:0),B=$+R;let F=null;for(let Z=0;Z<r.value.length;Z+=1){const G=r.value[Z],ee=document.getElementById(G.id);if(ee){const le=L(ee);le+ee.offsetHeight>$&&le<B&&(F=G.id)}}!F&&a.value&&(F=a.value),F&&(a.value=F);const D=v?v.scrollHeight-v.clientHeight:document.documentElement.scrollHeight-window.innerHeight;$+5>=D&&(F=r.value[r.value.length-1].id),F&&(l.value=F)}function S(){s.value&&(p&&window.cancelAnimationFrame(p),p=window.requestAnimationFrame(()=>{E(),p=0}))}function N(v){if(!s.value)return;const $=document.getElementById(v);if(!$)return;const R=k,B=Math.max(0,L($));R?R.scrollTo({top:B,behavior:"smooth"}):typeof window<"u"&&window.scrollTo({top:B,behavior:"smooth"})}return t({refresh:x}),(v,$)=>s.value&&r.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(i.value),style:e.normalizeStyle(c.value)},[e.createElementVNode("h2",of,e.toDisplayString(v.title),1),e.createElementVNode("div",rf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.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:B=>N(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,lf)],2))),128))])],6)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-1584a562"]]),st={required:"Це поле є обов’язковим",email:"Неправильний email",tel:"Неправильний телефон",minlength:o=>`Мінімальна довжина — ${o} символів`,maxlength:o=>`Максимальна довжина — ${o} символів`,min:o=>`Значення має бути не менше ${o}`,max:o=>`Значення має бути не більше ${o}`},sf=o=>typeof o=="string"?o.trim()?!1:st.required:Array.isArray(o)?o.map(n=>typeof n=="string"?n.trim():n).filter(n=>n!=null&&n!=="").length?!1:st.required:typeof o=="number"?Number?.isNaN(o)?st?.required:!1:o?!1:st.required,cf=o=>{const t=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;return o?t.test(o)?!1:st.email:!1},df=(o,t)=>{if(!o)return!1;const n=String(o).trim();if(!/^\+[1-9]\d{1,14}$/.test(n))return st.tel;const a=(typeof t?.digits=="number"&&Number.isFinite(t.digits)&&t.digits>0?t.digits:St(xt))||St(xt);return n.length-1!==a?st.tel:!1},ar=o=>o==null?0:typeof o=="string"?o.trim().length:Array.isArray(o)?o.length:typeof o=="number"?o.toString().length:String(o).length,uf=(o,t)=>{if(o==null)return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&ar(o)<n?t?.message||st.minlength(n):!1},pf=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&ar(o)>n?t?.message||st.maxlength(n):!1},sr=o=>{if(typeof o=="number")return o;if(typeof o=="string"){const t=o.trim().replace(",",".");return t?Number(t):Number.NaN}return Number(o)},ff=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value);if(!Number.isFinite(n))return!1;const r=sr(o);return Number.isFinite(r)&&r<n?t?.message||st.min(n):!1},mf=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value);if(!Number.isFinite(n))return!1;const r=sr(o);return Number.isFinite(r)&&r>n?t?.message||st.max(n):!1},hf=(o,t)=>{const n=t.pattern??t.regexp,r=typeof n=="string"?new RegExp(n):n;if(Array.isArray(o)){const l=o.filter(Boolean);return l.length===0||l.every(a=>r.test(a))?!1:t.message}return!r.test(o)&&o?t.message:!1},gf=(o,t)=>!1,yf=(o,t)=>{switch(typeof t=="string"?t:t.type){case"required":return sf(o);case"email":return cf(o);case"tel":return df(o,typeof t=="object"?t:void 0);case"regexp":return hf(o,t);case"minlength":return uf(o,t);case"maxlength":return pf(o,t);case"min":return ff(o,t);case"max":return mf(o,t);case"custom":return gf();default:return!1}},bf={autocomplete:"select",combobox:"select",datepicker:"date",markedtext:"mask",html:"static",geom:"map",filelist:"file-list",file:"file",dropzone:"file",inlineselect:"inline-select"};function ir(o){const t=o?.toLowerCase();return bf[t]||t}function no(o,t=!1){if(Array.isArray(o)){const r=[];return o.forEach(l=>{const a={...l};if(a.name=(l.name||l.id||l.key||"").toString(),a.type=ir(l.type),a.label=l.label||l.ua,a.rules=l.rules||l.validators,a.type==="email"&&!a.rules&&(a.rules=["email"]),a.type==="tel"&&!a.rules){const s=a.mask||xt,i=St(s)||St(xt);a.rules=[{type:"tel",digits:i}]}l.data&&(a.api=`/api/suggest/${l.data}`),a.disabled=a.disabled??t,Array.isArray(a.schema)&&(a.schema=no(a.schema,a.disabled)),r.push(a)}),r}const n=[];return Object.entries(o).forEach(r=>{const l={name:r[0],...r[1],type:ir(r[1].type),label:r[1].label||r[1].ua,rules:r[1].rules||r[1].validators,disabled:r[1].disabled??t};if(l.type==="email"&&!l.rules&&(l.rules=["email"]),l.type==="tel"&&!l.rules){const a=l.mask||xt,s=St(a)||St(xt);l.rules=[{type:"tel",digits:s}]}r[1].type?.includes("list")&&(l.multiple=!0),!l.api&&r[1].data&&(l.api=`/api/suggest/${r[1].data}`),Array.isArray(l.schema)&&(l.schema=no(l.schema,l.disabled)),n.push(l)}),n}function kf(o,t,n=!1){const r=e.computed(()=>no((Array.isArray(t),t),typeof n=="boolean"?n:n.value)),l=e.ref({});function a(d){const u=d?.conditions;if(!u)return!0;const p=Array.isArray(u)?u[0]:u,h=o?.value?.[p];return To(h,u)}const s=(d=r.value,u=!0)=>(d.forEach(p=>{const h=[],k=Number(p?.minlength),m=Number(p?.maxlength),g=Number(p?.min),y=Number(p?.max);!Number.isNaN(k)&&Number.isFinite(k)&&h.push({type:"minlength",value:k}),!Number.isNaN(m)&&Number.isFinite(m)&&h.push({type:"maxlength",value:m}),!Number.isNaN(g)&&Number.isFinite(g)&&h.push({type:"min",value:g}),!Number.isNaN(y)&&Number.isFinite(y)&&h.push({type:"max",value:y});const C=[...h,...p.rules||[]];if(C.length){if(!a(p)){delete l.value[p.name];return}let x=!1,w=null;C.forEach(V=>{const z=yf(o.value[p.name],V);z&&(x=!0,!w&&typeof z=="string"&&(w=z))}),x&&w?l.value[p.name]=w:delete l.value[p.name]}p.schema&&s(p.schema,!1)}),u&&Object.values(l.value).some(Boolean)?l.value:null),i=e.computed(()=>r.value?.filter(d=>d.hidden!==!0&&a(d)));return{errors:l,validate:s,reset:()=>{o.value={},l.value={}},visibleSchema:i}}const xf={class:"flex w-full h-full min-h-0 gap-6"},wf={key:0,"data-orientation":"horizontal",role:"none",class:"mt-1 shrink-0 h-[1px] w-full bg-slate-100 dark:bg-slate-600"},rt=e.defineComponent({__name:"vs-compact-form",props:e.mergeModels({schema:{default:()=>[]},style:{default:()=>({})},modelValue:{},layout:{default:()=>"default"},formId:{default:()=>""},disabled:{type:Boolean,default:!1},navigation:{type:Boolean,default:!1},navWidth:{default:400},columns:{}},{form:{default:()=>({})},formModifiers:{},modelValue:{default:()=>({})},modelModifiers:{},values:{default:void 0},valuesModifiers:{}}),emits:e.mergeModels(["handle-submit","update:modelValue","value-selected"],["update:form","update:modelValue","update:values"]),setup(o,{expose:t,emit:n}){const r=n,l=o,a=e.useModel(o,"form"),s=e.useModel(o,"modelValue"),i=e.useModel(o,"values"),c=e.computed({get:()=>i.value??s.value,set:B=>{s.value=B,i.value=B}}),{errors:d,validate:u,reset:p,visibleSchema:h}=kf(c,l.schema,e.toRef(l,"disabled")),k=e.ref(null),m=e.ref(null),g=e.ref({}),y=e.computed(()=>l.navigation),C=e.computed(()=>l.navWidth),x=e.computed(()=>l.style?.columns),w=Object.freeze({container:12,label:3}),V=e.computed(()=>l.columns??x.value??w),z=e.computed(()=>l.columns!=null||x.value!=null),X=e.computed(()=>z.value?"horizontal":l.layout),L=B=>B?.columns?"horizontal":X.value,E=B=>B?.columns??V.value,S=()=>{!l.formId&&c.value&&delete c.value.id,r("update:modelValue",c.value),u(),r("handle-submit",c.value)},N=B=>{r("value-selected",B)};t({validate:u,reset:p,errors:d}),e.onMounted(()=>{a.value={value:c.value,errors:d.value,reset:p,validate:u,formId:l.formId}});function v(B,F){if(B===F)return!0;if(typeof B!="object"||typeof F!="object"||!B||!F)return!1;const D=Object.keys(B),Z=Object.keys(F);return D.length!==Z.length?!1:D.every(G=>B[G]===F[G])}function $(B){return Array.isArray(B)?[...B]:B&&typeof B=="object"?{...B}:B}function R(B){Array.isArray(B)&&B.forEach(F=>{if(!F)return;const D=F.name,Z=F.default!==void 0;D&&Z&&c.value[D]===void 0&&(c.value[D]=$(F.default)),Array.isArray(F.schema)&&R(F.schema)})}return e.watch(h,B=>{R(B)},{immediate:!0,deep:!0}),e.provide("form",a),e.provide("values",c),e.provide("field-props",g),(B,F)=>(e.openBlock(),e.createElementBlock("div",xf,[e.createElementVNode("div",{class:"flex-1 min-h-0 overflow-y-auto overflow-x-visible",ref_key:"formScrollContainer",ref:m},[e.createElementVNode("form",{ref_key:"formRef",ref:k,onSubmit:e.withModifiers(S,["prevent"]),class:e.normalizeClass(["grid grid-cols-12 p-1",X.value==="default"?"gap-6":"gap-4"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(h),(D,Z)=>(e.openBlock(),e.createElementBlock("div",{key:D.name,class:e.normalizeClass(L(D)==="horizontal"?"col-span-12":`col-span-${D.col||12}`)},[e.createVNode(lr,{style:e.normalizeStyle(B.style),item:D,layout:L(D),columns:E(D),"model-value":c.value[D.name],"onUpdate:modelValue":G=>{if(D.name==="id"&&!B.formId)return;const ee=c.value[D.name];v(ee,G)||(c.value[D.name]=G)},error:e.unref(d)[D.name],onValueSelected:N},null,8,["style","item","layout","columns","model-value","onUpdate:modelValue","error"]),L(D)==="settings"&&Z+1!==e.unref(h).length?(e.openBlock(),e.createElementBlock("div",wf)):e.createCommentVNode("",!0)],2))),128))],34)],512),e.createVNode(af,{target:k.value,"scroll-container":m.value,enabled:y.value,width:C.value},null,8,["target","scroll-container","enabled","width"])]))}}),_f={class:"relative"},Cf={class:"w-full h-full fixed top-0 start-0 bg-black bg-opacity-50"},vf={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"},Ef={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},Bf={class:"font-medium text-gray-800 dark:text-[#ffffff]"},Vf={class:"p-4 mim-h-0 h-full overflow-auto"},cr=e.defineComponent({__name:"modal-edit",props:{schema:{},defaultValue:{},mode:{},token:{},form:{},api:{},method:{}},emits:["close","save","edit"],setup(o,{emit:t}){const n=o,r=t,l=e.ref(n.schema),a=e.ref(n.defaultValue?JSON.parse(JSON.stringify(n.defaultValue)):{}),s=e.ref({}),i=e.ref(n.token||""),c=e.ref(n.token||""),d=e.ref(n.mode),u=()=>{const y=n.method?.trim().toUpperCase();return y==="GET"||y==="POST"||y==="PUT"?y:d.value==="add"?"POST":"PUT"},p=()=>{fe.notify({type:"success",title:"Успішно",message:`Дані успішно ${d.value==="add"?"збережено":"оновлено"}`})},h=y=>{const C={};y.id!==void 0&&y.id!==null&&(C.id=y.id,c.value=y.id.toString()),y.obj&&typeof y.obj=="object"&&Object.assign(C,y.obj),Object.keys(C).length&&(a.value={...a.value,...C})},k=async y=>{if(console.log(y),y.ok){await y.json().catch(()=>({})),p(),r("save",a.value);return}const C=await y.json().catch(()=>({})),x=C.message||C.error;if(y.status===400){fe.notify({type:"warning",title:"Помилка валідації",message:x||"Некоректні дані (400)"});return}if(y.status===500){fe.notify({type:"error",title:"Серверна помилка",message:x||"Виникла помилка на сервері (500)"});return}fe.notify({type:"error",title:"Помилка",message:`Статус: ${y.status}`})};async function m(){const y=s.value.validate();if(y){fe.notify({type:"warning",title:"Помилка валідації",message:Object.entries(y).map(([x,w])=>`${x}: ${w}`).join(`
|
|
5
|
+
`)});return}d.value==="add"&&a.value&&delete a.value.id;const C=n.api?.trim();if(C){const x=u();try{const w=await fetch(C,{method:x,headers:x==="GET"?void 0:{"Content-Type":"application/json"},body:x==="GET"?void 0:JSON.stringify(a.value)});await k(w)}catch(w){fe.notify({type:"error",title:"Помилка з’єднання",message:w.message||"Не вдалося виконати запит"})}return}if(i.value)try{const x=await fetch(`/api/table/${i.value}`,{method:d.value==="add"?"POST":"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a.value)});await k(x)}catch(x){fe.notify({type:"error",title:"Помилка з’єднання",message:x.message||"Не вдалося виконати запит"})}else r("edit",a.value),g()}function g(){r("close")}return e.onMounted(async()=>{try{if(n.form&&!n.schema){const y=await fetch(`/api/template/form/${n.form}`);if(!y.ok){fe.notify({type:y.status>=400&&y.status<500?"warning":"error",title:"Error",message:`Error code: ${y.status}`});return}const C=await y.json();l.value=C.schema,C.id&&(c.value=C.id),C.token&&(i.value=C.token,c.value||(c.value=C.token))}else if(n.token&&!n.defaultValue){i.value=n.token;const y=await fetch(`/api/form/${i.value}`);if(!y.ok){fe.notify({type:y.status>=400&&y.status<500?"warning":"error",title:"Error",message:`Error code: ${y.status}`});return}const C=await y.json();l.value=C.schema,C.data?a.value=C.data:d.value="add",h({id:C.id,obj:C.obj})}}catch(y){fe.notify({type:"error",title:"Error",message:y.message||"Unexpected error"}),console.error(y)}}),(y,C)=>(e.openBlock(),e.createElementBlock("div",_f,[e.createElementVNode("div",Cf,[e.createElementVNode("div",vf,[e.createElementVNode("div",Ef,[e.createElementVNode("h3",Bf,e.toDisplayString(d.value==="add"?"Додати":"Змінити"),1),e.createElementVNode("button",{onClick:g,type:"button",class:"size-8 inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:hover:bg-neutral-600 dark:text-neutral-400 dark:focus:bg-neutral-600"},[C[2]||(C[2]=e.createElementVNode("span",{class:"sr-only"},"Close",-1)),e.createVNode(e.unref(H.X),{class:"h-4 w-4 flex-shrink-0"})])]),e.createElementVNode("div",Vf,[l.value?(e.openBlock(),e.createBlock(rt,{key:0,schema:l.value,values:a.value,"onUpdate:values":C[0]||(C[0]=x=>a.value=x),form:s.value,"onUpdate:form":C[1]||(C[1]=x=>s.value=x),formId:c.value},null,8,["schema","values","form","formId"])):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:"vs-form__head mr-5 mb-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},[e.createElementVNode("button",{type:"button",onClick:g,class:"vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-red-500 hover:border-red-500 hover:bg-red-500 focus:ring-red-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 mr-2"}," Скасувати "),e.createElementVNode("button",{onClick:m,type:"button",class:"vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border-1 border-transparent text-white bg-blue-500 hover:bg-blue-600 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1"}," Зберегти ")])])])]))}}),Sf=1440*60*1e3,$f=["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"],Nf=["січ","лют","бер","квіт","трав","черв","лип","серп","вер","жовт","лист","груд"],Af=["нд","пн","вт","ср","чт","пт","сб"];function Pe(o){return o instanceof Date&&!Number.isNaN(o.getTime())}const jt=o=>new Date(o.getTime());function Ot(o){const t=jt(o);return t.setHours(0,0,0,0),t}function Yt(o){const t=jt(o);return t.setHours(23,59,59,999),t}function oo(o){return Ot(new Date(o.getFullYear(),o.getMonth(),1))}function ro(o){return Yt(new Date(o.getFullYear(),o.getMonth()+1,0))}function lo(o,t){const n=new Date(o),r=n.getDate();n.setDate(1),n.setMonth(n.getMonth()+t);const l=new Date(n.getFullYear(),n.getMonth()+1,0).getDate();return n.setDate(Math.min(r,l)),n}function Mf(o,t){return lo(o,-1)}function $n(o,t){const n=new Date(o);return n.setFullYear(n.getFullYear()+t),n}function dr(o,t){return $n(o,-t)}function ur(o){return Ot(new Date(o.getFullYear(),0,1))}function pr(o){return Yt(new Date(o.getFullYear(),11,31))}function Ff(o){const t=Math.floor(o.getFullYear()/10)*10;return Ot(new Date(t,0,1))}function Df(o){const t=Math.floor(o.getFullYear()/10)*10+9;return Yt(new Date(t,11,31))}const it=o=>o.getFullYear(),Nn=o=>Math.floor(o.getFullYear()/10)*10;function Tf(o){const t=[];let n=Ot(o.start);const r=Ot(o.end);for(;n<=r;)t.push(jt(n)),n=new Date(n.getTime()+Sf);return t}function Lf(o){const t=[];let n=oo(o.start);const r=ro(o.end);for(;n<=r;)t.push(jt(n)),n=lo(n,1);return t}function If(o){const t=[];let n=ur(o.start);const r=pr(o.end);for(;n<=r;)t.push(jt(n)),n=$n(n,1);return t}function ao(o,t=1){const n=Ot(o),r=(n.getDay()-t+7)%7;return n.setDate(n.getDate()-r),n}function Rf(o,t=1){const n=ao(o,t);return n.setDate(n.getDate()+6),Yt(n)}function Of(o,t,n=0){const r=ao(o,n),l=(t-n+7)%7;return r.setDate(r.getDate()+l),r}const An=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear()&&o.getMonth()===t.getMonth()&&o.getDate()===t.getDate(),so=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear()&&o.getMonth()===t.getMonth(),fr=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear(),mr=(o,t)=>!!o&&!!t&&An(o,t)&&o.getHours()===t.getHours(),Pf=(o,t)=>!!o&&!!t&&mr(o,t)&&o.getMinutes()===t.getMinutes();function zf(o,t){const n=o.getTime();return n>=t.start.getTime()&&n<=t.end.getTime()}const Xt=(o,t)=>!!o&&!!t&&o.getTime()<t.getTime(),Zt=(o,t)=>!!o&&!!t&&o.getTime()>t.getTime();function jf(o){const t=o.filter(n=>Pe(n));if(t.length)return t.reduce((n,r)=>n.getTime()>=r.getTime()?n:r)}function Uf(o){const t=o.filter(n=>Pe(n));if(t.length)return t.reduce((n,r)=>n.getTime()<=r.getTime()?n:r)}function hr(o,t){const n=jt(o);return typeof t.year=="number"&&n.setFullYear(t.year),typeof t.month=="number"&&n.setMonth(t.month),typeof t.date=="number"&&n.setDate(t.date),typeof t.hours=="number"&&n.setHours(t.hours),typeof t.minutes=="number"&&n.setMinutes(t.minutes),typeof t.seconds=="number"&&n.setSeconds(t.seconds),typeof t.milliseconds=="number"&&n.setMilliseconds(t.milliseconds),n}const Mn=(o,t=2)=>String(o).padStart(t,"0");function gr(o,t){return t==="wide"?$f[o]:Nf[o]}function Hf(o){return Af[o]}const qf=[{token:"LLLL",format:o=>gr(o.getMonth(),"wide")},{token:"LLL",format:o=>gr(o.getMonth(),"abbreviated")},{token:"EE",format:o=>Hf(o.getDay())},{token:"yyyy",format:o=>String(o.getFullYear())},{token:"MM",format:o=>Mn(o.getMonth()+1)},{token:"dd",format:o=>Mn(o.getDate())},{token:"HH",format:o=>Mn(o.getHours())},{token:"mm",format:o=>Mn(o.getMinutes())}];function Fn(o,t){if(!Pe(o))return"";let n="",r=0;for(;r<t.length;){const l=qf.find(a=>t.startsWith(a.token,r));l?(n+=l.format(o),r+=l.token.length):(n+=t[r],r+=1)}return n}const Kf={"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 yr(o,t){const n=Kf[t];if(!n){const l=new Date(o);return Pe(l)?l:null}const r=o.match(n);if(!r)return null;switch(t){case"yyyy-MM-dd":{const[,l,a,s]=r,i=new Date(Number(l),Number(a)-1,Number(s));return Pe(i)?i:null}case"dd.MM.yyyy":{const[,l,a,s]=r,i=new Date(Number(s),Number(a)-1,Number(l));return Pe(i)?i:null}case"dd.MM.yyyy HH:mm":{const[,l,a,s,i,c]=r,d=new Date(Number(s),Number(a)-1,Number(l),Number(i),Number(c));return Pe(d)?d:null}case"HH:mm":{const[,l,a]=r,s=new Date;return s.setHours(Number(l),Number(a),0,0),s}case"MM.yyyy":{const[,l,a]=r;return new Date(Number(a),Number(l)-1,1)}case"yyyy":{const[,l]=r;return new Date(Number(l),0,1)}default:return null}}const Wf=["year","month","day","time","custom"],Gf=e.defineComponent({components:{ChevronLeft:H.ChevronLeft,ChevronRight:H.ChevronRight},emits:{elementClick:o=>Pe(o),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:o=>typeof o=="string"&&Wf.includes(o)}}}),Yf={class:"v3dp__heading"},Xf=["disabled"],Zf=["disabled"],Jf={class:"v3dp__body"},Qf={class:"v3dp__subheading"},em={class:"v3dp__elements"},tm=["disabled","onClick"];function nm(o,t,n,r,l,a){const s=e.resolveComponent("ChevronLeft"),i=e.resolveComponent("ChevronRight");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v3dp__popout",`v3dp__popout-${o.viewMode}`]),style:e.normalizeStyle({"--popout-column-definition":`repeat(${o.columnCount}, 1fr)`}),onMousedown:t[3]||(t[3]=e.withModifiers(()=>{},["prevent"]))},[e.createElementVNode("div",Yf,[e.createElementVNode("button",{class:"v3dp__heading__button v3dp__heading__button__left",disabled:o.leftDisabled,onClick:t[0]||(t[0]=e.withModifiers(c=>o.$emit("left"),["stop","prevent"]))},[e.renderSlot(o.$slots,"arrow-left",{},()=>[e.createVNode(s,{class:"v3dp__heading__icon h-4 w-4"})],!0)],8,Xf),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.headingClickable?"button":"span"),{class:"v3dp__heading__center",onClick:t[1]||(t[1]=e.withModifiers(c=>o.$emit("heading"),["stop","prevent"]))},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"heading",{},void 0,!0)]),_:3})),e.createElementVNode("button",{class:"v3dp__heading__button v3dp__heading__button__right",disabled:o.rightDisabled,onClick:t[2]||(t[2]=e.withModifiers(c=>o.$emit("right"),["stop","prevent"]))},[e.renderSlot(o.$slots,"arrow-right",{},()=>[e.createVNode(i,{class:"v3dp__heading__icon h-4 w-4"})],!0)],8,Zf)]),e.createElementVNode("div",Jf,["subheading"in o.$slots?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",Qf,[e.renderSlot(o.$slots,"subheading",{},void 0,!0)]),t[4]||(t[4]=e.createElementVNode("hr",{class:"v3dp__divider"},null,-1))],64)):e.createCommentVNode("",!0),e.createElementVNode("div",em,[e.renderSlot(o.$slots,"body",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.items,c=>(e.openBlock(),e.createElementBlock("button",{key:c.key,disabled:c.disabled,class:e.normalizeClass([{selected:c.selected,current:c.current},`v3dp__element__button__${o.viewMode}`]),onClick:e.withModifiers(d=>o.$emit("elementClick",c.value),["stop","prevent"])},[e.createElementVNode("span",null,e.toDisplayString(c.display),1)],10,tm))),128))],!0)])])],38)}const Dn=ke(Gf,[["render",nm],["__scopeId","data-v-9e083852"]]),om=e.defineComponent({components:{PickerPopup:Dn},emits:{"update:pageDate":o=>Pe(o),select:o=>Pe(o)},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(o,{emit:t}){const n=e.computed(()=>Ff(o.pageDate)),r=e.computed(()=>Df(o.pageDate)),l=(p,h,k)=>!h&&!k?!0:!(h&&it(p)<it(h)||k&&it(p)>it(k)),a=e.computed(()=>If({start:n.value,end:r.value}).map(p=>({value:p,key:String(it(p)),display:it(p),selected:!!o.selected&&it(p)===it(o.selected),disabled:!l(p,o.lowerLimit,o.upperLimit)}))),s=e.computed(()=>{const p=it(n.value),h=it(r.value);return`${p} - ${h}`}),i=e.computed(()=>o.lowerLimit&&(Nn(o.lowerLimit)===Nn(o.pageDate)||Xt(o.pageDate,o.lowerLimit))),c=e.computed(()=>o.upperLimit&&(Nn(o.upperLimit)===Nn(o.pageDate)||Zt(o.pageDate,o.upperLimit)));return{years:a,heading:s,leftDisabled:i,rightDisabled:c,previousPage:()=>t("update:pageDate",dr(o.pageDate,10)),nextPage:()=>t("update:pageDate",$n(o.pageDate,10))}}});function rm(o,t,n,r,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{columnCount:3,leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,items:o.years,viewMode:"year",onLeft:o.previousPage,onRight:o.nextPage,onElementClick:t[0]||(t[0]=i=>o.$emit("select",i))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const lm=ke(om,[["render",rm]]),am=e.defineComponent({components:{PickerPopup:Dn},emits:{"update:pageDate":o=>Pe(o),select:o=>Pe(o),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},format:{type:String,required:!1,default:"LLL"},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(o,{emit:t}){const n=e.computed(()=>ur(o.pageDate)),r=e.computed(()=>pr(o.pageDate)),l=e.computed(()=>h=>Fn(h,o.format)),a=(h,k,m)=>!k&&!m?!0:!(k&&Xt(h,oo(k))||m&&Zt(h,ro(m))),s=e.computed(()=>Lf({start:n.value,end:r.value}).map(h=>({value:h,display:l.value(h),key:l.value(h),selected:!!o.selected&&so(o.selected,h),disabled:!a(h,o.lowerLimit,o.upperLimit)}))),i=e.computed(()=>it(n.value)),c=e.computed(()=>o.lowerLimit&&(fr(o.lowerLimit,o.pageDate)||Xt(o.pageDate,o.lowerLimit))),d=e.computed(()=>o.upperLimit&&(fr(o.upperLimit,o.pageDate)||Zt(o.pageDate,o.upperLimit)));return{months:s,heading:i,leftDisabled:c,rightDisabled:d,previousPage:()=>t("update:pageDate",dr(o.pageDate,1)),nextPage:()=>t("update:pageDate",$n(o.pageDate,1))}}});function sm(o,t,n,r,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",columnCount:3,items:o.months,leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,viewMode:"month",onLeft:o.previousPage,onRight:o.nextPage,onHeading:t[0]||(t[0]=i=>o.$emit("back")),onElementClick:t[1]||(t[1]=i=>o.$emit("select",i))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),_:1},8,["items","leftDisabled","rightDisabled","onLeft","onRight"])}const im=ke(am,[["render",sm]]),cm=e.defineComponent({components:{PickerPopup:Dn},emits:{"update:pageDate":o=>Pe(o),select:o=>Pe(o),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:o=>typeof o=="number"&&Number.isInteger(o)&&o>=0&&o<=6},customWeekdays:{type:Array,required:!1},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1},disabledDates:{type:Object,required:!1},allowOutsideInterval:{type:Boolean,required:!1,default:!1}},setup(o,{emit:t}){const n=e.computed(()=>y=>C=>Fn(C,y)),r=e.computed(()=>oo(o.pageDate)),l=e.computed(()=>ro(o.pageDate)),a=e.computed(()=>({start:r.value,end:l.value})),s=e.computed(()=>({start:ao(r.value,o.weekStartsOn),end:Rf(l.value,o.weekStartsOn)})),i=e.computed(()=>o.customWeekdays?.length===7?o.customWeekdays:null),c=e.computed(()=>{const y=o.weekStartsOn,C=i.value;if(C)return Array.from({length:7}).map((w,V)=>C[(y+V)%7]);const x=n.value(o.weekdayFormat);return Array.from(Array(7)).map((w,V)=>(y+V)%7).map(w=>Of(new Date,w,o.weekStartsOn)).map(x)}),d=(y,C,x,w)=>w?.dates?.some(V=>An(y,V))||w?.predicate?.(y)?!1:!C&&!x?!0:!(C&&Xt(y,Ot(C))||x&&Zt(y,Yt(x))),u=e.computed(()=>{const y=new Date,C=n.value(o.format);return Tf(s.value).map(x=>({value:x,display:C(x),selected:!!o.selected&&An(o.selected,x),current:An(y,x),disabled:!o.allowOutsideInterval&&!zf(x,a.value)||!d(x,o.lowerLimit,o.upperLimit,o.disabledDates),key:n.value("yyyy-MM-dd")(x)}))}),p=e.computed(()=>n.value(o.headingFormat)(o.pageDate)),h=e.computed(()=>o.lowerLimit&&(so(o.lowerLimit,o.pageDate)||Xt(o.pageDate,o.lowerLimit))),k=e.computed(()=>o.upperLimit&&(so(o.upperLimit,o.pageDate)||Zt(o.pageDate,o.upperLimit)));return{weekDays:c,days:u,heading:p,leftDisabled:h,rightDisabled:k,previousPage:()=>t("update:pageDate",Mf(o.pageDate)),nextPage:()=>t("update:pageDate",lo(o.pageDate,1))}}});function dm(o,t,n,r,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,items:o.days,viewMode:"day",onLeft:o.previousPage,onRight:o.nextPage,onHeading:t[0]||(t[0]=i=>o.$emit("back")),onElementClick:t[1]||(t[1]=i=>o.$emit("select",i))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),subheading:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.weekDays,(i,c)=>(e.openBlock(),e.createElementBlock("span",{key:i,class:e.normalizeClass(`v3dp__subheading__weekday__${c}`)},e.toDisplayString(i),3))),128))]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const um=ke(cm,[["render",dm]]);function br(o,t){const n=o.getBoundingClientRect(),r={height:o.clientHeight,width:o.clientWidth},l=t.getBoundingClientRect();if(!(l.top>=n.top&&l.bottom<=n.top+r.height)){const s=l.top-n.top,i=l.bottom-n.bottom;Math.abs(s)<Math.abs(i)?o.scrollTop+=s:o.scrollTop+=i}}const pm=e.defineComponent({components:{PickerPopup:Dn},emits:{select:o=>Pe(o),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},visible:{type:Boolean,required:!0},disabledTime:{type:Object,required:!1}},setup(o,{emit:t}){const n=e.ref(null),r=e.ref(null),l=e.computed(()=>o.pageDate??o.selected),a=e.ref(l.value.getHours()),s=e.ref(l.value.getMinutes());e.watch(()=>o.selected,k=>{let m=0,g=0;k&&(m=k.getHours(),g=k.getMinutes()),a.value=m,s.value=g});const i=e.computed(()=>[...Array(24).keys()].map(k=>({value:k,date:hr(new Date(l.value.getTime()),{hours:k,minutes:s.value,seconds:0}),selected:a.value===k,ref:e.ref(null)}))),c=e.computed(()=>[...Array(60).keys()].map(k=>({value:k,date:hr(new Date(l.value.getTime()),{hours:a.value,minutes:k,seconds:0}),selected:s.value===k,ref:e.ref(null)}))),d=k=>{s.value=k.value,t("select",k.date)},u=()=>{const k=i.value.find(g=>g.ref.value?.classList?.contains("selected")??!1),m=c.value.find(g=>g.ref.value?.classList?.contains("selected")??!1);k&&m&&(br(n.value,k.ref.value),br(r.value,m.ref.value))};return e.watch(()=>o.visible,k=>{k&&e.nextTick(u)}),{hoursListRef:n,minutesListRef:r,hours:a,minutes:s,hoursList:i,minutesList:c,padStartZero:k=>`0${k}`.substr(-2),selectMinutes:d,isEnabled:k=>!(o.disabledTime?.dates?.some(m=>mr(k,m)&&Pf(k,m))||o.disabledTime?.predicate?.(k)),scroll:u}}}),fm={ref:"hoursListRef",class:"v3dp__column"},mm=["disabled","onClick"],hm={ref:"minutesListRef",class:"v3dp__column"},gm=["disabled","onClick"];function ym(o,t,n,r,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]=i=>o.$emit("back"))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.padStartZero(o.hours))+":"+e.toDisplayString(o.padStartZero(o.minutes)),1)]),body:e.withCtx(()=>[e.createElementVNode("div",fm,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.hoursList,i=>(e.openBlock(),e.createElementBlock("button",{key:i.value,ref_for:!0,ref:i.ref,class:e.normalizeClass([{selected:i.selected},"v3dp__element_button__hour"]),disabled:!o.isEnabled(i.date),onClick:e.withModifiers(c=>o.hours=i.value,["stop","prevent"])},[e.createElementVNode("span",null,e.toDisplayString(o.padStartZero(i.value)),1)],10,mm))),128))],512),e.createElementVNode("div",hm,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.minutesList,i=>(e.openBlock(),e.createElementBlock("button",{key:i.value,ref_for:!0,ref:i.ref,class:e.normalizeClass([{selected:i.selected},"v3dp__element_button__minute"]),disabled:!o.isEnabled(i.date),onClick:e.withModifiers(c=>o.selectMinutes(i),["stop","prevent"])},[e.createElementVNode("span",null,e.toDisplayString(o.padStartZero(i.value)),1)],10,gm))),128))],512)]),_:1})}const bm=ke(pm,[["render",ym],["__scopeId","data-v-610b89e1"]]),Tn=["time","day","month","year"],km=(o,t,n=void 0)=>{let r=n||new Date;const l=jf([o,r]);l&&(r=l);const a=Uf([t,r]);return a&&(r=a),r},xm=e.defineComponent({components:{YearPicker:lm,MonthPicker:im,DayPicker:um,TimePicker:bm},inheritAttrs:!1,props:{placeholder:{type:String,default:""},modelValue:{type:Date,required:!1},disabledDates:{type:Object,required:!1},allowOutsideInterval:{type:Boolean,required:!1,default:!1},disabledTime:{type:Object,required:!1},upperLimit:{type:Date,required:!1},lowerLimit:{type:Date,required:!1},startingView:{type:String,required:!1,default:"day",validate:o=>typeof o=="string"&&Tn.includes(o)},startingViewDate:{type:Date,required:!1,default:()=>new Date},dayPickerHeadingFormat:{type:String,required:!1,default:"LLLL yyyy"},monthListFormat:{type:String,required:!1,default:"LLL"},weekdayFormat:{type:String,required:!1,default:"EE"},dayFormat:{type:String,required:!1,default:"dd"},inputFormat:{type:String,required:!1,default:"yyyy-MM-dd"},weekDayNames:{type:Array,required:!1},weekStartsOn:{type:Number,required:!1,default:1,validator:o=>[0,1,2,3,4,5,6].includes(o)},disabled:{type:Boolean,required:!1,default:!1},clearable:{type:Boolean,required:!1,default:!1},typeable:{type:Boolean,required:!1,default:!1},minimumView:{type:String,required:!1,default:"day",validate:o=>typeof o=="string"&&Tn.includes(o)}},emits:{"update:modelValue":o=>o==null||Pe(o),decadePageChanged:o=>!0,yearPageChanged:o=>!0,monthPageChanged:o=>!0,opened:()=>!0,closed:()=>!0},setup(o,{emit:t,attrs:n}){const r=e.ref("none"),l=e.ref(o.startingViewDate),a=e.ref(null),s=e.ref(!1),i=e.ref(""),c=F=>{const D=F.replace(/[a-zA-Z]/g,"0");return/0/.test(D)?D:""},d=e.computed(()=>c(o.inputFormat));let u=null,p=null;const h=()=>{u?.destroy(),u=null},k=async()=>{if(!p){const{default:F}=await Promise.resolve().then(()=>Pn);p=F}return p},m=()=>{u&&u.value!==i.value&&(u.value=i.value??"")},g=async()=>{if(h(),!a.value||!d.value)return;u=(await k())(a.value,{mask:d.value,lazy:!0,overwrite:!0}),m()};e.watchEffect(()=>{if(!i.value)return;const F=yr(i.value,o.inputFormat);F&&(l.value=F)}),e.watchEffect(()=>{i.value=o.modelValue&&Pe(o.modelValue)?Fn(o.modelValue,o.inputFormat):""}),e.onMounted(()=>{d.value&&e.nextTick(()=>{g()})}),e.onBeforeUnmount(()=>{h()}),e.watch(d,F=>{F?e.nextTick(()=>{g()}):h()}),e.watch(i,()=>{m()});const y=(F="none")=>{o.disabled||(F!=="none"&&r.value==="none"&&(l.value=o.modelValue||km(o.lowerLimit,o.upperLimit,l.value)),r.value=F,t(F!=="none"?"opened":"closed"))};e.watchEffect(()=>{o.disabled&&(r.value="none")});const C=(F,D)=>{l.value=D,F==="year"?t("decadePageChanged",D):F==="month"?t("yearPageChanged",D):F==="day"&&t("monthPageChanged",D)},x=F=>{l.value=F,o.minimumView==="year"?(y("none"),t("update:modelValue",F)):r.value="month"},w=F=>{l.value=F,o.minimumView==="month"?(y("none"),t("update:modelValue",F)):r.value="day"},V=F=>{l.value=F,o.minimumView==="day"?(y("none"),t("update:modelValue",F)):r.value="time"},z=F=>{y("none"),t("update:modelValue",F)},X=()=>{o.clearable&&(y("none"),t("update:modelValue",null),l.value=o.startingViewDate)},L=()=>s.value=!0,E=()=>y(v.value),S=()=>{s.value=!1,y()},N=F=>{const D=F.keyCode?F.keyCode:F.which;if([27,13].includes(D)&&a.value.blur(),o.typeable){const G=yr(a.value.value,o.inputFormat);G&&i.value===Fn(G,o.inputFormat)&&(i.value=a.value.value,t("update:modelValue",G))}},v=e.computed(()=>{const F=Tn.indexOf(o.startingView),D=Tn.indexOf(o.minimumView);return F<D?o.minimumView:o.startingView}),$=F=>Object.fromEntries(Object.entries(F??{}).filter(([D,Z])=>D.startsWith("--"))),R=e.computed(()=>o.weekDayNames?.length===7?o.weekDayNames:void 0);return{blur:S,focus:E,click:L,input:i,inputRef:a,pageDate:l,renderView:y,updatePageDate:C,selectYear:x,selectMonth:w,selectDay:V,selectTime:z,keyUp:N,normalizedWeekdayNames:R,viewShown:r,goBackFromTimepicker:()=>o.startingView==="time"&&o.minimumView==="time"?null:r.value="day",clearModelValue:X,initialView:v,log:F=>console.log(F),variables:$}}}),wm={class:"v3dp__input_wrapper"},_m=["readonly","placeholder","disabled","tabindex"],Cm={class:"v3dp__clearable"};function vm(o,t,n,r,l,a){const s=e.resolveComponent("year-picker"),i=e.resolveComponent("month-picker"),c=e.resolveComponent("day-picker"),d=e.resolveComponent("time-picker");return e.openBlock(),e.createElementBlock("div",{class:"v3dp__datepicker",style:e.normalizeStyle(o.variables(o.$attrs.style))},[e.createElementVNode("div",wm,[e.withDirectives(e.createElementVNode("input",e.mergeProps({type:"text",ref:"inputRef",readonly:!o.typeable,"onUpdate:modelValue":t[0]||(t[0]=u=>o.input=u)},o.$attrs,{placeholder:o.placeholder,disabled:o.disabled,tabindex:o.disabled?-1:0,onKeyup:t[1]||(t[1]=(...u)=>o.keyUp&&o.keyUp(...u)),onBlur:t[2]||(t[2]=(...u)=>o.blur&&o.blur(...u)),onFocus:t[3]||(t[3]=(...u)=>o.focus&&o.focus(...u)),onClick:t[4]||(t[4]=(...u)=>o.click&&o.click(...u))}),null,16,_m),[[e.vModelText,o.input]]),e.withDirectives(e.createElementVNode("div",Cm,[e.renderSlot(o.$slots,"clear",{onClear:o.clearModelValue},()=>[e.createElementVNode("i",{onClick:t[5]||(t[5]=u=>o.clearModelValue())},"x")])],512),[[e.vShow,o.clearable&&o.modelValue]])]),e.withDirectives(e.createVNode(s,{pageDate:o.pageDate,"onUpdate:pageDate":t[6]||(t[6]=u=>o.updatePageDate("year",u)),selected:o.modelValue,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,onSelect:o.selectYear},null,8,["pageDate","selected","lowerLimit","upperLimit","onSelect"]),[[e.vShow,o.viewShown==="year"]]),e.withDirectives(e.createVNode(i,{pageDate:o.pageDate,"onUpdate:pageDate":t[7]||(t[7]=u=>o.updatePageDate("month",u)),selected:o.modelValue,onSelect:o.selectMonth,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,format:o.monthListFormat,onBack:t[8]||(t[8]=u=>o.viewShown="year")},null,8,["pageDate","selected","onSelect","lowerLimit","upperLimit","format"]),[[e.vShow,o.viewShown==="month"]]),e.withDirectives(e.createVNode(c,{pageDate:o.pageDate,"onUpdate:pageDate":t[9]||(t[9]=u=>o.updatePageDate("day",u)),selected:o.modelValue,weekStartsOn:o.weekStartsOn,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,headingFormat:o.dayPickerHeadingFormat,disabledDates:o.disabledDates,weekdayFormat:o.weekdayFormat,"allow-outside-interval":o.allowOutsideInterval,format:o.dayFormat,"custom-weekdays":o.normalizedWeekdayNames,onSelect:o.selectDay,onBack:t[10]||(t[10]=u=>o.viewShown="month")},null,8,["pageDate","selected","weekStartsOn","lowerLimit","upperLimit","headingFormat","disabledDates","weekdayFormat","allow-outside-interval","format","custom-weekdays","onSelect"]),[[e.vShow,o.viewShown==="day"]]),e.withDirectives(e.createVNode(d,{pageDate:o.pageDate,visible:o.viewShown==="time",selected:o.modelValue,disabledTime:o.disabledTime,onSelect:o.selectTime,onBack:o.goBackFromTimepicker},null,8,["pageDate","visible","selected","disabledTime","onSelect","onBack"]),[[e.vShow,o.viewShown==="time"]])],4)}const Em=ke(xm,[["render",vm]]),Bm=ke(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(o,{emit:t}){const n=o,r=t,{inputClass:l}=Oe(n.style),a=e.computed(()=>n.mode?n.mode:n.time?"datetime":"date"),s={date:"дд.мм.рррр",datetime:"дд.мм.рррр гг:хх",month:"мм.рррр",week:"рррр-тиждень",time:"гг:хх",year:"рррр"},i=e.computed(()=>n.placeholder||s[a.value]||""),c=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),u=e.computed({get:()=>w(n.modelValue??d.value,a.value)||void 0,set:D=>r("update:modelValue",V(D,a.value))}),p=["Пн","Вт","Ср","Чт","Пт","Сб","Нд"],h=e.computed(()=>{if(n.dayNames?.length)return n.dayNames.length===7?n.dayNames:p}),k=e.computed(()=>{const D=n.weekStart,Z=typeof D=="string"?Number(D):D;return Z===void 0||Number.isNaN(Z)?1:Math.min(6,Math.max(0,Z))}),m=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"})),x=e.ref(!1);e.watch(()=>n.modelValue,D=>{D?x.value=!0:n.now||(x.value=!1)},{immediate:!0}),e.watchEffect(()=>{n.now&&!n.modelValue&&!x.value&&(r("update:modelValue",V(new Date,a.value)),x.value=!0)});function w(D,Z){if(!D)return null;if(D instanceof Date&&!Number.isNaN(D.getTime()))return D;if(typeof D!="string")return null;switch(Z){case"datetime":return E(D);case"time":return v(D);case"month":return S(D);case"year":return N(D);case"week":return $(D);case"date":default:return L(D)}}function V(D,Z){if(!D)return null;const G=D instanceof Date?D:w(D,Z);if(!G)return null;switch(Z){case"datetime":return`${z(G)}T${X(G)}`;case"time":return X(G);case"month":return`${G.getFullYear()}-${F(G.getMonth()+1)}`;case"year":return`${G.getFullYear()}`;case"week":{const{year:ee,week:le}=R(G);return`${ee}-W${F(le)}`}case"date":default:return z(G)}}function z(D){return`${D.getFullYear()}-${F(D.getMonth()+1)}-${F(D.getDate())}`}function X(D){return`${F(D.getHours())}:${F(D.getMinutes())}`}function L(D){const Z=D.split("-");if(Z.length<3)return null;const[G,ee,le]=Z.map(Number);return!G||!ee||!le?null:new Date(G,ee-1,le)}function E(D){const Z=D.includes("T")?D:D.replace(" ","T"),G=new Date(Z);return Number.isNaN(G.getTime())?null:G}function S(D){const[Z,G]=D.split("-").map(Number);return!Z||Number.isNaN(G)?null:new Date(Z,(G||1)-1,1)}function N(D){const Z=Number(D);return Z?new Date(Z,0,1):null}function v(D){const Z=D.match(/^(\d{1,2}):(\d{2})$/);if(!Z)return null;const[,G,ee]=Z,le=new Date;return le.setHours(Number(G),Number(ee),0,0),le}function $(D){const Z=D.match(/^(\d{4})-W(\d{2})$/);if(!Z)return null;const[,G,ee]=Z,le=Number(ee);return B(Number(G),le)}function R(D){const Z=new Date(Date.UTC(D.getFullYear(),D.getMonth(),D.getDate())),G=Z.getUTCDay()||7;Z.setUTCDate(Z.getUTCDate()+4-G);const ee=new Date(Date.UTC(Z.getUTCFullYear(),0,1)),le=Math.ceil(((Z.getTime()-ee.getTime())/864e5+1)/7);return{year:Z.getUTCFullYear(),week:le}}function B(D,Z){if(!D||!Z)return null;const G=new Date(D,0,1+(Z-1)*7),ee=G.getDay(),le=G;return ee<=4?le.setDate(G.getDate()-G.getDay()+1):le.setDate(G.getDate()+8-G.getDay()),le}function F(D){return String(D).padStart(2,"0")}return(D,Z)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-date-picker",n.customClass]),style:e.normalizeStyle(C.value)},[e.createVNode(Em,{modelValue:u.value,"onUpdate:modelValue":Z[0]||(Z[0]=G=>u.value=G),placeholder:i.value,disabled:n.disabled,clearable:n.clearable,typeable:n.editable,"week-day-names":h.value,"week-starts-on":k.value,"starting-view":m.value.startingView,"minimum-view":m.value.minimumView,"input-format":y.value,name:n.name,class:e.normalizeClass(c.value)},null,8,["modelValue","placeholder","disabled","clearable","typeable","week-day-names","week-starts-on","starting-view","minimum-view","input-format","name","class"])],6))}}),[["__scopeId","data-v-a65a2ac3"]]),Vm={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"}}},Sm={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:"Скасувати"}}},kr=Vm.form.richtext,xr=Sm.form.richtext,io={en:{form:{richtext:kr}},uk:{form:{richtext:xr}}},wr=(o={mode:"edit",schema:null})=>new Promise(t=>{const{close:n}=fe.modal({title:o.mode==="add"?"Додати":"Редагувати",template:"",visible:!0,size:"medium",closeClickBack:!0,content:cr,contentProps:{...o,onClose:()=>{t(null),n()},onSave:r=>{t(r),n()}}})});rt.install=function(t){t.component("VForm",rt),Object.assign(t.config.globalProperties,{$form:wr}),t.provide("form",wr),window.v3plugin||(window.v3plugin={})};function $t(o){return typeof o=="string"||o instanceof String}function _r(o){var t;return typeof o=="object"&&o!=null&&(o==null||(t=o.constructor)==null?void 0:t.name)==="Object"}function Cr(o,t){return Array.isArray(t)?Cr(o,(n,r)=>t.includes(r)):Object.entries(o).reduce((n,r)=>{let[l,a]=r;return t(a,l)&&(n[l]=a),n},{})}const pe={NONE:"NONE",LEFT:"LEFT",FORCE_LEFT:"FORCE_LEFT",RIGHT:"RIGHT",FORCE_RIGHT:"FORCE_RIGHT"};function vr(o){switch(o){case pe.LEFT:return pe.FORCE_LEFT;case pe.RIGHT:return pe.FORCE_RIGHT;default:return o}}function co(o){return o.replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1")}function Ln(o,t){if(t===o)return!0;const n=Array.isArray(t),r=Array.isArray(o);let l;if(n&&r){if(t.length!=o.length)return!1;for(l=0;l<t.length;l++)if(!Ln(t[l],o[l]))return!1;return!0}if(n!=r)return!1;if(t&&o&&typeof t=="object"&&typeof o=="object"){const a=t instanceof Date,s=o instanceof Date;if(a&&s)return t.getTime()==o.getTime();if(a!=s)return!1;const i=t instanceof RegExp,c=o instanceof RegExp;if(i&&c)return t.toString()==o.toString();if(i!=c)return!1;const d=Object.keys(t);for(l=0;l<d.length;l++)if(!Object.prototype.hasOwnProperty.call(o,d[l]))return!1;for(l=0;l<d.length;l++)if(!Ln(o[d[l]],t[d[l]]))return!1;return!0}else if(t&&o&&typeof t=="function"&&typeof o=="function")return t.toString()===o.toString();return!1}class $m{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?pe.NONE:(this.oldSelection.end===this.cursorPos||this.oldSelection.start===this.cursorPos)&&this.oldSelection.end===this.oldSelection.start?pe.RIGHT:pe.LEFT}}function be(o,t){return new be.InputMask(o,t)}function Er(o){if(o==null)throw new Error("mask property should be defined");return o instanceof RegExp?be.MaskedRegExp:$t(o)?be.MaskedPattern:o===Date?be.MaskedDate:o===Number?be.MaskedNumber:Array.isArray(o)||o===Array?be.MaskedDynamic:be.Masked&&o.prototype instanceof be.Masked?o:be.Masked&&o instanceof be.Masked?o.constructor:o instanceof Function?be.MaskedFunction:(console.warn("Mask not found for mask",o),be.Masked)}function Ut(o){if(!o)throw new Error("Options in not defined");if(be.Masked){if(o.prototype instanceof be.Masked)return{mask:o};const{mask:t=void 0,...n}=o instanceof be.Masked?{mask:o}:_r(o)&&o.mask instanceof be.Masked?o:{};if(t){const r=t.mask;return{...Cr(t,(l,a)=>!a.startsWith("_")),mask:t.constructor,_mask:r,...n}}}return _r(o)?{...o}:{mask:o}}function ft(o){if(be.Masked&&o instanceof be.Masked)return o;const t=Ut(o),n=Er(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)}be.createMask=ft;class In{get selectionStart(){let t;try{t=this._unsafeSelectionStart}catch{}return t??this.value.length}get selectionEnd(){let t;try{t=this._unsafeSelectionEnd}catch{}return t??this.value.length}select(t,n){if(!(t==null||n==null||t===this.selectionStart&&n===this.selectionEnd))try{this._unsafeSelect(t,n)}catch{}}get isActive(){return!1}}be.MaskElement=In;const Br=90,Nm=89;class Jt extends In{constructor(t){super(),this.input=t,this._onKeydown=this._onKeydown.bind(this),this._onInput=this._onInput.bind(this),this._onBeforeinput=this._onBeforeinput.bind(this),this._onCompositionEnd=this._onCompositionEnd.bind(this)}get rootElement(){var t,n,r;return(t=(n=(r=this.input).getRootNode)==null?void 0:n.call(r))!=null?t:document}get isActive(){return this.input===this.rootElement.activeElement}bindEvents(t){this.input.addEventListener("keydown",this._onKeydown),this.input.addEventListener("input",this._onInput),this.input.addEventListener("beforeinput",this._onBeforeinput),this.input.addEventListener("compositionend",this._onCompositionEnd),this.input.addEventListener("drop",t.drop),this.input.addEventListener("click",t.click),this.input.addEventListener("focus",t.focus),this.input.addEventListener("blur",t.commit),this._handlers=t}_onKeydown(t){if(this._handlers.redo&&(t.keyCode===Br&&t.shiftKey&&(t.metaKey||t.ctrlKey)||t.keyCode===Nm&&t.ctrlKey))return t.preventDefault(),this._handlers.redo(t);if(this._handlers.undo&&t.keyCode===Br&&(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={}}}be.HTMLMaskElement=Jt;class Vr extends Jt{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}}be.HTMLMaskElement=Jt;class uo extends Jt{get _unsafeSelectionStart(){const t=this.rootElement,n=t.getSelection&&t.getSelection(),r=n&&n.anchorOffset,l=n&&n.focusOffset;return l==null||r==null||r<l?r:l}get _unsafeSelectionEnd(){const t=this.rootElement,n=t.getSelection&&t.getSelection(),r=n&&n.anchorOffset,l=n&&n.focusOffset;return l==null||r==null||r>l?r:l}_unsafeSelect(t,n){if(!this.rootElement.createRange)return;const r=this.rootElement.createRange();r.setStart(this.input.firstChild||this.input,t),r.setEnd(this.input.lastChild||this.input,n);const l=this.rootElement,a=l.getSelection&&l.getSelection();a&&(a.removeAllRanges(),a.addRange(r))}get value(){return this.input.textContent||""}set value(t){this.input.textContent=t}}be.HTMLContenteditableMaskElement=uo;class Rn{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>Rn.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}}Rn.MAX_LENGTH=100;class Sr{constructor(t,n){this.el=t instanceof In?t:t.isContentEditable&&t.tagName!=="INPUT"&&t.tagName!=="TEXTAREA"?new uo(t):new Vr(t),this.masked=ft(n),this._listeners={},this._value="",this._unmaskedValue="",this._rawInputValue="",this.history=new Rn,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 be.Masked)&&this.masked.constructor===Er(t)){this.masked.updateOptions({mask:t});return}const n=t instanceof be.Masked?t:ft({mask:t});n.unmaskedValue=this.masked.unmaskedValue,this.masked=n}get value(){return this._value}set value(t){this.value!==t&&(this.masked.value=t,this.updateControl("auto"))}get unmaskedValue(){return this._unmaskedValue}set unmaskedValue(t){this.unmaskedValue!==t&&(this.masked.unmaskedValue=t,this.updateControl("auto"))}get rawInputValue(){return this._rawInputValue}set rawInputValue(t){this.rawInputValue!==t&&(this.masked.rawInputValue=t,this.updateControl(),this.alignCursor())}get typedValue(){return this.masked.typedValue}set typedValue(t){this.masked.typedValueEquals(t)||(this.masked.typedValue=t,this.updateControl("auto"))}get displayValue(){return this.masked.displayValue}_bindEvents(){this.el.bindEvents({selectionChange:this._saveSelection,input:this._onInput,drop:this._onDrop,click:this._onClick,focus:this._onFocus,commit:this._onChange,undo:this._onUndo,redo:this._onRedo})}_unbindEvents(){this.el&&this.el.unbindEvents()}_fireEvent(t,n){const r=this._listeners[t];r&&r.forEach(l=>l(n))}get selectionStart(){return this._cursorChanging?this._changingCursorPos:this.el.selectionStart}get cursorPos(){return this._cursorChanging?this._changingCursorPos:this.el.selectionEnd}set cursorPos(t){!this.el||!this.el.isActive||(this.el.select(t,t),this._saveSelection())}_saveSelection(){this.displayValue!==this.el.value&&console.warn("Element value was changed outside of mask. Syncronize mask using `mask.updateValue()` to work properly."),this._selection={start:this.selectionStart,end:this.cursorPos}}updateValue(){this.masked.value=this.el.value,this._value=this.masked.value,this._unmaskedValue=this.masked.unmaskedValue,this._rawInputValue=this.masked.rawInputValue}updateControl(t){const n=this.masked.unmaskedValue,r=this.masked.value,l=this.masked.rawInputValue,a=this.displayValue,s=this.unmaskedValue!==n||this.value!==r||this._rawInputValue!==l;this._unmaskedValue=n,this._value=r,this._rawInputValue=l,this.el.value!==a&&(this.el.value=a),t==="auto"?this.alignCursor():t!=null&&(this.cursorPos=t),s&&this._fireChangeEvents(),!this._historyChanging&&(s||this.history.isEmpty)&&this.history.push({unmaskedValue:n,selection:{start:this.selectionStart,end:this.cursorPos}})}updateOptions(t){const{mask:n,...r}=t,l=!this.maskEquals(n),a=this.masked.optionsIsChanged(r);l&&(this.mask=n),a&&this.masked.updateOptions(r),(l||a)&&this.updateControl()}updateCursor(t){t!=null&&(this.cursorPos=t,this._delayUpdateCursor(t))}_delayUpdateCursor(t){this._abortUpdateCursor(),this._changingCursorPos=t,this._cursorChanging=setTimeout(()=>{this.el&&(this.cursorPos=this._changingCursorPos,this._abortUpdateCursor())},10)}_fireChangeEvents(){this._fireEvent("accept",this._inputEvent),this.masked.isComplete&&this._fireEvent("complete",this._inputEvent)}_abortUpdateCursor(){this._cursorChanging&&(clearTimeout(this._cursorChanging),delete this._cursorChanging)}alignCursor(){this.cursorPos=this.masked.nearestInputPos(this.masked.nearestInputPos(this.cursorPos,pe.LEFT))}alignCursorFriendly(){this.selectionStart===this.cursorPos&&this.alignCursor()}on(t,n){return this._listeners[t]||(this._listeners[t]=[]),this._listeners[t].push(n),this}off(t,n){if(!this._listeners[t])return this;if(!n)return delete this._listeners[t],this;const r=this._listeners[t].indexOf(n);return r>=0&&this._listeners[t].splice(r,1),this}_onInput(t){this._inputEvent=t,this._abortUpdateCursor();const n=new $m({value:this.el.value,cursorPos:this.cursorPos,oldValue:this.displayValue,oldSelection:this._selection}),r=this.masked.rawInputValue,l=this.masked.splice(n.startChangePos,n.removed.length,n.inserted,n.removeDirection,{input:!0,raw:!0}).offset,a=r===this.masked.rawInputValue?n.removeDirection:pe.NONE;let s=this.masked.nearestInputPos(n.startChangePos+l,a);a!==pe.NONE&&(s=this.masked.nearestInputPos(s,pe.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}}be.InputMask=Sr;class xe{static normalize(t){return Array.isArray(t)?t:[t,new xe]}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}}be.ChangeDetails=xe;class mt{constructor(t,n,r){t===void 0&&(t=""),n===void 0&&(n=0),this.value=t,this.from=n,this.stop=r}toString(){return this.value}extend(t){this.value+=String(t)}appendTo(t){return t.append(this.toString(),{tail:!0}).aggregate(t._appendPlaceholder())}get state(){return{value:this.value,from:this.from,stop:this.stop}}set state(t){Object.assign(this,t)}unshift(t){if(!this.value.length||t!=null&&this.from>=t)return"";const n=this.value[0];return this.value=this.value.slice(1),n}shift(){if(!this.value.length)return"";const t=this.value[this.value.length-1];return this.value=this.value.slice(0,-1),t}}class ze{constructor(t){this._value="",this._update({...ze.DEFAULTS,...t}),this._initialized=!0}updateOptions(t){this.optionsIsChanged(t)&&this.withValueRefresh(this._update.bind(this,t))}_update(t){Object.assign(this,t)}get state(){return{_value:this.value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value}reset(){this._value=""}get value(){return this._value}set value(t){this.resolve(t,{input:!0})}resolve(t,n){n===void 0&&(n={input:!0}),this.reset(),this.append(t,n,""),this.doCommit()}get unmaskedValue(){return this.value}set unmaskedValue(t){this.resolve(t,{})}get typedValue(){return this.parse?this.parse(this.value,this):this.unmaskedValue}set typedValue(t){this.format?this.value=this.format(t,this):this.unmaskedValue=String(t)}get rawInputValue(){return this.extractInput(0,this.displayValue.length,{raw:!0})}set rawInputValue(t){this.resolve(t,{raw:!0})}get displayValue(){return this.value}get isComplete(){return!0}get isFilled(){return this.isComplete}nearestInputPos(t,n){return t}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),Math.min(this.displayValue.length,n-t)}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),this.displayValue.slice(t,n)}extractTail(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),new mt(this.extractInput(t,n),t)}appendTail(t){return $t(t)&&(t=new mt(String(t))),t.appendTo(this)}_appendCharRaw(t,n){return t?(this._value+=t,new xe({inserted:t,rawInserted:t})):new xe}_appendChar(t,n,r){n===void 0&&(n={});const l=this.state;let a;if([t,a]=this.doPrepareChar(t,n),t&&(a=a.aggregate(this._appendCharRaw(t,n)),!a.rawInserted&&this.autofix==="pad")){const s=this.state;this.state=l;let i=this.pad(n);const c=this._appendCharRaw(t,n);i=i.aggregate(c),c.rawInserted||i.equals(a)?a=i:this.state=s}if(a.inserted){let s,i=this.doValidate(n)!==!1;if(i&&r!=null){const c=this.state;if(this.overwrite===!0){s=r.state;for(let u=0;u<a.rawInserted.length;++u)r.unshift(this.displayValue.length-a.tailShift)}let d=this.appendTail(r);if(i=d.rawInserted.length===r.toString().length,!(i&&d.inserted)&&this.overwrite==="shift"){this.state=c,s=r.state;for(let u=0;u<a.rawInserted.length;++u)r.shift();d=this.appendTail(r),i=d.rawInserted.length===r.toString().length}i&&d.inserted&&(this.state=c)}i||(a=new xe,this.state=l,r&&s&&(r.state=s))}return a}_appendPlaceholder(){return new xe}_appendEager(){return new xe}append(t,n,r){if(!$t(t))throw new Error("value should be string");const l=$t(r)?new mt(String(r)):r;n!=null&&n.tail&&(n._beforeTailState=this.state);let a;[t,a]=this.doPrepare(t,n);for(let s=0;s<t.length;++s){const i=this._appendChar(t[s],n,l);if(!i.rawInserted&&!this.doSkipInvalid(t[s],n,l))break;a.aggregate(i)}return(this.eager===!0||this.eager==="append")&&n!=null&&n.input&&t&&a.aggregate(this._appendEager()),l!=null&&(a.tailShift+=this.appendTail(l).tailShift),a}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),this._value=this.displayValue.slice(0,t)+this.displayValue.slice(n),new xe}withValueRefresh(t){if(this._refreshing||!this._initialized)return t();this._refreshing=!0;const n=this.rawInputValue,r=this.value,l=t();return this.rawInputValue=n,this.value&&this.value!==r&&r.indexOf(this.value)===0&&(this.append(r.slice(this.displayValue.length),{},""),this.doCommit()),delete this._refreshing,l}runIsolated(t){if(this._isolated||!this._initialized)return t(this);this._isolated=!0;const n=this.state,r=t(this);return this.state=n,delete this._isolated,r}doSkipInvalid(t,n,r){return!!this.skipInvalid}doPrepare(t,n){return n===void 0&&(n={}),xe.normalize(this.prepare?this.prepare(t,this,n):t)}doPrepareChar(t,n){return n===void 0&&(n={}),xe.normalize(this.prepareChar?this.prepareChar(t,this,n):t)}doValidate(t){return(!this.validate||this.validate(this.value,this,t))&&(!this.parent||this.parent.doValidate(t))}doCommit(){this.commit&&this.commit(this.value,this)}splice(t,n,r,l,a){r===void 0&&(r=""),l===void 0&&(l=pe.NONE),a===void 0&&(a={input:!0});const s=t+n,i=this.extractTail(s),c=this.eager===!0||this.eager==="remove";let d;c&&(l=vr(l),d=this.extractInput(0,s,{raw:!0}));let u=t;const p=new xe;if(l!==pe.NONE&&(u=this.nearestInputPos(t,n>1&&t!==0&&!c?pe.NONE:l),p.tailShift=u-t),p.aggregate(this.remove(u)),c&&l!==pe.NONE&&d===this.rawInputValue)if(l===pe.FORCE_LEFT){let h;for(;d===this.rawInputValue&&(h=this.displayValue.length);)p.aggregate(new xe({tailShift:-1})).aggregate(this.remove(h-1))}else l===pe.FORCE_RIGHT&&i.unshift();return p.aggregate(this.append(r,a,i))}maskEquals(t){return this.mask===t}optionsIsChanged(t){return!Ln(this,t)}typedValueEquals(t){const n=this.typedValue;return t===n||ze.EMPTY_VALUES.includes(t)&&ze.EMPTY_VALUES.includes(n)||(this.format?this.format(t,this)===this.format(this.typedValue,this):!1)}pad(t){return new xe}}ze.DEFAULTS={skipInvalid:!0},ze.EMPTY_VALUES=[void 0,null,""],be.Masked=ze;class Nt{constructor(t,n){t===void 0&&(t=[]),n===void 0&&(n=0),this.chunks=t,this.from=n}toString(){return this.chunks.map(String).join("")}extend(t){if(!String(t))return;t=$t(t)?new mt(String(t)):t;const n=this.chunks[this.chunks.length-1],r=n&&(n.stop===t.stop||t.stop==null)&&t.from===n.from+n.toString().length;if(t instanceof mt)r?n.extend(t.toString()):this.chunks.push(t);else if(t instanceof Nt){if(t.stop==null){let l;for(;t.chunks.length&&t.chunks[0].stop==null;)l=t.chunks.shift(),l.from+=t.from,this.extend(l)}t.toString()&&(t.stop=t.blockIndex,this.chunks.push(t))}}appendTo(t){if(!(t instanceof be.MaskedPattern))return new mt(this.toString()).appendTo(t);const n=new xe;for(let r=0;r<this.chunks.length;++r){const l=this.chunks[r],a=t._mapPosToBlock(t.displayValue.length),s=l.stop;let i;if(s!=null&&(!a||a.index<=s)&&((l instanceof Nt||t._stops.indexOf(s)>=0)&&n.aggregate(t._appendPlaceholder(s)),i=l instanceof Nt&&t._blocks[s]),i){const c=i.appendTail(l);n.aggregate(c);const d=l.toString().slice(c.rawInserted.length);d&&n.aggregate(t.append(d,{tail:!0}))}else n.aggregate(t.append(l.toString(),{tail:!0}))}return n}get state(){return{chunks:this.chunks.map(t=>t.state),from:this.from,stop:this.stop,blockIndex:this.blockIndex}}set state(t){const{chunks:n,...r}=t;Object.assign(this,r),this.chunks=n.map(l=>{const a="chunks"in l?new Nt:new mt;return a.state=l,a})}unshift(t){if(!this.chunks.length||t!=null&&this.from>=t)return"";const n=t!=null?t-this.from:t;let r=0;for(;r<this.chunks.length;){const l=this.chunks[r],a=l.unshift(n);if(l.toString()){if(!a)break;++r}else this.chunks.splice(r,1);if(a)return a}return""}shift(){if(!this.chunks.length)return"";let t=this.chunks.length-1;for(;0<=t;){const n=this.chunks[t],r=n.shift();if(n.toString()){if(!r)break;--t}else this.chunks.splice(t,1);if(r)return r}return""}}class Am{constructor(t,n){this.masked=t,this._log=[];const{offset:r,index:l}=t._mapPosToBlock(n)||(n<0?{index:0,offset:0}:{index:this.masked._blocks.length,offset:0});this.offset=r,this.index=l,this.ok=!1}get block(){return this.masked._blocks[this.index]}get pos(){return this.masked._blockStartPos(this.index)+this.offset}get state(){return{index:this.index,offset:this.offset,ok:this.ok}}set state(t){Object.assign(this,t)}pushState(){this._log.push(this.state)}popState(){const t=this._log.pop();return t&&(this.state=t),t}bindBlock(){this.block||(this.index<0&&(this.index=0,this.offset=0),this.index>=this.masked._blocks.length&&(this.index=this.masked._blocks.length-1,this.offset=this.block.displayValue.length))}_pushLeft(t){for(this.pushState(),this.bindBlock();0<=this.index;--this.index,this.offset=((n=this.block)==null?void 0:n.displayValue.length)||0){var n;if(t())return this.ok=!0}return this.ok=!1}_pushRight(t){for(this.pushState(),this.bindBlock();this.index<this.masked._blocks.length;++this.index,this.offset=0)if(t())return this.ok=!0;return this.ok=!1}pushLeftBeforeFilled(){return this._pushLeft(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,pe.FORCE_LEFT),this.offset!==0))return!0})}pushLeftBeforeInput(){return this._pushLeft(()=>{if(!this.block.isFixed)return this.offset=this.block.nearestInputPos(this.offset,pe.LEFT),!0})}pushLeftBeforeRequired(){return this._pushLeft(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,pe.LEFT),!0})}pushRightBeforeFilled(){return this._pushRight(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,pe.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,pe.NONE),!0})}pushRightBeforeRequired(){return this._pushRight(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,pe.NONE),!0})}}class po{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 xe}nearestInputPos(t,n){n===void 0&&(n=pe.NONE);const r=0,l=this._value.length;switch(n){case pe.LEFT:case pe.FORCE_LEFT:return r;case pe.NONE:case pe.RIGHT:case pe.FORCE_RIGHT:default:return l}}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),this._isRawInput?n-t:0}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),r===void 0&&(r={}),r.raw&&this._isRawInput&&this._value.slice(t,n)||""}get isComplete(){return!0}get isFilled(){return!!this._value}_appendChar(t,n){if(n===void 0&&(n={}),this.isFilled)return new xe;const r=this.eager===!0||this.eager==="append",a=this.char===t&&(this.isUnmasking||n.input||n.raw)&&(!n.raw||!r)&&!n.tail,s=new xe({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 xe;return this.isFilled||(this._value=t.inserted=this.char),t}extractTail(){return new mt("")}appendTail(t){return $t(t)&&(t=new mt(String(t))),t.appendTo(this)}append(t,n,r){const l=this._appendChar(t[0],n);return r!=null&&(l.tailShift+=this.appendTail(r).tailShift),l}doCommit(){}get state(){return{_value:this._value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value,this._isRawInput=!!t._rawInputValue}pad(t){return this._appendPlaceholder()}}class Qt{constructor(t){const{parent:n,isOptional:r,placeholderChar:l,displayChar:a,lazy:s,eager:i,...c}=t;this.masked=ft(c),Object.assign(this,{parent:n,isOptional:r,placeholderChar:l,displayChar:a,lazy:s,eager:i})}reset(){this.isFilled=!1,this.masked.reset()}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),t===0&&n>=1?(this.isFilled=!1,this.masked.remove(t,n)):new xe}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 xe;const r=this.masked.state;let l=this.masked._appendChar(t,this.currentMaskFlags(n));return l.inserted&&this.doValidate(n)===!1&&(l=new xe,this.masked.state=r),!l.inserted&&!this.isOptional&&!this.lazy&&!n.input&&(l.inserted=this.placeholderChar),l.skip=!l.inserted&&!this.isOptional,this.isFilled=!!l.inserted,l}append(t,n,r){return this.masked.append(t,this.currentMaskFlags(n),r)}_appendPlaceholder(){return this.isFilled||this.isOptional?new xe:(this.isFilled=!0,new xe({inserted:this.placeholderChar}))}_appendEager(){return new xe}extractTail(t,n){return this.masked.extractTail(t,n)}appendTail(t){return this.masked.appendTail(t)}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),this.masked.extractInput(t,n,r)}nearestInputPos(t,n){n===void 0&&(n=pe.NONE);const r=0,l=this.value.length,a=Math.min(Math.max(t,r),l);switch(n){case pe.LEFT:case pe.FORCE_LEFT:return this.isComplete?a:r;case pe.RIGHT:case pe.FORCE_RIGHT:return this.isComplete?a:l;case pe.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 xe}}Qt.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 $r extends ze{updateOptions(t){super.updateOptions(t)}_update(t){const n=t.mask;n&&(t.validate=r=>r.search(n)>=0),super._update(t)}}be.MaskedRegExp=$r;class je extends ze{constructor(t){super({...je.DEFAULTS,...t,definitions:Object.assign({},Qt.DEFAULT_DEFINITIONS,t?.definitions)})}updateOptions(t){super.updateOptions(t)}_update(t){t.definitions=Object.assign({},this.definitions,t.definitions),super._update(t),this._rebuildMask()}_rebuildMask(){const t=this.definitions;this._blocks=[],this.exposeBlock=void 0,this._stops=[],this._maskedBlocks={};const n=this.mask;if(!n||!t)return;let r=!1,l=!1;for(let a=0;a<n.length;++a){if(this.blocks){const d=n.slice(a),u=Object.keys(this.blocks).filter(h=>d.indexOf(h)===0);u.sort((h,k)=>k.length-h.length);const p=u[0];if(p){const{expose:h,repeat:k,...m}=Ut(this.blocks[p]),g={lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,overwrite:this.overwrite,autofix:this.autofix,...m,repeat:k,parent:this},y=k!=null?new be.RepeatBlock(g):ft(g);y&&(this._blocks.push(y),h&&(this.exposeBlock=y),this._maskedBlocks[p]||(this._maskedBlocks[p]=[]),this._maskedBlocks[p].push(this._blocks.length-1)),a+=p.length-1;continue}}let s=n[a],i=s in t;if(s===je.STOP_CHAR){this._stops.push(this._blocks.length);continue}if(s==="{"||s==="}"){r=!r;continue}if(s==="["||s==="]"){l=!l;continue}if(s===je.ESCAPE_CHAR){if(++a,s=n[a],!s)break;i=!1}const c=i?new Qt({isOptional:l,lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,...Ut(t[s]),parent:this}):new po({char:s,eager:this.eager,isUnmasking:r});this._blocks.push(c)}}get state(){return{...super.state,_blocks:this._blocks.map(t=>t.state)}}set state(t){if(!t){this.reset();return}const{_blocks:n,...r}=t;this._blocks.forEach((l,a)=>l.state=n[a]),super.state=r}reset(){super.reset(),this._blocks.forEach(t=>t.reset())}get isComplete(){return this.exposeBlock?this.exposeBlock.isComplete:this._blocks.every(t=>t.isComplete)}get isFilled(){return this._blocks.every(t=>t.isFilled)}get isFixed(){return this._blocks.every(t=>t.isFixed)}get isOptional(){return this._blocks.every(t=>t.isOptional)}doCommit(){this._blocks.forEach(t=>t.doCommit()),super.doCommit()}get unmaskedValue(){return this.exposeBlock?this.exposeBlock.unmaskedValue:this._blocks.reduce((t,n)=>t+=n.unmaskedValue,"")}set unmaskedValue(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.unmaskedValue=t,this.appendTail(n),this.doCommit()}else super.unmaskedValue=t}get value(){return this.exposeBlock?this.exposeBlock.value:this._blocks.reduce((t,n)=>t+=n.value,"")}set value(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.value=t,this.appendTail(n),this.doCommit()}else super.value=t}get typedValue(){return this.exposeBlock?this.exposeBlock.typedValue:super.typedValue}set typedValue(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.typedValue=t,this.appendTail(n),this.doCommit()}else super.typedValue=t}get displayValue(){return this._blocks.reduce((t,n)=>t+=n.displayValue,"")}appendTail(t){return super.appendTail(t).aggregate(this._appendPlaceholder())}_appendEager(){var t;const n=new xe;let r=(t=this._mapPosToBlock(this.displayValue.length))==null?void 0:t.index;if(r==null)return n;this._blocks[r].isFilled&&++r;for(let l=r;l<this._blocks.length;++l){const a=this._blocks[l]._appendEager();if(!a.inserted)break;n.aggregate(a)}return n}_appendCharRaw(t,n){n===void 0&&(n={});const r=this._mapPosToBlock(this.displayValue.length),l=new xe;if(!r)return l;for(let s=r.index,i;i=this._blocks[s];++s){var a;const c=i._appendChar(t,{...n,_beforeTailState:(a=n._beforeTailState)==null||(a=a._blocks)==null?void 0:a[s]});if(l.aggregate(c),c.consumed)break}return l}extractTail(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const r=new Nt;return t===n||this._forEachBlocksInRange(t,n,(l,a,s,i)=>{const c=l.extractTail(s,i);c.stop=this._findStopBefore(a),c.from=this._blockStartPos(a),c instanceof Nt&&(c.blockIndex=a),r.extend(c)}),r}extractInput(t,n,r){if(t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),r===void 0&&(r={}),t===n)return"";let l="";return this._forEachBlocksInRange(t,n,(a,s,i,c)=>{l+=a.extractInput(i,c,r)}),l}_findStopBefore(t){let n;for(let r=0;r<this._stops.length;++r){const l=this._stops[r];if(l<=t)n=l;else break}return n}_appendPlaceholder(t){const n=new xe;if(this.lazy&&t==null)return n;const r=this._mapPosToBlock(this.displayValue.length);if(!r)return n;const l=r.index,a=t??this._blocks.length;return this._blocks.slice(l,a).forEach(s=>{if(!s.lazy||t!=null){var i;n.aggregate(s._appendPlaceholder((i=s._blocks)==null?void 0:i.length))}}),n}_mapPosToBlock(t){let n="";for(let r=0;r<this._blocks.length;++r){const l=this._blocks[r],a=n.length;if(n+=l.displayValue,t<=n.length)return{index:r,offset:t-a}}}_blockStartPos(t){return this._blocks.slice(0,t).reduce((n,r)=>n+=r.displayValue.length,0)}_forEachBlocksInRange(t,n,r){n===void 0&&(n=this.displayValue.length);const l=this._mapPosToBlock(t);if(l){const a=this._mapPosToBlock(n),s=a&&l.index===a.index,i=l.offset,c=a&&s?a.offset:this._blocks[l.index].displayValue.length;if(r(this._blocks[l.index],l.index,i,c),a&&!s){for(let d=l.index+1;d<a.index;++d)r(this._blocks[d],d,0,this._blocks[d].displayValue.length);r(this._blocks[a.index],a.index,0,a.offset)}}}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const r=super.remove(t,n);return this._forEachBlocksInRange(t,n,(l,a,s,i)=>{r.aggregate(l.remove(s,i))}),r}nearestInputPos(t,n){if(n===void 0&&(n=pe.NONE),!this._blocks.length)return 0;const r=new Am(this,t);if(n===pe.NONE)return r.pushRightBeforeInput()||(r.popState(),r.pushLeftBeforeInput())?r.pos:this.displayValue.length;if(n===pe.LEFT||n===pe.FORCE_LEFT){if(n===pe.LEFT){if(r.pushRightBeforeFilled(),r.ok&&r.pos===t)return t;r.popState()}if(r.pushLeftBeforeInput(),r.pushLeftBeforeRequired(),r.pushLeftBeforeFilled(),n===pe.LEFT){if(r.pushRightBeforeInput(),r.pushRightBeforeRequired(),r.ok&&r.pos<=t||(r.popState(),r.ok&&r.pos<=t))return r.pos;r.popState()}return r.ok?r.pos:n===pe.FORCE_LEFT?0:(r.popState(),r.ok||(r.popState(),r.ok)?r.pos:0)}return n===pe.RIGHT||n===pe.FORCE_RIGHT?(r.pushRightBeforeInput(),r.pushRightBeforeRequired(),r.pushRightBeforeFilled()?r.pos:n===pe.FORCE_RIGHT?this.displayValue.length:(r.popState(),r.ok||(r.popState(),r.ok)?r.pos:this.nearestInputPos(t,pe.LEFT))):t}totalInputPositions(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);let r=0;return this._forEachBlocksInRange(t,n,(l,a,s,i)=>{r+=l.totalInputPositions(s,i)}),r}maskedBlock(t){return this.maskedBlocks(t)[0]}maskedBlocks(t){const n=this._maskedBlocks[t];return n?n.map(r=>this._blocks[r]):[]}pad(t){const n=new xe;return this._forEachBlocksInRange(0,this.displayValue.length,r=>n.aggregate(r.pad(t))),n}}je.DEFAULTS={...ze.DEFAULTS,lazy:!0,placeholderChar:"_"},je.STOP_CHAR="`",je.ESCAPE_CHAR="\\",je.InputDefinition=Qt,je.FixedDefinition=po,be.MaskedPattern=je;class en extends je{get _matchFrom(){return this.maxLength-String(this.from).length}constructor(t){super(t)}updateOptions(t){super.updateOptions(t)}_update(t){const{to:n=this.to||0,from:r=this.from||0,maxLength:l=this.maxLength||0,autofix:a=this.autofix,...s}=t;this.to=n,this.from=r,this.maxLength=Math.max(String(n).length,l),this.autofix=a;const i=String(this.from).padStart(this.maxLength,"0"),c=String(this.to).padStart(this.maxLength,"0");let d=0;for(;d<c.length&&c[d]===i[d];)++d;s.mask=c.slice(0,d).replace(/0/g,"\\0")+"0".repeat(this.maxLength-d),super._update(s)}get isComplete(){return super.isComplete&&!!this.value}boundaries(t){let n="",r="";const[,l,a]=t.match(/^(\D*)(\d*)(\D*)/)||[];return a&&(n="0".repeat(l.length)+a,r="9".repeat(l.length)+a),n=n.padEnd(this.maxLength,"0"),r=r.padEnd(this.maxLength,"9"),[n,r]}doPrepareChar(t,n){n===void 0&&(n={});let r;return[t,r]=super.doPrepareChar(t.replace(/\D/g,""),n),t||(r.skip=!this.isComplete),[t,r]}_appendCharRaw(t,n){if(n===void 0&&(n={}),!this.autofix||this.value.length+1>this.maxLength)return super._appendCharRaw(t,n);const r=String(this.from).padStart(this.maxLength,"0"),l=String(this.to).padStart(this.maxLength,"0"),[a,s]=this.boundaries(this.value+t);return Number(s)<this.from?super._appendCharRaw(r[this.value.length],n):Number(a)>this.to?!n.tail&&this.autofix==="pad"&&this.value.length+1<this.maxLength?super._appendCharRaw(r[this.value.length],n).aggregate(this._appendCharRaw(t,n)):super._appendCharRaw(l[this.value.length],n):super._appendCharRaw(t,n)}doValidate(t){const n=this.value;if(n.search(/[^0]/)===-1&&n.length<=this._matchFrom)return!0;const[l,a]=this.boundaries(n);return this.from<=Number(a)&&Number(l)<=this.to&&super.doValidate(t)}pad(t){const n=new xe;if(this.value.length===this.maxLength)return n;const r=this.value,l=this.maxLength-this.value.length;if(l){this.reset();for(let a=0;a<l;++a)n.aggregate(super._appendCharRaw("0",t));r.split("").forEach(a=>this._appendCharRaw(a))}return n}}be.MaskedRange=en;const Mm="d{.}`m{.}`Y";class ht extends je{static extractPatternOptions(t){const{mask:n,pattern:r,...l}=t;return{...l,mask:$t(n)?n:r}}constructor(t){super(ht.extractPatternOptions({...ht.DEFAULTS,...t}))}updateOptions(t){super.updateOptions(t)}_update(t){const{mask:n,pattern:r,blocks:l,...a}={...ht.DEFAULTS,...t},s=Object.assign({},ht.GET_DEFAULT_BLOCKS());t.min&&(s.Y.from=t.min.getFullYear()),t.max&&(s.Y.to=t.max.getFullYear()),t.min&&t.max&&s.Y.from===s.Y.to&&(s.m.from=t.min.getMonth()+1,s.m.to=t.max.getMonth()+1,s.m.from===s.m.to&&(s.d.from=t.min.getDate(),s.d.to=t.max.getDate())),Object.assign(s,this.blocks,l),super._update({...a,mask:$t(n)?n:r,blocks:s})}doValidate(t){const n=this.date;return super.doValidate(t)&&(!this.isComplete||this.isDateExist(this.value)&&n!=null&&(this.min==null||this.min<=n)&&(this.max==null||n<=this.max))}isDateExist(t){return this.format(this.parse(t,this),this).indexOf(t)>=0}get date(){return this.typedValue}set date(t){this.typedValue=t}get typedValue(){return this.isComplete?super.typedValue:null}set typedValue(t){super.typedValue=t}maskEquals(t){return t===Date||super.maskEquals(t)}optionsIsChanged(t){return super.optionsIsChanged(ht.extractPatternOptions(t))}}ht.GET_DEFAULT_BLOCKS=()=>({d:{mask:en,from:1,to:31,maxLength:2},m:{mask:en,from:1,to:12,maxLength:2},Y:{mask:en,from:1900,to:9999}}),ht.DEFAULTS={...je.DEFAULTS,mask:Date,pattern:Mm,format:(o,t)=>{if(!o)return"";const n=String(o.getDate()).padStart(2,"0"),r=String(o.getMonth()+1).padStart(2,"0"),l=o.getFullYear();return[n,r,l].join(".")},parse:(o,t)=>{const[n,r,l]=o.split(".").map(Number);return new Date(l,r-1,n)}},be.MaskedDate=ht;class tn extends ze{constructor(t){super({...tn.DEFAULTS,...t}),this.currentMask=void 0}updateOptions(t){super.updateOptions(t)}_update(t){super._update(t),"mask"in t&&(this.exposeMask=void 0,this.compiledMasks=Array.isArray(t.mask)?t.mask.map(n=>{const{expose:r,...l}=Ut(n),a=ft({overwrite:this._overwrite,eager:this._eager,skipInvalid:this._skipInvalid,...l});return r&&(this.exposeMask=a),a}):[])}_appendCharRaw(t,n){n===void 0&&(n={});const r=this._applyDispatch(t,n);return this.currentMask&&r.aggregate(this.currentMask._appendChar(t,this.currentMaskFlags(n))),r}_applyDispatch(t,n,r){t===void 0&&(t=""),n===void 0&&(n={}),r===void 0&&(r="");const l=n.tail&&n._beforeTailState!=null?n._beforeTailState._value:this.value,a=this.rawInputValue,s=n.tail&&n._beforeTailState!=null?n._beforeTailState._rawInputValue:a,i=a.slice(s.length),c=this.currentMask,d=new xe,u=c?.state;return this.currentMask=this.doDispatch(t,{...n},r),this.currentMask&&(this.currentMask!==c?(this.currentMask.reset(),s&&(this.currentMask.append(s,{raw:!0}),d.tailShift=this.currentMask.value.length-l.length),i&&(d.tailShift+=this.currentMask.append(i,{raw:!0,tail:!0}).tailShift)):u&&(this.currentMask.state=u)),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 xe;return t&&n.aggregate(this._applyDispatch("",{},t)),n.aggregate(this.currentMask?this.currentMask.appendTail(t):super.appendTail(t))}currentMaskFlags(t){var n,r;return{...t,_beforeTailState:((n=t._beforeTailState)==null?void 0:n.currentMaskRef)===this.currentMask&&((r=t._beforeTailState)==null?void 0:r.currentMask)||t._beforeTailState}}doDispatch(t,n,r){return n===void 0&&(n={}),r===void 0&&(r=""),this.dispatch(t,this,n,r)}doValidate(t){return super.doValidate(t)&&(!this.currentMask||this.currentMask.doValidate(this.currentMaskFlags(t)))}doPrepare(t,n){n===void 0&&(n={});let[r,l]=super.doPrepare(t,n);if(this.currentMask){let a;[r,a]=super.doPrepare(r,this.currentMaskFlags(n)),l=l.aggregate(a)}return[r,l]}doPrepareChar(t,n){n===void 0&&(n={});let[r,l]=super.doPrepareChar(t,n);if(this.currentMask){let a;[r,a]=super.doPrepareChar(r,this.currentMaskFlags(n)),l=l.aggregate(a)}return[r,l]}reset(){var t;(t=this.currentMask)==null||t.reset(),this.compiledMasks.forEach(n=>n.reset())}get value(){return this.exposeMask?this.exposeMask.value:this.currentMask?this.currentMask.value:""}set value(t){this.exposeMask?(this.exposeMask.value=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.value=t}get unmaskedValue(){return this.exposeMask?this.exposeMask.unmaskedValue:this.currentMask?this.currentMask.unmaskedValue:""}set unmaskedValue(t){this.exposeMask?(this.exposeMask.unmaskedValue=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.unmaskedValue=t}get typedValue(){return this.exposeMask?this.exposeMask.typedValue:this.currentMask?this.currentMask.typedValue:""}set typedValue(t){if(this.exposeMask){this.exposeMask.typedValue=t,this.currentMask=this.exposeMask,this._applyDispatch();return}let n=String(t);this.currentMask&&(this.currentMask.typedValue=t,n=this.currentMask.unmaskedValue),this.unmaskedValue=n}get displayValue(){return this.currentMask?this.currentMask.displayValue:""}get isComplete(){var t;return!!((t=this.currentMask)!=null&&t.isComplete)}get isFilled(){var t;return!!((t=this.currentMask)!=null&&t.isFilled)}remove(t,n){const r=new xe;return this.currentMask&&r.aggregate(this.currentMask.remove(t,n)).aggregate(this._applyDispatch()),r}get state(){var t;return{...super.state,_rawInputValue:this.rawInputValue,compiledMasks:this.compiledMasks.map(n=>n.state),currentMaskRef:this.currentMask,currentMask:(t=this.currentMask)==null?void 0:t.state}}set state(t){const{compiledMasks:n,currentMaskRef:r,currentMask:l,...a}=t;n&&this.compiledMasks.forEach((s,i)=>s.state=n[i]),r!=null&&(this.currentMask=r,this.currentMask.state=l),super.state=a}extractInput(t,n,r){return this.currentMask?this.currentMask.extractInput(t,n,r):""}extractTail(t,n){return this.currentMask?this.currentMask.extractTail(t,n):super.extractTail(t,n)}doCommit(){this.currentMask&&this.currentMask.doCommit(),super.doCommit()}nearestInputPos(t,n){return this.currentMask?this.currentMask.nearestInputPos(t,n):super.nearestInputPos(t,n)}get overwrite(){return this.currentMask?this.currentMask.overwrite:this._overwrite}set overwrite(t){this._overwrite=t}get eager(){return this.currentMask?this.currentMask.eager:this._eager}set eager(t){this._eager=t}get skipInvalid(){return this.currentMask?this.currentMask.skipInvalid:this._skipInvalid}set skipInvalid(t){this._skipInvalid=t}get autofix(){return this.currentMask?this.currentMask.autofix:this._autofix}set autofix(t){this._autofix=t}maskEquals(t){return Array.isArray(t)?this.compiledMasks.every((n,r)=>{if(!t[r])return;const{mask:l,...a}=t[r];return Ln(n,a)&&n.maskEquals(l)}):super.maskEquals(t)}typedValueEquals(t){var n;return!!((n=this.currentMask)!=null&&n.typedValueEquals(t))}}tn.DEFAULTS={...ze.DEFAULTS,dispatch:(o,t,n,r)=>{if(!t.compiledMasks.length)return;const l=t.rawInputValue,a=t.compiledMasks.map((s,i)=>{const c=t.currentMask===s,d=c?s.displayValue.length:s.nearestInputPos(s.displayValue.length,pe.FORCE_LEFT);return s.rawInputValue!==l?(s.reset(),s.append(l,{raw:!0})):c||s.remove(d),s.append(o,t.currentMaskFlags(n)),s.appendTail(r),{index:i,weight:s.rawInputValue.length,totalInputPositions:s.totalInputPositions(0,Math.max(d,s.nearestInputPos(s.displayValue.length,pe.FORCE_LEFT)))}});return a.sort((s,i)=>i.weight-s.weight||i.totalInputPositions-s.totalInputPositions),t.compiledMasks[a[0].index]}},be.MaskedDynamic=tn;class nn extends je{constructor(t){super({...nn.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){const{enum:n,...r}=t;if(n){const l=n.map(i=>i.length),a=Math.min(...l),s=Math.max(...l)-a;r.mask="*".repeat(a),s&&(r.mask+="["+"*".repeat(s)+"]"),this.enum=n}super._update(r)}_appendCharRaw(t,n){n===void 0&&(n={});const r=Math.min(this.nearestInputPos(0,pe.FORCE_RIGHT),this.value.length),l=this.enum.filter(a=>this.matchValue(a,this.unmaskedValue+t,r));if(l.length){l.length===1&&this._forEachBlocksInRange(0,this.value.length,(s,i)=>{const c=l[0][i];i>=this.value.length||c===s.value||(s.reset(),s._appendChar(c,n))});const a=super._appendCharRaw(l[0][this.value.length],n);return l.length===1&&l[0].slice(this.unmaskedValue.length).split("").forEach(s=>a.aggregate(super._appendCharRaw(s))),a}return new xe({skip:!this.isComplete})}extractTail(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),new mt("",t)}remove(t,n){if(t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),t===n)return new xe;const r=Math.min(super.nearestInputPos(0,pe.FORCE_RIGHT),this.value.length);let l;for(l=t;l>=0&&!(this.enum.filter(i=>this.matchValue(i,this.value.slice(r,l),r)).length>1);--l);const a=super.remove(l,n);return a.tailShift+=l-t,a}get isComplete(){return this.enum.indexOf(this.value)>=0}}nn.DEFAULTS={...je.DEFAULTS,matchValue:(o,t,n)=>o.indexOf(t,n)===n},be.MaskedEnum=nn;class Nr extends ze{updateOptions(t){super.updateOptions(t)}_update(t){super._update({...t,validate:t.mask})}}be.MaskedFunction=Nr;var Ar;class Ke extends ze{constructor(t){super({...Ke.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){super._update(t),this._updateRegExps()}_updateRegExps(){const t="^"+(this.allowNegative?"[+|\\-]?":""),n="\\d*",r=(this.scale?"("+co(this.radix)+"\\d{0,"+this.scale+"})?":"")+"$";this._numberRegExp=new RegExp(t+n+r),this._mapToRadixRegExp=new RegExp("["+this.mapToRadix.map(co).join("")+"]","g"),this._thousandsSeparatorRegExp=new RegExp(co(this.thousandsSeparator),"g")}_removeThousandsSeparators(t){return t.replace(this._thousandsSeparatorRegExp,"")}_insertThousandsSeparators(t){const n=t.split(this.radix);return n[0]=n[0].replace(/\B(?=(\d{3})+(?!\d))/g,this.thousandsSeparator),n.join(this.radix)}doPrepareChar(t,n){n===void 0&&(n={});const[r,l]=super.doPrepareChar(this._removeThousandsSeparators(this.scale&&this.mapToRadix.length&&(n.input&&n.raw||!n.input&&!n.raw)?t.replace(this._mapToRadixRegExp,this.radix):t),n);return t&&!r&&(l.skip=!0),r&&!this.allowPositive&&!this.value&&r!=="-"&&l.aggregate(this._appendChar("-")),[r,l]}_separatorsCount(t,n){n===void 0&&(n=!1);let r=0;for(let l=0;l<t;++l)this._value.indexOf(this.thousandsSeparator,l)===l&&(++r,n&&(t+=this.thousandsSeparator.length));return r}_separatorsCountFromSlice(t){return t===void 0&&(t=this._value),this._separatorsCount(this._removeThousandsSeparators(t).length,!0)}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),[t,n]=this._adjustRangeWithSeparators(t,n),this._removeThousandsSeparators(super.extractInput(t,n,r))}_appendCharRaw(t,n){n===void 0&&(n={});const r=n.tail&&n._beforeTailState?n._beforeTailState._value:this._value,l=this._separatorsCountFromSlice(r);this._value=this._removeThousandsSeparators(this.value);const a=this._value;this._value+=t;const s=this.number;let i=!isNaN(s),c=!1;if(i){let h;this.min!=null&&this.min<0&&this.number<this.min&&(h=this.min),this.max!=null&&this.max>0&&this.number>this.max&&(h=this.max),h!=null&&(this.autofix?(this._value=this.format(h,this).replace(Ke.UNMASKED_RADIX,this.radix),c||(c=a===this._value&&!n.tail)):i=!1),i&&(i=!!this._value.match(this._numberRegExp))}let d;i?d=new xe({inserted:this._value.slice(a.length),rawInserted:c?"":t,skip:c}):(this._value=a,d=new xe),this._value=this._insertThousandsSeparators(this._value);const u=n.tail&&n._beforeTailState?n._beforeTailState._value:this._value,p=this._separatorsCountFromSlice(u);return d.tailShift+=(p-l)*this.thousandsSeparator.length,d}_findSeparatorAround(t){if(this.thousandsSeparator){const n=t-this.thousandsSeparator.length+1,r=this.value.indexOf(this.thousandsSeparator,n);if(r<=t)return r}return-1}_adjustRangeWithSeparators(t,n){const r=this._findSeparatorAround(t);r>=0&&(t=r);const l=this._findSeparatorAround(n);return l>=0&&(n=l+this.thousandsSeparator.length),[t,n]}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),[t,n]=this._adjustRangeWithSeparators(t,n);const r=this.value.slice(0,t),l=this.value.slice(n),a=this._separatorsCount(r.length);this._value=this._insertThousandsSeparators(this._removeThousandsSeparators(r+l));const s=this._separatorsCountFromSlice(r);return new xe({tailShift:(s-a)*this.thousandsSeparator.length})}nearestInputPos(t,n){if(!this.thousandsSeparator)return t;switch(n){case pe.NONE:case pe.LEFT:case pe.FORCE_LEFT:{const r=this._findSeparatorAround(t-1);if(r>=0){const l=r+this.thousandsSeparator.length;if(t<l||this.value.length<=l||n===pe.FORCE_LEFT)return r}break}case pe.RIGHT:case pe.FORCE_RIGHT:{const r=this._findSeparatorAround(t);if(r>=0)return r+this.thousandsSeparator.length}}return t}doCommit(){if(this.value){const t=this.number;let n=t;this.min!=null&&(n=Math.max(n,this.min)),this.max!=null&&(n=Math.min(n,this.max)),n!==t&&(this.unmaskedValue=this.format(n,this));let r=this.value;this.normalizeZeros&&(r=this._normalizeZeros(r)),this.padFractionalZeros&&this.scale>0&&(r=this._padFractionalZeros(r)),this._value=r}super.doCommit()}_normalizeZeros(t){const n=this._removeThousandsSeparators(t).split(this.radix);return n[0]=n[0].replace(/^(\D*)(0*)(\d*)/,(r,l,a,s)=>l+s),t.length&&!/\d$/.test(n[0])&&(n[0]=n[0]+"0"),n.length>1&&(n[1]=n[1].replace(/0*$/,""),n[1].length||(n.length=1)),this._insertThousandsSeparators(n.join(this.radix))}_padFractionalZeros(t){if(!t)return t;const n=t.split(this.radix);return n.length<2&&n.push(""),n[1]=n[1].padEnd(this.scale,"0"),n.join(this.radix)}doSkipInvalid(t,n,r){n===void 0&&(n={});const l=this.scale===0&&t!==this.thousandsSeparator&&(t===this.radix||t===Ke.UNMASKED_RADIX||this.mapToRadix.includes(t));return super.doSkipInvalid(t,n,r)&&!l}get unmaskedValue(){return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix,Ke.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(Ke.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)||Ke.EMPTY_VALUES.includes(t)&&Ke.EMPTY_VALUES.includes(this.typedValue))&&!(t===0&&this.value==="")}}Ar=Ke,Ke.UNMASKED_RADIX=".",Ke.EMPTY_VALUES=[...ze.EMPTY_VALUES,0],Ke.DEFAULTS={...ze.DEFAULTS,mask:Number,radix:",",thousandsSeparator:"",mapToRadix:[Ar.UNMASKED_RADIX],min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER,scale:2,normalizeZeros:!0,padFractionalZeros:!1,parse:Number,format:o=>o.toLocaleString("en-US",{useGrouping:!1,maximumFractionDigits:20})},be.MaskedNumber=Ke;const On={MASKED:"value",UNMASKED:"unmaskedValue",TYPED:"typedValue"};function fo(o,t,n){t===void 0&&(t=On.MASKED),n===void 0&&(n=On.MASKED);const r=ft(o);return l=>r.runIsolated(a=>(a[t]=l,a[n]))}function Mr(o,t,n,r){return fo(t,n,r)(o)}be.PIPE_TYPE=On,be.createPipe=fo,be.pipe=Mr;class Fr extends je{get repeatFrom(){var t;return(t=Array.isArray(this.repeat)?this.repeat[0]:this.repeat===1/0?0:this.repeat)!=null?t:0}get repeatTo(){var t;return(t=Array.isArray(this.repeat)?this.repeat[1]:this.repeat)!=null?t:1/0}constructor(t){super(t)}updateOptions(t){super.updateOptions(t)}_update(t){var n,r,l;const{repeat:a,...s}=Ut(t);this._blockOpts=Object.assign({},this._blockOpts,s);const i=ft(this._blockOpts);this.repeat=(n=(r=a??i.repeat)!=null?r:this.repeat)!=null?n:1/0,super._update({mask:"m".repeat(Math.max(this.repeatTo===1/0&&((l=this._blocks)==null?void 0:l.length)||0,this.repeatFrom)),blocks:{m:i},eager:i.eager,overwrite:i.overwrite,skipInvalid:i.skipInvalid,lazy:i.lazy,placeholderChar:i.placeholderChar,displayChar:i.displayChar})}_allocateBlock(t){if(t<this._blocks.length)return this._blocks[t];if(this.repeatTo===1/0||this._blocks.length<this.repeatTo)return this._blocks.push(ft(this._blockOpts)),this.mask+="m",this._blocks[this._blocks.length-1]}_appendCharRaw(t,n){n===void 0&&(n={});const r=new xe;for(let c=(l=(a=this._mapPosToBlock(this.displayValue.length))==null?void 0:a.index)!=null?l:Math.max(this._blocks.length-1,0),d,u;d=(s=this._blocks[c])!=null?s:u=!u&&this._allocateBlock(c);++c){var l,a,s,i;const p=d._appendChar(t,{...n,_beforeTailState:(i=n._beforeTailState)==null||(i=i._blocks)==null?void 0:i[c]});if(p.skip&&u){this._blocks.pop(),this.mask=this.mask.slice(1);break}if(r.aggregate(p),p.consumed)break}return r}_trimEmptyTail(t,n){var r,l;t===void 0&&(t=0);const a=Math.max(((r=this._mapPosToBlock(t))==null?void 0:r.index)||0,this.repeatFrom,0);let s;n!=null&&(s=(l=this._mapPosToBlock(n))==null?void 0:l.index),s==null&&(s=this._blocks.length-1);let i=0;for(let c=s;a<=c&&!this._blocks[c].unmaskedValue;--c,++i);i&&(this._blocks.splice(s-i+1,i),this.mask=this.mask.slice(i))}reset(){super.reset(),this._trimEmptyTail()}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const r=super.remove(t,n);return this._trimEmptyTail(t,n),r}totalInputPositions(t,n){return t===void 0&&(t=0),n==null&&this.repeatTo===1/0?1/0:super.totalInputPositions(t,n)}get state(){return super.state}set state(t){this._blocks.length=t._blocks.length,this.mask=this.mask.slice(0,this._blocks.length),super.state=t}}be.RepeatBlock=Fr;try{globalThis.IMask=be}catch{}const Pn=Object.freeze(Object.defineProperty({__proto__:null,ChangeDetails:xe,ChunksTailDetails:Nt,DIRECTION:pe,HTMLContenteditableMaskElement:uo,HTMLInputMaskElement:Vr,HTMLMaskElement:Jt,InputMask:Sr,MaskElement:In,Masked:ze,MaskedDate:ht,MaskedDynamic:tn,MaskedEnum:nn,MaskedFunction:Nr,MaskedNumber:Ke,MaskedPattern:je,MaskedRange:en,MaskedRegExp:$r,PIPE_TYPE:On,PatternFixedDefinition:po,PatternInputDefinition:Qt,RepeatBlock:Fr,createMask:ft,createPipe:fo,default:be,forceDirection:vr,normalizeOpts:Ut,pipe:Mr},Symbol.toStringTag,{value:"Module"})),Fm=async o=>{try{const t=new FormData;return t.append("unique","true"),t.append("file",o),(await(await fetch("/file/upload/uploads?id=&form=&table=",{method:"POST",body:t})).json())?.result}catch(t){console.error(t)}},Dm=async(o,t,n)=>{const r=t.clipboardData?.items;if(r){const l=t.clipboardData?.getData("text/html"),a=t.clipboardData?.getData("text/plain");if(l){const{state:s,dispatch:i}=o,{tr:c}=s,d=n.fromSchema(o.state.schema),u=new DOMParser().parseFromString(l,"text/html").body,p=d.parse(u),h=c.replaceSelectionWith(p);return i(h),t.preventDefault(),!0}if(a){const{state:s,dispatch:i}=o,{tr:c}=s,d=c.insertText(a,s.selection.from,s.selection.to);return i(d),t.preventDefault(),!0}for(let s=0;s<r.length;s++){const i=r[s];if(i.type.startsWith("image/")){const c=i.getAsFile();if(c){const d=await Fm(c),{schema:u}=o.state,p=u.nodes.image.create({src:d?.file_path}),h=o.state.tr.replaceSelectionWith(p);return o.dispatch(h),t.preventDefault(),!0}}}}return!1},Tm="https://esm.sh",Ye="3.7.2",Dr="3.7.2",Lm=`?deps=@tiptap/core@${Ye},@tiptap/pm@${Dr}`,Xe=o=>`${Tm}/${o}${Lm}`,Ze={core:Xe(`@tiptap/core@${Ye}`),starterKit:Xe(`@tiptap/starter-kit@${Ye}`),textStyle:Xe(`@tiptap/extension-text-style@${Ye}`),table:Xe(`@tiptap/extension-table@${Ye}`),highlight:Xe(`@tiptap/extension-highlight@${Ye}`),subscript:Xe(`@tiptap/extension-subscript@${Ye}`),superscript:Xe(`@tiptap/extension-superscript@${Ye}`),link:Xe(`@tiptap/extension-link@${Ye}`),image:Xe(`@tiptap/extension-image@${Ye}`),textAlign:Xe(`@tiptap/extension-text-align@${Ye}`),heading:Xe(`@tiptap/extension-heading@${Ye}`),paragraph:Xe(`@tiptap/extension-paragraph@${Ye}`),pmModel:Xe(`@tiptap/pm@${Dr}/model`)},on="__vs_form_tiptap_loader__",Je=o=>import(o),Te=(o,t)=>o?.[t]||o?.default?.[t]||o?.default?.default?.[t]||o?.default||o,Tr={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;"},Im=o=>o.extend({addOptions(){return{...this.parent?.(),levels:[1,2,3,4,5,6]}}}).extend({addAttributes(){return{...this.parent?.(),level:{default:1,renderHTML:t=>{const n=t.level||1;return{class:`heading-level-${n}`,style:Tr[n]||Tr[1]}}}}}}),Rm=o=>o.configure({HTMLAttributes:{style:"min-height: 1rem;"}}),Om=(o,t,n,r,l)=>{const a=t.extend({renderHTML({HTMLAttributes:s}){return["div",{style:"overflow-x: auto;"},["table",s,0]]},parseHTML(){return[{tag:"div.table-wrapper table",priority:100},{tag:"table"}]}});return o.extend({addExtensions(){return[a.configure({HTMLAttributes:{class:"editor-content"},resizable:!0}),n,r,l]}})},Pm=o=>o.extend({addAttributes(){return{...this.parent?.(),fontFamily:{default:null,parseHTML:t=>t.style.fontFamily?.replace(/['"]/g,""),renderHTML:t=>t.fontFamily?{style:`font-family: ${t.fontFamily}`}:{}},fontSize:{default:null,parseHTML:t=>t.style.fontSize?.replace(/['"]/g,""),renderHTML:t=>t.fontSize?{style:`font-size: ${t.fontSize}`}:{}},color:{default:null,parseHTML:t=>t.style.color?.replace(/['"]/g,""),renderHTML:t=>t.color?{style:`color: ${t.color}`}:{}},backgroundColor:{default:null,parseHTML:t=>t.style.backgroundColor?.replace(/['"]/g,""),renderHTML:t=>!t.backgroundColor||t.backgroundColor==="transparent"?{}:{style:`background-color: ${t.backgroundColor}`}}}},addCommands(){return{setFontFamily:t=>({chain:n})=>n().setMark("textStyle",{fontFamily:t}).run(),unsetFontFamily:()=>({chain:t})=>t().setMark("textStyle",{fontFamily:null}).removeEmptyTextStyle().run(),setFontSize:t=>({chain:n})=>n().setMark("textStyle",{fontSize:t}).run(),unsetFontSize:()=>({chain:t})=>t().setMark("textStyle",{fontSize:null}).removeEmptyTextStyle().run(),setColor:t=>({chain:n})=>n().setMark("textStyle",{color:t}).run(),unsetColor:()=>({chain:t})=>t().setMark("textStyle",{color:null}).removeEmptyTextStyle().run(),setBackgroundColor:t=>({chain:n})=>n().setMark("textStyle",{backgroundColor:t}).run(),unsetBackgroundColor:()=>({chain:t})=>t().setMark("textStyle",{backgroundColor:null}).removeEmptyTextStyle().run()}}}),zm=o=>o.create({name:"iframe",group:"block",inline:!1,atom:!0,selectable:!0,addAttributes(){return{src:{default:null},width:{default:"100%"},height:{default:"280"},frameborder:{default:"0"},allow:{default:null},allowfullscreen:{default:null},referrerpolicy:{default:null},loading:{default:null},class:{default:null},title:{default:null},style:{default:null}}},parseHTML(){return[{tag:"iframe"}]},renderHTML({HTMLAttributes:t}){return["iframe",t]}});async function jm(){if(typeof window>"u")return null;const o=window;return o[on]||(o[on]=Promise.all([Je(Ze.core),Je(Ze.starterKit),Je(Ze.textStyle),Je(Ze.table),Je(Ze.highlight),Je(Ze.subscript),Je(Ze.superscript),Je(Ze.link),Je(Ze.image),Je(Ze.textAlign),Je(Ze.heading),Je(Ze.paragraph),Je(Ze.pmModel)]).then(([t,n,r,l,a,s,i,c,d,u,p,h,k])=>{const m=Te(t,"Editor"),g=Te(t,"Node"),y=Te(t,"Extension"),C=Te(n,"StarterKit"),x=Te(r,"TextStyle"),w=Te(l,"TableKit"),V=Te(l,"Table"),z=Te(l,"TableRow"),X=Te(l,"TableCell"),L=Te(l,"TableHeader"),E=Te(a,"Highlight"),S=Te(s,"Subscript"),N=Te(i,"Superscript"),v=Te(c,"Link"),$=Te(d,"Image"),R=Te(u,"TextAlign"),B=Te(p,"Heading"),F=Te(h,"Paragraph"),D=Te(k,"DOMParser");if(!m||!g||!C||!x||!w||!V||!z||!X||!L||!E||!S||!N||!v||!$||!R||!B||!F||!D)throw new Error("Failed to resolve one or more Tiptap modules");return{Editor:m,Extension:y,ProseMirrorDOMParser:D,StarterKit:C,ExtendedTextStyle:Pm(x),Highlight:E,Subscript:S,Superscript:N,Link:v,Image:$,TextAlign:R,CustomHeading:Im(B),CustomParagraph:Rm(F),CustomTableKit:Om(w,V,z,X,L),Iframe:zm(g)}}).catch(t=>{throw delete o[on],t})),o[on]}function Um(o){let t=!1;const n=e.shallowRef(null),r=e.ref(!1),l=e.ref(""),a=async(d,u="")=>{if(!d)return null;r.value=!0,l.value="";try{const p=await jm();if(!p)return null;const h=new p.Editor({element:d,content:u,extensions:[p.StarterKit.configure({history:{depth:100,newGroupDelay:500},code:{HTMLAttributes:{class:"editor-code"}},codeBlock:{HTMLAttributes:{class:"editor-codeblock"}},paragraph:!1,heading:!1,link:!1}),p.Superscript,p.Subscript,p.ExtendedTextStyle,p.CustomParagraph,p.CustomHeading,p.Highlight,p.Image.configure({inline:!0,allowBase64:!0,HTMLAttributes:{class:"editor-image"}}),p.TextAlign.configure({types:["heading","paragraph"]}),p.Link.configure({HTMLAttributes:{class:"editor-link"},openOnClick:!1,autolink:!0}),p.CustomTableKit,p.Iframe],editorProps:{handlePaste:(k,m)=>Dm(k,m,p.ProseMirrorDOMParser),handleKeyDown:(k,m)=>{if(m.key==="Tab"){const g=k.state,{$anchor:y}=g.selection;let C=!1;for(let x=y.depth;x>0;x--){const w=y.node(x);if(w&&(w.type.name==="bulletList"||w.type.name==="orderedList")){C=!0;break}}return C?!1:(m.preventDefault(),!0)}return!1}}});return n.value=e.markRaw(h),h}catch(p){return l.value="Failed to load rich text editor dependencies.",console.error("Failed to initialize rich text editor",p),null}finally{r.value=!1}},s=e.computed(()=>n.value||null);return e.watch(n,d=>{d&&n.value.on("update",u=>{if(!t){t=!0;const p=u.editor.getHTML();o.modelValue,setTimeout(()=>{t=!1},10)}})}),{editor:n,editorInstance:s,focusEditor:()=>{n.value&&!n.value.isFocused&&n.value.commands.focus()},createEditor:a,destroyEditor:()=>{n.value&&(n.value.destroy(),n.value=null)},isLoading:r,loadError:l}}function Hm(o,t,n,{toEditorContent:r,toSourceContent:l}={}){const a=e.ref(!1),s=e.ref(""),i=e.ref(null);return{isHtmlMode:a,htmlContent:s,htmlTextarea:i,toggleHtmlMode:async u=>{if(a.value=u,u)o.value&&(s.value=l?await l(o.value.getHTML(),t):o.value.getHTML()),e.nextTick(()=>{i.value&&i.value.focus?.()});else if(o.value){const p=r?await r(s.value,t):s.value;o.value.commands.setContent(p,!0),e.nextTick(()=>{o.value?.commands?.focus?.()})}},onHtmlInput:u=>{s.value=u,n&&n("update:modelValue",u)}}}function qm(){const o=e.ref(!1);return{isFullscreen:o,toggleFullscreen:()=>{o.value=!o.value}}}const At=o=>o.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),rn=o=>{let t=At(o||"");return t=t.replace(/!\[([^\]]*)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(n,r,l,a)=>{const s=a?` title="${At(a)}"`:"";return`<img src="${At(l)}" alt="${At(r)}"${s}>`}),t=t.replace(/\[([^\]]+)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(n,r,l,a)=>{const s=a?` title="${At(a)}"`:"";return`<a href="${At(l)}"${s} target="_blank" rel="noopener noreferrer">${r}</a>`}),t=t.replace(/`([^`]+)`/g,"<code>$1</code>"),t=t.replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>"),t=t.replace(/__([^_]+)__/g,"<strong>$1</strong>"),t=t.replace(/~~([^~]+)~~/g,"<del>$1</del>"),t=t.replace(/\*([^*\n]+)\*/g,"<em>$1</em>"),t=t.replace(/_([^_\n]+)_/g,"<em>$1</em>"),t},ln=o=>/^\s*\d+\.\s+/.test(o),mo=o=>/^\s*[-*+]\s+/.test(o),Lr=o=>/^\s*[-*+]\s+\[[ xX]\]\s+/.test(o),ho=o=>/^\s*>\s?/.test(o),go=o=>/^\s*\|?(?:\s*:?-{3,}:?\s*\|)+\s*:?-{3,}:?\s*\|?\s*$/.test(o),Ir=o=>o.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(t=>rn(t.trim())),Km=(o,t)=>{const n=o[t],r=o[t+1];if(!n||!r||!n.includes("|")||!go(r))return null;const l=Ir(n),a=[];let s=t+2;for(;s<o.length&&o[s].includes("|")&&o[s].trim()!=="";){const d=Ir(o[s]);a.push(`<tr>${d.map(u=>`<td>${u}</td>`).join("")}</tr>`),s+=1}const i=`<thead><tr>${l.map(d=>`<th>${d}</th>`).join("")}</tr></thead>`,c=a.length?`<tbody>${a.join("")}</tbody>`:"";return{html:`<table>${i}${c}</table>`,nextIndex:s}},Wm=(o,t)=>{const n=ln(o[t]),r=n?"ol":"ul",l=[];let a=t;for(;a<o.length;){const s=o[a];if(s.trim()===""||!(n?ln(s):(mo(s)||Lr(s))&&!ln(s)))break;const c=s.match(/^\s*[-*+]\s+\[([ xX])\]\s+(.*)$/);if(c){const d=c[1].toLowerCase()==="x";l.push(`<li><input type="checkbox" disabled${d?" checked":""}> ${rn(c[2])}</li>`)}else{const d=s.replace(/^\s*(?:[-*+]|\d+\.)\s+/,"");l.push(`<li>${rn(d)}</li>`)}a+=1}return{html:`<${r}>${l.join("")}</${r}>`,nextIndex:a}},Gm=(o,t)=>{const r=o[t].replace(/^```/,"").trim(),l=[];let a=t+1;for(;a<o.length&&!o[a].startsWith("```");)l.push(o[a]),a+=1;return{html:`<pre><code${r?` class="language-${At(r)}"`:""}>${At(l.join(`
|
|
6
|
+
`))}</code></pre>`,nextIndex:a<o.length?a+1:a}},Ym=(o,t)=>{const n=[];let r=t;for(;r<o.length;){const l=o[r];if(l.trim()===""||l.startsWith("```")||/^#{1,6}\s+/.test(l)||/^---+$/.test(l.trim())||/^\*\*\*+$/.test(l.trim())||ho(l)||ln(l)||mo(l)||r+1<o.length&&l.includes("|")&&go(o[r+1]))break;n.push(l.trim()),r+=1}return{html:`<p>${rn(n.join(" "))}</p>`,nextIndex:r}},Rr=o=>{const n=(o||"").replace(/\r\n/g,`
|
|
7
7
|
`).split(`
|
|
8
|
-
`),r=[];let l=0;for(;l<n.length;){const a=n[l],s=a.trim();if(!s){l+=1;continue}if(a.startsWith("```")){const d=
|
|
9
|
-
`))}</blockquote>`);continue}if(
|
|
10
|
-
`)},
|
|
11
|
-
`);function
|
|
8
|
+
`),r=[];let l=0;for(;l<n.length;){const a=n[l],s=a.trim();if(!s){l+=1;continue}if(a.startsWith("```")){const d=Gm(n,l);r.push(d.html),l=d.nextIndex;continue}const i=a.match(/^(#{1,6})\s+(.*)$/);if(i){const d=i[1].length;r.push(`<h${d}>${rn(i[2])}</h${d}>`),l+=1;continue}if(/^---+$/.test(s)||/^\*\*\*+$/.test(s)){r.push("<hr>"),l+=1;continue}if(a.includes("|")&&l+1<n.length&&go(n[l+1])){const d=Km(n,l);if(d){r.push(d.html),l=d.nextIndex;continue}}if(ho(a)){const d=[];for(;l<n.length&&ho(n[l]);)d.push(n[l].replace(/^\s*>\s?/,"")),l+=1;r.push(`<blockquote>${Rr(d.join(`
|
|
9
|
+
`))}</blockquote>`);continue}if(ln(a)||mo(a)||Lr(a)){const d=Wm(n,l);r.push(d.html),l=d.nextIndex;continue}const c=Ym(n,l);r.push(c.html),l=c.nextIndex}return r.join("")},yo=o=>(o.textContent||"").replace(/\u00a0/g," "),Or=o=>Array.from(o.childNodes).map(t=>bo(t)).join(""),Xm=o=>{const t=Array.from(o.querySelectorAll("tr"));if(!t.length)return"";const n=i=>`| ${Array.from(i.children).map(d=>Or(d).trim()).join(" | ")} |`,r=t[0],l=r?Array.from(r.children).length:0,a=`| ${Array(Math.max(l,1)).fill("---").join(" | ")} |`,s=t.slice(1).map(i=>n(i));return[n(r),a,...s].join(`
|
|
10
|
+
`)},Pr=(o,t=!1)=>Array.from(o.children).filter(n=>n.nodeType===Node.ELEMENT_NODE).map((n,r)=>{const l=n,a=l.querySelector('input[type="checkbox"]'),s=Array.from(l.childNodes).filter(i=>!(i instanceof HTMLInputElement)).map(i=>bo(i)).join("").trim();return a?`- [${a.checked?"x":" "}] ${s}`:t?`${r+1}. ${s}`:`- ${s}`}).join(`
|
|
11
|
+
`);function bo(o){if(o.nodeType===Node.TEXT_NODE)return yo(o);if(o.nodeType!==Node.ELEMENT_NODE)return"";const t=o,n=t.tagName.toLowerCase(),r=Or(t);switch(n){case"br":return`
|
|
12
12
|
`;case"p":return`${r.trim()}
|
|
13
13
|
|
|
14
|
-
`;case"strong":case"b":return`**${r}**`;case"em":case"i":return`*${r}*`;case"del":case"s":return`~~${r}~~`;case"code":return t.parentElement?.tagName.toLowerCase()==="pre"?r:`\`${r}\``;case"pre":{const l=t.querySelector("code"),
|
|
15
|
-
${
|
|
14
|
+
`;case"strong":case"b":return`**${r}**`;case"em":case"i":return`*${r}*`;case"del":case"s":return`~~${r}~~`;case"code":return t.parentElement?.tagName.toLowerCase()==="pre"?r:`\`${r}\``;case"pre":{const l=t.querySelector("code"),i=(l?.className||"").match(/language-([a-z0-9_-]+)/i)?.[1]||"",c=yo(l||t);return`\`\`\`${i}
|
|
15
|
+
${c}
|
|
16
16
|
\`\`\`
|
|
17
17
|
|
|
18
18
|
`}case"blockquote":return`${r.trim().split(`
|
|
@@ -21,31 +21,31 @@ ${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)} ${r.trim()}
|
|
23
23
|
|
|
24
|
-
`}case"ul":return`${
|
|
24
|
+
`}case"ul":return`${Pr(t,!1)}
|
|
25
25
|
|
|
26
|
-
`;case"ol":return`${
|
|
26
|
+
`;case"ol":return`${Pr(t,!0)}
|
|
27
27
|
|
|
28
28
|
`;case"a":{const l=t.getAttribute("href")||"";return`[${r||l}](${l})`}case"img":{const l=t.getAttribute("alt")||"",a=t.getAttribute("src")||"";return a?``:""}case"hr":return`---
|
|
29
29
|
|
|
30
|
-
`;case"table":return`${
|
|
30
|
+
`;case"table":return`${Xm(t)}
|
|
31
31
|
|
|
32
|
-
`;default:return r}}const
|
|
32
|
+
`;default:return r}}const zr=o=>{if(!o)return"";if(typeof window>"u"||typeof DOMParser>"u")return o;const n=new DOMParser().parseFromString(o,"text/html");return Array.from(n.body.childNodes).map(r=>bo(r)).join("").replace(/\n{3,}/g,`
|
|
33
33
|
|
|
34
|
-
`).trim()},
|
|
35
|
-
`)},yo=async(o,t)=>t!=="md"?o||"":Lr(o||""),Zm=async(o,t)=>t!=="md"?Xm(o||""):Or(o||""),Jm=async(o,t)=>t!=="md"?o||"":Or(o||""),Qm=o=>String(o).trim().toLowerCase().split("-")[0],eh=()=>typeof window>"u"?"uk":Qm(localStorage.getItem("language")||localStorage.getItem("locale")||navigator.language||"uk"),th=(o,t)=>{const n=t.replace(/^form\.richtext\./,"");return lo?.[o]?.form?.richtext?.[n]||lo?.uk?.form?.richtext?.[n]||t},zr=o=>o.startsWith("form.richtext.")?o:`form.richtext.${o}`;function Rn(){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=zr(l);if((typeof s=="function"?s(i):typeof c=="function"?c(i):null)!==!1){const u=a(i);if(u&&u!==i)return u}}return th(eh(),zr(l))}}}const nh={components:{Quote:z.Quote},props:{editor:Object},methods:{toggleBlockquote(){this.editor&&this.editor.chain().toggleBlockquote().run()}}};function oh(o,t,n,r,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 rh=xe(nh,[["render",oh]]),lh={components:{List:z.List},props:{editor:Object},methods:{toggleBulletList(){this.editor&&this.editor.chain().focus().toggleBulletList().run()}}};function ah(o,t,n,r,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 sh=xe(lh,[["render",ah]]),ih={components:{ListOrdered:z.ListOrdered},props:{editor:Object},methods:{toggleOrderedList(){this.editor&&this.editor.chain().focus().toggleOrderedList().run()}}};function ch(o,t,n,r,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 dh=xe(ih,[["render",ch]]),uh={components:{CodeXml:z.CodeXml},props:{editor:Object},methods:{toggleCodeBlock(){this.editor&&this.editor.chain().focus().toggleCodeBlock().run()}}};function ph(o,t,n,r,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 fh=xe(uh,[["render",ph]]),mh={components:{Bold:z.Bold},props:{editor:Object},methods:{toggleBold(){this.editor&&this.editor.commands.toggleBold()}}};function hh(o,t,n,r,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 gh=xe(mh,[["render",hh]]),yh={components:{Italic:z.Italic},props:{editor:Object},methods:{toggleItalic(){this.editor&&this.editor.chain().toggleItalic().run()}}};function bh(o,t,n,r,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 kh=xe(yh,[["render",bh]]),xh={__name:"vs-editor-underline",props:{editor:Object},setup(o){const t=o,n=()=>{t.editor&&t.editor.chain().focus().toggleUnderline().run()};return(r,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",[o.editor?.isActive("underline")?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(z.Underline),{class:"h-4 w-4"})],2))}},wh={__name:"vs-editor-strike",props:{editor:Object},setup(o){const t=o,n=()=>{t.editor&&t.editor.chain().focus().toggleStrike().run()};return(r,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",[o.editor?.isActive("strike")?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(z.Strikethrough),{class:"h-4 w-4"})],2))}},Ch={components:{X:z.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:o}){o==="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(o,t){t&&o.target.classList.contains("vs-dialog-overlay")&&this.handleClose()}}},vh={key:0,class:"vsTailwind ui-dialog__wrapper"},Eh={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},_h={class:"font-medium text-gray-800 dark:text-[#ffffff]"},Bh={class:"ui-dialog__content p-4"},Vh={key:0,class:"flex justify-end gap-x-2"};function Sh(o,t,n,r,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",vh,[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",Eh,[e.createElementVNode("h3",_h,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",Bh,[e.renderSlot(o.$slots,"default",{},void 0,!0)]),a.hasSlot?(e.openBlock(),e.createElementBlock("div",Vh,[e.renderSlot(o.$slots,"footer",{handleClose:a.handleClose,handleConfirm:a.handleConfirm,handleCancel:a.handleCancel},void 0,!0)])):e.createCommentVNode("",!0)],2)]),_:3})],32)])):e.createCommentVNode("",!0)])}const Pr=xe(Ch,[["render",Sh],["__scopeId","data-v-9395bb47"]]),$h=e.defineComponent({components:{IconClose:z.X,IconSearch:z.Search,IconEmail:z.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(o){this.$emit("update:modelValue",o.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()}}}),Nh={class:"vs-form-text relative bg-white rounded-lg"},Ah={key:2,class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},Fh=["disabled","type","placeholder"];function Mh(o,t,n,r,l,a){const s=e.resolveComponent("IconClose"),c=e.resolveComponent("IconSearch"),i=e.resolveComponent("IconEmail");return e.openBlock(),e.createElementBlock("div",Nh,[o.clearable&&o.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)=>o.clearInput&&o.clearInput(...d))},[e.createVNode(s,{class:"h-4 w-4 stroke-gray-500 transition-all hover:stroke-red-500"})])):e.createCommentVNode("",!0),o.icon&&o.icon==="search"?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["absolute bottom-2/4 translate-y-2/4 cursor-pointer",o.iconStylePosition])},[e.createVNode(c,{class:"h-4 w-4 stroke-gray-500 transition-all"})],2)):o.icon&&o.icon==="email"?(e.openBlock(),e.createElementBlock("div",Ah,[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 "+o.icon,o.iconStylePosition]])},null,2)),o.clearable&&o.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)=>o.clearInput&&o.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:o.disabled,type:o.type,onInput:t[2]||(t[2]=(...d)=>o.handleInput&&o.handleInput(...d)),placeholder:o.placeholder,"onUpdate:modelValue":t[3]||(t[3]=d=>o.value=d)},o.style?.attrs||o.attrs||{},{onFocus:t[4]||(t[4]=(...d)=>o.handleFocus&&o.handleFocus(...d)),onBlur:t[5]||(t[5]=(...d)=>o.handleBlur&&o.handleBlur(...d)),class:[[o.inputStyle,o.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,Fh),[[e.vModelDynamic,o.value]])])}const jr=xe($h,[["render",Mh],["__scopeId","data-v-1e382a36"]]),Dh=["title"],Th={class:"flex flex-col gap-3 p-[20px]"},Lh={class:"relative flex items-center gap-2"},Ih={class:"flex-1"},Rh={key:0,class:"flex items-center gap-2 flex-shrink-0"},Oh=["title"],zh=["title"],Ph={class:"flex items-center gap-2"},jh={for:"openInNewTab",class:"text-sm text-gray-700 cursor-pointer"},Uh={class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},Hh=Object.assign({inheritAttrs:!1},{__name:"vs-editor-link",props:{editor:Object},setup(o){const{t}=Rn(),n=o,r=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 h=n.editor.getAttributes("link");h.href?(a.value=!0,l.value=h.href,s.value=h.target==="_blank"):(a.value=!1,l.value="",s.value=!1),r.value=!0},i=()=>{r.value=!1,l.value="",a.value=!1,s.value=!1},d=()=>{if(!n.editor||!l.value.trim())return;let h=l.value.trim();h.match(/^https?:\/\//i)||(h="https://"+h),n.editor.chain().focus().setLink({href:h,target:s.value?"_blank":null}).run(),i()},u=()=>{n.editor&&(n.editor.chain().focus().unsetLink().run(),i())},f=()=>{if(!l.value)return;let h=l.value.trim();h.match(/^https?:\/\//i)||(h="https://"+h),window.open(h,"_blank","noopener,noreferrer")};return(h,x)=>(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":o.editor?.isActive("link")}])},[e.createVNode(e.unref(z.Link2),{class:"h-4 w-4"})],10,Dh),e.createVNode(Pr,{title:a.value?e.unref(t)("form.richtext.editLink")||"Редагувати посилання":e.unref(t)("form.richtext.linkTitle")||"Додати посилання",visible:r.value,"onUpdate:visible":x[2]||(x[2]=m=>r.value=m),size:"small"},{footer:e.withCtx(()=>[e.createElementVNode("div",Uh,[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",Th,[e.createElementVNode("div",Lh,[e.createElementVNode("div",Ih,[e.createVNode(jr,{modelValue:l.value,"onUpdate:modelValue":x[0]||(x[0]=m=>l.value=m),placeholder:e.unref(t)("form.richtext.linkUrl")||"Введіть URL",class:"w-full"},null,8,["modelValue","placeholder"])]),a.value?(e.openBlock(),e.createElementBlock("div",Rh,[e.createElementVNode("button",{onClick:f,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(z.ExternalLink),{class:"h-4 w-4"})],8,Oh),e.createElementVNode("button",{onClick:u,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(z.Trash2),{class:"h-4 w-4"})],8,zh)])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Ph,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",id:"openInNewTab","onUpdate:modelValue":x[1]||(x[1]=m=>s.value=m),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",jh,e.toDisplayString(e.unref(t)("form.richtext.openInNewTab")||"Відкривати в новій вкладці"),1)])])]),_:1},8,["title","visible"])],64))}}),rn=async(o,t,n,r=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),u=await window.innerHeight,f=await window.innerWidth;let h=0,x=0;const m=a.bottom+r+i;switch(o){case"top":a.top-l.height-r<0?h=a.top-l.height+r+i+s:h=a.top-l.height-r,f>d+a.right+30?x=a.left-l.width/2+a.width/2:x=f-30-d;break;case"bottom":u>m?h=a.bottom+r:h=a.bottom-r-i-s,x=a.left-l.width/2+a.width/2;break;case"left":h=a.top-l.height/2+a.height/2,a.left-l.width-r>0?x=a.left-l.width-r:x=10;break;case"right":h=a.top-l.height/2+a.height/2,f-c>d?x=a.right+r:x=f-30-d;break;case"top-right":a.top-l.height-r<0?h=a.top-l.height+r+i+s:h=a.top-l.height-r,f-c>d?x=a.right+r:x=f-30-d;break;case"top-left":a.top-l.height-r<0?h=a.top-l.height+r+i+s:h=a.top-l.height-r,a.left-l.width-r>0?x=a.left-l.width-r:x=10;break;case"top-start":a.top-l.height-r<0?h=a.top-l.height+r+i+s:h=a.top-l.height-r,a.left>0?x=a.left:x=10;break;case"bottom-right":u>m?h=a.bottom+r:h=a.bottom-r-i-s,f-c>d?x=a.left:x=f-30-d;break;case"bottom-left":u>m?h=a.bottom+r:h=a.bottom-r-i-s,a.left>0?x=a.right-d:x=10;break;case"bottom-start":u>m?h=a.bottom+r:h=a.bottom-r-i-s,a.left>0?x=a.left:x=10;break}h+i>u?h=u-i-r:h<0&&(h=r),x+d>f?x=f-d-r:x<0&&(x=r),n instanceof HTMLElement&&(n.style.top=`${h}px`,n.style.left=`${x}px`,n.style.position="fixed")},qh={class:"text-center"},Kh={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"},Nt=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(o,{expose:t,emit:n}){const r=o,l=n,a=e.ref(!1),s=e.ref([]),c=e.ref(null),i=e.ref(null),d=e.ref(null);e.watch(a,w=>{w?(u(),window.addEventListener("resize",()=>rn(r.placement,i.value,d.value)),rn(r.placement,i.value,d.value)):window.removeEventListener("resize",()=>rn(r.placement,i.value,d.value)),l("isvisible",w)}),e.onMounted(()=>{window.addEventListener("click",y),window.addEventListener("popstate",v),window.addEventListener("scroll",b,!0),u()}),e.onBeforeUnmount(()=>{window.removeEventListener("click",y),window.removeEventListener("popstate",v),f()});const u=()=>{let w=c.value;for(;w&&w!==document.body;)(w.scrollHeight>w.clientHeight||w.scrollWidth>w.clientWidth)&&(w.addEventListener("scroll",k),s.value.push(w)),w=w.parentElement;document.body&&(document.body.addEventListener("scroll",k),s.value.push(document.body))},f=()=>{s.value.forEach(w=>{w.removeEventListener("scroll",k)}),s.value=[]},h=()=>{a.value=!0,rn(r.placement,i.value,d.value)},x=()=>{a.value=!1},m=async()=>{await rn(r.placement,i.value,d.value),a.value=!a.value},k=()=>{a.value=!1},y=w=>{if(!w){a.value=!1;return}i.value?.contains(w.target)||d.value?.contains(w.target)||(a.value=!1)},v=()=>{a.value&&(a.value=!1)},b=w=>{a.value&&d.value&&!d.value.contains(w.target)&&(a.value=!1)};return t({togglePopover:m}),(w,V)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"popover",ref:c,class:"vs-popover inline-block"},[e.createElementVNode("div",qh,[o.trigger==="click"?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"popoverRef",ref:i,onClick:m,class:e.normalizeClass({"pointer-events-none":o.disabled})},[e.renderSlot(w.$slots,"reference",{},()=>[V[0]||(V[0]=e.createElementVNode("button",null,"Click me!",-1))])],2)):e.createCommentVNode("",!0),o.trigger==="hover"?(e.openBlock(),e.createElementBlock("div",{key:1,ref_key:"popoverRef",ref:i,onMouseover:h,onMouseleave:x,class:e.normalizeClass({"pointer-events-none":o.disabled})},[e.renderSlot(w.$slots,"reference",{},()=>[V[1]||(V[1]=e.createElementVNode("button",null,"Click me!",-1))])],34)):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.Teleport,{to:o.teleport},[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(["vsTailwind vs-popover__content",o.placement]),ref_key:"contentPop",ref:d,style:e.normalizeStyle({width:o.width?o.width+"px":"fit-content",zIndex:100001})},[e.createElementVNode("div",Kh,[e.renderSlot(w.$slots,"default",{},()=>[V[2]||(V[2]=e.createElementVNode("span",null,"Popover content",-1))])])],6),[[e.vShow,a.value]])]),_:3})],8,["to"]))])],512))}}),Wh={class:"flex flex-col gap-[2px] p-[2px]"},Gh=["onClick"],Yh={__name:"vs-editor-table",props:{editor:Object},setup(o){const{t}=Rn(),n=o,r=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())},u=()=>{n.editor&&(n.editor.chain().focus().deleteTable().run(),l.value.togglePopover())},f=()=>{n.editor&&(n.editor.chain().focus().mergeCells().run(),l.value.togglePopover())},h=()=>{n.editor&&(n.editor.chain().focus().splitCell().run(),l.value.togglePopover())},x=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:u},{text:t("form.richtext.mergeCells"),function:f},{text:t("form.richtext.splitCells"),function:h}]);return(m,k)=>(e.openBlock(),e.createBlock(Nt,{ref_key:"popover",ref:l,placement:"bottom",onIsvisible:k[0]||(k[0]=y=>r.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",[r.value?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(z.Table2),{class:"h-4 w-4"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",Wh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.value,(y,v)=>(e.openBlock(),e.createElementBlock("button",{key:v,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,Gh))),128))])]),_:1},512))}},Xh={class:"flex gap-[4px] p-1"},Zh=["title","onClick"],Jh={__name:"vs-editor-align",props:{editor:Object},setup(o){const t=o,n={left:z.AlignLeft,center:z.AlignCenter,right:z.AlignRight,justify:z.AlignJustify},r=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),u=e.computed(()=>s.value||c.value||i.value||d.value),f=()=>{c.value?a.value="right":i.value?a.value="center":d.value?a.value="justify":a.value="left"};e.watch([s,c,i,d],()=>{f()},{immediate:!0}),e.onMounted(()=>{t.editor&&(t.editor.on("selectionUpdate",f),t.editor.on("update",f))}),e.onUnmounted(()=>{t.editor&&(t.editor.off("selectionUpdate",f),t.editor.off("update",f))});const h=m=>{t.editor&&(t.editor.chain().focus().setTextAlign(m).run(),a.value=m)},x=e.ref([{id:"left",isActive:s},{id:"center",isActive:i},{id:"right",isActive:c},{id:"justify",isActive:d}]);return(m,k)=>(e.openBlock(),e.createBlock(Nt,{ref_key:"popover",ref:l,placement:"bottom",onIsvisible:k[0]||(k[0]=y=>r.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",[u.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",Xh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.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:v=>h(y?.id)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n[y?.id]),{height:"16",width:"16"}))],10,Zh))),128))])]),_:1},512))}},Qh={class:"flex flex-col gap-[2px] p-[2px]"},eg=["onClick"],tg={__name:"vs-editor-type-tag",props:{editor:Object},setup(o){const{t}=Rn(),n=o,r=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(Nt,{ref_key:"popover",ref:l,placement:"bottom",onIsvisible:d[0]||(d[0]=u=>r.value=u)},{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",[r.value?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(z.Type),{class:"h-4 w-4"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",Qh,[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",[o.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,(u,f)=>(e.openBlock(),e.createElementBlock("button",{key:f,onClick:h=>s(u?.id),class:e.normalizeClass(["px-2 py-1 text-gray-500 text-start hover:text-gray-900 hover:bg-gray-100 rounded leading-[100%]",[u?.style,o.editor?.isActive("heading",{level:u?.id})?"bg-gray-100":""]])},e.toDisplayString(e.unref(t)(`form.richtext.heading${u?.id}`)),11,eg))),128))])]),_:1},512))}},ng={components:{VsText:jr},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(o){this.$emit("update:modelValue",o)}}}},og={class:"flex items-center w-full max-w-[182px]"},rg=["disabled"];function lg(o,t,n,r,l,a){const s=e.resolveComponent("vs-text");return e.openBlock(),e.createElementBlock("div",og,[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,rg),[[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 Ur=xe(ng,[["render",lg]]),ag={class:"flex gap-[4px] mb-[8px]"},sg={class:"grid grid-rows-3 grid-cols-7"},ig={class:"w-full h-full rounded border border-gray-300 overflow-hidden"},cg=["onClick","title"],dg={__name:"vs-editor-color",props:{editor:Object},setup(o){const t=o,n=e.ref(null),r=e.ref("#000000"),l=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").color||"#000000"),a=e.computed(()=>l.value!=="#000000"),s=()=>{t.editor&&(r.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=f=>{t.editor&&(t.editor.chain().focus().setColor(f).run(),r.value=f,n.value&&n.value.togglePopover())},d=()=>{i(r.value)},u=f=>({"#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"})[f]||f;return(f,h)=>(e.openBlock(),e.createBlock(Nt,{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}])},[h[1]||(h[1]=e.createElementVNode("span",{class:"leading-none"},"A",-1)),e.createElementVNode("span",{class:"block h-1 w-5",style:e.normalizeStyle({backgroundColor:r.value})},null,4)],2)]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("div",ag,[e.createVNode(Ur,{modelValue:r.value,"onUpdate:modelValue":h[0]||(h[0]=x=>r.value=x)},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(z.Check),{class:"h-4 w-4 text-white"})])]),e.createElementVNode("div",sg,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,x=>(e.openBlock(),e.createElementBlock("div",{key:x,class:"h-8 w-8 p-0.5 rounded border border-transparent hover:border-gray-200 transition-transform cursor-pointer"},[e.createElementVNode("div",ig,[e.createElementVNode("button",{class:"flex items-center justify-center w-full h-full",style:e.normalizeStyle({backgroundColor:x}),onClick:m=>i(x),title:u(x)},[r.value===x?(e.openBlock(),e.createBlock(e.unref(z.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],12,cg)])]))),128))])])]),_:1},512))}},ug={class:"flex gap-[4px] mb-[8px]"},pg={class:"grid grid-rows-3 grid-cols-7"},fg={class:"w-full h-full rounded border border-gray-300 overflow-hidden"},mg=["onClick","title"],hg=["onClick","title"],gg={__name:"vs-editor-background-color",props:{editor:Object},setup(o){const t=o,n=e.ref(null),r=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&&(r.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=f=>{t.editor&&(t.editor.chain().focus().setBackgroundColor(f).run(),r.value=f,n.value&&n.value.togglePopover())},d=()=>{i(r.value)},u=f=>({"#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"})[f]||f;return(f,h)=>(e.openBlock(),e.createBlock(Nt,{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(z.PaintBucket),{class:"h-4 w-4"}),e.createElementVNode("span",{class:"block h-1 w-5",style:e.normalizeStyle({backgroundColor:r.value})},null,4)],2)]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("div",ug,[e.createVNode(Ur,{modelValue:r.value,"onUpdate:modelValue":h[0]||(h[0]=x=>r.value=x)},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(z.Check),{class:"h-4 w-4 text-white"})])]),e.createElementVNode("div",pg,[e.createElementVNode("button",{onClick:h[1]||(h[1]=x=>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(z.Eraser),{class:"h-4 w-4"}),h[2]||(h[2]=e.createElementVNode("p",null,"no color",-1))]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,x=>(e.openBlock(),e.createElementBlock("div",{key:x,class:"h-8 w-8 p-0.5 rounded border border-transparent hover:border-gray-200 transition-transform cursor-pointer"},[e.createElementVNode("div",fg,[x!=="transparent"?(e.openBlock(),e.createElementBlock("button",{key:0,class:"flex items-center justify-center w-full h-full",style:e.normalizeStyle({backgroundColor:x}),onClick:m=>i(x),title:u(x)},[r.value===x?(e.openBlock(),e.createBlock(e.unref(z.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],12,mg)):e.createCommentVNode("",!0),x==="transparent"?(e.openBlock(),e.createElementBlock("button",{key:1,class:"flex items-center justify-center w-full h-full",onClick:m=>i(x),title:u(x)},[r.value===x?(e.openBlock(),e.createBlock(e.unref(z.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],8,hg)):e.createCommentVNode("",!0)])]))),128))])])]),_:1},512))}},yg={__name:"vs-editor-highlight",props:{editor:Object},setup(o){const t=o,n=e.computed(()=>t.editor?.isActive("highlight")),r=()=>{t.editor&&t.editor.chain().focus().toggleHighlight().run()};return(l,a)=>(e.openBlock(),e.createElementBlock("button",{title:"Highlight",onClick:r,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(z.Highlighter),{class:"h-4 w-4"})],2))}},bg={class:"truncate"},kg={class:"w-[200px]"},xg={class:"max-h-[200px] overflow-y-auto"},wg=["onClick"],Cg={__name:"vs-editor-font-family",props:{editor:Object},setup(o){const t=o,n=e.ref("popover"),r=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(u=>u.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,u)=>(e.openBlock(),e.createBlock(Nt,{ref_key:"popover",ref:n,placement:"bottom",onIsvisible:u[0]||(u[0]=f=>r.value=f)},{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",[r.value?"bg-gray-100 text-gray-900":"text-gray-700"]]),style:e.normalizeStyle({fontFamily:a.value})},[e.createElementVNode("span",bg,e.toDisplayString(s.value),1),e.createVNode(e.unref(z.ChevronDown),{class:"ml-1 h-3 w-3 text-gray-400"})],6)]),default:e.withCtx(()=>[e.createElementVNode("div",kg,[e.createElementVNode("ul",xg,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.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",{"bg-gray-100":c(f.value)}]),style:e.normalizeStyle({fontFamily:f.value}),onClick:h=>i(f.value)},e.toDisplayString(f.label),15,wg))),128))])])]),_:1},512))}},vg={class:"w-[120px]"},Eg={class:"max-h-[200px] overflow-y-auto"},_g=["onClick"],Bg={__name:"vs-editor-font-size",props:{editor:Object},setup(o){const t=o,n=e.ref("popover"),r=e.ref("14px"),l=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").fontSize||"14px"),a=e.computed(()=>l.value!=="14px"),s=()=>{t.editor&&(r.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(),r.value=d,n.value&&n.value.togglePopover())};return(d,u)=>(e.openBlock(),e.createBlock(Nt,{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(z.ALargeSmall),{class:"h-4 w-4"}),e.createVNode(e.unref(z.ChevronDown),{class:"h-3 w-3 text-gray-400"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",vg,[e.createElementVNode("ul",Eg,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,f=>(e.openBlock(),e.createElementBlock("li",{key:f.value,class:"px-3 py-2 hover:bg-gray-100 cursor-pointer",onClick:h=>i(f.value)},e.toDisplayString(f.label),9,_g))),128))])])]),_:1},512))}},Vg={components:{Superscript:z.Superscript},props:{editor:Object},methods:{toggleSuperscript(){this.editor&&this.editor.commands.toggleSuperscript()}}};function Sg(o,t,n,r,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 $g=xe(Vg,[["render",Sg]]),Ng={components:{Subscript:z.Subscript},props:{editor:Object},methods:{toggleSubscript(){this.editor&&this.editor.commands.toggleSubscript()}}};function Ag(o,t,n,r,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 Fg=xe(Ng,[["render",Ag]]),Mg={title:"Heading",class:"h-[30px] px-2 rounded-full hover:bg-gray-100 justify-center items-center flex text-sm text-gray-700"},Dg={class:"truncate"},Tg={class:"max-h-[200px] overflow-y-auto"},Lg=["onClick"],Ig=xe({__name:"vs-editor-heading",props:{editor:Object},setup(o){const t=o,n=e.ref("popover"),r=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(Nt,{ref_key:"popover",ref:n,placement:"bottom"},{reference:e.withCtx(()=>[e.createElementVNode("button",Mg,[e.createElementVNode("span",Dg,e.toDisplayString(l.value),1),e.createVNode(e.unref(z.ChevronDown),{class:"ml-1 h-3 w-3 text-gray-400"})])]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("ul",Tg,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,u=>(e.openBlock(),e.createElementBlock("li",{key:u.value,class:e.normalizeClass(["px-3 py-2 hover:bg-gray-100 cursor-pointer text-sm",`heading-level-${u.value}`]),style:e.normalizeStyle(a(u.value)),onClick:f=>s(u.value)},e.toDisplayString(u.label),15,Lg))),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"]]),Rg={components:{RemoveFormatting:z.RemoveFormatting},props:{editor:Object},methods:{clearFormatting(){this.editor&&this.editor.commands.unsetAllMarks()}}};function Og(o,t,n,r,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 zg=xe(Rg,[["render",Og]]),Pg={class:"relative"},jg={key:0,class:"mt-4"},Ug=["src","alt","title"],Hg={key:0,class:"text-sm text-red-500"},qg={key:1,class:"mt-4"},Kg={class:"text-sm text-gray-600 mb-2"},Wg={class:"flex flex-wrap gap-2"},Gg=["src","alt","onError"],Yg=["onClick"],Xg={class:"flex justify-end gap-x-2 p-[20px]"},Zg=Object.assign({inheritAttrs:!1},{__name:"vs-editor-image",props:{editor:{type:Object,required:!0}},setup(o){const t=o,n=e.ref(!1),r=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 _=i.value.file.filter(B=>B instanceof File),S=i.value.file.filter(B=>typeof B=="string"&&B.trim()!=="");return _.length+S.length>1}return i.value.file instanceof FileList?i.value.file.length>1:!1}),u=e.computed(()=>Array.isArray(i.value.file)?i.value.file.filter(_=>_ instanceof File).length===1:i.value.file instanceof FileList?i.value.file.length===1:i.value.file instanceof File),f=e.computed(()=>{if(d.value)return"";if(i.value.src)return i.value.src;if(u.value){let _=null;if(Array.isArray(i.value.file)||i.value.file instanceof FileList?_=i.value.file[0]:i.value.file instanceof File&&(_=i.value.file),_ instanceof File){const S=s.value.find($=>$.file===_);return S?S.preview:""}else if(typeof _=="string")return _}return""}),h=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}]),x=()=>{if(!t.editor)return;if(t.editor.isActive("image")){const{state:S}=t.editor,{selection:$}=S,{$from:B}=$;let N=null,I=null;if(B.parent.type.name==="image")N=B.before(B.depth),I=B.parent;else for(let re=B.depth;re>0;re--){const ve=B.node(re),ge=B.before(re);ve.type.name==="paragraph"&&ve.forEach((te,se)=>{if(te.type.name==="image"){const we=ge+se+1;(N===null||Math.abs(we-$.$from.pos)<Math.abs(N-$.$from.pos))&&(N=we,I=te)}})}if(N!==null&&I){try{t.editor.chain().focus().setNodeSelection(N).run()}catch{t.editor.chain().focus().setTextSelection(N).run()}c.value=N}else{t.editor.chain().focus().selectParentNode().run();const{state:re}=t.editor;c.value=re.selection.$from.pos}const E=I?I.attrs:t.editor.getAttributes("image");a.value=!0;let M="",D=!1;const K=t.editor.getAttributes("link");K&&K.href&&(M=K.href,D=K.target==="_blank");const W=E.src||"",X=W?[W]:[];i.value={src:W,file:X,alt:E.alt||"",title:E.title||"",width:E.width||"",height:E.height||"",link:M,openInNewTab:D}}else a.value=!1,i.value={src:"",file:[],alt:"",title:"",width:"",height:"",link:"",openInNewTab:!1};r.value=!1,n.value=!0},m=()=>{n.value=!1,r.value=!1,a.value=!1,s.value=[],c.value=null,i.value={src:"",file:[],alt:"",title:"",width:"",height:"",link:"",openInNewTab:!1}},k=async _=>{if(!_||_.length===0)return;const S=[];for(const $ of _)if($&&$.type&&$.type.startsWith("image/")&&!s.value.some(N=>N.file===$)){const N=new Promise((I,E)=>{const M=new FileReader;M.onload=D=>{s.value.push({file:$,preview:D.target.result,error:!1}),I()},M.onerror=E,M.readAsDataURL($)});S.push(N)}await Promise.all(S)},y=_=>{s.value.splice(_,1),Array.isArray(i.value.file)&&i.value.file.splice(_,1)},v=()=>{const _=i.value.width!==null&&i.value.width!==void 0&&i.value.width!==""&&String(i.value.width).trim()!==""?String(i.value.width).trim():"",S=i.value.height!==null&&i.value.height!==void 0&&i.value.height!==""&&String(i.value.height).trim()!==""?String(i.value.height).trim():"",$={};return _&&S?($.width=_,$.height=S,$.style=`width: ${_}px; height: ${S}px; object-fit: fill;`):_?($.width=_,$.height=void 0):S?($.height=S,$.width=void 0):($.width=void 0,$.height=void 0),$},b=(_,S=null,$=50)=>{const B=()=>{const{view:E}=_;if(!E||!E.dom)return;E.dom.querySelectorAll("img.editor-image[width][height]").forEach(K=>{if(K instanceof HTMLImageElement){const W=K.getAttribute("width"),X=K.getAttribute("height");W&&X&&W!=="auto"&&X!=="auto"&&W!==""&&X!==""&&!isNaN(Number(W))&&!isNaN(Number(X))&&(K.style.cssText=`
|
|
36
|
-
width: ${
|
|
37
|
-
height: ${
|
|
34
|
+
`).trim()},Zm=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),Jm=o=>{if(!o)return"";if(typeof window>"u"||typeof DOMParser>"u")return o;const n=new DOMParser().parseFromString(o,"text/html"),r=" ",l=(a,s)=>{if(a.nodeType===Node.TEXT_NODE){const k=(a.textContent||"").replace(/\s+/g," ").trim();return k?[`${r.repeat(s)}${k}`]:[]}if(a.nodeType!==Node.ELEMENT_NODE)return[];const i=a,c=i.tagName.toLowerCase(),d=Array.from(i.attributes).map(k=>`${k.name}="${k.value}"`).join(" "),u=d?`<${c} ${d}>`:`<${c}>`,p=`</${c}>`;if(Zm.has(c))return[`${r.repeat(s)}${u}`];const h=Array.from(i.childNodes).flatMap(k=>l(k,s+1));if(!h.length)return[`${r.repeat(s)}${u}${p}`];if(i.childNodes.length===1&&i.firstChild?.nodeType===Node.TEXT_NODE&&h.length===1){const k=h[0].trim();return[`${r.repeat(s)}${u}${k}${p}`]}return[`${r.repeat(s)}${u}`,...h,`${r.repeat(s)}${p}`]};return Array.from(n.body.childNodes).flatMap(a=>l(a,0)).join(`
|
|
35
|
+
`)},ko=async(o,t)=>t!=="md"?o||"":Rr(o||""),Qm=async(o,t)=>t!=="md"?Jm(o||""):zr(o||""),eh=async(o,t)=>t!=="md"?o||"":zr(o||""),th=o=>String(o).trim().toLowerCase().split("-")[0],nh=()=>typeof window>"u"?"uk":th(localStorage.getItem("language")||localStorage.getItem("locale")||navigator.language||"uk"),oh=(o,t)=>{const n=t.replace(/^form\.richtext\./,"");return io?.[o]?.form?.richtext?.[n]||io?.uk?.form?.richtext?.[n]||t},jr=o=>o.startsWith("form.richtext.")?o:`form.richtext.${o}`;function zn(){const t=e.getCurrentInstance()?.appContext?.config?.globalProperties,n=t?.$i18n;return{t:l=>{const a=t?.$t,s=t?.$te,i=typeof n?.te=="function"?n.te.bind(n):null;if(typeof a=="function"){const c=jr(l);if((typeof s=="function"?s(c):typeof i=="function"?i(c):null)!==!1){const u=a(c);if(u&&u!==c)return u}}return oh(nh(),jr(l))}}}const rh={components:{Quote:H.Quote},props:{editor:Object},methods:{toggleBlockquote(){this.editor&&this.editor.chain().toggleBlockquote().run()}}};function lh(o,t,n,r,l,a){const s=e.resolveComponent("Quote");return e.openBlock(),e.createElementBlock("button",{title:"Blockquote",onClick:t[0]||(t[0]=(...i)=>a.toggleBlockquote&&a.toggleBlockquote(...i)),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 ah=ke(rh,[["render",lh]]),sh={components:{List:H.List},props:{editor:Object},methods:{toggleBulletList(){this.editor&&this.editor.chain().focus().toggleBulletList().run()}}};function ih(o,t,n,r,l,a){const s=e.resolveComponent("List");return e.openBlock(),e.createElementBlock("button",{title:"Bullet List",onClick:t[0]||(t[0]=(...i)=>a.toggleBulletList&&a.toggleBulletList(...i)),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 ch=ke(sh,[["render",ih]]),dh={components:{ListOrdered:H.ListOrdered},props:{editor:Object},methods:{toggleOrderedList(){this.editor&&this.editor.chain().focus().toggleOrderedList().run()}}};function uh(o,t,n,r,l,a){const s=e.resolveComponent("ListOrdered");return e.openBlock(),e.createElementBlock("button",{title:"Ordered List",onClick:t[0]||(t[0]=(...i)=>a.toggleOrderedList&&a.toggleOrderedList(...i)),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 ph=ke(dh,[["render",uh]]),fh={components:{CodeXml:H.CodeXml},props:{editor:Object},methods:{toggleCodeBlock(){this.editor&&this.editor.chain().focus().toggleCodeBlock().run()}}};function mh(o,t,n,r,l,a){const s=e.resolveComponent("CodeXml");return e.openBlock(),e.createElementBlock("button",{title:"Code Block",onClick:t[0]||(t[0]=(...i)=>a.toggleCodeBlock&&a.toggleCodeBlock(...i)),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 hh=ke(fh,[["render",mh]]),gh={components:{Bold:H.Bold},props:{editor:Object},methods:{toggleBold(){this.editor&&this.editor.commands.toggleBold()}}};function yh(o,t,n,r,l,a){const s=e.resolveComponent("Bold");return e.openBlock(),e.createElementBlock("button",{title:"Bold Text",onClick:t[0]||(t[0]=(...i)=>a.toggleBold&&a.toggleBold(...i)),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 bh=ke(gh,[["render",yh]]),kh={components:{Italic:H.Italic},props:{editor:Object},methods:{toggleItalic(){this.editor&&this.editor.chain().toggleItalic().run()}}};function xh(o,t,n,r,l,a){const s=e.resolveComponent("Italic");return e.openBlock(),e.createElementBlock("button",{title:"Italic Text",onClick:t[0]||(t[0]=(...i)=>a.toggleItalic&&a.toggleItalic(...i)),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 wh=ke(kh,[["render",xh]]),_h={__name:"vs-editor-underline",props:{editor:Object},setup(o){const t=o,n=()=>{t.editor&&t.editor.chain().focus().toggleUnderline().run()};return(r,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",[o.editor?.isActive("underline")?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(H.Underline),{class:"h-4 w-4"})],2))}},Ch={__name:"vs-editor-strike",props:{editor:Object},setup(o){const t=o,n=()=>{t.editor&&t.editor.chain().focus().toggleStrike().run()};return(r,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",[o.editor?.isActive("strike")?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(H.Strikethrough),{class:"h-4 w-4"})],2))}},vh={components:{X:H.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:o}){o==="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(o,t){t&&o.target.classList.contains("vs-dialog-overlay")&&this.handleClose()}}},Eh={key:0,class:"vsTailwind ui-dialog__wrapper"},Bh={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},Vh={class:"font-medium text-gray-800 dark:text-[#ffffff]"},Sh={class:"ui-dialog__content p-4"},$h={key:0,class:"flex justify-end gap-x-2"};function Nh(o,t,n,r,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",Eh,[e.createElementVNode("div",{onMousedown:t[1]||(t[1]=i=>a.closeByClickBack(i,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",Bh,[e.createElementVNode("h3",Vh,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]=(...i)=>a.handleClose&&a.handleClose(...i))},[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",Sh,[e.renderSlot(o.$slots,"default",{},void 0,!0)]),a.hasSlot?(e.openBlock(),e.createElementBlock("div",$h,[e.renderSlot(o.$slots,"footer",{handleClose:a.handleClose,handleConfirm:a.handleConfirm,handleCancel:a.handleCancel},void 0,!0)])):e.createCommentVNode("",!0)],2)]),_:3})],32)])):e.createCommentVNode("",!0)])}const Ur=ke(vh,[["render",Nh],["__scopeId","data-v-56ad9010"]]),Ah=e.defineComponent({components:{IconClose:H.X,IconSearch:H.Search,IconEmail:H.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(o){this.$emit("update:modelValue",o.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()}}}),Mh={class:"vs-form-text relative bg-white rounded-lg"},Fh={key:2,class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},Dh=["disabled","type","placeholder"];function Th(o,t,n,r,l,a){const s=e.resolveComponent("IconClose"),i=e.resolveComponent("IconSearch"),c=e.resolveComponent("IconEmail");return e.openBlock(),e.createElementBlock("div",Mh,[o.clearable&&o.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)=>o.clearInput&&o.clearInput(...d))},[e.createVNode(s,{class:"h-4 w-4 stroke-gray-500 transition-all hover:stroke-red-500"})])):e.createCommentVNode("",!0),o.icon&&o.icon==="search"?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["absolute bottom-2/4 translate-y-2/4 cursor-pointer",o.iconStylePosition])},[e.createVNode(i,{class:"h-4 w-4 stroke-gray-500 transition-all"})],2)):o.icon&&o.icon==="email"?(e.openBlock(),e.createElementBlock("div",Fh,[e.createVNode(c,{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 "+o.icon,o.iconStylePosition]])},null,2)),o.clearable&&o.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)=>o.clearInput&&o.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:o.disabled,type:o.type,onInput:t[2]||(t[2]=(...d)=>o.handleInput&&o.handleInput(...d)),placeholder:o.placeholder,"onUpdate:modelValue":t[3]||(t[3]=d=>o.value=d)},o.style?.attrs||o.attrs||{},{onFocus:t[4]||(t[4]=(...d)=>o.handleFocus&&o.handleFocus(...d)),onBlur:t[5]||(t[5]=(...d)=>o.handleBlur&&o.handleBlur(...d)),class:[[o.inputStyle,o.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,Dh),[[e.vModelDynamic,o.value]])])}const Hr=ke(Ah,[["render",Th],["__scopeId","data-v-eb21a54f"]]),Lh=["title"],Ih={class:"flex flex-col gap-3 p-[20px]"},Rh={class:"relative flex items-center gap-2"},Oh={class:"flex-1"},Ph={key:0,class:"flex items-center gap-2 flex-shrink-0"},zh=["title"],jh=["title"],Uh={class:"flex items-center gap-2"},Hh={for:"openInNewTab",class:"text-sm text-gray-700 cursor-pointer"},qh={class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},Kh=Object.assign({inheritAttrs:!1},{__name:"vs-editor-link",props:{editor:Object},setup(o){const{t}=zn(),n=o,r=e.ref(!1),l=e.ref(""),a=e.ref(!1),s=e.ref(!1),i=()=>{if(!n.editor)return;n.editor.chain().focus().extendMarkRange("link").run();const h=n.editor.getAttributes("link");h.href?(a.value=!0,l.value=h.href,s.value=h.target==="_blank"):(a.value=!1,l.value="",s.value=!1),r.value=!0},c=()=>{r.value=!1,l.value="",a.value=!1,s.value=!1},d=()=>{if(!n.editor||!l.value.trim())return;let h=l.value.trim();h.match(/^https?:\/\//i)||(h="https://"+h),n.editor.chain().focus().setLink({href:h,target:s.value?"_blank":null}).run(),c()},u=()=>{n.editor&&(n.editor.chain().focus().unsetLink().run(),c())},p=()=>{if(!l.value)return;let h=l.value.trim();h.match(/^https?:\/\//i)||(h="https://"+h),window.open(h,"_blank","noopener,noreferrer")};return(h,k)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("button",{title:e.unref(t)("form.richtext.link")||"Посилання",onClick:i,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":o.editor?.isActive("link")}])},[e.createVNode(e.unref(H.Link2),{class:"h-4 w-4"})],10,Lh),e.createVNode(Ur,{title:a.value?e.unref(t)("form.richtext.editLink")||"Редагувати посилання":e.unref(t)("form.richtext.linkTitle")||"Додати посилання",visible:r.value,"onUpdate:visible":k[2]||(k[2]=m=>r.value=m),size:"small"},{footer:e.withCtx(()=>[e.createElementVNode("div",qh,[e.createElementVNode("button",{style:{border:"1px solid #000"},onClick:c,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",Ih,[e.createElementVNode("div",Rh,[e.createElementVNode("div",Oh,[e.createVNode(Hr,{modelValue:l.value,"onUpdate:modelValue":k[0]||(k[0]=m=>l.value=m),placeholder:e.unref(t)("form.richtext.linkUrl")||"Введіть URL",class:"w-full"},null,8,["modelValue","placeholder"])]),a.value?(e.openBlock(),e.createElementBlock("div",Ph,[e.createElementVNode("button",{onClick:p,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(H.ExternalLink),{class:"h-4 w-4"})],8,zh),e.createElementVNode("button",{onClick:u,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(H.Trash2),{class:"h-4 w-4"})],8,jh)])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Uh,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",id:"openInNewTab","onUpdate:modelValue":k[1]||(k[1]=m=>s.value=m),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",Hh,e.toDisplayString(e.unref(t)("form.richtext.openInNewTab")||"Відкривати в новій вкладці"),1)])])]),_:1},8,["title","visible"])],64))}}),an=async(o,t,n,r=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),i=await parseInt(t?.getBoundingClientRect()?.width),c=await parseInt(n?.getBoundingClientRect()?.height),d=await parseInt(n?.getBoundingClientRect()?.width),u=await window.innerHeight,p=await window.innerWidth;let h=0,k=0;const m=a.bottom+r+c;switch(o){case"top":a.top-l.height-r<0?h=a.top-l.height+r+c+s:h=a.top-l.height-r,p>d+a.right+30?k=a.left-l.width/2+a.width/2:k=p-30-d;break;case"bottom":u>m?h=a.bottom+r:h=a.bottom-r-c-s,k=a.left-l.width/2+a.width/2;break;case"left":h=a.top-l.height/2+a.height/2,a.left-l.width-r>0?k=a.left-l.width-r:k=10;break;case"right":h=a.top-l.height/2+a.height/2,p-i>d?k=a.right+r:k=p-30-d;break;case"top-right":a.top-l.height-r<0?h=a.top-l.height+r+c+s:h=a.top-l.height-r,p-i>d?k=a.right+r:k=p-30-d;break;case"top-left":a.top-l.height-r<0?h=a.top-l.height+r+c+s:h=a.top-l.height-r,a.left-l.width-r>0?k=a.left-l.width-r:k=10;break;case"top-start":a.top-l.height-r<0?h=a.top-l.height+r+c+s:h=a.top-l.height-r,a.left>0?k=a.left:k=10;break;case"bottom-right":u>m?h=a.bottom+r:h=a.bottom-r-c-s,p-i>d?k=a.left:k=p-30-d;break;case"bottom-left":u>m?h=a.bottom+r:h=a.bottom-r-c-s,a.left>0?k=a.right-d:k=10;break;case"bottom-start":u>m?h=a.bottom+r:h=a.bottom-r-c-s,a.left>0?k=a.left:k=10;break}h+c>u?h=u-c-r:h<0&&(h=r),k+d>p?k=p-d-r:k<0&&(k=r),n instanceof HTMLElement&&(n.style.top=`${h}px`,n.style.left=`${k}px`,n.style.position="fixed")},Wh={class:"text-center"},Gh={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"},Mt=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(o,{expose:t,emit:n}){const r=o,l=n,a=e.ref(!1),s=e.ref([]),i=e.ref(null),c=e.ref(null),d=e.ref(null);e.watch(a,w=>{w?(u(),window.addEventListener("resize",()=>an(r.placement,c.value,d.value)),an(r.placement,c.value,d.value)):window.removeEventListener("resize",()=>an(r.placement,c.value,d.value)),l("isvisible",w)}),e.onMounted(()=>{window.addEventListener("click",y),window.addEventListener("popstate",C),window.addEventListener("scroll",x,!0),u()}),e.onBeforeUnmount(()=>{window.removeEventListener("click",y),window.removeEventListener("popstate",C),p()});const u=()=>{let w=i.value;for(;w&&w!==document.body;)(w.scrollHeight>w.clientHeight||w.scrollWidth>w.clientWidth)&&(w.addEventListener("scroll",g),s.value.push(w)),w=w.parentElement;document.body&&(document.body.addEventListener("scroll",g),s.value.push(document.body))},p=()=>{s.value.forEach(w=>{w.removeEventListener("scroll",g)}),s.value=[]},h=()=>{a.value=!0,an(r.placement,c.value,d.value)},k=()=>{a.value=!1},m=async()=>{await an(r.placement,c.value,d.value),a.value=!a.value},g=()=>{a.value=!1},y=w=>{if(!w){a.value=!1;return}c.value?.contains(w.target)||d.value?.contains(w.target)||(a.value=!1)},C=()=>{a.value&&(a.value=!1)},x=w=>{a.value&&d.value&&!d.value.contains(w.target)&&(a.value=!1)};return t({togglePopover:m}),(w,V)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"popover",ref:i,class:"vs-popover inline-block"},[e.createElementVNode("div",Wh,[o.trigger==="click"?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"popoverRef",ref:c,onClick:m,class:e.normalizeClass({"pointer-events-none":o.disabled})},[e.renderSlot(w.$slots,"reference",{},()=>[V[0]||(V[0]=e.createElementVNode("button",null,"Click me!",-1))])],2)):e.createCommentVNode("",!0),o.trigger==="hover"?(e.openBlock(),e.createElementBlock("div",{key:1,ref_key:"popoverRef",ref:c,onMouseover:h,onMouseleave:k,class:e.normalizeClass({"pointer-events-none":o.disabled})},[e.renderSlot(w.$slots,"reference",{},()=>[V[1]||(V[1]=e.createElementVNode("button",null,"Click me!",-1))])],34)):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.Teleport,{to:o.teleport},[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(["vsTailwind vs-popover__content",o.placement]),ref_key:"contentPop",ref:d,style:e.normalizeStyle({width:o.width?o.width+"px":"fit-content",zIndex:100001})},[e.createElementVNode("div",Gh,[e.renderSlot(w.$slots,"default",{},()=>[V[2]||(V[2]=e.createElementVNode("span",null,"Popover content",-1))])])],6),[[e.vShow,a.value]])]),_:3})],8,["to"]))])],512))}}),Yh={class:"flex flex-col gap-[2px] p-[2px]"},Xh=["onClick"],Zh={__name:"vs-editor-table",props:{editor:Object},setup(o){const{t}=zn(),n=o,r=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())},i=()=>{n.editor&&(n.editor.chain().focus().addRowAfter().run(),l.value.togglePopover())},c=()=>{n.editor&&(n.editor.chain().focus().deleteColumn().run(),l.value.togglePopover())},d=()=>{n.editor&&(n.editor.chain().focus().deleteRow().run(),l.value.togglePopover())},u=()=>{n.editor&&(n.editor.chain().focus().deleteTable().run(),l.value.togglePopover())},p=()=>{n.editor&&(n.editor.chain().focus().mergeCells().run(),l.value.togglePopover())},h=()=>{n.editor&&(n.editor.chain().focus().splitCell().run(),l.value.togglePopover())},k=e.computed(()=>[{text:t("form.richtext.createTable"),function:a},{text:t("form.richtext.addColumn"),function:s},{text:t("form.richtext.addRow"),function:i},{text:t("form.richtext.deleteColumn"),function:c},{text:t("form.richtext.deleteRow"),function:d},{text:t("form.richtext.deleteTable"),function:u},{text:t("form.richtext.mergeCells"),function:p},{text:t("form.richtext.splitCells"),function:h}]);return(m,g)=>(e.openBlock(),e.createBlock(Mt,{ref_key:"popover",ref:l,placement:"bottom",onIsvisible:g[0]||(g[0]=y=>r.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",[r.value?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(H.Table2),{class:"h-4 w-4"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",Yh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.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,Xh))),128))])]),_:1},512))}},Jh={class:"flex gap-[4px] p-1"},Qh=["title","onClick"],eg={__name:"vs-editor-align",props:{editor:Object},setup(o){const t=o,n={left:H.AlignLeft,center:H.AlignCenter,right:H.AlignRight,justify:H.AlignJustify},r=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),i=e.computed(()=>t.editor?t.editor.isActive("paragraph",{textAlign:"right"})||t.editor.isActive("heading",{textAlign:"right"}):!1),c=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),u=e.computed(()=>s.value||i.value||c.value||d.value),p=()=>{i.value?a.value="right":c.value?a.value="center":d.value?a.value="justify":a.value="left"};e.watch([s,i,c,d],()=>{p()},{immediate:!0}),e.onMounted(()=>{t.editor&&(t.editor.on("selectionUpdate",p),t.editor.on("update",p))}),e.onUnmounted(()=>{t.editor&&(t.editor.off("selectionUpdate",p),t.editor.off("update",p))});const h=m=>{t.editor&&(t.editor.chain().focus().setTextAlign(m).run(),a.value=m)},k=e.ref([{id:"left",isActive:s},{id:"center",isActive:c},{id:"right",isActive:i},{id:"justify",isActive:d}]);return(m,g)=>(e.openBlock(),e.createBlock(Mt,{ref_key:"popover",ref:l,placement:"bottom",onIsvisible:g[0]||(g[0]=y=>r.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",[u.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",Jh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.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=>h(y?.id)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n[y?.id]),{height:"16",width:"16"}))],10,Qh))),128))])]),_:1},512))}},tg={class:"flex flex-col gap-[2px] p-[2px]"},ng=["onClick"],og={__name:"vs-editor-type-tag",props:{editor:Object},setup(o){const{t}=zn(),n=o,r=e.ref(!1),l=e.ref("popover"),a=()=>{n.editor&&(n.editor?.chain().focus().setParagraph().run(),l.value.togglePopover())},s=c=>{n.editor&&(n.editor?.chain().focus().toggleHeading({level:c}).run(),l.value.togglePopover())},i=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(c,d)=>(e.openBlock(),e.createBlock(Mt,{ref_key:"popover",ref:l,placement:"bottom",onIsvisible:d[0]||(d[0]=u=>r.value=u)},{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",[r.value?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(H.Type),{class:"h-4 w-4"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",tg,[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",[o.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(i.value,(u,p)=>(e.openBlock(),e.createElementBlock("button",{key:p,onClick:h=>s(u?.id),class:e.normalizeClass(["px-2 py-1 text-gray-500 text-start hover:text-gray-900 hover:bg-gray-100 rounded leading-[100%]",[u?.style,o.editor?.isActive("heading",{level:u?.id})?"bg-gray-100":""]])},e.toDisplayString(e.unref(t)(`form.richtext.heading${u?.id}`)),11,ng))),128))])]),_:1},512))}},rg={components:{VsText:Hr},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(o){this.$emit("update:modelValue",o)}}}},lg={class:"flex items-center w-full max-w-[182px]"},ag=["disabled"];function sg(o,t,n,r,l,a){const s=e.resolveComponent("vs-text");return e.openBlock(),e.createElementBlock("div",lg,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":t[0]||(t[0]=i=>a.value=i),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,ag),[[e.vModelText,a.value]]),n.isTextInputShown?(e.openBlock(),e.createBlock(s,{key:0,modelValue:a.value,"onUpdate:modelValue":t[1]||(t[1]=i=>a.value=i),class:"ml-2 w-full",disabled:n.disabled,clearable:n.clearable},null,8,["modelValue","disabled","clearable"])):e.createCommentVNode("",!0)])}const qr=ke(rg,[["render",sg]]),ig={class:"flex gap-[4px] mb-[8px]"},cg={class:"grid grid-rows-3 grid-cols-7"},dg={class:"w-full h-full rounded border border-gray-300 overflow-hidden"},ug=["onClick","title"],pg={__name:"vs-editor-color",props:{editor:Object},setup(o){const t=o,n=e.ref(null),r=e.ref("#000000"),l=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").color||"#000000"),a=e.computed(()=>l.value!=="#000000"),s=()=>{t.editor&&(r.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 i=e.ref(["#172B4D","#0747A6","#008DA6","#006644","#FF991F","#BF2600","#403294","#97A0AF","#4C9AFF","#00B8D9","#36B37E","#FFC400","#FF5630","#6554C0","#FFFFFF","#B3D4FF","#B3F5FF","#ABF5D1","#FFF0B3","#FFBDAD","#EAE6FF"]),c=p=>{t.editor&&(t.editor.chain().focus().setColor(p).run(),r.value=p,n.value&&n.value.togglePopover())},d=()=>{c(r.value)},u=p=>({"#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"})[p]||p;return(p,h)=>(e.openBlock(),e.createBlock(Mt,{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}])},[h[1]||(h[1]=e.createElementVNode("span",{class:"leading-none"},"A",-1)),e.createElementVNode("span",{class:"block h-1 w-5",style:e.normalizeStyle({backgroundColor:r.value})},null,4)],2)]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("div",ig,[e.createVNode(qr,{modelValue:r.value,"onUpdate:modelValue":h[0]||(h[0]=k=>r.value=k)},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(H.Check),{class:"h-4 w-4 text-white"})])]),e.createElementVNode("div",cg,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,k=>(e.openBlock(),e.createElementBlock("div",{key:k,class:"h-8 w-8 p-0.5 rounded border border-transparent hover:border-gray-200 transition-transform cursor-pointer"},[e.createElementVNode("div",dg,[e.createElementVNode("button",{class:"flex items-center justify-center w-full h-full",style:e.normalizeStyle({backgroundColor:k}),onClick:m=>c(k),title:u(k)},[r.value===k?(e.openBlock(),e.createBlock(e.unref(H.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],12,ug)])]))),128))])])]),_:1},512))}},fg={class:"flex gap-[4px] mb-[8px]"},mg={class:"grid grid-rows-3 grid-cols-7"},hg={class:"w-full h-full rounded border border-gray-300 overflow-hidden"},gg=["onClick","title"],yg=["onClick","title"],bg={__name:"vs-editor-background-color",props:{editor:Object},setup(o){const t=o,n=e.ref(null),r=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&&(r.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 i=e.ref(["#172B4D","#0747A6","#008DA6","#006644","#FF991F","#BF2600","#403294","#97A0AF","#4C9AFF","#00B8D9","#36B37E","#FFC400","#FF5630","#6554C0","#FFFFFF","#B3D4FF","#B3F5FF","#ABF5D1","#FFF0B3","#FFBDAD","#EAE6FF"]),c=p=>{t.editor&&(t.editor.chain().focus().setBackgroundColor(p).run(),r.value=p,n.value&&n.value.togglePopover())},d=()=>{c(r.value)},u=p=>({"#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"})[p]||p;return(p,h)=>(e.openBlock(),e.createBlock(Mt,{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(H.PaintBucket),{class:"h-4 w-4"}),e.createElementVNode("span",{class:"block h-1 w-5",style:e.normalizeStyle({backgroundColor:r.value})},null,4)],2)]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("div",fg,[e.createVNode(qr,{modelValue:r.value,"onUpdate:modelValue":h[0]||(h[0]=k=>r.value=k)},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(H.Check),{class:"h-4 w-4 text-white"})])]),e.createElementVNode("div",mg,[e.createElementVNode("button",{onClick:h[1]||(h[1]=k=>c("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(H.Eraser),{class:"h-4 w-4"}),h[2]||(h[2]=e.createElementVNode("p",null,"no color",-1))]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,k=>(e.openBlock(),e.createElementBlock("div",{key:k,class:"h-8 w-8 p-0.5 rounded border border-transparent hover:border-gray-200 transition-transform cursor-pointer"},[e.createElementVNode("div",hg,[k!=="transparent"?(e.openBlock(),e.createElementBlock("button",{key:0,class:"flex items-center justify-center w-full h-full",style:e.normalizeStyle({backgroundColor:k}),onClick:m=>c(k),title:u(k)},[r.value===k?(e.openBlock(),e.createBlock(e.unref(H.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],12,gg)):e.createCommentVNode("",!0),k==="transparent"?(e.openBlock(),e.createElementBlock("button",{key:1,class:"flex items-center justify-center w-full h-full",onClick:m=>c(k),title:u(k)},[r.value===k?(e.openBlock(),e.createBlock(e.unref(H.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],8,yg)):e.createCommentVNode("",!0)])]))),128))])])]),_:1},512))}},kg={__name:"vs-editor-highlight",props:{editor:Object},setup(o){const t=o,n=e.computed(()=>t.editor?.isActive("highlight")),r=()=>{t.editor&&t.editor.chain().focus().toggleHighlight().run()};return(l,a)=>(e.openBlock(),e.createElementBlock("button",{title:"Highlight",onClick:r,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(H.Highlighter),{class:"h-4 w-4"})],2))}},xg={class:"truncate"},wg={class:"w-[200px]"},_g={class:"max-h-[200px] overflow-y-auto"},Cg=["onClick"],vg={__name:"vs-editor-font-family",props:{editor:Object},setup(o){const t=o,n=e.ref("popover"),r=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(u=>u.value===a.value)?.label||"Arial"),i=d=>t.editor?t.editor.isActive("textStyle",{fontFamily:d}):!1,c=d=>{t.editor&&(t.editor.chain().focus().setFontFamily(d).run(),n.value&&n.value.togglePopover())};return(d,u)=>(e.openBlock(),e.createBlock(Mt,{ref_key:"popover",ref:n,placement:"bottom",onIsvisible:u[0]||(u[0]=p=>r.value=p)},{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",[r.value?"bg-gray-100 text-gray-900":"text-gray-700"]]),style:e.normalizeStyle({fontFamily:a.value})},[e.createElementVNode("span",xg,e.toDisplayString(s.value),1),e.createVNode(e.unref(H.ChevronDown),{class:"ml-1 h-3 w-3 text-gray-400"})],6)]),default:e.withCtx(()=>[e.createElementVNode("div",wg,[e.createElementVNode("ul",_g,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,p=>(e.openBlock(),e.createElementBlock("li",{key:p.value,class:e.normalizeClass(["px-3 py-2 hover:bg-gray-100 cursor-pointer text-sm",{"bg-gray-100":i(p.value)}]),style:e.normalizeStyle({fontFamily:p.value}),onClick:h=>c(p.value)},e.toDisplayString(p.label),15,Cg))),128))])])]),_:1},512))}},Eg={class:"w-[120px]"},Bg={class:"max-h-[200px] overflow-y-auto"},Vg=["onClick"],Sg={__name:"vs-editor-font-size",props:{editor:Object},setup(o){const t=o,n=e.ref("popover"),r=e.ref("14px"),l=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").fontSize||"14px"),a=e.computed(()=>l.value!=="14px"),s=()=>{t.editor&&(r.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 i=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"}]),c=d=>{t.editor&&(t.editor.chain().focus().setFontSize(d).run(),r.value=d,n.value&&n.value.togglePopover())};return(d,u)=>(e.openBlock(),e.createBlock(Mt,{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(H.ALargeSmall),{class:"h-4 w-4"}),e.createVNode(e.unref(H.ChevronDown),{class:"h-3 w-3 text-gray-400"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",Eg,[e.createElementVNode("ul",Bg,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,p=>(e.openBlock(),e.createElementBlock("li",{key:p.value,class:"px-3 py-2 hover:bg-gray-100 cursor-pointer",onClick:h=>c(p.value)},e.toDisplayString(p.label),9,Vg))),128))])])]),_:1},512))}},$g={components:{Superscript:H.Superscript},props:{editor:Object},methods:{toggleSuperscript(){this.editor&&this.editor.commands.toggleSuperscript()}}};function Ng(o,t,n,r,l,a){const s=e.resolveComponent("Superscript");return e.openBlock(),e.createElementBlock("button",{title:"Superscript",onClick:t[0]||(t[0]=(...i)=>a.toggleSuperscript&&a.toggleSuperscript(...i)),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 Ag=ke($g,[["render",Ng]]),Mg={components:{Subscript:H.Subscript},props:{editor:Object},methods:{toggleSubscript(){this.editor&&this.editor.commands.toggleSubscript()}}};function Fg(o,t,n,r,l,a){const s=e.resolveComponent("Subscript");return e.openBlock(),e.createElementBlock("button",{title:"Subscript",onClick:t[0]||(t[0]=(...i)=>a.toggleSubscript&&a.toggleSubscript(...i)),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 Dg=ke(Mg,[["render",Fg]]),Tg={title:"Heading",class:"h-[30px] px-2 rounded-full hover:bg-gray-100 justify-center items-center flex text-sm text-gray-700"},Lg={class:"truncate"},Ig={class:"max-h-[200px] overflow-y-auto"},Rg=["onClick"],Og=ke({__name:"vs-editor-heading",props:{editor:Object},setup(o){const t=o,n=e.ref("popover"),r=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 c=1;c<=6;c++)if(t.editor.isActive("heading",{level:c}))return`H ${c}`;return"P"}),a=c=>({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;"})[c]||"",s=c=>{t.editor&&(t.editor.chain().focus().setHeading({level:c}).run(),n.value&&n.value.togglePopover())},i=()=>{t.editor&&(t.editor.chain().focus().setParagraph().run(),n.value&&n.value.togglePopover())};return(c,d)=>(e.openBlock(),e.createBlock(Mt,{ref_key:"popover",ref:n,placement:"bottom"},{reference:e.withCtx(()=>[e.createElementVNode("button",Tg,[e.createElementVNode("span",Lg,e.toDisplayString(l.value),1),e.createVNode(e.unref(H.ChevronDown),{class:"ml-1 h-3 w-3 text-gray-400"})])]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("ul",Ig,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,u=>(e.openBlock(),e.createElementBlock("li",{key:u.value,class:e.normalizeClass(["px-3 py-2 hover:bg-gray-100 cursor-pointer text-sm",`heading-level-${u.value}`]),style:e.normalizeStyle(a(u.value)),onClick:p=>s(u.value)},e.toDisplayString(u.label),15,Rg))),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:i}," Paragraph ")])])]),_:1},512))}},[["__scopeId","data-v-96f02f2a"]]),Pg={components:{RemoveFormatting:H.RemoveFormatting},props:{editor:Object},methods:{clearFormatting(){this.editor&&this.editor.commands.unsetAllMarks()}}};function zg(o,t,n,r,l,a){const s=e.resolveComponent("RemoveFormatting");return e.openBlock(),e.createElementBlock("button",{title:"Clear Formatting",onClick:t[0]||(t[0]=(...i)=>a.clearFormatting&&a.clearFormatting(...i)),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 jg=ke(Pg,[["render",zg]]),Ug={class:"relative"},Hg={key:0,class:"mt-4"},qg=["src","alt","title"],Kg={key:0,class:"text-sm text-red-500"},Wg={key:1,class:"mt-4"},Gg={class:"text-sm text-gray-600 mb-2"},Yg={class:"flex flex-wrap gap-2"},Xg=["src","alt","onError"],Zg=["onClick"],Jg={class:"flex justify-end gap-x-2 p-[20px]"},Qg=Object.assign({inheritAttrs:!1},{__name:"vs-editor-image",props:{editor:{type:Object,required:!0}},setup(o){const t=o,n=e.ref(!1),r=e.ref(!1),l=e.ref({}),a=e.ref(!1),s=e.ref([]),i=e.ref(null),c=e.ref({src:"",file:[],alt:"",title:"",width:"",height:"",link:"",openInNewTab:!1}),d=e.computed(()=>{if(Array.isArray(c.value.file)){const E=c.value.file.filter(v=>v instanceof File),S=c.value.file.filter(v=>typeof v=="string"&&v.trim()!=="");return E.length+S.length>1}return c.value.file instanceof FileList?c.value.file.length>1:!1}),u=e.computed(()=>Array.isArray(c.value.file)?c.value.file.filter(E=>E instanceof File).length===1:c.value.file instanceof FileList?c.value.file.length===1:c.value.file instanceof File),p=e.computed(()=>{if(d.value)return"";if(c.value.src)return c.value.src;if(u.value){let E=null;if(Array.isArray(c.value.file)||c.value.file instanceof FileList?E=c.value.file[0]:c.value.file instanceof File&&(E=c.value.file),E instanceof File){const S=s.value.find(N=>N.file===E);return S?S.preview:""}else if(typeof E=="string")return E}return""}),h=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}]),k=()=>{if(!t.editor)return;if(t.editor.isActive("image")){const{state:S}=t.editor,{selection:N}=S,{$from:v}=N;let $=null,R=null;if(v.parent.type.name==="image")$=v.before(v.depth),R=v.parent;else for(let le=v.depth;le>0;le--){const we=v.node(le),me=v.before(le);we.type.name==="paragraph"&&we.forEach((ne,ie)=>{if(ne.type.name==="image"){const ge=me+ie+1;($===null||Math.abs(ge-N.$from.pos)<Math.abs($-N.$from.pos))&&($=ge,R=ne)}})}if($!==null&&R){try{t.editor.chain().focus().setNodeSelection($).run()}catch{t.editor.chain().focus().setTextSelection($).run()}i.value=$}else{t.editor.chain().focus().selectParentNode().run();const{state:le}=t.editor;i.value=le.selection.$from.pos}const B=R?R.attrs:t.editor.getAttributes("image");a.value=!0;let F="",D=!1;const Z=t.editor.getAttributes("link");Z&&Z.href&&(F=Z.href,D=Z.target==="_blank");const G=B.src||"",ee=G?[G]:[];c.value={src:G,file:ee,alt:B.alt||"",title:B.title||"",width:B.width||"",height:B.height||"",link:F,openInNewTab:D}}else a.value=!1,c.value={src:"",file:[],alt:"",title:"",width:"",height:"",link:"",openInNewTab:!1};r.value=!1,n.value=!0},m=()=>{n.value=!1,r.value=!1,a.value=!1,s.value=[],i.value=null,c.value={src:"",file:[],alt:"",title:"",width:"",height:"",link:"",openInNewTab:!1}},g=async E=>{if(!E||E.length===0)return;const S=[];for(const N of E)if(N&&N.type&&N.type.startsWith("image/")&&!s.value.some($=>$.file===N)){const $=new Promise((R,B)=>{const F=new FileReader;F.onload=D=>{s.value.push({file:N,preview:D.target.result,error:!1}),R()},F.onerror=B,F.readAsDataURL(N)});S.push($)}await Promise.all(S)},y=E=>{s.value.splice(E,1),Array.isArray(c.value.file)&&c.value.file.splice(E,1)},C=()=>{const E=c.value.width!==null&&c.value.width!==void 0&&c.value.width!==""&&String(c.value.width).trim()!==""?String(c.value.width).trim():"",S=c.value.height!==null&&c.value.height!==void 0&&c.value.height!==""&&String(c.value.height).trim()!==""?String(c.value.height).trim():"",N={};return E&&S?(N.width=E,N.height=S,N.style=`width: ${E}px; height: ${S}px; object-fit: fill;`):E?(N.width=E,N.height=void 0):S?(N.height=S,N.width=void 0):(N.width=void 0,N.height=void 0),N},x=(E,S=null,N=50)=>{const v=()=>{const{view:B}=E;if(!B||!B.dom)return;B.dom.querySelectorAll("img.editor-image[width][height]").forEach(Z=>{if(Z instanceof HTMLImageElement){const G=Z.getAttribute("width"),ee=Z.getAttribute("height");G&&ee&&G!=="auto"&&ee!=="auto"&&G!==""&&ee!==""&&!isNaN(Number(G))&&!isNaN(Number(ee))&&(Z.style.cssText=`
|
|
36
|
+
width: ${G}px !important;
|
|
37
|
+
height: ${ee}px !important;
|
|
38
38
|
max-width: none !important;
|
|
39
39
|
max-height: none !important;
|
|
40
40
|
min-width: auto !important;
|
|
41
41
|
min-height: auto !important;
|
|
42
42
|
object-fit: fill !important;
|
|
43
|
-
`.replace(/\s+/g," ").trim())}})},N=i.value.width,I=i.value.height;N&&I&&N!==""&&I!==""?[0,$,$*2,$*3,$*4].forEach(M=>{setTimeout(B,M)}):(B(),setTimeout(B,$))},w=async()=>{let _=[],S=[];if(Array.isArray(i.value.file)?(_=i.value.file.filter(E=>E instanceof File),S=i.value.file.filter(E=>typeof E=="string"&&E.trim()!=="")):i.value.file instanceof FileList?_=Array.from(i.value.file):i.value.file instanceof File?_=[i.value.file]:typeof i.value.file=="string"&&i.value.file.trim()!==""&&(S=[i.value.file]),_.length===0&&S.length===0&&l.value&&l.value.file){const E=l.value.file;Array.isArray(E)?(_=E.filter(M=>M instanceof File),S=E.filter(M=>typeof M=="string"&&M.trim()!=="")):E instanceof FileList?_=Array.from(E):E instanceof File?_=[E]:typeof E=="string"&&E.trim()!==""&&(S=[E])}if(S.length>0&&!a.value){for(const E of S)s.value.some(M=>M.url===E)||s.value.push({url:E,preview:E,error:!1});if(_.length===0&&s.value.length>0){await O();return}}const $=_.length,B=$+S.length;if(!(a.value&&$<=1)){if($>0){const E=_.filter(M=>!s.value.some(D=>D.file===M));E.length>0&&await k(E)}}if(!a.value){if(B>1||d.value||s.value.length>1){if(s.value.length>0){await O();return}else if($>0){if(await k(_),s.value.length>0){await O();return}}else if(S.length>0){await O();return}}else if(s.value.length>1){await O();return}}let N=i.value.src;if(u.value){let E=null;if(Array.isArray(i.value.file)||i.value.file instanceof FileList?E=i.value.file[0]:(i.value.file instanceof File||typeof i.value.file=="string")&&(E=i.value.file),E instanceof File)try{const M=new FileReader,D=await new Promise((K,W)=>{M.onload=X=>K(X.target.result),M.onerror=W,M.readAsDataURL(E)});N=D,a.value&&(i.value.src=D)}catch(M){console.error("Помилка при читанні файлу:",M),he.notify({type:"error",title:"Помилка",message:"Не вдалося прочитати файл"});return}else typeof E=="string"&&E.trim()!==""&&(N=E.trim(),a.value&&E.trim()!==i.value.src&&(i.value.src=E.trim(),N=E.trim()))}else if(Array.isArray(i.value.file)&&i.value.file.length===1){const E=i.value.file[0];typeof E=="string"&&E.trim()!==""&&(N=E.trim(),(!i.value.src||i.value.src!==E.trim())&&(i.value.src=E.trim()))}else typeof i.value.file=="string"&&i.value.file.trim()!==""&&(N=i.value.file.trim(),(!i.value.src||i.value.src!==i.value.file.trim())&&(i.value.src=i.value.file.trim()));const I=N||Array.isArray(i.value.file)&&i.value.file.length>0&&(i.value.file.some(E=>E instanceof File)||i.value.file.some(E=>typeof E=="string"&&E.trim()!==""))||i.value.file instanceof FileList&&i.value.file.length>0||typeof i.value.file=="string"&&i.value.file.trim()!=="";if(!N&&!I){he.notify({type:"warning",title:"Попередження",message:"Будь ласка, введіть URL зображення або виберіть файл"});return}if(!d.value&&!I&&await l.value.validate()){he.notify({type:"warning",title:"Попередження",message:"Будь ласка, заповніть всі обов'язкові поля"});return}if(t.editor&&N)if(a.value&&c.value!==null){const{state:E}=t.editor;try{t.editor.chain().focus().setNodeSelection(c.value).run()}catch{t.editor.chain().focus().setTextSelection(c.value).run()}const M=t.editor.getAttributes("link"),D=M&&M.href,K=v(),W={src:N,alt:i.value.alt||"",title:i.value.title||"",...K};if((!i.value.width||i.value.width==="")&&(W.width=void 0),(!i.value.height||i.value.height==="")&&(W.height=void 0),t.editor.chain().focus().updateAttributes("image",W).run(),setTimeout(()=>{const{view:X}=t.editor;if(!X||!X.dom)return;X.dom.querySelectorAll("img.editor-image").forEach(ge=>{if(ge instanceof HTMLImageElement){const te=ge.getAttribute("src")||ge.src;(te===N||te.includes(N.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 X=i.value.link.trim();X.match(/^https?:\/\//i)||(X="https://"+X),D?t.editor.chain().focus().extendMarkRange("link").setLink({href:X,target:i.value.openInNewTab?"_blank":null}).run():t.editor.chain().focus().selectParentNode().setLink({href:X,target:i.value.openInNewTab?"_blank":null}).run()}else D&&t.editor.chain().focus().extendMarkRange("link").unsetLink().run()}else{const{state:E}=t.editor,{selection:M}=E,{$anchor:D}=M;let K=null;for(let X=D.depth;X>0;X--){const re=D.node(X);if(re&&re.type.name==="paragraph"){K=re;break}}if(K&&K.content.content.some(X=>X.type.name==="image")){const X=V(K,D.before(D.depth));if(X!==null){const re=v(),ve=E.schema.nodes.image.create({src:N,alt:i.value.alt||"",title:i.value.title||"",...re});if(i.value.link&&i.value.link.trim()!==""){let ge=i.value.link.trim();ge.match(/^https?:\/\//i)||(ge="https://"+ge);const te=E.schema.marks.link.create({href:ge,target:i.value.openInNewTab?"_blank":null}),se=ve.type.create(ve.attrs,ve.content,[te]);t.editor.chain().focus().insertContentAt(X+1,se).run(),b(t.editor,N)}else t.editor.chain().focus().insertContentAt(X+1,ve).run(),b(t.editor,N)}else if(i.value.link&&i.value.link.trim()!==""){const re=v();t.editor.chain().focus().setImage({src:N,alt:i.value.alt||"",title:i.value.title||"",...re}).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(),b(t.editor,N,20)},10)}else{const re=v();t.editor.chain().focus().setImage({src:N,alt:i.value.alt||"",title:i.value.title||"",...re}).run(),b(t.editor,N)}}else if(i.value.link&&i.value.link.trim()!==""){const X=v();t.editor.chain().focus().setImage({src:N,alt:i.value.alt||"",title:i.value.title||"",...X}).run(),setTimeout(()=>{let re=i.value.link.trim();re.match(/^https?:\/\//i)||(re="https://"+re),t.editor.chain().focus().selectParentNode().setLink({href:re,target:i.value.openInNewTab?"_blank":null}).run(),b(t.editor,N,20)},10)}else{const X=v();t.editor.chain().focus().setImage({src:N,alt:i.value.alt||"",title:i.value.title||"",...X}).run(),b(t.editor,N)}}m()},V=(_,S)=>{let $=null;return _.forEach((B,N)=>{B.type.name==="image"&&($=S+N+1)}),$},O=async()=>{if(t.editor){if(s.value.length===0)if(Array.isArray(i.value.file)&&i.value.file.length>0){const _=i.value.file.filter($=>typeof $=="string"&&$.trim()!==""),S=i.value.file.filter($=>$ instanceof File);for(const $ of _)s.value.some(B=>B.url===$||B.preview===$)||s.value.push({url:$,preview:$,error:!1});S.length>0&&await k(S)}else d.value&&await k(i.value.file);if(s.value.length!==0)try{const _=[],S=v();for(const $ of s.value){const B=$.url||$.preview||"";if(!B)continue;const N=t.editor.schema.nodes.image.create({src:B,alt:i.value.alt||"",title:i.value.title||"",...S});_.push(N)}_.length>0&&(t.editor.chain().focus().command(({tr:$,dispatch:B})=>{if(B){const{selection:N}=$,{$anchor:I}=N;let E=N.$anchor.pos,M=null,D=null;for(let W=I.depth;W>0;W--){const X=I.node(W);if(X&&X.type.name==="paragraph"){M=X,D=I.start(W);break}}if(M){let W=null;M.forEach((X,re)=>{X.type.name==="image"&&(W=D+re+1)}),W!==null?E=W+1:E=D+M.content.size}let K=E;return _.forEach(W=>{$.insert(K,W),K+=W.nodeSize}),!0}return!1}).run(),i.value.width&&i.value.height&&setTimeout(()=>{const{view:$}=t.editor;$&&$.dom&&$.dom.querySelectorAll("img.editor-image").forEach(I=>{I instanceof HTMLImageElement&&Array.from(s.value).some(M=>{const D=M.url||M.preview||"",K=I.src||I.getAttribute("src")||"";return K===D||K.includes(D.split("/").pop())})&&(I.style.setProperty("width",`${i.value.width}px`,"important"),I.style.setProperty("height",`${i.value.height}px`,"important"),I.style.setProperty("object-fit","fill","important"),I.style.setProperty("max-width","none","important"),I.style.setProperty("max-height","none","important"))})},50)),m()}catch(_){console.error("Помилка при додаванні зображень:",_),he.notify({type:"error",title:"Помилка",message:"Не вдалося додати зображення"})}}},Y=async()=>{await w()},L=()=>{m()};return e.watch(()=>i.value.file,async(_,S)=>{if(r.value=!1,!(a.value&&Array.isArray(_)&&_.length===1&&typeof _[0]=="string"&&!_.some(B=>B instanceof File)))if(Array.isArray(_)&&_.length>0){const $=_.filter(N=>N instanceof File),B=_.filter(N=>typeof N=="string"&&N.trim()!=="");if($.length>0&&(a.value?a.value&&$.length===1&&B.length===0&&(s.value=[]):s.value=[],(!a.value||$.length>1||B.length>0)&&await k($),a.value&&$.length===1&&B.length===0)){const N=new FileReader;N.onload=I=>{i.value.src=I.target.result},N.readAsDataURL($[0])}if(B.length>0)if(a.value)a.value&&B.length===1&&$.length===0&&(i.value.src=B[0]);else{$.length===0&&(s.value=[]);for(const N of B)s.value.some(I=>I.url===N||I.preview===N)||s.value.push({url:N,preview:N,error:!1})}}else _&&typeof _=="object"&&_ instanceof FileList?(a.value||(s.value=[]),await k(Array.from(_))):_&&typeof _=="object"&&!Array.isArray(_)&&_ instanceof File?(a.value||(s.value=[]),await k([_])):a.value||(s.value=[])},{immediate:!1}),e.watch(()=>i.value.src,()=>{r.value=!1}),(_,S)=>(e.openBlock(),e.createElementBlock("div",Pg,[e.createElementVNode("button",{onClick:x,class:e.normalizeClass(["h-[30px] w-[30px] flex items-center justify-center text-gray-500 rounded-full cursor-pointer hover:text-gray-900 hover:bg-gray-100",o.editor?.isActive("image")?"bg-gray-200 text-gray-900":""]),title:"Додати зображення"},[e.createVNode(e.unref(z.Image),{class:"h-4 w-4"}),S[4]||(S[4]=e.createElementVNode("span",{class:"sr-only"},"Додати зображення",-1))],2),e.createVNode(Pr,{modelValue:n.value,"onUpdate:modelValue":S[3]||(S[3]=$=>n.value=$),title:a.value?"Редагувати зображення":"Додати зображення"},{footer:e.withCtx(()=>[e.createElementVNode("div",Xg,[e.createElementVNode("button",{onClick:L,type:"button",class:"px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-blue-500"}," Скасувати "),e.createElementVNode("button",{onClick:Y,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(rt,{modelValue:i.value,"onUpdate:modelValue":S[0]||(S[0]=$=>i.value=$),schema:h.value,form:l.value,"onUpdate:form":S[1]||(S[1]=$=>l.value=$)},null,8,["modelValue","schema","form"]),f.value&&!d.value?(e.openBlock(),e.createElementBlock("div",jg,[S[5]||(S[5]=e.createElementVNode("p",{class:"text-sm text-gray-600 mb-2"},"Попередній перегляд:",-1)),e.withDirectives(e.createElementVNode("img",{src:f.value,alt:i.value.alt||"Попередній перегляд зображення",title:i.value.title,class:"max-w-full h-auto max-h-32 rounded border",onError:S[2]||(S[2]=$=>r.value=!0)},null,40,Ug),[[e.vShow,!r.value]]),r.value?(e.openBlock(),e.createElementBlock("p",Hg," Не вдалося завантажити попередній перегляд зображення ")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),s.value.length>0?(e.openBlock(),e.createElementBlock("div",qg,[e.createElementVNode("p",Kg,"Попередній перегляд ("+e.toDisplayString(s.value.length)+" зображень):",1),S[6]||(S[6]=e.createElementVNode("p",{class:"text-xs text-gray-500 mb-2"}," Зображення будуть розміщені в ряд, якщо вони помістяться по ширині ",-1)),e.createElementVNode("div",Wg,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,($,B)=>(e.openBlock(),e.createElementBlock("div",{key:B,class:"relative"},[e.withDirectives(e.createElementVNode("img",{src:$.preview,alt:`Попередній перегляд ${B+1}`,class:"max-w-[100px] max-h-[100px] rounded border object-contain",onError:N=>$.error=!0},null,40,Gg),[[e.vShow,!$.error]]),e.createElementVNode("button",{onClick:N=>y(B),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,Yg)]))),128))])])):e.createCommentVNode("",!0)]),_:1},8,["modelValue","title"])]))}}),Jg={class:"flex items-center"},Qg=["disabled"],e0=["disabled"],t0=xe(Object.assign({inheritAttrs:!1},{__name:"vs-editor-history",props:{editor:Object},setup(o){const t=o,n=()=>{t.editor?.can().undo()&&t.editor.chain().focus().undo().run()},r=()=>{t.editor?.can().redo()&&t.editor.chain().focus().redo().run()};return(l,a)=>(e.openBlock(),e.createElementBlock("div",Jg,[e.createElementVNode("button",{onClick:n,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-l-full hover:text-gray-900 hover:bg-gray-100 border-r border-gray-200",[o.editor?.can().undo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!o.editor?.can().undo(),title:"Undo (Ctrl+Z)"},[e.createVNode(e.unref(z.Undo2),{class:"h-4 w-4"})],10,Qg),e.createElementVNode("button",{onClick:r,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-r-full hover:text-gray-900 hover:bg-gray-100",[o.editor?.can().redo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!o.editor?.can().redo(),title:"Redo (Ctrl+Y)"},[e.createVNode(e.unref(z.Redo2),{class:"h-4 w-4"})],10,e0)]))}}),[["__scopeId","data-v-2cd0a908"]]),n0={class:"relative"},o0={class:"p-6"},r0={class:"flex justify-between items-center mb-4"},l0={bold:gh,italic:kh,color:dg,background_color:gg,highlight:yg,bullet_list:sh,ordered_list:dh,blockquote:rh,codeblock:fh,underline:xh,strike:wh,link:Hh,table:Yh,text_align:Jh,type_tag:tg,font_family:Cg,font_size:Bg,superscript:$g,subscript:Fg,heading:Ig,clear_formatting:zg,image:Zg,history:t0,help:xe(Object.assign({inheritAttrs:!1},{__name:"vs-editor-help",props:{editor:Object},setup(o){const t=e.ref(!1),n=e.ref(null),r=()=>{t.value=!t.value},l=()=>{t.value=!1};return(a,s)=>(e.openBlock(),e.createElementBlock("div",n0,[e.createElementVNode("button",{ref_key:"helpButton",ref:n,onClick:r,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 text-gray-500",[t.value?"bg-gray-100 text-gray-900":"text-gray-500"]]),title:"Markdown Shortcuts Help"},[e.createVNode(e.unref(z.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",o0,[e.createElementVNode("div",r0,[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(z.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 (>) 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></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(o){const t=o,n=()=>{t.editor&&t.editor.chain().focus().setHorizontalRule().run()};return(r,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(z.Minus),{class:"h-4 w-4"})]))}},fullscreen:{__name:"vs-editor-fullscreen",props:{editor:Object},emits:["toggle-fullscreen"],setup(o,{emit:t}){const n=t,r=()=>{n("toggle-fullscreen")};return(l,a)=>(e.openBlock(),e.createElementBlock("button",{title:"Fullscreen",onClick:r,class:"w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded-full hover:text-gray-900 hover:bg-gray-100"},[e.createVNode(e.unref(z.Maximize),{class:"h-4 w-4"})]))}},tab:Object.assign({inheritAttrs:!1},{__name:"vs-editor-tab",props:{editor:{type:Object,required:!0}},setup(o){const t=o,n=()=>{t.editor&&(t.editor.isActive("bulletList")||t.editor.isActive("orderedList"))&&t.editor.chain().focus().sinkListItem("listItem").run()};return(r,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(z.ListIndentIncrease),{class:"h-4 w-4"})]))}})},Hr={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"]},a0={class:"flex align-middle gap-x-0.5 border-b flex-wrap border-b-gray-200 px-[10px] py-[6px] border-solid border-transparent"},s0={class:"rich-text-scroll-wrapper"},i0={key:0,class:"richtext-loading text-sm text-gray-500"},c0={key:1,class:"richtext-error text-sm text-red-600"},d0={class:"html-source-editor"},u0={class:"flex justify-end border-t border-[#e5e7eb] bg-[#f8fafc] px-4 min-h-[38px] items-start overflow-visible"},p0={class:"inline-flex items-stretch -mt-px"},f0=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(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref(null),{t:l}=Rn(),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:u,destroyEditor:f,isLoading:h,loadError:x}=Pm(t),{isHtmlMode:m,htmlContent:k,htmlTextarea:y,toggleHtmlMode:v}=jm(c,t.format,(L,_)=>{L==="update:modelValue"&&(n.value=_)},{toEditorContent:yo,toSourceContent:Zm}),{isFullscreen:b,toggleFullscreen:w}=Um(),V=e.computed(()=>typeof t.toolbar=="string"?Hr[t.toolbar]||Hr.default:t.toolbar),O=e.computed(()=>V.value.map(L=>l0[L]).filter(Boolean));e.watch(()=>t.modelValue,async L=>{if(c.value){const _=await yo(L||"",t.format),S=c.value.getHTML();_!==S&&_!=="<p></p>"&&c.value.commands.setContent(_,!1)}},{immediate:!0});const Y=L=>{if(!L||!L.view||!L.view.dom)return;L.view.dom.querySelectorAll("img.editor-image[width][height]").forEach(S=>{if(S instanceof HTMLImageElement){const $=S.getAttribute("width"),B=S.getAttribute("height");$&&B&&$!=="auto"&&B!=="auto"&&$!==""&&B!==""&&!isNaN(Number($))&&!isNaN(Number(B))&&(S.style.cssText=`
|
|
44
|
-
width: ${
|
|
45
|
-
height: ${
|
|
43
|
+
`.replace(/\s+/g," ").trim())}})},$=c.value.width,R=c.value.height;$&&R&&$!==""&&R!==""?[0,N,N*2,N*3,N*4].forEach(F=>{setTimeout(v,F)}):(v(),setTimeout(v,N))},w=async()=>{let E=[],S=[];if(Array.isArray(c.value.file)?(E=c.value.file.filter(B=>B instanceof File),S=c.value.file.filter(B=>typeof B=="string"&&B.trim()!=="")):c.value.file instanceof FileList?E=Array.from(c.value.file):c.value.file instanceof File?E=[c.value.file]:typeof c.value.file=="string"&&c.value.file.trim()!==""&&(S=[c.value.file]),E.length===0&&S.length===0&&l.value&&l.value.file){const B=l.value.file;Array.isArray(B)?(E=B.filter(F=>F instanceof File),S=B.filter(F=>typeof F=="string"&&F.trim()!=="")):B instanceof FileList?E=Array.from(B):B instanceof File?E=[B]:typeof B=="string"&&B.trim()!==""&&(S=[B])}if(S.length>0&&!a.value){for(const B of S)s.value.some(F=>F.url===B)||s.value.push({url:B,preview:B,error:!1});if(E.length===0&&s.value.length>0){await z();return}}const N=E.length,v=N+S.length;if(!(a.value&&N<=1)){if(N>0){const B=E.filter(F=>!s.value.some(D=>D.file===F));B.length>0&&await g(B)}}if(!a.value){if(v>1||d.value||s.value.length>1){if(s.value.length>0){await z();return}else if(N>0){if(await g(E),s.value.length>0){await z();return}}else if(S.length>0){await z();return}}else if(s.value.length>1){await z();return}}let $=c.value.src;if(u.value){let B=null;if(Array.isArray(c.value.file)||c.value.file instanceof FileList?B=c.value.file[0]:(c.value.file instanceof File||typeof c.value.file=="string")&&(B=c.value.file),B instanceof File)try{const F=new FileReader,D=await new Promise((Z,G)=>{F.onload=ee=>Z(ee.target.result),F.onerror=G,F.readAsDataURL(B)});$=D,a.value&&(c.value.src=D)}catch(F){console.error("Помилка при читанні файлу:",F),fe.notify({type:"error",title:"Помилка",message:"Не вдалося прочитати файл"});return}else typeof B=="string"&&B.trim()!==""&&($=B.trim(),a.value&&B.trim()!==c.value.src&&(c.value.src=B.trim(),$=B.trim()))}else if(Array.isArray(c.value.file)&&c.value.file.length===1){const B=c.value.file[0];typeof B=="string"&&B.trim()!==""&&($=B.trim(),(!c.value.src||c.value.src!==B.trim())&&(c.value.src=B.trim()))}else typeof c.value.file=="string"&&c.value.file.trim()!==""&&($=c.value.file.trim(),(!c.value.src||c.value.src!==c.value.file.trim())&&(c.value.src=c.value.file.trim()));const R=$||Array.isArray(c.value.file)&&c.value.file.length>0&&(c.value.file.some(B=>B instanceof File)||c.value.file.some(B=>typeof B=="string"&&B.trim()!==""))||c.value.file instanceof FileList&&c.value.file.length>0||typeof c.value.file=="string"&&c.value.file.trim()!=="";if(!$&&!R){fe.notify({type:"warning",title:"Попередження",message:"Будь ласка, введіть URL зображення або виберіть файл"});return}if(!d.value&&!R&&await l.value.validate()){fe.notify({type:"warning",title:"Попередження",message:"Будь ласка, заповніть всі обов'язкові поля"});return}if(t.editor&&$)if(a.value&&i.value!==null){const{state:B}=t.editor;try{t.editor.chain().focus().setNodeSelection(i.value).run()}catch{t.editor.chain().focus().setTextSelection(i.value).run()}const F=t.editor.getAttributes("link"),D=F&&F.href,Z=C(),G={src:$,alt:c.value.alt||"",title:c.value.title||"",...Z};if((!c.value.width||c.value.width==="")&&(G.width=void 0),(!c.value.height||c.value.height==="")&&(G.height=void 0),t.editor.chain().focus().updateAttributes("image",G).run(),setTimeout(()=>{const{view:ee}=t.editor;if(!ee||!ee.dom)return;ee.dom.querySelectorAll("img.editor-image").forEach(me=>{if(me instanceof HTMLImageElement){const ne=me.getAttribute("src")||me.src;(ne===$||ne.includes($.split("/").pop()))&&(c.value.width&&c.value.height?(me.style.setProperty("width",`${c.value.width}px`,"important"),me.style.setProperty("height",`${c.value.height}px`,"important"),me.style.setProperty("object-fit","fill","important"),me.style.setProperty("max-width","none","important"),me.style.setProperty("max-height","none","important")):(me.style.removeProperty("width"),me.style.removeProperty("height"),me.style.removeProperty("object-fit"),me.style.removeProperty("max-width"),me.style.removeProperty("max-height")))}})},20),c.value.link&&c.value.link.trim()!==""){let ee=c.value.link.trim();ee.match(/^https?:\/\//i)||(ee="https://"+ee),D?t.editor.chain().focus().extendMarkRange("link").setLink({href:ee,target:c.value.openInNewTab?"_blank":null}).run():t.editor.chain().focus().selectParentNode().setLink({href:ee,target:c.value.openInNewTab?"_blank":null}).run()}else D&&t.editor.chain().focus().extendMarkRange("link").unsetLink().run()}else{const{state:B}=t.editor,{selection:F}=B,{$anchor:D}=F;let Z=null;for(let ee=D.depth;ee>0;ee--){const le=D.node(ee);if(le&&le.type.name==="paragraph"){Z=le;break}}if(Z&&Z.content.content.some(ee=>ee.type.name==="image")){const ee=V(Z,D.before(D.depth));if(ee!==null){const le=C(),we=B.schema.nodes.image.create({src:$,alt:c.value.alt||"",title:c.value.title||"",...le});if(c.value.link&&c.value.link.trim()!==""){let me=c.value.link.trim();me.match(/^https?:\/\//i)||(me="https://"+me);const ne=B.schema.marks.link.create({href:me,target:c.value.openInNewTab?"_blank":null}),ie=we.type.create(we.attrs,we.content,[ne]);t.editor.chain().focus().insertContentAt(ee+1,ie).run(),x(t.editor,$)}else t.editor.chain().focus().insertContentAt(ee+1,we).run(),x(t.editor,$)}else if(c.value.link&&c.value.link.trim()!==""){const le=C();t.editor.chain().focus().setImage({src:$,alt:c.value.alt||"",title:c.value.title||"",...le}).run(),setTimeout(()=>{let we=c.value.link.trim();we.match(/^https?:\/\//i)||(we="https://"+we),t.editor.chain().focus().selectParentNode().setLink({href:we,target:c.value.openInNewTab?"_blank":null}).run(),x(t.editor,$,20)},10)}else{const le=C();t.editor.chain().focus().setImage({src:$,alt:c.value.alt||"",title:c.value.title||"",...le}).run(),x(t.editor,$)}}else if(c.value.link&&c.value.link.trim()!==""){const ee=C();t.editor.chain().focus().setImage({src:$,alt:c.value.alt||"",title:c.value.title||"",...ee}).run(),setTimeout(()=>{let le=c.value.link.trim();le.match(/^https?:\/\//i)||(le="https://"+le),t.editor.chain().focus().selectParentNode().setLink({href:le,target:c.value.openInNewTab?"_blank":null}).run(),x(t.editor,$,20)},10)}else{const ee=C();t.editor.chain().focus().setImage({src:$,alt:c.value.alt||"",title:c.value.title||"",...ee}).run(),x(t.editor,$)}}m()},V=(E,S)=>{let N=null;return E.forEach((v,$)=>{v.type.name==="image"&&(N=S+$+1)}),N},z=async()=>{if(t.editor){if(s.value.length===0)if(Array.isArray(c.value.file)&&c.value.file.length>0){const E=c.value.file.filter(N=>typeof N=="string"&&N.trim()!==""),S=c.value.file.filter(N=>N instanceof File);for(const N of E)s.value.some(v=>v.url===N||v.preview===N)||s.value.push({url:N,preview:N,error:!1});S.length>0&&await g(S)}else d.value&&await g(c.value.file);if(s.value.length!==0)try{const E=[],S=C();for(const N of s.value){const v=N.url||N.preview||"";if(!v)continue;const $=t.editor.schema.nodes.image.create({src:v,alt:c.value.alt||"",title:c.value.title||"",...S});E.push($)}E.length>0&&(t.editor.chain().focus().command(({tr:N,dispatch:v})=>{if(v){const{selection:$}=N,{$anchor:R}=$;let B=$.$anchor.pos,F=null,D=null;for(let G=R.depth;G>0;G--){const ee=R.node(G);if(ee&&ee.type.name==="paragraph"){F=ee,D=R.start(G);break}}if(F){let G=null;F.forEach((ee,le)=>{ee.type.name==="image"&&(G=D+le+1)}),G!==null?B=G+1:B=D+F.content.size}let Z=B;return E.forEach(G=>{N.insert(Z,G),Z+=G.nodeSize}),!0}return!1}).run(),c.value.width&&c.value.height&&setTimeout(()=>{const{view:N}=t.editor;N&&N.dom&&N.dom.querySelectorAll("img.editor-image").forEach(R=>{R instanceof HTMLImageElement&&Array.from(s.value).some(F=>{const D=F.url||F.preview||"",Z=R.src||R.getAttribute("src")||"";return Z===D||Z.includes(D.split("/").pop())})&&(R.style.setProperty("width",`${c.value.width}px`,"important"),R.style.setProperty("height",`${c.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)),m()}catch(E){console.error("Помилка при додаванні зображень:",E),fe.notify({type:"error",title:"Помилка",message:"Не вдалося додати зображення"})}}},X=async()=>{await w()},L=()=>{m()};return e.watch(()=>c.value.file,async(E,S)=>{if(r.value=!1,!(a.value&&Array.isArray(E)&&E.length===1&&typeof E[0]=="string"&&!E.some(v=>v instanceof File)))if(Array.isArray(E)&&E.length>0){const N=E.filter($=>$ instanceof File),v=E.filter($=>typeof $=="string"&&$.trim()!=="");if(N.length>0&&(a.value?a.value&&N.length===1&&v.length===0&&(s.value=[]):s.value=[],(!a.value||N.length>1||v.length>0)&&await g(N),a.value&&N.length===1&&v.length===0)){const $=new FileReader;$.onload=R=>{c.value.src=R.target.result},$.readAsDataURL(N[0])}if(v.length>0)if(a.value)a.value&&v.length===1&&N.length===0&&(c.value.src=v[0]);else{N.length===0&&(s.value=[]);for(const $ of v)s.value.some(R=>R.url===$||R.preview===$)||s.value.push({url:$,preview:$,error:!1})}}else E&&typeof E=="object"&&E instanceof FileList?(a.value||(s.value=[]),await g(Array.from(E))):E&&typeof E=="object"&&!Array.isArray(E)&&E instanceof File?(a.value||(s.value=[]),await g([E])):a.value||(s.value=[])},{immediate:!1}),e.watch(()=>c.value.src,()=>{r.value=!1}),(E,S)=>(e.openBlock(),e.createElementBlock("div",Ug,[e.createElementVNode("button",{onClick:k,class:e.normalizeClass(["h-[30px] w-[30px] flex items-center justify-center text-gray-500 rounded-full cursor-pointer hover:text-gray-900 hover:bg-gray-100",o.editor?.isActive("image")?"bg-gray-200 text-gray-900":""]),title:"Додати зображення"},[e.createVNode(e.unref(H.Image),{class:"h-4 w-4"}),S[4]||(S[4]=e.createElementVNode("span",{class:"sr-only"},"Додати зображення",-1))],2),e.createVNode(Ur,{modelValue:n.value,"onUpdate:modelValue":S[3]||(S[3]=N=>n.value=N),title:a.value?"Редагувати зображення":"Додати зображення"},{footer:e.withCtx(()=>[e.createElementVNode("div",Jg,[e.createElementVNode("button",{onClick:L,type:"button",class:"px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-blue-500"}," Скасувати "),e.createElementVNode("button",{onClick:X,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(rt,{modelValue:c.value,"onUpdate:modelValue":S[0]||(S[0]=N=>c.value=N),schema:h.value,form:l.value,"onUpdate:form":S[1]||(S[1]=N=>l.value=N)},null,8,["modelValue","schema","form"]),p.value&&!d.value?(e.openBlock(),e.createElementBlock("div",Hg,[S[5]||(S[5]=e.createElementVNode("p",{class:"text-sm text-gray-600 mb-2"},"Попередній перегляд:",-1)),e.withDirectives(e.createElementVNode("img",{src:p.value,alt:c.value.alt||"Попередній перегляд зображення",title:c.value.title,class:"max-w-full h-auto max-h-32 rounded border",onError:S[2]||(S[2]=N=>r.value=!0)},null,40,qg),[[e.vShow,!r.value]]),r.value?(e.openBlock(),e.createElementBlock("p",Kg," Не вдалося завантажити попередній перегляд зображення ")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),s.value.length>0?(e.openBlock(),e.createElementBlock("div",Wg,[e.createElementVNode("p",Gg,"Попередній перегляд ("+e.toDisplayString(s.value.length)+" зображень):",1),S[6]||(S[6]=e.createElementVNode("p",{class:"text-xs text-gray-500 mb-2"}," Зображення будуть розміщені в ряд, якщо вони помістяться по ширині ",-1)),e.createElementVNode("div",Yg,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(N,v)=>(e.openBlock(),e.createElementBlock("div",{key:v,class:"relative"},[e.withDirectives(e.createElementVNode("img",{src:N.preview,alt:`Попередній перегляд ${v+1}`,class:"max-w-[100px] max-h-[100px] rounded border object-contain",onError:$=>N.error=!0},null,40,Xg),[[e.vShow,!N.error]]),e.createElementVNode("button",{onClick:$=>y(v),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,Zg)]))),128))])])):e.createCommentVNode("",!0)]),_:1},8,["modelValue","title"])]))}}),e0={class:"flex items-center"},t0=["disabled"],n0=["disabled"],o0=ke(Object.assign({inheritAttrs:!1},{__name:"vs-editor-history",props:{editor:Object},setup(o){const t=o,n=()=>{t.editor?.can().undo()&&t.editor.chain().focus().undo().run()},r=()=>{t.editor?.can().redo()&&t.editor.chain().focus().redo().run()};return(l,a)=>(e.openBlock(),e.createElementBlock("div",e0,[e.createElementVNode("button",{onClick:n,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-l-full hover:text-gray-900 hover:bg-gray-100 border-r border-gray-200",[o.editor?.can().undo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!o.editor?.can().undo(),title:"Undo (Ctrl+Z)"},[e.createVNode(e.unref(H.Undo2),{class:"h-4 w-4"})],10,t0),e.createElementVNode("button",{onClick:r,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-r-full hover:text-gray-900 hover:bg-gray-100",[o.editor?.can().redo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!o.editor?.can().redo(),title:"Redo (Ctrl+Y)"},[e.createVNode(e.unref(H.Redo2),{class:"h-4 w-4"})],10,n0)]))}}),[["__scopeId","data-v-6a87fc55"]]),r0={class:"relative"},l0={class:"p-6"},a0={class:"flex justify-between items-center mb-4"},s0={bold:bh,italic:wh,color:pg,background_color:bg,highlight:kg,bullet_list:ch,ordered_list:ph,blockquote:ah,codeblock:hh,underline:_h,strike:Ch,link:Kh,table:Zh,text_align:eg,type_tag:og,font_family:vg,font_size:Sg,superscript:Ag,subscript:Dg,heading:Og,clear_formatting:jg,image:Qg,history:o0,help:ke(Object.assign({inheritAttrs:!1},{__name:"vs-editor-help",props:{editor:Object},setup(o){const t=e.ref(!1),n=e.ref(null),r=()=>{t.value=!t.value},l=()=>{t.value=!1};return(a,s)=>(e.openBlock(),e.createElementBlock("div",r0,[e.createElementVNode("button",{ref_key:"helpButton",ref:n,onClick:r,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 text-gray-500",[t.value?"bg-gray-100 text-gray-900":"text-gray-500"]]),title:"Markdown Shortcuts Help"},[e.createVNode(e.unref(H.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",l0,[e.createElementVNode("div",a0,[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(H.X),{class:"h-6 w-6"})])]),s[2]||(s[2]=e.createStaticVNode('<div class="space-y-6" data-v-92c21275><div data-v-92c21275><h3 class="text-lg font-medium text-gray-800 mb-3" data-v-92c21275>Markdown Syntax</h3><div class="overflow-x-auto" data-v-92c21275><table class="w-full border-collapse" data-v-92c21275><thead data-v-92c21275><tr class="bg-gray-50" data-v-92c21275><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-92c21275>Element</th><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-92c21275>Example</th></tr></thead><tbody class="text-sm" data-v-92c21275><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Bold</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>**bold text**</code> or <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>__bold text__</code></td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Italics</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>*italic text*</code> or <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>_italic text_</code></td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Strikethrough</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>~strikethrough text~</code></td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Headings</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275># Heading 1</code>, <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>## Heading 2</code>, etc., up to <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>###### Heading 6</code></td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Unordered Lists</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Use an asterisk (*), dash (-), or plus sign (+) followed by a space. </td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Ordered Lists</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Use a number followed by a period and a space (e.g., <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>1. First item</code>). </td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Blockquotes</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Start with a greater-than sign (>) followed by a space. </td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Inline Code</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Surround with backticks (<code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>`</code>). </td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Code Blocks</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Enclose with three backticks (<code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>```</code>) before and after the code. </td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Images</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Use <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275></code> syntax. </td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Links</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Use <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>[Link Text](url)</code> syntax. </td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Checklists</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Create a list item with <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>- [ ]</code> for an incomplete task or <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>- [x]</code> for a completed one. </td></tr></tbody></table></div></div><div data-v-92c21275><h3 class="text-lg font-medium text-gray-800 mb-3" data-v-92c21275>Common Editing Shortcuts</h3><div class="overflow-x-auto" data-v-92c21275><table class="w-full border-collapse" data-v-92c21275><thead data-v-92c21275><tr class="bg-gray-50" data-v-92c21275><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-92c21275>Shortcut</th><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-92c21275>Action</th></tr></thead><tbody class="text-sm" data-v-92c21275><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+A</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Select all text</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+B</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Apply bold formatting</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+C</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Copy selected text</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+I</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Apply italic formatting</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+K</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Open the insert link dialog</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+S</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Save the current document</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+V</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Paste copied text</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+X</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Cut selected text</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+Y</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Redo the last action</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Alt+Shift+Backspace</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Redo the last action</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+Z</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Undo the last action</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Alt+Backspace</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Undo the last action</td></tr></tbody></table></div></div></div>',1))])])])):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-92c21275"]]),horizontal_rule:{__name:"vs-editor-horizontal-rule",props:{editor:Object},setup(o){const t=o,n=()=>{t.editor&&t.editor.chain().focus().setHorizontalRule().run()};return(r,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(H.Minus),{class:"h-4 w-4"})]))}},fullscreen:{__name:"vs-editor-fullscreen",props:{editor:Object},emits:["toggle-fullscreen"],setup(o,{emit:t}){const n=t,r=()=>{n("toggle-fullscreen")};return(l,a)=>(e.openBlock(),e.createElementBlock("button",{title:"Fullscreen",onClick:r,class:"w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded-full hover:text-gray-900 hover:bg-gray-100"},[e.createVNode(e.unref(H.Maximize),{class:"h-4 w-4"})]))}},tab:Object.assign({inheritAttrs:!1},{__name:"vs-editor-tab",props:{editor:{type:Object,required:!0}},setup(o){const t=o,n=()=>{t.editor&&(t.editor.isActive("bulletList")||t.editor.isActive("orderedList"))&&t.editor.chain().focus().sinkListItem("listItem").run()};return(r,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(H.ListIndentIncrease),{class:"h-4 w-4"})]))}})},Kr={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"]},i0={class:"flex align-middle gap-x-0.5 border-b flex-wrap border-b-gray-200 px-[10px] py-[6px] border-solid border-transparent"},c0={class:"rich-text-scroll-wrapper"},d0={key:0,class:"richtext-loading text-sm text-gray-500"},u0={key:1,class:"richtext-error text-sm text-red-600"},p0={class:"html-source-editor"},f0={class:"flex justify-end border-t border-[#e5e7eb] bg-[#f8fafc] px-4 min-h-[38px] items-start overflow-visible"},m0={class:"inline-flex items-stretch -mt-px"},h0=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(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref(null),{t:l}=zn(),a=e.computed(()=>t.format==="md"?"markdown":"html"),s=e.computed(()=>t.format==="md"?l("form.richtext.markdown"):l("form.richtext.html")),{editor:i,editorInstance:c,focusEditor:d,createEditor:u,destroyEditor:p,isLoading:h,loadError:k}=Um(t),{isHtmlMode:m,htmlContent:g,htmlTextarea:y,toggleHtmlMode:C}=Hm(i,t.format,(L,E)=>{L==="update:modelValue"&&(n.value=E)},{toEditorContent:ko,toSourceContent:Qm}),{isFullscreen:x,toggleFullscreen:w}=qm(),V=e.computed(()=>typeof t.toolbar=="string"?Kr[t.toolbar]||Kr.default:t.toolbar),z=e.computed(()=>V.value.map(L=>s0[L]).filter(Boolean));e.watch(()=>t.modelValue,async L=>{if(i.value){const E=await ko(L||"",t.format),S=i.value.getHTML();E!==S&&E!=="<p></p>"&&i.value.commands.setContent(E,!1)}},{immediate:!0});const X=L=>{if(!L||!L.view||!L.view.dom)return;L.view.dom.querySelectorAll("img.editor-image[width][height]").forEach(S=>{if(S instanceof HTMLImageElement){const N=S.getAttribute("width"),v=S.getAttribute("height");N&&v&&N!=="auto"&&v!=="auto"&&N!==""&&v!==""&&!isNaN(Number(N))&&!isNaN(Number(v))&&(S.style.cssText=`
|
|
44
|
+
width: ${N}px !important;
|
|
45
|
+
height: ${v}px !important;
|
|
46
46
|
max-width: none !important;
|
|
47
47
|
max-height: none !important;
|
|
48
48
|
min-width: auto !important;
|
|
49
49
|
min-height: auto !important;
|
|
50
50
|
object-fit: fill !important;
|
|
51
|
-
`.replace(/\s+/g," ").trim())}})};return e.watch(
|
|
51
|
+
`.replace(/\s+/g," ").trim())}})};return e.watch(i,L=>{L&&(e.nextTick(()=>{X(i.value)}),i.value.on("update",async E=>{const S=E.editor.getHTML(),N=await eh(S,t.format);N!==t.modelValue&&S!=="<p></p>"&&(n.value=N),setTimeout(()=>{X(E.editor)},10)}))}),e.onMounted(async()=>{const L=await ko(t.modelValue||"",t.format);await u(r.value,L),e.nextTick(()=>{i.value&&setTimeout(()=>{X(i.value)},100)})}),e.onBeforeUnmount(()=>{p()}),(L,E)=>(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(x)}])},[e.createElementVNode("div",i0,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(z.value,S=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:S},[e.unref(i)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(S),{key:0,editor:e.unref(c),onToggleFullscreen:e.unref(w)},null,40,["editor","onToggleFullscreen"])):e.createCommentVNode("",!0)],64))),128))]),e.createElementVNode("div",{onClick:E[1]||(E[1]=(...S)=>e.unref(d)&&e.unref(d)(...S)),class:"relative w-full px-4 py-2 bg-white rounded-b-lg editor-content",style:e.normalizeStyle({height:e.unref(x)?"calc(95vh - 44px)":o.height})},[e.withDirectives(e.createElementVNode("div",c0,[e.createElementVNode("div",{ref_key:"editorElement",ref:r,class:"relative w-full"},null,512),e.unref(h)?(e.openBlock(),e.createElementBlock("div",d0,"Loading editor...")):e.createCommentVNode("",!0),e.unref(k)?(e.openBlock(),e.createElementBlock("div",u0,e.toDisplayString(e.unref(k)),1)):e.createCommentVNode("",!0)],512),[[e.vShow,!e.unref(m)]]),e.withDirectives(e.createElementVNode("div",p0,[e.createVNode(to,{ref_key:"htmlTextarea",ref:y,modelValue:e.unref(g),"onUpdate:modelValue":E[0]||(E[0]=S=>e.isRef(g)?g.value=S:null),height:"100%",syntax:a.value,theme:"vs-light"},null,8,["modelValue","syntax"])],512),[[e.vShow,e.unref(m)]])],4),e.createElementVNode("div",f0,[e.createElementVNode("div",m0,[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(m)?"text-[#8f99aa]":"!bg-white text-[#49556a] border-[#cfd6e0] border-t-transparent relative z-[1]"]),onClick:E[2]||(E[2]=S=>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(m)?"!bg-white text-[#49556a] border-[#cfd6e0] border-t-transparent relative z-[1]":"text-[#8f99aa]"]),onClick:E[3]||(E[3]=S=>e.unref(C)(!0))},e.toDisplayString(s.value),3)])])],2))}})},Symbol.toStringTag,{value:"Module"}));ye.ModalEdit=cr,ye.VForm=rt,ye.VsInputAddress=or,ye.VsInputArray=nr,ye.VsInputArraySelect=Bn,ye.VsInputCheckbox=No,ye.VsInputCodegen=Zo,ye.VsInputColor=er,ye.VsInputContainer=Lo,ye.VsInputDate=Bm,ye.VsInputEmail=Gn,ye.VsInputFile=Fo,ye.VsInputFileList=Do,ye.VsInputInlineSelect=kn,ye.VsInputKeyValue=Jo,ye.VsInputMask=mn,ye.VsInputMonaco=to,ye.VsInputNumber=Vo,ye.VsInputRadio=Xn,ye.VsInputRange=tr,ye.VsInputRichtext=Po,ye.VsInputSelect=Qn,ye.VsInputSlug=Xo,ye.VsInputStatic=Wn,ye.VsInputSwitcher=Kn,ye.VsInputTag=Yo,ye.VsInputTel=Yn,ye.VsInputText=zt,ye.VsInputTextArray=Qo,ye.VsInputTextarea=Oo,ye.default=rt,ye.inputs=rr,ye.richtextLocaleEn=kr,ye.richtextLocaleUk=xr,ye.richtextMessages=io,ye.vsInputDatatable=zo,ye.vsInputMap=Go,Object.defineProperties(ye,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|